Skip to content

docs(nodes): multi-disk volume pools tutorial (aleph-vm 2.0) - #83

Merged
odesenfans merged 2 commits into
mainfrom
docs/crn-multi-disk-volume-pools
Aug 27, 2026
Merged

docs(nodes): multi-disk volume pools tutorial (aleph-vm 2.0)#83
odesenfans merged 2 commits into
mainfrom
docs/crn-multi-disk-volume-pools

Conversation

@odesenfans

Copy link
Copy Markdown
Contributor

Adds `docs/nodes/compute/advanced/storage-pools/` and a sidebar entry under Compute Nodes → Advanced Features.

Covers, for CRN operators on aleph-vm 2.0:

  • how volume pools work (pool 0 + `ALEPH_VM_VOLUME_POOLS`, placement, capacity accounting)
  • media classes and why HDDs are rejected for VM disks
  • step-by-step: mount disks, declare pools, restart, verify
  • the marker file / `volume-pools.json` unmounted-disk guard and how to retire a pool
  • troubleshooting table keyed on the agent's startup error messages

Site builds cleanly (`npm run docs:build`).

🤖 Generated with Claude Code

https://claude.ai/code/session_01WuSSYXc921wiHCUweF1ANC

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown

Deployed on:

Preview for this pull request, updated on every commit and removed once the PR is closed.

@odesenfans
odesenfans force-pushed the docs/crn-multi-disk-volume-pools branch from 5b019cd to 2747687 Compare August 27, 2026 11:54

@foxpatch-aleph foxpatch-aleph left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a well-written, thorough documentation addition for a feature that is purely docs (no code changes beyond the sidebar config). The technical content is clear, the step-by-step instructions are well-structured, and the safety guards and troubleshooting sections are genuinely helpful. The sidebar entry is correctly placed. I have a few minor suggestions for clarity and one slightly misleading entry in the troubleshooting table.

docs/nodes/compute/advanced/storage-pools/index.md (line 151): The troubleshooting row for Unknown media class says to use nvme, ssd or hdd. However, hdd pools are rejected at startup (line 27, and the next troubleshooting row). Suggesting hdd as a fix for a class typo will immediately lead to the next error. Consider changing the fix to: "Use exactly nvme or ssd (HDD pools are rejected)" or split the guidance.

docs/nodes/compute/advanced/storage-pools/index.md (line 19): "its largest single volume fits on the emptiest pool" is potentially confusing — does the admission check really require the largest volume to fit on the emptiest pool (most conservative), or on some pool with enough space? If it's the latter, consider rewording to "fits on at least one pool". If it genuinely is the emptiest pool, a brief note on why would help readers understand the conservatism.

docs/nodes/compute/advanced/storage-pools/index.md (line 40): Consider adding a brief caution that mkfs.ext4 destroys existing data on the target device, and that operators should verify the device name with lsblk before formatting. Copy-paste of a raw device path is a common cause of data loss.

docs/nodes/compute/advanced/storage-pools/index.md (line 50): The fstab line uses a bare code fence (no language tag). While this renders fine, usingtext or ```fstab (if supported) would give consistent syntax highlighting with the other shell blocks in the document.

@odesenfans

Copy link
Copy Markdown
Contributor Author

Addressed all four points in the follow-up commit: the unknown-class fix no longer suggests hdd, the admission sentence now says "fits on at least one pool" (that is what the roomiest-pool check amounts to), a danger callout before mkfs points at lsblk, and the fstab snippet is tagged text.

@foxpatch-aleph foxpatch-aleph left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A well-written, thorough tutorial on multi-disk volume pools for aleph-vm 2.0. The structure is clear (concepts → steps → safety → troubleshooting), the VitePress syntax is correct, the config path /etc/aleph-vm/supervisor.env is consistent with sibling docs, and the internal anchor link to #safety-guards resolves correctly. One notable concern: the document introduces an 'aleph-vm-agent' systemd service that does not appear anywhere else in the codebase — all other docs reference only aleph-vm-supervisor. If this service name is wrong or does not exist as a separate unit, operators will hit 'Unit not found' errors when following the restart and log-check commands.

docs/nodes/compute/advanced/storage-pools/index.md (line 99): The service name aleph-vm-agent appears only in this document. Every other doc in the codebase references aleph-vm-supervisor (or aleph-vm-supervisor.service) as the sole service to restart and inspect. If aleph-vm-agent is a genuinely new systemd unit in aleph-vm 2.0, consider adding a brief note (e.g., 'aleph-vm 2.0 splits the supervisor into two services...') so operators coming from 1.x docs are not confused. If it is not a separate service, these commands will fail with 'Unit not found'.

docs/nodes/compute/advanced/storage-pools/index.md (line 46): Formatting the whole block device (mkfs.ext4 /dev/nvme1n1) without a partition table works but may surprise operators who expect a partition (e.g., /dev/nvme1n1p1). Not a bug, but a one-line note like 'without a partition table, which is fine for a dedicated disk' would preempt confusion.

Explains VOLUME_POOLS configuration for CRN operators: preparing and
mounting extra SSD/NVMe disks, declaring pools, media classes and the HDD
rule, the marker/registry unmounted-disk guard, pool retirement and a
troubleshooting table.
Drop hdd from the unknown-class fix (HDD pools are rejected anyway), say
the largest volume must fit on at least one pool rather than the
emptiest, warn before mkfs, and tag the fstab snippet as text.
@odesenfans
odesenfans force-pushed the docs/crn-multi-disk-volume-pools branch from eb8f7a6 to 5691254 Compare August 27, 2026 12:34

@foxpatch-aleph foxpatch-aleph left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well-structured documentation that matches the style and conventions of sibling advanced-feature pages. The sidebar entry is correctly placed, the build passes cleanly, and no new broken links are introduced. The content is comprehensive: pool model, media classes, step-by-step configuration, safety guards (marker file + registry), pool retirement, and a troubleshooting table keyed on actual startup error messages. Cross-references to ALEPH_VM_PERSISTENT_VOLUMES_DIR, /var/lib/aleph/vm/volumes/persistent/, and /about/usage/system are consistent with the rest of the docs. The shell examples are safe (mkfs danger callout, UUID-based fstab, nofail mount option). A few minor wording nits around 'fastest-eligible' placement and the path=class shorthand but nothing that warrants blocking the merge.

docs/nodes/compute/advanced/storage-pools/index.md (line 3): The intro says 'fastest-eligible disk with the most free space', but the placement description on line 17 only mentions 'most free bytes' with no speed-based ranking. If 'eligible' simply means 'non-HDD pool', consider clarifying so the intro doesn't imply a speed tier ordering (nvme > ssd) that the body doesn't describe.

docs/nodes/compute/advanced/storage-pools/index.md (line 25): The shorthand path=class could be misread as a literal keyword. Since the examples on lines 78/84 show the real syntax (/mnt/nvme1/aleph-volumes=nvme), consider writing it as <path>=<class> or /<path>=<class> to make the placeholder nature clearer.

docs/nodes/compute/advanced/storage-pools/index.md (line 141): In retirement step 1, ls {pool} uses a bare placeholder without backticks. Using a concrete example path (e.g. ls /mnt/nvme1/aleph-volumes) would match the style of the other shell examples in the guide.

@odesenfans
odesenfans merged commit e08f125 into main Aug 27, 2026
1 check passed
@odesenfans
odesenfans deleted the docs/crn-multi-disk-volume-pools branch August 27, 2026 12:39
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