In seiner Antwort auf die Frage "Mixed Raid Types" schlägt HBruijn vor, LVM zur Implementierung von RAID gegenüber dem Standard-MDRAID zu verwenden.
Nach einer kurzen Untersuchung scheint LVM auch RAID-Funktionen zu unterstützen. In der Vergangenheit habe ich LVM zusätzlich zu MDRAID verwendet und mir war bisher nicht bewusst, dass LVM auch RAID-Funktionen unterstützt. Dies scheint eine relativ neue Entwicklung zu sein, aber ich habe nicht genau herausgefunden, wann dies implementiert wurde.
Dies sind also alternative Möglichkeiten, um Software-RAID unter Linux zu implementieren. Was sind die Vor- und Nachteile dieser beiden unterschiedlichen Ansätze? Ich suche nach Feature-Vergleichen zwischen den beiden Ansätzen, damit die Leute entscheiden können, was für sie besser ist. Auf Experimenten basierende Schlussfolgerungen (wie in, diese Funktion funktioniert nicht so gut wie diese Funktion und aus diesem Grund) sind auch in Ordnung, vorausgesetzt, Sie geben Ihre Daten in die Antwort ein.
Einige spezifische Probleme:
- Angenommen, ich möchte sw RAID + LVM ausführen (ein häufiges Szenario). Sollte ich die LVM-Unterstützung für SW-RAID verwenden und daher ein Dienstprogramm anstelle von zwei verwenden? Hat dieser stärker integrierte Ansatz irgendwelche Vorteile?
- Hat die LVM-Unterstützung für SW-RAID erhebliche Mängel im Vergleich zum ausgereifteren MDADM? Wie stabil / fehlerfrei ist die LVM-Unterstützung für SW-RAID? Es scheint, dass diese Unterstützung nur bis 2011 zurückreicht (siehe unten), während MDADM viel älter ist. Wie wird der Funktionsumfang verglichen? Hat es signifikante Funktionsmängel im Vergleich zu MDADM? Umgekehrt, werden alle SW-RAID-Funktionen unterstützt, die MDADM nicht bietet?
ANMERKUNGEN:
Es gibt eine ausführliche Diskussion unter http://www.olearycomputers.com/ll/linux_mirrors.html, aber ich konnte nicht herausfinden, an welchem Datum es geschrieben wurde.
Ähnliche Frage zu Serverfault: Linux LVM-Spiegel vs. MD-Spiegel . Diese Frage wurde jedoch im Jahr 2010 gestellt, und die Antworten sind möglicherweise veraltet.
Der Changelog-Eintrag für Version 2.02.87 - 12. August 2011 hat
Füge configure --with-raid für den neuen Segtyp 'raid' für MD RAID 1/4/5/6 hinzu
Es sieht also so aus, als ob die RAID-Unterstützung in LVM etwa 3 Jahre alt ist.
quelle
md
Volumes arbeiten. So haben Sielvextend
undpvmove
verfügbar für die Bewegung zwischen den Geräten während beimd
dem Prozess viel mehr manuell ohne klaren Nutzen ist.Antworten:
Wie ausgereift und leistungsfähig ist LVM RAID?
LVM-RAID ist eigentlich im Verborgenen. Grundsätzlich werden zwei logische Volumes pro RAID-Gerät erstellt (eines für Daten mit der Bezeichnung "rimage" und eines für Metadaten mit der Bezeichnung "rmeta"). Diese werden dann an die vorhandenen mdraid-Fahrer weitergeleitet. Dinge wie der Umgang mit Festplattenlesefehlern, E / A-Lastausgleich usw. sollten also ziemlich ausgereift sein.
Das sind die guten Nachrichten.
Werkzeuge
Sie können es nicht verwenden
mdadm
(zumindest nicht auf einfache Weise¹), und die LVM-RAID-Tools sind bei weitem nicht so ausgereift.lvs
Kann Ihnen beispielsweise in Debian Wheezy nicht den RAID5-Synchronisationsstatus mitteilen. Ich bezweifle sehr, dass Reparatur und Wiederherstellung (insbesondere in Situationen, in denen "das niemals passieren sollte!") Annähernd so gut ist wie mdadm (und ich bin versehentlich auf eine dieser in meinen Tests gestoßen und habe sie schließlich einfach aufgegeben - Wiederherstellung mit mdadm wäre einfach gewesen).Besonders wenn Sie nicht die neuesten Versionen aller Tools verwenden, wird es schlimmer.
Fehlende Funktionen
Aktuelle Versionen von LVM-RAID unterstützen das Verkleinern (
lvreduce
) eines logischen RAID-Volumes nicht. Sie unterstützen auch nicht das Ändern der Anzahl der Festplatten oder des RAID-Levels (eslvconvert
wird eine Fehlermeldung angezeigt, die besagt, dass dies noch nicht unterstützt wird).lvextend
funktioniert und kann sogar RAID-Level erhöhen, für die mdraid erst kürzlich Unterstützung gewonnen hat, wie z. B. RAID10. Nach meiner Erfahrung ist das Erweitern von LVs weitaus häufiger als das Reduzieren von LVs.Einige andere Funktionen von mdraid sind nicht vorhanden, und insbesondere können Sie nicht alle Optionen von mdadm anpassen.
In älteren Versionen (wie zum Beispiel Debian Wheezy) unterstützt LVM RAID auch keine Erweiterung. Zum Beispiel bei Wheezy:
Im Allgemeinen möchten Sie die Wheezy-Versionen nicht ausführen.
Das obige ist, sobald Sie es installiert haben. Auch das ist kein trivialer Prozess.
Werkzeugprobleme
Ich habe mit meiner Jessie-VM (virtuell) eine Festplatte getrennt. Das hat funktioniert, die Maschine lief weiter.
lvs
Es gab jedoch keinen Hinweis darauf, dass die Arrays abgebaut waren. Ich brachte die Scheibe wieder an und entfernte eine Sekunde. Bin am Laufen geblieben (das ist raid6). Neu angebracht, noch keine Anzeige ablvs
. Ich habelvconvert --repair
die Lautstärke eingestellt, es hat mir gesagt, dass es in Ordnung ist. Dann zog ich eine dritte Scheibe ... und die Maschine starb. Steckte es wieder ein, startete neu und bin jetzt unsicher, wie man es repariert.mdadm --force --assemble
würde das beheben; wedervgchange
nochlvchange
scheint diese Option zu haben (lvchange akzeptiert--force
, aber es scheint nicht , etwas zu tun). Selbst alsdmsetup
ich versuchte , die Zuordnungstabelle direkt an den Kernel zu übergeben, konnte ich nicht herausfinden, wie ich sie wiederherstellen sollte.Es
mdadm
ist auch ein spezielles Tool für die Verwaltung von RAID. LVM leistet viel mehr, aber es fühlt sich an (und ich gebe zu, dass dies ziemlich subjektiv ist), als ob die RAID-Funktionalität in gewisser Weise da reingeschoben worden wäre. es passt nicht ganz.Wie installiert man eigentlich ein System mit LVM RAID?
Hier ist eine kurze Übersicht über die Installation auf Debian Jessie oder Wheezy. Jessie ist viel einfacher; beachte, wenn du das auf Wheezy probierst, lies das Ganze zuerst…
Verwenden Sie zur Installation ein vollständiges CD-Image, kein Netinst-Image.
Fahren Sie wie gewohnt fort, wechseln Sie zur Festplattenpartitionierung und richten Sie die physischen LVM-Volumes ein. Sie können setzen
/boot
(auf Jessie, und auf Wheezy mit etwas Arbeit unten beschrieben) auf LVM-RAID.Erstellen Sie Ihre Volumengruppe (n). Belassen Sie es im LVM-Menü.
Erster Spaß: Der Installer hat das
dm-raid.ko
Modul nicht geladen oder ist gar nicht verfügbar! Sie können es also aus dem zu installierenden Linux-Image-Paket herunterladen. Wechseln Sie zu einer Konsole (z. B. Alt- F2) und:Das Installationsprogramm weiß nicht, wie LVM-RAID-LVs erstellt werden, daher müssen Sie die Befehlszeile verwenden, um dies zu tun. Hinweis: Ich habe kein Benchmarking durchgeführt. Die Stripe-Größe (
-I
) unten ist eine Vermutung für mein VM-Setup:Auf Jessie können Sie RAID10 für den Austausch verwenden. RAID10 wird auf Wheezy nicht unterstützt. Sie können also stattdessen zwei Swap-Partitionen verwenden, jede mit RAID1. Sie müssen jedoch genau angeben, auf welchen physischen Datenträgern sie abgelegt werden sollen, oder es werden beide Hälften des Spiegels auf derselben Festplatte abgelegt . Ja. Ernsthaft. Wie auch immer, das sieht so aus:
Wechseln Sie schließlich zurück zum Installationsprogramm und klicken Sie im LVM-Menü auf "Fertig stellen". Es werden nun viele logische Volumes angezeigt. Das ist der Installateur, der nicht versteht, was los ist. ignoriere alles mit
rimage
oderrmeta
in ihrem Namen (siehe den ersten Absatz oben für eine Erklärung dessen, was das ist).Erstellen Sie wie gewohnt Dateisysteme, tauschen Sie Partitionen usw. aus. Installieren Sie das Basissystem usw., bis Sie zur Eingabeaufforderung grub gelangen.
Auf Jessie funktioniert grub2, wenn es auf dem MBR installiert ist (oder wahrscheinlich mit EFI, aber ich habe das nicht getestet). Bei Wheezy schlägt die Installation fehl, und die einzige Lösung besteht darin, Jessies grub2 zurückzuspielen. Das ist eigentlich ziemlich einfach, es kompiliert sauber auf Wheezy. Holen Sie sich irgendwie Ihre zurückportierten Grub-Pakete hinein
/target
(oder machen Sie es in einer Sekunde nach der Chroot), dann:Eigentlich hing auf meiner letzten Jessie VM Grub-Installation. Das Umschalten auf F2 und das Ausführen
while kill $(pidof vgs); do sleep 0.25; done
, gefolgt von demselben fürlvs
, haben es durch grub-install geschafft. Trotzdem schien es eine gültige Konfiguration zu generieren, aber nur für den Fall, dass ich einechroot /target /bin/bash
gemacht habe, mich vergewissert habe/proc
und/sys
gemountet bin und eine gemacht habeupdate-grub
. Damals war es vollbracht. Ich habe dann adpkg-reconfigure grub-pc
ausgewählt, um grub auf allen MBRs der virtuellen Laufwerke zu installieren.Wählen Sie auf Wheezy, nachdem Sie die oben genannten Schritte ausgeführt haben, "Ohne Bootloader fortfahren".
Beenden Sie die Installation. Es wird hochfahren. Wahrscheinlich.
Community-Wissen
Es gibt eine ganze Reihe von Leuten, die sich damit auskennen
mdadm
und viel Erfahrung mit der Bereitstellung haben. Google wird wahrscheinlich die meisten Fragen dazu beantworten. Im Allgemeinen können Sie hier eine Frage dazu erwarten, um Antworten zu erhalten, wahrscheinlich innerhalb eines Tages.Das Gleiche gilt nicht für LVM RAID. Es ist schwer, Führer zu finden. Die meisten von mir ausgeführten Google-Suchanfragen enthalten Informationen zur Verwendung von mdadm-Arrays als PVs. Um ehrlich zu sein, liegt dies wahrscheinlich größtenteils daran, dass es neuer und weniger verbreitet ist. Irgendwie fühlt es sich unfair an, dies abzulehnen - aber wenn etwas schief geht, macht es die viel größere Community um mdadm wahrscheinlicher, meine Daten wiederherzustellen.
Fazit
LVM-RAID schreitet ziemlich schnell voran. Auf Wheezy ist es nicht wirklich verwendbar (zumindest ohne Backports von LVM und dem Kernel). Zuvor, im Jahr 2014, bei Debian-Tests, fühlte es sich wie eine interessante, aber unvollendete Idee an. Aktuelle Tests, im Grunde genommen das, was Jessie werden wird, scheinen etwas zu sein, das Sie möglicherweise tatsächlich verwenden, wenn Sie häufig kleine Slices mit unterschiedlichen RAID-Konfigurationen erstellen müssen (etwas, mit dem Sie einen administrativen Albtraum haben
mdadm
).Wenn einige große mdadm-RAID-Arrays, die mit LVM in Partitionen aufgeteilt wurden, Ihren Anforderungen gerecht werden, würde ich vorschlagen, diese weiterhin zu verwenden. Wenn Sie stattdessen viele Arrays (oder sogar Arrays mit logischen Volumes) erstellen müssen, sollten Sie stattdessen auf LVM-RAID umsteigen. Aber machen Sie gute Backups.
Viele der Anwendungen von LVM-RAID (und sogar von mdadm-RAID) werden von Dingen wie Cluster-Speicher- / Objektsystemen, ZFS und btrfs übernommen. Ich empfehle auch, diese zu untersuchen, da sie möglicherweise besser Ihren Bedürfnissen entsprechen.
Vielen Dank
Ich möchte psusi dafür danken, dass ich den Status von LVM-RAID überarbeitet und diesen Beitrag aktualisiert habe.
Fußnoten
Ich vermute, Sie könnten Device Mapper verwenden, um die Metadaten und Daten so zusammenzufügen, dass
mdadm --assemble
sie es aufnehmen. Natürlich könnte man auch einfachmdadm
auf logischen Volumes laufen ... und das wäre vernünftiger.Bei der Wheezy-Installation habe ich dies nicht zum ersten Mal getan und bin ohne Grub-Konfiguration gelandet. Ich musste das System booten, indem ich alle Informationen an der Eingabeaufforderung von grub eingab. Nach dem Booten hat das geklappt, daher denke ich, dass es vom Installationsprogramm aus gut funktioniert. Wenn Sie an der Grub-Eingabeaufforderung landen, müssen Sie die folgenden magischen Zeilen eingeben:
PS: Es ist schon eine Weile her, dass ich die ursprünglichen Experimente durchgeführt habe. Ich habe meine Originalnotizen zur Verfügung gestellt. Beachten Sie, dass ich jetzt neuere Arbeiten durchgeführt habe, die in dieser Antwort und nicht in diesen Notizen behandelt werden.
quelle
dpkg-deb
Bietet eine sauberere Möglichkeit, Dateien aus Deb-Paketen zu extrahieren, ohne stufenweise herumhüpfen zu müssen.dpkg-deb
in der Installationsumgebung verfügbar? Früher war es nicht ... Stellen Sie sicher, dass Sie auch Wheezy überprüfen.ar -x
sollte auch funktionieren, um deb-Archive zu entpacken, obwohl es umständlicher ist. Wie wäre es auch, wenn Sie Ihre Antwort mit dem aktuellen Status aktualisieren?Ich wusste auch nicht, dass LVM RAID ausführen kann. Persönlich würde ich bei mdadm bleiben, da es eine viel ausgereiftere Software ist, die dasselbe tut. Wenn etwas mit LVM-RAID nicht funktioniert, können Sie wahrscheinlich nicht so viel Unterstützung erhalten, wie wenn Sie mit mdadm gegangen wären. Darüber hinaus würde ich LVM RAID nicht vertrauen, da LVM sich in der Vergangenheit als nicht die robusteste Software erwiesen hat.
ZFS und BTRFS sind die Zukunft. Die Vorteile, die sie bieten, gehen über das hinaus, was auf der Blockebene möglich ist. Sofern ich keine Kompatibilität anstrebe, verwende ich LVM / mdadm nicht mehr. ZFS und BTRFS verfügen über zahlreiche Funktionen wie Komprimierung, Deduplizierung und Copy-on-Write, auf die ich hier jedoch nicht näher eingehen werde, da sie etwas außerhalb des Anwendungsbereichs liegen würden.
Am Ende recherchieren Sie und verwenden Sie, was Ihren Bedürfnissen / Wünschen entspricht.
quelle
LVM+XFS
BTRFS zu bewegen als in Richtung . Sie unterstützen BTRFS, aber das ist eher eine Oracle / SuSE-Sache.