NFS je zkratka pro Network File System, pomáhá vám sdílet soubory a složky mezi systémy Linux / Unix, vyvinutý společností SUN Microsystems v roce 1990. NFS vám umožňuje připojit vzdálenou sdílenou složku lokálně.
Tato příručka vám pomůže nastavit server NFS na CentOS 7 / RHEL 7.
Výhody NFS
- Sdílení souborů/složek mezi systémy *nix
- Umožňuje lokálně připojit vzdálené souborové systémy
- Lze fungovat jako systém centralizovaného úložiště
- Lze jej použít jako úložnou doménu (úložiště dat) pro VMware a další virtualizační platformu.
- Umožňuje aplikacím sdílet konfigurační a datové soubory s více uzly.
- Umožňuje aktualizaci souborů napříč sdílenou složkou.
Důležité služby
Níže jsou uvedeny důležité služby NFS, které jsou součástí balíčků nfs-utils.
rpcbind :Server rpcbind převádí čísla programů RPC na univerzální adresy.
nfs-server :Umožňuje klientům přístup ke sdíleným složkám NFS.
nfs-lock / rpc-statd :Uzamčení souborů NFS. Implementujte obnovu uzamčení souboru, když se server NFS zhroutí a restartuje.
nfs-idmap :Překládá ID uživatelů a skupin na jména a překládá názvy uživatelů a skupin
na ID
Důležité konfigurační soubory
Pracovali byste hlavně na níže uvedených konfiguračních souborech pro nastavení NFS serveru a klientů.
/etc/exports:Je to hlavní konfigurační soubor, který řídí, které systémy souborů se exportují na vzdálené hostitele, a určuje možnosti.
/etc/fstab:Tento soubor se používá k řízení toho, jaké souborové systémy včetně adresářů NFS se připojí při spouštění systému.
/etc/sysconfig/nfs:Tento soubor se používá k řízení, na kterých portech běží požadované služby RPC.
/etc/hosts.allow a /etc/hosts.deny:Tyto soubory se nazývají TCP wrappery a řídí přístup k serveru NFS. NFS jej používá k rozhodnutí, zda přijmout nebo nepřijmout připojení přicházející z jiné IP adresy.
Životní prostředí
Zde pro toto demo použiji CentOS 7 minimal. Tato příručka by měla fungovat také na systémech Oracle Linux a Fedora.
Server NFS
Název hostitele: server.itzgeek.local (CentOS 7)
IP adresa: 192.168.1.10/24
Klient NFS
Název hostitele: client.itzgeek.local (CentOS 7)
IP adresa: 192.168.1.20/24
Konfigurace serveru NFS
Nainstalujte server NFS
Nainstalujte níže uvedený balíček pro server NFS pomocí příkazu yum.
yum install -y nfs-utils
Jakmile jsou balíčky nainstalovány, povolte a spusťte služby NFS.
systemctl start nfs-server rpcbind systemctl enable nfs-server rpcbind
Vytvořit sdílení NFS
Nyní vytvořte adresář, který chcete sdílet s klientem NFS. Zde vytvořím nový adresář s názvem nfsfileshare v oddílu /.
Můžete také sdílet svůj stávající adresář s NFS.
mkdir /nfsfileshare
Umožněte klientovi NFS číst a zapisovat do vytvořeného adresáře.
chmod 777 /nfsfileshare/
Musíme upravit soubor /etc/exports, abychom vytvořili záznam adresáře /nfsfileshare, který chcete sdílet.
vi /etc/exports
Vytvořte sdílenou složku NFS, například níže.
/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)
/nfsfileshare :sdílený adresář
192.168.1.20 :IP adresa klientského počítače. Místo IP adresy můžeme také použít název hostitele. Je také možné definovat rozsah klientů s podsítí jako 192.168.1.0/24.
rw :Oprávnění k zápisu do sdílené složky
synchronizace :Všechny změny v příslušném souborovém systému jsou okamžitě zapsány na disk; čeká se na příslušné operace zápisu.
no_root_squash : Ve výchozím nastavení je jakýkoli požadavek na soubor provedený uživatelem root na klientském počítači považován za uživatele nikdo na serveru. (Přesné UID, na které je požadavek namapován, závisí na UID uživatele „nikdo“ na serveru, nikoli na klientovi.) Pokud je vybrána možnost no_root_squash, bude mít root na klientském počítači stejnou úroveň přístupu k souborům na systému jako root na serveru.
Se všemi možnostmi se můžete seznámit v manuálové stránce man exports nebo zde.
Exportujte sdílené adresáře pomocí následujícího příkazu.
exportfs -r
Doplňky:
exportfs -v:Zobrazí seznam sdílených souborů a možností exportu na serveru.
exportfs -a:Exportuje všechny adresáře uvedené v /etc/exports.
exportfs -r:Po úpravě /etc/exports znovu exportuje všechny adresáře.
Po konfiguraci serveru NFS musíme tento sdílený adresář připojit k klientovi NFS.
Konfigurace brány firewall
Musíme nakonfigurovat bránu firewall na serveru NFS, aby klient NFS měl přístup ke sdílené složce NFS. Chcete-li to provést, spusťte na serveru NFS následující příkazy.
firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
Konfigurace klienta NFS
Nainstalujte klienta NFS
Potřebujeme nainstalovat balíčky NFS na klienta NFS, abychom mohli připojit vzdálenou sdílenou složku NFS. Nainstalujte balíčky NFS pomocí níže uvedeného příkazu.
yum install -y nfs-utils
Zkontrolujte sdílení NFS
Před připojením sdílené složky NFS vás žádám, abyste zkontrolovali sdílené složky NFS dostupné na serveru NFS spuštěním následujícího příkazu na klientovi NFS.
Nahraďte IP adresu IP adresou vašeho NFS serveru nebo názvem hostitele.showmount -e 192.168.1.10
Výstup:
Export list for 192.168.1.10: /nfsfileshare 192.168.1.20
Podle výstupu je /nfsfileshare k dispozici na serveru NFS (192.168.1.10) pro klienta NFS (192.168.1.20).
Doplňky:
showmount -e :Zobrazí dostupné sdílené položky na vašem místním počítači (server NFS).
showmount -e
Připojit sdílení NFS
Nyní vytvořte na klientovi NFS adresář pro připojení sdílené složky NFS /nfsfileshare, kterou jsme vytvořili na serveru NFS.
mkdir /mnt/nfsfileshare
Pomocí níže uvedeného příkazu připojte sdílenou složku NFS /nfsfileshare ze serveru NFS 192.168.1.10 v /mnt/nfsfileshare na klientovi NFS.
mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare
Ověřte připojenou sdílenou složku na klientovi NFS pomocí příkazu mount.
mount | grep nfs
Výstup:
ssunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Také můžete použít příkaz df -hT ke kontrole připojené sdílené složky NFS.
df -hT
Výstup:
Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 50G 1.2G 49G 3% / devtmpfs devtmpfs 485M 0 485M 0% /dev tmpfs tmpfs 496M 0 496M 0% /dev/shm tmpfs tmpfs 496M 6.7M 490M 2% /run tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/centos-home xfs 47G 33M 47G 1% /home /dev/sda1 xfs 1014M 154M 861M 16% /boot tmpfs tmpfs 100M 0 100M 0% /run/user/0 192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
Vytvořte soubor v připojeném adresáři, abyste ověřili přístup pro čtení a zápis ve sdílené složce NFS.
touch /mnt/nfsfileshare/test
Pokud výše uvedený příkaz nevrátí žádnou chybu, máte funkční nastavení NFS.
Automatické připojení sdílených složek NFS
Chcete-li sdílené položky připojit automaticky při každém restartu, budete muset upravit soubor /etc/fstab vašeho klienta NFS.
vi /etc/fstab
Přidejte záznam, například níže.
# # /etc/fstab # Created by anaconda on Wed Jan 17 12:04:02 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=60a496d0-69f4-4355-aef0-c31d688dda1b /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
Uložte a zavřete soubor.
Restartujte klientský počítač a zkontrolujte, zda je sdílená složka automaticky připojena nebo ne.
reboot
Ověřte připojenou sdílenou složku na klientovi NFS pomocí příkazu mount.
mount | grep nfs
Výstup:
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,nosuid,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Pokud chcete po dokončení sdílení souborů odpojit tento sdílený adresář od vašeho klienta NFS, můžete tento konkrétní adresář odpojit pomocí příkazu umount.
umount /mnt/nfsfileshare
Závěr
Úspěšně jste nastavili NFS Server a NFS Client na CentOS 7 / RHEL 7. Pokud si nepřejete používat statická připojení, můžete nakonfigurovat AutoFS na CentOS 7 tak, aby připojovalo sdílení NFS pouze tehdy, když k nim přistupuje uživatel.