Запуск KVM в Centos

KVM – это одно из программных решений для обеспечения визуализации в среде Linux. С недавнего времени RedHat отказался от разавития сразу нескольких систем виртуализации Xen и KVM, и начиная с ветки RHEL/CentOS 6 основной системой стала KVM. Главным требованием KVM является наличие поддержки процессором аппаратной визуализации. А модули KVM есть только для архитектуры x86_64.

1. Установка

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

[root@srv ~]# egrep ‘(svm|vmx)’ /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority

Если вывод пустой, значит процессор не поддерживает аппаратную виртуализацию и kvm не будет работать, если же вывод подобный приведенному выше, значит можно приступать к установке. Устанавливаем компоненты и запускаем сервис libvirt:

[root@srv ~]# yum install kvm libvirt virt-manager
[root@srv ~]# service libvirtd start
Starting libvirtd daemon: [ OK ]

Проверяем подгрузились ли необходимые модули KVM – должно получиться два модуля первый kvm, второй kvm_intel или kvm_amd для соответствующего типа процессора.

[root@srv ~]# lsmod | grep kvm
kvm_intel 55496 4
kvm 337900 1 kvm_intel

В некоторых случаях не смотря на наличие поддержки аппаратной виртуализации процессором приходится дополнительно включать поддержку виртуализации в BIOS или перепрошивать BIOS последней версией.

2. Настройка сети
Первое что нужно сделать это настроить сетевой мост с основным интефейсом и удалить сеть Default. Сетевой мост позволит компьютерам находящимся в физической сети легко общаться с виртуальным сервером, как будто он находится в той же сети, а виртуальному серверу точно также легко и прозрачно общаться с компьютерами физической сети.

2.1. Настройка моста bridge0
Для примера предположим у нас на сервере виртуализации есть всего один интерфейс eth0 с IP-адресом 172.17.1.249, а конфигурационный файл интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 выглядит следующим образом.

DEVICE=»eth0″
BOOTPROTO=»static»
HWADDR=»78:24:AF:3C:C5:B5″
IPADDR=172.17.1.249
NETMASK=255.255.0.0
GATEWAY=172.17.1.30
ONBOOT=»yes»
Приводим файл /etc/sysconfig/network-scripts/ifcfg-eth0 к сделующему виду.

DEVICE=»eth0″
BOOTPROTO=»static»
HWADDR=»78:24:AF:3C:C5:B5″
BRIDGE=bridge0
ONBOOT=»yes»
Создаем /etc/sysconfig/network-scripts/ifcfg-bridge0 и заполняем.

DEVICE=»bridge0″
TYPE=Bridge
BOOTPROTO=»static»
IPADDR=172.17.1.249
NETMASK=255.255.0.0
GATEWAY=172.17.1.30
ONBOOT=»yes»
Перезапускаем сервис network

[root@srv network-scripts]# service network restart
Shutting down interface eth0:  bridge bridge0 does not exist!
[  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface bridge0:                             [  OK  ]
При желании эту процедуру можно проделать удаленно, например через ssh – в этом случае перезапуск сервиса network вызовет двух-секундную задержку, после чего соединение восстановиться без переподключения. Проверяем созданный мост:

Теперь удалим дефолтный virbr0

[root@srv ~]# virsh net-list
Name State Autostart
——————————————
default active yes
[root@srv ~]# virsh net-destroy default
Network default destroyed
[root@srv ~]# virsh net-undefine default
Network default has been undefined

Для проверки состояния моста можно использовать утилиту brctl. Это стандартная утилита для работы с ethernet мостами:

[root@srv ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
bridge0              8000.7824af3cc5b5      no                     eth0

3. Установка и управление виртуальными машинами.
Для установки и управления виртуальными машинами есть очень удобная программа Virtual Machine Manager (Virt-Manager) для графической среды. Она имеет достаточно понятный интерфейс разобраться в котором без проблем сможет любой среднестатистический системный администратор. Управлять и создавать виртуальные машины также можно и при помощи консоли, это будет немного сложнее, но зато больше возможностей для тонкой настройки.

3.1. Установка виртуальных машин.
Для примета попробуем установить CentOS 6.0:

[root@srv ~]# virt-install -n vm01 -r 2048 -l http://mirror.yandex.ru/centos/6.0/os/x86_64 -f /vmstore/vm01.img -s 10 —network bridge=bridge0 —vnc
Параметры запуска:

-n — имя виртуальной машины
-r — объем оперативной памяти
-l — расположение файлов для сетевой установки
-f — путь к файлу-контейнеру содержащему диск виртуальной машины
-s — размер файла-котейнера в гигабайтах
—network bridge — подключить виртуальный сетевой интерфейс к сетевому мосту
—vnc — использовать VNC-дисплей
Для продолжения установки нам потребуется подключиться к экрану виртуальной машины через VNC. Для этого проверяем какой порт был выбран для подключения, он может варьироваться начиная от 5900 и далее.

[root@srv ~]# virsh dumpxml vm01 | grep vnc
<graphics type=’vnc’ port=’5900′ autoport=’yes’ listen=’0.0.0.0′>
Подключаемся по порту 5900 и завершаем установку.

если же при выводе

<graphics type=’vnc’ port=’5900′ autoport=’yes’ listen=’127.0.0.1′>

то идем и редактируем qemu.conf:

[root@srv ~]# nano /etc/libvirt/qemu.conf
vnc_listen = «0.0.0.0»
….
vnc_password = «xxxx»
[root@srv ~]# /etc/init.d/libvrtd restart

3.2. Управление машинами
Главный консольный инструмент управления виртуальными машинами – программа virsh. Первое что мы можем сделать это просмотреть список всех виртуальных машин и их состояние:

[root@srv ~]# virsh list —all
Id Name                 State
———————————-
— vm01                 shut off
Запускаем виртуальную машину vm01:

[root@srv ~]# virsh start vm01
Domain vm01 started

Останавливаем – равносильно выключению компьютера из розетки

[root@srv ~]# virsh destroy vm01
Domain vm01 destroyed

Параметры виртуальных машин можно менять редактируя xml файлы. Один вариант, сохранить конфигурацию в xml-формате.

[root@srv ~]# virsh dumpxml vm01 > vm01.xml

Отредактировать  vm01.xml и загрузить его обратно:

[root@srv ~]# virsh define vm01.xml
Domain vm01 defined from vm01.xml
Другой – воспользоваться функцией virsh edit, она автоматом откроет редактор настроенный в системе по умолчанию, а по окончании редактирования сохранит конфигурацию.

[root@srv ~]# virsh edit vm01

В большинстве систем редактором по умолчанию установлен vim, если он вам не нравится его вполне можно заменить например на mcedit или nano:

[root@srv ~]# echo «export EDITOR=mcedit» >> .bash_profile
Для применения параметров нужно перелогиниться.

Для управления через графическую консоль virt-manager:

Скачать отсюда Xming X Server for Windows, установить его, запустить.
Установить:
yum install xorg-x11-server-Xorg
yum install xauth
yum install liberation-sans-fonts
В PuTTY: Connection — SSH — X11 включить «Enable X11 forwarding» и прописать «X display location» 127.0.0.1:0.0
Запускаем :
[root@srv ~]# virt-manager
И рулим через X-овый фейс 🙂

Добавить комментарий