存储系统和控制软件配置方法与流程

文档序号:17857487发布日期:2019-06-11 22:39阅读:126来源:国知局
本发明涉及存储系统和控制软件配置方法,例如,适合应用于具有分别安装了1个或多个sds(softwaredefinedstorage:软件定义存储)的多个存储节点的信息处理系统。另外,以下,sds指的是通过在通用的服务器装置中安装具有存储功能的软件而构建的存储装置。
背景技术
::以往,在信息处理系统中,为了提高可用性和可靠性较多地采用服务器装置的冗余化结构。因此,现有的信息处理系统中,提高系统整体的处理性能的情况下,广泛地使用按构成冗余化结构的多个服务器装置单位增减设置物理服务器的横向扩展(scale-out)方式。但是,根据这样的现有的横向扩展方式,存在增加相当于1台的服务器功能的情况下为了冗余化也必须增设多个物理服务器,相应地需要较多的成本的问题。另一方面,近年来,使多台虚拟机在1台物理服务器上运行的虚拟化技术正在广泛普及,也提出了较多的关于虚拟机的冗余化的发明。例如,专利文献1中,公开了将多个当前使用系统的虚拟机、和与这些当前使用系统的虚拟机分别对应地设置的后备系统的虚拟机配置在多个物理服务器中的技术。根据这样的虚拟化技术,具有即使在增设当前使用系统的虚拟机、与其后备系统的虚拟机的组(以下将其称为虚拟机组)的情况下,也无需增设与构成虚拟机组的虚拟机相同数量的物理服务器、可以高效率且廉价地进行横向扩展的优点。现有技术文献专利文献专利文献1:日本特开2014-75027号公报技术实现要素:发明要解决的课题专利文献1中,记载了将当前使用系统的虚拟机、和后备系统的虚拟机分别配置在不同的物理服务器(当前使用系统专用的物理服务器或后备系统专用的物理服务器)中的技术。此处,例如,存在通过在同一个物理服务器中配置一部分当前使用系统的虚拟机和一部分后备系统的虚拟机,而能够有效地使用系统整体的信息处理资源的可能性。于是,提出可以维持对存储系统要求的可用性和可靠性、并且有效地使用系统整体的信息处理资源的存储控制软件的配置方法。为了解决该课题,本发明中,一种具有多个存储节点的存储系统,所述存储节点设有:各自提供存储区域的1个或多个存储装置;和响应来自上级装置的请求而对相应的所述存储装置读写所请求的数据的1个或多个控制软件,各所述控制软件各自保持响应来自所述上级装置的请求而对相应的所述存储装置读写所请求的数据所需的规定的结构信息,多个所述控制软件被作为冗余化组来管理,属于同一个所述冗余化组的各所述控制软件各自保持的所述结构信息被同步地更新,将构成所述冗余化组的多个所述控制软件分别配置在不同的所述存储节点中以使各所述存储节点的负荷平准化。另外,本发明中,一种在具有各自搭载了1个或多个存储装置的多个存储节点的存储系统中,配置响应来自上级装置的请求而对相应的所述存储装置读写所请求的数据的控制软件的控制软件配置方法,各所述控制软件各自保持响应来自所述上级装置的请求而对相应的所述存储装置读写所请求的数据所需的规定的结构信息,包括:第一步骤,构成所述冗余化组的多个所述控制软件分别配置在不同的所述存储节点中以使各所述存储节点的负荷平准化;和第二步骤,将多个所述控制软件作为冗余化组来管理,将属于同一个所述冗余化组的各所述控制软件各自保持的所述结构信息同步地更新。发明效果根据本发明,能够实现可有效地使用系统整体的信息处理资源的存储系统和控制软件配置方法。上述以外的课题、结构和效果,将通过以下实施方式的说明而说明。附图说明图1是表示本实施方式的信息处理系统的整体结构的框图。图2是表示存储节点的概略结构的框图。图3是用于说明与本冗余化功能关联地在存储节点的存储器中保存的程序和信息的框图。图4是表示逻辑-物理变换表的结构例的图表。图5是表示存储节点管理表的结构例的图表。图6是表示控制软件管理表的结构例的图表。图7是用于说明本实施方式的冗余化功能的框图。图8是用于说明本实施方式的冗余化功能的框图。图9是用于说明本实施方式的冗余化功能的框图。图10是用于说明本实施方式的冗余化功能的框图。图11是用于说明本实施方式的冗余化功能的框图。图12是用于说明本实施方式的冗余化功能的框图。图13是用于说明本实施方式的冗余化功能的框图。图14是表示冗余化恢复处理的处理流程的流程图。图15是表示配置位置存储节点决定处理的处理流程的流程图。图16是表示再平衡处理的处理流程的流程图。图17是表示移动对象控制软件决定处理的处理流程的流程图。具体实施方式以下,参考附图,详细叙述本发明的一个实施方式。以下记载和附图是用于说明本发明的示例,为了使说明明确,适当地进行省略和简化。另外,实施方式中说明的特征组合的全部对于发明的解决方案并不是必需的。本发明不受实施方式限制,符合本发明的思想的所有应用例都包括在本发明的技术范围中。对于本发明,如果是本行业从业人员,就能够在本发明的范围内进行各种追加和变更等。本发明也能够用其他各种方式实施。只要没有特别限定,各构成要素就可以是多个或单个。以下说明中,有时用“表格(table)”、“表”、“列表”、“队列”等表达说明各种信息,但各种信息也可以用这些以外的数据结构表达。为了表示不依赖于数据结构,有时将“xx表”、“xx列表”等称为“xx信息”。说明各信息的内容时,使用“识别信息”、“识别符”、“名”、“id”、“编号”等表达,但对于这些能够相互置换。另外,以下说明中,不区分同种要素地进行说明的情况下,使用参考符号或参考符号中的共用编号,区分同种要素地进行说明的情况下,有时使用该要素的参考符号或者代替参考符号地使用对该要素分配的id。另外,以下说明中,存在说明执行程序进行的处理的情况,但程序通过由至少1个以上处理器(例如cpu)运行,而适当使用存储资源(例如存储器)和/或接口设备(例如通信端口)等进行规定的处理,所以也可以认为处理的主体是处理器。同样,运行程序进行的处理的主体也可以是具有处理器的控制器、装置、系统、计算机、节点、存储系统、存储装置、服务器、管理计算机、客户端、或主机。运行程序进行的处理的主体(例如处理器)也可以包括进行处理的一部分或全部的硬件电路。例如,运行程序进行的处理的主体可以包括运行加密和解密、或者压缩和解压缩的硬件电路。处理器通过按照程序工作,而作为实现规定的功能的功能部工作。包括处理器的装置和系统,是包括这些功能部的装置和系统。程序可以从程序源安装至计算机这样的装置。程序源例如可以是程序发布服务器或计算机能够读取的存储介质。程序源是程序发布服务器的情况下,程序发布服务器可以包括处理器(例如cpu)和存储资源,存储资源可以进而存储发布程序和作为发布对象的程序。然后,通过程序发布服务器的处理器运行发布程序,程序发布服务器的处理器可以将发布对象的程序对其他计算机发布。另外,以下说明中,可以将2个以上程序作为1个程序实现,也可以将1个程序作为2个以上程序实现。(1)本实施方式的信息处理系统的结构图1是表示本实施方式的信息处理系统1的结构的图。该信息处理系统1具有多个计算节点2和多个存储节点3而构成。各计算节点2和各存储节点3之间,例如经过由光纤通道(fibrechannel)、以太网(注册商标)、infiniband或无线lan(localareanetwork:局域网)等构成的存储服务网络4连接,并且各存储节点3之间经过由lan、以太网(注册商标)、infiniband或无线lan等构成的后端网络5连接。其中,存储服务网络4和后端网络5可以由同一个网络构成,也可以是各计算节点2和各存储节点3与存储服务网络4和后端网络5以外的管理用网络连接。计算节点2是对于存储节点3起到主机(上级装置)作用的通用的计算机装置。另外,计算节点2也可以是虚拟机这样的虚拟的计算机装置。计算节点2与用户操作和来自安装的应用程序的请求相应地,经由存储服务网络4对存储节点3读写数据。存储节点3是对计算节点2提供用于读写数据的存储区域的服务器装置。存储节点3也可以是虚拟机。另外,也可以是存储节点3与计算节点2同处于同一个物理节点的结构。本实施方式的情况下,各存储节点3如图1所示,与其他1个或多个存储节点3一起合并为被称作集群6的组而被管理。图1的例子中,举例示出了仅设定了1个集群6的情况,但也可以在信息处理系统1内设置多个集群6。集群6也可以被称为分布式存储系统。如图2所示,该存储节点3具备1个以上cpu(centralprocessingunit:中央处理器)10、1个以上的存储器11和多个存储装置12、和各1个或多个的第一和第二通信装置13、14。存储节点3由cpu10和存储装置12、与第一和第二通信装置13、14经由内部网络15连接的通用的物理服务器装置构成。cpu10是负责存储节点3整体的动作控制的处理器。另外,存储器11由sram(staticram(randomaccessmemory:随机存取存储器))和dram(dynamicram)等易失性的半导体存储器或非易失性的半导体存储器构成,作为cpu10的工作存储器用于暂时保持各种程序和需要的数据。通过由至少1个以上cpu10运行存储器11中保存的程序,来执行作为后述的存储节点3整体的各种处理。存储装置12由hdd(harddiskdrive:硬盘驱动器)、ssd(solidstatedrive:固态硬盘)或者scm(storageclassmemory:存储级内存)等大容量的非易失性的存储装置构成,用nvme(non-volatilememoryexpress:非易失性内存)或sas(serialattachedscsi(smallcomputersysteminterface):串行连接小型计算机系统接口)、sata(serialata(advancedtechnologyattachment):串行高级技术附件)等接口连接,提供用于与来自计算节点2的读请求和写请求相应地读写数据的存储区域。第一通信装置13是存储节点3用于经由存储服务网络4与计算节点2进行通信的接口,例如由光纤通道卡或以太网(注册商标)卡、infiniband卡、无线lan卡等构成。第一通信装置13进行与计算节点2通信时的协议控制。第二通信装置14是存储节点3用于经由后端网络5与其他存储节点3进行通信的接口,例如由光纤通道卡或以太网(注册商标)卡、infiniband卡、无线lan卡、pcie主适配器等构成。第二通信装置14进行与其他存储节点3通信时的协议控制。另外,本实施方式的情况下,各存储节点3如图1所示,与其他1个或多个存储节点3一同合并为被称作集群6的组而被管理。图1的例子中,举例示出了仅设定了1个集群6的情况,但也可以在信息处理系统1内设置多个集群6。(2)本信息处理系统中的各种处理的流程(2-1)各存储节点的存储器中保存的程序和信息接着,对于本信息处理系统1中的各种处理的流程进行说明。此时,首先对于与该各种功能关联地在各存储节点3的存储器11(图2)中保存的程序和信息,参考图3~图6进行说明。如图3所示,在各存储节点3的存储器11中,分别保存多个控制软件(以下将其称为控制软件)20和与这些控制软件20分别对应地准备的多个结构信息21、和冗余化部22、集群控制部23、存储节点管理表24和控制软件管理表25。控制软件20是用作sds(softwaredefinedstorage)的存储控制器的软件。控制软件20具有接受来自计算节点2的读请求和写请求、对相应的存储装置12(图2)读写数据的功能。控制软件20也可以被称为存储控制部或存储控制程序。本实施方式的情况下,如图7所示,存储节点3中安装的各控制软件20,分别与彼此不同的其他存储节点3中分别安装的1个或多个其他控制软件20一同被作为用于冗余化的1个组(以下将其称为冗余化组)26管理。另外,图7示出了由2个控制软件20构成冗余化组26的情况,以下也按照由2个控制软件20构成冗余化组26进行说明,但也可以由3个以上控制软件20构成冗余化组26。在冗余化组26中,至少1个控制软件20被设定为能够受理来自计算节点2的读请求和写请求的状态(当前使用系统的状态,以下将其称为主动模式),其余控制软件20被设定为不受理来自计算节点2的读请求和写请求的状态(待机系统的状态,以下将其称为被动模式)。从而,由2个控制软件20构成的冗余化组26,采用这2个控制软件20双方被设定为主动模式的结构(以下将其称为主动-主动结构),和一方的控制软件20被设定为主动模式、另一方的控制软件20作为其后备被设定为被动模式的结构(以下将其称为主动-被动结构)中的某一方的结构。而且,在采用了主动-被动结构的冗余化组26中,设定为主动模式的控制软件20或者该控制软件20所运行的存储节点3中发生了故障的情况、和从集群6撤去这样的存储节点3(存储节点3被削减)的情况下,将此前设定为被动模式的控制软件20的状态切换为主动模式。由此,设定为主动模式的控制软件20不再能够运行的情况下,对于该控制软件20执行的i/o(input/output)处理能够用此前设定为被动模式的控制软件20接管(故障转移功能)。为了实现这样的故障转移功能,属于同一个冗余化组26的控制软件20总是保持相同内容的结构信息21。结构信息21是控制软件20执行与上述容量虚拟化功能、将访问频度高的数据移动至响应速度更快的存储区域的层级存储控制功能、从保存的数据中删除重复的数据的重复排除功能、将数据压缩存储的压缩功能、保持某一时刻的数据的状态的snapshot(快照)功能、和为了应对灾害而同步或非同步地将数据复制至远程地点的远程复制功能等各种功能相关的处理所需的信息。然后,构成冗余化组26的主动模式的控制软件20的结构信息21更新了的情况下,将更新前后的该结构信息21的差作为差数据传输至构成该冗余化组26的另一方的控制软件20,基于该差数据用该另一方的控制软件20更新该控制软件20所保持的结构信息21。由此构成冗余化组26的各控制软件20分别保持的结构信息21总是维持在同步的状态。这样,构成冗余化组26的2个控制软件20总是保持相同内容的结构信息21,由此,在设定为主动模式的控制软件20、或配置有该控制软件20的存储节点3中发生故障或者该存储节点3被撤去的情况下,对于此前由该控制软件20执行的处理,也能够由与该控制软件20同一个冗余化组26内的其他控制软件20立即接管。冗余化部22是具有这样使同一个冗余化组26内的各控制软件20各自保持的结构信息21总是同步的功能的程序。实际上,冗余化部22在本存储节点3内的某一个控制软件20更新了自身的结构信息21的情况下,将更新前后的该结构信息21的差作为差数据,经由后端网络5发送至与该控制软件20属于同一个冗余化组26的其他控制软件20安装在的存储节点3。此时,冗余化部22指定要基于该差数据更新结构信息21的控制软件20。然后,接收了该差数据的存储节点3的冗余化部22基于该差数据,对指定的控制软件20所保持的结构信息21进行更新。冗余化部22也可以被称为冗余化软件或冗余化程序。集群控制部23是具有将由从计算节点2给出的写请求或读请求组成的i/o(input/output)请求,经由后端网络5传输至对应的存储节点3的集群控制部23,或者将从其他集群控制部23传输来的该i/o请求传递至对应的冗余化组26的控制软件20的功能的程序。集群控制部23也可以被称为集群控制软件或集群控制程序。实际上,本实施方式的情况下,对于每一个冗余化组26,与该冗余化组26对应地定义1个或多个虚拟的逻辑卷(以下将其称为虚拟卷),这些虚拟卷被作为读/写数据的存储区域对计算节点2提供。该情况下,虚拟卷内的存储区域被划分为规定大小的小区域(以下将其称为逻辑页)进行管理。另外,存储节点3中搭载的各存储装置12提供的存储区域被划分为与逻辑页相同大小的小区域(以下将其称为物理页)进行管理。但是,逻辑页和物理页也可以不是相同的大小。然后,计算节点2在对要求的虚拟卷读/写数据的情况下,将指定了该数据的读/写目标的虚拟卷的识别符(lun:logicalunitnumber,逻辑单元号)、和该虚拟卷中的该数据的读/写目标的开头的逻辑页、和该数据的数据长度的i/o请求发送至对应的集群6内的某一个存储节点3。这样,接收了该i/o请求的存储节点3的集群控制部23,经由后端网络5,对与接收到的i/o请求中指定的读/写对象的虚拟卷关联的冗余化组26的控制软件20所配置在的各存储节点3的集群控制部23传输该i/o请求。另外,接受了该i/o请求的集群控制部23将该i/o请求传递至与该i/o请求中指定为读/写目标的虚拟卷关联的冗余化组26的控制软件20。然后,该i/o请求传递至的控制软件20中、设定为主动模式的控制软件20,与该i/o请求相应地,在该i/o请求是写请求的情况下对该i/o请求中指定为数据的写目标的逻辑页动态地分配某一个物理页,之后对分配给该逻辑页的物理页读/写数据。作为用于执行这样的一系列处理的手段,集群控制部23共享集群6内存在的各控制软件20分别配置在哪一个存储节点3中、属于哪一个冗余化组26、被设定为主动模式和被动模式中的哪一种状态等信息,将这些信息保存在后述的控制软件管理表25中进行管理。另一方面,结构信息21如上所述由控制软件20实现容量虚拟化功能、层级存储控制功能、snapshot功能、远程复制功能、重复排除功能、和压缩功能等各种功能所需的信息构成。图4表示构成这样的结构信息21的一部分的逻辑-物理变换表27。逻辑-物理变换表27是与容量虚拟化功能关联地、为了管理上述逻辑页、与物理页的对应关系而使用的表,如图4所示,具备lun栏27a、逻辑页栏27b和物理页栏27c而构成。在逻辑-物理变换表27中,1个行与1个逻辑页对应。而且,在lun栏27a中保存对该集群6提供给计算节点2的各虚拟卷分别赋予的该虚拟卷的lun,在逻辑页栏27b中保存对于对应的虚拟卷内的各逻辑页分别赋予的识别符(逻辑页编号)。另外,物理页栏27c被划分为节点id栏27ca、驱动器编号栏27cb和扇区编号栏27cc。而且,在节点id栏27ca中保存对提供给对应的逻辑页分配的物理页的存储节点3赋予的该存储节点3固有的识别符(节点id),在驱动器编号栏27cb中保存对提供该物理页pp的存储装置12(图2)赋予的该存储装置12固有的识别符(驱动器编号)。进而,在扇区编号栏27cc中,保存对于对应的存储装置12内的相当于该物理页pp的存储区域(扇区)赋予的该扇区固有的识别符(扇区编号)。从而,图4的例子的情况下,例如示出了对于赋予了lun“1”的虚拟卷的逻辑页编号为“0”的逻辑页,分配了赋予了节点id“0”的存储节点3中的驱动器编号为“1”的存储装置12内的扇区编号“0x00010000”的存储区域(扇区)作为物理页。另外,存储节点管理表24是为了管理同一个集群6内的各存储节点3的负荷状况等而使用的表,如图5所示,具备节点id栏24a、状态栏24b、容量栏24c、使用容量栏24d、cpu负荷栏24e、存储器量栏24f、使用存储器量栏24g、通信带宽栏24h、使用通信带宽栏24i和故障组id栏24j构成。在存储节点管理表24中,1个行与1个存储节点3对应。而且,在节点id栏24a中分别保存构成该集群6的各存储节点3的节点id,在状态栏24b中保存对应的存储节点3的当前状态(“正常”或“异常”)。另外,在容量栏24c中保存对应的存储节点3的全部存储装置的容量,在使用容量栏24d中保存对应的存储节点3中的当前的存储装置的使用容量。进而,在cpu负荷栏24e中保存对应的存储节点3中的cpu10(图2)的当前的使用率,在存储器量栏24f中保存该存储节点3中的存储器11(图2)的容量,在使用存储器量栏24g中保存对应的存储节点3中的当前的存储器11的使用量。进而,在通信带宽栏24h中保存对应的存储节点3能够使用的后端网络5的通信带宽的大小,在使用通信带宽栏24i中保存该存储节点3为了与其他存储节点3通信而当前正在使用的后端网络5的带宽量。进而,在故障组id栏24j中,保存对应的存储节点3所属的故障组的组id。此处,故障组指的是共用同一个电源等、该电源等中发生了故障的情况下、发生由此引起的同样的故障的存储节点3的组。该存储节点管理表24中保存的信息,是由构成同一个集群6的全部存储节点3的集群控制部23共享的信息。作为用于这样在同一个集群6内由各存储节点3的集群控制部23共享相同信息的手段,从构成集群6的各存储节点3中各自搭载的集群控制部23中用规定的方法将1个集群控制部23选定为代表集群控制部23。然后,代表集群控制部23定期地从其他存储节点3的集群控制部23收集必要的信息,基于收集到的信息更新自身管理的存储节点管理表24。另外,代表集群控制部23通过将这些收集的信息传输至该集群6内的各存储节点3的集群控制部23,而使这些集群控制部23将该集群控制部23分别管理的存储节点管理表24更新为最新的状态。但是,也可以是各存储节点3的集群控制部23定期地将必要的信息分别发送至同一个集群6内的其他全部存储节点3的集群控制部23,各存储节点3的集群控制部23基于该信息分别更新本节点内的存储节点管理表24。控制软件管理表25是集群控制部23为了管理集群6内存在的全部控制软件20而使用的表,如图6所示,具备控制软件id栏25a、状态栏25b、组id栏25c、运行节点id栏25d、使用容量栏25e、cpu负荷栏25f、使用存储器量栏25g、使用通信带宽栏25h和lun栏25i构成。在控制软件管理表25中,1个行与1个控制软件20对应。而且,在控制软件id栏25a中保存对于对应的集群6内存在的当前运行中的控制软件20分别赋予的该控制软件20固有的识别符(控制软件id),在状态栏25b中保存对应的控制软件20的当前的状态。其中,作为控制软件20的状态,在上述主动模式(“主动”)和被动模式(“被动”)之外,存在因故障等而不能运行的状态即死机(“死机”)、因维护等而停止i/o处理的状态即停止(“停止”)等。另外,在组id栏25c中保存对于对应的控制软件20构成的冗余化组26(图7)赋予的该冗余化组26固有的识别符(组id),在运行节点id栏25d中保存对应的控制软件20所运行在的存储节点3的节点id。另外,在使用容量栏25e中,保存对应的控制软件20当前正在使用的存储区域的合计容量。另外,在cpu负荷栏25f中保存用于使对应的控制软件20运行的cpu10(图2)的当前的使用率,在使用存储器量栏25g中保存为了对应的控制软件20当前正在使用的存储器11(图2)的容量。进而,在使用通信带宽栏25h中,保存对应的控制软件20为了与其他存储节点3通信而当前正在使用的后端网络5的带宽量。lun栏25i保存识别对计算节点2提供的虚拟卷的识别信息的lun(logicalunitnumber:卷编号),与管理用该lun识别的虚拟卷的控制软件的控制软件id25a关联地管理。各存储节点3的集群控制部23,从计算节点2接受了i/o请求(读请求或写请求)时,取得i/o请求中包括的lun,使用控制软件管理表25确定与该lun关联的控制软件id25a、运行节点id。由此,各存储节点3的集群控制部23能够确定管理作为i/o请求目标的虚拟卷的控制软件和该控制软件的配置位置节点。另外,lun栏25i的lun也可以与对应于用该lun识别的虚拟卷的冗余化组的组id25c关联地管理。如果能够用控制软件管理表25根据i/o请求中包括的lun确定组id,则也能够确定用组id识别的冗余化组中包括的控制软件id和用该控制软件id识别的控制软件。该控制软件管理表25中保存的信息,也是由构成同一个集群6的全部存储节点3的集群控制部23共享的信息。因此,代表集群控制部23定期地从其他存储节点3的集群控制部23收集必要的信息,基于收集到的信息更新自身管理的控制软件管理表25。另外,代表集群控制部23通过将这些收集到的信息传输至该集群6内的各存储节点3的集群控制部23,而使这些集群控制部23将该集群控制部23分别管理的控制软件管理表25更新为最新的状态。(2-2)各种处理的流程(2-2-1)写处理的流程图7表示本信息处理系统1中、平常时从计算节点2对集群6内的某一个存储节点3给出了写请求的情况下的处理的流程。该图7中,“存储节点a”~“存储节点d”分别表示存储节点3,“控制软件a”~“控制软件h”分别表示控制软件20。而且,图7中示出了在“存储节点a”上运行的“控制软件a”和在“存储节点b”上运行的“控制软件b”构成冗余化组26,在“存储节点b”上运行的“控制软件c”和在“存储节点c”上运行的“控制软件d”构成冗余化组26,在“存储节点c”上运行的“控制软件e”和在“存储节点d”上运行的“控制软件f”构成冗余化组26,在“存储节点d”上运行的“控制软件g”和在“存储节点a”上运行的“控制软件h”构成同一个冗余化组26的例子。另外,此处,设通过控制软件20的冗余化生成的各冗余化组26的结构是主动-被动结构。该情况下,各存储节点3的集群控制部23,在平常时,如上所述地共享各存储节点3的cpu10(图2)的负荷状态和存储器11(图2)的使用量等信息,将这些信息保存在存储节点管理表24和控制软件管理表25中进行管理(s1)。然后,从计算节点2对集群6内的某一个存储节点3给出写请求时,该存储节点3的集群控制部23使用控制软件管理表25,如上所述基于该写请求中包括的lun,经由对应的存储节点3的集群控制部23对相应的冗余化组26的各控制软件20分别传输写请求。用写请求传输至的控制软件20中的、设定为主动模式的控制软件20执行写处理。另外,集群控制部23也可以仅对设定为主动模式的控制软件20传输写请求。此处,设该写请求以与由“控制软件a”和“控制软件b”构成的冗余化组26关联的虚拟卷为写目标。另外,设该冗余化组26中,“控制软件a”被设定为主动模式,“控制模式b”被设定为被动模式。从而,该情况下,设定为主动模式的“控制软件a”执行与该写请求相应的写处理。然后,执行这样的写处理时,执行了该写处理的“控制软件a”所配置在的“存储节点a”的冗余化部22,从同一个存储节点3(“存储节点a”)内的集群控制部23取得与此时执行写处理的“控制软件a”一同构成冗余化组26的控制软件20(“控制软件b”)的控制软件id和该控制软件20所配置在的存储节点3(“存储节点b”)的后端网络5上的ip地址(s2)。另外,“存储节点a”的冗余化部22与该写处理的处理内容相应地对“控制软件a”所保持的结构信息21进行更新(s3),将表示该结构信息21的更新前后的差的差数据,经由后端网络5发送至步骤s2中取得的ip地址的存储节点3(“存储节点b”)(s4)。此时,该冗余化部22指定与“控制软件a”一同构成冗余化组26的“控制软件b”作为要用该差数据更新结构信息21的控制软件20。这样,收到该差数据的“存储节点b”的冗余化部22基于该差数据,将“控制软件b”所保持的结构信息21更新为与“控制软件a”保持的结构信息21相同。根据以上所述,构成同一个冗余化组26的2个控制软件20(“控制软件a”和“控制软件b”)各自保持的2个结构信息21被维持为相同的内容。(2-2-2)存储节点发生故障时的处理的流程接着,对于构成集群6的某一个存储节点3中发生了故障的情况下的处理的流程进行说明。另外,此处,如图8所示,说明“存储节点a”中发生故障,该“存储节点a”中安装的“控制软件a”和“控制软件h”停止运行的情况下的处理的流程。该情况下,检测到该故障的某一个集群控制部23将该故障对代表集群控制部23通知。此处,设“存储节点b”的集群控制部23被选定为代表集群控制部23,该通知对“存储节点b”的集群控制部23给出。接收到该通知的代表集群控制部23,参照控制软件管理表25(图6),对与“控制软件a”一同构成冗余化组26的“控制软件b”所安装在的“存储节点b”的集群控制部23通知“控制软件a”中发生了故障的消息。另外,代表集群控制部23对与“控制软件h”一同构成冗余化组26的“控制软件g”所安装在的“存储节点d”的集群控制部23通知“控制软件h”中发生了故障的消息(s10)。接收了该通知的“存储节点b”的集群控制部23将此前设定为被动模式的“控制软件b”的状态变更为主动模式(s11)。由此此前由“控制软件a”执行的i/o处理被“控制软件b”接管。另外,接收了该通知的“存储节点d”的集群控制部23,对与“控制软件g”关联的冗余化部22,给出即使之后“控制软件g”所保持的结构信息21被更新的情况下、也不将其差数据传输至“存储节点a”的指示(s12)。接着,代表集群控制部23为了使“控制软件b”和“控制软件g”的冗余化结构恢复,如图9所示,分别决定要作为“控制软件a”的新的配置位置的存储节点3和要作为“控制软件h”的新的配置位置的存储节点3,将决定结果对各存储节点3内的集群控制部23分别通知(s13)。此时,代表集群控制部23参照存储节点管理表24(图5),选择与构成同一个冗余化组26的其他控制软件20已经配置在的存储节点3不同的存储节点3、并且与构成该冗余化组26的其他控制软件20已经配置在的存储节点3属于不同的故障组的存储节点3,作为“控制软件a”和“控制软件h”的新的配置位置。另外,代表集群控制部23在这样的存储节点3(可以成为“控制软件a”和“控制软件h”的新的配置位置的候选的存储节点3)存在多个的情况下,参照存储管理表24和控制软件管理表25,将负荷低的存储节点3分别决定为“控制软件a”和“控制软件h”的新的配置位置。其中,“负荷低的存储节点3”指的是可以成为候选的存储节点3中的、即使配置控制软件20也不超过存储节点3所具有的存储装置的容量、cpu负荷、存储器量、后端网络5的通信带宽的容许范围的存储节点3中cpu负荷最低的。此处,设分别将“控制软件a”的新的配置位置决定为“存储节点3”、将“控制软件h”的新的配置位置决定为“存储节点b”。另外,此处所谓“容许范围”,如果是容量和存储器量则指的是存储节点3所具有的存储装置的容量和存储器量的范围内,如果是cpu负荷则指的是100%以下,如果是后端网络5则指的是能够使用的通信带宽的范围内,或者,如果存在对于该容量、cpu负荷、存储器量和或后端网络5的通信带宽事先分别设定的阈值则指的是其范围内。以下也是同样的。接收了该通知的“存储节点b”的集群控制部23对本存储节点3内的冗余化部22给出将“控制软件b”所保持的结构信息21完整复制至“控制软件a”的新的配置位置即“存储节点c”的指示(s14)。另外,接受了该指示的该冗余化部22将该结构信息21经由后端网络5传输至“存储节点c”(s15)。然后,接收了该结构信息21的“存储节点c”的集群控制部23将该结构信息21与“控制软件a”关联地保存在存储器11(图2)中。另外,“控制软件b”保持的结构信息21向“存储节点c”的完整复制完成时,之后,“存储节点b”的冗余化部22每当“控制软件b”保持的结构信息21被更新时开始将与原来的结构信息21的差数据传输至“存储节点c”,由此“控制软件b”所保持的结构信息21与复制至“存储节点c”的结构信息21被同步地更新(s16)。同样,接收了该通知的“存储节点4”的集群控制部23对本存储节点3内的冗余化部22给出将“控制软件g”保持的结构信息21完整复制至“控制软件h”的新的配置位置即“存储节点b”的指示(s17)。另外,接受了该指示的该冗余化部22将该结构信息21经由后端网络5传输至“存储节点b”(s18)。然后,接收了该结构信息21的“存储节点b”的集群控制部23将该结构信息21与“控制软件h”关联地保存在存储器11中。另外,在“控制软件g”所保持的结构信息21向“存储节点b”的完整复制完成的情况下,之后,也是“存储节点d”的冗余化部22每当“控制软件g”保持的结构信息21被更新时开始将与原来的结构信息21的差数据传输至“存储节点b”,由此“控制软件g”保持的结构信息21与复制至“存储节点b”的结构信息21被同步地更新(s19)。之后,“存储节点c”的集群控制部23使“存储节点c”中安装的控制软件20作为新的“控制软件a”以被动模式起动(s20)。同样,“存储节点b”的集群控制部23使“存储节点b”中安装的控制软件20作为新的“控制软件h”以被动模式起动(s21)。由此“控制软件b”和“控制软件g”的冗余化结构被恢复。然后,代表集群控制部23之后与上述这样的结构变更相应地对自身管理的控制软件管理表25进行更新。具体而言,代表集群控制部23将控制软件管理表25中的与“控制软件a”对应的行的运行节点id栏25d(图6)中保存的节点id变更为“控制软件a”的新的配置位置即“存储节点c”的节点id,并且将控制软件管理表25中的与“控制软件h”对应的行的运行节点id栏25d中保存的节点id变更为“控制软件h”的新的配置位置即“存储节点b”的节点id。另外,代表集群控制部23将这样更新的自身管理的控制软件管理表25的内容对同一个集群6内的各存储节点3的集群控制部23分别通知(s22)。这样,接受了该通知的各集群控制部23以成为与从代表集群控制部23通知的新的控制软件管理表25的内容相同的内容的方式分别更新自身管理的控制软件管理表25。通过以上所述,“存储节点a”中发生了故障的情况下的一系列处理结束。另外,上述例子中,如图9所示,最终成为在“存储节点b”上“控制软件b”、“控制软件c”和“控制软件h”这3个控制软件20运行,在“存储节点c”上“控制软件a”、“控制软件d”和“控制软件e”这3个控制软件20运行的结构,但为了抑制cpu负荷和存储器消费量,也可以将控制软件20的结构信息21合并,由一部分控制软件20接管其他控制软件20的i/o处理,由此减少在存储节点3上运行的控制软件20的数量。例如,图9的例子中,能够将“控制软件c”所保持的结构信息21合并至“控制软件b”所保持的结构信息21而使“控制软件b”接管“控制软件c”的i/o处理,使属于同一个冗余化组的“控制软件c”和“控制软件d”停止。另外,集群6内的存储节点3被削减(撤去某一个存储节点3)时在集群6内执行的处理的流程也基本上与上述相同。但是,该情况下,本信息处理系统1的管理者预先指定撤去对象的存储节点3,对代表集群控制部23给出将该存储节点3上运行的全部控制软件20移动至同一个集群6内的其他存储节点3的指示(以下将其称为全部控制软件移动指示)。然后,收到该全部控制软件移动指示的代表集群控制部23,按照该全部控制软件移动指示,按将“撤去对象的存储节点3”与上述“发生了故障的存储节点3”置换的内容执行步骤s11以后的处理。由此,管理者在直到上述步骤s22的处理完成后,能够将撤去对象的存储节点3从集群6中撤去。(2-2-3)存储节点增设时的流程接着,说明从图7的状态起,如图10所示,在集群6内新增设“存储节点e”这一存储节点3的情况下在该集群6内执行的处理的流程。首先,增设了“存储节点e”之后,使该“存储节点e”中安装的集群控制部23起动时,从该集群控制部23将“存储节点e”的cpu负荷和存储器消费量等信息对该集群6内的各存储节点3的集群控制部23分别通知。然后,接收了该通知的上述代表集群控制部23(“存储节点b”的集群控制部23)为了各存储节点3的负荷平准化(再平衡),从此前在“存储节点a”~“存储节点d”中的某一个存储节点3中安装的“控制软件a”~“控制软件h”中决定要重新配置至增设的“存储节点e”的控制软件20。然后,代表集群控制部23将该决定结果对该集群6内的各集群控制部23分别通知(s30)。此时,代表集群控制部23基于“存储节点a”~“存储节点e”的cpu负荷和空闲存储器量、和后端网络5的空闲带宽的大小,以使它们平准化的方式、并且以尽可能不使多个主动模式的控制软件20在同一个存储节点3上运行的方式决定重新配置至“存储节点e”的控制软件20。此处,设“存储节点a”上安装的“控制软件h”被决定为重新配置至“存储节点e”的控制软件20。另一方面,与“控制软件h”一同构成冗余化组26的“控制软件g”安装在的“存储节点d”的集群控制部23,接收该决定结果时,对冗余化部22给出将在该冗余化组26中是主动模式的“控制软件g”的结构信息21完整复制至“存储节点e”的指示(s31)。另外,接受了该指示的冗余化部22将“控制软件g”的结构信息21经由后端网络5传输至“存储节点e”(s32)。这样,接收了该结构信息21的“存储节点e”的集群控制部23将该结构信息21保存在存储器11中。另外,“存储节点d”的冗余化部22完成将“控制软件g”的结构信息21复制至“存储节点e”时,每当“控制软件g”的结构信息21被更新时开始将与该结构信息21的更新前的差数据经由后端网络5传输至“存储节点e”。这样,“存储节点e”内的“控制软件g”的结构信息21的复制结果(即结构信息21)被基于该差数据更新,由此“控制软件g”的结构信息21、与“存储节点e”内的“控制软件g”的结构信息21的复制结果的同步开始。之后,“存储节点d”的集群控制部23如图11所示,对冗余化部22给出将“控制软件g”的冗余化目标设为仅有“存储节点e”的指示(s33)。另外,“存储节点d”的集群控制部23对“存储节点e”的集群控制部23通知“控制软件g”所保持的结构信息21向“存储节点e”的完整复制已完成的消息。这样,接收了该通知的“存储节点e”的集群控制部23使该“存储节点e”中安装的控制软件20作为新的“控制软件h”以被动模式起动(s34)。另外,“存储节点e”的集群控制部23对原来的“控制软件h”所运行在的“存储节点a”的集群控制部23通知该消息。然后,接受了该通知的“存储节点a”的集群控制部23使本存储节点3内运行的“控制软件h”的运行停止(s35)。通过以上所述,“控制软件h”向“存储节点e”的重新配置完成。之后,代表集群控制部23与上述这样的系统的结构变更相应地对自身管理的控制软件管理表25进行更新。具体而言,代表集群控制部23将控制软件管理表25中的与“控制软件h”对应的行的运行节点id栏25d(图6)中保存的节点id,变更为“控制软件h”的新的配置位置即“存储节点e”的节点id。另外,代表集群控制部23将这样更新的自身所管理的控制软件管理表25的内容对同一个集群6内的各存储节点3的集群控制部23分别通知(s36)。这样,接受了该通知的各集群控制部23以成为与从代表集群控制部23通知的新的控制软件管理表25的内容相同的内容的方式分别更新自身管理的控制软件管理表25。另一方面,代表集群控制部23之后参照存储节点管理表24和控制软件管理表25,在“存储节点e”的cpu负荷和空闲存储器量、和后端网络5的通信带宽充裕的情况下,如图12所示,对“存储节点e”的集群控制部23给出使新的控制软件20作为主动模式的“控制软件i”起动的指示。这样,接受了该“控制软件i”的起动指示的“存储节点e”的集群控制部23使该“存储节点e”内此时未使用的控制软件20作为“控制软件i”以主动模式起动(s37)。另外,代表集群控制部23决定与“控制软件i”构成同一个冗余化组26的控制软件20(以下设其为“控制软件j”)的配置位置的存储节点3。此时,代表集群控制部23参照存储管理表24和控制软件管理表25,将负荷低的存储节点3决定为“控制软件j”的配置位置。此处,设“存储节点a”被决定为“控制软件j”的配置位置。然后,代表集群控制部23对这样决定的存储节点3(“存储节点a”)的集群控制部23,给出使新的控制软件20作为被动模式的“控制软件j”起动的指示。这样,接受了该指示的“存储节点a”的集群控制部23在该“存储节点a”内使新的控制软件20作为“控制软件j”以被动模式起动(s38)。之后,代表集群控制部23将“控制软件j”所配置在的存储节点3的节点id对“存储节点e”的集群控制部23通知。另外,接受了该通知的“存储节点e”的集群控制部23将与“控制软件i”构成冗余化组26的控制软件20(“控制软件j”)的控制软件id、和该控制软件20所配置在的存储节点3(“存储节点a”)的节点id对本存储节点3内的冗余化部22通知(s39)。另外,以下,将这样从“存储节点e”的集群控制部23对本存储节点3内的冗余化部22给出的通知称为id通知。另外,代表集群控制部23与上述这样新的冗余化组26的构建相应地对自身管理的控制软件管理表25进行更新。具体而言,代表集群控制部23在控制软件管理表25中新登录“控制软件i”和“控制软件j”。另外,代表集群控制部23在控制软件管理表25中的与“控制软件i”对应的行的状态栏25b(图6)中保存“主动”,在该行的组id栏25c(图6)中保存对“控制软件i”构成的冗余化组26赋予的组id,进而在该行的运行节点id栏25d中保存“控制软件i”的配置位置即“存储节点e”的节点id。进而,代表集群控制部23在控制软件管理表25中的与“控制软件j”对应的行的状态栏25b(图6)中保存“被动”,在该行的组id栏25c(图6)中保存对“控制软件j”构成的冗余化组26赋予的组id,进而在该行的运行节点id栏25d中保存“控制软件j”的配置位置即“存储节点a”的节点id。另一方面,接受了上述id通知的冗余化部22之后开始接受对“控制软件i”的读请求和写请求,并且之后每当“控制软件i”的结构信息21被变更时,将与原来的结构信息21的差作为差数据发送至“控制软件j”所安装在的“存储节点a”,由此使“控制软件j”的结构信息21总是与“控制软件i”的结构信息21同步地变更(s40)。另外,代表集群控制部23将这样更新的自身所管理的控制软件管理表25的内容对同一个集群6内的各存储节点3的集群控制部23分别通知(s41)。这样,接受了该通知的各集群控制部23以成为与从代表集群控制部23通知的新的控制软件管理表25的内容相同的内容的方式各自更新自身所管理的控制软件管理表25。另外在如上所述增设了存储节点3之后、在增设的存储节点3上使控制软件20立刻运行的应用之外,也可以应用应对集群6内的其他存储节点3的负荷急剧增大的情况、而在存储节点3增设后不立刻在该存储节点3上使控制软件20运行、而是使该存储节点3保持空闲的应用。(2-2-4)主动-主动结构图13表示在各冗余化组26中、构成该冗余化组26的2个控制软件20都被设定为主动模式的情况下的集群6的逻辑结构例。该情况下,在各冗余化组26中,在任意一个控制软件20更新了结构信息21的情况下,都将与更新前的结构信息21的差作为差数据传输至对方的控制软件20所运行在的存储节点3,基于该差数据将该对方的控制软件20所保持的结构信息21更新(s42)。由此,构成同一个冗余化组26的2个控制软件20各自保持的2个结构信息21总是被维持为相同的内容(同步地更新)。另外,冗余化组26被设定为主动-主动结构的情况下,存储节点3发生故障时和增设时的处理的流程,也与对于图7~图12以上叙述的主动-被动结构的情况相同,因此省略此处的说明。(2-3)存储节点增减设置时等的各程序的具体的处理内容接着,对于上述存储节点3增减设置时等的代表集群控制部23和冗余化部22的具体的处理内容进行说明。另外,以下,以集群控制部23和冗余化部22等“程序”作为各种处理的处理主体进行说明,但实际上,基于该“程序”,由存储节点3的cpu10(图2)执行该处理。(2-3-1)冗余化恢复处理图14表示集群6内的某一个存储节点3中发生了故障的情况下、由该集群6内的代表集群控制部23执行的冗余化恢复处理的处理流程。代表集群控制部23在平常时,如上所述地与该代表集群控制部23所属的集群6内的各存储节点3中分别安装的集群控制部23定期地通信,从这些各集群控制部23收集用于在对于图5以上叙述的存储节点管理表24、和对于图6以上叙述的控制软件管理表25中保存的信息。另外,代表集群控制部23与该处理并行地执行图14所示的冗余化恢复处理,基于是否能够与各存储节点3的集群控制部23进行该定期的通信,来监视某一个存储节点3中是否发生了故障,或者监视是否收到了撤去某一个存储节点3的规定指示(s50)。然后,代表集群控制部23因为检测出某一个存储节点3中发生了故障而在步骤s50中得到肯定结果时,对于发生了故障的存储节点3中配置的每一个控制软件(以下将其称为不能运行控制软件)20,以使与该不能运行控制软件20构成同一个冗余化组26的其他控制软件(以下将其称为同一个组内控制软件)20接管该不能运行控制软件20的i/o处理的方式,对该同一个组内控制软件20所配置在的存储节点3的集群控制部23给出指示(s51)。此时,代表集群控制部23在该同一个组内控制软件20存在多个的情况下,将这些同一个组内控制软件20中的、即使接管不能运行控制软件20发生故障前使用的存储装置的容量、cpu负荷、存储器使用量和后端网络5的通信带宽、也不超过存储装置的容量、cpu负荷、存储器量和后端网络5的通信带宽的容许范围的存储节点3中配置的同一个组内控制软件20决定为要接管不能运行控制软件20的i/o处理的控制软件20,对该同一个组内控制软件20所配置在的存储节点3的集群控制部23给出指示。这样,接受了该指示的集群控制部23参照控制软件管理表25,在同一个组内控制软件20被设定为被动模式的情况下,将该同一个组内控制软件20的状态变更为主动模式。接着,代表集群控制部23执行决定作为该不能运行控制软件20的替代的新的控制软件20的配置位置的存储节点(以下将其称为配置位置存储节点)3的配置位置存储节点决定处理(s52)。例如,由不能运行控制软件20和同一个组内控制软件20构成的冗余化组26是主动-主动结构的情况下,代表集群控制部23参照存储节点管理表24(图5),将负荷低的存储节点3决定为该配置位置存储节点3。接着,代表集群控制部23判断是否通过步骤s52的配置位置存储节点决定处理成功决定了该配置位置存储节点3(s53)。然后,代表集群控制部23在该判断中得到了否定结果的情况下,结束该冗余化恢复处理。与此相对,代表集群控制部23在步骤s53的判断中得到肯定结果时,对上述同一个组内控制软件20所安装在的存储节点3的集群控制部23通知如上所述地决定的配置位置存储节点3的节点id(s54)。这样,接受了该通知的集群控制部23对本存储节点3的冗余化部22给出将同一个组内控制软件20所保持的结构信息21传输至配置位置存储节点3的指示。另外,接受了该指示的冗余化部22通过将同一个组内控制软件20所保持的结构信息21经由后端网络5传输至配置位置存储节点3,而将该结构信息21完整复制至该配置位置存储节点3。另外,该冗余化部22之后在同一个组内控制软件20所保持的结构信息21被更新的情况下,将与更新前的结构信息21的差数据经由后端网络5传输至配置位置存储节点3。这样,在配置位置存储节点3一方,基于该差数据将该结构信息21的副本更新,由此同一个组内控制软件20保持的结构信息21、与配置位置存储节点3中的该结构信息21的副本被完全同步地更新。另一方面,代表集群控制部12在步骤s54的处理后,等待同一个组内控制软件20所保持的结构信息21、与配置位置存储节点3中的该结构信息21的副本结束同步(s55)。然后,代表集群控制部23在这2个结构信息21最终结束同步时,对配置位置存储节点3的集群控制部23给出使作为不能运行控制软件20的替代的控制软件20起动的指示(s56)。这样,接受了该指示的配置位置存储节点3的集群控制部23使此时未使用的控制软件20起动。此时,该集群控制部23在将由该控制软件20和同一个组内控制软件20构成的冗余化组26设为主动-被动结构的情况下,使该控制软件20以被动模式起动,在将该冗余化组26设为主动-主动结构情况下,使该控制软件20以主动模式起动。另外,该集群控制部23之后将步骤s54中完整复制至配置位置存储节点3的结构信息21与该控制软件20关联。这样,该控制软件20之后保持该结构信息21,基于该结构信息21执行i/o处理。接着,代表集群控制部23将本存储节点3所保持的控制软件管理表25(图6)更新为如上所述地将不能运行控制软件20替换为步骤s56中起动的控制软件20后的状态(s57)。具体而言,代表集群控制部23在本存储节点3内的控制软件管理表25中的与不能运行控制软件20对应的行的状态栏25b(图6)中保存表示该不能运行控制软件20不再能够使用的“死机”。另外,代表集群控制部23确保1个该控制软件管理表25的未使用的行,在该行的控制软件id栏25a(图6)中保存对步骤s56中起动的控制软件20赋予的该控制软件20固有的控制软件id,在该行的状态栏25b(图6)中保存该控制软件20的状态(“主动”或“被动”),在该行的组id栏25c(图6)中保存与不能运行控制软件20同一个冗余化组26的组id,在该行的运行节点id栏25d(图6)中保存配置位置存储节点3的节点id。进而,代表集群控制部23对同一个集群6内的其他存储节点3的集群控制部23,给出与上述同样地更新控制软件管理表25的指示。然后,代表集群控制部23在如上所述地完成更新集群6内的各存储节点3的控制软件管理表25时返回步骤s50,之后,同样地反复进行步骤s50以后的步骤。另外,收到指定了撤去对象的存储节点3的上述全部控制软件移动指示的情况下的代表集群控制部23的处理内容也与上述相同。该情况下,执行将上述“不能运行控制软件20”置换为“在撤去对象的存储节点3上运行的控制软件20”的处理。(2-3-2)配置位置存储节点决定处理图15表示在该冗余化恢复处理(图14)的步骤s52中由代表集群控制部23执行的配置位置存储节点决定处理的具体的处理流程。代表集群控制部23前进至冗余化恢复处理的步骤s52时,开始该图15所示的配置位置存储节点决定处理,首先,参照存储节点管理表24(图5),生成将集群6内的各存储节点3的节点id按cpu负荷从低到高的存储节点3的顺序排列的列表(以下将其称为配置位置节点候选列表)(s60)。此时,代表集群控制部23在cpu负荷相同的存储节点3存在多个的情况下,将控制软件20的运行数更少的存储节点3在这些存储节点3中设定为更接近开头的顺位。接着,代表集群控制部23从在步骤s60中生成的配置位置节点候选列表中记载了节点id的各存储节点3中选择开头的节点id(s61),参照控制软件管理表25(图6)判断在与所选择的节点id对应的存储节点(以下将其称为第一选择存储节点)3上是否有与不能运行控制软件20属于同一个冗余化组26的控制软件20(即同一个组内控制软件20)正在运行(s62)。然后,代表集群控制部23在该判断中得到肯定结果时前进至步骤s65。与此相对,代表集群控制部23在步骤s62的判断中得到否定结果时,参照存储节点管理表24,判断第一选择存储节点3是否与与不能运行控制软件20属于同一个冗余化组26的其他控制软件20配置在的存储节点属于同一个故障组(s63)。然后,代表集群控制部23在该判断中得到肯定结果时,前进至步骤s65。与此相对,代表集群控制部23在步骤s63的判断中得到否定结果时,参照存储节点管理表24,判断在第一选择存储节点3上配置了作为不能运行控制软件20的替代的控制软件20的情况下,是否超过第一选择存储节点3的存储装置的容量、cpu负荷、存储器量和后端网络5的通信带宽的容许范围(s64)。另外,作为替代的控制软件20使用的使用容量、cpu负荷、存储器使用量和使用通信带宽,例如能够通过在发生故障后立刻由控制软件管理表25保存不能运行控制软件20曾使用的cpu负荷、存储器使用量和使用通信带宽而判断。然后,代表集群控制部23在步骤s64的判断中得到否定结果时,将被赋予了之前的步骤s61中选择的节点id的存储节点(第一选择存储节点)3决定为上述配置位置存储节点3(s67),之后,结束该配置位置存储节点决定处理并返回冗余化恢复处理(图14)。与此相对,代表集群控制部23在步骤s64的判断中得到肯定结果时,将之前的步骤s61中选择的节点id从配置位置节点候选列表中删除后(s65),判断配置位置节点候选目标列表是否成为空(s66)。然后,代表集群控制部23在该判断中得到否定结果时返回步骤s61,之后,同样地执行步骤s61以后的处理。另外,代表集群控制部23在步骤s66的判断中得到肯定结果时,结束该配置位置存储节点决定处理。(2-3-3)再平衡处理另一方面,图16表示在集群6中增设了存储节点3的情况、和在集群6中未增设存储节点3的情况下也定期或不定期地由该集群6内的代表集群控制部23执行的再平衡处理的处理流程。代表集群控制部23按照该处理流程,使集群6内的某一个控制软件20的功能移动至该集群6内的其他存储节点3(在集群6中增设了存储节点3的情况下,为该增设的存储节点(以下将其称为增设存储节点)3),由此在集群6内使各存储节点3的负荷分散。实际上,该代表集群控制部23识别出增设了新的存储节点3、或者再平衡处理的定期或不定期的执行时机到来时,开始该图16所示的再平衡处理,首先,执行分别决定移动至集群6内的其他存储节点3(包括增设存储节点3)的控制软件(以下将其称为移动对象控制软件)20、和作为该移动对象控制软件20的移动目标(目的地)的存储节点(以下将其称为移动目标存储节点)3的移动对象控制软件和移动目标存储节点决定处理(s70)。例如,代表集群控制部23,在各冗余化组26是主动-被动结构的情况下,将负荷高的存储节点3中安装的控制软件20中、设定为被动模式的1个控制软件20决定为移动对象控制软件20。另外,代表集群控制部23在集群6内增设了存储节点3的情况下,将增设存储节点3决定为移动目标存储节点3。接着,代表集群控制部23对步骤s70中决定的移动对象控制软件20所运行在的存储节点3的集群控制部23,通知移动对象控制软件20的控制软件id、和作为该移动对象控制软件20的移动目标的存储节点(移动目标存储节点)3的节点id(s71)。这样,接收了该通知的集群控制部23对本存储节点3内的冗余化部22给出对通知的移动目标存储节点3传输移动对象控制软件20所保持的结构信息21的指示。另外,接受了该指示的冗余化部22将移动对象控制软件20所保持的结构信息21,经由后端网络5传输至移动目标存储节点3。然后,存储节点3的集群控制部23接收该结构信息21时,将其保存在存储器11中。另外,该冗余化部22之后以使移动对象控制软件20保持的结构信息21、与移动目标存储节点3保持的该结构信息21的副本同步的方式,将差数据经由后端网络5传输至移动目标存储节点3。另一方面,代表集群控制部23在步骤s71的处理后,等待移动对象控制软件20保持的结构信息21、与复制至移动目标存储节点3的结构信息21结束同步(s72)。然后,代表集群控制部23在这2个结构信息21终于结束同步时,对移动目标存储节点3的集群控制部23给出使作为移动对象控制软件20的替代的控制软件20起动的指示(s73)。这样,收到该指示的移动目标存储节点3的集群控制部23,使作为移动对象控制软件20的替代的控制软件20起动。此时,该集群控制部23在移动对象控制软件20以被动模式运行的情况下使该控制软件20也以被动模式起动,在移动对象控制软件20以主动模式运行的情况下使该控制软件20也以主动模式起动。之后,代表集群控制部23对移动对象控制软件20所运行在的存储节点3的集群控制部23,给出使移动对象控制软件20的运行停止的指示(s74)。这样,接受了该指示的集群控制部23使该移动对象控制软件20的运行停止。接着,代表集群控制部23将本存储节点3所保持的控制软件管理表25(图6)更新为如上所述地将移动对象控制软件20替换为步骤s73中起动的控制软件20后的状态,并且对其他集群控制部23也给出同样地更新控制软件管理表25的指示(s75)。具体而言,代表集群控制部23将本存储节点3内的控制软件管理表25中的与移动对象控制软件20对应的行的运行节点id栏25d(图6)中保存的节点id更新为移动目标存储节点3的节点id。另外,代表集群控制部23对同一个集群6内的其他存储节点3的集群控制部23,给出与此同样地更新控制软件管理表25的指示。接着,代表集群控制部23生成新的冗余化组26,分别决定构成该冗余化组26的各控制软件20的配置位置的存储节点3(s76)。该情况下,代表集群控制部23将构成该冗余化组26的各控制软件20中的1个控制软件20的配置位置决定为移动目标存储节点3,对于其他控制软件20的配置位置通过对于图15以上叙述的配置位置存储节点决定处理决定。进而,代表集群控制部23按照步骤s76的决定结果,将构成新的冗余化组26的各控制软件20分别配置在步骤s76中决定的存储节点3中(s77)。具体而言,代表集群控制部23对移动目标存储节点3、和步骤s76中决定的各存储节点3的集群控制部23给出使新的控制软件20起动的指示。这样,接受了该指示的各集群控制部23,分别使本存储节点3内此时未使用的控制软件20起动。此时,代表集群控制部23对步骤s77中起动的2个控制软件20中的要设定为主动模式的控制软件20所安装在的存储节点3(移动目标存储节点3)的集群控制部23,通知对方的控制软件20所配置在的存储节点3的节点id(s78)。这样,接受了该通知的集群控制部23,对本存储节点3内的冗余化部22通知该对方的控制软件20的控制软件id、和该对方的控制软件20安装在的存储节点3的节点id。另外,接受了该通知的集群控制部23,开始受理对该控制软件20的读请求和写请求,并且每当该控制软件20所保持的结构信息21被更新时,将与原来的结构信息21的差作为差数据经由后端网络5传输至对方的控制软件20安装在的存储节点3,由此使该对方的控制软件20保持的结构信息21同样地更新。之后,代表集群控制部23基于步骤s76~步骤s78的处理结果对本存储节点3内的控制集群管理表25(图6)进行更新,进而与此同样地使其他存储节点3内的控制集群管理表25更新(s79)。具体而言,代表集群控制部23在本存储节点3内的控制软件管理表25中分别新登录构成此时新生成的冗余化组26的各控制软件20,在与这些控制软件20中的、在移动目标存储节点3上运行的控制软件20对应的行的状态栏25b(图6)中保存“主动”,在与另一方的控制软件20对应的行的状态栏25b中保存“被动”。另外,代表集群控制部23在这些行的组id栏25c(图6)中分别保存对此时生成的冗余化组26赋予的组id,进而在这些行的运行节点id栏(图6)中分别保存分别对应的控制软件20所运行在的存储节点3的节点id。进而,代表集群控制部23将这样更新的自身管理的控制软件管理表25的内容对同一个集群6内的各存储节点3的集群控制部23分别通知。这样,接受了该通知的各集群控制部23以成为与从代表集群控制部23通知的新的控制软件管理表25的内容相同的内容的方式分别更新自身管理的控制软件管理表25。之后,代表集群控制部23结束该再平衡处理。(2-3-4)移动对象控制软件和移动目标存储节点决定处理图17表示在该再平衡处理的步骤s70中由代表集群控制部23执行的移动对象控制软件和移动目标(目的地)存储节点决定处理的具体的处理流程。代表集群控制部23前进至再平衡处理的步骤s70时,开始该图17所示的移动对象控制软件和移动目标存储节点决定处理,首先,参照存储节点管理表24(图5),生成将集群6内的各存储节点3的节点id按cpu负荷从高到低的存储节点的顺序排列的列表(以下将其称为移动源节点候选列表)(s80)。此时,代表集群控制部23在cpu负荷相同的存储节点3存在多个的情况下,将控制软件20的运行数更多的存储节点3在这些存储节点3中设定为更接近开头的顺位。接着,代表集群控制部23从在步骤s80中生成的移动源节点候选列表中记载了节点id的各存储节点3中选择开头的节点id(s81),参照控制软件管理表25(图6)判断在与选择的节点id对应的存储节点(以下将其称为第二选择存储节点)3上是否有1个以上控制软件20正在运行(s82)。然后,代表集群控制部23在该判断中得到否定结果时前进至步骤s86。与此相对,代表集群控制部23在步骤s82的判断中得到肯定结果时,选择步骤s81中选择的节点id的存储节点3上运行的控制软件20中的1个,将其决定为移动对象控制软件20(s83)。作为移动对象控制软件20的选择方法,例如为了抑制移动中对i/o性能的影响而选择设定为被动模式的控制软件20。或者,不存在设定为被动模式的控制软件20的情况下,选择设定为主动模式的控制软件20中的、cpu负荷低的控制软件20。接着,代表集群控制部23通过执行对于图15以上叙述的配置位置存储节点决定处理,而决定移动对象控制软件20的配置位置存储节点(移动目标存储节点)3(s84)。进而,代表集群控制部23判断是否通过步骤s84的配置位置存储节点决定处理成功决定了移动对象控制软件20的配置位置存储节点(移动目标存储节点)3(s85)。然后,代表集群控制部23在该判断中得到肯定结果时,结束该移动对象控制软件决定处理并返回再平衡处理。与此相对,代表集群控制部23在步骤s85的判断中得到否定结果时,将步骤s81中选择的节点id从移动源节点候选列表中删除后(s86),判断移动源节点候选列表是否成为空(s87)。然后,代表集群控制部23在该判断中得到否定结果时返回步骤s81,之后,同样地执行步骤s81以后的处理。另外,代表集群控制部23在步骤s87的判断中得到肯定结果时,结束该移动对象控制软件决定处理并返回再平衡处理。(3)本实施方式的效果如以上所述,在本实施方式中,将构成同一个冗余化组26的控制软件20,以使构成集群6的各存储节点3的负荷分散的方式,分散地配置在分别不同的存储节点3中,因此控制软件20被分散地配置在各存储节点3中。从而,根据本实施方式的信息处理系统1,能够用集群6内的各存储节点3分散处理负荷,有效地使用各存储节点3的cpu10和存储器11、存储装置12以及第一和第二通信装置13、14等信息处理资源。另外,本信息处理系统1中,因存储节点3被削减或发生故障、冗余化组26的某一个控制软件20不再能够运行的情况下,作为其替代的控制软件20和该控制软件20使用的结构信息21也被立刻再现在适当的存储节点3上,因此能够总是可靠地维持控制软件20的冗余结构,相应地,能够提高系统整体的可用性和可靠性。进而,本信息处理系统1中,在存储节点3增设时集群3内的某一个控制软件20被重新配置在该存储节点3中,所以能够不增加本信息处理系统1的管理者的作业地进行存储节点3的负荷分散,相应地,能够使系统整体的管理变得容易。(4)其他实施方式另外,上述实施方式中,叙述了由代表集群控制部23执行图14~图17的处理的情况,但本发明不限于此,也可以在存储节点3之外,将由服务器装置等计算机装置构成的管理装置(管理部)与存储服务网络4和后端网络5连接,由该管理装置代替代表集群控制部23执行图14~图17的处理的一部分或全部。另外,上述实施方式中,叙述了在集群6中增设了存储节点3的情况下执行对于图16以上叙述的再平衡处理的情况,但本发明不限于此,也可以为了使各存储节点3的负荷分散,而适当地进行将必要的控制软件20重新配置在其他存储节点3中的再平衡处理。另外,上述实施方式中,叙述了以将负荷分散至全部存储节点3的方式配置控制软件20的再平衡处理(图16),但本发明不限于此,也可以采用平常时,在一部分存储节点3中不配置主动模式的控制软件20,或者不限主动模式或被动模式地不配置控制软件20自身的分散方式。即,可以采用准备使存储装置的容量、cpu负荷、存储器量、后端网络5的通信带宽充裕的存储节点3,由此防止发生故障时计算资源不足的分散方式。另外,也可以是在服务器上虚拟机管理器运行,在虚拟机管理器上1个或多个虚拟计算机运行,在该虚拟计算机上,图3所示的各种程序运行。即,各种程序(控制软件20、冗余化部22、集群控制部23)可以在物理计算机的硬件上运行,也可以在虚拟计算机上运行。同样地,计算节点2可以是在虚拟计算机上运行的应用程序(主机程序),也可以是物理的主机计算机(主机计算机)。信息处理系统1具有多个服务器时,服务器的一部分可以位于不同的地点。另外,也可以是信息处理系统1的服务器的一部分或全部存在于云上,经由网络对用户提供服务。各种程序(控制软件20、冗余化部22、集群控制部23)所运行在的虚拟计算机、和主机程序所运行在的虚拟计算机可以是存在于同一个服务器(节点)上的结构(超融合基础架构(hyper-convergedinfrastructure)),也可以是存在于经由网络连接的不同的服务器上的结构。工业上的可利用性本发明能够广泛应用于具有多个存储节点的各种结构的信息处理系统。附图标记说明1…信息处理系统,2…计算节点,3…存储节点,4…存储服务网络,5…后端网络,6…集群,10…cpu,11…存储器,12…存储装置,20…控制软件,21…结构信息,22…冗余化部,23…集群控制部,24…存储节点管理表,25…控制软件管理表。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1