CN110727652B - 一种云存储处理系统及其实现数据处理的方法 - Google Patents
一种云存储处理系统及其实现数据处理的方法 Download PDFInfo
- Publication number
- CN110727652B CN110727652B CN201810781693.0A CN201810781693A CN110727652B CN 110727652 B CN110727652 B CN 110727652B CN 201810781693 A CN201810781693 A CN 201810781693A CN 110727652 B CN110727652 B CN 110727652B
- Authority
- CN
- China
- Prior art keywords
- information
- request
- storage node
- node
- storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 239000004973 liquid crystal related substance Substances 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 208000015897 writing disease Diseases 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Abstract
本申请公开了一种云存储处理系统及其实现数据处理的方法,包括:存储节点接收来自计算节点提交的I/O请求,判定I/O请求中携带的判定是否存在故障的第一信息和/或第二信息以及标识信息是否分别与存储节点自身存储的信息匹配,当均匹配时,将接收到的I/O请求提交到底层分布式文件存储。通过本申请保证了在任何模块故障、行为不确定时,I/O数据处理仍然正确,不会写脏数据,从而确保了磁盘性能,保证了虚拟机的高可用性。
Description
技术领域
本申请涉及但不限于云技术,尤指一种云存储处理系统及其实现数据处理的方法。
背景技术
在云计算环境中,一个数据中心的计算资源通过虚拟化技术切分为大量虚拟机(VM),用户可以在VM中灵活部署自己的应用,如Web、社交、游戏、金融等。这些应用有的保存着重要数据,要求数据读写性能好、运行稳定,并且能做到全天候不间断服务、有足够好的可用性;有的应用要求有足够好的数据可靠性,数据有多个冗余备份,并且单个服务器宕机也不影响使用,这种情况可以将VM磁盘接入分布式存储;有的应用要求比较高的性能,I/O时延(I/O Latency)比较低,但自己可以解决冗余备份,这种情况则可以需要接入本地磁盘阵列(RAID)存储。其中,对于业务可用性要求高的场景,VM磁盘接入具有冗余特性的分布式存储是个不错的选择,在磁盘、网络等组件出现故障后,分布式存储仍然能提供较好的可用性。
数据中心内部都由大量集群组成,为了提高售卖率、减少资源争抢等,将这些集群分为计算集群与存储集群。其中,计算集群的每个服务器(也称计算节点)上部署着虚拟化平台,用户的VM运行在这些计算节点上;存储集群部署着分布式存储,作为后端存储给计算节点上的VM提供数据存储服务。如果VM要正常运行,那么,VM磁盘的输入/输出(I/O)请求需要正常提交到存储集群,如果要保证VM的高可用性,那么,需要保证计算节点、存储节点、网络等任何组件发生故障时,VM磁盘的I/O流都不受影响。
发明内容
为了解决上述技术问题,本发明提供一种云存储处理系统及其实现数据处理的方法,能够确保磁盘性能,保证虚拟机的高可用性。
为了达到本发明目的,本发明提供了一种云存储处理系统,包括:计算节点、控制节点,和包括若干存储节点的存储集群;其中,
计算节点,用于将对磁盘进行操作的输入/输出I/O请求提交给存储集群的存储节点;向控制节点上报存储节点的故障状态;其中,I/O请求中携带的信息包括:判定是否存在故障的第一信息和/或第二信息,以及与I/O请求对应的标识信息;
控制节点,用于接收来自计算节点上报的存储节点的故障状态,发起存储节点的故障恢复处理;管理所述第一信息和/或第二信息,并同步给存储节点;
存储节点,用于接收来自计算节点提交的I/O请求,判定I/O请求中携带的信息是否分别与存储节点自身存储的信息匹配,当均匹配时,将接收到的I/O请求提交到底层分布式文件存储。
可选地,所述计算节点还用于:在打开磁盘或故障恢复后,提交所述I/O请求前,从所述控制节点获取所述第一信息和/或第二信息。
可选地,所述计算节点还用于:提交I/O请求前,为所述I/O请求分配标识信息。
可选地,所述控制节点中的管理所述第一信息和/或第二信息包括:
当磁盘重新打开时,分配该磁盘的新的第一信息;将新的第一信息同步给所述存储节点;
当磁盘重新加载时,分配该磁盘的新的第二信息;将新的第二信息同步给所述存储节点。
可选地,所述控制节点与所述存储节点之间设置有心跳检测,所述控制节点还用于:
在所述存储节点发生故障时,通过心跳检测发现所述存储节点的异常状态,将磁盘切换到新的存储节点,触发磁盘重新加载。
可选地,所述存储节点中的判定I/O请求中携带的信息是否与存储节点自身存储的信息匹配,包括:
检查所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息是否相同,或者,检查所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息是否相同,或者,检查所述I/O请求中携带的第一信息和第二信息是否与所述存储节点自身存储的第一信息和第二信息均相同;以及,根据所述存储节点记录的最大的标识信息检查所述I/O请求中携带的标识是否单调递增;
当所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息相同,或者,所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息相同,或者,所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息均相同;以及,所述I/O请求中携带的标识信息单调递增;
则判定均匹配,执行所述将所述I/O请求提交到底层分布式文件存储。
可选地,所述存储节点还用于:
检查出所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息不相同,或者,检查出所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息不相同,或者,检查出所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息不相同;以及,根据所述存储节点记录的最大的标识信息检查出所述I/O请求中携带的标识信息不是单调递增;
则返回所述I/O请求失败。
可选地,所述第一信息包括所述计算节点打开磁盘时对应的版本号;所述第二信息包括所述存储节点加载磁盘时对应的版本号;所述标识信息包括所述I/O请求对应的身份ID信息。
本申请还提供了一种云存储处理系统实现数据处理的方法,包括:
计算节点将对磁盘进行操作的I/O请求提交给存储集群的存储节点,I/O请求中携带的信息包括:用于判定是否存在故障的第一信息和/或第二信息,以及与I/O请求对应的标识信息;
计算节点向控制节点上报发生故障的存储节点的故障状态。
可选地,所述方法之前还包括:
在打开磁盘或故障恢复后,提交所述I/O请求前,获取所述第一信息和/或第二信息。
可选地,所述打开磁盘之前还包括:
如果所述计算节点发生故障,所述计算节点上的业务系统重启或者切换到新的计算节点,以触发所述磁盘的重新打开。
可选地,所述方法之前还包括:
提交所述I/O请求前,为所述I/O请求分配所述标识信息。
可选地,所述方法还包括:每次所述磁盘重新打开时,所述标识信息重置为0。
可选地,所述第一信息包括所述计算节点打开磁盘时对应的版本号;所述第二信息包括所述存储节点加载磁盘时对应的版本号;所述标识信息包括所述I/O请求对应的身份ID信息。
本申请又提供了一种云存储处理系统实现数据处理的方法,包括:
控制节点管理用于判定是否存在故障的第一信息和/或第二信息,并同步给存储节点;
控制节点接收到来自计算节点上报的存储节点的故障状态,发起存储节点的故障恢复处理。
可选地,所述控制节点与所述存储节点之间设置有心跳检测,所述方法还包括:
在所述存储节点发生故障时,通过心跳检测发现所述存储节点的异常状态,将磁盘切换到新的存储节点,触发磁盘重新加载。
可选地,所述控制节点中的管理所述第一信息和/或第二信息包括:
当磁盘重新打开时,分配该磁盘的新的第一信息;将新的第一信息同步给存储节点;
当磁盘重新加载时,分配该磁盘的新的第二信息;将新的第二信息同步给存储节点。
可选地,对于同一块磁盘,所述分配该磁盘的新的第一信息包括:抢占式、单调递增分配;
对于同一块磁盘,所述分配该磁盘的新的第二信息包括:抢占式、单调递增分配。
本申请再提供了一种云存储处理系统实现数据处理的方法,包括:
存储节点接收来自计算节点提交的I/O请求;
存储节点判定I/O请求中携带的信息是否分别与存储节点自身存储的信息匹配,当均匹配时,将接收到的I/O请求提交到底层分布式文件存储;
其中,I/O请求中携带的信息包括:判定是否存在故障的第一信息和/或第二信息,以及与I/O请求对应的标识信息。
可选地,所述方法还包括:存储来自控制节点同步的所述第一信息和/或第二信息。
可选地,所述判定I/O请求中携带的信息是否与存储节点自身存储的信息匹配,包括:
检查所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息是否相同,或者,检查所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息是否相同,或者,检查所述I/O请求中携带的第一信息和第二信息是否与所述存储节点自身存储的第一信息和第二信息均相同;以及,根据所述存储节点记录的最大的标识信息检查所述I/O请求中携带的标识是否单调递增;
当所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息相同,或者,所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息相同,或者,所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息均相同;以及,所述I/O请求中携带的标识信息单调递增;
则判定均匹配,执行所述将所述I/O请求提交到底层分布式文件存储。
可选地,所述方法还包括:
所述存储节点检查出所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息不相同,或者,检查出所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息不相同,或者,检查出所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息不相同;以及,根据所述存储节点记录的最大的标识信息检查出所述I/O请求中携带的标识信息不是单调递增;
则返回所述I/O请求失败。
本申请技术方案包括:存储节点接收来自计算节点提交的I/O请求,判定I/O请求中携带的判定是否存在故障的第一信息和/或第二信息以及标识信息是否分别与存储节点自身存储的信息匹配,当均匹配时,将接收到的I/O请求提交到底层分布式文件存储。通过本申请保证了在任何模块故障、行为不确定时,I/O数据处理仍然正确,不会写脏数据,从而确保了磁盘性能,保证了虚拟机的高可用性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请云存储处理系统的架构示意图;
图2为本申请第一实施例中云存储处理系统实现数据处理的方法的流程图;
图3为本申请第二实施例中云存储处理系统实现数据处理的方法的流程图;
图4为本申请第三实施例中云存储处理系统实现数据处理的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
传统分布式存储中采用客户端定期更新Session机制,但是,由于Session释放是需要一段时间的,这样将导致无法立即抢占并实现快速恢复。而且,在多线程下并发分配时是无法达到高性能,并且是无法处理Server故障的。
对于计算存储分离部署的云计算系统,如何保证系统出现故障时,计算节点中VM的I/O请求能秒级恢复,并且能实现数据的一致性(如不让宕机的节点将脏数据写入存储集群、故障处理相关逻辑不影响磁盘性能如每秒多少个I/O请求(I/OPS)、每秒多少个I/O字节(BPS)、I/O时延(Latency)等)是亟需解决的问题。这些故障包括如:计算节点进程级别死机/挂起(crash/hang)、机器级别crash/hang,存储节点进程级别crash/hang、机器级别crash/hang,计算节点与存储节点之间网络故障如断网、抖动、重复或乱序等。
本文的虚拟化平台包括但不限于:Xen、KVM、docker或者其它虚拟化平台。每台物理机可以基于虚拟化技术虚拟出多个VM,每个VM可以配置多块磁盘,每块磁盘独立提交读写I/O请求。
基于虚拟化平台,一台计算节点上可以虚拟出多个VM,用户在这些VM内部署的应用(如网站、游戏、数据库等)会从VM内的磁盘读取数据,也会存放数据到VM内的磁盘。VM至少包括一个用于存放操作系统的系统盘,VM可能包括多个用于存放自己的业务数据的数据盘。每个磁盘的I/O请求,经过VM内的前端驱动,再经过虚拟化平台到达后端驱动,后端驱动需要将I/O请求转发给计算节点中的I/O磁盘接入模块,I/O磁盘接入模块也称为客户端(Client);I/O磁盘接入模块将I/O请求提交给存储集群内的分布式块存储系统,分布式块存储系统包含一组高可用的Master节点和若干个处理I/O流的存储节点,其中,Master节点负责处理磁盘的创建/删除、打开/关闭、加载/卸载(load/unload)等,以及这些控制流中的关键信息的管理;存储节点负责接收来自Client的I/O请求,协助处理部分高可用检查,最终将I/O请求提交给底层的分布式文件系统。
图1为本申请云存储处理系统的架构示意图,如图1所示,本申请云存储处理系统包括:计算节点、控制(Master)节点,和若干存储节点的存储集群;其中,
计算节点,用于将对磁盘进行操作的I/O请求提交给存储集群的存储节点;向Master节点上报存储节点的故障状态(如加载存储节点);其中,I/O请求中携带的信息包括:判定是否存在故障的第一信息和/或第二信息,以及与I/O请求对应的标识信息。
更具体地,I/O请求中携带的信息包括:
判定是否存在故障的第一信息,以及与I/O请求对应的标识信息;
或者,判定是否存在故障的第二信息,以及与I/O请求对应的标识信息;
或者,判定是否存在故障的第一信息和第二信息,以及与I/O请求对应的标识信息;
Master节点,用于接收来自计算节点上报的存储节点的故障状态,发起存储节点的故障恢复处理;管理用于判定是否存在故障的第一信息和/或第二信息,并同步给存储节点;
存储节点,用于接收来自计算节点提交的I/O请求,判定I/O请求中携带的信息是否分别与存储节点自身存储的信息匹配,当均匹配时,将接收到的I/O请求提交到底层分布式文件存储。
可选地,计算节点还用于:在打开磁盘或故障恢复后,提交I/O请求前,从Master节点获取用于判定是否存在故障的信息即第一信息和/或第二信息。
可选地,计算节点还用于:提交I/O请求前,为I/O请求分配标识信息:sequenceid即计算节点每个I/O对应的一个身份(ID)信息。
标识信息由计算节点中的客户端(Client)模块内每个线程独立分配,并且单调递增。
可选地,每次磁盘重新打开时,sequenceid重置为0。
可选地,Master节点中的管理用于判定是否存在故障的第一信息和/或第二信息,包括:
当磁盘重新打开时,分配该磁盘的新的第一信息:openversion即计算节点打开磁盘时对应的版本号;将新的第一信息同步给存储节点;
当磁盘重新加载(load)时,分配该磁盘的新的第二信息:loadversion即存储节点load磁盘时对应的版本号;将新的第二信息同步给存储节点。
相应地,存储节点还用于:存储来自Master节点同步的用于判定是否存在故障的第一信息和/或第二信息。
可选地,对于同一块磁盘,openversion的分配实现抢占式,且单调递增分配。
可选地,对于同一块磁盘,loadversion的分配实现抢占式,且单调递增分配。
可选地,Master节点与存储节点之间还设置有心跳检测,Master节点还用于:在存储节点发生故障时,通过心跳检测迅速发现存储节点的异常状态,将磁盘切换到新的存储节点,从而触发磁盘重新load。
可选地,存储节点中的判定I/O请求中携带的第一信息和/或第二信息以及标识信息是否与存储节点自身存储的信息匹配,包括:
检查I/O请求中携带的第一信息如openversion与存储节点自身存储的openversion是否相同,和/或,检查I/O请求中携带的第二信息如loadversion是否与存储节点自身存储的loadversion相同;以及,根据存储节点记录的最大sequenceid检查I/O请求中携带的标识信息如sequenceid是否单调递增;
当I/O请求中携带的第一信息如openversion与存储节点自身存储的openversion相同,和/或,I/O请求中携带的第二信息如loadversion与存储节点自身存储的loadversion相同;以及,I/O请求中携带的标识信息如sequenceid单调递增;则,将I/O请求提交到底层分布式文件存储。这样,保证了在任何模块故障、行为不确定时,I/O数据处理仍然正确,不会写脏数据。
可选地,存储节点还用于:
检查出I/O请求中携带的第一信息如openversion与存储节点自身存储的openversion不相同;和/或,检查出I/O请求中携带的第二信息如loadversion与存储节点自身存储的loadversion不相同;以及,根据存储节点记录的最大的sequenceid检查出所述I/O请求中携带的标识信息如sequenceid不是单调递增;则,返回I/O请求失败。
本申请中,如果计算节点发生故障,计算节点上的业务系统会迅速重启或者切换到新的计算节点,以触发磁盘重新打开,而当磁盘重新打开时,Master节点会分配一个新的第一信息如openversion并同步给存储节点,通过本申请对I/O请求中携带的第一信息如openverion的检测,确定出计算节点发生了故障,说明该I/O请求不能处理,否则会写乱数据。
本申请中,如果存储节点发生故障,Master节点的心跳检测会迅速发现存储节点的状态异常,将磁盘切换到新的存储节点,以触发磁盘重新load,而磁盘重新load时,Master会分配一个新的第二信息如loadversion并同步给存储节点,通过本申请对I/O请求中携带的第二信息如loadversion的检测,确定出存储节点发生了故障,说明该I/O请求不能处理,否则会写乱数据。
本申请中,当网络故障时,I/O请求可能乱序到达或者重复到达,通过本申请对I/O请求中携带的标识信息如sequenceid的检测,如果收到的I/O请求的标识信息如sequenceid重复或者小于最大sequenceid即不满足递增(也称为较旧)时,说明该I/O请求正在处理或者已经处理,如果再提交到底层存储会导致数据写乱,保证了在任何模块故障、行为不确定时,I/O数据处理仍然正确,不会写脏数据。
图2为本申请第一实施例中云存储处理系统实现数据处理的方法的流程图,如图2所示,包括:
步骤200:计算节点将对磁盘进行操作的I/O请求提交给存储集群的存储节点,I/O请求中携带的信息包括:用于判定是否存在故障的第一信息和/或第二信息以及与I/O请求对应的标识信息。
可选地,I/O请求中还携带有:I/O数据。
可选地,第一信息包括但不限于计算节点打开磁盘时对应的版本号;第二信息包括但不限于存储节点加载磁盘时对应的版本号;标识信息包括但不限于I/O请求对应的身份(ID)信息。
步骤201:当存储节点发生故障后,计算节点向Master节点上报发生故障的存储节点的故障状态。
可选地,故障状态包括但不限于:如加载存储节点等。
可选地,第一实施例所述的方法之前还包括:
在打开磁盘或故障恢复后,提交I/O请求前,从Master节点获取用于判定是否存在故障的第一信息和/或第二信息。
可选地,打开磁盘之前还包括:
如果计算节点发生故障,计算节点上的业务系统会迅速重启或者切换到新的计算节点,以触发磁盘重新打开。
可选地,第一实施例所述的方法之前还包括:
提交I/O请求前,为I/O请求分配标识信息,即计算节点每个I/O对应的一个ID。其中,标识信息由计算节点中的客户端(Client)模块内每个线程独立分配,并且单调递增。
可选地,本申请方法还包括:每次磁盘重新打开时,标识信息如sequenceid重置为0。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一实施例中任一项所述的云存储处理系统实现数据处理的方法。
本申请还提供了一种用于实现数据处理的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:上述第一实施例中任一项所述的云存储处理系统实现数据处理的方法的步骤。
图3为本申请第二实施例中云存储处理系统实现数据处理的方法的流程图,如图3所示,包括:
步骤300:控制节点管理用于判定是否存在故障的第一信息和/或第二信息,并同步给存储节点。
可选地,第一信息包括但不限于计算节点打开磁盘时对应的版本号;第二信息包括但不限于存储节点加载磁盘时对应的版本号;标识信息包括但不限于I/O请求对应的身份(ID)信息。
可选地,本步骤中的Master节点中的管理用于判定是否存在故障的第一信息和/或第二信息具体包括:
当磁盘重新打开时,分配该磁盘的新的第一信息:openversion即计算节点打开磁盘时对应的版本号;将新的第一信息同步给存储节点;
当磁盘重新load时,分配该磁盘的新的第二信息:loadversion即存储节点load磁盘时对应的版本号;将新的第二信息同步给存储节点。
可选地,对于同一块磁盘,openversion的分配实现抢占式,且单调递增分配。
可选地,对于同一块磁盘,loadversion的分配实现抢占式,且单调递增分配。
步骤301:控制节点接收到来自计算节点上报的存储节点的故障状态,发起存储节点的故障恢复处理。
可选地,第二实施例所述的方法还包括:Master节点与存储节点之间设置有心跳检测,Master节点通过心跳检测迅速发现存储节点的异常状态,将磁盘切换到新的存储节点,从而触发磁盘重新load。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第二实施例中任一项所述的云存储处理系统实现数据处理的方法。
本申请还提供了一种用于实现数据处理的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:上述第二实施例中任一项所述的云存储处理系统实现数据处理的方法的步骤。
图4为本申请第三实施例中云存储处理系统实现数据处理的方法的流程图,如图4所示,包括:
步骤400:存储节点接收来自计算节点提交的I/O请求。
步骤401:存储节点判定I/O请求中携带的用于判定是否存在故障的第一信息和/或第二信息以及标识信息是否分别与存储节点自身存储的信息匹配,当均匹配时,将接收到的I/O请求提交到底层分布式文件存储。
可选地,第三实施例所述的方法还包括:
存储来自Master节点同步的用于判定是否存在故障的信息即第一信息和/或第二信息。
可选地,存储节点中的判定I/O请求中携带的第一信息和/或第二信息以及标识信息是否与存储节点自身存储的信息匹配,包括:
检查I/O请求中携带的第一信息如openversion与存储节点自身存储的openversion是否相同,和/或,检查I/O请求中携带的第二信息如loadversion是否与存储节点自身存储的loadversion相同;以及,根据存储节点记录的最大sequenceid检查I/O请求中携带的标识信息如sequenceid是否单调递增;
当I/O请求中携带的第一信息如openversion与存储节点自身存储的openversion相同,和/或,I/O请求中携带的第二信息如loadversion与存储节点自身存储的loadversion相同;以及,I/O请求中携带的标识信息如sequenceid单调递增,则将I/O请求提交到底层分布式文件存储。这样,保证了在任何模块故障、行为不确定时,I/O数据处理仍然正确,不会写脏数据。
可选地,第三实施例方法还包括:
检查出I/O请求中携带的第一信息如openversion与存储节点自身存储的openversion不相同;和/或,检查出I/O请求中携带的第二信息如loadversion与存储节点自身存储的loadversion不相同;以及,根据存储节点记录的最大的sequenceid检查出所述I/O请求中携带的标识信息如sequenceid不是单调递增;则,返回I/O请求失败。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第三实施例中任一项所述的云存储处理系统实现数据处理的方法。
本申请还提供了一种用于实现数据处理的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:上述第三实施例中任一项所述的云存储处理系统实现数据处理的方法的步骤。
本申请中,如果存储节点发生故障,Master节点的心跳检测会迅速发现存储节点的状态异常,将磁盘切换到新的存储节点,以触发磁盘重新load,而磁盘重新load时,Master会分配一个新的loadversion并同步给存储节点,通过本申请对I/O请求中携带的loadversion的检测,确定出存储节点发生了故障,说明该I/O请求不能处理,否则会写乱数据。
本申请中,当网络故障时,I/O请求可能乱序到达或者重复到达,通过本申请对I/O请求中携带的sequenceid的检测,如果收到的I/O请求的sequenceid重复或者小于最大sequenceid时,说明该I/O请求正在处理或者已经处理,如果再提交到底层存储会导致数据写乱,保证了在任何模块故障、行为不确定时,I/O数据处理仍然正确,不会写脏数据。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种云存储处理系统,包括:计算节点、控制节点,和包括若干存储节点的存储集群;其中,
计算节点,用于将对磁盘进行操作的输入/输出I/O请求提交给存储集群的存储节点;向控制节点上报存储节点的故障状态;其中,I/O请求中携带的信息包括:用于判定所述计算节点是否存在故障的第一信息和/或用于判定所述存储节点是否存在故障的第二信息,以及与I/O请求对应的标识信息;
控制节点,用于接收来自计算节点上报的存储节点的故障状态,发起存储节点的故障恢复处理;管理所述第一信息和/或第二信息,并同步给存储节点;
存储节点,用于接收来自计算节点提交的I/O请求,判定I/O请求中携带的信息是否分别与存储节点自身存储的信息匹配,当所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息相同,或者,所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息相同,或者,所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息均相同;以及,所述I/O请求中携带的标识信息单调递增;则判定均匹配,将接收到的I/O请求提交到底层分布式文件存储。
2.根据权利要求1所述的系统,所述计算节点还用于:在打开磁盘或故障恢复后,提交所述I/O请求前,从所述控制节点获取所述第一信息和/或第二信息。
3.根据权利要求1所述的系统,所述计算节点还用于:提交I/O请求前,为所述I/O请求分配标识信息。
4.根据权利要求1所述的系统,其中,所述控制节点中的管理所述第一信息和/或第二信息包括:
当磁盘重新打开时,分配该磁盘的新的第一信息;将新的第一信息同步给所述存储节点;
当磁盘重新加载时,分配该磁盘的新的第二信息;将新的第二信息同步给所述存储节点。
5.根据权利要求1所述的系统,所述控制节点与所述存储节点之间设置有心跳检测,所述控制节点还用于:
在所述存储节点发生故障时,通过心跳检测发现所述存储节点的异常状态,将磁盘切换到新的存储节点,触发磁盘重新加载。
6.根据权利要求1所述的系统,所述存储节点还用于:
检查出所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息不相同,或者,检查出所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息不相同,或者,检查出所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息不相同;以及,根据所述存储节点记录的最大的标识信息检查出所述I/O请求中携带的标识信息不是单调递增;
则返回所述I/O请求失败。
7.根据权利要求1或6所述的系统,其中,所述第一信息包括所述计算节点打开磁盘时对应的版本号;所述第二信息包括所述存储节点加载磁盘时对应的版本号;所述标识信息包括所述I/O请求对应的身份ID信息。
8.一种云存储处理系统实现数据处理的方法,包括:
存储节点接收来自计算节点提交的I/O请求;其中,I/O请求中携带的信息包括:用于判定所述计算节点是否存在故障的第一信息和/或用于判定所述存储节点是否存在故障的第二信息,以及与I/O请求对应的标识信息;
存储节点判定所述I/O请求中携带的信息是否分别与存储节点自身存储的信息匹配,当所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息相同,或者,所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息相同,或者,所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息均相同;以及,所述I/O请求中携带的标识信息单调递增;则判定均匹配,将接收到的I/O请求提交到底层分布式文件存储。
9.根据权利要求8所述的方法,所述方法还包括:存储来自控制节点同步的所述第一信息和/或第二信息。
10.根据权利要求8所述的方法,所述方法还包括:
所述存储节点检查出所述I/O请求中携带的第一信息与所述存储节点自身存储的第一信息不相同,或者,检查出所述I/O请求中携带的第二信息与所述存储节点自身存储的第二信息不相同,或者,检查出所述I/O请求中携带的第一信息和第二信息与所述存储节点自身存储的第一信息和第二信息不相同;以及,根据所述存储节点记录的最大的标识信息检查出所述I/O请求中携带的标识信息不是单调递增;
则返回所述I/O请求失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810781693.0A CN110727652B (zh) | 2018-07-17 | 2018-07-17 | 一种云存储处理系统及其实现数据处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810781693.0A CN110727652B (zh) | 2018-07-17 | 2018-07-17 | 一种云存储处理系统及其实现数据处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727652A CN110727652A (zh) | 2020-01-24 |
CN110727652B true CN110727652B (zh) | 2023-06-30 |
Family
ID=69216921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810781693.0A Active CN110727652B (zh) | 2018-07-17 | 2018-07-17 | 一种云存储处理系统及其实现数据处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727652B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381969B (zh) * | 2020-03-16 | 2021-10-26 | 北京康吉森技术有限公司 | 一种分布式软件的管理方法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005506598A (ja) * | 2001-03-07 | 2005-03-03 | オラクル・インターナショナル・コーポレイション | 分散共有ディスクシステムにおけるディスク書込 |
CN105278882A (zh) * | 2015-10-26 | 2016-01-27 | 创新科存储技术有限公司 | 一种分布式文件系统的磁盘管理方法 |
CN106326239A (zh) * | 2015-06-18 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式文件系统及其文件元信息管理方法 |
CN106662983A (zh) * | 2015-12-31 | 2017-05-10 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200623B2 (en) * | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US8683258B2 (en) * | 2011-09-30 | 2014-03-25 | Symantec Corporation | Fast I/O failure detection and cluster wide failover |
CN105357038B (zh) * | 2015-10-26 | 2019-05-07 | 北京百度网讯科技有限公司 | 监控虚拟机集群的方法和系统 |
-
2018
- 2018-07-17 CN CN201810781693.0A patent/CN110727652B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005506598A (ja) * | 2001-03-07 | 2005-03-03 | オラクル・インターナショナル・コーポレイション | 分散共有ディスクシステムにおけるディスク書込 |
CN106326239A (zh) * | 2015-06-18 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式文件系统及其文件元信息管理方法 |
CN105278882A (zh) * | 2015-10-26 | 2016-01-27 | 创新科存储技术有限公司 | 一种分布式文件系统的磁盘管理方法 |
CN106662983A (zh) * | 2015-12-31 | 2017-05-10 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110727652A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163479B2 (en) | Replicated state cluster with standby node state assessment during leadership transition | |
US8984330B2 (en) | Fault-tolerant replication architecture | |
US9727429B1 (en) | Method and system for immediate recovery of replicated virtual machines | |
CN110377395B (zh) | 一种Kubernetes集群中的Pod迁移方法 | |
US8856592B2 (en) | Mechanism to provide assured recovery for distributed application | |
US9798792B2 (en) | Replication for on-line hot-standby database | |
US10614096B2 (en) | Disaster recovery of mobile data center via location-aware cloud caching | |
US9495259B2 (en) | Orchestrating high availability failover for virtual machines stored on distributed object-based storage | |
US20150378761A1 (en) | Maintaining High Availability During Network Partitions for Virtual Machines Stored on Distributed Object-Based Storage | |
EP4083786A1 (en) | Cloud operating system management method and apparatus, server, management system, and medium | |
US11570243B2 (en) | Decommissioning, re-commissioning, and commissioning new metadata nodes in a working distributed data storage system | |
US9563478B1 (en) | Scalable concurrent execution of distributed workflows sharing common operations | |
CN114466027B (zh) | 一种云原生数据库服务提供方法、系统、设备及介质 | |
US9367414B2 (en) | Persisting high availability protection state for virtual machines stored on distributed object-based storage | |
US10445295B1 (en) | Task-based framework for synchronization of event handling between nodes in an active/active data storage system | |
US8990608B1 (en) | Failover of applications between isolated user space instances on a single instance of an operating system | |
US8015432B1 (en) | Method and apparatus for providing computer failover to a virtualized environment | |
US9195528B1 (en) | Systems and methods for managing failover clusters | |
CN110727652B (zh) | 一种云存储处理系统及其实现数据处理的方法 | |
Kazhamiaka et al. | Sift: resource-efficient consensus with RDMA | |
EP4250119A1 (en) | Data placement and recovery in the event of partition failures | |
Louati et al. | Gc-cr: a decentralized garbage collector component for checkpointing in clouds | |
CN110688193B (zh) | 磁盘处理方法以及装置 | |
CN114172917B (zh) | 一种分布式缓存系统及其部署的方法 | |
US11573869B2 (en) | Managing lifecycle of virtualization software running in a standalone host |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231130 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |