(57)【要約】【課題】複数種類の記憶デバイスが混在するストレージシステムへのデータ保管の制御を適切に行う。【解決手段】記憶制御装置が、保管対象データの保管期限を取得し、複数種類の記憶デバイスの各々について、記憶デバイスで記憶されるデータの品質の保証期限と、記憶デバイスの所定の記憶サイズ当たりのコストである単位コストとを取得する。記憶制御装置は、データ移行コストを取得し、取得された保管期限、保証期限、単位コスト及びデータ移行コストに基づいて、複数種類の記憶デバイスから、保管対象データの格納先とする記憶デバイスであって、保管対象データを保管期限まで保管するにあたってトータルコストが最小となる記憶デバイスを選択する。【選択図】図１
2008015623.tif 000002
【特許請求の範囲】
【請求項１】
第一種と第二種の記憶デバイスを含んだ複数種類の記憶デバイスの各々を複数個備えたストレージシステムの制御装置であって、
前記ストレージシステムで保管する対象である保管対象データの保管期限を取得する第一の取得部と、
前記複数種類の記憶デバイスの各々について、記憶デバイスで記憶されるデータの品質の保証期限と、記憶デバイスの所定の記憶サイズ当たりのコストである単位コストとを取得する第二の取得部と、
前記複数種類の記憶デバイスのうちの或る記憶デバイスから前記複数種類の記憶デバイスのうちの別の記憶デバイスへのデータ移行に要するコストであるデータ移行コストを取得する第三の取得部と、
前記取得された保管期限、保証期限、単位コスト及びデータ移行コストに基づいて、前記複数種類の記憶デバイスから、前記保管対象データの格納先とする記憶デバイスを選択する選択部と
を備え、
前記選択される記憶デバイスは、前記保管対象データを前記保管期限まで保管するにあたってトータルコストを最小とする種類の記憶デバイスであり、
前記トータルコストとは、データ移行の回数とデータ移行コストの積により得られる第一のコストと、データ移行元の単位コストと、データ移行先の単位コストとにより得られるコストである、
制御装置。
【請求項２】
前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスであり、
前記第一種の記憶デバイスの書込み回数閾値を取得する第四の取得部と、
前記保管対象データのデータサイズを基に、前記保管対象データを前記第一種の記憶デバイスに書込む場合に生じる書込み回数を算出する算出部と、
複数の第一種の記憶デバイスの各々の現在までのトータル書込み回数を取得する第五の取得部と
を更に備え、
前記選択部は、前記第一種の記憶デバイスを選択する場合、前記算出された書込み回数と前記トータル書込み回数との和が前記書込み回数閾値以下となる第一種の記憶デバイスを選択する、
請求項１記載の制御装置。
【請求項３】
前記ストレージシステムには、複数のパリティグループがあり、
前記複数のパリティグループの各々は、二以上の第一種の記憶デバイスで構成されており、
前記保管対象データは、パリティグループを構成する第一種の記憶デバイスに分散して格納され、
前記選択部は、第一種の記憶デバイスを選択する場合、前記複数のパリティグループの中から、パリティグループを構成する二以上の第一種の記憶デバイスのそれぞれが前記書込み回数閾値以下となるパリティグループを選択する、
請求項２記載の制御装置。
【請求項４】
前記複数のパリティグループの各々のＲＡＩＤレベルを取得する第六の取得部を更に備え、
前記算出部は、前記取得した各ＲＡＩＤレベルを基に、各パリティグループを構成する各第一種の記憶デバイスの書き込み回数を算出する、
請求項３記載の制御装置。
【請求項５】
前記第一種の記憶デバイスは、フラッシュメモリであり、
前記第二種の記憶デバイスは、ハードディスクである、
請求項１記載の制御装置。
【請求項６】
前記保管対象データのアクセス特性であるデータアクセス特性を取得する第七の取得部を更に備え、
前記選択部は、前記複数種類の記憶デバイスの中から、前記トータルコストが最小となり、且つ、前記取得されたデータアクセス特性に適合するデバイスアクセス特性を有する種類の記憶デバイスを選択し、
前記デバイスアクセス特性は、記憶デバイスのアクセス特性である、
請求項１記載の制御装置。
【請求項７】
前記データアクセス特性及び前記デバイスアクセス特性は、アクセスパターンと、リード優先かライト優先かとのうちの少なくとも一つである、
請求項６記載の制御装置。
【請求項８】
前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスであり、
前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性がリード優先の場合に、第一種の記憶デバイスを選択し、ライト優先の場合に、第二種の記憶デバイスを選択する、
請求項７記載の制御装置。
【請求項９】
前記アクセスパターンには、ランダムアクセスとシーケンシャルアクセスとがあり、
前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性がランダムアクセスの場合に、第一種の記憶デバイスを選択し、シーケンシャルアクセスの場合に、第二種の記憶デバイスを選択する、
請求項７記載の制御装置。
【請求項１０】
前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスであり、
前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性が、ランダムアクセスで、かつ、ライト優先の場合には、第二種の記憶デバイスを選択する、
請求項９記載の制御装置。
【請求項１１】
前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスであり、
前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性が、シーケンシャルアクセスで、かつ、リード優先の場合には、第一種の記憶デバイスを選択する、
請求項９記載の制御装置。
【請求項１２】
前記保管対象データに対するアクセス特性を監視する監視部と、
前記監視により得られたアクセス特性と前記選択した記憶デバイスのデバイスアクセス特性とが異なっているか否かを判断する第一の判断部と、
データ移行部と
を更に備え、
前記選択部は、異なっていると判断された場合、前記複数種類の記憶デバイスの中から、前記監視により得られたアクセス特性に適合するデバイスアクセス特性を有した種類の記憶デバイスを選択し、
前記データ移行部は、前記選択された記憶デバイスから、前記アクセス特性に適合するデバイスアクセス特性を有する記憶デバイスに、データを移行する、
請求項６記載の制御装置。
【請求項１３】
コスト重視か否かを判断する第二の判断部を更に備え、
前記選択部は、コスト重視ではないと判定された場合、前記複数種類の記憶デバイスの中から、前記取得されたデータアクセス特性に適合するデバイスアクセス特性を有する種類の記憶デバイスを選択し、
前記デバイスアクセス特性は、記憶デバイスのアクセス特性である、
請求項１記載の制御装置。
【請求項１４】
ボリューム機能と、そのボリューム機能を付与する論理ボリュームとの指定をユーザから受け付ける受付部と、
前記指定されたボリューム機能に対応するアクセス特性を取得する第八の取得部と、
前記指定された論理ボリュームを構成する記憶デバイスを前記複数の記憶デバイスの中から特定する特定部と、
前記特定された記憶デバイスのアクセス特性が、前記取得されたアクセス特性に適合するか否かを判断する第三の判断部と、
適合しないと判断した場合には、前記指定された論理ボリュームに前記ボリューム機能を付与しないボリューム機能付与制御部と
を更に備える請求項１記載の制御装置。
【請求項１５】
前記制御装置は、前記ストレージシステムの上位装置であり、前記ストレージシステムの複数の第一種の記憶デバイスと複数の第二種の記憶デバイスとを自分の記憶資源として提供する仮想化装置に接続される、
請求項１記載の制御装置。
【請求項１６】
前記ストレージシステムが、前記ストレージシステムのホスト装置によって前記ストレージシステムの記憶デバイスに書き込まれる又はその記憶デバイスから読み出されたデータを一時的に記憶するキャッシュメモリを備え、該キャッシュメモリが、複数の前記第一種の記憶デバイスを備える、
請求項１記載の制御装置。
【請求項１７】
前記制御装置が、前記ストレージシステムのホスト装置と前記ストレージシステムとの間に介在するスイッチ装置である、
請求項１記載の制御装置。
【請求項１８】
第一種と第二種の記憶デバイスを含んだ複数種類の記憶デバイスの各々を複数個備えたストレージシステムの制御装置であって、
前記ストレージシステムで保管する対象である保管対象データのアクセス特性であるデータアクセス特性を取得する取得部と、
前記複数種類の記憶デバイスの中から、前記取得されたデータアクセス特性に適合するデバイスアクセス特性を有する種類の記憶デバイスを選択する選択部と
を備え、
前記デバイスアクセス特性は、記憶デバイスのアクセス特性であり、
前記アクセス特性は、シーケンシャルアクセスかランダムアクセスかと、リード優先かライト優先かとのうちの少なくとも一つである、
制御装置。
【請求項１９】
第一種と第二種の記憶デバイスを含んだ複数種類の記憶デバイスの各々を複数個備えたストレージシステムの制御装置であって、
ボリューム機能と、そのボリューム機能を持たせる論理ボリュームとの指定をユーザから受け付ける受付部と、
前記指定されたボリューム機能に対応するアクセス特性を取得する取得部と、
前記指定された論理ボリュームを構成する記憶デバイスを前記複数の記憶デバイスの中から特定する特定部と、
前記特定された記憶デバイスのアクセス特性が、前記取得されたアクセス特性に適合するか否かを判断する判断部と、
適合しないと判断した場合には、前記指定された論理ボリュームに前記ボリューム機能を持たせない制御部と
を備え、
前記アクセス特性は、シーケンシャルアクセスかランダムアクセスかと、リード優先かライト優先かとのうちの少なくとも一つであり、
前記ボリューム機能とは、スナップショットの管理により生じる差分データを格納する機能と、第一の論理ボリュームの更新履歴を格納する機能と、第二の論理ボリュームに対する書き込みに応じて動的にその第二の論理ボリュームに割り当てられる機能とのうちの少なくとも一つである、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類の記憶デバイスを備えたストレージシステムの制御に関する。
【背景技術】
【０００２】
ストレージシステムは、一又は複数のストレージサブシステム（以下、単に「ストレージ」と言う場合がある）で構成することができる。ストレージには、複数の記憶デバイスを搭載することができる。
【０００３】
企業等での計算機システムにおいて、ストレージで記憶するデータ量の増大に伴い、また、データを長期間にわたって保持するようになるに伴い、ストレージの記憶容量も増加している。また、長期間データを保持するために、ストレージ内の各記憶デバイスの品質保証期間を考慮してデータを保管する必要がある。
【０００４】
記憶デバイスに記憶されるデータを保管する期間が、その記憶デバイスの品質保証期間より長い場合には、そのデータを、別の記憶デバイス（例えば、新品の記憶デバイス、或いは、まだ品質保証期間を超えていない記憶デバイス）に移行して、品質保証期間を過ぎた記憶デバイスを撤去する方法を採ることが考えられる。例えば、特開２００５−３０１６８４号公報（以下、文献１）には、ハードディスクの品質保証期間とデータの保管期限とを比較し、その比較結果に基づいて、データを保管するハードディスクを選択し、選択されたハードディスクにデータを保管する技術が開示されている。
【０００５】
【特許文献１】特開２００５−３０１６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、データを保管する記憶デバイスとして、フラッシュメモリがある。フラッシュメモリは、書き込み回数の制限があるものの、ハードディスクに比べて、ドライブの回転などの動力を伴わないことから、一般的に長寿命であると言われている。しかし、フラッシュメモリのビットコストは、本出願時点では、一般的に、ハードディスクのビットコストよりも高い。
【０００７】
この点に鑑み、ストレージシステムに、複数の記憶デバイスとして、ハードディスクとフラッシュメモリを混在させることが考えられる。このようなストレージシステムに、単に文献１の技術を適用した場合、以下の問題が生じ得る。
【０００８】
すなわち、フラッシュメモリは、ハードディスクより長寿命であるため、データ保管のためフラッシュメモリが選択される機会が多くなるが、書き込み回数の制限があるため、フラッシュメモリのデータの書き込み回数が増えれば増えるほど、フラッシュメモリの寿命を結局下げてしまう場合がある。
【０００９】
また、前述したように、一般的に、フラッシュメモリのほうがハードディスクに比べてデータを格納する際のビットコストが高い。また、データを或る記憶デバイスから別の記憶デバイスに移行する場合にも、ビットコストがかかる。このため、データの保管場所や、データの移動回数などを考慮することなくデータ保管を行うと、データの保管に高いコストがかかるおそれがある。
【００１０】
以上のような問題点は、複数種類の記憶デバイスが、ハードディスクとフラッシュメモリとの場合に限らず、生じ得る。
【００１１】
従って、本発明の目的は、複数種類の記憶デバイスが混在するストレージシステムへのデータ保管の制御を適切に行うことにある。
【００１２】
本発明の更なる目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本発明に従う制御装置は、第一種と第二種の記憶デバイスを含んだ複数種類の記憶デバイスの各々を複数個備えたストレージシステムの制御装置である。この制御装置は、前記ストレージシステムで保管する対象である保管対象データの保管期限を取得する第一の取得部と、前記複数種類の記憶デバイスの各々について、記憶デバイスで記憶されるデータの品質の保証期限と、記憶デバイスの所定の記憶サイズ当たりのコストである単位コストとを取得する第二の取得部と、前記複数種類の記憶デバイスのうちの或る記憶デバイスから前記複数種類の記憶デバイスのうちの別の記憶デバイスへのデータ移行に要するコストであるデータ移行コストを取得する第三の取得部と、前記取得された保管期限、保証期限、単位コスト及びデータ移行コストに基づいて、前記複数種類の記憶デバイスから、前記保管対象データの格納先とする記憶デバイスを選択する選択部とを備える。前記選択される記憶デバイスは、前記保管対象データを前記保管期限まで保管するにあたってトータルコストを最小とする種類の記憶デバイスである。前記トータルコストとは、データ移行の回数とデータ移行コストの積により得られる第一のコストと、データ移行元の単位コストと、データ移行先の単位コストとにより得られるコストである。
【００１４】
この制御装置は、例えば、ストレージシステムの上位装置（例えば、ストレージシステムにＩＯコマンドを発行するホスト計算機、或いは、ストレージシステムを管理する管理計算機）であっても良いし、ストレージシステムに備えられても良いし、ストレージシステムと上位装置との間に備えられる中間デバイスに備えられても良い。或いは、制御装置の各部が、ストレージシステムの上位装置、中間デバイス及びストレージシステムのうちの少なくとも二つに分散して備えられても良い。
【発明の効果】
【００１５】
本発明によれば、複数種類の記憶デバイスが混在するストレージシステムへのデータ保管の制御を適切に行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下、複数種類の記憶デバイス（以下、記憶媒体という）として、フラッシュメモリとハードディスクを例に採り、本発明の一実施形態を説明する。まず、本発明の実施の形態の概要を説明する。
【００１７】
記憶制御装置（例えば、後述するデータ保管管理装置）は、フラッシュメモリの特性と、データ保管のコストとに基づいて、データ保管先とする記憶デバイスを選択し、選択した記憶デバイスにデータを格納する。
【００１８】
具体的には、例えば、記憶制御装置は、データ保管期間とビットコストから、コストが安くなる記憶デバイスを選択する。例えば、ハードディスクの品質保証期間を3年、フラッシュメモリの品質保証期間を10年とする。また、ビットコストとして、ハードディスクは0.3ドル、フラッシュメモリは1ドルであるとする。まだ、データを移行するためのビットコストを0.3ドルとする。
【００１９】
この場合、保管期間5年のデータをハードディスクに保管する場合、ハードディスクは、3年間の品質保証期間しかないため、5年間データを保管するためには、1回の交換が必要となる。すなわち、2回のハードディスクの購入が必要である。よって、一つのハードディスクにかかるビットコストが0.3ドルのため、2回購入ということは、0.6ドルのビットコストがかかることになる。また、一回交換するため、一回のデータ移行のコストがかかる。よって、このデータ移行のビットコストが0.3ドルのため、結局、0.6ドルのハードディスクのコストと、データ移行のコスト0.3ドルがかかり、合計0.9ドルのビットコストがかかる。しかし、この場合でも、フラッシュメモリのビットコスト1ドルよりは安くなる。よって、コストを考えれば、ハードディスクを選択することが望ましい。
【００２０】
別の例として、保管期間7年のデータをハードディスクに保管する場合、2回のハードディスクの交換と、2回のデータ移行を伴うため、結局、1.5ドルのビットコストがかかる。一方、フラッシュメモリのビットコストは、保障期間7年でも1ドルとかわらないので、この場合は、フラッシュメモリにデータを保管したほうがコストが安いということになる。
【００２１】
以上のように、記憶制御装置は、コストを考えて、データの保管先とする記憶デバイスと選択することができる。
【００２２】
また、記憶制御装置は、フラッシュメモリの現在の書き込み回数と保管するデータのサイズより、保管するデータの書き込み数を取得する。また、記憶制御装置は、フラッシュメモリの寿命を維持するために、フラッシュメモリの書込み回数閾値を管理しておく。そして、記憶制御装置は、保管するデータの書き込みにより、フラッシュメモリの書込み回数閾値を超える場合は、超える分を、別に格納可能なフラッシュメモリ（超える分の書込み数を現書込み回数に加算しても書き込み回数閾値を超えないフラッシュメモリ）を選択することで、フラッシュメモリの寿命を維持しつつ、データ保管を行なうことが可能となる。
【００２３】
以下、本発明の幾つかの実施例を説明する。
【実施例１】
【００２４】
図１は、本発明の第一実施例に係る計算機システムの構成例を示す。
【００２５】
通信ネットワークに、データ保管管理装置１００、コンピュータ装置１３０、ハードディスクストレージ１１０、及びフラッシュメモリストレージ１２０が接続される。
【００２６】
データ保管管理装置１００は、ＣＰＵ１０１と、通信インタフェース装置（以下、Ｉ／Ｆ）１０２と、入出力装置１０３と、メモリ１０４とを有する計算機である。
【００２７】
Ｉ／Ｆ１０２は、ハードディスクストレージ１１０やフラッシュメモリストレージ１２０やコンピュータ装置１３０と通信する。
【００２８】
メモリ１０４には、ＣＰＵ１０１で実行される複数のコンピュータプログラムや、ＣＰＵ１０１に参照されるデータが記憶される。具体的には、例えば、データ保管管理プログラム１０５、ボリューム機能設定プログラム１０６、データ移行プログラム１０７、保管対象データ１０８及びデータ管理情報１０９が格納されている。保管対象データ１０８及びデータ管理情報１０９は、データ保管管理プログラム１０５、ボリューム機能設定プログラム１０６及びデータ移行プログラム１０７によって使用される情報である。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵによって処理が行われるものとする。
【００２９】
入出力装置１０３は、ＣＰＵ１０１とＩ／Ｆ１０２とユーザとの間で情報を入出力する装置である。
【００３０】
コンピュータ装置１３０は、ＣＰＵ１３１と、Ｉ／Ｆ１３２と、入出力装置１３３と、メモリ１３４とを有する計算機である。
【００３１】
Ｉ／Ｆ１３２は、データ保管管理装置１００やハードディスクストレージ１１０やフラッシュメモリストレージ１２０と通信する。
【００３２】
メモリ１０４には、ＣＰＵ１３１に実行されるデータ送信プログラム１３５が格納されている。データ送信プログラム１３５は、データ保管管理装置１００に、どのストレージのボリュームにデータを格納するか判断してもらうために、データを送信する。そして、データ保管管理装置１００が、データの格納場所を決めて、データをそのまま格納する。または、データ保管管理装置１００が、格納先を決めてコンピュータ装置１３０に通知し、コンピュータ装置１３０が、その通知された格納先に、データを格納してもよい。
【００３３】
入出力装置１３３は、Ｉ／Ｆ１３２とユーザとの間で情報を入出力する。
【００３４】
ハードディスクストレージ１１０は、コントローラ１１１と、Ｉ／Ｆ１１２と、キャッシュ１１３と、メモリ１１４と、ハードディスクボリューム１１８と、複数のハードディスク１１９とを備えるストレージサブシステムである。
【００３５】
Ｉ／Ｆ１１２は、コンピュータ装置１３０の読み書きに関するデータＩ／Ｏの送受信や、データ保管管理装置１００からの操作要求に関する通信を行なう。なお、Ｉ／Ｆ１１２は、通信形態の種類に応じて複数個用意されても良い。例えば、データ保管管理装置１００との操作要求に関する通信がＩＰ(Internet Protocol)の場合、ＩＰに従う通信を行うＩ／Ｆが用意され、データＩ／Ｏに関する通信はＦＣ(Fibre  Channel))の場合、ＦＣに従う通信を行うＩ／Ｆが用意されてよい。また同じプロトコルでも、用途の違いや設定の違いにより、複数配置されてもよい。
【００３６】
キャッシュ１１３は、ハードディスクストレージ１１０の性能向上のために利用されるメモリである。具体的には、キャッシュ１１３は、計算機からハードディスクボリューム１１８に書かれる書込み対象データ（以下、ライトデータ）や、ハードディスクボリューム１１８から計算機に読み出される読み出し対象データ（以下、リードデータ）を一時的に記憶する。
【００３７】
ハードディスクボリューム１１８は、一又は複数のハードディスク１１９により提供される記憶資源から準備された論理的な記憶媒体であり、計算機（例えばデータ保管管理装置１００）が操作するデータを格納する。ハードディスクボリューム１１８は、ハードディスク１１９による媒体そのものである場合や、ハードディスク１１９を複数持って、ＲＡＩＤ構成のボリュームを実現する論理的なボリュームの場合もある。
【００３８】
メモリ１１４には、ストレージ構成プログラム１１５と、ストレージアクセス監視プログラム１１６と、ストレージ構成情報１１７とが記憶される。ストレージ構成プログラム１１５と、ストレージアクセス監視プログラム１１６は、コントローラ１１１によって実行される。ストレージ構成情報１１７は、ストレージ構成プログラム１１５及びストレージアクセス監視プログラム１１６で使用される情報であり、ハードディスクストレージ１１０で管理することができる情報である。
【００３９】
ストレージ構成プログラム１１５は、ハードディスクストレージ１１０の構成について管理するプログラムである。ストレージ管理プログラム１１５は、ハードディスクボリューム１１８をＩ／Ｆ１１２経由でデータ保管管理装置１００などの計算機に認識させるための機能（プログラムモジュール）や、ハードディスクボリューム間でのデータ移行を行なう機能などを持つ。
【００４０】
ストレージアクセス監視プログラム１１６は、ハードディスクストレージ１１０にどのようなアクセスがあるかを監視するプログラムである。ストレージアクセス監視プログラム１１６は、ハードディスクボリューム１１８単位での書き込み回数や、ハードディスクボリューム１１８を構成するハードディスク１１９ごとの書き込み回数等を監視する。
【００４１】
フラッシュメモリストレージ１２０は、コントローラ１２１と、Ｉ／Ｆ１２２と、キャッシュ１２３と、メモリ１２４と、フラッシュメモリボリューム１２８と、複数のフラッシュメモリ１２９とを備えるストレージサブシステムである。
【００４２】
Ｉ／Ｆ１２２は、計算機の読み書きに関するデータＩ／Ｏの送受信や、データ保管管理装置１００やコンピュータ装置１３０からの操作要求に関する通信を行なう。Ｉ／Ｆ１２２は、Ｉ／Ｆ１１２と同様に、通信形態に応じて複数個用意されても良い。
【００４３】
キャッシュ１２３は、フラッシュメモリストレージ１２０の性能向上のために利用されるメモリである。具体的には、キャッシュ１１３は、計算機からフラッシュメモリボリューム１２８に書かれるライトデータや、フラッシュメモリボリューム１２８から計算機に読み出されるリードデータを一時的に記憶する。
【００４４】
フラッシュメモリボリューム１２８は、複数のフラッシュメモリ１２９による記憶資源から提供される論理的な記憶媒体である。フラッシュメモリボリューム１２８は、フラッシュメモリ１２９による媒体そのものである場合や、フラッシュメモリ１２９を複数持って、ＲＡＩＤ構成のボリュームを実現する論理的なボリュームの場合もある。
【００４５】
メモリ１２４には、ストレージ構成プログラム１２５と、ストレージアクセス監視プログラム１２６と、ストレージ構成情報１２７が記憶される。ストレージ構成プログラム１２５及びストレージアクセス監視プログラム１２６は、コントローラ１２１によって実行される。ストレージ構成情報１２７は、ストレージ構成プログラム１２５及びストレージアクセス監視プログラム１２６で使用される情報であり、フラッシュメモリストレージ１２０で管理することができる情報である。
【００４６】
ストレージ構成プログラム１２５は、フラッシュメモリストレージ１２０の構成について管理するプログラムである。ストレージ構成プログラム１２５は、フラッシュメモリボリューム１２８をＩ／Ｆ１２２経由でデータ保管管理装置１００などの計算機に認識させるための機能や、フラッシュメモリボリューム間でのデータ移行を行なうなどのストレージの機能を持つ。
【００４７】
ストレージアクセス監視プログラム１２６は、フラッシュメモリストレージ１２０にどのようなアクセスがあるかを監視するプログラムである。ストレージアクセス監視プログラム１２６は、フラッシュメモリボリューム１２８単位での書き込み回数や、フラッシュメモリボリューム１２８を構成する記憶媒体ごとの書き込み回数等を監視する。
【００４８】
ハードディスクストレージ１１０とフラッシュメモリストレージ１２０において、各々の構成要素は、記憶媒体がハードディスクかフラッシュメモリかが異なり、共通に使用可能な構成要素を有する形態であってもよい。また、それぞれのストレージに図示したボリュームの数は一つであるが、それぞれのストレージには複数のボリュームを搭載することができる。
【００４９】
図２は、ハードディスクストレージ１１０のストレージ構成情報１１７の構成例を示す。図３は、フラッシュメモリストレージ１２０のストレージ構成情報１２７の構成例を示す。
【００５０】
ストレージ構成情報１１７、１２７は、同じ構成のテーブル群も持つことができる。ストレージ構成情報１１７、１２７には、例えば、記憶媒体テーブル２００と、パリティグループ２１０と、ボリュームテーブル２２０とが含まれる。ここでパリティグループとは、複数の記憶媒体により構成されるグループであり、RAIDを構成する単位である。
【００５１】
記憶媒体テーブル２００には、ハードディスク１１９、フラッシュメモリ１２９の記憶媒体を識別する番号を示す記憶媒体番号が書かれるカラム２０１と、記憶媒体の保証期限が書かれるカラム２０２と、記憶媒体の種別が書かれるカラム２０３と、記憶媒体の現在の書き込み回数が書かれるカラム２０４とがある。各記憶媒体について、記憶媒体番号、保証期限、記憶媒体種別、現書き込み回数が記録される。保証期限については、例えば、記憶媒体番号が"1"の場合には"04/30/07"となっているが、これは2007年4月30日が保証期限となっていることを表している。他の記憶媒体も同様に保証期限を解釈する（例えば、他の記憶媒体の保証期限については、2008年4月30日が保証期限になっていることを表している）。また、記憶媒体種別においては、例えばHDDとフラッシュメモリという値が入る。HDDはハードディスクを表している。また、記憶媒体がハードディスクの場合には、現書き込み回数の値は本実施例では使用されないため、現書き込み回数が保存されなくてよい。
【００５２】
パリティグループテーブル２１０には、パリティグループ番号が書かれるカラム２１１と、保証期限が書かれるカラム２１２と、総容量が書かれるカラム２１３と、空き容量が書かれるカラム２１４と、記憶媒体番号が書かれるカラム２１５と、RAIDタイプが記録されるカラム２１６とがある。パリティグループ毎に、パリティグループ番号と、保証期限と、総容量と、空き容量と、記憶媒体番号と、RAIDタイプが記録される。
【００５３】
パリティグループ番号は、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０内に形成されたパリティグループを識別するために一意に付された識別子である。
【００５４】
保証期限は、パリティグループの品質保証期限である。一つのパリティグループの保証期限は、例えば、パリティグループを構成する記憶媒体の保証期限のうち、最も早いものと等しくされる。
【００５５】
総容量は、パリティグループに保管することができるデータの総量である。
【００５６】
空き容量は、パリティグループの使用されていない保管領域の容量であって、総容量から、そのパリティグループに既に保管されたデータの量（使用されている記憶容量）を引いた値である。
【００５７】
記憶媒体番号は、パリティグループを構成する記憶媒体の識別子であり、カラム２０１に記録される情報と同じ情報により表されている。例えば、パリティグループ"P0"を構成する記憶媒体は、"１"、"２"、"３"、"４"の番号をもつ記憶媒体であり、これは、記憶媒体テーブル２００の記憶媒体番号"１"、"２"、"３"、"４"の番号で示される記憶媒体で構成されていることを示している。
【００５８】
RAIDタイプは、パリティグループのRAID（Redundant Array of Independent (or Inexpensive) Disks）のレベルを表している。
【００５９】
ボリュームテーブル２２０には、ボリューム番号が書かれるカラム２２１と、割り当てパリティグループの番号が書かれるカラム２２２と、割り当て容量が書かれるカラム２２３とがある。ボリューム毎に、ボリューム番号、割り当てパリティグループ、割り当て容量が記録される。ボリュームは、データを格納する領域であるが、RAID構成されているパリティグループから作成されたボリュームでは、物理的には、複数の記憶媒体にデータが散在しても、論理的には一つの領域として取り扱うことができる。また、このボリュームは論理ユニットと呼ばれる場合がある。
【００６０】
ボリューム番号は、ハードディスクボリューム１１８やフラッシュメモリボリューム１２８を識別するために一意に付された識別子である。
【００６１】
割り当てパリティグループ番号は、ハードディスクボリューム１１８やフラッシュメモリボリューム１２８が割り当てられているパリティグループの番号を示す。割り当てパリティグループ番号は、パリティグループテーブル２１０に書かれるパリティグループ番号と同様の情報である。
【００６２】
割り当て容量は、ハードディスクボリューム１１８やフラッシュメモリボリューム１２８に割り当てられているデータ容量である。
【００６３】
また、ボリュームが、RAID構成でないときは、パリティグループテーブル２１０は記載されなくても良い。また、ボリュームテーブルの割り当てパリティグループ番号もなくなり、代わりに記憶媒体番号として、ボリュームテーブル２２０に追加し、各ボリューム番号に対応する記憶媒体番号を格納することができる。
【００６４】
図４は、データ保管管理装置１００におけるデータ管理情報１０９の構成例を示す。
【００６５】
データ管理情報１０９には、例えば、保管データ管理情報テーブル４００と、コストテーブル４１０と、書き込み閾値テーブル４２０とが含まれる。
【００６６】
保管データ管理情報テーブル４００には、データIDが書かれるカラム４０１と、保管ボリューム番号が書かれるカラム４０２、保管期限が書かれるカラム４０３と、データサイズが書かれるカラム４０４とがある。ストレージに記録されるデータ毎に、データＩＤ、保管ボリューム番号、保管期限及びデータサイズが記録される。
【００６７】
データIDは、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０に記録されるデータを識別するために付される識別子である。
【００６８】
保管ボリュームは、そのデータを保管したハードディスクボリューム１１８、フラッシュメモリボリューム１２８の番号である。保管ボリュームを迅速に特定するため、保管ボリュームの情報に付随して、パリティグループの番号や記憶媒体の番号を格納してもよい。
【００６９】
保管期限は、そのデータをハードディスクストレージ１１０、フラッシュメモリストレージ１２０に保管しなければならない期限である。
【００７０】
データサイズは、保管対象データのデータサイズである。
【００７１】
データの単位は、ファイルという単位であってもよいし、ファイルを構成するメタデータと本データが別々に管理されるものをデータの単位としてよい。またファイルのグルーピングされたディレクトリとそのファイル全体を一つのデータとして扱ってもよいし、コンテンツという、ある意味を持った情報の集まりであっても良い。
【００７２】
コストテーブル４１０は、データ保管で必要なコストの情報の一例である。コストテーブル４１０には、コスト対象項目が書かれるカラム４１１と、ビットコストが書かれるカラム４１２とがある。
【００７３】
コスト対象項目は、データ保管に関するコストの対象の項目を示す。コスト対象項目としては、コストテーブル４１０の例に示すとおり、ハードディスク１１９及びフラッシュメモリ１２９を記憶媒体として使用する場合のコストとして"HDD"及び"フラッシュメモリ"や、或る記憶媒体の寿命に到達した場合に別の記憶媒体にデータを移行するためのコストである"データ移行"がある。
【００７４】
ビットコストは、各コスト対象項目のビットコストを示している。例えば"HDD"であれば、ビットコストは"0.3ドル"であることを示している。
【００７５】
コスト対象項目は、同じ種類の記憶媒体でもコストが違う場合もあるので、個々の記憶媒体ごとに管理する場合もあり、それぞれを、コスト対象項目で識別するようにすることができる。例えば、同じHDDでも、HDD-Aという形式と、HDD-Bという形式があれば、個々にコストテーブルに情報を登録することになる。また、データ移行のあと、移行元のボリュームを削除するときのコストが別途かかるのであれば、このボリュームデータ削除に関する機能もコストの対象となるので、この機能もコスト対象項目に登録することになる。また、年ごとに記憶媒体や機能の価値自体が下がる場合もある。この場合に対応するために、個々の記憶媒体や機能のビットコストを期間ごとに管理しても良い。
【００７６】
書き込み閾値テーブル４２０は、データ保管を行なう記憶媒体で、データ保管上、書き込みの閾値を設ける記憶媒体と、その書き込み閾値を管理するテーブルである。書き込み閾値テーブル４２０には、記憶媒体の種別が書かれるカラム４２１と、記憶媒体種別に関する書き込み回数の閾値（以下、書き込み閾値）が書かれるカラム４２２とがある。
【００７７】
ここでいう「書き込み閾値」とは、この書込み回数に達するまで、対象の記憶媒体にデータが書込まれた場合、データを保管するため他の記憶媒体に対してデータを移行することを決めるための条件となる。書き込み閾値としては、フラッシュメモリに存在する書き込み制限回数それ自体を閾値としても良いし、書き込み制限回数の80%程度の値を設定して、これ以上の書き込みは危険と判定する値として使用するものとしても良い。
【００７８】
書き込み閾値テーブル４２０の例に従えば（テーブルの例が閾値５０００回となっているため）、記憶媒体であるフラッシュメモリには、書き込みの閾値として５０００回という値が設定されている。書き込みが５０００回経過していたら、他の記憶媒体へデータを保管することを考慮する条件となる。
【００７９】
書き込みし閾値の設定としては、固定値としてもよいが、長期間フラッシュメモリを使用するために、ある期間ごとに定期的に閾値の値を設定する方法も考えられる。例えば、はじめの1年を書き込み閾値５００回とし、1年おきにこの閾値を５００ずつ増加して設定することで、10年間で５０００回の書き込み閾値とするとしても良い。この書き込み閾値の更新は、ユーザが手で行っても良いが、ハードウェア或いはソフトウェアを用いて自動で行うことも可能である。
【００８０】
図５は、データ保管指定画面の一例を示す。
【００８１】
データ保管指定画面５００は、データ保管管理装置１００のデータ保管管理プログラム１０５が、ユーザからデータ保管の指示を受けた場合に表示するＧＵＩ（グラフィカルユーザインタフェース）の一つである。データ保管指定画面５００には、例えば、データIDの入力欄５０１と、データサイズの入力欄５０２と、保管期限の入力欄５０３とがある。それぞれの入力欄５０１、５０２、５０３に対して、実際に実行要求を出す実行ボタン５０４と、実行をキャンセルするボタン５０５とがある。実行ボタン５０４が押された後、キャンセルボタン５０５が出てきてもよい。
【００８２】
データ保管管理プログラム１０５は、この画面５００を介して、保管対象のデータの属性、すなわち、データＩＤ、データサイズ及び保管期限を受け付ける。この画面で入力されたデータＩＤ、データサイズ及び保管期限が、それぞれ、保管データ管理情報テーブル４００に記録される。例えば、図５の例に従えば、ユーザによって、データID"D1"、データサイズ"２０MB"、及び保管期限"4/30/07"が入力されて、実行ボタン５０４が押下された場合、データ保管管理プログラム１０５が、図６のフローチャートに従い、保管対象データの保管場所を探して、探し出された保管場所に、入力された保管対象データを格納することになる。
【００８３】
図６は、保管対象データの格納処理のフローチャートの一例である。
【００８４】
このフローチャートにおける各処理は、データ保管管理プログラム１０５が実行することができる。図６のフローチャートは、一つの保管対象データに関するものであり、複数の保管対象データを格納するときには、このフローチャートを、格納する保管対象データの個数分実行することになる。データ保管要求画面５００に、複数の保管対象データの各々の属性を登録する場合には、一番上の行に対応する保管対象データから格納していくことを例とする。データ格納順序を考慮する場合には、データ保管要求画面５００の登録の仕方を考慮し、優先的に格納するものを一番上にユーザが登録するようにすればよい。或いは、データ保管管理プログラム１０５が、その画面５００を介して、優先順位を受付けても良いし、予め登録されたポリシーに従って、データ格納順序を制御してもよい。
【００８５】
データ保管管理プログラム１０５の処理により、ユーザからデータ保管要求を受け付ける（ステップ６００）。ユーザは、図５で示したデータ保管管理画面５００により、データ保管を要求することになる。そして、ステップ６０１に進む。
【００８６】
ステップ６０１では、データ保管管理プログラム１０５は、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０のストレージ構成情報１１７、１２７から、ボリューム情報、パリティグループ情報、記憶媒体情報を取得する。そして、ステップ６０２に進む。
【００８７】
ステップ６０２では、データ保管管理プログラム１０５は、格納する保管対象データの書き込み数を取得する。書込み数は、例えば、入力されたデータサイズを基に計算することができる。具体的には、例えば、２０MBの保管対象データを64KBごとに書き込むことになれば、320回の書き込み回数が必要となる。そしてステップ６０３に進む。
【００８８】
ステップ６０３では、データ保管管理プログラム１０５は、ステップ６００で取得したデータ保管要求の保管期限から、ステップ６０１で取得したパリティグループにボリュームを作成する場合の保管コストを計算する。
【００８９】
保管コストは、ボリュームの保管期限が過ぎたとき、すなわちボリュームが属するパリティグループの保管期限が過ぎた場合、新規に導入する記憶媒体のボリュームで新たに生じるビットコストと、既存のボリュームから新規に導入する記憶媒体のボリュームにデータを移行するコストで決まる。具体的には、例えば、現在の日時を2006年4月30日とする。データ保管要求画面５００の例に従えば、データID"D1"の保管対象データの保管期間は2007年4月30日である。ストレージ構成情報１１７、１２７で、図２及び図３にあるとおり、パリティグループとして"P0"、"P1"、"P2"がある場合、パリティグループ"P0"は、保管期限が2007年4月30日であり、また、HDDで構成されていることから、HDDのビットコストとなる。よって、0.3ドルのビットコストである。上記に従えば、ボリューム"L2"は0.3ドルのビットコストであるが、ボリューム"L3"であると、フラッシュメモリボリュームなので1.0ドルのビットコストがかかることがわかる。
【００９０】
以上のステップ６０３の後、ステップ６０４に進む。
【００９１】
ステップ６０４では、データ保管管理プログラム１０５は、算出された保管コストの安いパリティグループを順番付けする。すなわち、データ保管管理プログラム１０５は、算出された保管コストが安いパリティグループから優先度が高くなるように、昇順に順番を付ける。そしてステップ６０５に進む。
【００９２】
前述の例に従えば、保管対象データ"D1"に対する保管コストにおいて、パリティグループ"P0"で0.3ドルのビットコスト、パリティグループ"P1"で0.3ドルのビットコスト、パリティグループ"P2"で1.0ドルのビットコストであることがわかる。パリティグループ"P0"とパリティグループ"P1"は同じコストであるが、この順番付けは、次のステップ６０５で行なう。パリティグループ"P2"が、"P0"と"P1"の次ということで、保管コストの安さでは3番目となる。
【００９３】
ステップ６０５では、データ保管管理プログラム１０５は、保管コストが同じものについて順番付けを行なう。ここでは、データ保管管理プログラム１０５は、データの保管期限とパリティグループの保管期限が近いものを順番付けする。
【００９４】
例えば、データID"D1"の保管対象データの保管期限は、2007年4月30日である。ステップ６０４では、パリティグループ"P0"とパリティグループ"P1"の両方とも同じ保管コストであり、同じ順番付けとなっているので、データ保管管理プログラム１０５は、両方のパリティグループの保管期限を調べる。パリティグループテーブル２１０の例に従えば、パリティグループ"P0"の保証期限は2007年4月30日であり、パリティグループ"P1"の保証期限は2008年4月30日であることがわかる。よって、保管対象データの保管期限により近いものはパリティグループ"P0"であることがわかるので、データ保管管理プログラム１０５は、パリティグループ"P0"をより早い順番とする。よって、ステップ６０４及び６０５では、"P0"、"P1"、"P2"の順番付けとなる。
【００９５】
ステップ６０５の後、ステップ６０６に進む。
【００９６】
ステップ６０６では、データ保管管理プログラム１０５は、次のステップ６０７の判定を行なっておらず、ステップ６０４及びステップ６０５の順番付けで最も早いパリティグループを選択する。そして、ステップ６０７に進む。
【００９７】
例えば、"P0"、"P1"、"P2"の順になっていれば、データ保管管理プログラム１０５は、まず、パリティグループ"P0"を選択し、次に、このステップを通るときには、"P1"を、さらにその次に"P2"を選択することになる。
【００９８】
ステップ６０７では、データ保管管理プログラム１０５は、ステップ６０６で選択したパリティグループに対して、保管対象データを書き込むと現書込み回数が書き込み閾値を超えるかどうか調べる。書込み閾値を超えればステップ６０９に進み、超えなければステップ６０８に進む。
【００９９】
例えば、パリティグループ"P0"を判定する場合、ストレージ構成情報１１７のパリティグループテーブル２１０から、パリティグループ"P0"を構成する記憶媒体が"１"、"２、""３"、"４"であることがわかる。記憶媒体"１"、"２"、"３"、"４"は、記憶媒体テーブル２００からHDDであることがわかる。また、データ保管管理プログラム１０５は、データ管理情報１０９の書き込み閾値テーブル４２０から、HDDに関する書き込み閾値は設定されておらず、書き込み閾値に影響しないことがわかる。よって、この場合、データ保管管理プログラム１０５は、現書込み回数が書き込み閾値を超えないと判定し、ステップ６０８に進む。
【０１００】
また、このステップ６０７において、パリティグループ"P１"を判定することになった場合には、"P1"もHDDで構成されていることから、書き込み閾値に影響しないことを示している。よって、この場合にも、データ保管管理プログラム１０５は、現書込み回数が書き込み閾値を超えないと判定し、ステップ６０８に進むことになる。
【０１０１】
また、このステップ６０７において、パリティグループ"P2"を判定することになった場合には、データ保管管理プログラム１０５は、"P2"はフラッシュメモリで構成されていることを特定する。また、データ保管管理プログラム１０５は、書き込み閾値テーブル４２０から、書き込み閾値が5000回であることがわかる。このとき、データ保管管理プログラム１０５は、パリティグループ"P2"に保管対象データを書込むと現書込み回数が書き込み閾値を超えるかどうかを調べる必要がある。データ保管管理プログラム１０５は、パリティグループテーブル２１０及び記憶媒体テーブル２００から、パリティグループ"P2"を構成する記憶媒体"９"、"１０"、"１１"、"１２"の現書き込み回数はそれぞれ4900回であることがわかる。
【０１０２】
また、パリティグループ"P2"は、パリティグループテーブル２１０のRAIDタイプからRAID５の構成であることがわかる。4台の記憶媒体によるRAID5の書き込み数は、4台の記憶媒体のうち3台の記憶媒体分がデータ用の書き込みで、1台分がパリティ用の書き込みになる。このため、通常のディスクへの書き込みにくらべて、3分の4倍書き込み数が多くなる。基本的に、1台の記憶媒体ごとに順次データが書かれることになるので、例えば、保管対象データの書き込み数が３００であれば、パリティグループのボリュームへの書き込み数は４００、1台の記憶媒体へは4台の記憶媒体をつかっているので、書き込み数は４００の4分の１で１００となる。よって、書き込み数３００のデータに対して、この場合1台の記憶媒体への書き込み数は１００となる（この書込み数で書込みが行われると、各記憶媒体の現書き込み回数が、ストレージアクセス監視プログラム１２６によって更新される）。
【０１０３】
フラッシュメモリストレージ１２０のストレージ構成情報１１７の記憶媒体テーブル２００の例に従えば、現在の各記憶媒体の現書き込み回数は４９００であり、データ保管管理プログラム１０５は、上記のように書き込み数３００の保管対象データを格納する場合は、1台の記憶媒体の現書き込み回数は５０００となることがわかる。よって、この場合は、まだ閾値を超えないので、データ保管管理プログラム１０５は、ステップ６０８に進む。しかし、例えば、データ書き込み数が６００となれば、データ保管管理プログラム１０５は、1台の記憶媒体の書き込み数は２００となることがわかる。よって、この場合は、１台の記憶媒体の現書き込み回数は５１００となってしまい、この場合は、書き込み閾値を超えることがわかる。よって、この場合はステップ６０９に進む。
【０１０４】
ステップ６０８では、データ保管管理プログラム１０５は、該当パリティグループ（ステップ６０６で選択したパリティグループ）の空き容量を基に、保管対象データを格納できるボリュームを該当パリティグループで作成できるかどうか判定する。データ保管管理プログラム１０５は、該当パリティグループの空き容量より、格納する保管対象データのサイズが小さければ、該当パリティグループに保管対象データを格納可能と判断する。ボリュームが作成できれば、ステップ６１１に、作成できなければステップ６０９に進む。
【０１０５】
具体的には、例えば、パリティグループ"P0"の総容量１００MBで、空き容量も"１００MB"であり、保管対象データ"D1"のデータサイズがデータ保管指定画面５００の例により２０MBである場合には、データ保管管理プログラム１０５は、データサイズよりも空き容量が大きいので、データ格納可能と判断する。この場合、ステップ６１１に進む。しかし、保管対象データ"D1"のデータサイズが１００MBより大きければ、データ保管管理プログラム１０５は、パリティグループ"P0"に保管対象データを格納できないことがわかる。この場合には、ステップ６０９に進む。
【０１０６】
ステップ６０９では、データ保管管理プログラム１０５は、ステップ６０７の判定を、ステップ６０５で順番付けされたパリティグループ全てについて行なったかを判定する。すなわち、データ保管管理プログラム１０５は、判定すべきすべてのパリティグループについて判定を行なったかを調べる。データ保管管理プログラム１０５は、すべて行なったのであれば、ステップ６１０に進み、すべて行なっていなければ、ステップ６０６に戻り、別のパリティグループでデータ格納可能か判定することになる。
【０１０７】
ステップ６１０では、データ保管管理プログラム１０５は、保管対象データを格納できる場所、すなわち保管対象データを格納できるパリティグループがないとして、その結果を、ユーザに提示する。そして処理を終わる。
【０１０８】
ステップ６１１では、データ保管管理プログラム１０５は、保管対象データを格納するボリュームを該当パリティグループに作成する。ボリュームのサイズはデータのサイズと同一でよい。
【０１０９】
例えば、保管対象データ"D1"は、データサイズが２０MBである。データ保管管理プログラム１０５は、この保管対象データ"D1"を格納可能と判定したパリティグループ"P0"に、データサイズ２０MBのボリュームを作成することになる。この場合、ストレージ構成情報１１７において、パリティグループの空き容量は、１００MBから８０MBに変わる。また、ボリュームテーブル２２０には、新しいボリューム"L1"の情報が格納されることになる。ストレージ構成情報１１７の更新は、例えば、ストレージ保管管理プログラム１０５が、更新後の情報をストレージ構成プログラム１１５に通知し、ストレージ構成プログラム１１５が、更新後の情報をストレージ構成情報１１７の所定の位置に書くことにより、行う。
【０１１０】
ステップ６１２では、データ保管管理プログラム１０５は、ステップ６１１で作成したボリュームに、保管対象データを格納する。そして、データ保管管理プログラム１０５は、データ管理情報１０９の保管データ管理テーブル４００に、格納した保管対象データのID、保管先のボリュームのID、保管期限及びデータサイズを登録する。ステップ６１２が終わった後、処理を終了する。
【０１１１】
以上の処理において、データ保管管理プログラム１０５は、保管対象データの格納のたびにボリュームを作成するが、既存のボリュームを選択し、選択したボリュームにデータを格納しても良い。この場合、ステップ６０８で、格納できるボリュームを作成できるかの前に、データ保管管理プログラム１０５は、既存のボリュームに、保管対象データを書き込む空き容量があるか否かを調べる。この判定を行なう場合には、ストレージ構成情報１１７、１２７のボリュームテーブル２２０に、各ボリュームの空き容量を登録する必要がある。ボリュームの空き容量は、保管対象データを格納するホスト、例えばデータ保管管理装置の管理状況にも依存するので、この情報は、ボリュームのIDとあわせて、データ管理情報１０９に登録されても良い。データ保管管理プログラム１０５は、このボリュームの空き容量があれば、ステップ６１２をすればよく、空き容量がなければ、すべてのボリュームの中に、保管対象データを格納するボリュームがあるかどうか調べればよい。この場合、調べる順序は、空き容量の大きいものからであると、調べる回数が少なくなる。
【０１１２】
また、図６において、パリティグループを構成しないボリューム、すなわち、記憶媒体単位で記憶媒体自体をボリュームとして扱うときには、図６のパリティグループの記述を「記憶媒体」として置き換えて、処理を行なえばよい。
【０１１３】
以上が、第一実施例についての説明である。なお、データ保管管理装置１００に搭載のコンピュータプログラムが、ストレージ１１０、１２０或いはコンピュータ装置１３０にあってもよい。また、この第一実施例では、データ移行プログラム１０７は、例えば、保管対象データの保管期限が記憶媒体の保証期限を越えており、且つ、その保証期限が現時点になった記憶媒体の有無を、定期的に調べ、そのような記憶媒体が見つかれば、その記憶媒体内のデータを、他の記憶媒体に移行することができる。他の記憶媒体の選定を、コストテーブル４１０を基に行うことができる。
【０１１４】
この第一実施例によれば、ハードディスクとフラッシュメモリが混在するストレージシステムにおいて、フラッシュメモリの寿命を尽きさせてしまうことなく、保管対象データの保管期間に応じたデータ保管が可能となる。また、データ保管コストの削減が可能となる。
【実施例２】
【０１１５】
以下、本発明の第二実施例について説明する。なお、以下、第一実施例との相違点を主に説明し、第一実施例との共通点については、説明を省略或いは簡略する（これは、他の実施例についても同様である）。
【０１１６】
図７は、本発明の第二実施例におけるデータ管理情報１０９の構成例を示す。
【０１１７】
第二実施例では、保管データ管理情報テーブル４００の構成が第一実施例と異なるので、図７には、保管データ管理情報テーブル４００を示している。コストテーブル４１０と書き込み閾値テーブル４２０の構成に違いはないので、図７には示していない。また、第二実施例では、データ特性テーブル７１０が追加されるので、図７に、そのテーブル７１０の構成例を示している。
【０１１８】
保管データ管理情報テーブル４００には、第一実施例で説明したものに加えて、データのアクセスパターンが記録されるカラム７０１と、データの読み出しの傾向を示すRead傾向が記録されるカラム７０２と、データの書き込みの傾向を示すWrite傾向が記録されるカラム７０３とがある。
【０１１９】
アクセスパターンは、データのアクセスパターンであり、具体的には、シーケンシャルかランダムかを示す。Read傾向は、データの読み出しの傾向を「多い」「少ない」という表現で表している。「多い」「少ない」は、ある読み出し数を閾値にして判断すればよい。Write傾向は、データの書き込みの傾向を「多い」「少ない」という表現で表している。「多い」「少ない」は、ある書き込み数を閾値として判断すればよい。アクセスパターン、Read傾向及びWrite傾向のうちの少なくとも一つは、手動で設定してもよいし、データ保管管理プログラム１０５が、ボリュームに対するデータＩＯの状況（アクセス状況）を監視し、その監視結果に従って、適時更新してもよい。
【０１２０】
データ特性テーブル７１０には、データのアクセスパターンが記録されるカラム７１１と、読み出し重視か書き込み重視かが記録されるカラム７１２と、アクセスパターン及びRead/Write重視の値に対する推奨の記憶媒体が記録されるカラム７１３と、推奨記憶媒体の優先度が記録されるカラム７１４とがある。この図７によれば、ランダムアクセスの推奨記憶媒体の方が、シーケンシャルアクセスの推奨記憶媒体よりも優先度が高い。また、Read/Write重視の値として、Write重視が書かれる場合、推奨記憶媒体は、フラッシュメモリではなくHDDとされるのが好ましい。フラッシュメモリは、書込み回数制限があるためである。
【０１２１】
このデータ特性テーブル７１０は、アクセスパターンやRead/Write重視といったデータ特性から、推奨記憶媒体を取得するのに用いられる。例えば、アクセスパターンが"ランダム"、Read/Write重視の値が"Read重視"であれば、推奨される記憶媒体がフラッシュメモリであることがわかる。実際に、フラッシュメモリは、ハードディスクのシーク時間、回転待ち時間を考慮する必要がないため、ランダムのリードは、フラッシュメモリの特性を生かしやすく、IO処理が高速になる。このテーブルは、後のフローチャートで用いられ、ユーザのデータ特性の指定や、実際のデータアクセスの状況により、推奨する適切な記憶媒体にデータを格納することになる。
【０１２２】
図８は、本発明の第二実施例におけるデータ保管指定画面の一例である。
【０１２３】
データ保管指定画面５００には、第一実施例で説明した入力欄に加えて、アクセスパターンの入力欄８０１と、Read/Write重視の入力欄８０２と、コスト重視か否かの入力欄８０３とが表示される。ユーザは、アクセスパターンや、ボリュームの用途がRead重視かWrite重視か、コスト重視有無を入力することができる。Read重視であれば「Read重視」の値が、Write重視であれば「Write重視」が入ることになる。この値を指定しない場合もある。コスト重視有無は、保管対象データを格納するボリュームが高いか安いかがあるが、その中で、保管コストを重視して保管対象データを扱いたい場合は、Yesを登録することになる。そうではない場合には、未入力、或いはNoを入力してもよい。
【０１２４】
図９は、本発明の第二実施例におけるデータ格納処理のフローチャートの一例である。
【０１２５】
ステップ９００のデータ保管情報取得処理は、図６のフローチャートのステップ６００、６０１、６０２の処理を表す。この処理を終了後、ステップ９０１に進む。
【０１２６】
ステップ９０１では、データ保管管理プログラム１０５は、ユーザの要求がコスト重視かどうか判定する。コスト重視かどうかは、図８のデータ保管指定画面５００で入力されたコスト重視有無により判断することができる。コスト重視有無の入力欄８０３に「Yes」と指定されていれば、コスト重視であるので、データ保管管理プログラム１０５は、ステップ９０２に進む。そうでなければ、すなわち、特にコスト重視８０３の指定がない場合には、ステップ９０４に進む。
【０１２７】
ステップ９０２のパリティグループ順番付け処理は、図６のフローチャートのステップ６０３、６０４、６０５の処理を表す。そしてステップ９０３に進むことになる。
【０１２８】
ステップ９０３のデータ保管処理１の処理は、図６のフローチャートのステップ６０６とそれ以降のステップを表す。すなわち、コスト重視のデータであれば、図６と同様のステップによりデータ保管処理を行なうことになる。
【０１２９】
ステップ９０４では、データ保管管理プログラム１０５は、データ特性による記憶媒体の特定があるかどうか判定する。これは、図８のデータ保管指定画面５００で入力されたアクセスパターン及びRead/Write重視と、図７のデータ特性テーブル７１０の設定により決定される。
【０１３０】
例えば、図７、図８の例に従えば、保管対象データ"D3"へのデータ保管要求として、"ランダム"で"Read重視"であることがわかる。この場合、図７のデータ特性テーブルに従えば、"ランダム"、"Read重視"のものはフラッシュメモリを記憶媒体として推奨されていることがわかる。この場合、ステップ９０４では、特定の記憶媒体があるものとして処理することになる。よって、この場合は、次にステップ９０５に進む。
【０１３１】
また、例えば、図８のユーザ要求において、保管対象データ"D1"において、コスト重視の指定がない場合を考慮する。この場合、ステップ９０１からステップ９０４に進むことになるが、画面５００には、アクセスパターン"シーケンシャル"が入力されたものの、Read重視ともWrite重視とも入力されていない。この場合、図７のデータ特性テーブル７１０では、Read重視でないものは推奨記憶媒体が指定されてないので、この場合、ステップ９０４では、特定の記憶媒体はないものとして処理することになる。よって、この場合、ステップ９０２に進むことになり、図６と同様な処理を行なうことになる。
【０１３２】
ステップ９０５では、データ保管管理プログラム１０５は、パリティグループに特定記憶媒体のみでリストを作成する、換言すれば、特定記憶媒体で構成されたパリティグループを選択することになる。すなわち、ここでは、図６のフローチャートのステップ６０３、６０４、６０５と同様なことを行なうが、特定された記憶媒体だけで処理を実行すればよい。例えば、データ保管管理プログラム１０５は、フラッシュメモリが特定記憶媒体として選択されていれば、フラッシュメモリを構成するパリティグループだけをリストの対象とし、その中で、保管コストの安い順に、記憶媒体の保証期限と保管対象データの保管期限が近いものを選ぶとしてよい。ただし、ステップ９０５では、コスト重視ではないので、保管コストの高い安いにとらわれず、例えば、空き容量とデータサイズが近いものを選択するなど、容量による順番付けを行なっても良い。また、データ保管管理プログラム１０５は、パリティグループごとの性能を測定していれば、その性能が高い（例えばIO処理が早い）ものから順に順番付けしても良い。また、この場合、データ保管管理プログラム１０５は、保管対象データの要求として性能重視かどうかも指定させても良い。ステップ９０５の処理の後、ステップ９０６に進む。
【０１３３】
ステップ９０６によるデータ保管処理２では、ステップ９０５で作成したパリティグループの順番付けにおいて、ステップ６０６とそれ以降の処理を行なうことになる。
【０１３４】
以上の処理により、保管コストや書き込み制限によるデータ保管だけでなく、データ特性にも応じたデータ保管記憶媒体及びパリティグループの選択し、適切なデータ保管先を決めて、データ保管を実行することが可能となる。なお、パリティグループの選択では、例えば、データ特性に合致するもののうち保管コストが最も安くなるパリティグループを選択しても良い。
【０１３５】
図１０は、本発明の第二実施例における保管場所変更処理を示すフローチャートの一例である。この保管場所変更処理は、データ移行プログラム１０７が実行する。
【０１３６】
ステップ１０００では、データ移行プログラム１０７は、保管対象データのアクセス特性、すなわち、保管対象データに対するアクセスパターンとしてシーケンシャルかランダムかや、Read重視(Readが多い)かWrite重視(Writeが多い)かを取得する。これは、定期的又は不定期的に取得するなどして、保管対象データのアクセス特性を監視することになる。そしてステップ１００１に進む。
【０１３７】
ステップ１００１では、データ移行プログラム１０７は、アクセス特性と現在割当てられているボリュームは適合しているか判定する。アクセス特性とボリュームが適合していれば、ステップ１００２に進み、適合していなければ処理を終了する。
【０１３８】
例えば、図７のデータ保管管理テーブルにおいて、データID"D３"の保管対象データが格納されているボリュームは"L3"である。ボリューム"L3"は、ボリュームテーブル２２０、パリティグループテーブル２１０及び記憶媒体テーブル２００（図３参照）から、フラッシュメモリのボリュームであることがわかる。フラッシュメモリは、図７のデータ特性テーブルから、Read重視の記憶媒体であることがわかる。
【０１３９】
ここで、保管対象データ"D3"がWrite重視に変更なった場合には、データ移行プログラム１０７は、フラッシュメモリが該当する特徴とは合致しなくなることがわかる。よって、この場合には、データ移行プログラム１０７は、アクセス特性とボリュームが適合していないとして、ステップ１００２に進む。保管対象データ"D3"がRead重視のままなら、特にアクセス特性の変更ないので、データ移行プログラム１０７は、フラッシュメモリボリュームでも特性に適合していると判定し、処理を終了する。
【０１４０】
ステップ１００２では、データ移行プログラム１０７は、保管媒体選択処理を行なう。これは、前述の説明での処理で、図６のステップ６０８で、判定がYesとなり、ステップ６１１に進む直前までの処理である。そしてステップ１００３に進む。
【０１４１】
ステップ１００３では、データ移行プログラム１０７は、現状の格納先ボリュームと、ステップ１００２で選択した格納先ボリュームで、同じ格納先ボリュームとなったかどうか判定する。同じであれば、処理を終了し、異なれば、ステップ１００４に進む。
【０１４２】
ステップ１００４では、格納先が異なるので、データ移行プログラム１０７は、新しく選択されたボリュームにデータを移動させるかどうかをユーザに問い合わせる。データ移動をしないとの回答をユーザから受けた場合、データ移行プログラム１０７は、特に何もせず処理を終了する。データ移動するとの回答をユーザから受けた場合、ステップ１００５に進む。ステップ１００４においては、データ移行プログラム１０７が、ユーザに問い合わせることなく決定してもよい
ステップ１００５では、データ移行プログラム１０７は、新規に選択された格納先ボリュームに、保管対象データを格納する。この処理のあと、図１０全体の処理の動作を終了することになる。
【０１４３】
以上のフローは、アクセス特性の変更だけでなく、記憶媒体追加などで、コストテーブル４１０の値に変化があったときにも応用することができる。記憶媒体追加時、コストテーブルに変更があれば、それを契機に、データ移行プログラム１０７が、ステップ１００２から処理を始めればよい。また、保管対象データと共に、コスト重視かどうかを格納していてもよい。その場合、ステップ１００２は、図９のフローチャートの処理を進め、最終的に、図６のステップ６０８で、判定がYesとなり、ステップ６１１に進む直前までの処理を行なうことができる。
【０１４４】
また、以上のフローにおいて、データ移行プログラム１０７は、現状の格納先ボリュームに記憶されている保管対象データを、新規に選択された格納先ボリュームに移動した場合、現状の格納先ボリュームからその保管対象データを消去してもよい。しかし、現状の格納先ボリュームがフラッシュメモリボリュームの場合、データを消去する処理は、所定コードのデータを埋める処理となるので、フラッシュメモリの寿命を縮めないためにも、移動元の保管対象データを消去しなくてもよい。その際、移動元の保管対象データは不要となるので、その保管対象データのデータサイズを空き容量とし、他の保管対象データを上書きしてもよい。このような上書き処理によって、実際に保管対象データを無くすことができる。
【実施例３】
【０１４５】
図１１は、本発明の第三実施例におけるデータ管理情報１０９の構成例を示す。
【０１４６】
第三実施例では、第二実施例で説明したものに加えて、データ管理情報１０９に、ボリューム機能テーブル１１００と、ボリューム機能対応テーブル１１１０とが更に含まれる。
【０１４７】
ボリューム機能テーブル１１００には、ボリュームの機能（換言すれば用途）が書かれるカラム１１０１と、そのボリューム機能のアクセスパターンが書かれるカラム１１０２と、そのボリューム機能でのRead/Write重視が書かれるカラム１１０３とがある。
【０１４８】
ここで、ボリューム機能として、例えば、スナップショットの差分を格納するためのボリューム群を示すスナップショットプールや、ボリュームの更新履歴やデータの更新順序に応じた情報を管理するためのボリューム群であるジャーナルプールや、書き込みに応じてボリュームを動的に容量拡張する機能で用いられるボリューム群である動的ボリューム拡張プールがある。そして、スナップショットプールにおいてはアクセスパターンがランダム、ジャーナルプールにおいては、アクセスパターンがシーケンシャルであること、動的ボリューム拡張プールにおいては、ランダムのアクセスパターンでRead重視であることを、図１１の例では示している。
【０１４９】
またボリューム機能テーブルにおいては、アクセスパターンやRead重視の項目ではなく、直接記憶媒体を割り当てておいてもよい。すなわち、ボリューム機能テーブル１１００に、ボリューム機能、アクセスパターン及びRead/Write重視のそれぞれのカラムの代わりに、記憶媒体に関する属性が記録されるカラムが用意されても良い。そして、そのカラムに記録される属性として、記憶媒体種別、例えば、"HDD"と"フラッシュメモリ"が格納されてもよい。そして、例えば、ボリューム機能がスナップショットプールやジャーナルプールであるとき、記憶媒体種別として"HDD"が記録され、それにより、スナップショットプールやジャーナルプールを設定するときには、各プールを構成する各ボリュームはハードディスクボリュームとされてもよい。また、ボリューム機能が動的ボリューム拡張プールであるとき、記憶媒体種別として"フラッシュメモリ"が記録され、それにより、動的ボリューム拡張プールを設定するときには、そのプールを構成する各ボリュームはフラッシュメモリボリュームとされてもよい。
【０１５０】
ボリューム機能対応テーブル１１１０は、各ボリューム機能に対して割当てられているボリュームと、各機能で構成されたプールの識別子を管理するテーブルである。ボリューム機能対応テーブル１１１０には、ボリューム機能が書かれるカラム１１１１と、各機能プールの識別子であるIDが書かれるカラム１１１２と、各機能のプールに割り当てられた各ボリュームのIDが記録されるカラム１１１３とがある。例えば、図１１の例に従えば、スナップショットプールはIDが"１"で、スナップショットプールに割り当てられているボリュームは"１０"，"２０"のIDを持つものであることを示している。
【０１５１】
図１２は、本発明の第三実施例で表示されるボリューム機能指定画面の一例を示す。
【０１５２】
例えば、ボリューム機能設定プログラム１０６が、ユーザからの所定の要求に応答して、ボリューム機能指定画面１２００を表示することができる。ボリューム機能指定画面１２００には、ボリューム機能の種類の入力欄１２１１と、ボリューム設定で必要なサイズ（プールの容量）の入力欄１２１２と、ボリューム機能を設定することを指示するボタンである実行ボタン１２１３と、実行をキャンセルするボタン１２１４とがある。
【０１５３】
サイズの入力欄１２１２には、サイズ指定ではなく、使用する既存のボリュームの番号を指定してもよい。その場合、ボリューム機能設定プログラム１０６は、指定された番号に対応するボリュームの特性が、指定されたボリューム機能を満たせるか否かをチェックし、満たせると判断した場合に、指定されたボリューム機能のプールに、指定されたボリュームを含めることができる。
【０１５４】
また、ボリューム設定時に、特にボリューム機能をつけない場合は、図５や図９で、データIDを示しているところを、ボリュームIDとして設定し、その特性に見合うボリュームを作成するようにしてもよい。このように作成することで、特性に応じたボリュームを設定することも可能となる。
【０１５５】
また、各ボリューム機能の情報を、別のストレージなどへ移行（マイグレーション）する場合がある。この場合は、マイグレーション元の情報を、サイズの変わりに指定することで、移行元のサイズを引き継いで、マイグレーション先のボリュームを、次の図１３のフローチャートによって設定すればよい。そして、マイグレーション元のボリュームから、マイグレーション先のボリュームにデータをマイグレーションすればよい。
【０１５６】
図１３は、本発明の第三実施例におけるボリューム機能設定処理のフローチャートの一例である。この処理は、ボリューム機能設定プログラム１０６により行う。
【０１５７】
ステップ１３００では、ボリューム機能設定プログラム１０６は、例えば図１１の画面１２００を介して、ボリューム機能設定を受け付ける。そしてステップ１３０１に進む。
【０１５８】
ステップ１３０１では、ボリューム機能設定プログラム１０６は、ストレージ構成情報１１７、１２７を取得する。そしてステップ１３０２に進む。
【０１５９】
ステップ１３０２では、ボリューム機能設定プログラム１０６は、データ構成情報１０９から、データ特性テーブル７１０に記録されている情報と、ボリューム機能テーブル１１００に記録されている情報を取得する。そしてステップ１３０３に進む。
【０１６０】
ステップ１３０３では、ボリューム機能設定プログラム１０６は、ボリューム特性に見合うにはフラッシュメモリかどうか判定する。特性に見合うのが、フラッシュメモリであれば、ステップ１３０４に進み、HDDであれば、ステップ１３０５に進む。
【０１６１】
例えば、ボリューム機能設定プログラム１０６は、取得した情報から、動的ボリューム拡張用のボリュームは、アクセスパターンがランダムで、Read重視であることがわかり（図１１参照）、ランダム且つRead重視に対応する推奨記憶媒体としてフラッシュメモリを特定することができる。よって、この場合、ステップ１３０４に進む。またジャーナルプールであれば、シーケンシャル特性は持つが、Read重視ではないので、データ特性テーブルからは、特に記憶媒体は選択できない。よってこの場合は、特に記憶媒体が選択できないとしてステップ１３０５に進む。もし、ボリューム機能テーブルにて、ジャーナルプールもRead重視という設定になっていれば、アクセスパターンがシーケンシャルでRead重視ということになっているので、図１１から推奨記憶媒体としてフラッシュメモリを特定することができる。よって、この場合、ステップ１３０４に進むことになる。
【０１６２】
ステップ１３０４では、ボリューム機能設定プログラム１０６は、ステップ１３０３の結果に従い、ボリュームを設定する記憶媒体をフラッシュメモリとして選択する。そしてステップ１３０６に進む。
【０１６３】
ステップ１３０５では、ボリューム機能設定プログラム１０６は、記憶媒体としてフラッシュメモリではない記憶媒体、すなわちハードディスクを選択する。また、このとき、ボリューム設定自体の保管期間が定まっていれば、保管コストを考慮し、コスト削減の対象とする記憶媒体はどれか判定してもよい。この判定は、図６のフローチャートと同様になる。そしてステップ１３０６に進む。
【０１６４】
ステップ１３０６では、ボリューム機能設定プログラム１０６は、選択した記憶媒体で、ステップ１３０１の指定を満たすボリュームが作成できるか、すなわち指定されたボリュームのサイズを確保できるか判定する。ボリューム機能設定プログラム１０６は、ボリュームが作成できるサイズがあれば、ステップ１３０７に進み、なければ、ステップ１３０８に進む。このステップ１３０６の判定は、例えば、選択された記憶媒体を有する記憶媒体群のトータルの空き容量が、指定されたボリュームのサイズ以上か否かを判定することにより、行うことができる。
【０１６５】
ステップ１３０７では、ボリューム機能設定プログラム１０６は、ステップ１３０１で取得した情報をもとに、ボリュームを作成し、ボリューム機能が実行できるように設定することになる。そして、処理を終了する。
【０１６６】
ステップ１３０８では、ボリュームを作成可能なサイズがないとして、その旨をユーザに通知する。そして処理を終了することになる。
【０１６７】
以上の処理により、ボリューム設定の場合にも、記憶媒体の特性に応じて、ボリュームの機能にあった記憶媒体を選択し、ボリュームを設定することが可能となる。また、図１２の指定で、ボリュームマイグレーションを設定された場合、例えば、サイズの代わりにマイグレーション元のボリュームが指定されたときには、ステップ１３０７で設定したボリュームをマイグレーション先として、マイグレーション元からデータを移行することができる。
【実施例４】
【０１６８】
図１４は、本発明の第四実施例に係る計算機システムの構成例を示す図である。
【０１６９】
この第四実施例では、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０にかわり、ハードディスク-フラッシュメモリ混在ストレージ１４０が備えられる。すなわち、一つのストレージ１４０に、複数のハードディスク１１９と複数のフラッシュメモリ１２９が備えられる。故に、一つのストレージ１４０に、ハードディスクボリューム１１８とフラッシュメモリボリューム１２８の両方が備えられる。なお、参照番号１４１〜１４７は、それぞれ、参照番号１１１〜１１７と同等の機能を有する。また、データ保管管理装置１００の機能をハードディスク-フラッシュメモリ混在ストレージに適用してもよい。
【実施例５】
【０１７０】
図１５は、本発明の第五実施例に係る計算機システムの構成例を示す図である。
【０１７１】
この第五実施例では、データ保管管理装置１００とハードディスクストレージ１１０及びフラッシュメモリストレージ１２０との間に、仮想化装置１４０が設置される。データ保管管理装置１００は、仮想化装置１４０を通じて、ハードディスクストレージ１１０及びフラッシュメモリストレージ１２０にアクセスする。ハードディスクストレージ１１０、フラッシュメモリストレージ１２０へのアクセスだけでなく、第四実施例に示したハードディスク-フラッシュメモリストレージ１４０に接続して、アクセスしてもよい。
【０１７２】
仮想化装置１５０は、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０の記憶資源を自身の記憶資源であるかのようにホスト（例えばデータ保管管理装置１００）に提供する装置である。この仮想化装置１５０にとって、ストレージ１１０、１２０はいわゆる外部ストレージである。仮想化装置１５０は、コントローラ１５１と、Ｉ／Ｆ１５２と、キャッシュ１５３と、メモリ１５４とを有する。
【０１７３】
メモリ１５４には、仮想化構成プログラム１５５と、ストレージアクセス監視プログラム１５６と、ストレージ構成情報１５７とが記憶される。仮想化構成プログラム１５５と、ストレージアクセス監視プログラム１５６は、コントローラ１５１によって実行される。仮想化構成情報１５７は、仮想化構成プログラム１５５、ストレージアクセス監視プログラム１５６で使用される情報である。
【０１７４】
仮想化構成プログラム１５５は、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０、第四実施例で示したハードディスク-フラッシュメモリストレージ１４０のボリュームを、データ保管管理装置１００などの計算機に対して仮想化したボリュームとして提供する。仮想化構成プログラム１５５は、ハードディスクボリューム１１８、フラッシュメモリボリューム１２８を仮想化して仮想化装置のボリュームとし、Ｉ／Ｆ１５２経由でデータ保管管理装置１００などの計算機に認識させるための機能や、ハードディスクボリューム１１８やフラッシュメモリボリューム１２８の間でデータ移行を行なうなどのストレージの機能を有する。
【０１７５】
ストレージアクセス監視プログラム１５６は、ハードディスクストレージ１１０、フラッシュメモリストレージ１２０、第四実施例で示したハードディスク-フラッシュメモリストレージ１４０のどのボリュームにどのようなアクセスがあるかを監視することができる。
【０１７６】
以上のような計算機システムでも、第一〜第三のうちの少なくとも一つの実施例のテーブルやプログラムを適用することで、ハードディスクボリューム１１８やフラッシュメモリボリューム１２８を管理することができる。なお、データ保管管理装置１００の機能を仮想化装置１５０に適用してもよい。
【実施例６】
【０１７７】
図１６は、本発明の第六実施例に係る計算機システムの構成例を示す図である。
【０１７８】
この第六実施例では、フラッシュメモリ１２９がキャッシュ１３３の中に定義されている。フラッシュメモリ１２９、キャッシュと同様の半導体メモリであるので、キャッシュとして存在する場合も考えられる。このような構成では、キャッシュ内に、フラッシュメモリボリューム１２８を定義することができる。なお、参照番号１６１〜１６７は、それぞれ、参照番号１１１〜１１７と同等の機能を有する。また、データ保管管理装置１００の機能をフラッシュメモリキャッシュストレージ１６０に適用してもよい。
【実施例７】
【０１７９】
図１７は、本発明の第七実施例に係る計算機システムの構成例を示す図である。
【０１８０】
この第七実施例では、第五実施例において、仮想化装置１５０に代えて、スイッチ装置に、データ保管管理装置１００の機能が適用されている。
【０１８１】
スイッチ装置１７０は、例えば、ファイバチャネルネットワークのスイッチ装置とする。スイッチ装置１７０には、コントローラ１７１、Ｉ／Ｆ１７２、キャッシュ１７３及びメモリ１７４がある。メモリ１７４には、データ保管管理プログラム１７５、ボリューム機能設定プログラム１７６、データ移行プログラム１７７、保管対象データ１７８及びデータ管理情報１７９が記憶される。すなわち、スイッチ装置１７０に、データ保管管理装置１００の機能が適用される。
【０１８２】
以上、本発明の実施形態及び幾つかの実施例を説明したが、これらの実施形態及び実施例は本発明の説明のための例示にすぎず、本発明の範囲をそれらの実施形態及び実施例にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【０１８３】
例えば、記憶媒体を選択する場合に、アクセスパターンがランダムならば、フラッシュメモリが選択され、アクセスパターンがシーケンシャルならば、ハードディスクが選択されても良い。アクセスパターンがランダムだと、ハードディスクのヘッドのシーク量が多くなってしまうからである。但し、この場合において、アクセスパターン"ランダム"に加えて"リード重視"が設定されている場合には、フラッシュメモリが選択されても良い。一方、アクセスパターン"シーケンシャル"に加えて"ライト重視"が設定されている場合には、書込みが発生するとフラッシュメモリの寿命が短くなるので、ハードディスクが選択されても良い。すなわち、アクセスパターン及びRead/Write重視の両方が設定されている場合には、Read/Write重視を優先して推奨記憶媒体を設定し、Read/Write重視がなければ、アクセスパターンがランダムであるかシーケンシャルであるかに応じて、記憶媒体が選択されても良い。
【０１８４】
本発明に従う制御装置の第一の実施態様では、前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスである。前記第一種の記憶デバイスの書込み回数閾値を取得する第四の取得部と、前記保管対象データのデータサイズを基に、前記保管対象データを前記第一種の記憶デバイスに書込む場合に生じる書込み回数を算出する算出部と、複数の第一種の記憶デバイスの各々の現在までのトータル書込み回数を取得する第五の取得部とが更に備えられる。前記選択部は、前記第一種の記憶デバイスを選択する場合、前記算出された書込み回数と前記トータル書込み回数との和が前記書込み回数閾値以下となる第一種の記憶デバイスを選択する。
【０１８５】
第二の実施態様では、前記第一の実施態様において、前記ストレージシステムには、複数のパリティグループがある。前記複数のパリティグループの各々は、二以上の第一種の記憶デバイスで構成されている。前記保管対象データは、パリティグループを構成する第一種の記憶デバイスに分散して格納されている。前記選択部は、第一種の記憶デバイスを選択する場合、前記複数のパリティグループの中から、パリティグループを構成する二以上の第一種の記憶デバイスのそれぞれが前記書込み回数閾値以下となるパリティグループを選択する。
【０１８６】
第三の実施態様では、前記第二の実施態様において、前記複数のパリティグループの各々のＲＡＩＤレベルを取得する第六の取得部が更に備えられる。前記算出部は、前記取得した各ＲＡＩＤレベルを基に、各パリティグループを構成する各第一種の記憶デバイスの書き込み回数を算出する。
【０１８７】
第四の実施態様では、前記第一種の記憶デバイスは、フラッシュメモリである（ＤＶＤなどの書込み回数制限のある他種の記憶デバイスでも良い）。前記第二種の記憶デバイスは、ハードディスクである。
【０１８８】
第五の実施態様では、前記保管対象データのアクセス特性であるデータアクセス特性を取得する第七の取得部が更に備えられる。前記選択部は、前記複数種類の記憶デバイスの中から、前記トータルコストが最小となり、且つ、前記取得されたデータアクセス特性に適合するデバイスアクセス特性を有する種類の記憶デバイスを選択する。前記デバイスアクセス特性は、記憶デバイスのアクセス特性である。
【０１８９】
第六の実施態様では、前記第五の実施態様において、前記データアクセス特性及び前記デバイスアクセス特性は、アクセスパターンと、リード優先かライト優先かとのうちの少なくとも一つである。
【０１９０】
第七の実施態様では、前記第六の実施態様において、前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスである。前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性がリード優先の場合に、第一種の記憶デバイスを選択し、ライト優先の場合に、第二種の記憶デバイスを選択する。
【０１９１】
第八の実施態様では、前記第六の実施態様において、前記アクセスパターンには、ランダムアクセスとシーケンシャルアクセスとがある。前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性がランダムアクセスの場合に、第一種の記憶デバイスを選択し、シーケンシャルアクセスの場合に、第二種の記憶デバイスを選択する。
【０１９２】
第九の実施態様では、前記第八の実施態様において、前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスである。前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性が、ランダムアクセスで、かつ、ライト優先の場合には、第二種の記憶デバイスを選択する。
【０１９３】
第十の実施態様では、前記八の実施態様において、前記第一種の記憶デバイスは、書込み回数に制限のあるタイプの記憶デバイスである。前記選択部は、前記データアクセス特性及び前記デバイスアクセス特性が、シーケンシャルアクセスで、かつ、リード優先の場合には、第一種の記憶デバイスを選択する。
【０１９４】
第十一の実施態様では、前記第五の実施態様において、前記保管対象データに対するアクセス特性を監視する監視部と、前記監視により得られたアクセス特性と前記選択した記憶デバイスのデバイスアクセス特性とが異なっているか否かを判断する第一の判断部と、データ移行部とが更に備えられる。前記選択部は、異なっていると判断された場合、前記複数種類の記憶デバイスの中から、前記監視により得られたアクセス特性に適合するデバイスアクセス特性を有した種類の記憶デバイスを選択する。前記データ移行部は、前記選択された記憶デバイスから、前記アクセス特性に適合するデバイスアクセス特性を有する記憶デバイスに、データを移行する。
【０１９５】
第十二の実施態様では、コスト重視か否かを判断する第二の判断部が更に備えられる。前記選択部は、コスト重視ではないと判定された場合、前記複数種類の記憶デバイスの中から、前記取得されたデータアクセス特性に適合するデバイスアクセス特性を有する種類の記憶デバイスを選択する。前記デバイスアクセス特性は、記憶デバイスのアクセス特性である。
【０１９６】
第十三の実施態様では、ボリューム機能と、そのボリューム機能を付与する論理ボリュームとの指定をユーザから受け付ける受付部と、前記指定されたボリューム機能に対応するアクセス特性を取得する第八の取得部と、前記指定された論理ボリュームを構成する記憶デバイスを前記複数の記憶デバイスの中から特定する特定部と、前記特定された記憶デバイスのアクセス特性が、前記取得されたアクセス特性に適合するか否かを判断する第三の判断部と、適合しないと判断した場合には、前記指定された論理ボリュームに前記ボリューム機能を付与しないボリューム機能付与制御部とが更に備えられる。
【０１９７】
第十四の実施態様では、前記制御装置は、前記ストレージシステムの上位装置であり、前記ストレージシステムの複数の第一種の記憶デバイスと複数の第二種の記憶デバイスとを自分の記憶資源として提供する仮想化装置に接続される。
【０１９８】
第十五の実施態様では、前記ストレージシステムが、前記ストレージシステムのホスト装置によって前記ストレージシステムの記憶デバイスに書き込まれる又はその記憶デバイスから読み出されたデータを一時的に記憶するキャッシュメモリを備え、該キャッシュメモリが、複数の前記第一種の記憶デバイスを備える。
【０１９９】
第十六の実施態様では、前記制御装置が、前記ストレージシステムのホスト装置と前記ストレージシステムとの間に介在するスイッチ装置である。
【０２００】
本発明の別の側面に従う制御装置は、前記ストレージシステムで保管する対象である保管対象データのアクセス特性であるデータアクセス特性を取得する取得部と、前記複数種類の記憶デバイスの中から、前記取得されたデータアクセス特性に適合するデバイスアクセス特性を有する種類の記憶デバイスを選択する選択部とを備える。前記デバイスアクセス特性は、記憶デバイスのアクセス特性である。前記アクセス特性は、シーケンシャルアクセスかランダムアクセスかと、リード優先かライト優先かとのうちの少なくとも一つである。
【０２０１】
本発明のまた別の側面に従う制御装置は、ボリューム機能と、そのボリューム機能を持たせる論理ボリュームとの指定をユーザから受け付ける受付部と、前記指定されたボリューム機能に対応するアクセス特性を取得する取得部と、前記指定された論理ボリュームを構成する記憶デバイスを前記複数の記憶デバイスの中から特定する特定部と、前記特定された記憶デバイスのアクセス特性が、前記取得されたアクセス特性に適合するか否かを判断する判断部と、適合しないと判断した場合には、前記指定された論理ボリュームに前記ボリューム機能を持たせない制御部とを備える。前記アクセス特性は、シーケンシャルアクセスかランダムアクセスかと、リード優先かライト優先かとのうちの少なくとも一つである。前記ボリューム機能とは、スナップショットの管理により生じる差分データを格納する機能と、第一の論理ボリュームの更新履歴を格納する機能と、第二の論理ボリュームに対する書き込みに応じて動的にその第二の論理ボリュームに割り当てられる機能とのうちの少なくとも一つである。
【０２０２】
これらの制御装置は、例えば、ストレージシステムの上位装置（例えば、ストレージシステムにＩＯコマンドを発行するホスト計算機、或いは、ストレージシステムを管理する管理計算機）であっても良いし、ストレージシステムに備えられても良いし、ストレージシステムと上位装置との間に備えられる中間デバイスに備えられても良い。或いは、制御装置の各部が、ストレージシステムの上位装置、中間デバイス及びストレージシステムのうちの少なくとも二つに分散して備えられても良い。
【０２０３】
上述した各制御装置の各部は、ハードウェア（例えば回路）、プロセッサ（例えばＣＰＵ）で実行されるコンピュータプログラム、或いはそれらの組み合わせ（例えば、或る部の一部をハードウェアで実行し残りをコンピュータプログラムで実行すること）によって実現することができる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【図面の簡単な説明】
【０２０４】
【図１】図１は、本発明の第一実施例に係る計算機システムの構成例を示す。
【図２】図２は、ハードディスクストレージ１１０のストレージ構成情報１１７の構成例を示す。
【図３】図３は、フラッシュメモリストレージ１２０のストレージ構成情報１２７の構成例を示す。
【図４】図４は、データ保管管理装置１００におけるデータ管理情報１０９の構成例を示す。
【図５】図５は、データ保管指定画面の一例を示す。
【図６】図６は、保管対象データの格納処理のフローチャートの一例である。
【図７】図７は、本発明の第二実施例におけるデータ管理情報１０９の構成例を示す。
【図８】図８は、本発明の第二実施例におけるデータ保管指定画面の一例である。
【図９】図９は、本発明の第二実施例におけるデータ格納処理のフローチャートの一例である。
【図１０】図１０は、本発明の第二実施例における保管場所変更処理を示すフローチャートの一例である。
【図１１】図１１は、本発明の第三実施例におけるデータ管理情報１０９の構成例を示す。
【図１２】図１２は、本発明の第三実施例で表示されるボリューム機能指定画面の一例を示す。
【図１３】図１３は、本発明の第三実施例におけるボリューム機能設定処理のフローチャートの一例である。
【図１４】図１４は、本発明の第四実施例に係る計算機システムの構成例を示す図である。
【図１５】図１５は、本発明の第五実施例に係る計算機システムの構成例を示す図である。
【図１６】図１６は、本発明の第六実施例に係る計算機システムの構成例を示す図である。
【図１７】図１７は、本発明の第七実施例に係る計算機システムの構成例を示す図である。
【符号の説明】
【０２０５】
１００…データ保管管理装置  １０１…ＣＰＵ  １０２…Ｉ／Ｆ  １０３…入出力装置  １０４…メモリ  １０５…データ保管管理プログラム  １０６…ボリューム機能設定プログラム  １０７…データ移行プログラム  １０８…保管対象データ  １０９…データ管理情報  １１０…ハードディスクストレージ  １１１…コントローラ  １１２…Ｉ／Ｆ  １１３…キャッシュ  １１４…メモリ  １１５…ストレージ構成プログラム  １１６…ストレージアクセス監視プログラム  １１７…ストレージ構成情報  １１８…ハードディスクボリューム  １１９…ハードディスク  １２０…フラッシュメモリストレージ  １２１…コントローラ  １２２…Ｉ／Ｆ  １２３…キャッシュ  １２４…メモリ  １２５…ストレージ構成プログラム  １２６…ストレージアクセス監視プログラム  １２７…ストレージ構成情報  １２８…フラッシュメモリボリューム  １２９…フラッシュメモリ  １３０…コンピュータ装置  １３１…CPU  １３２…Ｉ／Ｆ  １３３…入出力装置  １３４…メモリ  １３５…データ送信プログラム
【図１】
2008015623.tif 000003
【図２】
2008015623.tif 000004
【図３】
2008015623.tif 000005
【図４】
2008015623.tif 000006
【図５】
2008015623.tif 000007
【図６】
2008015623.tif 000008
【図７】
2008015623.tif 000009
【図８】
2008015623.tif 000010
【図９】
2008015623.tif 000011
【図１０】
2008015623.tif 000012
【図１１】
2008015623.tif 000013
【図１２】
2008015623.tif 000014
【図１３】
2008015623.tif 000015
【図１４】
2008015623.tif 000016
【図１５】
2008015623.tif 000017
【図１６】
2008015623.tif 000018
【図１７】
2008015623.tif 000019