(57)【要約】【課題】  全ストライプの初期化なして、書き込みがなされていないストライプと既に書き込みがなされているストライプのどちらに対する書き込みでもリードモディファイライトが有する効率性を達成する。【解決手段】  データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置と、複数のデータストライプの何れかへの書き込み命令を取得し、更新対象ストライプおよびパリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを更新対象ストライプに書き込み、かつ、所定パリティ、所定データおよび更新対象データに基づいてパリティを生成し、生成したパリティをパリティストライプに書き込む制御手段と、を備える。【選択図】      図６
2017054303.tif 000002
【特許請求の範囲】
【請求項１】
データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、
前記複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置と、
前記複数のデータストライプの何れかへの書き込み命令を取得し、更新対象ストライプおよび前記パリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、所定パリティ、前記所定データおよび前記更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む制御手段と、を備えるディスクアレイ装置。
【請求項２】
前記制御手段は、前記更新対象ストライプにデータが書き込まれておらず、前記パリティストライプにパリティが書き込まれていれば、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、前記パリティストライプからパリティを読み出し、読み出したパリティ、前記所定データおよび更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む、請求項１のディスクアレイ装置。
【請求項３】
各ディスク装置は、自装置内のストライプに関連付けられた書き込みの有無を示すフラグを包含し、
前記制御手段は、書き込み対象ストライプに関連付けられた前記フラグをチェックすることで、当該ストライプの書き込みの有無を判定する、請求項１乃至請求項２の何れか１項のディスクアレイ装置。
【請求項４】
前記所定データおよび前記所定パリティデータは、０データである、請求項１乃至請求項３の何れか１項のディスクアレイ装置。
【請求項５】
請求項１乃至請求項４の何れか１項のディスクアレイ装置と、
前記ディスクアレイ装置に接続され、前記ディスクアレイ装置に対し読み書きを行う上位処理装置と、を包含するディスクアレイシステム。
【請求項６】
データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、前記複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置における前記複数のデータストライプの何れかへの書き込み命令を取得し、
更新対象ストライプおよび前記パリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、所定パリティ、前記所定データおよび前記更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む方法。
【請求項７】
前記更新対象ストライプにデータが書き込まれておらず、前記パリティストライプにパリティが書き込まれていれば、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、前記パリティストライプからパリティを読み出し、読み出したパリティ、前記所定データおよび更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む、請求項６の方法。
【請求項８】
各ディスク装置は、自装置内のストライプに関連付けられた書き込みの有無を示すフラグを包含し、
書き込み対象ストライプに関連付けられた前記フラグをチェックすることで、当該ストライプの書き込みの有無を判定する、請求項６乃至請求項７の何れか１項の方法。
【請求項９】
データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、
前記複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置を備えるコンピュータに、
前記複数のデータストライプの何れかへの書き込み命令を取得し、更新対象ストライプおよび前記パリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、所定パリティ、前記所定データおよび前記更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む処理を実行させる、プログラム。
【請求項１０】
前記コンピュータに、前記更新対象ストライプにデータが書き込まれておらず、前記パリティストライプにパリティが書き込まれていれば、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、前記パリティストライプからパリティを読み出し、読み出したパリティ、前記所定データおよび更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む処理を実行させる、請求項９のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置、ディスクアレイシステム、制御方法、および、制御プログラム、特に、データおよびそのパリティを格納するディスクアレイ装置、ディスクアレイシステム、制御方法、および、制御プログラムに関する。
【背景技術】
【０００２】
サーバ本体装置に使用されるＨＤＤ（Hardware Disk Drive）やＳＳＤ(Solid State Drive)などのディスク装置は、障害に対するデータの安全性を確保するため、ＲＡＩＤ(Redundant Arrays of Independent Disks)を構築して運用されることが多い。
【０００３】
ＲＡＩＤ５やＲＡＩＤ６構成のディスクアレイ装置は、多数台のディスク装置を接続する場合、アクセス処理高速化のために、Read Modify Write（以降、ＲＭＷ）という技術を用いる。
【０００４】
ＲＡＩＤにはいくつか種類があるが、例として、ＲＡＩＤ５について説明する。ＲＡＩＤ５でデータを書き込む場合、ディスクアレイ装置のコントローラは、データを分割し、分割したデータからパリティを生成しこれらを各ディスク装置に書き込む。データは特定の大きさでディスク装置に書かれる。この書き込む単位はストライプと呼ばれる。
【０００５】
ｎ（ｎは３以上の整数）台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置は、ｎ−１台のディスク装置にデータを書き込み、残りの１台のディスク装置にパリティを書き込む。
【０００６】
図１は、３台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置（破線内）の概念図である。このディスクアレイ装置の図示されないコントローラは、ディスク装置１、ディスク装置２にデータを分散して書き込む。コントローラは、データをデータ１とデータ２に分割し、データ１をディスク装置１に、データ２をディスク装置２に書き込む。さらに、コントローラは、データ１、データ２から計算により生成したパリティをディスク装置３に書き込む。
【０００７】
データ１、データ２、パリティは、そのうちの何れか一つがディスク装置の障害で消失しても、他の２つから復元可能である。
【０００８】
図２は、４台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置（破線内）の概念図である。このディスクアレイ装置の図示されないコントローラは、３台（ディスク装置１乃至３）にデータを書き込み、残りの１台（ディスク装置４）にパリティを書き込む。
【０００９】
ここで、ディスク装置１のデータ１のみを上書きする場合、コントローラは、ディスク装置１に上書きするデータと、すでにディスク装置２と３に書かれているデータ２、データ３とからパリティを計算し、当該パリティをディスク装置４に書き込む。この場合、コントローラは、合計で以下の４回の読み書きを実行する。
【００１０】
ア) ディスク装置１にデータ１を書き込む。
【００１１】
イ) ディスク装置２のデータ２を読み込む。
【００１２】
ウ) ディスク装置３のデータ３を読み込む。
【００１３】
エ)読み込んだデータ２、３、および書き込んだデータ１から新たにパリティを生成し、ディスク装置４に書き込む。
【００１４】
次に、ＲＭＷについて説明する。図３は、４台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置におけるＲＭＷを説明する為の概念図である。ここで、３台のディスク装置（ディスク装置１乃至３）に格納されたデータ１、データ２、データ３から生成されたパリティが、残り１台のディスク装置（ディスク装置４）に書かれているとする。そして、データのうち、データ１のみが上書きされるとする。
【００１５】
ここでＲＭＷを実行する場合、コントローラは、以下の手順を実行する。
【００１６】
ア) ディスク装置１のデータ１を読み込む。
【００１７】
イ) ディスク装置４のパリティを読み込む。
【００１８】
ウ) ディスク装置１にデータを書き込む。
【００１９】
エ)読み出したデータ１、パリティ、およびディスク装置１に書き込むデータから新たにパリティを生成し、ディスク装置４に書き込む。
【００２０】
このように格納されているデータ（データ１乃至３）からパリティが生成されている場合は、コントローラは、データ２、データ３を読まずにパリティを生成する。４台のディスク装置でＲＭＷを実行すると、４回の読み書きが行われる。この回数は、ＲＭＷを実行せずにパリティを生成する場合と同じ回数である。
【００２１】
図４は、５台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置（破線内）の概念図である。ここで、４台のディスク装置（ディスク装置１乃至４）に格納されたデータ１、データ２、データ３、データ４から生成されたパリティが、残り１台のディスク装置（ディスク装置５）に書かれているとする。そして、データのうち、データ１のみが上書きされるとする。
【００２２】
ディスク装置１のデータ１のみをＲＭＷを使用しないで上書きする場合、コントローラは、ディスク装置１に上書きするデータと、ディスク装置２乃至４に書かれているデータ２、データ３、データ４とからパリティを計算し、パリティをディスク装置５に書き込む。この場合、コントローラは、合計で以下の５回の読み書きを実行する。
【００２３】
ア) ディスク装置１にデータ１を書き込む。
【００２４】
イ) ディスク装置２のデータ２を読み込む。
【００２５】
ウ) ディスク装置３のデータ３を読み込む。
【００２６】
エ）ディスク装置４のデータ４を読み込む。
【００２７】
エ)読み込んだデータ２、３、４、および書き込んだデータから新たにパリティを生成し、ディスク装置５に書き込む。
【００２８】
図５は、５台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置におけるＲＭＷを説明する為の概念図である。ここで、４台のディスク装置（ディスク装置１乃至４）に格納されたデータ１、データ２、データ３、データ４から生成されたパリティが、残り１台のディスク装置（ディスク装置５）に書かれているとする。そして、データのうち、データ１のみが上書きされるとする。
【００２９】
ここでＲＭＷを実行する場合、コントローラは、以下の手順を実行する。
【００３０】
ア) ディスク装置１のデータ１を読み込む。
【００３１】
イ) ディスク装置４のパリティを読み込む。
【００３２】
ウ) ディスク装置１にデータを書き込む。
【００３３】
エ)読み出したデータ１、パリティ、およびディスク装置１に書き込むデータから新たにパリティを生成し、ディスク装置５に書き込む。
【００３４】
このように格納されているデータ（データ１乃至４）からパリティが生成されている場合は、コントローラは、データ２、データ３、データ４を読まずにパリティを生成する。５台のディスク装置でＲＭＷを実行すると、４回の読み書きが行われる。この回数は、ＲＭＷを実行せずにパリティを生成する場合より一回少ない回数である。
【００３５】
このようにディスク装置が５台以上であって、書き込む箇所が少ない場合、ＲＭＷを使用した方が入出力の効率が良くなる場合がある。
【００３６】
上述のごとく、コントローラがＲＭＷを使用した場合、ＲＡＩＤを構成するディスク装置の数が増加しても、読み書きの回数は変わらない。そのため、ＲＡＩＤを構築するディスク装置の台数が５台以上になると書き込みの際にＲＭＷを使用した方が効率が良くなる場合がある。その場合、コントローラはＲＭＷを使用する。
【００３７】
ただし、ディスクアレイ装置がＲＭＷを使う為には、ディスク装置に書かれたデータを元にパリティが作成されている必要がある。すなわち、ＲＡＩＤの整合性が合っている必要がある。このため、ディスクアレイ装置は、システムセットアップ時に全面初期化作業を行い、全てのデータ、パリティを特定の値、例えば０、に設定することで整合性を合わせる。しかし、近年、ディスク装置の大容量化に伴い、この初期化時間が増大し、システムセットアップの時間がかかるという課題がある。
【００３８】
また、運用時にバックグランドで初期化作業を実行するディスクアレイ装置が存在する。この作業をBack Ground Initialization（以降ＢＧＩ）という。この場合、ＢＧＩが実行されると完了するまでＲＭＷが使用できず、さらにＢＧＩ処理でシステム性能が著しく低下するという課題がある。
【００３９】
特許文献１は、ディスク装置内のストライプのフォーマット処理を行いながらＲＭＷを実行するディスクアレイ装置を開示する。この装置は、フォーマット処理中に書き込み要求が有ると、対象となるストライプ列がフォーマット処理されていれば、ＲＭＷで書き込みを行うが、フォーマット処理されていなければ、フォーマット列単位に書き込みを行う。ここで、ストライプ列とは、複数のディスク装置上のデータ書き込み用のストライプと、他の一つのディスク装置上のパリティ書き込み用のストライプからなる、ストライプのグループである。
【００４０】
特許文献２は、パリティブロックに、パリティデータによって保護されている特定のパリティグループ内の位置を示す識別子を含むディスクアレイ装置を開示する。このディスクアレイ装置は、この情報を使用して書き込み時のディスクアクセス回数を削減する。
【先行技術文献】
【特許文献】
【００４１】
【特許文献１】特開２００３−２４１９０４号公報
【特許文献２】特開平０７−３０６７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００４２】
特許文献１のディスクアレイ装置は、フォーマット化されていないストライプ列の何れかのストライプにデータを書き込もうとするときは、ストライプ列内の全ストライプに書き込みを行う。すなわち、この場合、ディスクアレイ装置は、装置内でＲＡＩＤを構成するすべてのディスク装置に書き込みを行わなくてはならず、ＲＭＷが有する効率性を享受できない。
【００４３】
本発明は、上記課題を解決するディスクアレイ装置、ディスクアレイシステム、制御方法、および、制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００４４】
本発明の１実施の形態の制御装置は、データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、前記複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置と、前記複数のデータストライプの何れかへの書き込み命令を取得し、更新対象ストライプおよび前記パリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、所定パリティ、前記所定データおよび前記更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む制御手段と、を備える。
【００４５】
本発明の１実施の形態の方法は、データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、前記複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置における前記複数のデータストライプの何れかへの書き込み命令を取得し、更新対象ストライプおよび前記パリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、所定パリティ、前記所定データおよび前記更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む。
【００４６】
本発明の１実施の形態のプログラムは、データ書き込み用ストライプであるデータストライプを包含する複数のディスク装置と、前記複数のデータストライプに対するパリティ書き込み用ストライプであるパリティストライプを包含するディスク装置を備えるコンピュータに、前記複数のデータストライプの何れかへの書き込み命令を取得し、更新対象ストライプおよび前記パリティストライプにデータが書き込まれていなければ、所定データを更新対象データで修正し、修正後のデータを前記更新対象ストライプに書き込み、かつ、所定パリティ、前記所定データおよび前記更新対象データに基づいてパリティを生成し、生成したパリティを前記パリティストライプに書き込む処理を実行させる。
【発明の効果】
【００４７】
本発明にかかるディスクアレイ装置は、全ストライプの初期化を行わなくても、書き込みがなされていないストライプに対する書き込みも、既に書き込みがなされているストライプに対する書き込みも、ＲＭＷが有する効率性を達成する。
【図面の簡単な説明】
【００４８】
【図１】図１は、３台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置（破線内）の概念図である。
【図２】図２は、４台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置（破線内）の概念図である。
【図３】図３は、４台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置におけるＲＭＷを説明する為の概念図である。
【図４】図４は、５台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置（破線内）の概念図である。
【図５】図５は、５台のディスク装置で構成されるＲＡＩＤ５のディスクアレイ装置におけるＲＭＷを説明する為の概念図である。
【図６】図６は、第１の実施の形態にかかるディスクアレイシステム８０の構成図である。
【図７】図７はストライプ列を説明する概念図である。
【図８】図８は、ディスク装置６３に格納される情報を示す図である。
【図９】図９は、コンピュータ装置４０の構成図である。
【図１０】図１０は、制御部６２の動作概要を説明する為の概念図である。
【図１１】図１１は、制御部６２のデータ書き込み時の動作フローチャートである。
【図１２】図１２は、第２の実施の形態にかかるディスクアレイ装置６０の構成図である。
【発明を実施するための形態】
【００４９】
＜第１の実施の形態＞
＜構成＞
図６は、本実施の形態にかかるディスクアレイシステム８０の構成図である。ディスクアレイシステム８０は、相互に接続されたディスクアレイ装置６０と上位装置７０を包含する。ディスクアレイシステム８０は、複数のディスクアレイ装置６０と複数の上位装置７０を包含しても良い。さらに、ディスクアレイ装置６０が、その装置の構成要素として上位装置７０を取り込んでいても良い。
【００５０】
上位装置７０は、例えば、情報処理装置であり、ディスクアレイ装置６０に対してデータの書き込み、読み込みを行う。
【００５１】
ディスクアレイ装置６０は制御部６２と、ｎ（ｎは３以上の整数）台のディスク装置６３を備える。
【００５２】
制御部６２は、上位装置７０から入出力命令を受け付けて、ディスク装置６３に対する読み書きを実行する。また、制御部６２は、ｎ台のディスク装置６３が、ＲＡＩＤ、例えばＲＡＩＤ５、６、を構成するように制御する。
【００５３】
各ディスク装置６３は、書き込み、読み込みの単位である所定サイズのストライプ６４を１以上包含する。各ディスク装置６３のストライプ６４はストライプ列を構成する。図７はストライプ列を説明する概念図である。図７において、表中の各セルはストライプ６４を、各行は各ストライプ列を、各列は各ディスク装置６３を表す。
【００５４】
ストライプ列は、ストライプ６４のグループである。より具体的には、ストライプ列は、ｎ−１台のディスク装置６３上のデータ書き込み用ストライプ６４（以降、データストライプ６４）と、他の一つのディスク装置６３上のパリティ書き込み用ストライプ６４（以降、パリティストライプ６４）からなる。ここで、パリティは、ｎ−１個のデータストライプ６４に格納されているデータから作成される冗長データである。
【００５５】
ディスクアレイ装置６０が複数のストライプ列を包含するとき、各ストライプ列のパリティストライプ６４は同一のディスク装置６３、例えば、ディスク装置ｎ、に格納されていても良いし、図３が例示すように異なるディスク装置６３に格納されていても良い。図３の例において、ストライプ列１のパリティストライプ６４はディスク装置ｎに格納されているが、ストライプ列２のパリティストライプ６４はディスク装置ｎ−１に格納されている。
【００５６】
図８は、ディスク装置６３に格納される情報を示す図である。各ディスク装置６３は、各ストライプ６４及び、各ストライプ６４に関連付けてフラグ６５を格納している。フラグ６５は、例えば、ストライプ６４に一度も書き込みがされていない場合がオン、一度でも書き込みがされた場合をオフとする。なお、フラグ６５は、ディスクアレイ装置６０の立ち上げ時やディスク装置６３への最初のアクセス時に、ディスクアレイ装置６０の内部メモリに読み込まれていても良い。
【００５７】
ディスクアレイ装置６０の制御部６２は、ファームウェアを含む論理回路で実現できる。ディスク装置６３は、ＨＤＤやＳＳＤで実現できる。
【００５８】
更に、ディスクアレイ装置６０は、プログラム４３を備えるコンピュータ装置４０で実現することも出来る。
【００５９】
図９は、コンピュータ装置４０の構成図である。コンピュータ装置４０は、バス４５で相互に接続されたプロセッサ４１、主記憶部４２、補助記憶装置４４を備える。ここで、例えば、主記憶部４２は半導体メモリ、補助記憶装置４４はＨＤＤやＳＤＤである。主記憶部４２はプログラム４３を記憶している。
【００６０】
プログラム４３は、プロセッサ４１で実行されることにより、プロセッサ４１を制御部６２として機能させる。補助記憶装置４４は、そのまま、ディスク装置６３として使用できる。
【００６１】
なお、ディスクアレイ装置６０がコンピュータ装置４０で実現されるとき、プロセッサ４１はディスク装置６３に入出力を行う業務処理プログラムを実行しても良い。この場合、ディスクアレイ装置６０は、その装置内に上位装置７０を取り込んでいることになる。
【００６２】
＜動作＞
図１０は、制御部６２の動作概要を説明する為の概念図である。制御部６２は、ＲＭＷを実行するのが効率的と判断すると、ディスク装置６３上のデータを読む場合に、読み込み対象となるデータストライプ６４に関連付けられたフラグ６５を読む。当該フラグ６５がオフなら、制御部６２は、実際にディスク装置６３に書かれているデータを読む。しかし、当該フラグ６５がオンなら、制御部６２は、実際にディスク装置６３に書かれているデータを読まずに０が書かれているとみなす（図中ア））。さらに、制御部６２は、読み込み対象となるデータストライプ６４の属するストライプ列のパリティストライプ６４に関連付けられたフラグ６５を読む。当該フラグ６５がオフなら、制御部６２は、実際にディスク装置６３に書かれているパリティを読む。しかし、当該フラグ６５がオンなら、制御部６２は、実際にディスク装置６３に書かれているパリティを読まずに０が書かれているとみなす（図中イ））。
【００６３】
制御部６２は、ディスク装置６３にデータを書き込んだ場合、書き込んだデータストライプ６４に関連付けられたフラグ６５がオンならばオフにする（図中ウ））。さらに、制御部６２は、ディスク装置６３にパリティを書き込んだ場合、書き込んだパリティストライプ６４に関連付けられたフラグ６５がオンならばオフにする（図中エ））。
【００６４】
一度データが書かれたデータストライプ６４に関連付けられたフラグ６５は、その後はオフのままである。なお、フラグ６５は、ディスクアレイ装置６０のリセット時や、上位装置７０からの指示が有ったときオンに再設定される。
【００６５】
この方法により、全面初期化やＢＧＩを実行しなくても、制御部６２は、初めて書き込みが行われるストライプ６４に対しても、ＲＭＷと同等の効率的なデータ更新を行うことができる。
【００６６】
なお、突然の電源断等の障害により、ストライプ６４やフラグ６５の更新が完了せず、ストライプ６４とフラグ６５に不整合が生じる可能性がある。これは、図中のア）からエ）までの一連の作業が完了せずに作業が中断するような場合である。その対策として、制御部６２は、障害が取り除かれ電源が正常になった時点で、再度、図中のア）から作業を開始し、エ）までの作業を実施する。
【００６７】
図１１は、制御部６２のデータ書き込み時の動作フローチャートである。この動作は、上位装置７０が、ディスクアレイ装置６０に書き込み命令を発行した時に開始される。上位装置７０の書き込み命令は、書き込み対象となるデータストライプ６４のアドレスと、書き込みデータを指定する。
【００６８】
まず、制御部６２は、上位装置７０から書き込み命令を受信し（Ｓ１）、ＲＭＷを使った方が効率的かどうか判断する（Ｓ２）。制御部６２は、この判断を、公知の方法で行えば良い。
【００６９】
ＲＭＷを使用しない方が効率的と判断した場合（Ｓ２でＮＯ）、制御部６２は、通常の書き込みを行う（Ｓ１１）。但し、制御部６２は、書き込み後に、フラグ６５の確認と更新を行う（Ｓ１２）。すなわち、制御部６２は、書き込みを行ったストライプ６４のフラグ６５がオンの場合は、オフに更新する。
【００７０】
ＲＭＷを使った方が効率的と判断した場合（Ｓ２でＹＥＳ）、制御部６２は、更新対象のデータストライプ６４のフラグ６５、及び、パリティストライプ６４のフラグ６５の確認を行う（Ｓ５）。すなわち、制御部６２は、書き込み命令で指定された書き込み対象データストライプ６４に関連付けられたフラグ６５、及び、当該データストライプ６４と同じストライプ列に属するパリティストライプ６４に関連付けられたフラグ６５を読み込んで値を検査する。
【００７１】
両フラグ６５がオフであった場合（Ｓ５でオフ／オフ）、制御部６２は、ＲＭＷを実行する。制御部６２は、公知の方法でこのＲＭＷを実行すればよい。
【００７２】
すなわち、制御部６２は、まず、データストライプ６４、及び、パリティストライプ６４の両方から、ディスク装置６３に書き込まれている情報を読み込む（Ｓ９）。そして制御部６２は、読み込んだデータ、読み込んだパリティ、書き込み命令で指定された書き込みデータから、更新データと更新パリティを生成する（Ｓ１０）。その後、制御部６２は、生成した更新データをデータストライプ６４に、更新パリティをパリティストライプ６４に書き込む（Ｓ５）。
【００７３】
ＲＭＷの実行後、制御部６２は、書き込んだデータストライプ６４とパリティストライプ６４のフラグ６５をオフにする（Ｓ６）。すなわち、制御部６２は、書き込みを行ったストライプ６４のフラグ６５がオンの場合は、オフに更新する。ここで、制御部６２は、受け取った書き込み命令の処理を終了する。
【００７４】
両フラグ６５がオンであった場合（Ｓ５でオン／オン）、制御部６２は、データストライプ６４、および、パリティストライプ６４のどちらからも、ディスク装置６３に書き込まれている情報の読み込みを行わない。制御部６２は、所定データ、所定パリティ、書き込み命令で指定された書き込みデータから、更新データと更新パリティを生成し（Ｓ１０）、前述した書き込み（Ｓ５）とフラグ６５をオフにする処理（Ｓ６）を行い、処理を終了する。
【００７５】
なお、所定データ、所定パリティは、例えば、ともにストライプ６４のサイズのゼロ値データである。所定データ、所定パリティは、データおよびパリティとして整合性が有れば、これらの値に限られない。すなわち、所定パリティの値が、ストライプ列の各データストライプ６４に所定データが格納されている場合に生成されるパリティと同じになっていればよい。
【００７６】
データストライプ６４のフラグ６５がオン、パリティストライプ６４のフラグ６５がオフであった場合（Ｓ５でオン／オフ）、制御部６２は、パリティストライプ６４からパリティの読み出しを行う（Ｓ７）。一方、制御部６２は、データストライプ６４からは、ディスク装置６３に書き込まれている情報の読み込みは行わない。この理由は、ストライプ列の他のデータストライプ６４にデータが書き込まれてはいるが、今回の書き込み対象データストライプ６４には、未だ書き込みがなされていないからである。
【００７７】
その後、制御部６２は、所定データ、読み込んだパリティ、書き込み命令で指定された書き込みデータから、更新データと更新パリティを生成し（Ｓ１０）、前述した書き込み（Ｓ５）とフラグ６５をオフにする処理（Ｓ６）を行い、処理を終了する。
【００７８】
＜効果＞
本実施の形態にかかるディスクアレイ装置６０は、全ストライプ６４の初期化を行わなくても、書き込みがなされていないストライプ６４に対する書き込みも、既に書き込みがなされているストライプ６４に対する書き込みも、ＲＭＷが有する効率性を達成する。すなわち、制御部６２は、更新対象とならないデータストライプ６４の読み込みを省略できる。
【００７９】
したがって、本実施の形態にかかるディスクアレイ装置６０は、ＢＧＩを行うことなく、システムのセットアップに費やす時間を大幅に削減することが可能となる。
【００８０】
その理由は、制御部６２が、書き込みがなされていないストライプ６４には、所定のデータとそれと整合性のある所定のパリティが格納されていたかのように動作するからである。
【００８１】
＜第２の実施形態＞
図１２は、本実施の形態にかかるディスクアレイ装置６０の構成図である。
【００８２】
ディスクアレイ装置６０は、データ書き込み用ストライプ６４であるデータストライプ６４を包含する複数のディスク装置６３を備える。ディスクアレイ装置６０は、当該複数のデータストライプ６４に対するパリティ書き込み用ストライプ６４であるパリティストライプ６４を包含するディスク装置６３も備える。
【００８３】
さらに、ディスクアレイ装置６０は、制御部６２も備える。制御部６２は、複数のデータストライプ６４の何れかへの書き込み命令を取得し、更新対象のデータストライプ６４およびパリティストライプ６４にデータが書き込まれていなければ、所定データを更新対象データで修正する。その後、制御部６２は、修正後のデータを更新対象のデータストライプ６４に書き込み、かつ、所定パリティ、所定データおよび更新対象データに基づいてパリティを生成し、生成したパリティをパリティストライプ６４に書き込む。
【００８４】
本実施の形態にかかるディスクアレイ装置６０は、全ストライプ６４の初期化を行わなくても、書き込みがなされていないストライプ６４に対する書き込みも、既に書き込みがなされているストライプ６４に対する書き込みも、ＲＭＷが有する効率性を達成する。すなわち、制御部６２は、更新対象とならないデータストライプ６４の読み込みを省略できる。
【００８５】
したがって、本実施の形態にかかるディスクアレイ装置６０は、ＢＧＩを行うことなく、システムのセットアップに費やす時間を大幅に削減することが可能となる。
【００８６】
その理由は、制御部６２が、書き込みがなされていないストライプ６４には、所定のデータとそれと整合性のある所定のパリティが格納されていたかのように動作するからである。
【００８７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８８】
４０    コンピュータ装置
４１    プロセッサ
４２    主記憶部
４３    プログラム
４４    補助記憶装置
４５    バス
６０    ディスクアレイ装置
６２    制御部
６３    ディスク装置
６４    ストライプ
６４    データストライプ
６４    パリティストライプ
６５    フラグ
７０    上位装置
８０    ディスクアレイシステム
【図１】
2017054303.tif 000003
【図２】
2017054303.tif 000004
【図３】
2017054303.tif 000005
【図４】
2017054303.tif 000006
【図５】
2017054303.tif 000007
【図６】
2017054303.tif 000008
【図７】
2017054303.tif 000009
【図８】
2017054303.tif 000010
【図９】
2017054303.tif 000011
【図１０】
2017054303.tif 000012
【図１１】
2017054303.tif 000013
【図１２】
2017054303.tif 000014