與以 SSD 為基礎的永久磁碟類型相比,Hyperdisk (尤其是 Hyperdisk Extreme) 可為 SAP HANA 提供更佳的效能。
如要將 SAP HANA 資料庫使用的永久磁碟磁碟區遷移至 Hyperdisk 磁碟區,請使用 Google Cloud的磁碟快照和 SAP HANA 快速重新啟動選項。
查看遷移注意事項
- 遷移資料:SAP HANA 快速重新啟動選項可做為輔助工具。這可減少磁碟切割作業的停機時間,因為您不必等待資料庫表格載入。不過,請務必考量重新載入資料行儲存庫和二進位大型物件 (BLOB) 資料類型所需的時間。
停機時間:雖然遷移程序所需的停機時間極短,但實際的停機時間取決於完成下列任務所需的時間:
建立磁碟快照。
為減少在擷取磁碟快照時的停機時間,您可以在預定的遷移活動前擷取磁碟快照,然後在活動前後擷取一些額外的快照,這樣快照之間的差異就會比較小。
使用 Persistent Disk 磁碟區的快照建立 Hyperdisk 磁碟區。
將 SAP HANA 資料表重新載入 SAP HANA 記憶體。
還原至現有磁碟:如果遷移期間發生任何問題,您可以還原至現有磁碟,因為這類磁碟不會受到此程序影響,且可供使用,直到您自行刪除為止。詳情請參閱「改用現有磁碟」一文。
事前準備
將 SAP HANA 資料庫使用的永久磁碟磁碟區遷移至 Hyperdisk 磁碟區前,請確認符合下列條件:
- SAP HANA 會在SAP 認證的 Compute Engine 執行個體上執行,這些執行個體支援 Hyperdisk。
/hana/data
和/hana/log
磁碟區會在不同的磁碟上代管。- 使用 Linux 邏輯磁碟區管理功能,為 SAP HANA 儲存空間提供持久性。雖然可以使用直接儲存空間,但必須透過
/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 快速重新啟動選項,並將 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 文件「啟動及停止 SAP HANA 系統」。
從檔案系統卸載
/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 instances」頁面,然後按一下運算執行個體名稱。「儲存空間」部分會顯示相關磁碟資訊。
建立主控
/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
) 磁碟區,也可以設定其處理量。如要瞭解在使用 Hyperdisk 磁碟區搭配 SAP HANA 時,需要設定的最低大小、IOPS 和傳輸量,請參閱 以 SSD 為基礎的永久磁碟和 Hyperdisk 磁碟區的最低大小,並查看與您所用 Compute Engine 機器類型相對應的資料列。
如要進一步瞭解如何透過快照還原磁碟,請參閱「從快照還原」。
從代管 SAP HANA 資料庫的 Compute Engine 執行個體中,卸除代管
/hana/data
和/hana/log
磁碟的永久磁碟磁碟區: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
磁碟區所屬永久磁碟磁碟區的名稱LOG_DISK
:您要卸載的/hana/log
磁碟區所屬永久磁碟磁碟區的名稱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
:部署超磁碟的 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 系統」。
改用現有磁碟
如果磁碟遷移作業失敗,您可以改回使用現有的永久磁碟磁碟區,因為這些磁碟區包含遷移程序開始前的原始資料。
如要將 SAP HANA 資料庫還原至原始狀態,請執行下列步驟:
- 停止託管 SAP HANA 資料庫的 Compute Engine 執行個體。
- 卸除您建立的 Hyperdisk 磁碟區。
- 將現有的永久磁碟磁碟區重新連結至運算執行個體。
- 啟動運算執行個體。