Google Cloud での SAP HANA デプロイでは、統合ディスク レイアウトまたは分割ディスク レイアウトのいずれかを使用します。統合ディスク レイアウトでは、単一のディスクを使用してすべての SAP HANA ファイル システムをホストします。分割ディスク レイアウトでは、各 SAP HANA ファイル システムが個別のディスクにホストされます。これらのディスク レイアウトの詳細については、サポートされているディスク レイアウトをご覧ください。
Google Cloud では、次の理由から分割ディスク レイアウトの使用をおすすめします。
- これにより、ファイル システム(特に
/hana/data
と/hana/log
、Hyperdisk を使用している場合)のディスク パフォーマンスを個別に調整できます。 - メンテナンスが簡単になります。
移行手順を説明するために、このガイドではサンプル システムを前提として、SAP HANA ファイル システムを単一の Persistent Disk ボリュームから Hyperdisk ボリューム(ファイル システムごとに 1 つのボリューム)に移行します。同じ手順で SAP HANA ファイル システムを個々の Persistent Disk ボリュームに移行することもできます。
移行に関する考慮事項を確認する
- データの移行期間: SAP HANA HA システムでは、セカンダリ ノードの登録を解除し、テナント データベースを削除してからログを再利用することで、データの移行時間を短縮できます。このガイドで説明する手順では、このアプローチを使用します。
- ダウンタイム: SAP HANA HA システムでは、まずセカンダリ データベースを移行して新しいプライマリ データベースにしてから、以前のプライマリ データベースを移行します。これにより、ダウンタイムを最小限に抑えることができます。
- 既存のディスクに戻す: 移行中に問題が発生した場合は、既存のディスクに戻すことができます。ディスクはこの手順の影響を受けないため、自身で削除するまで使用できます。詳細については、既存のディスクにフォールバックするをご覧ください。
始める前に
単一ディスクでホストされている SAP HANA ファイル システムをファイル システムごとに 1 つのディスクに移行する前に、次の条件を満たしていることを確認してください。
- SAP HANA が、Hyperdisk をサポートする SAP 認定 Compute Engine インスタンスで実行されている。
- SAP HANA データベースの有効なバックアップを使用できる。このバックアップは、必要に応じてデータベースを復元するために使用されます。
- ターゲット Compute Engine インスタンスが高可用性(HA)クラスタの一部である場合は、クラスタがメンテナンス モードになっていることを確認します。
- SAP HANA データベースがスケールアウト デプロイを使用している場合は、SAP HANA インスタンスごとにこのガイドの手順を繰り返します。
- SAP HANA データベースが稼働している。HA システムの場合は、データベースのプライマリ インスタンスとセカンダリ インスタンス間でレプリケーションがアクティブになっていることを確認します。
- データのコピー時間を短縮するには、移行する SAP HANA ボリュームから不要なバックアップやメディアを削除します。
次のコマンドを実行して、移行する SAP HANA ファイル システムが単一ディスクにホストされていることを確認します。
lsblk
出力は次のようになります。SAP HANA ファイル システムの命名規則や、コンピューティング インスタンスが Non-Volatile Memory Express(NVMe)ディスク インターフェースをサポートしているかどうかによっては、出力がこの例と異なる場合があります。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 20M 0 part /boot/efi └─sda3 8:3 0 30G 0 part / sdb 8:16 0 2.3T 0 disk ├─vg_hana-shared 254:0 0 850G 0 lvm /hana/shared ├─vg_hana-sap 254:1 0 32G 0 lvm /usr/sap ├─vg_hana-log 254:2 0 425G 0 lvm /hana/log └─vg_hana-data 254:3 0 1T 0 lvm /hana/data sdc 8:32 0 1.7T 0 disk └─vg_hanabackup-backup 254:4 0 1.7T 0 lvm /hanabackup
SAP システムの例
このガイドでは、移行手順を説明するために、次の操作を行います。
- ここでは、単一の Persistent Disk ボリュームが
/hana/data
、/hana/log
、/hana/shared
、/usr/sap
の各ファイル システムをホストする SAP HANA スケールアップ高可用性(HA)デプロイを前提としています。 - ファイル システムは個々の Hyperdisk ボリュームに移行します。これは、Terraform: SAP HANA スケールアップ高可用性クラスタ構成ガイドでデプロイされた SAP HANA スケールアップ HA システムの構成に似ています。
次の図は、ファイル システムの移行前と移行後のサンプル システムのアーキテクチャを示しています。
サンプルの SAP システムの構成の詳細は次のとおりです。
- マシンタイプ:
n2-highmem-128
- OS: SLES for SAP 15 SP5
- SAP HANA: HANA 2 SPS07、リビジョン 78
- システムで使用されるディスクタイプ: SSD 永続ディスク(
pd-ssd
) /hana/data
、/hana/log
、/hana/shared
、/usr/sap
ボリュームは同じディスクにマウントされ、SAP HANA の永続性設定で構成されます。次の例は、SIDABC
の SAP HANA システムの/hana/data
ボリュームと/hana/log
ボリュームの永続性設定を示しています。[persistence] basepath_datavolumes = /hana/data/ABC basepath_logvolumes = /hana/log/ABC
ファイル システムを個々の Hyperdisk ボリュームに移行する
SAP HANA スケールアップ HA デプロイのファイル システムを単一の Persistent Disk ボリュームから、ファイル システムごとに 1 つの Hyperdisk ボリュームに移行するには、次の操作を行います。
移行用にセカンダリ インスタンスを準備する
HA クラスタをメンテナンス モードに設定します。
crm maintenance on
HANA システム レプリケーション(HSR)がアクティブであることを確認します。
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py
出力は次のようになります。
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py |Database |Host |Port |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary |Replication |Replication |Replication |Secondary | | | | | | | | |Host |Port |Site ID |Site Name |Active Status |Mode |Status |Status Details |Fully Synced | |-------- |----------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |----------- |------------- |----------- |----------- |-------------- |------------ | |SYSTEMDB |example-vm1 |30001 |nameserver | 1 | 1 |example-vm1 |example-vm2 | 30001 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | |ABC |example-vm1 |30007 |xsengine | 2 | 1 |example-vm1 |example-vm2 | 30007 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | |ABC |example-vm1 |30003 |indexserver | 3 | 1 |example-vm1 |example-vm2 | 30003 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | status system replication site "2": ACTIVE overall system replication status: ACTIVE Local System Replication State ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mode: PRIMARY site id: 1 site name: example-vm1
SAP HANA データベースのセカンダリ インスタンスの登録を解除します。
hdbnsutil -sr_unregister
出力には、データベースのセカンダリ インスタンスの登録が正常に解除されたことが示されます。
abcadm@example-vm2:/usr/sap/ABC/HDB00> hdbnsutil -sr_unregister unregistering site ... done. Performing Final Memory Release with 10 threads. Finished Final Memory Release successfully.
SAP HANA システムのセカンダリ インスタンスで、すべてのテナント データベースを削除し、ログを再利用します。
テナント データベースを停止します。
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM STOP DATABASE TENANT_DB_SID"
次のように置き換えます。
INSTANCE_NUMBER
: テナント データベースのインスタンス番号SYSTEM_DB_PASSWORD
: システム データベースのパスワードTENANT_DB_SID
: テナント データベースの SID(大文字)
停止したテナント データベースを削除します。
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "DROP DATABASE TENANT_DB_SID"
ログを再利用します。
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM RECLAIM LOG"
SAP HANA システムのセカンダリ インスタンス内のすべてのテナント データベースに対して、上記の手順を繰り返します。
次の例は、正常なレスポンスを示しています。
0 rows affected (overall time 9032.460 msec; server time 9032.273 msec)
SAP HANA システムのセカンダリ インスタンスを停止します。
sapcontrol -nr INSTANCE_NUMBER -function Stop
セカンダリ インスタンスを移行する
SAP HANA ファイル システムごとにディスクを作成します。この手順で想定されるサンプル システムでは、
/hana/data
、/hana/log
、/hana/shared
、/usr/sap
にそれぞれ 1 つずつ、合計 4 つのディスクを作成します。各ファイル システムのディスクサイズを設定するには、システムの
lsblk
コマンドの出力に表示されるサイズ情報を使用します。SAP HANA のパフォーマンス要件を満たすために推奨される最小ディスクサイズ、IOPS、スループットについては、SSD ベースの Persistent Disk と Hyperdisk ボリュームの最小サイズをご覧ください。
gcloud compute disks create USR_SAP_DISK_NAME \ --project=PROJECT_ID \ --type=USR_SAP_DISK_TYPE \ --size=USR_SAP_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=USR_SAP_DISK_IOPS gcloud compute disks create SHARED_DISK_NAME \ --project=PROJECT_ID \ --type=SHARED_DISK_TYPE \ --size=SHARED_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=SHARED_DISK_IOPS gcloud compute disks create DATA_DISK_NAME \ --project=PROJECT_ID \ --type=DATA_DISK_TYPE \ --size=DATA_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=DATA_DISK_IOPS gcloud compute disks create LOG_DISK_NAME \ --project=PROJECT_ID \ --type=LOG_DISK_TYPE \ --size=LOG_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=LOG_DISK_IOPS
次のように置き換えます。
USR_SAP_DISK_NAME
:/usr/sap
ボリュームをホストするディスクに設定する名前PROJECT_ID
: Google Cloud プロジェクトのプロジェクト IDUSR_SAP_DISK_TYPE
:/usr/sap
ボリュームをホストするためにデプロイする Hyperdisk のタイプ(hyperdisk-extreme
など)USR_SAP_DISK_SIZE
:/usr/sap
ボリュームをホストするディスクに設定するサイズZONE
: 新しいディスクをデプロイする Compute Engine ゾーンUSR_SAP_DISK_IOPS
:/hana/data
をホストするために作成する Hyperdisk の IOPS。IOPS は、パフォーマンス要件に従って設定します。SHARED_DISK_NAME
:/hana/shared
ボリュームをホストするディスクに設定する名前SHARED_DISK_TYPE
:/hana/shared
ボリュームをホストするためにデプロイする Hyperdisk のタイプ(hyperdisk-extreme
など)SHARED_DISK_SIZE
:/hana/shared
ボリュームをホストするディスクに設定するサイズSHARED_DISK_IOPS
:/hana/shared
ボリュームをホストするディスクに設定する IOPSDATA_DISK_NAME
:/hana/data
ボリュームをホストするディスクに設定する名前DATA_DISK_TYPE
:/hana/data
ボリュームをホストするためにデプロイする Hyperdisk のタイプ(hyperdisk-extreme
など)DATA_DISK_SIZE
:/hana/data
ボリュームをホストするディスクに設定するサイズDATA_DISK_IOPS
:/hana/data
ボリュームをホストするディスクに設定する IOPSLOG_DISK_NAME
:/hana/log
ボリュームをホストするディスクに設定する名前LOG_DISK_TYPE
:/hana/log
ボリュームをホストするためにデプロイする Hyperdisk のタイプ(hyperdisk-extreme
など)LOG_DISK_SIZE
:/hana/log
ボリュームをホストするディスクに設定するサイズLOG_DISK_IOPS
:/hana/log
ボリュームをホストするディスクに設定する IOPS
作成したディスクを、SAP HANA データベースのセカンダリ インスタンスをホストする Compute Engine インスタンスにアタッチします。
gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=USR_SAP_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=SHARED_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=LOG_DISK_NAME \ --zone=ZONE
SECONDARY_INSTANCE_NAME
は、SAP HANA データベースのセカンダリ インスタンスをホストする Compute Engine の名前に置き換えます。論理ボリューム マネージャー(LVM)を使用する手順は次のとおりです。
作成してアタッチした新しいディスクに物理ボリュームを作成します。
pvcreate USR_SAP_PV_NAME pvcreate SHARED_PV_NAME pvcreate DATA_PV_NAME pvcreate LOG_PV_NAME
次のように置き換えます。
USR_SAP_PV_NAME
:/usr/sap
ボリュームをホストするために作成したディスクの実際のデバイスのパスSHARED_PV_NAME
:/hana/shared
ボリュームをホストするために作成したディスクの実際のデバイスのパスDATA_PV_NAME
:/hana/data
ボリュームをホストするために作成したディスクの実際のデバイスのパスLOG_PV_NAME
:/hana/log
ボリュームをホストするために作成したディスクの実際のデバイスのパス
ボリューム グループを作成します。
vgcreate vg_hana_usrsap USR_SAP_PV_NAME vgcreate vg_hana_shared SHARED_PV_NAME vgcreate vg_hana_data DATA_PV_NAME vgcreate vg_hana_log LOG_PV_NAME
論理ボリュームを作成します。
lvcreate -l 100%FREE -n usrsap vg_hana_usrsap lvcreate -l 100%FREE -n shared vg_hana_shared lvcreate -l 100%FREE -n data vg_hana_data lvcreate -l 100%FREE -n log vg_hana_log
ファイル システムを作成します。
mkfs -t xfs /dev/vg_hana_usrsap/usrsap mkfs -t xfs /dev/vg_hana_shared/shared mkfs -t xfs /dev/vg_hana_data/data mkfs -t xfs /dev/vg_hana_log/log
SAP HANA ファイル システムの一時ディレクトリを作成します。
mkdir -p /tmp/usr/sap mkdir -p /tmp/hana/shared mkdir -p /tmp/hana/data mkdir -p /tmp/hana/log
一時ディレクトリを使用して、新しく作成したボリュームをマウントします。
mount -o logbsize=256k /dev/vg_hana_usrsap/usrsap /tmp/usr/sap mount -o logbsize=256k /dev/vg_hana_shared/shared /tmp/hana/shared mount -o logbsize=256k /dev/vg_hana_data/data /tmp/hana/data mount -o logbsize=256k /dev/vg_hana_log/log /tmp/hana/log
作成したディスクに移行元の Persistent Disk ボリュームのデータを転送します。これには、
rsync
、LVM スナップショット、またはその他の方法を使用できます。次の例では、rsync
ユーティリティを使用してデータを転送しています。rsync -avz --progress /usr/sap/ /tmp/usr/sap/ rsync -avz --progress /hana/shared/ /tmp/hana/shared/ rsync -avz --progress /hana/data/ /tmp/hana/data/ rsync -avz --progress /hana/log/ /tmp/hana/log/
SAP HANA ファイル システムの古い論理ボリュームをマウント解除します。
umount /usr/sap umount /hana/shared umount /hana/data umount /hana/log
SAP HANA ファイル システム用に作成した一時ボリュームをマウント解除します。
umount /tmp/usr/sap umount /tmp/hana/shared umount /tmp/hana/data umount /tmp/hana/log
SAP HANA データベースのセカンダリ インスタンスをホストする Compute Engine インスタンスから、SAP HANA ファイル システムをホストしていた Persistent Disk ボリュームを切断します。
gcloud compute instances detach-disk SECONDARY_INSTANCE_NAME --disk=SOURCE_DISK_NAME \ --zone=ZONE
SOURCE_DISK_NAME
は、SAP HANA ファイル システムをホストしていた Persistent Disk ボリュームの名前に置き換えます。これは、Compute インスタンスから切断するボリュームです。root ユーザーまたは
sudo
アクセス権を持つユーザーとして、/etc/fstab
エントリを更新します。エントリを更新する必要がある例を次に示します。/dev/vg_hana_shared/shared /hana/shared xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_usrsap/sap /usr/sap xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_data/data /hana/data xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_log/log /hana/log xfs defaults,nofail,logbsize=256k 0 2
新しく作成された論理ボリュームをマウントします。
mount -a
ファイル システムが使用しているスペースの情報を確認します。
df -h
出力は次のようになります。
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 8.0K 4.0M 1% /dev tmpfs 638G 35M 638G 1% /dev/shm tmpfs 171G 458M 170G 1% /run tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup /dev/sdb3 30G 6.4G 24G 22% / /dev/sdb2 20M 3.0M 17M 15% /boot/efi /dev/mapper/vg_hanabackup-backup 1.7T 13G 1.7T 1% /hanabackup tmpfs 86G 0 86G 0% /run/user/0 /dev/mapper/vg_hana_usrsap-usrsap 32G 277M 32G 1% /usr/sap /dev/mapper/vg_hana_shared-shared 850G 54G 797G 7% /hana/shared /dev/mapper/vg_hana_data-data 1.1T 5.4G 1.1T 1% /hana/data /dev/mapper/vg_hana_log-log 475G 710M 475G 1% /hana/log
セカンダリ インスタンスをプロモートする
SID_LCadm
ユーザーとして、SAP HANA データベースのセカンダリ インスタンスを SAP HANA システム レプリケーションに登録します。hdbnsutil -sr_register --remoteHost=PRIMARY_INSTANCE_NAME \ --remoteInstance=PRIMARY_INSTANCE_NUMBER \ --replicationMode=syncmem --operationMode=logreplay \ --name=SECONDARY_INSTANCE_NAME
次のように置き換えます。
PRIMARY_INSTANCE_NAME
: SAP HANA システムのプライマリ インスタンスをホストする Compute Engine インスタンスの名前PRIMARY_INSTANCE_NUMBER
: SAP HANA システムのプライマリ インスタンスのインスタンス番号SECONDARY_INSTANCE_NAME
: SAP HANA システムのセカンダリ インスタンスをホストする Compute Engine インスタンスの名前
SAP HANA データベースのセカンダリ インスタンスを起動します。
HDB start
または、
sapcontrol
コマンドを使用してセカンダリ インスタンスを起動します。sapcontrol -nr INSTANCE_NUMBER -function StartSystem
SAP HANA データベースのプライマリ インスタンスで、
SID_LCadm
ユーザーとして、SAP HANA システム レプリケーションがアクティブであることを確認します。python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py
システム レプリケーションが有効であることを確認したら、SAP HANA データベースのセカンダリ インスタンスを新しいプライマリ インスタンスに設定します。
crm resource move msl_SAPHana_SID_HDBINSTANCE_NUMBER SECONDARY_INSTANCE_NAME
出力は次のようになります。
INFO: Move constraint created for msl_SAPHana_ABC_HDB00 to example-vm2 INFO: Use `crm resource clear msl_SAPHana_ABC_HDB00` to remove this constraint
HA クラスタのステータスを確認します。
crm status
出力は次のようになります。
example-vm1:~ # crm status Status of pacemakerd: 'Pacemaker is running' (last updated 2025-02-04 10:08:16Z) Cluster Summary: * Stack: corosync * Current DC: example-vm1 (version 2.1.5+20221208.a3f44794f-150500.6.20.1-2.1.5+20221208.a3f44794f) - partition with quorum * Last updated: Tue Feb 4 10:08:16 2025 * Last change: Tue Feb 4 10:07:47 2025 by root via crm_attribute on example-vm2 * 2 nodes configured * 8 resource instances configured Node List: * Online: [ example-vm1 example-vm2 ] Full List of Resources: * STONITH-example-vm1 (stonith:fence_gce): Started example-vm2 * STONITH-example-vm2 (stonith:fence_gce): Started example-vm1 * Resource Group: g-primary: * rsc_vip_int-primary (ocf::heartbeat:IPaddr2): Started example-vm2 * rsc_vip_hc-primary (ocf::heartbeat:anything): Started example-vm2 * Clone Set: cln_SAPHanaTopology_ABC_HDB00 [rsc_SAPHanaTopology_ABC_HDB00]: * Started: [ example-vm1 example-vm2 ] * Clone Set: msl_SAPHana_ABC_HDB00 [rsc_SAPHana_ABC_HDB00] (promotable): * Masters: [ example-vm2 ] * Slaves: [ example-vm1 ]
root ユーザーまたは
sudo
アクセス権を持つユーザーとして制約を削除し、リソースが特定の Compute Engine インスタンスを優先しないように設定します。crm resource clear msl_SAPHana_SID_HDBINSTANCE_NUMBER
出力は次のようになります。
INFO: Removed migration constraints for msl_SAPHana_ABC_HDB00
以前のプライマリ インスタンスを移行する
SAP HANA システムの以前のプライマリ インスタンスを移行するには、前のセクションで説明した手順を繰り返します。
HA クラスタのメンテナンス モードを解除します。
crm maintenance off
既存のディスクにフォールバックする
ディスクの移行に失敗した場合は、移行手順を開始する前のデータが存在するため、既存の Persistent Disk ボリュームを使用できます。
SAP HANA データベースを元の状態に復元するには、次の操作を行います。
- SAP HANA データベースをホストする Compute Engine インスタンスを停止します。
- 作成した Hyperdisk ボリュームを切断します。
- 既存の Persistent Disk ボリュームをコンピューティング インスタンスに再アタッチします。
- コンピューティング インスタンスを起動します。
クリーンアップ
SAP HANA ファイル システムを個々のディスクに正常に移行したら、使用していた Persistent Disk ボリュームに関連するリソースをクリーンアップします。これには、ディスク スナップショットとディスク自体が含まれます。
ディスク スナップショットを削除する方法については、ディスク スナップショットを管理するをご覧ください。
SAP HANA システムで使用していた Persistent Disk ボリュームを削除するには、
gcloud compute disks delete
コマンドを実行します。gcloud compute disks delete SOURCE_DISK_NAME --ZONE=ZONE