用于在数据去重中精简数据的块存储方法和系统技术方案

技术编号:37780545 阅读:9 留言:0更新日期:2023-06-09 09:11
一种用于将传入的I/O写入请求以数据块的形式存储在块存储器中的块存储方法,所述块存储方法减少了所述块存储器中的写入放大量。所述方法包括使用基于内容的可变分块方法将所述传入的I/O写入请求划分成第一传入分块和第二传入分块。所述方法还包括计算所述第一传入分块的第一哈希值,并将所述第一哈希值与映射中的哈希值进行比较。如果存在匹配,则所述方法包括识别匹配的预存储分块,并存储指向所述预存储分块数据中的预存储第一数据块的至少一个指针,以用于高效的数据去重。以用于高效的数据去重。以用于高效的数据去重。

【技术实现步骤摘要】
【国外来华专利技术】用于在数据去重中精简数据的块存储方法和系统


[0001]本专利技术大体上涉及数据保护和备份领域,更具体地,涉及用于在数据去重中精简数据的块存储方法、块存储设备和块存储系统。

技术介绍

[0002]通常,数据备份用于在主存储系统(例如主机服务器)中发生数据丢失时保护和恢复数据。出于安全原因,单独的备份系统或存储系统被广泛用于存储主存储系统中存在的数据的备份。通常,随着时间的推移,由于数据的变化或任何新数据会在传统的存储系统中占用大量存储空间,存储系统的存储空间逐渐被占用。因为这会降低存储系统的性能,因此不希望出现这种情况。此外,数据存储器的成本,以及包括存储硬件成本在内的所有关联成本,仍然是一个负担。通常,数据去重是存储系统广泛使用的一种过程,用于消除存储在存储系统上的重复或冗余数据,而不影响原始数据的保真度。在存储系统中,数据通常存储在块设备中,其中,给定的块设备是支持在固定大小块、扇区或集群中读取和可选地写入数据的计算机数据存储设备。传统的块存储系统(或设备)通常只使用固定大小去重。这种传统的块存储系统通常具有初始在线阶段,该阶段使用缓存中的条目执行一些固定大小去重,然后是离线处理,该离线处理有时应用更强大的数据精简技术,如差分压缩。主要问题在于,离线数据精简技术需要大量的计算处理能力(例如,大量使用中央处理单元),并且也会导致读取和写入放大,因为数据在写入后必须再次处理,这是不可取的。
[0003]目前,有许多技术可以用于数据精简,例如固定大小的数据去重。固定大小去重技术将存储的数据划分为固定大小的对齐块,例如大小为4KB、8KB或16KB的对齐块。对于每个对齐块,都会生成一个强哈希值。如果要写入的对齐块与存储系统中已存储的块具有相同的哈希值,则对齐块被视为相同。但是,固定大小去重技术为小尺寸的数据块提供了一定程度可靠的数据重复。对于大尺寸的数据块,问题是去重率不够高效(即显示去重效率低下)。还有另一种用于数据精简的传统技术,称为相似性压缩或差分压缩。差分压缩技术使用离线过程,在离线过程中,数据在写入存储系统后经过处理以进行数据去重,因此差分压缩技术增加了数据的写入放大,并需要占用大量的CPU来进行数据去重过程。此外,在读取用差分压缩压缩的数据时,需要对较大的数据块应用解压缩,这也需要更多的CPU周期,并增加完成操作的时间。在某些情况下,传统的块存储系统使用两阶段方法进行数据精简。在两阶段方法中,传统的块存储系统在在线阶段尝试数据去重和相似性压缩,稍后在离线阶段再次尝试。在线去重在数据写入传统块存储系统之前去除数据中的一些冗余。但是,在在线阶段压缩数据使用固定大小去重技术。此外,离线处理需要占用大量的CPU,并导致读取和写入放大,因为数据在写入后必须再次处理。
[0004]因此,根据上文论述,需要克服与用于数据去重的传统方法和系统相关联的上述缺点。

技术实现思路

[0005]本专利技术寻求提供一种块存储方法、块存储设备和块存储系统,用于在数据去重中精简数据。本专利技术寻求提供一种解决现有的数据重复技术低效问题的方案,即如何针对存储系统中的数据去重以更高的压缩比减少写入放大和计算。本专利技术的目的是提供一种方案,该方案至少部分克服现有技术中遇到的问题,并提供在数据精简方面性能和效率提高的块存储方法、设备和系统,其中,写入放大的量显著减少。
[0006]本专利技术的目的是通过所附独立权利要求中提供的方案实现的。本专利技术的有利实现方式在从属权利要求中进一步定义。
[0007]在一方面,本专利技术提供了一种块存储方法,用于将传入的I/O写入请求以数据块的形式存储在块存储器中。所述块存储器包括先前存储的数据,已经根据基于内容的可变分块方法计算所述先前存储的数据的哈希值,所述块存储器还包括所述哈希值与指向所述先前存储的数据的对应预存储分块的逻辑地址的指针之间的映射。所述方法包括使用所述基于内容的可变分块方法将所述传入的I/O写入请求划分成第一传入分块和第二传入分块的步骤。所述方法还包括:计算所述第一传入分块的第一哈希值,并且将所述第一哈希值与所述映射中的所述哈希值进行比较,并且如果存在匹配。则所述方法还包括:基于所述第一哈希值识别匹配的预存储分块,并将指向所述预存储分块数据中与所述第一传入分块中的第一传入数据块具有至少部分相同的数据的预存储第一数据块的至少一个指针存储在所述块存储器中,而不是将所述第一传入数据块存储在所述块存储器中。如果不存在匹配,则所述方法包括将所述第一传入分块存储在所述块存储器中,并将所述映射中的所述第一哈希值与指向所述第一传入分块的逻辑地址的指针一起存储在所述块存储器中。
[0008]本专利技术的方法能够对传入的I/O写入请求进行高效的数据去重,并在数据精简方面提高性能和效率。该方法减少了写入放大量,并减少了块存储器所需的计算。在传入的I/O写入请求的大小大于定义阈值的情况下,对传入的I/O写入请求采用可变长度去重技术(如在这种情况下)。所述方法使用可变长度去重技术对传入的I/O写入请求进行去重(例如,大于定义阈值的大I/O写入请求与小于定义阈值的小I/O写入请求分开)。可变长度去重技术为大尺寸的I/O写入请求提供了更好的性能、更高的去重率和更少的写入放大。将第一传入分块的第一哈希值与映射中的哈希值进行比较,以检查块存储器中是否已经存在第一传入分块。因此,数据去重是通过比较第一哈希值与映射中的哈希值来实现的,而不需要首先将第一传入分块存储在块存储器中。
[0009]在一种实现方式中,如果所述预存储第一数据块具有与所述第一传入数据块完全相同的数据,则所述方法还包括存储指向所述预存储第一数据块的一个指针,而不是存储所述第一传入数据块。
[0010]在第一传入数据块中的数据与预存储第一数据块中的数据相同的情况下,只需要向块存储器中的预存储第一块分配一个指针。指针指示预存储第一块在块存储器上的物理存储位置,因此,防止对块存储器中的第一传入数据块进一步重复(即减少冗余)。
[0011]在一种实现方式中,如果所述预存储第一数据块具有与所述第一传入数据块部分相同的数据,则所述方法包括存储指向所述预存储第一数据块的一个指针和指向具有与所述第一传入数据块的其余部分相同的数据的相邻块的一个指针,而不是存储所述第一传入数据块。
[0012]在第一传入数据块中的数据与预存储第一数据块仅部分相同(即数据的某些部分相同,而某些部分不同或相似但不同)的另一种情况中,可以分配两个指针来代替存储实际的第一传入数据块,这减少了要存储在块存储器中的数据量。
[0013]在一种实现方式中,如果所述第一传入分块除了一个或多个完整的固定大小的传入数据块之外还包括第一不完整数据块,所述第一不完整数据块的其余部分存储在所述第一传入分块的相邻传入分块中,则所述方法包括识别第一预存储数据分块中的第二预存储数据块,所述第二预存储数据块具有与所述第一不完整数据块的第一部分相同的数据。所述方法还包括识别所述第一传入分块的相邻传入分块,并获取所述相邻传入分块的第二哈希值。如果所述块存储器中存在与所述第二哈希值的匹配,则所述方法包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种块存储方法(100),用于将传入的I/O写入请求以数据块的形式存储在块存储器(206)中,所述块存储器(206)包括先前存储的数据,已经根据基于内容的可变分块方法计算所述先前存储的数据的哈希值,所述块存储器(206)还包括所述哈希值与指向所述先前存储的数据的对应预存储分块的逻辑地址的指针之间的映射,所述方法(100)包括以下步骤:

使用所述基于内容的可变分块方法将所述传入的I/O写入请求划分成第一传入分块和第二传入分块;

计算所述第一传入分块的第一哈希值;

将所述第一哈希值与所述映射中的所述哈希值进行比较,如果存在匹配,则o基于所述第一哈希值识别匹配的预存储分块;o将指向所述预存储分块数据中与所述第一传入分块中的第一传入数据块具有至少部分相同的数据的预存储第一数据块的至少一个指针存储在所述块存储器(206)中,而不是将所述第一传入数据块存储在所述块存储器(206)中;

如果不存在匹配,则o将所述第一传入分块存储在所述块存储器(206)中,并将所述映射中的所述第一哈希值与指向第一传入分块的逻辑地址的指针一起存储在所述块存储器(206)中。2.根据权利要求1所述的方法(100),包括如下步骤:如果所述预存储第一数据块具有与所述第一传入数据块完全相同的数据,则存储指向所述预存储第一数据块的一个指针,而不是存储所述第一传入数据块。3.根据权利要求1或2所述的方法(100),包括如下步骤:如果所述预存储第一数据块具有与所述第一传入数据块部分相同的数据,则存储指向所述预存储第一数据块的一个指针和指向具有与所述第一传入数据块的其余部分相同的数据的相邻块的一个指针,而不是存储所述第一传入数据块。4.根据上述权利要求中任一项所述的方法(100),包括如下步骤:如果所述第一传入分块除了一个或多个完整的固定大小的传入数据块之外还包括第一不完整数据块,所述第一不完整数据块的其余部分存储在所述第一传入分块的相邻传入分块中,则

识别第一预存储数据分块中的第二预存储数据块,所述第二预存储数据块具有与所述第一不完整数据块的第一部分相同的数据;

识别所述第一传入分块的相邻传入分块,并获取所述相邻传入分块的第二哈希值;

如果所述块存储器(206)中存在与...

【专利技术属性】
技术研发人员:兹维
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1