В данной статье я расскажу о возможностях VmWare vMA для реализации данной задачи.
В нашем случае использовались версии vSphere 5.5, vMA 5.5.
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 можно посмотреть в документации.