Пользователь
0,0
рейтинг
18 апреля 2013 в 01:33

Администрирование → Запуск Windows под Linux KVM

Задача: запустить некоторое количество виртуальных машин с Windows на типовом Линукс-сервере.

Решение: любой современный Linux-дистрибутив, «родная» технология виртуализации KVM, Windows 2003 и настройки, описанные ниже.

Смотри также: вводную часть статьи по настройке KVM-контейнеров для FreeBSD.

Выбор гостевой ОС


Windows XP работает под Linux KVM неустойчиво. Основные ошибки — потребление 100% процессора процессом csrss.exe (вплоть до обрыва RDP-сессий) и BSOD с кодом IRQL_NOT_LESS_OR_EQUAL в HAL.DLL. Если удалось достичь стабильной работы, обязательно отключите автоматическую установку обновлений! По нашему опыту, для работы WinXP под KVM они стали главным источником проблем.

Windows 7 работает нормально, но согласно счётчикам Proxmox, требует для работы более 3 гигабайт ОЗУ.

Оптимальным вариантом оказалась 32-разрядная редакция Windows 2003 R2:
  • работает надёжно, в т.ч. с virtio,
  • проблем совместимости с XP не имеет (даже внешний вид может быть сделан таким же),
  • занимает в ОЗУ менее 800 мегабайт.

Верхнего лимита в 4 гигабайта памяти (без PAE) оказалось достаточно для всех возникавших задач.

Для ознакомительных целей годится любой опубликованный на RuTracker дистрибутив.

Первый запуск и virtio


#!/bin/sh
VM_ID="10"

MACBASE="00:16:3e:ff:ff"

HDA="vm_${VM_ID}.img"
HDB="temp.img"
HDC="w2k3_r2_ent_rus_x86/ru_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46484.iso"
HDD="virtio-win-0.1-52.iso"

sudo kvm \
-enable-kvm \
-boot "menu=on,order=d" \
-m 1024M \
-balloon virtio \
-name "kvm_${VM_ID}" \
-drive "file=$HDA,index=0,media=disk,cache=writeback" \
-drive "file=$HDB,index=1,media=disk,cache=writeback,if=virtio" \
-drive "file=$HDC,index=2,media=cdrom,cache=writeback,readonly" \
-drive "file=$HDD,index=3,media=cdrom,cache=writeback,readonly" \
-net "nic,model=virtio,macaddr=${MACBASE}:${VM_ID}" \
-net "tap,ifname=tap${VM_ID},script=no,downscript=no" \
-vnc "0.0.0.0:${VM_ID}"

Параметр "-vnc ..." имеет смысл только на сервере без GUI. По умолчанию KVM откроет окно через SDL. В обоих случаях Ctrl+Alt+Shift+1 и Ctrl+Alt+Shift+2 служат для переключения внутри окна между гостевой и управляющей консолью.

Параметр "-net nic,model=virtio,..." создаст внутри ВМ сетевую карту неизвестного Windows типа, для которого мастер настройки оборудования предложит выбрать драйвер. Парный ему параметр "-net tap,..." создаст в хост-ОС сетевой интерфейс для связи с ВМ. Назначение IP-адресов, настройка DHCP и выхода во внешний мир через ProxyARP, NAT или Bridge не имеют прямого отношения к Windows, поэтому здесь не рассматриваются.

Теперь про самое важное на данном этапе, т.е. про диски.

HDC — это ISO-образ с дистрибутивом Windows. Имя файла взято из торрента в предыдущем разделе. С него внутри ВМ произойдет первая загрузка системы ("-boot order=d").

HDD — это ISO-образ с драйверами virtio. Скачивается с alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin

HDA — это пустой образ диска, на который будет устанавливаться система. Создан командой "kvm-img create -f qcow2 vm_10.img 50G".

HDB — это пустой образ диска, созданный через "kvm-img create -f qcow2 temp.img 1G" с единственной целью — показать Windows устройство незнакомого типа, чтобы она затребовала драйвер для него. Установка в систему драйвера virtio для временного диска позволит переключить затем с IDE на virtio системный диск.

После того, как установка системы и драйверов будет полностью завершена, в команде запуска следует убрать "-boot" и все строки "-drive", кроме первой, т.к. временный диск и ISO-образы станут не нужны (обратите внимание на добавленный "if=virtio"!):
kvm ...  -drive "file=$HDA,index=0,media=disk,cache=writeback,if=virtio" ...

Про пользу virtio, варианты настройки сети и параметры командной строки kvm читайте в habrahabr.ru/post/167099

Рекомендуемые настройки Windows


Во-первых, по умолчанию Windows создаёт при BSOD'ах полный дамп памяти. В лучшем случае, это существенно замедлит перезагрузку. В худшем, приведёт к полному зависанию.

Во-вторых, автоматические обновления по умолчанию включены, и есть риск, что одно из них сделает работу под KVM нестабильной.

Поэтому после завершения инсталляции в самую первую очередь (до установки драйверов!) рекомендуется зайти в Панель управления => Система:
  • Автоматическое обновление: Отключить
  • Дополнительно => Отчет об ошибках => Отключить
  • Дополнительно => Загрузка и восстановление => Параметры => Отказ системы => Запись отладочной информации => Малый дамп памяти (64КБ)

Настройки TCP/IP не являются обязательными, но немного повысят производительность, т.к. в виртуальной среде отсутствуют некоторые проблемы, которые нужно учитывать при передаче по физической сети.

Описание: www.linux-kvm.org/page/WindowsGuestDrivers/kvmnet/registry

Готовый REG-файл: svn1.sytes.net/linuxkvm/tune-guest-tcpip.reg

После этого можете приступать к установке драйверов для диска (virt-stor) и сетевой карты (virt-net). После их установки в Диспетчере оборудования появятся «Red Hat VirtIO SCSI Controller», «Red Hat VirtIO SCSI Disk Device» и «Red Hat VirtIO Ethernet Adapter».

Ballooning


Традиционный подход — сразу при запуске виртуальной машины (ВМ) выделять ей блок ОЗУ заданного размера, например, 512 мегабайт. Его недостаток — в те моменты, когда в памяти ВМ есть неиспользуемое пространство, в других ВМ и хост-системе её может не хватать.

Memory ballooning — это механизм динамического (а) выделения хост-ОЗУ для ВМ по мере необходимости и (б) возвращения неиспользуемых блоков по мере освобождения. Благодаря ему становится возможным одновременно запускать множество ВМ, суммарный объём виртуального ОЗУ в которых больше объёма физического ОЗУ в хост-системе, при условии, что они не станут использовать максимально разрешённый объём все сразу. Благодаря этому память хост-системы распределяется между ВМ так же гибко, как между обычными процессами.

Создание виртуальных ресурсов, превышающих физические по объёму, обозначается любимыми для многих хостеров терминами «overcommit» и «overselling».

Для работы баллонинга требуется согласованная работа двух программных компонентов:
  • MOM (memory overcommitment manager) в хост-системе, меняющего объём ОЗУ для ВМ на основании запросов из неё,
  • VMM (менеджера виртуальной памяти) в гостевой ОС, взаимодействующего с MOM через виртуальный PCI-контроллер.

MOM в последних версиях KVM включается автоматически, старые требовали включать его с помощью «kvm… -balloon virtio» в командной строке.

Гостевое устройство для связи с MOM диспетчер оборудования (devmgmt.msc) Windows увидит как «PCI standard RAM controller» неизвестного типа. В отличие от virt-stor и virt-net, драйвер к нему не будет предложено установить автоматически. Вместо этого, следует зайти в свойства устройства, на вкладке «Драйвер» выбрать обновление и вручную указать путь к balloon.inf на VirtIO CD (пруф). После этого устройство переименуется в «VirtIO Balloon Driver».

ACPI


По умолчанию Windows 2003 разрешает выключать себя единственным способом — ввести логин-пароль, выбрать Пуск => «Завершение работы», ввести примечание, нажать «OK». Разумеется, на VDS-ферме такой подход неприемлем. KVM (и QEMU) умеет эмулировать ACPI. Команда «system_powerdown» аналогична нажатию кнопки питания на физическом компьютере, но Windows её проигнорирует. Лечится следующим REG-файлом:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
"ShutdownWithoutLogon"=dword:00000001
"DisableCAD"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"ShutdownWarningDialogTimeout"=dword:00000003

Он же в готовом для запуска виде: svn1.sytes.net/linuxkvm/win-acpi-kvm.reg

Первоисточник с подробными объяснениями: umgum.com/acpi-windows2003-shutdown

Кэширование


Если образ гостевого диска хранится на VDS-ферме в виде файла, кэширование гостевых файлов может оказаться двойным — сначала их кэширует гостевая ОС при обращениях к виртуальному диску, затем ОС фермы при обращениях к физическому.

Всего возможны 3 основных режима:
  • none — хост-система не кэширует файл-образ ни на чтение, ни на запись
  • writeback — запись выполняется немедленно, чтение кэшируется
  • writethrough — чтение и запись кэшируются

В разных версиях qemu/kvm и в разных ОС по умолчанию могут использоваться разные режимы. Например, Qemu до версии 1.2 использует writethrough, 1.2 перешёл на writeback, в Proxmox выбран cache=none.

Все без исключения источники в Сети советуют не использовать writethrough как наиболее медленный. По субъективной оценке, для ВМ с Windows оптимален writeback, для ВМ с Linux и FreeBSD — none.

Зависания сети


Единственной серьёзной проблемой, которую однозначно вызывает ошибка в KVM, являются подвисания гостевой сети при интенсивном трафике: bugs.centos.org/view.php?id=5526 (кроме собственно описания ошибки, там же есть важные ссылки на другие багтрекеры).

Рекомендации, предлагаемые участниками обсуждений (обновление qemu-kvm и ядра, изменение параметров командной строки, использование vhost-net), к сожалению, пока не сумели её решить.

При каждом подвисании приходится заходить на консоль ВМ по VNC и выполнять сброс сетевого интерфейса, после чего трафик снова начинает ходить нормально.

Автоматизировать данное действие в Windows можно с помощью AutoIt, если создать файл PingFailed_ResetNic.au3 и вызывать его Диспетчером заданий каждые несколько минут:
#include «EventLog.au3»

Local $PingHost = "192.168.0.1"
Local $Interface = "LAN"

Ping($PingHost, 250)
If @error = 0 Then Exit

Local $hEventLog = _EventLog__Open("", "RestartNicOnPingFailure")
Local $aEmpty[1] = [0]
_EventLog__Report($hEventLog, 2, 0, 1, "", "Restart NIC " & Interface & " on failed ping to " & PingHost, $aEmpty)
_EventLog__Close($hEventLog)

RunWait("netsh interface set interface " & $Interface & " DISABLED", "", @SW_HIDE)
RunWait("netsh interface set interface " & $Interface &  " ENABLED", "", @SW_HIDE)

Вариант для CMD.EXE: rickosborne.org/blog/2007/02/stupid-windows-tricks-restart-network-adapter-when-it-hangs

Подобное «решение» не везде может рассматриваться как удовлетворительное, но в ряде случаев его достаточно, чтобы свести негативный эффект к приемлемому минимуму, позволяющему дождаться выхода исправления вместо более кардинальных мер.
Ilya Evseev @IlyaEvseev
карма
36,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (79)

  • 0
    Всегда хотел попробовать этот KVM, но руки не доходят.
    п.с. XP прекрасно работает в VirtualBox поедая 1G оперативки и 6Gb диска.
    • НЛО прилетело и опубликовало эту надпись здесь
      • –1
        В этом все и дело. На домашнем и на ноуте стоят ubuntu с virtualbox. На серверах еще не приходилось делать виртуалку, и честно сказать не знаю зачем она там. Нужен сервер с виндой — можно его и взять.
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Точно. Про VDS я и забыл.
          • –1
            Берется Windows Server и туда ставятся виртуалки через HyperV.
            • НЛО прилетело и опубликовало эту надпись здесь
              • +1
                openvz + 1 kvm.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    proxmox, Red Hat Enterprise Virtualization что то есть у proxmox. Они вполне позволят вам держать зоопарк windows машин.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Я так не думаю. Вы для себя это сами решили. Нам всегда будет чего-то не хватать в разных решениях.
                        После того как попробуешь и начинаешь сравнивать, часто ловишь себя — вот это бы сюда, и вот то туда класс будет!
                        Если брать меня, то я постоянно не доволен всем в нашем IT мире. Включая ОС :).
                        Если вам чего то не хватает, в данном случаи вы можете допилить сами и поделится с сообществом.

                        Меня данное решение на текущий момент удовлетворяет (о чем я писал выше). Но это не значит, что я доволен!
                        Есть конечно вещи, которых не хватает — например балансировка по ресурсам.

                        Но в остальном все стандартно, gui понятен и я могу обучить нового сотрудника с ним работать, прова доступа регулируется. OpenVz имеет нужную мне гибкость, а kvm для виндовых исключений.
        • 0
          Я видел ужас, под названием сервер с виртуалками на VB. Выглядело это очень печально.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Тогда я узнал, что VB бывает в консольном виде :) Просто я его вообще не использовал и думал, что он всегда с GUI идет.
      • –2
        А как насчет ESX? Он вродк ставится на линупсы и на нем прекрасно работают что линупсы что винды…
      • 0
        Если не ошибаюсь, под капотом в VBox под Linux стоит KVM.
        • 0
          Вроде нет. Системы слишком разные по архитектуре и по производителю — VBox делала SUN, а KVM — Qumranet, которую потом купила Red Hat.
        • 0
          Нет, у них поддержка со стороны ядра организована в виде собственного драйвера (на который все плюются, кстати).
      • 0
        Для продакшена нужна KVM
        1 которая глючит с ХР
        2 Требует отключения обновленият из за глюков
        3 Требует 3 Гб памяти для windows 7
        4 server 2003. Хм наверно он стоит также как XP\7. Ах да совсем забыл для продакшена не нужны лицензии. Привет рутрекер!
        5 Динамическая память. Гуд. Но опять же Windows 7 Enterpise. Привет подписка микрософт +30% стоимости Prof.

        Кстати да подтверждаю XP работате по коробкой на debian base прекрасно!
        Кстати да XP на Hyper-V (на процессоре FX-8320) ЖУТКО лагала. Работать нереально (в режиме реального времени). 7ка работает сносно на 1Гб. Но все же лучше 1.5-2.

        Несколько рекомендаций учту. За статью спасибо.
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            1 Я не автор поста.
            2 Если честно то это круто! Ну не то чтобы круто но точно Нормально! т.е. это ожидаемо!
            3 Если клиенту надо. То наверно окупается! Вопросов ноль.

            У меня вопрос сугубо практический. Делали ли вы тесты CPU\RAM\HDD.
            Интересно узнать цифры. А если бы сравнение с аналогами то вообще дзен! ;)
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                С Virtio бывает засады. В новых версиях бывает и потеря производительности. В итоге мы забили на virtio и используем эмуляцию.
                На серверах HP с SAN как то становится все равно на производительность.
        • 0
          XP в kvm давно нормально работает.
          По крайне мере тестовые звери на XP живут нормально.
          • 0
            «Тестовые звери» — это образное выражение такое, или вы имеете в виду zvercd?
            • 0
              образное. Хотя вам не кто не мешает ставить и zvercd. Хотя я против таких сборок.
        • 0
          > 1 которая глючит с ХР

          нет не глючит. по секрету скажу — именно для XP KVM изначально писался. последний раз разворачивал на XP VDI для 600 машин.

          > 2 Требует отключения обновленият из за глюков

          никаког отношения к платформе виртуализации это не имеет.

          > 3 Требует 3 Гб памяти для windows 7

          почему у меня их сотни работают на половине гигабайта?

          > 4 server 2003. Хм наверно он стоит также как XP\7. Ах да совсем забыл для продакшена не нужны лицензии. Привет рутрекер!

          вообще фигня какая то. у меня целый датацентр под KVM гоняет сложнуй набор систем под 2008R2 и 2012R2 сейчас на тестах показывает вполне нормальные результаты

          > 5 Динамическая память. Гуд. Но опять же Windows 7 Enterpise. Привет подписка микрософт +30% стоимости Prof.

          балунинг не особо и нужен, если KSM хорошо настроен.

          ПС работал в кумранет а потом RH 5 лет, разворачивал и поддерживал не одну тысячу KVM хостов.
          • 0
            RH — это что?
            • 0
              Redhat.
  • +4
    Windows 7 работает нормально, но согласно счётчикам Proxmox, требует для работы более 3 гигабайт ОЗУ.

    ЛОЛ ШТО? А у меня тогда как работает с 2 гигабайтами?

    Опять же про Windows. На официальном сайте есть вот такая замечательная страничка www.linux-kvm.org/page/Guest_Support_Status#Windows_Family

    и там как раз таки Windows XP находится в поддерживаемых. Откуда у вас информация? ОБС?

    Так же не понятно если у вас продакшен что мешает использовать libvirt? Он существенно упрощает работу с виртуальными машинами.
    • +2
      А у меня тогда как работает с 2 гигабайтами?

      А как W2k3 работает на 256 мегабайтах?
      Вы согласны, что W7 требует для нормальной работы на несколько сот мегабайт больше ОЗУ?
      Если согласны, тогда к чему Вы цепляетесь? К способу подсчёта через Proxmox?
      Если не согласны, тогда приводите свои настройки — проверим, сравним.

      там как раз таки Windows XP находится в поддерживаемых.

      На заборе тоже написано, а там дрова лежат. XP работала более-менее устойчиво до февраля 2011 года, когда вышло обновление, поломавшее совместимость с KVM.

      Откуда у вас информация?

      Везде из личного опыта, если явно не оговорено обратное.

      Так же не понятно если у вас продакшен что мешает использовать libvirt? Он существенно упрощает работу с виртуальными машинами.

      Это не имеет отношения к гостевым Windows, но вообще libvirt не понравился в своё время из-за www.opennet.ru/openforum/vsluhforumID1/92426.html
      А так же подвисаний libvirtd, тогдашнего отсутствия внятной документации на ProxyARP-режим
      и невозможности переносить XML между Дебианом и Центосом без небольшой пляски с бубном.
      • 0
        А как W2k3 работает на 256 мегабайтах?
        Вы согласны, что W7 требует для нормальной работы на несколько сот мегабайт больше ОЗУ?

        Не согласен. На двух гигах Windows 7 работает отлично. Со скрипом она работает на 1 гигабайте. Я спокойно запускаю в ней офис и браузер.

        На заборе тоже написано, а там дрова лежат. XP работала более-менее устойчиво до февраля 2011 года, когда вышло обновление, поломавшее совместимость с KVM.

        Пруфы в багтрекере kvm есть? Или тут из разряда «у нас плохо работает».

        Это не имеет отношения к гостевым Windows, но вообще libvirt не понравился в своё время из-за www.opennet.ru/openforum/vsluhforumID1/92426.html

        Баги есть везде.

        невозможности переносить XML между Дебианом и Центосом без небольшой пляски с бубном.

        Ой да ладно? И в чем же она заключалась?

        • 0
          Со скрипом она работает на 1 гигабайте. Я спокойно запускаю в ней офис и браузер.

          На что же этот гигабайт тратится, если W2K3 на таком же объёме памяти обеспечивает одновременную работу через RDP двоих-троих сотрудников с 1С, офисом, браузером и почтой?

          Ой да ладно? И в чем же она заключалась?

          В xml вместо типа загрузчика требуется явно указывать полный путь к его исполняемому файлу. В Дебиане и Редхате он разный. Вы не знали?
          • +2
            На что же этот гигабайт тратится, если W2K3 на таком же объёме памяти обеспечивает одновременную работу через RDP двоих-троих сотрудников с 1С, офисом, браузером и почтой?

            Это вы у Microsoft спросите. А вообще вы мне тут рассказывали что надо 3 гигабайта, а теперь рассказываете про W2K3

            В xml вместо типа загрузчика требуется явно указывать полный путь к его исполняемому файлу. В Дебиане и Редхате он разный. Вы не знали?

            Это офигеть какой бубен надо иметь. Например можно sed. А вообще это вполне очевидно.
            • –1
              Ну еще можно вспомнить windows 2000 server, а можно и nt4sp4 — они еще меньше потребляют.
  • +1
    Windows XP у меня несколько лет стабильно работала в KVM. Сейчас перешёл на Windows 7. 1 гигабайт памяти — вполне достаточно для «настольного» использования. Правда, есть ощущение, что что-то поломали в драйверах viostor, потому что сейчас при выключении в 100% случаев BSOD с IRQL_NOT_LESS_OR_EQUAL в viostor.sys, а при перезапуске примерно процентах в 50. Когда этот же образ разворачивал год назад, всё работало стабильно — поменялась только версия драйверов на проекте Fedora. Пробовал также драйвера из репозитория Ubuntu, эффект, увы, тот же.
  • +4
    Статья не о чем. Я люблю разные статьи, но тут глухо. Все это давно известно, если не известно то находится в руководстве.
    Windows давно нормально эмулируется в KVM (за небольшими нюансами ). Для упрощение работы с ним лучше использовать libvrt (virsh) + удаленно использовать GUI.
    Если совсем лениво и надо что то на уровне Ынтерпрайс то proxmox.
    • 0
      Если совсем лениво и надо что то на уровне Ынтерпрайс то proxmox.


      А proxmox уже научился создавать KVM виртуалки из шаблонов, как они умеют с OpenVZ? Если нет, то как его использовать в энтрепрайзе, когда каждый день бывает нужно по несколько виртуалок создавать в автоматическом режиме? Последний раз (недавно) когда я его смотрел — единственный путь создания из веб-интерфейса — это создавать пустую виртуалку, цеплять к ней iso образ и устанавливать с него. Но это долго и муторно.
      • 0
        К сожалению нет, еще там нет балансировщика для kvm и много других хотелок. Зато работает нормально с ceph.

        Далее на тему шаблонов, если вдуматся — то другие вирт машины (раньше по крайне мере) шли тупым путем microsoft. Делая образы известными средствами windows. Sysprep, создание файлов ответов, пред установка в режиме аудита. Далее уже потом все это ставится в новую вирт машину.
        Если заглядывать еще дальше, можно сделать установку по сети шаблонов используя средства SCCM.

        В общем вариантов как сделать шаблоны для виртуальной машины много, удобно конечно средствами самой системы. Но у microsoft свои подходы :)
      • 0
        А proxmox уже научился создавать KVM виртуалки из шаблонов, как они умеют с OpenVZ?

        Оно? unix-heaven.org/proxmox-ve-kvm-template

        Не в курсе, как с этим сейчас обстоит дело в Proxmox'e, но в чистом KVM виртуалки создаются
        из пресетов копированием двух файлов — образа корневой ФС и настроек загрузчика.

        Пресет — это обычная система с немного подчищенными настройками
        (из /etc/ надо стереть ключи ssh-сервера, мак-адрес сетевой карты и т.д.)
        • 0
          Есть одно но!

          В windows все равно надо сделать предварительно sysprep. Да и в linux надо сделать некоторые танцы.

          У меня есть тупо подготовленные образы hdd, которые тупо можно сунуть.
          • 0
            В windows все равно надо сделать предварительно sysprep.

            То ли мне повезло, то ли одно из двух.
            Сделал пресет с Вендой, sysprep не использовал.
            Создал из него несколько десяток ВМ на нескольких Линукс-серверах, проблем (пока) не было.

            Что не будет работать, если при подготовке пресета не использовался sysprep?
            Смена аппаратного окружения? Для Windows меняется только MAC-адрес сетевой карты.
            Подключение в домен AD? На тех задачах, которые у меня возникали, оно не требовалось.
            • –1
              >Подключение в домен AD?
              Да, это основная проблема.

              Еще как вариант, почитайте про режим аудита в windows. Будет вам очень полезно при приготовки пресетов.
        • 0
          Оно? unix-heaven.org/proxmox-ve-kvm-template


          Да, видел это решение, это примерно то, о чем вы говорите, но это просто вариант обхода этой проблемы, а не официально поддерживаемое решение. Работает только из консоли.
      • 0
        А еще есть VMmanager. В нем есть все популярные шаблоны OS на kvm. Правда он платный.
  • +3
    Скажите, а действительно все так плохо? 100% CPU, BSOD и падающая сеть — это слабо похоже на Ъ-энтерпрайз. А ведь пишут, что kvm уже давно как промышленное решение.

    >>HDB — это пустой образ диска, созданный через «kvm-img create -f qcow2 temp.img 1G» с единственной целью — показать Windows устройство >>незнакомого типа, чтобы она затребовала драйвер для него. Установка в систему драйвера virtio для временного диска позволит переключить >>затем с IDE на virtio системный диск.
    А как же образ дискетки с драйверами и «Press F6 if you need to install a third party SCSI or RAID driver»?
    • 0
      Вот именно, нужно сразу ставить всё на virtio и при установке подсовывать драйверы.
      • +1
        Сейчас и драйвера не надо подсовывать. Все находится и так. По крайне мере на современных версия винды win2008/win7.
    • 0
      это слабо похоже на Ъ-энтерпрайз.

      Как правило, энтерпрайз специализируется на поддержке чётко очерченного круга задач на чётко обозначенном объёме ресурсов.
      Отсюда ядро 2.6.18, всякие HCL и т.д.

      А как же образ дискетки с драйверами и «Press F6 if you need to install a third party SCSI or RAID driver»?

      Во-первых, готового образа дискетки у них нет, поэтому его надо создавать. Уже морока.

      Во-вторых, заранее неясно, что именно с ISO-образа на неё надо копировать.
      Папки на ISO-образе можно перебирать в Диспетчере оборудования до победного конца,
      с неправильным образом дискетки придётся перезагружаться заново.

      Так что формально Вы правы, но в итоге такой вариант рискует занять гораздо больше времени, чем с временным диском.
      • 0
        или я что то не понимаю или лыжи не едут. Винду уже давно можно переносить с одной машины на другую без всяких особенных извращений. У меня старые виндовые драйвера матались по разным виртуальным средам и в итоге остановились на работе в kvm среде. Все с ними хорошо.
        Далее про драйвера virtio — Тупо положите на них болт! используйте эмуляцию e1000 для сетевой карты и ide для windows систем.
        • 0
          >> Винду уже давно можно переносить с одной машины на другую без всяких особенных извращений

          Скажем так, есть набор условий, при которых винда не вылетит на новой машине с 0x0000007B без SYSPREP и т.п.
          1) На старой и новой машине должен быть/не быть ACPI
          2) На старой и новой машине должен быть/не быть IO APIC
          3) На старой и новой машине должен одинаковые типы IDE-контроллера (всего с точки зрения WinXP их 4, лечится патчем на реестр, который включает все 4 драйвера сказу)
          4) Если на старой машине IDE, на новой AHCI, то нужно в Win7 изменить тип запуска драйверов msahci и iaStorV с 3 на 0 (стартовать без инициализации). В WinXP нужно до переноса поставить соответствующий драйвер AHCI
          • 0
            Все ограничения встречают ой как редко и актуально для переноса.
            Если образ создан, то установщик винды сам все поставит. Обычно я интегрирую driverpack, и уже давно проблем не наблюдаю.
            Хотя я не показатель, так работаю больше с linux системами.
      • 0
        >>Отсюда ядро 2.6.18, всякие HCL и т.д.

        Значит, только RHEL или ESX? Впрочем, в комментах ниже к этому выводу и пришли.

        >>Во-первых, готового образа дискетки у них нет, поэтому его надо создавать. Уже морока.

        dd if=/dev/zero of=./floppy.img bs=512 count=2880
        mkfs.vfat ./floppy.img
        mount ./floppy.img /mnt/floppy

        >>Во-вторых, заранее неясно, что именно с ISO-образа на неё надо копировать.

        Как это неясно? Нужны файлы viostor.* и еще — txtsetup.oem, которого в iso нет, но который легко гуглится
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    с kvm реально такие пляски с бубном или не все так печально?
    • 0
      Нет. Смотрите на хороший продукт proxmox.
    • 0
      с kvm реально такие пляски с бубном или не все так печально?

      Это пляски не столько с KVM, сколько с Windows.
      Например, заблокированная по умолчанию реакция на сигналы ACPI — причём тут KVM?
      • 0
        Например, заблокированная по умолчанию реакция на сигналы ACPI — причём тут KVM?

        Например, потому, что это серверная ОС?
  • +1
    А чем vmware server не угодил? Free to use, вторая версия туповата неповоротлива правда, зато первая просто летает. Правда нужно постоянно следить за kernel update на хосте, т.к. требует перекомпиляции vmware ядра и дров. 7 лет на дебиан — полет нормальный: гостями пашут Windows 2K, 2K3, XP, 2K8 (последняя правда без vmware tools, но они и не нужны по большому счету если лезем через terminal server).
    • 0
      Сравнимо с kvm работает только vmware ESXi а вот vmware server тот еще отстой.
      • 0
        vmware server тот еще отстой.

        1) Аргументы?
        2) Вы v.1 пробовали? По v.2 частично согласен, правда его нужно уметь готовить.
        • 0
          Пробовал. В те времена когда пробовал было замечены активная утечка памяти и сжирание одного из ядер в 100%.
  • +1
    Вот после таких статей и начинаются городские легенды про «нестабильность и тормознутость KVM» и возгласы «что вы, так нельзя».

    Что такое «типовой линукс»? Какая OS, какая версия пакетов и какое ядро? Судя по багтрекеру — центос? Или проксмокс? Поставьте уже убунту и наслаждайтесь скоростью и стабильностью.

    У нас нормально вообще все с KVM, highload все дела.
    • 0
      А для управления используете голый KVM, или с какими-нибудь интерфейсами? (libvirt, proxmox, opennebula, eucalyptus, openstack, etc). В качестве гостей есть windows? Как работает в продакшне под загрузкой?
      • 0
        Все зависит от того, как вы хотите. для libvrt есть простой gui, совсем простой — но хватает что бы подцепится.

        Если вам надо кластер из машин и «бесплатно» то смотрите на proxmox.
        Поддерживает кластер до 16 машин (вроде бы, точно искать цифру лень) + подключаем СХД или кластер машин с РФС ceph.

        Но мое мнение, если у вас много windows, смотрите на решение windows с вложением средств. Будет правильнее и намного проще вам в дальнейшем управлять этой инфраструктурой.

        Из распределенного облака я смотрел бы на openstack — redhat его активно пилят.
        Работать с openstack и обслуживать его — не простое занятие :)
        • 0
          Не, наоборот — много linux и чуток windows, для которых как раз не хочется использовать отдельное решение, если это возможно. Про то, что есть gui и что такое openstack я знаю, просто интересно, как оно все ведет себя в реальном продакшне, насколько стабильно, удобно пользоваться, легко поддерживать и т.д.
          • 0
            proxmox меня устраивает более чем полность. openvz работает, kvm работает. Поддержка если надо покупается.
            Не хватает некоторых вещей, но идеального ничего нет.

            Можно конечно сразу посмотреть на решение от сосисочной компании (parallels), но там уже деньги :)
      • 0
        Проксмокс. Скоро будет openstack и всю внутреннюю кухню, типа дженкинсов и в целом тестового контура, надеюсь, увезем туда на kvm и lxc. Прототип работает, под нагрузкой не тестировали.
        Windows гостей практически нет. Те, что есть, работают без проблем.
    • 0
      Что такое «типовой линукс»? Какая OS, какая версия пакетов и какое ядро?

      Например, Ubuntu Server 12.04 LTS amd64. Ядро и все пакеты штатные.

      Судя по багтрекеру — центос?

      Нет, просто Гугл по описанию ошибки нашёл её в редхатовском багтрекере.
      В нём наиболее полные описание и набор ссылок на багтрекеры других дистрибутивов.
      Насколько можно судить, бага не в каком-то отдельном дистрибутиве.

      Поставьте уже убунту и наслаждайтесь скоростью и стабильностью.

      Наслаждаюсь.
  • 0
    Лечится следующим REG-файлом:

    спс, на Win 2k8 R2 64 работает тоже. Больше не на чем проверить, одна винда на виртуалке… (хост Ubuntu 12.04 LTS )
    • 0
      Вообще-то это в group policy задать можно и это ИМХО наиболее правильно, чем править реестр «вручную»
  • –2
    Hyper-V Server, VMware ESXi, — не не слышал.
  • 0
    Как всегда Комментарии становятся полезнее чем статья ^_^
  • 0
    Пользователь Worky с nag.ru прислал свой отзыв емейлом.
    Выкладываю с минимальными косметическими правками. Особенно интересен имхо пункт 4.
    Общего пессимизма автора в отношении Ubuntu Server и KVM не разделяю :)

    Поведаю своего опыта.

    Была задача завиртуализировать офис. Начал собирать данные по средам виртуализации, анализировать и пришел к КВМ. С виду было видно, что КрасноШляпа взялась за него серьезно и это мэйнстрим. В качестве платформы мы используем Ubuntu 10.04 и я решил не менять то, что работало.

    Проблемы начались через неделю использования нескольких виртуалок с ВинХР.

    Эпопею можно прочесть тут: bugs.launchpad.net/qemu/+bug/990364

    При этом данное сообщение в логах либвирта ничего не значит: это просто реакция системы на сбой, а причина где то в дампе ядра винды.

    В результате менял и версии дров либвиртио, и отключал вообще устройства либвиртио, а использовались устройства QEMU. Но результатов это не давало.

    Пришлось связаться с одним из разрабов дров и узнать очень много нового, после чего мне теперь видится КВМ как сырое решение.

    По своему опыту дам такие советы:

    1) не использовать Убунту: даже переход с Дебиана на Убунту дает в КВМ ошибки на голом месте. Качество Убунты становится все ниже (ИМХО). Или вот еще факт — при выключении сервака Убунта просто ресетит виртуалки с потерей данных, в то время как Центос ставит их на паузу, сбрасывает их на диск и только потом тушит сервак. Только после воя на ланчпаде по этому вопросу, убунту девелоперы добавили временную задержку при выключении сервера…

    2) использовать RHEL-аналоги дистров — девелоперы КВМ-дров проверяют их ТОЛЬКО на текущих релизах RHEL (Дебианы и Убунты идут лесом и сами решают проблемы с КВМ у себя).

    3) в случае непонятных глюков пробуйте отключать KSM: в RH это демон (и в proc переменная), в Убунте это в конфиге либвирта переменная.

    4) в случае ВинХР и BSOD с кодом IRQL_NOT_LESS_OR_EQUAL пробуйте загружать модуль КВМ под тип процессора так: kvm-intel flexpriority=0. Это помогает реально! И — ВНИМАНИЕ — об этом можно прочитать только на закрытом багтрекере КрасноШляпы!!! То есть по такому распространенному глюку ИНФЫ НЕТ!!! Поэтому…

    5)… если у вас есть непонятные проблемы с виртуалками — пишите разрабам КВМ!!! Лучше и быстрее их вам никто не поможет!!!

    6) Вин Сервер 2003 32бит работает под КВМ с дровами Виртио без проблем.

    Итог: на голом месте я получил кучу проблем со средой, которая якобы готова для «ынтерпрайза».
    Я разочарован, но решений такого же плана и свободных просто нет!
    • 0
      Ему надо было сразу использовать proxmox :)
  • 0
    Кстати вопрос насущный!
    Что с лицензиями?
    Можно ли запускать win7 pro и 2003\2008R2 std в виртуальной среде?
    Или нужны какие-то другие редакции и\или доп лицензии?

    Как я понял можно. Но хотелось бы официальное мнение прочесть по этому поводу.

    • 0
      Можно, нужна лицензия как на обычный сервер.
  • 0
    Добавьте в хаб
    habrahabr.ru/hub/virtualization/
    Виртуализация

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.