К основному контенту

Экспорт виртуальной машины с хоста 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

 

 

Комментарии

Популярные сообщения из этого блога

Avaya, переадресация на мобильный, по неответу после 3 звонков.

Есть простейшее решение. 1. Через FAC набрать самому 2. Через change station на странице 3, задать номера и активировать их. 3. Через change coverage remote задать там номера, потом change coverage path задать правила перехода. В 1 и последнем случае, нет дурацкого сообщения на экране. Вариант 3: r2 означает, что надо вять номер из таблицы выше (remote). На станции указываем нужный coverage path

Конвертируем точку доступа AIR-LAP1131AG-E-K9 в автономную

1. Отключаем Ethernet кабель 2. Зажимаем кнопку (она там одна, справа от кабелей) 3. Подключаем консольный кабель 4. Подключаем AC-DC адаптер Теперь не отпуская кнопки ждем когда на консоли появится примерно следующее: Initializing ethernet port 0... Reset ethernet port 0... Reset done! link auto-negotiating....  auto-negotiation takes 10000 milli-seconds to complete ERROR: timeout waiting for auto-negotiation to complete  ERROR: fail to bring ethernet link up The system has been encountered an error initializing ethernet port. You may need to check hardware The system is ignoring the error and continuing boot. If you interrupt the system boot process, the following commands will reinitialize ethernet, tftp, and finish loading the operating system software:     ether_init     tftp_init     boot button is pressed, wait for button to be released... Тут мы должны отпустить кнопку, и далее увидим button pressed for 55 seconds process_config_recovery: set IP a

Время в логах на Cisco

чтобы в логах на Cisco было корректное время, нужно ввести следующую строку service timestamps log datetime localtime Ну и заодно в режиме отладки service timestamps debug datetime localtime