IT架构的一个发展趋势和技术挑战,就是如何将越来越多的应用运行在灵活、可扩展的统一平台上,同时还必须提升管理和运行的效率。众多的应用运行在同一个资源池中的模式,和以往各个应用具有各自独立的物理计算+存储资源的运行模式有着很大的不同。其中一点不同就是,在以往的IT架构中,各个应用所需的存储容量、性能都是根据其需要独立配置的,很少存在资源抢占的问题。而当众多应用运行在同一个平台上时,不同应用对存储资源的性能存在抢占的风险,如何对之进行控制和规避,就是存储的QoS(Quality of Service)控制。
那么QoS具体指的是什么?为什么它对业务如此重要?
QoS是为了提供稳定的性能保证
QoS对企业或者服务运营商来说是一个至关重要的技术,尤其对那些需要为上层业务提供持续稳定的存储性能的场景而言更是如此。当大量应用共享有限的资源,QoS能帮助系统控制各个应用如何使用这些资源,最重要的是,能限制并避免那些高消耗或者运行异常的程存储QoS包括业务对存储所需的IOPS、带宽等性能的管理和控制。如果没有存储QoS,系统管理员就无法对各个应用对存储的性能消耗进行管理,高消耗的应用可能抢占大量的存储性能,而让其它应用“活活饿死”。传统IT架构在QoS的问题上并没有那么急迫,因为在传统架构中,大多的应用系统都是独占自己的一套存储。云、容器时代的到来,把QoS推到了不得不重视的高度,因为大量虚拟机、容器都需要共享同一套存储资源。
存储QoS能用于缓解、控制并消除对存储资源性能的抢占,为系统提供一个存储性能可预测、可控制、可管理的运行环境。
那么,容器平台持久化存储的QoS呢?
既然QoS如此重要,并且在SDS和以虚拟机为中心的IaaS平台中,存储的QoS已经成为标配功能,那么在大行其道的容器平台上,QoS控制是什么状况呢?
非常遗憾,容器编排霸主K8S目前只是支持了对CPU、内存这两个计算资源的QoS控制,还不支持对持久化存储进行QoS设置。
对于如此重要的需求焱融云当然不会置之不理,我们根据实际应用场景及客户诉求,对QoS功能进行了深入开发。
K8S如何集成焱融高性能容器存储的QoS功能?
安装了焱融高性能容器存储以及插件后,要创建含有QoS功能的Persistent Volume只需一步(以FlexVolume插件方式为例),在创建PV的yaml文件中加上对这个PV的IOPS(或带宽BW)的设置即可,如下图红框中所示:
随后执行K8S创建PV的命令,即可创建带有QoS限制的持久化存储,通过焱融高性能存储提供的工具,即可查询所有QoS设置,如下图所示:
效果如何,一试便知,下图分别对QoS和带宽(BW)进行了测试,容器中的持久化存储IOPS和带宽被牢牢限制在用户设定的阈值:
IOPS
带宽
更多黑科技
容器持久化存储QoS控制的终极目标,是帮助容器平台向着更高效、集成度更高、性能高强的演进,进一步降低平台运维团队管理负担,提升业务可用性。QoS只是焱融高性能容器存储众多杀手锏中的一个,焱融云从未停下创新的脚步。更多的黑科技,待我们后续一一向您道来。