Xen или OpenVZ?
13 октября 2011, 10:57
Несмотря на то, что технологии виртуализации появились уже достаточно давно, не все пользователи (и системные администраторы) успели вникнуть в принципиальные отличия между ними.
Рассмотреть все системы виртуализации по понятным причинам довольно тяжело, поэтому давайте сравним основные технологии, представленные на рынке аренды виртуальных серверов.
На первый взгляд может показаться, что технологии виртуализации OpenVZ (коммерческий ее вариант называется Virtuozzo) и Xen могут рассматриваться как конкурирующие платформы для услуги аренды VPS, однако в реальности они очень разные. Давайте наглядно опишем принцип их работы.
OpenVZ
– это реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux.
Уже давнее время является лидером на рынке VPS хостинга. До появления Xen, существовало всего два варианта
виртуализации: полностью виртуальный сервер (например, VMWare или VirtualBox)
и разделение ресурсов в рамках одного сервера, что и делает OpenVZ.
Честная виртуализация работала неприемлемо медленно для VPS хостинга, поэтому для массовой услуги не годилась. Именно поэтому решения на базе OpenVZ полностью и заняли этот рынок.
Рассмотрим, как это работает.
На хост-машине работает специально модифицированное ядро Linux, отвечающее за распределение ресурсов между выполняющимися на ней VPS. Ядро отвечает за изоляцию файловой системы, оперативной памяти и процессов между виртуальными окружениями (так называются VPS в терминах OpenVZ), предоставляя администраторам VPS полный административный доступ к их серверу.
Как же разделяются ресурсы в системе OpenVZ? Хост-сервер ведет множество всевозможных счетчиков (помимо используемой мощности процессора, объема памяти и жесткого диска) и не дает их превышать.
Отсюда вытекает первая проблема — ограничения на все эти ресурсы в тарифе. В то время как на реальном сервере этих ограничений формально нет.
Ядро OpenVZ, которое управляет всеми ресурсами, одно на всех. Поэтому ограничивать все-таки приходится.
Также, одно ядро означает, что его нельзя заменить. Отсюда вытекает вторая проблема — невозможно на арендованную VPS поставить другую операционную систему (например, FreeBSD или тем более Windows).
Третья проблема, возникающая из общего ядра на десятки виртуальных серверов — уменьшенная надежность. Ведь в любом ПО бывают ошибки, сбои и уязвимости.
Аналогично, не имея своего ядра, нельзя загрузить в него нужный модуль или изменить системную настройку — нужно обязательно просить хостера (и надеяться, что он не ответит отказом). Файловая система тоже получается одна на всех. Если будет сбой, он коснется все виртуальные серверы на хост-машине. И создать себе отдельную файловую систему тоже нет возможности.
Самая же большая проблема, постоянно напоминающая о себе — это память. Ее ограничение работает не так, как в реальном сервере: нужный объем оперативной памяти имитируется через счетчики, и имитируется неполноценно. Поэтому любая программа, абсолютно непредсказуемо, может не запуститься — хотя она будет использовать не больше отведенного виртуальному окруженю предела, из-за неточной имитации ограничений, OpenVZ может ошибиться в подсчетах. Тогда придется увеличить тариф в два, а то и в три раза. Соответственно, хостеры решают эту проблему предоставлением (негарантированной) памяти больше, чем должно приходиться по тарифу (и суммарный ее объем – конечно же будет превышать количество оперативной памяти, установленной на хост-машине). В большинстве случаев это работает. До момента, когда некоторые VPS не начнут использовать отведенную им, пусть и негарантированную, память полностью. В этот момент остальным серверам ее уже может не хватить. Также немаловажно, что все виртуальные серверы используют один и тот же раздел подкачки. Поэтому решить описываемую проблему через дополнительный раздел подкачки тоже не получится.
В итоге, получается виртуальный выделенный сервер с ограничениями, похожими на стандартный шаред хостинг.
Однако, у технологии OpenVZ есть неоспоримое преимущество — смена тарифа реализуется изменением лимитов на VPS через смену счетчиков. Никакой перезагрузки не требуется!
Согласно сайту OpenVZ, накладные расходы на виртуализацию также очень малы, и падение производительности составляет всего 1-3% по сравнению с обычными Linux-системами. Так как данная технология позволяет продавать ресурсов больше, чем реально есть, хостеры могут ощутимо снизить цену - отсюда понятно, почему цены на виртуальные серверы могут сильно отличаться. Не сложно догадаться, что зачастую это влечет и снижение качества услуги.
С появлением Xen,
ситуация сильно изменилась: данная технология позволяет на одном сервере запустить десятки отдельных ядер ОС с
минимальными потерями в производительности. Такая возможность сразу же решает все перечисленные выше проблемы.
Каждая VPS получает только строго отведенную ей область оперативной памяти и работает с ней точно так же, как и на реальном сервере. Никаких проблем с имитацией ограничений и странных подсчетов.
Появилась возможность подключать один и больше отдельных разделов жесткого диска, с которыми может делать абсолютно все, что угодно.
Список поддерживаемых операционных систем очень широк. Можно производить установку ОС, начиная с загрузки BIOS. Это может быть Linux, FreeBSD, OpenSolaris, Windows или даже MS DOS.
Кроме ограничений по памяти, производительности и размеру дисков, нет никаких других лимитов. Каждый виртуальный сервер имеет свое собственное ядро, поэтому нет необходимости ограничивать еще какие-либо ресурсы. Можно устаналивать любые драйверы, загружать дополнительные модули.
Та часть Xen, которая исполняет все работающие ядра ОС имеет весьма небольшой размер. А чем проще — тем надежней.
Конечно, у этой технологии тоже есть свои недостатки – для миниальной потери производительности, устанавливаемая на арендованный виртуальные сервер ОС должна иметь поддержку запуска в Xen. К счастью, список таких ОС постоянно пополняется.
Время услуги аренды VPS на старой технологии подходит к концу. Наступает эра качественно новой виртуализации. Конечно, большинству отечественных хостеров потребуется еще некоторое время, чтобы это заметить и взять на вооружение ;)
Рассмотреть все системы виртуализации по понятным причинам довольно тяжело, поэтому давайте сравним основные технологии, представленные на рынке аренды виртуальных серверов.
На первый взгляд может показаться, что технологии виртуализации OpenVZ (коммерческий ее вариант называется Virtuozzo) и Xen могут рассматриваться как конкурирующие платформы для услуги аренды VPS, однако в реальности они очень разные. Давайте наглядно опишем принцип их работы.
Честная виртуализация работала неприемлемо медленно для VPS хостинга, поэтому для массовой услуги не годилась. Именно поэтому решения на базе OpenVZ полностью и заняли этот рынок.

На хост-машине работает специально модифицированное ядро Linux, отвечающее за распределение ресурсов между выполняющимися на ней VPS. Ядро отвечает за изоляцию файловой системы, оперативной памяти и процессов между виртуальными окружениями (так называются VPS в терминах OpenVZ), предоставляя администраторам VPS полный административный доступ к их серверу.
Как же разделяются ресурсы в системе OpenVZ? Хост-сервер ведет множество всевозможных счетчиков (помимо используемой мощности процессора, объема памяти и жесткого диска) и не дает их превышать.
Отсюда вытекает первая проблема — ограничения на все эти ресурсы в тарифе. В то время как на реальном сервере этих ограничений формально нет.
Ядро OpenVZ, которое управляет всеми ресурсами, одно на всех. Поэтому ограничивать все-таки приходится.
Также, одно ядро означает, что его нельзя заменить. Отсюда вытекает вторая проблема — невозможно на арендованную VPS поставить другую операционную систему (например, FreeBSD или тем более Windows).
Третья проблема, возникающая из общего ядра на десятки виртуальных серверов — уменьшенная надежность. Ведь в любом ПО бывают ошибки, сбои и уязвимости.
Аналогично, не имея своего ядра, нельзя загрузить в него нужный модуль или изменить системную настройку — нужно обязательно просить хостера (и надеяться, что он не ответит отказом). Файловая система тоже получается одна на всех. Если будет сбой, он коснется все виртуальные серверы на хост-машине. И создать себе отдельную файловую систему тоже нет возможности.
Самая же большая проблема, постоянно напоминающая о себе — это память. Ее ограничение работает не так, как в реальном сервере: нужный объем оперативной памяти имитируется через счетчики, и имитируется неполноценно. Поэтому любая программа, абсолютно непредсказуемо, может не запуститься — хотя она будет использовать не больше отведенного виртуальному окруженю предела, из-за неточной имитации ограничений, OpenVZ может ошибиться в подсчетах. Тогда придется увеличить тариф в два, а то и в три раза. Соответственно, хостеры решают эту проблему предоставлением (негарантированной) памяти больше, чем должно приходиться по тарифу (и суммарный ее объем – конечно же будет превышать количество оперативной памяти, установленной на хост-машине). В большинстве случаев это работает. До момента, когда некоторые VPS не начнут использовать отведенную им, пусть и негарантированную, память полностью. В этот момент остальным серверам ее уже может не хватить. Также немаловажно, что все виртуальные серверы используют один и тот же раздел подкачки. Поэтому решить описываемую проблему через дополнительный раздел подкачки тоже не получится.
В итоге, получается виртуальный выделенный сервер с ограничениями, похожими на стандартный шаред хостинг.
Однако, у технологии OpenVZ есть неоспоримое преимущество — смена тарифа реализуется изменением лимитов на VPS через смену счетчиков. Никакой перезагрузки не требуется!
Согласно сайту OpenVZ, накладные расходы на виртуализацию также очень малы, и падение производительности составляет всего 1-3% по сравнению с обычными Linux-системами. Так как данная технология позволяет продавать ресурсов больше, чем реально есть, хостеры могут ощутимо снизить цену - отсюда понятно, почему цены на виртуальные серверы могут сильно отличаться. Не сложно догадаться, что зачастую это влечет и снижение качества услуги.

Каждая VPS получает только строго отведенную ей область оперативной памяти и работает с ней точно так же, как и на реальном сервере. Никаких проблем с имитацией ограничений и странных подсчетов.
Появилась возможность подключать один и больше отдельных разделов жесткого диска, с которыми может делать абсолютно все, что угодно.
Список поддерживаемых операционных систем очень широк. Можно производить установку ОС, начиная с загрузки BIOS. Это может быть Linux, FreeBSD, OpenSolaris, Windows или даже MS DOS.
Кроме ограничений по памяти, производительности и размеру дисков, нет никаких других лимитов. Каждый виртуальный сервер имеет свое собственное ядро, поэтому нет необходимости ограничивать еще какие-либо ресурсы. Можно устаналивать любые драйверы, загружать дополнительные модули.
Та часть Xen, которая исполняет все работающие ядра ОС имеет весьма небольшой размер. А чем проще — тем надежней.
Конечно, у этой технологии тоже есть свои недостатки – для миниальной потери производительности, устанавливаемая на арендованный виртуальные сервер ОС должна иметь поддержку запуска в Xen. К счастью, список таких ОС постоянно пополняется.
Время услуги аренды VPS на старой технологии подходит к концу. Наступает эра качественно новой виртуализации. Конечно, большинству отечественных хостеров потребуется еще некоторое время, чтобы это заметить и взять на вооружение ;)


