Oracle linux nfs server настройка

Обновлено: 02.07.2024

NFS - это сокращение от Network FileSystem. Как следует из названия, это сетевая система хранения файлов. Она была впервые разработана Sun. Она также является одной из файловых систем, поддерживаемых FreeBSD. Она позволяет компьютерам в сети совместно использовать ресурсы через сеть TCP / IP. С NFS наше локальное клиентское приложение NFS может прозрачно читать и записывать файлы, расположенные на сервере NFS на стороне сервера, так же удобно, как и доступ к локальным файлам. В простом понимании NFS - это сервис, который позволяет различным хостам и различным операционным системам совместно использовать хранилище по сети.

2. Среда и подготовка программного обеспечения

В этой демонстрационной среде я установил систему Linux на виртуальной машине для выполнения операций. Ниже приведены установленное программное обеспечение и версии:

  • Oracle VirtualBox: 5.1.20 r114628 (Qt5.6.2)
  • System: CentOS Linux release 7.3.1611 (Core)
  • rpcbind: 0.2.0-38.el7.x86_64
  • nfs-utils: 1.3.0-0.54.el7.x86_64

3. Установка службы NFS

Из краткого введения выше мы знаем, что служба NFS должна зависеть от службы RPC, поэтому здесь необходимо установить сервер NFS. rpcbind и nfs-utils , Клиенту нужно только установить nfs-utils Вот и все. Так как я выбрал систему CentOS, я могу быстро установить ее с помощью yum.

Сначала проверьте, установлена ​​ли NFS в системе сервера.

Примечание: я установил его здесь. Если он пуст, значит, он не установлен.

Затем установите службу NFS

Другой: команда установки Ubuntu 16.04:

4. Настройка и использование NFS

Создаем общий каталог на сервере /data/share В качестве удаленного входа на клиент монтируем, а затем устанавливаем права доступа.

Затем измените файл конфигурации NFS /etc/exports

Чтобы пояснить, что за конфигурацией много параметров, каждый параметр имеет свое значение, вы можете обратиться к следующим подробностям. Здесь я настроил /data/share Каталог файлов установлен, чтобы разрешить IP для этого 10.222.77.0/24 Клиент интервала монтируется. Конечно, если IP-адрес клиента не находится в этом интервале, и вы хотите смонтировать его, вы можете установить интервал IP, который будет больше или установлен на * Всем клиентам разрешено монтировать, например: /home *(ro,sync,insecure,no_root_squash) Настроить /home Каталог позволяет всем клиентам монтировать только для чтения.

Далее мы сначала запускаем службу RPC.

5. Тест NFS

Наконец, протестируйте его на другой виртуальной машине Linux, чтобы увидеть, можно ли его правильно смонтировать. Во-первых, мы можем просмотреть NFS-сервер на клиенте (верхний IP-адрес сервера 10.222.77.86) и установить информацию общего каталога.

Затем создайте висячий каталог на клиенте /share

Наконец, смонтируйте удаленный каталог на локальный /share Справочник.

Как видите, удаленный каталог NFS может быть правильно подключен локально. Примечание: точка монтирования /share Каталог должен уже существовать, и в нем нет файлов или подкаталогов.

Наконец-то мы на сервере NFS /data/share Создайте файл в каталоге, чтобы увидеть, может ли клиент прочитать и изменить его правильно.

Есть проблемы с дровами, это потому, что разрешения удаленного каталога NFS установлены на rw Иметь права на чтение и запись, если установлено ro Тогда клиент может только читать, а не писать, в соответствии с реальной конфигурацией сценария приложения, здесь не будет продемонстрировано. Здесь упоминается, что NFS по умолчанию использует протокол UDP для монтирования. Чтобы улучшить стабильность NFS, вы можете использовать протокол TCP для монтирования, тогда команда клиентского монтирования может использовать следующую команду:

Наконец, если клиент хочет удалить монтирование NFS, используйте следующую команду.

Итак, вышесказанное кратко знакомит с установкой и настройкой NFS, используя его, мы можем легко совместно использовать хранилище через разные хосты и операционные системы через сеть. В следующей статье мы продолжим изучение различных способов монтирования NFS в кластере Kubernetes для реализации сетевой системы хранения файлов.


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

Преимущества NFS
  • NFS позволяет локальный доступ к удаленным файлам.
  • Он использует стандартную архитектуру клиент/сервер для обмена файлами между всеми компьютерами на *nix.
  • При использовании NFS не обязательно, чтобы обе машины работали в одной и той же ОС.
  • С помощью NFS мы можем настроить решения для централизованного хранения.
  • Пользователи получают свои данные независимо от физического местоположения.
  • Не требуется обновление вручную для новых файлов.
  • Более новая версия NFS также поддерживает acl, pseudo root mounts.
  • Может быть защищен с помощью брандмауэров и Kerberos.
Службы NFS

Это сервис, запущенный System V. Серверный пакет NFS включает три средства, включенные в пакеты portmap и nfs-utils.

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

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

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

Установка и настройка монтирования NFS на сервере и клиенте Linux

Установка NFS-сервера и NFS-клиента

Нам нужно установить пакеты NFS на нашем сервере NFS, а также на компьютере клиента NFS. Мы можем установить его через установщики пакетов «yum» (Red Hat Linux) и «apt-get» (Debian и Ubuntu).


Теперь запустите службы на обеих машинах.

После установки пакетов и запуска служб на обеих машинах нам необходимо настроить обе машины для обмена файлами.

Настройка сервера NFS

Сначала мы будем настраивать сервер NFS.

Настроить каталог экспорта

Для совместного использования каталога с NFS нам нужно сделать запись в файле конфигурации «/etc/exports». Здесь я создам новый каталог с именем «nfsshare» в разделе «/» для совместного использования с клиентским сервером, вы также можете поделиться уже существующим каталогом с NFS.


Теперь нам нужно сделать запись в «/etc/exports» и перезапустить службы, чтобы сделать наш каталог доступным в сети.

В приведенном выше примере есть каталог с именем «/nfsshare», совместно используемый с IP-адресом клиента «192.168.0.101» с привилегией read и write (rw), вы также можете использовать имя хоста клиента вместо IP в приведенный выше пример.

Параметры NFS

Некоторые другие параметры, которые мы можем использовать в файле «/etc/exports» для обмена файлами, следующие.

ro: с помощью этой опции мы можем предоставить доступ только для чтения к общим файлам, т.е. клиент сможет только читать.
rw: эта опция позволяет клиентскому серверу иметь права на чтение и запись в общем каталоге.
sync: синхронизация подтверждает запросы к общему каталогу только после того, как изменения были зафиксированы.
no_subtree_check: эта опция предотвращает проверку поддерева. Когда общий каталог является подкаталогом более крупной файловой системы, nfs выполняет сканирование каждого каталога над ним, чтобы проверить его разрешения и детали. Отключение проверки поддерева может повысить надежность NFS, но снизить безопасность.
no_root_squash: эта фраза позволяет пользователю root подключаться к указанному каталогу.
Для получения дополнительной информации о «/etc/exports» рекомендуется прочитать справочные страницы для экспорта.

Настройка клиента NFS

После настройки сервера NFS нам нужно смонтировать этот общий каталог или раздел на клиентском сервере.

Монтирование общих каталогов на клиенте NFS

Теперь на стороне клиента NFS нам нужно смонтировать этот каталог на нашем сервере, чтобы получить к нему локальный доступ. Для этого сначала нужно выяснить, какие общие ресурсы доступны на удаленном сервере или NFS-сервере.

Приведенная выше команда показывает, что каталог с именем «/nfsshare» доступен по адресу «192.168.0.100», чтобы поделиться с вашим клиентом.

Подключить общий каталог NFS

Чтобы смонтировать этот общий каталог NFS, мы можем использовать следующую команду монтирования.

Приведенная выше команда смонтирует этот общий каталог в «/mnt/nfsshare» на клиентском сервере. Вы можете проверить это следующей командой.

Приведенная выше команда mount временно смонтировала общий каталог nfs на клиенте nfs, чтобы постоянно монтировать каталог NFS в вашей системе при перезагрузках, нам нужно сделать запись в «/etc/fstab».

Добавьте следующую новую строку, как показано ниже.

Проверьте работу установки NFS

Мы можем протестировать настройку нашего сервера NFS, создав тестовый файл на стороне сервера и проверив его доступность на стороне клиента nfs или наоборот.

На стороне NFS сервера

Я создал новый текстовый файл с именем «nfstest.txt» в этом общем каталоге.

Удаление NFS монтирования

Если вы хотите размонтировать этот общий каталог со своего сервера после того, как вы закончили с общим доступом к файлам, вы можете просто размонтировать этот конкретный каталог с помощью команды «umount». Смотрите этот пример ниже.

Вы можете видеть, что размонтирование было выполнено, а затем снова посмотреть на файловую систему.

Вы увидите, что эти общие каталоги больше не доступны.

Важные команды для NFS

Еще несколько важных команд для NFS.

  • showmount -e: показывает доступные общие ресурсы на вашем локальном компьютере.
  • showmount -e <server-ip или hostname>: список доступных общих ресурсов на удаленном сервере.
  • showmount -d: список всех подкаталогов
  • exportfs -v: отображает список общих файлов и параметров на сервере.
  • exportfs -a: экспортирует все ресурсы, перечисленные в /etc/exports или по имени
  • exportfs -u: отменяет экспорт всех ресурсов, перечисленных в /etc/exports, или имени
  • exportfs -r: обновить список серверов после изменения /etc/exports

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

Спасибо за уделенное время на прочтение статьи о том, как использовать команды NFS!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

How to Install and Configure an NFS Server on CentOS 8

В этой статье вы найдете руководство по настройке сервера NFSv4 в CentOS 8, а также узнаете, как смонтировать файловую систему NFS на клиенте.

Сетевая файловая система (NFS) - это протокол распределенной файловой системы, который позволяет вам совместно использовать удаленные каталоги по сети. С помощью NFS вы можете монтировать удаленные каталоги в вашей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.

Протокол NFS по умолчанию не шифруется и, в отличие от Samba, не обеспечивает аутентификацию пользователя. Доступ к серверу ограничен IP-адресами клиентов или именами хостов.

На сервере под управлением CentOS 8 мы настроим сервер NFS и другие машины, которые будут действовать как клиенты NFS. Сервер и клиенты должны иметь возможность общаться друг с другом через частную сеть. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр сервера так, чтобы трафик на порт 2049 передавался только из надежных источников.

Машины в этом примере имеют следующие IP-адреса:

Настройте сервер NFS

Теперь рассмотрим, как установить необходимые пакеты, создать и экспортировать каталоги NFS и настроить брандмауэр.

Установка сервера NFS

Пакет «nfs-utils» предоставляет утилиты и демоны NFS для сервера NFS. Для его установки выполните следующую команду:


После завершения установки включите и запустите службу NFS, введя:


По умолчанию в CentOS 8 NFS версии 3 и 4.x включены, версия 2 отключена. NFSv2 сейчас довольно старый, и нет никаких причин для его включения. Чтобы проверить это, выполните следующую cat команду:


Параметры конфигурации сервера NFS установлены в /etc/nfsmount.conf и /etc/nfs.conf файлы. На данном этапе подойдут настройки по умолчанию.


Создание файловых систем

При настройке сервера NFSv4 рекомендуется использовать глобальный корневой каталог NFS и привязать фактические каталоги к точке подключения общего ресурса. В этом примере мы будем использовать /srv/nfs4 директор в качестве корня NFS.

Чтобы лучше объяснить, как можно настроить монтирование NFS, мы собираемся использовать два каталога ( /var/www и /opt/backups ) с разными настройками конфигурации.

Это /var/www/ принадлежит пользователю и группе apache и /opt/backups принадлежит root .

Создайте файловую систему экспорта с помощью mkdir команды:

Смонтируйте фактические каталоги:

Чтобы сделать привязку монтируемой постоянной, добавьте в /etc/fstab файл следующие записи :

Экспорт файловых систем

Следующим шагом является определение файловых систем, которые будут экспортированы сервером NFS, параметров общего ресурса и клиентов, которым разрешен доступ к этим файловым системам. Для этого откройте /etc/exports файл:


Экспорт www и backups каталогов и разрешить доступ только от клиентов по 192.168.33.0/24 сети:

Первая строка содержит fsid=0 каталог, определяющий корневой каталог NFS /srv/nfs . Доступ к этому тому NFS разрешен только клиентам из 192.168.33.0/24 подсети. Этот crossmnt параметр необходим для совместного использования каталогов, которые являются подкаталогами экспортируемого каталога.

Во второй строке показано, как задать несколько правил экспорта для одной файловой системы. Он экспортирует /srv/nfs4/backups каталог и предоставляет доступ только для чтения ко всему 192.168.33.0/24 диапазону, а также для чтения и записи 192.168.33.3 . Опция sync сообщает NFS на изменения записи на диск , прежде чем ответить.

Последняя строка должна быть понятной. Для получения дополнительной информации обо всех доступных опциях введите man exports свой терминал.

Сохраните файл и экспортируйте общие ресурсы:


Вам нужно запускать команду выше каждый раз, когда вы изменяете /etc/exports файл. Если есть какие-либо ошибки или предупреждения, они будут показаны на терминале.

Чтобы просмотреть текущий активный экспорт и его состояние, используйте:


Вывод будет включать все действия с их опциями. Как вы можете видеть, есть также опции, которые мы не определили в /etc/exports файле. Это параметры по умолчанию, и если вы хотите изменить их, вам нужно явно установить эти параметры.


root_squash является одним из наиболее важных параметров безопасности NFS. Он не позволяет корневым пользователям, подключенным с клиентов, иметь права root на подключенных общих ресурсах. Он будет отображать корень UID и GID в nobody / nogroup UID / GID .

Чтобы пользователи на клиентских компьютерах имели доступ, NFS ожидает, что идентификаторы пользователя и группы клиента совпадают с идентификаторами на сервере. Другой вариант - использовать функцию отображения NFSv4, которая переводит идентификаторы пользователей и групп в имена и наоборот.

Вот и все. На этом этапе вы настроили сервер NFS на вашем сервере CentOS. Теперь вы можете перейти к следующему шагу, настроить клиенты и подключиться к серверу NFS.

Конфигурация брандмауэра

FirewallD является решением брандмауэра по умолчанию в Centos 8 .

Служба NFS включает в себя предопределенные правила для доступа к серверу NFS.

Следующие команды будут постоянно разрешать доступ из 192.168.33.0/24 подсети:


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

Теперь, когда сервер NFS настроен и общие ресурсы экспортированы, на следующем шаге настройте клиенты и подключите удаленные файловые системы.

Вы также можете смонтировать общий ресурс NFS на компьютерах MacOS и Windows, но мы сосредоточимся на системах Linux.

Установка клиента NFS

На клиентских компьютерах установите инструменты, необходимые для монтирования удаленных файловых систем NFS.

Установите клиент NFS в Debian и Ubuntu

Название пакета, включающего программы для монтирования файловых систем NFS в дистрибутивах на основе Debian, - nfs-common . Чтобы установить его, запустите:

Установите клиент NFS в CentOS и Fedora

На Red Hat и ее производных установите nfs-utils пакет:

Монтирование файловых систем

Мы будем работать на клиентском компьютере с IP-адресом 192.168.33.110 , который имеет доступ для чтения и записи к /srv/nfs4/www файловой системе и доступ только для чтения к /srv/nfs4/backups файловой системе.

Создайте две новые директории для точек монтирования. Вы можете создавать эти каталоги в любом месте, которое вы хотите.


Смонтируйте экспортированные файловые системы с помощью mount команды:


Где 192.168.33.148 находится IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в /etc/hosts файле.

При монтировании файловой системы NFSv4 вам нужно пропустить корневой каталог NFS, поэтому вместо /srv/nfs4/backups него нужно использовать /backups .


Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или df :


Команда напечатает все смонтированные файловые системы. Последние две строки являются смонтированными долями:


Чтобы сделать монтирование постоянным при перезагрузке, откройте /etc/fstab файл:

и добавьте следующие строки:

Чтобы узнать больше информации о доступных опциях при монтировании файловой системы NFS, введите man nfs свой терминал.

Другой вариант для монтирования удаленных файловых систем - использовать autofs инструмент или создать системный модуль.

Тестирование NFS Access

Давайте проверим доступ к общим ресурсам, создав новый файл в каждом из них.

Сначала попробуйте создать тестовый файл в /backups каталоге с помощью touch команды:


Далее попробуйте создать тестовый файл в /srv/www каталоге как корень, используя sudo команду:


/var/www каталог принадлежат к apache пользователю, и эта доля имеет root_squash вариант набор, который отображает привилегированный пользователь к nobody пользователю и nogroup группе , которая не имеет права записи на удаленный ресурс.

Предполагая, что пользователь apache существует на клиентском компьютере с тем же UID и GID на удаленном сервере (что должно быть в случае, если, например, вы установили apache на обоих компьютерах), вы можете протестировать создание файла как пользователя apache с:

Команда не будет отображать вывод, что означает, что файл был успешно создан.

Для проверки перечислите файлы в /srv/www каталоге:

Выходные данные должны показать вновь созданный файл:


Размонтирование файловой системы NFS

Если вам больше не нужен удаленный общий ресурс NFS, вы можете размонтировать его, как любую другую смонтированную файловую систему, с помощью команды umount. Например, чтобы размонтировать /backup ресурс, который вы запустите:


Вывод

В этой статье мы показали, как настроить сервер NFS и как монтировать удаленные файловые системы на клиентских компьютерах. Если вы внедряете NFS в производство и делитесь разумными данными, рекомендуется включить аутентификацию Kerberos.

В качестве альтернативы NFS вы можете использовать SSHFS для монтирования удаленных каталогов через SSH-соединение. SSHFS зашифрован по умолчанию и намного проще в настройке и использовании.

В рамках данной заметки рассмотрим процесс установки NFS сервера в локальной сети на базе Linux CentOS 7. Данная файловая шара мне потребовалась для работы с XenServer 6.5 (установка ОС на виртуальные машины с ISO NFS library).

Выполняем к командной строке (нужны привилегии супер пользователя) следующие операции. Сначала устанавливает требуемые пакеты:

sudo yum install nfs-utils nfs-utils-lib

Затем включаем установленную службу:

sudo systemctl enable rpcbind

sudo systemctl enable nfs-server

sudo systemctl enable nfs-lock

sudo systemctl enable nfs-idmap

sudo systemctl start rpcbind

sudo systemctl start nfs-server

sudo systemctl start nfs-lock

sudo systemctl start nfs-idmap

sudo mkdir -p /home/nfs

sudo chmod -R 777 /home/nfs

и добавляем строку:

/home/nfs – расшариваемая директория

192.168.10.0/24 – IP адрес клиента (или, как в моем случае, возможность подключения для всей подсети)

rw – разрешение на запись

sync – синхронизация указанной директории

no_root_squash – включение root привилегий

Выполняем в командной строке exportfs -a ,чтобы подключить этот каталог в список экспортируемых. В завершение настройки NFS сервера перезапускаем его:

sudo systemctl restart nfs-server

Теперь добавляем (открываем) порты NFS сервера в брандмауэре (firewalld) для корректной работы в сети:

Готово! Установка и настройка NFS сервера на CentOS 7 завершена.

Установка и настройка клиента NFS

В завершении данной заметки рассмотрим процесс настройки клиента для подключения (работы) с развернутым ранее NFS сервером. В моем случае, чаще всего клиентом будет какой-либо хост виртуализации (например, VMware ESXi или Xen Server) и его установка и настройка не требуется. Только необходимо запустить мастер подключения и указать параметры подключения. Для других сервисов или серверов выполняем следующие команды:

sudo yum install nfs-utils nfs-utils-lib

Включаем сервис и активируем автозагрузку:

systemctl enable rpcbind

systemctl enable nfs-server

systemctl enable nfs-lock

systemctl enable nfs-idmap

systemctl start rpcbind

systemctl start nfs-server

systemctl start nfs-lock

systemctl start nfs-idmap

Создаем каталог, куда будем монтировать шару:

sudo mkdir /media/nfs_share

mount -t nfs 192.168.10.101:/home/nfs/ /media/nfs_share/

Добавление автомонтирования при включение системы:

Проверяем, что все примонтировалось правильно:

Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter

Читайте также: