(57)【要約】【課題】フラッシュメモリとＨＤＤを用いたハイブリッド構成のディスクアレイのデータ入出力性能を向上させる。【解決手段】本発明に係るディスクアレイ構成プログラムを実行するコンピュータは、ファイルをハードディスクからフラッシュメモリに再配置する際に、ファイルサイズがフラッシュメモリのブロックサイズより小さい場合は、ファイルをフラッシュメモリに即座に書き込まずにキャッシュメモリに格納しておく。【選択図】図８
2011209973.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリとハードディスクを備えた記憶装置上にディスクアレイを構成する処理をコンピュータに実行させるプログラムであって、
前記コンピュータに、
前記記憶装置をディスクアレイとして構成するディスクアレイ構成ステップと、
前記記憶装置上のファイルに対するアクセスを前記フラッシュメモリと前記ハードディスクに振り分ける振分ステップと、
前記ハードディスクから前記フラッシュメモリにファイルを再配置する再配置ステップと、
を実行させ、
前記再配置ステップでは、前記コンピュータに、
前記ファイルのファイルサイズと前記フラッシュメモリのブロックサイズを比較するステップと、
前記ファイルサイズが前記ブロックサイズより小さい場合は前記ファイルを前記フラッシュメモリに即座に書き込まずにキャッシュメモリに格納しておくステップと、
を実行させることを特徴とするディスクアレイ構成プログラム。
【請求項２】
前記ディスクアレイ構成ステップでは、前記コンピュータに、
前記フラッシュメモリと前記ハードディスクを統合する単一の仮想的な共通ディスクドライブを構成させ、
前記振分ステップでは、前記コンピュータに、
前記共通ディスクドライブに対するアクセスを前記フラッシュメモリと前記ハードディスクに振り分けさせる
ことを特徴とする請求項１記載のディスクアレイ構成プログラム。
【請求項３】
前記振分ステップでは、前記コンピュータに、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複、または排他して保持させる
ことを特徴とする請求項１記載のディスクアレイ構成プログラム。
【請求項４】
前記振分ステップにおいて前記記憶装置上のディレクトリを操作する場合、前記コンピュータに、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複して保持させるか否かによらず、前記フラッシュメモリと前記ハードディスクともに同じディレクトリ構成を作成させる
ことを特徴とする請求項１記載のディスクアレイ構成プログラム。
【請求項５】
前記コンピュータに、
前記記憶装置上に格納されているファイルに対するアクセスを監視してアクセス頻度を取得する監視ステップを実行させ、
前記再配置ステップでは、前記コンピュータに、
アクセス頻度が所定閾値以上のファイルを前記フラッシュメモリに再配置させる
ことを特徴とする請求項１記載のディスクアレイ構成プログラム。
【請求項６】
前記再配置ステップでは、前記コンピュータに、
前記ファイルサイズが前記ブロックサイズ以上である場合は前記ファイルを前記フラッシュメモリに即座に書き込むステップを実行させる
ことを特徴とする請求項１記載のディスクアレイ構成プログラム。
【請求項７】
前記コンピュータに、
前記所定閾値の指定を受け取ってその指定値を反映するステップと、
前記再配置ステップを実行する条件の指定を受け取ってその指定条件を前記再配置ステップの実行タイミングとして反映するステップと、
前記アクセス頻度をメモリ上に保持する時間の指定を受け取ってその指定時間を反映するステップと、
前記アクセス頻度をメモリ上に保持する量の指定を受け取ってその指定量を反映するステップと、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複して保持させるか否かの指定を受け取ってその指定を前記振分ステップの実行条件として反映するステップと、
を実行させることを特徴とする請求項５記載のディスクアレイ構成プログラム。
【請求項８】
前記コンピュータに、
前記記憶装置に対するアクセスを捕捉するフィルタドライバの機能として前記監視ステップ、前記振分ステップ、および前記再配置ステップを実行させる
ことを特徴とする請求項５記載のディスクアレイ構成プログラム。
【請求項９】
フラッシュメモリとハードディスクを備えた記憶装置上にディスクアレイを構成する計算機であって、
前記記憶装置をディスクアレイとして構成するディスクアレイ構成部と、
前記記憶装置上のファイルに対するアクセスを前記フラッシュメモリと前記ハードディスクに振り分ける振分部と、
前記ハードディスクから前記フラッシュメモリにファイルを再配置する再配置部と、
を備え、
前記再配置部は、
前記ファイルのファイルサイズと前記フラッシュメモリのブロックサイズを比較し、
前記ファイルサイズが前記ブロックサイズより小さい場合は前記ファイルを前記フラッシュメモリに即座に書き込まずにキャッシュメモリに格納する
ことを特徴とする計算機。
【請求項１０】
前記ディスクアレイ構成部は、
前記フラッシュメモリと前記ハードディスクを統合する単一の仮想的な共通ディスクドライブを構成し、
前記振分部は、
前記共通ディスクドライブに対するアクセスを前記フラッシュメモリと前記ハードディスクに振り分ける
ことを特徴とする請求項９記載の計算機。
【請求項１１】
前記振分部は、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複、または排他して保持する
ことを特徴とする請求項９記載の計算機。
【請求項１２】
前記振分部は、前記記憶装置上のディレクトリを操作する場合、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複して保持するか否かによらず、前記フラッシュメモリと前記ハードディスクともに同じディレクトリ構成を作成する
ことを特徴とする請求項９記載の計算機。
【請求項１３】
前記記憶装置上に格納されているファイルに対するアクセスを監視してアクセス頻度を取得する監視部を備え、
前記再配置部は、
アクセス頻度が所定閾値以上のファイルを前記フラッシュメモリに再配置する
ことを特徴とする請求項９記載の計算機。
【請求項１４】
前記再配置部は、
前記ファイルサイズが前記ブロックサイズ以上である場合は前記ファイルを前記フラッシュメモリに即座に書き込む
ことを特徴とする請求項９記載の計算機。
【請求項１５】
フラッシュメモリとハードディスクを備えた記憶装置と、
前記記憶装置上にディスクアレイを構成するＲＡＩＤコントローラと、
前記記憶装置に対してデータを書き込みまたは前記記憶装置からデータを読み込む計算機と、
を有する計算機システムであって、
前記計算機は、
前記記憶装置をディスクアレイとして構成するディスクアレイ構成部と、
前記記憶装置上のファイルに対するアクセスを前記フラッシュメモリと前記ハードディスクに振り分ける振分部と、
前記ハードディスクから前記フラッシュメモリにファイルを再配置する再配置部と、
を備え、
前記再配置部は、
前記ファイルのファイルサイズと前記フラッシュメモリのブロックサイズを比較し、
前記ファイルサイズが前記ブロックサイズより小さい場合は前記ファイルを前記フラッシュメモリに即座に書き込まずにキャッシュメモリに格納する
ことを特徴とする計算機システム。
【請求項１６】
前記ディスクアレイ構成部は、
前記フラッシュメモリと前記ハードディスクを統合する単一の仮想的な共通ディスクドライブを構成し、
前記振分部は、
前記共通ディスクドライブに対するアクセスを前記フラッシュメモリと前記ハードディスクに振り分ける
ことを特徴とする請求項１５記載の計算機システム。
【請求項１７】
前記振分部は、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複、または排他して保持する
ことを特徴とする請求項１５記載の計算機システム。
【請求項１８】
前記振分部は、前記記憶装置上のディレクトリを操作する場合、
前記フラッシュメモリと前記ハードディスクで同じファイルを重複して保持するか否かによらず、前記フラッシュメモリと前記ハードディスクともに同じディレクトリ構成を作成する
ことを特徴とする請求項１５記載の計算機システム。
【請求項１９】
前記記憶装置上に格納されているファイルに対するアクセスを監視してアクセス頻度を取得する監視部を備え、
前記再配置部は、
アクセス頻度が所定閾値以上のファイルを前記フラッシュメモリに再配置する
ことを特徴とする請求項１５記載の計算機システム。
【請求項２０】
前記再配置部は、
前記ファイルサイズが前記ブロックサイズ以上である場合は前記ファイルを前記フラッシュメモリに即座に書き込む
ことを特徴とする請求項１５記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイを構成する技術に関するものである。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリを記憶媒体に用いたＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）などのフラッシュデバイス（以下ＳＳＤ）は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）に比べ入出力性能が約３０倍と非常に高速なドライブである。ＳＳＤの登場により、従来よりも高速なディスクアレイ（ＲＡＩＤ：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ（ｏｒ  Ｉｎｄｅｐｅｎｄｅｎｔ）  Ｄｉｓｋｓ）の実現が可能になった。しかし、ＳＳＤは、記憶容量当りの価格がＨＤＤに比べて約５倍と非常に高い。また、ＳＳＤは、記憶容量がＨＤＤに比べて約５分の１から１０分の１と非常に小さい。そのため、ＳＳＤのみでディスクアレイ（ＲＡＩＤ）を構成することは、コストパフォーマンスが悪く現実的ではない。
【０００３】
そこで、ＳＳＤとＨＤＤを混載したハイブリッド構成を用いることにより、ＳＳＤの高い入出力性能を引き出し、かつコストパフォーマンスの良いディスクアレイを実現することを考える。
【０００４】
例えば、下記特許文献１では、ＳＳＤからなるディスクアレイとＨＤＤからなる２つのディスクアレイを仮想的なファイルシステムによって統合することにより、ユーザアプリケーションに対して１つのディスクアレイとして提示している。また同文献では、統合されたファイルシステムのファイルに対するアクセス頻度を収集し、そのデータを基にデータをＳＳＤ側に移動させた場合のコストとメリットを計算し、２つのディスクアレイの間で動的にファイルを移動させる。これらの処理により、頻繁に利用されるファイルが自動的にＳＳＤに集約され、見かけ上ディスクアレイが高速化される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国公開特許第２００９／０２６５５０６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に記載の技術では、データの入出力が発生する度、必要に応じて通常の入出力に並行してＳＳＤとＨＤＤの間でファイルを移動させる。そのため、動的にファイル再配置が行なわれることによって余分なデータ入出力が発生し、入出力性能に少なからぬ影響を与える。
【０００７】
また、ＳＳＤでは一般的に複数のページが集まって１つのブロックを構成している。書き込み／読み込み処理はページ単位で行なわれ、消去処理はブロック単位で行われる。そのため、あるブロックＡの１ページを書き換えようとした場合、ブロックＡの書き換え箇所直前までの領域を別のあるブロックＢへコピーし、書き換えたいページをブロックＢの該当箇所へ書き込み、ブロックＡの書き換え箇所直後からブロック終端までの領域をブロックＢへコピーし、最後にブロックＡを消去する、という操作が必要になる。このように、ＳＳＤ上でファイルを再配置すると、データの書き込み、消去操作が多く発生するため、通常使用時に比べてＳＳＤのデータ書換え耐力を早く消費する。ＳＳＤは、メモリセルの書換え耐力が約１０万回とＨＤＤに比べて非常に低い。従来の方法ではこの点が考慮されていなかったため、ＳＳＤの寿命を縮め、結果的にコストパフォーマンスの低下に繋がる可能性がある。
【０００８】
本発明は、上記のような課題を解決するためになされたものであり、フラッシュメモリとＨＤＤを用いたハイブリッド構成のディスクアレイのデータ入出力性能を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るディスクアレイ構成プログラムを実行するコンピュータは、ファイルをハードディスクからフラッシュメモリに再配置する際に、ファイルサイズがフラッシュメモリのブロックサイズより小さい場合は、ファイルをフラッシュメモリに即座に書き込まずにキャッシュメモリに格納しておく。
【発明の効果】
【００１０】
本発明に係るディスクアレイ構成プログラムによれば、ファイルをフラッシュメモリに再配置する際に、小サイズのファイルは即座に書き込まずにキャッシュしておくので、フラッシュメモリに対する書込み回数を削減することができる。これにより、ファイル再配置に係るパフォーマンスを向上させるとともに、フラッシュメモリのデータ書換え耐力を長持ちさせることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るディスクアレイ構成プログラムを実行するコンピュータ１００の機能ブロック図である。
【図２】再配置ファイル一覧表１１４の構成とデータ例を示す図である。
【図３】ファイルアクセス頻度表１１５の構成とデータ例を示す図である。
【図４】ＳＳＤブロックサイズ定義表１１６の構成とデータ例を示す図である。
【図５】フィルタドライバ１１７が記憶装置３００に対するアクセスを論理ドライブ（Ｐ）３１０に対するアクセスに統一する動作フローを示す。
【図６】図５のステップＳ５０３の詳細フローである。
【図７】図５のステップＳ５０４の詳細フローである。
【図８】ファイル再配置指示ＯＳサービス１１２の動作フローを示す図である。
【図９】ＳＳＤのブロックサイズを取得する動作フローである。
【図１０】ファイル再配置実行モジュール１１７ｃの動作フローである。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るディスクアレイ構成プログラムを実行するコンピュータ１００の機能ブロック図である。コンピュータ１００は、主記憶装置１１０、ＣＰＵ１２０を備える。コンピュータ１００には、ＲＡＩＤコントローラカード２００が接続されている。ＲＡＩＤコントローラカード２００には、記憶装置３００が接続されている。
【００１３】
記憶装置３００上には、ＲＡＩＤデバイスドライバ１１８の機能によってディスクアレイが構成される。コンピュータ１００は、例えばパリティ演算などの演算負荷の大きい処理の一部をＲＡＩＤコントローラカード２００に委譲する。
【００１４】
主記憶装置１１０には、システム設定インタフェース１１１、ファイル再配置指示ＯＳ（オペレーティングシステム）サービス１１２、システム設定情報１１３、再配置ファイル一覧表１１４、ファイルアクセス頻度表１１５、ＳＳＤブロックサイズ定義表１１６、フィルタドライバ１１７、ＲＡＩＤデバイスドライバ１１８が格納される。また必要に応じて、ＯＳカーネル、ファイルシステムドライバなどのソフトウェアが読み込まれる。
【００１５】
システム設定インタフェース１１１は、コンピュータ１００のユーザがディスクアレイの動作に係るパラメータを設定するためのプログラムである。設定内容はシステム設定情報１１３に格納される。例えば、ＳＳＤとＨＤＤで同一のファイルを重複保持するか否かなどを設定することができる。
【００１６】
ファイル再配置指示ＯＳサービス１１２は、後述の図８で説明する動作フローを実行し、記憶装置３００が備えるＳＳＤとＨＤＤの間でファイルを再配置するよう指示するための再配置ファイル一覧表１１４を作成する。
【００１７】
再配置ファイル一覧表１１４、ファイルアクセス頻度表１１５、ＳＳＤブロックサイズ定義表１１６の詳細は、後述の図２〜図４で改めて説明する。
【００１８】
フィルタドライバ１１７は、ファイルシステムのエントリポイントと実際のファイルシステム処理の間で動作し、記憶装置３００に対するアクセスを捕捉することができるプログラムである。フィルタドライバ１１７は、ファイルアクセス振分けモジュール１１７ａ、ファイルアクセス監視モジュール１１７ｂ、ファイル再配置実行モジュール１１７ｃを有する。これらのモジュールの詳細は後述する。これらのモジュールは、必要に応じていずれか２以上を一体的に構成してもよいし、個別のプログラムモジュールとして構成してもよい。また、フィルタドライバ１１７本体の機能として実装してもよい。
【００１９】
フィルタドライバ１１７は、論理ドライブ（Ｐ）３１０、および論理ドライブ（Ｑ）３２０に対するファイルアクセスを検出し、論理ドライブ（Ｐ）３１０に対するアクセスに一本化する。ファイルアクセスの検出は、ファイルシステム操作を行なうシステムコールをトラップすることにより実現する。Ｗｉｎｄｏｗｓ（登録商標）の場合、フィルタドライバ１１７を利用することにより、アクセス要求がファイルシステムのエントリポイントから実際のファイルシステムの処理に渡る前の段階で制御を得ることができる。Ｌｉｎｕｘの場合、ＶＦＳ（Ｖｉｒｔｕａｌ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）の直下に一段レイヤーを挿入することにより、同様の処理が可能である。
【００２０】
ＲＡＩＤコントローラカード２００は、ＲＡＩＤファームウェア２１０を有する。コンピュータ１００は、ＲＡＩＤデバイスドライバ１１８を介してＲＡＩＤファームウェア２１０が提供する機能を利用する。
【００２１】
ＲＡＩＤファームウェア２１０は、ＳＳＤを用いて構成されている論理ドライブ（Ｐ）３１０と、ＨＤＤを用いて構成されている論理ドライブ（Ｑ）３２０を管理する。フィルタドライバ１１７より上位の層に対しては、論理ドライブ（Ｑ）３２０は隠蔽され、論理ドライブ（Ｐ）３１０のみが提示される。これについては後述の図５で改めて説明する。
【００２２】
論理ドライブ（Ｐ）３１０には、論理ドライブ（Ｐ）３１０に存在する全てのファイルＩＤの一覧情報であるファイル一覧表３３０が格納される。
【００２３】
本発明に係る「ディスクアレイ構成プログラム」は、システム設定インタフェース１１１、ファイル再配置指示ＯＳサービス１１２、フィルタドライバ１１７、ＲＡＩＤデバイスドライバ１１８が相当する。これらプログラムは、必要に応じていずれか２以上を一体的に構成してもよいし、個別のプログラムモジュールとして構成してもよい。また、ＲＡＩＤファームウェア２１０に相当する機能を、ＲＡＩＤコントローラカード２００内ではなくコンピュータ１００内に保持するようにしてもよい。
【００２４】
以下の説明では、記載の便宜上、各プログラムを動作主体とする場合があるが、実際に各プログラムを実行するのはＣＰＵ１２０であることを付言しておく。
【００２５】
ＲＡＩＤカード２００は、記憶装置３００に対して書き込むデータを一時的に保持するライトキャッシュを備える。また、記憶装置３００内のＳＳＤおよびＨＤＤも、同様の役割を有するライトキャッシュ３４０を備える。
【００２６】
図２は、再配置ファイル一覧表１１４の構成とデータ例を示す図である。再配置ファイル一覧表１１４は、ＳＳＤとＨＤＤの間で再配置する対象となるファイル一覧を保持するテーブルであり、Ｎｏ列１１４１、ファイルＩＤ列１１４２、デバイスＩＤ列１１４３、キャッシュ操作列１１４４を有する。
【００２７】
Ｎｏ列１１４１は、再配置ファイル一覧表１１４が保持するレコードを識別するための番号を保持する。ファイルＩＤ列１１４２は、再配置する対象となる記憶装置３００上のファイルを識別するための識別子を保持する。デバイスＩＤ列１１４３は、ファイルＩＤ列１１４２の値で識別されるファイルを格納しているディスク装置の識別子を保持する。キャッシュ操作列１１４４は、ファイルＩＤ列１１４２の値で識別されるファイルをキャッシュメモリに格納するか否かを示すフラグである。
【００２８】
図３は、ファイルアクセス頻度表１１５の構成とデータ例を示す図である。ファイルアクセス頻度表１１５は、記憶装置３００が格納しているファイルに対するアクセス頻度を記録するテーブルであり、Ｎｏ列１１５１、ファイルＩＤ列１１５２、デバイスＩＤ列１１５３、アクセス回数列１１５４、ファイルサイズ列１１５５、最終アクセス時刻列１１５６を有する。
【００２９】
Ｎｏ列１１５１は、ファイルアクセス頻度表１１５が保持するレコードを識別するための番号を保持する。ファイルＩＤ列１１５２は、アクセス頻度を記録する対象となる記憶装置３００上のファイルを識別するための識別子を保持する。デバイスＩＤ列１１５３は、ファイルＩＤ列１１５２の値で識別されるファイルを格納しているディスク装置の識別子を保持する。アクセス回数列１１５４は、ファイルＩＤ列１１５２の値で識別されるファイルに対するアクセス回数を保持する。ファイルサイズ列１１５５は、ファイルＩＤ列１１５２の値で識別されるファイルのファイルサイズ（例えばＢｙｔｅ単位）を保持する。最終アクセス時刻列１１５６は、ファイルＩＤ列１１５２の値で識別されるファイルが最後にアクセスされた時刻を保持する。
【００３０】
図４は、ＳＳＤブロックサイズ定義表１１６の構成とデータ例を示す図である。ＳＳＤブロックサイズ定義表１１６は、記憶装置３００が備えるＳＳＤのブロックサイズを記述したテーブルであり、デバイスＩＤ列１１６１、ベンダ名列１１６２、製品名列１１６３、ブロックサイズ列１１６４を有する。
【００３１】
デバイスＩＤ列１１６１は、記憶装置３００が備えるＳＳＤの識別子を保持する。ベンダ名列１１６２と製品名列１１６３は、デバイスＩＤ列１１６１の値で識別されるＳＳＤの製造ベンダ名と製品名を保持する。ブロックサイズ列１１６４は、デバイスＩＤ列１１６１の値で識別されるＳＳＤのブロックサイズ（例えばＢｙｔｅ単位）を保持する。
【００３２】
以上、図１に示す構成について説明した。次に、図１に示す各プログラムの動作について説明する。
【００３３】
図５は、フィルタドライバ１１７が記憶装置３００に対するアクセスを論理ドライブ（Ｐ）３１０に対するアクセスに統一する動作フローを示す。本動作フローにより、ＯＳに対して提示する論理ドライブを論理ドライブ（Ｐ）３１０に一本化し、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０を、仮想的な単一の論理ドライブであるかのように振舞わせることを図る。以下、図５の各ステップについて説明する。
（図５：ステップＳ５０１）
フィルタドライバ１１７は、記憶装置３００上のファイルに対するアクセス要求をトラップする。
【００３４】
（図５：ステップＳ５０２）
フィルタドライバ１１７は、ステップＳ５０１でトラップしたアクセス要求が論理ドライブ（Ｑ）３２０に対するものであるか否かを判定する。論理ドライブ（Ｑ）３２０に対するアクセス要求である場合は、何もせずに本動作フローを終了する。論理ドライブ（Ｐ）３１０に対するアクセス要求である場合は、ステップＳ５０３へ進む。
（図５：ステップＳ５０２：補足）
本ステップは、記憶装置３００に対する最初のアクセス窓口を論理ドライブ（Ｐ）３１０に一本化する意義がある。論理ドライブ（Ｑ）３２０に対するアクセスは、次のステップＳ５０３において実行される。
【００３５】
（図５：ステップＳ５０３）
フィルタドライバ１１７は、後述の図６で説明する、ファイルアクセス振分けモジュール１１７ａの機能を実行する。
（図５：ステップＳ５０４）
フィルタドライバ１１７は、後述の図７で説明する、ファイルアクセス監視モジュール１１７ｂの機能を実行する。
【００３６】
図６は、図５のステップＳ５０３の詳細フローである。ステップＳ５０３は、論理ドライブ（Ｐ）３１０に対するアクセス要求を、論理ドライブ（Ｐ）３１０または論理ドライブ（Ｑ）３２０いずれかに振り分けるステップである。以下、図６の各ステップについて説明する。
（図６：ステップＳ６０１）
ファイルアクセス振分けモジュール１１７ａは、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求が、オープン要求／ライト要求／ディレクトリ操作要求のいずれであるかを判定する。アクセス要求がこれらのいずれかであればステップＳ６０２へ進み、いずれでもなければ本動作フローを終了する。
【００３７】
（図６：ステップＳ６０２）
ファイルアクセス振分けモジュール１１７ａは、論理ドライブ（Ｐ）３１０、すなわちＳＳＤを用いて構成されている論理ドライブに対して、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求を発行する。
【００３８】
（図６：ステップＳ６０３）
ファイルアクセス振分けモジュール１１７ａは、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求が、ディレクトリ操作要求であるか否かを判定する。ディレクトリ操作要求であればステップＳ６０７へ進み、ディレクトリ操作要求でなければステップＳ６０４へ進む。
（図６：ステップＳ６０３：補足）
ディスクアレイにおいては、ディスク装置間で同様のファイルシステム構成を維持するため、各ディスク装置が同様のディレクトリ構成を備えている必要がある。そこで、論理ドライブ（Ｐ）３１０に対してディレクトリ操作を行なう場合、論理ドライブ（Ｑ）３２０でも同様のディレクトリ操作を行なうため、本ステップを設けた。論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０で同じファイルを重複保持するよう設定していないとしても、何らかの契機にファイルが論理ドライブ（Ｑ）３２０へ再配置される可能性があるので、重複保持するか否かによらず各ドライブは同一のディレクトリ構成を備えるものとする。
【００３９】
（図６：ステップＳ６０４）
ファイルアクセス振分けモジュール１１７ａは、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求がデータ書込み要求であり、かつ論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０で同じファイルを重複保持するように、システム設定情報１１３内で設定されているか否かを判定する。同条件に該当する場合はステップＳ６０７へ進み、該当しない場合はステップＳ６０５へ進む。
（図６：ステップＳ６０５）
ファイルアクセス振分けモジュール１１７ａは、ステップＳ６０２で論理ドライブ（Ｐ）３１０のファイルシステムに対して発行したアクセス要求の処理結果を取得する。
【００４０】
（図６：ステップＳ６０６）
ファイルアクセス振分けモジュール１１７ａは、ステップＳ６０２で論理ドライブ（Ｐ）３１０のファイルシステムに対して発行したアクセス要求の処理結果がエラーであるか否かを判定する。エラーである場合はステップＳ６０７へ進み、エラーでなければ本動作フローを終了する。
（図６：ステップＳ６０６：補足）
例えば論理ドライブ（Ｐ）３１０に空き容量がないのにデータを書き込もうとした場合や、論理ドライブ（Ｐ）３１０内に存在しないファイルに対してオープン要求を発行した場合には、本ステップでエラーが通知される。本ステップの結果として、論理ドライブ（Ｐ）３１０に対するアクセス要求がまず優先的に処理され、上記理由などによって処理を続行できないときは論理ドライブ（Ｑ）３２０に対してアクセスが振り分けられることになる。
【００４１】
（図６：ステップＳ６０７）
ファイルアクセス振分けモジュール１１７ａは、論理ドライブ（Ｑ）３２０、すなわちＨＤＤを用いて構成されている論理ドライブに対して、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求を発行する。
（図６：ステップＳ６０７：補足）
本ステップでＨＤＤに対してアクセス要求が発行されるパターンは、（ａ）ディレクトリ操作要求、（ｂ）ファイルを重複保持する場合、（ｃ）ＳＳＤに対してアクセス要求を発行したがエラーであった場合、の３パターンがある。
【００４２】
図７は、図５のステップＳ５０４の詳細フローである。ステップＳ５０４は、記憶装置３００に対するアクセスを監視し、アクセス頻度の統計を取得してファイルアクセス頻度表１１５に記録するステップである。以下、図７の各ステップについて説明する。
（図７：ステップＳ７０１）
ファイルアクセス監視モジュール１１７ｂは、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求が、論理ドライブ（Ｑ）３２０内のファイルに対するオープン要求であるか否かを判定する。同条件に該当する場合は本動作フローを終了し、該当しない場合はステップＳ７０２へ進む。
（図７：ステップＳ７０１：補足）
本ステップでは、論理ドライブ（Ｑ）３２０に対するアクセス要求を除外して論理ドライブ（Ｐ）３１０に対するアクセス要求のみを対象としている。ただし、図５〜図６で説明した動作フローにより、結果として論理ドライブ（Ｐ）３１０を入口として論理ドライブ（Ｑ）３２０にもアクセスが振り分けられる場合もある。
【００４３】
（図７：ステップＳ７０２〜Ｓ７０３）
ファイルアクセス監視モジュール１１７ｂは、現在時刻を取得し（Ｓ７０２）、ステップＳ５０１でフィルタドライバ１１７がトラップしたアクセス要求および現在時刻を、ファイルアクセス頻度表１１５に記録する（Ｓ７０３）。ステップＳ７０３の処理はメモリ上で行われ、ファイルアクセス頻度表１１５はメモリ内に保持される。
（図７：ステップＳ７０４）
ファイルアクセス監視モジュール１１７ｂは、ファイルアクセス頻度表１１５に記録されているレコード数が規定の上限数に到達したか否かを判定する。上限数に到達していればステップＳ７０６に進み、到達していなければステップＳ７０５へ進む。
【００４４】
（図７：ステップＳ７０５）
ファイルアクセス監視モジュール１１７ｂは、ファイルアクセス頻度表１１５をメモリ上に保持し続ける規定時間に到達したか否かを判定する。規定時間に到達していればステップＳ７０６へ進み、到達していなければ本動作フローを終了する。
（図７：ステップＳ７０６）
ファイルアクセス監視モジュール１１７ｂは、メモリ上のファイルアクセス頻度表１１５を、記憶装置３００上の規定領域に書き出す。
【００４５】
図８は、ファイル再配置指示ＯＳサービス１１２の動作フローを示す図である。ファイル再配置指示ＯＳサービス１１２は、ファイルアクセス頻度表１１５に記述されている各ファイルのアクセス頻度を取得し、アクセス頻度の高いファイルを論理ドライブ（Ｐ）３１０に移動すべき旨を記述した、再配置ファイル一覧表１１４を作成する。以下、図８の各ステップについて説明する。
（図８：ステップＳ８００）
ＣＰＵ１２０は、ユーザがシステム設定インタフェース１１１を用いて設定したタイミングで、ファイル再配置指示ＯＳサービス１１２を起動する。ファイル再配置指示ＯＳサービス１１２が起動すると、本動作フローが開始される。
（図８：ステップＳ８０１）
ファイル再配置指示ＯＳサービス１１２は、本動作フローを前回実行したとき再配置に失敗したファイル一覧を、再配置ファイル一覧表１１４に追加する。
【００４６】
（図８：ステップＳ８０２）
ファイル再配置指示ＯＳサービス１１２は、ファイルアクセス頻度表１１５から１レコードを読み取る。
（図８：ステップＳ８０３）
ファイル再配置指示ＯＳサービス１１２は、ステップＳ８０２で読み取ったレコードのアクセス回数列１１５４の値を取得する。同値が所定閾値より大きければステップＳ８０４へ進み、それ以外であればステップＳ８０２へ戻って同様の処理を繰り返す。
【００４７】
（図８：ステップＳ８０４）
ファイル再配置指示ＯＳサービス１１２は、ステップＳ８０２で読み取ったレコードの内容を、論理ドライブ（Ｐ）３１０に移動する対象ファイルとして、再配置ファイル一覧表１１４に追加する。
（図８：ステップＳ８０５）
ファイル再配置指示ＯＳサービス１１２は、ファイルを再配置するために必要な空き領域が論理ドライブ（Ｐ）３１０に十分にあるか否かを判定する。十分な空き領域があればステップＳ８０７へ進み、なければステップＳ８０６へ進む。
【００４８】
（図８：ステップＳ８０６）
ファイル再配置指示ＯＳサービス１１２は、論理ドライブ（Ｐ）３１０から論理ドライブ（Ｑ）３２０へ再配置すべきファイルを、ファイル一覧表３３０から抽出し、再配置ファイル一覧表１１４に追加する。本ステップでファイル一覧表３３０から抽出するファイルの選択基準としては、例えばファイルサイズが大きいファイルを優先的に抽出する、アクセス頻度が低いファイルを優先的に抽出する、などの手法が考えられる。
（図８：ステップＳ８０６：補足）
本動作フローは、原則として論理ドライブ（Ｐ）３１０を優先的に使用してアクセス速度を向上させる狙いがある。ただし、論理ドライブ（Ｐ）３１０に空き容量がなければならないので、本ステップで空き容量を確保するものとした。
【００４９】
（図８：ステップＳ８０７）
ファイル再配置指示ＯＳサービス１１２は、ステップＳ８０２で読み込んだレコードに記述されているファイルのファイルサイズと、ＳＳＤのブロックサイズとを比較する。ファイルサイズの方が小さければステップＳ８０８へ進み、それ以外であればステップＳ８０９へ進む。ＳＳＤのブロックサイズは、後述する図９の動作フローを実行してあらかじめ取得しておく。
（図８：ステップＳ８０８）
ファイル再配置指示ＯＳサービス１１２は、再配置ファイル一覧表１１４のうち、ステップＳ８０２で読み込んだレコードに対応するファイルのキャッシュ操作列１１４４を「ＯＮ」にセットする。
【００５０】
（図８：ステップＳ８０９）
ファイル再配置指示ＯＳサービス１１２は、ファイルアクセス頻度表１１５を最終レコードまで読み終えたか否かを判定する。最終レコードまで読み終えていればステップＳ８１０へ進み、読み終えていなければステップＳ８０２へ戻って同様の処理を繰り返す。
（図８：ステップＳ８１０）
ファイル再配置指示ＯＳサービス１１２は、再配置ファイル一覧表１１４のうち、キャッシュ操作列１１４４が「ＯＮ」になっているレコードを、再配置ファイル一覧表１１４の後方に移動する。
【００５１】
図９は、ＳＳＤのブロックサイズを取得する動作フローである。以下、図９の各ステップについて説明する。なお、図９で説明するブロックサイズ取得手順は１例であり、その他の手法を採用することもできる。
（図９：ステップＳ９００）
ＣＰＵ１２０は、ディスクアレイを構築するとき、ファイル再配置実行モジュール１１７ｃを起動する。ファイル再配置実行モジュール１１７ｃが起動すると、本動作フローが開始される。
（図９：ステップＳ９０１）
ファイル再配置実行モジュール１１７ｃは、記憶装置３００上のＳＳＤに対して所定のコマンドを発行するなどして、ＳＳＤのベンダ名と製品名を取得する。例えば、ＳＣＳＩデバイスを制御する際に用いるＩＮＱＵＩＲＹコマンドなどを用いることができる。
【００５２】
（図９：ステップＳ９０２）
ファイル再配置実行モジュール１１７ｃは、ステップＳ９０１で取得したベンダ名と製品名をキーにして、ＳＳＤブロックサイズ定義表１１６を検索する。
（図９：ステップＳ９０３）
ステップＳ９０２で検索キーに合致するレコードが見つかった場合はステップＳ９０４へ進み、見つからなかった場合はステップＳ９０５へ進む。
【００５３】
（図９：ステップＳ９０４）
ファイル再配置実行モジュール１１７ｃは、ステップＳ９０２で見つかったレコードのブロックサイズ列１１６４の値から、ＳＳＤのブロックサイズを特定する。
（図９：ステップＳ９０５）
ファイル再配置実行モジュール１１７ｃは、エラーを報告する。さらに、ディスクアレイを構成する手続きをエラー終了するようにしてもよい。
【００５４】
図１０は、ファイル再配置実行モジュール１１７ｃがファイル再配置を実行する際の動作フローである。以下、図１０の各ステップについて説明する。
（図１０：ステップＳ１０００）
ファイル再配置指示ＯＳサービス１１２は、ファイル再配置実行モジュール１１７ｃを起動する。ファイル再配置実行モジュール１１７ｃが起動すると、本動作フローが開始される。
（図１０：ステップＳ１００１）
ファイル再配置実行モジュール１１７ｃは、再配置ファイル一覧表１１４から１レコード読み込む。
【００５５】
（図１０：ステップＳ１００２）
ファイル再配置実行モジュール１１７ｃは、ステップＳ１００１で読み込んだレコードのキャッシュ操作列１１４４が「ＯＮ」になっている場合はステップＳ１００３へ進み、「ＯＦＦ」である場合はステップＳ１００４へ進む。
（図１０：ステップＳ１００３）
ファイル再配置実行モジュール１１７ｃは、ＳＳＤまたはＲＡＩＤコントローラカード２００のライトキャッシュを有効化する。
【００５６】
（図１０：ステップＳ１００４）
ファイル再配置実行モジュール１１７ｃは、ステップＳ１００１で読み込んだレコードに対応するファイルを再配置する。このとき、キャッシュ操作列１１４４が「ＯＮ」になっているファイルに関しては、ディスク装置ではなくライトキャッシュに書き込まれる。これにより、論理ドライブ（Ｑ）３２０から論理ドライブ（Ｐ）３１０への再配置であり、かつファイルサイズがＳＳＤのブロックサイズより小さいファイルは、いったんライトキャッシュに書き込まれた後にまとめてＳＳＤへ書き込まれる。したがって、ＳＳＤに対する書換え回数を削減することができる。ライトキャッシュに書き込まないファイルについては、即座にＳＳＤに書き込まれる。
（図１０：ステップＳ１００５）
ファイル再配置実行モジュール１１７ｃは、ステップＳ１００４の結果に基づき、ファイル一覧表３３０を更新する。
【００５７】
（図１０：ステップＳ１００６）
ファイル再配置実行モジュール１１７ｃは、再配置ファイル一覧表１１４を最終レコードまで読み終えたか否かを判定する。最終レコードまで読み終えていればステップＳ１００７へ進み、読み終えていなければステップＳ１００１へ戻って同様の処理を繰り返す。
（図１０：ステップＳ１００７）
ファイル再配置実行モジュール１１７ｃは、ステップＳ１００３で有効化したライトキャッシュを元の状態に戻す。
【００５８】
（図１０：ステップＳ１００８）
ファイル再配置実行モジュール１１７ｃは、例えば論理ドライブ（Ｐ）３１０の空き容量がなくなったなどにより、再配置の過程でエラーが生じた場合は、再配置することができなかったファイル一覧をファイル再配置指示ＯＳサービス１１２に報告する。ファイル再配置指示ＯＳサービス１１２は、ステップＳ８０１でそのファイル一覧を再配置ファイル一覧表１１４に追加する。
【００５９】
以上、図１に示す各プログラムの動作について説明した。以上のように、本実施の形態１によれば、ファイル再配置実行モジュール１１７ｃは、ＨＤＤからＳＳＤにファイルを再配置する際に、ファイルサイズがＳＳＤのブロックサイズより小さいファイルは即座に再配置せず、ライトキャッシュにいったん格納する。これにより、ＳＳＤに対する書込み回数を削減し、ＳＳＤのデータ書換え耐力を長持ちさせることができる。また、ライトキャッシュを用いることにより、記憶装置３００のデータ入出力性能を高めることができる。
【００６０】
また、本実施の形態１によれば、フィルタドライバ１１７は、記憶装置３００内のファイルにアクセスする入口を論理ドライブ（Ｐ）３１０に統一する。ファイルアクセス振分けモジュール１１７ａは、記憶装置３００内のファイルに対するアクセスを、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０に振り分ける。これにより、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０を、仮想的な共通ドライブとして動作させることができるので、ユーザに対して内部処理を隠蔽し、ユーザの利便性を向上させることができる。
【００６１】
また、本実施の形態１によれば、ファイルアクセス振分けモジュール１１７ａは、システム設定インタフェース１１１の設定に基づき、ＳＳＤとＨＤＤそれぞれに同じファイルを重複して保持させる。これにより、記憶装置３００をミラーリング動作させることができるので、一方のディスク装置が破損してもファイルが喪失する可能性を低減することができる。
【００６２】
また、本実施の形態１によれば、ファイルアクセス振分けモジュール１１７ａは、ＳＳＤとＨＤＤそれぞれに同じディレクトリ構造を作成する。これにより、ＳＳＤとＨＤＤそれぞれに同一のファイルシステム構成を維持することができる。したがって、ファイルシステム上で矛盾を生じさせることなく、ファイルを論理ドライブ間で再配置することができる。
【００６３】
また、本実施の形態１によれば、ファイル再配置指示ＯＳサービス１１２は、アクセス頻度が所定閾値以上のファイルをＨＤＤからＳＳＤへ再配置すべき旨を指示するレコードを、再配置ファイル一覧表１１４内に作成する。これにより、アクセス頻度が高いファイルは優先的に高速なＳＳＤ上に配置されるので、記憶装置３００のデータ入出力性能を高めることができる。
【００６４】
＜実施の形態２＞
本発明の実施の形態２では、システム設定インタフェース１１１の具体例について説明する。各装置の構成は、実施の形態１と同様である。
【００６５】
実施の形態１において、システム設定インタフェース１１１は、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０で同じファイルを重複保持するか否かを設定することを説明した。ファイルを重複保持することが、記憶装置３００全体のデータ入出力性能に与える影響について、以下に検討する。
【００６６】
実施の形態１において、ファイルアクセス振分けモジュール１１７ａは、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０が重複してファイルを保持する場合、両方の論理ドライブへ書き込みを行う必要がある。この場合、記憶装置３００全体としての見かけ上の書き込み速度は、論理ドライブ（Ｑ）３２０単体の書込み速度より下回る。これに対し、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０がそれぞれ排他的にファイルを保持する場合、書き込み速度はそれぞれの論理ドライブの書き込み速度にしたがう。そのため、論理ドライブ（Ｐ）３１０にアクセスが集中すると、記憶装置３００全体としての見かけ上の書き込み速度は高速化される。読み込み速度は、それぞれの論理ドライブの読み込み速度にしたがう。そのため、論理ドライブ（Ｐ）３１０にアクセスが集中した場合、記憶装置３００全体としての見かけ上の読み込み速度は高速化される。ファイルアクセス監視モジュール１１７ｂは、ファイルオープン時のみ干渉するため、入出力性能には影響を与えない。
【００６７】
したがって、記憶装置３００のディスクアレイ（ＲＡＩＤ）上に保存するファイルの重要度や要求されるパフォーマンスに基づき、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０で同じファイルを重複保持するか否かを決定する必要がある。
【００６８】
システム設定インタフェース１１１は、ファイルアクセス監視モジュール１１７ｂが収集したファイルアクセス頻度表１１５をユーザに提示し、ユーザからの入力を受け取り、各種パラメータを設定するためのユーザインタフェースを提供する。ユーザが設定したパラメータは、システム設定情報１１３内に格納される。システム設定情報１１３は、次の５つのパラメータを保持する。
【００６９】
（システム設定情報１１３：パラメータその１）
システム設定情報１１３は、再配置の対象とするファイルを決定する際に用いるアクセス頻度の閾値を保持する。閾値の例として、（ａ）１０分以内に５回アクセスがあったファイルはＳＳＤへ再配置する、（ｂ）１時間以内に２０回アクセスがあったファイルはＳＳＤへ再配置する、などが挙げられる。システム設定情報１１３内部では単位時間当たりのアクセス回数として上記パラメータを保持する。閾値を小さく設定すると、アクセスがあったファイルの大部分が論理ドライブ（Ｐ）３１０へ再配置される。閾値を大きく設定すると、アクセスが集中したファイルのみ論理ドライブ（Ｐ）３１０へ再配置される。
【００７０】
（システム設定情報１１３：パラメータその２）
システム設定情報１１３は、ファイル再配置実行モジュール１１７ｃを起動するタイミングの設定値を保持する。起動タイミングの例として、（ａ）直ちに実行、（ｂ）深夜０時に実行、（ｃ）データアクセスが一定時間発生しない場合に実行、（ｄ）毎週末に実行、などが挙げられる。起動タイミングは、通常のデータ入出力性能に影響が及ばない時間帯等に設定することが望ましい。
【００７１】
（システム設定情報１１３：パラメータその３）
システム設定情報１１３は、ファイルアクセス頻度表１１５をメモリ上に保持する規定時間の値を保持する。本パラメータは、ステップＳ７０５で用いられる。
（システム設定情報１１３：パラメータその４）
システム設定情報１１３は、ファイルアクセス頻度表１１５をメモリ上に保持する最大レコード数の値を保持する。本パラメータは、ステップＳ７０４で用いられる。
【００７２】
（システム設定情報１１３：パラメータその５）
システム設定情報１１３は、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０それぞれで同一のファイルを重複保持するか否かを示すフラグを保持する。
（システム設定情報１１３：パラメータについての補足）
ファイルアクセス頻度表１１５をメモリ上に保持する規定時間、および最大レコード数は、コンピュータ１００のメモリサイズに基づいて適切に設定することが望ましい。
【００７３】
システム設定情報１１３は、システム設定インタフェース１１１、ファイル再配置指示ＯＳサービス１１２、ファイルアクセス監視機能１１７ｂからそれぞれ独立にアクセスされる。そのため、排他制御を行なう必要がある。
【００７４】
システム設定インタフェース１１１は、ユーザが上記各パラメータを設定する前後の性能の増減をユーザに提示するようにしてもよい。あるひとつのファイルＡを再配置する設定を行なった場合の性能変化の求め方として、次のような計算方法が考えられる。
【００７５】
始めに、ファイルアクセス頻度表１１５中のファイルＡに対するアクセス回数から一定時間当りのおよそのアクセス回数を求める。これに対し、論理ドライブ（Ｐ）３１０と論理ドライブ（Ｑ）３２０のスループットの差を、上記一定時間当たりのアクセス回数と掛け合わせることにより、当該ファイルを再配置した後におけるスループットの増加分が求められる。
以上、本実施の形態２では、システム設定インタフェース１１１の具体例を説明した。
【００７６】
＜実施の形態３＞
以上の実施の形態１〜２では、システム設定インタフェース１１１、ファイル再配置指示ＯＳサービス１１２、フィルタドライバ１１７、ＲＡＩＤデバイスドライバ１１８を「ディスクアレイ構成プログラム」として構成した例を示したが、同様の機能を回路デバイスなどのハードウェアによって実現することもできる。
【符号の説明】
【００７７】
１００：コンピュータ、１１０：主記憶装置、１１１：システム設定インタフェース、１１２：ファイル再配置指示ＯＳサービス、１１３：システム設定情報、１１４：再配置ファイル一覧表、１１４１：Ｎｏ列、１１４２：ファイルＩＤ列、１１４３：デバイスＩＤ列、１１４４：キャッシュ操作列、１１５：ファイルアクセス頻度表、１１５１：Ｎｏ列、１１５２：ファイルＩＤ列、１１５３：デバイスＩＤ列、１１５４：アクセス回数列、１１５５：ファイルサイズ列、１１５６：最終アクセス時刻列、１１６：ＳＳＤブロックサイズ定義表、１１６１：デバイスＩＤ列、１１６２：ベンダ名列、１１６３：製品名列、１１６４：ブロックサイズ列、１１７：フィルタドライバ、１１７ａ：ファイルアクセス振分けモジュール、１１７ｂ：ファイルアクセス監視モジュール、１１７ｃ：ファイル再配置実行モジュール、１１８：ＲＡＩＤデバイスドライバ、１２０：ＣＰＵ、２００：ＲＡＩＤコントローラカード、２１０：ＲＡＩＤファームウェア、３００：記憶装置、３１０：論理ドライブ（Ｐ）、３２０：論理ドライブ（Ｑ）、３３０：ファイル一覧表、３４０：ライトキャッシュ。
【図１】
2011209973.tif 000003
【図２】
2011209973.tif 000004
【図３】
2011209973.tif 000005
【図４】
2011209973.tif 000006
【図５】
2011209973.tif 000007
【図６】
2011209973.tif 000008
【図７】
2011209973.tif 000009
【図８】
2011209973.tif 000010
【図９】
2011209973.tif 000011
【図１０】
2011209973.tif 000012