日本OpenStackユーザ会(Neutron deep dive)に参加してきた
第20回の日本OpenStackユーザ会(Neutron deep dive)に参加してきた際のメモです。 当日取ったメモなので荒いです。
日本仮想化技術さんのセミナーにも参加しました。 OpenStack最新情報セミナー@渋谷に参加してきた | komei.com
12/1 Openstackユーザ会 19:00~
http://connpass.com/event/9958/
↑中井さん資料はこちらにアップされています
Agenda
- 19:00 - 19:10 これまでのNeutron 中井 悦司
- 19:10 - 19:50 DVR 真壁 徹
- 20:00 - 20:40 L3-HA(VRRP) 織 学
- 20:40 - 21:20 Midonet 中井 悦司
- 21:20 - 21:30 Midonet OSS版に関するデモとコミュニティ紹介 杉原 智衛
Openstackの復習
たった10分で簡潔にわかりやすく説明。すごい。
※中井さん執筆のOpenstack入門を記事の下に紹介していますので是非読んでみてください(勝手に宣伝)P7にコンポーネントがわかりやすく書いてある
テナントのネットワークは家庭内LANをイメージしてみると良い。
L3機能はL3Agent、L2機能はL2Agent。
一番使われるのがOVSPlugin(標準プラグイン)。シンプル。 トンネルインタフェースが1対1で作成されるなど、大規模環境ではパッと見複雑。
icehouseまでは仮想ルータが1台のノードに集約されてしまう。 JunoからはHA(VRRP)とDVRに対応。後のセッションで説明あり。
P11、P12がわかりやすい。
どこにAgentがいるかはプラグインの実装次第
P14のよく見る図の最初は中井さんが作ったらしい。
OVSの内部のVLANはOVSが独自でアサインするので、内部と外部のVLANは変換処理が入っている。
ComputeNodeはOVSの裏にスイッチがいる。NetworkNodeは仮想ルータ(NAT&フィルタリング)
DVR
- DVRではHPが大きく貢献。発表はHPの真壁さん。
NetworkNodeの課題
- 単一障害点になる
- トラフィックフローが無駄
負荷的に無理
→ ComputeNodeへ分散配置したい
オープンソースPluginの利用率は高い Summit Parisのアンケート結果ではOVS、Nova-network、LinuxBridge、ML2
DVRとは
Network Nodeに集中していたL3処理をCompute Nodeで分散処理する
- Junoから
- ML2Plugin+OVS
- VXLANでもGREでも
- Non-DVRモードもある
DVRの正体
・L3
Linuxのnamespaces(テナント毎)+iptables(Node毎)
・L2
Openvswitch
br-int br-tunへDVR関連ルールを書き込む。DVR-MACアドレスを活用してフロー制御
L2 PopulationがARPテーブルへ他ノードVMのMACアドレスを登録
DVS設定方法
Neutron router-create --distributed=true
・l3_agent.ini
compute agent_mode = dvr
network agent_mode = dvr_snat
・ml2_conf.ini
mechanism_drivers = openvswitch,l2population
DVRのフロー
送信側ノードはIR(InternalRouter)を通る。受信側ノードはIRを通らないがローカルから受信したようになる
1.Defaul Gatewayへ送信。IR。
2.ARPテーブル見てDstMACをセット
3.VXLANの旅支度とDVR-MACの指定(オリジナルのsrc)
4.VNIを外す。内部VLANのタグを頭にくっつける。
5.br-intでDVR-MACを変換しIR-Bが送信したようにする
その他
Floating IPもDVR経由
SNATはNetworkNode経由になってしまう。。。技術的には可能だが、監査の観点とIP消費の観点で見送りとのこと。
DVRはComputeNodeにL3Agent+OVSAgentにDVR Logicが入る
DHCPAgentはNetworkNodeに残る。複数起動。
DVRRouterとHARouterは統合される予定(今は排他)
technical deptの返済 ○Neutron L3HA
L3HAはDVRより簡単です
仮想ルータはどこか一つのノード上で起動する
HA機能が出てくるまで
allow_automatic_l3agent_failover=ture
Juno以降、フェイルオーバーに時間がかかるeNovance(別リポジトリ)
Grizzly以降で使用可能。これも時間かかるPacemacker
大変
L3HAの仕組み
keepaliveddです
RPCレイヤーから独立
VRRPハートビートネットワークを作成 neutorn router-createするとハートビート用のネットワークできる。テナントで一つ。
HAはVLANでもいける
br0intにha-XXXというポートができる。そこでハートビート。
qrouter-xxxのNamespaceでKeepalivedが動く
8bit制約の256個まで。
セッションは引き継がない
DVRとは排他
XXaasと統合は現時点で未サポート
L3HAの改良予定
- どれがマスターかわかりにくい
- 手動フェイルオーバー
- L2population
L3HA マスターの確認方法
ip listでVIPがついているもの
/var/lib/neutron/ha_confs/xxxの中身 タイミングで両方マスターに見える(??)
non-HA構成で作ったルータをHA構成に変更できるか? → マニュアル通りできなかった
Midonetの話
Openflowプロトコルは使っていない
フローテーブルは使用する。Midonetエージェントが直接書き換え。
GREでデモ。
OVSの場合、大量にトンネル用のポートができる。
mm-dpctlとかの紹介
neutronからすると管理サーバがDHCP Agent L3Agent L2Agent全部やっているように見える
ComputeNodeを出た時点でFloatingIPにNATされている。midonetのNWに入った時にAgentが処理
zkdumpを打ってみるとよいかも
tunnel idはいつ作られるの? →VMが作られたとき。どこにいてどのIPに送るかを決めて付与
Midokuraオープンソースになったよ
- Midonetがオープンソースになったよ
- Midostackの紹介
最後に
- OpenstackSummitは有償だけど意義がある!
スピーカーやコントリビュータになれば無償参加できる。
UpstreamTraining
Openstack Days Tokyo 2015
次回の勉強会はNeutronとかコンテナ系も検討
シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。
オープンソース・クラウド基盤 OpenStack入門 構築・利用方法から内部構造の理解まで
- 作者: 中井悦司,中島倫明
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2014/05/31
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: Ken Pepple
- 出版社/メーカー: O'Reilly Media
- 発売日: 2011/07/25
- メディア: Kindle版
- この商品を含むブログを見る