OpenFlow in IaaS - Wakame

  • View
    6.552

  • Download
    0

  • Category

    Design

Preview:

Citation preview

OpenFlowをIaaSで使う

~Wakameの場合~

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

自己紹介

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

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

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

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

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

…の仲間

• Eucalyptus

• OpenStack

• CloudStack

• その他色々

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

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

• 電力会社様の基幹系

• 国立研究所

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

• 米国の銀行(準備中)

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

お客様のご要望を

実装してきました

• マルチハイパーバイザ対応 – 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

最近の課題

ネットワーク

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

2010/11 Security Groups

VM NIC VNIC

NIC

VM NIC VNIC

NIC

Netfilter Netfilter Deny

Allow

Unknown IPs Permitted IPs

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

Netfilter

VM NIC VNIC

NIC

Netfilter

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

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

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

Wakame-vdc v10.11

One of the Virtual Network

DB Web LB NIC NIC NIC

Physical Network

Virtual Network

Netfilter Netfilter Netfilter

現在複数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

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

完全に隠蔽する予定

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レベルの変換を行なって データセンター内部の物理ネットワークは どう構成されていても良いようにする

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

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

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

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

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

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

しかし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

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

,, ―- 、_ / ‘’ - ,, / ‘’ - ,, / ヽ 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

そこでOpenFlowに着目した

• Netfilterの代替になる

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

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

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

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

• ここ超重要!!!

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はひとまず置いておいて

Wakame-vdc with OpenFlow

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

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

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

VM NIC VNIC

NIC

OpenFlow Switch

HVA OpenFlow Controller

OpenFlow Controller: Trema

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

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

• コミュニティも良い

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

ありがとうございます!

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 •高いスケーラビリティ

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

802.1Qbg - Edge Virtual Bridging

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

• Virtual Ethernet Bridge (VEB)

• Virtual Edge Port Aggregator (VEPA)

– VEBの拡張

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

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

Project:

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

いつリリースできる?

• 今年中を目標

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

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

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

• v1.1が使いたい

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

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

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

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

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

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

参加者募集中

• Wiki作りました

– http://wakame.jp/wiki/

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

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

– 参加したい人は

• Twitter @sparklegateへDMをください

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

まとめ

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

• Distributed Control

• ハイスケール & Low Latency

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

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

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

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

OpenFlow祭

Q&A