Einführung

Das Dienstprogramm mdadm kann verwendet werden, um Speicher-Arrays mit den Software-RAID-Funktionen von Linux zu erstellen und zu verwalten. Administratoren haben eine große Flexibilität bei der Koordinierung ihrer einzelnen Speichergeräte und der Erstellung logischer Speichergeräte, die eine höhere Leistung oder Redundanzmerkmale aufweisen.

In diesem Handbuch werden wir eine Reihe verschiedener RAID-Konfigurationen durchgehen, die mit einem Ubuntu 16.04 Server eingerichtet werden können.

Voraussetzungen

Um die Schritte in dieser Anleitung auszuführen, sollten Sie:

  • Ein Nicht-Root-Benutzer mit sudo Rechten auf einem Ubuntu 16.04 Server sein: Die Schritte in diesem Leitfaden werden mit einem sudo-Benutzer durchgeführt. Um zu erfahren, wie Sie ein Konto mit diesen Rechten einrichten, folgen Sie unserer Anleitung zur Ersteinrichtung eines Ubuntu 16.04-Servers.
  • Ein grundlegendes Verständnis der RAID-Terminologie und -Konzepte: In diesem Leitfaden wird die RAID-Terminologie zwar nur am Rande erwähnt, ein umfassenderes Verständnis ist jedoch sehr nützlich. Um mehr über RAID zu erfahren und ein besseres Verständnis dafür zu bekommen, welcher RAID-Level für Sie der richtige ist, lesen Sie unseren Artikel Einführung in RAID.
  • Mehrere Rohspeichergeräte auf Ihrem Server verfügbar: Wir werden Ihnen zeigen, wie Sie verschiedene Arten von Arrays auf dem Server konfigurieren können. Daher benötigen Sie einige Laufwerke zum Konfigurieren. Wenn Sie DigitalOcean verwenden, können Sie Blockspeicher-Volumes verwenden, um diese Aufgabe zu erfüllen. Je nach Array-Typ benötigen Sie mindestens zwei bis vier Speichergeräte.

Vorhandene RAID-Geräte zurücksetzen

In dieser Anleitung werden wir die Schritte zur Erstellung verschiedener RAID-Levels vorstellen. Wenn Sie diesen Schritten folgen möchten, werden Sie wahrscheinlich Ihre Speichergeräte nach jedem Abschnitt wiederverwenden wollen. In diesem Abschnitt erfahren Sie, wie Sie Ihre Speichergeräte schnell zurücksetzen können, bevor Sie einen neuen RAID-Level testen. Überspringen Sie diesen Abschnitt, wenn Sie noch keine Arrays eingerichtet haben.

Warnung

Bei diesem Vorgang werden das Array und alle darauf geschriebenen Daten vollständig zerstört. Vergewissern Sie sich, dass Sie mit dem richtigen Array arbeiten und dass Sie alle Daten, die Sie behalten wollen, vor der Zerstörung des Arrays kopiert haben.

Finden Sie die aktiven Arrays in der Datei /proc/mdstat, indem Sie Folgendes eingeben:

  • cat /proc/mdstat
Output
Personalities : md0 : active raid0 sdc sdd 209584128 blocks super 1.2 512k chunks unused devices: <none>

Demounten Sie das Array aus dem Dateisystem:

  • sudo umount /dev/md0

Dann stoppen und entfernen Sie das Array durch Eingabe von:

  • sudo mdadm --stop /dev/md0
  • sudo mdadm --remove /dev/md0

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

Hinweis

Beachten Sie, dass sich die/dev/sd*-Namen bei jedem Neustart ändern können! Überprüfen Sie sie jedes Mal, um sicherzustellen, dass Sie mit den richtigen Geräten arbeiten.

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part

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

  • sudo mdadm --zero-superblock /dev/sdc
  • sudo mdadm --zero-superblock /dev/sdd

Sie sollten alle dauerhaften Verweise auf das Array entfernen. Bearbeiten Sie die Datei /etc/fstab und kommentieren Sie den Verweis auf Ihr Array aus oder entfernen Sie ihn:

  • sudo nano /etc/fstab
/etc/fstab
. . .# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

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

  • sudo nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf
. . .# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

Abschließend aktualisieren Sie die Datei initramfs erneut:

  • sudo update-initramfs -u

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

Erstellen eines RAID 0-Arrays

Das RAID 0-Array funktioniert, indem es Daten in Stücke aufteilt und sie über die verfügbaren Festplatten verteilt. Das bedeutet, dass jede Festplatte einen Teil der Daten enthält und dass beim Abrufen von Informationen auf mehrere Festplatten verwiesen wird.

  • Voraussetzungen: mindestens 2 Speichergeräte
  • Hauptvorteil: Leistung
  • Was ist zu beachten? Stellen Sie sicher, dass Sie über funktionierende Backups verfügen. Ein einziger Geräteausfall zerstört alle Daten im Array.

Identifizieren Sie die Komponentengeräte

Finden Sie zunächst die Bezeichner für die Raw-Disks, die Sie verwenden werden:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part

Wie Sie oben sehen können, haben wir zwei Disks ohne Dateisystem, die jeweils 100G groß sind. In diesem Beispiel haben diese Geräte die Bezeichnungen /dev/sda und /dev/sdb für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Aufbau des Arrays verwenden werden.

Erstellen des Arrays

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

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

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

  • cat /proc/mdstat
Output
Personalities : md0 : active raid0 sdb sda 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 unter Verwendung der Geräte /dev/sda und /dev/sdb erstellt.

Erstellen und Einhängen des Dateisystems

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 eingeben:

  • sudo mount /dev/md0 /mnt/md0

Prüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie eingeben:

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0

Das neue Dateisystem ist eingehängt und zugänglich.

Speichere 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, das anfängliche RAM-Dateisystem, aktualisieren, damit das Array während des frühen Bootvorgangs verfügbar ist:

  • sudo update-initramfs -u

Fügen Sie die neuen Einhängeoptionen für das Dateisystem in die Datei /etc/fstab ein, damit es beim Booten automatisch eingehängt wird:

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

Ihr RAID 0-Array sollte nun bei jedem Booten automatisch zusammengestellt und eingehängt werden.

Erstellen eines RAID 1 Arrays

Der RAID 1 Array-Typ wird durch Spiegelung der Daten über alle verfügbaren Festplatten implementiert. Jede Festplatte in einem RAID 1-Array erhält eine vollständige Kopie der Daten und bietet so Redundanz im Falle eines Geräteausfalls.

  • Voraussetzungen: mindestens 2 Speichergeräte
  • Hauptnutzen: Redundanz
  • Das ist zu beachten: Da zwei Kopien der Daten beibehalten werden, ist nur die Hälfte des Speicherplatzes nutzbar

Identifizieren Sie die Komponentengeräte

Finden Sie zunächst die Bezeichner für die Raw-Disks, die Sie verwenden werden:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part

Wie Sie oben sehen können, haben wir zwei Disks ohne Dateisystem, die jeweils 100G groß sind. In diesem Beispiel haben diese Geräte die Bezeichnungen /dev/sda und /dev/sdb für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Aufbau des Arrays verwenden werden.

Erstellen des Arrays

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

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

Wenn es sich bei den von Ihnen verwendeten Komponentengeräten nicht um Partitionen mit aktiviertem boot-Flag handelt, werden Sie wahrscheinlich die folgende Warnung erhalten. Es ist sicher, wenn Sie y eingeben, um fortzufahren:

Output
mdadm: 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.90mdadm: size set to 104792064KContinue creating array? y

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

  • cat /proc/mdstat
Output
Personalities : md0 : active raid1 sdb sda 104792064 blocks super 1.2 resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/secunused 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 an. Sie können mit der Anleitung fortfahren, während dieser Prozess abgeschlossen wird.

Erstellen und Einhängen des Dateisystems

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 eingeben:

  • sudo mount /dev/md0 /mnt/md0

Prüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie eingeben:

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 99G 60M 94G 1% /mnt/md0

Das neue Dateisystem ist eingehängt und zugänglich.

Speichere 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, das anfängliche RAM-Dateisystem, aktualisieren, damit das Array während des frühen Bootvorgangs verfügbar ist:

  • sudo update-initramfs -u

Fügen Sie die neuen Einhängeoptionen für das Dateisystem in die Datei /etc/fstab ein, damit das Array beim Booten automatisch eingehängt wird:

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

Ihr RAID-1-Array sollte nun bei jedem Booten automatisch zusammengesetzt und eingehängt werden.

Erstellen eines RAID 5 Arrays

Der RAID 5 Array-Typ wird durch Striping von Daten über die verfügbaren Geräte implementiert. Eine Komponente eines jeden Stripes ist ein berechneter Paritätsblock. Fällt ein Gerät aus, können der Paritätsblock und die verbleibenden Blöcke verwendet werden, um die fehlenden Daten zu berechnen. Das Gerät, das den Paritätsblock erhält, wird gedreht, so dass jedes Gerät über eine ausgewogene Menge an Paritätsinformationen verfügt.

  • Voraussetzungen: mindestens 3 Speichergeräte
  • Hauptnutzen: Redundanz mit mehr nutzbarer Kapazität.
  • Das ist zu beachten: Während die Paritätsinformationen verteilt werden, wird die Kapazität einer Festplatte für die Parität verwendet. RAID 5 kann in einem degradierten Zustand unter einer sehr schlechten Leistung leiden.

Identifizieren Sie die Komponentengeräte

Um zu beginnen, suchen Sie die Bezeichner für die rohen Festplatten, die Sie verwenden werden:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part

Wie Sie oben sehen können, haben wir drei Festplatten ohne ein Dateisystem, jede 100G groß. In diesem Beispiel haben diese Geräte die Bezeichnungen /dev/sda, /dev/sdb und /dev/sdc für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Aufbau des Arrays verwenden werden.

Erstellen des Arrays

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

  • sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

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

  • cat /proc/mdstat
Output
Personalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/secunused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das Gerät /dev/md0 in der RAID 5-Konfiguration unter Verwendung der Geräte /dev/sda, /dev/sdb und /dev/sdc erstellt. Die zweite hervorgehobene Zeile zeigt den Fortschritt der Erstellung an. Sie können mit der Anleitung fortfahren, während dieser Prozess abgeschlossen wird.

Erstellen und Einhängen des Dateisystems

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 eingeben:

  • sudo mount /dev/md0 /mnt/md0

Prüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie eingeben:

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0

Das neue Dateisystem ist eingehängt 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.

Bevor Sie die Konfiguration anpassen, überprüfen Sie noch einmal, ob das Array den Zusammenbau abgeschlossen hat. Aufgrund der Art und Weise, wie mdadm RAID 5-Arrays aufbaut, wird die Anzahl der Ersatzlaufwerke im Array ungenau angegeben, wenn das Array noch im Aufbau ist:

  • cat /proc/mdstat
Output
Personalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 unused devices: <none>

Die obige Ausgabe zeigt, dass der Neuaufbau 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

Danach können Sie das initramfs oder das anfängliche RAM-Dateisystem aktualisieren, so dass das Array während des frühen Bootvorgangs verfügbar ist:

  • sudo update-initramfs -u

Fügen Sie die neuen Einhängeoptionen für das Dateisystem zur Datei /etc/fstab hinzu, damit es beim Booten automatisch eingehängt wird:

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

Ihr RAID 5-Array sollte jetzt bei jedem Booten automatisch zusammengestellt und eingehängt werden.

Erstellen eines RAID 6 Arrays

Der RAID 6 Array-Typ wird durch Striping von Daten über die verfügbaren Geräte implementiert. Zwei Komponenten eines jeden Stripes sind berechnete Paritätsblöcke. Wenn ein oder zwei Geräte ausfallen, können die Paritätsblöcke und die verbleibenden Blöcke verwendet werden, um die fehlenden Daten zu berechnen. Die Geräte, die die Paritätsblöcke erhalten, werden so gedreht, dass jedes Gerät eine ausgewogene Menge an Paritätsinformationen hat. Dies ähnelt einem RAID 5-Array, ermöglicht aber den Ausfall von zwei Laufwerken.

  • Voraussetzungen: mindestens 4 Speichergeräte
  • Hauptvorteil: Doppelte Redundanz mit mehr nutzbarer Kapazität.
  • Das ist zu beachten: 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 degradierten Zustand unter einer sehr schlechten Leistung leiden.

Identifizieren Sie die Komponentengeräte

Um zu beginnen, suchen Sie die Bezeichner für die rohen Festplatten, die Sie verwenden werden:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part

Wie Sie oben sehen können, haben wir vier Festplatten ohne ein Dateisystem, jede 100G groß. In diesem Beispiel haben diese Geräte die Bezeichnungen /dev/sda, /dev/sdb, /dev/sdc und /dev/sdd für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Aufbau des Arrays verwenden werden.

Erstellen des Arrays

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

  • sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

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

  • cat /proc/mdstat
Output
Personalities : md0 : active raid6 sdd sdc sdb sda 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/secunused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das Gerät /dev/md0 in der RAID 6-Konfiguration unter Verwendung der Geräte /dev/sda, /dev/sdb, /dev/sdc und /dev/sdd erstellt. Die zweite hervorgehobene Zeile zeigt den Fortschritt der Erstellung an. Sie können mit der Anleitung fortfahren, während dieser Prozess abgeschlossen wird.

Erstellen und Einhängen des Dateisystems

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 eingeben:

  • sudo mount /dev/md0 /mnt/md0

Prüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie eingeben:

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0

Das neue Dateisystem ist eingehängt und zugänglich.

Speichere 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

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

  • sudo update-initramfs -u

Fügen Sie die neuen Einhängeoptionen für das Dateisystem in die Datei /etc/fstab ein, damit es beim Booten automatisch eingehängt wird:

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

Ihr RAID 6-Array sollte nun bei jedem Booten automatisch zusammengestellt und eingehängt werden.

Erstellen eines komplexen RAID 10-Arrays

Der RAID 10-Array-Typ wird traditionell durch die Erstellung eines gestreiften RAID 0-Arrays implementiert, das aus Gruppen von RAID 1-Arrays besteht. Dieser verschachtelte Array-Typ bietet sowohl Redundanz als auch hohe Leistung, allerdings auf Kosten eines großen Speicherplatzbedarfs. Das Dienstprogramm mdadm verfügt über einen eigenen RAID 10-Typ, der dieselben Vorteile mit größerer Flexibilität bietet. Er wird nicht durch Verschachtelung von Arrays erstellt, hat aber viele der gleichen Eigenschaften und Garantien. Wir werden hier das mdadm RAID 10 verwenden.

  • Voraussetzungen: mindestens 3 Speichergeräte
  • Hauptvorteil: Leistung und Redundanz
  • Das ist zu beachten: Der Umfang der Kapazitätsreduzierung für das Array wird durch die Anzahl der Datenkopien bestimmt, die Sie behalten möchten. Die Anzahl der Kopien, die bei RAID 10 im Stil mdadm gespeichert werden, ist konfigurierbar.

Standardmäßig werden zwei Kopien jedes Datenblocks im so genannten „nahen“ Layout gespeichert. Die möglichen Layouts, die bestimmen, wie jeder Datenblock gespeichert wird, sind:

  • near: Die Standardanordnung. Kopien jedes Chunks werden beim Striping nacheinander geschrieben, d.h. die Kopien der Datenblöcke werden über denselben Teil mehrerer Festplatten geschrieben.
  • far: Die erste und die folgenden Kopien werden auf verschiedene Teile der Speichergeräte im Array geschrieben. Zum Beispiel könnte der erste Datenblock in der Nähe des Anfangs einer Platte geschrieben werden, während der zweite Datenblock auf halber Strecke auf einer anderen Platte geschrieben würde. Dies kann bei traditionellen Spinning-Disks zu einer Verbesserung der Leseleistung auf Kosten der Schreibleistung führen.
  • offset: Jeder Stripe wird mit einem Versatz von einem Laufwerk kopiert. Das bedeutet, dass die Kopien zueinander versetzt sind, aber immer noch nahe beieinander auf der Platte liegen. Dies trägt dazu bei, übermäßige Suchvorgänge bei bestimmten Arbeitslasten zu minimieren.

Weitere Informationen zu diesen Layouts finden Sie im Abschnitt „RAID10“ auf dieser man Seite:

  • man 4 md

Sie können diese man Seite auch hier online finden.

Identifizieren Sie die Komponentengeräte

Um zu beginnen, suchen Sie die Bezeichner für die rohen Festplatten, die Sie verwenden werden:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part

Wie Sie oben sehen können, haben wir vier Festplatten ohne ein Dateisystem, jede 100G groß. In diesem Beispiel haben diese Geräte die Bezeichnungen /dev/sda, /dev/sdb, /dev/sdc und /dev/sdd für diese Sitzung erhalten. Dies sind die Rohkomponenten, die wir zum Aufbau des Arrays verwenden werden.

Erstellen des Arrays

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

Sie können zwei Kopien unter Verwendung des Near-Layouts einrichten, indem Sie kein Layout und keine Kopiennummer angeben:

  • sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

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 benötigt. Die Layouts sind n für nah, f für fern und o für versetzt. Die Anzahl der zu speichernden Kopien wird anschließend angehängt.

Um beispielsweise ein Array mit drei Kopien im Offset-Layout zu erstellen, würde der Befehl folgendermaßen aussehen:

  • sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

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

  • cat /proc/mdstat
Output
Personalities : md0 : active raid10 sdd sdc sdb sda 209584128 blocks super 1.2 512K chunks 2 near-copies resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/secunused devices: <none>

Wie Sie in der ersten hervorgehobenen Zeile sehen können, wurde das Gerät /dev/md0 in der RAID-10-Konfiguration unter Verwendung der Geräte /dev/sda, /dev/sdb, /dev/sdc und /dev/sdd erstellt. Der zweite hervorgehobene Bereich zeigt das Layout, das für dieses Beispiel verwendet wurde (2 Kopien in der nahen Konfiguration). Der dritte hervorgehobene Bereich zeigt den Fortschritt der Erstellung an. Sie können mit der Anleitung fortfahren, während dieser Prozess abgeschlossen wird.

Erstellen und Einhängen des Dateisystems

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 eingeben:

  • sudo mount /dev/md0 /mnt/md0

Prüfen Sie, ob der neue Speicherplatz verfügbar ist, indem Sie eingeben:

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0

Das neue Dateisystem ist eingehängt und zugänglich.

Speichere 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

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

  • sudo update-initramfs -u

Fügen Sie die neuen Einhängeoptionen für das Dateisystem in die Datei /etc/fstab ein, damit das Array beim Booten automatisch eingehängt wird:

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

Ihr RAID 10-Array sollte nun bei jedem Booten automatisch zusammengestellt und eingehängt werden.

Abschluss

In dieser Anleitung haben wir gezeigt, wie man verschiedene Arten von Arrays mit dem mdadm Software-RAID-Dienstprogramm von Linux erstellt. RAID-Arrays bieten einige überzeugende Redundanz- und Leistungsverbesserungen gegenüber der Verwendung mehrerer einzelner Festplatten.

Wenn Sie sich für den für Ihre Umgebung benötigten Array-Typ entschieden und das Gerät erstellt haben, müssen Sie lernen, wie Sie die tägliche Verwaltung mit mdadm durchführen. Unsere Anleitung zur Verwaltung von RAID-Arrays mit mdadm unter Ubuntu 16.04 kann Ihnen den Einstieg erleichtern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.