{
  "slug": "pnfs-layout",
  "term": "pNFS layout",
  "aliases": [
    "Parallel NFS layout"
  ],
  "definition": "A pNFS layout describes how a client's file-byte range maps to storage devices for direct data access.",
  "note": "A layout's format and storage-access rules depend on its type. Recall asks for return; revocation withdraws access and requires enforcement at the storage devices. The two events are distinct. [pnfs-types]\n\nLinux caches layout segments separately from device-ID mappings and data-server records, with references between them. A cached segment is therefore not cached file payload. [linux-layout-cache]\n\nFor block layouts, clients enforce file-byte ranges and allowed I/O modes because block devices lack that file-level context. Revocation fencing can cover an entire host and logical unit, affecting other layouts on the same storage units. Recall alone does not require this fencing. [pnfs-types]",
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-09",
  "limitations": [
    {
      "text": "Holding a layout is not evidence that written bytes are persistent.",
      "citationIds": [
        "pnfs-core"
      ]
    }
  ],
  "related": [
    "pnfs",
    "nfs-storage",
    "nfs-stateid",
    "nfs-delegation",
    "nfs-commit"
  ],
  "citations": [
    {
      "id": "pnfs-types",
      "title": "RFC 8434: Requirements for Parallel NFS Layout Types, sections 3 and 4.2; control requirements and block-layout fencing.",
      "url": "https://www.rfc-editor.org/rfc/rfc8434.html",
      "accessed": "2026-11-09"
    },
    {
      "id": "linux-layout-cache",
      "title": "Linux kernel documentation: Reference counting in pnfs; layout segments, device mappings and data-server caches.",
      "url": "https://docs.kernel.org/filesystems/nfs/pnfs.html",
      "accessed": "2026-11-09"
    },
    {
      "id": "pnfs-core",
      "title": "RFC 8881: NFSv4.1, sections 12.5.1, 12.5.4 and 13.7; layout access, attribute synchronization and COMMIT routing.",
      "url": "https://www.rfc-editor.org/rfc/rfc8881.html#section-12",
      "accessed": "2026-11-09"
    }
  ]
}
