diff --git a/docs/runbooks/pbs-deployment.md b/docs/runbooks/pbs-deployment.md index 414fa2d..0906e99 100644 --- a/docs/runbooks/pbs-deployment.md +++ b/docs/runbooks/pbs-deployment.md @@ -190,6 +190,23 @@ In the PBS web UI: **Datastore → Add Datastore**: The first time PBS writes to the datastore it initializes `.chunks/`, `.lock`, etc. Takes a few seconds. +### 1.4b. Create per-hypervisor namespaces + +VMIDs are NOT globally unique across PVE hosts (esh-pve and sfsrv-ana +both have VM 100 for instance). Without namespaces, their backups +collide under the same `/vm/100/` path in the datastore. Create a +namespace per hypervisor up front: + +```bash +for h in pfi-pve nh3-pve esh-pve esh-pve-nas sfsrv-ana; do + proxmox-backup-manager datastore namespace create backups $h +done +proxmox-backup-manager datastore namespace list backups +``` + +Each PVE client later (Phase 2.1, 3.1, 4) sets its Namespace field to +its own hostname when configuring the PBS storage. + ### 1.5. Create an API token for hypervisors to use PBS web UI: **Configuration → Access Control → API Token → Add**: @@ -239,12 +256,18 @@ Web UI: **Datacenter → Storage → Add → Proxmox Backup Server**: | Username | `root@pam!fleet-vzdump` | | Password | the token secret from 1.5 | | Datastore | `backups` | +| **Namespace** | **`pfi-pve`** (match the hypervisor name — see 1.4b) | | Fingerprint | from 1.6 | | Content | VZDump backup file | | Nodes | `pve` (pfi-pve) | Click Add. Storage should show as available within seconds. +> **Critical:** every hypervisor gets its own namespace value matching +> its own name — `nh3-pve`, `esh-pve`, `esh-pve-nas`, `sfsrv-ana`. +> Prevents VMID collisions (not-globally-unique VMIDs would otherwise +> land in the same `/vm//` path). + ### 2.2. Test backup of one VM Pick a small VM (e.g. an idle LXC like ana-filebot, VMID 112). Web UI: