0. はじめに
PowerVS(Power Virtual Server)でGRS(Global Replication Service)が提供されるようになりましたが、今回はIBM iのPowerHA SystemMirror for i (以降PowerHA)の機能を使ってIBM i上でのGRSを使ったIASPの複製による災害対策環境を構成してみました。
PowerHAとGRSを組み合わせて利用することにより、PowerVS上のIBM iでIASPのボリュームレベルの非同期の複製を行うことができます。
今回の検証環境は以下のとおりです。
プライマリーサイトはSYD05、バックアップサイトがSYD04という想定です。
参考資料
Configuring PowerHA with Global Replication Services (7.5)
1. 前提条件
PowerHAを利用するので、インスタンスを作成するときには必ずソフトウェア・ライセンスとしてIBM i PowerHAをチェックすることを忘れないでください。
GRSの複製の構成を行う前に、IBM iでのクラスターの構成を行う必要があります。クラスターの構成については、以下の記事が参考になると思います。
PowerVSでPowerHA SystemMirror for i 地理的ミラーリングを構成してみました
PowerHA SystemMirror for i マルチターゲット地理的ミラーリングを構成してみた
また、PowerVSの認証でiam.cloud.ibm.comへの接続が必要になりますので、IBM iインスタンスからIBM Cloudのパブリック・ネットワークのDNSである9.9.9.9への疎通ができることをあらかじめ確認しておいてください。私はなぜかpingが通らず、IBM i側での経路情報の調整で少し手間取りました。
この資料ではクラスターの作成およびノードの追加とデバイス・ドメインへの追加がすでにできていることとします。そしてGRSに関わる部分から説明していきたいと思います。
2. PowerHAの構成
クラスター資源グループの構成
ここからPowerHAの構成を行っていきます。この時点でのクラスター構成をWRKCLUコマンドで確認すると以下のようになっています。
またクラスター資源グループを構成するにあたって事前にIASPを作成しておきます。
この構成にクラスター資源グループを追加していきます。WRKCLU オプション9またはCRTCRGコマンドを使用します。
CRTCRG CRG(IBMI75CRG) CRGTYPE(*DEV)
RCYDMN((IBMI751 *PRIMARY *LAST SYD05 *NONE) (IBMI752 *BACKUP *LAST SYD04 *NONE))
CFGOBJ((IASP01 *DEVD *ONLINE))
FLVMSGQ(QSYS/QSYSOPR) FLVWAITTIM(*NOMAX)
自動フェイルオーバーの非活動化
省略時の設定では自動フェイルオーバーが設定されているので、QCST_CRG_CANCEL_FAILOVER ポリシーを設定することで自動フェイルオーバーを非活動化します。
ADDHAPCY PCY(QCST_CRG_CANCEL_FAILOVER) PCYDMN(IBMI75CRG) QUAL('SCOPE(*CRG)') VALUE('EVENT(*ALL)')
PCYDMNには対象のクラスター資源グループ名を指定します。
3. GRSの管理のためのPowerHA管理の構成
ストレージ資格情報の作成
PowerHAはPowerVS内の資源のコントロールと管理のためにPowerVS APIを使用するので、このための構成を行います。
デジタル証明書の作成
PowerHAはIBM CloudとのコミュニケーションのためにTLSを使用します。そのためデジタル証明書を利用します。
・SYSTEM証明書の作成
最初にIBM iサイドでシステム証明書ストアを作成します。
ブラウザーより、http://mysystem:2001/dcm へアクセスします。
証明書ストアの作成からSYSTEMを選択し、パスワードを指定し、作成します。
*SYSTEM証明書ストアは、クラスターに参加するすべてのノード上で作成してください。
・IBM Cloud証明書の取り込み
デジタル証明書マネージャーによく知られているCAを登録します。
引き続きIBM i Navigator for iのデジタル証明書マネージャーのインターフェースを使用します。
証明書ストアのオープンを選択して、*SYSTEMを選択します。パスワードを指定して証明書ストアをオープンします。
証明書の取り込みを選択します。
証明書の選択の画面ですべての証明書を選択して、取り込みを選択します。
これをすべてのノードで実行します。
APIキーの作成
APIキーでは最低以下のアクセスレベルを持つように作成してください。
・power-iaas.cloud-instance.read
・power-iaas.cloud-instance.modify
PowerHAでは、IBMクラウドユーザーに付けられたAPIキーではなく、サービスIDを使用することを推奨しています。これにより、操作がユーザーとしてではなく、サービスIDとして監査されることになります。
さらに、PowerHAのアクセスは、特定の個人を表すIDに結び付けられることがなくなります。
サービスIDの作成は以下の手順で行います。
- IBM Cloudコンソールにアクセスして管理→アクセス(IAM)→サービスIDを選択します
- もしサービスIDがない場合は、サービスIDを作成します
- サービスIDを作成したらAPIキータブを選択して、APIキーを作成します
- APIキーを作成したらコピーもしくはダウンロードして保管しておきます
プライマリーPowerVSワークスペースを認識するためのHA構成記述の作成
HA構成記述は、PowerVSワークスペースを表すために使用されます。ワークスペースの識別と制御に必要な情報だけでなく、認証情報(APIキー)も含まれています。
HA構成記述は、ADDHACFGDコマンドかWRKCLUコマンドのオプション11で作成します。
ADDHACFGD NAME(GRSSYD05) TYPE(*STGCTL) SUBTYPE(*PVS) PVSHOST((作成したapikey))
同様にセカンダリーPowerVSワークスペースのためのHA構成記述を作成します。
ADDHACFGD NAME(GRSSYD04) TYPE(*STGCTL) SUBTYPE(*PVS) PVSHOST((作成したapikey))
作成後、WRKCLUコマンドのオプション11で確認すると以下のような画面になります。
GRSSYD05の詳細をみると以下のような情報を確認することができます。
4. GRSに対応したボリュームの作成
まずはソース側のPowerVSのインスタンスへGRSボリュームの追加を行います。
ボリュームの名前、層、数、サイズ、ストレージ・プールの選択を行う部分は通常のボリュームの構成と同じですが、追加でGRSの設定を行います。
"Volume Replication with GRS"にチェックを入れて構成します。
5. GRSの環境の作成
crn:v1:bluemix:public:power-iaas:syd05:a/7cd6294fd15e40ab8df9d0bc516b8d85:bc3b21c2-e3aa-4bc3-8ba8-c2ec62181621::
プライマリー・サイトの補助ボリューム情報の取得
ワークスペースのストレージ・ボリュームから情報を取得します。
次に行う補助ボリュームのオンボード処理のためにAuxiliary volume nameを控えておきます。
aux_volume-IBM751_IASP01_1-d66d1236-c08276244873
オンボーディング処理を実行するには、onboard auxiliary volume APIを使用し、オンボーディングしたいプライマリ・ボリュームの CRN と auxVolumeName 値を指定します。
ここからはCLIを使用して操作します。
IBM Cloud CLIの導入はこちらを参照してください。
IBM CloudへCLIでアクセスします。
% ibmcloud login --apikey @apikey.json -u xxx@yyy.com
API エンドポイント: https://cloud.ibm.com
リージョン: au-syd
認証中です...
OK
ターゲットのアカウント xxx
API エンドポイント: https://cloud.ibm.com
Region: au-syd
ユーザー: xxx@yyy.com
アカウント: xxx (7cd6294fd15e40ab8df9d0bc516b8d85) <-> 2435446
リソース・グループ: リソース・グループがターゲットになっていません。'ibmcloud target -g RESOURCE_GROUP' を使用してください
セカンダリー・サイトのCRNを使用してプライマリー・サイトへ接続します。先ほどプライマリー・サイトのCRN情報を取得した時と同様にCRN情報を取得し、接続します。
% ibmcloud pi ws target crn:v1:bluemix:public:power-iaas:syd04:a/7cd6294fd15e40ab8df9d0bc516b8d85:5610c509-bbd0-4291-ba92-e0027f8611f0::
サービス crn:v1:bluemix:public:power-iaas:syd04:a/7cd6294fd15e40ab8df9d0bc516b8d85:5610c509-bbd0-4291-ba92-e0027f8611f0:: をターゲットにしています...
オンボーディング処理を行います。
% ibmcloud pi vol on cr -a aux_volume-IBM751_IASP01_1-d66d1236-c08276244873 -s crn:v1:bluemix:public:power-iaas:syd05:a/7cd6294fd15e40ab8df9d0bc516b8d85:bc3b21c2-e3aa-4bc3-8ba8-c2ec62181621::
アカウント xxx(ユーザー xxx@yyy.com) で、ボリューム・オンボードを作成しています ...
ID 143ff408-ece9-4805-a54f-77a6e18a69dc
説明 -
セカンダリー・サイトで状況を確認してみます。
複製用のボリュームが追加されていることがわかります。
セカンダリー・サイトでのオンボード処理が完了したら、ストレージボリュームをIBM iインスタンスにマッピングします。
これでPowerVS側の準備は完了しました。
6. コピー記述の追加
コピー記述はPowerHAにIASPの単一コピーの定義と管理に必要な情報になります。GRSでは、IASPが複製されるため、IASPのコピーが2つ存在します。したがって、PowerHAは2つのコピー記述を必要とします。
コピー記述に必要な情報は、IASPのコピーの場所を記述します。例えば、プライマリ(ソース)コピーのコピー記述は、以下のコマンドを使用して追加できます:
ADDPVSCPYD ASPCPY(CPYDSYD05) ASPDEV(IASP01) CRG(IBMI75CRG) SITE(SYD05) NODE(*CRG) PVSCFGD(GRSSYD05)
同様にバックアップ・コピー用のコピー記述を作成します。
ADDPVSCPYD ASPCPY(CPYDSYD04) ASPDEV(IASP01) CRG(IBMI75CRG) SITE(SYD04) NO
DE(*CRG) PVSCFGD(GRSSYD04)
7. コピー記述へのボリュームの追加
PowerHAがレプリケーションを管理・制御するために必要な情報として、IASPを表すストレージ内のボリュームに関する識別情報があり、この場合PowerHAはPowerVSのボリューム識別子(ボリュームID)を使用します。これらのボリュームIDは、プライマリーサイトとバックアップサイトの両方でコピー記述に追加する必要があります。
プライマリー(ソース)コピー記述へのボリュームの追加
ボリューム情報の追加のためにCHGPVSCPYDコマンドを使用します。プライマリーコピー記述に追加する場合は以下のように実行します。
CHGPVSCPYD ASPCPY(CPYDSYD05) ACTION(*ADDVOL)
実行すると追加するボリュームを選択する画面が次に表示されます。
1を入力してF16を押してボリュームを追加します。
同様にターゲット(バックアップ)コピー記述でもターゲット・ワークスペースのボリュームを追加します。
CHGPVSCPYD ASPCPY(CPYDSYD04) ACTION(*ADDVOL)
8. PVSセッションの開始
PowerHAのセッションは、レプリケーションの管理と制御に使用されます。この例では、以下のコマンドを使用してセッションを開始します。
STRPVSSSN SSN(GRS_SSN) TYPE(*GLOBALMIR) CRG(IBMI75CRG)
PVSセッションの表示
PowerHAによって管理されているGRSは以下のようにPVSセッションの表示コマンドによって表示・管理することができます。
DSPPVSSSN SSN(GRS_SSN)
この画面では、IASPの活動状況、レプリケーションの進捗に加えてどちらがプライマリーとして活動しているかなどの情報を得ることができます。
現在はノードIBMI751がソース、ノードIBMI752がターゲットになっていることがわかります。またコピーの状況も100%になっており、同期が取られていることがわかります。
ソース、ターゲットの切り替え
それではPowerHAの機能を使ってソースとターゲットを切り替えてみましょう。切り替えにはCHGCRGPRIコマンドかWRKCLU→9.クラスター資源グループの処理→Option3 1次の変更で切り替えることができます。
CHGCRGPRI CRG(IBMI75CRG)
切り替え実行中の画面です。経過時間がカウントアップされるのがいいですね。画面中のユーザーHAADMINはPowerHA管理用に作成したユーザーです。システム提供のものではありません。
コマンドが完了すると完了したことを示すメッセージが表示されます。
> CHGCRGPRI CRG(IBMI75CRG)
クラスターIBMI75CLU内でクラスター資源グループIBMI75CRGの1次ノードが変更されました。
切り替わったノードIBMI752でDSPPVSSSNコマンドを実行してみます。
DSPPVSSSN SSN(GRS_SSN)
ソースノードがIBMI752、ターゲットノードがIBMI751に変わっていることがわかります。
9. まとめ
この記事では PowerVSで提供されるGRS (Global Replication Service)とPowerHAを利用して、PowerVS上でのIBM iの災害対策環境を構築する手順を解説しました。PowerHAなのでIASP化が必要になりますが、比較的容易に構成できました。IASPを構成するストレージ全体の複製を作成することができますので、どのオブジェクト/ライブラリーを複製するかなどの考慮が必要なく、運用も比較的簡単なソリューションだと思います。PowerVS上のIBM iの災害対策の選択肢の1つとして検討してみてはいかがでしょうか?