JP2022020744A - Storage system and storage control method - Google Patents

Storage system and storage control method Download PDF

Info

Publication number
JP2022020744A
JP2022020744A JP2021179972A JP2021179972A JP2022020744A JP 2022020744 A JP2022020744 A JP 2022020744A JP 2021179972 A JP2021179972 A JP 2021179972A JP 2021179972 A JP2021179972 A JP 2021179972A JP 2022020744 A JP2022020744 A JP 2022020744A
Authority
JP
Japan
Prior art keywords
control unit
storage
storage control
volume
node
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.)
Granted
Application number
JP2021179972A
Other languages
Japanese (ja)
Other versions
JP7179947B2 (en
Inventor
賢太 佐藤
Kenta Sato
彰 出口
Akira Deguchi
智大 川口
Tomohiro Kawaguchi
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
Priority claimed from JP2018177578A external-priority patent/JP6974281B2/en
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021179972A priority Critical patent/JP7179947B2/en
Publication of JP2022020744A publication Critical patent/JP2022020744A/en
Application granted granted Critical
Publication of JP7179947B2 publication Critical patent/JP7179947B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a storage system and a storage control method that guarantee availability of the system and are established at a low cost.
SOLUTION: A plurality of volumes processed by a storage control unit are dispersed and saved in a normal storage control unit without restoring a reduced redundancy of the storage control unit with such a redundancy, and the storage control unit with a reduced redundancy itself is removed after completion of the saving to eliminate the need of a reservation information processing resource for guaranteeing restoration possibility of redundancy and improve the efficiency of use of a physical server.
SELECTED DRAWING: Figure 10
COPYRIGHT: (C)2022,JPO&INPIT

Description

本発明は、ストレージシステム及びその制御方法に関する。 The present invention relates to a storage system and a control method thereof.

高い信頼性を求められる情報処理システムでは、複数のサーバを用いてシステムを冗長化することが一般的である。しかしながら、このような冗長化構成の場合、サーバ障害発生後に冗長度を回復させるために、障害が発生したサーバの代替となるスペアサーバを用意しておく必要がある。通常時にスペアのサーバは処理を行わないため、サーバの利用効率が低下する。 In an information processing system that requires high reliability, it is common to make the system redundant by using a plurality of servers. However, in the case of such a redundant configuration, in order to recover the redundancy after a server failure occurs, it is necessary to prepare a spare server as a substitute for the failed server. Since the spare server does not perform processing in normal times, the utilization efficiency of the server decreases.

一方、近年では、仮想化技術を用いて、サーバを仮想化することで、物理サーバの利用効率を向上させ、物理サーバの台数を削減する構成も増えている。仮想マシンの冗長化に関する発明が、例えば特許文献1に開示されている。特許文献1では、複数台の現用系の仮想マシンと、これら現用系の仮想マシンを冗長化するために設けられた予備系の仮想マシンとを、複数の物理サーバに配置する技術が開示されている。このような仮想マシンを配置する技術によれば、物理サーバ障害によって冗長化した仮想マシンの片方を喪失した場合に、喪失した仮想マシンを別の物理サーバ上にコピーして冗長化構成を再構築することで、スペアの物理サーバを用意することなく冗長度を回復させること可能としている。 On the other hand, in recent years, there is an increasing number of configurations in which the utilization efficiency of physical servers is improved and the number of physical servers is reduced by virtualizing the servers using virtualization technology. An invention relating to virtual machine redundancy is disclosed in, for example, Patent Document 1. Patent Document 1 discloses a technique in which a plurality of working virtual machines and a spare virtual machine provided for making these working virtual machines redundant are arranged on a plurality of physical servers. There is. According to the technology for arranging such virtual machines, if one of the redundant virtual machines is lost due to a physical server failure, the lost virtual machine is copied to another physical server and the redundant configuration is reconstructed. By doing so, it is possible to recover the redundancy without preparing a spare physical server.

特開2014-75027号公報Japanese Unexamined Patent Publication No. 2014-75027

高い信頼性が求められる情報処理システムの中には、例えば、冗長化動作を行うための動作基盤といった、システム内部の基盤処理を安定動作させるために、システムが処理する情報量とは関係なく、一定量のCPUコアやメモリなどの情報処理資源を必要とするものがある。例えば、仮想化技術を用いたストレージシステムが安定動作するためには、ボリューム数などとは関係なく、一定量の情報処理資源を必要とする。 In some information processing systems that require high reliability, for example, regardless of the amount of information processed by the system in order to stably operate the infrastructure processing inside the system, such as the operation infrastructure for performing redundant operation. Some require information processing resources such as a certain amount of CPU cores and memory. For example, in order for a storage system using virtualization technology to operate stably, a certain amount of information processing resources are required regardless of the number of volumes.

また、仮想マシン、コンテナ、マルチプロセスなどによって、1台のサーバ上で複数の独立したシステムを動作させる構成において、このような一定量の情報処理資源を最低限必要とするシステムを動作させる場合、同一サーバ上で動作する他のシステムの影響を受けないようにする必要がある。そのため、当該システムに必要な情報処理資源を予約し、当該システムに固定的に割り当てることが一般的である。 In addition, in a configuration where multiple independent systems are operated on one server by virtual machines, containers, multi-processes, etc., when operating a system that requires a certain amount of information processing resources at a minimum, It should not be affected by other systems running on the same server. Therefore, it is common to reserve the information processing resources required for the system and allocate them fixedly to the system.

しかしながら、このようなシステムに特許文献1の配置技術を適用する場合、冗長度が低下したシステムに、当該システムが必要とする最低限の情報処理資源が再構築先の物理サーバに余っている必要がある。そのため、確実に冗長度を回復させるためには、予め物理サーバに冗長度回復用の情報処理資源を予約しておく必要がある。冗長度回復用に予約された情報処理資源は、障害等により冗長度の低下する場合以外は、利用されないため物理サーバの利用効率が低下し、システム構築コストが高くなる。 However, when the arrangement technique of Patent Document 1 is applied to such a system, it is necessary that the minimum information processing resources required by the system are surplus in the physical server of the reconstruction destination in the system with reduced redundancy. There is. Therefore, in order to reliably recover the redundancy, it is necessary to reserve the information processing resource for the redundancy recovery in advance in the physical server. Since the information processing resources reserved for redundancy recovery are not used except when the redundancy is lowered due to a failure or the like, the utilization efficiency of the physical server is lowered and the system construction cost is high.

また、仮想化技術を用いたストレージシステムである、Software Defined Storage(SDS)は高い信頼性が求められる一方、比較的安価なサーバを用いて、低コストで情報処理システムを構築することが求められている。 In addition, while Software Defined Storage (SDS), which is a storage system using virtualization technology, is required to have high reliability, it is required to construct an information processing system at low cost using a relatively inexpensive server. ing.

本発明の目的は、システムの可用性を担保しつつ、低コストのストレージシステム、およびストレージ制御方法を提供することにある。 An object of the present invention is to provide a low-cost storage system and a storage control method while ensuring the availability of the system.

上記課題を解決するため、本発明の望ましい態様の一つのストレージシステムは、クラスタを構成する複数のストレージノードを有するストレージシステムにおいて、各ストレージノードは、データを記憶する記憶装置と、ストレージシステム全体の制御を行うクラスタ制御部と、記憶装置を利用してボリュームという単位で記憶領域をホスト装置に提供し、ホスト装置からのIO要求に応じて前記記憶装置にデータを保存するストレージ制御部とを有し、ストレージ制御部は、クラスタ内の他のストレージノードのストレージ制御部とストレージ制御部グループを構成し、ストレージ制御部グループの一つのストレージ制御部がアクティブモードのストレージ制御部としてホスト装置からのIO要求を処理し、ストレージ制御部グループの残りストレージ制御部がスタンバイモードのストレージ制御部として、アクティブモードのストレージ制御部が失われた場合に、アクティブモードに切り替わり、アクティブモードのストレージ制御部の処理を引き継ぐよう構成され、複数のストレージノードの内の一台のストレージノードをストレージシステムから取り除く場合、残存する他のストレージノードのクラスタ制御部は、取り除かれるストレージノードのストレージ制御部を用いて構成されるストレージ制御部グループが担当する複数のボリュームを取得し、取得した複数のボリュームの各ボリュームに対し退避先のストレージ制御部グループを決定し、取り除かれるストレージノードのストレージ制御部を用いて構成されるストレージ制御部グループを構成するストレージ制御部から退避先の複数のストレージ制御部グループのストレージ制御部へ、取り除かれるストレージノードのストレージ制御部を用いて構成されるストレージ制御部グループが担当する複数のボリュームを分散して退避させる。 In order to solve the above problems, one storage system of a desirable aspect of the present invention is a storage system having a plurality of storage nodes constituting a cluster, and each storage node is a storage device for storing data and the entire storage system. It has a cluster control unit that controls and a storage control unit that uses a storage device to provide a storage area to the host device in units called volumes and stores data in the storage device in response to an IO request from the host device. However, the storage control unit constitutes a storage control unit group with the storage control unit of other storage nodes in the cluster, and one storage control unit of the storage control unit group serves as an IO from the host device as a storage control unit in active mode. When the request is processed and the remaining storage control unit of the storage control unit group becomes the storage control unit in standby mode and the storage control unit in active mode is lost, the mode is switched to active mode and the processing of the storage control unit in active mode is performed. When configured to take over and removing one of the storage nodes from the storage system, the cluster control of the other remaining storage nodes is configured with the storage control of the storage node being removed. Acquires multiple volumes in charge of the storage control unit group, determines the storage control unit group to save to for each volume of the acquired multiple volumes, and stores configured using the storage control unit of the storage node to be removed. Multiple volumes in charge of the storage control unit group configured by using the storage control unit of the storage node to be removed are transferred from the storage control unit that constitutes the control unit group to the storage control unit of multiple storage control unit groups at the save destination. Disperse and evacuate.

本発明により、冗長度の回復可能性を保証するための予約情報処理資源が不要となり、物理サーバの利用効率が向上する。 INDUSTRIAL APPLICABILITY According to the present invention, a reserved information processing resource for guaranteeing the recoverability of redundancy becomes unnecessary, and the utilization efficiency of the physical server is improved.

実施例1による情報処理システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the information processing system by Example 1. FIG. ストレージノードの詳細構成を示すブロック図である。It is a block diagram which shows the detailed structure of a storage node. 実施例1によるストレージシステムの論理的な構成を示す図である。It is a figure which shows the logical configuration of the storage system by Example 1. FIG. 実施例1によるデータ管理を説明する図である。It is a figure explaining the data management by Example 1. FIG. ストレージノード管理表の一例を示す図である。It is a figure which shows an example of a storage node management table. ストレージ制御部管理表の一例を示す図である。It is a figure which shows an example of the storage control part management table. ボリューム管理表の一例を示す図である。It is a figure which shows an example of a volume management table. 論理チャンク管理表の一例を示す図である。It is a figure which shows an example of the logical chunk management table. 物理チャンク管理表の一例を示す図である。It is a figure which shows an example of the physical chunk management table. 本発明の課題を説明する図である。It is a figure explaining the subject of this invention. メモリに格納されるプログラムと管理情報の一例を示す図である。It is a figure which shows an example of a program and management information stored in a memory. 障害回復プログラム(1)の処理の一例を示す図である。It is a figure which shows an example of the process of a failure recovery program (1). 障害回復プログラム(2)の処理の一例を示す図である。It is a figure which shows an example of the process of a failure recovery program (2). ボリューム退避プログラム(1)の処理の一例を示す図である。It is a figure which shows an example of the process of a volume save program (1). ボリューム退避先決定プログラム(1)の処理の一例を示す図である。It is a figure which shows an example of the process of a volume save destination determination program (1). ストレージ制御部ペア削除プログラム(1)の処理の一例を示す図である。It is a figure which shows an example of the process of the storage control part pair deletion program (1). ストレージノード減設プログラム(1)の処理の一例を示す図である。It is a figure which shows an example of the process of the storage node reduction program (1).

以下、図面を参照して、本発明の実施形態について詳述する。ただし、以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のために、適宜省略および簡略化が行われており、本発明の技術的範囲を限定するものではない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. However, the following description and drawings are examples for explaining the present invention, and are appropriately omitted and simplified for the sake of clarification of the description, and limit the technical scope of the present invention. is not it.

以後の説明では「テーブル」、「表」、「リスト」、「キュー」などの表現にて各種情報を説明するが、各種情報はこれら以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために、単に「情報」と呼ぶことがある。各種情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」、「番号」などの表現を用いるが、これらについては相互に置換が可能である。 In the following description, various information will be described by expressions such as "table", "table", "list", and "queue", but various information may be expressed by data structures other than these. Therefore, it is sometimes referred to simply as "information" to indicate that it does not depend on the data structure. When explaining the contents of various information, expressions such as "identification information", "identifier", "name", "name", "ID", and "number" are used, but these can be replaced with each other. be.

以後の説明では、「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサ(例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit))によって実行されることで定められた処理を、記憶資源(例えばメモリ)やインタフェースデバイス(例えば通信装置)などを適宜用いながら行うため、プロセッサを主語とした説明としてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有する例えばコントローラ、装置、システム、計算機、ノード、ストレージ装置、サーバ、クライアント、又はホストであってもよい。また、プログラムの一部または全ては、ハードウェア回路を用いて処理してもよい。 In the following explanation, "program" may be used as the main subject, but the program is a process defined by being executed by a processor (for example, CPU (Central Processing Unit) or GPU (Graphics Processing Unit)). Since it is performed while appropriately using a storage resource (for example, memory) or an interface device (for example, a communication device), the description may be based on a processor. Similarly, the subject of processing performed by executing a program may be, for example, a controller, a device, a system, a computer, a node, a storage device, a server, a client, or a host having a processor. Further, a part or all of the program may be processed by using a hardware circuit.

各種プログラムは、プログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。また、以後の説明において、2以上のプログラムが1つのプログラムとして実現されてもよく、逆に1つのプログラムが2以上のプログラムとして実現されてもよい。 Various programs may be installed in each computer by a program distribution server or storage media. Further, in the following description, two or more programs may be realized as one program, and conversely, one program may be realized as two or more programs.

以下、図1~図16を参照して、実施例1について詳述する。 Hereinafter, the first embodiment will be described in detail with reference to FIGS. 1 to 16.

図1は、実施例1による情報処理システムの物理的な構成を示す図である。この情報処理システムは、1以上のホスト装置100と、1以上の管理端末110と、2以上のストレージノード200から構成されるマルチノード構成のストレージシステム200とを備えて構成される。各ホスト装置100及び管理端末110、各ストレージノード210間は、例えばファイバーチャネル(Fibre Channel)、イーサネット(登録商標)、無線LAN(Local Area Network)又はInfiniBandなどから構成されるネットワーク300を介して接続される。図には示していないが、ネットワーク300は、ネットワークスイッチやゲートウェイといった各種中継装置を含んでいてもよい。なお、各ストレージノード210間専用のネットワークを別途備えていてもよく、また、各ホスト装置100及び管理端末110、各ストレージノード210がそれら以外のネットワークに接続されていてもよい。 FIG. 1 is a diagram showing a physical configuration of an information processing system according to the first embodiment. This information processing system includes one or more host devices 100, one or more management terminals 110, and a multi-node storage system 200 composed of two or more storage nodes 200. Each host device 100, the management terminal 110, and each storage node 210 are connected via a network 300 composed of, for example, Fiber Channel, Ethernet (registered trademark), wireless LAN (Local Area Network), or InfiniBand. Will be done. Although not shown in the figure, the network 300 may include various relay devices such as a network switch and a gateway. A dedicated network between the storage nodes 210 may be separately provided, or the host device 100, the management terminal 110, and each storage node 210 may be connected to other networks.

ホスト装置100は、インストールされたアプリケーションプログラムを実行することで各種業務処理を行うためのサーバ装置である。ホスト装置100は実行しているアプリケーションプログラムからの要求に応じて、ネットワーク300を介してストレージノード210に対してデータの読み込み要求又は書き込み要求を送信する。なお、ホスト装置100は仮想マシンやコンテナのような仮想的なサーバ装置であってもよい。 The host device 100 is a server device for performing various business processes by executing an installed application program. The host device 100 sends a data read request or a write request to the storage node 210 via the network 300 in response to a request from the running application program. The host device 100 may be a virtual server device such as a virtual machine or a container.

管理端末110は、ストレージシステムの管理者がストレージシステム200に対して各種の設定操作や状態監視を行うためのクライアント装置である。管理端末110はスマートフォンやタブレット端末のような携帯端末でもよく、一部のホスト装置100が管理端末を兼ねていてもよい。 The management terminal 110 is a client device for the administrator of the storage system to perform various setting operations and status monitoring on the storage system 200. The management terminal 110 may be a mobile terminal such as a smartphone or a tablet terminal, and some host devices 100 may also serve as a management terminal.

ストレージシステム200は、ホスト装置100に対してデータの読み書きをするための記憶領域を提供するサーバ装置である。なお、ストレージシステム200を構成するストレージノード210は仮想マシンやコンテナのような仮想的なサーバ装置であってもよく、ホスト装置100の仮想的なサーバ装置とストレージノード210の仮想的なサーバ装置を同一の物理サーバ装置に配置する構成でもよい。 The storage system 200 is a server device that provides a storage area for reading and writing data to the host device 100. The storage node 210 constituting the storage system 200 may be a virtual server device such as a virtual machine or a container, and the virtual server device of the host device 100 and the virtual server device of the storage node 210 may be used. It may be configured to be arranged in the same physical server device.

図2は、ストレージノード210の詳細構成を示す図である。ストレージノード210は、CPU211、メモリ212、記憶装置213、通信装置214とを備えており、これらが内部ネットワーク215を介して接続されたサーバ装置により構成される。ただし、図2はストレージノードの一例であり、本発明は図の構成に限定されるものではなく、CPU211、メモリ212、記憶装置213、通信装置214の全て或いは何れかが複数であっても良い。 FIG. 2 is a diagram showing a detailed configuration of the storage node 210. The storage node 210 includes a CPU 211, a memory 212, a storage device 213, and a communication device 214, and these are configured by a server device connected via the internal network 215. However, FIG. 2 is an example of a storage node, and the present invention is not limited to the configuration shown in the figure, and all or any of the CPU 211, the memory 212, the storage device 213, and the communication device 214 may be plural. ..

CPU211は、ストレージノード210全体の動作制御を司る制御装置であり、メモリ212に格納された各種プログラムを実行することで、各種処理を実行する。メモリ212は、例えば、ストレージノード210で使用される制御情報、CPU211が実行するプログラム、ホスト装置がアクセスするデータなどを格納する。メモリ212は一般にDRAM(Dynamic RAM(Random Access Memory))で構成するが、例えば、MRAM(Magnetoresistive RAM),ReRAM(Resistive RAM)、PCM(Phase Change Memory)、NANDなど、DRAM以外の記憶メディアで構成されてもよい。 The CPU 211 is a control device that controls the operation of the entire storage node 210, and executes various processes by executing various programs stored in the memory 212. The memory 212 stores, for example, control information used by the storage node 210, a program executed by the CPU 211, data accessed by the host device, and the like. The memory 212 is generally composed of DRAM (Dynamic RAM (Random Access Memory)), but is composed of storage media other than DRAM such as MRAM (Magnetoresistive RAM), ReRAM (Resistive RAM), PCM (Phase Change Memory), and NAND. May be done.

記憶装置213は、物理的に記憶領域を有する装置であり、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、SCM(Storage Class Memory)、又は光ディスクなどの不揮発性の記憶装置から構成される。記憶装置213へアクセスするためのインタフェースとして、SAS(Serial Attached SCSI)とNVMe(Non-Volatile Memory Express)を記載しているが、例えば、SATA(Serial ATA)、USB(Universal Serial Bus)など、それ以外のインタフェースであってもよい。 The storage device 213 is a device having a physical storage area, and is composed of, for example, a non-volatile storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), an SCM (Storage Class Memory), or an optical disk. Will be done. SAS (Serial Attached SCSI) and NVMe (Non-Volatile Memory Express) are described as interfaces for accessing the storage device 213. For example, SATA (Serial ATA), USB (Universal Serial Bus), etc. The interface may be other than.

一般に、マルチノード構成のストレージシステムでは、ノード障害に備え、別のストレ
ージノード210にデータの複製を格納してデータを保護する。ノード内で複数の記憶装置213を束ねてRAID(Redundant Arrays of Independent Disks)のような高信頼化技術を使用してもよい。
Generally, in a storage system having a multi-node configuration, a copy of data is stored in another storage node 210 to protect the data in case of a node failure. A high reliability technology such as RAID (Redundant Arrays of Independent Disks) may be used by bundling a plurality of storage devices 213 in a node.

通信装置214は、ネットワーク300を介してホスト装置100や他のストレージノード210、ストレージシステム200を管理するための管理端末110等と接続され、ホスト装置100や管理端末110、他のストレージノード210との通信を仲介する。図2では、通信装置214をホスト装置100向けの通信と管理端末110向けの通信、他のストレージノード210向けの通信とで共有しているが、それぞれの通信のために異なる通信装置を設けてもよい。 The communication device 214 is connected to the host device 100, another storage node 210, a management terminal 110 for managing the storage system 200, etc. via the network 300, and is connected to the host device 100, the management terminal 110, and another storage node 210. Mediates communication. In FIG. 2, the communication device 214 is shared by the communication for the host device 100, the communication for the management terminal 110, and the communication for other storage nodes 210, but different communication devices are provided for each communication. May be good.

図3は、実施例1によるストレージシステムの論理的な構成を示す図である。クラスタ制御部216は、複数のストレージノードから構成されるストレージシステム全体の制御を司るソフトウェアである。クラスタ制御部216には、マスタとワーカの2種類の動作ロールがある。ワーカロールのクラスタ制御部216bはマスタロールのクラスタ制御部216aの指示に従ってストレージノード内の各種制御や状態監視を行い、マスタロールのクラスタ制御部216aはクラスタ全体での排他制御や一貫性制御が必要な処理、管理端末110を介した各種設定操作の処理や障害等発生時の通知等を行う。なお、マスタはワーカの機能を内包している。 FIG. 3 is a diagram showing a logical configuration of the storage system according to the first embodiment. The cluster control unit 216 is software that controls the entire storage system composed of a plurality of storage nodes. The cluster control unit 216 has two types of operation roles, a master and a worker. The cluster control unit 216b of the worker role performs various controls and status monitoring in the storage node according to the instructions of the cluster control unit 216a of the master role, and the cluster control unit 216a of the master role requires exclusive control and consistency control for the entire cluster. Processing, processing of various setting operations via the management terminal 110, notification when a failure occurs, etc. are performed. The master includes the functions of the worker.

マスタロールとして動作するクラスタ制御部はクラスタ内に常に1つ存在し、その他のクラスタ制御部はワーカロールで動作する。マスタロールのクラスタ制御部とワーカロールのクラスタ制御部は、ストレージノード間通信などによって、互いに生死監視を行っている。マスタロールのクラスタ制御部は、ストレージノード障害などによって、クラスタ制御部が失われた場合は、ストレージノード障害が発生したと判断し、障害回復処理を行う。障害回復処理の詳細に関しては、図を用いて後述する。 There is always one cluster control unit in the cluster that operates as a master role, and the other cluster control units operate in a worker role. The cluster control unit of the master role and the cluster control unit of the worker roll monitor each other's life and death by communication between storage nodes and the like. If the cluster control unit of the master role is lost due to a storage node failure or the like, the cluster control unit of the master role determines that a storage node failure has occurred and performs failure recovery processing. The details of the disaster recovery process will be described later with reference to the drawings.

マスタロールのクラスタ制御部が失われた場合は、クラスタ内のワーカロールのクラスタ制御部の何れか1つがマスタロールに切り替わる。複数のワーカロールのクラスタ制御部からマスタロールに切り替わるクラスタ制御部の選出に関しては、一般に「リーダ選出」と呼ばれる技術及び機能を利用するため、説明は省略する。 If the cluster control unit of the master role is lost, any one of the cluster control units of the worker role in the cluster is switched to the master role. Regarding the selection of the cluster control unit that switches from the cluster control unit of a plurality of worker roles to the master role, a technique and a function generally called "leader selection" are used, and therefore the description thereof will be omitted.

ストレージ制御部219は、記憶領域としてホスト装置に提供するボリュームに関する各種制御を司るソフトウェアにより実現される。ストレージ制御部219は、記憶装置を利用してボリュームという単位で記憶領域をホスト装置に提供し、ホスト装置からのIO(Input/Output)要求に応じて記憶装置にデータを保存する機能を有する。また、あるストレージ制御部が担当していたボリュームを他のストレージ制御部に移動させる機能(マイグレーション機能)も有する。 The storage control unit 219 is realized by software that controls various controls related to the volume provided to the host device as a storage area. The storage control unit 219 has a function of providing a storage area to a host device in units of volumes using a storage device and storing data in the storage device in response to an IO (Input / Output) request from the host device. It also has a function (migration function) to move the volume that one storage control unit was in charge of to another storage control unit.

ストレージ制御部219には、アクティブとスタンバイの2種類の動作モードがある。あるストレージノードに配置されたアクティブモードのストレージ制御部219aは、クラスタ内の異なるストレージノードに配置されたスタンバイモードのストレージ制御部219bとペア(ストレージ制御部ペア217と呼ぶ)を構成して動作する。ストレージ制御部ペアの他、一つのアクティブモードのストレージ制御部に複数のスタンバイモードのストレージ制御部を対応させる場合、ストレージ制御部グループとする。通常時は、アクティブモードのストレージ制御部219aがホスト装置からのIO要求を処理する。スタンバイモードのストレージ制御部219bは、ストレージノード障害などによるアクティブモードのストレージ制御部219aの喪失に備えて待機しておく。アクティブモードのストレージ制御部219aが失われた場合は、スタンバイモードのストレージ制御部219bがアクティブモードに切り替わり、IO要求などの処理を引き継ぐ。なお、ストレージ制御部ペアを構成する二つのストレージ制御部の両方がアクティブモードで動作していてもよく、ストレージ制御部グループを
構成する二つ以上のストレージ制御部がアクティブモードで動作していてもよい。この場合は、アクティブモードのストレージ制御部間で排他制御などの追加処理が必要になる。また、ストレージノード障害などによってアクティブモードのストレージ制御部が失われた場合に、残存しているアクティブモードのストレージ制御部が、失われたアクティブモードのストレージ制御部が担当していたIO要求などの処理を引き継いでもよい。
The storage control unit 219 has two types of operation modes, active and standby. The active mode storage control unit 219a located on a storage node operates by forming a pair (called a storage control unit pair 217) with the standby mode storage control unit 219b located on a different storage node in the cluster. .. In addition to the storage control unit pair, when a plurality of standby mode storage control units are associated with one active mode storage control unit, the storage control unit group is used. Normally, the storage control unit 219a in active mode processes the IO request from the host device. The storage control unit 219b in the standby mode stands by in preparation for the loss of the storage control unit 219a in the active mode due to a storage node failure or the like. If the storage control unit 219a in the active mode is lost, the storage control unit 219b in the standby mode switches to the active mode and takes over the processing such as IO request. Note that both of the two storage control units that make up the storage control unit pair may be operating in the active mode, and even if two or more storage control units that make up the storage control unit group are operating in the active mode. good. In this case, additional processing such as exclusive control is required between the storage control units in the active mode. In addition, when the active mode storage control unit is lost due to a storage node failure, the remaining active mode storage control unit is responsible for the IO request that the lost active mode storage control unit was in charge of. The processing may be taken over.

図3に示すように、1つのストレージノードに、2以上のストレージ制御部を配置してもよい。また、1つのストレージノードに配置するアクティブモードとスタンバイモードのストレージ制御部を同数に揃えることで、ストレージノード間での、例えばCPUやメモリなどの情報処理資源の利用率を均等にすることができる。 As shown in FIG. 3, two or more storage control units may be arranged in one storage node. Further, by arranging the same number of storage control units in the active mode and the standby mode arranged in one storage node, it is possible to equalize the utilization rate of information processing resources such as CPU and memory among the storage nodes. ..

データ冗長化部218は、複数のストレージノード210間でデータを冗長化して記憶装置に保存することで、ストレージノード障害によるデータ喪失を防止するためのソフトウェアにより実現される。データ冗長化の方法として、例えば、異なるストレージノード210にデータの複製を格納する方法や、パリティを複数のストレージノード210に分散して格納する方法などが考えられる。図には示していないが、ストレージノード内の記憶装置障害に備えて、ストレージノード間のデータ冗長化に加えて、ノード内でRAIDなどのデータ冗長化を行ってもよい。 The data redundancy unit 218 is realized by software for preventing data loss due to a storage node failure by making data redundant among a plurality of storage nodes 210 and storing the data in the storage device. As a method of data redundancy, for example, a method of storing a copy of data in different storage nodes 210, a method of distributing parity in a plurality of storage nodes 210, and the like can be considered. Although not shown in the figure, in preparation for a storage device failure in a storage node, in addition to data redundancy between storage nodes, data redundancy such as RAID may be performed in the node.

このように、実施例1は、サーバを仮想化する仮想化技術の応用例として、複数台の物理サーバをストレージノードとして利用するストレージシステムに関する。このようなストレージシステムでは、ホスト装置に記憶領域としてボリュームを提供するストレージ制御部のアクティブ(現用系)とスタンバイ(予備系)を、異なるストレージノード間に配置して冗長化する。さらに、ストレージシステム全体の処理性能を向上させるために、一つのストレージノードには、アクティブとスタンバイから成るストレージ制御部ペアを複数備える。 As described above, the first embodiment relates to a storage system that uses a plurality of physical servers as storage nodes as an application example of a virtualization technique for virtualizing a server. In such a storage system, the active (active system) and standby (spare system) of the storage control unit that provides the volume as a storage area to the host device are arranged between different storage nodes to make them redundant. Further, in order to improve the processing performance of the entire storage system, one storage node is provided with a plurality of storage control unit pairs consisting of active and standby.

図4は、実施例1によるデータ管理の概要を説明する図である。図4は、ホスト装置からの書き込み要求を処理する場合を示している。 FIG. 4 is a diagram illustrating an outline of data management according to the first embodiment. FIG. 4 shows a case where a write request from a host device is processed.

データ冗長化部218が、チャンクを用いて複数のストレージノード間でデータを複製する。物理チャンク222は、ストレージノード内の記憶装置を1以上の所定容量の小領域(例えば、42MB)に分割して作成した物理的な記憶領域である。論理チャンク221は1以上の物理チャンクが対応付けられた論理的なチャンクである。論理チャンク221は後述するボリューム220のブロック223に対応付けられ、ホスト装置の書き込みデータが格納される。1つの論理チャンク221に、それぞれ異なるストレージノードに作成した2以上の物理チャンク222を対応付け、論理チャンク221に書き込まれたデータを、対応付けられた全ての物理チャンク222に保存することでノード間のデータ冗長化を実現する。図4では、アクティブモードとスタンバイモードのストレージ制御部219が配置された各ストレージノード210の物理チャンク222にデータを保存している。このように、アクティブモードとスタンバイモードのストレージ制御部219が配置されるストレージノード210にデータを保存(データのローカリティを確保)しているので、ホスト装置にボリュームを提供するストレージ装置に対し、データのリード要求があった場合、他のストレージノードからデータを読み出す必要がなく、高い応答性を確保できる。 The data redundancy unit 218 replicates data between multiple storage nodes using chunks. The physical chunk 222 is a physical storage area created by dividing a storage device in a storage node into small areas (for example, 42 MB) having a predetermined capacity of one or more. The logical chunk 221 is a logical chunk to which one or more physical chunks are associated. The logical chunk 221 is associated with the block 223 of the volume 220, which will be described later, and stores the write data of the host device. Two or more physical chunks 222 created in different storage nodes are associated with one logical chunk 221, and the data written in the logical chunk 221 is stored in all the associated physical chunks 222 between the nodes. Achieve data redundancy. In FIG. 4, data is stored in the physical chunk 222 of each storage node 210 in which the storage control unit 219 in the active mode and the standby mode is arranged. In this way, since the data is stored in the storage node 210 (securing the locality of the data) in which the storage control unit 219 in the active mode and the standby mode is arranged, the data is stored in the storage device that provides the volume to the host device. When there is a read request for, there is no need to read data from other storage nodes, and high responsiveness can be ensured.

データのローカリティを担保しなければ、データを任意の2つのストレージノードの物理チャンクに保存してもよい。例えば、ストレージ制御部219が配置されたストレージノードの記憶装置の空き容量が不足した場合に、記憶装置の空き容量に余裕のあるストレージノードの物理チャンクに保存する、といった処理を行ってもよい。 Data may be stored in physical chunks of any two storage nodes as long as the locality of the data is not guaranteed. For example, when the free space of the storage device of the storage node in which the storage control unit 219 is arranged is insufficient, the processing may be performed such that the storage device is saved in the physical chunk of the storage node having a sufficient free space of the storage device.

ボリューム220は、ストレージ制御部219がホスト装置100に提供する仮想的な記憶領域であり、ホスト装置100はボリュームに対してデータの書き込み要求を行う。ボリューム220は、ストレージシステム200の管理者が、管理端末110を介してストレージシステム200に対してボリューム作成指示を行うことによって作成される。ボリューム220の作成先となるストレージ制御部219は、ボリューム作成時に管理者が指定してもよく、ボリューム作成指示を受けたマスタロールのクラスタ制御部216aが、各ストレージノードの空き記憶容量や各ストレージ制御部のCPU利用率等を基に選択してもよい。 The volume 220 is a virtual storage area provided by the storage control unit 219 to the host device 100, and the host device 100 makes a data write request to the volume. The volume 220 is created by the administrator of the storage system 200 giving a volume creation instruction to the storage system 200 via the management terminal 110. The storage control unit 219 to which the volume 220 is created may be specified by the administrator when the volume is created, and the cluster control unit 216a of the master role that receives the volume creation instruction determines the free storage capacity of each storage node and each storage. It may be selected based on the CPU utilization rate of the control unit and the like.

ボリューム自体は物理的な記憶領域を有しておらず、ホスト装置100からの書き込み要求に応じて論理チャンク221を割り当て、論理チャンク221にデータを論理的に書き込む。ボリューム220は、記憶領域を先頭から1以上の所定容量のブロック223に分割して管理される。このブロックは、例えば論理チャンクと一対一で対応付けられる。ボリューム作成直後は、どのブロックに対しても論理チャンクの対応付けは行われておらず、ホスト装置100がボリューム220に対してデータの書き込みを行った際に、データを書き込んだ領域に対応するブロック223に論理チャンク221が対応付けられてない場合に、論理チャンク221の作成と、ブロック223と論理チャンク221とを対応付ける処理が行われる。 The volume itself does not have a physical storage area, and a logical chunk 221 is allocated in response to a write request from the host device 100, and data is logically written to the logical chunk 221. The volume 220 is managed by dividing the storage area into one or more blocks 223 having a predetermined capacity from the beginning. This block is associated one-to-one with, for example, a logical chunk. Immediately after the volume is created, no logical chunks are associated with any block, and when the host device 100 writes data to the volume 220, the block corresponding to the area where the data was written. When the logical chunk 221 is not associated with the 223, the process of creating the logical chunk 221 and associating the block 223 with the logical chunk 221 is performed.

ホスト装置100からのIO要求の処理はアクティブモードのストレージ制御部219aが担当する。新しい論理チャンクを作成し、ブロックと論理チャンクとの対応付けを行った場合は、その対応関係を表す情報をスタンバイモードのストレージ制御部219bに転送する。アクティブモードのストレージ制御部219aとスタンバイモードのストレージ制御部219bとで、一つのストレージ制御ペア217を構成する。図4に示したように、ストレージノード0のスタンバイモードのストレージ制御部219は、ストレージノード1以外のストレージノードのストレージ制御部とストレージ制御ペア217を構成し、ストレージノード1のスタンバイモードのストレージ制御部219は、ストレージノード0以外のストレージノードのストレージ制御部とストレージ制御ペア217を構成する。 The storage control unit 219a in the active mode is in charge of processing the IO request from the host device 100. When a new logical chunk is created and the block and the logical chunk are associated with each other, the information indicating the correspondence is transferred to the storage control unit 219b in the standby mode. The storage control unit 219a in the active mode and the storage control unit 219b in the standby mode form one storage control pair 217. As shown in FIG. 4, the storage control unit 219 in the standby mode of the storage node 0 constitutes a storage control pair 217 with the storage control unit of the storage node other than the storage node 1, and the storage control in the standby mode of the storage node 1 is performed. Section 219 constitutes a storage control pair 217 with a storage control section of a storage node other than the storage node 0.

論理チャンク221に書き込まれたデータは、データ冗長化部218が論理チャンク221と物理チャンク222の対応関係に従って、物理チャンク222に書き込む。図4の例では、物理チャンクを複製(二重化)することでデータを冗長化する場合を示しており、ホスト装置100から書き込まれたデータは、「ストレージノード0」と「ストレージノード1」の物理チャンクに書き込まれる。物理チャンクを三重化する場合や、ストレージノード間でRAIDやErasure Codingを利用して冗長化する場合なども、データ冗長化部がその冗長化方式に応じて、物理チャンクの複製やパリティの生成を行う。図4では、ブロックと論理チャンクは同容量かつ一対一で対応付けられており、以後においても、ブロックと論理チャンクは一対一に付けられているものとして説明を進める。但し、例えば、1以上のボリュームからなる、2以上ブロックが1つの論理チャンクに対応付けられるものとしてもよい。 The data written in the logical chunk 221 is written to the physical chunk 222 by the data redundancy unit 218 according to the correspondence between the logical chunk 221 and the physical chunk 222. The example of FIG. 4 shows a case where data is made redundant by duplicating (duplicating) physical chunks, and the data written from the host device 100 is the physical of “storage node 0” and “storage node 1”. Written in chunks. Even when triplexing physical chunks or using RAID or Erasure Coding between storage nodes for redundancy, the data redundancy unit duplicates the physical chunks and generates parity according to the redundancy method. conduct. In FIG. 4, the blocks and the logical chunks have the same capacity and are associated with each other on a one-to-one basis, and the description will be continued thereafter assuming that the blocks and the logical chunks are attached to each other on a one-to-one basis. However, for example, two or more blocks composed of one or more volumes may be associated with one logical chunk.

図4には示していないが、「ストレージノード0」の障害時に、「ストレージノード1」のストレージ制御部とデータ冗長化部が処理を引き継ぐため、「ストレージノード1」もボリュームに関する情報、ブロックに関する情報、論理チャンクに関する情報を有しており、どちらか一方のストレージノードで情報を更新すると、それに同期して、もう一方のストレージノードに更新内容が転送されて情報が更新される。それぞれの情報の詳細に関しては管理情報が記載されている図を用いて説明する。 Although not shown in FIG. 4, when the "storage node 0" fails, the storage control unit and the data redundancy unit of the "storage node 1" take over the processing, so that the "storage node 1" also relates to information and blocks related to the volume. It has information about information and logical chunks, and when information is updated on one of the storage nodes, the updated contents are transferred to the other storage node in synchronization with it, and the information is updated. The details of each information will be described with reference to the figure in which the management information is described.

次に、実施例1によるストレージシステムを制御するための管理情報(管理表)について説明する。なお、各種管理情報は、管理端末110を介してストレージシステム200の管理者が参照及び設定できるようにしてもよい。 Next, the management information (management table) for controlling the storage system according to the first embodiment will be described. The various management information may be referenced and set by the administrator of the storage system 200 via the management terminal 110.

図5は、ストレージノード管理表256の一例である。ストレージノード管理表は、表形
式以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために、単に「情報」と呼ぶことがある。ストレージノード管理表は、ストレージノードの動作状況と、ストレージノードが持つ各種情報処理資源を管理する情報である。ストレージノード管理表は、マスタロールのクラスタ制御部が動作するストレージノードのメモリに格納される。ストレージノード管理表256は、ストレージノードID2561、ロール2562、動作状態2563、CPUコア数2564、メモリ量2565、通信帯域利用率2566、記憶装置総容量2567、記憶装置総使用量2568を含むレコードを管理する。
FIG. 5 is an example of the storage node management table 256. The storage node management table may be represented by a data structure other than the tabular format. Therefore, it is sometimes referred to simply as "information" to indicate that it does not depend on the data structure. The storage node management table is information that manages the operating status of the storage node and various information processing resources possessed by the storage node. The storage node management table is stored in the memory of the storage node on which the cluster control unit of the master role operates. Storage node management Table 256 manages records including storage node ID 2561, role 2562, operating status 2563, number of CPU cores 2564, memory amount 2565, communication band utilization rate 2566, storage device total capacity 2567, and storage device total usage 2568. do.

ストレージノードID2561は、ストレージノードを一意に識別するIDであり、ストレージシステム全体でユニークなIDである。ロール2562は、当該ストレージノードで動作するクラスタ制御部の動作ロール(マスタ、ワーカ)を示す情報である。動作状態2563は、当該ストレージノードが正常に動作しているか否かを示す情報である。CPUコア数2564とメモリ量2565は、それぞれ、当該ストレージノードに搭載されたCPUのコア数とメモリの容量を示す情報である。通信帯域利用率2566は、当該ストレージノードに搭載された通信装置の帯域利用率を示す情報である。記憶装置総容量2567は、当該ストレージノードに搭載された記憶装置の容量の合計である。記憶装置総使用量2568は、当該ストレージノードに搭載された記憶装置の容量のうち、実際に利用している容量の合計である。ストレージノードIDが1のストレージノードは、マスタロールのクラスタ制御部として動作していることを示す。 The storage node ID 2561 is an ID that uniquely identifies the storage node, and is a unique ID for the entire storage system. Role 2562 is information indicating an operation role (master, worker) of the cluster control unit operating in the storage node. The operating state 2563 is information indicating whether or not the storage node is operating normally. The number of CPU cores 2564 and the amount of memory 2565 are information indicating the number of CPU cores and the memory capacity installed in the storage node, respectively. The communication band utilization rate 2566 is information indicating the band utilization rate of the communication device mounted on the storage node. The total storage capacity 2567 is the total capacity of the storage devices mounted on the storage node. The total storage device usage 2568 is the total capacity of the storage devices actually used among the capacities of the storage devices mounted on the storage node. A storage node having a storage node ID of 1 indicates that it is operating as a cluster control unit of the master role.

通信帯域利用率2566、記憶装置総使用量2568は、定期的にマスタロールのクラスタ制御部が、各ストレージ制御部で動作するワーカロールのクラスタ制御部から取得した情報である。省略しているが、各ストレージノードは、マスタロールのクラスタ制御部が収集するストレージノードの情報を管理している。また、ストレージノード障害などによって、当該ストレージノードのクラスタ制御部が動作していない場合は、マスタロールのクラスタ制御部が当該ストレージノードで障害が発生していると判断し、ストレージノード管理表の動作状態を障害に変更する。図4では、ストレージノードIDが0のストレージノードで障害が発生していることを示す。またストレージノード障害により、通信帯域利用率と記憶装置総使用量を取得できなかった場合は“NA”と示している。 The communication bandwidth utilization rate 2566 and the total storage device usage 2568 are information acquired by the cluster control unit of the master role from the cluster control unit of the worker roll operating in each storage control unit on a regular basis. Although omitted, each storage node manages the storage node information collected by the cluster control unit of the master role. If the cluster control unit of the storage node is not operating due to a storage node failure, the cluster control unit of the master role determines that a failure has occurred in the storage node and operates the storage node management table. Change the state to failure. FIG. 4 shows that a failure has occurred in a storage node having a storage node ID of 0. If the communication bandwidth utilization rate and the total storage device usage cannot be acquired due to a storage node failure, it is indicated as "NA".

図6は、ストレージ制御部管理表257の一例である。ストレージ制御部管理表257は、表形式以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために、単に「情報」と呼ぶことがある。ストレージ制御部管理表257は、ストレージ制御部のペア関係と、ストレージ制御部とストレージノードの関係、ストレージ制御部の動作状況を管理する情報である。ストレージ制御部管理表257は、マスタロールのクラスタ制御部が動作するストレージノードのメモリに格納される。ストレージ制御部管理表257は、ストレージ制御部ID2571、ストレージ制御部ペアID2572、ストレージノードID2573、動作モード2574、割り当てCPUコア数2575、割り当てメモリ量2576、CPU利用率2577、メモリ利用量2578を含むレコードを管理する。 FIG. 6 is an example of the storage control unit management table 257. The storage control unit management table 257 may be represented by a data structure other than the tabular format. Therefore, it is sometimes referred to simply as "information" to indicate that it does not depend on the data structure. The storage control unit management table 257 is information that manages the pair relationship of the storage control unit, the relationship between the storage control unit and the storage node, and the operation status of the storage control unit. The storage control unit management table 257 is stored in the memory of the storage node in which the cluster control unit of the master role operates. The storage control unit management table 257 is a record including the storage control unit ID2571, the storage control unit pair ID2572, the storage node ID2573, the operation mode 2574, the number of allocated CPU cores 2575, the allocated memory amount 2576, the CPU utilization rate 2577, and the memory usage amount 2578. To manage.

ストレージ制御部ID2571は、ストレージ制御部を一意に識別するIDであり、ストレージシステム全体でユニークなIDである。ストレージ制御部ペアID2572は、当該ストレージ制御部が属しているストレージ制御部ペアを一意に識別するためのIDである。ストレージノードID2573は、当該ストレージ制御部が配置されているストレージノードのIDを一意に識別するためのIDである。動作モード2574は、当該ストレージ制御部の動作モードがアクティブかスタンバイかの状態を示す情報である。 The storage control unit ID 2571 is an ID that uniquely identifies the storage control unit, and is a unique ID for the entire storage system. The storage control unit pair ID 2572 is an ID for uniquely identifying the storage control unit pair to which the storage control unit belongs. The storage node ID 2573 is an ID for uniquely identifying the ID of the storage node in which the storage control unit is arranged. The operation mode 2574 is information indicating whether the operation mode of the storage control unit is active or standby.

図6では、ストレージ制御部毎に一定量のCPUコアとメモリを固定的に割り当てる構成となっており、割り当てCPUコア数2575と割り当てメモリ量2576は、それぞれ、ストレージノードから当該ストレージ制御部に割り当てられているCPUコア数とメモリ量を示す情
報である。CPU利用率2577は、当該ストレージ制御部に割り当てられているCPUコアそれぞれの利用率の平均値を示す情報である。メモリ利用量2578は、当該ストレージ制御部に割り当てられているメモリのうち、実際に利用しているメモリ量を示す情報である。
In FIG. 6, a fixed amount of CPU cores and memory are fixedly allocated to each storage control unit, and the allocated CPU core number 2575 and the allocated memory amount 2576 are allocated from the storage node to the storage control unit, respectively. Information indicating the number of CPU cores and the amount of memory. The CPU utilization rate 2577 is information indicating the average value of the utilization rates of each CPU core assigned to the storage control unit. The memory usage amount 2578 is information indicating the amount of memory actually used among the memories allocated to the storage control unit.

図6では、ストレージ制御部ID2571が「0」のストレージ制御部は、ストレージノードIDが「0」のストレージノードにおいてアクティブモードで動作しており、ストレージノードIDが「1」のストレージノードにおいてスタンバイモードで動作するストレージ制御部IDが「1」のストレージ制御部とストレージ制御部ペアIDが「0」のストレージ制御部ペアを構成していることを示す。 In FIG. 6, the storage control unit whose storage control unit ID 2571 is “0” is operating in the active mode in the storage node whose storage node ID is “0”, and is in the standby mode in the storage node whose storage node ID is “1”. Indicates that a storage control unit pair having a storage control unit ID of "1" and a storage control unit pair having a storage control unit pair ID of "0" is configured.

CPU利用率2577とメモリ利用量2578は、定期的にマスタロールのクラスタ制御部216aが、各ストレージノードで動作するワーカロールのクラスタ制御部216bを介して、各ストレージ制御部から取得する情報である。図6では、ストレージノード障害などによって、当該ストレージノードのクラスタ制御部が動作していない場合は、“NA”と示している。 The CPU usage rate 2577 and the memory usage amount 2578 are information that the cluster control unit 216a of the master role periodically acquires from each storage control unit via the cluster control unit 216b of the worker roll that operates on each storage node. In FIG. 6, when the cluster control unit of the storage node is not operating due to a storage node failure or the like, it is indicated as “NA”.

図7は、ボリューム管理表261の一例である。ボリューム管理表261は、表形式以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために、単に「情報」と呼ぶことがある。ボリューム管理表261は、ボリュームとストレージ制御部ペアの関係と、ボリューム内のブロックと論理チャンクの関係、各ボリュームに対する単位時間当たりのIO量を管理する。ボリューム管理表261は、各ストレージノードのメモリに格納される。ボリューム管理表は、ボリュームID2611、容量2612、使用容量2613、ストレージ制御部ID2614、ブロックID2615、論理チャンクID2616、IO量2617を含むレコードを管理する。ボリューム管理表261は、ストレージ制御部により参照することができる。 FIG. 7 is an example of the volume management table 261. The volume management table 261 may be represented by a data structure other than the tabular format. Therefore, it is sometimes referred to simply as "information" to indicate that it does not depend on the data structure. Volume management Table 261 manages the relationship between the volume and the storage control unit pair, the relationship between the blocks in the volume and the logical chunk, and the amount of IO per unit time for each volume. Volume management table 261 is stored in the memory of each storage node. The volume management table manages records including volume ID 2611, capacity 2612, used capacity 2613, storage control unit ID 2614, block ID 2615, logical chunk ID 2616, and IO amount 2617. The volume management table 261 can be referred to by the storage control unit.

ボリュームID2611は、ボリュームを一意に識別するためのIDである。ボリュームはホスト装置に提供される資源であり、ストレージシステム全体でユニークなIDである。容量2612は当該ボリュームの容量を示す情報である。使用容量2613は、当該ボリュームが実際に利用している物理的な記憶領域の容量を示す情報である。使用容量2613は、論理チャンクが割り当てられているブロック数にブロックサイズを積算することでも計算可能である。ストレージ制御部ペアID2614は、ホスト装置から当該ボリュームへのIO要求の処理を担当するストレージ制御部ペアを一意に識別するためのIDである。ブロックID2615は当該ボリューム先頭からのブロック位置情報である。 Volume ID 2611 is an ID for uniquely identifying the volume. A volume is a resource provided to a host device and is a unique ID for the entire storage system. The capacity 2612 is information indicating the capacity of the volume. The used capacity 2613 is information indicating the capacity of the physical storage area actually used by the volume. The used capacity 2613 can also be calculated by adding the block size to the number of blocks to which the logical chunk is assigned. The storage control unit pair ID 2614 is an ID for uniquely identifying the storage control unit pair in charge of processing the IO request from the host device to the volume. The block ID 2615 is the block position information from the beginning of the volume.

論理チャンクID2616は、当該ボリュームの当該ブロックに対応付けられた論理チャンクを一意に識別するためのIDである。ストレージ制御部ペアID2614と論理チャンクID2616を組み合わせることで、当該ボリュームの当該ブロックに対応付けられた論理チャンクを一意に識別することが可能となる。IO量2617は、各ボリュームに対する単位時間当たりのIO量を表す情報である。 The logical chunk ID 2616 is an ID for uniquely identifying the logical chunk associated with the block of the volume. By combining the storage control unit pair ID 2614 and the logical chunk ID 2616, it is possible to uniquely identify the logical chunk associated with the block of the volume. The IO amount 2617 is information representing the IO amount per unit time for each volume.

図7では、ボリュームID2611が「0」のボリュームは、ストレージ制御部ペアID2614が「0」のストレージ制御部ペアがホスト装置からのIO要求の処理を担当し、ブロックID2615が「0」のブロックに論理チャンクID2616が「0」の論理チャンクが対応付けられている。 In FIG. 7, for the volume whose volume ID 2611 is “0”, the storage control unit pair whose storage control unit pair ID 2614 is “0” is in charge of processing the IO request from the host device, and the block ID 2615 is a block with “0”. A logical chunk whose logical chunk ID 2616 is "0" is associated with the logical chunk.

このように、ボリューム管理表261は、各ボリュームとストレージ制御部ペアとを対応付けて管理している。一つのボリュームと当該ボリュームに対するホスト装置からのIO要求を担当するストレージ制御部ペアが一対一で対応している。ストレージ制御部ペアを構成するストレージ制御部は、図6のストレージ制御部管理表にて特定され、ストレージ制御部ペアを構成するストレージ制御部の内、アクティブのストレージ制御部がボリューム
に対するホスト装置からのIOを処理するストレージ制御部として対応する構成となる。
In this way, the volume management table 261 manages each volume and the storage control unit pair in association with each other. There is a one-to-one correspondence between one volume and the storage control unit pair that is in charge of IO requests from the host device for the volume. The storage control units that make up the storage control unit pair are specified in the storage control unit management table of FIG. 6, and among the storage control units that make up the storage control unit pair, the active storage control unit is from the host device for the volume. The configuration corresponds to the storage control unit that processes IO.

図7では、ブロックと論理チャンクを一対一で対応付けた場合を示しているが、論理チャンクを分割し、1つの論理チャンクに複数のブロックを対応付ける場合は、分割した論理チャンクを識別するためのIDの列が追加される。 FIG. 7 shows a case where blocks and logical chunks are associated one-to-one. However, when a logical chunk is divided and a plurality of blocks are associated with one logical chunk, the divided logical chunks are identified. An ID column is added.

図8は、論理チャンク管理表271の一例である。論理チャンク管理表271は、表形式以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために、単に「情報」と呼ぶことがある。論理チャンク管理表271は、論理チャンクと物理チャンクの関係と、論理チャンクに対応づいているストレージ制御部ペアを管理する情報である。論理チャンク管理表271は各ストレージノードのメモリに格納される。論理チャンク管理表271は、論理チャンクID2711、ストレージ制御部ペアID2712、ストレージノードID(マスタ)2713、物理チャンクID(マスタ)2714、ストレージノードID(ミラー)2715、物理チャンクID(ミラー)2716を含むレコードを管理する。論理チャンク管理表は、データ冗長化部218により参照することができる。 FIG. 8 is an example of the logical chunk management table 271. The logical chunk management table 271 may be represented by a data structure other than the tabular format. Therefore, it is sometimes referred to simply as "information" to indicate that it does not depend on the data structure. Logical chunk management Table 271 is information that manages the relationship between logical chunks and physical chunks and the storage control unit pair corresponding to the logical chunks. Logical chunk management Table 271 is stored in the memory of each storage node. The logical chunk management table 271 includes a logical chunk ID 2711, a storage control unit pair ID 2712, a storage node ID (master) 2713, a physical chunk ID (master) 2714, a storage node ID (mirror) 2715, and a physical chunk ID (mirror) 2716. Manage records. The logical chunk management table can be referred to by the data redundancy unit 218.

論理チャンクID2711は、論理チャンクを一意に識別するためのIDである。論理チャンクはストレージ制御部ペアに対応付けられる資源であり、ストレージ制御部ペア内でユニークなIDである。ストレージ制御部ペアID2712は当該論理チャンクと対応付けられているストレージ制御部ペアを一意に識別するためのIDである。ストレージノードID(マスタ)2713は、ストレージノードを一意に識別するためのIDである。物理チャンクID(マスタ)2714は、物理チャンクを一意に識別するためのIDである。ストレージノードIDと物理チャンクIDを組み合わせることで、当該論理チャンクに対応付けられた物理チャンクを一意に識別することが可能となる。ストレージノードID(ミラー)2715と物理チャンクID(ミラー)2716には、障害に備えて冗長化(ミラー)された物理チャンクを識別するための情報である。図8では、論理チャンクID2711が「0」の論理チャンクは、ストレージ制御部ペア「0」に対応付けられており、ストレージノードID(マスタ)2713が「0」のストレージノードの物理チャンクID2714が「0」の物理チャンクと、ストレージノードID(ミラー)2715が「1」のストレージノードの物理チャンクID2716が「1」の物理チャンクに対応付けられている。 The logical chunk ID 2711 is an ID for uniquely identifying the logical chunk. A logical chunk is a resource associated with a storage control unit pair and is a unique ID within the storage control unit pair. The storage control unit pair ID 2712 is an ID for uniquely identifying the storage control unit pair associated with the logical chunk. The storage node ID (master) 2713 is an ID for uniquely identifying the storage node. The physical chunk ID (master) 2714 is an ID for uniquely identifying the physical chunk. By combining the storage node ID and the physical chunk ID, the physical chunk associated with the logical chunk can be uniquely identified. The storage node ID (mirror) 2715 and the physical chunk ID (mirror) 2716 are information for identifying redundant (mirrored) physical chunks in case of a failure. In FIG. 8, the logical chunk whose logical chunk ID 2711 is “0” is associated with the storage control unit pair “0”, and the physical chunk ID 2714 of the storage node whose storage node ID (master) 2713 is “0” is “0”. The physical chunk of "0" and the physical chunk ID 2716 of the storage node whose storage node ID (mirror) 2715 is "1" are associated with the physical chunk of "1".

図8の例は、物理チャンクを複製(二重化)することでデータを冗長化する場合の論理チャンクテーブルの一例を示している。つまり、一つの論理チャンクに対し、一組のストレージ制御部ペアが対応し、マスタとミラーの複数のストレージノードにおいて、それぞれ物理チャンクが対応している。物理チャンクを3重化する場合や、ストレージノード間でRAIDやErasure Codingを適用する場合など、データ冗長化の方式に合わせて論理チャンク管理表の構造は変えてもよい。 The example of FIG. 8 shows an example of a logical chunk table in which data is made redundant by duplicating (duplicating) physical chunks. That is, one pair of storage control units corresponds to one logical chunk, and physical chunks correspond to each of a plurality of storage nodes of the master and the mirror. The structure of the logical chunk management table may be changed according to the data redundancy method, such as when the physical chunks are tripled or when RAID or Erasure Coding is applied between storage nodes.

図9は、物理チャンク管理表272の一例である。物理チャンク管理表272は、表形式以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために、単に「情報」と呼ぶことがある。物理チャンク管理表272は物理チャンクに対応する記憶装置のアドレスを管理する。物理チャンク管理表は各ストレージノードのメモリに格納される。物理チャンク管理表は、物理チャンクID2721、記憶装置ID2722、記憶装置内オフセット2723を含むレコードを管理する。物理チャンク管理表272は、データ冗長化部218により参照することができる。 FIG. 9 is an example of the physical chunk management table 272. The physical chunk management table 272 may be represented by a data structure other than the tabular format. Therefore, it is sometimes referred to simply as "information" to indicate that it does not depend on the data structure. Physical chunk management Table 272 manages the addresses of the storage devices corresponding to the physical chunks. The physical chunk management table is stored in the memory of each storage node. The physical chunk management table manages records including physical chunk ID 2721, storage device ID 2722, and in-storage offset 2723. The physical chunk management table 272 can be referred to by the data redundancy unit 218.

物理チャンクID2721は、物理チャンクを一意に識別するためのIDである。物理チャンクはストレージノード内の資源であり、ストレージノード内でユニークなIDである。記憶装置ID2722はストレージノード内の各記憶装置を識別するためのIDである。記憶装置内オフセット2723は、物理チャンクIDで識別される物理チャンクの先頭が対応する記憶装置のア
ドレスである。図9では、物理チャンクID2721が「0」の物理チャンクは、記憶装置ID2722が「0」の記憶装置に保存されており、物理チャンクの先頭アドレスは、記憶装置内オフセット2723で示される「0x0000」である。
The physical chunk ID 2721 is an ID for uniquely identifying the physical chunk. A physical chunk is a resource within a storage node and is a unique ID within the storage node. The storage device ID 2722 is an ID for identifying each storage device in the storage node. Offset 2723 in storage is the address of the corresponding storage device at the beginning of the physical chunk identified by the physical chunk ID. In FIG. 9, the physical chunk with the physical chunk ID 2721 “0” is stored in the storage device with the storage device ID 2722 “0”, and the start address of the physical chunk is “0x0000” indicated by the offset 2723 in the storage device. Is.

図10は、本発明の課題を説明する概念図である。図10では、図3の構成において、「ストレージノード0」で障害が発生した場合を示している。 FIG. 10 is a conceptual diagram illustrating a subject of the present invention. FIG. 10 shows a case where a failure occurs in “storage node 0” in the configuration of FIG.

マスタロールのクラスタ制御部216aは、各ストレージノードで動作するワーカロールのクラスタ制御部216bとの定期的通信などにより、各ストレージノードの生死監視を行っている。 The cluster control unit 216a of the master role monitors the life and death of each storage node by periodic communication with the cluster control unit 216b of the worker roll operating on each storage node.

ストレージノードの障害を検出した場合は、まず、管理端末110を介してストレージシステム200の管理者に障害が発生したことを通知する。続いて、ホスト装置から当該ストレージ制御部が担当していたボリュームへのIO要求の処理を引き継ぐために、当該ストレージノードで動作していたアクティブモードのストレージ制御部219aとペアを構成していたスタンバイモードのストレージ制御部219bに対して、アクティブモードへの切り替えを指示する。図10では、「ストレージ制御部0」219aとペアを構成していた「ストレージ制御部1」219bの動作モードがスタンバイからアクティブに切り替わっている。 When a failure of the storage node is detected, first, the administrator of the storage system 200 is notified via the management terminal 110 that the failure has occurred. Subsequently, in order to take over the processing of the IO request from the host device to the volume that the storage control unit was in charge of, the standby that was paired with the storage control unit 219a in the active mode that was operating on the storage node. Instructs the storage control unit 219b of the mode to switch to the active mode. In FIG. 10, the operation mode of the “storage control unit 1” 219b, which was paired with the “storage control unit 0” 219a, is switched from standby to active.

次に、ストレージ制御部ペア217の冗長度を回復させるために、正常なストレージノードにスタンバイモードのストレージ制御部219cを再構築する。マスタロールのクラスタ制御部216aは、新しいストレージ制御部を動作させるのに必要な、CPUコアやメモリなどの情報処理資源に空きのあるストレージノードを選択し、当該ストレージノードのクラスタ制御部に対して、ストレージ制御部の再構築を指示する。図10の例では、「ストレージノード2」210に、機能を喪失した「ストレージ制御部0」の代替として「ストレージ制御部22」219cが再構築され、1つのストレージノードに3つのストレージ制御部が配置された状態となっている。また、図示していないが、「ストレージ制御部21」の代替となるストレージ制御部の再構築も行われている。 Next, in order to restore the redundancy of the storage control unit pair 217, the storage control unit 219c in the standby mode is reconstructed on the normal storage node. The cluster control unit 216a of the master role selects a storage node that has free information processing resources such as CPU core and memory required to operate the new storage control unit, and selects the storage node that has free space for the cluster control unit of the storage node. , Instruct to rebuild the storage control unit. In the example of FIG. 10, the “storage control unit 22” 219c is reconstructed in the “storage node 2” 210 as a substitute for the “storage control unit 0” that has lost its function, and one storage node has three storage control units. It is in a placed state. Further, although not shown, a storage control unit that is an alternative to the “storage control unit 21” is being reconstructed.

ストレージ制御部再構築先を選択する際に、情報処理資源に空きのあるストレージノードが存在しなかった場合は、ストレージ制御部を再構築することができず、冗長度を回復することができない。各ストレージノードに予めストレージ制御部再構築用の情報処理資源を予約しておけば、ストレージノード障害時に確実にストレージ制御部の冗長度を回復可能なことを保証できるが、通常時は予約した情報処理資源を利用することができず、ストレージノードの利用効率が低下し、システム構築コストが高騰することになる。 If there is no free storage node in the information processing resource when selecting the storage control unit reconstruction destination, the storage control unit cannot be reconstructed and the redundancy cannot be restored. If information processing resources for reconstructing the storage control unit are reserved in advance for each storage node, it can be guaranteed that the redundancy of the storage control unit can be reliably restored in the event of a storage node failure, but normally the reserved information The processing resources cannot be used, the utilization efficiency of the storage node decreases, and the system construction cost rises.

図11~16を用いて、ストレージノードの利用効率が高く、システム構築コストを低く抑えるための技術を説明する。 With reference to FIGS. 11 to 16, a technique for keeping the utilization efficiency of the storage node high and the system construction cost low will be described.

図11は、ストレージノードのメモリ212に格納されている制御情報(管理表)256、257、261、271、272とプログラム250~255、258、260、270を示している。なお、実際のメモリには、これら以外のプログラムや管理情報も格納され得るが、図11は本発明の説明に必要となるものを示している。例えば、ホストからのIO要求を処理するためのプログラムやキャッシュ管理表などは省略されている。また、プログラムは各ストレージノードの記憶装置にも格納されており、ストレージシステム起動時やプログラム実行時などにメモリにロードされるものとする。電源障害などに備えて、管理表256、257、261、271、272を記憶装置に保存してもよく、メモリを記憶装置に保存した管理表のキャッシュとして用いてもよい。 FIG. 11 shows the control information (management table) 256, 257, 261, 271, 272 and the programs 250 to 255, 258, 260, 270 stored in the memory 212 of the storage node. Although programs and management information other than these may be stored in the actual memory, FIG. 11 shows what is necessary for the description of the present invention. For example, the program for processing the IO request from the host and the cache management table are omitted. The program is also stored in the storage device of each storage node, and is loaded into the memory when the storage system is started or the program is executed. The management tables 256, 257, 261, 271, and 272 may be stored in the storage device in case of a power failure or the like, or the memory may be used as a cache of the management table stored in the storage device.

障害回復プログラム250、ボリューム退避プログラム251、ボリューム退避先決定プログ
ラム252、ストレージ制御部ペア作成プログラム253、ストレージ制御部ペア削除プログラム254、ストレージノード減設プログラム255は、ストレージ制御部ペア再構築プログラム258、クラスタ制御部216を構成するプログラムの一部である。障害回復プログラム250、ボリューム退避プログラム251、ボリューム退避先決定プログラム252、ストレージノード減設プログラム255、ストレージ制御部ペア再構築プログラム258は、クラスタ制御部216がマスタロールで動作する際に実行され得るプログラムである。ストレージ制御部ペア作成プログラム253、ストレージ制御部ペア削除プログラム254は、クラスタ制御部がワーカロールで動作する際に実行され得るプログラムである。
Failure recovery program 250, volume save program 251, volume save destination determination program 252, storage control unit pair creation program 253, storage control unit pair deletion program 254, storage node reduction program 255 are storage control unit pair reconstruction program 258, It is a part of the program that composes the cluster control unit 216. The failure recovery program 250, the volume save program 251, the volume save destination determination program 252, the storage node reduction program 255, and the storage control unit pair reconstruction program 258 are programs that can be executed when the cluster control unit 216 operates in the master role. Is. The storage control unit pair creation program 253 and the storage control unit pair deletion program 254 are programs that can be executed when the cluster control unit operates in the worker role.

ストレージノード管理表256とストレージ制御部管理表257はマスタロールのクラスタ制御部216のメモリに格納される管理情報である。ストレージノード管理表256とストレージ制御部管理表257は、図5及び図6にそれぞれ内容が示されている。これらの管理表は1以上のワーカロールのクラスタ制御部に複製を保持されるものとする。これは、マスタロールのクラスタ制御部216が配置されたストレージノードに障害が発生した際に、ワーカロールのクラスタ制御部がマスタロールに昇格して処理を引き継ぐためである。後述する説明において、これらの管理表を更新する際は、クラスタ制御部間の通信などによって複製された管理表も同時に更新するものとする。 The storage node management table 256 and the storage control unit management table 257 are management information stored in the memory of the cluster control unit 216 of the master role. The contents of the storage node management table 256 and the storage control unit management table 257 are shown in FIGS. 5 and 6, respectively. Replication of these management tables shall be retained by the cluster control unit of one or more worker rolls. This is because when a failure occurs in the storage node in which the cluster control unit 216 of the master role is located, the cluster control unit of the worker role is promoted to the master role and takes over the processing. In the description described later, when updating these management tables, the management tables duplicated by communication between the cluster control units are also updated at the same time.

ボリューム移動プログラム260は、ストレージ制御部219を構成するプログラムの一部である。ボリューム管理表261はストレージ制御部219のメモリに格納される管理情報であり、図7にその内容は示されている。ボリューム管理表261は、ストレージ制御部ペアを構成するストレージ制御部間で複製される。これは、ストレージノード障害などによってアクティブモードのストレージ制御部が動作不能に陥った際にスタンバイモードのストレージ制御部が処理を引き継ぐためである。後述する説明において、ボリューム管理表261を更新する際は、ストレージ制御部間の通信などによって複製された管理表も同時に更新するものとする。 The volume transfer program 260 is a part of the program constituting the storage control unit 219. Volume management Table 261 is management information stored in the memory of the storage control unit 219, and the contents are shown in FIG. 7. The volume management table 261 is duplicated between the storage control units that make up the storage control unit pair. This is because the storage control unit in the standby mode takes over the processing when the storage control unit in the active mode becomes inoperable due to a storage node failure or the like. In the description described later, when the volume management table 261 is updated, the management table duplicated by communication between the storage control units is also updated at the same time.

物理チャンク再配置プログラム270は、データ冗長化部218を構成するプログラムの一部である。論理チャンク管理表271と物理チャンク管理表272はデータ冗長化部のメモリに格納される管理情報である。論理チャンク管理表271と物理チャンク管理表272は、それぞれ図8及び図9にその内容が示されている。論理チャンク管理表271は、各ストレージノードのデータ冗長化部が当該ストレージノードに配置されたストレージ制御部ペアに関連するレコードのみを保持する。図8の例では、物理チャンクはマスタとミラーに複製されるため、1つのレコードは2つのストレージノードのデータ冗長化部間で複製されていることになる。物理チャンク管理表272は、ストレージノード内の記憶装置のアドレスを管理する情報のため、複製等を行う必要はない。 The physical chunk relocation program 270 is a part of the program constituting the data redundancy unit 218. The logical chunk management table 271 and the physical chunk management table 272 are management information stored in the memory of the data redundancy unit. The contents of the logical chunk management table 271 and the physical chunk management table 272 are shown in FIGS. 8 and 9, respectively. In the logical chunk management table 271, the data redundancy unit of each storage node holds only the records related to the storage control unit pair arranged in the storage node. In the example of FIG. 8, since the physical chunk is duplicated to the master and the mirror, one record is duplicated between the data redundancy units of the two storage nodes. Since the physical chunk management table 272 is information for managing the address of the storage device in the storage node, it is not necessary to perform duplication or the like.

図12と図13は、それぞれ障害回復プログラム250の処理の一例を示す図である。ストレージノード障害などによってストレージシステム内に冗長度が低下したストレージ制御部グループが存在する状態から、すべてのストレージ制御部グループの冗長度が保たれている状態に回復させる処理をおこなうものである。ストレージノード障害に代えて、ストレージノード減設の場合にも、障害を減設に読み替えて適用可能である。以下、説明の容易化のため、ストレージ制御部グループを、一台のアクティブモードのストレージ制御部と一台のスタンバイモードのストレージ制御部からなるストレージ制御部ペアのケースで説明する。但し、ペアに限らず、3台以上のストレージ制御部から構成されるストレージ制御部グループの場合であっても、基本的には同一の処理を行うこととなる。ストレージ制御部ペア又はグループが複数のアクティブモードのストレージ制御部を含んでいる場合、回復処理のなかで生存しているアクティブモードのストレージ制御部はスタンバイモードのストレージ制御部と基本的には同様に扱ってもよい。 12 and 13 are diagrams showing an example of processing of the failure recovery program 250, respectively. This is a process for recovering from a state in which a storage control unit group whose redundancy has decreased due to a storage node failure or the like exists to a state in which the redundancy of all storage control unit groups is maintained. In the case of storage node reduction instead of storage node failure, the failure can be read as reduction and applied. Hereinafter, for ease of explanation, the storage control unit group will be described in the case of a storage control unit pair consisting of one storage control unit in active mode and one storage control unit in standby mode. However, not limited to a pair, even in the case of a storage control unit group composed of three or more storage control units, basically the same processing is performed. Storage control unit When a pair or group contains multiple active mode storage control units, the active mode storage control unit that survives the recovery process is basically the same as the standby mode storage control unit. You may handle it.

例えば、このプログラム250はストレージノード障害によるストレージ制御部ペアの冗長度低下によって低下したボリュームの冗長度を回復させるための処理を行う。また、このプログラムは、クラスタ制御部216のメモリに格納され、当該クラスタ制御部が配置されたストレージノードのCPUによって実行される。このプログラム250はマスタロールで動作するクラスタ制御部216がストレージノードの障害を検出した際に起動され、当該クラスタ制御部が実行する。なお、マスタロールのクラスタ制御部が配置されていたストレージノードで障害が発生した場合は、ワーカロールのクラスタ制御部から新たに選出されたマスタロールのクラスタ制御部が配置されたストレージノードのCPUによって、このプログラムは実行される。 For example, this program 250 performs a process for recovering the volume redundancy reduced due to the decrease in the redundancy of the storage control unit pair due to the storage node failure. Further, this program is stored in the memory of the cluster control unit 216, and is executed by the CPU of the storage node in which the cluster control unit is arranged. This program 250 is started when the cluster control unit 216 operating in the master role detects a failure of the storage node, and is executed by the cluster control unit. If a failure occurs in the storage node where the cluster control unit of the master role is located, the CPU of the storage node where the cluster control unit of the master role newly selected from the cluster control unit of the worker role is installed will be used. This program runs.

図12は、ストレージノード障害が発生した場合、ストレージ制御部ペアの片方のストレージ制御部を喪失したストレージ制御部ペアを全て削除し、解放された情報処理資源を用いて、新たにストレージ制御部ペアを作成している。図10の例によると、障害が発生したストレージノード「0」には、2つのストレージ制御部ペア0とストレージ制御部ペア10が存在するため、これら2つのストレージ制御部ペアを削除し、一つの制御部ペアを作成する。 In FIG. 12, when a storage node failure occurs, all the storage control unit pairs that have lost one of the storage control unit pairs of the storage control unit pair are deleted, and the released information processing resources are used to newly delete the storage control unit pair. Is being created. According to the example of FIG. 10, since the storage node "0" in which the failure has occurred has two storage control unit pairs 0 and a storage control unit pair 10, these two storage control unit pairs are deleted and one storage control unit pair is deleted. Create a control unit pair.

図13では、ペアの片方を喪失したストレージ制御部ペアのうち、アクティブモードのストレージ制御部を喪失したストレージ制御部ペアのみを削除し、解放された情報処理資源を用いて、スタンバイモードのストレージ制御部を喪失したストレージ制御部ペアの新しいペア相手を再構築する。図10の例によると、障害が発生したストレージノード0にあるアクティブなストレージ制御部219aが属するストレージ制御部ペア0を削除し、1つのストレージ制御部ペア10の冗長度を回復させる。つまり、ストレージ制御部ペア0(及び、ストレージ制御部1)を削除したことで、ストレージノード1にストレージ制御部1つ分の資源が解放される。これを使ってストレージノード1にストレージ制御部21を再構築して、ストレージ制御部ペア10の冗長度を回復する。 In FIG. 13, of the storage control unit pairs that have lost one of the pairs, only the storage control unit pair that has lost the active mode storage control unit is deleted, and the released information processing resources are used to control the storage in the standby mode. Rebuild a new pair partner of the lost storage control unit pair. According to the example of FIG. 10, the storage control unit pair 0 to which the active storage control unit 219a in the failed storage node 0 belongs is deleted, and the redundancy of one storage control unit pair 10 is restored. That is, by deleting the storage control unit pair 0 (and the storage control unit 1), the resources for one storage control unit are released to the storage node 1. Using this, the storage control unit 21 is reconstructed on the storage node 1 to restore the redundancy of the storage control unit pair 10.

まず、図12の処理の例について説明する。図12の障害回復プログラム(1)は、ストレージノード障害によってストレージ制御部ペアの片方を喪失したストレージ制御部ペアを特定する(S100)。この処理は、ストレージ制御部管理表257を参照し、障害となったストレージノードID2573で検索し、ストレージ制御ペアID2572を特定することで実現する。この際、特定したストレージ制御部ペアへの新規ボリューム作成を抑止する処理を追加してもよい。この処理は、図6のストレージ制御部管理表257にボリューム作成抑止フラグの列を追加し、特定したストレージ制御部に対してこのフラグをONにすることで実現できる。 First, an example of the process of FIG. 12 will be described. The failure recovery program (1) of FIG. 12 identifies a storage control unit pair that has lost one of the storage control unit pairs due to a storage node failure (S100). This process is realized by referring to the storage control unit management table 257, searching for the failed storage node ID 2573, and identifying the storage control pair ID 2571. At this time, a process for suppressing the creation of a new volume in the specified storage control unit pair may be added. This process can be realized by adding a column of the volume creation suppression flag to the storage control unit management table 257 of FIG. 6 and turning this flag ON for the specified storage control unit.

続けて、障害回復プログラム(1)250は特定したストレージ制御ペアから処理対象となるストレージ制御ペアを選択する(S101)。実施例1(図10)の場合、1つのストレージノードにアクティブモードとスタンバイモードのストレージ制御部が1つずつ配置されているため、ペアの片方を喪失したストレージ制御部ペアは2つ存在し、残存しているストレージ制御部の一方はアクティブモードで動作しており、他方はスタンバイモードで動作している。 Subsequently, the disaster recovery program (1) 250 selects the storage control pair to be processed from the specified storage control pair (S101). In the case of the first embodiment (FIG. 10), since one storage control unit in the active mode and one storage control unit in the standby mode are arranged in one storage node, there are two storage control unit pairs in which one of the pairs is lost. One of the remaining storage controls is operating in active mode and the other is operating in standby mode.

障害回復プログラム(1)250は、残存ストレージ制御部の動作モードがスタンバイか否かを判定し(S102)、スタンバイモードでなければステップS103をスキップしステップS104へ進む。スタンバイモードであれば、ステップS103で当該ストレージ制御部に対して、アクティブモードへの切り替えを指示する。動作モードの切り替えに関する処理は、以下の通り実現される。障害回復プログラム(1)250は、ストレージ制御部管理表257を参照し、ステップS101で選択したストレージ制御ペアIDで検索することにより、ステップS101で選択したストレージ制御ペアを構成するストレージ制御部IDを絞り込む。さらに、スト
レージノード管理表256を参照して、絞り込んだストレージ制御部IDで検索し、動作状態が正常であるストレージノードに対応するストレージ制御部IDを特定することで残存ストレージ制御部IDを特定できる。特定した残存ストレージ制御部ID2571に対応するストレージ制御部管理表257の動作モード2574を取得することで、動作モードを取得することができる。
The failure recovery program (1) 250 determines whether or not the operation mode of the remaining storage control unit is standby (S102), and if it is not in standby mode, skips step S103 and proceeds to step S104. If it is in the standby mode, in step S103, the storage control unit is instructed to switch to the active mode. The process related to switching the operation mode is realized as follows. The disaster recovery program (1) 250 refers to the storage control unit management table 257 and searches for the storage control pair ID selected in step S101 to search for the storage control unit ID that constitutes the storage control pair selected in step S101. Narrow down. Furthermore, the remaining storage control unit ID can be specified by referring to the storage node management table 256, searching by the narrowed down storage control unit ID, and specifying the storage control unit ID corresponding to the storage node whose operating state is normal. .. The operation mode can be acquired by acquiring the operation mode 2574 of the storage control unit management table 257 corresponding to the specified remaining storage control unit ID 2571.

障害回復プログラム(1)は、ストレージ制御部からアクティブモードの切り替え完了を受領すると、ストレージ制御部管理表257の当該ストレージ制御部の動作モードを「アクティブ」に更新する(S103)。なお、スタンバイモードのストレージ制御部がペア相手のアクティブモードの監視を行い、障害が発生したことを検知すると、自律的にアクティブモードに動作を切り替える構成でもよい。この場合、ステップS103は、スタンバイモードのストレージ制御部がアクティブに切り替わるのを待機し、切り替え完了後にストレージ制御部管理表257を更新する処理となる。いずれにせよ、このステップにより、障害が発生したストレージノードで動作していたアクティブモードのストレージ制御部が実行していたボリュームへのIO要求の処理などが、スタンバイモードであったストレージ制御部に引き継がれる。 When the disaster recovery program (1) receives the completion of switching the active mode from the storage control unit, it updates the operation mode of the storage control unit in the storage control unit management table 257 to “active” (S103). The storage control unit in the standby mode may monitor the active mode of the pair partner and autonomously switch the operation to the active mode when a failure is detected. In this case, step S103 is a process of waiting for the storage control unit in the standby mode to be actively switched and updating the storage control unit management table 257 after the switching is completed. In any case, by this step, the processing of IO request to the volume executed by the storage control unit in active mode that was operating on the storage node where the failure occurred is taken over by the storage control unit that was in standby mode. Is done.

次に、障害回復プログラム(1)は、ステップS100で特定した全てのストレージ制御部ペアについて、ステップS101~S103の処理が完了したか否かを判定する(S104)。完了した場合はステップS105に進み、完了していない場合はステップS101に戻る。 Next, the failure recovery program (1) determines whether or not the processing of steps S101 to S103 is completed for all the storage control unit pairs specified in step S100 (S104). If completed, the process proceeds to step S105, and if not completed, the process returns to step S101.

なお、図には示していないが、ステップS105に進む前に残存している各ストレージノードの空き記憶容量がストレージノード障害を回復するのに十分であるか否かを確認し、空き記憶容量不足による障害回復処理の失敗を抑止してもよい。この場合、空き記憶容量が不足すると判断した場合は、管理端末110を介してストレージシステム200の管理者に空き記憶容量不足を通知し、プログラムの処理を終了する。その後、ストレージシステム200の管理者が記憶装置の増設やストレージノードの追加といった対処を行ったうえで、管理端末110を介して、マスタロールのクラスタ制御部216aに障害回復プログラム250の再実行を指示する。 Although not shown in the figure, before proceeding to step S105, it is confirmed whether the free storage capacity of each remaining storage node is sufficient to recover from the storage node failure, and the free storage capacity is insufficient. You may suppress the failure of the failure recovery process due to. In this case, if it is determined that the free storage capacity is insufficient, the administrator of the storage system 200 is notified of the insufficient free storage capacity via the management terminal 110, and the program processing is terminated. After that, the administrator of the storage system 200 takes measures such as adding storage devices and adding storage nodes, and then instructs the cluster control unit 216a of the master role to re-execute the failure recovery program 250 via the management terminal 110. do.

物理チャンクをストレージ制御部が配置されたストレージノード以外のストレージノードにも保存する構成としている場合や、物理チャンクを三重化している場合、ストレージノード間でRAIDやErasure Codingを適用して物理チャンクを冗長化している場合は、ストレージノード障害により喪失した物理チャンクによって、喪失したストレージ制御部と関係のないストレージ制御部ペアに対応付けられた論理チャンクの冗長度が低下している可能性がある。そのため、ステップS105に進む前に、障害回復プログラム(1)が各ストレージノードのデータ冗長化部に対して、喪失したストレージ制御部と関係のないストレージ制御部ペアに対応付けられた論理チャンクの冗長度低下の確認と冗長度の回復を指示する。指示を受けたデータ冗長化部は、冗長化方式に応じて、冗長度の回復処理を実行する。 If the physical chunk is configured to be saved in a storage node other than the storage node where the storage control unit is located, or if the physical chunk is tripled, RAID or Erasure Coding is applied between the storage nodes to create the physical chunk. In the case of redundancy, the physical chunk lost due to the storage node failure may reduce the redundancy of the logical chunk associated with the storage control unit pair unrelated to the lost storage control unit. Therefore, before proceeding to step S105, the failure recovery program (1) makes the data redundancy unit of each storage node redundant of the logical chunk associated with the storage control unit pair unrelated to the lost storage control unit. Instruct to confirm the decrease in degree and restore the redundancy. Upon receiving the instruction, the data redundancy unit executes the redundancy recovery process according to the redundancy method.

例えば、物理チャンクを複製(二重化)する冗長化方式の場合、データ冗長化部は論理チャンク管理表271から障害が発生したストレージノードに物理チャンクを保存している論理チャンクが存在するか否かを確認する。存在する場合は、当該論理チャンクに対応付けられているストレージ制御部ペアID2712が喪失したストレージ制御部を含むストレージ制御部ペアか否かを確認する。喪失したストレージ制御部を含むストレージ制御部ペアでなければ、新しい物理チャンクを確保し、当該論理チャンクを構成する喪失していないほうの物理チャンクから、新たに確保した物理チャンクにデータをコピーし、論理チャンクと物理チャンクの対応付けを更新する。全てのストレージノードで論理チャンクの冗長度低下の確認と冗長度の回復が完了すると、ステップS105に進む。 For example, in the case of a redundancy method in which physical chunks are duplicated (redundant), the data redundancy unit determines from the logical chunk management table 271 whether or not there is a logical chunk that stores the physical chunk in the storage node where the failure occurred. confirm. If it exists, check whether the storage control unit pair ID 2712 associated with the logical chunk is a storage control unit pair including the lost storage control unit. If it is not a storage control unit pair that includes the lost storage control unit, a new physical chunk is secured, and data is copied from the non-lost physical chunk that constitutes the logical chunk to the newly secured physical chunk. Update the correspondence between logical chunks and physical chunks. When the confirmation of the decrease in the redundancy of the logical chunk and the restoration of the redundancy are completed in all the storage nodes, the process proceeds to step S105.

次に、障害回復プログラム(1)はステップS100で特定したストレージ制御ペアから処理対象となるストレージ制御ペアを選択する(S105)。続けて、障害回復プログラム(1)は、当該ストレージ制御部ペアが担当していた全ボリュームをボリューム毎に、ストレージノード障害の影響を受けていない複数の正常なストレージ制御部ペアに、それぞれ退避させる処理を実行する(S106)。つまり、当該ストレージ制御部ペアが担当していた全ボリュームをボリューム毎に、異なるストレージ制御部ペアに分散して退避させる。このボリューム退避処理の詳細については、図14、15を用いて後述するが、この処理によって当該ストレージ制御部ペアが担当していた全ボリュームのデータが退避先のストレージ制御部ペアにコピーされ、以後、当該ボリュームへのホスト装置からのIO要求は退避先のストレージ制御部ペアが処理を担当する。 Next, the failure recovery program (1) selects a storage control pair to be processed from the storage control pair specified in step S100 (S105). Subsequently, the failure recovery program (1) saves all the volumes in charge of the storage control unit pair to a plurality of normal storage control unit pairs that are not affected by the storage node failure for each volume. Execute the process (S106). That is, all the volumes in charge of the storage control unit pair are distributed and saved in different storage control unit pairs for each volume. The details of this volume save processing will be described later with reference to FIGS. 14 and 15, but by this process, the data of all volumes in charge of the storage control unit pair is copied to the storage control unit pair of the save destination, and thereafter. The storage control unit pair at the save destination is in charge of processing the IO request from the host device to the volume.

全ボリュームの退避完了後、障害回復プログラム(1)は、残存ストレージ制御部が動作しているストレージノードのクラスタ制御部に対して、当該ストレージ制御部ペアの削除を指示する(S107)。ストレージ制御部ペアの削除処理の詳細については、図16を用いて後述する。ストレージ制御部ペアの削除によって、当該ストレージ制御部ペアに割り当てられていたCPU、メモリといった情報処理資源や、論理チャンク、物理チャンクなどの記憶資源が解放される。削除完了後、障害回復プログラム(1)は、ストレージ制御部管理表257を更新し、当該ストレージ制御部ペア2572のレコードを削除する(S108)。 After the evacuation of all volumes is completed, the failure recovery program (1) instructs the cluster control unit of the storage node in which the residual storage control unit is operating to delete the storage control unit pair (S107). The details of the storage control unit pair deletion process will be described later with reference to FIG. By deleting the storage control unit pair, the information processing resources such as CPU and memory assigned to the storage control unit pair and the storage resources such as logical chunks and physical chunks are released. After the deletion is completed, the disaster recovery program (1) updates the storage control unit management table 257 and deletes the record of the storage control unit pair 2571 (S108).

次に、障害回復プログラム(1)は、ステップS100で特定したストレージ制御部ペアの削除が全て完了したか否かを判定する(S109)。完了した場合はステップS110に進み、完了していない場合はステップS105に戻る。 Next, the failure recovery program (1) determines whether or not all the deletion of the storage control unit pair specified in step S100 has been completed (S109). If completed, the process proceeds to step S110, and if not completed, the process returns to step S105.

ペアを片方喪失したストレージ制御部ペアの削除が完了すると、障害回復プログラム(1)は、ペアを片方喪失したストレージ制御部ペアの残存ストレージ制御部が配置されていたストレージノードのクラスタ制御部に対して、ストレージ制御部及びストレージ制御部ペアの作成を指示する(S110)。指示を受けたクラスタ制御部(ストレージ制御部ペア作成プログラム253)は、CPUコアやメモリなどの情報処理資源を確保し、記憶装置からストレージ制御部を構成するプログラムをメモリにロードして、ストレージ制御部を起動する。新しいストレージ制御部及びストレージ制御部ペアは、削除によって解放された情報処理資源を用いて作成される。障害回復プログラム(1)は、ストレージ制御部及びストレージ制御部ペアの作成完了後、ストレージ制御部管理表257を更新し、レコードを追加する。 Storage control unit that lost one pair When the deletion of the pair is completed, the failure recovery program (1) applies to the cluster control unit of the storage node where the remaining storage control unit of the storage control unit pair that lost one pair was placed. Then, the storage control unit and the storage control unit pair are instructed to be created (S110). Upon receiving the instruction, the cluster control unit (storage control unit pair creation program 253) secures information processing resources such as the CPU core and memory, loads the programs that make up the storage control unit from the storage device into the memory, and controls the storage. Start the department. A new storage control unit and a storage control unit pair are created using the information processing resources released by the deletion. The failure recovery program (1) updates the storage control unit management table 257 and adds a record after the creation of the storage control unit and the storage control unit pair is completed.

ストレージ制御部ペア作成プログラム253によるストレージ制御部及びストレージ制御部ペア作成処理については、ストレージシステム構築時と同様のため詳細は省略する。 The details of the storage control unit and storage control unit pair creation process by the storage control unit pair creation program 253 are the same as when the storage system is constructed, so details are omitted.

次に、図13の処理の例について説明する。図13の障害回復プログラム(2)250は、図12のステップS100を実行して、ストレージ制御部ペアの片方を喪失したストレージ制御部ペアを特定する(S200)。この際、特定したストレージ制御部ペアへの新規ボリューム作成を抑止する処理を追加してもよい。この処理は、図6のストレージ制御部管理表257にボリューム作成抑止フラグの列を追加し、特定したストレージ制御部に対してこのフラグをONにすることで実現できる。 Next, an example of the processing of FIG. 13 will be described. The disaster recovery program (2) 250 of FIG. 13 executes step S100 of FIG. 12 to identify the storage control unit pair that has lost one of the storage control unit pairs (S200). At this time, a process for suppressing the creation of a new volume in the specified storage control unit pair may be added. This process can be realized by adding a column of the volume creation suppression flag to the storage control unit management table 257 of FIG. 6 and turning this flag ON for the specified storage control unit.

続けて、障害回復プログラム(2)は、図12のステップS101~S104を実行して、障害が発生したストレージノードで動作していたアクティブモードのストレージ制御部が実行していたボリュームへのIO要求等の処理を、ペアを構成するスタンバイモードのストレージ制御部に引き継ぐ(S201)。 Subsequently, the failure recovery program (2) executes steps S101 to S104 in FIG. 12 to request an IO from the volume executed by the storage control unit in the active mode operating on the storage node in which the failure occurred. Etc. are taken over by the storage control unit in the standby mode that constitutes the pair (S201).

なお、図には示していないが、ステップS202に進む前に残存している各ストレージノードの空き記憶容量がストレージノード障害を回復するのに十分であるか否かを確認し、空き記憶容量不足による障害回復処理の失敗を抑止してもよい。この場合、空き記憶容量が不足すると判断した場合は、管理端末110を介してストレージシステム200の管理者に空き記憶容量不足を通知し、プログラムの処理を終了する。その後、ストレージシステム200の管理者が記憶装置の増設やストレージノードの追加といった対処を行ったうえで、管理端末110を介して、マスタロールのクラスタ制御部216aに障害回復プログラム250の再実行を指示する。 Although not shown in the figure, before proceeding to step S202, it is confirmed whether the free storage capacity of each remaining storage node is sufficient to recover from the storage node failure, and the free storage capacity is insufficient. You may suppress the failure of the failure recovery process due to. In this case, if it is determined that the free storage capacity is insufficient, the administrator of the storage system 200 is notified of the insufficient free storage capacity via the management terminal 110, and the program processing is terminated. After that, the administrator of the storage system 200 takes measures such as adding storage devices and adding storage nodes, and then instructs the cluster control unit 216a of the master role to re-execute the failure recovery program 250 via the management terminal 110. do.

なお、物理チャンクをストレージ制御部が配置されたストレージノード以外のストレージノードにも保存する構成としている場合や、物理チャンクを三重化している場合、ストレージノード間でRAIDやErasure Codingを適用して物理チャンクを冗長化している場合は、ストレージノード障害によって喪失した物理チャンクによって、喪失したストレージ制御部と関係のないストレージ制御部ペアに対応付けられた論理チャンクの冗長度が低下している可能性がある。そのため、ステップS202に進む前に、障害回復プログラム(2)が各ストレージノードのデータ冗長化部に対して、喪失したストレージ制御部と関係のないストレージ制御部ペアに対応付けられた論理チャンクの冗長度低下の確認と冗長度の回復を指示する。指示を受けたデータ冗長化部は、冗長化方式に応じて、冗長度の回復処理を実行する。例えば、物理チャンクを複製(二重化)する冗長化方式の場合、データ冗長化部は論理チャンク管理表271から障害が発生したストレージノードに物理チャンクを保存している論理チャンクが存在するか否かを確認する。存在する場合は、当該論理チャンクに対応付けられているストレージ制御部ペアID2712が喪失したストレージ制御部を含むストレージ制御部ペアか否かを確認する。喪失したストレージ制御部を含むストレージ制御部ペアでなければ、新しい物理チャンクを確保し、当該論理チャンクを構成する喪失していないほうの物理チャンクから、新たに確保した物理チャンクにデータをコピーし、論理チャンクと物理チャンクの対応付けを更新する。全てのストレージノードで論理チャンクの冗長度低下の確認と冗長度の回復が完了すると、ステップS202に進む。 If the physical chunk is configured to be saved in a storage node other than the storage node where the storage control unit is located, or if the physical chunk is tripled, RAID or Erasure Coding is applied between the storage nodes to perform physical chunks. If the chunks are redundant, the physical chunks lost due to the storage node failure may reduce the redundancy of the logical chunks associated with the storage control unit pair that is not related to the lost storage control unit. be. Therefore, before proceeding to step S202, the failure recovery program (2) makes the data redundancy unit of each storage node redundant of the logical chunk associated with the storage control unit pair unrelated to the lost storage control unit. Instruct to confirm the decrease in degree and restore the redundancy. Upon receiving the instruction, the data redundancy unit executes the redundancy recovery process according to the redundancy method. For example, in the case of a redundancy method in which physical chunks are duplicated (redundant), the data redundancy unit determines from the logical chunk management table 271 whether or not there is a logical chunk that stores the physical chunk in the storage node where the failure occurred. confirm. If it exists, check whether the storage control unit pair ID 2712 associated with the logical chunk is a storage control unit pair including the lost storage control unit. If it is not a storage control unit pair that includes the lost storage control unit, a new physical chunk is secured, and data is copied from the non-lost physical chunk that constitutes the logical chunk to the newly secured physical chunk. Update the correspondence between logical chunks and physical chunks. When the confirmation of the decrease in the redundancy of the logical chunk and the restoration of the redundancy are completed in all the storage nodes, the process proceeds to step S202.

次に、障害回復プログラム(2)は、処理対象となるストレージ制御ペアを選択する(S202)。図12と同様に、図10で示した例によるとペアの片方を喪失したストレージ制御部ペアは2つ存在し、残存しているストレージ制御部の一方はアクティブモードで動作しており、他方はスタンバイモードで動作している。 Next, the disaster recovery program (2) selects the storage control pair to be processed (S202). Similar to FIG. 12, according to the example shown in FIG. 10, there are two storage control unit pairs that have lost one of the pairs, one of the remaining storage control units is operating in the active mode, and the other is operating. Operating in standby mode.

障害回復プログラム(2)は、残存ストレージ制御部の動作モードがスタンバイか否かを判定し(S203)、スタンバイモードでなければ、ステップS204をスキップしステップS205へ進む。スタンバイモードであれば、ステップS204で図12のステップS106~S108を実行し、当該ストレージ制御部ペアが担当する全ボリュームの退避、当該ストレージ制御部ペアの削除、ストレージ制御部管理表257から当該ストレージ制御部ペアに関するレコード削除を行う。 The failure recovery program (2) determines whether or not the operation mode of the remaining storage control unit is standby (S203), and if it is not in standby mode, skips step S204 and proceeds to step S205. In the standby mode, steps S106 to S108 of FIG. 12 are executed in step S204 to save all volumes in charge of the storage control unit pair, delete the storage control unit pair, and store the storage from the storage control unit management table 257. Delete the record related to the control unit pair.

次に、障害回復プログラム(2)は、ステップS200で特定したストレージ制御部ペアのうち、スタンバイモードのストレージ制御部が残存しているストレージ制御部ペアの削除が完了したか否かを判定する(S205)。完了した場合はステップS206へ進み、完了していない場合はステップS202に戻る。 Next, the failure recovery program (2) determines whether or not the deletion of the storage control unit pair in which the storage control unit in the standby mode remains among the storage control unit pairs specified in step S200 has been completed (). S205). If completed, the process proceeds to step S206, and if not completed, the process returns to step S202.

スタンバイモードのストレージ制御部が残存しているストレージ制御部ペアの削除が完了すると、障害回復プログラム(2)は、当該残存ストレージ制御部が配置されていたストレージノードのクラスタ制御部(ストレージ制御部ペア再構築プログラム258)に対して、アクティブモードのストレージ制御部が残存しているストレージ制御部ペアの再構築を指示する(S206)。 When the deletion of the storage control unit pair in which the storage control unit in the standby mode remains is completed, the failure recovery program (2) will execute the cluster control unit (storage control unit pair) of the storage node in which the remaining storage control unit is located. Instructs the rebuild program 258) to rebuild the storage control unit pair in which the storage control unit in the active mode remains (S206).

指示を受けたクラスタ制御部は、CPUコアやメモリなどの情報処理資源を確保し、記憶装置からストレージ制御部を構成するプログラムをメモリにロードして、ストレージ制御部を起動する。起動後にアクティブモードのストレージ制御部からボリューム管理表261をコピーする。ストレージ制御部ペアの再構築は、削除によって解放された情報処理資源を用いて行われる。障害回復プログラム(2)は、ストレージ制御部及びストレージ制御部ペアの作成完了後、ストレージ制御部管理表257を更新し、当該ストレージ制御部ペアの情報を更新する。この再構築処理は、本発明を適用しない場合のストレージ制御部ペアの冗長度回復と同じ処理のため、詳細は省略する。ステップS200において、特定したストレージ制御部ペアへの新規ボリューム作成を抑止する処理を追加した場合は、このステップの後に新規ボリューム作成の抑止を解除する処理を追加する。この処理は、図6のストレージ制御部管理表257において、ストレージ制御部ペアID2572が特定したストレージ制御部ペアとなっているストレージ制御部に対して、追加したボリューム作成抑止フラグをOFFにすることで実現できる。 Upon receiving the instruction, the cluster control unit secures information processing resources such as the CPU core and memory, loads the program constituting the storage control unit from the storage device into the memory, and starts the storage control unit. After startup, copy the volume management table 261 from the storage control unit in active mode. The reconstruction of the storage control unit pair is performed using the information processing resources released by the deletion. The failure recovery program (2) updates the storage control unit management table 257 and updates the information of the storage control unit pair after the creation of the storage control unit and the storage control unit pair is completed. Since this reconstruction process is the same process as the redundancy recovery of the storage control unit pair when the present invention is not applied, the details will be omitted. If a process for suppressing the creation of a new volume in the specified storage control unit pair is added in step S200, a process for canceling the suppression of the creation of a new volume is added after this step. This process is performed by turning off the added volume creation suppression flag for the storage control unit that is the storage control unit pair specified by the storage control unit pair ID 257 in the storage control unit management table 257 of FIG. realizable.

図12による処理の場合、ペアの片方を喪失した2つのストレージ制御部ペアが順番にボリューム退避を行っているが、実際には、2つのストレージ制御部ペアが同時にボリューム退避を行ってもよい。図13による処理の場合、スタンバイモードのストレージ制御部が残存しているストレージ制御部ペアからのボリューム退避とストレージ制御部ペア削除の完了まで、アクティブモードのストレージ制御部が残存しているストレージ制御部ペアのペア相手となるストレージ制御部の再構築を行うことができない。したがって、ボリュームの冗長度が低下している時間は、図12による処理方が短く、可用性が高い。一方で、図12による処理の場合、新しく作成したストレージ制御部ペアは、障害回復処理の完了直後はボリュームを1つも担当していない状態となり、ストレージ制御部に割り当てられている情報処理資源の利用効率が悪い状態になってしまう。 In the case of the process according to FIG. 12, the two storage control unit pairs that have lost one of the pairs are performing volume evacuation in order, but in reality, the two storage control unit pairs may perform volume evacuation at the same time. In the case of the process according to FIG. 13, the storage control unit in the active mode remains until the volume is saved from the storage control unit pair in which the storage control unit in the standby mode remains and the deletion of the storage control unit pair is completed. The storage control unit that is the partner of the pair cannot be rebuilt. Therefore, during the time when the volume redundancy is low, the processing method according to FIG. 12 is short and the availability is high. On the other hand, in the case of the processing according to FIG. 12, the newly created storage control unit pair is not in charge of any volume immediately after the completion of the failure recovery processing, and the information processing resources assigned to the storage control unit are used. It will be inefficient.

このように、図12の図13の2つの処理は、可用性と情報処理資源の利用効率のトレードオフの関係にある。実際のストレージシステムにおいては、図12と図13の2つの処理方式のうち、どちらか一方のみを備えていてもよく、両方とも備えておき、クラスタ制御部が何らかの判断基準によってどちらの処理方式を実行するかを決定してもよく、ストレージシステム管理者が事前に設定した方式を実行するようにしてもよい。なお、本発明はストレージ制御部を再構築するための予約リソースを不要とすることで、情報処理資源の利用効率を改善するものだが、例えば、ストレージノード1台までの障害回復に必要な情報処理資源を予約するという構成にしてもよい。この場合、ストレージノード1台までの障害であれば、ボリューム退避を行わずに、予約しておいた情報処理資源を用いてストレージ制御部の再構築を行うことができる。 As described above, the two processes of FIG. 13 of FIG. 12 have a trade-off relationship between availability and utilization efficiency of information processing resources. In an actual storage system, only one of the two processing methods shown in FIGS. 12 and 13 may be provided, and both may be provided, and the cluster control unit may use either processing method according to some judgment criteria. You may decide whether to execute it, or you may make it execute the method preset by the storage system administrator. The present invention improves the utilization efficiency of information processing resources by eliminating the need for reserved resources for reconstructing the storage control unit. For example, information processing required for failure recovery of up to one storage node. It may be configured to reserve resources. In this case, if there is a failure of up to one storage node, the storage control unit can be reconstructed using the reserved information processing resources without saving the volume.

図12の処理による場合、新しく作成したストレージ制御部ペアは、障害回復処理の完了直後はボリュームを1つも担当していない状態となるため、情報処理資源の利用効率を高めるために、図6に示したストレージ制御部管理表257のCPU利用率2577等を参照して、負荷の高いストレージ制御部及びストレージ制御部ペアが担当するボリュームを新しく作成したストレージ制御部ペアに移動させ、システム全体の負荷の分散を図る処理を行っても良い。 In the case of the processing of FIG. 12, the newly created storage control unit pair is in a state of not being in charge of any volume immediately after the completion of the failure recovery processing. Therefore, in order to improve the utilization efficiency of the information processing resources, FIG. Refer to the CPU utilization rate 2577 etc. in the storage control unit management table 257 shown, move the volume in charge of the storage control unit and the storage control unit pair with high load to the newly created storage control unit pair, and load the entire system. You may perform a process to disperse the above.

ところで、ストレージシステム全体の空き記憶容量が不足した場合、SDSでは新しいストレージノードを追加することで、記憶容量不足を解消するという運用が一般的である。この場合、新しく追加したストレージノードの物理チャンクを論理チャンクに割り当てることで、記憶容量不足が解消される。一方、Erasure Codingの中には、他のストレージノードの物理チャンクにアクセスすることなくリード処理を行えるという特徴(リードローカリティ)を持ったものがある。リードローカリティを持つErasure Codingを適用したス
トレージシステムにおいて、記憶容量が不足を解消するために、新しいストレージノードを追加し、追加したストレージノードの物理チャンクを論理チャンクに割り当てた場合、リードローカリティという特徴を失われてしまうという問題がある。障害回復処理後に、新しく作成したストレージ制御部ペアにボリュームを移動させるのと同様に、新しく追加したノードに新しく作成したストレージ制御部ペアにボリュームを移動させることで、リードローカリティを持つErasure Codingの特徴を失うことなく、空き記憶容量不足を解消することができる。
By the way, when the free storage capacity of the entire storage system is insufficient, it is common in SDS to solve the storage capacity shortage by adding a new storage node. In this case, by allocating the physical chunk of the newly added storage node to the logical chunk, the storage capacity shortage is solved. On the other hand, some Erasure Coding has a feature (read locality) that read processing can be performed without accessing the physical chunks of other storage nodes. In a storage system to which Erasure Coding with read locality is applied, when a new storage node is added and the physical chunk of the added storage node is assigned to the logical chunk in order to solve the storage capacity shortage, the feature of read locality is characterized. There is a problem that it will be lost. Erasure Coding with read locality by moving the volume to the newly created storage control pair to the newly added node in the same way as moving the volume to the newly created storage control pair after the disaster recovery process. It is possible to solve the shortage of free storage capacity without losing.

図14は、ボリューム退避プログラム251の処理の一例を示す図である。このプログラム251は、障害回復プログラム250から指示された、ストレージノード障害によってペアの片方を喪失したストレージ制御部ペアが担当する全ボリュームを、冗長度が低下していない正常なストレージ制御部ペアに退避させる処理を行う。つまり、ペアの片方を喪失したストレージ制御部ペアが担当する全ボリュームを、冗長度が低下していない正常な複数のストレージ制御部ペアに分散して退避させる処理を行う。このプログラム251は、クラスタ制御部216のメモリに格納されており、当該クラスタ制御部が配置されたストレージノードのCPUによって実行される。このプログラム251は、マスタロールのクラスタ制御部216が実行する障害回復プログラム250から起動され、当該クラスタ制御部が実行する。マスタロールのクラスタ制御部が障害により機能しない場合には、クラスタ内の他のワーカロールのクラスタ制御部がマスタロールとなり実行する。 FIG. 14 is a diagram showing an example of processing of the volume save program 251. This program 251 saves all the volumes in charge of the storage control unit pair that lost one of the pairs due to the storage node failure, as instructed by the failure recovery program 250, to a normal storage control unit pair whose redundancy is not reduced. Perform the process of making it. That is, all the volumes in charge of the storage control unit pair that lost one of the pairs are distributed and saved to a plurality of normal storage control unit pairs whose redundancy is not reduced. This program 251 is stored in the memory of the cluster control unit 216, and is executed by the CPU of the storage node in which the cluster control unit is located. This program 251 is started from the failure recovery program 250 executed by the cluster control unit 216 of the master role, and is executed by the cluster control unit. If the cluster control unit of the master role does not function due to a failure, the cluster control unit of another worker role in the cluster becomes the master role and executes it.

ボリューム退避プログラム251は、障害回復プログラム250から指定された退避元ストレージ制御部ペアが担当するボリューム一覧を取得する(S300)。つまり、ペアの片方を喪失したストレージ制御部ペアが担当する全ボリュームの情報を取得する。前述したように、ボリューム管理表261は、ストレージ制御部のメモリに存在する情報である。そのため、実際には当該ストレージ制御部ペアの残存ストレージ制御部が配置されているストレージノードのクラスタ制御部を介して、情報を取得することになる。ボリューム退避プログラム251は、残存ストレージ制御部が配置されているストレージノードのクラスタ制御部を介して、ストレージ制御部ペアの残存ストレージ制御部からボリューム管理表261を受け取り、ストレージ制御部ペアID2614と対応する全てのボリュームID2611を取得する。 The volume save program 251 acquires a list of volumes in charge of the save source storage control unit pair specified by the failure recovery program 250 (S300). That is, the information of all the volumes in charge of the storage control unit pair that lost one of the pairs is acquired. As described above, the volume management table 261 is information existing in the memory of the storage control unit. Therefore, the information is actually acquired via the cluster control unit of the storage node in which the remaining storage control unit of the storage control unit pair is arranged. The volume save program 251 receives the volume management table 261 from the remaining storage control unit of the storage control unit pair via the cluster control unit of the storage node in which the residual storage control unit is located, and corresponds to the storage control unit pair ID 2614. Get all volume ID 2611.

次に、ボリューム退避プログラム251は、取得したストレージ制御部ペアID2614と対応する全てのボリュームから未退避のボリュームを一つずつ選択し(S301)、ボリューム退避先のストレージ制御部ペアを決定するために、選択された各ボリュームに対してボリューム退避先決定処理を実行する(S302)。ボリューム退避先決定処理の詳細については、図15を用いて後述する。 Next, the volume save program 251 selects an unsaved volume one by one from all the volumes corresponding to the acquired storage control unit pair ID 2614 (S301), and determines the storage control unit pair of the volume save destination. , Executes the volume save destination determination process for each selected volume (S302). The details of the volume save destination determination process will be described later with reference to FIG.

ボリュームの退避先が決定後、ボリューム退避プログラム251は、退避元のストレージ制御部と退避先にストレージ制御部に対して、当該ボリュームの移動を指示する(S303)。このボリューム移動処理自体は、一般にボリュームマイグレーションなどと呼ばれる技術及び機能と同様のため、説明は省略する。当該ボリュームの退避が完了後、ボリューム退避プログラム251は、ステップS300で特定した全てのボリュームを退避が完了したか否かを判断する(S304)。全てのボリュームの退避が完了した場合、ボリューム退避プログラム251は、処理を終了する。一方、全てのボリュームの退避が完了していない場合、ボリューム退避プログラム251は、ステップS301に戻り別のボリュームに対してステップS302~S304を実行する。 After the volume save destination is determined, the volume save program 251 instructs the storage control unit of the save source and the storage control unit of the save destination to move the volume (S303). Since this volume movement process itself is the same as the technology and function generally called volume migration and the like, the description thereof will be omitted. After the evacuation of the volume is completed, the volume evacuation program 251 determines whether or not all the volumes specified in step S300 have been evacuated (S304). When the evacuation of all volumes is completed, the volume evacuation program 251 ends the process. On the other hand, if the evacuation of all volumes has not been completed, the volume evacuation program 251 returns to step S301 and executes steps S302 to S304 for another volume.

図14の例では、ボリュームの移動完了を待ちながら1つずつ退避させているが、移動完了を待たずに次のボリューム退避を開始し、複数ボリュームを同時並行的に退避してもよい。ただし、この場合は退避先ストレージ制御部ペアを決定する際に、現在同時並行して退避処理を行っているボリュームの影響を考慮する必要がある。 In the example of FIG. 14, the volumes are evacuated one by one while waiting for the completion of movement, but the next volume evacuation may be started without waiting for the completion of movement, and a plurality of volumes may be evacuated in parallel. However, in this case, when determining the save destination storage control unit pair, it is necessary to consider the influence of the volumes that are currently being saved in parallel.

また、ボリューム作成時などに、ボリューム毎にGold(高ランク)、Silver(中ランク)、Bronze(低ランク)のようなランク付けを行えるようにしておき、ランクに応じてボリューム移動を行う順番を変えるようにしてもよい。同様に、ボリュームのランクに応じて、ボリューム移動を行う際の処理速度を変えてもよい。例えば、ランクが高い程、先にボリューム移動を行い、処理速度も速くすることで、ランクの高いボリュームの冗長度が低下している期間を短くすることができる。これらの処理は、図7のボリューム管理表261に、ボリュームのランクを示す列を追加し、ステップS301において移動対象のボリュームを選択する際や、ステップS303においてボリューム移動の指示を行う際に、当該列を参照することで実現できる。 Also, when creating a volume, make it possible to rank each volume such as Gold (high rank), Silver (medium rank), Bronze (low rank), and change the volume according to the rank. You may change it. Similarly, the processing speed when moving the volume may be changed according to the rank of the volume. For example, the higher the rank, the earlier the volume is moved and the processing speed is increased, so that the period during which the redundancy of the high-ranked volume is lowered can be shortened. These processes are performed when a column indicating the rank of a volume is added to the volume management table 261 of FIG. 7, a volume to be moved is selected in step S301, or when a volume move instruction is given in step S303. This can be achieved by referring to the columns.

また、図14の例では、ボリューム毎に独立して退避先ストレージ制御部ペアを決定しているが、あるボリュームのスナップショットから作成したボリュームのように依存関係のある複数ボリュームに対して、まとめて1つの退避先ストレージ制御部ペアを決定してもよい。複数のボリューム間で重複しているデータを取り除く重複排除機能を有するストレージシステムにおいては、データの重複度合いが高い複数のボリュームに対して、まとめて1つの退避先ストレージ制御部ペアを決定してもよい。 Further, in the example of FIG. 14, the save destination storage control unit pair is independently determined for each volume, but it is summarized for a plurality of volumes having a dependency relationship such as a volume created from a snapshot of a certain volume. You may determine one backup destination storage control unit pair. In a storage system that has a deduplication function that removes duplicated data between multiple volumes, even if one backup destination storage control unit pair is collectively determined for multiple volumes with a high degree of data duplication. good.

図15は、ボリューム退避先決定プログラム252の処理の一例である。このプログラム252はボリューム退避プログラム251から指示されたボリュームの退避先として最適なストレージ制御部ペアを決定する処理を行う。即ち、図15で示された処理は、ペアの片方を喪失したストレージ制御部ペアが担当する全ボリュームに対して、ボリューム毎に実行される。このプログラム252は、マスタロールのクラスタ制御部216のメモリに格納されており、当該クラスタ制御部が配置されたストレージノードのCPUによって実行される。このプログラム252は、マスタロールのクラスタ制御部が実行するボリューム退避プログラムから起動され、当該クラスタ制御部216が実行する。マスタロールのクラスタ制御部が障害により機能しない場合には、クラスタ内の他のワーカロールのクラスタ制御部がマスタロールとなり実行する。 FIG. 15 is an example of processing of the volume save destination determination program 252. This program 252 performs a process of determining the optimum storage control unit pair as the save destination of the volume instructed by the volume save program 251. That is, the process shown in FIG. 15 is executed for each volume for all the volumes in charge of the storage control unit pair that has lost one of the pairs. This program 252 is stored in the memory of the cluster control unit 216 of the master role, and is executed by the CPU of the storage node in which the cluster control unit is located. This program 252 is started from the volume save program executed by the cluster control unit of the master role, and is executed by the cluster control unit 216. If the cluster control unit of the master role does not function due to a failure, the cluster control unit of another worker role in the cluster becomes the master role and executes it.

ボリューム退避先決定プログラム252は、ストレージ制御部管理表257を参照し、退避先候補となるストレージ制御部ペアの一覧を取得する(S400)。つまり、ストレージ制御部管理表257のストレージ制御部ペアID2572の全ての情報を取得する。 The volume save destination determination program 252 refers to the storage control unit management table 257 and acquires a list of storage control unit pairs that are candidates for save destination (S400). That is, all the information of the storage control unit pair ID 2571 of the storage control unit management table 257 is acquired.

取得したストレージ制御部ペアの一覧から、処理対象のストレージ制御部ペアを1つずつ選択し(S401)、さらに、ストレージ制御部ペアを構成するストレージ制御部から、処理対象のストレージ制御部を1つずつ選択する(S402)。ボリューム退避先決定プログラム252は、当該ストレージ制御部が配置されたストレージノードの動作状態が正常か否かを判定する(S403)。正常でなければ、ステップS401に戻り、別のストレージ制御部ペアに対してS402~S407を実行する。 Select one storage control unit pair to be processed one by one from the acquired storage control unit pair (S401), and further select one storage control unit to be processed from the storage control unit that constitutes the storage control unit pair. Select one by one (S402). The volume save destination determination program 252 determines whether or not the operating state of the storage node in which the storage control unit is located is normal (S403). If it is not normal, the process returns to step S401, and S402 to S407 are executed for another storage control unit pair.

正常であれば、当該ストレージ制御部が配置されたストレージノードに当該ボリュームを退避させた際に、当該ストレージ制御部が配置されたストレージノードの記憶装置の空き容量が閾値以上であるか否かを確認する(S404)。閾値未満であれば、ステップS401に戻り、別のストレージ制御部ペアに対してS402~S407を実行する。 If it is normal, when the volume is evacuated to the storage node in which the storage control unit is located, whether or not the free capacity of the storage device of the storage node in which the storage control unit is located is equal to or greater than the threshold value. Confirm (S404). If it is less than the threshold value, the process returns to step S401, and S402 to S407 are executed for another storage control unit pair.

閾値以上であれば、当該ストレージ制御部が配置されたストレージノードの通信帯域利用率が所定の閾値以下であるか否かを判定する(S405)。閾値よりも大きければ、ステップS401に戻り、別のストレージ制御部ペアに対してS402~S407を実行する。 If it is equal to or more than the threshold value, it is determined whether or not the communication band utilization rate of the storage node in which the storage control unit is arranged is equal to or less than a predetermined threshold value (S405). If it is larger than the threshold value, the process returns to step S401, and S402 to S407 are executed for another storage control unit pair.

閾値以下であれば、ストレージ制御部管理表を参照し、当該ストレージ制御部のCPU利
用率が所定の閾値以下であるか否かを判定する(S406)。閾値よりも大きければ、ステップS401に戻り、別のストレージ制御部ペアに対してS402~S407を実行する。閾値以下であれば、ステップS407に進む。
If it is below the threshold value, the storage control unit management table is referred to, and it is determined whether or not the CPU utilization rate of the storage control unit is below a predetermined threshold value (S406). If it is larger than the threshold value, the process returns to step S401, and S402 to S407 are executed for another storage control unit pair. If it is below the threshold value, the process proceeds to step S407.

ボリューム退避先決定プログラム252がステップS403で判定した、ストレージ制御部が配置されたストレージノードの動作状態は、ストレージ制御部管理表257からステップS402で選択したストレージ制御部ID2571に対応するストレージノードID2573を取得し、ストレージノードID2573に対応するストレージノード管理表256の動作状態2563から取得できる。 The operating status of the storage node in which the storage control unit is located determined by the volume save destination determination program 252 in step S403 is the storage node ID 2573 corresponding to the storage control unit ID 2571 selected in step S402 from the storage control unit management table 257. It can be acquired from the operating status 2563 of the storage node management table 256 corresponding to the storage node ID 2573.

ステップS404で判定したボリューム退避後のストレージノードの空き容量は、ストレージノード管理表256のストレージノードID2561に対応する記憶装置総容量2567から記憶装置総使用量2568を減じ、さらに、ボリューム管理表261のボリュームID2611に対応する使用容量2613を減ずることで取得できる。 The free space of the storage node after the volume is saved determined in step S404 is obtained by subtracting the total storage device usage 2568 from the total storage device capacity 2567 corresponding to the storage node ID 2561 in the storage node management table 256, and further, in the volume management table 261. It can be obtained by reducing the used capacity 2613 corresponding to volume ID 2611.

ステップS405で判定したストレージノードの通信帯域利用率は、ストレージ制御部管理表257からステップS402で選択したストレージ制御部ID2571に対応するストレージノードID2573を取得し、ストレージノードID2573に対応するストレージノード管理表256の動作状態2563と通信帯域利用率2566から取得できる。 For the communication bandwidth utilization rate of the storage node determined in step S405, the storage node ID 2573 corresponding to the storage control unit ID 2571 selected in step S402 is acquired from the storage control unit management table 257, and the storage node management table corresponding to the storage node ID 2573 is acquired. It can be obtained from 256 operating states 2563 and communication bandwidth utilization rate 2566.

ボリューム退避先決定プログラム252がステップS406で判定したストレージ制御部のCPU利用率は、ステップS402で選択したストレージ制御部IDに対応するストレージ制御部管理表257のCPU利用率2577から取得できる。 The CPU utilization rate of the storage control unit determined by the volume save destination determination program 252 in step S406 can be obtained from the CPU utilization rate 2577 of the storage control unit management table 257 corresponding to the storage control unit ID selected in step S402.

ステップS404~S406での判定に用いた閾値は、ストレージシステム全体で固定の値としてもよいし、ストレージノード毎に設定できる値としてもよい。ストレージノード毎に設定可能とする場合は、ストレージノード管理表にそれぞれの閾値の列を追加しておき、ボリューム退避先決定プログラムがステップS404~S406を実行する際に取得する。 The threshold value used for the determination in steps S404 to S406 may be a fixed value for the entire storage system or a value that can be set for each storage node. If it is possible to set for each storage node, add a column for each threshold value to the storage node management table, and acquire it when the volume save destination determination program executes steps S404 to S406.

物理チャンクをストレージ制御部が配置されたストレージノード以外のストレージノードにも保存する構成としている場合は、ステップS404を一律スキップして、ステップS405に進んでもよい。 If the physical chunk is configured to be saved in a storage node other than the storage node in which the storage control unit is arranged, step S404 may be skipped uniformly and the process may proceed to step S405.

ボリューム退避先決定プログラム252は、当該ストレージ制御部ペアを構成する全てのストレージ制御部に対して、ステップS403~S406が完了しているか否かを判定する(S407)。完了していれば、当該ストレージ制御部ペアを退避先として決定する(S408)。完了していないストレージ制御部が残っていれば、ステップS402に戻り、ステップS403~S407を実行する。 The volume save destination determination program 252 determines whether or not steps S403 to S406 have been completed for all the storage control units constituting the storage control unit pair (S407). If completed, the storage control unit pair is determined as the save destination (S408). If the storage control unit that has not been completed remains, the process returns to step S402 and steps S403 to S407 are executed.

図15の判定処理は一例であり、実際のストレージシステムの構造や特性などに応じて、任意の判定処理を行ってよい。例えば、ステップS403~ステップS406の判断は、退避先として求められるストレージシステムの特性に応じて、少なくとも一つのステップを実行することで判定されても良い。また、当該ボリュームを利用するホスト装置と、退避先候補のストレージ制御部が配置されたストレージノード間のネットワーク上の距離や、ネットワークを介した通信経路上に存在するネットワークスイッチの通信帯域利用率などによって判定してもよい。また、重複排除機能を有するストレージシステムにおいて、同一ストレージ制御部ペア内のボリューム間でのみ重複排除が適用可能といった制限がある場合、ボリュームの退避先によって、重複排除機能によるデータ削減量が変化する。この場合、退避先候補のストレージ制御部ペアにボリュームを退避させた際に重複排除機能によって削減されるデータ量を事前に見積もり、削減量が最も大きくなるストレージ制御部ペア
に退避させるようにしてもよい。また、ボリューム管理表261(図7)で管理するIO量を利用し、退避するボリュームに対するIO量に応じて、ステップS405の通信帯域利用率、ステップS406のCPU利用率の閾値を変更するように構成しても良い。また、図5のストレージノード管理表256に、ストレージノードに搭載しているCPUの動作周波数や、搭載している各記憶装置の種別やIO性能などの情報を追加し、障害が発生したストレージノードに搭載されているCPUや記憶装置と同等以上のものが搭載されているストレージノード上に配置されたストレージ制御部を退避先として選択することで、ボリュームを退避した後も、退避前と同等のIO性能が得られるようにしてもよい。
The determination process of FIG. 15 is an example, and any determination process may be performed according to the structure and characteristics of the actual storage system. For example, the determination of steps S403 to S406 may be determined by executing at least one step according to the characteristics of the storage system required as the save destination. In addition, the distance on the network between the host device that uses the volume and the storage node in which the storage control unit of the save destination candidate is located, the communication bandwidth utilization rate of the network switch existing on the communication path via the network, etc. May be determined by. Further, in a storage system having a deduplication function, if there is a limitation that deduplication can be applied only between volumes in the same storage control unit pair, the amount of data reduction by the deduplication function changes depending on the save destination of the volume. In this case, the amount of data to be reduced by the deduplication function when the volume is saved to the storage control unit pair of the save destination candidate is estimated in advance, and the data is saved to the storage control unit pair having the largest reduction amount. good. Also, using the IO amount managed in the volume management table 261 (Fig. 7), the thresholds of the communication bandwidth utilization rate in step S405 and the CPU utilization rate in step S406 should be changed according to the IO amount for the volume to be evacuated. It may be configured. In addition, information such as the operating frequency of the CPU installed in the storage node, the type of each storage device installed, and the IO performance is added to the storage node management table 256 in FIG. 5, and the storage node in which the failure occurred is added. By selecting the storage control unit located on the storage node on which the CPU or storage device installed in the device is installed as the save destination, even after the volume is saved, it is the same as before the save. IO performance may be obtained.

図16は、ストレージ制御部ペア削除プログラム254の処理の一例である。このプログラム254は、障害回復プログラム250から指示されたストレージ制御部を削除する処理を行う。このプログラム254は、クラスタ制御部216のメモリ212に格納されており、当該クラスタ制御部が配置されたストレージノードのCPUによって実行される。このプログラム254は、マスタロールのクラスタ制御部が実行する障害回復プログラム250から起動される。そして、削除対象であり、ペアの片方を喪失しているストレージ制御部ペアの残存ストレージ制御部が動作しているストレージノードのクラスタ制御部が実行する。 FIG. 16 is an example of the processing of the storage control unit pair deletion program 254. This program 254 performs a process of deleting the storage control unit instructed by the disaster recovery program 250. This program 254 is stored in the memory 212 of the cluster control unit 216, and is executed by the CPU of the storage node in which the cluster control unit is located. This program 254 is started from the failure recovery program 250 executed by the cluster control unit of the master role. Then, the cluster control unit of the storage node in which the remaining storage control unit of the storage control unit pair, which is the target of deletion and has lost one of the pairs, is operating executes the operation.

ストレージ制御部ペア削除プログラム254は、当該ストレージノードで動作している削除対象のストレージ制御部ペアの残存ストレージ制御部に対して、停止を指示する(S500)。 The storage control unit pair deletion program 254 instructs the remaining storage control unit of the storage control unit pair to be deleted running on the storage node to stop (S500).

ストレージ制御部が停止すると、当該ストレージ制御部に割り当てられていたCPUコアやメモリなどの情報処理資源を解放する(S501)。なお、このプログラム254が実行された後に、解放した情報処理資源を利用して、新しいストレージ制御部を作成するため、実際には解放せずに、新しいストレージ制御部を作成する際に、解放する予定だった情報処理資源を再利用するようにしてもよい。次に、ストレージ制御部ペア削除プログラム254は、当該ストレージノードで動作するデータ冗長化部218に対して当該ストレージ制御部ペアに割り当てられていた論理チャンク及び、論理チャンクに対応付けられている物理チャンクの削除を指示する(S502)。データ冗長化部は、指示された論理チャンクと物理チャンクを削除し、論理チャンク管理表271と物理チャンク管理表272から関連するレコードを削除する。 When the storage control unit is stopped, the information processing resources such as the CPU core and memory assigned to the storage control unit are released (S501). Since the released information processing resource is used to create a new storage control unit after this program 254 is executed, it is not actually released, but is released when a new storage control unit is created. The planned information processing resources may be reused. Next, the storage control unit pair deletion program 254 uses the logical chunk assigned to the storage control unit pair for the data redundancy unit 218 operating on the storage node, and the physical chunk associated with the logical chunk. Instruct to delete (S502). The data redundancy unit deletes the indicated logical chunks and physical chunks, and deletes the related records from the logical chunk management table 271 and the physical chunk management table 272.

このように実施例1によれば、冗長度が低下したストレージ制御部の冗長度を回復させずに、ストレージ制御部が処理を担当していた複数のボリュームを正常なストレージ制御部に分散して退避させ、退避完了後に冗長度が低下したストレージ制御部自体を削除することで、冗長度の回復可能性を保証するための予約情報処理資源を不要とし、物理サーバの利用効率を向上させる。 As described above, according to the first embodiment, the plurality of volumes in charge of processing by the storage control unit are distributed to the normal storage control unit without recovering the redundancy of the storage control unit whose redundancy is lowered. By saving and deleting the storage control unit itself whose redundancy has decreased after the saving is completed, the reserved information processing resource for guaranteeing the recoverability of the redundancy is not required, and the utilization efficiency of the physical server is improved.

また、ストレージシステムを構成するストレージノードに障害が発生した場合、当該ストレージノードが管理している制御情報(各種管理表)と物理チャンクに格納されたデータを、予備リソースを確保することなく正常なストレージノードに引き継ぐことができる。正常なストレージノードに処理を引き継いだ後も、ストレージ制御部とボリュームの対応を管理し、ストレージ制御部が配置されるストレージノードにデータを保存(データのローカリティを確保)することで、ホスト装置からのIO要求に対し、高い応答性を維持することができる。つまり、ホスト装置にボリュームを提供するストレージ装置に対し、データのリード要求があった場合、他のストレージノードからデータを読み出す必要がない。 In addition, when a failure occurs in the storage node that configures the storage system, the control information (various management tables) managed by the storage node and the data stored in the physical chunks are normal without securing spare resources. It can be taken over by the storage node. Even after the processing is taken over to a normal storage node, the correspondence between the storage control unit and the volume is managed, and the data is saved in the storage node where the storage control unit is located (data localization is ensured) from the host device. High responsiveness can be maintained in response to IO requests. That is, when a data read request is made to the storage device that provides the volume to the host device, it is not necessary to read the data from another storage node.

また、予備リソースを確保する必要がないため、ストレージシステムの構築コストを低減し、仮想化技術を用いたSDSに求められる低コスト化に効率よく対応することができる
。尚、予備リソースを確保した従来の技術と比べ、同程度の可用性を実現するため、必要なCPUコア数やメモリ容量を2/3程度削減することができる。これにより、ストレージシステム構築コストを20パーセント低減することが可能となる。
In addition, since it is not necessary to secure spare resources, it is possible to reduce the construction cost of the storage system and efficiently respond to the cost reduction required for SDS using virtualization technology. It should be noted that the required number of CPU cores and memory capacity can be reduced by about two-thirds in order to realize the same degree of availability as compared with the conventional technology that secures spare resources. This makes it possible to reduce the storage system construction cost by 20%.

以下、図17を参照して、実施例2について詳述する。 Hereinafter, the second embodiment will be described in detail with reference to FIG.

実施例1では、ストレージノード障害が発生した際の回復方法を示した。実施例2では、ストレージノード減設に適用する技術について説明する。つまり、ストレージシステムから、ストレージノードを取り除く処理をおこなうものである。以下、説明の容易化のため、ストレージ制御部グループを、一台のアクティブモードのストレージ制御部と一台のスタンバイモードのストレージ制御部からなるストレージ制御部ペアのケースで説明する。但し、ペアに限らず、3台以上のストレージ制御部から構成されるストレージ制御部グループの場合であっても、基本的には同一の処理を行うこととなる。ストレージ制御部ペア又はグループが複数のアクティブモードのストレージ制御部を含んでいる場合、減設処理のなかでアクティブモードのストレージ制御部はスタンバイモードのストレージ制御部と基本的には同様に扱ってもよい。 In Example 1, a recovery method when a storage node failure occurs is shown. In the second embodiment, a technique applied to the reduction of storage nodes will be described. That is, the process of removing the storage node from the storage system is performed. Hereinafter, for ease of explanation, the storage control unit group will be described in the case of a storage control unit pair consisting of one storage control unit in active mode and one storage control unit in standby mode. However, not limited to a pair, even in the case of a storage control unit group composed of three or more storage control units, basically the same processing is performed. Storage control unit When a pair or group includes multiple active mode storage control units, the active mode storage control unit may be treated basically in the same way as the standby mode storage control unit in the reduction process. good.

図17は、ストレージノード減設プログラム255の処理の一例である。このプログラム255は、ストレージシステムの管理者から指定されたストレージノードをストレージシステムから取り除くための処理を行う。このプログラム255は、管理端末110を介してストレージシステム200の管理者の指示によって起動され、マスタロールのクラスタ制御部が配置されたストレージノードのCPUによって実行される。マスタロールのクラスタ制御部218が定期的に行っている各ストレージノードの監視処理によって、当該ストレージノード障害の予兆を検出した場合に、このプログラム255を起動し、ストレージノード障害による冗長度低下を未然に防止するようにしてもよい。なお、図示していないが、減設対象のストレージノードに配置されたクラスタ制御部218がマスタロールの場合は、事前に他のストレージノードに配置されたワーカロールのクラスタ制御部の何れかをマスタロールに切り替える。 FIG. 17 is an example of the processing of the storage node reduction program 255. This program 255 performs a process for removing the storage node specified by the storage system administrator from the storage system. This program 255 is started by the instruction of the administrator of the storage system 200 via the management terminal 110, and is executed by the CPU of the storage node in which the cluster control unit of the master role is arranged. When a sign of a storage node failure is detected by the monitoring process of each storage node performed periodically by the cluster control unit 218 of the master role, this program 255 is started to prevent the redundancy from being reduced due to the storage node failure. You may try to prevent it. Although not shown, if the cluster control unit 218 placed in the storage node to be reduced is the master role, one of the cluster control units of the worker roll placed in the other storage node in advance is mastered. Switch to.

このプログラム255は、新たにマスタロールに切り替わったクラスタ制御部が配置されたストレージノードのCPUによって実行される。マスタロールに切り替えるクラスタ制御部の選出方法は、ストレージノード障害によってマスタロールのクラスタ制御部が失われた場合と同様でもよい。 This program 255 is executed by the CPU of the storage node in which the cluster control unit newly switched to the master role is placed. The method of selecting the cluster control unit to switch to the master role may be the same as when the cluster control unit of the master role is lost due to a storage node failure.

また、減設対象のストレージノードに配置されたマスタロールのクラスタ制御部が、何らかの判定処理によって新しいマスタロールのクラスタ制御部を選出してもよい。なお、ストレージノード減設プログラム255は処理を開始する前に、減設対象のストレージノードを除いたストレージシステムを構成する全ストレージノードの記憶装置の総空き容量と、減設対象のストレージノードの記憶装置の総使用量とを比較して、ストレージノード減設中に記憶装置の容量が不足すると判断した場合は、処理を中止する。減設処理中に、ストレージノード減設中の容量不足を防止する処理を追加してもよい。 Further, the cluster control unit of the master role arranged in the storage node to be reduced may select a cluster control unit of the new master role by some determination processing. Before starting the process, the storage node reduction program 255 stores the total free space of the storage devices of all the storage nodes constituting the storage system excluding the storage node to be reduced and the storage node to be reduced. If it is determined that the capacity of the storage device is insufficient during the reduction of the storage node by comparing with the total usage amount of the device, the process is stopped. During the reduction process, a process may be added to prevent the capacity shortage during the storage node reduction process.

また、ストレージノード減設プログラム255実行中に、ストレージシステムの管理者からボリュームの作成指示を受領した場合、ストレージノード減設によって、空き容量不足が発生する可能性があるか否かを判断し、発生する可能性が高いと判断した場合は、ボリューム作成を中止し、ストレージノード減設中の容量不足を防止するといった処理を追加してもよい。 In addition, if a volume creation instruction is received from the storage system administrator while the storage node reduction program 255 is being executed, it is determined whether or not there is a possibility that free space will be insufficient due to the storage node reduction. If it is determined that there is a high possibility that it will occur, volume creation may be stopped and additional processing such as preventing capacity shortage during storage node reduction may be added.

ストレージ減設プログラム255は、減設対象のストレージノードに配置されたストレー
ジ制御部219を含むストレージ制御部ペア217を選択する(S600)。この処理はストレージ制御部管理表257を参照し、減設対象のストレージノードID2573で検索し、ストレージ制御ペアIDを特定することで実現する。この際、特定したストレージ制御部ペアへの新規ボリューム作成を抑止する処理を追加してもよい。この処理は、図6のストレージ制御部管理表257にボリューム作成抑止フラグの列を追加し、ストレージ制御部ペアID2572が特定したストレージ制御部ペアとなっているストレージ制御部に対してこのフラグをONにすることで実現できる。図12及び図13と同様に、図10に示した例によると減設対象のストレージノードに配置されたストレージ制御部を含むストレージ制御部ペアは2つ存在し、減設対象のストレージノードに配置されたストレージ制御部の一方はアクティブモードで動作しており、他方はスタンバイモードで動作している。
The storage reduction program 255 selects the storage control unit pair 217 including the storage control unit 219 located on the storage node to be reduced (S600). This process is realized by referring to the storage control unit management table 257, searching for the storage node ID 2573 to be reduced, and specifying the storage control pair ID. At this time, a process for suppressing the creation of a new volume in the specified storage control unit pair may be added. This process adds a column of volume creation suppression flag to the storage control unit management table 257 in FIG. 6, and turns this flag ON for the storage control unit that is the storage control unit pair specified by the storage control unit pair ID 2527. It can be realized by setting. Similar to FIGS. 12 and 13, according to the example shown in FIG. 10, there are two storage control unit pairs including the storage control unit placed in the storage node to be reduced, and they are placed in the storage node to be reduced. One of the stored storage controls is operating in active mode and the other is operating in standby mode.

物理チャンクをストレージ制御部217が配置されたストレージノード以外のストレージノードにも保存する構成としている場合や、物理チャンクを三重化している場合、ストレージノード間でRAIDやErasure Codingを適用して物理チャンクを冗長化している場合は、ステップS600で特定したストレージ制御部ペア以外のストレージ制御部ペアに対応付けられた論理チャンクを構成する物理チャンクが減設対象のストレージノードに保存されている可能性がある。そのため、ステップS601に進む前に、ストレージノード減設プログラム255は減設対象を除く全てのストレージノードのデータ冗長化部に対して、減設対象のストレージノードに配置されたストレージ制御部とは関係のないストレージ制御部ペアに対応付けられた論理チャンクを構成する物理チャンクが、減設対象のストレージノードに配置されているか否かの確認と、他のストレージノードへの再配置を指示する。 If the physical chunk is configured to be saved in a storage node other than the storage node where the storage control unit 217 is located, or if the physical chunk is tripled, RAID or Erasure Coding is applied between the storage nodes to make the physical chunk. If is redundant, there is a possibility that the physical chunks that make up the logical chunk associated with the storage control unit pair other than the storage control unit pair specified in step S600 are stored in the storage node to be reduced. be. Therefore, before proceeding to step S601, the storage node reduction program 255 is related to the data redundancy unit of all the storage nodes except the reduction target with respect to the storage control unit arranged in the storage node to be reduced. Checks whether the physical chunks that make up the logical chunk associated with the storage control unit pair that does not have a storage node are located on the storage node to be reduced, and instructs them to relocate to another storage node.

指示を受けたデータ冗長化部は、冗長化方式に応じて、物理チャンクの配置先の確認と再配置を実行する。例えば、物理チャンクを複製(二重化)する冗長化方式の場合、データ冗長化部は論理チャンク管理表271から減設対象のストレージノードに物理チャンクを保存している論理チャンクが存在するか否かを確認する。存在する場合は、当該論理チャンクに対応付けられているストレージ制御部ペアID2712が減設対象のストレージノードに配置されたストレージ制御部を含むストレージ制御部ペアか否かを確認する。喪失したストレージ制御部を含むストレージ制御部ペアでなければ、新しい物理チャンクを確保し、当該論理チャンクを構成する物理チャンクの何れかから、新たに確保した物理チャンクにデータをコピーする。コピー完了後、論理チャンク管理表271を更新し、論理チャンクを構成する物理チャンクのうち、減設対象ノードに保存された物理チャンクを、コピー先の物理チャンクに変更する。 Upon receiving the instruction, the data redundancy unit confirms and relocates the physical chunk placement destination according to the redundancy method. For example, in the case of a redundancy method in which physical chunks are duplicated (redundant), the data redundancy unit determines from the logical chunk management table 271 whether or not there is a logical chunk that stores the physical chunk in the storage node to be reduced. confirm. If it exists, check whether the storage control unit pair ID 2712 associated with the logical chunk is a storage control unit pair including the storage control unit arranged in the storage node to be reduced. If it is not a storage control unit pair including the lost storage control unit, a new physical chunk is secured, and data is copied from any of the physical chunks constituting the logical chunk to the newly secured physical chunk. After the copy is completed, the logical chunk management table 271 is updated, and among the physical chunks that make up the logical chunk, the physical chunk saved in the node to be reduced is changed to the physical chunk of the copy destination.

減設対象を除く全てのストレージノードで物理チャンクの配置先の確認と再配置が完了すると、ステップS601に進む。 When the confirmation and relocation of the physical chunk placement destinations are completed on all the storage nodes except the reduction target, the process proceeds to step S601.

ストレージノード減設プログラム255は、特定したストレージ制御部ペアから処理対象となるストレージ制御部ペアを選択する(S601)。当該ストレージ制御部ペアのアクティブモードのストレージ制御部が減設対象ストレージノードに配置されているか否かを判定する(S602)。 The storage node reduction program 255 selects the storage control unit pair to be processed from the specified storage control unit pair (S601). It is determined whether or not the active mode storage control unit of the storage control unit pair is located in the storage node to be reduced (S602).

配置されていれば、図12のステップS106~S108を実行し、当該ストレージ制御部ペアが担当している全ボリュームを退避させ、当該ストレージ制御部ペアを削除する(S603)。これにより、当該ストレージ制御部ペアのスタンバイモードが配置されていたストレージノードに、ストレージ制御部を1つ配置するのに必要な情報処理資源が解放されたことになる。アクティブモードのストレージ制御部が配置されていなければ、ステップS603をスキップし、ステップS604に進む。S602の処理は、ストレージ制御部管理表257を参照し、減設対象のストレージノードID2571とステップS601で選択したストレージ制御部ペアID2572のAND条件で検索して取得したストレージ制御部の動作モード2574を取得することで実
現する。
If it is arranged, steps S106 to S108 of FIG. 12 are executed, all the volumes in charge of the storage control unit pair are saved, and the storage control unit pair is deleted (S603). As a result, the information processing resources required for arranging one storage control unit in the storage node in which the standby mode of the storage control unit pair is arranged are released. If the storage control unit in the active mode is not arranged, step S603 is skipped and the process proceeds to step S604. For the processing of S602, refer to the storage control unit management table 257, and select the operation mode 2574 of the storage control unit acquired by searching with the AND condition of the storage node ID2571 to be reduced and the storage control unit pair ID2572 selected in step S601. Realized by acquiring.

ストレージノード減設プログラム255は、減設対象ストレージノードにアクティブモードのストレージ制御部が配置されている全ストレージ制御部ペアの削除が完了しているか否かを判定する(S604)。完了していれば、ステップS605に進み、完了していなければ、ステップS601に戻る。 The storage node reduction program 255 determines whether or not the deletion of all the storage control unit pairs in which the storage control unit in the active mode is arranged in the storage node to be reduced has been completed (S604). If completed, the process proceeds to step S605, and if not completed, the process returns to step S601.

次にストレージノード減設プログラム255は、削除したストレージ制御部ペアを構成する減設対象ではないストレージノードのクラスタ制御部216に、減設対象ストレージノードに残っているストレージ制御部ペアのスタンバイモードのストレージ制御部のコピーを指示する(S605)。当該ストレージ制御部ペアのアクティブモードのストレージ制御部から再構築せずに、スタンバイモードのストレージ制御部からコピーするのは、アクティブモードのストレージ制御部が処理を担当しているボリュームのIO処理への影響を最小化するためである。 Next, the storage node reduction program 255 is set to the cluster control unit 216 of the storage node that is not the reduction target that constitutes the deleted storage control unit pair, in the standby mode of the storage control unit pair that remains in the storage node to be reduced. Instructs a copy of the storage control unit (S605). Copying from the standby mode storage control unit without rebuilding from the active mode storage control unit of the storage control unit pair is to the IO processing of the volume for which the active mode storage control unit is in charge of processing. This is to minimize the impact.

指示を受けたクラスタ制御部216は、CPUコアやメモリなどの情報処理資源を確保し、記憶装置からストレージ制御部を構成するプログラムをメモリにロードして、ストレージ制御部を起動する。確保する情報処理資源は、削除によって解放されたものを用いる。起動後に減設対象ストレージノードに残っているストレージ制御部ペアのスタンバイモードのストレージ制御部からボリューム管理表をコピーする。 Upon receiving the instruction, the cluster control unit 216 secures information processing resources such as the CPU core and the memory, loads the program constituting the storage control unit from the storage device into the memory, and starts the storage control unit. The information processing resources to be secured are those released by deletion. Copy the volume management table from the standby mode storage control unit of the storage control unit pair that remains in the storage node to be reduced after startup.

ストレージ制御部217のコピー完了後、ストレージノード減設プログラム255は、削除したストレージ制御部ペアを構成する減設対象ではないストレージノードのデータ冗長化部に対して、ステップS605の処理対象としたストレージ制御部ペアに対応付けられた論理チャンクを構成する物理チャンクの再配置を指示する(S606)。指示を受けたデータ冗長化部は、減設対象のストレージ制御部のデータ冗長化部の論理チャンク管理表271のレコードから当該ストレージ制御部ペアID2712に対応付けられたレコードをコピーする。 After the copy of the storage control unit 217 is completed, the storage node reduction program 255 sends the storage targeted for processing in step S605 to the data redundancy unit of the storage node that is not the reduction target that constitutes the deleted storage control unit pair. Instructs the relocation of the physical chunks that make up the logical chunks associated with the control pair (S606). Upon receiving the instruction, the data redundancy unit copies the record associated with the storage control unit pair ID 2712 from the record in the logical chunk management table 271 of the data redundancy unit of the storage control unit to be reduced.

その後、データ冗長化部218は、新しい物理チャンクを確保し、減設対象のストレージ制御部に保存されている物理チャンクのデータをコピーする。論理チャンク管理表を更新し、論理チャンクを構成する物理チャンクのうち、減設対象のストレージノードに保存された物理チャンクを、コピーした物理チャンクに変更する。 After that, the data redundancy unit 218 secures a new physical chunk and copies the data of the physical chunk stored in the storage control unit to be reduced. Update the logical chunk management table, and change the physical chunks saved in the storage node to be reduced from the physical chunks that make up the logical chunk to the copied physical chunks.

物理チャンクの再配置が完了すると、ストレージノード減設プログラム255は、当該ストレージ制御部ペアのスタンバイモードのストレージ制御部をコピーしたストレージ制御部に切り替える指示を行い、ストレージ制御部管理表257を更新する(S607)。ステップS600において、特定したストレージ制御部ペアへの新規ボリューム作成を抑止する処理を追加した場合は、このステップに新規ボリューム作成の抑止を解除する処理を追加する。この処理は、図6のストレージ制御部管理表257において、ストレージ制御部ペアID2572が特定したストレージ制御部ペアとなっているストレージ制御部に対して、追加したボリューム作成抑止フラグをOFFにすることで実現できる。 When the physical chunk relocation is completed, the storage node reduction program 255 issues an instruction to switch the storage control unit in the standby mode of the storage control unit pair to the copied storage control unit, and updates the storage control unit management table 257. (S607). If a process for suppressing the creation of a new volume in the specified storage control unit pair is added in step S600, a process for canceling the suppression of the creation of a new volume is added to this step. This process is performed by turning off the added volume creation suppression flag for the storage control unit that is the storage control unit pair specified by the storage control unit pair ID 257 in the storage control unit management table 257 of FIG. realizable.

次に、ストレージノード減設プログラム255は減設対象のストレージノードで動作しているクラスタ制御部とデータ冗長化部に停止を指示し(S608)、ストレージノード管理表256から当該ストレージノードに関するレコードを削除する(S609)。以上の処理が完了すると、減設対象のストレージノードは、ストレージシステムから完全に切り離され、物理的にストレージノードを取り除いても問題ない状態となる。 Next, the storage node reduction program 255 instructs the cluster control unit and the data redundancy unit operating on the storage node to be reduced to stop (S608), and records the storage node from the storage node management table 256. Delete (S609). When the above processing is completed, the storage node to be reduced is completely separated from the storage system, and there is no problem even if the storage node is physically removed.

このように実施例2によれば、減設対象のストレージノードで動作するストレージ制御部が担当していた複数のボリュームを減設対象外のストレージ制御部に分散して退避させ
、退避完了後に減設対象のストレージノードで動作するストレージ制御部を削除することで、ストレージノードを減設するための予約予備情報資源を不要とし、物理サーバの利用効率を向上させることができる。
As described above, according to the second embodiment, a plurality of volumes in charge of the storage control unit operating on the storage node to be reduced are distributed to the storage control units not to be reduced and saved, and the number is reduced after the saving is completed. By deleting the storage control unit that operates on the storage node to be installed, it is possible to eliminate the need for reserved preliminary information resources for reducing the number of storage nodes and improve the utilization efficiency of the physical server.

また、減設対象のストレージノードで動作するストレージ制御部が担当していたボリュームに対するIO要求の処理を、他のストレージ制御部が引き継いだ後も、ストレージ制御部が配置されるストレージノードにデータを保存(データのローカリティを確保)することで、ホスト装置からのIO要求に対し、高い応答性を維持することができる。つまり、ホスト装置にボリュームを提供するストレージ装置に対し、データのリード要求があった場合、他のストレージノードからデータを読み出す必要がない。 In addition, even after the IO request processing for the volume that was in charge of the storage control unit operating on the storage node to be reduced is taken over by another storage control unit, the data is sent to the storage node where the storage control unit is located. By saving (securing the locality of data), high responsiveness can be maintained in response to IO requests from the host device. That is, when a data read request is made to the storage device that provides the volume to the host device, it is not necessary to read the data from another storage node.

また、ストレージノードを減設するための予備リソースを確保する必要がなく、ストレージシステムをスケールインすることが可能となるため、仮想化技術を用いたSDSに求められるスケーラビリティを向上させることが可能となる。 In addition, it is not necessary to secure spare resources for reducing the number of storage nodes, and it is possible to scale in the storage system, so it is possible to improve the scalability required for SDS using virtualization technology. Become.

以上、実施例1では、障害が発生したストレージノードのストレージ制御部を用いて構成されるストレージ制御部ペアからボリュームを退避させているが、実施例2ではストレージ制御部にかかるストレージノードを減設させる場合を示した。 As described above, in the first embodiment, the volume is saved from the storage control unit pair configured by using the storage control unit of the storage node in which the failure has occurred, but in the second embodiment, the storage node related to the storage control unit is reduced. The case to make it is shown.

本発明は、さらに、ストレージノードは障害発生も減設もせずに稼働を続け、ボリュームの担当変更させるストレージ制御部ペアが担当ボリュームを残して稼働を続けてもよい。また、一つのストレージ制御部ペアから複数のストレージ制御部ペアにボリューム担当が分散して移動しているが、これに解らず、1つのストレージ制御部ペアから1つのストレージ制御部ペアへ、複数のストレージ制御部ペアから1つのストレージ制御部ペアへ、複数のストレージ制御部ペアから複数のストレージ制御部ペアへ、ボリューム担当を移動させてもよい。 Further, in the present invention, the storage node may continue to operate without the occurrence of a failure or reduction, and the storage control unit pair for changing the charge of the volume may continue to operate while leaving the volume in charge. In addition, although the volume charge is distributed and moved from one storage control unit pair to a plurality of storage control unit pairs, it is not understood that a plurality of storage control unit pairs are moved from one storage control unit pair to one storage control unit pair. The volume charge may be moved from the storage control unit pair to one storage control unit pair, and from a plurality of storage control unit pairs to a plurality of storage control unit pairs.

100:ホスト装置、200:ストレージシステム、210:ストレージノード、211:CPU、212:メモリ、213:記憶装置、214:通信装置、215:、216:クラスタ制御部、217:ストレージ制御部ペア、218:データ冗長化部、219:ストレージ制御部、220:ボリューム、221:論理チャンク、222:物理チャンク、250:障害回復プログラム、251:ボリューム退避プログラム、252:ボリューム退避先決定プログラム、256:ストレージノード管理表、257:ストレージ制御部管理表、300:ネットワーク。 100: Host device, 200: Storage system, 210: Storage node, 211: CPU, 212: Memory, 213: Storage device, 214: Communication device, 215 :, 216: Cluster control unit, 217: Storage control unit pair, 218 : Data redundancy unit, 219: Storage control unit, 220: Volume, 221: Logical chunk, 222: Physical chunk, 250: Failure recovery program, 251: Volume save program, 252: Volume save destination determination program, 256: Storage node Management table, 257: Storage control unit management table, 300: Network.

Claims (8)

クラスタを構成する複数のストレージノードを有するストレージシステムにおいて、
データを記憶する記憶装置と、
ストレージシステムの制御を行うクラスタ制御部と、
各ストレージノードに設けられ、前記記憶装置を利用してボリュームという単位で記憶領域をホスト装置に提供し、ホスト装置からのIO要求に応じて記憶装置にデータを保存するストレージ制御部と、を有し、
前記ストレージ制御部は、前記クラスタ内の他のストレージノードのストレージ制御部とストレージ制御部グループを構成し、前記ストレージ制御部グループの少なくとも1のストレージ制御部がアクティブモードのストレージ制御部としてホスト装置からのIO要求を処理し、前記ストレージ制御部グループの他のストレージ制御部が前記アクティブモードのストレージ制御部の処理を引き継ぐことが可能であるよう、構成され、
前記クラスタ制御部は、第1のストレージ制御部グループが担当するボリュームを取得し、取得したボリュームの各ボリュームに対し第2のストレージ制御部グループを決定し、第1のストレージ制御部グループを構成するストレージ制御部から第2のストレージ制御部グループのストレージ制御部へ、前記第1のストレージ制御部グループが担当するボリュームを移動させることを特徴とするストレージシステム。
In a storage system with multiple storage nodes that make up a cluster
A storage device that stores data and
The cluster control unit that controls the storage system and
Each storage node has a storage control unit that provides a storage area to the host device in units of volumes using the storage device and stores data in the storage device in response to an IO request from the host device. death,
The storage control unit constitutes a storage control unit and a storage control unit group of other storage nodes in the cluster, and at least one storage control unit of the storage control unit group serves as an active mode storage control unit from a host device. The IO request is processed so that another storage control unit in the storage control unit group can take over the processing of the storage control unit in the active mode.
The cluster control unit acquires a volume in charge of the first storage control unit group, determines a second storage control unit group for each volume of the acquired volume, and constitutes a first storage control unit group. A storage system characterized in that a volume in charge of the first storage control unit group is moved from the storage control unit to the storage control unit of the second storage control unit group.
前記ボリュームを移動させてボリュームがなくなったストレージ制御グループを削除することを特徴とする請求項1に記載のストレージシステム。 The storage system according to claim 1, wherein the volume is moved and the storage control group whose volume is exhausted is deleted. 前記ボリュームの移動は、減設または障害によって、稼働するノードが減少する時に行うことを特徴とする請求項2に記載のストレージシステム。 The storage system according to claim 2, wherein the volume is moved when the number of operating nodes decreases due to a reduction or a failure. ストレージノードに障害を減設する場合に、前記ボリュームの移動を行なうものであり、
減設するノードにアクティブモードのストレージ制御部が配置されるストレージ制御部グループのボリュームを、他のストレージ制御部グループに移動させることを特徴とする請求項3に記載のストレージシステム。
The volume is moved when the failure is reduced in the storage node.
The storage system according to claim 3, wherein the volume of the storage control unit group in which the storage control unit in the active mode is arranged on the node to be reduced is moved to another storage control unit group.
減設するノードに、前記アクティブモードのストレージ制御部の処理を引き継ぐことが可能なスタンバイモードのストレージ制御部が配置される場合、ストレージ制御部グループのボリュームを他のノードに移動させてスタンバイモードのストレージ制御部を起動させて、同じストレージ制御部グループのスタンバイモードのストレージ制御部とすることを特徴とする請求項3に記載のストレージシステム。 When a standby mode storage control unit that can take over the processing of the active mode storage control unit is placed on the node to be reduced, the volume of the storage control unit group is moved to another node to enter the standby mode. The storage system according to claim 3, wherein the storage control unit is activated to be a storage control unit in a standby mode of the same storage control unit group. ストレージノードに障害が発生した場合に、前記ボリュームの移動を行なうものであり、
前記障害が発生したノードにアクティブモードのストレージ制御部が配置されるストレージ制御部グループは、他のノードに配置されるストレージ制御部をアクティブに切り替え、
前記障害が発生したノードにストレージ制御部が配置される少なくとも一つのストレージ制御部グループは、そのボリュームを他のストレージ制御部グループに移動させて削除される
ことを特徴とする請求項3に記載のストレージシステム。
The volume is moved when a failure occurs in the storage node.
The storage control unit group in which the storage control unit in the active mode is arranged in the node in which the failure has occurred switches the storage control unit arranged in the other node to active.
The third aspect of claim 3, wherein at least one storage control unit group in which the storage control unit is arranged on the failed node is deleted by moving the volume to another storage control unit group. Storage system.
前記障害が発生したノードにストレージ制御部が配置され、前記ボリュームを有する少なくとも一つのストレージ制御部グループは、前記削除されるストレージ制御部グループのストレージ制御部が配置されて障害が発生していないノードに、前記ボリュームをコピーしてストレージ制御部を起動してストレージ制御部グループを形成することを特徴とする請求項6に記載のストレージシステム。 A storage control unit is arranged on the node in which the failure has occurred, and at least one storage control unit group having the volume is a node in which the storage control unit of the storage control unit group to be deleted is arranged and no failure has occurred. The storage system according to claim 6, wherein the volume is copied and the storage control unit is activated to form a storage control unit group. クラスタを構成する複数のストレージノードを有するストレージシステムの制御方法において、
前記ストレージシステムは、
データを記憶する記憶装置と、
ストレージシステムの制御を行うクラスタ制御部と、
各ストレージノードに設けられ、前記記憶装置を利用してボリュームという単位で記憶領域をホスト装置に提供し、ホスト装置からのIO要求に応じて記憶装置にデータを保存するストレージ制御部と、を有し、
前記ストレージ制御部は、前記クラスタ内の他のストレージノードのストレージ制御部とストレージ制御部グループを構成し、前記ストレージ制御部グループの少なくとも1のストレージ制御部がアクティブモードのストレージ制御部としてホスト装置からのIO要求を処理し、前記ストレージ制御部グループの他のストレージ制御部が前記アクティブモードのストレージ制御部の処理を引き継ぐことが可能であるよう、構成され、
前記クラスタ制御部は、第1のストレージ制御部グループが担当するボリュームを取得し、取得したボリュームの各ボリュームに対し第2のストレージ制御部グループを決定し、第1のストレージ制御部グループを構成するストレージ制御部から第2のストレージ制御部グループのストレージ制御部へ、前記第1のストレージ制御部グループが担当するボリュームを移動させることを特徴とするストレージシステムの制御方法。
In the control method of a storage system having multiple storage nodes that make up a cluster
The storage system is
A storage device that stores data and
The cluster control unit that controls the storage system and
Each storage node has a storage control unit that provides a storage area to the host device in units of volumes using the storage device and stores data in the storage device in response to an IO request from the host device. death,
The storage control unit constitutes a storage control unit and a storage control unit group of other storage nodes in the cluster, and at least one storage control unit of the storage control unit group serves as an active mode storage control unit from a host device. The IO request is processed so that another storage control unit in the storage control unit group can take over the processing of the storage control unit in the active mode.
The cluster control unit acquires a volume in charge of the first storage control unit group, determines a second storage control unit group for each volume of the acquired volume, and constitutes a first storage control unit group. A method for controlling a storage system, which comprises moving a volume in charge of the first storage control unit group from the storage control unit to the storage control unit of the second storage control unit group.
JP2021179972A 2018-09-21 2021-11-04 Storage system and storage control method Active JP7179947B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021179972A JP7179947B2 (en) 2018-09-21 2021-11-04 Storage system and storage control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018177578A JP6974281B2 (en) 2018-09-21 2018-09-21 Storage system and storage control method
JP2021179972A JP7179947B2 (en) 2018-09-21 2021-11-04 Storage system and storage control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018177578A Division JP6974281B2 (en) 2018-09-21 2018-09-21 Storage system and storage control method

Publications (2)

Publication Number Publication Date
JP2022020744A true JP2022020744A (en) 2022-02-01
JP7179947B2 JP7179947B2 (en) 2022-11-29

Family

ID=87888625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021179972A Active JP7179947B2 (en) 2018-09-21 2021-11-04 Storage system and storage control method

Country Status (1)

Country Link
JP (1) JP7179947B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7519408B2 (en) 2022-06-20 2024-07-19 株式会社日立製作所 Computer system and redundant element configuration method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348701A (en) * 2003-03-27 2004-12-09 Hitachi Ltd Control method for making data dual between computer systems
JP2010066862A (en) * 2008-09-09 2010-03-25 Fujitsu Ltd Data management program, data management device and data management method
WO2015072026A1 (en) * 2013-11-18 2015-05-21 株式会社日立製作所 Computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348701A (en) * 2003-03-27 2004-12-09 Hitachi Ltd Control method for making data dual between computer systems
JP2010066862A (en) * 2008-09-09 2010-03-25 Fujitsu Ltd Data management program, data management device and data management method
WO2015072026A1 (en) * 2013-11-18 2015-05-21 株式会社日立製作所 Computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7519408B2 (en) 2022-06-20 2024-07-19 株式会社日立製作所 Computer system and redundant element configuration method

Also Published As

Publication number Publication date
JP7179947B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
JP6791834B2 (en) Storage system and control software placement method
JP6974281B2 (en) Storage system and storage control method
US11169879B2 (en) Storage system
US11204709B2 (en) Storage system and storage control method
JP2020101949A (en) Storage system and method for controlling storage system
JP7472341B2 (en) STORAGE SYSTEM AND METHOD FOR CONTROLLING STORAGE SYSTEM - Patent application
CN113448502B (en) Distributed storage system and storage control method
US10394484B2 (en) Storage system
JP6853227B2 (en) Storage system and storage control method
JP7179947B2 (en) Storage system and storage control method
JP7520773B2 (en) STORAGE SYSTEM AND DATA PROCESSING METHOD
US20230350753A1 (en) Storage system and failure handling method
JP7057408B2 (en) Storage system and its control method
US20240176710A1 (en) Storage system and storage control method
US11544005B2 (en) Storage system and processing method
US20240220378A1 (en) Information processing system and information processing method
US20240231707A9 (en) Storage system and storage control method
JP6605762B2 (en) Device for restoring data lost due to storage drive failure
US20140019678A1 (en) Disk subsystem and method for controlling memory access
JP2023096958A (en) Storage system and storage system control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221116

R150 Certificate of patent or registration of utility model

Ref document number: 7179947

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150