Hyper-V 扩展比较


Windows Server
2008
Windows Server
2008 R2
Windows Server 2012
HW 逻辑处理器
支持
16 个 LP 64 个 LP 320 个 LP
物理内存支持1 TB 1 TB  4 TB
群集扩展16 个节点,
最多 1,000 个 VM
16 个节点,
最多 1,000 个 VM
64 个节点,
最多 4,000 个 VM
VM 处理器支持最多 4 个 VP最多 4 个 VP最多 64 个 VP
VM 内存 最多 64 GB最多 64 GB最多 1 TB
实时迁移 不。仅快速迁移是,一次一个是,没有限制
只要硬件允许
实时存储迁移不。通过 SCVMM
快速存储迁移
不。通过 SCVMM
快速存储迁移
是,没有限制
只要硬件允许
群集中的服务器数16
16

64

VP:LP 比率8:18:1(服务器)
12:1(客户端)(VDI)
没有限制。
只要硬件允许


Windows Server 2012 新增了一些实时迁移选项:

无共享基础结构实时迁移

使用 SMB 实时迁移

在群集间实时迁移


实时迁移安全

默认情况下禁用实时迁移
实时迁移网络安全:
物理安全
IPsec/其他加密选项
当涉及两台以上的计算机时,管理安全和身份验证会
变得很复杂
有时即使只涉及两台计算机,也会很复杂


基本迁移原则

“虚拟机始终要处于运行状态”

实际上是存在中断时间的,只是此中断时间不超过5秒


无共享基础结构实时迁移 的条件:

需要在同一域中

需要千兆网络

(实现整个虚拟机移动(VHD + 运行状态),且不需要停机)

Hyper-V主机必须要加入域的移动技术有:实时迁移和群集间迁移


迁移过程是,先做存储迁移后做内存同步,所以前阶段效慢,但后阶段会相对较快。

迁移过程中文件拷贝不会中断,但PING包会有中断。


使用 SMB 实时迁移

由于不用迁移存储,所以迁移速度相对比使用 SMB 实时迁移要快,在迁移时直接就跳到50%的进度,只需要做内存同步,同样会有一至二个的PING包丢失。

不移动存储,只运行虚拟机

类似于群集中的实时迁移,但没有高可用性

要求 SMB 3.0

用户和计算机都需要访问共享


在群集间实时迁移

带来的改进是,虚拟机在从群集中删除或添加到一个新群集时无需将虚拟机关闭。

从而实现了在群集间的实时迁移

其它原理与上两项技术一样,只是多了两步,要先从现在的群集中删除出来,然后加入到新的群集中去。


实时存储迁移

对虚拟机性能的影响相当于在虚拟机上执行大文件拷贝时所产生影响类似。

在迁移速度上,相当于无共享基础结构实时迁移的第一阶段的存储迁移。


虚拟机的导入导出改进:

不需要导出就可以导入

导入原始 XML 文件

不再要求导出步骤:UI 中的“导出”选项只是复制 XML 文件


使用Powershell操作时会有导入配置检查和虚拟机兼容性报告,告知用户应如何修复导入问题,如CPU核数的不足等。


虚拟机移动和保护技术

wKiom1MCNt-CVn1bAANaXz2x_3g290.jpg

Hyper-V复制

使用 Hyper-V 副本,便可在两个托管服务器之间对 Hyper-V 虚拟机进行同步复制。这很容易配置,不需要共享存储或任何特定的存储硬件。可以在 Hyper-V 中虚拟化的任何服务器工作负载均可以被复制。复制可通过基于 IP 的任何普通网络运行,并且复制的数据可以在传输期间进行加密。Hyper-V 副本将与独立服务器、故障转移群集或与二者一起配合使用。这些服务器可以在物理上位于同一个位置,也可以在地理位置上相隔很远。物理服务器无需位于同一个域中,或者甚至根本不需要加入任何域中。


此方案中,我们定义了两个“站点”:一个是“主站点”,是虚拟化环境通常运行的位置;另一个是“副本站点”,是接受复制的数据的服务器位置。在主站点上,主服务器是托管一个或多个主虚拟机的物理服务器。同样地,在副本站点上,副本服务器将托管副本虚拟机。

一旦配置并启用了复制,主虚拟机中的数据初始副本则必须发送到副本虚拟机。我们称之为“初始复制”,你可以选择直接通过网络或通过将数据复制到物理设备并传输到副本站点来完成。

当复制正在进行时,主虚拟机中的一些更改将通过网络定期传输到副本虚拟机。确切的频率会根据完成一个复制周期所花费时间长度(反过来取决于其他因素中的网络吞吐量)的不同而不同,但通常情况下复制大约每 5-15 分钟发生一次。

你可以选择随时将任何主虚拟机上的操作移到其相应的副本虚拟机,我们将此操作称为“计划的故障转移”。在计划的故障转移中,任何未复制的更改首先被复制到副本虚拟机上,并关闭主虚拟机,这样就不会发生数据丢失。在计划的故障转移后,副本虚拟机将接管工作负载;若要为目前处理工作负载的虚拟机提供同样的保护,你可以配置“反向复制”,(一旦回到联机状态)便可将更改发送回主虚拟机。

如果主服务器发生意外故障(可能由于重大的硬件故障或自然灾难而引起),你可以让副本虚拟机接管工作负载—这就是“非计划的故障转移”。在非计划的故障转移中,有可能出现数据丢失的情况,这是因为没有机会对尚未复制的更改进行复制。


由于 Hyper-V 副本如此简单灵活,它可以被使用在各种各样复杂程度不同的潜在场景。一些示例如下:

总公司和分支机构

在此方案中,有两个站点:处于主导的总公司和位于不同物理位置的一个或多个分支机构。利用虚拟化的工作负载,可以使用 Hyper-V 副本向分支机构提供灾难恢复支持。任何一个站点中的服务器都可以是群集的或独立的。

这种情况下,可以在运行于总公司主服务器上的虚拟机上运行日常操作。每个分支机构都会有一个待命中的副本服务器,在主服务器出于任何原因必须脱机的事件中,接管工作负载。

此方案可以扩展至涉及拥有许多服务器的大型数据中心,而无需关于 Hyper-V 副本的任何不同的管理活动。

托管云

此方案中,托管提供商在其数据中心设立一个副本服务器,它从在其各种客户的经营场址运行虚拟化工作负载的一些主服务器接收复制数据。托管提供商的副本服务器从而可以为订阅它的客户提供灾难恢复能力。

为确保客户的安全,此方案会涉及基于证书的身份验证,它使用很可能由托管提供商拥有的独立证书服务器提供的证书。另外,副本的受信任组功能允许托管提供商分开来自每个客户的复制数据,使用单独的存储位置和标记以阻止来自各种客户的数据被混合。


硬件要求

只要任意两个物理 Windows Server 2012 服务器支持 Hyper-V 角色,就可以设置 Hyper-V 虚拟机的复制。这两台服务器可以在物理上位于同一个位置,也可以位于完全独立的地理位置。主服务器和副本服务器中的任意一台(或同时两台)都可以称为故障转移群集的一部分,并且支持混合的独立与群集环境。

软件要求

除 Windows Server 2012 外不要求特别的软件。如果你计划使用基于证书的身份验证(在传输过程中给复制数据加密所必需的),你将需要一个合适的证书,既可以是本地的也可以是自签名的,或者也可以由你部署中的一台证书服务器提供。


实施步骤:

第一步,规划

确定哪些VHD文件要复制,如页面文件磁盘则不用复制。

配置防火墙允许复制流量的通过(启用“Hyper-V 副本 HTTPS 侦听器 (TCP-In)”规则),或规划防火墙的位置

get-clusternode | ForEach-Object  {Invoke-command -computername $_.name -scriptblock {Enable-Netfirewallrule -displayname "Hyper-V Replica HTTP Listener (TCP-In)"}}

如果是在群集中应用,还需要安装Hyper-V副本代理

$BrokerName = “HVR-Broker”

Add-ClusterServerRole -Name $BrokerName –StaticAddress 192.168.1.5

Add-ClusterResource -Name “Virtual Machine Replication Broker” -Type "Virtual Machine Replication Broker" -Group $BrokerName

Add-ClusterResourceDependency “Virtual Machine Replication Broker” $BrokerName

Start-ClusterGroup $BrokerName

如复制流量是经过防火墙之外的,应配置证书加密

  1. 在主服务器上,本地复制 Makecert.exe 实用工具。

  2. 通过从提升的命令提示符运行以下命令来创建自签名测试根颁发机构证书:

    makecert -pe -n "CN=PrimaryTestRootCA" -ss root -sr LocalMachine -sky signature -r "PrimaryTestRootCA.cer"

  3. 通过从提升的命令提示符运行以下命令来创建测试根颁发机构证书签名的一个新证书,提供主服务器的 FQDN:

    makecert -pe -n "CN=<FQDN>" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "PrimaryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer

  4. 在副本服务器上,本地复制 Makecert.exe 实用工具。

  5. 通过从提升的命令提示符运行以下命令来创建自签名测试根颁发机构证书:

    makecert -pe -n "CN=PrimaryTestRootCA" -ss root -sr LocalMachine -sky signature -r "ReplicaTestRootCA.cer"

  6. 通过从提升的命令提示符运行以下命令来创建测试根颁发机构证书签名的一个新证书,提供副本服务器的 FQDN:

    makecert -pe -n "CN=<FQDN>" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "ReplicaTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer

  7. 将文件 ReplicaTestRootCA.cer 从副本服务器复制到主服务器,然后使用以下命令将其导入:

    certutil -addstore -f Root "ReplicaTestRootCA.cer"

  8. 将文件 PrimaryTestRootCA.cer 从主服务器复制到副本服务器,然后使用以下命令将其导入:

    certutil -addstore -f Root "PrimaryTestRootCA.cer"

  9. 默认情况下,需要进行证书吊销检查;不过自签名证书不支持吊销检查。使用以下命令编辑主服务器和副本服务器上的注册表即可禁用检查:

    reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\FailoverReplication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

第二步:启用复制

  1. 在Hyper-V管理, 点击动作面版的Hyper-V设置.

  2. 在Hyper-V设置对话框中点击配置复制.

  3. 在详细面版中点击将服务器启用为复***务器.

  4. 在验证与端口栏里确定验证方法,证书或域验证。

  5. 如选择了证书验证,则填写证书信息。

  6. 在验证和存储栏中确定复制的存储位置。

  7. 点击OK完成。

$portmap=@{"Recovery1.hoster.com"=8081; “Recovery2.hoster.com"=8082; "Recovery3.hoster.com"=8003, “HVR-Broker.hoster.com”=8080}

$ReplicaServer = “Recovery1.contoso.com”
$RecoveryPort = 8080
$PrimaryVM1 = “CRMVM”
$PrimaryServer = “Primary1.contoso.com”

Set-VMReplicationServer -ReplicationEnabled $true -AllowedAuthenticationType Certificate -ReplicationAllowedFromAnyServer $true -CertificateThumbprint "<CertThumbprint>” -DefaultStorageLocation “<Storage Location>” -CertificateAuthenticationPort <Listenerport>

Start-VMInitialReplication –VMName $PrimaryVM1

Enable-Netfirewallrule -displayname "Hyper-V Replica HTTPS Listener (TCP-In)"

Get-ClusterNode | ForEach-Object  {Invoke-command -computername $_.name -scriptblock {Enable-Netfirewallrule -displayname "Hyper-V Replica HTTPS Listener (TCP-In)"}}

  1. 启用虚拟机复制,右击虚拟机,点启用复制

  2. 指定刚才指定的复***务器

  3. 设定连接参数

  4. 选择要复制的VHD

  5. 设定还原点数目

  6. 准备初始复制

  7. 完成复制向导

Import-Module Hyper-V

$ReplicaServer = “Recovery1.contoso.com”
$RecoveryPort = 8080
$PrimaryVM1 = “CRMVM”
$PrimaryServer = “Primary1.contoso.com”

Set-VMReplication -VMName $PrimaryVM1 -ReplicaServerName $ReplicaServer -ReplicaServerPort $RecoveryPort -AuthenticationType Integrated -CompressionEnabled $true -RecoveryHistory 0

Start-VMInitialReplication –VMName $PrimaryVM1

第三步:测试复制Failover

1. 的Hyper-V管理,右击虚拟机点复制...->测试Failover

2. 选择恢复点

3. 停止Failover测试

$ReplicaVM1 = “CRMVM”

$TestReplicaVM1 = Start-VMFailover -AsTest -VMName $ReplicaVM1

Start-VM $TestReplicaVM1

Stop-VMFailover –VMName $ReplicaVM1

第四步:进行计划内复制Failover

1. 右击虚拟机,点复制,点计划内Failover

2. 自动开始将虚拟机的变更同步到复***务器

3. 结束计划内复制Failover后,主服务器重新开机后,复***务器会进行反向复制,将变更同步会主服务器上,前提是主服务已经配置了反向复制(与设置复***务器相同的方法)

Stop-VM $PrimaryVM1
Start-VMFailover -VMName $PrimaryVM1 –prepare

$ReplicaVM1 = “CRMVM”
Start-VMFailover -VMName $ReplicaVM1
Set-VMReplication -reverse -VMName $ReplicaVM1
Start-VM $ReplicaVM1

第五步:计划外复制Failover

1. 计划外复制Failover,需要手动去启动复***务器上的虚拟机,右击复***务器上的虚拟机,点复制,Failover...

2. 此时复制虚拟机会以之前配置好的连接信息进行启动,也可以使Power Shell修改连接参数。

3. 右击复制虚拟机,点复制,点反向复制,可以将变更复制回主虚拟机

$NetworkAdapter = Get-VMNetworkAdapter -VMName $ReplicaVM2 -Name $VMNetworkAdapterName
$NetworkAdapter | Set-VMNetworkAdapterFailoverConfiguration -IPV4Address 172.20.31.100 -IPV4SubnetMask 255.255.255.0 -IPV4DefaultGateway 172.20.31.1 -IPV4PreferredDNSServer 172.20.31.101 -IPV4AlternateDNSServer 172.20.31.102

Complete-VMFailover -VMName $ReplicaVM2

Set-VMReplication -reverse -VMName $ReplicaVM2