Synology High Availability (SHA):はじめに
Synology High Availabilityアーキテクチャ
Synology High Availabilityソリューションは、システム障害によるサービス中断を減らすために設計されたサーバー レイアウトです。これは、対応する2台のSynologyサーバーからなる、2台のサーバーを利用したハイ アベイラビリティ クラスター (HAクラスター) を構成するものです。ハイ アベイラビリティ クラスターが作成されると、1 台のサーバーがアクティブ サーバーとして機能し、もう 1 台は待機するパッシブ サーバーとして機能します。クラスターが正常に作成された後、動作を開始するには全データの複製が必要になります。
ハイ アベイラビリティ クラスターが作成されると、データはアクティブ サーバーからパッシブ サーバーに継続的に複製されます。アクティブ サーバー上の全ファイルがパッシブ サーバーにコピーされます。深刻な不具合が生じると、パッシブ サーバーがすべてのサービスを引き継ぎます。アクティブ サーバーの全データの複製イメージを備えたパッシブ サーバー上でハイ アベイラビリティ クラスターが引き続き通常どおりに機能するため、ダウンタイムが最小限に抑えられます。
ハードウェア コンポーネント
Synologyのハイ アベイラビリティ ソリューションでは、2 台のコンピューティング ストレージ システム (アクティブ サーバーとパッシブ サーバー) からなるクラスターが構成されます。各サーバーにはストレージ ボリュームが接続されており、2 台のサーバーはHeartbeat接続でリンクされ、サーバー ステータスが監視されます。Heartbeat接続により、この 2 台の間でデータを容易に複製できます。
図1:典型的なSynology High Availability (SHA) 導入の物理コンポーネント
- アクティブ サーバー:正常な状態では、サービスはすべてアクティブ サーバーで処理されます。深刻な不具合が発生すると、アクティブ サーバーはサービスのプロビジョニングを速やかにパッシブ サーバーに引き継ぎ、ダウンタイムの発生を回避します。
- パッシブ サーバー:正常な状態では、パッシブ サーバーはスタンバイ モードで控えており、アクティブ サーバーから複製されるデータ ストリームを絶えず受信します。
- クラスター接続:クライアントとハイ アベイラビリティ クラスターとの通信に使用される接続ネットワークです。クライアントに対するクラスター接続は、アクティブ サーバー向けが少なくとも 1 系統、パッシブ サーバー向けが少なくとも 1 系統あります。アクティブ サーバーとパッシブ サーバーの両方への通信を確保するために、クラスター接続はスイッチを経由する必要があります。
- Heartbeat接続:ハイ アベイラビリティ クラスターのアクティブ サーバーとパッシブ サーバーは、「Heartbeat」接続と呼ばれる専用のプライベート ネットワークで接続されています。クラスターが形成されると、Heartbeatによってアクティブ サーバーからパッシブ サーバーへのデータ複製が容易になります。また、パッシブ サーバーがアクティブ サーバーの存在を絶えず検出できるため、アクティブ サーバーの障害時に処理の引き継ぎができます。2 台のサーバーが 1 ミリ秒以内にPingに応答しなければなりません。また、通信速度は 500 Mbps以上でなければなりません。HAクラスターのパフォーマンスは、Heartbeat接続の応答時間と帯域に左右されます。
- メイン ストレージ:アクティブ サーバーのストレージ ボリュームです。
- スペア ストレージ:パッシブ サーバーのストレージ ボリュームです。メイン ストレージからHeartbeat接続経由で受信したデータを絶えず複製します。
ネットワーク インターフェイス
クラスター インターフェイス
2 台のサーバーを組み合わせてハイ アベイラビリティ クラスターにすると、仮想インターフェイス(一意のサーバー名とIPアドレス)が構成されます。この仮想インターフェイス(クラスター インターフェイス)により、クライアントは単一のネームスペースを使用してクラスター リソースにアクセスできます。そのため、スイッチオーバーが実行されてサービスのプロビジョニングがパッシブ サーバーに引き継がれても、データ ネットワークに存在するホストでネットワーク構成を変更する必要はありません。
クラスターを作成している間は、設定されるのはひとつのクラスターインターフェイスだけです。Synology High Availabilityのネットワークページで、さらにクラスターインターフェイスを追加することができます。クラスターインターフェイスのひとつがプライマリ クラスターインターフェイスとして設計されており、これはアクティブサーバーとパッシブサーバーの間の通信を担います。
図2:単一の仮想インターフェイスによるPCクライアントから Synology High Availability (SHA) クラスターへのアクセス
- クラスター サーバーの名前とIPアドレス:クラスター内のサーバーはIPアドレスとサーバー名を共有します。すべてのインスタンスにおいて、元のIPアドレスや個々のサーバー名ではなく、こちらを使用してください。
Heartbeatインターフェイス
Heartbeat接続は、アクティブ サーバーとパッシブ サーバーのHeartbeatインターフェイス上で確立され、アクティブ サーバーからパッシブ サーバーへのデータ複製(差分データを含む)や、リアルタイムの書き込み操作に使用されます。データはすべてブロックレベルで同期されて、アクティブ サーバーとパッシブ サーバーで同一データが保持されます。全データが常に最新の状態に維持されるため、スイッチオーバーを円滑に行えます。
Heartbeat IPアドレスは、クラスターの作成時に自動的に選択されます。
- システムは、Heartbeatインターフェイス用にランダムのIPアドレス (169.254.x.x) 選択します。
- 推奨ネットワーク構成:Heartbeat接続用に最速のネットワーク インターフェイスを選択すること、またはネットワーク インターフェイスの性能がクラスター接続のネットワーク インターフェイスと同じになるようにすることを推奨します。次の例を参照してください。
- どちらのサーバーにも 10 GbE ネットワーク インターフェイスが少なくとも 2 つある。この場合は、一方の 10 GbE インターフェイスを Heartbeat接続に使用し、もう一方をクラスター接続に使用することを推奨します。
- サーバー間に 10 GbE インターフェイスが 1 つしかない。この場合は、Heartbeat接続に使用してください。1 GbEネットワーク インターフェイスが複数ある場合は、クラスター接続にLink Aggregationをセットアップすることを推奨します。
- 10 GbEネットワーク インターフェイスがない場合は、Heartbeat接続とクラスター接続でネットワーク インターフェイスを共有させてください。
Link Aggregationを使用すると、帯域幅が広がり、接続がダウンした場合にトラフィックのフェールオーバーによってネットワーク接続を維持できます。Link Aggregationを、クラスター接続とHeartbeat接続のどちらにもセットアップすることを推奨します。Link Aggregationのセットアップは、ハイ アベイラビリティ クラスターの作成前に行う必要があります。HAクラスターの作成後は、リンクの構成を変更することはできません。また、Heartbeat接続用にどのタイプのLink Aggregationを選択していても、SHAを作成すると自動的にラウンドロビンに設定されます。
ネットワークのシナリオ
スイッチオーバーが実行されたときにデータ ネットワーク上の全ホストが接続をパッシブ サーバーに円滑に切り替えられるように、データ ネットワークからアクティブ サーバーとパッシブ サーバーへの物理ネットワーク接続を適切に構成する必要があります。次のセクションでは、さまざまな状況やSynology NASモデルに応じた構成について説明します。
LANポートを2個もつSynology NAS向けのネットワーク構成
各サーバーにネットワーク ポートが2個しかない場合は、そのうち1個のネットワーク ポートがHeartbeat接続に使用されるため、HA クラスターとデータ ネットワークの接続に使用できるポートは1個だけです。データ ネットワーク上のホストとHAクラスターとの間に冗長パスを導入しようにも、ネットワーク ポートが足りません。それでもなお、ホストとデータ ネットワークを接続するパスを複数使用すること、およびデータ ネットワークでスイッチを複数使用して冗長性を持たせることが推奨されます。
Synology High Availability (SHA) には、アクティブ サーバーでネットワーク障害が検出された場合にスイッチオーバーを実行するオプションがあります。このオプションが有効化されていると、アクティブ サーバーに接続されているスイッチとの間で接続障害が発生した場合、またはスイッチで障害が発生した場合に、パッシブ サーバーへの切り替えが行われ、サービス継続性が維持されます(パッシブ サーバーのネットワーク接続が正常であることが前提)。
図3:LANポートが2個あるモデルのハイ アベイラビリティ クラスター ネットワーク構成
LANポートが4個以上のSynology NAS向けのネットワーク構成
ハイ アベイラビリティ環境を構築する最良の方法は、Synology NASを少なくとも4つのネットワーク ポートで使用することです。この方法では、ホストとHAクラスターを複数のパスで接続できるため、プライマリ パスで障害が発生した場合の冗長フェイルオーバー パスが確保されます。さらに、データ ネットワークと各クラスター サーバーとのI/O接続を複数のポートで接続でき、全接続が正常であれば負荷分散機能が実現します。
Heartbeat接続のパス冗長性
ネットワーク ポートが4個以上あるSynology NASモデルでは、Link Aggregation を Heartbeat接続に実装してフェールオーバー冗長性と負荷分散を実現できます。この機能に接続間の切り替えは不要です。
図4:LANポートが4個以上あるモデルのハイ アベイラビリティ クラスター ネットワーク構成(NAS)
ネットワークのトラブルシューティング
- 最大転送単位(MTU)および仮想 LAN(VLAN)ID は、Synology NASとスイッチ/ルーターとで同一でなければなりません。例えば、DS/RSのMTUが 9000 の場合は、対応するスイッチ/ルーターがこのサイズまで測定できることを確認してください。
- Heartbeat接続がスイッチ/ルーターを経由する場合は、フラグメンテーションとJumbo Frame (MTU値: 9000) を実行できることも必要です。
- ファイアウォール設定が、DSMおよびSHA用ポートをブロックしない設定になっていることを確認してください。
- アクティブ/パッシブ サーバーのIPアドレスとHAクラスターのIPアドレスが同一サブネットに属していることを確認してください。
- バインド後にインターネットが不安定な場合(Pingの速度が低下、またはインターネットが低速):
- 別のスイッチ/ルーターとの接続を試すか、独立のスイッチ/ルーターをDS/RSおよびPC/クライアントと接続するテストを行ってください。
- スイッチ/ルーターでのフロー制御設定が、ネットワークにおけるパケット喪失を引き起こすこともあります。設定がDS/RSと一致していることを確認してください。通常は、自動検出です。また、対応するスイッチ/ルーターの設定と同一構成であることを確認してください。不一致が見られる場合は、フロー制御を手動で有効/無効にすることを推奨します。
- プロキシ設定で [ローカル アドレスはプロキシ サーバーを通らない] が有効になっていることを確認してください。
データ複製
ハイ アベイラビリティ クラスター内では、内蔵ドライブまたは拡張ユニット上に正常に保存されている全データ(メモリに残っているデータを除く)が複製されます。そのため、サービスがアクティブ サーバーからパッシブ サーバーに切り替わっても、データの喪失は生じません。
データの複製は継続的な処理ですが、ハイ アベイラビリティ クラスターの形成と運用という 2 つのフェーズに明確に分けられます。
- フェイズ1:クラスター作成時の初期データ複製、またはパッシブ サーバーとの接続が一定期間の切断(メンテナンスのためにパッシブ サーバーのスイッチが切られた場合など)の後に再開されたときの差分データの複製。
このフェーズでは、初期同期が完了していないため、スイッチオーバーを実行できません。この初期複製中にアクティブ サーバーでなされたデータ変更も同期の対象になります。 - フェイズ2:初期同期完了後のリアルタイムでのデータ複製。初期同期後、データはすべてリアルタイムで複製され、正常にコピーされた場合はコミット済みとして扱われます。このフェーズでは、スイッチオーバーはいつでも実行できます。
どちらのデータ複製フェーズでも、データの同期はすべてブロックレベルで行われます。例えば、10 GBのファイルを書き込んでいる場合、同期とコミットはブロックレベルの操作に分割され、アクティブ サーバーとパッシブ サーバーに同一データが保持されていることがブロック単位で確認されます。全データが常に最新の状態に維持されるため、スイッチオーバーを円滑に行えます。
複製されるデータと変更は次のとおりです。
- NASデータ サービス:CIFS/NFS/AFPを含むすべてのファイル サービスが対象。
- iSCSIデータ サービス:ハイ アベイラビリティ クラスタリング処理は、iSCSI LUNサービスやiSCSI TargetサービスなどのiSCSIに対応。
- DSMサービスおよびその他のサービス:Synology DiskStation Manager (DSM) およびそれに付随するその他のサービスや一部のアドオン パッケージ (Mail Server、Synology Directory Serverなど) といった管理アプリケーションも、すべての設定とサービス ステータスを含めて対象となります。
特別な条件
スプリットブレイン エラー
HA クラスターが正常に機能しているときには、メンバー サーバーのうちの1台だけがアクティブ サーバーとして機能します。この場合、パッシブ サーバーがHeartbeat接続とプライマリクラスター接続の両方からアクティブ サーバーの存在を検出します。
Heartbeat接続とプライマリ クラスター接続が失われると、どちらのサーバーもアクティブ サーバーの役目を引き受けようとします。このような状態を、スプリットブレインエラーと呼びます。この場合は、HAクラスターのIPアドレスへの接続は、2台のサーバーのいずれかに転送され、整合性の取れないデータは更新されるか、2台のサーバーに上書きされます。
Heartbeat接続またはプライマリ クラスター接続のいずれかが再接続されると、2台のサーバー間でスプリットブレイン エラーとデータの不整合が検出され、システムは、ハイアベイラビリティ セーフ モードに入ります。
ここで、クォーラム サーバーがスプリットブレイン エラーの緩和に役立ちます。アクティブ サーバーとパッシブ サーバーの両方に、別のサーバーをクォーラム サーバーとして割り当てることができます。たとえば、ゲートウェイ サーバーやDNSサーバーが、どちらも常時接続されているため適しています。
クォーラム サーバーがあると、次のような状況に対応できます。
- パッシブ サーバーがアクティブ サーバーにもクォーラム サーバーにも接続できない場合。スプリットブレイン エラーを回避するために、フェールオーバーは実行されません。
- クォーラム サーバーにアクティブ サーバーは接続できないがパッシブ サーバーは接続できる場合。可用性を高めるために、スイッチオーバーが実行されます。
ハイアベイラビリティ セーフ モード
完全な複製を実行する代わりにハイアベイラビリティ セーフ モードを使用すると、新しいアクティブ サーバーを特定し、新しいデータと変更された設定をアクティブ サーバーからパッシブ サーバーに同期して、クラスターを再構築できます。
ハイアベイラビリティ セーフ モードでは、HAクラスターの両サーバーとIPアドレスは、スプリットブレイン エラーが解決されるまで使用できません。また、次の事項を含む追加情報が表示されます。
- 2つのサーバー上の、共有フォルダー内コンテンツの違い。
- サーバーがアクティブになった時点を示すタイムログ。
この情報は、Synology High Availabilityや、読み取り専用のFile Stationで確認してください。これで、ユーザーは、新しいアクティブ サーバーを特定できます。
新しいアクティブ サーバーが選択されると、アクティブ サーバーの変更されたデータと設定すべてが受動サーバーと同期されます。このようにして、新しい正常なハイ アベイラビリティ クラスターが用意されます。
ユーザーはさらに、以下のいずれかを行うことができます。
- 新しいアクティブ サーバーを1台選び、すぐにハイアベイラビリティ サービスを再開する (新しいパッシブサーバー上のデータは、このアクティブサーバーによって上書きされます)。
- 1台のサーバーをクラスターから外し、両方のサーバーのデータを維持する。
完全な複製を行う場合は、どちらかをハイ アベイラビリティ クラスターのアクティブ サーバーとして選択し、もう一方のバインドを解除します。両方のサーバーが再起動されると、アクティブ サーバーがハイ アベイラビリティ クラスターに残ります。接続を解除されたサーバーは、データを保持したままスタンドアローン ステータスに移行します。完全な複製では後で新しいパッシブ サーバーとのバインドが必要になるのでご注意ください。
詳細は、Synology High Availabilityユーザーガイドの4.7 スプリットブレインセクションをご覧ください。