Образы дисков виртуальных машин 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 стоит знак вопроса.