一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于磁盘阵列的缓存屏障命令处理方法及用于其的装置与流程

2021-11-09 17:57:00 来源:中国专利 TAG:


1.本发明涉及计算机技术,特别是涉及磁盘阵列(raid)的控制技术。


背景技术:

2.<磁盘阵列>
3.磁盘阵列(raid)作为使多个磁盘并列连接而构成大容量磁盘的方法,用作增加读写操作性能的目的。
4.磁盘阵列控制器在服务于写入命令时,收集从主机传递的块后,按特定单位,例如按块单位或块的整数倍单位,将收集的块记录于构成磁盘阵列的多个磁盘。构成磁盘阵列的各个磁盘独立地运转,因而磁盘阵列控制器可以将收集的块并列地记录于多个磁盘。
5.将一次记录于构成磁盘阵列的磁盘的块的集合称为条带。
6.一个条带由多个数据块构成,或由具有多个数据块及关于他们的恢复信息的一个或其以上的代码块构成。代码块存储了当磁盘损伤时能够恢复损伤磁盘中存储的数据块的内容的信息。例如,可以具有一个条带中存在的数据块的奇偶校验位。
7.一个条带的大小为(一个条带使用的块的大小)*(块的个数)。假定由四个磁盘构成的磁盘阵列0(零)型的磁盘阵列。如果一个条带中每个磁盘记录的写入单位为一个块,则一个条带的大小为四个块。
8.例如,需将8个块写入磁盘阵列时,这些块按条带大小单位记录于4个磁盘。如果将块a、块b、块c、块d、块e、块f、块g及块h记录于四个磁盘,则{块a、块b、块c、块d}构成一个条带,{块e、块f、块g、块h}构成另一个条带。
9.如果在一个条带中每个磁盘记录的写入单位为两个块,则一个条带的大小为八个块。此时,如果将所述八个块记录于同一磁盘阵列0,则{a,b}、{c,d}、{e,f}、{g,h}记录于各个磁盘。
10.磁盘控制器在保障条带间的写入顺序的同时,将写入请求传递给各磁盘。
11.<条带的构成>
12.在基于奇偶校验位的磁盘阵列中,由n个块构成的一个条带由n

m个数据块和m个奇偶校验位块构成。磁盘阵列0为m=0。当是磁盘阵列4或磁盘阵列5时,m为1。当是磁盘阵列6时,m=2。
13.<条带的记录>
14.记录从主机传递的块的过程如下。
15.首先,磁盘阵列控制器构成条带。
16.然后,磁盘阵列控制器为了将属于一个条带的块分散记录于各磁盘,向各磁盘发送记录请求(write request)。各磁盘处理所接收的所述记录请求。即,将记录请求中标明的块接收到磁盘。此处的所谓“接收”,意思是传输到磁盘内部的缓存。
17.构成条带的所有块传递到构成磁盘阵列的磁盘后,磁盘阵列控制器以相同方式进行下一条带的记录。
18.当是磁盘阵列0时,一个条带只由数据块构成。在磁盘阵列5中,条带由数据块和一个奇偶校验位块构成。当是磁盘阵列6时,条带由数据块和两个奇偶校验位块构成。
19.<缓存屏障命令(cache barrier命令)>
20.缓存屏障命令是在单一磁盘中定义的存储装置用命令。在emmc 5.0中,将该命令定义为标准。
21.到达一个磁盘的命令,以缓存屏障命令为基准,可以分为在缓存屏障命令到达前已经存在于磁盘的命令、在缓存屏障之后到达磁盘的命令。
22.满足(compatible)或支持缓存屏障命令的存储器控制器,保障在缓存屏障命令到达前已经存在于磁盘的写入命令将记录的块,先于在所述缓存屏障命令到达之后到达磁盘的写入命令需记录的块而被永久记录。
23.例如,假定命令按write(a)、write(b)、cache barrier、write(c)、write(d)按顺序到达磁盘。其中,write()是针对在()内的块的写入命令,所述cache barrier是所述缓存屏障命令。支持缓存屏障命令的磁盘控制器以接收所述缓存屏障命令的时间点为基准,保障在块a和块b安全地记录之后,块c和块d安全地记录。缓存屏障命令的目的是在写入命令间标明最终记录顺序。
24.相反,不支持缓存屏障命令的磁盘控制器,即使接收缓存屏障命令,也不会满足所述缓存屏障命令要求的条件。
25.<磁盘阵列与缓存屏障命令>
26.命令从主机到达磁盘阵列控制器后,磁盘阵列控制器处理相应命令。写入命令中标明的块从主机传输到磁盘阵列存储装置。磁盘阵列控制器接收的块,根据磁盘阵列控制器定义的规则而构成条带后,分布存储于构成磁盘阵列的磁盘。
27.在磁盘阵列0中,磁盘阵列控制器中存在的块按条带大小单位而存储到构成磁盘阵列0的磁盘。磁盘阵列0控制器向构成条带的磁盘,根据预先定义的大小(条带中的大小单位),向条带的数据块分配磁盘。
28.将磁盘阵列存储装置的存储器中存储的块存储于构成磁盘阵列的磁盘,这通过磁盘阵列控制器向各磁盘发送写入命令的方式实现。
29.磁盘阵列5控制器在生成针对属于一个条带的数据块的奇偶校验位后,将数据块和奇偶校验位块记录于构成磁盘阵列的各磁盘。
30.此外,还有多样磁盘阵列方式。他们均是单一条带由多个数据块和多个代码块(或奇偶校验位块)构成。写入是通过在将一个条带记录于磁盘后记录下个条带的方式实现。
31.所述缓存屏障命令是强制规定到达单一磁盘的一系列写入命令间的记录顺序的命令。即,缓存屏障命令在到达单一磁盘的命令的集合中具有意义。
32.当包含一个缓存屏障命令的多个写入命令分布记录于构成磁盘阵列的磁盘时,所述一个缓存屏障命令只传递给某个特定磁盘。在传递了缓存屏障命令的所述特定磁盘中,保持所述缓存屏障命令到达前到达的写入命令与所述缓存屏障命令到达后到达的写入命令间的记录顺序。
33.但存在的问题是,在除了传递缓存屏障命令的所述特定磁盘之外的其余磁盘中,无法进一步保障原来所述缓存屏障命令要强制规定的记录顺序。
34.在一个实施例中,可以假定从主机到达磁盘阵列控制器的一系列命令由多个写入
命令以及一个以上的缓存屏障命令构成。与这些多个写入命令相关的多个数据块分布配置于多个磁盘时,存在要通过所述一个以上的缓存屏障命令来保障的写入顺序条件会被破坏的问题。
35.作为这种示例,例如可以假定写入8个块的情形。例如,可以是一个应用程序要通过缓存屏障命令保障首先记录{a、b、c、d},再记录{e、f、g、h}。为此,可以假定主机依次向磁盘阵列控制器发送write(a)、write(b)、write(c)、write(d)、"cache barrier"、write(e)、write(f)、write(g)、write(h)命令。而且,此时可以假定磁盘阵列由4个磁盘构成。
36.此时,如以往技术所示,如果考虑在磁盘间轮转处理的方法,首先,针对块a、块b、块c及块d的写入命令write(a),write(b),write(c),write(d),分别如下传递给各磁盘。
37.磁盘0:write(a)
38.磁盘1:write(b)
39.磁盘2:write(c)
40.磁盘3:write(d)
41.而且,根据write(a)、write(b)、write(c)、write(d),块a、块b、块c及块d分别如下记录于各磁盘。
42.磁盘0:块a
43.磁盘1:块b
44.磁盘2:块c
45.磁盘3:块d
46.然后,作为缓存屏障命令的cache barrier如下记录于磁盘0。
47.磁盘0:write(a),cache barrier
48.磁盘1:write(b),
49.磁盘2:write(c),
50.磁盘3:write(d),
51.然后,针对块e、块f、块g及块h的写入命令write(e)、write(f)、write(g)、write(h)如下记录于各磁盘。
52.磁盘0:write(a),cache barrier,write(e)
53.磁盘1:write(b),write(f)
54.磁盘2:write(c),write(g)
55.磁盘3:write(d),write(h)
56.而且,根据write(e)、write(f)、write(g)、write(h),块e、块f、块g及块h分别如下记录于各磁盘。
57.磁盘0:块a,块e
58.磁盘1:块b,块f
59.磁盘2:块c,块g
60.磁盘3:块d,块h
61.此时,缓存屏障命令只提供给磁盘0,不向磁盘1、磁盘2、磁盘3提供缓存屏障命令。因此存在的问题是,磁盘1中记录的块b和块f、磁盘2中记录的块c和块g及磁盘3中记录的块d和块h间的顺序关系在磁盘阵列中损失。


技术实现要素:

62.本发明要解决的问题是,当在中间包含一个缓存屏障命令的多个写入命令分布记录于构成磁盘阵列的磁盘时,由于所述一个缓存屏障命令只传递给某个特定磁盘,因而在除所述特定磁盘之外的其余磁盘中,原来所述缓存屏障命令原来保有的记录顺序被破坏。
63.作为解决上述问题的方法,如果首先就上述的例外进行说明,有一种将块a、块b、块c及块d具有耐久性(durable)地记录于各磁盘后,将块e、块f、块g及块h记录于所述各磁盘的方法。但该方法是在确认安全记录于介质之后发送下个写入块,因而导致性能低下。
64.根据本发明的一种观点,磁盘阵列控制器在将一个缓存屏障命令传输给磁盘的时间点,生成由缓存屏障命令构成的缓存屏障条带,将构成一个条带的块分布记录于各磁盘,如此将构成所述缓存屏障条带的缓存屏障命令分布传输给各磁盘。
65.例如,可以假定从主机发送的命令按write(a)、write(b)、write(c)、write(d)、cache barrier、write(e)、write(f)、write(g)、write(h)顺序到达磁盘阵列存储装置。
66.块a、块b、块c及块d传输给磁盘阵列存储装置。此后,为了再次将这些块传递给各个磁盘,分别如下将针对块a、块b、块c及块d的写入命令传递给各磁盘。
67.磁盘0:write(a)
68.磁盘1:write(b)
69.磁盘2:write(c)
70.磁盘3:write(d)
71.然后,在将需在提供给所述磁盘阵列存储装置的缓存屏障命令之后运行的write(e)、write(f)、write(g)、write(h)命令传递给各磁盘之前,先将所述一个缓存屏障全部传递给所述各磁盘。如此一来,与构成磁盘阵列存储装置的磁盘个数对应个数的缓存屏障命令、针对块e、块f、块g及块h的写入命令如下记录于各磁盘。
72.磁盘0:write(a),cache barrier,write(e)
73.磁盘1:write(b),cache barrier,write(f)
74.磁盘2:write(c),cache barrier,write(g)
75.磁盘3:write(d),cache barrier,write(h)
76.在本发明另一观点的实施例中,当缓存屏障命令进入条带的中间时,可以分割条带。即,在从主机依次传递给磁盘阵列控制器的命令为write(a)、write(b)、cache barrier、write(c)、write(d)、write(e)、cache barrier、write(f)、write(g)、write(h)的情况下,要考虑由四个磁盘构成的阵列。
77.如上所述,在有缓存屏障的情况下,条带可以如下构成。
78.stripe 1:块a、块b、虚拟块、虚拟块
79.stripe 2(barrier stripe):缓存屏障、缓存屏障、缓存屏障、缓存屏障
80.stripe 3:虚拟块、虚拟块、块c、块d、
81.stripe 4:块e、虚拟块、虚拟块、虚拟块
82.stripe 5(barrier stripe):缓存屏障、缓存屏障、缓存屏障、缓存屏障
83.stripe 6:虚拟块、块f、块g、块h
84.下[表1]揭示出上述6个条带的构成要素与4个磁盘间的对应关系。
[0085]
【表1】
[0086] disk1disk2disk3disk4time1/stripe1ab
‑‑
time2/stripe2barrierbarrierbarrierbarriertime3/stripe3
‑‑
cdtime4/stripe4e
‑‑‑
time5/stripe5barrierbarrierbarrierbarriertime6/stripe6

fgh
[0087]
为了说明上述“虚拟块”的意义,首先说明本发明中指称的“全条带(full stripe)”的概念。后面将会叙述,所述全条带意味着包括与构成磁盘阵列的磁盘总个数相同个数的写入命令的条带。例如,假定构成磁盘阵列的磁盘的总个数为4个的情形时,一个全条带可以由共4个实际存在的块构成。在上[表1]中,
“‑”
对应于“虚拟块”。
[0088]
上述“虚拟块”作为与所述全条带相区分的不同种类的条带,是为了例如根据本发明一个实施例而容易地说明后述部分条带的结构而导入的概念。所述“虚拟块”是实际上不存在的块,也不发生用于所述“虚拟块”的写入动作。上面提示的stripe 1至stripe 5显示了构成磁盘阵列的磁盘的总个数为4个的示例,在这4个磁盘中,为了区分实际发生记录操作的磁盘与未发生记录操作的块而使用了称之为“虚拟块”的术语。例如,所述{stripe 1:块a、块b、虚拟块、虚拟块}的情形,代表记录了块a和块b的磁盘为第一磁盘及第二磁盘,未发生任何记录的磁盘为第三磁盘及第四磁盘。下面,在本说明书中提示的所述虚拟块应从这种观点解释。
[0089]
所述stripe 1、stripe 3、stripe 4及stripe 6与本发明一个实施例的部分条带相应。根据本发明另一实施例,邻接的2个部分条带也可以相互合并。在本发明中,可以将由2个部分条带合并形成的新条带称为合并条带。例如,可以将彼此邻接的stripe 3及stripe 4合并而再构成为如下[表2]提示的共5个条带。在下[表2]中,stripe 3为合并条带。
[0090]
【表2】
[0091] disk1disk2disk3disk4time1/stripe1ab
‑‑
time2/stripe2barrierbarrierbarrierbarriertime3/stripe3e

cdtime4/stripe4barrierbarrierbarrierbarriertime5/stripe5

fgh
[0092]
不同于此,在假定上例中没有缓存屏障的情况下,上述条带可以如下[表3]所示只由2个条带构成。
[0093]
【表3】
[0094] disk1disk2disk3disk4time1/stripe1abcdtime2/stripe2efgh
[0095]
根据本发明的一个观点,可以提供一种磁盘阵列控制器控制方法,包括:磁盘阵列控制器生成命令序列的步骤;及所述磁盘阵列控制器在确定了所述命令序列中包括的第一
缓存屏障命令的情况下,在将所述命令序列内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成磁盘阵列的任意磁盘之前,将至少一个缓存屏障命令传输给所述任意磁盘的步骤。
[0096]
此时,所述命令序列可以是所述磁盘阵列控制器将从外部的主机装置接收的第一命令序列(cs1)根据所述磁盘阵列控制器的磁盘阵列等级再构成而生成的。
[0097]
此时,所述命令序列可以包括所述磁盘阵列控制器从外部的主机装置接收的第一命令序列(cs1)中包括的数据块及以所述数据块为基础生成的多个代码块。
[0098]
此时,所述命令序列可以是所述磁盘阵列控制器从外部的主机装置接收的。
[0099]
此时,所述传输的步骤可以包括:所述磁盘阵列控制器在将所述第一写入命令传输给构成所述磁盘阵列的任意磁盘之前,构成缓存屏障条带,即由与构成所述磁盘阵列的所有磁盘的个数相同个数的缓存屏障命令构成的条带的步骤。
[0100]
此时,构成所述磁盘阵列的磁盘可以共为n个(n为2以上的大自然数)。而且,所述磁盘阵列控制器控制方法在所述传输的步骤之前,可以还包括:所述磁盘阵列控制器在为了构成一个条带而从所述命令序列内获得在所述命令序列内连续配置的n个写入命令的过程中,在确认了在包括所述n个写入命令的第一命令排列内存在所述第一缓存屏障命令的情况下,构成第一类型的部分条带,即构成只以在所述第一命令排列内配置于所述第一缓存屏障命令之前的写入命令构成的条带的步骤。
[0101]
此时,所述磁盘阵列控制器控制方法在所述构成第一类型的部分条带的步骤之后,可以还包括:将一个以上的缓存屏障命令传输给构成所述磁盘阵列的磁盘的步骤;及对未接收以所述第一类型的部分条带为基础的写入命令的至少一个磁盘,构成第二类型的部分条带,即构成只由包括在所述第一命令排列内配置于所述第一缓存屏障命令的紧下个的一个写入命令的不足n个的写入命令构成的条带的步骤。
[0102]
此时,所述磁盘阵列控制器可以使得将可以(may)连续构成的所述第一类型或所述第二类型的第一部分条带与所述第一类型或所述第二类型的第二部分条带相互合并而构成一个条带,即构成合并条带。
[0103]
此时,所述磁盘阵列控制器可以使得能够构成全条带,即不考虑缓存屏障命令而构成的条带,所述磁盘阵列控制器使得所述全条带中包括的写入命令满足与构成所述磁盘阵列的磁盘对应的既定的第一对应规则,所述磁盘阵列控制器针对所述合并条带中包括的写入命令的总个数与构成所述磁盘阵列的磁盘总个数相同的情形,或所述合并条带中包括的写入命令的总个数与所述全条带中包括的写入命令的总个数相同的情形,使得所述合并条带中包括的写入命令满足与构成所述磁盘阵列的磁盘对应的既定的第二对应规则,所述第一对应规则与所述第二对应规则可以互不相同。
[0104]
此时,所述第一对应规则可以是在向分配了序号的所述磁盘分配多个第一块时,根据主机装置传输所述第一块的顺序而分配的规则,所述第二对应规则可以是在对分配了所述序号的磁盘分配多个第二块时,根据与所述主机装置传输所述第二块的顺序不同的顺序而分配的规则。
[0105]
此时,所述合并条带可以只有在所述第一部分条带中包括的写入命令的个数与所述第二部分条带中包括的写入命令的个数之和为构成所述磁盘阵列的磁盘总个数以下时才构成。
[0106]
此时,构成所述磁盘阵列的磁盘可以共为n个(n为2以上的大自然数)。而且,磁盘阵列控制器控制方法在所述传输的步骤之前,可以还包括:所述磁盘阵列控制器在为了构成一个条带而从所述命令序列内获得在所述命令序列内连续配置的n个写入命令的过程中,在确认了在包括所述n个写入命令的第一命令排列内存在包括所述第一缓存屏障命令的多个缓存屏障命令的情况下,构成只由配置于邻接两个缓存屏障命令之间的写入命令构成的条带的步骤。
[0107]
此时,在所述命令序列中,可以包括所述磁盘阵列控制器从所述第一命令序列中包括的块生成的一个以上的奇偶校验位块。
[0108]
根据本发明另一观点,可以提供一种磁盘阵列控制器,在确认了生成条带所使用的命令序列中包括的第一缓存屏障命令的情况下,使得在将在所述命令序列内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成磁盘阵列的任意磁盘之前,将至少一个缓存屏障命令传输给所述任意磁盘。
[0109]
根据本发明又一观点,可以提供一种计算装置,包括:上述的磁盘阵列控制器;借助于所述磁盘阵列控制器而控制的多个磁盘;及向所述磁盘阵列控制器提供命令序列的主机。
[0110]
根据本发明又一观点,可以提供一种非易失性存储介质,作为磁盘阵列控制器可读的非易失性存储介质,记录有命令集,所述命令集使所述磁盘阵列控制器,在确认了生成条带所使用的命令序列中包括的第一缓存屏障命令的情况下,执行在将在所述命令序列内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成磁盘阵列的任意磁盘之前,将至少一个缓存屏障命令传输给所述任意磁盘的步骤。
[0111]
根据本发明,当磁盘阵列控制器接收了在中间包括缓存屏障命令的多个写入命令时,可以在构成磁盘阵列所有磁盘中,保障根据所述缓存屏障命令而应维持的记录顺序。
附图说明
[0112]
图1是显示本发明一个实施例的磁盘阵列控制器运转方法的概念的图。
[0113]
图2是显示本发明另一实施例的磁盘阵列控制器运转方法的概念的图。
[0114]
图3是显示本发明另一实施例的磁盘阵列控制器运转方法的概念的图。
[0115]
图4是显示本发明又一实施例的磁盘阵列控制器运转方法的概念的图。
[0116]
图5是显示本发明又一实施例的磁盘阵列控制器运转方法的概念的图。
[0117]
图6至图9是用于帮助对本发明一个实施例的合并条带及部分条带的概念的理解的又一示例。
[0118]
图10用于说明在并非磁盘阵列0的其他类型的磁盘阵列中本发明应用的形态。
[0119]
图11是显示根据本发明另一实施例生成缓存屏障条带的方法的图。
[0120]
图12是显示根据本发明一个实施例提供的磁盘阵列控制器控制方法的顺序图。
[0121]
图13是显示根据本发明另一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0122]
图14是显示根据本发明又一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0123]
图15是显示根据本发明又一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0124]
图16是显示根据本发明又一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0125]
图17是显示根据本发明一个实施例提供的计算装置的构成的图。
具体实施方式
[0126]
下面参照附图,说明本发明的实施例。但是,本发明不限定于本说明书中说明的实施例,可以以多种其它形态体现。本说明书中使用的术语用于帮助实施例的理解,并非有意限定本发明的范围。另外,下面使用的单数形态只要语句未明确表现出与其相反的意义,则也包括复数形态。
[0127]
图1是显示本发明一个实施例的磁盘阵列控制器运转方法的概念的图。
[0128]
图1的(a)的第一命令序列(cs1)代表了从主机向磁盘阵列控制器传输的一系列命令。
[0129]
以下在本说明书中,用圆表现的标志代表对圆内包括的文字所指代的数据块的写入命令。例如,包括文字“a”的圆是对数据块a的记录命令。而且,以四边形表现的标志代表缓存屏障命令。
[0130]
在第一命令序列(cs1)中包括一个缓存屏障命令(c1)。
[0131]
图1的(b)的第二命令序列(cs2)是所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图1中,假定了磁盘阵列0,不生成另外的代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)相同。
[0132]
图1的(c)根据本发明一个实施例,显示了磁盘阵列控制器生成由写入命令构成的条带和由缓存屏障命令构成的条带并传递给构成磁盘阵列的各磁盘的方式。
[0133]
首先,磁盘阵列控制器构成由write(a)、write(b)、write(c)、write(d)构成的第一条带(f_stripe 1)。此时,所述第一条带在第一时隙(time slot1)传递给构成磁盘阵列的磁盘。
[0134]
然后,磁盘阵列控制器为了保障在图1(b)中以“c1”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第二缓存屏障条带(cb_stripe 2)。此时,所述第二缓存屏障条带在第二时隙(time slot2)传递给构成磁盘阵列的各磁盘。
[0135]
然后,磁盘阵列控制器构成由write(e)、write(f)、write(g)、write(h)构成的第三条带(f_stripe 3)。此时,所述第三条带在第三时隙(time slot3)传递给构成磁盘阵列的磁盘。
[0136]
然后,磁盘阵列控制器构成由write(i)、write(j)、write(k)、write(l)构成的第四条带(f_stripe 4)。此时,所述第四条带在第四时隙(time slot4)传递给构成磁盘阵列的磁盘。
[0137]
这样一来,可知由所述第一命令序列(cs1)中包括的缓存屏障命令(c1)所想要的数据块间的记录顺序,针对构成磁盘阵列的所有磁盘均被满足。
[0138]
图2是显示本发明另一实施例的磁盘阵列控制器运转方法的概念的图。
[0139]
图2的(a)的第一命令序列(cs1)代表了从主机传输给磁盘阵列控制器的一系列命令。
[0140]
在第一命令序列(cs1)中包括两个缓存屏障命令(c1、c2)。
[0141]
图2的(b)的第二命令序列(cs2)是所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图1中假定了磁盘阵列0,不生成另外的代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)相同。
[0142]
图2的(c)根据本发明一个实施例,显示了磁盘阵列控制器生成由写入命令构成的条带和由缓存屏障命令构成的条带并传递给构成磁盘阵列的各磁盘的方式。
[0143]
首先,磁盘阵列控制器构成由write(a)、write(b)、write(c)、write(d)构成的第一条带(f_stripe 1)。此时,所述第一条带在第一时隙(time slot1)传递给构成磁盘阵列的磁盘。
[0144]
然后,磁盘阵列控制器为了保障基于在图2的(b)中以“c1”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第二缓存屏障条带(cb_stripe 2)。此时,所述第二缓存屏障条带在第二时隙(time slot2)传递给构成磁盘阵列的各磁盘。
[0145]
然后,磁盘阵列控制器构成由write(e)、write(f)、write(g)、write(h)构成的第三条带(f_stripe 3)。此时,所述第三条带在第三时隙(time slot3)传递给构成磁盘阵列的磁盘。
[0146]
然后,磁盘阵列控制器为了保障基于在图2的(b)中以“c2”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第四缓存屏障条带(cb_stripe 4)。此时,所述第四缓存屏障条带在第四时隙(time slot4)传递给构成磁盘阵列的各磁盘。
[0147]
然后,磁盘阵列控制器构成由write(i)、write(j)、write(k)、write(l)构成的第五条带(f_stripe 5)。此时,所述第五条带在第五时隙(time slot5)传递给构成磁盘阵列的磁盘。
[0148]
这样一来,可知由所述第一命令序列(cs1)中包括的缓存屏障命令(c1)所想要的数据块间的记录顺序,针对构成磁盘阵列的所有磁盘均被满足。
[0149]
图3是显示本发明另一实施例的磁盘阵列控制器运转方法的概念的图。
[0150]
图3的(a)的第一命令序列(cs1)代表了从主机传输给磁盘阵列控制器的一系列命令。
[0151]
在第一命令序列(cs1)中包括一个缓存屏障命令(c1)。
[0152]
图3的(b)的第二命令序列(cs2)是所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图1中假定了磁盘阵列0,不生成另外的代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)相同。
[0153]
图3的(c)根据本发明一个实施例显示了磁盘阵列控制器生成由写入命令构成的条带和由缓存屏障命令构成的条带并传递给构成磁盘阵列的各磁盘的方式。
[0154]
首先,磁盘阵列控制器构成由write(a)、write(b)、write(c)、null构成的第一条带(p_stripe 1)。此时,所述第一条带在第一时隙(time slot1)传递给构成磁盘阵列的磁盘。
[0155]
在本实施例中,磁盘阵列控制器如果在汇集个数与构成磁盘阵列的磁盘个数相同的写入命令的过程中发现缓存屏障命令,则只利用在所述缓存屏障命令之前存在的写入命令构成条带。此时,所述条带中包括的写入命令的个数如果少于构成磁盘阵列的磁盘的个数,则在所述条带中产生空闲空间。该空闲空间例如可以用null命令填充。null命令可以意味着不向与所述null命令对应的磁盘发送任何命令。
[0156]
在本说明书的附图中,所述null命令以三角形表现。
[0157]
在图3的示例中,第一条带(p_stripe 1)中包括的写入命令的个数为3,这比构成磁盘阵列的磁盘个数的4小。因此,在所述条带中产生一个空闲空间。可以视为在所述第一条带(p_stripe 1)的空闲空间存在null命令。
[0158]
在本发明中,可以将如此包括个数比构成磁盘阵列的磁盘总个数少的写入命令的条带称为部分条带(partial stripe)。
[0159]
然后,磁盘阵列控制器为了保障基于在图3的(b)中以“c1”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第二缓存屏障条带(cb_stripe 2)。此时,所述第二缓存屏障条带在第二时隙(time slot2)传递给构成磁盘阵列的各磁盘。
[0160]
然后,磁盘阵列控制器构成由null、null、null、write(d)构成的第三条带(p_stripe 3)。此时,所述第三条带在第三时隙(time slot3)传递给构成磁盘阵列的磁盘。第三条带(p_stripe 3)包括于上述部分条带的分类。
[0161]
然后,磁盘阵列控制器构成由write(e)、write(f)、write(g)、write(h)构成的第四条带(f_stripe 4)。此时,所述第四条带在第四时隙(time slot4)传递给构成磁盘阵列的磁盘。在本发明中,将如此包括个数与构成磁盘阵列的磁盘总个数相同的写入命令的条带称为全条带(full stripe)。所述全条带与以后说明的合并条带相区分。
[0162]
然后,磁盘阵列控制器构成由write(i)、write(j)、write(k)、write(l)构成的第五条带(f_stripe 5)。此时,所述第五条带在第五时隙(time slot5)传递给构成磁盘阵列的磁盘。
[0163]
这样一来,可知由所述第一命令序列(cs1)中包括的缓存屏障命令(c1)所想要的数据块间的记录顺序,针对构成磁盘阵列的所有磁盘均被满足。
[0164]
图4是显示本发明又一实施例的磁盘阵列控制器运转方法的概念的图。
[0165]
图4的(a)的第一命令序列(cs1)代表了从主机传输给磁盘阵列控制器的一系列命令。
[0166]
在第一命令序列(cs1)中包括两个缓存屏障命令(c1、c2)。
[0167]
图4的(b)的第二命令序列(cs2)是所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图1中假定了磁盘阵列0,不生成另外的代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)相同。
[0168]
图4的(c)根据本发明一个实施例,显示了磁盘阵列控制器生成由写入命令构成的条带和由缓存屏障命令构成的条带并传递给构成磁盘阵列的各磁盘的方式。
[0169]
首先,磁盘阵列控制器构成由write(a)、write(b)、write(c)、null构成的第一条带(p_stripe 1)。此时,所述第一条带在第一时隙(time slot1)传递给构成磁盘阵列的磁盘。第一条带(p_stripe 1)为上述的部分条带。
[0170]
然后,磁盘阵列控制器为了保障基于在图4的(b)中以“c1”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第二缓存屏障条带(cb_stripe 2)。此时,所述第二缓存屏障条带在第二时隙(time slot2)传递给构成磁盘阵列的各磁盘。
[0171]
然后,磁盘阵列控制器构成由null、null、null、write(d)构成的第三条带(p_stripe 3)。此时,所述第三条带在第三时隙(time slot3)传递给构成磁盘阵列的磁盘。第
三条带(p_stripe 3)为上述的部分条带。
[0172]
然后,磁盘阵列控制器构成由write(e)、null、null、null构成的第四条带(p_stripe 4)。此时,所述第四条带在第四时隙(time slot4)传递给构成磁盘阵列的磁盘。第四条带(p_stripe 4)为上述的部分条带。
[0173]
第四条带(p_stripe 4)由所述部分条带构成的理由如下。即,磁盘阵列控制器将所述第三条带(p_stripe 3)传输给磁盘后,磁盘阵列控制器要再次构成包括新写入命令的新条带。此时,所述磁盘阵列控制器在汇集个数与构成磁盘阵列的磁盘个数相同的写入命令的过程中,发现了新缓存屏障命令(c2)。因此,此时,在本发明的实施例中,只利用在所述缓存屏障命令(c2)之前存在的写入命令构成条带。此时,所述条带中包括的写入命令的个数如果少于构成磁盘阵列的磁盘的个数,则在所述条带中产生空闲空间。该空闲空间例如用null命令填充。在图4的实施例中,第四条带(p_stripe 4)中包括的写入命令(write(e))的个数为1,这比构成磁盘阵列的磁盘个数的4小。因此,在所述第四条带(p_stripe 4)中产生三个空闲空间。可以视为在所述这三个空闲空间存在null命令。
[0174]
然后,磁盘阵列控制器为了保障基于图4的(b)中以“c2”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第五缓存屏障条带(cb_stripe 5)。此时,所述第五缓存屏障条带在第五时隙(time slot5)传递给构成磁盘阵列的各磁盘。
[0175]
然后,磁盘阵列控制器构成由write(f)、write(g)、write(h)、write(i)构成的第六条带(f_stripe 6)。此时,所述第六条带在第六时隙(time slot6)传递给构成磁盘阵列的磁盘。所述第六条带(f_stripe 6)为上述的全条带。
[0176]
然后,磁盘阵列控制器构成由write(j)、write(k)、write(l)、write(m)构成的第七条带(f_stripe 7)。此时,所述第七条带在第七时隙(time slot7)传递给构成磁盘阵列的磁盘。其中,write(m)的“m”代表应在所述块l之后记录的块m。
[0177]
这样一来,可知由所述第一命令序列(cs1)中包括的缓存屏障命令(c1)所想要的数据块间的记录顺序,针对构成磁盘阵列的所有磁盘均被满足。
[0178]
图5是显示本发明又一实施例的磁盘阵列控制器运转方法的概念的图。
[0179]
图5作为从图4变形的实施例,提示了本发明中定义的合并条带(merged stripe)的概念。一个所述合并条带是将连续的两个部分条带合成一个而生成的条带。
[0180]
图5的(a)的第一命令序列(cs1)代表了从主机传输给磁盘阵列控制器的一系列命令。
[0181]
第一命令序列(cs1)中包括两个缓存屏障命令(c1、c2)。
[0182]
图5的(b)的第二命令序列(cs2)是由所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图1中假定了磁盘阵列0,不生成另外的代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)相同。
[0183]
图5的(c)根据本发明一个实施例,显示了磁盘阵列控制器生成由写入命令构成的条带和由缓存屏障命令构成的条带并传递给构成磁盘阵列的各磁盘的方式。
[0184]
首先,磁盘阵列控制器构成由write(a)、write(b)、write(c)、null构成的第一条带(p_stripe 1)。此时,所述第一条带在第一时隙(time slot1)传递给构成磁盘阵列的磁盘。第一条带(p_stripe 1)为上述的部分条带。
[0185]
然后,磁盘阵列控制器为了保障基于图5的(b)中以“c1”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第二缓存屏障条带(cb_stripe 2)。此时,所述第二缓存屏障条带在第二时隙(time slot2)传递给构成磁盘阵列的各磁盘。
[0186]
然后,磁盘阵列控制器构成由write(e)、null、null、write(d)构成的第三条带(m_stripe 3)。此时,所述第三条带在第三时隙(time slot3)传递给构成磁盘阵列的磁盘。
[0187]
所述第三条带(m_stripe 3)是将图4所示的第三条带(p_stripe 3)与图4所示的第四条带(p_stripe 4)再构成为一个条带。在本发明中,将如此合并两个连续的部分条带而形成的如图5的所述第三条带(m_stripe 3)所示的条带称为合并条带。
[0188]
图5的所述第三条带(m_stripe 3)为所述合并条带。
[0189]
然后,磁盘阵列控制器为了保障基于图5的(b)中以“c2”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第四缓存屏障条带(cb_stripe 4)。此时,所述第四缓存屏障条带在第四时隙(time slot4)传递给构成磁盘阵列的各磁盘。
[0190]
然后,磁盘阵列控制器构成由write(f)、write(g)、write(h)、write(i)构成的第五条带(f_stripe 5)。此时,所述第五条带在第五时隙(time slot5)传递给构成磁盘阵列的磁盘。所述第五条带(f_stripe 5)为上述的全条带。
[0191]
然后,磁盘阵列控制器构成由write(j)、write(k)、write(l)、write(m)构成的第六条带(f_stripe 6)。此时,所述第六条带在第六时隙(time slot6)传递给构成磁盘阵列的磁盘。
[0192]
这样一来,可知由所述第一命令序列(cs1)中包括的缓存屏障命令(c1)所想要的数据块间的记录顺序,针对构成磁盘阵列的所有磁盘均被满足。
[0193]
在图5的(c)中,尤其还用箭头标识了第二命令序列(cs2)中包括的块的配置顺序与各条带中针对各磁盘的对应关系。可以轻松理解,根据图5的(c)中提示的箭头的行进方向而显示的块的顺序,与图5的(b)中提示的块的排列顺序对应。
[0194]
图6至图9是用于帮助理解本发明一个实施例的合并条带及部分条带的概念的又一示例。
[0195]
图6的(a)及图7的(a)所示的第一命令序列(cs1)代表从主机传输给磁盘阵列控制器的一系列命令。
[0196]
在第一命令序列(cs1)中包括两个缓存屏障命令(c1、c2)。
[0197]
图6的(b)及图7的(b)所示的第二命令序列(cs2)是所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图1中假定了磁盘阵列0,不生成另外的代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)相同。
[0198]
从与图1至图5相关的本说明书,可以明白地理解图6及图9图示的内容。
[0199]
图6是将包括write(d)的条带(p_stripe 3)构成为所述部分条带,另外,将包括write(e)、write(f)、write(g)的条带(p_stripe 4)也构成为所述部分条带的示例。
[0200]
图7作为从图6变形的实施例,是将所述图6的所述部分条带(p_stripe 3)与图6的所述部分条带(p_stripe 4)相互合并而再构成为合并条带(m_stripe3)的示例。
[0201]
图8是在第三时隙(time slot 3)和第四时隙(time slot 4)接连构成有部分条带
的示例。在图8的示例中,所述第三时隙的第三条带(p_stripe 3)中包括的写入块个数(2个)与第四时隙的第四条带(p_stripe 4)中包括的写入块个数(3个)之和比构成磁盘阵列的磁盘总个数多。因此,可以单纯组合第三条带(p_stripe 3)与第四条带(p_stripe 4)而再构成一个合并条带。
[0202]
但是,就图8而言,可以根据需要,将图8所示的第三时隙(time slot 3)的write(c)、write(d)与图8所示的第四时隙(time slot 4)的write(e)、write(f)合并而构成一个合并条带。而且,也可以将图8所示的第四时隙(time slot 4)的write(g)单独构成为部分条带。这种构成可以在有基于具体实施例的实惠时采纳。
[0203]
图9显示出在第三时隙(time slot 3)构成有第三部分条带(p_stripe 3)、在第四时隙(time slot 4)构成有第四缓存屏障条带(cb_stripe 4)、在第五时隙(time slot 5)构成有第五部分条带(p_stripe 5)的示例。
[0204]
现在对本发明中定义的合并条带的特性进行详细说明。
[0205]
首先,在图5的第三时隙(time slot 3)示例性图示的合并条带中包括的写入命令个数小于构成磁盘阵列的磁盘的总个数。
[0206]
与此相比,在图7的第三时隙(time slot 3)示例性图示的合并条带包括的写入命令个数与构成磁盘阵列的磁盘的总个数相同。
[0207]
因此,一个合并条带中包括的写入命令的个数不需要必须与构成磁盘阵列的磁盘的总个数相同,而且,也不需要小于所述总个数。
[0208]
图5和图7提示的合并条带的共同特征如下。
[0209]
首先,可以假定在上述全条带准备一个的状态下,磁盘阵列控制器将所述全条带中包括的写入命令分配给磁盘的第一对应规则满足如下。
[0210]
即,例如,在图5的第五时隙(time slot 5)提示的作为一个全条带的第五条带(f_stripe 5)中包括的写入命令为write(f)、write(g)、write(h)、write(i)。所述第五条带(f_stripe 5)如图5的(b)所示,是磁盘阵列控制器以从第一命令序列(cs1)再构成的第二命令序列(cs2)为基础生成的。此时,在所述第二命令序列(cs2)内,该写入命令排列的顺序为write(f)

write(g)

write(h)

write(i)。此时,在作为全条带的所述第五条带(f_stripe 5)中包括的写入命令,根据所述第二命令序列(cs2)内的排列顺序,write(f)、write(g)、write(h)、write(i)分别分配给磁盘1、磁盘2、磁盘3、磁盘4。
[0211]
但是,将在图5及图7中提示的各合并条带中包括的写入命令分配给磁盘的第二对应规则,不满足用于全条带的所述第一对应规则。
[0212]
例如,在图7中,构成合并条带(m_stripe 3)的4个写入命令为write(d)、write(e)、write(f)、write(g)。此时,如图7的(b)所示,在磁盘阵列控制器再构成的第二命令序列(cs2)内,该写入命令排列的顺序为write(d)

write(e)

write(f)

write(g)。可是,所述合并条带(m_stripe3)中包括的所述写入命令write(d)、write(e)、write(f)、write(g)分别分配给了磁盘4、磁盘1、磁盘2、磁盘3。不同于此,如果在图7所示的第三时隙构成的条带是所述全条带,则该全条带中包括的所述写入命令根据所述第一对应规则,write(d)、write(e)、write(f)、write(g)分别分配给磁盘1、磁盘2、磁盘3、磁盘4。
[0213]
作为另一示例,在图5中,构成合并条带(m_stripe 3)的2个写入命令为write(d)、write(e)。此时,如图5的(b)所示,在磁盘阵列控制器再构成的第二命令序列(cs2)内,该写
入命令排列的顺序为write(d)

write(e)。而且,所述合并条带(m_stripe 3)中包括的所述写入命令write(d)、write(e)分别分配给磁盘4、磁盘1。
[0214]
即,上述第一对应规则是针对构成磁盘阵列的分配了多个序号的磁盘,按主机传输的顺序来分配块的规则。与此相比,上述第二对应规则是针对构成磁盘阵列的分配了多个序号的磁盘,按与主机传输的顺序不同的顺序分配块的规则。
[0215]
如上所述,本发明中定义的合并条带至少具有如下三种特征。
[0216]
第一,合并条带是将连续的两个部分条带再构成为一个条带。
[0217]
第二,当连续的两个部分条带中包括的写入命令的总个数大于构成磁盘阵列的磁盘的总个数时,所述两个部分条带不单纯地只再构成为1个合并条带。
[0218]
第三,

在不存在使磁盘阵列控制器不考虑缓存屏障命令而构成的全条带中包括的写入命令对应于构成磁盘阵列的磁盘的第一对应规则的情况下,以及

在所述磁盘阵列控制器构成的合并条带中包括的写入命令总个数与构成磁盘阵列的磁盘总个数相同的情况下,或在合并条带中包括的写入命令的总个数与全条带中包括的写入命令总个数相同的情况下,

使所述合并条带中包括的写入命令对应于构成磁盘阵列的磁盘的第二对应规则不满足所述第一对应规则。
[0219]
例如,在图7的(c)所示的合并条带(m_stripe 3)中,磁盘1至磁盘4的块的记录顺序为e、f、g、d,但如果记录为全条带的形态,则其顺序变更为作为从主机到达磁盘阵列控制器的顺序的d、e、f、g。
[0220]
另一方面,根据图7的(c)所示的合并条带(m_stripe 3),在构成磁盘阵列的所有磁盘中记录有实际块,但根据图5的(c)所示的合并条带(m_stripe3),在构成磁盘阵列的一部分磁盘(disk2、disk3)中不实际记录块。从这点而言,图5的(c)所示的合并条带(m_stripe 3)可以视为既是合并条带,也依然是部分条带。而且与此相比,图7的(c)所示的合并条带(m_stripe 3)可以视为既是合并条带,也是一种全条带。
[0221]
下面说明发生本发明提出的部分条带的情形。
[0222]
第一,第一类型的部分条带可以在磁盘阵列控制器汇集个数与构成磁盘阵列的磁盘个数相同的写入命令的过程中发现新缓存屏障命令时发生。关于此的示例可以在图3的第一时隙、图4的第一时隙、图4的第四时隙、图6的第一时隙、图6的第四时隙、图8的第四时隙及图9的第五时隙确认。
[0223]
第二,第二类型的部分条带可以在磁盘阵列控制器连续生成所述第一类型的部分条带及一个缓存屏障条带之后生成。关于此的示例可以在图3的第三时隙、图4的第三时隙、图6的第三时隙、图8的第三时隙、图9的第三时隙确认。
[0224]
在后述的图10中,提示了磁盘阵列控制器连续生成全条带及一个缓存屏障条带的情况下,可以确认,在这种情况下,可以不必须紧随所述缓存屏障条带之后生成所述第二类型的部分条带。
[0225]
另一方面,根据实施例,在所述第二类型的部分条带及所述第二类型的部分条带之后连续发生的所述第一类型的部分条带也可以再构成为1个所述合并条带。
[0226]
图10用于说明在并非磁盘阵列0的其他类型的磁盘阵列中应用本发明的形态。
[0227]
图10图示了例如由4个磁盘构成的磁盘阵列5的示例。
[0228]
图10的(a)的第一命令序列(cs1)代表了从主机传输给磁盘阵列控制器的一系列
命令。
[0229]
在第一命令序列(cs1)中包括三个缓存屏障命令(c1、c2、c3)。
[0230]
图10的(b)的第二命令序列(cs2)是所述磁盘阵列控制器再构成所述第一命令序列(cs1)而生成的。在图10中假定了磁盘阵列5,每3个数据块生成1个代码块。因此,所述第二命令序列(cs2)与所述第一命令序列(cs1)不同。
[0231]
在代码块可以配置于紧靠缓存屏障命令之前或之后的情况下,优选地可以配置于之前。
[0232]
在图10的(b)中,磁盘阵列控制器生成的代码块(p1、p2、p3)显示为六边形。
[0233]
图10的(c)根据本发明一个实施例,显示了磁盘阵列控制器生成由写入命令构成的条带和由缓存屏障命令构成的条带并传递给构成磁盘阵列的各磁盘的方式。
[0234]
在磁盘阵列5中,包括写入块的条带内各块的磁盘分配顺序不同于磁盘阵列0中包括写入块的条带内各块的磁盘分配顺序。图10反映并提示了这种差异。
[0235]
首先,磁盘阵列控制器构成由write(a)、write(b)、write(c)、write(p1)构成的第一条带(f_stripe 1)。此时,所述第一条带在第一时隙(time slot1)传递给构成磁盘阵列的磁盘。第一条带(f_stripe 1)为上述的全条带。
[0236]
然后,磁盘阵列控制器为了保障基于图10的(b)中以“c1”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第二缓存屏障条带(cb_stripe 2)。此时,所述第二缓存屏障条带在第二时隙(time slot2)传递给构成磁盘阵列的各磁盘。
[0237]
然后,磁盘阵列控制器构成由write(d)、write(e)、write(f)、write(p2)构成的第三条带(f_stripe 3)。此时,所述第三条带在第三时隙(time slot3)传递给构成磁盘阵列的磁盘。所述第三条带(f_stripe 3)为上述的全条带。
[0238]
然后,磁盘阵列控制器构成由write(g)、null、null、null构成的第四条带(p_stripe 4)。此时,所述第四条带在第四时隙(time slot 4)传递给构成磁盘阵列的磁盘。所述第四条带(p_stripe 4)为上述的部分条带。
[0239]
然后,磁盘阵列控制器为了保障基于图10的(b)中以“c2”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第五缓存屏障条带(cb_stripe 5)。此时,所述第五缓存屏障条带在第五时隙(time slot 5)传递给构成磁盘阵列的各磁盘。
[0240]
然后,磁盘阵列控制器构成由null、write(h)、null、null构成的第六条带(p_stripe 6)。此时,所述第六条带在第六时隙(time slot 6)传递给构成磁盘阵列的磁盘。所述第六条带(p_stripe 6)为上述的部分条带。
[0241]
然后,磁盘阵列控制器为了保障基于图10的(b)中以“c3”表现的缓存屏障命令的块间记录顺序,构成由个数与构成磁盘阵列的磁盘个数相同的缓存屏障命令构成的第七缓存屏障条带(cb_stripe 7)。此时,所述第七缓存屏障条带在第七时隙(time slot 7)传递给构成磁盘阵列的各磁盘。
[0242]
然后,磁盘阵列控制器构成由write(i)、write(p3)、write(j)、write(k)构成的第八条带(f_stripe 8)。此时,所述第八条带在第八时隙(time slot1)传递给构成磁盘阵列的磁盘。第八条带(f_stripe 8)为上述的全条带。
[0243]
通过图10图示的示例可以理解,例如对于诸如磁盘阵列0、磁盘阵列3、磁盘阵列4、磁盘阵列5、磁盘阵列6、磁盘阵列0 1、磁盘阵列10、磁盘阵列50、磁盘阵列1e、磁盘阵列1.5的多样的任意磁盘阵列,也可以应用本发明。这是因为,本发明可以根据给定的磁盘阵列等级,由磁盘阵列控制器将从主机接受提供的第一命令序列(cs1)再构成为第二命令序列(cs2),所述第二命令序列(cs2)中包括的写入命令不管是对数据块的写入命令还是对代码块的写入命令,均可应用本发明。
[0244]
图10的(c)中,尤其还用箭头标识出第二命令序列(cs2)中包括的块的配置顺序与各条带中各磁盘的对应关系。可以轻松理解,根据图10的(c)中给出的箭头行进方向而显示的块的顺序,对应于图10的(b)中提示的块的排列顺序。
[0245]
图11是显示根据本发明另一实施例生成缓存屏障条带的方法的图。
[0246]
图11是从图4变形的实施例。
[0247]
如果只说明图11与图4的差异,差异在于,在图11的(c)中,在第二时隙(time slot 2)构成的第二缓存屏障条带(p_cb_stripe 2)中,不存在用于向一部分磁盘,即,向第二磁盘(disk2)及第三磁盘(disk3)提供的缓存屏障命令。即,根据第二缓存屏障条带(p_cb_stripe 2),不向第二磁盘(disk2)及第三磁盘(disk3)传递任何命令。在本说明书中,可以将这种形态的缓存屏障条带称为部分缓存屏障条带。
[0248]
图11所示的第二缓存屏障条带(p_cb_stripe 2),即使不借助于第二缓存屏障条带(p_cb_stripe 2)而向第二磁盘(disk2)及第三磁盘(disk3)传递缓存屏障命令,但在预测为将借助于在向第二磁盘(disk2)及第三磁盘(disk3)提供新的写入命令(例如:write(g)、write(h))之前且在第二缓存屏障条带(p_cb_stripe 2)之后构成的另一缓存屏障条带(例如:cb_stripe 5)而向第二磁盘(disk2)及第三磁盘(disk3)传递另一缓存屏障命令的情况下,可以有效地工作。
[0249]
图12是显示根据本发明一个实施例提供的磁盘阵列控制器控制方法的顺序图。
[0250]
在步骤(s100)中,磁盘阵列控制器可以生成命令序列。
[0251]
在步骤(s200)中,在所述磁盘阵列控制器确认所述命令序列中包括的第一缓存屏障命令的情况下,在将所述命令序列内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成磁盘阵列的任意磁盘之前,可以将至少一个缓存屏障命令传输给所述任意磁盘。
[0252]
图13是显示根据本发明另一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0253]
在步骤(s100)中,磁盘阵列控制器可以生成命令序列。
[0254]
在步骤(s211)中,在确认了所述命令序列中包括的第一缓存屏障命令的情况下,所述磁盘阵列控制器可以构成缓存屏障条带,所述缓存屏障条带为由个数与构成磁盘阵列的所有磁盘个数相同的缓存屏障命令构成的条带。
[0255]
在步骤(s212)中,所述磁盘阵列控制器传输所述缓存屏障条带,从而可以在将所述命令序列内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成所述磁盘阵列的任意磁盘之前,将至少一个缓存屏障命令传输给所述任意磁盘。
[0256]
图14是显示根据本发明又一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0257]
在步骤(s100)中,磁盘阵列控制器可以生成命令序列。
[0258]
在步骤(s221)中,所述磁盘阵列控制器在为了构成一个条带而从所述命令序列内
获得在所述命令序列内连续配置的n个写入命令的过程中,在确认了在包括所述n个写入命令的第一命令排列内存在所述第一缓存屏障命令的情况下,构成第一类型的部分条带,所述第一类型的部分条带是只以在所述第一命令排列内配置于所述第一缓存屏障命令之前的写入命令构成的条带。
[0259]
在步骤(s222)中,所述磁盘阵列控制器可以传输所述第一类型的部分条带。
[0260]
在步骤(s223)中,所述磁盘阵列控制器可以构成缓存屏障条带,所述缓存屏障条带是由个数与构成磁盘阵列的所有磁盘个数相同的缓存屏障命令构成的条带。
[0261]
在步骤(s224)中,所述磁盘阵列控制器传输所述缓存屏障条带,从而可以在将所述命令序列内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成所述磁盘阵列的任意磁盘之前,将至少一个缓存屏障命令传输给所述任意磁盘。
[0262]
在步骤(s225)中,所述磁盘阵列控制器可以对未接收以所述第一类型的部分条带为基础的写入命令的至少一个磁盘,构成第二类型的部分条带,所述第二类型的部分条带是只由包括在所述第一命令排列内配置于所述第一缓存屏障命令的紧下个的一个写入命令的不足n个的写入命令构成的条带。
[0263]
在步骤(s226)中,所述磁盘阵列控制器可以传输所述第二类型的部分条带。
[0264]
图15是显示根据本发明又一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0265]
在步骤(s100)中,磁盘阵列控制器可以生成命令序列。
[0266]
在步骤(s231)中,所述磁盘阵列控制器在为了构成一个条带而从所述命令序列内获得在所述命令序列内连续配置的n个写入命令的过程中,在确认了在包括所述n个写入命令的第一命令排列内存在包括所述第一缓存屏障命令及与所述第一缓存屏障命令邻接的第二缓存屏障命令的多个缓存屏障命令的情况下,可以构成第一类型的部分条带并传输所述第一类型的部分条带,所述第一类型的部分条带是只由所述第一命令排列内配置于所述第一缓存屏障命令之前的写入命令构成的条带。
[0267]
在步骤(s232)中,所述磁盘阵列控制器可以构成缓存屏障条带并传输所述缓存屏障条带,所述缓存屏障条带是由个数与构成磁盘阵列的所有磁盘个数相同的缓存屏障命令构成的条带。
[0268]
在步骤(s233)中,所述磁盘阵列控制器可以构成第二类型的部分条带并传输第二类型的部分条带,所述第二类型的部分条带是只由配置于所述第一缓存屏障命令与所述第二缓存屏障命令之间的不足n个的写入命令构成的条带。
[0269]
在步骤(s234)中,所述磁盘阵列控制器可以构成缓存屏障条带并传输缓存屏障条带,所述缓存屏障条带是由个数与构成磁盘阵列的所有磁盘个数相同的缓存屏障命令构成的条带。
[0270]
在步骤(s235)中,所述磁盘阵列控制器可以构成又一第二类型的部分条带并传输所述又一第二类型的部分条带,所述又一第二类型的部分条带是由包括在所述第一命令排列内配置于所述第二缓存屏障命令的紧下个的一个写入命令的不足n个的写入命令构成的条带。
[0271]
图16是显示根据本发明又一实施例提供的磁盘阵列控制器控制方法的顺序图。
[0272]
在步骤(s100)中,磁盘阵列控制器可以生成命令序列。
[0273]
在步骤(s241)中,所述磁盘阵列控制器在为了构成一个条带而从所述命令序列内
获得在所述命令序列内连续配置的n个写入命令的过程中,在确认了在包括所述n个写入命令的第一命令排列内存在包括所述第一缓存屏障命令及与所述第一缓存屏障命令邻接的第二缓存屏障命令的多个缓存屏障命令的情况下,可以构成第一类型的部分条带并传输所述第一类型的部分条带,所述第一类型的部分条带是只由在所述第一命令排列内配置于所述第一缓存屏障命令之前的写入命令构成的条带。
[0274]
在步骤(s242)中,所述磁盘阵列控制器可以构成缓存屏障条带并传输所述缓存屏障条带,所述缓存屏障条带是由个数与构成磁盘阵列的所有磁盘个数相同的缓存屏障命令构成的条带。
[0275]
在步骤(s243)中,所述磁盘阵列控制器可以构成第二类型的部分条带{1}并传输所述第二类型的部分条带{1},所述第二类型的部分条带{1}是只由包括配置于所述第一缓存屏障命令的紧下个的一个写入命令的不足n个的写入命令构成的条带。
[0276]
在步骤(s244)中,所述磁盘阵列控制器可以构成另一第二类型的部分条带{2}并传输所述另一第二类型的部分条带{2},所述另一第二类型的部分条带{2}是只由包括配置于紧靠所述第二缓存屏障命令之前的一个写入命令的不足n个的写入命令构成的条带。
[0277]
在步骤(s245)中,所述磁盘阵列控制器可以构成缓存屏障条带并传输所述缓存屏障条带,所述缓存屏障条带是由个数与构成磁盘阵列的所有磁盘个数相同的缓存屏障命令构成的条带。
[0278]
在步骤(s246)中,所述磁盘阵列控制器可以构成又一第二类型的部分条带{3}并传输所述又一第二类型的部分条带{3},所述又一第二类型的部分条带{3}是只由包括在所述第一命令排列内配置于所述第二缓存屏障命令的紧下个的一个写入命令的不足n个的写入命令构成的条带。
[0279]
在步骤(s243)、步骤(s244)及步骤(s246)中提示的所述第二类型的部分条带{1}、所述第二类型的部分条带{2}及所述第二类型的部分条带{3}是互不相同的部分条带。
[0280]
图17是显示根据本发明一个实施例提供的计算装置的构成的图。
[0281]
计算装置1可以包括主机10及磁盘阵列存储装置20。
[0282]
磁盘阵列存储装置20可以包括磁盘阵列控制器210及多个磁盘221、222、223、224。
[0283]
磁盘阵列控制器210可以包括命令序列再构成部211及条带构成部212。
[0284]
主机10可以将第一命令序列(cs1)传输给磁盘阵列控制器210。
[0285]
命令序列再构成部211可以根据给定的磁盘阵列政策,再构成第一命令序列(cs1),生成再构成的第二命令序列(cs2)。
[0286]
条带构成部212可以从第二命令序列(cs2)生成条带。
[0287]
基于生成的条带的命令可以传递给各个磁盘221、222、223、224。
[0288]
可以使得磁盘阵列控制器210在确认了生成条带所使用的第二命令序列(cs2)中包括的第一缓存屏障命令的情况下,在将所述第二命令序列(cs2)内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成磁盘阵列的任意磁盘221、222、223或224之前,将至少一个缓存屏障命令传输给所述任意磁盘221、222、223或224。
[0289]
另外,根据本发明一个实施例,可以提供一种磁盘阵列控制器210可读的非易失性存储介质。在所述非易失性存储介质中记录了命令集,所述命令集使所述磁盘阵列控制器210在确认了生成条带所使用的第二命令序列(cs2)中包括的第一缓存屏障命令的情况下,
在将所述第二命令序列(cs2)内配置于所述第一缓存屏障命令之后的第一写入命令传输给构成磁盘阵列的任意磁盘221、222、223或224之前,执行将至少一个缓存屏障命令传输给所述任意磁盘221、222、223或224的步骤。
[0290]
所述非易失性存储介质例如可以是诸如附属于磁盘阵列存储装置20的rom(只读存储器)或快闪存储器的存储装置。或者,所述非易失性存储介质也可以是诸如usb的便携存储器。另外,所述非易失性存储介质也可以是所述计算装置1可连接的服务器访问的诸如hdd(硬盘驱动器)或ssd(固态硬盘)的装置。
[0291]
利用所述本发明的实施例,本发明所属技术领域的技术人员在不超出本发明的本质特性的范围内,可以容易地实施多样的变形及修订。权利要求书的各权利要求项的内容在能够通过本说明书而理解的范围内,可以结合于无引用关系的其它权利要求要求项。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献