Виртуализация операционных систем с помощью QEMU. Основы работы с эмулятором
Виртуализация — наиболее доступный способ запустить на одном ПК вторую операционную систему, не устанавливая ее непосредственно на жесткий диск. Вместо этого вторая ОС устанавливается на диск виртуальный, представленный специальным файлом-контейнером, созданным в гипервизоре — программе, позволяющей эмулировать работу гостевой системы в системе хостовой. Наибольшей популярностью среди домашних юзеров пользуются гипервизоры VirtualBox и VMware с мощным функционалом и наглядным GUI .
Но есть и другие, в чём-то даже более гибкие и продуктивные решения хотя и куда менее удобные в использовании. Например, QEMU — бесплатная программа с открытым исходным кодом, предназначенная для эмуляции программного обеспечения и операционных систем. Инструмент использует аппаратную виртуализацию, поддерживая два режима работы:
• Полная эмуляция — данный режим применяется для запуска операционных систем, в его рамках QEMU эмулирует физическое устройство со всеми его компонентами, встроенными и периферийными.
• Эмуляция пользовательского режима — дает возможность запускать программы, созданные для конкретной архитектуры на другой архитектуре, например, приложения ARM в x86 . Режим доступен только в хостовой системе Linux.
QEMU поддерживается эмуляция архитектуры x86 , ARM , MIPS , PowerPC , m68k , Alpha , SPARC , SH-4 , CRISv2 , MicroBlaze и это более солидный список, чем у того же Виртуалбокс.
Как установить QEMU в Windows
Скачать установочный файл эмулятора можно с официального сайта www.qemu.org/download/#windows,
есть редакции 32-битные и 64-битные, версию выбираем последнюю.
Устанавливается QEMU как обычная программа в папку Program Files\qemu , но можно выбрать и другое расположение.
Установку выполняем с параметрами по умолчанию, ничего менять не нужно, просто жмем в окне мастера «Next».
Виртуализация операционных систем в QEMU
В отличие от VirtualBox и подобных гипервизоров, QEMU не имеет графического интерфейса, работа с ней ведется через командную строку. Команд и параметров для создания и управления виртуальными машинами много, но для начала вам нужно знать хотя бы эти шесть.
• qemu-system — задает архитектуру виртуальной машины.
• qemu-img create — создает файл виртуального IMG -диска, на который будет устанавливаться операционная система.
• -m — выделяет виртуальной ОС указанный объем оперативной памяти.
• -hda — подключает созданный виртуальный диск.
• -boot IMG — указывает, что загрузка должна производиться с виртуального диска, вместо IMG следует указать имя IMG -файла.
• cdrom — содержит путь к установочному образу ISO , эмулирует дисковод.
Чтобы вам стало всё немного понятнее, установим и запустим с помощью QEMU какую-нибудь операционную систему. Для примера мы выбрали Windows XP, так как она легкая и занимает на диске мало места. QEMU у нас уже установлен, открываем командную строку, переходим в каталог установки и создаем виртуальный жесткий диск следующей командой:
qemu-img.exe create -f raw c.img 5000M
Файл qemu-img.exe в эмуляторе отвечает за создание IMG -образов, с — это название образа, 5000 — размер виртуального диска в мегабайтах. По умолчанию образ будет создан в папке QEMU .
Теперь сформируем следующую команду:
qemu-system-i386w.exe -boot c -m 350 -hda c.img -cdrom «E:\WinXP_SP3.iso»
Исполняемый файл в начале команды отвечает за создание виртуальной машины с архитектурой х86 , -boot с ключом -с сообщает, что грузиться она будет с диска, в значение параметра -hda подставляем созданный образ, а в качестве значения параметра –cdrom указываем путь к дистрибутиву Windows.
После выполнения команды появляется окошко QEMU с загрузочным меню, в котором мы выбираем установку на диск.
Далее проходим все этапы установки операционной системы вплоть до локальных настроек и загрузки рабочего стола.
Чтобы запустить закрытую виртуальную машину, выполните команду qemu-system-i386w.exe -hda name.img , где name — название вашего виртуального диска, чтобы удалить ставшую ненужной VM, просто удалите из каталога установки QEMU созданный IMG -образ.
Управлять QEMU можно с помощью клавиатуры и мыши, для переключения между эмулятором и хостовой машиной используйте комбинацию Ctrl + Alt + G . Запущенная с минимальными настройками ОС не будет иметь доступа к аудио- и сетевой карте, не будет также возможности обмена файлами между виртуальной и хостовой системами.
Нельзя сказать, что QEMU лучше или хуже VirtualBox либо VMware, это альтернативное средство виртуализации, имеющие как свои плюсы, так и минусы. QEMU менее удобен, требует знания документации и демонстрирует весьма небольшую производительность. Для ускорения работы в Windows требуется установка и настройка Диспетчера аппаратного ускорения HAXM, в Linux – подключение загружаемого модуля ядра KVM . С другой стороны, инструмент позволяет эмулировать работу устройств на базе разных архитектур, не поддерживаемые популярными гипервизорами.
История успеха Windows Server 2008 в QEMU/KVM
Добрый день, уважаемые.
Реквестирую историю успеха продакшен-применения Windows Server 2008 в QEMU/KVM под Centos/RHEL 6/7 (или под другим Linux). WinServer планируется использовать в качестве терминального/файлового сервера без AD, на 10-15 человек. Планируется использовать VirtIO. Хостовая машина, — стандартная серверная платформа Supermicro, планируется к размещению в ДЦ. Интересует стабильность поведения WinServer в KVM, какие есть подводные камни etc.
почему не накатить сразу на железо?
Потому что виртуализацию придумали не просто так
Предполагается наличие второй ВМ, которая с помощью Bacula будет бекапить WinServer (по крайней мере содержимое файлового сервера) к себе и периодически «утаскивать» бекапы за пределы ДЦ, оставляя локальные копии bacula volumes для оперативного восстановления.
kvm изначально делался для запуска венды.
Т.е. это толстый намек, что все должно быть ОК?
Всё стабильно, никаких проблем.
Может быть. Кроме самого ядра системы виртуализации есть еще много обвязки, типа соотв. дров на всякие спец. устройства типа сетевуха, диски, потом еще более высокоуровневые вещи типа совместного с хостом хранилища для обмена файлами и т.д. YMMV.
Хотелось бы увидеть пруфы такого смелого заявления.
Все отлично работает, только не забудь про virtio-драйверы.
Мой опыт подсказывает, что нет, уклон при развитии kvm направлен на linux-машины.
sudo cast dyasny
моего подтверждения не хватит?
все стабильно пашет с момента выхода этой винды и по сей день. использовать надо конечно же virtio
Мне все же интересно узнать подробности, я об этом слышу впервые (за исключением вот этого коммента — Выбор системы виртуализации — Xen или KVM (комментарий)).
У меня нет причин не доверять тебе, но все же хотелось бы узнать об этом больше.
qumranet, когда писали kvm, ориентировались на применения в VDI с виндой. vmware тогда уже контролировали рынок SVI а вот VDI был тогда в самом зародыше, и маленький стартап как раз туда и целился. Оттуда же появился spice и ksm, все ради того чтоб поднять побольше XP и семерок на одном хосте. Линуксы в VM это легко и просто, особенно когда virtio попало в ядро и отпала надобность поставлять всякие guest tools. xorg-x11-drv-qxl вышел с изрядным опозданием, когда винда была давно готова.
proxmox работает под такой задачей на обычном компе (4 ядра AMD, 16ГБ RAM, обычный диск). Единственная проблема (если нужна большая скорость) — медленная скорость обмена с виртуальными дисками — vitio драйвера в windows кардинально не помогают — возможно поможет SSD диск. В Linux значительно лучше.
Был подводный камень — запустил в windows программу еверест, которая обнаруживает тип железа на борту, весь . сервер встал. А так все работает как и должно работать.
В терминале надеюсь не 1с в файловом варианте будет?)
да, что удивило. proxmox обновлял но запустить еверест больше не рискнул. т.е. если сдавать абонентам такой сервис — то такой привет может прилететь
Интересует стабильность поведения WinServer в KVM
Стабильно, использую в продакте
Именно оно, именно в файловом. Это чем-то грозит?
Я бы не стал так рисковать с 1с-кой. Она на голом железе в файловом варианте с нормальной базой не фонтан, а в виртуалке даже и представлять не хочется. Стабильность в виртуалке будет, но в скорости потеряешь.
В текущей ситуации оно тоже крутится в виртуалке только в Hyper-V. Жалоб на тормоза вроде не поступало.
ничем. вирталки могут жонглировать реальными физическими дисками.
У меня 1C-ка крутиться в виртуалке KVM на прошлой работе. Жалоб на тормоза не было, как у тебя.
Но по тесту Гилева, всего 15 попугаев выходило — удов. результат.
Для этого есть снепшоты, и клиент бакулы. Да и вообще, бакула, во вне, будет бекапить весьма хренова, если коннект не очень стабильный.
Для 10-15 человек, никакие виртио тебе не надобны. Работает всё в kvm стабильно.
История успеха
Есть кластер на Proxmox VE, естественно что Windows там крутится на qemu/kvm. Стабильность удивительная. Бэкапы отлично реализованы средствами самого Proxmox. Роль сервера MSSQL для веб-сервера, который обслуживает несколько сайтов клиентов. Нагрузка не шибко высокая, но думаю сопоставимая с поставленной задачей.
Интересное наблюдение!
Надо будет попробовать проэкспериментировать.
Re: Интересное наблюдение!
Ага, надо проверить на kvm, на xenserver такого не наблюдалось.
Для 10-15 человек, никакие виртио тебе не надобны.
Найдите в 1С какой либо тяжелый отчет и попробуйте сравнить скорость его формирования на голом железе и виртуалке. У моих бухов был такой отчет, весь мозг вынесли. пришлось базу на голое железо переносить на samba, вроде полегчало.
А backup снапшотами машин с MS SQL делаете?
Работает 2008 в KVM нормально, только не забудьте virtio драйверы поставить и тип диска после этого сменить на virtio.
Т.е. в данном случае виртуализация используется только для бэкапов?