CN113535095A - 一种双存储池数据存储方法、装置、设备及存储介质 - Google Patents

一种双存储池数据存储方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113535095A
CN113535095A CN202111071997.6A CN202111071997A CN113535095A CN 113535095 A CN113535095 A CN 113535095A CN 202111071997 A CN202111071997 A CN 202111071997A CN 113535095 A CN113535095 A CN 113535095A
Authority
CN
China
Prior art keywords
pool
write
data
splitting
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111071997.6A
Other languages
English (en)
Other versions
CN113535095B (zh
Inventor
孔军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111071997.6A priority Critical patent/CN113535095B/zh
Publication of CN113535095A publication Critical patent/CN113535095A/zh
Application granted granted Critical
Publication of CN113535095B publication Critical patent/CN113535095B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种双存储池数据存储方法、装置、设备及存储介质,该方法包括:接收客户端下发的写业务IO,将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;指示缓存池完成缓存池的操作事务OP的写操作,通过缓存池将数据池的操作事务OP转发给数据池,以指示数据池完成接收的操作事务OP的写操作;如果缓存池和/或数据池在完成相应写操作的过程中发生故障,则在修复缓存池和/或数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成写业务IO拆分所得全部操作事务OP对应写操作,向客户端返回写业务IO完成的信息。能够保证跨存储池的客户端请求的完成状态一致。

Description

一种双存储池数据存储方法、装置、设备及存储介质
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种双存储池数据存储方法、装置、设备及存储介质。
背景技术
为了提升存储系统的IO(Input/Output,输入/输出流,也可以称之为业务流)性能,目前大多在数据池之前添加一个由SSD创建的缓存池,见图1所示的分层存储结构。具体来说,在更快速的磁盘设备(通常是SSD)上创建缓存池,在慢速设备(通常是HDD)上创建数据池,缓存池放在数据池的前端,客户端的IO操作首先由缓存池完成,之后再将数据下刷到数据池,见图2所示的Cache tier(缓存分层)结构图。
大业务IO写的场景中,业务IO被拆分为缓存池中的OP(operation,操作,也可以称之为操作事务)和数据池中的OP,若缓存池的写完成,但数据池的写未完成,这两个OP对应的设备故障,故障恢复后系统检查写操作是否完成时,只会检查缓存池的写是否完成,进而基于缓存池的写是否完成向客户端返回相应的信息,这回导致数据池及缓存池的完成状态不一致的问题。
发明内容
本发明的目的是提供一种双存储池数据存储方法、装置、设备及存储介质,能够保证跨存储池的客户端请求的完成状态一致。
为了实现上述目的,本发明提供如下技术方案:
一种双存储池数据存储方法,包括:
接收客户端下发的写业务IO,并将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;
指示所述缓存池完成所述缓存池的操作事务OP的写操作,通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作;
对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成所述写业务IO拆分所得全部操作事务OP对应写操作,向所述客户端返回写业务IO完成的信息。
优选的,返回执行且执行完成将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤之后,还包括:
获取所述缓存池和/或所述数据池在发生故障之前的OP处理状态,如果所述OP处理状态表示所述写业务IO拆分所得全部操作事务OP对应写操作均未成功完成,则执行指示所述缓存池完成所述缓存池的操作事务OP的写操作的步骤,如果所述OP处理状态表示所述写业务IO拆分所得部分操作事务OP对应写操作未成功完成,则指示所述缓存池和/或所述数据池完成对应写操作未成功完成的操作事务OP的写操作,并执行对写操作的过程进行监测的步骤。
优选的,还包括:
在修复所述缓存池和/或所述数据池的故障后,判断所述写业务IO拆分所得的全部操作事务OP对应写操作是否均成功完成,如果是,则向所述客户端返回所述写业务IO完成的信息,否则,向所述客户端返回错误信息,并返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤。
优选的,判断所述写业务IO拆分所得的全部操作事务OP对应写操作是否均成功完成,包括:
判断所述缓存池中是否同时存在第一成功标记及第二成功标记,如果是,则确定所述写业务IO拆分所得的全部操作事务OP对应写操作均成功完成,如果否,则确定所述写业务IO拆分所得的全部操作事务OP对应写操作不是均成功完成;其中,所述第一成功标记为所述缓存池成功完成所述缓存池的操作事务OP的写操作后记录的,所述第二成功标记为所述数据池成功完成所述数据池的操作事务OP的写操作并反馈给所述缓存池后由所述缓存池记录的。
优选的,接收客户端下发的写业务IO之后,还包括:
如果所述写业务IO不大于单个块或者小于单个纠删条带,则将所述写业务IO拆分为缓存池的操作事务OP,并指示所述缓存池完成所述缓存池的操作事务OP的写操作,如果所述写业务IO等于单个纠删条带的整数倍,则将所述写业务IO拆分为数据池的操作事务OP,并通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作,如果所述写业务IO大于单个纠删条带且非单个纠删条带的整数倍,则执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤。
优选的,将所述写业务IO拆分为缓存池的操作事务OP之后,还包括:
对写操作的过程进行监测,如果所述缓存池在完成相应写操作的过程中发生故障,则在修复所述缓存池的故障后,判断所述写业务IO拆分所得缓存池的操作事务OP对应写操作是否成功完成,如果是,则向所述客户端返回所述写业务IO完成的信息,如果否,向所述客户端返回错误信息,并返回执行将所述写业务IO拆分为缓存池的操作事务OP的步骤。
优选的,将所述写业务IO拆分为数据池的操作事务OP之后,还包括:
对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,判断所述写业务IO拆分所得数据池的操作事务OP对应写操作是否成功完成,如果是,则向所述客户端返回所述写业务IO完成的信息,如果否,向所述客户端返回错误信息,并返回执行将所述写业务IO拆分为数据池的操作事务OP的步骤。
一种双存储池数据存储装置,包括:
拆分模块,用于:接收客户端下发的写业务IO,并将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;
写模块,用于:指示所述缓存池完成所述缓存池的操作事务OP的写操作,通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作;
返回模块,用于:对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成所述写业务IO拆分所得全部操作事务OP对应写操作,向所述客户端返回写业务IO完成的信息。
一种双存储池数据存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述双存储池数据存储方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述双存储池数据存储方法的步骤。
本发明提供了一种双存储池数据存储方法、装置、设备及存储介质,该方法包括:接收客户端下发的写业务IO,并将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;指示所述缓存池完成所述缓存池的操作事务OP的写操作,通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作;对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成所述写业务IO拆分所得全部操作事务OP对应写操作,向所述客户端返回写业务IO完成的信息。本申请在分层存储特性下,由数据池及缓存池分别完成对客户端发送的写IO拆分所得对应OP的写操作过程中,如果数据池和/或缓存池发生故障,则在故障恢复后返回执行写IO拆分的步骤,直至数据池及缓存池均成功完成相应写操作,才向客户端返回写操作成功的信息,从而保证跨存储池的客户端请求的完成状态一致。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为分层存储结构示意图;
图2为Cache tier结构图;
图3为本发明实施例提供的一种双存储池数据存储方法的流程图;
图4为本发明实施例提供的一种双存储池数据存储方法的具体实现图;
图5为本发明实施例提供的一种双存储池数据存储装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图3,其示出了本发明实施例提供的一种双存储池数据存储方法的流程图,具体可以包括:
S11:接收客户端下发的写业务IO,将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP。
其中,IO为输入输出流或者业务流,相应的写IO可以为写业务,本申请的写业务IO中业务为对IO的解释,因此写业务IO即为写IO;OP为操作或者操作事务,本申请的操作事务OP中操作事务为对OP的解释,因此操作事务OP即为OP。本申请实施例以写IO及OP分别表示写业务IO及操作事务OP进行具体说明。
本申请实施例中缓存池及数据池为基于缓存分层特性实现的,具体来说,缓存分层特性是在更快速的磁盘设备(通常是SSD)上创建缓存池,在慢速设备(通常是HDD)上创建数据池,缓存池放在数据池的前端,客户端的IO操作首先由缓存池完成,之后再将数据下刷到数据池。相应的,在接收到客户端下发的IO(包括写IO及读IO)后均会将IO进行拆分,进而按照拆分后的结果到缓存池和/或数据池中实现相应的IO操作,本申请实施例针对写IO实现数据存储。
本申请实施例在接收到客户端下发的写IO后,可以将写IO拆分为缓存池的OP及数据池的OP。具体来说,在缓存分层中不同层(包括缓存池及数据池)中块大小是相同的,且缓存分层中的数据是以纠删条带的方式实现存在的,以提高其中数据存储的可靠性;基于此,本申请实施例中写IO中等于纠删条带大小的整数倍的部分拆分为数据池的OP,将不大于块大小或者小于单个纠删条带大小的部分拆分为缓存池的OP,进而对数据池的OP及缓存池的OP分别进行相应的写操作。其中,OP与现有技术中对应概念的含义相同,可以理解为需要实现的操作,而写IO拆分所得的OP也即为实现写IO的写操作。
S12:指示缓存池完成缓存池的操作事务OP的写操作,通过缓存池将数据池的操作事务OP转发给数据池,以指示数据池完成接收的操作事务OP的写操作。
将缓存池的OP提交写事务,缓存池完成缓存池的OP对应写操作;将数据池的OP提交代理写,也即由缓存池将数据池的OP转发给数据池,并设置数据池的OP的pool为数据池的pool(即:数据池的OP由数据池完成相应写操作),进而提交代理写的请求,以由数据池完成数据池的OP对应写操作。
S13:对写操作的过程进行监测,如果缓存池和/或数据池在完成相应写操作的过程中发生故障,则在修复缓存池和/或数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成写业务IO拆分所得全部操作事务OP对应写操作,向客户端返回写业务IO完成的信息。
如果在完成写操作的过程中缓存池和/或数据池所在的设备(设备即为OSD或者节点)发生故障,则说明写操作很可能并未成功完成,因此修复发生故障的设备,并在设备发生的故障修复完成后返回执行拆分写IO的步骤,直至缓存池及数据池均成功完成相应写操作为止,此时则可以向客户端返回写IO完成的信息,以使得客户端获知其下发的写IO对应写操作完成的信息。
本申请在分层存储特性下,由数据池及缓存池分别完成对客户端发送的写IO拆分所得对应OP的写操作过程中,如果数据池和/或缓存池发生故障,则在故障恢复后返回执行写IO拆分的步骤,直至数据池及缓存池均成功完成相应写操作,才向客户端返回写操作成功的信息,从而保证跨存储池的客户端请求的完成状态一致。
本发明实施例提供的一种双存储池数据存储方法,返回执行且执行完成将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤之后,还可以包括:
获取缓存池和/或数据池在发生故障之前的OP处理状态,如果OP处理状态表示写业务IO拆分所得全部操作事务OP对应写操作均未成功完成,则执行指示缓存池完成缓存池的操作事务OP的写操作的步骤,如果OP处理状态表示写业务IO拆分所得部分操作事务OP对应写操作未成功完成,则指示缓存池和/或数据池完成对应写操作未成功完成的操作事务OP的写操作,并执行对写操作的过程进行监测的步骤。
需要说明的是,本申请在监测写操作的过程中可以记录写操作完成的情况,也即OP处理状态,如缓存池的OP对应写操作已经完成、数据池的OP对应写操作已经完成等;基于此,在每次返回执行且执行完成客户端下发的写IO至数据池的OP及缓存池的OP的拆分后,可以获取设备发生故障之前的OP处理状态,通过OP处理状态可以获知OP对应写操作是否已经成功完成,进而为了避免数据的重新写入,对于已经成功完成对应写操作的OP(如缓存池的全部OP或者数据池的全部OP),则无需实现相应的写操作,对于未成功完成对应写操作的OP,则需要继续实现相应的写操作。当然无论何时实现OP对应写操作,对于缓存池的OP均是指示缓存池完成缓存池的OP的写操作,对于数据池的OP均是通过缓存池将数据池的OP转发给数据池,以指示数据池完成接收的OP的写操作。
本发明实施例提供的一种双存储池数据存储方法,还可以包括:
在修复缓存池和/或数据池的故障后,判断写业务IO拆分所得的全部操作事务OP对应写操作是否均成功完成,如果是,则向客户端返回写业务IO完成的信息,否则,向客户端返回错误信息,并返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤。
需要说明的是,为了减少无用步骤的浪费,进而提高数据存储效率,本申请实施例中在修复缓存池和/或数据池的故障后,可以先判断缓存池及数据池需完成的写操作是否均成功完成,如果是的话,则向客户端返回写IO完成的信息,否则向客户端返回相应的错误信息,并返回执行将写IO拆分为缓存池的OP及数据池的OP的步骤。
本发明实施例提供的一种双存储池数据存储方法,判断写业务IO拆分所得的全部操作事务OP对应写操作是否均成功完成,可以包括:
判断缓存池中是否同时存在第一成功标记及第二成功标记,如果是,则确定写业务IO拆分所得的全部操作事务OP对应写操作均成功完成,如果否,则确定写业务IO拆分所得的全部操作事务OP对应写操作不是均成功完成;其中,第一成功标记为缓存池成功完成缓存池的操作事务OP的写操作后记录的,第二成功标记为数据池成功完成数据池的操作事务OP的写操作并反馈给缓存池后由缓存池记录的。
本申请实施例中缓存池完成缓存池的OP对应写操作时,如果成功实现写操作,则可以记录第一成功标记,以供查询缓存池的OP对应写操作是否成功完成;数据池完成数据池的OP对应写操作时,如果成功实现写操作,则可以向缓存池返回数据池成功实现数据池的OP对应写操作的信息,缓存池在接收到该信息后记录第二成功标记,以供查询数据池的OP对应写操作是否成功完成;在此基础上,判断缓存池及数据池是否均成功完成相应写操作时,则可以通过判断缓存池中是否同时存在第一成功标记及第二成功标记实现,简便且有效。需要说明的是,在查询缓存池中是否存在第一成功标记及第二成功标记时,可以是使用缓存池中的PGLog检查故障前缓存池的OP处理状态(也即是否存在第一成功标记及第二成功标记),仅OP处理出错时,给客户端返回错误。另外,上述实施例中所说的OP处理状态则是可以通过第一成功标记及第二成功标记是否存在的判断获取的。
本发明实施例提供的一种双存储池数据存储方法,接收客户端下发的写业务IO之后,还可以包括:
如果写业务IO不大于单个块或者小于单个纠删条带,则将写业务IO拆分为缓存池的操作事务OP,并指示缓存池完成缓存池的操作事务OP的写操作,如果写业务IO等于单个纠删条带的整数倍,则将写业务IO拆分为数据池的操作事务OP,并通过缓存池将数据池的操作事务OP转发给数据池,以指示数据池完成接收的操作事务OP的写操作,如果写业务IO大于单个纠删条带且非单个纠删条带的整数倍,则执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤。
将写业务IO拆分为缓存池的操作事务OP之后,还可以包括:
对写操作的过程进行监测,如果缓存池在完成相应写操作的过程中发生故障,则在修复缓存池的故障后,判断写业务IO拆分所得缓存池的操作事务OP对应写操作是否成功完成,如果是,则向客户端返回写业务IO完成的信息,如果否,向客户端返回错误信息,并返回执行将写业务IO拆分为缓存池的操作事务OP的步骤。
将写业务IO拆分为数据池的操作事务OP之后,还可以包括:
对写操作的过程进行监测,如果缓存池和/或数据池在完成相应写操作的过程中发生故障,则在修复缓存池和/或数据池的故障后,判断写业务IO拆分所得数据池的操作事务OP对应写操作是否成功完成,如果是,则向客户端返回写业务IO完成的信息,如果否,向客户端返回错误信息,并返回执行将写业务IO拆分为数据池的操作事务OP的步骤。
本申请实施例在接收到客户端下发的写IO后,可以根据写IO的大小实现相应的OP拆分。具体来说,如果写IO对应需要写的数据不大于块大小或者小于纠删条带大小,则将写IO拆分为缓存池的OP,然后直接在缓存池中实现相应OP的写操作,如果写操作成功完成则返回客户端完成相应写操作的信息,否则返回相应的错误信息,并返回执行将写IO拆分为缓存池的OP的步骤,直至在缓存池中成功实现写IO对应写操作后返回客户端完成相应写操作的信息;如果写IO对应需要写的数据等于纠删条带大小的整数倍,则将写IO拆分为数据池的OP,由缓存池将数据池的OP转发给数据池,然后在数据池中实现相应OP的写操作,如果写操作成功完成则返回客户端完成相应写操作的信息,否则返回相应的错误信息,并返回执行将写IO拆分为数据池的OP的步骤,直至在数据池中成功实现写IO对应写操作后返回客户端完成相应写操作的信息;如果写IO对应需要写的数据大于纠删条带大小但非纠删条带大小的整数倍,则将其拆分为数据池的OP及缓存池的OP。从而通过上述方式实现写IO在不同情况下OP拆分及相应写操作的实现,进而保证写IO的有效实现。
另外,本申请实施例在设备故障后需要重启故障的设备,进而实现后续的操作,以有效简便的实现设备的重新使用。
在一种具体实现方式中,如图4所示,本发明实施例提供的一种双存储池数据存储方法具体可以包括:
S41.接收客户端下发的写IO;
S42.根据写IO的大小将其同时拆分为缓存池的OP及数据池的OP,或者仅拆分为缓存池的OP,或者仅拆分为数据池的OP。
S43.对于拆分为缓存池的OP及数据池的OP的情况,将步骤S42中缓存池的OP提交写事务以使得缓存池实现缓存池的OP对应写操作,如果能够在缓存池完成相应写操作则在缓存池中标记第一成功标记;将步骤S42中数据池的OP提交代理写,设置OP的pool为数据池的pool,并提交代理写的请求以使得缓存池将数据池的OP转发给数据池,指示数据池完成数据池的OP对应写操作,如果能够在数据池中完成相应写操作则在缓存池中标记第二成功标记。
S44、如果代理写未完成且数据池和/或缓存池对应的设备出现故障,则启动故障的设备,并在启动完成后由缓存池中的PGLog检查故障前的OP处理状态,若OP处理状态表示写IO拆分所得OP对应写操作并未全部完成,则给客户端返回错误,并重新对写IO进行拆分。
另外,在分发拆分的OP时,再次用缓存池中的PGLog检查故障前OP处理状态,对于OP处理状态中对应写操作已经成功完成的OP则无需再进行相应写操作。可见,本申请在cache tier分层存储特性下设备故障恢复时,非直接在缓存层给客户端返回写完成,而是由缓存池的PGlog检查OP处理状态,进而基于此实现后续操作,直到确定缓存池的OP及数据池的OP对应写操作均成功完成后再返回写完成,以此保证拆分后跨存储池的客户端请求的完成状态一致。
本发明实施例还提供了一种双存储池数据存储装置,如图5所示,具体可以包括:
拆分模块11,用于:接收客户端下发的写业务IO,并将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;
写模块12,用于:指示缓存池完成缓存池的操作事务OP的写操作,通过缓存池将数据池的操作事务OP转发给数据池,以指示数据池完成接收的操作事务OP的写操作;
返回模块13,用于:对写操作的过程进行监测,如果缓存池和/或数据池在完成相应写操作的过程中发生故障,则在修复缓存池和/或数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成写业务IO拆分所得全部操作事务OP对应写操作,向客户端返回写业务IO完成的信息。
本发明实施例还提供了一种双存储池数据存储设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项双存储池数据存储方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项双存储池数据存储方法的步骤。
需要说明的是,本发明实施例提供的一种双存储池数据存储装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种双存储池数据存储方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种双存储池数据存储方法,其特征在于,包括:
接收客户端下发的写业务IO,并将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;
指示所述缓存池完成所述缓存池的操作事务OP的写操作,通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作;
对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成所述写业务IO拆分所得全部操作事务OP对应写操作,向所述客户端返回写业务IO完成的信息。
2.根据权利要求1所述的方法,其特征在于,返回执行且执行完成将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤之后,还包括:
获取所述缓存池和/或所述数据池在发生故障之前的OP处理状态,如果所述OP处理状态表示所述写业务IO拆分所得全部操作事务OP对应写操作均未成功完成,则执行指示所述缓存池完成所述缓存池的操作事务OP的写操作的步骤,如果所述OP处理状态表示所述写业务IO拆分所得部分操作事务OP对应写操作未成功完成,则指示所述缓存池和/或所述数据池完成对应写操作未成功完成的操作事务OP的写操作,并执行对写操作的过程进行监测的步骤。
3.根据权利要求2所述的方法,其特征在于,还包括:
在修复所述缓存池和/或所述数据池的故障后,判断所述写业务IO拆分所得的全部操作事务OP对应写操作是否均成功完成,如果是,则向所述客户端返回所述写业务IO完成的信息,否则,向所述客户端返回错误信息,并返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤。
4.根据权利要求3所述的方法,其特征在于,判断所述写业务IO拆分所得的全部操作事务OP对应写操作是否均成功完成,包括:
判断所述缓存池中是否同时存在第一成功标记及第二成功标记,如果是,则确定所述写业务IO拆分所得的全部操作事务OP对应写操作均成功完成,如果否,则确定所述写业务IO拆分所得的全部操作事务OP对应写操作不是均成功完成;其中,所述第一成功标记为所述缓存池成功完成所述缓存池的操作事务OP的写操作后记录的,所述第二成功标记为所述数据池成功完成所述数据池的操作事务OP的写操作并反馈给所述缓存池后由所述缓存池记录的。
5.根据权利要求4所述的方法,其特征在于,接收客户端下发的写业务IO之后,还包括:
如果所述写业务IO不大于单个块或者小于单个纠删条带,则将所述写业务IO拆分为缓存池的操作事务OP,并指示所述缓存池完成所述缓存池的操作事务OP的写操作,如果所述写业务IO等于单个纠删条带的整数倍,则将所述写业务IO拆分为数据池的操作事务OP,并通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作,如果所述写业务IO大于单个纠删条带且非单个纠删条带的整数倍,则执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤。
6.根据权利要求5所述的方法,其特征在于,将所述写业务IO拆分为缓存池的操作事务OP之后,还包括:
对写操作的过程进行监测,如果所述缓存池在完成相应写操作的过程中发生故障,则在修复所述缓存池的故障后,判断所述写业务IO拆分所得缓存池的操作事务OP对应写操作是否成功完成,如果是,则向所述客户端返回所述写业务IO完成的信息,如果否,向所述客户端返回错误信息,并返回执行将所述写业务IO拆分为缓存池的操作事务OP的步骤。
7.根据权利要求6所述的方法,其特征在于,将所述写业务IO拆分为数据池的操作事务OP之后,还包括:
对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,判断所述写业务IO拆分所得数据池的操作事务OP对应写操作是否成功完成,如果是,则向所述客户端返回所述写业务IO完成的信息,如果否,向所述客户端返回错误信息,并返回执行将所述写业务IO拆分为数据池的操作事务OP的步骤。
8.一种双存储池数据存储装置,其特征在于,包括:
拆分模块,用于:接收客户端下发的写业务IO,并将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP;
写模块,用于:指示所述缓存池完成所述缓存池的操作事务OP的写操作,通过所述缓存池将所述数据池的操作事务OP转发给所述数据池,以指示所述数据池完成接收的操作事务OP的写操作;
返回模块,用于:对写操作的过程进行监测,如果所述缓存池和/或所述数据池在完成相应写操作的过程中发生故障,则在修复所述缓存池和/或所述数据池的故障后,返回执行将写业务IO拆分为缓存池的操作事务OP及数据池的操作事务OP的步骤,直至成功完成所述写业务IO拆分所得全部操作事务OP对应写操作,向所述客户端返回写业务IO完成的信息。
9.一种双存储池数据存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述双存储池数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述双存储池数据存储方法的步骤。
CN202111071997.6A 2021-09-14 2021-09-14 一种双存储池数据存储方法、装置、设备及存储介质 Active CN113535095B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111071997.6A CN113535095B (zh) 2021-09-14 2021-09-14 一种双存储池数据存储方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111071997.6A CN113535095B (zh) 2021-09-14 2021-09-14 一种双存储池数据存储方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113535095A true CN113535095A (zh) 2021-10-22
CN113535095B CN113535095B (zh) 2022-02-18

Family

ID=78092496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111071997.6A Active CN113535095B (zh) 2021-09-14 2021-09-14 一种双存储池数据存储方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113535095B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114449196A (zh) * 2021-12-21 2022-05-06 天翼云科技有限公司 一种云视频监控数据存储方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901946A (zh) * 2019-02-27 2019-06-18 深信服科技股份有限公司 一种纠删码操作方法、装置、设备及存储介质
CN111708488A (zh) * 2020-05-26 2020-09-25 苏州浪潮智能科技有限公司 一种基于分布式内存盘的Ceph性能优化的方法和设备
CN111736767A (zh) * 2020-05-29 2020-10-02 苏州浪潮智能科技有限公司 一种分布式对象存储系统写缓存的方法和设备
CN112965660A (zh) * 2021-02-09 2021-06-15 山东英信计算机技术有限公司 一种双存储池信息反馈的方法、系统、设备及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901946A (zh) * 2019-02-27 2019-06-18 深信服科技股份有限公司 一种纠删码操作方法、装置、设备及存储介质
CN111708488A (zh) * 2020-05-26 2020-09-25 苏州浪潮智能科技有限公司 一种基于分布式内存盘的Ceph性能优化的方法和设备
CN111736767A (zh) * 2020-05-29 2020-10-02 苏州浪潮智能科技有限公司 一种分布式对象存储系统写缓存的方法和设备
CN112965660A (zh) * 2021-02-09 2021-06-15 山东英信计算机技术有限公司 一种双存储池信息反馈的方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114449196A (zh) * 2021-12-21 2022-05-06 天翼云科技有限公司 一种云视频监控数据存储方法、装置及电子设备
CN114449196B (zh) * 2021-12-21 2023-08-04 天翼云科技有限公司 一种云视频监控数据存储方法、装置及电子设备

Also Published As

Publication number Publication date
CN113535095B (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
US11003536B2 (en) Method, device and computer readable storage medium for writing to disk array
US8285679B2 (en) Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship
US6513093B1 (en) High reliability, high performance disk array storage system
US10303560B2 (en) Systems and methods for eliminating write-hole problems on parity-based storage resources during an unexpected power loss
US20050240813A1 (en) Restore method for backup
US7975171B2 (en) Automated file recovery based on subsystem error detection results
WO2018098972A1 (zh) 一种日志恢复方法、存储装置和存储节点
US10049024B2 (en) Data processing method, device, and system for storage unit
CN113377569B (zh) 用于恢复数据的方法、设备和计算机程序产品
WO2024113685A1 (zh) 一种raid阵列的数据恢复方法及相关装置
CN111984365B (zh) 一种虚拟机虚拟磁盘双活实现方法及系统
KR20170054767A (ko) 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법
CN113535095B (zh) 一种双存储池数据存储方法、装置、设备及存储介质
WO2024119774A1 (zh) Raid卡的写方法、raid卡的写系统及相关装置
JP5352027B2 (ja) 計算機システムの管理方法及び管理装置
US8621267B2 (en) Extended page patching
JP2001075741A (ja) ディスク制御システムおよびデータ保全方法
US20130110789A1 (en) Method of, and apparatus for, recovering data on a storage system
CN113641298A (zh) 数据存储方法、设备和计算机程序产品
US20100058141A1 (en) Storage device and control device
US11907102B2 (en) Dynamic debug log enabler for any protection failure jobs
WO2023246240A1 (zh) 一种数据重构方法及装置
US12013753B2 (en) Proactive loss notification and handling in data storage devices
CN102722454B (zh) 一种磁盘保护方法及装置
CN118708130A (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