Найти в Дзене

Уменьшение виртуального диска с LVM

У нас есть виртуальная машина на VMware, на ней есть диск. Диск большой, данных мало. Наша задача - сделать диск меньшего размера. На борту Logical Volume Manager (LVM). Gparted не умеет переносить данные на LVM разделах. Будем делать всё руками. 1. Остановим процессы на сервере.  2. Создадим клон виртуалки. Если мы напортачим - возрадуемся бэкапу как родному. 3. Пока создаётся клон рассчитаем место, которое нужно оставить на дисках. df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_smartfe00-lv_root 50G 15G 33G 30% /tmpfs 7.8G 0 7.8G 0% /dev/shm /dev/sda2 477M 104M 348M 23% /boot /dev/sda1 197M 253K 197M 1% /boot/efi /dev/mapper/vg_smartfe00-lv_home 211G 11G 190G 6% /home
lv_root уменьшим с 50G до 30G, lv_home уменьшим с 211G до 25G 4. Выключаем ось. 5. Переключаем UEFI на BIOS. 6. Переключаем vlan на PXE ил

У нас есть виртуальная машина на VMware, на ней есть диск. Диск большой, данных мало. Наша задача - сделать диск меньшего размера. На борту Logical Volume Manager (LVM).

Gparted не умеет переносить данные на LVM разделах. Будем делать всё руками.

1. Остановим процессы на сервере. 

2. Создадим клон виртуалки. Если мы напортачим - возрадуемся бэкапу как родному.

3. Пока создаётся клон рассчитаем место, которое нужно оставить на дисках.

df -h
Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_smartfe00-lv_root 50G 15G 33G 30% /tmpfs 7.8G 0 7.8G 0% /dev/shm /dev/sda2 477M 104M 348M 23% /boot /dev/sda1 197M 253K 197M 1% /boot/efi /dev/mapper/vg_smartfe00-lv_home 211G 11G 190G 6% /home


lv_root уменьшим с 50G до 30G, lv_home уменьшим с 211G до 25G

4. Выключаем ось.

5. Переключаем UEFI на BIOS.

6. Переключаем vlan на PXE или вставляем образ Resque CD.

7. Загружаемся с Resque CD.

8. Через gparted убеждаемся в том, что /dev/sdb активен (не обязательно).

9. Уменьшаем размеры файловых систем, уменьшаем логические разделы, сдвигаем данные к началу диска, уменьшаем физический раздел.

Список групп:

vgdisplay

Список логических томов:

lvdisplay

Список дисков

pvdisplay

Ресайзим root до 30 Гб:

e2fsck -f /dev/mapper/vg_smartfe00-lv_home
resise2fs /dev/mapper/vg_smartfe01-lv_root 30G

Ресайзим home до 25 Гб:

e2fsck -f /dev/mapper/vg_smartfe00-lv_home
resise2fs /dev/mapper/vg_smartfe01-lv_home 25G

Уменьшаем размер логических томов:

lvreduce -L 30G /dev/mapper/vg_smartfe01-lv_root
lvreduce -L 25G /dev/mapper/vg_smartfe01-lv_home

Далее все сегменты вычисляем на калькуляторе для каждого сервера! Смысл в том, чтобы перемещать сегменты только на пустое место.

Список сегментов:

pvs -v --segments /dev/sdb1

Включаем мозг, понимаем куда двигать home и сдвигаем его подальше:

pvmove --alloc anywhere /dev/sdb1:12800-19199

Снова смотрим список сегментов:

pvs -v --segments /dev/sdb1

Двигаем home вплотную к root:

vmove --alloc anywhere /dev/sdb1:19200-25599 /dev/sdb1:7680-14079

Двигаем swap вплотную к home:

pvmove --alloc anywhere /dev/sdb1:67083-71110 /dev/sdb1:14080-18107

Дальше запускаем gparted и работаем через него.

gparted - деактивируем /dev/sdb и ресайзим /dev/sdb1

10. Смотрим инфо получившегося /dev/sdb1 - total sector 148350848. Вычисляем размер нового диска:

148350848*512/1024/1024=72436,9375 Мб

Новый диск будем делать 72438 Мб, это в три раза меньше того, что было.

11. Выключаем ось.

12. Добавляем через vCenter новый диск на 72438 Мб.

13. Снова загружаемся через Resque CD.

14. gparted на /dec/sdc делаем device - create partition table.

15. gparted на /dev/sdc делаем новый раздел /dev/sdc1 в файловой системе lvm2 pv.

16. Проверяем через инфо, чтобы количество секторов на /dev/sdc1 (148350976) было не меньше чем на /dev/sdb1 (148350848).

17. Расширяем группу:vgextend vg_smartfe00 /dev/sdc1.

18. Мувим диск с /dev/sdb1 на /dev/sdc1:pvmove /dev/sdb1 /dev/sdc1.

19. Исключаем из группы /dev/sdb1:vgreduce vg_smartfe00 /dev/sdb1.

20. gparted - деактивируем диск /dev/sdc1.

21. gparted - check диска /dev/sdc1 - дополнительно раздел расширяется до полного объёма.

22. Выключаем ось.

23. Удаляем ненужный более диск через vCenter.

24. Переключаем BIOS обратно на EFI.

25. Переключаем vlan на боевой, если ранее переключались на PXE.

26. Включаем тачку.

Вот так легко и непринуждённо мы уменьшили диск и виртуального сервера с LVM.

Источник:
https://internet-lab.ru/lvm_resize

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.