После семи месяцев разработки состоялся (https://blog.xenproject.org/2017/06/28/whats-new-in-the-xen-.../) релиз свободного гипервизора Xen 4.9 (https://www.xenproject.org/). По сравнению с прошлым выпуском в Xen 4.8 внесено (http://wiki.xenproject.org/wiki/Xen_Project_4.9_Release_Notes) 1549 изменений, что на 20% больше, чем в прошлом выпуске. В создании нового выпуска приняло участие 86 разработчиков, представляющих 30 компаний (для сравнения прошлый выпуск создан силами 68 разработчиков из 25 компаний).Ключевые изменения (http://wiki.xenproject.org/wiki/Xen_Project_4.9_Feature_List) в Xen 4.9:
- Поддержка загрузки Xen c использованием протокола multiboot2, что позволяет организовать загрузку на платформах BIOS и EFI с использованием загрузчка GRUB2 (https://www.opennet.dev/opennews/art.shtml?num=46458). Частично поддержка multiboot2 также реализована для загружаемых по сети прошивок (iPXE). Из достоинств применения multiboot2 отмечается возможность изменения настроек непосредственно из загрузчика и переносимость загрузочной конфигурации между разными платформами;
- Представлен новый планировщик "null", обеспечивающий минимальные накладные расходы от работы планировщика, предсказуемую производительность и уровень задержек близкий к системам, работающим без использования виртуализации, в условиях когда каждый виртуальный CPU закреплён за физическим CPU. В качестве наиболее перспективных областей применения нового планировщика отмечаются встраиваемые и автомобильные окружения.
- Для систем на базе процессоров ARM представлен новый параметр vwfi (virtual Wait For Interrupt), позволяющий выбрать метод обработки инструкций WFI. Например, указав в vwfi значение "native" можно примерно на 60% сократить задержки в обработке прерываний. Тесты на плате Xilinx Zynq Ultrascale+ MPSoC подтвердили, что уровень задержек при обработке прерывания не превышает 2 микросекунд, что очень близко к аппаратным ограничениям и достаточно для большинства встраиваемых решений;
- Реализован новый ABI для совместного использования устройств в виртуальных машинах, который хорошо подходит для некоторых применений, специфичных для встраиваемых, автомобильных и облачных систем;
- Для применения на встраиваемых и автомобильных системах добавлен виртуальный звуковой ABI, через который можно реализовать воспроизведение и запись звука, а также управление громкостью и включение/отключение источников звука.
- Добавлен виртуальный экранный ABI для сложных устройств отображения, включающих несколько фреймбуферов и дисплеев;
- Для использования сенсорных экранов в протокол работы с виртуальной клавиатурой/мышью добавлена поддержка мультитач;
- Представлен Xen-транспорт для протокола 9pfs, обеспечивающего работу с сетевой файловой системой Plan 9. Фронтэнд для 9pfs передан для включение в состав ядра Linux, а бэкенд добавлен в QEMU. 9pfs позволяет предоставить доступ к ФС из одной виртуальной машины к другой;
- Реализован PV Calls ABI, позволяющий перенаправлять POSIX-вызовы между гостевыми системами. При помощи данного ABI вызов POSIX-функции, инициированный из приложения в DomU, может быть перенаправлен и обработан на стороне Dom0. Например, обращение к сетевому стокету может быть выполнено на стороне Dom0, позволяя реализовать новую сетевую модель, естественно вписывающуюся в концепцию cloud-native приложений;
- Проведена работа по оптимизации и увеличению масштабируемости демонов Xenstore, позволяющих Dom0 и гостевым системам получить доступ к информации о конфигурации системы. C-xenstored теперь может эффективно работать на очень крупных хостах, насчитывающих более тысячи гостевых систем. Увеличена производительность обработки транзакций, снижено потребление памяти и сокращено число конфликтов транзакций. Добавлены средства для динамической отладки;
- Полностью переработан и консолидирован интерфейс для взаимодействия между Xen и QEMU, который переведён на один универсальный гипервызов (hypercall) DMOP (Device Model Operation Hypercall), который позволяет использовать драйвер privcmd для аудита любых областей памяти QEMU и параметров, переданных в Xen через DMOP. Аудит включен в Linux-драйвере privcmd, что позволяет существенно ограничить возможности по проведению атак на гипервизор через компрометацию компонентов QEMU. Кроме того, продолжается работа над проектом по обеспечению непривилегированного запуска QEMU в Dom0;
- Для систем ARM32 реализована возмодность применения патчей на лету (Live Patching (http://wiki.xenproject.org/wiki/LivePatch)) без необходимости перезапуска гипервизора, а также добавлена поддержка GIC-v3 (Generic Interrupt Controller version 3);
- Для систем x86 добавлена поддержка инстркций AVX512_4VNNIW (Neural Network Instructions) и AVX512_4FMAPS (Multiply Accumulation Single Precision), которые позволяют задействовать в HVM- и PV-окружениях средства аппаратного ускорения для систем машинного обучения. В новом выпуске также внесены оптимизации в код поддержки VT-d Posted Interrupt (PI) и обработки MCE (Machine Check Exception);
- Для платформ ARM реализованы средства определения системных ошибок
(System Error Detection), применяемых при построении отказоусточнивых систем;
- Старая реализация GCOV (https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) замена на обновлённую версию, которая поддерживает большее число форматов и предоставляет унифицированный интерфейс;
- С целью повышения защиты переработан код эмуляции x86, в том числе проведён аудит безопасности на предмет наличия возможных уязвимостей, добавлена поддержка новых инструкций и создан тестовый набор для проведения fuzzing-тестирования на базе AFL;
- Обновлена поддержка спецификации Microsoft Hyper-V Hypervisor TLFS (Top-Level Functional Specification) 5.0, что позволило организовать запуск в Xen гостевые системы Windows с производительностью на уровне Hyper-V. Проведена подготовка по реализации запуска
Hyper-V в Xen с использованием вложенной виртуализации.
URL: https://blog.xenproject.org/2017/06/28/whats-new-in-the-xen-.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=46774