对象存储服务质量
基 于对象的存储模式是一个分布式的存储架构,它克服了许多传统分布式存储系统的不足。它满足了大容量,吞吐量,可靠性,可用性和可扩展性。随着存储系统变得 越来越大越来越复杂,它们必需处理类型不断增多的数据存储需求。存储系统服务质量因此变得更加重要。存储系统必需在各种不同的负载请求下都表现出令人满意 的性能。
服 务质量对于特定的应用来说是相当关键的。基于对象的存储设备作为第二代存储技术出现,其服务质量引起了人们极大的关注。没有服务质量的支持,不同不相关的 工作流共享一个的存储系统,它们可能会互相影响对方的性能。为了保证服务质量,存储系统必需采取一定的策略或者制定一定的规则,来保证它可以满足所有负载 请求。
作 为一个新出现的存取协议,基于对象的存储设备为应用程序的数据对象的存储和传输提供了一个通用的框架。应用程序可以在客户端通过TCP/IP网络存取数 据。存储负载在本质上是多种多样的而且是易变的。根据客户端和应用程序之间的差异,我们可以定义3种级别的服务质量的需求:
1、对象级服务质量。这一级大部分是实时应用程序,对数据传输质量有需求。例如,一个MPEG-4视频对象需要比较稳定的从存储设备到客户端的4Mbits/sec的带宽。这些属性(带宽和带宽波动)描述了这些对象需要怎样被传输到客户端。
2、 对话级服务质量。一个“对话”定义为一个客户请求特定对象的内容的时间(一般是从对象打开到关闭的时间)。例如,一个公司可能把它的数据存放在远程服务 器,但是需要维持对这个远程数据对象的访问质量,这在一个上下文相关的数据存储中是相当重要的。另一个对话级服务质量的例子是和在上一级中提到的 MPEG-4相关的。尽管一个MPEG-4对象在播放的时候可能获得了一个4Mbits/sec的带宽,它可能还需要在复制的时候获得一个大的多的带宽。 因此,一个复制对话可以临时覆盖它默认的存取属性,这个新的属性的生存周期只在这个对话期间,并且只对特定的客户和应用程序有效。
3、操作级服务质量。在这一级上一个服务质量的属性只应用在特定的操作上。例如,一个在客户端上的应用程序在一个对象中请求立即存取一定数量的数据,可以给这个单个操作特定一个服务质量的属性。
这 三种情况描述了三种级别的服务质量,其中对象级服务质量是最一般的质量需求,操作级服务质量是最特殊的服务质量。在实际中,大多数对象存取只应用一个级别 的服务质量。如果在一个对象的对话中有多个不同级别的服务质量需求,操作级服务质量将会优先应用,跟着是对话级,然后才是对象级。
要注意到服务质量的级别与服务质量的属性是相互独立的。例如,一个MPEG-4数据流的服务质量的属性(带宽和带宽波动)和游戏对象的服务质量的属性(延迟)是不同的。而服务质量的级别可以应用到任何一组服务质量的属性上。
最后,一些客户可能需要统计上的服务质量而不是像上面一样绝对的服务质量。例如,当一个客户从远程数据中心存取一个存储设备时,服务质量的需求可能特定为一个授权的一段时间内的平均带宽,一个更低的平均响应时间或者一个非常低的数据丢失率。
基于以上对服务质量的分析,我们可以对现行的SNIA面向对象存储规范和iSCSI标准中对这些规范的支持做出一些扩展。
一、扩展服务质量属性
第一个扩展是在服务质量属性中扩展属性页:
属性号 | 长度 | 属性 | 客户可设置 | OSD逻辑单元 |
0h | 40 | 页面识别 | 否 | 是 |
1h | 20 | 带宽 | 是 | 否 |
2h | 20 | 延迟 | 是 | 否 |
3h-FFFFFEh | 保留 |
上 面的图中定义了两种属性:带宽和延迟。带宽属性可以是一个硬受权或者是一个软受权的属性。一个硬受权的带宽属性保证任何操作都要符合带宽属性中标明的带 宽。一个软受权的带宽属性要更加灵活。它保证一段时间内的平均带宽满足带宽属性中标明的带宽。另外,带宽需求也可以特定为某一服务质量级别,每一级别特定 一个带宽范围。例如,三级带宽可以特定为高,中和低。
延迟属性同样可以定义为一个特殊的一定范围内的延迟要求。表中画出了这些属性和跟它们相关的参数。和其它各类的参数相比,当一个服务质量属性页发出后,服务质量参数将会在在基于对象的存储设备运行过程中被强制执行。
二、扩展iSCSI协议
在扩展了服务质量属性后,我们还需要扩展iSCSI协议来调节以存储器为中心的网络流量。因为,基于对象的存储设备要运行在iSCSI和TCP/IP网络之上。
在 iSCSI中,已经有丰富的和服务质量相关的参数,这些参数也和网络相关(和存储设备相对)。例如,MaxConnections定义了一个对话中的最大 连接数。ImmediateData指定了一个数是否被容许被连接到iSCSI命令的协议数据单元。为了支持一个对话的服务质量,我们可以在iSCSI协 议中增加服务质量参数,如:MaxBandwidth(最大带宽),MinBandwidth(最小带宽),MaxDelay(最大延 迟),MinDelay(最小延迟)。
三、服务质量框架图:
上图是OSD的服务质量的框架图。这个框架包括7个部分。由于资源有限,在负载超出其能力范围的情况下,基于对象的存储设备不可能保证每个客户请求的服务质量。容许控制就是根据现有的资源利用情况来判断是否可以满足一个新的请求。
当一个新的请求到达时,容许控制将用来判断是否有充足的资源来满足用户请求,如果能满足就接受用户请求,否则就拒绝。
存 储系统服务质量是复杂的,这也是由对物理和机械结构的磁盘调度的本质决定的。在服务一个请求中所花费的时间不仅取决于请求的地址,还取决于前一个请求导致 的磁头所在位置。最后,磁盘的吞吐量由负载和数据的结构两者决定。在磁盘共享上实现真正的隔离是不可能的,因为不同的工作负载共用同一个磁头可能会互相影 响。因此,不同于网络带宽,一个磁盘的总的带宽是不固定的。存储的服务质量必需估计到这种总的资源的变化。在管理服务质量的时候我们一般有三种办法:
一是按比例共享。在按比例共享磁盘的时候,每一个请求分配一个带宽的配额。随着总的带宽的变化,每一个服务的带宽也在变化。由于按比例共享不能保证实际数据流,它的可用性有限。第二个方法是使用一个估计的值做为磁盘带宽。容许控制和性能估计根据这个总的估计情况来做出判断。第三个方法是采用自适应控制。
参考文献:
QoS Provisioning Framework for an OSD-based Storage System
作者:Yingping Lu, David H. C. Du, Tom Ruwart

Leave a comment