7
2

PowerVSのGRS (Global Replication Service)を東京-大阪間で試してみた

Posted at

はじめに

Power Virtual ServerのGRS(Global Replication Service)が、日本国内の東京-大阪間でもリリースされたので、試してみました。
GRSは、ストレージボリュームをストレージの機能で別のデータセンターに非同期レプリケーションする機能です。

参考にしたのはこちらの記事で、東京-大阪間でこの通りに実施してみました。
https://qiita.com/y_tama/items/08bf40d62719203e9264

1. 環境

ここでは、次の環境を使用します。その他のGRSを利用できる環境は、参考のマニュアルを参照ください。

  • TOK04 (プライマリ・サイト)
  • OSA21 (セカンダリ・サイト)

(参考)グローバル複製サービスの管理:
https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-getting-started-GRS

2. プライマリ・サイトの設定作業

2-1. プライマリ・サイトでインスタンスを作成

今回は事前にGUIで、次のようなインスタンス(GRS_AIX_pri)を作成しました。
image-1.png

2-2. CLIで ibmcloud に login後、プライマリ・サイトに接続

IBM cloud にログイン

% ibmcloud login --apikey @/XXXXX/apikey.txt -u XXXXX@XXXXX
API エンドポイント: https://cloud.ibm.com
リージョン: jp-tok
認証中です...
OK

ターゲットのアカウント XXXXX


API エンドポイント:   https://cloud.ibm.com
Region:               jp-tok
ユーザー:             XXXXX@XXXXX
アカウント:           XXXXX
リソース・グループ:   リソース・グループがターゲットになっていません。'ibmcloud target -g RESOURCE_GROUP' を使用してください

プライマリ・サイト(TOK04)のCRN情報を確認して、プライマリ・サイトに接続

% ibmcloud pi ws ls | grep TOK
ユーザーXXXXX@XXXXXのアカウントXXXXXのワークスペースをリストしています...
crn:v1:bluemix:public:power-iaas:tok04:a/7cd6294fd15e40ab8df9d0bc516b8d85:ea698bbb-ac5a-4bdf-99f6-374f3c928de2::      ea698bbb-ac5a-4bdf-99f6-374f3c928de2   (省略)

% ibmcloud pi ws target crn:v1:bluemix:public:power-iaas:tok04:a/7cd6294fd15e40ab8df9d0bc516b8d85:ea698bbb-ac5a-4bdf-99f6-374f3c928de2::
サービス crn:v1:bluemix:public:power-iaas:tok04:a/7cd6294fd15e40ab8df9d0bc516b8d85:ea698bbb-ac5a-4bdf-99f6-374f3c928de2:: をターゲットにしています...

2-3. Replica Enabled volumeの作成

接続しているワークスペースが正しいこと(作成したインスタンスが見えていること)を確認

Primary Site
% ibmcloud pi ins ls | grep GRS_AIX
ユーザー XXXXX@XXXXX のアカウント XXXXXでインスタンスをリストしています...
(インスタンスid)   GRS_AIX_pri       /pcloud/v1/cloud-instances/072cbe9f6be64b599a3fbbcc25158c71/pvm-instances/(インスタンスid)

Replica Enabled Volme(-r)を作成

Primary Site
% ibmcloud pi vol cr GRS_AIX_vol1 -r -s 10 -t tier1
ユーザー XXXXX@XXXXX のアカウント XXXXX でボリューム GRS_AIX_vol1 を作成しています...

ID                   6a909e3b-3019-47cf-9439-2bddef293dfc
名前                 GRS_AIX_vol1
プロファイル         tier1
状況                 creating
サイズ               10
作成日時             2024-07-08T05:41:34.000Z
更新済み             1970-01-01T00:00:00.000Z
共有可能             false
ブート可能           false
ストレージ・プール   General-Flash-9
入出力スロットル率   -
複製対応             -
補助                 -
PVMInstanceID        -
WWN                  -

上記コマンドのoutputでは、複製対応が "-" になっていますが、作成されたvolumeのidを指定して今一度確認してみると、複製対応が"true"になっていました。

Primary Site
% ibmcloud pi vol get 6a909e3b-3019-47cf-9439-2bddef293dfc
ユーザーXXXXX@XXXXXのアカウントXXXXXのボリューム 6a909e3b-3019-47cf-9439-2bddef293dfcを取得しています...

ID                   6a909e3b-3019-47cf-9439-2bddef293dfc
名前                 GRS_AIX_vol1
プロファイル         tier1
状況                 available
サイズ               10
作成日時             2024-07-08T05:41:34.000Z
更新済み             2024-07-08T05:41:38.000Z
共有可能             false
ブート可能           false
ストレージ・プール   General-Flash-9
入出力スロットル率   100 iops
複製対応             true
補助                 false
PVMInstanceID        -
WWN                  600507681381028B7000000000000520

2-4. 作成したVolumeをインスタンスに認識させる

インスタンスに、volumeをattachします。

Primary Site
 % ibmcloud pi instance vol attach GRS_AIX_pri -v 6a909e3b-3019-47cf-9439-2bddef293dfc
ユーザー XXXXX@XXXXX のアカウント XXXXX でボリュームをインスタンス GRS_AIX_pri に追加しています...
OK
ボリュームをインスタンス GRS_AIX_pri に追加する要求が受け入れらました。

2-5. プライマリ・サイトのインスタンスにログインし、Replica EnabledのVolumeの認識とVG/FSの作成

まずはrootvgしか見えていません。

Primary Site
# hostname
grs_aix_pri

# lspv
hdisk0          00fa00d66c59c9d7                    rootvg          active

cfgmgrコマンドでReplica EnabledのVolumeを認識させます。

Primary Site
# cfgmgr
# lspv
hdisk0          00fa00d66c59c9d7                    rootvg          active
hdisk1          none                                None

hdisk1でdatavgを作成、5GBのファイルシステムの作成をします。
Replication Testのために、ファイルを作成しておきます。

Primary Site
# mkvg -y'datavg' '-f' -k'y' hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
datavg

# crfs -v jfs2 -g datavg -m /data -a size=5G -A yes
File system created successfully.
5222036 kilobytes total disk space.
New File System size is 10485760

# mount /data

# df -g
Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4           0.09      0.04   53%     2807    21% /
/dev/hd2           2.34      0.22   91%    44715    47% /usr
/dev/hd9var        0.19      0.15   18%      908     3% /var
/dev/hd3           0.25      0.25    1%       34     1% /tmp
/dev/hd1           0.03      0.03    2%        7     1% /home
/dev/hd11admin      0.12      0.12    1%        5     1% /admin
/proc                 -         -    -        -      - /proc
/dev/hd10opt       0.84      0.07   92%    11479    38% /opt
/dev/livedump      0.25      0.25    1%        4     1% /var/adm/ras/livedump
/dev/repo00        8.09      0.06  100%     2221    14% /usr/sys/inst.images
/ahafs                -         -    -       35     1% /aha
/dev/fslv00        5.00      4.98    1%        4     1% /data

# cd /data

# echo "Hello GRS!" > test1.txt

# cat test1.txt
Hello GRS!
#

2-6. プライマリ・サイトのVolumeを指定して、GRSのVGを作成

GRSのVGを作成します。紛らわしいですが、ここで作成するのはAIXのVGではなく、PowerVSのGRSサービスを使用するために必要なVGです。オンプレ的にいうと、Replicationのためにストレージ装置側で実施する設定になります。
Replica EnabledのVolume idを確認し、GRSのVGを作成します。

Primary Site
% ibmcloud pi vol ls | grep GRS_AIX_vol1
ユーザー XXXXX@XXXXXのアカウント XXXXX でボリュームをリストしています...
6a909e3b-3019-47cf-9439-2bddef293dfc   GRS_AIX_vol1                             /pcloud/v1/cloud-instances/ea698bbb-ac5a-4bdf-99f6-374f3c928de2/volumes/6a909e3b-3019-47cf-9439-2bddef293dfc

% ibmcloud pi vg cr -v GRS_AIX_vg -m 6a909e3b-3019-47cf-9439-2bddef293dfc
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・グループ GRS_AIX_vg を作成しています ...
名前         ID                                     状況        状況の詳細
GRS_AIX_vg   9d02a036-e0ca-486d-821b-da09853f1d5b   available   -

2-7. 作成したGRS VGを確認

Primary Site
 % ibmcloud pi vg ls| grep GRS_AIX_vg
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・グループをリストしています ...
9d02a036-e0ca-486d-821b-da09853f1d5b   GRS_AIX_vg   rccg-9d02-f1d5b    enabled    available   -

% ibmcloud pi vg get GRS_AIX_vg
アカウントXXXXX (ユーザーXXXXX@XXXXX)で、ボリューム・グループGRS_AIX_vgを取得しています...

ID                 9d02a036-e0ca-486d-821b-da09853f1d5b
名前               GRS_AIX_vg
整合性グループ名   rccg-9d02-f1d5b
複製状況           enabled
状況               available
状況の説明         -

2-8. 補助ボリュームの情報を取得

次のステップで、セカンダリ・サイト側で実施するオンボード処理時に必要となる、以下の情報を取得します。
これら2つの情報を使って、セカンダリ・サイト側からオンボード処理を行うことになります。オンボード処理とは、セカンダリ・サイトのワークスペースに、プライマリ・サイトのボリュームを元に、セカンダリ・サイト用ボリュームを作成する作業、というイメージです。

  • プライマリ・サイトのPowerVSワークスペースのCRN
  • プライマリ・サイトのボリュームに付与された補助ボリュームの情報

プライマリ・サイトのPowerVSワークスペースのCRN情報の取得

Primary Site
 % ibmcloud pi ws ls | grep TOK
ユーザーXXXXX@XXXXXのアカウントXXXXXのワークスペースをリストしています...
crn:v1:bluemix:public:power-iaas:tok04:a/7cd6294fd15e40ab8df9d0bc516b8d85:ea698bbb-ac5a-4bdf-99f6-374f3c928de2::      ea698bbb-ac5a-4bdf-99f6-374f3c928de2   (省略)

補助ボリュームの情報を取得
JSON形式でVOLの情報を取得すると、"auxVolumeName"に補助ボリュームの情報が記載されています。

Primary Site
% ibmcloud pi vol get GRS_AIX_vol1 --json
{
    "auxVolumeName": "aux_volume-GRS_AIX_vol1-6a909e3b-301932871297",
    "auxiliary": false,
    "bootable": false,
    "consistencyGroupName": "rccg-9d02-f1d5b",
    "creationDate": "2024-07-08T05:41:34.000Z",
    "diskType": "tier1",
    "groupID": "9d02a036-e0ca-486d-821b-da09853f1d5b",
    "ioThrottleRate": "100 iops",
    "lastUpdateDate": "2024-07-08T05:52:49.000Z",
    "masterVolumeName": "volume-GRS_AIX_vol1-6a909e3b-3019",
    "mirroringState": "consistent_copying",
    "name": "GRS_AIX_vol1",
    "primaryRole": "master",
    "pvmInstanceIDs": [
        "79c74ab5-05f8-47fc-8bbf-5b662a9b0a80"
    ],
    "replicationEnabled": true,
    "replicationStatus": "enabled",
    "replicationType": "global",
    "shareable": false,
    "size": 10,
    "state": "in-use",
    "volumeID": "6a909e3b-3019-47cf-9439-2bddef293dfc",
    "volumePool": "General-Flash-9",
    "volumeType": "Tier1-General-Flash-9-GRS",
    "wwn": "600507681381028B7000000000000520"
}

3. セカンダリ・サイトの設定作業

3-1. セカンダリ・サイト(OSA21)に切り替え

接続先をセカンダリ・サイトであるOSA21に切り替えます。

% ibmcloud pi ws ls | grep OSA
ユーザーXXXXX@XXXXXのアカウントXXXXXのワークスペースをリストしています...
7cd6294fd15e40ab8df9d0bc516b8d85:915e2943-adaa-4bf4-aecd-48cc2c35368a::      915e2943-adaa-4bf4-aecd-48cc2c35368a   (省略)


 % ibmcloud pi ws target crn:v1:bluemix:public:power-iaas:osa21:a/7cd6294fd15e40ab8df9d0bc516b8d85:915e2943-adaa-4bf4-aecd-48cc2c35368a::
サービス crn:v1:bluemix:public:power-iaas:osa21:a/7cd6294fd15e40ab8df9d0bc516b8d85:915e2943-adaa-4bf4-aecd-48cc2c35368a:: をターゲットにしています...

3-2. オンボーディング処理

オンボーディング処理を行います。

Secondary Site
% ibmcloud pi vol on cr -a aux_volume-GRS_AIX_vol1-6a909e3b-301932871297 -s crn:v1:bluemix:public:power-iaas:tok04:a/7cd6294fd15e40ab8df9d0bc516b8d85:ea698bbb-ac5a-4bdf-99f6-374f3c928de2::
アカウントXXXXX(ユーザー XXXXX@XXXXX) で、ボリューム・オンボードを作成しています ...

ID     58e8b222-1454-4419-b63a-a51d30652bd4
説明   -

オンボーディング処理状況の確認すると、SUCCESSになっていました。

Secondary Site
 % ibmcloud pi vol on ls | grep GRS_AIX_vol1
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・オンボード操作をリストしています ...
58e8b222-1454-4419-b63a-a51d30652bd4   SUCCESS   onboard_aux_vols_QSI0K59K   aux_volume-GRS_AIX_vol1-6a909e3b-301932871297

詳細を確認してみると、セカンダリ・サイトに補助ボリュームが作成され、複製対応が"true"、補助が"true"になっています。

Secondary Site
% ibmcloud pi vol get aux_volume-GRS_AIX_vol1-6a909e3b-301932871297
ユーザーXXXXX@XXXXXのアカウントXXXXXのボリューム aux_volume-GRS_AIX_vol1-6a909e3b-301932871297を取得しています...

ID                   cf97fbb1-d96b-44fa-8101-09f3b98b4715
名前                 aux_volume-GRS_AIX_vol1-6a909e3b-301932871297
プロファイル         tier1
状況                 available
サイズ               10
作成日時             2024-07-08T06:10:21.000Z
更新済み             2024-07-08T06:10:22.000Z
共有可能             false
ブート可能           false
ストレージ・プール   General-Flash-7
入出力スロットル率   100 iops
複製対応             true
補助                 true
PVMInstanceID        -
WWN                  600507681381028B000000000000042C

3-3. 複製状況を確認

VGを指定して、rcr(Remote Copy Relationship)の状況を確認します。
フリーズ時間が"2024-07-08T06:09:30.000Z"となっており、これが最新で同期された時刻を表すようです。

Secondary Site
 % ibmcloud pi vg rcr rccg-9d02-f1d5b
ユーザーXXXXX3@XXXXXのアカウントXXXXXのボリューム・グループrccg-9d02-f1d5bのリモート・コピー情報を取得しています...
名前     補助ボリューム名                                整合性グループ名   マスター・ボリューム名              リモート・コピー ID   状態                 コピー・タイプ   サイクル・モード   フリーズ時間               1 次役割   進行状況
rcrel1   aux_volume-GRS_AIX_vol1-6a909e3b-301932871297   rccg-9d02-f1d5b    volume-GRS_AIX_vol1-6a909e3b-3019   68                    consistent_copying   global           multi              2024-07-08T06:09:30.000Z   master     99

しばらくしてもう一度確認すると、フリーズ時間が更新されていたので、再度同期のサイクルが回ったようです。

Secondary Site
 % ibmcloud pi vg rcr rccg-9d02-f1d5b
ユーザーXXXXX@XXXXXのアカウントXXXXXのボリューム・グループrccg-9d02-f1d5bのリモート・コピー情報を取得しています...
名前     補助ボリューム名                                整合性グループ名   マスター・ボリューム名              リモート・コピー ID   状態                 コピー・タイプ   サイクル・モード   フリーズ時間               1 次役割   進行状況
rcrel1   aux_volume-GRS_AIX_vol1-6a909e3b-301932871297   rccg-9d02-f1d5b    volume-GRS_AIX_vol1-6a909e3b-3019   68                    consistent_copying   global           multi              2024-07-08T06:17:51.000Z   master     99

3-4. セカンダリ・サイトのインスタンス (GRS_AIX_sec)を作成

GUIで次のようなインスタンスを作成しました。
image-2.png

4. 被災時切り替えシミュレーション

4-1. プライマリ・サイトが被災したと仮定し、セカンダリ・サイトへ切り替え

セカンダリ・サイト(OSA21)のボリュームにアクセスできるようにするため、-a (--allow-read-accessと同じ) オプションを付けて、volume-group-stopコマンドを実行します。

Secondary Site
% ibmcloud pi vg act -a -o stop rccg-9d02-f1d5b
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・グループ rccg-9d02-f1d5b に対して停止アクションを実行しています ...
OK
ボリューム・グループrccg-9d02-f1d5bに対する停止要求が受け入れられました。

複製状況が、"disabled" になりました。

Secondary Site
% ibmcloud pi vg get rccg-9d02-f1d5b
アカウントXXXXX (ユーザーXXXXX@XXXXX)で、ボリューム・グループrccg-9d02-f1d5bを取得しています...

ID                 0b975d57-30d0-489b-b637-4ff2124ad08d
名前               rccg-9d02-f1d5b
整合性グループ名   rccg-9d02-f1d5b
複製状況           disabled
状況               available
状況の説明         -

4-2. セカンダリ・サイトでVolumeを認識させ、ファイルシステムの内容を確認

セカンダリ・サイトのインスタンスにVolumeをattachします。

Secondary Site
% ibmcloud pi ins vol attach GRS_AIX_sec -v aux_volume-GRS_AIX_vol1-6a909e3b-301932871297
ユーザー XXXXX@XXXXX のアカウント XXXXX でボリュームをインスタンス GRS_AIX_sec に追加しています...
OK
ボリュームをインスタンス GRS_AIX_sec に追加する要求が受け入れらました。

セカンダリ・サイトのインスタンスにログインし、Volumeを認識させて中身を確認したところ、プライマリ・サイトで作成したファイルを確認できました。

Secondary Site
# hostname
grs-aix-sec

# lspv
hdisk0          00fa00d66c59c9d7                    rootvg          active

# cfgmgr

# lspv
hdisk0          00fa00d66c59c9d7                    rootvg          active
hdisk1          00ca78c090e31da6                    None

# importvg -y datavg hdisk1
datavg

# lsvg -l datavg
datavg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
fslv00              jfs2       640     640     1    closed/syncd  /data

# mount /data
Replaying log for /dev/fslv00.

# cd /data

# ls
lost+found  test1.txt

# cat test1.txt
Hello GRS!

5. プライマリ・サイトへの切り戻しシミュレーション

5-1. 被災環境のクリーンナップ

プライマリ・サイトは破壊されている想定なので、シミュレーションのためにここでは以下を実施しておきます。

Primary Site
# hostname
grs-aix-pri

# umount -f /data
forced unmount of /data
forced unmount of /data

# varyoffvg datavg

# exportvg datavg

# lspv
hdisk0          00fa00d66c59c9d7                    rootvg          active
hdisk1          00ca78c090e31da6                    None

5-2. セカンダリ・サイトから、プライマリ・サイトへの転送

セカンダリ・サイトから、プライマリ・サイトへ、--source auxiliaryオプションを付けて、転送を開始します。

Secondary Site
 % ibmcloud pi vg act rccg-9d02-f1d5b -o start --source auxiliary
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・グループ rccg-9d02-f1d5b に対して開始アクションを実行しています ...
OK
ボリューム・グループrccg-9d02-f1d5bに対する開始要求が受け入れられました。

セカンダリ・サイトのインスタンスで、テスト用に新規ファイルを作成しておきます。

Secondary Site
# hostname
grs-aix-sec

# echo "Welcome back GRS!" > test2.txt

# ls
lost+found  test1.txt   test2.txt

# cat test2.txt
Welcome back GRS!

5-3. Replication状態の確認

Replication状態を確認します。
逆転送になっているので1次役割が、"aux"と表記されています。

Secondary Site
 % ibmcloud pi vg rcr rccg-9d02-f1d5b
ユーザーXXXXX@XXXXXのアカウントXXXXXのボリューム・グループrccg-9d02-f1d5bのリモート・コピー情報を取得しています...
名前     補助ボリューム名                                整合性グループ名   マスター・ボリューム名              リモート・コピー ID   状態                 コピー・タイプ   サイクル・モード   フリーズ時間               1 次役割   進行状況
rcrel1   aux_volume-GRS_AIX_vol1-6a909e3b-301932871297   rccg-9d02-f1d5b    volume-GRS_AIX_vol1-6a909e3b-3019   68                    consistent_copying   global           multi              2024-07-08T07:44:03.000Z   aux        99

しばらくしてもう一度確認すると、フリーズ時間が更新されたので、セカンダリ・サイトの更新はプライマリ・サイトへも同期されたと思われます。

Secondary Site
% ibmcloud pi vg rcr rccg-9d02-f1d5b
ユーザーXXXXX@XXXXXのアカウントXXXXXのボリューム・グループrccg-9d02-f1d5bのリモート・コピー情報を取得しています...
名前     補助ボリューム名                                整合性グループ名   マスター・ボリューム名              リモート・コピー ID   状態                 コピー・タイプ   サイクル・モード   フリーズ時間               1 次役割   進行状況
rcrel1   aux_volume-GRS_AIX_vol1-6a909e3b-301932871297   rccg-9d02-f1d5b    volume-GRS_AIX_vol1-6a909e3b-3019   68                    consistent_copying   global           multi              2024-07-08T07:52:24.000Z   aux        100

5-4. GRS VGの停止

切り戻しのため、逆方向の転送を停止(GRSのVGを停止)します。

Secondary Site
% ibmcloud pi vg act rccg-9d02-f1d5b -a -o stop
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・グループ rccg-9d02-f1d5b に対して停止アクションを実行しています ...
OK
ボリューム・グループrccg-9d02-f1d5bに対する停止要求が受け入れられました。

セカンダリ・サイトの/dataはアンマウントしておきます。

Secondary Site
# hostname
grs-aix-sec

# umount -f /data
forced unmount of /data
forced unmount of /data

5-5. セカンダリ・サイトで作成したファイルの確認

テスト用にセカンダリ・サイト側で作成したファイルが、プライマリ・サイトで見れることを確認してみました。

Primary Site
# hostname
grs-aix-pri

# lspv
hdisk0          00fa00d66c59c9d7                    rootvg          active
hdisk1          00ca78c090e31da6                    None

# importvg -y datavg hdisk1
datavg

# mount /data
Replaying log for /dev/fslv00.

# cd /data

# ls
lost+found  test1.txt   test2.txt

# cat test2.txt
Welcome back GRS!

5-6. 平常時転送への戻し

最後に、--source auxiliaryオプションを付けずに、volume-group-startを実行します。これで、平常時のプライマリ・サイトからセカンダリ・サイトへの転送となり、復旧が完了です。

Secondary Site
% ibmcloud pi vg act rccg-9d02-f1d5b -o start
アカウント XXXXX (ユーザー XXXXX@XXXXX) で、ボリューム・グループ rccg-9d02-f1d5b に対して開始アクションを実行しています ...
OK
ボリューム・グループrccg-9d02-f1d5bに対する開始要求が受け入れられました。
7
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2