Попытка развенчания мифов об OpenVZ, или VPS на OpenVZ vs Xen/KVM/Hyper-V/etc
Попытка развенчания мифов об OpenVZ, или VPS на OpenVZ vs Xen/KVM/Hyper-V/etc
По какой-то непонятной для меня причине на Хабрахабре сложилось негативное отношение к технологии OpenVZ вообще, и к OpenVZ хостингу в частности. Этот пост попытка развенчать мифы, касающиеся OpenVZ хостинга, Хотя на мой взгляд, OpenVZ так же едва ли не лучшее решение для разделения моногенных (Linux-only сервисов) внутри предприятия на собственных серверах.
Я не являюсь заинтересованным лицом, пишу пост не от имени своего работодателя, а от самой себя.
Итак, тезис: бюджетные Linux VPS на OpenVZ, как правило, работают быстрее и стабильнее, чем бюджетные VPS, использующие гипервизоры. Дорогие VPS на гипервизорах, в «облаках» или с фиксированным тарифным планом, лучше, чем дорогие VPS на OpenVZ.
Так как топик опубликован не только в хабе Виртуализации, прошу не обижаться тех, кто администрирует фермы с большим количеством виртуальных машин и нод: я должна напомнить менее профессиональным читателям, что такое VPS
Так что такое VPS, и какие они бывают? VPS это Виртуальный Выделенный Сервер, который условно можно считать «настоящим» выделенным сервером, при этом администратор VPS имеет полный (в UNIX/Linux root) доступ к VPS-серверу, и может устанавливать любое программное обеспечение, совместимое с выбранной для VPS операционной системой, и используемой технологией виртуализации.
Синонимом термина VPS является VDS. На «буржуйском» VPS расшифровывается как Virtual Private Server, а VDS как Virtual Dedecated Server.
Слово VPS обозначает, скорее, не технологию, а услугу, предоставляемую хостинг-провайдером. При этом технологии для реализации услуги могут применятся принципиально различные.
Разделяют две группы технологий для реализации услуги VPS:
а) Виртуализацию
б) Контейнеры
При виртуализации для клиента создается полноценная виртуальная машина, со своим ядром, возможностью использования VPS на базе большого количества разных операционных систем, при этом изоляция на базе современной реализации технологии виртуализации, на гипервизорах, максимальна.
Наиболее популярные гипервизоры: VmWare ESXi(за пределами мира хостинга лидирующее решение для виртуализации), Xen, KVM, Hyper-V.
Контейнеры не создают, в отличае от виртуализации, для каждого VPS свою полноценную операционную систему, а создают на одном ядре большое количество изолированных окружений(name spaces), что позволяет не тратить хостеру ресурсы сервера впустую, а отдать их непосредственно VPS. Так же плюс контейнеров
заключается в том, что память и другие ресурсы, такие как дисковое пространство, не выделяются гостевой системе целиком (например, размер lun, отданного в распоряжение виртуальной машине в качестве диска, уже нельзя уменьшить).
Наиболее популярными(а так же технологически лидирующими, и лидирующеми по количеству инсталляций) технологиями контейнерных VPS являются Parallels Virtuozzo Containers и OpenVZ.
Главные недостатки заключаются в том, что на базе контейнеров можно предоставлять VPS только на той же системе, что и хост-система (для OpenVZ и Virtuozzo это Linux, в принципе, и так самая популярная ОС для VPS, основанных на любых
технологиях).
В целом, на базе гипервизоров можно построить услугу VPS, более качественную, стабильную и мощную, чем аренду выделенного сервера:
Мощная хост-система с топовыми CPU, поделенная с помощью гипервизора на десяток-полтора частей, с внешними дисками на быстрой дисковой полочке с десятками шпинделей, и High Available решением, перезапускающим VPS на новой ноде в
случае аппаратного сбоя хост-системы, заведомо стабильнее, производительнее, маштабируемее (всегда можно перейти на следующий тарифный план, или заказать новый VPS, который Вам развернут за минуты из шаблона) чем, возможно, любой самый дорогой физический сервер, который можно взять в аренду: крупные операторы вообще предпочитают сдавать в аренду «серверы», собирая их из десктопных комплектующих, даже без поддержки ECC-памяти, и продавая не очень разбирающимся людям мегагерцы десктопных процессоров, таких как Corei7, при этом стабильность работы такого железа в режиме 7/24 это не их проблемы.
При этом, такие VPS часто закономерно, как лучшая услуга, оказываются _дороже_ чем выделенные серверы, да и затраты на оборудование адекватно организованный хостинг на гипервизорной технологии требует очень не маленькие, поэтому такие сервисы как Amazone EC2, или, например, VPS от Leaseweb на VmWare ESXi с дисками на SAN с raid60 и стоят недешево: хостер не может продавать услугу ниже ее себестоимости.
К сожалению, среди пользователей услуги VPS господствует миф, который мы сейчас развенчаем:
«VPS на Xen лучше, чем VPS на OpenVZ/Virtuozzo»
На вопрос «чем лучше» обычно отвечают, что «хостер на OVZ оверселлит, и врет, и продает мои, честно купленные, потребителем услуги ресурсы другим клиентам, поэтому все тормозит! На Xen нельзя оверселлить!»
Обычно люди не понимают, что возможность обмануть клиента по сотне пунктов у хостера есть всегда, и технология тут совсем ни при чем…
Этот миф исскуственно подогревается некоторыми, вероятно, не очень добросовестными компаниями, предоставляющими дешевый Xen-хостинг.
Дело в том, что качественных VPS на гипервизорах, за те же деньги, что продаются VPS на OpenVZ, получить невозможно.
При эксплуатации хостинговых серверов часто возникает потребность, например, выключить физическую машину для профилактики, перевозки в другой дата-центр, апгрейда, что бы предоставить больше ресурсов клиентам на новых тарифах,
так как вычислтительная техника продолжает развиваться по закону Мура, удваивая вычислительную мощь каждые два года), да и в случае, если сервер ведет себя нестабильно, неплохо бы перенести VPS клиентов на новый сервер. Еще чаще возникает необходимость балансировки нагрузки: на одной ноде VPS продали слишком много, а на другой слишком мало. дешевые Xen хостеры вынуждены или выключать часть клиентов, и перевозить их offline на недогруженный сервер, или не обращать внимание на жалобы клиентов на перегруженном сервере : авось кто-то уйдет, и тормозить у остальных VPS перестанут!
Так вот, для того, что бы не выключать для клиентов сервис на несколько часов, нужна технология живой миграции, а она не совместима с дешевыми Xen VPS, так как требует от хостера инвестиций в SAN и сеть построения данных, и тогда уже нет смысла и закупать дешевые серверы: VPS на гипервизорах, или как сейчас часто говорят, в «облаках» это более качественная и «продвинутая» услуга, чем обычный сервер, и совсем не конкурент «контейнерным» VPS, прежде всего по цене.
OpenVZ и Virtuozzo контейнеры позволяют прозрачно для клиентов, online, переносить VPS с физического сервера на физический сервер без дорогостоящих инвестиций в сеть хранения данных.
Что касается «оверселлинга», это миф, так как наоборот, возможность оверселлинга для клиента хостера благо, так как ни один VPS, если он работает стабильно, не находится 100% времени возле пределов своего тарифного плана (иначе сервисы на VPS будут работать нестабильно и медленно, и тарифный план был выбран неверно).
При использовании обычных, выделенных, невиртуализированных серверов (colocation или dedicated) большая часть ресурсов сервера так же простаивает, и клиент платит за эти холостые такты.
Если хостер Вам нагло не врет, и ресурсов у физического сервера достаточно, возможность без ухудшения качества сервиса для конечного клиента передать неиспользуемые им ресурсы другому VPS, это благо и для хостера и для клиента, так как хостер повысит свою рентабельность, и может, например, или закупить более мощные серверы, что бы Ваши номинальные мегагерцы значили больше, или снизить цены, или повысить зарплаты саппорту.
При десятках VPS на физический сервер вероятность того, что всем клиентам одновременно потребуются их ресурсы, стремится к нулю. Зато она часто существенна при количестве VPS до десяти-пятнадцати на сервер, что часто встречается у Xen-хостеров, таким образом оверселлинг по CPU для «честного» Xen хостера гораздо более вероятен, чем оверселлинг по памяти для хостера OpenVZ
Можно добавить, что в рамках контейнерной технологии выше производительность, так как нет накладных расходов на запуск гостевых ядер и переключение контекстов: например, можно посмотреть бенчмарк Xen vs OpenVZ компании HP, в котором можно увидеть, что разница очень и очень существенна:
www.hpl.hp.com/techreports/2007/HPL-2007-59R1.pdf
Так же в адрес Xen часто раздается критика по поводу производительности дисковой подсистемы, причем даже со стороны разработчиков других гипервизоров, того же KVM, да и Xen-хостеры часто лукавят: оверселлинг по CPU в Xen так же возможен.
Кроме того, VPS на Xen, KVM, Hyper-V с локальными дисками, без SAN, всегда катастрофически медленнее VPS на OpenVZ с локальными дисками из-за технологии vzswap.
Я бы сказала, что vzswap это такая убер фича OpenVZ VPS, которая, правда, включена не у всех OVZ хостеров.
Клиент, купивший VPS на гипервизоре, делает у себя swap файл. Когда его VPS «ложится» от, например, мощного DDoS, его приложения уходят в swap, от интенсивного ввода-вывода страдают соседи по физическому серверу. Очень тяжело помешать Вашему соседу по физической машине создать такой файл.
Напомню, если кто-то не знает, или забыл, виртуальную память можно представить как RAM(планки памяти DDR/DIMM/SIMM на x86/x86_64 компьютерах) + swap (файл или раздел подкачки).
В технологии OpenVZ свапинг осуществляется централизованно ядром, клиенту выделяется виртуальная память в качестве «RAM» и… виртуальная память в качестве «swap». Память vzswap тоже виртуальна! Только исскуственно замедленна, и обычно находится не в физическом swap, а в физическом RAM. Когда VPS начинают DDoS'ить, и она уходит в swap от десятков-сотен процессов апача, или сотен тысяч sql-запросов, VPS естественным образом замедляется, так как vzswap медленная память! Но диск физического сервера при этом не используется, так как ядро будет сбрасывать в настоящий swap только те данные, которые долго не использовались, что очень радикально скажется на производительности ввода-вывода для всех VPS.
В заключение хотелось бы напомнить о парадоксе заключенных из Теории Игр, текст из википедии:
Двое преступников, А и Б, попались примерно в одно и то же время на сходных преступлениях. Есть основания полагать, что они действовали по сговору, и полиция, изолировав их друг от друга, предлагает им одну и ту же сделку: если один свидетельствует против другого, а тот хранит молчание, то первый освобождается за помощь следствию, а второй получает максимальный срок лишения свободы (10 лет). Если оба молчат, их деяние проходит по более лёгкой статье, и каждый из них приговаривается к 0,5 года. Если оба свидетельствуют против друг друга, они получают минимальный срок (по 2 года). Каждый заключённый выбирает, молчать или свидетельствовать против другого. Однако ни один из них не знает точно, что сделает другой. Что произойдёт?
Ненависть к оверселлингу, и негатив к желанию хостера продавать другим клиентам те ресурсы, которые Вы все равно не используете, при том, что по теории вероятности, когда они Вам понадобятся, они Вам все равно практически всегда достанутся, является, на мой взгляд, самым худшим вариантом игры «Парадокс заключенных»: мешая хостеру заработать больше денег, вы мешаете прежде всего себе, так как и хостеру выгодно, что бы вы зарабатывали и оплачивали услуги, и вам выгодно, что бы хостинг был рентабелен, и у него было больше денег на оборудование, зарплату техподдержке, итд.
Тут некоторые Xen-хостеры, нападая на OpenVZ, часто используют низменные наклонности человеческой натуры, желание сыграть эгоистично в игре «парадокс заключенных», а так же врут, лукаво умалчивая про то, что они оверселлят процессор: у них на одном ядре CPU может быть несколько VPS, которые будут друг другу мешать.
Резюмируя, на сегодня лучшим выбором бюджетного VPS является только OpenVZ/Virtuozzo, а «гипервизорные» и «облачные» VPS, уже теснят услугу аренды физических выделенных серверов: если Вам нужна гибкость и стабильность услуги, и под проект есть бюджет, о таких VPS стоит задуматься уже сейчас.
UPDATE Судя по комментариям, и тому негативу, что мне написали в личке, не все поняли, что этот топик не против Xen, Kvm, VmWare и др. гипервизоров в хостинге, он наоборот за них, когда хостинг использует сеть SAN или хотя бы DAS, топик немножко против дешевых Xen хостеров, и в первую очередь, топик написан за OpenVZ