NFS Datastore Mount Fails¶
You add an NFS datastore but the row shows red on one or more nodes, or VMs can't use the datastore.
Common failure modes¶
mount.nfs: access denied by server¶
The NFS export doesn't include the node's IP (or its subnet). Fix on the NFS server:
# /etc/exports
/exports/mfcloud-vms 192.168.10.0/24(rw,no_root_squash,no_subtree_check)
exportfs -ar
Then Storage → row → Retry in the UI.
mount.nfs: Connection timed out¶
Firewall is blocking 2049/tcp or 111/tcp+udp between the node and the NFS server. Open them on both sides:
# On the NFS server
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --reload
# On each compute node
firewall-cmd --add-port=2049/tcp --permanent
firewall-cmd --add-port=111/tcp --permanent
firewall-cmd --add-port=111/udp --permanent
firewall-cmd --reload
umount: target is busy on Remove¶
A VM still has its disk on the datastore. The removal flow refuses to forcibly umount a busy mountpoint to avoid corrupting in-flight writes. Identify and migrate / delete the offending VMs:
Pool name collision¶
409: pool name '<name>' is reserved or already exists
Reserved names are default, images, iso. Pick something tenant-specific (tenant-acme-nfs). If it's a stale registration, virsh pool-list --all will show it; clean up with virsh pool-undefine <name> on every node.
/etc/fstab got duplicated¶
If you tried adding the same datastore twice with different names, you may see duplicate lines in /etc/fstab. The provisioner dedup's on the mountpoint (column 2) via awk, so old removals targeting a different mountpoint stayed put. Fix:
After fixing¶
Removing and re-adding the datastore is the most reliable way to re-run the idempotent install script. The provisioner is safe to run multiple times — it'll only add what's missing.