RAID por Hardware e por Software
Os sistemas RAID, Redundant Array of Inexpensive Disks (Arranjo Redundante de Discos Econômicos), são implementados de uma de duas maneiras básicas: por software ou por hardware dedicado. Ambos os métodos são muito viáveis e têm seus próprios méritos.
No espaço das pequenas empresas, onde predominam os sistemas de arquitetura Intel e AMD e os sistemas operacionais Windows, o RAID por hardware é tão comum que surgiu muita confusão em torno do RAID por software devido, como veremos, em grande parte à abundância de produtos fraudulentos de RAID por software anunciados como hardware dedicado e conhecidos coloquialmente como “Fake RAID” (RAID Falso).
Quando o RAID foi desenvolvido pela primeira vez, ele era usado, por software, em servidores corporativos de ponta executando sistemas como o UNIX proprietário, onde os sistemas eram extremamente estáveis e o hardware era muito potente e robusto, fazendo o RAID por software funcionar muito bem. O RAID inicial era voltado principalmente para o RAID espelhado ou para o RAID de paridade muito simplista (como o RAID 2), que tinha pouca sobrecarga.
À medida que a necessidade de RAID começou a se estender para o espaço de servidores menores e à medida que o RAID de paridade começou a crescer em popularidade, exigindo maior poder de processamento para suportá-lo, tornou-se um problema o fato de que os processadores de baixa potência no espaço x86 eram significativamente impactados pela carga de processamento do RAID, especialmente o RAID 5. Isso, combinado ao fato de que quase nenhum sistema operacional amplamente utilizado nessas plataformas possuía implementações de RAID por software, levou ao desenvolvimento natural do RAID por hardware – uma placa processadora de offload (semelhante a uma GPU para gráficos) que tinha seu próprio computador completo a bordo, com CPU, memória e firmware próprios.
O RAID por hardware funcionou muito bem para resolver o problema de sobrecarga do RAID no espaço de servidores x86. À medida que as CPUs ganhavam mais potência e a memória se tornava menos escassa, sistemas operacionais x86 populares como o Windows Server começaram a oferecer opções de RAID por software. Especificamente, o RAID por software do Windows era conhecido como uma implementação de RAID ruim e estava disponível apenas nas versões de sistema operacional para servidor, causando uma falta de valorização do RAID por software na comunidade de administradores de sistemas que trabalham principalmente com Windows.
Por causa das implementações históricas no espaço de servidores corporativos e no espaço x86 de mercado de massa (commodity), surgiu uma separação natural entre os dois mercados, sustentada inicialmente pela tecnologia e, posteriormente, puramente pela ideologia. Se você conversar com um administrador de sistemas no espaço de mercado de massa, ouvirá quase universalmente que o RAID por hardware é a única opção. Por outro lado, se você conversar com um administrador de sistemas no espaço de servidores mainframe, RISC (Sparc, Power, ARM) ou EPIC (Itanium) (às vezes chamado de espaço de servidores UNIX), frequentemente será recebido com surpresa, pois o RAID por hardware não está disponível para essas classes de sistemas – o RAID por software é simplesmente uma conclusão inevitável. Nenhum dos lados parece ter um conhecimento real da situação do lado oposto, e a transição de conjuntos de habilidades entre esses dois é relativamente rara, até recentemente, quando plataformas UNIX corporativas como Linux, Solaris e FreeBSD começaram a se tornar muito populares e bem compreendidas em plataformas de hardware de mercado de massa.
Para tornar as coisas ainda mais confusas para o espaço de servidores de mercado de massa, a fim de preencher o vácuo deixado pela falta de RAID por software do fornecedor de sistema operacional dominante para o mercado de sistemas operacionais não voltados a servidores, ao mesmo tempo em que tentavam comercializar para um público-alvo menos versado tecnicamente, um grande número de fornecedores começou a vender placas controladoras sem RAID juntamente com um “driver” que, na verdade, era RAID por software, fingindo que o produto resultante era de fato RAID por hardware. Isso criou, na melhor das hipóteses, uma grande confusão e, na pior, um enorme desprezo pelo RAID por software, pois quase universalmente qualquer sistema cuja função central é proteger dados, mas cujo mercado é construído sobre engano e confusão, resultará em desastre. Os sistemas Fake RAID rotineiramente apresentam problemas de desempenho e confiabilidade. Embora, em teoria, um pacote de RAID por software de terceiros seja uma opção razoável, a realidade do mercado de RAID por software é que essencialmente todas as implementações de qualidade de RAID por software são componentes nativos do próprio sistema operacional (Linux, Mac OSX, Solaris, Windows) ou do sistema de arquivos (ZFS, VxFS, BtrFS) e são fornecidas e mantidas pelos fornecedores principais, deixando pouco espaço ou propósito para produtos de terceiros, fora do espaço de desktops Windows, onde alguns poucos e pequenos players legítimos de RAID por software de fato existem, mas frequentemente são ofuscados pelos players de Fake RAID.
Hoje, quase não há necessidade de RAID por hardware, pois as plataformas de mercado de massa são incrivelmente potentes e quase sempre há um excesso dramático de recursos tanto computacionais quanto de memória. Em vez disso, o RAID por hardware compete principalmente com base em recursos, e não na redução da carga sobre os recursos. A escolha entre RAID por hardware e RAID por software no espaço de servidores de mercado de massa é quase completamente uma questão de preferência e inércia de mercado, e não de desempenho ou recursos específicos – ambas as plataformas são essencialmente equivalentes, sendo as implementações individuais muito mais importantes na avaliação das opções de produto do que as abordagens de hardware e software por si sós.
Hoje, as ofertas de RAID por hardware tendem a ser mais “genéricas”, com implementações bastante comuns dos níveis de RAID padrão. O RAID por hardware tende a justificar seu valor por meio da redução da utilização de recursos (offload de CPU e memória), da capacidade de fazer a troca “às cegas” (blind swap) de discos com falha, do gerenciamento simplificado de armazenamento, do armazenamento em nível de bloco abstraído de forma agnóstica em relação ao sistema operacional, do cache rápido próximo aos discos e do cache protegido por bateria ou flash. O RAID por software tende a justificar seu valor por meio de menor consumo de energia, menor custo de aquisição, gerenciamento integrado ao sistema operacional, recursos de RAID exclusivos ou avançados (como o RAIDZ do ZFS, que não sofre com o write hole padrão do RAID 5) e, de modo geral, melhor desempenho geral. Na verdade, não se trata de uma discussão sobre melhor ou pior, mas sobre melhor ou pior para uma situação muito específica, sendo o fator mais importante frequentemente a familiaridade e o conforto e/ou a oferta padrão do fornecedor.
Um dos diferenciadores mais negligenciados, porém importantes, entre o RAID por hardware e por software é a mudança na função de trabalho associada ao gerenciamento do array RAID. O RAID por hardware transfere o manuseio do array para o administrador de servidores (a função de suporte que trabalha no servidor físico e fica posicionada no datacenter), ao passo que o RAID por software transfere o manuseio do array para o administrador de sistemas (a função de suporte que trabalha no sistema operacional e acima dele e que raramente fica no datacenter). No mercado SMB, esse fator pode ser completamente negligenciado, mas em uma empresa da Fortune 500 a diferença na função de trabalho pode ser muito significativa. Em muitos casos, com o RAID por hardware, as substituições de disco e a configuração do sistema podem ser feitas sem a necessidade de intervenção do administrador de sistemas. Os administradores de servidores do datacenter podem descobrir discos com falha por meio de alertas ou procurando por “luzes âmbar” durante as rondas e fazer as substituições na hora, sem precisar entrar em contato com ninguém ou sequer saber o que o servidor está executando. O RAID por software quase sempre exigiria que o administrador de sistemas se envolvesse no gerenciamento da desativação (offline) de um disco com falha, na coordenação do processo de substituição com o datacenter e na ativação (online) do novo disco assim que o processo de substituição fosse concluído.
Por causa da forma como o offload de CPU e o desempenho funcionam, e por causa de algumas vantagens na maneira como as implementações de RAID não padronizadas frequentemente lidam com a reconstrução do RAID de paridade, há uma tendência de que os níveis de RAID espelhado favoreçam o RAID por hardware e os níveis de RAID de paridade favoreçam o RAID por software. O RAID de paridade é drasticamente mais intensivo em CPU e, portanto, ter acesso aos recursos da CPU central de alta potência pode ser um fator importante para acelerar os cálculos de RAID. Mas, no caso do RAID espelhado, onde a reconstrução do RAID é muito mais segura do que no RAID de paridade e onde as reconstruções automatizadas são mais importantes, o RAID por hardware traz o benefício de permitir a substituição de discos às cegas com muita facilidade.
Um aspecto da discussão sobre RAID por hardware e por software que é extremamente paradoxal é que o mesmo mercado que frequentemente descarta de imediato o RAID por software como inferior ao RAID por hardware coincide quase completamente (você pode imaginar o diagrama de Venn na sua cabeça aqui) com o mercado que considera que os servidores de arquivos são inferiores aos appliances NAS de mercado de massa, ainda que esses appliances NAS na faixa SMB sejam quase universalmente baseados nas mesmas implementações de RAID por software que são descartadas com tanta displicência. Portanto, ele é frequentemente considerado, simultaneamente, inferior e superior. Alguns dispositivos NAS na faixa SMB, e softwares de appliance NAS, que são baseados em RAID por software incluem: Netgear ReadyNAS, Netgear ReadyData, Buffalo Terastation, QNAP, Synology, OpenFiler, FreeNAS, Nexenta e NAS4Free.
Realmente não existe um “sempre use de um jeito ou de outro” com o RAID por hardware e por software. Até mesmo os gigantescos appliances NAS e SAN corporativos de seis dígitos estão indecisos quanto a qual usar, com parte do setor seguindo cada direção. A verdadeira resposta é depende da sua situação específica – a separação de funções de trabalho, suas necessidades técnicas, sua experiência, seu orçamento etc. Ambas as opções são completamente viáveis em qualquer organização.
