CN107229573B - 一种基于固态硬盘的弹性高可用缓存方法 - Google Patents
一种基于固态硬盘的弹性高可用缓存方法 Download PDFInfo
- Publication number
- CN107229573B CN107229573B CN201710361683.7A CN201710361683A CN107229573B CN 107229573 B CN107229573 B CN 107229573B CN 201710361683 A CN201710361683 A CN 201710361683A CN 107229573 B CN107229573 B CN 107229573B
- Authority
- CN
- China
- Prior art keywords
- ssd
- disk
- data
- dht ring
- solid state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种基于固态硬盘的弹性高可用缓存方法,包括:1)基于分布式哈希建立一具有DHT环的缓存池,所述DHT环上映射有多个SSD的存储资源;2)将磁盘地址空间映射于所述缓存池中;3)为每个磁盘创建一对应的逻辑设备,通过该逻辑设备实现SSD与磁盘间的数据分发。与现有SSD缓存技术相比,本发明支持动态调整缓存池中SSD盘和缓存池高可用特性,能够更好地适应SSD多盘的缓存场景,提升缓存系统的运维效率,降低由于SSD损坏导致的缓存故障率。
Description
技术领域
本发明涉及一种SSD的缓存方法,尤其是涉及一种基于固态硬盘的弹性高可用缓存方法。
背景技术
SSD(固态硬盘)是一种相对于传统磁盘来说,价格昂贵,容量小,但性能优异的存储介质。目前在企业级的存储市场上SSD被用来作为高性能存储系统的组件。但是由于其价格昂贵,存储系统中无法全部使用SSD来作为存储介质,所以目前一般使用SSD和磁盘的混合存储方式。该方式既可提高系统性能,又不至于价格过分昂贵。
混合存储方式包含多种使用机制,其中最通用的就是缓存机制,使用SSD来作为磁盘的缓存。这样既可以发挥出SSD的高性能,又能利用磁盘容量大、价格便宜的优势。
当前基于SSD的缓存主要是以一个SSD和一个磁盘绑定的方式进行使用,该种使用方式会带来以下缺点:
1.存储系统中会存在热点区域,一对一绑定很难发挥出多个SSD的总体性能。
2.每个SSD盘被限定给特定磁盘使用,无法在系统中共享所有缓存资源。
3.在系统维护阶段,很难改变缓存的容量,需要放弃原有缓存数据,重新配置缓存,运维需要大量人力物力的投入。
4.在任意一块SSD损坏的情况下,都会导致缓存数据丢失。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于固态硬盘的弹性高可用缓存方法,可以最大化的发挥系统性能、减少系统运维成本并提高存储系统可用性。
本发明的目的可以通过以下技术方案来实现:
一种基于固态硬盘的弹性高可用缓存方法,包括:
1)基于分布式哈希建立一具有DHT环的缓存池,所述DHT环上映射有多个SSD的存储资源;
2)将磁盘地址空间映射于所述缓存池中;
3)为每个磁盘创建一对应的逻辑设备,通过该逻辑设备实现SSD与磁盘间的数据分发。
所述步骤1)中,所述DHT环通过以下方式获得:
101)为各SSD分配一唯一的标识ID;
102)根据所述标识ID,采用分布式哈希算法将各SSD的存储资源放置于DHT环中。
所述步骤2)具体为:
201)为各磁盘分配一唯一的标识ID;
202)根据所述标识ID,对各磁盘的空间地址进行编码;
203)将编码后的空间地址映射到所述DHT环上。
所述步骤202)中,采用的编码方式为64位地址编码,其中0-47位是磁盘内部地址偏移,48-59位是磁盘的标识IID,60-63位是保留扩展区。
所述步骤3)中,通过逻辑设备实现SSD与磁盘间的数据分发具体为:
逻辑设备截获发给对应磁盘的数据,根据该磁盘的空间地址在DHT环上获得该数据对应的SSD,实现缓存。
所述根据该磁盘的空间地址在DHT环上获得该数据对应的SSD具体为:
逻辑设备根据SSD中数据块的大小将截获的数据切割成若干数据块,根据各数据块地址进行一次分布式哈希计算,获得缓存池中对应的SSD,再通过第二次分布式哈希计算获得SSD内部的数据区域。
该方法在动态调整缓存池中SSD的个数时,缓存池进行数据重新映射调整,创建一新DHT环,将原DHT环上的数据迁移至所述新DHT环上,不再对原DHT环进行资源分配。
进行数据访问时,首先查询新DHT环是否存在缓存,若是,则进行数据响应,若否,则对原DHT环进行查询。
该方法对脏数据进行多副本配置,将磁盘的同一个编码地址映射到两个不同的SSD上,在获对应的SSD后,按顺时针方向以第一个SSD为第一副本,以第二个SSD为第二副本,以此类推,实现多副本缓存。
与现有技术相比,本发明具有以下优点:
(1)本发明根据分布式哈希(DHT)算法进行数据分布,建立具有DHT环的缓存池,使得缓存在使用过程中能够把热点磁盘或者热点区域的数据分散到不同的SSD上,提高了数据的并行度,从而提高了系统性能。
(2)本发明增加、减少池中SSD盘,无需停止前台数据访问,缓存自身进行数据重新映射调整,根据分布式哈希算法使得数据重新均衡分布,能够在读、写数据不间断的情况下进行缓存池的扩张和收缩。
(3)本发明为缓存池提供脏数据副本机制,既可以提高系统的可用性,又不至于浪费过多的SSD空间。
附图说明
图1为本发明的SSD缓存池示意图;
图2为本发明的分布式哈希算法原理示意图;
图3为本发明中磁盘地址编码示意图;
图4为SSD内部数据区域划分示意图;
图5为缓存数据分发示意图;
图6为数据迁移示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例提供一种基于固态硬盘的弹性高可用缓存方法,包括:1)基于分布式哈希建立一具有DHT环的缓存池,所述DHT环上映射有多个SSD的存储资源;2)将磁盘地址空间映射于所述缓存池中;3)为每个磁盘创建一对应的逻辑设备,通过该逻辑设备实现SSD与磁盘间的数据分发。
1、缓存池创建
为各SSD分配一唯一的标识ID,根据所述标识ID,采用分布式哈希算法将各SSD的存储资源放置于DHT环中,创建基于分布式哈希的缓存池,其结构如图1所示,格式化SSD并加入到池中,加入原理示意图如图2所示。
SSD存储空间被划分成元数据区和数据区,如图4所示。元数据区用于存储该SSD相关信息和数据映射信息。数据区划分为同等大小的数据区域(EXTENT),这些EXTENT作为DHT算法的基本单元,也是数据迁移的基本单元。在EXTENT中把存储资源划分为同等大小数据块(SIPPET),并创建资源分配器,用缓存资源的申请和访问。该资源分配器可以为传统jhash或者B-tree算法。
2、格式化磁盘并创建与磁盘相关的逻辑设备
为各磁盘分配一唯一的标识ID,根据所述标识ID,对各磁盘的空间地址进行编码,将编码后的空间地址映射到所述DHT环上。磁盘的逻辑设备与缓存池中的SSD相关联。
磁盘存储空间划分为元数据区和数据区。元数据区功能同SSD,数据区使用统一的线性空间访问方式。
磁盘中的数据按照图3所示,进行地址空间重新编码,其中0-47位是磁盘内部地址偏移,48-59位是磁盘ID,60-63位是保留扩展区。
3、数据分发
数据首先发送到逻辑设备上,然后根据SIPPET的大小,数据被切割成若干对齐的数据块,再把这些数据块的地址按照如图3所示方法进行编码,用该编码通过DHT算法,计算出SSD池中与其对应的SSD盘,再通过第二次DHT算法在SSD内部计算出与其对应的EXTENT。然后通过EXTENT上的分配器查询该地址是否在缓存中,如图5所示。如果命中,则在SSD上进行数据响应;如果没命中,则需要分配器从EXTENT中分配相应的SIPPET资源,然后根据写回或者写穿策略进行数据响应。
如果配置脏数据多副本机制,并且数据操作为写入操作的时候,则在第一次DHT计算SSD时,计算出额外的SSD副本。读取操作,只计算第一副本进行操作。
4、数据迁移
如图6所示,在需要增加或者减少池中SSD的时候,无需停止前台数据访问,缓存自身进行数据重新映射调整,根据分布式哈希算法使得数据重新均衡分布。可以创建一个新的DHT环(DHT2,原DHT环为DHT1),数据访问的时候,需要先查询DHT2,如果没有命中,还需要查询DHT1,如果都没有命中,则认为缓存没有命中,如果任何一个命中,则认为命中。
在DHT1中不再进行资源分配,只进行缓存查询。如果迁移过程中数据访问没有命中,则在DHT2中分配缓存资源。
5、数据恢复
该方法可对脏数据进行多副本配置,将磁盘的同一个编码地址映射到两个不同的SSD上,在获对应的SSD后,按顺时针方向以第一个SSD为第一副本,以第二个SSD为第二副本,以此类推,实现多副本缓存。
在脏数据多副本的配置下,如果一个SSD丢失,对于其上存储的数据,可以把脏数据从另一个SSD盘上的数据副本上进行数据恢复,对于干净的数据,则可以直接从磁盘上进行数据恢复。根据用户需要加入新的SSD替换原有SSD,或者直接删除丢失的SSD,然后进行上述数据迁移即可恢复所有数据。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (8)
1.一种基于固态硬盘的弹性高可用缓存方法,其特征在于,包括:
1)基于分布式哈希建立一具有DHT环的缓存池,所述DHT环上映射有多个SSD的存储资源;
2)将磁盘地址空间映射于所述缓存池中;
3)为每个磁盘创建一对应的逻辑设备,通过该逻辑设备实现SSD与磁盘间的数据分发;
该方法在动态调整缓存池中SSD的个数时,缓存池进行数据重新映射调整,创建一新DHT环,将原DHT环上的数据迁移至所述新DHT环上,不再对原DHT环进行资源分配。
2.根据权利要求1所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,所述步骤1)中,所述DHT环通过以下方式获得:
101)为各SSD分配一唯一的标识ID;
102)根据所述标识ID,采用分布式哈希算法将各SSD的存储资源放置于DHT环中。
3.根据权利要求1所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,所述步骤2)具体为:
201)为各磁盘分配一唯一的标识ID;
202)根据所述标识ID,对各磁盘的空间地址进行编码;
203)将编码后的空间地址映射到所述DHT环上。
4.根据权利要求3所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,所述步骤202)中,采用的编码方式为64位地址编码,其中0-47位是磁盘内部地址偏移,48-59位是磁盘的标识ID,60-63位是保留扩展区。
5.根据权利要求1所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,所述步骤3)中,通过逻辑设备实现SSD与磁盘间的数据分发具体为:
逻辑设备截获发给对应磁盘的数据,根据该磁盘的空间地址在DHT环上获得该数据对应的SSD,实现缓存。
6.根据权利要求5所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,所述根据该磁盘的空间地址在DHT环上获得该数据对应的SSD具体为:
逻辑设备根据SSD中数据块的大小将截获的数据切割成若干数据块,根据各数据块地址进行一次分布式哈希计算,获得缓存池中对应的SSD,再通过第二次分布式哈希计算获得SSD内部的数据区域。
7.根据权利要求1所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,进行数据访问时,首先查询新DHT环是否存在缓存,若是,则进行数据响应,若否,则对原DHT环进行查询。
8.根据权利要求5所述的基于固态硬盘的弹性高可用缓存方法,其特征在于,该方法对脏数据进行多副本配置,将磁盘的同一个编码地址映射到两个不同的SSD上,在获对应的SSD后,按顺时针方向以第一个SSD为第一副本,以第二个SSD为第二副本,以此类推,实现多副本缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710361683.7A CN107229573B (zh) | 2017-05-22 | 2017-05-22 | 一种基于固态硬盘的弹性高可用缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710361683.7A CN107229573B (zh) | 2017-05-22 | 2017-05-22 | 一种基于固态硬盘的弹性高可用缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107229573A CN107229573A (zh) | 2017-10-03 |
CN107229573B true CN107229573B (zh) | 2020-04-28 |
Family
ID=59933325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710361683.7A Active CN107229573B (zh) | 2017-05-22 | 2017-05-22 | 一种基于固态硬盘的弹性高可用缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107229573B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388341A (zh) * | 2018-08-28 | 2019-02-26 | 安徽继远软件有限公司 | 一种基于Device Mapper的系统存储优化方法 |
CN110489425B (zh) * | 2019-08-26 | 2022-04-12 | 上海达梦数据库有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN114860163B (zh) * | 2020-04-28 | 2023-08-22 | 华为技术有限公司 | 一种存储系统、内存管理方法和管理节点 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354633A (zh) * | 2008-08-22 | 2009-01-28 | 杭州华三通信技术有限公司 | 提高虚拟存储系统写效率的方法及虚拟存储系统 |
CN101604226A (zh) * | 2009-07-14 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法 |
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN102521147A (zh) * | 2011-11-17 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种使用高速非易失介质做缓存的管理方法 |
CN102696009A (zh) * | 2010-02-01 | 2012-09-26 | 国际商业机器公司 | 存储介质之间的数据迁移 |
CN103678166A (zh) * | 2013-08-16 | 2014-03-26 | 记忆科技(深圳)有限公司 | 一种采用固态硬盘作为计算机高速缓存的实现方法及系统 |
CN105786401A (zh) * | 2014-12-25 | 2016-07-20 | 中国移动通信集团公司 | 服务器集群系统中的数据管理方法及装置 |
-
2017
- 2017-05-22 CN CN201710361683.7A patent/CN107229573B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354633A (zh) * | 2008-08-22 | 2009-01-28 | 杭州华三通信技术有限公司 | 提高虚拟存储系统写效率的方法及虚拟存储系统 |
CN101604226A (zh) * | 2009-07-14 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法 |
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
CN102696009A (zh) * | 2010-02-01 | 2012-09-26 | 国际商业机器公司 | 存储介质之间的数据迁移 |
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN102521147A (zh) * | 2011-11-17 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种使用高速非易失介质做缓存的管理方法 |
CN103678166A (zh) * | 2013-08-16 | 2014-03-26 | 记忆科技(深圳)有限公司 | 一种采用固态硬盘作为计算机高速缓存的实现方法及系统 |
CN105786401A (zh) * | 2014-12-25 | 2016-07-20 | 中国移动通信集团公司 | 服务器集群系统中的数据管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107229573A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230066084A1 (en) | Distributed storage system | |
US10523786B2 (en) | I/O bandwidth reduction using storage-level common page information | |
US10198215B2 (en) | System and method for multi-stream data write | |
US9946642B2 (en) | Distributed multimode storage management | |
US9800661B2 (en) | Distributed storage over shared multi-queued storage device | |
US11880579B2 (en) | Data migration method and apparatus | |
CN107209714B (zh) | 分布式存储系统及分布式存储系统的控制方法 | |
CN112889034A (zh) | 对数据块的内容驱动的分布进行擦除编码 | |
CN107924291B (zh) | 存储系统 | |
WO2019015479A1 (zh) | 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘 | |
CN111679795B (zh) | 无锁并发io处理方法及其装置 | |
US10929066B1 (en) | User stream aware file systems with user stream detection | |
CN107229573B (zh) | 一种基于固态硬盘的弹性高可用缓存方法 | |
US9720608B2 (en) | Storage system | |
WO2023065654A1 (zh) | 一种数据写入方法以及相关设备 | |
US11704053B1 (en) | Optimization for direct writes to raid stripes | |
US11868248B2 (en) | Optimization for garbage collection in a storage system | |
CN108491290A (zh) | 一种数据写入方法及装置 | |
US12045505B2 (en) | Scanning pages of shared memory | |
TW201814522A (zh) | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 | |
CN105068896A (zh) | 基于raid备份的数据处理方法及装置 | |
US11079956B2 (en) | Storage system and storage control method | |
US10853257B1 (en) | Zero detection within sub-track compression domains | |
US11144445B1 (en) | Use of compression domains that are more granular than storage allocation units | |
US11449237B2 (en) | Targetless snapshot system replication data pointer table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |