CN115617268A - 数据写入方法、存储系统及服务器 - Google Patents
数据写入方法、存储系统及服务器 Download PDFInfo
- Publication number
- CN115617268A CN115617268A CN202211274403.6A CN202211274403A CN115617268A CN 115617268 A CN115617268 A CN 115617268A CN 202211274403 A CN202211274403 A CN 202211274403A CN 115617268 A CN115617268 A CN 115617268A
- Authority
- CN
- China
- Prior art keywords
- target data
- write
- storage medium
- target
- volatile storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000015654 memory Effects 0.000 claims description 64
- 238000012163 sequencing technique Methods 0.000 claims description 32
- 239000003990 capacitor Substances 0.000 claims description 15
- 238000013500 data storage Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/061—Improving I/O performance
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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
- G06F3/0656—Data buffering arrangements
-
- 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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
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)
Abstract
本申请提供了一种数据写入方法、存储系统及服务器,涉及数据存储技术领域。该方法中,在接收到多个写指令后,若写指令的写入对象为SMR盘,则将写指令中包含的目标数据写入易失性存储介质,并按照每个目标数据对应的写入地址,对多个目标数据进行排序,从而使得多个目标数据成为有序的数据组。之后,依据排序所得到的目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。由于是依据目标排序结果,将多个目标数据依序写入SMR盘的,相对于在接收到多个写指令时便将其所携带的多个目标数据随机写入SMR盘,提升了多个写指令的写性能,进而提升了存储系统的写性能。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据写入方法、存储系统及服务器。
背景技术
随着大数据的发展,人们对于存储系统的要求越来越高,为了扩大存储系统的存储容量,提出了使用叠瓦式磁记录(shingled magnetic recording,SMR)盘组建存储盘。然而,由于SMR盘采用重叠的磁记录方式,随机写性能较差,进而导致存储系统的写性能下降。
相关技术中,为了提升存储系统的写性能,为存储系统配置少量传统磁记录(conventional magnetic recording,CMR)盘,并将存储系统接收到的随机写数据写入CMR硬盘。这种方式,由于需要增加单独用于存储随机写数据的CMR盘,一方面,由于需要管理两种不同类型的硬盘,所以,对存储系统中的磁盘阵列卡的性能要求也比较高,这也就是导致存储系统的成本会比较高。另一方面,由于每个磁盘阵列卡所连接的磁盘数量是有限的,因此,如果要为存储系统增加CMR盘,必然就要减少存储系统中的SMR盘的数量,这就导致存储系统的存储能力下降。
发明内容
本申请实施例提供一种数据写入方法、存储系统及服务器,能够以较低的成本提升存储系统的写性能,且不会影响存储系统的存储能力。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种数据写入方法,该方法包括:接收多个写指令,每个写指令包括目标数据和对应的写入地址,若写指令的写入对象为SMR盘,则将写指令中包含的目标数据写入易失性存储介质,并按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果;依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
在该方案中,在接收到多个写指令后,若写指令的写入对象为SMR盘,则将写指令中包含的目标数据写入易失性存储介质,并按照每个目标数据对应的写入地址,对多个目标数据进行排序,从而使得多个目标数据成为有序的数据组。之后,依据排序所得到的目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。由于是依据目标排序结果,将多个目标数据依序写入SMR盘,相对于在接收到多个写指令时便将其所携带的多个目标数据随机写入SMR盘,提升了多个写指令的写性能,进而提升了存储系统的写性能。此外,由于仅将写入对象为SMR盘的写指令中包含的目标数据写入易失性存储介质,因此,不仅可以通过提高SMR硬盘的随机写性能实现提高存储系统的写性能,还可以避免过多的占用易失性存储介质存储空间。另外,本申请实施例提供的该方案,无需对硬件进行改进,只需利用存储系统所包括的硬件即可实现,相对于相关技术中的方案,对磁盘阵列卡的性能要求不高,且无需增加CMR硬盘,因此,不仅实现了以较低的成本提高了存储系统的写性能,而且不会影响存储系统的存储能力。
在一种可能的实现方式中,将写指令中包含的目标数据写入易失性存储介质中,包括:若易失性存储介质为缓存,由磁盘阵列卡将写指令中包含的目标数据写入缓存中。
在该实现方式中,通过设置易失性存储介质为缓存,这样,磁盘阵列卡可以直接将目标数据写入缓存中,不必调用驱动程序,有助于简化目标数据的写入逻辑,提高目标数据的写入速度。
另一种可能的实现方式中,将写指令中包含的目标数据写入易失性存储介质中,包括:若易失性存储介质为内存,由磁盘阵列卡调用磁盘阵列卡的驱动程序,以将写指令中包含的目标数据写入内存。
在该实现方式中,通过设置易失性存储介质为内存,这样,可以充分利用服务器上的组件,不必另外为配置新的部件,有助于降低成本,进而以较低的成本提高存储系统的写性能。
另一种可能的实现方式中,按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果,包括:根据每个目标数据对应的写入地址的大小,对多个目标数据进行排序,得到目标排序结果;多个逻辑区块地址分别为多个目标数据的待写入地址。
在该实现方式中,提供了对多个目标数据进行排序的一种具体实现方式。该方式中,根据每个目标数据对应的写入地址的大小,对多个目标数据进行排序,这样,所得到的目标排序结果中多个目标数据按照写入地址从小到大的顺序或从大到小的顺序排序。之后,可以按照多个写入地址的排序将多个目标数据按序写入SMR盘,相对于多个目标数据随机写入SMR盘,提升了多个写指令的写性能,进而提升了存储系统的写性能。
另一种可能的实现方式中,每个写指令还包括目标数据对应的时间戳;按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果,包括:以每个目标数据对应的写入地址为第一维度、每个目标数据对应的时间戳为第二维度,对多个目标数据进行排序,得到目标排序结果。
在该实现方式中,提供了对多个目标数据进行排序的一种具体实现方式。该方式中,以每个目标数据对应的写入地址为第一维度、每个目标数据对应的时间戳为第二维度,对多个目标数据进行排序,这样,所得到的目标排序结果就包含了两个维度的排序结果,也就是说明,目标数据的顺序位置为一个二维数组,该二维数组中的一个元素指示了目标数据在第一维度的排序结果中的排序位置,另一个元素指示了目标数据在第二维度的排序结果中的排序位置。之后,可以结合两个维度的排序结果,将多个目标数据按序写入SMR盘,相对于多个目标数据随机写入SMR盘,一方面,通过将多个目标数据按序写入SMR盘,提升了多个写指令的写性能,进而提升了存储系统的写性能。另一方面,通过按照目标数据的时间戳的排序结果将多个目标数据写入SMR盘,能够避免晚接收到的目标数据先写入SMR盘,早接收到的数据后写入SMR盘,这样,就能够保证SMR盘存储的是最新数据,进而有助于保证写入数据的准确性。
另一种可能的实现方式中,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘,包括:按照预设周期,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
在该实现方式中,按照预设周期,依据目标排序结果,将易失性存储介质的多个目标数据依序写入SMR盘,一方面,通过控制预设周期的时长,可以避免易失性存储介质中存储的数据过多,这样,就可以预留足够的存储空间用于存储待随机写入SMR盘的数据,进而有助于提升磁盘阵列卡对待随机写入SMR盘的数据的处理能力。另一方面,可以避免多个目标数据在易失性存储介质中存储的时间过长,导致数据丢失或损坏,如发生掉电时导致数据丢失。
另一种可能的实现方式中,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘,包括:若易失性存储介质的剩余存储空间小于或等于预设阈值的情况下,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
在该实现方式中,在多个目标数据在易失性存储介质中所占用的存储空间大于或等于预设阈值时,将多个目标数据写入SMR盘,这样,可以避免易失性介质中存储的数据过多,从而可以预留足够的存储空间用于存储待随机写入SMR盘的数据,进而有助于提升磁盘阵列卡对待随机写入SMR盘的数据的处理能力。
另一种可能的实现方式中,多个写指令包括第一写指令,第一写指令所携带的是多个目标数据中的第一目标数据;该方法还包括:若第一目标数据成功写入易失性存储介质,返回第一目标数据的写入结果。
在该实现方式中,磁盘阵列卡接收到CPU发送的多个写指令中的第一写指令,该第一写指令所携带的是第一目标数据,则磁盘阵列卡在将第一目标数据写入易失性存储介质后,向CPU返回第一数据的写入结果,该写入结果用于指示第一目标数据写入成功,这样,对于CPU侧来说,整个第一写指令便执行完成了。相对相关技术中将第一目标数据写入SMR盘后再向CPU返回写入结果,对存储系统侧来说,缩短了第一写指令的响应时间,对于CPU侧来说,则缩短了写指令的执行时间,提高了CPU侧对写指令的处理效率。
另一种可能的实现方式中,该方法还包括:若检测到易失性存储介质掉电,启动储电电容为易失性存储介质供电;将易失性存储介质中存储的多个目标数据,写入闪存中。
在该实现方式中,通过在检测到易失性存储介质掉电时,启动储电电容为易失性存储介质供电,并将易失性存储介质中存储的多个目标数据写入闪存中,从而可以实现对易失性存储介质中的多个目标数据进行数据备份,避免数据丢失。
第二方面,提供了一种数据写入装置,该装置包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的动作通过硬件实现或通过硬件执行相应的软件实现。例如,数据写入装置可以包括:接收单元、处理单元和写入单元。接收单元,用于接收多个写指令,每个写指令包括目标数据和对应的写入地址;处理单元,用于若写指令的写入对象为SMR盘,则将写指令中包含的目标数据写入易失性存储介质中,并按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果;写入单元,用于依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
第三方面,提供了一种存储系统,包括:SMR盘、磁盘阵列卡和易失性存储介质;易失性存储介质用于存储磁盘阵列卡接收到的多个写指令所携带的多个目标数据;其中,磁盘阵列卡用于执行上述第一方面提供的任意一种方法,以将易失性存储介质中的多个目标数据写入SMR盘。
第四方面,提供了一种存储系统,包括SMR盘、磁盘阵列卡和易失性存储介质。磁盘阵列卡,用于接收多个写指令,每个写指令包括目标数据和对应的写入地址;若写指令的写入对象为SMR盘,则将写指令中包含的目标数据写入易失性存储介质中,并按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果;依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
在一种可能的实现方式中,存储系统还包括储电电容和闪存;储电电容用于在易失性存储介质掉电时,为易失性存储介质供电;闪存用于在易失性存储介质掉电时,存储易失性存储介质中所存储的多个目标数据。
另一种可能的实现方式中,磁盘阵列卡具体用于:若易失性存储介质为缓存,由磁盘阵列卡将写指令中包含的目标数据写入缓存中。
另一种可能的实现方式中,磁盘阵列卡具体用于:若易失性存储介质为内存,由磁盘阵列卡调用磁盘阵列卡的驱动程序,以将写指令中包含的目标数据写入内存。
另一种可能的实现方式中,磁盘阵列卡具体用于:根据每个目标数据对应的写入地址的大小,对多个目标数据进行排序,得到目标排序结果。
另一种可能的实现方式中,每个写指令还包括目标数据对应的时间戳;磁盘阵列卡具体用于:以每个目标数据对应的写入地址为第一维度、每个目标数据对应的时间戳为第二维度,对多个目标数据进行排序,得到目标排序结果。
另一种可能的实现方式中,磁盘阵列卡具体用于:按照预设周期,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
另一种可能的实现方式中,磁盘阵列卡具体用于:若易失性存储介质的剩余存储空间小于或等于预设阈值的情况下,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
另一种可能的实现方式中,多个写指令包括第一写指令,第一写指令所携带的是多个目标数据中的第一目标数据;磁盘阵列卡还用于:若第一目标数据成功写入易失性存储介质,返回第一目标数据的写入结果。
另一种可能的实现方式中,磁盘阵列卡还用于:若检测到易失性存储介质掉电,启动储电电容为易失性存储介质供电;将易失性存储介质中存储的多个目标数据,写入闪存中。
第五方面,提供了一种服务器,包括:处理器和如第三方面所提供的存储系统,处理器与存储系统连接。
第六方面,提供了一种计算机设备,包括:处理器和存储器,处理器与存储器连接。存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
第七方面,提供了一种芯片,芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行上述第一方面提供的任意一种方法。
第八方面,提供了一种计算机可读存储介质,存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
第九方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
其中,第二方面至第九方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种服务器的系统架构图;
图2为本申请实施例提供的一种存储系统的架构图;
图3为本申请实施例提供的一种磁盘阵列卡的示意图;
图4为本申请实施例提供的一种数据写入方法的流程图;
图5为本申请实施例提供的另一种数据写入方法的流程图;
图6为本申请实施例提供的另一种数据写入方法的流程图;
图7为本申请实施例提供的一种目标排序结果的示意图;
图8为本申请实施例提供的另一种数据写入方法的流程图;
图9为本申请实施例提供的一种数据写入装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
首先,对本申请实施例的应用场景进行示例性介绍。
存储系统是服务器的重要组成部分之一。目前,存储系统主要包括存储盘和磁盘阵列卡,其中,存储盘由至少一块独立的磁盘组成,磁盘阵列卡是管理存储盘的部件,主要用于数据分发以及数据冗余备份等。
随着大数据的发展,人们对于存储系统的要求越来越高,为了扩大存储系统的存储容量,提出了使用SMR盘组建存储盘。然而,由于SMR盘采用重叠的磁记录方式,随机写性能较差,进而导致存储系统的写性能较差。
相关技术中,为了提升存储系统的写性能,为存储系统配置少量CMR硬盘,并将存储系统接收到的随机写数据写入CMR硬盘。这种方式,由于需要增加单独用于存储随机写数据的CMR硬盘,一方面,由于需要管理两种不同类型的硬盘,所以,对存储系统中的磁盘阵列卡的性能要求也比较高,这也就是导致存储系统的成本会比较高。另一方面,由于每个磁盘阵列卡所连接的磁盘数量是有限的,因此,如果要为存储系统增加CMR盘,必然就要减少存储系统中的SMR盘的数量,这就导致存储系统的存储能力下降。
有鉴于此,本申请实施例提出一种数据写入方法,在接收到多个写指令后,若写指令的写入对象为SMR盘,则将写指令中包含的目标数据写入易失性存储介质,并按照每个目标数据对应的写入地址,对多个目标数据进行排序,从而使得多个目标数据成为有序的数据组。之后,依据排序所得到的目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。由于是依据目标排序结果,将多个目标数据依序写入SMR盘,相对于在接收到多个写指令时便将其所携带的多个目标数据随机写入SMR盘,提升了多个写指令的写性能,进而提升了存储系统的写性能。此外,由于仅将写入对象为SMR盘的写指令中包含的目标数据写入易失性存储介质,因此,不仅可以通过提高SMR硬盘的随机写性能实现提高存储系统的写性能,还可以避免过多的占用易失性存储介质存储空间。另外,本申请实施例提供的该方案,无需对硬件进行改进,只需利用存储系统所包括的硬件即可实现,相对于相关技术中的方案,对磁盘阵列卡的性能要求不高,且无需增加CMR硬盘,因此,不仅实现了以较低的成本提高了存储系统的写性能,而且不会影响存储系统的存储能力。
其次,对本申请实施例的系统架构进行示例性介绍。
如图1所示,为本申请实施例提供的服务器的架构图。服务器包括中央处理器CPU、存储系统、主机内存和主机缓存。
可选地,存储系统包括磁盘阵列(redundant arrays of independent disks,RAID)卡、背板、存储盘和易失性存储介质(图1中未示出)。磁盘阵列卡通过背板与存储盘连接。
其中,存储盘包括多个硬盘组成的磁盘阵列和/或单个硬盘组成的磁盘簇(just abunch of disks,JBOD)。磁盘阵列包括SMR盘。JBOD包括SMR硬盘。
需要说明的,本申请实施例对磁盘阵列中的硬盘的具体数量不做限制。此外,存储系统中不同磁盘阵列中的硬盘的数量,可以相等,或者,也可以不相等,本申请对此不做限制。
其中,磁盘阵列卡用于接收读写指令及执行读写指令。磁盘阵列卡可以插在主板上,例如,插在主板的高速串行计算机扩展总线标准(peripheral componentinterconnect express,PCIE)槽位上,上行通过PCIE协议与CPU进行通信,接收CPU发送的读写指令,并返回读写指令的读写结果。下行通过串行连接SCSI接口(Serial AttachedSCSI,SAS)协议和存储盘进行通信。
可选地,磁盘阵列卡还包括缓存。缓存用于存储写入对象为SMR盘的写指令包含的数据。
如2所示,为本申请实施例提供存储系统的架构图,具体来说,是图1中的存储系统的架构图。需要说明的,图2中未出存储系统的背板。
如图2所示,易失性存储介质包括服务器的内存或磁盘阵列卡的缓存。磁盘阵列卡中的缓存可以是双倍数据速率Cache(double data rate Cache,DDR Cache)。
若易失性存储介质包括服务器的内存,磁盘阵列卡与服务器的内存连接(具体参见图1)。
由于易失性存储介质包括服务器的内存或磁盘阵列卡的缓存,因此,对于未配置缓存的磁盘阵列卡,则可以由服务器的内存作为本申请实施例中的易失性存储介质,用于存储下述实施例中的写入对象为SMR盘的写指令包含的数据,从而实现通过复用服务器的原有部件,执行本申请实施例的方案,有助于降低成本。
在一些实施例中,如图2所示,磁盘阵列卡还包括闪存(如Nand Flash)和储电电容。
储电电容,用于在易失性存储介质发生掉电时,为易失性存储介质供电,以将易失性存储介质中的目标数据拷贝至闪存中,进行备份,从而避免易失性存储介质中目标数据丢失。在易失性存储介质重新上电后,将闪存中的数据回拷至易失性存储介质中,以将易失性存储介质中已排序的目标数据写入SMR盘。
示例性的,储电电容可以是超级电容。
需要说明的,本申请实施例对储电电容的类型不作限制。
在一些实施例中,磁盘阵列卡中存储有固件程序(Firmware,FW)。
需要说明的,下述实施例中的磁盘阵列卡执行某个步骤(如S301),可以认为是,磁盘阵列卡调用固件程序执行该步骤。
以下,结合图3,对固件程序所包括的模块进行简要介绍。如图3所示,固件程序包括读写判别模块、排序模块、写模块和掉电保护模块。
读写判别模块:主要用于对CPU下发的写指令进行判别,例如,写指令的下发对象是否为SMR盘,若判断结果为是,则调用写模块,将写指令包含的目标数据写入易失性存储介质。
排序模块,用于对易失性存储介质中的多个目标数据进行排序。
写模块,用于将易失性存储介质中的已排序的目标数据写入SMR盘。
掉电保护模块,用于在易失性存储介质发生异常掉电时,开启储电电容为易失性存储介质供电,并对易失性存储介质中的数据进行备份,例如,拷贝至闪存进行备份。在易失性存储介质重新上电后,将备份数据拷贝易失性存储介质。
需要说明的,本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
为了便于理解,以下结合附图对本申请提供的数据写入方法进行示例性介绍。该数据写入方法适用于图1至图3所示的存储系统。
本申请以下实施例将分成四个部分对数据写入方法的方案进行示例性介绍。
第一部分,结合图4介绍了易失性存储介质为磁盘阵列卡的缓存时,磁盘阵列卡接收到多个写指令后,将多个写指令包含的多个目标数据写入缓存,并在对多个目标数据排序后,将多个目标数据依序从缓存写入SMR盘的过程。
第二部分,结合图5介绍了易失性存储介质为服务器的内存时,磁盘阵列卡接收到多个写指令后,将多个写指令包含的多个目标数据写入内存,并在对多个目标数据排序后,将多个目标数据依序从服务器的内存写入SMR盘的过程。
第三部分,结合图6至图7介绍了图4以及图5所示方案的一种具体实现方式,具体为,对多个目标数据以写入地址为第一维度、时间戳为第二维度进行排序的实现过程。
第四部分,结合图8介绍了图4以及图5所示方案的另一种具体实现方式,具体为,对多个目标数据以写入地址的大小进行排序的实现过程。
以下,结合图4介绍本申请实施例的第一部分。
图4是根据一示例性实施例示出的一种数据写入方法的流程图。示例性的,该方法包括如下所示的S401-S406。
S401:磁盘阵列卡接收多个写指令,每个写指令包括目标数据和对应的写入地址。
可选地,多个写指令所包含的多个目标数据按照随机写方式写入存储盘(如SMR盘)。
其中,随机写方式是指待写入的多个数据的写入地址不连续。
基于此,在本申请实施例中,若磁盘阵列卡依次接收到多个写指令,该依次接收到的多个写指令所包含的多个目标数据所对应的多个写入地址不连续,则多个写指令所包含的多个目标数据按照随机写方式写入存储盘。
例如,依次接收到的多个写指令包括写指令1、写指令2和写指令3。其中,写指令1包括目标数据1和写入地址1、写指令2包括目标数据2和写入地址5、写指令3包括目标数据3和写入地址2,若写入地址1、写入地址2和写入地址5为连续地址,则依次接收到的三个写指令所包含的三个目标数据所对应的三个写入地址的顺序为写入地址1、写入地址5、写入地址2,也就是说,若按照接收顺序进行写入,则目标数据1、目标数据2、目标数据3的写入地址不连续,此时,三个写指令所包含的三个目标数据按照随机写方式写入存储盘。
在一些实施例中,写入地址为逻辑区块地址(logical block address,LBA)。
其中,一个写指令包括一个目标数据和一个写入地址,该一个写入地址为该一个目标数据的待写入地址。
例如,多个写指令包括写指令a,写指令a包括目标数据a和写入地址a,则磁盘阵列卡将目标数据a写到写入地址a指示的位置。
基于此,多个写指令包括了多个目标数据和多个写入地址。
需要说明的,不同写指令所包括的写入地址,可以相同,或者,也可以不同,本申请实施例对此不做限制。
需要说明的,本申请实施例对多个写指令的具体数量不做限制。
S402:磁盘阵列卡判断写指令的写入对象是否为SMR盘。
若判断结果为否,则执行S403。若判断结果为是,则执行S404。
在一些实施例中,磁盘阵列卡每接收到一个写指令,即判断该一个写指令的写入对象是否为SMR盘。例如,磁盘阵列卡接收到写指令1,即判断写指令1的写入对象是否为SMR盘。之后,接收到写指令2时,即判断写指令2的写入对象是否为SMR盘。
在另一些实施例中,磁盘阵列卡接收到预设数量的写指令后,分别判断该预设数量的写指令的写入对象是否为SMR盘。例如,磁盘阵列卡接收到三个写指令,分别为写指令1、写指令2和写指令3,之后,磁盘阵列卡分别判断写指令1、写指令2以及写指令3的写入对象是否为SMR盘。
需要说明的,本申请实施例对预设数量的具体数值不做限制。
在又一些实施例中,磁盘阵列卡按照预设周期,分别判断周期内接收到的至少一个写指令的写入对象是否为SMR盘。例如,
需要说明的,本申请实施例预设周期的具体时长不做限制。
示例性的,在上述实施例中,具体实现时,可以根据写指令所包括的写入地址,判断写指令的写入对象是否为SMR盘。
S403:磁盘阵列卡将写指令中包含的目标数据写入目标硬盘。
其中,目标硬盘为写指令所指示的写入对象。
例如,写入对象为CMR盘,则磁盘阵列卡将写指令所包含的目标数据写入CMR盘。
S404:磁盘阵列卡将写指令中包含的目标数据写入缓存中。
在一些实施例中,若多个写指令的写入对象均为SMR盘,则磁盘阵列卡将多个写指令所包含的多个目标数据分别写入SMP盘。
在另一些实施例中,若多个写指令中部分写指令的写入对象为SMR盘,则磁盘阵列卡将部分写指令所包含的部分目标数据分别写入SMR盘。
可选地,多个写指令包括第一写指令,第一写指令包括多个目标数据中的第一目标数据。在磁盘阵列卡执行完S404之后,该数据写入方法还包括:若第一目标数据写入缓存,磁盘阵列卡返回第一目标数据的写入结果。
在一些实施例中,磁盘阵列卡接收到CPU发送的多个写指令中的第一写指令,该第一写指令包括第一目标数据,则磁盘阵列卡在将第一目标数据写入缓存后,向CPU返回第一数据的写入结果,该写入结果用于指示第一目标数据写入成功,这样,对于CPU侧来说,整个第一写指令便执行完成了。相对相关技术中将第一目标数据写入SMR盘后再向CPU返回写入结果,对存储系统侧来说,缩短了第一写指令的响应时间,对于CPU侧来说,则缩短了写指令的执行时间,提高了CPU侧对写指令的处理效率。
S405:磁盘阵列卡按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果。
其中,目标排序结果指示多个目标数据中的每个目标数据的排序位置。
在一些实施例中,磁盘阵列卡将一个目标数据写入缓存时,即确定该一个目标数据在多个目标数据中的排序位置,从而在将多个目标数据全部写入缓存后,得到目标排序结果。例如,已有3个目标数据写入缓存,这3个目标数据的排序为目标数据1、目标数据5、目标数据7,在磁盘阵列卡将目标数据2写入缓存后,即确定目标数据2的排序位置,目标数据2的排序位置在目标数据1之后,并在目标数据5之前。基于此,4个目标数据的排序为目标数据1、目标数据2、目标数据5、目标数据7。
在另一些实施例中,磁盘阵列卡将多个目标数据全部写入缓存后,再对多个目标数据进行排序,确定多个目标数据中每个目标数据的排序位置。
需要说明的,本申请实施例对何时确定目标数据的排序位置不做限制。
对于如何对多个目标数据进行排序,包括多种实现方式。以下,通过两种实现方式进行示例性说明。
第一种实现方式中,以每个目标数据对应的写入地址为第一维度、每个目标数据对应的时间戳为第二维度,对多个目标数据进行排序。该种实现方式将在图6所示实施例中进行详细说明,此处不再细述。
第二种实现方式中,根据每个目标数据对应的写入地址的大小,对多个目标数据进行排序。该种实现方式将在图8所示实施例中进行详细说明,此处不再细述。
S406:磁盘阵列卡依据目标排序结果,将缓存中的多个目标数据写入SMR盘。
在一些实施例中,多个目标数据包括N个目标数据,N为大于1的正整数。目标排序结果的排序为:目标数据1、……、目标数据N。基于此,磁盘阵列卡依照目标数据1、……、目标数据N的顺序向SMR盘写入数据。
可选地,S406包括多种实现方式。以下,通过方式1至方式3进行示例性说明。
方式1:S406包括:按照预设周期,依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。
可选地,预设周期的时长为动态值。预设周期的时长可以根据缓存的存储空间总容量动态确定。例如,缓存的总容量越大,则预设周期的时长越长。反之,预设周期的时长越短。示例性的,预设周期的时长可以为100毫秒、200毫秒或300毫秒等。
需要说明的,本申请实施例对预设周期的具体时长不做限制。
在一些实施例中,以预设周期为A毫秒为例,对方式1进行说明。在第一个周期,磁盘阵列卡依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。经过A毫秒后,进入第二周期,磁盘阵列卡再次依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。
方式2:S406包括:若缓存的剩余存储空间小于或等于预设阈值,依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。
可选地,预设阈值为动态值。预设阈值可以根据缓存的存储空间总容量动态确定。例如,预设阈值可以为缓存的存储容量的20%、30%等。
需要说明的,本申请实施例对预设阈值的具体数值不做限制。
在一些实施例中,磁盘阵列卡按照预设执行周期检测缓存的剩余存储空间,并判断剩余存储空间是否小于或等于预设阈值。若判断结果为时,则依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。若判断结果为否,则结束。
方式3:S406包括:若多个目标数据的数量大于或等于预设数量阈值,依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。
可选地,预设数量阈值为动态值。预设数量阈值可以根据缓存的存储空间总容量动态确定。例如,缓存的总容量越大,则预设数量阈值越大。反之,预设数量阈值越小。
需要说明的,本申请实施例对预设数量阈值的具体数值不做限制。
在一些实施例中,磁盘阵列卡按照预设周期检测缓存中的多个目标数据的数量,并判断该数量是否大于或等于预设数量阈值。若判断结果为是,则依据目标排序结果,将缓存中的多个目标数据依序写入SMR盘。若判断结果为否,则结束。
以上,为本申请实施例的第一部分。以下,结合图5,介绍本申请实施例的第二部分。
图5是根据一示例性实施例示出的一种数据写入方法的流程图。示例性的,该方法包括如下所示的S501-S506。
S501-S503:参见上述S401-S403。
S504:磁盘阵列卡调用磁盘阵列卡的驱动程序,将写指令中包含的目标数据写入内存中。
在一些实施例中,服务器启动时,CPU确定内存的部分空间用于存储目标数据,并将部分空间的地址发送给磁盘阵列卡。之后,在需要将目标数据写入内存时,磁盘阵列卡调用驱动程序,由驱动程序将写指令中包含的目标数据写入内存中。
在另一些实施例中,在需要将目标数据写入内存时,磁盘阵列卡调用驱动程序,由驱动程序向CPU发送目标指令,目标指示用于指示将写指令包括的目标数据写入内存。
需要说明的,目标数据写入内存的原理与目标数据写入缓存的原理相同,因此,关于目标数据写入内存的相关说明的,可以参考上述S404,此处不再细述。
S505:磁盘阵列卡调用磁盘阵列卡的驱动程序,以按照每个目标数据对应的写入地址,对多个目标数据进行排序,得到目标排序结果。
在一些实施例中,在需要对多个目标数据进行排序时,磁盘阵列调用驱动程序,由驱动程序向内存发生排序指令,指示多个目标数据依据排序指令进行排序。
在另一些实施例中,在需要对多个目标数据进行排序时,磁盘阵列调用驱动程序,由驱动程序向CPU发生请求,该请求用于请求对内存中的多个目标数据进行排序。之后,由CPU向内存发生排序值,指示多个目标数据依据排序指令进行排序。
S506:磁盘阵列卡依据目标排序结果,将内存中的多个目标数据写入SMR盘。
需要说明的,S506的实现原理和S406的实现原理相同,因此,S506的实现过程和相关说明,可以参考上述S406,此处不再细述。
以上,为本申请实施例第二部分。以下,结合图6至图7介绍本申请实施例的第三部分。
需要说明的,以下,以图4所示的实施例为例,对多个目标数据以写入地址为第一维度、时间戳为第二维度进行排序的实现过程进行示例性介绍。
可以理解的,下述图6所示实施例中的S601-S606,同样适用于图5所示的实施例,也即,适用于第二部分中的易失性存储介质为内存的方案,二者原理相同,此处不在细述。
图6是根据一示例性实施例示出的一种数据写入方法的流程图。示例性的,该方法包括如下所示的S601-S606。
S601:磁盘阵列卡接收多个写指令,每个写指令包括目标数据、对应的写入地址以及时间戳。
其中,目标数据对应的时间戳用于指示包括对应目标数据的写指令的发送时刻,或磁盘阵列卡接收到写指令的时刻等。
S602-S604:参见上述S402-S404。
S605:磁盘阵列卡以每个目标数据对应的写入地址为第一维度、每个目标数据对应的时间戳为第二维度,对多个目标数据进行排序,得到目标排序结果。
对于如何执行S605,包括多种实现方式,以下通过方式a至方式b进行示例性说明。
在方式a中,以写入地址为第一维度(如第一维度为Y轴),时间戳为第二维度(如第二维度为X轴),分别对多个目标数据进行两个维度的排序,得到二维数组形式的目标排序结果。
例如,依次接收到的多个写指令包括四个写指令,分别为写指令1、写指令2、写指令3以及写指令4。其中,写指令1包含目标数据1、写入地址D4以及时间戳T1,写指令2包含目标数据2、写入地址D2以及时间戳T2,写指令3包含目标数据3、写入地址D1以及时间戳T3,写指令4包含目标数据4、写入地址D3以及时间戳T4。
目标排序结果如图7所示,其中,目标数据1(如图7中的A点)的坐标为(写入地址D4,时间戳T1),目标数据2(如图7中的B点)的坐标为(写入地址D2,时间戳T2),目标数据3(如图7中的C点)的坐标为(写入地址D1,时间戳T3),目标数据4(如图7中的D点)的坐标为(写入地址D3,时间戳T4)。
需要说明的,若多个写指令所包括的多个写入地址中不存在相同的写入地址,则可以基于方式a,对多个目标数据进行排序。
在方式b中,以写入地址为第一维度对多个目标数据进行排序,得到初始排序结果。之后,针对初始排序结果中的写入地址相同的至少两个目标数据,以至少两个目标数据所对应的时间戳为第二维度,对写入地址相同的至少两个目标数据进行排序,得到目标排序结果。
例如,依次接收到的多个写指令包括四个写指令,分别为写指令1、写指令2、写指令3以及写指令4。其中,写指令1包含目标数据1、写入地址D3以及时间戳T1,写指令2包含目标数据2、写入地址D2以及时间戳T2,写指令3包含目标数据3、写入地址D1以及时间戳T3,写指令4包含目标数据4、写入地址D3以及时间戳T4。
若初始排序结果为目标数据3(写入地址D1,时间戳T3)、目标数据2(写入地址D2,时间戳T2)、目标数据4(写入地址D3,时间戳T4)、目标数据1(写入地址D3,时间戳T1)。由于目标数据4和目标数据3的写入地址相同(均为D3),针对目标数据4和目标数据1,以目标数据4和目标数据1所对应的时间戳(T4和T1)为第二维度,对目标数据4和目标数据1,基于此,得到的目标排序结果为目标数据3(写入地址D1,时间戳T3)、目标数据2(写入地址D2,时间戳T2)、目标数据1(写入地址D3,时间戳T1)、目标数据4(写入地址D3,时间戳T4)。
需要说明的,若多个写指令所包括的多个写入地址中存在相同的写入地址,则可以基于方式b,对多个目标数据进行排序。
通过对逻辑区块地址相同的目标数据4和目标数据1,以时间戳为第二维度维度进行排序,可以避免晚收到的目标数据4先写入该写入地址D3,而早收到的目标数据1后写入该写入地址D3,这样,就可以避免该相同写入地址出现旧数据覆盖新数据的问题。
例如,目标数据4和目标数据1在初始排序结果中的顺序是目标数据4、目标数据1,如果按照这个顺序写入SMR盘,则目标数据4先写入该写入地址D3,之后,目标数据1写入该写入地址D3,则目标数据4被覆盖。
需要说明的,若多个写入地址按照从小到大的顺序进行排序,则至少两个目标数据对应的时间戳按照从早到晚的顺序进行排序。反之,若多个写入地址按照从大到小的顺序进行排序,则至少两个目标数据对应的时间戳按照从晚到早的顺序进行排序。
S606:磁盘阵列卡依据目标排序结果,将缓存中的多个目标数据写入SMR盘。
在一些实施例中,在将多个目标数据写入SMR盘时,多个目标数据依照写入地址的顺序依次写入SMR盘,例如,可以是按照写入地址从小到大的顺序进行写入。对于写入地址相同的两个目标数据,按照目标数据对应的时间戳顺序依次写入SMR盘,例如,可以是按照时间戳从早到晚的顺序进行写入。
在另一些实施例中,在将多个目标数据写入SMR盘时,多个目标数据依照时间戳的顺序依次写入SMR盘。例如,可以是按照时间戳从早到晚的顺序进行写入,则写入顺序可以依次是目标数据1、目标数据2、目标数据3、目标数据。
以上,为本申请实施例的第三部分。以下,结合图8介绍本申请实施例的第四部分。
需要说明的,以下,以图4所示的实施例为例,对多个目标数据以写入地址的大小进行排序的实现过程进行示例性介绍。
可以理解的,下述图8所示实施例中的S801-S806,同样适用于图5所示的实施例,也即,适用于第二部分中的易失性存储介质为内存的方案,二者原理相同,此处不在细述。
图8是根据一示例性实施例示出的一种数据写入方法的流程图。示例性的,该方法包括如下所示的S801-S806。
S801-S804:参见上述S401-S404。
S805:磁盘阵列卡根据每个目标数据对应的写入地址的大小,对多个目标数据进行排序,得到目标排序结果。
在一些实施例中,多个目标数据包括目标数据1、……、目标数据N,对N个目标数据所对应的N个写入地址按照从小到大的顺序进行排序,得到目标排序结果1。目标排序结果1的排序为目标数据1、……、目标数据N。
在另一些实施例中,多个目标数据包括目标数据1、……、目标数据N,对N个目标数据所对应的N个写入地址按照从大小的顺序进行排序,得到目标排序结果2。目标排序结果2的排序为目标数据N、……、目标数据1。
S806:磁盘阵列卡依据目标排序结果,将缓存中的多个目标数据写入SMR盘。
在一些实施例中,在将多个目标数据写入SMR盘时,多个目标数据依照写入地址从小到大的顺序依次写入SMR盘,对于写入地址相同的两个目标数据,按照目标数据对应的时间戳从早到晚的顺序依次写入SMR盘。
在一些实施例中,在排序结果为目标排序结果1的情况下,磁盘阵列卡按照从头到尾的顺序依次将目标数据1、……、目标数据N分别写入SMR盘。
在另一些实施例中,在排序结果为目标排序结果2的情况下,磁盘阵列卡按照从尾到头的顺序依次将目标数据1、……、目标数据N分别写入SMR盘。上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,数据写入装置包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法,示例性的对数据写入装置进行功能模块的划分,例如,数据写入装置可以包括对应各个功能划分的各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图9示出了上述实施例中所涉及的数据写入装置(记为数据写入装置900)的一种可能的结构示意图,该数据写入装置可以是磁盘阵列卡中的固件程序。该数据写入装置900包括接收单元901、处理单元902和写入单元903。接收单元901,用于接收多个写指令,每个写指令包括目标数据和对应的写入地址。例如,图4所示的S401,图5所示的S501,图6所示的S601以及图8所示的S801。处理单元902,用于若所述写指令的写入对象为SMR盘,则将所述写指令中包含的目标数据写入所述易失性存储介质中,并按照每个所述目标数据对应的写入地址,对多个所述目标数据进行排序,得到目标排序结果。例如,图4所示的S404-S405,图5所示的S504-S505,图6所示的S604-S605以及图8所示的S804-S805。写入单元903还用于,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。例如,图4所示的S406,图5所示的S506,图6所示的S606以及图8所示的S806。
可选地,处理单元902具体用于:若所述易失性存储介质为缓存,由磁盘阵列卡将所述写指令中包含的目标数据写入所述缓存中。
可选地,处理单元902具体用于:若所述易失性存储介质为内存,由磁盘阵列卡调用所述磁盘阵列卡的驱动程序,以将所述写指令中包含的目标数据写入所述内存。
可选地,处理单元902具体用于:根据每个所述目标数据对应的写入地址的大小,对多个目标数据进行排序,得到目标排序结果。
可选地,每个写指令还包括目标数据对应的时间戳;处理单元902具体用于:以每个目标数据对应的写入地址为第一维度、每个目标数据对应的时间戳为第二维度,对多个目标数据进行排序,得到目标排序结果。
可选地,写入单元903具体用于:按照预设周期,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
可选地,写入单元903具体用于:若易失性存储介质的剩余存储空间小于或等于预设阈值,依据目标排序结果,将易失性存储介质中的多个目标数据写入SMR盘。
可选地,多个写指令包括第一写指令,第一写指令所携带的是多个目标数据中的第一目标数据;接收单元901还用于:若第一目标数据成功写入易失性存储介质,返回第一目标数据的写入结果。
可选地,处理单元902还用于:若检测到易失性存储介质掉电,启动储电电容为易失性存储介质供电;将易失性存储介质中存储的多个目标数据,写入闪存中。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种数据写入装置900的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,处理器与存储器连接,存储器存储有计算机执行指令,处理器执行该计算机执行指令时实现上述实施例中的数据处理方法。本申请实施例对计算机设备的具体形式不作任何限制。例如,计算机设备具体可以是终端装置,也可以是网络设备。其中,终端装置可以被称为:终端、用户设备(user equipment,UE)、终端设备、接入终端、用户单元、用户站、移动站、远方站、远程终端、移动设备、用户终端、无线通信设备、用户代理或用户装置等。终端装置具体可以是手机、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等。网络设备具体可以是服务器等。其中,服务器可以是一个物理或逻辑服务器,也可以是有两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现服务器的各项功能。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上文提供的任一种计算机设备所执行的方法。
关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述计算机设备的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如SSD)等。
应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种数据写入方法,其特征在于,所述方法包括:
接收多个写指令,每个所述写指令包括目标数据和对应的写入地址;
若所述写指令的写入对象为SMR盘,则将所述写指令中包含的目标数据写入易失性存储介质中,并按照每个所述目标数据对应的写入地址,对多个所述目标数据进行排序,得到目标排序结果;
依据所述目标排序结果,将所述易失性存储介质中的所述多个目标数据写入所述SMR盘。
2.根据权利要求1所述的方法,其特征在于,所述将所述写指令中包含的目标数据写入所述易失性存储介质中,包括:
若所述易失性存储介质为缓存,由磁盘阵列卡将所述写指令中包含的目标数据写入所述缓存中。
3.根据权利要求1所述的方法,其特征在于,所述将所述写指令中包含的目标数据写入所述易失性存储介质中,包括:
若所述易失性存储介质为内存,由磁盘阵列卡调用所述磁盘阵列卡的驱动程序,以将所述写指令中包含的目标数据写入所述内存。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述按照每个所述目标数据对应的写入地址,对多个所述目标数据进行排序,得到目标排序结果,包括:
根据每个所述目标数据对应的写入地址的大小,对多个所述目标数据进行排序,得到所述目标排序结果。
5.根据权利要求1-3中任一项所述的方法,其特征在于,每个所述写指令还包括目标数据对应的时间戳;所述按照每个所述目标数据对应的写入地址,对多个所述目标数据进行排序,得到目标排序结果,包括:
以每个所述目标数据对应的写入地址为第一维度、每个所述目标数据对应的时间戳为第二维度,对所述多个目标数据进行排序,得到所述目标排序结果。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述依据所述目标排序结果,将所述易失性存储介质中的所述多个目标数据写入所述SMR盘,包括:
按照预设周期,依据所述目标排序结果,将所述易失性存储介质中的所述多个目标数据依序写入所述SMR盘。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述依据所述目标排序结果,将所述易失性存储介质中的所述多个目标数据写入所述SMR盘,包括:
若所述易失性存储介质的剩余存储空间小于或等于预设阈值,依据所述目标排序结果,将所述易失性存储介质中的所述多个目标数据写入所述SMR盘。
8.根据权利要求1-6中任一项所述的方法,其特征在于,所述多个写指令包括第一写指令,所述第一写指令所携带的是所述多个目标数据中的第一目标数据;所述方法还包括:
若所述第一目标数据写入所述易失性存储介质,返回所述第一目标数据的写入结果。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
若检测到所述易失性存储介质掉电,启动储电电容为所述易失性存储介质供电;
将所述易失性存储介质中存储的所述多个目标数据,写入闪存中。
10.一种存储系统,其特征在于,
所述存储系统包括:SMR盘、磁盘阵列卡和易失性存储介质;所述易失性存储介质用于存储所述磁盘阵列卡接收到的多个写指令所携带的多个目标数据;
其中,所述磁盘阵列卡用于执行如权利要求1-9中任一项所述的方法,以将所述易失性存储介质中的多个目标数据写入所述SMR盘。
11.根据权利要求10所述的系统,其特征在于,
所述存储系统还包括储电电容和闪存;所述储电电容用于在所述易失性存储介质掉电时,为所述易失性存储介质供电;所述闪存用于在所述易失性存储介质掉电时,存储所述易失性存储介质中所存储的所述多个目标数据。
12.一种服务器,其特征在于,包括:处理器和如权利要求10或11所述的存储系统,所述处理器与所述存储系统连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211274403.6A CN115617268A (zh) | 2022-10-18 | 2022-10-18 | 数据写入方法、存储系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211274403.6A CN115617268A (zh) | 2022-10-18 | 2022-10-18 | 数据写入方法、存储系统及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617268A true CN115617268A (zh) | 2023-01-17 |
Family
ID=84863490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211274403.6A Pending CN115617268A (zh) | 2022-10-18 | 2022-10-18 | 数据写入方法、存储系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617268A (zh) |
-
2022
- 2022-10-18 CN CN202211274403.6A patent/CN115617268A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8639898B2 (en) | Storage apparatus and data copy method | |
US8719520B1 (en) | System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity | |
CN103970688B (zh) | 缩短数据存储系统中写入等待时间的方法和系统 | |
US7730257B2 (en) | Method and computer program product to increase I/O write performance in a redundant array | |
US7882320B2 (en) | Multi-processor flash memory storage device and management system | |
JP5918359B2 (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
US20080215828A1 (en) | System for Reading and Writing Data | |
US8433888B2 (en) | Network boot system | |
US20100049905A1 (en) | Flash memory-mounted storage apparatus | |
US7949820B2 (en) | Method for managing memory access and task distribution on a multi-processor storage device | |
KR102335838B1 (ko) | 에너지-백 메모리에 대한 영구 기록 데이터 | |
JP2014515533A (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
US7085907B2 (en) | Dynamic reconfiguration of memory in a multi-cluster storage control unit | |
US20070180301A1 (en) | Logical partitioning in redundant systems | |
EP4411529A1 (en) | Data writing method and related device | |
CN107729536A (zh) | 一种数据存储方法和装置 | |
US20240104014A1 (en) | Data management method, and storage space management method and apparatus | |
CN114527936B (zh) | 一种服务器高性能磁盘分布式存储方法及装置 | |
CN115617268A (zh) | 数据写入方法、存储系统及服务器 | |
US20200057576A1 (en) | Method and system for input/output processing for write through to enable hardware acceleration | |
CN110609660A (zh) | Ssd阵列的主机端映射方法、装置、计算机设备及存储介质 | |
CN116483263A (zh) | 一种存储系统的存储设备、存储系统 | |
WO2018055686A1 (ja) | 情報処理システム | |
CN115687170A (zh) | 一种数据处理方法、存储设备以及系统 | |
CN114063892B (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 |