文档首页/ 云备份 CBR/ 最佳实践/ 通过VMware备份主机批量恢复脚本
更新时间:2025-07-30 GMT+08:00
分享

通过VMware备份主机批量恢复脚本

场景介绍

针对VMware备份上云场景,云备份(Cloud Backup and Recovery,CBR)增加VMware版本兼容性。但是,VMware混合云备份界面只能操作单个虚拟机进行备份数据恢复,在虚拟机较多时,界面操作步骤繁琐且并发太少。通过该章节内容实现脚本批量执行备份数据恢复,以增加备份副本恢复的并发数,提高效率。

脚本说明

脚本基于Python语言开发,主要实现备份数据批量恢复功能、批量回滚功能等。

config.py

配置文件

main.py

备份数据批量恢复主流程

rollback.py

批量回滚,用于批量删除云服务器

前提条件

  • 熟悉Python语言,并有Python环境搭建基础。
  • 熟悉华为云备份数据恢复功能。

方案使用到的接口

URL

所属服务

用途

API文档

POST

/v3/auth/tokens

IAM

认证鉴权

认证鉴权

GET /v3/{project_id}/backups/{backup_id}

CBR

查询备份详情

查询指定备份

POST

/v1/{project_id}/cloudservers

ECS

创建ECS

创建云服务器

GET /v1/{project_id}/jobs/{job_id}

ECS

查询ECS是否创建完成

查询任务的执行状态

GET

/v1/{project_id}/cloudservers/{server_id}

ECS

查询ECS详情,获取创建好的虚拟机的挂载的磁盘信息

查询服务器详情

POST /v3/{project_id}/backups/{backup_id}/restore

CBR

使用备份恢复数据

备份恢复

参数获取

用户需要收集配置数据,完成config.py中变量的初始赋值,主要包含IAM鉴权参数、项目公共参数、服务器参数、备份数据参数、回滚参数以及监控任务参数。

IAM鉴权参数

  1. 登录管理控制台。
  2. 在“控制台”页面,鼠标移动至右上方的用户名,在下拉列表中选择“我的凭证”。
  3. 在“我的凭证”界面,单击API凭证界面查看。

表1 IAM鉴权参数说明

参数

是否必选

参数类型

描述

iamDomain

是

String

IAM用户名

iamUser

是

String

IAM用户所属账号名

iamPassword

是

String

IAM用户密码

公共参数

  1. 登录管理控制台。
  2. 在“控制台”页面,鼠标移动至右上方的用户名,在下拉列表中选择“我的凭证”。
  3. 在“我的凭证”界面,单击API凭证界面查看。

表2 公共参数说明

参数

是否必选

参数类型

描述

projectName

是

String

项目

projectId

是

String

项目ID

服务器参数

  • 获取imageRef参数
    1. 登录云服务器管理控制台。
      1. 登录管理控制台。
      2. 单击管理控制台左上角的,选择区域。
      3. 单击“”,选择“计算 > 弹性云服务器”。
    2. 在左侧导航栏选择“镜像服务”,找到对应镜像并复制镜像ID。

  • 获取flavorRef参数

    在弹性云服务器控制台界面,单击“购买弹性云服务器”,在“规格”项中找到对应的待创建云服务器的系统规格ID。

  • 获取vpcId参数
    1. 登录云服务器管理控制台。
      1. 登录管理控制台。
      2. 单击管理控制台左上角的,选择区域。
      3. 单击“”,选择“网络 > 虚拟私有云”。
    2. 在左侧导航栏选择“虚拟私有云 > 我的VPC”,找到对应vpcid。

  • 获取subnetId参数

    在网络控制台界面,左侧导航栏选择“虚拟私有云 > 子网”,找到对应VPC下已创建的子网(subnet)的网络ID。

  • 获取securityGroups参数

    在网络控制台界面,左侧导航栏选择“访问控制 > 安全组”,找到云服务器对应安全组信息。

  • 获取volumeType参数

    云硬盘类型参数,目前支持"SATA","SAS","GPSSD","SSD","ESSD","GPSSD2","ESSD2"七种。

    具体信息可参见创建云硬盘volume_type参数说明。

  • 获取enterpriseProjectId参数

    企业项目ID,默认为'0'。

  • 获取keyName参数

    密钥名称,默认不需要配置。如果需要使用SSH密钥方式登录云服务器,请指定已创建密钥的名称。

    表3 服务器参数说明

    参数

    是否必选

    参数类型

    描述

    imageRef

    是

    String

    待创建云服务器的系统镜像,需要指定已创建镜像的ID,ID格式为通用唯一识别码(Universally Unique Identifier,简称UUID)。

    volumeType

    是

    String

    云服务器系统盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。

    默认值:"SSD"

    flavorRef

    是

    String

    待创建云服务器的系统规格的ID。

    示例: "s7n.small.1"

    vpcId

    是

    String

    待创建云服务器所属虚拟私有云(简称VPC),需要指定已创建VPC的ID,UUID格式。

    subnetId

    是

    String

    待创建云服务器所在的子网信息。

    需要指定vpcid对应VPC下已创建的子网(subnet)的网络ID,UUID格式。

    enterpriseProjectId

    是

    Integer

    企业项目ID。

    默认值:0

    securityGroups

    是

    List

    云服务器对应安全组信息。

    ["xxx", "xxx"]

    keyName

    否

    String

    如果需要使用SSH密钥方式登录云服务器,请指定已创建密钥的名称。

备份数据参数

  1. 登录管理控制台。
  2. 单击管理控制台左上角的,选择区域。
  3. 单击“”,选择“存储 > 云备份 CBR”。
  4. 选择“混合云备份 > VMware备份”,在备份副本列表获取备份数据ID。

表4 备份数据参数说明

参数

是否必选

参数类型

描述

backupIds

是

List

备份数据ID列表。

回滚参数

执行备份数据恢复脚本后,待数据恢复完成,通过返回的日志中的serverId获取云服务器ID列表。

表5 回滚参数说明

参数

是否必选

参数类型

描述

serverIds

是

List

云服务器ID列表。

备份数据恢复完成后获取。

deletePublicip

否

Boolean

配置删除云服务器是否删除云服务器绑定的弹性公网IP。

默认:False

deleteVolume

否

Boolean

配置删除云服务器是否删除云服务器对应的数据盘。

默认:True

监控任务参数

表6 监控任务参数说明

参数

是否必选

参数类型

描述

delayInSeconds

是

Integer

循环监控任务状态时间间隔,单位为秒。

默认:10

备份数据恢复操作

前提条件

  • 已准备好备份数据。
  • 完成config.py脚本中的配置项赋值。
    config.py示例如下:
    # IAM鉴权参数
    iamDomain = ""
    iamUser = ""
    iamPassword = ""
    # 项目参数
    projectName = ""
    projectId = ""
    # 服务器参数
    # CentOS 7.9 64bit
    imageRef = ""
    volumeType = "SSD"
    flavorRef = "s7n.small.1"
    vpcId = ""
    subnetId = ""
    enterpriseProjectId = 0
    securityGroups = [
        ""
    ]
    keyName = ""
    # 备份数据参数
    backupIds = ["",
                 "",
                 "",
                 ""
                 ]
    # 备份数据回退参数
    serverIds = ["", ""]
    deletePublicip = False
    deleteVolume = True
    # 监控任务参数
    delayInSeconds = 10

执行完成后,回显信息如下:

其中,successJobList为触发备份数据恢复成功的列表,failedJobList为触发备份数据恢复失败的列表。

备份恢复结果验证操作

  • 备份副本列表
  1. 登录管理控制台。
  2. 单击管理控制台左上角的,选择区域。
  3. 单击“”,选择“存储 > 云备份 CBR”。
  4. 左侧导航栏选择“混合云备份 > VMware备份”,备份副本列表的状态下显示“正在恢复”。恢复完成后,状态变为“可用”。

  • 云服务器列表
  1. 单击“”,选择“计算 > 弹性云服务器ECS”。
  2. 左侧导航栏选择“弹性云服务器 > 弹性云服务器”,云服务器列表的状态下显示“运行中”。

  • 云服务器磁盘详情

在弹性云服务器控制台界面,点击对应的云服务器名称,查看云服务器磁盘数据均正常。

执行回滚

前提条件

  1. config.py中的回滚参数(serverIds参数)已经配置完毕。
  2. 备份数据恢复流程已经执行完毕。

执行完成后,回显信息如下

回滚结果验证

在弹性云服务器控制台界面,左侧导航栏选择“弹性云服务器 > 弹性云服务器”,云服务器已被清退。

相关文档