<
  • Главная
Статьи

Установка і настройка KVM віртуалізації під Centos 6

Наводжу замітку в яку піде мова про налаштування та встановлення популярної системи віртуалізації   KVM   (Kernel-based Virtual Machine) Наводжу замітку в яку піде мова про налаштування та встановлення популярної системи віртуалізації KVM (Kernel-based Virtual Machine). KVM - це тип апаратної віртуалізації , Тобто незалежність гостьовий ОС від хостовой. В попередній статті йшлося про контейнерної системі віртуалізації OpenVZ, яка відмінно підходить для віртуалізації ОС Linux, але якщо потрібен віртуальний сервер на базі Windows - кращим варіантом, на даний момент є KVM віртуалізація.
Не всі процесори підтримують даний тип віртуалізації! Для перевірки потрібно виконати команду.

[Root @ centos ~] 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 віртуалізації. Якщо все ок - встановлюємо і стартуємо демон.

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

Якщо демон не піднявся, потрібно перевірити завантажилися модулі чи ні.

[Root @ centos ~] lsmod | grep kvm kvm_intel 45674 0 kvm 291811 1 kvm_intel

Тепер потрібно налаштувати мережевий міст, попередньо видаливши дефолтний. Для цього потрібно трохи модифікувати стандартний інтерфейс і додати бридж.

[Root @ centos ~] vim / etc / sysconfig / network-scripts / ifcfg-eth0 DEVICE = "eth0" BOOTPROTO = "static" HWADDR = "1C: 6F: 65: 53: 77: D5" BRIDGE = bridge0 ONBOOT = " yes "[root @ centos ~] vim / etc / sysconfig / network-scripts / ifcfg-bridge0 DEVICE =" bridge0 "TYPE = Bridge BOOTPROTO =" static "IPADDR = 192.168.1.10 NETMASK = 255.255.255.0 GATEWAY = 192.168.1.1 ONBOOT = "yes" [root @ centos ~] service network restart Shutting down loopback interface: [OK] Bringing up loopback interface: [OK] Bringing up interface eth0: [OK] Bringing up interface bridge0: [OK]

Тепер видалимо дефолтний virbr0

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

Для перевірки стану моста можна використовувати утиліту brctl. Це стандартна утиліта для роботи з ethernet мостами.

[Root @ centos ~] brctl show bridge name bridge id STP enabled interfaces bridge0 8000.1c6f655377d5 no eth0

Тепер мережа налаштована. Можна створювати гостьову ОС. Для цього використовують утиліта virt-install. У неї дуже багато опцій і ключів, раджу подивитися і поекспериментувати з ними. Я так і зробив - наводжу приклад своїх ключиків для створення виртуалки Windows 2008 R2.

[Root @ centos ~] virt-install --connect qemu: /// system \> -n win2k8-webserver \> -r 1536 \> --arch = x86_64 \> --vcpus = 2 \> -c / vz /template/kvm/win2k8r2.iso \> --os-type windows \> --os-variant win2k8 \> --disk path = / dev / main / web-server \> --network bridge: bridge0 \> - -graphics vnc, password = alex1989, listen = 0.0.0.0, port = 5901 \> -v \> --noautoconsole \> --autostart \> -d \> --disk path = / vz / template / kvm / virtio -win-0.1-49.iso, device = cdrom, perms = ro \> --boot cdrom, hd

тут,
«/Vz/template/kvm/win2k8r2.iso» - це оригінальні образ ОС,
«/ Dev / main / web-server» - шлях до створеного LVM розділу
«/Vz/template/kvm/virtio-win-0.1-49.iso» - образ з драйверами

Створення LVM розділу:

[Root @ centos ~] lvcreate -L 100G -n web-server main # web-server - ім'я розділу # main - ім'я volume group

Образ з драйверами можна скачати тут.

[Root @ centos ~] wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-49.iso

Після попередньої команди буде запущена установка Windows. Установка проводитися в інтерактивному режимі, з цього потрібно підключитися до графічної консолі. Підключатися можна по ІР-адресою на потрібний порт. Порт можна дізнатися такою командою

[Root @ centos ~] virsh vncdisplay win2k8-webserver: 0

Це означає, що для підключення до нашої віртуальної ОС, потрібно використовувати порт 5900. Для підключення до інтерактивної установки можна використовувати утиліту vncviewer. У нашому випадки:

[Root @ remote ~] vncviewer 192.168.1.10:5900

Тепер, щоб встановити базові драйвера для Windows доходимо до вибору Жорсткого диска (drive selection screen), далі натискаємо на "load drivers" (заrрузіть драйвера) і натискаємо "Browse". Далі переходимо в «E: \ viostor \ wlh \ {amd64 | x86}» і вибираємо потрібні драйвера. По завершенню установки у нас буде повноцінний віртуальний windows сервер, до якого можна підключатися як по RDP так і по VNC.

Розташування основних конфігов.

/etc/libvirt/qemu.conf # основний конфиг qemu. Тут задаємо параметри vnc сервера. /etc/libvirt/qemu/win2k8-webserver.xml # папка для зберігання конфігов віртуальних машин.

Далі наш конфиг-файл win2k8-webserver.xml можна використовувати для розгортання Windows VDS-серверів за шаблоном.

[Root @ centos ~] lvcreate -L 50G -n win_templ main [root @ centos ~] dd if = / var / lib / vz / template / kvm_templates / win2008StdSP1R2x64-template.img of = / dev / main / win_templ [root @ centos ~] cp /etc/libvirt/qemu/win2k8-webserver.xml /etc/libvirt/qemu/win_templ.xml [root @ centos ~] vim /etc/libvirt/qemu/win_templ.xml # поміняти логін, пароль, МАС -адреса [root @ centos ~] virsh -c qemu: /// system define /etc/libvirt/qemu/win_templ.xml [root @ centos ~] virsh -c qemu: /// system start win_templ [root @ centos ~ ] virsh -c qemu: /// system autostart win_templ [root @ centos ~] virsh vncdisplay win_templ: 5

Якщо у віртуальній машині не піднялася мережу, потрібно подивитися настройки моста - чи є віртуальний інтерфейс створеної гостьовий машини.

[Root @ centos ~] cat /etc/libvirt/qemu/win_templ.xml | grep mac [root @ centos ~] ip a | grep -B1 '28 \: 93 'vnet2 Link encap: Ethernet HWaddr 00: 0c: 29: 28: 93: a5 [root @ centos ~] brctl show # побачимо в якому з мостів наш vnet2, якщо немає - додаємо [root @ centos ~] brctl addif breth0 vnet2

Якщо на сервері налаштований iptables - потрібно додати правила для підключення до віртуалкою.

IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 5900: 5903,6001: 6003 -j ACCEPT

Часто вживані команди.

virsh list --all # лістинг всіх віртуальних машин virsh start win_templ # запуск виртуалки virsh shutdown win_templ # вимикання гладке virsh destroy win_templ # вимкнути з харчування (якщо не відповідає) virsh undefine win_templ # видалити (коніфг теж видаляється) virsh autostart win_templ # додати в автозагрузку virsh autostart --disable win_templ # видалити з автозавантаження virsh qemu-monitor-command win_templ help --hmp # запустити команду в qemu моніторі virsh define /etc/libvirt/qemu/win_templ.xml # оновлення інформації про машину virsh vncdisplay win_templ # порт virsh dumpxml win_templ | grep vnc # порт



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью