转一篇:Hyper-V和VMware的高可用实时迁移技术详解
ESX里以集群的ha、drs、dpm功能实现
HYPER-V里以集群+共享存储实现。
~~~~~~~~~~
微软公司的Hyper-V虚拟化管理程序一经面世就引发了业界的普遍关注。本文意在对Hyper-V的高可用性和快速迁移能力与VMware旗下的VMotion的实时迁移能力进行对比。在进行详细分析之前,我们还需要了解为什么高可用性在虚拟化应用中起着绝对关键的作用。
虚拟化是一项令人敬畏的技术。在减少企业的总体拥有成本方面优势巨大,其中最显著的优势就是节省了能耗。以一座10,000台服务器配置的数据中心为例,如果以2:1的比例应用虚拟化技术进行服务器整合将服务器的数量减少一半,那么这退役的5,000台服务器所节省的能耗和成本将是个不可思议的数字。
每月的能源支出账单最能反映问题。事实上,实现2:1的整合比例是非常简单的。(我们内部的IT部门多年来都在使用虚拟机,目前在用的虚拟机数量超过了2,500台,很容易就能实现8:1的比例整合。有了Hyper-V之后,服务器整合的比例还将迅速攀升)。
然而,虚拟化并非完美无缺的。虚拟化产生的主要问题是单点故障。过去用户可以在他们的每台物理服务器上运行20项工作负载。当其中一台服务器宕机时,虽然很糟糕,但不至于波及到整个服务器网络。
而在虚拟化环境里,如果20项工作负载都在一台服务器顶部运行,那么一旦物理服务器宕机会发生什么呢?那就意味着所有的工作负载都会陷入瘫痪。这就不止是糟糕而是个灾难了。事实上大量虚拟化用户都反映了这个单点空白的问题:
虚拟化是项了不起的技术,但那是如果没有高可用性解决方案就无法实施虚拟化的部署。如果虚拟机宕机又没有配套的高可用性解决方案,那数据中心管理者就会因此而失业。
以上是我们对虚拟化部署中高可用性的重要作用的概括总结。
有了高可用性的概念,我们就知道要为计划内和非预期的宕机提供解决方案。计划内宕机是两种宕机中相对容易解决的一种(因为在计划内)也非常普遍。通常来说,硬件设备(添加内存,存储设备或者升级BIOS)或软件补丁都在计划内宕机之列。多数用户都会提前为宕机预留时间(清晨或者周末)。
非预期的宕机解决起来就相对较难。当一台服务器遭遇突然断电时,用户就希望服务器上运行的虚拟机能在没有用户干预的情况下实现在其他服务器上的自动重启。
Hyper-V管理程序与Windows Server 2008操作系统的Failover Clustering相结合,即使用户拔掉电源插头,所有的虚拟机也无需用户操作就能在其他节点上自动重启。另外,Windows Server 2008操作系统企业版和数据中心版本都包含这个功能(无需额外收费)。
我需要特别强调的是:
虚拟化与高可用性紧密相关;如果用户在没有高可用性解决方案的情况下部署虚拟化,用户就应该重新评估他们的实施战略。
Hyper-V管理程序包含完整的高可用性解决方案并与Windows Server 2008操作系统企业版和数据中心版本绑定,无需额外收费
接下来我们来讨论计划内宕机,并对快速迁移和实时迁移之间的不同加以比较;通过上周我从用户处得到的反馈,我意识到先要对一些疑惑做出解释。
用户用电子邮件的方式表示VMotion非常适用于非预期的主机宕机,因为它能实现虚拟机的实时迁移,所以是更好的高可用性解决方案。但这并不能简单套用到这个案例里。
在非预期的宕机情况下,由于没有预兆VMotion也不能实时迁移。取而代之的是用户必须配置VMware的高可用性解决方案。最好的做法是在其他服务器上重启受到影响的虚拟机,这与Windows Server 2008 Hyper-V以和Failover Clustering的做法是一样的。
以下引用VMware的文件对自动高可用性服务器的描述,第一页第二段这样说道:
"使用VMware的高可用性解决方案,虚拟机能在硬件故障的时候自动重启~"
第8页这样描述:"VMware的高可用性如何工作?
VMware的高可用性解决方案能连续监控集群上托管的所有ESX服务器并对硬件故障进行探测。每台主机上放置的代理服务器都保持和集群上其他主机的密切联系。高可用性解决方案会全天候监控集群资源是否充足,以备能在发生主机故障时随时在不同的物理主机上重启虚拟机。"
从这点上看,VMware的高可用性解决方案和Hyper-V的failover clustering实现的是同样的功能:那就是在其他的服务器上重启虚拟机。没有谁好谁坏之说。如果你仍然不相信我,找一台ESX Servers,切断电源试一下(别说我没警告你)。
之前我们讨论了高可用性解决方案对于非预期主机宕机的重要性。现在让我们继续探讨计划内宕机下快速迁移和实时迁移的比较。首先让我们先了解一下用户为什么需要迁移功能?
要实施计划内宕机主要出于两个原因:
1.硬件维修。硬件的更新换代需要添加额外的内存,存储或者BIOS升级。这时服务器就必须脱机,用户要将服务器上的工作负载在预定维修时间内快速进行迁移。
2.对主机操作系统进行补丁升级。如果根分区需要打补丁而补丁程序又需要重启,然后用户在预定的维修时间里将虚拟机快速迁移(需要指出的是运行Hyper-V最好的办法是用Server Core安装,这样能减少为Windows操作系统打补丁的需求)
我们曾就询问过使用实时迁移功能的用户,是否他们因此改进了维护流程,特别是当他们进行硬件升级的情况下。多数回答是:"不,我们仍然为服务器的宕机时间做了计划"。甚至是使用实时迁移的用户也是在宕机情况下维护硬件的。
转一篇:Hyper-V和VMware的高可用实时迁移技术详解的更多相关文章
- Vmware在NAT模式下网络配置详解
Vmware在NAT模式下网络配置详解 Linux中的网络配置对于接触Linux不久的小白菜来说,还是小有难度的,可能是不熟悉这种与windows系列迥然不同的命令行操作,也可能是由于对Linux的结 ...
- Vmware 6.5:vmware vm高可用-vSphere HA & Fault Tlerance
目录 vmware HA介绍 服务器添加存储,将存储挂载到服务器上 vcenter安装配置 群集配置 故障迁移测试 下载地址:百度云 参考文档: vmware HA介绍 vmware vm高可用至少需 ...
- 【转】在VMware中为Linux系统安装VM-Tools的详解教程
在VMware中为Linux系统安装VM-Tools的详解教程 如果大家打算在VMware虚拟机中安装Linux的话,那么在完成Linux的安装后,如果没有安装Vm-Tools的话,一部分功能将得不到 ...
- VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_GetMetadataKeys VixDiskLib_ReadMetadata 获取虚拟磁盘元数据 VixDiskLib_ ...
- VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二
目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_Open 打开 VMDK File VixDiskLib_Read 读取 VMDK File 数据 VixDiskLib_ ...
- VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
目录 目录 前文列表 VixDiskLib 虚拟磁盘库 虚拟磁盘数据的传输方式 Transport Methods VixDiskLib_ListTransportModes 枚举支持的传输模式 Vi ...
- 《python开发技术详解》|百度网盘免费下载|Python开发入门篇
<python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby 内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...
- 【转】VMware虚拟机三种网络模式超详解
[原文]https://www.toutiao.com/i6596228488666022403/ 由于Linux目前很热门,越来越多的人在学习Linux,但是买一台服务放家里来学习,实在是很浪费.那 ...
- [转载]JavaEE学习篇之——JQuery技术详解
原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/32102187 1.简介2.工具3.jQuery对象 1.DOM对象转化成j ...
随机推荐
- Python爬虫获取迅雷会员帐号
代码如下: import re import urllib.request import urllib import time from collections import deque head = ...
- java+ mysql 给所有的表添加假数据
需求:别的项目, 代码扣过来了, 数据库也拿过来了, 但是数据库全是空表, 一共700 张表,需求是给表添加假数据,让它能运行起来. 一下是代码实现: 1.数据库连接: public static C ...
- Demo_CS(移动,切换枪支,发射子弹)
using UnityEngine; using System.Collections; public class Gun : MonoBehaviour { private Animator ani ...
- android图片缓存框架Android-Universal-Image-Loader(二)
http://blog.csdn.net/king_is_everyone/article/details/35595515 这篇打算直接告诉大家怎么用吧,其实这个也不是很难的框架,大致使用过程如下: ...
- php 自定义求数组差集,效率比自带的array_diff函数还要快(转)
<?phpfunction array_different($array_1, $array_2) { $array_2 = array_flip($array_2); //将数组键值调换 fo ...
- Undefined symbols for architecture i386
这个错误的发生原因一般是“XXX”这个文件(类库)虽然引入了工程中,但是由于种种原因(常见于多人开发,svn同步不规范)导致“XXX”并未被添加到project.pbxproj这个文件中. 解决方法是 ...
- Android音频开发之——如何播放一帧音频
本文重点关注如何在Android平台上播放一帧音频数据.阅读本文之前,建议先读一下<Android音频开发(1):基础知识>,因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的 ...
- codevs 3305 水果姐逛水果街Ⅱ
/*我尼玛 又一个min打成max 看了半天....*/ #include<iostream> #include<cstdio> #include<cstring> ...
- Android虚拟机GenyMotion
GenyMotion:需要VirtualBox,安装后可以选择机型,这个应该是Android for x86的一个改进版虚拟机,在原版的基础上针对不同机型用了和原机型同样的GUI,但是发现缺少了Goo ...
- iOS开发之字典数据建立模型步骤
1. 在控制器属性的(questions)set方法中完成字典转模型的操作 - (NSArray *)questions { if (nil == _questions) { //1.加载plist文 ...