对于整个主机系统,存储可能是其中最为缓慢和复杂的一部分,并且很容易成为整个系统的瓶颈;对于那些在主机上运行的虚拟机的用户,存储可能会使整个系统变得相当缓慢。VMware存储I/O管理最初在vSphere4.1中引入,将vSphere的存储资源控制提升到一个更高的标准。vSphere 5.0对存储I/O控制进了控制,针对NFS存储提供了集群级的I/O份额和限制控制。当超出存储I/O延迟阈值时,存储I/O控制将自动限制正在消耗大量不相干的I/O带宽的虚拟机,避免了单台虚拟机可能引起的存储I/O瓶颈,保证使用同一个数据存储的其他虚拟机能够获得应得的I/O份额。

通过vSphere Storage I/O Control可以优化群集范围内的存储,从而可更好地进行工作负载整合,并且有助于减少与过度置备关联的额外成本。Storage I/O Control可以扩展份额和限制的构成,以处理存储I/O资源。可以控制在I/O拥堵期间分配给虚拟机的存储I/O量,从而确保更重要的虚拟机优先于重要性低的虚拟机获得I/O资源分配。当对数据存储启用Storage I/O Control时,ESXi会开始监控主机与该数据存储通信时主机遵循的设备滞后时间。当设备滞后时间超出阈值时,数据存储会被视为已经出现拥堵,访问该数据存储的每个虚拟机都会按其份额比率分配相应的I/O资源。可以按虚拟机设置份额,并且可以根据需要调整每个虚拟机的份额。

存储I/O控制的实现及配置方式有2种,一种是针对数据存储启用Storage I/O Control,一种是对每个虚拟机磁盘资源所允许的存储I/O份额数量及每秒I/O操作数(IOPS)的上限控制。一般在默认情况下,所有的虚拟机份额都会设置为“正常(1000)”,且不限制IOPS。

  1. 针对数据存储启用Storage I/O Control

在启用Storage I/O Control时,如果数据存储平均滞后时间超过阈值,则ESXi会监控数据存储滞后并调整发送到数据存储的I/O负载。

步骤1 选择一个数据存储,然后单击“配置”选项卡,单击“属性”按钮,会弹出“VMware01属性”对话框。在Storage I/O Control下,选中“已启用”复选框,如图:

wKioL1RslCCQ60oRAAGIfl0yidw385.jpg

步骤2 在勾选Storage I/O Control时会弹出“存储I/O警告”提示窗口,如图:

wKiom1Rsk7mB3Ae2AABfMGqHv18919.jpg

步骤3 设置Storage I/O Control阈值,该值必须介于10~100ms之间。拥堵阈值重置为默认值(30ms),该值越大通常会导致总吞吐量越大,隔离越弱。除非整体平均滞后时间高于阈值,否则不会出现限制。拥堵阈值越小,则设备的滞后时间就越短,并且虚拟机I/O性能隔离将越强。隔离增强意味着份额控制的实施更加频繁。设备滞后时间越短,则拥有最高份额的虚拟机的I/O滞后时间越短,但同时会导致份额较低的虚拟机的I/O滞后时间更长。编辑拥堵阈值的对话框如下图:

wKioL1RslEHQUtVGAABUwa28gXA207.jpg

步骤4 单击“确定”按钮后完成设置。在“数据存储”选项卡的Storage I/O Control列中会显示已为数据存储启用Storage I/O Control。

2.针对虚拟机设置

通过向虚拟机分配相对数量的份额,可根据重要性将储存I/O资源分配给虚拟机。在编辑虚拟机设置的对话框中单击“资源”选项卡,然后选择“磁盘”,如图:

wKiom1Rsk9qC2mOJAAFlVkeFsQ4754.jpg

单击“份额”列,选择相对数量的份额分配到虚拟机(低、正常或高)。可以选择自定义方式以便输入用户定义的份额值。在“限制-IOPS”列中输入要分配给虚拟机的存储资源的上限。默认情况下,IOPS无限制。可选择低(500)、正常(1000)或高(2000),或者选择“自定义”输入自定义的份额值。