为了说明本文的主旨,最佳的办法是给出一个实例,接下来,TechTarget特约作者Mike Laverick通过例子看看问题如何产生的。在周一的早上,老板通知你由于新项目的需求将要创建一个新的虚拟LAN(VLAN)。而在我们的VMware集群中共有32台ESX主机,而且是可以支持分布式资源调度(DRS)和高可用(HA)的VMware集群,那么您需要跨所有的32台ESX主机上创建新的VLAN,同时创建指定的端口组VLAN20。 当然,如果您使用了VMware vSphere4和新的vNetwork Distributed Switches,给分布式交换机增加端口组仅仅是一项琐碎的小工作,只需……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
![TechTarget微信公众号二维码](/wp-content/uploads/res/images/spriteimg/ttweixin.jpg)
TechTarget
官方微博
![TechTarget中国官方微博二维码](/wp-content/uploads/res/images/spriteimg/ttweibo.jpg)
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 corpadministrator -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主机更改网络参数固然是一件很不错的事情,然而这样做的同时也为数据中心带来了非常大风险,一旦脚本没有获得很好的测试就会带来大的问题。请牢记:权力越大,责任也相应地越大。
作者
A professional instructor with over 15 years of experience in technologies such as Novell, Windows and Citrix.
相关推荐
-
我用的vm5.5版,客户端是windows2003,为什么我安装上client后无法访问esx主机
我用的vm5.5版,客户端是windows2003,为什么我安装上client后无法访问esx主机,安装cli […]
-
VMware里的虚拟交换机能做镜像吗?想抓取某个VLAN里的数据。
VMware里的虚拟交换机能做镜像吗?想抓取某个VLAN里的数据。数据不过实体交换机,就在VMware里虚拟交 […]
-
我用的vm5.5版,客户端是windows2003,为什么我安装上client后,无法访问esx主机
我用的vm5.5版,客户端是windows2003,为什么我安装上client后,无法访问esx主机,安装cl […]
-
怎么实现用vmotion实现不同的vlan迁移vm不会网络不通
我想把一个VM搬到另一个HOST上,但是那个HOST不在同一个网段上,用vcenter DVS怎么实现呢,比如 […]