CN116361225B - 一种实现点对点跨区域nas的系统 - Google Patents
一种实现点对点跨区域nas的系统 Download PDFInfo
- Publication number
- CN116361225B CN116361225B CN202310387369.1A CN202310387369A CN116361225B CN 116361225 B CN116361225 B CN 116361225B CN 202310387369 A CN202310387369 A CN 202310387369A CN 116361225 B CN116361225 B CN 116361225B
- Authority
- CN
- China
- Prior art keywords
- log
- metadata
- parallel
- region
- data
- 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
- 244000035744 Hura crepitans Species 0.000 claims abstract description 50
- 238000003860 storage Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000002688 persistence Effects 0.000 claims abstract description 10
- 239000003999 initiator Substances 0.000 claims description 19
- 238000012937 correction Methods 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 4
- 238000007405 data analysis Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000003672 processing method Methods 0.000 abstract 2
- 239000012634 fragment Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 206010033799 Paralysis Diseases 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 description 2
- 102100036366 ProSAAS Human genes 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- 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/13—File access structures, e.g. distributed indices
-
- 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/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- 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/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
Abstract
本发明涉及一种实现点对点跨区域NAS的系统和数据处理方法。NAS系统包括跨区域存储系统和带反馈并行日志系统,跨区域存储系统包括设置在每个区域独立的存储服务器,带反馈并行日志系统包括设置在每个区域独立的带存储节点状态反馈的并行日志服务器;每个区域在这个并行日志服务器上独立记录各种元数据和操作,然后使用存储服务器来存储数据,同时存储服务器还在多个区域间进行并行日志的交换,以及数据和元数据同步。数据处理方法包括异步跨区域并行日志数据块的合并同步和修正的方法,最终并行日志只读版本发布和各区域只读并行日志持久化并反馈给元数据沙箱系统。本发明实现可以跨区域高效稳定地数据共享,同时又兼具安全性和稳定性。
Description
技术领域
本发明涉及一种基于带反馈并行日志系统实现点对点跨区域NAS的系统。
背景技术
大数据现在已经无处不在,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。各行各业的企业或者部门都希望利用大数据挖掘自身更大的价值,那么利用数据的第一步就是存储数据,因此伴随着大数据的诞生也让存储进入了一个高速发展期。
同时,在技术区域性发展的今天,企业需要根据不同区域技术发展的情况,考虑把各个职能部门建设在不同区域以优化发展和优化成本结构。对于大多数现代化公司而言,数据不言而喻已经成为了最终要的资产。各个部门在协同工作的期间,存在大量数据需要部门之间进行共享。此时,如何高效高性价比存储数据,以及数据如何进行高效稳定地相互共享,就变成了公司亟待解决的问题。
NAS(Network Attached Storage)网络存储基于标准网络协议实现数据传输,为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份。一般企业级NAS支持CIFS、NFS和FTP等协议,企业内部用户通过常用的操作系统可以直接对NAS进行文件存取,各种企业应用软件也可以无需修改很轻松地访问NAS文件。
但NAS由于本身采用的协议的特性,往往只能用于局域网内部,这些协议对于互联网这种不对称且会出现一定不稳定性线路的容忍度比较差,容易出现文件或者文件系统损坏的情况。
目前,解决这些问题的方法从模式上分,分为了两大类,一是租用协同办公的SAAS平台,另一个是公司花费大量成本在总部建设存储中心,各部门或区域分支通过专线进行数据访问。
前者从性价比来说是比较高的,节省了机房建设维护和专线费用,但数据存在外泄风险,而且当互联网线路或SAAS提供商一旦出现问题,办公就面临瘫痪的风险。
后者因为使用自建机房和存储,并且采用专线访问,数据安全能够有效得以保障,但需要投入大量人力物力以及财力,而且同样存在专线如果出现问题,办公也会面临瘫痪风险。
发明内容
本发明针对上述问题,提供一种实现点对点跨区域NAS的系统,实现高效稳定地数据共享,同时又兼具安全性和稳定性。
为此,本发明采取如下技术方案:一种实现点对点跨区域NAS的系统,其特征在于包括跨区域存储系统和带反馈并行日志系统,所述的跨区域存储系统包括设置在每个区域独立的存储服务器,所述的带反馈并行日志系统包括设置在每个区域独立的带存储节点状态反馈的并行日志服务器;每个区域在这个并行日志服务器上独立记录各种元数据和操作,然后使用存储服务器来存储数据,同时存储服务器还在多个区域间进行并行日志的交换,以及数据和元数据同步;
还包括一个动态可调节的元数据沙箱系统,其根据支撑它的带反馈并行日志系统和跨区域存储系统动态生成元数据结构,所述的元数据沙箱系统能利用写事件驱动自动生成快照;
对于合并冲突的反馈请求通过扫描跨区域存储系统中已经写入的数据内容来判断并行冲突日志的保留和丢弃;
通过“写入努力值”作为加权值的多区域数据分布一致性算法来协调冲突,即首先扫描多区域存储系统中对应冲突的文件内容数据,因为冲突都存在于异步模式下两个或以上区域对同一个文件进行了创建、修改或者写入,所以先扫描对应的所有文件内容数据,此时如果所有数据都属于冲突日志中的一方,则保留这一方日志丢弃所有其他冲突日志即可;
其次,如果文件内容并不全部属于冲突日志中的某一方,那么采用加权分数投票的方式来选出应该保留的一方,加权分数的计算方法是对应冲突日志中的某一方文件内容数据在本区域已经写入的数量百分比作为系数乘以这一方的文件内容数据已经复制到多区域中产生的副本数;
最后,得到一个既考虑了文件内容写入广度和深度的决定,将它反馈给并行日志合并过程进行修正,至此,合并同步和修正过程完成并最终生成只读的并行日志版本,由发起者向各区域广播发布并行日志的当前只读版本,各个区域进行持久化并反馈自己的元数据沙箱系统。
作为优选,所述的元数据沙箱系统在启动时才进行构建,加载本区域带反馈并行日志系统中的日志,并将日志中与文件系统目录结构和文件属性的相关日志数据分析加载到一个混合分层二叉搜索树中。
作为优选,所述的混合分层二叉搜索树采用目录层级式环形散列表的形式存储文件系统结构,所述的目录层级式环形散列表的形式存储文件系统结构是让每个路径通过散列算法分布到散列环中的一个层级节点,接下来在每一个节点上建立一个多级散列双向链表来存储每个元数据内容,并且同时建立一个二叉搜索树来进行元数据索引。
作为优选,所述元数据沙箱系统的自动生成快照是指当上层有元数据需要写入时,检查自上次多区域合并同步和修正后沙箱稳定状态副本到当前时刻是否曾经有数据写入,有则忽略,没有则创建当前沙箱状态快照。
作为优选,所述的带反馈并行日志系统记录了文件系统中的用于灾难恢复的发生行为,同时还记录着元数据的所有相关操作和元数据内容,当上层有写操作发生时,首先在元数据沙箱系统中进行插入,然后元数据沙箱系统向带反馈并行日志系统发送操作日志和元数据,带反馈并行日志系统接收到以后将写入一个日志数据块,每个日志数据块中分为两个区域,一个操作日志区和一个元数据区。
作为优选,所述的带反馈并行日志系统接收来自沙箱的操作日志和元数据时,根据当前区域的uuid和时间戳生成一个唯一标识,这个唯一标识将来用于操作日志和元数据的关联,同时也可以记录这段日志的产生时间。
作为优选,每一个日志数据块都是双向链表中的一个节点,当一个日志数据块写满时,则生成下一个日志数据块继续进行记录,日志数据块的状态分为只读和写两个状态,每记录块会被持久化到下面的跨区域存储中,后期会异步进行日志数据块的跨区域合并同步和修正,执行完合并同步过程的日志数据块变为只读状态。
作为优选,还包括可以进行异步跨区域并行日志数据块的合并同步和修正,包括从其他区域获取并行日志块、各区域自行合并、依据跨区域存储的反馈修正并行日志、合并并行日志过程广播、最终并行日志只读版本发布和各区域只读并行日志持久化并反馈给元数据沙箱系统。
作为优选,在可调节间隔时间内,所有的区域中随机出现一个区域主动开始发起并行日志的合并,合并的目标为上次快照之后的所有可写并行日志数据块,发起者随即开始向各个区域请求区域并行日志,每个区域收到请求后向发起者发送封装好的所有待合并并行日志数据块,并同时自己也作为发起者向其他区域发起请求,以此循环往复直至每个区域都得到其他区域所有待合并并行日志数据块。
作为优选,在发起并行日志的合并过程中,如果发现在有效区域集合中有未能参与此过程的,则此次合并暂停,等待集合内部进行点对点连通性测试,并在测试过程中剔除离线区域,准备就绪后,再次触发开始上述过程;
如果发现只有某一个区域有并行日志数据块待合并,那么此次同步过程结束,由发起者向各区域广播发布并行日志的当前只读版本,各个区域自身进行持久化并反馈自己的元数据沙箱系统;如果多个区域都有待合并并行日志数据块,那么开始合并这些日志块,合并首先把无冲突部分进行合并,有冲突部分则向跨区域存储系统发起反馈请求。
本发明的有益效果在:本发明跨区域统一命名空间的企业级NAS系统可以在不同区域的部门和分支,访问各自局域网内部的NAS服务,都可以看见同样一个虚拟文件目录结构,并且可以像操作局域网内部NAS一样操作,底层的复杂元数据以及数据存储逻辑和并行日志交换等细节对于用户来说都是透明的,用户可以获得与单个本地文件系统一致的使用体验。最终实现可以跨区域高效稳定地数据共享,同时又兼具安全性和稳定性。
附图说明
图1为本发明的体系结构示意图。
图2为本发明中整个沙箱都运行在内存中的数据结构的原理图。
图3为本发明NPAL系统记录日志和元数据时的数据结构图。
图4为本发明形成统一命名空间虚拟文件系统的逻辑流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。
如图1所示,公开了基于带反馈并行日志系统实现点对点跨区域NAS的系统,包括跨区域存储系统、带反馈并行日志系统和一个动态可调节的元数据沙箱系统。
NAS系统在每个区域都有独立的存储服务器和带存储节点状态反馈的并行日志服务器,每个区域在这个并行日志服务器上独立记录各种元数据和操作,然后使用存储服务器来存储数据,同时存储服务器还在多个区域间进行并行日志的交换,以及数据和元数据同步。
通过上述的系统和部署,多个区域同时就可以各自看到一个统一命名空间的企业级NAS系统,并且在跨区域间网络出现问题时,不会影响当前区域的数据读写,也不会造成办公的瘫痪。为了后面描述方便,把带反馈并行日志系统缩写为NPAL(Next generationParallel Accounting Log)系统。
根据图1所示,元数据沙箱系统、NPAL系统和跨区域存储系统共同构成一个支撑向上提供兼容POSIX文件系统接口的体系结构,这样NAS的应用就可以透明地完成企业用户(多区域)进行统一命名空间的数据访问,并且无需关心数据所在地。
元数据沙箱系统实现
任何一种文件系统中的数据都会分为数据和元数据。数据是指文件中的实际落盘文件内容数据,而元数据指用来描述一个文件的特征属性的系统数据,诸如访问权限、文件拥有者以及文件内容数据分片的分布信息等等。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
传统的企业级NAS都是通过本地诸如XFS、EXT4或ZFS等等传统文件系统自身的元数据存储功能来实现元数据的读写的,但由于我们的后端并不是一个文件系统,而是一个多点对等的一个存储结构。因此,我们的元数据需要有容错性高和去中心化的弱一致性分布式的特点。
本发明通过一个元数据沙箱系统,它不同于普通文件系统的元数据记录数据库,它是一个动态可调节的元数据沙箱,它是根据支撑它的NPAL系统和跨区域存储系统动态生成元数据结构,并且高效运行在内存中,同时利用写事件驱动自动生成快照。
元数据沙箱之所以称之为沙箱,是因为它并不持久化,它在启动时才进行构建,加载本区域NPAL系统中的日志,并将日志中与文件系统目录结构和文件属性的相关日志数据分析加载到一个混合分层二叉搜索树中。
考虑到企业级NAS的海量数据特性,并且不能限制路径层级,因此混合分层二叉搜索树采用目录层级式环形散列表的形式存储文件系统结构。
首先让每个路径通过散列算法分布到散列环中的一个层级节点,接下来在每一个节点上建立一个多级散列双向链表来存储每个元数据内容,并且同时建立一个二叉搜索树来进行元数据索引。
这样可以让海量层级目录尽可能均匀分布在散列层级环里面,同时也不会让节点变得过多而难以维护和查找,并且在增加和删除目录时只需要将多级散列双向链表中的对应节点移动到环中另外一个节点下面即可。整个沙箱都运行在内存中,内存中数据结构的原理如图2所示。
图2中,一个元数据加入元数据沙箱时传入的是一个键值对,以虚拟文件系统的全路径作为元数据的key,以元数据的内容作为value。
当一个元数据插入进来,首先根据key计算散列值得到其应该所属的散列环中的层级节点,这样能够让多个层级落入同一个层级环节点的同时,也方便层级不断地增加或者减少时不会造成大量数据结构的重构。
在找到对应的层级节点后,根据目录结构把元数据插入到这个节点下对应的多级散列双向链表中的位置,然后根据key值新增一个二叉搜索树的节点。至此,一个关于路径和元数据的键值对就完成了插入元数据沙箱过程。无论是沙箱启动时的加载过程,还是有新文件写入系统时的过程,插入元数据的过程都是一样的。
另外一个方面,由于上述过程是本区域内部的元数据新增过程,所以这并不是最终沙箱稳定状态的副本,还需要依赖下面两个支撑系统来进行状态的多区域合并同步和修正。并且因为是弱一致性的系统,可能会出现多区域间冲突,所以需要一个沙箱快照以维持上次稳定状态。
这里,我们采用写事件驱动下的自动快照方式,即当上层有元数据需要写入时,检查自上次多区域合并同步和修正后沙箱稳定状态副本到当前时刻是否曾经有数据写入,有则忽略,没有则创建当前沙箱状态快照。由于沙箱完全存在于内存中,因此快照只需要对内存进行碎片处理并将当前沙箱占用内存进行只读标记处理,然后再开辟一片新内存区域进行后续元数据写入修改。
这种元数据沙箱的生成、组织和存放的方法直观上形成了一个本区域可见的统一命名空间的虚拟文件系统,为上层通过NAS操作文件和目录提供了完备的POSIX兼容接口。
NPAL系统实现
传统的日志型文件系统也包含日志,可以用来记录系统中发生的事件,并可以帮助管理者恢复系统状态,排查故障,查找漏洞,审计信息和改善安全性等。它也可以用来帮助系统管理者更好地了解系统的状态,发现不正常的活动并做出相应的反应。
NPAL系统之所以称之为带反馈并行日志系统,它和传统文件系统记录的日志不太相同,NPAL不仅仅记录了文件系统中的用于灾难恢复的发生行为,同时还记录着元数据的所有相关操作和元数据内容。并且,在跨区域的环境下,多个区域自身记录的时候是不需要通知其他区域的,只有在合并同步和修正时才会进行相互通信。
当上层有写操作发生时,首先在元数据沙箱中进行插入,然后元数据沙箱向NPAL系统发送操作日志和元数据。NPAL系统接收到以后将写入一个日志数据块,以512K作为一个日志数据块,每个日志数据块中分为两个区域,一个操作日志区和一个元数据区。
当接收来自沙箱的操作日志和元数据时,根据当前区域的uuid和时间戳生成一个唯一标识,这个唯一标识将来用于操作日志和元数据的关联,同时也可以记录这段日志的产生时间。
数据结构如图3所示,每一个日志数据块都是双向链表中的一个节点,当一个日志数据块写满时,则生成下一个日志数据块继续进行记录。日志数据块的状态分为只读和写两个状态,之所以需要这两个状态,是因为每个记录块都会被持久化到下面的跨区域存储中,后期会异步进行日志数据块的跨区域合并同步和修正,执行完合并同步过程的日志数据块将会变为只读状态,也就代表着块内部的内容不再能够被修改。
异步的跨区域并行日志数据块的合并同步和修正是由多个步骤组成,包括从其他区域并行日志块的获取、各区域自行合并、依据跨区域存储的反馈修正并行日志、合并并行日志过程广播、最终并行日志只读版本发布和各区域只读并行日志持久化并反馈给元数据沙箱。这些过程的逻辑是整个NPAL系统的核心,因为记录本身最终也是为了各区域间达到异步的弱一致性,并最终形成统一命名空间虚拟文件系统的目的。
具体的逻辑流程如图4所示,在可调节间隔时间内,所有的区域中随机出现一个区域主动开始发起并行日志的合并,合并的目标为上次快照之后的所有可写并行日志数据块。发起者随即开始向各个区域请求区域并行日志,每个区域收到请求后向发起者发送封装好的所有待合并并行日志数据块,并同时自己也作为发起者向其他区域发起请求,以此循环往复直至每个区域都得到其他区域所有待合并并行日志数据块。
在上述过程中,如果发现在有效区域集合中有未能参与此过程的,则此次合并暂停,等待集合内部进行点对点连通性测试,并在测试过程中剔除离线区域,准备就绪后,再次触发开始上述过程。
如果发现只有某一个区域有并行日志数据块待合并,那么此次同步过程结束,由发起者向各区域广播发布并行日志的当前只读版本,各个区域自身进行持久化并反馈自己的元数据沙箱。如果多个区域都有待合并并行日志数据块,那么就开始合并这些日志块,合并首先把无冲突部分进行合并,有冲突部分则向跨区域存储系统发起反馈请求。
由于跨区域存储系统是保存文件的内容数据,因此对于合并冲突发送来的反馈请求是根据文件内容数据来判定日志如何进行修正。因为我们认为数据内容的重要性要高于元数据,而正在合并的并行日志数据块是元数据的生成基础,所以对于合并冲突的反馈请求我们通过扫描跨区域存储系统中已经写入的数据内容来判断并行冲突日志的保留和丢弃。
这里我们用“写入努力值”作为加权值的多区域数据分布一致性算法来协调冲突,即首先扫描多区域存储系统中对应冲突的文件内容数据,因为冲突都存在于异步模式下两个或以上区域对同一个文件进行了创建、修改或者写入,所以先扫描对应的所有文件内容数据,此时如果所有数据都属于冲突日志中的一方,则保留这一方日志丢弃所有其他冲突日志即可。
其次,如果文件内容并不全部属于冲突日志中的某一方,那么采用加权分数投票的方式来选出应该保留的一方,加权分数的计算方法是对应冲突日志中的某一方文件内容数据在本区域已经写入的数量百分比作为系数乘以这一方的文件内容数据已经复制到多区域中产生的副本数。最后,得到一个既考虑了文件内容写入广度和深度的决定,将它反馈给并行日志合并过程进行修正。至此,合并同步和修正过程完成并最终生成只读的并行日志版本,由发起者向各区域广播发布并行日志的当前只读版本,各个区域进行持久化并反馈自己的元数据沙箱。
跨区域存储系统实现
这里的跨区域存储系统并不是一个完整的传统意义上的存储系统,它只是我们上述系统的一个辅助系统,只负责保存我们的文件内容数据和持久化的并行日志数据块,没有上述两个部分这个存储系统的数据都是不可见和无法使用的。
在保存文件内容数据时,我们采用动态调节的分片机制来分割一个文件,即当文件内容数据写入时,我们将所有数据分解为每512KB一片来落盘,不足512KB并不补足,因此落盘时有可能有小于512KB的分片,往往出现在文件内容数据的结尾。
出于安全性考虑,每个分片在落盘时可以支持用户提供的第三方加密插件进行加密,让加密操作变为灵活并且可配置的选项。
其中密钥可以使用用户自己的多区域密钥分发体系,加密算法也可以让用户采用自定义的算法对每个分片独立加密,这样充分保证了数据的安全性。
文件内容数据被写入时,文件内容数据采用积极的跨区域同步复制模式。即当一个文件内容数据分片被写完之后,尽可能将它复制到各个区域。这里也有可能出现冲突问题,一旦出现冲突,则在出现冲突的区域先暂时只保存自己的数据分片版本,等待上一节描述的并行日志同步合并过程结束,根据发布的并行日志只读版本,对跨区域存储系统里面冲突的数据分片进行清理和再复制。
应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
Claims (10)
1.一种实现点对点跨区域NAS的系统,其特征在于包括跨区域存储系统和带反馈并行日志系统,所述的跨区域存储系统包括设置在每个区域独立的存储服务器,所述的带反馈并行日志系统包括设置在每个区域独立的带存储节点状态反馈的并行日志服务器;每个区域在这个并行日志服务器上独立记录各种元数据和操作,然后使用存储服务器来存储数据,同时存储服务器还在多个区域间进行并行日志的交换,以及数据和元数据同步;
还包括一个动态可调节的元数据沙箱系统,其根据支撑它的带反馈并行日志系统和跨区域存储系统动态生成元数据结构,所述的元数据沙箱系统能利用写事件驱动自动生成快照;
对于合并冲突的反馈请求通过扫描跨区域存储系统中已经写入的数据内容来判断并行冲突日志的保留和丢弃;
通过“写入努力值”作为加权值的多区域数据分布一致性算法来协调冲突,即首先扫描多区域存储系统中对应冲突的文件内容数据,因为冲突都存在于异步模式下两个或以上区域对同一个文件进行了创建、修改或者写入,所以先扫描对应的所有文件内容数据,此时如果所有数据都属于冲突日志中的一方,则保留这一方日志丢弃所有其他冲突日志即可;
其次,如果文件内容并不全部属于冲突日志中的某一方,那么采用加权分数投票的方式来选出应该保留的一方,加权分数的计算方法是对应冲突日志中的某一方文件内容数据在本区域已经写入的数量百分比作为系数乘以这一方的文件内容数据已经复制到多区域中产生的副本数;
最后,得到一个考虑了文件内容写入广度和深度的决定,将它反馈给并行日志合并过程进行修正,至此,合并同步和修正过程完成并最终生成只读的并行日志版本,由发起者向各区域广播发布并行日志的当前只读版本,各个区域进行持久化并反馈自己的元数据沙箱系统。
2.根据权利要求1所述的一种实现点对点跨区域NAS的系统,其特征在于所述的元数据沙箱系统在启动时才进行构建,加载本区域带反馈并行日志系统中的日志,并将日志中与文件系统目录结构和文件属性的相关日志数据分析加载到一个混合分层二叉搜索树中。
3.根据权利要求2所述的一种实现点对点跨区域NAS的系统,其特征在于所述的混合分层二叉搜索树采用目录层级式环形散列表的形式存储文件系统结构,所述的目录层级式环形散列表的形式存储文件系统结构是让每个路径通过散列算法分布到散列环中的一个层级节点,接下来在每一个节点上建立一个多级散列双向链表来存储每个元数据内容,并且同时建立一个二叉搜索树来进行元数据索引。
4.根据权利要求3所述的一种实现点对点跨区域NAS的系统,其特征在于所述元数据沙箱系统的自动生成快照是指当上层有元数据需要写入时,检查自上次多区域合并同步和修正后沙箱稳定状态副本到当前时刻是否曾经有数据写入,有则忽略,没有则创建当前沙箱状态快照。
5.根据权利要求1所述的一种实现点对点跨区域NAS的系统,其特征在于所述的带反馈并行日志系统记录了文件系统中的用于灾难恢复的发生行为,同时还记录着元数据的所有相关操作和元数据内容,当上层有写操作发生时,首先在元数据沙箱系统中进行插入,然后元数据沙箱系统向带反馈并行日志系统发送操作日志和元数据,带反馈并行日志系统接收到以后将写入一个日志数据块,每个日志数据块中分为两个区域,一个操作日志区和一个元数据区。
6.根据权利要求5所述的一种实现点对点跨区域NAS的系统,其特征在于所述的带反馈并行日志系统接收来自沙箱的操作日志和元数据时,根据当前区域的uuid和时间戳生成一个唯一标识,这个唯一标识将来用于操作日志和元数据的关联,同时也可以记录这段日志的产生时间。
7.根据权利要求6所述的一种实现点对点跨区域NAS的系统,其特征在于每一个日志数据块都是双向链表中的一个节点,当一个日志数据块写满时,则生成下一个日志数据块继续进行记录,日志数据块的状态分为只读和写两个状态,每记录块会被持久化到下面的跨区域存储中,后期会异步进行日志数据块的跨区域合并同步和修正,执行完合并同步过程的日志数据块变为只读状态。
8.根据权利要求7所述的一种实现点对点跨区域NAS的系统,其特征在于包括可以进行异步跨区域并行日志数据块的合并同步和修正,包括从其他区域获取并行日志块、各区域自行合并、依据跨区域存储的反馈修正并行日志、合并并行日志过程广播、最终并行日志只读版本发布和各区域只读并行日志持久化并反馈给元数据沙箱系统。
9.根据权利要求1所述的一种实现点对点跨区域NAS的系统,其特征在于在可调节间隔时间内,所有的区域中随机出现一个区域主动开始发起并行日志的合并,合并的目标为上次快照之后的所有可写并行日志数据块,发起者随即开始向各个区域请求区域并行日志,每个区域收到请求后向发起者发送封装好的所有待合并并行日志数据块,并同时自己也作为发起者向其他区域发起请求,以此循环往复直至每个区域都得到其他区域所有待合并并行日志数据块。
10.根据权利要求1所述的一种实现点对点跨区域NAS的系统,其特征在于发起并行日志的合并过程中,如果发现在有效区域集合中有未能参与此过程的,则此次合并暂停,等待集合内部进行点对点连通性测试,并在测试过程中剔除离线区域,准备就绪后,再次触发开始上述过程;
如果发现只有某一个区域有并行日志数据块待合并,那么此次同步过程结束,由发起者向各区域广播发布并行日志的当前只读版本,各个区域自身进行持久化并反馈自己的元数据沙箱系统;如果多个区域都有待合并并行日志数据块,那么开始合并这些日志块,合并首先把无冲突部分进行合并,有冲突部分则向跨区域存储系统发起反馈请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310387369.1A CN116361225B (zh) | 2023-04-12 | 2023-04-12 | 一种实现点对点跨区域nas的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310387369.1A CN116361225B (zh) | 2023-04-12 | 2023-04-12 | 一种实现点对点跨区域nas的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116361225A CN116361225A (zh) | 2023-06-30 |
CN116361225B true CN116361225B (zh) | 2023-09-26 |
Family
ID=86908244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310387369.1A Active CN116361225B (zh) | 2023-04-12 | 2023-04-12 | 一种实现点对点跨区域nas的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116361225B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811530B1 (en) * | 2013-06-29 | 2017-11-07 | EMC IP Holding Company LLC | Cluster file system with metadata server for storage of parallel log structured file system metadata for a shared file |
CN107346290A (zh) * | 2016-05-05 | 2017-11-14 | 西部数据科技股份有限公司 | 使用并行化日志列表重放分区逻辑到物理数据地址转换表 |
CN111124301A (zh) * | 2019-12-18 | 2020-05-08 | 深圳供电局有限公司 | 一种对象存储设备的数据一致性存储方法及系统 |
CN113297159A (zh) * | 2021-02-08 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据存储方法以及装置 |
CN115878580A (zh) * | 2021-09-29 | 2023-03-31 | 华为技术有限公司 | 一种日志管理方法及装置 |
-
2023
- 2023-04-12 CN CN202310387369.1A patent/CN116361225B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811530B1 (en) * | 2013-06-29 | 2017-11-07 | EMC IP Holding Company LLC | Cluster file system with metadata server for storage of parallel log structured file system metadata for a shared file |
CN107346290A (zh) * | 2016-05-05 | 2017-11-14 | 西部数据科技股份有限公司 | 使用并行化日志列表重放分区逻辑到物理数据地址转换表 |
CN111124301A (zh) * | 2019-12-18 | 2020-05-08 | 深圳供电局有限公司 | 一种对象存储设备的数据一致性存储方法及系统 |
CN113297159A (zh) * | 2021-02-08 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据存储方法以及装置 |
CN115878580A (zh) * | 2021-09-29 | 2023-03-31 | 华为技术有限公司 | 一种日志管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116361225A (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11894972B2 (en) | System and method for data replication using a single master failover protocol | |
US20200175035A1 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US8510404B2 (en) | Peer to peer Synchronization system and method | |
US20190205423A1 (en) | Selective synchronization of content items in a content management system | |
US9886348B2 (en) | System and method for adjusting membership of a data replication group | |
US10248704B2 (en) | System and method for log conflict detection and resolution in a data store | |
CN102024016B (zh) | 一种分布式文件系统快速数据恢复的方法 | |
CN101866305B (zh) | 支持数据查询和快速恢复的连续数据保护方法及系统 | |
CN104813321B (zh) | 在分布式对象存储生态系统中的去耦合的内容以及元数据 | |
CN101577735B (zh) | 一种接管故障元数据服务器的方法、装置及系统 | |
US20090012932A1 (en) | Method and System For Data Storage And Management | |
CN106202416B (zh) | 列表数据写方法和装置、列表数据读取方法和装置 | |
CN109840166A (zh) | 一种跨集群对象存储异步备份方法、装置和系统 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
CN104580395A (zh) | 一种基于现存云存储平台的多云协同存储中间件系统 | |
US11711375B2 (en) | Team member transfer tool | |
CN111159105B (zh) | 一种基于manila共享模式下支持NFS协议并设置ACL的系统及方法 | |
US20100145911A1 (en) | Serverless Replication of Databases | |
CN108319645A (zh) | 一种异构存储环境下多版本文件视图管理方法和装置 | |
CN114253929A (zh) | 一种基于分布式文件存储的网盘系统架构 | |
CN113032356A (zh) | 一种客舱分布式文件存储系统及实现方法 | |
CN116361225B (zh) | 一种实现点对点跨区域nas的系统 | |
JP2011522337A (ja) | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用 | |
CN112231291A (zh) | 一种云端文件多分支版本管理的方法和装置 | |
CN114996053A (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 |