Представлен релиз проекта QEMU 1.4.0. В качестве эмулятора QEMU позволяет запустить программу собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК.
В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе, за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM. Добавленный в QEMU 1.4.0 новый бэкенд virtio-block-pci позволил приблизить к нативным системам и производительность ввода/вывода — по тестам гостевое окружение смогло продемонстрировать при использовании гипервизора KVM производительность в 1.33 млн IOPs, что составляет 95% от нативной производительности (1.4 млн IOPs).
Изначально проект был создан Фабрисом Беллардом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. В разработке QEMU приняло участие 400 авторов, которые подготовили около 20 тысяч изменений. При подготовке версии 1.4 внесено более 1400 изменений от 116 разработчиков.
Ключевые улучшения, добавленные в QEMU 1.4.0:
- Упомянутый выше многопоточный бэкенд virtio-blk-pci для работы с блочными устройствами, отличающийся существенным приростом производительности. Для больших устройств хранения использование virtio-blk-pci позволяет до 9 раз повысить интенсивность операций ввода/вывода при доступе из гостевых систем по сравнению с использованием virtio-blk. Virtio-blk-pci пока можно использовать только для файлов с raw-образами, при этом ещё не поддерживаются такие функции как миграция хранилищ и live-снапшоты;
- Поддержка операции TRIM (discard) для блочных устройств и файловых систем, отличных от XFS. Использование TRIM позволяет увеличить производительность при работе с SSD-накопителями и повысить их срок службы. Поддержка работы в полностью асинхронном режиме;
- Значительное увеличение производительности операций зеркалирования блочных устройств (миграции хранилищ);
- Улучшение в подсистеме USB:
- Улучшенный механизм проброса USB-конвертеров последовательного интерфейса (USB serial);
- Возможность подсоединения USB-планшетов как устройств USB 2.0;
- Понижение нагрузки на CPU в процессе работы с USB-устройствами;
- Реализовано новое устройство usb-bot, похожее на usb-storage, но настроенное как SCSI-адаптер и поддерживающие несколько LUN;
- В virtio-net добавлена поддержка операций с несколькими очередями пакетов (multiqueue);
- Улучшена эмуляция платформы S390. Добавлена поддержкой новой машины и транспорта virtio-ccw;
- Для архитектуры x86 отмечаются многочисленные улучшения в поддержке чипсета Q35, в том числе возможность миграции AHCI и поддержка назначения устройств;
- В QMP добавлена поддержка горячего подключения символьных устройств (команды chardev-add и chardev-del) и чтения/записи в область памяти символьных устройств (команды ringbuf-read/ringbuf-write);
- В VFIO обеспечена поддержка расширенных областей конфигурации PCIe;
- Добавлена поддержка эмуляции модулей IndustryPack (при эмуляции устройств tpci200). При эмуляции GE IP-Octal 232 («ipoctal232») реализована поддержка до 8 портов RS-232;
- Для платформы MIPS улучшена поддержка DSP-инструкций;
- Для Xen отмечено увеличение производительности и надежности xen_disk, который теперь более устойчив для ситуаций экстренного отключения питания. В xen_console добавлена поддержка использования нескольких вторичных PV-консолей;
- Доведена до рабочего состояния поддержка асинхронного дискового ввода/вывода для хостов под управлением Windows;
- Для протокола Spice подготовлено новое символьное устройство spiceport, которое можно использовать для поддержки произвольных коммуникаций между сервером SPICE и клиентом.