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ć. lvreduce
Strona 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
97G
w 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?
resize2fs
aby zmniejszyć system plików do około 90GiB, a następnie zrzucić argumenty dolvreduce
(po których następujeresize2fs
), aby zobaczyć, co działa najlepiej.Odpowiedzi:
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.
źródło
Myślę, że najlepiej to zrobić, używając opcji --resizefs do lvreduce / lvresize:
Wprawdzie to ci teraz nie pomaga , ale może w przyszłości.
źródło