NFS kontra iSCSI w zakresie dostępu do danych maszyn wirtualnych

NFS a iSCSI – który protokół wybrać do przechowywania plików maszyn wirtualnych VMware? To pytanie pojawia się zazwyczaj wtedy, gdy trzeba skonfigurować magazyn współdzielony w celu przechowywania maszyn wirtualnych (VM), które muszą być migrowane między hostami ESXi, w celu korzystania z usługi „ funkcje klastrowania”, a także gdy nie ma wolnych gniazd do podłączenia dysków fizycznych do serwera.

Organizacje wdrażające VMware vSphere w dużych centrach danych preferują stosowanie protokołów Fibre Channel (FC) lub Fibre Channel over Ethernet (FCoE), które są kosztowne. Jednak protokoły NFS i iSCSI są atrakcyjne dla małych i średnich centrów danych wykorzystujących infrastrukturę VMware vSphere, ponieważ sprzęt potrzebny do skonfigurowania udziału plików za pomocą tych protokołów jest bardziej przystępny cenowo. W tym wpisie na blogu porównano protokoły NFS i iSCSI, skupiając się na ich wykorzystaniu w infrastrukturze wirtualnej VMware vSphere.

NAKIVO – tworzenie kopii zapasowej dla VMware vSphere

NAKIVO – tworzenie kopii zapasowej dla VMware vSphere

Kompleksowa ochrona danych dla maszyn wirtualnych VMware vSphere oraz opcje natychmiastowego odzyskiwania. Bezpieczne lokalizacje kopii zapasowych na miejscu, zdalnie oraz w chmurze. Funkcje ochrony przed oprogramowaniem wymuszającym okup.

Czym jest NFS?

Network File System (NFS) to protokół sieciowy, który umożliwia udostępnianie plików przechowywanych na dysku lub macierzy dyskowej serwera innym komputerom w sieci. Protokół NFS został opracowany przez firmę SUN Microsystems, a jego pierwsza wersja została zaprezentowana w 1984 roku. W momencie pisania tego wpisu najnowszą implementacją protokołu NFS jest wersja 4.1. Wersja 4.2 jest w trakcie opracowywania i nie została jeszcze udostępniona do użytku produkcyjnego.

W każdej nowej wersji NFS dodawano nowe funkcje i ulepszenia, w tym funkcje przydatne w pamięci masowej dla wirtualizacji. NFS v4.1 zapewnia mechanizm umożliwiający wielu użytkownikom współdzielenie tego samego pliku oraz gwarantujący spójność danych (dostęp równoległy). Obsługiwanych jest wiele wątków operacyjnych.

NFS jest protokołem działającym w warstwie aplikacji modelu Open Systems Interconnect (OSI). Klienci uzyskują dostęp do plików, wysyłając żądania zdalnego wywołania procedury (RPC) do serwera NFS w celu wykonywania operacji na plikach i katalogach znajdujących się na serwerze NFS.

Żądania RPC są przekazywane do protokołu XDR (eXternal Data Representation), który działa w warstwie prezentacji i stanowi standard abstrakcji danych między platformami. XDR opisuje ujednoliconą i kanoniczną formę reprezentacji danych, która nie zależy od architektury systemu komputerowego. Gdy klient przesyła dane, klient RPC przekształca dane lokalne do postaci kanonicznej, a serwer wykonuje operację odwrotną.

Po zakończeniu ujednolicenia danych usługa RPC po stronie klienta zapewnia wysłanie żądania procedur zdalnych i ich wykonanie na serwerze (zapewniając funkcje warstwy sesji). Na tym etapie wyjaśnienie warstw specyficznych dla protokołu NFS dobiegło końca. Następnie dane są enkapsulowane w standardowe jednostki danych TCP lub UDP i przekazywane do warstw bazowych modelu OSI.

Warstwy OSI Protokoły
Aplikacja NFS
Prezentacja XDR
Sesja RPC
Transport TCP
Sieć IP
Łącze danych Ethernet
Fizyczna

NFS udostępnia dane na poziomie plików . Do wdrożenia magazynu współdzielonego w systemie NFS można wykorzystać standardowe karty sieciowe z interfejsem Ethernet i portem RJ-45. Najstarsze wersje protokołu NFS działają w sieci IP przy użyciu protokołu UDP, natomiast nowsze wersje (NFS v2 i v3) mogą działać zarówno w protokole TCP, jak i UDP. Wersje NFS 4.0 i 4.1 standardowo wykorzystują protokół TCP w sieci IPv4. Protokół NFS v4 działa przez zapory sieciowe oraz przez Internet.

VMware vSphere ESXi 6.0 oraz nowsze wersje ESXi obsługują NFS 3.0 i NFS 4.1. ESXi zawiera wbudowanego klienta NFS, który łączy się z serwerem NFS za pośrednictwem protokołu TCP/IP. Do łączenia się za pomocą wersji NFS 3.0 i 4.1 wykorzystywane są dwa różne klienty NFS. Podczas tworzenia nowego magazynu danych NFS można wybrać wersję NFS, z której ma być korzystano. Firma VMware nie obsługuje następujących funkcji w przypadku korzystania z protokołu NFS w wersji 4.1:

  • Magazyn danych DRS
  • Kontrola operacji wejścia/wyjścia magazynu danych
  • Site Recovery Manager

Korzystanie z magazynów danych NFS jest wygodne podczas przechowywania szablonów maszyn wirtualnych oraz obrazów ISO służących do instalacji systemów operacyjnych na maszynach wirtualnych.

Czym jest iSCSI?

Internet Small Computer Interface (iSCSI) to protokół sieciowy zapewniający interakcję obiektów (inicjatorów i celów) w sieci w celu współdzielenia danych. Inicjator iSCSI jest konfigurowany po stronie klienta, a cel iSCSI – po stronie serwera.

Inicjatory iSCSI mogą być oparte na oprogramowaniu lub sprzęcie. Te oparte na sprzęcie odciążają Procesor (CPU) na komputerze klienckim i wymagają zainstalowania sprzętowej karty sieciowej typu HBA (host bus adapter). Sprzętowa karta HBA iSCSI to kontroler interfejsu sieciowego (NIC) z interfejsem Ethernet. W niniejszym porównaniu iSCSI z NFS rozważam wykorzystanie programowych inicjatorów iSCSI. Protokół iSCSI został wprowadzony w 2003 roku i jest opisany w dokumencie RFC 3720.

iSCSI jest protokołem warstwy sesji (działa w warstwie 5 modelu OSI), który funkcjonuje na stosie TCP/IP. Dane są udostępniane na poziomie bloków , w przeciwieństwie do NFS, ale podobnie jak w przypadku FC. Jest to ważna kwestia w porównaniu iSCSI z NFS. Polecenia SCSI są enkapsulowane w jednostkach danych TCP/IP i przesyłane za pomocą standardowych sieci Ethernet. W rezultacie jeden komputer może wysyłać polecenia SCSI do blokowych urządzeń pamięci masowej znajdujących się na innym komputerze za pośrednictwem sieci.

Warstwy Opis
Zastosowanie System plików, baza danych itp.
SCSI Dane SCSI, polecenia SCSI, stany SCSI
iSCSI Usługi protokołu iSCSI, nazwa kwalifikowana iSCSI (IQN), usługa nazw pamięci masowej w Internecie (iSNS), uwierzytelnianie CHAP itp.
TCP Protokół z mechanizmem kontroli błędów (zwykle działa w stosie TCP/IP)
IP Protokół służący do komunikacji sieciowej i routingu
Ethernet Przełączniki, kable, porty (złącza), protokoły

Uwaga: Istnieje interesujący fakt dotyczący tego, jak można wykorzystać iSCSI w Odzyskiwanie maszyn wirtualnych VMware. Gdy na przykład korzystasz z funkcji natychmiastowego odzyskiwania maszyny wirtualnej w NAKIVO Backup & Replication, aby uruchomić maszynę wirtualną na hoście ESXi bezpośrednio z kopii zapasowej, maszyna wirtualna jest tworzona na wybranym hoście ESXi, a dyski wirtualne są montowane do tej maszyny przy użyciu protokołu iSCSI jako dyski RDM w trybie wirtualnej zgodności.

VMware NFS a iSCSI – kluczowe różnice

Zarówno NFS, jak i iSCSI mogą działać w sieciach Ethernet 1-gigabitowych i 10-gigabitowych (1GbE i 10GbE) wdrażanych przy użyciu przewodów miedzianych. Wyższa prędkość sieci jest lepsza. Dowiedz się więcej na stronie topologie sieciowe. Podczas korzystania ze współdzielonego magazynu danych w VMware vSphere do przechowywania plików maszyn wirtualnych, obie implementacje (NFS i iSCSI) mogą być wykorzystywane do migracji maszyn wirtualnych na żywo, równoważenia obciążenia oraz migracji maszyn wirtualnych między magazynami danych. Oba protokoły współdzielenia charakteryzują się znacznym obciążeniem spowodowanym mechanizmem wielowarstwowej enkapsulacji danych w sieciach TCP/IP.

Protokół NFS jest obsługiwany przez urządzenia NAS większości dostawców, na przykład Synology oraz QNAP. Jednak obecnie nie jest trudno wybrać urządzenie NAS z wsparciem dla protokołu iSCSI.

Przyjrzyjmy się bardziej szczegółowo porównaniu VMware NFS i iSCSI.

Równoważenie obciążenia

Gdy jedna ścieżka sieciowa ulegnie awarii lub jest przeciążona, funkcja wielościeżkowości zapewnia możliwość równoważenia obciążenia między serwerem a magazynem, o ile dostępnych jest wiele ścieżek.

Protokół NFS 4.1 obsługuje wielościeżkowość, jeśli na serwerach dostępna jest funkcja trunkingu sesji (ale nie trunkingu identyfikatorów klientów). W rezultacie można uzyskać dostęp do pojedynczego woluminu NFS z wielu adresów IP. Jeśli korzystasz z protokołu NFS w wersji 3, do równoważenia obciążenia sieciowego użyj algorytmu round-robin w systemie DNS.

W środowisku VMware vSphere wielościeżkowość iSCSI działa na poziomie karty sieciowej VMkernel. Do równoważenia obciążenia iSCSI w vSphere można użyć powiązania portów.

Buforowanie

W przypadku korzystania z protokołu NFS system plików wraz z pamięcią podręczną systemu plików znajduje się na serwerze NFS, a komputer kliencki powinien na bieżąco sprawdzać metadane na serwerze NFS. Protokoły NFS v3 i v4 obsługują asynchroniczny zapis danych, jednak aktualizacje metadanych odbywają się synchronicznie.

W przypadku korzystania z iSCSI system plików jest tworzony przez urządzenie klienckie po uzyskaniu dostępu do współdzielonej pamięci masowej na poziomie bloków (np. w przypadku VMware vSphere host ESXi tworzy system plików VMFS na jednostce LUN iSCSI). Zasady buforowania są definiowane przez system plików dla współdzielonej pamięci masowej iSCSI, a pamięć podręczna systemu plików znajduje się po stronie klienta. Na przykład, jeśli jako protokół współdzielenia używasz iSCSI, a jako system plików — ext3, masz do dyspozycji pełną pamięć podręczną typu „write-back” dla aktualizacji danych i metadanych.

Najnowocześniejsze systemy plików wykorzystują asynchroniczną aktualizację metadanych, a do odzyskiwania danych stosuje się rejestrowanie oparte na dzienniku. Ogólnie rzecz biorąc, asynchroniczna aktualizacja danych (stosowana w iSCSI) jest mniej niezawodna pod względem trwałości danych i metadanych w porównaniu z aktualizacją synchroniczną, taką jak ta stosowana w NFS.

Niezawodność

NFS . W celu ochrony przed awariami sieci można zastosować łączenie kart sieciowych (NIC teaming). Jeśli jedna karta sieciowa ulegnie awarii, druga może kontynuować pracę.

iSCSI . Architektura VMware Pluggable Storage Architecture (PSA) wykorzystuje wtyczkę typu macierzy pamięci masowej (Storage Array Type) do implementacji Trybu failover podczas pracy z macierzami iSCSI. Powiązanie iSCSI wymaga mapowania wielu celów iSCSI w różnych podsieciach do inicjatora iSCSI.

Ponieważ zarówno iSCSI, jak i NFS wykorzystują protokół TCP do enkapsulacji, dostarczanie danych jest sprawdzane na poziomie sieci.

System plików VMFS na pamięci masowej iSCSI może być wrażliwy, jeśli przechowujesz przydzielane dynamicznie dyski wirtualne dla maszyn wirtualnych. Awaria zasilania może spowodować, że wolumin nie będzie można odzyskać. Zachowanie magazynów danych NFS w takich sytuacjach jest nieco bardziej niezawodne. Można ograniczyć te problemy, przeprowadzając regularne Kopie zapasowe VMware.

Bezpieczeństwo

Ruch iSCSI zazwyczaj nie jest szyfrowany, ale nie oznacza to, że nie można go zabezpieczyć. W przypadku udostępniania iSCSI jest wsparcie dla uwierzytelniania za pomocą nazwy i hasła. Protokół CHAP (Challenge Handshake Authentication Protocol) pozwala serwerowi i klientowi upewnić się, że wzajemnie sobie ufają.

NFS wykorzystuje uwierzytelnianie oparte na hoście. Domyślna konfiguracja protokołu NFS nie zapewnia szyfrowania (sys=system), ale w przypadku korzystania z protokołu NFSv4 z włączonym Kerberosem (sec=krb5p) połączenie jest bezpieczne. W konfiguracji serwera NFS należy zdefiniować adres IP hosta, który ma prawo dostępu do udziału NFS. Można również zdefiniować wiele hostów lub całą podsieć. Na przykład powszechnie znany protokół udostępniania plików SMB opiera się na uwierzytelnianiu opartym na użytkowniku.

Zalecaną praktyką przy korzystaniu ze współdzielonej pamięci masowej iSCSI i NFS w środowisku VMware vSphere jest skonfigurowanie dedykowanej sieci VLAN lub użycie oddzielnej (prywatnej) sieci fizycznej. Takie podejście pozwala na odizolowanie ruchu związanego z pamięcią masową od innych rodzajów ruchu. NFS v3 nie posiada funkcji bezpieczeństwa podobnych do tych w NFS v4.1. Serwer ESXi montuje udział NFS z uprawnieniami administratora (gdy nie jest używany protokół Kerberos). Należy więc o tym pamiętać podczas tworzenia bezpiecznej konfiguracji. Przeczytaj również o VLAN i VXLAN.

NFS v4.1 obsługuje uwierzytelnianie Kerberos z wykorzystaniem mechanizmów kryptograficznych oprócz standardu DES (Data Encryption Standard). Algorytmy kryptograficzne w Kerberosie uniemożliwiają nieuprawnionym użytkownikom dostęp do ruchu NFS. ESXi obsługuje implementacje Kerberosa krb5 i krb5i. ESXi 7.0 obsługuje szyfrowanie Kerberos w NFS 4.1 oraz mechanizm bezpieczeństwa AUTH_SYS (ale nie jednocześnie).

VMware NFS a iSCSI – mapowanie urządzeń surowych (Raw Device Mapping)

W przypadku korzystania z iSCSI jako magazynu współdzielonego można skonfigurować mapowanie urządzeń surowych dla maszyny wirtualnej. Mapowanie surowych urządzeń (RDM) to funkcja, która pozwala na bezpośrednie podłączenie całego dysku fizycznego lub jednostki LUN iSCSI do maszyny wirtualnej jako urządzenia (zamiast podłączania dysku wirtualnego w konfiguracji maszyny wirtualnej). Podejście oparte na RDM różni się od tradycyjnego podejścia, w którym tworzy się magazyn danych na jednostce LUN (Logical Unit Number), tworzy system plików VMFS i przechowuje dyski wirtualne używane przez maszyny wirtualne w tym magazynie danych. RDM jest możliwe w przypadku korzystania z iSCSI, ponieważ udział iSCSI działa na poziomie bloków, a maszyna wirtualna może sformatować podłączony dysk blokowy RDM przy użyciu niestandardowego systemu plików używanego przez system operacyjny gościa zainstalowany na tej maszynie wirtualnej.

Jeśli chodzi o NFS, używanie udziału NFS do podłączenia jako dysk RDM nie jest obsługiwane, ponieważ udziały NFS działają na poziomie plików, a RDM wymaga podłączenia urządzeń blokowych do maszyn wirtualnych. W przypadku udziałów NFS można tworzyć jedynie magazyny danych NFS i przechowywać w nich pliki dysków wirtualnych VMDK. Udział NFS i udział iSCSI można zamontować na poziomie systemu operacyjnego gościa, o ile system ten posiada klienta NFS lub inicjator iSCSI. W związku z tym w kategorii mapowania urządzeń surowych w porównaniu VMware iSCSI z NFS zwycięzcą jest iSCSI.

Wydajność iSCSI w porównaniu z NFS

W przypadku implementacji iSCSI opartej na oprogramowaniu wydajność jest nieco wyższa, ale obciążenie Procesora na hoście klienckim jest również większe. iSCSI powoduje również większe obciążenie sieci. Protokół iSCSI generuje większy ruch sieciowy i większe obciążenie sieci, podczas gdy korzystanie z protokołu NFS przebiega płynniej i jest bardziej przewidywalne. W przypadku wykonywania dużej liczby operacji zapisu można zauważyć spadek wydajności w przypadku udziału NFS.

Korzystając z protokołu NFS w środowisku vSphere, zaleca się stosowanie wersji NFS z wsparciem dla interfejsu vStorage API for Array Integration (VAAI) po stronie pamięci masowej. Interfejs VAAI umożliwia tworzenie dysków wirtualnych z przydziałem typu „thick” w magazynach danych NFS. Dyski z przydziałem typu thin są domyślnie tworzone na magazynach danych NFS. Zarówno NFS, jak i iSCSI obsługują ramki typu jumbo w celu poprawy wydajności sieci.

Na zakończenie tego porównania szybkości iSCSI i NFS należy wspomnieć, że wydajność zależy również od dostawcy macierzy pamięci masowej.

Dostęp równoczesny

iSCSI nie obsługuje równoczesnego ani równoległego dostępu do danych na urządzeniu blokowym. Dane muszą być udostępniane między dwoma przeskokami. Jednak dostęp równoległy jest dozwolony na poziomie systemu plików, który obsługuje równoległy dostęp do plików, na przykład VMFS lub GFS. W przypadku korzystania z udziałów iSCSI w środowisku VMware vSphere równoczesny dostęp do tych udziałów jest zapewniony na poziomie VMFS.

Protokół NFS obsługuje równoczesny dostęp do współdzielonych plików, wykorzystując mechanizm blokowania oraz mechanizm spójności typu „close-to-open”, aby uniknąć konfliktów i zachować spójność danych. Wersje NFS v3 i NFS v4.1 stosują różne mechanizmy. NFS v3 może korzystać z protokołu Network Lock Manager (NLM), natomiast NFS v4.1 wykorzystuje blokowanie określone przez protokół natywny. Jeśli w środowisku VMware ESXi do uzyskiwania dostępu do udziałów plików używany jest protokół NFS v3, ESXi nie korzysta z protokołu NLM, ponieważ w tym przypadku VMware zapewnia własny protokół blokowania. Pliki blokujące o nazwach . lck-file_id są tworzone w udziale plików podczas korzystania z udziałów NFS v3 w środowisku VMware vSphere.

NFS v4.1 wykorzystuje rezerwacje do blokowania plików w celu zapewnienia współbieżnego dostępu. W przypadku utworzenia udziału plików NFS wszyscy klienci muszą korzystać z tej samej wersji protokołu NFS (na przykład wszystkie hosty ESXi łączą się z udziałem za pośrednictwem NFS v.4.1). Jeśli dwóch niekompatybilnych klientów korzysta z różnych wersji protokołu NFS w celu uzyskania dostępu do plików na serwerze NFS, może dojść do niespójnego działania i uszkodzenia danych.

Trudności związane z konfiguracją

W przypadku korzystania z protokołu NFS konfiguracja serwera i klienta jest łatwiejsza. Konfiguracja współdzielonego magazynu przy użyciu iSCSI jest trudniejsza. Konieczne jest skonfigurowanie identyfikatorów IQN dla magazynu i hostów; skonfigurowanie usługi iSCSI, jednostek LUN oraz maskowania; a także skonfigurowanie wielu sieci VLAN ze względów bezpieczeństwa (izolacja segmentów sieci wykorzystywanych do komunikacji iSCSI w celu zapewnienia wyższego poziomu bezpieczeństwa). Zapoznaj się z artykułem „ Wirtualne woluminy VMware ”, który opisuje rozwiązania służące do przechowywania danych maszyn wirtualnych.

NFS a iSCSI w VMware vSphere – tabela podsumowująca

W poniższej tabeli podsumowującej porównanie protokołów iSCSI i NFS w środowisku VMware przedstawimy najważniejsze funkcje każdego z nich.

iSCSI NFS
Udostępnianie danych Na poziomie bloków Na poziomie plików
Mapowanie surowych urządzeń dla maszyn wirtualnych Tak Nie
Trudność konfiguracji Średnia Łatwa
Uruchamianie z sieci SAN Tak Nie
Sprawdzanie błędów Tak Tak
Funkcje bezpieczeństwa CHAP Kerberos
Storage vMotion Tak Tak
Storage DRS Tak Tak

Wnioski

Oba protokoły udostępniania są na tyle dojrzałe, że można je stosować w środowisku VMware vSphere. Główna różnica między iSCSI a NFS polega na tym, że iSCSI udostępnia dane na poziomie bloków, a NFS na poziomie plików. Wydajność jest niemal taka sama, ale w niektórych sytuacjach iSCSI może zapewnić lepsze wyniki. Dyski RDM dla maszyn wirtualnych można wykorzystywać z iSCSI, ale nie z NFS.

Oba protokoły udostępniania sieciowego są niezawodne. Niemniej jednak nadal konieczne jest stosowanie zewnętrznego rozwiązania do ochrony danych, aby uniknąć utraty danych i przestojów. Należy unikać awarii zasilania i innych usterek sprzętowych, aby zapobiec utracie danych w pamięci masowej współdzielonej. Należy stosować zasilacze awaryjne (UPS) i regularnie wykonać kopie zapasowe.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

People also read