Open vSwitch
Материал из Xgu.ru
Open vSwitch — многоуровневый программный коммутатор с открытым кодом.
Поддерживает:
Может работать распределённо на нескольких серверах (по аналогии с Cisco Nexus 1000V и VMware vNetwork distributed vswitch).
Интегрируется с Xen, KVM. VirtualBox. Является коммутатором по умолчанию для Xen Open Cloud Platform.
Содержание |
[править] Базовая настройка
Объединяем несколько машин в единый широковещательный домен виртуальным коммутатором Open vSwitch.
Используя GRE-туннели:
На первой машине:
sudo ovs-vsctl add-br br0 sudo ovs-vsctl add-port br0 gre0 -- set interface gre0 type=gre options:remote_ip=10.0.0.185 sudo ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre options:remote_ip=10.0.0.168
На второй (10.0.0.185)
sudo ovs-vsctl add-port br0 vx0 -- set interface vx0 type=gre options:remote_ip=10.0.0.229
И на третьей (10.0.0.168)
sudo ovs-vsctl add-port br0 vx0 -- set interface vx0 type=gre options:remote_ip=10.0.0.229
После этого можно установить адреса непосредственно на интерфейс соответствущий виртуальному коммутатору на каждом хосте:
host1$ sudo ifconfig br0 192.168.0.1 host2$ sudo ifconfig br0 192.168.0.2 host3$ sudo ifconfig br0 192.168.0.3
Машины полноценно видят друг друга в пределах одного коммутатора.
Следует отметить, что использование виртуального коммутатора сопряжено с определённой потерей производительности:
$ sudo iperf -c 192.168.0.1 ------------------------------------------------------------ Client connecting to 192.168.0.1, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 27.1.0.3 port 60192 connected with 192.168.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 3.65 GBytes 3.14 Gbits/sec
В то время как при обращении напрямую:
$ sudo iperf -c 10.0.0.229 ------------------------------------------------------------ Client connecting to 10.0.0.229, TCP port 5001 TCP window size: 325 KByte (default) ------------------------------------------------------------ [ 3] local 10.0.0.168 port 57090 connected with 10.0.0.229 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 6.01 GBytes 5.16 Gbits/sec
Переход на использование vxlan вместо GRE улучшает ситуацию, но незначительно.
Ещё о построение многохостовых сетей на Open vSwitch:
- Multi-Host Docker Network (англ.)
- Configuring VXLAN and GRE Tunnels on OpenvSwitch (англ.) — игрушки с VXLAN и GRE в попытках выжать немного производительности
[править] Инсталляция Open vSwitch
Собираем и инсталлируем Open vSwitch в виде RPM-файла:
yum -y install wget openssl-devel gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool adduser ovs su - ovs
mkdir -p ~/rpmbuild/SOURCES wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz cp openvswitch-2.3.1.tar.gz ~/rpmbuild/SOURCES/ tar xfz openvswitch-2.3.1.tar.gz sed 's/openvswitch-kmod, //g' openvswitch-2.3.1/rhel/openvswitch.spec > openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec rpmbuild -bb --nocheck ~/openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec exit
Инсталляция:
yum localinstall /home/ovs/rpmbuild/RPMS/x86_64/openvswitch-2.3.1-1.x86_64.rpm
Доступ к файлам Open vSwitch в SELinux-системах:
yum install policycoreutils-python mkdir /etc/openvswitch semanage fcontext -a -t openvswitch_rw_t "/etc/openvswitch(/.*)?" restorecon -Rv /etc/openvswitch
Подробнее:
[править] Дополнительная информация
- http://openvswitch.org/ (англ.)
- An Introduction to Open vSwitch (англ.)
[править] См. также
|
---|