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

存储系统和数据管理方法与流程

2022-03-01 21:41:33 来源:中国专利 TAG:


1.本发明涉及控制器间的通信。


背景技术:

2.在要求关于对数据的访问的处理性能的存储系统中,通过向多个控制器分散处理而实现性能提高。上述的存储系统中,为了防止向特定的控制器的负荷集中引起的性能下降,且最大限度地充分利用控制器资源,需要将负荷平均化。另外,为了防止访问处理中的通讯开销的增大,尽可能排除控制器间的处理的依赖关系,且需要在各控制器的内部结束访问处理。
3.因此,在具有多个控制器的存储系统中,需要首先相对于各控制器,例如如逻辑单元(lu)那样,以访问处理成为彼此非依赖的单位(以下统称并记载为lu)分配访问处理,以使各控制器的负荷平均。lu被识别为独立于作为访问源的主机的器件、存储区域,因此,可相对于各lu独立地执行访问处理。即,通过将执行各lu的访问处理的控制器固定成一个,能够避免控制器间的通信产生的开销。
4.另外,除了lu的访问处理之外,还需要各控制器管理(数据的写入和数据的排序)的存储区域的分离。特别是在日志结构那样动态地配置数据的存储系统中,在从多个控制器向共享的存储区域保存数据的情况下,产生伴随排他控制的控制器间的通信。因此,通过将各控制器进行写入的存储区域分离,不进行控制器间的排他控制,就能够进行数据的动态配置。
5.对于这一点,专利文献1中公开有一种方法,关于构成存储器的多个控制器可共享的存储区域,相对于各控制器进行管理、使用的存储区域的分配,以对存储区域的各部分进行访问的控制器成为单一的方式,避免来自多个控制器的存储区域的共享,由此避免控制器间的通信引起的性能下降。除此之外,专利文献1中还公开有一种方法,在具有多个控制器的存储器中,通过相对于各控制器的管理、使用的存储区域的分配的变更以及控制器间的lu的访问处理的转移,对增设的存储器的控制器分配处理。
6.现有技术文献
7.专利文献
8.专利文献1:国际公开第2014/147657号


技术实现要素:

9.发明所要解决的问题
10.在访问负荷变动的存储系统中,为了维持控制器间的负荷被平均化的状态,产生与访问负荷的变动相应的访问处理的分配的变更。在以lu为单位分配访问处理的情况下,需要低负荷的控制器从高负荷的控制器交接lu的访问处理。此时,在lu的访问处理转移后,维持尽可能排除lu的访问处理和存储区域管理中的控制器间的处理的依赖关系的状态,并将通讯开销最小化也是不可缺少的。
11.另一方面,在控制器间转移了lu的访问处理的情况下,随着进行lu的访问处理的控制器和进行存储区域管理的控制器的分离,产生控制器间的处理的依赖关系。为了解除该依赖关系,需要将lu使用的存储区域管理的权限一并在控制器间转移。
12.但是,在转移源的控制器进行访问处理的lu的数据混合存在于存储区域的情况下,存储区域管理的权限的转移变得困难。例如,以防止存储介质中使用的ssd(solid state drive,固态硬盘)的性能下降、成为寿命消耗的原因的随机写(write)为目的,在日志结构的存储区域管理中,需要将相对于各lu的写数据收集于同一存储区域并连续地保存。另外,在存储系统具有重复排除功能的情况下,为了提高数据减少的效果且实现容量效率的提高,要求lu间的数据的重复排除。此时,多个lu为了共享数据,需要参考同一存储区域。因此,通过lu的访问处理的转移,必然产生控制器间的处理的依赖关系。
13.即,多个控制器共享存储区域的存储系统中的课题在于,对于被共享的存储区域内的成为管理、分配的单位的各部分,以混合存在的状态保存多个lu的数据,由此,伴随lu的访问处理的转移而产生控制器间的处理的依赖关系而需要大量的通信。在日志结构那样动态地配置数据的存储区域管理中,为了lu的访问处理中的数据配置的决定、变更,产生控制器间的通信和排他控制,成为性能下降的原因。另外,进行存储区域管理的控制器需要进行垃圾回收、碎片整理(以下将它们统称并记载为gc),并进行被保存的数据的排序。伴随该排序,从管理存储区域的控制器产生排序后的数据配置信息对进行lu的访问处理的控制器的通知和排他控制,而成为性能下降的原因。
14.关于这一点,专利文献1中,以各lu的数据被分离地保存于彼此不同的存储区域为前提,未假定与共享存储区域的lu相关的访问处理的转移。即,专利文献1中未公开如下方法,在存储器中进行日志结构的存储区域管理和数据的重复排除的情况下,将lu的访问处理在控制器间转移。
15.本发明是考虑到以上的点而研发的,提出可尽可能排除控制器间的处理的依赖关系的存储系统等。
16.用于解决问题的技术方案
17.为了解决上述的问题,本发明中提供一种存储系统,包括一个以上的存储介质和对主机提供存储功能的多个控制器,所述多个控制器共享所述存储介质的存储区域,用于进行数据的写入和数据的排序的所述存储区域被分配给各控制器,各控制器将对被分配给控制器的逻辑区域的数据进行访问处理的权限在控制器间转移,对于由于将所述访问处理的权限从第一控制器转移至第二控制器而存在与多个控制器的逻辑区域相关的数据的第一存储区域,所述第一控制器和所述第二控制器,将关于write请求的更新后数据写入被分配给本控制器的存储区域,并删除所述第一存储区域的更新前数据,在对数据进行排序的排序处理中,一边交接所述第一存储区域的分配,一边将本控制器具有访问处理的权限的所述第一存储区域的数据转移至分配给本控制器的其它存储区域。
18.在上述结构中,一边交接第一存储区域的分配,一边将本控制器具有访问处理的权限的第一存储区域的数据转移至分配给本控制器的其它的存储区域。因此,在控制器间的访问处理的权限的转移中,即使在各访问处理的对象的数据混合存在于存储区域内的情况下,也能够实现控制器间的处理的依赖关系的降低。其结果,能够实现存储系统中的控制器的增设带来的性能的提高、控制器资源的利用效率的提高等。
19.发明效果
20.根据本发明,能够适当地进行控制器间的通信。所述以外的课题、结构及效果通过以下的实施方式的说明变得清晰。
附图说明
21.图1是表示第一实施方式的存储系统的结构的一例的图。
22.图2是表示第一实施方式的控制器的结构的一例的图。
23.图3是表示第一实施方式的保存数据的一例的图。
24.图4是表示第一实施方式的程序区域的一例的图。
25.图5是表示第一实施方式的元数据区域的一例的图。
26.图6是表示第一实施方式的管理节点的结构的一例的图。
27.图7是表示第一实施方式的流程图的一例的图。
28.图8是表示第一实施方式的流程图的一例的图。
29.图9是表示第一实施方式的流程图的一例的图。
30.图10是表示第一实施方式的流程图的一例的图。
31.图11a是表示第一实施方式的流程图的一例的图。
32.图11b是表示第一实施方式的流程图的一例的图。
33.图12是表示第一实施方式的流程图的一例的图。
34.图13是表示第二实施方式的程序区域的一例的图。
35.图14是表示第二实施方式的管理节点的结构的一例的图。
36.图15是表示第二实施方式的流程图的一例的图。
37.图16是表示第二实施方式的流程图的一例的图。
38.图17是表示第三实施方式的程序区域的一例的图。
39.图18是表示第三实施方式的元数据区域的一例的图。
40.图19a是表示第三实施方式的流程图的一例的图。
41.图19b是表示第三实施方式的流程图的一例的图。
42.图20a是表示第三实施方式的流程图的一例的图。
43.图20b是表示第三实施方式的流程图的一例的图。
44.图20c是表示第三实施方式的流程图的一例的图。
具体实施方式
45.(1)第一实施方式
46.以下详细叙述本发明的一实施方式。本实施方式中,说明将存储功能的访问处理和存储区域管理在控制器间转移且进行分散处理的方法。此外,本实施方式不限定于本发明的要求的权利范围,不限于实施方式中进行说明的全部要素在解决本发明的课题中都是必要的。
47.在本实施方式的存储系统中,在多个控制器共享存储区域的环境下,将访问处理的权限和存储区域管理的权限在控制器间转移,并进行分散处理。
48.更具体而言,本存储系统对共享存储区域的各控制器预先分配可使用的存储区域
(管理对象的存储区域)。首先,在进行lu的访问处理的控制器的转移中,将lu中包含的各数据和存储区域中的表示保存目的地的地址的映射信息向转移目的地的控制器复制并交接。lu的转移目的地的控制器对于来自主机的读(read)请求,参考交接的映射信息而直接读出转移源的控制器所管理的存储区域中保存的数据。另外,lu的转移目的地的控制器对从主机进行写请求的数据,从执行访问处理的转移目的地的控制器(本控制器)管理的存储区域决定保存目的地而保存数据,并更新lu的映射信息。lu的转移目的地的控制器将因新数据的保存而成为不需要的更新前的数据的无效化与写请求的处理异步地进行,由此,即使在无效化的对象的数据保存于lu的转移源的控制器管理的存储区域的情况下,也能够避免通信的开销的影响。
49.各控制器在进行所管理的存储区域的gc处理的情况下,从保存于成为gc处理的对象的存储区域的数据,提取进行gc处理的控制器自身负责访问处理的lu所包含的数据,向控制器自身管理的存储区域转移并排序,并更新lu的映射信息。此时,更新对象的映射信息存在于同一控制器内,由此,不会产生控制器间的通信也不会产生排他控制。而且,进行了gc处理的控制器从进行包含gc处理的对象的存储区域中残留的数据的lu的访问处理的控制器选择一个,将gc处理与存储区域管理的权限一起交接至选择出的控制器。交接了该存储区域的gc处理的控制器与原控制器一样进行处理。在控制器间进行上述交接,直到gc处理的对象的数据消失。另外,对于通过gc处理的中途的存储区域的交接而可使用的存储区域减少的控制器,从共享的存储区域重新分配未分配的存储区域,由此避免空白容量的不足。
50.接着,基于附图说明本发明的实施方式。
51.此外,以下的说明中,对于附图中相同的要素,标注相同的编号并适当省略说明。另外,在不同种的要素进行说明的情况下,使用包含分支编号的参考标记中的共同部分(除去分支编号的部分),在区分同种要素进行说明的情况下,有时使用包含分支编号的参考标记。例如,在没有特别区分控制器进行说明的情况下,记载为“控制器101”,在区分各个控制器进行说明的情况下,有时如“控制器101a”、“控制器101b”那样记载。
52.图1中,100作为整体表示第一实施方式的存储系统。
53.图1是表示存储系统100的结构的一例的图。
54.存储系统100包含控制器101a、101b(控制器节点)、存储介质节点102、管理节点103、网络104而构成。网络104连接控制器101a、101b、存储介质节点102、管理节点103。另外,控制器101a、101b与主机105连接。
55.控制器101a、101b对主机105提供向存储区域的访问。例如以映射于存储区域的lu等形式对主机105提供存储区域。控制器101a、101b也可以对主机105提供多个lu。另外,单一控制器101提供对各lu的访问。
56.存储介质节点102具有作为lu的存储区域的映射目的地的存储介质106,对控制器101a、101b提供访问。控制器101a、101b共享存储介质节点102的存储介质106,从任一控制器101,不经由其它控制器101均可对存储介质106直接访问。
57.管理节点103管理进行存储系统100提供的各lu的访问处理的控制器101、以及由连接于存储介质节点102的存储介质106构成的各存储区域相对于控制器101的分配状况。
58.网络104将控制器101a、101b、存储介质节点102、以及管理节点103相互连接。网络
104进行控制器101a、101b的通信。例如,网络104进行从控制器101a、101b对存储介质节点102的存储介质106的访问请求和与该访问请求对应的数据(以下记为访问请求数据)的传输。此外,访问请求数据是与读请求对应的读数据或与写请求对应的写数据。
59.主机105进行对控制器101a、101b提供的lu的访问请求。
60.此外,除了控制器101a、101b以外,也可以是追加的控制器101连接于网络104,各控制器101共享存储介质节点102的存储介质106。另外,存储介质节点102也可以同时提供对多个存储介质106的访问。另外,网络104不限定于图1所示的结构,例如,也可以是如下结构,主机105连接于网络104,对控制器101a、101b进行访问请求。另外,也可以是如下结构,管理节点103兼作控制器101a、101b,或存储介质节点102的任一节点。
61.图2是表示控制器101a的结构的一例的图。此外,控制器101a、101b具有一样(相同或类似)的结构,因此,图示控制器101a进行说明。
62.控制器101a具有:一个以上的处理器201、一个以上的存储器202、一个以上的通信i/f(interface)203、一个以上的主机i/f204。
63.处理器201执行使用存储器202实现控制器101a的功能的程序,对主机105提供向lu的访问。
64.通信i/f203连接于网络104。通信i/f203进行从控制器101a对存储介质节点102的存储介质106的访问请求的发送、响应的接收、以及伴随访问请求的处理的访问请求数据的传输。
65.通信i/f203和网络104的连接中的通信标准只要能够进行访问请求、响应的收发以及数据传输,就没有特别限定。另外,在控制器101a和存储介质节点102之间进行的访问请求、响应以及数据的收发中使用的协议也同样没有限定。
66.主机i/f204进行来自主机105的对lu的访问请求的接收、响应的发送以及在与主机105之间伴随访问请求的处理的访问请求数据的传输。
67.经由主机i/f204的、控制器101a和主机105的连接中的通信标准及协议只要能够进行访问请求、响应的收发以及数据传输,就没有特别限定。另外,在主机105连接于网络104的情况下,主机i/f204也可以使用与通信i/f203共同的结构。
68.图3是表示存储器202的保存数据的一例的图。存储器202具有程序区域301、缓冲区域302、元数据区域303。
69.在程序区域301中保存处理器201执行的、实现存储系统100的控制器101的功能的程序。
70.在缓冲区域302中临时保存从连接于存储介质节点102的存储介质106读出的读数据和对于连接于存储介质节点102的存储介质106的写数据。
71.在元数据区域303中保存控制器101对主机105提供访问的与各lu的处理相关的管理信息。
72.图4是表示程序区域301的一例的图。
73.程序区域301保存处理器201执行的程序。作为程序,包括:命令处理程序401、i/o控制程序402、数据配置管理程序403、gc对象选择程序404、gc程序405、gc移管程序406、gc交接程序407、lu移管程序408、lu交接程序409、无效数据通知程序410、区域无效化程序411。
74.命令处理程序401经由主机i/f204进行来自主机105的对lu的访问请求的接收和结果的响应。另外,命令处理程序401开始与访问请求对应的处理,经由主机i/f204在与主机105之间进行访问请求数据的传输。
75.i/o控制程序402经由通信i/f203执行对存储介质节点102所具有的存储介质106的访问请求。从i/o控制程序402对存储介质106的访问中使用的协议只要能够进行对被指定的地址的访问就没有特别限定。
76.数据配置管理程序403对于控制器101对主机105提供访问的lu的地址空间的各存储区域,管理连接于存储介质节点102的存储介质106中的、与上述各存储区域对应的映射目的地的地址。另外,数据配置管理程序403管理由连接于存储介质节点102的存储介质106构成的各存储区域所对应的lu和lu内的存储区域的地址。
77.gc对象选择程序404从由连接于存储介质节点102的存储介质106构成的一定大小的各存储区域(以下记为页),将分配给本控制器101的页的一个作为gc处理的对象进行选择。
78.gc程序405通过将gc对象选择程序404所选择的页中包含的有效的数据向其它的页转移,而进行数据的排序。gc程序405对于被选择的页中包含的有效的各数据确认对应的lu,在确认的lu的访问处理被分配给本控制器101的情况下,将数据复制至其它的页,并将最初的页的数据进行无效化。
79.gc移管程序406选择一个分配有成为gc处理的对象的页中包含的有效的数据所对应的lu的访问处理的控制器101,并委托与页相关的gc处理的交接。对于gc处理的交接的委托,可与访问处理异步地实施,也可与对其它页的gc处理异步地实施。另外,通过对同一控制器101同时进行与多个页相关的gc处理的交接的委托,能够减少通信次数。另外,控制器101使用的页数与页大小成反比,因此,通过增大页大小,使用的页数减少,gc处理的交接的委托频率也一并减少。因此,通过减少gc移管程序406的通信次数,与访问处理和gc处理各自异步地进行gc处理的交接的委托,能够避免开销的影响。
80.gc交接程序407对于从其它控制器101委托gc处理的交接的页,追加至分配给本控制器101的页中,以作为gc处理的对象且被gc对象选择程序404选择。
81.lu移管程序408对于访问处理分配给本控制器101的lu,向其它控制器101委托访问处理的交接。另外,lu移管程序408从元数据区域303读出与委托交接的lu相关联的元数据,并复制于委托交接的控制器101。lu的访问处理的交接通常仅在需要控制器101间的负荷调整的情况下进行,因此,以比来自主机105的访问请求低的频率进行。因此,lu移管程序408进行的控制器101间的通信带来的开销是轻微的。
82.lu交接程序409对于从其它控制器101委托访问处理的交接的lu,使用复制的元数据开始进行lu的访问处理。
83.无效数据通知程序410对于伴随从主机105对lu的写请求而无效化的、更新前的数据的保存目的地的地址的一览表,对管理包含各数据的页的控制器101进行通知。对其它控制器101的无效数据的通知可与访问处理异步地进行。另外,可通过一次的通知全部进行与多个数据相关的无效化的通知。因此,与gc移管程序406的通信一样,能够避免通讯开销的影响。
84.区域无效化程序411参考从其它控制器101通知的、无效化的数据的保存目的地的
地址的一览表,将本控制器101管理的页中对应的存储区域的数据进行无效化。
85.图5是表示元数据区域303的一例的图。
86.元数据区域303具有:映射表501、反向查询表502、使用页表503、无效区域表504、移管候选页表505。
87.映射表501设置于进行访问处理的每个lu。映射表501对于控制器101进行访问处理的lu的地址空间的各存储区域,保存连接于存储介质节点102的存储介质106中的、与各区域对应的映射目的地的地址。
88.在此,在存储系统100中,通过raid(redundant arrays of inexpensive disks,廉价磁盘冗余阵列),多个存储介质106作为一个虚拟的存储器件被提供,虚拟的存储器件的地址被用作映射表501的存储区域地址。此外,虽然省略图示,但虚拟的存储器件的地址与各存储介质106的地址相对应。换言之,在存储系统100中,可以不组装raid,映射表501的存储区域地址也可以为存储介质106的地址。在该情况下,在映射表501中包含可识别存储介质106的信息。
89.反向查询表502设置于每个页中。反向查询表502对于分配给控制器101的、由连接于存储介质节点102的存储介质106构成的存储区域,保存与该存储区域相对应的lu以及lu的地址。此外,在本实施方式中,反向查询表502设置于每个页中,但不限于该形式,可以是单一形式,可以是以页以外的单位被分割的形式,也可以是其它的形式。
90.使用页表503保存分配给控制器101的页的地址。
91.无效区域表504保存其它控制器101管理的页中保存的、无效化的数据的地址和管理上述页的控制器101的信息。
92.移管候选页表505保存成为对其它控制器101进行gc处理的移管的候选的页的地址。
93.图6是表示管理节点103的结构的一例的图。
94.管理节点103具有一个以上的处理器601、一个以上的存储器602、一个以上的通信i/f603。
95.处理器601使用存储器602提供与存储系统100所提供的lu的访问处理相关的、对控制器101的分配状况。另外,处理器601使用存储器602,提供与由连接于存储介质节点102的存储介质106构成的各存储区域相关的、对控制器101的分配的管理功能。
96.存储器602保存lu分配程序604和lu分配表605。
97.通信i/f603连接于网络104。通信i/f603在与控制器101之间与进行lu的访问处理、存储区域的分配、存储区域的释放相关的通信。
98.lu分配程序604对存储系统100的控制器101管理lu的访问处理的分配状态。另外,lu分配程序604进行对进行各lu的访问处理的控制器101的查询的响应。
99.lu分配表605保存进行存储系统100提供的各lu的访问处理的控制器101的信息。
100.图7是表示从主机105对控制器101a的、处理lu的读请求的一连串的流程的流程图。基于图7的流程图的动作如下。
101.s701:命令处理程序401在从主机105接收lu的读请求时,对数据配置管理程序403查询与被请求的lu的地址对应的存储介质106的存储区域的地址。接着,执行s702。
102.s702:数据配置管理程序403参考映射表501,确定与存在查询的lu的地址对应的
存储区域所对应的存储介质106、以及该存储介质106的地址并响应。接着,执行s703。
103.s703:i/o控制程序402对经由通信i/f203指示的存储介质106的地址进行读访问,并将读结果的数据保存于存储器202的缓冲区域302。接着,执行s704。
104.s704:命令处理程序401将s703中保存于缓冲区域302的数据,经由主机i/f204作为读请求的结果传输至主机105,并结束一连串的动作。
105.图8是表示从主机105对控制器101a的、处理lu的写请求的一连串的流程的流程图。基于图8的流程图的动作如下。
106.s801:命令处理程序401在从主机105经由主机i/f204接收lu的写请求时,从主机105接收写数据并保存于缓冲区域302。接着,执行s802。
107.s802:命令处理程序401对于数据配置管理程序403,查询s801中接收到的写数据的成为连接于存储介质节点102的存储介质106的保存目的地的地址。接着,执行s803。
108.s803:数据配置管理程序403参考映射表501,确定保存从主机105进行写请求的存储区域的更新前的数据的存储介质106以及该存储介质的地址。另外,数据配置管理程序403参考映射表501和使用页表503,确定管理包含该地址的存储区域的页的控制器101是否为本控制器101。接着,执行s804。
109.s804:数据配置管理程序403判断本控制器101是否管理包含s803中确定的地址的存储区域的页。数据配置管理程序403在本控制器101管理包含更新前的数据的页的情况下,将处理转移至s805。数据配置管理程序403在本控制器101不管理包含更新前的数据的页的情况下,将处理转移至s806。
110.s805:数据配置管理程序403更新反向查询表502对应的条目,以使与s803中确定的地址对应的更新前的数据无效,且成为均未映射于任意lu的状态。例如,数据配置管理程序403对该条目的lu地址设置表示无效的信息。接着,执行s807。
111.s806:数据配置管理程序403将更新前的数据的保存目的地的地址和控制器101的信息保存于无效区域表504。更具体而言,数据配置管理程序403将s803中确定的地址作为保存有向管理包含该地址的存储区域的页的控制器101通知的无效的数据的地址,保存于无效区域表504。接着,执行s807。
112.s807:数据配置管理程序403参考反向查询表502和使用页表503,从本控制器101管理的页决定成为s801中接收到的写数据的保存目的地的存储区域的地址,并响应命令处理程序401。接着,执行s808。
113.s808:命令处理程序401对i/o控制程序402通知s807中决定的存储介质106和地址的信息,并指示写访问。i/o控制程序402对经由通信i/f203而指示的存储介质106的地址进行写访问,并保存从缓冲区域302读出的写数据。接着,执行s809。
114.s809:数据配置管理程序403在i/o控制程序402中的写访问完成时,使用s807中决定的地址来更新映射表501和反向查询表502,以使主机105的写请求目的地的地址与新的写数据的保存目的地的存储区域对应。接着,执行s810。
115.s810:命令处理程序401经由主机i/f204向主机105通知写请求的完成,并结束一连串的动作。
116.从s803到806的一连串的动作也可以在s808之后被实施。另外,s809的动作也可以在s808之前被实施。
117.图9是表示从控制器101a(转移源控制器)向控制器101b(转移目的地控制器)转移lu的访问处理的权限的一连串的流程的流程图。基于图9的流程图的动作如下。
118.s901:控制器101a的lu移管程序408对控制器101b委托lu的访问处理的交接。接着,执行s902。
119.s902:控制器101a的lu移管程序408对于转移访问处理的权限的lu,从映射表501读出与该lu的地址空间相关的映射目的地的地址,经由通信i/f203复制于控制器101b。接着,执行s903。
120.s903:控制器101b的lu交接程序409从控制器101a接收与lu的地址空间相关的映射目的地的地址信息,并保存于元数据区域303的映射表501中。接着,执行s904。
121.s904:控制器101a的lu移管程序408停止控制器101a中的与转移对象的lu相关的访问处理。接着,执行s905。
122.s905:控制器101b的lu交接程序409开始进行控制器101b中的与转移对象的lu相关的访问处理。接着,执行s906。
123.s906:控制器101b的lu交接程序409进行请求,以使相对于管理节点103在s905中开始访问处理的lu所相关的访问处理的分配目的地从控制器101a变更成控制器101b。接着,执行s907。
124.s907:管理节点103的lu分配程序604更新lu分配表605,对于转移对象的lu,将访问处理的分配目的地从控制器101a变更成控制器101b。接着,执行s908。
125.s908:控制器101b的lu交接程序409对主机105通知与转移对象的lu相关的访问处理被变更至控制器101b,并结束一连串的动作。
126.从s904到s905的一连串的动作也可以在s908之后被实施。另外,在管理节点103可与主机105直接通信的情况下,也可以在s908中代替控制器101b的lu交接程序409,管理节点103的lu分配程序604对主机105通知与lu相关的访问处理变更至控制器101b。另外,也可以在s906中代替控制器101b的lu交接程序409,控制器101a的lu移管程序408对管理节点103请求访问处理的分配目的地的变更。
127.图10是表示从控制器101a向控制器101b通知保存无效化的数据的存储区域的一连串的流程的流程图。基于图10的流程图的动作如下。
128.s1001:控制器101a的无效数据通知程序410在与访问处理异步的任意时期开始进行无效数据的通知处理。接着,执行s1002。
129.s1002:控制器101a的无效数据通知程序410决定无效数据的通知对象的控制器101(本例中为控制器101b)。接着,执行s1003。此外,在通知对象的控制器有多个的情况下,控制器的决定方法能够采用任意的方法。
130.s1003:控制器101a的无效数据通知程序410参考控制器101a的元数据区域303中保存的无效区域表504,读出作为无效数据的通知对象的控制器101b管理的页中包含的、保存有无效数据的存储区域的地址。接着,执行s1004。
131.s1004:控制器101a的无效数据通知程序410将s1003中读出的地址经由通信i/f203通知给作为无效数据的通知对象的控制器101b。接着,执行s1005。
132.s1005:控制器101b的区域无效化程序411参考从控制器101a通知的、保存无效的数据的各存储区域的地址,对保存于元数据区域303的反向查询表502,更新以各存储区域
的数据无效,且成为均未映射于任意lu的状态的方式对应的条目,并结束一连串的动作。
133.在图10所示的流程图中,实施一次从s1002到s1005的一连串的处理,但也可以通过反复实施,对多个控制器101通知保存无效化的数据的存储区域。另外,s1005的动作也可以与直到s1004的一连串的动作不连续地进行,而在任意时期实施。
134.图11a和图11b是表示在控制器101a、101b中进行由连接于存储介质节点102的存储介质106构成的与页相关的gc处理的一连串的流程的流程图。基于图11a和图11b的流程图的动作如下。
135.s1101:gc对象选择程序404在任意的时期,从保存于元数据区域303的使用页表503中登记的页选择设为gc处理的对象的页,并向gc程序405指示处理。接着,执行s1102。
136.s1102:gc程序405将与s1101中选择的页对应的、保存于元数据区域303的反向查询表502中的、之前的有效的数据设为以后的处理中的着眼的对象。此外,将s1102或s1112中着眼的有效的数据记载为着眼数据。接着,执行s1103。
137.s1103:gc程序405对于着眼数据,参考保存于元数据区域303的反向查询表502对应的条目,确认着眼数据所对应的lu。接着,执行s1104。
138.s1104:gc程序405对于s1103中确认的lu,判断访问处理是否被分配给本控制器101。在gc程序405被分配给本控制器101的情况下,将处理转移至s1105。在gc程序405未被分配给本控制器101的情况下,将处理转移至s1111。
139.s1105:数据配置管理程序403参考反向查询表502和使用页表503,从本控制器101管理的gc处理的对象外的页决定着眼数据的转移目的地的地址。接着,执行s1106。
140.s1106:gc程序405对i/o控制程序402指定着眼数据的地址并指示读访问。i/o控制程序402对被指示的地址中表示的存储介质106的存储区域中保存的着眼数据进行读访问,并将读结果的数据保存于存储器202的缓冲区域302。接着,执行s1107。
141.s1107:gc程序405对i/o控制程序402指定s1105中决定的地址,并指示s1106中进行了读访问的数据的写访问。i/o控制程序402经由通信i/f203,对被指示的地址中表示的存储介质106的存储区域进行写访问,并保存从缓冲区域302读出的数据。接着,执行s1108。
142.s1108:数据配置管理程序403对于保存于元数据区域303的反向查询表502,将与着眼数据对应的条目所保存的lu和地址的信息复制至s1105中作为数据的转移目的地决定的地址所对应的条目。接着,执行s1109。
143.s1109:数据配置管理程序403对于保存于元数据区域303的反向查询表502,参考与着眼数据对应的条目所保存的lu和地址的信息。然后,数据配置管理程序403进行更新,以使保存于元数据区域303的映射表501中的、与该lu和地址对应的条目指示s1105中决定的地址。接着,执行s1110。
144.s1110:数据配置管理程序403对于保存于元数据区域303的反向查询表502进行更新,以成为与着眼数据对应的条目均不包含于任意lu的无效的状态。接着,执行s1111。
145.s1111:gc程序405判断着眼数据的下一有效的数据是否存在于同一页内。gc程序405在有效的数据存在于同一页内的情况下,将处理转移至s1112。gc程序405在有效的数据未存在于同一页内的情况下,将处理转移至s1113。
146.s1112:gc程序405将在gc处理的对象的页内着眼的数据变更成下一有效的数据。接着,执行s1103。
147.s1113:gc程序405判断有效的数据是否残留于gc处理的对象的页内。gc程序405在gc处理的对象的页内残留有有效的数据的情况下,将处理转移至s1114。gc程序405在gc处理的对象的页内未残留有效的数据的情况下,结束一连串的动作。
148.s1114:gc程序405向移管候选页表505中保存gc处理的对象的页的地址,并结束一连串的动作。
149.图12是表示将控制器101a(移管元控制器)中由连接于存储介质节点102的存储介质106构成的页所相关的gc处理移管至控制器101b(移管目的地控制器)的一连串的流程的流程图。基于图12的流程图的动作如下。
150.s1201:控制器101a的gc移管程序406从保存于存储器202的元数据区域303的移管候选页表505选择设为移管的对象的页。接着,执行s1202。此外,控制器101a的gc移管程序406也可以在与gc程序405的gc处理异步的任意时期开始处理。
151.s1202:控制器101a的gc移管程序406对于s1201中选择的页,参考保存于元数据区域303的反向查询表502,判断是否存在有效的数据。该控制器101a的gc移管程序406在存在有效的数据的情况下,将处理转移至s1203。控制器101a的gc移管程序406在不存在有效的数据的情况下,将处理转移至s1212。
152.s1203:控制器101a的gc移管程序406对于s1201中选择的页,从保存于元数据区域303的反向查询表502的条目,参考与被保存的数据对应的lu和该lu的地址。接着,执行s1204。
153.s1204:控制器101a的gc移管程序406经由通信i/f203对管理节点103,进行s1203中参考的、分配有与有效的数据对应的lu的访问处理的控制器101的查询。接着,执行s1205。
154.s1205:管理节点103的lu分配程序604对于s1204中从控制器101a接收到查询的lu,参考lu分配表605,确认分配有访问处理的控制器101,并经由通信i/f603进行响应。接着,执行s1206。
155.s1206:控制器101a的gc移管程序406对于s1204中查询的、分配有lu的访问处理的控制器101,确认来自管理节点103的响应结果,并决定与s1201中选择的页的gc处理相关的移管目的地的控制器101(本例中为控制器101b)。接着,执行s1207。
156.s1207:控制器101a的gc移管程序406对控制器101b经由通信i/f203通知页的地址,由此委托gc处理的交接。接着,执行s1208。
157.s1208:控制器101b的gc交接程序407经由通信i/f203从控制器101a接收页的地址,并保存于控制器101b的元数据区域303中包含的使用页表503。接着,执行s1209。
158.s1209:控制器101a的gc移管程序406对于委托gc处理的交接的页,读出保存于元数据区域303的反向查询表502的条目,经由通信i/f203复制至控制器101b。接着,执行s1210。
159.s1210:控制器101b的gc交接程序407将经由通信i/f203从控制器101a接收到的控制器101a的反向查询表502的条目保存于控制器101b的反向查询表502。接着,执行s1211。
160.s1211:控制器101a的gc移管程序406对于保存于元数据区域303的反向查询表502,删除与委托了gc处理的交接的页对应的条目。接着,执行s1212。
161.s1212:控制器101a的gc移管程序406从保存于元数据区域303的移管候选页表
505,删除委托了gc处理的交接的页的地址,并结束一连串的动作。
162.根据本实施方式,在多个控制器101共享存储区域的存储系统100中,通过转移访问处理和存储区域管理,实现控制器101间的负荷分散,并能够维持降低了控制器101间的依赖关系的状态。将各控制器101的访问处理中的数据的保存目的地分离,且各控制器101分担相对于存储区域的gc处理中分配有访问处理的lu所相关的数据的排序,由此,可尽可能排除控制器101间的依赖关系,且避免通信引起的开销的影响。
163.(2)第二实施方式
164.本实施方式中,说明除了进行访问处理和存储区域管理的控制器101间的转移、分散之外,还进行相对于自动精简配置产生的共享的存储区域的控制器101的页单位的动态的分配和释放的存储系统的例子。
165.此外,本实施方式不限定本发明要求的权利范围,不限于实施方式中进行说明的全部要素在解决本发明的课题中是必要的。另外,在本实施方式的说明中,说明第一实施方式的结构、动作的差量,未进行说明的构成要素和标记、动作与第一实施方式一样。
166.图13是表示本实施方式的程序区域301的一例的图。
167.在程序区域301中,除了保存:命令处理程序401、i/o控制程序402、数据配置管理程序403、gc对象选择程序404、gc程序405、gc移管程序406、gc交接程序407、lu移管程序408、lu交接程序409、无效数据通知程序410、区域无效化程序411之外,还保存页确保程序1312和页释放程序1313。
168.页确保程序1312向管理节点103请求由连接于存储介质节点102的存储介质106构成的页中、没有分配给任意控制器101的空页的分配,并作为本控制器101管理的页(使用页)进行追加。
169.页释放程序1313对管理节点103进行通知,以释放作为本控制器101管理的页被分配的状态的页。
170.图14是表示本实施方式的管理节点103的结构的一例的图。
171.管理节点103具有一个以上的处理器601、一个以上的存储器602、一个以上的通信i/f603。
172.存储器602除了保存lu分配程序604和lu分配表605之外,还保存页分配程序1406和空页表1407。
173.页分配程序1406根据来自存储系统100的控制器101的请求,进行由连接于存储介质节点102的存储介质106构成的页的分配和释放。
174.空页表1407保存相对于任意控制器101均未分配的状态的、由连接于存储介质节点102的存储介质106构成的页的地址。
175.图15是表示本实施方式中的、控制器101a、101b确保页的一连串的流程的流程图。基于图15的流程图的动作如下。
176.s1501:数据配置管理程序403在任意时期参考反向查询表502和使用页表503,确认控制器101管理的页整体(使用的存储区域)的空白容量。接着,执行s1502。
177.s1502:数据配置管理程序403判断s1501中确认的存储区域的空白容量是否低于预先决定的阈值。数据配置管理程序403在空白容量低于阈值的情况下,将处理转移至s1503。数据配置管理程序403在空白容量超过阈值的情况下,结束一连串的动作。
178.s1503:页确保程序1312经由通信i/f203对管理节点103请求页对控制器101的分配。接着,执行s1504。
179.s1504:管理节点103的页分配程序1406经由通信i/f603接收s1503的页的分配的请求时,参考空页表1407选择分配的页。接着,执行s1505。
180.s1505:管理节点103的页分配程序1406经由通信i/f603,对进行了页的分配的请求的控制器101通知s1504中选择的页的地址,并且从空页表1407删除该页的地址。接着,执行s1506。
181.s1506:页确保程序1312经由通信i/f203接收由管理节点103分配的地址,向使用页表503保存接收到的地址并结束一连串的动作。
182.在s1504中,页分配程序1406也可以选择多个页的地址,对控制器101同时分配多个页。另外,在s1501中,数据配置管理程序403也可以代替参考反向查询表502,而以进行了另外管理的存储区域的使用容量为基础确认空白容量。
183.图16是表示本实施方式的、控制器101a、101b释放页的一连串的流程的流程图。基于图16的流程图的动作如下。
184.s1601:数据配置管理程序403在任意时期参考反向查询表502和使用页表503,确认控制器101管理的页整体(使用的存储区域)的空白容量。接着,执行s1602。
185.s1602:数据配置管理程序403判断s1601中确认的存储区域的空白容量是否超过预先决定的阈值。数据配置管理程序403在空白容量超过阈值的情况下,将处理转移至s1603。数据配置管理程序403在空白容量未超过阈值的情况下结束一连串的动作。
186.s1603:数据配置管理程序403参考反向查询表502和使用页表503,将未保存数据的页作为释放对象的页进行选择。接着,执行s1604。
187.s1604:页释放程序1313经由通信i/f203对管理节点103通知作为释放对象的页在s1603中被选择的页的地址。接着,执行s1605。
188.s1605:管理节点103的页分配程序1406经由通信i/f603接收释放对象的页的地址时,向空页表1407保存该地址。接着,执行s1606。
189.s1606:数据配置管理程序403从使用页表503删除s1603中选择的页的地址,并结束一连串的动作。
190.在s1603中,数据配置管理程序403也可以选择多个页的地址,同时释放多个页。另外,在s1601中,数据配置管理程序403也可以代替参考反向查询表502,而以进行了额外管理的存储区域的使用容量为基础确认空白容量。
191.根据本实施方式,在多个控制器101共享存储区域的存储系统100中,在为了在控制器101间交接并分担对存储区域的gc处理而转移存储区域管理的权限的情况下,可能解除各控制器101管理的存储区域的不足和偏离。另外,通过使gc处理的单位和自动精简配置的存储区域对控制器101的分配单位一致,对于伴随gc处理的交接而进行了管理权限的转移的存储区域,也可与其它的存储区域同样地进行释放处理和重新分配。
192.(3)第三实施方式
193.本实施方式中,说明除了进行访问处理和存储区域管理的控制器101间的转移、分散之外,还进行各控制器101中对保存数据的重复排除的存储系统100的例子。
194.此外,本实施方式不限定本发明要求的权利范围,不限于实施方式中进行说明的
全部要素在解决本发明的课题中是必要的。另外,在本实施方式的说明中,说明第一实施方式的结构、动作的差量,未进行说明的构成要素和标记、动作与第一实施方式一样。
195.图17是表示本实施方式的程序区域301的一例的图。
196.在程序区域301中,除了保存:命令处理程序401、i/o控制程序402、数据配置管理程序403、gc对象选择程序404、gc程序405、gc移管程序406、gc交接程序407、lu移管程序408、lu交接程序409、无效数据通知程序410、区域无效化程序411之外,还保存重复判断元数据生成程序1712、重复判断程序1713。
197.无效数据通知程序410对于伴随从主机105对lu的写请求而无效化的更新前的数据的保存目的地的地址和与该地址对应的lu及lu内的地址的组合的一览表,对管理包含各数据的页的控制器101进行通知。无效数据通知程序410可与访问处理异步地进行无效数据对其它控制器101的通知。另外,无效数据通知程序410可通过一次的通知全部进行与多个数据相关的无效化的通知。因此,与gc移管程序406的通信一样,可避免通讯开销的影响。
198.区域无效化程序411参考从其它控制器101通知的、无效化的数据的保存目的地的地址和lu以及lu内的地址的组合的一览表,将本控制器101管理的页中对应的存储区域的数据进行无效化。
199.重复判断元数据生成程序1712生成为了判断与由连接于存储介质节点102的存储介质106构成的共享的存储区域中保存的数据的一致而使用的元数据。元数据例如为数据的哈希值。
200.重复判断程序1713使用重复判断元数据生成程序1712生成的元数据,从保存数据检测存储区域中与写预定的数据一致的数据。
201.图18是表示本实施方式的元数据区域303的一例的图。
202.元数据区域303除了具有映射表501、反向查询表502、使用页表503、无效区域表504、移管候选页表505之外,还具有重复判断元数据表1806。
203.反向查询表502对于分配给控制器101a、101b的、由连接于存储介质节点102的存储介质106构成的存储区域,保存与存储区域相对应的lu和lu的地址。在重复参考各存储区域的数据的情况下,多个lu和lu的地址相对应。
204.无效区域表504随着lu的数据的更新,在其它控制器101管理的页中,保存未参考的存储区域的信息。各信息通过由连接于存储介质节点102的存储介质106构成的存储区域中未参考的地址、管理页的控制器101、与该地址对应的lu、lu内的地址的组合而构成。
205.重复判断元数据表1806保存重复判断元数据生成程序1712生成的、用于重复数据的判断的元数据。
206.图19a和图19b是表示本实施方式的从主机105对控制器101a的、处理lu的写请求的一连串的流程的流程图。基于图19a和图19b的流程图的动作如下。
207.s1901:命令处理程序401在经由主机i/f204从主机105接收lu的写请求时,从主机105接收写数据并保存于缓冲区域302。接着,执行s1902。
208.s1902:重复判断元数据生成程序1712从缓冲区域302读出s1901中接收到的写数据,生成重复判断用的元数据。接着,执行s1903。
209.s1903:重复判断程序1713参考重复判断元数据表1806,判断是否存在与s1902中生成的重复判断用的元数据一致的元数据(是否检测到元数据的重复)。重复判断程序1713
在检测到元数据的重复的情况下,将处理转移至s1904。重复判断程序1713在未检测到元数据的重复的情况下,将处理转移至s1905。
210.s1904:重复判断程序1713对于s1903中检测到一致的数据(重复数据),确定连接于存储介质节点102的存储介质106中的保存目的地的地址。接着,执行s1908。
211.s1905:命令处理程序401对数据配置管理程序403查询s1901中接收到的写数据的成为连接于存储介质节点102的存储介质106中的保存目的地的地址。接着,执行s1906。
212.s1906:数据配置管理程序403参考反向查询表502和使用页表503,从本控制器101所管理的页决定s1901中接收到的写数据的成为保存目的地的存储区域的地址,并与命令处理程序401响应。接着,执行s1907。
213.s1907:命令处理程序401对i/o控制程序402通知s1906中决定的存储介质106和地址的信息,并指示写访问。i/o控制程序402对经由通信i/f203而指示的存储介质106的地址进行写访问,保存从缓冲区域302读出的写数据。另外,命令处理程序401将s1902中生成的重复判断用的元数据与s1906中决定的存储介质106的地址的信息一起登记于重复判断元数据表1806。接着,执行s1908。
214.s1908:数据配置管理程序403以s1903中检测到一致的数据或s1907中保存的数据与主机105的写请求目的地的lu和lu内的地址对应的方式,对与反向查询表502的保存数据对应的条目追加该lu和lu内的地址的信息。接着,执行s1909。
215.s1909:数据配置管理程序403参考映射表501,确定保存从主机105进行了写请求的存储区域的更新前的数据的、连接于存储介质节点102的存储介质106中的保存目的地的地址。另外,数据配置管理程序403参考映射表501和使用页表503,确定管理包含该地址的存储区域的页的控制器101是否为本控制器101。接着,执行s1910。
216.s1910:数据配置管理程序403判断本控制器101是否管理包含s1909中确定的地址的存储区域的页。数据配置管理程序403在本控制器101管理包含更新前的数据的页的情况下,将处理转移至s1911。数据配置管理程序403在本控制器101不管理包含更新前的数据的页的情况下,将处理转移至s1914。
217.s1911:数据配置管理程序403从与s1909中确定的地址对应的反向查询表502的条目,删除主机105的写请求目的地的lu和lu内的地址,由此解除对应。接着,执行s1912。
218.s1912:数据配置管理程序403对于s1911中删除了写请求目的地的lu和lu内的地址的条目,删除所有的lu和lu内的地址,并判断对应的存储区域的数据是否为无效的状态。数据配置管理程序403在存储区域的数据是无效的状态的情况下,将处理转移至s1913。数据配置管理程序403在存储区域的数据不是无效的状态的情况下,将处理转移至s1915。
219.s1913:数据配置管理程序403从重复判断元数据表1806删除与s1909中确定的地址对应的条目。接着,执行s1915。
220.s1914:数据配置管理程序403将s1909中确定的地址、管理与地址对应的页的控制器101、主机105的写请求目的地的lu和lu内的地址的组合保存于无效区域表504。接着,执行s1915。
221.s1915:数据配置管理程序403对于与主机105的写请求目的地的lu和lu内的地址对应的映射表501的条目,以s1904中确定的地址或s1906中决定的地址进行更新。接着,执行s1916。
222.s1916:命令处理程序401经由主机i/f204向主机105通知写请求的完成,并结束一连串的动作。
223.对于s1903中的重复数据的判断,也可以不进行元数据的比较,而直接进行数据彼此是否一致的比较。
224.图20a、图20b和图20c是表示本实施方式的控制器101a、101b中进行与由连接于存储介质节点102的存储介质106构成的页相关的gc处理的一连串的流程的流程图。基于图20a、图20b和图20c的流程图的动作如下。
225.s2001:gc对象选择程序404在任意的时期,从登记于元数据区域303中保存的使用页表503的页,选择设为gc处理的对象的页,并向gc程序405指示处理。接着,执行s2002。
226.s2002:gc程序405将与s2001选择的页对应的、保存于元数据区域303的反向查询表502中的、与1个以上的lu的地址相对应的有效的数据中起始的数据设为以后的处理中的着眼的对象。此外,将s2002或s2017中着眼的有效的数据记载为着眼数据。接着,执行s2003。
227.s2003:gc程序405对于着眼数据,参考保存于元数据区域303的反向查询表502对应的条目,确认与着眼数据对应的各lu。接着,执行s2004。
228.s2004:gc程序405对于s2003中确认的各lu,判断访问处理是否包含本控制器101中分配的lu。gc程序405在包含本控制器101中分配的lu的情况下,将处理转移至s2005。gc程序405在不包含本控制器101中分配的lu的情况下,将处理转移至s2016。
229.s2005:gc程序405对i/o控制程序402指定着眼数据的地址并指示读访问。i/o控制程序402对以指示的地址表示的存储介质106的存储区域中保存的着眼数据进行读访问,并将读结果的数据保存于存储器202的缓冲区域302。接着,执行s2006。
230.s2006:重复判断元数据生成程序1712从缓冲区域302读出读结果的数据,生成重复判断用的元数据。接着,执行s2007。
231.s2007:重复判断程序1713使用重复判断元数据表1806和s2006中生成的重复判断用的元数据,判断是否还存在与s2005中读出的数据一致的数据(是否检测到元数据的重复)。重复判断程序1713在检测到元数据的重复的情况下,将处理转移至s2008。重复判断程序1713在未检测到元数据的重复的情况下,将处理转移至s2009。
232.s2008:重复判断程序1713对于s2007中检测到一致的数据,确定连接于存储介质节点102的存储介质106中的保存目的地的地址。接着,执行s2012。
233.s2009:数据配置管理程序403参考反向查询表502和使用页表503,从本控制器101管理的gc处理的对象外的页,决定成为着眼数据的转移目的地的由连接于存储介质节点102的存储介质106构成的存储区域中的地址。接着,执行s2010。
234.s2010:gc程序405对i/o控制程序402指定s2009中决定的地址,并指示s2005中进行了读动作的数据的写访问。i/o控制程序402经由通信i/f203对以被指示的地址表示的存储介质106的存储区域进行写访问,并保存从缓冲区域302读出的数据。接着,执行s2011。
235.s2011:数据配置管理程序403对于保存于元数据区域303的反向查询表502,从与着眼数据对应的条目中保存的lu和lu内的地址信息,仅选择与访问处理分配给本控制器101的lu对应的信息。数据配置管理程序403将选择的信息追加至与s2009中作为数据的转移目的地决定的地址对应的反向查询表502的条目中。接着,执行s2012。
236.s2012:数据配置管理程序403对于保存于元数据区域303的映射表501中、与s2011中选择性地进行了复制的lu和lu内的地址对应的各条目,以指示s2008中作为一致的数据的保存目的地被确定的地址或s2009中作为数据的转移目的地决定的地址的方式更新。接着,执行s2013。
237.s2013:数据配置管理程序403对于保存于元数据区域303的反向查询表502,从与着眼数据对应的条目删除s2011中选择性地进行了复制的lu和lu内的地址。接着,执行s2014。
238.s2014:数据配置管理程序403对于s2013中删除了lu和lu内的地址的条目,删除所有的lu和lu内的地址,并判断对应的存储区域的数据是否为无效的状态。数据配置管理程序403在存储区域的数据是无效的状态的情况下,将处理转移至s2015。数据配置管理程序403在存储区域的数据不是无效的状态的情况下,将处理转移至s2016。
239.s2015:数据配置管理程序403对于与s2013中删除了lu和lu内的地址的条目对应的存储区域的地址,从重复判断元数据表1806删除与存储区域的地址对应的条目。接着,执行s2016。
240.s2016:gc程序405判断着眼数据的下一有效的数据是否存在于同一页内。gc程序405在有效的数据存在于同一页内的情况下,将处理转移至s2017。gc程序405在有效的数据未存在于同一页内的情况下,将处理转移至s2018。
241.s2017:gc程序405将在gc处理的对象的页内着眼的数据变更为下一有效的数据。接着,执行s2003。
242.s2018:gc程序405判断在gc处理的对象的页内是否残留有效的数据。gc程序405在gc处理的对象的页内残留有有效的数据的情况下,将处理转移至s2019。gc程序405在gc处理的对象的页内未残留有效的数据的情况下,结束一连串的动作。
243.s2019:gc程序405向移管候选页表505保存gc处理的对象的页的地址,并结束一连串的动作。
244.另外,在本实施方式中,图10中表示的流程图中,s1003、s1004、s1005成为以下的动作。
245.s1003:控制器101a的无效数据通知程序410参考控制器101a的元数据区域303中保存的无效区域表504(图18),读出作为无效数据的通知对象的控制器101b管理的页中包含的、连接于保存有无效的数据的存储区域的存储介质节点102的存储介质106的地址和解除了相对应的lu以及lu内的地址的信息。接着,执行s1004。
246.s1004:控制器101a的无效数据通知程序410将s1003中读出的地址和解除了相对应的lu以及lu内的地址的信息,经由通信i/f203通知给作为无效数据的通知对象的控制器101b。接着,执行s1005。
247.s1005:控制器101b的区域无效化程序411对于从控制器101a通知的、与连接于存储介质节点102的存储介质106中的地址对应的反向查询表502的条目,删除同时通知的lu和lu内的地址。另外,控制器101b的区域无效化程序411对于删除了lu和lu内的地址的条目,删除所有的lu和lu内的地址,在对应的存储区域的数据为无效的状态的情况下,对于与条目对应的存储区域的地址,从重复判断元数据表1806删除与存储区域的地址对应的条目,并结束一连串的动作。
248.根据本实施方式,在多个控制器101共享存储区域的存储系统100中,利用各控制器101实现重复排除功能,且转移访问处理和存储区域管理,由此,实现控制器101间的负荷分散,且能够维持降低了控制器101间的依赖关系的状态。
249.此外,本发明不限定于以上的实施方式,包含各种派生形式。例如,在第一、第二、第三实施方式中,控制器101a、101b的各功能设为处理器201中动作的软件,管理节点103的各功能设为处理器601中动作的软件,但功能的一部分或全部也可以是硬件的实现。另外,在第一、第二、第三实施方式中,控制器101a、101b、存储介质节点102、管理节点103通过网络104被连接,但它们也可以是同一壳体、同一硬件内的总线、背板等进行的连接。
250.另外,在第一、第二、第三实施方式中,控制器101a、101b的映射表501保存于存储器202的缓冲区域302,但也可以一部分或全部保存于由连接于存储介质节点102的存储介质106构成的存储区域。此时,也可以在访问处理的权限的转移中,代替映射表501的信息,将该存储区域的保存目的地的地址在控制器101间复制。同样,在第一、第二、第三实施方式中,控制器101a、101b的反向查询表502的一部分或全部也可以保存于由连接于存储介质节点102的存储介质106构成的存储区域。此时,也可以在控制器101间的gc处理的移管中,代替反向查询表502的信息,将该存储区域的保存目的地的地址在控制器101间复制。
251.(4)附记
252.上述的实施方式中包含例如以下那样的内容。
253.在上述实施方式中,对将本发明应用于存储系统的情况进行了叙述,但本发明不限于此,能够广泛应用于其它各种系统、装置、方法、程序。
254.另外,在上述的实施方式中,各表的结构为一例,一个表也可以分割成两个以上的表,两个以上的表的全部或一部分也可以为一个表。
255.另外,在上述的实施方式中,为了便于说明,使用xx表说明了各种数据,但数据结构没有限定,也可以表达为xx信息等。
256.另外,在上述的说明中,实现各功能的程序、表、文件夹等信息能够设置于存储器、硬盘、ssd等存储装置;或ic卡、sd卡、dvd等记录介质。
257.上述的实施方式具备例如以下的特征性的结构。
258.一种存储系统(例如存储系统100),包括一个以上的存储介质(例如存储介质106)和对主机(例如主机105)提供存储功能的多个控制器(例如控制器101),上述多个控制器共享上述存储介质的存储区域(例如虚拟性的存储区域、物理性的存储区域),该存储系统中,用于进行数据的写入和数据的排序的上述存储区域(例如页)被分配给各控制器(例如参考使用页表503),各控制器将对被分配给控制器的逻辑区域(例如lu)的数据进行访问处理的权限在控制器间转移(例如参考图9),对于由于将上述访问处理的权限从第一控制器(例如控制器101a)转移至第二控制器(例如控制器101b)而存在与多个控制器的逻辑区域相关的数据的第一存储区域,上述第一控制器和上述第二控制器将关于写请求的更新后数据写入被分配给本控制器的存储区域(例如参考图8),并删除上述第一存储区域的更新前数据,在对数据进行排序的排序处理(例如gc处理)中,一边交接上述第一存储区域的分配,一边将本控制器具有访问处理的权限的上述第一存储区域的数据转移至分配给本控制器的其它的存储区域(例如参考图12)。
259.在上述结构中,一边交接第一存储区域的分配,一边将本控制器将具有访问处理
的权限的第一存储区域的数据转移至分配给本控制器的其它的存储区域。因此,在控制器间的访问处理的权限的转移中,即使在各访问处理的对象的数据混合存在于存储区域内的情况下,也能够实现控制器间的处理的依赖关系的降低。其结果,能够实现存储系统中的控制器的增设带来的性能的提高、控制器资源的利用效率的提高等。
260.上述第一控制器和上述第二控制器在成为上述存储区域中不存在有效的数据的情况时,释放上述存储区域的分配(例如参考图15)。
261.在上述排序处理中,被分配了上述第一存储区域的第一控制器将本控制器具有访问处理的权限的数据转移到分配给本控制器的存储区域之后,将上述第一存储区域的分配交接给上述第二控制器,上述第二控制器使本控制器具有访问处理的权限的数据转移至分配给本控制器的存储区域(例如参考图12)。
262.上述第一控制器和第二控制器分别能够读取未分配存储区域的存储区域的数据,上述第二控制器在分配交接之前接受了本控制器具有访问处理的权限的上述第一存储区域的数据的读请求的情况下,从上述第一存储区域读出该数据并将其发送(例如参考图7)。
263.在上述排序处理中,在将访问处理的权限在控制器间转移之前,在规定的时机进行在相同的上述存储区域内对数据进行排序,在将访问处理的权限在控制器间转移之后,向其它的上述存储区域对数据进行排序。
264.分配给各控制器的存储区域的大小为规定的大小,各控制器根据伴随数据的存储的容量的增减,按照上述规定的大小进行本控制器进行数据的写入和数据的排序的区域的分配和释放(例如参考图15和图16)。
265.在上述结构中,根据伴随数据的存储的容量的增减进行存储区域的分配和释放,因此,能够消除分配给各控制器的存储区域的不足和偏离。另外,进行排序处理的存储区域的单位与进行分配和释放的存储区域的单位一致,因此,对于随着排序处理的交接而进行了权限的转移的存储区域,也能够与其它的存储区域一样地进行释放和再分配。
266.各控制器在上述排序处理中,对要从上述存储区域进行转移的转移对象的数据确认其与其它数据是否重复,在存在重复的数据且该重复的数据为无效的情况下,不进行上述转移对象的数据的转移,而从上述存储区域消除上述转移对象的数据(例如参考图20a、图20b和图20c)。
267.在上述结构中,利用各控制器进行数据的重复排除,并且实现控制器间的负荷分散,且维持降低了控制器间的处理的依赖关系的状态。
268.在对于上述第一存储区域的写入和排序的权限被分配给上述第一控制器的情况下,上述第二控制器在写请求中存储用于将上述第一存储区域的更新前数据进行无效化的无效信息,与上述写请求异步地对上述第一控制器通知上述无效信息(例如参考s1001)。
269.在上述结构中,与访问处理异步地对第二控制器通知无效信息,因此,例如能够避免通信的开销的影响。
270.各控制器在上述排序处理中与上述数据的转移异步地进行上述交接(例如参考图12)。
271.在上述结构中,异步地进行排序处理的转移和交接,因此,例如能够避免通信的开销的影响。
272.另外,对于上述的结构,也可以在不超过本发明宗旨的范围内,适当变更、重组、组
合或省略。
273.要理解为“a、b和c中的至少一项”之类的形式中的列表中包含的项目能够是指(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。同样,“a、b、或c中的至少一项”的形式中列表的项目能够是指(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。
274.附图标记说明
275.100
……
存储系统,101
……
控制器。
再多了解一些

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

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

相关文献