MegaRAID HW-Controller mit Ubuntu überwachen
Anstelle unserer Standard ionas-Server im Towergehäuse verlangen Kunden regelmäßig nach einem Server im Rack-Format. Um diesen Wunsch nach besserer oder leistungsfähigerer Hardware nachzukommen, kamen bei unseren Kunden bisher immer Terra-Server der 4000er oder 7000er Serie zur Anwendung. Bei diesen Kraftprotzen ist eine MegaRAID-Controller-Karte vom Typ SAS 9361 8i bereits verbaut. Natürlich wäre es Schwachsinn wie gewohnt die Festplatten per Software-Raid zu betreiben, wenn so ein feines Stück Hardware vorhanden ist.
Eine Ubuntu-Server Standardinstallation kann zwar mit diesem Controller nicht sofort sprechen, aber an sich ist die Installation der Treiber und Überwachungssoftware denkbar einfach. Leider findet man im Internet dafür jedoch keine Anleitung. Wir zeigen Ihnen in diesem Artikel, wie Sie in wenigen Minuten den Hardware Raid Controller überwachen und monitoren können.
Schritt 1: Gerät eindeutig identifizieren
Als erstes muss man den Raid-Controller eindeutig identifizieren. Mit dem folgendem Kommando, welches Sie auf der Kommandozeile des Servers ausführen, erhalten Sie schnell die ersten Informationen zum gefunden Controller-Chip:
lspci | grep Mega
Der Befehl liefert Ihnen den erkannten Raid-Controller-Chip. In Falle der Terra-Server lautet die Ausgabe typischerweise so:
05:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)
Wenn Sie nach diesem Chipsatz auf Google suchen, landen Sie auf der Webseite von Avago. Sie finden zwar viele Informationen zum Chip, jedoch keine Treiber- und Software-Downloads – die findet man nämlich nicht beim Chipsatz sondern bei der konkreten Controllerkarte. Schauen Sie deshalb in der Produktbeschreibung Ihres Servers nach, um die genaue Bezeichnung Ihrer Raid-Controllerkarte zu erhalten. Alternativ können Sie einen Monitor an den Server anschließen und die genaue Beschreibung des Karte während des Boot-Vorgangs vom Bildschirm ablesen.
Bei den Terra-Servern ist es die MegaRAID SAS 9361 8i, welche wir im folgenden Artikel unter der Servervariante von Ubuntu 14.04 installieren wollen. Zur Sicherheit kontrolliert Sie am Besten auf der Seite von Avago, dass der Chipsatz dieser Raid-Controller-Karte auf der ermittelten Karte verwendet wird.
Schritt 2: Treiber und Überwachungssoftware für MegaRAID SAS 9361 8i herunterladen
Als Erstes laden Sie die Treiber und die Überwachungssoftware für die MegaRAID herunter. Auf der Downloadseite von Avago Technologies zeigt sich, der hervorragende Treibersupport des Herstellers.
Sie benötigen nun zwei Dateien:
- Driver -> MR_LINUX_DRIVER_6.11-06.811.02.00-3
- Management Software und Tools -> Latest MegaRAID StorCLI
Leider befinden sich hinter den Download-Icons auf der Seite von Avago Technologies keine direkten Links, sondern nur Umleitungen auf die Dateien. Dies verhindert einen direkten Download per wget vom Server. Somit lädt man sich die Dateien auf den eigenen Rechner und überträgt die Dateien nach dem erfolgreichen Download per SCP oder per Samba-Netzlaufwerk auf den Server.
Schritt 3: Treiber und Raid-Controller-Software installieren
Als nächstes loggen Sie sich auf dem Server auf der Kommandozeile ein. Nun entpacken und installieren Sie zuerst den Treiber mit dem folgenden Befehl: Hinweis: die .tar-Datei entpackt sich direkt ins aktuelle Verzeichnis und legte viele neue Ordner an. Verschieben Sie deshalb die Dateien vorher in eine eigenes Verzeichnis.
mkdir avago mv MR_LINUX.* ./avago cd ./avago tar xvfz MR_LINUX.* cd ./ubuntu/rpms-2 sudo dpkg -i megaraid_sas_06.811.02.00-2-ubuntu14.04_x86_64.deb
Als Ergebnis sollten Sie dann die folgende Ausgabe erhalten:
post Install Done
Ihr Ubuntu hat nun die notwendigen Treiber für den Raid-Controller im System, jedoch fehlt es noch an einer Software, die detaillierte Statusinformationen des Raid-Controllers liefern kann. Deshalb kommt nun die Installation des storcli Pakets an die Reihe. strocli steht für Storage Command Line Tool und liefert später die gewünschten Statusinformationen von Ihrem Raidcontroller.
Entpacken Sie die zip-Datei mit den folgenden Befehlen:
unzip 1.19.04_StorCLI.zip cd ./storcli_all_os/Ubuntu sudo dpkg -i storcli_1.19.04_all.deb
Das Ergebnis dieser Befehle sollte lauten:
"Setting up storcli (1.19.04) ..."
Schritt 4: Die Ausgabe von storcli prüfen
Nun kontrollieren Sie, ob storcli richtig installiert wurde. Tippen Sie dafür den folgenden Befehl auf der Kommandozeile ein:
sudo /opt/MegaRAID/storcli/storcli64 version
Das Ergebnis sollte ungefähr so aussehen. Natürlich kann es Abweichungen bei der Version oder dem Datum geben:
root@ionas-server1:/home/ionas# /opt/MegaRAID/storcli/storcli64 version Storage Command Line Tool Ver 1.19.04 Feb 01, 2016 (c)Copyright 2015, AVAGO Corporation, All Rights Reserved.
Diese Ausgabe bestätigt Ihnen, dass das Tool Storage Command Line richtig installiert wurde. Nun sind alle Voraussetzungen erfüllt, dass Sie den Raid-Controller überwachen können.
Um Ihnen ein Gefühl für die Mächtigkeit von storcli zu geben, tippen Sie bitte den folgenden Befehl auf der Kommandozeile ein.
"sudo /opt/MegaRAID/storcli/storcli64 /c0 show"
Der Befehl liefert Ihnen eine riesige Fülle an Informationen zu Ihrem Raid-Controller. Hier die beispielhafte Ausgabe unseres Raid-Controllers.
Generating detailed summary of the adapter, it may take a while to complete. Controller = 0 Status = Success Description = None Product Name = AVAGO MegaRAID SAS 9361-4i Serial Number = SK60501831 SAS Address = 500605b000acfc60 PCI Address = 00:05:00:00 System Time = 07/11/2016 10:26:29 Mfg. Date = 02/03/16 Controller Time = 07/11/2016 08:26:26 FW Package Build = 24.15.0-0016 BIOS Version = 6.31.03.0_4.17.08.00_0x06140200 FW Version = 4.650.00-6121 Driver Name = megaraid_sas Driver Version = 06.803.01.00-rc1 Vendor Id = 0x1000 Device Id = 0x5D SubVendor Id = 0x1000 SubDevice Id = 0x9363 Host Interface = PCI-E Device Interface = SAS-12G Bus Number = 5 Device Number = 0 Function Number = 0 Drive Groups = 1 TOPOLOGY : ======== --------------------------------------------------------------------------- DG Arr Row EID:Slot DID Type State BT Size PDC PI SED DS3 FSpace TR --------------------------------------------------------------------------- 0 - - - - RAID1 Optl N 3.637 TB dflt N N dflt N N 0 0 - - - RAID1 Optl N 3.637 TB dflt N N dflt N N 0 0 0 252:0 4 DRIVE Onln Y 1.818 TB dflt N N dflt - N 0 0 1 252:1 7 DRIVE Onln Y 1.818 TB dflt N N dflt - N 0 0 2 252:2 5 DRIVE Onln Y 1.818 TB dflt N N dflt - N 0 0 3 252:3 6 DRIVE Onln Y 1.818 TB dflt N N dflt - N --------------------------------------------------------------------------- DG=Disk Group Index|Arr=Array Index|Row=Row Index|EID=Enclosure Device ID DID=Device ID|Type=Drive Type|Onln=Online|Rbld=Rebuild|Dgrd=Degraded Pdgd=Partially degraded|Offln=Offline|BT=Background Task Active PDC=PD Cache|PI=Protection Info|SED=Self Encrypting Drive|Frgn=Foreign DS3=Dimmer Switch 3|dflt=Default|Msng=Missing|FSpace=Free Space Present TR=Transport Ready Virtual Drives = 1 VD LIST : ======= ------------------------------------------------------------- DG/VD TYPE State Access Consist Cache Cac sCC Size Name ------------------------------------------------------------- 0/0 RAID1 Optl RW No RWTD - ON 3.637 TB ------------------------------------------------------------- Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded Optl=Optimal|RO=Read Only|RW=Read Write|HD=Hidden|TRANS=TransportReady|B=Blocked| Consist=ConsistentR=Read Ahead Always|NR=No Read Ahead|WB=WriteBack| AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled Check Consistency Physical Drives = 4 PD LIST : ======= ----------------------------------------------------------------------- EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp ----------------------------------------------------------------------- 252:0 4 Onln 0 1.818 TB SAS HDD N N 512B HUS724020ALS640 U 252:1 7 Onln 0 1.818 TB SAS HDD N N 512B HUS724020ALS640 U 252:2 5 Onln 0 1.818 TB SAS HDD N N 512B HUS724020ALS640 U 252:3 6 Onln 0 1.818 TB SAS HDD N N 512B HUS724020ALS640 U ----------------------------------------------------------------------- EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded CFShld-Configured shielded|Cpybck-CopyBack|CBShld-Copyback Shielded.
Natürlich lässt sich die Ausgabe durch die Angabe weitere Parameter auf ein besseres Maß reduzieren. So interessiert uns natürlich im ersten Schritt, ob das RAID zuverlassig funktioniert. Für diese Information genügt der folgende Befehl, der nur den Zustand des virtuellen Laufwerks anzeigt:
sudo /opt/MegaRAID/storcli/storcli64 /c0/v0 show
Im gezeigten Output ist entscheidend der Status, welcher umbedingt Optl sein muss. Jeder andere Wert bedeutet, dass das Raid nicht mehr den gewünschten Zustand hat.
Automatische Raidüberwachung
Nun stellt sich natürlich die Frage: “Was bringt ein RAID-System, wenn man nicht über einen Ausfall informiert wird?” Auf dem ionas-Server lassen wir das RAID täglich per Cronjob überwachen und verschicken eine Benachrichtigung, wenn der RAID-Status nicht mehr Optl. ist. Natürlich sind die Prüfungen auf dem ionas-Server etwas umfangreicher, aber in Summe ist es nicht mehr als ein Script, welches die Ausgabe von storcli nach dem Wort Optl durchsucht und eine Benachrichtigung verschickt, wenn es weniger als zwei Mal vorkommt. (Einmal in der Statusanzeige und einmal in der Legende.)
Hier finden Sie eine beispielhafte Überwachung per Bash-Script:
#!/bin/bash OUTPUT=`/opt/MegaRAID/storcli/storcli64 /c0/v0 show` #echo $OUTPUT OPTL_COUNT=`echo $OUTPUT | grep -o "Optl" | wc -l` #echo $OPTL_COUNT if [[ $OPTL_COUNT -lt 2 ]]; then echo "RAID-Status kritisch!" echo "Jetzt müsste eine E-Mail verschickt werden !!!" else echo "RAID-Status optimal!" echo "Dann gehe ich mal wieder schlafen..." fi
Fazit
Ein Festplatten-RAID kommt praktisch in jedem Serversystem vor. Leistungsfähige Server verfügen über einen eigenen Hardware-Raid-Controller, bei Einsteigerservern kommt häufiger ein Software-Raid zum Einsatz.
Während man den Status eines Software-Raid mit “cat /proc/mdstat” ganz einfach abrufen kann, muss ein Hardware-Raid Controller anders überwacht werden. Doch auch die Überwachung von Hardware-Raids ist, wie Sie in diesem Artikel gesehen haben, kein Hexenwerk.
Dabei sollten Sie die Überwachung des Raids nicht auf die leichte Schulter nehmen. Immer wieder finden wir bei unseren Kunden alte Serversysteme, bei denen schon vor Monaten eine Festplatte ausgefallen ist und niemand davon etwas mitgekriegt hat. Die Daten sind in diesem Moment in höchster Gefahr und man sollte sich fragen, wieso man Festplattenplatz für die redundante Speicherung verschwenden sollte, wenn man keine zusätzliche Sicherheit durch die Redundanz erhält.
Wir hoffen, dass Ihnen dieser Artikel weitergeholfen hat und freuen uns, wenn Sie uns mit uns Ihre Erfahrungen teilen.