Sistemas de arquivos paralelos

Concluído

O NFS evoluiu a partir da empresa. Ele foi projetado para lidar com o acesso simultâneo a arquivos em escala crescente. Mas há um limite superior para o desempenho e a escala que você pode obter com as soluções NFS. Há também classes de cargas de trabalho que exigem acesso paralelo muito maior a arquivos, incluindo a capacidade de vários processos simultâneos gravarem em alguma seção de um arquivo.

A necessidade de ler e escrever em grande escala cresceu significativamente durante as últimas duas décadas. As soluções de sistemas de arquivos paralelos são a principal opção para acelerar as maiores cargas de trabalho de alto desempenho. Sistemas de arquivos paralelos originados em centros de supercomputação. Eles agora estão amplamente implantados para vários cenários. Por exemplo, soluções de processamento e interpretação sísmica utilizadas por grandes empresas de petróleo e gás e a análise secundária/terciária de dados genómicos.

Esta unidade apresenta um tratamento leve de sistemas de arquivos paralelos. Se você tem executado essas cargas de trabalho, provavelmente está bem familiarizado com os drivers, a necessidade e a arquitetura dessas soluções. Há uma área cinzenta entre as soluções NAS distribuídas que servem NFS e sistemas de arquivos paralelos. O uso de sistemas de arquivos paralelos pode satisfazer melhor suas necessidades.

Depois de concluir esta unidade, você estará mais familiarizado com os principais recursos dos sistemas de arquivos paralelos.

Os sistemas de arquivos paralelos têm sido historicamente uma classe completa de recursos que requer conhecimento profundo de E/S de aplicativos. Essas informações estão aqui para ajudar a construir o entendimento, não a experiência.

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 são gravados e bloqueados, os metadados podem ser modificados e muito mais.

Você pode dimensionar ambos os sistemas adicionando ou atualizando tecnologias de hardware de armazenamento, adicionando servidores front-end para dimensionar o acesso do cliente ou melhorando a conectividade de rede.

Diagrama que compara o armazenamento conectado à rede e arquiteturas de sistemas de arquivos paralelos.

E/S paralelas

Sistemas de arquivos paralelos dividem arquivos em blocos ou faixas discretas e distribuem esses arquivos em vários servidores de armazenamento. Existem sistemas de arquivos distribuídos que distribuem dados. 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. O striping permite E/S paralelas significativas em um sistema NAS distribuído padrão. Os clientes NFS que são executados com os ambientes NAS de expansão mais comuns devem acessar um arquivo por meio de um único servidor. Quando os clientes acessam um único servidor, isso causa problemas quando o número de solicitações simultâneas cresce além do que o servidor pode lidar. E a abordagem de sistemas de arquivos paralelos para acesso paralelo e striping os torna uma ótima opção para cargas de trabalho que precisam acessar arquivos grandes em um grande número de clientes simultâneos.

Aqui estão três grandes sistemas de arquivos paralelos:

  • GPFS da IBM, conhecido como Spectrum Scale
  • Lustre, que é de código aberto, mas tem algumas implementações comerciais
  • BeeGFS

Esses sistemas alcançam E/S paralelas de maneiras diferentes. O GPFS usa servidores conhecidos como NSDs (Network Storage Devices, dispositivos de armazenamento de rede) que se conectam a uma SAN (Storage Area Network, rede de armazenamento de dados) de alto desempenho. Assim, os servidores GPFS têm E/S de disco bruto como armazenamento de backup. O BeeGFS tem muitos dos mesmos componentes arquitetônicos do Lustre, mas também tem uma arquitetura robusta de metadados distribuídos. BeeOND, abreviação de BeeGFS On Demand, permite ambientes BeeGFS sob demanda que usam armazenamento em cada cliente. Esses ambientes temporários de sistema de arquivos podem ser usados para buffer burst.

Em ambos os casos, no entanto, os sistemas de arquivos paralelos podem ser dimensionados adicionando mais servidores de armazenamento, que, por sua vez, oferecem mais E/S paralelas aos clientes. E o número total de clientes pode ser grande, variando até dezenas de milhares.

Metadados

Os clientes NFS interagem diretamente com um servidor NFS, que fornece informações de metadados e recupera dados para os clientes. Você precisa dimensionar o componente do 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 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 aos dados do cliente. O Lustre, por exemplo, implementa um servidor de metadados separado (MDS). Os clientes recuperam todos os metadados desse sistema. E os clientes Lustre podem acessar diretamente o servidor de armazenamento onde um determinado arquivo está localizado e podem ler/gravar vários threads paralelos. Essa abordagem permite que a arquitetura dimensione a largura de banda com base no número de servidores de armazenamento implantados.

Tamanho do bloco

Discutimos o tamanho do bloco anteriormente, no contexto do NFS. Os tamanhos de bloco do sistema de arquivos paralelo podem ser maiores do que os tamanhos de bloco NFS. O rsize/wsize padrão para clientes NFS é geralmente 64.000. O Lustre, por exemplo, tem tamanhos de bloco nos MBs. Este 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 oferecem pouca vantagem quando os tamanhos dos arquivos são pequenos e o número de arquivos é grande.

Complexidade

As soluções de sistema de arquivos distribuído que executam NFS são fáceis de configurar e executar para casos de uso comuns. Como qualquer sistema, eles podem ser ajustados para desempenho, incluindo a manipulação de tamanhos de bloco cliente-servidor (rsize/wsize) com base em cargas de trabalho.

Os sistemas de arquivos paralelos normalmente operam contra cargas de trabalho complexas em ambientes de escala. É mais provável que exijam configuração e ajuste para garantir desempenho e escala suficientes.

Considerações sobre implementação

O Azure oferece várias ofertas de sistema de arquivos paralelo roll-your-own. Pode aceder ao Azure Marketplace para ver as opções, que incluem o BeeGFS e o Lustre. (Pesquisar por Whamcloud.) Você também pode instalar o Lustre em máquinas virtuais Linux padrão ou pode usar os modelos do Azure Resource Manager (ARM) encontrados no site de Início Rápido do Azure.

Verifique o seu conhecimento

1.

Qual escolha reflete um excelente uso de um sistema de arquivos paralelo?