Einfach zu erweiterendes Linux-Software-RAID 5 mit XFS. Empfohlene Vorgehensweise?

13

Ich verwende meinen Ubuntu-Rechner als Dateiserver für Windows / Linux / Mac-Clients, die eine Samba-Freigabe verwenden. Ich brauche es einfach erweiterbar, indem ich einfach mehr Festplatten hinzufüge, ohne Daten hin und her bewegen zu müssen.

So habe ich es bisher gemacht. Ich habe erfolgreich eine vierte Festplatte hinzugefügt. Nun wäre es schön zu wissen, wie es gemacht werden soll. Was mache ich falsch oder was könnte ich besser machen?

Erstellen des ersten 3-Laufwerk-Arrays

Ich habe mit drei leeren Laufwerken begonnen: / dev / sdb, / dev / sdc und / dev / sdd.

Zuerst habe ich leere Partitionen für alle Laufwerke erstellt:

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Nachdem für alle drei Datenträger leere RAID-Partitionen erstellt wurden, habe ich ein RAID5-Array erstellt:

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Jetzt wird das RAID5-Array erstellt und es wird bereits erstellt. Es braucht Zeit, aber Sie können mit dem Erstellen eines neuen physischen LVM2-Volumes fortfahren:

$ pvcreate /dev/md0

Jetzt erstellen wir eine neue Volumengruppe:

$ vgcreate vd_raid /dev/md0

Dann müssen wir ein neues logisches Volume in dieser Volume-Gruppe erstellen. Zuerst müssen wir die genaue Größe der erstellten Volumengruppe herausfinden:

$ vgdisplay vg_raid

Die Größe ist aus der Zeile ersichtlich, die die "Gesamt-PE" in physischen Ausmaßen angibt. Stellen wir uns vor, es ist 509. Erstellen Sie nun ein neues logisches Volume, das den gesamten verfügbaren Speicherplatz beansprucht:

$ lvcreate -l 509 vg_raid -n lv_raid

Schließlich können wir ein Dateisystem auf diesem logischen Datenträger erstellen:

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

Um unser neu erstelltes RAID-Array verwenden zu können, müssen wir ein Verzeichnis erstellen und dieses bereitstellen:

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

Jetzt ist es einsatzbereit. Damit es nach dem Neustart automatisch bereitgestellt wird, muss die RAID-Geometrie in der Konfigurationsdatei von mdadm gespeichert werden:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Fügen Sie dann die folgende Zeile zu / etc / fstab hinzu, die das RAID-Array automatisch bereitstellt:

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

Jetzt ist das RAID-Array einsatzbereit und wird nach jedem Start automatisch in das Verzeichnis / raid eingebunden.

Hinzufügen eines neuen Laufwerks zum Array

Stellen wir uns vor, Sie haben jetzt ein neues Laufwerk, / dev / sde, das Sie zum zuvor erstellten Array hinzufügen möchten, ohne Daten zu verlieren.

Zuerst muss das neue Laufwerk wie alle anderen Laufwerke partitioniert werden:

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Dann muss es zum RAID-Array hinzugefügt werden:

$ mdadm --add /dev/md0 /dev/sde1

Jetzt umfasst das RAID5-Array vier Laufwerke, von denen derzeit nur drei verwendet werden. Das Array muss auf alle vier Laufwerke erweitert werden:

$ mdadm --grow /dev/md0 --raid-devices=4

Dann muss das physische LVM2-Volume erweitert werden:

$ pvresize /dev/md0

Jetzt wird die Größe des physischen Volumes standardmäßig so geändert, dass der gesamte verfügbare Speicherplatz im RAID-Array abgedeckt wird. Wir müssen die neue Größe in physischen Ausmaßen herausfinden:

$ vgdisplay vg_raid

Stellen wir uns vor, die neue Größe ist jetzt 764 (zu sehen aus "Total PE"). Erweitern Sie nun das logische Volume, um dies abzudecken:

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

Erweitern Sie dann das XFS-Dateisystem. Dies muss erfolgen, während das Dateisystem online ist und eingehängt wird:

$ xfs_grow /raid

Standardmäßig wird es so erweitert, dass es den gesamten verfügbaren Speicherplatz abdeckt. Schließlich muss die RAID-Array-Geometrie aktualisiert werden, da das Array jetzt eine neue Festplatte enthält. Löschen Sie zuerst die hinzugefügte Zeile aus /etc/mdadm/mdadm.conf und fügen Sie dann eine neue hinzu:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Taskinen
quelle
3
Legen Sie keine Partitionen auf Ihre Festplatten. Keine Notwendigkeit dafür - die kernelinterne RAID-automatische Erkennung (Partitionstyp fd) ist veraltet.
James
Anstatt also mit fdisk Partitionen vom Typ 'fd' zu erstellen, sollte ich das Array / dev / md0 direkt für die Geräte / dev / sdb, / dev / sdc und / dev / sdd erstellen.
Taskinen
1
Ich habe gehört, dass nicht alle Festplatten dieselbe Größe haben. Wenn ich eine neue Terabyte-Festplatte kaufe, ist diese möglicherweise nicht genau gleich groß. Würde das zu Problemen führen?
Taskinen

Antworten:

5

Ich denke, du hast es richtig gemacht. Stellen Sie sicher, dass Sie die Warnungen zum Anwachsen von RAID 5 in verstehen und beachten man 8 mdadm.

Wenn ich persönlich ein LVM-Volume erweitern würde, würde ich dafür kein vorhandenes RAID-Array erweitern. Ich würde ein anderes RAID-Array erstellen, daraus ein neues physvol erstellen und es derselben Datenträgergruppe hinzufügen. Dies ist eine viel sicherere Operation (bei der nicht das gesamte RAID5-Array über den neuen Festplattensatz hinweg neu geschrieben wird), und die Größe Ihrer Arrays bleibt gering.

Kamil Kisiel
quelle
Absolute Zustimmung. vgextend ist dein Freund hier.
Dan Andreatta
1
Im Allgemeinen verstehe ich, aber was ist mit der Situation, in der ich das oben erwähnte Array mit drei Festplatten zu einem Array mit vier Festplatten ausbauen möchte. Ich kann kein neues RAID-Array nur von der vierten Festplatte aus erstellen.
Taskinen
1
Ich würde das Festplatten-Array eines Speicherservers nicht einzeln erweitern. Wenn Sie von einem Array mit drei Festplatten zu einem Array mit vier Festplatten wechseln, erhalten Sie nur 50% mehr Speicher, da Sie Festplatten mit derselben Größe verwenden müssen.
Kamil Kisiel
1
Einverstanden. Wenn Ihnen der Speicherplatz ausgeht, wird der Preis für größere Laufwerke sinken. Bauen Sie ein zweites RAID-Array auf einem neuen Satz größerer Laufwerke auf, verschieben Sie dann Ihre alten Daten in diesen Satz und nehmen Sie den alten Satz außer Betrieb, sobald der Vorgang abgeschlossen ist. Dies ist alles möglich, während die Dateisysteme in den von pvmove betroffenen logischen Volumes aktiv verwendet werden.
Flabdablet