NFS

NFS – Network File System – jak uruchomić?

W dzisiejszym wpisie zajmiemy się systemem plików NFS. Network File System (NFS) to protokół komunikacyjny oraz system plików przeznaczony do udostępniania zasobów plikowych w sieciach komputerowych.

Umożliwia użytkownikom i aplikacjom zdalny dostęp do plików i katalogów na zdalnych serwerach, tak jakby były one lokalnie dostępne na ich własnych urządzeniach. Jest szeroko stosowany w środowiskach sieciowych, zwłaszcza w systemach Linux, chociaż istnieją również implementacje NFS dla innych systemów operacyjnych.

 

Sprawdź, czego nauczysz się dzięki kursowi Grafany!

Udostępniamy darmowo ponad godzinny materiał z kursu. Przekonaj się, że jest idealny dla Ciebie!

Chcesz wziąć udział w kursie? Kliknij w link i obejrzyj co Cię czeka: https://asdevops.pl/demo-grafana/

 

 

 

 

Główne cechy i funkcje NFS to:

  1. Zdalny dostęp do plików: NFS umożliwia użytkownikom i programom operacje na zdalnych plikach i katalogach, takie jak odczyt, zapis, modyfikacja itp.
  2. Montowanie zasobów: Użytkownicy mogą „zamontować” zdalne zasoby NFS na swoich lokalnych urządzeniach, tworząc wirtualny punkt montowania, który reprezentuje zdalny system plików. To umożliwia wygodne korzystanie z tych zasobów, jakby były dostępne lokalnie.
  3. Współdzielenie zasobów: Dzięki NFS, wiele komputerów może współdzielić te same zasoby plikowe, co ułatwia współpracę i dostęp do wspólnych plików.
  4. Autoryzacja i bezpieczeństwo: NFS obsługuje mechanizmy autoryzacji i uwierzytelniania, aby kontrolować dostęp do plików i zabezpieczyć je przed nieautoryzowanym dostępem.
  5. Łatwość i szybkość wdrożenia i konfiguracji. Poniższy poradnik pokazuje krok po kroku, jak uruchomić swój własny serwer plików.

Zaczynamy!

1. Instalacja pakietów NFS:

Otwórz terminal i zaloguj się jako użytkownik root lub użyj polecenia sudo przed każdą komendą, aby uzyskać uprawnienia administracyjne.

Przed instalacją upewnij się, że pakiety systemowe są aktualne. Wykonaj następujące polecenie:

sudo dnf update -y

Instalujemy pakiet nfs-utils, który jest demonem serwera nfs. Wykonaj następujące polecenie:

sudo dnf install nfs-utils

Użyj poniższych poleceń, aby uruchomić usługę nfs po jej zainstalowaniu:

sudo systemctl start nfs-server
sudo systemctl enable nfs-server

Sprawdźmy status usługi NFS:

sudo systemctl status nfs-server
NFS

Serwer uruchomiony, dla pewności możemy zrestartować system i sprawdzić czy usługa automatycznie się uruchomiła.

2. Konfiguracja firewalla

Jeśli masz włączony firewall (a mam nadzieję, żę masz), upewnij się, że porty używane przez NFS są odblokowane. Domyślnie są to porty 2049 (TCP i UDP).

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

3. Konfiguracja eksportowanych katalogów

Teraz stworzymy katalogi, które będzie można eksportować i udostępniać klientom nfs. W moim przypadku adres serwera z usługą NFS to 192.168.1.15. Zobacz jaki jest Twój adres za pomocą ip a

Na początku dodamy uprawnienia dla wszystkich userów. W kolejnym scenariuszu ustawimy konkretne dostępy.
Otwórz plik konfiguracyjny /etc/exports w edytorze tekstu, na przykład:

sudo nano /etc/exports

Dodaj linie konfiguracyjne, aby zdefiniować, które katalogi mają być eksportowane i jakie uprawnienia mają mieć klienci NFS. Na przykład:

/path/do/katalogu *(rw,sync,no_root_squash)

/path/do/katalogu to ścieżka do katalogu, który chcesz udostępnić,

* oznacza, że każdy klient ma dostęp,

rw oznacza prawa do odczytu i zapisu,

sync oznacza synchroniczny tryb zapisu,

no_root_squash oznacza, że uprawnienia roota nie zostaną ograniczone.

NFS

Aby natychmiast uruchomić eksportowane katalogi, użyj polecenia:

sudo exportfs -r

Spróbujmy zamontować nowy zasób sieciowy.

Na kliencie (urządzeniu, które będzie korzystać z zasobów NFS) zainstalujmy następujące narzędzia:

sudo dnf install nfs-utils nfs4-acl-tools

Utwórzmy katalog mkdir nazwa_katalogu w miejscu gdzie chcemy zamontować nasz zasób. Ja wybrałem /mnt/sieciowy. Zamontujmy nasz nowy zasób sieciowy

sudo mount -t nfs serwer:/path/do/katalogu /lokalny/punkt/montowania

serwer to adres IP lub nazwa serwera NFS,
/path/do/katalogu to ścieżka do katalogu udostępnionego na serwerze, /lokalny/punkt/montowania to ścieżka do katalogu, w którym chcesz zamontować zdalne zasoby na kliencie.

Dodajmy coś do naszego udostępnionego katalogu /var/www/sieciowy . Niech to będzie plik zasoby.txt

sudo touch zasoby.txt

Sprawdźmy teraz zawartość podmontowanego dysku.

Użyj komendy ls aby wylistować katalog.

NFS

Udało się – działa! Udostępniliśmy pierwszy plik.
Spróbujmy w drugą stronę. Na kliencie utwórzmy plik zdalny.txt

sudo touch zdalny.txt

Sprawdźmy co znajduje się w naszym katalogu na serwerze NFS komenda – ls

Tworzenie i przeglądanie plików działa dwukierunkowo!

Dodajemy zasób w proxmoxie

1. Wybieramy datacenter -> storage->Add new -> wybieramy NFS2

2. Podajemy parametry takie jak id (dowolne), server (adres ip naszego serwera) i export. Powinno podpowiedzieć dostępne lokalizacje.

3. Sekcja content to typy przechowywanych plików. Np obrazy systemowe, instalacje ISO. Po chwili nasz zasób jest widoczny w pozostałych

NFS

4. Dodawanie użytkownika na serwerze

Jeśli użytkownik, któremu chcesz umożliwić dostęp do zasobów NFS, jeszcze nie istnieje na serwerze, dodaj go za pomocą standardowych poleceń do zarządzania użytkownikami, takich jak useradd lub adduser.

sudo useradd mietek

Następnie ustawiamy hasło dla użytkownika mietek:

passwd mietek

Nadawanie dostępu w pliku konfiguracyjnym

Otwórz plik konfiguracyjny /etc/exports za pomocą edytora tekstu

sudo nano /etc/exports

Dodaj lub zmodyfikuj wpis dla katalogu, który chcesz udostępnić, aby zawierał również konkretnego użytkownika lub jego adres IP (jeśli ma to być dostęp tylko dla konkretnego użytkownika):

/path/do/katalogu *(rw,sync,no_root_squash)

Zamiast * (co oznacza wszystkich klientów), możesz użyć adresu IP lub nazwy użytkownika:

/path/do/katalogu 192.168.1.100(rw,sync,no_root_squash)
/path/do/katalogu mietek(rw,sync,no_root_squash)

Po dodaniu użytkownika do pliku konfiguracyjnego, zastosuj zmiany przy użyciu polecenia:

sudo exportfs -r

Na kliencie, również powinieneś mieć użytkownika o tej samej nazwie, aby zachować spójność identyfikatorów użytkowników. Możesz dodać użytkownika na kliencie w ten sam sposób, jak to zrobiłeś na serwerze.

Utwórzmy katalog mkdir nazwa_katalogu w miejscu gdzie chcemy zamontować nasz zasób. Ja wybrałem /mnt/sieciowy

Zamontujmy nasz nowy zasób sieciowy

sudo mount -t nfs serwer:/path/do/katalogu /lokalny/punkt/montowania

Teraz tylko użytkownik „mietek” będzie miał dostęp do udostępnionego katalogu poprzez montowanie zasobów NFS na swoim kliencie. Pamiętaj, że zarówno na serwerze, jak i na kliencie, nazwy użytkowników i identyfikatory użytkowników powinny być zgodne, aby uniknąć problemów z uprawnieniami dostępu.

Jak sprawdzić podłączonych Klientów do naszego serwera? Użyjmy do tego narzędzia netstat

netstat | grep :nfs

Podsumowanie – NFS

Jeśli zainteresował Cię ten temat, to mamy dla Ciebie bardzo dobrą wiadomość! Już wkrótce na blogu pojawią się artykuły, gdzie zobaczysz krok po kroku jak uruchomić aplikacje Python/django, a także WordPressa za pomocą Dockera!

Przeczytaj nasze inne artykuły, a także weź udział w naszych kursach!

 

 

 

Sprawdź, czego nauczysz się dzięki kursowi Grafany!

Udostępniamy darmowo ponad godzinny materiał z kursu. Przekonaj się, że jest idealny dla Ciebie!

Chcesz wziąć udział w kursie? Kliknij w link i obejrzyj co Cię czeka: https://asdevops.pl/demo-grafana/

 
 
 

Lekcja demo kursu Grafany!

X