Зайдя в свойства виртуальной машины:
Откроется окно, где необходимо ввести количество гигабайт, на которые желаем увеличить диск.
После увеличения размера диска необходимо, проверить, что система увидела доступное место. Для этого выполним команду:
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
Для изменения размера потребуется выполнить следующие шаги:
fdisk /dev/sda
Мы войдем в меню утилиты fdisk для работы с дисками. Вывод будет примерно таким
Добро пожаловать в fdisk (util-linux 2.32.1). Изменения останутся только в памяти до тех пор, пока вы не решите записать их. Будьте внимательны, используя команду write. Команда (m для справки):
Команда (m для справки): p Диск /dev/sda: 35 GiB, 37580963840 байт, 73400320 секторов Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: dos Идентификатор диска: 0x512fa909 Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM
В моем случае разделов 2 и нас интересует только тот, который помечен как Linux LVM.
Команда (m для справки): d Номер раздела (1,2, default 2): 2 Раздел 2 был удален. Команда (m для справки):
Команда (m для справки): n Тип раздела p основной (1 первичный, 0 расширеный, 3 свободно) e расширенный (контейнер для логических разделов)
После чего система придложит выбрать тип раздела, жмем p:
Выберите (по умолчанию - p):p
Далее выбираем номер раздела (можно просто нажать Enter система присвоит номер раздела по умолчанию:
Номер раздела (2-4, default 2):
На вопросах о первом и последнем секторах тоже жмем Enter:
Первый сектор (2099200-73400319, default 2099200): Последний сектор + число секторов или + размер{K,M,G,T,P} (2099200-73400319, default 73400
Система сообщит, что создан новый раздел и что он подписан, как LVM_member
Создан новый раздел 2 с типом 'Linux' и размером 34 GiB. Partition #2 contains a LVM2_member signature. Do you want to remove the signature? [Y] Да/[N] Нет: n
Жмем N и двигаемся дальше.
Команда (m для справки): t Номер раздела (1,2, default 2): 2 Шестнадцатеричный код (введите L для получения списка кодов): 8e Тип раздела 'Linux' изменен на 'Linux LVM'.
Появится сообщение, что Тип раздел успешно изменен.
Команда (m для справки): w Таблица разделов была изменена. Синхронизируются диски.
Команда (m для справки): q [root@lvm askadmin]#
На этом этап по увеличению тома завершен и переходим к расщирению VG (Volume Group).
Выполним команду:
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
Выполним команду 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.
Если проверить доступное место в системе, то мы увидим, что несмотря на все проделанное 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ГБ, что и требовалось.
Для расширения файловой системы используем команду:
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.