企业管理员为了实施可同时测量已分配资源和实际使用资源的高级计费策略,早期版本的 Hyper-V 要求用户开发自己的、对性能计数器进行轮询和汇总的计费解决方案。这些解决方案的开发成本可能比较高,而且有时还会导致历史数据的丢失。
为了帮助更准确、更简单地收费同时保护历史信息,从Windows Server 2012 开始,在Hyper-V 中引入了“资源计量”功能。该功能使客户能开发有成本效益较的、基于用途的计费解决方案。借助该功能,使托管服务提供商能够快速而经济地开发更高级、更可靠、基于用途的计费解决方案,并且这些解决方案可根据供应商的业务模式和战略进行调整。
Windows Server 2012/R2 为管理员提供了两个选项来获取有关客户端使用虚拟机资源的历史数据:Windows PowerShell 中的 Hyper-V cmdlet 和虚拟化 WMI 提供程序中新的 API。这些工具可以获得虚拟机在特定时间内使用如下资源的指标:
1. 平均 CPU 使用率,在一定时间内以兆赫为单位进行测量。
2. 平均物理内存使用量,以兆字节为单位进行测量。
3. 最小内存使用量(物理内存的最低数量)。
4. 最大内存使用量(物理内存的最高数量)。
5. 分配给虚拟机的最大磁盘空间容量。
6. 针对虚拟网络适配器的传入网络总流量,以兆字节为单位进行测量。
7. 针对虚拟网络适配器的传出网络总流量,以兆字节为单位进行测量。
本实验中通过Windows PowerShell启用并配置Hyper-V Server资源计量
1. 登陆Hyper-V服务器,以管理员形式打开Windows PowerShell
2. 使用以下语句启用Hyper-V Server资源计量这一功能
Enable-VMResourceMetering –VMName BJ-AP-01
如果希望为所有的Hyper-V虚拟机都启用资源计量这一功能,您可以使用
Enable-VMResourceMetering –VMName *
3. 使用“Measure-VM”命令获取该虚拟机的详细资源信息
4. 使用下面的命令获得更多关于虚拟机的资源信息
Measure-VM -VMName BJ-AP-01 | Format-List
5. 使用下面的命令验证哪些虚拟机已经启用了Hyper-V资源计量这一功能
Get-VM * | Format-List Name,ResourceMeteringEnabled
6. 使用下面的命令查看虚拟机的网络适配器的传入/传出网络总流量
(Measure-VM -VMName BJ-VM-03).NetworkMeteredTrafficReport
7. 使用下面的命令启用Hyper-V虚拟机中关于内存资源计量的资源池
Enable-VMResourceMetering –ResourcePoolName Primordial –ResourcePoolType Memory
8. 使用下面的命令查看详细的关于内存资源计量的资源池
Measure-VMResourcePool -Name Primordial -ResourcePoolType Memory
9. 使用下面的命令重新设置Hyper-V资源计量数据
Reset-VMResourceMetering –VMName BJ-VM-03(如果使用*这代表将重新设置所有的Hyper-V虚拟机资源计量)
10.使用下面的命令禁用Hyper-V Server资源计量
Disable-VMResourceMetering –VMName BJ-VM-03
11.再次使用下面的命令验证虚拟机是否已经禁用了Hyper-V资源计量这一功能
Get-VM * | Format-List Name,ResourceMeteringEnabled