Миграция виртуальных машин из VMware в Proxmox

Thank you for reading this post, don't forget to subscribe!

Из име­ю­щих­ся воз­мож­ных вари­ан­тов про­ве­де­ния пере­во­да вир­ту­аль­ной маши­ны из сре­ды vSphere в сре­ду Proxmox пока­жу про­стей­ший и как мне кажет­ся наи­бо­лее пря­мо­ли­ней­ный способ.

Во-пер­вых, с помо­щью веб интер­фей­са кли­ен­та vSphere про­во­дим экс­порт вир­ту­аль­ной маши­ны в виде OVF тем­плей­та. Для это­го в кон­текст­ном меню дан­ной вир­ту­аль­ной маши­ны выби­ра­ем Template -> Export OVF Template. Перед выпол­не­ни­ем дан­но­го дей­ствия необ­хо­ди­мо убе­дить­ся, что сама ВМ нахо­дит­ся в выклю­чен­ном состо­я­нии. В резуль­та­те выпол­не­ния опе­ра­ции экс­пор­та на рабо­чий ком­пью­тер загру­зит­ся несколь­ко фай­лов дан­ной ВМ (ovf, vmdk, nvram, mf).

Во-вто­рых, загру­жа­ем все фай­лы, полу­чен­ные в резуль­та­те преды­ду­щей опе­ра­ции, на сер­вер Proxmox. Это мож­но сде­лать с помо­щью коман­ды scp в Linux/MacOS или pscp в Windows.

В-тре­тьих, когда все фай­лы будут загру­же­ны, мож­но начать импорт этих фай­лов в Proxmox-VE. При­мер коман­ды в CLI для импор­та ВМ при­ве­ден ниже.

# qm importovf 101 /install/andreyus-test-vm.ovf local-lvm

Так 101 — это номер созда­ва­е­мой вир­ту­ал­ки в Proxmox, a local-lvm — дата­стор, на кото­ром будут нахо­дить­ся фай­лы дан­ной ВМ. После того, как импорт будет пол­но­стью завер­шен, реко­мен­дую выпол­нить сле­ду­ю­щие дей­ствия со вновь создан­ной виртуалкой:

  • Уста­но­вить в настрой­ках жест­ких дис­ках пара­метр discard=on.
  • Доба­вить необ­хо­ди­мые сете­вые адаптеры.
  • Выста­вить пара­метр QEMU guest agent в Enabled.
  • Отре­дак­ти­ро­вать назва­ние ВМ в слу­чае необходимости.

В-чет­вер­тых, при­шло вре­мя запус­кать импор­ти­ро­ван­ную нами вир­ту­аль­ную маши­ну. Так как в сре­дах vSphere и Proxmox наиме­но­ва­ние сете­вых адап­те­ров раз­ли­ча­ет­ся, необ­хо­ди­мо через VNC кон­соль гипер­ви­зо­ра про­из­ве­сти их пере­кон­фи­гу­ра­цию. После это­го долж­на появить­ся связь с вир­ту­аль­ной маши­ной из сети. Соот­ветс­вен­но мож­но будет захо­дить на нее уда­лен­но и выпол­нять даль­не­шие дей­ствия через SSH или RDP. В ряде слу­ча­ев для нор­маль­но­го функ­ци­о­ни­ро­ва­ния опре­де­лен­ных сер­ви­сов потре­бу­ет­ся пере­за­груз­ка госте­вой машины.

В-пятых, нам необ­хо­ди­мо отклю­чить vmware-tools, и вклю­чить qemu agent. Так, напри­мер, в слу­чае с исполь­зо­ва­ни­ем Ubuntu Linux в каче­стве госте­вой ОС, нам нуж­но выпол­нить две коман­ды в шел­ле вир­ту­аль­ной машины.

# sudo apt remove open-vm-tools
# sudo apt install qemu-guest-agent

В-шестых, после про­це­ду­ры импор­та, все дис­ки госте­вой маши­ны в Proxmox будут зани­мать пол­ное место на дата­сто­ре, вне зави­си­о­мсти от исполь­зо­ва­ния фун­ки­о­на­ла Thin Provisioning. Если мы исполь­зу­ем дан­ную тех­но­ло­гию, то необ­хо­ди­мо в шел­ле госте­вой маши­ны выпол­нить сле­ду­ю­щую коман­ду, что­бы осво­бо­дить на дата­сто­ре неис­поль­зу­е­мое место.

# fstrim -av

В-седь­мых, после того, как все необ­хо­ди­мые дей­ствия по пере­но­су будут выпол­не­ны, реко­мен­дую уда­лить пол­но­стью пер­во­на­чаль­ную ВМ из сре­ды vSphere. Кро­ме это­го уда­ля­ем все ненуж­ные фай­лы, кото­рые созда­ва­лись или копи­ро­ва­лись в про­цес­се про­ве­де­ния работ по мигра­ции. На этом опе­ра­цию по мигра­ции мож­но счи­тать успеш­но выпол­нен­ной и пол­но­стью завершенной.