JP2005215850A - ストレージ装置、ストレージ装置の制御方法、及びストレージシステム - Google Patents

ストレージ装置、ストレージ装置の制御方法、及びストレージシステム Download PDF

Info

Publication number
JP2005215850A
JP2005215850A JP2004019739A JP2004019739A JP2005215850A JP 2005215850 A JP2005215850 A JP 2005215850A JP 2004019739 A JP2004019739 A JP 2004019739A JP 2004019739 A JP2004019739 A JP 2004019739A JP 2005215850 A JP2005215850 A JP 2005215850A
Authority
JP
Japan
Prior art keywords
storage
data
storage device
identifier
hard disk
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.)
Withdrawn
Application number
JP2004019739A
Other languages
English (en)
Other versions
JP2005215850A5 (ja
Inventor
Hiroyuki Morimoto
浩之 森本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004019739A priority Critical patent/JP2005215850A/ja
Priority to US10/816,913 priority patent/US7337287B2/en
Publication of JP2005215850A publication Critical patent/JP2005215850A/ja
Publication of JP2005215850A5 publication Critical patent/JP2005215850A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1047No striping, i.e. parity calculation on a RAID involving no stripes, where a stripe is an independent set of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データのバックアップのために必要な数多くのストレージ装置を維持管理するコストを抑制する。
【解決手段】複数の第1ディスクドライブを複数の第2ディスクドライブと、通信可能に接続し、複数の第1ディスクドライブの記憶領域を区分してなる複数の記憶ブロックのそれぞれの複製を各記憶ブロックを特定する第1識別子と共に受信する第1受信部と、第1受信部により受信されたの複製のうち第1識別子がそれぞれ対応するの複製の排他的論理和を演算する第1演算制御部と、複数の第2ディスクドライブの記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれを特定する第2識別子が第1識別子と対応する第2ディスクドライブの記憶ブロックに第1演算制御部により演算された排他的論理和の演算結果を記憶する第1記憶制御部とを備える。
【選択図】 図1

Description

本発明は、ストレージ装置、ストレージ装置の制御方法、及びストレージシステムに関する。
ストレージ装置に記憶されるデータが消失した場合に、元のデータを復元できるようにするために、データのバックアップが行われる。このデータのバックアップは、通常ストレージ装置に記憶されるデータの複製を、バックアップ用のストレージ装置にも記憶させておくことにより行われる。
またこのデータのバックアップをレプリケーションの技術を利用して行う技術も開発されている。レプリケーションは、通信可能に接続されたストレージ装置間で、一方のストレージ装置にデータが書き込まれると、そのデータの複製が他方のストレージ装置に送信され、他方のストレージ装置にそのデータの複製が書き込まれるように制御するための技術である。
特開2002−259183号公報
しかしながらバックアップされる元のデータを記憶するストレージ装置が複数ある場合には、バックアップ用のストレージ装置は、それらのストレージ装置のそれぞれに記憶される元のデータの全ての複製を記憶することができるだけの記憶容量を備えていることが必要である。
またレプリケーションの技術を利用してデータのバックアップを行う場合には、バックアップされる元のデータを記憶するストレージ装置毎に、ペアを組むバックアップ用のストレージ装置を設ける必要がある。
このようなことから、データのバックアップを行うためには、数多くのストレージ装置を維持管理することが必要となり、そのための維持管理コストも大きなものとなる。
今日、情報処理システムで取り扱われるデータ量は急激に増大しており、データのバックアップを合理化し、バックアップのためのコストを抑制し、ひいては情報処理システムのコストを抑制するための技術が強く求められている。
本発明は上記課題を鑑みてなされたものであり、ストレージ装置、ストレージ装置の制御方法、及びストレージシステムを提供することを主たる目的とする。
上記課題を解決するために、本発明は、データを記憶する複数の第1のハードディスクドライブを有する複数の他のストレージ装置と通信可能に接続され、データを記憶する複数の第2のハードディスクドライブと、前記他のストレージ装置のそれぞれから、前記複数の第1のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれに記憶される第1の記憶データの複製を、前記各記憶ブロックを特定する第1の識別子と共に受信する第1の受信部と、前記第1の受信部により前記他のストレージ装置のそれぞれから受信された前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製の排他的論理和を演算する第1の演算制御部と、前記複数の第2のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれを特定する第2の識別子が前記第1の識別子と対応する前記第2のハードディスクドライブの前記記憶ブロックに、前記第1の演算制御部により演算された前記排他的論理和の演算結果を記憶する第1の記憶制御部とを備えることを特徴とするストレージ装置に関する。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
ストレージ装置、ストレージ装置の制御方法、及びストレージシステムを提供することができる。
===全体構成例===
まず、本実施の形態に係るストレージ装置600を含む情報処理システムの全体構成を示すブロック図を図1に示す。本実施の形態に係る情報処理システムは、複数のストレージ装置600を含んで構成されるストレージシステムと、各ストレージ装置600と通信可能に接続される情報処理装置200とを含んで構成される。
本実施の形態に係るストレージシステムは、ストレージ装置1乃至4(600)を備える。ストレージ装置1乃至3(他のストレージ装置、第1のストレージ装置、以下データストレージ装置とも記す)(600)には、情報処理装置1乃至4(200)が通信可能に接続されている。ストレージ装置1(600)には情報処理装置1(200)が接続され、ストレージ装置2(600)には情報処理装置2(200)が接続され、ストレージ装置3(600)には情報処理装置3及び4(200)が接続されている。各情報処理装置200は、それぞれ通信可能に接続されたストレージ装置600に対してデータ入出力要求を送信する。各ストレージ装置600は、情報処理装置200から送信されたデータ入出力要求に応じて、ストレージ装置600が備える記憶領域(データ記憶領域とも記す)に記憶されるデータの読み書きを行う。
情報処理装置200はCPU(Central Processing Unit)やメモリを備えたコンピュータ等の情報機器である。情報処理装置200が備えるCPUにより各種アプリケーションプログラムが実行されることにより様々な機能が実現される。情報処理装置200により実現される機能としては、例えば銀行の自動預金預け払いサービスや、航空機の座席予約サービスとすることができる。情報処理装置200は、例えばパーソナルコンピュータやワークステーションとすることもできるし、メインフレームコンピュータとすることもできる。
ストレージ装置3(600)は、SAN(Storage Area Network)500を介して情報処理装置3及び4(200)と通信可能に接続されている。SAN500を介して行われる情報処理装置200とストレージ装置600との間の通信は、ファイバチャネルプロトコルに従って行われるようにすることができる。この場合SAN500は、ファイバチャネルプロトコルに準拠した少なくとも一つ以上のスイッチ等の通信機器により構成される。情報処理装置3及び4(200)からは、ストレージ装置3(600)に対して、ファイバチャネルプロトコルに従ってデータ入出力要求が送信される。
もちろん、SAN500によらずに情報処理装置3及び4(200)とストレージ装置3(600)とを接続するようにすることもできる。この場合、情報処理装置3及び4(200)とストレージ装置3(600)との間の通信は、例えばFICON(Fibre Connection)(登録商標)やESCON(Enterprise System Connection) (登録商標)、TCP/IP(Transmission Control Protocol / Internet Protocol)、iSCSI(Internet Small Computer Systems Interface)などの通信プロトコルにより行うようにすることもできる。
また、もちろん情報処理装置1(200)とストレージ装置1(600)との間の通信、情報処理装置2(200)とストレージ装置2(600)との間の通信についても、ファイバチャネルプロトコルや、FICON(登録商標)、ESCON(登録商標)、TCP/IP、iSCSIなどの通信プロトコルにより行うようにすることもできる。
また図1に示すように、情報処理装置1乃至4(200)はLAN(Local Area Network)400で通信可能に接続されているようにすることもできる。ここでLAN400は、例えばインターネットとすることができる。
また、各ストレージ装置600に接続される情報処理装置200の数は図1に示される例に限定されることはなく、適宜の台数にすることができる。また同様に、各情報処理装置200に接続されるストレージ装置600の数も、適宜の台数とすることができる。
ストレージ装置4(第2のストレージ装置、以下、パリティストレージ装置とも記す)(600)は、ストレージ装置1乃至3(600)と通信可能に接続されている。そして本実施の形態に係るストレージ装置4(600)が備える記憶領域には、ストレージ装置1乃至3(600)(他のストレージ装置)の記憶領域にそれぞれ記憶されるデータをバックアップするためのデータが記憶される。
すなわち、詳細な仕組みについては後述するが、本実施の形態に係るストレージ装置4(600)には、ストレージ装置1乃至3(600)の記憶領域にそれぞれ記憶されるデータから演算される排他的論理和の演算結果が記憶される。そしてストレージ装置1乃至3のいずれかの記憶領域に記憶されるデータ、例えばストレージ装置1(600)の記憶領域に記憶されるデータを復元することが必要となった場合には、ストレージ装置1(600)以外のストレージ装置(600)、すなわちストレージ装置2乃至4(600)の記憶領域に記憶されるデータから排他的論理和を演算することによりストレージ装置1(600)の記憶領域に記憶されるデータを復元するようにする。
これを式で表せば以下のようになる。すなわち、ストレージ装置1(600)に記憶されるデータをD1、ストレージ装置2(600)に記憶されるデータをD2、ストレージ装置3(600)に記憶されるデータをD3とすれば、ストレージ装置4(600)に記憶されるデータであるD4は、D1(EXOR)D2(EXOR)D3となる。ただし”(EXOR)”は排他的論理和の演算子を示す。ここで、D1を復元することが必要になった場合には、D4(EXOR)D2(EXOR)D3を演算する。このようにしてD1を復元することができる。
このようにすることにより、本実施の形態によれば、ストレージ装置4(600)と通信可能に接続される他のストレージ装置600の台数が何台であっても、他のストレージ装置(600)の記憶領域に記憶されるデータをバックアップすることが可能となる。
なおストレージ装置4(600)は、ストレージ装置1乃至3(600)の記憶領域にそれぞれ記憶されるデータをバックアップするためのデータを記憶するための専用のストレージ装置600とすることもできるし、ストレージ装置1乃至3(600)と同様に、情報処理装置200と通信可能に接続され、その情報処理装置200からのデータ入出力要求に応じて記憶領域に記憶されるデータの読み書きを行うこともできるストレージ装置600とすることもできる。
===ストレージ装置===
次に、本実施の形態に係るストレージ装置600のブロック図を図2に示す。なお図2には、ストレージ装置600が5台の情報処理装置200と通信可能に接続される場合の例を示す。
ストレージ装置600は、ストレージ制御装置100とストレージ駆動装置300とを備える。ストレージ制御装置100は、例えば情報処理装置1乃至5(200)から受信したコマンドに従ってストレージ駆動装置300に対する制御を行う。例えば情報処理装置1乃至5(200)からデータ入出力要求を受信して、ストレージ駆動装置300が備える記憶ボリューム310に対してデータの読み書きを行う。記憶ボリューム310とは、ハードディスクドライブ等の物理ディスクドライブにより提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される論理的な記憶領域である論理ボリュームとを含む、データを記憶するための記憶領域をいう。
図2において、情報処理装置1乃至4(200)はSAN500を介してストレージ制御装置100と通信可能に接続されている。情報処理装置5(200)は、SAN500等のネットワークを介さずにストレージ制御装置100と接続されている。
===ストレージ駆動装置===
ストレージ駆動装置300はデータを記憶する複数のハードディスクドライブを備えている。これによりストレージ装置600は情報処理装置1乃至5(200)に対して大容量の記憶領域を提供することができる。これらのハードディスクドライブは、RAID(Redundant Arrays of Inexpensive Disks)を構成するようにすることもできる。
ストレージ制御装置100とストレージ駆動装置300との間は図1のようにネットワークを介さずに直接に接続される形態とすることもできるし、ネットワークを介して接続されるようにすることもできる。さらにストレージ駆動装置300はストレージ制御装置100と一体として構成されるようにすることもできる。
===ストレージ制御装置===
ストレージ制御装置100はチャネル制御部110、共有メモリ120、キャッシュメモリ130、ディスク制御部140、管理端末160、内部接続部150を備える。
チャネル制御部110は、情報処理装置200や他のストレージ装置600との間で通信を行うための通信インタフェースを備える。またチャネル制御部110は管理端末160と共に内部LAN151で接続されている。これによりチャネル制御部110に実行させるマイクロプログラム等を管理端末160から送信しインストールすることが可能となっている。チャネル制御部110の構成については後述する。
内部接続部150はチャネル制御部110、共有メモリ120、キャッシュメモリ130、ディスク制御部140を相互に接続する。チャネル制御部110、共有メモリ120、キャッシュメモリ130、ディスク制御部140の間でのデータやコマンドの授受は内部接続部150を介することにより行われる。内部接続部150は例えばクロスバスイッチで構成される。
共有メモリ120及びキャッシュメモリ130は、チャネル制御部110とディスク制御部140との間で授受されるコマンドやデータ等を記憶するメモリである。共有メモリ120は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ130は、主にデータを記憶するために利用される。
例えば、あるチャネル制御部110が情報処理装置200から受信したデータ入出力要求がデータ書き込み要求であった場合には、当該チャネル制御部110はデータ書き込み要求を共有メモリ120に書き込むと共に、情報処理装置200から受信した書き込みデータをキャッシュメモリ130に書き込む。一方、ディスク制御部140は共有メモリ120を監視しており、共有メモリ120にデータ書き込み要求が書き込まれたことを検出すると、当該データ書き込み要求に従ってキャッシュメモリ130から書き込みデータを読み出してストレージ駆動装置300に書き込む。
またあるチャネル制御部110が情報処理装置200から受信したデータ入出力要求がデータ読み出し要求であった場合には、読み出し対象となる読み出しデータがキャッシュメモリ130に存在するかどうかを調べる。ここでキャッシュメモリ130に存在すれば、チャネル制御部110はその読み出しデータを情報処理装置200に送信する。一方、読みだしデータがキャッシュメモリ130に存在しない場合には、当該チャネル制御部110はデータ読み出し要求を共有メモリ120に書き込むと共に、共有メモリ120を監視する。データ読み出し要求が共有メモリ120に書き込まれたことを検出したディスク制御部140は、ストレージ駆動装置300から読みだし対象となる読み出しデータを読み出してこれをキャッシュメモリ130に書き込むと共に、その旨を共有メモリ120に書き込む。そして、チャネル制御部110は読みだし対象となる読み出しデータがキャッシュメモリ130に書き込まれたことを検出すると、その読み出しデータを情報処理装置200に送信する。
このようにチャネル制御部110及びディスク制御部140の間では、キャッシュメモリ130を介してデータの授受が行われる。
なお、チャネル制御部110からディスク制御部140に対するデータの書き込みや読み出しの指示を共有メモリ120を介在させて間接的に行う構成の他、例えばチャネル制御部110からディスク制御部140に対してデータの書き込みや読み出しの指示を共有メモリ120を介さずに直接に行う構成とすることもできる。
また、チャネル制御部110とディスク制御部140とを一体的に構成し、両機能を合わせ持った制御部を設けるようにすることもできる。
本実施の形態に係る共有メモリ120には、図9に示すように、パリティグループ管理テーブル710、パリティブロック管理テーブル720、パリティブロック数総括管理テーブル730、初期データ管理テーブル740が記憶される。これらの各テーブルについては後述する。
ディスク制御部140は、ストレージ駆動装置300と通信可能に接続され、データを記憶する記憶ボリューム310に記憶されるデータの読み書きを行う。例えば上述のように、チャネル制御部110が情報処理装置200から受信したデータ入出力要求に応じて、記憶ボリューム310に記憶されるデータの読み書きを行う。
各ディスク制御部140は管理端末160と共に内部LAN151で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部140に実行させるマイクロプログラム等を管理端末160から送信しインストールすることが可能となっている。ディスク制御部140の構成については後述する。
本実施例においては、共有メモリ120及びキャッシュメモリ130がチャネル制御部110及びディスク制御部140に対して独立に設けられている場合について記載したが、本実施例はこの場合に限られるものでない。例えば共有メモリ120又はキャッシュメモリ130がチャネル制御部110及びディスク制御部140の各々に分散されて設けられることも好ましい。この場合、内部接続部150は、分散された共有メモリ120又はキャッシュメモリ130を有するチャネル制御部110及びディスク制御部140を相互に接続させることになる。
また、チャネル制御部110、ディスク制御部140、内部接続部150、共有メモリ120、キャッシュメモリ130の少なくともいずれかが一体として構成されているようにすることもできる。
===管理端末===
管理端末160はストレージ装置600を保守・管理するための情報機器である。オペレータは、管理端末160を操作することにより、例えばストレージ駆動装置300内のハードディスクドライブの構成の設定や、情報処理装置200とチャネル制御部110との間の通信路であるパスの設定、記憶ボリューム310の設定、チャネル制御部110やディスク制御部140において実行されるマイクロプログラムのインストール等を行うことができる。これらの設定や制御は、管理端末160が備えるユーザインタフェース、あるいは管理端末160で動作するWebサーバにより提供されるWebページを表示する情報処理装置1乃至5(200)等のユーザインタフェースから行うようにすることができる。
管理端末160はストレージ制御装置100に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末160は、ストレージ装置600の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
管理端末160の構成を示すブロック図を図5に示す。
管理端末160は、CPU161、メモリ162、ポート163、記録媒体読取装置164、入力装置165、出力装置166、記憶装置168を備える。
CPU161は管理端末160の全体の制御を司るもので、メモリ162に記憶された各種の動作を行うためのコードから構成されるストレージ管理プログラム162Aを実行することにより、ストレージ装置600の保守・管理機能を提供することができる。また同様に例えばストレージ管理プログラム162Aを実行することにより上記Webサーバとしての機能等を実現するようにすることができる。
記録媒体読取装置164は、記録媒体167に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ162や記憶装置168に格納される。従って、例えば記録媒体167に記録されたストレージ管理プログラム162Aを、記録媒体読取装置164を用いて上記記録媒体167から読み取って、メモリ162や記憶装置168に格納するようにすることができる。記録媒体167としてはフレキシブルディスクやCD−ROM、半導体メモリ等を用いることができる。記録媒体読取装置164は管理端末160に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置168は、例えばハードディスク装置や半導体記憶装置等である。入力装置165はオペレータ等による管理端末160へのデータ入力等のために用いられるユーザインタフェースである。入力装置165としては例えばキーボードやマウス等が用いられる。出力装置166は情報を外部に出力するために用いられるユーザインタフェースである。出力装置166としては例えばディスプレイやプリンタ等が用いられる。ポート163は内部LAN151に接続されており、これにより管理端末160はチャネル制御部110やディスク制御部140等と通信を行うことができる。またポート163は例えばLAN400等と通信可能に接続されるようにすることもできる。この場合管理端末160は、LAN400を通じて情報処理装置1乃至5(200)と通信を行うようにすることもできる。
===外観図===
次に、本実施の形態に係るストレージ装置600の外観構成を図3に示す。また、ストレージ制御装置100の外観構成を図4に示す。
図3に示すように、本実施の形態に係るストレージ装置600はストレージ制御装置100及びストレージ駆動装置300がそれぞれの筐体に納められた形態をしている。図3に示す例では、ストレージ制御装置100の筐体の両側にストレージ駆動装置300の筐体が配置されている。
ストレージ制御装置100は、正面中央部に管理端末160が備えられている。管理端末160はカバーで覆われており、図4に示すようにカバーを開けることにより管理端
末160を使用することができる。なお図4に示した管理端末160はいわゆるノート型パーソナルコンピュータの形態をしているが、どのような形態とすることも可能である。
管理端末160の下部には、チャネル制御部110やディスク制御部140、キャッシュメモリ130、共有メモリ120、内部接続部150を装着するためのスロットが設けられている。チャネル制御部110やディスク制御部140、キャッシュメモリ130、共有メモリ120、内部接続部150は回路基板を備えてボードとして構成されており、これらのボードが各スロットに装着される。各スロットにはこれらのボードを装着するためのガイドレールが設けられている。ガイドレールに沿って各ボードをスロットに挿入することにより、チャネル制御部110やディスク制御部140、キャッシュメモリ130、共有メモリ120、内部接続部150をストレージ制御装置100に装着することができる。各スロットの奥手方向正面部には、各ボードをストレージ制御装置100と電気的に接続するためのコネクタが設けられている。
またストレージ制御装置100には、チャネル制御部110等から発生する熱を放出するためのファン170が設けられている。ファン170はストレージ制御装置100の上面部に設けられる他、スロットの上部にも設けられている。
===チャネル制御部===
チャネル制御部110の構成を図6に示す。
チャネル制御部110は回路基板を備えた一つのユニット化されたボードとして構成される。チャネル制御部110は一枚もしくは複数枚の回路基板を含んで構成される。回路基板には、インタフェース部111、メモリ113、CPU112、NVRAM(nonvolatile random-access memory)114、コネクタ115が形成される。
インタフェース部111は、情報処理装置200や他のストレージ装置600との間で通信を行うための通信インタフェースや、内部接続部150を介して共有メモリ120やキャッシュメモリ130、チャネル制御部110等との間で通信を行うための通信インタフェースを備える。
CPU112は、チャネル制御部110全体の制御を司る。CPU112によりメモリ113やNVRAM114に格納された各種プログラムが実行されることにより本実施の形態に係るチャネル制御部110の機能が実現される。
NVRAM114はCPU112の制御を司るプログラムを格納する不揮発性メモリである。NVRAM114に記憶されるプログラムの内容は、管理端末160からの指示により書き込みや書き換えを行うことができる。
チャネル制御部110はコネクタ115を備えている。コネクタ115がストレージ制御装置100側のコネクタと嵌合することにより、チャネル制御部110はストレージ制御装置100の内部接続部150や管理端末160等と電気的に接続される。
メモリ113には、ストレージ制御プログラム810、データ送受信制御プログラム820、パリティ制御プログラム830、障害検知プログラム840が記憶される。
ストレージ制御プログラム810は、記憶ボリューム310に記憶されるデータの入出力制御やストレージ装置600における各種設定のための制御等を行うためのプログラムである。例えば後述するパリティグループ管理テーブル710、パリティブロック管理テーブル720、パリティブロック数統括管理テーブル730、初期データ管理テーブル740の作成更新等は、CPU112によりストレージ制御プログラム810が実行されることにより行われる。また第1乃至第4の記憶制御部、及び第1乃至第5のデータ記憶制御部は、例えばチャネル制御部110においてCPU112によりストレージ制御プログラム810が実行され、ディスク制御部140や共有メモリ120、キャッシュメモリ130、ディスク駆動装置300等と協働して動作することにより実現される。
データ送受信制御プログラム820は、他のストレージ装置600や情報処理装置200との間のデータの送受信を制御するためのプログラムである。従って第1乃至第6の受信部や第1乃至第2の送信部、第1乃至第7のデータ受信部、第1乃至第8のデータ送信部は、例えばCPU112によりデータ送受信制御プログラム820が実行されることにより実現される。
パリティ制御プログラム830は、排他的論理和の演算を行うためのプログラムである。例えば複数の他のストレージ装置600からそれぞれ受信したデータの排他的論理和の演算や、記憶ボリューム310に記憶されているデータと情報処理装置200から受信したデータとの排他的論理和の演算、記憶ボリューム310に記憶されているデータと他のストレージ装置600から受信したデータとの排他的論理和の演算などを行う。従って第1乃至第5の演算制御部や第1乃至第7のデータ演算制御部は、例えばCPU112によりパリティ制御プログラム830が実行されることにより実現される。
障害検知プログラム840は、ストレージ装置600に発生する障害を検知するためのプログラムである。例えば記憶ボリューム310に記憶されているデータに異常がないかを検知する。
記憶ボリューム310に記憶されているデータに異常を検知したストレージ装置600が、図1におけるストレージ装置1乃至3(600)のいずれかの場合、例えばストレージ装置1(600)の場合には、ストレージ装置1(600)はストレージ装置4(600)に対して元のデータの送信要求を送信する。そうするとストレージ装置4(600)は、ストレージ装置1(600)以外のストレージ装置600すなわちストレージ装置2乃至3(600)に対して、それぞれのストレージ装置600に記憶されているデータの送信要求を送信する。そしてストレージ装置4(600)は、ストレージ装置2乃至4(600)に記憶されているデータの排他的論理和を演算することにより、ストレージ装置1(600)に記憶されていた元のデータを復元し、ストレージ装置1(600)に送信する。
一方、記憶ボリューム310に記憶されているデータに異常を検知したストレージ装置600が、図1におけるストレージ装置4(600)の場合には、ストレージ装置1乃至3(600)に対して、それぞれのストレージ装置600に記憶されているデータの送信要求を送信する。そしてストレージ装置4(600)は、ストレージ装置1乃至3(600)に記憶されているデータの排他的論理和を演算することにより、ストレージ装置4(600)に記憶されていた元のデータを復元する。
なお、ストレージ制御プログラム810や、データ送受信制御プログラム820、パリティ制御プログラム830、障害検知プログラム840は、それぞれ個別のプログラムとすることもできるし、これらのプログラムの少なくとも一部が同一プログラムにより構成されるようにすることもできる。また各プログラムが複数のプログラムにより構成されるようにすることもできる。
===ディスク制御部===
次にディスク制御部140の構成を示す図を図7に示す。
ディスク制御部140は、回路基板を備えた一つのユニット化されたボードとして構成される。ディスク制御部140は一枚もしくは複数枚の回路基板を含んで構成される。回路基板には、インタフェース部141、メモリ143、CPU142、NVRAM144、コネクタ145が形成される。
インタフェース部141は、内部接続部150を介してチャネル制御部110等との間で通信を行うための通信インタフェースや、ストレージ駆動装置300との間で通信を行うための通信インタフェースを備えている。
CPU142は、ディスク制御部140全体の制御を司る。CPU142によりメモリ143やNVRAM144に格納された各種プログラムが実行されることにより本実施の形態に係るディスク制御部140の機能が実現される。
NVRAM144はCPU142の制御を司るプログラムを格納する不揮発性メモリである。NVRAM144に記憶されるプログラムの内容は、管理端末160からの指示により書き込みや書き換えを行うことができる。
またディスク制御部140はコネクタ145を備えている。コネクタ145がストレージ制御装置100側のコネクタと嵌合することにより、ディスク制御部140はストレージ制御装置100の内部接続部150や、ストレージ駆動装置300、管理端末160等と電気的に接続される。
なお、上述のチャネル制御部110において実行されるパリティ制御プログラム830や障害検知プログラム840がディスク制御部140のメモリ143に記憶されるようにすることもできる。この場合、CPU142によりパリティ制御プログラム830や障害検知プログラム840が実行されることにより、ディスク制御部140において上記排他的論理和の演算やストレージ装置600に発生する障害の検知が行われるようにすることもできる。
===情報処理装置===
次に本実施の形態に係る情報処理装置200の構成を示すブロック図を図8に示す。
情報処理装置200は、CPU210、メモリ220、ポート230、記録媒体読取装置240、入力装置250、出力装置260、記憶装置280を備える。
CPU210は情報処理装置200の全体の制御を司るもので、メモリ220に記憶された各種の動作を行うためのコードから構成されるプログラム220Aを実行することにより本実施の形態に係る各種機能を実現する。例えば、上述した銀行の自動預金預け払いサービス等の情報処理サービスの提供は、CPU210がプログラム220Aを実行することにより行われる。また、CPU210がプログラム220Aを実行することにより、上述した管理端末160で動作するWebサーバにより提供されるWebページの表示や、ハードディスクドライブの構成の変更や、情報処理装置200とチャネル制御部110との間の通信路であるパスの設定、記憶ボリューム310の設定等を行うことができる。記録媒体読取装置240は記録媒体270に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ220や記憶装置280に格納される。従って、例えば記録媒体270に記録されたプログラム220Aを、記録媒体読取装置240を用いて上記記録媒体270から読み取って、メモリ220や記憶装置280に記憶するようにすることができる。
記録媒体270としてはフレキシブルディスクやCD−ROM、半導体メモリ等を用いることができる。記録媒体読取装置240は情報処理装置200に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。
記憶装置280は、例えばハードディスク装置や半導体記憶装置等とすることができる。また記憶装置280は情報処理装置200に内蔵されるようにすることもできるし、外付けされるようにすることもできる。外付けされる場合には、通信ネットワークを介して接続される他の情報処理装置200の記憶装置280とすることもできる。またストレージ装置600とすることもできる。入力装置250は情報処理装置200を操作するオペレータ等による情報処理装置200へのデータ入力等のために用いられるユーザインタフェースである。入力装置250としては例えばキーボードやマウス等が用いられる。出力装置260は情報を外部に出力するためのユーザインタフェースである。出力装置260としては例えばディスプレイやプリンタ等が用いられる。ポート230は、チャネル制御部110と通信を行うための装置である。またポート230は、LAN400等の通信ネットワークを通じて他の情報処理装置200や管理端末160と通信を行うことができるようにすることもできる。この場合、例えばプログラム220Aをポート230を介して他の情報処理装置200から受信して、メモリ220や記憶装置280に記憶するようにすることもできる。
===バックアップデータの作成===
上述したように、本実施の形態においてはストレージ装置1乃至3(データストレージ装置、他のストレージ装置、第1のストレージ装置)(600)に記憶されるデータをバックアップするためのデータがストレージ装置4(パリティストレージ装置、第2のストレージ装置)(600)に記憶される。そこでまず、ストレージ装置4(600)にストレージ装置1乃至3(600)に記憶されるデータをバックアップするためのデータを記憶する際の処理の流れについて、図14乃至図26を用いて説明する。
データストレージ装置600に記憶されるデータをバックアップするためのデータをパリティストレージ装置600に記憶する場合のやり方として、同期方式、又は非同期方式を採用することができる。
同期方式とは、パリティストレージ装置600に通信可能に接続される全てのデータストレージ装置600に記憶されるデータを用いて排他的論理和を演算し、その演算結果であるパリティデータをパリティストレージ装置600に記憶する方式をいう。従って、例えばパリティストレージ装置600に通信可能に接続されるデータストレージ装置600が追加される場合には、同期方式の場合には、追加されるストレージ装置600を含む全てのデータストレージ装置600に記憶されるデータを用いて再度排他的論理和が演算され、パリティストレージ装置600に記憶される。
これを式で表せば以下のようになる。すなわち例えば、データストレージ装置600がストレージ装置1(600)とストレージ装置2(600)との2台の場合に、データストレージ装置としてストレージ装置3(600)が追加される場合には、ストレージ装置1(600)に記憶されるデータをD1、ストレージ装置2(600)に記憶されるデータをD2、ストレージ装置3(600)に記憶されるデータをD3とすれば、パリティストレージ装置600に記憶されるデータは、ストレージ装置3(600)が追加される際に、D1(EXOR)D2(EXOR)D3が演算されることにより作成される。
一方、非同期方式とは、パリティストレージ装置600に通信可能に接続されるデータストレージ装置600が追加される場合に、パリティストレージ装置600に元々記憶されるデータと追加されるストレージ装置600に記憶されるデータとを用いて排他的論理和が演算され、パリティストレージ装置600に記憶される方式をいう。
同様にこれを式で表せば以下のようになる。すなわちストレージ装置3(600)が追加される前にパリティストレージ装置600に記憶されていたデータをD4とすれば、ストレージ装置3(600)が追加される際に、D4(EXOR)D3が演算されることによりパリティストレージ装置600に記憶されるデータが作成される。
まず図14に、同期方式の場合の処理の流れを、パリティストレージ装置600における処理と、データストレージ装置600における処理とを分けて示す。
まずパリティストレージ装置600は設定入力情報を受け付ける(S1000)。設定入力情報の受付は、例えば図15に示すようなウインドウ画面を、管理端末160が備える出力装置166に表示し、オペレータ等からの入力を入力装置166から受け付けることにより行うことができる。オペレータ等から受け付ける設定内容は、例えば「パリティブロック長」、「パリティグループ構成ストレージ装置」、「パリティデータ記憶ストレージ装置」、「初期化方式」とすることができる。
「パリティブロック長」欄は、パリティブロックの大きさを定義するための欄である。パリティブロックとは、ストレージ装置600が備えるハードディスクドライブのデータ記憶領域を論理的に区分してなる記憶領域(記憶ブロック)を言う。パリティブロック長はパリティブロックのサイズである。図15には、パリティブロック長を512バイトとする場合の例が示される。各パリティブロックは、ストレージ装置600内において一意に付与される識別子(パリティブロック番号)により特定される。
「パリティグループ構成ストレージ装置」欄は、データストレージ装置600を構成するストレージ装置600を定義するための欄である。図15には、データストレージ装置600として、ストレージ装置1乃至3(600)を定義する場合の例が示される。
「パリティデータ記憶ストレージ装置」欄は、データストレージ装置600に記憶されるデータをバックアップするためのデータを記憶するパリティストレージ装置600を構成するストレージ装置600を定義するための欄である。図15には、パリティストレージ装置600として、ストレージ装置4(600)を定義する場合の例が示される。
「初期化方式」欄は、データストレージ装置600からパリティストレージ装置600へのデータの送信のやり方を定義するための欄である。「初期化方式」には”順次式”と”ランダム式”とがある。”順次式”の場合は、データストレージ装置600の各パリティブロックに記憶されるデータがパリティブロック番号順に、パリティストレージ装置600に送信される。”ランダム式”の場合には、データストレージ装置600が情報処理装置200からデータ書き込み要求を受信するのを契機に、データ書き込み要求の対象となったパリティブロックに記憶されるデータと書き込みデータとの排他的論理和の演算結果がパリティストレージ装置600に送信される。なお”ランダム式”において、データストレージ装置600が情報処理装置200からデータ読み出し要求を受信するのを契機に、データ読み出し要求の対象となったパリティブロックに記憶されるデータがパリティストレージ装置600に送信されるようにすることもできる。
図15の画面において、マウス等により”OK”欄をクリックすることにより、これらの設定入力情報がストレージ装置600に入力される。
そうするとパリティストレージ装置600は、パリティブロック長を用いてパリティブロック数を求める(S1001)。具体的には、パリティストレージ装置600が備える記憶領域の記憶容量をパリティブロック長で割って求めた値がパリティブロック数となる。
そしてパリティストレージ装置600は、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S1002)。パリティグループ管理テーブル710を図10に示す。またパリティブロック管理テーブル720を図11に示す。
パリティグループ管理テーブル710は、「データ記憶ストレージ装置」欄と、「パリティ記憶ストレージ装置」欄とを備える。「データ記憶ストレージ装置」欄にはデータストレージ装置600が記憶される。「パリティ記憶ストレージ装置」欄にはパリティストレージ装置600が記憶される。上述したように、パリティグループ管理テーブル710は共有メモリ120に記憶される。
一方パリティブロック管理テーブル720は、「パリティブロック長」欄と、「パリティブロック数」欄と、「論理ボリューム番号」欄とを備える。「パリティブロック長」欄にはパリティブロック長が記憶される。「パリティブロック数」欄にはパリティブロック数が記憶される。「論理ボリューム番号」欄には、ストレージ装置600が備える各論理ボリュームの各記憶領域の先頭のパリティブロック番号が記憶される。上述したように、パリティブロック管理テーブル720も共有メモリ120に記憶される。
続いてパリティストレージ装置600は、各データストレージ装置600へこれらの設定入力情報を送信する(S1003)。
そうすると各データストレージ装置600は、パリティストレージ装置600から送信されたパリティブロック長を用いてパリティブロック数を求め(S1004)、パリティストレージ装置600と同様に、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S1005)。
このように、パリティストレージ装置600とデータストレージ装置600とで、それぞれの記憶領域をパリティデータ長毎に論理的に区分することにより、両ストレージ装置600の記憶領域をパリティブロック毎に対応付けることが可能となる。例えばパリティストレージ装置600とデータストレージ装置600とで同一のパリティブロック番号で特定されるパリティブロック同士を対応づけることが可能となる。その様子を示したのが図16である。図16においては、パリティブロック番号を特定(パリティブロック番号12356)することにより、パリティストレージ装置600とデータストレージ装置600とのそれぞれのパリティブロックを特定することができることが示される。
このようにすることにより、記憶ボリューム310の制御の方式が異なるストレージ装置600を用いてストレージシステムを構成する場合にも、データストレージ装置600に記憶されるデータをバックアップすることができるようになる。
なお記憶ボリューム310の制御の方式としては、例えば、メインフレーム系情報処理システムで使用されることの多いCKD(Count Key Data)方式や、オープン系情報処理システムで使用されることの多いFBA(Fixed Block Architecture)方式等がある。
次に各データストレージ装置600は、パリティストレージ装置600へ、S1004にて求めたパリティブロック数を送信する(S1006)。
パリティストレージ装置600は、各データストレージ装置600からそれぞれのパリティブロック数を受信すると、S1001で求めたパリティブロック数と比較し、パリティ生成可否を判定する(S1007)。S1001で求めたパリティブロック数よりも大きなパリティブロック数をデータストレージ装置600から受信した場合には、S1007において”否”に進み、同期初期コピー不可の旨を管理端末160の出力装置166に表示して処理を終了する(S1015)。なぜならばこの場合、データストレージ装置600の各パリティブロックに記憶されるデータのうち、パリティストレージ装置600のパリティブロック番号(パリティブロックの識別子)の最大値よりも大きなパリティブロック番号で特定されるパリティブロックに記憶されるデータをバックアップするためのデータをパリティストレージ装置600に記憶することはできないからである。
パリティストレージ装置600は、S1001で求めたパリティブロック数よりも大きなパリティブロック数をデータストレージ装置600から受信しない場合には、S1007において”可”に進み、パリティブロック数統括管理テーブル730を作成する(S1008)。パリティブロック数統括管理テーブル730を図12に示す。図12に示すように、パリティブロック数統括管理テーブル730には各ストレージ装置600のパリティブロック数が記憶される。なお、パリティストレージ装置600にてS1007におけるパリティ生成可否が判定される様子を示す図を図17に示す。
続いてパリティストレージ装置600は、各データストレージ装置600へ、各パリティブロックに記憶されるデータをパリティブロック番号順に先頭から順次送信するように要求を送る(S1009)。そうすると各データストレージ装置600は、要求に従って、各パリティブロックに記憶されるデータ(第1の記憶データ)の複製を先頭から順次、パリティブロック番号(第1の識別子)と共に送信する(S1010)。
ここで各ストレージ装置600間でデータを授受する際のデータフォーマットを図33に示す。データフォーマットは、「パリティブロック番号」欄と、「ステータス情報」欄と、「データ」欄とを含む。「パリティブロック番号」欄には、授受されるデータのパリティブロック番号が記載される。「ステータス情報」欄には各種制御情報が記載される。例えば、データの送信先ストレージ装置600を示す情報や、送信元ストレージ装置600を示す情報、あるいは、このデータフォーマットにより送信されるデータがパリティデータを作成するために用いられるデータである旨の情報、後述する情報処理装置200により更新されたデータである旨の情報、「データ」欄に記載されるデータのデータ長すなわちパリティブロック長等が記載される。「データ」欄は、授受されるデータが記載される。
パリティストレージ装置600は、データストレージ装置600のそれぞれから、パリティブロックのそれぞれに記憶されるデータの複製を、各パリティブロックを特定するパリティブロック番号(第1の識別子)と共に受信する。そしてパリティストレージ装置600は、データストレージ装置600のそれぞれから受信した各パリティブロックのデータの複製のうち、パリティブロック番号が同一のデータの複製の排他的論理和を演算する(S1011)。その後、パリティストレージ装置600のパリティブロックのそれぞれを特定するパリティブロック番号(第2の識別子)が、データストレージ装置600から受信したパリティブロック番号と同一のパリティブロックに、排他的論理和の演算結果を記憶する(S1012)。
そしてパリティストレージ装置600は初期データ管理テーブル740を更新する(S1013)。初期データ管理テーブル740は、各データストレージ装置600に記憶されるデータのバックアップがどこまで行われているかを示すためのテーブルである。初期データ管理テーブル740の例を図13に示す。図13(A)は、データストレージ装置600単位で、各データストレージ装置600に記憶されるデータのバックアップがどこまで行われているかを示す場合の例である。
すなわち、「再計算中」欄が”OFF”のデータストレージ装置600は、すでにデータのバックアップのための計算、すなわち排他的論理和の演算が完了していることを示す。「再計算中」欄が”ON”のデータストレージ装置600は、未だデータのバックアップのための計算、すなわち排他的論理和の演算が完了していないことを示す。同期方式でバックアップデータの作成が行われる場合には、図13(A)に示す初期データ管理テーブル740の「再計算中」欄は、全てのデータストレージ装置600について”ON”であるか、全てのデータストレージ装置600について”OFF”であるかのいずれかになる。図13(B)は、排他的論理和の演算のためのデータの送信が順方式行われる場合に、「再計算中」欄が”ON”のデータストレージ装置600に対して、どのパリティブロックまで排他的論理和の演算が完了しているかを示す「再計算位置」欄を備える場合の例である。図13(C)は、排他的論理和の演算のためのデータの送信がランダム式で行われる場合に、「再計算中」欄が”ON”のデータストレージ装置600に対して、どのパリティブロックの排他的論理和の演算が完了しているかを示すための「再計算終了」欄を備える場合の例である。初期データ管理テーブル740としては、適宜、図13の(A)、(B)、又は(C)を採用することができる。
図13(A)を採用した場合の初期データ管理テーブル740の更新の様子を図18に示す。図13(B)を採用した場合の初期データ管理テーブル740の更新の様子を図19に示す。図13(C)を採用した場合の初期データ管理テーブル740の更新の様子を図20に示す。
最後にパリティストレージ装置600は、初期データ管理テーブル740を参照し、全てのパリティブロックについての排他的論理和の演算結果を記憶したか否かを確認し(S1014)、”Yes”の場合は処理を終了する。
以上の処理により、パリティストレージ装置600の各パリティブロックには、各データストレージ装置600のそれぞれ対応する各パリティブロックのデータにより演算された排他的論理和の演算結果を記憶することができる。なお、ここではパリティ生成可否の判定をパリティストレージ装置600で行ったが(S1007)、各データストレージ装置600で行うようにすることもできる。その場合の処理の流れを図21に示す。
まずパリティストレージ装置600は設定入力情報を受け付ける(S2000)。
そうするとパリティストレージ装置600は、パリティブロック長を用いてパリティブロック数を求める(S2001)。
そしてパリティストレージ装置600は、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S2002)。
続いてパリティストレージ装置600は、各データストレージ装置600へこれらの設定入力情報と、S2001にて求めたパリティブロック数とを送信する(S2003)。
そうすると各データストレージ装置600は、パリティストレージ装置600から送信されたパリティブロック長を用いてパリティブロック数を求め(S2004)、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S2005)。
各データストレージ装置600は、パリティストレージ装置600から送信されたパリティブロック数と、S2004にて求めたパリティブロック数とを比較し(S2006)、パリティ生成可否を判定する。パリティストレージ装置600から送信されたパリティブロック数の方がS2004にて求めたパリティブロック数よりも大きい場合には、パリティ生成可能と判定し、パリティストレージ装置600から送信されたパリティブロック数の方がS2004にて求めたパリティブロック数よりも小さい場合には、パリティ生成不可と判定する。そしてその判定の結果をパリティストレージ装置600へ送信する(S2007)。
パリティストレージ装置600は、各データストレージ装置600からそれぞれのパリティ生成可否の判定結果を受信し、一つでもパリティ生成不可の判定結果があった場合には、S2008において”否”に進み、同期初期コピー不可の旨を管理端末160の出力装置166に表示して処理を終了する(S2016)。一方、全てパリティ生成可能の判定であった場合には、”可”に進み、パリティブロック数統括管理テーブル730を作成する(S2009)。
続いてパリティストレージ装置600は、各データストレージ装置600へ、各パリティブロックに記憶されるデータをパリティブロック番号順に先頭から順次送信するように要求を送る(S2010)。そうすると各データストレージ装置600は、要求に従って、各パリティブロックに記憶されるデータの複製を先頭から順次、パリティブロック番号と共に送信する(S2011)。
そしてパリティストレージ装置600は、データストレージ装置600のそれぞれから、パリティブロックのそれぞれに記憶されるデータの複製を、各パリティブロックを特定するパリティブロック番号と共に受信し、データストレージ装置600のそれぞれから受信した各パリティブロックのデータの複製のうち、パリティブロック番号が同一のデータの複製の排他的論理和を演算する(S2012)。その後、パリティストレージ装置600のパリティブロックのそれぞれを特定するパリティブロック番号が、データストレージ装置600から受信したパリティブロック番号と同一のパリティブロックに、排他的論理和の演算結果を記憶する(S2013)。
そしてパリティストレージ装置600は初期データ管理テーブル740を更新する(S2014)。
最後にパリティストレージ装置600は、初期データ管理テーブル740を参照し、全てのパリティブロックについての排他的論理和の演算結果を記憶したか否かを確認し(S2015)、”Yes”の場合は処理を終了する。
各データストレージ装置600にてパリティ生成可否が判定される場合の処理の様子を図22に示す。
次に、図15の同期方式パリティグループ設定画面において、「初期化方式」欄に”ランダム式”が入力される場合の処理の流れを図23に示す。
まずパリティストレージ装置600は設定入力情報を受け付ける(S3000)。
パリティストレージ装置600は、入力されたパリティブロック長を用いてパリティブロック数を求める(S3001)。
そしてパリティストレージ装置600は、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S3002)。
続いてパリティストレージ装置600は、各データストレージ装置600へこれらの設定入力情報を送信する(S3003)。
そうすると各データストレージ装置600は、パリティストレージ装置600から送信されたパリティブロック長を用いてパリティブロック数を求め(S3004)、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S3005)。
各データストレージ装置600は、パリティストレージ装置600へ、S3004にて求めたパリティブロック数を送信する(S3006)。
パリティストレージ装置600は、各データストレージ装置600からそれぞれのパリティブロック数を受信すると、S3001で求めたパリティブロック数と比較し、パリティ生成可否を判定する(S3007)。S3001で求めたパリティブロック数よりも大きなパリティブロック数をデータストレージ装置600から受信した場合には、S3007において”否”に進み、同期初期コピー不可の旨を管理端末160の出力装置166に表示して処理を終了する(S3009)。
パリティストレージ装置600は、S3001で求めたパリティブロック数よりも大きなパリティブロック数をデータストレージ装置600から受信しない場合には、S3007において”可”に進み、パリティブロック数統括管理テーブル730を作成する(S3008)。
その後は、パリティストレージ装置600は、情報処理装置200からデータ書き込み要求を受信したデータストレージ装置600から、データ書き込み要求の対象となったパリティブロックに記憶されるデータと書き込みデータとの排他的論理和の演算結果を、そのデータ書き込み要求の対象となったパリティブロック番号と共に受信し、同一パリティブロック番号の演算結果が各データストレージ装置600から送信される毎にそれらの排他的論理和を演算し、対応するパリティブロックにその排他的論理和の演算結果を記憶する。
このようにすることにより、パリティストレージ装置600の各パリティブロックには、各データストレージ装置600のそれぞれ対応するパリティブロックのデータにより演算された排他的論理和の演算結果を記憶することができる。
次に、非同期方式によりデータストレージ装置600に記憶されるデータをバックアップするためのデータをパリティストレージ装置600に記憶する場合の処理の流れについて図24を用いて説明する。
まずパリティストレージ装置600は設定入力情報を受け付ける(S4000)。非同期方式の場合の設定入力情報の受付は、例えば図25に示すようなウインドウ画面を、管理端末160が備える出力装置166に表示し、オペレータ等からの入力を入力装置166から受け付けることにより行うことができる。オペレータ等から受け付ける設定内容は、例えば「追加するデータストレージ装置」、「初期化方式」、「削除するデータストレージ装置」とすることができる。
図25に示すウインドウ画面においては、「現在の構成」欄に、現在のストレージシステムの構成が示される。すなわち、パリティストレージ装置600はストレージ装置4(600)であり、データストレージ装置600はストレージ装置1(600)とストレージ装置2(600)であり、パリティブロック長が512バイトであることが示される。この場合、ストレージ装置4(600)のハードディスクドライブの各パリティブロックには、ストレージ装置1(600)とストレージ装置2(600)とのそれぞれ対応するパリティブロックに記憶されるデータから演算された排他的論理和の全ての演算結果が記憶されている。図25には、このような「現在の構成」に対して、ストレージ装置3(600)をデータストレージ装置600として追加する場合の例が示される。もちろん、図25に示すウインドウ画面は一例であり、例えばパリティストレージ装置600を変更するような入力を行えるようにすることもできるし、パリティブロック長を変更するような入力を行えるようにすることも可能である。
図25の画面において、マウス等により”OK”欄をクリックすることにより、これらの設定入力情報がストレージ装置600に入力される。なお、図25には「初期化方式」欄が”ランダム方式”となっているが、図24に示すフローチャートは”順次式”の場合の例を示す。”ランダム式”の場合のフローチャートは図26に示す。また「削除するデータストレージ装置」欄にデータストレージ装置600が記載された場合のフローチャートは、図32に示す。
そうするとパリティストレージ装置600は、まず「追加するデータストレージ装置」欄に記載されたデータストレージ装置600が最初のストレージ装置600であるか否かを判定する(S4001)。最初のストレージ装置600とは、最初のデータストレージ装置600をいう。つまり図25の非同期式パリティグループ設定画面の「現在の構成」欄の「データストレージ装置」欄にデータストレージ装置600が記載されていない場合には、「追加するデータストレージ装置」欄に記載されたストレージ装置600は最初のストレージ装置600となる。最初のストレージ装置600でない場合にはS4001において”No”に進む。
また最初のストレージ装置600である場合にはS4001において”Yes”に進む。そしてパリティストレージ装置600は、パリティブロック長を用いてパリティブロック数を求める(S4002)。
そしてパリティストレージ装置600は、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S4003)。
続いてパリティストレージ装置600は、追加されるデータストレージ装置600へパリティブロック長を送信する(S4004)。
そうすると追加されるデータストレージ装置600は、パリティストレージ装置600から送信されたパリティブロック長を用いてパリティブロック数を求め(S4005)、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S4006)。
追加されるデータストレージ装置600は、パリティストレージ装置600へ、S4005にて求めたパリティブロック数を送信する(S4007)。
パリティストレージ装置600は、追加されるデータストレージ装置600からパリティブロック数を受信すると、S4002で求めたパリティブロック数と比較し、パリティ生成可否を判定する(S4008)。S4002で求めたパリティブロック数よりも大きなパリティブロック数を追加されるデータストレージ装置600から受信した場合には、S4008において”否”に進み、データストレージ装置600の追加が不可である旨を管理端末160の出力装置166に表示して処理を終了する(S4016)。
パリティストレージ装置600は、S4002で求めたパリティブロック数よりも大きなパリティブロック数を追加されるデータストレージ装置600から受信しない場合には、S4008において”可”に進み、パリティブロック数統括管理テーブル730を作成する(S4009)。
続いてパリティストレージ装置600は、追加されるデータストレージ装置600へ、各パリティブロックに記憶されるデータ(第1の記憶データ)の複製をパリティブロック番号と共にパリティブロック番号順に先頭から順次送信させるための送信要求を送信する(S4010)。そうすると追加されるデータストレージ装置600は、送信要求に応じて、各パリティブロックに記憶されるデータの複製を先頭から順次、パリティブロック番号と共にパリティストレージ装置600に送信する(S4011)。
そしてパリティストレージ装置600は、追加されるデータストレージ装置600から、パリティブロックのそれぞれに記憶されるデータの複製を、パリティブロック番号と共に受信し、追加されたデータストレージ装置600から受信した各パリティブロックのデータの複製と、そのパリティブロック番号と同一のパリティブロック番号で特定されるパリティストレージ装置600のバリティブロックのデータ(旧パリティデータ、第2の記憶データ)との排他的論理和を演算し(S4012)、その演算結果(新パリティデータ)を旧パリティデータが記憶されていたパリティストレージ装置600のバリティブロックに記憶する(S4013)。
そしてパリティストレージ装置600は初期データ管理テーブル740を更新する(S4014)。
最後にパリティストレージ装置600は、初期データ管理テーブル740を参照して、全てのパリティブロックについての排他的論理和の演算結果を記憶したか否かを確認し(S4015)、”Yes”の場合は処理を終了する。
以上の処理により、パリティストレージ装置600の各パリティブロックには、追加されたデータストレージ装置600を含む、各データストレージ装置600のそれぞれ対応するパリティブロックのデータにより演算された排他的論理和の演算結果を記憶することができる。
次に、図25の非同期方式パリティグループ設定画面において、「初期化方式」欄に”ランダム式”が入力される場合の処理の流れを図26に示す。
まずパリティストレージ装置600は設定入力情報を受け付ける(S5000)。
そうするとパリティストレージ装置600は、まず「追加するデータストレージ装置」欄に記載されたデータストレージ装置600が最初のストレージ装置600であるか否かを判定する(S5001)。最初のストレージ装置600でない場合にはS5001において”No”に進む。
また最初のストレージ装置600である場合にはS5001において”Yes”に進む。そしてパリティストレージ装置600は、パリティブロック長を用いてパリティブロック数を求める(S5002)。
そしてパリティストレージ装置600は、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S5003)。
続いてパリティストレージ装置600は、追加されるデータストレージ装置600へパリティブロック長を送信する(S5004)。
そうすると追加されるデータストレージ装置600は、パリティストレージ装置600から送信されたパリティブロック長を用いてパリティブロック数を求め(S5005)、パリティグループ管理テーブル710とパリティブロック管理テーブル720とを作成する(S5006)。
追加されるデータストレージ装置600は、パリティストレージ装置600へ、S5005にて求めたパリティブロック数を送信する(S5007)。
パリティストレージ装置600は、追加されるデータストレージ装置600からパリティブロック数を受信すると、S5002で求めたパリティブロック数と比較し、パリティ生成可否を判定する(S5008)。S5002で求めたパリティブロック数よりも大きなパリティブロック数を追加されるデータストレージ装置600から受信した場合には、S5008において”否”に進み、データストレージ装置600の追加が不可である旨を管理端末160の出力装置166に表示して処理を終了する(S5010)。
パリティストレージ装置600は、S5002で求めたパリティブロック数よりも大きなパリティブロック数を追加されるデータストレージ装置600から受信しない場合には、S5008において”可”に進み、パリティブロック数統括管理テーブル730を作成する(S5009)。以上で処理を終了する。
その後、追加されたデータストレージ装置600は、情報処理装置200からハードディスクドライブへの書き込みデータを受信した場合に、書き込みデータと書き込みデータが書き込まれるパリティブロックに記憶されているデータとの排他的論理和を演算し、その演算結果を、書き込みデータが書き込まれるパリティブロックのパリティブロック番号と共にパリティストレージ装置600へ送信する。
そして、パリティストレージ装置600は、追加されたデータストレージ装置600が情報処理装置200からハードディスクドライブへの書き込みデータを受信した場合に、追加されたデータストレージ装置600により演算される、書き込みデータと書き込みデータが書き込まれるパリティブロックに記憶されているデータとの排他的論理和の演算結果を、書き込みデータが書き込まれるパリティブロックのパリティブロック番号と共に、追加されたデータストレージ装置600から受信し、受信した排他的論理和の演算結果と、受信したパリティブロック番号と同一のパリティブロック番号で特定されるパリティストレージ装置600のハードディスクドライブのパリティブロックに記憶されているデータとの排他的論理和を演算し、その排他的論理和の演算結果を、パリティストレージ装置600のパリティブロックに記憶する。
このようにすることにより、パリティストレージ装置600の各パリティブロックには、追加されたデータストレージ装置600を含む各データストレージ装置600のそれぞれ対応するパリティブロックのデータにより演算された排他的論理和の演算結果を記憶することができる。
次に、図25の非同期方式パリティグループ設定画面において、「削除するデータストレージ装置」欄にデータストレージ装置が入力される場合の処理の流れを図32に示す。
データストレージ装置600をストレージシステムから削除する場合には、パリティストレージ装置600に記憶されているデータと、削除するデータストレージ装置600に記憶されているデータとの排他的論理和を演算し、その演算結果をパリティストレージ装置600に記憶するようにすればよい。
これは、例えばデータストレージ装置600として、ストレージ装置1(600)、ストレージ装置2(600)、ストレージ装置3(600)を備えるストレージシステムからストレージ装置3(600)を削除する場合を考えると、ストレージ装置1(600)に記憶されるデータをD1、ストレージ装置2(600)に記憶されるデータをD2、ストレージ装置3(600)に記憶されるデータをD3とすれば、パリティストレージ装置600に記憶されるデータであるD4は、D1(EXOR)D2(EXOR)D3であるが、D4(EXOR)D3を演算すると、D1(EXOR)D2となるからである。
データストレージ装置600を削除する場合の処理の流れを図32に示す。
まずパリティストレージ装置600は設定入力情報を受け付ける(S9000)。
そうするとパリティストレージ装置600は、削除されるデータストレージ装置600へ、各パリティブロックに記憶されるデータをパリティブロック番号順に先頭から順次送信するように要求を送る(S9001)。そうすると削除されるデータストレージ装置600は、要求に従って、各パリティブロックに記憶されるデータの複製を先頭から順次、パリティブロック番号と共に送信する(S9002)。
そしてパリティストレージ装置600は、削除されるデータストレージ装置600から、各パリティブロックのそれぞれに記憶されるデータの複製をパリティブロック番号と共に受信し、削除されるデータストレージ装置600から受信した各パリティブロックのデータの複製と、そのパリティブロック番号と同一のパリティブロック番号で特定されるパリティストレージ装置600のバリティブロックのデータ(旧パリティデータ)との排他的論理和を演算し(S9003)、その演算結果(新パリティデータ)を旧パリティデータが記憶されていたパリティストレージ装置600のバリティブロックに記憶する(S9004)。そしてパリティストレージ装置600は、初期データ管理テーブル740を更新する(S9005)。以上の処理を全てのパリティブロックについて行う(S9006)。
以上の処理により、パリティストレージ装置600の各パリティブロックには、削除されるデータストレージ装置600を除く、各データストレージ装置600のそれぞれ対応するパリティブロックのデータにより演算された排他的論理和の演算結果を記憶することができる。
===バックアップデータの更新===
上記のようにして、パリティストレージ装置600が備えるハードディスクドライブの各パリティブロックに、各データストレージ装置600のデータをバックアップするためのデータ、すなわち各データストレージ装置600のそれぞれ対応するパリティブロックに記憶されるデータにより演算された排他的論理和の全ての演算結果、が記憶される。その後は、各データストレージ装置600が情報処理装置200からデータ書き込み要求を受信しハードディスクドライブに記憶されるデータが更新される毎に、パリティストレージ装置600に記憶されるデータストレージ装置600のデータをバックアップするためのデータの更新が行われる。パリティストレージ装置600に記憶されるデータストレージ装置600のデータをバックアップするためのデータを更新する際の処理の流れを図27に示す。
まずデータストレージ装置600は、情報処理装置200からデータ書き込み要求と共に書き込みデータ(DNEW)を受信する(S6000)。そうするとデータストレージ装置600は、その書き込みデータが書き込まれる記憶ボリューム310のパリティブロックに記憶されているデータ(旧データ、DOLD)を読み出す(S6001)。次にデータストレージ装置600は、書き込みデータと、その書き込みデータが書き込まれる記憶ボリューム310のパリティブロックに記憶されているデータとの排他的論理和を演算する(S6002)。そしてその排他的論理和の演算結果を、パリティブロック番号と共にパリティストレージ装置600に送信する(S6003)。
パリティストレージ装置600は、上記排他的論理和の演算結果をパリティブロック番号と共に受信すると、そのパリティブロック番号と同一のパリティブロック番号で特定されるパリティストレージ装置600のパリティブロックに記憶されているデータ(パリティデータ、POLD)を読み出す(S6004)。そして読み出したパリティデータと上記排他的論理和の演算結果との排他的論理和を演算する(S6005)。そして、その演算結果(PNEW)を、上記パリティブロックに記憶する(S6006)。
このようにすることにより、データストレージ装置600に記憶されるデータが情報処理装置200からのデータ書き込み要求により更新された場合に、パリティストレージ装置600に記憶される、データストレージ装置600のデータをバックアップするためのデータも更新することができる。
===データの復元===
次に、データストレージ装置600に記憶されるデータを復元する場合の処理の流れについて図28乃至31を用いて説明する。ここでは例として、データストレージ装置としてストレージ装置1(600)、ストレージ装置2(600)、ストレージ装置3(600)を備えるストレージシステムにおいて、ストレージ装置1(ある他のストレージ装置、第1のストレージ装置)(600)に記憶されるデータを復元する場合について説明する。また図29に示すように、ストレージ装置1(600)のパリティブロック数は500000であり、ストレージ装置2(600)のパリティブロック数は600000であり、ストレージ装置3(600)のパリティブロック数は700000であり、パリティストレージ装置600のパリティブロック数は800000であるとして説明する。
ここで、ストレージ装置1(600)に記憶されているデータを復元するやり方として2つの方式が考えられる。すなわち、第1の方式は、パリティストレージ装置600が、ストレージ装置1(600)のデータを復元するために必要な500000個のパリティブロックのデータをストレージ装置2(600)及びストレージ装置3(600)から受信し、それによりストレージ装置1(600)のデータを復元するやり方である。一方、第2の方式は、パリティストレージ装置600が、パリティストレージ装置600のパリティブロック数である800000個のパリティブロックのデータをストレージ装置2(600)及びストレージ装置3(600)から受信し、それにより800000個のパリティブロックのデータを復元してストレージ装置1(600)に送信するやり方である。第1の方式でデータの復元を行う場合には、データの復元時にストレージ装置600間で授受されるデータの転送量が最小限で済むという利点がある。またそのためデータの回復を比較的短時間で行うことが可能であるという利点がある。一方第2の方式でデータの復元を行う場合には、パリティストレージ装置600は、各データストレージ装置600のパリティブロック数を管理する必要が無い、すなわち図12に示したパリティブロック数統括管理テーブル730を共有メモリ120に記憶しておく必要がないという利点がある。
まず第1の方式を図28、図29を用いて説明する。
ストレージ装置1(600)は、障害検知プログラム840によりハードディスクドライブに記憶されているデータに異常を検出すると(S7000)、パリティストレージ装置600に対して、ハードディスクドライブの各パリティブロックに記憶されているべき元のデータの送信要求を送信する(S7001)。
パリティストレージ装置600は、上記送信要求を受信すると、その送信要求に応じて、パリティブロック数統括管理テーブル730を参照し、ストレージ装置1(600)以外のストレージ装置(第1の記憶データの送信要求を送信した第1のストレージ装置以外の第1のストレージ装置)600、すなわち、ストレージ装置2(600)とストレージ装置3(600)とに、それぞれ、パリティブロック番号0〜499999の合計500000個のパリティブロックのデータの複製を、各パリティブロック番号と共に送信させるための送信要求を送信する(S7002)。
そうすると、ストレージ装置2(600)及びストレージ装置3(600)のそれぞれは、上記送信要求に従い、パリティブロック番号0〜499999のパリティブロックのデータの複製を、各パリティブロック番号と共に送信する(S7003、S7004)。
パリティストレージ装置600は、ストレージ装置2(600)及びストレージ装置3(600)のそれぞれから、パリティブロック番号0〜499999のパリティブロックのデータの複製を、各パリティブロック番号と共に受信すると、パリティブロック番号が同一の上記受信したデータの複製と、そのパリティブロック番号と同一のパリティストレージ装置600のパリティブロックに記憶されているデータとの排他的論理和を演算する(S7005)。そしてその排他的論理和の演算結果を、パリティブロック番号と共に、ストレージ装置1(600)に送信する(S7006、S7007)。
そしてストレージ装置1(600)は、その演算結果をパリティブロック番号と共に受信し、そのパリティブロック番号で特定される記憶ボリューム310のパリティブロックに書き込む(S7008、S7009)。
これにより、ストレージ装置1(600)に記憶されるデータを復元することができる。
次に第2の方式を図30、図31を用いて説明する。
ストレージ装置1(600)は、障害検知プログラム840によりハードディスクドライブに記憶されているデータに異常を検出すると(S8000)、パリティストレージ装置600に対してハードディスクドライブの各パリティブロックに記憶されているべき元のデータの送信要求を送信する(S8001)。
パリティストレージ装置600は、上記送信要求を受信すると、その送信要求に応じて、ストレージ装置1(600)以外のストレージ装置(第1の記憶データの送信要求を送信した第1のストレージ装置以外の第1のストレージ装置)600、すなわち、ストレージ装置2(600)とストレージ装置3(600)とに、それぞれ、パリティブロック番号0〜799999の合計800000個のパリティブロックのデータの複製を、各パリティブロック番号と共に送信させるための送信要求を送信する(S8002)。
そうすると、ストレージ装置2(600)及びストレージ装置3(600)のそれぞれは、上記送信要求に従い、パリティブロック番号0〜799999のパリティブロックのデータの複製を、各パリティブロック番号と共に送信する(S8003、S8004)。ここで、ストレージ装置2(600)についてはパリティブロック数が600000であるので、パリティブロック番号600000から799999のパリティブロックは存在しない。そのためストレージ装置2(600)は、パリティブロック番号600000から799999のパリティブロックについては、0が記憶されているものとして、パリティストレージ装置600にデータを送信するようにする。同様に、ストレージ装置3(600)についてはパリティブロック数が700000であるので、パリティブロック番号700000から799999のパリティブロックは存在しない。そのためストレージ装置3(600)は、パリティブロック番号700000から799999のパリティブロックについては、0が記憶されているものとして、パリティストレージ装置600にデータを送信するようにする。
パリティストレージ装置600は、ストレージ装置2(600)及びストレージ装置3(600)のそれぞれから、パリティブロック番号0〜799999のパリティブロックのデータの複製を、各パリティブロック番号と共に受信すると、パリティブロック番号が同一の上記受信したデータの複製と、そのパリティブロック番号と同一のパリティストレージ装置600のパリティブロックに記憶されているデータとの排他的論理和を演算する(S8005)。そしてその排他的論理和の演算結果を、パリティブロック番号と共に、ストレージ装置1(600)に送信する(S8006、S8007)。
そしてストレージ装置1(600)は、その演算結果をパリティブロック番号と共に受信し、そのパリティブロック番号で特定される記憶ボリューム310のパリティブロックに書き込む(S8008、S8009)。ここで、ストレージ装置1(600)についてはパリティブロック数が500000であるので、パリティブロック番号500000から799999のパリティブロックは存在しない。そのためストレージ装置1(600)は、パリティブロック番号500000から799999のパリティブロックについては、記憶ボリューム310へ書き込まないように制御する。
このように第2の方式によっても、ストレージ装置1(600)に記憶されるデータを復元することができる。
なお上述したデータストレージ装置600に記憶されるデータを復元する場合の処理は、既にパリティストレージ装置600のハードディスクドライブの各パリティブロックには、全てのデータストレージ装置600のパリティブロックに記憶されるデータから演算された排他的論理和の全ての演算結果が記憶されている場合についてのものである。
しかし、ストレージシステムにデータストレージ装置600が追加され、パリティストレージ装置600のパリティブロックに記憶されるデータを非同期方式で更新している間に、あるデータストレージ装置600から、そのデータストレージ装置600のハードディスクドライブに記憶されていた元のデータの復元が要求される場合がある。
この場合、パリティストレージ装置600のどのパリティブロックに記憶されるデータが更新済みであるかを、図13(B)又は図13(C)に示す初期データ管理テーブル740に記憶するようにしている場合には、データストレージ装置600の追加に伴うパリティストレージ装置600のパリティブロックに記憶されるデータの更新が終了するのを待たずに、データの復元を開始することが可能である。
すなわち、パリティストレージ装置600が、障害を検知したデータストレージ装置600以外のデータストレージ装置600に、それぞれの各パリティブロックのデータの複製を各パリティブロック番号と共に送信させるための送信要求を送信する際に、更新済みのパリティブロックのパリティブロック番号で特定されるパリティブロックのデータについては、追加されたデータストレージ装置600を含む、各データストレージ装置600に送信要求を送信するようにし、未更新のパリティブロックのパリティブロック番号で特定されるパリティブロックのデータについては、追加されたデータストレージ装置600を含まない、各データストレージ装置600に送信要求を送信するようにする。
このようにすれば、障害を検知したデータストレージ装置600に対して、いち早く復元したデータを送信することが可能となる。
以上、本実施の形態に係るストレージ装置600について説明したが、本実施の形態によれば、パリティストレージ装置600の各パリティブロックには、複数のデータストレージ装置600のそれぞれ対応する各パリティブロックのデータにより演算された排他的論理和の演算結果を記憶することができる。これにより、データストレージ装置600の記憶領域に記憶されるデータが例えば消失し、そのデータを復元することが必要となった場合には、そのデータストレージ装置以外のストレージ装置600の記憶領域に記憶されるデータを用いて排他的論理和を演算することにより、消失したデータを復元することができる。
つまり本実施の形態によれば、パリティストレージ装置600と通信可能に接続されるデータストレージ装置600の台数が何台であっても、データストレージ装置600の記憶領域に記憶されるデータをバックアップすることが可能となる。これにより、データのバックアップを合理化し、データのバックアップを行うために必要とされるストレージ装置600の数を抑制することができる。このためストレージ装置600を維持管理するためのコスト、さらには情報処理システムを維持管理するためのコストも抑制することも可能となる。
また本実施の形態に係るストレージ装置600は、パリティストレージ装置600とデータストレージ装置600とで、それぞれの記憶領域をパリティデータ長毎に論理的に区分するようにしている。これにより、両ストレージ装置600の記憶領域をパリティブロック毎に対応付けることが可能となる。つまり、パリティストレージ装置600とデータストレージ装置600とで同一のパリティブロック番号で特定されるパリティブロック同士を対応づけることが可能となる。このようにすることにより、メインフレーム系情報処理システムで使用されることの多いCKD方式や、オープン系情報処理システムで使用されることの多いFBA方式等の、記憶ボリューム310の制御の方式が異なるストレージ装置600を用いてストレージシステムを構成する場合にも、データストレージ装置600に記憶されるデータをバックアップすることができるようになる。
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
本実施の形態に係る情報処理システムの全体構成を示すブロック図である。 本実施の形態に係るストレージ装置の全体構成を示すブロック図である。 本実施の形態に係るストレージ装置の外観構成を示す図である。 本実施の形態に係るストレージ制御装置の外観構成を示す図である。 本実施の形態に係る管理端末の構成を示すブロック図である。 本実施の形態に係るチャネル制御部の構成を示すブロック図である。 本実施の形態に係るディスク制御部の構成を示すブロック図である。 本実施の形態に係る情報処理装置の構成を示すブロック図である。 本実施の形態に係る共有メモリに記憶されるテーブルを示す図である。 本実施の形態に係るパリティ管理テーブルを示す図である。 本実施の形態に係るパリティブロック管理テーブルを示す図である。 本実施の形態に係るパリティブロック数統括管理テーブルを示す図である。 本実施の形態に係る初期データ管理テーブルを示す図である。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係る設定画面例を示す図である。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係る設定画面例を示す図である。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置における処理の内容を示す図である。 本実施の形態に係るストレージ装置における処理の流れを示すフローチャートである。 本実施の形態に係るストレージ装置間でのデータ転送フォーマットの一例を示す図である。
符号の説明
100 ストレージ制御装置
110 チャネル制御部
120 共有メモリ
130 キャッシュメモリ
140 ディスク制御部
150 接続部
160 管理端末
200 情報処理装置
300 ストレージ駆動装置
310 記憶ボリューム
500 SAN
600 ストレージ装置
710 パリティグループ管理テーブル
720 パリティブロック管理テーブル
730 パリティブロック数統括管理テーブル
740 初期データ管理テーブル
810 ストレージ制御プログラム
820 データ送受信制御プログラム
830 パリティ制御プログラム
840 障害検出プログラム

Claims (15)

  1. データを記憶する複数の第1のハードディスクドライブを有する複数の他のストレージ装置と通信可能に接続され、
    データを記憶する複数の第2のハードディスクドライブと、
    前記他のストレージ装置のそれぞれから、前記複数の第1のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれに記憶される第1の記憶データの複製を、前記各記憶ブロックを特定する第1の識別子と共に受信する第1の受信部と、
    前記第1の受信部により前記他のストレージ装置のそれぞれから受信された前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製の排他的論理和を演算する第1の演算制御部と、
    前記複数の第2のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれを特定する第2の識別子が前記第1の識別子と対応する前記第2のハードディスクドライブの前記記憶ブロックに、前記第1の演算制御部により演算された前記排他的論理和の演算結果を記憶する第1の記憶制御部と
    を備えることを特徴とするストレージ装置。
  2. 前記第2のハードディスクドライブには、前記第1の演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    前記第1のハードディスクドライブへの書き込みデータを情報処理装置から受信した前記他のストレージ装置により演算される、前記書き込みデータと前記書き込みデータが書き込まれる前記第1のハードディスクドライブの前記記憶ブロックに記憶されている前記第1の記憶データとの排他的論理和の演算結果を、前記書き込みデータが書き込まれる前記記憶ブロックを特定する前記第1の識別子と共に、前記他のストレージ装置から受信する第2の受信部と、
    前記第2の受信部により受信された前記演算結果と、前記第2の受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第2の演算制御部と、
    前記第2の演算制御部により演算された前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶する第2の記憶制御部と
    を備えることを特徴とする請求項1に記載のストレージ装置。
  3. 前記第2のハードディスクドライブには、前記第1の演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    通信可能に接続される前記他のストレージ装置が追加された場合に、
    前記追加された他のストレージ装置から、前記追加された他のストレージ装置が有する前記第1のハードディスクドライブの前記記憶ブロックのそれぞれに記憶される前記第1の記憶データの複製を、前記第1の識別子と共に受信する第3の受信部と、
    前記第3の受信部により受信された前記第1の記憶データの複製と、前記第3の受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第3の演算制御部と、
    前記第3の演算制御部により演算された前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶する第3の記憶制御部と
    を備えることを特徴とする請求項1に記載のストレージ装置。
  4. 前記第2のハードディスクドライブには、前記第1の演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    通信可能に接続される前記他のストレージ装置が追加された場合に、
    前記追加された他のストレージ装置が有する前記第1のハードディスクドライブへの書き込みデータを情報処理装置から受信した前記追加された他のストレージ装置により演算される、前記書き込みデータと前記書き込みデータが書き込まれる前記第1のハードディスクドライブの前記記憶ブロックに記憶されている前記第1の記憶データとの排他的論理和の演算結果を、前記書き込みデータが書き込まれる前記記憶ブロックを特定する前記第1の識別子と共に、前記追加された他のストレージ装置から受信する第4の受信部と、
    前記第4の受信部により受信された前記演算結果と、前記第4の受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第4の演算制御部と、
    前記第4の演算制御部により演算された前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶する第4の記憶制御部と
    を備えることを特徴とする請求項1に記載のストレージ装置。
  5. 前記第2のハードディスクドライブには、前記第1の演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    ある前記他のストレージ装置から、前記ある他のストレージ装置が有する前記第1のハードディスクドライブに記憶されているべき前記第1の記憶データの送信要求を受信する第5の受信部と、
    前記ある他のストレージ装置以外の前記他のストレージ装置に、それぞれの前記第1のハードディスクドライブの前記各記憶ブロックに記憶されている前記第1の記憶データの複製を、前記各第1の記憶データが記憶されている前記記憶ブロックを特定する前記第1の識別子と共に送信させるための送信要求を送信する第1の送信部と、
    前記ある他のストレージ装置以外の前記他のストレージ装置のそれぞれから、前記第1の記憶データの複製を、前記第1の識別子と共に受信する第6の受信部と、
    前記第6の受信部により前記ある他のストレージ装置以外の前記他のストレージ装置のそれぞれから受信された前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製と、前記第6の受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第5の演算制御部と、
    前記第5の演算制御部により演算された前記排他的論理和の演算結果を、前記第1の識別子と共に、前記ある他のストレージ装置に送信する第2の送信部と
    を備えることを特徴とする請求項1に記載のストレージ装置。
  6. データを記憶する複数の第1のハードディスクドライブを有する複数の他のストレージ装置と通信可能に接続され、データを記憶する複数の第2のハードディスクドライブを備えるストレージ装置の制御方法であって、
    前記他のストレージ装置のそれぞれから、前記複数の第1のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれに記憶される第1の記憶データの複製を、前記各記憶ブロックを特定する第1の識別子と共に受信し、
    前記他のストレージ装置のそれぞれから受信した前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製の排他的論理和を演算し、
    前記複数の第2のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれを特定する第2の識別子が前記第1の識別子と対応する前記第2のハードディスクドライブの前記記憶ブロックに、前記排他的論理和の演算結果を記憶すること
    を特徴とするストレージ装置の制御方法。
  7. 前記第2のハードディスクドライブには、前記排他的論理和の全ての演算結果が記憶され、
    前記第1のハードディスクドライブへの書き込みデータを情報処理装置から受信した前記他のストレージ装置により演算される、前記書き込みデータと前記書き込みデータが書き込まれる前記第1のハードディスクドライブの前記記憶ブロックに記憶されている前記第1の記憶データとの排他的論理和の演算結果を、前記書き込みデータが書き込まれる前記記憶ブロックを特定する前記第1の識別子と共に、前記他のストレージ装置から受信し、
    前記演算結果と、前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算し、
    前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶すること
    を特徴とする請求項6に記載のストレージ装置の制御方法。
  8. 前記第2のハードディスクドライブには、前記排他的論理和の全ての演算結果が記憶され、
    通信可能に接続される前記他のストレージ装置が追加された場合に、
    前記追加された他のストレージ装置から、前記追加された他のストレージ装置が有する前記第1のハードディスクドライブの前記記憶ブロックのそれぞれに記憶される前記第1の記憶データの複製を、前記第1の識別子と共に受信し、
    前記第1の記憶データの複製と、前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算し、
    前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶すること
    を特徴とする請求項6に記載のストレージ装置の制御方法。
  9. 前記第2のハードディスクドライブには、前記排他的論理和の全ての演算結果が記憶され、
    通信可能に接続される前記他のストレージ装置が追加された場合に、
    前記追加された他のストレージ装置が有する前記第1のハードディスクドライブへの書き込みデータを情報処理装置から受信した前記追加された他のストレージ装置により演算される、前記書き込みデータと前記書き込みデータが書き込まれる前記第1のハードディスクドライブの前記記憶ブロックに記憶されている前記第1の記憶データとの排他的論理和の演算結果を、前記書き込みデータが書き込まれる前記記憶ブロックを特定する前記第1の識別子と共に、前記追加された他のストレージ装置から受信し、
    前記演算結果と、前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算し、
    前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶すること
    を特徴とする請求項6に記載のストレージ装置の制御方法。
  10. 前記第2のハードディスクドライブには、前記排他的論理和の全ての演算結果が記憶され、
    ある前記他のストレージ装置から、前記ある他のストレージ装置が有する前記第1のハードディスクドライブに記憶されているべき前記第1の記憶データの送信要求を受信し、
    前記ある他のストレージ装置以外の前記他のストレージ装置に、それぞれの前記第1のハードディスクドライブの前記各記憶ブロックに記憶されている前記第1の記憶データの複製を、前記各第1の記憶データが記憶されている前記記憶ブロックを特定する前記第1の識別子と共に送信させるための送信要求を送信し、
    前記ある他のストレージ装置以外の前記他のストレージ装置のそれぞれから、前記第1の記憶データの複製を、前記第1の識別子と共に受信し、
    前記ある他のストレージ装置以外の前記他のストレージ装置のそれぞれから受信した前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製と、前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算し、
    前記排他的論理和の演算結果を、前記第1の識別子と共に、前記ある他のストレージ装置に送信すること
    を特徴とする請求項6に記載のストレージ装置の制御方法。
  11. データを記憶する複数の第1のハードディスクドライブを有する複数の第1のストレージ装置と、前記各第1のストレージ装置と通信可能に接続され、データを記憶する複数の第2のハードディスクドライブを有する第2のストレージ装置とを備え、
    前記第1のストレージ装置は、
    前記複数の第1のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれに記憶される第1の記憶データの複製を、前記各記憶ブロックを特定する第1の識別子と共に前記第2のストレージ装置に送信する第1のデータ送信部を備え、
    前記第2のストレージ装置は、
    前記第1のストレージ装置のそれぞれから、前記第1の記憶データの複製を、前記第1の識別子と共に受信する第1のデータ受信部と、
    前記第1のデータ受信部により前記第1のストレージ装置のそれぞれから受信された前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製の排他的論理和を演算する第1のデータ演算制御部と、
    前記複数の第2のハードディスクドライブのデータ記憶領域を論理的に区分してなる複数の記憶ブロックのそれぞれを特定する第2の識別子が前記第1の識別子と対応する前記第2のハードディスクドライブの前記記憶ブロックに、前記第1のデータ演算制御部により演算された前記排他的論理和の演算結果を記憶する第1のデータ記憶制御部と
    を備えること
    を特徴とするストレージシステム。
  12. 前記第2のハードディスクドライブには、前記第1のデータ演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    前記第1のストレージ装置は、
    情報処理装置から前記第1のハードディスクドライブへの書き込みデータを受信した場合に、前記書き込みデータと前記書き込みデータが書き込まれる前記第1のハードディスクドライブの前記記憶ブロックに記憶されている前記第1の記憶データとの排他的論理和を演算する第2のデータ演算制御部と、
    前記第2のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記書き込みデータが書き込まれる前記記憶ブロックを特定する前記第1の識別子と共に、前記第2のストレージ装置に送信する第2のデータ送信部と、
    を備え、
    前記第2のストレージ装置は、
    前記第2のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記第1のストレージ装置から、前記第1の識別子と共に受信する第2のデータ受信部と、
    前記第2のデータ受信部により受信された前記演算結果と、前記第2のデータ受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第3のデータ演算制御部と、
    前記第3のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶する第2のデータ記憶制御部と
    を備えること
    を特徴とする請求項11に記載のストレージシステム。
  13. 前記第2のハードディスクドライブには、前記第1のデータ演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    前記第2のストレージ装置は、
    前記第2のストレージ装置と通信可能に接続される前記第1のストレージ装置が追加された場合に、前記追加された第1のストレージ装置に、前記第1のハードディスクドライブの前記各記憶ブロックに記憶されている前記第1の記憶データの複製を、前記各第1の記憶データが記憶されている前記記憶ブロックを特定する前記第1の識別子と共に送信させるための送信要求を送信する第3のデータ送信部を備え、
    前記第1のストレージ装置は、
    前記送信要求に応じて前記第1のハードディスクドライブの前記各記憶ブロックに記憶されている前記第1の記憶データの複製を、前記第1の識別子と共に前記第2のストレージ装置に送信する第4のデータ送信部を備え、
    前記第2のストレージ装置は、
    前記第1の記憶データの複製を、前記第1の識別子と共に前記第1のストレージ装置から受信する第3のデータ受信部と、
    前記第3のデータ受信部により受信された前記第1の記憶データの複製と、前記第3のデータ受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第4のデータ演算制御部と、
    前記第4のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶する第3のデータ記憶制御部と
    を備えることを特徴とする請求項11に記載のストレージシステム。
  14. 前記第2のハードディスクドライブには、前記第1のデータ演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    前記第2のストレージ装置と通信可能に接続される前記第1のストレージ装置が追加された場合に、
    前記追加された第1のストレージ装置は、
    情報処理装置から前記第1のハードディスクドライブへの書き込みデータを受信した場合に、前記書き込みデータと前記書き込みデータが書き込まれる前記第1のハードディスクドライブの前記記憶ブロックに記憶されている前記第1の記憶データとの排他的論理和を演算する第5のデータ演算制御部と、
    前記第5のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記書き込みデータが書き込まれる前記記憶ブロックを特定する前記第1の識別子と共に、前記第2のストレージ装置に送信する第5のデータ送信部と、
    を備え、
    前記第2のストレージ装置は、
    前記追加された第1のストレージ装置から、前記第5のデータ演算制御部により演算された前記排他的論理和の演算結果を前記第1の識別子と共に受信する第4のデータ受信部と、
    前記第4のデータ受信部により受信された前記演算結果と、前記第4のデータ受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第6のデータ演算制御部と、
    前記第6のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶する第4のデータ記憶制御部と
    を備えること
    を特徴とする請求項11に記載のストレージシステム。
  15. 前記第2のハードディスクドライブには、前記第1のデータ演算制御部により演算された前記排他的論理和の全ての演算結果が記憶され、
    前記第1のストレージ装置は、
    前記第1のストレージ装置が有する前記第1のハードディスクドライブに記憶されているべき前記第1の記憶データの送信要求を前記第2のストレージ装置に送信する第6のデータ送信部を備え、
    前記第2のストレージ装置は、
    前記第1のストレージ装置から、前記第1の記憶データの送信要求を受信する第5のデータ受信部と、
    前記第1の記憶データの送信要求に応じて、前記第1の記憶データの送信要求を送信した前記第1のストレージ装置以外の前記第1のストレージ装置に、それぞれの前記第1のハードディスクドライブの前記各記憶ブロックに記憶されている前記第1の記憶データの複製を、前記各第1の記憶データが記憶されている前記記憶ブロックを特定する前記第1の識別子と共に送信させるための送信要求を送信する第7のデータ送信部と、
    前記第1の記憶データの送信要求を送信した前記第1のストレージ装置以外の前記第1のストレージ装置のそれぞれから、前記第1の記憶データの複製を、前記第1の識別子と共に受信する第6のデータ受信部と、
    前記第6のデータ受信部により受信された前記第1の記憶データの複製のうち、前記第1の識別子がそれぞれ対応する前記第1の記憶データの複製と、前記第6のデータ受信部により受信された前記第1の識別子と対応する前記第2の識別子で特定される前記第2のハードディスクドライブの前記記憶ブロックに記憶されている第2の記憶データとの排他的論理和を演算する第7のデータ演算制御部と、
    前記第7のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記第1の識別子と共に、前記第1の記憶データの送信要求を送信した前記第1のストレージ装置に送信する第8のデータ送信部と、
    を備え、
    前記第1のストレージ装置は、
    前記第7のデータ演算制御部により演算された前記排他的論理和の演算結果を、前記第1の識別子と共に、前記第2のストレージ装置から受信する第7のデータ受信部と、
    前記第7のデータ受信部により受信された前記排他的論理和の演算結果を、前記第7のデータ受信部により受信された前記第1の識別子で特定される前記第1のハードディスクドライブの前記記憶ブロックに記憶する第5のデータ記憶制御部と
    を備えること
    を特徴とする請求項11に記載のストレージシステム。
JP2004019739A 2004-01-28 2004-01-28 ストレージ装置、ストレージ装置の制御方法、及びストレージシステム Withdrawn JP2005215850A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004019739A JP2005215850A (ja) 2004-01-28 2004-01-28 ストレージ装置、ストレージ装置の制御方法、及びストレージシステム
US10/816,913 US7337287B2 (en) 2004-01-28 2004-04-05 Storage unit, storage unit control method, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004019739A JP2005215850A (ja) 2004-01-28 2004-01-28 ストレージ装置、ストレージ装置の制御方法、及びストレージシステム

Publications (2)

Publication Number Publication Date
JP2005215850A true JP2005215850A (ja) 2005-08-11
JP2005215850A5 JP2005215850A5 (ja) 2006-12-28

Family

ID=34792582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004019739A Withdrawn JP2005215850A (ja) 2004-01-28 2004-01-28 ストレージ装置、ストレージ装置の制御方法、及びストレージシステム

Country Status (2)

Country Link
US (1) US7337287B2 (ja)
JP (1) JP2005215850A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832395B1 (en) 2013-04-12 2014-09-09 Hitachi, Ltd. Storage system, and method of storage control for storage system

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366856B2 (en) * 2004-10-13 2008-04-29 Ebay Inc. Method and system to locate a storage device
US7730183B2 (en) * 2005-01-13 2010-06-01 Microsoft Corporation System and method for generating virtual networks
JP2008299481A (ja) * 2007-05-30 2008-12-11 Hitachi Ltd ストレージシステム及び複数拠点間でのデータコピー方法
ATE460322T1 (de) * 2007-07-05 2010-03-15 Magneti Marelli Spa Verfahren zur steuerung eines mit einer mechanischen servogetriebe ausgerüsteten fahrzeugs
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
JP6040612B2 (ja) * 2012-07-24 2016-12-07 富士通株式会社 ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム
US9317363B2 (en) * 2013-11-06 2016-04-19 International Business Machines Corporation Management of a secure delete operation in a parity-based system
US9152500B1 (en) 2014-09-22 2015-10-06 Storagecraft Technology Corporation Hash collision recovery in a deduplication vault
US9830220B1 (en) * 2014-09-29 2017-11-28 EMC IP Holding Company LLC Enhanced error recovery for data storage drives
US10331358B1 (en) * 2017-01-31 2019-06-25 Vexata, Inc. High performance and low-latency replication using storage mirroring

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US59539A (en) * 1866-11-13 Improvement in horse hay-forks
US200478A (en) * 1878-02-19 Improvement in plows
US123063A (en) * 1872-01-23 Improvement in horse hay-forks
US86567A (en) * 1869-02-02 Improved brick-machine
US221061A (en) * 1879-10-28 Improvement in salt-dredges
US6704838B2 (en) 1997-10-08 2004-03-09 Seagate Technology Llc Hybrid data storage and reconstruction system and method for a data storage device
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
JP4135855B2 (ja) 2001-02-28 2008-08-20 株式会社日立製作所 記憶装置システム及びバックアップ方法
EP1255198B1 (en) 2001-02-28 2006-11-29 Hitachi, Ltd. Storage apparatus system and method of data backup
US6971042B2 (en) 2002-04-18 2005-11-29 Huge Systems, Inc. Media server with single chip storage controller
US7073022B2 (en) 2002-05-23 2006-07-04 International Business Machines Corporation Serial interface for a data storage array
JP4211285B2 (ja) * 2002-05-24 2009-01-21 株式会社日立製作所 ネットワークストレージシステムの仮想一元化方法及び装置
US20040177218A1 (en) * 2002-11-06 2004-09-09 Meehan Thomas F. Multiple level raid architecture
US7143260B2 (en) 2002-12-20 2006-11-28 Veritas Operating Corporation Intermediate descriptions of intent for storage allocation
US7386754B2 (en) 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832395B1 (en) 2013-04-12 2014-09-09 Hitachi, Ltd. Storage system, and method of storage control for storage system
WO2014167717A1 (ja) * 2013-04-12 2014-10-16 株式会社日立製作所 ストレージシステム、及びストレージシステムの記憶制御方法

Also Published As

Publication number Publication date
US7337287B2 (en) 2008-02-26
US20050166016A1 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
US7783922B2 (en) Storage controller, and storage device failure detection method
CN103365743B (zh) 用于在计算环境中处理快照的方法和系统
US7426618B2 (en) Snapshot restore method and apparatus
US7685171B1 (en) Techniques for performing a restoration operation using device scanning
US8082231B1 (en) Techniques using identifiers and signatures with data operations
US7725704B1 (en) Techniques for performing a prioritized data restoration operation
US7237141B2 (en) Method for recovering data from a redundant storage object
US7895162B2 (en) Remote copy system, remote environment setting method, and data restore method
US7565384B2 (en) Method and apparatus for archive data validation in an archive system
JP6317524B2 (ja) ストレージシステム、計算機システム、およびストレージシステムの制御方法
US6332177B1 (en) N-way raid 1 on M drives block mapping
US7975171B2 (en) Automated file recovery based on subsystem error detection results
US7681069B1 (en) Corruption checking during backup
US7216210B2 (en) Data I/O system using a plurality of mirror volumes
JP2006508473A (ja) 記憶システムにおけるデータ回復技術
JP2005215850A (ja) ストレージ装置、ストレージ装置の制御方法、及びストレージシステム
US10235092B1 (en) Independent parallel on demand recovery of data replicas in a storage system
US9792056B1 (en) Managing system drive integrity in data storage systems
US9563524B2 (en) Multi level data recovery in storage disk arrays
US20160342465A1 (en) Controlling a redundant array of independent disks (raid) that includes a read only flash data storage device
US8650435B2 (en) Enhanced storage device replacement system and method
US10664189B2 (en) Performance in synchronous data replication environments
JP4175789B2 (ja) 記憶装置のファイルレベルリモートコピー方法
JP4401788B2 (ja) ストレージ制御装置
US7529966B2 (en) Storage system with journaling

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061115

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090525