(57)【要約】  処理時間の短縮および処理負荷の軽減を図ることができる。  データ格納用の複数のデータ格納領域（２ａ，２ｂ）を備えるストレージ装置（３）の、データ格納領域（２ａ，２ｂ）の読み書きチェックを行うコンピュータ（１）は以下の機能を有する。データチェック手段（４）は、データ格納領域（２ａ，２ｂ）毎に設けられるフラグ（５ａ，５ｂ）を参照し、データの有無を判断する。  データ読み書き手段（６）は、データの存在しないデータ格納領域（２ｂ）についてはデータの読み込み動作を行わない。
2008126169.tif 000002
【特許請求の範囲】
【請求項１】
データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックを行うストレージ管理プログラムにおいて、
コンピュータを、
前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断するデータチェック手段、
前記データの存在しない前記データ格納領域については前記データの読み込み動作を行わないデータ読み書き手段、
として機能させることを特徴とするストレージ管理プログラム。
【請求項２】
前記コンピュータは、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されることを特徴とする請求の範囲第１項記載のストレージ管理プログラム。
【請求項３】
前記データ読み書き手段は、前記データの存在する前記データ格納領域については前記データの書き込み動作および書き込み動作を行い、前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行うことを特徴とする請求の範囲第１項記載のストレージ管理プログラム。
【請求項４】
前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求の範囲第１項記載のストレージ管理プログラム。
【請求項５】
前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求の範囲第１項記載のストレージ管理プログラム。
【請求項６】
前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求の範囲第５項記載のストレージ管理プログラム。
【請求項７】
データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックをコンピュータが行うストレージ管理方法において、
データチェック手段が、前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断し、
データ読み書き手段が、前記データの存在しない前記データ格納領域については前記データの読み込み動作を行わない、
ことを特徴とするストレージ管理方法。
【請求項８】
前記コンピュータは、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されることを特徴とする請求の範囲第７項記載のストレージ管理方法。
【請求項９】
前記データ読み書き手段は、前記データの存在する前記データ格納領域については前記データの書き込み動作および書き込み動作を行い、前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行うことを特徴とする請求の範囲第７項記載のストレージ管理方法。
【請求項１０】
前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求の範囲第７項記載のストレージ管理方法。
【請求項１１】
前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求の範囲第７項記載のストレージ管理方法。
【請求項１２】
前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求の範囲第１１項記載のストレージ管理方法。
【請求項１３】
データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックを行うストレージ管理装置において、
前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断するデータチェック手段と、
前記データの存在しない前記データ格納領域については前記データの読み込み動作を行わないデータ読み書き手段と、
を有することを特徴とするストレージ管理装置。
【請求項１４】
前記コンピュータは、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されることを特徴とする請求の範囲第１項記載のストレージ管理装置。
【請求項１５】
前記データ読み書き手段は、前記データの存在する前記データ格納領域については前記データの書き込み動作および書き込み動作を行い、前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行うことを特徴とする請求の範囲第１項記載のストレージ管理装置。
【請求項１６】
前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求の範囲第１項記載のストレージ管理装置。
【請求項１７】
前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求の範囲第１項記載のストレージ管理プログラム。
【請求項１８】
前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求の範囲第１７項記載のストレージ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置に関し、特に、データ格納用の複数のデータ格納領域を備えるストレージ装置の、データ格納領域の読み書きチェックを行うストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置に関する。
【背景技術】
【０００２】
磁気ディスク装置においては、データを格納している領域に色々な要因でバッドブロック（不良セクタ）と呼ばれる不良箇所が発生する。バッドブロックが発生すると、そこに格納されていたデータが読み出せなくなってしまうため、ボリュームチェックを行う。ボリュームチェックでは、バッドブロックを見つけ、その不良箇所を報告したり、代替領域で置き換えたりするためにディスク全体に対してリード／ライトを行う。運用が始まった後ではデータをリードできるか確認し、リードできればデータを実際リードし、そのデータをライトするといったことを行う。このようなチェックを行った後に、データ管理を容易にするための制御方法も知られている（例えば、特許文献１参照）。
【特許文献１】特開２００５−２９３１１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、実際には有効なデータが入っていない領域に対しては、リードを行う必要はなく、ライトだけでよい。しかしながら従来の方法では、有効なデータが入っていない領域に対しても、データの存在確認を行うことなく常に有効なデータがあるものとして処理を行っていた。そのため、処理時間が長く、処理の負荷も増大するという問題があった。【０００４】
本発明はこのような点に鑑みてなされたものであり、処理時間の短縮および処理負荷の軽減を図ることができるストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明では上記問題を解決するために、図１に示すような処理をコンピュータ１に実行させるためのストレージ管理プログラムが提供される。
本発明に係るストレージ管理プログラムは、データ格納用の複数のデータ格納領域２ａ，２ｂを備えるストレージ装置３の、データ格納領域２ａ，２ｂの読み書きチェックを行うプログラムである。【０００６】
このストレージ管理プログラムを実行するコンピュータ１は以下の機能を有する。
データチェック手段４は、データ格納領域２ａ，２ｂ毎に設けられるフラグ５ａ，５ｂを参照し、データの有無を判断する。【０００７】
データ読み書き手段６は、データの存在しないデータ格納領域２ｂについてはデータの読み込み動作を行わない。
このようなストレージ管理プログラムによれば、データチェック手段４により、データ格納領域２ａ，２ｂ毎に設けられるフラグ５ａ，５ｂが参照され、データの有無が判断される。データ読み書き手段６により、データの存在しないデータ格納領域２ｂについてはデータの読み込み動作が行われない。
【発明の効果】
【０００８】
本発明によれば、読み書きチェック時に、データの存在しないデータ格納領域についてはデータの読み込み動作を行わないようにしたので、迅速かつ効率的なチェックを行うことができる。また、チェックの負荷を軽減することができ、消費電力を節減することができる。【０００９】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の概要を示す図である。
【図２】本実施の形態の分散ストレージシステム構成例を示す図である。
【図３】本実施の形態に用いるストレージノードのハードウェア構成例を示す図である。
【図４】論理ボリュームのデータ構造を示す図である。
【図５】スライスの構成を示す図である。
【図６】分散ストレージシステムの各装置の機能を示すブロック図である。
【図７】スライス管理情報のデータ構造例を示す図である。
【図８】スライス管理情報群記憶部のデータ構造例を示す図である。
【図９】第１のメディアチェック方法を示すフローチャートである。
【図１０】データ有スライスのメディアチェックを示すフローチャートである。
【図１１】データ無スライスのメディアチェックを示すフローチャートである。
【図１２】第２のメディアチェック方法におけるコントロールノードの処理を示すフローチャートである。
【図１３】通知を受けたストレージノードによるメディアチェックを示すフローチャートである。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。【００１２】
コンピュータ１は、ストレージ装置３にデータの読み書きを行うストレージノードを構成している。
コンピュータ１は、データチェック手段４とデータ読み書き手段６とを有している。【００１３】
データチェック手段４とデータ読み書き手段６とは、読み書きチェック（ボリュームチェック）時に動作する。
データチェック手段４は、ストレージ装置３におけるデータ毎の複数のデータ格納領域２ａ，２ｂ毎に設けられるフラグ５ａ，５ｂを参照し、データの有無を判断する。ここでデータ格納領域に格納されるデータは、コンピュータ１が、外部から書き込み要求とともに受け取ったデータである。コンピュータ１は、データ格納領域２ａ，２ｂにデータを書き込む際に、対応するフラグ５ａ，５ｂを「有」に設定する。図１では、データ格納領域２ａのみにデータが格納されている。【００１４】
データ読み書き手段６は、データチェック手段４から受け取った情報を参照し、データの存在しないデータ格納領域２ｂについてはデータの読み込み動作を行わない。すなわち、データが格納されていないデータ格納領域２ｂについてはデータの読み出し動作のみを行う。【００１５】
このようなストレージ管理プログラムによれば、データチェック手段４により、データ格納領域２ａ，２ｂ毎に設けられるフラグ５ａ，５ｂが参照され、データの有無が判断される。データ読み書き手段６により、データの存在しないデータ格納領域２ｂについてはデータの読み込み動作が行われない。【００１６】
以下、本発明の実施の形態を説明する。
図２は、本実施の形態の分散ストレージシステム構成例を示す図である。
本実施の形態では、ネットワーク１０を介して、複数のストレージノード１００，２００，３００，４００、コントロールノード５００、およびアクセスノード６００が接続されている。ストレージノード１００，２００，３００，４００それぞれには、ストレージ装置１１０，２１０，３１０，４１０が接続されている。【００１７】
ストレージ装置１１０には、複数のハードディスク装置（ＨＤＤ）１１１，１１２，１１３，１１４が実装されている。ストレージ装置２１０には、複数のＨＤＤ２１１，２１２，２１３，２１４が実装されている。ストレージ装置３１０には、複数のＨＤＤ３１１，３１２，３１３，３１４が実装されている。ストレージ装置４１０には、複数のＨＤＤ４１１，４１２，４１３，４１４が実装されている。各ストレージ装置１１０，２１０，３１０，４１０は、内蔵するＨＤＤを用いたＲＡＩＤシステムである。本実施の形態では、各ストレージ装置１１０，２１０，３１０，４１０のＲＡＩＤ５のディスク管理サービスを提供する。【００１８】
ストレージノード１００，２００，３００，４００は、例えば、ＩＡ（Intel Architecture）と呼ばれるアーキテクチャのコンピュータである。ストレージノード１００，２００，３００，４００は、接続されたストレージ装置１１０，２１０，３１０，４１０に格納されたデータを管理し、管理しているデータをネットワーク１０経由で端末装置２１，２２，２３に提供する。また、ストレージノード１００，２００，３００，４００は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも２つのストレージノードで管理されている。【００１９】
さらに、ストレージノード１００，２００，３００，４００は、二重化したデータの整合性をチェックする二重化保全処理を行う。なお、ストレージノード１００，２００，３００，４００は個々の判断に基づいてデータ二重化保全処理を行ってもよいし、外部からの指示によりデータ二重化保全処理を行ってもよい。本実施の形態では、コントロールノード５００からの指示により二重化保全処理を行うものとする。以下、このデータ二重化保全処理をパトロールと呼ぶ。【００２０】
パトロールでは、二重化したそれぞれのデータを保持するストレージノード同士が互いに通信し合い、冗長性のあるデータの整合性がチェックされる。その際、あるストレージノードで管理されているデータで不具合が検出されれば、他のストレージノードの対応するデータを用いてデータの復旧が行われる。【００２１】
コントロールノード５００は、ストレージノード１００，２００，３００，４００を管理する。例えば、コントロールノード５００は、所定のタイミングで、各ストレージノード１００，２００，３００，４００に対してパトロールの指示を出力する。【００２２】
アクセスノード６００には、ネットワーク２０を介して複数の端末装置２１，２２，２３が接続されている。アクセスノード６００は、ストレージノード１００，２００，３００，４００それぞれが管理しているデータの格納場所を認識しており、端末装置２１，２２，２３からの要求に応答して、ストレージノード１００，２００，３００，４００へデータアクセスを行う。【００２３】
図３は、本実施の形態に用いるストレージノードのハードウェア構成例を示す図である。
ストレージノード１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ＨＤＤインタフェース１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。【００２４】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。【００２５】
ＨＤＤインタフェース１０３には、ストレージ装置１１０が接続されている。ＨＤＤインタフェース１０３は、ストレージ装置１１０に内蔵されたＲＡＩＤコントローラ１１５と通信し、ストレージ装置１１０に対するデータの入出力を行う。ストレージ装置１１０内のＲＡＩＤコントローラ１１５は、ＲＡＩＤ０〜５の機能を有し、複数のＨＤＤ１１１〜１１４をまとめて１台のハードディスクとして管理する。【００２６】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。【００２７】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。【００２８】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、ストレージノード１００とストレージ装置１１０との構成のみを示したが、他のストレージノード２００，３００，４００や他のストレージ装置２１０，３１０，４１０も同様のハードウェア構成で実現できる。【００２９】
さらに、コントロールノード５００、アクセスノード６００、および端末装置２１〜２３も、ストレージノード１００とストレージ装置１１０との組合せと同様のハードウェア構成で実現できる。ただし、コントロールノード５００、アクセスノード６００、および端末装置２１〜２３については、ストレージ装置１１０のようなＲＡＩＤシステムではなく、単体のＨＤＤがＨＤＤコントローラに接続されていてもよい。【００３０】
図２に示すように、複数のストレージノード１００，２００，３００，４００がネットワーク１０に接続され、それぞれのストレージノード１００，２００，３００，４００は他のストレージノードとの間で通信を行う。この分散ストレージシステムは、端末装置２１〜２３に対して、仮想的なボリューム（以下、論理ボリュームと呼ぶ）として機能する。【００３１】
図４は、論理ボリュームのデータ構造を示す図である。
論理ボリューム７００には、「ＬＶＯＬ−Ａ」という識別子（論理ボリューム識別子）が付与されている。また、ネットワーク経由で接続された４台のストレージ装置１１０，２１０，３１０，４１０には、個々のストレージノードの識別のためにそれぞれ「ＤＰ−１」、「ＤＰ−２」、「ＤＰ−３」、「ＤＰ−４」というノード識別子が付与されている。【００３２】
各ストレージノード１００，２００，３００，４００が有するストレージ装置１１０，２１０，３１０，４１０それぞれにおいてＲＡＩＤ５の論理ディスクが構成されている。この論理ディスクは５つのスライスに分割され個々のストレージノード内で管理されている。【００３３】
図４の例では、ストレージ装置１１０内の記憶領域は、５つのスライス１２１〜１２５に分けられている。ストレージ装置２１０内の記憶領域は、５つのスライス２２１〜２２５に分けられている。ストレージ装置３１０内の記憶領域は、５つのスライス３２１〜３２５に分けられている。ストレージ装置４１０内の記憶領域は、５つのスライス４２１〜４２５に分けられている。【００３４】
なお、論理ボリューム７００は、セグメント７１０，７２０，７３０，７４０という単位で構成される。セグメント７１０，７２０，７３０，７４０の記憶容量は、ストレージ装置１１０，２１０，３１０，４１０における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が１ギガバイトとするとセグメントの記憶容量も１ギガバイトである。論理ボリューム７００の記憶容量はセグメント１つ当たりの記憶容量の整数倍である。セグメントの記憶容量が１ギガバイトならば、論理ボリューム７００の記憶容量は４ギガバイトといったものになる。【００３５】
セグメント７１０，７２０，７３０，７４０は、それぞれプライマリスライス７１１，７２１，７３１，７４１とセカンダリスライス７１２，７２２，７３２，７４２との組から構成される。同じセグメントに属するスライスは別々のストレージノードに属する。個々のスライスを管理する領域には論理ボリューム識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリ等を表す値が格納される。【００３６】
図４の例では、スライスの識別子を、「Ｐ」または「Ｓ」のアルファベットと数字との組合せで示している。「Ｐ」はプライマリスライスであることを示している。「Ｓ」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、１番目のセグメント７１０のプライマリスライスが「Ｐ１」で示され、セカンダリスライスが「Ｓ１」で示される。【００３７】
このような構造の論理ボリューム７００の各プライマリスライスおよびセカンダリスライスが、ストレージ装置１１０，２１０，３１０，４１０内のいずれかのスライスに対応付けられる。例えば、セグメント７１０のプライマリスライス７１１は、ストレージ装置４１０のスライス４２４に対応付けられ、セカンダリスライス７１２は、ストレージ装置２１０のスライス２２２に対応付けられている。【００３８】
そして、各ストレージ装置１１０，２１０，３１０，４１０では、自己のスライスに対応するプライマリスライスまたはセカンダリスライスのデータを記憶する。
図５は、スライスの構成を示す図である。【００３９】
図５に示すスライスＳＬ１は、複数のブロックを有している。各ブロックの容量は、例えば５１２Ｂ（バイト）程度である。データのリード／ライトは、ブロック単位で行われる。すなわち、各分散データの格納単位であるスライスの、対応するブロック毎にリード／ライトが行われる。【００４０】
図６は、分散ストレージシステムの各装置の機能を示すブロック図である。
アクセスノード６００は、論理ボリュームアクセス制御部６１０を有している。論理ボリュームアクセス制御部６１０は、端末装置２１，２２，２３からの論理ボリューム７００内のデータを指定したアクセス要求に応じて、対応するデータを管理するストレージノードに対してデータアクセスを行う。具体的には、論理ボリュームアクセス制御部６１０は、論理ボリューム７００の各セグメントのプライマリスライスまたはセカンダリスライスと、ストレージ装置１１０，２１０，３１０，４１０内のスライスとの対応関係を記憶している。そして、論理ボリュームアクセス制御部６１０は、端末装置２１，２２，２３からセグメント内のデータアクセスの要求を受け取ると、該当するセグメントのプライマリスライスに対応するスライスを有するストレージ装置に対してデータアクセスを行う。【００４１】
コントロールノード５００は、論理ボリューム管理部５１０とスライス管理情報群記憶部５２０とを有している。
論理ボリューム管理部５１０は、ストレージノード１００，２００，３００，４００が有するストレージ装置１１０，２１０，３１０，４１０内のスライスを管理する。例えば、論理ボリューム管理部５１０は、システム起動時に、ストレージノード１００，２００，３００，４００に対してスライス管理情報取得要求を送信する。そして、論理ボリューム管理部５１０は、スライス管理情報取得要求に対して返信されたスライス管理情報を、スライス管理情報群記憶部５２０に格納する。【００４２】
また、論理ボリューム管理部５１０は、論理ボリューム７００におけるセグメントごとに、パトロールを実行するタイミングを管理する。パトロールは、所定の時間間隔で実行したり、あらかじめスケジュールされた時刻に実行したりする。また、分散ストレージシステムの負荷状況を監視し、負荷が少ない時間にパトロールを実行することもできる。論理ボリューム管理部５１０は、パトロールの実行時間になると、実行対象のセグメントのプライマリスライスを管理するストレージノードに対して、パトロール実行指示を送信する。【００４３】
スライス管理情報群記憶部５２０は、ストレージノード１００，２００，３００，４００から収集されたスライス管理情報を記憶する記憶装置である。例えば、コントロールノード５００内のＲＡＭの記憶領域の一部がスライス管理情報群記憶部５２０として使用される。【００４４】
ストレージノード１００は、データアクセス部１３０、データ管理部１４０、およびスライス管理情報記憶部１５０を有している。
データアクセス部１３０は、アクセスノード６００からの要求に応答して、ストレージ装置１１０内のデータにアクセスする。具体的には、データアクセス部１３０は、アクセスノード６００からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置１１０から取得し、アクセスノード６００に送信する。また、データアクセス部１３０は、アクセスノード６００からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置１１０内に格納する。【００４５】
また、データアクセス部１３０は、バッドブロック（不良セクタ）の発生を検出するためのメディアチェックを行う。このメディアチェックの方法については、後に詳述する。なお、データアクセス部１３０が、データチェック手段およびデータ読み書き手段の主要部を構成している。【００４６】
データ管理部１４０は、ストレージ装置１１０内のデータを管理する。具体的には、データ管理部１４０はコントロールノード５００からの指示に従って、ストレージ装置１１０内のデータのパトロールを行う。パトロールを行う場合、データ管理部１４０は、チェック対象のプライマリスライスに対応するセカンダリスライスを管理する他のストレージノードに対して、チェック要求メッセージを送信する。また、データ管理部１４０は、他のストレージノードからチェック要求メッセージを受け取ると、指定されたスライス内のデータのパトロールを行う。【００４７】
さらに、データ管理部１４０は、論理ボリューム管理部５１０からのスライス管理情報取得要求に応答して、スライス管理情報記憶部１５０に記憶されたスライス管理情報を論理ボリューム管理部５１０に対して送信する。【００４８】
スライス管理情報記憶部１５０は、スライス管理情報を記憶する記憶装置である。例えば、ＲＡＭ１０２内の記憶領域の一部がスライス管理情報記憶部１５０として使用される。【００４９】
なお、スライス管理情報記憶部１５０に格納されるスライス管理情報は、システム停止時にはストレージ装置１１０内に格納され、システム起動時にスライス管理情報記憶部１５０に読み込まれる。【００５０】
他のストレージノード２００，３００，４００は、ストレージノード１００と同様の機能を有している。すなわち、ストレージノード２００は、データアクセス部２３０、データ管理部２４０、およびスライス管理情報記憶部２５０を有している。ストレージノード３００は、データアクセス部３３０、データ管理部３４０、およびスライス管理情報記憶部３５０を有している。ストレージノード４００は、データアクセス部４３０、データ管理部４４０、およびスライス管理情報記憶部４５０を有している。ストレージノード２００，３００，４００内の各要素は、ストレージノード１００内の同名の要素と同じ機能を有している。【００５１】
図７は、スライス管理情報のデータ構造例を示す図である。
スライス管理情報記憶部１５０に格納されたスライス管理情報は、テーブル化されて格納されている。【００５２】
スライス管理テーブル１５１には、ＳＩＤ（スライスＩＤ）、ＦＬＡＧ、ＰＤＥＶ、ＬＢＡ、ＳＩＺＥ、ＡＴＴＲの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。【００５３】
ＳＩＤの欄には、スライスを一意に識別するスライスＩＤが格納される。
ＦＬＡＧの欄には、スライスを管理する領域から取得したフラグが格納される。フラグには、「Ｐｒｉｍ」、「Ｓｅｃ」および「Ｆｒｅｅ」がある。「Ｐｒｉｍ」は、データが存在し、かつ、そのデータを格納しているスライスがプライマリスライスであることを意味し、「Ｓｅｃ」は、データが存在し、かつ、そのデータを格納しているスライスがセカンダリスライスであることを意味する。以下、「Ｐｒｉｍ」および「Ｓｅｃ」を「データ有」という。「Ｆｒｅｅ」は、データが存在しないことを意味する。以下、「Ｆｒｅｅ」を「データ無」という。【００５４】
ＰＤＥＶの欄には、スライスが存在するデバイス名が格納される。
ＬＢＡの欄には、スライス開始位置（開始ブロック）が格納される。
ＳＩＺＥの欄には、スライスサイズ（ブロック数）が格納される。【００５５】
ＡＴＴＲの欄には、スライスが備えるその他の属性（例えば、スライスＩＤのアクセス時刻等の情報）が格納される。
同様のスライス管理テーブルが、他のストレージノード２００，３００，４００のスライス管理情報記憶部２５０，３５０，４５０にも格納されている。【００５６】
コントロールノード５００は、システム起動時に各ストレージノード１００，２００，３００，４００からスライス管理情報を収集し、スライス管理情報群記憶部５２０に格納する。【００５７】
図８は、スライス管理情報群記憶部のデータ構造例を示す図である。
スライス管理情報群記憶部５２０には、収集したスライス管理情報のうち、メディアチェックに必要な部分情報１５２，２５２，３５２，４５２が格納されている。なお、図８では、部分情報３５２の図示を省略している。部分情報１５２はストレージノード１００から取得したものである。部分情報２５２はストレージノード２００から取得したものである。部分情報３５２はストレージノード３００から取得したものである。部分情報４５２はストレージノード４００から取得したものである。【００５８】
以上のような構成の分散ストレージシステムにおいて、データアクセス部１３０，２３０，３３０，４３０により、ストレージノード１００，２００，３００，４００のメディアチェックが実施される。ストレージノード１００，２００，３００，４００のメディアチェックは、以下の２つの方法のいずれかにより実行することができる。【００５９】
＜第１のメディアチェック方法＞
第１のメディアチェック方法は、データアクセス部１３０，２３０，３３０，４３０が、それぞれ独立してストレージノード１００，２００，３００，４００のメディアチェックを行う方法である。以下、代表的にストレージノード１００のメディアチェックについて説明する。【００６０】
図９は、第１のメディアチェック方法を示すフローチャートである。
まず、パラメータとして用意したＩｎｄｅｘを０に初期化する（ステップＳ１１）。
次に、Ｉｎｄｅｘの値がスライス管理テーブル１５１に格納されているスライスの個数（テーブルサイズ）に等しいか否かを判断する（ステップＳ１２）。【００６１】
Ｉｎｄｅｘの値がスライスの個数に等しい場合（ステップＳ１２のＹｅｓ）、ステップＳ１１に移行して、それ以降の処理を繰り返す。
Ｉｎｄｅｘの値がスライスの個数に等しくない場合、すなわちスライスの個数未満の場合（ステップＳ１２のＮｏ）、スライス管理テーブル１５１の、Ｉｎｄｅｘの値に該当するスライスＩＤのＦＬＡＧの欄が「データ有」か否かを判断する（ステップＳ１３）。【００６２】
「データ有」の場合（ステップＳ１３のＹｅｓ）、そのスライスＩＤを備えるスライスに対しデータ有メディアチェックを行う（ステップＳ１４）。データ有メディアチェックが終了すると、ステップＳ１２に移行してそれ以降の処理を繰り返す。一方、「データ有」ではない場合（ステップＳ１３のＮｏ）、そのスライスＩＤを備えるスライスに対しデータ無メディアチェックを行う（ステップＳ１５）。データ無メディアチェックが終了すると、ステップＳ１２に移行してそれ以降の処理を繰り返す。【００６３】
なお、本実施の形態では、メディアチェックを行い続ける例（ステップＳ１２のＹｅｓの場合、ステップＳ１１に移行して動作を継続する例）について説明したが、本発明はこれに限らず、例えば、Ｉｎｄｅｘの値がスライスの個数に等しい場合、動作を終了し、他の処理との関係でＣＰＵの負荷が所定値以下になった場合に動作を再開するようにしてもよい。【００６４】
次に、データ有メディアチェックについて説明する。
図１０は、データ有スライスのメディアチェックを示すフローチャートである。
まず、スライス管理テーブル１５１のＩｎｄｅｘの値に該当するスライスＩＤを、（チェック）対象スライスとする（ステップＳ２１）。【００６５】
次に、パラメータとして用意したチェック用ＬＢＡ（以下、「ＣＨＫＬＢＡ」という）に、チェック対象スライスのＬＢＡの欄の値を代入する（ステップＳ２２）。
次に、ＣＨＫＬＢＡの値からＣＨＫＳＩＺＥ分のブロックに格納されたデータをリードする（ステップＳ２３）。例えば、図７のスライスＩＤ「１０００」の場合、最終的には１００番目のブロックから１０２４個分のブロックのデータをチェックしなければならない。１０２４個分のブロックのデータすべてを同時にリードしてもよいが、負荷等の要因も考慮してＣＨＫＳＩＺＥを１０２４の約数としてもよい。具体的には１２８や２５６等をＣＨＫＳＩＺＥとする。【００６６】
次に、リードしたデータを用いて再びチェック対象スライスにライトする（ステップＳ２４）。
次に、ＣＨＫＬＢＡの値にＣＨＫＳＩＺＥの値を加えた値を新たなＣＨＫＬＢＡの値とする（ステップＳ２５）。【００６７】
次に、ＣＨＫＬＢＡの値が、チェック対象スライスのＬＢＡの欄の値にチェック対象スライスのＳＩＺＥの欄の値の和に等しいか否かを判断する（ステップＳ２６）。
等しくない場合（ステップＳ２６のＮｏ）、ステップＳ２３に移行し、それ以降の処理を繰り返す。【００６８】
一方、等しい場合（ステップＳ２６のＹｅｓ）、データ有メディアチェックを終了する。
次に、データ無スライスのメディアチェックについて説明する。【００６９】
図１１は、データ無スライスのメディアチェックを示すフローチャートである。
ステップＳ３１、Ｓ３２：ステップＳ２１、Ｓ２２とそれぞれ同様の処理を行う。
次に、データ初期値（ＮＵＬＬ値等）をチェック対象スライスにライトする（ステップＳ３３）。【００７０】
ステップＳ３４、Ｓ３５：ステップＳ２５、Ｓ２６とそれぞれ同様の処理を行う。
＜第２のメディアチェック方法＞
第２のメディアチェック方法は、コントロールノード５００がメディアチェックの指示を出し、データアクセス部１３０，２３０，３３０，４３０は、この指示によってメディアチェックを行う点が第１のメディアチェックと異なっている。【００７１】
図１２は、第２のメディアチェック方法におけるコントロールノードの処理を示すフローチャートである。
まず、コントロールノード５００が、メディアチェックを行うスライスを選択する（ステップＳ４１）。【００７２】
次に、選択されたスライスを備えるストレージ装置に対応するストレージノードに、選択したスライスＩＤを通知する（ステップＳ４２）。
その後、通知したストレージノードからの応答を所定時間待機する（ステップＳ４３）。【００７３】
コントロールノード５００は、上記ステップＳ４１〜Ｓ４３の動作を繰り返し行う。
次に、通知を受けたストレージノードによるメディアチェックについて説明する。
図１３は、通知を受けたストレージノードによるメディアチェックを示すフローチャートである。【００７４】
まず、コントロールノード５００が送信したスライスＩＤを受け取る（ステップＳ５１）。
次に、受け取ったスライスＩＤのＦＬＡＧの欄が「データ有」か否かを判断する（ステップＳ５２）。【００７５】
「データ有」の場合（ステップＳ５２のＹｅｓ）、そのスライスＩＤを備えるスライスに対しデータ有メディアチェックを行う（ステップＳ５３）。チェックが終了すると、コントロールノード５００に応答を返す（ステップＳ５５）。以上でメディアチェックを終了する。【００７６】
一方、「データ有」ではない場合（ステップＳ５２のＮｏ）、そのスライスＩＤを備えるスライスに対しデータ無メディアチェックを行う（ステップＳ５４）。チェックが終了すると、コントロールノード５００に応答を返す（ステップＳ５５）。以上でメディアチェックを終了する。【００７７】
ところで、分散ストレージシステムでは、メディアチェックによりバッドブロックが発見された場合は、「データ有」と「データ無」によって、それぞれバッドブロックへの対処が行われる。【００７８】
データ有りスライスの場合には、リードした結果バッドブロックを検出すれば、それをレポートする。ストレージ装置内でバッドブロック中にあったデータを回復できるのであればストレージ装置がデータをブロック再割当とともにデータを回復させる。ストレージ装置内でデータ回復できなければ前述したパトロールを行うことによりデータを回復させる。リードした結果バッドブロックを検出しなければ、リードしたデータをそのままそのスライスへ書き込む。これは、リードでは触ることのできないミラー領域（ＲＡＩＤ１の場合）やパリティ領域（ＲＡＩＤ５の場合）を担当しているディスクやディスクの一部に触るためである。書き込みを行うことにより、ミラー領域やパリティ領域にバッドブロックがあった場合には例えばブロックの再割当を発生させることができる。【００７９】
データ無スライスの場合でも、データ初期値を書き込むことによりバッドブロックがあった場合にはブロックの再割当を発生させることができる。
以上述べたように、本実施の形態の分散ストレージシステムによれば、データアクセス部１３０，２３０，３３０，４３０それぞれが、ストレージ装置１１０，２１０，３１０，４１０のデータアクセス時にデータ有スライスの場合は、リードおよびライトを行い、データ無スライスの場合は、リードを行わず、ライトのみを行うようにしたので、システム全体のチェックの効率化または省電力化を図ることができる。【００８０】
また、第１のメディアチェック方法によれば、コントロールノード５００の指示を仰ぐことなく、ストレージノード自身でメディアチェックを行うことができるため、システムにおける処理を簡易なものとすることができる。【００８１】
また、第２のメディアチェック方法によれば、ある論理ボリュームのプライマリやセカンダリを重点的にチェックしたい等、目的に応じてシステム全体を考慮したメディアチェックを行うことができる。また、コントロールノード５００がストレージノード１００，２００，３００，４００それぞれでのメディアチェック状況を管理することにより、システムの状況を考慮した各ストレージノードの運用、例えば、ある処理によってシステム全体の負荷が高い場合、１つまたは複数のストレージノードに対してメディアチェックを控える指示を出すことにより、システムの負荷を下げること等を容易に行うことができる。【００８２】
以上、本発明のストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。【００８３】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、本実施の形態では、メディアチェックを分散ストレージシステムに適用した場合について説明したが、本発明は、これに限らず、冗長性がないボリューム（通常の物理ディスクやＪＢＯＤ（Just a Bunch Of Disks）等）にも適用することができる。この場合において、データありスライスの場合、リードした結果バッドブロックを検出すれば、それをレポートするよう構成するのが好ましい。データなしスライスの場合、ｎｕｌｌ値等でライトし、バッドブロックを検出すれば別の領域にあるブロックを割り当てるよう構成するのが好ましい。リードしてからｎｕｌｌ値等でライトしてもよいが、リードしなくてもよい。【００８４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージノード１００，２００，３００，４００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。【００８５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【００８６】
ストレージ管理プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。【００８７】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【００８８】
１  コンピュータ
２ａ，２ｂ  データ格納領域
３  ストレージ装置
４  データチェック手段
５ａ，５ｂ  フラグ
６  データ読み書き手段
２１，２２，２３  端末装置
１００，２００，３００，４００  ストレージノード
１１０，２１０，３１０，４１０  ストレージ装置
１３０，２３０，３３０，４３０  データアクセス部
１４０，２４０，３４０，４４０  データ管理部
１５０，２５０，３５０，４５０  スライス管理情報記憶部
１５１  スライス管理テーブル
１５２，２５２，３５２，４５２  部分情報
５００  コントロールノード
５１０  論理ボリューム管理部
５２０  スライス管理情報群記憶部
６００  アクセスノード
６１０  論理ボリュームアクセス制御部
７００  論理ボリューム
【図１】
2008126169.tif 000003
【図２】
2008126169.tif 000004
【図３】
2008126169.tif 000005
【図４】
2008126169.tif 000006
【図５】
2008126169.tif 000007
【図６】
2008126169.tif 000008
【図７】
2008126169.tif 000009
【図８】
2008126169.tif 000010
【図９】
2008126169.tif 000011
【図１０】
2008126169.tif 000012
【図１１】
2008126169.tif 000013
【図１２】
2008126169.tif 000014
【図１３】
2008126169.tif 000015
【手続補正書】
【提出日】平成21年4月21日(2009.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックを行うストレージ管理プログラムにおいて、
前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されるコンピュータを、
前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断するデータチェック手段、
前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行い、前記データの存在する前記データ格納領域については前記データの読み込み動作および書き込み動作を行うデータ読み書き手段、
として機能させることを特徴とするストレージ管理プログラム。
【請求項２】
前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求項１記載のストレージ管理プログラム。
【請求項３】
前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求項１または２記載のストレージ管理プログラム。
【請求項４】
前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求項３記載のストレージ管理プログラム。
【請求項５】
データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックをコンピュータが行うストレージ管理方法において、
前記ストレージ装置に前記データの読み書きを行うストレージノードで構成された前記コンピュータが、
前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断し、
前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行い、前記データの存在する前記データ格納領域については前記データの読み込み動作および書き込み動作を行う、
ことを特徴とするストレージ管理方法。
【請求項６】
データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックを行い、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されるストレージ管理装置において、
前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断するデータチェック手段と、
前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行い、前記データの存在する前記データ格納領域については前記データの読み込み動作および書き込み動作を行うデータ読み書き手段と、
を有することを特徴とするストレージ管理装置。
【国際調査報告】
2008126169.tif 000016
2008126169.tif 000017
2008126169.tif 000018
2008126169.tif 000019