このセクションでは、クラスタ間のデータレプリケーションの構成ガイドラインを提供します。また、レプリケーションリソースグループとアプリケーションリソースグループの構成のコツも紹介します。これらのガイドラインは、クラスタのデータレプリケーションを構成する際に使用してください。
このセクションでは、次の項目について説明します。
レプリケーションリソースグループは、Availability Suite ソフトウェアの制御下にあるデバイスグループを論理ホスト名リソースと結び付けます。論理ホスト名は、データレプリケーションストリームの各終端に存在し、デバイスへのプライマリ入出力パスとして動作しているのと同じクラスタノードにある必要があります。レプリケーションリソースグループには、次の特徴があります。
フェイルオーバーリソースグループである
フェイルオーバーリソースは、常に単一のノード上で実行されます。フェイルオーバーが発生すると、フェイルオーバーリソースがフェイルオーバーに加わります。
論理ホスト名は、各クラスタ (プライマリおよびセカンダリ) 内のいずれかのノードでホストされ、Availability Suite ソフトウェアのデータレプリケーションストリームのソースおよびターゲットアドレスを提供するために使用されます。
HAStoragePlus リソースを持つ
HAStoragePlus リソースは、レプリケーションリソースグループがスイッチオーバーまたはフェイルオーバーしたときに、デバイスグループをフェイルオーバーします。Oracle Solaris Cluster ソフトウェアはまた、デバイスグループがスイッチオーバーしたときに、レプリケーションリソースグループをフェイルオーバーします。このようにレプリケーションリソースグループとデバイスグループは常に共用関係を持ち、同じノードから制御されます。
HAStoragePlus リソースで次の拡張プロパティーを定義する必要があります。
GlobalDevicePaths。この拡張プロパティーは、ボリュームが属するデバイスグループを定義します。
AffinityOn property = True。この拡張プロパティーは、レプリケーションリソースグループがスイッチオーバーまたはフェイルオーバーしたときに、デバイスグループをスイッチオーバーまたはフェイルオーバーします。この機能はアフィニティースイッチオーバーと呼ばれます。
HAStoragePlus についての詳細は、SUNW.HAStoragePlus(5) のマニュアルページを参照してください。
共用関係を持つデバイスグループ名に -stor-rg を付けた名前を持つ
たとえば、devgrp-stor-rg などです。
プライマリクラスタとセカンダリクラスタでオンラインになる
高可用性にするためには、アプリケーションはアプリケーションリソースグループのリソースとして管理される必要があります。アプリケーションリソースグループは、フェイルオーバーアプリケーションまたはスケーラブルアプリケーション向けに構成できます。
HAStoragePlus リソース内で ZPoolsSearchDir 拡張プロパティーを定義する必要があります。この拡張プロパティーは、ZFS ファイルシステムを使用するために必要です。
プライマリクラスタ上に構成したアプリケーションリソースとアプリケーションリソースグループは、セカンダリクラスタ上でも構成される必要があります。また、アプリケーションリソースがアクセスするデータは、セカンダリクラスタにレプリケートする必要があります。
このセクションでは、次のアプリケーションリソースグループを構成するためのガイドラインを紹介します。
フェイルオーバーアプリケーションでは、1 つのアプリケーションが 1 度に 1 ノード上で動作します。ノードで障害が発生すると、アプリケーションは同じクラスタ内の別のノードにフェイルオーバーします。フェイルオーバーアプリケーション向けリソースグループは、以下の特徴を持っていなければなりません。
アプリケーションリソースグループがスイッチオーバーまたはフェイルオーバーされた場合、HAStoragePlus リソースにファイルシステムまたは zpool をフェイルオーバーさせる
デバイスグループは、レプリケーションリソースグループおよびアプリケーションリソースグループと共用関係を持ちます。したがって、アプリケーションリソースグループがフェイルオーバーすると、デバイスグループとレプリケーションリソースグループもフェイルオーバーします。アプリケーションリソースグループ、レプリケーションリソースグループおよびデバイスグループは、同じノードによって制御されます。
ただし、デバイスグループやレプリケーションリソースグループがフェイルオーバーしても、アプリケーションリソースグループはフェイルオーバーを行いません。
アプリケーションデータがグローバルマウントされている場合は、アプリケーションリソースグループに HAStoragePlus リソースを必ず入れなければならないわけではありませんが、入れることをお勧めします。
アプリケーションデータがローカルマウントされている場合は、アプリケーションリソースグループに HAStoragePlus リソースを必ず入れなければなりません。
HAStoragePlus についての詳細は、SUNW.HAStoragePlus(5) のマニュアルページを参照してください。
プライマリクラスタでオンライン、セカンダリクラスタでオフラインとなる
セカンダリクラスタがプライマリクラスタをテイクオーバーした場合は、セカンダリクラスタ上のアプリケーションリソースグループをオンラインにします。
図 5 に、フェイルオーバーアプリケーションでのアプリケーションリソースグループとレプリケーションリソースグループの構成を示します。
図 5 フェイルオーバーアプリケーションでのリソースグループの構成
スケーラブルアプリケーションでは、アプリケーションは複数のノードで実行されて、1つの論理サービスを作成します。スケーラブルアプリケーションを実行しているノードで障害が発生しても、フェイルオーバーは起こりません。アプリケーションは別のノードで引き続き実行されます。
スケーラブルアプリケーションをアプリケーションリソースグループのリソースとして管理している場合は、アプリケーションリソースグループをデバイスグループと結び付ける必要はありません。したがって、アプリケーションリソースグループ向けに HAStoragePlus リソースを作成する必要はありません。
スケーラブルアプリケーション向けリソースグループは、以下の特徴を持っていなければなりません。
共有アドレスは、受信データを配信するためにスケーラブルアプリケーションを実行するノードで使用されます。
プライマリクラスタでオンライン、セカンダリクラスタでオフラインとなる
図 6 に、スケーラブルアプリケーションでのリソースグループの構成を示します。
図 6 スケーラブルアプリケーションでのリソースグループの構成
プライマリクラスタに障害が発生した場合、アプリケーションをできるだけ早くセカンダリクラスタにスイッチオーバーする必要があります。セカンダリクラスタがテイクオーバーできるようにするには、DNS を更新する必要があります。
クライアントは DNS を使用して、アプリケーションの論理ホスト名を IP アドレスにマップします。アプリケーションをセカンダリクラスタに移動することによりテイクオーバーを行ったあとに、アプリケーションの論理ホスト名と新しい IPアドレス間のマッピングが反映されるように DNS 情報を更新する必要があります。
図 7 クライアントからクラスタへの DNS マッピング
DNS を更新するには、nsupdate コマンドを使用します。詳細は、nsupdate(1M) のマニュアルページを参照してください。テイクオーバーの管理の例については、テイクオーバーの管理の例を参照してください。
修復後、プライマリクラスタをオンラインに戻すことができます。元のプライマリクラスタにスイッチバックするには、次の手順を実行します。
プライマリクラスタとセカンダリクラスタを同期させ、プライマリボリュームが最新のものであることを確認します。これを行うには、レプリケーションデータストリームがなくなるように、セカンダリノードのリソースグループを停止します。
データレプリケーションの方向を逆にして、元のプライマリクラスタが元のセカンダリクラスタにふたたびデータをレプリケーションするようにします。
プライマリクラスタでリソースグループを起動します。
クライアントがプライマリクラスタのアプリケーションにアクセスできるように、DNS を更新します。