Confidential
OpenStackネットワークの多種多様
なプラグインとその対応方法
Confidential
目次
1
• 簡単にOpenStackコンポーネントのおさらい
• OpenStack Neutronとは
• Neutron Pluginについて紹介
• OpenvSwitchとMidoNetを比較
• OpenvSwitchからMidoNetへ設定変更
• Q&A
Copyright ©2013 Midokura All rights reserved
OpenStackコンポーネントおさらい
2
Nova
Neutron
Glance
Keytsonte
Swift
Cinder
- ハイパーバイザー制御, 仮想サーバの作成/削
除
- 仮想ネットワーク制御
- イメージ, スナップショットの制御
- 認証制御, テナントまたはユーザの作成/削除
- オブジェクトストレージ制御
- ブロックストレージ制御
Copyright ©2013 Midokura All rights reserved
OpenStackコンポーネントおさらい
3
Nova
Neutron
Glance
Keytsonte
Swift
Cinder
- ハイパーバイザー制御, 仮想サーバの作成/削
除
- 仮想ネットワーク制御
- イメージ, スナップショットの制御
- 認証制御, テナントまたはユーザの作成/削除
- オブジェクトストレージ制御
- ブロックストレージ制御
Copyright ©2013 Midokura All rights reserved
OpenStack Neutronとは
4
仮想ネットワーク制御を行う.
- Neutron APIからリソースの追加/読込/更新/削除を行える。
- 主リソースは4つ.
(ネットワーク、サブネット、ポート、ルータ)
- 付加機能
- Security Group
- 仮想FW, 仮想LB, 仮想L3/L2
- データはMySQLまたはsqliteに保存される.
Neutron API Server
(Network, Subnet
Router, Port)
OpenStack
Nova/Dashboard
Neutron
CLI
Neutron
DB
Neutron API
MySQL
Copyright ©2013 Midokura All rights reserved
Neutron Plugin
5
Plugin形式により様々なネットワーク機器や
ソフトウェアを選択し利用できます。
- 標準ではOpenvSwitch
OVS
Neutron API
Server
Plugin
OpenStack
Nova/Dashboard
Neutron
CLI
Neutron
DB
Neutron API
MySQL
Plugin
OpenvSwitch
Midokura
VMware
NEC
Cisco
Juniper
MidoNet
VMware NSX
NEC OpenFlow
Cisco Nexus
Juniper
EX/QFX
Copyright ©2013 Midokura All rights reserved
標準OpenvSwitchとMidokura MidoNetの違い
6
OpenvSwitch MidoNet
自社GlobaIP利用 ◎ ◎
拡張性がある? △
(基本SPoF, 冗長難易度高め)
◎
(分散システム構成)
付加機能が使える?
(SG, L3/L2, L4LB)
○
(様々なAgentを設定)
◎
(MidoNet Agnetのみで利用可)
既存環境接続,冗長構成
はとれる?
○
(VLAN Trunk)
◎
(VLAN Trunk, BGP)
新しく機器の購入が必
要?
◎
(必要無し)
◎
(必要無し)
トラフィック処理 ○
(Network nodeを必ず経由)
◎
(パケット転送最適化)
サポート ○
(Community)
◎
(US,JP,EUからサポート)
Copyright ©2013 Midokura All rights reserved
標準OpenvSwitchとMidokura MidoNetの違い
7
Network
Node
OpenvSwitch
MidoNet
Network
Agent
Network
Agent
Copyright ©2013 Midokura All rights reserved
MidoNetに変更してみましょう!
8
OVS
Neutron API
Server
OpenvSwitch
Plugin
OpenStack
Nova/Dashboard
Neutron
CLI
Neutron
DB
Neutron API
MySQL
MidoNet
API server
MN API
MidoNetOpenvSwitch
Neutron API
Server
MidoNet
Plugin
OpenStack
Nova/Dashboard
Neutron
CLI
Neutron
DB
Neutron API
MySQL
1
6
4
5
2 3
(*Neutronノード)
Copyright ©2013 Midokura All rights reserved
Neutron Server設定ファイル(OpenvSwitch)
9
・OpenvSwitchプラグインを指定設定するファイ
ル
neutorn-server
/etc/neutron/neutron.conf
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
/etc/neutron/plugin.ini
・OpenvSwitch詳細設定ファイル
・OpenvSwitch詳細設定ファイルのエイリア
ス
/etc/neutron/*.agent
・L3/L2/DHCP/MetaData/LB/Firwall機能利用設
定
mysql ・ovs_neutronデータベース
(*Neutronノード)
Copyright ©2013 Midokura All rights reserved
Neutron Server設定ファイル(MidoNet)
10
・MidoNetプラグインを指定設定するファイル
neutorn-server
/etc/neutron/neutron.conf
/etc/neutron/plugins/midonet/midonet_plugin.ini
/etc/neutron/plugin.ini
・MidoNet詳細設定ファイル
・MidoNet詳細設定ファイルのエイリアス
mysql ・midonetデータベース
1
2
3
4
5
(*Neutronノード)
Copyright ©2013 Midokura All rights reserved
Neutron Server設定ファイル(OVS→MidoNet)
11
mysql ・midonetデータベース
[root@localhost neutron]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 10672
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> create database midonet;
mysql> GRANT ALL PRIVILEGES ON midonet.* To ‘neutron’@’%’
IDENTIFIED BY ‘password’;
1
(*Controllerノード)
Copyright ©2013 Midokura All rights reserved
Neutron Server設定ファイル(OVS→MidoNet)
12
※プラグインを指定するパラメータ
core_plugin=neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
↓
core_plugin = neutron.plugins.midonet.plugin.MidonetPluginV2
/etc/neutron/neutron.conf
connection = mysql://neutron:password@172.16.77.83/ovs_neutron
↓
connection = mysql://neutron:password@172.16.77.83/midonet
※mysqlパラメータ
2
(*Networkノード)
Copyright ©2013 Midokura All rights reserved
Neutron Pluginファイルの場所
13
/usr/lib/python2.6/site-packages/neutron/plugins/
openvswitch/
midonet/
__init__.pyc ovs_db_v2.pyc ovs_models_v2.pyc ovs_neutron_plugin.pyc
common __init__.pyo ovs_db_v2.pyo ovs_models_v2.pyo
ovs_neutron_plugin.pyo __init__.py ovs_db_v2.py ovs_models_v2.py
ovs_neutron_plugin.py README
agent common __init__.pyc midonet midonet_lib.pyc
plugin.pyc plugin.pyc.orig plugin.py.orig
(*Networkノード)
Copyright ©2013 Midokura All rights reserved
Neutron Server設定ファイル(OVS→MidoNet)
14
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
[OVS]
tenant_network_type=local
enable_tunneling=False
integration_bridge=br-int
[AGENT]
polling_interval=2
[SECURITYGROUP]
firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFir
ewallDriver
/etc/neutron/plugins/midonet/midonet_plugin.ini
[DATABASE]
sql_connection = mysql://neutron:pass@192.168.100.14/neutron
sql_max_retries = 100
[MIDONET]
midonet_uri = http://192.168.100.14:8080/midonet-api
provider_router_id = 04480326-f419-4c8a-8a6e-c9d8e62d9159
username = admin
password = edb9c193e8234233
project_id = admin
auth_url = http://192.168.100.14:35357/v2.0
3
(*Networkノード)
Copyright ©2013 Midokura All rights reserved
Neutron Server設定ファイル(OVS→MidoNet)
15
neutron-db-manage --config-file /etc/neutron/neutron.conf stamp havana
新データベースに特殊なテーブルを作成
Neutronサーバの再起動
service neutron-server restart
正常動作チェック
• /var/log/neutron/server.logの確認。
• neutron net-list コマンド等を実行。
4
5
(*Networkノード)
Copyright ©2013 Midokura All rights reserved
nova compute設定ファイル(OVS→MidoNet)
16
libvirt_vif_driver = midonet.nova.virt.libvirt.vif.MidonetVifDriver
/etc/nova/nova.conf
nova-computeの再起動
service nova-compute restart
正常動作チェック
• /var/log/nova/compute.logの確認.
• VMを起動.
• neutron側でVM用Port作成されVMが起動すれば問題無し.
6
(*Computeノード)
Copyright ©2013 Midokura All rights reserved
まとめ
17
Neutronは様々なプラグインにより各社製品を
共有APIを利用して使用することができる.
使用するには新規データベースと設定ファイル編集が必要
標準OpenvSwitchより優れた機能を持つMidoNetを
是非使ってみませんか.
Confidential
Thank you!
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
19
Network Subnet
・ネットワークを複数定義することができる
・サブネットはネットワークに登録することが
できる。
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
20
Network Subnet
・ネットワークを複数定義することができる
・サブネットはネットワークに登録することが
できる。
Network Subnet
Network Subnet
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
21
・ルータを複数定義することができる
Router
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
22
・ルータを複数定義することができる。
・ルータにネットワークを所属させることができる。
(neutron router-interface-add [router-id] [network-id])
Router Network Subnet
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
23
Extearnal
Network
・外部ネットワークを作成することができる。(Admin権限のみ)
(VMを外部環境からアクセスをする為に利用)
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
24
Router Network Subnet
Extearnal
Network
※ルータと外部ネットワークを設定
する。
Copyright ©2013 Midokura All rights reserved
Neutronのネットワークリソース
25
Router Network Subnet
Extearnal
Network
Port
※VMを起動するときにNovaがNeutronポートを自動作成

OpenStackネットワークの多種多様なプラグインとその対応方法 - OpenStack最新情報セミナー2014年4月

  • 1.
  • 2.
    Confidential 目次 1 • 簡単にOpenStackコンポーネントのおさらい • OpenStackNeutronとは • Neutron Pluginについて紹介 • OpenvSwitchとMidoNetを比較 • OpenvSwitchからMidoNetへ設定変更 • Q&A
  • 3.
    Copyright ©2013 MidokuraAll rights reserved OpenStackコンポーネントおさらい 2 Nova Neutron Glance Keytsonte Swift Cinder - ハイパーバイザー制御, 仮想サーバの作成/削 除 - 仮想ネットワーク制御 - イメージ, スナップショットの制御 - 認証制御, テナントまたはユーザの作成/削除 - オブジェクトストレージ制御 - ブロックストレージ制御
  • 4.
    Copyright ©2013 MidokuraAll rights reserved OpenStackコンポーネントおさらい 3 Nova Neutron Glance Keytsonte Swift Cinder - ハイパーバイザー制御, 仮想サーバの作成/削 除 - 仮想ネットワーク制御 - イメージ, スナップショットの制御 - 認証制御, テナントまたはユーザの作成/削除 - オブジェクトストレージ制御 - ブロックストレージ制御
  • 5.
    Copyright ©2013 MidokuraAll rights reserved OpenStack Neutronとは 4 仮想ネットワーク制御を行う. - Neutron APIからリソースの追加/読込/更新/削除を行える。 - 主リソースは4つ. (ネットワーク、サブネット、ポート、ルータ) - 付加機能 - Security Group - 仮想FW, 仮想LB, 仮想L3/L2 - データはMySQLまたはsqliteに保存される. Neutron API Server (Network, Subnet Router, Port) OpenStack Nova/Dashboard Neutron CLI Neutron DB Neutron API MySQL
  • 6.
    Copyright ©2013 MidokuraAll rights reserved Neutron Plugin 5 Plugin形式により様々なネットワーク機器や ソフトウェアを選択し利用できます。 - 標準ではOpenvSwitch OVS Neutron API Server Plugin OpenStack Nova/Dashboard Neutron CLI Neutron DB Neutron API MySQL Plugin OpenvSwitch Midokura VMware NEC Cisco Juniper MidoNet VMware NSX NEC OpenFlow Cisco Nexus Juniper EX/QFX
  • 7.
    Copyright ©2013 MidokuraAll rights reserved 標準OpenvSwitchとMidokura MidoNetの違い 6 OpenvSwitch MidoNet 自社GlobaIP利用 ◎ ◎ 拡張性がある? △ (基本SPoF, 冗長難易度高め) ◎ (分散システム構成) 付加機能が使える? (SG, L3/L2, L4LB) ○ (様々なAgentを設定) ◎ (MidoNet Agnetのみで利用可) 既存環境接続,冗長構成 はとれる? ○ (VLAN Trunk) ◎ (VLAN Trunk, BGP) 新しく機器の購入が必 要? ◎ (必要無し) ◎ (必要無し) トラフィック処理 ○ (Network nodeを必ず経由) ◎ (パケット転送最適化) サポート ○ (Community) ◎ (US,JP,EUからサポート)
  • 8.
    Copyright ©2013 MidokuraAll rights reserved 標準OpenvSwitchとMidokura MidoNetの違い 7 Network Node OpenvSwitch MidoNet Network Agent Network Agent
  • 9.
    Copyright ©2013 MidokuraAll rights reserved MidoNetに変更してみましょう! 8 OVS Neutron API Server OpenvSwitch Plugin OpenStack Nova/Dashboard Neutron CLI Neutron DB Neutron API MySQL MidoNet API server MN API MidoNetOpenvSwitch Neutron API Server MidoNet Plugin OpenStack Nova/Dashboard Neutron CLI Neutron DB Neutron API MySQL 1 6 4 5 2 3 (*Neutronノード)
  • 10.
    Copyright ©2013 MidokuraAll rights reserved Neutron Server設定ファイル(OpenvSwitch) 9 ・OpenvSwitchプラグインを指定設定するファイ ル neutorn-server /etc/neutron/neutron.conf /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini /etc/neutron/plugin.ini ・OpenvSwitch詳細設定ファイル ・OpenvSwitch詳細設定ファイルのエイリア ス /etc/neutron/*.agent ・L3/L2/DHCP/MetaData/LB/Firwall機能利用設 定 mysql ・ovs_neutronデータベース (*Neutronノード)
  • 11.
    Copyright ©2013 MidokuraAll rights reserved Neutron Server設定ファイル(MidoNet) 10 ・MidoNetプラグインを指定設定するファイル neutorn-server /etc/neutron/neutron.conf /etc/neutron/plugins/midonet/midonet_plugin.ini /etc/neutron/plugin.ini ・MidoNet詳細設定ファイル ・MidoNet詳細設定ファイルのエイリアス mysql ・midonetデータベース 1 2 3 4 5 (*Neutronノード)
  • 12.
    Copyright ©2013 MidokuraAll rights reserved Neutron Server設定ファイル(OVS→MidoNet) 11 mysql ・midonetデータベース [root@localhost neutron]# mysql Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 10672 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> create database midonet; mysql> GRANT ALL PRIVILEGES ON midonet.* To ‘neutron’@’%’ IDENTIFIED BY ‘password’; 1 (*Controllerノード)
  • 13.
    Copyright ©2013 MidokuraAll rights reserved Neutron Server設定ファイル(OVS→MidoNet) 12 ※プラグインを指定するパラメータ core_plugin=neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2 ↓ core_plugin = neutron.plugins.midonet.plugin.MidonetPluginV2 /etc/neutron/neutron.conf connection = mysql://neutron:password@172.16.77.83/ovs_neutron ↓ connection = mysql://neutron:password@172.16.77.83/midonet ※mysqlパラメータ 2 (*Networkノード)
  • 14.
    Copyright ©2013 MidokuraAll rights reserved Neutron Pluginファイルの場所 13 /usr/lib/python2.6/site-packages/neutron/plugins/ openvswitch/ midonet/ __init__.pyc ovs_db_v2.pyc ovs_models_v2.pyc ovs_neutron_plugin.pyc common __init__.pyo ovs_db_v2.pyo ovs_models_v2.pyo ovs_neutron_plugin.pyo __init__.py ovs_db_v2.py ovs_models_v2.py ovs_neutron_plugin.py README agent common __init__.pyc midonet midonet_lib.pyc plugin.pyc plugin.pyc.orig plugin.py.orig (*Networkノード)
  • 15.
    Copyright ©2013 MidokuraAll rights reserved Neutron Server設定ファイル(OVS→MidoNet) 14 /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini [OVS] tenant_network_type=local enable_tunneling=False integration_bridge=br-int [AGENT] polling_interval=2 [SECURITYGROUP] firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFir ewallDriver /etc/neutron/plugins/midonet/midonet_plugin.ini [DATABASE] sql_connection = mysql://neutron:pass@192.168.100.14/neutron sql_max_retries = 100 [MIDONET] midonet_uri = http://192.168.100.14:8080/midonet-api provider_router_id = 04480326-f419-4c8a-8a6e-c9d8e62d9159 username = admin password = edb9c193e8234233 project_id = admin auth_url = http://192.168.100.14:35357/v2.0 3 (*Networkノード)
  • 16.
    Copyright ©2013 MidokuraAll rights reserved Neutron Server設定ファイル(OVS→MidoNet) 15 neutron-db-manage --config-file /etc/neutron/neutron.conf stamp havana 新データベースに特殊なテーブルを作成 Neutronサーバの再起動 service neutron-server restart 正常動作チェック • /var/log/neutron/server.logの確認。 • neutron net-list コマンド等を実行。 4 5 (*Networkノード)
  • 17.
    Copyright ©2013 MidokuraAll rights reserved nova compute設定ファイル(OVS→MidoNet) 16 libvirt_vif_driver = midonet.nova.virt.libvirt.vif.MidonetVifDriver /etc/nova/nova.conf nova-computeの再起動 service nova-compute restart 正常動作チェック • /var/log/nova/compute.logの確認. • VMを起動. • neutron側でVM用Port作成されVMが起動すれば問題無し. 6 (*Computeノード)
  • 18.
    Copyright ©2013 MidokuraAll rights reserved まとめ 17 Neutronは様々なプラグインにより各社製品を 共有APIを利用して使用することができる. 使用するには新規データベースと設定ファイル編集が必要 標準OpenvSwitchより優れた機能を持つMidoNetを 是非使ってみませんか.
  • 19.
  • 20.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 19 Network Subnet ・ネットワークを複数定義することができる ・サブネットはネットワークに登録することが できる。
  • 21.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 20 Network Subnet ・ネットワークを複数定義することができる ・サブネットはネットワークに登録することが できる。 Network Subnet Network Subnet
  • 22.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 21 ・ルータを複数定義することができる Router
  • 23.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 22 ・ルータを複数定義することができる。 ・ルータにネットワークを所属させることができる。 (neutron router-interface-add [router-id] [network-id]) Router Network Subnet
  • 24.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 23 Extearnal Network ・外部ネットワークを作成することができる。(Admin権限のみ) (VMを外部環境からアクセスをする為に利用)
  • 25.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 24 Router Network Subnet Extearnal Network ※ルータと外部ネットワークを設定 する。
  • 26.
    Copyright ©2013 MidokuraAll rights reserved Neutronのネットワークリソース 25 Router Network Subnet Extearnal Network Port ※VMを起動するときにNovaがNeutronポートを自動作成