NVMe over TCP vs iSCSI: Ewolucja pamięci masowej w sieci
mar 05th, 2025 | 18 min read

Table Of Contents
- iSCSI: Krótka lekcja historii
- Co to jest NVMe?
- Fundamentalna różnica między dyskami talerzowymi a NVMe
- NVMe over Fabrics: Pamięć flash w sieci
- NVMe over TCP vs iSCSI: Porównanie
- Przekonujący argument na rzecz NVMe over TCP
- Wybór między NVMe over TCP a iSCSI
- Simplyblock: Wszechstronność w praktyce
- Przyszłość NVMe over TCP
- Pytania i odpowiedzi
TLDR: W bezpośrednim porównaniu NVMe over TCP vs iSCSI widzimy, że NVMe over TCP przewyższa iSCSI we wszystkich kategoriach, zapewniając poprawę IOPS nawet o 50% (i więcej) oraz zmniejszenie opóźnień o maksymalnie 34%.
Kiedy ilość danych rośnie, pamięć masowa musi się zwiększać. Wtedy do gry wchodzą zdalnie podłączone systemy SAN (Storage Area Network). Do tej pory były one powszechnie łączone za pomocą jednego z trzech protokołów: Fibre Channel, Infiniband lub iSCSI. Jednak ten ostatni znajduje się na „niższym poziomie”, ponieważ nie wymaga specjalistycznego sprzętu do działania. NVMe over Fabrics (NVMe-oF), a w szczególności NVMe over TCP (NVMe/TCP) jako następca iSCSI, zyskuje na popularności, zastępując te przestarzałe protokoły i przynosząc natychmiastowe ulepszenia w zakresie opóźnień, przepustowości i IOPS.

iSCSI: Krótka lekcja historii

iSCSI to protokół łączący zdalne rozwiązania pamięci masowej (zazwyczaj sprzętowe urządzenia pamięci masowej) z klientami pamięci. Tymi ostatnimi są zazwyczaj serwery bez lokalnej pamięci masowej (lub z minimalną jej ilością), a także maszyny wirtualne. W ostatnich latach iSCSI zaczęto również wykorzystywać jako backend dla pamięci masowej kontenerów.
iSCSI oznacza Internet Small Computer Storage Interface i kapsułkuje standardowe polecenia SCSI w pakietach TCP/IP. Oznacza to, że iSCSI działa w standardowych sieciach Ethernet, eliminując potrzebę stosowania specjalistycznego sprzętu, takiego jak karty sieciowe (NIC) i przełączniki.
Standard iSCSI został po raz pierwszy wydany na początku 2000 roku. Świat był wtedy zupełnie inny niż dzisiaj. Pamiętasz, jak wyglądał telefon w 2000 roku?
Mimo że dostępne były pierwsze systemy oparte na pamięci flash, ich ceny były wciąż astronomiczne, a systemy pamięci masowej projektowano z myślą o dyskach talerzowych. Zapamiętaj to. Wrócimy do tego później.
Co to jest SCSI?
SCSI, czyli, jak pewnie się domyślasz, Small Computer Storage Interface, to zestaw standardów do łączenia i przesyłania danych między komputerami a urządzeniami peryferyjnymi. Początkowo opracowany w latach 80., SCSI stał się podstawową technologią interfejsów pamięci masowej, obsługującą różne typy urządzeń, głównie dyski twarde, napędy optyczne i skanery.
Choć SCSI było stale rozwijane i dodawano do niego nowe polecenia dla technologii takich jak NVMe, jego fundamenty nadal sięgają wczesnych lat 80. Jednak wiele standardów wciąż korzysta z zestawu poleceń SCSI, w tym SATA (komputery domowe), SAS (serwery) i iSCSI.
Co to jest NVMe?
Non-Volatile Memory Express (NVMe) to nowoczesny interfejs pamięci masowej oparty na PCI Express (PCI-e). Pierwotna specyfikacja pochodzi z 2011 roku, a NVMe zostało zaprojektowane specjalnie dla dysków półprzewodnikowych (SSD) podłączanych za pośrednictwem magistrali PCIe. Dzięki temu urządzenia NVMe są bezpośrednio połączone z procesorem i innymi urządzeniami na magistrali, co zwiększa przepustowość i zmniejsza opóźnienia. NVMe znacząco redukuje opóźnienia i zwiększa liczbę operacji wejścia/wyjścia na sekundę (IOPS) w porównaniu do tradycyjnych interfejsów pamięci masowej.
W ramach standardu NVMe opracowywane są dodatkowe specyfikacje, takie jak specyfikacja transportowa, która definiuje sposób przesyłania poleceń NVMe (np. za pośrednictwem magistrali PCI Express, ale także protokołów sieciowych, takich jak TCP/IP).
Fundamentalna różnica między dyskami talerzowymi a NVMe
Tradycyjne talerzowe dyski twarde (HDD) opierają się na obracających się fizycznie talerzach oraz ruchomych głowicach odczytu/zapisu do zapisywania i odczytywania danych. Gdy dane są żądane, mechaniczny komponent musi zostać fizycznie umieszczony w odpowiedniej lokalizacji stosu talerzy, co powoduje znaczne opóźnienia dostępu wynoszące od 10 do 14 milisekund.
Pamięć flash, w tym urządzenia NVMe, eliminuje części mechaniczne, wykorzystując zamiast nich układy NAND flash. NAND przechowuje dane wyłącznie w formie elektronicznej i osiąga opóźnienia dostępu na poziomie nawet 20 mikrosekund (a w przypadku sprzętu z najwyższej półki – jeszcze niższe). To sprawia, że są one 100 razy szybsze niż ich odpowiedniki HDD.
Przez długi czas pamięć flash miała ogromną wadę w postaci ograniczonej pojemności. Jednak ta wada stopniowo zanika wraz z pojawianiem się urządzeń o większej pojemności. Na przykład Toshiba właśnie ogłosiła urządzenie pamięci flash o pojemności 180 TB.
Koszt, czyli druga istotna wada, również systematycznie spada dzięki postępom w rozwoju i produkcji. Technologie takie jak QLC NAND oferują niesamowitą gęstość pamięci w przystępnej cenie.
Dlaczego więc poruszam temat pamięci mechanicznej vs elektrycznej? Powód jest prosty: opóźnienia dostępu. SCSI i iSCSI nigdy nie były projektowane z myślą o urządzeniach o ultraniskich opóźnieniach dostępu, ponieważ takie urządzenia po prostu nie istniały w momencie ich tworzenia. I choć w protokole wprowadzano pewne poprawki na przestrzeni lat, jego fundamentalny projekt jest przestarzały i nie może zostać zmieniony ze względu na wymogi kompatybilności wstecznej.
NVMe over Fabrics: Pamięć flash w sieci
NVMe over Fabrics (znane również jako NVMe-oF) to rozszerzenie podstawowej specyfikacji NVMe. Umożliwia dostęp do pamięci NVMe przez sieć, zachowując jednocześnie charakterystyczne dla lokalnych urządzeń NVMe niskie opóźnienia i wysoką wydajność.
NVMe over Fabrics to zbiór wielu podspecyfikacji definiujących różne protokoły warstwy transportowej.
- NVMe over TCP: NVMe/TCP wykorzystuje powszechnie stosowany protokół internetowy TCP/IP. Może działać w standardowych sieciach Ethernet i współistnieć z istniejącym ruchem sieciowym. To sprawia, że NVMe over TCP jest nowoczesnym następcą iSCSI, przejmując jego rolę. Dzięki temu NVMe over TCP to idealne rozwiązanie dla chmurowych systemów pamięci masowej, które zazwyczaj oferują wyłącznie sieć TCP/IP.
- NVMe over Fibre Channel: NVMe/FC bazuje na istniejącej infrastrukturze sieci Fibre Channel. Tuneluje polecenia NVMe w pakietach Fibre Channel, umożliwiając wykorzystanie dostępnego sprzętu Fibre Channel. Nie polecam tego rozwiązania do nowych wdrożeń ze względu na wysokie koszty wejściowe związane ze sprzętem Fibre Channel.
- NVMe over Infiniband: Podobnie jak NVMe over Fibre Channel, NVMe/IB wykorzystuje istniejące sieci Infiniband do tunelowania protokołu NVMe. Jeśli posiadasz infrastrukturę Infiniband, NVMe over Infiniband może być odpowiednim wyborem. Jednak w przypadku nowych wdrożeń początkowe koszty są zbyt wysokie.
- NVMe over RoCE: NVMe over Converged Ethernet to warstwa transportowa wykorzystująca strukturę Ethernet do zdalnego bezpośredniego dostępu do pamięci (RDMA). Aby korzystać z NVMe over RoCE, wymagane są karty sieciowe (NIC) obsługujące RDMA. RoCE występuje w dwóch wersjach: RoCEv1, który jest protokołem warstwy 2 i nie jest trasowalny, oraz RoCEv2, który wykorzystuje UDP/IP i może być trasowany w złożonych sieciach. NVMe over RoCE nie skalowalność się tak łatwo jak NVMe over TCP, ale zapewnia jeszcze niższe opóźnienia.
NVMe over TCP vs iSCSI: Porównanie
Porównując NVMe over TCP vs iSCSI, zauważamy znaczną poprawę we wszystkich trzech kluczowych metrykach: opóźnieniach, przepustowości i IOPS.

Zespół z Blockbridge przeprowadził szczegółowe porównanie obu technologii, które wykazało, że NVMe over TCP przewyższa iSCSI niezależnie od testowanego scenariusza.
Przedstawię tutaj najważniejsze wyniki testów porównawczych, ale zalecam zapoznanie się z pełnym artykułem na ten temat zaraz po zakończeniu lektury.
Przejdźmy więc nieco głębiej do konkretnych wyników testu NVMe over TCP vs iSCSI.
Nota redaktora: Nasz Developer Advocate, Chris Engelbert, niedawno wygłosił prezentację na SREcon w Dublinie, omawiając wydajność NVMe over TCP i iSCSI, co stało się inspiracją do tego wpisu na blogu. Pełną prezentację znajdziesz tutaj: NVMe/TCP sprawia, że iSCSI wygląda jak Fortran.
Testowanie wydajności pamięci sieciowej
Ocena wydajności pamięci masowej obejmuje porównanie czterech kluczowych wskaźników wydajności.
- IOPS: Liczba operacji wejścia/wyjścia przetwarzanych na sekundę
- Opóźnienia: Czas wymagany do zakończenia pojedynczej operacji wejścia/wyjścia
- Przepustowość: Całkowita ilość danych przesyłanych w jednostce czasu
- Narzut protokołu: Dodatkowe przetwarzanie wymagane przez protokół komunikacyjny
Nota redaktora: Jeśli chodzi o opóźnienia, przepustowość i IOPS, mamy szczegółowy wpis na blogu, który dogłębnie omawia ich znaczenie, wzajemne relacje oraz sposoby ich obliczania.
Kompleksowe testowanie wydajności obejmuje symulowane obciążenia, które odzwierciedlają rzeczywiste scenariusze. Aby uprościć ten proces, testy porównawcze wykorzystują narzędzia takie jak FIO (Flexible I/O Tester) do generowania spójnych, powtarzalnych danych testowych i wyników w różnych konfiguracjach pamięci masowej i systemach.
Poprawa IOPS w NVMe over TCP vs iSCSI
W przypadku aplikacji intensywnie wykorzystujących IOPS, liczba dostępnych operacji wejścia/wyjścia na sekundę w systemie pamięci masowej ma kluczowe znaczenie. Aplikacje te obejmują systemy takie jak bazy danych, platformy analityczne, serwery zasobów i podobne rozwiązania.
Poprawa IOPS poprzez zmianę protokołu sieci pamięci masowej to natychmiastowa korzyść zarówno dla bazy danych, jak i dla nas.
Zastosowanie NVMe over TCP zamiast iSCSI wykazuje dramatyczny wzrost IOPS, szczególnie przy mniejszych rozmiarach bloków. Przy rozmiarze bloku 512 bajtów Blockbridge odnotował średni wzrost IOPS o 35,4%. Przy bardziej typowym rozmiarze bloku 4KiB średni wzrost wyniósł 34,8%.
Oznacza to, że ten sam sprzęt może zapewnić ponad jedną trzecią więcej IOPS przy użyciu NVMe over TCP zamiast iSCSI – bez dodatkowych kosztów.

Poprawa opóźnień w NVMe over TCP vs iSCSI
Podczas gdy aplikacje wymagające wysokiej liczby IOPS, takie jak zdarzenia kompakcji w bazach danych (Cassandra), czerpią korzyści z ogromnego wzrostu IOPS, aplikacje wrażliwe na opóźnienia preferują jak najniższe czasy dostępu. Opóźnienie jest głównym czynnikiem, który sprawia, że użytkownicy wybierają lokalną pamięć NVMe zamiast zdalnie podłączonej pamięci masowej, mimo że znają większość lub wszystkie jej ograniczenia.
Aplikacje wrażliwe na opóźnienia obejmują systemy handlu wysokiej częstotliwości, gdzie milisekundy przekładają się na realne straty finansowe, systemy telekomunikacyjne, w których opóźnienia mogą powodować problemy z synchronizacją, oraz rozwiązania z zakresu cyberbezpieczeństwa i wykrywania zagrożeń, które muszą reagować jak najszybciej.
Dlatego zmniejszenie opóźnień to kluczowa korzyść dla wielu branż i rozwiązań. Oprócz tego, niższe opóźnienia dostępu zawsze przyspieszają dostęp do danych, nawet jeśli Twój system nie jest szczególnie wrażliwy na opóźnienia. Różnica będzie odczuwalna.
Blockbridge odnotowało największą poprawę w redukcji opóźnień dostępu przy rozmiarze bloku 16KiB i głębokości kolejki 128 (co jest łatwe do osiągnięcia w rozwiązaniach wymagających intensywnych operacji I/O). Średnie opóźnienie dla iSCSI wynosiło 5 871μs, podczas gdy dla NVMe over TCP było to 5 089μs. Oznacza to redukcję opóźnień o 782μs (~25%) – wyłącznie poprzez zmianę protokołu pamięci masowej.

Poprawa przepustowości w NVMe over TCP vs iSCSI
Jako trzeci kluczowy wskaźnik wydajności pamięci masowej, przepustowość opisuje ilość danych rzeczywiście przesyłanych z dysku do obciążenia roboczego.
Przepustowość jest kluczowym czynnikiem dla aplikacji takich jak kodowanie wideo, platformy streamingowe, duże systemy analityczne oraz serwery gier przesyłające ogromne światy do pamięci. Obejmuje także systemy przechowywania szeregów czasowych, jeziora danych oraz historyczne bazy danych.
Systemy wymagające wysokiej przepustowości korzystają z jej zwiększenia, aby „szybciej wykonać zadanie”. Często jednak zwiększenie przepustowości nie jest proste. Można być ograniczonym przepustowością samego dysku lub, w przypadku systemu podłączonego do sieci, przepustowością sieciową. Aby osiągnąć wysoką przepustowość i pojemność, zdalna pamięć masowa w sieci wykorzystuje sieci o dużej przepustowości lub wyspecjalizowane systemy sieciowe, takie jak Fibre Channel czy Infiniband.
Blockbridge przeprowadziło swoje testy na dwuportowej karcie sieciowej 100Gbit/s, ograniczonej przez magistralę PCI Express x16 Gen3 do maksymalnej przepustowości około 126Gbit/s. Nowsze standardy PCIe osiągają znacznie wyższą przepustowość. Dlatego urządzenia NVMe i karty sieciowe nie są już ograniczane przez „wąskie gardło” magistrali PCIe.
Przy rozmiarze bloku 16KiB i głębokości kolejki 32 ich testy porównawcze wykazały imponujący wzrost wydajności o 2,3 GB/s przy NVMe over TCP w porównaniu do iSCSI. Przepustowość wzrosła z 10,387 Gbit/s na iSCSI do 12,665 Gbit/s – łatwe 20% więcej, i to na tym samym sprzęcie. Tak właśnie oszczędza się pieniądze.

Przekonujący argument na rzecz NVMe over TCP
Widzieliśmy, że NVMe over TCP zapewnia znaczną przewagę nad iSCSI we wszystkich trzech kluczowych metrykach wydajności pamięci masowej. Jednak korzyści NVMe over TCP vs iSCSI jest jeszcze więcej.
- Standardowy Ethernet: Największą zaletą NVMe over TCP jest możliwość działania w standardowych sieciach Ethernet. W przeciwieństwie do wyspecjalizowanych technologii sieciowych (Infiniband, Fibre Channel), NVMe/TCP nie wymaga dodatkowych inwestycji w sprzęt ani skomplikowanej konfiguracji, co sprawia, że jest wyjątkowo dostępny dla organizacji każdej wielkości.
- Charakterystyka wydajności: NVMe over TCP zapewnia wyjątkową wydajność poprzez minimalizację narzutu protokołu i wykorzystanie efektywnej architektury NVMe. Może osiągać opóźnienia porównywalne z lokalną pamięcią masową, jednocześnie oferując elastyczność zasobów podłączonych do sieci. Nowoczesne implementacje mogą utrzymywać przepustowość znacznie przewyższającą tradycyjne protokoły pamięci masowej.
- Łatwość wdrożenia: NVMe over TCP integruje się bezproblemowo z systemami Linux i Windows (Server 2025 i nowsze), ponieważ wymagane sterowniki są już częścią jądra systemu. Dzięki temu NVMe/TCP jest łatwe do wdrożenia i zarządzania. Pełna kompatybilność zmniejsza krzywą uczenia się i wyzwania związane z integracją, które zwykle towarzyszą nowym technologiom pamięci masowej.
Wybór między NVMe over TCP a iSCSI
Podjęcie decyzji między dwiema technologiami nie zawsze jest proste. Jednak w przypadku NVMe over TCP vs iSCSI nie jest to szczególnie trudne. Przypadki użycia dla nowych wdrożeń iSCSI są bardzo ograniczone. Z mojego punktu widzenia jedynym uzasadnionym zastosowaniem jest integracja z istniejącymi systemami starszej generacji, które jeszcze nie obsługują NVMe over TCP.
Dlatego simplyblock, jako rozwiązanie w pierwszej kolejności wspierające NVMe over TCP, nadal oferuje iSCSI, jeśli naprawdę go potrzebujesz. Udostępniamy je dokładnie z tego powodu, że migracje nie następują z dnia na dzień. Mimo to warto korzystać z zalet nowoczesnych technologii, takich jak NVMe over TCP, wszędzie tam, gdzie to możliwe. Dzięki simplyblock woluminy logiczne można łatwo udostępniać jako urządzenia NVMe over TCP lub iSCSI. Możesz nawet później przełączyć się z iSCSI na NVMe over TCP.
W każdym przypadku powinieneś wybrać NVMe over TCP, gdy:
- Obsługujesz środowiska obliczeń o wysokiej wydajności
- Posiadasz nowoczesne centra danych o dużej przepustowości
- Wdrażasz obciążenia wymagające dostępu do pamięci masowej o niskich opóźnieniach, wysokim IOPS lub dużej przepustowości
- Znajdujesz się w scenariuszach wymagających skalowalnych i elastycznych rozwiązań pamięci masowej
- Potrzebujesz zdalnie podłączonej pamięci masowej w dowolnej innej sytuacji
Powinieneś pozostać przy iSCSI (lub stopniowo migrować), gdy:
- Masz starszą infrastrukturę z ograniczonymi możliwościami modernizacji
Widzisz, nie ma zbyt wielu powodów, by pozostać przy iSCSI. W związku z tym pozostaje tylko wybór nowego rozwiązania pamięci masowej. Osobiście w dzisiejszych czasach zawsze polecam rozwiązania pamięci masowej definiowane programowo, takie jak simplyblock, ale jestem nieco stronniczy. Tak czy inaczej, SDS łączy to, co najlepsze z obu światów: sprzęt pamięci masowej klasy komercyjnej (z opcją pełnego wykorzystania 96-zatokowego serwera pamięci) oraz wysoką wydajność.
Simplyblock: Wszechstronność w praktyce
Simplyblock to nowoczesne podejście do projektowania pamięci masowej, obsługujące zarówno NVMe over TCP, jak i iSCSI. Dzięki temu klienci mogą korzystać z najlepszej dostępnej wydajności i jednocześnie stopniowo migrować z istniejących systemów starszej generacji.
Ponadto simplyblock oferuje funkcje znane z tradycyjnych systemów SAN lub „systemów plików” takich jak ZFS. Obejmuje to pełny backend copy-on-write z natychmiastowymi migawkami i klonami. Oferuje także synchroniczną i asynchroniczną replikację między klastrami pamięci masowej. Simplyblock to nowoczesne rozwiązanie pamięci masowej, dostarczające pamięć dla dedykowanych hostów, maszyn wirtualnych i kontenerów. Niezależnie od klienta, simplyblock zapewnia najłatwiejszą integrację z istniejącymi i przyszłymi środowiskami.
Przyszłość NVMe over TCP
W miarę rozwoju przetwarzania w chmurze i w przedsiębiorstwach, NVMe over TCP staje się preferowaną technologią dla zdalnie podłączonej pamięci masowej. Po pierwsze, łączy prostotę, wydajność i szeroką kompatybilność. Po drugie, oferuje opłacalne i skalowalne rozwiązanie wykorzystujące standardową infrastrukturę sieciową.
Nieustanny rozwój protokołu (ostatnia aktualizacja specyfikacji: maj 2024) oraz jego rosnąca adopcja wskazują na dalszą poprawę efektywności, redukcję opóźnień i zwiększoną skalowalność.
NVMe over TCP stanowi znaczący krok naprzód w technologii sieciowej pamięci masowej. Co więcej, połączenie surowej wydajności NVMe z powszechnością sieci Ethernet oferuje przekonujące rozwiązanie dla nowoczesnych środowisk obliczeniowych. Chociaż iSCSI pozostaje istotne w określonych przypadkach użycia i podczas faz migracyjnych, NVMe over TCP to przyszłość i powinno zostać wdrożone tak szybko, jak to możliwe.
My, w simplyblock, cieszymy się, że możemy być częścią tego ważnego kroku w historii pamięci masowej.
Pytania i odpowiedzi
Tak, NVMe over TCP przewyższa iSCSI pod niemal każdym względem. NVMe over TCP zapewnia niższy narzut protokołu, lepszą przepustowość, mniejsze opóźnienia i wyższy IOPS w porównaniu do iSCSI. Zaleca się unikanie iSCSI w nowo projektowanych infrastrukturach oraz migrację starszych systemów tam, gdzie to możliwe.
NVMe over TCP przewyższa iSCSI we wszystkich kluczowych metrykach wydajności pamięci masowej, czyli IOPS, opóźnieniach i przepustowości. NVMe over TCP oferuje do 35% wyższy IOPS, 25% mniejsze opóźnienia i 20% większą przepustowość w porównaniu do iSCSI przy użyciu tej samej sieci i pamięci masowej.
NVMe/TCP to protokół sieciowej pamięci masowej, który wykorzystuje standardowy protokół internetowy TCP/IP jako warstwę transportową. Jest wdrażany za pomocą standardowych sieci Ethernet i może działać równolegle z istniejącym ruchem sieciowym, choć zaleca się jego separację za pomocą VLAN-ów lub fizycznie oddzielonych sieci. NVMe over TCP jest uważane za następcę protokołu iSCSI.
iSCSI to protokół sieciowej pamięci masowej, który wykorzystuje standardowy protokół internetowy TCP/IP jako warstwę transportową. Łączy zdalne rozwiązania pamięci masowej (zazwyczaj sprzętowe urządzenia pamięci masowej) z klientami pamięci za pośrednictwem standardowej sieci Ethernet. iSCSI zostało po raz pierwszy zestandaryzowane w 2000 roku. Wiele firm zastępuje iSCSI bardziej wydajnym protokołem NVMe over TCP.
SCSI (Small Computer Storage Interface) to zestaw poleceń umożliwiający łączenie komputerów z urządzeniami peryferyjnymi i transfer danych między nimi. Początkowo opracowany w latach 80., SCSI stał się fundamentalną technologią interfejsów pamięci masowej, obsługującą różne typy urządzeń, takie jak dyski twarde, napędy optyczne i skanery.
NVMe (Non-Volatile Memory Express) to specyfikacja definiująca sposób połączenia i transmisji danych między urządzeniami pamięci masowej a komputerami. Pierwsza specyfikacja została wydana w 2011 roku. NVMe zostało zaprojektowane specjalnie dla dysków półprzewodnikowych (SSD) podłączanych za pośrednictwem magistrali PCIe. Urządzenia NVMe charakteryzują się lepszymi opóźnieniami i wydajnością niż starsze standardy, takie jak SCSI, SATA i SAS.