Zmiana rozmiaru woluminu logicznego lvm2 i systemu plików: dokładne rozmiary?

10

Na moim serwerze intranetowym mam partycję 100.00 GiB / dev / sda5, której używam jako woluminu fizycznego dla lvm2.

  • To jedyny wolumin fizyczny w mojej grupie woluminów vg01.
  • Wersja vg01 zawiera obecnie jeden wolumin logiczny lv01, wykorzystując pełne 100,00 GiB - właściwie 99,99 GiB z powodu zaokrąglenia (od tego zaczyna się problem).
  • lv01 zawiera system plików ext3, zajmujący całą przestrzeń.

Chcę zredukować lv01 do około 97 GiB, więc mogę utworzyć lv02 z około. 3 GiB (potrzebuję go do robienia migawek lvm).

Co do tej pory zrobiłem:

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

To zadziałało dobrze. Ale teraz będę musiał biec

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

I nie jestem pewien, jaką dokładnie wartość będę musiał określić. lvreduceStrona człowiek wyraźnie ostrzega, że uzyskana wielkość nie powinna być mniejsza niż w systemie plików. Nie chcę też, aby był większy niż powinien. Ale teraz mam różne liczby:

  • I określono 97Gw resize2fs.
  • df -h mówi, że to 96 G.
  • df mówi, że to 100115936 bloków 1K.
  • lvdisplay (oczywiście) nadal zgłasza 99,99 GiB dla woluminu logicznego.

Co będę musiał określić lvreduce?

Edytować:

Akceptowana obecnie odpowiedź stanowi dobre obejście. Jednak w celu zintegrowania takich rzeczy w solidnych skryptach itp. Ogólnie wolałbym zamiast tego używać precyzyjnych pomiarów. A może istnieje już niezawodny (!) Skrypt lub narzędzie, które wykonuje całą procedurę zmiany rozmiaru w jednym kroku?

Chris Lercher
źródło
3
Możesz użyć, resize2fsaby zmniejszyć system plików do około 90GiB, a następnie zrzucić argumenty do lvreduce(po których następuje resize2fs), aby zobaczyć, co działa najlepiej.
larsks
@larsks: Świetny pomysł (ponieważ resize2fs może automatycznie dostosować się do rozmiaru partycji, podczas gdy lvreduce nie może automatycznie dostosować się do rozmiaru fs). Jeśli nikt nie zna ostatecznej odpowiedzi na moje pytanie, myślę, że to będzie rozwiązanie.
Chris Lercher
Dlaczego po prostu nie przesłać tego samego rozmiaru do lredreduce? O ile lvm do literówki nie rozpozna, że ​​ma ten sam rozmiar, i nie zmienia go ponownie. A jeśli popełnisz literówkę, przynajmniej unikniesz zniszczenia systemu plików. lvreduce -r -L 97G / dev / mapper / vg01-lv01
Bill

Odpowiedzi:

5

Z mojego doświadczenia wynika, że ​​LVM i resize2fs mają te same pomysły na temat tego, co oznacza „97G”, więc określenie tego samego rozmiaru w obu miejscach powinno być w porządku. Jestem jednak paranoikiem i tam, gdzie to możliwe, zawsze używaj strategii sugerowanej przez Larsks w komentarzach do pytania i zmieniłem rozmiar, aby był o jeden GB mniejszy niż chciałem, zrobiłem lvresize do pożądanego rozmiaru, a następnie ponownie uruchom resize2fs (bez rozmiar), aby umożliwić jej ponowne rozwinięcie i wypełnienie całego LV.

womble
źródło
Myślę, że ważne jest, aby być tutaj „paranoikiem” - ponieważ nie tylko istnieje możliwość uszkodzenia bieżących plików: jeśli system plików jest większy niż LV, zakładam, że może on w dowolnym momencie wywołać spustoszenie w następujących woluminach w przyszłości.
Chris Lercher
Nie, LVM zabroni jakichkolwiek prób pisania poza końcem LV, więc żadne inne LV nie mogą zostać uszkodzone. Jeśli system plików zostanie obcięty, spowoduje to dość katastrofalne wyniki.
womble
To ciekawe - nie wiedziałem, że sprawdza każdy zapis! Dobrze wiedzieć.
Chris Lercher
14

Myślę, że najlepiej to zrobić, używając opcji --resizefs do lvreduce / lvresize:

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

Wprawdzie to ci teraz nie pomaga , ale może w przyszłości.

mjk
źródło
Właśnie tego szukałem! Wydaje się, że jest to nowa opcja: jest w wersji 2.02.74 (2) -RHEL, ale brakuje jej w mojej wersji 2.02.66 narzędzi LVM.
Chris Lercher
1
Kiedy już zmieniłem rozmiar fs przy użyciu innych narzędzi, ta opcja pomijała zwykłe ostrzeżenie i wydrukowała komunikat „System plików ma już 3932160 bloków. Nic nie robić!” Tak jak chciałem.
D Coetzee
Nawet w 2020 r. Żaden z kilku samouczków dotyczących zwiększania / zmniejszania woluminów lvm zaproponowanych przez Google na pierwszej stronie wyników wyszukiwania nie wspomina o tej opcji. Wielkie dzięki!
Ivan Shatsky