Как на kvm установить windows
QEMU/KVM и установка Windows
Хотим мы того или нет, но программы, для которых необходима Windows, никуда из офисов не исчезли. В ситуации, когда их использование безальтернативно, лучше иметь виртуальную ОС, например для того, чтобы подключиться к аудио-конференции через Skype for Business.
Подготовка
Подготовьте дисковое пространство. Я выделил 70 GiB, и Windows 8.1 за пару месяцев использовала почти 50 GiB так, что для обновления до 10-й версии места на диске не хватило.
В качестве проверки можно прочитать файл устройства.
Можно теперь переходить к установке.
Запуск и инсталляция
Запускаем virt-manager и создаем новую виртуальную машину из локального хранилища.
Указываем путь к установочному iso образу Windows.
Далее, на 3-м и 4-м шаге будет выбор количества CPU, объем RAM и размер дискового пространства, после чего на 5-м шаге следует выбрать дополнительные конфигурации перед настройкой.
Прописываем драйвер /usr/share/virtio-win/virtio-win.vfd и добавляем виртуальный флоппи-диск. Затем переходим на вкладку [Шина] Диск № и проделываем финт с заменой шины диска: удаляем с IDE и добавляем с VirtIO.
Чуть не забыл сказать, для чего нужен этот фокус. Специалисты утверждают, что с шиной VirtIO, производительность диска ощутимо выше.
Ну вот теперь можно начать установку.
Ну хорошо, начали мы установку. А что, если установщик Windows попросит сменить диск? Мне из-за этого пришлось пару раз прервать и начать всю карусель заново, но с вами такого уже не случится.
Драйвера и доводка
По окончанию процесса установки диспетчер устройств недосчитается некоторых драйверов. Предположительно, это могут быть:
Делается это стандартно: правой кнопкой на желтый знак вопроса, обновить драйвера, путь к файлам.
Вот весь список, а это соседняя страница RedHat доков, где установка драйверов показана подробнее.
Оборудование
Тут постепенно начинается область безграничных возможностей и 101 способов сделать по-своему, поэтому я покажу, как это работает у меня, а вы можете настроить более точно под свои нужды.
Подключаться к ВМ можно разнообразно.
У меня вариант 3, для Gentoo это программа spice-gtk
Такой простой выбор сетевых опций дает результат превосходящий ожидания. Создаются 3 дополнительных сетевых интерфейса: virbr0, virbr0-nic, vnet0.
В iptables создается свод правил, вот основные:
В завершение
Запуск Windows под Linux KVM
Задача: запустить некоторое количество виртуальных машин с Windows на типовом Линукс-сервере.
Решение: любой современный Linux-дистрибутив, «родная» технология виртуализации KVM, Windows 2003 и настройки, описанные ниже.
Выбор гостевой ОС
Windows XP работает под Linux KVM неустойчиво. Основные ошибки — потребление 100% процессора процессом csrss.exe (вплоть до обрыва RDP-сессий) и BSOD с кодом IRQL_NOT_LESS_OR_EQUAL в HAL.DLL. Если удалось достичь стабильной работы, обязательно отключите автоматическую установку обновлений! По нашему опыту, для работы WinXP под KVM они стали главным источником проблем.
Windows 7 работает нормально, но согласно счётчикам Proxmox, требует для работы более 3 гигабайт ОЗУ.
Для ознакомительных целей годится любой опубликованный на RuTracker дистрибутив.
Первый запуск и virtio
Теперь про самое важное на данном этапе, т.е. про диски.
После того, как установка системы и драйверов будет полностью завершена, в команде запуска следует убрать «-boot» и все строки «-drive», кроме первой, т.к. временный диск и ISO-образы станут не нужны (обратите внимание на добавленный » if=virtio «!):
Про пользу virtio, варианты настройки сети и параметры командной строки kvm читайте в habrahabr.ru/post/167099
Рекомендуемые настройки Windows
Во-первых, по умолчанию Windows создаёт при BSOD’ах полный дамп памяти. В лучшем случае, это существенно замедлит перезагрузку. В худшем, приведёт к полному зависанию.
Во-вторых, автоматические обновления по умолчанию включены, и есть риск, что одно из них сделает работу под KVM нестабильной.
После этого можете приступать к установке драйверов для диска (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 диспетчер оборудования (devmgmt.msc) Windows увидит как «PCI standard RAM controller» неизвестного типа. В отличие от virt-stor и virt-net, драйвер к нему не будет предложено установить автоматически. Вместо этого, следует зайти в свойства устройства, на вкладке «Драйвер» выбрать обновление и вручную указать путь к balloon.inf на VirtIO CD (пруф). После этого устройство переименуется в «VirtIO Balloon Driver».
По умолчанию Windows 2003 разрешает выключать себя единственным способом — ввести логин-пароль, выбрать Пуск => «Завершение работы», ввести примечание, нажать «OK». Разумеется, на VDS-ферме такой подход неприемлем. KVM (и QEMU) умеет эмулировать ACPI. Команда «system_powerdown» аналогична нажатию кнопки питания на физическом компьютере, но Windows её проигнорирует. Лечится следующим REG-файлом:
Кэширование
Если образ гостевого диска хранится на VDS-ферме в виде файла, кэширование гостевых файлов может оказаться двойным — сначала их кэширует гостевая ОС при обращениях к виртуальному диску, затем ОС фермы при обращениях к физическому.
Все без исключения источники в Сети советуют не использовать writethrough как наиболее медленный. По субъективной оценке, для ВМ с Windows оптимален writeback, для ВМ с Linux и FreeBSD — none.
Зависания сети
Единственной серьёзной проблемой, которую однозначно вызывает ошибка в KVM, являются подвисания гостевой сети при интенсивном трафике: bugs.centos.org/view.php?id=5526 (кроме собственно описания ошибки, там же есть важные ссылки на другие багтрекеры).
Рекомендации, предлагаемые участниками обсуждений (обновление qemu-kvm и ядра, изменение параметров командной строки, использование vhost-net), к сожалению, пока не сумели её решить.
При каждом подвисании приходится заходить на консоль ВМ по VNC и выполнять сброс сетевого интерфейса, после чего трафик снова начинает ходить нормально.
Автоматизировать данное действие в Windows можно с помощью AutoIt, если создать файл PingFailed_ResetNic.au3 и вызывать его Диспетчером заданий каждые несколько минут:
Подобное «решение» не везде может рассматриваться как удовлетворительное, но в ряде случаев его достаточно, чтобы свести негативный эффект к приемлемому минимуму, позволяющему дождаться выхода исправления вместо более кардинальных мер.
Правильная установка Windows XP в KVM или Технонекрофилия на марше
По работе потребовалось, чтобы некая программа для windows была постоянно доступна.
Ставить её на пользовательские компьютеры смысла не имело, т.к. они бывает что и выключаются, а из серверов на windows у меня под рукой был контроллер домена и вешать на него всё подряд как-то не хотелось.
Поэтому в офисе по сусекам поскребли, по отсекам помели и нашли старую, покрытую пылью лицензию к Windows XP HE. А большего, в принципе, и не нужно. И вот, я стал запихивать её в виртуалку.
Естественным образом возник спортивный интерес, как бы сделать так, чтобы жрала она поменьше, а работала пошустрее.
Понятно, что для этого виртуальное оборудование должно не эмулировать реальное железо, а использовать виртуальное. Скажем, HDD должен быть не на шине IDE, а на virtio. То же касается и сетевой карты. Обычно рекомендуют сначала ставить ОС на виртуальный IDE-HDD, затем добавлять второй виртуальный винт virtio-HDD, ставить на него драйвера, а потом выключать машину, удалять ненужный уже второй винт и менять тип системного HDD с IDE на virtio.
Честно говоря, все эти вытребеньки показались мне какими-то избыточными, поэтому я процитировал одного известного политического деятеля на предмет пути, которым мы пойдём и взялся за дело по своему.
Для начала я убедился, что virt-manager постоянно создаёт образ диска в qcow2-формате, что само по себе неплохо, но в данном случае излишне, так что я руками создал образ диска в raw-формате.
Затем, при создании виртуальной машины выбрал его и слегка поменял параметры (шину на VirtIO, кэширование на none):
Затем сменил модель сетевой карты на всё ту же VirtIO, для простоты поменял модель звуковой карты на AC97, а затем сделал самое интересное — добавил FDD и подключил в него образ дискеты, взятый отсюда: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_x86.vfd.
После этого, при установке жёсткий диск определяется без проблем, ОС устанавливается также без проблем (единственное, жалуясь на то, что драйвера не подписаны). Однако после установки видно, что не хватает драйверов для видео, сетевой карты и пары неизвестных устройств.
Проблем в этом нет, достаточно извлечь установочный образ CD и заменить его на ISO с драйверами. Дальше просто открываем диспетчер устройств, выбираем те, что без драйверов и ставим их через автопоиск.
В результате получаем маленькую, аккуратную виртуалку, с вполне достойной производительностью.
Вопрос кому и зачем она может понадобиться в 2017 году оставим за кадром. : )
Тем более, рекомендации вполне подходят и для актуальный версий windows.
P.S. На свежеустановленную и активированную Windows XP имеет смысл установить UpdatePack-XPSP3-Rus Live 14.5.1, а потом уже пытаться проверять наличие обновлений.
P.P.S. Поскольку на Home Edition RDP отсутствует как класс, моему коллеге предстоит увлекательный квест по освоению virt-viewer’а. Благо он простой, как пять копеек.
Лига Сисадминов
671 пост 12.6K подписчиков
Правила сообщества
— # mount /dev/good_story /sysodmins_league
— # mount /dev/photo_it /sysodmins_league
— # mount /dev/best_practice /sysodmins_league
— # mount /dev/tutorial /sysodmins_league
ой, выложи эти обои пожалста. все руки не доходят вытащить их самому из дистра.
а порты юсб машинка видит, может подключить к себе принтер по юсб?
А в чем «излишне» в qcow? 🙂 snapshot’ы, возможность экономии места, более продвинутая правильная система управлять кеширование. RAW это сырые образы, по сути они используются только при первом проходе переезда phy->ve. Потом уже нет никакого профита в сырых образах.
Но в целом, правильным путем идешь, товарищ 😉
До кучи почитайте раздел Рекомендуемые настройки
Лучше бы написал скрипт для создания виртуальной машины с Windows XP.
Счастье любит тишину
Как дома
Поешь-поешь
Понятно?
Инстадоктор
Курва.
История о том, как мы авто у дилера «почти» без допов покупали
Что ж, подержите мое пиво, как говорится. История будет длинная и захватывающая.
В августе 2021 года решили мы с благоверным купить новую машину. Поизучав предложения на взлетевшем рынке поняли, что светит нам мало что, и из этого мало чего мы выбрали Ладу Ниву.
Особо шерстить по салонам не стали, поехали в тот, что находился ближе всего к дому. Посмотрели там на другую похожую Ниву, посидели, помяли, потыкали – прелесть, а не машина. Понятное дело, что такой машины, какая нам была нужна, в наличии не было, поэтому решили заказывать и ждать. Менеджер предложил внести предоплату за бронирование автомобиля, что мы посчитали разумным и согласились. Пришли мы наивные и не подготовленные, не имея никакого понятия о том, как оформлять такую предоплату, но нам повезло. Предоплату приняли, выдав кассовый чек с указанием позиции «Автомобиль платеж за 1 шт VINXXXXXXXXXXX» (ВИН был указан, но скрою его в целях конфиденциальности, хо-хо). Эта предоплата в последствии стала одним из инструментов воздействия на дилера.
Решили мы заявиться в салон и прощупать почву. При личном общении с менеджером выяснилось, что все наши самые стремные догадки оказались явью. Когда авто приедет в салон, никто нам его без допов не отдаст. Страшный руководитель отдела продаж стоит с раскаленной кочергой за спинами менеджеров и в любой момент готов применить ее по назначению, если маржа упадет ниже 100500%. Приводились жуткие примеры, как несчастный покупатель Нивы перед нами уехал с допами в треть стоимости автомобиля. На это мы прямо заявили, что вот эта нездоровая фигня нас не устраивает. Мы заказали Ниву в максимально возможной для нее комплектации, а все навороты сверх заводской комплектации будем делать сами, как нам нужно. Все понимаем про план продаж, и не против необходимых допов, в общем-то, даже готовы согласиться на некоторые, но не за овер-прайс, а за рыночную цену. Все наши хотелки менеджер записал на листочек и пообещал согласовывать все дальнейшие действия с нами. Но больше мы о нем не слышали, до момента приезда машины в салон.
Ушли мы расстроенные и злые. После долгой рефлексии, позиция с компромиссной сменилась на радикальную. Цель – купить авто по РРЦ (рекомендованной розничной цене) или максимально близкой к ней. Начались штудирования Закона «О защите прав потребителей», консультации в Роспотребнадзоре, раскопки крупиц информации в интернете. Онлайн-консультации в Роспотребнадзоре оказались самыми полезными. У них ограниченный тайминг (что-то около 15 минут), но можно записываться несколько раз. Также, за умеренную плату специалисты Роспотребнадзора помогут составить претензии, жалобы, иски. В интернете очень мало инфы, в основном только кликбейтные заголовки статей с нулевой полезностью, да жалестные посты на Пикабу, о том какие дилеры редиски и выкручивают руки. В общем, вот та база, которую нам удалось собрать на переговоры:
• Внимательно читать договор. В договор купли-продажи стоимость доп. оборудования вряд ли включат, скорее всего выделят в доп. соглашение, которое подписывать не нужно.
• Важно, что есть зафиксированное обязательство автосалона продать вам автомобиль (в нашем случае это был кассовый чек с указанием вин-номера и внесенной предоплатой). На основании этого мы могли требовать исполнения договора, в ответ на их отказ от продажи без доп. оборудования. Для этого нужно потребовать письменный отказ, который, конечно же, вам не предоставят. В этом случае нужно быть готовым вызывать правоохранительные органы, чтобы они запротоколировали отказ автосалона. Также специалисты Роспотребнадзора посоветовали зафиксировать на видео факт отказа менеджера от продажи авто.
• Далее, пока господа полицейские фиксируют отказ, нужно написать досудебную претензию с требованием исполнить обязательство по продаже автомобиля, формулировки досудебки также дали в Роспотребнадзоре (картинка стырена из интернета, но суть такая же).
Обязательно попросить себе копию с отметкой о приеме и оставить контактную информацию, куда направлять ответ. Либо направить претензию заказным письмом.
• Самое главное – быть готовым идти до конца. Быть настроенным твердо, но не скандально.
Пока я готовилась умереть от инсульта прям на месте, муж достал камеру и попросил менеджера повторить при свидетелях, что такое он сейчас сказал. Как ни странно, это немного сбило спесь с менеджера, и он попросился выйти поговорить на улицу, заодно и машину осмотреть. В ходе дружественной беседы цена на доп. оборудование снизилась до 45 тысяч рублей, что показалось приемлемым обеим сторонам, на чем и пожали руки. Но, уточнил менеджер, такая цена будет действовать только в кредит. Хе-хе, кредит так кредит, подумали мы.
Отправили заявки в банки и ушли ждать одобрения. Сделку назначили на следующий день. При блестящей кредитной истории мужа, банки не спешили давать одобрения, что показалось довольно странным. Только под конец следующего дня пришло одобрение от одного невзрачного банка, что показалось еще более странным. День сделки пропущен, поехали на следующий. По совершенно случайному стечению обстоятельств, наш менеджер заболел, и нас передали другому бедняге. Мы терялись в догадках, кому же нас слили – невезучему неопытному стажеру или наоборот, опытному зубру продаж?
Дождались, наконец, сертификата. От взгляда на него мы чуть со стульев не попадали (пыталась описать эту нелепицу, но проще один раз показать, чем сто раз рассказать):
Далее терпеть и играть в переговоры стало невыносимо, мы уже потребовали шаблон кредитного договора, коммерческое предложение с расшифровкой всей стоимости и график платежей. Менеджер устал бегать советоваться и повел наконец нас к кредитному специалисту, который заявил, что не может нам дать никаких документов, пока не определимся с ценой. После долгих перегавкиваний нам дали прочитать условия чужого кредитного договора, из которых стало понятно, что ставка фиксированная, и не вырастет при отказе от страхования, а также есть возможность досрочного погашения кредита с первого месяца. Значит, в период охлаждения (14 дней) после заключения договора, установленный Банком России, можно отказаться от страховок жизни и финансовых рисков с полным возвратом средств и без увеличения ставки по кредиту.
Что ж, вопрос со страховками на сумму 90 тысяч закрыт, осталось избавиться от автопомощника и снизить сумму КАСКО. К слову, как выяснилось во время бодания с автосалоном, вы не обязаны брать то КАСКО, которое предлагает вам дилер. Вы можете попросить выписку из ЭПТС и онлайн оформить КАСКО прямо в салоне, а для выдачи кредита нужен только номер полиса, не важно где и как он оформлен. Я начала оформлять КАСКО в другой страховой, мне посчитали полис вдвое дешевле, чем насчитал автосалон. Глядя на такие расклады, менеджер сжалился над нами и попросил своего страхового специалиста пересчитать наш полис – и магия! Полис подешевел до 25 тысяч.
Отлично. Осталась самая малость – «Сертификат Помощь на дороге» за 60 тысяч. Менеджер до последнего утверждал, что без этой услуги машину нам не продадут и кредит не выдадут. Машину не продадут? Что-то смутно знакомое, давайте поговорим об этом. У нас предоплата, исполняйте договор, деньги есть наличные, мы можем и без кредита обойтись. Ах, стоимость допов 45 тысяч только при условии кредита, иначе только за 70 тысяч? Ну хорошо, мы купим у вас за 70 тысяч, но вы нам предоставите прайс-листы на материалы и работы за подписью директора, а дальше мы идем в суд оспаривать их стоимость, а там уж неизвестно, как повернется.
Менеджер ушел за прайс-листами, а вернулся почему-то на щите. Леший с вами, говорит, и автопомощника уберу вам, т.к. прайс-листы куда-то потерялись. Только, чур, оценки хорошие поставьте. Да не вопрос, мы добрые. Поставим, все как попросите.
На момент написания поста, заявления на возврат страховок написаны, деньги возвращены. Также, мои маленькие любители автокредитов, знаете ли вы, что при досрочном погашении кредита можно вернуть деньги за неиспользованную часть КАСКО? Написав заявление и предоставив подтверждение, что обязательства перед банком выполнены.
• Автомобиль по РРЦ – 744 тысячи;
• Доп. оборудование (ковры, защита картера, защита КПП, защита раздатки, антикор днища) по околорыночной цене – 45 тысяч;
• Проценты банка (кредит погашен досрочно) – 4 тысячи.
И бесконечное количество утраченных нервных клеток.
Всем участникам, узнавшим себя в этой вымышленной истории, передаю пламенный привет.
Виртуализацией по тарифам. Настраиваем Windows в KVM
Содержание статьи
Плюсы и минусы KVM
Проект KVM (Kernel-based Virtual Machine) в этом году празднует десятилетие. Официально он включен в ядро с версии 2.6.20, выложенное на kernel.org 4 февраля 2007 года. Изначально разрабатывался компанией Qumranet, выкупленной Red Hat в 2008 году. После сделки KVM и библиотека управления виртуализацией oVirt стала основой платформы виртуализации RHEV, поэтому Red Hat на сегодня ключевой разработчик KVM.
Технология предоставляет полную виртуализацию на аппаратном уровне. Поэтому, в отличие от популярных LXC и OpenVZ, KVM может запускать в принципе любую ОС, не только Linux (Windows, FreeBSD. ), и Linux, отличающийся от конфигурации основной системы. Если нужна виртуальная машина, не совпадающая параметрами с основным хостом, то выбора особо нет. Включение в ядро было большим прорывом. Теперь поддержка виртуализации в ОС не требовала установки гипервизора (как Xen) и могла быть реализована в любом дистрибутиве, включая настольный. Из коробки доступен VNC, дающий возможность управлять виртуальным сервером с момента загрузки (то есть когда еще не работает SSH), как будто из локальной консоли. Проект активно сотрудничает с другим подобным решением QEMU, задействованы некоторые утилиты и общий формат файла образа Qcow2.
Минусы, конечно, тоже есть. Куда же без них. Главный — процессор должен иметь аппаратную поддержку виртуализации Intel VT-x или AMD-V. Проверить их наличие можно вручную или при помощи утилит:
Также о поддержке технологий говорят флаги в CPU:
В зависимости от производителя процессора будет загружен свой модуль ядра (kvm-amd.ko либо kvm-intel.ko).
Проверяем поддержку KVM
Xakep #216. Копаем BitLocker
Накладные расходы чуть выше, чем при использовании LXC и OpenVZ. Причин тому две.
KVM-контейнер запускает свою копию ядра и окружения, и под них требуется память. LXC и OpenVZ же используют ядро и системные вызовы сервера. Поэтому при одинаковых характеристиках на хостинге у них совершенно разные возможности. При создании KVM-контейнера под него сразу резервируются все ресурсы согласно установкам. Это хорошо видно в htop. Стоит добавить ОЗУ в KVM, как сразу на это значение увеличивается объем занятой памяти. Выйти за лимиты VM не может, они устанавливаются жестко. В этом даже и плюс, можно сразу рассчитать будущую нагрузку на своем сервере, а ресурсы никто не позаимствует.
И VM работают относительно стабильно в плане производительности. В то время как при OpenVZ-виртуализации ресурсы выделяются динамически по мере надобности и каждый виртуальный сервер использует ровно столько ресурсов, сколько ему сейчас нужно. Незанятые ресурсы остаются свободными. Поэтому он и популярен у хостеров, ведь можно всегда напихать чуть больше VM, и именно поэтому виртуальные машины, созданные с запасом, могут работать то быстрее, то медленнее. Иногда оптимизация VM под OpenVZ — настоящая мука: непонятно, почему сервер стал работать по-другому — из-за новых настроек или внешних факторов.
Администрировать KVM сложнее, так как прозрачный доступ к файлам, процессам, консолям и сети контейнеров отсутствует, это приходится настраивать самостоятельно. Перестройка параметров VM в KVM (CPU, RAM, HDD) не очень удобна и требует дополнительных действий, включающих перезагрузку ОС. В том же OpenVZ это можно сделать на лету. Сам проект не предлагает удобных графических инструментов для управления виртуальными машинами, только утилиту virsh, реализующую все необходимые функции. Но, поискав в Сети, можно найти несколько интерфейсов, хотя для индивидуального использования одной или нескольких VM их обычно ставить нет смысла. К тому же много open source проектов, активно развивавшихся во время большого интереса к виртуальным машинам, сегодня стали коммерческими, хотя некоторые по-прежнему предлагают обрезанную free-версию. В репозитории пакетов есть virt-manager, предлагающий графический интерфейс для управления KVM и другими типами VM, поддерживающими virtlib, как установленных локально, так и удаленно через SSH.
В качестве веб-интерфейсов можно порекомендовать старенький, но еще рабочий WebVirtMgr, бесплатный UVMM UCS Core Edition, openQRM Free Community Edition и другие. Кроме того, существуют специальные дистрибутивы вроде Proxmox VE, в котором все необходимые инструменты для создания и управления VM на базе KVM и LXC уже есть (правда, он подходит для bare metal установки, а не на удаленный VDS).
Установка KVM
Плюсы KVM в том, что она работает из коробки и что процессоры серверов хостеров однозначно поддерживают эту технологию. Поэтому вполне реально при наличии свободных ресурсов подгрузить в VDS еще одну виртуальную машину (или несколько). Конечно, под фактически двойной виртуализацией они будут работать не так быстро, как на железе, но если большая нагрузка не планируется, то этого вполне должно хватить. Более того, у некоторых хостингов есть rescue-инструменты, дающие возможность подмонтировать другую файловую систему (в hetzner это rescue/LARA ), подменить имеющуюся и даже установить свою ОС. При некотором умении можно по тарифам Linux абсолютно легально использовать Windows.
Наша задача — установить под KVM Win и настроить доступ. KVM работает со всеми версиями Win, включая и последние. Но Win капризней к ресурсам, поэтому тариф следует подбирать с учетом минимальных системных требований и накладных расходов на ОС и виртуализацию. На Digital Ocean, например, Win2012R2 при 4 Гбайт ОЗУ сильно тормозит, а если выделить 6+ Гбайт, то уже вполне нормальный отклик. В различных дистрибутивах и даже версиях процесс немного отличается, но в основном это касается названий пакетов. Мы будем использовать Ubuntu 16.06. Ставим пакеты.
Проверяем поддержку KVM.
Список поддерживаемых ОС и их названия
Вначале просто стоит пройтись и познакомиться, чтобы понять суть. Список ОС пока пуст:
Проверяем, что сеть настроена. По умолчанию используется default (подробнее дальше по тексту).
Если в ответ получаем, что невозможно подключиться, проверяем права доступа на сокет и каталоги выше (в основном в этом проблема).
И перезагружаем модули:
Далее два варианта. Можно самостоятельно установить операционную систему или взять уже готовый образ с установленной ОС. Первый шаг в общем отличается тем, что нужно подготовить диск, запустить VM и установить ОС стандартным способом. Создадим диск размером 25 Гбайт.
Если в будущем нужно изменить размер диска, то используется команда resize:
Некоторые параметры очевидны, поэтому кратко:
Удаленно также можно зайти с использованием любого VNC-клиента, при необходимости используя port forwarding (см. ниже).
Коннектимся к Windows, запущенной под KVM
После установки ОС можно приступать к работе. Второй вариант позволяет использовать уже готовый диск с установленной ОС. Его можно скопировать с готовой системы, сконвертировать при помощи qemu-img convert, которая поддерживает форматы дисков практически всех систем виртуализации. Или взять с сайта проекта Cloudbase.
В дальнейшем можно управлять поведением VM при помощи virsh start|reboot|shutdown|suspend|resume|destroy|undefine|edit|autostart|info и так далее.
Скопируем настройки в файл.
Теперь в любом текстовом редакторе правим параметры второй машины, указываем новый виртуальный диск и можем запускать второй экземпляр. Для клонирования есть и другой вариант.
Настройки виртуальной машины
Сеть в KVM
Правила iptables после установки KVM
Второй вариант — Bridged, когда интерфейс гостевой ОС привязывается к физическому интерфейсу и VM доступна извне без допнастроек. Этот вариант чуть сложнее в настройках, так как из-за перестроек можно потерять SSH-подключение. Поэтому при отсутствии локальной консоли (Java/веб-аплета у провайдера) пользоваться им нужно только после тщательного тестирования, и мы его рассматривать не будем.
В первом варианте удобнее настроить KVM так, чтобы она назначала гостевой системе один и тот же IP-адрес. Это можно сделать прямо в конфигурационном файле /etc/libvirt/qemu/networks/default.xml или вызвав
Далее добавляем параметр host в секции dhcp :
Редактируем сетевые настройки для виртуального хоста
И так для каждого узла. После чего перезапускаем сеть.
Теперь можем указать маршрут к сервису в основной системе:
По умолчанию VNC в хостовой машине слушает только локальный порт. Поэтому при подключении с помощью VNC-клиента нужно обязательно пробрасывать порты.
Аналогичные настройки есть в сетевых установках хоста.
Чтобы не менять установки для каждой VM, проще изменить это поведение глобально:
Заключение
Ну вот, собственно, мы имеем Windows, запущенную внутри Linux. Конечно, рассматривать KVM для локальной установки, где сильны позиции у VirtualBox и VMware Workstation, не стоит, но при наличии свободных ресурсов на VDS можно быстро развернуть еще одну машину. Скорость, конечно, будет невелика, но для небольших тестов вполне достаточная.