(2016年時点での内容をアーカイブとして掲載しているため、一部の掲載内容が最新情報とは異なる場合がありますので、ご了承ください。最新のIBM Cloudの情報は IBM Cloud Docs や IBM Cloud アップデート情報 、柔らか層本をご参照ください。)
概要
専用ロードバランサー(Citrix NetScaler)は機器を2重化することで、一方に障害が起きても、もう一方にロードバランサー機能を引き継ぐHigh Availability機能を利用できます。 ここではNetScalerを2重化するための手順と、High Avilability設定、そして障害発生時の動作を解説します。
NetScalerのHA構成概要
NetScalerを2台用意し、High Availability設定を行うことで、可用性を高めることができます。 2台のNetScalerがお互いに死活監視を行い、障害を検知した際に一方が処理を引き継ぐことでサービスが継続されます。 NetScalerのHigh Availability機能はアクティブ・スタンバイ方式で構成され、アクティブとなるNetScalerをプライマリ・ノード、スタンバイとなるNetScalerをセカンダリ・ノードと呼びます。 High Availability設定を行うと、プライマリ・ノードの設定情報がセカンダリ・ノードに同期されます。 また、ハートビート・パケットを用いて、相互監視を開始します。 普段はプライマリ・ノードがバランシングなどの処理を行いますが、プライマリ・ノードの応答がなくなるとセカンダリ・ノードがVIPを引き継ぐことで、サービスを継続します。
2重化のためにNetScalerを注文するには
NetScalerを2重化するためには、同一のスペックのNetScalerを2台準備する必要があります。 3.3.2 専用ロードバランサーを使うには?を参考に、2台のNetScalerの注文をします。 2台のNetScalerとバランシングを行うサーバーが同じデータセンター内の同じVLANに所属している必要があるので、「Backend VLAN」と「Frontend VLAN」をそれぞれに合わせて注文をします。
注文済みのNetScalerがどのVLANに所属しているかを確認するには、カスタマーポータルのデバイスの一覧の画面から確認したいNetScalerの「Detail」をクリックします。
「VLAN」という項目の右側にVLAN名が記載されています。 以下の画面ではこのNetScalerはdal01.fcr05.2219というVLANに所属していることが分ります。
2台のNetScalerの注文が完了すると、High Availabilityの設定の準備は完了です。 ここでは、
プライマリ・ノード:10.37.152.4(ローカルIP)
セカンダリ・ノード:10.37.152.6(ローカルIP)
として設定していきます。
High Availabilityの設定方法
プライマリ・ノードとなるNetScalerの管理画面から、セカンダリ・ノードとしたいNetScalerのIPアドレスや認証情報を登録することで、High Availabilityの設定を行います。 VPN経由でプライマリ・ノードとしたいNetScalerの管理画面( http://10.37.152.4 )へログインし、「System」->「High Availability」をクリックします。
「Add...」ボタンをクリックして、セカンダリ・ノードとして登録するNetScaler( 10.37.152.6 )のIPアドレスとログイン情報を入力します。
セカンダリ・ノードが正常に認識されると、ノードの一覧に表示されます。 「Mater State」のステータスを見ると、10.37.152.4のノードが「Primary」、10.37.152.6のノードが「Secondary」となっていることが分ります。
以上で2重化の設定は完了です。 2重化の設定が完了した時点で、プライマリ・ノードの設定がセカンダリ・ノードに同期され、これ以降プライマリ・ノードに対して行った設定は、自動的にセカンダリ・ノードにも同期されます。 パスワードもプライマリ・ノードと同じものに変更されますのでご注意願います。 また、セカンダリ・ノードの管理画面で設定変更を行ってもプライマリ・ノードには反映されません。
あとは、3.3.2 専用ロードバランサーを使うには?を参考に、バランシング設定を行います。 プライマリ・ノードの設定画面から通常と同じようにバランシング設定を行うことで、セカンダリ・ノードへも自動的に設定が反映されます。 サービス用IPアドレス(VIP)は、注文時にプライマリ・ノードに割り当てられたIPアドレスを使用します。
障害発生時の動作
プライマリ・ノードの障害を検知するとセカンダリ・ノードがサービス用IPアドレスを引き継ぎ、サービスを継続することができます。 プライマリ・ノードを再起動させた際にどの程度ダウンタイムが発生するかをhttpingコマンドで計測しています。 数秒以内にセカンダリ・ノードへサービス用IPアドレスが引き継がれてサービスが継続していることが分ります。
[admin@step ~]$ httping http://173.193.8.165/
PING 173.193.8.165:80 (/):
connected to 173.193.8.165:80 (269 bytes), seq=0 time=279.73 ms
connected to 173.193.8.165:80 (269 bytes), seq=1 time=295.86 ms
connected to 173.193.8.165:80 (269 bytes), seq=2 time=294.72 ms
connected to 173.193.8.165:80 (269 bytes), seq=3 time=282.99 ms
connected to 173.193.8.165:80 (269 bytes), seq=4 time=272.89 ms
connected to 173.193.8.165:80 (269 bytes), seq=5 time=294.65 ms
connected to 173.193.8.165:80 (269 bytes), seq=6 time=295.04 ms
connected to 173.193.8.165:80 (269 bytes), seq=7 time=284.97 ms
connected to 173.193.8.165:80 (269 bytes), seq=8 time=3299.88 ms <-切り替え発生
connected to 173.193.8.165:80 (269 bytes), seq=9 time=289.94 ms
connected to 173.193.8.165:80 (269 bytes), seq=10 time=299.58 ms
connected to 173.193.8.165:80 (269 bytes), seq=11 time=273.04 ms
障害だと認識されたノードは、以下のように各ステータスがUNKNOWNと表示されます。
障害となったプライマリ・ノードが復旧した際には、セカンダリとして認識され、自動的にプライマリには戻りません。 「Force Failover」を実行することで、任意のタイミングでプライマリへ昇格させることができます。 「Force Failover」の際にも、数秒のダウンタイムが発生します。
このように簡単な手順でNetScalerを2重化することができ、サービスの継続性を高めることができます。
参考情報
詳細なHAの仕様や設定方法については、Citrix社が提供しているマニュアルのご参照をお願いします。
NetScaler Documentation http://support.citrix.com/proddocs/topic/netscaler/ns-gen-netscaler-wrapper-con.html
Citrix NetScaler HA設定ガイド http://www.citrix.co.jp/products/pdf/NetScaler_HA_setting_guide_v1.pdf