OpenZFS wspierany serwer NFS CZĘŚĆ 1 - Tworzenie serwera

OpenZFS wspierany serwer NFS CZĘŚĆ 1 - Tworzenie serwera
Jeśli znasz OpenZFS, wiesz wszystko o jego bogatym funkcji interfejsie, elastycznej architekturze, niezawodnych sum kontrolnych i mechanizmach krów. Może chcesz to również na pulpicie, ale nie chcesz sformatować swoich istniejących dysków i partycji. Może używasz Windows 10, który nie obsługuje OpenZFS. Cóż w tym poście na blogu omówię, w jaki sposób możesz utworzyć system plików sieciowych lub NFS, działający na oddzielnym serwerze. To urządzenie NFS można następnie zamontować na stacji roboczej stacjonarnej. W ten sposób możesz mieć niezawodność i solidność ZFS z przyjaznością użytkownika swojego ulubionego systemu operacyjnego komputerów stacjonarnych, ponieważ NFS jest dostępny na wszystkich platformach.

Opiszę tworzenie punktu montażu NFS na kliencie Windows 10 w części 2 tej serii. Na razie skupmy się na serwerze Ubuntu oferującym pamięć NFS i klienta Ubuntu, który próbuje się z nim połączyć.

Ustawić

Mój serwer NFS będzie oparty na Ubuntu 18.04 LTS. Możesz użyć swojego ulubionego Linux Distro lub FreeBSD lub dowolnego innego systemu operacyjnego, który obsługuje OpenZFS. Mój powód użycia Ubuntu 18.04 polega na tym, że jest dość popularny i znacznie zmniejszy barierę wejścia.

NFS ma być dostępny tylko na mojej sieci LAN, która ma maskę podsieci wynoszącą 255.255.255.0 i 192.168.0.1 jako domyślna brama. W zwykłym angielskim oznacza to, że wszystkie urządzenia podłączone do mojej sieci domowej (WiFi i Ethernet i in.) Będą miały adresy IP od 192.168.0.2 do 192.168.0.254.

Serwer NFS zostanie skonfigurowany tak, aby umożliwić tylko urządzenia z wyżej wymienionym adresem IP, aby mieć dostęp do serwera NFS. Zapewniłoby to, że tylko urządzenia, które podłączyły się do mojej sieci LAN, uzyskują dostęp do moich plików, a świat zewnętrzny nie mają do niego dostępu. Jeśli masz konfigurację „otwartego Wi -Fi” lub jeśli bezpieczeństwo na punkcie końcowym routera jest wątpliwe, nie gwarantuje to żadnego bezpieczeństwa.

Nie polecam prowadzenia NFS przez publiczny Internet bez dodatkowych środków bezpieczeństwa.

Wreszcie, polecenia uruchomione na serwerze NFS mają monit, serwer $ i polecenia, które mają być uruchomione po stronie klienta, mają szybki klient $

Tworzenie puli i zestawu danych OpenZFS

1. Tworzenie ZPOOL

Jeśli masz już zpool, pomiń ten krok. Na moim serwerze NFS, który działa Ubuntu 18.04 LTS Server, najpierw instaluję OpenZFS.

serwer $ sudo apt instaluj ZFSUTILS-Linux

Następnie wymienimy wszystkie dostępne urządzenia blokowe, aby zobaczyć nowe dyski (i partycje) czekające na sformatowanie z ZFS.

$ lsblk
Imię MAJ: Min Rm Rozmiar RO Type Mountpoint
Loop0 7: 0 0 89.5m 1 pętla/snap/rdzeń/6130
Loop1 7: 1 0 86.9m 1 pętla/snap/rdzeń/4917
Loop2 7: 2 0 91.1m 1 pętla/snap/rdzeń/6259
SDA 8: 0 0 50G 0 Dysk
├tsda1 8: 1 0 1m 0 część
└─SDA2 8: 2 0 50G 0 część /
SDB 8:16 0 931G 0 Dysk
SDC 8:32 0 931G 0 Dysk
sr0 11: 0 1 1024m 0 rom

Typowy przykład pokazano powyżej, ale twoja konwencja nazewnictwa może być bardzo inna. Będziesz musiał użyć własnego osądu i uważać na to. Nie chcesz przypadkowo sformatować swojego dysku systemu operacyjnego. Na przykład partycja SDA1 wyraźnie ma główny system plików jako punkt montażu, więc nie jest mądrze. Jeśli używasz nowych dysków, istnieje szansa.

Gdy znasz nazwę twoich urządzeń, użyjemy polecenia UPOOL Utwórz do sformatowania kilku z tych urządzeń blokowych (zwanych SDB i SDC) w ZPOOL z jednym VDEV, który składa się z dwóch lustrzanych dysku.

serwer $ sudo zpool Utwórz lusterko zbiorników SDB SDC
serwer $ sudo zpool zbiornik stanu
Zpool Status Tank
Basen: Tank
Stan: Online
Skan: Brak żądany
Konfiguracja:
Nazwa czytaj odczyt zapis cksum
czołg online 0 0 0
Mirror-0 online 0 0 0
SDB online 0 0 0
SDC online 0 0 0
Błędy: Brak znanych błędów danych

Idąc naprzód, możesz dodać dyski w zestawach dwóch (zwanych VDEV), aby zwiększyć rozmiar tego zpool, nowe dyski pojawią się jako Mirror-1, Mirror-2 itp. Nie musisz tworzyć ZPOOL tak, jak ja, możesz użyć lustrzan z większą liczbą dysków, możesz używać pasów bez redundancji, ale lepszej wydajności, albo możesz użyć RaIdz. Pod koniec dnia liczy się to, że stworzyliśmy ZPool o imieniu Tank. Na których żyje wspólne NFS. Utwórzmy zestaw danych, który zostanie udostępniony. Najpierw upewnij się, że basen o nazwie „Tank” jest zamontowany. Domyślny punkt mocowania to „/czołg” .

serwer $ sudo zfs zbiornik
serwer $ sudo zfs Utwórz zbiornik/nfsshare #Create nowy zestaw danych na górze puli

Ustawienie uprawnień

Podczas udostępniania katalogu NFS superuser w systemie klienta nie ma dostępu do niczego w akcji. Podczas gdy Superuser po stronie klienta jest w stanie zrobić wszystko na komputerze klienckim, mocowanie NFS technicznie nie jest częścią komputera klienta. Zatem umożliwienie operacji w imieniu superuser po stronie klienta jako superuser po stronie serwera może spowodować problemy z bezpieczeństwem. Domyślnie NFS mapuje działania Superuser po stronie klienta dla nikogo: Nogrupa użytkownika i grupa użytkowników. Jeśli zamierzasz uzyskać dostęp do zamontowanych plików jako root, wówczas zestaw danych na naszym serwerze NFS powinien również mieć takie same uprawnienia,

serwer $ sudo chown nikt: nogroup /tank /nfsshare

Serwer NFS uruchomi dowolne działanie przez root po stronie klienta jako użytkownika, więc powyższe uprawnienia pozwoli operacjom przejść.

Jeśli używasz innej (zwykłej) nazwy użytkownika, często wygodnie jest mieć użytkownika z tą samą nazwą użytkownika po obu stronach.

Tworzenie Share NFS

Po utworzeniu ZPOOL powinieneś zainstalować pakiet serwera NFS z menedżera pakietów:

serwer $ sudo apt instontuj NFS-kernel-server

Tradycyjnie serwer NFS używa pliku /etc /eksport, aby uzyskać jako listę zatwierdzonych klientów i plików, do których będą mieli dostęp. Jednak użyjemy funkcji wbudowanej ZFS, aby osiągnąć to samo.

Po prostu użyj polecenia:

serwer $ sudo zfs set sharenfs = ”on” /tank /nfsshare

Wcześniej nawiązałem do podania tylko niektórych IPS dostępu. Możesz to zrobić w następujący sposób:

serwer $ sudo zfs set sharenfs = "rw [email protected]/24 "zbiornik/nfsshare

„RW” oznacza uprawnienia do odczytu, a po nim następuje zakres IPS. Upewnij się, że numer portu 111 i 2049 są otwarte w zaporze. Jeśli używasz UFW, możesz to sprawdzić, uruchamiając:

Serwer $ UFW Status

Zanotuj adres IP swojego serwera na sieci LAN, używając polecenia IFConfig lub IP Addr. Nazwijmy to serwerem.ip

Montaż po stronie klienta

Po utworzeniu udziału możesz go zamontować na komputerze klienckim, uruchamiając polecenie:

Klient $ Mount -t NFS Server.ip:/tank/nfsshare/mnt

To zamontuje folder NFS Udostępnij /MNT, ale równie łatwo możesz wybrać dowolny inny wybrany punkt montażu.

Wniosek

Udostępnianie plików jest prawdopodobnie najważniejszym aspektem administracji systemu. Poprawia zrozumienie stosu pamięci, sieci, uprawnień i uprawnień użytkowników. Szybko zdasz sobie sprawę ze znaczenia zasady najmniejszego przywileju - to znaczy, tylko daj użytkownikowi możliwy dostęp.

Dowiesz się także o interoperacyjności między różnymi systemami operacyjnymi. Użytkownicy systemu Windows mogą uzyskać dostęp do plików NFS, więc użytkownicy Mac i BSD mogą. Nie możesz ograniczyć się do jednego systemu operacyjnego w kontaktach z siecią maszyn, które mają własne konwencje i języki narodowe. Więc śmiało i eksperymentuj ze swoim dzieleniem NFS. Mam nadzieję, że się czegoś nauczyłeś.