Dowiedz się, czym jest NVMe przez TCP i jak działa NVMe przez TCP w prostym języku.
Wyjaśnienie NVMe przez TCP
Rosnące zapotrzebowanie na przetwarzanie w chmurze wymaga wydajnego i niedrogiego systemu pamięci masowej. Chociaż konwencjonalne dyski twarde (HDD) są tanie jak barszcz, nie są one w stanie obsługiwać oprogramowania napędzanego wydajnością ani procesów obliczeniowych w chmurze.
Dlatego, aby rozwiązać ten problem w przypadku pamięci masowej dla urządzeń komputerowych, firma NVM Express Inc. opublikowała architekturę NVMe SSD, niesamowicie szybkiego wewnętrznego urządzenia pamięci masowej dla komputerów za pośrednictwem magistrali PCIe lub Peripheral Component Interconnect Express.
Jednak PCIe służy tylko do bezpośredniej komunikacji danych między pamięcią RAM a dyskiem SSD NVMe. Jak wdrożyć to samo w środowisku przetwarzania w chmurze, w którym komputery hosta i klienta znajdują się w odległych miejscach? Urządzenia te mogą komunikować się wyłącznie za pośrednictwem Internetu lub intranetu.
Aby sprostać temu wyzwaniu, zaprojektowano protokół NVMe over Fabric lub NVMe-oF, aby umożliwić rozwój rozwiązania sieciowej pamięci masowej NVMe. Wykorzystuje interfejs specyfikacji urządzeń logicznych NVMe do przesyłania danych między komputerem hosta lub serwerem a siecią pamięci masowej (SAN) lub pamięcią masową podłączaną bezpośrednio (DAS).
Jednak wdrożenie NVMe-oF jest bardzo kosztowne nawet dla dużych przedsiębiorstw. Ponadto, ponieważ NVMe-oF wymaga głównie kabla światłowodowego jako środka transportu danych z punktu A do punktu B, wdrożenie NVMe-oF w chmurach publicznych jest nie tylko wykonalne.
Aby rozwiązać ten problem, firma NVM Express Inc. opracowała protokół NVMe over TCP lub NVMe/TCP.
Co to jest NVMe przez TCP (NVMe/TCP)?
NVMe/TCP to rozszerzona edycja specyfikacji poleceń we/wy pamięci masowej opartej na NVMe. Jest to zaawansowana wersja NVMe-oF i definiuje funkcje protokołu przesyłania danych NVMe do protokołu komunikacji opartej na wiadomościach, TCP.
Istnieje specyfikacja transportu NVMe/TCP, która opisuje następujące elementy:
- Jak mapować kolejki NVMe zgodnie ze standardowym zestawem reguł
- Jak utworzyć kapsułki dla NVMe over Fabric
- Jak dostarczać kapsuły NVMe-oF do systemów transportu sieci światłowodowych, InfiniBand i innych niż światłowodowe przy użyciu znanego protokołu kontroli transportu lub protokołu TCP
W skrócie, połączenie NVMe i TCP, NVMe/TCP przesyła dane i polecenia szybciej i bezbłędnie między hostami NVMe-oF a urządzeniami kontrolera NVMe-oF.
Takie urządzenia można łączyć przez Internet i Intranet przy użyciu sieci TCP/IP opartej na technologii Ethernet. Nośnikiem łączności mogą być kable światłowodowe lub konwencjonalne kable Cat 5 i Cat 6
Dlaczego NVMe przez TCP?
Oryginalny system transportu NVMe był przeznaczony dla dysków SSD, które trafią bezpośrednio do systemu PC, głównie na płycie głównej. Protokół transportowy został wstępnie zoptymalizowany pod kątem dysków SSD NVM PCIe, które łączą się wewnętrznie z serwerami lub stacjami roboczymi.
Później, aby sprostać wymaganiom dotyczącym niesamowicie szybkiego i masowego przechowywania danych w chmurze, protokół transportowy NVMe połączono na gorąco ze specyfikacjami powiązań transportowych, z których najczęściej korzystają centra danych w chmurze, takimi jak Fibre Channel, RDMA over Converged Ethernet (RoCE), Internet Wide Area RDMA Protocol (iWARP) i Infiniband.
Chociaż powyższa modyfikacja NVMe działa dobrze, nie nadaje się do chmur publicznych, ponieważ po stronie klienta potrzebny jest specjalistyczny sprzęt sprzętowy. W związku z tym włączono system powiązań transportowych TCP, który jest łatwo dostępny na całym świecie i niezawodny w sieciach długodystansowych.
Podstawowe komponenty NVMe przez TCP
Specyfikacja transportu NVMe/TCP dla NVMe-oF obejmuje następujące komponenty sieciowe:
- System zdalnego dostępu do danych wykorzystujący protokół NVMe jest zgodny z modelem Open Systems Interconnection (OSI) dla systemów sieci komputerowych.
- NVMe/TCP wykorzystuje technologię sieci Ethernet, która działa w warstwie fizycznej OSI i łącza danych OSI.
- W przypadku protokołów komunikacyjnych i zasad wymiany danych pakietowych NVMe/TCP opiera się na protokole TCP/IP.
- Zestawy poleceń NVMe do konwersji wszystkich poleceń wydawanych przez użytkowników i operacji we/wy aplikacji na określoną tabelę poleceń NVMe, np. admin, we/wy, sieć szkieletowa itp.
- Zdalny transfer poleceń NVMe w sieci szkieletowej opartej na komunikatach odbywa się za pomocą kapsuł. Te kapsuły mogą być kapsułami odpowiedzi lub poleceń. Kapsuły poleceń NVMe reprezentują jednostkę wymiany danych NVMe.
- Podsystem i kontroler hosta komunikują się między sobą, wymieniając jednostki danych protokołu NVMe/TCP lub jednostki NVMe/TCP PDU.
- Istnieje trzyetapowy proces połączenia między podsystemem kontrolera a hostem. Te kroki lub fazy to NVMe-oF Connect, NVMe/TCP Connect i Fabric Connect.
- W systemie powiązań transportu NVMe/TCP dynamiczne kontrolery we/wy są automatycznie tworzone i przypisywane do komputera hosta, gdy podsystem pomyślnie łączy się z hostem NVMe-OF.
Korzyści z NVMe przez TCP
- TCP jest najczęściej używanym protokołem przesyłania danych w Internecie lub Intranecie i jest dostępny w każdym centrum danych oraz klientach zasobów przetwarzania w chmurze.
- Centra danych i ich klienci nie muszą wymieniać istniejącego sprzętu sieciowego, takiego jak routery, przełączniki i karty sieciowe.
- TCP może wykorzystywać zarówno kabel światłowodowy, jak i kabel Cat 5 lub Cat 6, dzięki czemu konserwacja jest dość łatwa.
- Powiązanie transportowe TCP dla NVMe-oF zapewnia wysoką wydajność i małe opóźnienia. Dzięki temu doskonale nadaje się do procesów o znaczeniu krytycznym i intensywnie obciążających procesor na komputerze hosta i jest łatwo dostępny dla wielu zdalnych klientów bez żadnych konfliktów odczytu/zapisu.
- TCP oferuje routing dynamiczny. Tak więc, w porównaniu ze zdalnym bezpośrednim dostępem do pamięci (RDMA), protokół TCP jest najbardziej wydajny w dużych centrach danych i operacjach w chmurze z większych odległości.
- TCP ma większą społeczność programistów niż jakakolwiek inna specyfikacja transportowa NVMe.
Wyzwania związane z NVMe przez TCP
- Podczas korzystania ze stosu TCP należy pozwolić procesorowi rozwiązać większość operacji TCP, takich jak obliczanie sum kontrolnych. Zatem na większą skalę, gdy wiele klienckich stacji roboczych będzie żądać zapisu i odczytu danych z sieciowych urządzeń pamięci masowej za pośrednictwem komputera hosta, obciążenie procesora hosta wzrośnie.
- Infrastruktura hiperkonwergentna musi być prosta. Jednak korzystanie z NVMe/TCP sprawia, że jest to skomplikowane.
- NVMe over TCP ma również pewne luki w zabezpieczeniach, które hakerzy mogą wykorzystać do infiltracji operacji w chmurze, kradzieży danych i udostępniania poufnych danych w ciemnej sieci, chyba że wdrożysz rygorystyczne rozwiązanie w zakresie bezpieczeństwa cybernetycznego i antywirusowego .
NVMe przez TCP: ostatnie słowa
TCP jest wiodącym protokołem w publicznych lub prywatnych sieciowych centrach danych. Dlatego NVMe/TCP jest pierwszym wyborem, jeśli chodzi o dostarczanie niedrogich rozwiązań pamięci masowej przez Internet, intranet i infrastrukturę chmurową.
Protokół ten jest również skalowalny i niezawodny w przypadku połączeń sieciowych na duże odległości. Ponieważ opóźnienie odczytu/zapisu pamięci masowej w chmurze jest takie samo, jak w przypadku większości protokołów Fibre Channel, NVMe przez TCP jest preferowanym rozwiązaniem transportu pamięci masowej w chmurze.
Następnie 3 alternatywy dla przechowywania w chmurze