NFS
Пошаговая инструкция для быстрого создания NFS сервера в Proxmox LXC контейнере.
Подготовка
1. Определяем путь к папке, которую будем расшаривать
Устанавливаем переменную с путем к папке, которую хотим сделать доступной по NFS:
FOLDER=/mnt/data
2. Устанавливаем NFS сервер
Устанавливаем пакет nfs-kernel-server, который предоставляет функциональность NFS сервера:
apt install -y nfs-kernel-server
3. Настраиваем права доступа к папке
Изменяем владельца папки на nobody:nogroup для корректной работы NFS:
chown nobody:nogroup $FOLDER
4. Добавляем папку в экспорты NFS
Добавляем нашу папку в файл /etc/exports с правами доступа для сети 10.6.0.0/24:
rw- чтение и записьsync- синхронная записьno_subtree_check- отключение проверки поддеревьев для повышения производительности
echo "$FOLDER 10.6.0.0/24(rw,sync,no_subtree_check)" >> /etc/exports
5. Перезапускаем службу NFS
Перезапускаем службу NFS для применения изменений:
systemctl restart nfs-kernel-server
Дополнительные примеры
Расшаривание папки Nginx
Если нужно расшарить папку с веб-контентом Nginx:
/usr/share/nginx/html
Добавляем её в экспорты:
echo "/mnt/nginx 10.6.0.0/24(rw,sync,no_subtree_check)" >> /etc/exports
6. Проверяем статус службы
Проверяем, что служба NFS запущена и работает корректно:
systemctl status nfs-kernel-server
7. Просматриваем файл конфигурации экспортов
Проверяем содержимое файла /etc/exports для убеждения, что все папки добавлены корректно:
cat /etc/exports
Пример содержимого файла:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5)
#
# Example for NFSv2 and NFSv3
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/mnt/data 10.6.6.6/24(rw,sync,no_subtree_check)
/mnt/nginx 10.6.6.6/24(rw,sync,no_subtree_check)
/mnt/django 10.6.6.6/24(rw,sync,no_subtree_check,no_root_squash)
Дополнительные опции
Опция no_root_squash
Для некоторых приложений (например, Django) может потребоваться опция no_root_squash, которая позволяет root пользователю на клиенте иметь root права на сервере.
Подключение на клиенте
После настройки сервера, на клиентской машине можно подключить NFS папку командой:
mount -t nfs <IP_сервера>:/mnt/data /local/mount/point
Для постоянного монтирования добавьте строку в /etc/fstab:
<IP_сервера>:/mnt/data /local/mount/point nfs defaults 0 0