Wednesday, September 15, 2010

I/O e RAID com Banco de Dados

Este post fornece uma visão geral do funcionamento de RAID (Redundant Arrays of Inexpensive Disks), os diferentes níveis de RAID e seus usos com bancos de dados.


RAID-0:

RAID-0 oferece apenas STRIPING de disco. O STRIPING permite que um arquivo grande seja distribuído entre vários discos/controladoras, fornecendo acesso simultâneo aos dados o que permite que todas as controladoras estejam trabalhando em paralelo. Ele não fornece proteção de dados proteção através de paridade ou redundância. Na verdade, no RAID-0 o único foco é o desempenho. Alguns fornecedores, tais como a EMC, não consideram o nível 0 como um "TRUE RAID" (RAID verdadeiro) e não oferecem soluções baseadas nele. RAID-0 é altamente performático mas muito perigoso, se um dos HD´s do ARRAY quebrar todo o sistema de arquivos ficará inativo derrubando o banco de dados.

RAID-1:

Com RAID-1, todos os dados são gravados em dois discos independentes (um "par de discos") para proteção completa dos dados em redundância. RAID-1 também é conhecido como disco de espelhamento ou efeito de sombra do disco. Os dados são gravados simultaneamente em dois discos e as gravações são tão rápidas como em um único disco. Durante a leitura, o disco que estiver menos ocupado é utilizado. O RAID-1 é o mais seguro e confiável de todos os níveis devido à redundância completa. No entanto, um dos problemas de desempenho seria a necessidade de gravar os dados em dois locais, duplicando o esforço de gravação. Na leitura, no entanto, o desempenho é melhorado, como a leitura pode vir de qualquer disco. O RAID-1 exige um investimento significativo pois duplica a quantidade de discos necessários para o armazenamento no entanto, ele fornece elevado tempo médio entre falhas (MTBF).

RAID-0 + RAID-1:

Se o RAID-0 (STRIPING), for combinado com RAID-1 (espelhamento), então você acaba de conseguir redundância com performance, mas a um custo de ter que duplicar o número de unidades de disco na configuração do ARRAY. Algumas implementações de RAID-1 no momento da leitura buscam os dados do dispositivo menos ocupado. Isso pode contabilizar um aumento no desempenho de mais de 85% em comparação com uma configuração apenas de RAID-1. Em uma implementação de RAID-1, no momento da gravação se faz necessário gravar em dois dispositivos, é recomendável para manter o ganho de performance a utilização de 2 controladoras, desta maneira obtendo a melhor relação no momento da gravação dos dados.
A combinação do RAID - 0 + 1, permite que os DADOS distribuídos em um STRIPING sejam espelhados.

RAID-3:

Em uma configuração de RAID-3, uma única unidade dedica-se ao armazenamento de correção de erros ou armazenamento dos dados de paridade. A informação é distribuída nas unidades restantes. O RAID-3 reduz drasticamente o nível de concorrência que o disco pode suportar (I/O por segundos) se comparado ao espelhamento por software. O pior caso para um sistema usando RAID-3, seria um ambiente OLTP, onde o número de transações rápidas grande e o tempo de resposta é crítico.
Para simplificar se o ambiente se destina principalmente a leitura, (ex. sistema de suporte a decisão) o RAID-3 fornece redundância com bom desempenho de leitura, mas as custas do desempenho de gravação. Infelizmente, mesmo sistemas de suporte a decisão requerem do banco de dados uma quantidade significativa de gravação em disco.

RAID-5:

Ao invés de um espelhamento total do disco, o RAID-5 calcula e grava a paridade para cada operação de gravação. Os discos de paridade evitam o custo da duplicação completa ocasionada pelo RAID-1. Se um disco falhar, a paridade é usada para reconstruir os dados sem perda de sistema. Os dados e a paridade são distribuídos em todos os discos do RAID, reduzindo assim os problemas de afunilamento de disco. O desempenho de leitura é melhorado, mas cada gravação tem que suportar a sobrecarga adicional de leitura da paridade antiga, cálculo da nova paridade, gravação nova paridade e em seguida, escrever os dados reais, com as duas últimas operações de forma simultânea em dois drives de disco. Essa sobrecarga é famosa como a penalidade de gravação do RAID-5. Esta penalidade na gravação pode fazer gravações significativamente mais lentas. Além disso, se um disco falhar em um RAID-5, a recuperação do RAID é extremamente lenta durante a sua reconstrução. Aplicativos que tem como característica a leitura-intensiva (DSS, DATA WAREHOUSING) podem usar RAID-5 sem degradação do desempenho de acesso em tempo real (a pena de gravação ainda seria bastante alta durante os períodos de carga em lote do sistema DSS). Em termos de armazenamento, no entanto, a paridade constitui uma sobrecarga estimada de 20 por cento, se  comparada aos 100% de sobrecarga no RAID-1 ou RAID-0 + 1. Inicialmente, quando foi introduzida a tecnologia RAID-5, ele foi identificada como a solução econômica que combinava alta disponibilidade e desempenho. Gradualmente, os usuários perceberam a verdade sobre o desempenho do RAID-5 e até sobre um par de anos atrás, o RAID-5 foi sendo considerado o vilão na maioria das implementações de ambientes OLTP. Muitos sites que implementaram RAID-5 começaram a olhar para soluções alternativas tentando se livrar do mesmo, o RAID-0 + 1 ganhou notoriedade como a melhor solução para ambientes OLTP.

RAID-S:

RAID-S é a implementação de RAID-5 da EMC. No entanto, difere da implementação pura de RAID-5  em dois aspectos:
(1) Ele faz STRIPING da paridade, mas não faz STRIPING com os dados.
(2) Incorpora um ambiente de hardware assíncrono com um cache de gravação.
Esse cache é um mecanismo para conter as gravações, para minimizar a sobrecarga de cálculo e gravação das informações de paridade que são necessárias, enquanto o sistema está menos ocupado. Muitos usuários de RAID-S imaginam que, uma vez que o RAID-S é, supostamente, uma versão aprimorada do RAID-5, o STRIPING dos dados é automático. É fundamental lembrar que no RAID-S, o STRIPING dos dados não é automático e tem de ser feito manualmente via um software de gerenciamento de disco de terceiros.

RAID-7:

O RAID-7 também implementa uma arquitetura de cache, controlado por um sofisticado esquema de acesso em tempo real. Aqui, no entanto, é feito STRIPING dos dados e não da paridade. Em vez disso, a paridade é realizada em uma ou mais unidades dedicadas a este processo. O RAID-7 é uma arquitetura patenteada da STORAGE COMPUTER CORPORATION.


Enjoy!

No comments: