Two findings from chasing node `pve` showing dark in the UI. esh-pve and esh-pve-nas are a 2-node cluster (esh-pve-cluster, expected votes 2, quorum 2, no qdevice). This was undocumented, and last night's migration rebooted one of the members without accounting for it. Nothing broke -- quorum is intact and both nodes report the same ring id -- but that was luck. Rebooting either node drops the survivor below quorum and makes its /etc/pve read-only until the partner returns. It matters for the pending confirmation reboot and the 225-package upgrade, both of which take a node down. The dark tile itself was NOT last night's doing. pvestatd SEGV'd on 2026-05-28 and had been dead 82 days; the journal has nothing between that crash and the restart today. It is only the reporting daemon, so the node stayed quorate and healthy with all services active and all three guests running the whole time -- the UI simply had nothing telling it the node was alive. Fourth SEGV in that unit's history, so treat a recurrence as expected and consider a watchdog: nothing alerts on it, and the sole symptom is cosmetic enough to go unnoticed for months.
esh-pve-nas
Second Proxmox VE host at the ESH home lab (esh-nas-pve.esteban.net), dedicated to NAS / storage duty.
Network
- LAN IP: 10.0.50.55
- FQDN:
esh-nas-pve.esteban.net - Web UI:
https://10.0.50.55:8006 - SSH:
root@esh-pve-nas(key auth)
Media services on this box sit at 10.0.50.56 (Plex) and 10.0.50.57 (Jellyfin) — references to esh-nas-pve in the homepage config point at those addresses.
Hardware
-
CPU: Intel Xeon W-1250 @ 3.30 GHz
-
RAM: 125.6 GB
-
Kernel:
6.8.12-13-pve(Proxmox 8.x) -
Storage: root is
nvme/ROOT/pve-1on the mirrored NVMe pool since the 2026-08-18 migration. The USB Disk-on-Module (7.3 GB,ID_BUS=usb, NORELSYS 1081) still holds the ESP and/boot, but is out of the runtime I/O path — a USB bus reset no longer drops root from under a running hypervisor. Runbook:docs/runbooks/esh-pve-nas-boot-migration.md.DOM LVM layout:
LV size role pve-root6.04 G ext4 — the rollback, intact and unmounted, keeps its own kernel + initrd pve-boot512 M ext4 — /boot, carved out of swappve-swap256 M swap, shrunk to make room /bootstays ext4 on the DOM on purpose: GRUB cannot read thenvmepool, which hasencryption,large_dnodeandzstd_compressenabled.⚠ Device letters are not stable — the DOM was
sdqbefore the reboot andsdlafter.fstabuses/dev/pve/*and UUIDs; never write a rule against a baresdXon this host.⚠ There is no auto-fallback if a boot fails. grubenv lives on an LVM LV, which GRUB can read but not write, so
grub-reboot's one-shot degrades to a sticky default (verified 2026-08-18:next_entrysurvived the boot that consumed it). Steady state issaved_entry=pve-zfs-rootwith nonext_entry. A failed boot needs the console — and this box has no IPMI, no BMC, no serial console. Recovery is selectingProxmox VE - ROLLBACK: ext4 root on the USB DOMat the GRUB menu. -
⚠ Never set the ZFS cachefile on one pool.
zpool set cachefile=…flips the host from import-by-scan to import-by-cache; a cache holding onlynvmeleavesssdandtankunimported at boot, which empties every CT 103 export. Set it on all three or none. -
Pools:
nvme(2× 931 GB NVMe mirror — 32 G used, 867 G free, holds every guest rootfs),ssd(4× 894 GB Intel SATA, 2 mirrors — 1.42 T free),tank(12× 14.6 TB raidz2 ×2 — 40 T of 175 T). Plus NFS/mnt/pve/tank-vmbufor VM backups. -
⚠⚠ THIS HOST IS HALF OF A 2-NODE PROXMOX CLUSTER —
esh-pve-cluster, nodespve(esh-pve, 10.0.250.35, nodeid 1) andesh-nas-pve(this host, nodeid 2).Expected votes: 2,Quorum: 2, no qdevice. Taking either node down drops the survivor below quorum and makes its/etc/pveread-only — guests keep running, but no config change, no VM start/stop, no storage edit works until the partner returns. This was undocumented and nearly bit the 2026-08-18 migration, which rebooted this node without accounting for it. Before any planned reboot of either node, either accept the read-only window on the survivor or setpvecm expected 1on it for the duration. Discovered 2026-08-18. -
⚠ CT 103
esh-nas(10.0.50.50) runs on THIS host and serveshardNFS. Never reboot this host casually — quiesce the clients first. Measured from the server on 2026-08-18 (ss -tn '( sport = :2049 )'inside CT 103), there are five clients, not the two long documented here:client mounts opts esh-docker-vm 10.0.50.45/mnt/books,/mnt/backuphard — quiesce esh-pve 10.0.250.35/mnt/pve/esh-nas,/mnt/pve/tank-vmbuhard — quiesce esh-vm-db 10.0.50.60/mnt/backuphard — no ssh; reach it via qm guest exec 101on esh-pvevm-esh-nas 10.0.50.154— is VM 104 on this host; stops with it nh3-dev 10.100.10.50/mnt/bookssoft,ro — safe, errors rather than blocks Ask the server who its clients are; don't trust this table. It rots.
sson CT 103 is ground truth, and that is how the three undocumented clients surfaced. Playbooks:esh-cutover-1-quiesce-docker-vm.yaml,esh-cutover-2-quiesce-esh-pve.yaml,esh-cutover-5-restore-docker-vm.yaml.
Root-fs pressure: 77% of a 5.9 GB root (1.3 GB free) after the 2026-08-17 mitigation. Still not enough for the pending upgrade — 225 packages, 161 carrying
deb12uN/security bumps, including a ~250 MB signed kernel that lands in/boot. ⚠ Migrate first, patch after: unpacking that into 1.3 GB of headroom risks wedging dpkg on a hypervisor running five guests. The host is onpve-manager/8.4.11vs esh-pve's 8.4.14 for exactly this reason.
What it runs
Media + storage-adjacent workloads for the ESH site. Not yet catalogued here; qm list / pct list on the host is authoritative.
The ESH-FileBot entry in homepage (10.0.50.70, labeled "Restic Backup Target and File Sync — esh-nas-pve") is a workload running here — mentioned in the backup project as a possible additional restic endpoint; confirm role before integrating into the fleet plan.
Refresh state
scripts/refresh-server-info.sh esh-pve-nas
Placement rule
Hypervisor for ESH storage/media VMs. Non-PFI scope.