Raid 5 ist nach dem Ersetzen einer Festplatte kaputt

Raid 5 ist nach dem Ersetzen einer Festplatte kaputt

Mein Server hat mir per E-Mail mitgeteilt, dass eine meiner Festplatten einen Block nicht lesen konnte. Also beschloss ich, sie zu ersetzen, bevor sie komplett ausfiel. Ich fügte eine neue Festplatte hinzu und ersetzte die defekte.

sudo mdadm --manage /dev/md0 --add /dev/sdg1
sudo mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/dbg1

Nach der Synchronisierung wollte ich das fehlgeschlagene /dev/sdb1 entfernen und habe es mit folgendem Befehl aus dem Array entfernt:

sudo mdadm --manage /dev/md0 --remove /dev/sdb1

aber wenn ich die Festplatte aus dem Gehäuse nehmen will, entferne ich zuerst zwei andere, setze sie aber sofort wieder ein. Danach prüfe ich, ob mein Raid noch funktioniert, und das tat es nicht. Ich habe versucht, neu zu starten, in der Hoffnung, dass es sich selbst repariert. In der Vergangenheit war das nie ein Problem, aber ich habe auch nie eine Festplatte ausgetauscht.

Nachdem dies nicht funktionierte, habe ich nachgeschaut was zu tun ist und versucht die CD erneut einzulegen, was aber nichts half, auch das Zusammensetzen klappte nicht:

sudo mdadm --assamble --scan

erkennt nur 2 Festplatten, also habe ich versucht, ihm den Namen der Festplatten mitzuteilen

sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1

aber sag mir, dass alle Festplatten belegt sind:

sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1 
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is busy - skipping
mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sdc1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping

sdg1 erhält sdf1 nach dem Neustart.

mdstat scheint die Datenträger korrekt zu erkennen (ich habe sdb1 in der Hoffnung, dass es hilft, erneut eingefügt und es mit und ohne versucht):

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : inactive sdd1[3](S) sdb1[1](S) sdc1[2](S) sda1[0](S) sdf1[4](S)
      14650670080 blocks super 1.2
       
unused devices: <none>

Wenn ich nur die Festplatten abfrage /dev/sda1, /dev/sdf1wird mir der gleiche Array-Status angezeigtAA..

sudo mdadm --query --examine /dev/sda1 
/dev/sda1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
           Name : lianli:0  (local to host lianli)
  Creation Time : Sat Oct 29 18:52:27 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : 3e912563:b10b74d0:a49faf2d:e14db558

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Jan  9 10:06:33 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : c7d96490 - correct
         Events : 303045

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdd1 
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
           Name : lianli:0  (local to host lianli)
  Creation Time : Sat Oct 29 18:52:27 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : bf303286:5889dc0c:a6a1824a:4fe1ae03

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Jan  9 10:05:58 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : ef1f16fd - correct
         Events : 303036

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AA.A ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdc1 
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
           Name : lianli:0  (local to host lianli)
  Creation Time : Sat Oct 29 18:52:27 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : b29aba8f:f92c2b65:d155a3a8:40f41859

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Jan  9 10:04:33 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 47feb45 - correct
         Events : 303013

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

Ich werde es weiter versuchen, aber im Moment gehen mir die Ideen aus. Außerdem ist es das erste Mal, dass ich eine Festplatte im RAID ausgetauscht habe. Hoffentlich kann mir jemand helfen.

Immerhin habe ich jetzt auch ein Backup, möchte aber ungern die Festplatten zurücksetzen um dann festzustellen, dass auch das Backup nicht funktioniert...

Aktualisieren: Nachdem ich alle zu montierenden Datenträger hinzugefügt hatte, erhielt ich:

sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdf1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 2 (possibly out of date)
mdadm: added /dev/sdd1 to /dev/md0 as 3 (possibly out of date)
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array.

Antwort1

Ich habe eine Lösung gefunden:

Nach weiteren Recherchen und der Information, dass die Seite möglicherweise veraltet sei, die ich im ausführlichen Modus ( sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1) erhalten habe, bin ich auf diese Seite gestoßen:https://raid.wiki.kernel.org/index.php/RAID_Recovery

Im Abschnitt „Zusammenbau mit --force“ wird beschrieben, dass Force angewendet werden soll, wenn die Ereignisanzahl unter 50 liegt. Meine war viel niedriger, also habe ich versucht, das RAID-Array erneut zu verbinden. Dabei wird eine der Festplatten immer noch als veraltet erkannt, aber ich hoffe, dass sie mit den Informationen der anderen synchronisiert werden kann. Es könnte also sein, dass ich einige Daten verloren habe, aber ich habe gelernt, dass ich warten muss, bis das Array synchronisiert ist, wenn ich die falsche Festplatte aus dem Array entfernt habe …

Der Befehl, den ich verwendet habe, um meinen Raid wieder zum Laufen zu bringen:

sudo mdadm --stop /dev/md0
sudo mdadm -v -A --force /dev/md0 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sdf1

Aktualisieren: Ein Laufwerk wurde wahrscheinlich nicht hinzugefügt, sodass nur ein Laufwerk hinzugefügt wurde, um das Array wieder in einen funktionsfähigen Zustand zu versetzen. Das Gerät mit dem größten Event-Unterschied musste später hinzugefügt werden mit --re-add:

sudo mdadm --manage /dev/md0 --re-add /dev/sdc1

Jetzt ist mein Array wieder synchron und ich kann erneut versuchen, die fehlerhafte Festplatte zu entfernen.

verwandte Informationen