Для манипуляции с образами дисков виртуальных машин в QEMU-KVM используется команда qemu-img, которая использует подкомманды для осуществления определенных действий. В общем случае формат команды qemu-img:
qemu-img subcommand [options]
где в качестве «subcommand» могут быть:
create
- Создание нового образа диска.
check
- Проверка существующего образа диска на ошибки.
convert
- Конвертация существующего образа диска в другой формат.
info
- Выводит информацию о существующем образе диска.
snapshot
- Управляет снимками состояний (snapshots) существующих образов дисков.
commit
- Записывает произведенные изменения на существующий образ диска.
rebase
- Создает новый базовый образ на основании существующего.
Создание нового образа диска — qemu-img create
qemu-img create создает новый образ диска в базовой операционной системе для гостевой виртуальной машины. Формат команды:
qemu-img create -f fmt -o options size fname
где:
fmt — формат образа диска. В kvm в Ubuntu можно создать образы дисков следующих форматов: vvfat vpc vmdk vhdx vdi sheepdog sheepdog sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug.
Из всего этого разнообразия реально используется только 4 формата:
- raw Файл содержащий как бы точную копию физического диска. Переводится как «сырой». Данные пишутся как есть без всякой обработки и без дополнительной служебной информации. Основным преимуществом данного формата являются максимальная производительность дисковой подсистемы среди других образов за счет отсутствия служебной информации и дополнительных действий в моменты чтения/записи. Универсальность формата позволяет использовать RAW-диски под управлением других гипервизоров(Xen, VMware).
К минусам можно отнести невозможность создавать снапшоты а так же необходимость выделения для файла-образа всего объема дискового пространства указанного в параметре size, что в прочем в некоторых случаях избавляет от фрагментации файла-образа за счет единовременного выделения всего объема. - qcow2 «Родной» формат эмулятора QEMU с поддержкой сжатия, снапшотов и шифрования. Кроме того qcow2 образ занимает столько места, сколько реально занимают данные, вне зависимости от размера создаваемого при соз8589934592дании. Наиболее часто используемый и рекомендуемый формат.
Производительность дисков в формате QCOW2 несколько уступает дискам в формате RAW. Диски в формате QCOW2 в большей степени подвержены фрагментации за счет постепенного а не едино разового выделения всего объема на физическом диске. - vdi Образ виртуальных машин, поддерживаемый VirtualBox.
- vmdk Образ виртульных машин VMware.
size — размер создаваемого диска. Число и единица измерения — K
(kilobyte), M
(megabyte), G
(gigabyte), или T
(terabyte).
fname — имя файла образа диска.
$qemu-img create -f qcow2 -o size=8G /images/ca.img Formatting '/images/ca.img', fmt=qcow2 size=4294967296
$ qemu-img info /images/ca.img image: ca.img file format: qcow2 virtual size: 8.0G (8589934592 bytes) disk size: 2.7G cluster_size: 65536 Format specific information: compat: 0.10
Конвертация образа диска qemu-img convert
Для конвертации одного формата образа в другой используется опция convert:
qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname
где:
-c — компрессия (сжатие) целевого диска. Компрессию поддерживают только qcow
и qcow2
форматы.
-f fmt — формат исходного диска, в большинстве случаев хорошо определяется автоматически.
-O out_fmt — формат целевого диска
-o options — куча опций. Чтобы узнать, какие опции допустимы для данной конвертации можно ввести:
$ qemu-img convert -O qcow2 ca.img ca1.img -o ? Supported options: size Virtual disk size compat Compatibility level (0.10 or 1.1) backing_file File name of a base image backing_fmt Image format of the base image encryption Encrypt the image cluster_size qcow2 cluster size preallocation Preallocation mode (allowed values: off, metadata) lazy_refcounts Postpone refcount updates