OpenVZ / Virtuozzo технология, ее плюсы и проблемы

Уже довольно долго на рынке vps хостинга почти безраздельно царствовала OpenVZ, коммерческий вариант которой называется Virtuozzo. С появлением 3-й версии технологии Xen ситуация изменилась. Конечно, большинству отечественных хостеров потребуется еще несколько лет, чтобы это заметить ;). Но Xen уже начал победное шествие по планете vps хостинга. Объясняется это его подавляющим технологическим превосходством перед традиционной технологией vps хостинга.

До появления Xen было два чётких варианта виртуализации. Более или менее “честный” виртуальный сервер (например, vmware) и разделение ресурсов в рамках одного сервера, что и делает openvz. Честная виртуализация работала откровенно медленно и для VPS хостинга не годилась. Так что рынок хостинга полностью занял не “честный”, но работающий вариант - OpenVZ / Virtuozzo. Но как обычно бывает, не совсем правильное решение и работает не совсем правильно.

Как разделяются ресурсы в традиционном OpenVZ vps хостинге? Сервер хостера ведет кучу счетчиков (оперативная память, место на диске, кол-во процессов и т.п.) и не дает Вам их превышать. Сразу возникает первая проблема: ограничения на все эти ресурсы в тарифе. В то время как в реальном сервере это ограничивается только возможностями ядра (а значит, практически не ограничивается). Но в OpenVZ ядро ОС (операционной системы), которое и управляет всеми ресурсами, одно на всех. Поэтому ограничивать приходится.

Одно ядро на всех означает, что Вы не можете его заменить. А значит, не можете поставить вместо Linux FreeBSD или тем более Windows.

Десятки vps работают на одном ядре ОС. Это значит, ядро обрабатывает огромное количество процессов и их ресурсов. Благодаря потрясающей масштабируемости Linux это все в общем-то нормально работает. Но ничто не совершенно, в любом ПО бывают ошибки, сбои и уязвимости. И понятно, что десятки серверов, работающие на одном Linux ядре, - это в десятки раз уменьшенная надежность. Простая логика. Которая вполне конкретно подтверждается практикой.

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

Раз у Вас нет своего ядра, очевидно, что Вы не можете сами в него загрузить нужный модуль. Нужно просить хостера.

Диск (точнее файловая система) тоже получается один на всех. Например, если будет сбой файловой системы, то это коснется всех vps на этом сервере. Вы не можете сделать себе отдельную файловую систему, не можете сделать их больше одной.

И наконец большая проблема с памятью: ограничение доступной памяти работает совсем не так, как на реальном сервере. Дело в том, что тут по счетчику как бы имитируется нужный объем памяти и имитируется он не полноценно. Кончается это тем, что Вы можете написать программу, которая выделит 100MB памяти, запустить ее на VPS, имеющем 128MB памяти, и она запустится. Потом взять готовую программу (например, mysql), настроить ее на использование тех же 100MB памяти, и с удивлением обнаружить, что памяти не хватило. Может потребоваться увеличить тариф VPS до 256MB, а то и до 512MB, чтобы mysql наконец смог нормально запуститься в конфигурации на 100MB!

Первое, что приходит в голову многим хостерам, раз так: дадим всем памяти в несколько раз больше, чем должно приходиться по тарифу. И вроде бы все работает. Ровно до того момента, когда на определенном проценте VPS запустятся программы, работающие с памятью более эффективно и которые из доступных, скажем 512MB, займут по 400, а не по 100. И в этот момент все VPS на данном сервере не могут получить положенную им память. Если задействовать своп (файл подкачки) на жестком диске, то десятки свопающих VPS умрут еще надежней.

В итоге мы имеем виртуальный выделенный сервер, который как-то не очень выделенный. Со странными ограничениями, похожими на шаред хостинг и другими проблемами.

Из плюсов - мгновенное изменение любых лимитов на Вашей vps при смене тарифа. Так как все ресурсы разделяются просто ведением счетчиков, то изменение тарифа сводится к изменению счетчиков. Перезагрузка vps не требуется.

Также OpenVZ vps обычно дешевле стоят, потому что позволяют хостеру продавать ресурсов заметно больше, чем их реально есть. Например, диск один на всех, а vps обычно занимают не все отведенное им место. Соответственно, хостер может продать места больше, чем его реально есть, а значит может снизить цену. Отсюда видно, почему у разных хостеров цены на vps могут сильно отличаться: чем больше хостер использует этот эффект, тем меньше цены и … как не сложно догадаться, качество услуги тоже меньше.

На нашем хостинге мы сделали довольно жесткие по лимитам тарифы, что позволило выдерживать довольно хорошее качество. Но все же vps на базе Xen позволяют поднять качество vps хостинга намного выше.

Решение проблем в Xen VPS

С появлением Xen ситуация в корне изменилась. Эта технология позволяет запустить на одном сервере десятки отдельных ядер ОС с исчезающе малыми потерями в производительности. А раз мы получаем отдельное ядро ОС на каждую vps, это сразу решает все вышеописанные проблемы!

  • Каждая Xen vps получает выделенную только ей область реальной оперативной памяти (RAM). И работает с этой областью точно так же как на реальном сервере. Соответственно, никаких проблем со странным поведением подсчета памяти.
  • Каждая Xen VPS получает раздел (или несколько) жесткого диска (partition), с которым может делать все что угодно. Таким образом, Ваша файловая система никак не зависит от кого-то еще.
  • Вы можете поставить любую ОС. Linux, FreeBSD, Solaris, Windows, хоть MS DOS. Можете произвести установку ОС, начиная с загрузки BIOS.
  • Можете установить себе как 64 бит систему, так и 32 бит. Бывают программы, не работающие нормально на 64 битных системах.
  • Можете загружать модули ядра, ставить драйверы и вообще делать все, что угодно.
  • Нет никаких лимитов на количество процессов или чего-то еще. У Вас отдельное ядро, следовательно, нет необходимости ограничивать какие-то ресурсы.
  • Та часть Xen, которая исполняет все работающие ядра ОС (по сути как обычные программы) весьма небольшого объема, а проще - значит надежней.

Время vps, сделанных по старой технологии, вышло. Наступает эра качественно новой Xen виртуализации. VPS, работающих намного лучше и гибче.