论文笔记99 Deduplication Problems
Posted Anyanyamy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文笔记99 Deduplication Problems相关的知识,希望对你有一定的参考价值。
99 Deduplication Problems
总结:提出存储去重领域可能的新问题,包括:
1. 容量:如何精确衡量写会占用多少空间,删会释放多少空间
2. 服务质量:如何预测性能,不同优先级的用户如何精确收费,不同的任务如何I/O排序,如何检测和衡量服务质量
3. 安全与可靠性:端到端/跨用户如何保证安全,如何量化可靠性、风险、存储环境安全性
4. 可管理性:如何精确计算sizing,不同去重产品如何migration,如何对问题的详细信息进行report
5. 收费:哪些服务要收费,如何高效、合理的定价,如何满足收费业务的及时性
感受:书写不太流畅易懂,组织不够清晰,但是提出的问题方向有参考意义
Abstract
去重是一种把数据的冗余区域用引用代替的容量优化技术,不仅是研究领域,在产业界也有应用。大部分去重相关的论文关注领域较狭窄:最大化去重率和读写性能。未来研究仍会有优化领域,但仍有许多问题被忽略。根据客户和讨论,本文给出未来去重领域的新问题。
1. Introduction
由于去重技术通过去除冗余数据节省存储空间,其在学术界和工业界都是活跃的研究领域。数据冗余的来源有很多,例如备份、代码仓库复制、基于标准模板进行少量修改的虚拟机等。Venti是较早的检测存储系统重复数据的系统,使用内容分块后进行哈希得到的指纹。为了满足性能要求和减少成本(内存、I/O、DDFS),许多去重系统也利用数据局部性创造可商用的产品。
图1显示近年的去重研究成果,草率评价,尽管也有研究特定的数据类型、安全影响、硬件变化等,但大部分集中在提升去重率、系统性能方面。
在商用产品上,空间节约和性能的竞争很激烈。去重产品本身就被商品化。然而实际使用的去重产品与研究设计的原型是不同的,客户需要更多的功能,且随着场景变化需求也在变。尽管空间缩减和性能需要继续提升,其他新问题才是未来去重产品的瓶颈,尤其是主存与去重的结合。
本文给出可能还值得研究的一些新问题,与客户、行业专家、工程师都进行了交流。新问题被分为5类:容量、服务质量、安全和可靠性、管理、服务提供商的退款Chargeback。在一些问题领域指出现存初始阶段的工作,新的去重问题仍待发掘。
2. Capacity
在使用存储系统时最常见的问题是:还剩多少空间,对于非去重的存储,很容易通过系统追踪分配与空闲的块来确定剩余空间,但是对于去重存储,这个问题难以回答。例如图2中唯一数据块chunks被不同的文件引用。如果用户查询剩余空间,为50GB,但是用户可能对还能多写多少数据这个问题更感兴趣。
上述问题的答案取决于未来的写数据能进行多少去重工作。如果用户写入高度重复的数据,可能写的容量大于50GB。对于每次写文件的冗余度相似的情况,剩余空间也能被估计。但是对于写入不可去重数据的情况,就难以处理。因此,剩余空间估计需要在防止系统饱和与减少不必要的提醒间进行权衡。最好的方法是提高多种方法来追踪空间使用情况:汇报剩余容量50GB以及估计还能写入多少文件。
当存储系统饱和,用户还会想问,为了释放空间应该删除哪些内容。通常可能会依据规则、内部策略、文件重要度等进行决策。去重的特性导致其他的问题:删除某个文件,能释放多少空间?当删除10GB的文件时不一定真的释放了10GB空间。例如删除图2中的文件1,不会释放chunks空间,指挥释放少部分与文件1表示相关的元数据metadata。用户不想备份失败,因此当系统满了,会里可查询文件占用的空间。有用户通过删除备份来释放空间,但是没有释放空间还造成了合规性故障。
为了更好的支持容量规划,去重系统需要提高详细的空间使用报告。简单的策略为:当文件写入,系统追踪多少数据被压缩与多少数据被存储的比例。然而存储是动态的,这个比例也是变化的。对于不能去重的数据,可以转移到更便宜的未去重的存储上。
当用户有多个去重系统需要平衡时,可能想知道当从一个源节点删除数据时能释放多少空间,以及目标节点上会使用多少空间。除此之外,当数据从不同层次的介质上移动时,如何保留去重的优点也值得讨论。
未来研究:离线进程可以周期性计算每个文件的唯一内容,或者在GC时计算数据。线上进程可以提供一定预估范围内的容量提醒。用户可能需要新的接口来决定删除文件后能释放多少空间。(写文件会占用多少空间,删文件会释放多少空间)
3. Quality of Service
尽管去重能减少存储成本,存储系统也需要满足用户的服务质量QoS需求,例如不同优先级配置下的时延和吞吐量需求。尽管对于非去重存储系统的QoS研究有很多,对于去重存储的却较少。
去重增加了从文件表示到数据块位置的间接映射,去重容易把连续写的内容转变成引用硬盘中分散的chunks。图3展示了典型的去重架构。顶层的RAM存储重要的数据和meta data,HDD中包括文件描述,一个文件数据chunks的FP(fingerprint)数组,chunks存储在很多MB的container中,index把FP映射到container。
读取文件的一部分需要获取文件描述、FP索引、以及读取chunk。例如,用户可能认为对文件M,chunks C和Y是顺序的,但实际上他们存储在不同的container中。由于container布局复杂以及caching effects,很难预测用户请求时需要多少磁盘I/O。尽管目前有许多工作提升restore的性能,时延和吞吐量需求无法满足。如果用户过多,体验就下降。可预测的性能是很重要的。(如何可预测性能)
现在考虑不同优先级的用户的caching QoS技术,例如图3中,2个用户,高优先级的读取文件0,低优先级的读取文件M。简单的QoS方法是根据优先级不同在RAM中划分不同的cache space。由于chunk A-C是重复的,为了满足High需求这些内容已经读到cache中,也能给Low读取,这些读取时间算作High的成本,但是造成了Low的latency比High还低的结果。这种情况看起来没有道理,因为High付出了自己的代价,而Low却没有付出代价。而且单个文件的优先级可能变化,写的时候可能备份优先级低,但是读的时候可能优先级高。(不同优先级的反常之处)
在网络传输过程中的去重会影响网络utilization,因为逻辑上传输的数据可能与物理传输的数据不同。服务提供商希望区分备份和拷贝性能,因为每个用户的配置是不同的。(备份与复制性能不同)
除了用户发起的I/O,去重存储系统还有一些资源紧张的后台任务需要进行质量控制。GC决定了哪些块还被引用,哪些块可以释放。非同时的任务包括off-site replication和完整性验证。许多用户经历过删除数据无法及时GC,导致新的写入数据无法及时存储或者复制。因此对后台任务和用户I/O的数据处理顺序进行组织也是有需求的。(组织不同I/O顺序)
未来方向:QoS系统需要关注不同操作可能的latency,以及有足够的资源满足所有目标。对于多用户共享的内容,主要是许多合理选择的决策制定问题。因为首个付费的用户获取的chunks可能被其他用户获取,而如何精确收费是很复杂的。让资源紧张的任务更高效会直接降低预留空间over-provisioning。最后,为了检测质量,用户需要对不同的去重方法进行追踪和人工生成一些负载load generators。(预估时延满足需求,精确收费,任务I/O顺序制定,如何检测质量)
4. Security and Reliability
去重在平衡安全性与节约空间造成了新的担忧。为了保证去重时的安全性,有人提出了把chunk的哈希作为加密密钥的想法。这保证了重复的chunks能被加密成相同的密文,在去重的同时保护隐私。由于加密的计算成本,可能需要去重后再进行加密,不过其中可能泄露隐私。通过对数据传输计时,可能推测出去重的server上有哪些数据。端到端的安全必须考虑在用户传数据到server时数据是否需要多次的解密和重加密。服务提供商想要实现跨用户的空间节省,然而用户想要控制并一段时间更换一次自己的密钥。(端到端去重安全,跨用户去重安全)
另一个考虑较少的领域是去重与数据可靠性之间复杂的关系。数据可靠性是指,当请求时数据能获得的可能性,与安全性不同,安全性主要包括防止未授权访问、知识窃取和篡改。通过复制多个备份防止数据丢失的方法与去重相悖。尤其在备份和存档系统中,本身就是为了保护数据,但是又因为本身存在的冗余特性需要采用去重系统。另外,在去重时用户通常会关心数据损失的风险有多大。(去重与可靠性的矛盾)
为了提高数据可靠性,去重系统提供多种技术。1. RAID能防止disk array损坏。2.许多的版本和镜像可以保留,因为只需要修改内容增加额外空间 3. 数据通常是线下被复制的replicated off-site,只有唯一数据需要被复制,因此复制可以比传输完整的数据要更快。从直觉上来说,RAID,版本,复制能一定程度缓解去重造成的数据损失风险,但是如何定量研究可靠性仍是问题。(提高可靠性的技术,如何量化可靠性)
例如,可能需要分析在RAID上的去重是否比non-RAID上保存多个copy要更安全。问题更宽泛一点,在存储环境中数据有多安全?由于去重减少了数据量,把完整的数据复制到远方是可行的,因此这种系统的可靠性也是可靠性问题解决办法的一部分。在某些情况下,非去重的主存系统也需要考虑,因为也可能有快照数据与去重的secondary storage有关。Disk和RAID的失败率仍需要研究,也需要对端到端的可靠性进行探索。(存储环境安全性)
未来方向:对不同的去重系统的数据损失率进行经验性的评估。对系统每个部分的安全风险进行建模,利用公开的错误特征来计算存储环境的可靠性。然后再探索能提高可靠性的方法。(经验性评估或者风险建模)
5. Management
目前研究主要集中再提升存储容量和性能,用户也很需要可管理性,我们主要关注sizing, migration, reporting。
用户购买存储系统时首先会思考,容量是否符合组织的需求? 去重使得容量计算更复杂,用户需要方法来估计去重的好处。一些存储供应商提高分析用户当前数据的去重量的工具,但是有局限性。分析工具可能运行缓慢,需要额外系统资源,再考虑数据泄露时可能不被允许访问隐私数据。用户可能希望把空间按照不同应用进行划分,sizing问题的粒度变小。存储分区本身就是涉及到科技与政策的content-sharing问题。(评估容量和去重好处难,分区导致sizing问题细粒度)
一旦用户得到了分区后的去重存储,可能会把退休的系统数据迁移过来,如果退休系统中数据没去重,可能要花几天时间来传输数据。如果退休系统去重了,可能要传输post-deduplication内容,如果新旧系统的去重方法不同,很难进行数据迁移。而厂商由于技术不同。为了知识产权,很少愿意标准化数据迁移方法。我们也遇到过想迁移数据到不同去重系统的用户,但是因为实现不同而无法完成迁移。(是否去重、不同去重方法导致的数据迁移问题)
当用户安装好存储系统后,可能通过reporting来衡量系统未来的健康状况,可以帮助管理系统以及反映系统是值得付费的。但是reporting涉及到之前提到的去重问题,还需要额外的细节支撑。Reports需要具体化存储volumes的容量和性能,由于去重的共享特性很难衡量。去重系统比传统的存储系统有更多的可配置优化选项,因此一旦问题发生,reports需要提高足够的细节和context,从而帮助用户理解和解决问题。(report难)
Potential solutions: sizing的工具需要在资源和运行时间上更高效。Migration需要统一标准。Reporting需要用户的输入,然后根据用户需求来评估存储的行为。最后,去重存储的management会被非去重系统的功能所影响。
6 Chargeback for Service Providers
服务提供商对存储系统的需求更高。当很多用户处于同一环境时,使得QoS,security,management的问题量级增大。目前的新问题是chargeback退款。根本上说,服务提供商需要对用户高效且合理的收费。1. 哪些服务要收费。有的会按容量,有的会根据CPU,IOPS,存储和网络带宽,有的会根据服务层级(响应时间、安全性、可靠性等)(哪些收费难定义)
2. 对于按容量收费,服务商可以简单的根据传输和存储的逻辑空间进行收费,但也想给用户传阅pass along通过去重产生的空间节约。否则用户可能自己购买去重系统,另外,用户知道自己的数据去重率更高时不希望被额外收费。如何能有效的对去重进行定价和收费?有些服务提供商认为能达到固定的去重率,但是实际上可能做不到;即使是制定去重率区间,也可能在审计时由于随机采样等原因无法满足;有些按照不同用户划分去重空间的方法,也会丧失跨用户的space efficiency。(如何高效定价很困难)
3. 还有一个问题是timelines,由于用户为存储付费,可能会希望比公司内共享存储的用户得到更快更及时的反馈。例如,用户可能想及时追踪存储操作使用的空间。
未来方向:对于服务提供商,需要精确衡量去重后的资源使用情况(容量,I/O,网络)。可能需要不断的对每个用户进行评估。另外需要给用户提高最大化去重效率与满足QoS需求的技术。
7. Discussion
存储去重是一个较为成熟的领域,已经有很多研究与可商用的产品。但是研究主要集中在少部分问题,例如空间节约和性能等。还有许多新问题需要解决。本文归纳了未来的五个研究方向:容量、QoS、安全与可靠性、管理、收费问题。这些问题应该能促进下一代去重产品的研究与发展。
以上是关于论文笔记99 Deduplication Problems的主要内容,如果未能解决你的问题,请参考以下文章
论文笔记The Dilemma between Deduplication and Locality: Can Both be Achieved?
论文笔记The Dilemma between Deduplication and Locality: Can Both be Achieved?
论文笔记The Dilemma between Deduplication and Locality: Can Both be Achieved?