Wednesday, 21 April 2010

Установка виртуализации KVM на CentOS 5.4+

Действовать мы будем по официальным мануалам от Red Hat: http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/index.html и статье "Виртуализация — это просто" LXF 12/125.

Офсайт проекта KVM: http://www.linux-kvm.org/page/Main_Page

Проверяем, можем ли мы на данный сервер поставить KVM

Во-первых, у нас должен быть CentOS / RHEL версий старше 5.4:
cat /etc/redhat-release
CentOS release 5.4 (Final)


Во-вторых, проверяем поддержку процессором аппаратной виртуализации:
egrep 'vmx|svm' --color /proc/cpuinfo


В ответ на это для каждого ядра:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

Установка требуемого ПО

Ставим сам kvm, модуль ядра:
yum install kvm


Ставим libvirt и его обвязку для Python:

yum install -y libvirt libvirt-python


Ставим утилиту для удобной установки вирт машин:

yum install -y python-virtinst


Запускаем libvirtd:
/etc/init.d/libvirtd start


Убеждаемся, что libcirtd добавился в автозапуск:
chkconfig --list | grep virt
libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off


Установка VPS, создание образа

Для этого поставим CentOS 5.4 в вирт машину, для этого заюзаем утилиту virt-install (вот для того, чтобы понять, как избавиться от "Connected to domain myvps Escape character is ^]" мне пришлось изрядно прогуглить):

virt-install --connect qemu:///system --name mykvmvps --ram 1024 --file /var/lib/libvirt/images/mykvmvps.img --file-size 10 --location http://mirror.yandex.ru/centos/5.4/os/x86_64/ --network network:default --hvm --accelerate -x console=ttyS0


После этого запустится инсталлятор CentOS, где на свое усмотрение ставите машину с требуемыми настройками. В результате же установки конфиг виртуальной машины создастся в папке /etc/libvirt/qemu, а диск в папке /var/lib/libvirt/images.

Управление виртуальными машинами

Для управления VPS на базуе KVM есть две основных утилиты от RedHat: virt-manager (графическое приложение) и virsh. Обе они работают через libvirt (абстрактный относительно типа системы виртуализации API для управления). Разумеется, мой выбор — virsh.

7 comments:

  1. А какая у вас скорость записи на диск в гостевой системе? У меня на Centos 5.4 в виртуальных машинах скорость записи не превышает 15 Мб/сек.

    ReplyDelete
  2. Не тестил, не знаю.

    ReplyDelete
  3. Connected to domain myvps Escape character is ^]

    Можно ли поподробнее рассказать в чем суть этой загвоздки и как ее лечить?

    ReplyDelete
  4. Там стандартно другой последовательный порт использовался, ttyS3 вроде. А правильно: -x console=ttyS0

    ReplyDelete
  5. Спасибо за ответ, с этим я немного разобрался уже.
    У меня осталась самая главная задача, которую не могу уже решить пару дней. Не могу установить Freebsd под KVM.

    Пытаюсь вот таким образом:
    virt-install \
    -n Freebsd \
    -r 512 \
    --vcpus=1 \
    --os-variant=freebsd7 \
    --accelerate \
    -w bridge:br0 \
    --hvm \
    -c /VZ/isos/FreeBSD/releases/i386/7.3/FreeBSD-7.3-RELEASE-i386-disc1.iso \
    --disk path=/VZ/freebsd.img,size=6 \
    -x console=stdio \
    -d
    Уже и консоли менял (ttyS0,stdio) ничего не помогает. В режиме дебага доходит до Escape character is ^]
    и все. Т.е. дальше не идет загрузка bootloader, как можно это побороть? Остальные оси смог запустить такие как Ubuntu, Centos, Fedora.

    ReplyDelete
  6. Virt-Manager тоже очень неплох. Особенно для хомячков. Как например через virtsh запустить просмотр экрана удаленной машины?

    ReplyDelete
  7. Полагаю, что никак :) Хотя последовательная консоль, просматривается без проблем.

    ReplyDelete

Note: only a member of this blog may post a comment.