Регулярно настраиваю NFS под разные прикладные задачи, чаще всего временные. Когда нужно быстро перекинуть большой объем данных между серверами, NFS почти всегда выигрывает по скорости у scp/ssh, SMB и HTTP. Особенно в локальной сети.
Решил оформить краткую инструкцию, чтобы можно было сохранить и использовать как готовый чеклист.
▪️ Сервер. Обычно все временные шары держу в /mnt:
mkdir /mnt/share
chown nobody:nogroup /mnt/share
Устанавливаем сервер NFS:
apt install nfs-kernel-server
Экспортируем каталог, например, только для клиента
172.16.10.25. Добавляем в /etc/exports:
/mnt/share 172.16.10.25(rw,all_squash,no_subtree_check,crossmnt)
Для всей подсети:
/mnt/share 172.16.10.0/24(rw,all_squash,no_subtree_check,crossmnt)
Для нескольких хостов будет удобнее отдельными строками:
/mnt/share 172.16.10.25(rw,all_squash,no_subtree_check,crossmnt)
/mnt/share 172.16.10.30(rw,all_squash,no_subtree_check,crossmnt)
Применяем конфигурацию:
systemctl restart nfs-server
systemctl status nfs-server
Для работы NFS должен быть доступен TCP порт 2049.
▪️ Клиент. Ставим клиентские утилиты:
apt install nfs-common
Проверяем, что сервер отдает экспорт:
showmount -e 172.16.10.10
Export list for 172.16.10.10:
/mnt/share 172.16.10.25
Монтируем ресурс:
mkdir /mnt/share
mount 172.16.10.10:/mnt/share /mnt/share
Проверяем:
df -h | grep nfs
172.16.10.10:/mnt/share 80G 5.1G 72G 7% /mnt/share
Желательно убедиться, что используется NFSv4:
mount -t nfs4
Тестируем запись:
echo "hello nfs" > /mnt/share/test.txt
При необходимости можно добавить в
/etc/fstab:
172.16.10.10:/mnt/share /mnt/share nfs4 defaults 0 0
(и не забыть перевод строки в конце).
Для временных задач - это простой, быстрый и надежный вариант.
#linux #nfs
🧑💻 NetworkAdmin