如何使用QoS管理分配存储IOPS?

尽管任何硬件资源都有可能成为影响虚拟机性能的瓶颈,但存储IOPS往往是限制因素之一。因为存储IOPS往往供不应求,所以虚拟化厂商提供了允许管理员限制虚拟机存储I/O消耗的功能。然而高效率地使用上述功能的关键是了解存储IOPS当前是如何在虚拟机之间分配的。

每个hypervisor厂商都有各自的测量并分配存储IOPS的方式。以微软Hyper-V为例,调节存储IOPS消耗的主要机制借助于QoS管理功能,该功能往往被称为存储QoS。

使用QoS管理

QoS管理设置基于单块虚拟硬盘。如图A所示,该功能可以被用于限制虚拟机消耗更少的存储IOPS。作为一个替代方案,QoS管理可以被用于为虚拟机预留存储IOPS,这样就可以保证虚拟机能够获得的最小IOPS值——如果有更多可用的IOPS,那么虚拟机能够使用的IOPS将相应增加。

  图A. 虚拟硬盘QoS管理配置界面

QoS管理功能允许管理员基于单块虚拟硬盘预留存储IOPS或者对其进行限制。

尽管QoS管理功能很便利,但只有管理员知道可用的存储IOPS有多少以及当前使用情况时,该功能才能够派上用场。不幸的是,Hyper-V Manager并没有提供该信息,但可以使用PowerShell检索与Hyper-V相关的存储性能信息。

虚拟机指标追踪

PowerShell提供了一个名为Measure-VM的cmdlet,使你能够追踪各类虚拟机指标。在能够使用该cmdlet前,需要启用虚拟机的资源消耗计量。输入如下命令可以启用运行在当前Hyper-V服务器上所有虚拟机的资源消耗计量:Get-VM | Enable-VMResourceMetering

输入如下命令可以确认是否已经启用了虚拟机的资源消耗计量:

Get-VM | Select-Object Name, ResourceMeteringEnabled

启用虚拟机的资源消耗计量并且生成了一些计量数据后,你可以使用Measure-VM cmdlet显示虚拟机的资源使用情况。例如,如果你想针对所有虚拟机使用默认的资源计量数据,可以输入如下命令:

Get-VM | Measure-VM

图B显示了启用虚拟机计量、确认虚拟机计量以及用以及显示默认计量数据的过程。

  图B:你可以使用Measure-VM cmdlet显示虚拟机计量数据

如上图所示,资源计量机制运转良好,显示值为零表明虚拟机未启动。然而问题是并没有显示与存储IOPS相关的信息。

显示IOPS数据

尽管Measure-VM cmdlet默认没有显示存储IOPS数据,但可以做到。实际上,cmdlet可以显示每台虚拟机的IOPS平均值、平均延迟情况、磁盘数据写入以及磁盘数据读取情况。

只需要在Measure-VM cmdlet后追加 Select-Object参数就可以显示上述数据,然后指定你想显示的指标即可。然而,务必牢记在生产环境中虚拟机往往位于使用共享存储的故障切换集群中。因此全面获取IOPS数据的唯一方式是查看所有服务器上的所有虚拟机。可以尝试利用如下命令创建一个简单的脚本:

$Servers = "Hyper-V-4", "Prod1"

ForEach ($Server in $Servers){

$VMs = Get-VM

ForEach ($VM in $VMs){

$VM | Measure-VM | Select-Object VMName, ComputerName, AggregatedAverageNormalizedIOPS, AggregatedAverageLatency, AggregatedDiskDataRead, AggregatedDiskDataWritten | Format-List

}

}

脚本的第一行列出了将要被监控的每台Hyper-V主机的名字。简单起见,这里只列出了两台服务器,但你通常要输入所有Hyper-V服务器的名字。该脚本使用循环检查所有的服务器,每次检查一台。然后嵌套循环检索并显示当前服务器上所有虚拟机的性能数据。你可以看到图C中脚本的部分输出结果。脚本列出了每台虚拟机的性能数据、虚拟机名以及虚拟机当前所在的主机服务器。

图C. 脚本显示虚拟机的存储性能数据

Hypervisor功能,比如QoS管理有助于分配存储IOPS。然而为了高效率地使用该功能,你需要知道IOPS目前的使用情况。

====================================分割线================================

本文转自d1net(转载)

时间: 2024-09-20 04:20:32

如何使用QoS管理分配存储IOPS?的相关文章

数据结构 算法-如何用串的堆分配存储方法实现串Index( )函数

问题描述 如何用串的堆分配存储方法实现串Index( )函数 我的代码如下:(问题:代码实现不了功能)#include #include #include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2 typedef int Status; typedef int Boolean; typedef int ElemType; typedef stru

NAMENODE工作机制,元数据管理(元数据存储机制、元数据手动查看)、元数据的checkpoint、元数据目录说明(来自学习资料)

NAMENODE工作机制 学习目标:理解namenode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中"性能调优"."namenode"故障问题的分析解决能力   问题场景: 1.集群启动后,可以查看目录,但是上传文件时报错,打开web页面可看到namenode正处于safemode状态,怎么处理? 解释: safemode是namenode的一种状态(active/standby/safemode安全模式) namen

MongoDB源码概述——内存管理和存储引擎

原文地址:http://creator.cnblogs.com/ 数据存储: 之前在介绍Journal的时候有说到为什么MongoDB会先把数据放入内存,而不是直接持久化到数据库存储文件,这与MongoDB对数据库记录文件的存储管理操作有关.MongoDB采用操作系统底层提供的内存文件映射(MMap)的方式来实现对数据库记录文件的访问,MMAP可以把磁盘文件的全部内容直接映射到进程的内存空间,这样文件中的每条数据记录就会在内存中有对应的地址,这时对文件的读写可以直接通过操作内存来完成(而不是fr

Amazon推弹性数据块存储 IOPS性能翻倍

Amazon最近告知弹性数据块存储(EBS)的用户,现在每个EBS的IOPS可以达到2000,对比原来的1000 IOPS,翻了一番. "对于高端15000RPM硬盘而言,此番IOPS性能的提升超出了用户的预计,"http://www.aliyun.com/zixun/aggregation/2467.html">Amazon在其博客中如是说."如果此前你一直是通过磁盘冗余阵列技术来获取更高性能,现在或许可以用更少的阵列获得更高性能." Amazon

论存储IOPS和Throughput吞吐量之间的关系

介绍        IOPS和Throughput吞吐量两个参数是衡量存储性能的主要指标.IOPS表示存储每秒传输IO的数量,Throughput吞吐量则表示每秒数据的传输总量.两者在不同的情况下都能表示存储的性能状况,但应用的场景不尽相同.同时,两者之间也存在着相互的联系,本文就IOPS和Throughput吞吐量对存储性能衡量的场景入手,描述两者之间的变化关系与计算方法.帮助读者更好的了解存储的性能分析与规划. 更多信息   IOPS与Throughput的关系:        IOPS(I

管理云存储

数据一直都存在着价值,但是过去的十年更是让我们看到了数据承载着多么大的价值.因此数据的存储与管理也成为了企业关注的重点.但数据存储的同时也要有适当的保护,并提供合理的访问权限.这时云存储的出现给企业提供了一个非常可行的解决方案,它保证了在拥有访问权限的同时还能确保数据安全,并按用户所需时行调整.但是这仍然不能完全取代一些内部信息的需求. 使用云存储 有些还是害怕把数据放置在没有安全保证的云中,但是很多有这种偏执的人没有意识到这点:当您使用云存储供应商,您存在使用一个专业团队,他们专门从事存储和保

Silverlight实用窍门系列:49.Silverlight中管理独立存储--Isolated Storage【附带实例源码】

Silverlight中的独立存储是其内部的可信任的可访问文件空间,在这里你可以使用Silverlight随意的创建.读取.写入.删除目录和文件,它有一些类似于Cookie,但是它可以在客户端保存大量的数据.这个空间默认是1M,如果不够的时候可以申请扩大容量. 网站+用户+应用程序定位一个独立存储,也就是说必须得相同网站,相同用户,相同应用程序才能够访问这个独立的存储空间.独立存储是IsolatedStorageFile密封类来进行设置的,这个类分布在命名空间System.IO.Isolated

SQL Server中TempDB管理(版本存储区的一个example)

我们从一个例子开始来了解版本存储区.本例中数据库启用RCSI(使用行http://www.aliyun.com/zixun/aggregation/9591.html">版本控制的已提交读隔离级别)和SI(快照隔离级别). 当数据库启用了RCSI或者SI时,每当行有更新时 就会创建一个行版本.此行版本在版本存储器保存到不需要为止. 那么SQL Server什么时候不再保存这个行版本呢?您可能联想到一些相关的问题,比如,如果不回收(删除)行版本会有什么影响?一次回收一个还是一组行版本?每 个

2016年的数据存储和管理的成本将何去何从?

据IT行业专家称,全球电子存储数据总量每两年翻一番.随着越来越多的企业走向数字化,其数据量的增长推动了存储技术提高了效率和成本效益,并对数据管理工具产生了更大的市场需求. 许多组织正在考虑采用外包服务或云存储选项,包括用于灾难恢复和备份的选项,以作为其整体存储和数据管理策略的一部分.在这个过程中,重要的是要知道,存储服务的成本变得越来越取决于存储数据和管理技能和工具的整体成本. 储存数据的成本下降 在过去的几年中,数据的存储成本持续下降,下降了15%到20%.这是几个因素导致下降的结果,其中包括