【Brocade OpenStack ソリューション】LBaaS プラグイン

18
LBaaSプラグイン Pattabi Ayyasami シニア・マネージャ – OpenStack 201411© 2013 Brocade Communications Systems, Inc. CONFIDENTIAL—For Internal Use Only 1

Transcript of 【Brocade OpenStack ソリューション】LBaaS プラグイン

Page 1: 【Brocade OpenStack ソリューション】LBaaS プラグイン

LBaaSプラグイン Pattabi Ayyasami

シニア・マネージャ – OpenStack

2014年11月

© 2013 Brocade Communications Systems, Inc. CONFIDENTIAL—For Internal Use Only 1

Page 2: 【Brocade OpenStack ソリューション】LBaaS プラグイン

ネットワーク

(Quantum)

ネットワーク

(Neutron)

Openstackの開発の進展

© 2014 Brocade Communications Systems, Inc. 2

コンピュート

(Nova) ストレージ

認証セキュリティ(Keystone)

Webインタフェース(Horizon)

オブ

ジェクト

(Swift)

ハイパー バイザ

イメージ

(Glance)

ブロック

(Cinder) ファイル スイッチ LB ルータ FW

機能拡張

Page 3: 【Brocade OpenStack ソリューション】LBaaS プラグイン

OpenStackにおけるBrocade vADXサポート

• OpenStack環境で、vADX (バージョン3.1.01以降)のインスタンスを作成・管理

• vADX VMの必要条件

• 2 CPU

• 2048 MB RAM

• 20 GBディスク・スペース

• Brocade Openstack LBaaSプラグインを使って、OpenStack環境からvADXを設定

© 2014 Brocade Communications Systems, Inc. 3

Page 4: 【Brocade OpenStack ソリューション】LBaaS プラグイン

Brocade LBaaSプラグイン&デバイス・ドライバ

• 対応ADX/vADXバージョン

• ハードウェアADX 12.5以降

• vADX 3.1.01以降

• コンポーネント

• OpenStack Brocade LBaaSプラグイン・ドライバ

• Brocade ADXデバイス・ドライバ(別にインストール)

• Brocade LBaaSプラグイン・ドライバがプラグイン・ドライバAPIの抽象化フレームワークを

実装/拡張

• コード提出ターゲット – Kiloリリース。承認後は、Brocade LBaaSプラグイン・ドライバがOpenStack

ディストリビューションに加わる

• Brocade ADXデバイス・ドライバ

• ADX/vADXのXML/SOAP APIを使って、ADXデバイスに構成設定を適用

• ファイル・ベースのデバイス・インベントリから、サブネットで区別してADX/vADXデバイスを識別

• JSON形式のデバイス情報を採用

© 2014 Brocade Communications Systems, Inc. 4

Page 5: 【Brocade OpenStack ソリューション】LBaaS プラグイン

LBaaSのアーキテクチャ

© 2014 Brocade Communications Systems, Inc. 5

各ベンダの プラグイン・ドライバ

ファイル・ベースの デバイス・インベントリを ブロケードで実装

Page 6: 【Brocade OpenStack ソリューション】LBaaS プラグイン

OpenStack LBaaS v1データ・モデル

© 2014 Brocade Communications Systems, Inc. 6

ポートポリシーに相当

実サーバとそのポートに相当

仮想サーバとそのポートに相当

Page 7: 【Brocade OpenStack ソリューション】LBaaS プラグイン

© 2014 Brocade Communications Systems, Inc. 7

OpenStack LBaaS v2データ・モデル(ターゲット - Kiloリリース)

Page 8: 【Brocade OpenStack ソリューション】LBaaS プラグイン

OpenStack Brocade LBaaSプラグイン

• Neutronサーバのサービスとして稼働

• プラグイン・ドライバAPIの抽象化フレームワークを実装/拡張

• 下のAPIを実装し、リクエストをBrocadeデバイス・ドライバに転送

• create_vip / update_vip / delete_vip

• create_pool / update_pool / delete_pool

• stats

• create_member / update_member / delete_member

• create_pool_health_monitor / update_pool_health_monitor / delete_pool_health_monitor

© 2014 Brocade Communications Systems, Inc. 8

Page 9: 【Brocade OpenStack ソリューション】LBaaS プラグイン

処理フロー

© 2014 Brocade Communications Systems, Inc. 9

Page 10: 【Brocade OpenStack ソリューション】LBaaS プラグイン

REST API

• REST APIのURL - http://<ip-address>:9696/v2.0/lb/

• 例

• http://<IP Address>:9696/v2.0/lb/vips --> VIPのリスト表示

• http://<IP Address>:9696/v2.0/lb/vips/<vip_id> --> VIPの情報表示

• HTTPヘッダ

• X-Auth-Token:<Keystone token for the tenant> / { user name / password }

• Content-Type: application/json

• Accept: application/json

© 2014 Brocade Communications Systems, Inc. 10

Page 11: 【Brocade OpenStack ソリューション】LBaaS プラグイン

参考資料

• https://wiki.openstack.org/wiki/Neutron/LBaaS

• https://wiki.openstack.org/wiki/Neutron/LBaaS/API_1.0 - テナントREST API

• https://wiki.openstack.org/wiki/Neutron/LBaaS/CLI - Neutron LBaaS CLI

• https://github.com/openstack/neutron - Neutronソース・コード

• http://docs.openstack.org/api/openstack-

network/2.0/content/lbaas_ext.html - v2データ・モデルREST API

© 2014 Brocade Communications Systems, Inc. 11

Page 12: 【Brocade OpenStack ソリューション】LBaaS プラグイン

OpenStack Brocade LBaaSプラグイン (v2データ・モデル)

• フレームワークで定義されている、下のマネージャAPIを実装

• LoadBalancerManager

• ListenerManager

• PoolManager

• MemberManager

• HealthMonitorManager

• Brocade ADXデバイス・ドライバは、v1、v2双方のLBaaSデータ・モデルに対応

© 2014 Brocade Communications Systems, Inc. 12

Page 13: 【Brocade OpenStack ソリューション】LBaaS プラグイン

OpenStackにおけるvADXのインストールと設定

• vADXイメージのGlanceアップロード

• qcowイメージを一時ディレクトリにダウンロードして、下のコマンドでGlanceにアップロード

glance --os-username=<user> --os-password=<password> --os-tenant-name=<tenant> --os-auth-

url=http://<controller>:5000/v2.0 image-create --name=<vadx-image-name> --disk-format=qcow2 --container-format=bare --file

SSR*.qcow2

• vADXのフレーバの作成

• 最小条件:2 CPU / 2 GB RAM / 20 GBルート・ディスク

• CLIかHorizonダッシュボードからフレーバを作成

• 管理ネットワークとデータ・ネットワークを作成

• イメージと、フレーバ、ネットワーク(管理/データ)を指定して、vADXのVMインスタンスを起動

• vADXの管理インタフェースはDHCPをサポート。データ・インタフェースは、vADXの起動後にCLIからIP

アドレスをマニュアル設定

© 2014 Brocade Communications Systems, Inc. 13

Page 14: 【Brocade OpenStack ソリューション】LBaaS プラグイン

OpenStackのBrocade LBaaSプラグイン/デバイス・ドライバのインストールと設定

• Brocade ADXデバイス・ドライバのインストール

• brocade_neutron_lbaas-1.0.tar.gzをダウンロード:https://github.com/brocade-vadx/downloads/tree/master/juno/

• tarファイルを展開:tar –zxvf brocade_neutron_lbaas-1.0.tar.gz

• デバイス・ドライバのPythonモジュールをdist-packagesディレクトリにインストール:sudo python setup.py install

• Brocade LBaaSプラグインのインストール

• brocade_lbaas_plugin.tar.gzをダウンロード:https://github.com/brocade-vadx/downloads/tree/master/juno/

• tarファイルを<NEUTRON_HOME>/services/loadbalancer/driversディレクトリに展開(<NEUTRON_HOME>は普通は

/usr/lib/python2.7/dist-packages/neutron)

• Brocade LBaaSプラグインの有効化

• neutron.confファイルで(普通は/etc/neutron/ディレクトリ)、サービス・プロバイダにBrocade LBaaSプラグインを追加

service_provider = LOADBALANCER:brocade:neutron.services.loadbalancer.drivers.brocade.plugin_driver_v1.BrocadePluginDriverV1:default

• vADX/ADXの情報を入れたデバイス構成ファイルの作成

/etc/neutron/services/loadbalancer/brocade/devices.json

© 2014 Brocade Communications Systems, Inc. 14

Page 15: 【Brocade OpenStack ソリューション】LBaaS プラグイン

devices.json構成ファイルの例

[

{

"name" :“vADX Device 1",

"ip":“<management ip of the adx/vadx>",

"user":“<user name>",

"password":“<password>",

"subnet_id":[ “<List of comma separated subnet uuids>"]

}

]

• Brocade ADXデバイス・ドライバは、リクエストが指定するサブネットuuidに基づいてデバイスを選択

© 2014 Brocade Communications Systems, Inc. 15

Page 16: 【Brocade OpenStack ソリューション】LBaaS プラグイン

デモ

© 2014 Brocade Communications Systems, Inc. 16

BROCADE INTERNAL

Page 17: 【Brocade OpenStack ソリューション】LBaaS プラグイン

LBaaSデモの内容 1. 顧客Aは、数台のサーバでアプリケーションをホストして処理負荷を分散

Horizon UI/APIからOpenStackのテナントとテナント・ユーザを作成

アプリケーションをホストするイメージをGlanceにアップロード(CLI/API、Horizon UI)

インスタンスを作成(上のイメージを使用)

ネットワーク/サブネットを作成(テナント・ネットワークを使用する場合)

サブネットを指定して、ロード・バランサ・デバイスを追加

ADXのWeb UI/CLIからアウト・バンドで、テナント/ポート/IPアドレスをADXに設定

アプリケーションの負荷分散ルールを設定

プールを作成

メンバになるインスタンスをプールに追加

インスタンスの状態を調べるヘルス・モニターを作成

VIPを作成してプールにバインド

© 2014 Brocade Communications Systems, Inc. 17

Page 18: 【Brocade OpenStack ソリューション】LBaaS プラグイン

THANK YOU

18 © 2014 Brocade Communications Systems, Inc.

本件に関するお問合せ

https://www.brocadejapan.com/form/contact

ブロケード コミュニケーションズ システムズ株式会社