Для RHEL6, CentOS6 kvm будет работать для x86_64 версии ОС
Проверка поддержки процессором виртуализации
1 |
# egrep '(svm|vmx)' /proc/cpuinfo |
Пустой вывод у данной команды, означает отсутствие поддержки аппаратной виртуализации. Если же команда произвела вывод флагов процессора, есть смысл начать установку kvm
Установка и запуск
1 |
# yum install kvm virt-manager libvirt |
1 |
# /etc/init.d/libvirtd start |
Проверка загрузки модулей kvm:
1 |
# lsmod | grep kvm |
1 2 |
kvm_intel 54394 0 kvm 317504 1 kvm_intel |
Установка необходимых компоненты:
1 |
# yum install bridge-utils |
Настройка сетевого интерфейса хоста:
1 |
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-bridge0 |
1 |
# nano /etc/sysconfig/network-scripts/ifcfg-eth0 |
1 2 3 4 5 6 7 8 |
DEVICE=eth0 ONBOOT=yes BOOTPROTO=none NAME="System eth0" HWADDR=00:0C:29:41:7D:7A BRIDGE=bridge0 NM_CONTROLLED="no" TYPE="Ethernet" |
1 |
# nano /etc/sysconfig/network-scripts/ifcfg-bridge0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
DEVICE=bridge0 TYPE=Bridge UUID=efd81173-7ad1-4dc6-84c7-18f133073f75 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.45 PREFIX=24 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DOMAIN=kamaok.org.ua IPV6INIT=no DEFROUTE="yes" IPV4_FAILURE_FATAL="yes" NAME="System bridge0" |
Перезапускаем сетевой сервис:
1 |
# service network restart |
Проверяем наличие созданного интерфейса
1 |
# brctl show |
1 2 3 |
bridge name bridge id STP enabled interfaces bridge0 8000.000c29417d7a no eth0 virbr0 8000.000000000000 yes |
Сеть Default cоздается при установке и выбирается по умолчанию для сетевого интерфейса виртуальной машины во время установки через virt-install или графический Virtual Manager. Для доступа виртуальных машин к основной сети используется NAT. Скажем так: для хостинга пары-тройки виртуальных машин в локальной сети удобнее использовать мост с основным интерфейсом (bridge0); а для более сложной сетевой структуры (например Linux-роутер с DMZ) логичнее будет настроить виртуальную сеть с нуля. Кстати, настраивается эта сеть здесь /etc/libvirt/qemu/networks/default.xml
Просматриваем список виртуальных сетей.
1 |
# virsh net-list |
1 2 3 |
Name State Autostart Persistent -------------------------------------------------- default active yes yes |
1 |
# brctl show |
1 2 3 4 |
bridge name bridge id STP enabled interfaces bridge0 8000.000c29417d7a no eth0 vnet0 virbr0 8000.525400be1523 yes virbr0-nic |
Теперь отключаем дефолтный virbr0
1 |
# virsh net-destroy default |
1 |
# virsh net-list |
1 |
Name State Autostart Persistent |
Теперь отключаем дефолтный virbr0
1 |
# virsh net-undefine default |
1 |
# brctl show |
1 2 |
bridge name bridge id STP enabled interfaces bridge0 8000.000c29417d7a no eth0 |
1 |
# /etc/init.d/libvirtd restart |
Создаем виртуальную машину- Centos6(64bit)
1 |
# virt-install -n Centos64 --ram 1024 --arch=x86_64 --vcpus=1 --cpu host --check-cpu --os-type linux --os-variant=rhel6 --boot cdrom,hd,menu=on --disk /vms/centos64/centos64.img,size=10,bus=virtio --network=bridge:bridge0,model=virtio --graphics vnc,listen=0.0.0.0,keymap=ru,password=123456 --noautoconsole --watchdog default,action=reset --virt-type=kvm --autostart --cdrom=/home/iso/CentOS-6.4-x86_64-minimal.iso |
Создаем виртуальную машину- Debian7(32bit)
1 |
# virt-install -n Debian7 --ram 1024 --arch=i386 --vcpus=1 --cpu host --check-cpu --os-type linux --boot cdrom,hd,menu=on --disk /vms/debian70/debian70.img,size=8,bus=virtio --network=bridge:bridge0,model=virtio --graphics vnc,listen=0.0.0.0,keymap=ru,password=123456 --noautoconsole --watchdog default,action=reset --virt-type=kvm --autostart --cdrom=/home/iso/debian-7.1.0-i386-netinst.iso |
Создаем виртуальную машину- FreeBSD92(32bit)
1 |
# virt-install -n Freebsd92 --ram 1024 --arch=i386 --vcpus=1 --cpu host --check-cpu --os-variant=freebsd8 --boot cdrom,hd,menu=on --disk /vms/freebsd92/freebsd92.img,size=10,bus=virtio --network=bridge:bridge0,model=virtio --graphics vnc,listen=0.0.0.0,keymap=ru,password=123456 --noautoconsole --watchdog default,action=reset --virt-type=kvm --autostart --cdrom=/home/iso/FreeBSD-9.2-RELEASE-i386-disc1.iso |
Примечание: если используем LVM-раздел под виртуалку,тогда размер диска не указываем
Т.е вместо
1 |
--disk /vms/centos64/centos64.img,size=10 |
будет,например
1 |
--disk path=/dev/myvggroup/centos64 |
Т.к уже при создании LVM-раздела мы указали его размер
Например, lvcreate -L 10737418240b -n centos64 myvggroup
Выполняем команду на установку новой ВМ, затем подключаемся по vnc (через TightVNC или UltraVNC)к хост-серверу для продолжения установки ОС. Для того, чтобы узнать порт для подключения, выполняем:
1 |
# netstat -nltp | grep qemu |
1 |
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 2809/qemu-kvm |
При установке новой ВМ, порт vnc-сервера увеличится на 1. При удалении ВМ, порт освобождается, и затем выдается новой ВМ. То есть, номер порта последней ВМ не обязательно самый большой из 590X
Чтобы узнать, на каком порту vnc виртуалка с определенным названием, вводим:
1 |
# virsh vncdisplay <VMName> |
1 |
# virsh vncdisplay Centos64 |
1 |
:0 |
где VMName — имя ВМ, :0 — номер по порядку порта, начиная с 5900, то есть подключаться надо на порт 5900-> программе UltraVNC :5900
Место хранения конфигурационных файлов вирт.машин
1 |
/etc/libvirt/qemu/ |
Т.е для изменения настроек вирт.машины,например Centos64
1 |
# nano /etc/libvirt/qemu/Centos64.xml |
К примеру, можно указать статический порт vnc для конкретной ВМ, чтобы всегда подключаться к нужному порту
1 2 3 |
<graphics type='vnc' port='5914' autoport='no' listen='0.0.0.0' passwd='123456'> <listen type='address' address='0.0.0.0'/> </graphics> |
Теперь у этой ВМ порт vnc будет — 5914. Не забудьте перезагрузить libvirtd для применения изменений. Саму ВМ тоже следует перезагрузить. Поэтому изменяйте конфигурационный файл ВМ пока она выключена, далее выполняйте service libvirtd reload, затем стартуйте ВМ
После изменения вручную конф.файла необходимо выполнить
1 |
# virsh define /etc/libvirt/qemu/<VMName>.xml |
Однако удобнее такое изменение делать через утилиту virsh
1 |
# virsh edit <VMName> |
Она автоматом откроет редактор настроенный в системе по умолчанию, а по окончании редактирования сохранит конфигурацию.Можно делать и при работающей виртуалки, но изменения вступят в силу после ее перезапуска.
Основной конфигурационный файл QEMU
1 |
# virsh edit <VMName> |
Проверка доступных вариантов ОС
1 |
# virt-install --os-variant list | less |
Справка по командам virsh
1 |
# virsh help |
Просмотр состояния всех вирт.машин
1 |
# virsh list --all |
Запуск конкретной виртуалки
1 |
# virsh start <VMName> |
Завершение работы вирт.машины(гладкое)(у меня корректно не работает)
1 |
# virsh shutdown <VMName> |
Принудительное завершение работы ВМ ( отключение питания)
1 |
# virsh destroy <VMName> |
Удаление вирт.машины
1 |
# virsh undefine <VMName> |
Добавление виртуалки в автозагрузку
1 |
# virsh autostart <VMName> |
Удаление виртуалки из автозагрузки
1 |
# virsh autostart --disable <VMName> |
Просмотр номера порта для VNC подключения
1 |
# virsh vncdisplay <VMName> |
Просмотр номера порта для VNC подключения(альтернатива)
1 |
# virsh dumpxml <VMName> | grep vnc |
Обновление информации о машине
1 |
# virsh define /etc/libvirt/qemu/<VMName>.xml |
Редактирование файла конфигурации в редакторе по умолчанию
1 |
# virsh edit <VMName> |
Сохранение конфигурации в файл
1 |
# virsh dumpxml > VMName.xml |
Запустить команду в qemu мониторе
1 |
# virsh qemu-monitor-command <VMName> help --hmp |
Создание вирт.машины из файла .xml
1 |
# virsh create configuration_file.xml |
Получение информации о виртуальной машине
1 |
# virsh dominfo Freebsd92 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Id: 1 Name: Freebsd92 UUID: dd309d4a-f5c1-7478-9a08-45859dd4c5f8 OS Type: hvm State: running CPU(s): 2 CPU time: 22982.1s Max memory: 2072576 KiB Used memory: 2072576 KiB Persistent: yes Autostart: disable Managed save: no Security model: none Security DOI: 0 |
Получение информации о узле(хост-ноде)
1 |
# virsh nodeinfo |
1 2 3 4 5 6 7 8 |
CPU model: x86_64 CPU(s): 4 CPU frequency: 2494 MHz CPU socket(s): 2 Core(s) per socket: 2 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 2948916 KiB |
Получение информации о виртуальных процессорах
1 |
# virsh vcpuinfo Freebsd92 |
1 2 3 4 5 6 7 8 9 10 11 |
VCPU: 0 CPU: 2 State: running CPU time: 11160.9s CPU Affinity: yyyy VCPU: 1 CPU: 0 State: running CPU time: 10100.3s CPU Affinity: yyyy |
После удаления виртуалки(undefine) необходимо проверить, чтобы не осталось конфигов это виртуалки в /etc/libvirt/qemu и символьной ссылки в /etc/libvirt/qemu/autostart/
Также необходимо вручную удалить файл вирт.машины .img
(место хранения файла задается параметром —disk при создании виртуалки)
Управление виртуальными машинами удаленного сервера с удобным графическим интерфейсом (используя virt-manager)
Отсюда качаем и устанавливаем X Server для Windows
http://sourceforge.net/projects/xming/
Запускаем этот сервер на Windows
2. В настройках PuTTY включить «Enable X11 Forwarding»
В момент подключения к удаленному серверу Xming должен быть уже запущен.
3.На хост-сервере с CentOS для SSH включить X11 Forwarding, для этого отредактируйте файл sshd_config:
1 |
# nano /etc/ssh/sshd_config |
1 2 3 |
X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes |
1 |
# /etc/init.d/sshd restart |
Устанавливаем virt-manager на хост-сервере:
1 |
# yum install virt-manager |
Еще один компонент
1 |
# yum install xorg-x11-xauth |
Чтобы окна отображались без крякозябр
1 |
# yum install liberation-sans-fonts |
После этого надо перезайти по SSH к удаленному серверу. Xming должен быть запущен.
Запускаем графическую утилиту управления виртуальными машинами
1 |
# virt-manager |
Получаем ошибку типа
1 2 3 4 5 |
process 18935: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory See the manual page for dbus-uuidgen to correct this issue. D-Bus not built with -rdynamic so unable to print a backtrace Aborted |
Решение
1 |
# dbus-uuidgen --ensure |
После чего команда отрабатывает корректно и запускается окно virt-manager
Источники:
http://habrahabr.ru/post/168791/
http://sysadmin.te.ua/linux/sistemy-virtualizacii/ustanovka-i-nastrojka-kvm-virtualizacii.html
http://asterisk-system.ru/default/ustanovka-i-nastrojka-kvm-na-centos6.html
http://www.howtoforge.com/virtualization-with-kvm-on-a-centos-6.4-server-p5
http://www.alsigned.ru/?p=2027
Полезный man по командам virsh
http://www.fullautomatic.ru/index.php/debian-ubuntu-rhel-centos/116-29
http://mtaalamu.ru/blog/admining/1923.html
http://habrahabr.ru/post/120432/
http://habrahabr.ru/post/167099/