如果在 Virtual Machine Manager (VMM) 环境中具有 Microsoft System Center 2012 R2 更新汇总 7 或更高版本,则现在可以在主机服务器重新授权到 VMM 后将孤立虚拟机与其服务或 VM 角色重新关联。 如果服务或 VM 角色 VM 在主机添加或删除周期中孤立,则此操作很有帮助。 这也有助于实现服务和 VM 角色的恢复和备份方案。
以前有什么问题?
-
有时,主机或群集可以从 VMM 中解除授权,并且必须还原。 如果此类主机或群集托管了属于任何服务或 VM 角色的虚拟机,则 VMM 管理员在 UR7 之前无法将 VM 重新关联到各自的服务或 VM 角色。
-
如果主站点关闭时使用Site Recovery服务,则会在辅助站点恢复虚拟机。 服务模板在辅助站点可用后,以前无法将已恢复的虚拟机关联到新部署的服务实例。
如何实现重新关联虚拟机?
通过使用以下 cmdlet,现在可以将虚拟机重新关联到其服务或 VM 角色。
参数集:Service此 处可查看验证检查的列表。
Join-SCVirtualMachine [–VM] <VM> -ComputerTier <ComputerTier> [<CommonParameters>] Parameter Set: VM Role Join-SCVirtualMachine [–VM] <VM> -VMRole <CloudVMRole> [<CommonParameters>]此 cmdlet 在 VMM 上运行重新关联任务。 此任务执行一组验证,帮助确认虚拟机与服务模板的兼容性。 单击参数详细信息
-VM <VM>
此参数指示应加入服务或 VM 角色的孤立虚拟机。
别名 |
无 |
必填? |
真 |
位置? |
1 |
默认值 |
无 |
接受管道输入? |
True (ByValue) |
接受通配符? |
假 |
-ComputerTier <ComputerTier>
使用此参数指定应将虚拟机加入到的服务实例的计算机层。
别名 |
无 |
必填? |
真 |
位置? |
叫 |
默认值 |
无 |
接受管道输入? |
假 |
接受通配符? |
假 |
-VMRole <CloudVMRole>
使用此参数指定虚拟机应加入到的 VM 角色。
别名 |
无 |
必填? |
真 |
位置? |
叫 |
默认值 |
无 |
接受管道输入? |
假 |
接受通配符? |
假 |
示例
示例 1:将孤立虚拟机加入服务层
$vm = Get-SCVirtualMachine – Name “PS-Web-001”
$ct = Get-SCComputerTier –Name “MyService-WebTier” Join-SCVirtualMachine -VM $vm –ComputerTier $ct 示例 2:将孤立虚拟机加入 VMRole$vm = Get-SCVirtualMachine – Name “PS-Web-001”
$vmRole = Get-CloudResource –Name “PetShop” Join-SCVirtualMachine –VM $vm –VMRole $vmRole屏幕截图
以下屏幕截图显示了引入此功能之前 VMM 的行为。 VMM 中的 “服务 ”窗格显示缺少服务实例的虚拟机。
以下屏幕截图显示了将虚拟机重新关联到服务实例后的行为。在重新关联虚拟机之前所做的假设
-
假定虚拟机正在运行,并且其上运行的所有来宾应用程序和服务保持不变。
-
要加入虚拟机的计算机层必须以低于其最大实例计数运行。 联接操作的升级域类似于横向扩展。
-
重新关联的虚拟机必须是最初属于服务或 VM 角色部署的虚拟机。 此外,不得以无法通过 VMM 验证检查的方式更改它。 (有关检查) 的完整列表,请参阅“验证检查列表”部分。
警告:
不支持将虚拟机加入使用负载均衡器的服务或 VM 角色的过程。 如果尝试将虚拟机加入此类服务或 VM 角色,则用户必须手动配置任何负载均衡器设置。验证检查列表
下面是验证检查的列表,用于验证虚拟机与服务模板的兼容性。
虚拟机和 ComputerTier 状态 虚拟机必须处于运行状态,并且计算机层必须处于已部署状态。 此外,由于此操作类似于横向扩展,因此该层的虚拟机总数不应超过其最大限制。-
检查虚拟机是否处于运行状态。
-
检查虚拟机是否已关联到计算机层。
-
检查计算机层是否处于“已部署”状态。
-
检查该层的 VMInstanceCount 值是否小于最大值。
验证虚拟机范围
A 服务是否可部署在云或 HostGroup 上。 虚拟机应在部署服务的云或 HostGroup 范围内。-
检查虚拟机是否在服务实例范围内。
-
检查虚拟机的所有者是否与服务实例的所有者相同。
-
检查虚拟机的 UserRole 是否与服务实例的 UserRole 相同。
网络检查
对虚拟机网络和虚拟机上预期的 IP 地址类型执行基本的最小检查。-
如果与虚拟机网络匹配的虚拟机上有虚拟网络适配器 (虚拟网络接口卡或 vNIC) ,请检查模板定义的每个网络适配器。
-
检查 IP 地址类型。
验证来宾代理状态
如果计算机层的虚拟机模板要求来宾代理存在于虚拟机上,则执行以下检查:-
验证虚拟机上是否安装了来宾代理。
-
检查来宾代理是否响应 (检测信号) 。
-
验证来宾代理版本。
请注意,如果计算机层具有一个或多个与之关联的 LBVips (负载均衡器 VIP) ,并且层计算机实例计数为零 (0) ,则此 cmdlet 不能用于将虚拟机关联到此类层。
也就是说,对于具有 LBVips 的计算机层,关联的虚拟机不能是该层的第一个虚拟机。 它必须至少有一个现有虚拟机,可以通过横向扩展该层来获取。 在这种情况下,建议横向扩展层以至少拥有一个虚拟机。 这样做是为了避免影响 NLB 群集的问题,其中层可能没有任何 NLB 节点,我们尝试添加最终失败的 VIP 成员。