SlideShare une entreprise Scribd logo
1  sur  18
Tremaでの Open vSwitch


               Trema開発チーム
              鈴木一哉 (@countone)
                   2012/4/7




Page 1
Agenda

▐ Tremaとは
▐ ネットワークエミュレーション
         機能概要
         使用例
         仮想スイッチ
         仮想ホスト
         仮想リンク
▐ まとめ
▐ おまけ : kernel-mode 版openvswitchとtremaを接続してみる




 Page 2
Trema 概要

▐ Trema : C/Ruby でコントローラ開発をするためのフレームワーク
      開発が容易 : 洗練された API, テストのためのネットワークエミュ
       レータ
      多くのサンプルアプリ
      GPLv2




 Page 3
ネットワークエミュレーション機能概要

▐ 試験用の OpenFlow ネットワークを、開発マシン内に構築する機
  能
     仮想スイッチ : openvswitch (userspace) を使用
     仮想ホスト : phost (trema original) を使用
     仮想リンク : Linux の Virtual ethernet device を使用




Page 4
使用例

▐ ./trema run ./mycontroller.rb –c ./network.conf


             network.conf
   vswitch("sw1") {                             routing switch
     datapath_id "0x1"
   }                                                trema

   vswitch("sw2") {
     datapath_id "0x2"
   }                                     host1 sw1      sw2      host2
   vhost ("host1")
   vhost ("host2")

   link "host1", "sw1"
   link "sw1", "sw2"                       開発マシン内で動作
   link "sw2", "host2"

 Page 5
仮想リンクの設定

▐ 仮想リンク
     Linux の Virtual ethernet device を使用

▐ trema 上から仮想リンクを設定するコード
     https://raw.github.com/trema/trema/develop/ruby/trema/link.rb

     sudo ip link add name trema0-0 type veth peer name trema0-1




Page 6
仮想スイッチの起動

▐ 仮想スイッチ
     Userspace で動作する test-openflowd (ver 1.2.2) を使用


▐ trema から openvswitch を起動するコード
     https://raw.github.com/trema/trema/develop/ruby/trema/open-
      vswitch.rb

     sudo ./test-openflowd netdev@ofs0 tcp:127.0.0.1:6633 
      --ports=trema0-0,trema1-0 --datapath-id=0000000000000001 
      --unixctl=/tmp/ofs0.ctl &




Page 7
仮想ホストの起動

▐ 仮想ホスト
     Userspace で動作する仮想ホストデーモン phost (Trema 同梱) を使用

▐ Trema から phost を起動するコード
     https://raw.github.com/trema/trema/develop/ruby/trema/phost.rb

     sudo ./phost –i trema0-0 –D &




Page 8
まとめ

▐ Tremaのネットワークエミュレーション機能
     開発したコントローラを「すぐ動かしてみる」ための機能です
     仮想スイッチとしてuserspaceで動作するopenvswitchを使用していま
      す。

▐ ネットワークエミュレーション機能のTrema内部での実現方法に
  ついて紹介しました。




Page 9
おまけ : kernel-mode 版openvswitchとtremaを接続してみる


                          routing switch
                               trema

                                        Secure Channel


                     link0-1           link1-0
           ofs0                                    ofs1
           link0-0                               link1-1



                     link2-1           link2-0
                               ofs2

 Page 10
openvswitchのインストール

▐ ./configure --with-linux=/lib/modules/`uname -r`/build
▐ make
▐ make install


▐ insmod datapath/linux/openvswitch.ko

▐ mkdir -p /usr/local/etc/openvswitch
▐ ovsdb-tool create /usr/local/etc/openvswitch/conf.db
  vswitchd/vswitch.ovsschema




 Page 11
仮想リンクの設定

▐ ip link add name link0-1 type veth peer name link1-0
▐ ip link add name link1-1 type veth peer name link2-0
▐ ip link add name link2-1 type veth peer name link0-0

▐   ifconfig link0-0 up
▐   ifconfig link0-1 up
▐   ifconfig link1-0 up
▐   ifconfig link1-1 up
▐   ifconfig link2-0 up
▐   ifconfig link2-1 up




 Page 12
openvswitchの起動

▐ ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock 
  --remote=db:Open_vSwitch,manager_options 
  --pidfile --detach
▐ ovs-vsctl --no-wait init
▐ ovs-vswitchd --pidfile --detach




 Page 13
openvswitchの設定

▐   ovs-vsctl add-br ofs0
▐   ovs-vsctl add-port ofs0 link0-0
▐   ovs-vsctl add-port ofs0 link0-1
▐   ovs-vsctl set-controller ofs0 tcp:127.0.0.1:6633
▐   ovs-vsctl set bridge ofs0 other-config:datapath-
    id=0000000000000010



▐ ofs1, ofs2 についても同様に設定




 Page 14
openvswitchの状態確認

▐ ovs-vsctl list-br
   ofs0
▐ ovs-vsctl list-ports ofs0
   link0-0
link0-1
▐ ovs-vsctl get-controller ofs0
   tcp:127.0.0.1:6633
▐ ovs-vsctl get bridge ofs0 other-config
   {datapath-id="0000000000000010"}




 Page 15
trema routing switchの起動

▐   gitclone https://github.com/trema/trema.git
▐   ./trema/build.rb
▐   gitclone https://github.com/trema/apps.git
▐   (cd apps/topology/; make)
▐   (cd apps/routing_switch/; make)
▐   ./trema/trema run -c ./apps/routing_switch/routing_switch_null.conf
    -d




 Page 16
Description の取得

▐ (cd apps/show_description/; make)
▐ TREMA_HOME=./trema ./apps/show_description/show_description

Manufacturer description: Nicira Networks, Inc.
Hardware description: Open vSwitch
Software description: 1.4.0
Serial number: None
Human readable description of datapath: None
Datapath ID: 0x10
Port no: 2(0x2)(Port up)
  Hardware address: e6:26:c9:98:52:eb
  Port name: link0-0
...




 Page 17
Topology の検出

▐ TREMA_HOME=./trema ./apps/topology/show_topology
vswitch {
datapath_id "0x11"
}

vswitch {
datapath_id "0x10"
}

vswitch {
datapath_id "0x12"
}

link "0x11", "0x10"
link "0x12", "0x11"
link "0x12", "0x10"

 Page 18

Contenu connexe

Tendances

仮想化環境での利用者公平性
仮想化環境での利用者公平性仮想化環境での利用者公平性
仮想化環境での利用者公平性Takuya ASADA
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08tokuhy
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークTakuya ASADA
 
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)株式会社サードウェア
 
OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能Takashi Naito
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話Masaru Oki
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装Takuya ASADA
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダTakuya ASADA
 
Lagopus, raw socket build
Lagopus, raw socket buildLagopus, raw socket build
Lagopus, raw socket buildMasaru Oki
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondTaisuke Yamada
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)Kazuyuki Sato
 

Tendances (20)

Free bsd jail入門
Free bsd jail入門Free bsd jail入門
Free bsd jail入門
 
仮想化環境での利用者公平性
仮想化環境での利用者公平性仮想化環境での利用者公平性
仮想化環境での利用者公平性
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
 
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
 
OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
Lagopus 0.2
Lagopus 0.2Lagopus 0.2
Lagopus 0.2
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
Lagopus, raw socket build
Lagopus, raw socket buildLagopus, raw socket build
Lagopus, raw socket build
 
DPDKを拡張してみた話し
DPDKを拡張してみた話しDPDKを拡張してみた話し
DPDKを拡張してみた話し
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 
systemdを始めよう
systemdを始めようsystemdを始めよう
systemdを始めよう
 

Similaire à Trema での Open vSwitch

VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境yut148atgmaildotcom
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
VlanManagerを使ってみた
VlanManagerを使ってみたVlanManagerを使ってみた
VlanManagerを使ってみたHiroki Ishikawa
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例SAKURA Internet Inc.
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Studyirix_jp
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) VirtualTech Japan Inc.
 
Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514samemoon
 
Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux Yuki Kitajima
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Daisuke Nakajima
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」Shinichi Hirauchi
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらTakuma Nakajima
 
「Docker +VLAN 環境」アプリケーション実行環境の構築
「Docker +VLAN 環境」アプリケーション実行環境の構築「Docker +VLAN 環境」アプリケーション実行環境の構築
「Docker +VLAN 環境」アプリケーション実行環境の構築Fuva Brain
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
Pacemaker+DRBDでHAクラスタを作る
Pacemaker+DRBDでHAクラスタを作るPacemaker+DRBDでHAクラスタを作る
Pacemaker+DRBDでHAクラスタを作るTsubasa Nomura
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 

Similaire à Trema での Open vSwitch (20)

VPP事始め
VPP事始めVPP事始め
VPP事始め
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
VlanManagerを使ってみた
VlanManagerを使ってみたVlanManagerを使ってみた
VlanManagerを使ってみた
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Study
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
 
Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514
 
Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
「Docker +VLAN 環境」アプリケーション実行環境の構築
「Docker +VLAN 環境」アプリケーション実行環境の構築「Docker +VLAN 環境」アプリケーション実行環境の構築
「Docker +VLAN 環境」アプリケーション実行環境の構築
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Pacemaker+DRBDでHAクラスタを作る
Pacemaker+DRBDでHAクラスタを作るPacemaker+DRBDでHAクラスタを作る
Pacemaker+DRBDでHAクラスタを作る
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Dernier (9)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Trema での Open vSwitch

  • 1. Tremaでの Open vSwitch Trema開発チーム 鈴木一哉 (@countone) 2012/4/7 Page 1
  • 2. Agenda ▐ Tremaとは ▐ ネットワークエミュレーション  機能概要  使用例  仮想スイッチ  仮想ホスト  仮想リンク ▐ まとめ ▐ おまけ : kernel-mode 版openvswitchとtremaを接続してみる Page 2
  • 3. Trema 概要 ▐ Trema : C/Ruby でコントローラ開発をするためのフレームワーク  開発が容易 : 洗練された API, テストのためのネットワークエミュ レータ  多くのサンプルアプリ  GPLv2 Page 3
  • 4. ネットワークエミュレーション機能概要 ▐ 試験用の OpenFlow ネットワークを、開発マシン内に構築する機 能  仮想スイッチ : openvswitch (userspace) を使用  仮想ホスト : phost (trema original) を使用  仮想リンク : Linux の Virtual ethernet device を使用 Page 4
  • 5. 使用例 ▐ ./trema run ./mycontroller.rb –c ./network.conf network.conf vswitch("sw1") { routing switch datapath_id "0x1" } trema vswitch("sw2") { datapath_id "0x2" } host1 sw1 sw2 host2 vhost ("host1") vhost ("host2") link "host1", "sw1" link "sw1", "sw2" 開発マシン内で動作 link "sw2", "host2" Page 5
  • 6. 仮想リンクの設定 ▐ 仮想リンク  Linux の Virtual ethernet device を使用 ▐ trema 上から仮想リンクを設定するコード  https://raw.github.com/trema/trema/develop/ruby/trema/link.rb  sudo ip link add name trema0-0 type veth peer name trema0-1 Page 6
  • 7. 仮想スイッチの起動 ▐ 仮想スイッチ  Userspace で動作する test-openflowd (ver 1.2.2) を使用 ▐ trema から openvswitch を起動するコード  https://raw.github.com/trema/trema/develop/ruby/trema/open- vswitch.rb  sudo ./test-openflowd netdev@ofs0 tcp:127.0.0.1:6633 --ports=trema0-0,trema1-0 --datapath-id=0000000000000001 --unixctl=/tmp/ofs0.ctl & Page 7
  • 8. 仮想ホストの起動 ▐ 仮想ホスト  Userspace で動作する仮想ホストデーモン phost (Trema 同梱) を使用 ▐ Trema から phost を起動するコード  https://raw.github.com/trema/trema/develop/ruby/trema/phost.rb  sudo ./phost –i trema0-0 –D & Page 8
  • 9. まとめ ▐ Tremaのネットワークエミュレーション機能  開発したコントローラを「すぐ動かしてみる」ための機能です  仮想スイッチとしてuserspaceで動作するopenvswitchを使用していま す。 ▐ ネットワークエミュレーション機能のTrema内部での実現方法に ついて紹介しました。 Page 9
  • 10. おまけ : kernel-mode 版openvswitchとtremaを接続してみる routing switch trema Secure Channel link0-1 link1-0 ofs0 ofs1 link0-0 link1-1 link2-1 link2-0 ofs2 Page 10
  • 11. openvswitchのインストール ▐ ./configure --with-linux=/lib/modules/`uname -r`/build ▐ make ▐ make install ▐ insmod datapath/linux/openvswitch.ko ▐ mkdir -p /usr/local/etc/openvswitch ▐ ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema Page 11
  • 12. 仮想リンクの設定 ▐ ip link add name link0-1 type veth peer name link1-0 ▐ ip link add name link1-1 type veth peer name link2-0 ▐ ip link add name link2-1 type veth peer name link0-0 ▐ ifconfig link0-0 up ▐ ifconfig link0-1 up ▐ ifconfig link1-0 up ▐ ifconfig link1-1 up ▐ ifconfig link2-0 up ▐ ifconfig link2-1 up Page 12
  • 13. openvswitchの起動 ▐ ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,manager_options --pidfile --detach ▐ ovs-vsctl --no-wait init ▐ ovs-vswitchd --pidfile --detach Page 13
  • 14. openvswitchの設定 ▐ ovs-vsctl add-br ofs0 ▐ ovs-vsctl add-port ofs0 link0-0 ▐ ovs-vsctl add-port ofs0 link0-1 ▐ ovs-vsctl set-controller ofs0 tcp:127.0.0.1:6633 ▐ ovs-vsctl set bridge ofs0 other-config:datapath- id=0000000000000010 ▐ ofs1, ofs2 についても同様に設定 Page 14
  • 15. openvswitchの状態確認 ▐ ovs-vsctl list-br ofs0 ▐ ovs-vsctl list-ports ofs0 link0-0 link0-1 ▐ ovs-vsctl get-controller ofs0 tcp:127.0.0.1:6633 ▐ ovs-vsctl get bridge ofs0 other-config {datapath-id="0000000000000010"} Page 15
  • 16. trema routing switchの起動 ▐ gitclone https://github.com/trema/trema.git ▐ ./trema/build.rb ▐ gitclone https://github.com/trema/apps.git ▐ (cd apps/topology/; make) ▐ (cd apps/routing_switch/; make) ▐ ./trema/trema run -c ./apps/routing_switch/routing_switch_null.conf -d Page 16
  • 17. Description の取得 ▐ (cd apps/show_description/; make) ▐ TREMA_HOME=./trema ./apps/show_description/show_description Manufacturer description: Nicira Networks, Inc. Hardware description: Open vSwitch Software description: 1.4.0 Serial number: None Human readable description of datapath: None Datapath ID: 0x10 Port no: 2(0x2)(Port up) Hardware address: e6:26:c9:98:52:eb Port name: link0-0 ... Page 17
  • 18. Topology の検出 ▐ TREMA_HOME=./trema ./apps/topology/show_topology vswitch { datapath_id "0x11" } vswitch { datapath_id "0x10" } vswitch { datapath_id "0x12" } link "0x11", "0x10" link "0x12", "0x11" link "0x12", "0x10" Page 18