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

Изменение размера диска виртуальной машины KVM

Достаточно часто возникает необходимость изменить размер диска виртуальной машины — ну не рассчитали при создании образа диска. Тут есть два способа:

  • создать новый образ диска, отформатировать его и подключить к виртуальной машине с помощью команд virsh attach-disk или qemu attach-disk
  • изменить размер диска непосредственно в образе виртуальной машины.

Второй способ более естественный и безболезненный в смысле производительности. При изменении размера диска виртуальной машины KVM она должна быть выключена.

Изменение производится одной командой

где /path/to/disk — путь до образа диска;

disk_size — числа, на который увеличивается или уменьшается (тогда — вместо +) размер диска;

G — единица измерения — гигабайт. Можно изменить размер диска на disk_size мегабайт — тогда M.

В результате работы этой команды в конце диска образа виртуальной машины KVM появляется disk_size гигабайт (или мегабайт) свободного, нараспределенного дискового пространства. Можно загрузить виртуальную машину и создать дополнительный раздел при помощи fdisk или parted, можно увеличить размер разделов при помощи parted.

В принципе все это можно сделать и на хосте, подключив диск при помощи NBD, с помощью тех-же fdisk или parted.

Таким образом можно изменять размер дисков в формате qcow2 и raw (можно еще и в qcow, но этот формат практически не используется).

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

требуется увеличить размер диска виртуальной машины, стоит centos диск lvm. Пробывал qemu-img resize размер образа увеличился. Как теперь увеличить раздел? df -h выводит: /dev/mapper/vg_bigeye3-lv_root 1.3G 1.2G 60M 96% / tmpfs 499M 0 499M 0% /dev/shm /dev/vda1 485M 32M 428M 7% /boot и ещё почему cfdisk при запуске показывает /dev/mapper/vg_bigeye3-lv_root как неразмечанную область?

не получается даже на 1Гб увеличить

lvextend -L+1g /dev/vg_bigeye3/lv_root Extending logical volume lv_root to 2.31 GiB Insufficient free space: 256 extents needed, but only 0 available

Сначала нужно расширить существующий physical volume или создать на пустом месте новый.

какой командой? если sudo cfdisk /dev/vg_bigeye3/lv_root то не получается

cfdisk /dev/vda (или как у тебя называется диск с pv, можно узнать при помощи команды pvdisplay). Может потребоваться запуск с livecd, но точно не помню, можешь попробовать и так. Затем pvresize /dev/vda2 (опять же какой именно диск — это из вывода pvdisplay узнаешь).

Да, как вариант можешь вообще загрузиться с gparted livecd и попробовать увеличить раздел, на котором pv.

ну, само собой надо pvresize, vgextend и тогда lvextend

спасибо за Ваши ответы, всё получилось!

Для тех кто столкнётся с подобной проблемой, привожу алгоритм её решения:

Увеличение размера раздела на виртуальной машине KVM 1) Останавливаем машину 2) Делаем бэкап 3) Смотрим размер образа qemu-img info centos_vm1.img 4) Увеличиваем его qemu-img resize centos_vm1.img +100G 5) Грузимся с livecd gparted и увеличиваем раздел на всё свободное место 6) Увеличиваем логический том lvextend -l +100%FREE /dev/vg_bigeye3/lv_root или lvextend -L+1G /dev/vg_bigeye3/lv_root 7) Увеличиваем размер файловой системы resize2fs /dev/mapper/vg_bigeye3-lv_root

Читайте также:  Устройство обмоток статора асинхронных машин переменного тока

1. 2. 3. . потом еще куда-то грузимся . . 7. жесть в общем.

Увеличить объем диска ext4 виртуальной машины Linux без потери данных на базе Hyper-V и KVM

В роли Hyper-V используется Windows 2012R2.

В роли KVM используется Ubuntu 14.04.1 и старше.

В роли Виртуальной машины используется Ubuntu 16.04.1.

1. Первым делом выключаем виртуальную машину и обязательно делаем копию образа, который будем увеличивать. На случай если, что то пойдет не так.

Сделать это можно обычным копированием, если места мало можно копируемый образ сжать.

a. В системе Linux это делается так

I. dd if=/img/образ-расширяемого-диска.qcow2 bs=8M conv=sync,noerror | gzip -c > /backup/img/образ-расширяемого-диска.qcow2-$(date «+%F»).gz

Данная команда выполняет по секторное копирование образа с текущей датой одновременно сжимая образ утилитой gzip

split -b 9000m /backup/img/образ-расширяемого-диска.qcow2-$(date «+%F»).gz /backup/img/образ-расширяемого-диска.qcow2-$(date «+%F»).gz.part

Split выполняет разбиение архива на несколько частей размером 9 GB (эту команду выполнять не обязательно. Она полезна, когда вам нужно перемести копию в другое место)

II. Или создать слепок диска

qemu-img snapshot -c

b. В системе Windows все достаточно просто

Открываем Диспетчер Hyper-V

I. Выбираем нужную виртуальную машину, нажимаем правой кнопкой мыши и выбираем пункт Контрольная точка (делается слепок виртуальной машины целиком)

II. Так же можно скопировать образ расширяемого диска в проводнике.

2. После того как сделали копию, приступаем к увеличению

a. В системе Linux используем команду qemu-img

qemu-img resize /img/образ-расширяемого-диска.qcow2 +20G (т.е. увеличить объем на 20Gb)

b. В системе Windows в меню справа выбираем изменить диск

I. Выбираем нужный нам образ.

II. В следующем меню выбираем пункт Развернуть.

III. На следующем этапе указываем полный размер образа (в Linux указывается на сколько увеличить, а в Windows указывается полный объем диска).

IV. Нажимаем Готово.

3. Во избежания каких либо проблем, лучше запустить систему с помощью LiveCD (в некоторых случаях, когда система загружается, запускаются процессы использующие диск, если диск не смонтирован, в том месте где он был ранее смонтирован создадутся новые файлы и вам придется потом их объединять)

После того как загрузится система, выполняем команду

parted /dev/sdb (sdb диск который мы увеличиваем)

в консоле parted выводим командой print на экран наши разделы диска

Размер диска увеличился на 10GB (Диск /dev/sdb: 75.2GB)

Раздел ранее размеченного диска занимает 64.0GB primary ext4

resizepart 1 (1 — раздел который мы увеличиваем)

На вопрос где конец разделе указываем 75.2GB и нажимаем enter

Еще раз вводим команду print, чтобы убедится, что наш раздел увеличился


Если все в порядке нажимаем q и enter для выхода из parted

4. Запускаем утилиту e2fsck -f /dev/sdb1

5. Дальше нужно выполнить команду resize2fs /dev/sdb1 (без этого пункта система будет выдавать старую информацию о разделе)

6. Желательно после разметки проверить диск на ошибки

fsck.ext4 /dev/sdb1

Читайте также:  Жидкий азот для машин


7. Завершаем работу систему LiveCD

8. Подключаем образ к виртуальной машине и запускаем.

Как увеличить дисковое пространство гостя KVM?

Я установил гостевую систему Ubuntu на хосте CentOS KVM с изначально 6 ГБ дискового пространства. Как мне увеличить дисковое пространство гостя Ubuntu из командной строки?

РЕДАКТИРОВАТЬ # 1: я использую файл образа диска (qemu).

  1. остановить ВМ
  2. запустить, qemu-img resize vmdisk.img +10G чтобы увеличить размер изображения на 10 Гб
  3. запустите виртуальную машину, измените размер разделов и структуру LVM внутри нее, как обычно

Онлайн-метод (с использованием qemu, libvirt и virtio-block)

Что бы там ни было, приведенные ниже команды будут выполняться, даже если целевой виртуальный диск смонтирован. Это может быть полезно в средах, где диск не может быть размонтирован (например, корневой раздел), виртуальная машина должна оставаться включенной, и владелец системы готов принять на себя риск повреждения данных . Чтобы устранить этот риск, вам необходимо войти в виртуальную машину и сначала размонтировать целевой диск, что не всегда возможно.

Выполните следующее из гипервизора KVM.

Увеличьте размер самого файла образа диска (укажите сумму для увеличения):

Получите имя устройства virtio через оболочку libvirt ( drive-virtio-disk0 в этом примере):

Подайте сигнал драйверу virtio для определения нового размера (укажите общую новую емкость):

Затем войдите в ВМ. Запуск dmesg должен сообщить, что диск virtio обнаружил изменение емкости. На этом этапе, измените размер ваших разделов и структуры LVM по мере необходимости.

Эти вопросы о сбое сервера похожи, но конкретнее, изменение размера диска KVM онлайн? & Centos Xen изменяет размер раздела DomU и группы томов . Первый задает вопрос о том, как увеличить гостевой KVM, пока он находится в сети, а второй — для XEN с использованием LVM. Я спрашиваю, как этого добиться, пока KVM отключен.

ПРИМЕЧАНИЕ. Эта ссылка была полезна для МЕТОДА № 1 и показывает, как добиться увеличения дискового пространства KVM (на основе ext3), HOWTO: Изменение размера образа виртуальной машины KVM .

С гостями KVM следует помнить, что используемые ими разделы могут влиять на то, какой метод вы можете использовать для увеличения дискового пространства.

МЕТОД # 1: Разделы основаны на ext2 / ext3 / ext4

Орехами этого метода являются следующие:

Теперь, когда файл mykvm.img увеличен, загрузите gparted и расширьте существующий раздел на только что добавленное дисковое пространство. Этот последний шаг в основном расширяет раздел ОС, чтобы он мог использовать дополнительное пространство.

МЕТОД № 2: Разделы на основе LVM

Вот шаги, которые я примерно выполнил, чтобы изменить размер гостевой системы KVM, которая использовала LVM для внутреннего использования.

  1. Отключить ВМ
  2. добавить больше места в «файл изображения» гостя (что-то вроде: cat old.img 10G_addon.raw >> new.img
  3. запустить виртуальную машину (используя только что созданный new.img)

запустить fdisk внутри виртуальной машины и удалить и заново создать раздел LVM

Изменить размер физического тома LVM

Изменить размер логического тома LVM

Расти файловую систему

Выше приведен мой пример, но я следовал инструкциям на этом сайте

Изменение размера и расширение внутренних разделов за один шаг

У меня был хост Ubuntu с образом гостевого файла qcow2, и я хотел изменить размер диска и расширить соответствующие разделы за один шаг. Требуется настроить служебные программы гостевой файловой системы libvirt, но в любом случае их полезно иметь.

Ключевая команда здесь: virt-resize

  • это утилита libvirt
  • он может расширить гостевой диск и расширить разделы внутри за один шаг
  • он копирует диск, он не расширяет его на месте
    • это хорошо, потому что у вас есть нетронутый оригинал в качестве резервной копии

Теперь сделайте следующее:

1) отключение гостя:

2) Проверьте текущий размер и просмотрите имя раздела, который вы хотите расширить, используя утилиту libvirt:

sudo virt-filesystems —long —parts —blkdevs -h -a name-of-guest-disk-file

3) Создайте новый (40G) выходной диск:

4) Скопируйте старый в новый и разверните соответствующий раздел (при условии, что ваш раздел на диске из шага 2 был / dev / sda1)

5) Переименуйте файл indisk в резервную копию, переименуйте outdisk в indisk (или измените гостевой XML)

6) Перезагрузите гость и тщательно протестируйте новый файл на диске перед удалением исходного файла.

Если вы используете LVM в виртуальной машине, самый простой способ сделать это — добавить новый виртуальный диск в виртуальную машину и расширить группу томов и логические тома на нее.

Чтобы проверить, используете ли вы запуск LVM sudo pvs; sudo vgs; sudo lvs , вы получите что-то вроде этого:

если ОС виртуальной машины использует LVM. В приведенном выше примере виртуальная машина имеет 30-гигабайтный виртуальный диск, настроенный с использованием LVM с одной группой томов vgWWW, содержащей два логических тома: один для подкачки и один для всего остального.

Если LV используется в VM:

  1. Выключите ВМ
  2. На хосте создайте новый файл виртуального диска и добавьте его в виртуальную машину
  3. Перезагрузите ВМ и войдите
  4. Отметьте новый диск как физический том для LVM с sudo pvcreate /dev/vdb
  5. Расширьте группу томов, чтобы включить этот новый блок диска с sudo vgextend vgWWW /dev/vdb
  6. Расширьте логический том, чтобы он занимал новое пространство sudo lvextend —extents +100%FREE /dev/vgWWW/root (или что-то вроде того, sudo lvextend —size +8G /dev/vgWWW/root если вы не хотите увеличивать его полностью, этот пример добавит 8Gb к тому)
  7. Изменить размер файловой системы с resize2fs /dev/vgWWW/root

Примечание: приведенное выше предполагает, что имена vg / lv совпадают с моими примерами, что маловероятно, измените их соответствующим образом, также, если виртуальная машина уже имела виртуальный диск, называемый vdb новым, будет что-то другое ( vdc и т. Д.)

Примечание: resize2fs будет работать только на файловой системе ext2, ext3 и ext4. Если вы используете что-то другое, это будет ошибка и ничего не делать.

Примечание: так как вы изменяете размер активной файловой системы, resize2fs она не будет предлагать вам запустить fsck сначала, как это было бы для несмонтированной файловой системы, она просто будет идти вперед. Возможно, вы захотите запустить файловую систему только для чтения, чтобы убедиться в отсутствии проблем, прежде чем продолжить.

Читайте также:  Каталог по ремонту автомобилей ваз 2115
Оцените статью