openvz или kvm что лучше
Попытка развенчания мифов об 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
OpenVZ или KVM: что лучше выбрать
OpenVZ и KVM — виртуализации, которые используют в услугах VPS/VDS. В этой статье мы расскажем, в чем отличие между этими технологиями.
Чем отличаются OpenVZ и KVM
OpenVZ — виртуализация на ядре Линукс, которая функционирует исключительно на уровне операционной системы и позволяет создавать контейнеры с виртуальным окружением. Возможности OVZ ограничиваются тем, что можно установить только дистрибутивы Линукс: ЦентОС, Убунту, Дебиан и т. д. Технология известна простотой управления сервером.
KVM — технология аппаратной виртуализации, которая дает возможность создать на хост-машине абсолютный виртуальный аналог физического сервера: клиент может адаптировать и изменять ОС под персональные потребности без ограничений. Разрешена установка любой операционной системы.
Основная разница между ними заключается как раз в технологии: OVZ — виртуализация на уровне ОС, KVM — аппаратная виртуализация (эмулируется аппаратное обеспечение компьютера). Бюджет на построение виртуальной среды на базе KVM обычно больше, чем аналогичной системы на OpenVZ.
Так можно представить виртуализацию на картинке.
OpenVZ vs KVM
Возможность динамического распределения ресурсов процессора.
Возможность установки любой операционной системы.
Высокий уровень приватности.
Независимость ресурсов друг от друга.
Если вы планируете установить Windows, то вам подойдет VPS на KVM. Виртуальные выделенные серверы на OpenVZ обычно продают уже с предустановленными шаблонами с дистрибутивами Linux. Также на OVZ производительность сервера может изменяться в большую или меньшую сторону, на KVM же каждый сервер получает установленные ресурсы.
Гостевыми системами могут служить только различные дистрибутивы Linux.
Может показаться трудной для неопытных пользователей.
Выбирайте виртуализацию в зависимости от ваших целей и потребностей. Если вы не хотите тратить много денег, то выбирайте OpenVZ. Если вам нужна другая ОС (например, Windows), используйте KVM.
OpenVZ, Xen и KVM — различия, преимущества, сравнение
Виртуализация серверов захватила ИТ-отрасль штурмом. За последние несколько лет она стала невероятно популярным и распространенным решением. Огромное количество организаций применили виртуализацию серверов и сместили акцент на виртуальное пространство, чтобы минимизировать затраты, сохранив при этом все свои услуги. Существенная часть сферы услуг в предоставлении виртуальных серверов держится за хостинг-провайдерами, например, bluevps.ru, у которых можно приобрести VPS для любых нужд.
Бизнес-сценарий постоянно сохраняется. Важно экономить средства, чтобы выжить в экономическом плане, при этом поддерживая технологический прогресс. Методы виртуализации позволяют компаниям быстро и эффективно реагировать на запросы. Внедрение виртуализации дает ряд жизненно важных преимуществ, которые в основном включают:
1. Экономическая эффективность
Чтобы бизнес оставался успешным, он должен постоянно стремиться сокращать все виды затрат. Компании, которые обращаются к виртуализации, существенно экономят на своих расходах. Виртуализация позволяет компании уменьшить количество физических машин, необходимых для запуска нескольких приложений. Это экономит физическое пространство, которое в противном случае требовалось бы для центров обработки данных или серверов, а также значительно сокращает расходы на электроэнергию и охлаждение.
2. Гибкость операционной системы
Невероятно быстро меняющаяся бизнес-среда требует от компании не только эффективности, но и гибкости. Виртуализация серверов позволяет запускать идентичные или разные операционные системы и приложения на одном сервере с использованием нескольких виртуальных серверов. Это дает клиентам возможность протестировать различные операционные системы без необходимости менять оборудование.
KVM обеспечивает полную аппаратную виртуализацию. По сути, это означает, что вы можете запускать любую операционную систему в качестве гостя, будь то Linux/Windows/BSD, и вместе с виртуальным драйвером вы получаете почти идентичную собственную производительность. Он поддерживает установку на основе ISO и шаблонов. Он также отличается хорошим разделением с точки зрения конфиденциальности, поскольку данные скрыты от других пользователей. Однако при большой нагрузке журнал ввода-вывода может иногда возникать, что может отражаться на операционной системе хоста и гостевых операционных системах.
KVM использует технологию аппаратной виртуализации, что означает, что основная операционная система на сервере может моделировать оборудование для другой ОС, чтобы работать поверх нее. Затем он также действует как гипервизор, который управляет и распределяет общие ресурсы, такие как время процессора и сетевой ввод-вывод.
KVM не содержит пакетных ресурсов, все они либо общие, либо выделенные. Это означает, что все дисковое пространство или оперативную память обычно сложнее перегрузить, поскольку существует неминуемая опасность для всех пользовательских данных. Обратной стороной KVM является то, что если ресурсы превышают лимит, VPS должен поменяться местами, что может привести к серьезному падению производительности или начать уничтожать процессы один за другим. В отличие от OpenVZ, KVM не может временно работать, заимствуя средства у одного из своих партнеров, поскольку все выделенные ресурсы полностью изолированы друг от друга.
Поскольку KVM моделирует различное оборудование, вы также можете запускать любой тип ядра в пределах его возможностей. Это также означает, что KVM не ограничивается только ядром Linux, установленным в корневом узле. KVM также может работать с другими ОС x86, такими как Windows и BSD. Наличие независимого ядра означает, что VPS может загружать свои собственные модули и в дальнейшем изменять ядро. Это уникальная функция KVM, которую OpenVZ не поддерживает.
В KVM каждый процесс связан с хост-узлом и работает на нем. Это отлично подходит для обнаружения того, какой гость вызывает проблемы, если таковые возникают, однако это также может вызвать проблемы, такие как замедление, когда хост находится под большой нагрузкой.
Пользователь может легко перераспределить оперативную память с минимальными усилиями, хотя это маловероятный сценарий, если хост не является полностью SSD. Накладные расходы, которые это возложит на хост-узел, приведут к огромным проблемам с производительностью. Хотя KVM, являющийся родным для всех современных ядер, действительно дает большое преимущество перед другими в различных обстоятельствах, он все еще является довольно новым и все еще находится в стадии активной разработки. Многие организации выбирают KVM за гибкость и отличную производительность.
OpenVZ
OpenVZ становится все более популярным в индустрии хостинга из-за его очень высокой плотности и быстрого развертывания. Это возможно, поскольку ядро хоста совместно с гостями использует дисковое пространство, ЦП и ОЗУ. Между хостом и гостем существует очень простое разделение, а узкое место ввода-вывода практически отсутствует.
OpenVZ — это программное обеспечение для виртуализации, предлагаемое SWSoft Inc. OpenVZ предлагает огромное количество преимуществ для администратора, поскольку позволяет размещать несколько виртуальных сред на одном сервере. Единственными ограничениями для этого являются ЦП и ОЗУ.
OpenVZ — это технология виртуализации на уровне ОС, основанная на ядре Linux. Это позволяет одному физическому серверу запускать несколько различных экземпляров операционной системы, известных как виртуальные среды или виртуальные частные серверы.
В отличие от паравиртуализации и технологий VMWare, таких как Xen, OpenVZ ограничен, поскольку требует, чтобы и гостевая, и хост-ОС были Linux, хотя дистрибутивы Linux могут быть разными в виртуальных средах с общим ядром. OpenVZ предлагает хорошее преимущество в производительности, и штраф за запуск OpenZ составляет от 1 до 3% по сравнению с другим автономным сервером.
Поскольку OpenVZ использует одну модель ядра, он может поддерживать до 64 процессоров и до 64 ГБ оперативной памяти. Единая виртуальная среда может масштабироваться до целого физического блока и использовать всю оперативную память и все процессоры.
OpenVZ разделен на настраиваемое ядро и может использоваться ряд инструментов, таких как vzstat, vzctl и т.д. Помимо этого, в OpenVZ отсутствуют некоторые функции коммерческого продукта Virtuozzo, такие как расширенная файловая система, функции создания шаблонов, позволяющие экономить дисковое пространство, и дополнительные пользовательские инструменты. OpenVZ гибок, эффективен и предлагает качественные услуги в корпоративной среде. Каждый виртуальный частный сервер представляет собой независимое оборудование, которое может быть перемещено в другую систему на основе OpenVZ внутри сети.
Что касается задержки диска и скорости доступа к диску, OpenVZ явно является победителем по сравнению с Xen и KVM, однако, когда дело доходит до стоимости отсутствия разделения и конфиденциальности, а также влияния одной гостевой ОС на оба хоста. node и других гостевых ОС, это очень беспокоит. Все отдельные процессы видны хост-узлу, и данные не могут быть зашифрованы или скрыты.
OpenVZ поддерживает только Linux, если не используются различные коммерческие параллели. Преимущество OpenVZ в том, что он также может быть вложен в KVM или Xen для достижения еще большей плотности. Из-за количества гостей, которые вы можете запустить на хост-узле, цена OpenVZ остается гораздо более конкурентоспособной, чем Xen или KVM.
Xen предлагается в двух вариантах, которые могут работать одновременно на одном физическом хосте: XEN HVM (полная аппаратная виртуализация) и PV (паравиртуализация).
Xen — это гипервизор с открытым исходным кодом, включенный в ядро Linux, благодаря чему его можно найти во всех дистрибутивах Linux. Xen Project — один из многих проектов, распространяемых и управляемых Linux Foundation.
Среда, в которой работает Xen, может состоять из различных частей. Изначально существует домен 0. В Xen это способ обозначения операционной системы (ОС) хоста, поскольку она, по сути, не является операционной системой хоста, поскольку она недоступна другим виртуальным машинам для доступа к оборудованию хост-сервера. Домен 0 отвечает только за предоставление доступа к драйверам и поддержание координации, необходимой для запуска приложений. Помимо домена 0, существуют другие виртуальные машины, которые называются доменом U.
Xen предлагает два разных типа виртуализации: паравиртуализацию и полную виртуализацию. При паравиртуализации виртуализированная операционная система запускает модифицированную версию той же ОС, в результате чего основная ОС знает, что она виртуализирована. Это обеспечивает эффективную и действенную связь между физическим оборудованием и ОС, поскольку все аппаратные устройства могут быть связаны напрямую. Единственный реальный недостаток паравиртуализации состоит в том, что требуется модифицированная гостевая ОС, которая не поддерживается рядом поставщиков.
Второй тип — полная виртуализация. В этом режиме от ЦП требуется поддержка дополнительных расширений виртуализации. Преимущество состоит в том, что даже немодифицированная виртуализированная ОС может напрямую обращаться к оборудованию благодаря этой поддержке.
По сравнению с Xen, Red Hat отказалась от поддержки Xen еще в 2010 году, когда интерес начал смещаться с Xen на KVM в качестве основной платформы виртуализации Linux. KVM зарекомендовал себя как одна из ведущих платформ виртуализации для Linux в период, когда Red Hat отказалась от Xen в 2010 году, а Linux Foundation приняла его в 2015 году.
Гости Xen PV чаще всего основываются на шаблонах для быстрой разработки. Вы можете запустить собственное ядро в XEN PV, что в настоящее время в значительной степени является настройкой по умолчанию. Однако вы можете запустить Linux на Xen PV и BSD только с некоторой дополнительной конфигурацией, хотя это не очень распространено.
Xen HVM также работает аналогично KVM, поскольку у него есть лучшие драйверы для дистрибутивов на основе Linux, поскольку PV доступен в качестве опции по умолчанию с 2006 года. Вам не нужно добавлять модули или драйверы для повышения производительности, так как ядро будет просто работать. нормально без них. Однако, хотя ядро Linux работает идеально, Windows и BSD постоянно не работают на Xen HVM, в отличие от KVM. Если вы все еще хотите запускать Windows, вы можете попробовать установить драйверы PV для Windows, однако это будет работать только в определенной степени.
По крайней мере, Xen достаточно зрелый, и большинство людей выбирают Xen за его исключительную стабильность и хорошую производительность. Хосты Xen обычно заранее выделяют ядра ЦП и оперативную память для гипервизора Xen, все выделенные ресурсы установлены, и ни один гость не может повлиять на производительность, что обеспечивает стабильность.