eWave: Leveraging Energy-Awareness for In-line Deduplication Clusters
应用场景:in-line deduplication clusters,在线的用于删除重复数据的集群,特点是为企业或者公司提供高的吞吐量以及可扩展的存储归档服务,正是因为他的高吞吐量,使得每一个请求都会造成很多存储节点处于活跃状态,减少了节点的standby的时间,造成了大量的能源浪费。
目标:充分利用负载小的时期,尽可能的使节点的standby的时间达到最大化
解决方法:提出eWave,它是一个工作在in-line deduplication cluster中的实现能耗有效利用的存储中间件,不改变原来的cluster的层次,而且在节约能耗的前提下不会产生冗余的数据。
dedplication的工作过程:首先Proxy从client端接收到数据,然后将文件分割成小的chunk,基于内容对chunk进行分类,再将被分在一组里的chunk组合成一个superchunk,这样proxy通过数据路由算法,根据superchunk的内容给它分配存储节点;(使用superchunk的原因是因为要提高throughput,因为chunk太小)然后实际的存储节点再对接收到的superchunk中的chunk进行处理,在本地的index中进行查询,查看是否已经有相同数据存储。
加入eWave后的工作过程:数据流进入proxy后,proxy和以前的工作相同,找到实际应该存储的节点后,通过计算如果负载的密度使用eWave能够节省能源,则调用API,将权利委派到eWave proxy中,同时提供相应的存储节点的信息和数据,分配到管理实际节点的partition manager(pm)中,当数据全部传输完毕,则会在proxy中产生相应的index,同时记录实际应该存放数据的节点,以便数据的转移,同时会设定一个时间T,当时间超过T的时候,就要对pm中的数据进行转移,同时删除proxy中的index,如果t<T但是index应经要溢出,那么也会根据LRU进行数据转移,数据转移后会在deduplication proxy中产生相应的index;这样当进行检索的时候deduplication proxy先对自己的index进行检索,如果没有则会调用eRetrieve,在eWave proxy中进行查询,有相应的数据时就在pm中直接读取数据
实验方法:通过模拟和在一个有8个节点的集群中进行实际的实验得到使用eWave后可以在不影响性能的前提下对低负载时期的通常环境下实现16%-60%的disk-energy的减少