26
Confidential OpenStack ネネネネネネネネネネネネネネネネネ ネネネネネネネ

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

Embed Size (px)

DESCRIPTION

講師:ミドクラ 鈴木 日時:2014/04/10 タイトル:OpenStackネットワークの多種多様なプラグインとその対応方法 -MidoNet版- 概要: OpenStack NetworkiのデフォルトであるOVSバージョンと、様々なベンダーから出ているプラグインについて、全体像に軽く触れ、特にMidoNetプラグインについての設定方法の差異や、導入方法を紹介いたします。また、OVSでできることや限界点、MidoNetにしかできない機能についても説明いたします。

Citation preview

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

Confidential

OpenStackネットワークの多種多様なプラグインとその対応方法

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

Confidential

目次

2

•  簡単に OpenStackコンポーネントのおさらい•  OpenStack Neutronとは• Neutron Pluginについて紹介• OpenvSwitchとMidoNetを比較• OpenvSwitchからMidoNetへ設定変更• Q&A

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

Copyright ©2013 Midokura All rights reserved

OpenStackコンポーネントおさらい

3

Nova

Neutron

Glance

Keytsonte

Swift

Cinder

- ハイパーバイザー制御 , 仮想サーバの作成 /削除- 仮想ネットワーク制御

- イメージ , スナップショットの制御

- 認証制御 , テナントまたはユーザの作成 /削除

- オブジェクトストレージ制御

- ブロックストレージ制御

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

Copyright ©2013 Midokura All rights reserved

OpenStackコンポーネントおさらい

4

Nova

Neutron

Glance

Keytsonte

Swift

Cinder

- ハイパーバイザー制御 , 仮想サーバの作成 /削除- 仮想ネットワーク制御

- イメージ , スナップショットの制御

- 認証制御 , テナントまたはユーザの作成 /削除

- オブジェクトストレージ制御

- ブロックストレージ制御

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

Copyright ©2013 Midokura All rights reserved

OpenStack Neutronとは

5

仮想ネットワーク制御を行う .- Neutron APIからリソースの追加 /読込 /更新 /削除を行える。- 主リソースは 4つ . (ネットワーク、サブネット、ポート、ルータ )- 付加機能 - Security Group - 仮想 FW, 仮想 LB, 仮想 L3/L2- データはMySQLまたは sqliteに保存される .

Neutron API Server

(Network, Subnet

Router, Port)

OpenStackNova/Dashboard

NeutronCLI

Neutron DB

Neutron API

MyS

QL

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

Copyright ©2013 Midokura All rights reserved

Neutron Plugin

6

Plugin形式により様々なネットワーク機器やソフトウェアを選択し利用できます。

- 標準では OpenvSwitch

OVS

Neutron API ServerPlugin

OpenStackNova/

Dashboard

NeutronCLI

Neutron DB

Neutron API

MyS

QL

Plugin

OpenvSwitchMidokuraVMwareNECCiscoJuniper

MidoNet

VMware NSX

NEC OpenFlow

Cisco Nexus

Juniper EX/QFX

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

Copyright ©2013 Midokura All rights reserved

標準 OpenvSwitchとMidokura MidoNetの違い

7

  OpenvSwitch MidoNet

自社 GlobaIP利用 ◎ ◎

拡張性がある ? △(基本 SPoF, 冗長難易度高め )

◎(分散システム構成 )

付加機能が使える ?(SG, L3/L2, L4LB)

○(様々な Agentを設定 )

◎(MidoNet Agnetのみで利用可 )

既存環境接続 ,冗長構成はとれる ?

○(VLAN Trunk)

◎(VLAN Trunk, BGP)

新しく機器の購入が必要 ?

◎(必要無し )

◎(必要無し )

トラフィック処理 ○(Network nodeを必ず経由 )

◎(パケット転送最適化 )

サポート ○(Community)

◎(US,JP,EUからサポート )

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

Copyright ©2013 Midokura All rights reserved

標準 OpenvSwitchとMidokura MidoNetの違い

8

NetworkNode

OpenvSwitch

MidoNet

NetworkAgent

NetworkAgent

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

Copyright ©2013 Midokura All rights reserved

MidoNetに変更してみましょう!

9

OVS

Neutron API Server

OpenvSwitch Plugin

OpenStackNova/

Dashboard

NeutronCLI

Neutron DB

Neutron API

MyS

QL

MidoNetAPI server

MN API

MidoNetOpenvSwitch

Neutron API Server

MidoNet Plugin

OpenStackNova/

Dashboard

NeutronCLI

Neutron DB

Neutron API

MyS

QL

1

6

4

5

2 3

(*Neutronノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Server設定ファイル( OpenvSwitch)

10

・ 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ノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Server設定ファイル(MidoNet)

11

・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ノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Server設定ファイル( OVS→MidoNet)

12

mysql ・midonetデータベース

[root@localhost neutron]# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 10672Server 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 itsaffiliates. Other names may be trademarks of their respectiveowners.

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ノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Server設定ファイル( OVS→MidoNet)

13

※プラグインを指定するパラメータcore_plugin=neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2↓core_plugin = neutron.plugins.midonet.plugin.MidonetPluginV2

/etc/neutron/neutron.conf

connection = mysql://neutron:[email protected]/ovs_neutron↓connection = mysql://neutron:[email protected]/midonet

※mysqlパラメータ

2(*Networkノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Pluginファイルの場所

14

/usr/lib/python2.6/site-packages/neutron/plugins/

openvswitch/

midonet/

__init__.pyc ovs_db_v2.pyc ovs_models_v2.pyc ovs_neutron_plugin.pyccommon __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ノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Server設定ファイル( OVS→MidoNet)

15

/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini

[OVS]tenant_network_type=localenable_tunneling=Falseintegration_bridge=br-int

[AGENT]polling_interval=2

[SECURITYGROUP]firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

/etc/neutron/plugins/midonet/midonet_plugin.ini

[DATABASE]sql_connection = mysql://neutron:[email protected]/neutronsql_max_retries = 100

[MIDONET]midonet_uri = http://192.168.100.14:8080/midonet-apiprovider_router_id = 04480326-f419-4c8a-8a6e-c9d8e62d9159username = adminpassword = edb9c193e8234233project_id = adminauth_url = http://192.168.100.14:35357/v2.0

3

(*Networkノード )

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

Copyright ©2013 Midokura All rights reserved

Neutron Server設定ファイル( OVS→MidoNet)

16

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ノード )

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

Copyright ©2013 Midokura All rights reserved

nova compute設定ファイル( OVS→MidoNet)

17

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ノード )

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

Copyright ©2013 Midokura All rights reserved

まとめ

18

Neutronは様々なプラグインにより各社製品を共有 APIを利用して使用することができる .

使用するには新規データベースと設定ファイル編集が必要 .

標準 OpenvSwitchより優れた機能を持つMidoNetを是非使ってみませんか .

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

Confidential

Thank you!

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

20

Network Subnet

・ネットワークを複数定義することができる・サブネットはネットワークに登録することができる。

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

21

Network Subnet

・ネットワークを複数定義することができる・サブネットはネットワークに登録することができる。

Network SubnetNetwork Subnet

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

22

・ルータを複数定義することができる

Router

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

23

・ルータを複数定義することができる。・ルータにネットワークを所属させることができる。 (neutron router-interface-add [router-id] [network-id])

Router Network Subnet

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

24

ExtearnalNetwork

・外部ネットワークを作成することができる。( Admin権限のみ)( VMを外部環境からアクセスをする為に利用)

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

25

Router Network SubnetExtearnalNetwork

※ルータと外部ネットワークを設定する。

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

Copyright ©2013 Midokura All rights reserved

Neutronのネットワークリソース

26

Router Network SubnetExtearnalNetwork Port

※VMを起動するときに Novaが Neutronポートを自動作成する。