Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月

8,883 views

Published on

講師:ミドクラ 高嶋様
日時:2014/08/07
タイトル:OpenStackネットワーキング管理者入門
概要:
- 自己紹介
- 本日のターゲット
- OpenStack Networkingのおさらい
- OVS pluginの場合
- MidoNetの場合
- まとめ

Published in: Technology
  • Be the first to comment

OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月

  1. 1. Confiden'al   OpenStackネット ワーキング管理理者⼊入⾨門 2014年年8⽉月7⽇日 ミドクラジャパン株式会社 ⾼高嶋隆⼀一 OpenStack最新情報セミナー
  2. 2. Confidential 本資料料の構成 • ⾃自⼰己紹介 • 本⽇日のターゲット • OpenStack  Networking  のおさらい • OVS  plugin  の場合 • MidoNet  の場合 • MidoNet  Updates • まとめ 2  
  3. 3. Confidential ⾃自⼰己紹介 3   2013〜~現在
  4. 4. Confidential 本⽇日のターゲット 4  
  5. 5. Confidential 本⽇日のターゲット 5   Ø  OpenStack  はインストールしてみたけど、 ネットワーク部分がいまいちなー、とおもって いるあなた 対象者 Ø  標準(?)の  OVS  plugin  の構成や問題点をおさ らいしてみる Ø  MidoNet  を例例にエッジオーバレイのネット ワークスタックを使うとどう変わるか⾒見見てみる 狙い Photo Credit: Đạt Lê via Compfight cc
  6. 6. Confidential OpenStack  Networking  のおさらい 6  
  7. 7. Confidential OpenStack  コンポーネントのおさらい 7   今⽇日は主にここの お話をします
  8. 8. Confidential Neutron  の役割 8   External  Network VM Network Router VMに必要なネットワークトポロジを構成すること 最近の  Neutron  の標準的  (?)     な論論理理的トポロジ テナントを分けるL3アイソレーションを 提供するルータオブジェクト VMを収容するL2アイソレーションを 提供するネットワークオブジェクト 上位接続ネットワークであり、SNAT,   Floating  IPのアドレス空間を提供する ネットワークオブジェクト
  9. 9. Confidential Neutron  の役割/もうちょっと具体的に 9   External   Network VM Network Router ü  Outgoing  に  SNAT  をかける ü  Incoming  の特定のアドレス宛ての通信にDNATをかけ て特定のVMに渡す  (  Floating-‐‑‒IP  ) ü  同⼀一テナント内の異異ネットワークのルーティングを⾏行行う ü  異異テナント間のルーティングを⾏行行う ü  OpenStack  の外の世界とのルーティングを⾏行行う ü  異異テナント間でアドレス重複を許す様にアイソレーションを⾏行行う ü  VM⽤用のポートを作成して  tap  インタフェースと紐紐付ける  ★ ü  DHCPでVMにアドレス他を通知する ü  ポートでパケットフィルタリングを⾏行行う  (Security-‐‑‒Group)  ★ ★の部分は  Nova  側とも関係アリ
  10. 10. Confidential Neutron  の実装 10   前述の機能を実現する為の実装はいくつかあり、 Plugin  形式で選択可能 今⽇日は主にこいつらの 実装のお話をします
  11. 11. Confidential お願い事項 11  Photo Credit: ryoichi360 via Compfight cc 普段⾃自社製品ばっかりさわっているので、OVS  plugin  に 関する記述が間違っている可能性があります。 その場合は優しく教えてください。後で資料料直します。。
  12. 12. Confidential OVS  plugin  の場合 12  
  13. 13. Confidential OVS  Plugin  による構成の種別 13   n OVS  Plugin  における  Option ü OpenStack  Havana  における  OVS  Integration  では下記の2 つの  Optionとその組合せによる4つのパターンが存在 1.  Network  termination a.  L3+L2  termination b.  L2  termination 2.  L2  Encapsulation  between  bridge  devices A.  VLAN  mode B.  GRE  mode
  14. 14. Confidential L2  termination  と  L3+L2  termination 14   n L2  Termination ü OpenStack  システムは  Bridge  のみ存在する形式 ü L3  Termination  は  Cloud  外のルータにより実施 br-int br-ext DCHP agent L2 Agentbr-int L2 agent L2 Agentbr-int Network node Compute nodeCompute node Uplink Router ü  外部接続を管理理 ü  VM収容ネットワーク (br-int) 毎に DHCP agent を起動 ü  L2 Agent により VM 収容ネットワー ク (br-int) を制御 Physical Network (*) pacemaker 等を用いたカスタマイズにより、ユーザでの Active/Standby 構成は可能 ü  Default gateway の⾃自動化は Uplink router の VRRP 等により確保 x  SPoF であり冗⻑⾧長化、スケールアウトは 標準機能では無し (*) x  複数  Network が存在する場合には Uplink Router への interface 追加等の Operation が必要 L2 bridging
  15. 15. Confidential L2  termination  と  L3+L2  termination 15   n L3  Termination ü OpenStack  システムは  Bridge  のみ存在する形式 ü L3  Termination  は  Network  node  で実施 br-int br-ext DCHP agent L2 Agentbr-int L2 agent L2 Agentbr-int Network node Compute nodeCompute node Uplink Router ü  外部接続を管理理 ü  テナント毎に L3 Agent, DHCP Agent を起動 ü  L2 Agent により VM 収容ネットワー ク (br-int) を制御 Physical Network (*) pacemaker 等を用いたカスタマイズにより、ユーザでの Active/Standby 構成は可能 x  SPoF であり冗⻑⾧長化、スケールアウトは 標準機能では無し (*) x  複数  Network が存在する場合には Uplink Router への interface 追加等の Operation が必要 x  ブリッジ間、テナント間通信は必ず Network node を経由するスター型L3 agent L3 agent ü  Tenant 毎に Network Namespace を起動 ü  Routing は Linux kernel の機能 L3 Routing
  16. 16. Confidential VLAN  mode  と  GRE  mode 16   n VLAN  mode ü VM収容ネットワーク毎に、物理理ネットワークに  VLAN  を割り 当て br-int br-ext DCHP agent L2 Agentbr-int L2 agent L2 Agentbr-int Network node Compute nodeCompute node Uplink Router ü  VM収容ネットワーク (br-int) 毎に VID を割 り当て Physical Network o  PerformanceはL2 switchingのみの為、良良い x  VMのMACを Physical Network で直接学習 x  Physical Network は L2 のみ x  VM収容ネットワークの数だけ、VIDを消費 x  VM収容ネットワーク増ごとに、Physical Network に VLAN 追加作業が必要 L3 agent L3 agent L3 Routing
  17. 17. Confidential VLAN  mode  と  GRE  mode 17   n GRE  mode ü VM収容ネットワーク通信では  GRE  を⽤用いる br-int br-ext DCHP agent L2 Agentbr-int L2 agent L2 Agentbr-int Network node Compute nodeCompute node Uplink Router ü  VM収容ネットワーク通信では GRE を ⽤用いる ü  L3 termination は GRE の外側   (Network node の L3 agent) での動 作となる Physical Network o  Physical Network は L3 でよい o  MAC/VID 等は L3 で隠蔽される為、 Physical Network のresourceを消費し ない x  Performance は GRE の  encap/ decap 分だけ VLAN mode より劣劣るL3 agent L3 agent L3 Routing
  18. 18. Confidential OVS  plugin  での問題点 n 冗⻑⾧長性 ü Network  node  が  SPoF  となる  (*) (*)  pacemaker  等を⽤用いたカスタマイズにより、ユーザでの  Active/Standby   構成は可能 n 性能 ü ルーティングを実施する際には必ず  Network  node  上の  L3   Agent  を経由する為、⼀一箇所で処理理するトラフィック量量が多い n 拡張性 ü Network  node  は基本的に  Single  node  となる為、スケールア ウト不不可 ü dnsmasq  がネットワーク毎に⽴立立ち上がったり、etc  ,  etc  … 18  
  19. 19. Confidential Juno  でちょこっと(?)かわるらしい 19   From: http://status.openstack.org/release/
  20. 20. Confidential neutron-‐‑‒ovs-‐‑‒dvr 20   n すごく⼤大雑把なまとめ ü Compute  node  にも  l3-‐‑‒agent  を配置 ü Compute  to  Compute  の通信で  Network  node  を経由せず に通信 br-int br-ext DCHP agent L2 Agentbr-int L2 agent L2 Agentbr-int Network node Compute nodeCompute node Uplink Router Physical Network L3 agent L3 agent L3 Routing L3 agent L3 agent New Network node の L3- agent を経由 Compute 同⼠士で直接 やりとり Current DVR New
  21. 21. Confidential l3-‐‑‒agent  high  availability 21   n すごく⼤大雑把なまとめ ü keepalived  +  conntrackd  で  VRRP  による  l3-‐‑‒agent  の冗⻑⾧長 化を実現 https://wiki.openstack.org/wiki/Neutron/L3_High_Availability_VRRP
  22. 22. Confidential OVS  plugin  での問題点がJunoでは n 冗⻑⾧長性 ü Network  node  が  SPoF  となる ü Active-‐‑‒Standby  のHA構成が標準機能にある程度度組込まれる  (?) n 性能 ü ルーティングを実施する際には必ず  Network  node  上の  L3   Agent  を経由する為、⼀一箇所で処理理するトラフィック量量が多い ü DVR  により  Compute  間の通信がある程度度最適化される  (?) n 拡張性 ü Network  node  は基本的に  Single  node  となる為、スケールアウ ト不不可 ü dnsmasq  がネットワーク毎に⽴立立ち上がったり、etc  ,  etc  … 22  
  23. 23. Confidential 23  Photo  Credit:  Micky  Aldridge    via  flickr  cc MidoNet   の場合
  24. 24. Confidential サポート機能 24   ü  仮想分散スイッチングによるアイソレーションとパス最適化 ü  L2  Gatewayによる外部  VLAN  ネットワークとの接続L2 ü  仮想分散ルーティングによるアイソレーションとパス最適化L3 ü  L2/L3  同様の仮想分散構造による  L4ロードバランシングL4 ü  DHCPによるFloating  IP⾃自動割り当て ü  L2  Gateway  を経由した外部アプライアンスとの連携運⽤用性 ü  BGP接続による外部とのActive-‐‑‒Active冗⻑⾧長接続 ü  Single  Point  of  Failure  の存在しない分散システム信頼性 ü  OpenStack  連携 ü  Restful  API  マネジメント ü  Security  Rule  による  L4  フィルタリングセキュリティ ü  BGP接続による上位接続の任意本数への拡張 ü  オーバレイ接続により  L2,  L3双⽅方の上位接続をサポートし、 スケールアウトが容易易 拡張性
  25. 25. Confidential 25   ん、なんだか  OVS  plugin  でも結構カ バーされている気がする…?
  26. 26. Confidential アーキテクチャ  【概要編】 26   VM The  InternetvPort vPort vPort vPort VM VM vPort vPort VM VM vPort Tenant  A Router Tenant  A Bridge  1 Tenant  A Bridge  2 Tenant  B Bridge  1 Tenant  B Router Virtual  Topology  (Overlay) BGP  uplink エッジオーバレイによる 仮想ネットワークを構築 Provider Router The  Internet VM MidoNet Compute VM MidoNet Compute VM MidoNet Compute MidoNet Gateway MidoNet Gateway Back  end  Network Network   State  Node NW  State DBNW  State DBNW  State DB Physical  Topology  (Underlay) BGP  uplink API  Node Cloud  Mgmt  System Only   requirement   is  an  IP   reachability!
  27. 27. Confidential エッジオーバレイ 27   仮想スイッチ   VM VM VM 仮想スイッチ   VM VM VM ToR ToR 物 理 テナント   ルータ   ブリッジ   集約   ルータ   VM VM 仮 想 VMの仮想ポートを境界として物理理トポロジ上に IaaS  ⽤用の仮想トポロジを構築  (  Overlay  )
  28. 28. Confidential 28   ん、なんだか  Juno  の  OVS  plugin  の   GRE  +  L3  Termination  でも出来る気 がする…?
  29. 29. Confidential 29   わかりにくいところもあるけど、 やっぱり触ってみると違います。。。
  30. 30. Confidential MidoNet  構成要素編 30   The  Internet VM MidoNet Compute  Node VM MidoNet Compute  Node VM MidoNet Compute  Node MidoNet Gateway  Node MidoNet Gateway  Node Back-‐‑‒end  Network Network   State  Node NW  State DBNW  State DBNW  State DB MidoNet  の構成要素 BGP  uplink API  Node Cloud  Mgmt  System ホストOS上のOVS  kernel  module Data  path ホストOSで動作するプロセス。 NSDBからオンデマンドで必要な情報 をダウンロードしトポロジエミュレー ションを実施。 結果を  Data  path  にプログラミング。 Agent Zookeeper,  Cassandra  を使⽤用 トポロジ情報、IP-‐‑‒MAC  table、接続 ホスト情報等の全てを持つ 「コントローラ」ではなく「DB」。 プッシュ配信を極⼒力力⾏行行わない NSDB
  31. 31. Confidential Gateway Compute  Node 実装要素の⽐比較 31   L2  Agent OVS  plugin  agent ovs-‐‑‒vswitchd iptables ovs  kernel  module L3  Agent dnsmasq Metadata  Agent DHCP  Agent NetworkNamespace ユーザプロセス それ以外の機構 凡例例 L2  Agent OVS  plugin  agent ovs-‐‑‒vswitchd iptables ovs  kernel  module ovs  kernel  module MidoNet  Agent NetworkNamespace MidoNet  Agent ovs  kernel  module bgpd  (quagga) Compute  Node Network  Node Metadata  Agent DHCP  Agent どこかにひとつ OVS  plugin   MidoNet テナントの数だ け増えます サブネットの数 だけ増えます MidoNet  Agent   がまとめて⾯面倒 みます
  32. 32. Confidential 32   書いてておもったけど、関連プロセス減 るだけでもオペレータにもメリットじゃ なかろうか…
  33. 33. Confidential ユーザ事例例でみる  OVS  plugin  と MidoNet  の違い 33  
  34. 34. Confidential とある国内  MSP  の場合 34   MSP  …  マネジメントサービスプロバイダ OpenStack  +  KVM  を利利⽤用した プライベートクラウドへの適⽤用 適⽤用領領域 … 顧客A向けクラウド ネットワーク … 顧客A向けクラウド ネットワーク … 顧客A向けクラウド ネットワーク … 顧客Z向けクラウド ネットワーク … OpenStack+MidoNet   のシステムを 顧客ごとに構築
  35. 35. Confidential とある国内  MSP  の場合 35   Why  MidoNet  ?  >  Answer OpenStack  Default  の  OVS  plugin  と⽐比較して、 より⾼高い拡張性  &  冗⻑⾧長性を提供 br-‐‑‒int br-‐‑‒ext DCHP  agent L2  Agentbr-‐‑‒int L2  agent L2  Agentbr-‐‑‒int Network  Node ComputeCompute Physical  Network L3  agent L3  agent Static  Routing External  Network Network  Node  はサーバクラ スタリングにより  Active-‐‑‒ Standby  の  1:1  バックアッ プのみサポート br-‐‑‒int br-‐‑‒ext DCHP  agent L2  agent L3  agent L3  agent Active Standby Default  OVS  plugin Physical  Network BGP Gateway ComputeCompute External  Network スケールアウト MidoNet  Gateway  は  BGP   Peer  により、Active-‐‑‒Active   のバックアップとスケールア ウトを可能に MidoNet  +  OpenStack
  36. 36. Confidential システムZ 向け テナント システムB 向け テナント システムA 向け テナント とある国内  エンタープライズの場合 36   ネットワーク OpenStack  +  KVM  を利利⽤用した⾃自社サービス⽤用基 盤への適⽤用 適⽤用領領域 VMVM VM VM VMVM VM VM…
  37. 37. Confidential とある国内  エンタープライズの場合 37   Why  MidoNet  ?  >  Answer OpenStack  Neutron  のスキームでは制御できな い柔軟なネットワークポリシーの制御 システムY 向け テナント システムB 向け テナント システムA 向け テナント VMVM VM VM VMVM VM VM システムZ 向け テナント VM VM システムC 向け テナント VM VM テナントを⽤用途ごとにグループ化し、特定のテナント間でのみ 通信を可能とするポリシーを導⼊入 通信  OK  ! 通信  OK  !NG! Policy 1 Policy 2 …
  38. 38. Confidential MidoNet  updates 38  
  39. 39. Confidential 新機能:  分散  L4  ロードバランサ 39   Gateway 増設 論論理理トポロジ The Internet VM vPort vPort vPort vPort VM VM vPort vPort VM VM vPort Tenant Router Provider Router L4LB 物理理トポロジ VM Compute VM Compute VM Compute Gateway Gateway ü  新たに  Tenant  Router  に  L4  Load  Balancer  機能を追加 ü  通常の  L2,  L3  処理理同様に  Ingress  でのヘッダ書き換えルールによ る実装で  Load  Balancer  専⽤用ノードや  VM  は存在しない実装の為、 スケールアウト可能な  Load  Balancer 外部からの接続のロードバランシ ングは  Gateway ノードが処理理。 外部からの接続 クラウド内部からの接続のロード バランシングは通信元の  VM を 収容する  Compute が処理理 内部からの接続 The Internet Gateway ノードの増設により   LB機能もスケールアウト可能。 Back-end Network
  40. 40. Confidential 新機能:  Cumulus  OS  との連携 40   ü  Cumulus  OS  を搭載した物理理スイッチとの接続をサポート ü  VXLAN  で物理理スイッチと  MidoNet  Agent  搭載  Compute  との接続 をサポートし、物理理スイッチによる  Gateway  終端をサポート  ※ 2014Q3 VM MidoNet Compute  Node VM MidoNet Compute  Node VM MidoNet Compute  Node Back-‐‑‒end  Network Network   State  Node NW  State DBNW  State DBNW  State DB L2 API  Node Cloud  Mgmt  System 外部L2ネットワーク Cumulus  box  は  VTEP  と して動作し、Compute  と   VXLAN  トンネルで接続 クラウド外との接続を 物理理スイッチが終端 OVSDB   Protocol Zookeeper   connection
  41. 41. Confidential 新機能:  VXLAN+NIC  オフロード 41   ü  Mellanox  社の  CloudX  アーキテクチャと連携し、 ”RedHat  OpenStack  +  Mellanox  +  MidoNet” による統合ソリューションを提供 ü  MidoNet  はVXLANをサポートを加え、Mellanox  社製  VXLAN  オフ ロード  NIC  をサポート  ! 2014Q3 RedHat  Linux Midokura MidoNet + +
  42. 42. Confidential まとめ 42  
  43. 43. Confidential まとめ ü デフォルトの  OVS  plugin  も  Juno  あたりになると 結構がんばってます でも、やっぱり  Network  Node  がスケールアウトで きないのは結構しんどいかもしれないです ü MidoNet  では元来、分散システム指向なので、ス ケールアウト可能な  HA  構成の仕組みが元々あるん です ü L4LB  なんかの付加機能も分散システムでやってるん で、結構おもしろいですよ? 43  
  44. 44. Confidential Thank  you  !  

×