Pull to refresh

Comments 12

Ну вот как всегда на самом интересном месте!
Спасибо, как раз сейчас с гипер-в играюсь.
Продолжение планируется на следующей неделе, там много интересного :)
Не холивара ради, а полноты картины для:
Microsoft Hyper-V Server не нужно покупать, он бесплатен.
У VMware тоже есть бесплатная версия — ESXi.
Миграция физических машин в виртуальные происходит очень легко и быстро при помощи простенькой утилиты Disk2VHD
А для этого есть VMware Converter.
Согласен полностью. Также бесплатны некоторые версии Citrix Xen Server, KVM, Orcale VirtualBox и т.д. И у каждого есть свои инструменты для конвертирования, миграции и управления. Просто обычно, когда человек слышит про операционную систему от Microsoft — предполагает, что она стоит денег. Тут же исключение. Я не имел в виду, что это отличает Hyper-V от других гипервизоров, просто выделил это в отдельный плюс.
А есть ли конвертер их Xen в Hyper-V? Нашел только через «одно место», а точнее сначала в vmware, а потом оттуда в hyper-v…
Диск конвертируется из любой системы (даже из невиртуализированной) при помощи Disk2VHD (https://technet.microsoft.com/en-us/library/ee656415.aspx) — он запускается с самой виртуалке, на выходе получая готовый VHD файл, который можно сразу использовать в Hyper-V. Средств переноса настроек машины (CPU, RAM, сеть) я навскидку назвать не могу, на моей практике было проще выставлять их вручную или при помощи скрипта Powershell. Сеть у Xen и Hyper-V в любом случае устроена по разному и поэтому придётся подключать к новому для виртуалки виртуальному коммутатору.
А в случае если ОС не Windows, утилита «отдыхает»?
Да, утилита сделана Microsoft для Windows. В статье я рассматриваю связку Hyper-V, Vagrant и Windows в качестве гостевых машин, в первую очередь в плане разворачивания инфраструктуры из подготовленных шаблонов (об этом будет вторая часть как раз), а не миграция имеющейся. Изначально задачи совершенно другие. Так что другие операционки и гипервизоры несколько выходят за её рамки.
Недавно понадобилось отработать автосоздание нного количества одинаковых виртуалок на хосте Hyper-V
Среди кучи интернет ссылок внятный скрипт найти не удалось, так что наваял с помощью get-help вечерком сам:

Использование, выполняется на локальном хосте:
powershell.exe .\create-vm.ps1 %VM-Name%
create-vm.ps1
# Created 2015-02-03
# Sergey S. Kovalev
# tested at Windows Server 2012 R2 Hyper-V

# ПЕРЕМЕННЫЕ
#Имя виртуальной машины, должно быть уникальным.
$GuestVM = $args[0]
echo «Creating $GuestVM»

#Путь где будут располагаться виртуальные машины с дисками
$HPVPath = «E:\Hyper-V\»
#Путь до родительского образа sysprep
$ParentVHD = «Z:\Software\Windows-Server-2012-R2-Std-v2015.vhd»

$VMMemorySize = 3GB
#Задаем размер второго жесткого диска (опционально)
#$VMHDDSize = «100GB»

#Создаем VM
new-vm $GuestVM -path $HPVPath

#Конфигурируем количество ядер (по умолчанию 1)
Set-VMProcessor $GuestVM -Count 2

#Конфигурируем количество памяти (по умолчанию 512)
Set-VMMemory $GuestVM -DynamicMemoryEnabled $true -MinimumBytes 256MB -StartupBytes 512MB -MaximumBytes $VMMemorySize -Buffer 25

#Подключаем сетевой адаптер к коммутатору хоста
get-vmswitch | Connect-VMNetworkAdapter -vmname $GuestVM

#Создаем жесткий диск — диференс от родительского диска
new-vhd -parentpath $ParentVHD -path $HPVPath$GuestVM"\"$GuestVM" — Hard Drive 1 Diff.vhd" -Differencing

#Подключаем к виртуальной машине диск
add-vmharddiskdrive -vmname $GuestVM -controllertype ide -ControllerNumber 0 -ControllerLocation 0 -path $HPVPath$GuestVM"\"$GuestVM" — Hard Drive 1 Diff.vhd"

#Включаем гостевой сервис интеграции
Enable-VMIntegrationService -name «Guest Service Interface» -vmname $GuestVM

# Опционально: подключение второго динамического жесткого диска
# Создаем
#New-VHD -Path $HPVPath$GuestVM"\"$GuestVM" — Hard Drive 2.vhd" -SizeBytes $VMHDDSize
# Подключаем
#add-vmharddiskdrive -vmname $GuestVM -controllertype ide -ControllerNumber 0 -ControllerLocation 1 -path $HPVPath$GuestVM"\"$GuestVM" — Hard Drive 2.vhd"

Общая идеология:
Создается ВМ как дифференс от образа развертывания.
Экономия на месте за счет родительского диска, который желательно размещать на ssd.

Локальные задачи (например оперативное развертывание виртуалки на десктопной Windows 10 для быстрого тестирования с последующим удалением вполне подходит :) )
Интересно, напоминает import-vm.ps1 Вагранта. Однако от идеологии дифференциальных дисков мы отказались — в итоге разница разрастается до размеров полноценной виртуалки, и остаётся зависимость от родительского диска, что мешает при миграции и репликации между гипервизорами, особенно кластеризованными. Конечно, в итоге можно от родительского отказаться костылём через Powershell, но в мы решили в результате просто их не использовать, по крайней мере за пределами локалльных машин разработчиков.

А для локальных тестов с небольшими изменениями — очень даже интересно.
UFO just landed and posted this here
При помощи Vagrant можно одной командой поднять целое окружение, где будет устанавливаться актуальные версии софта (как своего, так и стороннего). Обычным клонированием шаблона вы не получите провижининга: например, ваш шаблон уже через пару недель устареет только из-за того, что появятся новые обновления в Windows Update, поэтому на мошину надо всё равно заходить, обновлять, настраивать. Тут же, поднимая несколько машин, можно автоматически назначать им IP адреса, хостнеймы, список установленного софта и т.д. в зависимости от роли. Да и для разработчиков в использовании Vagrant проще.

Иными словами — намного шире круг решаемых задач. Копирование удобно для своих целей, мы раньше по сути так и делали, но спектр применения очень узок (впрочем, его вполне может хватать под ваши сценарии работы).
Sign up to leave a comment.

Articles