使用Powershell配置Hyper-V Server 资源计量

在Windows Server 2012 中,Hyper-V包含了一种新的资源计量技术,可以对虚拟机的负载使用情况进行记录和统计。Hyper-V可对CPU和内存资源使用情况进行计量,Windows Server 2012提供了两种方法来获取客户对虚拟机资源使用情况的历史数据:Windows PowerShell中的Hyper-V cmdlet,以及虚拟化WMI提供程序中新增的API。Hyper-V托管供应商启用资源计量技术需要:

1、 为客户创建虚拟机,随后针对虚拟机启用资源计量功能一次。在多租户环境中,提供商对每个资源池启用计量。随后Hyper-V即可追踪每个虚拟机的资源使用情况,直到该虚拟机被删除。

2、 在每个记账周期的结尾时查询资源用量数据,如果需要即可使用该数据对客户收费。

3、 在每个收款周期结尾时重置统计数据,Hyper-V就会用一个新的收款周期重新统计资源用量。

Windows Server 2012中的Hyper-V可以让提供商构建多租户环境,在这样的环境中,虚拟机可以通过更隔离,更安全的方式提供给多个客户。因为一个客户可能需要多个虚拟机,Windows Server 2012通过使用资源池这一Hyper-V功能令此任务大为简化。资源池是一种逻辑容器,可将属于同一位客户的所有虚拟机的资源聚集在一起,并可对客户的资源使用总量进行单点查询。资源计量功能可用于所有Hyper-V操作。在Hyper-V宿主机之间移动虚拟机(例如使用实时迁移,脱机迁移,或存储迁移)并不会影响所收集到的数据。

Windows PowerShell 中的 Hyper-V cmdlet 和虚拟化 WMI 提供程序中新的 API。这些工具可以获得虚拟机在特定时间内使用如下资源的指标:

1、 平均 CPU 使用率,在一定时间内以兆赫为单位进行测量。

2、 平均物理内存使用量,以兆字节为单位进行测量。

3、 最小内存使用量(物理内存的最低数量)。

4、 最大内存使用量(物理内存的最高数量)。

5、 分配给虚拟机的最大磁盘空间容量。

6、 针对虚拟网络适配器的传入网络总流量,以兆字节为单位进行测量。

7、 针对虚拟网络适配器的传出网络总流量,以兆字节为单位进行测量。

在我们下面的实验中将通过Windows PowerShell启用并配置Hyper-V Server资源计量。具体步骤如下:

登陆Hyper-V服务器并以管理员身份运行Windows PowerShell:

使用Powershell配置Hyper-V Server 资源计量_微软

1、 使用以下语句启用Hyper-V Server资源计量这一功能:

Enable-VMResourceMetering –VMName *

使用Powershell配置Hyper-V Server 资源计量_虚拟化_02

2、 如果希望为单独的Hyper-V虚拟机都启用资源计量这一功能,您可以使用:

Enable-VMResourceMetering –VMName MDT

使用Powershell配置Hyper-V Server 资源计量_微软_03

3、 使用“Measure-VM”命令获取该虚拟机的详细资源信息:

Measure-VM –VMName MDT

使用Powershell配置Hyper-V Server 资源计量_Hyper-v_04

4、 使用下面的命令获得更多关于虚拟机的资源信息:

Measure-VM -VMName MDT | Format-List

使用Powershell配置Hyper-V Server 资源计量_微软_05

5、 使用如下命令查看那些虚拟机开启了Hyper-v资源计量功能:

Get-VM * | Format-List Name,ResourceMeteringEnabled

使用Powershell配置Hyper-V Server 资源计量_Hyper-v_06

6、 使用如下命令启用Hyper-V虚拟机中关于内存资源计量的资源池:

Enable-VMResourceMetering –ResourcePoolName Primordial –ResourcePoolType Memory

使用Powershell配置Hyper-V Server 资源计量_虚拟化_07

7、 使用下面的命令查看详细的关于内存资源计量的资源池:

Measure-VMResourcePool -Name Primordial -ResourcePoolType Memory

使用Powershell配置Hyper-V Server 资源计量_Hyper-v_08

8、 使用下面的命令查看虚拟机的网络适配器的传入/传出网络总流量:

(Measure-VM -VMName MDT).NetworkMeteredTrafficReport

使用Powershell配置Hyper-V Server 资源计量_虚拟化_09

9、 使用下面的命令重置Hyper-V资源计量数据:

Reset-VMResourceMetering –VMName MDT(重置一台)

使用Powershell配置Hyper-V Server 资源计量_虚拟化_10

Reset-VMResourceMetering –VMName *(重置所有)

使用Powershell配置Hyper-V Server 资源计量_虚拟化_11

10、 禁用Hyper-V Server资源计量:

Disable-VMResourceMetering –VMName MDT(针对一台VM)

使用Powershell配置Hyper-V Server 资源计量_虚拟化_12

Disable-VMResourceMetering –VMName *(针对所有VM)

使用Powershell配置Hyper-V Server 资源计量_微软_13

11、 验证虚拟机是否已经禁用了Hyper-V资源计量这一功能:

Get-VM * | Format-List Name,ResourceMeteringEnabled

使用Powershell配置Hyper-V Server 资源计量_虚拟化_14