ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как настроить NFS (Network File System) на RHEL/CentOS/Fedora и Debian/Ubuntu

Как настроить NFS (Network File System) на RHEL/CentOS/Fedora и Debian/Ubuntu

NFS (Network File System) в основном разработана для совместного использования файлов и папок между Linux/Unix систем от компании Sun Microsystems в 1980 году. Она позволяет монтировать локальные файловые системы по сети и удаленных хостов, для взаимодействия с ними так, как будто они установлены локально на той же системе. С помощью NFS, мы можем настроить общий доступ к файлам между Unix в Linux системе и Linux для системы Unix.

 

Преимущества NFS

  1. NFS создает локальный доступ к удаленным файлам.
  2. Он использует стандартную архитектуру клиент/сервер для обмена файлами между всеми машинами на базе * NIX.
  3. С помощью NFS не нужно, чтобы обе машины работали на той же ОС.
  4. С помощью NFS мы можем настроить решение централизованного хранения.
  5. Пользователи получают свои данные независимо от их физического расположения.
  6. Автоматическое обновление для новых файлов.
  7. Более новая версия NFS поддерживает монтирование acl, pseudo под root.
  8. Может быть защищен брандмауэрами и Kerberos.

 

Услуги NFS

Cервис System V-launched. Серверный пакет NFS включает в себя три средства, входящие в состав пакетов portmap и nfs-Utils.

  1. portmap: отображает вызовы, сделанные из других машин к правильной службе RPC (не требуется с NFSv4 ).
  2. nfs: преобразует удаленные запросы общего доступа к файлам в запросы на локальной файловой системе.
  3. rpc.mountd: эта служба отвечает за монтирование и размонтирования файловых систем.

 

Важные файлы конфигурации для NFS

  1. /etc/exports: его основной конфигурационный файл NFS, все экспортируемые файлы и каталоги, которые определены в этом файле и на конечном сервере NFS.
  2. /etc/fstab: Для того, чтобы смонтировать каталог NFS на вашей системе без перезагрузок, нам нужно сделать запись в /etc/fstab.
  3. /etc/sysconfig/nfs: Конфигурационный файл NFS для управления, на котором порт RPC и другие услуги прослушивания.

 

Настройка и монтирование NFS на сервере Linux

Для настройки монтирования NFS, мы будем нуждаться по крайней мере, в двух машинах Linux/Unix. Вот в этом учебнике, мы будем использовать два сервера.

  1. Сервер NFS: nfsserver.example.ru с IP – 192.168.0.55
  2. Клиент 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” для совместного использования файлов выглядит следующим образом.

  1. ro: С помощью этой опции мы можем предоставить доступ только для чтения к общим файлам, то есть клиент будет только в состоянии прочитать.
  2. rw: Эта опция позволяет клиент – серверу доступ для обоих для чтения и записи в пределах общего каталога.
  3. sync: Синхронизация подтверждает запросы к общему каталогу только после того, как изменения были совершены.
  4. no_subtree_check: Эта опция предотвращает проверку поддерева. Когда общий каталог является подкаталогом большей файловой системы, NFS выполняет сканирование каждой директории над ним, чтобы проверить свои разрешения и детали. Отключение проверки поддерева может повысить надежность NFS, но снижают безопасность.
  5. 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.

  1. showmount -e : Показывает доступные расшаренные объекты на локальном компьютере
  2. showmount -e <server-ip or hostname>: Список доступных расшаренных объектов на удаленном сервере
  3. showmount -d : Список всех поддиректорий
  4. exportfs -v : Отображает список расшаренных файлов и опций на сервере
  5. exportfs -a : Экспорт всех доступных объектов, перечисленных в /etc/exports, или имя
  6. exportfs -u : Реэкспорт всех доступных объектов, перечисленные в /etc/exports, или имя
  7. exportfs -r : Обновить список сервера после изменения /etc/exports

Это все про монтирование NFS на данный момент, если интересно, можете прочитать гид о том как настроить сервер NFS на Ubuntu 16. Оставляйте свои комментарии и предложения ниже в поле для комментариев.

Exit mobile version