Релиз гипервизора Xen 4.8.0

После пяти с половиной месяцев разработки увидел свет релиз свободного гипервизора Xen 4.8. По сравнению с прошлым выпуском в Xen 4.8 внесено 1245 изменений. В разработке нового выпуска приняли участие такие компании, как ARM, BitDefender, Bosch, Citrix, Freescale, Intel, Linaro, Oracle, Qualcomm, SUSE, Star Lab, the US National Security Agency, Xilinx и Zentific.

Ключевые изменения в Xen 4.7:

  • Обеспечена официальная поддержка планировщика Credit2, который признан полностью готовым к промышленному применению. По сравнению с ранее поставлявшимся планировщиком Credit, Credit2 хорошо масштабируется и лучше справляется с нагрузками, чувствительными к задержкам, такими как работа с видео и звуком, а также более оптимален для систем с unikernel, применяемых для обособленного выполнения поверх гипервизора отдельных приложений. При этом, в отличие от специализированных планировщиков RTDS и ARINC653, Credit2 использует прежний универсальный алгоритм справедливого распределения ресурсов, подходящий для решения задач общего назначения;
  • Проведена оптимизация времени создания доменов (dom0, domU): Значительное сокращение числа сбросов буфера трансляции адресов (TLB) существенно повлияло на время создания очень больших доменов, которым выделяются сотни гигабайт оперативной памяти. Если раньше время создания подобных доменов исчислялось минутами, то теперь производится за десятки секунд;
  • Файлы с правилами XSM, переработаны, приведены в порядок и структурированы, что значительно повысило их читаемость. При соответствующей настройке появилась возможность прикрепить набор правил по умолчанию к исполняемому файлу Xen, что позволяет обойтись без чтения правил по умолчанию через загрузчик;
  • В механизм применения патчей на лету (Live Patching), не требующий перезапуска гипервизора, добавлена возможность привязки «хуков», позволяющих организовать загрузку дополнительных данных и исполняемого кода, что предоставляет автору патча больше свободы при модификации данных и кода на лету;
  • Из специфичных для платформы x86 улучшений отмечается:
    • Поддержка эмуляции сбоев CPUID, что позволяет создавать CPUID fault в приложениях, работающих в окружении HVM, без соответствующей аппаратной поддержки;
    • Поддержка флага PVCLOCK_TSC_STABLE_BIT, позволяющего заметно увеличить производительность в пространстве пользователя при выполнении системных вызовов, связанных с временем;
    • Поддержка инструкций Intel AVX-512, позволяющих поднять производительность различных вычислительных задач за счёт возможности применения 512-разрядных операций SIMD, обрабатывающих в одной инструкции в два раза больше элементов данных, чем AVX/AVX2, и в четыре раза больше данных, чем инструкции SSE;
    • Стабилизирована вторая версия ABI-интерфейса PVH для DomU, комбинирующего элементы режимов паравиртуализации (PV) для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием, с применением полной виртуализации (HVM) для ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти. Разработчики операционных систем могут начать портировать свои продукты для работы в гостевых режимах с PVH v2 DomU ABI. Из не стабилизированных возможностей отмечается поддержка проброса устройств PCI в гостевые системы PVH;
  • Улучшения для систем с архитектурой ARM:
    • В реализации ACPI для ARM DomU обеспечена возможность запуска немодифицированных окружений Xen на системах с процессорами ARM и поддержка сборки гостевых систем ARM64 с ACPI, таких как предварительных выпуск Red Hat Enterprise Linux Server для ARM.
    • Поддержка альтернативных патчей, предоставляющих запасной вариант устранения проблем в гипервизоре, связанных с процессорами и специфичными для CPU оптимизациями;
    • Для платформ ARM32 и ARM64 реализована начальная поддержка технологии горячего наложения патчей (Live Patching);
    • Поддержка многопроцессорных SoC Xilinx Zynq UltraScale+;
  • Улучшения в инструментарии:
    • Используемый в hvmloader код для построения ACPI-таблиц для гостевых систем выделен в отдельную библиотеку libacpi, которая теперь совместно используется для архитектур x86 и ARM. Перенесённый в библиотеку код перелицензирован с GPL на LGPL;
    • Добавлена возможность проброса USB-устройств в гостевые системы, работающие в режиме полной виртуализации (HVM);
    • В libxl добавлена возможность загрузки для гостевой системы произвольных бинарных образов BIOS;
    • Для упрощения сопровождения и обеспечения расширяемости в libxl переработан фреймворк для управления устройствами;

© OpenNet