Рубрики
KVM Виртуализация \ контейнеры \ облака

KVM изменить размер диска / blockresize / domblklist / guests linux / mbr /gpt

Внимание !!!

Всегда делаем backup!!!

Изменение диска offline / qemu-img

!!! не забываем делать backup

qemu-img resize vmdisk.qcow2 +10G - добавим 10Гб диску vmdisk.img

Изменение диска online / blockresize

virsh blockresize   
   [--domain] <строка>  имя домена, ID или UUID
   [--path] <строка>  Полный путь к блочному устройству
   [--size] <число>  Новый размер блочного устройства, кратный целому числу (по умолчанию в КиБ)

virsh domblklist name_VM - узнаем какие диски есть у ВМ
virsh blockresize name_VM /kvm/name_VM_disk.qcow2 100G - для ВМ (name_VM), изменим размер диска равный 100Гб

Необходимые действия для гостя, при изменении диска, MBR диск / один раздел / fdisk:

!!! Не забываем делать backup 
!!! Внимание пример для одного диска с одним разделом
!!! fdisk -l - посмотреть доступные

 fdsik /dev/sda - редактируем таблицу разделов
   : p - показываем таблицу разделов
   Устр-во    Загрузочный Start Конец Секторы Size Id Тип
   /dev/sda1  *            2048 14678015 14675968   7G 83 Linux
   : d - удаляем таблицу разделов
   : n - создаем таблицу разделов
   Do you want to remove the signature? [Y]es/[N]o: N - не удаляем сигнатуры
   : a - ставим ставим загрузочный бит
   : w - применяем изменения
!!! после выхода из (fdisk) будет сказано что изменена таблица разделов и необходимо выполнить partprobe
(name_VM)# partprobe - выполняем просим систему перечитать таблицу разделов
(name_VM)# resize2fs /dev/sda1 - выполняем изменения FS

Необходимые действия для гостя, при изменении диска, MBR диск / несколько разделов / parted:

!!! Не забываем делать backup 
!!! Внимание пример для одного диска и нескольких разделов
!!! fdisk -l - посмотреть доступные

Пример (parted)
(name_VM)# parted /dev/vda - открываем нужный диск
           (parted) print free - покажем доступные  разделы (диск /dev/vda)
               Number Start End Size Type File system Flags
               1 32.3kB 4295MB 4295MB primary ext4 boot
               2 4295MB 8590MB 4295MB primary linux-swap(v1)
               3 8590MB 107GB 98GB primary ext4
                 107GB 215GB 107GB Free Space
           (parted) resizepart 3 - изменяем размер третьего раздела
               End [107GB]? 215GB
           (parted) quit - выходим из parted
(name_VM)#partprobe - выполняем просим систему перечитать таблицу разделов
(name_VM)#resize2fs /dev/vda3 -  выполняем изменения FS

Необходимые действия для гостя, при изменении диска, GBT диск / несколько разделов / parted:

!!! GPT Рассматривается схема с одним разделом (/dev/vdb1) на весь диск
(name_VM)#partprobe
(name_VM)#gdisk /dev/vdb
  переходим в расширенный режим x
  смещаем запись в конец диска e
  выходим из расширенного режима m
  Command (? for help): d
  Using 1
  Command (? for help): n
  Partition number (1-128, default 1): [Enter]
  First sector (34-2147483614, default = 2048) or {+-}size{KMGTP}: [Enter]
  Last sector (2048-2147483614, default = 2147483614) or {+-}size{KMGTP}: [Enter]
  Current type is 'Linux filesystem'
  Hex code or GUID (L to show codes, Enter = 8300): [Enter]
  Changed type of partition to 'Linux filesystem'
  выходим с сохранением w
(name_VM)#partprobe
(name_VM)#resize2fs /dev/vdb1
или
btrfs filesystem resize max /

Смонтировать образ диска qcow2 в гипервизоре:

modprobe nbd max_part=8
qemu-nbd --connect=/dev/nbd0 .qcow2
fdisk /dev/nbd0 -l
mount -o ro /dev/nbd0p1 /mnt/ext0
umount /mnt/ext0
qemu-nbd --disconnect /dev/nbd0
rmmod nbd