LVM: перераспределение разделов

Уменьшить root, увеличить home

Задача: уменьшить ubuntu–vg-root, а на освободившееся место увеличить ubuntu–vg-home.
Чтобы проверить всю схему, надо сначала выполнить на ВМ.

Смотрим, что у нас имеется:

Copy
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 365.4M 1 loop /run/archiso/sfs/airootfs sda 8:0 0 30G 0 disk ├─sda1 8:1 0 487M 0 part ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 29.5G 0 part ├─ubuntu--vg-root 254:0 0 10G 0 lvm ├─ubuntu--vg-swap_1 254:1 0 1G 0 lvm └─ubuntu--vg-home 254:2 0 18.5G 0 lvm sr0 11:0 1 476M 0 rom /run/archiso/bootmnt

Есть три раздела LVM.

Проверяем разделы, все должны быть ACTIVE:

Copy
# lvscan ACTIVE '/dev/ubuntu-vg/root' [10.00 GiB] inherit ACTIVE '/dev/ubuntu-vg/swap_1' [1.00 GiB] inherit ACTIVE '/dev/ubuntu-vg/home' [18.52 GiB] inherit

Начнём с root.

Порядок действий:

  1. уменьшить размер файловой системы
  2. уменьшить раздел logical volume

Проверяем целостность ФС:

Copy
# e2fsck -f /dev/ubuntu-vg/root e2fsck 1.43.4 (31-Jan-2017) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/ubuntu-vg/root: 97684/654080 files (0.2% non-contiguous), 506679/2621440 blocks

Уменьшаем размер файловой системы до 5 GB:

Copy
i# resize2fs /dev/ubuntu-vg/root 5G resize2fs 1.43.4 (31-Jan-2017) Resizing the filesystem on /dev/ubuntu-vg/root to 1310720 (4k) blocks. The filesystem on /dev/ubuntu-vg/root is now 1310720 (4k) blocks long.

Уменьшаем размер тома до 5 Gb:

Copy
# lvreduce -L 5G /dev/ubuntu-vg/root WARNING: Reducing active logical volume to 5.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce ubuntu-vg/root? [y/n]: y Size of logical volume ubuntu-vg/root changed from 10.00 GiB (2560 extents) to 5.00 GiB (1280 extents). Logical volume ubuntu-vg/root successfully resized.

Проверяем:

Copy
# lsblk /dev/sda5 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda5 8:5 0 29.5G 0 part ├─ubuntu--vg-root 254:0 0 5G 0 lvm ├─ubuntu--vg-swap_1 254:1 0 1G 0 lvm └─ubuntu--vg-home 254:2 0 18.5G 0 lvm

Теперь приступаем к изменению раздела /home.
С помощью lvextend — увеличиваем размер ubuntu--vg-home на 5G:

Copy
# lvextend -L +5G /dev/ubuntu-vg/home Size of logical volume ubuntu-vg/home changed from 18.52 GiB (4741 extents) to 23.52 GiB (6021 extents). Logical volume ubuntu-vg/home successfully resized.

Проверяем ФС:

Copy
# e2fsck -f /dev/ubuntu-vg/home e2fsck 1.43.4 (31-Jan-2017) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/ubuntu-vg/home: 11/1215840 files (0.0% non-contiguous), 120370/4854784 blocks

Не указываем размер, что бы занять 100% свободного места:

Copy
# resize2fs -p /dev/ubuntu-vg/home resize2fs 1.43.4 (31-Jan-2017) Resizing the filesystem on /dev/ubuntu-vg/home to 6165504 (4k) blocks. Begin pass 1 (max = 40) Extending the inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX- The filesystem on /dev/ubuntu-vg/home is now 6165504 (4k) blocks long.

Проверяем:

Copy
# /dev/sda5 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda5 8:5 0 29.5G 0 part ├─ubuntu--vg-root 254:0 0 5G 0 lvm ├─ubuntu--vg-swap_1 254:1 0 1G 0 lvm └─ubuntu--vg-home 254:2 0 23.5G 0 lvm

Перезагружаем сервер и смотрим:

Copy
$ lsblk /dev/sda5 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda5 8:5 0 29.5G 0 part ├─ubuntu--vg-root 252:0 0 5G 0 lvm / ├─ubuntu--vg-swap_1 252:1 0 1G 0 lvm [SWAP] └─ubuntu--vg-home 252:2 0 23.5G 0 lvm /home

Готово.

Уменьшить home, увеличить swap

План действий:

  1. уменьшить файловую систему home до 400 гб
  2. уменьшить home logical volume до 400 гб
  3. увеличить logical volume swap на 100% освободившегося места.
  4. увеличить файловую систему swap на 100% освободившегося места.

Начинаем с /dev/vg_arch/home:

Copy
# e2fsck -f /dev/vg_arch/home e2fsck 1.43.4 (31-Jan-2017) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/vg_arch/home: 869974/28696576 files (0.3% non-contiguous), 49206901/114755584 blocks

Уменьшаем размер до 400 гб:

Copy
# resize2fs /dev/vg_arch/home 400G resize2fs 1.43.4 (31-Jan-2017) Resizing the filesystem on /dev/vg_arch/home to 104857600 (4k) blocks. The filesystem on /dev/vg_arch/home is now 104857600 (4k) blocks long.

Уменьшаем размер LV до 400 гб:

Copy
# lvreduce -L 400G /dev/vg_arch/home WARNING: Reducing active logical volume to 400.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vg_arch/home? [y/n]: y Size of logical volume vg_arch/home changed from 437.76 GiB (112066 extents) to 400.00 GiB (102400 extents). Logical volume vg_arch/home successfully resized.

Монтируем, проверяем:

Copy
# mount /dev/vg_arch/home /mnt/ # ls -l /mnt .... total 88

Всё на месте. Переходим к root:

Copy
# e2fsck -f /dev/vg_arch/root e2fsck 1.43.4 (31-Jan-2017) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity /lost+found not found. Create<y>? yes Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/vg_arch/root: ***** FILE SYSTEM WAS MODIFIED *****

Увеличиваем LV на 100%:

Copy
# lvextend -l +100%FREE /dev/vg_arch/root Size of logical volume vg_arch/root changed from 10.00 GiB (2560 extents) to 47.76 GiB (12226 extents). Logical volume vg_arch/root successfully resized.

Проверяем:

Copy
# lvdisplay /dev/vg_arch/root --- Logical volume --- LV Path /dev/vg_arch/root LV Name root VG Name vg_arch LV UUID hOB0M9-dFy4-C0wI-Brwe-faqp-5wZr-tzkQFk LV Write Access read/write LV Creation host, time archiso, 2016-12-21 09:29:33 +0000 LV Status available open 0 LV Size 47.76 GiB

Увеличиваем ФС root на 100%. Для этого не надо указывать размер в команде resize2fs

Copy
# resize2fs -p /dev/vg_arch/root resize2fs 1.43.4 (31-Jan-2017) Resizing the filesystem on /dev/vg_arch/root to 12519424 (4k) blocks. Begin pass 1 (max = 303) Extending the inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX The filesystem on /dev/vg_arch/root is now 12519424 (4k) blocks long.

Демонтируем home, монтируем root, проверяем:

Copy
# umount /dev/vg_arch/home # mount /dev/vg_arch/root /mnt/ # ls -l /mnt/ ... total 60

Перезагружаемся, проверяем:

Copy
# umount /dev/vg_arch/root # reboot

Готово.

Опубликовано: 21.01.2021