Linux-Software-RAID

16. Juni 2022

Lang: cs en de es

Hardware-RAID hat viele Vorteile. Es sei denn, Sie betreiben eine große Infrastruktur und benötigen wirklich die Vorteile von HW-RAID für eine Unternehmenslösung, Ich bevorzuge ein Software-Linux-RAID namens mdadm, weil es viele praktische Vorteile bietet. In diesem Tutorial beschreibe ich die Vorteile und die Verwendung von mdadm.

Was ein RAID ist, können Sie auf Wikipedia nachlesen. Ich möchte nur darauf hinweisen, dass die Leute oft verschiedene Begriffe und Eindrücke verwechseln, daher ist es eine gute Idee, die genauen Begriffe zu studieren. RAID ist keine Datensicherung. RAID wird verwendet, um entweder Festplattenspeicher zu konsolidieren oder um eine höhere Verfügbarkeit oder bessere Leistung zu erreichen. Einige Motherboards werden mit RAID verkauft, aber in Wirklichkeit handelt es sich um Software-RAID + Windows-Treiber. Ein solches RAID wird als fake RAID bezeichnet.

Welches RAID soll verwendet werden? RAID 0, RAID 1, RAID 5, RAID 6, RAID 10. RAID 1 ist aufgrund der Datenredundanz, der Benutzerfreundlichkeit und der Tatsache, dass nur eine zusätzliche Festplatte benötigt wird, die häufigste Wahl. Andererseits ist RAID 0 für sich genommen eine völlig ungeeignete Wahl für den Einsatz auf Servern, da es die Sicherheit der Datenspeicherung verringert. Seine Verwendung ist nur dann angebracht, wenn wir bereit sind, einen Ausfall oder Verlust von Daten zuzulassen - d.h. Datensicherung.

Video-RAID

Eine verbale Beschreibung, was RAID ist und was nicht, finden Sie in diesem Video:

Linux-Software-RAID

Linux Software-RAID, genannt mdadm, ist eine Lösung, die sich auf der Linux-Kernel-Ebene befindet.

    Seine Hauptvorteile sind:
  • Stabilität
  • .
  • Unabhängigkeit von HW
  • Transparenz
  • Migrationsmöglichkeit zwischen verschiedenen HWs und Linux-Distributionen
Mit Linux-Software-RAID können Sie ein solches RAID ohne spezielle Hardware betreiben. Es besteht also keine Notwendigkeit, einen zusätzlichen RAID-Controller zu unterhalten. Sie können das RAID auf einer anderen Linux-Distribution verwenden. Oder Sie können die Daten wiederherstellen, wenn Sie nur noch eine von zwei Festplatten von RAID 1 haben.

Übrigens, wenn Sie RAID benötigen, können Sie nicht nur mdadm sondern auch das BTRFS-Dateisystem oder die LVM-Technologie.

Festplattenpartitionierung

Die Größe der Partition ist individuell auf Ihre Bedürfnisse abgestimmt. Sie können die Tools fdisk, cfdisk, parted oder das grafische gparted zum Partitionieren verwenden.

Wie kann man partitionieren? Wir können die Partitionierung sicher aus dem bestehenden System ableiten, aber mit Blick auf RAID ist es vielleicht besser, nur eine große Partition über die gesamte Platte zu wählen. Der Grund für eine einzelne Partition mit RAID auf jeder Platte ist die Leistung. Das liegt daran, dass der RAID-Treiber versucht, die Lesevorgänge aus dem Array zu optimieren und entweder von der ersten Platte liest, die nichts tut, oder von der Platte, von der er zuletzt den Zugriff auf die nächstgelegene Partition angefordert hat. (Die Situation wird für RAID1 beschrieben) Da der letzte Bereich, auf den zugegriffen wurde, in den Informationen über jedes RAID-Array gespeichert ist, verhält sich dieser Algorithmus bei mehreren Arrays auf einer einzigen Platte nicht sehr effizient.

Sie können ein identisches Layout auf einer zweiten Platte erstellen, indem Sie einfach diesen Befehl verwenden:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Erstellen eines RAID

RAID 1 aus zwei Festplatten erstellen

mdadm --create /dev/md1 l 1 -n 2 /dev/sda1 /dev/sdb2

Auf diesem neu erstellten Block-Device können Sie dann zum Beispiel ein JFS-Dateisystem anlegen, das Gerät in eine Verzeichnisstruktur einhängen und mit dem Speichern von Daten beginnen.

Erstellen Sie ein RAID 5, das eigentlich drei Festplatten haben sollte, aber wir haben bisher nur zwei:

mdadm --create /dev/md/data -l5 -n3 /dev/sdb3 /dev/sdd3 fehlt

Hinzufügen einer Festplatte

Fügen Sie eine unbenutzte neue Festplatte zum RAID hinzu:

mdadm /dev/md0 --add /dev/sdc1

Entfernen der Festplatte

Der Datenträger kann vom System als defekt markiert werden oder wir können ihn manuell markieren:

mdadm /dev/md0 --fail /dev/sdc1

Entfernen einer fehlerhaften Festplatte aus dem RAID:

mdadm /dev/md0 --remove /dev/sdb1 /dev/sdc1

Wenn die Platte physisch vom Server entfernt wird, muss sie trotzdem aus dem RAID im System entfernt werden. Denn sonst gilt sie beim Anschluss an einen PC weiterhin als verwendet.

Konfiguration speichern

Es ist eine gute Idee, die Konfiguration aller RAIDs in einer Konfigurationsdatei zu speichern.

Wir können das System pro-scannen und die Ausgabe direkt am Ende der Konfigurationsdatei hinterlassen:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Oder machen Sie das Gleiche für ein bestimmtes Plattenarray:
mdadm --detail /dev/md1 --brief >>/etc/mdadm.conf

Es ist auch eine gute Idee, den mdadm-Dienst zu aktivieren:


 systemctl enable mdadm.service

Auslagern eines RAID

Wie tauscht man ein RAID aus?

    Es gibt zwei Ansätze:
  • Swap auf RAID legen
  • Swap auf RAID1 legen

Es ist nicht ratsam, Swap auf ein Software-RAID zu legen, da es zu einem Deadlock kommen kann, wenn dem System der freie Speicher ausgeht. Mir persönlich ist das noch nie passiert.

Wenn Sie ein Software-RAID 1 betreiben, um eine höhere Verfügbarkeit zu erreichen, und den Swap nicht auf RAID 1 setzen, dann bedeutet der Tod einer Festplatte einen Ausfall. Wenn Sie auf RAID 1 auslagern, ist das kein Problem.

Ich lasse Swap auf RAID1 laufen.

Überprüfung des RAID-Status

Sie können eine Liste und Details aller RAIDs mit dem folgenden Befehl abrufen:

cat /proc/mdstat

Starten Sie die Datenprüfung auf dem RAID:

echo "check" > /sys/block/md1/md/sync_action

Befehl zum Starten der RAID-Synchronisation:

echo repair >/sys/block/md<#>/md/sync_action

In dieser Datei des jeweiligen RAIDs lässt sich die Anzahl der Fehler nachvollziehen:

cat /sys/block/md*/md/mismatch_cnt

Wenn Ihr System das Disk-Array beim Booten nicht automatisch faltet, zum Beispiel wenn Sie von einer Rettungs-CD booten, können Sie es mit diesem Befehl manuell falten:

mdadm --assemble --verbose /dev/md1 /dev/sdb1

Stoppen des RAID-Verbunds:

mdadm --stop /dev/mdXi

Entfernen Sie die RAID-Informationen von der Platte:

mdadm --zero-superblock /dev/X
Tun Sie dies, wenn Sie das RAID auf der Festplatte ungültig gemacht haben. Dadurch werden alle RAID-Metadaten gelöscht und das System betrachtet die Platte nicht mehr als zu einem RAID gehörig.

Wenn Sie den Server auf RAID migrieren, müssen Sie sicherstellen, dass Sie die Konfiguration im Bootloader aktualisiert haben, fstab-Datei aktualisiert und eine neue initramfs-Datei erstellt haben, sonst können Sie nicht erfolgreich booten.

Backup

Stellen Sie sicher, dass Sie einen Bootloader (typischerweise GRUB) einrichten und ihn auf alle Festplatten schreiben. Andernfalls kann es zu Problemen beim Booten des Servers kommen, wenn kein Bootloader vorhanden ist.

Mdadm-Handbuch

Video-Tutorial, wie man ein Linux-Software-RAID1 erstellt:

Andere Ressourcen und Themen

Weitere Anleitungen zu Linux-Servern finden Sie in diesem ebook.
Das nächste Mal werde ich auf die Informationen zum Logical Volume Management eingehen.

Artikel zu einem ähnlichen Thema

VMware vs. Proxmox: Leistungsvergleich
GitLab CI/CD: Testautomatisierung und Anwendungsbereitstellung
VPS von VMware zu Proxmox migrieren
VMware-Lizenzierungsänderung
Ausführen von Microsoft SQL Server unter Linux
Sicherung: der Proxmox Backup Server
Linux als Router und Firewall
Hochladen eines Docker-Images in die Docker-Registry
Linux: Verwaltung logischer Datenträger
Ausführen einer Webanwendung hinter einem Proxy
Migration von Postfächern
Mehrstufige Docker-Erstellung
Sichern Ihrer Daten durch Einschalten des Computers
Podman
Importieren von Windows in die Proxmox-Virtualisierung
Docker und PHP-Mail
Proxmox-Virtualisierung
Docker und Cron
Lenovo ThinkPad X1 Carbon: Inbetriebnahme des LTE-Modems EM7544
Yocto-Projekt: Erstellen eines eigenen Betriebssystems für eingebettete Geräte
Vorbereiten eines Linux-Servers für die Ausführung einer Webanwendung in Python
Wie man eine schlechte Dateifreigabeleistung in Docker behebt
Wie man Docker richtig einsetzt
Installation von Linux auf einem dedizierten HPE ProLiant DL320e Server
Wie man eine Webanwendung einem Belastungstest unterzieht
Warum das JFS-Dateisystem verwenden
Booten von einer 4TB-Festplatte mit GTP unter UEFI
Btrfs-Dateisystem
Raspberry PI
WINE - Ausführen von Windous Programmen unter Linux
GNU/Linux-Betriebssystem

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+