Ubuntu 20.04 podporuje NFS verze 3 (NFSv3) a 4 (NFSv4). Výchozí verze NFS je 4.2, která obsahuje podporu pro seznamy řízení přístupu (ACL), kopírování na straně serveru, řídké soubory, rezervaci místa, označené NFS, vylepšení rozvržení a mnoho dalšího.
V této příručce se naučíme, jak nainstalovat a nakonfigurovat server NFS a klienta NFS na Ubuntu 20.04.
Související příspěvky:
- Jak nastavit NFS server a klienta na Rocky/Alma Linux 8
- Jak nainstalovat a nakonfigurovat sdílení souborů Samba na Ubuntu 20.04
Předpoklady
- Aktualizovaný server Ubuntu 20.04 pro použití jako server a další pro klienta
- Připojení ze serverů
- Přístup sudo ze serverů
Obsah
- Ujistěte se, že je server aktualizován
- Nainstalujte balíčky NFS
- Spuštění a povolení serveru NFS
- Povolení služby NFS na bráně Firewall
- Konfigurace exportů na serveru NFS
- Nastavení klientských systémů NFS
1. Zajištění aktuálnosti serveru
Než budete pokračovat, ujistěte se, že je server aktuální. K dosažení tohoto cíle použijte tento příkaz:
sudo apt update
sudo apt upgrade -y
2. Nainstalujte balíčky NFS
Balíček nfs-kernel-server
poskytuje služby NFS pro Ubuntu. Balíček serveru NFS poskytuje podporu v uživatelském prostoru potřebnou ke spuštění serveru jádra NFS. Chcete-li balíček nainstalovat, spusťte:
sudo apt install -y nfs-kernel-server
Na Ubuntu 20.04 je NFS verze 2 zakázán. Verze 3 a 4 jsou povoleny. Ověřte nainstalovanou verzi pomocí tohoto příkazu:
$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
3. Spuštění a povolení NFS serveru
Jakmile jsou balíčky NFS úspěšně nainstalovány, spustí se server NFS. Potvrďte stav služby tímto příkazem:
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-01-17 19:24:54 UTC; 1min 40s ago
Main PID: 20614 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4624)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jan 17 19:24:52 dev-ubuntusrv.inv.re systemd[1]: Starting NFS server and services...
Jan 17 19:24:54 dev-ubuntusrv.inv.re systemd[1]: Finished NFS server and services.
Výše uvedený výstup ukazuje, že služba byla úspěšně spuštěna. Chcete-li povolit spuštění služby při spouštění systému, použijte tento příkaz:
sudo systemctl enable nfs-server
Vezměte prosím na vědomí, že další služby, které jsou nutné pro provoz serveru NFS nebo připojení sdílených složek NFS, jako je nfsd
, nfs-idmapd
, rpcbind
, rpc.mountd
, lockd
, rpc.statd
, rpc.rquotad
a rpc.idmapd
se spustí automaticky.
4. Povolení služby NFS v bráně firewall
Pokud instalujete server NFS na vzdálený server Ubuntu, který je chráněn firewallem , budete muset povolit provoz na portu NFS:
sudo ufw allow nfs
Ověřte změnu:
sudo ufw status
5. Konfigurace exportů na serveru NFS
Konfigurace serveru NFS je definována v /etc/default/nfs-kernel-server
a /etc/default/nfs-common
soubory. Výchozí nastavení je dostatečné pro většinu situací.
Pojďme vytvořit souborové systémy pro export nebo sdílení na NFS serveru. Vytvoříme dva souborové systémy, které budeme sledovat, /mnt/nfs_shares/files
pro sdílené soubory a /mnt/nfs_shares/backup
pro zálohy.
Vytvořme adresáře na serveru
sudo mkdir -p /mnt/nfs_shares/files
sudo mkdir -p /mnt/nfs_shares/backup
Potvrďte
$ sudo ls /mnt/nfs_shares
backup files
Poté přidejte výše uvedené systémy souborů do souboru exportů /etc/exports
na serveru NFS, abyste určili místní systémy souborů, které se exportují do klientů NFS.
Otevřete soubor exportů pomocí textového editoru
sudo vim /etc/exports
Poté přidejte tento obsah:
/mnt/nfs_shares/files 10.70.5.170(rw,sync)
/mnt/nfs_shares/backup 10.70.5.0/24(rw,sync,no_all_squash,root_squash)
Toto jsou možnosti exportu, které lze použít:
- rw – umožňuje přístup ke čtení i zápisu do systému souborů.
- synchronizovat – říká serveru NFS, aby na požádání zapsal operace (zápis informací na disk) (platí ve výchozím nastavení).
- all_squash – mapuje všechna UID a GID z klientských požadavků na anonymního uživatele.
- no_all_squash – používá se k mapování všech UID a GID z požadavků klientů na identická UID a GID na serveru NFS.
- root_squash – mapuje požadavky od uživatele root nebo UID/GID 0 od klienta na anonymní UID/GID.
Jakmile jsou systémy souborů definovány v souboru exportů, musíme spustit exportfs
příkaz pro jejich export. Exportfs lze spustit pomocí -a
příznak znamená exportovat nebo zrušit export všech adresářů, -r
což znamená znovu exportovat všechny adresáře, synchronizovat /var/lib/nfs/etab pomocí /etc/exports a soubory pod /etc/exports.d a -v umožňuje podrobný výstup.
sudo exportfs -arv
Toto je výstup na mém serveru
$ sudo exportfs -arv
exporting 10.70.5.170:/mnt/nfs_shares/files
exporting 10.70.5.0/24:/mnt/nfs_shares/backup
Chcete-li zobrazit aktuální seznam exportů, spusťte následující příkaz. Upozorňujeme, že tabulka exportfs také používá některé výchozí možnosti, které nejsou explicitně definovány:
$ sudo exportfs -s
/mnt/nfs_shares/files 10.70.5.170(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/mnt/nfs_shares/backup 10.70.5.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
6. Nastavení klientských systémů NFS
Nyní, když jsme nakonfigurovali exporty na serveru, můžeme k nim přistupovat z klientského systému. Přihlaste se do klientského systému a nainstalujte potřebné balíčky, které umožní přístup ke sdíleným složkám NFS.
Na systémech založených na RHEL:
sudo dnf install -y nfs-utils nfs4-acl-tools
V distribucích založených na Debianu/Ubuntu:
sudo apt install nfs-common nfs4-acl-tools
Poté můžeme spustit příkaz showmount a zobrazit informace o připojení pro server NFS. Výstupem příkazu jsou exportované souborové systémy na serveru
showmount -e 10.70.5.221
Výstup
$ showmount -e 10.70.5.221
Export list for 10.70.5.221:
/mnt/nfs_shares/backup 10.70.5.0/24
/mnt/nfs_shares/files 10.70.5.170
Vytvořte místní adresář systému souborů pro připojení vzdálených souborových systémů NFS a připojte jej jako souborový systém nfs
mkdir -p ~/backups
mkdir -p ~/nfs_files
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/backup ~/backups
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/files ~/nfs_files
Poté můžeme potvrdit, že byl vzdálený souborový systém připojen spuštěním připojit příkaz a filtr nfs připojí.
sudo mount | grep nfs
Výstup na mém počítači
$ sudo mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
10.70.5.221:/mnt/nfs_shares/backup on /home/ubuntu/backups type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
10.70.5.221:/mnt/nfs_shares/files on /home/ubuntu/nfs_files type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
Chcete-li povolit trvalé připojení i po restartování systému, přidejte položky do /etc/fstab
soubor. K tomu použijte tyto příkazy (jako root):
echo "10.70.5.221:/mnt/nfs_shares/backup /home/ubuntu/backups nfs defaults 0 0" >> /etc/fstab
echo "10.70.5.221:/mnt/nfs_shares/files /home/ubuntu/nfs_files nfs defaults 0 0" >> /etc/fstab
Nakonec otestujte, zda NFS setup funguje správně, když vytvoříte soubor na serveru a zkontrolujete, zda je soubor vidět v klientovi.
Na serveru:
sudo touch /mnt/nfs_shares/files/file_on_server.txt
Poté na klientském počítači potvrďte
$ ls ~/nfs_files/
file_on_server.txt
Můžete to udělat i obráceně. Na klientovi:
touch ~/nfs_files/file_on_client.txt
Poté na serveru potvrďte:
$ ls /mnt/nfs_shares/files/
file_on_client.txt file_on_server.txt
Chcete-li odpojit vzdálený souborový systém na straně klienta.
sudo umount /mnt/nfs_shares/files
sudo umount /mnt/nfs_shares/backup
Upozorňujeme, že nelze unmount
vzdálený souborový systém, pokud v něm pracujete.
Závěr
V této příručce se nám podařilo nainstalovat a nakonfigurovat server a klienta NFS na Ubuntu 20.04.