PowerShell для Hyper-V
Чи потрібна графіка для управління виртуализацией
У багатьох компаніях віртуалізація міцно закріпилася в ІТ-структуру. Як засіб оптимізації використання обчислювальних потужностей, а саме максимального завантаження наявних фізичних серверів, віртуалізація широко поширилася в середовищі великого і середнього бізнесу.
Однією з найбільш доступних платформ віртуалізації на сьогоднішній день є платформа Microsoft Hyper-V. Зараз вже використовується третя версія системи віртуалізації, яка може бути розгорнута як у безкоштовній редакції - Hyper-V Server 2012 R2, так і в рамках платних редакцій - Windows Server 2012 R2 Standard / Datacenter.
У разі використання Hyper-V Server 2012 R2 необхідно окремо ліцензувати тільки операційні системи і програмне забезпечення на самих віртуальних машинах (за винятком безкоштовно розповсюджуються операційних систем і програмного забезпечення). При цьому в разі покупки Standard або Datacenter редакції Windows Server 2012 R2 необхідність і в цьому частково або повністю відпадає (по відношенню ліцензування серверних платформ Windows).
Для управління Hyper-V можна використовувати графічну консоль управління Hyper-V Manager, яку, в разі використання Core режиму установки Windows Server 2012 R2, можна запускати на робочій станції під управлінням Windows 8.1
Це, безумовно, зручне рішення для компаній середнього сегмента ринку з простою ІТ-інфраструктурою, але, коли з'являються вимоги відмовостійкості і високої доступності, тобто в інфраструктурі організовуються кластери і з'являється велика кількість серверів віртуалізації, на яких потрібно оперативно запустити велику кількість однотипних віртуальних машин , наприклад, з заздалегідь приготованого шаблону, стандартну оснащення Hyper-V Manager використовувати стає незручно.
Незручно не тому що розробники створили недружній інтерфейс, а тому як виконувати однотипні прості дії стає нудно і втомлює, так як процес створення нових або імпорту існуючих віртуальних машин перетворюється на рутину. Можна, безумовно, скористатися таким продуктом як System Center Virtual Machine Manager 2012 R2, який в першу чергу і призначений для управління великою кількістю як окремих серверів віртуалізації, так і кластерами. Але даний продукт зажадає додаткових витрат на покупку System Center 2012 R2, до складу якого і входить VMM.
Для того щоб відмовитися від цієї рутини, вивільнити ресурси і підвищити ефективність роботи ІТ і при цьому обійтися без додаткових витрат у Windows Server 2012 R2 вбудований модуль Hyper-V для PowerShell.
Для багатьох, в тому числі і досвідчених адміністраторів, автоматизація типових процедур через PowerShell стає непростим завданням, а створення віртуальних машин без графічної оболонки може взагалі привести в ступор. Але це тільки на перший погляд здається складним.
За допомогою наріжного командлет PowerShell під назвою Get-Help (рисунок 1) можна отримати абсолютно всю необхідну інформацію для автоматизації своєї нагальною завдання.
Малюнок 1 Довідка в PowerShell
Усередині довідки можна побачити повний набір параметрів, який використовує командлет, а також подивитися набори прикладів, які допомагають розібратися в синтаксисі командлет і визначитися з послідовністю введення.
Довідка PowerShell може бути виведена стисло або докладно. Основна частина довідкової інформації розміщена в мережі на серверах компанії Microsoft і при бажанні може бути скачав звідти, якщо до Командлети Get-Help додати параметр -Online, але також можна скористатися локальної довідка, де подано основні відомості по найбільш популярним Командлети, але з обмеженою кількістю прикладів .
Що потрібно знати про віртуальній машині, щоб створити новий екземпляр в системі? Ім'я (ідентифікатор), місце розташування файлів, розмір виділеної оперативної пам'яті, підключення до мережі та місце розташування віртуального жорсткого диска. Як це задати в PowerShell? Досить просто! На малюнку 2 приведені параметри командлета New-Vm.
Малюнок 2 Створення віртуальної машини
У Hyper-V 3, який з'явився разом з Windows Server 2012 R2, з'являється додатковий параметр Generation (Покоління), який визначає функціональність віртуальної машини. Якщо віртуальні машини Покоління 1 завантажувалися з використанням програмної BIOS, підключали диски через IDE-контролер і використовували застарілий мережевий адаптер, то машини нового Покоління 2 працюють з UEFI, дозволяючи реалізувати безпечну завантаження, підключають VHDX диски через SCSI-контролер, не підтримуючи тепер IDE і VHD, але дозволяючи до працюючої віртуальної машині змонтувати новий DVD-привід; також віртуальні машини нового покоління підтримують нову версію програмного мережевого адаптера, що дозволяє реалізувати завантаження PXE.
Нове покоління віртуальних машин дозволяє серйозно прискорити завантаження гостьової операційної системи і розширити можливості управління у віртуальному середовищі, але, на жаль, не всі операційні системи можуть завантажитися на віртуальних машинах Покоління 2 а тільки 64-розрядні версії Windows 8 і Windows 8.1, а також Windows Server 2012 іWindows Server 2012 R2. Windows 7 і Windows Server 2008 R2 зможуть працювати тільки на машинах Покоління 1. Справа в тому, що нові віртуальні машини не використовують програмований контролер переривань (PIC), який необхідний для попередніх поколінь операційних систем.
Звичайно ж створенням різних віртуальних машин можливості PowerShell не обмежуються. Серед 178 командлетів модуля Hyper-V в PowerShell (рисунок 3) можна знайти команди для додавання дисків, мережевих адаптерів, комутаторів, контролерів та інших корисних для віртуальних машин об'єктів, також можна робити снапшоти віртуальних машин, змінювати мережеві інтерфейси, видаляти і імпортувати набори віртуальних машин різних поколінь.
Малюнок 3 - Частина командлетів модуля Hyper-V
PowerShell з модулем Hyper-V може стати вірним помічником і незамінним інструментом для адміністрування віртуального середовища, прискорюючи процеси управління і підвищуючи ефективність роботи ІТ, а докладніше про можливості Hyper-V v3.0 і застосування PowerShell у віртуальному середовищі Hyper-V можна дізнатися на курсі 20409: Віртуалізація серверів з Windows Server Hyper-V і System Center в УЦ «Еврика»
Що потрібно знати про віртуальній машині, щоб створити новий екземпляр в системі?Як це задати в PowerShell?