Виртуализация для debian linux

Qemu-KVM: работа в Debian

Данная статья — это обобщение информации, накопленной за время использования гипервизора Qemu-KVM. Я хочу поделиться теми знаниями опытом, которыми обладаю на данный момент. Надеюсь, что моя статья пойдет на пользу тем, кто только собирается использовать гипервизор Qemu-KVM или уже использует. И еще: статья не для новичков linux (элементарные вещи здесь рассматриваться не будут).

Про данную систему виртуализации в сети написано много. Но когда действительно начинаешь с ней работать — сталкиваешься с нехваткой информации и практических примеров применения. Итак приступим.

  • процессор Atlon X2 245
  • оперативная память 4 гигабайта
  • жесткий диск 500 гигабайт
  • материнская плата ASUS M4N68T-M LE.
  1. Microsoft hyper-v не подходит — платная. Компания, в которой я работаю использует только лицензионное программное обеспечение. Следовательно никто не выделит для моих целей лицензию на сервер.
  2. VMWARE ESXi не знает контролера SATA, расположенного на материнской плате (поскольку разрабатывалась для серверных систем).
  3. Qemu-kvm — свободно разрабатываемый гипервизор, поддерживает аппаратную виртуализацию. Его можно установить в любой современный дистрибутив Linux. Это по мне, его и берем.

Переходим к делу. Установку операционной среды описывать я не буду. Оговорюсь лишь, что во время установки операционной среды жесткий диск большего размера не трогал. Его время еще придет. Как установить гипервизор на Debian очень хорошо описано здесь. Лично я ставлю qemu-kvm libvirt-bin.

Гипервизор поставили, теперь немного о внутренней структуре. Есть два каталога, в которые стоит заглянуть:
/etc/libvirt/ — здесь в основном хранятся конфигурационные файлы
/var/lib/libvirt/ — здесь будут хранится образы жестких дисков, мгновенные снимки системы и многое другое.
Наш гипервизор установлен.

Теперь немного о настройках. Qemu-kvm не работает напрямую с сетевой картой на физическом компьютере. Следовательно нужно настроить мост. Что делаем: открываем файл /etc/network/interfaces и приводим его к следующему виду:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo br0
iface lo inet loopback
# Set up interfaces manually, avoiding conflicts with, e.g., network manager
iface eth0 inet manual
# Bridge setup
iface br0 inet static
bridge_ports eth0
address ххх.ххх.ххх.ххх
broadcast ххх.ххх.ххх.ххх
netmask ххх.ххх.ххх.ххх
gateway ххх.ххх.ххх.ххх
bridge_stp off
bridge_fd 0
bridge_maxwait 0

Больше информации здесь.

Читайте также:  Astra linux автоматическое монтирование сетевой папки

Далее сохраняем файл и перезагружаем компьютер.
О, чудо! Гипервизор установлен!
Дальше возникает вопрос: как управлять сервером? Управлять Qemu-kvm можно двумя программами: virt-manager и virtinst.

Virt-manager.
Эта программа рассчитана на графический интерфейс. Она поддерживает как удаленное управление виртуальными машинами, так и локальное. Но у нее есть огромный минус — аналогов для windows попросту нет.
Как лично я вышел из положения. Установил графическую оболочку LXDE и сервер xrdp, благодаря такому нехитрому набору программ мне не пришлось физически ходить к компьютеру (больно много ему чести). Я просто подключался через стандартный RDP клиент который, есть в windows. Но это дополнительная трата ресурсов компьютера.
Если вы установили virt-manager, он автоматически создает:
хранилище для образов виртуальных машин по пути /var/lib/libvirt/images
виртуальный сетевой интерфейс default.
Следовательно подмонтировать жесткий диск с большим объемом нужно в директорию /var/lib/libvirt/images.

  1. можно подмонтировать жесткий диск в директорию и указать его в качестве хранилища
  2. можно просто устройство выбрать хранилищем.

virsh #

Теперь если дать команду help — видим список команд оболочки. Нас интересует, есть ли готовые хранилища. Для этого вводим команду pool-list —all
virsh # pool-list —all
— Name State Autostart

Если ввести просто pool-list, то вам будут показаны только активные хранилища, а нужно видеть их все.
Создаем пул
virsh # pool-define-as storage dir —target /etc/libvirt/images/

Говорим, что пул запускается автоматически
virsh # pool-autostart storage

Стартуем пул
virsh # pool-start storage

Теперь проверяем
virsh # pool-list –all

Вывод должен быть такой
virsh # pool-list —all
Name State Autostart
— storage active yes

Немного о командах рекомендую прочитать тут.

Если не создавать хранилище для образов дисков виртуальных машин, то для того, чтобы диски лежали в одном месте, нужно будет указывать полный путь к образу при его создании(много писать), а так образ создастся в указанном пуле или если он у вас единственный, то его имя указывать не обязательно. Конфигурационный файл пула будет лежать в директории /etc/libvirt/storage/ это .xml файлик. Выходим из virsh введя команду exit.

Читайте также:  Информация о терминале линукс

В принципе наш гипервизор установился и его можно использовать. Но есть еще маленькая мелочь, о которой хотелось бы упомянуть. А именно о том, как работает Qemu-kvm.

Запущенная на нем виртуальная машина шлет команды физическому процессору напрямую через загружаемый модуль (kvm-amd или kvm-intel). Это должен быть один из модулей, который соответствует производителю процессора (Intel или AMD).

  • отключаю поддержку звука (это сервер, а не рабочая станция);
  • не использую протокол IPv6 (в моей сети он не используется);
  • отключаю поддержку сетевых карт wifi, wmax и все что сними связанно.

В сборке собственного ядра мне помогли вот эти статьи первая и вторая.

Забегу немного вперед. Многие люди в интернете жаловались на то, что модель сетевой карты virtio некорректно работает. Этому есть объяснение, и достаточно простое. Драйвера для этого устройства находятся в стадии экспериментальных. Зато virtio storage работают отлично.

Теперь начинаем работать с виртуальными машинами. Создаем нашу первую виртуальную машину:
virt-install —connect qemu:///system \
—name comp1 \
—ram 512 \
—vcpus=1 \
—disk pool=storage,cache=none,size=20, format= qcow2\
—disk /home/firsachi/Winxp.iso,device=cdrom \
—bridge=br0,model=e1000 \
—os-type=windows
—os-variant=winxp \
—graphics vnc,port=5901,listen=0.0.0.0

Некоторые детали хочу пояснить:
pool=storage указываем пул, в котором нужно создать диск;
cache=none это означает, что отключено кэширование записи на диск. В моем случае это образ img. При включенном кэшировании записи вдвое увеличивается время обращения к диску виртуальной машины;
size=20 размер диска в гигабайтах;
format= qcow2 это формат образа диска. Как я понял, только он поддерживает снимки системы;
model=e1000 модель сетевой гигабитной карты Intel (по умолчанию идет стомегабитный rtl8139);
port=5901 порт, на который можно обратиться с помощью Ultra VNC Viewer;
listen=0.0.0.0 разрешение подключиться со всех IP (по умолчанию слушает только localhost).
Установку можно произвести непосредственно и на устройство. Выглядеть будет так:
virt-install —connect qemu:///system \
—name comp1 \
—ram 512 \
—vcpus=1 \
—disk /dev/sdb, format= qcow2\
—disk /home/firsachi/Winxp.iso,device=cdrom \
—bridge=br0,model=e1000 \
—os-type=windows
—os-variant=winxp \
—graphics vnc,port=5901,listen=0.0.0.0

Где sdb должен быть заменен на ваше устройство.

Если все прошло успешно, то для подключения к консоли нашей виртуальной машины нужно установить Ultra VNC Viewer к себе на компьютер. В подключении нужно указать IP адрес сервера и порт, или доменное имя сервера и порт.
Как происходит установка Windows, надеюсь, знают все.

Читайте также:  Linux посмотреть всех пользователей centos

Теперь о драйверах виртуальных машин. Для установки драйверов нужны следующие образы дисков: virtio-win-0.1-30.iso и viostor-0.1-30-floppy.img
Последний диск не обязателен, он нужен только в том случае, если вы собираетесь установить windows xp или windows 2003 server на virtio storage (кстати, если так сделать, то операционная система работает быстрее).

  • comp1 – имя виртуального компьютера, к которому подключаем диск.
  • /dev/sdc – путь к устройству на физическом компьютере.
  • Vdv — куда подключаем на виртуальной машине.
  • —type – тип диска.

Во многом поможет и вот эта статья. Рекомендую также заглядывать вот сюда.

  • компьютер, на котором работала виртуальная машина, сгорел (процессор Atlon X2 245).
  • раз в неделю виртуальная машина выключается и делается резервная копия файла конфигурации и образа диска.

Установил на нем Qemu-KVM, переместил на него файл конфигурации виртуальной машины и образ диска. В файле конфигурации отредактировал путь к диску виртуальной машины, перезагрузил ноутбук. И, о чудо! Гипервизор не только увидел мою виртуальную машину, но и запустил ее.

Создание снимков виртуальных машин.
Qemu-KVM поддерживает создание снимков виртуальных машин. Приведу самый простой пример. От суперпользователя заходим в virsh и выполняем следующую команду:
virsh # snapshot-create-as name
name — это имя виртуальной машины.
После того, как снимок виртуальной машины будет сделан, резервные копии файлов конфигураций будут лежать в директории /var/lib/libvirt/qemu/snapshot/. Но вот где лежат данные диска виртуальной машины — мне пока не известно.

Просмотреть снимки можно следующей командой:
virsh # snapshot-list name
Name Creation Time State
— 1360593244 2013-02-11 16:34:04 +0200 running
1360594479 2013-02-11 16:54:39 +0200 running

Восстановить из фотографии можно так:
virsh # snapshot-revert name 1360593244

Удалить не нужный снимок можно так:
virsh # snapshot-delete name 1360593244

Вот так теперь и живем: гипервизор Qemu-KVM, виртуальный контролер домена, и довольный проделанной работой я.
Спасибо всем, кто дочитал до конца. Надеюсь, мои мысли оказались полезными.

Источник

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