ラベル Open vSwitch の投稿を表示しています。 すべての投稿を表示
ラベル Open vSwitch の投稿を表示しています。 すべての投稿を表示

2011年8月2日火曜日

Open vSwitchを使ってOpenFlowコントローラに接続

Open vSwitchからOpenFlowコントローラに接続するには、まず、接続したい仮想スイッチを把握する。
# ovs-vsctl list-br
このコマンドで、今動作している仮想スイッチ(BRIDGE)の一覧が表示される。
各仮想スイッチに繋がっている仮想マシンや物理ポートを知りたい場合には以下のコマンドを実行する。
# ovs-vsctl list-ports BRIDGE

次に、OpenFlowコントローラに接続するために、接続したい仮想スイッチ(BRDGE)を引数に以下のコマンドを実行する。
# ovs-vsctl set-controller BRIDGE tcp:IPADDRESS
ちなみに、切断したい場合は
# ovs-vsctl del-controller BRIDGE
意外にすぐに情報が見つからなかったので、メモ。

接続できた場合でも、Open vSwitch側では特に何も表示されないので、接続できたか心配になる。
/var/log/openvswitch/ovs-vswitchd.logで、成功か失敗かを確認できる。
また、OpenFlowコントローラに接続してしまうと、その仮想マシン経由の通信は一度全て遮断される。これは、仮想スイッチのパケット転送制御の権限が全てOpenFlowコントローラに移譲されるため、OpenFlowコントローラから指定されなければすべてのパケットが破棄されてしまうからである。

(8月9日追記)
ちなみに、OpenFlowコントローラとの切断がきれると、普通のOpen vSwitchとして動作する。

2011年2月8日火曜日

Xen Cloud Platform 1.0 betaへOpen vSwitch 1.1.0pre2をインストール

Xen Cloud Platform 1.0 betaが昨年11月に公開された。
http://www.xen.org/files/XenCloud/Software/xcp-1.0-beta/
MANIFESTをみると、Open vSwitch 1.0.2がインストールされている模様なので早速インストール。インストール自体はこれまでのバージョン同様得の問題なし。
ただし、DDKが提供されていないためOpen vSwitch 1.1.0pre2をインストールすることはできない。XCP1.0正式版を待たないといけないのだろうか。

2011年2月7日月曜日

Xen Cloud Platformで帯域制御

Open vSwitchを用いて制御する場合、sch_ingressモジュールが必要となる。
デフォルトのXCPではsch_ingressがカーネルで有効化されていないため、カーネルを再構築してsch_ingressを有効化する。XCPでは、DDK上でカーネルのRPMを作成し、dom0にインストールする。

1Mbpsに帯域制御するためのコマンドは以下のとおり。
(参考URL:http://openvswitch.org/?page_id=267

# ovs-vsctl set Interface tap1.0 ingress_policing_rate=1000
# ovs-vsctl set Interface tap1.0 ingress_policing_burst=100

これで送信レートが制限される。
設定するtapは、対応するvifから判断する。vifとXCP上のvif-idとの対応はovs-vsctl list interfaceを実行し、external_idsの項目から判断する。

帯域制御を解除する場合には、上記のコマンドを用いて0で上書きする。

2010年9月17日金曜日

次期Open vSwitchでSR-IOVサポート予定

メモ。

Citrix社がOpen vSwitchでSR-IOVをサポートへ

現在の最新(1.1.0-pre2)では対応していないようなので、1.2で対応するのだろうか?
手元にIntel 10Gbit NIC 82599ESのチップを搭載したIntel X520-SR1があるので、対応しだい試験できる状態。

2010年9月3日金曜日

Open vSwitch 1.1.0pre1をインストール

Open vSwitch 1.1.0pre1が公開されたので、早速XCP環境にインストールしてみる。
インストールの方法は以下のURLを参照した。
http://d.hatena.ne.jp/kirikatan/20100523/1274554697
http://d.hatena.ne.jp/kirikatan/20100523/1274558355
http://d.hatena.ne.jp/kirikatan/20100523/1274631538

一点注意。
XenCloudPlatform DDKにsshでログインすると書かれているが、初回起動時はrootパスワードの初期化が行われるため、Open XenManager等で仮想マシンの画面を出力させ、パスワードを設定する必要あり。
その他は特に問題なくインストール完了。

OpenFlow slicing (QoS)に対応したということなので、QoS処理をあとで実験してみたい。
# ところで、OpenFlow slicing=QoSなのか??

2010年8月6日金曜日

XCPで仮想スイッチの利用

仮想マシンを異なるネットワークに収容するために、VLAN IDを持つ仮想スイッチを作成した。当初Open vSwtich側を制御するのかと思い、いろいろ格闘したが、どうやらXCPのxeコマンドのみでいけるよう。
1.新しいネットワークを作成
[root@node ~]# xe network-create name-label=c201
e82775df-8bc7-80d8-eed6-0066f9677e75
2.物理インタフェースを確認
[root@node ~]# xe pif-list 
uuid ( RO)                  : 5c59f0b2-4b88-941a-6fc2-b0de21830e97
                device ( RO): eth0
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): 3662ad01-9cdf-a218-60b8-3177d2cce744


uuid ( RO)                  : 23fedbd2-7e1b-3364-229a-4663512fb872
                device ( RO): eth1
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): 731420a2-6242-154e-da85-84839b7ff7fd
3.作成したネットワークを物理インタフェースに結びつけ。
[root@node ~]# xe vlan-create network-uuid=e82775df-8bc7-80d8-eed6-0066f9677e75 pif-uuid=23fedbd2-7e1b-3364-229a-4663512fb872 vlan=201
23ee212c-4c88-d238-9444-1aa164d4fea3
これにより、VLAN201を持つ仮想スイッチができる。
[root@node ~]# xe network-list 
uuid ( RO)                : 1afdece4-2104-dfae-0451-83febed03f76
          name-label ( RW): Guest installer network
    name-description ( RW): Network on which guests will get assigned a private local IP address
              bridge ( RO): xapi0


uuid ( RO)                : 731420a2-6242-154e-da85-84839b7ff7fd
          name-label ( RW): Pool-wide network associated with eth1
    name-description ( RW): 
              bridge ( RO): xenbr1


uuid ( RO)                : e82775df-8bc7-80d8-eed6-0066f9677e75
          name-label ( RW): c201
    name-description ( RW): 
              bridge ( RO): xapi2


uuid ( RO)                : 3662ad01-9cdf-a218-60b8-3177d2cce744
          name-label ( RW): Pool-wide network associated with eth0
    name-description ( RW): 
              bridge ( RO): xenbr0


[root@node ~]# xe pif-list 
uuid ( RO)                  : 5c59f0b2-4b88-941a-6fc2-b0de21830e97
                device ( RO): eth0
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): 3662ad01-9cdf-a218-60b8-3177d2cce744


uuid ( RO)                  : 23ee212c-4c88-d238-9444-1aa164d4fea3
                device ( RO): eth1
    currently-attached ( RO): true
                  VLAN ( RO): 201
          network-uuid ( RO): e82775df-8bc7-80d8-eed6-0066f9677e75


uuid ( RO)                  : 23fedbd2-7e1b-3364-229a-4663512fb872
                device ( RO): eth1
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): 731420a2-6242-154e-da85-84839b7ff7fd
4.次に、作成したネットワークを仮想マシンに搭載する。
[root@node ~]# xe network-list bridge=xapi2 --minimal
e82775df-8bc7-80d8-eed6-0066f9677e75
[root@node ~]# xe vm-list name-label=cloudcom01.1 --minimal
f76c5581-07d6-8df0-9a9d-8a11099f3484
[root@node ~]# xe vif-create network-uuid=e82775df-8bc7-80d8-eed6-0066f9677e75 vm-uuid=f76c5581-07d6-8df0-9a9d-8a11099f3484 device=1
b886b6d6-5838-6ac2-3f54-141d815af396
この時点では、Open vSwitch側は特に変化なし。
[root@node ~]# ovs-vsctl list-br
xenbr0
xenbr1
5.仮想マシンを起動する。
そうすると、Open vSwitch側に作成したネットワーク(xapi2)が出現。
[root@node ~]# ovs-vsctl list-br
xapi2
xenbr0
xenbr1
仮想マシンを起動する前にOpen vSwitch側から確認する方法があるかは不明。

(2010/8/9追記)
仮想マシンに追加されるのは仮想インタフェース(vif)であり、仮想インタフェースは仮想ネットワーク(network)に接続されている。そのため、仮想ネットワークが接続する物理インタフェース、およびVLANを仮想インタフェース作成後に修正することも可能。ただし、うまく疎通できないようなので、ネットワーク側修正後に仮想マシンを再起動する必要がある。