PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Raid wiederherstellen



galaxy
24.12.08, 10:14
Hallo,

ich habe einen Root- Server bei Hetzner mit einem selbst zusammengebauten Debian / Apache / Mysql. Ich Administriere das System in meiner Freizeit um
besseren Einblick in Linux zu erhalten (Windowskind).

Bis vor kurzem lief alles noch zufriedenstellend, bis ich vor ein paar Tagen folgende Fehlermeldung erhielt:

Security Events
=-=-=-=-=-=-=-=
Dec 20 20:51:49 localhost kernel: 3w-xxxx: scsi0: AEN: ERROR: Unit degraded: Unit #0.
Dec 20 20:51:49 localhost kernel: 3w-xxxx: scsi0: AEN: ERROR: Unit degraded: Unit #0.

System Events
=-=-=-=-=-=-=
Dec 20 20:51:49 localhost kernel: 3w-xxxx: scsi0: AEN: WARNING: ATA port timeout: Port #0.
Dec 20 20:51:49 localhost kernel: 3w-xxxx: scsi0: AEN: WARNING: ATA port timeout: Port #0.

Ok, ist ja Raid, hab ich mir gedacht, Anruf bei Hetzner, Platte wird getauscht.


Dec 23 17:31:04 localhost kernel: 3w-xxxx: scsi0: AEN: INFO: Rebuild started: Unit #0.
Dec 23 17:31:04 localhost kernel: 3w-xxxx: scsi0: AEN: INFO: Rebuild started: Unit #0.

Aber dann:

Dec 23 18:51:28 localhost kernel: 3w-xxxx: scsi0: AEN: ERROR: Drive error: Port #1.
Dec 23 18:51:28 localhost kernel: 3w-xxxx: scsi0: AEN: ERROR: Rebuild failed: Unit #0.
Dec 23 18:51:28 localhost kernel: 3w-xxxx: scsi0: AEN: ERROR: Drive error: Port #1.
Dec 23 18:51:28 localhost kernel: 3w-xxxx: scsi0: AEN: ERROR: Rebuild failed: Unit #0.

/tw_cli info c0 u0 liefert:


u0 RAID-1 DEGRADED - - - - 149.05
u0-0 DISK DEGRADED - - p0 - 149.05
u0-1 DISK OK - - p1 - 149.05


Ich bin jetzt etwas verwirrt. Ich verstehe das so, daß es beim Rebuild von Port 0 einen Driver Error auf Port 1 gegeben hat, d.h. auch die erste, nicht getauschte Platte einen Defekt aufweist.

Beim erstellen des Panikbackups ist mir dann auch aufgefallen, daß eine Datei
in /var/log beim Lesen IO - Fehler produziert.

Da ich noch wenig Erfahrung mit Partitionen (und vorallem mit Raid) habe würde ich gerne wissen, wie ich Eurer Meinung nach vorgehen sollte.

Ich habe mir folgendes Überlegt:
1. (Irgendwie) komplettes Image von Port 1 machen
2. Platte an Port 1 von Hetzner tauschen lassen
3. Image (irgendwie) wieder einstellen.
4. Rebuild erneut anstossten.

Liege ich da sehr daneben?

Für alle Antworten im Voraus dankbar!

FLOST
24.12.08, 11:13
Hallo und willkommen!



ich habe einen Root- Server bei Hetzner mit einem selbst zusammengebauten Debian / Apache / Mysql. Ich Administriere das System in meiner Freizeit um
besseren Einblick in Linux zu erhalten (Windowskind).


Ein Root-Server ist kein Spielzeug und schon gar nicht dazu geeignet Linux kennenzulernen. Entsprechend werden die Kommentare hier ausfallen *popcornhol*

Zu deinem Problem: Wie hast du das Raid erstellt? Was hast du vor dem "Crash" gemacht? Ist dein System auf dem neuesten Stand (SW technisch)?

Wenn keine wichtigen Daten drauf sind, mach das System platt und installiere es neu. Allerdings mach dich vorher schlau über die SW, die du einsetzt. Auch über Raid, dessen Wartung etc. Aber am besten (günstiger für dich und sicherer für andere) wäre es wohl, wenn du den Root Kündigst (hast eh nur einen Monat Kündigungsfrist) und dich erstmal zuhause an einem Rechner mit Linux spielst, bis du dir soweit sicher damit bist, dass du dich sicher ins Internet wagen kannst.

zyrusthc
24.12.08, 14:08
Was ist das überhaupt für ein RAID? SW oder HW?

Greeez Oli

Sebastian Henrich
24.12.08, 15:51
Das ist ein Hardware RAID an einem 3ware (http://www.3ware.com/) Controller.

Nun zu deinen Fragen:


Ich bin jetzt etwas verwirrt. Ich verstehe das so, daß es beim Rebuild von Port 0 einen Driver Error auf Port 1 gegeben hat, d.h. auch die erste, nicht getauschte Platte einen Defekt aufweist.


Mir fallen 3 Gründe für für diesen Fehler ein.

Hetzner hat beim Austausch einen Fehler gemacht
Die 2. Festplatte ist auch defekt, der Controller hatte es aber noch nicht bemerkt
Auf der Platte existieren "logische Fehler". Es gibt eine Option bei der Wiederherstellung des RAIDs, mit der solche Fehler ignoriert werden.


Beim erstellen des Panikbackups ist mir dann auch aufgefallen, daß eine Datei
in /var/log beim Lesen IO - Fehler produziert.

Ohne den genauen Wortlaut der Fehlermeldung zu kennen ist es zwar nur eine Mutmaßung, aber ich denke du hast versucht Dateien zu sichern, die noch im Zugriff waren, was im Verzeichnis /var/log (dort liegen alle Logdateien) durchaus häufig vorkommt.


Da ich noch wenig Erfahrung mit Partitionen (und vorallem mit Raid) habe würde ich gerne wissen, wie ich Eurer Meinung nach vorgehen sollte.


Wie einer meiner Vorposter schon sagte, dann ist ein Root-Server sicher nicht das richtige Spielzeug um das zu lernen. Ich empfehle dir daher zumindest ein Linux in einer virtuellen Maschine bei dir zu Hause zu installieren, an dem du Dinge testen kannst, ehe du sie auf dem Root-Server ausprobierst.


Ich habe mir folgendes Überlegt:
1. (Irgendwie) komplettes Image von Port 1 machen

Dazu musst du die Festplatte ausbauen und in einen anderen Rechner einbauen. Ich vermute du hast ein RAID 1 (http://de.wikipedia.org/wiki/RAID#RAID_1:_Mirroring_.E2.80.93_Spiegelung) konfiguriert. Falls du an die Festplatte kommst, kannst du deine Daten wiederherstellen. Das Ondisk-Format eines 3ware RAID 1 ist nicht sonderlich spektakulär. Am Anfang der Festplatte liegen ein paar Byte RAID-Konfigurationsdaten, dann kommt ein ganz normaler Master Boot Record und die Partitionen. Um deine Daten auszulesen brauchst du aber Kenntnisse über Loop-Devices und wie man damit umgeht. Außerdem bezweifele ich, dass dir Hetzner die defekte Platte zuschickt.

2. Platte an Port 1 von Hetzner tauschen lassen
Ist sicherlich sinnvoll da auch defekt. Eventuell hat es auch den Controller erwischt.

3. Image (irgendwie) wieder einstellen.
4. Rebuild erneut anstossten.

Du müsstest dann die Images welche du unter 1. von den Partitionen erzeugt hast wieder auf das neu eingerichtete RAID 0 zurück spielen. Ein Rebuild ist dann nicht erforderlich.


Liege ich da sehr daneben?

Ich habe das ganze schon hinter mir, da ich in meinem Server selbst mal die falsche Festplatte ausgetauscht habe (Man sollte die Aufkleber schon richtig aufkleben). Allerdings steht der Server bei mir und nicht in einem Rechenzentrum wo ich nicht dran kann. Ich schlage dir daher vor, deine Daten mittels tar zu sichern und auf deinen PC herunter zu laden, die Festplatte austauschen und das System von Hetzner neu aufsetzten zu lassen. Beim Sichern deiner Daten brauchst du kein Vollbackup zu machen, sondern nur die Daten zu sichern, welche du auf den Server kopiert hast inkl. eventuell vorhandener Datenbanken und E-Mails.

Poste bitte mal die Ausgabe von
tw_cli show. Der Befehl liefert das Controller Modell.

galaxy
24.12.08, 21:31
vielen Dank für Eure Antworten!

Ich weiss, daß ein Root- Server kein "Spielzeug" ist, ich beschäftige mich auch seit über einem Jahr mit Absicherungsmassnahmen (Logcheck, fail2ban, etc) und überwache die Logfiles täglich (Ausserdem bin ich ziemlich paranoid :) ).

Ich arbeite schon zwei Jahre mit Linux und noch ein gutes Stück länger mit
Windows, habe also einen Überblick über die Konzepte (und die Gefahren).

Ein Raid habe ich wie gesagt noch nicht selbst eingerichtet.

Ich würde gerne darauf verzeichten, daß System neu aufzusetzen, da mich die korrekte Konfiguration sicherlich Wochen kostet, die ich momentan nicht habe. Das System läuft ja eigentlich auch super, nur die Hardware macht zicken. Ausserdem weiss ich, daß ich die verwendete Postfix / Mysqlauth Lösung mit der aktuellen Postfix Version komplett neu entwicklen müsste...


Ohne den genauen Wortlaut der Fehlermeldung zu kennen ist es zwar nur eine Mutmaßung, aber ich denke du hast versucht Dateien zu sichern, die noch im Zugriff waren, was im Verzeichnis /var/log (dort liegen alle Logdateien) durchaus häufig vorkommt.

Es handelt sich um die access.log eines VHosts. Apache war zum Zeitpunkt des kopierens heruntergefahren. Die Fehlermeldung beim kopieren lautete:

cp: reading `access.log': Input/output error

Diese Meldungen werden beim kopieren im Kernel.log ausgegeben:


Dec 24 20:36:27 localhost kernel: 3w-xxxx: scsi0: Command failed: status = 0xc7, flags = 0x40, unit #0.
Dec 24 20:36:59 localhost last message repeated 4 times
Dec 24 20:36:59 localhost kernel: scsi0: ERROR on channel 0, id 0, lun 0, CDB: Read (10) 00 0e 36 77 d5 00 00 40 00
Dec 24 20:36:59 localhost kernel: Info fld=0x0, Current sda: sense key Medium Error
Dec 24 20:36:59 localhost kernel: Additional sense: Unrecovered read error
Dec 24 20:36:59 localhost kernel: end_request: I/O error, dev sda, sector 238450645
Dec 24 20:37:07 localhost kernel: 3w-xxxx: scsi0: Command failed: status = 0xc7, flags = 0x40, unit #0.
Dec 24 20:37:43 localhost kernel: 3w-xxxx: scsi0: Command failed: status = 0xc7, flags = 0x40, unit #0.
Dec 24 20:37:43 localhost last message repeated 3 times
Dec 24 20:37:43 localhost kernel: scsi0: ERROR on channel 0, id 0, lun 0, CDB: Read (10) 00 0e 36 77 e5 00 00 08 00
Dec 24 20:37:43 localhost kernel: Info fld=0x0, Current sda: sense key Medium Error
Dec 24 20:37:43 localhost kernel: Additional sense: Unrecovered read error
Dec 24 20:37:43 localhost kernel: end_request: I/O error, dev sda, sector 238450661


Der Versuch ein Tar der Daten mit

tar -cvp --numeric-owner --exclude=/sys/ --exclude=/proc/ --exclude=/tmp/ --exclude=/var/log/ --exclude=/home/backup.tar -f /home/backup.tar /
zu erstellen schlug leider fehl: "Error exit delayed from previous errors".

Mit dieser Methode scheint nicht alles kopiert zu werden, ich erhalte
in der Fehlerausgbabe massenweise:

File shrank by 4094 bytes; padding with zeros
allerdings alle in /sys, /proc (bis auf die bereits erwähnte access.log in /var/log). Kann ich davon ausgehen, daß die Dateien OK sind aber
wegen einer Reservierungsgeschichte des FS grösser angegeben wurden?

Muss ich wirklich die Platte physikalisch hier haben um ein Image zu erstellen daß ich später wieder aufspielen kann? Kann ich da nicht über das Notfallsystem etwas machen? Ich dachte mit DD sollte das kein Problem sein, habs auber auch nocht nicht gemacht.


Die Ausgabe von cl_wi show ist:

Ctl Model (V)Ports Drives Units NotOpt RRate VRate BBU
------------------------------------------------------------------------
c0 8006-2LP 2 2 1 1 2 - -




Du müsstest dann die Images welche du unter 1. von den Partitionen erzeugt hast wieder auf das neu eingerichtete RAID 0 zurück spielen. Ein Rebuild ist dann nicht erforderlich.
Das Verstehe ich nicht ganz. Meinst Du das es ausreicht die Daten wieder zu kopieren, um sie dann schon gespiegelt zu haben? Ich sehe, ich werde mich über die Feiertage mit RAID beschäftigen :)


Ich hoffe das liest Heute keiner mehr ;)
und wünsche Euch geruhsame Feiertage

Sebastian Henrich
25.12.08, 01:57
Ich kenne die Konfigurationen von Hetzner nicht und weiß daher nicht ob sie ein Notfallsystem anbieten, welches es erlaubt auf die Festplatten eines Servers zuzugreifen ohne das darauf installierte System zu starten. Falls sie ein solches System anbieten benötigst du noch ca.160 GB Backup-Space. Dann startest du das Notfallsystem und fertigst von dort aus ein Image des RAID-Verbunds an. Ich vermute aber, dass du da jede Menge Fehler bekommst und kein komplettes Image erstellt werden kann. Dann lässt du die defekte Festplatte austauschen und spielst dann ebenfalls mit dem Notfallsystem das Image wieder zurück.

Falls das nicht klappt, bleibt nur die Möglichkeit, dass dir Hetzner die defekte Festplatte schickt. Der Artikel (http://www.rackblogger.de/2008/05/21/3ware-raid-offline-verwenden/) beschreibt dann das weitere Vorgehen.

Hier noch ein paar Informationen zu deinem RAID im Allgemeinen. Du hast einen Hardware RAID-Controller in deinem Server. An diesem Controller sind 2 Festplatten angeschlossen. Das Betriebssystem sieht allerdings nur eine ca. 150 GB große Festplatte, da du ein RAID 1 (Spiegelung) konfiguriert hast. Das bedeutet, dass der RAID-Controller alle Daten immer auf beide Festplatten schreibt. Im Idealfall kann so eine Festplatte ausfallen ohne das Daten verloren gehen. Jeder RAID-Controller hat dabei sein eigenes Ondisk-Format, sprich jeder RAID-Controller organisiert die Daten auf den Festplatten auf seine eigene Art und Weise. Dies hängt auch von dem gewählten RAID-Level ab. Wenn du über den RAID-Controller auf die Festplatten zugreifst bekommst du die Verwaltungsstrukturen des Ondisk Formats nicht zu Gesicht. Schließt du dagegen eine Festplatte aus einem solchen RAID-Verbund an einen normalen SATA-Controller an, bekommst du auch die Verwaltungsstrukturen zu Gesicht.

Ich hoffe ich konnte dir weiterhelfen und du weißt wo du ansetzten kannst.

Sebastian

galaxy
02.01.09, 10:00
Hallo,

nochmals vielen Dank für die Antworten, ich habe das Problem jetzt lösen können.

Leider war der Controller betroffen, weswegen nach dem ersten Tausch die zweite Platte auch direkt Fehler meldete.

Das Vorgehen war also:
1. Kontroller tauschen lassen.
1. kompletter Backup mit TAR.
2. Festplatten tauschen lassen (beide)
3. Einspielen des Backups (Raid wurde beim Wechsel der Festplatten schon Aufgebaut)
4. Bootmanager etc, etc.

Das System läuft seither ohne Problem.

Vielen Dank nochmal, ich hoffe ich kann hier auch die eine oder andere Frage beantworten um mich zu revangieren.