云计算
更新时间:2024-05-02 16:01:01 阅读量: 综合文库 文档下载
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快速开发之用。
1.1 整体结构
1、 FusionSphere开放点全景图
2、开放点:
1、Application Software 2、Virtual Appliance 3、Server
4、Storage(包含灾备) 5、Management
6、Networking & Security
1.2 配套版本
FusionSphere V100R005C00
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
方法
步骤6 在集群或主机创建虚拟机,调用VMManager类的createVM方法。
步骤7 根据步骤5返回的任务标识查看虚拟机创建的进度,调用TaskManager类的QueryTask方法 步骤8 在步骤5中,如果参数中选择了自动启动虚拟机,则创建完成后虚拟机会自动启动,无需调用接口,否
则调用VMManager类的startVM方法
步骤9 虚拟机创建完成后,挂载虚拟机光驱,用于远程挂载iso文件,安装操作系统,调用VMManager类
的attachCdRom方法。
步骤10 虚拟机创建完成后,挂载虚拟机光驱,用于远程挂载iso文件,安装操作系统,调用VMManager类
的attachCdRom方法。
步骤11 挂载虚拟机光驱后,调用VMManager类的rebootVM方法重启虚拟机。
步骤12 重启后按操作系统的指示安装操作系统,安装完成后调用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创建的数据存储上创建卷,调用VolumeManager类的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地址绑定。
虚拟交换端口(VSP)管理
虚拟网络管理提供创建分布式交换机和端口组等网络资源的功能,支持对网络资源进行调整和配置。
流程说明
步骤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”接口。
资源监控场景
管理员可以查看站点内的各种资源和监控指标。其中资源查看包括了集群资源、主机资源、虚拟机、存储资源、
虚拟网路资源;指标监控包括性能指标、历史指标等。
资源查询接口
分类 接口 描述 集群资源 ClusterManager.queryClusters 查询集群列表 ClusterManager.queryCluster 查询集群详情 ClusterManager.queryComputeResource 查询集群内计算资源统计信息 HostManager.queryHostList 查询主机列表 主机资源 HostManager.queryHost 查询指定主机信息 HostManager.queryHostUsage 查询主机计算资源使用情况 虚拟机资源 VMManager.queryVM 查询指定虚拟机信息 StorageUnitManager.queryStorageUnit 查询指定主机的存储设备 DataStorageManager. queryDataStores 查询站点的数据存储列表 存储资源 DataStorageManager .queryDataStoreById 查询指定数据存储的详细信息 VolumeManager. queryVolumes 询满足条件的卷列表 VolumeManager. queryvolumeByUrn 查询单个卷信息 DVSwitchManager. queryDVSwitchById 查询服务器指定的DVSwitch信息 虚拟网络资源 SubnetManager. querySubnetById 查询指定Subnet信息 PortGroupManager. queryPortGroupById 查询DVSwitch下指定的PortGroup 备注:上面只是列举了部分查询资源接口,详细的接口见接口说明文档
监控接口
接口 描述 objectmetric. queryObjectmetric 查询对象的性能指标数据 objectmetric. queryObjectHistorymetric 查询对象的历史监控数据 objectmetric. queryObjectTopmetric 查询对象的TOP监控数据 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列表(查询指定数据存储接口 中的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( 创建快照成功时返回的快照urn),恢复时不填。
如果要备份的磁盘很大,startBlock、blockNum可以分段填写,这样就可以分段获取差量位图。
步骤4 打开、读取远端磁盘文件
1、连接主机
调用SDK的CFusionSphereSDK::ConnectCNA接口,输入参数中的CNA_IP、PortID、Token均
从查询备份资源接口中得到,EnableSSL参数与查询备份资源接口中传入的transMode参数保持一致。
2、打开远端磁盘文件
调用SDK的CFusionSphereSDK::OpenDisk接口,输入参数中的RawLunWWNList与LunWWN
列表保持一致,strTargetVHDFile为查询指定的虚拟机快照信息 中得到的targetFile(目标文件名),OpenMode应填为READ(备份),输出参数中的diskHandle为返回的文件句柄,用于后续的读取和关闭远端磁盘文件。
3、读远端磁盘文件
调用SDK的CFusionSphereSDK::ReadDisk接口,输入参数中的diskHandle为打开远端磁盘文件
接口 中返回的文件句柄,VMOffset为本次读取的偏移地址,VMLength为本次读取的长度,输出参数pBuffer为读取的备份数据的缓冲区,将pBuffer中的数据备份到备份存储。其中VMOffset、VMLength这两个参数根据 得到的差量位图正确填写。
4、关闭远端磁盘文件
调用SDK的CFusionSphereSDK::CloseDisk接口,输入参数中的diskHandle为打开远端磁盘文件
接口 中返回的文件句柄。此步骤为备份完之后清理主机上的资源。
5、断开与主机连接
调用SDK的CFusionSphereSDK::DisConnectCNA接口,断开与CNA主机的登录连接。
步骤5 释放备份资源
1、释放备份资源
备份完一个磁盘后,就要释放相应的资源,然后开始备份下一个磁盘。 2、删除指定虚拟机快照
所有磁盘都备份结束后,删除此次备份的虚拟机快照,此次备份结束。
1、虚拟存储备份流程涉及的相关接口
流程 API 说明 备份前准备 备份前 SDK 初始化SDK API,传入日志回调函数。 创建虚拟机快照 createVmSnapshot,创建当前时间点该虚拟机快照。此快照的磁盘数据用于备份。 查询指定的虚拟机快照信息 查询当前时间点虚拟机快照信息,得到虚拟机快照卷对应的数据存储。 查询指定数据存储 查询指定的数据存储,得到每个卷对应的lun wwn列表,用于数据备份与恢复。 验证待备份的Lun是否存在 检查备份软件与虚拟存储之间的SAN网络传输通路是否畅通,检查待备份的Lun文件是否存在。 流程 API 说明 准备备份资源 准备备份资源 准备虚拟机备份资源,用于虚拟机备份、虚拟机恢复等。 查询备份资源 查询备份资源,用于获取主机的IP、端口号、targetFlie(目标文件)、token 修改备份资源 修改本次备份的备份资源,用于延长资源的有效时间 获取CBT差量位图 查询虚拟机卷CBT差量位图,用于备份时读取磁盘中相应block的数据 打开、读取远端磁盘文件 CFusionSphereSDK::ConnectCNA 连接到主机(需主机名、端口、token) CFusionSphereSDK::OpenDisk 打开远端磁盘文件,获取文件句柄 CFusionSphereSDK::ReadDisk 从远端磁盘文件句柄中读取一定范围的数据 CFusionSphereSDK::CloseDisk 关闭远端磁盘文件 CFusionSphereSDK::DisConnectCNA 断开与主机的连接 释放恢复资源 释放备份资源 每备完一个磁盘,就要把此次备份准备的备份资源释放。 删除虚拟机快照 备份完成后删除指定的虚拟机快照。 恢复场景
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为查询指定的虚拟机快照信息 中得到的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、虚拟存储恢复流程涉及的相关接口
流程 API 说明 恢复前准备 创建虚拟机(可选) 创建虚拟机,用于将备份的数据整机恢复到新的虚拟机上 流程 API 说明 查询指定虚拟机 查询待恢复的虚拟机,获取虚拟机的磁盘信息,用于将恢复数据写入相应磁盘 创建恢复卷(可选) 在待恢复的虚拟机丢失了磁盘的情况下,需要创建恢复卷 交换源卷与目的卷(可选) 在待恢复的虚拟机的磁盘配置信息和备份点虚拟机的磁盘配置信息不一致时,需要调用此接口 查询指定数据存储 查询指定的数据存储,得到每个卷对应的lun wwn列表,用于数据备份与恢复。 验证待恢复的Lun是否存在 检查备份软件与虚拟存储之间的SAN网络传输通路是否畅通,检查待恢复的Lun文件是否存在。 准备备份资源 准备恢复资源(与准备备份资源为同一个接口) 准备虚拟机恢复资源,用于虚拟机恢复。 查询恢复资源(与查询备份资源为同一个接口) 查询恢复资源,用于获取主机的IP、端口号、targetFlie(目标文件)、token 修改恢复资源(与修改备份资源为同一个接口) 修改本次恢复的恢复资源,用于延长资源的有效时间 获取CBT差量位图(可选) 查询虚拟机卷CBT差量位图,用于恢复时向相应的磁盘block中写入数据 打开、写入远端磁盘文件 CFusionSphereSDK::ConnectCNA 连接到主机(需主机名、端口、token) CFusionSphereSDK::OpenDisk 打开远端磁盘文件,获取文件句柄 CFusionSphereSDK::WriteDisk 向远端磁盘文件句柄中写入一定范围的数据 流程 API 说明 CFusionSphereSDK::CloseDisk 关闭远端磁盘文件 释放恢复资源 CFusionSphereSDK::DisConnectCNA 断开与主机的连接 释放恢复资源(与释放备份资源是同一个接口) 每恢复完一个磁盘,就要把此次恢复准备的恢复资源释放。 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为查询指定的虚拟机快照信息 中得到的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.3 被第三方防病毒软件等安全产品集成 2.3.1 集成场景概述
为了对主机中所有虚拟机进行病毒防护,若采用传统防病毒产品,则需要在每台虚拟机本地安装防病毒产品,
这样不仅会占用较多资源,而且在全盘扫描、病毒更新等场景下会造成病毒风暴,因此,华为虚拟化平台提供了防病毒所需API,防病毒厂家可基于API进行二次开发,形成虚拟化防病毒解决方案,做到仅需在一台特殊的安全虚拟机中部署防病毒引擎,在用户虚拟机本地安装轻量级驱动即可完成杀毒,且能解决传统防病毒产品的上述问题。通过该机制可有效避免杀毒风暴,降低维护成本,降低杀毒功能的总体资源消耗。
虚拟化防病毒总体架构图
2.3.2 典型应用场景
一、应用场景:
对用户虚拟机进行病毒防护,包括:
? 对文件的实时监控,即当用户实时访问某文件时,若有病毒则能及时发现;
? 全盘扫描,即能对磁盘中所有文件发起全盘扫描,包括管理员手工发起或管理员制定扫描的定时任务。
二、场景说明:
1、在每台主机中,将新增一台安全虚拟机,这是基于linux的虚拟机,负责这台主机中所有虚拟机的病毒扫描,
这样就无需在每台用户虚拟机本地部署杀毒引擎了,这样做的好处是:a、病毒库管理上的优势,即无需对每台虚拟机的病毒库安装、更新等进行管理,而是仅需对安全虚拟机进行管理;b、病毒扫描结果在整个主机中所有虚拟机范围内共享,而不是如传统防病毒仅一台虚拟机内部共享,提升扫描效率。
2、在用户虚拟机本地需要部署轻量级模块,负责拦截用户虚拟机内的文件操作并发送给安全虚拟机进行扫描,
用户虚拟机与安全虚拟机间采用共享内存驱动方式通信,提升扫描效率。
3、防病毒管理中心:负责发起扫描、制定扫描策略等,其上将呈现所有主机、虚拟机的对应视图,以便对所有
虚拟机进行管理。
2.4 被CloudStack集成 2.4.1 集成场景概述
● CloudStack采用了“框架 + 插件”的系统构架,通过不同的插件来提供对不同虚拟化技术的支持。 ● 接入华为虚拟化需要对CloudStack的JS页面/框架代码做少许适配,业务功能通过插件提供 。
2.4.2 典型应用场景
一、CloudStack对接架构
Huawei Plug-in封装Hypervisor/Network/Storage/Image/Snapshot resources,将华为虚拟化平台接入
CloudStack,提供如下差异化竞争力:
● 针对电信云的虚拟化组件:包含高级资源调度策略、故障实时性检测、异构热迁移等。 ● 大规模分布式存储虚拟化组件和高性能的存储卸载vVOL,同时支持scsi和nfs的存储瘦分配 ● 提供数据中心SDN解决方案,提供网络自动化能力
二、CloudStack <->VRM核心对象映射 图表 为 CloudStack对象模型 CloudStack对象模型 VRM对象模型 CloudStack对象模型 VRM对象模型 VM VM Host Host Primary Storage DataStore Cluster Cluster Pod NA Secondary Storage NA(NFS服务) Network DVS/PortGroup Zone NA VMSnapshot 快照 volSnapshot 三、创建虚拟机流程 导出的OVF模板
流程说明:
用户:选模板->选规格->配磁盘->选网络,确定后开始创建虚拟机
插件:
1、通过导入模板接口在主存储上创建缓存模板(如果第一次部署虚拟机) 2、通过缓存模板创建卷
模板部署临时虚拟机->卸载卷->删除临时虚拟机 3、启动虚拟机
1)首次启动:准备网络,创建空虚拟机,挂载磁盘,启动虚拟机
2)非首次启动:将虚拟机网卡、磁盘全部卸载后,再按照新的规格重新加网卡,磁盘。 然后启动虚拟机。
2.5 命令行运维
命令行SDK作为FushionSphere客户端,支持直接在windows下执行相关命令,对FushionSphere虚拟机
进行相关操作,以满足在数据中心的日常运维中的批量操作。
FusionCompute命令行提供如下功能:登录、退出、查询虚拟机、查询主机、查询集群、查询系统接口、修
改系统接口、查询DataStore、添加DataStore 、删除datastore、查询端口组列表、添加端口组、删除端口组。
3. 接口参考 3.1 开放接口清单 3.1.1 登录与注销
3.1.2 站点管理
? 提供站点信息的查询
3.1.3 集群管理
??查询集群列表 ??查询集群详情
??查询集群内计算资源统计信息 ??查询集群建议信息 ??查询集群DRS失衡情况
??过滤查询集群虚拟机个别DRS设置列表 ??应用集群DRS建议 ??创建DRS资源组 ??查询DRS资源组 ??查询指定DRS资源组 ??修改指定DRS资源组 ??删除指定DRS资源组 ??刷新集群DRS失衡情况 ??应用多条集群DRS建议
3.1.4 主机管理
? 添加主机 ? 修改主机 ? 查询主机列表 ? 查询指定主机 ? 查询主机列表统计信息
? 查询指定主机计算资源使用情况 ? 主机上电
? 主机下电 ? 主机重启
? 将主机设置成维护模式 ? 主机退出维护模式
3.1.5 虚拟机管理
? 创建虚拟机 ? 删除虚拟机 ? 查询指定虚拟机 ? 分页查询指定虚拟机 ? 启动\\唤醒虚拟机 ? 重启虚拟机 ? 暂停虚拟机 ? 恢复虚拟机 ? 休眠虚拟机 ? 修改虚拟机 ? 迁移虚拟机
? 迁移虚拟机的数据存储 ? 整机迁移 ? 添加网卡 ? 删除网卡 ? 修改网卡 ? 批量修改网卡 ? 挂载卷 ? 卸载卷
? 挂载光驱 ? 卸载光驱 ? 查询虚拟机光驱 ? 挂载tools ? 卸载tools ? 虚拟机转化成模板 ? 导入模板 ? 导出模板
? 创建虚拟机自定义规范 ? 删除虚拟机自定义规范 ? 修改虚拟机自定义规范 ? 查询指定虚拟机自定义规范 ? 分页查询虚拟机自定义规范 ? 创建虚拟机快照 ? 删除虚拟机快照
? 查询指定虚拟机的快照列表 ? 查询指定的虚拟机快照信息 ? 从快照恢复虚拟机 ? 修改虚拟机快照信息
3.1.6 虚拟存储管理
? 分页查询站点/主机/集群下所有数据存储 ? 分页查询集群/主机下可模板部署的所有数据存储 ? 查询指定数据存储 ? 创建卷
? 删除卷
? 分页过滤查询所有卷 ? 修改指定卷 ? 查询指定卷 ? 交换源卷与目的卷 ? 创建卷备份 ? 查询指定卷的备份 ? 恢复卷 ? 迁移卷
? 分页根据DataStore查询所有卷 ? 设置卷IO属性上限 ? 是否可以迁移
3.1.7 虚拟网络管理
? 创建PortGroup
? 查询DVSwitch下指定的PortGroup ? 查询DVSwitch下所有的PortGroup ? 查询站点内的PortGroup ? 更新PortGroup ? 删除PortGroup ? 创建Subnet
? 查询指定Subnet信息 ? 查询所有Subnet信息 ? 更新subnet ? 删除指定Subnet
? 查询虚拟交换端口
? 根据VLANID查询虚拟交换端口数量 ? 配置VM网卡IP和MAC地址绑定 ? 取消VM网卡IP和MAC地址绑定 ? 查询服务器指定的DVSwitch信息 ? 查询服务器所有的DVSwitch信息 ? 增加DVSwitch的vlans ? 删除DVSwitch的vlans ? 增加DVSwitch的vxlans ? 删除DVSwitch的vxlans
3.1.8 监控
? 查询对象性能指标数据 ? 查询对象的历史性能指标数据 ? 查询对象的top指标数据 ? 获取系统当前时间
4. 快速入门 4.1 获取eSDK 4.1.1 依赖环境
针对eSDK FC R5进行业务开发依赖环境如下:
名称 版本要求 JDK Java Development Kit 1.7.0及以上版本 Eclipse Java EE IDE for Web Developers 1.3.1.20100916-1202 eSDK Cloud FC系统 V100R003C50 Tomcat Tomcat 7.0版本 4.1.2 eSDK开发资源 eSDK FC R5提供以下资源支撑二次开发: ● SDK JAR文件 ● Restlet开源包 ● 其他开源文件 ● 二次开发文档 ● 二次开发Demo代码样例 4.2 新建并配置工程 4.2.1 导入eSDK Cloud FC Demo工程 步骤1 打开Eclipse,单击菜单栏的“File > Import...”。
正在阅读:
云计算05-02
罚款单表格02-16
技术员个人工作总结三篇05-09
PE管安装技术交底01-17
2019年日常工作表现评语03-11
TS内审检查表(空白) - 图文10-10
技术规格、参数及其他要求03-28
三管实习记录簿附页05-13
消防工程专项施工方案(消防专业分包)05-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 计算