SLES10 SP2 mit EMC iSCSI AX4-5i Multipathing mit DM-MPIO

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt die Konfiguration von Multipathing mit dem Linux Device Mapper MPIO (Multipath I/O) unter SLES10SP2. Die notwendige Basiskonfiguration zeigt der Ariktel SLES10 SP2 mit EMC iSCSI AX4-5i Multipathing Basiskonfiguration.

Hinweis: Bei diesem Beispiel wird die Standard-iSCSI-Konfiguration verwendet (mit node.session.timeo.replacement_timeout von 120 Sekunden). Um eine schnellere Umschaltzeit bei einem Pfadausfall zu bekommen, kann dieser Wert verringert werden. Siehe dazu auch die weiteren Informationen im Artikel ISCSI Multipathing unter Linux.

Performance über einen Pfad ohne DM-MPIO

Wie im Artikel zur Basiskonfiguration gezeigt, stehen im Beispiel vier logische Pfade zur Verfügung. Davon sind zwei Pfade (jene die zum aktiven Controller für das logical drive gehen) aktiv nutzbar. Ein kurzer Performance-Test über einen dieser Pfade liefert ca. 85 MB/sec:

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.6143 seconds, 85.1 MB/s
sles10sp2:~ #

DM-MPIO einrichten

Dazu wird im ersten Schritt der multipathd einfach gestartet:

sles10sp2:~ # /etc/init.d/multipathd start
Starting multipathd                                                   done
sles10sp2:~ # 

DM-MPIO Informationen

Informationen zu den vorhanden Pfaden können mit multipath -ll angezeigt werden:

sles10sp2:~ # multipath -ll
3600601609711200044e7cf4e0751de11 dm-0 DGC,RAID 10
[size=10G][features=1 queue_if_no_path][hwhandler=1 emc]
\_ round-robin 0 [prio=2][active]
 \_ 4:0:0:0 sde 8:64  [active][ready]
 \_ 6:0:0:0 sdd 8:48  [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 3:0:0:0 sdb 8:16  [active][ready]
 \_ 5:0:0:0 sdc 8:32  [active][ready]
sles10sp2:~ # cat /proc/partitions 
major minor  #blocks  name

   8     0  160836480 sda
   8     1     104391 sda1
   8     2    2104515 sda2
   8     3   10490445 sda3
   8    32   10485760 sdc
   8    16   10485760 sdb
   8    48   10485760 sdd
   8    64   10485760 sde
 253     0   10485760 dm-0
sles10sp2:~ #

Performance mit DM-MPIO

Der Zugriff auf das logical drive erfolgt nun über das Device /dev/dm-0. Der kurze Performance-Test hier ergibt nun rund 90 MB/sec:

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

Ausfall eines Pfades

Um einen Ausfall zu simulieren, wird das Netzwerkkabel vom Server zum ersten Switch abgesteckt. Gleichzeitig läuft wieder der obige Performance-Test damit das System während des Tests unter I/O Last steht. In /var/log/messages sind folgende Informationen zu sehen:

Jun 10 15:16:40 sles10sp2 kernel: e1000: eth2: e1000_watchdog_task: NIC Link is Down
Jun 10 15:16:45 sles10sp2 kernel: ping timeout of 5 secs expired, last rx 4296229615, last ping 4296230865, now 4296232115
Jun 10 15:16:45 sles10sp2 kernel:  connection3:0: iscsi: detected conn error (1011)
Jun 10 15:16:45 sles10sp2 iscsid: Kernel reported iSCSI connection 3:0 error (1011) state (3)
Jun 10 15:16:50 sles10sp2 kernel: ping timeout of 5 secs expired, last rx 4296230793, last ping 4296225843, now 4296233293
Jun 10 15:16:50 sles10sp2 kernel:  connection2:0: iscsi: detected conn error (1011)
Jun 10 15:16:50 sles10sp2 iscsid: Kernel reported iSCSI connection 2:0 error (1011) state (3)
Jun 10 15:17:55 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:17:55 sles10sp2 kernel: end_request: I/O error, dev sde, sector 2509824
Jun 10 15:17:55 sles10sp2 kernel: device-mapper: multipath: Failing path 8:64.
Jun 10 15:17:55 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:17:55 sles10sp2 kernel: end_request: I/O error, dev sde, sector 2510848
Jun 10 15:17:55 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00020000
[...]
Jun 10 15:18:43 sles10sp2 iscsid: connect failed (113)
Jun 10 15:18:45 sles10sp2 iscsid: connect failed (113)
Jun 10 15:18:45 sles10sp2 kernel:  session3: iscsi: session recovery timed out after 120 secs
Jun 10 15:18:49 sles10sp2 iscsid: connect failed (113)
Jun 10 15:18:51 sles10sp2 iscsid: connect failed (113)
[...]
Jun 10 15:19:46 sles10sp2 iscsid: connect failed (113)
Jun 10 15:19:51 sles10sp2 iscsid: connect failed (113)
Jun 10 15:19:52 sles10sp2 iscsid: connect failed (113)
Jun 10 15:19:55 sles10sp2 kernel:  session2: iscsi: session recovery timed out after 120 secs
Jun 10 15:19:55 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
Jun 10 15:19:55 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
[...]
Jun 10 15:20:00 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:20:00 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00010000
Jun 10 15:20:00 sles10sp2 kernel: end_request: I/O error, dev sde, sector 2588672
Jun 10 15:20:00 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
Jun 10 15:20:00 sles10sp2 multipathd: sdc: emc_clariion_checker: query command indicates error
Jun 10 15:20:00 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00010000
Jun 10 15:20:00 sles10sp2 multipathd: checker failed path 8:32 in map 3600601609711200044e7cf4e0751de11
Jun 10 15:20:00 sles10sp2 kernel: end_request: I/O error, dev sde, sector 2589696
Jun 10 15:20:00 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00010000
[...]
Jun 10 15:20:01 sles10sp2 kernel: end_request: I/O error, dev sde, sector 2619392
Jun 10 15:20:01 sles10sp2 kernel: sd 4:0:0:0: SCSI error: return code = 0x00010000
Jun 10 15:20:01 sles10sp2 kernel: end_request: I/O error, dev sde, sector 2620416
Jun 10 15:20:01 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:20:01 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:20:01 sles10sp2 kernel: device-mapper: multipath: Failing path 8:32.
Jun 10 15:20:03 sles10sp2 iscsid: connect failed (113)
Jun 10 15:20:04 sles10sp2 iscsid: connect failed (113)

Zum Zeitpunkt des Pfadausfalles bleibt der I/O für ca. knapp 2 Minuten stehen. Anschließend läuft der I/O wieder weiter. Auch Performance-Test läuft weiter und wird schließlich ohne Fehler (allerdings natürlich mit geringerer Performance) beendet.

multipath zeigt nun folgenden Status:

sles10sp2:~ # multipath -ll
sde: emc prio: query command indicates error
sdc: emc prio: query command indicates error
3600601609711200044e7cf4e0751de11 dm-0 DGC,RAID 10
[size=10G][features=1 queue_if_no_path][hwhandler=1 emc]
\_ round-robin 0 [prio=1][active]
 \_ 4:0:0:0 sde 8:64  [failed][faulty]
 \_ 6:0:0:0 sdd 8:48  [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 3:0:0:0 sdb 8:16  [active][ready]
 \_ 5:0:0:0 sdc 8:32  [failed][faulty]
sles10sp2:~ # 

weiterer Ausfall

Nun wird noch die Kabelverbindung vom Switch 2 zum Port SP A1 entfernt. Somit ist der aktive Controller SPA nicht mehr übers Netzwerk erreichbar. DM-MPIO erkennt dies und schaltet dazu das logical drive auf den Controller SPB. Auch dieser Test erfolgte wieder unter I/O Last. Hier der zugehörige Ausschnitt aus /var/log/messages:

Jun 10 15:23:02 sles10sp2 kernel: ping timeout of 5 secs expired, last rx 4296323991, last ping 4296325241, now 4296326491
Jun 10 15:23:02 sles10sp2 kernel:  connection4:0: iscsi: detected conn error (1011)
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1083392
Jun 10 15:23:03 sles10sp2 kernel: device-mapper: multipath: Failing path 8:48.
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1076224
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1068032
[...]
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1061888
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1062912
Jun 10 15:23:03 sles10sp2 iscsid: Kernel reported iSCSI connection 4:0 error (1011) state (3)
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1089536
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1090560
[...]
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: rejecting I/O to blocked device
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: rejecting I/O to blocked device
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1063936
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1064960
[...]
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1087488
Jun 10 15:23:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00020000
Jun 10 15:23:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1067008
Jun 10 15:23:03 sles10sp2 kernel: device-mapper: multipath emc: emc_pg_init: sending switch-over command
Jun 10 15:23:07 sles10sp2 iscsid: connect failed (113)
Jun 10 15:23:09 sles10sp2 iscsid: connect failed (113)
[...]
Jun 10 15:25:02 sles10sp2 iscsid: connect failed (113)
Jun 10 15:25:03 sles10sp2 kernel:  session4: iscsi: session recovery timed out after 120 secs
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x2a is not queued (8)
Jun 10 15:25:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00010000
Jun 10 15:25:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1094656
Jun 10 15:25:03 sles10sp2 kernel: sd 6:0:0:0: SCSI error: return code = 0x00010000
Jun 10 15:25:03 sles10sp2 kernel: end_request: I/O error, dev sdd, sector 1211392
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:25:03 sles10sp2 multipathd: sdd: emc_clariion_checker: query command indicates error
Jun 10 15:25:03 sles10sp2 multipathd: checker failed path 8:48 in map 3600601609711200044e7cf4e0751de11
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)
Jun 10 15:25:03 sles10sp2 kernel: iscsi: cmd 0x12 is not queued (8)

Auch in diesem Test läuft der I/O nach einer kurzen Unterbrechung wieder weiter.

Der Status wird nun wie folgt angezeigt:

sles10sp2:~ # multipath -ll
sde: emc prio: query command indicates error
sdd: emc prio: query command indicates error
sdc: emc prio: query command indicates error
3600601609711200044e7cf4e0751de11 dm-0 DGC,RAID 10
[size=10G][features=1 queue_if_no_path][hwhandler=1 emc]
\_ round-robin 0 [prio=0][enabled]
 \_ 4:0:0:0 sde 8:64  [failed][faulty]
 \_ 6:0:0:0 sdd 8:48  [failed][faulty]
\_ round-robin 0 [prio=0][active]
 \_ 3:0:0:0 sdb 8:16  [active][ready]
 \_ 5:0:0:0 sdc 8:32  [failed][faulty]
sles10sp2:~ # 

Weitere Informationen

Weitere Informationen finden Sie in folgenden EMC Dokumenten, die für registrierte EMC Kunden über PowerLink abgerufen werden können:

  • 300-003-575.pdf (Native Multipath Failover Based on DM-MPIO for v2.6.x Linux Kernel and EMC® Storage Arrays)


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Communications / Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxCon, OSDC, OSMC, LinuxTag u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

SLES10 SP2 mit EMC iSCSI AX4-5i Multipathing Basiskonfiguration
VMware ESXi 3.5 mit EMC iSCSI AX4-5i Multipathing Konfiguration
YaST verliert Default Gateway bei der Konfiguration weiterer NICs