• 検索結果がありません。

Cisco ACIとOpenStack連携と今後の展望 ネットワンシステムズ 株式会社 荒牧 大樹様

N/A
N/A
Protected

Academic year: 2021

シェア "Cisco ACIとOpenStack連携と今後の展望 ネットワンシステムズ 株式会社 荒牧 大樹様"

Copied!
33
0
0

読み込み中.... (全文を見る)

全文

(1)

2015年1月26日 ネットワンシステムズ 株式会社 第2応用技術部 荒牧 大樹

Cisco ACIとOpenStack連携と今後の展望

0000-0000-0000

(2)

今回の論文の要旨

CPU使用率が70% 超えたら仮想マシンを拡張

ACIとOpenStackを利用してNWを

意識したクラウド基盤の構築

メモリ利用率が50%超えたら 仮想マシンのメモリを増やそう ストレージ容量が70%超えた らストレージを拡張しよう

NWの視点が抜け落ちている

クラウド基盤

(3)

2

今回の論文の概要

仮想マシンの

配置

仮想マシンの

再配置

仮想マシンの

拡張・縮小

OpenStack

Cisco ACI

L2/L3連携

(4)

ヘルススコアをクラウド基盤で利用するメリット

仮想マシンに信

頼性が必要とさ

れる場合はヘルス

スコアの高いホス

トを選択する

閾値以下の

ホストには

仮想マシンを

配置しない

ヘルススコアが

低下すると新規

仮想マシンを作

成して、トラフィッ

クをより良い仮想

マシンに振る

ホストの状況が

悪化した場合に

自動的に仮想マ

シンの再配置を

行う

仮想マシンの

配置

仮想マシンの

再配置

仮想マシンの

拡張・縮小

サービス品質の

確保

自動化

予防措置

(5)

4

OpenStackについて

OpenStackはオープンソースのIaaS/PaaS基盤を構築するソフトウェアです。OpenStack は各種モジュールが集まって構成されています。今回はNW(Neutron)、Compute(Nova)、 計測(Ceilometer)、自動化(Heat)を利用します。 ダッシュボード (Horizon) 自動化 (Heat) ネットワーク (Neutoron) コンピュート (Nova) 計測 (Ceilometer) 仮想化 ネットワーク 計測 テンプレート CPU Memory Disk NW HOT Cloud Formation Cisco NEC VMware BigSwitch KVM VMware Xen Hyper-V

(6)
(7)

6

Neutronの機能

OpenStackでNW部分はNeutronが担当しています。ルーター機能やスイッチ機能等の 様々なNW機能を提供しています。 コンピュートノード ネットワークノード 仮想ルーター (qrouter) DHCPサーバー (qdhcp) br-tun br-int eth0 br-tun br-int eth0 br-ex eth1 Public Public

(8)

ホスト

NeutronとML2

Neutronは3rd Partyと連携する場合はPluginを利用します。各種Pluginが提供されてい ましたが、復数のベンダードライバーを取り扱え無いため現在はML2の層を追加してACIは ML2のドライバーとして提供されています。 OVS Agent OVS Neutron APIC Leaf APIC Driver OVS Driver ML2

(9)

8

ACIとOpenStackの連携機能

OpenStackではCisco ACI用にML2のドライバーが提供されており、OpenStack上でNW を作成 、 Routerの作成を行うとACIファブリック上に対応したEPG/Contractが作成 さ れ ま す。

(10)

ACI連携現状の問題点

Floating IPの割り当てが出来ない

• ACI FabricがNAT対応していないため • OpFlexでNATの概念が無いため • 今後春に向けて対応予定との事

Metadata Proxyへの対応がない

• OpenStackの仮想マシンは起動時にhttp://169.254.169.254へのアクセスを試みま すが、これをACI側でリダイレクトする必要があります。

(11)

10

L2/L3機能への今後の期待

ACI連携時の現状のメ

リット

• Default GWの冗長性

確保

• HWによるトラフィックの

処理

今後の期待

• Group Policyの連携

• Service Graphの連携

(Service Chain)

• Floating IP/Metadata

Proxyへの対応

(12)

OpenStackとGroup Policyの連携

Group Policyで作成されたPolicyはACIに反映されます。仮想マシンは起動時にEPGに 紐付けられたNWに接続するとPolicyが適用されます。

(13)

© NetOneSystems Co., Ltd. All rights reserved. 12

(14)

Novaのスケジューラーとヘルススコア

Novaで仮想マシンを配置するときにはFilter Scheduler利用されます。これをホストが接続 されているLeafスイッチのポートのヘルススコアに従って配置が出来るか検討しました。 Leafスイッチ ホスト ホスト ヘルススコア(50) ヘルススコア(98) Nova Scheduler 優先的に 仮想マシンを 配置

(15)

14

ヘルスコアを使った仮想マシン配置の利用例

信頼性が必要とされる場合はHealth

Scoreの高いホストを選択する

閾値以下のホストには仮想マシンを

配置しない

Leafスイッチ ホスト ホスト ヘルススコア (50) 信頼性が 必要な 仮想マシン ヘルススコア (98) Leafスイッチ ホスト ホスト ヘルススコア (50) ヘルススコア (98)

(16)

ACIのヘルススコアについて

ACIはファブリック全体からポートに至るまでの様々な要素を加味して0-100のヘル

ススコアを付けます。

(17)

16

Novaのスケジューラーについて

Novaは仮想マシンの配置にFilter Schedulerを利用します。Filter Schedulerは

指定したフィルターをかけて必要なホストを絞ります。その後重み付けを行い最後の

一台を選んで仮想マシンを配置します。

(18)

Utilization Based Scheduling

Utilization Based SchedulingはIcehouseから導入された仕組みでホストの動的値を元 にスケジューリングを行うことが可能です。ホストは定期的に値をスケジューラーにレポートし て、スケジューラーはそれを元にホストを選択します。 ホスト A Filter スケジューラー ホスト B ホスト C Python Script ②レポートされた 値を元にフィルター/ Weight処理 ①指定のPython Scriptを 実行して定期的にホスト 情報をレポート

(19)

18

Utilization Based SchedulingとACIのヘルススコア

今回はAPICからホストが接続されているLeafポートからHealth Scoreを取得するPython のスクリプトを書いて、スケジューラに反映させました。

import json import requests

from nova.compute import monitors

class APICController(object):

def __init__(self, apic_ip):

self.base_url = 'https://' + apic_ip + '/api/'

def login(self, name, pwd): name_pwd = json.dumps(

{'aaaUser': {'attributes': {'name': name, 'pwd': pwd}}}) login_url = self.base_url + 'aaaLogin.json'

post_response = requests.post(login_url, data=name_pwd, verify=False) # get token from login response structure

(20)

結果

通常はメモリの空き容量が大きいホストが選択される所が、ACIのヘルススコアがより良いホ ストへ仮想マシンが優先的に配置された事が確認されました。

Filtered [(osp5com01.noslab.com, osp5com01.noslab.com) ram:38977 disk:8192 io_ops:0 instances:3, (osp5com02.noslab.com, osp5com02.noslab.com) ram:77769 disk:1878016 io_ops:0 instances:1]

Weighed [WeighedHost [host: osp5com01.noslab.com, weight: 1.50118941995], WeighedHost [host: osp5com02.noslab.com, weight: 1.0]] 通常はRAMが大きい OSP5com02が選択される ACIヘルススコアの良い OSP5com01が選択されている RAM 38977 RAM 77769 osp5com01 osp5com02 RAM 38977 RAM 77769 osp5com01 osp5com02 通常はメモリの 多いこちらを選択 Health Scoreが考慮 されてこちらを選択

(21)

© NetOneSystems Co., Ltd. All rights reserved. 20

(22)

Auto-Scalingとヘルススコア

ACIのヘルススコアが悪化した場合に仮想マシンのAuto-Scalingが出来ないか検討を行い ます。 Leafスイッチ ホストA ホストB ヘルススコア(98) ヘルススコアが(50)に低下 Ceilometer Heat Nova 自動的に 仮想マシンを 追加

(23)

22

Heatについて

Heatは復数の仮想マシンの作成とアプリケーションのインストールの自動化を提供していま す。Ceilometerと連携する事でAuto Scaleを提供する事も出来ます。 ネットワーク (Neutoron) コンピュート (Nova) イメージ (Glance)

自動化

(Heat)

HOTテンプレート Cloud Formation テンプレート

(24)

Ceilometerについて

Ceilometerは利用状況を各サービスから取得して、保存と統計情報の提供を行うサービス です。閾値を設定してWebHookで発報する事も出来ます。Heatと連携することでAuto Scalingを行うことも出来ます。 Ceilometer Nova Ceilometer- agent Database Neutron Ceilometer- agent Cinder Ceilometer- agent Glance Ceilometer- agent 保存 取り出し Web発報 Heat等

(25)

24

HeatとAuto Scalingの機能

Heatはオーケストレーション機能提供します。Heatは事前に設定されたテンプレートでの設 定を元にCeilometerの値をからAuto Scalingを実行します。 ホスト ① 仮想マシンの CPU使用量が上昇 Ceilometer Heat Nova 自動的に 仮想マシンを 追加 ② Ceilometerから Heatに通知 ③ HeatからNovaに仮想マシンの 追加を指示

(26)

Ceilometerへのヘルススコアのレポート

Ceilometerに対してポートのヘルススコアを定期的にレポートを行うPython Agentを作成 しました。 import json import requests class APICController(object):

def __init__(self, apic_ip):

self.base_url = 'https://' + apic_ip + '/api/'

def login(self, name, pwd):

name_pwd = json.dumps({'aaaUser': {'attributes': {'name': name, 'pwd': pwd}}}) login_url = self.base_url + 'aaaLogin.json'

post_response = requests.post(login_url, data=name_pwd, verify=False) # get token from login response structure

auth = json.loads(post_response.text)

(27)

26

問題点

Heatではホストと仮想マシンをマッピング す る 手 段 を 持 た な い 為 Ceilometer の 値 を 元 に Auto Scalingをトリガー出来ないことがわかりました。 ACIの ヘルススコアが 低下 ホスト上の 仮想マシン/ システムを特定 別ホスト上に 仮想マシンを 作成 定期的に ヘルススコアを レポート

(28)
(29)

28

仮想マシンの再配置とヘルススコア

ACIのヘルススコアが悪化した場合にLive Migrationで自動的に仮想マシンが移動出来な いか検討します。 Leafスイッチ ホスト ホスト ヘルススコア(98) ヘルススコアが(50)に低下 Ceilometer Congress Nova 自動的に 仮想マシンを 移動

(30)

仮想マシンの再配置の機能

基本的に仮想マシンの再配置の自動化はまだOpenStackではサポートされていません。再 配置に関してはCongressが有望なプロジェクトとされています。

Congress

ポリシーを

定義

自動的に

Remediation

を行う

ポリシー 違反 Congressは論文時点では実 装が始まったばかりだったため動 作の確認は出来ませんでした。 現在はDevStackを利用して試 す事が出来ます。

(31)

30

苦労した点

• OpenStack連携のCCO Documentが間違っている

• ⇒ APICドライバー作成者をOpen Source Communityで探して直接連 絡を取ってやり方を教えてもらう

• 各種APIの詳細のDocumentが不足している

• ⇒ APICのAPI Inspectorを使って実際利用しているAPI Callから構文と仕 様を推測

ACIについて

• 仕様がDocument化されてない

• ⇒ Pyhtonコードを読んで機能を推測

OpenStackについて

(32)

まとめ

クラウド基盤

OpenStackとACIを組み合わせてより良い

クラウド基盤へ

(33)

参照

関連したドキュメント

当第1四半期連結累計期間の売上高は、株式会社PALTEK(以下、「PALTEK」といいます。)を連結

各新株予約権の目的である株式の数(以下、「付与株式数」という)は100株とします。ただし、新株予約

この大会は、我が国の大切な文化財である民俗芸能の保存振興と後継者育成の一助となることを目的として開催してまい

社会システムの変革 ……… P56 政策11 区市町村との連携強化 ……… P57 政策12 都庁の率先行動 ……… P57 政策13 世界諸都市等との連携強化 ……… P58

荒天の際に係留する場合は、1つのビットに 2 本(可能であれば 3

層の項目 MaaS 提供にあたっての目的 データ連携を行う上でのルール MaaS に関連するプレイヤー ビジネスとしての MaaS MaaS

関係会社の投融資の評価の際には、会社は業績が悪化

ダイダン株式会社 北陸支店 野菜の必要性とおいしい食べ方 酒井工業株式会社 歯と口腔の健康について 米沢電気工事株式会社