CN116501264B - 一种数据存储方法、装置、系统、设备及可读存储介质 - Google Patents
一种数据存储方法、装置、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116501264B CN116501264B CN202310749062.1A CN202310749062A CN116501264B CN 116501264 B CN116501264 B CN 116501264B CN 202310749062 A CN202310749062 A CN 202310749062A CN 116501264 B CN116501264 B CN 116501264B
- Authority
- CN
- China
- Prior art keywords
- write data
- data
- sequence
- logical volume
- storage system
- 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 79
- 238000013500 data storage Methods 0.000 title claims abstract description 61
- 230000015654 memory Effects 0.000 claims abstract description 18
- 238000011084 recovery Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage 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
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本发明公开了一种数据存储方法、装置、系统、设备及可读存储介质,应用于计算机存储技术领域,为解决存储系统性能差、用户使用体验差的技术问题,提出基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记;其中,各顺序标识按照预设顺序进行排序;将标记后的写数据存储至对应的本地逻辑卷;将本地逻辑卷中的各写数据发送至远端存储系统,以便远端存储系统基于写数据中的顺序标识将各写数据分别存储至对应的镜像逻辑卷;本发明中通过为写数据添加顺序标识的方式,能够有效保证数据一致性,减少内存空间的占用,利于提高存储系统性能,保证用户业务顺利进行,提升用户使用体验。
Description
技术领域
本发明涉及计算机存储技术领域,特别是涉及一种数据存储方法、装置、系统、电子设备及计算机可读存储介质。
背景技术
在存储领域,用户对数据的数据可靠性、数据一致性是用户关心的核心问题。随着现代社会迈入大数据时代,大量的数据需要安全可靠的存储在数据中心,单个物理磁盘上存储的数据也日益增多,当单个物理磁盘在容量和安全性上不足以支撑存储系统业务时,存储领域专业技术人员将多个磁盘以某种特定方式组合起来,对外作为一个可见的逻辑设备来使用,才可满足用户的实际需求,由此诞生了RAID(Redundant Array of IndependentDisks,独立冗余磁盘阵列)技术。RAID技术是存储领域中的重要技术,RAID技术经历了RAID0、RAID1、RAID5、RAID6、RAID10、RAID50、RAID60和RAID-TP,这些阵列级别使用条带、镜像数据和校验数据来保证数据可靠性,并通过阵列中多个磁盘驱动并发处理I/O(Input/Output,即输入/输出)以提高RAID的I/O性能,其中RAID5和RAID6阵列在实际应用中使用的最多,并能通过给RAID添加热备盘进一步提高数据的可靠性。
在存储系统提高数据可靠性方面,目前业界采用RAID技术提高数据可靠性,利用RAID中的冗余磁盘来恢复故障盘的数据,例如RAID5阵列利用P校验分块的单冗余恢复一个故障盘数据,RAID6阵列利用P校验和Q校验的双冗余恢复两个故障盘数据。虽然采用RAID冗余阵列可以有效提升数据可靠性,但是有一种特殊情况出现,即用户在将数据写入磁盘后,一段时间过后当用户读取存储在磁盘上的数据时发现与写入磁盘的数据不同,这个是数据一致性问题。数据一致性问题产生的原因可能是数据已被损坏,亦或是数据的完整性已丢失,数据的完整性已丢失-术语“数据损坏”或“数据完整性问题”,即出现数据一致性问题。
目前常用的保证数据一致性的方法是将所有的写IO写入源数据卷的同时,将其复制一份暂存在一个日志中,并完全按照IO进入的先后顺序排列,然后再按照FIFO(FirstInput First Output,先进先出队列)先入先出的方式进行日志回放,生成的数据流传输到远端存储系统中。这种方法在一定程度上保证了数据一致性,但是由于日志需要占用大量的内存空间,会导致存储系统性能下降,影响用户业务,使用户体验下降。
鉴于此,在进行数据存储时如何提升存储系统的性能、提升用户使用体验成为本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种数据存储方法、装置、系统、电子设备及计算机可读存储介质,在使用过程中能够有效保证数据一致性,减少内存空间的占用,利于提高存储系统性能,保证用户业务顺利进行,提升用户使用体验。
为解决上述技术问题,本发明实施例提供了一种数据存储方法,应用于本地存储系统,包括:
基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记;其中,各所述顺序标识按照预设顺序进行排序;
将标记后的写数据存储至对应的本地逻辑卷;
将所述本地逻辑卷中的各写数据发送至远端存储系统,以便所述远端存储系统基于所述写数据中的顺序标识将各所述写数据分别存储至对应的镜像逻辑卷。
在一种实施例中,所述基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记,包括:
针对当前接收到的写数据,基于所述预设顺序及上一个顺序标识,确定当前的顺序标识;
采用所述当前的顺序标识对所述写数据进行标记。
在一种实施例中,各个所述顺序标识为按照预设顺序排序的数字。
在一种实施例中,在所述基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记之前,还包括:
基于创建逻辑卷指令建立多个本地逻辑卷;
将所述创建逻辑卷指令发送至远端存储系统,以便所述远端存储系统基于所述创建逻辑卷指令创建与每个所述本地逻辑卷一一对应的镜像逻辑卷。
在一种实施例中,在所述基于创建逻辑卷指令建立多个本地逻辑卷之前,还包括:
接收用户输入的创建逻辑卷指令。
在一种实施例中,所述接收用户输入的创建逻辑卷指令,包括:
接收用户通过命令行或图形化界面输入的创建逻辑卷指令。
在一种实施例中,在所述建立多个本地逻辑卷之后,还包括:
建立字节元数据,所述字节元数据包括多个字节,每个所述字节与每个所述本地逻辑卷一一对应。
在一种实施例中,在所述将标记后的写数据存储至对应的本地逻辑卷之后,还包括:
基于所述写数据的顺序标识及存储地址,对于所述本地逻辑卷对应的字节中的记录信息进行更新。
在一种实施例中,还包括:
在读取本地数据错误的情况下,向所述远端存储系统发送数据恢复指令;
接收远端接收所述远端存储系统基于所述数据恢复指令返回的各镜像数据;
基于每个所述镜像数据的顺序标识及所述字节元数据中的各顺序标识,确定是否存在丢失数据,若否,则基于各个所述镜像数据生成输出数据。
本发明实施例中还提供了一种数据存储装置,应用于本地存储系统,包括:
标记模块,用于基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记;其中,各所述顺序标识按照预设顺序进行排序;
存储模块,用于将标记后的写数据存储至对应的本地逻辑卷;
第一发送模块,用于将所述本地逻辑卷中的各写数据发送至远端存储系统,以便所述远端存储系统基于所述写数据中的顺序标识将各所述写数据分别存储至对应的镜像逻辑卷。
本发明实施例中还提供了一种数据存储方法,应用于远端存储系统,包括:
接收本地存储系统发送的各个写数据,每个所述写数据携带有对应的顺序标识;其中,各所述顺序标识按照预设顺序进行排序;
基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中。
在一种实施例中,所述基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中,包括:
基于各所述顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若不连续,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到所述目标写数据时,将所述目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
在一种实施例中,还包括:
在确定所述目标写数据丢失的情况下,生成告警信息。
在一种实施例中,所述确定所述目标写数据丢失,包括:
在所述缓存的使用率达到预设阈值的情况下,确定所述目标写数据丢失。
在一种实施例中,所述确定所述目标写数据丢失,包括:
在预设时间内未接收到所述目标写数据的情况下,确定所述目标写数据丢失。
在一种实施例中,还包括:
将所述告警信息反馈至所述本地存储系统。
在一种实施例中,还包括:
获取所述本地存储系统发送的数据恢复指令;
基于所述数据恢复指令,将各所述镜像逻辑卷中的镜像数据发送至所述本地存储系统,以便所述本地存储系统基于各所述镜像数据中的顺序标识生成输出数据。
本发明实施例还提供了一种数据存储装置,应用于远端存储系统,包括:
第一接收模块,用于接收本地存储系统发送的各个写数据,每个所述写数据携带有对应的顺序标识;其中,各所述顺序标识按照预设顺序进行排序;
写入模块,用于基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中。
本发明实施例还提供了一种数据存储系统,包括:
本地存储系统,用于基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记,并将标记后的写数据存储至对应的本地逻辑卷,以及将所述本地逻辑卷中的各写数据发送至远端存储系统;其中,各所述顺序标识按照预设顺序进行排序;
远端存储系统,用于接收本地存储系统发送的各个写数据,基于所述写数据中的顺序标识将各所述写数据分别存储至对应的镜像逻辑卷。
本发明实施例还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述数据存储方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述数据存储方法的步骤。
本发明实施例提供了一种数据存储方法,应用于本地存储系统,包括:基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记;其中,各顺序标识按照预设顺序进行排序;将标记后的写数据存储至对应的本地逻辑卷;将本地逻辑卷中的各写数据发送至远端存储系统,以便远端存储系统基于写数据中的顺序标识将各写数据分别存储至对应的镜像逻辑卷。
有益效果在于,本发明中的本地存储系统在接收到各个写数据时,根据接收写数据的先后顺序,基于按照预设顺序排序的各顺序标识,采用对应的顺序标识对接收到的写数据进行标记,然后将标记后的写数据存储至相应的本地逻辑卷中,并将本地逻辑卷中的写数据发送至远端存储系统,以便远端存储系统根据各写数据中的顺序标识确定各写数据的存储顺序及数据完整性,并将写数据写入对应的镜像逻辑卷中,本发明中通过为写数据添加顺序标识的方式,能够有效保证数据一致性,减少内存空间的占用,利于提高存储系统性能,保证用户业务顺利进行,提升用户使用体验。
本发明实施例还提供了一种数据存储方法、装置、系统、设备及计算机可读存储介质,具有上述相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法的流程示意图;
图2为本发明实施例提供的一种主机IO与RAID组中逻辑卷关系图;
图3为本发明实施例提供的一种字节元数据示意图;
图4为本发明实施例提供的一种数据存储装置的结构示意图;
图5为本发明实施例提供的另一种数据存储方法的流程示意图;
图6为本发明实施例提供的另一种数据存储装置的结构示意图;
图7为本发明实施例提供的一种数据存储系统的结构示意图;
图8为本发明实施例提供的另一种数据存储方法的流程示意图;
图9为本发明实施例提供的一种电子设备的结构示意图;
图10为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
本发明实施例提供了一种数据存储方法、装置、系统、电子设备及计算机可读存储介质,在使用过程中能够有效保证数据一致性,减少内存空间的占用,利于提高存储系统性能,保证用户业务顺利进行,提升用户使用体验。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种数据存储方法的流程示意图。该数据存储方法,应用于本地存储系统,包括:
S110:基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记;其中,各顺序标识按照预设顺序进行排序;
需要说明的是,本发明实施例中可以预先确定用来对写数据进行标记的顺序标识的顺序,也即先确定多个顺序标识,并且各个顺序标识具有一定的顺序,从而本地存储系统可以在接收到用户输入的写数据(也即写IO数据)后,获取相应的顺序标识添加至该写数据中以对该写数据进行标记,具体可以添加至该写数据的末端,以减少存储空间的占用,由于本地存储系统接收到的写数据是逐个接收的,也即各个写数据是先后接收到的,因此,本地存储系统可以每接收到一个写数据,就获取一个相应的顺序标识对该写数据进行标记,从而通过各个写数据中的顺序标识的顺序来表示各个写数据的先后顺序。
S120:将标记后的写数据存储至对应的本地逻辑卷;
具体的,针对每个写数据,在将该写数据通过相应的顺序标识标记后,将标记后的写数据存储至对应的本地逻辑卷中。
S130:将本地逻辑卷中的各写数据发送至远端存储系统,以便远端存储系统基于写数据中的顺序标识将各写数据分别存储至对应的镜像逻辑卷。
需要说明的是,可以实时的将本地逻辑卷中的各写数据发送至远端存储系统,由于各写数据中携带有顺序标识,因此在远端存储系统接收到各个写数据后,根据各写数据中的顺序标识及预设顺序可以确定接收到的各写数据的顺序,以及确定数据的完整性,在确定数据完整的情况下,将接收到的各个写数据分别存储中对应的镜像逻辑卷中,其中,镜像逻辑卷与本地逻辑卷一一对应。
具体的,远端存储系统在先后接收到各个写数据后,可以根据各个写数据各自携带的顺序标识以及各顺序标识的预设顺序,判断各个写数据是否按照顺序进行的,具体可以判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若不连续,则说明存在未接收的目标写数据,此时可以将当前接收到的写数据以及在当前时刻之后接收到的各写数据均存储至缓存中进行缓存,直至接收到目标写数据时,将接收到的目标写数据及缓存的各个写数据按照对应的各个顺序标识的顺序分别写入至相应的镜像逻辑卷中,从而可以保障远端存储系统中的镜像数据是完整、正确的。
有益效果在于,本发明中的本地存储系统在接收到各个写数据时,根据接收写数据的先后顺序,基于按照预设顺序排序的各顺序标识,采用对应的顺序标识对接收到的写数据进行标记,然后将标记后的写数据存储至相应的本地逻辑卷中,并将本地逻辑卷中的写数据发送至远端存储系统,以便远端存储系统根据各写数据中的顺序标识确定各写数据的存储顺序及数据完整性,并将写数据写入对应的镜像逻辑卷中,本发明中通过为写数据添加顺序标识的方式来标记各个写数据的顺序,能够有效保证数据一致性,无需额外设置日志来存储各个写数据,大大的减少内存空间的占用,利于提高存储系统性能,保证用户业务顺利进行,提升用户使用体验。
在一种实施例中,上述S110中基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记的过程,可以包括:
针对当前接收到的写数据,基于预设顺序及上一个顺序标识,确定当前的顺序标识;
采用当前的顺序标识对写数据进行标记。
需要说明的是,在实际应用中预先确定各个顺序标识的顺序,也即确定出预设顺序,在对写数据进行标记时,针对当前接收到的写数据,可以根据上一个顺序标识及预设顺序,确定出当前需要使用的顺序标识,然后采用该当前需要使用的顺序标识对该当前接收到的写数据进行标记。
具体的,可以在接收到用户输入的第一个写数据时,采用第一个顺序标识对该第一个写数据进行标记,在接收到第二个写数据时,采用第二个顺序标识对该第二个写数据进行标记,依次类推,在接收到第n个写数据时,采用第n个顺序标识对该第n个写数据进行标记。
进一步的,各个顺序标识为按照预设顺序排序的数字。
需要说明的是,本发明实施例中为了方便对各个顺序标识的管理和使用,可以采用预设顺序排序的各个数字作为顺序标识,例如,可以采用自然数,或者从1起的整数,预设顺序可以按照升序进行排序。
例如,可以在接收到用户输入的第一个写数据时,为该第一个写数据标记自然数1,在接收到第二个写数据时,对顺序标识进行加一操作,得到第二个写数据的顺序标识,为该第二个写数据标记自然数2,依次类推,在接收到第n个写数据时,采用上一个写数据的顺序标识n-1做加一操作,得到当前的顺序标识n,从而采用该自然数n对该第n个写数据进行标记。在一种实施例中,在上述S110中基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记之前,该方法还可以包括:
基于创建逻辑卷指令建立多个本地逻辑卷;
将创建逻辑卷指令发送至远端存储系统,以便远端存储系统基于创建逻辑卷指令创建与每个本地逻辑卷一一对应的镜像逻辑卷。
需要说明的是,在实际应用中可以在本地存储系统和远端存储系统均初始化数据同步完成后,将第一个接收到的写数据作为第一个写数据并为其添加第一个顺序标识进行标记,依次类推以采用对应的顺序标识对每个接收到的写数据进行标记。
具体的,可以在本地存储系统和远端存储系统上电启动后,本地存储系统根据接收到的创建逻辑卷指令建立多个本地逻辑卷,本地存储系统可以在接收到创建逻辑卷指令时或者在创建本地逻辑卷之后,将创建逻辑卷指令发送至远端存储系统,远端存储系统基于该创建逻辑卷指令创建多个镜像逻辑卷,并且每个镜像逻辑卷与每个本地逻辑卷一一对应。
进一步的,在上述基于创建逻辑卷指令建立多个本地逻辑卷之前,该方法还可以包括:
接收用户输入的创建逻辑卷指令。
具体的,本地存储系统可以接收用户输入的创建逻辑卷指令,其中,用户可以通过命令行接口(Command Line Interface,CLI)或者图形化界面(Graphics User Interface,GUI)输入创建逻辑卷指令,然后再基于该创建逻辑卷指令建立多个本地逻辑卷,同时远端存储系统也基于该创建逻辑卷指令建立与每个本地逻辑卷一一对应的镜像逻辑卷。
进一步的,在上述建立多个本地逻辑卷之后,该方法还可以包括:
建立字节元数据,字节元数据包括多个字节,每个字节与每个本地逻辑卷一一对应。
需要说明的是,本发明实施例中为了便于查询管理,考虑到字节元数据中的字节内存是连续的,因此本发明实施例中可以通过字节元数据来管理各个本地逻辑卷的写数据的,其中,字节元数据中包括多个字节,各个字节线性排列。也即,字节元数据由多个字节构成的管理条带的数据结构,是一个一维线性数组的数据结构。
更进一步的,在上述将标记后的写数据存储至对应的本地逻辑卷之后,该方法还可以包括:
基于写数据的顺序标识及存储地址,对于本地逻辑卷对应的字节中的记录信息进行更新。
具体的,在本发明实施例中在本地存储系统将标记后的写数据存储至相应的本地逻辑卷后,根据该写数据在本地逻辑卷中的存储地址及该写数据的顺序标识,对与该本地逻辑卷对应的字节中的记录信息进行更新,其中,具体可以更新存储地址和顺序标识。
其中,主机IO与RAID组中逻辑卷关系图如图2所示,字节元数据示意图如图3所示,图2中的磁盘0中的数据块D1、D2和磁盘1中的数据块D1、D2构成逻辑卷0;磁盘2中的数据块D1、D3,磁盘3中的数据块D1、校验块P2和磁盘4中的校验块P1、数据块D1构成逻辑卷1;磁盘5中的数据块D1、D3,磁盘6中的数据块D2、校验块P2,磁盘7中的校验块P1、Q2和磁盘8中的校验块Q1、数据块D4构成逻辑卷2;磁盘0中的数据块D3、D4和磁盘1中的数据块D3、D4构成逻辑卷3;磁盘2中的校验块P3、数据块D7,磁盘3中的数据块D5、D8和磁盘4中的数据块D6、校验块P4构成逻辑卷4;磁盘5中的校验块P3、Q4,磁盘6中的校验块Q3、数据块D7,磁盘7中的数据块D5、D8和磁盘8中的数据块D6、校验块P4构成逻辑卷5;磁盘0中的数据块D5、D6和磁盘1中的D5、D6构成逻辑卷6;磁盘2中的数据块D9、校验块P6,磁盘3中的校验块P5、数据块D11和磁盘4中的数据块D10、D12构成逻辑卷7;磁盘5中的数据块D9、D10,磁盘6中的数据块D10、校验块P6,磁盘7中的校验块P5、Q6和磁盘8中的校验块Q5、数据块D12构成逻辑卷8;磁盘0中的数据块D7、D8、D9和磁盘1中的D7、D8、D9构成逻辑卷9;磁盘2中的数据块D13、D15、校验块P9,磁盘3中的数据块D14、校验块P8、数据块D17和磁盘4中的校验块P7、数据块D16、D18构成逻辑卷10;磁盘5中的校验块P7、Q8、数据块D17,磁盘6中的校验块Q7、数据块D15、D18,磁盘7中的数据块D13、D16、校验块P9和磁盘8中的数据块D14、校验块P8、Q9构成逻辑卷11;磁盘0中的数据块D10和磁盘1中的D10构成逻辑卷12;磁盘2中的数据块D19,磁盘3中的数据块D20和磁盘4中的校验块P10构成逻辑卷13;磁盘5中的数据块D19,磁盘6中的校验块P10,磁盘7中的校验块Q10和磁盘8中的数据块D20构成逻辑卷14。
例如在采用自然数对写数据进行标识时,如图2中的逻辑卷区域101所示,针对第1024个主机IO写入逻辑卷0(也即本地逻辑卷),如逻辑卷区域102所示,第1025个主机IO写入逻辑卷1等。在字节元数据中的字节0(也即Byte[0])项管理对应的逻辑卷0,字节1(也即Byte[1])项管理对应的逻辑卷1,同理字节N(也即Byte[N])项管理相应的逻辑卷n。如图3所示的字节元数据组织方式中,字节0(也即Byte[0] )管理0号逻辑卷、字节1(也即Byte[1])管理1号逻辑卷,因为第1024个主机IO写入逻辑卷0、第1025个主机IO写入逻辑卷1,所以Byte[0]字节中存放的是1024数据的相关信息、Byte[1]字节中存放的是1025数据的相关信息。
进一步的,该方法还可以包括:
在读取本地数据错误的情况下,向远端存储系统发送数据恢复指令;
接收远端接收远端存储系统基于数据恢复指令返回的各镜像数据;
基于每个镜像数据的顺序标识及字节元数据中的各顺序标识,确定是否存在丢失数据,若否,则基于各个镜像数据生成输出数据。
需要说明的是,在用户读取本地存储系统错误的情况下,说明本地存储系统中的本地逻辑卷中存储的数据发生错误或者丢失,本地存储系统可以向远端存储系统发送数据恢复指令,远端存储系统接收到数据恢复指令后将远端存储系统的镜像逻辑卷中相应的镜像数据发送至本地存储系统,由于每个镜像数据中均携带有相应的顺序标识,因此,本地存储系统可以在接收到各个镜像数据后,根据字节元数据中记录的与原写数据对应的各个顺序标识,可以进一步确定接收到的各个镜像数据是否完成,也即是否存在因传输链路中断导致某个镜像数据丢失的问题,在镜像数据完整的情况下即可实现对本地逻辑卷中存储数据的恢复,并生成输出数据提供给用户,从而更好地保证数据一致性。
当然,在实际应用中若用户读取备份磁盘时,发现读取数据与最初写入的数据不一致的情况下,也可以向远端存储系统发送数据恢复指令,并接收远端存储系统返回的各个镜像数据,在基于各镜像数据及字节元数据中存储的各个顺序标识确定出数据完整的情况下,可以生成输出数据提供给用户,同时也可以对备份磁盘的数据进行恢复,从而更好地保证数据一致性。
另外,在本地存储系统数据传输过程中,一旦本地存储系统发生灾难或者链路中断问题,为了避免远端存储系统中的数据不一致的问题,本发明实施例通过使用镜像逻辑卷把远端存储系统上的数据进行回退,从而解决直接读取远端存储系统时出现读回数据与原数据不一致的问题,从而最大程度的提升存储环境的数据可靠性,保障数据一致性。
在上述实施例的基础上,本发明实施例中还提供了一种数据存储装置,应用于本地存储系统,具体请参照图4,该装置包括:
标记模块11,用于基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记;其中,各顺序标识按照预设顺序进行排序;
存储模块12,用于将标记后的写数据存储至对应的本地逻辑卷;
第一发送模块13,用于将本地逻辑卷中的各写数据发送至远端存储系统,以便远端存储系统基于写数据中的顺序标识将各写数据分别存储至对应的镜像逻辑卷。
在一种实施例中,上述标记模块11,可以包括:
第一确定单元,用于针对当前接收到的写数据,基于预设顺序及上一个顺序标识,确定当前的顺序标识;
标识单元,用于采用当前的顺序标识对写数据进行标记。
在一种实施例中,各个顺序标识为按照预设顺序排序的数字。
在一种实施例中,该装置还包括:
第一创建模块,用于基于创建逻辑卷指令建立多个本地逻辑卷;
第二发送模块,用于将创建逻辑卷指令发送至远端存储系统,以便远端存储系统基于创建逻辑卷指令创建与每个本地逻辑卷一一对应的镜像逻辑卷。
在一种实施例中,该装置还包括:
第二接收模块,用于接收用户输入的创建逻辑卷指令。
在一种实施例中,第二接收模块,用于接收用户通过命令行或图形化界面输入的创建逻辑卷指令。
在一种实施例中,还包括:
第二建立模块,用于建立字节元数据,字节元数据包括多个字节,每个字节与每个本地逻辑卷一一对应。
在一种实施例中,该装置还包括:
更新模块,用于基于写数据的顺序标识及存储地址,对于本地逻辑卷对应的字节中的记录信息进行更新。
在一种实施例中,该装置还包括:
第二发送模块,用于在读取本地数据错误的情况下,向远端存储系统发送数据恢复指令;
第三接收模块用于接收远端接收远端存储系统基于数据恢复指令返回的各镜像数据;
判断模块,用于基于每个镜像数据的顺序标识及字节元数据中的各顺序标识,确定是否存在丢失数据,若否,则触发第一生成模块;
第一生成模块,用于基于各个镜像数据生成输出数据。
需要说明的是,本发明实施例中所提供的数据存储装置具有与上述实施例中所提供的数据存储方法相同的有益效果,并且对于本发明实施例总所涉及到的数据存储方法的具体介绍请参照上述实施例,本申请在此不再赘述。
在上述实施例的基础上,本发明实施例中还提供了另一种数据存储方法,应用于远端存储系统,具体请参照图5,该方法包括:
S210:接收本地存储系统发送的各个写数据,每个写数据携带有对应的顺序标识;其中,各顺序标识按照预设顺序进行排序;
需要说明的是,本发明实施例中可以预先确定用来对写数据进行标记的顺序标识的顺序,也即先确定多个顺序标识,并且各个顺序标识具有一定的顺序,本地存储系统在接收到用户输入的写数据(也即写IO数据)后,获取相应的顺序标识添加至该写数据中以对该写数据进行标记,由于本地存储系统接收到的写数据是逐个接收的,本地存储系统可以每接收到一个写数据,就获取一个相应的顺序标识对该写数据进行标记,从而通过各个写数据中的顺序标识的顺序来表示各个写数据的先后顺序。本地存储系统在对写数据标记后,将标记后的写数据存储至本地逻辑卷,然后将本地逻辑卷中的写数据发送至远端存储系统,远端存储系统接收携带有顺序标识的写数据。
S220:基于各写数据中的顺序标识,将各写数据分别存储至对应的镜像逻辑卷中。
需要说明的是,远端存储系统接收到各个写数据后,根据各写数据中的顺序标识及预设顺序可以确定接收到的各写数据的顺序,以及确定数据的完整性,在确定数据完整的情况下,将接收到的各个写数据分别存储中对应的镜像逻辑卷中,其中,镜像逻辑卷与本地逻辑卷一一对应。
其中,顺序标识可以为数字,例如按照升序排列的自然数,远端存储系统在接收到本地存储系统发送的各个写数据后,根据每个写数据携带的自然数,按照自然数的顺序将各个写数据写入远端存储系统对应的镜像逻辑卷中。
进一步的,上述S220中基于各写数据中的顺序标识,将各写数据分别存储至对应的镜像逻辑卷中的过程,可以包括:
基于各顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若否,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到目标写数据时,将目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
需要说明的是,在实际应用中远端存储系统在接收到本地存储系统发送的各个写数据时,为了确保数据的完整性,可以针对当前接收到的写数据携带的顺序标识来确定当前接收到的写数据与上一个接收到的写数据是否连续,也即可以通过判断当前接收到的写数据的顺序标识是否为位于上一个写数据的顺序标识之后的顺序标识,若连续,则说明当前接收到的写数据就是位于上一个写数据之后的数据,可以将该写数据写入至相应的镜像逻辑卷中,若不连续,则说明当前接收到的写数据与上一个接收到的写数据之间存在其他没有接收到的写数据(也即目标写数据),目标写数据尚未传送到,通过当前接收到的协数据的顺序标识和上一个接收到的写数据的顺序标识,可以确定出没有接收到的目标写数据的顺序标识,远端存储系统则将当前接收到的写数据以及后续接收到的其他写数据存储至缓存中进行缓存,直至接收到的目标写数据后,将接收到的目标写数据写入至相应的镜像逻辑卷,并将缓存中的各个写数据根据相应的顺序标识写入至对应的镜像逻辑卷中,从而保障了数据的完整性和准确性,确保数据一致性。
例如,远端存储系统某时刻接收到顺序标识为1024的IO,将其写入镜像逻辑卷0中,随后又接收到顺序标识为1026的IO,此时系统就会确定出顺序标识1025的IO未接收到,系统会缓存所有已经接收到的1026之后的IO数据,直到接收到1025的IO,然后将1025的IO数据写入镜像逻辑卷1中,再将缓存的1026之后的IO数据分别写入相应的镜像逻辑卷中。
进一步的,该方法还可以包括:
在确定目标写数据丢失的情况下,生成告警信息。
需要说明的是,在远端存储系统接收不到目标写数据,确定出目标写数据丢失的情况下,则可以生成告警信息,还可以将该告警信息反馈至本地存储系统,以便本地存储系统对本地逻辑卷或传输链路等进行维护。
其中,在实际应用中可以通过两种方式来确定目标写数据是否丢失,一种可以通过计算缓存的使用率,并且在缓存的使用率达到预设阈值的情况下,确定目标写数据丢失;另一种可以从确定出存在未接收到的目标写数据起开始计时,并且在预设时间内未接收到目标写数据的情况下,确定目标写数据丢失。
进一步的,该方法还可以包括:
获取本地存储系统发送的数据恢复指令;
基于数据恢复指令,将各镜像逻辑卷中的镜像数据发送至本地存储系统,以便本地存储系统基于各镜像数据中的顺序标识生成输出数据。
还需要说明的是,在用户读取本地存储系统错误的情况下,说明本地存储系统中的本地逻辑卷中存储的数据发生错误或者丢失,本地存储系统可以向远端存储系统发送数据恢复指令,远端存储系统接收到数据恢复指令后将远端存储系统的镜像逻辑卷中相应的镜像数据发送至本地存储系统,由于每个镜像数据中均携带有相应的顺序标识,因此,本地存储系统可以在接收到各个镜像数据后,根据字节元数据中记录的与原写数据对应的各个顺序标识,可以进一步确定接收到的各个镜像数据是否完成,也即是否存在因传输链路中断导致某个镜像数据丢失的问题,在镜像数据完整的情况下即可实现对本地逻辑卷中存储数据的恢复,并生成输出数据提供给用户,从而更好地保证数据一致性。
在上述实施例的基础上,本发明实施例还提供了一种数据存储装置,应用于远端存储系统,具体请参照图6。该装置包括:
第一接收模块21,用于接收本地存储系统发送的各个写数据,每个写数据携带有对应的顺序标识;其中,各顺序标识按照预设顺序进行排序;
写入模块22,用于基于各写数据中的顺序标识,将各写数据分别存储至对应的镜像逻辑卷中。
在一种实施例中,写入模块22,包括:
第一判断单元,用于基于各顺序标识的预设顺序,判断当前接收到的写数据的顺序标识是否与上一个接收到的写数据的顺序标识连续,若连续,则触发写入单元;若否,则触发缓存单元;
写入单元,用于将当前接收到的写数据写入至对应的镜像逻辑卷中;
缓存单元,用于确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到目标写数据时,将目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
在一种实施例中,该装置还包括:
第二生成模块,用于在确定目标写数据丢失的情况下,生成告警信息。
在一种实施例中,第二生成模块,用于:
在缓存的使用率达到预设阈值的情况下,确定目标写数据丢失。
在一种实施例中,第二生成模块,用于:
在预设时间内未接收到目标写数据的情况下,确定目标写数据丢失。
在一种实施例中,该装置还包括:
反馈模块,用于将告警信息反馈至本地存储系统。
在一种实施例中,该装置还包括:
获取模块,用于获取本地存储系统发送的数据恢复指令;
第三发送模块,用于基于数据恢复指令,将各镜像逻辑卷中的镜像数据发送至本地存储系统,以便本地存储系统基于各镜像数据中的顺序标识生成输出数据。
需要说明的是,本发明实施例中所提供的数据存储装置具有与上述实施例中所提供的数据存储方法相同的有益效果,并且对于本发明实施例总所涉及到的数据存储方法的具体介绍请参照上述实施例,本申请在此不再赘述。
在上述实施例的基础上,本发明实施例还提供了一种数据存储系统,具体请参照图7,该系统包括:
本地存储系统1,用于基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记,并将标记后的写数据存储至对应的本地逻辑卷,以及将本地逻辑卷中的各写数据发送至远端存储系统;其中,各顺序标识按照预设顺序进行排序;
远端存储系统2,用于接收本地存储系统发送的各个写数据,基于写数据中的顺序标识将各写数据分别存储至对应的镜像逻辑卷。
需要说明的是,本发明实施例中可以预先确定用来对写数据进行标记的顺序标识的顺序,也即先确定多个顺序标识,并且各个顺序标识具有一定的顺序,本地存储系统1在接收到用户输入的写数据(也即写IO数据)后,获取相应的顺序标识添加至该写数据中以对该写数据进行标记,由于本地存储系统1接收到的写数据是逐个接收的,本地存储系统1可以每接收到一个写数据,就获取一个相应的顺序标识对该写数据进行标记,从而通过各个写数据中的顺序标识的顺序来表示各个写数据的先后顺序。本地存储系统1在对写数据标记后,将标记后的写数据存储至本地逻辑卷,然后将本地逻辑卷中的写数据发送至远端存储系统2。
远端存储系统2接收到各个写数据后,根据各写数据中的顺序标识及预设顺序可以确定接收到的各写数据的顺序,以及确定数据的完整性,在确定数据完整的情况下,将接收到的各个写数据分别存储中对应的镜像逻辑卷中,其中,镜像逻辑卷与本地逻辑卷一一对应。
其中,顺序标识可以为数字,例如按照升序排列的自然数,远端存储系统2在接收到本地存储系统1发送的各个写数据后,根据每个写数据携带的自然数,按照自然数的顺序将各个写数据写入远端存储系统2对应的镜像逻辑卷中。
具体的,本地存储系统1和远端存储系统2在实现数据存储过程中执行的交互过程如图8所示,包括:
S310:本地存储系统和远端存储系统上电启动;
S320:本地存储系统接收用户通过命令行或者图形化界面输入创建逻辑卷指令建立多个本地逻辑卷,远端存储系统建立与本地逻辑卷对应的镜像逻辑卷;
其中,创建逻辑卷指令中携带有所要创建的逻辑卷数量(例如一个或多个逻辑卷),本地存储系统可以将创建逻辑卷指令发送至远端存储系统,远端存储系统同样基于该创建逻辑卷指令创建多个镜像逻辑卷。
S330:本地存储系统建立与本地逻辑卷对应的字节元数据,其中,字节元数据中的字节数量与本地逻辑卷的数量相等;
例如,用户创建11个本地逻辑卷,则创建包括11个字节的字节元数据,该字节元数据可以为线性数组,形成一维线性表以方便查询管理。
S340:基于接收到的每个写数据的先后顺序,采用相应的顺序标识对写数据进行标记,并将标记后的写数据存储至对应的本地逻辑卷;
S350:本地存储系统将各个写数据通过物理链路或者网络传输到远端存储系统;
S360:远端存储系统判断写数据的顺序标识是否是按预设顺序进行;若是,则进入S370;若否,则进入S380;
S370:本地存储系统继续发送写数据到远端存储系统,并进入S310;
S380:本地存储系统继续发送数据到远端存储系统,并进入S309;
S309:远端存储系统将未接收到的目标写数据后的所有写数据都暂存在缓存中,直到接收到目标写数据后,将目标写数据及暂存在缓存中的各个写数据写入对应的镜像逻辑卷中;
S310:远端存储系统将写数据写入镜像逻辑卷。
具体的,远端存储系统可以基于各顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则,若否,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到目标写数据时,将目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
本发明基于IO顺序法和双控集群之间的字节元数据,使用字节元数据解决本地存储系统向远端存储系统传输数据过程中由于物理链路或者网络传输过程意外断路(例如意外掉电和网络故障等)而导致的镜像数据不完整问题,当本地存储系统出现数据一致性故障时,如果镜像数据不完整会导致本地存储系统的数据一致性故障无法解决,因此,本发明通过保证远端存储系统的镜像数据的完整性,进一步确保数据一致性。
可见,本发明实施例中通过为写数据添加顺序标识的方式来标记各个写数据的顺序,能够有效保证数据一致性,无需额外设置日志来存储各个写数据,大大的减少内存空间的占用,利于提高存储系统性能,保证用户业务顺利进行,提升用户使用体验。
图9为本申请实施例提供的一种电子设备的结构图,如图9所示,电子设备包括:
存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如上述实施例数据存储方法的步骤。
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的数据存储方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括Windows、Unix、Linux等。数据303可以包括但不限于设定的偏移量等。
在一些实施例中,电子设备还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
本领域技术人员可以理解,图9中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
可以理解的是,如果上述实施例中的数据存储方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,如图10所示,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质40上存储有计算机程序41,计算机程序41被处理器执行时实现如上述数据存储方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种数据存储方法,其特征在于,应用于本地存储系统,包括:
基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记;其中,各所述顺序标识按照预设顺序进行排序;
将标记后的写数据存储至对应的本地逻辑卷;
将所述本地逻辑卷中的各写数据发送至远端存储系统,以便所述远端存储系统基于所述写数据中的顺序标识将各所述写数据分别存储至对应的镜像逻辑卷;其中:
所述基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中,包括:
基于各所述顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若不连续,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到所述目标写数据时,将所述目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
2.根据权利要求1所述的数据存储方法,其特征在于,所述基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记,包括:
针对当前接收到的写数据,基于所述预设顺序及上一个顺序标识,确定当前的顺序标识;
采用所述当前的顺序标识对所述写数据进行标记。
3.根据权利要求1所述的数据存储方法,其特征在于,各个所述顺序标识为按照预设顺序排序的数字。
4.根据权利要求1所述的数据存储方法,其特征在于,在所述基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记之前,还包括:
基于创建逻辑卷指令建立多个本地逻辑卷;
将所述创建逻辑卷指令发送至远端存储系统,以便所述远端存储系统基于所述创建逻辑卷指令创建与每个所述本地逻辑卷一一对应的镜像逻辑卷。
5.根据权利要求4所述的数据存储方法,其特征在于,在所述基于创建逻辑卷指令建立多个本地逻辑卷之前,还包括:
接收用户输入的创建逻辑卷指令。
6.根据权利要求5所述的数据存储方法,其特征在于,所述接收用户输入的创建逻辑卷指令,包括:
接收用户通过命令行或图形化界面输入的创建逻辑卷指令。
7.根据权利要求4至6任意一项所述的数据存储方法,其特征在于,在所述建立多个本地逻辑卷之后,还包括:
建立字节元数据,所述字节元数据包括多个字节,每个所述字节与每个所述本地逻辑卷一一对应。
8.根据权利要求7所述的数据存储方法,其特征在于,在所述将标记后的写数据存储至对应的本地逻辑卷之后,还包括:
基于所述写数据的顺序标识及存储地址,对于所述本地逻辑卷对应的字节中的记录信息进行更新。
9.根据权利要求8所述的数据存储方法,其特征在于,还包括:
在读取本地数据错误的情况下,向所述远端存储系统发送数据恢复指令;
接收远端接收所述远端存储系统基于所述数据恢复指令返回的各镜像数据;
基于每个所述镜像数据的顺序标识及所述字节元数据中的各顺序标识,确定是否存在丢失数据,若否,则基于各个所述镜像数据生成输出数据。
10.一种数据存储装置,其特征在于,应用于本地存储系统,包括:
标记模块,用于基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记;其中,各所述顺序标识按照预设顺序进行排序;
存储模块,用于将标记后的写数据存储至对应的本地逻辑卷;
第一发送模块,用于将所述本地逻辑卷中的各写数据发送至远端存储系统,以便所述远端存储系统基于所述写数据中的顺序标识将各所述写数据分别存储至对应的镜像逻辑卷;其中:
所述基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中,包括:
基于各所述顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若不连续,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到所述目标写数据时,将所述目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
11.一种数据存储方法,其特征在于,应用于远端存储系统,包括:
接收本地存储系统发送的各个写数据,每个所述写数据携带有对应的顺序标识;其中,各所述顺序标识按照预设顺序进行排序;
基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中;其中:
所述基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中,包括:
基于各所述顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若不连续,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到所述目标写数据时,将所述目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
12.根据权利要求11所述的数据存储方法,其特征在于,还包括:
在确定所述目标写数据丢失的情况下,生成告警信息。
13.根据权利要求12所述的数据存储方法,其特征在于,所述确定所述目标写数据丢失,包括:
在所述缓存的使用率达到预设阈值的情况下,确定所述目标写数据丢失。
14.根据权利要求12所述的数据存储方法,其特征在于,所述确定所述目标写数据丢失,包括:
在预设时间内未接收到所述目标写数据的情况下,确定所述目标写数据丢失。
15.根据权利要求12所述的数据存储方法,其特征在于,还包括:
将所述告警信息反馈至所述本地存储系统。
16.根据权利要求11至15任意一项所述的数据存储方法,其特征在于,还包括:
获取所述本地存储系统发送的数据恢复指令;
基于所述数据恢复指令,将各所述镜像逻辑卷中的镜像数据发送至所述本地存储系统,以便所述本地存储系统基于各所述镜像数据中的顺序标识生成输出数据。
17.一种数据存储装置,其特征在于,应用于远端存储系统,包括:
第一接收模块,用于接收本地存储系统发送的各个写数据,每个所述写数据携带有对应的顺序标识;其中,各所述顺序标识按照预设顺序进行排序;
写入模块,用于基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中;其中:
所述写入模块,包括:
第一判断单元,用于基于各所述顺序标识的预设顺序,判断当前接收到的写数据的顺序标识是否与上一个接收到的写数据的顺序标识连续,若连续,则触发写入单元;若否,则触发缓存单元;
写入单元,用于将当前接收到的写数据写入至对应的镜像逻辑卷中;
缓存单元,用于确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到目标写数据时,将目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
18.一种数据存储系统,其特征在于,包括:
本地存储系统,用于基于接收到的每个写数据的先后顺序,采用相应的顺序标识对所述写数据进行标记,并将标记后的写数据存储至对应的本地逻辑卷,以及将所述本地逻辑卷中的各写数据发送至远端存储系统;其中,各所述顺序标识按照预设顺序进行排序;
远端存储系统,用于接收本地存储系统发送的各个写数据,基于所述写数据中的顺序标识将各所述写数据分别存储至对应的镜像逻辑卷;其中:
所述基于各所述写数据中的顺序标识,将各所述写数据分别存储至对应的镜像逻辑卷中,包括:
基于各所述顺序标识的预设顺序,判断当前接收到的写数据的顺序标识与上一个接收到的写数据的顺序标识是否连续,若连续,则将当前接收到的写数据写入至对应的镜像逻辑卷中,若不连续,则确定存在未接收的目标写数据,将当前接收到的写数据以及之后接收到的各写数据均存储至缓存中,直至接收到所述目标写数据时,将所述目标写数据及缓存的各个写数据按照各个顺序标识的顺序写入至相应的镜像逻辑卷中。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述数据存储方法的步骤,或实现如权利要求11至16任一项所述数据存储方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述数据存储方法的步骤,或实现如权利要求11至16任一项所述数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310749062.1A CN116501264B (zh) | 2023-06-25 | 2023-06-25 | 一种数据存储方法、装置、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310749062.1A CN116501264B (zh) | 2023-06-25 | 2023-06-25 | 一种数据存储方法、装置、系统、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116501264A CN116501264A (zh) | 2023-07-28 |
CN116501264B true CN116501264B (zh) | 2023-09-15 |
Family
ID=87323410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310749062.1A Active CN116501264B (zh) | 2023-06-25 | 2023-06-25 | 一种数据存储方法、装置、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501264B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086714A (zh) * | 2006-06-08 | 2007-12-12 | 国际商业机器公司 | 用于实施远程镜像操作的系统和方法 |
CN102084360A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 用于确认从数据存储设备读取正确的数据段的装置、系统和方法 |
CN102598019A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 用于分配存储的设备、系统和方法 |
CN109254878A (zh) * | 2018-09-27 | 2019-01-22 | 北京中电华大电子设计有限责任公司 | 一种基于字写的智能卡掉电备份方法和数据结构 |
CN113419670A (zh) * | 2021-03-31 | 2021-09-21 | 阿里巴巴新加坡控股有限公司 | 数据写入处理方法、装置及电子设备 |
CN114328018A (zh) * | 2021-12-28 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 快照的创建方法、计算设备及存储介质 |
CN116048878A (zh) * | 2022-12-30 | 2023-05-02 | 天津中科曙光存储科技有限公司 | 业务服务恢复方法、装置、计算机设备 |
-
2023
- 2023-06-25 CN CN202310749062.1A patent/CN116501264B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086714A (zh) * | 2006-06-08 | 2007-12-12 | 国际商业机器公司 | 用于实施远程镜像操作的系统和方法 |
CN102084360A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 用于确认从数据存储设备读取正确的数据段的装置、系统和方法 |
CN102598019A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 用于分配存储的设备、系统和方法 |
CN109254878A (zh) * | 2018-09-27 | 2019-01-22 | 北京中电华大电子设计有限责任公司 | 一种基于字写的智能卡掉电备份方法和数据结构 |
CN113419670A (zh) * | 2021-03-31 | 2021-09-21 | 阿里巴巴新加坡控股有限公司 | 数据写入处理方法、装置及电子设备 |
CN114328018A (zh) * | 2021-12-28 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 快照的创建方法、计算设备及存储介质 |
CN116048878A (zh) * | 2022-12-30 | 2023-05-02 | 天津中科曙光存储科技有限公司 | 业务服务恢复方法、装置、计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116501264A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10706072B2 (en) | Data replication method and storage system | |
EP3519969B1 (en) | Physical media aware spacially coupled journaling and replay | |
US20190163591A1 (en) | Remote Data Replication Method and System | |
US7761663B2 (en) | Operating a replicated cache that includes receiving confirmation that a flush operation was initiated | |
Chang et al. | Myriad: Cost-effective disaster tolerance | |
US7725655B2 (en) | Method of operating distributed storage system in which data is read from replicated caches and stored as erasure-coded data | |
US10489289B1 (en) | Physical media aware spacially coupled journaling and trim | |
US20100199126A1 (en) | Disk array apparatus, data distribution and management method, and data distribution and management program | |
US20200356270A1 (en) | Data updating technology | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及系统 | |
US20190065433A1 (en) | Remote direct memory access | |
CN107533537B (zh) | 存储系统、用于存储的方法和非暂时性计算机可读介质 | |
CN109710185A (zh) | 数据处理方法及装置 | |
US11314594B2 (en) | Method, device and computer program product for recovering data | |
CN113885809B (zh) | 数据管理系统及方法 | |
CN116501264B (zh) | 一种数据存储方法、装置、系统、设备及可读存储介质 | |
CN111563017A (zh) | 数据处理方法及装置 | |
US20190042365A1 (en) | Read-optimized lazy erasure coding | |
US11645333B1 (en) | Garbage collection integrated with physical file verification | |
US20200363958A1 (en) | Efficient recovery of resilient spaces | |
CN111831230A (zh) | 一种面向高性能计算及大数据的智能存储系统 | |
CN112363674B (zh) | 一种数据写入方法和装置 | |
WO2024040919A1 (zh) | 一种数据修复方法及存储设备 | |
CN110659152B (zh) | 一种数据处理方法及设备 | |
CN116303789A (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 |