Экспорт виртуальной машины с хоста ESXi (в качестве резервной копии) с отключением ненужных дисков.

Известная проблема с экспортом более менее больших виртуальных машин через WEB GUI ESXi решается с помощью ovftool однако иногда бывает нужно что-то еще сделать за одно, например мы хотим экспортировать только один диск нашей машины (предположим второй лежит на другом сторейдже и содержит скажем дистрибутивы или какие то ненужные видео файлы).

Можно в WEB GUI ESXi выключить машину, удалить (крестиком) диск, экспортировать машину через ovftools, затем добавить существующий диск (указав путь до vmdk файла (разумеется мы его предварительно запомнили :-)  ).

Но может вы хотите потом автоматизировать эту рутину.Тогда вам поможет WMWare PowerCli - это набор скриптов PowerShell которые умеют много из командной строки.

Итак начнем.

Сначала нужно подключится к VMWare для примера адрес хоста 192.168.1.10
Чтоб не пришлось вводить логин пароль в отдельном окне (а если вы делаете скрипт, тем более)
привязываем к хосту учетку:
New-VICredentialStoreItem  -Host 192.168.1.10 -User вашпользователь -Password вашпароль

Теперь можно просто приконнектится к хосту:

Connect-VIServer 192.168.1.10

Если точно не знаем имя виртуальной машины посмотрим ее в списке:

Get-VM

Name                 PowerState Num CPUs MemoryGB
----                 ---------- -------- --------
AlmaDocker           PoweredOff 4        16,000
CUCM                 PoweredOff 2        4,000
SDP                  PoweredOn  2        4,000
PMP                  PoweredOn  2        2,000
Asterisk             PoweredOn  1        2,000
Win2016vmwareclitest PoweredOn  2        8,000
eve                  PoweredOff 8        32,000

Присвоим переменной $mvm нашу машину чтоб в остальных командах не писать длинное имя:

$mvm = Get-VM Win2016vmwareclitest

 
Выключаем машину (только в случае если установлены VMWare tools иначе надо ее выключать жестко) - иначе нельзя удалить диски и выполнить экспорт:

Shutdown-VMGuest -vm $mvm -confirm:$false

Проверяем что она выключилась:

Get-VM

Name                 PowerState Num CPUs MemoryGB
----                 ---------- -------- --------
AlmaDocker           PoweredOff 4        16,000
CUCM                 PoweredOff 2        4,000
SDP                  PoweredOn  2        4,000
PMP                  PoweredOn  2        2,000
Win2016vmwareclitest PoweredOff 4        8,000
Asterisk             PoweredOn  1        2,000
eve                  PoweredOff 8        32,000


Получаем список дисков в виде который даст нам всю необходимую информацию:

Get-HardDisk -vm $mvm | Select-Object Name,StorageFormat,Persistence,Filename,CapacityGB

Name          : Hard disk 1
StorageFormat : Thick
Persistence   : Persistent
Filename      : [SAS5] Win2016vmwareclitest/Win2016vmwareclitest.vmdk
CapacityGB    : 16

Name          : Hard disk 2
StorageFormat : Thick
Persistence   : Persistent
Filename      : [SAS5] Win2016vmwareclitest/Win2016vmwareclitest_1.vmdk
CapacityGB    : 20

Опять воспользуемся переменной, пусть это будет $hdd и присвоим нужный диск:

$hdd = Get-HardDisk -vm $mvm -Name "Hard disk 2"

Теперь удалим ненужный диск, удаляем его без удаления самого файла:

Remove-HardDisk -HardDisk $hdd -confirm:$false

Еще раз проверяем что больше нет ненужного диска у нашей ВМ:

Get-HardDisk -vm $mvm | Select-Object Name,StorageFormat,Persistence,Filename,CapacityGB

Name          : Hard disk 1
StorageFormat : Thick
Persistence   : Persistent
Filename      : [SAS5] Win2016vmwareclitest/Win2016vmwareclitest.vmdk
CapacityGB    : 16

Еще помните что может быть подключен какой нибудь DVD и он тоже будет экспортироваться давайте его отключим:

Get-CDDrive -vm $mvm

IsoPath              HostDevice                             RemoteDevice
-------              ----------                             ------------
[SAS5] distr/ru_w...

Есть - удаляем его:

$mcd = Get-CDDrive -vm $mvm

Remove-CDDrive -cd $mcd -confirm:$false


Теперь делаем экспорт машины в локальную папку:

Export-VApp -vm $mvm -Destination C:\vmbackups\

Видим вверху окошка PowerShell прогресс и ждем.....

Export-VApp
  percent complete: 13,8
  [ooooooooooooooooooooooooo

В конце увидим созданные файлы:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        06.03.2023      0:01           9418 Win2016vmwareclitest.ovf
-a----        06.03.2023      0:01     5364877824 Win2016vmwareclitest_disk0.vmdk
-a----        06.03.2023      0:01         270840 Win2016vmwareclitest_file0.nvram
-a----        06.03.2023      0:01            312 Win2016vmwareclitest.mf


Когда экспорт закончен можно подключить диск обратно:

New-HardDisk -Persistence Persistent -DiskPath "[SAS5] Win2016vmwareclitest/Win2016vmwareclitest_1.vmdk" -vm $mvm


И запустить машину:

Start-VM -vm $mvm

 

 

Комментарии

Популярные сообщения