论文部分内容阅读
云计算模式通过资源池化,应用混合部署的方式使得其在硬件成本、资源利用率等方面有较大的优势。另一方面,不同应用对系统资源的竞争可能导致应用的资源需求得不到保障,造成响应时间过长,吞吐率过低等后果。本文以云环境下共享存储系统为研究对象,设计和实现一套协同调度网络设备和存储设备的统一调度系统,为应用在IO资源上提供QoS保障。 本文的主要工作和贡献为: 1.提出了一种面向多队列NVMe设备的带质量保证的用户级IO机制。面向磁盘的调度采用延迟调度、合并请求的策略减少磁盘访问过程中的寻道操作。这种延迟调度的策略易造成SSD访问过程中性能损失。同时传统Linux存储软件栈过于臃肿,其在SSD访问过程中开销比例越来越大,逐渐成为性能瓶颈。本文采用用户级IO的技术避开内核存储软件栈;并利用NVMe多队列的特性,优化多线程访问SSD过程中对SSD操作队列产生的竞争,充分发挥NVMe设备性能优势。最后本文采用基于Token基数的方法,实现面向NVMe设备的带宽保障与分配机制。 2.设计了面向高性能网络设备的带宽分配、共享与高优先级应用延迟保障机制。在共享存储应用场景中,网络设备为数据访问过程提供数据通路。为避免应用程序访问过程中网络可能存在的性能瓶颈,本文组合应用Linux网络调度功能,提出一种新型的网络调度机制,实现了如下功能:第一,为多个不同客户端进行网络带宽分配。并应用间可以共享带宽资源,达到充分利用网络资源的目的。第二,在保持网卡高资源利用率同时,能够降低高优先级应用的访问延迟。 3.设计并实现了一种协同调度网络和存储设备的架构。本文采用网络设备和NVMe设备协同调度方式,由协同调度模块调度网络设备及NVMe设备的优先级,使得相同的应用在网络和存储设备上具有相同优先级,避免应用在网络和存储上优先级不统一的情况发生。网络调度模块实现对应用的带宽分配保障机制。针对高优先级应用,通过5%的带宽损失,能够降低高优先级应用延迟35%。并可以采用限制网卡带宽的方式灵活控制高优先级应用的网络延迟。存储调度模块中,本文利用用户级的优化手段,使得应用通过网络访问NVMe设备的聚合带宽达到1GB/s。并且通过协同调度二者的方式,能够在有其他流量影响的情况下,保障应用的带宽需求。