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 —
|
||||
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)
|
||||
|
||||
**Target state:** a fresh Debian 12 VM on pfi-pve running
|
||||
|
||||
Reference in New Issue
Block a user