Der lvextend
Befehl (ohne die --resizefs
Option) trifft nur die LVM-seitigen Vorkehrungen, um das Blockgerät zu vergrößern, das das logische Volume ist. Unabhängig vom Dateisystemtyp (oder sogar davon, ob überhaupt ein Dateisystem vorhanden ist) auf dem LV sind diese Vorgänge immer ähnlich.
Wenn der LV ein ext2 / 3/4-Dateisystem enthält, besteht der nächste Schritt darin, die Metadaten des Dateisystems zu aktualisieren, um das Dateisystem darauf aufmerksam zu machen, dass mehr Speicherplatz verfügbar ist, und die erforderlichen Metadatenstrukturen zum Verwalten des hinzugefügten Speicherplatzes zu erstellen / zu erweitern. Bei ext2 / 3/4 Dateisystemen umfasst dies mindestens:
- Erstellen neuer Inodes für den hinzugefügten Speicherplatz
- Erweitern der Blockzuordnungsdatenstrukturen, sodass das Dateisystem erkennen kann, ob ein Block des hinzugefügten Speicherplatzes verwendet wird oder frei ist
- Verschieben möglicherweise einige Datenblöcke, wenn sie der zuvor erwähnten Datenstrukturerweiterung im Wege stehen
Dieser Teil ist spezifisch für den Dateisystemtyp, obwohl die ext2 / 3/4 Dateisystemtypen so ähnlich sind, dass sie alle mit einem einzigen resize2fs
Tool in der Größe geändert werden können . Für XFS-Dateisysteme würden Sie xfs_growfs
stattdessen ein Tool verwenden. Andere Dateisysteme verfügen möglicherweise über eigene Erweiterungstools. Und wenn das logische Volume kein Dateisystem enthalten würde, sondern eine "rohe" Datenbank oder ein Oracle ASM-Volume, müsste ein weiteres Verfahren angewendet werden.
Jedes Dateisystem verfügt über unterschiedliche interne Funktionen, sodass die Bedingungen für die Erweiterung eines Dateisystems für jedes Dateisystem unterschiedlich sind. Es dauerte eine Weile, bis eine gemeinsame API für die Dateisystemerweiterung entwickelt wurde. Dadurch konnte der fsadm resize
Befehl implementiert werden , der eine einheitliche Syntax zum Erweitern mehrerer Dateisystemtypen bietet. Die --resizefs
Option lvextend
verwendet nur den fsadm resize
Befehl.
Auf den Punkt gebracht: Nach dem lvextend
LVM-Level - Tools wie lvs
, vgs
, lvdisplay
und vgdisplay
die aktualisierte Größe, aber das Dateisystem und alle Tools arbeitet auf es sehen, wie df
, wird es noch nicht sehen.
lvextend
und vor der Ausführungresize2fs
,df
würden die aktualisierten Größen melden?