实时迁移是微软向Windows Server 2012 Hyper-V添加的最重要的功能,通过实时迁移功能,无需在Hyper-V主机之间移动虚拟机(VM)进行停机,同时在正常维护Hyper-V主机时,还可以将它托管的所有VM全部移走,等到维护结束后,再移回来,并且在这整个过程不用担心会引起业务中断。
此外,利用实时迁移功能还可以更好地动态调整主机资源利用率,将繁忙的Hyper-V主机上的部分VM移动到相对空闲的Hyper-V主机上,这样可以确保即便在业务高峰期也能给终端用户提供很好的性能。本文主要介绍Windows Server 2012 Hyper-V的实时迁移功能(Live Migration)。
一、约束委派设置的两种方法
1. 通过GUI界面设置
在我们进行实时迁移设置前,首先要进行配置约束委派,因为Hyper-V实时转移提供了两种验证通信协议,预设为CredSSP,另一种是Kerberos委派。不过相对比较安全的Kerberos委派可以阻绝任何不明启用的服务器使用委派,所以建议使用。如果使用Kerberos委派来验证实时迁移,那就必须要先设定限制委派,然后才可以继续其余的步骤,而且还要必须使用Domain Administrators群组成员的账户在Active Directory的Computers设置限制委派。如果使用CredSSP,那就不需要进行设定委派。
步骤1 打开“Active Directory 用户和计算机”管理单元。从服务器管理器 (SM) 中执行该操作,打开“Active Directory 用户和计算机”管理单元。从导航面板中选择域,然后双击“Computers”文件夹。在“Computers”文件夹中,右击源服务器的计算机账户,然后在弹出的快捷菜单中选择“属性”命令。
步骤2 在接下来弹出的“属性”对话框中,单击“委派”选项卡。在“委派”选项卡下选择“信任仅委派到特定服务的计算机”。在该选项下面,选择“仅限使用 Kerberos”。单击“添加。
步骤3 在接下来弹出的“添加服务”对话框中,单击“用户或计算机”按钮。
步骤4 在“选择用户或计算机”对话框中的“输入对象名称来选择”文本框中键入目标服务器的名称,单击“检查名称”按钮以验证你输入的名称是否正确,若无误,则单击“确定”按钮。
步骤5 在“添加服务”对话框,在可用服务列表中执行以下步骤,然后单击“确定”。要移动虚拟机存储器,请选择 cifs。如果要同时迁移存储器与虚拟机,而且仅迁移虚拟机的存储器,则需要执行此步骤。如果将该服务器配置为使用Hyper-V的SMB存储器,则应首先选中该选项。要迁移虚拟机,选择“Microsoft 虚拟系统迁移服务。
步骤6 在“属性”对话框的“委派”选项卡上,确定上一步选定的服务列在目标计算机可以为其提供委派证书的服务中,然后单击“确定”按钮。
委派要在域中的每台Hyper-V主机中都要添加相应的委派,否在会在迁移过程中报错。如在Hyper-V02中,就需要信任Hyper-V01中的Kerberos协议,并指定相应的服务类型。操作步骤与之前的相同。如果只设定一方,那就只能将虚拟机迁移过去,但却无法迁移过来。
2. 通过Powershell命令设置
下面我们用Powershell的方式进行委派,但是Powershell方式的委派非常麻烦,幸运的是在TeachNet Blogs中有提供了一个Set-KCD.ps1脚本文件,该脚本简化了烦琐的委派步骤,其地址为:http://blogs.technet.com/b/matthts/archive/2012/06/10/configuring-kerberos-constrained-delegation-for-hyper-v-management.aspx
从Blogs上我们可以下载到Set-KCD脚本文件,下载之后解压后会有两个文件,一个是Set-KCD.ps1和Set-KCD.Zip。在解压Set-KCD.Zip后,会发现里面还有个Set-KCD.ps1,第二个Set-KCD.ps1文件大约9.2KB,第一个Set-KCD.ps1大小则为3KB,其实两种Set-KCD.ps1都能实现同样的效果,差别就是文件较大的Set-KCD.ps1文件包含服务类型的名称。
首先我先看大小为3KB的Set-KCD.ps1文件,其代码如图所示。
接下来我们看大小为9.2KB的Set-KCD.ps1文件,由于代码过长,这里只给出了部分代码,可自行下载后查看,其代码如图所示。
了解了Set-KCD脚本文件,在准备执行Set-KCD.ps1脚本文件之前,还需要进行一步操作,否则会在执行的过程中会出下无法加载文件的情况。
遇到这种事情是由于Set-KCD不是Windows Powershell内建的指令,所以必须要解除限制,设定为无限制才能执行。设置完成后,我们还可以恢复Windows Powershell内建的指令限制。首先使用Powershell命令Set-ExecutionPolicy Undefined,目的是降低Windows Powershell安全性,当执行完成后,可以使用Powershell命令Set-ExecutionPolicy RemoteSigned恢复其安全性。
下面我们就来设置mabofeng.com域中的Hyper-V01信任委派Hyper-V02的服务类型CIFS。将9.2KB大小的Set-KCD.ps1文件拷贝到C盘下,使用的Powershell命令为
.\SetKCD.ps1 –TrustedComputer Hyper-V01 –TrustingComputer Hyper-V02 –ServiceType CIFS –Add
如果要将3KB大小的Set-KCD.ps1文件拷贝到C盘下,使用的Powershell命令为:
.\SetKCD.ps1 –AdDN “cn=Hyper-V01,cn=computers,dc=mabofeng,dc=com” –HostFQDN Hyper-V02.mabofeng.com –Service CIFS –Add
接下来设置mabofeng.com域中的Hyper-V01信任委派Hyper-V02的服务类型Microsoft Virtual System Migration Service。将9.2KB大小的Set-KCD.ps1文件复制到C盘下,使用的Powershell命令为:
.\SetKCD.ps1 –TrustedComputer Hyper-V01 –TrustingComputer Hyper-V02 –ServiceType “Microsoft Virtual System Migration Service” –Add
如果要将3KB大小的Set-KCD.ps1文件复制到C盘下,使用的Powershell命令为:
.\SetKCD.ps1 –AdDN “cn=Hyper-V01.cn=computers,dc=mabofeng,dc=com” –HostFQDN Hyper-V02.mabofeng.com –Service “Microsoft Virtual System Migration Service” –Add
复制完成后,进行设置信任委派,我们可以使用如下命令:
Get-AdObject “cn=Hyper-V01,cn=computers,dc=mabofeng,dc=com” –Properties msDSAllowedToDelegateTo
在域控中设定完成委派后,接下来就是设定转移的来源和目的地Hyper-V主机了。设定来源和目的地服务器目的是,让它们可以传送和接收实时迁移。当设置服务器的时候,有两种方案可供选择:在任何可用网络允许实时迁移的流量或只在指定网络上允许实时迁移的流量。最安全做法就是指定专用的网络负责实时迁移的网络流量。要在非群集Hyper-V主机上开启实时迁移,只要在Hyper-V主机的Hyper-V设置中进行设置即可。
Azkaba内置的任务类型支持command、java Command类型单一job示例 1、创建job描述文件 vi command.job command.job type=command command=echo ‘hello’ 2、将job资源文件打包成zip文件 zip command.job 3、通过azkaban的web管理平台创建project并上传job压缩包 首先创建pr...
概述 2.1.1为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; 例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示: ...
Hadoop Archives指南 概述 Hadoop archives是一种归档文件。按照官网的说法,一个Hadoop archive对应一个文件系统目录。 那么为什么需要Hadoop Archives呢?因为hdfs并不擅长存储小文件,文件在hdfs上以block的形式存储,而这些block会在namenode中保存其索引等元数据,这些元数据在namenode启动后被加载至内存。如果存在...
摘要: spark的优势:(1)图计算,迭代计算(训练机器学习算法模型做广告推荐,点击预测,同时基于spark的预测模型能做到分钟级)(2)交互式查询计算(实时) spark的主要应用场景:(1)推荐系统,实时推荐 (2)交互式实时查询 spark特点:(1)分布式并行计算框架(2)内存计算,不仅数据加载到内存,中间结果也存储内存(中间结果不需要落地到hdfs) 还有一个特点:Spark在做...
fatal error: json-c/json.h: No such file or directory ---解决方法: sudo apt-get install libjson-c-dev 然后重新执行./autoconf ./configure make 即可
1、java.lang.OutOfMemoryError: GC overhead limit exceeded 分析:因为streaming是长进程服务,如果当初分配堆太小,运行很长时间后会出现GC overhead limit exceeded问题,查看driver进程gc信息发现老年代使用率达到99.6%,故处理方法是提高driver堆大小,同时提高老年代大小。 处理:设置spark....
联系客服