Multipathing z EMC PowerPath (iSCSI AX4-5i) pod SLES10 SP2

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

Ten artykuł opisuje konfigurację multipathing-u z EMC PowerPath pod SLES10 SP2. Wymagana konfiguracja podstawowa opisana jest w artykule Konfiguracja podstawowa multipathing-u z EMC iSCSI AX4-5i pod SLES10 SP2.

Uwaga: W tym przykładzie wykorzystywana jest standardowa konfiguracja iSCSI (o node.session.timeo.replacement_timeout 120 sekund). W celu uzyskania krótszych czasów przełączenia w przypadku awarii jednego połączenia wartość ta może zostać zmniejszona. Dalsze informacje na ten temat znajdują się w artykule ISCSI Multipathing pod Linuksem.

Wydajność przez jedną ścieżkę bez PowerPath

Jak jest to opisane w artykule o konfiguracji podstawowej, dostępne są cztery logiczne ścieżki. Z czego aktywnie wykorzystane mogą być dwie (każda która prowadzi z logicznego napędu do aktywnego kontrolera). Krótki test wydajności tych ścieżek dostarcza wynik około 87 MB/s:

sles10sp2:~ # dd if=/dev/zero of=/dev/sdd bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 12.4124 seconds, 86.5 MB/s
sles10sp2:~ # 

Instalacja PowerPath

PowerPath może zostać pobrany z klienta za pośrednictwem linku[1]. Następnie PowerPath jest instalowany i uruchomiony:

sles10sp2:~ # rpm -ihv EMCpower.LINUX-5.3.0.00.00-185.sles10sp2.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:EMCpower.LINUX         ########################################### [100%]
All trademarks used herein are the property of their respective owners.
NOTE:License registration is not required to manage the CLARiiON AX series array.
sles10sp2:~ # /etc/init.d/PowerPath start
Starting PowerPath:                                                   done
sles10sp2:~ # powermt version
EMC powermt for PowerPath (c) Version 5.3 (build 185)
sles10sp2:~ # 

Wskazówka: Aby możliwe było korzystanie z PowerPath Management Daemon wymagany jest snmpd. Inaczej pojawi się następujący komunikat w /var/log/messages:

Jun  5 13:55:13 sles10sp2 root: PowerPath: Unable to start PowerPath Management Daemon. You must configure and start net-snmp snmpd

Informacje PowerPath

Polecenie powermt display dev=all wyświetla informacje o podłączonych urządzeniach:

sles10sp2:~ # powermt display dev=all
Pseudo name=emcpowera
CLARiiON ID=SL7E2080300038 [sles10sp2.thomas-krenn.com]
Logical device ID=600601609711200044E7CF4E0751DE11 [Virtual Disk 1]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP A, current=SP A	Array failover mode: 1
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   3 iSCSI Initiator over TCP/I sdb       SP B0     active  alive      0      0
   5 iSCSI Initiator over TCP/I sdc       SP B1     active  alive      0      0
   4 iSCSI Initiator over TCP/I sdd       SP A1     active  alive      0      0
   6 iSCSI Initiator over TCP/I sde       SP A0     active  alive      0      0



sles10sp2:~ # 

Wydajność z PowerPath

Dostęp do logicznego napędu następuje za pośrednictwem urządzenia /dev/emcpowera. Krótki test wydajności dostarcza tu wynik 108 MB/s:

sles10sp2:~ # dd if=/dev/zero of=/dev/emcpowera bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 9.97066 seconds, 108 MB/s
sles10sp2:~ # 

Awaria jednej ścieżki

W celu symulacji awarii zostaje odłączony kabel sieciowy pomiędzy serwerem a switchem. Równocześnie uruchomiony jest powyższy test w celu obciążenia I/O systemu w trakcie symulacji. W /var/log/messages znajdują się następujące informacje:

Jun  5 14:25:46 sles10sp2 kernel: e1000: eth1: e1000_watchdog_task: NIC Link is Down
Jun  5 14:25:52 sles10sp2 kernel: ping timeout of 5 secs expired, last rx 4296444002, last ping 4296445252, now 4296446502
Jun  5 14:25:52 sles10sp2 kernel:  connection1:0: iscsi: detected conn error (1011)
Jun  5 14:25:53 sles10sp2 iscsid: semop up failed 22
Jun  5 14:25:55 sles10sp2 kernel: ping timeout of 5 secs expired, last rx 4296444698, last ping 4296445948, now 4296447198
Jun  5 14:25:55 sles10sp2 kernel:  connection4:0: iscsi: detected conn error (1011)
Jun  5 14:25:55 sles10sp2 iscsid: semop up failed 22
Jun  5 14:26:22 sles10sp2 iscsid: semop up failed 22
[...]
Jun  5 14:27:48 sles10sp2 iscsid: semop up failed 22
Jun  5 14:27:53 sles10sp2 kernel:  session1: iscsi: session recovery timed out after 120 secs
Jun  5 14:27:53 sles10sp2 iscsid: semop up failed 22
Jun  5 14:27:54 sles10sp2 iscsid: semop up failed 22
Jun  5 14:27:55 sles10sp2 kernel:  session4: iscsi: session recovery timed out after 120 secs
Jun  5 14:27:55 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
[...]
Jun  5 14:27:57 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:27:57 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:27:57 sles10sp2 kernel: Error:Mpx:Path Bus 6 Tgt 0 Lun 0 to SL7E2080300038 is dead.
Jun  5 14:27:57 sles10sp2 kernel: Error:Mpx:Killing bus 6 to Clariion   SL7E2080300038 port SP A0.
Jun  5 14:27:57 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:27:57 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:27:57 sles10sp2 kernel: Error:Mpx:Path Bus 3 Tgt 0 Lun 0 to SL7E2080300038 is dead.
Jun  5 14:27:57 sles10sp2 kernel: Error:Mpx:Killing bus 3 to Clariion   SL7E2080300038 port SP B0.
Jun  5 14:27:59 sles10sp2 iscsid: semop up failed 22
Jun  5 14:28:00 sles10sp2 iscsid: semop up failed 22
Jun  5 14:28:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:28:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:28:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:28:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:28:05 sles10sp2 iscsid: semop up failed 22
Jun  5 14:28:06 sles10sp2 iscsid: semop up failed 22
[...]

W momencie awarii ścieżki ruch I/O zostaje zatrzymany na około 2 min. Następnie ruch zostaje wznowiony. Test wydajności zostaje bez błędu (ale oczywiście z niższym wynikiem) zakończony.

powermt wskazuje następujący status:

sles10sp2:~ # powermt display dev=all
Pseudo name=emcpowera
CLARiiON ID=SL7E2080300038 [sles10sp2.thomas-krenn.com]
Logical device ID=600601609711200044E7CF4E0751DE11 [Virtual Disk 1]
state=alive; policy=CLAROpt; priority=0; queued-IOs=129
Owner: default=SP A, current=SP A	Array failover mode: 1
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   3 iSCSI Initiator over TCP/I sdb       SP B0     active  dead       0      1
   5 iSCSI Initiator over TCP/I sdc       SP B1     active  alive      0      0
   4 iSCSI Initiator over TCP/I sdd       SP A1     active  alive    129      0
   6 iSCSI Initiator over TCP/I sde       SP A0     active  dead       0      1



sles10sp2:~ # 

Dalsze awarie

Kabel pomiędzy switchem 2 a portem SP A1 zostaje odłączony. W ten sposób aktywny kontroler SPA jest nieosiągalny. PowerPath rozpoznaje to i przełącza logiczny napęd do kontrolera SPB. Również ta symulacja jest przeprowadzana pod obciążeniem I/O. Odpowiedni do tego wyciąg z /var/log/messages:

Jun  5 14:37:30 sles10sp2 iscsid: semop up failed 22
Jun  5 14:37:31 sles10sp2 iscsid: semop up failed 22
Jun  5 14:37:33 sles10sp2 kernel: ping timeout of 5 secs expired, last rx 4296619217, last ping 4296616024, now 4296621717
Jun  5 14:37:33 sles10sp2 kernel:  connection2:0: iscsi: detected conn error (1011)
Jun  5 14:37:33 sles10sp2 iscsid: semop up failed 22
Jun  5 14:38:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:38:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:38:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:38:05 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:38:38 sles10sp2 iscsid: semop up failed 22
Jun  5 14:38:42 sles10sp2 iscsid: semop up failed 22
[...]
Jun  5 14:40:35 sles10sp2 iscsid: semop up failed 22
Jun  5 14:40:36 sles10sp2 iscsid: semop up failed 22
Jun  5 14:40:38 sles10sp2 kernel:  session2: iscsi: session recovery timed out after 120 secs
Jun  5 14:40:38 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
Jun  5 14:40:38 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
[...]
Jun  5 14:40:45 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:45 sles10sp2 kernel: Error:Mpx:Path Bus 4 Tgt 0 Lun 0 to SL7E2080300038 is dead.
Jun  5 14:40:45 sles10sp2 kernel: Error:Mpx:Killing bus 4 to Clariion   SL7E2080300038 port SP A1.
Jun  5 14:40:45 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:45 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:45 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:45 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:45 sles10sp2 kernel: Info:Mpx:Assigned volume 600601609711200044E7CF4E0751DE11 to SPB
Jun  5 14:40:46 sles10sp2 iscsid: semop up failed 22
Jun  5 14:40:47 sles10sp2 iscsid: semop up failed 22
Jun  5 14:40:48 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:48 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun  5 14:40:49 sles10sp2 iscsid: semop up failed 22
[...]

Również tu ruch I/O po krótkiej przerwie zostaje wznowiony.

Zabezpieczenie konfiguracji

Za pośrednictwem

powermt save

konfiguracja może zostać zabezpieczona.

Dalsze opcje powermt

PowerPath Management Utility powermt oferuje następujące opcje i parametry:

sles10sp2:~ # powermt --help
Usage:
  powermt <command> [class=all|clariion|ess|hitachi|hphsx|hpxp|invista|symm]

  powermt check [force] [hba=<hba#>|all] [dev=<device>|all]
  powermt check_registration
  powermt config
  powermt disable hba=<hba#> 
  powermt display nonvirtual {dev=<device>|all} [every=<#seconds>] [class=invista|all]
		[width=<#col>]
  powermt display [ports] [dev=<device>|all] [every=<#seconds>]
		[width=<#col>]
  powermt display hba_mode 
  powermt display latency [dev=<device>|all] [every=<#seconds>]
		[width=<#col>]
  powermt display options
  powermt display paths  [every=<#seconds>] [width=<#col>]
  powermt display port_mode 
  powermt display unmanaged
  powermt enable hba=<hba#> 
  powermt load [file=<filename>]
  powermt manage {dev=<device> | class=<storage array class>}
  powermt release
  powermt remove [force] hba=<hba#>|all | dev=<device>|all
  powermt restore [hba=<hba#>|all] [dev=<device>|all]
  powermt save [file=<filename>]
  powermt set mode=active|standby [hba=<hba#>|all] [dev=<device>|all]
  powermt set path_latency_monitor=on|off
  powermt set path_latency_threshold=<seconds>
  powermt set periodic_autorestore=on|off
  powermt set policy={ad|bf|co|lb|li|nr|re|rr|so|si} [dev=<device>|all]
  powermt set port_disable={true|false} dev=<device>
  powermt set priority=<priority> [dev=<device>|all]
  powermt unmanage {dev=<device> | class=<storage array class>}
  powermt update lun_names
  powermt version [format={verbose|legacy}]

sles10sp2:~ # 

Odnośniki

Dalsze informacje

Dalsze informacje znajdują cię w następującej dokumentacji EMC: