FusionSphere北向接口SDK技术白皮书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华为FusionSphere
北向接口SDK技术白皮书
前言
概述
本文档介绍FusionSphere产品北向开放接口SDK技术。
符号约定
在本文中可能出现下列标志,它们所代表的含义如下。
用于警示紧急的危险情形,若不避免,将会导致人员死亡或严重的人身伤害。
用于警示潜在的危险情形,若不避免,可能会导致人员死亡或严重的人身伤害。
用于警示潜在的危险情形,若不避免,可能会导致中度或轻微的人身伤害。
用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。
“注意”不涉及人身伤害。
用于突出重要
“说明”
信息。
目录
前言 (ii)
1开放能力总览 (4)
1.1文档介绍 (4)
1.2整体结构 (5)
1.3配套版本 (5)
2开放集成场景 (6)
2.1被第三方云管理系统集成 (6)
2.1.1集成场景概述 (6)
2.1.2典型应用场景 (7)
2.2被第三方备份软件集成 (17)
2.2.1集成场景概述 (17)
2.2.2典型应用场景 (18)
2.3被第三方防病毒软件等安全产品集成 (27)
2.3.1集成场景概述 (27)
典型应用场景 (28)
2.4被CloudStack集成 (29)
2.4.1集成场景概述 (29)
2.4.2典型应场景 (29)
2.5命令行运维 (32)
3开放能力清单 (33)
3.1 FusionManager云管理北向接口SDK (33)
3.1.1开放接口清单 (33)
3.2 FusionCompute云操作系统北向接口SDK (38)
3.2.1开放接口清单 (38)
3.3 FusionCompute虚拟磁盘管理接口SDK (41)
3.3.1 Backup&Restore虚拟磁盘管理接口 (42)
3.3.2 Fusioncompute虚拟机备份相关接口SDK (42)
3.4 FusionCompute云操作系统PowerShell命令行 (42)
4术语表 (44)
1
开放能力总览
1.1 文档介绍
Fusionsphere 解决方案旨在向其用户提供IaaS 层服务,相应的,Fusionsphere 对外开放了IaaS 接口供用户更为灵活的使用IaaS 层服务。
目前我们对外提供两套接口:
●
Openstack API :此接口保持和开源Openstack 租户接口完全兼容,以帮助客户避免厂商锁定问题。
●
Fusionsphere API : Fusionsphere 解决方案提供了管理多资源池的能力,云服务提供商可以方便的采用多资源池构建其服务。
与此同时,为了避免云服务提供商的(最终)用户直接面临多资源池接口的复杂性,我们也提供了“统一”的Fusionsphere API 。
此接口对外削弱了资源池特有接口、参数的影响,提供了归一的“资源”操作接口。
目前Fusionsphere API 按照业界主流的方式提供了Rest 接口供第三方访问,详情可参阅版本接口文档。
用户除了直接使用Fusionsphere Rest API 之外,我们也提供了Java/Python/C# 等多语言SDK 以供ISV 快速开发之用。
3rd
资源池
Openstack
Fusionsphere 资源池
1.2 整体结构
1、FusionSphere开放点全景图
2、开放点:
1.Application Software
2.Virtual Appliance
3.Server
4.Storage(包含灾备)
5.Management
working & Security
1.3 配套版本
FusionSphere V100R005C10
2 开放集成场景
2.1 被第三方云管理系统集成
2.1.1 集成场景概述
随着企业信息化建设的不断深入进行,信息系统已成为企业业务的重要支撑,信息设备
数量随之高速增长,各IT基础实施供应商提供的资源和服务也各异。
在资源利用和管
控方面出现了服务器资源整体利用效率不高、缺乏资源使用统一管控、硬件资源投资缺
乏量化决策依据等问题。
利用云计算技术实现数据中心资源集约化管理、统一使用和动态调配,降低运行成本,
提高资源利用率,有必要建设信息系统统一资源池,从而实现信息系统硬件资源统一管
理、精确量化、共享利用、按需分配、动态调度能力,充分发挥设备效率、降低运营成
本和能耗。
FusionCompute是云操作系统软件,主要由虚拟化基础平台和云基础服务平台组成,主
要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。
它采用
虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。
同时通过统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,
保证系统的安全性和可靠性,协助运营商和企业构筑安全、绿色、节能的云数据中心能
力。
SDK向第三方业务系统开放华为云操作系统的部分功能,降低业务定制开发难度,提高
产品快速被集成能力。
目前提供Java/python/C#多语言SDK包,主要提供虚拟机管理、
虚拟存储管理、虚拟网络管理、虚拟资源监控等管理接口。
2.1.2 典型应用场景
虚拟机管理场景
虚拟机管理业务场景是基于项目实施过程中,已在FusionCompute的管理Portal完成了
初始化的操作。
虚拟机管理包括创建虚拟机、虚拟机管理、模板管理三个主要的应用场景。
其中创建虚
拟机又分为直接创建虚拟机和根据模板创建虚拟机;虚拟机管理包括重启、暂停、恢复、
迁移、挂载卷、添加网关等场景;模板管理包括了导入导出模板、自定义虚拟机配置等。
如下主要说明虚拟机创建。
1、创建虚拟机场景
流程说明
步骤1:查询站点下的集群信息,调用ClusterManager类的queryClusters方法
步骤2:根据步骤1返回的集群标识查询集群下的主机,调用HostManager的queryHostList方法
步骤3:判断基于数据存储还是基于卷创建虚拟机。
如果是基于数据存储,根据步骤2返回的主机标识查询主机下的数据存储,调用DataStorageManager的queryDataStores 方法;否则要先创建卷,创建卷的流程见3.3章节。
步骤4:根据步骤2返回的主机标识查询主机下的虚拟交换机,调用DVSwitchManager 的queryAllDVSwitchs方法
步骤5:根据步骤4返回的虚拟交换机标识查询端口组,调用PortGroupManager的queryAllDVSPortGroups方法
步骤5:在集群或主机创建虚拟机,调用VMManager类的createVM方法。
步骤6:根据步骤5返回的任务标识查看虚拟机创建的进度,调用TaskManager类的QueryTask方法
步骤7:在步骤5中,如果参数中选择了自动启动虚拟机,则创建完成后虚拟机会自动启动,无需调用接口,否则调用VMManager类的startVM方法
步骤8:虚拟机创建完成后,挂载虚拟机光驱,用于远程挂载iso文件,安装操作系统,调用VMManager类的attachCdRom方法。
步骤9:虚拟机创建完成后,挂载虚拟机光驱,用于远程挂载iso文件,安装操作系统,调用VMManager类的attachCdRom方法。
步骤10:挂载虚拟机光驱后,调用VMManager类的rebootVM方法重启虚拟机。
步骤11:重启后按操作系统的指示安装操作系统,安装完成后调用VMManager类的installTools方法挂载Tools。
至此虚拟机的创建步骤完成。
2、模板创建虚拟机场景
流程说明
步骤1:导入文件模板,用于创建虚拟机,调用VMManager类的importTemplate方法。
步骤2:判断是否要创建和模板一样的虚拟机还是需要自定义一些虚拟机参数,如果需要自定义虚拟机参数,则创建自定义的虚拟机配置,调用VMManager类的createVmCustomization方法,否则跳过本步骤。
步骤3:根据模板创建虚拟机时默认同原模板的集群或主机。
若要指定集群或主机,则需要查询主机或集群。
查询站点下的集群信息,调用ClusterManager类的queryClusters 方法;根据返回的集群标识查询集群下的主机,调用HostManager的queryHostList方法。
步骤4:根据模板(配置、集群或主机)创建虚拟机,调用VMManager类的vmCloneTemp
方法
备注:
1.以上三个步骤是完整的根据模板生成虚拟机的流程,其中步骤2是可选步骤,不执行
步骤2,则在部署虚拟机时采用模板默认的配置。
还可以直接执行步骤3,虚拟机克隆
为虚拟机。
虚拟存储管理场景
存储设备:表示存储资源中的管理单元,类似LUN、Advanced SAN存储池、NAS共
享目录等。
数据存储:表示系统中可管理、操作的存储逻辑单元,一个数据存储和一个存储设备对
应;数据存储承载了具体的虚拟机业务,例如创建磁盘等。
卷:虚拟机上的逻辑磁盘分区。
运营人员在存储管理中,可以查看指定主机的存储设备;基于存储设备创建数据存储,
查询已创建的数据存储;基于数据存储可以创建卷、查询、修改、删除已创建的卷,并
挂载卷至已创建的虚拟机下。
下面是虚拟存储管理的完整流程说明。
1、虚拟存储管理应用场景
场景说明
步骤1:查询站点下的集群信息,调用ClusterManager类的queryClusters方法。
步骤2:根据步骤1返回的集群标识查询集群下的主机,调用HostManager的queryHostList方法。
步骤3:判断是否已经创建数据存储,如果没有,则根据主机标识查询和主机关联的存储设备,调用StorageUnitManager类的queryStorageUnit方法;如果已经创建,则查询主机下的数据存储,调用StorageUnitManager类的queryDataStores方法,并跳过步骤4。
步骤4:在步骤3查询得到存储设备上创建数据存储,调用DataStorageManager类的createDatastore方法。
步骤5:在步骤4创建的数据存储上创建卷,调用V olumeManager类的createVolume 的方法。
步骤6:根据主机标识查询虚拟机,调用VmManager类的queryVM的方法。
步骤7:挂载卷至虚拟机,调用VmManager类的attachVolume的方法。
虚拟网络管理场景
1、物理网络平面管理
物理网络平面承载业务相关的虚拟网络,不同的虚拟网络需要选择创建在不同的物理网络平面。
物理网络平面的管理主要指计算/网络节点物理网络接口的管理(对应到虚拟交换机或分布式虚拟交换机的端口管理)。
物理网络接口管理,需要解决“依据业务的物理网络拓扑连接”与“租户逻辑网络”的承载关系映射,即I层物理网络管理需要理解物理网络连接平面拓扑,来建立物理网络到业务承载网络的映射管理。
物理
网络配置管理主要由系统管理员在开局时在FusionSphere平台上进行配置,暂不对外开放创建物理网络等接口。
物理网络接口管理主要场景描述:
1)业务管理员根据云平台层的部署和业务规划,通过FusionSphere平台创建物理网络(Physical Network)。
业务管理员根据业务需求所创建的虚拟网络,需要指定具体的物理网络来承载;
2)业务管理员添加物理网络接口(Uplink口)到指定的物理网络(Physical Network)中,主机完成物理网络与外部物理网络的互联。
至此,虚拟网络创建以后,可直接打通与其他主机或物理网络设备虚拟网络的连接。
2、分布式虚拟交换机(DVSwitch)管理
DVS服务向系统管理员提供分布式虚拟交换管理,实现网络资源的规划和维护。
系统管理员通过创建DVS,规划主机节点的物理端口(Uplinkport)或物理端口聚合组(uplinkportAggr)在不同的分布式虚拟交换平面,实现跨物理主机的物理网络通信平面的管理。
同时,DVS需要实现对系统接口(SystemIntf)的管理,包含接口的ip地址、路由信息、VLAN等相关配置。
3、分布式虚拟交换端口组(PortGroup)管理
分布式虚拟端口组是分布式虚拟交换机虚拟端口的集合。
连接在同一端口组的虚拟机网卡,具有相同的网络属性(如:带宽限速、vlan/subnet、DHCP隔离、IP和MAC绑定等)。
管理员可以通过对端口组的集中管理和配置,简化对虚拟机端口属性的设置。
4、虚拟交换端口(VSP)管理
虚拟交换机提供基本的虚拟机交换机能力,为FusionCompute的网络模块提供新的虚拟交换模式,具备VLAN、DHCP隔离、带宽限速及优先级设置的基本功能,同时,有良好的功能扩展性。
虚拟交换机作为主机上的虚拟交换,部署在主机上。
主机节点的系统接口(HNIC)及虚拟机的虚拟网卡(vNIC)分别于虚拟交换机的虚拟端口连接,通过虚拟交换机实现与外部网络的数据传输。
虚拟交换机使用主机节点的物理网卡作为虚拟网络总的出口。
每个虚拟交换机具有多个虚拟端口,每个虚拟端口具有各自的属性(带宽QOS、2层安全属性、VLAN 等)。
可根据端口查询网络中有多少虚拟机,配置VM网卡IP和MAC地址绑定。
虚拟网络管理业务场景:
虚拟网络管理提供创建分布式交换机和端口组等网络资源的功能,支持对网络资源进行调整和配置。
流程说明
步骤1、创建分布式虚拟交换机:分布式交换机的功能类似于普通的物理交换机,每台主机都连接到分布式交换机中。
分布式交换机的一端是与虚拟机相连的虚拟端口,另一端是与虚拟机所在主机上的物理以太网适配器相连的上行链路。
通过它可以连接主机和虚拟机,实现系统网络互通。
调用“创建DVSwitch”接口。
步骤2、添加上行链路:在已创建的分布式交换机中添加上行链路,为虚拟机提供网络资源。
上行链路为服务器的物理网口,可在添加之前对其进行端口绑定(主备或负荷分担)。
上行链路的添加需要根据所在节点上VM的需要灵活配置。
一般的,上行链路可分为管理,存储和业务三个平面。
调用“增加DVSwitch服务器”接口。
步骤3、配置VLAN池:按照规划添加VLAN池,为创建端口组提供VLAN资源。
当端口组选择连接方式为VLAN池,需要用户手动配置VM的IP地址。
调用“增加DVSwitch的vlans”接口。
步骤4、配置子网:当端口组选择连接方式为子网时,系统会根据子网中配置的IP地址池,为使用该端口组的虚拟机自动分配IP地址。
调用“创建/查询Subnet”接口。
步骤5、配置VTEP:VXLAN是一种MAC over UDP的二层网络隧道封装技术,突破
了VLAN 4K二层虚拟隔离网络的限制,让用户可以创建16M虚拟网络。
通过VXLAN
可以提供数量更大的虚拟网络;只把VXLAN VTEP(VXLAN Tunnel Enable Point)外层网
络暴露于物理网络,减少VM数量剧增对TOR交换机MAC地址表容量的冲击,同时
可减少VM网络变化和VM迁移对物理网络的影响。
在创建DVSwitch时可设置VTEP
信息。
步骤6、创建端口组:端口组是一种策略设置机制,这些策略用于管理与端口组相连的
网络。
虚拟机的虚拟网卡连接到分布式交换机的端口组,这样,即使与同一端口组相连
接的虚拟机各自在不同的主机上,这些虚拟机也都属于虚拟环境内的同一网络。
调用“创
建PortGroup”接口。
资源监控场景
管理员可以查看站点内的各种资源和监控指标。
其中资源查看包括了集群资源、主机资
源、虚拟机、存储资源、虚拟网路资源;指标监控包括性能指标、历史指标等。
资源查询接口
备注:上面只是列举了部分查询资源接口,详细的接口见接口说明文档监控接口
2.2 被第三方备份软件集成
2.2.1 集成场景概述
虚拟化平台容灾备份SDK提供虚拟化接口、快照接口、磁盘管理接口、CBT接口,基于容灾备份场景的二次开发资料和Demo,实现与第三方容灾备份软件快速集成。
2.2.2 典型应用场景
备份场景
1、虚拟存储备份场景说明:
步骤 1备份前准备
1、初始化SDK
调用FusionSphere Backup&Restore SDK的初始化接口CFusionSphereSDK::InitialSDK,
当初始化备份软件进程的时候初始化SDK,每个进程一个运行副本互不干扰,输入日志
回调函数,打出关键日志。
2、创建虚拟机快照
创建当前时间点该虚拟机快照。
每个虚拟机最多创建32个普通虚拟机快照和32个备份虚拟机快照。
创建虚拟机快照时type参数应填为“CBTbackup”。
快照创建完成后返回的响应如下:
3、查询指定的虚拟机快照信息
备份软件根据快照的uri查询指定虚拟机快照信息,返回的消息中包含卷快照列表信息。
若得到的卷快照列表中有多个卷,则每次只能备份一个卷,分多次备份即可。
其中每一
个卷快照包含的信息如下:
4、查询指定数据存储
根据查询虚拟机快照信息接口得到的数据存储URN,将其转换为数据存储的URI,查
询指定的数据存储。
查询返回的响应主体中包含storageUnits(存储设备列表),其中每一个存储设备的信息
如下:
5、验证待备份的Lun是否存在
调用虚拟磁盘管理C++ SDK的CFusionSphereSDK::verifyLUNAttached接口,先扫描存
储网络中的Lun,再传入虚拟磁盘对应的LunWWN列表(0中的suName)。
验证待备份的Lun是否存在。
若存在,继续下一步备份流程,若不存在,请检查存储网
络是否正确搭建或者采用LAN-Base方式备份。
步骤 2准备备份资源
1、准备备份资源
准备虚拟机备份资源,用于虚拟机备份。
传入的参数有taskType(LANBASE场景为:CBTBackup,LANFREE场景为:SANBackup)、ip(申请方IP地址)、snapUrn1(起始快照URN)、snapUrn2(结束快照URN)、
volCBTCreateTime(本次备份的CBT增量数据创建时间)、transMode(lan传输或lanssl
加密传输)。
准备备份资源接口调用成功后,返回的消息体可以得到备份资源URI地址。
2、查询备份资源
根据调用准备备份资源接口得到的备份资源uri地址查询指定的备份资源信息。
3、修改备份资源
准备完备份资源后,备份与恢复过程中要定期请求保留资源,否则资源超时后会被释放。
定期调用FC的修改备份资源接口,设置新的延时时间,就可以延长资源的有效时间。
在备份与恢复的过程中要确保资源没有被释放,否则备份会失败。
步骤 3获取CBT差量位图
查询虚拟机卷CBT差量位图。
当采用CBT备份的时候,我们只会备份虚拟磁盘中有改动的部分,我们用差量位图来
表示磁盘哪些地方有改动。
差量位图类似“10110100”,至少为一个字节,每个字节中的低位bit代表磁盘中序号小
的block(一个block 2M字节),高位表示序号大的block,1代表这个block的数据有改动,需要将其备份,0代表这个block数据没有改动,无需备份。
这样就需要将当前快
照的CBT与上一次备份的CBT作对比查询得到此次需要备份的差量位图,从而备份相应的数据。
传入的参数有type(获取差量位图类型)、snapUrn(当前快照urn)、volCBTCreateTime (CBT初始全量文件创建时间)、chgID(起始chgID版本信息)、startBlock(起始block 信息)、blockNum(block数量)。
其中snapUrn备份时填当前快照urn(0创建快照成功时返回的快照urn),恢复时不填。
如果要备份的磁盘很大,startBlock、blockNum可以分段填写,这样就可以分段获取差
量位图。
步骤 4打开、读取远端磁盘文件
1、连接主机
调用SDK的CFusionSphereSDK::ConnectCNA接口,输入参数中的CNA_IP、PortID、Token均从查询备份资源接口中得到,EnableSSL参数与查询备份资源接口中传入的
transMode参数保持一致。
2、打开远端磁盘文件
调用SDK的CFusionSphereSDK::OpenDisk接口,输入参数中的RawLunWWNList与
LunWWN列表保持一致,strTargetVHDFile为0中得到的targetFile(目标文件名),
OpenMode应填为READ(备份),输出参数中的diskHandle为返回的文件句柄,用于后续的读取和关闭远端磁盘文件。
3、读远端磁盘文件
调用SDK的CFusionSphereSDK::ReadDisk接口,输入参数中的diskHandle为0中返回的文件句柄,VMOffset为本次读取的偏移地址,VMLength为本次读取的长度,输出参数pBuffer为读取的备份数据的缓冲区,将pBuffer中的数据备份到备份存储。
其中
VMOffset、VMLength这两个参数根据0得到的差量位图正确填写。
4、关闭远端磁盘文件
调用SDK的CFusionSphereSDK::CloseDisk接口,输入参数中的diskHandle为0中返回的文件句柄。
此步骤为备份完之后清理主机上的资源。
5、断开与主机连接
调用SDK的CFusionSphereSDK::DisConnectCNA接口,断开与CNA主机的登录连接。
步骤 5释放备份资源
1、释放备份资源
备份完一个磁盘后,就要释放相应的资源,然后开始备份下一个磁盘。
2、删除指定虚拟机快照
所有磁盘都备份结束后,删除此次备份的虚拟机快照,此次备份结束。
2、虚拟存储备份流程涉及的相关接口
恢复场景
1、虚拟存储恢复场景说明:
步骤 1恢复前准备
1、创建虚拟机(可选)
此步骤可选。
如果要将备份的数据恢复到新的虚拟机上,就首先要创建一个虚拟机。
如果只是在源虚拟机上进行恢复,就不需要创建虚拟机。
创建虚拟机的时候vmConfig(虚拟机配置)这个参数是必填的,vmConfig中包含了本
次创建虚拟机时携带的磁盘个数及大小等配置信息,这些信息的填写需要与本次恢复到
的虚拟机备份点时的磁盘配置信息保持一致。
虚拟机创建成功后会返回虚拟机对应的uri。
2、查询指定虚拟机
根据虚拟机的uri查询指定虚拟机的信息。
如果是在源虚拟机上恢复,就用源虚拟机的uri;如果是在新的虚拟机上进行数据恢复,
就用创建成功返回的虚拟机的uri。
查询指定虚拟机成功后返回的消息体中会有
vmConfig(虚拟机配置)信息,vmConfig信息中会包含虚拟机的disks(磁盘)信息,
根据返回信息中的datastoreUrn就可以知道每个磁盘对应的datastoreUri。
3、创建恢复卷(可选)
以下两种情况下不需要创建恢复卷:
●执行了创建了虚拟机,并且创建虚拟机时填入的磁盘配置和此次恢复到的备份点的
磁盘配置完全一致。
●没有执行创建新的虚拟机,但是将要恢复到的源虚拟机的磁盘配置和此次恢复到的
备份点的磁盘配置完全一致。
如果要将数据恢复到源虚拟机,但是源虚拟机有磁盘丢失,这时就要创建恢复卷。
创建卷时填入的磁盘信息与恢复到的备份点的磁盘配置保持一致。
创建卷成功后会返回
卷得uri。
4、交换源卷与目的卷(可选)
当没有执行创建虚拟机,将数据恢复到源虚拟机时,如果源虚拟机的磁盘大小等配置与
备份点的磁盘配置不一致时,就需要创建一个与备份点磁盘配置一样的卷,然后调用交
换源卷与目的卷接口将源虚拟机的异动到的卷用新创建的卷替换掉。
5、查询指定数据存储
根据查询得到的datastoreUrn,将其转换为每个磁盘的datastoreUri,就可以查询指定的
datastore(数据存储)信息。
查询返回的响应主体中会包含storageUnits(存储设备列表),
其中每一个存储设备的信息,suName(存储设备名称)用来代替Lun的wwn。
6、检查待恢复的Lun是否存在
调用SDK的CFusionSphereSDK::verifyLUNAttached接口,首先会扫描存储网络中的Lun,
然后传入虚拟磁盘对应的LunWWN列表,验证待恢复的Lun是否存在。
如果存在,就
继续恢复流程,如果不存在,请检查存储网络是否正确搭建或者采用LAN-Base方式恢
复。
步骤 2准备恢复资源
1、准备恢复资源
同准备备份资源,接口都为准备备份资源(同一个);taskType(组网方式为”lan”时
taskType取值为”CBTRestore”, 组网方式为”san”时taskType取值为”SANRestore”)、ip(申请方IP地址)、volCBTCreateTime(本次备份的CBT增量数据创建时间)、transMode(lan 传输或lanssl加密传输)。
从返回消息中可以得到任务URI中的taskId,根据taskId获取恢复资源uri地址。
2、查询恢复资源
同查询备份资源,接口为同一个,从中得到的恢复资源uri地址查询指定的恢复资源信息。
从返回消息中我们可以得到以下关键信息:
●hostIP(主机IP地址)
●hostPort(主机端口号)
●targetFile(目的文件名)
●token(访问token,用于主机对备份软件的鉴权认证)
3、修改恢复资源
同修改恢复资源,接口为同一个。
准备完恢复资源后,恢复过程中要定期请求保留资源,否则资源超时后会被释放。
定期调用FC的修改备份资源接口,设置新的延时时间,就可以延长资源的有效时间。
在恢复的过程中要确保资源没有被释放,否则恢复会失败。
4、获取CBT差量位图(可选)
此步骤可选。
如果是执行了创建新的虚拟机的步骤,则采用的是整机恢复,此时不需要获取CBT差量位图,此步骤可以忽略。
如果是在源虚拟机上进行恢复,就需要执行此步骤,获取CBT差量位图。
但恢复的时
候与备份的时候查询CBT差量位图传入的参数的值不同。
恢复的时候,snapUrn这个参数不填,如果要恢复的磁盘很大,startBlock、blockNum可以分段填写,这样就可以分
段获取差量位图。
返回信息中的bitMap即为得到的差量位图信息。
步骤 3打开、写入远端磁盘文件
1、连接主机
调用SDK的CFusionSphereSDK::ConnectCNA接口,输入参数中的CNA_IP、PortID、Token均为查询备份资源接口中得到,EnableSSL参数与查询备份资源接口中传入的
transMode参数保持一致。
2、打开远端磁盘文件
调用SDK的CFusionSphereSDK::OpenDisk接口,输入参数中的RawLunWWNList与
LunWWN列表保持一致,strTargetVHDFile为0中得到的targetFile(目标文件名),
OpenMode应填为READ(备份),输出参数中的diskHandle为返回的文件句柄,用于后续的读取和关闭远端磁盘文件。
3、写远端磁盘文件
调用SDK的CFusionSphereSDK::WriteDisk接口,输入参数中的diskHandle为打开远端
磁盘文件接口中返回的文件句柄,VMOffset为本次写入的偏移地址,VMLength为本次
写入的长度,pBuffer为待恢复数据的缓冲区,将pBuffer中的数据写入Lun设备。
4、关闭远端磁盘文件
调用SDK的CFusionSphereSDK::CloseDisk接口,输入参数中的diskHandle为打开远端
磁盘文件接口中返回的文件句柄。
此步骤为恢复完之后清理主机上的资源。
5、断开与主机连接
调用SDK的CFusionSphereSDK::DisConnectCNA接口,断开与CNA主机的登录连接。
步骤 4释放恢复资源
恢复完一个磁盘后,就要释放相应的资源,然后开始恢复下一个磁盘。
2、虚拟存储恢复流程涉及的相关接口。