Kvm создание виртуальной машины windows

Управление виртуальными машинами KVM из консоли

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

Virsh: команды управления виртуальной машиной KVM

Первый вопрос, который возникает у начинающего администратора KVM: как увидеть созданные виртуальные машины, как остановить, запустить и удалить их. Для управления ВМ в KVM из консоли можно использовать утилиту virsh (использует libvirt API). С помощью утилиты virsh можно выполнить практически все операции с виртуальными машинами KVM.

# virsh list – показать список запущенных ВМ

# virsh list —all – показать список всех машин (в том числе выключенных)

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

# virsh shutdown — выключить виртуальную машину

# virsh start — запустить виртуальную машину

# virsh suspend — приостановить виртуальную машину

# virsh resume — запустить приостановленную виртуальную машину

# virsh reboot — перезапустить виртуальную машину

# virsh destroy — уничтожить виртуальную машину

# virsh undefine — удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).

# virsh vcpuinfo — информация о процессоре на виртуальной машине (информацию о железе физического Linux сервера можно получить так)

Еще несколько команд по получению различной информации о виртуальной машине:

# virsh domid — получить идентификатор виртуальной машины

# virsh domuuid — получить UUID виртуальной машины

# virsh dominfo — получить сведения о виртуальной машине

# virsh domstate — просмотр состояния виртуальной машины

# virsh dumpxml — вывести файл конфигурации указанной виртуальной машины в XML формате

Добавление памяти и vCPU виртуальной машине KVM

В консоли KVM вы можете добавить или уменьшить ресурсы процессора и памяти, выделенные для ВМ двумя способами:

  • С помощью virsh
  • Через конфигурационный XML файл ВМ

Если виртуальная машина запущена, ее нужно остановить:

# virsh shutdown test-centos

Теперь с помощью virsh изменим количество виртуальных процессоров до 6 (vCPU):

# virsh setvcpus —config

— количество ядер процессора

# virsh setvcpus test-centos 6 —config

Но при применении этой команды, у меня сразу же появилась ошибка:

Мы не можем установить количество ядер процессора, больше, чем максимальное количество. Чтобы увеличить максимальное количество ядер ВМ, выполните команду:

# virsh setvcpus test-centos 6 —config —maximum

Повторите первую команду и запустите виртуальную машину:

Проверим количество процессоров в настройках ВМ: овленное количество процессоров:

# virsh dumpxml test-centos

Аналогичным образом добавим память виртуальной машине:

# virsh setmem —config

# virsh setmem test-centos 4G —config

Все по той же причине, сразу же вышла ошибка:

Увеличим максимальное значение памяти::

# virsh setmaxmem test-centos 6G —config

Теперь можно увеличить память ВМ.

Читайте также:  Испорчен или отсутствует файла windows system32 config system

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

Также вы можете изменить ресурсы ВМ KVM через ее конфигурационный XML файл. Можно изменить файл в режиме онлайн или же сделав бэкап XML файла ВМ, изменить его и применить к виртуальной машине.

Отредактируем XML файл ВМ в онлайн режиме:

В открывшемся редакторе vi внесите изменения, нажав кнопку “Insert”.

Например, зададим для ВМ 2 ядра и 1Гб памяти:

Сохраните изменения в файле и перезапустите ВМ:

Проверьте настройки ВМ:

Тоже самое можно сделать, сделав бэкап XML файла:

# virsh dumpxml > /root/test.xml
# vi /root/test.xml

Измените нужные вам параметры, сохраните файл и примените к виртуальной машине:

# virsh shutdown test-centos

# virsh define /root/test.xml

# virsh start test-centos

KVM: добавление диска в виртуальную машину

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

Сначала нужно создать дополнительный файл диска для виртуальной машины:

# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img

Вместо qcow2 вы можете указать нужный формат диска, так же нужно указать путь до файла. У меня хранилище для дисков /vz/disk/.

После этого, можно добавить устройство виртуального диска к самой ВМ:

# virsh attach-disk /vz/disk/test.img vdb —type disk —persistent

Остановите и запустите ВМ, проверьте что получилось:

# virsh shutdown test-centos

# virsh start test-centos

# virsh dumpxml test-centos

Как видим, диск добавлен. После данных манипуляций, на виртуальной машине нужно разметить этот диск под ваши нужды.

KVM: добавление сетевой карты для виртуальной машины

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

У меня на KVM сервере создана одна виртуальная машина, с одним сетевым интерфейсом. К br0 нам нужно прикрепить еще один виртуальный сетевой интерфейс. Выполните команды:

# virsh shutdown test-centos
# virsh attach-interface test-centos —type bridge —source br0 —persistent
# virsh start test-centos

Проверьте, что у ВМ появился дополнительный сетевой интерфейс:

Также вы можете изменить сетевые настройки виртуальной машины напрямую через XML файл: # virsh edit test-centos

После первого сетевого интерфейса добавьте следующие строки:

Сохраните файл и запустите ВМ. Остальную конфигурацию, KVM добавит сам (mac address и тд).

В данной статье мы затронули основные моменты, которые могут вам понадобиться при управлении виртуальными машинами KVM из консоли Linux сервера. В следующей статье мы рассмотрим управление виртуальными машинами через графический менеджер virt-manager.

Создание виртуальной машины kvm из консоли

Опубликовано вс, 09/14/2014 — 13:42 пользователем goodigy

Создание хранилища.

Для начала создадим хранилище виртуальных машин.
Я буду использовать простой тип хранилища, основанный на папках.

storage — название хранилища,
dir — — — — «/home/goodigy/kvm» — путь к папке.

Вывод должен быть таким

Добавляем в автозагрузку

Информация о хранилище

Создание виртуальной машины kvm, с помощью virt-install.

Устанавливать мы будем с помощью утилиты virt-install

Создание виртуальной машины, например, с опреционной системой CentOs на борту.

  • -n — название нашей машины, CentOs;
  • -r — выделяемая память, 1024Мб;
  • —vcpus — процессор;
  • -c — путь к iso-образу установочного диска;
  • —disk — виртуальный hdd;
    • pool — название хранилища, storage;
    • size — размер hdd, 20Гб;

Можно указать еще очень много параметров.

Узнать какие существуют

Установка виртуальной машины с существующим диском, на примере виртуальной машины битрикса, описанной в одной из предыдущих статей.

  • —os-type — linux или windows;
  • —os-variant — одно значение из списка, можно посмотреть командой virt-install —os-variant list;
Читайте также:  Как поменять имена дисков windows

Установка Windows на KVM

Установка Windows на KVM для опытных системных администраторов не составит труда. Тем не менее, в процессе развертывания ОС и создания под неё виртуальной машины могут встретиться ряд нетривиальных проблем , связанных с особенностями KVM. О них я и расскажу.

Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге

Установка Windows на KVM

К настоящему моменту у меня уже есть сервер с KVM. На нем также сконфигурирована сеть и хранилище гостевых дисков. Все это я подробно расписал в своей предыдущей статье Установка гипервизора KVM.

Для создания виртуальной машины я буду использовать утилиту virt-install.

Конфигурация виртуальной машины

Есть ряд базовых параметров, без указания которых создание виртуальной машины с помощью virt-install невозможно — это имя ВМ, объем оперативной памяти, настройки диска и параметры установки. Тем не менее, для наглядности я укажу и другие опции, которые так или иначе используются не реже обязательных.

Команда для создания виртуальной машины:

  • -os-type windows — Устанавливает более подходящие аппаратные настройки для конкретной ветки ОС;
  • —disk pool=guest_images — Создает виртуальные диски в данном хранилище;
  • —graphics vnc,listen=0.0.0.0 — Устанавливаем тип графики. Адрес прослушки необходим, чтобы к vnc могли подключаться удаленные админы. По дефолту разрешены только локальные подключения.

Назначение остальных параметров очевидно.

Если в процессе создания виртуальной машины вы получили ошибку:

Используем KVM для создания виртуальных машин на сервере

Эту заметку я пишу для того, чтобы продемонстрировать пошаговую установку и настройку виртуальной машины в Linux на базе KVM. Ранее я уже писал про виртуализацию, где использовал замечательный инструмент Vagrant.

Сейчас передо мной встал вопрос аренды хорошего сервера с большим объёмом оперативной памяти и объёмным жестким диском. Но запускать проекты прямо на хост-машине не хочется, поэтому буду разграничивать их по отдельным небольшим виртуальным серверам с ОС Linux или docker-контейнерам (о них расскажу в другой статье).

Все современные облачные хостинги работают по такому же принципу, т.е. хостер на хорошем железе поднимает кучу виртуальных серверов, которые мы привыкли называть VPS/VDS, и раздаёт их пользователям, либо автоматизирует этот процесс (привет, DigitalOcean).

KVM (kernel-based virtual machine) это программное обеспечения для Linux, использующее аппаратные средства x86-совместимых процессоров для работы с технологией виртуализации Intel VT/AMD SVM.

Установка KVM

Все махинации по созданию виртуальной машины я буду проводить на ОС Ubuntu 16.04.1 LTS. Чтобы проверить поддерживает ли ваш процессов аппаратную виртуализацию на базе Intel VT/AMD SVM, выполняем:

Если терминал непустой, то значит всё в порядке и KVM можно устанавливать. Ubuntu официально поддерживает только гипервизор KVM (входит в состав ядра Linux) и советует использовать библиотеку libvirt в качестве инструмента по управлению им, что мы и будем делать дальше.

Проверить поддержку аппаратной виртуализации в Ubuntu также можно через команду:

В случае успеха, вы увидите что-то вроде этого:

Устанавливаем пакеты для работы с KVM:

Если у вас есть доступ к графической оболочке системы, то можно установить GUI менеджер libvirt:

Пользоваться virt-manager достаточно просто (не сложнее VirtualBox), поэтому в этой заметке речь пойдёт про консольный вариант установки и настройки виртуального сервера.

Установка и настройка виртуального сервера

В консольном варианте установки, настройки и управлением системой, незаменимым инструментом является утилита virsh (надстройка над библиотекой libvirt). У неё большое количество опций и параметров, подробное описание можно получить так:

Читайте также:  Драйвера для смарт карты windows

или вызвать стандартный «help»:

Я всегда придерживаюсь следующих правил при работе с виртуальными серверами:

  1. Храню iso образы ОС в каталоге /var/lib/libvirt/boot
  2. Храню образы виртуальных машин в каталоге /var/lib/libvirt/images
  3. Явно задаю каждой новой виртуальной машине свой статичный IP адрес через DHCP сервер гипервизора.

Приступим к установке первой виртуалки (64-битной серверной убунте 16.04 LTS):

Скачав образ запускаем установку:

Переводя все эти параметры на «человеческий язык», то получается, что мы создаём виртуальную машину с ОС Ubuntu 16.04, 1024 МБ ОЗУ, 1 процессором, стандартной сетевой картой (виртуальная машина будет ходить в интернет как-будто из-за NAT), 20 ГБ HDD.

Стоит обратить внимание на параметр —os-variant, он указывает гипервизору под какую именно ОС следует адаптировать настройки.
Список доступных вариантов ОС можно получить, выполнив команду:

Если такой утилиты нет в вашей системе, то устанавливаем:

После запуска установки, в консоли появится вот такая надпись:

Это нормальная ситуация, продолжать установку мы будем через VNC.
Смотрим на каком порту он был поднят у нашей виртуалки (в соседнем терминале, например):

Порт 5900, на локальном адресе 127.0.0.1. Чтобы подключиться к VNC, необходимо использовать Port Forwarding через ssh. Перед тем как это сделать, убедитесь, что tcp forwarding разрешён у демона ssh. Для этого идём в настройки sshd:

Если ничего не нашлось или вы видите:

То правим конфиг на

и перезагружаем sshd.

Настройка Port forwarding

Выполняем команду на локальной машине:

Здесь мы настроили ssh port forwarding с локального порта 5900 на серверный порт 5900. Теперь уже можно подключиться к VNC, используя любой VNC-клиент. Я предпочитаю UltraVNC из-за простоты и удобства.

После успешного подключения, на экране отобразится стандартное окно приветствия начала установки Ubuntu.

После завершения установки и привычной перезагрузки, появится окно входа в систему. Авторизовавшись, определяем IP адрес новоиспечённой виртуалки, чтобы позже сделать его статичным:

Запоминаем и идём на хост машину. Вытаскиваем mac-адрес «сетевой» карты виртуалки:

Запоминаем наш mac адрес:

Редактируем сетевые настройки гипервизора:

Ищем DHCP, и добавляем вот это:

Должно получиться что-то вроде этого:

Для того, чтобы настройки вступили в силу, необходимо перезагрузить DHCP сервер гипервизора:

После этого перегружаем виртуальную машину, теперь она всегда будет иметь заданный ей IP адрес — 192.168.122.131.

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

Чтобы подключиться к терминалу виртуальной машины, выполняем:

Машина готова к бою.

Virsh: список команд

Чтобы посмотреть запущенные виртуальные хосты (все доступные можно получить добавив —all):

Перезагрузить хост можно:

Остановить виртуальную машину:

Добавить в автозапуск:

Очень часто требуется склонировать систему, чтобы в будущем использовать её как каркас для других виртуальных ОС, для этого используют утилиту virt-clone.

Она клонирует существующую виртуалку и изменяет host-sensitive данные, например, mac address. Пароли, файлы и прочая user-specific информация в клоне остаётся прежней. Если на клонируемой виртуалке IP адрес был прописан вручную, то могут возникнуть проблемы с доступом по SSH на клон из-за конфликта (2 хоста с одинаковым IP).

Помимо установки виртуалки через VNC, также возможен вариант с X11Forwarding через утилиту virt-manager. В Windows, например, для этого можно использовать Xming и PuTTY.

Ссылки

💌 Присоединяйтесь к рассылке

Понравился контент? Пожалуйста, подпишись на рассылку.

Оцените статью