Блог-шпаргалка

Картинка

Увеличение диска виртуальной машины

Категория -> linux
Обновлено: 2025-04-07

Планируя будущую виртуальную машину, на старте не всегда правильно получается распределить ресурсы. Если ЦП и ОЗУ можно без труда "подкрутить", то с выделенным местом у некоторых, как ранее и у меня, бывают проблемы.

В инструкции ниже, вкратце, опишу шаги, которые приведут к увеличению виртуального жёсткого диска гипервизора.

Погнали…

Как-то в показателях, процентного содержания занятого места метрик графаны, цвет одного из хостов, а именно самой графаны, под капотом которой прометей, сменил зелёный на оранжевый, что привлекло моё внимание.

Проваливаемся на хост и вроде как бы доверяя графане, всё равно, командой df -Th посмотрим что там у нас есть

Filesystem        Type      Size  Used Avail Use% Mounted on
udev              devtmpfs  456M     0  456M   0% /dev
tmpfs             tmpfs      97M  640K   96M   1% /run
/dev/mapper/vg-lv ext4      5.3G  3.8G  1.2G  76% /
tmpfs             tmpfs     481M     0  481M   0% /dev/shm
tmpfs             tmpfs     5.0M     0  5.0M   0% /run/lock
/dev/vda1         ext2      341M  108M  215M  34% /boot
tmpfs             tmpfs      97M     0   97M   0% /run/user/1000

Видим, что рут у нас заполнен на 76%. Давайте увеличим его на 512mb.

Останавливаем ВМ.

В моём случае, группа томов называется vgvirt, а место под диск ВМ - monitoring. Поэтому, на гипервизоре командуем lvextend -L+512M /dev/vgvirt/monitoring

Extending 2 mirror images.
  Size of logical volume vgvirt/monitoring changed from 5.75 GiB (1472 extents) to 6.25 GiB (1600 extents).
  Logical volume vgvirt/monitoring successfully resized.

Из выхлопа видим, что наш логический вольюм, успешно ресайзнут с размера 5.75 гигов на 6.25. Почему расширены 2 зеркальных образа? Потому что у меня LVM-RAID и изменения применились на обоих физических дисках. Отлично! Но это ещё не всё. Стартуем ВМ, проваливаемся в её консоль и командой lsblk смотрим что там.

NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0        11:0    1 1024M  0 rom  
vda       254:0    0  6.3G  0 disk 
├─vda1    254:1    0  365M  0 part /boot
└─vda2    254:2    0  5.4G  0 part 
  └─vg-lv 253:0    0  5.4G  0 lvm  /

Видим, что весь vda = 6.3Gb, но если прибавить vda1 к vda2 у нас не выходит размер vda.

Для получения задуманного, воспользуемся командой fdisk /dev/vda и беспощадно грохнем раздел dev/vda2. Затем создадём новый раздел и в какой-то момент появится сообщение, выделенное красным, с содержанием типа "Раздел имеет сигнатуру LVM. Желаете ли Вы удалить её?"

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
First sector (749568-13107199, default 749568): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (749568-13107199, default 13107199): 

Created a new partition 2 of type Linux and of size 5.9 GiB.

Partition #2 contains a LVM2_member signature.

Do you want to remove the signature? [Y]es/[N]o: N

Отвечаем НЕТ и сохраняем изменения.

Я, в первый раз, не включая голову, так наебнул всё к хуям, ответив ДА...=)

Далее смотрим командой pvdisplay ёмкость диска

--- Physical volume ---
  PV Name               /dev/vda2
  VG Name               vg
  PV Size               5.39 GiB / not usable 0   
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1380
  Free PE               0
  Allocated PE          1380
  PV UUID               BFyW3T-IfIN-2XTh-VUZM-SHv3-37VR-UFj3US

5.39Gb. Надо его ресайзнуть. Вводим pvresize /dev/vda2

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

Берём переводчик. Переводим строку из выхлопа и радуемся! pvdisplay теперь нам показывает, что наш физический (как думает ВМ) диск стал шире. Командой vgdisplay, в строке Free PE, можно увидеть как раз выделенный нами ранее размер, который сейчас является свободным местом.

--- Volume group ---
  VG Name               vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5.89 GiB
  PE Size               4.00 MiB
  Total PE              1508
  Alloc PE / Size       1380 / 5.39 GiB
  Free  PE / Size       128 / 512.00 MiB
  VG UUID               YApnic-XkRm-ZgRM-tBFE-JTmd-ihLT-MHGICD

За счёт него мы сейчас увеличим диск в ВМ

lvextend -l+100%FREE /dev/vg/lv

Size of logical volume vg/lv changed from 5.39 GiB (1380 extents) to 5.89 GiB (1508 extents).
  Logical volume vg/lv successfully resized.

И расширим файловую систему. resize2fs /dev/vg/lv

resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/vg/lv is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg/lv is now 1544192 (4k) blocks long.

Тарам-тарам-пам