Open vSwitch

Материал из Xgu.ru

Перейти к: навигация, поиск


Open vSwitch logo

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:

[править] Инсталляция 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

Подробнее:

[править] Дополнительная информация


[править] См. также

  • LINCX — виртуальный коммутатор с поддержкой OpenFlow, написанный на Erlang.
Xen
Xen

Виртуализация и паравиртуализация
Эмуляция | Виртуализация | Паравиртуализация | Рекурсивная виртуализация
Паравиртуальные драйверы | Виртуализация ввода/вывода

Общие вопросы по Xen
Аппаратные требования Xen | Поддержка Xen операционными системами | Поддерживаемые аппаратные архитектуры |
Примеры использования Xen | Сравнение виртуальных машин |
Хостинг на Xen
Альтернативы Xen

свободные: KVM | LXC | OpenVZ | VServer | QEMU | VirtualBox
проприетарные: Hyper-V | VMware ESX Server

Технические вопросы
Инсталляция Xen | Конфигурационный файл домена
ОС в Xen: Linux small icon.png Linux | Solaris small icon.png OpenSolaris | Freebsd small icon.png FreeBSD | Openbsd small icon.png OpenBSD | Netbsd small icon.png NetBSD | Windows xp small icon.png Windows XP | Windows vista small icon.png Windows Vista
Устройства: Блочные | USB | SCSI | Сеть | PV-драйверы для Linux | PV-драйверы для Windows | Консоль

Распределение ресурсов между доменами | Перенос системы внутрь Xen | HVM -> PV

Управление и кластеризация | Enomalism | Xen+DRBD | Ganeti | Convirt 2.0 | SkyCover Infrastructure
Источник — «http://xgu.ru/wiki/Open_vSwitch»