Как установить сервер и клиент NFS в AlmaLinux 9
Что такое НФС? NFS, или сетевая файловая система, — это протокол, который позволяет локальным пользователям получать доступ к удаленным данным с нескольких дисков и каталогов, например локальный доступ. Протокол NFS изначально был разработан Sun Microsystem и стал стандартным протоколом для обмена файлами по сети. Он широко используется в централизованной среде, где пользователи или клиентские компьютеры смогут хранить данные и получать к ним доступ к одному централизованному удаленному серверу.
NFS можно легко установить и настроить в большинстве систем Linux как для сервера NFS, так и для клиента. Почти каждый дистрибутив Linux по умолчанию предоставляет пакеты NFS в своем репозитории. Имя пакета другое, но конфигурация для большинства дистрибутивов Linux одинакова.
Из этого руководства вы узнаете, как установить NFS-сервер на AlmaLinux 9. Кроме того, вы также настроите клиентский компьютер для монтирования общих каталогов с NFS-сервера и настроите автоматическое монтирование при загрузке через файл /etc/fstab.
Предварительные условия
Прежде чем начать, вы должны убедиться, что у вас есть следующее:
- Сервер AlmaLinux 9. В этой демонстрации мы используем сервер с именем хоста almalinux9-server и IP-адресом 192.168.10.15.
- Пользователь без полномочий root с правами root/администратора.
- Один или несколько клиентских компьютеров. Это может быть любой дистрибутив на основе RHEL.
Установка NFS-сервера
Чтобы настроить NFS (сетевое хранилище файлов) в Almalinux, вам просто нужно установить nfs-utils как на сервере NFS, так и на клиенте. Он доступен в репозитории AppStream, вы можете легко установить его через DNF.
Запустите следующую команду, чтобы установить пакет nfs-utils. Введите y при появлении запроса, затем нажмите ENTER.
sudo dnf install nfs-utils
Теперь откройте файл /etc/idmapd.conf, используя приведенную ниже команду редактора nano.
sudo nano /etc/idmapd.conf
Раскомментируйте параметр Domain и измените значение на полное доменное имя вашего сервера (полное доменное имя) или используйте имя хоста.
Domain = almalinux9-server
Сохраните и выйдите из файла по завершении.
Затем выполните следующую команду, чтобы запустить и включить службу NFS.
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
Затем проверьте службу NFS с помощью приведенной ниже команды, чтобы убедиться, что NFS работает.
sudo systemctl status nfs-server
Если установка прошла успешно, вы должны получить такой вывод:
Создание общих каталогов
Теперь, когда у вас есть настроенный и работающий сервер NFS, следующим шагом будет настройка общего каталога для клиентов. Итак, давайте начнем.
Сначала создайте два каталога /mnt/shared и /mnt/backup, используя следующую команду.
sudo mkdir -p /mnt/shared /mnt/backup
Измените владельца обоих каталогов на пользователя и группу «Никто», затем измените разрешение по умолчанию на 775.
sudo chown -R nobody:nobody /mnt/shared /mnt/backup
sudo chmod 775 /mnt/shared /mnt/backup
Затем создайте новый файл конфигурации aa с помощью редактора nano.
sudo nano /etc/exports
Вставьте в файл следующие строки. В этом примере мы создадим три общих каталога /mnt/backup и /home для клиента 192.168.10.21 и . >/mnt/shared для всей сети в 192.168.10.0/24.
/mnt/backup 192.168.10.21(rw,sync,no_subtree_check)
/home 192.168.10.21(rw,sync,no_root_squash,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)
Сохраните и закройте файл, когда закончите.
Вот некоторые важные параметры NFS, которые вам следует знать:
- rw: разрешить чтение и запись для целевого общего каталога.
- синхронизация: этот параметр гарантирует, что данные сначала будут записаны на диск, прежде чем клиент сделает новый запрос. Таким образом, ваши данные будут в безопасности, но при более медленной скорости операций чтения/записи.
- no_subtree_check: отключите проверку поддерева, чтобы повысить скорость и производительность сервера NFS. Проверка поддерева — это процесс, гарантирующий отсутствие конфликтов при изменении пользователем имени файла.
- no_root_squash: это отключит сжатие, что позволит клиентам NFS иметь привилегии root в общем каталоге. В этом примере мы отключим сжатие только для общего каталога /home.
Теперь выполните следующую команду, чтобы перезапустить сервер NFS и применить изменения.
sudo systemctl restart nfs-server
После перезапуска NFS выполните следующую команду, чтобы проверить список общих каталогов на сервере NFS.
sudo exportfs -v
Если операции прошли успешно, вы должны увидеть список общих каталогов NFS на своем терминале следующим образом:
Защита NFS-сервера с помощью Firewalld
После настройки общего каталога NFS следующим шагом будет настройка firewalld и открытие некоторых портов/сервисов для клиентов. Прежде чем начать, убедитесь, что брандмауэр запущен и работает.
Теперь выполните следующую команду, чтобы добавить некоторые службы NFS в файл firewalld.
sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
Затем перезагрузите firewalld, чтобы применить изменения.
sudo firewall-cmd --reload
После этого проверьте правила firewalld, используя команду ниже.
sudo firewall-cmd --list-all
Ожидаемый результат должен быть таким:
Настройка клиента NFS
В этом разделе будет описано, как настроить клиент NFS, используя также сервер AlmaLinux, который может быть реализован в большинстве дистрибутивов на основе RHEL.
Войдите в свой клиент, затем выполните следующую команду, чтобы установить пакет nfs-utils. При появлении запроса введите y для подтверждения и нажмите ENTER.
sudo dnf install nfs-utils
Теперь выполните следующую команду, чтобы проверить доступные общие каталоги на сервере NFS 192.168.10.15.
sudo showmount -e 192.168.10.15
На вашем сервере NFS вы должны увидеть три разных общих каталога: /mnt/backup, /mnt/shared и /home.
Затем введите следующую команду, чтобы создать новые каталоги/data,/backup и/shared, которые будут использоваться для монтирования общих каталогов NFS.
sudo mkdir -p /data /backup /shared
Выполните следующую команду, чтобы смонтировать общие каталоги NFS. В этом примере мы смонтируем общий каталог/mnt/backup к /backup, /mnt/shared к /shared. и от /home до /data.
sudo mount 192.168.10.15:/mnt/backup /backup
sudo mount 192.168.10.15:/mnt/shared /shared
sudo mount 192.168.10.15:/home /data
Наконец, проверьте список смонтированных файловых систем на клиентском компьютере, используя следующую команду.
sudo df -h
Если процесс прошел успешно, вы увидите общие каталоги NFS, смонтированные на клиентском компьютере, следующим образом:
Проверка доступа на запись от клиента
После того как общие каталоги NFS смонтированы на клиентском компьютере, необходимо обеспечить доступ для чтения и записи к общим каталогам.
На клиентском компьютере выполните следующую команду, чтобы создать новые файлы /backup/test-write1.txt, /shared/test-write2.txt и /home/alice/test-write3.txt.
echo "This file from client" > /backup/test-write1.txt
echo "This file from client" > /shared/test-write2.txt
echo "This file from client" > /data/alice/test-write3.txt
Если установка сервера NFS и клиента прошла успешно, новые файлы, созданные вами на клиентском компьютере, будут доступны на сервере NFS.
Теперь вернитесь на сервер NFS и выполните следующую команду, чтобы убедиться, что новые файлы доступны на сервере NFS.
cat /mnt/backup/test-write1.txt
cat /mnt/shared/test-write2.txt
cat /home/alice/test-write3.txt
Из вывода ниже мы видим, что файл доступен на сервере NFS.
Настройка автоматического монтирования общего каталога NFS через /etc/fstab
После проверки доступа на чтение и запись в NFS вам также может потребоваться настроить автоматическое монтирование сервера NFS на клиентском компьютере. Таким образом, при каждом перезапуске клиентского компьютера общий каталог NFS будет автоматически монтироваться во время загрузки, и это можно сделать с помощью файла /etc/fstab.
Сначала размонтируйте и проверьте общие каталоги NFS на клиентском компьютере, используя следующую команду.
sudo umount /data /backup /shared
sudo df -h
Откройте файл /etc/fstab, используя следующую команду редактора nano.
sudo nano /etc/fstab
Добавьте следующие параметры и обязательно настройте детали общих каталогов и целевых каталогов монтирования.
192.168.10.15:/mnt/backup /backup nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/mnt/shared /shared nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/home /data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Сохраните файл и выйдите из редактора, как только закончите.
Затем выполните следующую команду, чтобы проверить конфигурацию /etc/fstab. И если у вас есть правильный файл fstab, общие каталоги NFS будут смонтированы после выполнения команды.
sudo mount -a
Проверьте, используя следующую команду, чтобы получить список смонтированных файловых систем вашего клиента.
sudo df -h
Вы должны увидеть, что общие каталоги NFS монтируются на клиенте с помощью команды «mount -a» на основе файла /etc/fstab.
Клиентский компьютер автоматически смонтирует общие каталоги NFS при загрузке системы.
Заключение
Поздравляем! Вы успешно установили сервер и клиент NFS на сервер AlmaLinux 9. Вы также изучили основы использования некоторых команд, таких как mount для монтирования файловых систем, Exportfs для управления общими каталогами NFS и df для отображения смонтированных файловых систем. Более того, вы также настроили автоматическое монтирование общих каталогов NFS на клиентском компьютере через файл /etc/fstab.
Следующим шагом рассмотрим дополнительную безопасность сервера NFS.