CN107133334A - 基于高带宽存储系统的数据同步方法 - Google Patents
基于高带宽存储系统的数据同步方法 Download PDFInfo
- Publication number
- CN107133334A CN107133334A CN201710337773.2A CN201710337773A CN107133334A CN 107133334 A CN107133334 A CN 107133334A CN 201710337773 A CN201710337773 A CN 201710337773A CN 107133334 A CN107133334 A CN 107133334A
- Authority
- CN
- China
- Prior art keywords
- cluster
- ssd
- identifier
- data
- nodes
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于高带宽存储系统的数据同步方法,该方法包括:将簇封装成定长数据段,执行纠删码算法生成多个编码对象,分散到不同节点上存储;当收到文件读取请求后,解析文件标识符查询相应文件的簇列表,然后查询出其所属的对象的标识符和编码对象组的标识符,一并存储到专门的结构;根据该结构中信息读取各簇的数据;查找到对象所存放的位置,然后通过簇标识符在该对象的簇索引内进行查找,找到该簇在对象内的偏移地址和长度,最后读取区间的数据;按照所述结构中指定的顺序拼装成原始文件。本发明提出了一种基于高带宽存储系统的数据同步方法,实现了高性能、低功耗的SSD与高带宽容灾分布式存储架构的有机结合。
Description
技术领域
本发明涉及离线存储,特别涉及一种基于高带宽存储系统的数据同步方法。
背景技术
社会已经进入了一个数据爆炸式增长的时代。无处不在的传感器、移动网络、社交网络、微博、网页查询浏览记录、通话记录、消费记录无时无刻不在产生着大量数据。存储领域在大数据时代也面临着诸多挑战。这些挑战不仅仅是海量数据的存储问题,更重要的是从体系结构、系统软件等方面对上层应用高效地处理数据提供相应的支撑,以满足不同的上层应用需求。存储领域从上层软件系统到底层存储设备都正发生着改变。众所周知,SSD固态存储可兼容传统存储系统,并具有高性能、低功耗等优点,被广泛使用在IO密集型应用环境中替换传统机械硬盘。而目前正在使用的云计算平台大多是基于机械磁盘设备进行设计的,SSD由于在内部机制上与磁盘设备完全不同,这使得针对机械磁盘设计的软件系统没有充分利用SSD的特性。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于高带宽存储系统的数据同步方法,包括:
SSD节点在接收到文件划分成的簇时,将其封装成定长数据段,
随后将多个定长数据段分成一组,执行纠删码算法生成多个编码对象;
将编码对象组内的各个对象分散到不同节点上存储;
对于同一个或同一批文件所属的新簇,将其封装并分组编码生成的编码对象组调度到同一组节点存储;
当接收到文件读取请求后,解析请求中附带的文件标识符;
根据文件标识符查询相应文件的簇列表,包括查询该文件包含的所有簇的标识符,然后根据各簇的标识符查询出其所属的对象的标识符,根据对象的标识符查询出对象所属的编码对象组的标识符,再通过对象组的标识符查询出该对象所在的SSD节点的标识符;
全部查询完成后,将文件所包含的所有簇的标识符列表、各簇所属对象的标识符以及该对象所在SSD节点的标识符信息都一并存储到专门的结构;
根据该结构中包含的簇标识符列表和各簇的存放位置信息,从相应的SSD节点读取各簇的数据;
SSD节点通过对象标识符查找到对象所存放的位置,然后通过簇标识符在该对象的簇索引内进行查找,找到该簇在对象内的偏移地址和长度,最后读取相应区间的数据;
按照所述结构中指定的顺序拼装到一起,最终组合成原始文件。
优选地,所述分布式存储系统当检测到某个SSD节点失效时,其首先查询该节点所包含的所有对象的信息,然后调度系统内多个健康节点同时开展恢复工作,各自负责一部分对象的恢复;
当SSD节点超载时,通过纠删编码算法由其他轻载节点上的对象计算出该超载节点上的对象,进而将对象副本临时存放在这些轻载节点上并对外提供服务,减轻超载节点的负担;
使用区域映射表管理数据均衡化,维护簇对应的SSD节点之间的映射关系;当某个簇位于SSD节点上的所有数据迁移至备用节点后,原有映射记录与写时复制产生的新版本映射记录进行合并;区域映射表还将数据请求重定向到对应的SSD节点,为记录对应每个SSD节点上对应文件的具体位置,区域映射表中的记录以文件或数据库的形式进行存储,并使用散列索引存储在内存中;内存中的映射记录变化将被同步的写入存储层;
当检测模块检测到写性能下降后,选择使用发生写性能下降的SSD节点的相应簇进行数据迁移;使用节点映射表节点映射表快速定位到每个SSD节点中存储的簇,节点映射表和区域映射表之间是逆向映射关系;从两个方面对每一个簇进行监控:1)首先是每个簇落入的数据写请求总次数,代表着这个簇的写频度;2)其次是每个SSD节点上各个簇的写频度排序,根据写频度的排序,判断出每个SSD节点上;当发生写性能下降的SSD节点上的簇被选择迁移时,选取写请求数据量最少的节点作为迁移的目标。
本发明相比现有技术,具有以下优点:
本发明提出了一种基于高带宽存储系统的数据同步方法,实现了高性能、低功耗的SSD与高带宽容灾分布式存储架构的有机结合。
附图说明
图1是根据本发明实施例的基于高带宽存储系统的数据同步方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种基于高带宽存储系统的数据同步方法。图1是根据本发明实施例的基于高带宽存储系统的数据同步方法流程图。
本发明将SSD的读写性能与分布式存储的优点相结合,实现基于SSD的分布式存储方案。本发明的分布式存储系统使用SSD作为缓存挂载用户态文件系统到指定目录,对用户态文件系统进行访问,而包括缓存替换在内的内部策略对上层应用透明。数据以桶的形式进行组织,而每个桶数据以键进行访问,键在桶数据被写入后生成。存储的文件被切分为固定大小的簇,每个簇以桶的形式存储到分布式存储中。
系统根据功能分为三个模块:缓存管理模块、配置管理模块和分布式存储模块。缓存管理模块用于异步的处理数据修改请求,并且对有限的SSD缓存空间进行管理。配置管理模块用于管理用户态文件系统的配置,将配置记录存储在SSD中,每次文件系统挂载时从SSD中读出。分布式存储模块用于将所有文件系统调用传递给用户态的缓存管理模块和配置管理模块。
当上层应用程序访问存储在分布式存储系统中的数据时,执行以下操作:(1)分布式存储模块将文件系统调用重定向至配置管理模块;(2)配置管理模块通过查询配置记录,查询得出文件系统调用所操作的具体簇,并进一步查询出簇所对应的分布式存储内桶的键;(3)通过该键查询缓存管理模块,如果所需要的簇位于SSD中,则命中请求并返回相应的数据,如果所需要的簇不在SSD中,使用分布式存储接口远程获得相应的数据,再将数据载入到内存返回文件系统调用,之后将数据缓存到SSD中。
首先利用数据压缩算法减小簇自身的空间,其次利用簇之间的冗余性来避免了同样的簇被重复存储。在去重时,簇被分为复合簇和基本簇。复合簇封装了多个需要进一步抽取的子簇;基本簇是分散数据结构的最基本的表示。根据不同的簇类型,从簇中抽取对象,然后利用散列函数计算对象的特征值;去重具体过程如下:
步骤1.将基本簇传送给簇抽取器,对于不同类型的复合簇采用不同的簇抽取算法。通过分析簇头来确定复合簇和潜在簇的编码格式。
步骤2.为每个基本簇分配一个全局唯一的称为特征值,使用SHA散列函数来计算。
步骤3.通过簇索引,将已存储簇的特征值进行比较,当发现当前簇的特征值和已有簇特征值相等时,则索引当前簇为已有簇的引用,更新簇索引。
步骤4.存储非重复簇。
在步骤3的去重过程开始前,进一步将簇分为可修改簇集和不可修改簇集,设置合适的去重粒度。设定簇抽取阈值。确定簇候选阈值的取值范围;对于原始对象集合中各种类型的簇,遍历候选去重粒度取值范围中的每个候选粒度值,对于超过候选粒度值的簇按照该值进行划分,并计算该候选去重粒度产生的数据压缩比,数据压缩比为初始簇集进行簇去重前的数据总量除以按照候选粒度值进行簇去重之后的数据总量得到的值:对于不可修改簇,将按照对象的原始大小从簇中抽取。簇结构的不同部分通过引用其他簇来去重,根据簇结构进行分段,分段的大小不低于所设定的可修改簇的平均大小。对于簇的每个段生成特征值;和系统中其他的已有特征值比较;对于识别出第2次有相同特征值的段,在索引中索引该块为新块的引用;对于没有识别相同前面的块,存储该块并在索引中索引该块为其本身的引用。
为了提高系统整体读写性能,缓存管理模块在SSD中缓存存储对象。当上层应用程序需要对簇进行读写时,缓存管理模块首先将相应的簇取回内存进行数据操作,而后缓存到SSD中固定大小的缓存区中。在缓存替换中,距离LRU位置分别为L/8、L/4和L/2的位置设置三个不同状态位,用于区分读和写操作引入缓存的数据,L为LRU栈的长度。由读操作引入存储对象缓存的数据存储在LRU栈的状态位。在缓存启动阶段,在固定时间间隔内确定最终使用的状态位的位置。收集运行时各个状态位的位置的开销Cost,并通过比较该值确定最终选取的状态位的位置。Cost的计算方法如下:
Cost=CW/CR*NW+NR
其中,CW和CR对应写操作和读操作的相同次数的计价,而NW是记录的写操作的操作次数,NR记录读操作的操作次数。
SSD节点在接收到去重之后的簇时,先将它们封装成定长数据段,随后将多个定长数据段分成一组,然后执行特定的纠删码算法,生成多个编码对象。随后,SSD节点将编码对象组内的各个对象分散到包括自身在内的不同节点上存储。对于同一个或同一批文件所属的新簇,其封装并分组编码生成的编码对象组被调度到同一组节点存储。
当接收到文件读取请求后,系统执行以下的操作过程:
(1)解析请求中附带的文件标识符;
(2)根据文件标识符查询相应文件的簇列表。为此,首先查询该文件包含的所有簇的标识符,然后根据各簇的标识符查询出其所属的对象的标识符,然后根据对象的标识符查询出对象所属的编码对象组的标识符,然后再通过对象组的标识符查询出该对象所在的SSD节点的标识符。全部查询完成后,将文件所包含的所有簇的标识符列表、各簇所属对象的标识符以及该对象所在SSD节点的标识符信息都一并存储到专门的结构。
(3)根据该结构中包含的簇标识符列表和各簇的存放位置信息,从相应的SSD节点读取各簇的数据。SSD节点先通过对象标识符查找到对象所存放的位置,然后通过簇标识符在该对象的簇索引内进行查找,找到该簇在对象内的偏移地址和长度,最后根据上述信息读取相应区间的数据。按照结构中指定的顺序拼装到一起,最终组合成原始文件。
系统采用动态的分布式的并行恢复机制:当检测到某个SSD节点失效时,其首先查询该节点所包含的所有对象的信息,然后调度系统内多个健康节点同时开展恢复工作,各自负责一部分对象的恢复。
当SSD节点超载时,可以通过纠删编码算法由其他轻载节点上的对象计算出该超载节点上的对象,进而将对象副本临时存放在这些轻载节点上并对外提供服务,减轻超载节点的负担。
针对读写事务处理方面,本发明的方法在设备内部同时支持原子事务以及块文件事务。针对不同类型的事务,对上层软件直接提供相应的事务处理接口。在SSD写性能下降发生后将数据以合适粒度的方式进行节点间迁移。
为支持数据库和文件块,本发明在SSD转换层中增加了事务处理逻辑,同时扩展设备接口,直接对软件层提供事务处理接口。使用事务元数据段和首块列表段存储处理文件块事务和原子事务需要的信息,事务元数据段中每条事务的信息包含事务写入的所有块的地址映射,首块列表段用户存储用户数据。事务还原的同时可以保证转换层映射信息的回复。对于文件块事务,每个事务的事务元数据中均包含事务所有块的地址映射信息。对于原子事务,通过首块列表段可以查询出该事务的状态,继而可以保证事务内所有块地址映射信息正确性。事务元数据段和首块列表段可以被用作检索事务内簇的索引。对于文件块事务,事务数据在通过接口传到SSD固件层时,首先写入该事务的事务元数据,然后继续写入事务数据。
以下方面描述了本发明文件块事务提交的具体过程,该提供了比传统块文件系统更为严格的数据保护。1、设备接收到软件系统传入的文件块事务写入请求,读取空块列表中的数据,给静态块分配空闲的物理块,将包括事务标识和事务内所有块地址映射信息的事务信息以及当前已处于提交状态的事务标识写入SSD的事务元数据段,每一个文件块事务拥有一条事务元数据;2、将文件块事务所有数据写入刚分配的物理块中,物理块还记录了事务标识;3、当文件块事务内的所有数据均存储到SSD中后,在SSD的内存中表示该事务处于已提交状态。已提交的文件块事务标识将被记录到后续文件块的事务元数据中,当预定时长内没有后续文件块事务时或SSD收到关机信号后,已提交的文件块事务被单独写入一条空事务元数据中。
事务元数据是文件块事务重要的元信息,包含了当前事务的标识、地址映射信息以及其它事务的提交记录。为了保证事务元数据的写入不被中断,将事务元数据存储于单个SSD块中。使用块数据段存储文件块事务信息,包括事务标识等信息,其余则存储文件块事务中所有SSD块的地址映射信息。SSD块校验段存储数据校验等信息。映射信息的逻辑地址来自软件层,物理地址则通过查询空块表进行分配得到。
文件块事务的事务元数据信息存储在事务元数据段,这样当故障还原时,依次扫描事务元数据段即可对所有文件块事务状态进行确认。
在写入事务元数据之后,文件块事务才开始写入事务内的用户数据。将文件块事务中的逻辑块数据写入事先分配的物理地址,文件块事务块校验区段还包含了事务标识信息。
文件块事务的事务元数据段是一个顺序结构,后续事务的事务元数据中如果包含前驱事务的事务标识,则表示该事务在后续事务开始写入时已经处于提交状态。如果后续事务中存在前驱事务的事务标识,则代表有一条从后续事务指向前驱事务的有向边,那么位于事务元数据段中的事务构成了一个有向无环图,被指向的事务表明后续事务中的事务元数据包含其提交记录,则为处于已提交状态的事务。在预定义时长内没有后续文件块事务的到来或者SSD收到了关机信号,则已提交事务不会在存储器中一直等待,而在超过了一定时间阈值后写入空事务元数据到事务元数据段中。
对于原子事务,其在事务开始时,其所需要修改的数据并没有完全确定。为了能够快速还原,所有原子事务的首块记录在SSD固定位置,也即首块列表;首块校验区段除有一个指向下一个预分配块的指针之外,还有一个指向预分配的原子事务尾块指针。由事务中所有块通过校验区段中存储的指针构成环来决定事务是否提交,在写入当前块时,实现分配好写入下一个物理块的地址,并将这个地址写入校验区段中的下一指针,当原子事务写入最后一个块时,该块的校验区段指针下一指针指向首块的物理地址,从而通过这样的形式构成了环状结构。在故障还原时,通过首块校验区段直接读取原子事务的尾指针判断该事务是否提交。
文件块事务在还原时,到SSD固定位置寻找事务元数据段最后一条记录,从最后一条记录开始反向进行扫描。根据事务元数据中的映射信息,逐个读取事务中的所有物理块,当物理块被读取后,确认物理块校验区段中的事务标识是否与当前事务标识一致,如果确定事务并未写完成,则进行回滚。
在对原子事务进行还原时,首先将在首块列表段找到正在运行的原子事务的首块,接着根据SSD类型的不同,采用不同的策略判断事务状态。对于支持块内随机编程的固态存储,根据原子事务首块中存有的尾指针直接读取原子事务的尾块,从而从尾块是否为空判断出事务是否完成。对于仅支持顺序编程的固态存储,通过从原子事务首块中存储的下一指针开始逐个读取原子事务所有物理块数据,如果最终原子事务所有物理块构成环状结构,这表明事务已完成,否则将事务回滚。对需要回滚的原子事务中的所有块标记为无效,将已提交原子事务中所有块的地址映射信息写入映射记录段中。
转换层中映射数据存储在SSD的两个位置,即映射记录段和事务元数据段。事务元数据段中存储了预分配的文件块事务地址映射关系,这部分地址映射数据在事务元数据被回收之前被写回映射记录段。对于文件块事务,写入前分配物理块,将事务内所有块的地址映射信息写入事务元数据中。完成数据写入之后,将映射信息写入存储器中。对于原子事务,事务内的所有块写入SSD后,其映射信息首先在存储器中更新,其次将被立即写入SSD中。启动时,首先读取事务元数据段中的映射数据并载入内存,这部分映射数据将在内存中常驻直至其被写回至映射记录段。
本发明采用于下数据部署过程以缓解写性能下降问题,即将文件划分为固定大小的簇,并以簇为单位进行均衡化。当检测到发生写性能下降后,通过动态选择将簇存储在性能下降节点上的数据迁移到未下降的SSD节点上。基于上述数据部署方案,同时在数据初始部署时以簇为单位预留一部分SSD节点。当某个SSD节点上发生写入问题后,称为异常节点,动态的将簇存储在异常节点上的数据迁移到预留节点上。
本发明利用写性能检测模块检测SSD节点写性能下降。检测模块使用数据请求延迟作为指标判断SSD节点是否存在性能下降问题。为了消除网络延迟对于记录的数据的影响,检测模块在记录延迟时减去网络层延迟,只记录读写层完成写请求造成的延迟。
假设Li代表检测模块记录的第i个写请求的延迟,则当连续N个延迟的方差小于α时,也即:
称这N个连续的写请求延迟构成了一个平台,其中延迟平均值为:
被记录为一次经过处理后的平台写请求延迟,如果某个读写节点前后两次记录的平台写请求延迟的比例小于一个特定的值θ,也即:
则代表该SSD节点出现了写性能下降,其中α和β是与SSD相关的参数,而N根据检测模块的精度需求来确定。
在数据均衡化方面,使用区域映射表进行管理,维护簇对应的SSD节点之间的映射关系。当某个簇位于SSD节点上的所有数据迁移至备用节点后,原有映射记录与写时复制产生的新版本映射记录进行合并。此外,区域映射表还将数据请求重定向到对应的SSD节点,为了记录对应每个SSD节点上对应文件的具体位置,区域映射表中的记录以文件或数据库的形式进行存储,并使用散列索引存储在内存中。内存中的映射记录变化将被同步的写入存储层以保证异常状态下的一致性。
当检测模块检测到写性能下降后,分析器模块选择使用发生写性能下降的SSD节点的相应簇进行数据迁移。使用节点映射表节点映射表快速定位到每个SSD节点中存储的簇,节点映射表和区域映射表之间是逆向映射关系。分析器从两个方面对每一个簇进行监控:1)首先是每个簇落入的数据写请求总次数,代表着这个簇的写频度;2)其次是每个SSD节点上各个簇的写频度排序,根据写频度的排序,判断出每个SSD节点上。当发生写性能下降的SSD节点上的簇被选择迁移时,选取写请求数据量最少的节点作为迁移的目标。
数据迁移初始化过程中,数据被切分为簇,分别用于追踪文件块和SSD节点之间的映射关系的区域映射表和节点映射表被初始化为空,并随着簇被分配到不同SSD节点而不断被追加记录。初始化过程之后进入一个循环服务进程,接受并行存储系统的读写请求。在服务进程中,区域映射表和节点映射表的内容根据写请求进行实时更新,同时检测写性能下降是否发生。查询区域映射表得到具体每个簇存储SSD节点位置;对于写请求,分配一个新的簇用于存储数据,同时新的记录被追加到区域映射表和节点映射表中。一旦写性能下降在某个SSD节点被检测到之后,节点映射表用于确定异常节点上将要被迁移的簇以及迁移簇的目的SSD节点。接着写频度较高的簇被迁移到被选择的写入数据量较少的SSD节点。对于发出迁移请求的SSD节点,禁止被选择为数据迁移的目的SSD节点。
在篡改检测环节,本发明将块级规则检测信息直接存储在转换层中,使用单个比特位标志是否需要进行进一步规则检测,减少了不必要的簇检测,并且在数据擦除前就进行篡改检测,本发明根据不同的用户身份具有不同的使用模式,在管理员模式下,将块级规则写入设备内部特定位置,并保证这部分数据对普通用户不可见。管理员根据恶意软件的行为制定基于文件语义的检测规则,通过簇与文件语义转换层将文件语义转换成簇语义,最后将检测规则发送给设备。
将SSD内部存储空间划分为用户数据存储区与和规则存储区,其中,用户数据存储区使用普通的块设备接口进行访问,但是对规则存储区的修改需要使用专用接口。规则存储区存储块级检测规则,同时还存储块级存储检测到的异常行为,防止用户程序对规则存储区的数据进行修改。检测规则被存储在设备的固定位置,同时在设备启动时随着转换层数据被一起载入到设备内部存储器中。
综上所述,本发明提出了一种基于高带宽存储系统的数据同步方法,实现了高性能、低功耗的SSD与高带宽容灾分布式存储架构的有机结合。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (2)
1.一种基于高带宽存储系统的数据同步方法,用于在基于SSD的分布式存储系统中进行数据存储,其特征在于,包括:
SSD节点在接收到文件划分成的簇时,将其封装成定长数据段,
随后将多个定长数据段分成一组,执行纠删码算法生成多个编码对象;
将编码对象组内的各个对象分散到不同节点上存储;
对于同一个或同一批文件所属的新簇,将其封装并分组编码生成的编码对象组调度到同一组节点存储;
当接收到文件读取请求后,解析请求中附带的文件标识符;
根据文件标识符查询相应文件的簇列表,包括查询该文件包含的所有簇的标识符,然后根据各簇的标识符查询出其所属的对象的标识符,根据对象的标识符查询出对象所属的编码对象组的标识符,再通过对象组的标识符查询出该对象所在的SSD节点的标识符;
全部查询完成后,将文件所包含的所有簇的标识符列表、各簇所属对象的标识符以及该对象所在SSD节点的标识符信息都一并存储到专门的结构;
根据该结构中包含的簇标识符列表和各簇的存放位置信息,从相应的SSD节点读取各簇的数据;
SSD节点通过对象标识符查找到对象所存放的位置,然后通过簇标识符在该对象的簇索引内进行查找,找到该簇在对象内的偏移地址和长度,最后读取相应区间的数据;
按照所述结构中指定的顺序拼装到一起,最终组合成原始文件。
2.根据权利要求1所述的方法,其特征在于,所述分布式存储系统当检测到某个SSD节点失效时,其首先查询该节点所包含的所有对象的信息,然后调度系统内多个健康节点同时开展恢复工作,各自负责一部分对象的恢复;
当SSD节点超载时,通过纠删编码算法由其他轻载节点上的对象计算出该超载节点上的对象,进而将对象副本临时存放在这些轻载节点上并对外提供服务,减轻超载节点的负担;
使用区域映射表管理数据均衡化,维护簇对应的SSD节点之间的映射关系;当某个簇位于SSD节点上的所有数据迁移至备用节点后,原有映射记录与写时复制产生的新版本映射记录进行合并;区域映射表还将数据请求重定向到对应的SSD节点,为记录对应每个SSD节点上对应文件的具体位置,区域映射表中的记录以文件或数据库的形式进行存储,并使用散列索引存储在内存中;内存中的映射记录变化将被同步的写入存储层;
当检测模块检测到写性能下降后,选择使用发生写性能下降的SSD节点的相应簇进行数据迁移;使用节点映射表节点映射表快速定位到每个SSD节点中存储的簇,节点映射表和区域映射表之间是逆向映射关系;从两个方面对每一个簇进行监控:1)首先是每个簇落入的数据写请求总次数,代表着这个簇的写频度;2)其次是每个SSD节点上各个簇的写频度排序,根据写频度的排序,判断出每个SSD节点上;当发生写性能下降的SSD节点上的簇被选择迁移时,选取写请求数据量最少的节点作为迁移的目标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710337773.2A CN107133334B (zh) | 2017-05-15 | 2017-05-15 | 基于高带宽存储系统的数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710337773.2A CN107133334B (zh) | 2017-05-15 | 2017-05-15 | 基于高带宽存储系统的数据同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107133334A true CN107133334A (zh) | 2017-09-05 |
CN107133334B CN107133334B (zh) | 2020-01-14 |
Family
ID=59733094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710337773.2A Expired - Fee Related CN107133334B (zh) | 2017-05-15 | 2017-05-15 | 基于高带宽存储系统的数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133334B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669622A (zh) * | 2017-10-13 | 2019-04-23 | 杭州海康威视系统技术有限公司 | 一种文件管理方法、文件管理装置、电子设备及存储介质 |
CN109799947A (zh) * | 2017-11-16 | 2019-05-24 | 浙江宇视科技有限公司 | 分布式存储方法及装置 |
CN110324395A (zh) * | 2019-01-31 | 2019-10-11 | 林德(中国)叉车有限公司 | 一种基于双重链的iot设备数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
US9330158B1 (en) * | 2013-05-20 | 2016-05-03 | Amazon Technologies, Inc. | Range query capacity allocation |
US9342528B2 (en) * | 2010-04-01 | 2016-05-17 | Avere Systems, Inc. | Method and apparatus for tiered storage |
CN106027638A (zh) * | 2016-05-18 | 2016-10-12 | 华中科技大学 | 一种基于混合编码的hadoop数据分发方法 |
-
2017
- 2017-05-15 CN CN201710337773.2A patent/CN107133334B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9342528B2 (en) * | 2010-04-01 | 2016-05-17 | Avere Systems, Inc. | Method and apparatus for tiered storage |
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
US9330158B1 (en) * | 2013-05-20 | 2016-05-03 | Amazon Technologies, Inc. | Range query capacity allocation |
CN106027638A (zh) * | 2016-05-18 | 2016-10-12 | 华中科技大学 | 一种基于混合编码的hadoop数据分发方法 |
Non-Patent Citations (2)
Title |
---|
A.KAITOUA ETC.: "Hadoop Extensions for Distributed Computing on Reconfigurable", 《ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION》 * |
梅飞 等: "SSDKV:一种SSD友好的键值对存储系统", 《计算机工程与科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669622A (zh) * | 2017-10-13 | 2019-04-23 | 杭州海康威视系统技术有限公司 | 一种文件管理方法、文件管理装置、电子设备及存储介质 |
CN109799947A (zh) * | 2017-11-16 | 2019-05-24 | 浙江宇视科技有限公司 | 分布式存储方法及装置 |
CN110324395A (zh) * | 2019-01-31 | 2019-10-11 | 林德(中国)叉车有限公司 | 一种基于双重链的iot设备数据处理方法 |
CN110324395B (zh) * | 2019-01-31 | 2022-04-19 | 林德(中国)叉车有限公司 | 一种基于双重链的iot设备数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107133334B (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031675B1 (en) | Method and system for tiering data | |
US9830350B2 (en) | In-memory database system | |
US8429134B2 (en) | Distributed database recovery | |
US7930559B1 (en) | Decoupled data stream and access structures | |
US7640262B1 (en) | Positional allocation | |
US7720892B1 (en) | Bulk updates and tape synchronization | |
CN103874980B (zh) | 存储系统中的映射 | |
CN103458023B (zh) | 分布式闪存存储系统 | |
CN101501623B (zh) | 感知文件系统的块存储系统、装置和方法 | |
US20170293450A1 (en) | Integrated Flash Management and Deduplication with Marker Based Reference Set Handling | |
CN109697016B (zh) | 用于改进容器的存储性能的方法和装置 | |
US20150205680A1 (en) | Extent metadata update logging and checkpointing | |
CN110825748A (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
US8396840B1 (en) | System and method for targeted consistency improvement in a distributed storage system | |
JP5233233B2 (ja) | 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム | |
CN105160039A (zh) | 一种基于大数据的查询方法 | |
CN105117502A (zh) | 一种基于大数据的检索方法 | |
CN115427941A (zh) | 数据管理系统和控制的方法 | |
US11144508B2 (en) | Region-integrated data deduplication implementing a multi-lifetime duplicate finder | |
CN114281989B (zh) | 基于文本相似度的数据去重方法、装置及存储介质和服务器 | |
CN104050103A (zh) | 一种用于数据恢复的缓存替换方法与系统 | |
CN107133334A (zh) | 基于高带宽存储系统的数据同步方法 | |
CN104156432A (zh) | 一种文件访问方法 | |
CN102722450B (zh) | 一种基于位置敏感哈希的删冗块设备存储方法 | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200114 Termination date: 20210515 |
|
CF01 | Termination of patent right due to non-payment of annual fee |