CN116974462A - 存储系统以及障碍应对方法 - Google Patents

存储系统以及障碍应对方法 Download PDF

Info

Publication number
CN116974462A
CN116974462A CN202310134416.1A CN202310134416A CN116974462A CN 116974462 A CN116974462 A CN 116974462A CN 202310134416 A CN202310134416 A CN 202310134416A CN 116974462 A CN116974462 A CN 116974462A
Authority
CN
China
Prior art keywords
storage
storage node
data
node
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310134416.1A
Other languages
English (en)
Inventor
仓田成己
山本贵大
中村隆喜
斋藤秀雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN116974462A publication Critical patent/CN116974462A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明的课题在于提出一种存储系统以及障碍应对方法,其能够在抑制存储系统的构建所需的费用的同时,在障碍发生时迅速地进行从回退配置的复原。将设于云系统的一个或多个存储装置、设于云系统的一个或多个存储节点、以及控制云系统的云控制装置设于存储系统,存储节点在检测到其他存储节点的障碍的情况下,向云控制装置委托新的存储节点的准备,该存储节点判断分配给发生了障碍的存储节点的存储装置是否故障,该存储节点在判断为该存储装置没有故障的情况下,向云控制装置委托,以将分配给发生了障碍的存储节点的存储装置分配给新的存储节点。

Description

存储系统以及障碍应对方法
技术领域
本发明涉及存储系统以及障碍应对方法,例如,优选应用于具备分别安装有一个或多个SDS(Software Defined Storage,软件定义存储)的多个存储节点的存储系统。另外,以下,SDS指的是通过将具有存储功能的软件安装于通用的服务器装置而构建的存储装置。
背景技术
以往,在信息处理系统中多有为了可用性以及可靠性提高而导致服务器装置的冗余化构成的情况。例如,在专利文献1中,提出了SDS的存储控制软件的故障转移方式。
具体而言,在专利文献1中,通过平时动作的主动侧的控制软件(以下,将其称作主动控制软件)与在障碍发生时从主动控制软件接替处理的备用侧的控制软件(以下,将其称作备用控制软件)来构成实现故障转移的控制软件对,将构成同一对的主动控制软件以及备用控制软件配置于分别不同的服务器装置。此外,构成同一对的主动控制软件以及备用控制软件保持分别相同的控制信息,始终同步地更新这些控制信息。
根据这样的技术,能够在维持系统整体的可靠性的同时,在服务器内将控制信息的读入处理闭合,因此,具有能够实现高性能化这一优点。
另一方面,近年来,云(特别是公共云)作为信息处理系统的平台不断普及。在这样的公共云中,公共云供应商作为IaaS(Infrastructure as aService,基础设施既服务)正在扩展提供计算机资源或存储资源的服务。
公共云的用户通过API(Application Programming Interface,应用程序接口)访问这些公共云上的计算机服务或存储服务,能够在需要的定时确保需要的量的计算机资源或存储资源,此外,也能够迅速地变更其构成。
现有技术文献
专利文献
专利文献1:日本特开2019-101703号公报
发明内容
发明要解决的课题
在考虑作为分散存储系统整体的可靠性以及性能的维持的情况下,为了从以服务器装置的障碍为契机的回退配置迅速地复原,在以专利文献1设为前提的环境为首的本地部署的环境中,一般配置预备的服务器装置。此外,一般来说,预备的服务器装置中安装有预先存储装置,在从障碍复原时通过对存储装置回写数据来从回退配置复原。
然而,为了如此预先准备预备的服务器装置而需要与之相当的费用,存在分散存储系统的导入或构建需要大量的费用这一问题。此外,为了从回退配置复原,如上述那样必须从发生了障碍的服务器装置对连接于预备的服务器装置的存储装置进行数据的复制,因此需要相应的时间存在成为迅速的复原的阻碍因素的问题。
本发明是考虑以上的点而完成的,因此,目的在于提供一种存储系统以及障碍应对方法,其可以在抑制系统构建所需的费用的同时,在障碍发生时迅速地进行从回退配置的复原。
用于解决课题的手段
为了解决涉及的课题,在本发明中,在相对于上位装置提供存储区域的存储系统中,设置有:一个或多个存储装置,设于云系统,分别提供所述存储区域;一个或多个存储节点,设于所述云系统,根据来自所述上位装置的请求,向分配给自身的所述存储装置读写数据;以及云控制装置,控制所述云系统,所述存储节点在检测到其他存储节点的障碍的情况下,向所述云控制装置委托新的存储节点的准备,判断分配给发生了障碍的存储节点的所述存储装置是否故障,在判断为该存储装置没有故障的情况下,向所述云控制装置委托,以将分配给所述发生了障碍的存储节点的所述存储装置分配给所述新的存储节点。
此外,在本发明中,在相对于上位装置提供存储区域的存储系统的障碍应对方法中,所述存储系统具有:一个或多个存储装置,设于云系统,分别提供所述存储区域;一个或多个存储节点,设于所述云系统,根据来自所述上位装置的请求,向分配给自身的所述存储装置读写数据;以及云控制装置,控制所述云系统,所述存储系统设置如下步骤:第一步骤,所述存储节点在检测到其他存储节点的障碍的情况下,向所述云控制装置委托新的存储节点的准备;第二步骤,该存储节点判断分配给发生了障碍的存储节点的所述存储装置是否故障;以及第三步骤,该存储节点在判断为该存储装置没有故障的情况下,向所述云控制装置委托,以将分配给所述发生了障碍的存储节点的所述存储装置分配给所述新的存储节点。
根据本发明的存储系统以及障碍应对方法,用户在构建分散存储系统时无需预先准备预备的计算机资源或存储资源,因此,从用户视角来看,能够廉价地构建存储系统。此外,无需进行将分配给发生了障碍的存储节点的存储装置所储存的数据例如复制到分配给新的存储节点的存储装置这一作业,能够迅速地进行障碍发生时的从回退配置的复原。
发明效果
根据本发明,能够实现可以在抑制系统构建所需的费用的同时,在障碍发生时迅速地进行从回退配置的复原的存储系统以及障碍应对方法。
附图说明
图1是表示本实施方式的存储系统的整体构成的框图。
图2是表示存储节点的概略构成的框图。
图3是用于对存储于存储节点的存储器的软件以及信息的说明的框图。
图4是表示块管理表格的构成的图表。
图5是表示块组管理表格的构成的图表。
图6是表示块更新管理位图表格的构成的图表。
图7是用于更新管理位图的说明的示意图。
图8是用于本存储系统中的正常时的云的构成以及各存储节点的动作说明的框图。
图9是用于本存储系统中的障碍发生时的回退动作的说明的框图。
图10是用于本存储系统的回退配置时的读处理的流程的说明的框图。
图11是用于本存储系统的回退配置时的写处理的流程的说明的框图。
图12是用于替代存储节点的制作处理的说明的框图。
图13是用于替代存储节点的制作处理的说明的框图。
图14是用于替代存储节点的制作处理的说明的框图。
图15是用于重构处理的说明的框图。
图16是表示替代存储节点制作处理的处理顺序的流程图。
图17是表示构成信息更新处理的处理顺序的流程图。
图18是表示重构处理的处理顺序的流程图。
附图标记的说明
1……存储系统,3……主机装置,4……云系统,5……云控制装置,10……存储节点,12……存储装置,21……CPU,30……存储控制部,31……集群控制部,32……容量控制部,33……存储构成信息,34……块管理表格,35……块组管理表格,36……块更新管理位图表格,37……容量构成信息,38……冗余化组,39……块组,AR……部分区域,BM……更新管理位图,BT……更新管理位,CK……块。
具体实施方式
关于以下附图,对本发明的一个实施方式详述。另外,以下的记载以及附图是用于对本发明进行说明的一个例子,并不限定本发明的技术的范围。此外,在各图中,对共同的构成标注相同的参照编号。
以下的说明中,有时通过“表格”、“表”、“列表”、“队列”等的表现对各种信息进行说明,但各种信息也可以通过它们以外的数据构造来表现。为了表示不取决于数据构造,有时将“XX表格”、“XX列表”等称作“XX信息”。在对各信息的内容进行说明时,使用“识别信息”、“识别符”、“名”、“ID”、“编号”等表现,但它们能够相互置换。
此外,在以下的说明中,在不区分同种的要素而进行说明的情况下,使用参照附图标记或者参照附图标记中的共同编号,在区别同种的要素而进行说明的情况下,有时使用该要素的参照附图标记或者取代参照附图标记而使用分配给该要素的ID。
另外,以下说明中,存在说明执行程序进行的处理的情况,但程序通过由至少一个以上处理器(例如CPU)运行,而适当地在使用存储资源(例如存储器)以及/或者接口设备(例如通信端口)等的同时进行规定的处理,因此,也可以认为处理的主体是处理器。同样,执行程序而进行的处理的主体也可以具有处理器的控制器、装置、系统、计算机、节点、存储系统、存储装置、服务器、管理计算机、客户端、或主机。执行程序而进行的处理的主体(例如处理器)也可以包含进行处理的一部分或全部的硬件电路。例如,执行程序而进行的处理的主体可以包括运行加密以及解密、或者压缩和解压缩的硬件电路。处理器通过按照程序动作,而作为实现规定的功能的功能部动作。包含处理器的装置和系统是包括这些功能部的装置以及系统。
程序可以从程序源安装至计算机那样的装置。程序源例如可以是程序发布服务器或计算机所能够读取的存储介质。在程序源是程序发布服务器的情况下,程序发布服务器可以包含处理器(例如CPU)和存储资源,存储资源可以进而存储发布程序和作为发布对象的程序。然后,通过程序发布服务器的处理器执行发布程序,程序发布服务器的处理器可以将发布对象的程序对其他计算机发布。另外,以下说明中,可以将两个以上程序作为一个程序来实现,也可以将一个程序作为两个以上程序来实现。
(1)本实施方式的存储系统的概要
在图1中以1为整体表示本实施方式的存储系统。该存储系统1构成为具备:经由通过以太网(注册商标)或者LAN(Local Area Network,局域网)等构成的网络2而相互连接的多个主机装置3、云系统4、以及云控制装置5。
主机装置3是根据来自用户操作或安装的应用程序的请求而对于云系统4内的后述的存储节点10发送读请求或写请求(以下,适当地将它们统称作I/O(Input/Output,输入/输出)请求)的上位装置,由通用的计算机装置构成。另外,主机装置3可以是物理的计算机装置,此外,也可以是虚拟机那样的虚拟的计算机装置。进而,主机装置3也可以编入云系统4内。
云系统4通过由多个存储节点10构成的计算机提供服务部11与由多个存储装置12构成的块存储提供服务部13构成,构成计算机提供服务部11的各存储节点10与构成块存储提供服务部13的各存储装置12分别经由面向块存储提供服务网络14相互连接。
存储节点10是对于主机装置3提供用于读写数据的存储区域的物理或者虚拟的服务器装置。实际上,对各存储节点10分别分配有块存储提供服务部13内的一个或多个存储装置12。并且,存储节点10将这些被分配的存储装置12所提供的存储区域虚拟化并提供给主机装置3。
如图2所示,存储节点10构成为具备:经由内部网络20相互连接的CPU(CentralProcessing Unit)21、面向主机通信装置22及面向块存储服务通信装置23;以及与CPU21连接的存储器24。各存储节点10具备各一个以上的CPU21、面向主机通信装置22、面向块存储服务通信装置23以及存储器24。
在存储节点10是物理的服务器装置的情况下,CPU21、面向主机通信装置22、面向块存储服务通信装置23以及存储器24由物理的器件构成,在存储节点10是虚拟的服务器装置的情况下,CPU21、面向主机通信装置22、面向块存储服务通信装置23以及存储器24分别构成为虚拟的器件。
CPU21是支配存储节点10整体的动作控制的处理器。此外,存储器24由SRAM(Static RAM(Random Access Memory),静态随机存储器)、DRAM(Dynamic RAM,动态随机存储器)等易失性的半导体存储器构成,用于暂时保持各种程序或需要的数据。通过至少一个以上的CPU21执行储存于存储器24的程序,从而执行后述那样的作为存储节点10整体的各种处理。
面向主机通信装置22是用于存储节点10经由网络2与主机装置3、其他存储节点10或者云控制装置5进行通信的接口,例如,由NIC(Network Interface Card,网卡)等构成。面向主机通信装置22进行与主机装置3、其他存储节点10或者云控制装置5的通信时的协议控制。
面向块存储提供服务通信装置23是用于存储节点10经由面向块存储提供服务网络14与块存储提供服务部13内的存储装置12进行通信的接口,例如,与面向主机通信装置22同样地由NIC等构成。面向块存储提供服务通信装置23进行与存储装置12的通信时的协议控制。
另外,面向主机通信装置22以及面向块存储提供服务通信装置23可以是物理意义上不同的通信装置,也可以是物理意义上相同但逻辑意义上分离的通信装置。进而,面向主机通信装置22以及面向块存储提供服务通信装置23也可以是物理意义以及逻辑意义相同的通信装置。
如图1所示,各存储节点10与其他的一个或多个存储节点10一同汇总在称作集群15的一个组中而被管理。在图1的例子中,例示了在计算机提供服务部11内仅设定一个集群15的情况,但也可以在计算机提供服务部11内设定多个集群15。此外,集群15也可以被称作分散存储系统。
存储装置12由SAS(Serial Attached SCSI(Small Computer System Interface,小型计算机接口),串行连接SCSI)SSD(Solid State Drive,固态硬盘)、NVMe(NonVolatile Memory express,非易失性存储器标准)SSD、SAS硬盘驱动器或者SATA(SerialATA(Advanced Technology Attachment,高级技术附件规格),串行ATA)硬盘驱动器等一个或多个种类的大容量的非易失性存储装置构成。存储装置12根据来自主机装置3的I/O请求而提供用于读写数据的物理或者逻辑存储区域。
云控制装置5是具有系统管理者对云系统4内的计算机提供服务部11以及块存储提供服务部13进行控制的功能的通用的计算机装置。云控制装置5根据系统管理者的操作,经由网络2进行计算机提供服务部11内的存储节点10以及集群15或块存储提供服务部13内的存储装置12的追加、删除或者构成变更等。另外,云控制装置5可以是物理的计算机装置,此外,也可以是虚拟机那样的虚拟的计算机装置。进而,云控制装置5也可以编入云系统4内。
(2)本存储系统中的各种处理的流程
(2-1)各存储于存储节点的存储器的程序以及信息
接着,对本存储系统1中的各种处理的流程进行说明。此时,首先,关于涉及的各种处理,参照图3~图7对储存于各存储节点10的存储器24(图2)的软件以及信息进行说明。
如图3所示,在各存储节点10的存储器24中,作为软件储存有:多个存储控制部30;集群控制部31;以及容量控制部32,作为构成信息储存有:与各存储控制部30分别对应地设置的多个存储构成信息33;以及由块管理表格34、块组管理表格35及块更新管理位图表格36构成的容量构成信息37。
存储控制部30是作为SDS的存储控制器发挥功能的软件。存储控制部30具有受理来自主机装置3(图1)的I/O请求,并对于容量控制部32委托向对应的存储装置12(图1)读写数据的功能。存储控制部30也可以被称作存储控制程序。
在本实施方式的情况下,如图8所示,安装于存储节点10的各存储控制部30与在分别相互不同的其他存储节点10中安装的一个或多个其他存储控制部30一同作为用于冗余化的一个组(以下,将其称作冗余化组)38而被管理。
另外,图8示出了通过两个存储控制部30来构成冗余化组38构的情况,以下,也进行对通过两个存储控制部30来构成冗余化组38的说明,但也可以通过三个以上的存储控制部30来构成冗余化组38。
在冗余化组38中,至少一个存储控制部30被设定为能够受理来自主机装置3的I/O请求的状态(现用系统的状态,以下,将其称作主动模式),剩余的存储控制部30被设定为不受理来自主机装置3的I/O请求的状态(待机系统的状态,以下,将其称作备用模式)。
因而,由两个存储控制部30构成的冗余化组38成为这两个存储控制部30的双方被设定为主动模式的构成(主动-主动构成)、以及一方的存储控制部30被设定为主动模式而另一方的存储控制部30被设定为备用模式的构成(主动-被动构成)中的某一个构成。
并且,在采用了主动-被动构成的冗余化组38中,在被设定为主动模式的存储控制部30或者该存储控制部30所运行的存储节点10发生了障碍的情况下、或在这样的存储节点10被撤除(存储节点10减设)的情况下,至此为止被设定为备用模式的存储控制部30的状态切换为主动模式。由此,在被设定为主动模式的存储控制部30无法运行的情况下,能够将该存储控制部30所执行的I/O处理通过至此为止被设定为备用模式的存储控制部30来接替(故障转移功能)。
为了实现这样的故障转移功能,属于相同的冗余化组38的存储控制部30始终保持同一内容的存储构成信息33。存储构成信息33是存储控制部为了执行与以下各种功能相关的处理所需要的信息,该各种功能包括:容量虚拟化功能、使访问频率多的数据移动到应答速度更快的存储区域的阶层存储控制功能、从储存的数据的中删除重复的数据的重复排除功能、将数据压缩并存储的压缩功能、保持某时刻的数据的状态的Snapshot(快照)功能以及为了灾害对策而同步或者非同步地在远程地复制数据的远程复制功能等。
并且,在构成冗余化组38的主动模式的存储控制部30的存储构成信息33被更新了的情况下,更新前后的该存储构成信息33的差分作为差分数据被传送给该构成冗余化组38的另一方的存储控制部30,基于该差分数据,通过该另一方的存储控制部30来更新该存储控制部30所保持的存储构成信息33。由此,构成冗余化组38的各存储控制部30分别保持的存储构成信息33始终维持在同步的状态。
如此,通过构成冗余化组38的两个存储控制部30彼此始终保持相同的内容的存储构成信息33,从而,在被设定为主动模式的存储控制部30或该存储控制部30所运行的存储节点10发生障碍、或者该存储节点10被撤除的情况下,也能够通过与该存储控制部30相同的冗余化组38内的其他存储控制部30来立即接替至此为止该存储控制部30所执行的处理。
集群控制部31是具有对构成集群15(图1)的各存储节点10与被分配给这些存储节点10的各存储装置12的状态进行管理以及操作的功能的软件。此外,集群控制部31对存储控制部30以及容量控制部32的起动、存储控制部30的动作模式(后述的主动模式或者备用模式)进行管理以及操作。
进而,各集群控制部31具有监控相互的疏通状况,在由于断电或断网这样的某种理由而其他存储节点10发生了障碍的情况下,对其进行检测并向其他集群控制部31通知的功能。另外,作为“存储节点的障碍”的状态,具有存储有安装于存储节点10的为了使OS(Operating System,操作系统)动作所需要的软件的系统盘故障的状态、云系统4提供的接口示出了存储节点10的故障的状态等。
此外,集群控制部31具有经由面向块存储提供服务网络14向对应的其他存储节点10的集群控制部31传送从主机装置3赋予的I/O请求、将从其他存储节点10的集群控制部31传送来的I/O请求交付至对应的冗余化组38的存储控制部30的功能。
实际上,在本实施方式的情况下,如图8所示,按每个冗余化组38,与该冗余化组38对应地定义一个或多个虚拟的逻辑卷(以下,将其称作虚拟卷)LU,这些虚拟卷LU作为用于读/写数据的存储区域提供给主机装置3。
此外,在本实施方式的情况下,按每个冗余化组38,定义一个或多个池(图8的“Pool”)。池是将存储装置12提供的物理的存储区域虚拟化而得到的存储区域,虚拟卷LU内的虚拟的存储区域与存储装置内的物理的存储区域经由该池而相对应。这样的存储装置12的物理的存储区域与池内的虚拟的存储区域之间的对应关系、池内的虚拟的存储区域与虚拟卷LU内的虚拟的存储区域之间的对应关系作为上述的存储构成信息33被管理。
并且,主机装置3在向希望的虚拟卷LU读/写数据的情况下,将指定了该数据的读/写目的地的虚拟卷LU的识别符(LUN:Logical Unit Number,逻辑单元号码)、该虚拟卷LU中的该数据的读/写目的地的地址、以及该数据的数据长的I/O请求发送给对应的集群15内的某一存储节点10。
如此,接收到该I/O请求的存储节点10的集群控制部31,经由面向块存储提供服务网络14,向与该I/O请求中指定的读/写对象的虚拟卷LU相对应的冗余化组38的存储控制部30被配置的各存储节点10的集群控制部31传送该I/O请求。
此外,接收到该I/O请求的存储节点10的集群控制部31,将该I/O请求交付至与该I/O请求中作为读/写目的地而指定的虚拟卷LU相对应的冗余化组38的存储控制部30。接着,在被交付了该I/O请求的存储控制部30中,被设定为主动模式的存储控制部30在该I/O请求是写请求的情况下,经由池,对在该I/O请求中被指定为数据的写目的地的虚拟卷LU内的被指定为数据的写目的地的地址位置动态地分配存储装置12的物理的存储区域,在此基础上,委托容量控制部32,以对于该物理的存储区域写入数据。
作为用于执行这样的一系列的处理的机构,各存储节点10的集群控制部31共享存在于集群15内的各存储控制部30分别配置于哪个存储节点10、属于哪个冗余化组38、动作模式被设定为主动模式以及备用模式中的哪一个这样的信息,利用该信息执行上述那样的对于来自主机装置3的I/O请求的处理。
如图8所示,容量控制部32是具有将分配给自存储节点10的存储装置12所提供的物理的存储区域以称作块(Chunk)CK的规定大小单位提供给存储控制部30的功能的软件。存储控制部30汇总从容量控制部32提供的块CK并作为上述的池进行管理,将池内的块CK动态地分配给虚拟卷LU。由此,虚拟卷LU内的虚拟的存储区域经由池,以块CK单位与存储装置12内的物理的存储区域相对应。
此外,容量控制部32具有如下功能:将从存储控制部30委托了对于存储装置12的写入的数据分割为多个部分数据,根据这些部分数据生成纠删码(Erasure Coding),将这些多个部分数据以及纠删码分别储存于不同的存储装置12内的块CK,并且在一部分的部分数据由于障碍等而变得无法读出的情况下,使用剩余的部分数据与纠删码来恢复变得无法读出的部分数据。
容量控制部32将分别储存有这样的由一个数据生成的部分数据、纠删码的多个块CK作为块组39进行管理。在图8中,示出了块组39由三个块CK构成的例子,在这种情况下,原始的数据被分割为两个部分数据(图8的“A”以及“C”、“B”以及“D”)而分别储存于块组39内的不同的块CK,由这两个部分数据生成的纠删码(图8的“α”以及“β”)储存于该块组39的剩余的块CK。
为了实现这样的数据恢复功能,各存储节点10的容量控制部32始终保持着同一内容的容量构成信息37。容量构成信息37是容量控制部32为了执行如上述那样的与对于存储控制部30提供能够使用区域的功能、恢复数据的功能相关的处理所需要的信息。容量构成信息37包含图3的块管理表格34、块组管理表格35以及块更新管理位图表格36。
并且,在容量构成信息37被更新了的情况下,更新前后的该容量构成信息37的差分作为差分数据被传送给其他各存储节点10上的容量控制部32,基于该差分数据,通过该存储节点10的容量控制部32来更新该容量控制部32所保持的容量构成信息37。由此,各存储节点10的容量控制部32分别保持的容量构成信息37始终维持同步的状态。
图4表示构成容量构成信息37的一部分的块管理表格34。块管理表格34是用于管理存在于集群15(图1)内的块CK的表格,如图4所示,构成为具备块编号栏34A、所属节点编号栏34B、存储装置编号栏34C、存储装置内偏移栏34D以及容量栏34E。在块管理表格34中,一个记录(行)与存在于集群15内的一个块CK对应。
并且,在块编号栏34A中,储存有对应的块CK被赋予的、在集群15内对于该块CK固有的识别编号(块编号)。此外,在存储装置编号栏34C中,储存有提供该块CK的存储装置12被赋予的、在集群15内对于该存储装置12固有的识别编号(存储装置编号),在所属节点编号栏34B中,储存有分配给该存储装置12的存储节点10被赋予的、在集群15内对于该存储节点10固有的识别编号(节点编号)。
进而,在存储装置内偏移栏34D中,储存有对应的存储装置12所提供的存储区域内的对应的块CK的起始地址,在容量栏34E中,储存有该块CK的容量。
因而,在图4的例子的情况下,例如,示出了被赋予了“0”块编号的块CK是分配给“0”节点编号的存储节点10的“0”存储装置编号的存储装置12中的从“0x00000”地址开始的“0x10000”容量的块。
此外,图5表示构成容量构成信息37的一部分的块组管理表格35。该块组管理表格35是用于管理存在于集群15内的块组39(图8)的表格,如图5所示,构成为具备块组编号栏35A以及多个块编号栏35B。在块组管理表格35中,一个记录(行)与在集群15内定义的一个块组39相对应。
并且,在块组编号栏35A中,储存有对应的块组39被赋予的、在集群15内对于该块组39固有的识别编号(块组编号)。此外,在各块编号栏35B中,储存有各自构成对应的块组39的不同的块CK的块编号。
因而,在图5的例子的情况下,示出了被赋予了“0”块组编号的块组39由“0”块编号的块CK、“4”块编号的块CK、以及“6”块编号的块CK构成。
进而,图6表示构成容量构成信息37的一部分的块更新管理位图表格36。块更新管理位图表格36是用于在由于障碍或其他理由而无法访问该块CK的期间存在向该块CK的数据的写入、或储存于该块CK的数据的更新的情况下,对数据写入到该块CK内的哪个位置或者更新储存于哪个位置的数据进行管理的表格。
如图6所示,该块更新管理位图表格36构成为具备块编号栏36A以及更新管理位图栏36B。在块更新管理位图表格36中,一个记录(行)与一个块CK对应,与存在于集群15内的所有块CK分别对应地设置记录。
并且,在块编号栏36A中,储存有对应的块CK的块编号。此外,在更新管理位图栏36B中,储存有与该块CK相关的更新管理位图。因而,在图6的例子的情况下,示出了“0”块编号的块CK的更新管理位图是“0011000001…”。
这里,对更新管理位图进行说明。如图7所示,更新管理位图BM是由将块CK分割为规定大小(例如,256KB)的多个部分区域AR时的分别与各部分区域AR相对应的多个更新管理位BT构成的位图。
在更新管理位图BM中,在初始时,所有更新管理位BT被设定为“0”。接着,在与该更新管理位图BM对应的块CK由于故障等而无法访问的期间存在向该块CK的数据写或者储存于该块CK的数据的更新等的情况下,进行了数据写或者更新了储存的数据的所有部分区域AR所对应的更新管理位BT被设定为“1”。
由此,之后,在变得能够访问该块CK的阶段,对更新管理位图BM中被设定为“1”的部分区域AR储存来自主机装置3的数据,并通过将储存于该部分区域AR的数据更新为更新后的数据,能够使块CK的状态最新化。
另外,应当新储存于涉及的部分区域AR的数据、更新后的数据通过使用构成该块CK所属的块组39的其他块CK所储存的数据以及纠删码(奇偶校验)而能够重构。
(2-2)各种处理的流程
(2-2-1)本存储系统的平常时的状态
图8表示本存储系统1中的平常时的状态。在该图8中,“存储节点A”~“存储节点C”分别表示存储节点10,“存储控制部A(主动)”~“存储控制部C(主动)”分别表示主动模式的存储控制部30,“存储控制部A(备用)”~“存储控制部C(备用)”分别表示备用模式的存储控制部30。
此外,在图8中,示出了在“存储节点A”上运行的“存储控制部A(主动)”与在“存储节点B”上运行的“存储控制部A(备用)”构成冗余化组38,在“存储节点B”上运行的“存储控制部B(主动)”与在“存储节点C”上运行的“存储控制部B(备用)”构成冗余化组38,在“存储节点C”上运行的“存储控制部C(主动)”与在“存储节点A”上运行的“存储控制部C(备用)”构成冗余化组38的例子。进而,这里,认为通过存储控制部30的冗余化而制作的各冗余化组38的构成是主动-备用构成。
此时,各存储节点10的集群控制部31对自身所安装的存储节点(以下,将其称作自存储节点)10以及分配给该存储节点10的存储装置12的状态、其他控制软件的运行状况进行监控,并共享这些信息(S1)。
此外,如上述那样,在主动模式的存储控制部30的存储构成信息33更新了的情况下(S2),更新前后的该存储构成信息33的差分作为差分数据被传送给与该存储控制部30构成相同的冗余化组38的另一方的存储控制部30,基于该差分数据,通过该另一方的存储控制部30来更新该存储控制部30所保持的存储构成信息33(S3)。
进而,在容量构成信息37被容量控制部32更新了的情况下,更新前后的该容量构成信息37的差分作为差分数据被直接或者间接地传送给其他所有存储节点10的容量控制部32(S4),基于该差分数据,通过这些容量控制部32来更新该容量控制部32所保持的容量构成信息37(S5)。另外,图8示出了“存储节点A”的容量构成信息37更新了的情况的例子。
(2-2-2)存储节点的障碍发生时的回退处理的流程
接着,对构成集群15的某一存储节点10发生了障碍的情况的一系列的处理的流程进行说明。这里,如图9所示,对在“存储节点A”发生障碍而“存储节点A”变得无法访问的情况的处理(以下,将其称作回退处理)的流程进行说明。
在这种情况下,与“存储节点A”的集群控制部31连接的“存储节点B”的集群控制部31检测“存储节点A”的障碍。接着,“存储节点B”的集群控制部31向“存储节点C”的集群控制部31发送检测到了“存储节点A”的障碍的意思的通知(S10)。
此外,接收到该通知的“存储节点C”的集群控制部31对于发送来涉及的通知的“存储节点B”以外的相邻(能够通信的)的其他存储节点,通知“存储节点A”发生了障碍的意思。但是,在图9的例子中,在“存储节点B”以外不存在相邻的其他存储节点10,因此,“存储节点C”不进行涉及的通知。
并且,如上述那样,识别到“存储节点A”的障碍的“存储节点B”以及“存储节点C”的集群控制部31进行将与配置于发生了障碍的“存储节点A”的存储控制部30构成相同的冗余化组38的自存储节点10内的备用模式的存储控制部30的动作模式切换为主动模式的处理。在图9的例子的情况下,“存储节点B”的集群控制部31将“存储控制部A(备用)”的状态变更为主动模式(S11)。由此,“存储节点B(备用)”接替至此为止“存储控制部A(主动)”执行的I/O处理。
此外,识别到“存储节点A”的障碍的“存储节点B”以及“存储节点C”的集群控制部31,对于分别配置于发生了障碍的“存储节点A”的“存储控制部A(主动)”、“存储控制部C(备用)”以及构成了冗余化组38的自存储节点10内的“存储控制部A(备用)”或者“存储控制部C(主动)”赋予指示,使得在此之后,即使在该存储控制部30所保持的存储构成信息33更新了的情况下,也不将该差分数据传送给构成了相同的冗余化组38的“存储控制部A(主动)”、“存储控制部C(备用)”(S11)。
(2-2-3)回退配置时的存在于无法访问块内的数据读的流程
图10表示如图9所示,在“存储节点A”发生障碍而进行了图9的上述的回退处理的状态(回退配置的状态)下,从主机装置3赋予了对于与“存储控制部A”相对应的虚拟卷LU的读请求的情况的处理的流程。
在这种情况下,在“存储节点B”内成为主动的“存储控制部A”处理该读请求。具体而言,涉及的“存储控制部A”参照“存储构成信息A”对容量控制部32发行读请求(S20)。在本实施方式中,认为对“块A”的读请求从“存储控制部A”向容量控制部32发行。
接收到该读请求的“存储节点B”的容量控制部32参照容量构成信息37的块管理表格34(图4),确认在读请求中指定的读对象的数据被储存的块(“块A”)的所在。此时,“块A”是分配给发生了障碍的“存储节点A”的存储装置12所提供的块CK,因此无法访问。
因此,涉及的容量控制部32参照容量构成信息37的块组管理表格35(图5),确定构成“块A”所属的块组39的“块A”以外的块CK。这里,如图10所示,认为“块A”与“块C”以及“块α”一同构成块组39。由此,在该例子中,确定“块C”以及“块α”作为构成“块A”所属的块组39的“块A”以外的块CK。
并且,容量控制部32在参照块管理表格34对如此确定出的“块C”以及“块α”的所在进行了确定的基础上,从这些“块C”以及“块α”分别读出为了恢复读对象的数据所需要的数据(S21、S22)。
此外,容量控制部32基于读出的这些数据来恢复读对象的数据,将恢复后的数据传送给“存储控制部A”(S23)。如此,“存储控制部A”将从容量控制部32赋予的恢复后的读对象的数据发送给涉及的读请求的发送源的主机装置3(S24)。
(2-2-4)回退配置时的对于无法访问块的数据写的流程
图11表示如图9所示,在“存储节点A”发生障碍而进行了图9的上述的回退处理的状态下,从主机装置3赋予了对于与“存储控制部A”相对应的虚拟卷LU的写请求的情况的处理的流程。
在这种情况下,在“存储节点B”,成为主动的“存储控制部A”处理来自主机装置3的写请求。具体而言,涉及的“存储控制部A”参照“存储构成信息A”,对于容量控制部32发行写请求(S30)。在本实施方式中,认为对于“块A”的写请求从“存储控制部A”向容量控制部32发行。此外,“存储控制部A”将写数据传送给容量控制部32(S31)。
接收到该写请求的“存储节点B”的容量控制部32参照容量构成信息37的块管理表格34,确认成为在写请求中指定的写数据的储存目的地的块CK(“块A”)的所在。此时,“块A”是分配给发生了障碍的“存储节点A”的存储装置12所提供的块,因此无法访问。
因此,涉及的容量控制部32参照容量构成信息37的块组管理表格35,确定构成“块A”所属的块组39的“块A”以外的块。这里,如图11所示,认为“块A”与“块C”以及“块α”一同构成块组39。由此,该例子中,确定了“块C”以及“块α”作为构成“块A”所属的块组39的“块A”以外的块。
并且,容量控制部32参照块管理表格34对确定出“块C”以及“块α”的所在进行确定。此外,容量控制部32从“块C”读出为了使用写数据来生成新的纠删码所需要的数据(S32),使用读出的数据以及写数据来生成新的纠删码。此外,容量控制部32将生成的纠删码改写至“块α”(S33)。
进而,容量控制部32将储存于容量构成信息37的块更新管理位图表格36(图6)的“块A”的更新管理位图BM(图7)中的应当写入写数据的部分区域AR(图7)所对应的所有更新管理位BT(图7)设定为“1”。通过以上,该一系列的处理结束。
(2-2-5)障碍发生存储节点的替代存储节点制作的流程
接着,参照图12~图14对制作成为发生了障碍的存储节点10的替代的新的存储节点10并使制作出的存储节点10能够作为集群15的一部分来利用为止的流程进行说明。这里,认为如图9的上述那样,在“存储节点A”发生障碍,进行了回退处理。
首先,如图12所示,检测到“存储节点A”发生了障碍的“存储节点B”的集群控制部31向云控制装置5委托取代“存储节点A”的新的存储节点(以下,将其称作替代存储节点)10的准备(S40)。接着,云控制装置5在接收到涉及的委托的情况下,在集群15内制作新的存储节点10(图12中为“存储节点D”)(S41)。
具体而言,云控制装置5在存储节点10是物理的存储装置的情况下,将已经存在的物理的存储装置编入集群15,在存储节点10是虚拟的存储装置的情况下,生成新的虚拟的存储装置并装入集群15。
此外,“存储节点B”的集群控制部31委托云控制装置5(S42),以使分配给发生了障碍的“存储节点A”的存储装置12全部分离(detach)。如此,接收到该委托的云控制装置5使至此为止被分配给“存储节点A”的存储装置12全部分离(S43)。
进而,“存储节点B”的集群控制部31委托云控制装置5(S44),以使在步骤S43中从“存储节点A”分离的所有存储装置12挂接(attach)于在步骤S41中新制作的“存储节点D”。如此,接收到该委托的云控制装置5将至此为止分配给“存储节点A”的所有存储装置12挂接于“存储节点D”(S45)。
另一方面,如上述那样,在集群15内增设“存储节点D”的情况下,该“存储节点D”内的集群控制部31通过云控制装置5而起动(S46)。接着,起动的“存储节点D”的集群控制部31开始与其他存储节点10的集群控制部31共享该集群15内的包含自存储节点10的各存储节点10的构成信息(存储构成信息33以及容量构成信息37)、控制软件(存储控制部30以及容量控制部32)的运行状况。
并且,如上述那样,共享了集群15内的各存储节点10的构成信息、控制软件的运行状况的各存储节点10的集群控制部31开始使回退后的冗余化组返回正常的状态的返回处理。这里,认为“存储节点B”的集群控制部31基于“存储节点B”、“存储节点C”以及“存储节点D”的CPU负荷、空存储器容量等,将“存储控制部A(主动)”以及“存储控制部C(备用)”配置于“存储节点D”,决定将当前成为主动的“存储节点B”的“存储控制部A”变更为备用模式。
基于该决定结果,如图13所示,“存储节点B”的集群控制部31对于“存储控制部A”赋予指示,以使“存储构成信息A”复制到“存储节点D”(S50)。如此,“存储控制部A”按照该指示将“存储构成信息A”传送给“存储节点D”(S51)。接着,接受到该“存储构成信息A”的“存储节点D”的集群控制部31将该“存储构成信息A”储存于自存储节点10的存储器24(图2)。
此外,“存储节点B”的“存储控制部A”在结束向“存储节点D”复制涉及的“存储构成信息A”的情况下,在此之后,在该“存储构成信息A”每次被更新时将更新前后的差分作为差分数据开始传送给“存储节点D”。其结果,基于该差分数据,“存储节点D”的“存储构成信息A”的复制结果被更新,由此,与“存储节点B”的“存储构成信息A”的复制结果的同步开始。
另一方面,“存储节点C”的集群控制部31基于上述的决定结果对于“存储控制部C”赋予指示,以使“存储构成信息C”复制到“存储节点D”(S52)。如此,“存储控制部C”按照该指示,将“存储构成信息C”传送给“存储节点D”(S53)。接着,接收到该“存储构成信息C”的“存储节点D”的集群控制部31将该“存储构成信息C”储存于自存储节点10的存储器24。
此外,“存储节点C”的“存储控制部C”在结束向“存储节点D”复制“存储构成信息C”的情况下,在此之后,在该“存储构成信息C”每次被更新时将更新前后的差分作为差分数据开始传送给“存储节点D”。如此,基于该差分数据,“存储节点D”内的“存储构成信息C”的复制结果被更新,由此,“存储节点C”内的“存储构成信息C”与“存储节点D”内的“存储构成信息C”的复制结果的同步开始。
进而,“存储节点B”的集群控制部31对于自存储节点10的容量控制部32赋予指示,以使容量构成信息37复制到“存储节点D”(S54)。如此,接收了该指示的容量控制部32按照该指示,将自身保持的容量构成信息37传送给“存储节点D”(S55)。接着,接收到该容量构成信息37的“存储节点D”的集群控制部31将该容量构成信息37储存于自存储节点10的存储器24。
如以上那样,在发生了障碍的“存储节点A”所保持的“存储构成信息A”、“存储构成信息C”以及容量构成信息37向“存储节点D”的复制完成的情况下,如图14所示,“存储节点D”的集群控制部31在自存储节点10内起动存储控制部30以及容量控制部32。具体而言,涉及的集群控制部31在主动模式下起动自存储节点10内的“存储控制部A”(S60),同时,在备用模式下起动“存储控制部C”(S61),进而起动容量控制部32(S62)。
此外,“存储节点D”的集群控制部31对于“存储节点B”的集群控制部31赋予指示,以将与在步骤S60中起动的“存储控制部A”构成冗余化组38的“存储节点B”内的“存储控制部A”的动作模式切换为备用模式(S63)。如此,接收了该指示的“存储节点B”的集群控制部31将自存储节点10内的“存储节点A”切换为备用模式(S64)。
此外,“存储节点D”的集群控制部31与当前的状态相应地更新存在于集群15内的各存储控制部30分别配置于哪个存储节点10、属于哪个冗余化组38、动作模式被设定为主动模式以及备用模式中的哪一个这样的自己保持的信息。
此外,涉及的集群控制部31进行将该信息的更新前后的差分作为差分数据发送给“存储节点B”的集群控制部31、并进而经由该集群控制部31发送给“存储节点C”的集群控制部31。由此“存储节点B”的集群控制部31所保持的涉及的信息与“存储节点C”的集群控制部31所保持的涉及的信息被更新为与当前的状态符合的内容。
通过以上为止的处理,能够将新制作的“存储节点D”用作集群15的一部分。
(2-2-6)重构处理的流程
图15表示通过图12~图14的上述的一系列的处理制作的新的存储节点10(图15“存储节点D”)的容量控制部32所执行的重构处理的流程。
“存储节点D”的容量控制部32在图14的结束后通过“存储节点D”的集群控制部31而起动,首先,参照自存储节点10内的容量构成信息37,确定分配给自存储节点10的存储装置12内的重构所需的所有块CK,按每个确定的块CK确定与该块CK构成相同的块组39的该块CK以外的块CK(S70)。
具体而言,涉及的容量控制部32参照自存储节点10内的容量构成信息37的块管理表格34(图4),取得存在于分配给自存储节点10的存储装置12内的块CK(以下,将它们称作属于自存储节点10的块CK)的一览。
此外,涉及的容量控制部32参照容量构成信息37的块更新管理位图表格36(图6),确认在属于自存储节点10的块CK的中是否存在包含重构所需的部分区域AR(图7)的块CK。
这里,“重构所需的块CK”是指包含在从“存储节点A”发生障碍到当前为止的期间通过主机装置3进行了数据写的部分区域AR的块CK。储存于块更新管理位图表格36的更新管理位图栏36B的更新管理位图BM(图7)内包含“1”的块属于这样的块CK。以下,将这样的块CK称作重构对象块CK。
并且,容量控制部32在确认了这样的块CK存在的情况下,参照容量构成信息37的块组管理表格35(图5),按每个重构对象块CK确定构成该重构对象块CK所属的块组39的该重构对象块CK以外的所有块CK。例如,在图5以及图6的例子中,块编号为“0”的块CK是重构对象块CK,将“块4”以及“块6”确定为构成相同的块组39的该重构对象块CK以外的块CK。
此外,在确定的各块CK中,容量控制部32经由其他的“存储节点B”的容量控制部32、或“存储节点C”的容量控制部32从对应的存储装置12读出所有为了根据确定的各块CK对重构对象块CK中的重构所需的部分区域AR(在更新管理位图BM中,是对应的更新管理位BT为“1”的部分区域AR,以下,将其称作重构对象部分区域AR)进行重构所需要的数据(S71)。接着,容量控制部32基于读出的数据来恢复该重构对象部分区域AR的数据,将恢复的数据储存于该重构对象部分区域AR(S72)。
通过以上为止的处理,集群15从回退动作复原,返回“存储节点A”发生障碍前的正常状态。
(2-3)与回退配置复原相关的各软件的具体的处理内容
接着,对与上述的存储节点10的从回退配置的复原动作相关的集群控制部31、容量控制部32的具体的处理内容进行说明。另外,以下,将集群控制部31、容量控制部32这样的“软件”作为各种处理的处理主体进行说明,但实际上,自不必说是存储节点10的CPU21(图2)基于该“软件”来执行该处理。
(2-3-1)替代存储节点制作处理
图16表示图12~图15的如上述那样,在通过制作发生了障碍的存储节点10的替代的存储节点(以下,将其称作替代存储节点的)10而集群15从回退配置复原至正常构成时执行的一系列的处理(以下,将其称作替代存储节点制作处理)的流程。
在通过某一存储节点10的集群控制部31检测其他存储节点10的障碍从而集群15成为图9的上述的回退配置后,该替代存储节点制作处理开始。
并且,检测到连接于通信装置的其他存储节点10的障碍的集群控制部(以下,将其称作障碍检测集群控制部)31,首先,向云控制装置5委托发生了障碍的存储节点(以下,将其称作障碍发生存储节点)10的替代存储节点10的制作(S80)。
接着,障碍检测集群控制部31在块存储提供服务部13(图1)所提供的存储装置12中选择一个分配给障碍发生存储节点10的存储装置12(S81),向云控制装置5委托以确认选择的存储装置(以下,将其称作选择存储装置)12的当前的状态(S82)。
并且,作为步骤S82的委托的结果,障碍检测集群控制部31判断是否从云控制装置5获得了选择存储装置12为正常这一回答(S83)。
障碍检测集群控制部31在该判断中获得肯定结果的情况下,向云控制装置5委托使选择存储装置12从障碍发生存储节点10分离的处理(S84),同时,向云控制装置5委托,以使该选择存储装置12挂接于替代存储节点10(S85)。
与此相对,障碍检测集群控制部31在步骤S83中获得否定结果的情况下,向云控制装置5委托新的存储装置12的制作(S86),同时,向云控制装置5委托该存储装置12向替代存储节点10的挂接(S87)。
接下来,障碍检测集群控制部31根据步骤S84以及步骤S85的处理、或者步骤S86以及步骤S87的处理的处理内容来更新自存储节点10内的容量构成信息37(S88)。
此外,在此之后,障碍检测集群控制部31判断对于分配给障碍发生存储节点10的所有存储装置12是否执行完步骤S82~步骤S88的处理(S89)。接着,障碍检测集群控制部31在该判断中获得否定结果的情况下,返回步骤S81,在此之后,依次将在步骤S81中选择的存储装置12切换为未处理步骤S82之后的步骤的其他存储装置12,同时,重复步骤S81~步骤S89的处理直到在步骤S89中获得肯定结果。
并且,障碍检测集群控制部31在刚对于分配给障碍发生存储节点10的所有存储装置12执行完步骤S82~步骤S88的处理从而在步骤S89中获得肯定结果的情况下,执行用于将障碍发生存储节点10所保持的存储构成信息33以及容量构成信息37复制到替代存储节点10的处理(S90)。
具体而言,障碍检测集群控制部31在配置于替代存储节点10的存储控制部30应当保持的存储构成信息33存在于自存储节点10内的情况下,将该存储构成信息33传送给替代存储节点10的集群控制部31。此外,障碍检测集群控制部31此时一并将容量构成信息37也传送给替代存储节点10的集群控制部31。如此,替代存储节点10的集群控制部31将从障碍检测集群控制部31传送来的存储构成信息33以及容量构成信息37储存于存储器24(图2)并进行管理。
此外,障碍检测集群控制部31在配置于替代存储节点10的存储控制部30应当保持的存储构成信息33不存在于自存储节点10内的情况下,确定保持该存储构成信息33的存储节点10,对该存储节点10的集群控制部31赋予指示以使其将该存储构成信息33传送给替代存储节点10。此外,障碍检测集群控制部31此时将容量构成信息37传送给替代存储节点10的集群控制部31。
如此,接收到涉及的指示的集群控制部31将自存储节点10内的对应的存储构成信息33传送给替代存储节点10。此外,替代存储节点10的集群控制部31将从障碍检测集群控制部31传送来的容量构成信息37以及从其他存储节点10传送来的存储构成信息33储存于存储器24并进行管理。
接着,障碍检测集群控制部31对于替代存储节点10的集群控制部赋予指示,以使所有存储控制部30与容量控制部32起动(S91)。此时,障碍检测集群控制部31对于通过替代存储节点10而起动的各存储控制部30也指定其动作模式(主动模式或者备用模式)。
接下来,障碍检测集群控制部31对替代存储节点10的集群控制部31指示重构处理的执行(S92)。其结果,接受到该指示的替代存储节点10的集群控制部31对于自存储节点10内的容量控制部32指示在图18后述的重构处理的执行。
并且,障碍检测集群控制部31在此之后结束该一系列的替代存储节点制作处理。
(2-3-2)容量构成信息更新处理
图17表示图16的上述替代存储节点制作处理的步骤S88中由障碍检测集群控制部31执行的一系列的处理(以下,将其称作容量构成信息更新处理)的流程。
障碍检测集群控制部31若进入替代存储节点制作处理的步骤S88,则开始该图17所示的容量构成信息更新处理,首先,从此时的选择存储装置12内的各块CK(图6)中选择一个块CK(S100),以在步骤S100中选择的块(以下,将其称作选择块)CK的编号作为线索,从块管理表格34(图4)的各记录(行)中确定选择块所对应的记录(S101)。
接着,障碍检测集群控制部31将在步骤S101中确定的记录中的储存于所属节点编号栏34B(图4)的存储节点编号改写为替代存储节点10的存储节点编号(S102)。
接下来,对于选择存储装置12,障碍检测集群控制部31判断是否在图16的步骤S83中获得否定结果,并作为该结果步骤S86中制作了取代选择存储装置12的新的存储装置12(S103)。接着,障碍检测集群控制部31在该判断中获得否定结果的情况下进入步骤S106。
与此相对,障碍检测集群控制部31在步骤S103的判断中获得肯定结果的情况下,将块管理表格34中的储存于步骤S101中确定的记录的存储装置编号栏34C(图4)的存储装置编号改写为替代存储节点制作处理的步骤S86中作为取代选择存储装置12的存储装置而制作的存储装置(以下,将其称作替代选择存储装置)的存储装置编号(S104)。
此外,障碍检测集群控制部31以选择块的块编号为线索,在块更新管理位图表格36(图6)的各记录(行)中,确定选择块所对应的记录,将确定的记录的储存于更新管理位图栏36B(图6)的更新管理位图BM(图7)的所有更新管理位BT(图7)的值设定为“1”(S105)。
进而,障碍检测集群控制部31判断对于分配于障碍发生存储节点10的所有存储装置12是否执行完步骤S101~步骤S105的处理(S106)。接着,障碍检测集群控制部31在步骤S106的判断中获得否定结果的情况下,返回步骤S100,在此之后,重复步骤S100~步骤S106的处理直到在步骤S106中获得肯定结果。
并且,障碍检测集群控制部31在刚对于分配给障碍发生存储节点10的所有存储装置12执行完步骤S101~步骤S105的处理从而在步骤S106中获得肯定结果的情况下,结束该容量构成信息更新处理。
(2-3-3)重构处理
图18表示关于图15的上述的重构处理由替代存储节点10的容量控制部32执行的一系列的处理的流程。替代存储节点10的容量控制部32在图16的步骤S92中从替代存储节点10的集群控制部31赋予了重构处理的执行指示的情况下,开始该图18所示的重构处理。
并且,涉及的容量控制部32首先参照容量构成信息37的块管理表格34,对于分配给取代“存储节点A”而新制作的替代存储节点10(“存储节点D”)的重构对象的各存储装置12内的所有块CK(图6)进行确定,从确定的块CK的中选择一个步骤S111之后的步骤未处理的块CK(S110)。
接着,容量控制部32从块更新管理位图表格36(图6)取得在步骤S110中选择的块(以下,将其称作选择块)CK的更新管理位图BM(图7)(S111),从取得的更新管理位图BM选择一个步骤S113之后的步骤未处理的更新管理位BT(图7)(S112)。
接下来,容量控制部32判断在步骤S112中选择的更新管理位(以下,将其称作选择更新管理位)BT的值是否为“1”(S113)。接着,容量控制部32在该判断中获得否定结果的情况下,返回步骤S112,在此之后,如上述那样对步骤S112以后进行处理。
与此相对,容量控制部32在步骤S113的判断中获得肯定结果的情况下,恢复选择更新管理位BT所对应的选择块CK内的部分区域AR(图7)的数据(S114)。具体而言,容量控制部32参照块组管理表格35(图5)确定与选择块CK构成相同的块组39(图8)的其他块CK,向对应的其他存储节点10的容量控制部32进行请求,以从确定的这些块CK内的选择更新管理位BT所对应的部分区域AR读出数据并进行传送。接着,容量控制部32基于如此取得的数据来恢复应当储存于选择块CK内的选择更新管理位BT所对应的部分区域AR的数据。
接着,容量控制部32将恢复后的数据写入到对应的存储装置12中的选择块CK内的该部分区域AR(S115),在此之后,将选择更新管理位BT的值更新为“0”(S116)。
进而,容量控制部32判断对于选择块CK所对应的更新管理位图BM内的所有更新管理位BT是否执行完步骤S113~步骤S116的处理(S117)。接着,容量控制部32在该判断中获得否定结果的情况下,返回步骤S112,在此之后,将在步骤S112中选择的更新管理位BT依次切换为步骤S113之后的步骤未处理的其他更新管理位BT,同时,重复步骤S112~步骤S117的处理直到在步骤S117中获得肯定结果。
并且,容量控制部32在刚对于选择块CK所对应的更新管理位图BM内的所有更新管理位BT执行完步骤S113~步骤S116的处理从而在步骤S117中获得肯定结果的情况下,判断对于分配给替代存储节点10的重构对象的各存储装置12内的所有块CK是否执行完步骤S111~步骤S117的处理(S118)。
容量控制部32在该判断中获得否定结果的情况下,返回步骤S110,在此之后,将在步骤S110中选择的块CK依次切换为步骤S111之后的步骤未处理的其他块CK,同时,重复步骤S110~步骤S118的处理直到在步骤S118中获得肯定结果。
并且,容量控制部32在刚对于分配给替代存储节点10的重构对象的各存储装置12内的所有块CK执行完步骤S111~步骤S117的处理从而在步骤S118获得肯定结果的情况下,结束该重构处理。
(3)本实施方式的效果
如以上所述,根据本实施方式的存储系统1,在存储节点检测到其他存储节点的障碍的情况下,对云控制装置指示新的存储节点(替代存储节点)的制作,判断分配给发生了障碍的存储节点的存储装置是否故障,在判断为没有故障的情况下,向云控制装置委托,以将分配给发生了障碍的存储节点的存储装置分配至新的存储节点。
因而,根据本存储系统1,用户在构建分散存储系统时无需预先准备预备的计算机资源或存储资源,因此,从用户视角来看能够廉价地构建存储系统1。此外,不需要进行将分配给发生了障碍的存储节点10的存储装置12所储存的数据例如复制到分配给新的存储节点10的存储装置12这样的作业,能够迅速地进行障碍发生时的从回退配置的复原。因此,根据本存储系统1,在抑制系统构建所需的费用的同时,在障碍发生时能够迅速地进行从回退配置的复原。
(4)其他实施方式
另外,在上述的实施方式中,对由最初检测到构成相同的集群15的存储节点10之中的发生了障碍的存储节点10的该障碍的存储节点10进行图16的上述的替代存储节点制作处理、图17的上述的构成信息更新处理的情况进行了叙述,但本发明并不限定于此,例如,也可以是,从构成集群15的存储节点10的中选定一个作为代表的存储节点(以下,将其称作代表存储节点)10,使选定的代表存储节点10执行涉及的替代存储节点制作处理、构成信息更新处理。
此外,在上述的实施方式中,对存储节点10将数据分割为多个部分数据,根据这些部分数据来生成纠删码,将这多个部分数据以及纠删码储存于分别不同的存储装置12内的块CK的情况进行了叙述,但本发明并不限定于此,也可以将相同的数据储存(拷贝)于不同的多个存储装置。在这种情况下,在障碍的发生中,在将分配给发生了障碍的存储节点10的存储装置12所储存的新的数据或者更新后的数据在分配给其替代存储节点10的存储装置12中进行恢复的情况下,原样地复制储存有相同的数据的其他存储装置12所储存的数据并进行恢复即可。
进而,在上述的实施方式中,对存储装置12是块存储装置的情况进行了叙述,但本发明并不限定于此,在存储装置12是文件存储装置的情况下也能够应用本发明。在这种情况下,在障碍的发生中,关于分配给发生了障碍的存储节点10的存储装置12所储存的数据的更新的有无、新写入的数据的有无,基于文件单位进行即可。
工业上的可利用性
本发明能够广泛地应用于对于上位装置提供存储区域的各种构成的存储系统。

Claims (12)

1.一种存储系统,对于上位装置提供存储区域,其特征在于,具备:
一个或多个存储装置,设于云系统,分别提供所述存储区域;
一个或多个存储节点,设于所述云系统,根据来自所述上位装置的请求向分配给自身的所述存储装置读写数据;以及
云控制装置,控制所述云系统,
所述存储节点,
在检测到其他存储节点的障碍的情况下,向所述云控制装置委托新的存储节点的准备,
判断分配给发生了障碍的存储节点的所述存储装置是否故障,
在判断为该存储装置没有故障的情况下,向所述云控制装置委托,以将分配给所述发生了障碍的存储节点的所述存储装置分配给所述新的存储节点。
2.根据权利要求1所述的存储系统,其特征在于,
所述新的存储节点,
将在障碍的发生中被请求了向分配给所述发生了障碍的存储节点的所述存储装置的写入的数据写入到分配给所述新的存储节点的所述存储装置。
3.根据权利要求2所述的存储系统,其特征在于,
所述存储节点,
在判断为分配给所述发生了障碍的存储节点的所述存储装置故障的情况下,向所述云控制装置委托新的存储装置的准备,
向所述云控制装置委托向所述新的存储节点分配准备的所述新的存储装置,
所述新的存储节点,
将判断为故障的所述存储装置所储存的数据写入到该新的存储装置。
4.根据权利要求3所述的存储系统,其特征在于,
所述存储节点,
根据储存于所述存储装置的数据生成纠删码,将生成的所述纠删码储存于与该数据被储存的所述存储装置不同的所述存储装置,
所述新的存储节点,
使用所述纠删码恢复判断为故障的所述存储装置所储存的数据,将恢复的所述数据写入到所述新的存储装置。
5.根据权利要求4所述的存储系统,其特征在于,
在障碍的发生中被请求了向分配给所述发生了障碍的存储节点的所述存储装置的写入的数据的在该存储装置中的写入目的地储存于该发生了障碍的存储节点以外的所述存储节点,
所述新的存储节点,
将恢复的所述数据写入到所述发生了障碍的存储节点以外的所述存储节点所存储的所述写入目的地。
6.根据权利要求4所述的存储系统,其特征在于,
各所述存储节点,
将分别分配给各所述存储节点的所述存储装置所提供的存储区域分割为规定大小的块而进行管理,并将分别分配给不同的多个存储节点的规定数量的所述存储装置内各自的一个所述块作为块组进行管理,
将所述数据以及根据该数据生成的所述纠删码分于构成相同的所述块组的多个所述块而储存。
7.一种障碍应对方法,是对于上位装置提供存储区域的存储系统中的障碍应对方法,其特征在于,
所述存储系统具有:
一个或多个存储装置,设于云系统,分别提供所述存储区域;
一个或多个存储节点,设于所述云系统,根据来自所述上位装置的请求向分配给自身的所述存储装置读写数据;以及
云控制装置,控制所述云系统,
所述障碍应对方法具有:
第一步骤,所述存储节点在检测到其他存储节点的障碍的情况下,向所述云控制装置委托新的存储节点的准备;
第二步骤,该存储节点判断分配给发生了障碍的存储节点的所述存储装置是否故障;以及
第三步骤,该存储节点在判断为该存储装置没有故障的情况下,向所述云控制装置委托,以将分配给所述发生了障碍的存储节点的所述存储装置分配给所述新的存储节点。
8.根据权利要求7所述的障碍应对方法,其特征在于,还具备:
第四步骤,其中,所述新的存储节点将在障碍的发生中被请求了向分配给所述发生了障碍的存储节点的所述存储装置的写入的数据写入到分配给所述新的存储节点的所述存储装置。
9.根据权利要求8所述的障碍应对方法,其特征在于,
在所述第三步骤中,所述存储节点,
在判断为分配给所述发生了障碍的存储节点的所述存储装置故障的情况下,向所述云控制装置委托新的存储装置的准备,
向所述云控制装置委托向所述新的存储节点分配准备的所述新的存储装置,
在所述第四步骤中,所述新的存储节点,
将判断为故障的所述存储装置所储存的数据写入到该新的存储装置。
10.根据权利要求9所述的障碍应对方法,其特征在于,
所述存储节点,
根据储存于所述存储装置的数据生成纠删码,将生成的所述纠删码储存于与该数据被储存的所述存储装置不同的所述存储装置,
在所述第四步骤中,所述新的存储节点,
使用所述纠删码恢复判断为故障的所述存储装置所储存的数据,将恢复的所述数据写入到所述新的存储装置。
11.根据权利要求10所述的障碍应对方法,其特征在于,
在障碍的发生中被请求了向分配给所述发生了障碍的存储节点的所述存储装置的写入的数据的在该存储装置中的写入目的地储存于该发生了障碍的存储节点以外的所述存储节点,
在所述第四步骤中,所述新的存储节点,
将恢复的所述数据写入到所述发生了障碍的存储节点以外的所述存储节点所存储的所述写入目的地。
12.根据权利要求10所述的障碍应对方法,其特征在于,
各所述存储节点,
将分别分配给各所述存储节点的所述存储装置所提供的存储区域分割为规定大小的块而进行管理,并将分别分配给不同的多个存储节点的规定数量的所述存储装置内各自的一个所述块作为块组进行管理,
将所述数据以及根据该数据生成的所述纠删码分于构成相同的所述块组的多个所述块而储存。
CN202310134416.1A 2022-04-28 2023-02-17 存储系统以及障碍应对方法 Pending CN116974462A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022074093A JP2023163298A (ja) 2022-04-28 2022-04-28 記憶システム及び障害対処方法
JP2022-074093 2022-04-28

Publications (1)

Publication Number Publication Date
CN116974462A true CN116974462A (zh) 2023-10-31

Family

ID=88482056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310134416.1A Pending CN116974462A (zh) 2022-04-28 2023-02-17 存储系统以及障碍应对方法

Country Status (3)

Country Link
US (1) US20230350753A1 (zh)
JP (1) JP2023163298A (zh)
CN (1) CN116974462A (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645943B2 (en) * 2011-02-22 2017-05-09 Infinidat Ltd. Storage arrangement and method using a plurality of storage spaces which have separate control layers and separate mapping structures
US9086929B2 (en) * 2012-04-06 2015-07-21 International Business Machines Corporation Dynamic allocation of a workload across a plurality of clouds
US11729857B2 (en) * 2018-09-17 2023-08-15 Apple Inc. Systems, methods, and devices for signaling for power saving
US11349917B2 (en) * 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) * 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
WO2022020770A1 (en) * 2020-07-24 2022-01-27 Intel Corporation Computing workload management in next generation cellular networks
US20230345543A1 (en) * 2022-04-28 2023-10-26 Intel Corporation Release-18 (rel-18) support of two timing advances (tas) for single cell
US20230354152A1 (en) * 2022-07-05 2023-11-02 Intel Corporation Sidelink relay enhancements to support multipath

Also Published As

Publication number Publication date
US20230350753A1 (en) 2023-11-02
JP2023163298A (ja) 2023-11-10

Similar Documents

Publication Publication Date Title
CN109857445B (zh) 存储系统和控制软件配置方法
US11074016B2 (en) Using flash storage devices with different sized erase blocks
CN109857334B (zh) 存储系统及其控制方法
US11328767B2 (en) Multi-level cell page writes
US11030090B2 (en) Adaptive data migration
US11190580B2 (en) Stateful connection resets
US10545687B1 (en) Data rebuild when changing erase block sizes during drive replacement
US10203903B2 (en) Geometry based, space aware shelf/writegroup evacuation
US11204709B2 (en) Storage system and storage control method
US11307789B2 (en) Storage system and storage control method
US20210303178A1 (en) Distributed storage system and storage control method
US10719265B1 (en) Centralized, quorum-aware handling of device reservation requests in a storage system
US20230004464A1 (en) Snapshot commitment in a distributed system
US20210232545A1 (en) Persistent file locks in a storage system
CN116974462A (zh) 存储系统以及障碍应对方法
JP7179947B2 (ja) ストレージシステム及びストレージ制御方法
JP6905611B2 (ja) 記憶システム及びその制御方法
JP7057408B2 (ja) 記憶システム及びその制御方法
JP2023151189A (ja) ストレージシステム及びその制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination