Resumo

  • RFC 9561 mapeia o layout SCSI do pNFS para identificação de namespace, chaves de reserva, fencing de cliente e esvaziamento de cache NVMe.
  • NGUID nomeia o alvo, Preempt solicita mudança de reserva e Flush sustenta uma afirmação limitada de armazenamento estável; nenhum deles é o resultado final do arquivo.
  • A prova operacional liga Host Identifier, todos os controladores, estado da reserva, E/S pós-fencing, cache, LAYOUTCOMMIT e leitura posterior.

O MDS respondeu com sucesso a LAYOUTCOMMIT, e o painel fechou a operação. Ainda não sabemos se o cliente antigo perdeu todos os caminhos, se os bytes deixaram o cache volátil ou se a aplicação encontrou o arquivo esperado. RFC 9561 fornece operações comuns sem transformar as três perguntas em uma.

Publicado em abril de 2024 no Standards Track do IETF, RFC 9561 preserva o layout SCSI de RFC 8154 e mapeia seus conceitos para NVMe. O modelo independe de o controlador usar PCIe, RDMA, TCP ou Fibre Channel.

Identidade do namespace não é leitura do conteúdo

O namespace precisa expor EUI64 ou NGUID. O designador binário do volume pNFS carrega um deles, distinguido pelo comprimento XDR de oito ou dezesseis octetos. Isso torna a referência interoperável.

Não prova conteúdo atual nem coerência entre caminhos. Chaves de reserva NVMe valem para todos os controladores associados ao mesmo Host Identifier. Logo, a reserva só tem escopo compreensível quando inventário de controladores e identidades de host também são conhecidos.

Fencing precisa terminar em rejeição observável

Antes de entregar o volume, o MDS registra sua chave e adquire Exclusive Access – Registrants Only. Para cercar um cliente sem resposta, emite Preempt ou Preempt and Abort com sua própria chave e a do alvo. Reservation Conflict informa ao cliente que houve fencing.

RFC 8154 exige algo mais forte: toda E/S emitida pelo cliente cercado deve ser rejeitada pelo armazenamento. Por isso, é preciso capturar reserva antes/depois e testar a chave antiga em cada caminho. Um comando correto aplicado a um inventário incompleto produz um recibo incompleto.

Após erro não repetível com DNR, o cliente deve commitar layouts afetados via MDS, devolver os pendentes, esquecer o dispositivo e retirar a chave. A norma distribui deveres; não observa a execução concreta.

O commit depende do estado do cache

Quando VWC e WCE ativam cache de escrita volátil, o MDS deve concluir NVMe Flush antes de LAYOUTCOMMIT retornar. O flush equivale a SCSI SYNCHRONIZE CACHE. Seu sucesso apoia uma afirmação delimitada pelo namespace, ordem e conclusão observados, não uma garantia automática de replicação, leitura futura ou transação de negócio.

NFSv4/RPC também não protege automaticamente a E/S NVMe inferior. NVMe/TCP pode usar TLS; PCIe pode não acrescentar segurança de protocolo. NFS autoriza usuários e arquivos, NVMe autoriza iniciadores e volumes; o cliente precisa manter essa correspondência.

A disciplina de camadas de Lu Heng impede que identificador, configuração, comando executado, estado do dispositivo e observação da aplicação sejam tratados como sinônimos.