Ich verstehe, was LVM ist und was es leistet, aber ich habe das Gefühl, dass mir einige Dinge fehlen.
Nehmen wir an, wir haben zwei physische Laufwerke, sda und sdb. Beide sind 100 Megs. Ich habe sie in VolumeGroup1 abgelegt und ein 200-Megabyte-LogicalVolume1 erstellt.
Was würde passieren, wenn ich eine 150-Meg-Datei erstellen würde? Wären 100 megs physisch auf sda und 50 auf sdb? Wenn ja, was sagt dem Betriebssystem, dass sich ein Teil der Datei auf einem Laufwerk und ein anderer Teil auf dem anderen befindet?
Was ist mit Laufwerksausfall? Unter der Annahme, dass kein RAID vorhanden ist, gehen bei einem Ausfall von sdb alle Daten auf sda verloren? Gibt es überhaupt eine Möglichkeit zu steuern, welche Dateien sich auf welchen physischen Laufwerken befinden?
Wie verwalten Sie LVM im Allgemeinen? Erstellen Sie eine oder zwei große Volume-Gruppen und erstellen Sie dann Partitionen, wie es sinnvoll ist? Irgendwelche anderen Tipps?
Antworten:
Richtig (vorausgesetzt, das Dateisystem war leer, bevor die Datei erstellt wurde).
LVM teilt dem Betriebssystem mit, dass eine einzige 200-MB-Festplatte vorhanden ist. Der LVM-Teil des Kernels (er besteht aus zwei Teilen, den Tools zur Benutzerbereichsverwaltung und den Kerneltreibern) ordnet das, was das Betriebssystem sieht, den physischen Positionen / Blöcken auf den Festplatten zu.
Ja, berücksichtigen Sie die verlorenen Daten.
Wenn Sie kleinere logische
pvmove
Datenträger erstellen, können Sie sie mit dem Befehl von Datenträger zu Datenträger verschieben.Ich neige dazu, große Datenträgergruppen zu erstellen und dann nach Bedarf logische Datenträger zu erstellen. Es ist nicht erforderlich, den gesamten Speicherplatz in einer Volumengruppe zuzuweisen. Ordnen Sie es zu, wenn es benötigt wird. Es ist einfach, ein logisches Volume zu vergrößern, und praktisch alle modernen Dateisysteme können auch problemlos erweitert werden.
quelle
--stripes <num>
(kurz-i <num>
) angeben .Die grundlegende Funktion von LVM und Software Raid unter Linux ist der Device-Mapper-Teil des Kernels. Auf diese Weise werden die Blockadressen der physischen Geräte zu den von Ihnen verwendeten virtuellen Blockgeräten abstrahiert.
Wenn Sie LVM wie alles andere in Bezug auf Daten verwenden, müssen Sie die Auswirkungen auf die Datenverfügbarkeit berücksichtigen. Das heißt nicht, dass LVM in der Tat gefährlich ist, wenn die richtigen Methoden angewendet werden, ist die Auswirkung auf die Verfügbarkeit minimal.
In dem Szenario, das Sie in Ihrer Frage vorschlagen, entspricht die Verfügbarkeit Ihrer Daten einem RAID0. Wenn ein Laufwerk ausfällt, führt dies zu Datenverlust.
In der Praxis würde ich LVM nicht verwenden, ohne es auf einer Art RAID auszuführen. Ich habe LVM auf einem 30-TB-Dateiserver mit etwa 20 Hardware-RAID5-Volumes in einer VG verwendet. Wenn Sie jedoch genügend freie Extents haben, können Sie pvmove verwenden, um die Daten von einem oder mehreren PVs zu migrieren, falls dies zu Problemen führen sollte.
Verwenden Sie jedoch immer eine Sicherungsstrategie, die von Zeit zu Zeit getestet wird.
quelle
Wie verwalten Sie LVM im Allgemeinen? Erstellen Sie eine oder zwei große Volume-Gruppen und erstellen Sie dann Partitionen, wie es sinnvoll ist?
Meine allgemeine Strategie besteht darin, die physischen Volumes, die möglicherweise (als Ganzes) auf ein anderes System migriert werden, in separate Volume-Gruppen zu unterteilen.
Wenn Sie über externen Speicher verfügen, empfiehlt es sich, diesen in eine separate Datenträgergruppe zu legen. Es ist physisch einfach, ihn von diesem Computer zu trennen und mit einem anderen Computer zu verbinden. Daher sollte es logischerweise auch einfach sein, ihn in LVM zu exportieren / importieren, wobei die Daten intakt bleiben.
Wenn Sie bereits eine vg00 auf internen Datenträgern haben und dann eine andere interne Festplatte für Ihren Computer kaufen, stellen Sie sich eine Frage: Werden die Daten auf der neuen Festplatte an vg00 gebunden, und wäre es sinnlos, sie jemals zu verschieben? die Daten auf ein anderes System? In diesem Fall sollte es Teil von vg00 sein. Andernfalls würde ich vg01 erstellen, da es leicht exportiert / importiert werden kann.
quelle
Wenn Sie zwei Laufwerke als physische Volumes in einer solchen Gruppe haben, haben Sie ein JBOD-Array (Just a Bunch Of Disks). Wenn eines der Laufwerke ausfällt, sind Sie nicht besser geschützt als wenn die Laufwerke in einem RAID0-Array angeordnet wären.
Sie können nicht direkt steuern, was wohin auf den beiden Laufwerken geht, wenn Sie ein logisches Volume in der Volume-Gruppe haben (da dies vom Dateisystem im Volume gesteuert wird, nicht von LVM), obwohl Sie die Volume-Gruppe in mehrere logische Volumes aufteilen können ihre Erstellung manuell so anordnen, dass sich ein bestimmtes logisches Volume auf einem bestimmten Laufwerk befindet.
Ich glaube, dass jeder PV in einer VG eine Kopie des LV-Layouts hat und die Daten nicht wie bei RAID0 entfernt werden, sodass Sie mehr Chancen haben, etwas wiederherzustellen, wenn eines Ihrer Laufwerke ausfällt, aber Datenverlust überhaupt ein Problem darstellt Ich würde nicht in Betracht ziehen, zwei Laufwerke auf diese Weise zu verwenden (über LVM oder RAID0).
quelle
Der LVM (Logical Volume Manager) sammelt physische Volumes in Volume-Gruppen. Jedes physische Volume (das Laufwerk selbst) hat kleine Teile, die als physische Speicherbereiche bezeichnet werden. Diese Extents haben eine eindeutige Kennung auf der Festplatte. Tatsächlich sind sie fortlaufend nummeriert. Wenn Sie ein logisches Volume erstellen, wurde es aus logischen Extents erstellt, die mit den physischen Extents gekoppelt sind. Logische Speicherbereiche haben eine eindeutige ID im logischen Datenträger. In HP-UX können Sie überprüfen, welche logische Ausdehnung mit welcher physischen Ausdehnung gekoppelt ist. In SLES11 kann ich nicht herausfinden, wie ich es überprüfen soll.
lvdisplay --maps
sollte gut aber nicht perfekt sein (für mich).quelle