码迷,mamicode.com
首页 > Windows程序 > 详细

基于WinServer的无代理备份

时间:2018-08-20 17:20:10      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:语言   外部   简易   虚拟   发展   get   ati   企业   离线   

在云计算迅猛发展的今天,虚拟化技术已被越来越多的客户认可,虚拟化作为被普遍接受的方案登上了各行各业的信息化建设的舞台。信息化的建设离不开备份容灾,随着虚拟化应用在企业和各个行业的普及,备份恢复问题的重要性日益凸显。 虚拟机备份功能是虚拟化的一个数据保护基本功能。但大部分虚拟化技术自带的备份功能在执行备份时,会对业务性能产生一定的影响,同时备份策略不灵活,所以,针对虚拟化备份,常见的方式是采用专业的备份软件系统。 专业的备份软件从原理上可以归纳为两种方法:代理备份和无代理备份。 代理备份是指需要在物理主机、虚拟机内部安装代理备份软件进行备份操作,该代理备份软件用于响应并处理来自网络的备份服务器的请求,但这种方式不仅会造成备份效率低,还会造成主机端没有必要的资源消耗,多个备份并行时,极易发生瓶颈问题。 无代理备份是指采用虚拟化提供的API(Application Programming Interface)直接对物理机上的虚拟机文件进行备份,这种方式的好处是不再需要在每台虚拟机上部署备份代理软件,大大降低资源消耗,同时可以快速恢复出源虚拟机或创建新的虚拟机。 基于WinServer虚拟化,CNware实现了一种无代理备份对接方案。 基于该方案,可以让CNware基于WinServer虚拟化灵活对接第三方厂商备份系统,实现无代理备份。通过与第三方备份系统的集成,实现虚拟机在线,离线备份, 全量备份,增量备份等高级功能,同时支持对虚拟机一次性备份、定期备份、灾难备份等备份策略的设置。 接下来将对WinServer虚拟化,IAAS云平台WinCenter,第三方备份系统三个部分彼此间的交互原理进行阐述。

一.架构设计
从架构上整体分为两大部分:
云平台管理系统:以IAAS 云平台WinCenter与底层虚拟化WinServer组成的以管理虚拟机为核心功能的系统组件。提供必要的 API 和读写授权机制使第三方备份系统能完成虚拟机的备份与还原操作。
第三方厂商备份系统:以管理备份数据存储为核心功能的系统组件,以高效可靠地归档和还原数据为主要目标。通过WinCenter提供的resuful API 查询虚拟机和存储池信息,并在得到虚拟化方的读写授权后,能够直接访问底层WinServer虚拟化指定的虚拟磁盘数据。

整体架构图如下

技术分享图片

说明:

  1. 在WinServer虚拟化层实现四个子命令,以便WinServer虚拟化层同WinCenter云平台交互,分别为
    1) prepare-backup:获取虚拟机的 VDI 数据分布信息,开启只读接口让外部读取数据。
    2) update-backup-id:开启写入接口让外部系统写入磁盘信息命令
    3) stop-remote-access:结束由 prepare-backup 或 update-backup-id 所开启的远程访问
    4) get_vdi_sm_info:通过直接访问 vhd 的方式,获取 vhd 的 BAT(vhd 文件中保存有效数据分布的元信息)及父镜像。
  2. 第三方备份系统与WinCenter云平台进行控制类交互,采用基于 HTTPS 的 restful 方式进行通信。
  3. 第三方备份系统与WinServer虚拟化进行虚拟磁盘的 IO 读写操作,IO读写操作通过一个 C 语言函数库(wddk)进行封装,采用 NBD 协议(NBD 是一种简易的远程块设备访问协议,可以高效地将远程块设备映射到本地)。

二.备份功能
整个虚拟机备份流程,通过备份系统与云平台系统多次交互完成。具体关键步骤如下:

  1. 第三方备份系统向WinCenter云平台发起restful请求,告知需要备份的虚拟机ID、备份ID及备份类型。备份类型为全量备份或增量备份。
  2. 第三方备份系统周期向WinCenter云平台询问备份任务进度。
  3. WinCenter云平台通知底层WinServer虚拟化平台对指定虚拟机生成快照。如果发起的是增量备份,并且当前虚拟机曾经做过备份,则可以通过CBT提取在两次备份间隔实际变更的扇区信息。如果发起的是全量备份,则可以通过CBT提取实际数据所在的扇区信息。
  4. WinCenter云平台通知底层WinServer虚拟化开启对特定虚拟磁盘的读权限。
  5. WinCenter云平台将虚拟机元配置信息、扇区信息和虚拟磁盘访问方式传给第三方备份系统。
  6. 第三方备份系统通过wddk直接连接WinServer虚拟化层读取相应扇区的数据,并对备份数据进行归档。
  7. 第三方备份系统完成备份后,通知WinCenter云平台删除多余的快照信息以及取消WinServer虚拟化远程磁盘访问授权。

三.还原功能
整个虚拟机还原流程,通过备份系统与云平台系统多次交互完成,同备份在调用流程上大致相似。具体关键步骤如下:

  1. 第三方备份系统向WinCenter云平台发送虚拟机元数据信息。
  2. 第三方备份系统周期性向WinCenter云平台查询虚拟机恢复任务进度。
  3. WinCenter云平台通过第三方备份系统传来的虚拟机元数据信息生成一台新虚拟机,并根据元数据信息生成指定大小的空白虚拟磁盘与网卡信息。
  4. WinCenter云平台通知底层WinServer虚拟化开启对特定虚拟磁盘(第三步骤创建的空白磁盘)的写权限。
  5. WinCenter云平台将虚拟磁盘访问方式返回给第三方备份系统。
  6. 第三方备份系统获取磁盘路径后,通过wddk开始对相应磁盘扇区写入数据。
  7. 第三方备份系统完成虚拟磁盘写数据后,通知WinCenter云平台。
  8. WinCenter云平台通知WinServer虚拟化取消远程磁盘访问授权并同步收集云平台数据。

    更多关于云宏与服务器虚拟化CNware的相关内容,请搜索云宏CNware。

基于WinServer的无代理备份

标签:语言   外部   简易   虚拟   发展   get   ati   企业   离线   

原文地址:http://blog.51cto.com/13923196/2162056

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!