Diese Anleitung beschreibt, wie Sie ein fehlerhaftes Laufwerk auf einem Software-RAID ersetzen, das von mdadm
verwaltet wird Nützlichkeit. So ersetzen Sie ein fehlerhaftes RAID 6-Laufwerk in mdadm
:
- Identifizieren Sie das Problem.
- Details vom RAID-Array abrufen.
- Entfernen Sie die fehlerhafte Festplatte aus dem RAID-Array.
- Fahren Sie den Computer herunter und ersetzen Sie die Festplatte.
- Partitionieren Sie die neue Festplatte.
- Fügen Sie die neue Festplatte zum RAID-Array hinzu.
- Wiederherstellung überprüfen.
Sehen wir uns diesen Prozess anhand eines Beispiels genauer an.
Identifizieren Sie das Problem
Führen Sie Folgendes aus, um festzustellen, welche Festplatte im RAID-Array ausfällt:
[root@server loc]# cat /proc/mdadm
Oder:
[root@server loc]# mdadm -–query -–detail /dev/md2
Das fehlerhafte Laufwerk wird als fehlerhaft angezeigt oder entfernt . Zum Beispiel:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 11:55:06 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 3% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046292
Number Major Minor Raid Device State
0 0 0 0 removed
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
Details vom RAID-Array erhalten
So untersuchen Sie den Zustand des RAID-Arrays und identifizieren den Zustand einer Festplatte innerhalb des RAID:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4](F) sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[>………………..] recovery = 3.4% (100650992/2909626368) finish=471.5min speed=99278K/sec
bitmap: 2/22 pages [8KB], 65536KB chunk
unused devices: <none>
Wie wir sehen können, ist das Gerät /dev/sdb4
ist im RAID ausgefallen.
Da wir festgestellt haben, dass die ausgefallene Festplatte /dev/sdb4
ist (was auf diesem Server der Fall war), müssten wir die Seriennummer der Festplatte mit smartctl
abrufen :
[root@server loc]# smartctl -–all /dev/sdb | grep -i 'Serial'
Der obige Befehl ist wichtig, da Sie wissen müssen, welche Festplatte gemäß der physischen Bezeichnung der Festplatte vom Server entfernt werden soll.
Entfernen Sie die fehlerhafte Festplatte aus dem RAID-Array
Es ist wichtig, die fehlerhafte Festplatte aus dem Array zu entfernen, damit das Array einen konsistenten Zustand beibehält und jede Änderung erkennt, etwa so:
[root@server loc]# mdadm -–manage /dev/md2 -–remove /dev/sdb4
Bei einer erfolgreichen Entfernung wird eine Nachricht wie die folgende zurückgegeben:
[root@server loc]# mdadm: hot removed /dev/sdb4 from /dev/md2
Überprüfen Sie den Status von /proc/mdstat
noch einmal:
[root@server loc]# cat /proc/mdstat
Sie können das /dev/sdb4
sehen ist nicht mehr sichtbar.
Fahren Sie den Computer herunter und ersetzen Sie die Festplatte
Jetzt ist es an der Zeit, das System herunterzufahren und die fehlerhafte Festplatte durch eine neue zu ersetzen, aber bevor Sie das System herunterfahren, kommentieren Sie /dev/md2
aus Ihrem /etc/fstab
Datei. Siehe das Beispiel unten:
[root@server loc]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri May 20 13:12:25 2016
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=1300b86d-2638-4a9f-b366-c5e67e9ffa4e /boot xfs defaults 0 0
#/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
#/dev/md2 /var/loc xfs defaults 0 0
Partitionieren Sie die neue Festplatte
Da wir andere Arbeitsfestplatten innerhalb des RAID-Arrays haben, ist es einfach und bequem, das Partitionsschema einer Arbeitsfestplatte auf die neue Festplatte zu kopieren. Diese Aufgabe wird mit sgdisk
erledigt Dienstprogramm, das von gdisk
bereitgestellt wird Paket.
Installieren Sie gdisk
so (passen Sie diesen Befehl für Ihre Distribution an):
[root@server loc]# yum install gdisk
Verwenden von gdisk
übergeben wir zunächst das -R
Option (steht für Replizieren). Stellen Sie sicher, dass Sie das Partitionsschema einer Arbeitsfestplatte replizieren. Es ist wichtig, dass Sie die richtige Reihenfolge der Festplatten verwenden, um das Partitionsschema von einer Arbeitsfestplatte auf eine neue zu replizieren. In unserer Situation befindet sich auf der neuen Festplatte /dev/sdb
und die Arbeitsplatten sind /dev/sdc
, /dev/sdd
, /dev/sde
.
Um nun das Partitionsschema einer funktionierenden Festplatte zu replizieren (z. B. /dev/sdc
) auf die neue Festplatte /dev/sdb
, ist der folgende Befehl erforderlich:
[root@server loc]# sgdisk -R /dev/sdb /dev/sdc
Um GUID-Konflikte mit anderen Laufwerken zu vermeiden, müssen wir die GUID des neuen Laufwerks randomisieren mit:
[root@server loc]# sgdisk -G /dev/sdb
The operation has completed successfully.
Überprüfen Sie als Nächstes die Ausgabe von /dev/sdb mithilfe von parted
Dienstprogramm:
[root@server loc]# parted /dev/sdb print
Fügen Sie die neue Festplatte zum RAID-Array hinzu
Nach Abschluss der Replikation des Partitionsschemas auf das neue Laufwerk können wir das Laufwerk jetzt zum RAID-Array hinzufügen:
[root@server loc]# mdadm -–manage /dev/md2 -–add /dev/sdb4
mdadm: added /dev/sdb4
Wiederherstellung überprüfen
Verwenden Sie Folgendes, um die RAID-Wiederherstellung zu überprüfen:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4] sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[==>………………] recovery = 12.2% (357590568/2909626368) finish=424.1min speed=100283K/sec
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
Oder:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 12:37:37 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 12% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046749
Number Major Minor Raid Device State
4 8 20 0 spare rebuilding /dev/sdb4
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
Aus der obigen Ausgabe sehen wir jetzt, dass /dev/sdb4
wird neu aufgebaut, und vier funktionierende und aktive Geräte sind verfügbar. Der Wiederherstellungsprozess kann eine Weile dauern, abhängig von Ihrer Gesamtfestplattengröße und dem Festplattentyp (d. h. herkömmlich oder Solid-State).
Feiern
Sie haben jetzt ein fehlerhaftes RAID 6-Laufwerk erfolgreich durch mdadm
ersetzt . Hoffentlich müssen Sie dies nie tun, aber die Hardware fällt aus. Die Chancen stehen gut, dass es irgendwann passieren wird, wenn Sie RAID 6 verwenden. Wenn Sie können, richten Sie ein Labor ein, erzwingen Sie, dass ein RAID 6 darin fehlschlägt, und stellen Sie es dann wieder her. Zu wissen, wie man das Problem angeht, wird die Erfahrung, wenn das Undenkbare passiert, weit weniger stressig machen.