Как установить NFS-сервер в Ubuntu 20.04 LTS

Как установить NFS-сервер в Ubuntu 20.04 LTS

 

В этом руководстве мы покажем вам, как установить сервер NFS в Ubuntu 20.04 LTS. Для тех из вас, кто не знал, NFS или сетевая файловая система — это протокол распределенной файловой системы. Это может помочь вам обмениваться файлами и целыми каталогами с другими пользователями по сети. Это позволяет программам в удаленных системах обмениваться информацией и получать доступ друг к другу, как если бы она была доступна на локальном компьютере. Эта технология дает вам гибкость при совместном использовании ресурса в нескольких системах.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo‘ к командам для получения привилегий root. Я покажу вам пошаговую установку сервера NFS на Ubuntu 20.04 (Focal Fossa). Вы можете следовать тем же инструкциям для Ubuntu 18.04, 16.04 и любого другого дистрибутива на основе Debian, такого как Linux Mint.

Мы используем две машины: одна с Ubuntu 20.04, которая будет работать как сервер NFS, а другая с любым другим дистрибутивом Linux, на котором мы будем монтировать общий ресурс. Машины в этом примере имеют следующие IP-адреса:

NFS Server IP: 192.168.77.20
NFS Clients IPs: From the 192.168.77.0/24 range

Установите сервер NFS на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие aptкоманды в терминале.

sudo apt update
sudo apt upgrade

Шаг 2. Установка NFS-сервера в Ubuntu 20.04.

Теперь мы запускаем следующую команду, чтобы установить пакет сервера ядра NFS:

sudo apt install nfs-kernel-server

Вы можете проверить, запущена ли служба, как показано ниже:nfs-server

sudo systemctl status nfs-server

Шаг 3. Создание общих каталогов на хосте.

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

sudo mkdir /var/nfs/general -p

Поскольку мы хотим, чтобы клиентские системы имели полный доступ к этому общему каталогу, нам необходимо удалить все права доступа к каталогу, которые ограничивают доступ:

sudo chown nobody:nogroup /var/nfs/general

Шаг 4. Настройте NFS на хосте.

Мы погрузимся в файл конфигурации NFS, чтобы настроить совместное использование этих ресурсов:

sudo nano /etc/exports

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

/var/nfs/general client_ip(rw,sync,no_subtree_check)
/home client_ip(rw,sync,no_root_squash,no_subtree_check)

Для основных вариантов экспорта:

ВариантОписание
rwРазрешить запросы на чтение и запись на томе NFS.
roРазрешить только запросы чтения на томе NFS.
syncОтвечайте на запросы только после того, как изменения будут сохранены в стабильном хранилище. (По умолчанию)
asyncЭта опция позволяет серверу NFS нарушать протокол NFS и отвечать на запросы до того, как любые изменения, внесенные этим запросом, будут сохранены в стабильном хранилище.
secureЭта опция требует, чтобы запросы исходили через порт Интернета, меньший, чем IPPORT_RESERVED (1024). (По умолчанию)
insecureЭта опция принимает все порты.
wdelayНемного отложите отправку письменного запроса на диск, если он подозревает, что другой связанный запрос записи может выполняться или может скоро поступить. (По умолчанию)
no_wdelayЭтот параметр не действует, если также установлен асинхронный режим. Сервер NFS обычно немного задерживает передачу записанного запроса на диск, если подозревает, что другой связанный запрос записи может выполняться или может скоро поступить. Это позволяет зафиксировать несколько запросов на запись на диск с помощью одной операции, что может улучшить производительность. Если сервер NFS получал в основном небольшие несвязанные запросы, такое поведение могло фактически снизить производительность, поэтому можно отключить no_wdelay.
subtree_checkЭта опция включает проверку поддерева. (По умолчанию)
no_subtree_checkЭтот параметр отключает проверку поддерева, что имеет незначительные последствия для безопасности, но может повысить надежность в некоторых случаях.
root_squashСопоставьте запросы от uid / gid 0 до анонимного uid / gid. Обратите внимание, что это не относится к любым другим идентификаторам uid или gid, которые могут быть столь же чувствительными, например, корзина пользователя или персонал группы.
no_root_squashОтключите корневое раздавливание. Эта опция в основном полезна для бездисковых клиентов.
all_squashСопоставьте все uid и gid анонимному пользователю. Полезно для экспортированных через NFS общедоступных каталогов FTP, каталогов новостей и т. Д.
no_all_squashОтключите все раздавливание. (По умолчанию)
anonuid=UIDЭти параметры явно устанавливают uid и gid анонимной учетной записи. Эта опция в первую очередь полезна для клиентов PC / NFS, где вы можете захотеть, чтобы все запросы поступали от одного пользователя. В качестве примера рассмотрим запись экспорта для / home / joe в приведенном ниже разделе примеров, которая сопоставляет все запросы с uid 150.
anongid=GIDЧитайте выше (anonuid = UID)

Наконец, перезапустите сервер NFS, чтобы изменения вступили в силу:

sudo systemctl restart nfs-kernel-server

Шаг 5. Настройка межсетевого экрана.

Вам необходимо разрешить доступ через брандмауэр, иначе доступ к общему каталогу и его монтирование будут невозможны. Для этого выполните следующую команду:

sudo ufw allow from 192.168.77.0/24 to any port nfs
sudo ufw enable
sudo ufw status

Шаг 6. Настройте клиентов NFS.

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

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

Выполните следующую команду, чтобы установить его:

sudo apt install nfs-common
  • Создайте точки монтирования на клиенте.

Теперь создаем на клиенте две директории для монтирования:

sudo mkdir -p /nfs/general
sudo mkdir -p /nfs/home

Затем смонтируйте общие ресурсы, используя IP-адрес хоста:

sudo mount host_ip:/var/nfs/general /nfs/general
sudo mount host_ip:/home /nfs/home

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

df -h

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

sudo nano /etc/fstab

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

192.168.77.10:/var/nfs/general /nfs/general  nfs defaults,timeo=900,retrans=5,_netdev 0 0
192.168.77.10:/home /nfs/home                nfs defaults,timeo=900,retrans=5,_netdev 0 0

Шаг 7. Протестируйте совместное использование NFS.

Теперь создаем в общий ресурс тестовый файл :/var/nfs/general

sudo touch /nfs/general/general.test

Проверьте его право собственности:

$ ls -l /nfs/home/home.test
-rw-r--r-- 1 root root 0 Aug 1 13:32 /nfs/home/home.test

Шаг 8. Отключение файловой системы NFS.

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

sudo umount /general

Поздравляю! Вы успешно установили NFS-сервер. Благодарим за использование этого руководства для установки сервера NFS в системе Ubuntu 20.04 LTS Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт NFS .

Author: forgero