Sistemas de arquivos paralelos
O NFS evoluiu da empresa. Ele foi para lidar com o acesso simultâneo a arquivos em escala crescente. Mas há um limite para o desempenho e a escala que você consegue obter com soluções de NFS. Também há classes de cargas de trabalho que exigem muito mais acessos paralelos aos arquivos, incluindo a capacidade de vários processos simultâneos gravarem em uma seção de um arquivo.
A necessidade de ler e gravar em grandes escalas aumentou significativamente nas últimas duas décadas. As soluções de sistema de arquivos paralelo são a principal opção para acelerar as maiores cargas de trabalho de alto desempenho. Os sistemas de arquivos paralelos surgiram em centros de supercomputação. Hoje em dia eles são amplamente implantados em vários cenários. Por exemplo, como nas soluções de interpretação e processamento sísmico usadas por grandes petrolíferas e na análise secundária/terciária de dados de genoma.
Esta unidade apresenta uma visão simplificada dos sistemas de arquivos paralelos. Se você já executa essas cargas de trabalho, provavelmente está bem familiarizado com as motivações, a necessidade e a arquitetura dessas soluções. Há uma área cinza entre as soluções de NAS distribuídas que servem o NFS e os sistemas de arquivos paralelos. O uso de sistemas de arquivos paralelos pode atender melhor aos seus requisitos.
Após concluir esta unidade, você terá mais familiaridade com os principais recursos dos sistemas de arquivos paralelos.
Historicamente, os sistemas de arquivos paralelos são uma classe completa de capacidades que requer conhecimento profundo de E/S de aplicativos. As informações fornecidas aqui têm a finalidade de ajudar a aumentar sua compreensão, mas não são especializadas.
NAS distribuído (NFS) versus sistemas de arquivos paralelos
Tanto o NAS distribuído quanto os sistemas de arquivos paralelos são sistemas de arquivos compartilhados. Vários clientes leem arquivos simultaneamente, os arquivos podem ser gravados e bloqueados, metadados podem ser modificados, entre outros.
Você pode escalar ambos os sistemas adicionando ou atualizando tecnologias de hardware de armazenamento, adicionando servidores de front-end para escalar o acesso do cliente ou aprimorando a conectividade da rede.
E/S paralela
Os sistemas de arquivos paralelos dividem os arquivos em faixas (ou blocos discretos) e distribuem esses arquivos entre vários servidores de armazenamento. Há sistemas de arquivos distribuídos que dividem os dados em faixas. A diferença é que os sistemas de arquivos paralelos expõem as faixas diretamente aos clientes por meio da comunicação com os próprios servidores de armazenamento de hospedagem. A divisão em faixas possibilita uma E/S paralela significativa em comparação com um sistema NAS distribuído padrão. Os clientes NFS executados com os ambientes NAS de expansão mais comuns precisam acessar um arquivo por meio de um só servidor. Quando os clientes acessam apenas um servidor, há problemas quando o número de solicitações simultâneas ultrapassa o que o servidor é capaz de manipular. E a abordagem dos sistemas de arquivos paralelos à divisão em faixas e ao acesso paralelo faz deles uma ótima opção para cargas de trabalho que precisam acessar arquivos grandes em grandes números de clientes simultâneos.
Aqui estão três sistemas de arquivos paralelos importantes:
- O GPFS da IBM, conhecido como Spectrum Scale
- O Lustre, que é de software livre, mas tem algumas implementações comerciais
- BeeGFS
Esses sistemas obtêm E/S paralela de maneiras diferentes. O GPFS usa servidores conhecidos como NSDs (dispositivos de armazenamento de rede) que se conectam a uma SAN (rede de área de armazenamento) de alto desempenho. Portanto, os servidores GPFS têm E/S de disco bruto como armazenamento de backup. O BeeGFS tem muitos dos mesmos componentes de arquitetura que o Lustre, mas também tem uma arquitetura de metadados distribuída robusta. O BeeOND, abreviação de BeeGFS sob demanda, habilita ambientes do BeeGFS sob demanda que usam armazenamento em cada cliente. Esses ambientes de sistemas de arquivos temporários podem ser usados para buffer de intermitência.
Em ambos os casos, no entanto, os sistemas de arquivos paralelos podem ser escalados adicionando servidores de armazenamento que, por sua vez, oferecem mais E/S paralela aos clientes. E a contagem total de clientes pode ser grande, na faixa das dezenas de milhares.
Metadados
Os clientes NFS têm interface direta com o servidor NFS, que fornece informações de metadados e recupera dados para os clientes. Você precisa dimensionar o componente de servidor de acordo com a quantidade de clientes e a taxa esperada de tráfego. Esse componente pode se tornar um gargalo. Os fornecedores de NAS podem implementar algumas otimizações de metadados, mas a maioria das implementações de NFS não reconhece um serviço de metadados separado.
Os sistemas de arquivos paralelos, por outro lado, normalmente implementam estratégias para dimensionar melhor o acesso a dados do cliente. O Lustre, por exemplo, implementa um MDS (servidor de metadados) separado. Os clientes recuperam todos os metadados desse sistema. E os clientes do Lustre podem acessar diretamente o servidor de armazenamento em que um determinado arquivo está localizado e podem ler/gravar vários threads paralelos. Essa abordagem permite à arquitetura dimensionar a largura de banda com base no número de servidores de armazenamento implantados.
Tamanho do bloco
Tratamos do tamanho do bloco anteriormente no contexto do NFS. Os tamanhos de bloco no sistema de arquivos paralelo podem ser maiores do que os tamanhos de bloco no NFS. O rsize/wsize padrão para clientes NFS geralmente é de 64.000. O Lustre, por exemplo, tem tamanhos de bloco de MBs. Esse tamanho maior tem dois efeitos. Primeiro, a leitura/gravação de arquivos grandes é superior em um sistema de arquivos paralelo. Mas os sistemas de arquivos paralelos são pouco vantajosos quando os arquivos são pequenos e o número de arquivos é grande.
Complexidade
Soluções de sistema de arquivos distribuídos que executam o NFS são fáceis de configurar e de executar para casos de uso comuns. Assim como qualquer sistema, eles podem ser ajustados quanto ao desempenho, incluindo a manipulação dos tamanhos de bloco do cliente-servidor (rsize/wsize) com base nas cargas de trabalho.
Os sistemas de arquivos paralelos operam com cargas de trabalho complexas em ambientes de escala. Eles têm uma probabilidade maior de exigir configuração e ajuste para garantir desempenho e escala suficientes.
Considerações de implantação
O Azure conta com várias ofertas de sistema de arquivos paralelo para distribuição própria. Você pode ir ao Azure Marketplace para ver as opções, que incluem o BeeGFS e o Lustre. (Pesquise por Whamcloud.) Você também pode instalar o Lustre em máquinas virtuais do Linux padrão ou pode usar os modelos do ARM (Azure Resource Manager) encontrados no site de Início Rápido do Azure.