ALLOCATE NFSv4.2: резервирование места не означает немедленную физическую запись
Фотография конкретного исполнения не приложена.
Для виртуального диска или растущего журнала важно исключить отказ записи из-за нехватки места в заранее известной области. NFSv4.2 ALLOCATE предназначен для такой гарантии. Это не просто увеличение отображаемой длины sparse-файла.
RFC 7862 описывает успешное резервирование диапазона, будущие записи в который не должны получить NFS4ERR_NOSPC. Сервер может отложить фактическое выделение backing blocks, но обязан обеспечить эту гарантию. Поэтому результат нельзя интерпретировать как доказательство конкретной физической раскладки или предварительной записи каждого сектора.
Расширение за прежний EOF также влияет на логический размер, а чтение ещё не записанных новых областей возвращает нули. При этом ALLOCATE не исключает все возможные ошибки: сбой устройства, потеря доступа и нарушение состояния имеют другие основания. Поддержку optional-функции проверяют у реальной пары клиента и сервера.
В приёмке подтверждают диапазон и поведение записи при последующем расходе свободного места другими файлами. Сверяют error handling и фактические возможности стека. Успешное обычное создание файла нужной длины не приравнивают к проверенному ALLOCATE, а гарантию места не называют общей гарантией доступности и сохранности данных.
Основание — Numbered RFC8881 NFSv4.1, RFC7862 NFSv4.2, RFC8276 xattrs and RFC9289 RPC-with-TLS; applicability scoped per task, разделы RFC7862 7 Space Reservation; 15.1 ALLOCATE. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC NFS/RPC. Возможности NFSv4.1, NFSv4.2 и дополнительных расширений разделены; их фактическая поддержка сервером и клиентом не подтверждалась. Монтирование, чтение рабочих файлов, запись и восстановление состояния не выполнялись.