У 2008 році мій інтерес до VMware посилила публікація про продуктивність Microsoft Exchange у віртуалізованому середовищі. Точного джерела й параметрів того тесту в нотатці не збережено, тому його результат не можна відтворити або поширити на інші навантаження. Натомість практичні завдання, для яких мене цікавили віртуальні машини, цілком конкретні.
Розподіл навантаження на одному комп’ютері
Кілька гостьових систем дають змогу розмістити різні середовища на спільному обладнанні. Для мене це було особливо цікаво з поширенням багатоядерних робочих станцій.
Втім, кілька ядер в одному процесорі й кілька фізичних процесорів — різні конфігурації. Сама кількість віртуальних машин також не гарантує прискорення: їм доводиться ділити процесорний час, пам’ять і диски, а результат залежить від конкретного навантаження.
Розділення систем і наслідків збою
Окреме середовище допомагає відділити гостьову систему від основної. Збій одного гостя не обов’язково порушує роботу інших, але це не абсолютний захист хоста від шкідливого коду. Спільні каталоги, мережеві зв’язки й вразливості гіпервізора можуть перетнути очікувані межі ізоляції.
Linux для основної роботи, Windows для потрібних застосунків
Мене приваблювала можливість працювати переважно в Linux, а Windows залишити для спеціалізованих програм, створених саме для неї. Для такої програми можна підготувати гостьову Windows замість окремого фізичного комп’ютера. Потрібно лише перевірити її вимоги, роботу у віртуальному середовищі та умови використання.
Збереження складної конфігурації розробника
Налаштування Delphi з усіма потрібними компонентами могло забирати в мене один-два дні. І навіть після цього час від часу доводилося щось «підкручувати». Повторювати всю роботу після перевстановлення ОС було прикро.
Ідея з віртуальною машиною полягала в тому, щоб підготувати середовище один раз, а потім переносити його копію разом із програмами й налаштуваннями. Після перенесення все одно потрібно перевірити сумісність середовища та право використовувати встановлені програми.
Перевірка програми в різних ОС
Розробнику буває потрібна система, якої вже немає на його основному комп’ютері. У моєму тодішньому прикладі це була Windows 98: для перевірки поведінки програми можна було підняти окрему віртуальну машину, не переводячи весь робочий комп’ютер на стару ОС.
Принципи розподілу ресурсів, ізоляції та ризики спільних ресурсів докладніше розглянуто в NIST SP 800-125. Для вибору віртуалізації корисно спочатку визначити завдання — тестування, сумісність чи повторне використання середовища — а швидкодію перевіряти на власному навантаженні.