So erstellen Sie RAID-Arrays mit mdadm unter Ubuntu 16.04

Einführung

Das Dienstprogramm + mdadm kann zum Erstellen und Verwalten von Speicher-Arrays mit Linux-Software-RAID-Funktionen verwendet werden. Administratoren können ihre einzelnen Speichergeräte flexibel koordinieren und logische Speichergeräte mit besseren Leistungs- oder Redundanzeigenschaften erstellen.

In diesem Handbuch werden verschiedene RAID-Konfigurationen vorgestellt, die mit einem Ubuntu 16.04-Server eingerichtet werden können.

Voraussetzungen

Um die Schritte in diesem Handbuch ausführen zu können, sollten Sie Folgendes haben:

  • * Ein Benutzer ohne Rootberechtigung mit "+ sudo " - Berechtigungen auf einem Ubuntu 16.04-Server *: Die Schritte in diesem Handbuch werden mit einem " sudo +" - Benutzer ausgeführt. Informationen zum Einrichten eines Kontos mit diesen Berechtigungen finden Sie in unserer Ubuntu 16.04 Anleitung zur Ersteinrichtung des Servers.

  • * Grundlegendes Verständnis der RAID-Terminologie und -Konzepte *: In diesem Handbuch werden zwar einige RAID-Terminologien im Vorbeigehen behandelt, ein umfassenderes Verständnis ist jedoch sehr hilfreich. Um mehr über RAID zu erfahren und ein besseres Verständnis der für Sie geeigneten RAID-Stufe zu erhalten, lesen Sie unsere https://www.digitalocean.com/community/tutorials/an-einführung-zu-ängstigen-Terminologie-und-Konzepten [ Einführung in RAID-Artikel].

  • * Mehrere Raw-Speichergeräte auf Ihrem Server verfügbar *: Wir zeigen Ihnen, wie Sie verschiedene Arten von Arrays auf dem Server konfigurieren. Daher benötigen Sie zur Konfiguration einige Laufwerke. Wenn Sie DigitalOcean verwenden, können Sie diese Rolle über Block Storage volume ausfüllen. Je nach Array-Typ benötigen Sie mindestens * zwei bis vier Speichergeräte *.

Zurücksetzen vorhandener RAID-Geräte

In diesem Handbuch werden die Schritte zum Erstellen einer Reihe verschiedener RAID-Level vorgestellt. Wenn Sie mitmachen möchten, möchten Sie Ihre Speichergeräte wahrscheinlich nach jedem Abschnitt wiederverwenden. In diesem Abschnitt erfahren Sie, wie Sie Ihre Komponentenspeichergeräte vor dem Testen eines neuen RAID-Levels schnell zurücksetzen können. Überspringen Sie diesen Abschnitt vorerst, wenn Sie noch keine Arrays eingerichtet haben.

Warnung

Suchen Sie die aktiven Arrays in der Datei "+ / proc / mdstat +", indem Sie Folgendes eingeben:

cat /proc/mdstat
OutputPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
: active raid0 sdc[1] sdd[0]
     209584128 blocks super 1.2 512k chunks

           unused devices: <none>

Hängen Sie das Array aus dem Dateisystem aus:

sudo umount /dev/

Halten Sie dann an und entfernen Sie das Array, indem Sie Folgendes eingeben:

sudo mdadm --stop /dev/
sudo mdadm --remove /dev/

Suchen Sie die Geräte, die zum Erstellen des Arrays verwendet wurden, mit dem folgenden Befehl:

Note

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE            TYPE MOUNTPOINT
sda      100G                   disk
sdb      100G                   disk


vda       20G                   disk
├─vda1    20G ext4              part /
└─vda15    1M                   part

Nachdem Sie die Geräte ermittelt haben, die zum Erstellen eines Arrays verwendet wurden, setzen Sie deren Superblock auf Null, um sie auf den Normalzustand zurückzusetzen:

sudo mdadm --zero-superblock /dev/
sudo mdadm --zero-superblock /dev/

Sie sollten alle permanenten Verweise auf das Array entfernen. Bearbeiten Sie die Datei "+ / etc / fstab +" und kommentieren Sie sie aus oder entfernen Sie den Verweis auf Ihr Array:

sudo nano /etc/fstab

/ etc / fstab

. . .
/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

Kommentieren oder entfernen Sie auch die Array-Definition aus der Datei + / etc / mdadm / mdadm.conf +:

sudo nano /etc/mdadm/mdadm.conf

/etc/mdadm/mdadm.conf

. . .
ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

Aktualisieren Sie abschließend das + initramfs + erneut:

sudo update-initramfs -u

Zu diesem Zeitpunkt sollten Sie bereit sein, die Speichergeräte einzeln oder als Komponenten eines anderen Arrays wiederzuverwenden.

Erstellen eines RAID 0-Arrays

Das RAID 0-Array zerlegt Daten in Blöcke und verteilt sie auf die verfügbaren Festplatten. Dies bedeutet, dass jede Festplatte einen Teil der Daten enthält und dass beim Abrufen von Informationen auf mehrere Festplatten verwiesen wird.

  • Anforderungen: mindestens * 2 Speichergeräte *

  • Hauptvorteil: Leistung

  • Beachten Sie Folgendes: Stellen Sie sicher, dass Sie über funktionierende Sicherungen verfügen. Ein einzelner Gerätefehler zerstört alle Daten im Array.

Identifizieren Sie die Komponentengeräte

Suchen Sie zunächst die Kennungen für die verwendeten Raw-Festplatten:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE TYPE MOUNTPOINT


vda       20G        disk
├─vda1    20G ext4   part /
└─vda15    1M        part

Wie Sie oben sehen können, haben wir zwei Festplatten ohne Dateisystem mit einer Größe von jeweils 100 GB. In diesem Beispiel haben diese Geräte die Bezeichner "+ / dev / sda " und " / dev / sdb +" für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Erstellen des Arrays verwenden werden.

Erstellen Sie das Array

Um ein RAID 0-Array mit diesen Komponenten zu erstellen, übergeben Sie sie an den Befehl + mdadm --create +. Sie müssen den Gerätenamen angeben, den Sie erstellen möchten (in unserem Fall "+ / dev / md0 +"), den RAID-Level und die Anzahl der Geräte:

sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/ /dev/

Sie können sicherstellen, dass das RAID erfolgreich erstellt wurde, indem Sie die Datei "+ / proc / mdstat +" überprüfen:

cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

     209584128 blocks super 1.2 512k chunks

           unused devices: <none>

Wie Sie in der hervorgehobenen Zeile sehen können, wurde das Gerät "+ / dev / md0 " in der RAID 0-Konfiguration mit den Geräten " / dev / sda " und " / dev / sdb +" erstellt.

Erstellen Sie das Dateisystem und hängen Sie es ein

Als nächstes erstellen Sie ein Dateisystem auf dem Array:

sudo mkfs.ext4 -F /dev/md0

Erstellen Sie einen Einhängepunkt, um das neue Dateisystem anzuhängen:

sudo mkdir -p /mnt/md0

Sie können das Dateisystem einhängen, indem Sie Folgendes eingeben:

sudo mount /dev/md0 /mnt/md0

Überprüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie Folgendes eingeben:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   18G   6% /

Das neue Dateisystem ist gemountet und zugänglich.

Speichern Sie das Array-Layout

Um sicherzustellen, dass das Array beim Booten automatisch wieder zusammengesetzt wird, müssen wir die Datei + / etc / mdadm / mdadm.conf + anpassen. Sie können das aktive Array automatisch scannen und die Datei anhängen, indem Sie Folgendes eingeben:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Anschließend können Sie das initramfs- oder das anfängliche RAM-Dateisystem aktualisieren, damit das Array während des frühen Startvorgangs verfügbar ist:

sudo update-initramfs -u

Fügen Sie die neuen Mount-Optionen für das Dateisystem zur Datei + / etc / fstab + hinzu, damit das automatische Mounten beim Booten erfolgt:

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ihr RAID 0-Array sollte nun bei jedem Start automatisch zusammengestellt und gemountet werden.

Erstellen eines RAID 1-Arrays

Der RAID 1-Array-Typ wird durch Spiegeln von Daten auf allen verfügbaren Festplatten implementiert. Jede Festplatte in einem RAID 1-Array erhält eine vollständige Kopie der Daten, wodurch im Falle eines Gerätefehlers Redundanz bereitgestellt wird.

  • Anforderungen: mindestens * 2 Speichergeräte *

  • Hauptvorteil: Redundanz

  • Beachten Sie Folgendes: Da zwei Kopien der Daten beibehalten werden, wird nur die Hälfte des Speicherplatzes verwendet

Identifizieren Sie die Komponentengeräte

Suchen Sie zunächst die Kennungen für die verwendeten Raw-Festplatten:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE TYPE MOUNTPOINT


vda       20G        disk
├─vda1    20G ext4   part /
└─vda15    1M        part

Wie Sie oben sehen können, haben wir zwei Festplatten ohne Dateisystem mit einer Größe von jeweils 100 GB. In diesem Beispiel haben diese Geräte die Bezeichner "+ / dev / sda " und " / dev / sdb +" für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Erstellen des Arrays verwenden werden.

Erstellen Sie das Array

Um ein RAID 1-Array mit diesen Komponenten zu erstellen, übergeben Sie sie an den Befehl + mdadm --create +. Sie müssen den Gerätenamen angeben, den Sie erstellen möchten (in unserem Fall "+ / dev / md0 +"), den RAID-Level und die Anzahl der Geräte:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/ /dev/

Wenn es sich bei den von Ihnen verwendeten Komponentengeräten nicht um Partitionen handelt, für die das Flag "+ boot +" aktiviert ist, wird wahrscheinlich die folgende Warnung ausgegeben. Es ist sicher, * y * einzugeben, um fortzufahren:

Outputmdadm: Note: this array has metadata at the start and
   may not be suitable as a boot device.  If you plan to
   store '/boot' on this device please ensure that
   your boot-loader understands md/v1.x metadata, or use
   --metadata=0.90
mdadm: size set to 104792064K
Continue creating array?

Das Tool "+ mdadm " beginnt, die Laufwerke zu spiegeln. Dies kann einige Zeit in Anspruch nehmen, aber das Array kann in dieser Zeit verwendet werden. Sie können den Fortschritt der Spiegelung überwachen, indem Sie die Datei " / proc / mdstat +" überprüfen:

cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

     104792064 blocks super 1.2 [2/2] [UU]


unused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das Gerät "+ / dev / md0 " in der RAID 1-Konfiguration mit den Geräten " / dev / sda " und " / dev / sdb +" erstellt. Die zweite hervorgehobene Zeile zeigt den Fortschritt der Spiegelung. Sie können die Anleitung fortsetzen, während dieser Vorgang abgeschlossen ist.

Erstellen Sie das Dateisystem und hängen Sie es ein

Als nächstes erstellen Sie ein Dateisystem auf dem Array:

sudo mkfs.ext4 -F /dev/md0

Erstellen Sie einen Einhängepunkt, um das neue Dateisystem anzuhängen:

sudo mkdir -p /mnt/md0

Sie können das Dateisystem einhängen, indem Sie Folgendes eingeben:

sudo mount /dev/md0 /mnt/md0

Überprüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie Folgendes eingeben:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   18G   6% /

Das neue Dateisystem ist gemountet und zugänglich.

Speichern Sie das Array-Layout

Um sicherzustellen, dass das Array beim Booten automatisch wieder zusammengesetzt wird, müssen wir die Datei + / etc / mdadm / mdadm.conf + anpassen. Sie können das aktive Array automatisch scannen und die Datei anhängen, indem Sie Folgendes eingeben:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Anschließend können Sie das initramfs- oder das anfängliche RAM-Dateisystem aktualisieren, damit das Array während des frühen Startvorgangs verfügbar ist:

sudo update-initramfs -u

Fügen Sie die neuen Mount-Optionen für das Dateisystem zur Datei + / etc / fstab + hinzu, damit das automatische Mounten beim Booten erfolgt:

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ihr RAID 1-Array sollte nun bei jedem Start automatisch zusammengestellt und gemountet werden.

Erstellen eines RAID 5-Arrays

Der RAID 5-Array-Typ wird implementiert, indem Daten auf die verfügbaren Geräte verteilt werden. Eine Komponente jedes Streifens ist ein berechneter Paritätsblock. Wenn ein Gerät ausfällt, können der Paritätsblock und die verbleibenden Blöcke zur Berechnung der fehlenden Daten verwendet werden. Das Gerät, das den Paritätsblock empfängt, wird gedreht, so dass jedes Gerät über eine ausgeglichene Menge an Paritätsinformationen verfügt.

  • Anforderungen: mindestens * 3 Speichergeräte *

  • Hauptvorteil: Redundanz mit mehr nutzbarer Kapazität.

  • Beachten Sie Folgendes: Während die Paritätsinformationen verteilt werden, wird die Kapazität einer Festplatte für die Parität verwendet. RAID 5 kann in einem herabgesetzten Zustand unter einer sehr schlechten Leistung leiden.

Identifizieren Sie die Komponentengeräte

Suchen Sie zunächst die Kennungen für die verwendeten Raw-Festplatten:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE TYPE MOUNTPOINT



vda       20G        disk
├─vda1    20G ext4   part /
└─vda15    1M        part

Wie Sie oben sehen können, haben wir drei Festplatten ohne Dateisystem mit einer Größe von jeweils 100 GB. In diesem Beispiel haben diese Geräte die Bezeichner "+ / dev / sda ", " / dev / sdb " und " / dev / sdc +" für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Erstellen des Arrays verwenden werden.

Erstellen Sie das Array

Um ein RAID 5-Array mit diesen Komponenten zu erstellen, übergeben Sie sie an den Befehl + mdadm --create +. Sie müssen den Gerätenamen angeben, den Sie erstellen möchten (in unserem Fall "+ / dev / md0 +"), den RAID-Level und die Anzahl der Geräte:

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/ /dev/ /dev/

Das Tool + mdadm + beginnt mit der Konfiguration des Arrays (es verwendet tatsächlich den Wiederherstellungsprozess, um das Array aus Leistungsgründen zu erstellen). Dies kann einige Zeit in Anspruch nehmen, aber das Array kann in dieser Zeit verwendet werden. Sie können den Fortschritt der Spiegelung überwachen, indem Sie die Datei "+ / proc / mdstat +" überprüfen:

cat /proc/mdstat
OutputPersonalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]

     209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]


unused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das + / dev / md0 + Gerät in der RAID 5-Konfiguration mit den + / dev / sda +, + / dev / sdb + und `+ / dev / sdc + `geräte. Die zweite hervorgehobene Zeile zeigt den Fortschritt des Builds. Sie können die Anleitung fortsetzen, während dieser Vorgang abgeschlossen ist.

Erstellen Sie das Dateisystem und hängen Sie es ein

Als nächstes erstellen Sie ein Dateisystem auf dem Array:

sudo mkfs.ext4 -F /dev/md0

Erstellen Sie einen Einhängepunkt, um das neue Dateisystem anzuhängen:

sudo mkdir -p /mnt/md0

Sie können das Dateisystem einhängen, indem Sie Folgendes eingeben:

sudo mount /dev/md0 /mnt/md0

Überprüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie Folgendes eingeben:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   18G   6% /

Das neue Dateisystem ist gemountet und zugänglich.

Speichern Sie das Array-Layout

Um sicherzustellen, dass das Array beim Booten automatisch wieder zusammengesetzt wird, müssen wir die Datei + / etc / mdadm / mdadm.conf + anpassen.

Überprüfen Sie vor dem Anpassen der Konfiguration erneut, ob der Zusammenbau des Arrays abgeschlossen ist. Aufgrund der Art und Weise, wie + mdadm RAID 5-Arrays erstellt, wird, wenn das Array noch erstellt wird, die Anzahl der Ersatzlaufwerke im Array ungenau gemeldet:

cat /proc/mdstat
OutputPersonalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
     209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>

Die Ausgabe oben zeigt, dass die Neuerstellung abgeschlossen ist. Jetzt können wir das aktive Array automatisch scannen und die Datei anhängen, indem wir Folgendes eingeben:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Anschließend können Sie das initramfs- oder das anfängliche RAM-Dateisystem aktualisieren, damit das Array während des frühen Startvorgangs verfügbar ist:

sudo update-initramfs -u

Fügen Sie die neuen Mount-Optionen für das Dateisystem zur Datei + / etc / fstab + hinzu, damit das automatische Mounten beim Booten erfolgt:

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ihr RAID 5-Array sollte nun automatisch zusammengestellt und bei jedem Start bereitgestellt werden.

Erstellen eines RAID 6-Arrays

Der RAID 6-Array-Typ wird implementiert, indem Daten auf die verfügbaren Geräte verteilt werden. Zwei Komponenten jedes Streifens sind berechnete Paritätsblöcke. Wenn ein oder zwei Geräte ausfallen, können die fehlenden Daten anhand der Paritätsblöcke und der verbleibenden Blöcke berechnet werden. Die Geräte, die die Paritätsblöcke empfangen, werden so gedreht, dass jedes Gerät eine ausgewogene Menge an Paritätsinformationen hat. Dies ähnelt einem RAID 5-Array, ermöglicht jedoch den Ausfall von zwei Laufwerken.

  • Anforderungen: mindestens * 4 Speichergeräte *

  • Hauptvorteil: Doppelte Redundanz mit mehr nutzbarer Kapazität.

  • Beachten Sie Folgendes: Während die Paritätsinformationen verteilt werden, wird die Kapazität von zwei Festplatten für die Parität verwendet. RAID 6 kann in einem herabgesetzten Zustand unter einer sehr schlechten Leistung leiden.

Identifizieren Sie die Komponentengeräte

Suchen Sie zunächst die Kennungen für die verwendeten Raw-Festplatten:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE TYPE MOUNTPOINT




vda       20G        disk
├─vda1    20G ext4   part /
└─vda15    1M        part

Wie Sie oben sehen können, haben wir vier Festplatten ohne Dateisystem mit einer Größe von jeweils 100 GB. In diesem Beispiel haben diese Geräte die Bezeichner "+ / dev / sda ", " / dev / sdb ", " / dev / sdc " und " / dev / sdd +" für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Erstellen des Arrays verwenden werden.

Erstellen Sie das Array

Um ein RAID 6-Array mit diesen Komponenten zu erstellen, übergeben Sie sie an den Befehl + mdadm --create +. Sie müssen den Gerätenamen angeben, den Sie erstellen möchten (in unserem Fall "+ / dev / md0 +"), den RAID-Level und die Anzahl der Geräte:

sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/ /dev/ /dev/ /dev/

Das Tool + mdadm + beginnt mit der Konfiguration des Arrays (es verwendet tatsächlich den Wiederherstellungsprozess, um das Array aus Leistungsgründen zu erstellen). Dies kann einige Zeit in Anspruch nehmen, aber das Array kann in dieser Zeit verwendet werden. Sie können den Fortschritt der Spiegelung überwachen, indem Sie die Datei "+ / proc / mdstat +" überprüfen:

cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]

     209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]


unused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das + / dev / md0 + -Gerät in der RAID 6-Konfiguration mit + / dev / sda +, + / dev / sdb +, + / dev / sdc + `und + / dev / sdd + `Geräte. Die zweite hervorgehobene Zeile zeigt den Fortschritt des Builds. Sie können die Anleitung fortsetzen, während dieser Vorgang abgeschlossen ist.

Erstellen Sie das Dateisystem und hängen Sie es ein

Als nächstes erstellen Sie ein Dateisystem auf dem Array:

sudo mkfs.ext4 -F /dev/md0

Erstellen Sie einen Einhängepunkt, um das neue Dateisystem anzuhängen:

sudo mkdir -p /mnt/md0

Sie können das Dateisystem einhängen, indem Sie Folgendes eingeben:

sudo mount /dev/md0 /mnt/md0

Überprüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie Folgendes eingeben:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   18G   6% /

Das neue Dateisystem ist gemountet und zugänglich.

Speichern Sie das Array-Layout

Um sicherzustellen, dass das Array beim Booten automatisch wieder zusammengesetzt wird, müssen wir die Datei + / etc / mdadm / mdadm.conf + anpassen. Wir können das aktive Array automatisch scannen und die Datei anhängen, indem wir Folgendes eingeben:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Anschließend können Sie das initramfs- oder das anfängliche RAM-Dateisystem aktualisieren, damit das Array während des frühen Startvorgangs verfügbar ist:

sudo update-initramfs -u

Fügen Sie die neuen Mount-Optionen für das Dateisystem zur Datei + / etc / fstab + hinzu, damit das automatische Mounten beim Booten erfolgt:

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ihr RAID 6-Array sollte nun bei jedem Start automatisch zusammengestellt und gemountet werden.

Erstellen eines komplexen RAID 10-Arrays

Der RAID 10-Array-Typ wird traditionell implementiert, indem ein gestreiftes RAID 0-Array erstellt wird, das aus Gruppen von RAID 1-Arrays besteht. Dieser verschachtelte Array-Typ bietet sowohl Redundanz als auch hohe Leistung auf Kosten des großen Speicherplatzes. Das Dienstprogramm "+ mdadm " verfügt über einen eigenen RAID-10-Typ, der die gleichen Vorteile mit erhöhter Flexibilität bietet. Es wird nicht durch Verschachtelung von Arrays erstellt, sondern weist viele der gleichen Eigenschaften und Garantien auf. Wir werden hier das ` mdadm +` RAID 10 verwenden.

  • Anforderungen: mindestens * 3 Speichergeräte *

  • Hauptvorteil: Leistung und Redundanz

  • Beachten Sie Folgendes: Der Umfang der Kapazitätsreduzierung für das Array wird durch die Anzahl der Datenkopien definiert, die Sie behalten möchten. Die Anzahl der Kopien, die mit RAID 10 des Typs "+ mdadm +" gespeichert werden, kann konfiguriert werden.

Standardmäßig werden zwei Kopien jedes Datenblocks im sogenannten Near-Layout gespeichert. Die möglichen Layouts, die bestimmen, wie jeder Datenblock gespeichert wird, sind:

  • * in der Nähe von *: Die Standardeinstellung. Kopien jedes Chunks werden beim Striping nacheinander geschrieben, was bedeutet, dass die Kopien der Datenblöcke auf denselben Teil mehrerer Festplatten geschrieben werden.

  • * far *: Die erste und die nachfolgenden Kopien werden auf verschiedene Teile der Speichergeräte im Array geschrieben. Beispielsweise könnte der erste Block am Anfang einer Platte geschrieben werden, während der zweite Block auf einer anderen Platte auf halber Strecke geschrieben wird. Dadurch kann die Leseleistung für herkömmliche rotierende Datenträger auf Kosten der Schreibleistung verbessert werden.

  • * offset *: Jeder Streifen wird kopiert und um ein Laufwerk versetzt. Dies bedeutet, dass die Kopien zueinander versetzt sind, sich jedoch auf der Platte immer noch nahe beieinander befinden. Dies hilft, übermäßiges Suchen während einiger Workloads zu minimieren.

Weitere Informationen zu diesen Layouts finden Sie im Abschnitt "RAID10" auf dieser Seite "+ man +":

man 4 md

Sie können diese "+ man +" - Seite auch online finden unter here.

Identifizieren Sie die Komponentengeräte

Suchen Sie zunächst die Kennungen für die verwendeten Raw-Festplatten:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE TYPE MOUNTPOINT




vda       20G        disk
├─vda1    20G ext4   part /
└─vda15    1M        part

Wie Sie oben sehen können, haben wir vier Festplatten ohne Dateisystem mit einer Größe von jeweils 100 GB. In diesem Beispiel haben diese Geräte die Bezeichner "+ / dev / sda ", " / dev / sdb ", " / dev / sdc " und " / dev / sdd +" für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Erstellen des Arrays verwenden werden.

Erstellen Sie das Array

Um ein RAID 10-Array mit diesen Komponenten zu erstellen, übergeben Sie sie an den Befehl + mdadm --create +. Sie müssen den Gerätenamen angeben, den Sie erstellen möchten (in unserem Fall "+ / dev / md0 +"), den RAID-Level und die Anzahl der Geräte.

Sie können zwei Kopien im Near-Layout einrichten, indem Sie kein Layout und keine Kopiennummer angeben:

sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/ /dev/ /dev/ /dev/

Wenn Sie ein anderes Layout verwenden oder die Anzahl der Kopien ändern möchten, müssen Sie die Option "+ - layout = +" verwenden, die ein Layout und eine Kopienkennung verwendet. Die Layouts sind * n * für Nah, * f * für Fern und * o * für Versatz. Die Anzahl der zu speichernden Kopien wird anschließend angehängt.

Wenn Sie beispielsweise ein Array mit drei Kopien im Versatzlayout erstellen möchten, sieht der Befehl folgendermaßen aus:

sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/ /dev/ /dev/ /dev/

Das Tool + mdadm + beginnt mit der Konfiguration des Arrays (es verwendet tatsächlich den Wiederherstellungsprozess, um das Array aus Leistungsgründen zu erstellen). Dies kann einige Zeit in Anspruch nehmen, aber das Array kann in dieser Zeit verwendet werden. Sie können den Fortschritt der Spiegelung überwachen, indem Sie die Datei "+ / proc / mdstat +" überprüfen:

cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]

     209584128 blocks super 1.2 512K chunks  [4/4] [UUUU]


unused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das + / dev / md0 + -Gerät in der RAID 10-Konfiguration mit + / dev / sda +, + / dev / sdb +, + / dev / sdc + `und + / dev / sdd + `Geräte. Der zweite hervorgehobene Bereich zeigt das Layout, das für dieses Beispiel verwendet wurde (2 Kopien in der Near-Konfiguration). Der dritte hervorgehobene Bereich zeigt den Fortschritt des Builds. Sie können die Anleitung fortsetzen, während dieser Vorgang abgeschlossen ist.

Erstellen Sie das Dateisystem und hängen Sie es ein

Als nächstes erstellen Sie ein Dateisystem auf dem Array:

sudo mkfs.ext4 -F /dev/md0

Erstellen Sie einen Einhängepunkt, um das neue Dateisystem anzuhängen:

sudo mkdir -p /mnt/md0

Sie können das Dateisystem einhängen, indem Sie Folgendes eingeben:

sudo mount /dev/md0 /mnt/md0

Überprüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie Folgendes eingeben:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   18G   6% /

Das neue Dateisystem ist gemountet und zugänglich.

Speichern Sie das Array-Layout

Um sicherzustellen, dass das Array beim Booten automatisch wieder zusammengesetzt wird, müssen wir die Datei + / etc / mdadm / mdadm.conf + anpassen. Wir können das aktive Array automatisch scannen und die Datei anhängen, indem wir Folgendes eingeben:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Anschließend können Sie das initramfs- oder das anfängliche RAM-Dateisystem aktualisieren, damit das Array während des frühen Startvorgangs verfügbar ist:

sudo update-initramfs -u

Fügen Sie die neuen Mount-Optionen für das Dateisystem zur Datei + / etc / fstab + hinzu, damit das automatische Mounten beim Booten erfolgt:

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ihr RAID 10-Array sollte nun bei jedem Start automatisch zusammengestellt und gemountet werden.

Fazit

In diesem Handbuch wurde gezeigt, wie mit dem Linux-RAID-Dienstprogramm + mdadm verschiedene Arten von Arrays erstellt werden. RAID-Arrays bieten einige überzeugende Redundanz- und Leistungsverbesserungen, da mehrere Festplatten einzeln verwendet werden.

Nachdem Sie sich für den für Ihre Umgebung erforderlichen Array-Typ entschieden und das Gerät erstellt haben, müssen Sie lernen, wie Sie die tägliche Verwaltung mit "+ mdadm " durchführen. Unser Leitfaden unter https://www.digitalocean.com/community/tutorials/how-to-manage-raid-arrays-with-mdadm-on-ubuntu-16-04 zeigt an, wie RAID-Arrays mit aktiviertem Befehl " mdadm +" verwaltet werden Ubuntu 16.04] kann Ihnen den Einstieg erleichtern.