你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 应用程序一致性快照工具的预览功能

本文提供了有关 Azure 应用程序一致性快照工具 (AzAcSnap) 预览版中新增功能的设置和使用指南。 有关该工具的基本信息,请参阅什么是 Azure 应用程序一致性快照工具?

AzAcSnap 10 提供的预览功能包括:

  • Microsoft SQL Server
  • Azure NetApp 文件备份
  • Azure 托管磁盘

注意

预览版“按原样”提供,提供时“包含全部错误”,并且会“视可用性情况”提供,不包含在服务级别协议之内,可能未在客户支持范围内。 预览版受Microsoft Azure 预览版的补充使用条款的约束 https://azure.microsoft.com/support/legal/preview-supplemental-terms/

使用 AzAcSnap 预览版功能

AzAcSnap 预览版功能与正式版功能一起提供。 使用预览版功能需要使用 --preview 命令行选项。 要设置和安装 AzAcSnap,请参阅 Azure 应用程序一致性快照工具入门

提供反馈

你可以在线提供有关 AzAcSnap(包括此预览版)的反馈。

Microsoft SQL Server

支持的平台和操作系统

注意

对 Microsoft SQL Server 的支持是预览功能。
本部分的内容是对什么是 Azure 应用程序一致性快照工具页的补充。

此预览版支持的新数据库平台和操作系统。

  • 数据库
    • 仅基于 Windows Server 2019(或更高版本)的 Microsoft SQL Server 2022(或更高版本)为预览版。

启用与数据库的通信

注意

对 Microsoft SQL Server 的支持是预览功能。
本部分的内容是对安装 Azure 应用程序一致性快照工具页的补充。 本部分介绍如何启用与数据库的通信。 确保从选项卡中正确选择了所使用的数据库。

快照工具直接向 Microsoft SQL Server 数据库发出命令来启用和禁用备份模式。

AzAcSnap 使用提供的连接字符串直接连接到 Microsoft SQL Server 以发出 SQL 命令(例如 ALTER SERVER CONFIGURATION SET SUSPEND_FOR_SNAPSHOT_BACKUP = ONALTER SERVER CONFIGURATION SET SUSPEND_FOR_SNAPSHOT_BACKUP = OFF)。 连接字符串会确定安装是在数据库服务器上还是在集中式“备份”服务器上。 AzAcSnap 的典型安装会安装到数据库服务器上,以确保刷新文件缓冲区之类的功能能够按预期使用。 如果 AzAcSnap 已安装到数据库服务器上,请确保运行 azacsnap 的用户具有所需的权限。

azacsnap 用户权限

请参阅 Azure 应用程序一致性快照工具入门azacsnap 用户应有权将 Microsoft SQL Server 置于备份模式,并有权将 I/O 缓冲区刷新到配置的卷。

使用正确的 Microsoft SQL Server 值配置 (.\azacsnap.exe -c configure) 并测试 (.\azacsnap.exe -c test --test mssql) azacsnap 数据库连接性。 运行 azacsnap 测试命令

.\azacsnap.exe -c test --test mssql
BEGIN : Test process started for 'mssql'
BEGIN : Database tests
PASSED: Successful connectivity to MSSQL version 16.00.1115
END   : Test process complete for 'mssql'

配置数据库

本部分介绍如何配置数据库。

Microsoft SQL Server 不需要特殊数据库配置,因为我们使用的是用户的本地操作系统环境。

配置 AzAcSnap

本部分介绍如何为指定的数据库配置 AzAcSnap。

注意

对 Microsoft SQL Server 的支持是预览功能。
本部分的内容是对配置 Azure 应用程序一致性快照工具网站页面的补充。

所需值的详细信息

以下部分详细介绍了配置文件所需的各种值。

用于配置的 Microsoft SQL Server 数据库值

将 Microsoft SQL Server 数据库添加到配置时,需要以下值:

  • connectionString = 用于连接到数据库的连接字符串。 对于在运行 Microsoft SQL Server 的系统上进行的典型 AzAcSnap 安装(其中的数据库实例为 MSSQL2022),连接字符串为“Trusted_Connection=True;Persist Security Info=True;Data Source=MSSQL2022;TrustServerCertificate=true”。
  • instanceName = 数据库实例名称。
  • metaDataFileLocation = Microsoft SQL Server 将备份元数据文件写出到的位置(例如“C:\MSSQL_BKP\”)。

Azure NetApp 文件备份

在多个卷上使用 AzAcSnap 拍摄快照时,默认情况下,所有快照的名称是相同的。 由于将快照存档到 Azure NetApp 文件备份中时会从资源 ID 层次结构中移除卷名称,因此必须确保快照名称是唯一的。

通过将卷名称追加到普通快照名称,AzAcSnap 可以自动确保在创建快照时使用唯一名称。 例如,对于一个包含两个数据卷(hanadata01hanadata02)的系统,在将 -c backup--prefix daily 结合使用时,完整的快照名称将变为 daily__F2AFDF98703__hanadata01daily__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 可以拍摄应用程序一致性数据库快照。 但是此平台的设置稍微复杂一些,因为在这种情况下,AzAcSnap 会采取额外的步骤来尝试刷新所有 I/O 缓冲区并确保它们被写出到持久性存储。 在 Linux 上,AzAcSnap 会调用 sync 命令来刷新文件缓冲区;在 Windows 上,它先使用对 FlushFileBuffers 的内核调用,然后对已装载的逻辑卷中的托管磁盘拍摄快照。

重要

AzAcSnap 需要该卷的适当操作系统权限才能执行刷新操作。

下面是一个高级别的体系结构:

  1. 使用 Azure 门户将 Azure 托管磁盘附加到 VM。
  2. 根据这些托管磁盘创建逻辑卷。
  3. 将逻辑卷装载到 Linux 目录。
  4. 使用与 AzAcSnap 安装中的 Azure NetApp 文件相同的方式启用通信。
  5. 安装和配置 AzAcSnap。

有关将 Azure 托管磁盘用作存储后端的详细信息,请参阅配置 Azure 应用程序一致性快照工具

示例配置文件

下面是一个示例配置文件。 请注意 dataVolumemountPointazureManagedDisks 的层次结构。

{
  "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,
        "storage": [
          {
            "dataVolumes": [
              {
                "mountPoint": "/hana/data",
                "aliStorageResources": [
                "azureManagedDisks": [
                  {
                    "resourceId": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.Compute/disks/<disk01>",
                    "authFile": ""
                  },
                  {
                    "resourceId": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.Compute/disks/<disk02>",
                    "authFile": ""
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  ]
}

虚拟机存储布局

存储层次结构如 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 大型实例(裸机)。

Azure 托管磁盘支持的 azacsnap 命令功能为 configuretestbackupdeletedetails,但尚不支持 restore

从 Azure 托管磁盘快照还原

尽管 azacsnap 当前缺少 Azure 托管磁盘的 -c restore 选项,但可以按如下所示手动还原:

  1. 通过 Azure 门户根据快照创建磁盘。

    请确保在与目标 VM 相同的可用性区域中创建磁盘。

  2. 通过 Azure 门户将磁盘连接到 VM。

  3. 以根用户身份登录到 VM,并使用 dmesgpvscan 扫描新附加的磁盘:

    • 使用 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   ]
      
  4. 以根用户身份使用 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.
    
  5. 通过使用 pvscanvgchange 以根用户身份激活逻辑卷:

    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
    
  6. 以根用户身份装载逻辑卷。

    使用 mount -o rw,nouuid 选项。 否则,卷装载会因为 VM 上的重复 UUID(通用唯一标识符)而失败。

    mount -o rw,nouuid /dev/hanadata_adhoc/hanadata /mnt/hanadata_adhoc
    
  7. 访问数据:

    ls /mnt/hanadata_adhoc/
    
    software  write-test.txt
    

后续步骤