Образы дисков виртуальных машин QEMU-KVM/XEN/VMDK создание и конвертация

Для работы с образами дисков в QEMU-KVM используется команда:

qemu-img.

Формат команды qemu-img:

qemu-img subcommand [options]

Доступные варианты “subcommand”:

create - создание нового образа диска
check  - проверка существующего образа диска на наличие ошибок
convert - конвертация образа в другой формат
Подробнее про доступные форматы ниже.
info  - информация об образе диска
snapshot - управление снимками дисков (snapshots)

ВАЖНО: данная опция не работает с образами диска формата RAW

commit - записать изменения образа
rebase - создание образа диска на основании параметров эталонного диска
Под эталонным мы понимаем любой существующий образ, который задается в качестве эталона.

Создание нового образа диска – qemu-img create

Пример создания нового диска для гостевой виртуальной машины внутри файловой системы хоста.

 

Формат команды:

qemu-img create -f ft fm size

Пример команды:

qemu-img create -f raw /RAID1/vm1.img 120G

где:

ft – формат образа диска.
В Ubuntu поддерживаются следующие форматы виртуальных дисков:
vmdk,
vdi,
raw,
host_cdrom,
host_floppy,
host_device file,
qcow2,
qcow,
parallels,
cow,
cloop
(есть еще другие, но я лично их не пробовал создавать).
В реальной жизни обычно необходимы для работы только несколько форматов:

  • raw  Формат «сырой диск».  Представляет из себя просто устройство без файловой системы и данных.  В общем случае данный форма предназначен для копий реальных дисков.  Формат не содержит служебной информации.

    Преимущества:
      максимальная производительность дисковой подсистемы. Нет дополнительных действий в моменты чтения/записи по причине отсутствия служебной информации.Формат универсален, работает без проблем и дополнительных настроек  под управлением гипервизоров Xen и VMware.За счет выделения места под весь размер образа не подвержен дефрагментации на диске (актуально только для некоторых файловых систем на хосте).

      Недостатки:  не поддерживаются снапшоты.
    Относительный недостаток: при создании файла  под него выделяется сразу все необходимое место на диске. Соответственно резервное копирование таких дисков сложнее, дольше и требует намного больше места.

  • qcow2  Формат  эмулятора QEMU.
    Поддерживает сжатие, создание снапшотов,  шифрование, как говорится из коробки.Преимущества: образ диска растет постепенно, по мере заполнения. Т.е. занимает столько места, сколько реально занимают данные внутри, вне зависимости от размера заданного при создании.Недостатки: производительность дисков в формате QCOW2 ниже за счет обработки дополнительных служебных инструкций при чтении и записи.

    На некоторых файловых системах диски в формате QCOW2 подвержены фрагментации за счет постепенного выделения объема места на родительской файловой системе.

  • vdi  Формат образа для VirtualBox (уже давно не использовал, не рассматриваю).
  • vmdk Формат образа для VMware.
    Имеет смысл делать дисковый образ в формате vmdk только, если вы планируете сменить систему виртуализации с KVM на VMWARE в ближайшее время, в противном случае не рекомендую использовать данный формат в KVM. Дисковые операции выполняются намного медленнее, по сравнению с родной системой витуализации.

fname – Имя и путь к файлу образа диска.

ize – размер создаваемого диска.
Формат num<единицица измерения>.
Поддерживаются следующие сокращения единиц измерения: K (Kilobyte), M (Megabyte), G (Gigabyte), T (Terabyte).

sudo qemu-img create -f raw /RAID1/backup/backup.img 120G
Formatting '/RAID1/backup/backup.img', fmt=raw size=128849018880

Конвертация образа диска

qemu-img convert

Конвертации одного формата в другой при использовании образов дисков делается командой qemu-img convert:

qemu-img convert -c -f ft -O out_ft -o options fname out_fname

-c – компрессия (сжатие) диска.
ВАЖНО: Компрессию поддерживают только qcow и qcow2 форматы.

-f ft – формат исходного диска. Опция не обязательная, конвертер сам умеет считывать заголовок формата образа. Задается только, если при определении формата возникла ошибка.

-O out_ft – формат целевого диска (какой формат мы хотим получить в результате выполнения команды)

-o options – Различные опции, которые допустимы для конкретной конвертации.

Узнать что конкретно можно применить можно при помощи команды:

qemu-img convert -O qcow2 backup.img backup1.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, falloc, full)
lazy_refcounts Postpone refcount updates
refcount_bits Width of a reference count entry in bits
nocow Turn off copy-on-write (valid only on btrfs)

Как вы заметили после параметра -o стоит знак вопроса.