【IT168 应用技巧】上次终于安装好了数据库和VMM服务器,以及VMM管理员控制台,同时还介绍了基本的功能,可以创建虚拟机了吗?
我开始也以为可以创建虚拟机了呢,可是提示说没有地方放置虚拟机。原来虚拟机还需要虚拟机主机来放置才行。
那么,是随便什么机器都可以放置虚拟机吗?不是的,因为VMM2008不过就是一个管理工具,它最终还是需要Virtual Server或者Hyper-V等虚拟软件来支持。在添加虚拟主机的时候有这样的一个规则:
1、如果操作系统是Windows Server 2008或者Windows Server 2008 R2的机器,如果主机上没有启用Hyper-V,则VMM将尝试Hyper-V,注意的是,当启用Hyper-V的时候,主机会自动重启,所以不要以为是机器挂了。而且重启会造成正在运行的作业停止,等机器重启之后得从新添加。看到这里可吓坏了吧?我现在只有一台机器,它本身又是Server,那不是Server也要挂了?对!我真的试验过。所以呢,如果是有几百个人共用的Server(夸张一点),那么将有几百个人同时出现故障。所以我就提前把Hyper-V给手动启动了。在Server Manager那里添加Hyper-V角色即可。
2、对于Windows Server 2008或者Windows Server 2008 R2类型的机器,如果主机本身不支持Hyper-V,那么启动Hyper-V也会失败,添加虚拟主机的作业也会停止。那么只好手动安装Virtual Server了,也就是不能作为Hyper-V类型的主机了,只能作为Virtual Server类型的主机。微软要求太高啦!!什么时候要求低一点就好了。
3、如果是Windows Server 2003的机器,则会自动安装Virtual Server,不过Virtual Server Administration Website没有装上,也就是在主机上不能操作虚拟机了。得手动安装这个组件才能在主机上操作虚拟机。不过完全没必要,因为VMM已经可以很好的给你作管理啦!
4、VMWare ESX Server类型的主机也可以。相关知识可以到微软网页上找。
5、其他类型的机器好像不支持吧。
了解那么多,终于放心了。那么开始把准备好的主机加入VMM吧,Hyper-V都已经启动好了!
1、点击操作面板上面的“Add host”,即弹出添加主机的对话框。
A. 对话框中显示有三种主机类型:Active Directly域的主机,周边网主机,VMWare ESX Server主机。
B. 提示了当前的用户名和域,密码为空。
C. Host in a trusted domain
我自己的主机是加入了Active Directly域,所以选择默认的,并输入密码,按下一步。
2、第二步是选择Host Server。
其实很简单,默认已经把域名给填好了。添上机器名,按Add即可得加入我的机器。
第二步有一个跳过Active Directly验证,一般每必要,只有经过验证才能得到更详细的信息。具体大家可以去试验试验。
当按下一步的时候,会弹出一个对话框。
就是前面提到的Hyper-V主机,如果没有激活Hyper-V,则会立即重启并使正在运行的作业停止。
3、第三步选择主机组,默认就好。
4、第四步要求添加存放虚拟机的默认目录。所以我添加了E:\VMs,以免创建的虚拟机找不到了。如果没有添加这个路径,则默认为:C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
5、提示相关信息,注意看有一个“View Script”按钮。可以查看PowerShell的脚本。
经过这五步,就完成了添加虚拟主机的操作。加上写这个博客加起来,花了我不少时间!!
如果要加100台机器,这样做就太没人性了。有那么多步骤,为什么不能直接来一个全部默认?像Hyper-V创建虚拟机还可以直接Finish呢!
没办法,听说PowerShell是个强大的脚本语言,应该可以完成这些事情,所以我看了一下脚本。
代码
$Credential = get-credential
$VMHostGroup = Get-VMHostGroup -VMMServer localhost | where {$_.Path -eq "All Hosts"}
Add-VMHost -VMMServer localhost -ComputerName vmm-demo-srv -Description "" -Credential $Credential -RemoteConnectEnabled $true -VmPaths "E:\VMs" -Reassociate $false -RunAsynchronously -RemoteConnectPort 2179 -VMHostGroup $VMHostGroup
原来那么简单啊!就三步。步数少就简单吗?先仔细看看再议。
我先直接运行了一下,原来第一步就是获取密码,而且密码可以保存起来再用。
OK,我终于知道怎么添加虚拟主机了,而且我可以添加很多的主机,就是用PowerShell,真强大。我是这么想的,使用一个数组,脚本就改成这样:
代码
$Credential = get-credential
$VMHostGroup = Get-VMHostGroup -VMMServer localhost | where {$_.Path -eq "All Hosts"}
$MachineList = "vmm-demo-host1","vmm-demo-host2","vmm-demo-host3","vmm-demo-host4"
foreach ($MachineName in $MachineList)
{
Add-VMHost -VMMServer localhost -ComputerName $VMachineName -Description "" -Credential $Credential -RemoteConnectEnabled $true -VmPaths "E:\VMs" -Reassociate $false -RunAsynchronously -RemoteConnectPort 2179 -VMHostGroup $VMHostGroup
}