NFS a iSCSI w dostępie do danych maszyn wirtualnych
NFS a iSCSI – który protokół wybrać do przechowywania plików maszyn wirtualnych VMware? To pytanie pojawia się zazwyczaj, gdy trzeba skonfigurować magazyn współdzielony do przechowywania maszyn wirtualnych (VM), które muszą być przenoszone między hostami ESXi, w celu korzystania z funkcji „ funkcje grupowania”, a także gdy na serwerze nie ma wolnych gniazd do podłączenia dysków fizycznych.
Organizacje wdrażające VMware vSphere w dużych centrach danych preferują stosowanie 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 wykorzystywanych w infrastrukturze 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.
Czym jest NFS?
Network File System (NFS) to protokół sieciowy, który umożliwia udostępnianie plików zapisanych 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 chwili pisania tego wpisu najnowszą implementacją 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 wirtualizacji. NFS v4.1 zapewnia mechanizm umożliwiający wielu użytkownikom współdzielenie tego samego pliku oraz zapewniający spójność danych (dostęp równoległy). Obsługiwanych jest wiele wątków operacyjnych.
NFS to protokół działający 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 na serwerze NFS.
Żądania RPC są przesyłane 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 żądanie procedur zdalnych i ich wykonanie na serwerze (zapewniając funkcje warstwy sesji). Na tym etapie wyjaśnienie warstw specyficznych dla NFS jest zakończone. 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 współdzielonej pamięci masowej NFS można wykorzystać standardowe karty sieciowe z interfejsem Ethernet i portem RJ-45. Najstarsze wersje NFS działają w protokole UDP w sieci IP, 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. NFS v4 działa przez zapory sieciowe oraz przez Internet.
VMware vSphere ESXi 6.0 i nowsze wersje ESXi obsługują NFS 3.0 i NFS 4.1. ESXi zawiera wbudowanego klienta NFS, który łączy się z serwerem NFS przez TCP/IP. Do łączenia się za pomocą NFS w wersjach 3.0 i 4.1 używane są dwa różne klienty NFS. Podczas tworzenia nowego magazynu danych NFS można wybrać wersję NFS, której chcesz używać. VMware nie obsługuje następujących funkcji w przypadku korzystania z NFS w wersji 4.1:
- Magazyn danych DRS
- Kontrola operacji wejścia/wyjścia magazynu danych
- Odzyskiwanie lokacji
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, który zapewnia interakcję obiektów (inicjatorów i celów) w sieci w celu udostępniania 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 sprzętowe pomagają odciążyć Procesor (CPU) na komputerze klienckim i wymagają instalacji sprzętowej karty host bus adapter (HBA). Sprzętowa karta iSCSI HBA to kontroler sieciowy (NIC) z interfejsem Ethernet. W niniejszym porównaniu iSCSI z NFS rozważam wykorzystanie oprogramowania inicjatorów iSCSI. Protokół iSCSI został wprowadzony w 2003 roku i jest opisany w RFC 3720.
iSCSI jest protokołem warstwy sesji (działa w warstwie 5 modelu OSI), który działa 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żny punkt w porównaniu iSCSI z NFS. Polecenia SCSI są enkapsulowane w jednostkach danych TCP/IP i przesyłane przy użyciu 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 |
| Aplikacja | 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 iSCSI może być wykorzystywane w Odzyskiwanie maszyn wirtualnych VMware. Kiedy używasz funkcji natychmiastowego odzyskiwania maszyny wirtualnej w NAKIVO Backup & Replication, na przykład w celu uruchomienia maszyny wirtualnej na hoście ESXi bezpośrednio z kopii zapasowej, maszyna wirtualna jest tworzona na wybranym hoście ESXi, a dyski wirtualne są montowane do maszyny wirtualnej przy użyciu protokołu iSCSI jako dyski RDM w trybie wirtualnej kompatybilnoś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 sieci. Podczas korzystania ze współdzielonego magazynu danych w VMware vSphere do przechowywania plików maszyn wirtualnych, obie implementacje (NFS i iSCSI) mogą być używane do migracji maszyn wirtualnych na żywo, równoważenia obciążenia oraz migracji maszyn wirtualnych między magazynami danych. Oba protokoły współdzielenia generują znaczne obciążenie spowodowane mechanizmem wielowarstwowej enkapsulacji danych w sieciach TCP/IP.
NFS jest obsługiwany przez urządzenia NAS większości dostawców, na przykład Synology i QNAP. Jednak obecnie nie jest trudno wybrać urządzenie NAS z wsparciem dla 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, wielościeżkowość zapewnia możliwość równoważenia obciążenia między serwerem a magazynem, jeśli dostępnych jest wiele ścieżek.
NFS 4.1 obsługuje wielościeżkowość, jeśli na serwerach dostępne jest trunking sesji (ale nie trunking identyfikatorów klientów). W rezultacie można uzyskać dostęp do pojedynczego woluminu NFS z wielu adresów IP. Jeśli korzystasz z NFS v3, użyj algorytmu DNS round-robin do równoważenia obciążenia sieciowego.
W 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ą 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 (podobnie jak 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 używasz iSCSI jako protokołu współdzielenia i ext3 jako systemu plików, masz 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 (używana 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 . Do ochrony przed awariami sieci można wykorzystać łączenie kart sieciowych (NIC teaming). Jeśli jedna karta sieciowa ulegnie awarii, inna może kontynuować pracę.
iSCSI . Architektura VMware Pluggable Storage Architecture (PSA) wykorzystuje wtyczkę typu macierzy pamięci masowej 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, wykonując regularne Kopie zapasowe VMware.
Bezpieczeństwo
Ruch iSCSI nie jest na ogół szyfrowany, ale nie oznacza to, że nie można go zabezpieczyć. Wsparcie dla uwierzytelniania w udostępnionych zasobach iSCSI za pomocą nazwy i hasła jest dostępne. Protokół CHAP (Challenge Handshake Authentication Protocol) pozwala serwerowi i klientowi upewnić się, że ufają sobie nawzajem.
NFS wykorzystuje uwierzytelnianie oparte na hoście. Domyślna konfiguracja NFS nie zapewnia szyfrowania (sys=system), ale w przypadku korzystania z NFSv4 z włączonym Kerberosem (sec=krb5p) połączenie jest bezpieczne. W konfiguracji serwera NFS należy zdefiniować adres IP hosta, który ma mieć dostęp 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 VMware vSphere jest skonfigurowanie dedykowanej sieci VLAN lub użycie oddzielnej (prywatnej) sieci fizycznej. Takie podejście pozwala odizolować ruch związany 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 Kerberos). Należy więc o tym pamiętać podczas tworzenia bezpiecznej konfiguracji. Przeczytaj również o VLAN i VXLAN.
NFS v.4.1 obsługuje uwierzytelnianie Kerberos z mechanizmami kryptograficznymi 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 vs iSCSI — mapowanie surowych urządzeń
Korzystając z iSCSI jako magazynu, można skonfigurować mapowanie surowych urządzeń dla maszyny wirtualnej. Mapowanie surowych urządzeń (RDM) to funkcja, która pozwala podłączyć cały dysk fizyczny lub jednostkę LUN iSCSI do maszyny wirtualnej bezpośrednio jako urządzenie (zamiast podłączać dysk wirtualny 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 przy użyciu 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 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ć tylko 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, jeśli system ten posiada klienta NFS lub inicjatora iSCSI. W związku z tym w kategorii mapowania urządzeń surowych w porównaniu VMware iSCSI vs NFS zwycięzcą jest iSCSI.
Wydajność iSCSI vs 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 obciążenie sieci, podczas gdy korzystanie z 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 NFS w vSphere, zaleca się stosowanie NFS z wsparciem dla interfejsu vStorage API for Array Integration (VAAI) po stronie pamięci masowej. VAAI umożliwia tworzenie dysków wirtualnych z alokacją typu „thick” w magazynach danych NFS. Dyski z alokacją 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.
Jednoczesny dostęp
iSCSI nie obsługuje jednoczesnego 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. Podczas korzystania z udziałów iSCSI w VMware vSphere równoczesny dostęp do udziałów jest zapewniony na poziomie VMFS.
NFS obsługuje równoczesny dostęp do plików współdzielonych przy użyciu mechanizmu blokowania oraz mechanizmu spójności typu „close-to-open”, aby uniknąć konfliktów i zachować spójność danych. NFS v3 i NFS v4.1 wykorzystują różne mechanizmy. NFS v3 może korzystać z protokołu Network Lock Manager (NLM), a NFS v4.1 wykorzystuje blokowanie określone przez protokół natywny. Jeśli w VMware ESXi do uzyskiwania dostępu do udziałów plików używany jest 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 VMware vSphere.
NFS v4.1 wykorzystuje rezerwacje do blokowania plików w celu zapewnienia równoczesnego dostępu. Jeśli utworzysz udział 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 plików dostępu NFS na serwerze NFS, może dojść do niespójnego działania i uszkodzenia danych.
Trudności związane z konfiguracją
W przypadku korzystania z NFS łatwiej jest skonfigurować serwer i klienta. Skonfigurowanie współdzielonej pamięci masowej przy użyciu iSCSI jest trudniejsze. Konieczne jest skonfigurowanie identyfikatorów IQN dla pamięci masowej i hostów; skonfigurowanie usługi iSCSI, jednostek LUN i 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 informacjami na temat Wirtualne woluminy VMware , które można wykorzystać do przechowywania danych maszyn wirtualnych.
NFS a iSCSI w VMware vSphere – tabela podsumowująca
W poniższej tabeli podsumowującej porównania iSCSI z NFS w środowisku VMware przedstawimy najważniejsze funkcje każdego z protokołów udostępniania danych.
| 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 mogą być używane z iSCSI, ale nie z NFS.
Oba protokoły udostępniania sieciowego są niezawodne. Jednak nadal konieczne jest stosowanie zewnętrznego rozwiązania do ochrony danych, aby uniknąć utraty danych i przestojów. Należy zapobiegać awariom zasilania i innym awariom sprzętu, aby uniknąć utraty danych w pamięci masowej współdzielonej. Należy stosować zasilacze awaryjne UPS i regularnie wykonać kopie zapasowe.