Linux LVM Spiegel vs. MD Spiegel

11

Ich glaube, ich erinnere mich, dass ich vor Jahren mit LVM einige Spiegel gemacht habe, und ich erinnere mich nicht an dieses "Protokoll" -Ding. Oder vielleicht habe ich den Spiegel mit mdadm gemacht und LVM darauf gelegt. Das muss es sein.

  1. Wofür ist das LVM-Protokoll, wenn es nur ein Spiegel ist? Was ist dort gespeichert? Was ist seine Aufgabe? Ist die Verwendung von "--mirrorlog core" schlecht? Was ist der Nachteil? Ich möchte keine weitere Partition für Protokolle haben müssen, wenn ich nicht muss.

  2. Irgendwelche Empfehlungen zur Verwendung einer der beiden Technologien? Selbst wenn ich den Spiegel mit mdadm mache, werde ich darüber hinaus LVM verwenden. In diesem Fall ist es vielleicht besser, das gesamte Setup mit LVM zu erstellen ...? Würde das mehr einen Leistungseinbruch oder weniger bedeuten?

Die Datenträger dienen zum Speichern von Xen domU- "Datenträgern".

Entschuldigung für die komplexe, nicht auf den Punkt gebrachte "Frage".

Ideen, Vorschläge und Links sind herzlich willkommen. Vielen Dank!

d -_- b
quelle
md scheint im Vergleich zu lvm eine bessere Leistung für Spiegeloperationen zu erzielen. Siehe serverfault.com/questions/80134/linux-md-vs-lvm-performance
Zoredache
1
Die LVM-Spiegelung war für einen anderen Zweck gedacht. Sie können es zwar verwenden, um MD zu "spiegeln", aber es wird wirklich zum Klonen von Volumes verwendet. Siehe serverfault.com/questions/97845/lvm-mirroring-vs-raid1
Avery Payne
1
Wenn es zum Klonen gedacht ist, warum sind dann drei Volumes erforderlich?
d -_- b
Siehe die verwandte Frage unix.stackexchange.com/questions/150644/…
Faheem Mitha

Antworten:

9

Persönlich gehe ich immer MD + LVM. Es ist schneller (MD kann RAID1 parallel lesen) und benötigt nur 2 Festplatten (wenn Sie den Spiegel nicht nach jedem Neustart neu erstellen möchten). MD wurde nur für RAID entwickelt und funktioniert sehr gut. Es ist auch flexibler.

Auch ich wurde von LVM verbrannt. In einem Fall handelte es sich um LVM-Striping unter HP-UX (sollte unter Linux nicht mit LVM2 auftreten), und ich konnte das LV nicht erweitern, da die Erweiterung genau die gleiche Anzahl von Stripes aufweisen musste. Es scheint vernünftig, aber manchmal ...

Ein anderes Mal war es mit Spiegelung (diesmal LVM2 unter Linux), aber jetzt kann ich mich nicht erinnern, ob LVM sich geweigert hat, einen Schnappschuss eines gespiegelten LV zu machen oder ihn zu erweitern, wodurch der Vorteil, LVM überhaupt zu haben, effektiv negiert wurde (wir haben es getan) am ende aber mit lvconvert hin und her).

Dan Andreatta
quelle
Vielen Dank! Ich denke, ich werde mit LVM auf MD gehen. Es sieht so aus, als ob es einige Probleme mit der automatischen Erkennung von MD gibt. ( raid.wiki.kernel.org/index.php/RAID_Boot ) Ich wollte irgendwie mein gesamtes System spiegeln (swap, boot, /, var, home, usr). Also muss ich mich mit etwas anderem als der automatischen Erkennung befassen.
d -_- b
Ja, Autodetect ist im Prinzip eine gute Idee, aber es bereitet alle möglichen Kopfschmerzen. Ich habe ein Setup mit iSCSI + Multipath + MD + LVM ... und Autodetect ist ... interessant, aber in diesem Fall nutzlos.
Dan Andreatta
4

Wenn ein gespiegeltes Paar abrupt heruntergefahren wird, gibt es in jedem System möglicherweise einige Blöcke, die auf ein Gerät geschrieben wurden, aber noch nicht auf das andere. Es ist denkbar, dass bei der Neuordnung von E / A-Pfaden einige Blöcke in A, aber nicht in B und einige in B, aber noch nicht in A geschrieben wurden.

Wenn der Computer neu gestartet wird, müssen die Geräte konsistent gemacht werden. Nur die beiden Geräte allein zu haben, reicht nicht aus: Es würde nicht wissen, welche Blöcke inkonsistent sind, und es würde nicht wissen, welche Version neuer ist.

Die Spiegelsoftware muss also einige Metadaten speichern, um dies zu verfolgen. Dies wird als "Schreibabsichtsprotokoll" bezeichnet.

md speichert es normalerweise an einem reservierten Ort im Gerät selbst . Sie können es jedoch auch auf einem separaten Gerät speichern. (Dies ist ein Grund, warum MD-Spiegel etwas kleiner als die Basisgeräte sind.

LVM-Spiegel können das Schreibbereichsprotokoll nur extern speichern, was, wie Sie bemerken, für den typischen Fall, in dem Sie genau zwei physische Festplatten haben, etwas ärgerlich ist. Ich glaube, Sie haben immer noch die Wahl, es auf einer anderen Partition auf demselben physischen Gerät zu speichern, aber das ist immer noch unpraktisch.

Der Zweck des LVM-Spiegelprotokolls besteht meines Wissens darin, Blöcke zu verfolgen, die auf ein Gerät geschrieben wurden, aber noch nicht auf das andere.

Poolie
quelle
2

Dies sind zwei verschiedene Konzepte:

  • LVM ist wie der Name schon sagt für die Datenträgerverwaltung. Stellen Sie sich das als einen Mechanismus vor, mit dem Sie mehrere Volumes zu einem kombinieren können (ja, Sie können sagen, es ist wie bei raid0), die Größe ändern, die Größe live ändern und Snapshots erstellen.
  • MD ist für die RAID-Verwaltung. Fügen Sie einem Metadevice mehrere Geräte hinzu, und stellen Sie dieses Metadevice mithilfe von raid1, 5, 10 usw. hoch verfügbar.

LVM funktioniert auf Speichergeräten, sei es Metadevices oder Geräte, die vom RAID-Controller präsentiert werden, oder einfach nur Festplatten.

MD arbeitet mit Festplatten (ja, Sie können auch Festplatten verwenden, die vom RAID-Controller bereitgestellt werden, aber worum geht es?

LVM dient nicht dazu, Ihren Speicher hoch verfügbar zu machen. Und ebenso ist MD nicht für das Volumenmanagement ...

Hoffe das hilft :)

Rytis
quelle
1
Ich verstehe was sie sind. Wenn Sie jedoch die Manpage für lvcreate lesen, heißt es, dass Spiegel erstellt werden können. Ich denke, das ist ein bisschen Spielzeug für jetzt?
d -_- b
1
imho ja. Ich kann zumindest im Moment keine gute Verwendung dafür sehen. Es ist nicht nur ein Spiegel auf Volume- (und nicht auf Geräte-) Ebene, sondern auch ein bisschen "interessant", wie er erstellt wird. Wenn Sie beispielsweise einen 2-Wege-Spiegel benötigen (wie im Original + Kopie), müssen Sie 3 Volumes haben - eines für jedes Seite des Spiegels + Protokollvolumen. aber andererseits - imho. :)
Rytis
1

LVM stammte von anderen UNIX-Systemtypen. Ich habe es unter HPUX verwendet, das nicht über die MD-Schicht von Linux verfügte, als ich vor 10 Jahren daran arbeitete. Ich bin mir jetzt nicht sicher. Unter diesen Umständen ist die LVM-Spiegelung in Situationen nützlich, in denen kein Hardware-RAID verfügbar ist.

Ron McOuat
quelle
Ich fand es nur seltsam, dass ein LVM-Spiegel mehr als ein Volume benötigt. Was für ein Spiegel ist das?
d -_- b
1
@toor Das dritte Volume wird verwendet, um ein Write-Ahead-Protokoll für den Spiegel zu speichern , um im Grunde zu verfolgen, was nach einem abrupten Stopp erneut synchronisiert werden muss. Auf MD wird dies normalerweise in einem reservierten Teil der beiden Festplatten gespeichert.
Poolie
1

Mit der gespiegelten Option -mirrorlog und der Option -allocwhere erhalten Sie mit zwei Festplatten zwei 4M-Spiegelprotokolle, eines auf jeder Festplatte. Ich ärgere mich, dass ich die Richtlinie für eine scheinbar häufigste Situation außer Kraft setzen muss, aber na ja.

LVM unter Linux hat nichts mit HP-UX oder AIX zu tun, sondern verfügt nur über dieselben Userspace-Befehle. LVM unter Linux verwendet intern das DM-System und verwendet daher denselben Code wie MD. Zu diesem Zeitpunkt sehe ich keinen Vorteil von LVM gegenüber MD. Bei Partitionen, für die Sie schnell möchten und für die keine Sicherungen erforderlich sind (z. B. Partitionen für Gast-VMs austauschen), können Sie in LVM wählen, ob diese gespiegelt werden sollen oder nicht oder ob das Entfernen besser ist.

Und es ist viel einfacher, LVM eine Festplatte hinzuzufügen als MD.

mcr
quelle