W ostatnich latach obserwujemy stały wzrost wydajności pamięci masowej, co stanowi wyzwanie dla starych protokołów pamięci masowej, które stały się wąskim gardłem dla centrów danych. Pomimo wykorzystania najnowszej technologii 100 GbE i nowych standardów sieciowych, takich jak InfiniBand, te wolne technologie protokołów sieciowych ograniczają wydajność pamięci flash, utrzymując ją wewnątrz urządzenia i izolując ją w obudowie. W tym artykule pokrótce przyjrzymy się technologii Non-Volatile Memory Express (NVMe). Ponadto omówimy NVMe over Fabrics (NVMe-oF) i NVMe over RDMA over Converged Ethernet (NVMe over RoCE), nową specyfikację protokołu opracowaną w celu rozwiązania problemu wąskich gardeł w nowoczesnych sieciach pamięci masowej.
Ze względu na ciągłe zapotrzebowanie na niskie opóźnienia i wysoką przepustowość w chmurach i centrach danych, wokół technologii NVMe w kontekście rozwiązań Fabric toczy się ożywiona dyskusja. Specyfikacja NVMe istnieje od niecałej dekady, a ponieważ technologia NVMe-oF jest stosunkowo nowa, wciąż istnieje wiele nieporozumień dotyczących jej zastosowania i korzyści, jakie przynosi firmom. Technologia ta stale ewoluuje i jest szeroko stosowana w branży IT. Coraz więcej dostawców rozwiązań sieciowych dostarcza produkty oparte na technologii NVMe-oF na rynek przedsiębiorstw. Dlatego, aby nadążać za zaawansowanymi technologiami centrów danych, kluczowe jest zrozumienie istoty technologii NVMe-oF, jej możliwości i parametrów wydajnościowych. Co więcej, sposobu jej wdrożenia i łączenia z różnymi, nowymi rozwiązaniami.
NVMe i NVMe-oF
Macierze all-flash (AFA) pojawiły się w centrach danych, aby sprostać zapotrzebowaniu na wysoką wydajność. Są one znacznie szybsze niż tradycyjne pamięci masowe i bez problemu osiągają obiecywany na rynku 1 mln IOPS. Jednak wiele z tych macierzy nadal korzystało z niemalże tradycyjnej technologii pamięci masowej – dysków SSD SATA. Ten typ pamięci masowej opiera się na protokole poleceń AHCI (Advanced Host Controller Interface) i obsługuje interfejs IDE. AHCI został stworzony głównie z myślą o dyskach obrotowych, a nie o zaawansowanych napędach flash. Ta technologia oparta na SCSI stanowi wąskie gardło dla dzisiejszych dysków SSD i kontrolerów macierzy pamięci masowej, ponieważ magistrala SATA III z AHCI pozwala na transfer danych z prędkością do 600 MB/s.

Aby w pełni wykorzystać możliwości dysków SSD, potrzebowaliśmy nowej technologii, która pozwoliłaby na szybsze rozładowanie pamięci flash. NVMe to specyfikacja, która umożliwia pamięci flash (lub dyskom SSD) rzeczywiste wykorzystanie jej wydajności. Technologia ta została po raz pierwszy wprowadzona w 2014 roku w celu skrócenia czasu reakcji aplikacji, oferując nowe i udoskonalone możliwości. Dyski SSD NVMe występują w wielu formatach, a najbardziej znane to AIC (karta rozszerzeń), U.2, U.3 i M.2. Dyski SSD NVMe wykorzystują szybką magistralę PCIe (Peripheral Component Interconnector Express) w komputerze lub serwerze, łącząc się z nim bezpośrednio. Technologia NVMe znacząco redukuje obciążenie procesora i usprawnia operacje, zmniejszając opóźnienia, zwiększając liczbę operacji wejścia/wyjścia na sekundę (IOPS) i przepustowość. Na przykład dyski SSD NVMe zapewniają prędkość zapisu przekraczającą 3,000 MB/s. W porównaniu z dyskami SSD SATA oznacza to 5 razy większą prędkość lub 30 razy większą prędkość niż dyski talerzowe.
Dzięki NVMe, operacje IOPS są wykonywane równolegle, umożliwiając wykonywanie wielu obliczeń jednocześnie. Duże zadania można podzielić na kilka mniejszych, które będą przetwarzane niezależnie. Podobnie jak w procesorach wielordzeniowych, obsługujących wiele wątków. Każdy rdzeń procesora może pracować niezależnie od siebie, wykonując określone zadania.
Głębokość kolejki (QD) to kolejna zaleta NVMe w porównaniu z AHCI. Podczas gdy ACHI i SATA obsługują głębokość kolejki równą 32 (1 kolejka i 32 polecenia), NVMe obsługuje głębokość kolejki do 65 tys. Są to kolejki 65 tys., gdzie każda kolejka może pomieścić do 65 tys. poleceń. Oprócz redukcji opóźnień, przyspiesza to wydajność obciążonych serwerów przetwarzających jednocześnie żądania.

Problemem dla centrów danych pozostają jednak protokoły sieciowe pamięci masowej. Pomimo rosnącej popularności technologii NVMe, jej zalety ograniczają się do pojedynczego urządzenia. Faktem jest, że pamięci flash i inne (droższe) urządzenia klasy korporacyjnej, takie jak AFA, nie są przeznaczone do izolowania jego niezwykłej wydajności wewnątrz obudowy. Zamiast tego są przeznaczone do stosowania w masywnych, równoległych klastrach komputerowych, łącząc je z dodatkowymi i wieloma urządzeniami, takimi jak inne serwery i pamięci masowe. To połączenie urządzeń nazywamy strukturą, siecią pamięci masowej, obejmującą przełączniki, routery, mosty protokołów, urządzenia bramowe i kable.
W 2016 roku wprowadzono standard branżowy NVMe-oF. Specyfikacja protokołu rozszerza niesamowitą wydajność technologii NVMe z kontrolerów macierzy pamięci masowej na infrastrukturę sieciową, wykorzystując Ethernet, Fiber Channel, RoCE lub InfiniBand. NVMe-oF wykorzystuje alternatywny protokół przesyłu danych (przez infrastrukturę) jako mapowanie transportu, zamiast magistrali PCIe używanej przez NVMe. Sieci oparte są na koncepcji wysyłania i odbierania komunikatów bez współdzielonej pamięci między punktami końcowymi. Transport komunikatów w strukturze NVMe hermetyzuje polecenia i odpowiedzi NVMe w systemie opartym na komunikatach, który zawiera jedno lub więcej poleceń lub odpowiedzi NVMe.

Transporty tkanin NVMe
Trzy typy transportu strukturalnego obsługiwane i używane przez NVMe to NVMe-oF wykorzystujący RDMA, NVMe-oF wykorzystujący Fiber Channel i NVMe-oF wykorzystujący TCP.
NVMe-oF przez RDMA
Niniejsza specyfikacja wykorzystuje protokół zdalnego bezpośredniego dostępu do pamięci (RDMA) i umożliwia przesyłanie danych i pamięci między komputerem a urządzeniami pamięci masowej przez sieć. RDMA to sposób wymiany informacji między pamięcią główną dwóch komputerów w sieci, bez angażowania procesora, pamięci podręcznej ani systemu operacyjnego żadnego z nich. Ponieważ RDMA pomija system operacyjny, jest zazwyczaj najszybszym i najmniej obciążającym mechanizmem przesyłania danych przez sieć.
NVMe-oF over RDMA wykorzystuje protokół transportowy TCP do przesyłania danych przez sieci IP. Typowe implementacje RDMA obejmują architekturę wirtualnego interfejsu (VAM), RDMA over Converged Ethernet (RoCE), InfiniBand, Omni-Path i iWARP. RoCE, InfiniBand i iWARP są obecnie najczęściej używane.
NVMe przez Fibre Channel
Połączenie protokołu NVMe over Fibre Channel (FC) jest często określane jako FC-NVMe, NVMe over FC lub czasami NVMe/FC. Fibre Channel to niezawodny protokół do przesyłania danych między macierzami pamięci masowej a serwerami, z którego korzysta większość korporacyjnych systemów SAN. W FC-NVMe polecenia są enkapsulowane w ramkach FC. Opiera się on na standardowych regułach FC i jest zgodny ze standardowym protokołem FC obsługującym dostęp do współdzielonej pamięci flash NVMe. Polecenia SCSI są enkapsulowane w ramkach FC; jednak ich interpretacja i tłumaczenie na polecenia NVMe wiąże się z obniżeniem wydajności.
NVMe przez TCP/IP
Ten typ transportu jest jednym z najnowszych osiągnięć w technologii NVMe-oF. NVMe over TCP (Transport Control Protocol) wykorzystuje NVMe-oF i protokół transportowy TCP do przesyłania danych przez sieci IP (Ethernet). NVMe transportuje dane w datagramach TCP przez Ethernet jako fizyczny transport. Pomimo obsługi protokołów RDMA i Fiber Channel, TCP stanowi prawdopodobnie tańszą i bardziej elastyczną alternatywę. Ponadto, w porównaniu z RoCE, który również wykorzystuje Ethernet, NVMe/TCP działa bardziej jak FC-NVMe, ponieważ wykorzystuje semantykę komunikatów dla wejścia/wyjścia.
Połączenie NVMe-oF z RDMA, Fibre Channel lub TCP tworzy kompletne, kompleksowe rozwiązanie pamięci masowej NVMe. Rozwiązania te zapewniają wyjątkowo wysoką wydajność przy jednoczesnym zachowaniu bardzo niskich opóźnień, jakie oferuje NVMe.
NVMe przez RDMA przez konwergentną sieć Ethernet (RoCE)
Wśród protokołów RDMA, RoCE wyróżnia się. Wiemy, czym są RDMA i NVMe-oF, a teraz mamy Converged Ethernet (CE), czyli obsługę RDMA w sieci Ethernet. CE to udoskonalona wersja Ethernetu, znana również jako Data Center Bridging i Data Center Ethernet. Hermetyzuje pakiet transportowy InfiniBand w sieci Ethernet. Rozwiązanie to oferuje mechanizm Link Level Flow Control, który gwarantuje zerowe straty, nawet w przypadku nasycenia sieci. Protokół RoCE zapewnia niższe opóźnienia niż jego poprzednik, protokół iWARP.
Istnieją dwie wersje RoCE: RoCE v1 i RoCE v2. RoCE v1 to protokół Ethernet warstwy 2 (łącza), umożliwiający komunikację między dwoma hostami w tej samej domenie rozgłoszeniowej Ethernet. Nie może zatem routować między podsieciami. Nową opcją jest RoCE v2, protokół oparty na protokole UDP/IPv4 lub UDP/IPv6. RoCE v2 to protokół Ethernet warstwy 3 (internet), co oznacza, że jego pakiety mogą być routowane. Wsparcie programowe dla RoCE v2 wciąż się rozwija. Mellanox OFED 2.3 lub nowszy obsługuje RoCE v2, podobnie jak jądro Linux w wersji 4.5.
NVMe over RoCE to nowy typ sieci SAN. Protokół ten zapewnia taką samą wydajność usług danych korporacyjnych i elastyczność, jak sprzęt i oprogramowanie SAN. Chociaż protokół RoCE korzysta z cech sieci Converged Ethernet, może być również używany w tradycyjnych lub niekonwergentnych sieciach Ethernet. Aby skonfigurować macierz pamięci masowej NVMe over RoCE, karta sieciowa, przełącznik i AFA muszą obsługiwać Converged Ethernet. Karta sieciowa (zwana R-NIC) i macierz all-flash muszą obsługiwać RoCE. Serwery z kartami R-NIC i AFA z interfejsami NVMe over RoCE będą działać bezproblemowo (plug-and-play) z zainstalowanymi przełącznikami CE.
Obsługa NVMe-oF przez RoCE dla VMware
Firma VMware dodała obsługę współdzielonej pamięci masowej NVMe z wykorzystaniem protokołu NVMe-oF. W przypadku łączności zewnętrznej w vSphere 7.0 obsługiwane są protokoły NVMe przez Fibre Channel i NVMe przez RDMA. Hosty ESXi mogą korzystać z protokołu RDMA przez Converged Ethernet v2 (RoCE v2). Aby włączyć i uzyskać dostęp do pamięci masowej NVMe z wykorzystaniem protokołu RDMA, host ESXi korzysta z adaptera R-NIC na hoście oraz adaptera pamięci masowej SW NVMe przez RDMA. Aby móc korzystać z nich do wykrywania pamięci masowej NVMe, należy skonfigurować obie karty.
Podczas korzystania z protokołu NVMe-oF cele są prezentowane hostowi jako przestrzenie nazw w trybach dostępu aktywny/aktywny lub asymetrycznym (ALUA). Umożliwia to hostom ESXi wykrywanie i używanie prezentowanych przestrzeni nazw. ESXi emuluje wewnętrznie cele NVMe-oF jako cele SCSI i prezentuje je jako cele SCSI aktywny/aktywny lub niejawne cele SCSI ALUA.
Wymagania dotyczące NVMe w standardzie RDMA:
- Macierz NVMe obsługująca transport RDMA (RoCE v2)
- Zgodny host ESXi
- Przełączniki Ethernet obsługujące sieć bezstratną.
- Karta sieciowa obsługująca RoCE v2
- Adapter SW NVMe przez RDMA
- Kontroler NVMe
- RoCE działa obecnie w oparciu o struktury stratne obsługujące ZTR (Zero Touch RoCE) lub wymaga skonfigurowanej sieci do bezstratnego przesyłu informacji wyłącznie na warstwie 2 lub na obu warstwach (z wykorzystaniem PFC)
Podczas konfigurowania protokołu NVMe-oF na hoście ESXi należy przestrzegać kilku zasad.
- Nie należy mieszać typów transportu w celu uzyskania dostępu do tej samej przestrzeni nazw.
- Upewnij się, że wszystkie aktywne ścieżki są przedstawione hostowi.
- NMP nie jest używany/obsługiwany; zamiast niego w przypadku celów NVMe używany jest HPP (High-Performance Plugin).
- Musisz mieć dedykowane łącza, VMkernele i adaptery RDMA do swoich docelowych serwerów NVMe.
- Dedykowana sieć VLAN warstwy 3 lub łączność warstwy 2
- Ograniczenia:
-
- Przestrzenie nazw-32
- Ścieżki=128 (maksymalnie 4 ścieżki/przestrzeń nazw na hoście)
Wniosek
Wraz ze wzrostem liczby użytkowników korzystających z danych w chmurze, rośnie zapotrzebowanie na szybszą pamięć masową w centrach danych. NVMe to nowszy sposób komunikacji z urządzeniami flash, a wraz z NVMe-oF technologie te rozwijają możliwości łączności zewnętrznej. NVMe-oF i jego różne rodzaje transportu danych zaczynają być uznawane za przyszłość pamięci masowej. Te urządzenia pamięci masowej i sprzęt są uważane za serce centrów danych, ponieważ w sieciach szkieletowych liczy się każda milisekunda. Technologia NVMe redukuje liczbę poleceń wejścia/wyjścia mapowanych w pamięci i obsługuje sterowniki urządzeń systemu operacyjnego, zapewniając wyższą wydajność i niższe opóźnienia.
Technologia NVMe zyskuje coraz większą popularność ze względu na szybkość wykonywania wielu zadań przy niskich opóźnieniach i wysokiej przepustowości. Chociaż technologia NVMe jest również wykorzystywana w komputerach osobistych do usprawnienia edycji wideo, gier i innych zastosowań, rzeczywiste korzyści widać w przedsiębiorstwach, dzięki technologii NVMe-oF. Branże takie jak IT, sztuczna inteligencja i uczenie maszynowe stale się rozwijają, a zapotrzebowanie na zwiększoną wydajność stale rośnie. Dostawcy oprogramowania i rozwiązań sieciowych, tacy jak VMware i Mellanox, regularnie dostarczają przedsiębiorstwom coraz więcej produktów i rozwiązań związanych z technologią NVMe-oF. Dzięki nowoczesnym i masowo równoległym klastrom komputerowym, im szybciej przetwarzamy i uzyskujemy dostęp do danych, tym większą wartość mają one dla naszej firmy.
Zasoby
Centrum pamięci masowej: VMware NVMeoF vSphere




Amazon