Defragmentacja woluminów logicznych LVM2

18

Pytanie: Czy istnieje narzędzie wspierające de-fragmentację woluminów logicznych LVM2? (Przekształcenie ich w spójne sekwencje)

Najlepiej przez zdefiniowanie pożądanej kolejności zakresów (coś w rodzaju „partycja A na początku dysku, B po A, ale X na końcu PV” )

Oczywiście należy wziąć pod uwagę następujące przypadki:

  • VG składa się z jednego PV
  • VG składa się z wielu PV, ale każdy LV znajduje się na jednym PV
  • VG składa się z wielu PV, LV mają swoje zakresy w wielu PV

To, czy partycje można rozebrać, czy nie, można omówić.

Know-how: Można przenosić zakresy zakresów pvmove, np pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999. :

Powód: Ponieważ ręczne przenoszenie wielu zakresów pvmovejest czysto powtarzalną rzeczą (wątpliwe, czy bezmózgowe, czy nie), byłem ciekawy, czy istnieje narzędzie do automatyzacji / wspierania tego procesu. Jeśli nie ... może robię to sam - czy uważasz, że takie narzędzie byłoby przydatne dla innych ludzi?

Grzegorz Wierzowiecki
źródło
Możliwe, że nie ma narzędzia, ponieważ nie ma wymaganego przypadku użycia. Jestem ciekawy, dlaczego chcesz defragmentować? Czy istnieje technologia dyskowa, która zapewnia korzyść dla rozmiaru typowego rozmiaru (4 MB)?
Gilles 'SO - przestań być zły'
2
Rozważmy tradycyjne parametry wydajności dysku twardego (nie SSD) - początek dysku oferuje lepszą wydajność niż koniec. To jest najważniejszy czynnik, dlaczego warto chcieć mieć zakresy związane z niektórymi partycjami, które zostaną umieszczone na początku.
Grzegorz Wierzowiecki,
1
W przypadku tego rodzaju kontroli najprostszym sposobem jest podzielenie dysku na kilka woluminów fizycznych.
Gilles 'SO - przestań być zły'
1
Ale z drugiej strony powoduje to większy bałagan w plikach konfiguracyjnych, a wszystkie ustawienia są mniej elastyczne. Uważam, że rozwiązania takie jak wspomniane przez @JimParis LVM2 defragmenterlub pvmovewykonują pracę.
Grzegorz Wierzowiecki,

Odpowiedzi:

9

Wcześniej korzystałem z defragmentatora LVM2 . To nie jest najprostsze ani najlepiej napisane, ale załatwia sprawę.

Jim Paris
źródło
Wygląda ciekawie. Muszę tego spróbować.
Grzegorz Wierzowiecki,
czy uważasz, że ta defragmentacja może ułatwić (na jej podstawie) wdrożenie / stworzenie sposobu częściowego odzyskania LV, jak stwierdzono, że jest to możliwe (zostało zrobione) tutaj serverfault.com/a/665826/163750 ?
Wodnik Moc
1

Kolejnym powodem defragmentacji byłoby zmniejszenie prawdopodobieństwa utraty danych podczas zmniejszania woluminu logicznego. Konkretnym powodem zmniejszenia woluminu logicznego jest umożliwienie rozszerzenia / boot i podobnych partycji na starszym dysku twardym komputera MBR. W moim przypadku aktualizacja z LTS 16.04.03 do LTS 18.04.1 wymaga więcej niż 500 MB przydzielonych / boot z oryginalnej instalacji domyślnej.

Nie przeczytałem tysięcy wierszy kodu źródłowego dla lvm2, ale niektóre z pomocy online / wiki wskazują, że lvm2 używa dość brutalnej obcinania siły, gdy stosowane są proste logiczne procedury zmniejszania woluminu - tak jakby pliki były przydzielane w obszarze zwolnionym przez skurcz prawdopodobnie będziesz musiał przywrócić tę listę plików (potencjalnie gęsia gęś sama w sobie, jeśli dotyczy aplikacji lub pakietów systemowych - lub jeśli lista plików użytkownika jest bardzo duża).

Obserwacja
źródło