JP5966744B2 - ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体 - Google Patents

ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体 Download PDF

Info

Publication number
JP5966744B2
JP5966744B2 JP2012173522A JP2012173522A JP5966744B2 JP 5966744 B2 JP5966744 B2 JP 5966744B2 JP 2012173522 A JP2012173522 A JP 2012173522A JP 2012173522 A JP2012173522 A JP 2012173522A JP 5966744 B2 JP5966744 B2 JP 5966744B2
Authority
JP
Japan
Prior art keywords
control
data
mirror
check information
control devices
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.)
Expired - Fee Related
Application number
JP2012173522A
Other languages
English (en)
Other versions
JP2014032573A (ja
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
Priority to JP2012173522A priority Critical patent/JP5966744B2/ja
Priority to US13/955,696 priority patent/US20140040678A1/en
Publication of JP2014032573A publication Critical patent/JP2014032573A/ja
Application granted granted Critical
Publication of JP5966744B2 publication Critical patent/JP5966744B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques

Landscapes

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

Description

本発明は、ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び同プログラムを記憶する記憶媒体に関する。
一部のストレージ装置においては、ストレージ装置のChannel Adaptor(CA)がホスト装置からデータを受信し、CAが、データの整合性のチェックに使用されるBlock Check Code(BCC)を計算することが行なわれる。
ここで、BCCとは、所定サイズのデータブロックごとに、データ整合性のチェックのため追加される領域である。
例えば、512バイトのデータブロック毎に8バイトのBCCが付与される。
例えば、図8に示す構造のデータが追加される。
図8は、データブロックのデータ構造100を示す模式図である。
図8において、データ構造100は、512バイトのデータ部103と、8バイトのBCC部105とを有する。
データ部103は、ホスト装置とストレージ装置との間でやり取りされるデータ本体であり、データ形式は、データブロック形式である。
BCC部105は、データ部103のデータの整合性をチェックするために用いられるBCCであり、データ形式は、BCC形式である。
図8に示す例では、例えば、16ビットのブロックCRC107、1ビットのバッドフラグ111、1ビットのパリティビット113、6ビットのSLU(Secondary Logical Unit)番号115、8ビットのID部117、及び32ビットのカウンタ119を有する。
また、複数のCM(Controller Module)を装備しているストレージ装置では、一般に、CMがCA経由で受信したデータを、他CMに送信し、複数のCMでミラーデータを保持することが行なわれる。
次に、図9を参照して、ホスト装置からストレージ装置にデータが送信された場合の処理を説明する。
図9は、ホスト装置からストレージ装置にデータが送信された場合の処理のフローチャートである。
図9のステップS101において、CAがホスト装置からデータを含む書き込み(ライト)コマンドを受信する。
ステップS103において、CAは、ホスト装置から受信したデータを512バイト毎のブロックに分割し、8バイトのBCCを作成して520バイトのデータブロックを作成し、自CM(以降、ミラー元CMとも呼ぶ)に送信する。
ステップS105において、CMが、ホスト装置から受信を完了したデータブロック数を示すデータカウンタをゼロにセットする。
ステップS107において、ミラー元CMはCAから520バイトのデータブロックを受信する。ミラー元CMに渡されるデータブロックには、CAが計算したブロックのCRC(以下に、単にCRCと呼ぶ)107を含むBCCが付与されている。
ステップS109において、ミラー元CMは、データをミラーする先のCM(以降、ミラー先CMと呼ぶ)にデータブロックを送信し、データブロックをミラー先CMにコピーさせる。
ステップS111において、ミラー元CMは、ミラー先CMでデータが正常に処理されたかどうかを判定する。
ミラー先CMでデータが正常に処理された場合(ステップS111のYESルート参照)、ミラー元CMは、ステップS113においてデータカウンタを1インクリメントする。
データカウンタがブロック数と等しい場合(ステップS115のYESルート参照)、ステップS117において、CAがホスト装置にデータ受信完了を応答する。
一方、データカウンタがブロック数と等しくない場合(ステップS115のNOルート参照)、未処理のデータブロックが存在するため、ミラー元CMはステップS107に戻り、上記ステップS107〜S115の処理を繰り返す。
また、ステップS111において、ミラー先でデータが正常に処理されていない場合(ステップS111のNOルート参照)、ステップS119において、CAがホスト装置にデータ受信失敗を応答する。
このため、ストレージ装置からホスト装置への応答時間を短縮することが求められている。
特開2002−23966号公報
上記課題に鑑みて、1つの側面では、本発明は、ストレージ装置から上位装置への応答時間を短縮することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
一態様では、1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置であって、前記複数の制御装置はそれぞれ、
データを送受信するインタフェース部と、前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定する振り分け部と、前記振り分け部によって前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算する計算部と、前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較し、比較結果が不一致の場合に前記インタフェース部を介してエラーを報告する制御部と、をそなえることを特徴とするストレージ装置が提供される。
他の一態様では、1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理方法であって、前記複数の制御装置のそれぞれにおいて、前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定し、前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算し、前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較し、比較結果が不一致の場合にエラーを報告することを特徴とするストレージ装置の管理方法が提供される。
他の一態様では、1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理プログラムであって、前記複数の制御装置のいずれかによって実行された場合に、当該制御装置に、前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定させ、前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算させ、前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較させ、比較結果が不一致の場合にエラーを報告させることを特徴とするストレージ装置の管理プログラムが提供される。
他の一態様では、1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理プログラムを記憶する記憶媒体であって、前記管理プログラムは、前記複数の制御装置のいずれかによって実行された場合に、当該制御装置に、前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定させ、前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算させ、前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較させ、比較結果が不一致の場合にエラーを報告させることを特徴とする記憶媒体が提供される。
本発明によれば、ストレージ装置から上位装置への応答時間を短縮することができる。
実施形態の一例としてのストレージシステムのハードウェア構成を示す模式図である。 第1実施形態の一例としてのCMの機能構成を示すブロック図である。 第1実施形態の一例としてのストレージ装置におけるミラー元CMにおける処理を示すフローチャートである。 第1実施形態の一例としてのストレージ装置におけるミラー先CMの処理を示すフローチャートである。 第1実施形態の一例としてのストレージ装置におけるミラー先CMのミラーデータの消去処理を示すフローチャートである。 第2実施形態の一例としてのCMの機能構成を示すブロック図である。 第2実施形態の一例としてのストレージ装置におけるミラー元CMの処理を示すフローチャートである。 ストレージ装置におけるデータブロックのフォーマットを示す図である。 従来のストレージ装置における処理を示すフローチャートである。 ストレージ装置における処理を示すフローチャートである。
以下、図面を参照して本ストレージ装置、制御装置及び制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態及び各変形例を組み合わせる等)して実施することができる。
(A)第1実施形態
図1は、第1実施形態の一例としてのストレージシステム1のハードウェア構成を示す模式図である。
ストレージシステム1は、ストレージ装置3とホスト装置21とを備える。
ストレージ装置3は、ホスト装置21に対して記憶領域を提供するものであり、通信ネットワーク25を介して相互に通信可能に接続されている。
ストレージ装置3は、図1に示すように、CM(制御装置)5−1,5−2及びドライブエンクロージャ17−1,17−2をそなえる。
CM5−1,CM5−2は、ストレージ装置3内の動作を制御するコントローラであり、ホスト装置21からのリード/ライト等のコマンドを受け取り、種々の制御を行なう。
CM5−1は、CA(インタフェース部)7−1、Central Processing Unit(CPU;制御部)9−1、メモリ11−1、アダプタ13−1、FC15−1,15−2を有する。
また、CM5−2は、CA7−2、9−2、メモリ11−2、アダプタ13−2、FC15−3、15−4を有する。
ドライブエンクロージャ17−1,17−2は、複数台のHard Disk Drive(HDD;ストレージ)19a−1〜n,19b−1〜n(nは1以上の整数)をそなえる。
CM5−1はCA7−1を介して、又、CM5−2はCA7−2を介して、それぞれネットワーク経由でホスト装置21に接続されている。そして、これらのCM5−1,5−2は、ホスト装置21から送信されるリード/ライト等のコマンドを受信し、不図示のエキスパンダ等を介してHDD19a−1〜n,19b−1〜nの制御を行なう。又、CM5−1,5−2は互いにほぼ同様の構成を有している。
ホスト装置21は、例えば、サーバ機能をそなえたコンピュータ(情報処理)などの上位装置であり、ストレージ装置3との間において、SCSIコマンドやレスポンス等の各種データをTCP/IPを用いて送受信する。このホスト装置21は、ストレージ装置3に対してリード/ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置3が提供する記憶領域にデータの書き込みや読み出しを行なう。
HDD19a−1〜n,19b−1〜nは、データを読み書き可能に格納する記憶装置であり、ホスト装置21から受信したデータを記憶可能な記憶部として機能する。そして、ストレージ装置3は、これらの複数のHDD19a−1〜n,19b−1〜nを組み合わせて、冗長化された1つのストレージとして管理する、Redundant Arrays of Inexpensive Disks(RAID)装置であってもよい。
以下、CMを示す符号としては、複数のCMのうち1つを特定する必要があるときには符号5−1,5−2を用いるが、任意のCMを指すときには符号5を用いる。
更に、以下、CAを示す符号としては、複数のCAのうち1つを特定する必要があるときには符号7−1,7−2を用いるが、任意のCAを指すときには符号7を用いる。
更に、以下、CPUを示す符号としては、複数のCPUのうち1つを特定する必要があるときには符号9−1,9−2を用いるが、任意のCPUを指すときには符号9を用いる。
更に、以下、メモリを示す符号としては、複数のメモリのうち1つを特定する必要があるときには符号11−1,11−2を用いるが、任意のメモリを指すときには符号11を用いる。
更に、以下、アダプタを示す符号としては、複数のアダプタのうち1つを特定する必要があるときには符号13−1,13−2を用いるが、任意のアダプタを指すときには符号15を用いる。
更に、以下、FCを示す符号としては、複数のFCのうち1つを特定する必要があるときには符号15−1〜15−4を用いるが、任意のFCを指すときには符号15を用いる。
更に、以下、ドライブエンクロージャを示す符号としては、複数のドライブエンクロージャのうち1つを特定する必要があるときには符号17−1,17−2を用いるが、任意のドライブエンクロージャを指すときには符号17を用いる。
更に、以下、HDDを示す符号としては、複数のHDDのうち1つを特定する必要があるときには符号19a−1〜n,19b−1を用いるが、任意のHDD指すときには符号19を用いる。
CA7は、ホスト装置21等と通信可能に接続するインタフェースコントローラ(通信アダプタ)である。CA7は、ホスト装置21等から送信されたデータを受信したり、CM5から出力するデータをホスト装置21等に送信する。すなわち、CA7は、ホスト装置21等の外部装置との間でのデータの入出力(Input/Output;I/O)を制御する。
ホスト装置21からデータを受信すると、CA7は、受信したデータを所定のサイズのデータブロック(例えば、512バイトのデータブロック)に分割し、各データブロックについてCRCを計算してBCCを付加し、後述するCM7に送信する。なお、受信したデータにCRCがついている場合CRCの計算は行わなくても良い。
メモリ11は、CPU9が実行するプログラムや種々のデータを格納する記憶装置であり、ROMやRAMである。
アダプタ13は、CM5間を通信可能に接続するためのインタフェースである。
FC15は、CM5とドライブエンクロージャ等とを通信可能に接続するためのインタフェースであり、デバイスアダプタ等をそなえる。CM5は、このFC15を介して、HDD19に対するデータの書き込みや読み出しを行なう。
CPU9は、種々の制御や演算を行なう処理装置であり、メモリ11に格納されたプログラムを実行することにより、種々の機能を実現する。例えば、CPU9は、RAIDの実現やホスト装置21からのホストI/Oに応じたHDD19へのアクセス制御等、既知のディスクコントローラとしての種々の機能を実現する。
図1に図示したストレージシステム3には2つのCM5がそなえられているが、3以上のCMがそなえられていてもよい。
ここで、ストレージ装置3内でのデータ化けを検出するためには、ストレージ装置3がホスト装置21からデータを受信してから、できる限り早いタイミングでCRC107を付与することが望ましい。このため、前述のようにデータの受信直後にCA5でCRC107を付与している。
更に、本実施形態の一例としてのストレージ装置3においては、ストレージ装置3内部のCA5以外のモジュールにおいても、データブロックからCRCを計算し、CA5が付与したCRC107と一致するかどうかをチェックしている。
前述のように、従来、ホスト装置21へのデータ受信完了応答は、ミラーデータの保持が完了した後にストレージ装置3によって報告される。
しかし、従来の手法では、CA7の障害で正しいCRCが計算されない等の原因で、正しくないCRC(エラーCRC)が付与された場合が問題となる。
データとエラーCRCとがミラー先CM5−2に引き渡されて、ミラー先CM5−2がミラーデータを保持してしまうと、ホスト装置21に対してはデータ受信完了応答が報告されているが、ストレージ装置3ではエラーデータを保持することになる。ストレージ装置3がCRCを検査してエラーを検出した場合、このデータは異常として扱われるが、既にホスト装置21にデータ受信完了を応答してしまっているため、データロスが発生してしまう。
このような事態を回避するため、本実施形態では、あるCM5がCA7を介してデータを受信した直後に、自CM5の他の内部回路、および他のCM5でもCRC(第2のチェック用情報)を再計算する。そして、データを受信したCA7が付与したCRC(第1のチェック用情報)と比較し、エラーの有無をチェックする。その際、複数のCM5間でCRCの再計算処理を分散させることで、ホスト装置21に対する応答時間を短縮させることができる。
第1実施形態の一例としてのこのような機能を備えたCM5(例えば、図1のCM5−1,5−2)の機能を説明する。
図2は、第1実施形態の一例としてのCM5の機能構成を示すブロック図である。
図2に示すように、CM5は、処理部31を有する。
CPU9(図1参照)は、図2に示すように、処理部31の受信部33、コピー部35、再計算部(計算部)37、比較部39、及び消去部41として機能する。
また、メモリ11(図1参照)は、データカウンタ43、総ブロック数保持部45、及びCRC再計算フラグ47として機能する。
受信部33は、自CM5のCA7から、ホスト装置21から送信されたデータを受信する。
コピー部35は、受信部33が受信したデータブロックのコピーを、他のCM5に転送して他CM5にミラーデータとして保持させる。
再計算部37は、ホスト装置21から受信したデータブロックのCRC107を計算(以下、再計算部37による計算を再計算と呼ぶ)し、計算したCRC107をメモリ11に格納する。
比較部39は、CA7が付加したBCC105内のCRC(第1のチェック用情報)107と、再計算部37が計算したCRC(第2のチェック用情報)107とを比較する。
消去部41は、比較部39による比較の結果、CA7が付加したBCC105内のCRC107と、再計算部37が計算したCRC107とが一致しない場合、そのデータを消去する。
詳細には、ミラー元CM5の消去部41は、CRCが不一致(CRCエラー)の場合にミラー先CM5に対し、ミラー無効処理を通知し、ミラー先CM5にミラーデータを削除させる。また、ミラー先CM5の消去部41は、コピー元CM5からミラー無効処理を通知された場合、ミラーデータを消去する。
データカウンタ43は、ホスト装置21から受信したデータブロック用のカウンタであり、ホスト装置21から受信が完了したデーブロック数を示す。
総ブロック数保持部45は、ホスト装置21から送信されるデータブロックの総数を示す数値を保持する。
CRC再計算フラグ47は、自CM5の再計算部37によるCRC107の再計算を行なうかどうかを示すフラグである。例えば、CRC再計算フラグ47の値がオフ(例えば“0”)の場合、再計算部37はCRC107の再計算を行なわず、CRC再計算フラグ47の値がオン(例えば“1”)の場合、再計算部37はCRC107の再計算を行なう。
なお、後述するように、コピー先CM5は、コピー元CM5のCRC再計算フラグ47を参照することにより、CRCの再計算処理を、コピー元、コピー先のいずれのCM5で行なうのかを判定する。
上述の如く構成された、第1実施形態の一例としてのストレージ装置3における処理を、図3を参照しながら説明する。
ここでは、図1のCM5−1が、ホスト装置21からCA7−1経由で書き込みデータを受信し、CM5−2にデータをミラーリングする場合を考える。この場合、CM5−1をミラー元CM、CM5−2をミラー先CMと呼ぶ。
図3は、第1実施形態の一例としてのストレージ装置3におけるミラー元CM5−1の処理を示すフローチャートである。
図3のステップS1において、ミラー元CM5−1のCA7−1が、ホスト装置21から、データを含む書き込みコマンドを受信する。このとき、CA7−1は、データの総ブロック数を受信し、その値を、総ブロック数保持部45に格納する。
ステップS3において、CA7−1は、ホスト装置21から受信したデータを512バイト毎のブロックに分割し、8バイトのBCCを作成して520バイトのデータブロックを作成する。
ステップS5において、CA7−1は、データカウンタ43をゼロにリセットする。
ステップS7において、ミラー元CM5−1の受信部33は、CA7−1から520バイトのデータブロックを受信する。ミラー元CMに渡されるデータブロックには、CA7−1が計算したCRC107を含むBCC105が付与されている。
ステップS9において、ミラー元CM5−1の受信部33は、CRC再計算フラグ47をオフに設定する。
ステップS11において、ミラー元CM5−1の受信部33は、データカウンタ43が奇数かどうかを判定する。
データカウンタ43が奇数の場合(ステップS11のYESルート参照)、後述するステップS15に移行する。
一方、データカウンタ43が偶数の場合(ステップS11のNOルート参照)、ステップS13において、ミラー元CM5−1のコピー部35はCRC再計算フラグ47をオンに設定し、ステップS15に移行する。
ステップS15において、ミラー元CM5−1のコピー部35は、ミラー先CM5−2が正常であるかどうかを判定する。この判定は、例えば、CM間通信によって行なう。
ミラー先CM5−2が正常である場合(ステップS15のYESルート参照)、後述するステップS19に移行する。
一方、ミラー先CM5−2で異常が検出された場合(ステップS15のNOルート参照)、ステップS17において、ミラー元CM5−1のコピー部35はCRC再計算フラグ47をオンに設定し、ステップS19に移行する。
ステップS19において、ミラー元CM5−1のコピー部35は、ミラー先CM5−2にデータブロックのコピーを送信し、データブロックをミラー先CM5−2に保持(格納)させる。
ステップS21において、ミラー元CM5−1の再計算部35は、CRC再計算フラグ47がオンかどうかを判定する。
CRC再計算フラグ47がオンの場合(ステップS21のYESルート参照)、ステップS23において、ミラー元CM5−1の再計算部37は、CA7−1から受信したデータブロックのCRC107を再計算する。
ステップS25において、ミラー元CM5−1の比較部39は、ステップS23で再計算したCRC107と、CA7−1から受信したデータに含まれるCRC107とを比較し、両者が一致するかどうかを判定する。
CRC107が一致する場合(ステップS25のYESルート参照)、ステップS27において、ミラー元CM5−1の比較部39は、データカウンタ43を1インクリメントする。
一方、CRC107が一致しない場合(ステップS25のNOルート参照)、後述するステップS35に移行する。
次に、ステップS29において、ミラー元CM5−1の比較部39は、データカウンタ43の値が総ブロック数保持部45の値と等しいかどうかを判定する。
データカウンタ43の値が総ブロック数保持部45の値と等しくない場合(ステップS29のNOルート参照)、未受信のデータブロックが存在するため、前述したステップS7に戻り、残りのデータブロックの受信を続行する。
一方、データカウンタ43の値が総ブロック数保持部45の値と等しい場合(ステップS29のYESルート参照)、全データブロックの受信を完了したので、ステップS31において、CA7−1がホスト装置21にデータ受信完了を応答する。
なお、ステップS21においてCRC再計算フラグ47がオフの場合(ステップS21のNOルート参照)、CRC107の再計算をミラー先CM5−2の再計算部37が行なう。
ステップS33において、ミラー元CM5−1の再計算部37は、ミラー先CM5−2において再計算されたCRC107が、CA7−1が付加したCRC107と一致したかどうかを判定する。
ミラー先CM5−2において再計算されたCRC107が、CA7−1が付加したCRC107と一致した場合(ステップS33のYESルート参照)、処理が前述のステップS27に移行する。
一方、ミラー先CM5−2において再計算されたCRC107が、CA7−1が付加したCRC107と一致しなかった場合(ステップS33のNOルート参照)、処理が後述するステップS39に移行する。
また、ステップS25においてCRC107が一致しない場合(ステップS25のNOルート参照)、ステップS35において、ミラー元CM5−1の消去部41は、ミラー先CM5−2にミラー無効処理を通知する。
次に、ステップS37において、ミラー元CM5−1は、ミラー先CM5−2の処理が終了したかどうかを判定する。
ミラー先CM5−2の処理が終了していない場合(ステップS37のNOルート参照)、ステップS37に戻る。
一方、ミラー先CM5−2の処理が終了している場合(ステップS37のYESルート参照)、ステップS39において、CA7は、ホスト装置21にデータ受信失敗を応答する。
次に、図3のストレージ装置3におけるミラー先CM5−2の処理を、図4を参照しながら説明する。
図4は、第1実施形態の一例としてのストレージ装置3におけるミラー先CM5−2の処理を示すフローチャートである。
ステップS51において、ミラー先CM5−3の受信部33は、ミラー元CM5−1から520バイトのデータブロックを受信する。ミラー先CMに渡されるデータブロックには、ミラー元CM5−1のCA7−1が計算したCRC107を含むBCC105が付与されている。
ステップS53において、ミラー先CM5−2の再計算部35は、ミラー先CM5−1のCRC再計算フラグ47を参照して、CRC再計算フラグ47がオンかどうかを判定する。
ミラー先CM5−1のCRC再計算フラグ47がオフの場合(ステップS53のNOルート参照)、処理が後述するステップS61に移行する。
一方、ミラー先CM5−1のCRC再計算フラグ47がオンの場合(ステップS53のYESルート参照)、ステップS55において、ミラー先CM5−2の再計算部37は、ミラー元CM5−1から受信したデータのCRC107を再計算する。
ステップS57において、ミラー元CM5−1の比較部39は、ステップS55で再計算したCRC107と、ミラー元CM5−1から受信したデータに含まれるCRC107とを比較し、両者が一致するかどうかを判定する。
CRC107が一致する場合(ステップS57のYESルート参照)、ステップS59において、ミラー先CM5−2の比較部39は、CRC再計算フラグ47をオンにする。
次に、ステップS61において、ミラー先CM5−2は、データミラーを作成する。
次に、ステップS63において、ミラー先CM5−2はミラー元CM5−1に対し、データ受信完了を応答する。
一方、ステップS57において、CRC107が一致しない場合(ステップS57のNOルート参照)、ステップS65において、ミラー先CM5−2の比較部39は、ミラー元CM5−1にデータ受信失敗を応答する。
次に、図3のストレージ装置3のミラー先CM5−2におけるミラーデータの削除処理を、図5を参照しながら説明する。
図5は、第1実施形態の一例としてのストレージ装置3におけるミラー先CM5−2のミラーデータの削除処理を示すフローチャートである。
ステップS67において、ミラー先CM5−2は、ミラー元CM5−1からミラーデータ消去指示を受信する。
ステップS69において、ミラー先CM5−2の消去部41は、ミラーデータを消去する。
次に、ステップS71において、ミラー先CM5−2の消去部41は、ミラー元CM5−1に対して、ミラー消去完了を応答する。
第1実施形態の一例によれば、CRCの再計算を複数のCM5間で分散して行なうので、ストレージ装置3からホスト装置21への応答時間を短縮することができる。
ここで、比較のために、図10を参照して、CRCの再計算を、ミラー元CM5−1のCPU9−1で一元的に行なう場合を考える。
図10は、ホスト装置21からストレージ装置3にデータが送信された場合の処理のフローチャートである。
図10のステップS101において、CA7−1がホスト装置21からデータを含む書き込みコマンドを受信する。
ステップS103において、CA7−1は、ホスト装置21から受信したデータを512バイト毎のブロックに分割し、8バイトのBCCを作成して520バイトのデータブロックを作成する。
ステップS105において、ミラー元CM5−1が、ホスト装置21から受信を完了したデータブロック数を示すデータカウンタをゼロにセットする。
ステップS107において、ミラー元CM5−1のCPU9−1はCA7−1から520バイトのデータブロックを受信する。ミラー元CM5−1のCPU9−1に渡されるデータブロックには、CA7−1が計算したCRC107を含むBCC105が付与されている。
ステップS121において、ミラー元CM5−1のCPU9−1はCA7−1から受信したデータのCRC107を再計算する。
ステップS123において、ミラー元CM5−1のCPU9−1は、ステップS121で再計算したCRC107と、CA7−1から受信したデータに含まれるCRC107とを比較する。
CRC107が一致しない場合(ステップS123のNOルート参照)、ステップS119において、CA7−1がホスト装置21にデータ受信失敗を応答する。
一方、CRC107が一致する場合(ステップS123のYESルート参照)、ステップS109において、ミラー元CM5−1のCPU9−1は、ミラー元CM5−2にデータブロックを送信し、データブロックをミラー元CM5−2にコピーさせる。
ステップS111において、ミラー元CM5−1のCPU9−1は、ミラー先でデータが正常に処理されたかどうかを判定する。
また、ステップS111において、ミラー先でデータが正常に処理されていない場合(ステップS111のNOルート参照)、ステップS119において、CA7−1がホスト装置21にデータ受信失敗を応答する。
ミラー先でデータが正常に処理された場合(ステップS111のYESルート参照)、ミラー元CM5−1のCPU9−1は、ステップS113においてデータカウンタを1インクリメントする。なお、このデータカウンタは、ステップS105において、CA7−1からデータの受信を開始する前にゼロに初期化されている。
データカウンタがブロック数と等しい場合(ステップS115のYESルート参照)、ステップS117において、CA7−1がホスト装置21にデータ受信完了を応答する。
一方、データカウンタがブロック数と等しくない場合(ステップS115のNOルート参照)、未処理のデータブロックが存在するため、ミラー元CM5−1のCPU9−1はステップS107に戻り、上記ステップS107〜S115の処理を繰り返す。
また、ステップS111において、ミラー先でデータが正常に処理されていない場合(ステップS111のNOルート参照)、ステップS119において、CA7−1がホスト装置21にデータ受信失敗を応答する。
図10の手法では、データを受信した全てのミラー元CM5−1のCPU9−1においてCRCの再計算を行なうので、ミラー元CM5−1のCPU9−1の負荷が高くなり、処理状況によってはホスト装置21への応答が遅延する場合がある。詳細には、ミラー元CM5−1のCPU9−1は、CRCの再計算を行ない、チェックを完了した後にデータ転送完了をホスト装置21に応答するので、処理状況によっては応答時間が増大してしまう場合がある。
これに対して、第1実施形態の一例としてのストレージ装置3においては、CRCの再計算を複数のCM5間で分散して行なうので、ストレージ装置3からホスト装置21への応答時間を短縮することができる。
更に、CA7から受信したデータブロックのCRCの計算をCMで再度行なうので、データの信頼性を向上させるという効果も奏する。
更に、消去部41により、CRCエラーの発生時に、ミラー元、ミラー先の両方のCM5のデータを消去するので、データの整合性を保証することができる
(B)第2実施形態
前述した第1実施形態の一例としてのストレージ装置3においては、CRCの再計算を複数のCM5間で順番に行なっていたが、第2実施形態の一例においては、CM5の負荷に応じて、負荷の低いCM5がCRCを再計算してもよい。
図6は、第2実施形態の一例としてのCM5の機能構成を示すブロック図である。
なお、図6中、図2と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
図6に示すように、図6に示すCM5は、図2に示した構成要素に加えて、負荷比較部49、ミラー元負荷カウンタ51、及びミラー先負荷カウンタ53を有する。
負荷比較部49は、ミラー元CM5−1及びミラー先CM5−2における処理負荷をモニタ及び比較する。例えば、負荷比較部49は、ミラー元CM5−1及びミラー先CM5−2で実行中のプロセス数をモニタする。例えば、負荷比較部49は、ミラー元CM5−1のCPU9−1により実行中のプロセス数を後述するミラー元負荷カウンタ51に格納する。また、ミラー先CM5−2のCPU9−2により実行中のプロセス数を後述するミラー先負荷カウンタ53に格納する。更に、負荷比較部49は、後述するミラー元負荷カウンタ51の値とミラー先負荷カウンタ53の値とを比較する。
この負荷比較部49の機能は、CPU9(図1参照)によって実現される。
ミラー元負荷カウンタ51は、ミラー元CM5−1の負荷を示すカウンタであり、メモリ11(図1参照)によって実現される。
ミラー先負荷カウンタ53は、ミラー先CM5−2の負荷を示すカウンタであり、メモリ11(図1参照)によって実現される。
ミラー元負荷カウンタ51は、ミラー元CM5−1の起動時にゼロにリセットされる。
また、ミラー先負荷カウンタ53も同様に、ミラー先CM5−2の起動時にゼロにリセットされる。
上述の如く構成された、第2実施形態の一例としてのストレージ装置3における処理を、図7を参照しながら説明する。
ここでは、第1実施形態と同様に、ミラー元CM5−1が、ホスト装置21からCA7−1経由で書き込みデータを受信し、ミラー先CM5−2にデータをミラーリングする場合を考える。
図7は、第2実施形態の一例としてのストレージ装置3におけるミラー元CM5−1の処理を示すフローチャートである。
図7のステップS1において、ミラー元CM5−1のCA7−1が、ホスト装置21から、データを含む書き込みコマンドを受信する。このとき、CA7−1は、データの総ブロック数を受信し、その値を、総ブロック数保持部45に格納する。
ステップS3において、CA7−1は、ホスト装置21から受信したデータを512バイト毎のブロックに分割し、8バイトのBCCを作成して520バイトのデータブロックを作成する。
ステップS5において、CA7−1は、データカウンタ43をゼロにリセットする。
ステップS7において、ミラー元CM5−1の受信部33は、CA7−1から520バイトのデータブロックを受信する。ミラー元CMに渡されるデータブロックには、CA7−1が計算したCRC107を含むBCC105が付与されている。
ステップS9において、ミラー元CM5−1の受信部33は、CRC再計算フラグ47をオフに設定する。
ステップS41において、ミラー元CM5−1の負荷比較部49は、ミラー先負荷カウンタ53の値が、ミラー元負荷カウンタ51の値以上であるかどうかを判定する。
ミラー先負荷カウンタ53の値が、ミラー元負荷カウンタ51の値未満の場合(ステップS41のNOルート参照)、後述するステップS19に移行する。
一方、ミラー先負荷カウンタ53の値が。ミラー元負荷カウンタ51の値以上である場合(ステップS41のYESルート参照)、ステップS13において、ミラー元CM5−1のコピー部35はCRC再計算フラグ47をオンに設定し、ステップS19に移行する。
ステップS19において、ミラー元CM5−1のコピー部35は、ミラー先CM5−2にデータブロックのコピーを送信し、データブロックをミラー先CM5−2に保持(格納)させる。
ステップS21において、ミラー元CM5−1の再計算部35は、CRC再計算フラグ47がオンかどうかを判定する。
CRC再計算フラグ47がオンの場合(ステップS21のYESルート参照)、ステップS45において、ミラー元CM5−1の再計算部35は、ミラー元負荷カウンタ51を1インクリメントする。
次に、ステップS47において、ミラー元CM5−1の再計算部37は、CA7−1から受信したデータブロックのCRC107を再計算する。
CRCの再計算が終了すると、ステップS49において、ミラー元CM5−1の再計算部35は、ミラー元負荷カウンタ51を1デクリメントする。
ステップS25において、ミラー元CM5−1の比較部39は、ステップS23で再計算したCRC107と、CA7−1から受信したデータに含まれるCRC107とを比較し、両者が一致するかどうかを判定する。
CRC107が一致する場合(ステップS25のYESルート参照)、ステップS27において、ミラー元CM5−1の比較部39は、データカウンタ43を1インクリメントする。
一方、CRC107が一致しない場合(ステップS25のNOルート参照)、処理が後述するステップS35に移行する。
次に、ステップS29において、ミラー元CM5−1の比較部39は、データカウンタ43の値が総ブロック数保持部45の値と等しいかどうかを判定する。
データカウンタ43の値が総ブロック数保持部45の値と等しくない場合(ステップS29のNOルート参照)、未受信のデータブロックが存在するため、前述したステップS7に戻り、残りのデータブロックの受信を続行する。
一方、データカウンタ43の値が総ブロック数保持部45の値と等しい場合(ステップS29のYESルート参照)、全データブロックの受信を完了したので、ステップS31において、CA7−1がホスト装置21にデータ受信完了を応答する。
なお、ステップS21においてCRC再計算フラグ47がオフの場合(ステップS21のNOルート参照)、CRC107の再計算をミラー先CM5−2の再計算部37が行なう。
ステップS33において、ミラー元CM5−1の再計算部37は、ミラー先CM5−2において再計算されたCRC107が、CA7−1が付加したCRC107と一致したかどうかを判定する。
ミラー先CM5−2において再計算されたCRC107が、CA7−1が付加したCRC107と一致した場合(ステップS33のYESルート参照)、処理が前述のステップS25に移行する。
一方、ミラー先CM5−2において再計算されたCRC107が、CA7−1が付加したCRC107と一致しなかった場合(ステップS33のNOルート参照)、処理が後述するステップS35に移行する。
また、ステップS25においてCRC107が一致しない場合(ステップS25のNOルート参照)、ステップS35において、ミラー元CM5−1の消去部41は、ミラー先CM5−2にミラー無効処理を通知する。
次に、ステップS39において、CA7は、ホスト装置21にデータ受信失敗を応答する。
第2実施形態の一例としてのストレージ装置3におけるミラー先CM5−2の処理は、ミラー先CM5−2におけるCRC再計算時の前後にミラー先負荷カウンタ53を増減させる点を除き、図4,5に示した第1実施形態の一例の処理と同様である。このため、ミラー先CM5−2の処理の図示並びに説明を省略する。
第2実施形態の一例によれば、上記第1実施形態の一例の利点に加えて、複数のCM5のそれぞれの負荷に応じて、CRCの再計算処理をCM5間で分散させることができるという効果を奏する。
これにより、ストレージ装置3からホスト装置21への応答時間を更に短縮することができる。
(C)その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
上記の第1及び第2実施形態では、2つのCM5でCRCの再計算を行なっているが、ミラー元CM5−1の負荷を軽減させるため、3以上のCM5が搭載されている場合には、3以上のCM5でCRCの再計算を実行させてもよい。
また、上記の第1及び第2実施形態では、ミラー元CM5−1、ミラー先CM5−2のCRC再計算の分担割合は1:1であるが、ミラー先CM5が、更に他CM5に分散させるなどにより、負担が1:NとなるようCRCの再計算処理を分散させてもよい。
また、上記の第2実施形態では、CM5のCPU9によって実行中のプロセス数によりCM5によるCRC再計算処理を振り分けているが、これに限定されない。例えば、ミラー元CM5−1のCPU9−1の使用率が負荷分散開始のしきい値を超えた場合に、ミラー先CM5−2にCRC再計算処理を振り分け、ミラー元CM5−1のCPU9−1の使用率が負荷分散開始のしきい値を下回った場合に、ミラー元CM5−1でCRC再計算処理を行なってもよい。
また、CRC再計算処理の実行回数を減らすため、ストレージ装置3の導入当初は全データについてCRC再計算処理を実行するが、チェックが一定回数以上成功した場合は、CRC再計算を行なう頻度を徐々に減少させてもよい。
なお、上記の処理部31、受信部33、コピー部35、再計算部37、比較部39、消去部41、及び負荷比較部49としての機能を実現するためのプログラム(管理プログラム)は、例えばフレキシブルディスク、CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
また、処理部31、受信部33、コピー部35、再計算部37、比較部39、消去部41、及び負荷比較部49としての機能を実現する際には、内部記憶装置(本実施形態ではCM5のメモリ11)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCM5のCPU9)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
また、本実施形態ではCM5のメモリ11が、データカウンタ43、総ブロック数保持部45、CRC再計算フラグ47、ミラー元負荷カウンタ51、及びミラー先負荷カウンタ53として機能する。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、CM5がコンピュータとしての機能を有しているのである。
(D)付記
上記第1及び第2実施形態に関して、下記の付記を記載する。
(付記1)
1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置であって、
前記複数の制御装置はそれぞれ、
データを送受信するインタフェース部と、
前記1または複数のストレージへの書き込みデータに付与された第1のチェック用情報と、計算によって得られた前記書き込みデータに対応する第2のチェック用情報とを比較し、比較結果が不一致の場合に前記インタフェース部を介してエラーを報告する制御部と、
をそなえることを特徴とするストレージ装置。
(付記2)
前記制御部は、
前記書き込みデータのコピーを他の制御装置に転送し、
前記比較結果が不一致の場合に、前記書き込みデータと、転送先の制御装置の前記書き込みデータのコピーを消去することを特徴とする付記1記載のストレージ装置。
(付記3)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて分散して行なわれることを特徴とする付記1又は2記載のストレージ装置。
(付記4)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて順番に行なわれることを特徴とする付記1〜3のいずれか1項に記載のストレージ装置。
(付記5)
前記第2のチェック用情報の前記計算は、前記複数の制御装置の前記少なくとも2つを用いてそれぞれの制御装置の負荷に応じて振り分けられることを特徴とする付記1〜3のいずれか1項に記載のストレージ装置。
(付記6)
前記第1のチェック用情報の前記計算は前記インタフェース部によって行なわれ、前記第2のチェック用情報の前記計算は前記制御部によって行なわれることを特徴とする付記1〜5のいずれか1項に記載のストレージ装置。
(付記7)
1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理方法であって、
前記複数の制御装置のそれぞれにおいて、
前記1または複数のストレージへの書き込みデータに付与された第1のチェック用情報と、計算によって得られた前記書き込みデータに対応する第2のチェック用情報とを比較し、
比較結果が不一致の場合に前記インタフェース部を介してエラーを報告する
ことを特徴とするストレージ装置の管理方法。
(付記8)
前記制御部は、
前記書き込みデータのコピーを他の制御装置に転送し、
前記比較結果が不一致の場合に、前記書き込みデータと、転送先の制御装置の前記書き込みデータのコピーを消去することを特徴とする付記7記載のストレージ装置の管理方法。
(付記9)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて分散して行なわれることを特徴とする付記7又は8記載のストレージ装置の管理方法。
(付記10)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて順番に行なわれることを特徴とする付記7〜9のいずれか1項に記載のストレージ装置の管理方法。
(付記11)
前記第2のチェック用情報の前記計算は、前記複数の制御装置の前記少なくとも2つを用いてそれぞれの制御装置の負荷に応じて振り分けられることを特徴とする付記7〜9のいずれか1項に記載のストレージ装置の管理方法。
(付記12)
1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理プログラムであって、
前記複数の制御装置のいずれかによって実行された場合に、当該制御装置に、
前記1または複数のストレージへの書き込みデータに付与された第1のチェック用情報と、計算によって得られた前記書き込みデータに対応する第2のチェック用情報とを比較させ、
比較結果が不一致の場合にエラーを報告させる
ことを特徴とするストレージ装置の管理プログラム。
(付記13)
前記管理プログラムは、前記制御部に、
前記書き込みデータのコピーを他の制御装置に転送させ、
前記比較結果が不一致の場合に、前記書き込みデータと、転送先の制御装置の前記書き込みデータのコピーを消去させることを特徴とする付記12記載のストレージ装置の管理プログラム。
(付記14)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて分散して行なわれることを特徴とする付記12又は13記載のストレージ装置の管理プログラム。
(付記15)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて順番に行なわれることを特徴とする付記12〜14のいずれか1項に記載のストレージ装置の管理プログラム。
(付記16)
前記第2のチェック用情報の前記計算は、前記複数の制御装置の前記少なくとも2つを用いてそれぞれの制御装置の負荷に応じて振り分けられることを特徴とする付記12〜14のいずれか1項に記載のストレージ装置の管理プログラム。
(付記17)
1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理プログラムを記憶する記憶媒体であって、前記管理プログラムは、
前記複数の制御装置のいずれかによって実行された場合に、当該制御装置に、
前記1または複数のストレージへの書き込みデータに付与された第1のチェック用情報と、計算によって得られた前記書き込みデータに対応する第2のチェック用情報とを比較させ、
比較結果が不一致の場合にエラーを報告させる
ことを特徴とする記憶媒体。
(付記18)
前記管理プログラムは、前記制御部に、
前記書き込みデータのコピーを他の制御装置に転送させ、
前記比較結果が不一致の場合に、前記書き込みデータと、転送先の制御装置の前記書き込みデータのコピーを消去させることを特徴とする付記17記載の記憶媒体。
(付記19)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて分散して行なわれることを特徴とする付記17又は18記載の記憶媒体。
(付記20)
前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて順番に行なわれることを特徴とする付記17〜19のいずれか1項に記載の記憶媒体。
(付記21)
前記第2のチェック用情報の前記計算は、前記複数の制御装置の前記少なくとも2つを用いてそれぞれの制御装置の負荷に応じて振り分けられることを特徴とする付記17〜19のいずれか1項に記載の記憶媒体。
107 CRC(第1及び2のチェック用情報)
11 メモリ
21 ホスト装置
3 ストレージ装置
35 コピー部
37 再計算部(計算部)
39 比較部
41 消去部
5,5−1,5−2 CM(制御装置)
7,7−1,7−2 CA(インタフェース部)
9 CPU(制御部)

Claims (8)

  1. 1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置であって、
    前記複数の制御装置はそれぞれ、
    データを送受信するインタフェース部と、
    前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定する振り分け部と、
    前記振り分け部によって前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算する計算部と、
    前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較し、比較結果が不一致の場合に前記インタフェース部を介してエラーを報告する制御部と、
    をそなえることを特徴とするストレージ装置。
  2. 前記制御部は、
    前記書き込みデータのコピーを他の制御装置に転送し、
    前記比較結果が不一致の場合に、前記書き込みデータと、転送先の制御装置の前記書き込みデータのコピーを消去することを特徴とする請求項1記載のストレージ装置。
  3. 前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて分散して行なわれることを特徴とする請求項1又は2記載のストレージ装置。
  4. 前記第2のチェック用情報の計算は、前記複数の制御装置の少なくとも2つを用いて順番に行なわれることを特徴とする請求項1〜3のいずれか1項に記載のストレージ装置。
  5. 前記第2のチェック用情報の前記計算は、前記複数の制御装置の少なくとも2つを用いてそれぞれの制御装置の負荷に応じて振り分けられることを特徴とする請求項1〜3のいずれか1項に記載のストレージ装置。
  6. 1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理方法であって、
    前記複数の制御装置のそれぞれにおいて、
    前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定し、
    前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算し、
    前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較し、
    比較結果が不一致の場合にエラーを報告する
    ことを特徴とするストレージ装置の管理方法。
  7. 1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理プログラムであって、
    前記複数の制御装置のいずれかによって実行された場合に、当該制御装置に、
    前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定させ、
    前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算させ、
    前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較させ、
    比較結果が不一致の場合にエラーを報告させる
    ことを特徴とするストレージ装置の管理プログラム。
  8. 1または複数のストレージに対するデータ書き込み制御を少なくとも行う複数の制御装置を有するストレージ装置の管理プログラムを記憶する記憶媒体であって、前記管理プログラムは、
    前記複数の制御装置のいずれかによって実行された場合に、当該制御装置に、
    前記複数の制御装置のそれぞれの負荷に基づいて、前記1または複数のストレージへの各書き込みデータブロックに対応する第2のチェック用情報の計算を自制御装置で行なうか、或いは前記複数の制御装置のうちの他の制御装置に行なわせるかを判定させ、
    前記第2のチェック用情報の計算を自制御装置で行なうと判定された場合に、該第2のチェック用情報を計算させ、
    前記書き込みデータブロックに付与された第1のチェック用情報と、前記計算によって得られたか或いは前記他の制御装置に計算させた前記第2のチェック用情報とを比較させ、
    比較結果が不一致の場合にエラーを報告させる
    ことを特徴とする記憶媒体。
JP2012173522A 2012-08-06 2012-08-06 ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体 Expired - Fee Related JP5966744B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012173522A JP5966744B2 (ja) 2012-08-06 2012-08-06 ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体
US13/955,696 US20140040678A1 (en) 2012-08-06 2013-07-31 Storage device and method for managing storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012173522A JP5966744B2 (ja) 2012-08-06 2012-08-06 ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2014032573A JP2014032573A (ja) 2014-02-20
JP5966744B2 true JP5966744B2 (ja) 2016-08-10

Family

ID=50026727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012173522A Expired - Fee Related JP5966744B2 (ja) 2012-08-06 2012-08-06 ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体

Country Status (2)

Country Link
US (1) US20140040678A1 (ja)
JP (1) JP5966744B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023966A (ja) * 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム
US7117323B1 (en) * 2001-10-23 2006-10-03 Lsi Logic Corporation Cyclic redundancy checking for managing the coherency of mirrored storage volumes
US7434150B1 (en) * 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
EP1738273A4 (en) * 2004-04-12 2012-12-26 Univ Arizona INFORMATION PROCESSING AND TRANSPORT ARCHITECTURE FOR DATA STORAGE
JP4383321B2 (ja) * 2004-11-09 2009-12-16 富士通株式会社 記憶制御装置および外部記憶装置
JP5125722B2 (ja) * 2008-04-18 2013-01-23 日本電気株式会社 ディスクアレイシステム、ディスク装置、筐体間ミラーリング方法およびプログラム
WO2010116538A1 (en) * 2009-04-06 2010-10-14 Hitachi, Ltd. Storage apparatus and data transfer method
US8627065B2 (en) * 2010-11-09 2014-01-07 Cleversafe, Inc. Validating a certificate chain in a dispersed storage network

Also Published As

Publication number Publication date
US20140040678A1 (en) 2014-02-06
JP2014032573A (ja) 2014-02-20

Similar Documents

Publication Publication Date Title
JP5247887B2 (ja) ストレージ装置、及びその制御方法、並びにプログラム
JP5655344B2 (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP5147824B2 (ja) Raidストレージ・システム、これを動作させる方法及びプログラム
US7827351B2 (en) Storage system having RAID level changing function
US7900013B2 (en) Method and computer for determining storage device
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
US8078809B2 (en) System for accessing an offline storage unit through an online storage unit
JP4884721B2 (ja) 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法
JP2006139478A (ja) ディスクアレイシステム
JP4491330B2 (ja) ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP2009199266A (ja) データ転送制御装置、データ整合性判定方法及び記憶制御装置
JP2006072435A (ja) ストレージシステムおよびデータ記録方法
JP2007199934A (ja) データ蓄積装置及びデータ読出し方法
WO2014010077A1 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
US20120011317A1 (en) Disk array apparatus and disk array control method
JP5966744B2 (ja) ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体
US20100325373A1 (en) Duplexing Apparatus and Duplexing Control Method
US10014983B2 (en) System, receiving device, and method
US20130227217A1 (en) Archive system and processing method
US10310954B2 (en) Control device and method for controlling storage devices
JP2004185477A (ja) 光記憶媒体アレイ装置およびデータ転送方法
JP6838299B2 (ja) ストレージ装置、ストレージ制御装置、及びストレージ制御プログラム
JP5729043B2 (ja) ストレージ装置および制御装置
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ
JP5585930B2 (ja) ディスクアレイ装置、及びデータ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160519

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent or registration of utility model

Ref document number: 5966744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees