iSCSI


Wszechobecne SCSI

SCSI, protokół zapisu bloków danych w urządzeniach pamięci masowej, powstał pierwotnie razem z definicją równoległego interfejsu sprzętowego o tej samej nazwie. Równoległe złącze SCSI przetrwało do dziś jako złącze urządzeń pamięci z dostępem bezpośrednim (DAS) lub wewnątrz systemów RAID. Rozkład plików na bloki następuje w systemie plików lub w bazie danych komputera. W przypadku NAS plik jest przesyłany najpierw do filera NAS lub do NAS Head i tam jest dzielony na bloki.

iSCSI osadza protokół SCSI w niemal niezmienionej formie na TCP/IP. Dzięki temu ruch danych pamięci może odbywać się bezpośrednio w sieci Ethernet LAN. Przekształcenie jest jednak bardzo skomplikowane, wymaga też dużych zasobów. Dla przyśpieszenia rozkładu bloków danych na pakiety i odciążenia procesora komputera w idealnym przypadku stosuje się w iSCSI tzw. TCP/IP Offload Engines (TOE).

Specyfikacja iSCSI

Wszystkie standardy związane ze SCSI i Fibre Channel to amerykańskie normy komitetów ANSI: T10 - SCSI, T11 - Fibre Channel. Normy Ethernetu opracowuje IEEE, organizacja podległa ANSI. W przeciwieństwie do powyższego, za wszystkie wytyczne związane z przesyłem danych pamięci masowych po IP odpowiada IETF (Internet Engineering Task Force), luźne stowarzyszenie ekspertów. Opracowuje ono takie normy, jak FCIP, iFCP, mFCP, iSNS, i w końcu również iSCSI.

W tym ostatnim przypadku IETF postawił sobie określone cele:

  • TCP musi służyć jako protokół transportowy iSCSI.

  • Urządzenia SCSI muszą współpracować w sieci IP.

  • Nie można zmieniać Ethernetu ani IP na potrzeby iSCSI.

  • Specyfikacja musi dopuszczać, że osiągi urządzeń SCSI mogą być poprawione w sieci IP.

  • Inicjatory (komputery/serwery) muszą mieć w iSCSI możliwość jednoczesnego odwoływania się różnymi drogami do urządzeń docelowych.

  • Należy oszczędnie korzystać z połączeń TCP.

  • Nie można obciążać oprogramowania na komputerze złożonymi zadaniami.
iSCSI działa w pewnym sensie jako wirtualne przedłużenie kabla łączącego inicjator SCSI z urządzeniem docelowym SCSI. Obok właściwych danych przesyłane są tu też informacje pomocnicze (polecenia SCSI, komunikaty o statusie). W czasie tego połączenia logicznego wszystkie treści biegną przez ten sam kanał logiczny. iSCSI nie przewiduje dynamicznych zmian adresu IP. Nawet w równoległych, wielokrotnych połączeniach polecenia i dane muszą być przesyłane w pierwotnej kolejności i oznaczeniem przynależności.

Protokół iSCSI

iSCSI

Droga okrężna - transmisja danych przez iSCSI wymaga ich przekształcenia na postać akceptowaną przez TCP/IP.

Protokół iSCSI nie jest identyczny z protokołem SCSI, stosowanym w SCSI i Fibre Channel. W iSCSI nie jest możliwy, z przyczyn protokolarno-technicznych, streaming wideo lub inny ruch danych o podobnym charakterze. Nie jest też możliwa praca bezserwerowa, czyli bezpośrednia transmisja danych na przykład między napędem taśm a twardym dyskiem, z pominięciem serwera.

W celu identyfikacji iSCSI wykorzystuje World Wide Unique Names i adresy IP. Ta identyfikacja jest niezależna od miejsca czy przyłącza. Oprócz tego są adresy, które identyfikują zdefiniowaną drogę do urządzenia docelowego iSCSI. Toczą się jeszcze dyskusje w związku z mnogością formatów i uwarunkowań historycznych.

iSCSI dopuszcza IQN (iSCSI Qualified Name) i EUI (Extended Unique Identifier) w międzynarodowym formacie UTF 8. Ten format znaków jest w dużym stopniu zgodny z formatem ASCII. Napędy SCSI stosują kod 8-bajtowy, Fibre Channel wykorzystuje dodatkowe identyfikatory. Nie każdy kod daje się przekształcić w inny.

Do tej pory nie było potrzeby stosowania w środowisku ethernetowym TCP/IP urządzeń pamięci masowej i związanej z nimi elektroniki czy wirtualnych identyfikatorów - i odwrotnie. Dlatego nie można uniknąć konfliktów. Jednoznaczna identyfikacja elementów w sieci ma pierwszorzędne znaczenie. Określony element w sieci musi być jednoznacznie przyporządkowany, niezależnie od tego, czy znajduje się w sieci LAN, czy SAN, a protokół to SCSI, FCP, TCP/IP czy iSCSI.

iSCSI

Rozwiązanie dwudrożne - protokół Fibre Channel (FCP) przesyła w sieci FC-SAN polecenia i dane SCSI w postaci szeregowej (u góry). Polecenia i dane SCSI przekształcane są przez iSCSI na Protocol Data Units (PDUs), które jako iSCSI w postaci szeregowej, zagnieżdżone w TCP/IP, przesyłane są w sieci Ethernet LAN (u dołu).

Skonwertowane polecenia SCSI TCP przesyła pojedynczo lub w grupach o różnej długości jako iSCSI Protocol Data Unit. TCP jest przystosowany do przesyłania ciągłych strumieni bajtów. TCP nie ma żadnego mechanizmu do rozpoznawania granic między blokami danych i poleceń w strumieniu danych. Dlatego iSCSI ma w nagłówku pole, w którym podana jest długość bloku poleceń. W tradycyjnym TCP strumień bajtów może mieć nieskończoną długość. Dla iSCSI maksymalną długość ograniczono do 232-1.

W celu zapewnienia większego bezpieczeństwa, ze względu na pracę w powszechnie dostępnej sieci, przewidziano w iSCSI zastosowanie IPsec jako opcji. Możliwe są też inne zabezpieczenia, łącznie z szyfrowaniem.

Sprzęt iSCSI

Programowa realizacja iSCSI z TCP/IP jest praktycznie niemożliwa. Obciążenie procesora byłoby tak duże, że płynna praca byłaby zablokowana. Dlatego już na samym początku zaproponowano zastosowanie tak zwanych TOEs. W praktyce chodzi o karty sieciowe, wyposażone w koprocesory do de- i reasemblacji bloków danych pamięci masowej.

Poukładanie pakietów TCP we właściwej kolejności wymaga rzeczywiście szybkiego układu, a z drugiej strony potrzebne jest pewne opóźnienie. Zakres zadań związanych z konwersją SCSI na iSCSI i z powrotem wymagał w pierwszej wersji układów specjalnych zastosowania około czterech milionów bramek. Układ Fibre Channel o podobnej funkcjonalności potrzebuje zaledwie pół miliona bramek. Liczba bramek w TOEs jest więc około ośmiokrotnie większa od liczby HBAs w Fibre Channel.

iSCSI

All in one - na karcie Intel PRO/1000 IP Storage Adapter obliczenia wykonuje procesor Intel 80200 z architekturą XScale. Ma do dyspozycji 32 MB pamięci SDRAM (źródło - Intel).

Aby poszerzyć wąskie gardło TCP/IP, należy spełnić trzy warunki. Przy zastosowaniu karty sieciowej jako iSCSI-"HBA" dodatkowe obciążenie musi przejąć komputer główny z szybkimi procesorami i zoptymalizowanym oprogramowaniem. W przypadku prawdziwych TOEs rozróżnia się wersję oszczędnościową Data Path Off-load oraz Full Offload. W tej ostatniej wersji cała obróbka danych odbywa się na karcie. To nie tylko zwiększa koszty, ale i powoduje pewne problemy. Host zostaje w ten sposób odcięty od pewnych funkcji nadrzędnych, jak routing, failover, load balancing itp. Data Path Offload bierze na siebie tylko przesyłanie danych.

Logika decyzyjna pozostaje w oprogramowaniu na komputerze. Jest już wiele konwerterów i przełączników, za pomocą których można przekształcać interfejsy i protokoły w dowolnych kombinacjach. Na przykład SANrad obsługuje do wyboru SCSI, FC oraz iSCSI i zwraca wynik przez odpowiednie złącze. Oprócz tego urządzenie przejmuje wirtualizacje dla całej sieci SAN. Wszystkie zadania wykonuje procesor czasu rzeczywistego w systemie operacyjnym czasu rzeczywistego.

Szybkość transmisji

W odniesieniu do szybkości transmisji iSCSI producenci ograniczają się w tej chwili do informacji "Wire Speed". To mówi tylko tyle, że nadajnik i odbiornik przesyłają pakiety TCP/IP z określoną szybkością. Użytkownik chciałby jednak znać szybkość transmisji danych użytecznych. Generalnie jest ona dużo niższa, niż w Fibre Channel. IBM podaje w różnych materiałach informacyjnych, że podczas rzeczywistej pracy na łączu jednogigabitowym efektywna szybkość transmisji wynosi ok. 80 MB/s - Fibre Channel i do 30 MB/s - iSCSI. Ta ostatnia wartość odnosi się do własnego produktu iSCSI IBM, IP Storage 200i. W przyszłych wersjach ma on uzyskiwać do 60 MB/s.