Wissensdatenbank · Server Dedicated & VPS

Linux-Software-RAID verwalten (Teil I)

Zuletzt aktualisiert am 2019-02-03

Linux-Software-RAID verwalten (Teil I)

Redundant Array of Independent Disks (RAID) ist eine Speicher- und Virtualisierungstechnologie, die Ende der 1980er-Jahre erstmals an Bedeutung gewann. Sie fasst mehrere physische Festplatten zu einer logischen virtuellen Einheit zusammen, um die Leistung zu verbessern und Redundanz zu ermöglichen. Die Daten werden je nach RAID-Levelauf die Laufwerke verteilt. RAID-Level sind zwar kein Ersatz für Backups, können aber dazu beitragen, Ihr System bei häufigen Hardwareproblemen wie Datenverlust durch Festplattenausfälle oder nicht behebbaren (Sektor-)Lesefehlern am Laufen zu halten.

RAID can be implemented and managed using “block” devices, which can be Software RAID (e.g. Linux Software RAID’s mdadm), Hardware RAID (i.e. dedicated hardware card), or FakeRAID (also called BIOS or Onboard RAID). This article will be focusing on the how-tos of Linux Software RAID and its management tool, mdadm.
 
Linux-Software-RAID ist ein Blockgerät, das auf den meisten anderen Geräten arbeiten kann—SATA, USB, IDE, SCSI oder einer Kombination davon. Beachten Sie, dass die RAID-Schicht das Dateisystem überhaupt nicht berührt . Sie können auf einem RAID-Gerät ein Dateisystem anlegen, genau wie auf jedem anderen Blockgerät.

 

So funktionieren Software-RAID-Geräte

Software-RAID-Geräte sollten wie gewöhnliche Festplatten oder Festplattenpartitionen betrachtet werden. Sie können aus mehreren anderen Blockgeräten „aufgebaut“ werden.

In a RAID implementation, there are spare disks or hot spares that do not take part in the RAID set until one of the active disks fail. Once a device failure is detected, that device is marked as ‘faulty’ and the set starts reconstruction immediately on the first hot spare available. Your system can now run for some time even with a faulty disk as the spare takes its place. If no spare disk is available, then the array runs in 'degraded' mode.

Note that faulty disks still appear and behave as members of the array. The RAID layer just avoids reading/writing them. Also, if a device needs to be removed from the array, remember to mark it first as ‘faulty’ before you remove it.

 

Ein RAID-Gerät auf Basis von SATA-Laufwerken erstellen

Sie können ganze Laufwerke als Teile eines RAID-Arrays verwenden. Davon sollten Sie jedoch absehen, wenn die Laufwerke bootfähig sein sollen. Erstellen Sie stattdessen auf den Laufwerken eine Partition (mit fdisk oder Parted) mit dem Partitionstyp ‘fd,’ der automatischen Erkennung von Linux Software-RAID.

Nachdem Sie auf jedem betreffenden Laufwerk (sda1, sdb1) eine Partition erstellt haben, können Sie nun das Array anlegen:

mdadm --create /dev/md0 -n 2 --level=1 /dev/sda1 /dev/sdb1

                Dabei gilt:

    • /dev/md0 - der Gerätepfad Ihres neuen Arrays
    • -n 2  - die Gesamtzahl der Laufwerke, die als Spare, aktiv oder fehlend eingestuft werden können; ein ‘fehlendes’ Laufwerk erfordert zusätzlich die Option -f , damit es funktioniert
    • --level=<RAID level>- kann einen der folgenden Werte enthalten:
      • einer von linear
      • raid0  ODER 0
      • stripe
      • raid1  ODER 1
      • mirror
      • raid4 OR 4
      • raid5 OR 5 
      • raid6 OR 6
      • raid10 OR 10
      • multipath OR mp
      • faulty
      • container
    • /dev/sda1, /dev/sdb1 - Pfad jedes Komponentengeräts

WICHTIGER HINWEIS: Wenn Sie von einem RAID-Gerät booten möchten, platzieren Sie denBootloader -Code am Anfang des physischen Laufwerks, das als zugrunde liegende Komponente des RAID-Geräts verwendet wird. Das bedeutet: Wenn Sie/dev/sda1 als Mitglied des Arrays verwenden /dev/md0 und Ihre primäre HDD/SSD als BIOS-Bootoption festgelegt ist, müssen Sie /dev/sda für den Bootloader -Code wählen. Dies gelingt zum Beispiel durch Ausführen von grub-install /dev/sda.

Nachdem Sie ein RAID-Gerät erstellt haben, können Sie es wie ein gewöhnliches lokales Laufwerk verwenden. Sie können es beispielsweise als physisches Volume für den Logical Volume Manager (LVM) des Linux-Kernels nutzen oder ein Dateisystem darauf anlegen.

Zwar werden die RAID-Metadaten auf jedem Komponentenlaufwerk gespeichert, dennoch sollten Sie Ihre RAID-Konfiguration für die spätere Verwendung sichern. So können Sie die Benennung der md-Geräte überwachen und korrigieren; andernfalls erhalten Sie Gerätenamen wie md126 und md127. Sie können Ihre Konfigurationsdatei mit dem folgenden Befehl speichern: 


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

Für Ubuntu:
/etc/mdadm/mdadm.conf

 

Überwachen eines RAID-Geräts

Sie können den Zustand eines RAID-Geräts proaktiv überwachen, indem Sie --monitor im Tool mdadm verwenden. Erkennt mdadm ein Problem mit dem Zustand eines Arrays, kann es eine Reihe von Aktionen ausführen, die Sie in der Befehlszeile festlegen. So kann es unter anderem eine E-Mail senden, ein angegebenes Programm ausführen oder eine Meldung an das Systemprotokoll senden. Lesen Sie die Dokumentation unter man mdadm (Abschnitt „Monitor“), um eine Liste der Optionen anzuzeigen.

Die meisten Linux-Distributionen stellen Wrapper für den Befehl mdadm –monitor bereit. CentOS / RHEL bietet beispielsweise einen mdmonitor -Dienst an, den Sie mit dem folgenden Befehl so einstellen können, dass er automatisch mit dem System startet: chkconfig mdmonitor on.

Eine weitere Möglichkeit, den Zustand eines Geräts zu prüfen, besteht darin, die Textdatei /proc/mdstat einzusehen. Dort sehen Sie, welche Arrays Ihr Kernel erkennt und in welchem Zustand sie sich jeweils befinden.

 

Austausch eines Laufwerks in einem RAID-Verbund

Um ein Laufwerk (z. B. (/dev/sdb1) in an active RAID array, it first needs to marked as ‘faulty’ by the kernel—marked as (F) in der Datei /proc/mdstat. Ist es noch nicht als fehlerhaft markiert, müssen Sie die Markierung vor dem Entfernen selbst vornehmen. Führen Sie dazu mdadm /dev/md0 -f /dev/sdb1.

Nachdem das Laufwerk entfernt wurde, können Sie mit mdadm /dev/md0 -a /dev/sdc1. Note that you can perform multiple operations with this one command—e.g. mdadm /dev/md0 -f /dev/sdb1 -r /dev/sdb1 -a /dev/sdc1.

Prüfen Sie anschließend den Inhalt der /proc/mdstat -Datei, um festzustellen, ob alles wie erwartet verlaufen ist. Der Vorgang ist korrekt verlaufen, wenn mdadm während des Austauschs keine Fehlermeldungen ausgegeben hat.

 

Ein RAID-Gerät auflösen

Unter Umständen müssen Sie ein RAID-Gerät vollständig auflösen, damit die zugrunde liegenden Geräte wieder vom System genutzt werden können. Dies ist beispielsweise der Fall, wenn Sie eine Ersatzfestplatte mit vorkonfigurierten RAID-Metadaten besitzen und Ihr Kernel das Array erkennt. In diesem Fall besteht das Array nur aus einem Mitglied, und es ist nicht möglich, das einzelne Laufwerk einfach zu entfernen.

Um das RAID-Gerät aufzulösen, müssen Sie das Array zunächst mit mdadm -S /dev/md0 stoppen. Im nächsten Schritt entfernen Sie die Metadaten von der Partition sda1, indem Sie den Befehl mdadm --zero-superblock /dev/sda1 ausführen. Denken Sie daran, die Metadaten von/dev/sda1 (nicht /dev/sda) auf null (0) zu setzen, wenn es Teil eines Arrays ist.

 

Quellen:

← Alle Knowledgebase Artikel

Tell us what you need

Compare available plans or describe your workload so we can discuss a suitable starting point.