Skip to content

Instantly share code, notes, and snippets.

@soulmachine
Last active March 22, 2024 20:54
Show Gist options
  • Star 24 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save soulmachine/6310916333df55d91d59ddaec1e90c4f to your computer and use it in GitHub Desktop.
Save soulmachine/6310916333df55d91d59ddaec1e90c4f to your computer and use it in GitHub Desktop.
Launch a NFS server on Proxmox

Method 1: NFS server on LXC container

Create a priviledged LXC container with:

mount=nfs,nesting=1

apt update

apt install nfs-kernel-server

sudo mkdir -p /shared_folder sudo chown nobody:nogroup /shared_folder sudo chmod 777 /shared_folder

/etc/exports

/shared_folder 192.168.1.0/24(rw,sync,no_subtree_check)

sudo exportfs -a sudo systemctl restart nfs-kernel-server

sudo ufw allow from 192.168.100/24 to any port nfs

cat /etc/dfs/sharetab

https://vitux.com/install-nfs-server-and-client-on-ubuntu/

NFS client in a priviledged LXC container

sudo apt install nfs-common
sudo mkdir -p /mnt/shared_folder_on_nfs

sudo mount -t nfs 192.168.1.2:/shared_folder /mnt/shared_folder_on_nfs

https://forum.proxmox.com/threads/nfs-client-in-unprivileged-container.53156/

Hey. is it possible to have a nfs client inside an unprivileged lxc container ? put shortly - this is not possible (NFS has no support for user namespaces (yet)).

Method 2: Share ZFS dataset via NFS on Proxmox

apt install nfs-kernel-server


zfs create dpool/nfs_shared_folder
zfs set sharenfs=on dpool/nfs_shared_folder
sudo chown nobody:nogroup /dpool/nfs_shared_folder
sudo chmod 666 /dpool/nfs_shared_folder

sudo mkdir -p /mnt/shared_folder_on_nfs
sudo mount -t nfs proxmox.local:/dpool/nfs_shared_folder /mnt/shared_folder_on_nfs

/etc/fstab:
proxmox.local:/dpool/nfs_shared_folder  /mnt/shared_folder_on_nfs  nfs  auto  0  0

# On nfs server:
rpcinfo -p | grep nfs
zfs get sharenfs dpool/nfs_shared_folder

# On nfs client:
rpcinfo -p 192.168.1.2
rpcinfo -T tcp 192.168.1.2 nfs
rpcinfo -T udp 192.168.1.2 nfs
showmount -e proxmox.local

References:

@docop
Copy link

docop commented Jul 4, 2023

Do you may have the step, for using an unpriviledged container too ? thanks

@danaimone
Copy link

danaimone commented Dec 24, 2023

It is possible to share NFS in a unprivileged container, it just requires bind-mounts. See https://pve.proxmox.com/wiki/Unprivileged_LXC_containers

@danaimone
Copy link

danaimone commented Dec 24, 2023

Also, if your client doesn't have rpcinfo, run apt install rpcbind. proxmox.local will be whatever your node hostname is named (in my case it was just pve)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment