NFS umožňuje linuxovému serveru sdílet adresáře s ostatními UNIX klienty přes síť. Server NFS exportuje adresář a klienta NFS připojí tento adresář. RHEL 7 podporuje dvě verze NFS – NFSv3 a NFSv4.
Server NFS a procesy RPC
spuštění nfs-serveru proces spustí server NFS a další procesy RPC. Mezi procesy RPC patří:
– rpc.statd :implementuje monitorovací protokol (NSM) mezi klientem NFS a serverem NFS
– rpc.mountd :Démon připojení NFS, který implementuje požadavky na připojení od klientů NFSv3 na straně serveru.
– rpc.idmapd :Mapuje názvy NFSv4 a místní UID a GID
– rpc.rquotad :poskytuje informace o uživatelských kvótách pro vzdálené uživatele.
Konfigurace serveru NFS
1. Nainstalujte požadované balíčky nfs, pokud ještě nejsou nainstalovány na serveru:
# rpm -qa | grep nfs-utils
# yum install nfs-utils rpcbind
2. Povolte služby při spouštění:
# systemctl enable nfs-server # systemctl enable rpcbind
# systemctl enable nfs-lock
V RHEL7.1 (nfs-utils-1.3.0-8.el7) povolení nfs-lock nefunguje (Žádný takový soubor nebo adresář). nemusí být povolen, protože služba rpc-statd.service je statická.
# systemctl enable nfs-idmap
V RHEL7.1 (nfs-utils-1.3.0-8.el7) to nefunguje (Žádný takový soubor nebo adresář). nemusí být povolen, protože služba nfs-idmapd.service je statická.
3. Spusťte služby NFS:
# systemctl start rpcbind # systemctl start nfs-server # systemctl start nfs-lock # systemctl start nfs-idmap
4. Zkontrolujte stav služby NFS:
# systemctl status nfs
5. Vytvořte sdílený adresář:
# mkdir /test
6. Exportujte adresář. Formát souboru /etc/exports je:
dir client1 (options) [client2(options)...]
Mezi možnosti klienta patří (výchozí jsou uvedeny jako první):
ro / rw :
a) ro :povolit klientům přístup ke sdílené složce pouze pro čtení.
b) rw :povolit klientům přístup ke sdílené složce pro čtení a zápis.
sync / async :
a) synchronizace :NFS server odpoví na požadavek pouze po zapsání změn provedených předchozím požadavkem na disk.
b) async :určuje, že server nemusí čekat.
wdelay / no_wdelay
a) wdelay :NFS server zpožďuje potvrzení požadavků na zápis, když má podezření, že se blíží další požadavek na zápis.
b) no_wdelay :použijte tuto volbu k deaktivaci zpoždění. možnost no_wdelay lze povolit pouze při výchozí synchronizaci možnost je povolena.
no_all_squash / all_squash :
a) no_all_squash :nemění mapování vzdálených uživatelů.
b) all_squash :zmáčkne všechny vzdálené uživatele včetně roota.
root_squash / no_root_squash :
a) root_squash :zabrání uživatelům root připojeným vzdáleně v přístupu root. Efektivní squashování vzdálených práv roota.
b) no_root_squash :deaktivace squashování rootu.
Příklad:
# vi /etc/exports /test *(rw)
7. Export sdílené složky:
# exportfs -r
-r reexportuje položky v /etc/exports a synchronizuje /var/lib/nfs/etab s /etc/exports. Hlavní exportní tabulka je /var/lib/nfs/etab. Další možnosti, které lze použít s příkazem exportfs, jsou:
-a : exports entries in /etc/exports but do not synchronize with /var/lib/nfs/etab -i : ignore entries in /etc/exports and uses command line arguments. -u : un-export one or more directories -o : specify client options on command line
8. Restartujte službu NFS:
# systemctl restart nfs-server
Konfigurace klienta NFS
1. Nainstalujte požadované balíčky nfs, pokud ještě nejsou nainstalovány na serveru:
# rpm -qa | grep nfs-utils
# yum install nfs-utils
2. Pomocí příkazu mount připojte exportované systémy souborů. Syntaxe příkazu:
mount -t nfs -o options host:/remote/export /local/directory
Příklad :
# mount -t nfs -o ro,nosuid remote_host:/home /remote_home
Tento příklad dělá následující:
– Připojí /home ze vzdáleného hostitele (vzdálený_hostitel) na místní přípojný bod /remote_home.
– Souborový systém je připojen pouze pro čtení a uživatelům je zabráněno spouštět program setuid ( -o ro,možnosti nosuid).
3. Aktualizujte soubor /etc/fstab, aby připojoval sdílené složky NFS při spouštění.
# vi /etc/fstab remote_host:/home /remote_home nfs ro,nosuid 0 0
Služby brány firewall budou aktivní na serveru NFS
Aby server NFS fungoval, povolte služby nfs, mountd a rpc-bind v příslušné zóně v aplikaci firewall-config nebo pomocí firewall-cmd :
# firewall-cmd --add-service=nfs --zone=internal --permanent # firewall-cmd --add-service=mountd --zone=internal --permanent # firewall-cmd --add-service=rpc-bind --zone=internal --permanent