Visão geral do NFS
Há alguns conceitos principais do NFS que desejamos abordar no contexto da escolha de sua solução de armazenamento de HPC. O principal desafio ao usar o NFS é determinar se o ambiente de armazenamento de HPC de destino requer elementos de configuração, conectividade de rede ou recursos de segurança específicos de uma versão específica do NFS. Se você reunir alguns desses conceitos em seus critérios de seleção, isso ajuda você a avaliar as várias soluções disponíveis. No mínimo, levar esses itens em consideração poupa tempo valioso ao eliminar tudo que não se ajusta aos seus requisitos de NFS.
Considerações sobre o NFS
Há duas versões principais do protocolo NFS: o NFSv3 e o NFSv4.x (v4.1 e v4.2). O escopo completo das diferenças entre essas duas versões está fora das metas deste módulo. Mas há alguns problemas relacionados à autenticação e à autorização que identificamos aqui. Não precisamos discutir o histórico dos dois protocolos nem por que existem dois. É suficiente saber que muitos usuários ainda estão executando o NFSv3 em seus ambientes.
Vamos começar com considerações específicas ao uso do NFSv3.
NFSv3 e grupos
O NFSv3 é um protocolo de sistema de arquivos simples que passa solicitações de API a clientes e servidores NFS. Mencionamos anteriormente que um UID é representa um usuário e esses usuários têm uma associação a um GID de grupo primário. Também mencionamos que um usuário pode estar associado a um número maior de grupos. No contexto do NFS, essas atribuições de grupo são conhecidas como grupos auxiliares. As informações de UID e GID são passadas com as solicitações, e o servidor NFS as usa para determinar o nível de acesso apropriado.
O NFSv3 tem um limite para o número total de valores de GID que ele passa. Ele dá suporte à passagem de somente 16 grupos auxiliares para qualquer UID. Se estiver usando mais de 16 atribuições de grupo de maneiras significativas (por exemplo, para gerenciamento de acesso refinado), esta limitação poderá afetar você. Fornecedores de NAS como a NetApp adicionaram uma extensão ao protocolo NFS que dá suporte à comunicação de todos os mapeamentos de grupo. Essa extensão é conhecida como suporte de grupo estendido. Se estiver avaliando o armazenamento de HPC e estiver usando muitas atribuições de GID, verifique se a solução proposta dá suporte a essa capacidade.
NFSv3 e segurança de rede
O NFSv3 também é limitado em termos de segurança. O NFSv3 não tem muitos recursos de segurança. Ele não dá suporte à criptografia de dados nem à autenticação Kerberos, por exemplo. Os principais mecanismos disponíveis em um ambiente NFSv3 envolvem o uso de políticas e regras de exportação para limitar o acesso no nível da rede ao servidor NFS. Uma exportação é o mecanismo que um servidor NFS usa para expor um diretório específico aos clientes. Regras de exportação são configuradas para permitir ou impedir o acesso de clientes com base em seu endereço de rede IP. Você pode definir as entradas do host em uma regra de exportação (por exemplo, 1.1.1.1) ou rede (por exemplo, 1.1.1.0/24) e permitir ou negar o acesso à exportação. As regras de exportação são reunidas em uma política de exportação, que é associada a uma exportação específica no servidor NFS.
NFSv3 e portas de rede
Um desafio com o NFSv3 é que ele não usa uma porta TCP padrão para todas as comunicações. Com essa flexibilidade de portas, permitir o acesso ao NFSv3 é um desafio em uma WAN, já que, embora haja portas padrão (111 para RPC e 2049 para NFS), as outras portas para montar a exportação são atribuídas aleatoriamente.
O uso da rede NFSv3 no Azure se torna um desafio apenas quando você precisa de acesso além de sua rede virtual e precisa de configuração de segurança que bloqueia as portas TCP. No entanto, escolher uma solução que fornece a configuração da política de exportação ajuda a bloquear a solução NFS diretamente, independentemente do que está configurado na borda da rede.
Condensação
Condensação (ou squashing) se refere à capacidade do servidor NFS de forçar o uso de uma UID específica para acessar arquivos ou pastas. Por exemplo, um administrador pode querer controlar qual UID é usado para uma pasta exportada específica. Ambientes de servidor NFS Linux dão suporte à capacidade de condensar o acesso à raiz para um UID não raiz. Os produtos de NAS dão suporte à condensação específica com base na rede/endereço do cliente de entrada e no valor da UID. Um dos principais usos da condensação é garantir o acesso não raiz usando conexões remotas.
Se você planeja replicar seu sistema de arquivos no Azure e espera esse mesmo comportamento, tenha em mente que nem todas as soluções dão suporte à condensação exatamente da mesma forma.
NFSv3 e criptografia
O NFSv3 não dá suporte à criptografia de dados. Ele foi projetado originalmente para uso em um ambiente corporativo confiável. Sua solução de criptografia de rede deve criptografar o tráfego que sai de sua rede confiável.
NFSv3 e bloqueio de arquivos
Bloqueio se refere à capacidade de um cliente de impedir que outros clientes atualizem um arquivo ou uma seção de arquivo específico. O NFSv3 não tem um mecanismo próprio de bloqueio. Serviços de rede chamados NLM (Gerenciador de Bloqueio de Rede) e NSM (Monitor de Status de Rede) realizam o bloqueio existente. Esses serviços são executados em clientes e servidores e gerenciam todas as interações de bloqueio. Eles são executados fora do serviço do NFS e geram seu tráfego de protocolo de rede. Esses bloqueios não são obrigatórios. Eles são conhecidos como bloqueios sugeridos. Eles são rastreados, mas não são impostos. Espera-se que os aplicativos lidem com problemas de contenção e de bloqueio.
NFSv4.x
O NFSv4.x traz alguns aprimoramentos importantes para o NFS. Vamos nos concentrar nos principais aprimoramentos.
NFSv4 e Kerberos
O NFSv4 introduziu o suporte completo ao uso do Kerberos para autenticação de usuários e a criptografia de todo o tráfego de NFS. Houve uma tentativa de integrar o Kerberos ao NFSv3, mas devido ao uso de NLM/NSM e de outros protocolos externos, somente os conteúdos de dados eram criptografados.
A menos que seja bloqueado explicitamente por políticas de exportação, todo o acesso no NFSv3 é confiável. Usando o Kerberos, você pode autenticar com base em computadores confiáveis.
Há suporte para a criptografia de todo o tráfego de NFS. Você pode criptografar todo o tráfego do cliente NFS para o servidor NFS (em vez de somente segmentos de rede específicos).
Para usar a autenticação e a criptografia via Kerberos, você precisa implantar um ambiente Kerberos.
Uma consideração importante é que nem todos os serviços compatíveis com o NFSv4 dão suporte ao Kerberos. Sem o Kerberos, você ainda pode usar outros recursos do NFSv4, mas não pode autenticar nem criptografar dados. Ao escolher sua solução, verifique se você precisa dessa funcionalidade e se as opções dão suporte ao Kerberos.
NFSv4 e portas de rede
Uma vantagem do NFSv4 em relação ao NFSv3 é que o NFSv4 usa somente uma porta TCP (porta 2049) para todo o tráfego. Se você tem um ambiente de NFSv4 em uma rede virtual do Azure ou em seu datacenter e, é mais fácil fornecer acesso entre firewalls quando você dá suporte ao NFSv4.
NFSv4 e ACLs
Digamos que você tenha um arquivo ou pasta e queira oferecer acesso de leitura/gravação ao grupo 1, acesso somente leitura ao grupo 2 e acesso para acrescentar dados a uma conta de computador específica. As permissões (bits de modo) do NFSv3 não podem atender a esses requisitos porque não têm o nível de granularidade necessário.
O NFSv4 introduz as ACLs (listas de controle de acesso). Uma ACL pode ser aplicada a cada arquivo/pasta. Cada ACL é composta por uma ou mais ACEs (entradas de controle de acesso). Essa abordagem é familiar para os administradores de NTFS do Windows, pois ele segue o mesmo modelo.
Se seu ambiente usar ACLs do NFSv4, você precisa determinar qual solução de armazenamento melhor atende a esse requisito.
Resumo
Abordamos superficialmente alguns aspectos do protocolo NFS. Os itens que abordamos, representam os principais fatores a serem considerados quando você escolhe uma solução de armazenamento.
Você precisa avaliar seu ambiente atual e os requisitos de gerenciamento de grupo, de rede e de segurança para determinar a solução de armazenamento apropriada.
Esta tabela fornece uma comparação com base na discussão anterior:
Funcionalidade | NFSv3 | NFSv4 |
---|---|---|
Permissões de arquivo/pasta | Bits de modo | Bits de modo e/ou ACLs |
Criptografia | Nenhum | Kerberos |
Portas de rede | TCP ou UDP, portmapper necessário | Porta TCP 2049 |
Bloqueio de arquivos | NLM sugerido | Suporte a bloqueio ativo |