Skip to content

docs(pnfs): distributed file storage concept, pNFS performance, deployment architectures, prerequisites - #240

Open
schmidt-scaled wants to merge 1 commit into
mainfrom
docs/pnfs-architecture
Open

schmidt-scaled wants to merge 1 commit into
mainfrom
docs/pnfs-architecture

Conversation

@schmidt-scaled

Copy link
Copy Markdown
Contributor

Adds the architecture view of pNFS (shared ReadWriteMany file storage) on top of the pNFS docs from #238.

Changes

  • Concepts → Distributed File Storage (architecture/concepts/distributed-file-storage.md, new): how pNFS separates metadata (metadata server) from data (direct NVMe/TCP per client), with two new diagrams: the data path and the open → LAYOUTGET → direct I/O → LAYOUTCOMMIT sequence. Also what a shared volume inherits from a logical volume. The existing detailed page concepts/pnfs.md stays and now links to it.
  • Architecture → Performance and QoS: new section "Shared File Storage at Block Performance (pNFS)": no file server in the data path, throughput scales with clients, the same SPDK latency path, QoS unchanged, and the limits (metadata-bound workloads, fallback without the client driver).
  • Deployment Architectures: new section "Shared File Storage (pNFS)": the metadata server per storage cluster in each architecture and topology, DR not covering pNFS volumes yet, placement and network notes, plus a decision-table row.
  • Software Requirements: new "pNFS Requirements":
    • the KVM node;
    • privileged pods in the operator namespace;
    • the client kernel (CONFIG_PNFS_BLOCK with NVMe support and nvme_get_unique_id; RHEL 9.8 validated, 9.5 lacks it);
    • no host NFS packages;
    • TCP 2049 to a Service ClusterIP;
    • NVMe/TCP;
    • spec.pnfs.mds, the StorageClass and the state disk.

Sources

  • operator operator/docs/designs/design-pnfs-rwx.md (P0-8 ClusterIP, P0-9 nvme_get_unique_id, P0-10 CONFIG_PNFS_BLOCK) and design-pnfs-mds-vm.md (KVM, guest kernel);
  • csi-driver/internal/mds/netsetup (TCP 2049, /dev/net/tun), csi-driver/internal/csi/node/kvm_capability.go (label), operator/api/v1alpha2/simplyblockdriver_types.go;
  • the existing docs from Initial pNFS / ReadWriteMany documentation #238.

Upcoming, not documented as available

  • striped pNFS volumes (design-pnfs-striped.md, Draft);
  • creating a pNFS volume from a snapshot or volume;
  • DR protection of pNFS volumes;
  • the extended pNFS features in spdk#77 (open).

Quality gate

  • No errors in the changed pages. The only remaining error is reference/api/index.md (openapi.json), which is already on main.
  • Remaining warnings in the changed pages: list items that start upper case, and pre-existing heading-level and description warnings.

🤖 Generated with Claude Code

…tectures, prerequisites

- architecture/concepts/distributed-file-storage.md (new): how pNFS separates
  metadata from data, data-path and read/write sequence diagrams (new SVGs),
  what a shared volume inherits from a logical volume.
- storage-performance-and-qos.md: "Shared File Storage at Block Performance
  (pNFS)", how the NVMe/TCP data path and QoS carry over to ReadWriteMany.
- deployment-architectures.md: "Shared File Storage (pNFS)", where the
  metadata server runs in each architecture, placement and network notes;
  decision-table row.
- software-requirements.md: "pNFS Requirements" (KVM node, privileged pods,
  client kernel incl. nvme_get_unique_id, no host NFS packages, TCP 2049 to a
  Service ClusterIP, NVMe/TCP, SimplyblockDriver spec.pnfs.mds, StorageClass).
- concepts/pnfs.md links the new concept page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs-pnfs-architecture

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants