Kompleksowa obsługa informatyczna

            Nowoczesne rozwiązania serwerowe

Dostep do dyskow iSCSI na przykladzie macierzy Dell MD3000i

Poradniki

Słowo wstępu

Zakupiłeś nową macierz dyskową i nie bardzo wiesz co dalej? W tym poradniku dowiesz się jak uzyskać dostęp do udostępnionych po iSCSI dysków z poziomu systemu Linux. Poradnik pisany jest na przykładzie macierzy Dell MD3000i oraz dystrybucji Debian (w wersji lenny), jednak przy niewielkich modyfikacjach może być zastosowany również przy innej konfiguracji.

Poradnik ten nie skupia się na procesie konfiguracji samej macierzy. Zakładamy, że ustawiłeś już na niej podstawowe parametry, udostępniłeś jeden lub kilka wirtualnych dysków i nadałeś im odpowiednie uprawnienia. Ta część konfiguracji jest zależna od producenta i modelu macierzy i z reguły jest bardzo dobrze opisana w dołączonej dokumentacji.

Instalacja potzrebnych pakietów

Do kompletnej obsługi dysków iSCSI potrzebne nam będą dwa pakiety:
aptitude install open-iscsi multipath-tools

Pakiet open-iscsi

W celu wykrycia dostępnych ścieżek do macierzy dyskowej wydajemy polecenie:
xell:~# iscsiadm -m discovery -t st -p 192.168.200.100
192.168.200.100:3260,1 iqn.1984-05.com.dell:powervault.md3000i.
                       6842b2b000167ee9000000004c3357e2
192.168.201.100:3260,1 iqn.1984-05.com.dell:powervault.md3000i.
                       6842b2b000167ee9000000004c3357e2
192.168.200.101:3260,2 iqn.1984-05.com.dell:powervault.md3000i.
                       6842b2b000167ee9000000004c3357e2
192.168.201.101:3260,2 iqn.1984-05.com.dell:powervault.md3000i.
                       6842b2b000167ee9000000004c3357e2
Jako adres IP podajemy dowolny z adresów skonfigurowanych na macierzy (jeśli macierz posiada ich kilka). Jak widać, program iscsiadm sam wykrywa pozostałe adresy.

W celu sprawdzenia statusu połączeń wykonujemy jedno z poleceń:
xell:~# /etc/init.d/open-iscsi status
Current active iSCSI sessions:
tcp: [1] 192.168.200.101:3260,2 iqn.1984-05.com.dell:powervault.md3000i.
                                6842b2b000167ee9000000004c3357e2
tcp: [2] 192.168.200.100:3260,1 iqn.1984-05.com.dell:powervault.md3000i.
                                6842b2b000167ee9000000004c3357e2
lub:
xell:~# iscsiadm -m session
tcp: [1] 192.168.200.101:3260,2 iqn.1984-05.com.dell:powervault.md3000i.
                                6842b2b000167ee9000000004c3357e2
tcp: [2] 192.168.200.100:3260,1 iqn.1984-05.com.dell:powervault.md3000i.
                                6842b2b000167ee9000000004c3357e2
W naszym przykładzie serwer posiada 2 aktywne połączenia z macierzą.

Jeśli chcemy wykonać ponowne skanowanie zasobów (np. po skonfigurowaniu nowego dysku na macierzy), wydajemy komendę:
iscsiadm -m node -R

Pakiet multipath-tools

Osobnym programem do obsługi iSCSI jest pakiet multipath-tools, odpowiadający za rozłożenie obciążenia operacji I/O na 2 kontrolery oraz za nieprzerwalność działania instalacji w momencie awarii jednego z kontrolerów lub kabli. Plik konfiguracyjny powinien nazywać się multipath.conf i znajdować się w katalogu /etc/ (UWAGA: nie jest tworzony przy instalacji pakietu - należy utworzyć go samodzielnie):

defaults {
      user_friendly_names yes
}
devices {
      device {
              vendor                  "DELL*"
              product                 "MD3000*"
              path_grouping_policy    group_by_prio
              getuid_callout          "/lib/udev/scsi_id -g -u -s /block/%n"
              path_checker            rdac
              prio_callout            "/sbin/mpath_prio_rdac /dev/%n"
              hardware_handler        "1 rdac"
              failback                immediate
              product_blacklist       "Universal*"
              features                "1 queue_if_no_path"
      }
}
multipaths {
      multipath {
              wwid 36842b2b00015e34f000005d34c5fb136
              alias test
      }
}

W sekcji defaults włączono obsługę przyjaznych nazw. Od tej pory każdy nowo-dodany dysk nazywać się będzie mpathX, gdzie X jest kolejnym numerem dysku. W sekcji multipaths pokazano jak zmienić nazwę dysku - zasób z WWID'em 36842b2b00015e34f000005d34c5fb136 pojawi się w systemie jako urządzenie /dev/mapper/test.

Sekcja devices jest bardzo różna w zależności od producenta i modelu macierzy. Polecamy prześledzić dołączoną dokumentację lub wyszukać konfigurację do konkretnej macierzy w internecie.

Warto również wspomnieć, iż do działania pakiet potzrebuje załadowanych modułów dm-mod oraz dm-multipath


Aby wyświetlić istniejące ścieżki wydajemy polecenie:
xell:~# multipath -ll
test (36842b2b00015e34f000005d34c5fb136) dm-0 DELL    ,MD3000i       
[size=200G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=3][active]
 \_ 8:0:0:0  sdc 8:32  [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 7:0:0:0  sdb 8:16  [active][ghost]
Wykasowanie wszystkich ścieżek:
xell:~# multipath -F
libdevmapper: libdm-common.c(374): Removed /dev/mapper/mpath2
libdevmapper: libdm-common.c(374): Removed /dev/mapper/mpath3
Wykasowanie pojedynczej ścieżki:
multipath -f test
Stworzenie ścieżek:
xell:~# multipath -v2
create: test (36842b2b00015e34f000005d34c5fb136)  DELL    ,MD3000i       
[size=200G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=3][undef]
 \_ 8:0:0:0  sdc 8:32  [undef][ready]
\_ round-robin 0 [prio=0][undef]
 \_ 7:0:0:0  sdb 8:16  [undef][ghost]