JP2008257360A - Raid初期化方法及びraid初期化プログラム - Google Patents
Raid初期化方法及びraid初期化プログラム Download PDFInfo
- Publication number
- JP2008257360A JP2008257360A JP2007096856A JP2007096856A JP2008257360A JP 2008257360 A JP2008257360 A JP 2008257360A JP 2007096856 A JP2007096856 A JP 2007096856A JP 2007096856 A JP2007096856 A JP 2007096856A JP 2008257360 A JP2008257360 A JP 2008257360A
- Authority
- JP
- Japan
- Prior art keywords
- data
- logical disk
- controller
- redundant data
- redundant
- 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
Abstract
【課題】テーブルを用いることなく、論理ディスクの作成後に当該論理ディスクを正常状態と同様に使用することを可能とする。
【解決手段】コントローラ13は、データ及び当該データの冗長データを対応付けて格納する論理ディスク11を作成する。コントローラ13は、論理ディスク11が正常状態であることをメモリ131に設定する。コントローラ13は、論理ディスク11に格納されているデータの冗長データに矛盾があるか否かをチェックするパトロール処理を実行する。コントローラ13は、データの冗長データに矛盾がある場合、当該データの冗長データを生成する。コントローラ13は、生成された冗長データを、論理ディスク11に格納されているデータに対応付けて当該論理ディスク11に格納する。
【選択図】 図1
【解決手段】コントローラ13は、データ及び当該データの冗長データを対応付けて格納する論理ディスク11を作成する。コントローラ13は、論理ディスク11が正常状態であることをメモリ131に設定する。コントローラ13は、論理ディスク11に格納されているデータの冗長データに矛盾があるか否かをチェックするパトロール処理を実行する。コントローラ13は、データの冗長データに矛盾がある場合、当該データの冗長データを生成する。コントローラ13は、生成された冗長データを、論理ディスク11に格納されているデータに対応付けて当該論理ディスク11に格納する。
【選択図】 図1
Description
本発明は、論理ディスク作成後に当該論理ディスクに格納されているデータの冗長データを生成するRAID初期化方法及びRAID初期化プログラムに関する。
一般に、ストレージ装置(ディスクアレイ装置)は、複数のディスクドライブ、例えばハードディスクドライブ(HDD:Hard Disk Drive)と、これらのHDDと接続されたコントローラを備えている。この複数のHDDは、例えばRAID(Redundant Array of Inexpensive Disk drives)1/1+0またはRAID5のようなRAIDの手法により、例えば少なくとも1つの論理ディスク(RAID論理ディスク)を構成する。
ストレージ装置に備えられたコントローラは、このような論理ディスク(複数のHDD)を管理する。コントローラは、例えばホスト(ホスト計算機)からのデータ読み出し/書き込み要求(IO要求)に対し、当該コントローラに接続された複数のHDDを並列に動かすことにより、データの読み出し(リード)/書き込み(ライト)を分散して実行する。これによりストレージ装置においては、ホストから要求されたデータアクセスの高速化を図ることが可能となる。また、このようなストレージ装置においては、論理ディスクを構成するHDDに格納されているデータに対する冗長データを、当該論理ディスクを構成する別のHDDに格納しておく構成により、信頼性の向上を図ることもできる。この冗長データは、例えば論理ディスクを構成する複数のHDDのうちの1つのHDDが故障した場合に、当該故障したHDDに格納されているデータを復元するために用いられるデータである。
上記したような冗長データを含むタイプの論理ディスクにおいては、当該論理ディスクが作成された後に当該論理ディスクに格納されているデータの冗長データを生成する必要がある。以下、このような冗長データを生成する処理をRAID初期化(処理)と称する。このRAID初期化によって、作成された論理ディスクに格納されているデータと冗長データとの整合性を取る。なお、論理ディスクが作成された場合、当該論理ディスクの内部には、不定データ(有用でないデータ)が格納されている。
通常、論理ディスクの作成からRAID初期化が完了するまでの間、当該論理ディスクは、通常の状態(正常状態)とは異なるステータス(状態)となる。RAID初期化の方法としては、例えば論理ディスクを構成する全ドライブに0を書き込む方法(第1の方法)または当該論理ディスク内部のデータの冗長データのみを書き換える方法(第2の方法)等がある。
第1の方法においては、全ドライブに0が書込まれると、RAID初期化が完了となる。なお、第1の方法でRAID初期化が実行されると、この間、ホストはストレージ装置に対してアクセスすることはできない。
一方、第2の方法においては、例えば論理ディスクの先頭から順に冗長データを生成して書き込み、当該論理ディスクの最後まで処理が終わるとRAID初期化が完了となる。なお、第2の方法においては、ホストはRAID初期化中であってもストレージ装置に対してアクセス可能である。
上記した第2の方法では、RAID初期化中の論理ディスクの中で当該RAID初期化を実行中の位置が管理、記憶されている。以下、このRAID初期化が実行されている位置を初期化ポインタと称する。この初期化ポインタにより、論理ディスク内部においてのRAID初期化を終えている領域(初期化完了領域)及びRAID初期化を終えていない領域(初期化未完了領域)が区別される。
例えば論理ディスクの初期化中に、初期化完了領域に対してホストからのIO要求(読み出し要求または書き込み要求)があった場合には、当該初期化完了領域では冗長データが生成済みであるので、正常状態時と同様の処理が実行される。
一方、論理ディスクの初期化中に、初期化未完了領域に対してホストからデータの書き込み要求があった場合には当該データが論理ディスクに書き込まれる(ホストライト)。そのとき、書き込まれるデータの冗長データが作成され、当該データと共に冗長データも論理ディスクに書き込まれる。また、初期化未完了領域に対してホストからデータの読み込み要求があった場合には、正常状態と同様にデータが読み出される。このとき、読み込み要求があった領域に対してホストからの書き込み要求に応じて1度もデータが書き込まれていない場合、上記した不定データ(論理ディスク作成時に格納されているデータ)がホストに対して返される。
ところで、論理ディスクのRAID初期化中に、当該論理ディスクを構成する例えばある1つのHDDが故障した場合を想定する。この場合、初期化完了領域及びホストからの書き込み要求に応じて書き込みがあった領域には、冗長データが生成されているので、縮退中であっても残りのHDDに格納されているデータから復元処理を実行することができる。一方、初期化未完了領域であってホストライトのない領域には、冗長データは生成されていないので故障したHDDに格納されているデータを復元することはできないが、この領域には不定データしか格納されていないので問題はない。
RAID初期化が完了すると、論理ディスクは、正常状態となる。論理ディスクが正常状態である場合には、周期的に論理ディスクを構成する全HDDからデータをリードして、冗長データの矛盾がチェックされる。これにより、論理ディスク内のデータの整合性を確認する。以下、この処理をパトロールと称する。
さて、上記したRAID初期化において、第1の方法が用いられた場合、上記したようにRAID初期化中にホストは論理ディスクに対してアクセスすることができない。RAID初期化の所要時間は、論理ディスクの要領に比例するため、HDDの要領増加によってRAID初期化にかかる時間は延び続けている。このため、RAID初期化中に、一切アクセスできないということは好ましくない。
また、第2の方法が用いられた場合には、ホストは論理ディスクにアクセスすることは可能である。しかしながら、上記した論理ディスクが正常状態の場合と比較すると、IO性能は落ちる。また、上記した第1の方法に比べて、RAID初期化に要する時間が長くなる。
初期化されていないディスクドライブのエリアの最初のエリアを示すポインタ及び各ドライブの全エリアの各々が初期化済みであるか否かを示すビットマップを用いてストレージシステムを初期化する技術が開示されている(例えば、特許文献1を参照)。この技術によれば、ストレージシステムがインストールしてすぐに使用可能になり、ユーザにはシステムはすでに初期化済みであるように見せることができる。
特開2005−11317号公報
上記したようにポインタ及びビットマップ(テーブル)を用いることにより、論理ディスクの作成後、外部に対しては正常状態とすることで例えばホストからのアクセスを可能とすることができる。
しかしながら、上記したようにテーブルを用いる場合、論理ディスクの容量の増大に伴い、ストレージ装置に備えられるメモリ消費量も増大する。これにより、HDDの容量増加に対して十分なサイズのメモリ領域を確保することが難しくなることが考えられる。
本発明の目的は、テーブルを用いることなく、論理ディスクの作成後に当該論理ディスクを正常状態と同様に使用することができるRAID初期化方法及びRAID初期化プログラムを提供することにある。
本発明の1つの態様によれば、メモリを含み、ホストからの要求に応じてデータ及び当該データの冗長データを対応付けて格納する論理ディスクへのアクセスを制御するコントローラを備えるストレージ装置において、前記論理ディスクの作成後に当該論理ディスクに格納されているデータの冗長データを生成するRAID初期化方法であって、前記論理ディスクを作成するステップと、前記論理ディスクが作成された段階で、当該論理ディスクが前記ホストからのアクセスを受け付ける状態であることを、前記コントローラに含まれるメモリに設定するステップと、前記正常状態であることが設定されると、前記論理ディスクの先頭から順に、当該論理ディスクに格納されているデータの冗長データに矛盾があるかをチェックするパトロール処理を実行するステップとを具備し、前記パトロール処理を実行するステップは、前記論理ディスクに格納されているデータの冗長データに矛盾がある場合に、前記データの冗長データを、当該データに基づいて生成するステップと、前記生成された冗長データを、前記データに対応付けて前記論理ディスクに格納するステップとを含むことを特徴とするRAID初期化方法が提供される。
本発明によれば、テーブルを用いることなく、論理ディスクの作成後に当該論理ディスクを正常状態と同様に使用することを可能とする。
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態に係るストレージ装置を備えた計算機システムの構成を示すブロック図である。この計算機システムは、ストレージ装置10及びホスト(ホスト計算機)20から構成される。ホスト20は、例えばSCSI(Small Computer System Interface)またはファイバチャネル(Fibre Channel)のようなインタフェース(図示せず)によってストレージ装置10と接続されている。ホスト20は、例えばストレージ装置10を外部記憶装置として利用する。
ストレージ装置10は、複数のディスクドライブ、例えばハードディスクドライブ(HDD:Hard Disk Drive)及びコントローラ13を有する。
複数のHDDは、例えばRAID(Redundant Array of Inexpensive Disk drive)1/1+0またはRAID5のようなRAIDの手法により、例えば少なくとも1つの論理ディスクを構成する。本実施形態においては、ストレージ装置10は、論理ディスク11及び論理ディスク12を含む複数の論理ディスクを有する。論理ディスク11は、HDD111及びHDD112を含む複数のHDDから構成されている。また、論理ディスク12は、HDD121及びHDD122を含む複数のHDDから構成されている。
論理ディスクは、例えば専用のソフト等を用いてRAIDの設定を行うことにより、ストレージ装置20において内部的に作成(設定)される。論理ディスクが作成されると、当該論理ディスクを構成する複数のHDDを、例えば単一の論理ディスクとして扱うことが可能となる。
なお、論理ディスクが新しく作成された場合、当該新しく作成された論理ディスクには、例えば不定データ(有用でないデータ)が格納されている。論理ディスク作成後、例えば不定データが格納されている領域に対してホストからのIO要求(書き込み要求)があると、当該要求に応じたデータが当該領域に格納されている不定データに上書きされる。つまり、データが不定であるのは、論理ディスクが作成されてから、ホストからのIO要求があるまでの間である。
このような例えばRAIDの手法により構成された論理ディスク11(または論理ディスク12)には、当該論理ディスク11に格納されているデータを復元するための冗長データが、例えば当該データに対応付けて格納されている。
具体的には、上記したRAID1/1+0(ミラーリング)の手法においては、例えば論理ディスクが2台のHDDから構成された場合、一方のHDD(マスタディスク)には例えばホスト20からの書き込み要求に応じて書き込まれたデータ(マスタデータ)が格納され、他方のHDD(シャドウディスク)には当該マスタデータのシャドウデータ(冗長データ)が格納される。なお、この冗長データは、マスタデータが格納されているHDD(マスタディスク)の領域に対応付けられたHDD(シャドウディスク)の領域に格納される。なお、RAID1/1+0の手法においては、2台のHDDのうち、例えばシャドウディスクはマスタディスクのバックアップディスクとして動作する。
また、上記したRAID5(分散データガーディング)の手法においては、例えば論理ディスクが3台のHDDから構成された場合、そのうちの2台のHDDに格納されたデータの排他的論理和(Exclusive OR)によって得られるパリティデータ(冗長データ)が残りの1台のHDDに格納される。この冗長データは、当該冗長データを得るために用いられたデータの各々が格納されている(2台の)HDDの領域に対応付けられた(残りの1台の)HDDの領域に格納される。なお、例えばRAID5の手法による論理ディスクにおいて、パリティデータを得るために用いられたデータの各々が格納される領域及び当該データの各々によって得られるパリティデータ(冗長データ)が格納される領域は、ストライプグループと呼ばれる領域である。また、パリティデータを得るために用いられた例えば複数のデータをパリティグループと称する。
コントローラ13は、SCSIまたはファイバチャネルのようなインタフェース(
図示せず)によって論理ディスク11及び12を含む複数の論理ディスクの各々(複数の論理ディスクの各々を構成する複数のHDD)と接続されている。コントローラ13は、ホスト20からのデータの読み出し/書き込み要求(IO要求)に応じて、複数の論理ディスクを構成する複数のHDDを制御し、当該データの読み出し/書き込み処理を実行する。また、コントローラ13は、ホスト20とのデータの送受信を行う。
図示せず)によって論理ディスク11及び12を含む複数の論理ディスクの各々(複数の論理ディスクの各々を構成する複数のHDD)と接続されている。コントローラ13は、ホスト20からのデータの読み出し/書き込み要求(IO要求)に応じて、複数の論理ディスクを構成する複数のHDDを制御し、当該データの読み出し/書き込み処理を実行する。また、コントローラ13は、ホスト20とのデータの送受信を行う。
コントローラ13は、例えば論理ディスクが正常状態(後述する)に設定されている場合には、周期的に、当該論理ディスク内のデータの冗長データの矛盾があるか否かをチェックする(以下、この処理をパトロールと表記)。具体的には、コントローラ13は、論理ディスク内のデータから得られる冗長データが、当該データの冗長データが格納されるべき領域(当該データが格納されている領域に対応付けられている領域)に格納されているデータと一致するか否かを判定する。また、コントローラ13は、論理ディスクが新しく作成された場合、当該論理ディスクの整合性を取るために当該論理ディスクに格納されているデータの冗長データを生成する。以下、この処理をRAID初期化(処理)と称する。
コントローラ13は、メモリ131、不揮発性メモリ132及びマイクロプロセッサ133を含む。
メモリ131には、例えば論理ディスク11へのアクセス(IO性能)に関する状態が設定される。つまり、メモリ131には、論理ディスク11がホスト20からのアクセスを受け付けるか否か等の状態が設定される。なお、例えば論理ディスク11が通常動作している際の当該ストレージ装置20のアクセスに関する状態、つまり、ホスト20からのIO要求に応じて当該論理ディスク11に対する読み出しまたは書き込み処理が可能な状態を正常状態とする。論理ディスク11が正常状態に設定されているときには、例えばホスト20は、特別な制限を受けることなく当該論理ディスク11に対してアクセスすることができる。また、メモリ131には、例えば論理ディスク11における上記したパトロールが実行されている位置を示すパトロールポインタが格納される。このパトロールポインタにより、例えば論理ディスク11内の領域において例えばパトロールが既に実行された完了領域及びパトロールがまだ実行されていない未完了領域が区別される。
不揮発性メモリ132には、コントローラ13に含まれるマイクロプロセッサ133によって実行されるプログラム134が格納されている。例えば上記したようなコントローラ13の処理は、マイクロプロセッサ133が不揮発性メモリ132に格納されているプログラム134を実行することにより実現されるものとする。このプログラム134は、例えばマイクロプロセッサ133で読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム134が、ネットワークを介してダウンロード(頒布)されてもよい。
次に、図2を参照して、例えば論理ディスク11が作成された場合のコントローラ13の動作について説明する。ここでは、論理ディスク11が作成された場合について説明するが、例えば論理ディスク12のような論理ディスク11以外の論理ディスクが作成された場合であっても同様である。以下の説明についても同様である。
まず、ストレージ装置10の内部に論理ディスク11が新しく作成されたものとする(ステップS1、S2)。
次に、コントローラ13は、論理ディスク11を正常状態として、作成された論理ディスク11のパトロール(1周目)を開始する(ステップS3)。このとき、コントローラ13は、論理ディスク11内のRAID初期化を実行する。
パトロール(1周目)が完了すると、ストレージ装置10は、周期的にパトロール(2周目以降)を実行する(ステップS4、S5)。これにより、RAID初期化が完了した論理ディスクであっても、常に当該論理ディスクに格納されているデータ及び当該データの冗長データの整合性を確保する。
なお、上記した1周目のパトロールが実行されている場合には、RAID初期化中であるため、冗長データが生成されていない領域が存在する。一方、2周目以降のパトロールの実行されている場合には、1周目のパトロールの際にRAID初期化が完了しているため、論理ディスク内の全てのデータの冗長データは生成されている。このため、1周目のパトロールと2周目以降のパトロールとでは処理が異なる。
次に、図3のフローチャートを参照して、コントローラ13による1周目のパトロールの処理手順について説明する。
まず、コントローラ13は、例えば各種設定に応じてストレージ装置20内部に新しく論理ディスク11を作成する(ステップS11)。
次に、コントローラ13は、パトロールポインタを新しく作成された論理ディスク11の先頭に設定する(ステップS13)。このパトロールポインタは、例えば論理ディスク11内の領域においてパトロールが実行されている位置を示す。また、パトロールポインタは、コントローラ13に含まれるメモリ131に格納される。
コントローラ13は、論理ディスク11が作成された段階で、当該論理ディスク11が正常状態であることを当該コントローラ13に含まれるメモリ131に設定する(ステップS13)。なお、論理ディスク11が正常状態であることが設定されると、上記したようにコントローラ13は、当該論理ディスク11に対してパトロール処理を実行する。
コントローラ13は、パトロールポインタが設定されている領域(ここでは、論理ディスク11の先頭)に格納されているデータ(第1のデータ)及び当該第1のデータの冗長データが格納されるべき領域(第1のデータが格納されている領域に対応付けられた領域)に格納されているデータ(第2のデータ)を読み出す(ステップS14)。このとき、コントローラ13は、予め定められているパトロールの実行単位分の第1のデータ及び第2のデータを読み出す。
次に、コントローラ13は、読み出された第1のデータの冗長データに矛盾があるか否かを判定する(ステップS15)。コントローラ13は、読み出された第1のデータから得られる当該第1のデータの冗長データ及び第2のデータが一致するか否かを判定する。このとき処理している領域は1周目のパトロールが完了していない領域(未完了領域)であるので、この領域のRAID初期化は実行されていない。このため、第1のデータから得られる当該第1のデータの冗長データ及び第2のデータは一致しない、つまり、第1のデータの冗長データに矛盾があると判定される。
しかしながら、後述するが、未完了領域に対してホスト20からの書き込み要求があった場合には、当該要求に応じて書き込まれるデータの冗長データが作成される。よって、未完了領域であっても書き込み要求があった領域については、第1のデータから得られる当該第1のデータの冗長データ及び第2のデータは一致し、当該第1のデータの冗長データには矛盾がないと判定される。このような1周目のパトロール実行中に未完了領域に対してホスト20からのIO要求があった場合の処理については後述する。
第1のデータの冗長データに矛盾がないと判定された場合(ステップS15のYES)、コントローラ13は、第1のデータの冗長データを生成する(ステップS16)。
次に、コントローラ13は、生成された第1のデータの冗長データを、当該第1のデータに対応付けて論理ディスク11に書き込む(ステップS17)。つまり、コントローラ13は、第2のデータを生成された第1のデータの冗長データに書き換える。
ここで、図4及び図5を参照して、上記した図3のステップS14〜ステップS17の処理について説明する。図4は、例えば論理ディスク11がRAID1/1+0の手法により作成された論理ディスクである場合の図3のステップS14〜ステップS17の処理について具体的に説明するための図である。
図4に示すように、論理ディスク11がRAID1/1+0の手法による論理ディスクの場合には、コントローラ13は、第1のデータ(ここでは、例えばM0)及び第2のデータ(ここでは、第1のデータM0に対応するS0)を読み出す。なお、読み出された第2のデータS0が格納されている領域は、第1のデータM0が格納されている領域に対応付けられた領域であるである。コントローラ13は、第1のデータM0から得られる冗長データ及び第2のデータS0を比較する。
ここで、RAID1/1+0の手法による論理ディスク11は、例えばマスタディスク及びシャドウディスクから構成される。通常、論理ディスク11を構成する例えばマスタディスクには、マスタデータ(例えば第1のデータM0)が格納され、論理ディスク11を構成するシャドウディスクには、マスタデータと同一のデータであるシャドウデータ(冗長データ)が格納される。つまり、例えば第1のデータM0の冗長データは、第1のデータM0と同一のデータである。よって、コントローラ13は、第1のデータM0から得られる当該第1のデータM0の冗長データ(つまり第1のデータM0)及び第2のデータS0が一致するか否かを判定する。第1のデータM0及び第2のデータS0が一致しない場合、つまり、第1のデータM0の冗長データに矛盾がある場合には、コントローラ13は、第1のデータM0に対応付けて当該第1のデータM0の冗長データを格納する。つまり、コントローラ13は、第2のデータS0を第1のデータM0の冗長データに書き換える。なお、第1のデータM1〜Mn及び第2のデータS1〜Snの各々についても同様である。
図5は、例えば論理ディスク11がRAID5の手法により作成された論理ディスクである場合の図3のステップS14〜ステップS17の処理について具体的に説明するための図である。
図5に示すように、論理ディスク11がRAID5の手法による論理ディスクの場合には、コントローラ13は、第1のデータ(ここではD0〜Dn)及び第2のデータ(ここではP)を読み出す。なお、読み出された第2のデータPが格納されている領域は、第1のデータD0〜Dnが格納されている領域に対応付けられている領域である。この場合、コントローラ13は、読み出された第1のデータD0〜Dnのデータから得られるパリティデータ(第1のデータD0〜Dnの冗長データ)及び第2のデータPが一致するか否かを判定する。なお、パリティデータは、例えば第1のデータD0〜Dnの排他的論理和により算出される。第1のデータD0〜Dnの冗長データ及び第2のデータPが一致しない場合、つまり、第1のデータD0からDnの冗長データに矛盾がある場合には、コントローラ13は、第1のデータD0〜Dnの冗長データに対応付けて第1のデータD0〜Dnから得られるパリティデータ(第1のデータD0〜Dnの冗長データ)を格納する。つまり、コントローラ13は、第2のデータPを第1のデータD0〜Dnのから得られるパリティデータに書き換える。
再び図3に戻ると、コントローラ13は、メモリ131に設定されている(格納されている)パトロールポインタに基づいて、1周目のパトロールが論理ディスク11の最後まで実行されたか否かを判定する(ステップS18)。
1周目のパトロールが最後まで実行されていないと判定された場合(ステップS18のNO)、コントローラ13は、パトロールポインタを進めてメモリ131に設定する(ステップS19)。
パトロールポインタがメモリ131に設定されると、ステップS14に戻って処理が繰り返される。
一方、ステップS18において1周目のパトロールが論理ディスク11の最後まで実行されたと判定された場合、コントローラ13は、例えば周期的に2周目以降のパトロールを開始する(ステップS20)。
なお、ステップS15において第1のデータの冗長データに矛盾があると判定された場合、ステップS18の処理が実行される。
次に、図6のフローチャートを参照して、1周目のパトロール中にホスト20からIO要求があった場合の処理手順について説明する。なお、以下の説明において、1周目のパトロールが既に実行されている論理ディスク11の領域を完了領域、当該1周目のパトロールがまだ実行されていない論理ディスク11の領域を未完了領域と称する。この完了領域または未完了領域は、上記したパトロールポインタによって区別される。
まず、コントローラ13は、ホスト20からのIO要求を例えばSCSIまたはファイバチャネルのようなインタフェースを介して受信する(ステップS21)。なお、ホスト20からのIO要求には、例えば論理ディスク11に格納されているデータの読み出しを要求する読み出し要求または論理ディスク11に対してデータの書き込みを要求する書き込み要求がある。
次に、コントローラ13は、受信されたホスト20からのIO要求が読み出し要求(リード)であるか否かを判定する(ステップS22)。これにより、コントローラ13は、受信されたIO要求が読み出し要求であるか書き込み要求であるかを判定する。
受信されたIO要求が読み込み要求でない場合(ステップS22のNO)、つまり、受信されたIO要求が書き込み要求である場合、コントローラ13は、当該書き込み要求に応じたデータの書き込みの対象となる論理ディスク11の領域が完了領域であるか否かを判定する(ステップS23)。このとき、コントローラ13は、メモリ131に格納されているパトロールポインタに応じて判定処理を実行する。
書き込みの対象となる領域が未完了領域である場合(ステップS23のNO)、コントローラ13は、当該書き込み要求に応じて論理ディスク11に書き込むデータ(書き込みデータ)の冗長データを生成する(ステップS24)。
次に、コントローラ13は、書き込みデータ及び生成された冗長データを論理ディスク11に書き込む(ステップS25)。
ここで、図7は、1周目のパトロール中の論理ディスク11の状態を示す。なお、図7に示す論理ディスク11は、RAID5の手法による論理ディスクである。図7に示すように、論理ディスク11は、複数のHDD(HDD111〜114)から構成されている。また、論理ディスク11は、例えばメモリ131に格納されているパトロールポインタにより完了領域及び未完了領域が区別されている。
このとき、例えば未完了領域に含まれる領域112aに対して書き込み要求があった場合を想定する。なお、領域112aは、ストライプグループ110に属する領域である。この場合、領域112aと同一のストライプグループ110に属する領域(HDD111の領域111a、HDD113の領域113aまたはHDD114の領域114a)に書き込みデータの冗長データが格納される。また、領域112aには、書き込みデータが格納される。なお、RAID5の手法による論理ディスクの場合、例えばデータが書き込まれる領域(ここでは領域112a)が属するストライプグループによって、冗長データが書き込まれる領域は異なる。ストライプグループ110において、例えば領域111a、112a及び113aに第1のデータ(パリティグループ)が格納されている場合には、当該第1のデータの冗長データは領域114aに格納される。一方、例えば領域111a、112a及び114aに第1のデータ(パリティグループ)が格納されている場合には、当該第1のデータの冗長データは領域113aに格納される。
図8を参照して、論理ディスク11が例えばRAID1/1+0の手法による論理ディスクである場合の未完了領域に対して書き込み要求があった場合の処理について具体的に説明する。
例えば論理ディスク11がRAID1/1+0の手法による論理ディスクの場合に未完了領域に対して書き込み要求があると、図8に示すように、書き込みデータ(ここではM0)がマスタディスクに書き込まれる。また、書き込みデータの冗長データ(ここでは、書き込みデータと同一のデータであるS0)がシャドウディスクに書き込まれる。
図9を参照して、論理ディスク11が例えばRAID5の手法による論理ディスクである場合の未完了領域に対して書き込み要求があった場合の処理について具体的に説明する。
例えば論理ディスク11がRAID5の手法による論理ディスクの場合に未完了領域に対して書き込み要求があると、図9に示すように、書き込みデータ(ここでは、D1)が書き込み要求に応じた領域に書き込まれる。また、書き込みデータが書き込まれた領域に対応付けられている領域(書き込みデータが書き込まれた領域と同一のストライプグループに属する領域)に格納されているデータ(D0〜Dn)から生成されるパリティデータ(ここでは、P)が、パリティグループに対応付けて格納される。ここで、パリティグループは、パリティデータPを生成するために用いられるデータD0〜Dnである。
再び図6に戻ると、ステップS22において、受信されたホスト20からのIO要求が読み出し要求であると判定された場合、当該読み出し要求に応じて論理ディスク11に対してデータの読み出し処理(リード処理)が実行される(ステップS26)。コントローラ13は、読み出されたデータをホスト20に対して送出する。
また、ステップS23において書き込みの対象となる領域が完了領域である場合、完了領域では既にRAID初期化が完了しているため、書き込みデータに基づいて当該書き込みデータの冗長データが新たに生成される。論理ディスク11に対して、書き込みデータ及び生成された当該書き込みデータの冗長データの書き込み処理(ライト処理)が実行される(ステップS27)。例えば論理ディスク11がRAID1/1+0の手法による論理ディスクの場合は、ステップS24及びS25と同様の処理によって、書き込み処理が実行される。
一方、図10を参照して、論理ディスク11が例えばRAID5の手法による論理ディスクである場合の完了領域に対して書き込み要求があった場合の処理について具体的に説明する。
例えば論理ディスク11がRAID5の手法による論理ディスクの場合、完了領域に対して書き込み要求があった場合には、2リード2ライトで新たなパリティデータが生成できる。
ここで、例えば書き込み要求に応じて書き込まれる書き込みデータを新データD1とする。また、書き込み要求に応じて新データD1が書き込まれる領域に既に格納されているデータを旧データD1とする。また、旧データD1を含むパリティグループに対応付けて格納されている当該パリティグループの冗長データを旧パリティデータPとする。
図10に示すように、書き込みデータ(ここでは、新データD1)が書き込み要求に応じた領域に書き込まれる。このとき、完了領域には既に冗長データ(旧パリティデータP)が格納されている。この場合、新データD1が書き込まれる領域に格納されている旧データD1及び旧パリティデータPが読み出される。そして、新データD1、読み出された旧データD1及び旧パリティデータPから、当該新データD1を含むパリティグループの冗長データ(新パリティデータP)が生成される。生成された新パリティデータPは、旧パリティデータが格納されている領域に格納(上書き)される。
つまり、旧データD1及び旧パリティデータPが読み出され、新データD1及び新パリティデータPが書き込まれることによって書き込み要求に対する冗長データの生成処理が実行される。よって、完了領域に対して書き込み要求があった場合、新データD1が含まれるパリティグループの全データを読み出すことなく、上記したように2リード2ライトにより冗長データの生成処理が実行できる。
なお、上記した図9で説明したように、書き込みデータD1が書き込まれた後、パリティグループの全データを読み出して(ペアリード)、新たなパリティデータを生成することも可能である。
次に、図11のフローチャートを参照して、コントローラ13による2周目以降のパトロールの処理手順について説明する。
まず、図3のステップS12に相当するステップS32の処理が実行される。次に、図3のステップS14及びステップS15の処理に相当するステップS32及びステップS33の処理が実行される。
第1のデータの冗長データに矛盾があると判定された場合(ステップS33のNO)、コントローラ13は、エラー発生として扱う(ステップS34)。
次に、図3のステップS16〜ステップS18に相当するステップS35〜ステップS37の処理が実行される。つまり、ステップS34のエラー発生に対して、当該エラーとなった冗長データの修正処理を実行する。
ステップS37においてパトロールが最後まで実行されたと判定された場合、当該パトロール(例えば2周目のパトロール)は完了する。そして、例えば3周目のパトロールが開始される。
一方、ステップS37においてパトロールが最後まで実行されていないと判定された場合、図3のステップS19に相当するステップS38の処理が実行される。
なお、ここではエラー発生となった場合、当該エラー発生となった冗長データを新たに生成し、格納する(修正する)ものとして説明したが、例えば説明したように当該冗長データを修正するかまたはそのまま(修正処理は実行しない)にするかは、例えばストレージ装置10の仕様に応じて決定される。
上記したように本実施形態においては、論理ディスク(例えば論理ディスク11)の作成後に、コントローラ13に含まれるメモリ131に正常状態を設定し、パトロールを開始する。このとき、第1のデータの冗長データに矛盾がある場合には、当該第1のデータの冗長データを生成する。また、パトロールの未完了領域に対してホスト20から書き込み要求があった場合には、書き込みデータの冗長データを作成する。これにより、例えばホスト20は、論理ディスク11の作成後すぐに正常状態と同様に論理ディスク11を使用することが可能となる。
なお、本実施形態において、例えば論理ディスク11の1周目のパトロールの実行中に、例えば論理ディスク11を構成する複数のHDDのうちの1つが故障した場合であっても、パトロールの完了領域及び例えばホスト20により書き込み要求があった領域については、既に冗長データが生成済みであるので当該故障により損失したデータを復元することができる。一方、パトロールの未完了領域については、冗長データはまだ生成されていないため、HDDの故障により損失したデータについては復元できない。しかしながら、未完了領域は、論理ディスク11が作成されてからホスト20による書き込み要求がない(つまり、データが書き込まれていない)領域であるので、有効なデータは格納されていないため問題はない。
[第1の変形例]
次に、図12を参照して、本実施形態に係る第1の変形例について説明する。なお、本変形例に係るストレージ装置10の構成については、前述した本実施形態に係るストレージ装置10と同様の構成であるので、図1を用いて説明する。以下の各変形例についても同様にして図1を用いて説明する。
次に、図12を参照して、本実施形態に係る第1の変形例について説明する。なお、本変形例に係るストレージ装置10の構成については、前述した本実施形態に係るストレージ装置10と同様の構成であるので、図1を用いて説明する。以下の各変形例についても同様にして図1を用いて説明する。
本変形例においては、前述した本実施形態とは異なり、1周目のパトロールの際、上述した第1のデータの冗長データに矛盾があるか否かの判定処理は実行されず、例えば論理ディスク11に格納されている全てのデータの冗長データを生成することを特徴とする。
図12のフローチャートを参照して、本変形例におけるコントローラ13による1周目のパトロールの処理手順について説明する。
まず、図3のステップS11〜ステップS13の処理に相当するステップS41〜ステップS43の処理が実行される。
次に、コントローラ13は、パトロールポインタが設定されている領域に格納されているデータを読み出す(ステップS44)。このとき、コントローラ13は、予め定められているパトロールの実行単位分のデータを読み出す。
コントローラ13は、読み出されたデータの冗長データを生成する(ステップS45)。コントローラ13は、生成された冗長データを、読み出されたデータに対応付けて論理ディスク11に格納する(ステップS46)。
ここで、図13及び図14を参照して、上記した図12のステップS44〜ステップS46の処理について説明する。図13は、例えば論理ディスク11がRAID1/1+0の手法により作成された論理ディスクである場合の図12のステップS44〜ステップS46の処理について具体的に説明するための図である。
図13に示すように、論理ディスク11がRAID1/1+0の手法による論理ディスクの場合には、コントローラ13は、データM0を読み出す。なお、このデータM0が格納されているのは、マスタディスクである。そして、コントローラ13は、読み出された例えばデータM0(マスタデータ)の冗長データ(シャドウデータ)S0を生成する。なお、この冗長データS0は、データM0と同一のデータである。コントローラ13は、生成された冗長データS0を、データM0に対応付けて論理ディスク11に格納する。なお、データM0以外のマスタデータ、例えばデータM1〜Mnについても同様である。
図14は、例えば論理ディスク11がRAID5の手法により作成された論理ディスクである場合の図12のステップS44〜ステップS46の処理について具体的に説明するための図である。
図14に示すように、論理ディスク11がRAID5の手法による論理ディスクの場合には、コントローラ13は、データD0〜Dn(パリティグループ)を読み出す。そして、コントローラ13は、データD0〜Dnから冗長データ(パリティデータ)Pを生成する。なお、この冗長データは、例えばデータD0〜Dnの排他的論理和により算出される。コントローラ13は、生成された冗長データPを、データD0〜Dnに対応付けて論理ディスク11に格納する。
再び図12に戻ると、図3のステップS18の処理に相当するステップS47の処理が実行される。このステップS47の処理において1周目のパトロールが最後まで実行されていないと判定された場合、コントローラ13は、パトロールポインタを進めてメモリ131に設定する(ステップS48)。パトロールポインタがメモリ131に設定されると、ステップS44に戻って処理が繰り返される。
一方、ステップS47において1周目のパトロールが論理ディスク11の最後まで実行されたと判定された場合、コントローラ13は、例えば周期的に2周目以降のパトロールを開始する(ステップS49)。なお、2周目以降のパトロールの処理は、前述した本実施形態と同様である。
上記したように本変形例においては、論理ディスク11の作成後に、コントローラ13に含まれるメモリ131に正常状態を設定し、パトロールを開始する。このとき、論理ディスク11に格納されている全てのデータに対して冗長データを生成(RAID初期化)することで、例えばホスト20は、論理ディスク11の作成後すぐに正常状態と同様に論理ディスク11を使用することが可能となる。
[第2の変形例]
次に、図15〜図18を参照して、本実施形態に係る第2の変形例について説明する。本変形例においては、前述した本実施形態における1周目のパトロールの際に、例えば論理ディスク11に格納されているデータの正しさを確認するためのチェックコードを生成することを特徴とする。このチェックコードは、データに付加される確認用のコードである。
次に、図15〜図18を参照して、本実施形態に係る第2の変形例について説明する。本変形例においては、前述した本実施形態における1周目のパトロールの際に、例えば論理ディスク11に格納されているデータの正しさを確認するためのチェックコードを生成することを特徴とする。このチェックコードは、データに付加される確認用のコードである。
図15は、上記したチェックコードのデータ構造の一例を示す。図15に示すように、チェックコード101は、例えば1セクタ512バイトのデータ100に付加される8バイトのコードである。このチェックコード101には、例えばLDISK番号102、論理ブロックアドレス(LBA:Logical Block Address)103、及びCRC(Cyclic Redundancy Check)104が含まれる。
チェックコード101に含まれるLDISK番号102及び論理ブロックアドレス103によって、当該チェックコード101が付加されたデータが保存(格納)されている場所が正しいか否かをチェックできる。また、チェックコード101に含まれるCRC104によって、当該チェックコード101が付加されたデータの中身(内容)が正しいか否かを確認することができる。
次に、図16のフローチャートを参照して、本変形例におけるコントローラ13による1周目のパトロールの処理手順について説明する。
まず、前述した図3のステップS11〜ステップS14に相当するステップS51〜ステップS54の処理が実行される。なお、前述した図3のステップS14と同様に、ステップS54で読み出された第1のデータは、パトロールポインタが設定されている領域に格納されているデータである。また、第2のデータは、第1のデータの冗長データが格納されるべき領域(つまり、第1のデータが格納されている領域に対応付けられている領域)に格納されているデータである。
次に、コントローラ13は、読み出された第1のデータのチェックコードに矛盾があるか否かを判定する(ステップS55)。コントローラ13は、読み出された第1のデータに(正しい)チェックコードが付加されているか否かを判定する(ステップS55)。このとき処理している領域は1周目のパトロールが完了していない領域(未完了領域)であるので、この領域のデータのチェックコードは生成されていない。このため、第1のデータのチェックコードには矛盾がある。
しかしながら、後述するが、未完了領域に対してホスト20からの書き込み要求があった場合には、当該要求に応じて書き込まれるデータのチェックコードが生成される。よって、未完了領域であっても書き込み要求があった領域については、第1のデータのチェックコードには矛盾がない。このような1周目のパトロール実行中に未完了領域に対してホスト20からのIO要求があった場合の処理については後述する。
第1のデータのチェックコードに矛盾があると判定された場合(ステップS55のYES)、前述した図3のステップS15に相当するステップS56の処理が実行される。
第1のデータの冗長データに矛盾があると判定された場合(ステップS56のYES)、コントローラ13は、第1のデータの冗長データ及び当該第1のデータに付加するためのチェックコードを生成する(ステップS57)。
コントローラ13は、生成された第1のデータの冗長データを、当該第1のデータに対応付けて論理ディスク11に書き込む。つまり、コントローラ13は、第1のデータの冗長データを第2のデータが格納されていた領域に書き込む。また、コントローラ13は、生成されたチェックコードを第1のデータに付加して書き込む(ステップS58)。
次に、前述した図3のステップS18に相当するステップS59の処理が実行される。このステップS59の処理において1周目のパトロールが最後まで実行されていないと判定された場合、コントローラ13は、パトロールポインタを進めてメモリ131に設定する(ステップS60)。パトロールポインタがメモリ131に設定されると、ステップS54に戻って処理が繰り返される。
ステップS59において1周目のパトロールが論理ディスク11の最後まで実行されたと判定された場合、コントローラ13は、例えば周期的に2周目以降のパトロールを開始する(ステップS61)。なお、2周目以降のパトロールの処理は、前述した本実施形態と同様である。
一方、ステップS55において第1のデータのチェックコードに矛盾がないと判定された場合、上記したステップS56と同様の処理であるステップS62の処理が実行される。
第1のデータの冗長データに矛盾があると判定された場合(ステップS62のYES)、コントローラ13は、前述した図3のステップS16及びステップS17に相当するステップS63及びステップS64の処理が実行される。ステップS63及びステップS64の処理が実行されると、上記したステップS59の処理が実行される。
一方、ステップ62において第1のデータの冗長データに矛盾がないと判定された場合には、ステップS59の処理が実行される。
また、ステップS56において第1のデータの冗長データ及び第2のデータが一致すると判定された場合、コントローラ13は、第1のデータのチェックコードを生成する(ステップS65)。コントローラ13は、生成されたチェックコードを第1のデータに付加して書き込む(ステップS66)。ステップS66の処理が実行されると、上記したステップS59の処理が実行される。
次に、図17のフローチャートを参照して、1周目のパトロール中にホスト20からIO要求があった場合の処理手順について説明する。なお、以下の説明において、1周目のパトロールが既に実行されている論理ディスク11の領域を完了領域、当該1周目のパトロールがまだ実行されていない論理ディスク11の領域を未完了領域とする。この完了領域または未完了領域は、パトロールポインタによって区別される。
まず、前述した図6のステップS21及びステップS22の処理に相当するステップS71及びステップS72の処理が実行される。ステップS72において、受信されたIO要求が読み込み要求でないと判定された場合、前述した図6のステップS23の処理に相当するステップS23の処理が実行される。
書き込みの対象となる領域が未完了領域である場合(ステップS73のNO)、コントローラ13は、当該書き込み要求に応じて論理ディスク11に書き込むデータ(書き込みデータ)の冗長データ及び当該書き込みデータに付加するためのチェックコードを生成する(ステップS74)。
次に、コントローラ13は、生成された冗長データ及び生成されたチェックコードが付加された書き込みデータを論理ディスク11に書き込む(ステップS75)。
ここで、図18は、1周目のパトロール中の論理ディスク11の状態を示す。なお、図18に示す論理ディスク11は、RAID5の手法による論理ディスクである。図18に示すように、論理ディスク11は、複数のHDD(HDD111〜114)から構成されている。また、論理ディスク11は、例えばメモリ131に格納されているパトロールポインタにより完了領域及び未完了領域が区別されている。
このとき例えば未完了領域に含まれる領域112bに対して書き込み要求があった場合には、当該領域112bに書き込まれる書き込みデータに付加されてチェックコードが例えば領域112cに書き込まれる。
なお、書き込みデータの冗長データについては前述した図7と同様であるので、その詳しい説明は省略する。
再び図17に戻ると、ステップS72において、受信されたホスト20からのIO要求が読み出し要求であると判定された場合、前述した図6のステップS26と同様の処理が実行される。
一方、ステップS73において書き込みの対象となる領域が完了領域である場合、完了領域では既にRAID初期化及びチェックコードの生成が完了しているため、書き込みデータに基づいて当該書き込みデータの冗長データ及び当該書き込みデータのチェックコードが新たに生成される。そして、生成された当該書き込みデータの冗長データ及び生成されたチェックコードが付加された書き込みデータが論理ディスク11に書き込まれる(ステップS77)。
上記したように本変形例においては、論理ディスク11の作成後に、コントローラ13に含まれるメモリ131に正常状態を設定し、パトロールを開始する。このとき、RAID初期化と共に、第1のデータのチェックコードに矛盾がある場合には、当該第1のデータのチェックコードを生成する。これにより、1周目のパトロール中に、RAID初期化だけでなく、当該論理ディスク11に格納されている第1のデータにチェックコードを付加することが可能となる。また、本変形例においては、1周目のパトロールの未完了領域に対してホスト20から書き込み要求があった場合にも、書き込みデータのチェックコードを付加することが可能となる。
[第3の変形例]
次に、図19を参照して、本実施形態に係る第3の変形例について説明する。本変形例においては、前述した第1の変形例における1周目のパトロールの際に、第2の変形例と同様に例えば論理ディスク11に格納されているデータのチェックコードを生成することを特徴とする。
次に、図19を参照して、本実施形態に係る第3の変形例について説明する。本変形例においては、前述した第1の変形例における1周目のパトロールの際に、第2の変形例と同様に例えば論理ディスク11に格納されているデータのチェックコードを生成することを特徴とする。
図19のフローチャートを参照して、本変形例におけるコントローラ13による1周目のパトロールの処理手順について説明する。
まず、前述した図12のステップS41からステップS44の処理に相当するステップS81からステップS84の処理が実行される。
次に、コントローラ13は、ステップS44において読み出されたデータの冗長データ及び当該読み出されたデータに付加するためのチェックデータを生成する(ステップS45)。
コントローラ13は、生成された冗長データを論理ディスク11に書き込む。また、コントローラ13は、生成されたチェックデータをステップS44において読み出されたデータに付加して書き込む(ステップS86)。
前述した図12のステップS47の処理に相当するステップS87の処理が実行される。このステップS87の処理において1周目のパトロールが最後まで実行されていないと判定された場合に、コントローラ13は、パトロールポインタを進めてメモリ131に設定する(ステップS88)。パトロールポインタがメモリ131に設定されると、ステップS84に戻って処理が繰り返される。
ステップS87において1周目のパトロールが論理ディスク11の最後まで実行されたと判定された場合、コントローラ13は、例えば周期的に2周目以降のパトロールを開始する(ステップS89)。なお、2周目以降のパトロールの処理は、前述した本実施形態と同様である。
上記したように本変形例においては、論理ディスク11の作成後に、コントローラ13に含まれるメモリ131に正常状態を設定し、パトロールを開始する。このとき、RAID初期化と共に、論理ディスク11に格納されている全てのデータに対してチェックコードを生成する。これにより、1周目のパトロール中に、RAID初期化だけでなく、当該論理ディスク11に格納されているデータにチェックコードを付加することが可能となる。また、本変形例においても、前述した第2の変形例と同様に、1周目のパトロールの未完了領域に対してホスト20から書き込み要求があった場合にも、書き込みデータのチェックコードを付加することが可能となる。
なお、本願発明は、上記実施形態またはその各変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその各変形例に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態またはその各変形例に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態またはその各変形例に亘る構成要素を適宜組合せてもよい。
10…ストレージ装置、11,12…論理ディスク、13…コントローラ、20…ホスト、111,112,121,122…HDD(格納装置)、131…メモリ、132…不揮発性メモリ、133…マイクロプロセッサ。
Claims (5)
- メモリを含み、ホストからの要求に応じてデータ及び当該データの冗長データを対応付けて格納する論理ディスクへのアクセスを制御するコントローラを備えるストレージ装置において、前記論理ディスクの作成後に当該論理ディスクに格納されているデータの冗長データを生成するRAID初期化方法であって、
前記論理ディスクを作成するステップと、
前記論理ディスクが作成された段階で、当該論理ディスクが前記ホストからのアクセスを受け付ける正常状態であることを、前記メモリに設定するステップと、
前記正常状態であることが設定されると、前記論理ディスクの先頭から順に、当該論理ディスクに格納されているデータの冗長データに矛盾があるかをチェックするパトロール処理を実行するステップとを具備し、
前記パトロール処理を実行するステップは、
前記論理ディスクに格納されているデータの冗長データに矛盾がある場合に、前記データの冗長データを、当該データに基づいて生成するステップと、
前記生成された冗長データを、前記データに対応付けて前記論理ディスクに格納するステップとを含む
ことを特徴とするRAID初期化方法。 - 前記論理ディスクに対してデータを書き込むことを要求する前記ホストからの書き込み要求を受信するステップと、
前記受信された書き込み要求に応じてデータを書き込むことが要求されている前記論理ディスクの領域が、前記パトロール処理が実行されていない未完了領域であるかを判定するステップと、
前記未完了領域であると判定された場合に、前記受信された書き込み要求で指定される書き込みデータの冗長データを生成するステップと、
前記生成された冗長データを、前記書き込みデータに対応付けて前記論理ディスクに格納するステップと
を具備することを特徴とする請求項1記載のRAID初期化方法。 - 前記生成するステップは、前記論理ディスクに格納されているデータの冗長データが生成される際に、当該データの正しさを確認するためのチェックコードを生成するステップを含み、
前記格納するステップは、前記生成されたチェックコードを前記データに付加して前記論理ディスクに格納するステップを含む
ことを特徴とする請求項1記載のRAID初期化方法。 - メモリを含み、ホストからの要求に応じてデータ及び当該データの冗長データを対応付けて格納する論理ディスクへのアクセスを制御するコントローラを備えるストレージ装置において、前記論理ディスクの作成後に当該論理ディスクに格納されているデータの冗長データを生成するRAID初期化方法であって、
前記論理ディスクを作成するステップと、
前記論理ディスクが作成された段階で、当該論理ディスクが前記ホストからのアクセスを受け付ける正常状態であることを、前記コントローラに含まれるメモリに設定するステップと、
前記正常状態であることが設定されると、前記論理ディスクの先頭から順に、当該論理ディスクに格納されているデータの冗長データを、当該データに基づいて生成するステップと、
前記冗長データが生成される都度、当該冗長データを、当該冗長データの生成に用いられたデータに対応付けて前記論理ディスクに格納するステップと
を具備することを特徴とするRAID初期化方法。 - マイクロプロセッサ及びメモリを含み、ホストからの要求に応じてデータ及び当該データの冗長データを対応付けて格納する論理ディスクへのアクセスを制御するコントローラを備えるストレージ装置において、前記論理ディスクの作成後に当該論理ディスクに格納されているデータの冗長データを生成するRAID初期化に用いられるRAID初期化プログラムであって、
前記マイクロプロセッサに、
前記論理ディスクを作成するステップと、
前記論理ディスクが作成された段階で、当該論理ディスクが前記ホストからのアクセスを受け付ける正常状態であることを、前記コントローラに含まれるメモリに設定するステップと、
前記正常状態であることが設定されると、前記論理ディスクの先頭から順に、当該論理ディスクに格納されているデータの冗長データに矛盾があるかをチェックするパトロール処理を実行するステップとを実行させ、
前記パトロール処理を実行するステップは、
前記論理ディスクに格納されているデータの冗長データに矛盾がある場合に、前記データの冗長データを、当該データに基づいて生成するステップと、
前記前記生成された冗長データを、前記データに対応付けて前記論理ディスクに格納するステップとを含む
ことを特徴とするRAID初期化プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007096856A JP2008257360A (ja) | 2007-04-02 | 2007-04-02 | Raid初期化方法及びraid初期化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007096856A JP2008257360A (ja) | 2007-04-02 | 2007-04-02 | Raid初期化方法及びraid初期化プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008257360A true JP2008257360A (ja) | 2008-10-23 |
Family
ID=39980892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007096856A Pending JP2008257360A (ja) | 2007-04-02 | 2007-04-02 | Raid初期化方法及びraid初期化プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008257360A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467023B1 (en) * | 1999-03-23 | 2002-10-15 | Lsi Logic Corporation | Method for logical unit creation with immediate availability in a raid storage environment |
JP2002358168A (ja) * | 2001-04-18 | 2002-12-13 | Internatl Business Mach Corp <Ibm> | 記憶装置の設定方法、システム及び製品 |
JP2003058325A (ja) * | 2001-05-30 | 2003-02-28 | Internatl Business Mach Corp <Ibm> | 複数の記憶ユニットを備える記憶装置をストレージ・コントローラを介して初期化するための方法、システムおよびプログラム |
JP2003330629A (ja) * | 2002-05-16 | 2003-11-21 | Nec Corp | ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム |
JP2006155320A (ja) * | 2004-11-30 | 2006-06-15 | Toshiba Corp | ディスクアレイコントローラ、コンピュータシステム、およびディスクアレイの整合性検査エラーログ記録方法 |
-
2007
- 2007-04-02 JP JP2007096856A patent/JP2008257360A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467023B1 (en) * | 1999-03-23 | 2002-10-15 | Lsi Logic Corporation | Method for logical unit creation with immediate availability in a raid storage environment |
JP2002358168A (ja) * | 2001-04-18 | 2002-12-13 | Internatl Business Mach Corp <Ibm> | 記憶装置の設定方法、システム及び製品 |
JP2003058325A (ja) * | 2001-05-30 | 2003-02-28 | Internatl Business Mach Corp <Ibm> | 複数の記憶ユニットを備える記憶装置をストレージ・コントローラを介して初期化するための方法、システムおよびプログラム |
JP2003330629A (ja) * | 2002-05-16 | 2003-11-21 | Nec Corp | ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム |
JP2006155320A (ja) * | 2004-11-30 | 2006-06-15 | Toshiba Corp | ディスクアレイコントローラ、コンピュータシステム、およびディスクアレイの整合性検査エラーログ記録方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5388976B2 (ja) | 半導体記憶制御装置 | |
US6990611B2 (en) | Recovering data from arrays of storage devices after certain failures | |
US7783922B2 (en) | Storage controller, and storage device failure detection method | |
US7689869B2 (en) | Unit, method and program for detecting imprecise data | |
JP4792490B2 (ja) | 記憶制御装置及びraidグループの拡張方法 | |
JP2014067313A (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム | |
US20130198585A1 (en) | Method of, and apparatus for, improved data integrity | |
JP2006139478A (ja) | ディスクアレイシステム | |
CN115793985B (zh) | 一种安全存储方法、装置、设备及存储介质 | |
JP4491330B2 (ja) | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム | |
WO2016203631A1 (ja) | フラッシュメモリデバイス | |
JP4836014B2 (ja) | ディスクアレイ装置及び物理ディスクの復元方法 | |
US7480820B2 (en) | Disk array apparatus, method for controlling the same, and program | |
JP2006072435A (ja) | ストレージシステムおよびデータ記録方法 | |
JP4469822B2 (ja) | ディスクアレイ装置およびディスクアレイ装置のデータ管理方法 | |
JP6052288B2 (ja) | ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム | |
JP5549249B2 (ja) | ストレージ装置、ストレージ装置のデータ復元方法及びストレージコントローラ | |
JP2005107839A (ja) | アレイコントローラ及びディスクアレイ再構築方法 | |
US20140173337A1 (en) | Storage apparatus, control method, and control program | |
JP3676793B2 (ja) | ディスクアレイ装置 | |
US20130110789A1 (en) | Method of, and apparatus for, recovering data on a storage system | |
JP3699473B2 (ja) | ディスクアレイ装置 | |
JP2008257360A (ja) | Raid初期化方法及びraid初期化プログラム | |
US20050081088A1 (en) | Array controller for disk array, and method for rebuilding disk array | |
JP5107196B2 (ja) | 情報処理装置および再構築処理および修復処理の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100208 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100406 |