RAID e Storage com SQL Server

203 views
Skip to first unread message

Luiz Mendonça

unread,
Apr 12, 2011, 5:30:30 PM4/12/11
to sqlse...@googlegroups.com
DBAs,
 
Estamos montando uma nova estrutura de banco de dados na empresa, com um máquina mais poderosa e com um storage.
Gostaria de saber qual a solução mais utilizada e se a Microsoft aconselha algum dos inumeros RAID.
Alguem tem artigos para indicar?
 
Obrigado,

--
Luiz Gonzaga Filho
MCPD EA, CDIA+, MCSD.NET

Wagner Andrade

unread,
Apr 12, 2011, 5:54:58 PM4/12/11
to sqlse...@googlegroups.com
RAID 5 PARA ARQUIVOS MDF
RAID 10 PARA ARQUIVOS LDF

O mais comum no mercado é encontrar tudo com RAID5, pois é a melhor solução de custo beneficio.
Um detalhe importante além do RAID é como serão entregues as luns para o seu servidor de BD, pois caso utilize a mesma controladora e os mesmos cartoes de I/O vc poderá ter sobrecarga de I/O nessas portas tanto no storage quanto na SAN. O ideal é vc balancear a criacao das luns entre os diversos raid groups e iocards do seu storage.

Atenciosamente,

Wagner Andrade

2011/4/12 Luiz Mendonça <gonzag...@gmail.com>

Demétrio Silva

unread,
Apr 12, 2011, 10:39:51 PM4/12/11
to sqlse...@googlegroups.com
Olá Luiz,

Atualmente, com a alta capacide de cache dos Storages a configuração do tipo de RAID praticamente não influencia na performance. Inclusive, alguns novos Storages IBM nem sequer nos permite configurar o tipo de RAID.

Uma dica, ao invés de você mesmo definir o RAID, especifique para o especialista em Storage qual a vazão necessária para seu ambiente. Ele é a melhor pessoa para determinar o tipo de RAID... 

Abraço,

Demétrio Silva
--
Demétrio Silva
MCP - MCTS MCITP - MCT - SQL Server 2008

Fabricio França Lima

unread,
Apr 13, 2011, 9:01:58 PM4/13/11
to sqlse...@googlegroups.com
Aproveitando o assunto, se for permitido é claro, gostaria de tirar a seguinte dúvida.
 
Imagina o cenário abaixo:
Storage com 6 discos com 1 RAIDGROUP apenas em RAID 10, ou seja, tenho 3 discos em volume de dados para guardar os meus dados.
Crio uma LUN (100 GB) e disponibilizo em um servidor SQL Server com a letra F: por exemplo.
 
Nessa letra eu crio uma database, como é o storage que gerencia em quais dos discos estará minha letra F:, eu tenho algum ganho com relação a acesso a disco criando um arquivo .mdf e um .ndf nessa mesma database? Já que teóricamente os dados já estariam armazenados particionados pelos discos no storage(acredito eu).
 
Continuando o cenário:
Crio uma outra lun de 50 GB nesse mesmo filegroup (letra L:) para armazenar os Logs,  como novamente não sei como o storage aloca essa lun entre os discos disponíveis, faria alguma diferença se eu criasse apenas uma LUN de 150 Gb e colocasse os arquivos de Log e Dados juntos? Já que teóricamente os dados já estariam armazenados particionados pelos discos no storage(acredito eu).
 
Obrigado.
 
2011/4/12 Demétrio Silva <deme...@gmail.com>



--
Atenciosamente,

Fabrício França Lima
MCITP - Database Administrator
http://fabriciodba.wordpress.com

Wagner Andrade

unread,
Apr 14, 2011, 8:35:49 AM4/14/11
to sqlse...@googlegroups.com
Fabricio, o importante é vc nao misturar no seu raid group arquivos com comportamentos diferentes.

arquivos de log (.ldf) tem o funcionamento sequencial, portanto a cabeça de leitura/gravação do disco nao se deslocará aleatoriamente, por outro lado arquivos de data (.mdf, .ndf) possuem comportamento aleatorio.

Juntar esses dois arquivos em um mesmo raid group pode causar degradação de desempenho visto que o seek será mais demorado, mas como bem lembrou o Demétrio os storages high-end  possuem tanta memoria cache que a maioria das transações do banco fiquem em cache por algum tempo e só depois façam a gravação fisica do dado.

Mas eu prefiro e sigo isso:

RAID GROUP separado para arquivos para .mdf
RAID GROUP separado para arquivos para .ldf

Atenciosamente,

Wagner Andrade
MCITP - DBA
SNIA SCSP

2011/4/13 Fabricio França Lima <fabric...@gmail.com>

Gustavo Maia

unread,
Apr 14, 2011, 11:58:08 AM4/14/11
to sqlse...@googlegroups.com
Boa Tarde,
 
Então aproveitando o tópico...
 
Sempre é recomendável separar os arquivos MDF dos arquivos LDF. Eu considero isso 100% verdade para situações de corrupção de dados, pois, se o MDF corromper, podemos recuperar os dados com uma estratégia de Tail Log. Se o LDF corromper, poderemos atachar o arquivo MDF. Se os dois estão no mesmo disco e o disco corromper perdemos as duas possibilidades. Por essa razão, sempre mantenho os MDFs separados dos LDFs.
 
Acho esse argumento excelente para justificar a separação, mas o que sempre encontro em todas as bibliografias é que a separação deve ser feita única e exclusivamente tendo-se o desempenho (nunca vi alguém falar de separação visando o Disaster Recovery) em vista justamente por esses fatores que o Wagner destacou, ou seja, a leitura do LDF é sequencial e a leitura do MDF e aleatória. Se juntarmos tudo, teremos um comportamento completamente aleatório prejudicando ambas as operações (gravação no log e nos dados).
 
Mas se temos vários logs no mesmo disco, isso não tornará o seu acesso aleatório ? Talvez não tão aleatório quando vários MDFs, mas a partir do momento que temos vários LDFs, o acesso ao disco deixa de ser sequencial certo ?
 
[ ]s,
 
Gustavo
2011/4/14 Wagner Andrade <wagne...@gmail.com>

Demétrio Silva

unread,
Apr 14, 2011, 1:03:35 PM4/14/11
to sqlse...@googlegroups.com
Grande Gustavo tudo bom meu nobre?

Sou adepto aos dois casos na separação dos discos ( performance + segurança ), mas tenho algumas considerações:

1 - Segurança - Realmente separar dados de log nos dá mais segurança. Mas isso depende da configuração realizada. Ex.

Supondo que tenhamos 8 discos para realizar uma configuração em RAID 1+0. Quando falamos de storage é muito difícil termos problemas em vários discos do mesmo array ao ponto causar uma falha no mesmo.

opção 1: Criar 2 arrays de 4 discos daria uma certa segurança pois posso perder até dois discos ( depende de quais deles ). Mas

opção 2: Criar apenas um array com 8 discos. Vejo esta forma como mais segura em relação ao todo. Esta segunda opção me dá a possibilidade de perder uma quantidade maior de discos do que a primeira, mantendo o ambiente como um todo (mdf + ldf) estável.

Claro que isso seria uma questão de análise..

2 - Performance, quanto mais discos num array, mais rápido ele será, isso é fato. Vejo muita gente falar que RAID 5 é mais lento do que o 1+0 mas isso depende.

Um raid 5 com 6 discos, em geral, será mais rápido do que um raid 1+0 com apenas 4 discos ( não estou levando em consideração tempo de recuperação ).

Já participei de alguns projetos onde, mesmo usando storages de ponta, criar arrays separados nos trouxe um certo ganho de performance. Mas este ganho não chega a ser tão considerável e muitas vezes vale à pena perder um pouco de performance mas facilitar a administração, economizar discos, etc

Abraço,

Demétrio Silva

Wagner Andrade

unread,
Apr 14, 2011, 3:43:21 PM4/14/11
to sqlse...@googlegroups.com
Verdade, nunca tinha pensado pelo lado do disaster\recovery em relacao a manter os arquivos em discos diferentes, muito bem abordado Gustavo.

Em relação aos vários arquivos .ldf em um volume deixarem de ter o padrão sequencial de funcionamento, eu repito o bordao de alguns palestrantes: Nao existe almoço gratis!

:-)


Wagner Andrade
MCITP - DBA
SNIA SCSP


2011/4/14 Gustavo Maia <gmagui...@gmail.com>

Leonardo

unread,
Jun 28, 2012, 6:32:10 PM6/28/12
to sqlse...@googlegroups.com
Então no final das contas ele deixa de ser sequencial.....

Pra contornar isso, pelo visto, somente isolando log a log em discos separados....
Reply all
Reply to author
Forward
0 new messages