当前位置: 首页 > news >正文

Hyper-V备份:选择Hypervisor备份还是虚拟机备份

TechTarget中国原创内容,原文链接:http://www.searchstorage.com.cn/showcontent.aspx?aid=54261&lg=t

【TechTarget中国原创】当在Hyper-V环境下备份虚拟服务器时,你最常会被问到的问题是,你会备份整个主机还是备份一个个虚拟机。本篇介绍Hyper-V环境下备份的最佳实践,以及Hypervisor备份和虚拟机备份的不同之处。

父分区备份

父分区备份一般在Hypervisor层创建,而不会在每个虚拟机中创建。进行父分区备份的一个好处是服务器上所有虚拟机会同时备份,不需为每个虚拟机进行单独的备份。在使用第三方备份软件的情况下,你还可以节省许可证费用,因为你无须在每个单独的虚拟机上部署备份软件客户端。

不过,根据所使用的备份软件的不同,在Hyper-V环境下使用父分区备份可能有很大的局限性。举例来讲,在有特殊许可证密钥的情况下,Windows Server Backup虽然可以提供父分区备份备份,不过其供应商微软公司在这些备份的恢复中就行了很多限定。

例如,在Windows Server 2008中,Windows Server Backup只允许你恢复整个逻辑卷而非单独的虚拟机。虽然无法恢复单独的虚拟机是一个比较极端的例子,不过一些第三方备份产品在进行父分区备份时也有着类似的限制。举例来说,市场上一些备份产品支持备份恢复单独的虚拟机(在父分区层),不过无法支持某虚拟机中细颗粒度的数据的恢复。换句话说,假设你想要恢复一个误删除的文件,你必须恢复整个虚拟机才行。

当然,并不是所有的备份产品都有这类限制。在过去的一年中,一些新出现的备份产品可以支持父分区层备份后,每个虚拟机及其中细颗粒度信息的恢复。不过这类产品对于虚拟机仍有很大的局限,其中包括对Hyper-V的VSS写入,因此缺少对使用动态磁盘(不同于动态扩展虚拟磁盘)来进行虚拟机备份的支持。

子分区备份

由于父分区备份有着如此多限制和局限性,子分区备份在某些情况下或许是更佳的选择。子分区层备份各单独的虚拟机。

子分区备份在许多方面就像是在备份一台台物理服务器。值得注意的是,假设你要恢复整个虚拟机,在恢复开始之前你要手动创建该虚拟机。原因是子分区层面的备份并不能备份虚拟机的配置(比如该虚拟机可以授权使用的虚拟处理器和内存的数量)。因此假设你计划只使用子分区层的备份,你必需记录下每个虚拟机的配置和虚拟网络连接。

其它Hyper-V备份最佳实践

正如上文提到的,有一些第三方备份产品可以进行父分区备份并支持细颗粒度的恢复。这类产品结合了父分区和子分区各自的优势。即使这样,你还是需要了解一些Hyper-V环境下的备份最佳实践。

首先,几乎所有的Hyper-V环境备份产品都是基于VSS的。这使得虚拟机可以在线备份。不过,这一前提是虚拟机运行Hyper-V Integration Service。更早的Windows或非Windows操作系统无法运行Integration Service。因此,这类虚拟机在备份之前必须保持静态。

另一点是应用程序认知。如果你正在虚拟机中运行数据库应用,那么备份应用程序必须对这些特殊的应用程序有一个VSS写入。否则,(在虚拟机保持在线的情况下,)很容易引起数据的不一致性。

这种情况尤其容易在Exchange Server和SQL Server应用中出现。当备份应用程序对数据库应用驱动没有VSS写入时,你的虚拟机备份过程必须在子分区层进行,或者将特定的虚拟机下线后再进行备份。

相关文章:

  • 通过监控诊断和调试应用程序对共享目录访问可能的权限问题
  • 我的第五代选择器Icarus
  • 古老的话题:成本控制
  • 使用WebLogic进行应用软件开发
  • 系统集成资质培训 - 案例分析知识点复习
  • 遇到一个很诡异的问题,求解答
  • 高度图构造地形
  • Oracle SQL的优化规则
  • 【转】FLASH Player 11.2 BETA 鼠标新特性初探及api配置
  • Poj1180 Batch Scheduling --- DP的斜率优化
  • 把成熟的代码从.NET移植到Mono 【转】
  • 使用rsync+inotify做双机实时互备
  • Xen Desktop测试报告
  • 减速机行业“十二五”标准化战略
  • 超声(PDUS)能否容易检出侵蚀?比较PDUS与microCT对正常人群和RA患者小关节生理和皮质断裂的评价...
  • 【mysql】环境安装、服务启动、密码设置
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Computed property XXX was assigned to but it has no setter
  • es6
  • gops —— Go 程序诊断分析工具
  • HashMap ConcurrentHashMap
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java多线程
  • js继承的实现方法
  • KMP算法及优化
  • Laravel 实践之路: 数据库迁移与数据填充
  • PhantomJS 安装
  • PHP那些事儿
  • quasar-framework cnodejs社区
  • React Transition Group -- Transition 组件
  • scrapy学习之路4(itemloder的使用)
  • 阿里云Kubernetes容器服务上体验Knative
  • - 概述 - 《设计模式(极简c++版)》
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 面试遇到的一些题
  • 前嗅ForeSpider教程:创建模板
  • 设计模式 开闭原则
  • 怎么把视频里的音乐提取出来
  • 正则学习笔记
  • AI算硅基生命吗,为什么?
  • zabbix3.2监控linux磁盘IO
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (八)Flask之app.route装饰器函数的参数
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)JAVA中的堆栈
  • (转)shell中括号的特殊用法 linux if多条件判断
  • *Django中的Ajax 纯js的书写样式1
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net MVC4 上传大文件,并保存表单
  • .NET 的程序集加载上下文
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉