Embed presentation
Download as PDF, PPTX
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 VM NIC NIC NIC NIC VNIC VNIC VNIC VNIC NIC NIC NIC NIC Global IP Network Local IP Network + Tagged VLAN
2010/11 Security Groups VM Allow VM NIC NIC VNIC VNIC Deny Netfilter Netfilter NIC NIC Permitted IPs Unknown IPs •全ホスト側の設定を動的に変更する仕組み •この時点でTagged VLANは必要なくなった
Netfilter iptables, ebtablesコマンドで VM ルールを設定できる パケットフィルタリングの仕組み NIC VNIC Wakame-vdcでは、 Netfilter HVA Hyper Visor Agent (HVA)が NIC これを適宜変更する 「接続元IPアドレス以外からのSSH接続はDROPして」とか そう言うご要望にお答えできる代物
Wakame-vdc v10.11 One of the Virtual Network LB Web DB NIC NIC NIC Netfilter Netfilter Netfilter Physical Network Virtual Network
現在複数NICに効くように改良中 LB Web DB NIC NIC NIC NIC 192.168.1.2 192.168.1.3 10.1.1.2 10.1.1.3 Netfilter Netfilter Netfilter Physical Network Virtual Network
データセンターネットワークを 完全に隠蔽する予定 LB Web DB NIC NIC NIC NIC 192.168.1.2 192.168.1.3 10.1.1.2 10.1.1.3 Netfilter L2/L3レベルの変換を行なって Netfilter Netfilter データセンター内部の物理ネットワークは どう構成されていても良いようにする
Design Your Network LB Web DB NIC NIC NIC NIC 192.168.1.2 192.168.1.3 10.1.1.2 10.1.1.3 Netfilter Netfilter Netfilter UIでは旧来のネットワーク図を見せるが、 フラットなネットワークでも全てEdgeでコントロールして 仮想的なネットワークとして再現できる。 192.168.1.1/24 10.1.1.1/24 LB Web DB
アーキテクチャは良さそう • 仮想ネットワークが作れる – 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 VM 今後はホストKernelの上の NIC CPUリソースはVMの動作に VNIC 使われるべき Netfilter NIC ホストKernel
,, ―- 、_ / ‘’ - ,, / ‘’ - ,, / ヽ 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 VM NIC VNIC VNIC HVA OpenFlow HVA OpenFlow Switch OpenFlow Controller Controller NIC NIC OpenFlow Switch High End Switch NIC VM ※(注記)Latencyはひとまず置いておいて VNIC HVA OpenFlow OpenFlow Controller Switch NIC上に別のCPUが搭載されたら、 そちらにフロー制御は任せたい NIC
Wakame-vdc with OpenFlow • 今はOpen vSwitchをコントロールする • CPUワークロードを減らす – ここでOpenFlowの強みが出てくるはず – NICで動くOpenFlow Switchに期待大 • CPUオフロード、Low Latencyでホクホクになる NIC VM VNIC HVA OpenFlow OpenFlow Controller Switch NIC
OpenFlow Controller: Trema • コードが一番理解しやすかった • Wakame-vdc同様にRubyでも書ける • コミュニティも良い – メインループのイベントハンドリングを修正 したかったので、コードコミットしたら取り 込んでくれた ありがとうございます!
Wakame-vdcは 分散するTremaと連携する NIC VM NIC VM NIC VM VNIC VNIC VNIC Open HVA Open HVA Open HVA vSwitch Trema vSwitch Trema vSwitch Trema NIC NIC NIC Wakame-vdc •HVAを通じてControllerへ司令を出す Data Center Manager •ControllerとSwitch間はLow Latency •高いスケーラビリティ
1つのOpen vSwitchを管理する 論理構成 Trema Open vSwitch OpenFlow Open vSwitch switch_manager Controller daemon fork openvswitch_mod switch.{n} NIC Ruby (Bridge) Event Loop Wakame AMQP Extention Wakame-vdc Data Center Manager Wakame
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以降にも期待大!
Q&A OpenFlow祭