воскресенье, 2 января 2011 г.

RFRemix 14 virt-manager qemu CentOS 5.5

Xen, конечно, штука хорошая и в ContOS 5.5 он есть, но вот в RFRemix 14 его нет. Зато в RFRemix 14 есть вещи нужные для повседневной жизни.
Встала задача поднять два виртуальных сервера. Эти сервера должны быть в одной сети с основной машиной (хостом) и адсл-модемом. Адсл-модем настроен в режиме роутера. Для создания виртуалных машин будет использоваться virt-manager, предпологаестя что он уже установлен.

План действий таков:
1.Настройка сетевого интерфейса и моста на хосте.
2.Создание виртуальных машин (в virt-manager).
3.Настройка сети виртуальных машин.
4.Настройка автозапуска виртуальных машин при старте хоста (уже без virt-manager, но он будет помогать).

1.Начнём с создания сетевого моста (бриджа) на хосте, для последующего использования его с qemu.
Сносим NetworkManager (ну, не люблю я его):
yum remove NetworkManager
Правим конфиги
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=90:E6:BA:D7:71:C7
BRIDGE=br0
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.54.2
NETMASK=255.255.255.0
GATEWAY=192.168.54.1
ONBOOT=yes
Перезапускаем сеть или перезагружаем комп. Есть тут один момент: в федоре у меня почему-то сетевые интерфейсы без нетворкманагера сами не подымаются, поэтому я дописываю в /etc/rc.d/rc.local селдующие строки:
ifup eth0
ifup br0
Главное чтобы после старта хоста был выход в инет.
Кстати, в файрволле хоста нужно указать устройство br0 как доверенное, перед этим добавив его в список.



2.Ну, блин, создание виртуальных машин в virt-manager дело простое.Гуёвая прога всёж. Главное при указинии настроек сети (шаг примерно 5) нужно чтобы было в "Дополнительных параметрах" указано "Устройство хоста eth0 (Мост 'br0')".

3.Сеть виртуальных машин.
В процессе инсталляции ОСи указывается адрес сетевого адаптера вручную из адресного пространства локальной сети, шлюз (на данном этапе - адсл-модем) и DNS (на данном моменте - провайдерские). Я так и поступил, т.к. мне нужны были статические адреса, или можно свалить всё на плечи DHCP (если он включён на адсл-модеме, например).
Тут ещё один момент всплывает у меня - при использовании virt-manager в icewm возникает проблема с подключением к гипервизору по адресу localhost, а при продключении по ssh не получается создавать новые машины. Поэтому создаём машины, предварительно загрузившись в Гном. Можно, конечно, и консольными утилитами воспользоваться, но это попахивает чуток мазохизмом.


4.Настройка автозапуска виртуальных машин при старте хоста.
Может и есть способ запускать virt-manager демоном, но я такого способа не знаю, поэтому автозапуск будет осуществляться через /etc/rc.d/rc.local
Нужно дописать туда что-то типа этого (одной строкой):
/usr/bin/qemu-kvm -S -M pc-0.13 -cpu qemu32 -enable-kvm -m 256 -smp 1,sockets=1,cores=1,threads=1 -name ns1 -uuid 68ce550d-2bab-0835-15d2-9b86a7db11fb -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/ns1.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=/var/lib/libvirt/images/ns1.img,if=none,id=drive-virtio-disk0,boot=on,format=raw -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:83:69:95,bus=pci.0,addr=0x3 -net tap,fd=44,vlan=0,name=hostnet0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc 127.0.0.1:0 -vga cirrus -device AC97,id=sound0,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
Смысл этой записи в запуске эмулятора qemu-kvm с образом вируальной машины, созданной предварительно, например в virt-manager, что значит каждый параметр можно узнать прочитав ман по qemu. Чтобы не загружать себе мозг, поступим проще. Запустим виртуальную машину из virt-manager, потом открываем консоль и выдаём команду:
ps -ax|grep qemu
Результатом будет нечто типа вышеуказанного "набора символов". Его-то и вставляем в /etc/rc.d/rc.local


Дальше уже стандартно. Заходим в виртуалку через ssh, если сеть настроена правильно, или через virt-manager, если какой косяк с сетью (тож бывает).

Комментариев нет:

Отправить комментарий