Віртуальні машини в Azure
Віртуальні машини Azure - це один з декількох типів обчислювальних ресурсів на запит, масштабованих обчислювальних ресурсів, які пропонує Azure. Зазвичай віртуальну машину вибирають, коли потрібен суворіший контроль за обчислювальним середовищем, ніж в інших варіантах. У цій статті містяться відомості про те, що слід враховувати перед створенням віртуальної машини, а також інструкції щодо створення віртуальної машини та управління нею.
Віртуальна машина Azure надає гнучкі можливості віртуалізації без необхідності купувати та обслуговувати фізичне обладнання, на якому вона виконується. Але вам, як і раніше, необхідно обслуговувати віртуальну машину, виконуючи різні завдання, такі як налаштування, встановлення виправлень та програмного забезпечення, що працює на віртуальній машині.
Віртуальні машини Azure можна використовувати різними способами. Деякі приклади:
- Розробка та тестування. Віртуальні машини Azure забезпечують швидкий та простий спосіб створення комп'ютера з певними конфігураціями, необхідними для написання коду та тестування програми.
- Програми у хмарі. Оскільки попит на програму може змінюватися, з економічного погляду розумно запускати його на віртуальній машині в Azure. Ви платите за додаткові віртуальні машини, якщо вони вам потрібні, та відключаєте їх, якщо вони не потрібні.
- Розширений центр обробки даних. Віртуальні машини у віртуальній мережі Azure можна легко підключити до корпоративної мережі.
Ви можете збільшити масштаб віртуальних машин, що використовуються програмою, а також розгорнути додаткові віртуальні машини відповідно до вимог.
Про що слід подумати перед створенням віртуальної машини?
При створенні інфраструктури додатків в Azure завжди існує безліч рекомендацій щодо проектування. Перед початком роботи слід подумати про такі аспекти для віртуальної машини:
- Імена ресурсів
- розташування, у якому зберігаються ресурси;
- розмір віртуальної машини;
- максимальна кількість віртуальних машин, які можна створити;
- операційна система віртуальної машини;
- конфігурація віртуальної машини після запуску;
- пов'язані ресурси, необхідні віртуальній машині.
Частини віртуальної машини та як вони виставляються
Під час створення віртуальної машини ви також створюєте ресурси, які підтримують віртуальну машину. Ці ресурси поставляються із власними витратами, які слід враховувати.
Ресурси за промовчанням, що підтримують віртуальну машину і як вони виставляються, докладно описані в таблиці.
| Ресурс |
Description |
Собівартість |
| Віртуальна мережа |
Надання віртуальній машині можливості обміну даними з іншими ресурсами |
Ціни на Віртуальну мережу |
| Карта інтерфейсу віртуальної мережі (мережева карта) |
Підключення до віртуальної мережі |
Немає окремих витрат на мережеві адаптери. Однак існує обмеження на кількість мережних адаптерів, які можна використовувати на основі розміру віртуальної машини. Розмір віртуальної машини відповідним чином та посилання на ціну на віртуальну машину. |
| Приватна IP-адреса і іноді загальнодоступна IP-адреса. |
Обмін даними та обмін даними в мережі та із зовнішніми мережами |
Ціни на IP-адреси |
| Група безпеки мережі (NSG) |
Для управління мережевим трафіком у віртуальну машину та з неї. Наприклад, може знадобитися відкрити порт 22 для доступу до SSH, але може знадобитися заблокувати трафік до порту 80. Блокування та дозвіл доступу до порту здійснюється через групу безпеки мережі. |
В Azure не стягується додаткова плата за групи безпеки мережі. |
| Диск ОС та, можливо, окремі диски для даних. |
Рекомендується зберегти дані на окремому диску від операційної системи, якщо у вас коли-небудь стався збій віртуальної машини, ви можете вимкнути диск даних та підключити його до нової віртуальної машини. |
Усі нові віртуальні машини мають диск операційної системи та локальний диск. Azure не стягує плати за локальне сховище дисків. Диск операційної системи, який зазвичай становить 127 ГіБ, але менший для деяких образів, стягується за звичайною швидкістю для дисків. Ви можете переглянути вартість підключення дисків на основі SSD та рівня "Стандартний" на віртуальних машинах на сторінці цін на керовані диски. |
| У деяких випадках ліцензія на ОС |
Надання запусків віртуальної машини для запуску ОС |
Вартість залежить від кількості ядер на віртуальній машині, тому розмір віртуальної машини має бути відповідним чином. Витрати можна скоротити за допомогою Переваги гібридного використання Azure. |
Ви також можете створити та зберегти відкриті та закриті ключі SSH Azure. Azure використовує відкритий ключ у віртуальній машині та використовує закритий ключ при доступі до віртуальної машини за протоколом SSH. В іншому випадку вам знадобиться ім'я користувача та пароль.
За умовчанням ці ресурси створюються у тій групі ресурсів, як і віртуальна машина.
Осередки
У світі є кілька географічних регіонів, де можна створювати ресурси Azure. Як правило, при створенні віртуальної машини регіон називається розташуванням. Для віртуальної машини розташування вказує, де зберігаються віртуальні жорсткі диски.
У цій таблиці наведено деякі способи, за допомогою яких можна отримати список доступних положень.
| Метод |
Description |
| Портал Azure |
Виберіть розташування зі списку під час створення віртуальної машини. |
| Azure PowerShell |
Використовуйте команду Get-AzLocation. |
| REST API |
Використовуйте операцію виведення списку розташування. |
| Azure CLI |
Використовуйте операцію az account list-locations. |
Availability
Існує кілька варіантів керування доступністю віртуальних машин у Azure.
- Зони доступності - Це фізично розділені розташування в межах одного регіону Azure. Зони доступності гарантують підключення віртуальної машини принаймні до одного екземпляра принаймні 99,99 % часу, якщо в одному регіоні Azure розгорнуто два або Зони доступності більше екземпляра.
- Масштабовані набори віртуальних машин дозволяють створювати групу віртуальних машин з балансуванням навантаження та керувати ними. Число екземплярів віртуальних машин може автоматично збільшуватися або зменшуватися залежно від попиту або за певним розкладом. Масштабовані набори забезпечують високий рівень доступності додатків і дозволяють централізувати управління, налаштування та оновлення великої кількості віртуальних машин.Віртуальні машини у масштабованому наборі можна також розгорнути в декількох зонах доступності, в одній зоні доступності або в регіоні.
Розміри та ціни
Розмір віртуальної машини, що використовується, залежить від робочого навантаження, яке потрібно виконати. Пізніше вибраний розмір визначає різні фактори, наприклад, обчислювальну потужність, пам'ять, обсяг сховища і пропускну здатність. Azure пропонує широкий спектр розмірів для підтримки різних варіантів використання.
Azure стягує погодинну оплату на основі розміру та операційної системи віртуальної машини. При частковому використанні Azure стягує плату лише за використані хвилини. Плата за використання сховища стягується окремо.
Загальні обмеження ядра віртуальної машини
Для передплати Azure передбачена квота за замовчуванням, від якої залежить можливість розгортання великої кількості віртуальних машин для проекту. Поточне обмеження кожної підписки становить 20 ядер віртуальної машини у кожному регіоні. Щоб збільшити квоту, слід надіслати відповідний запит до служби підтримки.
Керовані диски
Керовані диски обробляє служба сховища Azure створення облікового запису та керування ними у фоновому режимі та гарантує, що вам не потрібно турбуватися про обмеження масштабованості облікового запису зберігання. Вам необхідно вказати розмір диска та рівень продуктивності ("Стандартний" або "Преміум"), а створення та керування Azure бере на себе. При додаванні дисків або масштабуванні віртуальної машини не потрібно турбуватися про використовуване сховище. Щоб створити віртуальні машини з керованими дисками ОС та даних, використовуйте інтерфейс командного рядка Azure або портал Azure.Якщо у вас є віртуальні машини з некерованими дисками, можна перетворити віртуальні машини для архівації за допомогою керованих дисків.
Ви також можете керувати образами користувача в одному обліковому записі зберігання на кожний регіон Azure і використовувати їх для створення сотень віртуальних машин в одній підписці.
Дистрибутиви
Корпорація Майкрософт підтримує Azure різні дистрибутиви Linux і Windows Доступні дистрибутиви можна знайти в Marketplace, портал Azure або запити результатів за допомогою ІНТЕРФЕЙСУ командного рядка, PowerShell і REST API.
У цій таблиці вказано, як знайти інформацію про образ.
| Метод |
Description |
| Портал Azure |
При виборі образа значення задаються автоматично. |
| Azure PowerShell |
Get-AzVMImagePublisher. location вказує розташування. Get-AzVMImageOffer. location вказує розташування, publisherName - Ім'я видавця. Get-AzVMImageSku. location вказує розташування, publisherName - Ім'я видавця, offerName - Ім'я пропозиції. |
| Інтерфейси REST API |
Отримання списку видавців образів Отримання списку пропозицій для образу Отримання списку SKU для образу |
| Azure CLI |
az vm image list-publishers. --location вказує розташування. az vm image list-offers. --location вказує розташування, --publisher - Ім'я видавця. az vm image list-skus. --location вказує розташування, --publisher - Ім'я видавця, а --offer - Ім'я пропозиції. |
Корпорація Майкрософт тісно співпрацює з партнерами, щоб гарантувати оновлення та оптимізацію доступних образів для середовища виконання Azure. Додаткові відомості про пропозиції партнерів Azure див. в Azure Marketplace
Cloud-init
підтримка Azure для cloud-init у більшості дистрибутивів Linux, які підтримують його. Ми активно працюємо з нашими партнерами Linux, щоб зробити образи за допомогою cloud-init доступними в Azure Marketplace. Ці образи дозволяють легко працювати з розгортаннями і конфігураціями cloud-init з віртуальними машинами та наборами віртуальних машин, що масштабуються.
Для отримання додаткових відомостей див. у статті Про використання cloud-init на віртуальних машинах Azure Linux.
Сховище
Мережа
Переривання у роботі служб
Корпорація Майкрософт докладає всіх зусиль для того, щоб наші служби завжди були доступними. Іноді за незалежними від нас обставинами відбуваються незаплановані порушення роботи служб.
Корпорація Майкрософт надає угоди про рівень обслуговування (SLA) для своїх служб, в яких гарантується їх час безперебійної роботи та доступність. Угоду про рівень обслуговування для окремих служб Azure можна знайти у розділі Угоди про рівень обслуговування Azure.
У платформі Azure вже є безліч вбудованих можливостей для підтримки високодоступних програм. Для отримання додаткових відомостей про ці служби див. у статті Аварійне відновлення та висока доступність для програм на платформі Azure.
У цій статті описується дійсний сценарій аварійного відновлення, при якому через масштабне стихійне лихо або широке переривання роботи служби весь регіон виявляється схильний до збою. Це рідкісні випадки, але ви повинні підготуватись до можливості збою всього регіону.Якщо весь регіон зазнає перебої в роботі служби, то локально надлишкові копії ваших даних стають тимчасово недоступними. основний регіон не може відновитися, Azure перенаправляє всі записи DNS на геореплікований регіон.
У разі збою служби всього регіону, в якому розгорнуто програму віртуальної машини Azure, ми надаємо наступні рекомендації для віртуальних машин Azure.
Варіант 1. Ініціація відпрацювання відмови за допомогою Azure Site Recovery
Для віртуальних машин можна налаштувати службу Azure Site Recovery, яка дозволяє швидко відновити програму одним клацанням миші. відпрацювання відмови для вашої програми. Ви можете заздалегідь перевірити процедури відпрацювання відмови без впливу на робоче програму або поточну реплікацію. У разі збою основного регіону вам потрібно просто запустити відпрацювання відмови та перенести програму в цільовий регіон.
Варіант 2. Очікування відновлення
У цьому випадку вам не потрібно робити будь-які дії. Знаєте, що ми працюємо над відновленням доступності служби.
Цей варіант найкраще підходить, якщо ви не налаштували Azure Site Recovery, геонадлишкове сховище для читання або геонадлишкове сховище до збою.Якщо ви настроїли геонадлишкове сховище або геонадлишкове сховище для облікового запису зберігання, в якому зберігаються віртуальні жорсткі диски віртуальної машини (віртуальні жорсткі диски), можна виконати пошук відновлення віртуального жорсткого диска базового образу і спробувати підготувати нову віртуальну машину з неї. Цей параметр не є кращим, оскільки немає гарантій синхронізації даних, що означає, що цей параметр не гарантується для роботи.
Пам'ятайте, що у вас немає контролю над цим процесом, і це буде відбуватися тільки для порушень роботи служб на рівні регіону. Тому для забезпечення найвищого рівня доступності необхідно також використовувати інші стратегії архівації програми. Щоб отримати додаткові відомості, див. стратегії аварійного відновлення даних.
Ресурси для порушень роботи служб
- Почніть захищати програми, що працюють на віртуальних машинах Azure за допомогою Azure Site Recovery
- Щоб дізнатися більше, як реалізувати стратегію забезпечення аварійного відновлення та високого рівня доступності, перегляньте розділ Аварійне відновлення та високий рівень доступності для програм на платформі Azure.
- Можливості хмарної платформи докладно описані в технічному посібнику забезпечення безперервності бізнес-процесів Azure.
- Якщо інструкції не зрозумілі або ви хочете, щоб корпорація Майкрософт робила операції від вашого імені, зверніться до служби підтримки клієнтів.
Місце розташування даних
В Azure функція зберігання даних клієнтів в одному регіоні зараз доступна тільки для регіонів "Південно-Східна Азія (Сінгапур)" в Азіатсько-Тихоокеанському географічному регіоні та "Південна Бразилія" (штат Сан-Паулу) у географічному регіоні "Бразилія".Для всіх інших регіонів дані клієнта зберігаються у геооб'єктах. Додаткові відомості див. на цій сторінці.
Наступні кроки
Створення першої віртуальної машини
Найкращі віртуальні машини: Hyper-V, VirtualBox, VMware
Віртуальна машина - Програма, що дозволяє виділити частину ресурсів вашого ПК в окремий віртуальний комп'ютер. Він емулює всі елементи реального комп'ютера, у тому числі жорсткий диск, USB-порти та мережну картку. На «віртуальний комп'ютер» можна встановити власну операційну систему та необхідні програми. Працюватимуть вони так само, як на реальному комп'ютері. Віртуальний комп'ютер можна навіть підключити до локальної мережі або до Інтернету з власною IP-адресою.
За допомогою віртуальної машини зручно тестувати незнайомі операційні системи чи нові програми. Наприклад, можна розгорнути на віртуальному комп'ютері Linux чи MacOS та спокійно експериментувати. На реальну операційну систему комп'ютера це не вплине.
Три найкращі віртуальні машини
Сьогодні найбільш поширені три програми для створення та запуску віртуальних комп'ютерів:
- Microsoft Hyper-V
- Oracle VirtualBox
- VMware Workstation
Розглянемо їх основні відмінності, переваги та недоліки.
Віртуальна машина Microsoft Hyper-V
У всі 64-бітові версії операційних систем Windows 8 і Windows 10 вже вбудована віртуальна машина Microsoft Hyper-V. Щоб запустити її, потрібно зайти в панель керування Windows. Виберіть розділ «Увімкнення та вимкнення компонентів Windows». У віконці треба відзначити пункт «Hyper-V».
Після перезавантаження можна запустити Hyper-V через Modern Modern. Для цього найпростіше набрати «Hyper-V» у рядку пошуку:
Після цього з'явиться вікно Hyper-V:
Hyper-V створений для роботи переважно з операційними системами Microsoft. При встановленні на нього систем інших компаній не виключено проблем. Тому для тестування Linux, наприклад, краще скористатися іншою віртуальною машиною.
Безкоштовна віртуальна машина Oracle VirtualBox
VirtualBox – безкоштовна та проста в роботі віртуальна машина. Вона може запускати в якості "гостової" майже будь-яку операційну систему, у тому числі Windows, MacOS або Linux.
VirtualBox дозволяє робити знімки гостьової операційної системи. Це своєрідні "точки відновлення", до яких легко "відкотити" гостьову систему у разі збою. Створення віртуальних машин VirtualBox виконується за допомогою простого покрокового майстра. Програма підтримує роботу з мережами, тому за бажання можна дати віртуальній машині вихід в Інтернет.
Завантажити VirtualBox можна з офіційного сайту: https://www.virtualbox.org/
Віртуальна машина VMware Workstation
Якщо ви хочете розгорнути на віртуальній машині сервер, що постійно діє, краще вибрати VMware Workstation. Це платна віртуальна машина, яка підтримує роботу з Windows та Linux.
На віртуальній машині під управлінням VMware Workstation можна, наприклад, створити фаєрвол, що відокремлює мережу організації від Інтернету. Можна навіть розгорнути на ній сервер будь-якої бази даних.
Треба відзначити, що VMware Workstation має безкоштовний “молодший брат”. VMWare Player. Плеєр не вміє створювати нові віртуальні машини. Він може лише запускати машини, раніше створені у VMware Workstation. VMWare Player дуже корисний на етапах тестування нових програм.Розробник може передати замовнику створену ним систему на ознайомлення як образу віртуальної машини. Ця практика набуває все більшого поширення. Так замовнику набагато простіше вивчати нову систему, оскільки відпадає необхідність інсталювати її самостійно.
Офіційний сайт VMware Workstation: https://www.vmware.com/
Якщо ви хочете вивчити якусь нову операційну систему, найкращим вибором буде безкоштовна віртуальна машина ORACLE Virtual Box. Вона підтримує будь-які сучасні ОС та гнучко налаштовується. Якщо ж ви хочете розгорнути віртуальний сервер, що постійно діє, краще вибрати платну VMWare Workstation.
Види віртуальних машин: які бувають і навіщо потрібні
Був такий популярний фільм Крістофера Нолана «Початок» (який насправді Inception — «впровадження»). Йшлося в ньому про сон усередині сну, який відбувається теж усередині сну. І зараз ми поговоримо про віртуальні машини, які якраз є «комп'ютером усередині комп'ютера» (а всередині комп'ютера ще бувають контейнери, які теж є комп'ютерами).
Навіщо роблять такі матрьошки із вкладених реальностей, які віртуальні машини бувають і хто їх застосовує – обговоримо у цій статті.
Навіщо потрібні віртуальні машини
Віртуальна машина - це коли ви ставите на комп'ютер операційну систему і в ній запускаєте якусь програму, що імітує комп'ютер з іншої ОС, іншу апаратну платформу або іншу обчислювальну архітектуру. Це як операційна система, запущена всередині іншої операційної системи. Докладніше про віртуальні машини та те, як вони працюють, ми писали в окремій статті.
Навіщо таке взагалі потрібне?
- Хмарні сервери. Ви берете надпотужний сервер та ставите на нього софт для запуску віртуальних машин. А потім починаєте продавати доступ до ресурсів цього сервера. Клієнти отримують доступ, і їм створюється віртуальна машина з необхідною операційною системою та заданою кількістю ресурсів. Такі системи віртуалізації потрібні для бізнесу та постачальників послуг.
- Віртуальні машини окремих мов програмування. Деякі мови програмування працюють так: ви пишете код, який потім компілюється у спеціальний файл, призначений для виконання у віртуальній машині певного типу. Звучить складно, але справі зустрічається повсюдно. Наприклад, мова Java - програми транслюються у спеціальний код, призначений для виконання на віртуальній Java-машині.
- Безпека. Запустити програму всередині віртуальної машини це майже як запуск програми на окремому комп'ютері. Це означає, що у разі проблем з безпекою — наприклад, через помилку в запущеній програмі хтось отримав доступ до комп'ютера — хакер виявиться замкненим у пісочниці, з якої нема куди подітися. Зломщик «сидить» усередині віртуальної машини і не може отримати доступ до даних та програм за її межами.
- Дистрибуція ПЗ. Серверні програми не завжди просто запустити - зазвичай потрібно прописувати додаткові налаштування в різні конфігураційні файли, створювати користувачів ОС, прописувати їм права і робити безліч інших тонких речей. Дистрибуція серверного софту у вигляді віртуальних машин допомагає спростити (або зовсім виключити) попереднє налаштування - всі необхідні конфігураційні файли та параметри запуску програмного забезпечення можна включити у віртуальну машину і запускати програму в готовому робочому середовищі.
Які бувають види віртуальних машин
Їх прийнято поділяти на три великі групи, що відрізняються за «глибиною» віртулізаційного процесу. Нижче невеликий огляд віртуальних машин та видів віртуалізації.
Повна віртуалізація
Це коли система управління віртуальними машинами повністю і на 100% зображує комп'ютер з усіма його залізняками та пристроями. Цією технологією активно користуються, наприклад, безпечники. На своєму комп'ютері вони запускають повністю ізольовану операційну систему і в ній досліджують роботу небезпечного вірусу. Вірус може повністю порушити роботу віртуальної ОС, але основний комп'ютер інженера залишиться цілий.
Ще цю штуку дуже люблять випробувачі. Наприклад, щоб на комп'ютері запустити 10 різних версій Windows та 20 різних версій Linux, а в них перевірити роботу програми.
Повна віртуалізація - штука цікава, але вона підходить не для всіх цілей, наприклад, не підходить для хмар. Тому обговоримо два інші, більш хмарні типи.
Віртуалізація з доступом до заліза
На відміну від повної віртуалізації, цей метод дає гостьовій операційній системі можливість звертатися безпосередньо до заліза, не підсовуючи замість реальних девайсів софтові емуляції.
Цим методом організації роботи операційної системи користуються багато хмарних рішень, про які ви точно чули хоч краєм вуха: Xen, Hyper-V, KVM, Virtualbox.
Всі ці продукти використовують для побудови крутих та надійних хмар для запуску віртуальних машин під потреби клієнтів. Основна перевага віртуалізації з доступом до заліза – швидкість: запити гостьових ОС можна виконувати безпосередньо на залозі, без затратних процесів емуляції.
Віртуалізація рівня операційної системи
"Народний" хмарний метод віртуалізації - найбільш популярний підхід для запуску софту в хмарі та дистрибуції серверних програм. І тут жорсткої віртуалізації немає. Ядро господарської операційної системи виділяє кілька незалежних просторів прямо на рівні господарської ОС і пускає в ці простори кілька інших програм на виконання. При цьому кожній програмі надається своє ізольоване середовище.
Звучить схоже на щось, чи не так? Саме цей підхід широко застосовується в контейнеризації додатків. Це LXS, OpenVZ, jails і, звичайно, всенародно улюблений Docker, який зробив застосування віртуалізації повсюдною практикою.
Віртуалізація на рівні ОС дозволяє контролювати поведінку гостьових контейнерів ззовні, жорстко визначаючи політики доступу гостей до ресурсів та даних.
При порівнянні віртуальних машин такий метод віртуалізації має найбільшу продуктивність - немає важкої емуляції і немає контролю за доступом до заліза, все вирішується засобами батьківської операційної системи. А збирати та копіювати програми в таких віртуалках дуже просто.
І як вибрати віртуальну машину?
Не можна говорити про те, яка віртуальна машина краща, всі види віртуалізації використовують для різних цілей. Повна віртуалізація - доля безпечників, дослідників та тестувальників. Віртуалізація з доступом до заліза - вотчина адміністраторів та управлінців, які планують будувати свої хмари.
А контейнеризація та віртуалізація рівня ОС — те, що потрібне сьогодні абсолютно всім. Без контейнерів сьогодні не обходиться розробка жодної великої системи. Контейнери настільки щільно увійшли у світ серверного програмного забезпечення, що стали обов'язковою вимогою до програмістів при наймані на роботу.
Дізнайтеся про вихід нових статей у блозі першими!
Триматимемо в курсі новин та хмарних трендів