VMware管理员必备:借助PowerCLI配置标准交换机

日期: 2010-06-20 作者:Mike Laverick翻译:李哲贤 来源:TechTarget中国 英文

为了说明本文的主旨,最佳的办法是给出一个实例,接下来,TechTarget特约作者Mike Laverick通过例子看看问题如何产生的。在周一的早上,老板通知你由于新项目的需求将要创建一个新的虚拟LAN(VLAN)。而在我们的VMware集群中共有32台ESX主机,而且是可以支持分布式资源调度(DRS)和高可用(HA)的VMware集群,那么您需要跨所有的32台ESX主机上创建新的VLAN,同时创建指定的端口组VLAN20。   当然,如果您使用了VMware vSphere4和新的vNetwork Distributed Switches,给分布式交换机增加端口组仅仅是一项琐碎的小工作,只需……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

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中操作:

  1. 选择ESX主机;
  2. 选择Configuration页;
  3. 在Hardware Pane中选中Network选项;
  4. 选择Standard vSwitch的参数;
  5. 通过运行向导来增加端口组(在这些步骤之外,该向导还有额外的三步操作);
  6. 花费整个早上的时间用于不断地重复步骤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主机更改网络参数固然是一件很不错的事情,然而这样做的同时也为数据中心带来了非常大风险,一旦脚本没有获得很好的测试就会带来大的问题。请牢记:权力越大,责任也相应地越大。

作者

Mike Laverick
Mike Laverick

A professional instructor with over 15 years of experience in technologies such as Novell, Windows and Citrix.

翻译

李哲贤
李哲贤

TT虚拟化特约作者

相关推荐