Massenspeicher ununterbrochen LWE Köln 2006 Heinz Mauelshagen Consulting Development Engineer LWE 2006
Massenspeicher ununterbrochen Grü nde für Un ver füg bar keit von Dat en LWE 2006 ● Geplante Unterbrechungen - zur Umkonfiguration von Massenspeichern (Dateisystem vergrößern) - Datensicherung - Festplattentausch (alt - > neu) ● Ungeplante Unterbrechungen - Hardwareausfälle (HBA, Kabel, Switch, Array-Kontroller, Festplatte) - Ausfall-/Reparaturzeit kostenintensiv!
Massenspeicher ununterbrochen Lösungen für Unverfügbarkeit von Daten LWE 2006 ● Hardware-Redundanz mit automatischem Failover und Recovery ● Hardware hotplugging für: - Online Reparatur (Austausch von Platten etc.) - Online Hinzufügen oder Rekonfiguration von Hardware ● Dateisystemvergrößerung zur Ausnutzung neuer Kapazität ● Applikations Pause, Daten-Snapshot, Applikations Resume: - Snapshots sind ein „eingefrorener“ Zustand eines Blockgerätes, wobei vollständiger Zugriff gegeben ist - Durchführung von Backups während die Applikation weiter genutzt wird
Massenspeicher ununterbrochen Das klingt teuer ? LWE 2006 ● Alles was Sie brauchen ist RHEL! - Multipath - Mirroring - Hot Plugging - Größenanpassbare Logical Volumes - Vergrößerbare Dateisysteme - Daten-Snapshots (Backups) ● Vollständig Hardware-neutrale Lösung - Sie können beliebige kompatible Hardware beliebiger Hersteller nutzen
Massenspeicher ununterbrochen Device Mapper (aka „dm“) LWE 2006 ● Ein allgemein nutzbares Subsystem zur Erzeugung logischer Blockgeräte: - spezifiziert Sektorbereiche, welche auf andere beliebige Blockgeräte „umgeleitet“ werden - konform zu Regeln, die in s.g. „Targets“ implementiert sind, z.B.: multipath, mirror, linear, striped, snapshot,... ● dm Geräte können aufeinander gestapelt werden, z.B.: - snapshot eines mirrors, dessen Komponenten multipath Geräte sind
Massenspeicher ununterbrochen Eine Beispielkonfigur ation LWE 2006 SAN 1 server hba 1 hba 2 SAN 2 RAID A cntrlr 1 cntrlr 2 RAID B cntrlr 1 cntrlr 2 SW mirror HW RAID
Massenspeicher ununterbrochen Ausfall des Pfades (Path) LWE 2006 ● Host Bus Adapter (HBA) ● Fibre Channel (FC) Kabel ● SAN (Storage Area Network) Switch ● Array-Kontroller
Massenspeicher ununterbrochen Ausfall HBA LWE 2006 SAN 1 server hba 1 RAID A cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen Ausfall FC Kabel LWE 2006 SAN 1 server hba 1 RAID A cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen Ausfall SAN Switch LWE 2006 SAN 1 server hba 1 RAID A cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen Ausfall Speicherkontroller LWE 2006 SAN 1 server hba 1 RAID A cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen Problem Pfadausfall gelöst: LWE 2006 ● Device Mapper wird genutzt, um einzelne Pfade zu virtuellen Multipath-Einheiten zu gruppieren ● IO kann verteilt erfolgen (s.g. Round-Robin) oder eine Failover-Konfiguration eingerichtet werden ● Neue/reparierte Pfade werden automatisch erkannt und genutzt ● Alle Multipath Parameter sind anpaßbar (Konfigurationsdatei)
Massenspeicher ununterbrochen LWE 2006 Multipath Konfiguration SAN 1 server hba 1 hba 2 SAN 2 RAID A cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen Womit arbeitet Multipath zusammen ? LWE 2006 ● Alle aktiv/aktiv Platten-Arrays ● Für aktiv/passiv Arrays: - ist ein Modul je Arraytyp erforderlich - EMC Clariion - HP MSA1000
Massenspeicher ununterbrochen Multipath Konfiguration LWE 2006 ● Start - Device Mapper Multipath RPM installieren - “blacklist” in Konfigurationsdatei anpassen - Daemon starten (erfolgt automatisch bei reboot) ● Multipath Gerät erstellen „multipath“ Kommando benutzen
Massenspeicher ununterbrochen „multipath“ Kommdo LWE 2006 ● multipath -v2 - konstuiert s.g. Maps verbose (detaillierte Information) ● multipath -ll - zeigt Topologie der Geräte an
Massenspeicher ununterbrochen Eine Multipath Map LWE 2006 ~]# multipath -ll mpath3 mpath3 (3600d bc edb8101) [size=58 GB][features="0"][hwhandler="0"] \_ round-robin 0 [prio=1][active] \_ 2:0:0:6 sdd 8:48 [active][ready] \_ round-robin 0 [prio=1][enabled] \_ 3:0:0:6 sdg 8:96 [active][ready] ● Sie sehen die WWID, Größe, Bus/LUN und die single Path Gerätenamen ● Das Beispiel zeigt Failover
Massenspeicher ununterbrochen Wie wird Array-Ausfall gehandhabt ? LWE 2006 SAN 1 server hba 1 hba 2 SAN 2 RAID A cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen Device Mapper Mirroring LWE 2006 SAN 1 server hba 1 hba 2 SAN 2 RAID A cntrlr 1 cntrlr 2 RAID B cntrlr 1 cntrlr 2 HW RAID SW mirror: /dev/vg1/lv1 zusammengesetzt aus: mpath0, mpath1
Massenspeicher ununterbrochen Logical Volume Manager (LVM) LWE 2006 ● Nutzt Device Mapper ● Kombiniert Physical Volumes (PVs) zu einem Speicherpool, der als Volume Group (VG) bezeichnet wird ● VGs können durch Hinzufügen weiterer PVs online wachsen bzw. durch Hinwegnehmen schrumpfen ● Logical Volumes (LVs) wird Speicherplatz aus der VG zugewiesen ● LVs können online in ihrer Größe verändert und zudem auch online verlagert werden PV VG PV LV
Massenspeicher ununterbrochen PVs initialisieren: LWE 2006 # pvcreate /dev/mapper/mpath[0-3] Physical volume "/dev/mapper/mpath0" successfully created... # pvs PV VG Fmt Attr PSize PFree /dev/mapper/mpath0 lvm2 a G 8.00M /dev/mapper/mpath1 lvm2 a G 8.00M /dev/mapper/mpath2 lvm2 a G M /dev/mapper/mpath3 lvm2 a G M
Massenspeicher ununterbrochen VG anlegen: LWE 2006 # vgcreate nv_group /dev/mapper/mpath[0-3] Volume group "nv_group" successfully created # vgs VG #PV #LV #SN Attr VSize VFree VolGroup wz--n G 64.00M nv_group wz--n G G
Massenspeicher ununterbrochen SW Mirror LV anlegen: LWE 2006 ● Ein “n-fach” Mirror Set besteht aus n+1 PVs; der zusätzliche Member ist ein Log-Volume ● Der Log unterteilt den Mirror in Regionen und „merkt“ sicht, welche Regionen zu synchronisieren sind ● Falls ein Ausfall erfolgt, wird der Mirror anhand der Log-Informationen resynchronisiert (falls der Log ausfällt, muss der Mirror komplett resynchronisiert werden) ● Um einen 2-Wege Mirror mit Log anzulegen: # lvcreate -m1 --size 39.05GB --name nv1 nv_group Rounding up size to full physical extent GB Logical volume "nv1" created
Massenspeicher ununterbrochen LWE 2006 SW Mirror LV anlegen: ● Mit “lvs -a” sehen wir: - Die beiden Mirror Member Volumes und den Log - Fortschritt der Resynchronisation # lvs -a LV VG LSize Log Copy% nv1 nv_group 97.00G nv1_mlog 5.03 [nv1_mimage_0] nv_group 97.00G [nv1_mimage_1] nv_group 97.00G [nv1_mlog] nv_group 4.00M # vmstat 1 procs memory io---- r b swpd free buff cache bi bo
Massenspeicher ununterbrochen LWE 2006 SW Mirror LV mounten: # mkfs -t ext3 /dev/nv_group/nv1 # mount /dev/nv_group/nv1 /mnt/testnv1/ # df Filesystem 1K-blocks Used Available Mounted on /dev/nv_group/nv /mnt/testnv1
Massenspeicher ununterbrochen LWE 2006 SW Mirror LV zu klein ? ● Jedem RAID-Kontroller eine „Platte“ hinzufügen SAN 1 server hba 1 hba 2 SAN 2 RAID A HW RAID cntrlr 1 cntrlr 2 RAID B cntrlr 1 cntrlr 2 SW mirror HW RAID HW RAID HW RAID HW RAID HW RAID
Massenspeicher ununterbrochen LWE 2006 Schritte zum Hinzufügen 1)Probing von hba1 und die neuen Pfade den neuen logischen Einheiten hinzufügen - evtl. ist ein HW scan erforderlich_ # echo 1 > /sys/class/fc_host/host1/issue_lip - anschließend den SCSI mid-layer scannen lassen: # echo "- - -" > /sys/class/scsi_host/host1/sca - /var/log/messages bzgl. Fortschritt anschauen: # tail -30 /var/log/messages (Multipath wird automatisch konfiguriert)
Massenspeicher ununterbrochen LWE 2006 Schritte zum Hinzufügen Oct 2 01:54 kernel: SCSI device sdj: Oct 2 01:54 kernel: SCSI device sdk: Oct 2 01:54 multipathd: sdj: path checker registered Oct 2 01:54 multipathd: sdk: path checker registered Oct 2 01:54 multipathd: mpath4: event checker started Oct 2 01:54 multipathd: mpath5: event checker started Oct 2 01:54:multipathd: mpath4: remaining active paths: 1 Oct 2 01:54 multipathd: mpath5: remaining active paths: 1
Massenspeicher ununterbrochen LWE 2006 Schritt 2: hba2 Pfade hinzufügen # echo 1 > /sys/class/fc_host/host2/issue_lip # echo "- - -" > /sys/class/scsi_host/host2/scan # tail -30 /var/log/messages... Oct 2 01:54 kernel: SCSI device sdl: Oct 2 01:54 kernel: SCSI device sdm: Oct 2 01:54 multipathd: sdl: path checker registered Oct 2 01:54 multipathd: sdm: path checker registered Oct 2 01:54 multipathd: mpath4: event checker started Oct 2 01:54 multipathd: mpath5: event checker started Oct 2 01:54:multipathd: mpath4: remaining active paths: 2 Oct 2 01:54 multipathd: mpath5: remaining active paths: 2
Massenspeicher ununterbrochen LWE 2006 Schritt 3: PVs preparieren, VG erweitern ● Jedes Multipath-Gerät für LVM-Nutzung initialisieren: # pvcreate /dev/mapper/mpath[45] ● PVs existierender VG hinzufügen: # vgextend nv_group /dev/mapper/mpath[45] Volume group "nv_group" successfully extended ● # vgs VG #PV #LV #SN Attr VSize VFree nv_group wz--n G G
Massenspeicher ununterbrochen LWE 2006 Schritt 4: Mirror LV vergrößern noch ● Leider können Mirror noch nicht aktiv vergrößert werden ● Also Mirror erst deaktivieren # umount /mnt/testnv1/ # lvchange -a n /dev/nv_group/nv1 ● Dann vergrößern: # lvextend -L 97GB /dev/nv_group/nv1 Extending 2 mirror images. Extending logical volume nv1 to GB
Massenspeicher ununterbrochen LWE Schritt: Dateisystem vergrößern ● Mirror LV reaktivieren: # lvchange -a y /dev/nv_group/nv1 # mount /dev/nv_group/nv1 /mnt/testnv1/ # df -h Filesystem Size Used Avail Use% Mounted on /dev/nv_group/nv1 39G 81M 37G 1% /mnt/testnv1 ● ext3 Dateisystem vergrößern: # ext2online /mnt/testnv1/ # df -h Filesystem Size Used Avail Use% Mounted on /dev/nv_group/nv1 96G 92M 91G 1% /mnt/testnv1
Massenspeicher ununterbrochen LWE 2006 LVM Snapshots ● Gestatten eine sofortige virtuelle Kopie eines LV - wenn sich Daten im Original ändern, werden die alten Daten zuerst im Snapshot LV preserviert: ● Lesen des Snapshot erfolgt (falls vorhanden) von den preservierten Daten, ansonsten vom originalen LV ● Schreiben des Snapshot ist möglich – Warnung: Snapshots eines Mirrored LV sind für ein zukünftiges Release geplant # lvcreate --size 1G --snapshot --name lv2-snap /dev/nv_group/lv2
Massenspeicher ununterbrochen LWE 2006 LVM Snapshots ● Das Snapshot LV muss nur groß genug sein, um die Änderungen während seiner Existenz aufnehmen zu können - “lvs” benutzen, um den Füllgrad des Snapshots zu prüfen_ # lvs LV LSize Origin Snap% lv2-snap G lv lvextend benutzen, um Kapazität hinzuzufügen
Massenspeicher ununterbrochen LWE 2006 Was passiert bei Ausfall des Servers ? SAN 1 server hba 1 hba 2 SAN 2 RAID A cntrlr 1 cntrlr 2 RAID B cntrlr 1 cntrlr 2 HW RAID
Massenspeicher ununterbrochen LWE 2006 GFS – der nächste Schritt! ● Server Redundanz – Multiple Systeme (Cluster-Nodes) können dasselbe LV zur selben Zeit lesend und schreibend zugreifen – GFS koordiniert die Zugriffe aller Cluster-Nodes ● Für mehr Information:
Massenspeicher ununterbrochen LWE 2006 GFS Beispiel SAN 1 server hba 1hba 2 SAN 2 RAID A cntrlr 1 cntrlr 2 RAID B cntrlr 1 cntrlr 2 SW mirror HW RAID server hba 1hba 2
Massenspeicher ununterbrochen LWE 2006 Zusammenfa ssung ● RHEL stellt die Möglichkeiten, HA Systeme aufzusetzen zur Verfügung: – Komplette Redundanz – Online Reparatur – Online Vergrößerung – Online Backup ● Alle Komponenten in das Betriebssystem integriert ● Kein Hardware lock-in
Massenspeicher ununterbrochen LWE 2006 Weitergehend e Informationen ● - Whitepapers - Training
Massenspeicher ununterbrochen LWE 2006 F&A