Papers
按类别整理
多租户虚拟化
表格摘要
论文名称
会议名
会议年份
主要内容
局限性
Argon
FAST
2007
是针对Disk进行的时间预算管理,在SSD场景下需要重新设计
Performance Isolation and Fairness for Multi-Tenant Cloud Storage
OSDI
2012
FIOS
FAST
2012
NVMSA
2015
设计了一个模型,用来判断不同租户对GC的贡献。主要的考量标准是WAF。即写放大比较大的租户,对GC贡献较多,因此加大其请求的预算消耗
FLIN指出这种方案有两个问题:①不能解决GC的延后导致的干扰;② 导致整个MQ-SSD的性能下降
FAST
2017
根据租户需求的不同,为其分配特定的channel、die资源,并实现了租户内及租户间的磨损均衡操作。提出了一个分析模型和系统来控制磨损均衡,因此磨损均衡效果很好,并且几乎不会干扰租户操作
Tiny-Tail Flash
FAST
2017
ISCA
2018
分为三个stage的解决方案:请求插入到队列中的位置(低密度的在前);请求派发到闪存的顺序(带权重的轮询);针对读写比、GC的优化(针对请求等待时间的比值来判断读/写优先级;通过空闲页比例来判断写和GC的优先级)
其实并没有区分GC是由哪个租户造成的?
FAST
2020
针对多容器环境,在SSD硬件级以及host系统级进行了修改。关于系统级,主要是针对page frame回收造成的干扰进行修改;而SSD级,主要是采用了NVM set的概念,将不同的PF绑定在不同的NVM set上(1对多),然后同一个PF的多个set请求轮询下发。(每个NVM set有自己的FTL固件,因此地址转换也是互不干扰的)
2015年的OPS Isolation
与Workload-aware budget compensation
放在一起看,需要考虑一个问题:后者也采用了“将不同租户的数据写入不同的block中”这一方法,为什么前者可以发FAST?而且之前的Multi-stream SSD其实也是将不同的流数据写入不同的Block中的?
KV存储
LSM树
论文名称
会议名
会议年份
主要内容
混合架构
论文名称
会议名
会议年份
主要内容
存在的问题
PACT
2013
多个VM的环境下,在hypervisor一级设计了SSD cache分配策略。根据每个VM的需求来决定SSD cache如何分配,最大化整体性能
我觉得完全由VM的需求来决定Cache空间如何分配,只能保证Cache的整体利用率最大,对公平性的保证效果很弱(虽然论文中有一定的保护机制,避免某个VM被连续减少空间)
Ubik
ASPLOS
2014
通过理解、预测和利用瞬态行为,执行动态的、积极的资源共享,而不牺牲短期性能,实现最大化缓存利用率和为延迟关键性工作负载提供严格的服务质量保证的双重目标
Software-defined caching:managing caches in multi-tenant data centers
SOCC
2015
在多租户环境中,简化缓存基础架构的管理,并实现各种目标,例如提高整体资源利用率或提供租户隔离和服务质量保证
FairRide
NSDI
2016
本文提出了一个叫做FairRide的新策略,通过阻止作弊用户的访问,既保证了隔离(获得比隔离的缓存更好的性能),又保证了策略的安全性(用户没有作弊的动机)
IPDPS
2019
针对混合memory(传统DRAM + 3D堆叠DRAM),利用最后一级Cache的状态,来决定哪些memory segment需要被迁移,从而提高数据迁移的效率,减少因为迁移对性能造成的影响
arXiv
2019
针对DRAM-NVM-SSD存储架构,为读写添加新的路径,可以bypass DRAM/NVM,延长NVM设备寿命的同时,提升吞吐(避免冷数据污染cache); 还设计了一个存储架构推荐系统,帮助挑选层次结构
FAST
2021
新的存储架构下,缓存和下层存储的性能差距并没有那么大,因此传统的缓存算法(尽可能将读hit放到cache层)无法充分利用下层的性能,需要重新设计,来确定请求下发到两个设备的比例
1. 只能针对读,无法处理写;2. 反馈调节需要三个周期的测量判断,因此时效性较差,同时可能人为引入性能波动;3. 只能保证整体性能,无法处理具体某个负载的性能需求
GOAL
目前总结混合架构的文章,主要目的在于分析如下问题:
多应用共享使用缓存时,如何高效分配和利用缓存空间,减少缓存争用导致的应用间性能干扰成为挑战; 研究多应用 I/O 负载感知的缓存优化调度方法,提高存储服务质量和优化固态盘可靠性。
TODO
我记得ATC 2020有几篇SSD用作Cache的相关研究
根据目前对混合架构方面的整理,可以分析出如下趋势:
① 对于单租户的混合架构存储,主要解决如下问题:
充分利用各层的性能。不要仅仅将某层用作性能缓冲,而是要尽力利用到其性能(比如其容量、吞吐等),才能提升整体性能;(此处的性能包括、但不限于容量、带宽、延迟等)
数据在各层间的迁移。要决定迁移的时机、每层应该存放哪些数据、Bypass哪些层
② 对于多租户的缓存,解决如下问题:
平均分配导致性能低、共享导致不公平,如何寻找balance(包括防止作弊)
考虑不同租户的要求不同,为不同特征的租户执行不同的缓存策略。
可行的方向:
混合架构下,例如
DRAM-NVM-SSD
架构下,如何为不同类型的租户服务?
类似的文章经常看到几个概念,或许可以学着使用一下:
Envy Freedom. 一个用户不能更偏爱(prefer)另一个用户的分配。这体现了公平的概念。
Sharing Incentive. 每个用户最好共享资源,而不是只使用自己分区资源。 比如n个用户的集群,那么一个用户不应该在所有资源都n等分的情况下获取更多资源。
Pareto Optimality. 不可能只增加一个用户的分配,而不减少其他用户的分配。这个属性很重要,它可以在满足其他属性的前提下最大限度提高系统利用率。
DRF中还举了Yahoo公司的一个例子。
Strategy-Proofness. 用户不能通过谎报他们的资源需求而获益。
按会议整理
ATC
2013
2018
为每个任务分配一个请求队列,同时限制了每个任务的未完成子请求数量,以动态反馈调节的方式控制每个任务的执行,以保证整个SSD性能的稳定。
FAST
2014
2015
确保一个block内不会出现多个租户的数据,从而消除了租户之间由于垃圾回收操作导致的性能干扰。
2016
2017
根据租户的需求,可以选择channel、die、block粒度的隔离系统。并设计了磨损均衡算法,来保证租户内、租户间的磨损均衡。
2019
2020
主要解决的是多租户环境下的Noisy Neighbor问题,使用了底层的hardware level和host端的system level解决方案。SSD内部主要是加入了多个core,每个core管理自己的NVM set(channel),有自己的FTL固件, 向上层暴露为多个独立的物理设备(PF)。
2021
新的存储架构下,performance
层和capacity
层的性能差距并不明显,甚至在多并发场景下有交叠。因此,传统的cache算法下,尽可能地将read hit放到cache层并不会达到性能最优。本文的算法充分利用到了capacity
层的性能,从而提升了整体性能。
ICPP
2019
针对多租户共享NVMe队列的场景,基于租户负载特征(延迟、吞吐、空间)的区别,提出了1. NVMe请求队列仲裁机制;2. mapping cache和data cache的分配机制;3. NAND Flash的分配机制。
ISCA
2018
针对MQ-SSD,提出了一个三阶段的策略,从请求插入请求队列的位置、队列中的请求下发到闪存芯片的顺序、再到读/写/GC哪个优先的问题分别进行了解决。效果是保证公平性的同时,保证整个MQ-SSD的性能。
NVMSA
2015
根据租户的写放大,来定量分析其对于GC的共享,从而实现动态调整写预算分配。
按时间整理
2013
2014
2015
2016
2017
2018
2020
2021
Last updated
Was this helpful?