Експорт та імпорт віртуальних машин в Windows Server 2012 R2.
Можливість отримати точну копію віртуальної машини дуже зручно використовувати в процесі розробки, тестування або траблшутінга. У Windows Server 2012 R2 з'явилося кілька нових можливостей, пов'язаних з експортом \ імпортом ВМ, про які ми і поговоримо.
Експорт
Раніше для того, щоб експортувати ВМ штатними засобами, попередньо необхідно було її зупинити.У Windows Server 2012 R2 можна експортувати запущені віртуальні машини "наживу", прямо в процесі роботи. Для експорту відкриваємо Hyper-V Manager, вибираємо потрібну ВМ, натискаємо на ній правою клавішею миші і в контекстному меню вибираємо «Export».
Вказуємо розташування, в яке буде проводитися експорт і тиснемо «Export».
Також для експорту ВМ з консолі PowerShell можна скористатися такою командою:
Export-VM -Name SC3 -Path "D: \ Hyper-V \ SC3Clone"
Експорт знімка ВМ
Раніше для того, щоб експортувати знімок (checkpoint), треба було зробити повний експорт ВМ разом з усіма знімками, імпортувати машину і тільки потім відкотиться на потрібний знімок.У Windows Server 2012 R2 з'явилася можливість експортувати тільки конкретний знімок віртуальної машини. Для цього вибираємо потрібну ВМ, переходимо в поле «Checkpoints», натискаємо правою клавішею на потрібному знімку, вибираємо «Export» і вказуємо, куди зберігати файли.
І те ж саме за допомогою PowerShell.Виводимо список знімків для зазначеної ВМ:
Get-VMSnapshot -VMName SC3
Вибираємо потрібний знімок і експортуємо його, наприклад так:
Export-VMSnapshot -Name ' SC3 - (2/25/2014 - 4:03:55 PM) '-VMName SC3 -Path D: \ Hyper-V
Примітка. При створенні знімка як його імені за замовчуванням береться ім'я ВМ і час створення.Для зручності експорту знімків можна давати осудні імена відразу при створенні, за допомогою команди Checkpoint-VM -SnapshotName. Також знімки можна перейменувати командою Rename-VMSnapshot, або з оснащення Hyper-V Manager.
Імпорт
В імпорті особливих змін немає. Відкриваємо Hyper-V Manager, натискаємо правою клавішею на імені хоста і в контекстному меню вибираємо «Import Virtual Machine».
Запускається майстер імпорту віртуальних машин. У першому вікні тиснемо Next>
Потім вказуємо розташування папки з файлами імпортованої ВМ.
Вибираємо машину для імпорту (у зазначеній папці можуть бути файли декількох ВМ).
Вибираємо, яким чином робити імпорт.Відповідно, є три варіанти:
1) Register the virtual machine in-place - зареєструвати ВМ за місцем з тим-же ID;
2) Restore the virtual machine - скопіювати ВМ в іншу папку, ID залишити без зміни;
3) Copy the virtual machine - скопіювати ВМ в іншу папку і згенерувати для неї новий ID.
Зверніть увагу, що у кожної ВМ на хості Hyper-V є унікальний ідентифікатор (ID), т.е. на одному хості не може бути двох ВМ з однаковим ID. Вибір варіанту залежить від ситуації, так якщо ви розвертаєте скопійоване машину на одному хості з оригіналом, то підійде тільки копіювання з новим ID.
Далі, в залежності від обраного варіанту імпорту або спочатку вказуємо папки для копіювання файлів конфігурації, знімків
і віртуальних дисків ВМ.
Або просто переглядаємо сумарну інформацію і тиснемо «Finish».
Імпорт з допомогою PowerShell. Для того, щоб просто зареєструвати ВМ за місцем, треба виконати команду:
Import-VM -Path 'D: \ Hyper-V \ SC3 \ Virtual Machines \ 4e782fc5-8a82-4311-8627-b69ab2e894f5.xml '
В параметрі Path вказуємо розташування xml-файлу конфігурації.Для копіювання ВМ в інше місце з тим же ID скористаємося параметром Copy, а для генерації нового ідентифікатора використовуємо параметр GenerateNewId:
Import-VM -Path 'D: \ Hyper-V \ SC3 \ Virtual Machines \ 4e782fc5- 8a82-4311-8627-b69ab2e894f5.xml '-Copy -GenerateNewId
Перевірка на сумісність
Іноді при перенесенні ВМ на інший хост можуть виникнути проблеми із сумісністю.У цьому випадку просто імпортувати машину не вийде, при спробі буде видана помилка. Для з'ясування причин несумісності можна скористатися Командлети Compare-VM. Ось типовий приклад - імпорт не вдався, в повідомленні фігурує помилка в конфігурації. Спробуємо уточнити, в чому проблема, для чого виведемо звіт про сумісність командою:
Compare-VM -Path 'D: \ SC3 \ Virtual Machines \ 4e782fc5-8a82-4311-8627-b69ab2e894f5.xml '
Як видно зі звіту, в рядку Incompatibilities варто код помилки, що означає проблему з сумісністю.
Для уточнення проблеми ще раз виведемо звіт про сумісність і помістимо його в змінну:
$ report = Compare-VM -Path 'D: \ SC3 \ Virtual Machines \ 4e782fc5- 8a82-4311-8627-b69ab2e894f5.xml '
Потім винесемо причину несумісності:
$ report.Incompatibilities | ft -AutoSize
Як видно з повідомлення, проблема у відсутності на даному хості віртуального свіча з ім'ям Private. Цей свіч прописаний в конфігурації ВМ, і для успішного імпорту його треба звідти видалити. Зробимо це за допомогою команди:
$ report.Incompatibilities [0] .Source | Disconnect-VMNetworkAdapter
Потім перевіримо ще раз сумісність:
Compare-VM -CompatibilityReport $ report
І оскільки проблема усунена, то імпортуємо машину командою:
Import-VM -CompatibilityReport $ report
висновок
На закінчення нагадаю про те, що при експорті ми отримуємо точну копію віртуальної машини, включаючи ідентифікатор безпеки (SID), ім'я та IP-адреса (при статичній адресації).Тому, з метою уникнення конфліктів, при розгортанні такої машини треба бути вкрай обережним, і робити це бажано в ізольованому середовищі, особливо якщо віртуальна машина є членом домену AD.
На цей раз все, а в наступній статті ми розглянемо динамічне клонування віртуальних машин за допомогою Virtual Machine Manager.П>.