你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 应用程序一致性快照工具的预览功能
本文提供有关Azure 应用程序一致快照工具(AzAcSnap)预览版中新功能的设置和使用指南。 有关该工具的基本信息,请参阅什么是Azure 应用程序一致性快照工具?
AzAcSnap 9 提供的预览功能包括:
- Azure NetApp 文件备份
- Azure 托管磁盘
注意
预览版“按原样”、“所有故障”和“可用”。它们被排除在服务级别协议和有限担保之外。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
提供反馈
你可以在线提供有关 AzAcSnap(包括此预览版)的反馈。
使用 AzAcSnap 预览功能
AzAcSnap 预览版功能与正式版功能一起提供。 使用预览功能需要使用 --preview
命令行选项。 若要设置和安装 AzAcSnap,请参阅Azure 应用程序一致快照工具入门。
Azure NetApp 文件备份
在多个卷上使用 AzAcSnap 获取快照时,默认情况下,所有快照的名称都相同。 由于将快照存档到Azure NetApp 文档备份中时从资源 ID 层次结构中删除卷名称,必须确保快照名称是唯一的。
AzAcSnap 可以通过将卷名称追加到普通快照名称,在创建快照时自动确保使用唯一名称。 例如,对于一个包含两个数据卷(hanadata01
()hanadata02
的系统,使用-c backup
--prefix daily
时,完整的快照名称将变为daily__F2AFDF98703__hanadata01
和daily__F2AFDF98703__hanadata02
。
可以通过在配置文件中设置 "anfBackup": "renameOnly"
在 AzAcSnap 中启用此功能,如以下代码片段所示:
"anfStorage": [
{
"anfBackup" : "renameOnly",
"dataVolume": [
还可以使用 azacsnap -c configure --configuration edit --configfile <configfilename>
.. 对于 Enter new value for 'ANF Backup (none, renameOnly)' (current = 'none'):
,请输入 renameOnly
。
有关此功能的详细信息,请参阅配置Azure 应用程序一致快照工具。
Azure 托管磁盘
Microsoft 提供了许多存储选项,用于部署 SAP HANA 等数据库。 有关其中一些选项的详细信息,请参阅 SAP 工作负荷Azure 存储类型。 还有一个 具有成本意识的解决方案,其中包含 Azure 高级存储。
在此类体系结构(即具有托管磁盘的虚拟机 [VM] )上部署数据库时,AzAcSnap 可以采用应用程序一致性数据库快照。 但是,此平台的设置稍微复杂一些,因为在此方案中,需要先阻止 I/O 到装入点(通过使用xfs_freeze
),然后才能在装载的逻辑卷中快照托管磁盘。
重要
Linux 系统必须有可用的 xfs_freeze
才能阻止磁盘 I/O。
请特别注意使用正确的装入点(文件系统)配置 AzAcSnap,因为 xfs_freeze
阻止 I/O 到 Azure 托管磁盘的装入点指定的设备。 此行为可能会无意中阻止正在运行的应用程序,直到 azacsnap
完成运行。
下面是一个高级别的体系结构:
使用 Azure 门户将 Azure 托管磁盘附加到 VM。
从这些托管磁盘创建逻辑卷。
将逻辑卷装载到 Linux 目录。
以与 AzAcSnap 安装中的Azure NetApp 文档相同的方式创建服务主体。
安装和配置 AzAcSnap。
配置器有一个新选项来定义逻辑卷的装入点。 将数据库置于备份模式并刷新 I/O 缓存(依赖于 Linux 内核参数
fs.xfs.xfssyncd_centisecs
)后,此参数将xfs_freeze
传递给阻止 I/O。安装并配置为
xfs_freeze
以非特权用户身份运行:创建包含以下内容的可执行文件
$HOME/bin/xfs_freeze
:#!/bin/sh /usr/bin/sudo /usr/sbin/xfs_freeze $1 $2
创建一个调用
/etc/sudoers.d/azacsnap
的 sudoers 文件,以允许用户azacsnap
使用以下内容运行xfs_freeze
:# # What: azacsnap # Why: Allow the azacsnap user to run "specific" commands with elevated privileges. # # User_Alias = SAP HANA Backup administrator user. User_Alias AZACSNAP = azacsnap # AZACSNAP ALL=(ALL) NOPASSWD: /usr/sbin/xfs_freeze
azacsnap
通过以用户身份azacsnap
运行以下代码,测试用户是否可以冻结和取消冻结目标装入点的 I/O。此示例运行每个命令两次以显示它第一次工作,因为没有用于确认是否已
xfs_freeze
冻结 I/O 的命令。冻结 I/O:
su - azacsnap xfs_freeze -f /hana/data xfs_freeze -f /hana/data
xfs_freeze: cannot freeze filesystem at /hana/data: Device or resource busy
取消冻结 I/O:
su - azacsnap xfs_freeze -u /hana/data xfs_freeze -u /hana/data
xfs_freeze: cannot unfreeze filesystem mounted at /hana/data: Invalid argument
有关将 Azure 托管磁盘用作存储后端的详细信息,请参阅配置Azure 应用程序一致性快照工具。
示例配置文件
下面是一个示例配置文件。 请注意的层次结构dataVolume
mountPoint
,以及azureManagedDisks
。
{
"version": "5.1 Preview",
"logPath": "./logs",
"securityPath": "./security",
"comments": [],
"database": [
{
"hana": {
"serverAddress": "127.0.0.1",
"sid": "P40",
"instanceNumber": "00",
"hdbUserStoreName": "AZACSNAP",
"savePointAbortWaitSeconds": 600,
"autoDisableEnableBackint": false,
"hliStorage": [],
"anfStorage": [],
"amdStorage": [
{
"dataVolume": [
{
"mountPoint": "/hana/data",
"azureManagedDisks": [
{
"resourceId": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.Compute/disks/<disk01>",
"authFile": "azureauth.json"
},
{
"resourceId": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.Compute/disks/<disk02>",
"authFile": "azureauth.json"
}
]
}
],
"otherVolume": []
}
]
},
"oracle": null
}
]
}
虚拟机存储布局
存储层次结构如 SAP HANA 的以下示例所示:
SAP HANA 数据库的数据文件:
/hana/data/mnt00001
装入点:
/dev/mapper/hanadata-hanadata on /hana/data type xfs
逻辑卷:
lvdisplay
--- Logical volume --- LV Path /dev/hanadata/hanadata LV Name hanadata VG Name hanadata
卷组:
vgdisplay
--- Volume group --- VG Name hanadata System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 1023.99 GiB
物理卷(附加的 Azure 托管磁盘):
pvdisplay
--- Physical volume --- PV Name /dev/sdd VG Name hanadata PV Size 512.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 131071 Free PE 0 Allocated PE 131071 PV UUID K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX --- Physical volume --- PV Name /dev/sdc VG Name hanadata PV Size 512.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 131071 Free PE 0 Allocated PE 131071 PV UUID RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV
以这种方式安装和设置 Azure VM 和 Azure 托管磁盘遵循 Microsoft 指南,在 VM 上创建托管磁盘的逻辑卷管理器(LVM)条带。
根据规定设置 Azure VM,AzAcSnap 可以采用 Azure 托管磁盘快照。 快照操作类似于 AzAcSnap 支持的其他存储后端的操作;例如,Azure NetApp 文档或 Azure 大型实例(裸机)。 由于 AzAcSnap 与 Azure 资源管理器 通信以采用快照,因此还需要具有正确权限的服务主体才能获取托管磁盘快照。
此功能允许客户在较小的系统上测试 AzAcSnap,并纵向扩展到Azure NetApp 文档和/或 Azure 大型实例(裸机)。
azacsnap
Azure 托管磁盘支持的命令功能是configure
、test
、backup
和delete
details
,但尚不支持restore
。
从 Azure 托管磁盘还原快照
尽管 azacsnap
当前缺少 -c restore
Azure 托管磁盘的选项,但可以按如下所示手动还原:
通过Azure 门户从快照创建磁盘。
请确保在与目标 VM 相同的可用性区域中创建磁盘。
通过 Azure 门户将磁盘连接到 VM。
以根用户身份登录到 VM,并使用
dmesg
或pvscan
:使用
dmesg
:dmesg | tail -n30
[2510054.252801] scsi 5:0:0:2: Direct-Access Msft Virtual Disk 1.0 PQ:0 ANSI: 5 [2510054.262358] scsi 5:0:0:2: Attached scsi generic sg4 type 0 [2510054.268514] sd 5:0:0:2: [sde] 1073741824 512-byte logical blocks: (550 GB/512 GiB) [2510054.272583] sd 5:0:0:2: [sde] 4096-byte physical blocks [2510054.275465] sd 5:0:0:2: [sde] Write Protect is off [2510054.277915] sd 5:0:0:2: [sde] Mode Sense: 0f 00 10 00 [2510054.278566] sd 5:0:0:2: [sde] Write cache: disabled, read cache: enabled, supports DPO and FUA [2510054.314269] sd 5:0:0:2: [sde] Attached SCSI disk [2510054.573135] scsi 5:0:0:3: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 5 [2510054.579931] scsi 5:0:0:3: Attached scsi generic sg5 type 0 [2510054.584505] sd 5:0:0:3: [sdf] 1073741824 512-byte logical blocks: (550 GB/512 GiB) [2510054.589293] sd 5:0:0:3: [sdf] 4096-byte physical blocks [2510054.592237] sd 5:0:0:3: [sdf] Write Protect is off [2510054.594735] sd 5:0:0:3: [sdf] Mode Sense: 0f 00 10 00 [2510054.594839] sd 5:0:0:3: [sdf] Write cache: disabled, read cache: enabled, supports DPO and FUA [2510054.627310] sd 5:0:0:3: [sdf] Attached SCSI disk
使用
pvscan
:saphana:~ # pvscan
WARNING: scan found duplicate PVID RNCylWF3OGG93c1XL3W6pwM0XB2mYFGV on /dev/sde WARNING: scan found duplicate PVID K3yhxN2713lk4kc3PcxOJQsCkD8ZE6YX on /dev/sdf WARNING: Not using device /dev/sde for PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV. WARNING: Not using device /dev/sdf for PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX. WARNING: PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV prefers device /dev/sdc because device is used by LV. WARNING: PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX prefers device /dev/sdd because device is used by LV. PV /dev/sdd VG hanadata lvm2 [512.00 GiB / 0 free] PV /dev/sdc VG hanadata lvm2 [512.00 GiB / 0 free] Total: 2 [1023.99 GiB] / in use: 2 [1023.99 GiB] / in no VG: 0 [0 ]
使用
vgimportclone
根用户身份从磁盘导入卷组克隆:vgimportclone --basevgname hanadata_adhoc /dev/sde /dev/sdf
WARNING: scan found duplicate PVID RNCylWF3OGG93c1XL3W6pwM0XB2mYFGV on /dev/sde WARNING: scan found duplicate PVID K3yhxN2713lk4kc3PcxOJQsCkD8ZE6YX on /dev/sdf WARNING: Not using device /dev/sde for PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV. WARNING: Not using device /dev/sdf for PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX. WARNING: PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV prefers device /dev/sdc because device is used by LV. WARNING: PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX prefers device /dev/sdd because device is used by LV.
通过使用
pvscan
根用户和vgchange
作为根用户激活逻辑卷:pvscan --cache
pvscan[23761] PV /dev/sdc online. pvscan[23761] PV /dev/sdd online. pvscan[23761] PV /dev/sde online. pvscan[23761] PV /dev/sdf online.
vgchange -ay hanadata_adhoc
1 logical volume(s) in volume group "hanadata_adhoc" now active
将逻辑卷装载为根用户。
使用
mount -o rw,nouuid
选项。 否则,卷装载会因为 VM 上的重复 UUID(通用唯一标识符)而失败。mount -o rw,nouuid /dev/hanadata_adhoc/hanadata /mnt/hanadata_adhoc
访问数据:
ls /mnt/hanadata_adhoc/
software write-test.txt