Defragmentierung von logischen LVM2-Volumes

18

Frage: Gibt es ein Tool, das die Defragmentierung von logischen LVM2-Volumes unterstützt? (Machen ihre Ausmaße in konsistente Sequenzen)

Vorzugsweise durch Definieren der gewünschten Reihenfolge der Bereiche (so etwas wie "Partition A am Anfang der Platte, B nach A, aber X am Ende der PV" )

Natürlich müssen folgende Fälle berücksichtigt werden:

  • VG besteht aus einer PV
  • VG besteht aus vielen PV, aber jeder LV sitzt auf einem PV
  • VG besteht aus vielen PV, LVs haben ihre Ausmaße über viele PV

Ob Partitionen entfernt werden können oder nicht, kann diskutiert werden.

Know-how: Es ist möglich, Ausdehnungsbereiche zu verschieben pvmove, z pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999.

Grund: Da das manuelle Verschieben vieler Bereiche pvmoveeine rein wiederholbare Sache ist (fraglich, ob hirnlos oder nicht), war ich neugierig, ob es ein Tool zum Automatisieren / Unterstützen dieses Prozesses gibt. Wenn nicht ... vielleicht mache ich eins alleine - denkst du, ein solches Tool wäre nützlich für andere Leute?

Grzegorz Wierzowiecki
quelle
Es ist möglich, dass es kein Tool gibt, da es keinen Anwendungsfall gibt, der dies erfordert. Ich bin neugierig, warum willst du defragmentieren? Gibt es eine Festplattentechnologie, bei der eine typische Extent-Größe (4 MB) von Vorteil ist?
Gilles 'SO- hör auf böse zu sein'
2
Betrachten wir die Leistungsmerkmale herkömmlicher Festplatten (nicht SSDs) - der Festplattenanfang bietet eine bessere Leistung als das Ende. Dies ist der wichtigste Faktor, warum Sie möglicherweise möchten, dass Erweiterungen, die sich auf eine Partition beziehen, am Anfang platziert werden.
Grzegorz Wierzowiecki
1
Für diese Art der Steuerung besteht die einfache Möglichkeit darin, die Festplatte in mehrere physische Volumes zu unterteilen.
Gilles 'SO - hör auf, böse zu sein'
1
Auf der anderen Seite macht es mehr Chaos in Konfigurationsdateien und alles Setup weniger flexibel. Ich glaube, dass Lösungen wie von @JimParis erwähnt LVM2 defragmenteroder pvmoveden Job machen.
Grzegorz Wierzowiecki

Antworten:

9

Ich habe schon einmal LVM2-Defragmentierung verwendet . Es ist nicht das Einfachste oder Beste, aber es macht den Trick.

Jim Paris
quelle
Sieht interessant aus. Ich muss es versuchen.
Grzegorz Wierzowiecki
Glauben Sie, dass diese Defragmentierung es einfacher machen könnte (basierend darauf), einen Weg zu implementieren / zu erstellen, um eine LV teilweise wiederherzustellen, wie es hier möglich ist (getan wurde) serverfault.com/a/665826/163750 ?
Aquarius Power
1

Ein weiterer Grund für die Defragmentierung besteht darin, das Risiko eines Datenverlusts beim Verkleinern eines logischen Volumes zu verringern. Ein spezieller Grund für das Verkleinern eines logischen Volumes ist das Ermöglichen der Erweiterung von / boot und ähnlichen Partitionen auf einer älteren MBR-Computerfestplatte. In meinem Fall erfordert ein Upgrade von LTS 16.04.03 auf LTS 18.04.1 mehr als die 500 MB, die / boot von der ursprünglichen Standardinstallation zugewiesen wurden.

Ich habe nicht die Tausenden von Quellcodezeilen für lvm2 gelesen, aber einige der Online-Hilfe / Wiki-Hinweise besagen, dass lvm2 ziemlich brachiale Kürzung verwendet, wenn einfache logische Volumenverkleinerungsverfahren verwendet werden - als ob Dateien in dem durch die Verkleinerung freigegebenen Bereich zugeordnet würden Wahrscheinlich müssen Sie diese Dateiliste wiederherstellen (möglicherweise eine wilde Verfolgungsjagd, wenn Anwendungs- oder Systempakete betroffen sind - oder wenn Ihre Benutzerdateiliste sehr umfangreich ist).

Überwachung
quelle