动态迁移是虚拟化技术的一个标志,它允许虚拟机在服务器间进行动态迁移、调节负载平衡、性能管理、备灾管理和数据中心维护。Windows Server 2012 R2中的Hyper-V动态迁移默认功能具备相当的灵活性,管理员必须了解Hyper-V环境中一些潜在的可调优和可变选项。Hyper-V动态迁移提供相应的配置灵活度,实现更高效率,但如果没有将诸如处理器兼容性的因素考虑在内的话,TCP包和备份将引发Hyper-V性能问题。

Hyper-V运用现代Intel和AMD处理器的独特能力来改进虚拟机性能,当虚拟机创建后Hyper-V将充分利用处理器性能。当某个虚拟机被迁移到另一个主机系统,迁移到的系统的处理器需要与原有系统完全一致。这将保证迁移以后的虚拟机可正常工作。理想地说,如果数据中心的每个服务器都使用相同的处理器,那所有的虚拟机都可以无缝地进行动态迁移。

但迁移整个数据中心,甚至是整个集群,都很难碰到处理器是相同的情况。Hyper-V同样提供了对处理器的兼容模式,允许虚拟机在使用分属相同Intel或AMD处理器家族的不同处理器的系统间实现迁移,但无法实现在Intel和AMD平台间的迁移。

选择(处理器)兼容性模式需要停止和重启虚拟机,这无疑将影响某些关键应用。然而,当虚拟机停止,找到虚拟机的设置界面并在处理器选项下检查"迁移到一个使用不同处理器的物理计算机"的选项,这将使虚拟机只应用那些在迁移前后都可以支持的特性。尽管处理器兼容模式对动态迁移的速度没有决定性影响,但它可以预防虚拟机的迁移失败。

TCP chimney包是通过将网络传输从服务器的处理器转移到网络适配器上的另一项可以改进网络和系统性能的技术。Hyper-V动态迁移允许在迁移过程中通过转移TCP栈的方式迁移TCP包。如果目标服务器有NIC功能,也将支持TCP包,其特点在于一旦迁移完成将立刻搬回到硬件上。否则,TCP栈会一直保留在虚拟机上。

Hyper-V每次只能初始化一个动态迁移过程,因此处理器可以传递或接收虚拟机。如果部署的是服务器集群,则集群可以迁移多个续集你,但每个节点每次只能单向发送或接收虚拟机。例如,某集群中有四台服务器,该集群可以同时进行两个动态迁移过程。System Center Virtual Machine Manager 2012 R2可在两边的服务器上调用维护模式,使双方的服务器处于已保存的冻结状态,或在集群中将所有虚拟机执行有序地迁移。

迁移的虚拟机备份也是有技巧的。通常,需要虚拟机置为到保存的冻结状态,存储快照存到硬盘中,然后将虚拟机恢复工作状态。然而,这种办法会牺牲工作内容的可用性。借助诸如Volume Shadow Copy Service(VSS)这样的工具在虚拟机内存储子虚拟机快照进行备份是可能的,这样便不需要将虚拟机置为保存的冻结状态。

如果迁移过程与备份过程相冲突,VSS将等待迁移过程完成,再恢复备份过程。但当备份完成,已被迁移的虚拟机就不在原来开始备份的服务器上了。备份过程依靠共享容量的集群中的文件依旧可以完成,但备份的内容仅仅是一个副本而非普通的在线备份。有规则的迁移活动环境应坚持快照,以确保及时和完整地保护虚拟机。为了避免Hyper-V的性能问题,在迁移过程中不要安排备份活动。

Hyper-V动态迁移中?小心性能损失的更多相关文章

  1. Hyper V NAT 网络设置 固定IP / DHCP

    Hyper V 默认的Default Switch同时支持了NAT网络以及DHCP,虚拟机能够访问外网. 但使用过程中发现这个IP网段经常变化,而且Hyper V没有提供管理其NAT网络与DHCP的图 ...

  2. Oracle 中的一些重要V$ 动态性能视图,系统视图和表

    v$database:数据库的信息,如数据库名,创建时间等. v$instance 实例信息,如实例名,启动时间. v$parameter 参数信息,select * from v$parameter ...

  3. 【转】 Oracle 中的一些重要V$ 动态性能视图,系统视图和表

    v$database:数据库的信息,如数据库名,创建时间等. v$instance 实例信息,如实例名,启动时间. v$parameter 参数信息,select * from v$parameter ...

  4. Oracle12c中SQL性能优化(SQL TUNING)新特性之自动重优化(automatic reoptimization)

    Oracle12c中的自动重优化 Oracle12c中的自适应查询优化有一系列不同特点组成.像自适应计划(AdaptivePlans)功能可以在运行时修改执行计划,但并不允许计划中连接顺序的改变.自动 ...

  5. x86服务器中网络性能分析与调优 转

    x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...

  6. 【SQL系列】深入浅出数据仓库中SQL性能优化之Hive篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SQL系列]深入浅出数据仓库中SQL性能优化之 ...

  7. 基于NFS共享存储实现KVM虚拟机动态迁移

    基于NFS共享存储实现KVM虚拟机动态迁移 一:配置环境 二:安装相关的依赖包 三:实现NFS共享存储 四:KVM机配置相同的步骤 五:安装KVM01安装虚拟机 六:实现迁移  实验初始配置:所有主机 ...

  8. 【翻译】.NET 5中的性能改进

    [翻译].NET 5中的性能改进 在.NET Core之前的版本中,其实已经在博客中介绍了在该版本中发现的重大性能改进. 从.NET Core 2.0到.NET Core 2.1到.NET Core ...

  9. kvm安装window系统及使用NFS动态迁移

    验证是否开启虚拟化 # grep -E 'svm|vmx' /proc/cpuinfo - vmx is for Intel processors - svm is for AMD processor ...

随机推荐

  1. js 数组操作常用方法

    push():在数组后面加入元素,并返回数组的长度: unshift():在数组前面就如元素,并返回数组的长度: pop():删除最后一个元素: var arr =[1,2,3,4,5] ; arr. ...

  2. Angular CLI的简单使用(1)

    参考地址:  https://v2.angular.cn/docs/ts/latest/cli-quickstart.html Angular CLI是一个命令行界面工具,它可以创建项目.添加文件以及 ...

  3. C#启动或停止 计算机中“服务”

    第一.要添加一个引用System.ServiceProcess 第二.要在程序中使用命名空间ServiceProcess 代码片段: using System.ServiceProcess; Serv ...

  4. sql队伍的胜负情况

    1.数据显示情况 2.sql语句执行情况 USE [数据库名] GO /****** Object: Table [dbo].[测试] Script Date: 08/03/2017 10:58:02 ...

  5. 索引是否也能提高UPDATE,DELETE,INSERT速度 解释

    insert 不会提高,insert 用不到索引,只会增加维护索引的时间. update ,更新索引列不会提高,少量更新非索引列,会有提高 : 更新索引列,索引要重新维护,更新非索引列,倒是没什么影响 ...

  6. SAP Netweaver的负载均衡消息服务器 vs CloudFoundry的App Router

    Message server for ABAP Netweaver SAP传统应用经典的三层架构: 起到负载均衡的消息服务器(Message Server)在图中没有得到体现.然后,消息服务器在我们每 ...

  7. POJ - 3045 Cow Acrobats (二分,或者贪心)

    一开始是往二分上去想的,如果risk是x,题目要求则可以转化为一个不等式,Si + x >= sigma Wj ,j表示安排在i号牛上面的牛的编号. 如果考虑最下面的牛那么就可以写成 Si + ...

  8. 18课 Vue第一节

    Q1: url-loader必须搭载file-loader?Q2: 图片的打包问题,如果直接写在img标签里用src引用图片,该如何打包?Q3: 如何根据不同的页面html模板打包与之对应的css/j ...

  9. 漫谈Ajax在.Net中的使用

    引用地址:http://birdshover.cnblogs.com/archive/2006/07/03/441439.html AJAX出来的时间也不短了.虽然它在某些方面很受争议,但是瑕不掩瑜. ...

  10. Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 for(;;) SimpleDateFormat("yyyy-MM-dd hh:mm:ss") equalsIgnoreCase

    package com.swift; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanne ...