CN113726861B - 一种云硬盘数据的同步方法及电子设备 - Google Patents
一种云硬盘数据的同步方法及电子设备 Download PDFInfo
- Publication number
- CN113726861B CN113726861B CN202110946765.4A CN202110946765A CN113726861B CN 113726861 B CN113726861 B CN 113726861B CN 202110946765 A CN202110946765 A CN 202110946765A CN 113726861 B CN113726861 B CN 113726861B
- Authority
- CN
- China
- Prior art keywords
- end data
- data
- hard disk
- cloud hard
- writing
- 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 50
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 15
- 230000006872 improvement Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- 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]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种云硬盘数据的同步方法及电子设备,该同步方法包括以下步骤:S1、当发生写冲突事件时,获取并比较与写冲突事件关联的前端数据与后端数据,以确定前端数据与后端数据基于写冲突事件所形成的重叠区域数据;S2、根据重叠区域数据与前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置与数据长度,确定同步策略;S3、由分布式存储系统调用同步策略,将前端数据及后端数据与前端数据所形成的非重叠区域数据写入云硬盘。通过本申请,使得在发生写冲突事件时能够显著地减少不必要的磁盘IO操作,并显著地提高了前端数据与后端数据之间同步过程的执行效率,并降低了资源开销。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种云硬盘数据的同步方法及一种电子设备。
背景技术
为了提高云硬盘的资源使用率和可靠性,分布式存储系统通常会把云硬盘分成多个条带,每个条带由多个副本组成。同一个条带的不同副本位于不同的主机,以便在一个主机出现故障的时候其余主机能接替故障主机,继续提供服务。图1示出由16个条带组成的云硬盘,每个条带有3个副本,其中s1-s16代表条带s1~s16,r1~r3是条带s2的三个副本,r1位于主机host1的disk0上,r2~r3位于主机2(host2)及主机3(host3)中。
磁盘条带化就是一种自动的将I/O的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力。基于磁盘条带化形成多个条带(stripe),即图1中的s1~s16。云硬盘是挂载至云服务器(或者裸金属服务器)的虚拟磁盘,并为云服务器(或者裸金属服务器)供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,满足不同场景的业务需求,适用于分布式文件系统、开发测试、数据仓库以及高性能计算等场景。
在云硬盘运行过程中可能出现某个主机出现可被修复的故障,一段时间后故障被修复主机继续提供服务的情况。在主机故障的这段时间中,本应该写入故障主机中的数据无法写入到相应的副本,而出现数据丢失。因此在故障主机加入集群后,提供服务前需要优先恢复丢失数据。数据恢复的方法一般为把丢失数据从一个健康的副本复制到丢失数据的副本。由于在数据复制过程中集群还在持续提供服务,所以会遇到由前端新写入的数据(即本申请中的“前端数据(Frontend Write)”)和后端复制数据(即本申请中的“后端数据(Backend Write)”)在操作同一块区域的情况,并由此导致写冲突。当前数据与后端数据出现冲突时,则证明两个由前端写入数据的前端进程与后端复制数据的后端进程基于对同一资源对象的争夺而产生冲突。
现有技术通常采用分布式锁机制确保只有一个进程能够被执行。然而通过分布式锁机制解决写冲突过程中,如果先执行前端进程会导致后端已经写入的最新数据无效,从而需要从其他健康的磁盘中读取最新数据(即前述前端进程新写入的前端数据),然后再将从其他磁盘中读取的最新数据重新写入前述出现故障的主机(即磁盘)中;反之,如果先执行后端进程,则后端在完成写入最新数据后,还需要通知前端并由前端将最新数据重新写入前述出现故障的主机(即磁盘)中。
由此可见,采用分布式锁机制解决写冲突的过程中,出现故障的主机(磁盘)在恢复过程(即从故障状态修复为健康状态)至少会产生两次磁盘IO操作,因此现有技术存在后端中过多的磁盘IO操作,由此导致前端数据与后端数据执行同步处理时,存在前端数据与后端数据同步效率不高、部署及运行云硬盘的计算机(集群)的资源开销过大的缺陷。
有鉴于此,有必要对现有技术中的云硬盘数据的同步方法予以改进,以解决上述问题。
发明内容
本发明的目的在于揭示一种云硬盘数据的同步方法及一种电子设备,用以在发生写冲突事件时减少不必要的磁盘IO操作,提高前端数据与后端数据之间同步过程的执行效率,并降低资源开销。
为实现上述目的之一,本发明提供了一种云硬盘数据的同步方法,包括以下步骤:
S1、当发生写冲突事件时,获取并比较与所述写冲突事件关联的前端数据与后端数据,以确定所述前端数据与后端数据基于所述写冲突事件所形成的重叠区域数据;
S2、根据所述重叠区域数据与所述前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置与数据长度,确定同步策略;
S3、由分布式存储系统调用所述同步策略,将前端数据及所述后端数据与所述前端数据所形成的非重叠区域数据写入云硬盘。
作为本发明的进一步改进,所述步骤S1具体为:获取前端数据与后端数据,比较前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置及数据长度与基于所述后端数据在云硬盘中基于写操作所形成的后端数据的偏移位置及数据长度,以确定所述前端数据与后端数据所形成的重叠区域数据,并优先将重叠区域数据写入云硬盘。
作为本发明的进一步改进,写入前端数据、写入后端数据、写入重叠区域数据与写入非重叠区域数据的操作均在分布式存储系统的内存中执行,并由分布式存储系统判断前端数据与后端数据是否发生写冲突,当前端数据与后端数据发生写冲突时,仅保留前端数据。
作为本发明的进一步改进,所述获取前端数据与后端数据及彼此的偏移位置与数据长度的操作由部署于分布式存储系统的存储服务器执行,所述存储服务器将前端数据的偏移位置与后端数据的偏移位置在存储服务器的内存执行比较操作,并根据前端数据的数据长度与后端数据的数据长度的大小关系确定同步策略。
作为本发明的进一步改进,所述同步策略包括:
当前端数据的写操作的偏移位置与后端数据的写操作开始的偏移位置相同时,直接将所述前端数据写入云硬盘,并将下一个后端数据的写操作开始位置设置为前端数据的写操作结束位置。
作为本发明的进一步改进,所述同步策略包括:
当前端数据的写操作的偏移位置位于后端数据的写操作的偏移位置之前时,整体将前端数据写入云硬盘,将后端数据的写操作开始位置设置为前端数据的写操作结束位置,并将后端数据中位于前端数据的写操作结束位置之后的部分后端数据写入云硬盘。
作为本发明的进一步改进,整体将前端数据写入云硬盘的操作与后端数据中位于前端数据的写操作结束位置之后的部分后端数据作为非重叠区域数据写入云硬盘的操作并行执行。
作为本发明的进一步改进,所述同步策略包括:
当前端数据的写操作开始的偏移位置位于后端数据的写操作的偏移位置之后时,判断前端数据是否存在与后端数据的写操作的偏移位置之间存在重叠区域数据;当存在重叠区域数据时,整体将前端数据写入云硬盘,将后端数据的写操作结束位置设置为前端数据的写操作开始位置,并将后端数据中位于后端数据写操作结束位置之前的部分后端数据写入云硬盘。
作为本发明的进一步改进,整体将前端数据写入云硬盘的操作与后端数据中位于前端数据的写操作开始位置之前的部分后端数据作为非重叠区域数据写入云硬盘的操作并行执行。
作为本发明的进一步改进,所述同步方法还包括:
判断前端数据与后端数据的数据长度;
当前端数据的数据长度大于后端数据的数据长度时,对前端数据以后端数据的数据长度为单位予以分割。
基于相同发明思想,本发明还揭示了一种电子设备,包括:
处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时执行如上述任一项发明创造所述的云硬盘数据的同步方法中的步骤。
与现有技术相比,本发明的有益效果是:
通过本发明所揭示的一种云硬盘数据的同步方法及电子设备,通过前端数据与后端数据在发生写冲突事件所形成的重叠区域数据与非重叠区域数据写入云硬盘的合理调度及同步策略,同时将前端数据覆盖后端数据的操作以及写入操作在分布式存储系统的内存中予以执行的技术方案,使得在发生写冲突事件时能够显著地减少不必要的磁盘IO操作,以提高了前端数据与后端数据之间同步过程的执行效率,并降低了资源开销,提高了对用户发起的各种访问请求的及时响应。
附图说明
图1为由十六个条带(S1~S16)所组成的云硬盘且同一条带存在三个副本(r1~r3)所组成的云硬盘的数据结构示意图;
图2为本发明一种云硬盘数据的同步方法的整体流程图;
图3为场景一中前端数据的写操作开始位置与后端数据的写操作开始位置相同时在一个条带中的数据结构示意图;
图4为场景二中前端数据的写操作开始位置位于后端数据的写操作开始位置前方时在一个条带中的数据结构示意图;
图5为场景三中前端数据的写操作开始位置位于后端数据的写操作开始位置后方时在一个条带中的数据结构示意图;
图6为场景四中前端数据的写操作开始位置与后端数据的写操作开始位置相同且前端数据的数据长度为后端数据的数据长度的两倍时在一个条带中的数据结构示意图;
图7为基于多个云硬盘的分布式存储系统的拓扑图,其中,存储主机中部署一个或者多个云硬盘;
图8为本发明一种电子设备的拓扑图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
申请人对本申请各实施例中的主要技术术语或者缩写的含义予以阐述。
术语“存储节点”:由物理磁盘和/或虚拟磁盘所构建的数据存储功能的物理节点或者虚拟节点。
术语“前端”:前端指的是用户的计算机或客户端。
术语“前端数据”:用户或者管理员在前端发起的对逻辑上位于后端的由计算机(集群)所构成的云平台(或者虚拟计算机集群)中所部属的云硬盘的某个资源执行写入数据的操作所对应形成的数据;其中,前端与后端可通过物理网络/虚拟网络建立数据链路或者通信链路。
术语“后端”:与前端通过物理网络/虚拟网络建立数据链路或者通信链路的计算机(集群)所构成的云平台(或者虚拟计算机集群),后端中部署多个云硬盘(例如图1中host1~host3中所部署的disk0)。
术语“后端数据”:后端数据则是对分布式存储系统所纳管的多个云硬盘中执行写入数据的操作所对应形成的数据。
尤其的,本申请各个实施例中的“前端数据”与“后端数据”还可被理解为分布式存储系统中某(些)个部署云硬盘的主机(例如图1中的host1~host3)出现可修复的故障并在故障修复并重新加入集群后由于响应前端所形成的数据及基于故障恢复需要从其他健康的主机执行复制操作所形成的数据。前述“主机”可被理解为物理主机或者能够部署并运行云硬盘的存储主机,存储主机可视为一个存储节点或者一个物理磁盘,物理磁盘包括HDD或者SSD等现有技术中任何一种非易失性存储介质或者几种非易失性存储介质所构成的混合型非易失性存储装置。以下通过若干实施例对本发明的核心要义及具体实现过程予以示范性阐述。
实施例一:
参图2至图7所示出的本发明一种云硬盘数据的同步方法的一种具体实施方式。本实施例所示出的云硬盘数据的同步方法旨在实现对部署若干云硬盘的分布式存储系统2中的前端数据与后端数据在出现不一致的场景中对数据予以同步。前端数据与后端数据在出现不一致的场景既包括前端数据的写操作开始位置与后端数据的写操作开始位置不一致的实例,也包括前端数据与后端数据的数据长度不一致的实例,还包括前端数据的写操作开始位置与后端数据的写操作开始位置及前端数据与后端数据的数据长度均不一致的实例。本实施例中的开始位置及结束位置均是指在云硬盘中的偏移位置,即偏移值(offset值)。对于各种场景(即下文场景一至场景四)中发生写冲突事件时,优先保证前端数据执行写入云硬盘的写入操作,对于重叠区域数据直接写入云硬盘中,非重叠区域数据既可以属于前端数据也可属于后端数据。
参图2所示,云硬盘数据的同步方法,包括以下步骤S1~步骤S3。
步骤S1、当发生写冲突事件时(即前端数据及后端数据针对同一块区域的写入事件),获取并比较与写冲突事件关联的前端数据与后端数据20,以确定前端数据与后端数据20基于写冲突事件所形成的重叠区域数据。具体的,该步骤S1具体为:获取前端数据与后端数据20,比较前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置及数据长度与基于后端数据20在云硬盘中基于写操作所形成的后端数据20的偏移位置及数据长度,以确定前端数据与后端数据20所形成的重叠区域数据,并优先将重叠区域数据写入云硬盘。确定写冲突事件由图7中分布式存储系统2中所部署的存储服务器200执行,且前端数据覆盖后端数据20的操作均由存储服务器200的内存21完成,以避免直接在云硬盘中执行写操作并降低云硬盘的IO开销。
存储服务器200通过FC或者iSCSI连接若干存储主机(参图7中存储主机31,32),存储主机31及存储主机32中部署云硬盘311,312,321,322。存储服务器200通过虚拟化技术形成虚拟磁盘22。虚拟磁盘22作为存储数据路径的前端设备,完成将数据写入某(些)个云硬盘的操作,并完成数据接收及转发功能。分布式存储系统2通过计算机网络112与客户端110~客户端111相互通信,以实现用户通过某个客户端向分布式存储系统2所发起的各种访问请求,例如视频点播(抖音、爱奇艺视频等)、文件存储等访问请求。存储主机31及存储主机32可由机械磁盘、固态硬盘、磁带等非易失性存储介质构成。
逻辑卷(Logical Volume,LV)是由逻辑磁盘形成的虚拟磁盘22。在具有多个存储节点(即存储主机31,32)的分布式存储系统2中,逻辑上连续的数据通常会被分割为多个不同的块,以存储在不同的存储节点或者物理设备中。条带宽度(StripeWidth)是指逻辑盘(LV)的条带数量,例如某个逻辑卷的Stripe Width为8,则表明该逻辑卷存在8个分片,基于用户设置的副本数量,从而使得分片具有一定的副本数量。
步骤S2、根据重叠区域数据与前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置与数据长度,确定同步策略。获取前端数据与后端数据20及彼此的偏移位置与数据长度的操作由部署于分布式存储系统2的存储服务器200执行,存储服务器200将前端数据的偏移位置与后端数据20的偏移位置在存储服务器200的内存21执行比较操作,并根据前端数据的数据长度与后端数据20的数据长度的大小关系确定同步策略。
步骤S3、由分布式存储系统2调用同步策略,将前端数据及后端数据20与前端数据所形成的非重叠区域数据写入云硬盘。在本实施例中,写入前端数据、写入后端数据、写入重叠区域数据与写入非重叠区域数据的操作均在分布式存储系统2的内存21中执行,并由分布式存储系统2判断前端数据与后端数据20是否发生写冲突,当前端数据与后端数据20发生写冲突时,仅保留前端数据。通过仅保留前端数据的技术手段,确保了写入云硬盘的数据的实时性,尤其是能够避免同一资源对象的争夺而产生冲突的写冲突事件。
参图3所示,云硬盘的同一个条带中包含Synced10(即已同步数据10),NotSynced30(未同步数据30),已同步数据10与未同步数据30之间为后端数据。用户或者管理员在前端发起的对逻辑上位于后端的由计算机(集群)所构成的云平台(或者虚拟计算机集群)中所部属的云硬盘的某个资源执行写入数据的操作所对应形成的Fronted Write40(前端数据40或者前端数据40a或者前端数据40b或者前端数据40d)与后端数据20之间在云硬盘中基于写操作所形成的前端数据40、40a、40b、40d的偏移位置与数据长度可能存在各种差异,从而发生写冲突事件。
在发生写冲突事件时,采用如下同步策略执行前端数据与后端数据执行数据同步。具体的,该同步策略包括:当前端数据40的写操作的偏移位置与后端数据20的写操作开始的偏移位置相同时,直接将前端数据40写入云硬盘,并将下一个后端数据的写操作开始位置设置为前端数据40的写操作结束位置。结合图3所示,后端数据20的写操作开始位置与前端数据40的写操作开始位置相同,即后端数据20的的偏移值与前端数据的偏移值相同。同时,前端数据40与后端数据20及未同步数据30具有相同的数据长度(例如均为4KB)。当前端数据40写入云硬盘的写入操作完成之后,省略后端数据20重复写入云硬盘的写入操作,当前端数据40的写入操作完成后,执行下一个后端数据的写入操作,图3中的未同步数据30是下一个后端数据。在场景一中,在分布式存储系统2的内存21中将前端数据40替换后端数据20,从而拒绝后端数据20写入同一条带中,并实现将磁盘IO由执行前端数据与后端数据写入云硬盘的两次磁盘IO减少为一次磁盘IO,从而有效地缩短了数据同步时间。
对于前端数据与后端数据的写操作开始位置(即偏移值)不一致的情况则需要引入如下同步策略。前端数据40a由与后端数据20的数据长度一致的前端数据41与前端数据42(即后端数据20与前端数据40a所形成的重叠区域数据)组成。前端数据42与后端数据20的头部所形成的重叠区域数据只写入一次,并仅写入前端数据42。参图4所示出的场景二,同步策略包括:当前端数据40a的写操作的偏移位置位于后端数据20的写操作的偏移位置之前时,整体将前端数据40a写入云硬盘,将后端数据20的写操作开始位置设置为前端数据40a写操作结束位置,并将后端数据20中位于前端数据40a的写操作结束位置之后的部分后端数据写入云硬盘。
具体的,在本实施例中,前端数据40a的写操作开始位置位于未执行数据同步之前后端数据20原始的写操作开始位置,那么此时当时前端数据40a写入云硬盘的操作完成后,由将前端数据40a的写操作结束位置设置为后端数据20的写操作开始位置,以将原来后端数据20的写操作结束位置之前且后端数据20的写操作开始位置之间的部分后端数据(位于后端数据20的尾部)作为非重叠区域数据继续写入云硬盘。
作为可选的方案,可以整体将前端数据40a写入云硬盘的操作与后端数据20中位于前端数据40a的写操作结束位置之后的部分后端数据作为非重叠区域数据写入云硬盘的操作并行执行,从而进一步提高同步效率。此时,非重叠区域数据属于后端数据20的一部分,且位于后端数据20的尾部。前端数据40a的写操作执行完毕后,将前端数据的写操作结束位置作为后端数据20的写操作开始位置,以将属于后端数据20的非重叠区域数据继续写入云硬盘中,以完整前端数据40a与后端数据20的最终同步处理。当前端数据40a与后端数据20(具体为位于后端数据20尾部的非重叠区域数据)均写入云硬盘,即完成了对后端数据20与前端数据40a的同步处理,并开始下一轮的数据同步操作。在场景二中,直接将部分前端数据40(即前端数据42)覆盖后端数据20的部分后端数据(即后端数据20未包含非重叠区域数据的部分后端数据),即在分布式存储系统2的内存21中将前端数据42替换后端数据20的写操作开始位置之前的部分后端数据,从而拒绝后端数据20所包含的与前端数据42具有相同内容的数据写入同一条带中,从而降低了数据写入量及分布式存储系统2的资源开销;同时,还实现了将磁盘IO由执行前端数据与后端数据写入云硬盘的两次磁盘IO减少为一次磁盘IO,从而有效地缩短了数据同步时间。
对于前端数据与后端数据的写操作开始位置(即偏移值)不一致的情况则需要引入如下同步策略。参图5所示出的场景三,同步策略包括:当前端数据40b的写操作开始的偏移位置位于后端数据20的写操作的偏移位置之后时,判断前端数据40b是否存在与后端数据的写操作的偏移位置之间存在重叠区域数据。
若是(即如图5所示出的存在重叠区域数据的情形),则证明前端数据40b与后端数据20存在重叠区域数据,此时整体将前端数据40b写入云硬盘,将后端数据20的写操作结束位置设置为前端数据40b的写操作开始位置,并将后端数据20中位于后端数据20写操作结束位置之前的部分后端数据(即图5中后端数据的写操作开始位置与重新设置的后端数据的写操作结束位置,该重新设置的后端数据的写操作结束位置与前端数据42的写操作开始位置相同)写入云硬盘。
在场景三中,前端数据40b由与后端数据20的数据长度一致的前端数据42(即后端数据20与前端数据40b所形成的重叠区域数据)与前端数据41a组成。由于前端数据40b的写操作开始位置位于后端数据20原来写操作开始位置之后,因此将前端数据40b的写操作开始位置设置为后端数据20的写操作结束位置,并将后端数据20中位于前端数据40b的写操作开始位置之前的部分后端数据(位于后端数据20的头部)作为非重叠区域数据写入云硬盘。前端数据42与后端数据20的尾部所形成的重叠区域数据只写入一次,并仅写入前端数据42。在图5中,重叠区域数据与前端数据42的内容一致,从而避免了后端数据中重叠区域数据的再次写入。
作为可选的方案,可以整体将前端数据写入云硬盘的操作与后端数据中位于前端数据的写操作开始位置之前的部分后端数据作为非重叠区域数据写入云硬盘的操作并行执行。当前端数据40b与后端数据20(具体为位于后端数据20头部的非重叠区域数据)均写入云硬盘后,即完成了对后端数据20与前端数据40b的同步处理,并开始下一轮的数据同步操作。在本实施例中,前端数据与后端数据之间形成的重叠区域数据只要任意一个具有相同数据的重叠区域数据被写入云硬盘,均能够加速数据同步速度及效率;且,由于不需要同时写入前端数据与后端数据,因此降低了分布式存储系统2的内存21的内存开销(即资源形成的一种资源开销的一种具体概念)。
结合图6所示,在本实施例中,该同步方法还包括:判断前端数据与后端数据的数据长度。前述判断操作由存储服务器200所包含的判断逻辑予以执行。判断逻辑被预先配置于存储服务器200中的非易失性存储介质。
如图6所示的场景四而言,当前端数据40d的数据长度大于后端数据20的数据长度时,对前端数据40d以后端数据20的数据长度为单位予以分割。前述分割操作在存储服务器200的内存21中执行。
例如,前端数据40d由相同数据长度的前端数据40d_1及前端数据40d_2组成,且前端数据40d的数据长度为后端数据20的数据长度的两倍,当然前端数据40d的数据长度也可为后端数据20的任意整倍数。将前端数据40d切分成两个与后端数据20相同数据长度的前端数据40d_1及40d_2,从而将前端数据40d_1覆盖后端数据20,并将前端数据40d_1写入云硬盘,至于位于整个前端数据40d尾部的部分前端数据(即前端数据40d_2)与前端数据40d_1并行写入云硬盘。
在本实施例所揭示的一种云硬盘数据的同步方法中,通过前端数据与后端数据在发生写冲突事件所形成的重叠区域数据与非重叠区域数据写入云硬盘的合理调度及同步策略,同时将前端数据覆盖后端数据的操作以及写入操作在分布式存储系统2的内存21中予以执行的技术方案,使得在发生写冲突事件时,能够显著地减少不必要的磁盘IO操作,以提高了前端数据与后端数据之间同步过程的执行效率,并降低了资源开销,尤其是降低了分布式存储系统2的资源开销,提高了对用户发起的各种访问请求予以及时响应;其中,前述资源开销包括内存开销、计算开销或者存储开销一种或者几种开销。从而最终为云服务器(Elastic Compute Service,ECS)提供了高可用、高性能、弹性、低延时的数据块级随机存储,并在云服务器部署和管理中也不需要重启服务器,数据更加可靠,并有利于实现数据持久化。
实施例二:
参图8所示,本实施例揭示了一种电子设备100,包括:处理器51、存储器52以及存储在存储器52中且被配置为由所述处理器51执行的计算机程序,该处理器51在执行计算机程序时执行如实施例一所述的云硬盘数据的同步方法中的步骤。
具体的,该存储器52由若干存储单元组成,即存储单元521~存储单元52i,其中,参数i取大于或者等于二的正整数。处理器51与存储器52均接入系统总线53。系统总线53的形式并不需要予以具体限定,I2C总线、SPI总线、SCI总线、PCI总线、PCI-e总线、ISA总线等,并可根据电子设备500的具体类型及应用场景需求予以合理变更。鉴于系统总线53并非本申请的发明点,故在本申请中不予展开陈述。
需要说明的是,本实施例中的存储单元521~52i可为物理态的存储单元,从而将电子设备100理解为物理态的计算机或者计算机集群或者集群服务器;同时,存储单元521~52i还可为虚拟态的存储单元,例如基于物理存储设备通过底层虚拟化技术所形成的虚拟存储空间,从而将该电子设备100配置为虚拟服务器或者虚拟集群等虚拟装置。
本实施例所示出的电子设备100与实施例一和/或实施例二中相同部分的技术方案,请参实施例一和/或实施例二所示,在此不再赘述。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核予以实现。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (10)
1.一种云硬盘数据的同步方法,其特征在于,包括以下步骤:
S1、当发生写冲突事件时,获取前端数据与后端数据,比较前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置及数据长度与基于所述后端数据在云硬盘中基于写操作所形成的后端数据的偏移位置及数据长度,以确定所述前端数据与后端数据所形成的重叠区域数据,并优先将重叠区域数据写入云硬盘;
S2、根据所述重叠区域数据与所述前端数据在云硬盘中基于写操作所形成的前端数据的偏移位置与数据长度,确定同步策略;
S3、由分布式存储系统调用所述同步策略,将前端数据及所述后端数据与所述前端数据所形成的非重叠区域数据写入云硬盘。
2.根据权利要求1所述的同步方法,其特征在于,写入前端数据、写入后端数据、写入重叠区域数据与写入非重叠区域数据的操作均在分布式存储系统的内存中执行,并由分布式存储系统判断前端数据与后端数据是否发生写冲突,当前端数据与后端数据发生写冲突时,仅保留前端数据。
3.根据权利要求1所述同步方法,其特征在于,所述获取前端数据与后端数据及彼此的偏移位置与数据长度的操作由部署于分布式存储系统的存储服务器执行,所述存储服务器将前端数据的偏移位置与后端数据的偏移位置在存储服务器的内存执行比较操作,并根据前端数据的数据长度与后端数据的数据长度的大小关系确定同步策略。
4.根据权利要求3所述的同步方法,其特征在于,所述同步策略包括:
当前端数据的写操作的偏移位置与后端数据的写操作开始的偏移位置相同时,直接将所述前端数据写入云硬盘,并将下一个后端数据的写操作开始位置设置为前端数据的写操作结束位置。
5.根据权利要求3所述的同步方法,其特征在于,所述同步策略包括:
当前端数据的写操作的偏移位置位于后端数据的写操作的偏移位置之前时,整体将前端数据写入云硬盘,将后端数据的写操作开始位置设置为前端数据的写操作结束位置,并将后端数据中位于前端数据的写操作结束位置之后的部分后端数据写入云硬盘。
6.根据权利要求5所述的同步方法,其特征在于,整体将前端数据写入云硬盘的操作与后端数据中位于前端数据的写操作结束位置之后的部分后端数据作为非重叠区域数据写入云硬盘的操作并行执行。
7.根据权利要求3所述的同步方法,其特征在于,所述同步策略包括:
当前端数据的写操作开始的偏移位置位于后端数据的写操作的偏移位置之后时,判断前端数据是否存在与后端数据的写操作的偏移位置之间存在重叠区域数据;当存在重叠区域数据时,整体将前端数据写入云硬盘,将后端数据的写操作结束位置设置为前端数据的写操作开始位置,并将后端数据中位于后端数据写操作结束位置之前的部分后端数据写入云硬盘。
8.根据权利要求7所述的同步方法,其特征在于,整体将前端数据写入云硬盘的操作与后端数据中位于前端数据的写操作开始位置之前的部分后端数据作为非重叠区域数据写入云硬盘的操作并行执行。
9.根据权利要求1至8中任一项所述的同步方法,其特征在于,所述同步方法还包括:
判断前端数据与后端数据的数据长度;
当前端数据的数据长度大于后端数据的数据长度时,对前端数据以后端数据的数据长度为单位予以分割。
10.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时执行如权利要求1至9中任一项所述的云硬盘数据的同步方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110946765.4A CN113726861B (zh) | 2021-08-18 | 2021-08-18 | 一种云硬盘数据的同步方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110946765.4A CN113726861B (zh) | 2021-08-18 | 2021-08-18 | 一种云硬盘数据的同步方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726861A CN113726861A (zh) | 2021-11-30 |
CN113726861B true CN113726861B (zh) | 2024-02-09 |
Family
ID=78676186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110946765.4A Active CN113726861B (zh) | 2021-08-18 | 2021-08-18 | 一种云硬盘数据的同步方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113726861B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106230998A (zh) * | 2016-10-08 | 2016-12-14 | 深圳市云舒网络技术有限公司 | 一种基于tcmu虚拟块设备的多后端数据同步方案 |
CN107203339A (zh) * | 2017-05-10 | 2017-09-26 | 杭州宏杉科技股份有限公司 | 一种数据存储方法及装置 |
CN109241092A (zh) * | 2018-10-15 | 2019-01-18 | 北京金山云网络技术有限公司 | 数据查询方法、系统及计算机设备 |
CN111143389A (zh) * | 2019-12-27 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算机设备及存储介质 |
CN112579351A (zh) * | 2020-11-16 | 2021-03-30 | 麒麟软件有限公司 | 一种云硬盘备份系统 |
-
2021
- 2021-08-18 CN CN202110946765.4A patent/CN113726861B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106230998A (zh) * | 2016-10-08 | 2016-12-14 | 深圳市云舒网络技术有限公司 | 一种基于tcmu虚拟块设备的多后端数据同步方案 |
CN107203339A (zh) * | 2017-05-10 | 2017-09-26 | 杭州宏杉科技股份有限公司 | 一种数据存储方法及装置 |
CN109241092A (zh) * | 2018-10-15 | 2019-01-18 | 北京金山云网络技术有限公司 | 数据查询方法、系统及计算机设备 |
CN111143389A (zh) * | 2019-12-27 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算机设备及存储介质 |
CN112579351A (zh) * | 2020-11-16 | 2021-03-30 | 麒麟软件有限公司 | 一种云硬盘备份系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113726861A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8479037B1 (en) | Distributed hot-spare storage in a storage cluster | |
CN106062717B (zh) | 一种分布式存储复制系统和方法 | |
US9535907B1 (en) | System and method for managing backup operations of virtual machines | |
US8521685B1 (en) | Background movement of data between nodes in a storage cluster | |
CN103810058B (zh) | 虚拟机备份方法、设备及系统 | |
US10852966B1 (en) | System and method for creating mapped RAID group during expansion of extent pool | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN110535680B (zh) | 一种拜占庭容错方法 | |
CN110651246B (zh) | 一种数据读写方法、装置和存储服务器 | |
US7529887B1 (en) | Methods, systems, and computer program products for postponing bitmap transfers and eliminating configuration information transfers during trespass operations in a disk array environment | |
CN109710456B (zh) | 一种数据恢复方法及装置 | |
CN107329859B (zh) | 一种数据保护方法及存储设备 | |
CN108595119B (zh) | 一种数据同步方法及分布式系统 | |
CN110022333B (zh) | 分布式系统的通信方法及装置 | |
US20200133810A1 (en) | Method for managing multiple disks, electronic device and computer program product | |
US8639968B2 (en) | Computing system reliability | |
CN115167782B (zh) | 临时存储副本管理方法、系统、设备和存储介质 | |
JP2006331076A (ja) | データ記憶システム及び記憶方法 | |
CN102025758B (zh) | 分布式系统中数据副本的恢复方法、装置和系统 | |
CN113885809B (zh) | 数据管理系统及方法 | |
WO2022033269A1 (zh) | 数据处理的方法、设备及系统 | |
CN113726861B (zh) | 一种云硬盘数据的同步方法及电子设备 | |
CN104991739A (zh) | 元数据服务器失效接替中精确一次执行语义的方法及系统 | |
CN111367998A (zh) | 基于Galera的数据库集群恢复方法及终端设备 | |
CN110727652B (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 |