iSCSI

Internet Small Computer System Interface (iSCSI) to protokół sieciowy używany do współdzielenia zasobów dyskowych przez sieć IP przy wykorzystaniu komend SCSI. Klienci widzą zasób dyskowy tak jak lokalnie podłączony dysk i mogą używać zwykłych narzędzi do partycjonowania, formatowania i montowania dysku. iSCSI Storage Area Network (SAN) to tania alternatywa wobec kosztownego rozwiązania Fibre Channel SAN. W przeciwieństwie do Fibre Channel nie wymaga specjalnie dedykowanego okablowania, przełączników ani kontrolerów, używa istniejącej infastruktury IP do współdzielenia zasobów dyskowych.

Protokół komunikuje się przez port 3260 TCP. W przeciwieństwie do NFS i CIFS zasoby dyskowe udostępniane są przez iSCSI jako urządzenie blokowe bez systemu plików. Klient dopiero dzieli na partycje zasób i formatuje na jaki system plików mu pasuje.

Terminologia iSCSI SAN.

IQN – unikalna nazwa służącą do identyfikowania targetów i intiatorów.

Target – usługa na serwerze iSCSI, która udostępnia zasób dyskowy.

Initiator – klient iSCSI identyfikowany przez IQN, który podłącza się do targetu.

Backstore  – (backend storage) urządzenie dyskowe udostępniane przez target, może to być cały dysk fizyczny, partycja, lvm lub macierz raid.

ACL – lista kontroli dostępu (access control list), która kontroluje dostęp do LUN targetu.

LUN – logiczny numer jednostki (logical unit number), reprezentuje pojedynczy możliwy do zaadresowania logiczny dysk udostępniony przez target. Z perspektywy klienta LUN to zwykły dysk podłączony do klienta.

Portal – kombinacja adresu IP i portu, na których target nasłuchuje a do których inicjator nawiązuje połączenie.

TPG – (target portal group) kolekcja adresów IP i portów, na których nasłuchuje target.

Discovery – proces, w którym inicjator odnajduje target ze skonfigurowanym portalem.

Login – autentykacja, która przyznaje inicjatorowi dostęp do LUN targetu.

 

Zarządzanie serwerem iSCSI Target.

Do celów zarządzania targetem służy komenda targetcli, pozwala ona wyświetlać, tworzyć modyfikować i kasować LUNy na targecie.

Komenda Opis
ls Wyświetla widok z aktualnego położenia w drzewie.
pwd Wyświetla aktualne położenie w drzewie.
cd Nawigowanie po drzewie.
get / set Pobranie / ustawienie atrybutów konfiguracji.
sessions Dokładne informacje o aktualnie otwartej sesji.
saveconfig Zapisanie konfiguracji.
exit Wyjście z interfejsu targetcli.

Więcej informacji: # man targetcli.

 

Zarządzanie iSCSI Initiator.

Podstawowym narzędziem do wyszukiwania (discover) targetów iSCSI, logowania się na nie, zarządzania bazą discovery iSCSI jest komenda iscsiadm. Komenda współpracuje z demonem iscsid i czyta konfigurację z pliku /etc/iscsi/iscsid.conf.

Komenda ma cztery tryby działania:

  • Discovery – przepytuje określony portal o dostępne targety w oparciu o konfigurację zdefiniowaną w pliku: /etc/iscsi/iscsid.conf.
  • Node – zestawia sesje z targetem i tworzy korespondujące urządzenie dla każdego odnalezionego na targecie LUN.
  • Session – wyświetla aktualne informacje o sesji.
  • Iface – definiuje portal sieciowy.

Więcej informacji:  # man iscsiadm.

 

Pliki konfiguracyjne.

/etc/iscsi/iscsid.confplik konfiguracyjny inicjatora iSCSI, który określa jak sterować iniccjatorem przez komendę iscsiadm. Przykładowa zawartość poniżej.

/etc/iscsi/initiatorname.iscsi – plik jest czytany przez demona iscsid podczas startu i jest używany do określenia nazw węzłów i ich aliasów. Przykładowa zawartość pliku znajduje się poniżej.

 

Ćwiczenie 1. Konfiguracja iSCSI Target LUN w oparciu o dysk i podłączenie na inicjatorze.

Strona Target.

1. Instalacja targetcli:

2. Uruchomienie powłoki targetcli i wyświetlenie drzewa. Po drzewie targetcli można

3. wejście do /backstores/block aby utworzyć backstore o nazwie iscsidisk1 wykorzystując dysk /dev/vdb.

3. Utworzenie targetu iSCSI z adresem iqn.2015-01.com.example:iscsidisk1 na backstore iscsidisk1 w domyślnym TPG:

Nazewnictwo IQN jest bardzo restrykcyjne, jeżeli np. numer miesiąca wpiszesz jako pojedynczą cyfrę otrzymasz komunikat “WWN not valid”.

4. Wyłączenie autentykacji dzięki czemu każdy inicjator będzie mógł podłączyć się do LUN.

Wyłączenie demo_mode_write_protect=0 zezwala na zapis do LUN.
Atrybut generate_node_acls=1 włącza autentykacje TPG, która wyłącza wszelkie zdefiniowane przez użytkowników ACLki.

5.  Utworzenie LUN o nazwie lun0 i wyeksportowanie:

6. Utworzenie portalu z adresem IP 192.168.0.120 i domyślnym portem:

Przy tworzeniu portalu nazwa hosta musi być wpisany adres IP, nie można tutaj wpisać nazwy domenowej hosta, bo nie będzie to działać.

7. Wyjście z powłoki targetcli. Domyślnie włączona jest dyrektywa auto_save_on_exit a więc konfiguracja zostanie zapisana automatycznie.

Konfiguracja zapisana została w pliku /etc/target/saveconfig.json jak wskazała powłoka targetcli po wyjściu.

8. Odblokowanie na firewallu usługi iscsi-target (port 3260/tcp):

9. Jeżeli w systemie nie ma zdefiniowej usługi firewalld iscsi-target to trzeba taką zdefiniować:

10. Autostart, uruchomienie i status usługi target.

 

Strona initiator.

11. Instalacja iscsi-initiator-utils:

12. Edycja pliku konfiguracyjnego:

13. Włączenie, autostart i status demona iscsid:

14. Ponieważ składnia komendy iscsiadm jest dosyć zawiła najlepiej skopiować całe poniższe polecenie z man i tylko wstawić swoje parametry:

I znów kopiowanie z man komendy login:

15. Dodatkowe informacje :

16. Wyświetlenie dostępnych urządzeń SCSI w systemie:

17. Utworzenie partycji z ext4 na podłączonym zasobie dyskowym i podmontowanie nowej partycji w oparciu o jej UUID:

18. Dodatkowe informacje:

 

Ćwiczenie 2. Konfiguracja iSCSI Target LUN w oparciu plik i podłączenie na inicjatorze.

Strona Target.

1. Instalacja targetcli:

2. Uruchomienie powłoki targetcli i wyświetlenie drzewa.

3. Wejście do /backstores/fileio aby utworzyć plik IO o nazwie file1 w katalogu /usr:

3. Utworzenie targetu iSCSI z adresem iqn.2015-01.com.example:iscsifile1 na backstore file1 w domyślnym TPG:

4.Tworzymy ACL ponieważ chcemy ograniczyć dostęp do targetu.

/iscsi> cd iqn.2015-01.com.example:iscsifile1/tpg1
/iscsi/iqn.20…sidisk1/tpg1> acls/ create iqn.2015-01.com.example:iscsifile1

5. Utworzenie LUN o nazwie lun0 i wyeksportowanie:

6. Zezwalamy na dostęp do targetu tylko dla hostów z podsieci 192.168.0.0/24.

0.0.0.0.255 to maska wildcard, tutaj jest to odpowiednik maski podsieci 255.255.255.0 czyli 24 bitowej.

7. Wyjście z powłoki targetcli.

8. Odblokowanie na firewallu usługi iscsi-target (port 3260/tcp):

9. Autostart, uruchomienie i status usługi target.

 

Strona initiator.

10. Instalacja iscsi-initiator-utils:

11. Edycja pliku konfiguracyjnego:

12. Włączenie, autostart i status demona iscsid:

13. Ponieważ składnia komendy iscsiadm jest dosyć zawiła najlepiej skopiować całe poniższe polecenie z man i tylko wstawić swoje parametry:

lub (opcje w wersji pełnej)

Teraz login:

lub (opcje w wersji pełnej)

14. Dodatkowe informacje :

15. Wyświetlenie dostępnych urządzeń SCSI w systemie:

16. Utworzenie partycji z ext4 na podłączonym zasobie dyskowym i podmontowanie nowej partycji w oparciu o jej UUID:

17. Dodatkowe informacje:

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *