Jak zainstalować serwer i klienta NFS w dystrybucjach RHEL
W systemie Linux istnieje kilka protokołów udostępniania plików używanych do współdzielenia pamięci i plików w sieci. Najpopularniejsze z nich to Samba i NFS.
Samba to popularny pakiet aplikacji typu open source, który działa w architekturze klient-serwer. Oferuje kompatybilność między platformami, umożliwiając bezproblemowe udostępnianie plików w systemach operacyjnych Linux, Windows i macOS. Dostęp do udziału plików hostowanego w systemie Linux można uzyskać z różnych platform, co sprzyja współpracy.
Innym szeroko stosowanym protokołem udostępniania plików jest NFS, skrót od Network File Share. Podobnie jak Samba, działa w modelu klient-serwer i umożliwia użytkownikowi udostępnianie katalogów i plików w sieci wielu zdalnym użytkownikom klientów.
W tym przewodniku sprawdzimy, jak zainstalować serwer i klienta NFS w dystrybucjach opartych na RHEL, takich jak Fedora, CentOS Stream, Rocky Linux i AlmaLinux.
Usługi NFS
Obecnie dostępne są 3 wersje systemu NFS, najnowsza to NFSv4, która obejmuje takie funkcje, jak możliwość pracy przez Internet i zaporę sieciową. Ponadto istnieje najstarszy protokół NFSv3 i NFSv2.
Usługa NFS składa się z serwera NFS i klienta. Serwer NFS składa się z następujących plików kluczy:
- serwer nfs – umożliwia systemom klienckim dostęp do plików współdzielonych przez NFS.
- rpcbind – konwertuje programy RPC na adresy uniwersalne.
- nfs-idmap – Wykonuje tłumaczenie identyfikatorów użytkowników i grup na nazwy oraz nazw użytkowników i grup na identyfikatory.
- portmap – Jest to serwer konwertujący numery programów RPC na numery portów IP.
- nfslock – w przypadku awarii serwera NFS, nfslock uruchamia wymagane procesy RPC.
Usługi konfiguracyjne NFS
Oto niektóre z kluczowych plików konfiguracyjnych dla NFS:
- /etc/exports – główny plik konfiguracyjny, który określa systemy plików lub katalogi, które mają być eksportowane i dostępne dla użytkowników zdalnych.
- /etc/fstab – jest to plik zawierający wpisy zamontowanych partycji. W systemie NFS plik zawiera wpisy współdzielonych katalogów lub systemów plików NFS, które są zamontowane na stałe i mogą wytrzymać ponowne uruchomienie.
- /etc/sysconfig/nfs – definiuje porty potrzebne podczas uruchamiania usług RPC.
Konfiguracja serwera i klienta NFS
Aby skonfigurować udziały NFS, będziemy potrzebować co najmniej dwóch komputerów Linux/Unix. W tym samouczku będę używać dwóch serwerów.
- Serwer NFS – RHEL 9 z adresem IP 10.128.15.213
- Klient NFS – RHEL 9 z adresem IP 10.128.15.214
Zainstaluj NFS na serwerze i kliencie
Aby rozpocząć, musisz zalogować się do obu węzłów (serwera i klienta NFS) i zainstalować usługi NFS. Najpierw zaktualizuj informacje o pakiecie, jak pokazano. Następujące polecenie dnf zaktualizuje również wszystkie ekscytujące pakiety do ich najnowszych wersji.
sudo dnf update
Po zakończeniu aktualizacji kontynuuj i zainstaluj wymagane usługi NFS.
sudo dnf install rpcbind nfs-utils -y
Następnym krokiem jest włączenie usług NFS, jak pokazano.
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
Pamiętaj także o uruchomieniu usług NFS.
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
Bardzo ważne jest sprawdzenie, czy wszystkie usługi NFS działają.
sudo systemctl status nfs-server
sudo systemctl status rpcbind
Pamiętaj, aby skonfigurować zaporę sieciową tak, aby zezwalała na przychodzące usługi NFS w następujący sposób.
sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload
Utwórz katalog udostępniania NFS
Po zainstalowaniu i uruchomieniu wszystkich usług NFS zgodnie z oczekiwaniami czas utworzyć katalog współdzielony NFS, czyli katalog zawierający pliki, do których będą mieli dostęp klienci NFS w sieci.
W takim przypadku utworzymy w naszym katalogu domowym katalog udziałów NFS o nazwie my_nfsshare.
mkdir -p /home/tecmint/my_nfsshare
Następnie przypisz uprawnienia do katalogu. W celach demonstracyjnych przypiszemy uprawnienia globalne, które zapewnią klientom NFS uprawnienia do odczytu, zapisu i wykonywania.
sudo chmod 777 -R /home/tecmint/my_nfsshare
Eksportuj katalog udostępniony NFS
Następnym krokiem jest wyeksportowanie katalogu udziałów NFS. Aby to osiągnąć musimy dokonać wpisu w pliku /etc/exports. Dlatego uzyskaj dostęp do pliku za pomocą preferowanego edytora tekstu. W tym przypadku użyjemy edytora Vima.
sudo vim /etc/exports
Dodaj następujący wpis. Pamiętaj, aby zastąpić adres IP serwera adresem IP serwera NFS.
/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)
Na koniec wyeksportuj katalog współdzielony NFS lub system plików.
sudo exportfs -rv
Uruchom następujące polecenie, aby wyświetlić udziały NFS.
showmount -e localhost
Skonfiguruj klienta NFS
Pozostała faza tego ćwiczenia polega na skonfigurowaniu klienta NFS w celu uzyskania dostępu do katalogu współdzielonego. Najpierw potwierdź, że możesz wyświetlić listę eksportu lub udziały NFS na serwerze NFS.
showmount -e 10.128.15.213
Następnym krokiem jest zamontowanie udziału NFS z serwera do klienta. Aby to zrobić, musimy najpierw utworzyć katalog montowania. W takim przypadku utworzymy katalog o nazwie nfs_backup.
mkdir nfs_backup
Następnie zamontujemy udział NFS w katalogu montowania, który właśnie utworzyliśmy w głównym katalogu domowym
mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare ~/nfs_backup
Aby zachować udział NFS, edytuj plik /etc/fstab.
vim /etc/fstab
Następnie dodaj następujący wpis.
10.128.15.213:/home/tecmint/my_nfsshare /root/nfs_backup nfs defaults 0 0
Zapisz i wyjdź z pliku konfiguracyjnego.
Testowanie konfiguracji NFS
Ostatnim krokiem jest sprawdzenie, czy konfiguracja NFS działa zgodnie z oczekiwaniami. Utworzymy kilka plików na serwerze i sprawdzimy ich dostępność po stronie klienta NFS.
Po stronie serwera utworzymy pliki w katalogu udostępnionym NFS.
sudo touch my_nfsshare/file{1..4}.txt
Aby sprawdzić, czy pliki zostały utworzone, wykonamy polecenie ls:
ls -l my_nfsshare/
Wracając do strony klienta, sprawdź, czy pliki są dostępne w katalogu montowania bez odświeżania usług lub ponownego uruchamiania jakichkolwiek usług, jak widać na poniższych wynikach.
ls -l nfs_backup/
Usuwanie uchwytu NFS
Jeśli nie potrzebujesz już zamontowanego katalogu w swoim systemie, możesz odmontować go po stronie klienta za pomocą następującego polecenia umount:
umount ~/nfs_backup
Polecenia udostępniania NFS
Kilka ważniejszych poleceń dla NFS.
- showmount -e – pokazuje dostępne udziały na Twoim komputerze lokalnym
- showmount -e adres ip – wyświetla listę dostępnych udziałów na zdalnym serwerze
- showmount -d – wyświetla listę wszystkich podkatalogów
- exportfs -v – Wyświetla listę udostępnionych plików i opcji na serwerze
- exportfs -a – Eksportuje wszystkie udziały wymienione w /etc/exports lub imię
- exportfs -u – cofa eksport wszystkich udziałów wymienionych w /etc/exports lub podanych imion
- exportfs -r – Odśwież listę serwerów po modyfikacji /etc/exports
Wniosek
Na tym kończy się nasz przewodnik dotyczący instalacji serwera i klienta NFS w dystrybucjach opartych na RedHat. Zainstalowaliśmy usługi NFS na serwerze, utworzyliśmy katalog współdzielony NFS i na koniec zamontowaliśmy katalog współdzielony na kliencie. Na koniec zweryfikowaliśmy konfigurację NFS, uzyskując dostęp do pliku utworzonego na serwerze po stronie klienta.