Visão geral do NFS

Concluído

Há alguns conceitos-chave de NFS que queremos discutir no contexto da escolha de sua solução de armazenamento HPC. O principal desafio ao usar o NFS é determinar se o ambiente de armazenamento HPC de destino requer elementos de configuração, conectividade de rede ou recursos de segurança específicos para uma determinada versão do NFS. Se reunir alguns destes conceitos nos seus critérios de seleção, isso ajuda-o a avaliar as várias soluções disponíveis. No mínimo, a contabilização desses itens economiza tempo ao eliminar qualquer coisa que não se encaixe nos seus requisitos de NFS.

Considerações sobre NFS

Existem duas versões principais do protocolo NFS: NFSv3 e NFSv4.x (v4.1 e v4.2). O escopo completo das diferenças entre essas duas versões está fora dos objetivos deste módulo. Mas há um punhado de questões relacionadas à autenticação e autorização que identificamos aqui. Não precisamos discutir a história dos dois protocolos ou por que existem dois. Basta saber que muitos usuários ainda estão executando o NFSv3 em seus ambientes.

Vamos começar com considerações específicas para o uso do NFSv3.

NFSv3 e grupos

O NFSv3 é um protocolo de sistema de arquivos simples que passa solicitações de API para clientes e servidores NFS. Mencionamos anteriormente que um UID representa um usuário e que os usuários têm uma associação GID de grupo primário. Também mencionamos que um usuário pode ser associado a um número maior de grupos. Para efeitos do NFS, estas atribuições de grupo são conhecidas como grupos auxiliares. As informações UID e GID são passadas com solicitações, que o servidor NFS usa para determinar o nível apropriado de acesso.

O NFSv3 tem um limite para o número total de valores de GID que passa. O NFSv3 suporta a passagem de apenas 16 grupos auxiliares para qualquer UID. Se você estiver usando mais de 16 tarefas de grupo de maneiras significativas (como gerenciamento de acesso refinado), essa limitação pode afetá-lo. Fornecedores de NAS, como a NetApp, adicionaram uma extensão ao protocolo NFS que suporta a comunicação de todos os mapeamentos de grupo. Essa extensão é conhecida como suporte de grupo estendido. Se você estiver avaliando o armazenamento HPC e estiver usando um grande número de atribuições GID, verifique se a solução proposta oferece suporte a esse recurso.

NFSv3 e segurança de rede

O NFSv3 também é limitado em termos de segurança. O NFSv3 realmente não tem muitos recursos de segurança. Ele não suporta criptografia de dados ou autenticação Kerberos, por exemplo. Os principais mecanismos disponíveis em um ambiente NFSv3 envolvem o uso de regras e políticas 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. As regras de exportação são configuradas para permitir ou não clientes com base em seu endereço de rede IP. Você pode definir entradas de host em uma regra de exportação (por exemplo, 1.1.1.1) ou redes (por exemplo, 1.1.1.0/24) e permitir ou negar acesso à exportação. As regras de exportação são reunidas em uma política de exportação, que está 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. Essa flexibilidade de porta torna a permissão de acesso NFSv3 desafiadora em uma WAN, dado que, embora existam portas padrão (111 para RPC e 2049 para NFS), outras portas para montar a exportação são atribuídas aleatoriamente.

A rede NFSv3 no Azure torna-se um desafio apenas se precisar de acesso para além da sua rede virtual e precisar de uma configuração de segurança que bloqueie portas TCP. Mas escolher uma solução que forneça configuração de política de exportação ajuda a bloquear a solução NFS diretamente, independentemente do que estiver configurado na borda da rede.

Esmagamento

Diagrama que mostra o tráfego NFS do cliente na raiz sendo esmagado para 65534.

Esmagamento refere-se à capacidade do servidor NFS de forçar o uso de um UID específico para acessar arquivos ou pastas. Por exemplo, um administrador pode querer controlar qual UID é usado para uma pasta exportada específica. Os ambientes de servidor Linux NFS suportam a capacidade de esmagar o acesso root a um UID não raiz. Os produtos NAS suportam esmagamento específico com base na rede/endereço do cliente de entrada e no valor do UID. Um dos principais usos do squashing é garantir acesso não root através de conexões remotas.

Se você planeja replicar seu sistema de arquivos no Azure e espera esse mesmo comportamento, lembre-se de que nem todas as soluções oferecem suporte ao esmagamento exatamente da mesma maneira.

NFSv3 e criptografia

O NFSv3 não suporta criptografia de dados. Ele foi originalmente projetado para uso em um ambiente empresarial 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 ficheiros

O bloqueio refere-se à capacidade de um cliente de impedir que outros clientes atualizem um arquivo ou seção específica de um arquivo. O NFSv3 não tem seu próprio mecanismo de bloqueio. Os serviços de rede chamados Network Lock Manager (NLM) e Network Status Monitor (NSM) executam o bloqueio existente. Esses serviços são executados em clientes e servidores e gerenciam toda a interação de bloqueio. Eles são executados fora do serviço NFS e geram seu próprio tráfego de protocolo de rede. Estas fechaduras não são obrigatórias. Eles são conhecidos como fechaduras consultivas. Eles são rastreados, mas não aplicados. Espera-se que os aplicativos lidem com problemas de contenção e bloqueio.

NFSv4.x

NFSv4.x introduz algumas melhorias importantes no NFS. Vamos nos concentrar nas principais melhorias.

NFSv4 e Kerberos

O NFSv4 introduziu suporte total para o uso de Kerberos para autenticação de usuários e criptografia de todo o tráfego NFS. Houve uma tentativa de integrar Kerberos com NFSv3, mas devido ao uso de NLM/NSM e outros protocolos externos, apenas as cargas úteis de dados são criptografadas.

A menos que explicitamente bloqueado por políticas de exportação, todo o acesso no NFSv3 é confiável. Usando Kerberos, agora você pode autenticar com base em máquinas confiáveis.

A criptografia de todo o tráfego NFS é suportada. Você pode criptografar todo o tráfego do cliente NFS para o servidor NFS (em vez de apenas em segmentos de rede específicos).

Para usar autenticação e criptografia via Kerberos, você precisa implantar um ambiente Kerberos.

Uma consideração importante é que nem todos os serviços compatíveis com NFSv4 suportam Kerberos. Sem Kerberos, você ainda pode usar outros recursos do NFSv4, mas não pode autenticar ou criptografar dados. Ao escolher sua solução, verifique se você precisa desse recurso e se as opções oferecem suporte a Kerberos.

NFSv4 e portas de rede

Uma vantagem do NFSv4 sobre o NFSv3 é que o NFSv4 usa uma única porta TCP (porta 2049) para todo o tráfego. Se você tiver um ambiente NFSv4 em uma rede virtual do Azure ou localizado em seu datacenter, será mais fácil fornecer acesso entre firewalls quando você oferecer suporte a 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 a dados de acréscimo a uma conta de máquina específica. As permissões NFSv3 (bits de modo) não podem satisfazer esses requisitos porque as permissões v3 não têm o nível de granularidade necessário.

O NFSv4 introduz listas de controle de acesso (ACLs). Cada arquivo/pasta pode ter uma ACL aplicada a ele. Cada ACL consiste em uma ou mais entradas de controle de acesso (ACEs). Essa abordagem é familiar para os administradores de NTFS do Windows porque o NTFS segue o mesmo modelo.

Se seu ambiente usa ACLs NFSv4, você precisa determinar qual solução de armazenamento melhor atende a esse requisito.

Resumo

Arranhamos a superfície das considerações do protocolo NFS. Os itens que discutimos representam os principais fatores a serem considerados ao escolher sua solução de armazenamento.

Você precisa avaliar seu ambiente atual e seus requisitos de gerenciamento de grupo, rede e segurança para determinar a solução de armazenamento apropriada.

Esta tabela fornece uma comparação baseada na discussão anterior:

Funcionalidade NFSv3 NFSv4
Permissões de arquivo/pasta Bits de modo Bits de modo e/ou ACLs
Encriptação Nenhuma Kerberos
Portas de rede TCP ou UDP, portmapper necessário Porta TCP 2049
Bloqueio de ficheiros NLM Consultivo Suporte de bloqueio ativo

Verifique o seu conhecimento

1.

Se você precisar proteger arquivos ou pastas com base em um conjunto de grupos e usuários, considere usar:

2.

Se o seu aplicativo exigir bloqueio de arquivo imposto no nível do sistema operacional, você deve usar: