Erweitern Sie ein Linux MD RAID 10-Array, um größere Festplatten zu verwenden

11

Soweit ich weiß, ist dies möglich, aber ich kann nirgendwo eine klare Antwort darauf finden, wie genau ich vorgehen soll, und ich möchte nicht riskieren, Daten zu verlieren, die selbst damit experimentieren, also frage ich hier.

Ich habe einen Heimserver mit fünf Festplatten, auf denen CentOS ausgeführt wird. Eine ist eine SSD mit dem Betriebssystem. Die verbleibenden vier Festplatten sind 4-TB-Festplatten, die in RAID10 mit mdraid konfiguriert sind. Das verwendete Dateisystem ist xfs.

Ich denke darüber nach, die 4-TB-Festplatten durch 8-TB-Festplatten zu ersetzen. Was genau muss getan werden, um diesen Austausch zu ermöglichen, ohne ein neues RAID neu konfigurieren und Daten verlieren zu müssen?

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1
Kefka
quelle

Antworten:

14

Führen Sie die folgenden Schritte für jede Festplatte aus. Bei /dev/sda1Bedarf durch andere Festplatten ersetzen . Sie müssen alle diese Schritte für eine Festplatte ausführen, bevor Sie mit der nächsten Festplatte fortfahren können.

  • Markieren Sie die Festplatte als fehlgeschlagen, damit MD sie nicht mehr verwendet: mdadm --manage /dev/md127 --fail /dev/sda1
  • Entfernen Sie die Festplatte aus dem Array: mdadm --manage /dev/md127 --remove /dev/sda1
  • Ersetzen Sie die Festplatte physisch.
  • Partitionieren Sie die neue Festplatte mithilfe des Typs 0xDAmit einer Partition, die sich über die gesamte Festplatte erstreckt.
  • Fügen Sie die neue Festplatte zum Array hinzu: mdadm --manage /dev/md127 --add /dev/sda1

MD erstellt das Array neu, sobald Sie die Ersatzfestplatte hinzufügen. Stellen Sie sicher, dass die Neuerstellung abgeschlossen ist, bevor Sie mit der nächsten Festplatte fortfahren. Sie können den Status des Arrays überprüfen, indem Sie es ausführen cat /proc/mdstat.

Sobald alle der Scheiben ersetzt wurden und das Array neu aufgebaut, erweitern Sie das Array mit der maximalen Kapazität von allen Platten zu füllen mdadm --grow /dev/md127 --size=max. Von dort aus können Sie die Größe des Dateisystems ändern, um das erweiterte RAID zu füllen. Verwenden Sie in Ihrem Fall den xfs_growfsBefehl.

Weitere Informationen zum Erweitern eines MD-Arrays finden Sie im Linux-RAID-Wiki .

Wie bei jeder anderen Aufgabe zur Datenträgermanipulation sollten Sie vor Beginn ein Backup erstellen.

bwDraco
quelle
1
tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
Fügen
2

Sie möchten zuerst jede Festplatte einzeln austauschen.

Um dies zu tun, würden Sie jede Festplatte "ausfallen" und durch die neue 8-TB-Ersetzung ersetzen. Wenn Sie über die Ersatzports verfügen, können Sie die zusätzlichen Festplatten hinzufügen und dann mdadm "ersetzen", anstatt eine Festplatte zu entfernen der Überfall und mit einem höheren Risiko des Scheiterns.

Diese Frage beschreibt, wie ich es am besten "sicher" machen kann.

Sobald Sie dies getan haben, möchten Sie einfach den vorhandenen FS in den neu erstellten Bereich erweitern. Es scheint, dass der Befehl hierfür 'xfs_growfs' lautet. Ich habe jedoch keine Erfahrung mit xfs, um zu erklären, wie genau Sie dies tun würden.

Halten Sie wie immer Backups bereit (und RAID ist kein Backup!).

djsmiley2kStaysInside
quelle
Würde der zusätzliche Platz überhaupt erkannt werden, wenn er mit einem Raid10 eingerichtet wurde und Angst hat? Sollte ich zwei gleichzeitig tauschen, einen von jedem gespiegelten Paar?
Kefka
Sie fügen den Speicherplatz erst hinzu, nachdem Sie alle Datenträger ausgetauscht haben, und dann wird er erkannt.
djsmiley2kStaysInside