VMware管理员必备:借助PowerCLI配置标准交换机
2010-6-21
【TechTarget中国原创】为了说明本文的主旨,最佳的办法是给出一个实例,接下来,TechTarget特约作者Mike Laverick通过例子看看问题如何产生的。在周一的早上,老板通知你由于新项目的需求将要创建一个新的虚拟LAN(VLAN)。而在我们的VMware集群中共有32台ESX主机,而且是可以支持分布式资源调度(DRS)和高可用(HA)的VMware集群,那么您需要跨所有的32台ESX主机上创建新的VLAN,同时创建指定的端口组VLAN20。
当然,如果您使用了VMware vSphere4和新的vNetwork Distributed Switches,给分布式交换机增加端口组仅仅是一项琐碎的小工作,只需要稍等一会,它就会自动为每台ESX主机添加。但是,即使您使用的是vSphere 4,也可能无法实现自动的过程,因为分布式交换机只有在最昂贵的vSphere版本中才会激活,即Enterprise Plus版本。
如果没有Enterprise Plus版本,您被迫需要使用标准的交换机技术。那么请遵循以下的步骤,在VMware Infrastructure Client或vSphere Client中操作:
【TechTarget中国原创】为了说明本文的主旨,最佳的办法是给出一个实例,接下来,TechTarget特约作者Mike Laverick通过例子看看问题如何产生的。在周一的早上,老板通知你由于新项目的需求将要创建一个新的虚拟LAN(VLAN)。而在我们的VMware集群中共有32台ESX主机,而且是可以支持分布式资源调度(DRS)和高可用(HA)的VMware集群,那么您需要跨所有的32台ESX主机上创建新的VLAN,同时创建指定的端口组VLAN20。
当然,如果您使用了VMware vSphere4和新的vNetwork Distributed Switches,给分布式交换机增加端口组仅仅是一项琐碎的小工作,只需要稍等一会,它就会自动为每台ESX主机添加。但是,即使您使用的是vSphere 4,也可能无法实现自动的过程,因为分布式交换机只有在最昂贵的vSphere版本中才会激活,即Enterprise Plus版本。
如果没有Enterprise Plus版本,您被迫需要使用标准的交换机技术。那么请遵循以下的步骤,在VMware Infrastructure Client或vSphere Client中操作:
- 选择ESX主机;
- 选择Configuration页;
- 在Hardware Pane中选中Network选项;
- 选择Standard vSwitch的参数;
- 通过运行向导来增加端口组(在这些步骤之外,该向导还有额外的三步操作);
- 花费整个早上的时间用于不断地重复步骤1-5在其余的31台ESX主机上。当然,执行一个重复的工作进程是非常枯燥的事情,而且还带有极大的风险可能会发生人为错误。当人们不断地去重复某项工作时,出错误的概率会极大地上升。
PwoerCLI如何拯救这个过程?
VMware在客户体验上很糟糕的一点就是总让管理员不断地面临这种状况。但是这并不是完全无能为力——通过使用一组PowerCLI代码,管理员可以在几分钟的时间内完成这个工作。
该过程的第一步就是学习如何在已存在的vSwitch中,为某台ESX主机添加一个端口组。接下来,就是把这个过程重复到集群中的每台ESX主机上,通过使用PowerCLI中的一个非常方便的“for-each”命令就可以把该配置改变应用到所有的ESX主机。为了达到这个目的,通过使用Get-VitualSwitch cmdlet命令来选择希望调整的目标vSwitch,然后配合使用New-VirtualPortGroup命令来创建端口组。
接下来要做的就是确保这个过程已经在指定集群的每台ESX主机上都正确运行。为了满足安全性和可靠性的需求,您需要采用必要的过滤机制来保证其它的无关ESX主机不会执行该命令。该过滤机制主要用于通知到PowerCLI,只对数据中心里指定的VMware HA/DRS集群中的主机做操作。这五行命令如下:
connect-viserver vc4nyc.corp.com -username corp\administrator -password vmware
Foreach ($vmhost in (get-cluster -name "AMD Cluster1" | get-vmhost))
{
$vs = Get-VirtualSwitch -VMHost $vmHost -Name "vSwitch0"
$vlan = New-VirtualPortGroup -VirtualSwitch $vs -Name "vlan20" -vlanid 20
}
如上的脚本程序会查找名为“AMD Cluster1”中的每台ESX主机,然后通过Get-VirtualSwitch cmdlets命令来标示出哪台vSwitch需要被调整,紧接着通过New-VirtualSwitch cmdlets命令来创建端口组。最后脚本程序会重复执行直到队列中的所有ESX主机都执行了这些命令。
如果某些情况下确实需要对每个ESX集群中的所有ESX主机做更改。很简单,您只需把"Get-Cluster –name "AMD Cluster1"这行删掉。然而,虽然说编写一个PowerCLI脚本可以对数据中心的每台ESX主机更改网络参数固然是一件很不错的事情,然而这样做的同时也为数据中心带来了非常大风险,一旦脚本没有获得很好的测试就会带来大的问题。请牢记:权力越大,责任也相应地越大。