Apesar de todos os Tunnings possiveis dentro do SQL Server, I/O continua sendo calcanhar de aquiles de todos os ambientes, atualmente existem novos discos que podem ser talvez uma solução, porem são muito caros, como é o caso do disco SSD, alem de ter um limite de 300GB.
Portanto, muitas empresas se aproveitam dos recursos que uma storage pode oferecer.
A sigla RAID é um acrônimo para: Redundant Array of Independent Disks, ou seja, é um array de discos, fisicamente compostos por 2 ou mais discos, e logicamente apresentado como apenas um disco, denominado LUN.
Existem muitos níveis de RAID e cada um possui sua vantagem e desvantagem, os mais comuns são:
RAID 0: Composto por 2 discos ou mais, possuem alta performance uma vez que todo acesso a disco sera dividido por 2, porem não possuem garantia dos dados, ou seja, se um de seus discos falhar, voce tera perda dos dados, sendo necessario remover o RAID fisico, e trocar este disco por um novo, alem de não ser possivel recuperar os dados que estavam no mesmo, não só no disco que falhou, nos dois, uma vez que a informação estava dividida.
Vantagem: Alta performance.
Desvantagem: Não ha garantia dos dados.
RAID 1: Composto por 2 discos ou mais, possuem uma performance ruim para escrita não sequencial, porem garantia total dos dados, os 2 discos são exatamente iguais, ou seja, a informação alocadas nos mesmos é espelhada.
Vantagem: Garantia dos dados em caso de falha.
Desvantagem: Lento para escritas não sequenciais.
RAID 5: Este é talvez o nível mais utilizado entre as empresas, pelo fato de ser necessário apenas 2 discos para sua criação, além de ter garantia e velocidade. Este nível trabalha com dados de paridade, ou seja, se você possui 2 discos de 600GB em RAID 5, você terá ao apresentar como LUN a um servidor, algo em torno de 1TB, o porque disso é que em torno de 100GB de cada disco será usado como paridade do outro; caso haja falha de um dos discos, é possível recriar seus dados a partir dos dados de paridade do outro.
Vantagem: Barato em relação a níveis superiores não perdendo em velocidade ou garantia.
RAID 10 (1+0): Este é considerado por muitos, o melhor de todos, pois alem de excelente performance possui garantia dos dados, ele trabalha primeiramente espelhando os dados, e depois, dividindo-os entre 2 discos, garantindo a performance.
Vantagem: Garantia de dados e alta performance
Desvantagem: Necessario 4 discos, muitas storages não aceitam este RAID, apenas o 5.
O ambiente ideal:
Antes de tudo é necessario saber que não existe o ambiente ideal uma vez que o mesmo depende de seu negocio e do proposito de sua criação.
O cenario proposto abaixo talvez seja o mais generico e atenda grande parte dos ambientes:
O mesmo foi pensado utilizando-se o SGDB SQL Server 2005 ou superior e sendo um servidor exclusivo para banco de dados não sendo possivel a utilização de RAID 10.
SO: RAID 1, necessario garantia do sistema operacional
DataFiles (Dicionario de dados, arquivos .mdf): RAID 5.
DataFiles (User Objects and Data, arquivos .ndf): RAID 5.
LogFiles: RAID 1 pois sua escrita é sequencial.
IndiceFile: RAID 5, lembrando que este arquivo não existe por default numa base SQL, o mesmo é um FileGroup com seu DataFile exclusivo para indices.
TEMPDB(.mdf): RAID 0, todos os dados na tempdb são temporarios, então a mesma só necessita de performance.