Содержание

Измениене размера LVM томов

Подготовка

VMWare

Зайдя в свойства виртуальной машины:

  1. Выбираем нужный жесткий диск
  2. Изменяем размер, до желаемого объема
  3. Нажимаем кнопку Ок

ProxMox

  1. Выбираем виртуальную машину, и открываем раздел Hardware
  2. Находим нужный диск и выделяем его.
  3. Вверху нажимаем кнопку Resize disk

Откроется окно, где необходимо ввести количество гигабайт, на которые желаем увеличить диск.

Проверка доступного пространства на диске

После увеличения размера диска необходимо, проверить, что система увидела доступное место. Для этого выполним команду:

fdisk -l

Вывод в моем случае был таким:

[root@lvm2 askadmin]# fdisk -l
Диск /dev/sda: 35 GiB, 37580963840 байт, 73400320 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xe51a470c
 
Устр-во    Загрузочный  начало    Конец  Секторы Размер Идентификатор Тип
/dev/sda1  *              2048  2099199  2097152     1G            83 Linux
/dev/sda2              2099200 41943039 39843840    19G            8e Linux LVM
 
 
Диск /dev/mapper/rl-root: 17 GiB, 18249416704 байт, 35643392 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
 
 
Диск /dev/mapper/rl-swap: 2 GiB, 2147483648 байт, 4194304 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт

Как можно видеть по первой же строчке вывода - система увидела добавленные мной 15ГБ (диск изначально был 20ГБ). Если же автоматически система не обнаружила добавленное место - может потребоваться запустить сканирование дисков вручную.
Выполнить это можно командой:

echo 1 > /sys/block/sda/device/rescan
Обратите внимание, что в мое случае речь идет про устройство /dev/sda в вашем оно может отличаться!

Изменение размера раздела на диске

Для изменения размера потребуется выполнить следующие шаги:

На этом этап по увеличению тома завершен и переходим к расщирению VG (Volume Group).

Расширение Physical Volume

Выполним команду:

pvdisplay

Как можем видеть из вывода этой команды, система считает, что Physical volume все еще 19ГБ

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rl_lvm
  PV Size               <19,00 GiB / not usable 3,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               PvruJt-UxaO-aZZw-U8Gr-glJ5-rE6c-C250A8

Для расширения воспользуемся командой:

 pvresize /dev/sda2

Получаем примерно следующий вывод:

Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Что говорит о том, что все прошло успешно. Для подтверждения вводим снова pvdisplay и получаем следующий вывод:

[root@lvm askadmin]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rl_lvm
  PV Size               <34,00 GiB / not usable 2,00 MiB
  Allocatable           yes
  PE Size               4,00 MiB
  Total PE              8703
  Free PE               3840
  Allocated PE          4863
  PV UUID               PvruJt-UxaO-aZZw-U8Gr-glJ5-rE6c-C250A8

Как видим размер physical volume изменился. Теперь если введем команду vgdisplay получим следующий вывод:

[root@lvm askadmin]# vgdisplay
  --- Volume group ---
  VG Name               rl_lvm
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <34,00 GiB
  PE Size               4,00 MiB
  Total PE              8703
  Alloc PE / Size       4863 / <19,00 GiB
  Free  PE / Size       3840 / 15,00 GiB
  VG UUID               qzwYbY-VF4p-Ak9S-eRSP-Ubhv-QldK-AjY1T3

Как видим нам стало доступно 15ГБ, которые мы можем потратить для изменения размера любого Logical Volume

Увеличиваем Logical Volume

Выполним команду lvdisplay, чтобы отобразить все доступные логические тома:

[root@lvm askadmin]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/rl_lvm/root
  LV Name                root
  VG Name                rl_lvm
  LV UUID                FS01Q8-wg6U-SC4t-jcqX-JZF1-5DET-1eyAr1
  LV Write Access        read/write
  LV Creation host, time lvm, 2022-04-06 13:51:05 +0700
  LV Status              available
  # open                 1
  LV Size                <17,00 GiB
  Current LE             4351
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
 
  --- Logical volume ---
  LV Path                /dev/rl_lvm/swap
  LV Name                swap
  VG Name                rl_lvm
  LV UUID                YFtfnn-4N9F-IcCr-P4oS-OI8S-jdl2-3pvGfi
  LV Write Access        read/write
  LV Creation host, time lvm, 2022-04-06 13:51:06 +0700
  LV Status              available
  # open                 2
  LV Size                2,00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

Как видим у меня в системе 2 Logical Volume (root и swap)
В данном выводе нас в первую очередь интересуют строки LV Path, в которых указан путь к устройству.
Теперь для изменеия размера LV мы воспользуемся командой lvextend:

[root@lvm askadmin]# lvextend -L +5GiB /dev/rl_lvm/root
  Size of logical volume rl_lvm/root changed from <17,00 GiB (4351 extents) to <22,00 GiB (5631 extents).
  Logical volume rl_lvm/root successfully resized.

Как видим сообщение гласит, что изменение размера прошло успешно.
Так же можно использовать команду со строчно l и указать расширяемый объем в блоках или процентах:

[root@lvm askadmin]# lvextend -l +30%FREE /dev/rl_lvm/root
  Size of logical volume rl_lvm/root changed from <22,00 GiB (5631 extents) to <25,00 GiB (6399 extents).
  Logical volume rl_lvm/root successfully resized.
Так как в моем случае, после приращения 5ГБ свободного места оставалось 10ГБ - команда прирастила еще 3ГБ расширив тем самым LV с 22ГБ до 25ГБ

Расширение файловой системы XFS

Если проверить доступное место в системе, то мы увидим, что несмотря на все проделанное root остался 16ГБ.

[root@lvm askadmin]# df -h
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
devtmpfs                  1,9G            0  1,9G            0% /dev
tmpfs                     1,9G            0  1,9G            0% /dev/shm
tmpfs                     1,9G         8,6M  1,9G            1% /run
tmpfs                     1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/mapper/rl_lvm-root    17G         1,8G   16G           11% /
/dev/sda1                1014M         252M  763M           25% /boot
tmpfs                     374M            0  374M            0% /run/user/1000

Это произошло потому, что файловая система все еще покрывает только 16ГБ пространства на диске. Нам необходимо «растянуть» файловую систему.
Для этого выполним следующую команду:

xfs_growfs /

Получим следующий вывод:

meta-data=/dev/mapper/rl_lvm-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 6552576

Теперь проверяем доступное место в системе:

[root@lvm askadmin]# df -h
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
devtmpfs                  1,9G            0  1,9G            0% /dev
tmpfs                     1,9G            0  1,9G            0% /dev/shm
tmpfs                     1,9G         8,6M  1,9G            1% /run
tmpfs                     1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/mapper/rl_lvm-root    25G         1,9G   24G            8% /
/dev/sda1                1014M         252M  763M           25% /boot
tmpfs                     374M            0  374M            0% /run/user/1000

Как видим корневой раздел увеличился до 24ГБ, что и требовалось.

Расширение ext4

Для расширения файловой системы используем команду:

resize2fs /dev/sdb1

Получим примерно следующий вывод:

resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/sdb1 is mounted on /srv/nav; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 19
The filesystem on /dev/sdb1 is now 39321344 (4k) blocks long.