Сетевая файловая система (NFS) – это популярный протокол распределенной файловой системы, который позволяет пользователям монтировать удаленные каталоги на своем компьютере. NFS довольно хорошо работает c каталогами, к которым пользователям требуется частый доступ. Практически во всех версиях Linux команды будут одинаковые. Мы рассмотрим как монтировать общий ресурс NFS на примере сервера Ubuntu 18.04.
Пусть компьютеры будут иметь следующие адреса:
Сервер: 192.168.1.5
Клиент: 192.168.1.100
Требуется подключить существующую папку /home и специально созданную папку /var/nfs с сервера к клиенту.
Установка пакетов
Прежде всего, требуется установить необходимые компоненты как на сервере, так и на клиентских компьютерах. На сервере вам потребуется установить пакет nfs-kernel-server , который позволит использовать совместный доступ к вашим каталогам.
sudo apt update sudo apt install nfs-kernel-server
На клиентском компьютере вам потребуется установить пакет nfs-common.
sudo apt update sudo apt install nfs-common
Создание общего каталога на сервере
Мы будем монтировать специально созданный на сервере каталог на клиентский компьютер. Создадим каталог nfs.
sudo mkdir /var/nfs
Назначим права:
sudo chown nobody:nogroup /var/nfs
Теперь отредактируем файл, отвечающий за совместное использование ресурсов NFS
sudo nano /etc/exports
Здесь нужно создать строку для каждого из каталогов, которые должны быть общими и указать с какими компьютерами мы разделяем ресурсы. В нашем примере IP-адрес клиента – 192.168.1.100, поэтому строки должны выглядеть примерно так:
/home 192.168.1.100(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.1.100(rw,sync,no_subtree_check)
В случае если нужно раздать каталог на все компьютеры подсети вместо 192.168.1.100 нужно указать 192.168.1.0/24
Давайте разберем, что здесь написано.
rw: эта опция позволяет клиентскому компьютеру как читать, так и записывать в данный каталог.
sync: заставляет NFS записывать изменения на диск перед ответом, что приводит к более стабильной и согласованной среде. Это связано прежде всего с тем, что ответ повторяет фактическое состояние удаленного тома.
no_subtree_check: эта опция предотвращает проверку поддеревьев. Сервер при каждом запросе проверяет, действительно ли файл все еще доступен в экспортируемом дереве. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
no_root_squash: по умолчанию NFS переводит запросы от пользователя root на клиентском компьютере в непривилегированного на сервере. Это параметр безопасности который не позволяет учетной записи root на клиенте использовать файловую систему сервера в качестве root.
После того, как необходимые изменения внесены и сохранены, выполним команду:
sudo exportfs -a
и запустим службу NFS
sudo service nfs-kernel-server start
Данная команда сделает ваши ресурсы доступными для клиентов, которых вы настроили. Теперь перейдем к следующему шагу.
Создание точек монтирования и монтирование удаленных общих ресурсов на клиентском компьютере
Сперва создадим точки монтирования удаленных ресурсов.
sudo mkdir -p /mnt/nfs/home sudo mkdir -p /mnt/nfs/var/nfs
Подключаем.
sudo mount 192.168.1.5:/home /mnt/nfs/home sudo mount 192.168.1.5:/var/nfs /mnt/nfs/var/nfs
Автоматическое монтирование производится через fstab
sudo nano /etc/fstab
Допишем в конец файла
192.168.1.5:/home /mnt/nfs/home nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0 192.168.1.5:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0
Если вам больше не требуется монтировать удаленный каталог в вашей системе, вы можете легко размонтировать его используя следующие команды:
sudo umount /mnt/nfs/home sudo umount /mnt/nfs/var/nfs
NFS предлагает простой и быстрый механизм доступа к удаленным системам по сети. Однако протокол является не зашифрованным. Если вы намерены использовать это в производственной среде, рекомендуется рассмотреть возможность запуска NFS через SSH или VPN-соединение.