docs/pbs-deployment: note ZFS case-insensitive + NFSv4 incompatibility
Discovered during Phase 1.3 (mount NAS datastore). The Debian NAS's /mnt/backup is on ZFS with casesensitivity=insensitive; NFSv4 writes fail with EACCES even for root with no_root_squash. Known-bad combination at the ZFS-on-Linux + NFSv4 layer. Workaround: mount the NFS share with vers=3. PBS's chunk-based access pattern works fine over NFSv3. Added a section 0.5 to Phase 0 documenting the issue + both fixes (quick: use NFSv3; cleaner: create case-sensitive child dataset). Future deployments against this NAS won't rediscover the same wall.
This commit is contained in:
@@ -63,6 +63,36 @@ so Cockpit doesn't clobber it.
|
|||||||
Not blocking PBS work but worth tightening during a Cockpit pass —
|
Not blocking PBS work but worth tightening during a Cockpit pass —
|
||||||
reduce to `10.0.0.0/8` or more specific. Open item, not blocker.
|
reduce to `10.0.0.0/8` or more specific. Open item, not blocker.
|
||||||
|
|
||||||
|
### 0.5. ZFS case-insensitivity breaks NFSv4 writes
|
||||||
|
|
||||||
|
The Debian NAS's `/mnt/backup` is a ZFS dataset with
|
||||||
|
`casesensitivity=insensitive`. ZFS + NFSv4 + case-insensitive dataset
|
||||||
|
is a known-bad combo: lookups/readdir work, `create`/`write` ops fail
|
||||||
|
with EACCES even for root with `no_root_squash`.
|
||||||
|
|
||||||
|
**Workaround:** mount with NFSv3 instead of NFSv4. Update the VM's
|
||||||
|
`/etc/fstab` filesystem type to `nfs` and options to `vers=3`. PBS's
|
||||||
|
access pattern (dedupe chunks are writen-once/read-many) works fine
|
||||||
|
over NFSv3.
|
||||||
|
|
||||||
|
Example `/etc/fstab` line that works:
|
||||||
|
|
||||||
|
```
|
||||||
|
10.250.50.50:/mnt/backup/pbs-ana /mnt/pbs-datastore nfs defaults,_netdev,bg,hard,timeo=600,retrans=2,vers=3 0 0
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cleaner long-term fix** (not required, but nicer): create a
|
||||||
|
case-sensitive child dataset for PBS's data:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo zfs create -o casesensitivity=sensitive -o mountpoint=/mnt/backup/pbs-ds \
|
||||||
|
NASPool/backupStore/pbs-ds
|
||||||
|
```
|
||||||
|
|
||||||
|
Then export/mount `/mnt/backup/pbs-ds` via NFSv4 as originally planned.
|
||||||
|
Case-sensitivity can't be changed on an existing dataset, which is why
|
||||||
|
the parent is stuck on case-insensitive.
|
||||||
|
|
||||||
## Phase 1 — Provision PBS-ANA (VM on pfi-pve)
|
## Phase 1 — Provision PBS-ANA (VM on pfi-pve)
|
||||||
|
|
||||||
**Target state:** a fresh Debian 12 VM on pfi-pve running
|
**Target state:** a fresh Debian 12 VM on pfi-pve running
|
||||||
|
|||||||
Reference in New Issue
Block a user