OpenVSwitch :: OVS и виртуализация

Итак, OVS сконфигурирован и практически незаметен в системе, до того момента, пока мы не решил использовать его с qemu/libvirt

Для того, чтобы заставить виртуальную машину работать с ovs необходимо проделать две простые вещи:

— создать интерфейс и поднять его: «ifconfig <name> 0.0.0.0 promisc up»

— создать порт с именем интерфейса, созданного в предыдущем пункте «ovs-vsctl add-port <bridgename> <portname>

Далее можно смело запускать qemu, используя -net tap,name=<name> ну и далее по тексту.

Конечно же можно (и даже нужно) автоматизировать процесс, написав скрипты и указав из в секции script= и downscript=

########## /etc/qemu/ovs-ifup  ###############
#!/bin/sh

switch='obr0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1
########## /etc/qemu/ovs-ifdown ###############
#!/bin/sh
switch='obr0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1

Libvirt:

С libvirt все, как всегда, несколько уродливее, так как virt-manager и virt-install в Fedora 19 еще ничего не знают о существовании OVS, приходтися их немного обманывать:

устанавливаем машину с «обычной сетью»: virt-install …… —network network=default

и затем правим XML-конфиг:

virsh edit <vmname>

заменяя

 ...
 <interface type='network'>
  <mac address='52:54:00:8a:d2:c4'/>
  <source network='default'/>
  <model type='rtl8139'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
 </interface>
 ...

на:

  <interface type='bridge'>
      <mac address='52:54:00:8a:d2:c4'/>
      <source bridge='obr0'/>
      <virtualport type='openvswitch'/>
      <model type='rtl8139'/>      
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>    
  </interface>

Все, можно запускать машину и радоваться работающей сетью!

 

Комментарии запрещены.