BIG-IP Active Standby構成のチューニング

スポンサーリンク

BIG-IPのActive/Standby構成で可用性をさらに向上させる方法をまとめます。筐体そのものが完全停止した場合はトラブルに発展する事は少ないですが、1つの物理線に障害が発生した時や中途半端に壊れた時は、切り替えるか否かを人間が予め設定しておく必要があります。

動作確認の構成

以下の構成で、可用性をさらに向上させる方法を考えます。

+----------------+                    +----------------+
| (RockyLinux84) |                    | (RockyLinux84) |
|    Client50    |                    |    Client51    |
|                |                    |                |
+-------+--------+                    +-------+--------+
 ens192 | .50       (vlan50 tagged)       .51 | ens192
        |           192.168.50.0/24           |
        +-------------------------------------+
        |                                     |
    1.2 | .101     (vlan100 untagged)    .101 | 1.2
+-------+--------+  192.168.100.0/24  +-------+--------+
|                | .1              .2 |                |
|     BIG-IP     +--------------------+     BIG-IP     |
|    (bigip01)   | .1.3          .1.3 |    (bigip02)   |
+-------+--------+                    +-------+--------+
    1.1 | .101      (vlan10 tagged)      .102 | 1.1
        |           192.168.10.0/24           |
        +-------------------------------------+
        |                                     |
 ens192 | .10                             .11 | ens192
+-------+--------+                    +-------+--------+
|                |                    |                |
|    Server10    |                    |    Server11    |
| (RockyLinux84) |                    | (RockyLinux84) |
+----------------+                    +----------------+

Failover Networkの冗長化

障害発生箇所

以下の構成でBIG-IP間の1.3のリンクで障害が発生したケースを考えます。ハートビート用の結線が1本しかない場合や二重障害含めて考慮対象とする場合は配慮が必要な障害発生パターンです。

+----------------+                    +----------------+
| (RockyLinux84) |                    | (RockyLinux84) |
|    Client50    |                    |    Client51    |
|                |                    |                |
+-------+--------+                    +-------+--------+
 ens192 | .50       (vlan50 tagged)       .51 | ens192
        |           192.168.50.0/24           |
        +-------------------------------------+
        |                                     |
    1.2 | .101     (vlan100 untagged)    .101 | 1.2
+-------+--------+  192.168.100.0/24  +-------+--------+
|                | .1              .2 |                |
|     BIG-IP     +--------  x  -------+     BIG-IP     |
|    (bigip01)   | .1.3          .1.3 |    (bigip02)   |
+-------+--------+                    +-------+--------+
    1.1 | .101      (vlan10 tagged)      .102 | 1.1
        |           192.168.10.0/24           |
        +-------------------------------------+
        |                                     |
 ens192 | .10                             .11 | ens192
+-------+--------+                    +-------+--------+
|                |                    |                |
|    Server10    |                    |    Server11    |
| (RockyLinux84) |                    | (RockyLinux84) |
+----------------+                    +----------------+

発生する問題

vCenterでbigip01の「接続中」のチェックボックスを外す事で障害を再現させます。

BIG-IP failover networkの冗長化 01

この障害が発生すると、Failover Networkを介して互いが疎通できない状態となるため、bigip01, bigip02のそれぞれがActiveを主張する「スプリットブレイン」と呼ばれる状態になります。

bigipの周囲の環境次第では全通信断となりかねない、ネットワーク担当者が一番気をつけなければならない障害発生パターンのひとつです。

以下スクリーンショットの通り、bigip01, bigip02の両者がactiveになっている事が分かります。

BIG-IP failover networkの冗長化 02

回避策

Failover Networkを複数設定する事で両方がActiveになるのを避ける事ができます。Failover Networkはマネジメントポートを使う事もできます。

それでは具体的に設定してみましょう。

「Device Management」「Devices」「Failover Network」の順に画面遷移し、「Create」を押下します。

BIG-IP failover networkの冗長化 03

「Address」に「Management Address」を入力し、「Finished」を押下します。

BIG-IP failover networkの冗長化 04

Failover Networkに2つの設定値が入力されている事を確認します。Failover Networkはconfig syncされない設定ですので、bigip01, bigip02の両方に設定を入れて下さい。

BIG-IP failover networkの冗長化 05

再度、BIG-IPの1.3に障害を発生させます。今度は、bigip02のみがActiveになっている事が読み取れます。

BIG-IP failover networkの冗長化 06

HA Group – Poolによる監視

障害発生箇所

以下の構成でBIG-IP間の1.2のリンクで障害が発生したケースを考えます。1.2に障害が発生してもBIG-IPは切り替わりが発生せず、依然としてbigip01はActiveのままになります。Internal(下記構成図ならば1.1)またはExternal(下記構成図ならば1.2)のいずれか片方に障害が発生した時に切り替わりが発生するようにするには、HA Groupと呼ばれる設定が必要です。

+----------------+                    +----------------+
| (RockyLinux84) |                    | (RockyLinux84) |
|    Client50    |                    |    Client51    |
|                |                    |                |
+-------+--------+                    +-------+--------+
 ens192 | .50       (vlan50 tagged)       .51 | ens192
        |           192.168.50.0/24           |
        +-------------------------------------+
                                              |
    1.2   .101     (vlan100 untagged)    .101 | 1.2
+-------x--------+  192.168.100.0/24  +-------+--------+
|                | .1              .2 |                |
|     BIG-IP     +--------------------+     BIG-IP     |
|    (bigip01)   | .1.3          .1.3 |    (bigip02)   |
+-------+--------+                    +-------+--------+
    1.1 | .101      (vlan10 tagged)      .102 | 1.1
        |           192.168.10.0/24           |
        +-------------------------------------+
        |                                     |
 ens192 | .10                             .11 | ens192
+-------+--------+                    +-------+--------+
|                |                    |                |
|    Server10    |                    |    Server11    |
| (RockyLinux84) |                    | (RockyLinux84) |
+----------------+                    +----------------+

HA Groupで監視できるのは、「LTM Pool」「trunk(Link Aggregation)」のいずれかです。仮想環境では「trunk(Link Aggregation)」の再現が難しいため、このページでは「LTM Pool」の方法のみを重点的に紹介します。

発生する問題

vCenterでbigip01の「接続中」のチェックボックスを外す事で障害を再現させます。

HA Group 擬似障害の発生 01

障害が発生してもbigip01がActiveのままである事が読み取れます。

HA Group 擬似障害の発生 02

回避策

Client50へping監視を行い、監視結果に応じてActive/Standbyを切り替えます。検証シナリオの都合上Client50への監視となっていますが、実践ではデフォルトゲートウェイなどを監視すると良いでしょう。

LTM Pool作成

「Local Traffic」「Pools」の順に画面遷移し、「Create」を押下します。

BIG-IP LTM Poolsの作成 01

「Name」には何か分かりやすい名前を入力します。「Health Monitors」は「gateway_icmp」を選びます。

BIG-IP LTM Poolsの作成 02

「New Members」の「Address」「Service Port」を入力し、「Add」を押下します。

BIG-IP LTM Poolsの作成 03

Membersにノードが追加された事を確認します。

BIG-IP LTM Poolsの作成 04

「Finished」を押下します。

BIG-IP LTM Poolsの作成 05

同様の操作を繰り返し、vlan10, vlan50の両方を監視します。

これをCLIで操作する場合は以下のようになります。

create ltm node 192.168.50.50 address 192.168.50.50
create ltm pool POOL_MONITOR_VLAN0050 members replace-all-with { 192.168.50.50:any } monitor gateway_icmp
create ltm node 192.168.10.10 address 192.168.10.10
create ltm pool POOL_MONITOR_VLAN0010 members replace-all-with { 192.168.10.10:any } monitor gateway_icmp

LTMの設定はActive/Standby間で同期される設定です。自動で同期しない設定にしている方は、手動で同期してください。

run cm config-sync to-group Device-Group-001 

設定後、ping監視に成功し、POOLがavailable状態である事を確認します。GUIならば、緑色で表示されている事を確認します。

BIG-IP LTM Poolsの作成 06

CLIで確認する場合は以下の通りです。

root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# show ltm pool POOL_MONITOR_VLAN0010 

--------------------------------------------------------------------------------
Ltm::Pool: POOL_MONITOR_VLAN0010                         
--------------------------------------------------------------------------------
Status                                                   
  Availability           : available                     
  State                  : enabled                       
  Reason                 : The pool is available         
  Monitor                : gateway_icmp                  
  Minimum Active Members : 0                             
  Priority Groups        : 0/0/0 (highest/current/lowest)
  Current Active Members : 1                             
  Available Members      : 1                             
  Total Members          : 1                             
  Total Requests         : 0                             
  Current Sessions       : 0                             
                                                         
Traffic                                                    ServerSide
  Bits In                                                           0
  Bits Out                                                          0
  Packets In                                                        0
  Packets Out                                                       0
  Current Connections                                               0
  Maximum Connections                                               0
  Total Connections                                                 0
                                                         
Connection Queue                                                 Pool  Pool and members
  Number of connections queued now                                  0                 0
  Number of connections serviced                                    0                 0
  Queue head entry age (ms)                                         0                 0
  Maximum queue entry age ever (ms)                                 0                 0
  Maximum queue entry age recently (ms)                             0                 0
  Average queue entry age (ms)                                      0                 0
                                                         
Message Routing Framework                                          In               Out
  Message                                                           0                 0
  Request                                                           0                 0
  Response                                                          0                 0

root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# 
root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# 
root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# 
root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# show ltm pool POOL_MONITOR_VLAN0050

--------------------------------------------------------------------------------
Ltm::Pool: POOL_MONITOR_VLAN0050                         
--------------------------------------------------------------------------------
Status                                                   
  Availability           : available                     
  State                  : enabled                       
  Reason                 : The pool is available         
  Monitor                : gateway_icmp                  
  Minimum Active Members : 0                             
  Priority Groups        : 0/0/0 (highest/current/lowest)
  Current Active Members : 1                             
  Available Members      : 1                             
  Total Members          : 1                             
  Total Requests         : 0                             
  Current Sessions       : 0                             
                                                         
Traffic                                                    ServerSide
  Bits In                                                           0
  Bits Out                                                          0
  Packets In                                                        0
  Packets Out                                                       0
  Current Connections                                               0
  Maximum Connections                                               0
  Total Connections                                                 0
                                                         
Connection Queue                                                 Pool  Pool and members
  Number of connections queued now                                  0                 0
  Number of connections serviced                                    0                 0
  Queue head entry age (ms)                                         0                 0
  Maximum queue entry age ever (ms)                                 0                 0
  Maximum queue entry age recently (ms)                             0                 0
  Average queue entry age (ms)                                      0                 0
                                                         
Message Routing Framework                                          In               Out
  Message                                                           0                 0
  Request                                                           0                 0
  Response                                                          0                 0

root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# 

HA Group Listの作成

「System」「High Availiability」「HA Group List」の順に画面遷移し、「Create」を押下します。

HA Group Listの作成 01

「HA Gropu Name」には何か分かりやすい名前を入力します。

HA Group Listの作成 02

「Pools」の「Add」を押下します。

HA Group Listの作成 03

「Pools」をプルダウンから選択し、HA Scoreの欄は10より大きい値を入力します。スクリーンショット上では HA Scoreは30としています。

以上の設定完了後、「Add」を押下します。

HA Group Listの作成 04

同様の操作を繰り返し、Poolを2つの状態にします。

HA Group ListはHA Scoreと呼ばれるスコアに基づいてActive/Standbyが決定されます。現在Activeとなっている機器にはActive Bonusとして10が加算されます。その他、前述のPoolsの設定により、Poolsがavailableの状態である時のみ30 x 2のスコアが加算されます。

HA Group Listの作成 05

以上の設定が完了したら、「Create HA Group」を押下します。なお、この設定はconfig syncで同期される設定ではないので、bigip01, bigip02の両方に設定を入れて下さい。

HA Group Listの作成 06

traffic groupの編集

「Device Management」「Traffic Groups」の順に画面遷移し、「traffic-gropu-1」を押下します。

traffic groupの編集 01

「HA Group」には先ほど作成したHA Groupをプルダウンから選びます。「Failover Method」は「Failover to Device With Best HA Score」に変更します。

traffic groupの編集 02

設定変更後、「Save」を押下します。

traffic groupの編集 03

障害発生時の挙動確認

障害発生前のHA Scoreを確認します。bigip01はActive Bounusが加算され70点で、bigip02はActive Bonusがないので60点になります。

[bigip01]
root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)# show sys ha-group

---------------------------
Sys::HA Group: HA-GROUP-001
---------------------------
State         enabled
Active Bonus       10
Score              60

root@(bigip01)(cfg-sync In Sync)(Active)(/Common)(tmos)#

[bigip02]
root@(bigip02)(cfg-sync In Sync)(Standby)(/Common)(tmos)# show sys ha-group 

---------------------------
Sys::HA Group: HA-GROUP-001
---------------------------
State         enabled
Active Bonus       10
Score              60

root@(bigip02)(cfg-sync In Sync)(Standby)(/Common)(tmos)# 

この状態でvCenterにて「接続中」のチェックを外し、擬似的に障害を発生させます。

BIG-IP 障害発生時の挙動確認 01

しばらく待つと、HA Groupの画面で監視NGとなっている事が読み取れ、さらにActive Standbyが切り替わっている事も読み取れます。

BIG-IP 障害発生時の挙動確認 02

HA Scoreを確認すると以下の通りです。

[bigip01]
root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)# show sys ha-group

---------------------------
Sys::HA Group: HA-GROUP-001
---------------------------
State         enabled
Active Bonus       10
Score               0

root@(bigip01)(cfg-sync In Sync)(Standby)(/Common)(tmos)#

[bigip02]
root@(bigip02)(cfg-sync In Sync)(Active)(/Common)(tmos)# show sys ha-group

---------------------------
Sys::HA Group: HA-GROUP-001
---------------------------
State         enabled
Active Bonus       10
Score              60

root@(bigip02)(cfg-sync In Sync)(Active)(/Common)(tmos)#
タイトルとURLをコピーしました