Ändern der Größe des logischen Volumes und des Dateisystems von lvm2: Genaue Größen?

10

Auf meinem Intranetserver habe ich eine 100,00 GiB-Partition / dev / sda5, die ich als physisches Volume für lvm2 verwende.

  • Es ist das einzige physische Volume in meiner Volume-Gruppe vg01.
  • vg01 enthält derzeit ein logisches Volume lv01, das die vollen 100,00 GiB verwendet - also 99,99 GiB aufgrund einiger Rundungen (hier beginnt das Problem).
  • lv01 enthält ein ext3-Dateisystem, das den gesamten Speicherplatz nutzt.

Ich möchte lv01 auf ungefähr 97 GiB reduzieren, damit ich lv02 mit ungefähr 97 GiB erstellen kann. 3 GiB (Ich brauche es, um lvm-Schnappschüsse zu machen).

Was ich bisher gemacht habe:

e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G

Das hat gut funktioniert. Aber jetzt muss ich rennen

lvreduce --size ? /dev/mapper/vg01-lv01

Und ich bin mir nicht sicher, welchen genauen Wert ich angeben muss. Die lvreduceManpage warnt ausdrücklich davor, dass die resultierende Größe nicht kleiner als das Dateisystem sein darf. Ich möchte es auch nicht größer machen, als es sein muss. Aber jetzt habe ich verschiedene Nummern:

  • Ich habe 97Gin resize2fs angegeben.
  • df -h sagt, es ist 96 G.
  • df sagt, es ist 100115936 1K-Blöcke.
  • lvdisplay meldet (natürlich) immer noch 99,99 GiB für das logische Volume.

Wofür muss ich angeben lvreduce?

Bearbeiten:

Die aktuell akzeptierte Antwort bietet eine gute Problemumgehung. Um solche Dinge jedoch in solide Skripte usw. zu integrieren, würde ich im Allgemeinen lieber präzise Messungen verwenden. Oder gibt es bereits ein zuverlässiges (!) Skript oder Tool, das den gesamten Größenänderungsvorgang in einem Schritt ausführt?

Chris Lercher
quelle
3
Sie können resize2fsdas Dateisystem auf etwa 90 GB reduzieren und dann mit Argumenten herum lvreduce(gefolgt von resize2fs) herumspielen, um zu sehen, was am besten funktioniert.
Larsks
@larsks: Tolle Idee (da sich resize2fs automatisch an die Partitionsgröße anpassen kann, während sich lvreduce nicht automatisch an die fs-Größe anpassen kann). Wenn niemand die eindeutige Antwort auf meine Frage kennt, denke ich, dass dies die Lösung sein wird.
Chris Lercher

Antworten:

5

Nach meiner Erfahrung haben LVM und resize2fs die gleichen Vorstellungen darüber, was "97G" bedeutet. Daher sollte es in Ordnung sein, an beiden Stellen dieselbe Größe anzugeben. Ich bin jedoch paranoid und verwende, wo immer möglich, immer die Strategie, die von Larsks in den Fragenkommentaren vorgeschlagen wurde, und habe die Größe auf 1 GB kleiner als gewünscht geändert, die Größe auf die gewünschte Größe angepasst und dann resize2fs erneut ausgeführt (ohne a Größe), damit es sich wieder ausdehnen kann, um den gesamten LV zu füllen.

womble
quelle
Ich denke, es ist wichtig, hier "paranoid" zu sein - denn es besteht nicht nur die Möglichkeit, dass die aktuellen Dateien beschädigt werden: Wenn das Dateisystem größer als das LV ist, gehe ich davon aus, dass es mit den folgenden Volumes jederzeit Chaos anrichten kann in der Zukunft.
Chris Lercher
Nein, LVM verbietet jeden Versuch, über das Ende des LV hinaus zu schreiben, sodass keine anderen LVs beschädigt werden können. Wenn das Dateisystem jedoch abgeschnitten wird, führt dies zu ziemlich katastrophalen Ergebnissen.
Womble
Das ist interessant - ich wusste nicht, dass es jedes Schreiben überprüft! Gut zu wissen.
Chris Lercher
13

Ich denke, dies geschieht am besten mit der Option --resizefs, um / lvresize zu reduzieren:

   -r, --resizefs
          Resize underlying filesystem together with the logical volume using fsadm(8).

Zugegeben, das hilft dir jetzt nicht weiter , aber es kann in Zukunft sein.

mjk
quelle
Das habe ich gesucht! Es scheint jedoch eine neue Option zu sein: Es ist in Version 2.02.74 (2) -RHEL, aber es fehlt in meiner Version 2.02.66 der LVM-Tools.
Chris Lercher
1
Als ich die Größe des fs bereits mit anderen Tools geändert hatte, unterdrückte diese Option die übliche Warnung und druckte die Meldung "Das Dateisystem ist bereits 3932160 Blöcke lang. Nichts zu tun!" Genau wie gewünscht.
D Coetzee
Selbst im Jahr 2020 wird diese Option in keinem der von Google auf seiner ersten Suchergebnisseite vorgeschlagenen Tutorials zum Erweitern / Verkleinern von lvm-Volumes erwähnt. Vielen Dank!
Ivan Shatsky