Zum Inhalt springen

Linux/RAID/Recovery

Aus Foxwiki



Rebuild/Recovery durchführen

Folgende Eigenschaften treffen auf einen Rebuild zu:

  • befüllen einer neuen Disk mit relevanten Informationen aus einem bestehenden Array
  • unter der Annahme dass sämtliche Daten neu geschrieben werden müssen und dass die Daten aus dem bestehenden Array korrekt sind
  • wird ausgeführt wenn eine Disk ersetzt wurde

Manuellen Recovery erzwingen

Partition absichtlich faulty setzen

root@ubuntumdraidtest:~# mdadm --manage --set-faulty /dev/mdN /dev/sdX1
mdadm: set /dev/sdX1 faulty in /dev/mdN

Statusanzeige des Software-RAIDs

root@ubuntumdraidtest:~# mdadm -D /dev/mdN liefert folgende Übersicht:

/dev/md0:
        Version : 1.2
  Creation Time : Mon Sep 30 14:59:51 2013
     Raid Level : raid1
     Array Size : 2095040 (2046.28 MiB 2145.32 MB)
  Used Dev Size : 2095040 (2046.28 MiB 2145.32 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Oct  7 08:11:41 2013
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           Name : ubuntumdraidtest:0  (local to host ubuntumdraidtest)
           UUID : ebe7bfba:a20bf402:f7954545:d920460f
         Events : 471

    Number   Major   Minor   RaidDevice State
       3       8       17        0      active sync   /dev/sdb1
       1       0        0        1      removed

       2       8       33        -      faulty spare   /dev/sdc1

Hier wurde die Partition sdc1 des RAIDs md0 auf faulty gesetzt und wird nun als faulty spare angezeigt. Der Status des RAIDs wechselte von clean auf clean, degraded.

SDX1 hot remove

root@ubuntumdraidtest:~# mdadm --manage /dev/mdN -r /dev/sdX1
mdadm: hot removed /dev/sdX1 from /dev/mdN

SDX1 add

root@ubuntumdraidtest:~# mdadm --manage /dev/mdN -a /dev/sdX1
mdadm: added /dev/sdX1

Visualisierung

cat /proc/mdstat liefert:

md0 : active raid1 sdc1[2] sdb1[3]
      2095040 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.4% (9600/2095040) finish=3.6min spe
ed=9600K/sec

unused devices: <none>

nmon zeigt dass von /dev/sdb gelesen und auf /dev/sdc geschrieben wird.

┌nmon─13g──────[H for help]───Hostname=ubuntumdraidtRefresh= 2secs ───15:08.05─┐
│ Disk I/O ──/proc/diskstats────mostly in KB/s─────Warning:contains duplicates─│
│DiskName Busy  Read WriteMB|0          |25         |50          |75       100|│
│sda        0%    0.0    0.0|        >                                        |│
│sda1       0%    0.0    0.0|>                                                |│
│sda2       0%    0.0    0.0|>disk busy not available                         |│
│sda5       0%    0.0    0.0| >                                               |│
│sdb        5%   66.3    0.0|RRR             >                                |│
│sdb1       6%   66.3    0.0|RRR             >                                |│
│sdc       72%    0.0   65.3|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW             >│
│sdc1      72%    0.0   65.3|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW             >│
│sdd        0%    0.0    0.0|>                                                |│
│sdd1       0%    0.0    0.0|>disk busy not available                         |│
│dm-0       0%    0.0    0.0|        >                                        |│
│dm-1       0%    0.0    0.0|>                                                |│
│md0        0%    0.0    0.0|>disk busy not available                         |│
│Totals Read-MB/s=132.6    Writes-MB/s=130.7    Transfers/sec=541.7            │
│──────────────────────────────────────────────────────────────────────────────│

Verhalten bei Verwendung einer Spare-Disk

Wenn ein RAID mit einer Spare-Disk betrieben wird, springt diese für die auf faulty gesetzte Disk ein. Es wird automatisch ein Rebuild durchgeführt. Die auf faulty gesetzte Disk erscheint in der Ausgabe von mdadm -D /dev/mdN als faulty spare.

Um sie nun wieder in den Verbund als Spare-Disk aufzunehmen, muss sie mittels mdadm --manage /dev/mdN -r /dev/sdX1 zuerst entfernt und anschließend wieder hinzugefügt werden mdadm --manage /dev/mdN -a /dev/sdd1.

Resync

Folgende Eigenschaften treffen auf einen Resync zu:

  • Sicherstellung dass alle Daten im Array synchron bzw. konsistent sind
  • Annahme dass die Daten in Ordnung sind (sein sollten)
  • Im Falle eines Fehlers beim Lesen eines Devices werden die Daten von einem anderen Device auf alle anderen geschrieben

Manuellen Resync erzwingen

Array stoppen

root@ubuntumdraidtest:~# mdadm --stop /dev/mdN
mdadm: stopped /dev/mdN

Resync ausführen

root@ubuntumdraidtest:~# mdadm --assemble --run --force --update=resync /dev/mdN /dev/sdX1 /dev/sdX1
mdadm: /dev/mdN has been started with 2 drives.
  • Weitere Informationen siehe:
  • Eine Auflistung von Befehlen finden Sie unter /usr/share/doc-base/mdadm-readme-recipes.

Visualisierung

cat /proc/mdstat liefert:

Every 2.0s: cat /proc/mdstat                                                      Wed Sep 25 15:19:59 2013

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[0] sdc1[1]
     2095040 blocks super 1.2 [2/2] [UU]
     	[===>.................]  resync = 19.7% (414656/2095040) finish=0.2min speed=138218K/sec

unused devices: <none>

Einzelnachweise

  1. Resync auf einem Software-RAID erzwingen (web.archive.org)
Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Das könnte Sie auch interessieren

Mdadm checkarray

Zum Artikel

Mdadm recover degraded Array

Zum Artikel

Ubuntu-Server-Installation mit Software-RAID

Zum Artikel

Hauptseite > Archiv > Server-Software Archiv > Linux Archiv > Linux Software RAID Archiv

  • Linux RAID Wiki recovery and resync (raid.wiki.kernel.org)

Linux/RAID