Multipathing-Übersicht
Ein Pfad ist eine Verbindung zwischen einem Server und dem zugrunde liegenden Speicher. Der Pfad kann aus vielen Gründen unterbrochen werden, wie z. B. fehlerhafter HBA, fehlerhaftes Kabel usw. Um solche Single Point of Failures zu vermeiden, existiert Multipathing. Multipathing stellt sicher, dass das System mehrere physische Pfade verwendet, um Redundanz und erhöhten Durchsatz bereitzustellen. Es gibt viele herstellerspezifische Multipathing-Implementierungen wie Powerpath von EMC und Symantecs VxDMP.
Was ist Device-Mapper-Multipath
Device Mapper Multipathing (oder DM-Multipathing) ist ein Linux-natives Multipath-Tool, mit dem Sie mehrere E/A-Pfade zwischen Serverknoten und Speicherarrays in einem einzigen Gerät konfigurieren können. Diese E/A-Pfade sind physische SAN-Verbindungen, die separate Kabel, Switches und Controller umfassen können. Multipathing aggregiert die E/A-Pfade und erstellt ein neues Gerät, das aus den aggregierten Pfaden besteht. Unabhängig von der verwendeten Herstellerhardware erstellt Device Mapper ein Blockgerät unter /dev/mapper/ für jede an das System angeschlossene LUN.
Device Mapper-Komponenten
Die wichtigen Komponenten von Device Mapper Multipathing sind:
Komponente | Beschreibung |
---|---|
dm-multipath | Kernel-Modul, das für das Treffen von Routing-Entscheidungen unter normalen/Fehlerbedingungen verantwortlich ist |
Mehrweg | Befehl zum Anzeigen/Auflisten von Multipath-Geräten und zur Erstkonfiguration |
multipathd | Daemon, der Pfade überwacht, fehlerhafte Pfade markiert, wiederhergestellte Pfade reaktiviert, Gerätedateien nach Bedarf hinzufügt/entfernt. |
kpartx | Befehl zum Erstellen von Device-Mapper-Einträgen für Partitionen auf Multipath-LUN. Es wird automatisch aufgerufen, wenn der Multipath-Befehl verwendet wird. |
So überprüfen Sie, ob DMMP installiert und konfiguriert ist
1. Prüfen Sie, ob Device-Mapper installiert ist.
# rpm -qa |grep device-mapper device-mapper-1.02.39-1.el5 device-mapper-multipath-0.4.7-34.el5 device-mapper-1.02.39-1.el5 device-mapper-event-1.02.39-1.el5
2. Überprüfen Sie, ob die folgenden Device-Mapper-Module geladen sind.
# lsmod |grep dm_multipath dm_multipath 56921 2 dm_round_robin scsi_dh 42177 2 scsi_dh_rdac,dm_multipath dm_mod 101649 11 dm_mirror,dm_multipath,dm_raid45,dm_log
3. Wenn obige Bedingungen erfüllt sind, überprüfen Sie, ob die Datei /etc/multipath.conf konfiguriert ist. Stellen Sie sicher, dass die fett gedruckten Zeilen auskommentiert sind, um die Gerätezuordnung zu aktivieren.
# This is a basic configuration file with some examples, for device mapper multipath ...... # Blacklist all devices by default. Remove this to enable multipathing # on the default devices. #blacklist { # devnode "*" #} ......
4. Überprüfen Sie, ob multipathd ausgeführt wird.
# /etc/init.d/multipathd status "multipathd (pid 11405) is running..."
5. Wenn ja, überprüfen Sie alle aufgelisteten Geräte mit dem folgenden Befehl.
# multipath -v2 or # multipath -ll mpath15 (3600a0b8000473abc0000bafc52fac127) dm-14 SUN,STK6580_6780 [size=10G][features=0][hwhandler=0][rw] _ round-robin 0 [prio=1][enabled] _ 8:0:0:2 sds 65:32 [active][ready] _ round-robin 0 [prio=0][enabled] _ 9:0:0:2 sdu 65:64 [active][faulty] mpath13 (3600a0b8000473abc0000bb74530aa7da) dm-12 SUN,STK6580_6780 [size=931G][features=0][hwhandler=0][rw] _ round-robin 0 [prio=1][enabled] _ 9:0:0:0 sdp 8:240 [active][ready] _ round-robin 0 [prio=0][enabled] _ 8:0:0:0 sdo 8:224 [active][faulty]
Wenn alle oben genannten Schritte erfolgreich sind, ist das System für DMMP konfiguriert.
Multipathing-Konfiguration
Bevor Sie mit der Konfiguration des Multipathing beginnen, vergewissern Sie sich, dass device-mapper-multipath Paket installiert ist. Falls nicht installiert, installieren Sie es mit yum :
# yum -y install device-mapper-multipath
Der Device Mapper Multipathing verwendet für die Konfiguration die Konfigurationsdatei /etc/multipath.conf. Wenn Sie Änderungen an dieser Datei vornehmen, wird die Datei multipath Der Befehl muss ausgeführt werden, um die Multipath-Geräte neu zu konfigurieren. Der einfachste Weg, diese Datei zu erstellen, ist die Verwendung von mpathconf Dienstprogramm. Wenn es eine vorhandene Konfigurationsdatei gibt, wird mpathconf diese bearbeiten, wenn keine solche Datei existiert, wird /usr/share/doc/device-mapper-multipath-*/multipath.conf kopiert .
# mpathconf --enable --with_multipathd y --with_chkconfig y
Die Konfigurationsdatei besteht aus den folgenden 5 Hauptabschnitten:
Abschnitt | Beschreibung |
---|---|
Standards | Standardkonfiguration auf Systemebene |
schwarze Liste | Geräte auf der schwarzen Liste. Geräte, die nicht unter DMMP konfiguriert werden sollten |
Blacklist_Exceptions | Ausnahmen von Geräten auf der schwarzen Liste |
Geräte | Einstellungen für einzelne Speichercontrollergeräte |
Mehrwege | Feinabstimmung der Konfiguration einzelner LUNs |
Überprüfen der Konfiguration
Der Multipath Befehl kann verwendet werden, um die Multipathinf-Konfiguration zu überprüfen. So listen Sie die Informationen über Multipath-Geräte auf:
# multipath -ll mpath0 (3600a0b8000473abc0000bafc52fac127) dm-14 SUN,STK6580_6780 [size=10G][features=0][hwhandler=0][rw] _ round-robin 0 [prio=1][enabled] _ 8:0:0:2 sds 65:32 [active][ready] _ round-robin 0 [prio=0][enabled] _ 9:0:0:2 sdu 65:64 [active][faulty]
Die Ausgabe zeigt eine Multipath-LUN, mpath0 . Die Zahl dahinter ist die WWID der LUN . Der Status aktiv/bereit zeigt an, dass der Pfad für E/A bereit ist. Wenn der Pfad fehlerhaft/fehlgeschlagen anzeigt dann muss es repariert werden, bevor es für E/A verwendet werden kann. Nachdem die Konfiguration abgeschlossen ist, können wir den multipathd persistent starten:
# /etc/init.d/multipathd start # chkconfig multipathd on
Benutzerfreundliche Gerätenamen
Für eine effiziente Fehlersuche kann der Device-Mapper so konfiguriert werden, dass er menschenlesbare, benutzerfreundliche Gerätenamen unter /dev/mapper hat anstatt die WWIDs zu verwenden. Die benutzerfreundlichen Namen wie /dev/mapper/mpath0 können durch Aktivieren der user_friendly_names erstellt werden Option in der Datei /etc/multipath.conf :
defaults { user_friendly_names yes }
Sie können auch den Namen für eine bestimmte LUN steuern, indem Sie die Alias-Option verwenden:
multipaths { multipath { wwid 3600a0b8000473abc0000bafc52fac127 alias mdisk001 } }
Multipath entfernen
Nachdem Sie alle Pfade für ein Multipath-Gerät entfernt haben, führen Sie den folgenden Befehl aus, um das Multipath-Gerät vollständig zu entfernen:
# multipath -f [device]
So leeren Sie alle Multipath-Geräte nach dem Stoppen des multipathd-Daemons:
# multipath -F