文章中心 -> 软件资讯

文章正文

 Hello,大家好,我是青龙偃月工作室的小皓,今天和大家分享下关于软件定义存储服务质量(SDS-QOS)的概念。

众所周知服务质量QOS(Quality of Service)最早起源于网络技术,它是用来解决网络延迟和阻塞等问题的一种技术,是网络的一种安全机制,能够为指定的网络通信提供更好的服务能力。

通俗地讲,QOS是一种性能保障,而SDS-QOS则是将QOS的概念引入到存储系统当中。

存储领域中首次正式提出QOS概念是CMU(卡内基梅隆大学)的Christopher R. Lumb在2003年的文件与存储技术会议(FAST03’)发表的论文《Façade: Virtual Storage Devices with Performance Guarantees》中提出的。

Vmware早期产品vsphere4.1就有了QOS功能支持,而它在Usenix ATC2012发表一篇名为《Demand Based Hierarchical QoS Using Storage Resource Pools》的论文则点出了存储系统QOS的重要性和趋势。

首先,SDS-QOS的原理并不复杂,正如网络QOS中对流量包的调度处理一样,存储系统在将I/O下发到硬件前需要进行调度或流控的处理,从而保证不同应用I/O的服务质量不同,SDS-QOS现在流行的主要衡量指标有IOPS(上下限),MBPS(上下限),share(权重),latency(延时上限)等。

简而言之,SDS-QOS就是保障应用的IOPS(MBPS)或延时,将有限的存储系统处理能力供用户进行合理的分配,它并不能提升系统的总体性能,却能改变原先应用对资源的自然争抢,做到资源隔离的同时提升单个或某些应用的存储性能。

如图1是Christopher R. Lumb最早提出存储QOS概念的系统框架图。它主要由三个子模块组成——控制子模块Controller,监控子模块Monitor,执行子模块IO Scheduler。

执行子模块负责执行QOS调度或流控算法,监控子模块负责收集应用的实际性能指标,控制子模块根据监控子模块反馈的实际性能信息再对执行子模块进行参数的调整,最终保证实际性能满足用户的QOS配置。

该系统原型Facade仍然是现今很多系统使用的QOS技术的基础。

在云计算和大数据越来越流行的今天,虚拟环境中每天部署的虚拟机也越来越多,CPU,内存,网络这些虚拟基础设施的QOS已经获得了一定的发展,而存储I/O栈上的QOS关注还处于萌芽阶段,随着计算规模的不断增加,存储侧的资源竞争也日益严重。

如何简单统一的管理虚拟机的I/O,做好资源隔离解决noisy neighbours问题,提高云环境中的服务器整合,SDS-QOS已经成为满足这些需求不可或缺的功能特性。

至今一些存储厂商早已在自己的产品中加入了QOS特性,并将其作为重要特性进行宣传。

如初创公司CloudByte,它在上层能够根据应用需求保证应用的存储QOS,包括容量、吞吐量和时延。

老牌厂商VMware则是在上层使用了其所谓的SIOC(Storage I/O Control)技术,它用于为有权访问共享存储池的一组 VMware vSphere 主机上运行的虚拟机确定 I/O 优先级,通过在一组 vSphere 主机集群中动态分配 I/O 容量解决了存储利用率问题。

当主机在与数据存储通信过程中观察到延迟时,Storage I/O Control 会触发设备延迟监控。当延迟超过设定的阈值时,该功能会介入以缓解拥塞。

然后,系统会根据访问该数据存储的每个虚拟机的份额按比例为其分配 I/O 资源。用户可以配置规则和策略来指定每个虚拟机的业务优先级和服务质量。

同时VMware的DRS分布式资源调度程序能够在多个虚拟机之间智能地分配可用资源。当虚拟机遇到负载增大时,Vmware DRS将通过在资源池中的物理服务器之间重新分布虚拟机来自动为其分配更多资源。

结合虚拟机在线迁移技术,VMware可以在(某个资源池)底层存储处理能力不足的时候保障虚拟机的QOS。

而SolidFire更是在宣传语中写道“Quality of Service is not a feature. It's an architecture.”(QOS不是特性,而是架构)。

它将自己的产品定位为一个SDS基础设施(软硬件相结合的方式融合vmware的部署,从上层软件到下层硬件在端到端上确保QOS,为用户提供轻松搭建环境的资源),它在服务器中使用的全闪存架构更是宣称能够为每个IO保障稳定的延时,由于SolidFire已知自己的硬件规格,用户在使用其产品做线性规模扩展时可以被告知性能的提升量。

与SolidFire相类似,NexGen也是使用上层与VMware相结合的方式推出自己的产品,通过支持VMware vSphere Virtual Volumes,NexGen在虚拟机粒度上的SDS-QOS为动态变化的数据服务很好地提供了多个可以调整的服务等级,这样省去了对资源池预分配的需要。

连微软也在最新的Windows Server 2012 R2中包含了一个存储QoS的功能,该功能的设计主要是为Hyper-V虚拟机对存储的IOPS消耗进行调控。不同的策略(Policies)可以作用到每个虚拟机上,限制IOPS或为某一特定虚拟机预留IOPS。

总结下来,当前的SDS-QOS可以概括为以下几点。

分布式的QOS控制是研究热点,在云环境模式下这点是显而易见的。存储领域中的QOS在商业化中将显得越来越重要。

当前各大厂商主要聚焦于多租户环境中对VM粒度的QOS控制。

各个厂商在硬件上:无非是全闪存阵列,SSD,Cache等方法来提升存储系统的固有处理能力,一个高性能的存储系统是高性能QOS的基础。

在软件上:QOS的差异化主要体现在I/O调度算法(有EDF,mClock,SFQ与令牌桶结合等)和虚拟环境的支持(主要是上层与VMware的虚拟机和存储资源池管理进行融合)上。

如今,华为在OceanStor上已经实现了QOS特性,能够保障应用的IOPS(或MBPS)以及端到端的时延保证。

并开始研究讨论智能存储的QOS实现——存储系统能够根据VM(或应用)的I/O数据流进行智能分析与识别,做到QOS的全自动智能化配置;

对I/O的行为感知能够选择合适的调度和淘汰算法,提高Cache命中率;对内容感知从而进行去重压缩,提升系统资源利用率并减少数据的下盘等。

随着SDS-QOS技术的发展,下一代存储产品的较量让我们拭目以待。

羊年将至,小皓在此代表青龙偃月工作室祝大家新年快乐,万事如意!

文章来自绿盟(xDowns.com)转载请注明来路。



上一篇文章:手机百度客户端查看历史记录! []

相关文章

相关软件