OpenContrail tech doc in Japanese
1.Routing architecture and implementation
2.Service chaining architecture and implementation
3.Neutron router with OpenContrail
4.HA walk
30. ContrailControllerのHighAvailability
•RESTAPI Server
•IPアドレス/サーバ冗長が必要
•IF-MAP Server
•サーバ冗長が必要
•Schema Transformer
•サーバ冗長が必要
•Service Monitor
•サーバ冗長が必要
•DiscoveryServer
•IPアドレス/サーバ冗長が必要
•RabbitMQ
•IPアドレス/クラスター化が必要
ConfigNodeの構成
HA proxy
HA proxyKeepalived
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Discovery Server
Service Monitor
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Discovery Server
Service Monitor
Control Node
Control Node
31. ContrailのHighAvailability
•REST APIにデータを送信
•HA ProxyはREST API Serverに データを送信
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
32. ContrailのHighAvailability
•データの保存
•Cassandraにデータを保存
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
33. ContrailのHighAvailability
•RabbitMQにメッセージを送信
•NotificationMessageを送信する
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
34. ContrailのHighAvailability
•クラスタにMSGをコピー
•RabbitMQクラスタ内にメッセージ をコピー
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
35. ContrailのHighAvailability
•MSGを取得
•REST API ServerはRabbitMQか らNotificationMessageを取得
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
36. ContrailのHighAvailability
•データを取得
•Cassandraから先ほど保存した データを取得
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
37. ContrailのHighAvailability
•IF-MAP Serverへデータ送信
•IF-MAP Serverはデータをメモリ 上に保存
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
38. ContrailのHighAvailability
•SchemaTransformerがデータ を取得
•ActiveなSchemaTransformerは IF-MAP Serverから処理するデー タを取得
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
39. ContrailのHighAvailability
•処理したデータをREST API Serverに送信
•HA Proxy 経由でREST APIServerにデータを送信
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
40. ContrailのHighAvailability
•データの保存
•Cassandraにデータを保存
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
41. ContrailのHighAvailability
•RabbitMQにメッセージを送信
•NotificationMessageを送信する
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
42. ContrailのHighAvailability
•クラスタにMSGをコピー
•RabbitMQクラスタ内にメッセージ をコピー
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
43. ContrailのHighAvailability
•MSGを取得
•REST API ServerはRabbitMQか らNotificationMessageを取得
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
44. ContrailのHighAvailability
•データを取得
•Cassandraから先ほど保存した データを取得
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
45. ContrailのHighAvailability
•IF-MAP Serverへデータ送信
•IF-MAP Serverはデータをメモリ 上に保存
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
46. ContrailのHighAvailability
•ControlNodeにデータを送信
•ControlNodeはIF-MAP Server からデータを受信
ConfigNodeの処理の流れ
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Control Node
Control Node
HA proxy
HA proxyKeepalived
47. ContrailのHighAvailability
•ServiceMoniterとSchemaTransformerはStandbyから Activeへ昇格
•HA Proxyはノードダウンを検地し、 対象サーバを切り離し
•ControlNodeは別のIF-MAP Serverに再接続
•REST-API ServerはCassandra のデータを確認し、処理中のデー タが残っている場合、再処理を行 う
ConfigNodeが障害になったら?
HA proxy
HA proxyKeepalived
Configuration Node1
REST API Server
Cassandrazookeeper
IF-MAPserver
RabbitMQ
Schema Transformer
Active
Discovery Server
Service Monitor
Configuration Node2
REST API Server
IF-MAPserver
RabbitMQ
Schema Transformer
Standby
Discovery Server
Service Monitor
Control Node
Control Node
Activeに昇格
Downになった サーバを切り離し
接続変更
DB整合性 確認