По поводу случившего релиза RHEV и приближающегося релиза Fedora 12 хочется дать краткий обзор новых возможностей в области виртуализации.
Основные фичи на этот раз касаются производительности, безопасности, удобства управления.
Увеличение плотности виртуальных машин
В Fedora 12 включена поддержка KSM (Kernel SamePage Merging). Благодаря этому значительно снижается потребление памяти виртуальными машинами. При использовании KSM ядро объединяет несколько идентичных страниц памяти разных процессов в одну. Таким образом, если одновременно запущено несколько разных, но похожих, виртуальных машин, одинаковые для них данные (такие как, например, загруженный в память исполняемый код) будут объединены и требования к необходимой оперативной памяти значительно снизятся.
При использовании KSM рекомендуется включить сервис ksm, который устанавливает настройки KSM в зависимости от конкретной системы. Сделать это можно командой 'sudo chkconfig ksm on'. Для тонкой настройки рекомендуется также включить сервис ksmtuned ('sudo chkconfig ksmtuned on'). Подробнее (eng)
Производительность работы с памятью
В Fedora 12 для виртуальных систем могут использоваться большие страницы (huge pages). Это позволяет несколько повысить производительность виртуальных машин, особенно в тех случаях, когда приложения в гостевых системах сами используют большие страницы памяти. В отдельных случаях прирост производительности составляет до 20%. Подробнее (eng)
Инструменты для работы с дисками виртуальных машин
В Fedora 12 входит утилита guestfish на базе libguestfs для удобной работы с дисками виртуальных машин. Некоторые области применения: просмотр и редактирование файлов в виртуальных машинах, автоматизация настройки, сбор статистики, миграция физических систем в виртуальные, резервное копирование, клонирование виртуальных машин и т.д.
Пример:
$ guestfish -i F11
><fs> cat /etc/passwd
Поддерживается работа ext2/3/4, btrfs, FAT, NTFS, LVM и т.д.
Форматы дисков: qcow, qcow2, vmdk. Подробнее (eng)
Разделяемые PCI-устройства
В Fedora 12 включена поддержка SR-IOV (Single Root I/O Virtualization), что позволяет нескольким виртуальным машинам напрямую обращаться к одному PCI-устройству, без необходимости использовать эмуляцию или паравиртуализацию. Типовые области использования — раздача виртуальным машинам сетевых адаптеров (NIC и HBA). Использование SR-IOV позволяет получить такую же производительность, как при прямом доступе к оборудованию, но при этом не требует выделенного устройства для каждой виртуальной системы. Разумеется, для работы требуется поддержка SR-IOV со стороны оборудования. Подробнее (eng)
Повышение безопасности
В Fedora 12 все виртуальные машины, запущенные на десктопе с помощью virt-manager, работают с правами того пользователя, который их запустил. На сервере виртуальные машины работают с правами непривилегированного пользователя qemu. Это позволяет защититься от потенциальных уязвимостей системы виртуализации. Подробнее (eng)
Производительность дисков виртуальных машин
В Fedora 12 была значительно улучшена эффективность работы с дисками в формате qcow2. Формат qcow2 имеет много преимуществ по сравнению с raw-образами — базовые образы, снапшоты, сжатие, шифрование. Кроме того, диск в формате qcow2 растет по мере того, как заполняется данными, а диск в формате raw сразу занимает все необходимое место в момент создания.
В Fedora 12 производительность дисков qcow2 практически не отличается от производительности дисков raw. Всем пользователям рекомендуется рассмотреть возможность перехода на формат qcow2. Подробнее (eng)
Горячее подключение сетевых интерфейсов
В Fedora 12 реализована возможность добавления / удаление сетевого интерфейса виртальной машины без ее остановки. Подробнее (eng)
Стабильное ABI для виртуальных машин
При обновлении системы виртуализации вид оборудования, предоставляемого виртуальным системам, не изменяется. Это принципиально при использовании Windows в качестве гостевой системы, так как изменение спецификации оборудования может требовать повторной активации. Подробнее (eng)
Очень заинтересовал KSM, и я решил почитать код. Насколько я понял, никакого поиска по всем страницам не происходит, а диапазоны страниц, которые будут участвовать в «обобщении» страниц, задаются вручную (например, виртуальной машиной).
Это и неудивительно, даже если предварительно считать хэш страницы (а в KSM используется очень простой и быстрый «jhash2»), проверять абсолютно все страницы на точное совпадение за разумное время не удастся.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Это и неудивительно, даже если предварительно считать хэш страницы (а в KSM используется очень простой и быстрый