Jak udostępnić systemy plików ZFS z NFS

Jak udostępnić systemy plików ZFS z NFS

Możesz udostępniać swoje pule ZFS i systemy plików za pomocą protokołu podziału plików NFS (Network File System) i bardzo łatwo uzyskać dostęp do komputerów zdalnych.

W tym artykule pokażę Ci, jak udostępniać pule ZFS i systemy plików za pomocą usługi udostępniania plików NFS i uzyskiwać do nich dostęp do zdalnych komputerów. Więc zacznijmy.

Spis treści

  1. Internetowy diagram
  2. Instalowanie serwera NFS
  3. Instalowanie klienta NFS
  4. Tworzenie pul i systemy plików ZFS
  5. Udostępnianie pul ZFS z NFS
  6. Udostępnianie systemów plików ZFS z NFS
  7. Montaż NFS Udostępnione pule ZFS i systemy plików
  8. Automatyczne montaż NFS Udostępnione pule ZFS i systemy plików
  9. Zezwalaj na pule i systemy plików NFS udostępniane ZFS
  10. Nieoporzyżowe pule ZFS i systemy plików
  11. Wniosek
  12. Bibliografia

Internetowy diagram

W tym artykule skonfiguruję Ubuntu 20.04 Komputer LTS (nazwa hosta: Linuxhint, IP: 192.168.122.98) Jako serwer NFS i skonfiguruj Ubuntu 20.04 Komputer LTS (nazwa hosta: NFS-CLIENT, IP: 192.168.122.203) Jako klient NFS. Oba te komputery są w podsieci 192.168.122.0/24. Skonfiguruję serwer NFS w sposób, w jaki tylko komputery/serwery w tej podsieci będą mogły uzyskać dostęp do serwera NFS.

Rysunek 1: Serwer NFS i klient podłączony do podsieci sieci 192.168.122.0/24

Instalowanie serwera NFS

Musisz mieć zainstalowany pakiet serwera NFS na komputerze, z którego chcesz udostępnić swoje pule/systemy plików ZFS za pośrednictwem NFS.

Jeśli używasz Debian 10 lub Ubuntu 20.04 LTS, możesz zainstalować pakiet serwera NFS na komputerze w następujący sposób:

$ sudo apt Zainstaluj NFS-kernel-server -y

Po zainstalowaniu pakietu serwera NFS, NFS-SERVER Usługa systemu powinna być aktywny.

$ sudo Systemctl Status NFS-SERVER.praca

Jeśli używasz CentOS 8/RHEL 8, przeczytaj artykuł Jak skonfigurować serwer NFS na Centos 8, aby uzyskać pomoc w instalacji serwera NFS na komputerze.

Instalowanie Klient NFS

Musisz mieć pakiet klientów NFS zainstalowany na komputerze, z którego będziesz dostęp do swoich pul/systemów plików ZFS za pośrednictwem NFS.

Jeśli używasz Debian 10 lub Ubuntu 20.04 LTS, możesz uruchomić następujące polecenie, aby zainstalować pakiet klienta NFS na komputerze:

$ sudo apt Zainstaluj NFS -common -y

Tworzenie pul i systemy plików ZFS

W tej sekcji zamierzam stworzyć pulę ZFS Pool1 Korzystanie z urządzeń pamięci VDB I VDC W konfiguracji lustra.

$ sudo lsblk -e7 -d

Aby utworzyć nową pulę ZFS Pool1 Korzystanie z urządzeń pamięci VDB I VDC W konfiguracji lustra uruchom następujące polecenie:

$ sudo zpool Utwórz -f pula 1 lustro vdb vdc

Nowa pula ZFS Pool1 należy utworzyć i pulę ZFS Pool1 powinno być automatycznie zamontowane w /pula 1 informator.

Lista $ sudo zfs

Utwórz system plików ZFS FS1 W puli ZFS Pool1 następująco:

$ sudo zfs Utwórz pulę1/fs1

Nowy system plików ZFS FS1 powinno być tworzone i automatycznie zamontowane w /basen1/fs1 informator.

Lista $ sudo zfs

Udostępnianie pul ZFS z NFS

Aby udostępnić pulę ZFS Pool1 Za pośrednictwem NFS musisz ustawić Sharenfs właściwość puli ZFS odpowiednio.

Aby umożliwić wszystkim w sieci odczyt/zapis dostęp do puli ZFS Pool1, możesz ustawić Sharenfs Własność puli ZFS Pool1 następująco:

$ sudo zfs set sharenfs = "rw" pula 1

Lub,

$ sudo zfs set sharenfs = "rw =*" pula 1

Aby umożliwić każdy komputer/serwer w podsieci sieciowej 192.168.122.0/24 Odczyt/zapisz dostęp do puli ZFS Pool1 Tylko możesz ustawić Sharenfs Własność puli ZFS Pool1 następująco:

$ sudo zfs set sharenfs = "rw [email protected]/24 "pula 1

Aby umożliwić tylko komputer z adresem IP 192.168.122.203 Odczyt/zapisz dostęp do puli ZFS Pool1, możesz ustawić Sharenfs Własność puli ZFS Pool1 następująco:

$ sudo zfs set sharenfs = "rw = 192.168.122.203 "Pool1

Możesz użyć okrężnicy (:) Symbol umożliwiający dostęp do puli ZFS Pool1 z wielu podsieci sieciowych lub adresów IP.

Na przykład, aby umożliwić podsieci sieciowe 192.168.122.0/24 I 192.168.132.0/24 Odczyt/zapisz dostęp do puli ZFS Pool1, możesz ustawić Sharenfs Własność puli ZFS Pool1 następująco:

$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "pula 1

W ten sam sposób, aby umożliwić tylko komputery z adresami IP 192.168.122.203 I 192.168.122.233 Odczyt/zapisz dostęp do puli ZFS Pool1, możesz ustawić Sharenfs Własność puli ZFS Pool1 następująco:

$ sudo zfs set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "pula 1

Możesz sprawdzić, czy Sharenfs właściwość jest poprawnie ustawiona na puli ZFS Pool1 następująco:

$ sudo zfs dostaj sharenfs pula 1

Udostępnianie systemów plików ZFS z NFS

Aby udostępnić system plików ZFS FS1 Za pośrednictwem NFS musisz ustawić Sharenfs właściwość odpowiednio system plików ZFS.

Aby umożliwić wszystkim w sieci odczytu/zapisu dostępu do systemu plików ZFS FS1, możesz ustawić Sharenfs właściwość systemu plików ZFS FS1 następująco:

$ sudo zfs set sharenfs = "rw" pula 1/fs1

Lub,

$ sudo zfs set sharenfs = "rw =*" pula 1/fs1

Aby umożliwić każdy komputer/serwer w podsieci sieciowej 192.168.122.0/24 Odczyt/zapisz dostęp do systemu plików ZFS Pool1/FS1, możesz ustawić Sharenfs właściwość systemu plików ZFS Pool1/FS1 następująco:

$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1/FS1

Aby umożliwić tylko komputer z adresem IP 192.168.122.203 Odczyt/zapisz dostęp do systemu plików ZFS Pool1/FS1, możesz ustawić Sharenfs właściwość systemu plików ZFS Pool1/FS1 następująco:

$ sudo zfs set sharenfs = "rw = 192.168.122.203 "Pool1/FS1

Możesz użyć okrężnicy (:) Symbol umożliwiający dostęp do systemu plików ZFS FS1 z wielu podsieci sieciowych lub adresów IP.

Na przykład, aby umożliwić podsieci sieciowe 192.168.122.0/24 I 192.168.132.0/24 Odczyt/zapisz dostęp do systemu plików ZFS Pool1/FS1, możesz ustawić Sharenfs właściwość systemu plików ZFS Pool1/FS1 następująco:

$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1/FS1

W ten sam sposób, aby umożliwić tylko komputery z adresami IP 192.168.122.203 I 192.168.122.233 Odczyt/zapisz dostęp do systemu plików ZFS Pool1/FS1, możesz ustawić Sharenfs właściwość systemu plików ZFS Pool1/FS1 następująco:

$ sudo zfs set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1/FS1

Możesz sprawdzić, czy Sharenfs właściwość jest poprawnie ustawiona na systemie plików ZFS Pool1/FS1 następująco:

$ sudo zfs dostaj sharenfs pula 1/fs1

Montaż NFS Udostępnione pule ZFS i systemy plików

Aby zamontować pule ZFS i systemy plików, które udostępniłeś za pośrednictwem NFS na swoim komputerze (Klient NFS), musisz znać adres IP swojego serwera NFS.

Możesz uruchomić ''nazwa hosta -i ' Polecenie na serwerze NFS, aby znaleźć adres IP swojego serwera NFS. W moim przypadku adres IP to 192.168.122.98.

$ hostName -i

Gdy znasz adres IP serwera NFS, możesz wymienić wszystkie dostępne akcje NFS z komputera w następujący sposób:

$ showmount -e 192.168.122.98

Jak widać, pula ZFS Pool1 i system plików ZFS FS1 są wymienione jako akcje NFS /pula 1 I /basen1/fs1 odpowiednio.

Utwórz katalog /MNT/Pool1 do montażu udziału NFS /pula 1 (Basen ZFS Pool1) Jak następuje:

$ sudo mkdir -v /mnt /pula 1

Możesz zamontować dzielenie NFS /pula 1 (Basen ZFS Pool1) z serwera NFS 192.168.122.98 na /MNT/Pool1 Katalog twojego komputera (klient NFS) w następujący sposób:

$ sudo Mount -t nfs 192.168.122.98:/basen1/mnt/basen1

Udział NFS /pula 1 powinien być zamontowany na /MNT/Pool1 katalog komputera (klient NFS).

$ df -h /mnt /pula1

W ten sam sposób utwórz nowy katalog /MNT/FS1 do montażu udziału NFS /basen1/fs1 (ZFS System FileSystem FS1) Jak następuje:

$ sudo mkdir -v /mnt /fs1

Zamontować udział NFS /basen1/fs1 (ZFS System FileSystem FS1) z serwera NFS 192.168.122.98 na /MNT/FS1 Katalog twojego komputera (klient NFS) w następujący sposób:

$ sudo Mount -t nfs 192.168.122.98:/pula 1/fs1/mnt/fs1

Udział NFS /basen1/fs1 (ZFS System FileSystem FS1) powinno być zamontowane na /MNT/FS1 katalog komputera (klient NFS).

$ df -h /mnt /fs1

Automatyczne montaż NFS Udostępnione pule ZFS i systemy plików

Możesz zamontować akcje NFS /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) Na komputerze (klient NFS) automatycznie w czasie rozruchu.

Aby to zrobić, otwórz /etc/fstab plik z Nano Edytor tekstu w następujący sposób:

$ sudo nano /etc /fstab

Dodaj następujące linie na końcu /etc/fstab plik.

# Akcje Mount NFS
192.168.122.98:/pula 1/mnt/pula1 NFS domyślnie 0 0
192.168.122.98:/pula 1/fs1/mnt/fs1 nfs domyślnie 0 0

Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować /etc/fstab plik.

Aby zmiany uruchomić, uruchom ponownie komputer (klient NFS) w następujący sposób:

$ sudo restart

Następnym razem, gdy twój komputer (klient NFS), NFS dzieli /pula 1 (Basen ZFS Pool1)I /basen1/fs1 (ZFS System FileSystem FS1) powinno być zamontowane w /MNT/Pool1 I /MNT/FS1 katalogi odpowiednio.

$ df -h -t nfs4

Zezwalaj na pule i systemy plików NFS udostępniane ZFS

Jeśli spróbujesz napisać do akcji NFS /pula 1 (Basen ZFS Pool1) Lub /basen1/fs1 (ZFS System FileSystem FS1) Z komputera (klienta NFS) w tej chwili otrzymasz Zezwolenie odrzucone Wiadomość, jak pokazano na zrzucie ekranu poniżej.

Aby rozwiązać ten problem, możesz zrobić jedną z następujących czynności:

  1. Ustawić 0777 pozwolenie na /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) Katalog serwera NFS, aby każdy mógł pisać do puli ZFS Pool1 i system plików FS1. Ta metoda ma duże ryzyko bezpieczeństwa. Nie polecam tego, chyba że używasz go do celów testowych.
  2. Tworzyć grupę użytkownicy NFS (Powiedzmy) na serwerze NFS i na komputerach klienckich NFS, z których chcesz napisać do swoich akcji NFS. Następnie zmień grupę /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) katalogi serwera NFS to użytkownicy NFS. Ustaw również uprawnienia do zapisu grupy (0775) dla katal /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) katalogi serwera NFS. W ten sposób możesz tworzyć nowych użytkowników na komputerach klienta NFS, zestaw użytkownicy NFS jako ich podstawowa grupa i powinni być w stanie pisać do akcji NFS bez żadnych problemów.

NOTATKA: NFS mapuje UID (identyfikator użytkownika) i GID (identyfikator grupy) komputerów klienckich NFS z UID i GID serwera NFS. Tak więc, jeśli użytkownik/grupa może napisać do udziału NFS na serwerze NFS, ten sam użytkownik/grupa z tym samym UID/GID powinien być również w stanie napisać do tego NFS Udostępnienie z komputera klienta NFS.

W tej sekcji pokażę, jak skonfigurować niezbędnych użytkowników i grupy na serwerze NFS i komputerach klienckich, aby móc pisać do akcji NFS.

Na serwerze NFS utwórz nową grupę użytkownicy NFS i ustaw GID (identyfikator grupy) użytkownicy NFS grupa do 2000 następująco:

$ Sudo GroupAdd-Gid 2000 NFS-Users

Na komputerach klienckich NFS utwórz nową grupę użytkownicy NFS i ustaw GID (identyfikator grupy) użytkownicy NFS grupa do 2000 również.

$ Sudo GroupAdd-Gid 2000 NFS-Users

Na serwerze NFS zmień grupę /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) katalogi do użytkownicy NFS następująco:

$ sudo chgrp -rfv nfs -użytkowe /pula 1

Zezwól na odczyt i pisanie uprawnień do /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) KATALODY W następujący sposób:

$ sudo chmod -rfv 0775 /pula 1

Grupa /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) KATALODY powinny zostać zmienione na użytkownicy NFS i należy również ustalić uprawnienia do odczytu/zapisu grupy.

$ ls -lhd /pula 1
$ ls -lhd /pula 1 /fs1

Aby zmiany uwzględniają, ponownie uruchom serwer NFS w następujący sposób:

$ sudo restart

Teraz musisz utworzyć niezbędne konta użytkowników na komputerach klienta NFS, aby móc pisać do akcji NFS.

Utwórz nowego użytkownika Alex (Powiedzmy) z UID 5001 (aby nie zakłócać użytkowników już dostępnych na serwerze NFS) i ustawili podstawową grupę użytkownika użytkownicy NFS następująco:

$ sudo useradd -m -s /bin /bash -u 5001 -G NFS -Users Alex

Nowy użytkownik Alex z UID 5001 i grupa podstawowa użytkownicy NFS (KOŁOWACIZNA 2000) Należy utworzyć na komputerze klienckim NFS.

$ id Alex

Teraz uruchom ponownie komputer klienta NFS, aby zmiany w obronie.

$ sudo restart

Po uruchomieniu komputera klienta NFS NFS udostępnia /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) powinno być zamontowane.

$ df -h -t nfs4

Akcje NFS /pula 1 (Basen ZFS Pool1) I /basen1/fs1 (ZFS System FileSystem FS1) powinien również mieć prawidłowe uprawnienia do katalogu.

$ ls -lhd /mnt /pula 1
$ ls -lhd /mnt /fs1

Teraz zaloguj się jako użytkownik Alex na komputerze klienckim NFS w następujący sposób:

$ sudo su - Alex

Użytkownik Alex Powinien być w stanie tworzyć pliki w Share NFS /pula 1 (Basen ZFS Pool1) i uzyskuj ich dostęp, jak widać na zrzucie ekranu poniżej.

$ echo '[pula 1 Hello World'>/mnt/pul.tekst
$ ls -lh /mnt /pula 1
$ cat/mnt/pula 1/hello.tekst

Użytkownik Alex Powinien być również w stanie tworzyć pliki w Share NFS /basen1/fs1 (ZFS System FileSystem FS1) i uzyskuj ich dostęp, jak widać na zrzucie ekranu poniżej.

$ echo '[fs1] hello świat>/mnt/fs1/hello.tekst
$ ls -lh /mnt /fs1
$ cat/mnt/fs1/hello.tekst

Na serwerze NFS, UID (identyfikator użytkownika) plików, które użytkownik Alex Utworzone z komputera klienckiego NFS powinno być 5001 i grupa powinna być użytkownicy NFS Jak widać na zrzucie ekranu poniżej.

$ ls -lh /pula 1
$ ls -lh /pula 1 /fs1

Jeśli chcesz rozwiązać UIDS do nazw użytkowników na swoim serwerze NFS, musisz utworzyć tego samego użytkownika z tym samym UID (jak utworzyłeś na komputerze klienckim NFS) na serwerze NFS.

Dla niewielkiej liczby użytkowników możesz uruchomić to samo UserAdd polecenie zarówno na serwerze NFS, jak i komputerach klienckich, aby rozwiązać ten problem. Jeśli musisz zarządzać dużą liczbą użytkowników, wykonanie tego będzie dużo pracy. Zamiast tego należy użyć NIS (serwer informacji o sieci) lub LDAP (lekki protokół dostępu do katalogu), aby automatycznie zsynchronizować użytkowników między komputerami klientów NFS a komputerami klientów NFS.

Aby uzyskać pomoc w konfigurowaniu NIS na serwerze NFS i komputerach klienckich, sprawdź następujące artykuły:

  • Instalowanie serwera NIS na Ubuntu 18.04 LTS
  • Jak zainstalować i skonfigurować serwer NIS na Debian 10

Aby uzyskać pomoc w konfigurowaniu LDAP na serwerze NFS i komputerach klienckich, sprawdź następujące artykuły:

  • Jak skonfigurować klienta LDAP w Debian 10

Nieoporzyżowe pule ZFS i systemy plików

Jeśli chcesz przestać udostępniać pulę ZFS Pool1 Będziesz musiał ustawić Sharenfs Własność puli ZFS Pool1 Do wyłączony następująco:

$ sudo zfs set sharenfs = off pula 1

Udostępnianie NFS powinno być wyłączone dla puli ZFS Pool1 Jak widać na zrzucie ekranu poniżej.

$ sudo zfs dostaj sharenfs pula 1

W ten sam sposób możesz przestać udostępniać system plików ZFS FS1 ustawiając Sharenfs właściwość systemu plików ZFS FS1 Do wyłączony następująco:

$ sudo zfs set sharenfs = off pula 1/fs1

Udostępnianie NFS powinno być wyłączone dla systemu plików ZFS FS1 Jak widać na zrzucie ekranu poniżej.

$ sudo zfs dostaj sharenfs pula 1/fs1

Wniosek

W tym artykule pokazałem, jak udostępniać pule ZFS i systemy plików i uzyskać do nich dostęp zdalnie za pomocą protokołu udostępniania plików NFS. Pokazałem również, jak automatycznie montować pule/systemy plików ZFS, które udostępniłeś NFS na komputerach klienckich NFS w czasie rozruchu. Pokazałem ci, jak zarządzać uprawnieniami dostępu do akcji NFS i umożliwić dostęp do akcji NFS od komputerów klienta NFS.

Bibliografia

[1] Ubuntu Manpage: ZFS - Konfiguruje systemy plików ZFS
[2] Udostępnianie i nieoporządkowane systemy plików ZFS - Oracle Solaris Administration: ZFS Systemy plików
[3] Streszczenie - Strony człowieka Sekcja 1M: Polecenia administracyjne systemu
[4] NFSSEC Manpage Sekcja 5 - Dokumentacja Oracle Solaris
[5] CentoS - NFS domyślnie 777 - Błąd serwera
[6] Rozdział 4. Eksportowanie NFS udostępnia Red Hat Enterprise Linux 8 | Portal klienta Red Hat