Skip to main content
NetApp artificial intelligence solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Solução da NetApp para problema de renomeação de cargas de trabalho NFS para Kafka

O Kafka é criado com a suposição de que o sistema de arquivos subjacente seja compatível com POSIX: por exemplo, XFS ou Ext4. O rebalanceamento de recursos do Kafka remove arquivos enquanto o aplicativo ainda os está utilizando. Um sistema de arquivos compatível com POSIX permite que o unlink prossiga. No entanto, ele só remove o arquivo depois que todas as referências a ele desaparecem. Se o sistema de arquivos subjacente estiver conectado à rede, o cliente NFS interceptará as chamadas de desvinculação e gerenciará o fluxo de trabalho. Como há aberturas pendentes no arquivo que está sendo desvinculado, o cliente NFS envia uma solicitação de renomeação ao servidor NFS e, no último fechamento do arquivo desvinculado, emite uma operação de remoção no arquivo renomeado. Esse comportamento é comumente chamado de renomeação boba do NFS e é orquestrado pelo cliente NFS.

Qualquer corretor Kafka que use armazenamento de um servidor NFSv3 terá problemas por causa desse comportamento. No entanto, o protocolo NFSv4.x tem recursos para resolver esse problema, permitindo que o servidor assuma a responsabilidade pelos arquivos abertos e desvinculados. Os servidores NFS que oferecem suporte a esse recurso opcional comunicam a capacidade de propriedade ao cliente NFS no momento da abertura do arquivo. O cliente NFS então cessa o gerenciamento de desvinculação quando há aberturas pendentes e permite que o servidor gerencie o fluxo. Embora a especificação NFSv4 forneça diretrizes para implementação, até agora não havia nenhuma implementação de servidor NFS conhecida que suportasse esse recurso opcional.

As seguintes alterações são necessárias para que o servidor NFS e o cliente NFS resolvam o problema bobo de renomeação:

  • Alterações no cliente NFS (Linux). No momento da abertura do arquivo, o servidor NFS responde com um sinalizador, indicando a capacidade de lidar com a desvinculação de arquivos abertos. As alterações do lado do cliente NFS permitem que o servidor NFS manipule a desvinculação na presença do sinalizador. A NetApp atualizou o cliente Linux NFS de código aberto com essas alterações. O cliente NFS atualizado agora está disponível para o RHEL 8.7 e RHEL 9.1.

  • Alterações no servidor NFS. O servidor NFS monitora as aberturas. A desvinculação de um arquivo aberto existente agora é gerenciada pelo servidor para corresponder à semântica POSIX. Quando o último arquivo aberto é fechado, o servidor NFS inicia a remoção real do arquivo, evitando assim o processo bobo de renomeação. O servidor ONTAP NFS implementou esse recurso em sua versão mais recente, o ONTAP 9.12.1.

Com as alterações acima no cliente e servidor NFS, o Kafka pode colher com segurança todos os benefícios do armazenamento NFS conectado à rede.