(57)【要約】【課題】本発明の記憶制御装置は、電力料金の時間帯による変化を利用し、ハードディスクとフラッシュメモリデバイスのような消費電力の異なる記憶デバイスの間で、データの格納先を制御する。【解決手段】記憶制御装置１は、消費電力の異なるハードディスク６及びフラッシュメモリデバイス７を備える。スケジュール管理部８は、ホスト２によって利用されるデータの格納先を制御するためのスケジュールを管理する。電力料金の安い夜間に、ハードディスク６からフラッシュメモリデバイス７にデータをコピーする。電力料金の高い昼間は、フラッシュメモリデバイス７内のデータを用いて、ホスト２からのアクセスを処理する。次の夜では、フラッシュメモリデバイス７のデータとハードディスク６のデータとが一致するように、差分をコピーする。【選択図】図１
2008276626.tif 000002
【特許請求の範囲】
【請求項１】
上位装置によって利用されるデータを記憶する記憶制御装置であって、
不揮発性の書換可能な記憶媒体を備え、かつ、消費電力が相対的に低い第１記憶デバイスと、
不揮発性の書換可能な記憶媒体を備え、かつ、消費電力が相対的に高い第２記憶デバイスと、
電力コストに基づいて所定データの格納先を制御するためのスケジュールを管理するスケジュール管理部と、
前記第１記憶デバイス及び前記第２記憶デバイスの作動をそれぞれ制御するための制御部であって、前記スケジュールに基づいて、前記所定データの格納先を前記第１記憶デバイスと前記第２記憶デバイスとの間で変更するための制御部と、
を備える記憶制御装置。
【請求項２】
前記制御部は、前記第１記憶デバイスを用いて、前記上位装置からのアクセス要求を処理する請求項１に記載の記憶制御装置。
【請求項３】
前記制御部は、前記スケジュールに基づいて、前記所定データの格納先を、前記電力コストが相対的に高い時間帯では前記第１記憶デバイスに、前記電力コストが相対的に低い時間帯では前記第２記憶デバイスにとなるように、制御する請求項１に記載の記憶制御装置。
【請求項４】
前記スケジュールには、前記上位装置が前記所定データにアクセスする第１期間を示す情報も記録されている請求項１に記載の記憶制御装置。
【請求項５】
前記上位装置が前記所定データにアクセスする状況を検出して管理するアクセス状況管理部をさらに備え、前記アクセス状況管理部を用いることにより前記スケジュールが生成される請求項４記載の記憶制御装置。
【請求項６】
前記スケジュールには、前記所定データを使用するユーザによって予め設定される条件も記録されている請求項４に記載の記憶制御装置。
【請求項７】
前記制御部は、前記第１期間が到来する前に、前記所定データの少なくとも一部を、前記第２記憶デバイスから前記第１記憶デバイスに予めコピーし、かつ、前記第１期間が終了した後は、前記第１記憶デバイスの記憶内容と前記第２記憶デバイスの記憶内容の差分を前記第１記憶デバイスから前記第２記憶デバイスにコピーさせる、請求項４に記載の記憶制御装置。
【請求項８】
前記制御部は、前記第１記憶デバイスの空き容量が所定値以上の場合は、前記上位装置から受信したライトデータを前記第１記憶デバイスに記憶し、前記第１記憶デバイスの空き容量が前記所定値未満の場合に、前記ライトデータを前記第２記憶デバイスに記憶させる請求項７に記載の記憶制御装置。
【請求項９】
キャッシュメモリをさらに備え、
前記制御部は、
（１）前記第１記憶デバイスの空き容量が所定値以上の場合は、前記上位装置から受信したライトデータを前記第１記憶デバイスに記憶し、
（２）前記第１記憶デバイスの空き容量が前記所定値未満の場合、前記キャッシュメモリの空き容量が他の所定値以上であれば、前記ライトデータを前記キャッシュメモリに記憶し、
（３）前記第１記憶デバイスの空き容量が前記所定値未満であって、かつ、前記キャッシュメモリの空き容量が前記他の所定値未満である場合、前記ライトデータを前記第２記憶デバイスに記憶させる、請求項７に記載の記憶制御装置。
【請求項１０】
前記スケジュールには、前記上位装置が前記所定データにアクセスする第１期間を示す情報と、前記所定データを使用するユーザにより設定される第１条件または第２条件のいずれか一方の条件とが、それぞれ設定されており、
前記制御部は、（１）前記第１期間が到来する前に、前記第２記憶デバイスから前記第１記憶デバイスへの前記所定データのコピーを開始し、（１ａ）前記第１条件が設定されている場合、前記電力コストが相対的に低い時間帯から前記電力コストが相対的に高い時間帯に移行する際に前記コピーを終了し、（１ｂ）前記第２条件が設定されている場合、前記電力コストが相対的に高い時間帯に移行した場合であっても、前記所定データの全てを前記第２記憶デバイスから前記第１記憶デバイスにコピーさせる、請求項３に記載の記憶制御装置。
【請求項１１】
前記制御部は、前記第２記憶デバイスから前記第１記憶デバイスに前記所定データの格納先が変更された場合、前記第２記憶デバイスを省電力状態に移行させる請求項１に記載の記憶制御装置。
【請求項１２】
前記制御部は、前記第１記憶デバイスの使用状況に基づいて前記第１記憶デバイスの寿命を予測し、予測された寿命が所定の閾値に達した場合には、前記所定データの格納先を前記第２記憶デバイスまたは別の第１記憶デバイスのいずれかに変更させる請求項１に記載の記憶制御装置。
【請求項１３】
前記制御部は、前記第１記憶デバイスの使用状況に基づいて前記第１記憶デバイスの寿命を予測し、予測された寿命が所定の閾値に達し、かつ、前記第１記憶デバイスに関する読出し要求の割合が予め設定された判定用閾値未満である場合に、前記所定データの格納先を前記第２記憶デバイスまたは別の第１記憶デバイスのいずれかに変更させる請求項１に記載の記憶制御装置。
【請求項１４】
前記制御部は、前記第１記憶デバイスの使用状況に基づいて前記第１記憶デバイスの寿命を予測し、（１）予測された寿命が所定の閾値に達した場合、（１ａ）前記第１記憶デバイスに関する読出し要求の割合が予め設定された判定用閾値未満である場合に、前記所定データの格納先を前記第２記憶デバイスに変更し、（１ｂ）前記第１記憶デバイスに関する前記読出し要求の割合が前記判定用閾値以上である場合に、前記所定データの格納先を別の第１記憶デバイスに変更し、さらに、（２）前記予測された寿命が前記所定の閾値に達していない場合であっても、前記第１記憶デバイスに関する前記読出し要求の割合が前記判定用閾値未満の場合は、前記所定データの格納先を前記第２記憶デバイスに変更する、請求項１に記載の記憶制御装置。
【請求項１５】
前記第１記憶デバイスはフラッシュメモリデバイスであり、前記第２記憶デバイスはハードディスクデバイスである、請求項１に記載の記憶制御装置。
【請求項１６】
上位装置によって利用されるデータを記憶する記憶制御装置を制御するための方法であって、
前記記憶制御装置は、消費電力が相対的に低い第１記憶デバイス及び消費電力が相対的に高い第２記憶デバイスをそれぞれ利用可能であり、
前記上位装置が前記所定データにアクセスする第１期間が到来するよりも前の第２期間内に、前記第２記憶デバイスから前記第１記憶デバイスへの所定データのコピーを開始させるステップと、
前記上位装置からのアクセス要求を前記第１記憶デバイスを用いて処理させるステップと、
前記アクセス要求によって前記第１記憶デバイスと前記第２記憶デバイスとの間に生じた差分を検出するステップと、
前記第１期間の終了後の別の第２期間内に、前記差分を前記第１記憶デバイスから前記第２記憶デバイスにコピーさせるステップと、
を含み、かつ、
前記第１期間は、電力コストが相対的に高い時間帯に設定されており、前記第２期間は、電力コストの相対的に低い時間帯に設定されている、記憶制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置及び記憶制御装置の制御方法に関する。
【背景技術】
【０００２】
例えば、企業等の組織では、多量のデータを管理するために、記憶制御装置を用いる。例えば、金融機関や病院等のような組織では、多くの顧客に関する売買データや診療データ等を長期間保存する必要があるため、信頼性が高く、かつ、大容量の記憶制御装置が必要とされる。高信頼性及び大容量の両方を満たす記憶制御装置では、例えば、多数のハードディスクドライブを備えており、RAID（Redundant Array of Independent Disks）に基づく記憶領域をホストに提供可能である。
【０００３】
企業等で長期間管理すべきデータは日々増大する。従って、記憶制御装置に搭載されるハードディスクドライブの数も増加する一方である。ハードディスクドライブは、よく知られているように、スピンドルモータで磁気ディスクを高速回転させながら、磁気ヘッドをシークさせてデータの読み書きを行う。このため、ハードディスクドライブは、半導体メモリのような記憶デバイスに比べて、消費電力が大きい。
【０００４】
記憶制御装置の記憶容量を大きくすればするほど、搭載されるハードディスクドライブの数が増大する。従って、記憶制御装置の消費電力が大きくなる。消費電力の増大につれて、記憶制御装置の総所有コスト（TCO）も大きくなる。
【０００５】
このため、MAID（Massive Array of Idle Disks）と呼ばれる技術では、使用されていないハードディスクを待機状態とすることにより、消費電力を低減させる。また、待機中のハードディスクをできるだけ速やかにスピンアップ状態に移行させて、応答性能を改善するようにした技術（特許文献１）や、論理ボリュームの稼働実績に応じてハードディスクの電力消費量を管理する技術（特許文献２）も提案されている。
【特許文献１】特開２００７−７９７４９号公報
【特許文献２】特開２００７−７９７５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術では、ハードディスクドライブの電力消費量を低減できる。しかし、現在では、より一層の電力コストの低減が要求されている。ところで、近年では、新たな記憶デバイスとして、フラッシュメモリデバイスが注目されている。フラッシュメモリデバイスとハードディスクドライブとを比較すると、一般的に、フラッシュメモリデバイスの方が消費電力は少なく、かつ、データの読出し速度も速い。
【０００７】
しかし、フラッシュメモリデバイスでは、セルの物理的構造に起因して、書込み回数に制限を受けることがある。また、セルに蓄積された電荷は、時間の経過につれて減少するため、データを長期間にわたって保存するために、定期的にリフレッシュ動作を実行する必要がある。
【０００８】
記憶制御装置は、大量のデータを長期間安定して保存する必要があるため、フラッシュメモリデバイスをそのまま使用することは難しい。もしも、記憶制御装置にフラッシュメモリデバイスとハードディスクドライブとの両方を搭載できるとしても、ホストコンピュータからのアクセスがハードディスクドライブに集中するような場合には、記憶制御装置全体としての電力消費量を低減することができない。
【０００９】
そこで、本発明の目的は、電力コストを考慮して設定されるスケジュールに基づいて、データの格納先を、消費電力のそれぞれ異なる第１記憶デバイス及び第２記憶デバイスの間で切り替えることができるようにした記憶制御装置及び記憶制御装置の制御方法を提供することを目的とする。本発明の他の目的は、第１記憶デバイスの寿命に応じて、データの格納先を修正することができるようにした記憶制御装置及び記憶制御装置の制御方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、本発明に従う、上位装置によって利用されるデータを記憶する記憶制御装置は、不揮発性の書換可能な記憶媒体を備え、かつ、消費電力が相対的に低い第１記憶デバイスと、不揮発性の書換可能な記憶媒体を備え、かつ、消費電力が相対的に高い第２記憶デバイスと、電力コストに基づいて所定データの格納先を制御するためのスケジュールを管理するスケジュール管理部と、第１記憶デバイス及び第２記憶デバイスの作動をそれぞれ制御するための制御部であって、スケジュールに基づいて、所定データの格納先を第１記憶デバイスと第２記憶デバイスとの間で変更するための制御部と、を備えている。
【００１１】
本発明の実施形態では、制御部は、第１記憶デバイスを用いて、上位装置からのアクセス要求を処理することができる。
【００１２】
本発明の実施形態では、制御部は、スケジュールに基づいて、所定データの格納先を、電力コストが相対的に高い時間帯では第１記憶デバイスに、電力コストが相対的に低い時間帯では第２記憶デバイスにとなるように、制御することができる。
【００１３】
本発明の実施形態では、スケジュールには、上位装置が所定データにアクセスする第１期間を示す情報も記録させることができる。
【００１４】
本発明の実施形態では、上位装置が所定データにアクセスする状況を検出して管理するアクセス状況管理部をさらに備え、アクセス状況管理部を用いることによりスケジュールを生成してもよい。
【００１５】
本発明の実施形態では、スケジュールには、所定データを使用するユーザによって予め設定される条件も記録させることができる。
【００１６】
本発明の実施形態では、制御部は、第１期間が到来する前に、所定データの少なくとも一部を、第２記憶デバイスから第１記憶デバイスに予めコピーし、かつ、第１期間が終了した後は、第１記憶デバイスの記憶内容と第２記憶デバイスの記憶内容の差分を第１記憶デバイスから第２記憶デバイスにコピーさせることができる。
【００１７】
本発明の実施形態では、制御部は、第１記憶デバイスの空き容量が所定値以上の場合は、上位装置から受信したライトデータを第１記憶デバイスに記憶し、第１記憶デバイスの空き容量が所定値未満の場合に、ライトデータを第２記憶デバイスに記憶させることもできる。
【００１８】
本発明の実施形態では、キャッシュメモリをさらに備え、制御部は、（１）第１記憶デバイスの空き容量が所定値以上の場合は、上位装置から受信したライトデータを第１記憶デバイスに記憶し、（２）第１記憶デバイスの空き容量が所定値未満の場合、キャッシュメモリの空き容量が他の所定値以上であれば、ライトデータをキャッシュメモリに記憶し、（３）第１記憶デバイスの空き容量が所定値未満であって、かつ、キャッシュメモリの空き容量が他の所定値未満である場合、ライトデータを第２記憶デバイスに記憶させることもできる。
【００１９】
本発明の実施形態では、スケジュールには、上位装置が所定データにアクセスする第１期間を示す情報と、所定データを使用するユーザにより設定される第１条件または第２条件のいずれか一方の条件とが、それぞれ設定されており、制御部は、（１）第１期間が到来する前に、第２記憶デバイスから第１記憶デバイスへの所定データのコピーを開始し、（１ａ）第１条件が設定されている場合、電力コストが相対的に低い時間帯から電力コストが相対的に高い時間帯に移行する際にコピーを終了し、（１ｂ）第２条件が設定されている場合、電力コストが相対的に高い時間帯に移行した場合であっても、所定データの全てを第２記憶デバイスから第１記憶デバイスにコピーさせる、ことができる。
【００２０】
本発明の実施形態では、制御部は、第２記憶デバイスから第１記憶デバイスに所定データの格納先が変更された場合、第２記憶デバイスを省電力状態に移行させる。
【００２１】
本発明の実施形態では、制御部は、第１記憶デバイスの使用状況に基づいて第１記憶デバイスの寿命を予測し、予測された寿命が所定の閾値に達した場合には、所定データの格納先を第２記憶デバイスまたは別の第１記憶デバイスのいずれかに変更させる。
【００２２】
本発明の実施形態では、制御部は、第１記憶デバイスの使用状況に基づいて第１記憶デバイスの寿命を予測し、予測された寿命が所定の閾値に達し、かつ、第１記憶デバイスに関する読出し要求の割合が予め設定された判定用閾値未満である場合に、所定データの格納先を第２記憶デバイスまたは別の第１記憶デバイスのいずれかに変更させる。
【００２３】
本発明の実施形態では、制御部は、第１記憶デバイスの使用状況に基づいて第１記憶デバイスの寿命を予測し、（１）予測された寿命が所定の閾値に達した場合、（１ａ）第１記憶デバイスに関する読出し要求の割合が予め設定された判定用閾値未満である場合に、所定データの格納先を第２記憶デバイスに変更し、（１ｂ）第１記憶デバイスに関する読出し要求の割合が判定用閾値以上である場合に、所定データの格納先を別の第１記憶デバイスに変更し、さらに、（２）予測された寿命が所定の閾値に達していない場合であっても、第１記憶デバイスに関する読出し要求の割合が判定用閾値未満の場合は、所定データの格納先を第２記憶デバイスに変更する。
【００２４】
本発明の実施形態では、第１記憶デバイスはフラッシュメモリデバイスであり、第２記憶デバイスはハードディスクデバイスである。
【００２５】
本発明の他の観点に従う、上位装置によって利用されるデータを記憶する記憶制御装置を制御するための方法では、記憶制御装置は、消費電力が相対的に低い第１記憶デバイス及び消費電力が相対的に高い第２記憶デバイスをそれぞれ利用可能であり、上位装置が所定データにアクセスする第１期間が到来するよりも前の第２期間内に、第２記憶デバイスから第１記憶デバイスへの所定データのコピーを開始させるステップと、上位装置からのアクセス要求を第１記憶デバイスを用いて処理させるステップと、アクセス要求によって第１記憶デバイスと第２記憶デバイスとの間に生じた差分を検出するステップと、第１期間の終了後の別の第２期間内に、差分を第１記憶デバイスから第２記憶デバイスにコピーさせるステップと、を含み、かつ、第１期間は、電力コストが相対的に高い時間帯に設定されており、第２期間は、電力コストの相対的に低い時間帯に設定されている。
【００２６】
本発明の構成要素は、その全部または一部をコンピュータプログラムとして構成できる場合がある。このコンピュータプログラムは、記録媒体に固定して譲渡等することができるほかに、インターネット等の通信ネットワークを介して伝送することもできる。
【発明を実施するための最良の形態】
【００２７】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の全体概念を示す説明図である。図１に示すストレージシステムは、例えば、記憶制御装置１と、「」上位装置」としてのホストコンピュータ（以下、ホスト）２と、管理端末３とを備えて構成される。
【００２８】
記憶制御装置１は、例えば、制御部４と、キャッシュメモリ５と、ハードディスクドライブ６と、フラッシュメモリデバイス７とを備えている。制御部４は、ホスト２からのアクセス要求を処理する。また、制御部４は、キャッシュメモリ５，ハードディスクドライブ６及びフラッシュメモリデバイス７の、それぞれの間でのデータ交換を制御する。
【００２９】
キャッシュメモリ５は、例えば、揮発性の半導体メモリを備えて構成されており、ホスト２から受信したライトデータや、ホスト２に送信するためのリードデータ等を一時的に記憶する。
【００３０】
ハードディスクドライブ６は、「第２記憶デバイス」に該当する。ハードディスクドライブ６としては、例えば、FC（Fibre Channel）ディスク、SCSI（Small Computer System Interface）ディスク、SATAディスク、ATA（AT Attachment）ディスク、SAS（Serial Attached SCSI）ディスク等を用いることができる。本実施例のハードディスクドライブ６は、主として、ホスト２によって利用される多量のデータを長期間安定して保存するために用いられる。
【００３１】
フラッシュメモリデバイス７は、「第１記憶デバイス」に該当する。本実施例では、基本的に、データを記憶するためのメモリ素子のことをフラッシュメモリと呼び、フラッシュメモリ及び各種機構を備えたデバイスのことをフラッシュメモリデバイスと呼ぶことにする。各種機構としては、例えば、プロトコル処理部、ウェアラベリング調整部等を挙げることができる。ウェアラベリング調整とは、各セルへの書込み回数が均等となるように調整する機能である。フラッシュメモリデバイス７としては、NAND型またはNOR型のフラッシュメモリデバイスを適宜使用することができる。
【００３２】
ホスト２は、例えば、サーバコンピュータ、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ、携帯情報端末（携帯電話を含む）のようなコンピュータ装置として構成される。ホスト２と記憶制御装置１とは、例えば、SAN（Storage Area Network）のような通信ネットワーク９を介して接続される。ホスト２と記憶制御装置１とは、例えば、ファイバチャネルプロトコルやiSCSI （internet Small Computer System Interface）プロトコル等に従って、双方向通信を行う。ホスト２は、例えば、データベースプログラム等のようなアプリケーションプログラムを備えており、アプリケーションプログラムは、記憶制御装置１に記憶されたデータを利用する。
【００３３】
管理端末３は、「管理装置」と呼ぶことができる。管理端末３は、例えば、サーバコンピュータ、パーソナルコンピュータ、携帯情報端末のようなコンピュータ装置として構成することができる。管理端末３は、制御部４と通信を行うことにより、記憶制御装置１の内部状態を取得したり、記憶制御装置１の構成を変更させたりする。
【００３４】
本実施例の管理端末３は、さらにスケジュール管理部８を備える。スケジュール管理部８は、主として、ハードディスクドライブ６とフラッシュメモリデバイス７との間における、データの格納先を決定するためのスケジュールを管理する。制御部４は、予め設定されたスケジュールに従って、データの格納先を制御する。例えば、電力コストの低い夜間にハードディスクドライブ６からフラッシュメモリデバイス７に予めデータをコピーしておき、電力コストの高い昼間にフラッシュメモリデバイス７を用いてホスト２からのアクセス要求を処理させるように、スケジュールが設定される。
【００３５】
なお、図１では、スケジュール管理部８を管理端末３内に設ける構成を示すが、本発明はこれに限らず、例えば、ホスト２内や記憶制御装置１内にスケジュール管理部８を設ける構成でもよい。
【００３６】
本実施形態の動作を説明する。制御部４は、スケジュールに基づいて、夜間のうちに、ハードディスクドライブ６に記憶されている所定データを、フラッシュメモリデバイス７にコピーさせる。所定データとは、例えば、ホスト２により利用される可能性の高いデータである。後述の実施例で明らかとなるように、例えば、ホスト２による記憶制御装置１の利用状況を監視して履歴を作成することにより、いつどのホストが何のデータを利用するかを予測することができる。
【００３７】
昼間の利用が期待される所定データは、夜間のうちにハードディスクドライブ６からフラッシュメモリデバイス７にコピーされる。ホスト２は、フラッシュメモリデバイス７にコピーされた所定データの一部または全部を読み出したり、フラッシュメモリデバイス７にコピーされた所定データの一部または全部を更新したりする。
【００３８】
つまり、本実施形態では、電力料金の安い夜間に、消費電力の大きいハードディスクドライブ６を作動させて、フラッシュメモリデバイス７に所定データをコピーさせることができる。そして、電力料金の高い昼間では、消費電力の小さいフラッシュメモリデバイス７を用いて、ホスト２からのアクセス要求を処理することができる。従って、記憶制御装置１全体としての消費電力を抑制し、かつ、電力コストを低減させることができる。
【００３９】
換言すれば、本実施形態では、フラッシュメモリデバイス７をキャッシュメモリのように使用することができ、ハードディスクドライブ６からフラッシュメモリデバイス７へデータをコピーするステージング処理を、電力料金の安い夜間に実行する。そして、フラッシュメモリデバイス７からハードディスクドライブ６へデータをコピーするディステージ処理も、電力料金の安い夜間に実行する。
【００４０】
さらに、本実施形態では、キャッシュメモリ５も利用して、電力料金の高い昼間にハードディスクドライブ６が稼働するのをできるだけ防止する。例えば、フラッシュメモリデバイス７の空き容量が足りない場合、フラッシュメモリデバイス７に書き込むべきデータの全部または一部を、キャッシュメモリ５に書き込むこともできる。
【００４１】
電力料金の高い昼間の時間帯から電力料金の安い夜間の時間帯に移行した場合、制御部４は、フラッシュメモリデバイス７内の所定データをハードディスクドライブ６にコピーさせる。フラッシュメモリデバイス７からハードディスクドライブ６に所定データをコピーする方法としては、全コピーまたは差分コピーのいずれかを採用できる。
【００４２】
全コピーとは、フラッシュメモリデバイス７内のデータを全てハードディスクドライブ６に転送してコピーさせる方法である。差分コピーとは、フラッシュメモリデバイス７とハードディスクドライブ６との間の差分データのみを、フラッシュメモリデバイス７からハードディスクドライブ６に転送してコピーさせる方法である。全コピーを用いる場合、コピー完了までに時間を要するが、コピーの制御は簡単である。差分コピーを用いる場合、比較的短時間でコピーを終了させることができるが、フラッシュメモリデバイス７とハードディスクドライブ６との間の差分を管理するための仕組みが必要となる。以下、本実施形態を詳細に説明する。
【実施例１】
【００４３】
図２は、本実施例による記憶制御装置１０を備えるストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、一つまたは複数の記憶制御装置１０と、一つまたは複数のホスト２０と、少なくとも一つの管理サーバ３０とを備えて構成される。ストレージシステムは、別の記憶制御装置４０を備えることもできる。記憶制御装置１０は、図１中の記憶制御装置１に対応する。ホスト２０は、図１中のホスト２に対応する。管理サーバ３０は、図１中の管理端末３に対応する。記憶制御装置１０，ホスト２０、管理サーバ３０及び外部記憶制御装置４０の詳細は、それぞれ後述する。
【００４４】
図２を参照してストレージシステムのネットワーク構成を説明する。各ホスト２０と記憶制御装置１０とは、例えば、ＳＡＮのような通信ネットワークＣＮ１を介して、相互通信可能に接続されている。IP（Internet Protocol）を利用するIP_SANでもよいし、FCP（Fibre Channel Protocol）を利用するFC_SANでもよい。
【００４５】
管理サーバ３０は、例えば、ＬＡＮ（Local Area Network）のような、管理用の通信ネットワークＣＮ３を介して、各ホスト２０及び記憶制御装置１０とそれぞれ相互通信可能に接続されている。なお、ストレージシステムが外部記憶制御装置４０を備える場合、管理サーバ３０と外部記憶制御装置４０とを、通信ネットワークＣＮ３を介して相互通信可能に接続することもできる。
【００４６】
なお、図２中では、データ入出力用ネットワークＣＮ１と管理用ネットワークＣＮ３とを分離する場合を示すが、これに限らず、一つの通信ネットワークを用いて、データの入出力及び管理を行う構成でもよい。例えば、管理用通信ネットワークＣＮ２を廃止し、通信ネットワークＣＮ１のみを備える構成でもよい。
【００４７】
外部記憶制御装置４０は、記憶制御装置１０の外部に存在する別の記憶制御装置であるため、本実施例では、外部記憶制御装置と呼ぶ。外部記憶制御装置４０は、ＳＡＮのような、外部接続用通信ネットワークＣＮ２を介して、記憶制御装置１０に接続される。なお、外部接続用通信ネットワークＣＮ２を廃止し、データ入出力用ネットワークＣＮ１によって記憶制御装置１０と外部記憶制御装置４０とを接続する構成でも良い。
【００４８】
記憶制御装置１０の構成を説明する。記憶制御装置１０は、例えば、コントローラ１００と、ハードディスク搭載部２００とを備える。コントローラ１００は、少なくとも一つ以上のチャネルアダプタ（以下、ＣＨＡ）１１０と、少なくとも一つ以上のフラッシュメモリデバイス制御部（以下、ＦＭ制御部）１２０と、少なくとも一つ以上のディスクアダプタ（以下、ＤＫＡ）１３０と、サービスプロセッサ（以下、ＳＶＰ）１４０と、キャッシュメモリ１５０と、制御メモリ１６０と、相互結合部１７０とを備えている。なお、ＣＨＡ１１０，ＦＭ制御部１２０，ＤＫＡ１３０は、それぞれ複数ずつコントローラ１００内に設けられている。
【００４９】
ＣＨＡ１１０は、ホスト２０との間のデータ通信を制御するためのもので、例えば、マイクロプロセッサやローカルメモリ等を備えたコンピュータ装置として構成される。各ＣＨＡ１１０は、少なくとも一つ以上の通信ポートを備える。通信ポートには、例えば、WWN（World Wide Name）のような識別情報が設定される。ホスト２０と記憶制御装置１０とが、iSCSI（internet Small Computer System Interface）等を用いてデータ通信を行う場合、通信ポートには、ＩＰ（Internet Protocol）アドレス等の識別情報が設定される。
【００５０】
図２中には、２種類のＣＨＡ１１０が示されている。図２中右側に位置する一方のＣＨＡ１１０は、ホスト２０からのコマンドを受信して処理するためのものであり、その通信ポートは、ターゲットポートとなっている。図２中左側に位置する他方のＣＨＡ１１０は、外部記憶制御装置４０にコマンドを発行するためのものであり、その通信ポートは、イニシエータポートとなっている。
【００５１】
ＤＫＡ１３０は、各ディスクドライブ２１０との間のデータ通信を制御するためのもので、ＣＨＡ１１０と同様に、マイクロプロセッサやローカルメモリ等を備えたコンピュータ装置として構成される。
【００５２】
ＤＫＡ１３０と各ディスクドライブ２１０とは、例えば、ファイバチャネルプロトコルに従う通信経路を介して接続されている。ＤＫＡ１３０と各ディスクドライブ２１０とは、ブロック単位のデータ転送を行う。コントローラ１００が各ディスクドライブ２１０にアクセスするための経路は、冗長化されている。いずれか一方のＤＫＡ１３０や通信経路に障害が発生した場合でも、コントローラ１００は、他方のＤＫＡ１３０や通信経路を用いて、ディスクドライブ２１０にアクセス可能である。同様に、ホスト２０とコントローラ１００との間の経路、外部記憶制御装置４０とコントローラ１００との間の経路も冗長化することができる。なお、ＤＫＡ１３０は、ディスクドライブ２１０の状態を随時監視している。ＳＶＰ１４０は、ＤＫＡ１３０による監視結果を、内部ネットワークＣＮ４を介して取得する。
【００５３】
ＣＨＡ１１０及びＤＫＡ１３０の動作を簡単に説明する。ＣＨＡ１１０は、ホスト２０から発行されたリードコマンドを受信すると、このリードコマンドを制御メモリ１６０に記憶させる。ＤＫＡ１３０は、制御メモリ１６０を随時参照しており、未処理のリードコマンドを発見すると、ディスクドライブ２１０からデータを読み出して、キャッシュメモリ１５０に記憶させる。ＣＨＡ１１０は、キャッシュメモリ１５０に移されたデータを読み出し、ホスト２０に送信する。
【００５４】
一方、ＣＨＡ１１０は、ホスト２０から発行されたライトコマンドを受信すると、このライトコマンドを制御メモリ１６０に記憶させる。また、ＣＨＡ１１０は、受信したライトデータをキャッシュメモリ１５０に記憶させる。ＣＨＡ１１０は、キャッシュメモリ１５０にライトデータを記憶させた後、ホスト２０に書込み完了を報告する。ＤＫＡ１３０は、制御メモリ１６０に記憶されたライトコマンドに従って、キャッシュメモリ１５０に記憶されたデータを読出し、所定のディスクドライブ２１０に記憶させる。
【００５５】
但し、以上の説明は、ディスクドライブ２１０を用いてホスト２０からのアクセス要求を処理する場合の例である。後述のように、本実施例では、ホスト２０からのアクセス要求は、主として、ＦＭ制御部１２０を用いることにより処理される。フラッシュメモリの空き容量が足りなくなった場合や、フラッシュメモリに記憶されたデータをディスクドライブ２１０に記憶させる場合には、ＤＫＡ１３０によってディスクドライブ２１０にデータが書き込まれる。
【００５６】
ＦＭ制御部１２０は、「第１記憶デバイス」としてのフラッシュメモリデバイスに相当する。ＦＭ制御部１２０の構成はさらに後述するが、ＦＭ制御部１２０は、複数のフラッシュメモリを内蔵している。本実施例のＦＭ制御部１２０は、コントローラ１００内に設けられている。後述の実施例では、コントローラ１００の外部にフラッシュメモリデバイスを設けている。なお、本実施例では、第１記憶デバイスの例としてフラッシュメモリデバイスを挙げるが、これに限らず、書換可能であり、不揮発性を有し、消費電力が第２記憶デバイスに比べて少ない記憶デバイスであれば、本発明を適用できる。
【００５７】
ＳＶＰ１４０は、ＬＡＮ（Local Area Network）のような内部ネットワークＣＮ４を介して、ＣＨＡ１１０，ＦＭ制御部１２０，ＤＫＡ１３０と通信可能に接続される。また、ＳＶＰ１４０は、ＬＡＮやインターネット等の通信ネットワークＣＮ３を介して、管理サーバ３０に接続されている。ＳＶＰ１４０は、記憶制御装置１０内部の各種状態を収集し、管理サーバ３０に提供する。なお、ＳＶＰ１４０は、ＣＨＡ１１０またはＤＫＡ１３０のいずれか一方にのみ接続されてもよい。ＳＶＰ１４０は、制御メモリ１６０を介して、各種のステータス情報を収集可能だからである。
【００５８】
キャッシュメモリ１５０は、例えば、ホスト２０から受信したデータ等を記憶するものである。キャッシュメモリ１５０は、例えば揮発メモリから構成される。制御メモリ１６０は、例えば不揮発メモリから構成される。制御メモリ１６０には、例えば、後述の各種管理用情報等が記憶される。
【００５９】
制御メモリ１６０及びキャッシュメモリ１５０は、別々のメモリ基板としてそれぞれ構成することもできるし、または、同一のメモリ基板上に混在して設けることもできる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。
【００６０】
相互結合部１７０は、各ＣＨＡ１１０と、ＦＭ制御部１２０と、ＤＫＡ１３０と、キャッシュメモリ１５０及び制御メモリ１６０をそれぞれ相互に接続させる。これにより、全てのＣＨＡ１１０，ＤＫＡ１３０は、ＦＭ制御部１２０とキャッシュメモリ１５０及び制御メモリ１６０にそれぞれアクセス可能である。相互結合部１７０は、例えばクロスバスイッチ等として構成することができる。
【００６１】
コントローラ１００の構成は、上述の構成に限定されない。例えば、一つまたは複数の制御基板上に、ホスト２０や外部記憶制御装置４０との間のデータ通信をそれぞれ行う機能と、フラッシュメモリデバイスとの間のデータ通信を行う機能と、ディスクドライブ２１０との間のデータ通信を行う機能と、データを一時的に保存する機能等を、それぞれ設ける構成でもよい。このようなコントローラ基板を用いることにより、記憶制御装置１０の外径寸法を小型化することができる。
【００６２】
ハードディスク搭載部２００の構成について説明する。ハードディスク搭載部２００は、複数のディスクドライブ２１０を備えている。各ディスクドライブ２１０は、「第２記憶デバイス」に該当する。ディスクドライブ２１０としては、例えば、ＦＣディスク、ＳＡＴＡディスク等のような種々のハードディスクドライブを用いることができる。
【００６３】
RAID構成等によっても相違するが、例えば、３個１組や４個１組等の所定数のディスクドライブ２１０によって、パリティグループが構成される。パリティグループは、パリティグループ内の各ディスクドライブ２１０がそれぞれ有する物理的記憶領域を仮想化したものである。パリティグループは、仮想化された物理的記憶デバイスである。
【００６４】
パリティグループの有する物理的記憶領域には、所定サイズまたは可変サイズの論理デバイス（LDEV：Logigal DEVice）２２０を一つまたは複数設定することができる。論理デバイス２２０は、論理的な記憶デバイスであり、論理ボリューム１１（図３参照）に対応付けられる。
【００６５】
外部記憶制御装置４０は、記憶制御装置１０と同様に、例えば、コントローラ４１と、ハードディスク搭載部４２と、フラッシュメモリデバイス搭載部４３とを備えて構成することができる。コントローラ４１は、ディスクドライブの記憶領域やフラッシュメモリデバイスの記憶領域を利用して、論理ボリュームを生成することができる。
【００６６】
外部記憶制御装置４０は、記憶制御装置１０から見た場合に記憶制御装置１０の外部に存在するため、外部記憶制御装置と呼ぶ。また、外部記憶制御装置４０の有するディスクドライブを外部ディスクと、外部記憶制御装置の有するフラッシュメモリデバイスを外部フラッシュメモリデバイスと、外部記憶制御装置４０の有する論理ボリュームを外部ボリュームと、それぞれ呼ぶ場合がある。
【００６７】
例えば、外部記憶制御装置４０内の論理ボリュームは、通信ネットワークＣＮ２等を介して、記憶制御装置１０内に設けられる仮想的な論理デバイス（ＶＤＥＶ：Virtual DEVice）に対応付けられる。そして、仮想的な論理デバイスの記憶領域上には、仮想的な論理ボリュームを設定することができる。従って、記憶制御装置１０は、外部記憶制御装置４０内の論理ボリューム（外部ボリューム）を、それがあたかも記憶制御装置１０内の論理ボリュームであるかのようにして、ホスト２０に見せかけることができる。
【００６８】
仮想的な論理ボリュームへのアクセス要求が発生した場合、記憶制御装置１０は、仮想的論理ボリュームに関するアクセス要求のコマンドを、外部記憶制御装置４０内の論理ボリュームにアクセスするためのコマンドに変換する。変換されたコマンドは、通信ネットワークＣＮ２を介して、記憶制御装置１０から外部記憶制御装置４０に送信される。外部記憶制御装置４０は、記憶制御装置１０から受領したコマンドに従ってデータの読み書きを行い、その結果を記憶制御装置１０に返す。
【００６９】
このように、記憶制御装置１０は、外部に存在する別の記憶制御装置４０内の記憶資源（論理ボリューム）を、記憶制御装置１０内の記憶資源であるかのように利用することができる。従って、記憶制御装置１０は、ディスクドライブ２１０やＤＫＡ１３０を備える必要は必ずしもない。外部記憶制御装置４０内のハードディスクが提供する記憶領域を使用可能だからである。記憶制御装置１０は、フラッシュメモリデバイスを内蔵した高機能のファイバチャネルスイッチのように構成することもできる。
【００７０】
図３は、記憶制御装置１０の一つの使われ方の例を示す説明図である。図２では、それぞれ別々のコンピュータ装置として構成される複数のホスト２０が、記憶制御装置１０にアクセスしてデータを読み書きする場合を例に挙げて示した。
【００７１】
これに対し、図３に示すように、一つのホスト２０内に、仮想的なホスト２１を複数個設けることもでき、これら仮想的なホスト２１は、記憶制御装置１０内の論理ボリューム１１にアクセスしてデータを読み書きすることができる。
【００７２】
一つのホスト２０の有するコンピュータ資源（CPU実行時間やメモリ等）を仮想的に分割することにより、複数の仮想ホスト２１を生成することができる。ユーザの使用するユーザ端末５０は、通信ネットワークを介して仮想ホスト２１にアクセスし、仮想ホスト２１を用いて、記憶制御装置１０内に設定された自分専用の論理ボリューム１１にアクセスする。ユーザ端末５０は、仮想ホスト２１を利用するために必要な最低限の機能を備えていればよい。
【００７３】
記憶制御装置１０内には、ディスクドライブ２１０及びフラッシュメモリデバイス１２０（以下、ＦＭ制御部１２０のことをフラッシュメモリデバイスと呼ぶ場合がある）に対応付けられる、論理ボリューム１１が設けられる。各ユーザ端末５０は、仮想ホスト２１を介して、各ユーザ用の論理ボリューム１１にアクセスする。ホスト２０内に複数の仮想ホスト２１を設けることにより、コンピュータ資源を有効に利用することができる。
【００７４】
図４は、ＣＨＡ１１０の構成を示す説明図である。ＣＨＡ１１０は、例えば、複数のマイクロプロセッサ（ＣＰＵ）１１１と、周辺処理部１１２と、メモリモジュール１１３と、チャネルプロトコル処理部１１４と、内部ネットワークインターフェース部１１５とを備えて構成される。
【００７５】
各マイクロプロセッサ１１１は、バス１１６を介して、周辺処理部１１２に接続されている。周辺処理部１１２は、メモリモジュール１１３に接続されており、メモリモジュール１１３の動作を制御する。さらに、周辺処理部１１２は、バス１１７を介して、各チャネルプロトコル処理部１１４にそれぞれ接続されている。周辺処理部１１２は、各マイクロプロセッサ１１１，各チャネルプロトコル処理部１１４，内部ネットワークインターフェース部１１５から、それぞれ入力されるパケットを処理する。例えば、転送先がメモリモジュール１１３になっているパケットの場合、周辺処理部１１２は、そのパケットを処理し、必要ならば処理結果をパケット送信元に返す。内部ネットワークインターフェース部１１５は、相互結合部１７０を介して、他のＣＨＡ１１０，ＦＭ制御部１２０（フラッシュメモリデバイス１２０），ＤＫＡ１３０，キャッシュメモリ１５０及び制御メモリ１６０と通信するための回路である。
【００７６】
メモリモジュール１１３内には、例えば、制御プログラム１１３Ａ、メールボックス１１３Ｂ及び転送リスト１１３Ｃが設けられる。各マイクロプロセッサ１１１は、制御プログラム１１３Ａを読み出して実行する。各マイクロプロセッサ１１１は、メールボックス１１３Ｂを介して、他のマイクロプロセッサ１１１と通信を行う。転送リスト１１３Ｃは、チャネルプロトコル処理部１１４がＤＭＡ（Direct Memory Access）を行うためのリストである。
【００７７】
チャネルプロトコル処理部１１４は、ホスト２０との間で通信を行うための処理を実行する。チャネルプロトコル処理部１１４は、ホスト２０からのアクセス要求を受信すると、そのホスト２０を識別するための番号やＬＵＮ（Logical Unit Number）、アクセス先アドレス等をマイクロプロセッサ１１１に通知する。
【００７８】
マイクロプロセッサ１１１は、チャネルプロトコル処理部１１４から通知された内容に基づいて、リード要求の対象とされたデータをホスト２０に送信させるための転送リスト１１３Ｃを作成する。チャネルプロトコル処理部１１４は、転送リスト１１３Ｃに基づいて、キャッシュメモリ１５０またはフラッシュメモリデバイス１２０のいずれかからデータを読み出して、ホスト２０に送信する。ライト要求の場合、マイクロプロセッサ１１１は、転送リスト１１３Ｃにライトデータの格納先アドレスをセットする。チャネルプロトコル処理部１１４は、転送リスト１１３Ｃに基づいて、フラッシュメモリデバイス１２０またはキャッシュメモリ１５０のいずれかに、ライトデータを転送する。
【００７９】
なお、ＤＫＡ１３０は、制御プログラム１１３Ａの内容等は相違するが、実質的にＣＨＡ１１０と同様に構成される。
【００８０】
図５は、ＦＭ制御部１２０の構成を示す説明図である。ＦＭ制御部１２０は、例えば、内部ネットワークインターフェース部１２１と、ＤＭＡコントローラ１２２と、メモリコントローラ１２３と、メモリモジュール１２４と、フラッシュメモリ用メモリコントローラ１２５と、フラッシュメモリ１２６とを備えて構成される。
【００８１】
内部ネットワークインターフェース部１２１は、相互結合部１７０を介して、ＣＨＡ１１０，ＤＫＡ１３０，キャッシュメモリ１５０，制御メモリ１６０と通信するための回路である。ＤＭＡコントローラ１２２は、ＤＭＡ転送を行うための回路である。メモリコントローラ１２３は、メモリモジュール１２４の動作を制御するものである。メモリモジュール１２４には、転送リスト１２４Ａが記憶される。
【００８２】
フラッシュメモリ用メモリコントローラ１２５は、複数のフラッシュメモリ１２６の動作を制御する回路である。フラッシュメモリ１２６は、例えば、NAND型またはNOR型のフラッシュメモリとして構成される。フラッシュメモリ用メモリコントローラ１２５には、各フラッシュメモリ１２６に関するアクセス回数や消去回数等の情報を記憶するためのメモリ１２５Ａが設けられている。
【００８３】
図６は、マッピングテーブルＴ１の一例を示す説明図である。マッピングテーブルＴ１は、記憶制御装置１０が他の記憶制御装置４０内の論理ボリューム（つまり、結果的にディスクドライブである）を利用するために使用される。このテーブルＴ１は、例えば、制御メモリ１６０内に記憶される。
【００８４】
マッピングテーブルＴ１は、例えば、ＬＵＮと、論理デバイス（ＬＤＥＶ）を識別するための番号と、仮想的な中間デバイス（ＶＤＥＶ）を識別するための番号とを対応付けることにより構成することができる。
【００８５】
仮想的な中間デバイスを識別するための情報には、例えば、仮想的な中間デバイスの番号と、仮想的な中間デバイスが接続される物理的な記憶デバイスの種類を示す情報と、物理的な記憶デバイスへ接続するための経路情報等を含めることができる。仮想的な中間デバイスが、記憶制御装置１０内のフラッシュメモリデバイス１２０またはディスクドライブ２１０のいずれかに対応付けられている場合、フラッシュメモリデバイス１２０またはディスクドライブ２１０にアクセスするための内部パス情報が設定される。
【００８６】
仮想的な中間デバイスが、外部記憶制御装置４０内の論理ボリュームに接続されている場合、その論理ボリュームへアクセスするために必要な外部パス情報が設定される。外部パス情報には、例えば、ＷＷＮやＬＵＮ等が含まれる。記憶制御装置１０のコントローラ１００は、マッピングテーブルＴ１を参照することにより、ホスト２０から受信したコマンドを、外部記憶制御装置４０に送信するためのコマンドに変換する。
【００８７】
図７は、構成管理テーブルＴ２と、デバイス状態管理テーブルＴ３及び寿命閾値管理テーブルｔ４の構成例をそれぞれ示す説明図である。
【００８８】
構成管理テーブルＴ２は、記憶制御装置１０の管理下にある論理ボリュームの構成を管理するためのテーブルである。構成管理テーブルＴ２は、例えば、論理ボリュームを識別するための番号（ＬＵ＃）と、その論理ボリュームに対応付けられる論理デバイスを識別するための番号（ＬＤＥＶ＃）と、その論理デバイスに対応付けられる仮想的な中間デバイスを識別するための番号（ＶＤＥＶ＃）と、その仮想的な中間デバイスに対応付けられる物理的記憶デバイスを識別するための番号（ＰＤＥＶ＃）とを、管理する。
【００８９】
なお、基本的に、ＬＵとＬＤＥＶ及びＶＤＥＶは、ディスクドライブ２１０から構成されるＰＤＥＶ上にマッピングされている。但し、ＬＵ、ＬＤＥＶ及びＶＤＥＶを、フラッシュメモリデバイス１２０上にマッピングする構成でもよい。
【００９０】
デバイス状態管理テーブルＴ３は、物理的記憶デバイスの状態を管理するためのテーブルである。図７では、物理的記憶デバイスとしてフラッシュメモリデバイスの状態を管理するためのテーブルを示している。
【００９１】
フラッシュメモリデバイスの状態を管理するテーブルＴ３は、例えば、そのフラッシュメモリデバイスを識別するための番号（ＰＤＥＶ＃）と、そのフラッシュメモリデバイスにデータが書き込まれた回数の総数と、そのフラッシュメモリデバイスからデータが読み出された回数の総数と、そのフラッシュメモリデバイスに記憶されたデータが消去された回数の総数と、そのフラッシュメモリデバイスに生じた不良ブロックの増加率と、そのフラッシュメモリデバイスに記憶されたデータを消去するために要する平均時間と、そのフラッシュメモリが稼働した累計時間と、そのフラッシュメモリの使用率（使用率＝記憶されたデータの量／フラッシュメモリの記憶容量）等とを、対応付けて管理する。
【００９２】
フラッシュメモリは、セルの物理的構成に起因して書込み回数に上限が設定される場合がある。従って、書込み回数の累計値（総書込み回数）を管理することで、そのフラッシュメモリデバイスの残り寿命を推測できる。同様に、フラッシュメモリデバイスの不良ブロックの増加率の値が増加したり、平均消去時間が長くなったり、総稼働時間が長くなるほど、残り寿命が少なくなったと予測することができる。
【００９３】
上述の各寿命予測パラメータは、一例であり、本発明はそれらに限定されない。なお、残り寿命は、フラッシュメモリデバイスの信頼性の度合と考えることもできるため寿命予測パラメータは、信頼性を判定するためのパラメータと呼び変えることもできる。
【００９４】
寿命閾値管理テーブルＴ４は、フラッシュメモリデバイスの残り寿命が少なくなったことを検出するための寿命閾値を管理するテーブルである。寿命閾値管理テーブルＴ４では、上述の各寿命予測パラメータ（総書込み回数、不良ブロック増加率、平均消去時間等）毎に、それぞれ予め寿命閾値Ｔｈ１，Ｔｈ２，．．．が設定されている。
【００９５】
図８は、アクセス履歴管理テーブルＴ５及びスケジュール管理テーブルＴ６の構成例を示す説明図である。アクセス履歴管理テーブルＴ５は、各論理ボリューム毎のアクセスの履歴を管理するテーブルである。例えば、アクセス履歴管理テーブルＴ５は、各論理ボリュームへのアクセス回数を、各曜日の各時間帯毎にそれぞれ管理することができる。図８では、ライトアクセス及びリードアクセスを区別していないかのように示しているが、実際には、ライトアクセス及びリードアクセスのそれぞれについて、各曜日の各時間毎にアクセス回数が検出されて記録される。テーブルＴ４に、アクセス一回あたりのデータ量（論理ブロック数）等も併せて記録する構成でもよい。
【００９６】
スケジュール管理テーブルＴ６は、各論理ボリュームの使用予定等を管理するテーブルである。スケジュール管理テーブルＴ６は、各論理ボリューム毎に、使用予定日時と、ユーザの希望条件と、配置先固定フラグと、現在の配置先等とを対応付けて管理する。
【００９７】
「使用予定日時」とは、ユーザが論理ボリュームを使用する予定の日時を示す情報であり、アクセス履歴管理テーブルＴ５に記録されたアクセス履歴に基づいて自動的に設定することができる。ユーザは、自動的に設定された使用予定日時を手動で修正することもできる。
【００９８】
「ユーザの希望条件」とは、ユーザが論理ボリュームを使用する際に希望する条件を示す情報であり、例えば、「コスト優先」または「性能優先」のいずれかが設定される。コスト優先とは、電力コストの低減を優先させるモードである。コスト優先モードが選択されている場合、論理ボリュームを使用する際の合計消費電力ができるだけ少なくなるように、その論理ボリュームのデータの格納先が制御される。性能優先とは、アクセス性能の維持を優先させるモードである。性能優先モードが選択されている場合、論理ボリュームを使用する際の応答性能ができるだけ低下しないように、その論理ボリュームのデータの格納先が制御される。
【００９９】
本実施例では、後述のように、電力料金の安い夜間の時間帯を利用して、論理ボリューム内のデータの少なくとも一部を、ディスクドライブ２１０（外部記憶制御装置４０内のディスクドライブも含む。）からフラッシュメモリデバイスに予めコピーさせておき、翌日昼間のユーザによる使用に備える。これにより、電力料金の安い昼間に、消費電力の少ないフラッシュメモリデバイスを用いて、ホスト２０からのアクセス要求を処理することができる。
【０１００】
ディスクドライブ２１０からフラッシュメモリデバイスにコピーするデータの量が少ない場合、電力料金の安い夜間のうちに、コピー対象の全データをディスクドライブ２１０からフラッシュメモリデバイスにコピーさせることができる。しかし、記憶制御装置１０は、多数のユーザによって使用されるデータを管理しており、かつ、各ユーザが使用するデータの量は増加する一方である。
【０１０１】
従って、電力料金の安い時間帯に、コピー対象の全データのコピーを完了できない場合も考えられる。この場合、電力コストを重視するならば、コピーを途中で終了させて、ディスクドライブ２１０の稼働を停止させた方が良いと考えられる。電力料金の高い時間帯に、コピー元デバイスであるディスクドライブ２１０を稼働させると、その論理ボリュームに関する電力コストが増大するためである。
【０１０２】
これに対し、電力コストよりもアクセス性能を重視するならば、電力料金の高い時間帯に移行した後でも、ディスクドライブ２１０からフラッシュメモリデバイスへのコピーを続行し、コピー対象の全データをフラッシュメモリデバイスに格納させる方が良いと考えられる。一般的に、フラッシュメモリデバイスの方がディスクドライブ２１０に比べて、データの読出し速度や書込み速度が優れているためである。
【０１０３】
「配置先固定フラグ」とは、論理ボリュームのデータの格納先を固定させるための情報である。配置先固定フラグに「ＨＤＤ」が設定された場合、そのデータの格納先はディスクドライブ２１０に固定される。従って、「ＨＤＤ」が設定されたデータは、ディスクドライブ２１０からフラッシュメモリデバイスにコピーされない。
【０１０４】
「現在の配置先」とは、論理ボリュームのデータが格納されている記憶デバイスを特定するための情報である。現在の配置先に「ＦＭ」が設定されている場合、そのデータはフラッシュメモリデバイスに記憶されている。現在の配置先に「ＨＤＤ」が設定されている場合、そのデータはディスクドライブ２１０に記憶されている。配置先の情報には、記憶デバイスの種別だけでなく、記憶デバイスを特定するための識別情報（ＰＤＥＶ＃）を含めることができる。
【０１０５】
図８の下側には、転送速度管理テーブルＴ７及び電力コスト管理テーブルＴ８も示されている。転送速度管理テーブルＴ７は、ディスクドライブ２１０とフラッシュメモリデバイスとの間のデータ転送速度を管理する。従って、コピー対象データのサイズをデータ転送速度で除算することにより、データのコピーが完了するまでの所要時間を求めることができる。
【０１０６】
電力コスト管理テーブルＴ８は、記憶制御装置１０に供給される電力のコストに関する情報を記憶する。例えば、テーブルＴ８には、電力コストの切り替わる日時や電力料金に関する情報が記憶されている。記憶制御装置１０や外部記憶制御装置４０の設置されている地域を担当する電力会社が、電力コストに関する情報を通信ネットワーク上で公開しているような場合、電力コスト管理テーブルＴ８は自動的に生成可能である。
【０１０７】
図９は、本実施例による記憶制御装置１０の動作を模式的に示す説明図である。図９の上側には、電力料金の変化が示されており、図９の下側には、データの格納先の変化が示されている。
【０１０８】
ある日の夜間ＴＺ１は、電力料金が低い。この夜間の時間帯ＴＺ１において、ディスクドライブ２１０に記憶された所定データＤ１は、フラッシュメモリデバイス１２０にコピーされる。即ち、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのステージング処理を、電力料金の安い時間帯ＴＺ１に行う。
【０１０９】
翌日の昼間ＴＺ２は、電力料金が高い。この昼間の時間帯ＴＺ２では、ホスト２０が記憶制御装置１０を利用する。例外はあるが、業務時間は昼間の時間帯ＴＺ２に設定されることが多く、業務時間内にホスト２０は、論理ボリュームにアクセスする。上述のように、ホスト２０が記憶制御装置１０の利用を開始するよりも前に、ホスト２０によりアクセスされるデータの少なくとも一部（Ｄ１）は、フラッシュメモリデバイス１２０に予めコピーされている。
【０１１０】
従って、ホスト２０からのアクセス要求の少なくとも一部は、フラッシュメモリデバイス１２０に記憶されたデータＤ１によって処理される。フラッシュメモリデバイス１２０の消費電力はディスクドライブ２１０に比べると少ないため、フラッシュメモリデバイス１２０を用いてホスト２０からのアクセス要求を処理できればできるほど、論理ボリューム使用時の電力コストを低減することができる。なお、ディスクドライブ２１０は、使用される機会が少ないため、スピンダウン状態にしておく。
【０１１１】
フラッシュメモリデバイス１２０の空き容量が少なくなった場合等には、ホスト２０から受信したライトデータＤ２を、キャッシュメモリ１５０に記憶させることもできる。また、フラッシュメモリデバイス１２０にコピーされたデータＤ１以外のデータの読出しをホスト２０が要求した場合、記憶制御装置１０は、ディスクドライブ２１０を稼働させて、ホスト２０の要求するデータを読み出す。
【０１１２】
昼間の時間帯ＴＺ２が終了すると、電力料金の安い夜間の時間帯ＴＺ３に移行する。夜間の時間帯ＴＺ３では、フラッシュメモリデバイス１２０からディスクドライブ２１０に、昼間の時間帯ＴＺ２で更新されたデータＤ１をコピーする。フラッシュメモリデバイス１２０内のデータＤ１とディスクドライブ２１０内のデータＤ１との差分だけを、フラッシュメモリデバイス１２０からディスクドライブ２１０にコピーすればよい。また、キャッシュメモリ１５０に記憶されたデータＤ２も、夜間の時間帯ＴＺ３において、ディスクドライブ２１０にコピーされる。
【０１１３】
このように、本実施例の記憶制御装置１０は、業務開始前の電力料金の安い時間帯ＴＺ１に、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのステージング処理を実行し、電力料金の高い業務時間ＴＺ２では、消費電力の低いフラッシュメモリデバイス１２０を用いてホスト２０からのアクセス要求を処理し、業務終了後の電力料金の安い時間帯ＴＺ３に、フラッシュメモリデバイス１２０からディスクドライブ２１０へのディステージング処理を実行する。従って、消費電力の大きいディスクドライブ２１０は、主として、電力料金の安い時間帯ＴＺ１，ＴＺ３で動作するため、記憶制御装置１０の電力コストを低減させることができる。
【０１１４】
図１０は、データの格納先を制御するためのスケジュールを生成する処理を示すフローチャートである。なお、以下の各フローチャートは、本発明の理解及び実施に必要な程度で処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。いわゆる当業者であれば、図示されたステップの削除、変更、順番の入れ替え等を行うことができるであろう。
【０１１５】
記憶制御装置１０は、アクセス履歴管理テーブルＴ５を参照し（Ｓ１）、アクセス履歴に基づいてアクセスパターンを検出する（Ｓ２）。アクセスパターンとは、その論理ボリュームが、いつどの程度アクセスされているかを分類した情報である。
【０１１６】
記憶制御装置１０は、ユーザによる希望条件を取得する（Ｓ３）。ユーザは、「コスト優先」か「性能優先」のいずれかを、手動で選択することができる。あるいは、記憶制御装置１０は、ユーザ属性管理テーブルＴ９に基づいて、ユーザ希望条件を自動的に設定することもできる。ユーザ属性管理テーブルＴ９には、例えば、論理ボリュームを使用するユーザの所属部署、役職、業務内容等を設定することができる。
【０１１７】
記憶制御装置１０は、Ｓ１〜Ｓ３を実行することにより、スケジュールを生成し（Ｓ４）、スケジュール管理テーブルＴ６を更新する（Ｓ５）。なお、作成されたスケジュールをユーザが確認し、手動で修正できるように構成してもよい。
【０１１８】
図１１は、所定データを事前にディスクドライブ２１０からフラッシュメモリデバイス１２０にコピーする処理（ステージング処理）を示すフローチャートである。
【０１１９】
記憶制御装置１０は、スケジュール管理テーブルＴ６を参照し（Ｓ１０）、データの格納先をディスクドライブ２１０からフラッシュメモリデバイス１２０に切り替える時期が到来したか否かを判定する（Ｓ１１）。
【０１２０】
例えば、ユーザが月曜日の朝から論理ボリュームを使用する予定の場合、ユーザの業務が開始する前の電力料金の安い時間帯において、データのコピーに要する時間を考慮した時刻が、切替時期（即ち、ステージング開始時刻である）として選択される。
【０１２１】
切替時期が到来したと判定された場合（S11:YES）、記憶制御装置１０は、ディスクドライブ２１０からフラッシュメモリデバイス１２０への所定データのコピーを開始する（Ｓ１２）。所定データとは、論理ボリュームの全データの場合もあるし、論理ボリュームの先頭から所定量のデータである場合もある。あるいは、論理ボリュームに記憶されているデータのうち、更新時刻が比較的新しい所定量のデータである場合もある。
【０１２２】
記憶制御装置１０は、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのデータのコピーが完了したか否かを判定する（Ｓ１３）。データコピーが完了していない場合（S13:NO）、記憶制御装置１０は、ユーザの希望条件が「コスト優先」であるか否かを判定する（Ｓ１４）。
【０１２３】
ユーザ希望条件がコスト優先の場合（S14:YES）、記憶制御装置１０は、電力料金の高い時間帯（典型的には昼間である）が到来したか否かを判定する（Ｓ１５）。電力料金の高い時間帯が到来した場合（S15:YES）、記憶制御装置１０は、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのデータのコピーを終了させる（Ｓ１６）。これに対し、ユーザの希望条件が「性能優先」の場合（S14:NO）、または、電力料金の高い時間帯に移行していない場合（S15:NO）には、Ｓ１３に戻る。
【０１２４】
ディスクドライブ２１０からフラッシュメモリデバイス１２０へのデータのコピーが完了すると（S13:YES）、記憶制御装置１０は、フラッシュメモリデバイス１２０からディスクドライブ２１０にデータの格納先を切り替える時期（即ち、ディステージ開始時刻である）が到来するまで待機する（Ｓ１７）。
【０１２５】
フラッシュメモリデバイス１２０からディスクドライブ２１０にデータをコピーする時期が到来すると（S17:YES）、記憶制御装置１０は、フラッシュメモリデバイス１２０に記憶されたデータとディスクドライブ２１０に記憶されたデータとの差分を、フラッシュメモリデバイス１２０からディスクドライブ２１０にコピーさせる（Ｓ１８）。
【０１２６】
図１２は、ホスト２０からのライト要求を処理するフローチャートである。記憶制御装置１０は、ライト要求を受信すると（Ｓ２０）、ホスト２０から受信したライトデータをフラッシュメモリデバイス１２０に記憶させる（Ｓ２１）。そして、記憶制御装置１０は、差分管理テーブルＴ１０（図１３参照）等の必要な管理テーブルを更新し（Ｓ２２）、ホスト２０に処理完了を通知する（Ｓ２３）。
【０１２７】
一方、記憶制御装置１０は、ディステージ処理を実行する時期が到来したか否かを判定する（Ｓ３０）。ディステージ処理の実行時期は、上述のように、電力料金の安い夜間の時間帯から選択される。
【０１２８】
ディステージ処理の実行時期が到来した場合（S30:YES）、記憶制御装置１０は、書込先のディスクドライブ２１０にスピンアップコマンドを発行して、ディスクドライブ２１０を起動させ（Ｓ３１）、書込先のディスクドライブ２１０の準備が完了したか否かを判定する（Ｓ３２）。
【０１２９】
書込先のディスクドライブ２１０の準備が完了した場合（S32:YES）、記憶制御装置１０は、フラッシュメモリデバイス１２０に記憶されたデータを、その書込先のディスクドライブ２１０に転送して記憶させる（Ｓ３３）。記憶制御装置１０は、差分管理テーブルＴ１０等の必要な管理テーブルを更新し（Ｓ３４）、ディステージ処理を終了する。
【０１３０】
図１３は、差分コピーを行うための処理を示すフローチャートである。記憶制御装置１０は、ホスト２０によって更新された位置（即ち、更新された論理ブロックアドレスである）を、差分管理テーブルＴ１０に記録する（Ｓ４０）。差分管理テーブルＴ１０は、所定単位で、データが更新された位置を管理する。差分管理テーブルＴ１０は、差分ビットマップとして構成することができる。
【０１３１】
そして、記憶制御装置１０は、差分管理テーブルＴ１０を参照することにより、ホスト２０によって更新された位置のデータのみを、ディスクドライブ２１０にコピーする（Ｓ４１）。これにより、比較的短時間で、フラッシュメモリデバイス１２０の記憶内容とディスクドライブ２１０の記憶内容とを一致させることができる。
【０１３２】
図１４は、ホスト２０からのリード要求を処理するフローチャートである。記憶制御装置１０は、ホスト２０から発行されたリード要求を受信すると（Ｓ５０）、キャッシュメモリ１５０に記憶されているデータを確認する（Ｓ５１）。
【０１３３】
ホスト２０から読出しを要求されたデータが、キャッシュメモリ１５０に記憶されていない場合（S51:YES）、記憶制御装置１０は、フラッシュメモリデバイス１２０に記憶されているデータを確認する。
【０１３４】
読出しを要求されたデータがフラッシュメモリデバイス１２０に記憶されていない場合（S54:YES）、記憶制御装置１０は、デバイス状態管理テーブルＴ３等の必要な管理テーブルを更新し（Ｓ５５）、ディスクドライブ２１０から読出し対象のデータを読み出して、このデータをキャッシュメモリ１５０に転送させる（Ｓ５６）。記憶制御装置１０は、キャッシュメモリ１５０から読出し対象のデータを読み出して（Ｓ５７）、このデータをホスト２０に送信する（Ｓ５８）。
【０１３５】
読出し対象のデータがキャッシュメモリ１５０に記憶されている場合（S52:YES）、記憶制御装置１０は、キャッシュメモリ１５０に記憶されているデータをホスト２０に送信する（Ｓ５７，Ｓ５８）。
【０１３６】
読出し対象のデータがフラッシュメモリデバイス１２０に記憶されている場合（S54:NO）、記憶制御装置１０は、フラッシュメモリデバイス１２０からデータを読み出して（Ｓ５９）、そのデータをホスト２０に送信する（Ｓ５８）。
【０１３７】
図１５は、データ配置先を決定するための処理を示すフローチャートである。この処理は、スケジュール管理テーブルＴ６中の「配置先固定フラグ」を自動的に設定するために実行される。
【０１３８】
即ち、以下の処理では、フラッシュメモリデバイス１２０の信頼性（残り寿命）やデータへのアクセスパターンに基づいて、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのステージング処理の可否を決定し、決定の結果をスケジュール管理テーブルＴ６に登録する。
【０１３９】
記憶制御装置１０は、デバイス状態管理テーブルＴ３を参照し（Ｓ６０）、さらに、寿命閾値管理テーブルＴ４を参照する（Ｓ６１）。記憶制御装置１０は、いずれかの寿命予測パラメータの一つでも寿命閾値に達したフラッシュメモリデバイス１２０が存在するか否かを判定する（Ｓ６２）。
【０１４０】
寿命閾値に達したフラッシュメモリデバイス１２０が存在しない場合（S62:NO）、記憶制御装置１０は、フラッシュメモリデバイス１２０に関するアクセス状況を判定する（Ｓ６３）。記憶制御装置１０は、フラッシュメモリデバイス１２０へのアクセスがリードアクセス中心であるか否かを判定する（Ｓ６４）。記憶制御装置１０は、例えば、そのフラッシュメモリデバイス１２０に関するリードアクセスの総数とライトアクセスの総数の比率から、リードアクセスが中心であるか否かを判定することができる。例えば、リードアクセスの方がライトアクセスよりもｎ倍（ｎは自然数）大きいような場合、リードアクセス中心で使用されているフラッシュメモリデバイスであると判定可能である。
【０１４１】
リードアクセスが中心の場合（S64:YES）、記憶制御装置１０は、そのフラッシュメモリデバイス１２０をそのまま継続して使用することを決定し（Ｓ６５）、必要があればスケジュール管理テーブルＴ６を更新する（Ｓ６６）。但し、フラッシュメモリデバイス１２０の継続使用が決定された場合（Ｓ６５）、スケジュール管理テーブルＴ６を更新する必要はない。
【０１４２】
これに対し、フラッシュメモリデバイス１２０へのアクセスがリードアクセス中心ではなく、ライトアクセスが比較的多い場合（S64:NO）、記憶制御装置１０は、そのフラッシュメモリデバイス１２０に記憶されたデータの格納場所を、ディスクドライブ２１０に変更する（Ｓ６７）。即ち、記憶制御装置１０は、ライトアクセスが多くなるほど、フラッシュメモリデバイス１２０の寿命が低下するため、データの格納場所を予めディスクドライブ２１０に固定する（Ｓ６７）。この場合、記憶制御装置１０は、そのデータの配置先固定フラグにディスクドライブ２１０のデバイス番号を設定する（Ｓ６６）。
【０１４３】
いずれかの寿命予測パラメータが寿命閾値に達したフラッシュメモリデバイス１２０の場合（S62:YES）、記憶制御装置１０は、データの格納先を変更するための他のフラッシュメモリデバイス１２０を検索する（Ｓ６８）。即ち、記憶制御装置１０は、空き容量及び寿命が十分に残っている、データ移転先の候補となるフラッシュメモリデバイス１２０を検出する（Ｓ６８）。
【０１４４】
移転先候補のフラッシュメモリデバイス１２０が検出された場合（S69:YES）、記憶制御装置１０は、その移転先候補のフラッシュメモリデバイス１２０に関するアクセス状況を判定し（Ｓ７０）、その移転先候補のフラッシュメモリデバイス１２０へのアクセスがリードアクセス中心であるか否かを判定する（Ｓ７１）。
【０１４５】
移転先候補のフラッシュメモリデバイス１２０へのアクセスがリードアクセス中心である場合（S71:YES）、記憶制御装置１０は、寿命の少なくなったフラッシュメモリデバイス１２０の代わりに、その移転先候補のフラッシュメモリデバイス１２０をデータの格納先として選択する（Ｓ７２）。この場合、記憶制御装置１０は、新たな格納先として選択されたフラッシュメモリデバイス１２０のデバイス番号をスケジュール管理テーブルＴ６に登録する（Ｓ６８）。
【０１４６】
これに対し、移転先候補のフラッシュメモリデバイス１２０が一つも検出できなかった場合（S69:NO）、または、移転先候補のフラッシュメモリデバイス１２０へのアクセスがリードアクセス中心ではない場合（S71:NO）、記憶制御装置１０は、データの格納先をディスクドライブ２１０に変更する（Ｓ６７）。
【０１４７】
本実施例は上述の構成を備えるため、以下の効果を奏する。本実施例では、フラッシュメモリデバイス１２０とディスクドライブ２１０との消費電力の差のみならず、電力料金の時間帯による差を考慮して、データの格納先を制御する。
【０１４８】
従って、電力料金の安い夜間のうちに、消費電力の大きいディスクドライブ２１０を作動させて、フラッシュメモリデバイス１２０に所定データを予めコピーしておくことができる。電力料金の高い昼間では、消費電力の小さいフラッシュメモリデバイス１２０を用いて、ホスト２０からのアクセス要求を処理できる。従って、記憶制御装置１０の消費電力を低減することができる。
【０１４９】
本実施例では、ホスト２０から受信したライトデータを、キャッシュメモリ１５０を介さずに、直接フラッシュメモリデバイス１２０に記憶させる構成のため、キャッシュメモリ１５０の使用量を低減することができ、さらに、ライトデータを記憶するまでの時間を短縮することができる。
【実施例２】
【０１５０】
図１６に基づいて第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。本実施例では、ホスト２０から受信したライトデータをキャッシュメモリ１５０に記憶させた後で、そのライトデータをフラッシュメモリデバイス１２０またはディスクドライブ２１０のいずれかに記憶させる。
【０１５１】
図１６は、本実施例の記憶制御装置１０により実行されるライト処理のフローチャートである。本フローチャートは、図１２に示すフローチャートと共通のステップを多く含んでいる。そこで共通のステップについては説明を省略し、本フローチャートに特徴的なステップを中心に説明する。
【０１５２】
記憶制御装置１０は、ホスト２０からライト要求を受信すると（Ｓ２０）、まず、そのライトデータをキャッシュメモリ１５０に記憶させ（Ｓ２１Ａ）、続いて、更新の必要な管理テーブルを更新し（Ｓ２２）、ホスト２０に処理完了を報告する（Ｓ２３）。
【０１５３】
記憶制御装置１０は、キャッシュメモリ１５０に記憶されたライトデータを、フラッシュメモリデバイス１２０に書き込むか否かを判定する（Ｓ８０）。例えば、そのライトデータの格納先としてフラッシュメモリデバイス１２０が指定されている場合等には、ライトデータをフラッシュメモリデバイス１２０に書き込むことが決定される。
【０１５４】
フラッシュメモリデバイス１２０にライトデータを書き込むことが決定された場合（S80:YES）、記憶制御装置１０は、キャッシュメモリ１５０からフラッシュメモリデバイス１２０にライトデータを転送し、ライトデータをフラッシュメモリデバイス１２０に記憶させる（Ｓ８１）。
【０１５５】
フラッシュメモリデバイス１２０ではなくディスクドライブ２１０にライトデータを書き込むことが決定された場合（S80:NO）、記憶制御装置１０は、ディスクドライブ２１０へのディステージ処理を実行する時期が到来するまで待機する（Ｓ３０）。
【０１５６】
ディスクドライブ２１０へのディステージ処理を実行可能な時期が到来すると（S30:YES）、記憶制御装置１０は、書込先のディスクドライブ２１０にスピンアップコマンドを発行する（Ｓ３１）。
【０１５７】
また、ディスクドライブ２１０へのディステージ処理の実行時期を待っている間（S30:NO）、記憶制御装置１０は、キャッシュメモリ１５０に十分な空き容量が存在するか否かを監視している（Ｓ８２）。記憶制御装置１０は、キャッシュメモリ１５０の空き容量が予め設定された値以下に低下したような場合（S82:NO）、書込先のディスクドライブ２１０にスピンアップコマンドを発行する（Ｓ３１）。
【０１５８】
記憶制御装置１０は、書込先のディスクドライブ２１０の準備が完了すると（S32:YES）、そのディスクドライブ２１０にライトデータを書込み（Ｓ３３）、更新が必要な管理テーブルを更新する（Ｓ３４）。このように構成される本実施例も前記第１実施例と同様の効果を奏する。
【実施例３】
【０１５９】
図１７に基づいて第３実施例を説明する。本実施例では、フラッシュメモリデバイス１２０を第２のキャッシュメモリのようにして使用する。図１７は、本実施例の記憶制御装置１０により実行されるライト処理を示すフローチャートである。
【０１６０】
記憶制御装置１０は、ホスト２０からライトデータを受信すると（Ｓ９０）、キャッシュメモリ１５０及びフラッシュメモリデバイス１２０の空き容量をそれぞれ確認し（Ｓ９１）、フラッシュメモリデバイス１２０に所定値以上の空き容量があるか否かを判定する（Ｓ９２）。
【０１６１】
フラッシュメモリデバイス１２０に所定値以上の空き容量がある場合（S92:YES）、記憶制御装置１０は、ライトデータをフラッシュメモリデバイス１２０に記憶させ（Ｓ９３）、更新の必要のある管理テーブルを更新させる（Ｓ９４）。最後に、記憶制御装置１０は、ホスト２０に処理完了を報告する（Ｓ９５）。
【０１６２】
これに対し、フラッシュメモリデバイス１２０に所定値以上の空き容量が無い場合（S92:NO）、記憶制御装置１０は、キャッシュメモリ１５０に所定値以上の空き容量があるか否かを判定する（Ｓ９６）。キャッシュメモリ１５０に所定値以上の空き容量がある場合（S96:YES）、記憶制御装置１０は、ライトデータをキャッシュメモリ１５０に記憶させる（Ｓ９７）。
【０１６３】
キャッシュメモリ１５０に所定値以上の空き容量が無い場合（S96:NO）、記憶制御装置１０は、ディスクドライブ２１０にライトデータを記憶させる。このように構成される本実施例も前記第１実施例と同様の効果を奏する。
【実施例４】
【０１６４】
図１８に基づいて第４実施例を説明する。本実施例では、ＦＭ制御部１２０の変形例を説明する。図１８は、本実施例によるＦＭ制御部１２０の構成を示す説明図である。本実施例のＦＭ制御部１２０は、第１実施例のメモリコントローラ１２５に代えてＦＭプロトコル処理部１２７を備える。また、本実施例のＦＭ制御部１２０は、フラッシュメモリ１２６に代えて、フラッシュメモリデバイス１２８を有する。
【０１６５】
ＦＭプロトコル処理部１２７は、フラッシュメモリデバイス１２８との間のデータ通信を行うものである。なお、ＦＭプロトコル処理部１２７に内蔵されているメモリ１２７Ａには、フラッシュメモリデバイス１２８へのアクセスに関する履歴情報を記録させることができる。
【０１６６】
ＦＭプロトコル処理部１２７は、コネクタ１２９を介して、フラッシュメモリデバイス１２８に接続されている。従って、フラッシュメモリデバイス１２８は、着脱可能にＦＭ制御部１２０に取り付けられている。
【０１６７】
前記第１実施例では、ＦＭ制御部１２０の回路基板上にフラッシュメモリ１２６を設ける構成を示した。従って、前記実施例では、フラッシュメモリの容量を増加させたり、故障したフラッシュメモリを交換するのは面倒な作業となる。これに対し、本実施例では、ＦＭプロトコル処理部１２７とフラッシュメモリデバイス１２８をコネクタ１２９を介して着脱可能に取り付けるため、新品のフラッシュメモリデバイス１２８や大容量のフラッシュメモリデバイス１２８に容易に交換することができる。
【実施例５】
【０１６８】
図１９に基づいて第５実施例を説明する。本実施例では、ＦＭ制御部１２０の別の変形例を説明する。本実施例のＦＭ制御部１２０は、各ＦＭプロトコル処理部１２７に、通信経路１２７Ｂを介して、それぞれ複数ずつのフラッシュメモリデバイス１２８を接続している。これにより、本実施例では、より多数のフラッシュメモリデバイス１２８を利用することができる。
【実施例６】
【０１６９】
図２０，図２１に基づいて第６実施例を説明する。本実施例では、ユーザから予め指定等されている場合のみ、ホスト２０から送信されたライトデータをフラッシュメモリデバイス１２０に記憶させ、それ以外の場合は、ライトデータをキャッシュメモリ１５０に記憶させる。
【０１７０】
図２０は、本実施例で使用されるスケジュール管理テーブルＴ１１の一例を示す説明図である。この管理テーブルＴ１１は、例えば、ＬＵ＃と、ＬＤＥＶ＃と、ＶＤＥＶ＃と、ＰＤＥＶ＃と、使用予定日時と、ユーザの希望条件と、現在の配置先と、キャッシュ動作とを対応付けて管理する。
【０１７１】
「キャッシュ動作」とは、受信されたライトデータの格納先として、フラッシュメモリデバイス１２０を使用するか否かを指定するための情報である。キャッシュ動作は、ユーザによって予め指定することができる。なお、キャッシュ動作をユーザが手動で設定する構成に代えて、フラッシュメモリデバイス１２０にデータがコピー済（即ち、ステージング済）の場合、自動的に、ライトデータの格納先をフラッシュメモリデバイス１２０とする構成としても良い。
【０１７２】
図２１は、本実施例によるライト処理を示すフローチャートである。記憶制御装置１０は、ホスト２０からライトデータを受信すると（Ｓ１００）、図２０に示す管理テーブルＴ１１を参照し（Ｓ１０１）、ライトデータの最初の格納先としてフラッシュメモリデバイス１２０を使用するか否かを判断する（Ｓ１０２）。
【０１７３】
ライトデータの格納先デバイスとしてフラッシュメモリデバイス１２０を使用しないと判定した場合（S102:NO）、記憶制御装置１０は、キャッシュメモリ１５０に所定値以上の空き容量が存在するか否かを判定する（Ｓ１０３）。つまり、記憶制御装置１０は、ライトデータを記憶するのに十分な空き容量が有るか否かを判定する。
【０１７４】
キャッシュメモリ１５０に所定値以上の空き容量が存在しない場合（S103:NO）、記憶制御装置１０は、キャッシュメモリ１５０に記憶されているデータのうち、古いデータを削除することにより、所定値以上の空き容量を生成する（Ｓ１０４）。例えば、記憶制御装置１０は、ディステージ処理が完了しているデータのうち、古いデータから順番に削除することにより、必要な量の空き容量を生成する。
【０１７５】
ホスト２０から発行されるライトコマンドには、これから送信しようとするライトデータのサイズが含まれている。記憶制御装置１０は、ライトコマンドを受信すると、ライトデータを受け入れる準備が整っているか否かを判断し、ライトデータの受け入れ準備が整っていると判断した場合に、ホスト２０に応答を返す。
【０１７６】
そして、記憶制御装置１０は、ホスト２０から受信したライトデータをキャッシュメモリ１５０に記憶させる（Ｓ１０５）。記憶制御装置１０は、更新の必要な管理テーブルを更新し（Ｓ１０６）、ホスト２０にライトコマンドの処理が完了した旨を報告する（Ｓ１０７）。
【０１７７】
キャッシュメモリ１５０に所定値以上の空き容量が存在する場合（S103:YES）、Ｓ１０４はスキップされてＳ１０５に移る。Ｓ１０２で、ライトデータの格納先としてフラッシュメモリデバイス１２０を使用すると判定された場合（S102:YES）、記憶制御装置１０は、ホスト２０から受信したライトデータをフラッシュメモリデバイス１２０に記憶させる（Ｓ１０８）。このように構成される本実施例も、前記第１実施例と同様の効果を奏する。
【実施例７】
【０１７８】
図２２に基づいて第７実施例を説明する。本実施例では、フラッシュメモリデバイス１２０とディスクドライブ２１０との使用を切り替えるタイミングとして、第１実施例とは別の例を説明する。
【０１７９】
図２２は、本実施例による記憶制御装置１０により実行されるデータ事前コピー処理を示すフローチャートである。図２２に示すフローチャートは、図１１に示すフローチャートと共通のステップを含んでいる。そこで、重複した説明を割愛し、本実施例に特徴的なステップを中心に説明する。
【０１８０】
ディスクドライブ２１０からフラッシュメモリデバイス１２０への切替時期が到来したと判断された場合（S11:YES）、記憶制御装置１０は、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのデータのコピーを開始し、かつ、記憶制御装置１０で消費される電力のおよそのコストの算出を開始する（Ｓ１２Ａ）。
【０１８１】
コスト重視の設定がされている場合（S14:YES）、記憶制御装置１０は、現在までの概算の電力コストが予め設定された基準値を越えたか否かを判定する（Ｓ１５Ａ）。基準値は、ユーザが予め設定することができる。基準値は、例えば、ユーザの許容できる電力コストの上限を示す金額として設定することができる。電力コストの概算金額が基準値を越えた場合（S15A:YES）、記憶制御装置１０は、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのデータコピーを終了させる（Ｓ１６）。
【０１８２】
次に、記憶制御装置１０は、現在時刻が、管理テーブルに登録されているフラッシュメモリデバイス１２０の使用予定時刻の終了時刻よりも所定時間ｔｓ前の時刻であるか否かを判定する（Ｓ１７Ａ）。例えば、使用予定時刻が「平日の９時から１８時」に設定されており、所定時間ｔｓとして「１時間」が設定されている場合、記憶制御装置１０は、現在時刻が１７時であるか否かを判定する（１８−１＝１７）。
【０１８３】
Ｓ１７ＡでYESと判定された場合、記憶制御装置１０は、フラッシュメモリデバイス１２０からディスクドライブ２１０への差分コピーを開始する（Ｓ１８）。所定時間ｔｓは、ユーザが手動で設定することもできるし、予め設定される所定の観点に基づいて自動的に設定することもできる。所定の観点としては、例えば、フラッシュメモリデバイス１２０の使用中に発生した更新量の大小を挙げることができる。即ち、フラッシュメモリデバイス１２０からディスクドライブ２１０にコピーされる差分データの量に対応させて、所定時間ｔｓを設定することができる。例えば、差分データの量が増大するほど、所定時間ｔｓを長くすることができる。
【０１８４】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。さらに、本実施例では、概算の電力コストが基準値を超えた場合に、ディスクドライブ２１０からフラッシュメモリデバイス１２０へのデータコピーを完了させるため、ユーザの予算を超える電力コストの発生を抑制することができる。従って、ユーザは、記憶制御装置１０のTCOを適切に管理することができ、使い勝手が向上する。
【０１８５】
さらに、本実施例では、フラッシュメモリデバイス１２０からディスクドライブ２１０への差分コピーの開始時刻を、フラッシュメモリデバイス１２０の使用予定日時に関連づけて設定するため、フラッシュメモリデバイス１２０の使用が終了する時刻に応じて差分コピーを開始させることができる。なお、所定時間ｔｓを廃止し、使用予定日時の終了時刻が到来した時点で、フラッシュメモリデバイス１２０からディスクドライブ２１０への差分コピーを開始させる構成でもよい。
【０１８６】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、NAND型フラッシュメモリデバイスとNOR型フラッシュメモリデバイスのように、技術的性質や性能等の相違する複数種類のフラッシュメモリデバイスを混在させて使用する構成でもよい。
【図面の簡単な説明】
【０１８７】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】記憶制御装置を含むストレージシステムの全体構成を示す説明図である。
【図３】記憶制御装置の使用例を示す模式図である。
【図４】チャネルアダプタの構成を示す説明図である。
【図５】フラッシュメモリ制御部の構成を示す説明図である。
【図６】マッピングテーブルを示す説明図である。
【図７】構成管理テーブル及びデバイス状態管理テーブル等を示す説明図である。
【図８】アクセス履歴管理テーブル及びスケジュール管理テーブル等を示す説明図である。
【図９】電力料金の変化とデータの格納先の変化との関係を模式的に示す説明図である。
【図１０】スケジュール生成処理を示すフローチャートである。
【図１１】ディスクドライブからフラッシュメモリデバイスにデータを事前にコピーさせる処理を示すフローチャートである。
【図１２】ライト処理を示すフローチャートである。
【図１３】差分コピー処理を示すフローチャートである。
【図１４】リード処理を示すフローチャートである。
【図１５】データの格納先を決定する処理を示すフローチャートである。
【図１６】第２実施例の記憶制御装置で実行されるライト処理のフローチャートである。
【図１７】第３実施例の記憶制御装置で実行されるライト処理のフローチャートである。
【図１８】第４実施例の記憶制御装置で使用されるフラッシュメモリ制御部の構成を示す説明図である。
【図１９】第５実施例の記憶制御装置で使用されるフラッシュメモリ制御部の構成を示す説明図である。
【図２０】第６実施例の記憶制御装置で使用される管理テーブルを示す説明図である。
【図２１】第６実施例の記憶制御装置で実行されるライト処理のフローチャートである。
【図２２】第７実施例の記憶制御装置で実行される、ディスクドライブからフラッシュメモリデバイスにデータを事前にコピーさせる処理を示すフローチャートである。
【符号の説明】
【０１８８】
１…記憶制御装置、２…ホスト、３…管理端末、４…制御部、５…キャッシュメモリ、６…ハードディスクドライブ、７…フラッシュメモリデバイス、８…スケジュール管理部、９…通信ネットワーク、１０…記憶制御装置、１１…論理ボリューム、２０…ホスト、２１…仮想ホスト、３０…管理サーバ、４０…外部記憶制御装置、４１…コントローラ、４２…ハードディスク搭載部、４３…フラッシュメモリデバイス搭載部、５０…ユーザ端末、１００…コントローラ、１１０…チャネルアダプタ、１１１…マイクロプロセッサ、１１２…周辺処理部、１１３…メモリモジュール、１１３Ａ…制御プログラム、１１３Ｂ…メールボックス、１１３Ｃ…転送リスト、１１４…チャネルプロトコル処理部、１１５…内部ネットワークインターフェース部、１１６，１１７…バス、１２０…フラッシュメモリ制御部（フラッシュメモリデバイス）、１２１…内部ネットワークインターフェース部、１２２…コントローラ、１２３…メモリコントローラ、１２４…メモリモジュール、１２４Ａ…転送リスト、１２５…フラッシュメモリ用メモリコントローラ、１２５Ａ…メモリ、１２６…フラッシュメモリ、１２７…ＦＭプロトコル処理部、１２７Ａ…メモリ、１２７Ｂ…通信経路、１２８…フラッシュメモリデバイス、１２９…コネクタ、１３０…ディスクアダプタ、１４０…サービスプロセッサ、１５０…キャッシュメモリ、１６０…制御メモリ、１７０…相互結合部、２００…ハードディスク搭載部、２１０…ディスクドライブ、２２０…論理デバイス
【図１】
2008276626.tif 000003
【図２】
2008276626.tif 000004
【図３】
2008276626.tif 000005
【図４】
2008276626.tif 000006
【図５】
2008276626.tif 000007
【図６】
2008276626.tif 000008
【図７】
2008276626.tif 000009
【図８】
2008276626.tif 000010
【図９】
2008276626.tif 000011
【図１０】
2008276626.tif 000012
【図１１】
2008276626.tif 000013
【図１２】
2008276626.tif 000014
【図１３】
2008276626.tif 000015
【図１４】
2008276626.tif 000016
【図１５】
2008276626.tif 000017
【図１６】
2008276626.tif 000018
【図１７】
2008276626.tif 000019
【図１８】
2008276626.tif 000020
【図１９】
2008276626.tif 000021
【図２０】
2008276626.tif 000022
【図２１】
2008276626.tif 000023
【図２２】
2008276626.tif 000024