CN110471615B - 一种数据写入方法及装置 - Google Patents
一种数据写入方法及装置 Download PDFInfo
- Publication number
- CN110471615B CN110471615B CN201810441311.XA CN201810441311A CN110471615B CN 110471615 B CN110471615 B CN 110471615B CN 201810441311 A CN201810441311 A CN 201810441311A CN 110471615 B CN110471615 B CN 110471615B
- Authority
- CN
- China
- Prior art keywords
- stripe
- data
- physical blocks
- written
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/0625—Power saving in 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据写入方法及装置,该方法包括:将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;在条带管理队列所管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带里的历史数据预读到所述缓存中;在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据写入方法及装置。
背景技术
近年来随着存储行业的不断发展,存储系统中逐渐采用SSD(Solid StateDrivers,固态硬盘)代替传统的HDD(Hard Disk Drive,硬盘驱动器),甚至出现了全部采用SSD的存储系统。SSD在性能、能耗、可靠性等方面相较于HDD有着明显的优势,但是其自身的缺点也十分突出,例如SSD存在写入惩罚、寿命较短等。
为了充分利用SSD的性能优势,同时为了避免写入惩罚,均衡SSD的损耗,存储系统一般结合RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)技术,采用I/O重定向写入技术,将需要写入精简LUN的数据,构造成RAID满条带写入为精简LUN所分配的RAID空间。
现有技术方案中由于采用了I/O重定向写入技术,有可能导致RAID条带中已分配的物理块被释放,导致RAID条带中出现“空洞”的情况,如图1所示。这些被释放的物理块由于无法满足RAID满条带写入的要求,不能直接使用,需要不断的回收这些被释放的物理块,以保证有足够的空闲RAID条带可用。而在进行空间回收的过程中,需要将存在“空洞”的条带中的数据拷贝至空闲RAID条带中,如图2所示。由于需要不断地进行空间回收,需要大量拷贝数据,随着写入数据量不断增大,空间回收需求量增大,数据拷贝过程中对存储系统性能的损耗会明显增大。
发明内容
有鉴于此,本申请提供一种数据写入方法及装置。
具体地,本申请是通过如下技术方案实现的:
一种数据写入方法,所述方法包括:
将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;
在条带管理队列所管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带里的历史数据预读到所述缓存中;
在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
一种数据写入装置,所述装置包括:
请求拆分模块,用于将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;
分配模块,用于在条带管理队列所管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带里的历史数据预读到所述缓存中;
数据写入模块,用于在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
通过本申请的技术方案,当接收到服务器下发的写数据请求时,将写数据请求拆分成写数据子请求,将写数据子请求中携带的待写入数据写入缓存中,为待写入数据分配空闲物理块,将历史数据与待写入数据凑成RAID满条带写入为待写入数据分配的空闲物理块以及为历史数据已分配的物理块中,避免了空间回收的处理流程,无需再大量拷贝数据,由此降低了存储系统的性能损耗。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一示例性实施例示出的一种RAID条带出现“空洞”的示意图;
图2是本申请一示例性实施例示出的一种现有技术中空间回收过程中数据拷贝的示意图;
图3是本申请一示例性实施例示出的条带的条带空闲率的示意图;
图4是本申请一示例性实施例示出的一种数据写入方法的实施流程图;
图5是本申请一示例性实施例示出的一种数据写入装置的结构示意图。
具体实施方式
当前由于采用了I/O重定向写入技术,有可能导致RAID条带中已分配的物理块被释放,即如图1所示,当逻辑地址LBA2再次发生数据写入时,因“LBA2-P3”的映射关系已存在,这时会将数据写入P5,更新映射关系为“LBA2-P5”,并释放P3,由此导致P3所在的RAID条带出现“空洞”。这些被释放的物理块由于无法满足RAID满条带写入的要求,并不能直接被使用,需要不断的回收这些被释放的物理块,所谓RAID满条带写入,以RAID5为例,由于存在校验数据,每个条带中实际只有4块物理块进行数据存储,对于物理块1、物理块2、物理块3、物理块4需要同时写入完整的数据块。
在进行物理块回收的过程中,需要将存在“空洞”的条带中的数据拷贝至空闲RAID条带中,如图2所示,将存在映射表记录的物理块P1中的数据拷贝至P17,物理块P2的数据拷贝至P18,物理块P4的数据拷贝至P19,物理块P5的数据拷贝至P20。拷贝完成后,释放物理块P1、P2、P4、P5,并更新已存在的映射表记录。随着写入数据量不断增大,需要不断的进行空间回收,相应的需要拷贝的数据量也不断增大,存储系统的性能损耗会明显增大。
针对上述问题,本申请实施例提供的技术方案如下:
在数据写入的过程中,将服务器下发的写数据请求拆分成一个或多个写数据子请求,写数据子请求上携带的待写入数据写入缓存中;在条带管理队列所管理的存在空闲物理块的条带里,为上述写数据子请求分配空闲物理块,标记该物理块已被使用,其中存在空闲物理块的条带里的历史数据预读到缓存中;在缓存中将待写入数据与历史数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
为了方便描述本申请实施例提供的技术方案,现提出“条带空闲率”概念,记作SUR(Stripe Unoccupied Rate),在本申请实施例中SUR为RAID空间中单个条带的属性,以整数方式记录。SUR等于0,表示条带中物理块已被分配完毕,SUR最大等于条带中物理块个数,表示条带中物理块未被分配。例如以5块磁盘构成的RAID5为例,因为存在校验数据,所以单个条带中的物理块个数为4,SUR的取值可能为0、1、2、3、4,如图3所示,阴影部分表示已分配物理块,条带1被完全分配,SUR=0,条带3由于重定向写入而释放了条带内第一个数据块,SUR=1,而条带5、条带6未被分配,SUR=4。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图4所示,为本申请提供的一种数据写入方法的实施流程图,该方法可以包括以下步骤:
S401,将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;
对于服务器下发的写数据请求,将其拆分成一个或多个写数据子请求,进行拆分是为了将写数据请求中携带的不定长数据转换为定长数据处理,如此一来每个写数据子请求中携带的数据大小基本一致,逐个处理写数据子请求,写数据子请求中携带的数据写入缓存中。例如,服务器下发的写数据请求中携带100KB大小的数据,将写数据请求拆分成多个写数据子请求,以使每个写数据子请求中携带的数据基本一致。
本申请实施例中,提供一种拆分写数据请求的拆分依据,具体的,按照RAID条带深度,将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求。所谓RAID条带深度指的是RAID条带中物理块的大小,RAID条带的物理块的大小一般在2KB到512KB之间。例如RAID条带中物理块的大小为16KB,以16KB为标准,将服务器下发的写数据请求拆分成一个或多个写数据子请求,每个写数据子请求中携带的数据大小不超过16KB,假设写数据请求中携带的数据大小为96KB,则正好拆分成6个写数据子请求,假设写数据请求中携带的数据大小为100KB,则前6个写数据子请求中携带的数据大小均为16KB,第7个写数据子请求中携带的数据大小为4KB。
S402,在条带管理队列所管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带里的历史数据预读到所述缓存中;
在为写数据子请求分配物理块之前,选取目标条带管理队列,在目标管理队列中管理的存在空闲物理块的条带里,为写数据子请求分配空闲物理块,标记该空闲物理块已被使用。
具体的确定目标条带管理队列的流程为:
确定条带管理队列的个数;获取每个条带管理队列中条带的条带空闲率;根据所获取的条带空闲率,选取其中一个条带管理队列作为目标条带管理队列,其中优先选取条带空闲率最大的条带管理队列作为目标条带管理队列。
本申请实施例中,设置多个条带管理队列,具体所设置的条带管理队列的个数与RAID条带宽度有关,根据RAID条带宽度可以确定条带管理队列的个数。例如当前RAID条带宽度为5,即RAID5,设置5个条带管理队列,分别记为SQ、FQ、SUR1Q、SUR2Q、SUR3Q。
对于每个条带,逻辑上只能归入唯一的一个条带管理队列,对于每个条带管理队列逻辑上只能管理条带空闲率一致的条带,因此每个条带管理队列的条带空闲率是保持不变的。例如对于上述所说的SUR3Q的条带管理队列,其管理的条带的条带空闲率为3,SUR2Q管理的条带的条带空闲率为2,SUR1Q管理的条带的条带空闲率为1,FQ管理的条带的条带空闲率为0,特殊的SQ管理的大部分条带的条带空闲率为4,但是SQ中也包含部分条带空闲率介于0至4的条带,SQ中包含的部分条带空闲率介于0至4的条带,可能是从其他条带管理队列中补充过来的。
在获取每个条带管理队列中条带的条带空闲率之后,选取条带空闲率最大的条带管理队列作为目标条带管理队列。例如上述所说的条带管理队列SQ即为目标条带管理队列。
在确定了目标条带管理队列之后,判断目标条带管理队列中管理的条带里是否存在空闲条带,所谓空闲条带即SUR=4的条带,例如判断上述所说的SQ中是否存在空闲条带。
若目标条带管理队列中管理的条带里存在空闲条带,则优先从空闲条带中分配物理块,按现有技术方案中数据写入的方式,从空闲条带中为写数据子请求分配物理块即可,在CACHE空间中,将写数据子请求中携带的数据拼接成RAID满条带写入为其分配的物理块。例如,以RAID5为例,SQ中存在空闲条带,从空闲条带中为写数据子请求分配物理块,在缓存中,以4个写数据子请求对应的4块数据块拼接成RAID满条带,写入该空闲条带。
若目标条带管理队列中管理的条带里不存在空闲条带,在目标条带管理队列中管理的存在空闲物理块的条带里,为写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,该存在空闲物理块的条带里的历史数据预读到缓存中。例如上述所说的目标条带管理队列SQ中不存在空闲条带,但是存在部分条带空闲率介于0至4的条带,优选的从SUR=3的条带中为写数据子请求分配物理块,其中SUR=3的条带里的历史数据预读到缓存中。
S403,在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
当存在空闲物理块的条带中的物理块被分配之后,在缓存中自发将写数据子请求携带的待写入数据与历史数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。例如对于上述所说的SQ中SUR=3的条带,存在3块空闲物理块,这3块空闲物理块被分配之后,物理块1对应的写数据子请求为写数据子请求1,物理块2对应的写数据子请求为写数据子请求2,物理块3对应的写数据子请求为写数据子请求3,物理块4中的历史数据预读到缓存中,写数据子请求1、写数据子请求2、写数据子请求3对应的数据分别为数据块1、数据块2、数据块3,在缓存中,将数据块1、数据块2、数据块3及历史数据拼成RAID满条带写入该SUR=3的条带里。
在上述技术方案的基础之上,本申请实施例的技术方案还可以包括:
随着服务器下发的写数据请求不断增多,目标条带管理队列中空闲物理块会越来越少,但其它条带管理队列中尚有可分配的空闲物理块,此时需要将新的条带补充到目标条带管理队列中,为此本申请实施例提供两种条带补充机制,值得注意的是,本申请仅仅只是对条带补充机制进行示例性说明。
其中一种条带补充机制为:计算所述目标条带管理队列中空闲物理块的分配速度;
根据所计算的分配速度,估算所述目标条带管理队列中空闲物理块可维持分配的时间;
监测所估算的时间是否不大于预设的第一阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
作为一个例子,计算SQ中每分钟空闲物理块的分配速度,根据所计算的分配速度,可以估算SQ中空闲物理块可维持的时间,监测所估算的可维持时间是否不大于1小时,若是,优先向SUR3Q中发送条带补充请求,从SUR3Q中挑选条带补充道SQ中,若SUR3Q中无条带,则优先从SUR2Q中挑选条带,以此类推,直到SQ中空闲物理块达到要求,其中条带在进出条带管理队列时遵循先进先出的规则,所挑选的条带中已用物理块存储的历史数据读取到缓存中。
另外一种条带补充机制为:统计所述目标条带管理队列中所有空闲物理块的个数;
监测所统计的个数是否不大于预设的第二阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
作为一个例子,统计SQ中所有空闲物理块的个数,监测所有空闲物理块的个数是否不大于10000,若是,则证明当前的空闲物理块需要进行补充,优先向SUR3Q中发送条带补充请求,从SUR3Q中挑选条带补充道SQ中,若SUR3Q中无条带,则优先从SUR2Q中挑选条带,以此类推,直到SQ中空闲物理块达到要求。
由以上可知,与现有技术方法相比,将历史数据与待写入数据凑成RAID满条带写入为待写入数据分配的空闲物理块以及为历史数据已分配的物理块中,避免了空间回收的处理流程,无需再大量拷贝数据,由此降低了存储系统的性能损耗。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
与前述数据写入方法的实施例相对应,本申请还提供了数据写入装置的实施例,如图5所示,包括请求拆分模块510、分配模块520、数据写入模块530。
请求拆分模块510,用于将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;
分配模块520,用于在条带管理队列所管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带里的历史数据预读到所述缓存中;
数据写入模块530,用于在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
在本申请的一种具体实施方式中,所述请求拆分模块510具体用于:
按照RAID条带深度,将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中。
在本申请的一种具体实施方式中,所述分配模块520具体用于:
确定条带管理队列的个数;
获取每个条带管理队列中条带的条带空闲率;
根据所获取的条带空闲率,选取其中一个条带管理队列作为目标条带管理队列;
判断所述目标条带管理队列中管理的条带里是否存在空闲条带;
若否,在所述目标条带管理队列中管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带中的历史数据预读到所述缓存中。
在本申请的一种具体实施方式中,所述装置还包括:
第一补充模块540,用于计算所述目标条带管理队列中空闲物理块的分配速度;
根据所计算的分配速度,估算所述目标条带管理队列中空闲物理块可维持分配的时间;
监测所估算的时间是否不大于预设的第一阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
在本申请的一种具体实施方式中,所述装置还包括:
第二补充模块,用于统计所述目标条带管理队列中所有空闲物理块的个数;
监测所统计的个数是否不大于预设的第二阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
由以上可知,与现有技术方法相比,将历史数据与待写入数据凑成RAID满条带写入为待写入数据分配的空闲物理块以及为历史数据已分配的物理块中,避免了空间回收的处理流程,无需再大量拷贝数据,由此降低了存储系统的性能损耗。
上述系统中各个单元的作用实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可以在由计算机执行的计算值可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种数据写入方法,其特征在于,所述方法包括:
将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;
确定条带管理队列的个数;并获取每个条带管理队列中条带的条带空闲率SUR;所述SUR为RAID空间中单个条带的属性,以整数方式记录,当所述SUR等于0,则表示条带中物理块已被分配完毕,所述SUR最大等于条带中物理块个数时,则表示条带中物理块未被分配;其中,所述RAID是由SSD构成的;
根据所获取的SUR,选取其中一个条带管理队列作为目标条带管理队列;
判断所述目标条带管理队列中管理的条带里是否存在空闲条带;若否,在所述目标条带管理队列中管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带中的历史数据预读到所述缓存;
在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
2.根据权利要求1所述的方法,其特征在于,所述将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中,包括:
按照RAID条带深度,将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
计算所述目标条带管理队列中空闲物理块的分配速度;
根据所计算的分配速度,估算所述目标条带管理队列中空闲物理块可维持分配的时间;
监测所估算的时间是否不大于预设的第一阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计所述目标条带管理队列中所有空闲物理块的个数;
监测所统计的个数是否不大于预设的第二阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
5.一种数据写入装置,其特征在于,所述装置包括:
请求拆分模块,用于将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中;
分配模块,用于确定条带管理队列的个数;并获取每个条带管理队列中条带的条带空闲率SUR;所述SUR为RAID空间中单个条带的属性,以整数方式记录,当所述SUR等于0,则表示条带中物理块已被分配完毕,所述SUR最大等于条带中物理块个数时,则表示条带中物理块未被分配;根据所获取的SUR,选取其中一个条带管理队列作为目标条带管理队列;判断所述目标条带管理队列中管理的条带里是否存在空闲条带;若否,在所述目标条带管理队列中管理的存在空闲物理块的条带里,为所述写数据子请求分配空闲物理块,标记所述空闲物理块已被使用,其中所述存在空闲物理块的条带中的历史数据预读到所述缓存;其中,所述RAID是由SSD构成的;
数据写入模块,用于在所述缓存中将所述历史数据与所述待写入数据拼接成RAID满条带,按照预设的缓存刷新策略刷新至为所述写数据子请求分配的空闲物理块以及为历史数据已分配的物理块中。
6.根据权利要求5所述的装置,其特征在于,所述请求拆分模块具体用于:
按照RAID条带深度,将接收的服务器下发的写数据请求拆分成一个或多个写数据子请求,所述写数据子请求中携带待写入数据,所述待写入数据写入缓存中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一补充模块,用于计算所述目标条带管理队列中空闲物理块的分配速度;
根据所计算的分配速度,估算所述目标条带管理队列中空闲物理块可维持分配的时间;
监测所估算的时间是否不大于预设的第一阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第二补充模块,用于统计所述目标条带管理队列中所有空闲物理块的个数;
监测所统计的个数是否不大于预设的第二阈值;
若是,向其它条带管理队列发送条带补充请求,用于补充目标条带管理队列中空闲物理块的个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810441311.XA CN110471615B (zh) | 2018-05-10 | 2018-05-10 | 一种数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810441311.XA CN110471615B (zh) | 2018-05-10 | 2018-05-10 | 一种数据写入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110471615A CN110471615A (zh) | 2019-11-19 |
CN110471615B true CN110471615B (zh) | 2022-08-02 |
Family
ID=68503867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810441311.XA Active CN110471615B (zh) | 2018-05-10 | 2018-05-10 | 一种数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110471615B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293543A (zh) * | 2016-08-25 | 2017-01-04 | 中国科学院计算技术研究所 | 一种基于捎带回收的瓦记录raid写顺序化方法及装置 |
US9720596B1 (en) * | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
CN108008909A (zh) * | 2016-10-31 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及系统 |
-
2018
- 2018-05-10 CN CN201810441311.XA patent/CN110471615B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720596B1 (en) * | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
CN106293543A (zh) * | 2016-08-25 | 2017-01-04 | 中国科学院计算技术研究所 | 一种基于捎带回收的瓦记录raid写顺序化方法及装置 |
CN108008909A (zh) * | 2016-10-31 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110471615A (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569130B2 (en) | Storage system having a plurality of flash packages | |
US8601035B2 (en) | Data storage space recovery system and method | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
US20160306557A1 (en) | Storage apparatus provided with a plurality of nonvolatile semiconductor storage media and storage control method | |
US8046537B2 (en) | Virtualization engine and method, system, and computer program product for managing the storage of data | |
US9135262B2 (en) | Systems and methods for parallel batch processing of write transactions | |
US10168945B2 (en) | Storage apparatus and storage system | |
US10073774B2 (en) | Managing input/output operations for shingled magnetic recording in a storage system | |
US20150143021A1 (en) | Equalizing wear on storage devices through file system controls | |
US11474919B2 (en) | Method for managing multiple disks, electronic device and computer program product | |
US20210326207A1 (en) | Stripe reassembling method in storage system and stripe server | |
WO2023065654A1 (zh) | 一种数据写入方法以及相关设备 | |
CN101957729B (zh) | 逻辑块变换方法及基于该方法兼容用户读写的方法和装置 | |
US20180032433A1 (en) | Storage system and data writing control method | |
US9329788B2 (en) | Computer system and method for allocating and recovering virtual volumes | |
US11481275B2 (en) | Managing reconstruction of a malfunctioning disk slice | |
CN110471615B (zh) | 一种数据写入方法及装置 | |
US20140181437A1 (en) | Equalizing wear on mirrored storage devices through file system controls | |
CN109739688B (zh) | 快照资源空间管理方法、装置、电子设备 | |
US20140181430A1 (en) | Equalizing wear on storage devices through file system controls | |
US11720256B2 (en) | Maximizing power savings using IO monitoring | |
CN111936960A (zh) | 分布式存储系统中数据存储方法、装置及计算机程序产品 | |
US8140752B2 (en) | Method of executing a background task and an array controller | |
CN107132996B (zh) | 基于智能精简配置的存储方法、模块及系统 | |
US20140181368A1 (en) | Equalizing wear on storage devices with write counters |
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 |