21 июля 2010 г.

KVM и/или Xen? Выбор платформы виртуализации

Читая новости, я обнаружил статью с кратким обзором имеющихся решений виртуализации от небезызвестного Joe Brockmeier. Статья показалась мне интересной, привожу свой перевод. Ссылка на оригинал традиционно приводится в конце статьи.

Понедельник, 12 Июля 2010 00:00 Joe 'Zonker' Brockmeier

Когда Xen появился в 2002 году, он, выпущенный под лицензией GPL, выглядел основным претендентом на «корону» основной платформы виртуализации для Linux. Если же мы быстро перенесемся в настоящее время, то увидим что новичок в этой области полностью вытеснил Xen, как основу виртуализации по умолчанию в дистрибутивах Red Hat и, более того, вполне себе комфортно обосновался в основном ядре Linux. Что же выбрать из них? Xen или KVM?
Область виртуализации развивается довольно быстро. Поэтому если у вас нет времени следить за разработкой KVM или Xen, то у вас неизбежно появятся затруднения в выборе лучшего для вас варианта. Ниже приведен беглый обзор состояния текущего рынка решений виртуализации на основе Xen и KVM.

KVM и Xen
Xen это гипервизор, поддерживающий следующие архитектуры: x86, x86_64, Itanium, и ARM. Он может запускать Linux, Windows, Solaris, и некоторые из BSD-систем в качестве гостевых ОС (на поддерживаемых гостевой системой процессорных архитектурах). Он поддерживается рядом компаний, в первую очередь Citrix , также используется Oracle для Oracle VM, и других. Xen может реализовать режим полной виртуализации на тех системах, которые имеют поддержку технологии аппаратной виртуализации (такие как Intel-VT и AMD-V), а может работать как обычный гипервизор на машинах, которые не имеют таких расширений.
KVM это гипервизор, который находится в основном ядре Linux. Вашей родительской системой в случае его использования, естественно, обязана быть Linux, но в качестве гостевых систем поддерживаются Linux, Windows, Solaris и BSD-системы. Он работает на архитектурах x86 и x86-64 с аппаратной поддержкой виртуализации. Это означает, что KVM не может использоваться на старых процессорах не имеющих такой поддержки, а также на некоторых новых CPU (например, процессоры Intel Atom). По большей части, это не проблема для дата-центров, которые, так или иначе, все равно меняют оборудование раз в несколько лет. Но это также означает, что KVM не вариант для ряда узкоспециализированных систем, таких например, как SM10000, которые пытаются использовать процессоры Atom в центрах обработки данных.
Если вы хотите использовать виртуализацию на основе Xen, то вам нужно ядро, собранное с его поддержкой. Хоть Linux и может запускаться в качестве гостевой системы под Xen с ядра версии 2.6.23, использовать ее «из коробки» в качестве родительской системы не получится. Это означает, что не каждый дистрибутив Linux можно использовать для запуска виртуальных машин под Xen. Поэтому вам нужно выбрать дистрибутив Linux, который поставляется с поддержкой Xen или собрать собственное ядро (Последний совет не самый легкий путь, поскольку патчей для поддержки Xen очень много, накладываются они не на каждое ядро и даже если они все наложатся успешно, не факт, что ядро корректно соберется. Проще найти дистрибутив, ядро которого уже пропатчено для поддержки Xen. Поскольку Novell поддерживает решения на Xen, то, например, все ядра openSUSE собираются с его поддержкой. Найти их можно здесь. Прим. перев.). Еще один путь - использовать одно из коммерческих решений на базе Xen, такое как Citrix XenServer. Единственная проблема в том, что эти решения зачастую не являются решениями с полностью открытым исходным кодом.
Поэтому многие собирают собственные ядра или ищут того, кто может это сделать. Xen используется на довольно большом количестве серверов: от недорогих провайдеров Virtual Private Server (VPS) (как Linode ) до таких «больших мальчиков», как Amazon EC2.Статья на TechTarget показывает, что провайдеры, которые вложили значительные средства в решения на Xen совсем не собираются переключаться на что-либо еще. Даже если KVM и превосходит Xen технически, они вряд ли будут ломать и перестраивать существующие решения только для того, чтобы получить незначительный выигрыш.
Но у KVM в любом случае пока еще нет таких технических преимуществ. Поскольку Xen используется немногим дольше, у него было больше времени для достижения зрелости, чем у KVM. Вы можете найти некоторые возможности в Xen, которые еще не появились в KVM, хотя этот проект имеет длинный список TODO (то, что приведено в этом списке - просто набор идей над которыми планируют работать разработчики KVM, а не идеи по достижению паритета с Xen). У KVM на самом деле есть пока только одно небольшое преимущество, которое может позволить ему стать основным гипервизором в Linux. Если вы используете последние ядра Linux, у вас уже есть KVM. В Red Hat Enterprise Linux с версии 5.4 включена поддержка KVM и эта компания предполагает отказаться от Xen в пользу решений на KVM в RHEL 6.
Это, в частности, может служить указанием того, чего достиг KVM в техническом плане. Мало того, что Red Hat имеет преимущество в наличии значительного количества талантливых программистов для разработки KVM, у них есть еще одно преимущество, выражающееся в появлении дополнительных препятствий для компаний, которые клонировали Red Hat Enterprise Linux и инвестируют значительные средства в Xen. Исключая Xen из планов своего развития, они заставляют эти компаний также отказаться от Xen или брать поддержку Xen-решений на себя и отказаться от клонирования RHEL. Это означает дополнительные расходы на инженеров, больше усилий для ISV-сертификаций и т.д.
KVM в настоящее время не может тягаться с Xen, хоть и быстро его догоняет. Он достиг достаточной степени зрелости для того, чтобы многие организации комфортно использовали его в своей работе. Значит ли это, что Xen'у пора на выход? Не так быстро.

Останется только один?

Выбор «KVM или Xen» скорее всего будет диктоваться вашим вендором. Если вы используете RHEL в течение длительного времени, ставьте на KVM. Если вы используете Amazon EC2, вы уже используете Xen, и т. д. Основные Linux-вендоры, по-видимому, будут предлагать решения на основе KVM, но есть и достаточное количество коммерческой поддержки для Xen. Весьма вероятно, что Citrix не собирается в ближайшее время уходить с этого рынка.
Бывает очень соблазнительно рассматривать технологию в ИТ-индустрии как игру с нулевой суммой (игра, в которой выигрыш одного означает аналогичный проигрыш другого - прим. перев.), где одно решение выигрывает, а другое - проигрывает. Но истина заключается в том, что Xen и KVM в ближайшее время будут сосуществовать. Рынок виртуализации достаточно велик, чтобы на нем хватило места нескольким решениям, у каждого из них имеется серьезный тыл, что также гарантирует их совместное сосуществование.

6 комментариев:

  1. Э-э... Я что-то ничего не увидел по поводу собственно выбора системы виртуализации. В статье приведены какие-то общие пространные разглагольствования про XEN и КVM. Про конкретные преимущества/недостатки каждого подхода с технической точки зрения ничего не сказано.

    ОтветитьУдалить
  2. Статья - водичка

    ОтветитьУдалить
  3. На KVM пока напряг с паравиртуализацией, так что по скорости он сливает.

    ОтветитьУдалить
  4. "напряг с паравиртуализацией"?
    Месье что-нибудь курил про virtio?

    ОтветитьУдалить
  5. да - как-то просто описано, без сравнения xen vs kvm...
    Есть ли у kvm архитектурные преимущества?
    Больше ли kvm разработчиков?
    Сколько тратиться на совместимость xen и ядра ресурсов?

    Может kvm и перспективнее, но если его пилит количество людей в н-раз меньше чем xen, то значит, что xen еще нужно использовать :)
    Наверно для ответа на эти вопросы надо быть хорошо знакомым с обеими технологиями и посмотреть когда и где был xen и чего достиг и на эту прямую нанести kvm, учитывая то, что kvm немного повторяет и может использовать решения из xen...

    Разница в основание проектов ~2 года

    Первый публичный релиз Xen'а произошёл в 2003 году. В октябре 2007 Citrix купила XenSource.

    Программное обеспечение KVM было создано, разрабатывается и поддерживается фирмой Qumranet которая была куплена RedHat за 107 миллионов долларов 4 сентября 2008 года

    Domain Name: QUMRANET.COM
    Registrar: GODADDY.COM, INC.
    Creation Date: 17-feb-2005

    ОтветитьУдалить
  6. > да - как-то просто описано, без
    > сравнения xen vs kvm...
    Да автор и не хотел ничего бОльшего написать.

    ОтветитьУдалить