System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 块设备级压缩映射的方法、块存储设备控制系统和介质技术方案_技高网

块设备级压缩映射的方法、块存储设备控制系统和介质技术方案

技术编号:41418709 阅读:12 留言:0更新日期:2024-05-21 20:52
本公开的实施例涉及块设备级压缩映射的方法、块存储设备控制系统和介质。方法包括:将未压缩数据压缩为压缩数据;使用该未压缩数据的未压缩的块地址检索该平面散列表的条目;通过执行至少一个散列函数,并且通过确定该至少一个散列函数中的散列函数来确定该压缩数据的压缩的块地址,该散列函数用于将该未压缩的块地址映射到对应于该块存储设备中的该空间的该压缩的块地址;将该压缩数据存储到对应于该压缩的块地址的该空间;以及用指示该散列函数的索引来更新该平面散列表的该条目的该散列函数索引。

【技术实现步骤摘要】

本文所描述的实施例总体涉及块设备级压缩映射。更具体地,本文所描述的实施例涉及使用平面散列表的大规模块设备级压缩映射的混合设计。


技术介绍

1、块存储(或称为块级存储)是用于例如在存储区域网络、基于云的存储环境等中以块的形式存储数据的常见存储形式。每个块可以作为具有唯一识别符的单独块来存储。基于云的块存储或存储设备是云服务提供商(csp)提供的常见产品。在块存储或存储设备中,透明压缩可能是期望的特征,通过该特征,压缩可以在块设备级完成,并且压缩对于主机(例如,运行用户应用程序的服务器)可以是透明的,并且主机上可能不需要另外的软件改变。由于例如压缩地址(即,块存储设备的地址)与未压缩地址(即,呈现给主机的地址)之间的非线性映射,因此需要仔细维护和跟踪未压缩的块地址与压缩的块地址之间的映射。现有的映射或具有可能无法适合存储器的映射表,或可能导致额外的延迟和/或低吞吐量。


技术实现思路

1、在一个示例实施例中,平面散列表包括多个条目,并且平面散列表的每个条目包括散列函数索引和使用位图。一种使用平面散列表进行块设备级压缩映射的方法包括:将未压缩数据压缩为压缩数据;使用未压缩数据的未压缩的块地址检索平面散列表的条目;通过以下步骤确定压缩数据的压缩的块地址:执行至少一个散列函数以用于将未压缩的块地址映射到压缩的块地址;以及确定至少一个散列函数中的散列函数以用于将未压缩的块地址映射到对应于块存储设备中存储压缩数据的空间的压缩的块地址;将压缩数据存储到对应于压缩的块地址的空间;以及用指示散列函数的索引来更新平面散列表的条目的散列函数索引。

2、在另一个示例实施例中,块存储设备控制系统包括具有多个条目的平面散列表,并且平面散列表的每个条目包括散列函数索引和使用位图。该系统还包括将未压缩数据压缩为压缩数据的处理器;使用未压缩数据的未压缩的块地址检索平面散列表的条目;通过以下步骤确定压缩数据的压缩的块地址:执行至少一个散列函数以用于将未压缩的块地址映射到压缩的块地址;以及确定至少一个散列函数中的散列函数以用于将未压缩的块地址映射到对应于块存储设备中存储压缩数据的空间的压缩的块地址;将压缩数据存储到对应于压缩的块地址的空间;以及用指示散列函数的索引来更新平面散列表的条目的散列函数索引。

3、在又一个示例实施例中,非暂态计算机可读介质具有存储在其上的计算机可执行指令,该计算机可执行指令在执行时使得一个或多个处理器执行操作。这些操作包括将未压缩数据压缩为压缩数据;使用未压缩数据的未压缩的块地址检索平面散列表的条目;通过以下步骤确定压缩数据的压缩的块地址:执行至少一个散列函数以用于将未压缩的块地址映射到压缩的块地址;以及确定至少一个散列函数中的散列函数以用于将未压缩的块地址映射到对应于块存储设备中存储压缩数据的空间的压缩的块地址;将压缩数据存储到对应于压缩的块地址的空间;以及用指示散列函数的索引来更新平面散列表的条目的散列函数索引。

4、应理解的是,可以使用“平面映射表”方案来映射和/或跟踪从未压缩的块地址到压缩的块地址的映射。也就是说,使用未压缩的块地址来寻址平面映射表。例如,未压缩的块地址被用作平面映射表的索引,并且平面映射表的每个条目包含块存储设备的对应压缩的块地址。使用平面映射表方案,假设每个四千字节(kb)的未压缩地址使用64位映射条目,管理64太字节(tb)的存储空间可能需要具有128吉字节(gb)大小的平面映射表。此类大的平面映射表可能导致性能问题,因为平面映射表可能无法适合诸如动态随机存取存储器(dram)的存储器,并且可能必须存储在磁盘(例如,诸如块存储设备的存储设备等)上,并且几乎每个输入/输出(i/o)都可能需要从磁盘进行额外的读取。通常,4gb缓存(用于映射表)可以覆盖2tb的存储空间。如果被管理(例如压缩等)的存储空间是64tb,那么在随机i/o下,缓存的命中率可能约为3.1%(2/64),几乎每个i/o都可能需要额外从磁盘读取。随着存储空间变得越来越大(例如,更多的磁盘附接到存储设备),缓存的命中率可能会成比例地下降,从而导致性能更差。

5、还应理解的是,可以使用“散列表”机构或方案来将未压缩地址映射到压缩地址。在此类方案中,使用散列表,并且散列表使用单个散列函数(无需配置和/或具有单个配置)来将未压缩地址映射到压缩地址。然而,一个散列函数可能不会导致正确的映射。可能需要多次尝试才能获得正确的映射,这可能会导致额外的延迟和/或较低的吞吐量。

6、本文公开的实施例中的特征可以提供使用平面散列表的透明块设备级压缩映射的混合架构。本文公开的实施例中的特征可以解决实现大规模透明块设备级压缩映射系统的主要挑战:存储器使用和性能。

本文档来自技高网...

【技术保护点】

1.一种使用平面散列表的块设备级压缩映射的方法,所述平面散列表具有多个条目,每个条目包括散列函数索引和使用位图,所述方法包括:

2.根据权利要求1所述的方法,其中所述至少一个散列函数包括两个或更多个散列函数,所述空间大于或等于所述压缩数据的大小,并且所述空间小于或等于对应于使用所述至少一个散列函数中除了所述散列函数之外的任一个散列函数所映射到的压缩的块地址的任何空间。

3.根据权利要求1所述的方法,还包括:

4.根据权利要求1所述的方法,还包括:

5.根据权利要求1所述的方法,还包括:

6.根据权利要求5所述的方法,其中解除分配所述已用空间包括:

7.根据权利要求6所述的方法,其中所述平面散列表还包括溢出位图,其中解除分配所述已用空间还包括:

8.根据权利要求6所述的方法,其中所述平面散列表还包括溢出位图,其中解除分配所述已用空间还包括:

9.根据权利要求6所述的方法,其中解除分配所述已用空间还包括:

10.根据权利要求1所述的方法,还包括:

11.根据权利要求10所述的方法,还包括:

12.根据权利要求1所述的方法,其中所述平面散列表还包括溢出位图,所述方法还包括:

13.根据权利要求12所述的方法,还包括:

14.根据权利要求1所述的方法,其中所述平面散列表还包括溢出位图,所述方法还包括:

15.一种块存储设备控制系统,所述系统包括:

16.一种非暂态计算机可读介质,其具有存储在其上的计算机可执行指令,所述计算机可执行指令在执行时使一个或多个处理器执行操作,所述操作包括:

...

【技术特征摘要】

1.一种使用平面散列表的块设备级压缩映射的方法,所述平面散列表具有多个条目,每个条目包括散列函数索引和使用位图,所述方法包括:

2.根据权利要求1所述的方法,其中所述至少一个散列函数包括两个或更多个散列函数,所述空间大于或等于所述压缩数据的大小,并且所述空间小于或等于对应于使用所述至少一个散列函数中除了所述散列函数之外的任一个散列函数所映射到的压缩的块地址的任何空间。

3.根据权利要求1所述的方法,还包括:

4.根据权利要求1所述的方法,还包括:

5.根据权利要求1所述的方法,还包括:

6.根据权利要求5所述的方法,其中解除分配所述已用空间包括:

7.根据权利要求6所述的方法,其中所述平面散列表还包括溢出位图,其中解除分配所述已用空间还包括:

8...

【专利技术属性】
技术研发人员:周平李龙霄胡潮红刘飞范勤张晖
申请(专利权)人:脸萌有限公司
类型:发明
国别省市:

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

1