Home » Виртуализация » KVM » Конвертация дисков qcow2 -> lvm в KVM (Proxmox)

Конвертация дисков qcow2 -> lvm в KVM (Proxmox)

Занимался на днях переносом виртуальных машин с обычного kvm гипервизора на proxmox. На исходном гипервизоре диски виртуальных машин были в формате qcow2. Я решил заодно сконвертировать диски из qcow2 в lvm и написать заметку об этом, чтобы не забыть.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Для тех, кто не знает, в чем разница между разными форматами дисков в гипервизоре KVM, предлагаю почитать об этом в моей статье на тему бэкапа виртуальных машин kvm. В общем случае, сконвертировать диски qcow2 в lvm можно следующим образом. Сначала преобразуем их в raw формат с помощью qemu-img.

# qemu-img convert /mnt/data/images/102/vm-102-disk-0.qcow2 -O raw /mnt/data/images/102/vm-102-disk-0.raw

Далее raw образ переносим на новый сервер. На нем же к виртуальной машине подключаем новый диск из lvm хранилища такого же размера, как raw образ. Далее в консоли proxmox выполняем конвертацию в lvm с помощью обычного dd.

# dd if=/mnt/data/images/102/vm-102-disk-0.raw of=/dev/pve/vm-102-disk-0

Все то же самое можно сделать одной командой на новом сервере, перенеся туда диск в формате qcow2.

# qemu-img convert -p -n -f qcow2 -O raw /mnt/data/images/102/vm-102-disk-0.qcow2 /dev/pve/vm-102-disk-0

Последняя команда qemu-img будет работать медленнее, чем dd из предыдущего примера. Каким способом конвертировать - решать вам. Не забудьте изменить путь к lvm разделу. В моем случае он /dev/pve/vm-102-disk-0, у вас имя группы томов может быть другим, не pve.

Я описал общий случай для любого гипервизора KVM. Но конкретно в proxmox это можно сделать проще. Если вам нужно конвертировать qcow2 в lvm на этом же хосте, то достаточно просто через web интерфейс выбрать Move disk и указать в качестве storage хранилище с LVM. Proxmox сам конвертирует диск с помощью того же qemu-img.

Конвертация диска qcow2 в lvm

Если вы выполняете, как и я, перенос виртуальной машины с одного сервера на другой, то действуйте так:

  1. Переносим qcow2 диск со старого гипервизора на новый.
  2. На новом создаем виртуальную машину, подключаем к ней диск любого размера на обычном хранилище в виде директории.
  3. Запоминаем имя этого диска и удаляем его. Вместо него переносим диск со старого гипервизора и указываем ему такое же имя.
  4. Запускаем виртуалку на новом сервере, убеждаемся, что она работает, выключаем.
  5. Через web интерфейс proxmox переносим диск на storage с lvm. Proxmox сам выполнит конвертацию.

Я по такой схеме переносил как linux машины, так и windows. Проблем не было. Единственное, надо не забыть зайти через консоль в windows машину и проверить сетевые настройки. Нужно будет заново настроить сеть, иначе по rdp не подключиться. После переноса сетевой адаптер поменяется.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

32 комментария

  1. Константин

    Как сделать обратную операцию? Конвертировать том zfs в файл qcow2?

  2. Бублик

    Можно вопрос?
    А НАХРЕНА?

  3. Здравствуйте!
    Создал образ работающего сервера. Подскажите кто знает как просто (например в vmware просто) залить образ на Proxmox 6 для развертки виртуалки на нем?

    • Проще всего через sftp залить, так как ssh там по умолчанию работает. Вам нужно создать новую виртуальную машину, указать для нее диск. Затем этот диск заменить своим образом.

      • в том то и дело, что аж 2 виртуалки создал, а через WinSCP все облазил и найти не могу где они

        • Все зависит от того, какое хранилище под диски используется. В дефолте, после установки, образы дисков кладутся вот сюда - /var/lib/vz/images и дальше номер виртуалки.

          • там пусто, у меня на контроллере VirtIO SCSI на Хранилище 'local-lvm' на узле 'pve'

            • У вас хранилище в lvm, а не в виде файла. Значит вам надо сделать виртуальную машину, создать диск такого же размера, как у образа сервера. Затем с помощью dd залить данные из образа в lvm раздел, созданный для виртуалки. Примерно так это выглядит:

              dd if=disk0.raw of=/dev/pve/vm-100-disk-0 bs=1M

              disk0.raw - образ старой системы
              /dev/pve/vm-100-disk-0 - lvm диск новой виртуалки

              • Аноним

                Спасибо за ответ. Но не понятно куда предварительно залить disk0.raw - образ старой системы? Заливал в tmp система ругнулась о недостаточности места? Быть может мне лучше всего создать каталог в Хранилище для таких образов? Как правильно сделать? Документации нет.(((

                • По месту надо разбираться, как лучше подключить. Можно через флешку или внешний диск. Можно на proxmox подмонтировать сетевой диск и залить с него. Вариантов много.

  4. Аноним

    Все получилось

  5. Николай

    Здравствуйте! Подскажите, пожалуйста, куда, в какое место на Проксмоксе положить файл .qcow2 со старой машины, чтобы новый сервер его увидел?
    По вашей инструкции пытаюсь перенести машину со старого железа на новый сервер. Создаю новую виртуалку, затем хочу подменить диск своим .qcow2 но не нахожу, где он лежит. Может нужно что-то смонтировать предварительно?
    Поставил Проксмокс 6-2-4.
    Извините за возможно тупые вопросы, дело для меня пока новое, я пытаюсь разобраться, гуглю-гуглю - ваша статья показалась самой информативной.

    • Если у вас типовая установка и вы в хранилище, которое создается по-умолчанию во время установки, ставите виртуалку, то образы лежат в /var/lib/vz/images, дальше номер виртуалки, например 100 и там уже образ.

      • Николай

        Увы, там пусто и папки 100 там нет. Вообще ничего нет. Хотя машину создаю, пытаюсь запустить, она, конечно не стартует но и диск не появляется.
        Попробую переустановить прокмокс.
        Спасибо!

  6. Добрый день. Реально ли перенести физический Windows в образе vhd на kvm lvm ?

  7. Реально вообще запустить перенесенную ВМ с Windows 2003 server r2? BSOD при загрузке ничего не помогает.

    • Откуда и куда переносите? Думаю, все реально. Надо смотреть на причины bsod и исправлять их. Если не переносится никак сама виртуалка, можно тем же акронисом образ снять и перенести.

      • Спасибо, уже запустилось. Странно - создал диск на пару гигабайт побольше и запустилось, а один в один диск подменял когда - BSOD.

      • Добрый день. Реально ли перенести физический Windows в образе vhd на kvm lvm ?

  8. Приветствую. Образы старого Qemu-kvm, формата *.img, запустятся в proxmox современном?

    • Я не проверял, но думаю, да. Даже если не запустятся, можно сконвертировать. Если не ошибаюсь img это тот же raw.

  9. Добрый вечер! Сделал все как написано но не прокатило. У меня умер proxmox я заново установил Debian 9.8 64b. От старого получилось подмонтировать диск там все живые виртуалки в формате vm-100-disk-0.qcow2 и т.д. Я создал через веб морду proxmox новую машину с обьемом диска например как у первой диск создался vm-100-disk-0.qcow2 я его удалил и тупым копированием скопировал файл с таким же именем при старте пишет не загрузочный диск что я не так сделал? Но имя узла уменя новое

    • Возможно в свойствах вирутальной машины указана загрузка не с этого диска, либо драйвер не тот стоит. Если сами qcow2 файлы не повреждены, то их обычная замена работает 100%. Я часто так делаю.

      • загрузка стоит именно с этого диска ide0 причем я побывал все виртуалки тоже самое но железо другое я думаю это не влияет

        • копировал правда с помощью mc

          • Аноним

            Вопрос решился. Обратите внимание если образы льёте через FTP Microsoft он поганит образы виртуальных машин и бэкапов. По этому возник такой вопрос как у меня. Подрубил напрямую диск слил все образы и бэкапы как так и было.

  10. Добрый.
    На PVE - только ZFS. И минимум на сервере zfs raid 1 (больше дисков - лучше, ес-но). Без hw raid. ZFS прекрасно его заменяет.
    И помним, что raid - это не backup. Резервное копирование нужно делать не зависимо от того, железа, к-ым располагаете.
    В продакшене полтора десятка PVE. Железо даалеко не топовое. Везде ZFS. Проблем нет. Вот уже 2,5 года.

    По поводу миграции. Если есть возможность и приличные скорости, то мигрирую по сети. Тем самым исключаем шаг в виде выгрузки-загрузки образов ВМ. Пользую Clonezilla, dd, pv. Загрузка для миграции по PXE с помощью FOG Project.

    Веду небольшую вики. Ссылка forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense
    Будут вопросы - регайтесь по ссылке на форуме. Пишите. Будем вместе решать возникающие проблемы.

  11. Спасибо за труд! Расскажите, пожалуйста:
    1. зачем нужна конвертация из qcow2 в lvm том, какие плюсы от такого перехода?
    2. почему не пользовались сохранением virsh dumpxml и virsh define из сохранённого xml для переноса настроек vm целиком?

    • 1. Теоретически lvm том должен работать быстрее. Практически думаю, так и есть, но сам лично тесты не проводил. Так же интересна технология lvm thin.
      2. Не было необходимости. Создать машину через web интерфейс было банально быстрее.

      • Дмитрий

        По поводу настройки сети - можно мак на новой виртулке прописать такой же как и на старой и перенастраивать не придётся

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar