Что лучше работает при интенсивном использовании ЦП и памяти на виртуальных серверах, Xen или VirtualBox?
Хэмиш Даунер ответ ошибается в последнем пункте. Xen может запускать немодифицированные гостевые системы, однако они должны запускаться как полностью виртуализированные гостевые системы HVM. Для этого необходимо, чтобы на главном компьютере была поддержка аппаратной виртуализации с процессорами с поддержкой Intel VT или AMD-V.
У Xen и Virtualbox есть свое место, но это два разных типа гипервизоров. Xen - это гипервизор типа 1, а Virtualbox - гипервизор типа 2. Гипервизоры 1-го типа обычно используются в серверных средах, где гипервизоры 2-го типа чаще используются для запуска нескольких ОС, с которыми вы взаимодействуете в качестве рабочих столов. Я думаю, это в основном из-за их простоты и лучшей интеграции с рабочим столом. Однако гостевые системы под гипервизором типа 2 находятся дальше от базового оборудования и, как правило, медленнее, чем гостевые системы под гипервизором типа 1. Как и во всем, всегда будут исключения из правил.
Xen обычно работает намного лучше, чем VirtualBox, потому что VirtualBox запускает гостевую ОС таким образом, что гостевая ОС не знает, что она работает в виртуальной среде. Или, другими словами, гостевая ОС не модифицируется для виртуальной работы. Из-за этого VirtualBox должен «перехватывать» инструкции типа ядра, запускать некоторый собственный код и затем возвращать управление гостю. Он может использовать поддержку аппаратной виртуализации, предоставляемую Intel и AMD, но даже в этом случае накладные расходы увеличиваются.
Тем временем Xen гарантирует, что гостевая ОС будет перекомпилирована в соответствии с моделью Xen. Таким образом, управление плавно передается от гостевой ОС к гипервизору, без лишних затрат, связанных с тем, что гостевая ОС имеет прямой доступ к оборудованию.
Для обзора нескольких технологий виртуализации, включая данные тестов производительности, прочтите этот отчет. Он говорит только о Linux, но охватывает Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox и QEMU. Linux-Vserver и Xen, как правило, показали лучшие результаты, но прочтите отчет, чтобы увидеть различные рабочие нагрузки.
Сказав все вышесказанное, могут быть некоторые области, в которых VirtualBox превосходит Xen. Если ваша гостевая ОС имеет графический уровень управления окнами, VirtualBox имеет для этого хорошую поддержку, особенно если вы устанавливаете некоторые специальные компоненты VirtualBox в гостевой ОС.
И, наконец, вы должны знать, что Xen будет запускать только модифицированную гостевую ОС. Он не может запускать немодифицированную гостевую ОС.
Я могу говорить только о Xen, поскольку я когда-либо использовал Virtualbox только для виртуализации Windows-машины на моем рабочем столе Mac.
Как уже упоминалось, Xen (и XenServer, основанный на Xen) использует паравиртуализированные ядра, которые значительно улучшают характеристики производительности процессора и памяти. Однако это верно только для хостов Linux со специализированными ядрами. Вам необходимо ядро с поддержкой Xen, чтобы воспользоваться этим.
Также - Windows не поддерживает виртуализацию таким образом, но расширения Intel VT и AMD-V на соответствующих процессорах «ловят» Windows и заставляют ее вести себя паравиртуализированным образом. Windows 2003 и Windows 2000 никогда не осознают, что они работают виртуализировано, тогда как Windows 2008, с другой стороны, обнаруживает это и работает в так называемом «просвещенном» режиме, который можно сравнить с «паравиртуализированным» режимом Linux.