В данной статье я расскажу о возможностях 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 можно посмотреть в документации.