Змінення логічного обсягу та файлової системи lvm2: Точні розміри?


10

На своєму інтранет-сервері у мене є розділ 100.00 GiB / dev / sda5, який я використовую як фізичний об'єм для lvm2.

  • Це єдиний фізичний об'єм у моїй групі томів vg01.
  • vg01 наразі містить один логічний об'єм lv01, використовуючи повний 100.00 GiB - ну, власне, 99,99 Гбіт через деяке округлення (саме тут починається проблема).
  • lv01 містить файлову систему ext3, використовуючи весь простір.

Я хочу зменшити lv01 до приблизно 97 GiB, тому можу створити lv02 з прибл. 3 Гб (мені це потрібно, щоб зробити lvm знімки).

Що я робив до цього часу:

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

Це добре спрацювало. Але тепер мені доведеться бігти

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

І я не впевнений, яке саме значення мені доведеться вказати. Сторінка lvreduceman чітко попереджає, що отриманий розмір не повинен бути меншим, ніж файлова система. Я також не хочу робити його більшим, ніж це має бути. Але зараз у мене різні цифри:

  • Я вказав 97Gу resize2fs.
  • df -h каже, це 96 Г.
  • df каже, це 100115936 1К-блоки.
  • lvdisplay (звичайно) все ще повідомляє 99,99 ГБ за логічний об'єм.

Що потрібно вказати lvreduce?

Редагувати:

В даний час прийнята відповідь дає хороший спосіб вирішення. Однак для того, щоб інтегрувати такі речі в тверді сценарії тощо, я взагалі вважаю за краще використовувати точні вимірювання. А може, вже є надійний (!) Скрипт або інструмент, який виконує всю процедуру зміни розміру за один крок?


3
Ви можете використати resize2fsдля зменшення файлової системи до 90GiB або близько того, а потім обмінятись аргументами до lvreduce(з наступним resize2fs), щоб побачити, що найкраще працює.
larsks

@larsks: Чудова ідея (оскільки resize2fs може автоматично підлаштовуватися під розмір розділів, тоді як lvreduce не може автоматично підлаштовуватися під розмір fs). Якщо ніхто не знає однозначної відповіді на моє запитання, я думаю, це буде рішенням.
Кріс Лерчер

Чому б просто не передати однаковий розмір у lvreduce? Якщо ви не зробите помилку друку, lvm повинен визнати, що він однакового розміру, і не змінювати його розмір знову. А якщо ви робите помилку, принаймні ви уникаєте руйнувати свою файлову систему. lvreduce -r -L 97G / dev / mapper / vg01-lv01
Білл

Відповіді:


5

На мій досвід, LVM та resize2fs мають однакові уявлення про те, що означає "97G", тому вказівка ​​однакового розміру в обох місцях має бути нормальною. Однак я параної, і коли це можливо, завжди використовую стратегію, запропоновану ларками в коментарях до запитання, і розмір на один ГБ менший, ніж я хотів, зробив lvresize до потрібного розміру, а потім повторно запустіть resize2fs (без розмір), щоб він розширився назад, щоб заповнити весь НН.


Я думаю, тут важливо бути "параноїком" - адже не тільки є можливість пошкодження поточних файлів: Якщо файлова система більша за LV, я припускаю, що вона може в будь-який час відтворити хаос із наступними томами у майбутньому.
Кріс Лерчер

Ні, LVM забороняє будь-яку спробу записувати за межі кінця LV, тому жоден інший LV не може бути пошкоджений. Якщо файлова система все ж обрізана, це призводить до досить катастрофічних результатів.
живіт

Це цікаво - я не знав, що він перевіряє кожне написання! Добре знати.
Кріс Лерчер

14

Я думаю, що це найкраще зробити за допомогою параметра --resizefs для lvreduce / lvresize:

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

Справді, це вам зараз не допомагає , але це може бути в майбутньому.


Ось що я шукав! Здається, це новий варіант, хоча: він у версії 2.02.74 (2) -RHEL, але він відсутній у моїй версії 2.02.66 інструментів LVM.
Кріс Лерчер

1
Коли я вже змінив розмір fs за допомогою інших інструментів, цей параметр придушив звичайне попередження і надрукував повідомлення "Файлова система вже 3932160 блоків. Нічого робити!" Так само, як бажано.
D Coetzee

Навіть у 2020 році жоден із декількох підручників щодо збільшення / зменшення обсягів lvm, запропонованих Google на своїй першій сторінці результатів пошуку, не згадує про цей варіант. Дуже дякую!
Іван Шацький
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.