CN101702113A - 写操作处理方法和装置 - Google Patents

写操作处理方法和装置 Download PDF

Info

Publication number
CN101702113A
CN101702113A CN200910221965A CN200910221965A CN101702113A CN 101702113 A CN101702113 A CN 101702113A CN 200910221965 A CN200910221965 A CN 200910221965A CN 200910221965 A CN200910221965 A CN 200910221965A CN 101702113 A CN101702113 A CN 101702113A
Authority
CN
China
Prior art keywords
write operation
operation requests
tabulation
waiting list
destination address
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
CN200910221965A
Other languages
English (en)
Other versions
CN101702113B (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies 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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN2009102219652A priority Critical patent/CN101702113B/zh
Publication of CN101702113A publication Critical patent/CN101702113A/zh
Application granted granted Critical
Publication of CN101702113B publication Critical patent/CN101702113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种写操作处理方法和装置,所述写操作处理方法包括:接收到写操作请求之后,根据所述写操作请求的接收时间和目的地址将所述写操作请求插入等待队列;在达到预定的触发条件之后,将所述等待队列中最先接收的写操作请求,以及与所述最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,所述写操作请求列表包括至少两个写操作请求;将所述写操作请求列表按照分条拆分为分条列表,所述分条列表包括至少两个写操作请求;并行处理所述分条列表上的至少两个写操作请求。本发明实施例实现了在RAID层并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。

Description

写操作处理方法和装置
技术领域
本发明涉及数据存储技术领域,特别涉及一种写操作处理方法和装置。
背景技术
随着存储信息的爆炸式增长,采用独立冗余磁盘阵列(Redundant Array ofIndependent Disk;以下简称:RAID)技术的大容量、高效率、高可靠性的磁盘阵列存储设备得到越来越普遍的应用;RAID发展至今共有10个主要等级,其中RAID5因其磁盘利用率高和可靠性高得到最广泛的应用。RAID5采用条带化和磁盘冗余相结合的技术,条带化提高了访问速度,磁盘冗余提高了数据的可靠性。
在存储系统中,RAID收到缓冲存储器(CACHE)下发的地址连续的数据块后要把数据块拆分成小数据块下发到对应的磁盘上,假设CACHE下发的数据块是B0B1B2,该数据块将被拆分成B0、B1和B2,计算出校验数据块,然后下发到对应的磁盘上。RAID每收到一块CACHE下发的数据块,就要对该数据块进行拆分、计算校验数据块和下发到对应的磁盘的操作。RAID5写操作中,计算新的校验数据块的方法包括大写和小写两种算法。其中,根据要写的数据和其它数据单元的数据计算新的校验数据块的算法称作大写;根据要写的数据、将要被覆盖的数据及现有的校验数据块计算新的校验数据块的算法称作小写。
RAID成员盘中的一组位置相同的磁盘逻辑分块组成一个分条(Stripe),在同一分条进行的多个写操作要执行互斥,在同一分条进行的多个写操作要串行执行,以保证数据的一致性。现有技术中,写操作的执行效率低;当采用小写算法时,还存在增加磁盘负荷、增大主机的输入输出(Input Output;以下简称:IO)延时,以及增加资源消耗的缺陷。
发明内容
本发明实施例提供一种写操作处理方法和装置,以实现并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。
本发明实施例提供一种写操作处理方法,包括:
接收到写操作请求之后,根据所述写操作请求的接收时间和目的地址将所述写操作请求插入等待队列;
在达到预定的触发条件之后,将所述等待队列中最先接收的写操作请求,以及与所述最先接收的写操作请求的目的地址相邻的写操作请求合并为写操作请求列表,所述写操作请求列表包括至少两个写操作请求;
将所述写操作请求列表按照分条拆分为分条列表,所述分条列表包括至少两个写操作请求;
并行处理所述分条列表上的至少两个写操作请求。
本发明实施例还提供一种写操作处理装置,包括:
队列插入模块,用于在接收到写操作请求之后,根据所述写操作请求的接收时间和目的地址将所述写操作请求插入等待队列;
列表插入模块,用于在达到预定的触发条件之后,将所述等待队列中最先接收的写操作请求,以及与所述最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,所述写操作请求列表包括至少两个写操作请求;
拆分模块,用于将所述列表插入模块获得的写操作请求列表按照分条拆分为分条列表,所述分条列表包括至少两个写操作请求;
处理模块,用于并行处理所述分条列表上的至少两个写操作请求。
本发明实施例中,在接收到写操作请求之后,将该写操作请求插入等待队列,在达到预定的触发条件之后,将等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,在处理该写操作请求列表时,先按照分条将写操作列表拆分为分条列表,该分条列表包括至少两个写操作请求,然后并行处理该分条列表上的至少两个写操作请求;从而实现了在RAID层并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明写操作处理方法一个实施例的流程图;
图2为本发明写操作处理方法另一个实施例的流程图;
图3为本发明将目的地址相邻的写操作请求插入写操作请求列表一个实施例的流程图;
图4为本发明分条列表一个实施例的示意图;
图5(a)为本发明分条单元包含至少两个写操作请求一个实施例的示意图;
图5(b)为本发明包含至少两个写操作请求的分条单元一个实施例的结构示意图;
图6为本发明写操作处理装置一个实施例的结构示意图;
图7为本发明写操作处理装置另一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明写操作处理方法一个实施例的流程图,如图1所示,该实施例包括:
步骤101,接收到写操作请求之后,根据该写操作请求的接收时间和目的地址将该写操作请求插入等待队列。
具体地,在接收到写操作请求之后,写操作处理装置根据该写操作请求的目的地址,按照目的地址增加或减少的顺序将该写操作请求插入上述目的地址对应的逻辑单元号(Logic Unit Number;以下简称:LUN)的第一等待队列;并根据该写操作请求的接收时间,按照接收时间由先至后的顺序将该写操作请求插入上述LUN的第二等待队列;并按照接收时间由先至后的顺序将所述写操作请求插入包含所有写操作请求的第三等待队列。
步骤102,在达到预定的触发条件之后,将等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表(Request List;以下简称:REQ_List);该写操作请求列表包括至少两个写操作请求。
本实施例中,上述触发条件可以包括:第三等待队列中最先接收的写操作请求的等待时间达到预设的等待时间阈值;或者,第二等待队列中写操作请求的个数达到预设的等待个数阈值。
步骤103,将写操作请求列表按照分条拆分为分条列表,该分条列表包括至少两个写操作请求。其中,每个分条列表中的写操作请求的目的地址在同一分条上。
步骤104,并行处理上述分条列表上的至少两个写操作请求。
具体地,写操作处理装置并行处理上述分条列表上的至少两个写操作请求可以为:
写操作处理装置将分条列表进一步拆分为分条单元(Stripe Unit;以下简称:SU),并行处理拆分后获得的至少两个分条单元上的至少两个写操作请求。其中,分条单元是RAID中的一个分条在一个磁盘上的逻辑分块。
本实施例中,一个分条列表包括至少两个写操作请求,一个分条单元可以包括至少一个写操作请求。
上述实施例中,写操作处理装置在接收到写操作请求之后,将该写操作请求插入等待队列,在达到预定的触发条件之后,将等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,在处理该写操作请求列表时,先按照分条将写操作列表拆分为分条列表,该分条列表包括至少两个写操作请求,然后并行处理该分条列表上的至少两个写操作请求;从而实现了并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。
图2为本发明写操作处理方法另一个实施例的流程图,如图2所示,该实施例包括:
步骤201,接收到写操作请求之后,根据该写操作请求的接收时间和目的地址将该写操作请求插入等待队列。
具体地,在接收到写操作请求之后,写操作处理装置根据该写操作请求的目的地址,按照目的地址增加或减少的顺序将该写操作请求插入上述目的地址对应的逻辑单元号(Logic Unit Number;以下简称:LUN)的第一等待队列;并根据该写操作请求的接收时间,按照接收时间由先至后的顺序将该写操作请求插入上述LUN的第二等待队列;并按照接收时间由先至后的顺序将所述写操作请求插入包含所有写操作请求的第三等待队列。
步骤202,判断第三等待队列中最先接收的写操作请求的等待时间是否达到预设的等待时间阈值。如果第三等待队列中最先接收的写操作请求的等待时间达到预设的等待时间阈值,则执行步骤203;如果第三等待队列中最先接收的写操作请求的等待时间未达到预设的等待时间阈值,则执行步骤204~步骤205。
其中,该等待时间阈值可以动态设置,本实施例以该等待时间阈值为2ms为例进行说明。
步骤203,取出第三等待队列中最先接收的写操作请求,执行步骤206。
本实施例中,当第三等待队列中最先接收的写操作请求的等待时间达到预设的等待时间阈值时,取出第三等待队列中最先接收的写操作请求,然后执行步骤206,将该最先接收的写操作请求插入写操作请求列表。
步骤204,判断第二等待队列中写操作请求的个数是否达到预设的等待个数阈值。如果第二等待队列中写操作请求的个数已达到预设的等待个数阈值,则执行步骤205;如果第二等待队列中写操作请求的个数未达到预设的等待个数阈值,则结束本次流程。
本实施例中,如果第三等待队列中最先接收的写操作请求尚未达到预设的等待时间阈值,则写操作处理装置判断每个LUN的第二等待队列中写操作请求的个数是否达到预设的等待个数阈值。其中,该等待个数阈值可以动态设置,本实施例以该等待个数阈值为6为例进行说明。
步骤205,取出第二等待队列中最先接收的写操作请求;然后,执行步骤206。
本实施例中,在某个LUN的第二等待队列中写操作请求的个数达到预设的等待个数阈值之后,取出该第二等待队列中最先接收的写操作请求,然后执行步骤206,将该最先接收的写操作请求插入写操作请求列表。
步骤206,将最先接收的写操作请求插入写操作请求列表。然后,记录最先接收的写操作请求对应的第一等待队列中与该最先接收的写操作请求相邻的写操作请求的目的地址,并将最先接收的写操作请求从第三等待队列,以及该最先接收的写操作请求对应的第一等待队列和第二等待队列中删除。
其中,与该最先接收的写操作请求相邻的写操作请求可以包括第一写操作请求和/或第二写操作请求,对应的,假设第一写操作请求的目的地址为第一目的地址,第二写操作请求的目的地址为第二目的地址。因此写操作处理装置记录的与该最先接收的写操作请求相邻的写操作请求的目的地址可以包括第一目的地址和/或第二目的地址。在此假设,第一目的地址为最先接收的写操作请求的高地址方向相邻的第一个写操作请求的目的地址,第二目的地址为最先接收的写操作请求的低地址方向相邻的第一个写操作请求的目的地址。
步骤207,根据记录的目的地址在该最先接收的写操作请求对应的第一等待队列中,查找与该最先接收的写操作请求的目的地址相邻的写操作请求,并将查找到的写操作请求插入上述写操作请求列表。
图3为本发明将目的地址相邻的写操作请求插入写操作请求列表一个实施例的流程图,该实施例具体介绍步骤207中,根据记录的目的地址在该最先接收的写操作请求对应的第一等待队列中,查找与该最先接收的写操作请求的目的地址相邻的写操作请求,并将查找到的写操作请求插入上述写操作请求列表的一种操作流程。如图3所示,该实施例包括:
步骤301,根据记录的第一目的地址,在该最先接收的写操作请求对应的第一等待队列中查找与该第一目的地址对应的写操作请求。
本实施例中,写操作处理装置先查找第一目的地址对应的写操作请求,再按照目的地址从低到高的顺序在上述第一等待队列中继续查找。当然本发明实施例并不局限于此,写操作处理装置也可以先根据步骤206中记录的第二目的地址,在该最先接收的写操作请求对应的第一等待队列中查找与该第二目的地址对应的写操作请求,再按照目的地址从高到低的顺序在上述第一等待队列中继续查找。
本发明实施例对查找顺序不作限定,但本实施例先按照目的地址从低到高的顺序、再按照目的地址从高到低的顺序进行查找。
步骤302,判断查找到的写操作请求是否为第一等待队列的队列头。如果查找到的写操作请求是第一等待队列的队列头,则执行步骤311;如果查找到的写操作请求不是第一等待队列的队列头,则执行步骤303。
步骤303,判断查找到的写操作请求与最先接收的写操作请求的目的地址是否相邻。如果相邻,则执行步骤304;如果查找到的写操作请求与最先接收的写操作请求的目的地址不相邻,则执行步骤311。
具体地,判断查找到的写操作请求与最先接收的写操作请求的目的地址是否相邻可以为:判断查找到的写操作请求与最先接收的写操作请求的目的地址相差是否超过预设的范围阈值;如果未超过预设的范围阈值,则可以确定查找到的写操作请求与最先接收的写操作请求的目的地址相邻;如果查找到的写操作请求与最先接收的写操作请求的目的地址相差超过预设的范围阈值,则可以确定查找到的写操作请求与最先接收的写操作请求的目的地址不相邻。
由于写操作请求一般是请求将待写入数据写入一段地址,因此本发明实施例中的写操作请求的目的地址包括写操作请求的起始地址和结束地址。因此更具体地,判断查找到的写操作请求与最先接收的写操作请求的目的地址是否相邻可以为:判断查找到的写操作请求的结束地址与最先接收的写操作请求的起始地址相差是否超过预设的范围阈值;或者,判断最先接收的写操作请求的结束地址与查找到的写操作请求的起始地址相差是否超过预设的范围阈值。当查找到的写操作请求的结束地址与最先接收的写操作请求的起始地址相差不超过预设的范围阈值,或者,最先接收的写操作请求的结束地址与查找到的写操作请求的起始地址相差不超过预设的范围阈值时,可以确定查找到的写操作请求与最先接收的写操作请求的目的地址相邻;当查找到的写操作请求的结束地址与最先接收的写操作请求的起始地址相差超过预设的范围阈值,或者,最先接收的写操作请求的结束地址与查找到的写操作请求的起始地址相差超过预设的范围阈值时,可以确定查找到的写操作请求与最先接收的写操作请求的目的地址不相邻。
其中,该预设的范围阈值可以为一个分条的范围。即,当查找到的写操作请求的结束地址与最先接收的写操作请求的起始地址相差不超过一个分条的范围,或者,最先接收的写操作请求的结束地址与查找到的写操作请求的起始地址相差不超过一个分条的范围时,可以确定查找到的写操作请求与最先接收的写操作请求的目的地址相邻;当查找到的写操作请求的结束地址与最先接收的写操作请求的起始地址相差超过一个分条的范围,或者,最先接收的写操作请求的结束地址与查找到的写操作请求的起始地址相差超过一个分条的范围时,可以确定查找到的写操作请求与最先接收的写操作请求的目的地址不相邻。
本实施例中,查找到的写操作请求的目的地址即为步骤206中记录的第一目的地址。
步骤304,将查找到的写操作请求插入上述写操作请求列表。
步骤305,判断获得的写操作请求列表中写操作请求的个数是否大于预设的个数阈值。如果获得的写操作请求列表中写操作请求的个数不大于预设的个数阈值,则执行步骤306~步骤309;如果获得的写操作请求列表中写操作请求的个数大于预设的个数阈值,则执行步骤310。其中,预设的个数阈值可以根据实际需要任意设置,例如:可以将该个数阈值设为6。
步骤306,从第一等待队列、第二等待队列和第三等待队列中删除上述查找到的写操作请求。
优选地,如果写操作处理装置未记录查找到的写操作请求的目的地址,则需先记录查找到的写操作请求的目的地址,再从第一等待队列、第二等待队列和第三等待队列中删除上述查找到的写操作请求。
步骤307,以上述查找到的写操作请求的目的地址为参考,按照目的地址从低到高的顺序,在上述第一等待队列中继续查找与上述查找到的写操作请求的目的地址相邻的写操作请求。
步骤308,判断查找到的写操作请求是否为第一等待队列的队列头。如果查找到的写操作请求是第一等待队列的队列头,则执行步骤311;如果查找到的写操作请求不是第一等待队列的队列头,则执行步骤309。
步骤309,判断查找到的写操作请求的目的地址与作为参考的目的地址是否相邻。如果相邻,则执行步骤304~308;如果查找到的写操作请求的目的地址与作为参考的目的地址不相邻,则执行步骤311。
具体地,判断查找到的写操作请求的目的地址与作为参考的目的地址是否相邻的方法与步骤303提供的方法相同,在此不再赘述。
步骤310,从获得的写操作请求列表中删除上述查找到的写操作请求,执行步骤208。
步骤311,结束上述顺序的查找,根据步骤206记录的第二目的地址,在该最先接收的写操作请求对应的第一等待队列中查找与该第二目的地址对应的写操作请求,并执行步骤302~步骤310。需要说明的是,执行步骤302~步骤310的过程中,在步骤307中,是按照目的地址从高到低的顺序在第一等待队列中查找。在按照目的地址从高到低的顺序查找的过程中,如果再次查找到了第一等待队列的队列头,则不论写操作请求列表中写操作请求的个数是否大于预设的个数阈值,均结束本次流程,执行步骤208。
步骤208,下发写操作请求列表,返回执行步骤202。
本实施例中,写操作请求列表的生成流程与处理流程是并行执行的流程,在步骤208,写操作处理装置将写操作请求列表下发至该写操作处理装置中负责处理写操作请求列表的功能模块,并返回执行步骤202。
在接收到写操作请求列表之后,该写操作处理装置中负责处理写操作请求列表的功能模块将获得的写操作请求列表按照分条拆分为分条列表,并行处理分条列表上的至少两个写操作请求。
本实施例中,写操作处理装置将多个写操作请求插入同一写操作请求列表,因此获得的写操作请求列表中的写操作请求的目的地址可能对应不同的分条。在该写操作处理装置中负责处理写操作请求列表的功能模块处理该写操作请求列表时,该功能模块首先需要按照分条,将该写操作请求列表拆分为分条列表,每个分条列表中的写操作请求的目的地址在同一分条上。图4为本发明分条列表一个实施例的示意图,如图4所示,一个分条列表中包括至少两个写操作请求,每个分条列表中的写操作请求的目的地址位于同一分条上。
具体地,在并行处理分条列表上的至少两个写操作请求时,写操作处理装置中负责处理写操作请求列表的功能模块将分条列表进一步拆分为分条单元,分条单元是RAID中的一个分条在一个磁盘上的逻辑分块;然后上述功能模块并行处理分条列表的至少两个分条单元上的至少两个写操作请求。
本实施例中,一个分条列表包括至少两个写操作请求,一个分条单元可以包括至少一个写操作请求。图5(a)为本发明分条单元包含至少两个写操作请求一个实施例的示意图;图5(b)为本发明包含至少两个写操作请求的分条单元一个实施例的结构示意图。
上述实施例中,写操作处理装置将接收到的写操作请求插入写操作请求列表,在处理该写操作请求列表时,先按照分条将写操作列表拆分为分条列表,该分条列表包括至少两个写操作请求,然后并行处理该分条列表上的至少两个写操作请求;从而实现了并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。
需要说明的是,本发明实施例中,可能存在写操作请求列表拆分成的分条列表中只包括一个写操作请求的情形,例如:写操作请求列表中包括两个写操作请求,这两个写操作请求分别位于不同的分条上,拆分成的分条列表中各包括一个写操作请求;上述情形同样适用本发明实施例提出的写操作处理方法,但本发明实施例以写操作请求列表拆分成的分条列表中包括至少两个写操作请求为例进行说明。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图6为本发明写操作处理装置一个实施例的结构示意图,该实施例的写操作处理装置可以作为RAID,或RAID的一部分,实现本发明图1所示实施例的流程。如图6所示,该写操作处理装置可以包括:队列插入模块62、列表插入模块63、拆分模块64和处理模块65。
其中,队列插入模块62,用于在接收到写操作请求之后,根据该写操作请求的接收时间和目的地址将该写操作请求插入等待队列;具体地,队列插入模块62根据该写操作请求的目的地址,按照目的地址增加或减少的顺序将该写操作请求插入上述目的地址对应的LUN的第一等待队列;并根据该写操作请求的接收时间,按照接收时间由先至后的顺序将该写操作请求插入上述LUN的第二等待队列;并按照接收时间由先至后的顺序将所述写操作请求插入包含所有写操作请求的第三等待队列;
列表插入模块63,用于在达到预定的触发条件之后,将上述等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表;上述触发条件可以包括:第三等待队列中最先接收的写操作请求的等待时间达到预设的等待时间阈值;或者,第二等待队列中写操作请求的个数达到预设的等待个数阈值;
拆分模块64,用于将列表插入模块63获得的写操作请求列表按照分条拆分为分条列表,该分条列表包括至少两个写操作请求,每个分条列表中的写操作请求的目的地址在同一分条上;
处理模块65,用于并行处理上述分条列表上的至少两个写操作请求。
上述实施例中,在接收到写操作请求之后,队列插入模块62将该写操作请求插入等待队列,在达到预定的触发条件之后,列表插入模块63将等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,然后由拆分模块64先按照分条将写操作列表拆分为分条列表,该分条列表包括至少两个写操作请求,每个分条列表中的写操作请求的目的地址在同一分条上,再由处理模块65并行处理该分条列表上的至少两个写操作请求;从而实现了并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。
图7为本发明写操作处理装置另一个实施例的结构示意图,该实施例的写操作处理装置可以作为RAID,或RAID的一部分,实现本发明图2所示实施例的流程。如图7所示,该写操作处理装置可以包括:队列插入模块72、列表插入模块73、拆分模块74和处理模块75。
其中,队列插入模块72,用于在接收到写操作请求之后,根据该写操作请求的接收时间和目的地址将该写操作请求插入等待队列;具体地,队列插入模块72根据该写操作请求的目的地址,按照目的地址增加或减少的顺序将该写操作请求插入上述目的地址对应的LUN的第一等待队列;并根据该写操作请求的接收时间,按照接收时间由先至后的顺序将该写操作请求插入上述LUN的第二等待队列;并按照接收时间由先至后的顺序将所述写操作请求插入包含所有写操作请求的第三等待队列;
列表插入模块73,用于在达到预定的触发条件之后,将上述等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表;上述触发条件可以包括:第三等待队列中最先接收的写操作请求的等待时间达到预设的等待时间阈值;或者,第二等待队列中写操作请求的个数达到预设的等待个数阈值;具体地,列表插入模块73可以按照本发明图3所示实施例提供的方法将与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表;
拆分模块74,用于将列表插入模块73获得的写操作请求列表按照分条拆分为分条列表,该分条列表包括至少两个写操作请求,每个分条列表中的写操作请求的目的地址在同一分条上;
处理模块75,用于并行处理上述分条列表上的至少两个写操作请求。
其中,列表插入模块73可以包括:请求插入子模块731、记录子模块732、删除子模块733和查找子模块734。请求插入子模块731,用于将第三等待队列或第二等待队列中最先接收的写操作请求插入写操作请求列表中;记录子模块732用于记录最先接收的写操作请求对应的第一等待队列中与最先接收的写操作请求相邻的写操作请求的目的地址;删除子模块733用于将最先接收的写操作请求从第三等待队列,以及该最先接收的写操作请求对应的第一等待队列和第二等待队列中删除;查找子模块734,用于根据记录子模块732记录的目的地址,在最先接收的写操作请求对应的第一等待队列中查找与该最先接收的写操作请求的目的地址相邻的写操作请求;当查找子模块734查找到的写操作请求不是第一等待队列的队列头时,请求插入子模块731将查找到的写操作请求插入上述写操作请求列表。
本实施例中,列表插入模块73还可以包括:判断子模块735,用于在请求插入子模块731将查找子模块734查找到的写操作请求插入写操作请求列表之后,判断获得的写操作请求列表中写操作请求的个数是否超过预设的个数阈值;当判断子模块735确定获得的写操作请求列表中写操作请求的个数不大于该个数阈值时,删除子模块733从第一等待队列、第二等待队列和第三等待队列中删除查找子模块734查找到的写操作请求;当判断子模块735确定获得的写操作请求列表中写操作请求的个数大于预设的个数阈值时,删除子模块733从上述写操作请求列表中删除查找子模块734查找到的写操作请求。
其中,处理模块75可以包括:列表拆分子模块751和请求处理子模块752。列表拆分子模块751,用于将分条列表拆分为分条单元,分条单元是RAID中的一个分条在一个磁盘上的逻辑分块;请求处理子模块752,用于并行处理列表拆分子模块751获得的至少两个分条单元上的至少两个写操作请求。本实施例中,一个分条列表包括至少两个写操作请求,一个分条单元可以包括至少一个写操作请求。
上述实施例中,在接收到写操作请求之后,队列插入模块72将该写操作请求插入等待队列,在达到预定的触发条件之后,列表插入模块73将等待队列中最先接收的写操作请求,以及与该最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,然后由拆分模块74先按照分条将写操作列表拆分为分条列表,该分条列表包括至少两个写操作请求,每个分条列表中的写操作请求的目的地址在同一分条上;再由处理模块75并行处理该分条列表上的至少两个写操作请求;从而实现了并行处理同一分条上的至少两个写操作请求,减少了不必要的下盘操作,减小了主机的IO延时。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种写操作处理方法,其特征在于,包括:
接收到写操作请求之后,根据所述写操作请求的接收时间和目的地址将所述写操作请求插入等待队列;
在达到预定的触发条件之后,将所述等待队列中最先接收的写操作请求,以及与所述最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,所述写操作请求列表包括至少两个写操作请求;
将所述写操作请求列表按照分条拆分为分条列表,所述分条列表包括至少两个写操作请求;
并行处理所述分条列表上的至少两个写操作请求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述写操作请求的接收时间和目的地址将所述写操作请求插入等待队列包括:
按照写操作请求的目的地址增加或减少的顺序将所述写操作请求插入所述目的地址对应的逻辑单元号LUN的第一等待队列;
根据所述写操作请求的接收时间,按照接收时间由先至后的顺序将所述写操作请求插入所述LUN的第二等待队列;并按照接收时间由先至后的顺序将所述写操作请求插入包含所有写操作请求的第三等待队列。
3.根据权利要求2所述的方法,其特征在于,所述预定的触发条件包括:所述第三等待队列中最先接收的写操作请求的等待时间达到预设的等待时间阈值;或者,所述第二等待队列中写操作请求的个数达到预设的等待个数阈值。
4.根据权利要求3所述的方法,其特征在于,所述将所述等待队列中最先接收的写操作请求,以及与所述最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表包括:
将所述第三等待队列或所述第二等待队列中最先接收的写操作请求插入写操作请求列表中,记录所述最先接收的写操作请求对应的第一等待队列中与所述最先接收的写操作请求相邻的写操作请求的目的地址,并将所述最先接收的写操作请求从所述第三等待队列,以及所述最先接收的写操作请求对应的第一等待队列和第二等待队列中删除;
根据记录的目的地址,在所述最先接收的写操作请求对应的第一等待队列中,查找与所述最先接收的写操作请求的目的地址相邻的写操作请求;
当查找到的写操作请求不是所述第一等待队列的队列头时,将所述查找到的写操作请求插入所述写操作请求列表。
5.根据权利要求4所述的方法,其特征在于,所述将所述查找到的写操作请求插入所述写操作请求列表之后,还包括:
判断获得的写操作请求列表中写操作请求的个数是否超过预设的个数阈值;
当所述写操作请求列表中写操作请求的个数不大于所述个数阈值时,从所述第一等待队列、第二等待队列和第三等待队列中删除所述查找到的写操作请求;
当所述写操作请求列表中写操作请求的个数大于所述个数阈值时,从所述写操作请求列表中删除所述查找到的写操作请求。
6.根据权利要求1所述的方法,其特征在于,所述并行处理所述分条列表上的至少两个写操作请求包括:
将所述分条列表拆分为分条单元;
并行处理所述分条单元上的至少两个写操作请求。
7.一种写操作处理装置,其特征在于,包括:
队列插入模块,用于在接收到写操作请求之后,根据所述写操作请求的接收时间和目的地址将所述写操作请求插入等待队列;
列表插入模块,用于在达到预定的触发条件之后,将所述等待队列中最先接收的写操作请求,以及与所述最先接收的写操作请求的目的地址相邻的写操作请求插入写操作请求列表,所述写操作请求列表包括至少两个写操作请求;
拆分模块,用于将所述列表插入模块获得的写操作请求列表按照分条拆分为分条列表,所述分条列表包括至少两个写操作请求;
处理模块,用于并行处理所述分条列表上的至少两个写操作请求。
8.根据权利要求7所述的装置,其特征在于,所述队列插入模块根据所述写操作请求的目的地址,按照目的地址增加或减少的顺序将所述写操作请求插入所述目的地址对应的逻辑单元号LUN的第一等待队列;根据所述写操作请求的接收时间,按照接收时间由先至后的顺序将所述写操作请求插入所述LUN的第二等待队列;并按照接收时间由先至后的顺序将所述写操作请求插入包含所有写操作请求的第三等待队列。
9.根据权利要求8所述的装置,其特征在于,所述列表插入模块包括:
请求插入子模块,用于将所述第三等待队列或所述第二等待队列中最先接收的写操作请求插入写操作请求列表中;
记录子模块,用于记录所述最先接收的写操作请求对应的第一等待队列中与所述最先接收的写操作请求相邻的写操作请求的目的地址;
删除子模块,用于将所述最先接收的写操作请求从所述第三等待队列,以及所述最先接收的写操作请求对应的第一等待队列和第二等待队列中删除;
查找子模块,用于根据所述记录子模块记录的目的地址,在所述最先接收的写操作请求对应的第一等待队列中查找与所述最先接收的写操作请求的目的地址相邻的写操作请求;
当所述查找子模块查找到的写操作请求不是所述第一等待队列的队列头时,所述请求插入子模块将所述查找到的写操作请求插入所述写操作请求列表。
10.根据权利要求9所述的装置,其特征在于,所述列表插入模块还包括:
判断子模块,用于在所述请求插入子模块将所述查找子模块查找到的写操作请求插入所述写操作请求列表之后,判断获得的写操作请求列表中写操作请求的个数是否超过预设的个数阈值;
当所述判断子模块确定获得的写操作请求列表中写操作请求的个数不大于所述个数阈值时,所述删除子模块还用于从所述第一等待队列、第二等待队列和第三等待队列中删除所述查找子模块查找到的写操作请求;当所述判断子模块确定获得的写操作请求列表中写操作请求的个数大于所述个数阈值时,所述删除子模块还用于从所述写操作请求列表中删除所述查找子模块查找到的写操作请求。
11.根据权利要求7所述的装置,其特征在于,所述处理模块包括:
列表拆分子模块,用于将所述分条列表拆分为分条单元;
请求处理子模块,用于并行处理所述列表拆分子模块获得的分条单元上的至少两个写操作请求。
CN2009102219652A 2009-11-23 2009-11-23 写操作处理方法和装置 Active CN101702113B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102219652A CN101702113B (zh) 2009-11-23 2009-11-23 写操作处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102219652A CN101702113B (zh) 2009-11-23 2009-11-23 写操作处理方法和装置

Publications (2)

Publication Number Publication Date
CN101702113A true CN101702113A (zh) 2010-05-05
CN101702113B CN101702113B (zh) 2011-02-16

Family

ID=42157030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102219652A Active CN101702113B (zh) 2009-11-23 2009-11-23 写操作处理方法和装置

Country Status (1)

Country Link
CN (1) CN101702113B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137815A1 (zh) * 2010-11-26 2011-11-10 华为技术有限公司 数据存取的方法、消息接收解析器及系统
CN102929727A (zh) * 2012-10-18 2013-02-13 浪潮(北京)电子信息产业有限公司 一种同步接口上数据的处理方法和系统
CN106250322A (zh) * 2016-08-12 2016-12-21 华为技术有限公司 一种写数据的方法和装置
CN107305473A (zh) * 2016-04-21 2017-10-31 华为技术有限公司 一种io请求的调度方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5720025A (en) * 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
CN1293493C (zh) * 2003-11-17 2007-01-03 联想(北京)有限公司 机群文件服务系统及其输入输出处理方法
CN101566924B (zh) * 2008-04-23 2011-07-13 中兴通讯股份有限公司 一种磁盘阵列的数据读写方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137815A1 (zh) * 2010-11-26 2011-11-10 华为技术有限公司 数据存取的方法、消息接收解析器及系统
CN102929727A (zh) * 2012-10-18 2013-02-13 浪潮(北京)电子信息产业有限公司 一种同步接口上数据的处理方法和系统
CN107305473A (zh) * 2016-04-21 2017-10-31 华为技术有限公司 一种io请求的调度方法及装置
CN107305473B (zh) * 2016-04-21 2019-11-12 华为技术有限公司 一种io请求的调度方法及装置
CN106250322A (zh) * 2016-08-12 2016-12-21 华为技术有限公司 一种写数据的方法和装置
CN106250322B (zh) * 2016-08-12 2019-11-19 华为技术有限公司 一种写数据的方法和装置

Also Published As

Publication number Publication date
CN101702113B (zh) 2011-02-16

Similar Documents

Publication Publication Date Title
US8775731B2 (en) Write spike performance enhancement in hybrid storage systems
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
CN101566924B (zh) 一种磁盘阵列的数据读写方法
US8024587B2 (en) Computer apparatus, storage apparatus, system management apparatus, and hard disk unit power supply controlling method
US8726070B2 (en) System and method for information handling system redundant storage rebuild
CN101630290B (zh) 重复数据处理方法和装置
US6148368A (en) Method for accelerating disk array write operations using segmented cache memory and data logging
US9442802B2 (en) Data access methods and storage subsystems thereof
US5257352A (en) Input/output control method and system
US7596657B2 (en) Increased storage capacity for solid state disks using data compression
US20100107003A1 (en) Fast Data Recovery From HDD Failure
CN109358809B (zh) 一种raid数据存储系统及方法
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN101794259B (zh) 数据存储方法和装置
CN101702113B (zh) 写操作处理方法和装置
US20150293856A1 (en) Disk Array Flushing Method and Disk Array Flushing Apparatus
CN103399823A (zh) 业务数据的存储方法、设备和系统
CN101140542A (zh) 一种缩短写时拷贝快照写响应时间的方法
US20200089425A1 (en) Information processing apparatus and non-transitory computer-readable recording medium having stored therein information processing program
CN102541746A (zh) 一种队列的数据处理方法和系统
JP2003029934A (ja) ストレージ制御装置及びその制御方法
CN115933994B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN101794246A (zh) 备份存储系统、备份系统及数据备份方法和恢复方法
US6549980B2 (en) Manufacturing process for software raid disk sets in a computer system
CN110209340B (zh) 一种全闪存存储系统的访问方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220907

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.