キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
555
閲覧回数
5
いいね!
0
コメント
yemura
Cisco Employee
Cisco Employee

 

 

はじめに

NSO 5.7 では、HA クラスタにスプリットブレイン対策が実装されました。
これまでの NSO の HA クラスタでは、アクティブなプライマリノードとスタンバイノード間のネットワーク通信が遮断されると、スタンバイノードはプライマリノードに障害が発生したと見なしてアクティブノードに昇格しました。
この時、障害の発生ポイントが両ノード間のネットワーク通信のみで、実際にはプライマリノードは正常に稼働していた場合、両ノードがそれぞれアクティブノードとして稼働し、ノード間の CDB の一貫性が保たれなくなる状態、すなわちスプリットブレイン状態となることがありました。
NSO 5.7 の HA クラスタでは、ルールベースのコンセンサスアルゴリズムにより、スプリットブレイン状態を回避する機能が追加実装されています。

 

  

クラスタの構成

NSO 5.7 の HA クラスタは、3 台のノードで構成され、それぞれ以下の役割を持ちます。
(2 ノード構成とすることも可能です。末尾の補足をご確認ください。)

 

Nominal master

プライマリノードに相当します。通常運用状態ではこのノードがアクティブノードになります。

 

Failover master

スタンバイノードに相当します。プライマリノードとのネットワーク通信が遮断されると、このノードがアクティブノードに昇格します。

 

Perpetual slave

一般的なフェールオーバークラスターにおけるクォーラムの機能を持ちます。
 

構成例

以下の例では、 nominal master (n1)、failover master (n2)、perpetual slave (n3) の 3 台の NSO サーバーで構成された HA クラスタを示します。

 

admin@ncs% show high-availability 
ha-node n1 {
    address      192.168.0.1;
    nominal-role master;
}
ha-node n2 {
    address         192.168.0.2;
    nominal-role    slave;
    failover-master true;
}
ha-node n3 {
    address      192.168.0.3;
    nominal-role slave;
}
settings {
    enable-failover true;
}
admin@ncs% set high-availability settings consensus enabled 
admin@ncs% show high-availability settings consensus | details 
enabled;
algorithm rule-based;
admin@ncs% commit
Commit complete.

 

 

クラスタの動作

正常運用時

正常運用時、show high-availability コマンドで各ノードの状態を確認すると、以下のような出力となります。
high-availability status mode が、nominal master n1 でのみ master と表示されている点にご留意ください。
 
$ ssh –p2024 –ladmin 192.168.0.1
admin@n1> show high-availability
high-availability enabled
high-availability status mode master
high-availability status current-id n1
high-availability status assigned-role master
high-availability status read-only-mode false
ID  ADDRESS    
---------------
n2  192.168.0.2 
n3  192.168.0.3 

$ ssh -p2024 –ladmin 192.168.0.2
admin@n2> show high-availability
high-availability enabled
high-availability status mode slave
high-availability status current-id n2
high-availability status assigned-role slave
high-availability status be-slave-result initialized
high-availability status master-id n1
high-availability status read-only-mode false

$ ssh –p2024 –ladmin 192.168.0.3
admin@n3> show high-availability
high-availability enabled
high-availability status mode slave
high-availability status current-id n3
high-availability status assigned-role slave
high-availability status be-slave-result initialized
high-availability status master-id n1
high-availability status read-only-mode false

 

Nominal master との疎通が遮断された時

Nominal master n1 との疎通が遮断された場合、failover master n2 がアクティブに昇格します。
high-availability status mode が、failover master n2 で master と表示されている点にご留意ください。
 
$ ssh –ladmin 192.168.0.1
admin@n1$ sudo systemctl stop ncs
admin@n1$

$ ssh –p2024 –ladmin 192.168.0.2
admin@n2> show high-availability 
high-availability enabled
high-availability status mode master
high-availability status current-id n2
high-availability status assigned-role master
high-availability status read-only-mode false
ID  ADDRESS    
---------------
n3  192.168.0.3 

$ ssh –p2024 –ladmin 192.168.0.3
admin@n3> show high-availability 
high-availability enabled
high-availability status mode slave
high-availability status current-id n3
high-availability status assigned-role slave
high-availability status be-slave-result initialized
high-availability status master-id n2
high-availability status read-only-mode false

 

Nominal master、および Slave との疎通が遮断された時

Nominal master n1、および Slave n3 との疎通が遮断された場合、failover master n2 はアクティブに昇格しますが、CDB の変更ができないよう、ロックされます。
high-availability status read-only-mode が、true と表示されている点にご留意ください。
一般的に、n1、n3 2 台との接続が同時に遮断された場合、各サーバー間のネットワークに障害が発生した、つまり、スプリットブレイン状態となった可能性が高いと考えられます。
NSO 5.7 の HA クラスタは、このような方式によってスプリットブレイン状態を回避し、各ノード間の CDB の一貫性を担保するように実装されています。
 
$ ssh –ladmin 192.168.0.3
admin@n3$ sudo systemctl stop ncs
admin@n3$

$ ssh –p2024 –ladmin 192.168.0.2
admin@n2> show high-availability 
high-availability enabled
high-availability status mode master
high-availability status current-id n2
high-availability status assigned-role master
high-availability status read-only-mode true
 
この状態で、Slave n3 との疎通が回復すると、CDB のロックが解除され、failover master n2 は通常のアクティブノードに復帰します。
high-availability status read-only-mode が、false と表示されている点にご留意ください。
 
$ ssh –ladmin 192.168.0.3
admin@n3$ sudo systemctl start ncs
admin@n3$

$ ssh –p2024 –ladmin 192.168.0.2
admin@n2> show high-availability 
high-availability enabled
high-availability status mode master
high-availability status current-id n2
high-availability status assigned-role master
high-availability status read-only-mode false
ID  ADDRESS    
---------------
n3  192.168.0.3 

$ ssh –p2024 –ladmin 192.168.0.3
admin@n3> show high-availability 
high-availability enabled
high-availability status mode slave
high-availability status current-id n3
high-availability status assigned-role slave
high-availability status be-slave-result initialized
high-availability status master-id n2
high-availability status read-only-mode false

 

 

補足

本稿の例では、slave n3 を含む 3 ノードクラスタをご紹介しましたが、n3 を配置せず 2 ノード構成とすることも可能です。
この場合、failover master n2 は、n1 とのネットワークが遮断されるとアクティブに昇格しますが、CDB の変更ができないよう、ロックされたままの状態となります。
CDB のロックは、/high-availability/read-only アクションで mode を false に変更することで、手動で解除することができます。
詳細に関しましては、NSO 5.7 Administration Guide のセクション NSO built-in HA をご参照ください。
Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします