文档首页/ 云备份 CBR/ 最佳实践/ 通过VMware备份主机批量恢复脚本
更新时间:2024-09-25 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

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

    volumeType

    String

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

    默认值:"SSD"

    flavorRef

    String

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

    示例: "s7n.small.1"

    vpcId

    String

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

    subnetId

    String

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

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

    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. 备份数据恢复流程已经执行完毕。

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

回滚结果验证

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

相关文档