Erstellen des Beispiel-RAID-10-Arrays

Erstellen des Beispiel-RAID-10-Arrays

Derzeit habe ich 8 Festplatten mit jeweils 32 GB, die ein RAID 10 bilden. Jetzt möchte ich die Größe dieses RAIDs durch Hinzufügen zusätzlicher Festplatten erhöhen. Dies ist ein Produktionsgerät, daher befinden sich bereits wichtige Daten im RAID. Das Dateisystem ist XFS. Gibt es eine Möglichkeit, die Größe dieses RAIDs zu erhöhen, ohne die laufenden Lese-/Schreibvorgänge auf diesem RAID zu beeinträchtigen? Wenn nicht, wie kann dies mit minimaler Offlinezeit erreicht werden?

Antwort1

Die vorhandenen Antworten sind ziemlich veraltet. Hier im Jahr 2020 ist es nun möglich, ein mdadmSoftware-RAID 10 zu erweitern, indem einfach zwei oder mehr gleich große Festplatten hinzugefügt werden.

Erstellen des Beispiel-RAID-10-Arrays

Zu Testzwecken habe ich anstelle von physischen Laufwerken sechs LVM-Volumes mit jeweils 10 GB erstellt, /dev/vg0/rtest1worüber rtest6es von mdadm keine Beanstandungen gab.

# Using the thinpool lvthin on VG vg0 - I created 6x 10G volumes
lvcreate -T vg0/lvthin -V 10G -n rtest1 
lvcreate -T vg0/lvthin -V 10G -n rtest2
...

Als nächstes habe ich ein RAID 10 mdadm-Array mit den ersten 4 rtestXVolumes erstellt

mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/vg0/rtest[1-4]

mdadm -DWenn wir (gleich ) verwenden --detail, können wir sehen, dass das Array 4x „Laufwerke“ hat, mit einer Kapazität von 20 GB von den 40 GB an Volumes, wie es bei RAID 10 zu erwarten ist.

root@host ~ # mdadm -D /dev/md0

/dev/md0:
           Version : 1.2
     Creation Time : Fri Nov 20 09:02:39 2020
        Raid Level : raid10
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Nov 20 09:04:24 2020
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : someguy123:0  (local to host someguy123)
              UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
            Events : 23

    Number   Major   Minor   RaidDevice State
       0     253        9        0      active sync set-A   /dev/dm-9
       1     253       10        1      active sync set-B   /dev/dm-10
       2     253       11        2      active sync set-A   /dev/dm-11
       3     253       12        3      active sync set-B   /dev/dm-12

Erweiterung des RAID10 um 2 neue gleich große Volumes/Festplatten

Um das Array zu erweitern, müssen Sie zunächst --adddie Festplattenpaare zum Array hinzufügen und dann --grow --raid-devices=X(wobei X die neue Gesamtanzahl der Festplatten im RAID ist) anfordern, dass mdadm das RAID10 so umgestaltet, dass die beiden Ersatzfestplatten als Teil des Arrays verwendet werden.

mdadm --add /dev/md0 /dev/vg0/rtest5 /dev/vg0/rtest6
mdadm --grow /dev/md0 --raid-devices=6

Überwachen des Resynchronisierungsprozesses

Jetzt kommt der langweilige Teil: Sie müssen je nach Größe Ihres RAID Minuten, Stunden, Tage oder sogar Wochen warten, bis mdadm die Neustrukturierung um die neuen Laufwerke herum abgeschlossen hat.

Wenn wir nachsehen mdadm -D, können wir sehen, dass das RAID derzeit neu gestaltet wird.

mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Nov 20 09:02:39 2020
        Raid Level : raid10
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 6
     Total Devices : 6
       Persistence : Superblock is persistent

       Update Time : Fri Nov 20 09:15:05 2020
             State : clean, reshaping
    Active Devices : 6
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

    Reshape Status : 0% complete
     Delta Devices : 2, (4->6)

              Name : someguy123:0  (local to host someguy123)
              UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
            Events : 31

    Number   Major   Minor   RaidDevice State
       0     253        9        0      active sync set-A   /dev/dm-9
       1     253       10        1      active sync set-B   /dev/dm-10
       2     253       11        2      active sync set-A   /dev/dm-11
       3     253       12        3      active sync set-B   /dev/dm-12
       5     253       14        4      active sync set-A   /dev/dm-14
       4     253       13        5      active sync set-B   /dev/dm-13

Viel Spaß mit Ihrem größeren RAID10-Array!

Wenn die Umformung schließlich mdadmabgeschlossen ist, können wir nun sehen, dass die Array-Größe ~30 G statt ~20 G beträgt, was bedeutet, dass die Umformung erfolgreich und relativ schmerzlos war :)

mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Nov 20 09:02:39 2020
        Raid Level : raid10
        Array Size : 31429632 (29.97 GiB 32.18 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 6
     Total Devices : 6
       Persistence : Superblock is persistent

       Update Time : Fri Nov 20 09:25:01 2020
             State : clean
    Active Devices : 6
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : someguy123:0  (local to host someguy123)
              UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
            Events : 93

    Number   Major   Minor   RaidDevice State
       0     253        9        0      active sync set-A   /dev/dm-9
       1     253       10        1      active sync set-B   /dev/dm-10
       2     253       11        2      active sync set-A   /dev/dm-11
       3     253       12        3      active sync set-B   /dev/dm-12
       5     253       14        4      active sync set-A   /dev/dm-14
       4     253       13        5      active sync set-B   /dev/dm-13

Antwort2

Es gibt 2 Fälle:

  1. Sie fügen neue Laufwerke hinzu. Der einfachste und sicherste Weg ist, ein neues Array auf den neuen Laufwerken zu erstellen, ein physisches Volume auf dem neuen Array zu erstellen und fertig. Hier kommt es zu keinem Leistungsverlust. Als Bonus können Sie eine neue Volume-Gruppe erstellen, um Ihre Daten in das eine oder andere Array zu legen.
  2. Sie ersetzen vorhandene Laufwerke durch größere. Ersetzen Sie sie nacheinander und erstellen Sie jedes Mal zwei Partitionen auf der Festplatte. Sie fügen die erste (z. B. sdX1) zum vorhandenen Array hinzu (es sollte automatisch wiederhergestellt werden) und können dann auf allen zweiten Partitionen (sdX2) ein neues Array erstellen. Abhängig von Ihrer Nutzung kann es bei einigen Vorgängen zu Leistungseinbußen kommen (im Wesentlichen, wenn Sie Daten zwischen beiden Arrays kopieren).

In beiden Fällen gehen keine Daten verloren und wenn Ihre Hardware Hotplug zulässt, kommt es zu keinen Ausfallzeiten.

Übrigens, selbst wenn mdadm eine dynamische Größenänderung des Arrays erlauben würde, würde ich bei Produktionsdaten kein Risiko eingehen.

Antwort3

Vorausgesetzt, dies läuft unter Linux mdadm, ist dies nicht möglich.

mdadmunterstützt kein wachsendes RAID10

verwandte Informationen