31
OpenFlowIaaSで使う Wakameの場合~ 株式会社あくしゅ 山崎泰宏

OpenFlow in IaaS - Wakame

Embed Size (px)

Citation preview

Page 1: OpenFlow in IaaS - Wakame

OpenFlowをIaaSで使う

~Wakameの場合~

株式会社あくしゅ 山崎泰宏

Page 2: OpenFlow in IaaS - Wakame

自己紹介

•北海道出身 •大手SIer (5年)

•本社にて研究開発、技術営業、 ありがたいことに色々経験

•起業 (5年) •株式会社あくしゅ 代表取締役 •西新宿のはずれにて11名の小さな会社

Page 3: OpenFlow in IaaS - Wakame

クラウド基盤ソフトウェアを

作ってOSSとして公開しています

Page 4: OpenFlow in IaaS - Wakame

…の仲間

• Eucalyptus

• OpenStack

• CloudStack

• その他色々

機能は遜色無いんですけど、 なかなかブレークできずにいます。

Page 5: OpenFlow in IaaS - Wakame

こんなところで使われています

• 電力会社様の基幹系

• 国立研究所

• コンシューマ向けデータセンター事業

• 米国の銀行(準備中)

あまり詳しく書けなくてごめんなさい

Page 6: OpenFlow in IaaS - Wakame

お客様のご要望を

実装してきました

• マルチハイパーバイザ対応 – KVM, LXC

– High Availability (物理故障からの復旧)

– 高度なインスタンススペック(複数NIC対応など)

• マルチストレージ対応 – ZFS, tgt

– Snapshot用外部ストレージ転送 (IIJ GIO, S3互換)

• ネットワーク – Multiple Network, Security Groups, NAT,

Metadata Server/Drive, DHCP, DNS, AWS Adapters, Web API

Page 7: OpenFlow in IaaS - Wakame

最近の課題

ネットワーク

Page 8: OpenFlow in IaaS - Wakame

2010/04 Wakame-vdc

First Release

VM NIC NIC

VNIC VNIC

NIC NIC

Global IP Network

Local IP Network

VM NIC NIC

VNIC VNIC

NIC NIC

+ Tagged VLAN

Page 9: OpenFlow in IaaS - Wakame

2010/11 Security Groups

VM NIC VNIC

NIC

VM NIC VNIC

NIC

Netfilter Netfilter Deny

Allow

Unknown IPs Permitted IPs

•全ホスト側の設定を動的に変更する仕組み •この時点でTagged VLANは必要なくなった

Page 10: OpenFlow in IaaS - Wakame

Netfilter

VM NIC VNIC

NIC

Netfilter

iptables, ebtablesコマンドで ルールを設定できる パケットフィルタリングの仕組み

HVA Wakame-vdcでは、 Hyper Visor Agent (HVA)が これを適宜変更する

「接続元IPアドレス以外からのSSH接続はDROPして」とか そう言うご要望にお答えできる代物

Page 11: OpenFlow in IaaS - Wakame

Wakame-vdc v10.11

One of the Virtual Network

DB Web LB NIC NIC NIC

Physical Network

Virtual Network

Netfilter Netfilter Netfilter

Page 12: OpenFlow in IaaS - Wakame

現在複数NICに効くように改良中

DB Web LB NIC NIC NIC NIC

Physical Network

Virtual Network

Netfilter Netfilter Netfilter

192.168.1.2 192.168.1.3 10.1.1.2 10.1.1.3

Page 13: OpenFlow in IaaS - Wakame

データセンターネットワークを

完全に隠蔽する予定

DB Web LB NIC NIC NIC NIC

Netfilter Netfilter Netfilter

192.168.1.2 192.168.1.3 10.1.1.2 10.1.1.3

L2/L3レベルの変換を行なって データセンター内部の物理ネットワークは どう構成されていても良いようにする

Page 14: OpenFlow in IaaS - Wakame

Design Your Network

DB Web LB NIC NIC NIC NIC

Netfilter Netfilter Netfilter

192.168.1.2 192.168.1.3 10.1.1.2 10.1.1.3

LB Web DB

UIでは旧来のネットワーク図を見せるが、 フラットなネットワークでも全てEdgeでコントロールして 仮想的なネットワークとして再現できる。

192.168.1.1/24 10.1.1.1/24

Page 15: OpenFlow in IaaS - Wakame

アーキテクチャは良さそう

• 仮想ネットワークが作れる – Default Gatewayなど、 全部Edgeに持って行けるだろう

– しかもスケーラビリティが高い

• 実装のアプローチもこのままで良いのか? – このままLinuxのNetfilterで継続か – Software Bridgeを自作するか

• より自由なルールが適用できる!

Page 16: OpenFlow in IaaS - Wakame

しかし10Gbpsの世界とは…

• 1 Frame as Minimum = 84 byte = 672 bit

• 10Gbps / 672bpp ≒ 14.8Mpps – 10Gbps Wire Speed

• A Core 1.33GHz / 14.8Mpps ≒ 90 Clock cycle

今後はホストKernelの上の CPUリソースはVMの動作に 使われるべき

ホストKernel

VM NIC VNIC

NIC

Netfilter

Page 17: OpenFlow in IaaS - Wakame

ホストでやれるって言う レベルじゃねーぞ!

,, ―- 、_ / ‘’ - ,, / ‘’ - ,, / ヽ i / /ヽ ! ,i ./ / ‘’―、 ! i ,、 n て‘’ ノノ ヾ ! i ノノノ ノ ノ ‘’´ ! / 訢 j ‘ ´ ノ ( ヽ | >-,, / ,,=━━・!’ ,ノ━== ! ノ !・ ヽ | ’ニンniii、 :::::i/ィ7iii= i ) \(てi iヽ ^‘ ~ -’ /} `i_ 、 \ i_ l_j `┐ i /(,,, ,n 〉 /\\  ̄ ̄へ ! ‘ T’‘ l | \ | ! i ン=ェェi) i ソ ) | i´\! ,, -ェ`、_ン ノノ 〈 | | \\,, `―''´// | | つ !、_''''''''''''' / 7

Page 18: OpenFlow in IaaS - Wakame

そこでOpenFlowに着目した

• Netfilterの代替になる

– Flow Tableの考え方とほぼ同じ

• 標準化されると 組み合わせの選択肢が増える

– Linuxじゃなくても良くなる

– ワークロードをCPU外に託せるかもね

• ここ超重要!!!

Page 19: OpenFlow in IaaS - Wakame

OpenFlowにすると自由度が高まる

VM NIC VNIC

NIC

OpenFlow Switch

HVA OpenFlow Controller

High End Switch

VM NIC VNIC

NIC

OpenFlow Switch

HVA OpenFlow Controller

VM NIC VNIC

NIC

OpenFlow Switch

HVA OpenFlow Controller NIC上に別のCPUが搭載されたら、

そちらにフロー制御は任せたい

※Latencyはひとまず置いておいて

Page 20: OpenFlow in IaaS - Wakame

Wakame-vdc with OpenFlow

• 今はOpen vSwitchをコントロールする

• CPUワークロードを減らす – ここでOpenFlowの強みが出てくるはず

– NICで動くOpenFlow Switchに期待大 • CPUオフロード、Low Latencyでホクホクになる

VM NIC VNIC

NIC

OpenFlow Switch

HVA OpenFlow Controller

Page 21: OpenFlow in IaaS - Wakame

OpenFlow Controller: Trema

• コードが一番理解しやすかった

• Wakame-vdc同様にRubyでも書ける

• コミュニティも良い

– メインループのイベントハンドリングを修正したかったので、コードコミットしたら取り込んでくれた

ありがとうございます!

Page 22: OpenFlow in IaaS - Wakame

Wakame-vdcは

分散するTremaと連携する

VM NIC VNIC

NIC

Open vSwitch

HVA

Trema

VM NIC VNIC

NIC

Open vSwitch

HVA

Trema

VM NIC VNIC

NIC

Open vSwitch

HVA

Trema

Wakame-vdc Data Center Manager

•HVAを通じてControllerへ司令を出す •ControllerとSwitch間はLow Latency •高いスケーラビリティ

Page 23: OpenFlow in IaaS - Wakame

Wakame

Open vSwitch Trema

1つのOpen vSwitchを管理する

論理構成

AMQP

OpenFlow Controller

Ruby Event Loop

switch.{n}

switch_manager Open vSwitch

daemon

openvswitch_mod (Bridge)

NIC

fork

Wakame Extention

Wakame-vdc Data Center Manager

Page 24: OpenFlow in IaaS - Wakame

802.1Qbg - Edge Virtual Bridging

• IEEEのワーキンググループ

• Virtual Ethernet Bridge (VEB)

• Virtual Edge Port Aggregator (VEPA)

– VEBの拡張

– 外部スイッチへ オフロードする

Page 25: OpenFlow in IaaS - Wakame

Wakame-vdcは、このBridge技術を使って、 特別なハードウェアに依存せず 仮想ネットワークを実現していきます。

Page 26: OpenFlow in IaaS - Wakame

Project:

Big Bridge ※すでに商標登録されているかも…と言う情報をいただきました

Page 27: OpenFlow in IaaS - Wakame

いつリリースできる?

• 今年中を目標

• 実装が遅れに遅れています

– Tremaにコミットするコードを書いていた

– 実装が出回っているOpenFlow v1.0準拠だと色々制約が多い

• v1.1が使いたい

• 今はそこのワークアラウンドをしています

Page 28: OpenFlow in IaaS - Wakame

物理ネットワークはどう扱うか?

• データセンター内部の運用を考えると 物理の管理は必須だと思っています – 情報は管理する – コントロールまでやっても良いけど今はやらない

• ハードウェアはお金がかかる

– 他社さんが頑張っている

• でも激安スイッチだけで 仮想ネットワークができるのも大切 – エッジに寄せた最大のメリット – プロダクション環境は ちゃんとしたハードウェアを買いましょう

Page 29: OpenFlow in IaaS - Wakame

参加者募集中

• Wiki作りました

– http://wakame.jp/wiki/

• インストールDVDもあります

• ぜひ開発にご参加ください

– 参加したい人は

• Twitter @sparklegateへDMをください

• Skypeでチャットルーム作ります

Page 30: OpenFlow in IaaS - Wakame

まとめ

• Wakame-vdcでは OpenFlowを分散させてEdgeで使う – OpenFlow for Virtual Ethernet Bridge

• Distributed Control

• ハイスケール & Low Latency

• ハードウェアを選ばない

– Software-Defined Networkingを実現 • まずはSecurity Groupsの実装に

• 今後は仮想ネットワークに進展させる

• OpenFlow v1.1以降にも期待大!

Page 31: OpenFlow in IaaS - Wakame

OpenFlow祭

Q&A