Виртуализация для хостинга: тупик или прорыв?

Что такое хостинг, и какой он бывает?

Согласно online-энциклопедии Wikipedia хостинг это услуга по предоставлению дискового пространства для физического размещения информации на сервере, постоянно находящемся в сети. Обычно под понятием услуги хостинга подразумевают услугу размещения файлов сайта, но часто выделяют и другие виды хостинга, например хостинг электронной почты, фото-хостинг, хостинг баз данных, хостинг бизнес-приложений и т. д.

Наиболее популярной технологией организации хостинга все еще остается так называемый shared-хостинг, который на русский язык не всегда правильно переводится как «виртуальный хостинг», что порождает путаницу с технологиями, использующими виртуализацию. Название происходит от термина «виртуальный хост». Виртуальные хосты используется в таком программном обеспечении, как web-серверы или почтовые серверы, и обозначают, если упростить, один домен клиента из множества других доменов.

Shared-хостинг предполагает массовое размещение клиентских сервисов рядом с друг другом, на одном или нескольких серверах, без изоляции на уровне операционной системы или оборудования друг от друга, и без предоставления гарантированных ресурсов.

Все клиенты используют одно и то же программное обеспечение. Если на сервере установлена одна панель управления, например, CPanel, то сложно или невозможно установить другую панель, например Plesk, DirectAdmin, или ISPmanager. Достаточно сложно установить на сервер две сборки PHP или, например, Python, поэтому всем клиентам приходится использовать общий набор предустановленного ПО.

Малым хостерам крайне тяжело выдерживать конкуренцию с лидерами рынка, так как последние могут себе позволить организовывать дежурство системных администраторов 24/7/365: в любое время дня и ночи, в любую погоду и в любой праздник у крупного хостера на месте есть системный администратор, который готов решить проблему излишней нагрузки на сервер. Кроме этого, лидеры рынка содержат штат девелоперов, разрабатывающих готовую хостинговую платформу, которая администрируется и развертывается с минимальными усилиями, что повышает рентабельность, а так же включает в себя готовые шаблоны серверов с самым разным ассортиментом ПО, ассортиментом, который может удовлетворить самого взыскательного клиента.

Кроме этого, лидеры рынка содержат штат девелоперов, разрабатывающих готовую хостинговую платформу, которая администрируется и развертывается с минимальными усилиями, а так же включает в себя шаблоны серверов с самым разным ассортиментом ПО, ассортиментом, который может удовлетворить самого взыскательного клиента.

Маленьким компаниям не под силу ни содержание штата из четырех-пяти профессиональных администраторов (стоит вспомнить, что системный администратор не является специалистом техподдержки, поэтому Вам придется либо значительно увеличить зарплату для «универсальных» специалистов, либо содержать еще и штат технических специалистов только для общения с клиентами) для круглосуточных дежурств, ни содержание десятка серверов только что бы предложить клиентам большой набор разного ПО, ни разработка и стандартизация своих шаблонов серверов, что не позволяет предоставлять стабильные по качеству конкурентоспособные услуги, и не позволяет бизнесу расти.

В общем, малый бизнес не способен успешно конкурировать, в хостинговом сегменте, с большим, используя технологии shared-хостинга. Требуется другое решение.

Современные технологии могут удовлетворить запросы бизнеса на оптимизацию серверной инфраструктуры: сегодня все более популярна виртуализация, а компании, разрабатывающие программное обеспечение для виртуализации, у всех на слуху: про бизнес VmWare, Citrix, Parallels, RedHat слышали не только IT-специалисты и IT-менеджеры, но, наверное, и практически все интересующиеся высокими технологиями жители нашей планеты. На технологиях этих вендоров строятся целые дата-центры, в которых нет ни одного не виртуализированного сервера, а на все физические серверы установлена специальная операционная система, позволяющая запустить несколько виртуальных машин, так сказать, «разбить» сервер на несколько меньших серверов.

Современные технологии виртуализации строятся на базе так называемой гипервизорной технологии: «тонкая», специализированная ОС с маленьким ядром(гипервизором), работает на «железе», и выделяет аппаратные ресурсы гостевым системам.

По статистике IDC за 2008-ой год, впервые за историю европейского рынка x86 серверов, продажи виртуальных машин превысили продажи физических http://www.cnews.ru/news/top/index.shtml?2009/05/15/347326.

Мировой финансовый кризис подстегнул и ускорил естественные процессы. Понятно, что в не столь отдаленном будущем виртуализация и сервис предоставления машинного время кластера для выполнения ресурсоемких вычислений, или запуска арендованных бизнес-приложений(так называемые «облачные» вычисления) практически полностью вытеснят традиционные, не виртуализированные архитектуры.

Виртуализация позволяет:

  • Исключить взаимовлияние сервисов друг на друга с помощью выделения гарантированных ресурсов каждой виртуальной машине;

  • Повысить «отдачу» от «железа»: не секрет, что практически все серверы большую часть времени простаивают, потребляя считанные проценты своей номинальной мощности. Виртуализация позволит использовать деньги, вложенные в сервер, с большей эффективностью, используя простаивающие ресурсы для запуска большего числа виртуальных серверов. Если же какому-либо критичному сервису неожиданно потребуется ресурсов больше, чем сейчас доступно на физическом сервере, ресурсы могут быть ненадолго отобраны у менее важных сервисов, кратковременно уменьшившаяся производительность которых не важна;

  • Использовать на одном физическом сервере программное обеспечение, которое нежелательно или невозможно использовать в рамках одной системы;

  • Повысить надежность работы системы и «отвязаться» от железа: в случае сбоя аппаратного узла можно запустить виртуальные системы на другом узле;

  • Решить проблемы безопасности: взлом виртуального сервера, это взлом виртуальной машины, соседние виртуальные системы, а так же хост-система, не пострадают, проблему можно решить пересозданием виртуальной машины из исправленного (если взлом произошел через уязвимость) шаблона;

  • Динамически выделять ресурсы под задачу: при наличии нескольких физических машин, можно ненадолго «расширить» виртуальную машину даже до размеров целого физического сервера, переместив online виртуальные машины на другие, более свободные серверы;

  • И, в конечном итоге, снизить затраты на развертывание и администрирование инфраструктуры

Но, увы, не все эти преимущества очевидны в случае замены shared-хостинга на виртуализированные решения:

    • Хотя виртуализация и существенно снижает эксплуатационные расходы инфраструктуры,«входной барьер», стартовые инвестиции в оборудование достаточно высоки, что может быть критично для малого бизнеса: требуется как минимум одна мощная многоядерная машина с большим количеством оперативной памяти (десятки гигабайт), и мощной дисковой подсистемой(так как иногда производительности даже четырех SAS/SCSI дисков в raid10 слишком часто не хватает на десять-пятнадцать нагруженных виртуальных машин), а лучше как минимум две мощные машины, прицепленные к отказоустойчивой внешней дисковой полке(а ее стоимость составит сотни тысяч или даже миллионы рублей), что бы работала живая миграция(позволяет, например, останавливать физические машины для профилактики, без прерывания работы сервиса на виртуальных машинах) и хватало дисковой производительности;

    • Часто велики и затраты на программное обеспечение: хотя такие гипервизоры как ESXi, HyperV и XenServer бесплатны, и доступны мощные OpenSource решения на базе Xen, KVM и библиотеки libvirt, на практике слишком часто всплывают дополнительные затраты, так как далеко не всегда бывает достаточно функционала бесплатных решений(например, во Всемирной Сети можно встретить жалобы на функционал бесплатных решений для backup'в и мониторинга ESXi-based виртуальной инфраструктуры), иногда в решении изначально присутствуют скрытые платежи (как в Hyper-V затраты на Windows 2008 Server, кроме того, стоит вспомнить, что часть расширенных возможностей Hyper-V в варианте установки на Windows Server, не доступна в редакции для малого бизнеса: Windows 2008 SBS);

    • Отметим и повышенные требования к аппаратному обеспечению, например, все гипервизоры для полнофункциональной работы требуют наличия в CPU сервера расширений т. н. аппаратной виртуализации (и поддержки этих расширений материнской платой), что не позволяет использовать целые линейки устаревших, но еще работоспособных серверов. Так же можно вспомнить про сравнительно(с некоторыми другими гипервизорами и операционными системами) бедный HCL (Hardware Compability list, список совместимого оборудования) гипервизора ESX(i);

    • И, самое важное, виртуализация не позволит разнести по разным виртуальным машинам сервисы, предоставляемые разным клиентам хостинга, так как выделить по виртуальной машине на каждый, даже относительно посещаемый сайт не возможно из соображений рентабельности, не имеет смысла запускать даже на мощной(и дорогой) машине больше уже приблизительно 20 виртуальных систем из-за огромного числа переключений ядерных контекстов, резко увеличивающих потери производительности на виртуализацию.

    • То, виртуализация может лишь снизить вторичные эксплуатационные расходы хостинговой компании, позволив держать на меньшем числе физических серверов большее число инфраструктурных сервисов (на разные виртуалки можно разнести: DNS, почту, корпоративный сайт, сделать виртуальную машину для разработчиков, что бы они не сломали «боевую», все остальные ресурсы нужно отдать одной главной виртуалке для хостинга клиентов — вряд ли получится придумать более удачный вариант), но не сервисов, имеющих отношение к основному бизнесу компании — хостингу

Странная ситуация, не так ли? Особенно с учетом того, что виртуализация начала наиболее широко использоваться именно в хостинге еще в начале двухтысячных годов: появилась так называемая услуга VPS/VDS (Virtual Private или Virtual Dedicated Server): дешевый «как бы сервер» для клиентов, которым уже «мало» shared-хостинга, но еще «много» (обычно по финансовым соображениям) «настоящего» выделенного сервера

Сейчас, когда мир начинает глобально отказываться в своих IT-инфраструктурах от «железных» серверов, «колыбель» виртуализации, хостинг, не может себе этого позволить.

Существует ли какое-то альтернативное решение? Да, такое решение есть: контейнеры, или, как ее еще называют, «легкая виртуализация».

В рамках контейнерной технологии, контейнеры, в отличие от гостевых систем при виртуализации, не обладают собственным ядром, а используют специальным образом модифицированное ядро хост-системы, которое организует так называемые контейнеры, или виртуальные окружения, VE («Virtual Environments» в OpenVZ/PVC) . Так же встречаются названия: Zones в Solaris Containers и Jails(контейнеры в операционной системе FreeBSD), VPS(или VDS), но этим термином, обычно, отмечают услугу(а не технологию) виртуального выделенного сервера для клиентов, которая может базироваться на виртуализации, а не на контейнерах.

Наличие одного ядра снижает накладные расходы на переключение контекстов, позволяя добиться в лабораторных тестах поистине космической плотности в тысячу гостевых окружений на один физический сервер: http://community.livejournal.com/openvz/30232.html

Накладными расходами на виртуализацию в контейнерах, как правило, можно пренебречь (производительность всегда практически равна запуску на железе), так же, за счет более гибкого управления памятью (нет необходимости «выделять» память ядру гостевой системы, так как ядро одно), «обещанной» памяти может быть в разы больше, чем доступно памяти на физической машине, так как ситуация, когда память потребуется всем контейнерам одновременно, невероятна с точки зрения математической статистики, особенно если контейнеров более сотни (скорее в серверную угодит метеорит!).

У контейнерной виртуализации есть и недостатки: как правило, меньший уровень изоляции, чем у полной виртуализации, неполная совместимость с некоторым программным обеспечением, отсутствие многих удобных возможностей полной виртуализации, таких как управление firewall, сетевым стеком, обычно отсутствует живая миграция, почти всегда существуют ограничения в выборе гостевой системы - виртуализирована может быть только та операционная система, под которой работает ядро хост-системы, то есть, например, Linux-контейнеры позволяют запускать только Linux гостевые окружения, выбор ограничен дистрибутивами Linux.

На рынке существует несколько решений контейнерной виртуализации.

На наш взгляд, наиболее технически продвинутой, дешевой и готовой заменить массовый shared-хостинг, является технология OpenVZ. Данная технология, благодаря усилиям разработчиков,выгодно отличается от своих конкурентов (например, Linux VServer или FreeBSD Jails) тем, что очень близка к виртуализации по своему функционалу

Технология OpenVZ предоставляет возможности:

  • Полноценного сетевого стека для гостевых окружений, со своими таблицами маршрутизации, IP-адресами. Стек полностью прозрачен для сетевых приложений, сетевые приложения не замечают, что выполняются не на железе, и не требуют никаких специальных сетевых настроек;

  • Практически полной совместимости с любым Linux ПО(программное обеспечение ставится в VE штатным для дистрибутива VE способом, например, через yum, rpm или apt-get), прозрачно работает ПО даже в chroot-окружении внутри контейнера, точно так же, как оно работало бы на «железном» сервере или в виртуальной машине;

  • Собственный пакетный фильтр (файрволл) для каждого VE;

  • Возможность запуска практически любого Linux-дистрибутива, благодаря использованию RHEL-ядра, совместимого как с очень старыми приложениями, так и с новейшими из последних дистрибутивов;

  • Application-темплейты: VE может быть создана за секунды из шаблона базового дистрибутива, и даже из шаблона с предварительно настроенным программным обеспечением, например, с установленной панелью управления;

  • Изоляция контейнеров друг от друга по ресурсам:

    а) CPU

    б) Памяти

    в) Дисковой квоте

    г) По дисковой производительности (частично)

    Система управления ресурсов OpenVZ во многом уникальна для мира контейнеров, и практически никакое решение не предоставляет подобного функционала;

  • Свободные ресурсы можно разрешить утилизировать тем или иным контейнерам, увеличивая отдачу от физического сервера;

  • «Живая» миграция и «чекпоитинг»(заморозка, удобна для создания резервных копий критичных к сбоям сервисов, например, баз данных). Требования к живой миграции в OpenVZ во многом уникальны даже в сравнении с большинством гипервизоров: для online миграции VE с одного сервера на другой нет необходимости в приобретении дорогой сетевой системы хранения данных или внешней дисковой полки, VE может быть перемещена на другой сервер без выключения и прерывания обслуживания между локальными дисками очень дешевых серверов;

  • В качестве гостевых и хост-систем используется Linux, что для хостинга не является недостатком, так как под данную платформу прежде всего и разрабатывается как платное, так и бесплатное ПО хостингового рынка. Использование Linux позволяет сократить траты на серверное программное обеспечение.

  • Очень большая плотность в десятки и даже сотни контейнеров на физический сервер. В официальной документаци, OpenVZ User Guide, называется цифра в 100 VE на каждый гигабайт оперативной памяти сервера. Проводился тест по запуску 1000 VE на одном сервере http://community.livejournal.com/openvz/30232.html. Кроме того, известен тест по запуску 100 VE, одновременно отдающих контент через web-сервер Apache на очень слабой машине с 756Mb ОЗУ. http://ru.wikipedia.org/wiki/Openvz В условиях «боевой» эксплуатации цифры, конечно, ниже, но вполне реален запуск более сотни нагруженных VE на самом слабом сервере, и становится реальным сценарий выделения контейнера с гарантированными ресурсами и своим ПО для каждого Вашего клиента, особенно если не позиционировать для конечных клиентов VE как аналог физического сервера, и как услугу VPS, а запускать в контейнерах сайты малой и средней посещаемости, которые бы «жили» не на VPS, а на shared-хостинге.

Сегодня мы готовы предложить Вам готовую хостинговую платформу на базе технологии OpenVZ, автоматизированно развертываемую нами на Ваш сервер за один-два часа. Именно использование готового, «штампованного» оттестируемого и постоянно развиваемого нами решения, которое мы предлагаем Вам, как и другим нашим потенциальным клиентам, а так же аутсорсинг администрирования нашей платформы, должны позволить Вам сравняться по рентабельности поддержки серверной инфраструктуры с крупными хостингами, позволив Вам выделить больше времени на гибкость подхода и внимание к нуждам каждого клиента, что не могут себе позволить Ваши более крупные конкуренты

Предлагаем Вам ознакомиться с нашим решением