NFS používám roky v omezené kapacitě. S tímto konceptem jsem byl obeznámen a přistupoval jsem ke sdíleným složkám NFS, ale nikdy jsem žádné ve skutečnosti nekonfiguroval. Je pravděpodobné, že v tom nejsem sám. Myslel jsem, že se naučím, jak to všechno zařídit, a dokonce vás všechny přivedu s sebou. Začněme průvodcem pro začátečníky k učení NFS.
Co je to NFS?
Network File System (NFS) je distribuovaný systém souborů, který umožňuje různým vzdáleným systémům přístup ke sdílené složce. Všichni víme, že soubory by měly být kvůli bezpečnosti a snadnému zálohování uloženy na centrálním serveru. NFS nám poskytuje službu sdílení souborů, která se snadno spravuje a řídí přístup klientů ke zdrojům.
Co je potřeba?
Než začneme, musíme si ujasnit několik předpokladů. Nejprve potřebujeme dva různé systémy, které jsou schopny spolu komunikovat přes síť. Protože NFS používá vztah mezi serverem a klientem, použijeme následující:
- Server NFS – server.example.com – 172.25.1.5
- Klient NFS – klient.example.com – 172.25.1.4
Můžete použít ping
příkaz k potvrzení komunikace mezi dvěma systémy. Mám tyto dva stroje v síti NAT a otestoval jsem připojení oběma způsoby.
Poté se ujistěte, že oba naše systémy jsou aktuální. Protože se jedná o systémy RHEL 8.2 a Fedora 32, použijeme na serveru i klientovi následující příkaz:
[root@rhel tcarrigan]# sudo yum -y update
A nakonec musíme nainstalovat nfs-utils
balíček do obou našich systémů.
[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
*Poznámka:balíček je již nainstalován ve výše uvedeném příkladu.
Nyní přejdeme ke konfiguraci serveru.
Nakonfigurujte server
Krok 1:Spusťte a povolte nově nainstalovaný nfs-utils
službu.
[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service
Krok 2:Potvrďte nfs-server
služba je v provozu.
[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
Main PID: 61026 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 50657)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)
Krok 3:Ověřte verzi NFS (tyto informace můžete vidět ve sloupci dva).
[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
*Všimněte si, že konfigurační soubory démona NFS můžete najít na /etc/nfs.conf
. Konfigurační soubor pro připojení také můžete najít na /etc/nfsmount.conf
.
Služba NFS je nyní na vašem serveru spuštěna. Dále vytvoříme sdílenou složku NFS.
Vytvořte a exportujte sdílenou složku
Nejprve musíme určit složku pro sdílení. Protože žádný v mém systému ještě neexistuje, vytvořím adresář ke sdílení.
[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs
Nyní jsem se z několika pokusů a omylů a následně dobře napsaných zdrojů naučil, že se můžete vyhnout mnoha bolestem hlavy, když změníte oprávnění a vlastnictví tak, aby odpovídaly následujícímu:
[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/
*Poznámka:Je možné, že to nebudete moci provést v produkčním prostředí z důvodu zabezpečení. Před odstraněním všech omezení ze souboru nebo adresáře se ujistěte, že víte, co děláte.
Dále musíme vytvořit /etc/exports
soubor.
[root@server docs]# vi /etc/exports
V novém souboru proveďte následující položku:
/test/nfs_share 172.25.1.0/24(rw,sync,no_all_squash,root_squash)
Abychom lépe porozuměli zde použitým parametrům, pojďme je rozebrat jeden po druhém.
- rw – Umožňuje nám číst a zapisovat do sdílené složky NFS.
- synchronizace – Vyžaduje zápis změn na disk před dokončením jakýchkoli dalších operací.
- no_all_squash – Mapuje všechna UID a GID z požadavku klienta na identická UID a GID na serveru NFS.
- root_squash – Mapuje požadavky uživatele root na straně klienta na anonymní UID/GID.
Nyní, když jsme vytvořili sdílenou složku, pojďme ji exportovat do klienta (klientů).
[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share
Všimněte si, že jsem zde zmapoval celou podsíť. Pokud chcete, můžete zde uvést pouze jednu IP adresu nebo název hostitele.
Upravte bránu firewall
Nainstalovali jsme server a poté vytvořili a exportovali sdílenou složku. Dále nakonfigurujeme tunel přes firewall. Budeme přidávat pravidla pro nfs
, rpc-bind
a mountd
. Po dokončení nezapomeňte znovu načíst konfiguraci brány firewall.
K vidění zde:
[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success
Po dokončení na straně serveru se nyní můžeme soustředit na klientský počítač.
Nakonfigurujte klienta
*Poznámka:všechny budoucí kroky se provádějí na klientském počítači.
Protože jsme již aktualizovali náš systém a nainstalovali nfs-utils
balíčku, mělo by to být docela jednoduché.
Začneme vytvořením položky v /etc/hosts
pro server NFS. Mělo by to vypadat podobně jako toto:
[root@client]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost
172.25.1.5 localhost
Nyní se podívejme, zda je něco sdíleno ze serveru NFS. Pokud jste postupovali podle předchozích sekcí, měli byste vidět /test/nfs_share/docs
jako sdílený adresář.
[root@client ~]# showmount --exports nfs-server
Export list for nfs-server:
/test/nfs_share/docs 172.25.1.0/24
Dále vytvořte na klientském počítači adresář pro připojení vzdálené sdílené složky.
[tcarrigan@client ~]$ sudo mkdir p /test/client_share
Nyní, když jsme vytvořili mount adresář, pojďme připojit sdílenou složku.
[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share
Spusťte následující příkaz k ověření sdílené položky:
[tcarrigan@client ~]$ sudo mount | grep -i nfs
Nakonec, abyste zajistili, že připojení bude trvalé po restartování, přidejte následující řádek do /etc/fstab
soubor:
172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share nfs defaults 0 0
Klidný den.
Důkaz konceptu
Jako vyvrcholení našeho snažení pojďme otestovat nakonfigurovaný sdílení. Vytvořte soubor na serveru v /test/nfs_share/docs
s názvem test_doc
.
[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
Podívejme se, zda náš test_doc
je exportován do našeho klientského počítače prostřednictvím NFS.
Na klientském počítači:
[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$
Zde vidíme test_doc
existuje na serveru NFS.
Pro testování opačným směrem vytvořím na klientovi soubor s názvem client-test-doc
.
[tcarrigan@client docs]$ vi client-test-doc
Přeskočíme na server a uvidíme, jestli můžeme zobrazit nově vytvořený soubor.
NFS server:
[tcarrigan@server docs]$ ls -lrt
total 8
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
-rw-rw-r--. 1 tcarrigan tcarrigan 5 Jul 6 13:25 client-test-doc
Vidíme jak původní soubor test_doc
stejně jako nově vytvořený soubor client-test-doc
.
Gratulujeme k nastavení fungujícího páru server/klient NFS.
[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]