Podstawowe informacje o iSCSI

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Ten artykuł omawia zasady funkcjonowania protokołu/technologii iSCSI (Internet Small Computer Systems Interface). iSCSI oferuje, podobnie jak Fibre Channel, pełen zestaw komponentów potrzebnych do utworzenia sieci pamięci masowych (SAN, Storage Area Network). Protokół iSCSI zdefiniowany jest w dokumencie RFC 3720.

Komponenty iSCSI

W komunikacji przy użyciu protokołu iSCSI wykorzystywane są dwa komponenty:

  • Inicjator iSCSI (initiator)
  • Cel iSCSI (target)

Inicjator iSCSI (initiator)

Klient w sieci pamięci masowej nazywany jest inicjatorem iSCSI. Inicjator iSCSI może łączyć się z serwerem (celem iSCSI) wysyłając komendy SCSI. Komendy SCSI znajdują się w pakietach IP.

Inicjatory iSCSI występują w następujących formach:

  1. Sprzętowy inicjator iSCSI: Karta PCI-X lub PCI-Express, na której zaimplementowana została funkcjonalność inicjatora iSCSI. Taka karta określana jest także jako HBA (Host Bus Adapter) iSCSI. System operacyjny rozpoznaje taką kartę jako kontroler RAID lub HBA Fibre Channel. HBA iSCSI umożliwia bootowanie serwera poprzez iSCSI. Przykładowe karty:
  2. Programowy inicjator iSCSI: Inicjator iSCSI zaimplementowany programowo. Operacje iSCSI są w tym przypadku wykonywane przez procesor (a nie przez osobną kartę PCI-X/PCI-Express). Dzięki wysokiej wydajności obecnie dostępnych procesorów takie rozwiązanie nie redukujnie zauważalnie wydajności serwera. Do przesyłania komend SCSI wykorzystywane są zwykłe karty sieciowe. Przykłady:

Jeżeli bootowanie przez iSCSI nie jest wymagane, nic nie stoi obecnie na przeszkodzie wykorzystaniu inicjatorów programowych. Inicjatory programowe są tańsze, rozpowszechnione i bardzo stabilne. Nie obciążają zauważalnie nowoczesnych procesorów wielordzeniowych. Inicjatory programowe będą mogły być łatwo zaimplementowane w sieciach 10 GBit Ethernet, dzięki popularyzacji kart sieciowych 10 GBit. [1]

Cel iSCSI (target)

Serwer w sieci pamięci masowej określany jest mianem celu iSCSI (iSCSI target). Jeden cel iSCSI może udostępniać jeden lub więcej jednostek logicznych (LU - Logical Units). Jednostki logiczne oznaczane są często skrótem LUN (chociaż skrót ten oznacze w zasadzie numer jednostki logicznej - Logical Unit Number).

Cele iSCSI występują w następujących formach:

Serwery iSCSI implementują funkcjonalność celu iSCSI na różne sposoby[2]:

  • niektóre macierze storage iSCSI mają dokładnie jeden cel iSCSI (sama macierz storage)
  • inne macierze storage iSCSI mają wiele targetów iSCSI, np.
    • jeden cel iSCSI na każdy interfejs fizyczny:
      • NetApp
      • EMC CLARiiON (dla pamięci masowych EMC CLARiiON AX4-5i jest to przedstawione na tym przykładzie)
    • jeden cel iSCSI na każdy LUN:
      • Dell/EqualLogic
      • HP/LeftHand
    • definiowalna przez użytkownika konfiguracja targetów iSCSI:
      • w macierzach EMC Celerra można skonfigurować do 1000 celów iSCSI i przypisać je do dowolnych sprzętowych lub wirtualnych interfejsów sieciowych

Źródła SCSI

iSCSI ma początki w normalnym interfejsie SCSI (Small Computer Systems Interface). Dokładnie mówiąc iSCSI to transformacja poleceń SCSI na format TCP/IP i na odwrót.[3]:

  • 'Komendy SCSI' przesyłane są jako 'zapytania iSCSI'
  • 'Odpowiedzi SCSI' i 'statusy SCSI' przesyłane są jako 'odpowiedzi iSCSI'

Inicjator iSCSI i cel iSCSI dzielą komunikację na pojedyncze komunikaty. Jeden taki komunikat określany jest jako 'iSCSI protocol data unit'.

Komunikacja iSCSI

Jak opisano wyżej w komunikacji iSCSI dochodzi do wymiany komunikatów pomiędzy inicjatorem i celem iSCSI. Komunikacja zawsze rozpoczyna się od wysłania zapytania przez inicjator iSCSI. W komunikacji wykorzystane może być jedno lub wiele połączeń iSCSI (iSCSI connection). Jedno połączenie iSCSI odpowiada jednemu połączeniu TCP. Komunikacja pomiędzy inicjatorem i celem iSCSI określana jest mianem sesji iSCSI.

Poniższa grafika obrazuje schematyczną budowę zestawu iSCSI:

Iscsi-grundlagen-1.png

Typy sesji iSCSI

Występują dwa typy sesji iSCSI[4]:

  • Normal operational session: nielimitowana sesja iSCSI.
  • Discovery session: Ta sesja służy tylko do wykrywania celów iSCSI. Cel iSCSI przyjmuje tylko zapytania SendTargets.

Typ sesji iSCSI definiowany jest podczas logowania iSCSI.

iSCSI Multipathing

Technika Multipathing z wykorzystaniem iSCSI może zostać zaimplementowana na następujące sposoby:

  1. przez technologię Storage Multipathing, zaimplementowaną niezależnie od technologii przesyłu danych ponad warstwą protokołu iSCSI
  2. przez wielokrotne połączenia iSCSI na sesję (MC/S)

Technologia Storage Multipathing

Istnieją dwa obszary, w których funkcjonuje technologia Storage Multipathing:

  1. Storage Multipathing przy wykorzystaniu narzędzi systemamów operacyjnych (np. Linux Device Mapper MPIO)
  2. Storage Multipathing przy wykorzystaniu rozwiązań programowych dostarczanych przez producentów pamięci masowych (np. EMC Powerpath)

Więcej informacji na ten temat znajduje się w artykule Technologie Storage Multipathing.

Wielokrotne połączenia iSCSI na sesję (MC/S)

iSCSI oferuje bezpośrednio w protokole możliwość Multipathingu poprzez technologię MC/S (Multiple Connections per Session), o ile technologia ta jest wspierana przez inicjator i cel iSCSI.

Inicjator Wsparcie MC/S? Dalsze informacje
Linux Open-iSCSI Software Initiator Nie iSCSI Multipathing pod Linuksem
Microsoft iSCSI Software Initiator Tak https://technet.microsoft.com/en-us/library/dd759096.aspx
Cel Wsparcie MC/S? Dalsze informacje
EMC CLARiiON Nie
EMC Celerra Tak https://technet.microsoft.com/en-us/library/dd759096.aspx
NetApp Tak https://technet.microsoft.com/en-us/library/dd759096.aspx
https://blogs.netapp.com/dropzone/2009/05/the-free-consultant-iscsi-part-ii.html

Odniesienia

  1. A “Multivendor Post” to help our mutual iSCSI customers using VMware Question 3: Do I use the Software Initiator or the Hardware Initiator?
  2. A “Multivendor Post” to help our mutual iSCSI customers using VMware Cytat: "iSCSI target = an iSCSI server, usually on an array of some type. Arrays vary in how they implement this. Some have one (the array itself), some have many, some map them to physical interfaces, some make each LUN an iSCSI target." und Question 1: How do I configure MPIO
  3. RFC 3720 Section 3.2. iSCSI Concepts and Functional Overview
  4. RFC 3720 Section 3.3 iSCSI Session Types

Dalsze informacje

Powiązane artykuły

ISCSI Multipathing pod Linuksem
Tuning konfiguracji iSCSI w Open-E JovianDSS i VMware
Upgrade oprogramowania SvSAN