Кратко

  • RFC 9561 сопоставляет SCSI-layout pNFS с идентификаторами namespace, ключами резервирования, fencing клиента и сбросом энергозависимого кэша NVMe.
  • NGUID называет цель, Preempt запрашивает переход состояния, Flush подтверждает ограниченную границу стабильного хранения; ни один из них не является итогом файла.
  • Нужна цепочка Host Identifier, всех контроллеров, резервирования, I/O после fencing, кэша, LAYOUTCOMMIT и последующего чтения.

MDS успешно ответил на LAYOUTCOMMIT, и панель закрыла операцию. Но ответ не говорит, потерял ли старый клиент доступ по каждому пути, вышли ли байты из энергозависимого кэша и увидело ли приложение ожидаемый файл.

RFC 9561 опубликован в апреле 2024 года как Standards Track IETF. Он не меняет RFC 8154, а переводит его SCSI-понятия в NVMe для PCIe, RDMA, TCP и Fibre Channel.

Имя пространства не проверяет данные

Namespace должен иметь EUI64 или NGUID. Двоичный designator pNFS несёт одно значение; длина XDR в восемь или шестнадцать октетов различает их. Это устраняет неоднозначность формата, но не подтверждает содержимое и согласованность путей.

Ключи резервирования NVMe действуют на все контроллеры с одним Host Identifier. Реальный охват поэтому определяется инвентарём контроллеров и идентичностей, а не только логическим именем.

Fencing завершается наблюдаемым отказом

До выдачи тома MDS регистрирует ключ и приобретает Exclusive Access – Registrants Only. Для молчащего клиента он выполняет Preempt либо Preempt and Abort. Клиент распознаёт fencing по Reservation Conflict.

RFC 8154 требует более сильного результата: хранилище должно отвергать все I/O от fenced-клиента. Значит, нужны состояния до и после и проверка старого ключа на каждом пути. Успешный Preempt по неполному списку — неполный чек.

После неповторяемой ошибки DNR клиент обязан через MDS закоммитить затронутые layout, вернуть остальные, забыть устройство и снять ключ. Норма назначает обязанность, но не доказывает её исполнение конкретным клиентом.

Commit зависит от состояния кэша

Если VWC и WCE включают энергозависимый кэш записи, MDS должен завершить NVMe Flush до возврата LAYOUTCOMMIT. Это аналог SCSI SYNCHRONIZE CACHE. Успех относится к наблюдаемому namespace, порядку и завершению, а не автоматически к репликации, будущему чтению или бизнес-транзакции.

Защита NFSv4/RPC также не переносится автоматически на нижний путь NVMe. NVMe/TCP может применять TLS, а PCIe — почти не добавлять протокольной защиты. NFS управляет пользователями и файлами, NVMe — инициаторами и томами; клиент связывает эти полномочия.

Подход Лу Хэна разделяет идентификатор, конфигурацию, выполненную команду, состояние устройства и наблюдение приложения. Смешение этих слоёв создаёт ложную уверенность.