mdadm raid1 kann nicht erneut synchronisiert werden

mdadm raid1 kann nicht erneut synchronisiert werden

Ich versuche, dieses Problem zu lösen, das ich mit einem mdadm raid1 habe.

Ich habe einen Ubuntu 9.04-Server, der auf einem Software-RAID1 mit 2 Laufwerken und mdadm läuft. Gestern ist eines der Laufwerke ausgefallen, also habe ich es durch ein brandneues Laufwerk derselben Größe ersetzt. Ich habe das fehlerhafte Laufwerk entfernt, die Partition vom verbleibenden Laufwerk auf das neue Laufwerk kopiert und es dann zum RAID hinzugefügt. Es wurde erneut synchronisiert und das System funktionierte einwandfrei, bis das Laufwerk, das nicht ausgefallen war, ebenfalls als ausgefallen gekennzeichnet wurde.

Jetzt lief das Raid nur noch auf dem neuen Laufwerk. Also kaufte ich ein weiteres Laufwerk und wiederholte den obigen Vorgang. Jetzt hatte ich also zwei brandneue Laufwerke und das Raid wurde synchronisiert. Nach ein paar Minuten überprüfte ich jedoch /proc/mdstat und das Raid wurde nicht mehr synchronisiert.

mdadm --detail /dev/md1 zeigt: (sdb ist das erste neue Laufwerk und sdc ist das zweite neue Laufwerk)

root@dola:/home/jjaramillo# mdadm --detail /dev/md1 /dev/md1: Version: 00.90 Erstellungszeit: Samstag, 20. Dezember 2008, 00:42:05 Raid-Level: raid1 Array-Größe: 974711680 (929,56 GiB 998,10 GB) Verwendete Dev-Größe: 974711680 (929,56 GiB 998,10 GB) Raid-Geräte: 2 Gesamtgeräte: 2 Bevorzugtes Minor: 1 Persistenz: Superblock ist persistent

Update Time : Wed Jun  2 10:09:35 2010
      State : clean, degraded

Aktive Geräte: 1 Funktionierende Geräte: 2 Ausgefallene Geräte: 0 Ersatzgeräte: 1

       UUID : bba497c6:5029ba0b:bfa4f887:c0dc8f3d
     Events : 0.5395594

Number   Major   Minor   RaidDevice State
   2       8       35        0      spare rebuilding   /dev/sdc3
   1       8       19        1      active sync   /dev/sdb3

Ich habe ein paar Mal versucht, das Laufwerk zu entfernen und wieder hinzuzufügen, aber es passiert immer das Gleiche. Das RAID kann nicht erneut synchronisiert werden. Ich habe mir /var/log/messages angesehen und Folgendes gefunden:

2. Juni 07:57:36 dola kernel: [35708.917337] sd 5:0:0:0: [sdb] Nicht behandelter Sense-Code 2. Juni 07:57:36 dola kernel: [35708.917339] sd 5:0:0:0: [sdb] Ergebnis: hostbyte=DID_OK driverbyte=DRIVER_SENSE 2. Juni 07:57:36 dola kernel: [35708.917342] sd 5:0:0:0: [sdb] Sense-Schlüssel: Mittlerer Fehler [aktuell] [Deskriptor] 2. Juni 07:57:36 dola kernel: [35708.917346] Deskriptor-Sense-Daten mit Sense-Deskriptoren (in Hex): 2. Juni 07:57:36 dola kernel: [35708.917348] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 2. Juni 07:57:36 dola kernel: [35708.917357] 00 43 9e 47 2. Juni 07:57:36 dola kernel: [35708.917360] sd 5:0:0:0: [sdb] Add. Sense: Nicht behobener Lesefehler – automatische Neuzuweisung fehlgeschlagen

Es sieht also so aus, als ob es irgendeinen Fehler auf SDB (dem ersten neuen Laufwerk) gibt. Meine Frage ist, was wäre der beste Ansatz, um das RAID wieder zum Laufen zu bringen? Ich habe darüber nachgedacht, /dev/md1 per DD auf eine leere Festplatte zu übertragen, das RAID dann von Grund auf neu zu starten und die Daten wieder hochzuladen, aber es könnte eine einfachere Lösung geben.

Jede Hilfe wäre willkommen.

Antwort1

Sie sollten nicht versuchen, das neue Laufwerk auf sinnvolle Weise vorzubereiten, es sei denn, Ihre RAID-Bestandteile sind tatsächlich Festplattenpartitionen und keine Festplatten selbst. In diesem Fall würden Sie auf dem neuen Laufwerk eine Partition erstellen, die dieselbe Größe hat wie die auf der verbleibenden aktiven Festplatte.

Sie müssen das alte Laufwerk überhaupt nicht berühren – es gilt als defekt und unzuverlässig.

Das richtige Verfahren besteht darin, das defekte Laufwerk zu entfernen, ein neues, leeres Laufwerk hinzuzufügen und dann mdadm zu verwenden, um dieses neue Laufwerk dem Array hinzuzufügen. Sie würden es ungefähr so ​​machen:

mdadm --add /dev/md0 /dev/<newdrive>

Der Kernel synchronisiert dann das neue Laufwerk mit dem Array und kopiert die Daten vom letzten verbleibenden funktionierenden Laufwerk.

Antwort2

RE:

Ich habe das fehlerhafte Laufwerk entfernt, die Partition vom verbleibenden funktionierenden Laufwerk auf das neue Laufwerk kopiert und es dann zum RAID hinzugefügt.

Sie sollten Partitionen nicht selbst kopieren.

Sie müssen lediglich das neue Laufwerk in Ihr System einbauen und es mithilfe von mdadm zu Ihrer RAID-Gruppe hinzufügen.

Wenn Sie wirklich eine Kopie erstellt haben (also ein dd if=/dev/good_disk of=/dev/new_disk), haben Sie wahrscheinlich Raid-UUIDs oder etwas anderes kopiert, das mdadm wissen lässt, welche Festplatte welche ist, und dann kommt es zu Verwirrung.

Antwort3

Installieren Sie die neue Festplatte, partitionieren Sie sie wie von Tom O'Connor vorgeschlagen und reparieren Sie das Array anschließend mit mdadm. Siehe die Manpage von mdadm unter „Für den Verwaltungsmodus:“, Option --add:

mdadm /dev/md0 --add /dev/sda1 

Möglicherweise müssen Sie zuerst das erste Ersatzlaufwerk mit „--fail“ beenden.

verwandte Informationen