Hyperdisk(特に Hyperdisk Extreme)を使用すると、SSD ベースの Persistent Disk タイプよりも SAP HANA のパフォーマンスが向上します。
SAP HANA データベースで使用される Persistent Disk ボリュームを Hyperdisk ボリュームに移行するには、Google Cloud のディスク スナップショットと SAP HANA 高速再起動オプションを使用します。
移行に関する考慮事項を確認する
- 移行データ: SAP HANA 高速再起動オプションがヘルパーとして使用されます。データベース テーブルの読み込みを待つ必要がないため、ディスクのグレーティング中のダウンタイムを短縮できます。ただし、行ストアとバイナリ ラージ オブジェクト(BLOB)データ型の再読み込みに必要な時間を考慮してください。
ダウンタイム: 移行プロセスではダウンタイムの最小化が求められますが、実際のダウンタイムは、次のタスクにかかる時間によって変わります。
ディスク スナップショットの作成。
ディスク スナップショットの取得中に発生するダウンタイムを減らすには、予定された移行作業の前にディスクのスナップショットを作成し、移行作業に近い段階でさらにスナップショットを作成します。これにより、スナップショットの差を小さくすることができます。
Persistent Disk ボリュームのスナップショットを使用して Hyperdisk ボリュームを作成する。
SAP HANA テーブルの SAP HANA メモリへの再読み込み。
既存のディスクに戻す: 移行中に問題が発生した場合は、既存のディスクに戻すことができます。ディスクはこの手順の影響を受けないため、削除するまで使用できます。詳細については、既存のディスクにフォールバックするをご覧ください。
始める前に
SAP HANA データベースで使用されている Persistent Disk ボリュームを Hyperdisk ボリュームに移行する前に、次の条件を満たしていることを確認してください。
- SAP HANA が、Hyperdisk をサポートする SAP 認定の Compute Engine インスタンスで実行されている。
/hana/data
ボリュームと/hana/log
ボリュームは別々のディスクでホストされます。- SAP HANA ストレージの永続化には、Linux の論理ボリューム管理が使用されます。直接ストレージを使用できますが、その場合、
/etc/fstab
テーブルを使用してデバイスの再マッピングを明示的に行う必要があります。 SAP HANA システムで SAP HANA 高速再起動オプションが有効になっている。
有効にする方法については、SAP HANA 高速再起動の有効化をご覧ください。
SAP HANA データベースの有効なバックアップを使用できる。このバックアップは、必要に応じてデータベースを復元するために使用されます。
ターゲット Compute Engine インスタンスが高可用性(HA)クラスタの一部である場合は、クラスタがメンテナンス モードになっていることを確認します。
SAP HANA データベースがスケールアウト デプロイを使用している場合は、SAP HANA インスタンスごとにこのガイドの手順を繰り返します。
SAP HANA データベースが稼働している。
tmpfs
ファイル システムには、MAIN
データ フラグメントの内容が完全に読み込まれている。ファイル システムの使用状況を確認するには、次のコマンドを実行します。df -Th
出力は次のようになります。
# df -Th Filesystem Type Size Used Avail Use% Mounted on ... /dev/mapper/vg_hana_shared-shared xfs 1.0T 56G 968G 6% /hana/shared /dev/mapper/vg_hana_data-data xfs 14T 5.7T 8.2T 41% /hana/data /dev/mapper/vg_hana_log-log xfs 512G 7.2G 505G 2% /hana/log /dev/mapper/vg_hana_usrsap-usrsap xfs 32G 276M 32G 1% /usr/sap tmpfsDB10 tmpfs 5.7T 800G 4.9T 14% /hana/tmpfs0/DB1 tmpfsDB11 tmpfs 5.7T 796G 4.9T 14% /hana/tmpfs1/DB1 tmpfsDB12 tmpfs 5.7T 783G 4.9T 14% /hana/tmpfs2/DB1 tmpfsDB13 tmpfs 5.7T 780G 4.9T 14% /hana/tmpfs3/DB1 tmpfsDB14 tmpfs 5.7T 816G 4.9T 15% /hana/tmpfs4/DB1 tmpfsDB15 tmpfs 5.7T 780G 4.9T 14% /hana/tmpfs5/DB1 tmpfsDB16 tmpfs 5.7T 816G 4.9T 15% /hana/tmpfs6/DB1 tmpfsDB17 tmpfs 5.7T 780G 4.9T 14% /hana/tmpfs7/DB1
Persistent Disk ボリュームを Hyperdisk ボリュームに移行する
このセクションでは、/hana/data
ボリュームと /hana/log
ボリュームを Persistent Disk ボリュームから Hyperdisk ボリュームに移行する方法について説明します。
ここでは、次の構成例の移行プロセスについて説明します。
- マシンタイプ:
m2-ultramem-416
(12 TB メモリ、416 vCPU) - Google Cloud のドキュメント(Terraform: SAP HANA スケールアップ デプロイガイド)を使用してデプロイされた SAP HANA スケールアップ システム。
- OS: SLES for SAP 15 SP1
- SAP HANA: HANA 2 SPS06、パッチ 63
- デフォルトのディスクタイプ: SSD 永続ディスク(
pd-ssd
) /hana/data
ボリュームと/hana/log
ボリュームは別々のディスクにマウントされ、LVM と XFS を使用してビルドされます。- SAP HANA Fast Restart オプションが有効になり、6 TB のデータがデータベースに読み込まれます。方法については、SAP HANA 高速再起動の有効化をご覧ください。
Persistent Disk ボリュームを Hyperdisk ボリュームに移行するには、次の操作を行います。
HDB stop
コマンドを実行して、SAP HANA データベースを停止します。HDB stop
または、
sapcontrol
コマンドを実行します。sapcontrol -nr INSTANCE_NUMBER -function StopSystem HDB
INSTANCE_NUMBER
は、SAP HANA システムのインスタンス番号に置き換えます。詳細については、SAP ドキュメントの Starting and Stopping SAP HANA Systems をご覧ください。
ファイル システムから
/hana/data
ボリュームと/hana/log
ボリュームのマウントを解除します。umount /hana/data umount /hana/log
次のいずれかの方法で、
/hana/data
ボリュームと/hana/log
ボリュームをホストするディスクの名前を確認します。ls
コマンドを実行します。ls -l /dev/disk/by-id/
出力には、次の例に示すように、ディスク名とデバイスのマッピングが表示されます。
... lrwxrwxrwx 1 root root 9 May 18 20:14 google-hana-vm-data00001 -> ../../sdb lrwxrwxrwx 1 root root 9 May 18 20:14 google-hana-vm-log00001 -> ../../sdc ...
gcloud compute instances describe
コマンドを実行します。gcloud compute instances describe INSTANCE_NAME --zone=ZONE
次のように置き換えます。
INSTANCE_NAME
: コンピューティング インスタンスの名前。ZONE
: コンピューティング インスタンスのゾーン。
出力には、アタッチされているディスクなど、コンピューティング インスタンスの詳細が表示されます。次に例を示します。
gcloud compute instances describe hana-vm --zone europe-west4-a ... disks: - autoDelete: false deviceName: hana-vm-shared00001 diskSizeGb: '1024' - autoDelete: false deviceName: hana-vm-usrsap00001 diskSizeGb: '32' - autoDelete: false deviceName: hana-vm-data00001 diskSizeGb: '14093' - autoDelete: false deviceName: hana-vm-log00001 diskSizeGb: '512'
Google Cloud コンソールで、Compute Engine の [VM インスタンス] ページに移動し、コンピューティング インスタンス名をクリックします。[ストレージ] セクションに、関連するディスク情報が表示されます。
/hana/data
ボリュームと/hana/log
ボリュームをホストするディスクのスナップショットを作成します。gcloud compute snapshots create DATA_DISK-snapshot \ --project=PROJECT_ID \ --source-disk-zone=SOURCE_DISK_ZONE \ --source-disk=DATA_DISK \ gcloud compute snapshots create LOG_DISK-snapshot \ --project=PROJECT_ID \ --source-disk-zone=SOURCE_DISK_ZONE \ --source-disk=LOG_DISK
次のように置き換えます。
DATA_DISK
:/hana/data
ボリュームをホストするディスクの名前。データディスクのスナップショットの接頭辞として設定されます。LOG_DISK
:/hana/log
ボリュームをホストするディスクの名前。ログディスクのスナップショットの接頭辞として設定されます。PROJECT_ID
: ディスクがデプロイされている Google Cloud プロジェクトの IDSOURCE_DISK_ZONE
: ディスクがデプロイされる Compute Engine ゾーン
スナップショットの作成の詳細については、ディスク スナップショットの作成と管理をご覧ください。
作成したディスク スナップショットを使用して、
/hana/data
ボリュームと/hana/log
ボリュームの Hyperdisk ボリュームを作成します。gcloud compute disks create DATA_DISK-hd \ --project=PROJECT_ID \ --zone=ZONE \ --type=HYPERDISK_TYPE \ --provisioned-iops=IOPS_DATA_DISK \ --source-snapshot=DATA_DISK-snapshot \ gcloud compute disks create LOG_DISK-hd \ --project=PROJECT_ID \ --zone=ZONE \ --type=HYPERDISK_TYPE \ --provisioned-iops=IOPS_LOG_DISK \ --source-snapshot=LOG_DISK-snapshot
次のように置き換えます。
DATA_DISK
:/hana/data
ボリュームをホストする Persistent Disk ボリュームの名前。これは、作成する Hyperdisk ボリュームの名前の接頭辞として設定されます。LOG_DISK
:/hana/log
ボリュームをホストする Persistent Disk ボリュームの名前。これは、作成する Hyperdisk ボリュームの名前の接頭辞として設定されます。PROJECT_ID
: Google Cloud プロジェクトの IDHYPERDISK_TYPE
: 作成する Hyperdisk のタイプ(hyperdisk-extreme
など)。ZONE
: Hyperdisk ボリュームをデプロイする必要がある Compute Engine ゾーンIOPS_DATA_DISK
:/hana/data
をホストするために作成する Hyperdisk に設定する IOPS。IOPS は、パフォーマンス要件に従って設定します。IOPS_LOG_DISK
:/hana/log
をホストするために作成する Hyperdisk に設定する IOPS。IOPS は、パフォーマンス要件に従って設定します。
Hyperdisk Balanced(
hyperdisk-balanced
)ボリュームを作成する場合は、スループットを設定することもできます。SAP HANA で Hyperdisk ボリュームを使用する場合に設定する必要がある最小サイズ、IOPS、スループットについては、SSD ベースの Persistent Disk と Hyperdisk ボリュームの最小サイズで、Compute Engine マシンタイプに対応する行をご覧ください。
スナップショットからディスクを復元する方法については、スナップショットから復元するをご覧ください。
SAP HANA データベースをホストする Compute Engine インスタンスから、
/hana/data
ボリュームと/hana/log
ボリュームをホストしている Persistent Disk ボリュームを切断します。gcloud compute instances detach-disk INSTANCE_NAME \ --disk=DATA_DISK \ --zone=ZONE gcloud compute instances detach-disk INSTANCE_NAME \ --disk=LOG_DISK \ --zone=ZONE
次のように置き換えます。
INSTANCE_NAME
: Compute Engine インスタンスの名前DATA_DISK
: 切断する/hana/data
ボリュームをホストする Persistent Disk ボリュームの名前LOG_DISK
: 切断する/hana/log
ボリュームをホストする Persistent Disk ボリュームの名前ZONE
: ディスクがデプロイされる Compute Engine ゾーン
作成した Hyperdisk ボリュームを、SAP HANA データベースをホストする Compute Engine インスタンスにアタッチします。
gcloud compute instances attach-disk INSTANCE_NAME \ --disk=DATA_DISK-hd \ --zone=ZONE gcloud compute instances attach-disk INSTANCE_NAME \ --disk=LOG_DISK-hd \ --zone=ZONE
次のように置き換えます。
INSTANCE_NAME
: Compute Engine インスタンスの名前DATA_DISK
:/hana/data
ボリュームのホストに使用する Hyperdisk ボリュームの名前LOG_DISK
:/hana/log
ボリュームのホストに使用する Hyperdisk ボリュームの名前ZONE
: Hyperdisk がデプロイされている Compute Engine ゾーン
Hyperdisk ボリュームをマウントするには、
root
またはsudo
アクセス権を持つユーザーとして次の操作を行います。LVM デバイスのマッピングの競合を避けるため、すべてのデバイス マッピングの定義を削除します。
dmsetup remove_all
ボリューム グループがないかすべてのディスクをスキャンし、キャッシュを再構築して、不足しているボリューム(LVM を含む)を作成します。
vgscan -v --mknodes
出力は次のようになります。
Scanning all devices to initialize lvmetad. Reading volume groups from cache. Found volume group "vg_hana_data" using metadata type lvm2 Found volume group "vg_hana_shared" using metadata type lvm2 Found volume group "vg_hana_log" using metadata type lvm2 Found volume group "vg_hana_usrsap" using metadata type lvm2
ボリューム グループを有効にします。
vgchange -ay
出力は次のようになります。
1 logical volume(s) in volume group "vg_hana_data" now active 1 logical volume(s) in volume group "vg_hana_shared" now active 1 logical volume(s) in volume group "vg_hana_log" now active 1 logical volume(s) in volume group "vg_hana_usrsap" now active
論理ボリュームをスキャンします。
lvscan
出力は次のようになります。
ACTIVE '/dev/vg_hana_data/data' [13.76 TiB] inherit ACTIVE '/dev/vg_hana_shared/shared' [1024.00 GiB] inherit ACTIVE '/dev/vg_hana_log/log' [512.00 GiB] inherit ACTIVE '/dev/vg_hana_usrsap/usrsap' [32.00 GiB] inherit
ディスクをマウントします。
mount -av
出力は次のようになります。
/ : ignored /boot/efi : already mounted /hana/shared : already mounted /hana/data : already mounted /hana/log : already mounted /usr/sap : already mounted swap : ignored /hana/tmpfs0/DB1 : already mounted /hana/tmpfs1/DB1 : already mounted /hana/tmpfs2/DB1 : already mounted /hana/tmpfs3/DB1 : already mounted /hana/tmpfs4/DB1 : already mounted /hana/tmpfs5/DB1 : already mounted /hana/tmpfs6/DB1 : already mounted /hana/tmpfs7/DB1 : already mounted
新しいボリュームを確認します。
ファイル システムの使用状況を確認します。
df -Th
出力は次のようになります。
Filesystem Type Size Used Avail Use% Mounted on ... /dev/mapper/vg_hana_shared-shared xfs 1.0T 56G 968G 6% /hana/shared /dev/mapper/vg_hana_usrsap-usrsap xfs 32G 277M 32G 1% /usr/sap tmpfsDB10 tmpfs 5.7T 784G 4.9T 14% /hana/tmpfs0/DB1 tmpfsDB11 tmpfs 5.7T 783G 4.9T 14% /hana/tmpfs1/DB1 tmpfsDB12 tmpfs 5.7T 783G 4.9T 14% /hana/tmpfs2/DB1 tmpfsDB13 tmpfs 5.7T 782G 4.9T 14% /hana/tmpfs3/DB1 tmpfsDB14 tmpfs 5.7T 783G 4.9T 14% /hana/tmpfs4/DB1 tmpfsDB15 tmpfs 5.7T 783G 4.9T 14% /hana/tmpfs5/DB1 tmpfsDB16 tmpfs 5.7T 783G 4.9T 14% /hana/tmpfs6/DB1 tmpfsDB17 tmpfs 5.7T 782G 4.9T 14% /hana/tmpfs7/DB1 /dev/mapper/vg_hana_log-log xfs 512G 7.2G 505G 2% /hana/log /dev/mapper/vg_hana_data-data xfs 14T 5.7T 8.2T 41% /hana/data
デバイスが新しいボリュームにリンクされていることを確認します。
lsblk
出力は次のようになります。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... sdd 8:48 0 1T 0 disk └─vg_hana_shared-shared 254:0 0 1024G 0 lvm /hana/shared sde 8:64 0 32G 0 disk └─vg_hana_usrsap-usrsap 254:3 0 32G 0 lvm /usr/sap sdf 8:80 0 13.8T 0 disk └─vg_hana_data-data 254:1 0 13.8T 0 lvm /hana/data sdg 8:96 0 512G 0 disk └─vg_hana_log-log 254:2 0 512G 0 lvm /hana/log
次のいずれかのコマンドを使用して、SAP HANA データベースを起動します。
HDB start
コマンドを実行します。HDB start
sapcontrol
コマンドを実行します。sapcontrol -nr INSTANCE_NUMBER -function StartSystem HDB
INSTANCE_NUMBER
は、SAP HANA データベースのインスタンス番号に置き換えます。詳細については、SAP HANA システムの起動と停止をご覧ください。
既存のディスクにフォールバックする
ディスクの移行に失敗した場合は、移行手順の開始前のデータが存在するため、既存の Persistent Disk ボリュームを使用できます。
SAP HANA データベースを元の状態に復元する手順は次のとおりです。
- SAP HANA データベースをホストする Compute Engine インスタンスを停止します。
- 作成した Hyperdisk ボリュームを切断します。
- 既存の Persistent Disk ボリュームをコンピューティング インスタンスに再アタッチします。
- コンピューティング インスタンスを起動します。