Multipathing z EMC PowerPath (iSCSI AX4-5i) pod SLES10 SP2
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:
- EMC PowerPath for Linux Version 5.3 (300-008-344.pdf)
- PowerPath Family Version 5.2 and 5.3 CLI and System Messages Reference (300-008-343.pdf)