sudo apt-get install nfs-kernel-server
Настройка сервера делается в файле /etc/exports
Например:
/ubuntu *(ro,sync,no_root_squash,no_subtree_check) /common 192.168.0.1/24(rw,sync,no_subtree_check) 192.168.0.200(noaccess)
- доступ к директории /ubuntu получат доступ все на чтение
- доступ на чтение/запись к /common получит вся сеть 192.168.0.0/24 кроме 192.168.0.200
Для применения изменений первый раз перегружаем nfs, а затем достаточно команды:
sudo exportfs -r
http://winitpro.ru/index.php/2013/04/22/nfs-server-na-windows-server-2012/
https://linux.die.net/man/5/exports
Проверить поддерживаемые версии nfs сервером:
cat /proc/fs/nfsd/versions
Изменить режим логирования, в файле /etc/default/nfs-kernel-server изменить RPCMOUNTDOPTS на:
RPCMOUNTDOPTS="--manage-gids --debug all"
Создать в гипервизоре proxmox профиль lxc-container-default-with-nfsd для apparmor:
cat > /etc/apparmor.d/lxc/lxc-default-with-nfsd << 'EOF' # Do not load this file. Rather, load /etc/apparmor.d/lxc-containers, which # will source all profiles under /etc/apparmor.d/lxc profile lxc-container-default-with-nfsd flags=(attach_disconnected,mediate_deleted) { #include <abstractions/lxc/container-base> # the container may never be allowed to mount devpts. If it does, it # will remount the host's devpts. We could allow it to do it with # the newinstance option (but, right now, we don't). deny mount fstype=devpts, mount fstype=nfsd, mount fstype=rpc_pipefs, mount fstype=cgroup -> /sys/fs/cgroup/**, } EOF
Перечитать профили apparmor:
apparmor_parser -r /etc/apparmor.d/lxc-containers
Активировать профиль lxc-container-default-with-nfsd (для контейнера 100 на гипервизоре a01):
echo 'lxc.apparmor.profile = lxc-container-default-with-nfsd' >> /etc/pve/nodes/a01/lxc/100.conf
Перегрузить контейнер:
lxc-stop -n 100 lxc-start -n 100
https://gist.github.com/rwenz3l/0907385f6a6690c34eb8e36fa73d8405
sudo apt-get install nfs-common
Посмотреть шары на хосте:
showmount -e fs.domain.com
Подключение с помощью mount:
sudo mount example.domain.com:/ubuntu /local/ubuntu sudo mount -t nfs -o rw,hard,intr 192.168.0.1:/common ~/net/disk1 sudo mount nfsserver:/share/soft/ISO /mnt -o nfsvers=3,udp
или fstab:
example.domain.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr 192.168.0.1:/common /home/user2/net/disk3 nfs defaults 0 0 nfsserver:/share/soft/ISO /mnt nfs nfsvers=3,udp
rpc.nfsd[453]: error starting threads: errno 38 (Function not implemented)
При запуске сервера NFC в контейнере LXC
Решение: Сервер в контейнере LXC
clnt_create: RPC: Unknown host
При запуске showmount
Решение:
apt install netbase
clnt_create: RPC: Program not registered
Не запущен/Не доступен сервер nfs