С помощью нехитрых манипуляций можно с лёгкостью мигрировать с любой физической машины на виртуальную, в данной статье я пошагово расскажу как это сделать.
Для начала хотелось бы перечислить инструменты с помощью которых будет совершена миграция:
- Операционная система Ubuntu предварительно записанная на флешку.
Скачать можно здесь.
Примечание: неважно какая система будет мигрировать, Ubuntu требуется в качестве инструмента, так как в ней можно работать в LiveCD режиме с флешки, что очень удобно. - Утилита dd (предустановлена в Ubuntu)
- Утилита qemu-img (предустановлена в Ubuntu)
- KVM или любое другое программное решение для виртуализации, в данном примере будет использоваться именно это решение.
Далее требуется выполнить пошаговые действия, адаптируя команды под свою ситуацию:
Загрузиться в LiveCD ubuntu
В этом пункте нет ничего сложного, необходимо вставить флешку с операционной системой, выбрать её в качестве загрузочного диска и нажать Try install, далее закрыть меню установки системы и открыть терминал.
С помощью утилиты dd записать образ диска
Этот шаг крайне ответственный, так как в случае если вы неправильно укажете диски, то можете уничтожить данные, будьте крайне внимательны и подойдите осознанно к своим действиям!
Для начала необходимо узнать имена дисков в системе, чтобы с ними взаимодействовать, для этого подойдёт команда lsblk
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 100G 0 part /
В выводе команды можно увидеть целевой диск vda, далее можно записывать образ этого диска
sudo dd if=/dev/vda of=./diskC.img bs=1M status=progress
Здесь путь записи указывается ./ в связи с тем, что был открыт терминал в директории съёмного носителя, на который производится запись образа диска.
Скопировать образ диска на хост-сервер KVM или просто подключить съёмный носитель к машине и работать напрямую
Здесь рекомендую использовать scp или rsync, на своём личном опыте копировал через cp и получил повреждённый образ в конечной точке.
Я использовал утилиту scp
scp /путь/к/файлу/на_машине username@server:/путь/к/файлу/на_сервере
Создать виртуальный диск на виртуальной машине в данном случае требуется использовать LVM
Здесь можно использовать графический интерфейс KVM, в нём всё интуитивно понятно, поэтому зацикливаться на этом пункте не вижу никакого смысла. Также можно использовать терминал для решения этой задачи (кому как удобно)
Импортировать образ диска с помощью qemu-img, данная утилита запишет наш образ на заранее подготовленный виртуальный диск
qemu-img convert -p -O raw /путь/к/образу/diskC.img /путь/к/виртуальному_диску/disckC_VM
Здесь:
/путь/к/образу/diskC.img — путь к вашему образу диска, который мы записали в начале с физической машины.
/путь/к/виртуальному_диску/disckC_VM — путь к виртуальному диску, который был создал на самом сервере, куда происходит миграция.
Создать виртуальную машину в KVM с помощью утилиты virt-manager или virsh
virt-manager (вызывает virtmanager c графическим интерфейсом через терминал)
На данном этапе рекомендую использовать графический интерфейс, где всё интуитивно понятно, просто создаём машину с необходимыми параметрами и монтируем к новой виртуальной машине диск, который мы создали и на который был записан образ.
Итог
На этом миграция окончена, можно запустить виртуальную машину и обнаружить, что всё работает как и должно. Конечно это не означает, что всё пройдёт 100% гладко, какие-то проблемы могут возникнуть в процессе, но не стоит их бояться, всё очень даже решаемо!
Лично я столкнулся с проблемой при копировании файла образа диска на сервер, файл скопировался но как оказалось он повредился и все мои дальнейшие действия привели к неработающей виртуальной машине.
Это не оказалось большим припятствием, я просто использовал другую утилиту для доставки файла и всё отлично заработало.


Комментарии