首页 / 存储系统

存储系统实质审查 发明

技术领域

[0001] 本发明涉及一种存储系统。

相关背景技术

[0002] 目前,在对数据的保存要求高可靠性的诸多计算机系统中,为了提高性能和可用性,使用具备保存数据的存储介质和多个执行访问处理的控制器的存储系统。这些存储系统在多个控制器之间具有控制冗余,即使在一部分控制器停止的情况下,也能够向外部的主机提供对存储区域的访问。
[0003] 另外,近年来,在具备多个控制器的存储系统中,提供了在向主机继续提供访问的状态下将控制器替换为新的装置的功能。
[0004] 通过使用该功能来更新控制器的硬件,能够不停止来自主机的访问而提高存储器的访问性能、功能。另外,由于能够直接使用构成存储器的存储介质,所以与更新整个存储系统的情况相比,具有降低更新存储器所需的装置的价格且无需在存储系统的更新作业时复制存储介质内的数据的优点。
[0005] 在存储系统的控制器的更新过程中,会对包括控制信息的元数据从原来的控制器对照新的控制器进行转换处理。在多数情况下,在新的控制器中,随着硬件的更新,性能提高所需的资源量也会增加。另外,还会进行软件的功能强化、改进。随着这些硬件、软件的变更,控制器的控制所需的信息发生变化,从而在各代控制器之间发生元数据格式的变化。另一方面,由于不更新存储介质,因此需要交接访问所存储的数据所需的控制信息。因此,根据新的控制器的硬件结构和软件控制来将原来的控制器正在使用的元数据进行转换并交接。
[0006] 在不停止来自主机的访问而对存储控制器具有的元数据进行转换的情况下,特别是在即使在控制器的更新作业中也需要确保冗余性的存储系统中,元数据的转换处理和对于来自主机的访问请求的处理在同一控制器内并行执行。此时,通过元数据的转换,生成在新的控制器中使用的元数据,另一方面,在访问请求的处理中,使用转换源的元数据并进行参照和更新,直到元数据的转换完成为止。因此,在完成元数据的转换处理且完成将控制交接至新的控制器之前的期间,在进行转换处理的控制器的内存上存在转换前的元数据和转换后的新的元数据这两者。
[0007] 在不停止来自主机的访问而进行元数据的转换处理且在内存上存在转换源的元数据和新的元数据这两种的状况下,需要根据元数据的转换处理和控制的交接的完成状况进行元数据的参照和更新。例如,在通过访问处理对转换源的元数据进行更新的情况下,在待更新的元数据的转换已经结束时,需要将针对元数据的更新反映到转换后的新的元数据中,因此需要对原来的元数据和新的元数据这两者进行更新。
[0008] 另一方面,在待更新的元数据的转换未完成时,能够通过仅更新原来的元数据,将元数据的更新反映到转换后的新的元数据中。另外,在元数据的转换完成之后,在将存储系统的控制交接至新的控制器的前后,需要将访问处理中使用的元数据从转换前的原来的元数据切换为转换后的新的元数据。
[0009] 在专利文献1中公开了一种用于追加如下功能的技术:即针对存储系统的控制软件的各个元数据访问部分,根据控制器的更新作业中的与新的控制器对应的元数据的转换处理的进展状况以及控制器的控制的切换状况,来切换访问目标元数据。通过在控制软件的各个元数据访问部分中增加切换访问目标元数据的处理,能够在更新控制器的同时应对元数据格式的转换处理,而无需变更控制软件的元数据访问以外的动作步骤。
[0010] 以往技术文献
[0011] 专利文献
[0012] 专利文献1:日本特开2022‑55614号公报

具体实施方式

[0036] 以下,基于附图对本发明的实施例进行说明。在附图中,有时用相同的编号表示功能相同的要素。附图表示遵照本发明的原理的具体的实施方式和实施例。这些实施方式和实施例是为了理解本发明,不能用于限定性地解释本发明。在实施方式和实施例中说明的要素未必全部是解决本发明的课题所需要的。
[0037] 在本说明书的一个实施例中,为了防止在需要判断和切换访问目标元数据的控制器的更新作业以外的状态下产生开销,仅在进行控制器的更新作业的状态下,对控制软件的元数据访问部分应用访问目标元数据的判断和切换处理。在不进行控制器的更新作业的情况下,控制软件不需要处理两种元数据,不经由访问目标元数据的判断和切换处理而直接访问元数据,由此避免开销的产生。
[0038] 因此,在原来的控制器或新的控制器的控制中的各元数据访问位置,准备应用了访问目标元数据的判断和切换处理的状态和未应用这一处理的状态的两种代码。并且,区分使用这两种代码,以便在除了控制器的更新作业以外使用未应用访问目标元数据的判断和切换处理的代码。这两种代码的区分使用通过如下方式实施:通过控制器的控制软件的更新来静态切换要执行的代码,或者在可执行状态下预先准备两种代码,在进行控制器的更新作业的情况下动态切换要执行的代码。
[0039] 在静态切换要执行的代码的情况下,在控制器的更新作业步骤中更新控制器的控制软件。更新控制软件的时间根据元数据的转换处理是由原来的控制器进行还是由新的控制器进行而不同。在由原来的控制器进行元数据的转换处理的情况下,在转换处理开始前,将原来的控制器的控制软件更新为应用了访问目标元数据的判断和切换功能的代码。通过进行该步骤,在即将进行控制器的更新作业之前不需要应用引起开销的处理,因此能够避免性能下降。另外,在由新的控制器进行元数据的转换处理的情况下,预先对作为更新目标的新的控制器的控制软件应用访问目标元数据的判断和切换功能。并且,在完成元数据的转换处理并从控制器交接了存储系统的控制之后,将新的控制器的控制软件更新为未应用访问目标元数据的判断和切换功能的代码,避免在控制器的更新处理完成后发生性能下降。
[0040] 另一方面,在动态切换要执行的代码的情况下,在进行元数据的转换处理的控制器中,在控制器能够执行的状态下准备对控制软件内的元数据访问位置应用了访问目标元数据的判断和切换功能的代码和未应用这一功能的两种代码,判断控制器是否处于更新作业中,选择要执行的代码。并且,通过以包括多次元数据访问的代码单位来实施要执行的代码的选择处理,避免每次访问元数据时发生判断和分支处理。例如按控制软件中的函数为模块来进行要执行的代码的选择处理,由此以包括多次元数据访问的代码单位来进行条件判断和分支,减少开销,减缓伴随条件判断和分支的性能下降。
[0041] [实施例1]
[0042] 在本实施例中,对在多个控制器共享存储介质的存储系统中不停止来自主机的访问而更新控制器的例子进行说明。构成存储系统的存储介质在控制器的更新后也直接继续使用。
[0043] 图1是表示实施例1中的存储系统和对存储系统进行访问请求的主机的结构例的图。
[0044] 存储系统包括控制器101A、101B、存储介质节点102和存储介质节点102所包括的存储介质103。存储介质103也被称为存储驱动器,例如可以是HDD、SSD。存储系统的各构成要素的数量是任意的。
[0045] 控制器101A与101B之间通过控制器间连接104连接,控制器101A、101B与存储介质节点102之间通过后端连接105连接。另外,控制器101A、101B与网络106连接,向外部的主机107和管理主机108提供访问。
[0046] 控制器101A、101B向主机107提供对映射到存储介质103的存储区域的存储器的访问。
[0047] 存储介质节点102包括作为存储区域的映射目标的存储介质103,向控制器101A、101B提供访问。控制器101A、101B共享存储介质节点102的存储介质103,能够从任一控制器不经由另一个控制器而直接访问存储介质103。
[0048] 存储介质103提供存储器的存储区域。存储介质103由控制器101A、101B共享,经由后端连接105被访问。
[0049] 控制器间连接104将控制器101A与101B连接,提供用于在控制器间高速共享控制信息、写入数据的通信路径。
[0050] 后端连接105将控制器101A、101B与存储介质节点102连接,提供控制器101A、101B对存储介质103的访问路径。
[0051] 网络106将控制器101A、101B与主机107和管理主机108连接,提供主机107对存储系统的访问路径。
[0052] 主机107进行由控制器101A、101B提供的对存储系统的存储区域的访问请求。
[0053] 管理主机108通过网络106对存储系统的控制器101A、101B进行更新作业所需的操作。
[0054] 新控制器109A、109B在控制器的更新作业开始后与控制器间连接104、后端连接105以及网络106连接,分别接收由现有控制器101A、101B转换后的元数据,交接存储系统的控制。在此,新控制器109A从现有控制器101A接收转换元数据,新控制器109B从现有控制器
101B接收转换元数据。在本实施例中,以从现有控制器101的一方对新控制器109的一方进行元数据的交接为前提,但也可以是例如从现有控制器101的一方对新控制器109的双方进行元数据的交接。
[0055] 此外,也可以保留控制器101A、101B,并存在进一步追加的控制器。追加的控制器通过控制器间连接104与控制器101A、101B连接,通过后端连接105与存储介质节点102连接,经由网络106与主机107和管理主机108连接。
[0056] 另外,控制器间连接104、后端连接105、网络106的结构不限于图1所示的结构,例如网络106对控制器101A、101B的连接也可以兼具控制器间连接104的作用。另外,也可以是存储介质节点102与网络106连接,而网络106兼具后端连接105的作用。
[0057] 图2是表示实施例1中的控制器101A、101B以及新控制器109A、109B的结构例的图。此外,控制器101A、101B可以具有同样的结构,附图仅示出了控制器101A。另外,关于新控制器109A、109B,可以是个别的构成要素的性能、容量与控制器101A、101B不同,但具有与控制器101A、101B同样的结构。
[0058] 控制器101A具有一个以上的处理器201、一个以上的内存202、一个以上的控制器间连接I/F203、一个以上的后端连接I/F204以及一个以上的网络I/F205。
[0059] 处理器201使用内存202执行实现控制器功能的程序,向主机107提供对作为逻辑存储区域的卷以及分配给该卷的存储介质103的物理存储区域的访问。
[0060] 内存202存储在处理器201上运行的程序、以及程序使用的元数据和需要临时保存的数据。
[0061] 控制器间连接I/F203与控制器间连接104连接,进行与控制器101B之间共享控制信息、写入数据相关的收发。
[0062] 后端连接I/F204与后端连接105连接,进行与连接于存储介质节点102的存储介质103的访问相关的数据的收发。
[0063] 网络I/F205与网络106连接,用于与来自主机107的访问请求相关的数据的收发、以及与管理主机108之间的数据的收发。
[0064] 对于控制器间连接I/F203、后端连接I/F204以及网络I/F205中的通信标准和协议,只要能够进行上述动作,就没有特别限定。另外,在网络106兼作控制器间连接104的情况下,也可以是网络I/F205兼带控制器间连接I/F203的动作的结构。同样地,在网络106兼作后端连接105的情况下,也可以是网络I/F205兼带后端连接I/F204的动作的结构。
[0065] 图3是表示实施例1中的控制器101A、101B所包括的内存202的存储数据的结构例的图。内存202具有程序区域301、元数据区域302、转换元数据区域303以及元数据转换控制信息区域304。
[0066] 程序区域301存储由处理器201执行的、用于实现存储系统的控制器功能的程序。
[0067] 元数据区域302存储元数据,该元数据共程序区域301中存储的程序在存储系统的控制中使用,其包括存储区域的管理信息和控制器的控制信息。
[0068] 转换元数据区域303在控制器的更新作业开始后,存储从元数据区域302中存储的元数据转换成的、转换为新控制器109A、109B能够使用的形式的元数据。
[0069] 元数据转换控制信息区域304存储与元数据区域302中存储的元数据的转换处理以及向新控制器109A、109B的控制的移交处理有关的控制信息。
[0070] 转换元数据区域303和元数据转换控制信息区域304在控制器的更新作业开始前是不需要的,但也可以预先准备。
[0071] 图4A、4B是表示实施例1中的控制器101A、101B的内存202所包括的程序区域301的结构例的图。图4A、4B分别表示控制器的更新步骤中的软件的更新前、更新后的程序区域301的结构。通过更新而追加的软件例如与软件更新指示一起从管理主机108发送。在软件更新前的程序区域301中,如图4A所示那样存储有存储控制程序401。在软件更新后的程序区域301中,如图4B所示那样存储有存储控制程序401、元数据转换程序402、元数据切换程序403和控制移交程序404。元数据切换程序403是用于控制对元数据的访问的访问控制代码。
[0072] 存储控制程序401进行存储系统整体的控制,进行来自主机107的访问请求的执行以及控制器101A、101B的管理、控制所需的处理。
[0073] 元数据转换程序402在控制器的更新作业开始后,将内存202中的元数据区域302中存储的、存储控制程序401使用的元数据转换为新控制器109A、109B使用的形式,并存储在转换元数据区域303中。
[0074] 元数据切换程序403应用于在控制器的更新作业开始后在存储控制程序401中访问元数据的位置。在应用位置,元数据切换程序403在元数据的读写时,确认由元数据转换程序402进行的元数据的转换处理的状况、以及控制移交程序404是否完成了存储系统的控制的移交。
[0075] 元数据切换程序403判断存储控制程序401应该访问元数据区域302和转换元数据区域303中存储的元数据中的哪一个,并且进行元数据的读写。在应用元数据切换程序403时,当访问元数据时,伴随上述判断处理产生开销,与未应用元数据切换程序403时相比,存储系统的访问性能下降。
[0076] 控制移交程序404在控制器的更新作业开始后,经由网络106接受来自管理主机108的指示,开始由元数据转换程序402进行的元数据转换处理,从控制器101A、101B向新控制器109A、109B传送转换元数据区域303中存储的元数据,并移交存储系统的控制。
[0077] 元数据转换程序402和控制移交程序404在控制器的更新作业开始前是不需要的,但也可以预先安装。
[0078] 图5是表示实施例1中的控制器101A、101B的内存202所包括的元数据转换控制信息区域304的结构例的图。元数据转换控制信息区域304存储元数据转换进展信息501和控制器控制移交标志502。
[0079] 元数据转换进展信息501表示针对元数据区域302中存储的元数据的转换处理的进展状况。元数据转换进展信息501由元数据转换程序402根据元数据的转换处理的进展来更新。元数据转换进展信息501的形式依赖于对元数据进行转换处理的顺序,例如在按照存储元数据的地址的顺序来进行元数据的转换处理的情况下,由已完成元数据的转换处理的地址来表示。
[0080] 控制器控制移交标志502表示与向新控制器的控制的移交相关的进展状况,在从控制器101A或者101B向新控制器109A或者109B移交控制的情况下,通过控制移交程序404对全部的控制器101A、101B进行设置。控制器控制移交标志502也可以设为表示在任意的控制器中已经完成向新控制器的控制的移交的单个标志以外的形式,例如也可以用表示控制器101A、101B各自的控制是否已经被移交到新控制器109A、109B的标志的集合来表示。
[0081] 图6是表示实施例1中的新控制器109A、109B所包括的内存202的存储数据的区域的结构例的图。内存202具有新程序区域601和新元数据区域602。
[0082] 在新程序区域601中存储有在新控制器109A、109B中由处理器201执行的用于实现存储系统的新的控制器功能的程序。
[0083] 新元数据区域602存储从控制器101A、101B传送的转换后的元数据。并且,新程序区域601中存储的程序在从控制器101A、101B移交控制后,使用新元数据区域602中存储的转换后的元数据开始存储系统的控制。
[0084] 图7是表示实施例1中的新控制器109A、109B的内存202所包括的新程序区域601的结构例的图。
[0085] 在新程序区域601中存储有新存储控制程序701和控制交接程序702。
[0086] 新存储控制程序701进行控制器更新后的存储系统整体的控制,进行来自主机107的访问请求的执行以及新控制器109A、109B的管理、控制所需的处理。由新存储控制程序701进行的存储系统的控制,于在控制交接程序702中从控制器101A、101B的控制移交完成的时刻开始动作。
[0087] 控制交接程序702从控制器101A、101B接收转换后的元数据,并且当存储系统的控制被移交时,开始由新存储控制程序701进行的控制。
[0088] 图8是表示实施例1中的控制器101A、101B的存储控制程序401在应用了元数据切换程序403的状态下读取待访问的元数据时的处理流程的流程图。基于图8的流程图的动作如下。
[0089] 步骤801:元数据切换程序403通过参照元数据转换控制信息区域304所包括的控制器控制移交标志502,来确认控制器101A、101B中的任意一个的控制被转移(移交)到了新控制器109A、109B之后的转换后的元数据是否处于有效状态,接着实施步骤802。
[0090] 步骤802:在步骤801中的确认结果为转换前的元数据有效的情况下(在转换后的元数据尚未有效的情况下)实施步骤803,在转换后的元数据有效的情况下实施步骤804。
[0091] 步骤803:存储控制程序401经由元数据切换程序403读取元数据区域302中存储的转换前的待访问的元数据,并且结束一系列的动作。
[0092] 步骤804:存储控制程序401经由元数据切换程序403读取转换元数据区域303中存储的转换后的待访问的元数据,并且结束一系列的动作。由此,在新控制器109A、109B的动作开始后,旧控制器101A、101B也能够与新控制器109A、109B一起适当地动作。此外,在本实施例中,为了防止由于图8的流程图的动作而同时存在访问转换后的元数据的控制器和访问转换前的元数据的控制器,所有控制器的控制的移交也可以等到所有控制器的元数据转换完成。
[0093] 图9是表示实施例1中的控制器101A、101B的存储控制程序401在应用了元数据切换程序403的状态下写入待访问的元数据时的处理流程的流程图。基于图9的流程图的动作如下。
[0094] 步骤901:元数据切换程序403通过参照元数据转换控制信息区域304所包括的控制器控制移交标志502,来确认控制器101A、101B中的任意一个的控制被转移(移交)到了新控制器109A、109B之后的转换后的元数据是否处于有效状态,接着实施步骤902。
[0095] 步骤902:在步骤901中的确认结果为转换前的元数据有效的情况下(在转换后的元数据尚未有效的情况下)实施步骤903,在转换后的元数据有效的情况下实施步骤906。
[0096] 步骤903:存储控制程序401经由元数据切换程序403写入元数据区域302中存储的转换前的待写入的元数据,接着实施步骤904。
[0097] 步骤904:元数据切换程序403参照元数据转换控制信息区域304所包括的元数据转换进展信息501,确认待写入的元数据是否已经被元数据转换程序402转换完毕。
[0098] 步骤905:在步骤904中的确认结果为待写入的元数据的转换处理未完成的情况下,结束一系列的动作,在转换处理已经完成的情况下,实施步骤906。
[0099] 步骤906:存储控制程序401经由元数据切换程序403写入转换元数据区域303中存储的转换后的待写入的元数据,并且结束一系列的动作。此外,在步骤905中,在待写入的元数据的转换处理未完成的情况下,不对转换元数据区域303进行更新而结束动作,但也可以对转换元数据区域303进行待写入的元数据的转换并且存储。另外,在本实施例中,为了防止由于图9的流程图的动作而同时存在访问转换后的元数据的控制器和访问转换前的元数据的控制器,所有控制器的控制的移交也可以等到所有控制器的元数据转换完成。
[0100] 图10是表示实施例1中的从控制器101A、101B向新控制器109A、109B的更新处理的流程的流程图。基于图10的流程图的动作如下。
[0101] 步骤1001:管理主机108接受控制器的更新作业开始的指示,指示控制器101A、101B更新为包括元数据转换程序402、元数据切换程序403和控制移交程序404的程序,接着实施步骤1002。在本步骤中,对于控制器101A、101B,元数据切换程序403处于未应用的状态,没有发生伴随开销的存储系统的性能下降。
[0102] 步骤1002:控制器101A、101B对内存202的程序区域301中存储的存储控制程序401应用元数据切换程序403,将元数据转换程序402和控制移交程序404存储在程序区域301中。然后,控制器101A、101B开始执行应用了元数据切换程序403的存储控制程序401,接着实施步骤1003。本步骤完成,在访问元数据时执行元数据切换程序403,由此发生伴随开销的存储系统的性能下降。
[0103] 步骤1003:控制移交程序404待机,直到存储控制器维护人员设置新控制器109A、109B并将其与控制器101A、101B同样地与控制器间连接104、后端连接105和网络106连接。
在待机中,通过更新后的存储控制程序401继续处理来自主机107的访问请求。待机完成后实施步骤1004。
[0104] 步骤1004:控制移交程序404指示元数据转换程序402开始转换元数据区域302中存储的元数据。元数据转换程序402将元数据区域302的元数据转换为新控制器109A、109B能够使用的形式,并存储在转换元数据区域303中,接着实施步骤1005。在本步骤期间,存储控制程序401通过应用的元数据切换程序403,根据元数据的转换处理状况,从元数据区域302和转换元数据区域303判断应访问的元数据,并实施读写。
[0105] 步骤1005:控制器101A的控制移交程序404将通过元数据转换程序402存储在转换元数据区域303中的转换后的元数据通过控制器间连接104传送到新控制器109A。控制器101B的控制移交程序404将通过元数据转换程序402存储在转换元数据区域303中的转换后的元数据通过控制器间连接104传送到新控制器109B。新控制器109A、109B的控制交接程序
702将接收到的元数据存储在内存202的新元数据区域602中,接着实施步骤1006。
[0106] 步骤1006:控制移交程序404在完成转换后的元数据向新控制器109A、109B的传送时,停止处理存储控制程序401中的来自主机107的访问请求,通过控制器间连接104,对新控制器109A、109B移交存储系统的控制。转换后的元数据的传送以及控制的移交可以在两对新旧控制器间独立地执行,也可以在控制器101A、101B双方完成转换后的元数据的传送后,执行两对控制器的控制的移交。另外,控制移交程序404通知管理主机108控制已经移交给了新控制器109A、109B,接着实施步骤1007。
[0107] 步骤1007:管理主机108针对主机107将存储系统的访问目标控制器从控制器101A、101B变更为新控制器109A、109B,接着实施步骤1008。
[0108] 步骤1008:新控制器109A、109B的控制交接程序702开始由新存储控制程序701进行的控制并交接存储系统的控制,接着实施步骤1009。新控制器109A、109B的新存储控制程序701不包括访问目标元数据的判断处理,因此不会发生伴随开销的存储系统的性能下降。
[0109] 步骤1009:控制器101A、101B停止动作,由存储控制器维护人员从控制器间连接104、后端连接105和网络106拆下,由此结束一系列的动作。
[0110] 在步骤1005、步骤1006的动作中,在控制器101A、101B与新控制器109A、109B之间进行的通信的路径不限于控制器间连接104,也可以使用后端连接105或网络106。另外,步骤1005中的元数据的传送除了在步骤1004中的元数据的转换处理完成后一起进行以外,例如也可以是随时发送转换完成的元数据的方法。
[0111] 根据本实施例,在具有多个控制器的存储系统中,在不停止向主机提供访问而更新控制器的情况下,能够避免在更新作业以外发生性能下降。
[0112] [实施例2]
[0113] 在本实施例中,对在多个控制器共享存储介质的存储系统中不停止来自主机的访问而更新控制器的例子进行说明。与实施例1同样地,存储系统的存储介质在控制器的更新后也直接继续使用。另外,在本实施例的说明中,主要说明与实施例1中的结构、动作的差异,关于不进行说明的构成要素、标号和动作,与实施例1相同。
[0114] 图11是表示实施例2中的控制器101A、101B的内存202所包括的程序区域301的结构例的图。在程序区域301中存储有存储控制程序1101、构成存储控制程序1101的通常时代码1102(第一代码)、更新时代码1103(第二代码)、元数据转换程序402和控制移交程序404。
[0115] 存储控制程序1101进行存储系统整体的控制,进行来自主机107的访问请求的执行以及控制器101A、101B的管理、控制所需的处理。另外,存储控制程序1101对应于访问元数据时的各个处理,具有在控制器的更新作业以外执行的通常时代码1102和仅在控制器的更新作业时执行的更新时代码1103。存储控制程序1101在执行具有通常时代码1102和更新时代码1103的各个处理时,确认是否处于控制器的更新作业中,仅在控制器的更新作业时执行更新时代码1103,在除此以外的情况下执行通常时代码1102,由此减缓由开销引起的存储系统的性能下降。
[0116] 通常时代码1102是执行存储控制程序1101的处理的代码。通常时代码1102是针对访问元数据时的处理而准备的,在元数据访问时不进行访问目标元数据的判断,而是直接读写内存202的元数据区域302中存储的元数据。针对控制器101A、101B的管理、控制的各个处理的通常时代码1102由存储控制程序1101在控制器的更新作业以外的情况下执行。
[0117] 更新时代码1103是执行存储控制程序1101的处理的代码的一部分,针对访问元数据时的处理而与通常时代码1102一起准备的。更新时代码1103包括用于控制元数据的访问目标的访问控制代码。
[0118] 更新时代码1103根据由元数据转换程序402进行的元数据的转换处理的状况、以及控制移交程序404是否完成了存储系统的控制的移交,从内存202的元数据区域302和转换元数据区域303中存储的元数据中选择成为访问目标的元数据。针对控制器101A、101B的管理、控制的各个处理的更新时代码1103产生与访问目标元数据的选择处理对应的开销,因此仅在控制器的更新作业中执行。
[0119] 在本实施例中,由于在控制器101A、101B的更新作业中不更新控制软件,因此在控制器的更新作业开始前预先准备元数据转换程序402和控制移交程序404。
[0120] 图12是表示实施例2中的控制器101A、101B的内存202所包括的元数据区域302的结构例的图。在元数据区域302中存储有存储控制信息1201和控制器更新标志1202。
[0121] 存储控制信息1201是在控制存储系统时使用的存储区域的管理信息和控制器的控制信息。
[0122] 控制器更新标志1202表示是否处于控制器的更新作业中,接受来自管理主机108的控制器更新作业的开始指示而被设置。
[0123] 图13是表示实施例2中的从控制器101A、101B向新控制器109A、109B的更新处理的流程的流程图。基于图13的流程图的动作如下。
[0124] 步骤1301:管理主机108接受控制器的更新作业开始的操作,指示控制器101A、101B开始控制器的更新处理,接着实施步骤1302。
[0125] 步骤1302:当控制器101A、101B的控制移交程序404从管理主机108接受控制器的更新处理的开始指示时,设置内存202的元数据区域302所包括的控制器更新标志1202。另外,开始由元数据转换程序402进行的元数据区域302中存储的存储控制信息1201的转换处理。由此,控制器更新标志1202表示转换处理的开始。元数据转换程序402将存储控制信息1201转换为新控制器109A、109B能够使用的形式,并存储在转换元数据区域303中,接着实施步骤1303。
[0126] 步骤1303:控制移交程序404待机,直到新控制器109A、109B完成设置且与控制器101A、101B同样地连接到控制器间连接104、后端连接105和网络106。在待机中,由存储控制程序1101继续处理来自主机107的访问请求。待机完成后实施步骤1304。
[0127] 步骤1304:控制移交程序404将通过元数据转换程序402存储在转换元数据区域303中的转换后的元数据通过控制器间连接104传送到新控制器109A、109B。新控制器109A、
109B的控制交接程序702将接收到的元数据存储在内存202的新元数据区域602中,接着实施步骤1305。
[0128] 步骤1305:当转换后的元数据完成向新控制器109A、109B的传送时,控制移交程序404停止处理存储控制程序1101中的来自主机107的访问请求,通过控制器间连接104对新控制器109A、109B移交存储系统的控制。另外,控制移交程序404通知管理主机108控制已经移交给了新控制器109A、109B,接着实施步骤1306。
[0129] 步骤1306:管理主机108针对主机107将存储系统的访问目标控制器从控制器101A、101B变更为新控制器109A、109B,接着实施步骤1307。
[0130] 步骤1307:新控制器109A、109B的控制交接程序702开始由新存储控制程序701进行的控制并交接存储系统的控制,接着实施步骤1308。新控制器109A、109B的新存储控制程序701不包括访问目标元数据的判断处理,因此不会发生伴随开销的存储系统的性能下降。
[0131] 步骤1308:控制器101A、101B停止动作,由存储控制器维护人员从控制器间连接104、后端连接105和网络106拆下,由此结束一系列的动作。
[0132] 在步骤1304、步骤1305的动作中,在控制器101A、101B与新控制器109A、109B之间进行的通信的路径不限于控制器间连接104,也可以使用后端连接105或网络106。
[0133] 图14是表示实施例2中的在控制器101A、101B中存储控制程序1101执行控制处理的代码的流程的流程图。基于图14的流程图的动作如下。
[0134] 步骤1401:存储控制程序1101在针对接下来要执行的处理不存在更新时代码1103的情况下实施步骤1402,存在的情况下实施步骤1403。
[0135] 步骤1402:存储控制程序1101执行与接下来要执行的处理对应的通常时代码1102,接着实施步骤1401。
[0136] 步骤1403:存储控制程序1101参照内存202的元数据区域302所包括的控制器更新标志1202,确认控制器101A、101B是否正在执行控制器更新处理。在确认结果不是正在执行控制器更新处理的情况下实施步骤1402,是正在执行控制器更新处理的情况下实施步骤1404。
[0137] 步骤1404:存储控制程序1101在接下来要执行的处理中执行在元数据访问中应用了访问目标元数据的选择功能的更新时代码1103,接着实施步骤1401。
[0138] 根据本实施例,在具有多个控制器的存储系统中,在不停止向主机提供访问而更新控制器的情况下,能够减缓在更新作业以外的性能下降。
[0139] 符号说明
[0140] 101‑控制器,102‑存储介质节点,103‑存储介质,104‑控制器间连接,105‑后端连接,106‑网络,107‑主机,108‑管理主机,109‑新控制器,201‑处理器,202‑内存,203‑控制器间连接I/F,204‑后端连接I/F,205‑网络I/F,301‑程序区域,302‑元数据区域,303‑转换元数据区域,304‑元数据转换控制信息区域,401‑存储控制程序,402‑元数据转换程序,403‑元数据切换程序,404‑控制移交程序,501‑元数据转换进展信息,502‑控制器控制移交标志,601‑新程序区域,602‑新元数据区域,701‑新存储控制程序,702‑控制交接程序,1101‑存储控制程序,1102‑通常时代码,1103‑更新时代码,1201‑存储控制信息,1202‑控制器更新标志。

当前第1页 第1页 第2页 第3页
相关技术
小川周吾发明人的其他相关专利技术