Навіщо потрібна віртуалізація?
Слово «віртуалізація» останнім часом стало якоюсь «модою» в ІТ-середовищі. Всі виробники заліза та ПЗ, всі IT-компанії в один голос кричать, що віртуалізація - це круто, сучасно, і потрібно всім. Але, давайте, замість того, щоб йти на поводу у маркетингових гасел (а іноді бувають такими, що сам Геббельс помер би від заздрощів), спробуємо подивитися на це модне слово з точки зору "бізнесу" і вирішити, чи нам це потрібно чи ні.
Типи віртуалізації
Отже, почнемо з того, що віртуалізація поділяється на три типи:
- Віртуалізація уявлень
- Віртуалізація програм
- Віртуалізація серверів
З віртуалізацією уявлень знайомі багато хто з вас: найяскравіший приклад – це термінальні служби Windows Server. Термінальний сервер надає свої обчислювальні ресурси клієнтам, і клієнтський додаток виконується на сервері, клієнт же отримує тільки «картинку», тобто уявлення. Така модель доступу дозволяє, по-перше – знизити вимоги до програмно-апаратного забезпечення за клієнта, по-друге – знижує вимоги до пропускну здатність мережі, по-третє – дозволяє підвищити безпеку. Що стосується обладнання - то як термінальні клієнти можуть використовуватися навіть смартфони або старі комп'ютери аж до Pentium 166, не кажучи вже про спеціалізованих тонких клієнтів. Існують, наприклад, тонкі клієнти у форм-факторі розетки Legrand, що монтуються в коробку. На клієнтських робочих місцях достатньо встановити лише монітор, клавіатуру та мишу – і можна працювати. Для роботи з термінальним сервером не обов'язково мати високошвидкісне підключення до локальної мережі, цілком навіть низькошвидкісного підключення з пропускною здатністю 15-20 кбіт/с, тому термінальні рішення дуже підходять фірмам, що мають сильно розподілену структуру (наприклад – мережі невеликих магазинів). Крім того, при використанні тонких клієнтів значно підвищується безпека, тому що користувачам можна дозволити запускати лише обмежений набір додатків та заборонити встановлювати свої власні додатки. У принципі, те саме можна зробити і з повноцінними клієнтськими робочими станціями, але з використанням термінальних служб це буде зробити набагато простіше, особливо – не надаючи доступ цілком до робочого столу, а лише публікуючи окремі додатки (можливо в Citrix Metaframe/PS, а також у Windows Server 2008 і вище). Більше того, жодну інформацію не можна буде скопіювати на та із зовнішнього носія, якщо це явно не дозволено у налаштуваннях термінальних служб. Тобто проблема «вірусів на флешках» відпадає автоматично. Ще одна незаперечна перевага – зниження складності адміністрування: спрощується оновлення додатків (достатньо оновити їх на сервері), та спрощується робота служб підтримки: до термінальної сесії будь-якого користувача можна підключитися віддалено без встановлення додаткового ПЗ. Недоліків таких систем два: по-перше – необхідність купівлі потужніших серверів (хоча це може бути дешевше, ніж безліч клієнтських робочих станцій з ТТХ, достатніми для запуску додатків локально), по-друге – поява єдиної точки відмови у вигляді термінального сервера. Ця проблема вирішується за рахунок використання кластерів, або ферм серверів, але це призводить до ще більшого подорожчання системи. Віртуалізація програм- Досить цікавий, і відносно новий напрям. Коротко кажучи, віртуалізація додатків дозволяє запускати окрему програму у своєму власному ізольованому середовищі (іноді називається «пісочниця», sandbox). Такий спосіб допомагає вирішити багато проблем. По-перше – знову ж таки безпека: додаток, запущений в ізольованому середовищі – не здатний завдати шкоди ОС та іншим додаткам. По-друге – всі віртуалізовані програми можна оновлювати централізовано з одного джерела. По-третє – віртуалізація додатків дозволяє запускати одному фізичному ПК кілька різних додатків, конфліктуючих друг з одним, і навіть кілька різних версій однієї й тієї програми. Віртуалізація серверів – це програмна імітація за допомогою спеціального програмного забезпечення апаратного забезпечення комп'ютера: процесор, пам'ять, жорсткий диск і т.д. Далі, на такий віртуальний комп'ютер можна встановити операційну систему, і вона працюватиме на ньому так само, як і на простому, «залізному» комп'ютері. Найцікавіша перевага цієї технології – це можливість запуску кількох віртуальних комп'ютерів усередині одного «залізного», причому всі віртуальні комп'ютери можуть працювати незалежно один від одного. Навіщо це можна застосовувати? Віртуалізація дозволяє скоротити кількість серверів завдяки консолідації, тобто там, де раніше потрібно кілька серверів - тепер можна поставити один сервер, і запустити потрібну кількість гостьових ОС у віртуальному середовищі. Це дозволить заощадити на вартості придбання обладнання, вартості ліцензій, а також знизити енергоспоживання, а значить і тепловиділення системи - і, отже, можна використовувати менш потужні, і, відповідно - дешевші системи охолодження. Але ця медаль має і зворотний бік, і не одну. Справа в тому, що при впровадженні рішень на базі віртуалізації, швидше за все, доведеться купувати нові сервери. Справа в тому, що віртуальні сервери використовують апаратні ресурси фізичного сервера, і, відповідно - знадобляться потужніші процесори, більші обсяги оперативної пам'яті, а також швидкісна дискова підсистема, і, швидше за все - більшого обсягу. Крім того, деякі системи віртуалізації (зокрема MS Hyper-V) вимагають підтримки процесором апаратних технологій віртуалізації (Intel VT або AMD-V) та деяких інших функцій процесора. Багато процесорів, які випускалися до недавнього часу, зокрема – всі x86_32bit – цим вимогам не задовольняють, і тому від старих, хоч і цілком робочих серверів, доведеться відмовитися. Проте, один потужніший сервер швидше за все буде коштувати набагато дешевше кількох менш потужних, та й старі сервери, швидше за все давно пора міняти через моральне старіння. Ще одна незаперечна перевага - ОС, запущена всередині віртуальної машини (гостова ОС), поняття не має, яке обладнання встановлено на фізичному сервері, всередині якого вона працює (хост). Тому при заміні заліза, при апгрейді або переїзді на новий сервер необхідно оновити драйвери тільки на ОС самого хоста (хостової ОС). Гостьові ОС будуть працювати як і раніше, оскільки «бачать» тільки віртуальні пристрої. Також, хочеться нагадати, що у віртуальному середовищі можуть діяти спеціальні правила ліцензування ПЗ (зокрема, купівля ліцензії на Microsoft Windows Server 2008 Enterprise дозволяє використовувати безкоштовно чотири копії ОС як гостьову, а Microsoft Windows Server 2008 Datacenter взагалі дозволяє використовувати необмежену кількість гостьових ОС за умови повного ліцензування за процесорами). Ще не можна не згадати про технології відмовостійкості. Фізичні сервери, на яких запускаються віртуальні машини, можуть бути об'єднані в кластер, і у разі відмови одного із серверів – автоматично переїжджати на інший. Повної стійкості до відмови не завжди можливо (зокрема, у MS Hyper-V такий «раптовий переїзд» буде виглядати так само, і мати такі ж можливі наслідки, як раптове знеструмлення сервера), але можливі простої сильно скоротяться: «переїзд» займає кілька хвилин , тоді як ремонт або заміна самого сервера може зайняти годинник, а то й дні. Якщо ж «переїзд» віртуальних машин відбувається у штатному режимі, він може пройти абсолютно непомітно для користувачів. Такі технології у різних вендорів називаються по-різному, наприклад у MS вона називається Live Migration, у VMware - Vmotion. Використання таких технологій дозволить проводити роботи, пов'язані з вимкненням сервера (наприклад – заміну деяких апаратних компонентів, або перезавантаження ОС після встановлення критичних оновлень) у робочий час і не виганяючи користувачів з улюблених додатків. Крім цього, якщо інфраструктура побудована відповідним чином – запущені віртуальні машини можуть автоматично переміщатися на менш навантажені сервери, або навпаки «розвантажувати» найбільш завантажені. В інфраструктурі на базі технологій Microsoft для цього використовуються System Center Virtual Machine Manager та Operations Manager. Віртуалізація не завжди однаково корисна. Зокрема, не завжди буде гарною ідеєю переносити у віртуальне середовище високонавантажені сервери, а особливо високонавантажені по дисковій підсистемі — це «важкі» СУБД, Exchange Server, особливо роль Mailbox Server, та інші високонавантажені програми. А ось сервери з меншим навантаженням (контролери доменів AD, WSUS, всілякі System Center Manager, веб-сервера) віртуалізувати можна і навіть потрібно.Отже, давайте підіб'ємо підсумки: яка саме віртуалізація коли може стати в нагоді, і які у неї є плюси та мінуси. Якщо у вас є багато користувачів, що працюють з однаковим набором програмного забезпечення, і система сильно розподілена територіально – варто подумати про використання віртуалізації уявлень, тобто – термінальних службах. Переваги такої системи: Зниження вимог до «заліза» на стороні клієнтів Зниження вимог до пропускної спроможності мережі Підвищення безпеки Значне спрощення адміністрування та підтримки Недоліки: Підвищення вимог до серверів як за продуктивністю, так і за надійністю Можлива єдина точка відмови Якщо у вас існує безліч додатків, які некоректно працюють у новій ОС, або конфліктують між собою, або необхідно запускати на одному комп'ютері кілька версій однієї і тієї ж програми - то потрібна віртуалізація на рівні додатків. Переваги: Безпека Простота адміністрування — централізоване оновлення та розмежування прав на доступ до додатків Недоліки: Певна складність у розумінні технологій та практичному впровадженні. Якщо вам потрібно звільнити місце в стійці, знизити енергоспоживання систем, позбутися «серверного зоопарку» — то ваше рішення – віртуалізація серверів. Переваги такого рішення: Економія місця у стійках Зниження енергоспоживання та тепловиділення Спрощення адміністрування Широкі можливості з автоматизації розгортання та управління серверами Зниження вимушених та запланованих простоїв системи за рахунок failover-кластерів та live migration Дозволяє (при використанні ОС Microsoft Windows Server) заощадити на ліцензіях на гості ОС Недоліки – в принципі ті ж, що й у термінальних рішень: Підвищення вимог до апаратного забезпечення серверів Можлива єдина точка відмови – фізичний хост та хостова ОС