Wyszukiwanie w witrynie

Konfigurowanie standardowych systemów plików Linux i konfiguracja serwera NFSv4 — część 2


Certyfikowany inżynier Linux Foundation (LFCE) jest przeszkolony w zakresie konfigurowania, konfigurowania, zarządzania i rozwiązywania problemów z usługami sieciowymi w systemach Linux, a także jest odpowiedzialny za projektowanie i wdrażanie architektury systemu oraz rozwiązywanie codziennych problemów problemy

Przedstawiamy Program Certyfikacji Linux Foundation (LFCE).

W pierwszej części tej serii wyjaśniliśmy, jak zainstalować serwer NFS (Network File System) i ustawić automatyczne uruchamianie usługi podczas rozruchu. Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z tym artykułem i wykonaj opisane kroki, zanim przejdziesz dalej.

  1. Instalowanie usług sieciowych i konfigurowanie automatycznego uruchamiania podczas rozruchu — część 1

Pokażę teraz, jak poprawnie skonfigurować serwer NFSv4 (bez zabezpieczeń uwierzytelniania), aby móc skonfigurować udziały sieciowe do używania na klientach Linux tak, jakby te systemy plików były zainstalowane lokalnie. Należy pamiętać, że do celów uwierzytelniania można używać protokołu LDAP lub NIS, ale obie opcje nie wchodzą w zakres certyfikacji LFCE.

Konfiguracja serwera NFSv4

Po uruchomieniu serwera NFS skupimy naszą uwagę na:

  1. określenie i skonfigurowanie katalogów lokalnych, które chcemy udostępnić w sieci, oraz
  2. automatycznie montuje te udziały sieciowe na klientach, albo poprzez plik /etc/fstab, albo za pomocą narzędzia automatycznego montowania opartego na jądrze (autofs).

Wyjaśnimy później, kiedy wybrać jedną lub drugą metodę.

Zanim to nastąpi, musimy się upewnić, że demon idmapd jest uruchomiony i skonfigurowany. Ta usługa wykonuje mapowanie nazw NFSv4 (użytkownik@mojadomena) na identyfikatory użytkowników i grup i jest wymagana do wdrożenia serwera NFSv4.

Edytuj /etc/default/nfs-common, aby włączyć idmapd.

NEED_IDMAPD=YES

Edytuj plik /etc/idmapd.conf, podając nazwę swojej domeny lokalnej (domyślnie jest to nazwa FQDN hosta).

Domain = yourdomain.com

Następnie uruchom idmapd.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Eksportowanie udziałów sieciowych

Plik /etc/exports zawiera główne wytyczne konfiguracyjne dla naszego serwera NFS, definiuje systemy plików, które będą eksportowane do zdalnych hostów oraz określa dostępne opcje. W tym pliku każdy udział sieciowy jest oznaczony oddzielną linią, która domyślnie ma następującą strukturę:

/filesystem/to/export client1([options]) clientN([options])

Gdzie /filesystem/to/export to bezwzględna ścieżka do wyeksportowanego systemu plików, natomiast client1 (do klientaN) reprezentuje konkretnego klienta (nazwę hosta lub adres IP) lub sieć (dozwolone są symbole wieloznaczne), do którego eksportowany jest udział. Wreszcie opcje to lista oddzielonych przecinkami wartości (opcji), które są brane pod uwagę odpowiednio podczas eksportowania udziału. Należy pamiętać, że pomiędzy każdą nazwą hosta a nawiasami, które ją poprzedzają, nie ma spacji.

Oto lista najczęściej występujących opcji i ich opis:

  1. ro (skrót od tylko do odczytu): klienci zdalni mogą montować wyeksportowane systemy plików tylko z uprawnieniami do odczytu.
  2. rw (skrót od read-write): umożliwia zdalnym hostom wprowadzanie zmian w zapisie w wyeksportowanych systemach plików.
  3. wdelay (skrót od opóźnienia zapisu): serwer NFS opóźnia zatwierdzenie zmian na dysku, jeśli podejrzewa, że zbliża się kolejne powiązane żądanie zapisu. Jeśli jednak serwer NFS otrzyma wiele małych, niepowiązanych ze sobą żądań, opcja ta zmniejszy wydajność, dlatego można ją wyłączyć za pomocą opcji no_wdelay.
  4. synchronizacja: serwer NFS odpowiada na żądania dopiero po zatwierdzeniu zmian w pamięci trwałej (tj. na dysku twardym). Jej przeciwieństwo, opcja async, może zwiększyć wydajność, ale kosztem utraty lub uszkodzenia danych po nieczystym ponownym uruchomieniu serwera.
  5. root_squash: Uniemożliwia zdalnym użytkownikom root posiadanie uprawnień superużytkownika na serwerze i przypisuje im identyfikator użytkownika „użytkownik nikt”. Jeśli chcesz „zmiażdżyć” wszystkich użytkowników (a nie tylko roota), możesz użyć opcji all_squash.
  6. anonuid/anongid: jawnie ustawia UID i GID konta anonimowego (nobody).
  7. subtree_check: jeśli eksportowany jest tylko podkatalog systemu plików, ta opcja sprawdza, czy żądany plik znajduje się w tym wyeksportowanym podkatalogu. Z drugiej strony, jeśli eksportowany jest cały system plików, wyłączenie tej opcji za pomocą no_subtree_check przyspieszy transfer. Obecnie domyślną opcją jest no_subtree_check, ponieważ sprawdzanie poddrzewa zwykle powoduje więcej problemów, niż jest to warte, zgodnie z eksportem man 5.
  8. fsid=0 | root (zero lub root): określa, że określony system plików jest katalogiem głównym wielu eksportowanych katalogów (dotyczy tylko NFSv4).

W tym artykule będziemy używać katalogów /NFS-SHARE i /NFS-SHARE/mydir na 192.168.0.10 (serwer NFS) jako naszych testować systemy plików.

Zawsze możemy wyświetlić listę dostępnych udziałów sieciowych na serwerze NFS za pomocą następującego polecenia:

showmount -e [IP or hostname]

W powyższym wyniku widzimy, że udziały /NFS-SHARE i /NFS-SHARE/mydir na 192.168.0.10 zostały wyeksportowane do klienta o adresie IP 192.168.0.17.

Nasza początkowa konfiguracja (sprawdź katalog /etc/exports na serwerze NFS) wyeksportowanego katalogu jest następująca:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Po edycji pliku konfiguracyjnego musimy zrestartować usługę NFS:

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Montowanie wyeksportowanych udziałów sieciowych przy użyciu autofs

Możesz zapoznać się z Częścią 5 serii LFCS („Jak montować/odmontowywać lokalne i sieciowe (Samba i NFS) systemy plików w systemie Linux”), aby uzyskać szczegółowe informacje na temat montowania zdalnych udziałów NFS na żądanie za pomocą poleceniem mount lub na stałe poprzez plik /etc/fstab.

Wadą montowania sieciowego systemu plików przy użyciu tych metod jest to, że system musi przydzielić niezbędne zasoby, aby udział był zamontowany przez cały czas lub przynajmniej do czasu, gdy zdecydujemy się na ręczne odmontowanie go. Alternatywą jest automatyczne zamontowanie żądanego systemu plików na żądanie (bez użycia polecenia mount) za pomocą autofs, który może montować systemy plików, gdy są używane, i odmontowywać je po okres bezczynności.

Autofs czyta /etc/auto.master, który ma następujący format:

[mount point]	[map file]

Gdzie [plik mapy] jest używany do wskazania wielu punktów podłączenia w obrębie [punkt podłączenia].

Ten główny plik mapy (/etc/auto.master) jest następnie używany do określenia, które punkty podłączenia są zdefiniowane, a następnie rozpoczyna proces automatycznego montowania z określonymi parametrami dla każdego punktu podłączenia.

Montowanie wyeksportowanych udziałów NFS za pomocą autofs

Edytuj plik /etc/auto.master w następujący sposób:

/media/nfs	/etc/auto.nfs-share	--timeout=60

i utwórz plik mapy o nazwie /etc/auto.nfs-share z następującą zawartością:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Zwróć uwagę, że pierwsze pole w /etc/auto.nfs-share to nazwa podkatalogu w /media/nfs. Każdy podkatalog jest tworzony dynamicznie przez autofs.

Teraz uruchom ponownie usługę autofs:

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

i na koniec, aby włączyć autofs uruchamianie się podczas rozruchu, uruchom następującą komendę:

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Sprawdzanie zamontowanych systemów plików po uruchomieniu demona autofs

Kiedy ponownie uruchomimy autofs, polecenie mount pokaże nam, że plik mapy (/etc/auto.nfs-share) jest zamontowany na określonym katalog w /etc/auto.master:

Należy pamiętać, że żadne katalogi nie zostały jeszcze zamontowane, ale zostanie to automatycznie zamontowane, gdy spróbujemy uzyskać dostęp do udziałów określonych w /etc/auto.nfs-share:

Jak widzimy, usługa autofs „montuje” plik mapy, że tak powiem, ale czeka, aż do systemów plików zostanie wysłane żądanie faktycznego ich zamontowania.

Wykonywanie testów zapisu w wyeksportowanych systemach plików

Opcje anonuid i anongid wraz z opcją root_squash ustawioną w pierwszym udziale pozwalają nam mapować żądania wykonywane przez użytkownika root w klienta do konta lokalnego na serwerze.

Innymi słowy, gdy root na kliencie utworzy plik w tym wyeksportowanym katalogu, jego własność zostanie automatycznie zmapowana na konto użytkownika o UID i GID=1000, pod warunkiem, że takie konto istnieje na serwerze:

Wniosek

Mam nadzieję, że udało Ci się pomyślnie zainstalować i skonfigurować serwer NFS pasujący do Twojego środowiska, korzystając z tego artykułu jako przewodnika. Możesz także zajrzeć do odpowiednich stron podręcznika w celu uzyskania dalszej pomocy (na przykład man eksport i man idmapd.conf).

Możesz eksperymentować z innymi opcjami i przypadkami testowymi, jak opisano wcześniej, i nie wahaj się skorzystać z poniższego formularza, aby przesłać swoje komentarze, sugestie lub pytania. Będziemy szczęśliwi, aby usłyszeć od ciebie.