Мережева файлова система¶
Знання: Складність:
Час читання: 15 хвилин
Network File System (NFS) — мережева система обміну файлами.
Загальні положення¶
NFS — це клієнт/серверний протокол: сервер надає ресурси файлової системи для всієї або частини мережі (клієнтів).
Зв’язок між клієнтами та сервером відбувається за допомогою Remote Procedure Call (RPC) служби.
Віддалені файли монтуються в каталог і відображаються як локальна файлова система. Користувачі клієнта безперешкодно отримують доступ до спільних файлів, доступних серверу, переглядаючи каталоги так, ніби вони локальні.
Інсталяція¶
Для роботи NFS потрібні дві служби:
- Служба
network
(звичайно) - Служба
rpcbind
Перегляньте стан служб за допомогою команди:
systemctl status rpcbind
Якщо пакет nfs-utils
не встановлено:
sudo dnf install nfs-utils
Пакет nfs-utils
потребує встановлення кількох залежностей, зокрема rpcbind
.
Запустіть службу NFS за допомогою:
sudo systemctl enable --now nfs-server rpcbind
Встановлення служби NFS створює двох користувачів:
nobody
: використовується для анонімних з’єднаньrpcuser
: для роботи протоколу RPC
Налаштування брандмауера необхідне:
sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
sudo firewall-cmd --reload
Конфігурація сервера¶
Увага
Права на каталог і права NFS мають узгоджуватися.
Файл /etc/exports
¶
Налаштуйте спільні ресурси за допомогою файлу /etc/exports
. Кожен рядок у цьому файлі відповідає спільному ресурсу NFS.
/share_name client1(permissions) client2(permissions)
- /share_name: абсолютний шлях до спільного каталогу
- clients: клієнти, яким надано доступ до ресурсів
- (permissions): дозволи на ресурси
Оголошуйте машини, авторизовані для доступу до ресурсів за допомогою:
- IP-адреса:
192.168.1.2
- Мережева адреса:
192.168.1.0/255.255.255.0
або формат CIDR192.168.1.0/24
- FQDN: client_*.rockylinux.org: дозволяє FQDN починатися з client_ з домену rockylinux.org
*
для всіх
Кілька специфікацій клієнта можливі в одному рядку, розділених пробілом.
Дозволи на ресурси¶
Є два типи дозволів:
ro
: лише для читанняrw
: читання-запис
Якщо права не вказано, застосоване право буде лише для читання.
За замовчуванням сервер NFS зберігає UID і GID користувача клієнта (за винятком root
).
Щоб примусово використовувати UID або GID, відмінні від ідентифікатора користувача, який створює ресурс, укажіть параметри anonuid=UID
і anongid=GID
або вкажіть anonymous
доступ до даних за допомогою параметра all_squash
.
Увага
Параметр no_root_squash
визначає користувача root клієнта як користувача root сервера. Цей параметр може бути небезпечним з точки зору безпеки системи.
Активація параметра root_squash
є типовою (навіть якщо не вказано), ідентифікуючи root
як анонімного
користувача.
Приклади застосування¶
-
/share client(ro,all_squash)
Користувачі клієнта мають доступ лише для читання до ресурсів і ідентифікуються як анонімні на сервері. -
/share client(rw)
Користувачі клієнта можуть змінювати ресурси та зберігати свій UID на сервері. Лишеroot
ідентифікується якanonymous
. -
/share client1(rw) client2(ro)
Користувачі клієнтської робочої станції 1 можуть змінювати ресурси, а користувачі клієнтської робочої станції 2 мають доступ лише для читання. UID зберігаються на сервері, і лишеroot
визначається якanonymous
. -
/share client(rw,all_squash,anonuid=1001,anongid=100)
Користувачі Client1 можуть змінювати ресурси. Їх UID змінено на1001
, а GID на100
на сервері.
Команда exportfs
¶
Команда exportfs
(експортовані файлові системи) використовується для керування таблицею локальних файлів, спільних для клієнтів NFS.
exportfs [-a] [-r] [-u share_name] [-v]
Опції | Опис |
---|---|
-a |
Вмикає спільний доступ до NFS |
-r |
Застосовує спільні ресурси з файлу /etc/exports |
-u share_name |
Вимикає певний спільний доступ |
-v |
Відображає список спільних ресурсів |
Команда showmount
¶
Команда showmount
стежить за клієнтами.
showmount [-a] [-e] [host]
Опції | Опис |
---|---|
-e |
Відображає спільні ресурси на призначеному сервері |
-a |
Відображає всі поточні спільні ресурси на сервері |
Ця команда також визначає, чи може робоча станція клієнта монтувати спільні ресурси.
Примітка
showmount
сортує та приховує дублікати в результатах, тому неможливо визначити, чи здійснив клієнт кілька монтувань одного каталогу.
Конфігурація клієнта¶
Спільні ресурси на сервері NFS доступні через точку монтування на клієнті.
Якщо потрібно, створіть локальну папку для монтування:
sudo mkdir /mnt/nfs
Список доступних спільних ресурсів NFS на сервері:
$ showmount –e 172.16.1.10
/share *
Підключіть спільний ресурс NFS сервера:
mount –t nfs 172.16.1.10:/share /mnt/nfs
Автоматизація монтування може відбутися під час запуску системи за допомогою файлу /etc/fstab
:
$ sudo vim /etc/fstab
172.16.1.10:/share /mnt/nfs nfs defaults 0 0
Author: Antoine Le Morvan
Contributors: Steven Spencer, Serge, Ganna Zhyrnova