JPWO2004104845A1 - Storage system - Google Patents

Storage system Download PDF

Info

Publication number
JPWO2004104845A1
JPWO2004104845A1 JP2004572101A JP2004572101A JPWO2004104845A1 JP WO2004104845 A1 JPWO2004104845 A1 JP WO2004104845A1 JP 2004572101 A JP2004572101 A JP 2004572101A JP 2004572101 A JP2004572101 A JP 2004572101A JP WO2004104845 A1 JPWO2004104845 A1 JP WO2004104845A1
Authority
JP
Japan
Prior art keywords
module
modules
information
storage system
data
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
JP2004572101A
Other languages
Japanese (ja)
Other versions
JP4711688B2 (en
Inventor
荻原 一隆
一隆 荻原
雅寿 田村
雅寿 田村
横畑 徹
徹 横畑
諭史 幾田
諭史 幾田
泰生 野口
泰生 野口
武 理一郎
理一郎 武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004104845A1 publication Critical patent/JPWO2004104845A1/en
Application granted granted Critical
Publication of JP4711688B2 publication Critical patent/JP4711688B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

複数のストレージデバイスに分散してデータを格納し、格納データの冗長性を確保するストレージシステムである。スライスされた複数のスライス領域からなるデータ格納部とそれらスライス領域の管理情報を格納する管理情報格納部を設けたストレージデバイスと、そのストレージデバイスに格納されたデータおよび情報の通信機能を持った通信機能部とからなる複数のモジュールを備えており、それらのモジュールが互いに通信して、スライス領域に格納されたデータを別のモジュールの未使用の、任意のスライス領域に複写し、同一のデータを重複格納する。これにより、ストレージシステムに格納されるデータの安全性が確保される。This is a storage system in which data is distributed to a plurality of storage devices and the redundancy of stored data is ensured. A storage device provided with a data storage unit composed of a plurality of sliced slice areas, a management information storage unit for storing management information of the slice areas, and communication having a communication function for data and information stored in the storage device It has multiple modules consisting of functional units, and these modules communicate with each other to copy the data stored in the slice area to an unused, arbitrary slice area of another module. Duplicate storage. Thereby, the safety of the data stored in the storage system is ensured.

Description

本発明は、複数のストレージデバイスに分散してデータを格納するストレージシステムに関し、特に格納されるデータの冗長性が確保されるストレージシステムに関する。  The present invention relates to a storage system that stores data distributed to a plurality of storage devices, and more particularly to a storage system that ensures the redundancy of stored data.

従来、大容量の情報を処理するシステムでは、複数配置されたハードディスクなどにデータを分散して格納する必要がある場合には、複数のハードディスクなどに並列にアクセスして、データの読み書きの高速化を図る一方、一つのハードディスクが故障してもデータが失われないように冗長性を持たせたストレージシステムが採用されている。このストレージシステムを構成する1つの方法として、RAID(レイド)がある。
RAIDは、データを複数のドライブに分散させて、同時に書き込むことによりアクセス速度の向上を図るストライピング、同一のデータを複数のドライブに書き込むことにより単体のドライブよりも信頼性を向上させるミラーリング、データエラーの検出によるデータ復元など耐故障性のレベルに応じて分類がなされている。今日においては、ストライピングによるアクセス速度を向上させたRAID0から、パリティを付加したうえ、分散させたディスクの何れかが故障してもデータの復元が可能なRAID5までが考案されている。これらのRAIDを用いて具体的なシステムを構成する場合には、システムに要求されるレベルに応じて、選択、または組み合わせを行う。
例えば、RAID1は、外見は1つの仮想ディスクであるが、実際には2つの物理ディスクから構成されており、それぞれの物理ディスクが完全に同じ内容を持つ方式で、ミラーリングと呼ばれる。したがって、仮想ディスクにデータを書き込むときには、2つの物理ディスクに同時に書き込みを行うので、2つの物理ディスクの容量が異なる場合には、容量が小さい物理ディスクに合わせる必要がある。そして、両方のディスクから書き込みが正常に終了した旨の応答が返ってきた場合には、データの書き込み要求元に終了の応答を行い、少なくとも何れか一方から応答が返ってこない場合には、データの書き込み要求元に、エラーの応答を行う。また、物理ディスクの片方が故障した場合には、正常な物理ディスクからデータを読み出して、故障した物理ディスクの代りのディスクに書き込むことにより、データの冗長性が維持される。
また、例えばRAID0+1は、RAID0とRAID1とを組み合わせたものである。RAID0は、同容量の、複数の物理ディスクを、同サイズのスライスに分けるとともに、予め複数の物理ディスクを順序付けし、順々にスライスを割り付けてゆく方式で、データストライピングと呼ばれる。この方式は、データの冗長性は確保されないが、複数の物理ディスクに同時にアクセスすることにより、アクセスタイムを減らし、データの読み書き性能の向上が図れるという特徴を持つ。一方、RAID0+1は、物理ディスクのスライス1つ1つをそれぞれミラーリングさせたものであり、RAID0の特徴とRAID1の特徴とを併有する。
しかしながら、RAID0+1によりストレージシステムを構成する場合には、RAID1による場合と同様に、各種の処理を実行するコントローラが必要であり、格納されたデータをより安全に取り扱うためには、コントローラを二重化するとともに、二重化したコントローラそれぞれから各物理ディスクにアクセスする通信路が必要となるため、ストレージシステムのコストが割高になる。また、物理ディスクの片方が故障した場合には、他の物理ディスクに未使用の領域がたくさんある場合であっても、RAID1の方式上の制約から、その未使用領域を、故障した物理ディスクの代替として使用できないため、予備の物理ディスクが必要になる。
一方、ストレージシステムを管理制御する方式としては、データの読み書きと同じインタフェースによりホストコンピュータ側で行うものと、データの読み書きを行うインタフェースとは全く異なるインタフェースにより、ホストコンピュータに依存せずに行うものとがある。前者は、ホストコンピュータのアプリケーションとストレージ管理制御とを連携させて処理することが可能である反面、ホストコンピュータが起動していないときにはストレージ管理制御が実行できないという問題がある。これに対して、後者は、ホストコンピュータのプラットフォームに依存せずに、独立にストレージ管理制御を行うことができる反面、ホストコンピュータのアプリケーションとストレージ管理制御とを連携させて処理することができないという不便さがある。
そこで、ホストコンピュータとストレージシステム双方にインタフェースを有する、ストレージ管理制御用のサーバを設け、サーバからもストレージ管理制御ができるようにしたシステムが提案されている(特許文献1参照)。
また、ネットワークを介してストレージシステムに格納されたデータにアクセスするクライアントは、ストレージシステムがどの程度の信頼性を持ったものであるかを直接には知ることができない。このため、不測の事態に備えて自らデータのバックアップを行う必要があり、頻繁に更新が必要なデータについては、バックアップも更新周期に合わせて頻繁に行う必要が生じ、わずらわしいという問題がある。
そこで、データに信頼性レベル情報を付与しておくとともに、クライアントがデータを参照または更新する際に、信頼性レベルを変更した場合であっても、変更後の信頼性レベルに応じて、データを格納するストレージ装置を変更できるように、種々の信頼性レベルのストレージ装置を備え、クライアントがデータをバックアップする必要性をなくしたものが提案されている(特許文献2参照)。
しかしながら、特許文献1および特許文献2に開示された発明では、コントローラの二重化とそれに伴う通信路などによるコスト負担、さまざまな容量のストレージデバイスで構成されたストレージシステムにおける活用不能な未使用領域、あるいは予備の物理ディスクの必要性などの問題の解決には不充分である。
したがって、本発明は、ストレージデバイスの使用効率を高めるとともに、コントローラなどの二重化負担を軽減することが可能で、しかも格納されるデータの安全性が確保されるストレージシステムを提供することを目的とする。
『特許文献1 特開2002−268825号公報(段落番号0012〜0021、図1)』
『特許文献2 特開2002−244922号広報(段落番号0012〜0021、図1)』
Conventionally, in systems that process large volumes of information, when it is necessary to distribute and store data on multiple hard disks, etc., data can be read and written faster by accessing multiple hard disks in parallel. On the other hand, a storage system with redundancy is employed so that data is not lost even if one hard disk fails. One method for configuring this storage system is RAID.
RAID distributes data to multiple drives and strips simultaneously to improve access speed, writes the same data to multiple drives, mirroring to improve reliability over a single drive, data error Classification is made according to the level of fault tolerance, such as data restoration by detection. Today, RAID 0 has been devised from RAID 0 in which the access speed by striping is improved to RAID 5 in which parity can be added and data can be restored even if one of the dispersed disks fails. When a specific system is configured using these RAIDs, selection or combination is performed according to the level required for the system.
For example, although the appearance of RAID 1 is one virtual disk, it is actually composed of two physical disks, and each physical disk has completely the same contents, and is called mirroring. Therefore, when data is written to the virtual disk, data is simultaneously written to the two physical disks. Therefore, when the capacities of the two physical disks are different, it is necessary to match the physical disk having a smaller capacity. If a response indicating that the writing has been completed successfully is returned from both disks, an end response is sent to the data write request source, and if no response is returned from at least one of the disks, the data is returned. An error response is sent to the write request source. If one of the physical disks fails, data is read from the normal physical disk and written to the disk instead of the failed physical disk to maintain data redundancy.
For example, RAID 0 + 1 is a combination of RAID 0 and RAID 1. RAID 0 is a method in which a plurality of physical disks of the same capacity are divided into slices of the same size, a plurality of physical disks are ordered in advance, and slices are allocated in order, and is called data striping. Although this method does not ensure data redundancy, it has the characteristics that the access time can be reduced and the data read / write performance can be improved by accessing a plurality of physical disks simultaneously. On the other hand, RAID 0 + 1 is obtained by mirroring each slice of a physical disk, and has both RAID 0 characteristics and RAID 1 characteristics.
However, when a storage system is configured with RAID 0 + 1, a controller that executes various processes is required, as with RAID 1, and in order to handle stored data more safely, the controller is duplicated. In addition, since a communication path for accessing each physical disk from each of the duplicated controllers is required, the cost of the storage system becomes high. In addition, if one of the physical disks fails, even if there are many unused areas on the other physical disks, the unused area is assigned to the failed physical disk due to RAID 1 system restrictions. Since it cannot be used as an alternative, a spare physical disk is required.
On the other hand, the storage system is managed and controlled on the host computer side using the same interface for reading and writing data, and on the host computer independent of the interface for reading and writing data. There is. The former can be processed in cooperation with the host computer application and storage management control, but there is a problem that storage management control cannot be executed when the host computer is not activated. On the other hand, the latter can perform storage management control independently without depending on the platform of the host computer, but has the inconvenience that the application of the host computer and the storage management control cannot be processed in cooperation. There is.
Therefore, a system has been proposed in which a server for storage management control having an interface in both the host computer and the storage system is provided so that storage management control can be performed from the server (see Patent Document 1).
Further, a client accessing data stored in the storage system via a network cannot directly know how reliable the storage system is. For this reason, it is necessary to back up data in preparation for an unexpected situation, and for data that needs to be updated frequently, it is necessary to perform backup frequently in accordance with the update cycle, which is troublesome.
Therefore, the reliability level information is given to the data, and even if the reliability level is changed when the client refers to or updates the data, the data is changed according to the changed reliability level. There has been proposed a storage device having various reliability levels so that a storage device to be stored can be changed, which eliminates the need for a client to back up data (see Patent Document 2).
However, in the inventions disclosed in Patent Document 1 and Patent Document 2, the cost burden due to the duplication of the controller and the accompanying communication path, an unused area that cannot be used in a storage system configured with storage devices of various capacities, or It is not sufficient to solve problems such as the need for a spare physical disk.
SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a storage system that can increase the use efficiency of a storage device, reduce the duplication burden of a controller or the like, and ensure the safety of stored data. .
"Patent Document 1 JP 2002-268825 A (paragraph numbers 0012 to 0021, FIG. 1)"
Patent Document 2 Japanese Laid-Open Patent Publication No. 2002-244922 (paragraph numbers 0012 to 0021, FIG. 1)”

本発明は、データを格納するスライスされた複数のスライス領域を有するデータ格納部およびそれら複数のスライス領域の管理情報を格納する管理情報格納部を有するストレージデバイスと、上記データ格納部に格納するデータおよび上記記管理情報格納部に格納する管理情報を含む情報の通信機能を有する通信機能部とを具備する複数のモジュールを備え、上記データ格納部にデータを分散して格納することにより格納されたデータの冗長性を確保し、ストレージデバイスの使用効率を高め、かつ格納されたデータの安全性を低コストで高めるものである。
これら複数のモジュールは、それぞれの通信機能部により、上記データ格納部に格納するデータおよび上記記管理情報格納部に格納する管理情報を含む情報を互いに通信することができる。また、複数のモジュールのうちの第1のモジュールは、そのモジュールのスライス領域に格納されたデータを第2のモジュールの何れかのスライス領域に複写することもできる。
したがって、それらの通信機能や複写機能を活用することにより、このストレージシステムは、複数のモジュールのうちの少なくとも2つのモジュールのスライス領域それぞれに同一のデータを格納し、同一のデータが格納されたスライス領域のペアからなるセグメントを形成し、それによってデータ格納部に格納されたデータの冗長性を確保することができる。さらに、データの冗長性は、パリティーによりデータを復元可能とし、耐故障性を高めることもできる。
管理情報格納部は、各データ格納部における未使用のスライス領域やセグメントが形成されたスライス領域などの管理情報を持つほか、格納要求を受けたデータを複数のモジュールのスライス領域に亘る、スライス領域を単位としてあらわした論理ボリュームに関する情報も格納することができる。
管理情報格納部の格納された管理情報は、本発明のストレージシステムを管理制御する上で重要であり、複数のモジュールのうちの第1のモジュールの管理情報格納部は、第2のモジュールから、その管理情報格納部に格納された管理情報の更新要求を受けた場合は、第2のモジュールから更新完了要求を受けたときに管理情報を更新し、更新中止要求を受けたときには、その管理情報を、管理情報の更新要求を受ける直前の状態に復元することにより確実に現行維持が図られる。
また、複数のモジュールそれぞれが異常終了したときには自動復旧させず、例えばマニュアルで強制起動を行う強制起動部を設け、その強制起動部を操作者が操作することにより復旧させることもできる。
また、複数のモジュールそれぞれは、それぞれの動作状態を知らせる、ハートビート(「例えば、一定の時間間隔で配列されたパルス信号」を言う。以下同じ)を送出するハートビート送出部が設けられることにより、動作状態を互いに定期的に通知し合い、互いの異常を認識し、異常状態となったモジュールに格納されたデータは他のモジュールに退避させることにより安全性を高めることができる。
また、例えば複数のモジュールそれぞれのスライス領域に格納されたデータの情報を持ち、外部コンピュータからこのストレージシステムへのアクセス要求を一元的に受け付け、そのアクセス要求を対応するモジュールに直接取り次ぐアクセスモジュールを設けることによりアクセス時間を短縮することもできる。
また、複数のモジュールそれぞれに、それぞれの動作状態を知らせるハートビートを送出するハートビート送出部を設けるとともに、ハートビート送出部から送られたハートビートを受信して複数のモジュールそれぞれの動作状態を一元的に管理する状態管理モジュールを設けることにより、モジュールそれぞれが負担する負荷の軽減と何れかのモジュールに異常状態が発生したときの措置の迅速化を図ることもできる。
また、複数のモジュールそれぞれから管理情報を収集し、収集した管理情報に基づいて、格納要求を受けたデータを複数のモジュールのスライス領域に亘る、スライス領域を単位としてあらわした論理ボリュームの情報を再構築するボリューム情報モジュールを設けることにより、ストレージシステムの運用上重要な管理情報の一元化による動作の迅速化と、各モジュールの格納情報管理部が持っている管理情報の二重化による格納されたデータの安全性の一層の向上を図ることもできる。
さらに、本発明のストレージシステムは、ストレージシステムにアクセスする情報処理システムの性質や負荷、データの信頼性レベルに応じて、上記のアクセスモジュール、状態管理モジュール、およびボリューム情報モジュールのうちの何れか、または全てと、上記のデータ格納部および管理情報格納部を有するモジュールとを組み合わせて用いることができる。
本発明の上記の構成により、ストレージデバイスの使用効率が高く、低コストで、格納されたデータの安全性が確保されたストレージシステムを提供することができる。
The present invention provides a data storage unit having a plurality of sliced slice areas for storing data, a storage device having a management information storage unit for storing management information of the plurality of slice areas, and data stored in the data storage unit And a plurality of modules having a communication function unit having a communication function of information including management information stored in the management information storage unit, and stored by distributing and storing data in the data storage unit Data redundancy is ensured, the use efficiency of storage devices is increased, and the safety of stored data is increased at a low cost.
The plurality of modules can communicate with each other the information including the data stored in the data storage unit and the management information stored in the management information storage unit by the respective communication function units. In addition, the first module among the plurality of modules can copy the data stored in the slice area of the module to any slice area of the second module.
Therefore, by utilizing these communication functions and copying functions, this storage system stores the same data in each of the slice areas of at least two modules of the plurality of modules, and the slice in which the same data is stored. A segment composed of a pair of areas can be formed, thereby ensuring the redundancy of the data stored in the data storage unit. Furthermore, the redundancy of data makes it possible to restore the data by parity, and can improve fault tolerance.
The management information storage unit has management information such as unused slice regions and slice regions in which segments are formed in each data storage unit, as well as a slice region in which data that has received a storage request spans the slice regions of multiple modules. It is also possible to store information related to logical volumes expressed in units.
The management information stored in the management information storage unit is important in managing and controlling the storage system of the present invention. The management information storage unit of the first module among the plurality of modules is the second module, When an update request for the management information stored in the management information storage unit is received, the management information is updated when an update completion request is received from the second module, and when an update stop request is received, the management information Is restored to the state immediately before the management information update request is received, so that the current state can be reliably maintained.
In addition, when each of the plurality of modules is abnormally terminated, automatic recovery is not performed, but for example, a forced activation unit that performs manual activation is provided, and the forced activation unit can be restored by operating the operator.
Further, each of the plurality of modules is provided with a heartbeat sending unit that sends out a heartbeat (for example, “pulse signal arranged at a constant time interval”, the same applies hereinafter) that informs each operation state. It is possible to improve safety by periodically notifying each other of the operating state, recognizing each other's abnormality, and saving the data stored in the module in the abnormal state to another module.
Also, for example, an access module is provided that has information on data stored in each slice area of a plurality of modules, accepts access requests to the storage system from an external computer, and directly relays the access requests to the corresponding module. Thus, the access time can be shortened.
In addition, each of the modules is provided with a heartbeat sending unit that sends out a heartbeat that informs each operation state, and the heartbeats sent from the heartbeat sending unit are received to centralize the operation states of the modules. By providing a state management module that manages each of the modules, it is possible to reduce the load of each module and speed up measures when an abnormal state occurs in any of the modules.
In addition, management information is collected from each of the plurality of modules, and based on the collected management information, the data of the storage request is spread over the slice areas of the plurality of modules, and the information of the logical volume that represents the slice area as a unit is reproduced. By providing a volume information module to be built, speeding up operations by centralizing management information important for storage system operation, and storing data safety by duplicating the management information held by the storage information management section of each module It is possible to further improve the performance.
Furthermore, the storage system of the present invention is one of the above access module, state management module, and volume information module depending on the nature and load of the information processing system that accesses the storage system, and the data reliability level. Alternatively, all can be used in combination with a module having the data storage unit and the management information storage unit.
With the above configuration of the present invention, it is possible to provide a storage system in which the use efficiency of storage devices is high, the safety of stored data is ensured at low cost.

図1は、第1の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図2は、本実施形態のストレージシステムにおける4つのストレージデバイスにデータを格納する基本概念を説明する図である。
図3は、第1の実施形態のストレージシステムを示す機能ブロック図である。
図4は、ストレージシステムにおいて、スライス領域に格納されたデータの複写を行なう場合の処理手順の一例を示す図である。
図5は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図6は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図7は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図8は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図9は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図10は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図11は、ストレージシステムが稼動中に解放要求があった場合の作用を示す図である。
図12は、ストレージシステムが稼動中に解放要求があった場合の作用を示す図である。
図13は、ストレージシステムが稼動中に解放要求があった場合の作用を示す図である。
図14は、ストレージシステムの何れかのモジュールが故障した場合の処理手順の一例を示す図である。
図15は、ストレージシステムの何れかのモジュールが故障した場合の処理手順の一例を示す図である。
図16は、ストレージシステムの何れかのモジュールが故障した場合の処理手順の一例を示す図である。
図17は、ストレージシステムの何れかのモジュールを引抜く場合の処理手順の一例を示す図である。
図18は、ストレージシステムの何れかのモジュールを引抜く場合の処理手順の一例を示す図である。
図19は、ストレージシステムの何れかのモジュールを引抜く場合の処理手順の一例を示す図である。
図20は、ストレージシステムの何れかのモジュールを新たなモジュールと交換する場合の処理手順の一例を示す図である。
図21は、ストレージシステムの何れかのモジュールを新たなモジュールと交換する場合の処理手順の一例を示す図である。
図22は、ストレージシステムの何れかのモジュールを新たなモジュールと交換する場合の処理手順の一例を示す図である。
図23は、モジュールに格納されたデータ、および管理情報を更新する場合の処理手順の一例を示す図である。
図24は、モジュールに格納されたデータ、および管理情報を更新する場合の処理手順の一例を示す図である。
図25は、モジュールに格納されたデータ、および管理情報を更新する場合の処理手順の一例を示す図である。
図26は、モジュールA11を代表例として示す図である。
図27は、モジュールA11を代表例として示す図である。
図28は、第2の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図29は、第2の実施形態のストレージシステムを示す機能ブロック図である。
図30は、第3の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図31は、第3の実施形態のストレージシステムを示す機能ブロック図である。
図32は、本実施形態の状態管理モジュールNの機能と処理手順の一例を示す図である。
図33は、本実施形態の状態管理モジュールNの機能と処理手順の一例を示す図である。
図34は、本実施形態の状態管理モジュールNの機能と処理手順の他の例を示す図である。
図35は、図34に示した本実施形態の状態管理モジュールNが、異常の発生したモジュールの動作を強制終了させる機能を有する場合を示す図である。
図36は、図35に示した本実施形態の状態管理モジュールNが、各モジュールに状態情報を送信する機能を有する場合を示す図である。
図37は、本実施形態のボリューム情報モジュールMの一構成例を示す図である。
図38は、モジュール情報部におけるモジュール情報のデータ構造を示す図である。
図39は、論理ボリューム部における論理ボリューム情報のデータ構造を示す図である。
図40は、ボリューム情報モジュールMが有する管理情報更新機能の一例を示す図である。
図41は、ボリューム情報モジュールMが有する管理情報更新機能の一例を示す図である。
図42は、ボリューム情報モジュールMが有する、モジュールに格納されたデータの複写要求機能の一例を示す図である。
図43は、ボリューム情報モジュールMが有する、各モジュールにおける処理を強制終了させる機能の一例を示す図である。
図44は、ボリューム情報モジュールMがデータの格納要求を受けた場合の処理手順の一例を示す図である。
図45は、ボリューム情報モジュールMがデータの格納要求を受けた場合の処理手順の一例を示す図である。
図46は、ボリューム情報モジュールMがデータの格納要求を受けた場合の処理手順の一例を示す図である。
図47は、ボリューム情報モジュールMが論理ボリュームの解放要求を受けた場合の処理手順の一例を示す図である。
図48は、ボリューム情報モジュールMが論理ボリュームの解放要求を受けた場合の処理手順の一例を示す図である。
図49は、ボリューム情報モジュールMが論理ボリュームの解放要求を受けた場合の処理手順の一例を示す図である。
図50は、所定のモジュールが故障した場合の処理手順の一例を示す図である。
図51は、所定のモジュールが故障した場合の処理手順の一例を示す図である。
図52は、所定のモジュールが故障した場合の処理手順の一例を示す図である。
図53は、所定のモジュールが故障した場合の処理手順の一例を示す図である。
図54は、所定のモジュールの引抜を行う場合の処理手順の一例を示す図である。
図55は、所定のモジュールの引抜を行う場合の処理手順の一例を示す図である。
図56は、所定のモジュールの引抜を行う場合の処理手順の一例を示す図である。
図57は、モジュールの交換を行う場合の処理手順の一例を示す図である。
図58は、モジュールの交換を行う場合の処理手順の一例を示す図である。
図59は、モジュールの交換を行う場合の処理手順の一例を示す図である。
図60は、モジュールの交換を行う場合の処理手順の一例を示す図である。
図61は、第4の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図62は、第4の実施形態のストレージシステムを示す機能ブロック図である。
FIG. 1 is a diagram illustrating a configuration example of an information processing system including the storage system according to the first embodiment.
FIG. 2 is a diagram for explaining the basic concept of storing data in four storage devices in the storage system of this embodiment.
FIG. 3 is a functional block diagram illustrating the storage system according to the first embodiment.
FIG. 4 is a diagram showing an example of a processing procedure when copying data stored in the slice area in the storage system.
FIG. 5 is a diagram showing an example of a processing procedure when there is a data storage request from the outside to the storage system.
FIG. 6 is a diagram illustrating an example of a processing procedure when there is a data storage request from the outside to the storage system.
FIG. 7 is a diagram showing an example of a processing procedure when there is a data storage request from the outside to the storage system.
FIG. 8 is a diagram showing an example of a processing procedure when there is a data storage request from the outside to the storage system.
FIG. 9 is a diagram illustrating an example of a processing procedure when there is a data storage request from the outside to the storage system.
FIG. 10 is a diagram illustrating an example of a processing procedure when there is a data storage request from the outside to the storage system.
FIG. 11 is a diagram illustrating an operation when a release request is issued while the storage system is operating.
FIG. 12 is a diagram illustrating an operation when a release request is issued while the storage system is operating.
FIG. 13 is a diagram illustrating an operation when a release request is issued while the storage system is operating.
FIG. 14 is a diagram illustrating an example of a processing procedure when any module of the storage system fails.
FIG. 15 is a diagram illustrating an example of a processing procedure when any module of the storage system fails.
FIG. 16 is a diagram illustrating an example of a processing procedure when any module in the storage system fails.
FIG. 17 is a diagram illustrating an example of a processing procedure for extracting any module of the storage system.
FIG. 18 is a diagram showing an example of a processing procedure for extracting any module of the storage system.
FIG. 19 is a diagram illustrating an example of a processing procedure for extracting any module of the storage system.
FIG. 20 is a diagram illustrating an example of a processing procedure for replacing any module in the storage system with a new module.
FIG. 21 is a diagram illustrating an example of a processing procedure for replacing any module in the storage system with a new module.
FIG. 22 is a diagram illustrating an example of a processing procedure when replacing any module of the storage system with a new module.
FIG. 23 is a diagram illustrating an example of a processing procedure when data stored in a module and management information are updated.
FIG. 24 is a diagram illustrating an example of a processing procedure when data stored in a module and management information are updated.
FIG. 25 is a diagram illustrating an example of a processing procedure when data stored in a module and management information are updated.
FIG. 26 is a diagram illustrating the module A11 as a representative example.
FIG. 27 is a diagram illustrating the module A11 as a representative example.
FIG. 28 is a diagram illustrating a configuration example of an information processing system including the storage system according to the second embodiment.
FIG. 29 is a functional block diagram showing the storage system of the second embodiment.
FIG. 30 is a diagram illustrating a configuration example of an information processing system including the storage system according to the third embodiment.
FIG. 31 is a functional block diagram showing the storage system of the third embodiment.
FIG. 32 is a diagram illustrating an example of functions and processing procedures of the state management module N of the present embodiment.
FIG. 33 is a diagram illustrating an example of functions and processing procedures of the state management module N of the present embodiment.
FIG. 34 is a diagram illustrating another example of functions and processing procedures of the state management module N of the present embodiment.
FIG. 35 is a diagram showing a case where the state management module N of the present embodiment shown in FIG. 34 has a function for forcibly terminating the operation of a module in which an abnormality has occurred.
FIG. 36 is a diagram illustrating a case where the state management module N of the present embodiment illustrated in FIG. 35 has a function of transmitting state information to each module.
FIG. 37 is a diagram illustrating a configuration example of the volume information module M of the present embodiment.
FIG. 38 is a diagram showing a data structure of module information in the module information section.
FIG. 39 is a diagram showing a data structure of logical volume information in the logical volume unit.
FIG. 40 is a diagram showing an example of the management information update function that the volume information module M has.
FIG. 41 is a diagram showing an example of the management information update function that the volume information module M has.
FIG. 42 is a diagram illustrating an example of a copy request function for data stored in a module included in the volume information module M.
FIG. 43 is a diagram illustrating an example of a function of the volume information module M that forcibly terminates processing in each module.
FIG. 44 is a diagram showing an example of a processing procedure when the volume information module M receives a data storage request.
FIG. 45 is a diagram showing an example of a processing procedure when the volume information module M receives a data storage request.
FIG. 46 is a diagram illustrating an example of a processing procedure when the volume information module M receives a data storage request.
FIG. 47 is a diagram showing an example of a processing procedure when the volume information module M receives a logical volume release request.
FIG. 48 is a diagram showing an example of a processing procedure when the volume information module M receives a logical volume release request.
FIG. 49 is a diagram showing an example of a processing procedure when the volume information module M receives a logical volume release request.
FIG. 50 is a diagram illustrating an example of a processing procedure when a predetermined module fails.
FIG. 51 is a diagram illustrating an example of a processing procedure when a predetermined module fails.
FIG. 52 is a diagram illustrating an example of a processing procedure when a predetermined module fails.
FIG. 53 is a diagram illustrating an example of a processing procedure when a predetermined module fails.
FIG. 54 is a diagram illustrating an example of a processing procedure for extracting a predetermined module.
FIG. 55 is a diagram illustrating an example of a processing procedure for extracting a predetermined module.
FIG. 56 is a diagram illustrating an example of a processing procedure when a predetermined module is pulled out.
FIG. 57 is a diagram showing an example of a processing procedure when modules are exchanged.
FIG. 58 is a diagram showing an example of a processing procedure when modules are exchanged.
FIG. 59 is a diagram illustrating an example of a processing procedure when modules are replaced.
FIG. 60 is a diagram illustrating an example of a processing procedure when modules are exchanged.
FIG. 61 is a diagram illustrating a configuration example of an information processing system including the storage system according to the fourth embodiment.
FIG. 62 is a functional block diagram showing the storage system of the fourth embodiment.

(第1の実施形態)
図1は、本発明の第1の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図1において、ストレージシステム1は、ストレージデバイス21を有するサーバ(「パーソナルコンピュータ又はワークステーション」。以下同じ。)からなるモジュールA11、ストレージデバイス22を有するサーバからなるモジュールB12、ストレージデバイス23を有するサーバからなるモジュールC13、ストレージデバイス24を有するサーバからなるモジュールD14を備えており、これらの4つのモジュールそれぞれは、通信回線4を介してネットワーク2に接続されている。また、ネットワーク2には2つのコンピュータ3が接続されており、2つのコンピュータ3それぞれは、ネットワーク2を介してストレージシステム1にアクセスして、データの格納、追加、削除、変更等の要求を行うことができるように構成されている。なお、各ストレージデバイス21〜24は、ここではハードディスクにより構成されているが、これに限定されない。
ストレージシステム1を構成する4つのモジュール、すなわちモジュールA11、モジュールB12、モジュールC13、モジュールD14は、それぞれのサーバによって各種処理が制御されるとともに、サーバが有する通信機能により、ネットワーク2との間はもとより、通信回線を介して接続されたモジュール相互間でデータを含む情報の送受が可能な構成を有する。したがって、各モジュール11〜14それぞれのストレージデバイス21〜24に格納されているデータを複写することにより、モジュールを異にするストレージデバイスに同一データを重複させて格納することができるので、ストレージシステム1に格納されるデータの冗長性を確保することができる。
図2は、本実施形態のストレージシステムにおける4つのストレージデバイスにデータを格納する基本概念を説明するための図である。
図2に示すように、本実施形態の各モジュールを構成する4つのストレージデバイス21〜24それぞれは、容量が必ずしも同じではないが、各一定容量のデータを格納する複数の小領域S(番号S11〜S15、番号S21〜S26、番号S31〜S35、番号S41〜S45)に区分されており、この小領域Sをそれぞれスライス領域15と称する。ストレージシステムに対してデータの格納要求が発生した場合には、そのデータは、スライス領域15を単位として格納される。格納要求を受けたデータの、複数のモジュールのスライス領域に亘る1つのまとまりを、論理ボリュームと称する。
例えば、図2に示す構成では、右上からの斜め斜線で示すスライス領域S11、S21、およびS23にて1つの論理ボリュームを構成している。
また、本実施形態のストレージシステムにおいては、各スライス領域15を単位として異なるモジュール、あるいは同一のモジュールに格納されたデータと同一のデータが、その格納されたスライス領域とは異なる、任意のモジュールの、未使用のスライス領域15のうちの何れかのスライス領域にも格納される。
これにより、格納されるデータの冗長性を確保しつつ、各ストレージデバイスを効率的に使用することができる。
また、同一のデータが格納されたスライス領域15の対を、セグメント17と称する。このセグメント17は、データの格納要求を受けたモジュールが、スライス領域15に格納されたデータを、通信機能を用いて、別のモジュールの未使用のスライス領域15に複写することによって構築することができる。
例えば、右上からの斜め斜線で示すスライス領域S11は、左上からの斜め斜線で示すスライス領域S22とセグメント17を構成し、右上からの斜め斜線で示すスライス領域S21は、左上からの斜め斜線で示すスライス領域S42とセグメント17を構成し、右上からの斜め斜線で示すスライス領域S23は、左上からの斜め斜線で示すスライス領域S32とセグメント17を構成する。
ここで、本実施形態では、モジュールの数が4つであるが、この数には限定されない。また、各モジュールは、通信回線4を介してネットワークに接続されるように構成されているが、直接ネットワークに接続してもよい。さらに、スライス領域を単位としてセグメントを形成し、データを二重化することにより、ストレージデバイスに格納されるデータの冗長性を確保しているが、パリティチェックによるデータエラーの検出や、データエラーの検出と訂正との併用などにより、格納されるデータの冗長性を確保することにしてもよい。
図3は、第1の実施形態のストレージシステムを示す機能ブロック図である。
図3に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14を有し、それぞれのモジュール11〜14は、サーバが有する通信機能部25〜28により、サーバに接続されたネットワーク2を介して、外部とデータの送受を行うことができる。また、サーバ相互間も1対1の通信回線4で結ばれており、通信機能部25〜28により、モジュール相互間で通信を行うこともできる。なお、ここでは、サーバ相互間を1対1の通信回線4で結んでいるが、必ずしも1対1の通信回線4で結ぶ必要はなく、モジュール相互間で通信ができれば、任意の接続形態を用いることができる。
モジュールA11、モジュールB12、モジュールC13、モジュールD14それぞれのストレージデバイス21〜24は、データを格納するスライスされた複数のスライス領域15を有するデータ格納部8と、複数のスライス領域15の管理情報を格納する管理情報格納部18とを有する。各管理情報格納部18に格納された管理情報は、例えば各スライス領域(S11〜S15、S21〜S26、S31〜S35、S41〜S45)、論理ボリュームの名称Ln、論理ボリューム上のデータの配置位置n、および同じセグメントに属する別のモジュールのスライス領域の順に配置されている。
本実施形態のストレージシステムにおいては、L1とL2という名称の2つの論理ボリュームがある。論理ボリュームL1は、セグメント数が3であり、データの配置位置の順番に、スライス領域S11、S23、S43にデータが格納され、またスライス領域S11とS22、S23とS32、S43とS24とによりセグメントが構成されている。また、論理ボリュームL2は、セグメント数が2であり、データの配置位置の順番に、スライス領域S14、S43に格納され、またスライス領域S14とS33、S43とS24とによりセグメントが構成されている。
ここで、スライス領域15と管理情報格納部18とはストレージデバイス上の異なる領域に配置されているが、配置される領域を混在させることもできる。
このように、スライスされることにより小容量に区分されたスライス領域15毎にデータを分散させて格納するので、各モジュールのストレージデバイスそれぞれの容量が互いに異なる場合であっても、それぞれのストレージデバイスの使用効率を高めることができる。また、モジュール相互に通信する機能を有し、それぞれのモジュールに格納されたデータを他のモジュールに複写する機能を有するので、格納されるデータの二重化による冗長性が確保される。
以下には、ストレージシステムにおいて、データを格納する場合の作用について説明する。
図4は、ストレージシステムにおいて、スライス領域に格納されたデータの複写を行なう場合の処理手順の一例を示す図である。
図4において、各モジュール11〜14それぞれのストレージデバイス21〜24には、書き込み要求のあったデータを格納するスライス領域15と、格納されたデータが属する論理ボリューム名Ln、論理ボリューム上のデータの配置位置n、および同じセグメントに属する別のモジュールのスライス領域15を、各スライス領域(S11〜S15、S21〜S26、S31〜S35、S41〜S45)毎に記録した管理情報を格納する管理情報格納部18を備えている。
今、何らかに理由により、モジュールA11のスライス領域S14に格納されたデータをモジュールD14のスライス領域S41に複写する必要が生じた場合には、モジュールA11は、通信機能部25を起動させて、モジュール14の通信機能部とのチャンネルをつなぎ、S41が未使用であるか否かを照会する。モジュールD14から、S41が未使用である旨の返信を受けると、モジュールA11は、番号S14に格納されたデータをモジュール14に送信する。
図5〜図10は、ストレージシステムに外部からデータの格納要求があった場合の処理手順の一例を示す図である。
図5〜図10に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14を備え、各モジュールそれぞれは、通信機能部25〜28を有し、ストレージデバイス21〜24には複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを備えているが、便宜上データ格納部8の表示は省略されている。
図5において、モジュールA11は、スライス領域の番号S11、S14にデータが格納され、スライス領域S12、S13、S15は未使用である。モジュールB12は、スライス領域S21、S22、S23、S24にデータが格納され、スライス領域S25、S26は未使用である。また、モジュールC13は、スライス領域S32、S33にデータが格納され、スライス領域S31、S34は未使用であり、モジュールD14は、スライス領域S41、S42にデータが格納され、スライス領域S41、S44、S45は未使用である。
ここで、モジュールA11に、セグメント数が4の論理ボリュームの格納要求があった場合を例として説明する。
論理ボリュームの割り付けには、さまざまなルールが考えられるが、ここでは、なるべく自前のスライス領域に優先的に格納するというルールの下で論理ボリュームの割り付けを行うものとし、論理ボリュームの割り付を行なったモジュールは、その都度、他のモジュールに依頼して、空きのスライス領域を確保してデータを複写することによりセグメントを構成するものとする。
図6に示すように、モジュールA11は、スライス領域S12、S13、S15が未使用であることから、それらのスライス領域に論理ボリューム名L3のデータを割り付ける。次に、それらのスライス領域とセグメントを構成する他のモジュールのスライス領域を探すため、先ず、モジュールB12に、未使用のスライス領域の照会と、未使用のスライス領域の確保要求を行なう。
図7に示すように、モジュールB12は、スライス領域S25、S26という2つの未使用のスライス領域を有するので、それらを論理モジュール名L3のセグメント1およびセグメント2として割り付ける旨をモジュールA11に返信する。モジュールA11は、番号S12に格納されたデータをスライス領域S25に複写し、スライス領域S13に格納されたデータをスライス領域S26に複写する。そして、スライス領域S12とS25、およびスライス領域S13とS26とによりセグメントを構成する。
モジュールA11は、これだけではセグメントを構成するスライス領域が不足するので、図8に示すように、モジュールC13に対しても同様な照会と要求を行う。モジュールC13は、スライス領域S31、S34が未使用であるが、モジュールA11からスライス領域を1つだけ要求されていることから、スライス領域S31のみを確保する。そして、図9に示すように、モジュールC13は、スライス領域S31にセグメント3を割り付けることをモジュールA11に返信する。モジュールA11は、スライス領域S15に格納されたデータをスライス領域S31に複写し、スライス領域S15とS31とがセグメントを構成する。
次に、モジュールA11は、自前だけでは割り付け要求されたセグメント数のスライス領域を確保することができなかったので、モジュールB12に対して、論理ボリュームの割り付けを依頼する。しかし、モジュールB12にはすでに未使用のスライス領域がなくなっているので、論理ボリュームの割り付け要求はモジュールC13に移動する。
モジュールC13は、未使用のスライス領域S34があるので、それを論理ボリューム名L3として割り付ける。そして、モジュールD14に対して、セグメントを構築するための、未使用のスライス領域の照会と未使用のスライス領域の確保要求を行なう。モジュールD14には、3つの未使用のスライス領域があるので、そのうちの1つであるスライス領域S41をセグメント4とする旨をモジュールC13に返信する。
モジュールC13は、スライス領域S34に格納されたデータをスライス領域S41に複写し、図10に示すように、スライス領域S34とS41とでセグメントを構成する。これにより、要求されたセグメント数の論理ボリュームが確保されたので、モジュールD14は、割り付け完了を要求元に返信する。
ここで、この要求元への返信は、モジュールD14が行なう必要は必ずしもなく、モジュールA11がモジュールD14から完了通知を受けた後に、要求元に返信するようにしてもよい。
このような手順をとることにより、各モジュールのストレージデバイス使用効率を高めつつ、格納されるデータの二重化による冗長性が確保される。
なお、ここでは、要求されたサイズの論理ボリュームを確保することができた場合について説明したが、割り付けるスライス領域が不足し、論理ボリュームの割り付けに失敗した場合には、その段階で、論理ボリュームの割り付け要求を受けたモジュール、あるいは照会を受けたモジュール等が要求元に割り付け中止要求を返信することもできる。それにより、途中まで確保されていたスライス領域を解放し、他の論理ボリュームに対応することができる。また、ここでは格納要求について説明したが、追加、削除、変更要求についても同様に行うことができる。
次に、格納されたデータをモジュール単位で移動させる場合について説明する。
図11〜図13は、ストレージシステムが稼動中に解放要求があった場合の作用を示す図である。
図11〜図13に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14を備え、各モジュール11〜14それぞれは、通信機能部25〜28を有し、ストレージデバイス21〜24には複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを備えているが、便宜上データ格納部の表示は省略されている。
図11において、モジュールB12は、論理ボリューム名L2の解放要求を受ける。すると、モジュールB12は、図12に示すように、他のモジュールA11、モジュールC13、モジュールD14に対して、論理ボリューム名L2の解放命令を通知する。通知を受けた各モジュールは、自己のモジュール内の管理情報格納部18に格納された情報から、論理ボリューム名L2が割り付けられたスライス領域の番号を調べる。そして、図13に示すように、割り付けられているスライス領域S14、S24、S33、43からデータを削除するとともに、管理情報格納部18の当該情報も削除し、モジュールA11、モジュールC13、モジュールD14は解放完了をモジュールB12に通知し、モジュールB12は、要求元に、要求完了の応答を返す。
次に、図14から図16は、ストレージシステムの何れかのモジュールが故障した場合の処理手順の一例を示す図である。
図14〜図16に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14を備え、各モジュール11〜14それぞれは、通信機能部25〜28を有し、ストレージデバイス21〜24には複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを備えているが、便宜上データ格納部8の表示は省略されている。
図14において、モジュールB12が故障すると、他のモジュールA11、モジュールC13、モジュールD14は、何らかの手段でその故障を認識する。他のモジュールA11、モジュールC13、モジュールD14は、それぞれの管理情報格納部18に格納されている情報に基づいて、モジュールB12に属するスライス領域とセグメントを構成しているスライス領域S11、S32、S42、S44を検知する。そして、それらのスライス領域それぞれと新たにセグメントを構成するスライス領域を確保する必要があるので、図15に示すように、モジュールA11は、モジュールC13から、モジュール13は、モジュールD14から、モジュールD14は、モジュールA11からそれぞれ未使用のスライス領域を確保する。そして、スライス領域S11はスライス領域S31とセグメントを構成し、スライス領域S32は、スライス領域S44とセグメントを構成し、スライス領域番号S42は、スライス領域S12と、スライス領域番号S43はスライス領域S13とそれぞれセグメントを構成する。
次に、図16に示すように、モジュールA11、モジュールC13、モジュールD14は、セグメントを構成した相手のモジュールに対して、それぞれのスライス領域S11、S32、S42、S44に格納されたデータを複写する。それぞれのデータの複写が完了したら、それぞれの管理情報格納部に格納される管理情報を確定する。
このような手順をとることにより、各モジュールに格納されたデータの冗長性を失うことなく、所定のモジュールの解放要求に対応することができる。
次に、図17から図19は、ストレージシステムの何れかのモジュールを引抜く場合の処理手順の一例を示す図である。
図17から図19に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14を備え、各モジュール11〜14それぞれは、通信機能部25〜28を有し、ストレージデバイス21〜24には複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを備えているが、便宜上データ格納部8の表示は省略されている。
図17に示すように、モジュールD14は、引抜き要求を受けると、モジュールD14のスライス領域S42、S43に格納されているデータの移動先であって、スライス領域S42、S43とそれぞれセグメントを構成している、スライス領域S21、S24と新たにセグメントを構成するスライス領域を探す必要がある。したがって、モジュールD14のスライス領域の番号S42、S43とそれぞれセグメントを構成している番号S21、S24が属するモジュールB12は、データの移動先としては不向きである。
図18に示すように、番号S42、S43に格納されたデータは、それぞれモジュールA11とモジュールC31に移動することとし、それぞれ空いている番号S31とS12に、および番号S42、S43とそれぞれセグメントを構成していたスライス領域S21、S24に、スライス領域S42、S43に格納されているデータを複写する。
複写が終了したら、図19に示すように、モジュールD14は、モジュールA11、モジュールC13、及びモジュールB12にセグメントの構成が変更になったことを通知し、モジュールD14は、引抜きが可能になる。なお、モジュールA11、モジュールB12およびモジュールC13の管理情報格納部18は、格納された管理情報を変更する。
このような手順をとることにより、モジュールに格納されたデータの冗長性を失うことなく、当該モジュールの開放要求に対応することができる。
次に、図20〜図22は、ストレージシステムの何れかのモジュールを新たなモジュールに交換する場合の処理手順の一例を示す図である。
ここでは、モジュールD14を引き抜いた後に、新たにモジュールE55を追加し、そのモジュールE55に、モジュールC13に格納されているデータを移動させることにより行うものとする。モジュールD14を引き抜く作用については、すでに、図17〜図19に基づいて説明した作用と同じであることから、重複する説明は省略する。
図20〜図22に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14のうちの、モジュールD14が引き抜かれ、新たなモジュールE55が追加されている。各モジュール11〜13、55それぞれは、通信機能部25〜28を有し、ストレージデバイス21〜23、240には複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを備えているが、便宜上データ格納部8の表示は省略されている。
図20に示すように、新たなモジュールE55の追加作業が完了し、たとえばモジュールC13が、モジュールE55との交換命令を受けたものとする。
図21に示すように、交換命令を受けたモジュールC13は、モジュールE55に、データを移動させるための、3つのスライス領域を確保可能か確認する。そして、スライス領域の確保可能が確認されると、図22に示すように、スライス領域S31、332、S33に格納されたデータをスライス領域S51、S52、S53にそれぞれ複写する。複写がすべて完了すると、スライス領域S31、332、S33とセグメントを構成しているスライス領域が属するモジュールA11、モジュールB12の管理情報格納部18に格納された情報を更新する。これにより、モジュールC13に格納されたデータはすべてモジュールE55に移動したので、モジュールC13を引き抜き、交換が完了する。
このような手順をとることにより、格納されたデータの冗長性を失うことなくモジュールの交換を行うことができる。
次に、管理情報格納部に格納される管理情報の更新について説明する。
図23〜図25は、モジュールに格納された管理情報を更新する場合の処理手順の一例を示す図である。
図23〜図25には、説明を簡略化するため、ストレージシステムのうちのモジュールA11およびモジュールB12が、代表として示されている。
各モジュールは、相互間が1対1の通信回線で結ばれており、通信機能部25、26を介して相互に通信を行うことができる。モジュールA11、モジュールB12それぞれのストレージデバイス21、22には、書き込み要求のあったデータを格納する複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを有し、管理情報格納部18には、格納されたデータが属する論理ボリューム名Ln、論理ボリューム上のデータの配置位置n、および同じセグメントに属する別のモジュールのスライス領域15を、各スライス領域(S11〜S15、S21〜S26)毎に記録した管理情報のほかに、格納された管理情報が更新処理中(△印)、更新済み(○印)、をあらわす更新処理情報が付加されている。また、管理情報を更新処理中に不測の事態ば発生した場合に対処するため、更新処理に入る前の管理情報を一時的に格納しておく処理前情報記憶領域19が設けられている。
ここでは、モジュールA11、およびモジュールB12のスライス領域S15、S25が更新処理中のため、△印が付されている。
なお、処理前情報記憶領域19は、各ストレージデバイス21、22のスライス領域15、あるいは管理情報格納部18と混在させてもよいし、独立の領域を設けてもよい。
モジュールA11、およびモジュールB12は、更新完了要求を受けると、図24に示すように、管理情報を確定させるとともに、管理情報格納部18の番号S15、S25の更新処理情報を更新済み(○印)に変更する。
一方、モジュールA11、およびモジュールB12が更新処理中に、更新中止要求を受けると、図25に示すように、処理前情報記憶領域19に一時的に格納しておいた管理情報を複写して、更新前の状態に復元し、管理情報格納部18のスライス領域S15、S25の更新処理情報を更新済み(○印)に変更する。
ここでは、1つの更新処理を行う場合について示したが、○印や△印に代えて識別子を用いることにより、複数の更新処理を同時に並行してこともできる。
次に、各モジュールの状態情報の授受について説明する。
図26および図27は、モジュールA11を代表例として示す図である。
図26に示すモジュールA11は、通信機能部25とストレージデバイス21とを備えるほか、モジュールを強制的に起動させるスイッチ30を備えている。また、ストレージデバイス21は、複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを有するほか、モジュールA11が動作を終了したときの状態情報を格納する状態情報格納領域20を有する。状態情報格納領域20には、正常に動作が終了したときには「normal情報」がストレージデバイスされ、たとえば運用中の電源断など不慮の事故によって動作を終了したときには「abnormal情報」がストレージデバイスされる。モジュールA11は、状態情報格納領域20に格納されている情報を参照して起動開始するか否かを判断するように構成されている。この場合は、スイッチ30を操作することによりモジュールを起動させることができるので、不慮の事故が起こった場合であっても対応することができる。
図27に示すモジュールA11は、図26に示したほか、ストレージデバイス21に、モジュールA11の状態情報を、通信機能部25を介して他のモジュールに送信するハートビート送出部31を有している。このハートビート送出部31は、モジュールを起動させたときにモジュール内に問題がなければ正常な状態であることを知らせ、モジュール起動時および通常運用時に異常状態が発生したら異常であることを知らせる役割を果たす。したがって、モジュールA11から通知を受けた他のモジュールは、格納されたデータや情報の早期復旧を図ることができる。
ここで、ハートビート送出部31は、状態情報を定期的に送出することにしてもよい。そのように、状態情報を定期的に送出すれば、正常状態が継続していることを他のモジュールに通知することができる上、一定時間以上、状態情報が受信されないときは、そのモジュールに異常状態が発生したと考えることもできるので、迅速な対応ができる。また、自身の通信機能部25の故障や通信回線4の障害により他のモジュールと通信が行えなくなった場合には、自身の終了処理を行うことにより、ストレージシステムに格納されたデータ全体の安全性を高めることもできる。
(第2の実施形態)
本実施形態のストレージシステムは、第1の実施形態のストレージシステムに較べて、ストレージシステムへのアクセス要求を受けたときに、対応するスライス領域に直接アクセスするアクセスモジュールを備えている点は相違するが、それ以外の点は共通する。したがって、相違するアクセスモジュールを中心に以下に説明する。
図28は、第2の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図28に示すストレージシステム1は、ストレージデバイス21を有するサーバ(パーソナルコンピュータ又はワークステーション。以下同じ。)からなるモジュールA11、ストレージデバイス22を有するサーバからなるモジュールB12、ストレージデバイス23を有するサーバからなるモジュールC13、ストレージデバイス24を有するサーバからなるモジュールD14、およびストレージシステムへのアクセス要求を受けたときに、対応するモジュールのスライス領域に直接アクセスできるような情報を有するパーソナルコンピュータ(以下「PC」と略称する。)からなる2つのアクセスモジュールA41、A42を備えている。4つのモジュールそれぞれは、通信回線4を介してアクセスモジュールに接続され、アクセスモジュールは、ネットワーク2に接続されている。したがって、ネットワーク2に接続された2つのコンピュータ3それぞれは、先ず何れかのアクセスモジュールにアクセスし、そのアクセスモジュールを経由して、各モジュールにアクセスできるように構成されている。
図29は、第2の実施形態のストレージシステムを示す機能ブロック図である。
本実施形態のストレージシステムは、PCからなるアクセスモジュールA41、A42を備える点を除けば、図3で説明した第1の実施形態のストレージシステムと共通する。したがって、同一の構成要素には同一の符号を付し、重複する説明を省略する。
図29に示すストレージシステムは、モジュールA11、モジュールB12、モジュールC13、モジュールD14を有し、それぞれのモジュール11〜14は、サーバが有する通信機能部25〜28により、PCからなる2つのアクセスモジュールの双方に接続されている。また、各モジュール相互間は、1対1の通信回線4で結ばれており、通信機能部25〜28により、各モジュール11〜14相互間で通信を行うことができる。ネットワーク2に接続された外部のコンピュータは、2つのアクセスモジュールの何れか一方にアクセスすることにより、所定のモジュールに直接アクセスすることができる。
モジュールA11、モジュールB12、モジュールC13、モジュールD14それぞれのストレージデバイス21〜24には、書き込み要求のあったデータを格納する複数のスライス領域15からなるデータ格納部8と、格納されたデータが属する論理ボリューム名Ln、論理ボリューム上のデータの配置位置n、および同じセグメントに属する別のモジュールのスライス領域15を、各スライス領域(S11〜S15、S21〜S26、S31〜S35、S41〜S45)毎に記録した管理情報を格納する管理情報格納部18とを備えている。
各アクセスモジュールは、論理ボリューム名、論理ボリューム各位置のデータが格納されているモジュールおよびスライス領域、そのスライス領域とセグメントを構成しているスライス領域、および各モジュールにおける未使用のスライス領域などの情報からなるテーブルを備えている。したがって、スライス領域に格納されたデータの追加、変更、削除要求や、未使用のスライス領域15へのデータの格納要求などがあったときに、それらの要求に対応するモジュールを検索して、アクセス要求を直接対応するモジュールに取り次ぐことができる。この場合、アクセスモジュールは、ストレージシステムに格納された全ての情報からなるテーブルを持つようにしてもよいし、一部の情報を保持しておき、外部からの要求を満たす情報が保持されていない場合に、不要な情報を消去し、保持していない情報を各モジュールに照会し、テーブルとして保持する情報を書き換えることにより、新たなテーブルを構築することにしてもよい。
このように、テーブルを有するアクセスモジュールを備え、アクセスモジュールが外部からのアクセス要求を受け、テーブルを参照することによりアクセスモジュールが所定のモジュールに直接アクセスするので、外部から個別にアクセスする場合に較べてアクセス時間を短縮することができる。また、2つのアクセスモジュールは、ここではそれぞれが独立に運用されているが、たとえばデュープレックス構成にすることにより安全性を高めることができる。
(第3の実施形態)
本発明の第3の実施形態は、第1の実施形態に較べて、ストレージシステムが、モジュールそれぞれの状態を管理する状態管理モジュールと、各モジュールに分散して格納されたデータの論理ボリューム毎の情報を再構築するボリューム情報モジュールとを備え、ストレージシステムの動作がボリューム情報モジュール主導で行われる点が相違する。しかし、それ以外の点は共通するので、相違点を中心に以下に説明する。
図30は、第3の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図30において、ストレージシステム1は、ストレージデバイスを有するPCからなる4つのモジュールG31、モジュールH32、モジュールI33、モジュールJ34を備えており、4つのモジュールそれぞれは、通信回線4を介してネットワーク2に接続されている。また、各モジュールそれぞれの状態を管理するとともに、各モジュールに分散して格納されたデータの論理ボリューム毎の情報を再構築し、その情報に基づいて各モジュールに指令を発出する、PCからなる2つの管理制御モジュール61、62を備え、2つの管理制御モジュール61、62は、それぞれネットワーク2に接続されている。
2つの管理制御モジュール61、62は、本発明の状態管理モジュールと、ボリューム情報モジュールとの双方の機能を有し、2つの管理制御モジュール61、62のうちの一方が他方の動作をチェックし、一方にトラブルが発生しても他方により処理を継続するデュアル方式を構成してもよく、同時に稼動させて、一方を主、他方を緊急時のバックアップとするデュープレックス方式を構成してもよい。管理制御モジュールがそのような構成をとることにより、ストレージシステムの管理制御機能の安全性を高めることができる。
ここで、本実施形態では、状態管理モジュールおよびボリューム情報モジュール双方の機能を管理制御モジュールとして一体化しているが、必ずしもそのような構成をとる必要はなく、それぞれ独立のモジュールとして構成することもできる。
以下では、説明の便宜上、状態管理モジュールNとボリューム情報モジュールMとを独立のモジュールとして構成された機能ブロックに基づいて説明する。
図31は、第3の実施形態のストレージシステムを示す機能ブロック図である。
図31に示すストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34を有し、それぞれのモジュール31〜34は、PCが有する通信機能部25〜28により、PCに接続されたネットワーク2を介して、外部のコンピュータとデータの送受を行うことができる。また、PC相互間も1対1の通信回線4で結ばれており、PCが有する通信機能部25〜28により、モジュール31〜34相互間も通信を行うこともできる。なお、ここでは、PC相互間を1対1の通信回線4で結んでいるが、必ずしも1対1の通信回線4で結ぶ必要はなく、モジュール相互間で通信ができれば、任意のトポロジを用いることができる。
モジュールG31、モジュールH32、モジュールI33、モジュールJ34それぞれのストレージデバイスには、格納要求があったデータを格納する複数のスライス領域15からなるデータ格納部8と、格納されたデータが属する論理ボリューム名Ln、論理ボリューム上のデータの配置位置n、および同じセグメントに属する別のモジュールのスライス領域15を、各スライス領域(S11〜S15、S21〜S26、S31〜S35、S41〜S45)毎に記録した管理情報を格納する管理情報格納部18とを備えているが、ここではデータ格納部8の表示を省略してある。
また、本実施形態のストレージシステムは、各モジュールの状態を監視し、強制的に処理を中止させるなどの機能を有する状態管理モジュールN63と、各モジュールから管理情報を収集し、モジュールの状態を把握したり、論理ボリューム毎の情報を一元的に把握するボリューム情報モジュールM64とを備えている。
状態管理モジュールN63およびボリューム情報モジュールM64は、それぞれ通信機能部29を有し、それぞれがネットワーク2に接続され、そのネットワーク2を介して各モジュール31〜34と通信することができるように構成されている。また、状態管理モジュールN63およびボリューム情報モジュールM64は、相互間においても通信が可能である。したがって、ボリューム情報モジュールM64が状態管理モジュールN63に、例えば特定のモジュールの処理を終了させるように依頼したり、状態管理モジュールN63から受信した各モジュールの情報に応じて、ストレージシステム全体の動作を終了させることもできる。
次に、状態管理モジュールN63とボリューム情報モジュールM64それぞれの機能の詳細と、それぞれの作用について説明する。
図32および図33は、本実施形態の状態管理モジュールNの機能と処理手順の一例を示す図である。
図32において、ストレージシステムは、モジュールG11、モジュールH12、モジュールI13と、状態管理モジュールNとを備えている。
ここで、状態管理モジュールNは、各モジュールとは独立に設置されているが、いずれかのモジュールのPCに、その機能を分担させることにしてもよい。
各モジュールは、それぞれのストレージデバイスに、各モジュールの状態情報(例えば、一定間隔でパルス信号からなるハートビートを送出し、そのハートビートが受信されるときは正常状態をあらわし、受信されないときは異常状態をあらわすもの。)を、通信機能部を介して他のモジュール、および状態管理モジュールに送信するハートビート送出部21a、22a,23a,24aを有している。このハートビート送出部21a、22a,23a,24aは、モジュールを起動させたときにモジュール内に問題がなければ正常な状態であることを知らせ、モジュール起動時および通常運用時に異常状態が発生したら異常を知らせることができる。したがって、何れかのハートビート送出部から通知を受けた他のモジュールは、格納されたデータや情報の早期復旧を図ることができる。
状態管理モジュールN63は、各モジュール31〜34のハートビート送出部21a、22a,23a,24aから送られた状態情報を受信するハートビート受信部63aと、受信した状態情報を管理するモジュール状態管理表とを備えている。モジュール状態管理表63bには、各モジュールが正常であるか、異常であるかをそれぞれ、たとえば○印と×印とにより表示するようになっている。
モジュールG31、モジュールH32、モジュールI33は、それぞれの状態情報を状態管理モジュールN63に送信する。状態管理モジュールN63は、それぞれのモジュールから送られた状態情報を受信し、モジュール状態管理表63bに表示する。
ここで、モジュール状態管理表63bに表示する情報は、消失しても、再び各モジュールから取得することができるので、必ずしもPCの2次ストレージデバイスに設定する必要はなく、1次ストレージデバイスに設定してもよい。
次に、図33に示すように、例えばモジュールI33が、自己のモジュール内に異常状態を検出し、状態管理モジュールN63にその異常状態を通知すると、状態管理モジュールN63は、モジュールI33に関するモジュール状態管理表63bの表示を×印に変更する。
図34は、本実施形態の状態管理モジュールNの機能と処理手順の他の例を示す図である。
図34に示すように、各モジュールは一定の時間間隔で状態情報(ハートビート)を送出するように構成されている。また、状態管理モジュールNは、送られてきた状態情報の時刻を記録する時刻監視部63cを備え、モジュール状態管理表63bに最新の状態情報を受信した時刻が表示される。
モジュールIから一定時間、状態情報が送信されないので、状態管理モジュールN63は、時刻監視部63cによりモジュールI33の状態を○印から?印に変更する。この?印は、状態情報が送られてこないため、異常が発生していると推定されることを表す。
図35は、図34に示した本実施形態の状態管理モジュールNが、異常の発生したモジュールの動作を強制終了させる機能を有する場合を示す図である。
図35に示すように、状態管理モジュールN63は、該当するモジュールに強制終了命令を送出する強制終了命令送出部63dを有し、各モジュール31〜34は、強制終了命令送出部63dから送られてきた強制終了命令を受信し、実行中の処理を終了させる機能を備えた強制終了命令受信部21b,22b,23b,24bを有する。
ここで、状態管理モジュールN63についても強制終了命令受信部を具備させることにしてもよい。
このように、状態管理モジュールN63に強制終了命令送出機能を持たせることにより、各モジュールの異常を認識したときには速やかにそのモジュールにおける処理を終了させ、ストレージシステムから一時的に排除することにより、正常なモジュールにより処理を継続させることができる。
図36は、図35に示した本実施形態の状態管理モジュールNが、各モジュールに状態情報を送信する機能を有する場合を示す図である。
図36に示すように、状態管理モジュールN63は、状態管理モジュールN63が把握している状態情報を各モジュール31〜34に送信するモジュール状態送信部63eを有し、各モジュール31〜34は、モジュール状態送信部63eから送信された状態情報を受信するモジュール状態受信部21c、22c、23c、24cを有する。
ここで、モジュール状態送信部63eは、異常が発生したと認められるモジュールにのみ状態情報を送信することにしてもよいし、正常なものも含めて、すべてのモジュールに対して状態情報を送信することにしてもよい。その場合、各モジュールは該当する状態情報のみを受信する。
各モジュール31〜34は、モジュール状態送信部63eから送信された状態情報と、自身が保持する状態情報とを対比した結果、矛盾が生じているか、あるいは自身の処理を終了させたほうがよいと判断した場合には、処理を終了させる。
このように、自身が保持する状態情報と、状態管理モジュールNが保持する状態情報とを対比し、状態管理モジュールNが管理する情報を優先させるようにすれば、矛盾のない情報に基づいてストレージシステム全体を安定的に運用することができる。
図37は、本実施形態のボリューム情報モジュールMの一構成例を示す図である。
図37において、ストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ボリューム情報モジュールM64とを備え、それらのモジュール31〜34、64は、それぞれ通信機能部25〜29を有する。
ボリューム情報モジュールM64は、ネットワーク2に対する通信路を有するとともに、モジュールG31、モジュールH32、モジュールI33、モジュールJ34それぞれに対して通信路を有する。また、モジュールG31、モジュールH32、モジュールI33、モジュールJ34は、相互に通信回線4で接続されている。
モジュール31〜34それぞれは、ストレージデバイス21〜24に複数のスライス領域15からなるデータ格納部8と、管理情報格納部18とを備え、管理情報格納部18に格納された管理情報をボリューム情報モジュールM64に送信する機能を有するが、便宜上データ格納部8の表示は省略されている。
ボリューム情報モジュールM64は、通信機能部29を介してモジュール31〜34それぞれから、管理情報格納部18に格納された管理情報を収集する管理情報収集部64aと、収集した管理情報から、モジュールの状態を示すモジュール情報を構築するモジュール情報部64b、および論理ボリュームの各位置が格納されたスライス領域15を示す論理ボリューム毎の情報を再構築する論理ボリューム部64cを備えている。
ここで、ボリューム情報モジュールM64が再構築したモジュール情報と論理ボリューム情報は、各モジュール31〜34の管理情報に基づいて構築されたものであり、消失しても再構築が可能であることから、メインストレージデバイスに保持すればよく、必ずしも2次ストレージデバイスに保存する必要はない。
図38は、モジュール情報部におけるモジュール情報のデータ構造を示す図である。
図38に示すようにモジュール情報は、モジュールの状態を管理する第1のファイル110と未使用のスライス領域を管理する第2のファイル120とを有し、第1のファイルおよび第2のファイルはともに、各モジュールの管理情報ファイル130とリンクされている。管理情報ファイル130は、次の管理情報へのポインタ131と、スライス領域ごとの情報133とを持つ。第1のファイル110は、次の管理情報へのポインタ111と、モジュール名112と、モジュール状態113と、モジュールが有する管理情報のスライス領域へのポインタ114と、未使用のスライス領域へのポインタ115とを持ち、ボリューム情報モジュールM64と通信可能なモジュール数分のエントリ100を有する。また、第2のファイル120は、次の管理情報へのポインタ121と、次の未使用のスライス領域へのポインタ122と、スライス領域ごとの情報123とを持つ。
図39は、論理ボリューム部における論理ボリューム情報のデータ構造を示す図である。
図39に示すように論理ボリューム情報は、論理ボリューム名ごとの論理ボリューム(セグメント数)を管理する第3のファイル210と、セグメントを構成するスライス領域の番号を管理する第4のファイル220とを有する。
第3のファイル210は、次の論理ボリュームへのポインタ211と、論理ボリューム名212と、セグメント数213と、セグメントへのポインタ214と、検索を容易にするためのツリーへのポインタ215とを持ち、ボリューム情報モジュールM64と通信可能なモジュール数分のエントリ200を有する。第4のファイル220は、次のセグメントへのポインタ221と、セグメント通番222と、セグメントを構成する2つのスライス領域223、224とを持つ。そして、ツリーは、第4のファイル220のセグメントのスライス領域223、224へのポインタを持っている。
図40および図41は、ボリューム情報モジュールM64が有する管理情報更新機能の一例を示す図である。
図40に示すように、ボリューム情報モジュールM64は、各モジュールに対して管理情報の更新要求を送出する更新要求部64dを備えている。
更新要求部64dは、通信機能部29を介して、各モジュール31〜34に管理情報の更新要求を送出することができる。
図41は、図40に示したボリューム情報モジュールM64が有する機能に加えて、各モジュールに対して管理情報の更新完了情報の送信を要求する更新完了要求部64eと、管理情報の更新中止を要求する更新中止要求部64fとを備えている。
ボリューム情報モジュールM64のこのような機能は、複数のモジュールの管理情報の更新を同時に行おうとしたときに、対象モジュールから異常が検出された場合や、ボリューム情報モジュールM64が、管理情報を更新中に、更新を中止しなければならない事態に陥ったときに有効である。
図42は、ボリューム情報モジュールM64が有する、モジュールに格納されたデータの複写要求機能の一例を示す図である。
図42に示すように、ボリューム情報モジュールM64は、図40および図41に示した更新要求部64d、更新完了要求部64e、および更新中止要求部64fの加えて、モジュールのスライス領域に格納されたデータを、他のモジュールのスライス領域に複写するよう命ずる複写要求部64gと、その複写を中止させる複写中止要求部64hとを備えている。
図43は、ボリューム情報モジュールM64が有する、各モジュールにおける処理を強制終了させる機能の一例を示す図である。
図43に示すように、ボリューム情報モジュールM64は、図42に示した各種の機能に加えて、特定のモジュール、または全モジュールにおける処理を強制的に終了させる強制終了命令部64iを備えている。したがって、異常が検地されたモジュールにおける処理を強制終了させたり、あるいは複数のモジュールで異常が検知された場合などにストレージシステム全体の動作を停止させることができる。
次に、ボリューム情報モジュールM64によって行われる各種処理手順について説明する。
図44〜図46は、ボリューム情報モジュールM64がデータの格納要求を受けた場合の処理手順の一例を示す図である。
図44〜図46において、ストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ボリューム情報モジュールM64とを備え、それらのモジュール31〜34、64は、それぞれ通信機能部25〜29を有する。
図44に示すように、本実施形態のストレージシステムでは、ボリューム情報モジュールM64が、外部からセグメント数が4の論理ボリュームからなるデータの割り当て要求を受ける。
図45に示すように、割り当て要求を受けたボリューム情報モジュールM64は、異なるモジュールに属するスライス領域相互がセグメントを構成するように未使用のスライス領域を候補として割り当て、その割り当てたスライス領域の属するモジュールに、管理情報の更新要求を送る。
図46に示すように、各モジュール31〜34は、ボリューム情報モジュールM64によって割り当てられたスライス領域15にデータを割り付けるとともに、管理情報の更新要求に基づいて、管理情報格納部18に格納された管理情報を更新する。その結果、モジュールG31のスライス領域の番号S12とS13、モジュールH32のスライス領域の番号S25、モジュールI33のスライス領域の番号S31とS34に、モジュールJ34のスライス領域の番号S41、S43、S44、S45に論理ボリュームL3が割り付けられる。また、論理ボリュームL3は、(S12、S31)、(S25、S41)、(S13、S44)、(S34、S45)というセグメントが構成される。
このように、ボリューム情報モジュールM64が、要求された論理ボリュームの割付を行うので、ボリューム情報モジュールM64のプログラムを変更すれば割付ルールを比較的容易に変更できる。
図47〜図49は、ボリューム情報モジュールM64が論理ボリュームの解放要求を受けた場合の処理手順の一例を示す図である。
図47〜図49において、ストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ボリューム情報モジュールM64とを備え、それらのモジュール31〜34、64は、それぞれ通信機能部25〜29を有する。
図47において、ボリューム情報モジュールM64が外部から論理ボリュームL3(セグメント数1)の解放要求を受ける。
図48に示すように、ボリューム情報モジュールM64は、論理ボリューム部64cが有する論理ボリューム情報に基づいて、論理ボリュームL3に属するスライス領域の番号を検索する。検索の結果、モジュールG31のスライス領域の番号S12と、モジュールI33のスライス領域の番号S31がL3に属しているので、モジュールG31とモジュールI33に対して管理情報の更新要求を送信する。
図49に示すように、管理情報の更新要求を受けたモジュールG31とモジュールI33は、番号S12とS31それぞれのデータを消去するとともに、管理情報を更新する。
このように、ボリューム情報モジュールM64の論理ボリューム部64cが論理ボリューム情報を持っているので、必要なモジュールに対してのみ更新要求を送信すればよい。
図50〜図53は、所定のモジュールが故障した場合の処理手順の一例を示す図である。
図50〜図53において、ストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ボリューム情報モジュールM64とを備え、それらのモジュール31〜34、64は、それぞれ通信機能部25〜29を有する。
図50において、モジュールI33が故障し、ボリューム情報モジュールM64がそれを認識したものとする。
図51において、ボリューム情報モジュールM64は、モジュールI33の管理情報から、スライス領域S32、S33にデータが格納されていることがわかるので、故障により失われた2つのスライス領域を他のモジュールから確保する。そのとき、ボリューム情報モジュールM64は、異なるモジュールに属するスライス領域相互でセグメントが構成されるように、未使用のスライス領域から選別する。ここでは、スライス領域S32の代わりにスライス領域S12を、スライス領域S33の代わりにスライス領域S41をそれぞれ選んだ。そこで、ボリューム情報モジュールM64は、モジュールG31に対してスライス領域S12の確保を、モジュールJ34に対して番号S41の確保を要求する。
図52において、スライス領域S12と、スライス領域S41が確保されると、ボリューム情報モジュールM64は、スライス領域S32とセグメントを構成するスライス領域S23に対し、スライス領域S23に格納されたデータをスライス領域S12に複写し、スライス領域S33とセグメントを構成するスライス領域S14に対して、スライス領域S14に格納されたデータをスライス領域S41に複写する命令を出す。
図53に示すように、データの複写が完了したら、ボリューム情報モジュールM64は、モジュールG31とモジュールJ34に管理情報の更新要求を行う。
このように、ボリューム情報を一元的に保持するボリューム情報モジュールM64が、故障したモジュールのデータの復元処理を一元的に行うことにより、データの冗長性を迅速に回復することが可能となる。
図54〜図56は、所定のモジュールの引抜を行う場合の処理手順の一例を示す図である。
図54〜図56において、ストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ボリューム情報モジュールM64とを備え、それらのモジュール31〜34、64は、それぞれ通信機能部25〜29を有する。
図54において、ボリューム情報モジュールM64は、外部からモジュールI33の引き抜き要求を受ける。ここでは、スライス領域S12とスライス領域S41とを確保するためモジュールG31とモジュールJ34に対して確保要求を行う。
図55に示すように、モジュールI33に格納されたデータの退避先のスライス領域が確保できたら、ボリューム情報モジュールM64は、モジュールI33のスライス領域S33に格納されたデータをモジュールJ34のS41に複写し、モジュールH32のスライス領域S23に格納されたデータをモジュールG31のスライス領域S12に複写するよう命令する。
ここで、モジュールH32のS23に格納されたデータをモジュールG31のスライス領域S12に複写するのは、ボリューム情報モジュールM64は、セグメントを構成するスライス領域の番号情報を持っており、スライス領域S32とスライス領域S23がセグメントを構成し、同一データが格納されている事実を知っているからである。このような手順をとることにより、引き抜きデータ退避の負荷の偏りを少なくすることができる。
図56に示すように、データの複写が完了したら、ボリューム情報モジュールM64は、管理情報の更新要求を行い、関係する管理情報を確定した後、モジュールI33を引き抜く。
図57〜図60は、モジュールの交換を行う場合の処理手順の一例を示す図である。
図57〜図60に示す処理手順は、モジュールIの引抜を行った後、モジュールKを追加し、モジュールJとモジュールKとを交換する場合の処理手順の一例を示す図である。
図57〜図60において、ストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ボリューム情報モジュールM64とを備え、それらのモジュール31〜34、64は、それぞれ通信機能部25〜29を有する。
図57に示すように、ボリューム情報モジュールM64は、モジュールJ34とモジュールK35との交換要求を受けると、図58に示すように、ボリューム情報モジュールM64は、モジュールK35にスライス領域の確保要求を行う。ここでは、モジュールJ34にデータが格納された3つのスライス領域が確保できればよい。3つのスライス領域が確保できたことが確認されたら、図59に示すように、ボリューム情報モジュールM64は、モジュールJ34に対して格納されたデータの複写要求を出す。
ここでは、ストレージシステム全体の負荷の軽減を図るため、セグメントを構成するモジュールからも分担して複写を行う。
図60に示すように、データの複写が完了したら、ボリューム情報モジュールM64は、モジュールG31、モジュールH32、モジュールK35それぞれの管理情報の更新要求を出し、更新が完了したら、モジュールJ34を引き抜き、交換を終了する。
(第4の実施形態)
第4の実施形態は、第3の実施形態に較べて、ストレージシステムが、各モジュールに分散して格納されたデータのボリューム情報を再構築するボリューム情報モジュールと、第2の実施形態の図29の説明で述べたアクセスモジュールとを備える点が相違する。しかし、それ以外の点は共通するため、これらの相違点について以下に説明する。
図61は、第4の実施形態のストレージシステムを含む情報処理システムの一構成例を示す図である。
図61において、ストレージシステム1は、ストレージデバイス21〜24を有するPCからなる4つのモジュールG31、モジュールH32、モジュールI33、モジュールJ34と、ストレージシステム1へのアクセス要求を受けたときに、対応するスライス領域に直接アクセスするPCからなる2つのアクセスモジュールA41、B42とを備えており、4つのモジュール31〜34それぞれは、2つのアクセスモジュールA41、B42それぞれを介してネットワーク2に接続されている。また、各モジュール31〜34に分散して格納されたデータの論理ボリューム情報を再構築し、その情報に基づいて各モジュールに指令を発出するPCからなるボリューム情報モジュールM64を備え、ボリューム情報モジュールM64は、それぞれネットワーク2に接続されている。2つのアクセスモジュールA41、B42それぞれは、外部のコンピュータ3からのアクセスを受け、関係のモジュール31〜34に直接アクセスすることができるほか、ネットワーク2を介してボリューム情報モジュールM64の論理ボリューム情報部64cにアクセスすることにより、論理ボリューム情報を参照することができる。
図62は、第4の実施形態のストレージシステムを示す機能ブロック図である。
本実施形態のストレージシステムは、状態管理モジュールを有しない点、2つのアクセスモジュールを備える点を除外すれば、第3の実施形態で説明したものと同じである。また、アクセスモジュールは、第2の実施形態で説明したものと同じである。したがって、同一の構成要素には同一の符号を付し、重複する説明は省略する。
図62 に示すストレージシステムは、モジュールG31、モジュールH32、モジュールI33、モジュールJ34と、2つのアクセスモジュールA41、B42と、各モジュールから管理情報を収集し、モジュール情報や論理ボリューム情報を一元的に把握するボリューム情報モジュールM64とを備えている。
2つのアクセスモジュールA41、B42それぞれは、外部のコンピュータ3からのアクセス要求を受け、ネットワークを介してボリューム情報モジュールM64から、モジュール情報や論理ボリューム情報を参照し、そのアクセス要求を対応するモジュールに直接取り次ぐことができる。したがって、アクセスモジュールは、個別のモジュールにアクセスして情報を収集する必要がない上、一部の情報を保持していれば足りるので、個別のモジュールにアクセスする通信回線の負荷を軽減することができる。また、本実施形態では、2つのアクセスモジュールA41、B42がデュープレックス構成をとっているので、外部からアクセスモジュールA41、B42にアクセスする際の負荷の偏りが生じてもその負荷の偏りを吸収したり、外部からのアクセスする際の安全性を高めることができる。
(First embodiment)
FIG. 1 is a diagram showing a configuration example of an information processing system including a storage system according to the first embodiment of this invention.
In FIG. 1, the storage system 1 includes a module A <b> 11 including a server having a storage device 21 (“personal computer or workstation”; the same applies hereinafter), a module B <b> 12 including a server having a storage device 22, and a server having a storage device 23. And a module D14 including a server having a storage device 24. Each of these four modules is connected to the network 2 via the communication line 4. Also, two computers 3 are connected to the network 2, and each of the two computers 3 accesses the storage system 1 via the network 2 and makes a request for storage, addition, deletion, change, etc. of data. It is configured to be able to. Each of the storage devices 21 to 24 is configured by a hard disk here, but is not limited thereto.
The four modules constituting the storage system 1, that is, the module A 11, the module B 12, the module C 13, and the module D 14, are controlled by the respective servers, and not only between the network 2 but the network 2 due to the communication function of the servers. In addition, it has a configuration capable of sending and receiving information including data between modules connected via a communication line. Therefore, by copying the data stored in the storage devices 21 to 24 of the modules 11 to 14, the same data can be stored in duplicate in the storage devices with different modules. The redundancy of the data stored in can be ensured.
FIG. 2 is a diagram for explaining the basic concept of storing data in four storage devices in the storage system of this embodiment.
As shown in FIG. 2, each of the four storage devices 21 to 24 constituting each module of the present embodiment does not necessarily have the same capacity, but a plurality of small areas S (numbers S11) that store data of a certain capacity. To S15, numbers S21 to S26, numbers S31 to S35, and numbers S41 to S45), and the small areas S are referred to as slice areas 15, respectively. When a data storage request is issued to the storage system, the data is stored in units of slice areas 15. A group of data for which a storage request has been received, across slice areas of a plurality of modules, is referred to as a logical volume.
For example, in the configuration shown in FIG. 2, one logical volume is configured by slice areas S11, S21, and S23 indicated by oblique diagonal lines from the upper right.
Further, in the storage system of this embodiment, different modules in units of each slice area 15 or the same data as the data stored in the same module is stored in any module different from the stored slice area. , And stored in any one of the unused slice areas 15.
Thus, each storage device can be used efficiently while ensuring the redundancy of the stored data.
A pair of slice areas 15 in which the same data is stored is referred to as a segment 17. This segment 17 can be constructed by a module that has received a data storage request by copying the data stored in the slice area 15 to an unused slice area 15 of another module using the communication function. it can.
For example, the slice region S11 indicated by the oblique diagonal line from the upper right constitutes the segment 17 and the slice region S22 indicated by the oblique oblique line from the upper left, and the slice region S21 indicated by the oblique oblique line from the upper right is indicated by the oblique oblique line from the upper left. A slice region S23 that constitutes the slice region S42 and the segment 17 and is indicated by the oblique diagonal line from the upper right constitutes a slice region S32 and the segment 17 that is indicated by the oblique oblique line from the upper left.
Here, although the number of modules is four in this embodiment, it is not limited to this number. Each module is configured to be connected to the network via the communication line 4, but may be directly connected to the network. Furthermore, by forming a segment in units of slice areas and duplicating data, the redundancy of the data stored in the storage device is ensured, but data error detection by parity check and data error detection Redundancy of stored data may be ensured by using it together with correction.
FIG. 3 is a functional block diagram illustrating the storage system according to the first embodiment.
The storage system illustrated in FIG. 3 includes a module A11, a module B12, a module C13, and a module D14. Each of the modules 11 to 14 has a network 2 connected to the server by communication function units 25 to 28 included in the server. The data can be transmitted / received to / from the outside. The servers are also connected by a one-to-one communication line 4, and communication can be performed between modules by the communication function units 25 to 28. Here, the servers are connected by a one-to-one communication line 4, but it is not always necessary to connect the servers by a one-to-one communication line 4, and any connection form can be used as long as communication is possible between modules. be able to.
The storage devices 21 to 24 of each of the module A11, the module B12, the module C13, and the module D14 store the data storage unit 8 having a plurality of slice areas 15 for storing data and management information for the plurality of slice areas 15. Management information storage unit 18. The management information stored in each management information storage unit 18 includes, for example, each slice area (S11 to S15, S21 to S26, S31 to S35, S41 to S45), a logical volume name Ln, and an arrangement position of data on the logical volume. n and slice regions of other modules belonging to the same segment are arranged in this order.
In the storage system of this embodiment, there are two logical volumes named L1 and L2. The logical volume L1 has three segments, the data is stored in the slice areas S11, S23, and S43 in the order of the data arrangement positions, and the segment is formed by the slice areas S11 and S22, S23 and S32, and S43 and S24. Is configured. The logical volume L2 has two segments and is stored in the slice areas S14 and S43 in the order of the data arrangement positions, and the slice areas S14 and S33 and S43 and S24 constitute a segment.
Here, the slice area 15 and the management information storage unit 18 are arranged in different areas on the storage device, but the arranged areas can also be mixed.
As described above, since data is distributed and stored for each slice area 15 divided into small capacities by slicing, even if the capacities of the storage devices of each module are different from each other, the respective storage devices Can improve the efficiency of use. In addition, since the module has a function of communicating with each other and has a function of copying data stored in each module to another module, redundancy is ensured by duplication of stored data.
Hereinafter, an operation when data is stored in the storage system will be described.
FIG. 4 is a diagram showing an example of a processing procedure when copying data stored in the slice area in the storage system.
In FIG. 4, the storage devices 21 to 24 of the respective modules 11 to 14 include a slice area 15 for storing data requested to be written, the logical volume name Ln to which the stored data belongs, and the data on the logical volume. Management information storage for storing the management information recorded for each slice area (S11 to S15, S21 to S26, S31 to S35, S41 to S45) of the slice area 15 of another module belonging to the same segment as the arrangement position n A portion 18 is provided.
Now, for some reason, when it becomes necessary to copy the data stored in the slice area S14 of the module A11 to the slice area S41 of the module D14, the module A11 activates the communication function unit 25, The channel with the communication function unit of the module 14 is connected, and an inquiry is made as to whether or not S41 is unused. When receiving a reply from module D14 indicating that S41 is not used, module A11 transmits the data stored in number S14 to module 14.
FIG. 5 to FIG. 10 are diagrams illustrating an example of a processing procedure when there is a data storage request from the outside to the storage system.
The storage system shown in FIGS. 5 to 10 includes a module A11, a module B12, a module C13, and a module D14. Each module has communication function units 25 to 28, and the storage devices 21 to 24 have a plurality of slices. Although the data storage unit 8 including the area 15 and the management information storage unit 18 are provided, the display of the data storage unit 8 is omitted for convenience.
In FIG. 5, the module A11 stores data in slice area numbers S11 and S14, and the slice areas S12, S13, and S15 are unused. In the module B12, data is stored in the slice areas S21, S22, S23, and S24, and the slice areas S25 and S26 are unused. The module C13 stores data in the slice areas S32 and S33, the slice areas S31 and S34 are unused, and the module D14 stores data in the slice areas S41 and S42, and the slice areas S41, S44, and S45. Is unused.
Here, a case will be described as an example where the module A11 has a storage request for a logical volume with four segments.
Various rules can be considered for logical volume allocation. Here, logical volumes are allocated under the rule of preferentially storing them in their own slice area as much as possible. Each module requests a different module to configure a segment by securing an empty slice area and copying data.
As shown in FIG. 6, since the slice areas S12, S13, and S15 are unused, the module A11 allocates data of the logical volume name L3 to these slice areas. Next, in order to search for slice areas of other modules constituting the slice area and the segment, first, the module B12 is inquired about an unused slice area and a request for securing an unused slice area.
As shown in FIG. 7, since the module B12 has two unused slice areas, slice areas S25 and S26, it returns to the module A11 that they are allocated as the segment 1 and the segment 2 of the logical module name L3. Module A11 copies the data stored in number S12 to slice area S25, and copies the data stored in slice area S13 to slice area S26. A segment is configured by the slice areas S12 and S25 and the slice areas S13 and S26.
Since the module A11 does not have enough slice areas that constitute a segment, only the module A11 makes a similar inquiry and request to the module C13 as shown in FIG. The module C13 does not use the slice areas S31 and S34, but only one slice area is requested from the module A11, so only the slice area S31 is secured. Then, as illustrated in FIG. 9, the module C13 returns to the module A11 that the segment 3 is allocated to the slice area S31. The module A11 copies the data stored in the slice area S15 to the slice area S31, and the slice areas S15 and S31 constitute a segment.
Next, since the module A11 could not secure the slice area for the number of segments requested for allocation by itself, the module A11 requests the module B12 to allocate a logical volume. However, since there is no longer any unused slice area in module B12, the logical volume allocation request moves to module C13.
Since the module C13 has an unused slice area S34, it is assigned as the logical volume name L3. Then, the module D14 is inquired about an unused slice area and requests to secure an unused slice area to construct a segment. Since module D14 has three unused slice areas, it returns to module C13 that slice area S41, which is one of them, is segment 4.
The module C13 copies the data stored in the slice area S34 to the slice area S41, and configures a segment by the slice areas S34 and S41 as shown in FIG. As a result, the logical volume of the requested number of segments is secured, and the module D14 returns the completion of allocation to the request source.
Here, the return to the request source is not necessarily performed by the module D14, and may be returned to the request source after the module A11 receives the completion notification from the module D14.
By taking such a procedure, redundancy is ensured by duplication of stored data while increasing the storage device use efficiency of each module.
Although the case where a logical volume of the requested size could be secured has been described here, if allocation of a logical volume fails due to insufficient slice area to be allocated, at that stage The module that has received the allocation request, the module that has received the inquiry, or the like can return an allocation stop request to the request source. As a result, the slice area that has been secured halfway can be released to correspond to another logical volume. Although the storage request has been described here, the addition, deletion, and change requests can be performed in the same manner.
Next, a case where stored data is moved in module units will be described.
FIG. 11 to FIG. 13 are diagrams showing the operation when a release request is issued while the storage system is operating.
The storage system shown in FIGS. 11 to 13 includes a module A11, a module B12, a module C13, and a module D14. Each of the modules 11 to 14 includes communication function units 25 to 28. The storage devices 21 to 24 include Although a data storage unit 8 including a plurality of slice areas 15 and a management information storage unit 18 are provided, the display of the data storage unit is omitted for convenience.
In FIG. 11, the module B12 receives a release request for the logical volume name L2. Then, the module B12 notifies the release instruction of the logical volume name L2 to the other modules A11, C13, and D14 as shown in FIG. Each module that has received the notification checks the number of the slice area to which the logical volume name L2 is assigned from the information stored in the management information storage unit 18 in its own module. Then, as shown in FIG. 13, the data is deleted from the allocated slice areas S14, S24, S33, 43, and the information in the management information storage unit 18 is also deleted, so that the module A11, the module C13, and the module D14 The release completion is notified to the module B12, and the module B12 returns a request completion response to the request source.
Next, FIG. 14 to FIG. 16 are diagrams showing an example of a processing procedure when any module of the storage system fails.
The storage system shown in FIGS. 14 to 16 includes a module A11, a module B12, a module C13, and a module D14. Each of the modules 11 to 14 has communication function units 25 to 28, and the storage devices 21 to 24 include Although a data storage unit 8 including a plurality of slice areas 15 and a management information storage unit 18 are provided, the display of the data storage unit 8 is omitted for convenience.
In FIG. 14, when the module B12 fails, the other modules A11, C13, and D14 recognize the failure by some means. The other modules A11, C13, and D14 are based on the information stored in the management information storage unit 18, and the slice areas S11, S32, S42, and the slice areas that belong to the module B12 and the segments. S44 is detected. Then, since it is necessary to secure a slice area that newly constitutes a segment with each of these slice areas, as shown in FIG. 15, module A11 is from module C13, module 13 is from module D14, and module D14 is , An unused slice area is secured from each module A11. The slice area S11 constitutes a segment with the slice area S31, the slice area S32 constitutes a segment with the slice area S44, the slice area number S42 becomes the slice area S12, and the slice area number S43 becomes the slice area S13. Configure the segment.
Next, as shown in FIG. 16, the module A11, the module C13, and the module D14 copy the data stored in the respective slice areas S11, S32, S42, and S44 to the counterpart module that constitutes the segment. . When copying of each data is completed, the management information stored in each management information storage unit is determined.
By taking such a procedure, it is possible to respond to a predetermined module release request without losing the redundancy of the data stored in each module.
Next, FIG. 17 to FIG. 19 are diagrams showing an example of a processing procedure in the case of extracting any module of the storage system.
The storage system illustrated in FIGS. 17 to 19 includes a module A11, a module B12, a module C13, and a module D14. Each of the modules 11 to 14 includes communication function units 25 to 28, and the storage devices 21 to 24 include Although a data storage unit 8 including a plurality of slice areas 15 and a management information storage unit 18 are provided, the display of the data storage unit 8 is omitted for convenience.
As shown in FIG. 17, when the module D14 receives the extraction request, the module D14 is a destination of data stored in the slice areas S42 and S43 of the module D14, and configures a segment with each of the slice areas S42 and S43. It is necessary to search for the slice areas S21 and S24 and a slice area newly constituting a segment. Therefore, the module B12 to which the numbers S21 and S24 constituting the segments and the numbers S42 and S43 of the slice area of the module D14 belong, respectively, is not suitable as a data movement destination.
As shown in FIG. 18, the data stored in the numbers S42 and S43 are moved to the modules A11 and C31, respectively, and the segments are respectively formed in the free numbers S31 and S12 and the numbers S42 and S43. The data stored in the slice areas S42 and S43 is copied to the slice areas S21 and S24.
When copying is completed, as shown in FIG. 19, module D14 notifies module A11, module C13, and module B12 that the segment configuration has been changed, and module D14 can be pulled out. Note that the management information storage unit 18 of the module A11, the module B12, and the module C13 changes the stored management information.
By taking such a procedure, it is possible to respond to the release request of the module without losing the redundancy of the data stored in the module.
Next, FIGS. 20 to 22 are diagrams illustrating an example of a processing procedure in the case where any module of the storage system is replaced with a new module.
Here, after the module D14 is pulled out, a new module E55 is added, and data stored in the module C13 is moved to the module E55. The action of pulling out the module D14 is already the same as the action described with reference to FIGS.
In the storage systems shown in FIGS. 20 to 22, the module D14 out of the module A11, the module B12, the module C13, and the module D14 is pulled out and a new module E55 is added. Each of the modules 11 to 13 and 55 includes communication function units 25 to 28, and the storage devices 21 to 23 and 240 include a data storage unit 8 including a plurality of slice areas 15 and a management information storage unit 18. However, the display of the data storage unit 8 is omitted for convenience.
As illustrated in FIG. 20, it is assumed that the addition work of the new module E55 is completed, and for example, the module C13 receives an exchange command for the module E55.
As illustrated in FIG. 21, the module C13 that has received the exchange command confirms whether the three slice areas for moving data can be secured in the module E55. When it is confirmed that the slice area can be secured, as shown in FIG. 22, the data stored in the slice areas S31, 332, and S33 are copied to the slice areas S51, S52, and S53, respectively. When the copying is completed, the information stored in the management information storage unit 18 of the modules A11 and B12 to which the slice areas constituting the segments and the slice areas S31, 332, and S33 belong is updated. As a result, all the data stored in the module C13 has moved to the module E55, so that the module C13 is pulled out and the exchange is completed.
By taking such a procedure, modules can be exchanged without losing redundancy of stored data.
Next, updating of management information stored in the management information storage unit will be described.
23 to 25 are diagrams illustrating an example of a processing procedure when the management information stored in the module is updated.
23 to 25, the module A11 and the module B12 of the storage system are shown as representatives in order to simplify the description.
The modules are connected to each other via a one-to-one communication line, and can communicate with each other via the communication function units 25 and 26. The storage devices 21 and 22 of the modules A11 and B12 respectively have a data storage unit 8 including a plurality of slice areas 15 for storing data requested to be written, and a management information storage unit 18, and store management information The unit 18 includes a logical volume name Ln to which the stored data belongs, an arrangement position n of data on the logical volume, and a slice area 15 of another module belonging to the same segment, in each slice area (S11 to S15, S21 to S21). In addition to the management information recorded every S26), update processing information indicating that the stored management information is being updated (Δ mark) and has been updated (◯ mark) is added. In addition, a pre-processing information storage area 19 is provided for temporarily storing management information before entering the update process in order to cope with an unexpected situation during the update process of the management information.
Here, since the slice areas S15 and S25 of the module A11 and the module B12 are being updated, a Δ mark is given.
The pre-processing information storage area 19 may be mixed with the slice area 15 or the management information storage unit 18 of each storage device 21 or 22, or an independent area may be provided.
When the module A11 and the module B12 receive the update completion request, as shown in FIG. 24, the management information is confirmed and the update processing information of the numbers S15 and S25 in the management information storage unit 18 has been updated (circle mark). Change to
On the other hand, when the module A11 and the module B12 receive an update stop request during the update process, as shown in FIG. 25, the management information temporarily stored in the pre-process information storage area 19 is copied, The state before the update is restored, and the update processing information in the slice areas S15 and S25 of the management information storage unit 18 is changed to updated (◯ mark).
Here, a case where one update process is performed has been described, but a plurality of update processes can be simultaneously performed in parallel by using an identifier instead of a circle mark or a triangle mark.
Next, transfer of status information of each module will be described.
26 and 27 are diagrams showing the module A11 as a representative example.
The module A11 shown in FIG. 26 includes the communication function unit 25 and the storage device 21, and also includes a switch 30 that forcibly activates the module. The storage device 21 includes a data storage unit 8 including a plurality of slice regions 15 and a management information storage unit 18, and also includes a state information storage region 20 for storing state information when the module A11 finishes operation. Have. In the status information storage area 20, “normal information” is stored as a storage device when the operation ends normally, and “abnormal information” is stored as a storage device when the operation ends due to an unexpected accident such as a power failure during operation. The module A11 is configured to determine whether to start up with reference to information stored in the state information storage area 20. In this case, since the module can be activated by operating the switch 30, even if an unexpected accident occurs, it can be dealt with.
In addition to the module A11 shown in FIG. 26, the module A11 has a heartbeat sending unit 31 that sends the status information of the module A11 to other modules via the communication function unit 25 in the storage device 21. . This heartbeat sending unit 31 is informed that if there is no problem in the module when the module is activated, it is in a normal state, and informs that it is abnormal if an abnormal state occurs during module activation and normal operation. Fulfill. Therefore, other modules that receive the notification from the module A11 can achieve early recovery of stored data and information.
Here, the heartbeat transmission unit 31 may periodically transmit the state information. In this way, if status information is sent periodically, it is possible to notify other modules that the normal status continues, and if the status information is not received for a certain period of time, there is an error in that module. Since it can be considered that a condition has occurred, a quick response can be made. Further, when communication with another module becomes impossible due to a failure of its own communication function unit 25 or a failure of the communication line 4, the safety of the entire data stored in the storage system is obtained by performing its own termination process. Can also be increased.
(Second Embodiment)
The storage system of this embodiment is different from the storage system of the first embodiment in that it includes an access module that directly accesses the corresponding slice area when an access request to the storage system is received. Other points are common. Therefore, the different access modules will be mainly described below.
FIG. 28 is a diagram illustrating a configuration example of an information processing system including the storage system according to the second embodiment.
The storage system 1 shown in FIG. 28 includes a module A11 including a server (personal computer or workstation; the same applies hereinafter) having a storage device 21, a module B12 including a server having a storage device 22, and a server having a storage device 23. When receiving an access request to the module C13, the server having the storage device 24, and the storage system, a personal computer (hereinafter abbreviated as "PC") having information that can directly access the slice area of the corresponding module. Two access modules A41 and A42. Each of the four modules is connected to the access module via the communication line 4, and the access module is connected to the network 2. Therefore, each of the two computers 3 connected to the network 2 is configured to first access one of the access modules and access each module via the access module.
FIG. 29 is a functional block diagram showing the storage system of the second embodiment.
The storage system of this embodiment is common to the storage system of the first embodiment described with reference to FIG. 3 except that it includes access modules A41 and A42 made up of PCs. Therefore, the same components are denoted by the same reference numerals, and redundant description is omitted.
The storage system shown in FIG. 29 has a module A11, a module B12, a module C13, and a module D14. Each of the modules 11 to 14 has two access modules made up of PCs by communication function units 25 to 28 of the server. Connected to both sides. The modules are connected to each other by a one-to-one communication line 4, and the modules 11 to 14 can communicate with each other by the communication function units 25 to 28. An external computer connected to the network 2 can directly access a predetermined module by accessing one of the two access modules.
Each of the storage devices 21 to 24 of the module A11, the module B12, the module C13, and the module D14 has a data storage unit 8 including a plurality of slice areas 15 that store data requested to be written, and a logical to which the stored data belongs. For each slice area (S11 to S15, S21 to S26, S31 to S35, S41 to S45), the volume name Ln, the data arrangement position n on the logical volume, and the slice area 15 of another module belonging to the same segment And a management information storage unit 18 for storing the recorded management information.
Each access module contains information such as the logical volume name, the module and slice area in which data at each position of the logical volume is stored, the slice area that constitutes the slice area and segment, and the unused slice area in each module. A table consisting of Therefore, when there is a request for addition, change, or deletion of data stored in a slice area or a request to store data in an unused slice area 15, a module corresponding to the request is searched for and accessed. Requests can be relayed directly to the corresponding module. In this case, the access module may have a table including all information stored in the storage system, or a part of the information is stored and information that satisfies an external request is not stored. In this case, a new table may be constructed by deleting unnecessary information, inquiring each module for information that is not held, and rewriting information held as a table.
In this way, an access module having a table is provided, the access module receives an access request from the outside, and the access module directly accesses a predetermined module by referring to the table. Access time can be shortened. Further, the two access modules are operated independently here, but the security can be enhanced by, for example, a duplex configuration.
(Third embodiment)
Compared to the first embodiment, the third embodiment of the present invention is a storage system in which a status management module that manages the status of each module and a logical volume of data that is distributed and stored in each module. A volume information module for reconstructing information, and the operation of the storage system is led by the volume information module. However, since the other points are common, the differences will be mainly described below.
FIG. 30 is a diagram illustrating a configuration example of an information processing system including the storage system according to the third embodiment.
In FIG. 30, the storage system 1 includes four modules G31, a module H32, a module I33, and a module J34 that are PCs having storage devices, and each of the four modules is connected to the network 2 via the communication line 4. Has been. The PC 2 manages the state of each module, reconstructs information for each logical volume of data distributed and stored in each module, and issues a command to each module based on the information. Two management control modules 61 and 62 are provided, and the two management control modules 61 and 62 are respectively connected to the network 2.
The two management control modules 61 and 62 have both functions of the state management module of the present invention and the volume information module, and one of the two management control modules 61 and 62 checks the operation of the other, Even if trouble occurs on one side, a dual system in which processing is continued by the other may be configured, or a duplex system may be configured to operate simultaneously and use one as the main and the other as an emergency backup. By taking such a configuration of the management control module, the safety of the management control function of the storage system can be enhanced.
Here, in the present embodiment, the functions of both the state management module and the volume information module are integrated as a management control module. However, such a configuration is not necessarily required, and each can be configured as an independent module. .
Hereinafter, for convenience of explanation, the state management module N and the volume information module M will be described based on functional blocks configured as independent modules.
FIG. 31 is a functional block diagram showing the storage system of the third embodiment.
The storage system shown in FIG. 31 includes a module G31, a module H32, a module I33, and a module J34. Each of the modules 31 to 34 has the network 2 connected to the PC by the communication function units 25 to 28 of the PC. The data can be transmitted to and received from an external computer. The PCs are also connected by a one-to-one communication line 4, and the modules 31 to 34 can communicate with each other by the communication function units 25 to 28 of the PC. Here, the PCs are connected by a one-to-one communication line 4, but it is not always necessary to connect them by a one-to-one communication line 4, and any topology can be used as long as communication is possible between modules. Can do.
In each of the storage devices of the module G31, the module H32, the module I33, and the module J34, a data storage unit 8 including a plurality of slice areas 15 for storing data requested to be stored, and a logical volume name Ln to which the stored data belongs. , Management position recorded on the logical volume, and the slice area 15 of another module belonging to the same segment, recorded for each slice area (S11 to S15, S21 to S26, S31 to S35, S41 to S45) A management information storage unit 18 for storing information is provided, but the display of the data storage unit 8 is omitted here.
In addition, the storage system according to the present embodiment collects management information from each module and monitors the status of each module, collects management information from each module, and monitors the status of each module. Or a volume information module M64 for centrally grasping information for each logical volume.
Each of the state management module N63 and the volume information module M64 has a communication function unit 29, and each is connected to the network 2 and configured to be able to communicate with each of the modules 31 to 34 via the network 2. Yes. Further, the state management module N63 and the volume information module M64 can communicate with each other. Therefore, the volume information module M64 requests the state management module N63 to end the processing of a specific module, for example, or ends the operation of the entire storage system according to the information of each module received from the state management module N63. It can also be made.
Next, details of the functions of the state management module N63 and the volume information module M64 and their operations will be described.
32 and 33 are diagrams illustrating an example of the function and processing procedure of the state management module N of the present embodiment.
32, the storage system includes a module G11, a module H12, a module I13, and a state management module N.
Here, the state management module N is installed independently of each module, but the function may be shared by the PC of any module.
Each module sends to each storage device status information of each module (for example, a heartbeat consisting of a pulse signal at regular intervals. When the heartbeat is received, it indicates a normal state, and when it is not received, it is abnormal. A heartbeat sending unit 21a, 22a, 23a, and 24a that transmits the state) to other modules and the state management module via the communication function unit. The heartbeat sending units 21a, 22a, 23a, and 24a inform that the module is in a normal state when there is no problem in the module when the module is started, and abnormal if an abnormal state occurs during module startup and normal operation. Can be informed. Therefore, other modules that receive notifications from any of the heartbeat sending units can achieve early recovery of stored data and information.
The state management module N63 includes a heartbeat receiving unit 63a that receives state information sent from the heartbeat sending units 21a, 22a, 23a, and 24a of the modules 31 to 34, and a module state management table that manages the received state information. And. In the module state management table 63b, whether each module is normal or abnormal is displayed by, for example, a circle mark and a cross mark.
The module G31, the module H32, and the module I33 transmit the respective state information to the state management module N63. The state management module N63 receives the state information sent from each module and displays it on the module state management table 63b.
Here, even if the information displayed in the module state management table 63b is lost, it can be acquired from each module again. Therefore, it is not always necessary to set the information in the secondary storage device of the PC. May be.
Next, as shown in FIG. 33, for example, when the module I33 detects an abnormal state in its own module and notifies the state management module N63 of the abnormal state, the state management module N63 performs module state management related to the module I33. The display in Table 63b is changed to a cross.
FIG. 34 is a diagram illustrating another example of functions and processing procedures of the state management module N of the present embodiment.
As shown in FIG. 34, each module is configured to send status information (heartbeat) at regular time intervals. Further, the state management module N includes a time monitoring unit 63c that records the time of the state information that has been sent, and the time when the latest state information is received is displayed in the module state management table 63b.
Since the status information is not transmitted from the module I for a certain period of time, the status management module N63 determines the status of the module I33 from the circle mark by the time monitoring unit 63c. Change to mark. this? The mark represents that it is estimated that an abnormality has occurred because no state information is sent.
FIG. 35 is a diagram showing a case where the state management module N of the present embodiment shown in FIG. 34 has a function for forcibly terminating the operation of a module in which an abnormality has occurred.
As shown in FIG. 35, the state management module N63 has a forced termination command sending unit 63d that sends a forced termination command to the corresponding module, and each of the modules 31 to 34 is sent from the forced termination command sending unit 63d. The forced termination command receivers 21b, 22b, 23b, and 24b are provided with a function of receiving the forced termination command and terminating the processing being executed.
Here, the state management module N63 may also include a forced termination command receiving unit.
In this way, by providing the state management module N63 with a forced termination command sending function, when an abnormality in each module is recognized, the processing in that module is immediately terminated and temporarily removed from the storage system. The processing can be continued by a simple module.
FIG. 36 is a diagram illustrating a case where the state management module N of the present embodiment illustrated in FIG. 35 has a function of transmitting state information to each module.
As illustrated in FIG. 36, the state management module N63 includes a module state transmission unit 63e that transmits state information grasped by the state management module N63 to each of the modules 31 to 34. Module state receivers 21c, 22c, 23c, and 24c that receive state information transmitted from the state transmitter 63e are included.
Here, the module state transmitting unit 63e may transmit the state information only to the module that is recognized as having an abnormality, or transmits the state information to all modules including normal ones. You may decide. In that case, each module receives only relevant state information.
As a result of comparing the state information transmitted from the module state transmission unit 63e with the state information held by each module 31 to 34, it is determined that there is a contradiction or that it is preferable to terminate the processing of itself. If so, the process is terminated.
In this way, if the state information held by the state management module N is compared with the state information held by the state management module N and priority is given to the information managed by the state management module N, storage based on consistent information is performed. The entire system can be operated stably.
FIG. 37 is a diagram illustrating a configuration example of the volume information module M of the present embodiment.
37, the storage system includes a module G31, a module H32, a module I33, a module J34, and a volume information module M64. These modules 31 to 34 and 64 have communication function units 25 to 29, respectively.
The volume information module M64 has a communication path for the network 2 and also has a communication path for each of the module G31, the module H32, the module I33, and the module J34. Further, the module G31, the module H32, the module I33, and the module J34 are connected to each other via the communication line 4.
Each of the modules 31 to 34 includes a data storage unit 8 including a plurality of slice areas 15 and a management information storage unit 18 in the storage devices 21 to 24, and stores the management information stored in the management information storage unit 18 as a volume information module. Although it has the function to transmit to M64, the display of the data storage part 8 is abbreviate | omitted for convenience.
The volume information module M64 includes a management information collection unit 64a that collects management information stored in the management information storage unit 18 from each of the modules 31 to 34 via the communication function unit 29, and a module status from the collected management information. And a logical volume unit 64c for reconstructing information for each logical volume indicating the slice area 15 in which each position of the logical volume is stored.
Here, the module information and the logical volume information reconstructed by the volume information module M64 are constructed based on the management information of the modules 31 to 34, and can be reconstructed even if they disappear. What is necessary is just to hold | maintain in a main storage device, and it does not necessarily need to preserve | save in a secondary storage device.
FIG. 38 is a diagram showing a data structure of module information in the module information section.
As shown in FIG. 38, the module information includes a first file 110 for managing the module state and a second file 120 for managing an unused slice area. The first file and the second file are Both are linked to the management information file 130 of each module. The management information file 130 has a pointer 131 to the next management information and information 133 for each slice area. The first file 110 includes a pointer 111 to the next management information, a module name 112, a module state 113, a pointer 114 to a slice area of management information held by the module, and a pointer 115 to an unused slice area. And has as many entries 100 as the number of modules capable of communicating with the volume information module M64. The second file 120 has a pointer 121 to the next management information, a pointer 122 to the next unused slice area, and information 123 for each slice area.
FIG. 39 is a diagram showing a data structure of logical volume information in the logical volume unit.
As shown in FIG. 39, the logical volume information includes a third file 210 that manages a logical volume (number of segments) for each logical volume name, and a fourth file 220 that manages the number of slice areas constituting the segment. Have.
The third file 210 has a pointer 211 to the next logical volume, a logical volume name 212, a segment number 213, a pointer 214 to the segment, and a pointer 215 to the tree for facilitating search. , There are as many entries 200 as the number of modules that can communicate with the volume information module M64. The fourth file 220 has a pointer 221 to the next segment, a segment serial number 222, and two slice areas 223 and 224 constituting the segment. The tree has pointers to the slice areas 223 and 224 of the segment of the fourth file 220.
40 and 41 are diagrams showing an example of the management information update function of the volume information module M64.
As shown in FIG. 40, the volume information module M64 includes an update request unit 64d that sends a management information update request to each module.
The update request unit 64 d can send a management information update request to each of the modules 31 to 34 via the communication function unit 29.
41, in addition to the functions of the volume information module M64 shown in FIG. 40, an update completion request unit 64e that requests transmission of management information update completion information to each module and a request to stop updating management information And an update cancel request unit 64f.
Such a function of the volume information module M64 is used when an abnormality is detected from the target module when the management information of a plurality of modules is updated at the same time, or when the volume information module M64 is updating the management information. This is useful when you have to stop updating.
FIG. 42 is a diagram showing an example of a copy request function for data stored in the module, which the volume information module M64 has.
As shown in FIG. 42, the volume information module M64 is stored in the slice area of the module in addition to the update request unit 64d, the update completion request unit 64e, and the update stop request unit 64f shown in FIGS. A copy request unit 64g for instructing data to be copied to a slice area of another module and a copy stop request unit 64h for stopping the copy are provided.
FIG. 43 is a diagram illustrating an example of a function of the volume information module M64 that forcibly terminates processing in each module.
As shown in FIG. 43, in addition to the various functions shown in FIG. 42, the volume information module M64 includes a forced termination command unit 64i that forcibly terminates processing in a specific module or all modules. Accordingly, it is possible to forcibly terminate the processing in the module where the abnormality is detected or to stop the operation of the entire storage system when abnormality is detected in a plurality of modules.
Next, various processing procedures performed by the volume information module M64 will be described.
44 to 46 are diagrams illustrating an example of a processing procedure when the volume information module M64 receives a data storage request.
44 to 46, the storage system includes a module G31, a module H32, a module I33, a module J34, and a volume information module M64. These modules 31 to 34 and 64 have communication function units 25 to 29, respectively. Have.
As shown in FIG. 44, in the storage system of this embodiment, the volume information module M64 receives a data allocation request consisting of a logical volume with four segments from the outside.
As shown in FIG. 45, the volume information module M64 that has received the allocation request allocates unused slice areas as candidates so that slice areas belonging to different modules constitute segments, and the module to which the allocated slice area belongs. To the management information update request.
As shown in FIG. 46, each of the modules 31 to 34 allocates data to the slice area 15 allocated by the volume information module M64 and manages the management information stored in the management information storage unit 18 based on the management information update request. Update information. As a result, the slice area numbers S12 and S13 of the module G31, the slice area number S25 of the module H32, the slice areas numbers S31 and S34 of the module I33, and the slice area numbers S41, S43, S44, and S45 of the module J34 Logical volume L3 is allocated. The logical volume L3 includes segments (S12, S31), (S25, S41), (S13, S44), and (S34, S45).
Thus, since the volume information module M64 assigns the requested logical volume, the assignment rule can be changed relatively easily by changing the program of the volume information module M64.
47 to 49 are diagrams illustrating an example of a processing procedure when the volume information module M64 receives a logical volume release request.
47 to 49, the storage system includes a module G31, a module H32, a module I33, a module J34, and a volume information module M64. The modules 31 to 34 and 64 have communication function units 25 to 29, respectively. Have.
In FIG. 47, the volume information module M64 receives a request to release the logical volume L3 (number of segments 1) from the outside.
As shown in FIG. 48, the volume information module M64 searches for the number of the slice area belonging to the logical volume L3 based on the logical volume information that the logical volume unit 64c has. As a result of the search, since the slice area number S12 of the module G31 and the slice area number S31 of the module I33 belong to L3, a management information update request is transmitted to the modules G31 and I33.
As shown in FIG. 49, the module G31 and the module I33 that have received the management information update request delete the data of the numbers S12 and S31 and update the management information.
Thus, since the logical volume unit 64c of the volume information module M64 has the logical volume information, it is only necessary to send an update request to the necessary modules.
50 to 53 are diagrams illustrating an example of a processing procedure when a predetermined module fails.
50 to 53, the storage system includes a module G31, a module H32, a module I33, a module J34, and a volume information module M64. These modules 31 to 34 and 64 have communication function units 25 to 29, respectively. Have.
In FIG. 50, it is assumed that the module I33 has failed and the volume information module M64 has recognized it.
In FIG. 51, since the volume information module M64 knows that data is stored in the slice areas S32 and S33 from the management information of the module I33, the volume information module M64 secures two slice areas lost due to the failure from other modules. . At that time, the volume information module M64 sorts the unused slice areas so that the segments are constituted by slice areas belonging to different modules. Here, the slice area S12 is selected instead of the slice area S32, and the slice area S41 is selected instead of the slice area S33. Therefore, the volume information module M64 requests the module G31 to secure the slice area S12 and the module J34 to secure the number S41.
In FIG. 52, when the slice area S12 and the slice area S41 are secured, the volume information module M64 transfers the data stored in the slice area S23 to the slice area S23 and the slice area S23 constituting the segment. And a command to copy the data stored in the slice area S14 to the slice area S41 is issued to the slice area S33 and the slice area S14 constituting the segment.
As shown in FIG. 53, when the data copy is completed, the volume information module M64 makes a management information update request to the module G31 and the module J34.
As described above, the volume information module M64 that holds the volume information in a centralized manner performs the restoration processing of the data of the failed module in a unified manner, whereby the data redundancy can be quickly recovered.
54 to 56 are diagrams illustrating an example of a processing procedure when a predetermined module is pulled out.
54 to 56, the storage system includes a module G31, a module H32, a module I33, a module J34, and a volume information module M64. These modules 31 to 34 and 64 have communication function units 25 to 29, respectively. Have.
In FIG. 54, the volume information module M64 receives an extraction request for the module I33 from the outside. Here, a securing request is made to the module G31 and the module J34 in order to secure the slice area S12 and the slice area S41.
As shown in FIG. 55, when the evacuation destination slice area of the data stored in the module I33 is secured, the volume information module M64 copies the data stored in the slice area S33 of the module I33 to S41 of the module J34. And instructing to copy the data stored in the slice area S23 of the module H32 to the slice area S12 of the module G31.
Here, the data stored in S23 of the module H32 is copied to the slice area S12 of the module G31. The volume information module M64 has the number information of the slice areas constituting the segment. This is because the area S23 constitutes a segment and knows the fact that the same data is stored. By taking such a procedure, it is possible to reduce the load bias of the extracted data saving.
As shown in FIG. 56, when the data copy is completed, the volume information module M64 makes a management information update request, determines the related management information, and then pulls out the module I33.
FIG. 57 to FIG. 60 are diagrams illustrating an example of a processing procedure when replacing a module.
The processing procedure illustrated in FIGS. 57 to 60 is a diagram illustrating an example of a processing procedure when module K is added and module J is replaced with module K after module I is extracted.
57 to 60, the storage system includes a module G31, a module H32, a module I33, a module J34, and a volume information module M64. These modules 31 to 34 and 64 have communication function units 25 to 29, respectively. Have.
As shown in FIG. 57, when the volume information module M64 receives an exchange request between the module J34 and the module K35, as shown in FIG. 58, the volume information module M64 makes a request for securing a slice area to the module K35. Here, it is only necessary to secure three slice areas in which data is stored in the module J34. When it is confirmed that three slice areas can be secured, as shown in FIG. 59, the volume information module M64 issues a copy request for the stored data to the module J34.
Here, in order to reduce the load on the entire storage system, copying is performed by sharing from the modules constituting the segment.
As shown in FIG. 60, when the data copying is completed, the volume information module M64 issues an update request for the management information of each of the modules G31, H32, and K35. When the update is completed, the module J34 is pulled out and replaced. finish.
(Fourth embodiment)
Compared to the third embodiment, the fourth embodiment has a volume information module in which the storage system reconstructs the volume information of data distributed and stored in each module, and FIG. 29 of the second embodiment. It differs from the point provided with the access module described in the description. However, since the other points are common, these differences will be described below.
FIG. 61 is a diagram illustrating a configuration example of an information processing system including the storage system according to the fourth embodiment.
In FIG. 61, the storage system 1 receives four modules G31, module H32, module I33, and module J34, each of which has a PC having storage devices 21 to 24, and the corresponding slice when receiving an access request to the storage system 1. Two access modules A41 and B42 each including a PC that directly accesses the area are provided, and each of the four modules 31 to 34 is connected to the network 2 via the two access modules A41 and B42. In addition, the logical volume information of the data distributed and stored in each of the modules 31 to 34 is reconstructed, and a volume information module M64 including a PC that issues a command to each module based on the information is provided. Are connected to the network 2 respectively. Each of the two access modules A41 and B42 receives access from the external computer 3 and can directly access the related modules 31 to 34, and can also access the logical volume information section 64c of the volume information module M64 via the network 2. By accessing, the logical volume information can be referred to.
FIG. 62 is a functional block diagram showing the storage system of the fourth embodiment.
The storage system of this embodiment is the same as that described in the third embodiment, except that it does not have a state management module and has two access modules. The access module is the same as that described in the second embodiment. Accordingly, the same components are denoted by the same reference numerals, and redundant description is omitted.
The storage system shown in FIG. 62 collects management information from modules G31, module H32, module I33, module J34, two access modules A41 and B42, and collects module information and logical volume information. Volume information module M64.
Each of the two access modules A41 and B42 receives an access request from the external computer 3, refers to the module information and logical volume information from the volume information module M64 via the network, and directly sends the access request to the corresponding module. You can intervene. Therefore, the access module does not need to access individual modules to collect information, and only needs to hold a part of the information. Therefore, the load on the communication line for accessing the individual modules can be reduced. it can. In the present embodiment, since the two access modules A41 and B42 have a duplex configuration, even when a load imbalance occurs when accessing the access modules A41 and B42 from the outside, the load imbalance is absorbed. , Safety when accessing from outside can be improved.

以上のように、本発明のストレージシステムは、信頼性が要求される情報処理システムのストレージデバイスとして有用であり、特に、容量が異なるストレージデバイスを有するPCやサーバを組み合わせた場合であっても、それぞれのストレージデバイスの使用効率を高めることができるので、ストレージデバイスの増設や取替えの可能性が高い情報処理システムに用いるのに適している。  As described above, the storage system of the present invention is useful as a storage device for an information processing system that requires reliability. In particular, even when a PC or server having storage devices with different capacities is combined, Since the usage efficiency of each storage device can be increased, the storage device is suitable for use in an information processing system that is highly likely to be expanded or replaced.

Claims (20)

複数のストレージデバイスに分散してデータを格納するストレージシステムにおいて、
データを格納するスライスされた複数のスライス領域を有するデータ格納部および該複数のスライス領域の管理情報を格納する管理情報格納部を有するストレージデバイスと、
前記データ格納部に格納するデータおよび前記管理情報格納部に格納する管理情報を含む情報の通信機能を有する通信機能部と、を具備する複数のモジュールを備えたことを特徴とするストレージシステム。
In storage systems that store data across multiple storage devices,
A storage device having a data storage section having a plurality of sliced slice areas for storing data and a management information storage section for storing management information of the plurality of slice areas;
A storage system comprising a plurality of modules each having a communication function unit having a communication function of data including data stored in the data storage unit and information including management information stored in the management information storage unit.
前記複数のモジュールは、前記通信機能部により、前記情報を互いに通信するものであることを特徴とする請求項1記載のストレージシステム。The storage system according to claim 1, wherein the plurality of modules communicate the information with each other by the communication function unit. 前記複数のモジュールのうちの少なくとも2つのモジュールの前記スライス領域それぞれに同一のデータを格納することにより該スライス領域の対からなるセグメントを形成し、前記データ格納部に格納されたデータの冗長性を確保することを特徴とする請求項1記載のストレージシステム。By storing the same data in each of the slice areas of at least two modules of the plurality of modules, a segment composed of a pair of the slice areas is formed, and redundancy of the data stored in the data storage unit is increased. The storage system according to claim 1, wherein the storage system is secured. 前記管理情報格納部は、格納要求を受けたデータの、複数のモジュールのスライス領域に亘る論理ボリュームに関する情報を格納することを特徴とする請求請1記載のストレージシステム。The storage system according to claim 1, wherein the management information storage unit stores information relating to a logical volume of sliced areas of a plurality of modules of data for which a storage request has been received. 前記複数のモジュールのうちの第1のモジュールは、該第1のモジュールの前記スライス領域に格納されたデータを第2のモジュールの所定のスライス領域に複写する機能を有することを特徴とする請求項1記載のストレージシステム。The first module of the plurality of modules has a function of copying data stored in the slice area of the first module to a predetermined slice area of the second module. The storage system according to 1. 前記複数のモジュールのうちの第1のモジュールの前記管理情報格納部は、第2のモジュールから該管理情報格納部に格納された管理情報の更新要求を受けた場合は、該第2のモジュールから更新完了要求を受けたときに該管理情報を更新し、更新中止要求を受けたときに該管理情報を、該管理情報の更新要求を受ける直前の状態に復元することを特徴とする請求項1記載のストレージシステム。The management information storage unit of the first module among the plurality of modules receives an update request for management information stored in the management information storage unit from the second module, from the second module. 2. The management information is updated when an update completion request is received, and the management information is restored to a state immediately before the management information update request is received when an update stop request is received. The described storage system. 前記複数のモジュールそれぞれは、異常終了した後に強制起動を行う強制起動部を有することを特徴とする請求項1記載のストレージシステム。The storage system according to claim 1, wherein each of the plurality of modules includes a forced activation unit that performs forced activation after abnormal termination. 前記複数のモジュールそれぞれは、それぞれの動作状態を知らせるハートビートを送出するハートビート送出部を備えたものであることを特徴とする請求項1記載のストレージシステム。The storage system according to claim 1, wherein each of the plurality of modules includes a heartbeat transmission unit that transmits a heartbeat for notifying each operation state. このストレージシステムへのアクセス要求を一元的に受け付けるとともに、該アクセス要求を対応するモジュールに取り次ぐアクセスモジュールを備えたことを特徴とする請求項1記載のストレージシステム。2. The storage system according to claim 1, further comprising an access module that centrally accepts an access request to the storage system and relays the access request to a corresponding module. 前記アクセスモジュールは、前記複数のモジュールそれぞれの前記スライス領域に格納されたデータの情報を備え、該情報に基づいて前記アクセス要求に対応することを特徴とする請求項9記載のストレージシステム。The storage system according to claim 9, wherein the access module includes information of data stored in the slice area of each of the plurality of modules, and responds to the access request based on the information. 前記複数のモジュールそれぞれは、それぞれの動作状態を知らせるハートビートを送出するハートビート送出部を有するものであって、
前記ハートビート送出部から受信したハートビートに基づいて前記複数のモジュールそれぞれの動作状態を管理する状態管理モジュールを備えたことを特徴とする請求項1記載のストレージシステム。
Each of the plurality of modules has a heartbeat sending unit that sends out a heartbeat notifying each operation state,
The storage system according to claim 1, further comprising a state management module that manages an operation state of each of the plurality of modules based on a heartbeat received from the heartbeat transmission unit.
前記状態管理モジュールは、前記複数のモジュールのうちの所定のモジュールの動作を強制終了させる強制終了命令送信部を有することを特徴とする請求項11記載のストレージシステム。12. The storage system according to claim 11, wherein the state management module includes a forced termination command transmission unit that forcibly terminates the operation of a predetermined module among the plurality of modules. 前記状態管理モジュールは、該状態管理モジュールが認識している前記複数のモジュールそれぞれの動作状態を、他のそれぞれのモジュールに通知するモジュール状態送信部を有し、
前記複数のモジュールそれぞれは、前記状態管理モジュールから通知を受けた動作状態とそれぞれのモジュールが認識する動作状態とが異なる場合には、それぞれの動作を停止させることを特徴とする請求項11記載のストレージシステム。
The state management module includes a module state transmission unit for notifying the other modules of the operation states of the plurality of modules recognized by the state management module,
12. Each of the plurality of modules is configured to stop each operation when an operation state received from the state management module is different from an operation state recognized by each module. Storage system.
前記複数のモジュールそれぞれから前記管理情報を収集し、収集した該管理情報に基づいて、格納要求を受けたデータの、複数のモジュールのスライス領域に亘る、論理ボリュームに関する情報を再構築するボリューム情報モジュールを備えたことを特徴とする請求項1記載のストレージシステム。A volume information module that collects the management information from each of the plurality of modules, and reconstructs information related to the logical volume over the slice areas of the plurality of modules of the data that has received a storage request based on the collected management information The storage system according to claim 1, further comprising: 前記ボリューム情報モジュールは、前記複数のモジュールそれぞれに対して、前記管理情報の更新要求を行う更新要求部を備えたものであることを特徴とする請求項14記載のストレージシステム。15. The storage system according to claim 14, wherein the volume information module includes an update request unit that makes an update request for the management information to each of the plurality of modules. 前記ボリューム情報モジュールは、前記複数のモジュールそれぞれに対して、前記管理情報の更新完了要求を行う更新完了要求部および該管理情報の更新中止要求を行う更新中止要求部を備えたことを特徴とする請求項14記載のストレージシステム。The volume information module includes an update completion request unit that makes an update completion request for the management information and an update stop request unit that makes an update stop request for the management information for each of the plurality of modules. The storage system according to claim 14. 前記複数のモジュールのうちの第1のモジュールは、該第1のモジュールの前記スライス領域に格納されたデータを、第2のモジュールの所定のスライス領域に複写する機能を有するものであって、
前記ボリューム情報モジュールは、該第1のモジュールの前記スライス領域に格納されたデータを、第2のモジュールに複写する前記所定のスライス領域を指定することを特徴とする請求項14記載のストレージシステム。
The first module of the plurality of modules has a function of copying data stored in the slice area of the first module to a predetermined slice area of the second module,
15. The storage system according to claim 14, wherein the volume information module designates the predetermined slice area in which data stored in the slice area of the first module is copied to a second module.
前記ボリューム情報モジュールは、前記複数のモジュールそれぞれの動作を強制終了させる強制終了命令送出部を備えたことを特徴とする請求項14記載のストレージシステム。15. The storage system according to claim 14, wherein the volume information module includes a forced termination command sending unit that forcibly terminates the operation of each of the plurality of modules. 前記複数のモジュールそれぞれの動作状態を知らせるハートビートを受信し、該複数のモジュールそれぞれの動作状態を管理するとともに、該ハートビートが停止したときは該複数のモジュールそれぞれの動作を強制終了させる機能を有する状態管理モジュールを備え、
前記ボリューム情報モジュールは、前記状態管理モジュールから前記複数のモジュールそれぞれの動作状態の通知を受けるとともに、該状態管理モジュールに、該複数のモジュールのうちの所定のモジュールの強制終了を指令することを特徴とする請求項14記載のストレージシステム。
A function of receiving a heartbeat for notifying the operation state of each of the plurality of modules, managing the operation state of each of the plurality of modules, and forcibly terminating the operation of each of the plurality of modules when the heartbeat is stopped. A state management module having
The volume information module receives a notification of an operation state of each of the plurality of modules from the state management module, and instructs the state management module to forcibly terminate a predetermined module among the plurality of modules. The storage system according to claim 14.
このストレージシステムへのアクセス要求を一元的に受け付けるとともに、対応するモジュールに該アクセス要求を取り次ぐアクセスモジュールを備え、
前記アクセスモジュールは、前記アクセス要求を受けたときに、前記ボリューム情報モジュールから、該アクセス要求に係る情報を取得するとともに、取得した情報に基づいて該アクセス要求を取り次ぐことを特徴とする請求項14記載のストレージシステム。
In addition to accepting access requests to the storage system in a unified manner, the corresponding module is provided with an access module that relays the access requests,
15. The access module, when receiving the access request, acquires information related to the access request from the volume information module and relays the access request based on the acquired information. The described storage system.
JP2004572101A 2003-05-21 2003-05-21 Storage system Expired - Fee Related JP4711688B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/006355 WO2004104845A1 (en) 2003-05-21 2003-05-21 Storage system

Publications (2)

Publication Number Publication Date
JPWO2004104845A1 true JPWO2004104845A1 (en) 2006-07-20
JP4711688B2 JP4711688B2 (en) 2011-06-29

Family

ID=33463137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004572101A Expired - Fee Related JP4711688B2 (en) 2003-05-21 2003-05-21 Storage system

Country Status (3)

Country Link
US (1) US8738869B2 (en)
JP (1) JP4711688B2 (en)
WO (1) WO2004104845A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015149076A (en) * 2015-03-04 2015-08-20 株式会社日立製作所 Management device, management system, and data management method

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747584B1 (en) * 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
JP2008181416A (en) 2007-01-25 2008-08-07 Hitachi Ltd Storage system and data management method
JP4606455B2 (en) * 2007-12-20 2011-01-05 富士通株式会社 Storage management device, storage management program, and storage system
JP5298594B2 (en) 2008-03-26 2013-09-25 富士通株式会社 Allocation control program, allocation control device, and allocation control method
JP5218284B2 (en) 2008-08-20 2013-06-26 富士通株式会社 Virtual disk management program, storage device management program, multi-node storage system, and virtual disk management method
JP5309816B2 (en) * 2008-09-09 2013-10-09 富士通株式会社 Data management program, data management apparatus, and data management method
JP2010097385A (en) 2008-10-16 2010-04-30 Fujitsu Ltd Data management program, storage device diagnostic program, and multi-node storage system
JP5217966B2 (en) * 2008-11-28 2013-06-19 富士通株式会社 Storage system update processing program, update processing method, and storage system
JP5217967B2 (en) * 2008-11-28 2013-06-19 富士通株式会社 Failure node separation processing program, failure node separation method, and storage system
JP5396836B2 (en) 2008-12-01 2014-01-22 富士通株式会社 Data distribution control program, storage management program, control node, and disk node
JP5277991B2 (en) * 2009-01-27 2013-08-28 富士通株式会社 Allocation control program, allocation control device, and allocation control method
JP5412882B2 (en) 2009-03-04 2014-02-12 富士通株式会社 Logical volume configuration information providing program, logical volume configuration information providing method, and logical volume configuration information providing apparatus
JP4838878B2 (en) 2009-12-04 2011-12-14 富士通株式会社 Data management program, data management apparatus, and data management method
JP2011128917A (en) 2009-12-18 2011-06-30 Fujitsu Ltd Data allocation control program, data allocation control method, and data allocation control apparatus
US8639658B1 (en) * 2010-04-21 2014-01-28 Symantec Corporation Cache management for file systems supporting shared blocks
JP5941273B2 (en) * 2011-12-02 2016-06-29 キヤノン株式会社 Information processing apparatus and control method thereof
US8935256B2 (en) * 2012-03-02 2015-01-13 Cleversafe, Inc. Expanding a hierarchical dispersed storage index
US8959301B2 (en) * 2012-11-09 2015-02-17 International Business Machines Corporation Accessing data in a storage system
KR20160100973A (en) * 2013-12-19 2016-08-24 톰슨 라이센싱 Method and apparatus for charging electronic device with usb connection
US10289326B2 (en) 2015-09-14 2019-05-14 HGST Netherlands, B.V. Optimized data layout for object store system
US10073625B2 (en) * 2016-01-06 2018-09-11 HGST Netherlands B.V. Variable-RPM hard disk drive control
US11010247B2 (en) * 2019-05-24 2021-05-18 Violin Systems Llc Dynamic memory management system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293321A (en) 1999-04-12 2000-10-20 Toshiba Corp Disk drive and disk controller
JP2003521759A (en) * 1999-05-03 2003-07-15 3ウェア カンパニー Method and system for mirroring disk array
JP2001184176A (en) 1999-12-27 2001-07-06 Toshiba Corp Disk controller
US6601187B1 (en) * 2000-03-31 2003-07-29 Hewlett-Packard Development Company, L. P. System for data replication using redundant pairs of storage controllers, fibre channel fabrics and links therebetween
US6810491B1 (en) * 2000-10-12 2004-10-26 Hitachi America, Ltd. Method and apparatus for the takeover of primary volume in multiple volume mirroring
US6606694B2 (en) * 2000-12-22 2003-08-12 Bull Hn Information Systems Inc. Write logging in mirrored disk subsystems
US6654862B2 (en) * 2000-12-29 2003-11-25 Ncr Corporation High performance disk mirroring
JP2002215473A (en) * 2001-01-23 2002-08-02 Mitsubishi Electric Corp Information processor and multiplex system
JP3711874B2 (en) 2001-02-20 2005-11-02 日本電気株式会社 Network storage system
JP4105398B2 (en) * 2001-02-28 2008-06-25 株式会社日立製作所 Information processing system
JP4700204B2 (en) 2001-03-07 2011-06-15 株式会社日立製作所 Storage management data control system
JP2003076592A (en) 2001-09-04 2003-03-14 Hitachi Ltd Data storage system
AU2003267284A1 (en) * 2002-09-18 2004-04-08 Netezza Corporation Disk mirror architecture for database appliance

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015149076A (en) * 2015-03-04 2015-08-20 株式会社日立製作所 Management device, management system, and data management method

Also Published As

Publication number Publication date
US8738869B2 (en) 2014-05-27
WO2004104845A1 (en) 2004-12-02
JP4711688B2 (en) 2011-06-29
US20050235109A1 (en) 2005-10-20

Similar Documents

Publication Publication Date Title
JP4711688B2 (en) Storage system
US9769259B2 (en) Network storage systems having clustered RAIDs for improved redundancy and load balancing
JP4551096B2 (en) Storage subsystem
JP4165747B2 (en) Storage system, control device, and control device program
US8161009B2 (en) Remote copying system with consistency guaranteed between a pair
USRE42703E1 (en) System and method for fibrechannel fail-over through port spoofing
US7360047B2 (en) Storage system, redundancy control method, and program
US7607034B2 (en) Data storage system and control method thereof
US20090094483A1 (en) Method of maintaining task sequence within a task domain across error recovery
JP2006048358A (en) Storage system and data processing system
JP2009140153A (en) Storage management device, storage system control device, storage management program, and storage system
CN101174197A (en) Information system, data transfer method and data protection method
US8078904B2 (en) Redundant configuration method of a storage system maintenance/management apparatus
JPH09146842A (en) Storage subsystem
JP2005149374A (en) Disk array apparatus and data saving method
US9342418B2 (en) Storage system, storage control device and data transfer method
JP2010049637A (en) Computer system, storage system and configuration management method
US20060212669A1 (en) Control method for storage system, storage system, storage control apparatus, control program for storage system, and information processing system
JP2006114064A (en) Storage subsystem
CN112445652B (en) Remote copy system
JP4592735B2 (en) EXTERNAL STORAGE DEVICE, DATA RECOVERY METHOD FOR EXTERNAL STORAGE DEVICE, AND PROGRAM
JP2007148520A (en) Information notification method and computer system
JP7179947B2 (en) Storage system and storage control method
JP2010033379A (en) Virtualization system and restoration method for virtualization
JP2003330906A (en) Recovery method in loosely-coupled system, and exclusive controller

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081023

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081030

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20081121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110322

LAPS Cancellation because of no payment of annual fees