【1】Quality of Service Support for Real-time Storage Systems
Dimitrijevic, Z. and R. Rangaswami (2003). Quality of service support for real-time storage systems. Proceedings of the international IPSI-2003 Conference, Citeseer.
文章笔记:
应用对于存储的QoS需求有那些呢?
首先对于一些应用对于一些I/O请求对存储有延迟(latency)的需求,而另外一些请求则best effort就可以了,对于一些应用要求具有稳定的传输速率,也就是吞吐量要求,持续的供应应用的需求。
实时的应用对于存储系统的要求有这些
1.区分服务不同的I/O请求
2.对于一些I/O请求保证响应时间
3,.对于一些应用保障其吞吐率(即不在乎单个I/O请求的时间,在乎整体的吞吐率)
4对于尽力服务的应用要尽量保证低延迟,高吞吐量。
图1 实时应用对于存储系统的要求
在磁盘调度方面的研究有很多,包括FCFS,SSTF,SATF,SCAN,CSAN,这些调度方式属于尽力服务模型,
FCFS很简单,但是由于不同的I/O请求,磁盘寻道时间差别很大,FCFS并没有优化磁盘寻道时间,造成了磁盘带宽利用不高。
而SSTF,SATF则通过优化磁盘寻道,提高磁盘带宽利用率。但是这种方式不能避免饥饿现象。单个I/O请求的时延并没有上限。
为了解决这个问题,SCAN算法和CSAN算法被提出来了,主要是为了解决饥饿问题,但是单个请求的最大时延可能依然很大,这时候OS往往通过限制磁盘队列长度来保证单个请求的最大时延的上限。
还有一些调度算是是针对实时I/O请求的,比如EDF,SCAN-EDF等等
还有一类针对尽力服务I/O类型和实时I/O类型,比如GSS,Cello等
图2:各种磁盘调度算法