sonyps4.ru

Экспорт виртуальных машин hyper v. Скрипт v2.0

Аннотация: Целью данной практической работы является подробное рассмотрение процессов экспорта и импорта виртуальных машин стандартными средствами Hyper-V и понятие снимок виртуальной машиной.

Экспорт виртуальной машины

Примечание. Материал практики основан на разделе "Local Desktop Virtualization" книги "Understanding Microsoft Virtualizations Solutions" M. Tulloch (Chapter 2).

Процесс экспорта виртуальной машины средствами Hyper-V не составляет труда. Единственный параметр , который необходимо определить - путь сохранения файлов виртуальной машины. Для экспорта ВМ необходимо:

В качестве места хранения файла может быть указан не только логический том локального жесткого диска, но также каталог на внешнем жестком диске или удаленном сервере.

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


Рис. 10.3.

Config.xml - файл , содержащий информацию об исходном местоположении файлов виртуальных жестких дисков экспортируемой машины.

В папке Virtual Machines находится .exp файл , содержащий сведения об экспортированной виртуальной машине. В ходе импорта данный файл преобразуется в конфигурационный xml - файл .

В папке Virtual Hard Disks находятся файлы виртуальных жестких дисков экспортированной машины.

В папке Snapshots содержит сведения о моментальных снимках виртуальной машины (.avhd , .vsv , .bin ).

Импорт виртуальной машины

Отметим особенности импорта виртуальных машин Hyper - V:

  1. Импортировать в Hyper-V можно только виртуальные машины другого Hyper-V сервера. Импорт виртуальных машин Virtual PC или Virtual Server невозможен, поскольку конфигурация виртуальных машин, создаваемых этими решениями отличается от Hyper-V, несмотря на то, что все решения используют .vhd - файлы виртуальных жестких дисков.
  2. Виртуальную машину можно экспортировать только один раз. Как уже отмечалось, создаваемый при экспорте .exp - файл сведений о виртуальной машине, в процессе импорта преобразуется в xml - файл конфигурации. В связи с этим, при возникновении ошибок импорта единственным способом продолжения работы с импортируемой виртуальной машиной является создание новой с аналогичной конфигурацией на основе уже имеющихся файлов виртуальных жестких дисков.

Для импорта виртуальной машины необходимо:

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

Снимки виртуальной машины (snapshot)

Снимком называется состояние виртуальной машины на определенный момент времени. Снимки используются для хранения информации о состояниях и возврата к ним, в случае необходимости (отмена внесенных изменений с момента создания снимка).

Нельзя создать снимок приостановленной виртуальной машины. При создании нескольких снимков может образоваться их хронологическая последовательность - дерево снимков.

Для создания снимка необходимо выбрать пункт Снимок выпадающего меню .


Рис. 10.7.

После создания снимка появится соответствующий значок на панели "Снимки" диспетчера Hyper-V.

Для возврата виртуальной машины к состоянию снимка, необходимо применить его к виртуальной машине (см. рис. 10.9).


Рис. 10.9.

Как показано на рис. 10.9 , доступны следующие действия работы со снимками:

  • Применить - скопировать состояние виртуальной машины из выбранного снимка в активную виртуальную машину. При этом виртуальная машина возвращается к состоянию, описанному в выбранном снимке. Все несохраненные данные в активной виртуальной машине будут потеряны.
  • Переименовать - команда позволяет изменения имени моментального снимка.
  • Удалить снимок - команда удаления файлов, связанных с выбранным снимком, файлы других снимков затронуты не будут. При удалении текущее состояние активной виртуальной машины не меняется.
  • Удалить дерево снимков - позволяет удалить выбранный моментальный снимок и все снимки, иерархически подчиненные ему. При удалении текущее состояние активной виртуальной машины не меняется.

Краткие итоги.

В рамках данной практики были рассмотрены возможности Hyper-V для экспорта и импорта виртуальных машин, а также по созданию снимков состояния виртуальной машины. Функции экспорта и импорта используются для переноса виртуальной машины с одного Hyper-V сервера на другой.

Снимки состояний, как правило, используются в процессе разработки, тестирования и развертки приложений. Снимки позволяют вернуть состояние виртуальной машины к моменту их создания, при этом все внесенные с этого времени изменения будут потеряны.

Механизм экспорта-импорта в гипервизоре Hyper-V предназначен для перемещения виртуальных машин с одного компьютера или сервера на другой. Экспорт – это, по сути, копирование виртуальной машины с полным сохранением ее конфигурации. При экспорте копируется виртуальный жесткий диск, настройки оборудования, сохраненный момент работы гостевой ОС, созданные (снапшоты).

Механизм экспорта-импорта Hyper-V также можно использовать для создания на том же сервере или на том же компьютере виртуальной машины-клона для тестирования и взаимодействия с виртуальной машиной-оригиналом. Машина-клон может получить другой ID (идентификатор), другой внутренний IP-адрес в сети Hyper-V, вследствие чего, по сути, не будет ничем отличаться от виртуальных машин, созданных с нуля.

Ниже рассмотрим процесс экспорта-импорта виртуальной машины на примере , входящего в состав Windows 10, детальнее.

Рассматриваемые вопросы:

1. Экспорт виртуальной машины

Одним из преимуществ новой версии Hyper-V, вошедшей в состав Windows Server 2012 R2, клиентских систем Windows 8.1 и 10, является способность осуществлять некоторые ресурсоемкие задачи, в частности, экспорт на лету, в процессе работы виртуальной машины, без ее остановки, даже без приостановки. Экспорт осуществляется в фоновом режиме, он проходит не быстро, поскольку задействует небольшое количество системных ресурсов, оставляя пользователю возможность работать с виртуальной машиной дальше.

Как осуществляется экспорт виртуальной машины? Выбираем в диспетчере Hyper-V нужную виртуальную машину, вызываем контекстное меню. Нам нужна команда «Экспорт».

2. Экспорт снимка виртуальной машины

Еще одна относительно новая функция Hyper-V, которой не было в старых серверных версиях Windows – возможность экспорта отдельной контрольной точки, то есть, виртуальной машины в состоянии на момент создания этой контрольной точки. Ранее гипервизор Microsoft предусматривал только экспорт-импорт всей виртуальной машины. И в случае, если нужно было состояние какой-то отдельной контрольной точки, приходилось экспортировать виртуальную машину со всеми ее контрольными точками, а после импорта делать откат к нужной. Сейчас Hyper-V позволяет экспортировать каждую отдельную контрольную точку. Экспортировав отдельный снапшот, его можно затем импортировать как новую виртуальную машину, в частности, со своим уникальным идентификатором на том же сервере или компьютере.

Чтобы осуществить экспорт виртуальной машины из контрольной точки, выбираем в диспетчере Hyper-V и машину, и контрольную точку. На последней вызываем контекстное меню и выбираем «Экспорт».

3. Надежность формата экспорта Hyper-V

Экспорт виртуальной машины Hyper-V осуществляется не в какой-нибудь отдельный сжатый формат файла, куда помещаются и виртуальный жесткий диск, и файлы конфигурации, и сохраненное состояние гостевой ОС, как, например, это предлагается механизмом экспорта-импорта в программе VirtualBox. В случае с виртуальными машинами VirtualBox экспорт-импорт возможен при участии посредника – файла формата OVA. При повреждении этого файла импорт виртуальной машины VirtualBox может не состояться. А вот в случае с Hyper-V экспорт виртуальной машины означает полное копирование виртуального жесткого диска в исходном его формате – VHDX (или VHD).

Таким образом, если прочие данные экспорта повредятся, виртуальную машину все равно можно будет воссоздать. Нужно будет средствами Hyper-V создать новую виртуальную машину, использовав существующий файл VHDX (VHD).

4. Импорт виртуальной машины

Экспортированную виртуальную машину в дальнейшем можно импортировать в совместимой версии Hyper-V в составе серверных редакций Windows и клиентских Windows 8.1 и 10.

Для импорта виртуальной машины выбираем соответствующую функцию в диспетчере Hyper-V.

В следующем окне используем кнопку обзора и указываем путь к папке с экспортированной виртуальной машиной. Жмем «Далее».

Выбираем нужную виртуальную машину, если в указанной папке их несколько. Жмем «Далее».

Затем нужно сделать выбор, как будет импортирована виртуальная машина. Если таковая перенесена с другого сервера или компьютера, можно использовать первый тип импорта, предусматривающий ее регистрацию с использованием исходного идентификатора. Этот вариант регистрирует виртуальную машину в той же папке, где хранятся файлы ее экспорта, следовательно, не будет затрачено время на копирование файлов.

Второй тип импорта также подойдет для случаев переноса виртуальной машины с другого сервера или компьютера, но при его использовании экспортированные файлы будут перенесены в указанную папку. Идентификатор виртуальной машины при этом останется прежним.

Если виртуальная машина перемещается в рамках одного сервера или компьютера, следует использовать третий тип импорта, предусматривающий генерирование нового идентификатора. Ведь на одном физическом компьютере не может быть виртуальных машин Hyper-V с одинаковым идентификатором.

В нашем случае имеет место быть копирование виртуальной машины, это третий тип импорта. Жмем «Далее».

Путь хранения файлов конфигурации, контрольных точек и прочих данных импортируемой виртуальной машины, указанный Hyper-V по умолчанию, можно сменить. Необходимо установить галочку смены места хранения и вручную указать нужные пути.

В нашем случае просто допишем в пути (через слеш) создание отдельной папки «Копия». Жмем «Далее».

Этот же путь укажем и для файла VHDX, чтобы все находилось в одном месте. Жмем «Далее».

Завершающий этап мастера – сводка данных импорта. Жмем «Готово».

Теперь в нашем случае в диспетчере Hyper-V имеется две одинаковые виртуальные машины. Они с разными идентификаторами, но у них одно и то же название. Сменим название только что импортированной виртуальной машины.

Все – процесс импорта осуществлен. Импортированную виртуальную машину можно запускать и тестировать.

Отличного Вам дня!

11.02.2012 - 18:26

Рассмотрим скрипт по экспортированию ВМ на сервере Hyper-V.
Задача стоит в автоматизации процесса с максимальной логикой не в ущерб производительности. В результате, мною был написан скрипт, который я подавал раннем . Ситуация менялась с каждым днём, система уже работала в продуктиве, поэтому нужно было сократить риск что-то поломать до минимального. В результате, я доработал скрипт, концепция которого не изменилась:

  1. Находим ВМ
  2. Выключаем ВМ
  3. Экспортируем ВМ
  4. Включаем ВМ

Добавились только "рюшечки" и "вензеля".
Основное требование - сохранение 2-х копий ВМ, текущей и предыдущей. При формировании новой копии, предыдущая удаляется, а текущая переименовывается в предыдущую. Все реализовано на примере каталогов Today и Yesterday.

Основные возможности скрипта:

  1. Проверяет наличие нужной ВМ среди списка ВМ. Все действия записываются в log-файл.
  2. Если ВМ найдена - Удаляет каталог с прошлой записью, текущий каталог переименовывает в прошлый, создаёт каталог для текущей записи.
  3. Проверяет состояние ВМ. Если ВМ запущена - Останавливает ВМ. Экспортирует ВМ в назначенный каталог. Запускает.
  4. Если ВМ остановлена - экспортирует ВМ в назначенный каталог.
  5. Если ВМ в другом состоянии - пишет в лог.
  6. Если ВМ не найдена - пишет в лог.
  7. Позле экспорта - снимает всю информацию про VHD, тестирует VHD. Пишет в лог.
  8. Отправляет e-mail адресатам о проведённых операциях с установкой важности письма при неудаче.

Есть парочка особенностей:

  1. При отправке письма, лог, который планируется отправить вложением, не может находиться по UNC пути. Другими словами, если требуется отправить лог во вложении, нужно его разместить на локальном диске либо сетевой каталог подключить отдельным диском.
  2. Скрипт дополнительными функциями собирает информацию про VHD диск. Для успешной отработки функций аудита, диск не должен располагаться по UNC пути, опять придётся подключать сетевой диск.
  3. Для контроля выполнения экспорта машин по графику, было предпринято внедрить параметр "Имя ВМ".

Для успешной работы скрипта, нужно установить данный модуль . Я думаю, сложностей не возникнет.
Скрипт:

param ($VM ) # Входящий параметр Виртуальной Машины (ВМ)

if (! (Get-Module -Name hyperv) )
{
# Включить модуль
import-module hyperv
}
if ($VM -eq $null )
{
Write-Host "Введите имя виртуальной машины."
}

# ==== Начальные параметры
$ComputerName = Get-Content env:COMPUTERNAME
# Подключаем диск R: для получения информации про VHD
Invoke-Expression -Command "net use R: \\Server /y"
# Обнуляем счётчики
$count = $false # Триггер найденной ВМ
$export_count = $false # Счётчик успешного экспорта ВМ
# Определяем имя\адрес лог-файла
$log = "\\Server\backup\Logs\$ VM\" + (Get-Date -Format " yyy-MM") +" .log"
# Определяем путь к папке с РК
$BackupDir = "
\\Server\backup\" +$VM
# Путь к папке с РК для снятия информации с VHD
$InfoDir = "R:\backup\" +$VM
# Данные для email
$Sender = "
BackupOperator@ contoso.com"
$SMTP = " smtp.contoso.com"
$Recipients = @(" backup_monitoring@ contoso.com") # группа рассылки с адресатами, которые мониторят резервное копирование
$AttachePath = "
R:\backup\Logs\$VM \" + (Get-Date -Format "yyy-MM" ) +".log"

# Функция оптравки сообщения, на момент написания я не знал про функцию Send-MailMessage и написал свою функцию. Переделывать не хочу, "Работает - не трогай!"
function SendEmail($Subject ,$Body ,$Priority )
{
$Message = New-Object System.Net.Mail.MailMessage
$Server = New-Object System.Net.Mail.SMTPClient
$Attache = New-Object System.Net.Mail.Attachment($AttachePath )
# ==== Message
$Recipients | ForEach-Object { $Message .To.Add($_ ) }
$Message .From = $Sender
$Message .Subject = $Subject
$Message .Body = $Body
$Message .Attachments.Add($Attache )
$Message .Priority = [ System.Net.Mail.MailPriority] ::$Priority
# ==== Sending
$Server .Host = $SMTP
$Server .Send($Message )
}

# =========================================
# Начинаем запись лога
(Get-Date) + " `r` n Начало работы скрипта экспорта ВМ " +$VM + " сервер: " + $ComputerName + "`r` n Получение списка Виртуальных машин... `r` n"

# Получаем список ВМ
$VMArray = Get-VM | Select-Object -Property VMElementName
foreach($element in $VMArray )
{
# Ищем заданную ВМ
if ($VM -eq $element .VMElementName)
{
$log_string = $log_string + "Виртуальная машина найдена. Выполняю заданные действия... `r` n"
$count = $true
# ========== Операции с папками ===============

# Удаляем папку Yesterday
Remove-Item -Path ($BackupDir + "\Yesterday" ) -Recurse -ErrorVariable err
if ($err )
{
# Если ошибка удаления - останавливаем выполнение.
`r` n"
" Удаление каталога Yesterday не удалось, экспорт $VM прерван. Ошибка: " + $err
}
else
{
$log_string = $log_string + "Удаление каталога Yesterday проведено успешно. `r` n"
# Переименовываем папку Today
Rename-Item -Path ($BackupDir + "\T oday" ) -NewName ($BackupDir + "\Yesterday" ) -Force -ErrorVariable err
if ($err )
{
# Если ошибка переименовывания - останавливаем выполнение.
$log_string = $log_string + $err + "`r` n"
" Переименование каталога Yesterday не удалось, экспорт $VM прерван. Ошибка: " + $err
}
else
{
$log_string = $log_string + "Переименование папок проведено успешно. `r` n"
# Создаём папку Today
New-Item -Path ($BackupDir + "\T oday" ) -ItemType Directory -Force -ErrorVariable err
if ($err )
{
# Если ошибка создания - останавливаем выполнение.
$log_string = $log_string + $err + "`r` n"
$MailBody = $Mailbody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + "Создание каталога Yesterday не удалось, экспорт $VM прерван. Ошибка: " + $err
}
else
{
$log_string = $log_string + "Создание папки Today проведено успешно. `r` n"
#========== Конец работы с папками

#========== Работа с ВМ
# Если состояние машины - "Работает", то
if ((Get-VMSummary $VM ) .enabledstate -eq "Running" )
{
# Запустить выключение
$log_string = $log_string + ((Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина запущена. Выполняю остановку. `r` n" )
invoke-vmshutdown -VM $VM -Reason "Export VM." -Force -ErrorVariable err
if ($err )
{
$log_string = $log_string + $err + "`r` n"
$MailBody = $Mailbody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Остановка ВМ не произведена, экспорт $VM прерван. Ошибка: " + $err
}
else
{

" Виртуальная машина остановлена. Выполняю экспорт.`r` n"
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина остановлена.`r` n"
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Выполняю экспорт виртуальной машины.`r` n"
\T oday"
if ($err )
{
$log_string = $log_string + $err + "`r` n"
$MailBody = $Mailbody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Экспорт ВМ завершён с ошибкой, экспорт $VM прерван. Ошибка: " + $err
}
else
{
$log_string = $log_string + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина успешно экспортирована. Выполняю запуск.`r` n"
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) +
$export_count = $true
}
# Запуск ВМ потверждением включения на протяжении 300с перед выполнением следующей команды
Start-VM -vm $VM -HeartBeatTimeOut 300 -ErrorVariable err
if ($err )
{
$log_string = $log_string + $err + "`r` n"
$MailBody = $Mailbody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Запуск ВМ не произведен. Ошибка: " + $err
}
else
{
$log_string = $log_string + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) +
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина запущена.`r` n"
}
}
}
elseif((Get-VMSummary $VM ) .enabledstate -eq "Stopped" )
{
# Экспорт ВМ без подтверждения со всеми файлами (xml, vhd и т.д.) и подождать, пока не выполнится
$log_string = $log_string + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина находится в режиме Остановлена. Выполняю экспорт.`r` n"
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина находится в режиме Остановлена.`r` n"
export-VM -VM $VM -path ($backupDir + "\T oday" ) -force -copystate -wait -ErrorVariable err
if ($err )
{
$log_string = $log_string + $err + "`r` n"
$MailBody = $Mailbody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Экспорт ВМ не произведен, экспорт $VM прерван. Ошибка: " + $err
}
else
{
$log_string = $log_string + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина успешно экспортирована.`r` n"
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Виртуальная машина успешно экспортирована.`r` n"
$export_count = $true
}
}
else
{
$vm_state = (Get-VMSummary -VM $VM ) .EnabledState
$log_string = $log_string + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) +
$MailBody = $MailBody + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Экспорт виртуальной машины не произведён, состояние $VM = $vm_state .`r` n"
}
}
}
}
}
}
if ($count ) # Если ВМ найдена
{
if (! ($export_count ) ) # Если ВМ не экспортирована
{
$log_string = $log_string + "Экспорт виртуальной машины $VM выполнен с ошибками. Процесс прерван. `r` n"
$MailBody = $MailBody + "Экспорт виртуальной машины $VM выполнен с ошибками. Процесс прерван.`r` n"
}
else # Если ВМ экспортирована
{
$log_string = $log_string + "Провожу поиск *.VHD для $VM ... `r` n"
# Проводим поиск *.vhd в заданном каталоге
if (Get-Item -Path ($InfoDir + "\T oday\" + $VM + " \Virtual Hard Disks\* ") -Include *.*vhd | Select-Object -Property Name)
{
#$VHDInfo = "
VHD Info:` r` n"
foreach($element in (Get-Item -Path ($InfoDir + " \Today\" + $VM + "\V irtual Hard Disks\*" ) -Include * .* vhd | Select-Object -Property Name) )
{
# Для каждого найденного элемента получаем информацию и пишем в лог и строку для письма
$log_string = $log_string + "Информация для " + $element .Name + ":`r` n"
$SomeVHDInfo = Get-VHDInfo -VHDPaths ($InfoDir + "\T oday\" + $VM + " \Virtual Hard Disks\" + $element .Name)
$log_string = $log_string + "Путь: " + $SomeVHDInfo .Path + "`r` n"
$log_string = $log_string + "Объём файла: " + ([ System.Math] ::Round(($SomeVHDInfo .FileSize/ 1Gb) ,2 ) ) + "Gb`r` n"
$log_string = $log_string + "Привязка к VM: " + $SomeVHDInfo .InSavedState + "`r` n"
$log_string = $log_string + "Смонтирован: " + $SomeVHDInfo .InUse + "`r` n"
$log_string = $log_string + "Максимальный объём файла: " + ([ System.Math] ::Round(($SomeVHDInfo .MaxInternalSize/ 1Gb) ,2 ) ) + "Gb`r` n"
$log_string = $log_string + "Тип образа: " + $SomeVHDInfo .TypeName + "`r` n"
# Проводим валидацию VHD ВМ
$TestVHD = "VHD: " + $element .Name + ": " + (Test-VHD -VHDPaths ($InfoDir + "\T oday\" + $VM + " \Virtual Hard Disks\" + $element .Name) )
$log_string = $log_string + $TestVHD + "`r` n"
$MailBody = $Mailbody + $TestVHD + "`r` n"
}
}
else # Вдруг VHD нет в этом каталоге О_О
{
$log_string = $log_string + "*.VHD для $VM не найдены.`r` n"
$MailBody = $MailBody + "*.VHD для $VM не найдены.`r` n"
}
}
}
else # ВМ не найдена на сервере
{
$log_string = $log_string +
$MailBody = $MailBody + "Виртуальная машина $VM не найдена. Процесс завершён.`r` n"
}

$log_string = $log_string + (Get-Date -Format "(yyyy-MM-dd) hh:mm:ss" ) + " Работа над $VM окончена.`r` n"
$log_string = $log_string + "======================== `r` n"

$MailSubject = "$VM export report."
# Отправляем письмо:
SendEmail -Subject $MailSubject -Body $MailBody -Priority $MailPriority

#net use R: /delete /y Данную функцию запускать не обязательно.

Вот, собственно, весь скрипт. Для работы с кластером - создаем для каждой ВМ задание на каждой Ноде кластера с минутным отличием в запуске, потому как скрипт с любой ноды обращается к одному и тому же лог-файлу и в одно и то же время может быть коллизия по доступу. Если на одной из нод кластера ВМ не будет, скрипт выдаст сообщение, что ВМ не найдена и завершит работу.
Скрипт внедрён уже на нескольких предприятиях с незначительным подпиливанием под конкретного заказчика. Все довольны, чего и Вам желаю.

Переустановка операционной системы или смена компьютерного устройства не означает конец работы с установленными гостевыми ОС в программе . Правда, исключением может быть случай, когда файлы жёстких дисков виртуальных машин находятся на системном диске компьютера, а саму систему невозможно восстановить после критического сбоя. Чтобы продолжить работу с имеющимися гостевыми ОС с сохранением их состояния, но уже на переустановленной Windows или на другом компьютере, в арсенале программы VirtualBox имеется инструмент экспорта конфигурации существующих виртуальных машин для его импорта в дальнейшем. Другая возможность продолжить работу с существующими гостевыми ОС — добавление новых виртуальных машин на базе имеющихся файлов их жёстких дисков. Все эти процессы и рассмотрим ниже.

1. Универсальный формат файла экспорта виртуальных машин

Конфигурация существующей виртуальной машины VirtualBox экспортируется в файл «.ova ». Файл «.ova» (Open Virtual Appliance) – это универсальный файл хранения данных виртуальной машины, который можно использовать в различных программах для виртуализации операционных систем. Это , . Экспортированная в этот файл виртуальная машина может быть затем импортирована как программой VirtualBox, так и VMware Workstation или Microsoft Hyper-V в рамках поддерживаемых этими программами гостевых систем.

Рассмотрим детальнее процесс экспорта и импорта конфигурации виртуальной машины VirtualBox в основной системе Windows.

2. Экспорт виртуальной машины

В окне VirtualBox выбираем конкретную виртуальную машину для экспорта, жмём меню «Файл » и выбираем «Экспорт конфигураций ».

В следующем окне жмём «Next ».

Экспорт конфигурации возможен только при выключенном состоянии виртуальной машины, и, если она приостановлена, VirtualBox предложит сбросить сохранённое состояние для продолжения процесса.

Далее появится окно параметров экспорта. Формат оставляем предустановленный, а вот папку файла экспорта «.ova», по умолчанию располагающуюся на системном диске, меняем на папку, например, как в нашем случае, специально созданную на несистемном диске D.

В следующем окне жмём «Экспорт ».

Дожидаемся завершения процесса экспорта.

Экспортированная виртуальная машина в файле «.ova» будет находиться в указанной папке, откуда её можно переместить на другой компьютер, съёмный носитель, в облачный сервис. Или можно оставить, как в нашем случае, на месте — на несистемном диске, где этот файл будет храниться во время переустановки Windows.

3. Импорт виртуальной машины

После инсталляции VirtualBox на новой Windows или на другом компьютере открываем программу и в меню «Файл » выбираем «Импорт конфигураций ».

В следующем окне указываем путь к файлу «.ova» с экспортированной виртуальной машиной. Жмём «Next ».

В самом конце окна будет указан путь, куда после импорта будет помещён файл жёсткого диска «.vdi». По умолчанию это системный диск, и чтобы не захламлять его и предотвратить потерю файла «.vdi» в случае сбоя системы, можно сменить путь, указав папку хранения на несистемном диске. Жмём «Импорт ».

Дожидаемся завершения процесса импорта.

После чего увидим импортированную виртуальную машину в списке машин VirtualBox. Что и осталось теперь, так это запустить машину.

Гостевая ОС запустится точно в том состоянии, в котором она была на момент экспорта виртуальной машины.

4. Добавление новой машины из существующего файла жёсткого диска VirtualBox

Альтернатива экспорту и импорту виртуальной машины – добавление новой машины из существующего файла жёсткого диска VirtualBox «.vdi ». Этот способ ничем не уступает процедуре экспорта и импорта виртуальной машины. Более того, если файл «.vdi» расположен на несистемном диске, при переустановке Windows на физическом компьютере можно даже и не тратить время на экспорт конфигурации. Хранящийся же на системном диске файл «.vdi» можем просто перенести на несистемный диск. По большому счёту, процесс экспорта и импорта виртуальной машины выигрывает только экономией занимаемого места файлом «.ova». Например, в нашем случае проводился экспорт виртуальной машины с установленной гостевой ОС Windows ХР, и вес файла «.ova» на выходе составил 4,11 Гб. В то время как размер файла жёсткого диска «.vdi» этой же системы составляет 10 Гб .

Такая выгода в экономии места может быть актуальной в случае переноса виртуальной машины на другой компьютер с помощью облачных хранилищ или съёмного носителя с ограниченным размером. В нашем случае, когда речь идёт именно о переустановке Windows, вполне подойдёт способ добавления новой машины из существующего файла жёсткого диска VirtualBox.

Запускаем VirtualBox и жмём «Создать ».

Задаём показатель оперативной памяти. Жмём «Next ».

В окне выбора жёсткого диска выбираем параметр «Использовать существующий жёсткий диск », с помощью кнопки обзора указываем путь хранения файла «.vdi». Жмём «Создать ».

Виртуальная машина появится в списке VirtualBox, можем её запускать.

Гостевая ОС запустится ровно в том состоянии, в котором была сохранена в последний раз работы с ней.

Добавление новой виртуальной машины из существующего файла «.vdi» – это также способ перенести файл жёсткого диска гостевой ОС на несистемный диск компьютера, если изначально таковой был создан на системном диске, и со временем занимаемое им место стало снижать производительность системы. Для этого необходимо удалить виртуальную машину из списка в главном окне VirtualBox. На выбранной машине вызываем контекстное меню и выбираем «Удалить ».

Затем в появившемся окошке жмём «Убрать из списка ».

После этого можно искать файл жёсткого диска «.vdi» на системном диске (как правило, по умолчанию это путь C:\Users\Имя_пользователя\VirtualBox VMs ), переносить его на несистемный диск и добавлять виртуальную машину заново.

Помогла ли Вам данная статья?

Windows Server 2008 Hyper-V не имеет опции для создания клона существующей виртуальной машины. Однако, это не ознаечает что это невозможно или что это сложно сделать. В действительности такая возможность есть и она довольно проста в применении.

Существуют два способа клонировать виртуальную машину в Hyper-V.

1. Использовать функцию эскпорта/импорта виртуальных машин
2. Скопировать виртуальный жесткий диск и создать новую виртуальную машину с этим диском.

1. Используем функцию эспорта/импорта в Hyper-V

Данный способ наиболее простой и доступный путь клонировать виртуальную машину.

Экспорт виртуальной машины

Находясь Hyper-V Manager, нажмите правой кнопкой на нужную виртуальную машину и выберите Export. Укажите куда будет импортирована виртуальная машина. При этом важно знать, что когда вы будете импортировать виртуальную машину обратно, само местоположение виртуальной машины и её виртуального диска будут указывать на данное место.

Во время экпорта вы можете выбрать что экспортировать: целиком виртуальную машину или только конфигурацию виртуальной машины.

Импорт виртуальной машины

Для импорта виртуальной машины нажмите “Import Virtual Machine” из меню Action . Укажите директорию с экспортированной виртуальной машиной и нажмите Import.

Вадно указать именно директорию экспортированной машины, а не одну из её поддиректорий.

После того как виртуальная машина импортирована, вы можете изменить её настройки, к примеру IP адрес, имя хоста и т.д.

2. Копируем VHD и создаем новую виртуальную машину

Просто скопируйте VHD файл оригинальной виртуальной машины и потом создайте новую виртуальную машину, но в качестве жесткого диска укажите скопированный файл. В меню, когды вы дойдете до окна “Connect Virtual Hard Disk” , выберите опцию “Use an existing virtual Hard Disk” и укажите его местоположение.

Постовой

Китайское - не всегда значит плохое. Здесь продаются китайские фронтальные погрузчики по ценам завода-производителя.

Нужен забор для дачи, коттеджа, дома? Обращайтесь в "Профзабор" - изготовление заборов на заказ из любых материалов.



Загрузка...