Nutzen von LVM (Logical Volume Manager) unter Linux wenn man sowieso die Größe des Dateisystem manuell ändern muß?
-
Eigentlich wollte ich auf meinem Notebook mit einer 80 GB großen Festplatte unter Linux LVM2 nutzen, da ich so später besser darauf reagieren kann, wenn die Partition für /home, /usr oder /var zu klein wird und damit ich von der einen Partition Speicherplatz auf die andere abzweigen kann.
Doch nun stelle ich fest, daß man dem LVM zwar Logical Volumens mit der passenden Größe erstellen kann, die sich dann auch später verkleinern/vergrößern lassen, aber das eigentliche Dateisystem, das auf ein Logical Volumen aufgesetzt wird, muß manuell noch ebenfalls verkleinert/vergrößert werden und da frage ich mich dann eigentlich schon, warum man den LVM nicht einfach mit einem für den LVM entwickelten Dateisystem kombiniert hat, so daß man sich diesen zweiten bzw. ersten Schritt (Dateisystem vergrößern/verkleinern), sparen kann.
1. Es wäre doch viel besser, wenn das Logical Volume selbst ein Dateisystem hätte und das Dateisystem dann automatisch vergrößert oder verkleinert werden würde, sobald man das Logical Volume vergrößert oder verkleinert.
2. Und es wäre doch viel besser, wenn jedes Logical Voluem sich einfach automatisch bei Bedarf dynamisch mehr Platz von den ganzen noch freien LVM Blöcken aus der Volume Group holen würde, so daß man sich auch dieses manuelle erweitern eines Logical Volumes sparen kann.
Siehe auch:
http://wiki.ubuntuusers.de/Logical_Volume_ManagerDaher meine Frage:
A) Wieso gibt es so ein LVM+Dateisystem Kombination noch nicht?
Oder gibt es so eine LVM+Dateisystem Kombination wenigstens bei anderen Unix oder Unix-like Betriebssystemen?
C) Wennmit ja beantwortet werden kann, gibt es dann auch welche, die Punkt 2 erfüllen?
So wie es momentan ist, ist es jedenfalls ein Krampf.
Denn erstens kann das Dateisystem nicht automatisch mit dem Bedarf mitwachsen.
Wenn ich z.B. eine Datei kopiere, dann meldet mir der Copybefehl weiterhin "not enough disc space" oder ähnliches, wenn z.b. die ext3 Partition auf dem Logical Volume zu klein ist.
Ich muß diese ext3 Partition also vor dem Copy Befehl größer machen, das erfordert ein manuelles Eingreifen meinerseits und leider geht das nicht in einem einzigen Schritt, sondern ich brauche ganze 4 Schritte:1. Zuerst muß ich schauen ob noch freie Blöcke in der Volume Group vorhanden ist. Wenn ja, dann erspare ich mir die 3 nächsten Schritte und kann gleich zu Schritt 5 springen.
Da ich aber die Volume Group gleich am Anfang vollständig nutze bedeutet das zuerst folgende Schritte:
2. Ich muß eine anderes Logical Volume suchen, in der auf dem dortigen Dateisystem noch nicht der ganze Speicherplatz verbraucht ist.
3. Wenn ich dieses Logical Volume gefunden habe, dann muß ich das Dateisystem auf diesem manuell kleiner machen, so daß weniger Platz in der Logical Volume vom Dateisystem belegt wird.
4. Erst jetzt kann ich das Logical Volume verkleinern. Der frei gewordene Platz ist dann ungenutzter Platz in der Volume Group.
5. Nun kann ich mein Logical Volume, auf dem die Dateien draufkopiert werden sollen, vergrößern, in dem ich aus der Volume Group weitere freie Blöcke diesem Logical Volume zuweisen.
6. Aber das ist noch nicht alles, denn der freie Platz kann noch nicht genutzt werden, da das Dateisystem ja noch die alte größe hat. ALso muß ich das Dateisystem manuell vergrößern. Erst jetzt habe ich genug Platz um die Dateien draufzukopieren.Ich muß also 6 Schritte durchführen, ehe ich überhaupt meine Dateien auf die Partition kopieren kann.
Das ist total umständlich.
Wäre das Dateisystem mit dem LVM kombiniert, dann wären es im schlimsten Fall nur 2 Schritte:
1. Anderes Logical Volume verkleinern, damit Platz in der Volume Group frei wird.
2. Eigentliches Logical Volume durch zuweisen von freiem Platz aus der Volume Group erweitern und schon wäre ich fertig. D.h. ich könnte die Dateien kopieren.Und im besten Fall, wenn diese LVM+Dateisystem Kombi sich dynamisch anpassen könnte, dann bräuchte ich nur einen einzigen Schritt.
D.h. ich müßte nur die Datei kopieren und das LVM+Dateisystem kombi macht alle oben genannten Schritte automatisch und erst wenn der letzte Platz belegt ist, also kein freier Platz mehr aus der Volume Group bezogen oder aus einem anderen Logical Volume umverteilt werden kannm, erst dann meldet mir der Copy Befehl einen Fehler.Gibt es so etwas bei den anderen Unix Systemen?
Bezüglich der Problematik das das LVM vom Dateisystem unabhängig ist.
Ich persönlich könnte damit gut leben, wenn alle Logical Volumens genau das gleiche Dateisystem verwenden, weswegen aus meiner Sicht einer LVM+Dateisystem Kombi nichts im Wege stehen dürfte.Im großen und ganzen macht LVM also nur dann Sinn, wenn man
A) Sich den Aufwand bezüglich der obigen 6 Schritte machen will
oder
der Speicherplatz wachsen können soll, in dem man einfach weitere Datenträger anschließt und er Volume Group hinzufügt.
In letzterem Fall macht LVM Sinn, aber ansonsten eigentlich nicht.
Schade eigentlich. Ich denke ich werde wieder normale statische Partitionen erstellen und da die Dateisysteme draufmachen und LVM ganz weglassen.
Damit verbaue ich mir zwar die Möglichkeit die Größen der Dateisysteme bei einem bestehenden System überhaupt zu ändern, aber wenn in der Praxis LVM so umständlich ist, dann spare ich mir da den Aufwand und schätze die Größe meiner notwendigen Partitionen einfach besser.
Der größte Vorteil bleibt dann auch erhalten, es ist so weiterhin einfacher mit einer Rettungs CD usw. an die Daten heranzukommen.
Ein LVM wäre da wieder eine zusätzliche Schicht die ne Gefahrenquelle darstellt.
-
LVM doch nicht so toll schrieb:
Eigentlich wollte ich auf meinem Notebook mit einer 80 GB großen Festplatte unter Linux LVM2 nutzen, da ich so später besser darauf reagieren kann, wenn die Partition für /home, /usr oder /var zu klein wird und damit ich von der einen Partition Speicherplatz auf die andere abzweigen kann.
Doch nun stelle ich fest, daß man dem LVM zwar Logical Volumens mit der passenden Größe erstellen kann, die sich dann auch später verkleinern/vergrößern lassen, aber das eigentliche Dateisystem, das auf ein Logical Volumen aufgesetzt wird, muß manuell noch ebenfalls verkleinert/vergrößert werden und da frage ich mich dann eigentlich schon, warum man den LVM nicht einfach mit einem für den LVM entwickelten Dateisystem kombiniert hat, so daß man sich diesen zweiten bzw. ersten Schritt (Dateisystem vergrößern/verkleinern), sparen kann.
1. Es wäre doch viel besser, wenn das Logical Volume selbst ein Dateisystem hätte und das Dateisystem dann automatisch vergrößert oder verkleinert werden würde, sobald man das Logical Volume vergrößert oder verkleinert.
2. Und es wäre doch viel besser, wenn jedes Logical Voluem sich einfach automatisch bei Bedarf dynamisch mehr Platz von den ganzen noch freien LVM Blöcken aus der Volume Group holen würde, so daß man sich auch dieses manuelle erweitern eines Logical Volumes sparen kann.
Das klingt für mich schon sehr danach, dass du einfach ein einziges Dateisystem für alles nutzen willst. Dann werden die Blöcke genau dort verwendet, wo sie gerade gebraucht werden.
LVM doch nicht so toll schrieb:
Daher meine Frage:
A) Wieso gibt es so ein LVM+Dateisystem Kombination noch nicht?Ein Dateisystem ist eine völlig andere Ebene als LVM.
LVM doch nicht so toll schrieb:
Oder gibt es so eine LVM+Dateisystem Kombination wenigstens bei anderen Unix oder Unix-like Betriebssystemen?
C) Wennmit ja beantwortet werden kann, gibt es dann auch welche, die Punkt 2 erfüllen?
Es wird dran gearbeitet: btrfs kann (denke ich) viele von den Dingen, die du dir wünschst.
LVM doch nicht so toll schrieb:
So wie es momentan ist, ist es jedenfalls ein Krampf.
[...]
Das ist total umständlich.Wäre das Dateisystem mit dem LVM kombiniert, dann wären es im schlimsten Fall nur 2 Schritte:
1. Anderes Logical Volume verkleinern, damit Platz in der Volume Group frei wird.
2. Eigentliches Logical Volume durch zuweisen von freiem Platz aus der Volume Group erweitern und schon wäre ich fertig. D.h. ich könnte die Dateien kopieren.Und im besten Fall, wenn diese LVM+Dateisystem Kombi sich dynamisch anpassen könnte, dann bräuchte ich nur einen einzigen Schritt.
Ich vermute, LVM ist für deinen Anwendungsfall einfach nicht gedacht. LVM ist dafür gedacht, dass man Partitionen frei anlegen und löschen kann, ohne sich Gedanken darum machen zu müssen, dass Partitionen nur in einem zusammenhängenden Stück Speicherplatz angelegt werden können. Das was du beschreibst, ist die Aufgabe eines Dateisystems, aber nicht die Aufgabe von LVM.
Wenn du beispielsweise virtual machines hast, dann ist LVM super: Partitionen anlegen und löschen für die virtual machines geht im laufenden Betrieb problemlos, man muss sich keine Sorgen darum machen, dass Partitionen in einer bestimmten Reihenfolge liegen müssen, dass die Partitionstabelle der Platte, die / enthält, nicht im laufenden Betrieb neu geladen werden kann, und so weiter. Außerdem kann man mit LVM auch direkt Snapshots machen (wobei die nicht unbedingt besonders effizient sind, aber zuverlässig funktionieren).
Wenn du viel Dynamik suchst, dann würde ich ein großes Dateisystem empfehlen fürs Root-Verzeichnis. Nicht mal ein separates /boot würde ich anlegen, außer du möchtest / komplett verschlüsseln. Meiner Erfahrung nach ist eine große Root-Partition für viele Anwendungsfälle das sinnvollste. Falls es keine SSD ist, sondern eine große Festplatte, würde ich nur /home vielleicht separat machen, damit man im Fall der Fälle einfacher neu installieren kann. Viel geholfen hat mir das bisher aber nicht, und da ich /home eh 1:1 sichere, lass ich das normalerweise auch auf derselben Partition wie /.
Mit btrfs wird sowieso alles besser.
Mit btrfs kannst du quotas setzen auf bestimmte Verzeichnisse, du kannst Snapshots machen von einzelnen Verzeichnissen, und noch viele andere schöne Sachen. Damit lohnt sich es sich noch viel mehr, alles auf ein großes Dateisystem zu legen statt mehrere kleine Dateisysteme anzulegen.Momentan würd ich auf einem neuen System aber niemals ext3 verwenden, sondern immer ext4. Das ist deutlich schneller als ext3.
-
Christoph schrieb:
Das klingt für mich schon sehr danach, dass du einfach ein einziges Dateisystem für alles nutzen willst. Dann werden die Blöcke genau dort verwendet, wo sie gerade gebraucht werden.
Du meinst wohl eher eine Partition für alles?
Wenn ja, nein, das will ich nicht, denn wenn /home oder /var die Platte voll macht, dann bleibt das System stehen.
Deswegen trennt man so etwas auf seine eigenen Partitionen auf, so daß es nicht zu einem Überlauf bei den relevanten Partitionen kommt.
Immerhin kannst du nicht mal mehr /etc bearbeiten, wenn das Dateisystem voll ist.Ein Dateisystem ist eine völlig andere Ebene als LVM.
Das ist mir schon klar, und trotzdem kann man das für den Benutzer viel transparenter in der Benutzung machen, so wie ich vorgeschlagen habe.
Es wird dran gearbeitet: btrfs kann (denke ich) viele von den Dingen, die du dir wünschst.
Also im deutschen WP Artikel habe ich da mal nachgesehen, aber da steht bezüglich btrfs nichts bezüglich LVM Fähigkeiten.
Ich vermute, LVM ist für deinen Anwendungsfall einfach nicht gedacht. LVM ist dafür gedacht, dass man Partitionen frei anlegen und löschen kann, ohne sich Gedanken darum machen zu müssen, dass Partitionen nur in einem zusammenhängenden Stück Speicherplatz angelegt werden können. Das was du beschreibst, ist die Aufgabe eines Dateisystems, aber nicht die Aufgabe von LVM.
Nein, das sehe ich überhaupt nicht so, denn ein Dateisystem kann so etwas ja gar nicht, was ich will.
Wenn du beispielsweise virtual machines hast, dann ist LVM super: Partitionen anlegen und löschen für die virtual machines geht im laufenden Betrieb problemlos, man muss sich keine Sorgen darum machen, dass Partitionen in einer bestimmten Reihenfolge liegen müssen, dass die Partitionstabelle der Platte, die / enthält, nicht im laufenden Betrieb neu geladen werden kann, und so weiter. Außerdem kann man mit LVM auch direkt Snapshots machen (wobei die nicht unbedingt besonders effizient sind, aber zuverlässig funktionieren).
Für Virtual maschines verwende ich Image Files.
Ich wüßte nicht, wozu ich da LVM brauche.
Der Geschwindigkeitsgewinn durch eine richtige Local Volume Partition ist da bei einer Virtual Machine gering, denn die Performance hakt bei Virtual Machines an ganz anderen Stellen.
Imagedateien reichen mir da völlig.Wenn du viel Dynamik suchst, dann würde ich ein großes Dateisystem empfehlen fürs Root-Verzeichnis. Nicht mal ein separates /boot würde ich anlegen, außer du möchtest / komplett verschlüsseln. Meiner Erfahrung nach ist eine große Root-Partition für viele Anwendungsfälle das sinnvollste. Falls es keine SSD ist, sondern eine große Festplatte, würde ich nur /home vielleicht separat machen, damit man im Fall der Fälle einfacher neu installieren kann. Viel geholfen hat mir das bisher aber nicht, und da ich /home eh 1:1 sichere, lass ich das normalerweise auch auf derselben Partition wie /.
So etwas, alles in eine Partition stecken, so etwas macht man schonmal aus obigen Gründen gar nicht.
Daran erkennt man den Unterschied zwischen einem erfahrenen Linuxer und einem blutigen Anfänger.
Der blutige Anfänger macht es nämlich genau so und packt alles in eine Partition, bis er dann irgendwann auf obige Probleme stößt, weil seine Partition voll ist und das System still steht.Momentan würd ich auf einem neuen System aber niemals ext3 verwenden, sondern immer ext4. Das ist deutlich schneller als ext3.
Auch daran erkennt man den Anfänger und den erfahrenen Linux User.
Ext 4 ist noch viel zu unausgereift, das benützt ein Anfänger, aber ext3 ist viel stabiler und schon seit über > 10 Jahren erprobt.
Geschwindigkeit ist mir da nicht so wichtig.
-
LVM doch nicht so toll schrieb:
Momentan würd ich auf einem neuen System aber niemals ext3 verwenden, sondern immer ext4. Das ist deutlich schneller als ext3.
Auch daran erkennt man den Anfänger und den erfahrenen Linux User.
Ext 4 ist noch viel zu unausgereift, das benützt ein Anfänger, aber ext3 ist viel stabiler und schon seit über > 10 Jahren erprobt.
Geschwindigkeit ist mir da nicht so wichtig.Auch daran erkennt man den Troll und denjenigen, der eine echte Frage hat.
-
LVM doch nicht so toll schrieb:
Christoph schrieb:
Das klingt für mich schon sehr danach, dass du einfach ein einziges Dateisystem für alles nutzen willst. Dann werden die Blöcke genau dort verwendet, wo sie gerade gebraucht werden.
Du meinst wohl eher eine Partition für alles?
Wenn ja, nein, das will ich nicht, denn wenn /home oder /var die Platte voll macht, dann bleibt das System stehen.
Deswegen trennt man so etwas auf seine eigenen Partitionen auf, so daß es nicht zu einem Überlauf bei den relevanten Partitionen kommt.
Immerhin kannst du nicht mal mehr /etc bearbeiten, wenn das Dateisystem voll ist.Dafür gibt es Quotas.
Außerdem gibt es Monitoring-Tools, die dich benachrichtigen sobald die Platte zu mehr als X% voll ist, damit du was dagegen tun kannst. Denn auch mit mehreren Partitionen möchtest du keine einzelne Partition zu 100% füllen, weil ein volles Dateisystem bei ext3/ext4 tödlich ist für die Performance. Es gibt einen Grund, warum mkfs standardmäßig einige Blöcke für root reserviert.
LVM doch nicht so toll schrieb:
Es wird dran gearbeitet: btrfs kann (denke ich) viele von den Dingen, die du dir wünschst.
Also im deutschen WP Artikel habe ich da mal nachgesehen, aber da steht bezüglich btrfs nichts bezüglich LVM Fähigkeiten.
Nimm mal den englischen, die deutsche Wikipedia ist bei solchen Artikeln oft qualitativ sehr viel schlechter als die englische.
Ich habe nicht gesagt, dass btrfs LVM nachbaut. Ich habe gesagt, dass die Features, von denen ich annehme, dass du sie dir wünschst, von btrfs angeboten werden. Das wären insbesondere per directory quotas.
LVM doch nicht so toll schrieb:
Ich vermute, LVM ist für deinen Anwendungsfall einfach nicht gedacht. LVM ist dafür gedacht, dass man Partitionen frei anlegen und löschen kann, ohne sich Gedanken darum machen zu müssen, dass Partitionen nur in einem zusammenhängenden Stück Speicherplatz angelegt werden können. Das was du beschreibst, ist die Aufgabe eines Dateisystems, aber nicht die Aufgabe von LVM.
Nein, das sehe ich überhaupt nicht so, denn ein Dateisystem kann so etwas ja gar nicht, was ich will.
Du möchtest deiner Beschreibung nach verhindern, dass ein volles /home andere Verzeichnisse wie /etc unbenutzbar macht. Außerdem möchtest du, dass die Blöcke auf der Festplatte dynamisch /home oder /etc oder /var zugeteilt werden, je nachdem wo sie gerade gebraucht werden. Das kann ein Dateisystem ganz hervorragend leisten.
LVM doch nicht so toll schrieb:
Für Virtual maschines verwende ich Image Files.
Ich wüßte nicht, wozu ich da LVM brauche.
Der Geschwindigkeitsgewinn durch eine richtige Local Volume Partition ist da bei einer Virtual Machine gering, denn die Performance hakt bei Virtual Machines an ganz anderen Stellen.
Imagedateien reichen mir da völlig.Oh, mach mal Messungen. Ich habe es bisher auch nicht geglaubt und gedacht, dass image files reichen, bis ich selber ein paar Experimente gemacht und nachgemessen hab. Meine Messungen haben mich vom Gegenteil überzeugt: virtual machine image files auf journaling file systems (ext3, ext4) sind messbar deutlich langsamer als LVM-Partitionen.
LVM doch nicht so toll schrieb:
Daran erkennt man den Unterschied zwischen einem erfahrenen Linuxer und einem blutigen Anfänger.
[...]
Auch daran erkennt man den Anfänger und den erfahrenen Linux User.Dazu äußer ich mich mal nicht.
-
Sorry, aber dummes Getrolle von der IP eines forenbekannten dummen Trolls darf ruhig geschlossen werden.
Die "Kritikpunkte" hat Christoph ja auch schon beantwortet, nicht dass das noch irgendjemand Ernst nimmt.