База знаний
NOKB SUPPOR > Help Desk > База знаний

Поиск справки:


qemu-img — манипуляции с образами дисков виртуальных машин (создание, конвертация)

Решение

В этой статье описана краткая информация как пользоваться утилитой qemu-img для создания дисков и как сделать конвертацию из одного формата в другой.
qemu-img работает со следующими форматами: raw, qcow2, qcow, cow, vmdk, cloop, vpc (vhd)

Использование:

qemu-img command [command options]

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

  • create — создание нового образа диска
  • check — проверка образа диска на ошибки
  • convert — конвертация существующего образа диска в другой формат
  • info — получение информации о существующем образе диска
  • snapshot — управляет снимками состояний (snapshot) существующих образов дисков
  • commit — записывает произведенные изменения на существующий образ диска
  • rebase — создает новый базовый образ на основании существующего

список не весь, все параметры см. man qemu-img

Как создать новый образ диска в формате qcow2

создадим образ диска размером 100 Gb в формате qcow2

root@v4:/virt# qemu-img create -f qcow2 asterisk_hd.qcow2 100G
Formatting 'asterisk_hd.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 lazy_refcounts=off 

Как посмотреть информацию о образе диска

root@v4:/virt# qemu-img info asterisk_hd.qcow2 
image: asterisk_hd.qcow2
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

Как конвертировать образ диска из формата raw в qcow2

root@v4:/virt# qemu-img convert -f raw -O qcow2 disk_hd.img disk_hd.qcow2

Как смонтировать образ диска

Важное замечание! ни в коем случае не монтируете диск запущенной виртуалке, данные будут потеряны.
Иногда может понадобится смонтировать образ диска в системе не загружая виртуальную машину.
Делается это так, для формата raw:

modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 название_образа.img
partprobe /dev/nbd0 (может не выполниться, но можно продолжить без этого)
перед монтированием можно посмотреть разделы на диске sudo fdisk -l /dev/nbd0
mount /dev/nbd0p1 /mnt/qemu

С диском в формате qcow2 при монтировании просит указать тип fs

mount [-t ext4] /dev/nbd0p1 /mnt/qemu (на тип файловой может ругнуться, можно этот параметр опустить)

По завершению работы с диском отключаем

sudo umount /mnt/qemu
sudo qemu-nbd -d /dev/nbd0

Создание snapshot

Перед созданием snapshot необходимо выключить виртуальную машину.

Один из способов создания снапшотов qemu-img — это перенаправление записи в новый образ, а старый образ диска используется для чтения. Для создания ного snapshot образа из существующего original.qcow2 используйте флаг -b создание резервной копии (backing_file).

qemu-img create -f qcow2 -b original.qcow2 snapshot.qcow2

следующим шагом редактируем xml файл через virsh edit нужной виртуальной машины и указываем новый (созданный) образ диска snapshot.qcow2

virsh edit VMname

было:

<disk type='file' device='disk'><driver name='qemu' type='qcow2'/>
<source file='/cxd/virt/original.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

стало:

<disk type='file' device='disk'><driver name='qemu' type='qcow2'/>
<source file='/cxd/virt/snapshot.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

После этого можно запускать виртуальную машину.
В результате данных манипуляций у нас есть теперь 2 образа один для чтения и меняться не будет, а второй для записи, т.е. все манипуляции и изменения данных будут отражены на втором образе snapshot.qcow2.

Если возникла необходимость перенести данные с snapshot на основной диск, сделать это можно так:

qemu-img commit filename

в качестве filename нужно указать наш snapshot.qcow2.
Еще раз повторюсь, все манипуляции с образами дисков необходимо делать при выключенной ВМ, иначе можно потерять все данные.
Информация с сайта http://wiki.qemu-project.org/Documentation/CreateSnapshot

 

I think it's pretty common knowledge it's difficult to fix qcow2 corruption.  If you suspect you have a bad qcow2 drive image, check:
 
# qemu-img check bad_file.qcow2
 
If there are issues, make sure the VM is down because the last thing you want is to continue to write to the image or do repairs while it's being used and:
 
# qemu-img check -r bad_file.qcow2
 
The repair option may not be available on some older version of qemu and it most likely won't fix the corruption all the way, so here is what I do:
 
# modprobe nbd
# qemu-nbd --connect=/dev/nbd0 bad_file.qcow2
# ddrescue /dev/nbd0 new_file.raw
# qemu-nbd --disconnect /dev/nbd0
# qemu-img convert -O qcow2 new_file.raw new_file.qcow2
 
Была ли эта статья полезной? да / нет
Связанные статьи Уменшение диска PROXMOX через qemu-img
Уменьшение размер диска qcow2 (Proxmox) для LVM
Настройка программного RAID на Линукс
Junos. Копирование. Туда и Обратно.
Метаданные статьи
Идентификатор статьи: 27
Категория: Proxmox
Рейтинг (Голоса): Статья еще не получила оценку (0)

 
« Назад

 
Powered by Help Desk Software HESK, in partnership with SysAid Technologies