Hyper-V PowerShell中的常用命令简介

2010-6-23   
分享到:
| |

导读:本文介绍Hyper-V PowerShell cmdlets和命令。

关键词:Hyper-V PowerShell cmdlets

 

【TechTarget中国原创】对于虚拟机、宿主机和任务进程而言,微软Hyper-V管理控制台和SCVMM(System Center Virtual Machine Manager)都是很不错的管理工具。但是和大多数的图形界面接口(GUI)工具一样,都无法避免在客户定制化和管理权限上受到限制。但是PowerShell的使用可以很好的弥补Hyper-V在管理方面的缺陷。

  SCVMM和Hyper-V PowerShell cmdlets帮助虚拟机环境的管理员开启了新的管理模式。在本文中,TechTarget中国的特约专家Rob McShinsky讲述一些PowerShell cmdlets和命令。

 
查看全文
 
 
 
分享到:
 
 

微软Hyper-V

 
除了Microsoft自己提供的SCVMM,越来越多的第三方供应商也发布了自己的产品,在Hyper-V虚拟环境中管理性能问题。
 
你可能已经知道,微软的下一代服务器操作系统Windows Server 8将扩大对云计算与虚拟化的支持。从开发者预览版中可见,Hyper-V 3.0在这方面有很大改进。
 
微软Hyper-V这几年在稳步追赶VMware,随着2012年的到来,这两家虚拟化厂商之间的争斗将前所未有的激烈。
 
在2012年,某家虚拟化厂商会严重威胁到VMware的市场领导地位?或者某些公司转型为多hypervisor架构?2012年会是云计算真正起飞的一年的么?
 
每年的十大服务器虚拟化新闻榜单中,雷打不动总会现身的有VMware与微软。下面列出的十个新闻综合了读者最受欢迎的文章以及用户最为关心的话题。
 



【TechTarget中国原创】对于虚拟机、宿主机和任务进程而言,微软Hyper-V管理控制台和SCVMM(System Center Virtual Machine Manager)都是很不错的管理工具。但是和大多数的图形界面接口(GUI)工具一样,都无法避免在客户定制化和管理权限上受到限制。但是PowerShell的使用可以很好的弥补Hyper-V在管理方面的缺陷。

  SCVMM和Hyper-V PowerShell cmdlets帮助虚拟机环境的管理员开启了新的管理模式。在本文中,TechTarget中国的特约专家Rob McShinsky讲述一些PowerShell cmdlets和命令。即使您没有购买SCVMM,依然可以使用PowerShell来完成大多数的任务,包括:获得基本的系统信息、创建新的虚拟机和完成在线迁移过程等。首先,下载并安装Hyper-V PowerShell模块。(或许某些时候您还需要更改PowerShell的执行模式,以保证该模块可以正确运行。在Windows Server 2008中它可以正常工作,但是在Windows 7中,您可能需要对执行模式做更改以减轻其受到的限制。这并不是最佳的办法,但是请注意有些时候我们必须减轻执行模式的限制。 )

  在完成了Hyper-V PowerShell模块的安装后,接下来就可以尝试一些基本的功能。在你对这些PowerShell cmdlets和命令足够熟悉之后,还可以组合一些命令编写成更加复杂和实用的脚本。但是这个过程并不像“Hello World”那么简单,在我们学习跑步之前先来学习走路。

  Get-VM。这个cmdlets对于很多脚本程序而言,都是最基本的常用命令之一,而且从字面上也很容易理解。Get-VM检索虚拟机相关的信息,然后快速呈现出某台特定主机上的虚拟机状态。我经常这样使用该命令:

  Get-VM --Server

  图1

Hyper-V PowerShell
 
  请注意,您必须通过-Server辅助命令来锁定某一台特殊的服务器操作,这点在使用Hyper-V管理控制台时也是一样的。

  New-VM, Set-VMMemory, Set-VMCPUCount, Add-NewVirtualHardDisk.这一组Hyper-V PowerShell cmdlets用于创建新虚拟机。虽然在Hyper-V Manager GUI中通过配置向导来完成更加简单一些,但是在需要同时创建多个虚拟机的时候,命令行的方式会更加好用。

  图2

Hyper-V PowerShell
 
  通过这些命令做简单调整,还可以增加或修改多台虚拟机。

New-VM -Server Host1 -Name RobTest2,RobTest3,RobTest4 -Path d:
Set-VMMemory -Server Host1 -VM RobTest2,RobTest3,RobTest4 1024
Set-VMCPUCount -Server Host1 -VM RobTest2,RobTest3,RobTest4 4
Add-NewVMHardDisk -Server Host1 -VM RobTest2,RobTest3,RobTest4 -Size 24GB

  现在您可以看到,在同时创建多个虚拟机时这样可以节省时间。

  Start-VM, Stop-VM, Save-VM, Shutdown-VM.用于完成虚拟机状态调整的命令也非常的好用。有一些操作无法通过GUI来实现的,我经常使用这些命令来关闭虚拟机或是保存虚拟机状态以用于故障诊断。和同时创建和调整多个虚拟机的命令相似,通过这些命令可以同时改变多台虚拟机的运行状态。

Start-VM -Server Host1 -VM RobTest2,RobTest3,RobTest4
Stop-VM -Server Host1 -VM RobTest2,RobTest3,RobTest4
Save-VM -Server Host1 -VM RobTest2,RobTest3,RobTest4
Shutdown-VM -Server Host1 -VM RobTest2,RobTest3,RobTest4

  注: 如果要使用Shutdown-VM命令,需要安装Hyper-V集成组件。

  Move-VM.PowerShell还可以用于帮助完成Hyper-V集群的某些工作。我曾经在Failover Cluster Administrator无法正确工作的情况下,使用如下的命令迁移虚拟机以用于故障的诊断。当然,使用cluster.exe命令也可以在节点间迁移虚拟机,但是我更喜欢使用PowerShell命令。

Move-VM -Server Host1 -VM RobTest2 -Destination Host2 --force

  当然,多台虚拟机的迁移也是可以实现的,但是需要连续地操作。

Move-VM -Server Host1 -VM RobTest2,RobTest3,RobTest4 -Destination Host2 --force

  或者借助通配符,您也可以把Host1上的所有以RobTest开头的虚拟机迁移到Host2上。

Move-VM -Server Host1 -VM RobTest% -Destination Host2 --force

  (注:为了避免出现提示信息:“WARNING: Cluster commands not loaded. Import-Module FailoverClusters and tr y again”,运行“Run, Import-Module FailoverCluster”命令完成Failover Cluster模块的装载,并启用PowerShell的集群属性。)

  在您对这些PowerShell cmdlets和命令逐渐熟悉以后,可以尝试浏览一下PowerShell Management Library for Hyper-V 手册。虽然手册的内容本身让人昏昏欲睡,但是我们可以一边阅读一边实践一些新的Hyper-V PowerShell命令,之后您可能会发现它提供了一种通用的语法模式。那么,您就可以编写脚本来借助PowerShell完成一些更加复杂的辅助性管理工作,相信您会慢慢发现这样做要比完全使用Hyper-V向导来完成虚拟机管理任务快地多。

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录