Escolhendo um Sistema Operacional de Armazenamento Aberto
Está se tornando cada vez mais comum abrir mão de dispositivos de armazenamento tradicionais e proprietários, tanto NAS quanto SAN, e em vez disso usar hardware de prateleira e instalar nele um sistema operacional de armazenamento para o que muitos chamam de servidores de armazenamento “faça você mesmo”. Isso, é claro, é um equívoco, já que ninguém chama um servidor de arquivos comum de “faça você mesmo” só porque você mesmo instalou o Windows. O armazenamento tem muito mito e lenda circulando ao seu redor, e as pessoas frequentemente entram em pânico quando pensam em instalar o Windows e chamá-lo de NAS em vez de chamá-lo de servidor de arquivos. Portanto, se isso fizer você se sentir melhor, use termos como servidor de arquivos ou servidor de armazenamento em vez de NAS e SAN – problema resolvido. Isso faz parte do movimento de “armazenamento aberto” – transformar os sistemas de armazenamento de proprietários em padronizados.
Escolher o sistema operacional certo para um servidor de armazenamento é importante e nem sempre tão fácil. Trabalho extensivamente nessa área e as pessoas frequentemente me perguntam o que recomendo, e as recomendações variam, conforme o cenário, e muitas vezes parecem confusas. Mas os fatores são, na verdade, relativamente fáceis, basta conhecer as limitações que criam as escolhas e os caminhos na árvore de decisão.
Antes de escolher um SO, devemos parar e considerar quais serão as nossas necessidades. Algumas áreas que precisam ser consideradas são: capacidade, desempenho, facilidade de administração, orçamento, tecnologia de conexão, custo e clusterização. Há também duas categorias principais de sistemas que vamos considerar: sistema operacional padrão ou sistema operacional de appliance de armazenamento. Os sistemas operacionais padrão são Windows, Linux, Solaris e FreeBSD. Os sistemas operacionais de appliance de armazenamento são FreeNAS, OpenFiler e NexentaStor. Há outros em ambas as categorias, mas estes são os principais atores atualmente.
A primeira decisão a ser tomada é se você ou a sua organização estão confortáveis em dar suporte a um sistema operacional comum atuando em uma função de servidor de armazenamento. Se você está considerando NAS, então simplesmente pergunte a si mesmo se conseguiria administrar um servidor de arquivos. Administrar um servidor de armazenamento em blocos (SAN) é um pouco mais complexo ou, ao menos, incomum, então isso pode induzir uma pequena preocupação, mas está realmente em linha com outras tarefas de administração. Se a resposta for sim, que usar ferramentas e interfaces de sistema operacional comum é aceitável para você, então simplesmente descarte a categoria de “appliance” de imediato. A abordagem de appliance adiciona complexidade e torna mais lentos os ciclos de desenvolvimento e suporte, então, a menos que seja necessária, é indesejável.
Os sistemas operacionais de appliance de armazenamento existem apenas para fornecer uma visão pré-empacotada e “fácil de usar” da operação de um servidor de armazenamento. Em conceito, isso é bom, mas há problemas reais com esse método. Os maiores problemas vêm do processo de empacotamento, que o afasta um passo dos próprios fornecedores dos SOs corporativos, tornando o seu sistema mais frágil, mais atrasado em atualizações e recursos e menos seguro do que suas contrapartes de SO tradicional. Isso também deixa você à mercê de uma empresa muito pequena para suporte em nível de OEM quando algo dá errado, em vez de um grande fornecedor corporativo com uma base de usuários e comunidade massivas. O processo de "appliancização" também elimina recursos e opções dos sistemas por necessidade. No final, você perde.
Os appliances são bons porque você obtém uma conveniente interface web a partir da qual “qualquer pessoa” pode administrar o seu armazenamento. Ao menos em teoria. Mas, na realidade, há duas preocupações. A primeira é que sempre há a necessidade de entrar no próprio sistema operacional e consertar coisas de tempos em tempos. Ter a interface web personalizada do appliance torna isso dramaticamente mais difícil do que o normal, de modo que, no momento em que você mais precisa da natureza de appliance do sistema, é quando você não a tem. A segunda é que tornar algo tão crítico quanto o armazenamento disponível para “qualquer pessoa” trabalhar é um pensamento aterrorizante. Há poucas partes da sua infraestrutura em que você quer mais experiência, planejamento e cuidado do que no armazenamento. Tornar o sistema mais difícil de usar nem sempre é algo ruim.
Se você precisa de um sistema de appliance, então está olhando principalmente para o FreeNAS e o OpenFiler. O NexentaStor oferece um produto atraente, mas não está disponível em uma versão gratuita e o custo pode ser oneroso. A versão disponível para download gratuito parece ser gratuita para os primeiros 18 TB de armazenamento bruto, mas a licença afirma o contrário, fazendo com que essa raramente seja a escolha popular. (O custo do NexentaStor é alto o suficiente para que adquirir um sistema Solaris totalmente suportado custasse menos e fornecesse suporte completo do fornecedor original, em vez do Nexenta, que essencialmente reempacota versões antigas do Solaris e do ZFS. Código mais moderno e atualizações estão disponíveis de forma mais barata na fonte original.)
O FreeNAS, fora a clusterização, é a plataforma de armazenamento de escolha em um pacote "appliancizado". Ele tem o tão elogiado sistema de arquivos ZFS, que lhe confere flexibilidade e facilidade de uso ausentes no OpenFiler e em outras alternativas baseadas em Linux. Ele também tem uma implementação de iSCSI funcional, de modo que você pode usar o FreeNAS com segurança tanto como NAS quanto como SAN. O suporte ao FreeNAS parece estar aumentando, com novos desenvolvimentos sendo feitos regularmente e recursos sendo mantidos. O FreeNAS oferece uma ampla gama de recursos e protocolos suportados. Acredita-se que a clusterização chegará ao FreeNAS no futuro, já que isso foi recentemente adicionado ao sistema operacional FreeBSD subjacente. Se for o caso, o FreeNAS eliminará completamente a necessidade do OpenFiler no mercado. O FreeNAS é completamente gratuito.
O OpenFiler carece de uma implementação confiável de SAN iSCSI (a menos que você pague uma fortuna para ter essa parte do sistema substituída por um componente funcional) e está muito mais desatualizado do que seus concorrentes, mas oferece replicação completa em tempo real em nível de bloco, permitindo que opere em modo clusterizado para confiabilidade. A questão aqui é que a prática interface web do appliance NAS não contempla esse cenário e, se você quiser fazer isso, precisará sujar as mãos na linha de comando, e sujá-las muito mesmo. Isso é coisa de nível especialista, e qualquer pessoa capaz de sequer considerar um projeto para transformar o OpenFiler em um cluster confiável estará igualmente confortável, e provavelmente muito mais confortável, construindo o cluster inteiro do zero na distribuição Linux de sua escolha. O OpenFiler é construído sobre o um tanto impopular, e agora completamente descontinuado, rPath Linux, usando o sistema de empacotamento Conary, ambos atores de nicho, para dizer o mínimo, no mundo Linux. Você encontrará pouco suporte ao rPath de outros administradores, e muitos pacotes e recursos aos quais você talvez deseje ter acesso estão indisponíveis. A única vantagem de significância do OpenFiler é a disponibilidade do DRBD para clusterização, o que, como afirmado acima, é um contrassenso. O suporte ao OpenFiler parece estar minguando, com novos recursos sendo inexistentes e, de fato, recursos-chave como o AFP tendo sido removidos em vez de novos recursos terem sido adicionados. O OpenFiler é gratuito, mas recursos-chave, como o iSCSI confiável, não são. Relatos recentes de usuários do OpenFiler indicam que até mesmo o armazenamento não-iSCSI se tornou instável na versão mais recente e que perder dados é uma ocorrência regular. O OpenFiler permanece muito popular no imaginário desse segmento da indústria, mas deve ser completamente evitado.
Se você não precisa ter o seu sistema operacional de armazenamento "appliancizado", então lhe restam mais e melhores opções, mas uma árvore de decisão muito mais complexa. Diferentemente do mercado de SO de appliance, que está repleto de armadilhas (o NexentaStor tem custos surpresa, o OpenFiler parece suportar iSCSI mas causa perda de dados, recursos são removidos das novas versões), todos os quatro sistemas operacionais mencionados aqui são extremamente robustos e ricos em recursos. Três deles têm suporte de fornecedor OEM, o que pode ser um fator decisivo importante, e todos têm ótimas opções de suporte de terceiros, muito mais amplas do que as disponíveis para o mercado de appliance.
A primeira decisão é se recursos exclusivos do Windows, notadamente as ACLs NTFS, são necessários. É comum que novos usuários de NAS se surpreendam quando o protocolo SMB não fornece todo o controle granular do sistema de arquivos a que estão acostumados no Windows. Isso ocorre porque esses controles são, na verdade, tratados pelo sistema de arquivos, e não pelo protocolo de rede, e somente o Windows os fornece por meio do NTFS. Portanto, se aquele controle granular de arquivos do Windows for necessário, o Windows é a sua única opção.
Os outros três concorrentes, Linux, Solaris e FreeBSD, todos compartilham capacidades básicas, com a notável exceção da clusterização. Todos têm bom RAID por software, todos têm sistemas de arquivos poderosos e robustos, todos têm gerenciamento de volumes lógicos poderoso e todos fornecem uma variedade de opções de conexão NAS e SAN. Muitas versões de Linux e FreeBSD estão disponíveis de forma completamente gratuita. O Solaris, embora gratuito para testes, não está disponível gratuitamente para uso em produção.
O maior diferencial entre essas três opções de SO é a clusterização. O Linux tem o DRBD há bastante tempo, e essa é uma tecnologia robusta de clusterização de sistema de arquivos. O FreeBSD adicionou recentemente (a partir da versão 9.0) o HAST para servir ao mesmo propósito. Então, em teoria, o FreeBSD tem as mesmas opções de clusterização que o Linux, mas isso é muito mais novo e muito menos conhecido. O Solaris carece de clusterização de sistema de arquivos no SO base e requer complementos comerciais para lidar com isso no momento.
O Solaris e o FreeBSD compartilham o poderoso e testado em batalha sistema de arquivos ZFS. O ZFS é extremamente poderoso e flexível e há muito tempo é o principal ponto de venda dessas plataformas. O suporte do Linux a sistemas de arquivos é mais complicado. Quase qualquer distribuição Linux (aqui nos importamos principalmente com RHEL/CentOS, Oracle Unbreakable Linux, Suse/OpenSuse e Ubuntu) suporta o EXT4, que é poderoso e rápido, mas carece de alguns dos recursos realmente interessantes do ZFS. No entanto, o Linux está rapidamente adotando o BtrFS, que é muito competitivo com o ZFS, mas é nascente e atualmente está disponível apenas nas distribuições Suse e Oracle Linux. Esperamos vê-lo nas outras em breve para uso em produção, mas, neste momento, ainda é experimental.
Fora a clusterização, é provável que a escolha do SO entre estes três se resuma principalmente à experiência e ao conforto. O Solaris é geralmente conhecido por fornecer o melhor throughput e o FreeBSD o pior. Mas todos os três são bastante próximos. Uma vez que o BtrFS esteja amplamente disponível e estável no Linux, o Linux provavelmente se tornará a escolha de fato, como já foi no passado.
Sem influência externa, minha recomendação de plataforma de armazenamento é FreeBSD e depois Linux, com o Solaris eliminado com base no fato de que raramente alguém está em busca de suporte comercial e, por isso, ele é descartado automaticamente. Isso se baseia quase inteiramente na disponibilidade de sistemas de arquivos Copy-on-Write e presumindo a ausência de clusterização, que não é comum. Se a clusterização for necessária, então Linux primeiro e depois FreeBSD, e o Solaris é descartado, novamente.
Linux e FreeBSD estão se aproximando rapidamente um do outro em funcionalidade. À medida que o BtrFS amadurece no Linux e o HAST amadurece no FreeBSD, eles parecem estar se encontrando no meio do caminho, com a escolha sendo pouco mais do que um cara ou coroa.
Não há uma única resposta simples. Escolher um SO de armazenamento é todo sobre equilibrar uma miríade de fatores: desempenho, recursos, suporte, estabilidade etc. Há alguns fatores que podem ser usados para descartar muitos concorrentes, e conhecer esses delimitadores rígidos é fundamental. Saber exatamente como você planeja usar o sistema e quais fatores são importantes para você é importante para filtrar as opções disponíveis.
Mesmo depois de escolher uma plataforma, há muitas decisões a tomar. Algumas plataformas incluem múltiplos sistemas de arquivos. Há SAN e NAS. Há múltiplos protocolos de SAN e NAS. Há agregação de rede (ou "teaming", no mundo Windows). Há Multipathing. Há snapshots, volumes, RAID. A lista continua sem parar.
