JP2008165582A - 記憶システム及びデータ保証方法 - Google Patents
記憶システム及びデータ保証方法 Download PDFInfo
- Publication number
- JP2008165582A JP2008165582A JP2006355692A JP2006355692A JP2008165582A JP 2008165582 A JP2008165582 A JP 2008165582A JP 2006355692 A JP2006355692 A JP 2006355692A JP 2006355692 A JP2006355692 A JP 2006355692A JP 2008165582 A JP2008165582 A JP 2008165582A
- Authority
- JP
- Japan
- Prior art keywords
- data
- guarantee
- microprocessor
- hard disk
- parity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/104—Metadata, i.e. metadata associated with RAID systems with parity
Abstract
【課題】本発明は、安価なハードディスクドライブを多用してもデータの信頼性を保証し、短時間で検証し得る記憶システム及びデータ保証方法を提案する。
【解決手段】ホスト装置に対してデータを読み書きするための記憶領域を提供する記憶装置と、記憶装置を制御する記憶制御装置とを有する記憶システムにおいて、記憶装置に保存するホスト装置からのデータに、当該データの保証を示す保証番号を生成する第1の生成部と、ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成部と、ホスト装置からのデータの保証を示す保証番号と、パリティデータの保証を示す保証番号とを照合する照合部と、を備えることとした。
【選択図】図1
【解決手段】ホスト装置に対してデータを読み書きするための記憶領域を提供する記憶装置と、記憶装置を制御する記憶制御装置とを有する記憶システムにおいて、記憶装置に保存するホスト装置からのデータに、当該データの保証を示す保証番号を生成する第1の生成部と、ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成部と、ホスト装置からのデータの保証を示す保証番号と、パリティデータの保証を示す保証番号とを照合する照合部と、を備えることとした。
【選択図】図1
Description
本発明は、記憶システム及びデータ保証方法に関し、例えば安価なハードディスクドライブを使用した記憶システムに適用して好適なものである。
近年、情報化社会の進展等につれて、ストレージ装置内で保存するホスト装置からのデータ量が急増しており、これに伴いストレージ装置内の記憶容量の大規模化が進められている。そこで、ストレージ装置では、まずハードディスクドライブからRAID(Redundant Array of Independent/Inexpensive Disks)構成されたディスクアレイを作成し、この物理的な記憶リソースを複数個集めて物理ボリュームを作成することでストレージ装置内の記憶容量の大規模化を図っている。
上記のようなRAID構成をサポートするハードディスクドライブとしては、高い性能及びデータの信頼性が高い高価なハードディスクドライブと、大容量のデータを保存できるもののデータの信頼性の保証が難しい安価なハードディスクドライブとがある。
これらのハードディスクドライブは、ストレージ装置内の保存されるデータの質や量、顧客のニーズ等を考慮して、適宜使用される。
特に近年においては、安価なハードディスクドライブを多用してデータを保存する要望が高まっている。
主に安価なハードディスクドライブに保存されるデータの信頼性を高める技術としては、特許文献1に開示された方法が挙げられる。特許文献1には、ホストデータの圧縮データを作成し、圧縮データと当該圧縮データを保存する記憶領域とは異なる記憶領域に保存されるデータとを比較してデータの信頼性を保証する方法が提案されている。
特開2006−251960号公報
しかし、上記のような安価なハードディスクドライブを多用する場合、ハードディスクドライブ内の保存されるべき記憶領域にデータが正しく書き込まれないおそれがある。
また、データの信頼性を確保するためには、保存される全てのデータについてデータが保存されるべき記憶領域に正しく書き込まれているかを検証しなければならず、一つ一つのデータを検証するために多くの時間を費やすことになる。
本発明は以上の点を考慮してなされたもので、安価なハードディスクドライブを多用してもデータの信頼性を保証し、短時間で検証し得る記憶システム及びデータ保証方法を提案しようとするものである。
かかる課題を解決するため本発明は、ホスト装置に対してデータを読み書きするための記憶領域を提供する記憶装置と、記憶装置を制御する記憶制御装置とを有する記憶システムにおいて、記憶装置に保存するホスト装置からのデータに、当該データの保証を示す保証番号を生成する第1の生成部と、ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成部と、ホスト装置からのデータの保証を示す保証番号と、パリティデータの保証を示す保証番号とを照合する照合部と、を備えることを特徴とする。
その結果、記憶装置にホスト装置からのデータを保存する際に、ホスト装置からのデータの保証番号と当該データに対応するパリティデータの保証番号とを生成し、両者の保証番号を照合するため、記憶装置に保存されるデータの信頼性を確保することができる。
また、本発明は、ホスト装置に対してデータを読み書きするための記憶領域を提供する記憶装置と、記憶装置を制御する記憶制御装置とを有する記憶システムのデータ保証方法において、記憶装置に保存するホスト装置からのデータに、当該データの保証を示す保証番号を生成する第1の生成ステップと、ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成ステップと、ホスト装置からのデータの保証を示す保証番号と、パリティデータの保証を示す保証番号とを照合する照合ステップと、を備えることを特徴とする。
その結果、記憶装置にホスト装置からのデータを保存する際に、ホスト装置からのデータの保証番号と当該データに対応するパリティデータの保証番号とを生成し、両者の保証番号を照合するため、記憶装置に保存されるデータの信頼性を確保することができる。
本発明によれば、安価なハードディスクドライブを多用してもデータの信頼性を保証することができる。
また、記憶システム内において、ハードディスクドライブ内に保存されるデータの信頼性に関する検証を短時間で行うことができる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)第1の実施の形態による記憶システムの構成
(1−1−1)記憶システムの全体構成
図1において、1は全体として本実施の形態による記憶システムを示す。この記憶システム1は、ホスト装置2がネットワーク3を介してストレージ装置4と接続されることにより構成されている。
(1−1)第1の実施の形態による記憶システムの構成
(1−1−1)記憶システムの全体構成
図1において、1は全体として本実施の形態による記憶システムを示す。この記憶システム1は、ホスト装置2がネットワーク3を介してストレージ装置4と接続されることにより構成されている。
ホスト装置2は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。またホスト装置2は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置(図示せず)と、モニタディスプレイやスピーカ等の情報出力装置(図示せず)とを備える。
ネットワーク3は、例えばSAN(Storage Area Network)、LAN(Local Area Network)、インターネット、公衆回線又は専用回線などから構成される。このネットワーク3を介したホスト装置2及びストレージ装置4間の通信は、例えばネットワーク3がSANである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク3がLANである場合にはTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。
ストレージ装置4は、複数のハードディスクドライブ50からなるディスクドライブ部5と、複数のハードディスクドライブ50をRAID(Redundant Array of Independent/Inexpensive Disks)方式で管理するコントローラ6とを備えて構成される。
ハードディスクドライブ50は、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスクドライブ、又はSATA(Serial AT Attachment)ディスクや光ディスクドライブ等の安価なディスクドライブから構成される。本実施の形態では、ハードディスクドライブ50は、SATA(Serial AT Attachment)ディスクや光ディスクドライブ等の安価なディスクドライブから構成される。
コントローラ6は、複数のチャネルアダプタ7、接続部8、共有メモリ9、キャッシュメモリ10、複数のディスクアダプタ11及びサービスプロセッサ12を備えて構成される。
各チャネルアダプタ7は、マイクロプロセッサ70、ホスト装置2のインタフェースプロトコルを解釈するためのプロトコルチップ71、高速にデータの授受を行うためにDMA(Direct Memory Access)回路を搭載したデータ転送部72、メモリ73及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、ネットワーク3に接続するためのポート(図示せず)を備える。各チャネルアダプタ7は、ホスト装置2から送信される各種コマンドを解釈して、必要な処理を実行する。各チャネルアダプタ7のポートには、それぞれを識別するためのネットワークアドレス(例えば、IPアドレスやWWN)が割り当てられており、これによりチャネルアダプタ7がそれぞれ個別にNAS(Network Attached Storage)として振る舞うことができるようになされている。そして各チャネルアダプタ7は、内部バスアダプタ(図示せず)を介して接続部8と接続されている。
接続部8は、上述したチャネルアダプタ7の他、共有メモリ9、キャッシュメモリ10及びディスクアダプタ11と接続されている。チャネルアダプタ7、共有メモリ9、キャッシュメモリ10及びディスクアダプタ11間のデータやコマンドの授受は、この接続部8を介して行われる。接続部8は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ又はバス等で構成される。
共有メモリ9は、チャネルアダプタ7及びディスクアダプタ11により共有される記憶メモリである。共有メモリ9は、主にストレージ装置4の電源投入時にシステムボリュームから読み出されたシステム構成情報及び各種制御プログラムや、ホスト装置2からのコマンドなどを記憶するために利用される。共有メモリ9についての詳細な説明は、後述する。
キャッシュメモリ10も、チャネルアダプタ7及びディスクアダプタ11により共有される記憶メモリである。このキャッシュメモリ10は、主にストレージ装置4に入出力するユーザデータを一時的に記憶するために利用される。
各ディスクアダプタ11は、マイクロプロセッサ110、メモリ(図示せず)、ハードディスクドライブ50のインタフェースプロトコルを解釈するためのプロトコルチップ111、高速にデータの授受を行うためにDMA回路を搭載したデータ転送部112及び冗長データを生成するためにDRR(Data Recovery Reconstruct)回路を搭載した冗長データ生成部113等を備えたマイクロコンピュータシステムとして構成され、ディスクドライブ部5との通信時におけるプロトコル制御を行うインタフェースとして機能する。本実施の形態においては、冗長データ生成部113は、パリティデータを生成するために用いられる。これらディスクアダプタ11は、例えばファイバーチャネルケーブルを介して対応するディスクドライブ部5と接続されており、ファイバーチャネルプロトコルに従ってこれらディスクドライブ部5との間のデータの授受を行う。
サービスプロセッサ12は、ストレージ装置4の保守又は管理のために操作されるコンピュータ装置であり、例えばノート型のパーソナルコンピュータから構成される。このサービスプロセッサ12は、ネットワーク3を介してホスト装置2が接続されており、ホスト装置2からデータ或いは命令を受信することができる。サービスプロセッサ12は、ストレージ装置4内の障害発生を監視してディスプレイ画面(図示せず)に表示することができる。
(1−1−2)チャネルアダプタ内のメモリの構成
次に、上述のチャネルアダプタ7内のメモリ73の構成について説明する。
次に、上述のチャネルアダプタ7内のメモリ73の構成について説明する。
チャネルアダプタ7は、図2に示すように、ホスト装置2からのホストデータの書き込み要求に基づいて実行するチャネルアダプタ用ライトプログラム730、ホスト装置2からのリードデータの読み出し要求に基づいて実行するチャネルアダプタ用リードプログラム731を備える。
(1−1−3)共有メモリの構成
次に、上述の共有メモリ9の構成について説明する。
次に、上述の共有メモリ9の構成について説明する。
共有メモリ9は、図3に示すように、チャネルアダプタ7及びディスクアダプタ11間の通信メッセージを記憶するメッセージエリア90、ハードディスクドライブ50におけるRAID構成情報を記憶する構成情報エリア91及びハードディスクドライブ50の障害発生回数を記憶する障害管理エリア92を備える。
メッセージエリア90は、チャネルアダプタ7及びディスクアダプタ11間の通信メッセージを管理するメッセージ情報テーブル900と、当該テーブル内の情報を追加、変更又は削除するためのメッセージプログラム901とを備える。
メッセージ情報テーブル900は、図4に示すように、通信メッセージの送信元と送信先とを管理するためのテーブルである。
メッセージ情報テーブル900は、通信メッセージが有効/無効を示す「フラグ」フィールド900A、通信メッセージを識別する「メッセージコード」フィールド900B、通信メッセージの送信元であるチャネルアダプタ7のマイクロプロセッサ70を識別する「送信コード」フィールド900C、送信内容のアドレスを示す「送信内容のアドレス」フィールド900D、通信メッセージの送信先であるディスクアダプタ11のマイクロプロセッサ110を識別する「受信コード」フィールド900E、受信内容のアドレスを示す「受信内容のアドレス」フィールド900Fから構成される。
構成情報エリア91は、ハードディスクドライブ50におけるRAID構成情報を記憶するレイドグループ情報テーブル910、当該情報テーブル910内の情報を追加、変更又は削除するためのレイドグループプログラム911、ハードディスクドライブ50の構成情報を記憶するハードディスクドライブ情報テーブル912及び当該情報テーブル912内の情報を追加、変更又は削除するためのハードディスクドライブプログラム913を備える。
レイドグループ情報テーブル910は、図5に示すように、レイドグループを構成する構成情報を管理するためのテーブルである。レイドグループ情報テーブル910は、レイドのグループ番号を示す「レイドグループ番号」フィールド910A、レイドのレベルを示す「レイドレベル」フィールド910B、レイドグループの使用可否状態を示す「状態」フィールド910C、レイドグループを構成するハードディスクドライブ50の台数を示す「ハードディスクドライブ台数」フィールド910D及びレイドグループに含まれるハードディスクドライブを識別する「ハードディスクドライブコード」フィールド910Eから構成される。
ハードディスクドライブ情報テーブル912は、図6に示すように、ハードディスクドライブを構成する構成情報を管理するためのテーブルである。
ハードディスクドライブテーブル912は、ハードディスクドライブを識別する「ハードディスクドライブコード」フィールド912A、ハードディスクドライブの使用可否状態を示す「状態」フィールド912Bとから構成される。
障害情報テーブル920は、図7に示すように、ハードディスクドライブの障害の種類や回数を管理するためのテーブルである。
障害情報テーブル920は、ハードディスクドライブを識別する「ハードディスクドライブコード」フィールド920A、ハードディスクドライブをセクタ単位で障害の回数をカウントする「セクタ障害カウンタ」フィールド920B、ハードディスクドライブの機構系の障害の回数をカウントする「機構系障害カウンタ」フィールド920C、ハードディスクドライブが規定時間内に応答しなかった回数を示す「応答障害カウンタ」フィールド920Dとから構成される。
(1−1−4)ディスクアダプタ内のメモリの構成
次に、上述のディスクアダプタ11内のメモリ114の構成について説明する。
次に、上述のディスクアダプタ11内のメモリ114の構成について説明する。
ディスクアダプタ11は、図8に示すように、ホスト装置2からのホストデータの書き込み要求に基づいて実行するディスクアダプタ用ライトプログラム115、ホスト装置2からのリードデータの読み出し要求に基づいて実行するディスクアダプタ用リードプログラム116、ホスト装置2からのホストデータを分割したデータ(以下、分割ホストデータという)に付与した保証コード及び当該分割ホストデータに対応するパリティデータに付与した保証コードを比較して異常を検出した場合に実行するコンペア異常プログラム117、パリティデータの異常を検出した場合に実行するパリティデータ異常プログラム118、分割ホストデータの異常を検出した場合に実行する分割ホストデータ異常プログラム119、分割ホストデータ又はパリティデータを回復してハードディスクドライブに保存する場合に実行するデータ回復コピープログラム120を備える。
(1−1−5)各種のデータブロック
本実施の形態における記憶システム1においては、図9に示すように、5つの安価なハードディスクドライブ50を使用する。5つのハードディスクドライブ50のうち、2つのハードディスクドライブ50A、50Bは、ホスト装置2からのホストデータを分割した分割ホストデータD0、D1を保存するディスクであり、他の2つのハードディスクドライブ50C、50Dは分割ホストデータD0、D1に保存されるデータの誤りを検出するためのパリティデータP1、P2を保存するディスクである。すなわち、ハードディスクドライブの台数nは「4」と設定するものとする。その他のハードディスクドライブ50A´は、ハードディスクドライブ50Aのスペアディスクとして備える。
本実施の形態における記憶システム1においては、図9に示すように、5つの安価なハードディスクドライブ50を使用する。5つのハードディスクドライブ50のうち、2つのハードディスクドライブ50A、50Bは、ホスト装置2からのホストデータを分割した分割ホストデータD0、D1を保存するディスクであり、他の2つのハードディスクドライブ50C、50Dは分割ホストデータD0、D1に保存されるデータの誤りを検出するためのパリティデータP1、P2を保存するディスクである。すなわち、ハードディスクドライブの台数nは「4」と設定するものとする。その他のハードディスクドライブ50A´は、ハードディスクドライブ50Aのスペアディスクとして備える。
また、各ハードディスクドライブ50A〜50Dは、各ディスクアダプタ11A〜11Dと接続され、各ディスクアダプタ11A〜11Dは、各チャネルアダプタ7A〜7Dと接続されている。
このような記憶システムの構成において、図10に示すように、キャッシュメモリ10上に保存されるホストデータの最小ブロック単位は、ユーザのデータを保存する「ユーザデータ」エリア13、当該ユーザデータの位置情報を示す「付加コード」エリア14、データを識別するための識別番号を示す「保証コード」エリア15とから構成される。例えば、最小ブロックフォーマットにおける「ユーザデータ」エリア13は512バイト、「付加コード」エリア14は8バイト及び「保証コード」エリア15は8バイトから構成される。
なお、この最小ブロック単位は、ハードディスクドライブ50上も同様の構成であるため、説明を省略する。
ハードディスクドライブ50上に保存されるデータの最小ブロック単位のうち、「保証コード」エリアには、サブブロックが構成されている。そしてこのサブブロックは、ハードディスクドライブ50A、50Bと、ハードディスクドライブ50C、50Dとでのフォーマットが異なる。
図11に示すように、ハードディスクドライブ50A、50Bに保存されるデータのサブブロックは、データを検証するための識別番号を示す「保証コード」エリア16D及びデータを保存した時点での年月日の履歴を示す「Time Stamp」エリア17Dとから構成される。
また図12に示すように、ハードディスクドライブ50C、50Dに保存されるパリティデータのサブブロックは、各ハードディスクドライブ50A、50Bに対応する識別番号を示す「保証コード」エリア16P、17P及び使用しない予備領域を示す「RSV」エリア18Pとから構成される。
(1−2)データ保証機能
次に、本実施の形態による記憶システム1に搭載されたデータ保証機能について説明する。
次に、本実施の形態による記憶システム1に搭載されたデータ保証機能について説明する。
この記憶システム1は、ホスト装置2から要求に基づいて分割ホストデータDをハードディスクドライブ50に書き込む際に、チャネルアダプタ7が分割ホストデータDを書き込む毎に当該データを識別するための保証コード16Dを生成して当該データDに付与し、ディスクアダプタ11がディスクアダプタ11内で作成したパリティデータPに当該保証コード16Pをコピーすることで保証コードを付与する点を特徴としている。
また、ホスト装置2から要求に基づいて分割ホストデータDをハードディスクドライブ50から読み出す際に、分割ホストデータDに付与されている保証コード16Dと、分割ホストデータDに対応するパリティデータPの保証コード16Pとをコンペア(照合)する点を特徴としている。
(1−2−1)データのライト時における処理内容
上記の特徴を実現する手段として、ホスト装置の書き込み要求に基づいて分割ホストデータの保証コードを設定し、当該データの保証コードをパリティデータにコピーする処理内容について説明する。
上記の特徴を実現する手段として、ホスト装置の書き込み要求に基づいて分割ホストデータの保証コードを設定し、当該データの保証コードをパリティデータにコピーする処理内容について説明する。
(1−2−1−1)チャネルアダプタの処理内容
まず、チャネルアダプタ7が、ホスト装置の書き込み要求に基づいて、分割ホストデータの保証コードを設定する処理内容を説明する。チャネルアダプタ7側の書き込み処理は、マイクロプロセッサ70がチャネルアダプタ用ライトプログラム730に基づいて当該処理を実行する。
まず、チャネルアダプタ7が、ホスト装置の書き込み要求に基づいて、分割ホストデータの保証コードを設定する処理内容を説明する。チャネルアダプタ7側の書き込み処理は、マイクロプロセッサ70がチャネルアダプタ用ライトプログラム730に基づいて当該処理を実行する。
まず、図13に示すように、プロトコルチップ71Aはホスト装置2からの書き込み要求を受領することで、この処理を開始する(SP0)。そしてプロトコルチップ71Aは、この書き込み要求を受領した旨をプロトコルチップ70Aに報告する(SP1)。
この報告を受け取ると、マイクロプロセッサ70Aは、プロトコルチップ71Aに対して、データ転送部72Aにホスト装置2からのホストデータを転送するように、指示をする(SP2)。
当該指示を受けたプロトコルチップ71Aは、データ転送部72Aにホスト装置2からのホストデータを転送する(SP3)。
次に、マイクロプロセッサ70Aは、データ転送部72Aに対して、当該ホストデータを論理分割(以下、これをRAIDストライプ分割という)し、当該分割ホストデータD0、D1を一時的に保存するキャッシュメモリ10のアドレス及び当該分割ホストデータD0、D1の転送長を設定するように指示をする(SP4)。引き続き、マイクロプロセッサ70Aは、共有メモリ9内の構成情報エリア91を参照し、データ転送部72Aに対して、ハードディスクドライブ数の設定をするように指示をする(SP4)。
そして、マイクロプロセッサ70Aは、分割ホストデータD0、D1をプロトコルチップ71Aから読み込み、プロトコルチップ71Aに対して、キャッシュメモリ10に当該分割ホストデータD0、D1を転送するように指示をする(SP4)。
そうするとデータ転送部72Aは、マイクロプロセッサ70Aの指示に従い、ホストデータを論理分割して、分割ホストデータD0、D1を作成する。そしてデータ転送部72Aは、分割ホストデータD0、D1を一時的に保存するキャッシュメモリ10のアドレス及び当該分割ホストデータD0、D1の転送長を設定する(SP5)。
また、データ転送部72Aは、ハードディスクドライブ数の設定をする(SP5)。
引き続き、データ転送部72Aは、分割ホストデータD0、D1をキャッシュメモリに保存する最小ブロック単位毎に保証コードを設定し、分割ホストデータD0、D1に付与する(SP6)。
図14に示すように、データ転送部72Aは、保証コードが付与された分割ホストデータD0、D1をキャッシュメモリ10へ転送する(SP6)。
データ転送部72Aは、キャッシュメモリ10への転送が完了するとマイクロプロセッサ70Aに転送完了した旨を報告する(SP7)。
マイクロプロセッサ70Aは、プロトコルチップ71Aからの転送完了した旨の通知を受領すると(SP8)、キャッシュメモリに転送された分割ホストデータD0、D1をハードディスクドライブ50に書き込むというメッセージを、共有メモリ9のメッセージエリア90内のメッセージ情報テーブル900に設定する(SP9)。
そしてマイクロプロセッサ70Aは、プロトコルチップ71Aに、ホスト装置2へ書き込み処理が完了した旨のステータス送信をするように、指示をする(SP10)。
この指示を受けたプロトコルチップ71Aは、ホスト装置2に書き込み処理が完了した旨のステータス送信をすると(SP11)。チャネルアダプタ側での書き込み処理を終了する(SP12)。
(1−2−1−2)ディスクアダプタの処理内容
まず、ディスクアダプタ11がホスト装置2からの書き込み要求に基づいて、パリティデータに分割ホストデータの保証コードをコピーする処理内容を説明する。ディスクアダプタ11側の書き込み処理は、マイクロプロセッサ110がディスクアダプタ用ライトプログラム115に基づいて当該処理を実行する。
まず、ディスクアダプタ11がホスト装置2からの書き込み要求に基づいて、パリティデータに分割ホストデータの保証コードをコピーする処理内容を説明する。ディスクアダプタ11側の書き込み処理は、マイクロプロセッサ110がディスクアダプタ用ライトプログラム115に基づいて当該処理を実行する。
具体的には、図15に示すように、マイクロプロセッサ110Aは、共有メモリ9のメッセージエリア90にハードディスクドライブ50Aに対する書き込み指示が書き込まれると、この処理を開始する(SP20)。
マイクロプロセッサ110Aは、冗長データ生成部113Aに対し、分割ホストデータD0、D1をキャッシュメモリ10から読み込み、分割ホストデータD0、D1に対応するパリティデータP1、P2を作成するよう指示をする(SP21)。
同時に、マイクロプロセッサ110Aは、冗長データ生成部113Aに対し、作成したパリティデータP1、P2をキャッシュメモリ10に書き込むよう指示をする(SP21)。
そして、マイクロプロセッサ110Aは、冗長データ生成部113Aに共有メモリ9の構成情報エリア91内のレイドグループ情報テーブル910を参照し、レイドグループを構成するハードディスクドライブの台数を設定する(SP22)。本実施の形態においてマイクロプロセッサ110Aは、ハードディスクドライブの台数を4と設定する。
上記指示を受けた冗長データ生成部113Aは、パリティデータP1、P2を作成する(SP23)。
冗長データ生成部113Aは、分割ホストデータD0、D1の保証コード16D0、16D1を、作成したパリティデータP1、P2にコピーする(SP24)。
具体的には、図16に示すように、冗長データ生成部113Aは、パリティデータP1に、分割ホストデータD0、D1の保証コード16D0、16D1をコピーして、対応する保証コード16P1、17P1を作成する。引き続き、冗長データ生成部113Aは、パリティデータP2に、分割ホストデータD0、D1の保証コード16D0、16D1をコピーして、対応する保証コード16P2、17P2を作成する。
そうすると、冗長データ生成部113Aは、パリティデータP1、P2をキャッシュメモリ10に書き込む(SP25)。
次に、マイクロプロセッサ110Aは、自マイクロプロセッサ110Aを含む、マイクロプロセッサ110A〜110Dに、当該マイクロプロセッサ110A〜110Dと接続されるハードディスクドライブ50A〜50Dに分割ホストデータD0、D1又はパリティデータP1、P2を書き込むように指示をする(SP26)。
具体的には、マイクロプロセッサ110Aは、共有メモリ9のメッセージ情報テーブル900内に、ハードディスクドライブ50A〜50Dに分割ホストデータD0、D1又はパリティデータP1、P2を書き込み命令のメッセージを設定する。
その後、図17に示すように、マイクロプロセッサ110A〜110Dは、マイクロプロセッサ110Aの指示に従い、ハードディスクドライブ50A〜50Dに分割ホストデータD0、D1又はパリティデータP1、P2を書き込む(SP27)。
そしてマイクロプロセッサ110Aは、他のマイクロプロセッサ110B〜110Dから書き込み完了があるかを判断し(SP28)、全ての書き込み完了がない場合には(SP28:NO)、全ての書き込み完了報告があるまで待つ。
一方、マイクロプロセッサ110Aは、全ての書き込みが完了した旨の報告があると(SP28:YES)、この旨を受領し(SP29)、ディスクアダプタ側の書き込み処理を終了する(SP30)。
具体的には、マイクロプロセッサ110Aは、共有メモリ9のメッセージ情報テーブル900の「フラグ」フィールド900Aを有効にして、この処理を終了する。
引き続き、ステップSP27において、マイクロプロセッサ110Aからハードディスクドライブ50A〜50Dの書き込み指示を受けたマイクロプロセッサ110A〜110Dの書き込み処理について説明する。
図18に示すように、マイクロプロセッサ110A〜110Dは、マイクロプロセッサ110Aから分割ホストデータD0、D1又はパリティデータP1、P2を書き込む指示を受領すると、共有メモリ9のメッセージ情報テーブル900に設定された情報に従い、この処理を開始する(SP40)。
そして、マイクロプロセッサ110A〜110Dは、データ転送部112A〜112Dに対して、分割ホストデータD0、D1又はパリティデータP1、P2が保存されるハードディスクドライブ50A〜50Dのアドレスと転送サイズを設定するよう指示をする(SP41)。
この指示を受けたデータ転送部112A〜112Dに対して、ハードディスクドライブ50のアドレスと転送サイズを設定する(SP42)。
マイクロプロセッサ110A〜110Dは、プロトコルチップ111A〜111Dに対し、書き込むハードディスクドライブ50A〜50Dの識別ID、LBA(Logical Block Address)及び転送サイズを設定するよう指示をする(SP43)。
プロトコルチップ111A〜111Dは、書き込むハードディスクドライブ50の識別ID、LBA(Logical Block Address)及び転送サイズを設定する(SP44)。
図17に示すように、プロトコルチップ111A〜111Dは、ハードディスクドライブ50A〜50Dに分割ホストデータD0、D1又はパリティデータP1、P2を転送する。
他のマイクロプロセッサ110B〜110Dは、ハードディスクドライブ50へ分割ホストデータD1又はパリティデータP1、P2の書き込みを完了すると、マイクロプロセッサ110Aにこの旨を報告して(SP45)、この処理を終了する(SP46)。
なお、マイクロプロセッサ110A内における処理の場合には、書き込み完了報告をせずに他のマイクロプロセッサ110B〜110Dからの書き込み完了通知を待つことになる(SP28)。
(1−2−1−3)保証コードの設定処理内容
次に、ホスト装置からのデータの書き込み要求に基づいて、ストレージ装置4が分割ホストデータの保証コード及びパリティデータの保証コードを設定するための保証コード設定処理の内容について説明する。
次に、ホスト装置からのデータの書き込み要求に基づいて、ストレージ装置4が分割ホストデータの保証コード及びパリティデータの保証コードを設定するための保証コード設定処理の内容について説明する。
具体的には、図19に示すように、チャネルアダプタ7は、ホスト装置2からのホストデータの書き込み要求を受領すると、保証コード設定処理を開始する(SP50)。
チャネルアダプタ7のデータ転送部72は、キャッシュメモリ10内でRAIDストライプ分割をした分割ホストデータD0に保証コード16D0を設定し、分割ホストデータD0に付与する(SP51)。
次に、ディスクアダプタ11のデータ転送部112は、保証コードを付与された分割ホストデータD0を、ハードディスクドライブ50に書き込む(SP52)。
そして、ディスクアダプタ11の冗長データ生成部113は、分割ホストデータに対応するパリティデータを作成し、パリティデータに付与する保証コードを作成する(SP53)。
ディスクアダプタ11のデータ転送部112は、保証コードを付与したパリティデータをハードディスクドライブに書き込みすると(SP54)、この処理を終了する(SP55)。
(1−2−2)データのリード時における処理内容
上記の特徴を実現する手段として、ホスト装置からのデータの読み出し要求に基づいて、ハードディスクドライブから読み出した分割ホストデータの保証コードとパリティデータの保証コードとを比較し、読み出し要求があったデータの保証を確保する処理内容について説明する。このとき、当該データの保証が確保されない場合には、障害のあるデータを検出して、データの保証を確保できるように回復する処理内容についても併せて説明する。
上記の特徴を実現する手段として、ホスト装置からのデータの読み出し要求に基づいて、ハードディスクドライブから読み出した分割ホストデータの保証コードとパリティデータの保証コードとを比較し、読み出し要求があったデータの保証を確保する処理内容について説明する。このとき、当該データの保証が確保されない場合には、障害のあるデータを検出して、データの保証を確保できるように回復する処理内容についても併せて説明する。
(1−2−2−1)チャネルアダプタの処理内容
まず、チャネルアダプタ7がホスト装置からのデータの読み出し要求に基づいて、要求されたデータをホスト装置2に転送する処理内容を説明する。チャネルアダプタ7の読み出し処理は、マイクロプロセッサ70がチャネルアダプタ用リードプログラム731に基づいて当該処理を実行する。
まず、チャネルアダプタ7がホスト装置からのデータの読み出し要求に基づいて、要求されたデータをホスト装置2に転送する処理内容を説明する。チャネルアダプタ7の読み出し処理は、マイクロプロセッサ70がチャネルアダプタ用リードプログラム731に基づいて当該処理を実行する。
図20及び図21に示すように、プロトコルチップ71Aは、ホスト装置2からのデータの読み出し要求を受領することで、この処理を開始する(SP60)。そしてプロトコルチップ71Aは、マイクロプロセッサ70Aに、データの読み出し要求があったことを報告する(SP61)。
この報告を受け取ったマイクロプロセッサ70Aは、ホスト装置2が要求するデータがRAIDストライプ分割されたハードディスクドライブのうち、どのハードディスクドライブに該当するのかを、共有メモリ9のレイドグループ情報テーブル910及びハードディスクドライブ情報テーブル911を参照して特定(物理論理変換)する(SP62)。ここでは、ホスト装置2が要求するデータは、分割ホストデータD0とする。
そして、マイクロプロセッサ70Aは、共有メモリ9のメッセージ情報テーブル900内に、ハードディスクドライブ50Aに保存される分割ホストデータD0をキャッシュメモリ10に読み込むようにメッセージを設定する(SP63)。
その後マイクロプロセッサ70Aは、ディスクアダプタ11Aに対して、ハードディスクドライブ50に保存された分割ホストデータD0をキャッシュメモリ10に読み込むように指示をし(SP64)、キャッシュメモリ10に当該分割ホストデータD0が読み込まれたか否かを判断する(SP65)。
ここでマイクロプロセッサ70Aは、ハードディスクドライブ50に保存された分割ホストデータD0がキャッシュメモリ10に読み込まれていないと判断すると(SP65:NO)、読み込まれるまで待つ。
一方、マイクロプロセッサ70Aは、ハードディスクドライブ50に保存された分割ホストデータD0がキャッシュメモリ10に読み込まれていると判断すると(SP65:YES)、データ転送部72Aに対し、分割ホストデータD0が読み込まれたキャッシュメモリ10上のアドレスと転送長を設定するよう指示をする(SP66)。
この指示を受け取ると、データ転送部72Aは、分割ホストデータD0が読み込まれたキャッシュメモリ10上のアドレスと転送長を設定する(SP67)。
そして、マイクロプロセッサ70Aは、データ転送部72Aに、キャッシュメモリ10上の分割ホストデータD0をプロトコルチップ71Aに転送するように指示をする(SP68)。
この指示を受け取ったデータ転送部72Aは、キャッシュメモリ10上の分割ホストデータD0をプロトコルチップ71Aに転送すると(SP69)、マイクロプロセッサ70Aに、転送を完了した旨を報告する(SP70)。
マイクロプロセッサ70Aは、データ転送部72Aから転送を完了した旨の報告を受領すると(SP71)、プロトコルチップ71Aに、分割ホストデータをホスト装置2に転送するよう指示をするとともに、終了ステータスを送信するように指示をする(SP72)。
この指示を受け取ったプロトコルチップ71Aは、分割ホストデータをホスト装置2に転送するとともに、終了ステータスを送信すると(SP73)、この処理を終了する(SP74)。
(1−2−2−2)ディスクアダプタの処理内容
(1−2−2−2−1)読み出し処理
続いて、ディスクアダプタ11が、ホスト装置2からの読み出し要求に基づいてハードディスクドライブから読み出した分割ホストデータの保証コードとパリティデータの保証コードとを比較する処理内容を説明する。ディスクアダプタ11のライト処理は、マイクロプロセッサ110がディスクアダプタ用リードプログラム116に基づいて当該処理を実行する。
(1−2−2−2−1)読み出し処理
続いて、ディスクアダプタ11が、ホスト装置2からの読み出し要求に基づいてハードディスクドライブから読み出した分割ホストデータの保証コードとパリティデータの保証コードとを比較する処理内容を説明する。ディスクアダプタ11のライト処理は、マイクロプロセッサ110がディスクアダプタ用リードプログラム116に基づいて当該処理を実行する。
図22及び図23に示すように、ステップSP64において、マイクロプロセッサ110Aは、ハードディスクドライブ50に保存された分割ホストデータD0をキャッシュメモリ10へ読み込むという読み込み指示をチャネルアダプタ7Aから受領すると、この処理を開始する(SP80)。
次に、マイクロプロセッサ110Aは、プロトコルチップ111Aに対して、分割ホストデータD0が保存されたハードディスクドライブの識別ID、LBA及び分割ホストデータD0の転送サイズを設定するよう指示をする(SP81)。
そして、マイクロプロセッサ110Aは、データ転送部112Aに対し、分割ホストデータの転送先であるキャッシュメモリ10のアドレスと転送ブロックサイズを設定する(SP82)。
マイクロプロセッサ110Aからの指示に従い、プロトコルチップ111Aは、ハードディスクドライブ50Aの識別ID、LBA及び分割ホストデータD0の転送サイズを設定すると(SP83)、分割ホストデータD0を読み出し、データ転送部112Aに転送する(SP84)。
そしてデータ転送部112Aは、図24に示すように、分割ホストデータD0を、ステップSP72で設定したキャッシュメモリ10のアドレスに転送する(SP85)。
次に、マイクロプロセッサ110Aは、他のマイクロプロセッサ110Cに対して、パリティデータP1をハードディスクドライブ50Cから読み出して、キャッシュメモリ10に転送するよう指示をする(SP86)。
なお、この指示は、パリティデータP2を保存するハードディスクドライブ50Dと接続するマイクロプロセッサ110Dに対して行ってもよい。
他のマイクロプロセッサ110Cに対して、パリティデータP1をハードディスクドライブ50Cから読み出して、キャッシュメモリ10に転送する(SP87)。なお、この詳細は、マイクロプロセッサ110Cの処理として図26に示すフローチャートに基づいて後述する。
そうして、マイクロプロセッサ110Aは、上記指示によってキャッシュメモリ10にパリティデータP1が転送されて、読み込まれるかどうかを判断し(SP88)、読み込まれていないと判断すると(SP88:NO)、パリティデータP1がキャッシュメモリ10に読み込まれるのを待つ。
一方、マイクロプロセッサ110Aは、上記指示によって、図24に示すようにキャッシュメモリ10にパリティデータP1を読み込んで、読み込み完了と判断すると(SP88:YES)、冗長データ生成部113Aに対し、キャッシュメモリ10から分割ホストデータD0とパリティデータP1をディスクアダプタ11Aに読み込むよう指示をする(SP89)。
分割ホストデータD0とパリティデータP1がディスクアダプタ11に読み込まれると、マイクロプロセッサ110Aは、冗長データ生成部113Aに対し、分割ホストデータD0の保証コード16D0とパリティデータP1の保証コード16P1とをコンペア(照合)するように指示をする(SP90)。
マイクロプロセッサ110Aは、共有メモリ9の構成情報エリア91内のレイドグループ情報テーブル910を参照し、冗長データ生成部113Aにレイドグループを構成するハードディスクドライブの台数を設定する(SP91)。本実施の形態においてマイクロプロセッサ110Aは、ハードディスクドライブの台数を4と設定する。
冗長データ生成部113Aは、図25に示すように、マイクロプロセッサ110Aからのコンペア指示に従って、分割ホストデータD0の保証コード16D0とパリティデータP1の保証コード16P1とをコンペア(照合)し(SP92)、このコンペア結果をマイクロプロセッサ110Aに報告する(SP93)。
マイクロプロセッサ110Aは、冗長データ生成部113Aからのコンペア結果を受領すると(SP94)、コンペア結果を判断する(SP95)。
マイクロプロセッサ110Aは、分割ホストデータD0の保証コード16D0とパリティデータP1の保証コード16P1とが一致していないと判断すると(SP95:NO)、いずれかのデータが保証されていないと判断されたため、コンペア異常処理を実行させる(SP96)。なお、コンペア異常処理については、図28及び図29に示すフローチャートに基づいて後述をする。
一方、マイクロプロセッサ110Aは、分割ホストデータD0の保証コード16D0とパリティデータP1の保証コード16P1とが一致していると判断すると(SP95:YES)、共有メモリ9のメッセージ情報テーブル900にハードディスクドライブからの読み込みは完了した旨を設定し(SP97)、この処理を終了する(SP98)。
ステップSP87のパリティデータP1の読み出し処理について、図26に示すフローチャートに基づいて、説明をする。
具体的には、マイクロプロセッサ110Cは、共有メモリ9に読み込み指示を確認した場合にこの処理を開始する(SP100)。
そして、マイクロプロセッサ110Cは、プロトコルチップ111Cに対して、パリティデータP1を保存するハードディスクドライブの識別ID、LBA及びパリティデータP1の転送サイズを設定するように指示をする(SP101)。
この指示を受け取ったプロトコルチップ111Cは、パリティデータP1を保存するハードディスクドライブの識別ID、LBA及びパリティデータP1の転送サイズを設定する(SP102)。
次にマイクロプロセッサ110Cは、データ転送部112Cに対して、ハードディスクドライブ50Cから読み出すパリティデータを一時的に保存するキャッシュアドレスと転送サイズを設定するよう指示をする(SP103)。
この指示を受け取ったデータ転送部112Cは、ハードディスクドライブ50Cから読み出すパリティデータP1を一時的に保存するキャッシュメモリ10のアドレスと転送サイズを設定する(SP104)。
それぞれの設定が終了すると、プロトコルチップ111Cは、ハードディスクドライブ50CからパリティデータP1を読み込み、データ転送部112Cに転送する(SP105)。
そしてデータ転送部112Cは、設定したキャッシュメモリ10のアドレス上に読み込んだパリティデータP1を転送する(SP106)。
そうすると、マイクロプロセッサ110Cは、共有メモリ9にパリティデータP1の読み込み完了を設定し(SP107)、マイクロプロセッサに完了した旨を報告すると(SP107)、この処理を終了する(SP108)。
(1−2−2−2−2)保証コードの比較処理内容
次に、ホスト装置からのデータの読み出し要求に基づいて、ストレージ装置4が分割ホストデータの保証コード及びパリティデータの保証コードを比較して、リードデータとしてホスト装置2に読み出すための保証コードの比較処理の内容について説明する。
次に、ホスト装置からのデータの読み出し要求に基づいて、ストレージ装置4が分割ホストデータの保証コード及びパリティデータの保証コードを比較して、リードデータとしてホスト装置2に読み出すための保証コードの比較処理の内容について説明する。
具体的には、図27に示すように、ディスクアダプタ11のデータ転送部112は、ホスト装置2からのリードデータの読み出し要求を受領すると、保証コードの比較処理を開始する(SP110)。
ディスクアダプタ11の冗長データ生成部113は、リードデータである分割ホストデータD0の保証コード16D0と、当該分割ホストデータD0に対応するパリティデータP1の保証コード16P1とを比較する(SP111)。
データ転送部112は、当該比較により保証コードが一致した場合には、分割ホストデータD0をホスト装置2へ読み出す。
次に、保証コードが一致しない場合には、ディスクアダプタ11の冗長データ生成部113は、リードデータである分割ホストデータD0の保証コード16D0と、当該分割ホストデータD0に対応するパリティデータP2の保証コード16P2とを比較する(SP112)。
データ転送部112は、当該比較により保証コードが一致した場合には、分割ホストデータD0をホスト装置2へ読み出す。
保証コードが一致しない場合には、ディスクアダプタ11の冗長データ生成部113は、分割ホストデータ又はパリティデータ再作成処理を行い(SP113)、この処理を終了する(SP114)。
(1−2−2−2−3)コンペア異常処理
それでは次に、ステップSP96のコンペア異常処理について詳細に説明をする。このコンペア異常処理は、ディスクアダプタ11のマイクロプロセッサ110がコンペア異常プログラム117に基づいて実行する。
それでは次に、ステップSP96のコンペア異常処理について詳細に説明をする。このコンペア異常処理は、ディスクアダプタ11のマイクロプロセッサ110がコンペア異常プログラム117に基づいて実行する。
具体的には、図28及び図29に示すように、まずマイクロプロセッサ110Aは、分割ホストデータD0の保証コード16D0とパリティデータP1の保証コード16P1とが一致していないと判断すると(SP95:NO)、コンペア異常処理を開始する(SP120)。
そして、マイクロプロセッサ110Aは、パリティデータP2を保存するハードディスクドライブ50Dに接続する他のマイクロプロセッサ110Dに、ハードディスクドライブ50DからパリティデータP2を読み出すよう指示をする(SP121)。
マイクロプロセッサ110Aは、他のマイクロプロセッサ110Dがハードディスクドライブ50DからパリティデータP2を読み出して、共有メモリ9にパリティデータ読み込み指示が完了するのを待つ。なお、この処理はステップSP100〜ステップSP108までと同様の処理なので説明は省略する。
そうしてマイクロプロセッサ110Aは、パリティデータP2がキャッシュメモリ10に読み込まれた否かを判断して(SP122)、読み込まれるまで待つ(SP122:NO)。
一方、図30に示すようにマイクロプロセッサ110Aは、パリティデータP2がキャッシュメモリ10に読み込まれたと判断すると(SP122:YES)、冗長データ生成部113Aに、分割ホストデータD0の保証コード16D0と読み込んだパリティデータP2の保証コード16P2とをコンペアするように指示をする(SP123)。
その後、マイクロプロセッサ110Aは、図31に示すように、分割ホストデータD0の保証コード16D0と読み込んだパリティデータP2の保証コード16P2についてコンペアを行い、ステップSP124〜ステップSP128の処理手順を、ステップSP91〜ステップSP95と同様の処理手順で行う。
そして、マイクロプロセッサ110Aは、分割ホストデータD0の保証コード16D0と読み込んだパリティデータP2の保証コード16P2とが一致したと判断すると(SP128:YES)、パリティデータP2の読み込み完了を共有メモリ9に設定する(SP129)。
マイクロプロセッサ110Aは、コンペア結果により、先に読み込んだパリティデータP1が異常であると判断したので、パリティデータP1の異常処理を行うこととなる(SP130)。パリティデータP1の異常処理の説明については、図33及び図34に基づいて後述する。
一方、マイクロプロセッサ110Aは、分割ホストデータD0の保証コード16D0と読み込んだパリティデータP2の保証コード16P2とが一致しないと判断すると(SP128:NG)、パリティデータP1の保証コードは正常であると判断される。
そうすると、次にマイクロプロセッサ110Aは、冗長データ生成部113Aに、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2とをコンペアするように指示をする(SP131)。
その後、マイクロプロセッサ110Aは、図32に示すように、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2についてコンペアを行い、ステップSP91〜ステップSP95と同様の処理をステップSP132〜ステップSP136で行う。
そして、マイクロプロセッサ110Aは、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2とが一致したと判断すると(SP136:YES)、先に読み込んだ分割ホストデータD0が異常であると判断したので、分割ホストデータD0の異常処理を行うこととなる(SP137)。分割ホストデータD0の異常処理の説明については、図37及び図38に基づいて後述する。
一方、マイクロプロセッサ110Aは、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2とが一致しないと判断すると(SP136:NO)、分割ホストデータD0、D1及びパリティデータP1、P2の全ての保証コードが一致しないと判断する。
したがって、マイクロプロセッサ110Aは、当該レイドグループの使用不可の設定をし(SP138)、共有メモリ9にディスクアダプタの完了異常であることを設定すると(SP139)、この処理を終了する(SP140)。
(1−2−2−2−4)パリティデータの異常処理
引き続き、ステップSP130のパリティデータP1の異常処理について詳細に説明をする。このパリティデータの異常処理は、ディスクアダプタ11のマイクロプロセッサ110がパリティデータ異常プログラム118に基づいて実行する。
引き続き、ステップSP130のパリティデータP1の異常処理について詳細に説明をする。このパリティデータの異常処理は、ディスクアダプタ11のマイクロプロセッサ110がパリティデータ異常プログラム118に基づいて実行する。
具体的には、図33及び図34に示すように、マイクロプロセッサ110Aは、分割ホストデータD0の保証コード16D0とパリティデータP2の保証コード16P2とが一致したと判断すると(SP128:YES)、パリティデータP1の異常処理を開始する(SP150)。
まず、マイクロプロセッサ110Aは、共有メモリ9内の障害情報テーブル920の障害カウンタを加算する(SP151)。本実施の形態では、マイクロプロセッサ110Aは、パリティデータP1を保存するハードディスクドライブ50Cにおける「セクタ障害」フィールド920B内のカウンタ値を更新する。
そしてマイクロプロセッサ110Aは、更新したハードディスクドライブ50Cに該当する「セクタ障害」フィールド920B内の障害カウンタ値が障害しきい値を超えているか否かを判断する(SP152)。
マイクロプロセッサ110Aは、更新したハードディスクドライブ50Cにおける「セクタ障害」フィールド920B内の障害カウンタ値が障害しきい値を超えていると判断すると(SP152:YES)、ハードディスクドライブ50Cはドライブ障害と判断する。そしてマイクロプロセッサ110Aは、共有メモリ9のハードディスクドライブ情報テーブル912内の、ハードディスクドライブ50Cに該当する「状態」フィールド912B内を「使用不可」に変更する(SP153)。
次に、マイクロプロセッサ110Aは、ドライブ障害と判断したハードディスクドライブ50CのスペアハードディスクドライブSがあるか否かを判断し(SP154)、スペアハードディスクドライブSがないと判断した場合には(SP154:NO)、このパリティデータP1の異常処理を終了する(SP165)。
一方、マイクロプロセッサ110Aは、スペアディスクがあると判断した場合には(SP154:YES)、ハードディスクドライブの回復を行うためにデータ回復コピー処理を行うこととなる(SP155)。なお、データ回復コピー処理の説明については、図41及び図42に基づいて後述する。
ステップSP152において、マイクロプロセッサ110Aは、更新したハードディスクドライブ50Cにおける「セクタ障害」フィールド920B内の障害カウンタ値が障害しきい値を超えていないと判断すると(SP152:NO)、冗長データ生成部113Aに、分割ホストデータD0及びパリティデータP2を読み込んで、パリティデータP1を作成するよう指示をし(SP156)、作成したパリティデータP1をキャッシュメモリ10に書き込むように指示をする(SP157)。
またマイクロプロセッサ110Aは、共有メモリ9のレイドグループ情報テーブル910を参照して、「ハードディスクドライブ台数」フィールドを「4」に設定する(SP158)
図35に示すように、マイクロプロセッサ110Aからの指示を受け取った冗長データ生成部113Aは、分割ホストデータD0及びパリティデータP2を読み込んで、パリティデータP1を作成する(SP159)。そして、同時に、冗長データ生成部113Aは、パリティデータP2の保証コード16P2、17P2をパリティデータP1にコピーをして、パリティデータP1の保証コード16P1、17P1を再作成する(SP160)。
冗長データ生成部113Aは、保証コード16P1、17P1を再作成したパリティデータP1をキャッシュメモリ10に書き込む(SP161)。
そうすると、マイクロプロセッサ110Aは、他のマイクロプロセッサ110Cに対して、再作成したパリティデータP1をハードディスクドライブ50Cに書き込むように、書き込み指示をする(SP162)。具体的には、マイクロプロセッサ110Aは、共有メモリ9にハードディスク書き込み指示を設定する。
その後、他のマイクロプロセッサ110A及び他のマイクロプロセッサ110Cは、ステップSP163において、再作成したパリティデータP1についてステップSP40〜ステップSP46と同様の処理を行う。
マイクロプロセッサ110Aは、他のマイクロプロセッサ110Cがハードディスクドライブ50CにパリティデータP1を書き込みしたか否かを判断し(SP164)、書き込みが完了していない場合には(SP164:NO)、完了するまで待つ。
一方、マイクロプロセッサ110Aは、図36に示すように、他のマイクロプロセッサ110Cがハードディスクドライブ50CにパリティデータP1を書き込んだことで、書き込み完了の報告を他のマイクロプロセッサ110Cから受け取ると(SP164:YES)、パリティデータ異常処理を終了する(SP165)。
(1−2−2−2−5)分割ホストデータの異常処理
引き続き、ステップSP137の分割ホストデータD0の異常処理について詳細に説明をする。この分割ホストデータの異常処理は、ディスクアダプタ11のマイクロプロセッサ110が分割ホストデータ異常プログラム119に基づいて実行する。
引き続き、ステップSP137の分割ホストデータD0の異常処理について詳細に説明をする。この分割ホストデータの異常処理は、ディスクアダプタ11のマイクロプロセッサ110が分割ホストデータ異常プログラム119に基づいて実行する。
具体的には、図37及び図38に示すように、マイクロプロセッサ110Aは、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2とが一致したと判断したことで(SP136:YES)、分割ホストデータD0の異常処理を開始する(SP170)。
次に、マイクロプロセッサ110Aは、冗長データ生成部113Aに、パリティデータP1及びパリティデータP2を読み込んで、分割ホストデータD0を作成するよう指示をし(SP171)、作成した分割ホストデータD0をキャッシュメモリ10に書き込むように指示をする(SP172)。
またマイクロプロセッサ110Aは、共有メモリ9のレイドグループ情報テーブル910を参照して、「ハードディスクドライブ台数」フィールドを「4」に設定する(SP173)。
図39に示すように、マイクロプロセッサ110Aからの指示を受け取った冗長データ生成部113Aは、パリティデータP1及びパリティデータP2を読み込んで、分割ホストデータD0を作成する(SP174)。そして、同時に、冗長データ生成部113Aは、パリティデータP1の保証コード16P1、17P1を分割ホストデータD0にコピーをして、分割ホストデータD0の保証コード16D0を再作成する(SP175)。
冗長データ生成部113Aは、保証コード16D0を再作成した分割ホストデータD0をキャッシュメモリ10に書き込む(SP176)。
そしてマイクロプロセッサ110Aは、図40に示すように、キャッシュメモリ10に書き込まれた再作成後の分割ホストデータD0をハードディスクドライブ50Aに書き込む(SP177)。
なお、再作成後の分割ホストデータD0をハードディスクドライブ50Aに書き込む処理は、ステップSP40〜ステップSP46までと同様の処理のため、説明を省略する。
その後マイクロプロセッサ110Aは、ステップSP178〜ステップSP182までの処理をステップSP151〜ステップSP155と同様の処理を行う。
そうして、マイクロプロセッサ110Aが、更新したハードディスクドライブ50Aにおける「セクタ障害」フィールド920B内の障害カウンタ値が障害しきい値を超えていないと判断した場合(SP179:NO)又は、ステップSP181においてスペアのハードディスクドライブSがないと判断した場合(SP181:NO)には、分割ホストデータD0の異常処理を終了する(SP183)。
一方、マイクロプロセッサ110Aは、スペアのハードディスクドライブがあると判断した場合には(SP181:YES)、ハードディスクドライブの回復を行うためにデータ回復コピー処理を行うこととなる(SP182)。なお、データ回復コピー処理の説明については、図41及び図42に基づいて後述する。
(1−2−2−2−6)データ回復コピーの処理
引き続き、ステップSP182の分割ホストデータD0のデータ回復コピー処理について詳細に説明をする。この分割ホストデータの異常処理は、ディスクアダプタ11のマイクロプロセッサ110がデータ回復コピープログラム120に基づいて実行する。
引き続き、ステップSP182の分割ホストデータD0のデータ回復コピー処理について詳細に説明をする。この分割ホストデータの異常処理は、ディスクアダプタ11のマイクロプロセッサ110がデータ回復コピープログラム120に基づいて実行する。
ここで、分割ホストデータD0のデータ回復コピー処理とは、障害ディスクであると判断されたハードディスクドライブ50Aに保存される分割ホストデータD0をスペアのハードディスクドライブSにコピーすることで、当該分割ホストデータD0の回復を行う処理をいう。
なお、ステップSP155のパリティデータP1のデータ回復コピー処理については、ハードディスクドライブから読み出すデータが異なることを除いて、分割ホストデータD0のデータ回復コピー処理と同様の手順のため、説明を省略する。
具体的には、図41及び図42に示すように、マイクロプロセッサ110Aは、スペアのハードディスクドライブSがあると判断した場合に(SP181:YES)、分割ホストデータD0のデータ回復コピー処理を開始する(SP190)。
マイクロプロセッサ110Aは、他のマイクロプロセッサ110B、110Cに、分割ホストデータD1又はパリティデータP1をそれぞれのハードディスクドライブ50B、50Cから読み出して、キャッシュメモリ10に転送するよう指示をする(SP191)。
他のマイクロプロセッサ110B、110Cは、分割ホストデータD1又はパリティデータP1をそれぞれのハードディスクドライブ50B、50Cから読み出して、キャッシュメモリ10に転送する(SP192)。
マイクロプロセッサ110Aは、キャッシュメモリ10への読み込みが完了したか否かを判断し(SP193)、読み込みが完了するまで待つ(SP193:NO)。
マイクロプロセッサ110Aは、キャッシュメモリ10への読み込みが完了したと判断すると(SP193:YES)、その後はステップSP194〜ステップSP198までの処理手順をステップSP90〜SP94と同様の処理手順で行う。
そしてマイクロプロセッサ110Aは、図43に示すように、読み出した分割ホストデータD1の保証コード16D1とパリティデータP1の保証コード17P1とをコンペアして(SP199)、両者の保証コードが一致しないと判断した場合には(SP199:NO)、コンペア異常処理が行われる(SP200)。
一方、そしてマイクロプロセッサ110Aは、両者の保証コードが一致すると判断した場合には(SP199:YES)、冗長データ生成部113Aに対して、分割ホストデータD0の再作成を指示する(SP201)。そしてマイクロプロセッサ110Aは、冗長データ生成部113Aに対して、パリティデータP1の保証コード17P1を分割ホストデータD0にコピーするように指示をするとともに(SP202)、再作成した分割ホストデータD0をキャッシュメモリ10に書き込むように指示をする(SP203)。
この指示を受けた冗長データ生成部113Aは、分割ホストデータを再作成し(SP203)、パリティデータP1の保証コード17P1を分割ホストデータD0にコピーして、保証コードを再設定した後(SP204)、図44に示すように、再作成した分割ホストデータをキャッシュメモリに書き込む(SP205)。
すると、図45に示すように、マイクロプロセッサ110Aは、キャッシュメモリ10上にある再作成後の分割ホストデータD0をスペアのハードディスクドライブSに書き込む(SP206)。
マイクロプロセッサ110Aは、分割ホストデータD0の全てのブロックにおけるコピーが完了したか否かを判断し(SP207)、完了していなければ(SP207:NO)、ステップSP191に再び戻る。
マイクロプロセッサ110Aは、分割ホストデータD0の全てのブロックにおけるコピーが完了すると(SP207:YES)、データ回復コピー処理を終了する(SP208)。
次に、ステップSP200におけるコンペア異常処理について説明する。この処理は、マイクロプロセッサ110Aがコンペア異常プログラムに基づいて実行する。
具体的には、図46及び図47に示すように、ステップSP199でマイクロプロセッサ110Aは、読み出した分割ホストデータD1の保証コード16D1とパリティデータP1の保証コード17P1とが一致しないと判断した場合に(SP199:NO)、コンペア異常処理を開始する(SP210)。
そしてマイクロプロセッサ110Aは、ステップSP211〜ステップSP218までの処理手順を、ステップSP121〜ステップSP128と同様の処理手順で行うこととなる。
マイクロプロセッサ110Aは、図48に示すように、分割ホストデータD1の保証コード16D1と読み込んだパリティデータP2の保証コード16P2とが一致したと判断すると(SP218:YES)、先に読み込んだパリティデータP1が異常であると判断したので、パリティデータP1の異常処理を行うこととなる(SP219)。
そして、この処理は、マイクロプロセッサ110Aが、図49に示すように、パリティデータP1についてのステップSP230〜ステップSP240までの処理手順を、ステップSP170〜ステップSP180と同様の処理手順で行うこととなる。そうして、マイクロプロセッサ110Aは、パリティデータP1の異常処理を実行した結果後、ステップSP201の手順に進むことになる。
一方、マイクロプロセッサ110Aは、ステップSP218において、分割ホストデータD1の保証コード16D1と読み込んだパリティデータP2の保証コード16P2とが一致しないと判断すると(SP218:NO)、ステップSP220〜ステップSP225までの処理手順を、ステップSP131〜ステップSP136と同様の処理手順で行うこととなる。
そして、マイクロプロセッサ110Aは、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2とが一致したと判断すると(SP225:YES)、先に読み込んだ分割ホストデータD1が異常であると判断したので、分割ホストデータD1の異常処理を行うこととなる(SP226)。
そして、この分割ホストデータD1の異常処理については、図50に示すように、マイクロプロセッサ110Aが、分割ホストデータD1についてのステップSP250〜ステップSP260までの処理手順を、ステップSP170〜ステップSP180と同様の処理手順で行うこととなる。そうして、マイクロプロセッサ110Aは、分割ホストデータD1の異常処理を実行した結果後、ステップSP201の手順に進むことになる。
一方、マイクロプロセッサ110Aは、パリティデータP1の保証コード16P1と読み込んだパリティデータP2の保証コード16P2とが一致しないと判断すると(SP225:NG)、分割ホストデータD0、D1及びパリティデータP1、P2の全ての保証コードが一致しないと判断する。
したがって、マイクロプロセッサ110Aは、当該レイドグループの使用不可の設定をし(SP227)、データ回復コピーの失敗を設定すると(SP228)、この処理を終了する(SP229)。
(1−2−2−2−7)保証コードの回復処理内容
次に、ホスト装置からのデータの読み出し要求に基づいて、ストレージ装置4が分割ホストデータの保証コード及びパリティデータの保証コードを比較して、保証コードが一致しなかった場合の保証コードを回復する処理の内容について説明する。
次に、ホスト装置からのデータの読み出し要求に基づいて、ストレージ装置4が分割ホストデータの保証コード及びパリティデータの保証コードを比較して、保証コードが一致しなかった場合の保証コードを回復する処理の内容について説明する。
具体的には、図51に示すように、ディスクアダプタ11は、データ回復コピープログラムに基づいてデータ回復コピー処理を開始すると、保証コードの回復処理を開始する(SP270)。
ディスクアダプタ11の冗長データ生成部113は、リードデータである分割ホストデータの保証コードと、当該分割ホストデータに対応するパリティデータの保証コードとを比較する(SP271)。
次に、ディスクアダプタ11の冗長データ生成部113は、リードデータである分割ホストデータに対応するパリティデータの保証コード同士を比較する(SP272)。
ディスクアダプタ11の冗長データ生成部113は、再作成したパリティデータの保証コードをキャッシュメモリ上に作成する(SP273)。
ディスクアダプタ11のデータ転送部112は、保証コードを付与した再作成後のパリティデータをハードディスクドライブに書き込む(SP274)。
ディスクアダプタ11の冗長データ生成部113は、再作成した分割ホストデータの保証コードをキャッシュメモリ上に作成する(SP275)。
ディスクアダプタ11のデータ転送部112は、保証コードを付与した再作成後の分割ホストデータをハードディスクドライブに書き込と(SP276)、保証コードの回復処理を終了する(SP277)。
(1−3)第1の実施の形態の効果
本発明によれば、安価なハードディスクドライブを多用しても、保証コードを比較することで、データの信頼性を保証することができる。
本発明によれば、安価なハードディスクドライブを多用しても、保証コードを比較することで、データの信頼性を保証することができる。
また、記憶システム内において、チャネルアダプタ及びディスクアダプタが保証コードに関する検証を行うため、ハードディスクドライブ内に保存されるデータの信頼性に関する検証を短時間で行うことができる。
(2)第2の実施の形態
本形態による記憶システム1は、第1の実施の形態による記憶システム1の構成と同様なので、説明を省略する。また、第1の実施の形態と同様の構成には、同じ符号を付す。
本形態による記憶システム1は、第1の実施の形態による記憶システム1の構成と同様なので、説明を省略する。また、第1の実施の形態と同様の構成には、同じ符号を付す。
第2の実施の形態では、ホスト装置の書き込み要求に基づいて、ハードディスクドライブ50内に予め保存される分割ホストデータやパリティデータを用いて、分割ホストデータの保証コードを設定し、当該データの保証コードをパリティデータにコピーする処理内容について説明する。
(2−1)チャネルアダプタの処理内容
まず、チャネルアダプタ7のマイクロプロセッサ70が、ホスト装置の書き込み要求に基づいて新たな分割ホストデータND0の保証コード16ND0を設定する処理内容を説明する。マイクロプロセッサ70は、図52に示すように、新たな分割ホストデータND0がキャッシュメモリ上に書き込まれ、その後、ハードディスクドライブ50Aに書き込まれるために、新たな分割ホストデータND0について、ステップSP0〜SP12の処理手順と同様の手順を、チャネルアダプタ用ライトプログラム730に基づいて行う。
まず、チャネルアダプタ7のマイクロプロセッサ70が、ホスト装置の書き込み要求に基づいて新たな分割ホストデータND0の保証コード16ND0を設定する処理内容を説明する。マイクロプロセッサ70は、図52に示すように、新たな分割ホストデータND0がキャッシュメモリ上に書き込まれ、その後、ハードディスクドライブ50Aに書き込まれるために、新たな分割ホストデータND0について、ステップSP0〜SP12の処理手順と同様の手順を、チャネルアダプタ用ライトプログラム730に基づいて行う。
(2−2)ディスクアダプタの処理内容
まず、ディスクアダプタ11がホスト装置2からの書き込み要求に基づいて、パリティデータP1、P2に新たな分割ホストデータND0の保証コード16ND0をコピーする処理内容を説明する。ディスクアダプタ11側の書き込み処理は、マイクロプロセッサ110がディスクアダプタ用ライトプログラム115に基づいて当該処理を実行する。
まず、ディスクアダプタ11がホスト装置2からの書き込み要求に基づいて、パリティデータP1、P2に新たな分割ホストデータND0の保証コード16ND0をコピーする処理内容を説明する。ディスクアダプタ11側の書き込み処理は、マイクロプロセッサ110がディスクアダプタ用ライトプログラム115に基づいて当該処理を実行する。
具体的には、図53及び図54に示すように、マイクロプロセッサ110Aは、共有メモリ9のメッセージエリア90にハードディスクドライブ50に対する読み出し指示が書き込まれると、この処理を開始する(SP280)。
マイクロプロセッサ110Aは、他のマイクロプロセッサ110C、110Dに古いパリティデータP1、P2をハードディスクドライブ50C、50Dから読み出すよう指示をするとともに、ハードディスクドライブ50Aから古い分割ホストデータD0を読み出す(SP281)。
マイクロプロセッサ110Aは、キャッシュメモリ10上に古いパリティデータP1、P2及び古い分割ホストデータD0が読み込みこまれたか否かを判断し(SP282)、読み込まれるまで待つ(SP282:NO)。
一方、マイクロプロセッサ110Aは、図55に示すように、キャッシュメモリ10上にある新たな分割ホストデータND0、古い分割ホストデータD0及び古いパリティデータP1、P2をディスクアダプタ11Aに読み込むと、古い分割ホストデータD0及び古いパリティデータP1との保証コード16D0、16P1をコンペアするように指示をする(SP283)。
マイクロプロセッサ110Aは、冗長データ生成部113Aに共有メモリ9の構成情報エリア91内のレイドグループ情報テーブル910を参照し、レイドグループを構成するハードディスクドライブの台数を設定する(SP284)。本実施の形態においてマイクロプロセッサ110Aは、ハードディスクドライブの台数を4と設定する。
上記指示を受けた冗長データ生成部113Aは、図56に示すように、古い分割ホストデータD0及び古いパリティデータP1との保証コード16D0、16P1をコンペアし(SP285)、コンペア結果をマイクロプロセッサ110Aに報告する(SP286)。
この報告をマイクロプロセッサ110Aが受領すると(SP287)、コンペアが一致したか否かを判断し(SP288)、保証コードが一致しないと判断すると(SP288:NO)、古いパリティデータP1又は古い分割ホストデータD0の異常処理をステップSP150〜ステップSP165又はステップSP170〜ステップSP183と同様の手順で開始されることとなる。
一方、マイクロプロセッサ110Aは、保証コードが一致すると判断すると(SP288:YES)、図57に示すように、冗長データ生成部113Aは新たな分割ホストデータNDOの保証コードをコピーして、新たなパリティデータNP1、NP2を作成し、キャッシュメモリ10に新たなパリティデータNP1、NP2を書き込む(SP290)。
そして、マイクロプロセッサ110Aの指示に基づいて、他のマイクロプロセッサ110B、110Cは、新たなパリティデータNP1、NP2をそれぞれのハードディスクドライブ50B、50Cに書き込むと(SP291)、この処理を終了する(SP292)。
なお、他のマイクロプロセッサ110B、110Cの書き込み処理は、新たなパリティデータNP1、NP2についてステップSP40〜ステップSP46と同様の手順で行われる。
また、第2の実施の形態において、データを読み出す際には、第1の実施の形態と同様の処理手順で行うため説明を省略する。
(2−3)第2の実施の形態の効果
本発明によれば、安価なハードディスクドライブを多用しても、先に保存される保証コードを比較することで、新たなデータを書き込む際にも新たなデータの信頼性を保証することができる。
本発明によれば、安価なハードディスクドライブを多用しても、先に保存される保証コードを比較することで、新たなデータを書き込む際にも新たなデータの信頼性を保証することができる。
また、記憶システム内において、チャネルアダプタ及びディスクアダプタが保証コードに関する検証を行うため、ハードディスクドライブ内に保存されるデータの信頼性に関する検証を短時間で行うことができる。
(3)他の実施の形態
保証コードのコンペア(照合)は、分割ホストデータ又はパリティデータをハードディスクに書き込んだ後に、分割ホストデータ又はパリティデータをハードディスクドライブから読み出してコンペアしてもよい。また、保証コードのコンペア(照合)は、周期的又は読み出し時にコンペアしてもよい。
保証コードのコンペア(照合)は、分割ホストデータ又はパリティデータをハードディスクに書き込んだ後に、分割ホストデータ又はパリティデータをハードディスクドライブから読み出してコンペアしてもよい。また、保証コードのコンペア(照合)は、周期的又は読み出し時にコンペアしてもよい。
第1及び第2の実施の形態として、ハードディスクドライブは4台としたが、この台数に限らない。例えば、ハードディスク部は、ハードディスクドライブを8台に設定にし、分割ホストデータD0〜D5及びパリティデータP1、P2を各ハードディスクドライブに保存するようにしてもよい。
ハードディスクドライブに保存するホスト装置からのデータに、当該データの保証を示す保証番号(保証コード)を生成する第1の生成部として記憶制御装置(ストレージ装置)内のチャネルアダプタ7が有し、ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成部及びホスト装置からのデータの保証を示す保証番号と、パリティデータの保証を示す保証番号とを照合する照合部としてディスクアダプタ11が有したが、第1の生成部、第2の生成部及び照合部を個別のハードウェアとしてもよい。
第1の生成部に基づいて生成された前記ホスト装置からのデータの保証を示す保証番号を当該データに付与する第1の付与部としてチャネルアダプタ7が有し、第2の生成部に基づいて生成された前記パリティデータの保証を示す保証番号を当該パリティデータに付与する第2の付与部としてディスクアダプタ11が有したが、第1の付与部及び第2の付与部を個別のハードウェアとしてもよい。
本発明は、1又は複数のストレージ装置を有する記憶システムや、その他の形態の記憶システムに広く適用することができる。
1……記憶システム、2……ホスト装置、4……ストレージ装置、5……ディスクドライブ部、7……チャネルアダプタ、11……ディスクアダプタ。
Claims (10)
- ホスト装置に対してデータを読み書きするための記憶領域を提供する記憶装置と、前記記憶装置を制御する記憶制御装置とを有する記憶システムにおいて、
前記記憶装置に保存するホスト装置からのデータに、当該データの保証を示す保証番号を生成する第1の生成部と、
前記ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成部と、
前記ホスト装置からのデータの保証を示す保証番号と、前記パリティデータの保証を示す保証番号とを照合する照合部と、
を備えることを特徴とする記憶システム。 - 第1の生成部に基づいて生成された前記ホスト装置からのデータの保証を示す保証番号を当該データに付与する第1の付与部と、
第2の生成部に基づいて生成された前記パリティデータの保証を示す保証番号を当該パリティデータに付与する第2の付与部と、をさらに備える
ことを特徴とする請求項1記載の記憶システム。 - 前記第2の生成部は、
第1の生成部により生成された前記ホスト装置からのデータの保証を示す保証番号をコピーすることで前記パリティデータの保証を示す保証番号を生成する
ことを特徴とする請求項1記載の記憶システム。 - 前記照合部に基づいて前記ホスト装置からのデータに付与される保証番号と、前記パリティデータに付与される保証番号とが一致しない場合には、
前記ホスト装置からのデータ又は前記パリティデータの障害を検出する検出部をさらに備える
ことを特徴とする請求項1記載の記憶システム。 - 第1の付与部及び第2の付与部は、
前記記憶装置に保存されるデータの最小ブロック単位毎に保証番号を付与する
ことを特徴とする請求項1記載の記憶システム。 - ホスト装置に対してデータを読み書きするための記憶領域を提供する記憶装置と、前記記憶装置を制御する記憶制御装置とを有する記憶システムのデータ保証方法において、
前記記憶装置に保存するホスト装置からのデータに、当該データの保証を示す保証番号を生成する第1の生成ステップと、
前記ホスト装置からのデータに対応するパリティデータの保証を示す保証番号を生成する第2の生成ステップと、
前記ホスト装置からのデータの保証を示す保証番号と、前記パリティデータの保証を示す保証番号とを照合する照合ステップと、
を備えることを特徴とするデータ保証方法。 - 第1の生成ステップに基づいて生成された前記ホスト装置からのデータの保証を示す保証番号を当該データに付与する第1の付与ステップと、
第2の生成ステップに基づいて生成された前記パリティデータの保証を示す保証番号を当該パリティデータに付与する第2の付与ステップと、をさらに備える
ことを特徴とする請求項6記載のデータ保証方法。 - 前記第2の生成ステップは、
第1の生成ステップにより生成された前記ホスト装置からのデータの保証を示す保証番号をコピーすることで前記パリティデータの保証を示す保証番号を生成する
ことを特徴とする請求項6記載のデータ保証方法。 - 前記照合ステップに基づいて前記ホスト装置からのデータに付与される保証番号と、前記パリティデータに付与される保証番号とが一致しない場合には、
前記ホスト装置からのデータ又は前記パリティデータの障害を検出する検出ステップをさらに備える
ことを特徴とする請求項6記載のデータ保証方法。 - 第1の付与ステップ及び第2の付与ステップは、
前記記憶装置に保存されるデータの最小ブロック単位毎に保証番号を付与する
ことを特徴とする請求項6記載のデータ保証方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006355692A JP2008165582A (ja) | 2006-12-28 | 2006-12-28 | 記憶システム及びデータ保証方法 |
US11/680,106 US7653831B2 (en) | 2006-12-28 | 2007-02-28 | Storage system and data guarantee method |
EP07253141A EP1939746A3 (en) | 2006-12-28 | 2007-08-10 | Storage system and data guarantee method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006355692A JP2008165582A (ja) | 2006-12-28 | 2006-12-28 | 記憶システム及びデータ保証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008165582A true JP2008165582A (ja) | 2008-07-17 |
Family
ID=39232794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006355692A Pending JP2008165582A (ja) | 2006-12-28 | 2006-12-28 | 記憶システム及びデータ保証方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7653831B2 (ja) |
EP (1) | EP1939746A3 (ja) |
JP (1) | JP2008165582A (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5256948B2 (ja) * | 2008-09-04 | 2013-08-07 | 富士通株式会社 | キャッシュ論理検証装置、キャッシュ論理検証方法およびキャッシュ論理検証プログラム |
US8443153B1 (en) | 2010-01-06 | 2013-05-14 | Netapp, Inc. | Dynamic balancing of performance with block sharing in a storage system |
US8732518B2 (en) * | 2011-04-13 | 2014-05-20 | Netapp, Inc. | Reliability based data allocation and recovery in a storage system |
US9658803B1 (en) * | 2012-06-28 | 2017-05-23 | EMC IP Holding Company LLC | Managing accesses to storage |
CN105283846B (zh) * | 2013-05-20 | 2017-06-13 | 三菱电机株式会社 | 监视控制装置 |
US9703631B2 (en) | 2015-03-20 | 2017-07-11 | Burlywood, LLC | Storage emulation in a storage controller |
US9997251B2 (en) | 2015-03-26 | 2018-06-12 | Burlywood, LLC | Medium defect management method for storage systems requiring an integrated controller |
KR102549545B1 (ko) | 2018-03-22 | 2023-06-29 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928578B2 (en) * | 2001-05-10 | 2005-08-09 | International Business Machines Corporation | System, method, and computer program for selectable or programmable data consistency checking methodology |
US6883131B2 (en) * | 2001-09-28 | 2005-04-19 | Sun Microsystems, Inc. | XOR processing incorporating error correction code data protection |
JP4114877B2 (ja) * | 2004-12-02 | 2008-07-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 不正データを検出するための装置、方法、及びプログラム |
JP2006251960A (ja) | 2005-03-09 | 2006-09-21 | Hitachi Ltd | ストレージ装置 |
JP4884721B2 (ja) * | 2005-08-22 | 2012-02-29 | 株式会社日立製作所 | 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法 |
US7797611B2 (en) * | 2005-11-14 | 2010-09-14 | International Business Machines Corporation | Creating an error correction coding scheme and reducing data loss |
-
2006
- 2006-12-28 JP JP2006355692A patent/JP2008165582A/ja active Pending
-
2007
- 2007-02-28 US US11/680,106 patent/US7653831B2/en not_active Expired - Fee Related
- 2007-08-10 EP EP07253141A patent/EP1939746A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1939746A2 (en) | 2008-07-02 |
US20080162826A1 (en) | 2008-07-03 |
EP1939746A3 (en) | 2010-10-20 |
US7653831B2 (en) | 2010-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008165582A (ja) | 記憶システム及びデータ保証方法 | |
EP2207095B1 (en) | Storage system and control method thereof | |
JP2008181416A (ja) | 記憶システム及びデータ管理方法 | |
JP5124217B2 (ja) | ストレージ装置 | |
US8117409B2 (en) | Method and apparatus for backup and restore in a dynamic chunk allocation storage system | |
JP5254725B2 (ja) | 協働するストレージデバイスを用いて、データを冗長的に格納し、検索するシステム及び方法 | |
CN101770408B (zh) | 使用基于对象的存储设备在文件系统上使用覆盖对象进行故障处理 | |
US8473779B2 (en) | Systems and methods for error correction and detection, isolation, and recovery of faults in a fail-in-place storage array | |
JP3177242B2 (ja) | データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶 | |
JP5124792B2 (ja) | RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ | |
US20110289280A1 (en) | Storage system, control method therefor, and program | |
US20060236149A1 (en) | System and method for rebuilding a storage disk | |
JPWO2014192113A1 (ja) | ストレージシステム及びデータバックアップ方法 | |
JP2008276379A (ja) | 記憶システム及びパス切替え方法 | |
JP2009211401A (ja) | ストレージ装置及びその制御方法 | |
WO2024037122A1 (zh) | 一种针对磁盘固件升级过程中的读写数据方法及计算设备 | |
JP2007299114A (ja) | 記憶システム及びデータ保存方法 | |
JP2008065706A (ja) | 記憶システム及びその制御方法並びに記憶制御装置 | |
JP5386593B2 (ja) | ストレージ装置及びデータ転送方法 | |
JP2011028520A (ja) | ディスクアレイ装置及び物理ディスクの復元方法 | |
US20110202720A1 (en) | Snapback-Free Logical Drive Duplication | |
JP2007065788A (ja) | ディスクアレイ装置及びその制御方法並びにプログラム | |
US10901843B2 (en) | Managing data storage | |
JP2008071297A (ja) | ディスクアレイ装置およびディスクアレイ装置のデータ管理方法 | |
US20090185762A1 (en) | Data structure for image file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090220 |