Überwachung des 3ware Controllers SAS9750-8i mit Nagios

Um den Status eines RAID bei einem 3ware Controller abzufragen, gibt es ein CLI Tool mit dem Namen tw_cli. Jonas Genannt war so nett und hat dazu ein paar Debian-Pakete gebaut, die auch unter Ubuntu laufen. Diese findet man auf der Webseite http://jonas.genannt.name/.

Die Ausgabe dieses CLI Tools kann man dann wiederum mit Nagios überwachen. Dadurch bekommt man sofort mit, wenn eine Festplatte ausfällt. Ich habe dazu das Nagios-Plugin check_3ware_raid_1_1 verwendet. Es gibt aber auch noch diverse andere.

Damit das Nagios-Plugin funktionierte, musste ich allerdings einen Softlink für das tw_cli im Verzeichnis der Nagios-Plugins anlegen und das Nagios Plugin mit sudo starten. Damit dies funktioniert, muss man in die Datei /etc/sudoers natürlich noch die folgende Zeile eintragen:

nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/check_3ware_raid_1_1

Erweitern eines Datenträgers unter Windows Server 2003, Windows XP und Windows 2000

Im Gegensatz zu Windows 2008 und Windows 2008R2 ist es bei älteren Windows Versionen nicht möglich Partitionen über die Datenträgerverwaltung zu erweitern. Dies geschieht hier über das Kommandozeilentool diskpart.exe. Wenn man in einer Eingabeaufforderung diskpart.exe eingibt, erscheint eine Shell. In dieser kann man sich mit dem Befehl list volume eine Liste der Datenträger anzeigen lassen. Wenn man den richtigen identifiziert hat, kann man diesen mit select volume auswählen und mit extend [size=n] [disk=n] [noerr] vergrößern. Dabei ist zu beachten, dass das Vergrößern nur funktioniert, wenn die Auslagerungsdatei nicht auf dem Datenträger liegt und das Betriebssystem nicht von dort gestartet wurde.

Nähere Informationen findet man bei Microsoft auf der Webseite unter dem folgenden Link: http://support.microsoft.com/kb/325590/de.

Oft möchte man aber bei einem älteren Windows 2003 Server eben genau die C-Partition mit dem Betriebssystem vergrößern, weil diese durch die ganzen Sicherheitsupdates inzwischen überläuft. Dank dem Blog root1024 habe ich dafür das Kommandozeilentool expart.exe von Dell entdeckt. Dieses Tool kann Systempartition (und natürlich auch andere Partitionen) einfach online (ohne Neustart) erweitern.

Linux: Austausch einer defekten Festplatte im Software-RAID

Der Status des Software RAID (Redundant Array of Independent Disks) wird bei Linux in der Datei /proc/mdstat festgehalten. Man kann sich den Status eines RAID also mit folgenden Befehl anzeigen lassen:

cat /proc/mdstat

Wenn z.B. die Festplatte /dev/sdb defekt ist, könnte die Ausgabe von wie folgt aussehen:

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath]
md2 : active raid1 sdb3[2](F) sda3[0]
730202368 blocks [2/1] [U_]
 
md1 : active raid1 sda2[0] sdb2[2](F)
264960 blocks [2/1] [U_]
 
md0 : active raid1 sdb1[1](F) sda1[0]
2102464 blocks [2/2] [U_]

Details über die einzelnen RAID Devices kann man sich mit dem Befehl mdadm anzeigen lassen. Wenn man die Details von md1 sehen möchte gibt man also den folgenden Befehl ein:

mdadm --detail /dev/md0

Bevor eine neue Festplatte verbaut wird, sollte jetzt zunächst die defekte Festplatte aus dem RAID entfernt werden.

mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md1 -r /dev/sdb2
mdadm /dev/md2 -r /dev/sdb3

Unter Umständen kann es sein, dass eine verwendete Festplatte teilweise defekt ist und sich nicht alle Devices im Status [U_] befinden, sondern einige Devices im Status [UU] sind. In diesem Fall schlägt der Befehl fehl, da das device in Ordnung ist. In diesem Fall müssen vorher die intakten Devices mit dem Befehl mdadm als defekt markiert werden. Wenn in unserem Beispiel das Device md1 noch intakt wäre, könnte man dies mit dem folgenden Befehl erreichen:

mdadm --manage /dev/md1 --fail /dev/sdb2

Danach kann die neue Festplatte verbaut werden. Wenn dies geschehen ist können Partitionierung und Bootsektor von der intakten Festplatte mit dem Befehl dd kopiert werden. Das kopieren der Partitionstabelle mit dd funktioniert nicht für extended-Partitionen, diese müssen von Hand angelegt werden. Da in unserem Beispiel keine extended-Partitionen vorkommen, könnte man mit dem folgenden Befehl Partitionierung und Bootsektor auf die neue Festplatte kopieren:

dd if=/dev/sda of=/dev/sdb count=1 bs=512

Die Partitionstabelle muss nun vom Kernel neu eingelesen werden.

sfdisk -R /dev/sdb

Zum Schluss müssen die Partitionen der neuen Festplatte noch in das RAID eingebunden werden:

mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2
mdadm /dev/md2 -a /dev/sdb3

Die neuen Partitionen sind somit Teil des Arrays und werden nun synchronisiert. Dieser Vorgang kann je nach Größe eine ganze Weile dauern. Mittels cat /proc/mdstat kann der Status der Synchronisation aufgerufen werden.

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath] 
md2 : active raid1 sdb3[2] sda3[0]
      730202368 blocks [2/1] [U_]
      [==>..................]  recovery = 11.7% (85713024/730202368) finish=143.8min speed=74694K/sec
 
md0 : active raid1 sdb1[2] sda1[0]
      2102464 blocks [2/1] [U_]
        resync=DELAYED
 
md1 : active raid1 sdb2[1] sda2[0]
      264960 blocks [2/2] [UU]
 
unused devices: <none>

Spezielle Routen für NetApp’s

Im HTTP-Managementinterface von NetApp kann man leider keine speziellen Routen eintragen. Um dennoch eine Route zu setzen, muss man über eine Telnet- oder SSH-Verbindung auf dem Filer in der Datei /etc/rc eine Zeile einfügen. Da es keinen Editor auf der NetApp gibt, muss diese Datei mit dem Befehl wrfile /etc/rc komplett überschrieben werden. Vorher sollte man sich diese Datei natürlich mit rdfile /etc/rc anzeigen lassen, um die alten Einstellungen übernehmen zu können (am besten dabei gleich eine Sicherheitskopie anfertigen). Nachdem man den Befehl wrfile /etc/rc eingibt erscheint ein Prompt, in das man die zuvor angezeigte und um eine Zeile erweiterte Datei eingibt und die Eingabe anschließend mit Str-C beendet. Danach sollte man die NetApp einmal neu starten und die Route sollte aktiv sein.

Im folgenden ein Beispiel der Datei /etc/rc. In dem Beispiel ist mit der roten Zeile eine spezielle Route für das Netzwerk 192.168.140.0 auf das Gateway 192.168.1.9 konfiguriert worden.

#Auto-generated by setup Mon Apr 26 10:11:50 CEST 2010
hostname netapp1
ifconfig e0a `hostname`-e0a mediatype auto flowcontrol full partner 192.168.1.45
ifconfig e0b `hostname`-e0b mediatype auto flowcontrol full partner 192.168.1.55
route add inet 192.168.140.0 192.168.1.9 1
route add default 192.168.1.10 1
routed on
options dns.domainname ohl.local
options dns.enable on
options nis.enable off
savecore