angle-left

миграция виртуальных машин возможностями vMA

Введение

Недавно, один наш заказчик изьявил желание сконфигурировать перенос виртуальных машин  с множества хостов на один, при переходе на питание от батарей, и обратное их размещение при восстановления питания от сети. Виртуализация осуществляется средствами vmware vSphere 5.5.
Для осуществления миграции существует два средства предоставляемые VmWare :
 
В данной статье я расскажу о возможностях VmWare vMA для реализации данной задачи.
В нашем случае использовались версии vSphere 5.5, vMA 5.5.
vMA распространяется в виде OVF файла, разворачиваемого в инфраструктуре. 
 

vMA

Для подключения к серверу необходимо выполнить комманду vifp addserver vsphereserver
 
 # vifp addserver vsphereserver

Enter username for vsphereserver: administrator@vsphere.local
administrator@vsphere.local@vsphereserver's password:
This will store username and password in credential store which is a security risk. Do you want to continue?(yes/no): yes
 
Посмотреть список добавленных серверов можно с помощью vifp listservers
 vifp listservers 
 
Более полную информацию можно подчерпнуть в man vifp
 
После добавления сервера к нему нужно подключиться vifptarget -s $servername
 vifptarget -s vsphereserver
[vsphereserver]

После подключения, все комманды и скритпы будут применяться к данному серверу.

 
Скрипты vMA находятся по пути /usr/lib/vmware-vcli/apps в соответствующих каталогах :
  • AppUtil
  • general
  • host
  • performance
  • sampledata
  • schema
  • session
  • vm
 
Список и информацию о хостах в vSphere получаем /usr/lib/vmware-vcli/apps/host/hostinfo.pl
 
Для получения списка имен (именно имен, для дальнейшего сохранения и обратной миграции) виртуальных машин на определенном хосте выполняем 
/usr/lib/vmware-vcli/apps/vm/vminfo.pl  --host $hostname --fields vmname |grep "^Name:" 
 
В vMA есть замечательный скрипт host/hostevacuate.pl 
Существует 4 необходимых поля.
 
   --sourcehost (required)
      Host name of the host containing virtual machines to be evacuated
   --targetdatastore (required)
      Name of the datastore
   --targethost (required)
      Host name of the host to transfer virtual machines to
   --targetpool (required)
      Name of the resource pool. #Пул по умолчанию имеет имя Resourses -прим. автора.
 
Миграция в Resource pool по умолчанию осуществляется использованием имени Resource в значении поля targetpool
По умолчанию параметр --state имеет значение poweredOff, что позволит эвакуировать только выключенные машины 
 --state (default 'poweredOff')
      State of the virtual machine: poweredOn, poweredOff, suspended
 
В случае попытки миграции машины в ином состоянии получите следующую ошибку
Migrating the virtual machine $machine_name
The attempted operation cannot be performed in the current state (Powered On).
 
 
Поэтому, для миграции включенных машин команда будет выглядеть
/usr/lib/vmware-vcli/apps/host/hostevacuate.pl --sourcehost $hostname --targetdatastore $target_datastore_name --targethost $targethost --targetpool Resources --state poweredOn

Migrating the virtual machine xp
Virtual Machine xp sucessfully migrated to host $targethost

Migrating the virtual machine Windows 2008 Base
Virtual Machine Windows 2008 Base sucessfully migrated to host $targethost
 
Для выборочной миграции виртуальных машин используем /usr/lib/vmware-vcli/apps/vm/vmmigrate.plимеющий необходимые параметры
   --sourcehost (required)
      Host name containing virtual machines to be migrated
   --targetdatastore (required)
      Name of the datastore
   --targethost (required)
      Host name containing virtual machines to be migrated
   --targetpool (required)
      Name of the pool
   --vmname (required)
      Name of the virtual machine
 
 
Во многом здесь все подобно скрипту hostevacuate.pl : значение параметра state по умолчанию powerOff
 
/usr/lib/vmware-vcli/apps/vm/vmmigrate.pl --sourcehost $host --targetdatastore $target_datastore_name --targethost $targethost --targetpool Resources --vmname "Windows 2008 Base" --state poweredOn
 
Migrating the virtual machine Windows 2008 Base
Virtual Machine Windows 2008 Base sucessfully migrated to host $targethost

 

Выводы

Содержимое данной статьи демонстрирует некоторые возможности vMA с точки зрения организации миграции виртуальных маши. Более подробно о vMA можно посмотреть в документации.