Что быстрее на том же оборудовании, Xen или KVM?
Я пытаюсь подобрать для работы технологию виртуализации, которая дает максимальную производительность.
Вот несколько тестов, которые я нашел по этому поводу: http://virt.kernelnewbies.org/XenVsKVM
Они показывают KVM как победителя со значительной разницей в производительности, что противоречит идее о том, что KVM - это гипервизор второго типа, и по определению он должен быть медленнее, чем гипервизоры первого типа (например, Xen) - или, по крайней мере, статьи в сети говорят.
Есть идеи по этому поводу?
Этот тест просто сравнивает скорость собственной ОС с одной гостевой ОС. Это вряд ли реальный тест. Не думаю, что я бы стал придавать этому большое значение. Большая часть лагеря KVM утверждает, что Xen требует слишком много прерываний и прыжков между ядром и пользовательским пространством, но из большинства более реальных тестов, которые я видел, на самом деле не было реализовано, и Xen кажется немного быстрее чем KVM.
Извините, у меня нет ссылки, чтобы поддержать это под рукой. Но я скажу, что KVM быстро улучшается и, похоже, быстро догоняет набор функций и стабильность.
Относительно того, какой подход лучше. Лагерь Xen будет утверждать, что настоящий легкий гипервизор требует виртуализации, чтобы быть безопасной и быстрой. Xen также начинает поддерживаться в прошивке некоторыми поставщиками, что тоже хорошо. Лагерь KVM будет утверждать, что KVM проще и что Linux может быть хорошим гипервизором.
В конце концов, пока неясно, какое направление в итоге победит. У Xen определенно есть преимущество, и он уже занимает значительную долю рынка. Но пока этого нет в основном ядре. Надеюсь, это скоро изменится, и, безусловно, в последние несколько месяцев об этом много говорилось в списке ядер. Red Hat сейчас находится в лагере KVM и будет продвигать ее как предпочтительную платформу виртуализации. Скоро выйдет Red Hat Linux 5.4. Так что это, скорее всего, привлечет магазины, которые еще не развернули платформу виртуализации или не использовали ее.
Что касается инструментов, и Xen, и KVM используют libvirt и QEMU, а также связанные с ними инструменты. Таким образом, они используют одни и те же инструменты, такие как virt-manager.
Мы используем Xen на работе, и он нам подходит. Но я изучал KVM из-за некоторых проблем с пересылкой USB и сквозной пересылкой PCI, которые я не смог решить с помощью Xen. Я не уверен, что KVM лучше в этом, но я думаю, что выясню, как только попробую. Изучая свои проблемы с USB, я заметил одну вещь: документация KVM более понятна и организована по сравнению с документацией Xen. Но идеальной платформы виртуализации не существует, поэтому вам нужно выяснить, что для вас имеет смысл.
Я лично выбрал бы виртуализацию на основе удобства использования, поддержки, надежности и пригодности для виртуальных машин, которые вы используете.
Скорость передачи данных по сети Xen кажется такой же хорошей, как и у реального оборудования, но у меня также были битвы с Xen, vLans и несколькими картами Ethernet. У меня нет опыта работы с KVM, но я также предлагаю вам рассмотреть VMware ESX (i).
Вы найдете очень интересную информацию по этому поводу в следующей презентации: Количественное сравнение Xen и KVM
Человек, который сделал это, является экспертом по Xen, но сравнение кажется довольно справедливым.
Я мог бы рискнуть здесь, но я не думаю, что чистая производительность является самым важным показателем, когда дело касается таких технологий.
Я считаю, что удобство использования и интерфейс важны, а также инструменты для поддержки надежной инфраструктуры. Мне кажется, что Xen имеет гораздо более надежный набор существующих приложений, которые его поддерживают, чем KVM. Возможно, это не так, поскольку у меня нет доказательств, подтверждающих это.
Что бы вы ни выбрали, решите, какое решение для вас лучше, и посмотрите на весь пакет, а не только на чистую производительность.
FWIW: Ответ полностью зависит от ваших потребностей сейчас и в будущем.
Да, я знаю, что это бесполезный ответ. К сожалению, это правда. Ваш выбор виртуализации повлияет практически на все, что вы делаете после этого, поэтому вам нужно задать себе несколько вопросов.
(1) Действительно ли для вас так важна разница между 97% собственной производительности и 96% собственной производительности (цифры вырваны из воздуха)?
(1a) Если один лучше справляется с доступом к HD (что на самом деле означает, что вы либо используете отличную базу данных, либо не можете позволить себе дополнительную оперативную память), а другой лучше справляется с сетью, что для вас важнее ?
(2) Уверены ли вы в использовании инструментов, поставляемых с любым решением?
(3) Имеет ли значение тот факт, что одно (в некотором роде) встроено в последние ядра Linux, а другое нет?
(3a) Вы сейчас или когда-нибудь были ... э-э ... вам когда-нибудь понадобится запустить другую ОС в условиях виртуализации? Это не обязательно должна быть Windows. Это может быть FreeBSD, или даже Haiku, или что-то еще. (Ксен, вероятно, здесь выиграет, но я предлагаю вам проверить.)
Глядя на общую картину, я вижу, что KVM - это ответ Linux на зоны Solaris. (Я бы предпочел зоны Solaris, но я вижу параллель.) Я считаю Xen зрелой технологией гипервизора с поддержкой нескольких ОС, но тогда, если вам не нужно несколько ОС, это не имеет большого значения.
Честно говоря, вы в любом случае не ошибетесь (с учетом оговорок выше). Я предпочитаю Xen, потому что я учился в Кембридже; но тогда, если бы я работал на RH, я бы, наверное, предпочел KVM.
Большая часть сложности или простоты настройки KVM зависит от распределения. Выбор дистрибутива, ориентированного на Xen, упростит работу с Xen. Выбор дистрибутива, ориентированного на KVM, упростит KVM.
Вопрос об инструментах несколько неактуален, потому что оба используют libvirt. Это означает, что в большинстве случаев вы используете одни и те же инструменты управления.
В конце 2017 года Amazon, которая ранее была крупнейшим пользователем Xen, объявила, что будет использовать KVM для всех новых типов инстансов C5. Насколько мне известно, в числе крупных пользователей Xen остался только облачный провайдер SoftLayer. Линод перешел в 2015 году, и сообщил о значительных улучшениях производительности.
Трудно найти реалистичное и актуальное сравнение производительности, но, похоже, между обоими решениями нет такого огромного разрыва, как вы могли подумать. В зависимости от варианта использования Xen может быть еще быстрее. У KVM есть и другие преимущества, поскольку он является частью ядра Linux и принят RedHat, которые также актуальны. Например, этот ответ объясняет, почему Google выбирает KVM для Google Compute Engine.
Тем не менее, тот факт, что почти все облачные провайдеры, особенно Google и Amazon, предпочитают KVM Xen, является сильным аргументом в пользу того, что для типичных рабочих нагрузок KVM - очень хороший выбор с точки зрения производительности.