Релиз эмулятора QEMU 0.14
Анонсирован релиз системы эмуляции аппаратного обеспечения и виртуализации QEMU 0.14. В качестве эмулятора QEMU позволяет запустить программу собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, напирмер, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU достигается производительность выполнения кода в изолированном окружении близкая к нативной системе, за счет прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.Ключевые улучшения QEMU 0.14:
- Добавлена реализация эмуляции AHCI-контроллера ICH-9, для которого обеспечена поддержка NCQ. Работа эмулятора протестирована в Linux, OpenBSD, Windows Vista и Windows 7, но еще не является стабильной;
- Добавлена реализация звуковой системы Intel HD Audio, для которой добавлены три драйвера: intel-hda (Intel HD Audio Controller), hda-duplex (HDA-кодек привязанный к HDA-шине и поддерживающий 16-разрядное стереозвучание с частотой дискретизации от 16k до 96k) и hda-output (HDA-кодек без поддержки записи, предназначенный для гостевых систем, которым не следует предоставлять доступ к микрофону). Для использования в командной строке следует передать '-device intel-hda -device hda-duplex';
- Добавлена поддержка нового формата образов виртуальных машин QED (QEMU Enhanced Disk) в котором убраны некоторые возможности qcow2, в пользу повышения производительности и обеспечения целостности данных. Упрощение формата позволило повысить надежность и эффективность операций, связанных с обновлением мета-данных;
- Добавлен новый драйвер ceph/rbd с реализацией сетевого блочного устройства RBD (Rados block device) на базе технологий ФС Ceph, которая была интегрирована в ядро 2.6.34. Встроенные в Ceph механизмы репликации данных (данные разбиваются на блоки и несколько раз дублируются на разных машинах) обеспечивают чрезвычайно высокую живучесть системы, и могут быть использованы для обеспечения работе не только отдельной ФС, но и блочного устройства. Данные, хранимные на устройстве RBD разбиваются на части и сохраняются в распределенном хранилище объектов в кластере Ceph. В отличие от iSCSI и AoE, образ блочного устройства RBD разбит на множество сегментов, хранится на разных узлах и, благодаря избыточной репликации данных на несколько узлов, сохраняет целостность даже при выходе одного узла из строя. RBD также поддерживает создание снапшотов в режиме только на чтение. Для Qemu/KVM подготовлены патчи, дающие возможность размещения виртуальных машин поверх блочного устройства RBD;
- Интегрирована поддержка протокола SPICE, предназначенного для организации удаленной работы с рабочим столом, функционирующим в виртуальном окружении. Интеграция SPICE в Qemu позволила значительно повысить эффективность вывода мультимедиа информации из локально запущенных виртуальных окружений, с привлечением средств акселерации вывода видео, звука, а также 2D и 3D графики. SPICE позволяет организовать эффективную трансляцию вывода работающих в полноэкранном режиме приложений, имеющих доступ к локальным аудио и USB устройствам, принтерам и другому оборудованию, находящемуся на стороне тонкого клиента. В отличие от таких протоколов как VNC (Virtual Network Computing), ICA (Citrix Independent Computing Architecture) и RDP (Microsoft Remote Desktop Protocol), в SPICE рендеринг содержимого экрана и обработка аудиопотоков производится на стороне клиента, а не на сервере, что, например, позволяет без лишней нагрузки на сервер просматривать видео или осуществлять VoIP звонки, делая для пользователя выполнение приложения на удаленном сервере максимально приближенным к локальному запуску программы;
- Добавлена реализация новой паравиртуализированной графической карты qxl, выступающей в роли моста между гостевой системой и spice-сервером (libspice-server), на сторону которого выносятся все операции рендеринга содержимого экрана (дополнительно предусмотрен и режим локального рендеринга, реализованный через vnc и sdl);
- Реализована поддержка независимой от платформы системы трассировки и таких бэкендов, как DTrace и LTTng;
- Доведена до стабильного состояния поддержка QMP (QEMU Monitor Protocol) - базирующегося на JSON асинхронного протокола для взаимодействия пользовательских приложений с QEMU. Добавлена поддержка новых команд: query-spice / info spice, human-monitor-command, set_password, drive_del, block_resize;
- В драйвер блочных устройств qcow2 добавлена реализация режима обратной записи кеша мета-данных. Новшество, позволяет значительно ускорить (до 10 раз) выполнение операций, связанных с интенсивным созданием мета-данных, например, при инсталляции или клонирования снапшота;
- Добавлена поддержка копирования снапшотов на QCOW2-диск (qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img);
- Производительность работы драйвера qemu-nbd увеличена на 4400%. Добавлена поддержка именованного экспорта сетевых блочных устройств NBD;
- В USB-подсистему добавлена поддержка удаленного пробуждения, позволяющая гостевой системе перейти в режим сна с контролем активности USB-шины. Проведена подготовительная работа в преддверие реализации эмуляции USB 2.0;
- В virtio-pci обеспечена поддержка механизма virtqueue-нотификации ioeventfd, используемого в KVM и позволяющего увеличить производительность virtio-драйверов;
- В virtio-net добавлена возможность установки таймаута и размера TX-буфера;
- Проведена стабилизация работы системы live-миграции;
- В код эмуляции PCI Express добавлена поддержка FLR (Function Level Reset), AER (Advanced Error Reporting) и MSI/MSI-X (Message Signaled Interrupts). Код поддержки PCI-бриджа отделен от основного кода PCI. Добавлена новая команда мониторинга pcie_aer_inject_error, позволяющая симулировать возникновения ошибок в шине PCI;
- Устранена проблема, приводящая к краху VGA-драйвера cirrus для некоторых гостевых систем;
- Улучшена поддержка эмуляции платформ ARM, MIPS, SH4, PPC, SPARC. Исправлены недоработки, мешающие запуску последних версий ядра для платформ SH4 и PPC;
- Проведена работа над ошибками в коде поддержки хост-платформ ARM, MIPS и IA64, для которых устранены проблемы, вызывающие случайные крахи.
© OpenNet