@starsb

Как с помощью PowerCli сделать частиный бэкап VM?

Приветствую.
Уже неделю бъюсь над задачей - необходимо организовать бэкап VM средствами PowerCli. Без вариантов.
Метод выбран простой - New-VM -VM. Создаем клон из текущей.
Но есть проблема - часть VM содержит более 1 диска, их копировать не нужно. Должен быть только "Hard disk 1". Удалять после создания клона - тоже не вариант. Слишком большие диски.
В vCenter при создании клона в GUI на последнем шаге есть "Edit virtual hardware", который позволяет исключить диски из копии. Вот как бы этого добиться в PowerCli?
  • Вопрос задан
  • 251 просмотр
Решения вопроса 1
@azarij
В меру опытный никто
похоже, когда они писали new-vm командлет, они просто поленились дополнительные опции для клонирования туда запихнуть... или спроса на них не было большого. однако в АПИ они есть.

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

$connection = Connect-VIServer -Server 192.168.0.1 -user "domain\user" -Password "P@ssw0rd" # подключаемся к вицентру

$vm = get-vm "original-vm" # засовываем оригинальную ВМ в переменную

$folder = get-folder "folder_name_here" # выставляем в какую папку будет положена копия

$spec = New-Object VMware.Vim.VirtualMachineCloneSpec # создаем объект со спецификацией клона

$spec.Config = New-Object VMware.Vim.VirtualMachineConfigSpec # создаем секцию конфигурации в предыдущем объекте

$excludedisk = New-Object VMware.Vim.VirtualDeviceConfigSpec # создаем объект, указывающий на конфигурацию устройства?

$excludedisk.Operation = "remove" # указываем, что мы хотим сделать с оригинальной конфигурацией

$excludedisk.Device = $vm.ExtensionData.Config.Hardware.device | where diskobjectid -EQ "id diska, kotoryj hotim ubrat"

$spec.Config.DeviceChange += $excludedisk # запихиваем команду на удаление диска в спецификацию для клонирования.

$spec.Location = New-Object VMware.Vim.VirtualMachineRelocateSpec # наверно, создаем объект для указания где хранить клон...

$spec.PowerOn = $false # наверно, указываем, что после клонирования клон запускать не надо

$spec.Template = $false #  наверно, указываем, что никакие шаблоны при клонировании не используются

$vm.ExtensionData.CloneVM($folder.ExtensionData.MoRef,"imia_novoj_vm",$spec) # запускаем собственно клонирование с указанной конфигурацией клона


я настоятельно рекомендую проверить это все на тестовой вм перед тем как лезть с этим кодом в production.

идея честно сперта отсюда: https://communities.vmware.com/thread/409695?start...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы