LVM ist wie alles andere ein gemischter Segen.
In Bezug auf die Leistung wird LVM Sie ein wenig behindern, da es sich um eine weitere Abstraktionsebene handelt, die ausgearbeitet werden muss, bevor Bits auf die Festplatte gelangen (oder von dieser gelesen werden können). In den meisten Situationen ist dieser Leistungseinbruch praktisch nicht messbar.
Zu den Vorteilen von LVM gehört die Tatsache, dass Sie vorhandenen Dateisystemen mehr Speicher hinzufügen können, ohne Daten verschieben zu müssen. Die meisten Leute mögen es für diesen Vorteil.
Ein Nachteil von LVM, das auf diese Weise verwendet wird, besteht darin, dass Sie die Wahrscheinlichkeit erhöhen, dass ein Festplattenfehler Ihre Daten kostet, wenn sich Ihr zusätzlicher Speicher über Festplatten erstreckt (dh mehr als eine Festplatte umfasst). Wenn sich Ihr Dateisystem über zwei Festplatten erstreckt und eine davon ausfällt, sind Sie wahrscheinlich verloren. Für die meisten Menschen ist dies ein akzeptables Risiko aufgrund von Platz-vs-Kostengründen (dh , wenn dies wirklich wichtig ist , wird es ein Budget, es zu tun richtig) - und weil, wie sie sagen, Backups sind gut, nicht wahr?
Der einzige Grund, warum ich LVM nicht benutze, ist, dass Disaster Recovery nicht genau definiert ist (oder zumindest nicht war). Eine Festplatte mit LVM-Volumes mit einem verschlüsselten Betriebssystem konnte nicht einfach an einen anderen Computer angeschlossen und die Daten von diesem wiederhergestellt werden. Viele der Anweisungen zum Wiederherstellen von LVM-Volumes schienen Schritte wie " Zurück in die Vergangenheit" und "vgcfgbackup" zu enthalten. Kopieren Sie dann die resultierende Datei / etc / lvmconf auf das System, auf dem sich Ihr abgespritztes Volume befindet . Hoffentlich haben sich die Dinge in den drei oder vier Jahren, seitdem ich das letzte Mal darüber nachgedacht habe, geändert, aber ich persönlich benutze LVM aus diesem Grund nie.
Das gesagt.
In Ihrem Fall würde ich davon ausgehen, dass die VMs im Vergleich zum Hostsystem relativ klein sein werden. Für mich bedeutet dies, dass Sie den Speicher in einer VM mit größerer Wahrscheinlichkeit später erweitern möchten. Dies geschieht am besten, indem der VM ein weiteres virtuelles Laufwerk hinzugefügt und anschließend die betroffenen VM-Dateisysteme vergrößert werden. Sie haben nicht die Sicherheitsanfälligkeit für mehrere Festplatten, da sich die virtuellen Festplatten höchstwahrscheinlich auf demselben physischen Gerät auf dem Hostsystem befinden.
Wenn die VMs für Sie von Belang sein sollten, werden Sie das Host-System auf irgendeine Weise RAID-fähig machen, was die Flexibilität für eine spätere Speichererweiterung verringert. Die Flexibilität von LVM wird daher wahrscheinlich nicht erforderlich sein.
Ich würde also davon ausgehen, dass Sie LVM nicht auf dem Host-System verwenden, sondern VMs installieren, um LVM zu verwenden.
Allgemein: Wenn Sie eine neue Komplexitätsebene hinzufügen ("aka more to do"), wird nichts schneller. Hinweis: Sie fügen nur Arbeit hinzu und 'ändern' nicht die Art und Weise, wie die Arbeit ausgeführt wird.
Wie können Sie etwas messen? Nun, Sie erstellen eine Partition mit LVM und eine ohne, verwenden dann einen normalen Benchmark und führen ihn einfach aus. Wie die Leute bei
http://www.umiacs.umd.edu/~toaster/lvm-testing/
Wie es scheint, nur geringfügig auf die Geschwindigkeit auswirken. Dies scheint mit den Ergebnissen einer anderen Person übereinzustimmen, die einen Benchmark durchgeführt hat:
"ext4 ist mit LVM schneller als ohne und andere Dateisystem-Benchmarks" Linux Kernel Mailing List Thread
Aber vergleichen Sie es einfach selbst und prüfen Sie, ob sich Ihre Hardware und das Betriebssystem, das Sie verwenden möchten, gleich verhalten und ob Sie die (möglicherweise geringfügigen) Auswirkungen einer zusätzlichen Komplexitätsebene, die Ihnen elastischen Speicher bietet, ignorieren können.
Sollten Sie dem Gastbetriebssystem LVM hinzufügen: Das hängt davon ab, ob das Gastbetriebssystem auch über einen elastischen Speicher verfügt, oder nicht? Ihre Anforderungen bestimmen, was Sie bereitstellen müssen.
quelle
Sie sollten dies nicht tun, da ein ext3- oder ext4-Dateisystem im logischen Host-Volume ausreichen sollte. Es ist nicht erforderlich, eine weitere Datenträgergruppe sowie einen physischen Datenträger und einen logischen Datenträger hinzuzufügen.
quelle
Es würde nicht viel von einem Leistungseinbruch nur von lvm geben, aber wenn Sie bereit sind, es zu nehmen, verwenden Sie stattdessen zfs. Sie erhalten Datenträgerverwaltung, Wiederherstellbarkeit und viele andere großartige Funktionen.
quelle
Niemand, der lvm2 erwähnt, kann die Lese- und Schreibgeschwindigkeit multiplizieren (ähnlich wie raid0). Ich persönlich benutze 3 identische Datenträger und über ihnen lvm2 im abgespeckten Modus, die Lese- und Schreibvorgänge dauern 1/3 der Zeit, das ist eine große Auswirkung, das Dateisystem ist drei Mal schneller. Ich weiß: Jeder Datenträger fällt aus und alle darauf gespeicherten Daten sind nicht zugänglich. Dies bedeutet jedoch nicht, dass Sie etwas verloren haben, da BackUPs ein MUSS sind, und nichts wie Raid, LVM2, ZFS wird es vermeiden, BackUPs zu haben. Also benutze ich niemals Mirroring, Raid5 und so, ich benutze immer Stripping (um die beste Leistung zu erzielen) und habe BackUPs synchronisiert. ZFS eignet sich hervorragend für die Komprimierung im laufenden Betrieb. Wenn der Parameter für Kopien größer als eins ist, entspricht dies einer Spiegelung, aber ZFS hat und niemand anderes hat die Funktion, die Bitfäule automatisch im laufenden Betrieb wiederherzustellen (Bits, die sich währenddessen spontan ändern Festplatte ist ausgeschaltet),
Um fortzufahren: Ich verwende ZFS nur für meine BackUPs auf externen Festplatten. Mehrere (zwei oder drei) SSDs mit lvm2-Stripes für das Betriebssystem. und ich benutze mehrere (sechs) Spinnin-Festplatten mit lvm2, die für Daten entfernt wurden, wie virtuelle Maschinen, wieder nach jeder Änderung, die ich BackUPs wiederhole; Nach einem Festplattenfehler muss ich die Festplatte nur ersetzen und das letzte Backup wiederherstellen. Heute habe ich eine Schreibgeschwindigkeit von fast 1,8 GB / s, sodass das Wiederherstellen einer virtuellen Maschine von BackUP nur weniger als 30 Sekunden dauert (32 GB pro Festplatte der virtuellen Maschine).
Meine Antwort lautet also: Verwende nicht nur eine Sache, sondern sei schlau und nutze das Beste aus jedem Teil. Lvm2 Stripped ist schneller als Mdraid Level 0, mehr bei Verwendung von sechs sich drehenden Festplatten. eine warnung mit stripping ssd, zwei und drei ist gut, vier ssd können die performance verschlechtern (meine tests ergaben eine niedrigere schreibgeschwindigkeit, wenn ich vier identische ssd im stripped modus verwendete, egal ob lvm, mdraid0, etc), scheint dass ssd trimm und so Die Schreibverstärkung kann die Hauptursache für das Hinzufügen von mehr SSD zu einem reduzierten Volumen sein, wodurch die Schreibgeschwindigkeit verringert wird.
Warnen Sie mit ssd und allen raid0 (freigelegten Volumes), richten Sie die Dinge perfekt aus, weisen Sie dem Dateisystem die richtigen Clustergrößen zu, stippen Sie die Größe usw., damit niemand eine Verschlechterung verursacht. Beispiel: Der Festplattensektor ist 2048, also sollten Sie bei mindestens 2 KByte Lese- / Schreibzugriff niemals ein Dateisystem verwenden, das 512-Byte-Cluster verwendet. Verwenden Sie besser 2 KByte oder 4 KByte Clustergröße. Stellen Sie sich vor, Sie verwenden 3xHDD, jeder von 2K-Sektoren. Bei einem optimierten Lese- / Schreib-Dateisystem-Cluster wäre das also 3x2K = 6K, aber das ist bei vielen Dateisystemen nicht möglich / 3, das verursacht unsymmetrisch, also nicht optimal und so weiter. Stellen Sie Mathematik auf, um die optimale Clustergröße zu erhalten.
Meine besten Ergebnisse sind: Clustergröße = Streifengröße * Anzahl der Festplatten auf dem Streifen; Auf diese Weise hat jeder Lese- / Schreibzugriff die exakte Größe, mit der alle Festplatten funktionieren. Die Geschwindigkeitsverbesserung ist also enorm. Eine beispielhafte 192-KB-Clustergröße für 3 Festplatten mit 64-KB-Stripe-Größe. Ein weiteres Beispiel: 192 KB Clustergröße für 6 Datenträger mit 32 KB Stripe-Größe.
Denken Sie immer daran, eine einzelne Festplatte in 4K-, 8K-, 16K-, 32K- und 64K-Blöcken zu testen. Viele Festplatten bieten sehr schlechte Geschwindigkeiten mit niedrigeren Werten wie 4 KB, aber mehr als zehnmal schnellere Zeiten, wenn sie auf 64 KB, 128 KB oder höher laufen.
Ja, die Verwendung großer Clustergrößen kann zu einem Verlust von Speicherplatz auf dem Las-Cluster jeder Datei führen (wenn Sie Millionen von Dateien mit jeweils nur 1 Byte verwenden). Verwenden Sie besser ein kompaktes / pack-on-the-fly-System über dem Dateisystem. Als Beispiel kann eine 4TiB-Festplatte mit einer 4K-Clustergröße nur weniger als 4TiB / 4K = 1073741824 Dateien mit jeweils 1Byte haben, dh nur 1GiB, wenn alle Dateien 1Byte groß sind (Clustergröße 4K), größere Clustergröße schlechtestes Verhältnis, aber wenn Dateien sind riesig, wie virtuelle Maschinen (in der Nähe von 32 GB als Beispiel oder nur ein paar Megabyte), die nur im letzten Cluster verloren gehen. Wenn Sie also große Dateien und große Cluster haben, wirkt sich dies wesentlich besser auf die Leistung aus. Achten Sie jedoch darauf, wie die virtuelle Maschine sie verwendet.
Niemand wird Ihnen dieses Geheimnis verraten: Verwenden Sie innerhalb des Gasts nicht die 4K-Clustergröße, verwenden Sie die gleiche Clustergröße wie die Clustergröße, in der sich die virtuelle Festplatte befindet, oder ein Vielfaches davon.
Ja, ich bin verrückt danach, die höchste Geschwindigkeit innerhalb der Gast-Festplatten zu erreichen. Wie ich bereits sagte, ist die SATA III-Busgeschwindigkeit bei 6 rotierenden Festplatten, die sich in der Nähe von 1,7 GBit / s befinden, der Engpass, nicht die Festplatten selbst. Ich verwende High-End-Festplatten (nicht billig) mit 128 MB Cache und einer Schreibgeschwindigkeit von jeweils 283 MB / s.
Für Sie und alle: Es ist am besten zu lernen, wie Clustergröße, Stripe-Größe und Blockgröße zusammenhängen müssen, bevor Sie einen Geschwindigkeitstest durchführen. Anderenfalls kann der Test von LVM2 oder einem anderen RAID (auch ZFS) zu FALSCHEN Schlussfolgerungen führen.
Nur ein Beispiel dafür: Ich teste meine Linux-Startzeiten mit 2x60MiB / s 2,5-Zoll-Sata-Festplatten mit 5400 U / min auf einem Sata II-Port-Mainboard und teste dann mit 2xSSD Sata III (sie können jeweils mehr als 250MiB / s schreiben, wenn sie mit Sata III verbunden sind Ports), dauert die Startzeit nur zwei Sekunden kürzer, nur zwei Sekunden bei einem fünfminütigen Start, warum? Da die meisten Startzeitdisketten nicht verwendet werden, werden nur RAM- und CPU-Daten verarbeitet, nicht jedoch E / A-Daten.
Testen Sie immer das, was Sie an einem echten Tag tun werden, nicht nur grobe Geschwindigkeiten (mit anderen Worten Höchstgeschwindigkeit).
Die maximale Geschwindigkeit ist gut zu wissen, dass sie nicht darstellbar ist. Möglicherweise verwenden Sie die Festplatten nicht 100% der Zeit mit maximaler Geschwindigkeit. Betriebssysteme und APPs müssen auf RAM und CPU ohne E / A arbeiten. In dieser Zeit funktioniert die Festplattengeschwindigkeit nicht Materie überhaupt.
Alle Leute sagen, dass SSD die Windows-Boot-Geschwindigkeit erheblich verbessert. Bei meinen Tests ist dies ebenfalls FALSCH. Nur bei einer Boot-Zeit von fast acht Minuten beweise ich 28 Sekunden.
Also wenn du mich magst: Linux Copy-to-RAM beim Booten, SSD wird nicht gebettet als rotierende HDDs, ich hatte auch USB 3.1 Gen2 Stick (139MiB / s gelesen) getestet, die Bootzeit wird nur ein paar Sekunden auf ein gekürzt Fünf-Minuten-Boot, warum? einfach, das lesen erfolgt beim kopieren auf ram, nachdem disk / ssd / usb-stick nicht mehr auf dem rest des bolzens verwendet wird, die daten befinden sich auf ram, wie bei einem ram-laufwerk.
Jetzt verkaufe ich alle meine SSDs, die ich habe. Sie verbessern Linux Copy-on-RAM beim Booten nicht, aber das Benchmarking zeigt, dass sie 5-mal schneller sind Tagesarbeit.
Hoffe, das kann männliche Dinge klar machen ... LVM mit schlechten Cluster- und Streifengrößen wirken sich bei weitem mehr aus als der Overhead der Schicht.
quelle