Seit geraumer Zeit gibt es Mittel und Methoden seinen Plattenplatz einfacher und besser einzusetzen, als die herkömmliche Art der Partitionierung.
In Rechenzentren war man es schnell leid, dass man Festplatten, hatte man sie einmal partitioniert, mit diesem Setup leben musste.
Noch heute partitionieren die meisten User mit diesem Schema und stehen ebenso bald vor den gleichen Problemen. Wird eine Partition zu klein, so beginnt hektisches Sichern, shrinken, vergrößern, wieder partitionieren, Rücksichern und das Bier in der Kneipe um die Ecke wird schal.
Dabei gibt es schon lange eine sehr elegante Lösung für solche Probleme, nämlich
das Logical Volume Management
Ich werde hier nur auf die Basics eingehen, damit jeder einfach künftig LVM verwenden kann, obwohl das LVM wesentlich mehr kann. Die anderen feinen Features werde ich vielleicht künftig in einem weiteren Teil beschreiben.
Was ist es und was tut es?
Letztlich ist das LVM eine weitere Zwischenschicht, die man zwischen der Hardware -also (beliebig vielen) Festplatten und dem Kernel IO- Subsystem einschieben kann. (IO==Input/Output, also Lesen und Schreiben von Daten auf Platten)
Dazu braucht es drei Dinge: Ein entsprechendes Kernelmodul, nämlich den sogeannten Divec-Mapper, eine libdevmapper, die den Userspace- LVM Verwaltungstools die Dienste des eigentlichen Mappers zur Verfügung stellen. Also ein Kernelmodul, eine Lib und die Tools. All das muss man weiter nicht beachten. Sobald man LVM bei der Installation oder später bei neuen Platten wählt, wird das Zeuchs installiert. Meist ist es schon mitinstalliert worden.
Wie funktioniert es?
Statt auf einer Platte ein paar Partitionen einzurichten, die man dann formatiert, wird zuerst ein sogenanntes PV, ein PhysicalVolume, eingerichtet. Dieses PhysicalVolume wird dann einer VolumeGroup zugeordnet. Wie der Name schon sagt, kann eine VolumeGroup mehrere PhysicalVolumes enthalten.
Und ebenso klar ist, dass eine VolumeGroup mindestens ein PysicalVolume enthalten muss. Sonst macht es ja keinerlei Sinn.
Hat man dann seine VolumeGroup kann man endlich ein LogicalVolume definieren. Und dieses LogicalVolume kann man dann endlich ganz herkömmlich formatieren. Mit allen üblichen FileSystemen nach Gusto.
Es scheint also wesentlich umständlicher:
Herkömmliche Partitionierung:
- Partitionen erstellen
- Partitionen formatieren
LVM verwenden:
- PysicalVolume(s) erstellen
- VolumeGroup erstellen
- LogicalVolume erstellen.
- LogicalVolume formatieren
Der scheinbare Aufwand ist kaum einer, und beschert später ein sehr bequemes Plattenleben. Man kann ein LV (kurz für: LogicalVolume) im laufenden Betrieb vergrößern ohne dass man es unmounten müsste, man kann es verkleinern usw. und so fort.
Und tatsächlich werden zum Beispiel bei der Installation diese Schritte so bequem erledigt, dass der Mehraufwand kaum in's Gewicht fällt.
Aber noch mal zurück zu dem PhysicalVolume, das wir später in einer VolumeGroup verwenden wollen. Oft sorgt die Tatsache, dass so ein PhysicalVolume auf einer Partition ODER einer (ganzen) Platte ohne jede Partitionierung liegen kann, für Verwirrung.
Ich selbst formatiere die Platten meiner Kisten aus einem einfach Grund, wie folgt:
Auf den ersten zwei Platten richte ich zwei herkömmliche Partitionen ein. Ob als GPT oder "MBR" Partitionierung, ist egal.
Eine kleine als Bootpartition mit ext3 und die zweite Partition als PhysicalVolume. Aber das ist Geschmacksache. Ich schätze an diesem Setup einfach die Tatsache, dass das Booten etwas weniger kompliziert ist, da es jedes herkömmliche Bootmedium sicher tut, und außerdem so Scherze wie WOL (WakeOnLAN) mit Plattenchecks oder dergleichen problemlos einzurichten sind.
Man kann natürlich auch komplett alles für ein PhysicalVolume verwenden und jede Partition dort dann später einrichten.
Letztlich Geschmackssache und Bedürfnis.
Was ich damit zeigen wollte, ist, dass ein PhysicalVolume sowohl auf einer herkömmlichen Partition eingerichtet werden kann, wie auch auf einer ganzen Platte komplett ohne Formatierung.
Die Praxis
ist einfach, als nach diesem Vorgeplänkel gedacht, viel einfacher: Es genügt ein Befehl, um ein PhysicalVolume zu erstellen und es einer VolumeGroup zuzuordnen, die -falls sie noch nicht existiert gleich mit erstellt wird:
Zwar kann man mit dem Befehl pvcreate (lies: man pvcreate) die Parameter für das PhysicalVolume sehr fein einstellen, aber Otto-Normal-Linuxer kann getrost diesen Schritt überspringen, weil der Befehl vgcreate <VolumeGroupName> <tatsächliche Platte oder Partition> das mit Defaultwerten miterledigt. Im graphischen Installationstool muss man aber tatsächlich selbst erst eine VolumeGroup anlegen, falls man das nicht im Blindflug erledigen lässt, was -glaube ich- neuerdings auch vollautomatisch geht.
vgcreate MeineErsteVolumeGroup /dev/sda2 erstellt also ein PhysicalVolume auf der zweiten Partition (sda2) der ersten Platte (sda2) (Das sd steht für ScsiDisk, weil seit Kernel 2.6.x alle Festplatten mit diesem SCSI Subsystem bedient werden. Diese Nomenklatur kann bei anderen Distris abweichen). Der Name MeineErsteVolumeGroup ist natürlich Unsinn, aber möglich. Nehmt einfach etwas Sprechendes. Standardmässig wird vg0 für VolumeGroupNull verwendet. Wer seinen Platten Hersteller liebt, kann auch zu WesternDigitalBaracuda oder ähnlichem greifen. (Wieviele Zeichen zulässig sind, weiß ich nicht, und schlage das auch nicht nach. Wer es weiß, ergänze hier.
Jetzt fehlt uns nur noch ein LogicalVolume.
Das erstellen wir mit lvcreate -n HalliGalli -L 120G MeineErsteVolumeGroup.
Der Befehl liest sich, wie folgt:
lvcreate LocigalVolume CREATEn
-n mit dem Namen HalliGalli (die Langform wäre --name )
-L mit der Logicalvolumesize von 50Gb (die Langform: --size )
in der VolumeGroup namens MeineErsteVolumeGroup
Und jetzt fehlt nur noch ein Dateisystem.
mkfs.ext4 /dev/mapper/MeineErsteVolumeGroup zum Beispiel.
Dieser Befehl zeigt ganz schön, wie Linux wirklich ist, und dass das LVM wirklich eine Zwischenschicht ist.
Aber eine für uns sehr bequeme.
Man kann natürlich auch ein verschlüsseltes LogicalVolume mit LUKS anlegen.
Man kann alles machen, was man mit "normalen" Partitionen auch machen kann. Und noch viel, viel mehr.
Was ich später vielleicht ein wenig weiter vertiefen werde.
Für heute ist's gut, und ich geh' wieder basteln.