У нас есть виртуальная машина на 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 или GParted Live
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
gparted - ресайзим /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 или LVM2.
These are all the steps required to resize a LVM or LVM2 partition

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

You have to rearrange the unallocated space at the end of the LVM. That means after root and swap_1 partition. So, you need to move that free space using the command below

pvs -v --segments /dev/sda5

This will show the output like below
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy 0 free
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end swap 0 linear /dev/sda5:yyyy-end
Now use the command below to remove external fragmentation -

sudo pvmove --alloc anywhere /dev/sda5:yyyy-end
Now let us see how it goes -

pvs -v --segments /dev/sda5

This will show the output like below
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy swap 0 linear /dev/sda5:xxx-yyyy
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end 0 free
After that use the gparted and resize the LVM to maximum used area and rest will be in unallocated space.

https://internet-lab.ru/lvm_resize
Увеличение LVM томов Debian 8.3 (на виртуальной машине Hyper-V)
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 12:48 pm
Powered by Dreamwidth Studios