NFS (Network File System) в основном разработана для совместного использования файлов и папок между Linux/Unix систем от компании Sun Microsystems в 1980 году. Она позволяет монтировать локальные файловые системы по сети и удаленных хостов, для взаимодействия с ними так, как будто они установлены локально на той же системе. С помощью NFS, мы можем настроить общий доступ к файлам между Unix в Linux системе и Linux для системы Unix.
Преимущества NFS
- NFS создает локальный доступ к удаленным файлам.
- Он использует стандартную архитектуру клиент/сервер для обмена файлами между всеми машинами на базе * NIX.
- С помощью NFS не нужно, чтобы обе машины работали на той же ОС.
- С помощью NFS мы можем настроить решение централизованного хранения.
- Пользователи получают свои данные независимо от их физического расположения.
- Автоматическое обновление для новых файлов.
- Более новая версия NFS поддерживает монтирование acl, pseudo под root.
- Может быть защищен брандмауэрами и Kerberos.
Услуги NFS
Cервис System V-launched. Серверный пакет NFS включает в себя три средства, входящие в состав пакетов portmap и nfs-Utils.
- portmap: отображает вызовы, сделанные из других машин к правильной службе RPC (не требуется с NFSv4 ).
- nfs: преобразует удаленные запросы общего доступа к файлам в запросы на локальной файловой системе.
- rpc.mountd: эта служба отвечает за монтирование и размонтирования файловых систем.
Важные файлы конфигурации для NFS
- /etc/exports: его основной конфигурационный файл NFS, все экспортируемые файлы и каталоги, которые определены в этом файле и на конечном сервере NFS.
- /etc/fstab: Для того, чтобы смонтировать каталог NFS на вашей системе без перезагрузок, нам нужно сделать запись в /etc/fstab.
- /etc/sysconfig/nfs: Конфигурационный файл NFS для управления, на котором порт RPC и другие услуги прослушивания.
Настройка и монтирование NFS на сервере Linux
Для настройки монтирования NFS, мы будем нуждаться по крайней мере, в двух машинах Linux/Unix. Вот в этом учебнике, мы будем использовать два сервера.
- Сервер NFS: nfsserver.example.ru с IP – 192.168.0.55
- Клиент NFS: nfsclient.example.ru с IP – 192.168.0.60
Установка сервера NFS и клиента NFS
Нам нужно установить пакеты NFS на нашем сервере NFS, а также на машине клиента NFS. Мы можем установить его с помощью “yum” (Red Hat Linux) и установочный пакет “apt-get” (Debian и Ubuntu).
[root@nfsserver ~]# yum install nfs-utils nfs-utils-lib [root@nfsserver ~]# yum install portmap (not required with NFSv4)
[root@nfsserver ~]# apt-get install nfs-utils nfs-utils-lib
Теперь запустите службы на обеих машинах.
[root@nfsserver ~]# /etc/init.d/portmap start [root@nfsserver ~]# /etc/init.d/nfs start [root@nfsserver ~]# chkconfig --level 35 portmap on [root@nfsserver ~]# chkconfig --level 35 nfs on
После установки пакетов и запуск сервисов на обеих машинах, нам нужно настроить обе машины для совместного использования файлов.
Настройка сервера NFS
Сначала настроим сервер NFS.
Настройка каталога экспорта
Для обмена каталог с NFS, нам нужно сделать запись в файл конфигурации “/etc/exports”. Здесь мы будем создавать новый каталог с именем “nfsshare” в разделе “/” для обмена с сервером клиента, вы также можете поделиться уже существующим каталогом с NFS.
[root@nfsserver ~]# mkdir /nfsshare
Теперь нам нужно сделать запись в “/etc/exports” и перезапустить службы, чтобы сделать наш каталог разделяемыми в сети.
[root@nfsserver ~]# vi /etc/exports /nfsshare 192.168.0.60(rw,sync,no_root_squash)
В приведенном выше примере, есть каталог, в разделе / под названием “nfsshare“, в настоящее время совместно с клиентом IP “192.168.0.60” с привилегиями чтения и записи (RW), вы можете также использовать имя хоста клиента вместо IP в приведенном выше примере.
Параметры NFS
Некоторые другие варианты мы можем использовать в файлы “/etc/exports” для совместного использования файлов выглядит следующим образом.
- ro: С помощью этой опции мы можем предоставить доступ только для чтения к общим файлам, то есть клиент будет только в состоянии прочитать.
- rw: Эта опция позволяет клиент – серверу доступ для обоих для чтения и записи в пределах общего каталога.
- sync: Синхронизация подтверждает запросы к общему каталогу только после того, как изменения были совершены.
- no_subtree_check: Эта опция предотвращает проверку поддерева. Когда общий каталог является подкаталогом большей файловой системы, NFS выполняет сканирование каждой директории над ним, чтобы проверить свои разрешения и детали. Отключение проверки поддерева может повысить надежность NFS, но снижают безопасность.
- no_root_squash: Эта фраза позволяет root, подключиться к определенной папке.
Для большего количества вариантов с “/etc/exports“, рекомендуется прочитать страницы руководства для экспорта.
Настройка клиента NFS
После настройки NFS-сервера, нам необходимо смонтировать этот общий каталог или раздел на клиентском сервере.
Монтирование общих каталогов на клиенте NFS
Теперь на клиенте NFS, нам нужно смонтировать этот каталог для доступа к нему на местном уровне. Для этого, во-первых, мы должны выяснить, какие ресурсы доступны на удаленном сервере или сервере NFS.
[root@nfsclient ~]# showmount -e 192.168.0.55 Export list for 192.168.0.55: /nfsshare 192.168.0.60
Командой показывает, что каталог с именем “nfsshare” доступна на “192.168.0.55” , чтобы поделиться с вашим сервером.
Монтирование доступного каталога в NFS
Для того, чтобы смонтировать общий NFS каталог, мы можем использовать следующую команду монтирования.
[root@nfsclient ~]# mount -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare
Приведенная выше команда установит общий каталог в “/mnt/nfsshare” на сервере клиента. Вы можете проверить его следующей командой.
[root@nfsclient ~]# mount | grep nfs sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 192.168.0.55:/nfsshare on /mnt type nfs (rw,addr=192.168.0.55)
Выше команда mount монтирует на NFS совместно используемый каталог на NFS клиента временно, чтобы смонтировать каталог NFS постоянно на вашей системе вне зависимости от перезагрузок, нам нужно сделать запись в “/etc/fstab“.
[root@nfsclient ~]# vi /etc/fstab
Добавьте следующую новую строку, как показано ниже.
192.168.0.55:/nfsshare /mnt nfs defaults 0 0
Тестирование режима работы установки NFS
Мы можем протестировать нашу установку сервера NFS путем создания тестового файла на стороне сервера и проверить его наличие на NFS клиента стороне или наоборот.
На стороне сервера nfsserver
Мы создали новый текстовый файл с именем “nfstest.txt” в этом общем каталоге.
[root@nfsserver ~]# cat > /nfsshare/nfstest.txt This is a test file to test the working of NFS server setup.
На стороне клиента nfsclient
Перейдите в общий каталог на сервере клиента и вы обнаружите общий файл без какого-либо ручного обновления или службы перезагрузки.
[root@nfsclient]# ll /mnt/nfsshare total 4 -rw-r--r-- 1 root root 61 Sep 21 21:44 nfstest.txt root@nfsclient ~]# cat /mnt/nfsshare/nfstest.txt This is a test file to test the working of NFS server setup.
Удаление монтирования NFS
Если вы хотите размонтировать этот общий каталог с сервера после того, как вы закончите с обменом файлами, вы можете просто размонтировать этот конкретный каталог с помощью команды “umount“. Смотрите этот пример ниже.
root@nfsclient ~]# umount /mnt/nfsshare
Вы можете видеть, что монтирование было удалено в файловой системе.
[root@nfsclient ~]# df -h -F nfs
Вы увидите, что эти общие каталоги не доступны больше.
Важные команды для NFS
Некоторые более важные команды для NFS.
- showmount -e : Показывает доступные расшаренные объекты на локальном компьютере
- showmount -e <server-ip or hostname>: Список доступных расшаренных объектов на удаленном сервере
- showmount -d : Список всех поддиректорий
- exportfs -v : Отображает список расшаренных файлов и опций на сервере
- exportfs -a : Экспорт всех доступных объектов, перечисленных в /etc/exports, или имя
- exportfs -u : Реэкспорт всех доступных объектов, перечисленные в /etc/exports, или имя
- exportfs -r : Обновить список сервера после изменения /etc/exports
Это все про монтирование NFS на данный момент, если интересно, можете прочитать гид о том как настроить сервер NFS на Ubuntu 16. Оставляйте свои комментарии и предложения ниже в поле для комментариев.