Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ovnのソースを読む(これから読む) #2

Open
shun159 opened this issue Nov 22, 2016 · 0 comments
Open

ovnのソースを読む(これから読む) #2

shun159 opened this issue Nov 22, 2016 · 0 comments

Comments

@shun159
Copy link
Owner

shun159 commented Nov 22, 2016

ovn-controllerのソースを読む

はじめに

ovn-architecture。まずはこちらを読む。

                                    CMS
                                     |
                                     |
                         +-----------|-----------+
                         |           |           |
                         |     OVN/CMS Plugin    |
                         |           |           |
                         |           |           |
                         |   OVN Northbound DB   |
                         |           |           |
                         |           |           |
                         |       ovn-northd      |
                         |           |           |
                         +-----------|-----------+
                                     |
                                     |
                           +-------------------+
                           | OVN Southbound DB |
                           +-------------------+
                                     |
                                     |
                  +------------------+------------------+
                  |                  |                  |
    HV 1          |                  |    HV n          |
  +---------------|---------------+  .  +---------------|---------------+
  |               |               |  .  |               |               |
  |        ovn-controller         |  .  |        ovn-controller         |
  |         |          |          |  .  |         |          |          |
  |         |          |          |     |         |          |          |
  |  ovs-vswitchd   ovsdb-server  |     |  ovs-vswitchd   ovsdb-server  |
  |                               |     |                               |
  +-------------------------------+     +-------------------------------+
    1. OVN/CMS plugin: OVNのインターフェイスとなるCMSのプラグイン。OpenStackならNeutronのプラグインに当たる。
    1. OVN Northbound DB: CMSから入力されたデータを保存する。logical switch, router, aclなどの中間表現データがCMSプラグインから入力される。
    1. ovn-northd: OVN Nouthbound DB と OVN Southbound DBをつなぐ。Southbound DBとNorthboundDBとのデータ構造の相互変換の役割も担っている。
    1. OVN Southbound DB: このシステムの中心となる。どのようにして他のハイパーバイザーに到達するかを管理するPhysical Networkテーブル、論理ネットワークが論理フローで記述されている Logical Networkテーブル, 論理ネットワークコンポーネントと物理ネットワークを紐付ける Bindingで構成されている。ハイパーバイザーはPhysical NetoworkテーブルとPort Bindingテーブルへ、ovn-northdは Logical Networkテーブルにデータを格納していく。
    1. ovn-controller: ハイパーバイザーとゲートウエイごとに配置されるコントローラエージェント。Northbound側においては、OVN Southbound DBへ接続し、Physical NetworkとBindingテーブルから設定、状態などを取得する。Southbound側においては、ovs-vswitchdへopenflowコントローラとして接続し、ネットワークの制御を行う。
    1. ovs-vswitchd と ovsdb-server: 従前からovsにあるコンポーネント。

ovn-controllerのモジュール

  • binding: OVN southbound:Bindingテーブルの管理モジュール
  • chassis: OVN southbound:Chassisテーブルの管理モジュール
  • encaps: OVN southbound:Encapテーブルの管理モジュール
  • lflow: OVN southbound:LogicalFlowテーブルの管理モジュール
  • lport: OVN southbound:PortBindingテーブルの管理モジュール
  • ofctl: OpenFlowコントローラ.flow_table, group_table, tlv_table, ct_tableの管理モジュール
  • patch: 同一ハイパーバイザー内でのブリッジ間接続のためのpatch port管理
  • physical: OpenFlow アクションの組み立てるモジュール
  • pinctrl: Openflowのpacket_inハンドラモジュール
@shun159 shun159 changed the title ovnのソースを読む(初期化編) ovnのソースを読む Nov 22, 2016
@shun159 shun159 changed the title ovnのソースを読む ovnのソースを読む(これから読む) Nov 22, 2016
@shun159 shun159 changed the title ovnのソースを読む(これから読む) ovnのソースを読む(これから読む) Nov 22, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant