Про виртуализацию серверов.
Про виртуализацию серверов.
Плюсы и минусы. А также легенды и мифы.
В своей публикации (https://www.facebook.com/askar.kopbayev/posts/10155254595509838 ) Askar Kopbayev рассказал простым языком о виртуализации серверов. В свою очередь, хочу попытаться таким же образом рассказать о плюсах и минусах виртуализации, а также рассказать о существующих мифах и, по возможности, развенчать их.
Краткое отступление.
Как бы странно не звучало, но цикл статей хронологически будет выстраиваться в соответствии с моим трудовым стажем, так уж совпало, что мне повезло встретиться с различными вариантами виртуализации серверов на своем трудовом пути.
Итак, начнем.
Пункт первый. Инфраструктура на физических серверах. Полное отсутствие виртуализации, как таковой. 2003-2004 год.
В этот период я работал в компании занимавшейся разработкой программного обеспечения. Постараемся прикинуть, инфраструктурные сервера, такие как контроллер домена, почтовый сервер, сервер удаленного доступа, файловый сервер, сервер контроля версий, плюс ко всему тестовые и боевые сервера под каждый проект – итого около 50-и физических серверов. Цены же на сервера начального уровня в те времена легко достигали 10-20 тысяч долларов.
Усугублялось все это страшным зоопарком форм-факторов(всякие вариации АТ-корпусов, тумбочки на роликах, ATX-башни), а также совершенно непередаваемыми массо-габаритными (порой за сотню килограмм) характеристиками серверов.
Все это хозяйство размещалось в т.н. серверном помещении, которое представляло собой изолированную комнату площадь квадратов 20-25. Выделяло кучу килоджоулей тепла и охлаждалось оконными кондиционерами. Работать в серверном помещении более 10-15 минут попросту было невозможно. (с одной стороны жарко, с другой холодно). При этом, учитывая условия эксплуатации, срок службы оборудования резко падал в сравнение с расчетным. А самым главным минусом, было то, что по факту использовалась схема 1 сервер – 1 сервис, то есть грубо говоря, по средним значением использование серверных ресурсов было на уровне 3-5%.
Кроме того, отсутствие единой консоли крайне затрудняло администрирование серверов, в случае зависания, инженеру было необходимо подключить к серверу монитор и клавиатуру, впоследствии на рынке Казахстана появились KVM-свичи(то есть устройства, позволяющие использовать 1 комплект клавиатура-монитор-мышь с несколькими серверами), которые весьма облегчили администрирование.
Об отказоустойчивости по факту речи вообще не шло, фактически использовались только raid-контроллеры для исключения потери данных при смерти одного из жестких дисков и резервное копирование, на сервера, которые также находились в данном помещении.
Как видим, даже в те времена инфраструктура на физических серверах была громоздка, неудобна в плане администрирования и обслуживания, несла в себе риски прерывания определенных бизнес-процессов в случае выхода из строя оборудования, а также требовала высоких операционных расходов.
На текущий момент с использованием технологий виртуализации все вышеописанное можно было бы заменить одним-двумя серверами и резервным программным центром обработки данных в облаке. Что по факту позволило бы решить практически все вышеперечисленные проблемы уровня малого-среднего бизнеса.
Естественно, что повышение требований к инфраструктуре повлечет ее усложнение.
Какие же преимущества предоставляет виртуализация серверов:
1. Консолидация – позволяет использовать серверное оборудование на полную мощность, что в свою очередь снижает капитальные и операционные расходы бизнеса.
2. Высокая доступность – позволяет обеспечить непрерывность протекания бизнес-процессов. При выходе из строя оборудования – сервис перезапустится на резервном оборудовании, причем, существующие на сегодняшний день технологии(например FaultTolerance) позволяют держать под рукой горячую копию необходимого сервиса, так, что при выходе из строя оборудования пользователи продолжат работу на резервном без прерывания даже на секунду.
3. В своей статье Askar Kopbayev отмечает одним из основных плюсов кластеризацию, однако я бы добавил к этому удобство масштабирования. Например, если у вас вычислительные мощности подошли к концу, вы всегда можете купить дополнительный сервер и добавить его в общий пул ресурсов. Причем сделать это можно буквально в пределах одного-двух часов.
4. Удобство администрирование – после первоначальной настройки серверов и гипервизоров, вам больше не нужно держать системного администратора постоянно в офисе. Фактически теперь серверами можно управлять из любой точки, где есть интернет, конечно.
5. Удобство резервного копирования – практически все гипервизоры на сегодняшний день поддерживают снапшоты(снимки состояния), то есть создание определенной контрольной точки, к которой, в случае необходимости можно откатиться, причем за очень короткий период времени. Правда снапшоты – не самый лучший способ, но об этом в следующих статьях. На сегодняшний день на рынке представлено множество решений по резервному копированию виртуальной инфраструктуры. Одним из основных вендоров является – Veeam.
6. Миграция – Миграция в виртуальной среде может производиться на горячую, то есть незаметно для пользователей, что приводит к тому, что обслуживание физических серверов можно производить без прерывания работы пользователей.
Естественно, перечислив плюсы, я не мог не сказать о минусах, которые по большому счету не более, чем мифы:
1. Виртуализация – это дорого.
Да, виртуализация может быть дорогой, на стадии внедрения, однако впоследствии виртуальная инфраструктура экономит ваши деньги, как операционные, так и капитальные расходы сокращаются.
К слову, виртуализация может быть бесплатной. Но вам придется потратить время, изучить бесплатные продукты и самому их внедрить. В ином же случае, труд должен быть оплачен.
P.S. Однако, миф в свое время имел право на существование, так как виртуализации на x86 процессорах не было, однако она к тому времени уже присутствовала на мейнфреймах(это такие сложные сервера) IBM и серверах на архитектуре POWER, которые были и есть, ну очень дорогими и в основном эксплуатировались банковскими структурами. Подобный опыт у меня тоже был, чему я также собираюсь посвятить статью.
2. Виртуализация – это сложно.
На самом деле все предельно просто, Сложности бывают на стадии планирования и внедрения, обучить специалиста создавать и обслуживать виртуальные машины можно в течении нескольких дней(ну это для совсем уж тяжелых случаев). Конечно, это примитивные операции, но для малого бизнеса их вполне хватит.
3. Виртуальные машины работают медленнее, чем физические.
На самом деле это и правда миф, результаты бенчмарков его не подтверждают. Однако, встречается определенный тип разработчиков ПО, которые с непонятной целью убивают поддержку работы своего ПО в виртуальной инфраструктуре, путем проверки оборудования на сигнатуры гипервизоров. Причина мне совершенно непонятна, но такие случаи сам видел ,как говорится.
09.10.2016
Публикация на английском – https://mykola.today/server-virtualization/