CN116107516A - 数据写入方法、装置、固态硬盘、电子设备及存储介质 - Google Patents

数据写入方法、装置、固态硬盘、电子设备及存储介质 Download PDF

Info

Publication number
CN116107516A
CN116107516A CN202310370623.7A CN202310370623A CN116107516A CN 116107516 A CN116107516 A CN 116107516A CN 202310370623 A CN202310370623 A CN 202310370623A CN 116107516 A CN116107516 A CN 116107516A
Authority
CN
China
Prior art keywords
data
partition
writing
data block
written
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
CN202310370623.7A
Other languages
English (en)
Other versions
CN116107516B (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 CN202310370623.7A priority Critical patent/CN116107516B/zh
Publication of CN116107516A publication Critical patent/CN116107516A/zh
Application granted granted Critical
Publication of CN116107516B publication Critical patent/CN116107516B/zh
Priority to PCT/CN2024/083115 priority patent/WO2024212783A1/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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • G06F3/0656Data buffering arrangements
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种数据写入方法、装置、固态硬盘、电子设备及存储介质,涉及数据处理技术领域,该方法包括:接收目标对象发送的数据写入请求,以获取待写入数据;对待写入数据中的各原始数据块进行预处理,得到待写入数据的多个预处理数据块;预处理包括切分和/或整合;将多个预处理数据块镜像至目标固态硬盘的第一分区;根据镜像结果,向目标对象发送待写入数据对应的响应信息,响应信息包括写入状态信息;从第一分区中,将各预处理数据块写入目标固态硬盘的第二分区;其中,第一分区为用于缓存待写入数据的数据缓存空间,第二分区为用于存储待写入数据的数据存储空间。本发明实现确保数据有效写入的同时,提高数据写入响应效率。

Description

数据写入方法、装置、固态硬盘、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据写入方法、装置、固态硬盘、电子设备及存储介质。
背景技术
随着超融合技术的不断发展,融合软硬件的一体机越来越多的被应用于各种场景中,其主要依赖底层固态磁盘的高IOPS(Input Output Operations Per Second,每秒的输入输出操作)性能快速响应前端客户的各种读写请求。
通常,前端客户下发的写入请求中包含大量随机的小数据块,固态磁盘需要按照每一小数据块的写入需求一一进行数据写入,待所有小数据块写入完成之后,才会向客户端发送写入成功或写入失败的响应信息,导致响应效率低下。
发明内容
本发明提供一种数据写入方法、装置、固态硬盘、电子设备及存储介质,用以解决现有技术中写入响应效率低下的缺陷,实现确保数据有效写入的同时,提高数据写入响应效率。
本发明提供一种数据写入方法,包括:
接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;
对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;
将所述多个预处理数据块镜像至目标固态硬盘的第一分区;
根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;
从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;
其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
根据本发明提供的一种数据写入方法,所述根据镜像结果,获取所述待写入数据对应的响应信息,包括:
根据所述镜像结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在异常数据块;所述异常数据块包括处于镜像失败状态的数据块或处于校验失败状态的数据块;
在确定所述第一分区所镜像的所述多个预处理数据块中不存在异常数据块的情况下,确定所述响应信息为第一响应信息;所述第一响应信息包括所述待写入数据的写入状态为写入成功的响应信息。
根据本发明提供的一种数据写入方法,所述方法还包括:
在确定所述第一分区所镜像的所述多个预处理数据块中存在异常数据块的情况下,在所述目标固态硬盘的配置文件中获取最大延迟时长;
在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,直到满足更新停止条件;
根据更新结果,获取所述响应信息;
其中,所述更新停止条件包括所述第一分区中所镜像的所述多个预处理数据块中不存在异常数据块,和/或更新时长达到所述最大延迟时长。
根据本发明提供的一种数据写入方法,所述根据更新结果,获取所述响应信息,包括:
在根据所述更新结果,确定在每次更新过程中所述第一分区所镜像的所述多个预处理数据块中均存在异常数据块的情况下,确定所述响应信息为第二响应信息;所述第二响应信息包括所述待写入数据的写入状态为写入失败的响应信息;
在根据所述更新结果,确定在至少一次更新过程中所述第一分区中镜像的所述多个预处理数据块中不存在异常数据块的情况下,确定所述响应信息为所述第一响应信息。
根据本发明提供的一种数据写入方法,所述根据所述镜像结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在异常数据块,包括:
根据所述镜像结果,确定所述多个预处理数据块中处于镜像成功状态的第一待校验数据块;
获取所述第一待校验数据块的第一编码值以及第二编码值;所述第一编码值是将所述第一待校验数据块镜像至所述第一分区之前生成的编码值;所述第二编码值是将所述第一待校验数据块镜像至所述第一分区中各镜像文件之后,在所述各镜像文件中生成的编码值;
根据所述第一待校验数据块的第一编码值以及所述第二编码值,对所述第一待校验数据块进行校验,得到校验结果;
根据所述校验结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在所述异常数据块。
根据本发明提供的一种数据写入方法,所述根据所述第一待校验数据块的第一编码值以及所述第二编码值,对所述第一待校验数据块进行校验,得到校验结果,包括:
将所述各镜像文件中所述第一待校验数据块的第二编码值进行比较,得到第一比较结果;
在根据所述第一比较结果,确定各镜像文件中所述第一待校验数据块的第二编码值相同的情况下,将任一镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,得到第二比较结果;
在根据所述第二比较结果,确定所述第二编码值与所述第一编码值相同的情况下,确定所述校验结果为所述第一待校验数据块校验成功。
根据本发明提供的一种数据写入方法,所述方法还包括:
在根据所述第一比较结果,确定所述各镜像文件中所述第一待校验数据块的第二编码值不相同的情况下,将所述各镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,得到第三比较结果;
在根据所述第三比较结果,确定所述各镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值均不相同的情况下,确定所述校验结果为所述第一待校验数据块校验失败;
所述在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,包括:
在所述最大延迟时长内,重新将所述第一待校验数据块镜像至所述第一分区的各镜像文件中。
根据本发明提供的一种数据写入方法,所述方法还包括:
在根据所述第三比较结果,确定所述第一分区中存在第一镜像文件和第二镜像文件的情况下,确定所述校验结果为所述第一待校验数据块校验失败;其中,所述第一镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值相同,所述第二镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值不相同;
所述在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,包括:
在所述最大延迟时长内,将所述第一镜像文件中所镜像的所述多个预处理数据块同步至所述第二镜像文件中。
根据本发明提供的一种数据写入方法,所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区,包括:
在监控到所述第二分区的剩余存储容量大于或等于预设存储容量的情况下,根据所述数据写入请求,获取所述待写入数据的写入策略;
根据所述写入策略中的写入顺序和/或各所述预处理数据块在所述第一分区中的缓存时长,确定各所述预处理数据块的写入优先级;
根据所述写入优先级,从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区。
根据本发明提供的一种数据写入方法,根据各所述预处理数据块在所述第一分区中的缓存时长,确定各所述预处理数据块的写入优先级,包括:
在所述第一分区中存在缓存时长大于或等于最大延迟时长的任一预处理数据块的情况下,确定所述任一预处理数据块的写入优先级最高;所述最大延迟时长是在所述目标固态硬盘的配置文件中获取的。
根据本发明提供的一种数据写入方法,在所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区之后,所述方法还包括:
获取处于写入完成状态的预处理数据块,作为第二待校验数据块;
对所述第二待校验数据块进行校验;
在根据校验结果,确定所述第二待校验数据块校验失败的情况下,在所述目标固态硬盘的日志区分中,获取所述第二待校验数据块的写入日志;
根据所述写入日志,从所述第一分区的多个镜像文件中确定目标镜像文件;
从所述目标镜像文件中,将所述第二待校验数据块写入所述目标固态硬盘的第二分区。
根据本发明提供的一种数据写入方法,所述对所述第二待校验数据块进行校验,包括:
在所述待写入数据的写入策略中包括一致性校验策略的情况下,计算所述第二待校验数据块的奇偶检验值;
将所述第二待校验数据块的奇偶检验值与预设奇偶值进行比较,根据比较结果,对所述第二待校验数据块进行一致性校验。
根据本发明提供的一种数据写入方法,所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区,包括:
根据所述多个预处理数据块,向所述第一分区发送镜像请求,以供所述第一分区根据所述镜像请求以及本地逻辑地址管理表,调用目标逻辑存储块,将各所述预处理数据块镜像至所述第一分区。
根据本发明提供的一种数据写入方法,所述对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块,包括:
获取所述目标固态硬盘的配置文件,从所述配置文件中获取预设数据块规格;
按照所述待写入数据中的各原始数据的数据块规格,对各所述原始数据进行排序;
根据排序结果,将各所述原始数据添加至第一数据队列,得到第二数据队列;
将所述第二数据队列中数据块规格大于所述预设数据块规格的数据块,按照所述预设数据块规格进行切分;
根据切分结果对所述第二数据队列进行更新,得到第三数据队列;
将所述第三数据队列中数据块规格小于所述预设数据块规格的数据块,按照所述预设数据块规格进行整合,并根据整合结果对所述第三数据队列进行更新,得到目标数据队列;
根据所述目标数据队列中的数据块,确定所述预处理数据块。
根据本发明提供的一种数据写入方法,所述方法还包括:
确定所述多个预处理数据块中处于写入成功状态的已写入数据块;
根据所述已写入数据块,对所述第一分区的本地逻辑地址管理表进行更新,并在所述第一分区中,擦除所述已写入数据块。
根据本发明提供的一种数据写入方法,在所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区之前,所述方法还包括:
对所述第一分区和所述第二分区进行初始化操作,获取初始化结果;
在确定所述初始化结果中存在告警信息的情况下,将所述告警信息与知识库中的预设关键词进行匹配,得到与所述告警信息匹配的至少一个目标关键词;
在所述知识库中确定各目标关键词对应的候选处理策略;
根据所述各目标关键词对应的候选处理策略,确定所述告警信息对应的第一目标处理策略;
调用所述第一目标处理策略对应的处理组件,对所述告警信息进行处理。
根据本发明提供的一种数据写入方法,所述根据所述各目标关键词对应的候选处理策略,确定所述告警信息对应的第一目标处理策略,包括:
根据每一候选处理策略的数量,确定所述每一候选处理策略与所述告警信息之间的关联度;
确定所述关联度最大的候选处理策略,作为所述第一目标处理策略。
根据本发明提供的一种数据写入方法,所述方法还包括:
获取所述告警信息的处理结果;
在所述告警信息的处理结果为处理成功的情况下,对所述告警信息进行关键词抽取,得到新增关键词;
将所述新增关键词以及所述第一目标处理策略更新至所述知识库。
根据本发明提供的一种数据写入方法,所述方法还包括:
在所述告警信息的处理结果为处理失败的情况下,将所述告警信息发送至客户端,以供所述客户端根据第二目标处理策略,对所述告警信息进行处理;
监控所述客户端返回的告警处理信息,并在根据所述告警处理信息,确定所述告警信息的处理状态为处理成功的情况下,获取所述第二目标处理策略;
将在所述告警信息中抽取的新增关键词,以所述第二目标处理策略更新至所述知识库。
根据本发明提供的一种数据写入方法,所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区,包括:
将所述多个预处理数据块镜像至所述第一分区的主缓存空间和备缓存空间;所述主缓存空间和备缓存空间之间属于不同的故障域;
所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区,包括:
从所述主缓存空间和备缓存空间中的任一缓存空间中,将各所述预处理数据块写入所述第二分区。
根据本发明提供的一种数据写入方法,在所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区之前,所述方法还包括:
根据所述目标固态硬盘的配置文件,获取所述目标固态硬盘中各分区的划分比例;
根据所述各分区的划分比例,确定所述第一分区的容量以及所述第二分区的容量;
根据所述第一分区的容量以及所述第二分区的容量,对所述目标固态硬盘进行分区,得到所述第一分区和所述第二分区。
本发明还提供一种数据写入装置,包括:
获取模块,用于接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;
处理模块,用于对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;
镜像模块,用于将所述多个预处理数据块镜像至目标固态硬盘的第一分区;
响应模块,用于根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;
写入模块,用于从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;
其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
本发明还提供一种固态硬盘,所述固态硬盘包括控制芯片和存储芯片;所述存储芯片包括第一分区、第二分区和日志分区;
所述控制芯片执行计算机程序时实现如上述任一项所述数据写入方法。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据写入方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据写入方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据写入方法。
本发明提供的数据写入方法、装置、固态硬盘、电子设备及存储介质,通过先将待写入数据进行数据预处理,并将预处理数据块镜像至目标固态硬盘的第一分区,一方面通过数据镜像可以实现数据冗余,以及通过数据预处理避免数据写放大的问题,进而可有效确保待写入数据的有效写入,另一方面,在获取到镜像结果,即可确定能否将待写入数据镜像完整正确地镜像至目标固态硬盘的第一分区,进一步确定能否将待写入数据镜像完整正确地从第一分区写入至目标固态硬盘的第二分区,进而在镜像阶段即可向客户端发送响应信息,无须等待所有数据块均写入完成,即可实时响应,有效减少数据块写入所带来的延时响应时间,进而提高数据写入响应效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据写入方法的流程示意图之一;
图2是本发明提供的固态硬盘的结构示意图;
图3是本发明提供的数据写入方法的流程示意图之二;
图4是本发明提供的数据写入装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图3描述本发明的数据写入方法。本实施例中数据写入方法可以应用于各种所需数据写入的设备,如超融合一体机或单一服务器等。其中,超融合一体机是集成计算、存储、网络融合的多服务器集群,软硬件一体化。超融合一体机的底层存储系统所需使用多组固态磁盘,且可进行数据共享存储;超融合一体机的底层存储系统组成的池化虚拟设备,此设备打破物理主机限制。
以下以应用场景为超融合一体机为例,对本实施例提供的数据写入方法展开具体描述。
如图1所示,为本实施例提供的数据写入方法的流程示意图之一,该方法包括如下步骤:
步骤101,接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据,以及所述待写入数据的写入策略;
其中,目标对象可以是目标固态硬盘所属主机的前端系统或与所述目标固态硬盘所属主机共享存储的其他主机等,本实施例对此不作具体地限定。
数据写入请求用于请求进行待写入数据写入,其在需要进行数据写入时发出。
数据写入请求可以是在主机的前端系统输入的用户输入,也可以经由主机的控制器在某种条件下产生的信息,如定时触发的数据写入请求。所称的用户输入,可以是通过触摸输入、下拉选择输入、语音输入、手势输入、视觉输入、脑机输入等输入的信息。
可选地,实时监听数据写入请求,在监听到数据写入请求的情况下,从数据写入请求中直接解析出待写入数据,以及待写入数据的写入策略;或者从数据写入请求中解析出写入请求标识,根据写入请求标识获取相应的待写入数据标识以及写入策略标识,以根据待写入数据标识和写入策略标识,获取相应的待写入数据,以及待写入数据的写入策略,本实施例对此不做具体地限定。
在获取到写入策略之后,可以将写入策略存储在日志分区,以便后续随时取用。
待写入数据为所需写入目标固态硬盘的数据,其中包括至少一个原始数据块。
写入策略中包括但不限于待写入数据中各数据块所需写入的目的地址、校验策略、写入顺序,本实施例对此不做具体地限定。
步骤102,对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;
由于待写入数据中的各原始数据块的规格大小不一,具有一定的随机性,导致实际写入的物理数据量是写入数据量的多倍,进而导致固态磁盘存在严重的写放大问题,且用户对数据副本(如RAID5、RAID6或RAID10等)的要求越来越高,导致全闪超融合一体机在许多场景(大量随机小块数据写入请求)下无法达到预期的性能,大大影响客户的体验。
针对上述问题,相关技术提出解决方案,如在代码逻辑层面减少随机写入小块数据的次数,实现批量写压缩,但是此方案需要强烈依赖于顶层软件系统的设计,且无法适应多变的客户需求;又如使用固态磁盘主控芯片的对写入数据进行压缩,这种方式需要强烈依赖于硬件功能支持且对性能有损耗。而超融合一体机无法控制顶层应用的代码逻辑,需要承载各种应用程序,同时也无法强绑定相关硬件,需要兼容多种固态磁盘,难以适用于超融合一体机。
而本实施例提供的方法,在将待写入数据写入第一分区之前,对全闪超融合一体机接收到的待写入数据中的小块随机写数据进行预处理,也即对待写入数据中的各小块数据进行合并,大块数据进行切分重组,以使得重新合并切分的数据块与固态磁盘擦除操作的最小处理单元相适配,可以降低由于多次请求固态磁盘擦除block(也即数据块)带来的写放大问题,减少固态磁盘写放大带来的额外损耗,以为后续整块写入固态磁盘做准备。
此处预处理数据块即为经过切分和/或整合预处理最终形成的数据块。
此处的切分步骤和组合步骤的顺序可以根据实际需求进行配置,如先切分后组合或先组合再切分。
步骤103,将所述多个预处理数据块镜像至目标固态硬盘的第一分区;其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
如图2所示,为目标固态硬盘的结构示意图;目标固态硬盘的存储芯片至少可以划分为三个分区,分别为第一分区、第二分区和日志分区;其中,第一分区为待缓存待写入数据的数据缓存空间,第二分区为待写入数据的数据存储空间,日志分区用于存储各种操作日志以及写入策略。
如图3所示,在对待写入数据的各原始数据块进行重新切分和组合之后,再将预处理得到的多个预处理数据块镜像至目标固态硬盘的第一分区中的多个镜像文件,本实施例对此不做具体地限定。
其中,镜像方式可以是RAID1、RAID5、RAID6或RAID10等,本实施例对此不做具体地限定。
需要说明的是镜像的两个副本可以是放置在不同的故障域中,以防出现副本丢失导致数据损坏。
通过将待写入数据的多个预处理数据块镜像至第一分区中的多个镜像文件,可以实现数据冗余,不仅可以确保其中一个镜像文件中的数据失效时可以从另一镜像文件进行数据同步,还可便于在原始数据繁忙时,可以直接从镜像文件中读取数据,提高读取性能,以实现通过镜像容错来提高数据读写的可靠性。
步骤104,根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;
可选地,由于在镜像过程中可采用日志分区对镜像结果进行实时保存,因此,在镜像完成之后,可从日志分区中获取镜像结果,以根据镜像结果,确定第一分区所镜像的多个预处理数据块的镜像状态,以根据镜像状态进一步确定各预处理数据块是否被完整正确地镜像至第一分区;
在确定各预处理数据块均完整正确地镜像至第一分区,则可确保待写入数据可以从第一分区中完整正确地写入第二分区,即可将待写入数据的写入状态为写入成功的响应信息实时发送至目标对象,以提高响应效率,且在发送响应信息后,可在短期内以客户端无感知的条件下,从第一分区中将待写入数据的各预处理数据块快速地写入所述目标固态硬盘的第二分区。
在确定部分预处理数据块不能完整正确地镜像至第一分区时,可以在一定的延迟时长内快速对第一分区中所镜像的待写入数据进行更新,以使得更新后的第一分区中完整正确地镜像有待写入数据的各预处理数据块,此种情形下也可将待写入数据的写入状态为写入成功的响应信息实时发送至目标对象。
若在一定的延迟时长内无法使得更新后的第一分区中完整正确地镜像有待写入数据的各预处理数据块,则无法确保待写入数据的多个预处理数据块可以从第一分区中完整正确地写入第二分区,此时将待写入数据的写入状态为写入失败的响应信息实时发送至目标对象。
其中,根据镜像状态进一步确定各预处理数据块是否完整正确地镜像至第一分区的方式包括:根据镜像状态确定第一分区所镜像的多个预处理数据块中是否存在异常数据块,也即是否存在镜像失败状态的数据块或处于校验失败状态的数据块,在根据镜像状态确定第一分区所镜像的多个预处理数据块中存在异常数据块,则确定该预处理数据块无法完整正确地镜像至第一分区,在根据镜像状态确定第一分区所镜像的多个预处理数据块中不存在异常数据块,则确定所有预处理数据块均可完整正确地镜像至第一分区。
本实施例,通过采用数据镜像方式先将待写入数据的多个预处理数据块缓存在第一分区,通过镜像容错来提高数据读写的可靠性,即使存在写入失败的情况,也只需在目标固态硬盘本地的第一分区即可快速进行数据更新,避免重新向目标对象请求数据所需的请求延时,提高数据写入性能以及写入效率;另外,由于数据镜像过程不考虑数据的原始写入策略,因此镜像效率明显高于数据写入效率,且采用数据镜像,即确定能否将待写入数据镜像完整正确地从第一分区写入至目标固态硬盘的第二分区,也即在镜像阶段即可向客户端发送响应信息,无须等待所有数据块均写入完成,即可实时响应,有效减少数据块写入所带来的延时响应时间,进而提高数据写入响应效率,进而提高用户体验感。
步骤105,从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;
如图3所示,在向目标对象发送响应信息的同时,监控第二分区的资源使用情况,以在第二分区存在空闲资源时,将第一分区中的各预处理数据块按照数据写入请求相应的写入策略完成数据的最终落盘(也即数据写入第二分区),同时还可对写入的预处理数据块进行一致性校验等相关校验,此过程对终端客户无感知。
可选地,可在日志分区中获取写入策略,并按照写入策略中待写入数据所需写入的目的地址以及写入顺序,将待写入数据中的各预处理数据块从第一分区中写入第二分区,还可按照写入策略中的校验策略对写入完成的预处理数据块进行校验,以确定待写入数据的各预处理数据块可以从第一分区中完整正确地写入第二分区。
本实施例提供的数据写入方法,通过先将待写入数据进行数据预处理,并将预处理数据块镜像至目标固态硬盘的第一分区,一方面通过数据镜像可以实现数据冗余,以及通过数据预处理避免数据写放大的问题,进而可有效确保待写入数据的有效写入,另一方面,在获取到镜像结果,即可确定能否将待写入数据镜像完整正确地镜像至目标固态硬盘的第一分区,进一步确定能否将待写入数据镜像完整正确地从第一分区写入至目标固态硬盘的第二分区,进而在镜像阶段即可向客户端发送响应信息,无须等待所有数据块均写入完成,即可实时响应,有效减少数据块写入所带来的延时响应时间,进而提高数据写入响应效率。
在一些实施例中,所述根据镜像结果,获取所述待写入数据对应的响应信息,包括:
根据所述镜像结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在异常数据块;所述异常数据块包括处于镜像失败状态的数据块或处于校验失败状态的数据块;
在确定所述第一分区所镜像的所述多个预处理数据块中不存在异常数据块的情况下,确定所述响应信息为第一响应信息;所述第一响应信息包括所述待写入数据的写入状态为写入成功的响应信息。
可选地,在获取到镜像结果之后,(也即待写入数据中所有预处理数据块均完成镜像之后的镜像结果),可以根据镜像结果直接获取第一分区所镜像的待写入数据中各预处理数据块的镜像状态以及校验状态,也即镜像过程中不仅包括数据镜像,还包括数据校验。
若根据镜像状态以及校验状态,确定在第一分区所镜像的多个预处理数据块中不存在镜像失败的预处理数据块或校验失败的预处理数据块,即第一分区所镜像的待写入数据中所有预处理数据块均处于镜像成功且校验成功状态,则表征第一分区所镜像的待写入数据中各预处理数据块均完整正确地写入第一分区,一方面由于第一分区中缓存有完整正确的待写入数据,另一方面通过数据镜像可以实现数据冗余,因此可以可有效确保待写入数据的有效写入,此时即可将写入成功的响应信息反馈给目标对象,使得数据响应效率可达RAID1级别,有效提高数据写入响应效率。
在一些实施例中,所述方法还包括:
在确定所述第一分区所镜像的所述多个预处理数据块中存在异常数据块的情况下,在所述目标固态硬盘的配置文件中获取最大延迟时长;
在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,直到满足更新停止条件;
根据更新结果,获取所述响应信息;
其中,所述更新停止条件包括所述第一分区中所镜像的所述多个预处理数据块中不存在异常数据块,和/或更新时长达到所述最大延迟时长。
需要说明的是,最大延迟时长是根据用户所需读取待写入数据的最小容忍延时以及安全余量延迟时间共同确定的,也即若向用户反馈待写入数据的写入状态为写入成功的响应信息,则需要在最大延迟时间内确保数据能够成功镜像才能进一步确保在用户所需读取待写入数据时,可以成功获取到待写入数据,以实现在保证数据成功写入的同时,提高用户体验感,以及确保数据写入响应效率。
可选地,在第一分区所镜像的多个预处理数据块中存在镜像失败的数据块或校验失败的预处理数据块,则表征第一分区所镜像的多个预处理数据块中存在未完整正确写入的异常数据块,此时可将镜像失败的数据块或校验失败的预处理数据块作为异常数据块,并在最大延迟时长内对第一分区所镜像的多个预处理数据块进行重新更新,直到第一分区中所镜像的多个预处理数据块中不存在异常数据块,和/或更新时长达到最大延迟时长,则停止更新。以根据更新结果,确定在更新过程中是否存在所有预处理数据块均镜像成功,且校验成功的情况,以据此确定将写入失败或写入成功的响应信息反馈给目标对象。
本实施例提供的方法,通过在第一分区所镜像的多个预处理数据块中存在异常数据块,可在最大延迟时长内,对第一分区中所镜像的多个预处理数据块进行更新,也即可对数据写入配置容错措施,并根据更新结果进一步确定写入失败或写入成功的响应信息,可实现提高数据写入的容错性的同时,提高用户体验感以及确保数据写入响应效率。
在一些实施例中,所述根据更新结果,获取所述响应信息,包括:
在根据所述更新结果,确定在每次更新过程中所述第一分区所镜像的所述多个预处理数据块中均存在异常数据块的情况下,确定所述响应信息为第二响应信息;所述第二响应信息包括所述待写入数据的写入状态为写入失败的响应信息;
在根据所述更新结果,确定在至少一次更新过程中所述第一分区中镜像的所述多个预处理数据块中不存在异常数据块的情况下,确定所述响应信息为所述第一响应信息。
可选地,若任一次更新过程中,确定第一分区所镜像的多个预处理数据块中不存在镜像失败的数据块或校验失败的数据块,则可确定待写入数据完整正确地镜像至目标固态硬盘的第一分区,此时即可将写入成功的响应信息反馈给目标对象,以使数据响应效率可达RAID1级别;若在所有更新过程中,均确定第一分区所镜像的多个预处理数据块中依然存在镜像失败的数据块或校验失败的数据块,则可确定待写入数据镜像无法完整正确地镜像至目标固态硬盘的第一分区,此时即可将写入失败的响应信息反馈给目标对象。
本实施例提供的方法,通过在最大延迟时长内,对第一分区中所镜像的待写入数据的多个预处理数据块进行更新,以根据更新结果进一步确定写入失败或写入成功的响应信息,可进一步实现提高数据写入的容错性的同时,提高用户体验感以及确保数据写入响应效率。
在一些实施例中,所述根据所述镜像结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在异常数据块,包括:
根据所述镜像结果,确定所述多个预处理数据块中处于镜像成功状态的第一待校验数据块;
获取所述第一待校验数据块的第一编码值以及第二编码值;所述第一编码值是将所述第一待校验数据块镜像至所述第一分区之前生成的编码值;所述第二编码值是将所述第一待校验数据块镜像至所述第一分区中各镜像文件之后,在所述各镜像文件中生成的编码值;
根据所述第一待校验数据块的第一编码值以及所述第二编码值,对所述第一待校验数据块进行校验,得到校验结果;
根据所述校验结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在所述异常数据块。
可选地,根据镜像结果筛选出多个预处理数据块中处于镜像成功状态的第一待校验数据块,并获取将第一待校验数据块镜像至第一分区之前生成的编码值,也即第一编码值,以及各镜像文件中镜像第一待校验数据块所生成的编码值,也即第二编码值。其中,镜像至第一分区之前和镜像第一待校验数据块之后所需要的编码方式一致,如均采用MD5编码。
由于镜像至第一分区之前和镜像至第一分区之后所采用的编码方式一致,因此,若第一待校验数据块完整正确镜像至第一分区,则需要确保镜像至第一分区之前和镜像第一待校验数据块之后第一待校验数据块的编码均一致。
因此,接下来,需要对比第一待校验数据块的第一编码值以及第二编码值,以确定第一待校验数据块的各编码值是否均相同(也即各第二编码值是否与第一编码值相同),以根据对比结果,确定第一待校验数据块是否通过校验,进而确定第一分区所镜像的待写入数据中是否存在异常数据块,也即第一待校验数据块是否为异常数据块。
此处,对比各镜像文件中第一待校验数据块的第二编码值以及第一编码值的顺序可以根据实际需求进行确定。示例性地,可先对比各镜像文件中第一待校验数据块的第二编码值,再与第一待校验数据块的第一编码值;或者,将各镜像文件中第一待校验数据块的第二编码值分别与第一待校验数据块的第一编码值进行对比。
本实施例提供的方法,通过对比镜像至第一分区之前和镜像第一待校验数据块之后第一待校验数据块的编码是否一致,即可高效准确性地确定第一分区所镜像的多个预处理数据块中是否存在异常数据块,实现在提高数据校验的简便性的同时,可进一步提高数据写入响应信息反馈的效率。
在一些实施例中,所述根据所述第一待校验数据块的第一编码值以及所述第二编码值,对所述第一待校验数据块进行校验,得到校验结果,包括:
将所述各镜像文件中所述第一待校验数据块的第二编码值进行比较,得到第一比较结果;
在根据所述第一比较结果,确定各镜像文件中所述第一待校验数据块的第二编码值相同的情况下,将任一镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,得到第二比较结果;
在根据所述第二比较结果,确定所述第二编码值与所述第一编码值相同的情况下,确定所述校验结果为所述第一待校验数据块校验成功。
可选地,对第一待校验数据块进行校验的步骤具体包括:
首先,对比各镜像文件中第一待校验数据块的第二编码值是否相同,如果相同,则还需要进一步将其中一个镜像文件中第一待校验数据块的第二编码值与第一待校验数据块的第一编码值进行进一步比较,以确定镜像之前和镜像之后的第一待校验数据块的编码值是否相同,进而确定各镜像文件中成功镜像的第一待校验数据块是否可通过校验,也即校验第一待校验数据块是否正确完整。
如果根据第二比较结果,进一步确定该第二编码值与第一编码值也相同的情况下,则表征第一待校验数据块校验成功。
若镜像至第一分区的待写入数据中所有预处理数据块均镜像成功状态且通过校验,则表征该待写入数据可完整正确地镜像至第一分区,此时可向目标对象发送待写入数据的写入状态为写入成功的响应信息。
本实施例提供的方法,通过对比镜像至第一分区之前和镜像第一待校验数据块之后第一待校验数据块的编码的一致性,可以简单便捷地校验镜像至第一分区的待写入数据的正确性和完整性,并且可实时根据校验结果向目标对象进行响应信息反馈,可实现确保待写入数据可有效写入第二分区的同时,可进一步提高数据写入响应信息反馈的效率。
在一些实施例中,所述方法还包括:
在根据所述第一比较结果,确定所述各镜像文件中所述第一待校验数据块的第二编码值不相同的情况下,将所述各镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,得到第三比较结果;
在根据所述第三比较结果,确定所述各镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值均不相同的情况下,确定所述校验结果为所述第一待校验数据块校验失败;
所述在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,包括:
在所述最大延迟时长内,重新将所述第一待校验数据块镜像至所述第一分区的各镜像文件中。
可选地,若在第一比较结果中,确定各镜像文件中第一待校验数据块的第二编码值不相同的情况下,则表征在镜像数据写入镜像文件时出现写入异常,此时需要进一步地与第一待校验数据块的第一编码值进行比较,以进一步定位镜像出错的根源,也即确定是数据读取过程中出现异常导致镜像文件中写入的第一待校验数据块发生异常,还是在数据写入镜像文件过程中导致镜像文件中写入的第一待校验数据块发生异常。
可选地,若确定各镜像文件中第一待校验数据块的第二编码值与第一待校验数据块的第一编码值均不相同,则表征在数据读取过程和数据写入镜像文件过程中均发生异常,此时表征第一待校验数据块校验失败,也即第一分区所镜像的待写入数据(也即多个预处理数据块)中存在异常数据块。此时需要重新发起数据镜像请求,并在最大延迟时间内,进行多次重新镜像请求,直到镜像至各镜像文件中第一分区中所镜像的多个预处理数据块中不存在异常数据块,和/或更新时长达到最大延迟时长,停止重新镜像操作,据此重新镜像结果,即可向目标对象发送相应的响应信息。
本实施例提供的方法,通过在各个镜像文件中第一待校验数据块的第二编码值不相同的情况下,进一步与数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,可以精准地定位第一待校验数据块发生异常镜像的根源,以及时进行修复,确定镜像至第一分区的待写入数据的正确性和完整性,进而实现确保待写入数据可有效写入第二分区的同时,可进一步提高数据写入响应信息反馈的效率。
在一些实施例中,所述方法还包括:
在根据所述第三比较结果,确定所述第一分区中存在第一镜像文件和第二镜像文件的情况下,确定所述校验结果为所述第一待校验数据块校验失败;其中,所述第一镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值相同,所述第二镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值不相同;
所述在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,包括:
在所述最大延迟时长内,将所述第一镜像文件中所镜像的所述多个预处理数据块同步至所述第二镜像文件中。
可选地,若在第三比较结果中,确定第一分区中存在部分第一镜像文件中第一待校验数据块的第二编码值与第一待校验数据块的第一编码值相同,而部分第二镜像文件中第一待校验数据块的第二编码值与第一待校验数据块的第一编码值不相同,则表征第二像文件在进行镜像数据写入时发生异常,此时可舍弃第二像文件的镜像数据,并从第一镜像文件中请求同步一份镜像数据进行写入,以使得第一分区中的各镜像文件均完整正确地镜像有待写入数据。
本实施例提供的方法,一方面直接在本地进行数据修复,即可进行响应信息反馈,有效提高信息响应的效率;另一方面,可为第二分区的数据写入提供冗余副本,即使第二分区通过一个镜像文件写入失败,也可以再直接通过另一镜像文件进行数据写入,在本端即可完成数据重新写入,不需要频繁访问目标对象,减少数据请求时延以及数据远端传输时延,有效确保数据写入性能的同时,提高数据写入效率,
在一些实施例中,步骤105进一步包括:
在监控到所述第二分区的剩余存储容量大于或等于预设存储容量的情况下,根据所述数据写入请求,获取所述待写入数据的写入策略;
根据所述写入策略中的写入顺序和/或各所述预处理数据块在所述第一分区中的缓存时长,确定各所述预处理数据块的写入优先级;
根据所述写入优先级,从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区。
可选地,在将第一分区所镜像的各预处理数据块写入第二分区时,需要实时监控第二分区的资源使用情况,以根据资源使用情况获取第二分区的剩余存储容量,并将剩余存储容量与预设存储容量进行比较,以确定第二分区是否存在空闲资源用于写入待写入数据,若存在则根据写入策略中的写入顺序,确定各预处理数据块的第一写入优先级和/或根据各预处理数据块在第一分区中的缓存时长确定第二写入优先级,根据第一写入优先级和/或第二写入优先级确定各预处理数据块的最终写入优先级;
此处,确定各预处理数据块的最终写入优先级的方式包括:将第一写入优先级或第二写入优先级作为最终写入优先级,或将第一写入优先级和第二写入优先级中最高优先级作为最终写入优先级。
然后,按照各预处理数据块的最终写入优先级以及写入策略中的写入地址,从第一分区的其中一份镜像文件中,将各预处理数据块写入第二分区的相应位置,以实现数据的适应性写入,避免影响用户使用,也即对写入操作进行分级处理方式来响应客户的多副本写入请求带来延时增加问题,在确保准确无误写入的情况下充分发挥固态磁盘的性能,从而提高全闪超融合一体机的性能,提升客户体验感。
在一些实施例中,根据各所述预处理数据块在所述第一分区中的缓存时长,确定各所述预处理数据块的写入优先级,包括:
在所述第一分区中存在缓存时长大于或等于最大延迟时长的任一预处理数据块的情况下,确定所述任一预处理数据块的写入优先级最高;所述最大延迟时长是在所述目标固态硬盘的配置文件中获取的。
可选地,在数据写入过程中,需要实时监控第一分区中的未写入第二分区的各预处理数据块的缓存时长,若存在缓存时长大于或等于最大延迟时长的任一预处理数据块,则需要为其配置最高写入优先级,以便优先完成写入第二分区的操作,避免影响用户在第二分区对数据的使用,提升用户体验感,进而达到在确保准确无误写入的情况下充分发挥固态磁盘的性能,从而提高全闪超融合一体机的性能,提升客户感知。
在一些实施例中,在步骤105之后,该方法还包括:
获取处于写入完成状态的预处理数据块,作为第二待校验数据块;
对所述第二待校验数据块进行校验;
在根据校验结果,确定所述第二待校验数据块校验失败的情况下,在所述目标固态硬盘的日志区分中,获取所述第二待校验数据块的写入日志;
根据所述写入日志,从所述第一分区的多个镜像文件中确定目标镜像文件;
从所述目标镜像文件中,将所述第二待校验数据块写入所述目标固态硬盘的第二分区。
其中,写入策略中包括的写入校验策略包括第一校验策略、第二校验策略或第三校验策略;第一校验策略包括在第一分区已完成数据准确性校验,则不进行数据校验的策略;第二校验策略包括一致性校验策略;第三校验策略包括数据准确性校验策略和一致性校验策略。数据准确性校验策略的执行步骤如针对第一分区的镜像数据所执行的校验步骤,此处不再赘述。
可选地,在将待写入数据的各预处理数据块从第一分区写入第二分区的写入操作完成之后,还可对其中写入完成的预处理数据块,也即第二待校验数据块进行进一步地检验,以确保待写入数据的各预处理数据块均完整正确地写入第二分区。
根据写入策略所包含的校验策略,对第二待校验数据块进行相应的校验,并获取校验结果。若校验结果为第二待校验数据块通过校验,则表征该数据块成功写入第二分区;若校验结果为第二待校验数据块校验失败,则表征该数据块未正确完整地写入第二分区,也即写入失败,此时需要根据第二待校验数据块的编码,在目标固态硬盘的日志区分中,获取第二待校验数据块的写入日志,以从写入日志中确定第二待校验数据块历史写入第二分区所采用的历史镜像文件,并从第一分区的多个镜像文件选择除历史镜像文件之外的新的镜像文件作为目标镜像文件。
接着,在最大延迟时间内,发起多次重新写入请求,以从目标镜像文件中,将第二待校验数据块重新写入目标固态硬盘的第二分区,实现数据修复,直到写入第二分区的第二待校验数据块校验成功或者重新写入时长达到最大延迟时间,以实现满足用户对写入数据的使用需求的同时,确保待写入数据的各预处理数据块均完整正确地写入第二分区。
在一些实施例中,所述对所述第二待校验数据块进行校验,包括:
在所述待写入数据的写入策略中包括一致性校验策略的情况下,计算所述第二待校验数据块的奇偶检验值;
将所述第二待校验数据块的奇偶检验值与预设奇偶值进行比较,根据比较结果,对所述第二待校验数据块进行校验。
可选地,在写入策略所包含写入校验策略中包括一致性校验策略,可通过计算第二待校验数据块的奇偶检验值,并与检验盘上的预设奇偶值的方式进行检查,如果奇偶值相同,则校验通过,表明该数据块写入第二分区处理成功;如果奇偶值不同,则校验失败,根据写入日志确定目标镜像文件在最大延迟时长内发起多次重新写入第二分区的请求,直到该数据块写入成功。
本实施例提供的方法,通过对写入第二分区的数据块进行奇偶检验即可实现数据一致性校验,进而确保写入确保待写入数据的各预处理数据块均完整正确地写入第二分区,提高数据写入性能。
在一些实施例中,步骤103中将所述多个预处理数据块镜像至目标固态硬盘的第一分区的步骤,还进一步包括:
根据所述多个预处理数据块,向所述第一分区发送镜像请求,以供所述第一分区根据所述镜像请求以及本地逻辑地址管理表,调用目标逻辑存储块,将各所述预处理数据块镜像至所述第一分区。
可选地,在获取到多个预处理数据块之后,即可随时向第一分区发送镜像请求,以便第一分区在接收到镜像请求之后,根据本地逻辑地址管理表,调用处于空闲状态的目标逻辑存储块,对各预处理数据块进行数据镜像。
在一些实施例中,对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块,包括:
获取所述目标固态硬盘的配置文件,从所述配置文件中获取预设数据块规格;按照所述待写入数据中的各原始数据的数据块规格,对各所述原始数据进行排序;
根据排序结果,将各所述原始数据添加至第一数据队列,得到第二数据队列;
将所述第二数据队列中数据块规格大于所述预设数据块规格的数据块,按照所述预设数据块规格进行切分;
根据切分结果对所述第二数据队列进行更新,得到第三数据队列;
将所述第三数据队列中数据块规格小于所述预设数据块规格的数据块,按照所述预设数据块规格进行整合,并根据整合结果对所述第三数据队列进行更新,得到目标数据队列;
根据所述目标数据队列中的数据块,确定所述预处理数据块。
其中,预设数据块规格是根据擦除操作的最小处理单元的整数倍进行配置的,如是擦除操作的最小处理单元的1倍、2倍等。
可选地,数据切分整合的步骤具体包括:
首先,将待写入数据中的各原始数据根据数据块规格从大到小进行排列并添加至第一数据队列,得到第二数据队列,并在第二数据队列记录各数据块为Mi(M1/M2/M3/M4…),对第二数据队列中的数据块进行排序判断(随着时间推移会不断有新的数据块加入第二数据队列中);
将预设数据块规格配置为bs,将第二数据队列中数据块规格大于bs的数据块首先按照bs倍数进行切分,并将切分得到的数据块以新的数据块的方式更新至第二数据队列中进行排序刷新数据块队列,得到第三数据队列;待大于bs的数据块都处理完成后,从最新数据块队列(也即第三数据队列)中挑选数据块规格小于bs的小数据块,在小数据块中选择数据规格最大的数据块Mj并计算与bs的差值Ni,将剩余的数据块队列进行刷新,然后根据第一差值从第三数据队列中选取与差值Ni最接近的数据块进行合并,并根据合并结果对第三数据队列进行更新(也将所合并的两个小数据块更新为合并形成的新数据块),继续计算合并数据块与bs的差值Ni,然后从第三数据队列中重新寻找小于差值Ni的数据块,如果可以找到,则继续进行合并,并根据合并结果对第三数据队列进行更新,计算差值Ni,直到找不到比Ni小的数据块为止,按照上述合并逻辑再对剩余小数据块进行合并和数据队列更新,以得到目标数据队列。然后,将目标数据队列中的数据块直接作为预处理数据块。
本实施提供的方法,可以将尽量小数据库被集中到某些逻辑存储块,以避免后续有读请求时产生频繁访问瓶颈,并且可以降低逻辑存储块管理的复杂度,提升数据存储性能,以及减少固态磁盘写放大带来的额外损耗。
在一些实施例中,在执行步骤105之后,所述方法还包括:确定所述多个预处理数据块中处于写入成功状态的已写入数据块;根据所述已写入数据块,对所述第一分区的本地逻辑地址管理表进行更新,并在所述第一分区中,擦除所述已写入数据块。
可选地,在数据写入过程中,若确定待写入数据中存在已成功写入(写入状态为写入完成且通过校验)第二分区的预处理数据块时,则将其作为已写入数据块,可擦除一级分区中相关的预处理数据块,并重置一级分区中的相关逻辑存储块的状态,同时更新本地逻辑地址管理表,以清理出更多逻辑存储块,为后续数据写入提供存储空间。
在一些实施例中,在执行步骤103之前,所述方法还包括:对所述第一分区和所述第二分区进行初始化操作,获取初始化结果;在确定所述初始化结果中存在告警信息的情况下,将所述告警信息与知识库中的预设关键词进行匹配,得到与所述告警信息匹配的至少一个目标关键词;在所述知识库中确定各目标关键词对应的候选处理策略;根据所述各目标关键词对应的候选处理策略,确定所述告警信息对应的第一目标处理策略;调用所述第一目标处理策略对应的处理组件,对所述告警信息进行处理。
其中,初始化包括但不限于存储空间初始化、配置参数初始化,本实施例对此不做具体地限定。示例性地,对于第一分区的初始化,至少包括:读取配置文件中参数BlockSize(也即固态硬盘Block块大小,删除操作的最小处理单元,参数值由硬盘规格决定),根据BlockSize对一级分区调用trim()函数进行擦除动作,以清理出更多整块BlockSize倍数大小空间;并初始本地逻辑地址管理表,以随时对一级分区中的逻辑存储块进行实时调度管理,便于后续数据快速写入,同时将相关操作记录到日志分区中。
可选地,在初始化过程中,实时监控初始化结果中是否存在告警信息。若存在告警信息,则调用容错模块进行告警处理。
此处,容错模块中的知识库中有预先存储有告警信息关键词与处理策略之间的映射关系,以及每一处理策略与每一处理组件之间的映射关系,以提供自动化告警处理操作。此处的映射关系可以是多对多关系。
在获取到告警信息之后,容错模块首先调用知识库所有预设关键词对告警信息进行关键词匹配,如有与告警信息匹配的目标关键词,则获取该目标关键词对应的候选处理策略,直到所有知识库中所有预设关键词匹配完毕;
对所有目标关键词对应的候选处理策略进行融合,以获取第一目标处理策略,调用第一目标处理策略对应的处理组件,对告警信息进行自动化处理操作,提高容错性,进而确保数据写入性能。
此处,融合方式,可以是从中选择出现次数最多的候选处理策略作为第一目标处理策略,或者对所有目标关键词对应的候选处理策略进行整合,得到综合处理策略作为第一目标处理策略,本实施例对此不做具体地限定。
在一些实施例中,所述根据所述各目标关键词对应的候选处理策略,确定所述告警信息对应的第一目标处理策略,包括:根据每一候选处理策略的数量,确定所述每一候选处理策略与所述告警信息之间的关联度;确定所述关联度最大的候选处理策略,作为所述第一目标处理策略。
可选地,若匹配过程中,匹配获取到某一候选处理策略,则记录关联度为r,在后续匹配过程中,若再次匹配获取到该候选处理策略,则将关联度更新为2r,按照此方式依次记录各候选处理策略的关联度,直到所有预设关键词均匹配完成;此时找出关联度最高的候选处理策略作为第一目标处理策略,并调用相关的自动化处理操作。通过根据每一候选处理策略的数量,确定每一候选处理策略与告警信息之间的关联度,进而可以快速准确地获取到告警信息对应的处理策略,有效提高容错效率,进一步提高数据写入效率。
在一些实施例中,所述方法还包括:获取所述告警信息的处理结果;在所述告警信息的处理结果为处理成功的情况下,对所述告警信息进行关键词抽取,得到新增关键词;将所述新增关键词以及所述第一目标处理策略更新至所述知识库。
可选地,在告警信息进行处理之后,还需要实时监控处理结果,以确定告警信息是否处理成功,也即告警信息是否被解决。如告警信息成功解决,则提炼告警信息的告警关键词及对应第一目标处理策略以映射关系的形式,增加到知识库中,不断增加知识库内容,提高容错性能,进一步提高数据写入性能。
在一些实施例中,所述方法还包括:在所述告警信息的处理结果为处理失败的情况下,将所述告警信息发送至客户端,以供所述客户端根据第二目标处理策略,对所述告警信息进行处理;监控所述客户端返回的告警处理信息,并在根据所述告警处理信息,确定所述告警信息的处理状态为处理成功的情况下,获取所述第二目标处理策略;将在所述告警信息中抽取的新增关键词,以所述第二目标处理策略更新至所述知识库。
可选地,在告警信息进行处理之后,还需要实时监控处理结果,以确定告警信息是否处理成功,也即告警信息是否被解决。如告警信息未解决,则将固态磁盘标记为暂不可用,并将告警信息抛出至户端,等待人工介入解决。
待告警信息被人工解决之后,提炼告警信息的告警关键词及对应第二目标处理策略,增加到知识库中,以便后续遇到相似问题可以自动化处理,提高容错效率,进一步提高数据写入效率。
在一些实施例中,步骤103还进一步包括:
将所述多个预处理数据块镜像至所述第一分区的主缓存空间和备缓存空间;所述主缓存空间和备缓存空间之间属于不同的故障域;
所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区,包括:
从所述主缓存空间和备缓存空间中的任一缓存空间中,将各所述预处理数据块写入所述第二分区。
其中,第一分区至少包括一组属于不同的故障域的主缓存空间和备缓存空间,以防止副本丢失导致缓存数据损坏;每一缓存空间至少包括一个镜像文件。
可选地,在进行数据镜像时,可将各预处理数据块镜像至所述第一分区的主缓存空间和备缓存空间;需要说明的是,在数据镜像过程中,若其中一个缓存空间处于冗余失效状态时,则可先将各预处理数据块镜像至另一缓存空间,待该缓存空间恢复正常之后,再将另一缓存空间镜像的各预处理数据块同步至该缓存空间。
另外,在进行数据写入时,可从主缓存空间和备缓存空间中的任一缓存空间中获取镜像文件,以将各预处理数据块快速有效地写入第二分区。需要说明的是,在数据镜像过程中,若从其中一个缓存空间写入数据失败时,则可从本地另一缓存空间写入数据,以确保即使在存储节点发生故障且导致冗余失效的场景下,保障各预处理数据块仍然能够持续写入和读取,进一步提高写入性能。
在一些实施例中,在执行步骤103之前,所述方法还包括:
根据所述目标固态硬盘的配置文件,获取所述目标固态硬盘中各分区的划分比例;
根据所述各分区的划分比例,确定所述第一分区的容量以及所述第二分区的容量;
根据所述第一分区的容量以及所述第二分区的容量,对所述目标固态硬盘进行分区,得到所述第一分区和所述第二分区。
可选地,在使用目标固态硬盘的各分区之前,需要根据目标固态硬盘的配置文件中各分区的划分比例,进行分区划分。
获取目标固态硬盘的配置文件,并从配置文件中解析获取各分区的划分比例,计算各分区的划分比例,以根据各分区的划分比例,确定第一分区的容量以及第二分区的容量;进而根据第一分区的容量以及第二分区的容量在目标固态硬盘上划分相应的存储区域,进而得到第一分区和第二分区。另外,目标固态硬盘还可包括日志分区,在划分得到第一分区和第二分区之后,剩余存储空间可作为日志分区。
示例性地,在从配置文件中解析获取各分区的划分比例分别为,第一分区的划分比例为20%,日志分区的划分比例为5%,第二分区的划分比例为75%,则可将20%的存储区域划分为第一分区,将5%的存储区域划分为日志分区,将剩下的存储区域划分为第二分区。
另外,也可以根据实际需求对配置文件进行实时更新,以对各分区进行重新划分。
本实施例提供的方法,通过根据配置文件中划分参数即可对目标固态硬盘进行适应性地精准划分,进而为用户提供更加灵活可靠的读写服务。
下面对本发明提供的数据写入装置进行描述,下文描述的数据写入装置与上文描述的数据写入方法可相互对应参照。
如图4所示,为本实施例提供的数据写入装置的结构示意图,该装置包括:获取模块401用于接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;处理模块402用于对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;镜像模块403用于将所述多个预处理数据块镜像至目标固态硬盘的第一分区;响应模块404用于根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;写入模块405用于从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;其中,所述第一分区为待缓存所述待写入数据的数据缓存空间,所述第二分区为待写入所述待写入数据的数据存储空间。
本实施提供的数据写入装置,通过先将待写入数据进行数据预处理,并将预处理数据块镜像至目标固态硬盘的第一分区,一方面通过数据镜像可以实现数据冗余,以及通过数据预处理避免数据写放大的问题,进而可有效确保待写入数据的有效写入,另一方面,在获取到镜像结果,即可确定能否将待写入数据镜像完整正确地镜像至目标固态硬盘的第一分区,进一步确定能否将待写入数据镜像完整正确地从第一分区写入至目标固态硬盘的第二分区,进而在镜像阶段即可向客户端发送响应信息,无须等待所有数据块均写入完成,即可实时响应,有效减少数据块写入所带来的延时响应时间,进而提高数据写入响应效率。
本实施例提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
本发明还提供一种固态硬盘,包括控制芯片和存储芯片;如图2所示,存储芯片包括用于提供数据缓存的第一分区、提供数据写入的第二分区,以及提供日志存储和策略数据存储的日志分区。控制芯片是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
本实施提供的固态硬盘,通过先将待写入数据进行数据预处理,并将预处理数据块镜像至目标固态硬盘的第一分区,一方面通过数据镜像可以实现数据冗余,以及通过数据预处理避免数据写放大的问题,进而可有效确保待写入数据的有效写入,另一方面,在获取到镜像结果,即可确定能否将待写入数据镜像完整正确地镜像至目标固态硬盘的第一分区,进一步确定能否将待写入数据镜像完整正确地从第一分区写入至目标固态硬盘的第二分区,进而在镜像阶段即可向客户端发送响应信息,无须等待所有数据块均写入完成,即可实时响应,有效减少数据块写入所带来的延时响应时间,进而提高数据写入响应效率。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(Communications Interface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行数据写入方法,该方法包括:接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;将所述多个预处理数据块镜像至目标固态硬盘的第一分区;根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据写入方法,该方法包括:接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;将所述多个预处理数据块镜像至目标固态硬盘的第一分区;根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据写入方法,该方法包括:接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;将所述多个预处理数据块镜像至目标固态硬盘的第一分区;根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (25)

1.一种数据写入方法,其特征在于,包括:
接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;
对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;
将所述多个预处理数据块镜像至目标固态硬盘的第一分区;
根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;
从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;
其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
2.根据权利要求1所述的数据写入方法,其特征在于,所述根据镜像结果,获取所述待写入数据对应的响应信息,包括:
根据所述镜像结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在异常数据块;所述异常数据块包括处于镜像失败状态的数据块或处于校验失败状态的数据块;
在确定所述第一分区所镜像的所述多个预处理数据块中不存在异常数据块的情况下,确定所述响应信息为第一响应信息;所述第一响应信息包括所述待写入数据的写入状态为写入成功的响应信息。
3.根据权利要求2所述的数据写入方法,其特征在于,所述方法还包括:
在确定所述第一分区所镜像的所述多个预处理数据块中存在异常数据块的情况下,在所述目标固态硬盘的配置文件中获取最大延迟时长;
在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,直到满足更新停止条件;
根据更新结果,获取所述响应信息;
其中,所述更新停止条件包括所述第一分区中所镜像的所述多个预处理数据块中不存在异常数据块,和/或更新时长达到所述最大延迟时长。
4.根据权利要求3所述的数据写入方法,其特征在于,所述根据更新结果,获取所述响应信息,包括:
在根据所述更新结果,确定在每次更新过程中所述第一分区所镜像的所述多个预处理数据块中均存在异常数据块的情况下,确定所述响应信息为第二响应信息;所述第二响应信息包括所述待写入数据的写入状态为写入失败的响应信息;
在根据所述更新结果,确定在至少一次更新过程中所述第一分区中镜像的所述多个预处理数据块中不存在异常数据块的情况下,确定所述响应信息为所述第一响应信息。
5.根据权利要求3所述的数据写入方法,其特征在于,所述根据所述镜像结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在异常数据块,包括:
根据所述镜像结果,确定所述多个预处理数据块中处于镜像成功状态的第一待校验数据块;
获取所述第一待校验数据块的第一编码值以及第二编码值;所述第一编码值是将所述第一待校验数据块镜像至所述第一分区之前生成的编码值;所述第二编码值是将所述第一待校验数据块镜像至所述第一分区中各镜像文件之后,在所述各镜像文件中生成的编码值;
根据所述第一待校验数据块的第一编码值以及所述第二编码值,对所述第一待校验数据块进行校验,得到校验结果;
根据所述校验结果,确定所述第一分区所镜像的所述多个预处理数据块中是否存在所述异常数据块。
6.根据权利要求5所述的数据写入方法,其特征在于,所述根据所述第一待校验数据块的第一编码值以及所述第二编码值,对所述第一待校验数据块进行校验,得到校验结果,包括:
将所述各镜像文件中所述第一待校验数据块的第二编码值进行比较,得到第一比较结果;
在根据所述第一比较结果,确定各镜像文件中所述第一待校验数据块的第二编码值相同的情况下,将任一镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,得到第二比较结果;
在根据所述第二比较结果,确定所述第二编码值与所述第一编码值相同的情况下,确定所述校验结果为所述第一待校验数据块校验成功。
7.根据权利要求6所述的数据写入方法,其特征在于,所述方法还包括:
在根据所述第一比较结果,确定所述各镜像文件中所述第一待校验数据块的第二编码值不相同的情况下,将所述各镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值进行比较,得到第三比较结果;
在根据所述第三比较结果,确定所述各镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值均不相同的情况下,确定所述校验结果为所述第一待校验数据块校验失败;
所述在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,包括:
在所述最大延迟时长内,重新将所述第一待校验数据块镜像至所述第一分区的各镜像文件中。
8.根据权利要求7所述的数据写入方法,其特征在于,所述方法还包括:
在根据所述第三比较结果,确定所述第一分区中存在第一镜像文件和第二镜像文件的情况下,确定所述校验结果为所述第一待校验数据块校验失败;其中,所述第一镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值相同,所述第二镜像文件中所述第一待校验数据块的第二编码值与所述第一待校验数据块的第一编码值不相同;
所述在所述最大延迟时长内,对所述第一分区中所镜像的所述多个预处理数据块进行更新,包括:
在所述最大延迟时长内,将所述第一镜像文件中所镜像的所述多个预处理数据块同步至所述第二镜像文件中。
9.根据权利要求1-8任一所述的数据写入方法,其特征在于,所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区,包括:
在监控到所述第二分区的剩余存储容量大于或等于预设存储容量的情况下,根据所述数据写入请求,获取所述待写入数据的写入策略;
根据所述写入策略中的写入顺序和/或各所述预处理数据块在所述第一分区中的缓存时长,确定各所述预处理数据块的写入优先级;
根据所述写入优先级,从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区。
10.根据权利要求9所述的数据写入方法,其特征在于,根据各所述预处理数据块在所述第一分区中的缓存时长,确定各所述预处理数据块的写入优先级,包括:
在所述第一分区中存在缓存时长大于或等于最大延迟时长的任一预处理数据块的情况下,确定所述任一预处理数据块的写入优先级最高;所述最大延迟时长是在所述目标固态硬盘的配置文件中获取的。
11.根据权利要求1-8任一所述的数据写入方法,其特征在于,在所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区之后,所述方法还包括:
获取处于写入完成状态的预处理数据块,作为第二待校验数据块;
对所述第二待校验数据块进行校验;
在根据校验结果,确定所述第二待校验数据块校验失败的情况下,在所述目标固态硬盘的日志区分中,获取所述第二待校验数据块的写入日志;
根据所述写入日志,从所述第一分区的多个镜像文件中确定目标镜像文件;
从所述目标镜像文件中,将所述第二待校验数据块写入所述目标固态硬盘的第二分区。
12.根据权利要求11所述的数据写入方法,其特征在于,所述对所述第二待校验数据块进行校验,包括:
在所述待写入数据的写入策略中包括一致性校验策略的情况下,计算所述第二待校验数据块的奇偶检验值;
将所述第二待校验数据块的奇偶检验值与预设奇偶值进行比较,根据比较结果,对所述第二待校验数据块进行一致性校验。
13.根据权利要求1-8任一所述的数据写入方法,其特征在于,所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区,包括:
根据所述多个预处理数据块,向所述第一分区发送镜像请求,以供所述第一分区根据所述镜像请求以及本地逻辑地址管理表,调用目标逻辑存储块,将各所述预处理数据块镜像至所述第一分区。
14.根据权利要求13所述的数据写入方法,其特征在于,所述对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块,包括:
获取所述目标固态硬盘的配置文件,从所述配置文件中获取预设数据块规格;
按照所述待写入数据中的各原始数据的数据块规格,对各所述原始数据进行排序;
根据排序结果,将各所述原始数据添加至第一数据队列,得到第二数据队列;
将所述第二数据队列中数据块规格大于所述预设数据块规格的数据块,按照所述预设数据块规格进行切分;
根据切分结果对所述第二数据队列进行更新,得到第三数据队列;
将所述第三数据队列中数据块规格小于所述预设数据块规格的数据块,按照所述预设数据块规格进行整合,并根据整合结果对所述第三数据队列进行更新,得到目标数据队列;
根据所述目标数据队列中的数据块,确定所述预处理数据块。
15.根据权利要求1-8任一所述的数据写入方法,其特征在于,所述方法还包括:
确定所述多个预处理数据块中处于写入成功状态的已写入数据块;
根据所述已写入数据块,对所述第一分区的本地逻辑地址管理表进行更新,并在所述第一分区中,擦除所述已写入数据块。
16.根据权利要求1-8任一所述的数据写入方法,其特征在于,在所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区之前,所述方法还包括:
对所述第一分区和所述第二分区进行初始化操作,获取初始化结果;
在确定所述初始化结果中存在告警信息的情况下,将所述告警信息与知识库中的预设关键词进行匹配,得到与所述告警信息匹配的至少一个目标关键词;
在所述知识库中确定各目标关键词对应的候选处理策略;
根据所述各目标关键词对应的候选处理策略,确定所述告警信息对应的第一目标处理策略;
调用所述第一目标处理策略对应的处理组件,对所述告警信息进行处理。
17.根据权利要求16所述的数据写入方法,其特征在于,所述根据所述各目标关键词对应的候选处理策略,确定所述告警信息对应的第一目标处理策略,包括:
根据每一候选处理策略的数量,确定所述每一候选处理策略与所述告警信息之间的关联度;
确定所述关联度最大的候选处理策略,作为所述第一目标处理策略。
18.根据权利要求16所述的数据写入方法,其特征在于,所述方法还包括:
获取所述告警信息的处理结果;
在所述告警信息的处理结果为处理成功的情况下,对所述告警信息进行关键词抽取,得到新增关键词;
将所述新增关键词以及所述第一目标处理策略更新至所述知识库。
19.根据权利要求16所述的数据写入方法,其特征在于,所述方法还包括:
在所述告警信息的处理结果为处理失败的情况下,将所述告警信息发送至客户端,以供所述客户端根据第二目标处理策略,对所述告警信息进行处理;
监控所述客户端返回的告警处理信息,并在根据所述告警处理信息,确定所述告警信息的处理状态为处理成功的情况下,获取所述第二目标处理策略;
将在所述告警信息中抽取的新增关键词,以所述第二目标处理策略更新至所述知识库。
20.根据权利要求1-8任一所述的数据写入方法,其特征在于,所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区,包括:
将所述多个预处理数据块镜像至所述第一分区的主缓存空间和备缓存空间;所述主缓存空间和备缓存空间之间属于不同的故障域;
所述从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区,包括:
从所述主缓存空间和备缓存空间中的任一缓存空间中,将各所述预处理数据块写入所述第二分区。
21.根据权利要求1-8任一所述的数据写入方法,其特征在于,在所述将所述多个预处理数据块镜像至目标固态硬盘的第一分区之前,所述方法还包括:
根据所述目标固态硬盘的配置文件,获取所述目标固态硬盘中各分区的划分比例;
根据所述各分区的划分比例,确定所述第一分区的容量以及所述第二分区的容量;
根据所述第一分区的容量以及所述第二分区的容量,对所述目标固态硬盘进行分区,得到所述第一分区和所述第二分区。
22.一种数据写入装置,其特征在于,包括:
获取模块,用于接收目标对象发送的数据写入请求,并根据所述数据写入请求,获取待写入数据;
处理模块,用于对所述待写入数据中的各原始数据块进行预处理,得到所述待写入数据的多个预处理数据块;所述预处理包括切分和/或整合;
镜像模块,用于将所述多个预处理数据块镜像至目标固态硬盘的第一分区;
响应模块,用于根据镜像结果,获取所述待写入数据对应的响应信息,并向所述目标对象发送所述响应信息;所述响应信息包括写入状态信息;
写入模块,用于从所述第一分区中,将各所述预处理数据块写入所述目标固态硬盘的第二分区;
其中,所述第一分区为用于缓存所述待写入数据的数据缓存空间,所述第二分区为用于存储所述待写入数据的数据存储空间。
23.一种固态硬盘,其特征在于,所述固态硬盘包括控制芯片和存储芯片;所述存储芯片包括第一分区、第二分区和日志分区;
所述控制芯片执行计算机程序时实现如权利要求1至21任一项所述数据写入方法。
24.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至21任一项所述数据写入方法。
25.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至21任一项所述数据写入方法。
CN202310370623.7A 2023-04-10 2023-04-10 数据写入方法、装置、固态硬盘、电子设备及存储介质 Active CN116107516B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310370623.7A CN116107516B (zh) 2023-04-10 2023-04-10 数据写入方法、装置、固态硬盘、电子设备及存储介质
PCT/CN2024/083115 WO2024212783A1 (zh) 2023-04-10 2024-03-21 数据写入方法、装置、固态硬盘、电子设备及非易失性可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310370623.7A CN116107516B (zh) 2023-04-10 2023-04-10 数据写入方法、装置、固态硬盘、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116107516A true CN116107516A (zh) 2023-05-12
CN116107516B CN116107516B (zh) 2023-07-11

Family

ID=86256418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310370623.7A Active CN116107516B (zh) 2023-04-10 2023-04-10 数据写入方法、装置、固态硬盘、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN116107516B (zh)
WO (1) WO2024212783A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116880776A (zh) * 2023-09-06 2023-10-13 上海凯翔信息科技有限公司 一种存储数据的数据处理系统
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113336A (ja) * 2009-11-27 2011-06-09 Seiko Epson Corp 複数の記憶装置を備えるシステム及びそのためのデータ転送方法
WO2015173925A1 (ja) * 2014-05-15 2015-11-19 株式会社日立製作所 ストレージ装置
CN106293520A (zh) * 2016-07-29 2017-01-04 浪潮(北京)电子信息产业有限公司 一种io请求的处理方法
CN107526535A (zh) * 2016-06-22 2017-12-29 伊姆西公司 用于管理存储系统的方法和系统
CN110737716A (zh) * 2018-07-02 2020-01-31 华为技术有限公司 一种数据写入的方法和装置
CN111666043A (zh) * 2017-11-03 2020-09-15 华为技术有限公司 一种数据存储方法及设备
CN113972989A (zh) * 2020-07-06 2022-01-25 宇龙计算机通信科技(深圳)有限公司 数据校验方法、装置、存储介质及电子设备
CN115048655A (zh) * 2022-06-23 2022-09-13 苏州浪潮智能科技有限公司 基本输入输出系统镜像校验方法、装置、设备和介质
CN115270033A (zh) * 2021-04-14 2022-11-01 华为技术有限公司 一种数据访问系统、方法、设备以及网卡
CN115454469A (zh) * 2022-08-30 2022-12-09 浪潮通信技术有限公司 镜像更新方法、装置、芯片、电子设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113336A (ja) * 2009-11-27 2011-06-09 Seiko Epson Corp 複数の記憶装置を備えるシステム及びそのためのデータ転送方法
WO2015173925A1 (ja) * 2014-05-15 2015-11-19 株式会社日立製作所 ストレージ装置
CN107526535A (zh) * 2016-06-22 2017-12-29 伊姆西公司 用于管理存储系统的方法和系统
CN106293520A (zh) * 2016-07-29 2017-01-04 浪潮(北京)电子信息产业有限公司 一种io请求的处理方法
CN111666043A (zh) * 2017-11-03 2020-09-15 华为技术有限公司 一种数据存储方法及设备
CN110737716A (zh) * 2018-07-02 2020-01-31 华为技术有限公司 一种数据写入的方法和装置
CN113972989A (zh) * 2020-07-06 2022-01-25 宇龙计算机通信科技(深圳)有限公司 数据校验方法、装置、存储介质及电子设备
CN115270033A (zh) * 2021-04-14 2022-11-01 华为技术有限公司 一种数据访问系统、方法、设备以及网卡
CN115048655A (zh) * 2022-06-23 2022-09-13 苏州浪潮智能科技有限公司 基本输入输出系统镜像校验方法、装置、设备和介质
CN115454469A (zh) * 2022-08-30 2022-12-09 浪潮通信技术有限公司 镜像更新方法、装置、芯片、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIGUANG WAN 等: "A New High-performance, Energy-efficient Replication Storage System with Reliability Guarantee", 2012 IEEE 28TH SYMPOSIUM ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST) *
WEIJUN XIAO 等: "PASS: A Hybrid Storage System for Performance-Synchronization Tradeoffs Using SSDs", 2012 IEEE 10TH INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING WITH APPLICATIONS, pages 403 - 410 *
刘宏伟: "虚拟SIM卡关键数据的安全写入系统设计与实现", 信息记录材料, vol. 24, no. 3, pages 1 - 3 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116880776A (zh) * 2023-09-06 2023-10-13 上海凯翔信息科技有限公司 一种存储数据的数据处理系统
CN116880776B (zh) * 2023-09-06 2023-11-17 上海凯翔信息科技有限公司 一种存储数据的数据处理系统
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
CN117472291B (zh) * 2023-12-27 2024-03-22 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
WO2024212783A1 (zh) 2024-10-17
CN116107516B (zh) 2023-07-11

Similar Documents

Publication Publication Date Title
CN116107516B (zh) 数据写入方法、装置、固态硬盘、电子设备及存储介质
US10725692B2 (en) Data storage method and apparatus
US10261853B1 (en) Dynamic replication error retry and recovery
US8060772B2 (en) Storage redundant array of independent drives
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
US20160188240A1 (en) Method for a source storage device sending data to a backup storage device for storage, and storage device
CN107729536B (zh) 一种数据存储方法和装置
US9984139B1 (en) Publish session framework for datastore operation records
EP3983878B1 (en) Ensuring sufficient available storage capacity for data resynchronization/reconstruction in a hyper-converged infrastructure
US7774571B2 (en) Resource allocation unit queue
CN114443364B (zh) 一种分布式块存储数据处理方法、装置、设备及存储介质
US8275937B2 (en) Storage system and processing efficiency improving method of storage system
US7849264B2 (en) Storage area management method for a storage system
US20190347165A1 (en) Apparatus and method for recovering distributed file system
CN116501259A (zh) 磁盘组双活同步方法、装置、计算机设备及存储介质
US11182252B2 (en) High availability state machine and recovery
WO2021046693A1 (zh) 存储系统中数据处理方法、装置以及存储系统
CN117111860B (zh) 磁盘阵列降级时的io处理方法、装置及电子设备
US20090177916A1 (en) Storage system, controller of storage system, control method of storage system
CN117539386A (zh) 磁盘阵列数据的处理方法、装置、设备及存储介质
CN112748865B (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN115470041A (zh) 一种数据灾备管理方法及装置
CN111427659B (zh) 一种ssd硬盘直通虚拟机的热迁移的方法和设备
US20130110789A1 (en) Method of, and apparatus for, recovering data on a storage system
CN110389713B (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