本発明は、書き換え可能な不揮発性メモリデバイスを使用するストレージシステムに関する。
企業等の組織では、多量のデータを管理するために、ホストコンピュータ(以下「ホスト」)とは別に構成されたストレージ装置を用いている。例えば、金融機関や病院等のような組織では、多くの顧客に関する売買データや診療データ等を長期間保存する必要があるため、信頼性が高く、かつ、大容量のストレージ装置が必要とされる。このような高信頼性及び大容量の両方を満たすストレージ装置では、例えば、多数のハードディスクドライブをアレイ状に接続しており、RAID(Redundant Array of Independent Disks)に基づく論理的な記憶領域をホストに提供する。
企業等で長期間管理すべきデータは日々増大する。従って、ストレージ装置に搭載されるハードディスクドライブの数も増加する一方である。ハードディスクドライブは、よく知られているように、スピンドルモータで磁気ディスクを高速回転させながら、磁気ヘッドをシークさせてデータの読み書きを行う。このため、ハードディスクドライブは、半導体メモリのような記憶デバイスに比べて、外径寸法や重量が大きくなり、かつ、消費電力も多い。
ストレージ装置の記憶容量を大きくすればするほど、搭載されるハードディスクドライブの数が増大する。従って、ストレージ装置の設置面積が増加し、ストレージ装置の消費電力が大きくなる。このため、ストレージ装置の導入コストや維持コストが増大し、総所有コスト(TCO)の上昇を招くことになる。
ところで、近年では、新たな記憶デバイスとして、フラッシュメモリデバイスが注目されている。フラッシュメモリデバイスとハードディスクドライブとを比較すると、フラッシュメモリデバイスの方が低消費電力であり、かつ、データの読出し速度も速い。また、フラッシュメモリデバイスは、機械的な可動部を必要としないため、ハードディスクドライブよりも小型に形成することができ、故障も発生しにくいという性質を備える。
フラッシュメモリデバイスは、書き換え可能な不揮発性メモリであり、比較的長期間データを保持し続けることができる。しかしながら、フラッシュメモリデバイスにおいても、リーク電流によって、メモリセルに保持されている電圧値が次第に変化するため、そのまま長期間放置しておくと、やがて、メモリセルからデータを読み出すことができなくなる可能性がある。
そこで、フラッシュメモリデバイスに記憶されたデータを一旦読み出してから元の場所に書き戻すことにより、フラッシュメモリデバイスに記憶されたデータをリフレッシュさせる技術が提案されている(特許文献1)。
米国特許出願公開第2005/0243626号明細書
前記文献に記載の従来技術は、フラッシュメモリデバイス内において、データのリフレッシュを行うことにより、データの長期保存を実現しようとする。しかし、前記文献に記載の従来技術は、フラッシュメモリデバイス単体でのリフレッシュにのみ着目しており、記憶デバイスを多数備えるストレージ装置に関する考察が欠けている。従って、前記文献に記載の従来技術を、ストレージ装置にそのまま適用することはできない。
ストレージ装置は、上述のように、重要なデータを数年〜数十年にわたって保持し続ける必要がある。従って、例えば、フラッシュメモリデバイスを用いた音楽プレイヤー等のような民生品とは異なり、極めて高いレベルでの信頼性が長期間要求される。また、ストレージ装置は、上述のように、大量のデータを管理するために多数の記憶デバイスを必要とする。従って、多数のフラッシュメモリデバイスを効率的かつ安定して使用する仕組みも必要となる。
管理すべきデータの量が増加すればするほど、ストレージシステムに要求される記憶容量は増加する。従って、ストレージシステムの記憶容量を増加させるために、複数のストレージ装置からストレージシステムが構成される場合がある。この場合、ストレージシステム内に、それぞれ仕様の異なるストレージ装置が混在することなり、ヘテロジニアスな環境下において、重要なデータを長期間保存することになる。
従って、あるストレージ装置がデータのリフレッシュ機能を備えていても、他のストレージ装置はリフレッシュ機能を備えていない場合が考えられる。また、同一のストレージ装置に搭載されるメモリデバイスであっても、一方のメモリデバイスはリフレッシュ機能を内蔵しているが、他方のメモリデバイスはリフレッシュ機能を備えていない場合も考えられる。
それぞれが大規模かつ複雑なシステム製品として構成される複数のストレージ装置を備えるストレージシステムでは、記憶容量の増加だけでなく、データ消失の許されない高信頼性も合わせて要求され、さらに、24時間365日の無停止運転まで求められる。ストレージ装置を備えるストレージシステムは、このような技術的性質を備えるため、前記文献に記載の従来技術を単純に適用しても、市場から要求される性能や信頼性を満足することはできない。
そこで、本発明の目的は、書換可能な不揮発性メモリデバイスを用い、メモリデバイスに記憶されているデータを適切な時期に適切な方法でリフレッシュさせることにより、データの長期保存を可能とするストレージシステムを提供することにある。本発明の他の目的は、書換可能な不揮発性メモリデバイスに記憶されているデータのリフレッシュを、ストレージシステムの構成に応じて実行することができるようにしたストレージシステムを提供することにある。本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明の一つの観点に従うストレージシステムは、外部装置と、この外部装置に通信ネットワークを介して接続されるストレージ装置と、外部装置及びストレージ装置を管理する管理部とを備えたストレージシステムであって、ストレージ装置は、書き換え可能な不揮発性メモリデバイスを有する記憶部と、この記憶部を制御するコントローラとを備え、かつ、メモリデバイスの有する記憶領域に基づいた複数の論理デバイスを外部装置に提供するようになっており、管理部は、各論理デバイス毎にリフレッシュ時期をそれぞれ管理しており、各論理デバイスのうちリフレッシュ時期の到来した所定の論理デバイスを検出した場合には、複数種類のリフレッシュモードのうちいずれか一つのリフレッシュモードを選択し、この選択したリフレッシュモードを所定の論理デバイスについて実行させる。
本発明の実施形態では、複数種類のリフレッシュモードには、外部リフレッシュモード及び内部リフレッシュモードが含まれており、外部リフレッシュモードでは、外部装置が所定の論理デバイスに記憶されている全データをストレージ装置を介して読出し、この読み出された全データをストレージ装置を介して所定の論理デバイスに書き戻すようになっており、内部リフレッシュモードでは、ストレージ装置の内部において、所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを所定の論理デバイスに書き戻すようになっている。
本発明の実施形態では、複数種類のリフレッシュモードには、第1内部リフレッシュモード及び第2内部リフレッシュモードが含まれており、第1内部リフレッシュモードでは、コントローラが所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを所定の論理デバイスに書き戻すようになっており、第2内部リフレッシュモードでは、メモリデバイスの内部において、メモリデバイスの記憶領域のうち所定の論理デバイスに対応する所定の記憶領域に記憶されている全データを読出し、この読み出された全データを所定の記憶領域に書き戻すようになっている。
本発明の実施形態では、複数種類のリフレッシュモードには、外部リフレッシュモードと第1内部リフレッシュモード及び第2内部リフレッシュモードとが含まれており、外部リフレッシュモードでは、外部装置が所定の論理デバイスに記憶されている全データをストレージ装置を介して読出し、この読み出された全データをストレージ装置を介して所定の論理デバイスに書き戻すようになっており、第1内部リフレッシュモードでは、コントローラが所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを所定の論理デバイスに書き戻すようになっており、第2内部リフレッシュモードでは、メモリデバイスの内部において、メモリデバイスの記憶領域のうち所定の論理デバイスに対応する所定の記憶領域に記憶されている全データを読出し、この読み出された全データを所定の記憶領域に書き戻すようになっている。
本発明の実施形態では、管理部は、複数種類のリフレッシュモードのうちいずれのリフレッシュモードを選択すべきかを示す情報及びリフレッシュ時期を示す情報を各論理デバイス毎にそれぞれ管理する管理テーブルを利用することにより、選択されたリフレッシュモードの実行を要求するためのコマンドを外部装置またはストレージ装置のいずれかに発行する。
本発明の実施形態では、ストレージ装置は、管理部からコマンドを受信した場合、コントローラによって所定の論理デバイスに関するリフレッシュを実行させるか、または、メモリデバイス内で所定の論理デバイスに関するリフレッシュを実行させるか、のいずれかを決定する。
本発明の実施形態では、外部装置は、管理部からコマンドを受信した場合、所定の論理デバイスに記憶されている全データをストレージ装置を介して読出し、この読み出された全データをストレージ装置を介して所定の論理デバイスに書き戻す。
本発明の実施形態では、複数種類のリフレッシュモードには予め優先順位が設定されており、管理部は、優先順位の高いリフレッシュモードを優先的に選択する。
本発明の実施形態では、管理部は、外部リフレッシュモードと内部リフレッシュモードの両方を選択可能な場合、内部リフレッシュモードを優先的に選択する。
本発明の実施形態では、管理部は、所定の論理デバイスが複数存在する場合、これら各所定の論理デバイスに関するリフレッシュ時期が重ならないように調整する。
本発明の実施形態では、管理部は、所定の論理デバイスについて、リフレッシュ時期の到来前に、当該所定の論理デバイスに記憶されている全データをメモリデバイスに書き込む所定の処理が先に実施された場合には、所定の論理デバイスに関するリフレッシュ時期を変更する。
本発明の実施形態では、管理部は、外部装置内に設けられている。管理部は、ストレージ装置内に設けることもできる。管理部は、外部装置及びストレージ装置とは別の独立したコンピュータ装置として構成してもよい。
外部装置は、ストレージ装置とは別のストレージ装置として構成可能である。さらに、外部装置は、ストレージ装置の有する論理デバイスが割り付けられる仮想的な論理デバイスを備えてもよい。
外部装置は、ストレージ装置の有する論理デバイスにデータを読み書きする上位装置として構成してもよい。外部装置は、ストレージ装置に接続されるスイッチ装置として構成することもできる。
ストレージ装置は、リフレッシュ時期が到来した場合に、通信ネットワークを介して外部装置に接続されるものであってもよい。
本発明の他の観点に従うストレージシステムは、第1通信ネットワークを介して相互に接続される外部装置及びストレージ装置と、第1通信ネットワークとは別の第2通信ネットワークを介して外部装置及びストレージ装置にそれぞれ接続される管理装置とを備えるストレージシステムであって、ストレージ装置は、書き換え可能な不揮発性メモリデバイスを有する記憶部と、この記憶部を制御するコントローラと、メモリデバイスの有する記憶領域に基づいた複数の論理デバイスと、論理デバイスに関するリフレッシュを行うための内部リフレッシュ処理部とを備えており、外部装置は、論理デバイスに関するリフレッシュをストレージ装置を介して行うための外部リフレッシュ処理部を備えており、管理装置は、リフレッシュ時期と内部リフレッシュ処理または外部リフレッシュ処理のいずれを選択すべきかを示す情報とを各論理デバイス毎にそれぞれ予め管理している管理テーブルと、内部リフレッシュ処理または外部リフレッシュ処理のうち選択された方のリフレッシュ処理を起動させるためのコマンドをストレージ装置または外部装置に発行する起動部とを備える。
本発明の構成要素は、その全部または一部をコンピュータプログラムとして構成できる場合がある。このコンピュータプログラムは、記録媒体に固定して譲渡等することができるほかに、インターネット等の通信ネットワークを介して伝送することもできる。
以下、図面に基づき、本発明の実施の形態を説明する。図1は、本実施形態の全体概念を示す説明図である。本実施形態のストレージシステムは、例えば、ストレージ装置1と、外部装置2と、管理部3とを備えて構成される。
ストレージ装置1は、コントローラ4及びフラッシュメモリ搭載部5を備える。コントローラ4は、ストレージ装置1の動作を制御するものであり、フラッシュメモリ搭載部5との間のデータ通信や、外部装置2との間のデータ通信等を担当する。また、コントローラ4は、後述する内部リフレッシュ処理4Aを実行可能である。
フラッシュメモリ搭載部5は、「記憶部」に該当する。フラッシュメモリ搭載部5は、複数のフラッシュメモリデバイス5Aを備える。図1では、一つのフラッシュメモリデバイス5Aのみを示す。フラッシュメモリデバイス5Aは、例えば、フラッシュメモリコントローラ5A1と、フラッシュメモリ5A2とを備える。フラッシュメモリ5A2としては、例えば、NAND型フラッシュメモリまたはNOR型フラッシュメモリ等を適宜使用することができる。フラッシュメモリコントローラ5A1は、フラッシュメモリ5A2へのデータ書込みやデータ読出し等を制御する。
一つまたは複数のフラッシュメモリデバイス5Aの有する物理的な記憶領域に基づいて一つまたは複数の論理的な記憶領域を生成することができる。この論理的な記憶領域は、論理デバイスまたは論理ボリュームと呼ばれる。
外部装置2は、ストレージ装置1の外部に設けられているコンピュータ装置である。外部装置2としては、後述の実施例からも明らかなように、例えば、サーバコンピュータ等のホスト、他のストレージ装置、スイッチ装置等を挙げることができる。外部装置2は、後述の外部リフレッシュ処理を実行可能である。外部装置2は、ストレージ装置1内に設けられた論理デバイスにアクセスして、データを読み書きすることができる。
管理部3は、フラッシュメモリデバイス5Aに記憶されているデータのリフレッシュを管理するためのものである。管理部3は、例えば、起動スケジューラ3Aと、リフレッシュ機能管理テーブル3Bとを備えて構成される。管理部3は、後述の実施例からも明らかなように、ストレージ装置1及び外部装置2とは別の独立したコンピュータ装置として構成することもできるし、ストレージ装置1または外部装置2に内蔵される機能として構成することもできる。
起動スケジューラ3Aは、ストレージシステムの有するリフレッシュ処理(内部リフレッシュ処理4A,外部リフレッシュ処理2A)の起動を制御するものである。リフレッシュ機能管理テーブル3Bは、フラッシュメモリデバイス5Aに記憶されているデータのリフレッシュ方法及びリフレッシュ時期を、各論理デバイス毎にそれぞれ管理する。起動スケジューラ3Aは、リフレッシュ時期の到来した論理デバイスを発見すると、その論理デバイスについて予め設定されている方法に従って、ストレージ装置1または外部装置2のいずれかに起動コマンドを送信する。これにより、内部リフレッシュ処理4Aまたは外部リフレッシュ処理2Aのいずれか一方のみが起動される。
次に、リフレッシュ方法の種類について説明する。本実施形態では、以下に述べるように、複数種類のリフレッシュ方法(リフレッシュモード)のうち、ストレージシステムの構成や負荷等に応じて一つのリフレッシュ方法を選択し、実行させる。
本実施形態のストレージシステムの備える複数のリフレッシュモードは、外部リフレッシュモードと内部リフレッシュモードとに大別される。外部リフレッシュモードとは、ストレージ装置1の外部において、フラッシュメモリデバイス5Aに記憶されているデータをリフレッシュさせるモードである。内部リフレッシュモードとは、ストレージ装置1の内部において、フラッシュメモリデバイス5Aに記憶されているデータをリフレッシュさせるモードである。本実施形態では、ストレージシステムの負荷を考慮して、内部リフレッシュモードの方が外部リフレッシュモードよりも高い優先度に設定される。即ち、内部リフレッシュモードを利用可能である場合は、内部リフレッシュモードが優先的に選択される。
内部リフレッシュモードは、さらに、第1内部リフレッシュモードと第2内部リフレッシュモードとに分類される。第1内部リフレッシュモードとは、ストレージ装置1のコントローラ4によって、ストレージ装置1内で実行されるリフレッシュモードである。第2内部リフレッシュモードとは、フラッシュメモリデバイス5A内のフラッシュメモリコントローラ5A1によって、フラッシュメモリデバイス5A内で実行されるリフレッシュモードである。
外部リフレッシュモードを説明する。管理部3の起動スケジューラ3Aから発行されたコマンドを外部装置2が受領すると、外部リフレッシュ処理2Aが起動する。外部リフレッシュ処理2Aは、図1中に一点鎖線で示すように、ストレージ装置1を介して、リフレッシュ対象の論理デバイスに対応するフラッシュメモリデバイス5Aにアクセスし、データを読み出す。この読み出されたデータは、外部装置2内のメモリに記憶される。そして、外部リフレッシュ処理2Aは、外部装置2内に一時的に記憶されたデータを、データ読出し元であるフラッシュメモリデバイス5Aの元の位置に書き込む。これにより、フラッシュメモリ5A2の各セルの電圧値は、該セルに記憶されるデータの種類(1か0か)に応じて復活する。
内部リフレッシュモードを説明する。起動スケジューラ3Aがストレージ装置1に向けて起動コマンドを発行すると、内部リフレッシュ処理4Aが起動する。内部リフレッシュ処理4Aは、第1内部リフレッシュモードまたは第2内部リフレッシュモードのいずれを実行するかを決定する。
例えば、フラッシュメモリデバイス5Aがリフレッシュ機能を備えていない場合、内部リフレッシュ処理4Aは、第1内部リフレッシュモードを選択する。第1内部リフレッシュモードが選択された場合、図1中に太線で示すように、コントローラ4は、リフレッシュ対象の論理デバイスに対応するフラッシュメモリデバイス5Aにアクセスして、データを読み出す。この読み出されたデータは、コントローラ4内のメモリに一時的に記憶される。そして、コントローラ4は、この読み出したデータを元の位置でフラッシュメモリデバイス5Aに書き込む。
第2内部リフレッシュモードが選択された場合、図1中に点線で示すように、フラッシュメモリコントローラ5A1は、内部リフレッシュ処理4Aからの指示に従って、フラッシュメモリ5A2の所定の位置から所定サイズのデータを読み出す。この読み出されたデータは、読出し元であるフラッシュメモリ5A2内の空き領域または未使用の他のフラッシュメモリ5A2の記憶領域等に書き込まれる。そして、フラッシュメモリコントローラ5A1は、この読み出したデータを元の位置でフラッシュメモリ5A2に書き込む。
このように構成される本実施形態によれば、記憶デバイスとして、書換可能な不揮発性メモリを用いるため、ハードディスクドライブを用いる場合に比べて、消費電力を低減することができ、ストレージ装置1を小型軽量化することができる。従って、ストレージ装置1の導入コストや維持コストを低減することができる。
本実施形態では、フラッシュメモリデバイス5Aに記憶されているデータを複数種類のリフレッシュモードのうちいずれか一つのリフレッシュモードを用いて、リフレッシュさせる。従って、フラッシュメモリデバイス5Aにデータを長期間保存した場合でも、フラッシュメモリデバイス5Aのメモリセルの電圧値が変化してメモリセルに記憶されているデータが読出し不能となるのを防止することができる。
本実施形態では、論理デバイス単位でデータのリフレッシュを実行させる。即ち、ホスト等のような外部装置2によって認識され利用される単位で、データのリフレッシュを行うことができる。これにより、例えば、長期間の保存を必要とするアーカイブボリューム等を効率よく適切に管理することができる。
本実施形態では、ストレージ装置1の外部でデータをリフレッシュさせる外部リフレッシュモードと、ストレージ装置1の内部でデータをリフレッシュさせる内部リフレッシュモードとの複数種類のリフレッシュモードを用意し、いずれか一つのリフレッシュモードを選択可能とした。従って、例えば、ストレージシステムの構成や論理デバイスの種類等に応じて、より適切なリフレッシュモードを選択可能であり、使い勝手が向上する。
例えば、フラッシュメモリデバイス5Aがリフレッシュ機能を備えている場合は、第2内部リフレッシュモードによって、コントローラ4や外部装置2の負荷を増大させずに、フラッシュメモリデバイス5A内でデータをリフレッシュさせることができる。また、例えば、フラッシュメモリデバイス5Aがリフレッシュ機能を備えていない場合や外部装置2がリフレッシュ機能を備えていない場合は、第1内部リフレッシュモードによって、外部装置2の負荷を増大させずに、ストレージ装置1内でデータをリフレッシュさせることができる。さらに、例えば、ストレージ装置1のコントローラ4がリフレッシュ機能を備えていない場合でも、外部装置2のリフレッシュ機能を利用して、フラッシュメモリデバイス5A内のデータをリフレッシュさせることができる。
従って、本実施形態によれば、データのリフレッシュ機能についてそれぞれ異なる仕様を有するフラッシュメモリデバイス5A,ストレージ装置1,外部装置2が混在する場合でも、フラッシュメモリデバイス5A内のデータをリフレッシュさせることができ、データを長期間にわたって保存することができる。
本実施形態では、外部リフレッシュモード及び内部リフレッシュモードの両方を利用可能な場合、内部リフレッシュモードを優先して選択する。これにより、外部装置2の処理負荷を低減することができ、外部装置2で実行される他の処理に影響を与えずにデータをリフレッシュさせることができる。また、内部リフレッシュモードが選択された場合は、ストレージ装置1と外部装置2との間でリフレッシュ対象のデータが転送されないため、ストレージ装置1と外部装置2との間のトラフィックが増大するのを防止できる。
本実施形態では、第1内部リフレッシュモードと第2内部リフレッシュモードの両方を利用可能な場合、第2内部リフレッシュモードを優先的に選択する。これにより、コントローラ4の処理負荷を軽減することができ、ストレージ装置1の応答性能を低下させることなく、データのリフレッシュを行うことができる。
なお、複数種類のリフレッシュモードの中からいずれか一つのリフレッシュモードを選択して実行させる場合を述べたが、これに限らず、複数のリフレッシュモードを時期を変えて実行させることもできる。例えば、第2内部リフレッシュモードを実行させた後で、第1内部リフレッシュモードまたは外部リフレッシュモードを実行させてもよい。以下、本実施形態を詳細に説明する。
図2は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、一つまたは複数のストレージ装置10と、一つまたは複数のホスト20と、少なくとも一つの管理サーバ30とを備えて構成される。
ストレージ装置10は、図1中のストレージ装置1に対応する。ホスト20は、図1中の外部装置2に対応する。管理サーバ30は、図1中の管理部3に対応する。ストレージ装置10,ホスト20及び管理サーバ30の詳細は、それぞれ後述する。
図2を参照してストレージシステムのネットワーク構成を説明する。各ホスト20と各ストレージ装置10とは、例えば、SAN(Storage Area Network)のような通信ネットワークCN1を介して、相互通信可能に接続されている。IP(Internet Protocol)を利用するIP_SANでもよいし、FCP(Fibre Channel Protocol)を利用するFC_SANでもよい。ホスト20の有するインターフェース(I/F)21とストレージ装置10の有するインターフェース110とは、通信ネットワークCN1を介して相互に接続されている。
管理サーバ30は、例えば、LAN(Local Area Network)のような通信ネットワークCN2を介して、各ホスト20及び各ストレージ装置10とそれぞれ相互通信可能に接続されている。ホスト20の有するインターフェース22,ストレージ装置10の有するインターフェース111及び管理サーバ30の有するインターフェース31は、通信ネットワークCN2を介して、相互に接続されている。
なお、図2中では、データ入出力用ネットワークCN1と管理用ネットワークCN2とを分離する場合を示すが、これに限らず、一つの通信ネットワークを用いて、データの入出力及び管理を行う構成でもよい。例えば、通信ネットワークCN2を廃止し、通信ネットワークCN1のみを備える構成でもよい。
次に、ストレージ装置10,ホスト20及び管理サーバ30のハードウェア構成の一例を説明する。紙面の都合上、図2に示すストレージシステムの構成の一部を抜き出して、説明する。また、先に図3を参照してホスト20及び管理サーバ30の構成を説明し、次に、図4を用いてストレージ装置10の構成を説明する。
図3は、ホスト20及び管理サーバ30に着目したハードウェア構成図である。先にホスト20から説明する。ホスト20は、例えば、インターフェース21,22と、プロセッサ(図中「CPU」)23と、メモリ24と、補助記憶装置25と、入力装置26と、ディスプレイ27、バス28とを備えたコンピュータ装置として構成される。例えば、ホスト20は、パーソナルコンピュータ、ワークステーション、サーバマシン、メインフレームマシン、携帯情報端末、携帯電話等のように構成可能である。
インターフェース21は、通信ネットワークCN1を介してストレージ装置10に接続するためのものである。インターフェース22は、通信ネットワークCN2を介して管理サーバ30やストレージ装置10に接続するためのものである。
プロセッサ23は、メモリ24に記憶されたプログラムを読み出して実行することにより、所定の機能を実現する。メモリ24には、外部リフレッシュ処理P2を実現するためのプログラムが記憶されている。外部リフレッシュ処理P2についは後述する。なお、ホスト20は、外部リフレッシュ処理P2以外に、例えば、OS(Operating System)や業務処理プログラム等のプログラムを適宜実行することができるようになっている。
補助記憶装置25は、例えば、ハードディスクドライブや半導体メモリデバイス等から構成される。入力装置26は、例えば、キーボードスイッチやポインティングデバイス、マイクロフォン等から構成される。ディスプレイ27は、出力装置の一例であり、例えば、液晶ディスプレイやプラズマディスプレイ等から構成される。そして、上述の各部21〜27はバス28によって相互に接続されている。
管理サーバ30の構成を説明する。管理サーバ30は、例えば、インターフェース31と、プロセッサ32と、メモリ33と、補助記憶装置34と、入力装置35と、出力装置36及びバス37とを備えたコンピュータ装置として構成される。管理サーバ30は、例えば、パーソナルコンピュータや携帯情報端末、携帯電話等のように構成可能である。
インターフェース31は、通信ネットワークCN2を介して各ホスト20及び各ストレージ装置10と接続するためのものである。プロセッサ32は、メモリ33に記憶されているプログラムを読み込んで実行することにより、所定の機能を実現させる。メモリ33には、例えば、リフレッシュ機能管理テーブルMT1と、リフレッシュ起動処理P1とが記憶されている。これらのテーブルMT1及びリフレッシュ起動処理P1については後述する。補助記憶装置34は、例えばハードディスクドライブや半導体メモリデバイス等から構成される。入力装置35及びディスプレイ36は、ホスト20の構成で述べたように、管理者との間で情報を交換するための装置である。
ストレージ装置10は、図3に示すように、例えば、コントローラ11と、フラッシュメモリ搭載部12及びインターフェース13を備えて構成される。そこで、図4を参照してストレージ装置10の構成例を説明する。
コントローラ11は、ストレージ装置10の全体動作を制御するもので、図1中のコントローラ4に対応する。フラッシュメモリ搭載部12は、図1中のフラッシュメモリ搭載部5に対応する。インターフェース13は、通信ネットワークCN2を介して、各ホスト20及び管理サーバ30に接続するためのものである。先にコントローラ11の構成を説明し、次にフラッシュメモリ搭載部12の構成を説明する。
コントローラ11は、例えば、インターフェース(図中「チャネルI/F」)110と、インターフェース(図中「FM I/F」)111と、制御部112と、キャッシュメモリ113と、管理メモリ114とを備えて構成される。
一方のインターフェース110は、通信ネットワークCN1を介して各ホスト20と通信を行うためのものである。他方のインターフェース111は、フラッシュメモリ搭載部12に搭載されている各フラッシュメモリデバイス120との間で通信を行うためのものである。インターフェース110は、各ホスト20とキャッシュメモリ113との間のデータ転送を制御し、インターフェース111は、フラッシュメモリデバイス120とキャッシュメモリ113との間のデータ転送を制御する。従って、各インターフェース110,111は、それぞれ少なくとも一つ以上のプロセッサを備えた制御回路のように構成することができる。
制御部112は、コントローラ11の動作を制御するもので、少なくとも一つ以上のプロセッサを備えている。キャッシュメモリ113には、例えば、ホスト20から書き込まれたデータやフラッシュメモリデバイス120から読み出されたデータ等が記憶される。管理メモリ114には、ストレージ装置10を管理するための各種管理情報や制御情報が記憶される。例えば、管理メモリ114には、内部リフレッシュ処理P3を実現するためのプログラムや、フラッシュメモリデバイス120がリフレッシュ機能を備えるか否かを管理するためのフラッシュメモリコントローラ(図中「FM_CTL」)リフレッシュ機能情報MT3等が記憶される。
フラッシュメモリ搭載部12の構成を説明する。フラッシュメモリ搭載部12は、例えば、複数のフラッシュメモリデバイス120を備えて構成される。各フラッシュメモリデバイス120は、少なくとも一つ以上のフラッシュメモリコントローラ121と、一つまたは複数のフラッシュメモリ122とを備えて構成される。一つのフラッシュメモリデバイス120は、一つの記憶ドライブに該当する。なお、図中及び以下の説明では、便宜上、フラッシュメモリを「FM」と略記する。
フラッシュメモリ122は、FMコントローラ121から書き込まれたデータを電圧値(電荷)として保持する。フラッシュメモリ122は、書換可能な不揮発性メモリデバイスの一例である。書換可能であって、かつ、不揮発性を有するメモリデバイスであれば、フラッシュメモリに限定されない。本発明は、データの長期保護に際してリフレッシュ動作を必要とする各種のメモリデバイスに適用可能である。FMコントローラ121は、リフレッシュ機能を実現するための処理P4を備えている。即ち、FMコントローラ121は、フラッシュメモリデバイス120内において、データのリフレッシュを行うことができる。
なお、上述したストレージ装置10の構成、ホスト20及び管理サーバ30の構成は一例であって、本発明は上述の構成に限定されない。
図5は、フラッシュメモリデバイス120の有する物理的な記憶領域と論理デバイス124との関係を模式的に示す説明図である。図5(a)に示すように、各フラッシュメモリデバイス120がそれぞれ有する物理的な記憶領域を、一つのRAIDグループ(パリティグループ)123として仮想化することができる。そして、この仮想化された物理的な記憶領域123を区切ることにより、一つまたは複数の論理デバイス(LU)124を設定することができる。
従って、例えば、「LU#1」で特定される論理デバイス124に記憶されているデータをリフレッシュさせる場合、各フラッシュメモリデバイス120の記憶領域のうち、リフレッシュ対象の論理デバイス124(LU#1)に対応する範囲のデータが各フラッシュメモリ122からそれぞれ読み出され、元の位置に書き戻される。なお、図5(b)に示すように、一つのフラッシュメモリデバイス120内に一つまたは複数の論理デバイス124を設定することもできる。
図6は、リフレッシュ機能を管理するためのテーブルMT1を示す説明図である。このテーブルMT1は、例えば、各論理デバイス124毎に、適用すべきリフレッシュモード及びリフレッシュ時期をそれぞれ管理する。
この管理テーブルMT1は、例えば、各論理デバイス124をストレージシステム内で一意に識別するための論理デバイス情報と、その論理デバイスについて適用されるリフレッシュ機能の種別(リフレッシュモード)を示すリフレッシュ機能情報と、リフレッシュに関する時刻情報とを対応付けて管理する。
論理デバイス情報としては、例えば、WWN(World Wide Name)や論理デバイス番号等を用いることができる。また、各ストレージ装置10をそれぞれ識別するためのストレージ装置番号や製造番号、ストレージ装置名称等を合わせて管理する構成でもよい。
リフレッシュ機能情報には、その論理デバイスについて適用されるリフレッシュ機能の種別と、そのリフレッシュ機能を実行する装置を特定するための情報とがそれぞれ設定される。
図6中の優先順位管理テーブルMT2に示すように、ストレージシステムの備える複数種類のリフレッシュモード(リフレッシュ機能)には予め優先順位が設定されている。例えば、内部リフレッシュ機能P3は、外部リフレッシュ機能P2よりも高い優先度に設定される。従って、ある論理デバイス124について、内部リフレッシュ処理及び外部リフレッシュ処理の両方を実行可能である場合、高い優先度に設定されている内部リフレッシュ処理が選択されて、テーブルMT1に登録される。
リフレッシュ機能を実行する主体を特定するための情報としては、例えば、IPアドレスを用いることができる。即ち、外部リフレッシュ機能がテーブルMT1に設定される場合、その外部リフレッシュ機能を実行するホスト20のIPアドレスもテーブルMT1に設定される。また、内部リフレッシュ機能がテーブルMT1に設定される場合、その内部リフレッシュ機能を実行するストレージ装置10のIPアドレスもテーブルMT1に設定される。IPアドレスとは、通信ネットワークCN2によって接続された各ノード(ストレージ装置10,ホスト20)を特定するための情報の一例である。これにより、管理サーバ30は、各ホスト20及び各ストレージ装置10のうち、いずれの装置にコマンドを発行すべきなのかを直ちに把握できる。
時刻情報には、例えば、前回のリフレッシュ時刻と次回のリフレッシュ起動時刻とをそれぞれ記憶させることができる。前回のリフレッシュ時刻とは、リフレッシュ処理が前回起動された時刻を示す情報である。次回のリフレッシュ起動時刻には、前回のリフレッシュ時刻から所定の時間が経過した値が設定される。リフレッシュ間隔は、例えば、3年毎、5年毎、7年毎等のように設定することができる。リフレッシュ間隔は、各論理デバイス124毎にそれぞれ異ならせることができる。なお、例えば、前回のリフレッシュ処理で使用されたリフレッシュモードをテーブルMT1に記憶させてもよい。
図7は、FMコントローラ121に関するリフレッシュ機能を管理するためのテーブルMT3を示す説明図である。このテーブルMT3は、例えば、各FMコントローラ121をそれぞれ識別するための情報と、各FMコントローラ121がリフレッシュ機能を備えているか否かを示す情報とを対応付けて管理する。FMコントローラ121がリフレッシュ機能を備える場合(第2内部リフレッシュモードを実行可能な場合)、リフレッシュ機能の有無を示す欄には「有り」と設定される。
次に、本実施例によるストレージシステムのリフレッシュ制御について、図8〜図11を参照して説明する。なお、以下の各フローチャートは、本発明の理解及び実施に必要な範囲で各処理の概要を示しており、実際のプログラムとは相違する場合がある。また、以下の説明では、ステップを「S」と略記する。
図8は、リフレッシュ起動処理を示すフローチャートである。この処理は、管理サーバ30によって所定周期(例えば1時間毎等)で実行される。まず、管理サーバ30は、テーブルMT1を参照し、各論理デバイス124に設定された次回のリフレッシュ起動時刻と現在時刻とをそれぞれ比較する。そして、管理サーバ30は、テーブルMT1に設定されている次回のリフレッシュ起動時刻が現在時刻を超えている論理デバイス124が存在するか否かを判定する(S10)。リフレッシュ対象の論理デバイス124を一つも発見できなかった場合(S10:NO)、管理サーバ30は、所定時間が経過するのを待って、再びS10を実行する。
ここで、リフレッシュ起動時刻に達した論理デバイス124は、「リフレッシュ時期の到来した所定の論理デバイス」に該当する。以下の説明では、所定の論理デバイス124を、リフレッシュ対象の論理デバイス124と呼ぶ場合がある。
リフレッシュ起動時刻の到来した論理デバイス124を発見した場合(S10:YES)、管理サーバ30は、その論理デバイス124に関するリフレッシュ機能情報の値を確認する(S11)。テーブルMT1に「内部リフレッシュ機能有り」と設定されている場合、管理サーバ30は、テーブルMT1に設定されているIPアドレスを有する装置(ストレージ装置10)に向けて起動コマンドを発行することにより、内部リフレッシュ処理P3を起動させる(S12)。これに対し、テーブルMT2に「外部リフレッシュ機能有り」と設定されている場合、管理サーバ30は、テーブルMT1に設定されているIPアドレスを有する装置(ホスト20)に向けて起動コマンドを発行することにより、外部リフレッシュ処理P2を起動させる。
図9は、内部リフレッシュ処理P3を示すフローチャートである。内部リフレッシュ処理P3は、ストレージ装置10のコントローラ11が管理サーバ30から起動コマンドを受信すると実行される。
管理サーバ30から受信された起動コマンドには、リフレッシュ対象の論理デバイス124を特定する情報が含まれている。コントローラ11は、コントローラ11の管理下にある各論理デバイス124がどのフラッシュメモリデバイス120の記憶領域を利用しているかを管理している。従って、コントローラ11は、リフレッシュ対象の論理デバイス124に対応する一つまたは複数のフラッシュメモリデバイス120を特定することができる。
コントローラ11は、テーブルMT2を参照することにより、リフレッシュ対象の論理デバイス124に対応するFMコントローラ121がリフレッシュ機能(FM_CTLリフレッシュ処理)P4を備えているか否かを判定する(S20)。
FMコントローラ121がリフレッシュ機能P4を備えている場合(S20:YES)、コントローラ11は、FMコントローラ121の有するリフレッシュ機能P4を実行させ、フラッシュメモリデバイス120内でデータをリフレッシュさせる(S21)。即ち、コントローラ11は、リフレッシュ対象の論理デバイス124の全領域について、FMコントローラ121の有するリフレッシュ機能P4により、データを一旦読み出させた後、書き戻させる。このため、コントローラ11は、リフレッシュ対象のデータ領域に関するリフレッシュ開始アドレス及びリフレッシュさせるデータ長を明示して、FMコントローラ121に指示を与える。
これに対し、FMコントローラ121がリフレッシュ機能P4を備えていない場合(S20:NO)、コントローラ11がデータをリフレッシュさせる(S22)。即ち、コントローラ11は、リフレッシュ対象の論理デバイス124に記憶されているデータを一定量ずつキャッシュメモリ113に読み出した後、この読み出したデータをそのまま元の格納位置に書き戻す。このようなデータの読出し処理とデータの書込み処理とを、リフレッシュ対象の論理デバイス124の全領域について一定量ずつ実行することにより、論理デバイス124内のデータをリフレッシュさせることができる。
図10は、FMコントローラ121によるリフレッシュ処理P4を示すフローチャートである。この処理は、コントローラ11の内部リフレッシュ処理P3によって起動され、FMコントローラ121によって実行される。
本処理では、内部リフレッシュ処理P3からパラメータとして、リフレッシュ領域情報を受け取る。リフレッシュ領域情報は、リフレッシュ開始アドレス及びデータ長から特定される。FMコントローラ121は、リフレッシュ開始アドレスから指定されたデータ長のデータを、FMコントローラ121に内蔵された一時的記憶領域またはFMコントローラ121の外部に設けられた一時的記憶領域に読出し、この読み出したデータを元のアドレスに書き戻す(S30)。
図11は、外部リフレッシュ処理P2を示すフローチャートである。本処理は、管理サーバ30のリフレッシュ起動処理P1により起動され、ホスト20のプロセッサ23により実行される。
ホスト20は、リフレッシュ対象の論理デバイス124の全領域に対して、リフレッシュを行う(S40)。具体的には、ホスト20のプロセッサ23は、リフレッシュ対象の論理デバイス124内のデータを一定量ずつメモリ24に読み出す。その後、プロセッサ23は、この読み出したデータをそのまま元の場所に書き戻す。この作業をリフレッシュ対象の論理デバイス124の全領域について実施する。
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、フラッシュメモリデバイス120を用いてデータを保存するため、ハードディスクドライブを用いる場合よりも、消費電力を低減することができ、ストレージ装置10を小型軽量化することができ、ストレージ装置1の総所有コストを低減できる。
本実施例では、内部リフレッシュ処理P3または外部リフレッシュ処理P2のいずれかを用いて、論理デバイス124内のデータをリフレッシュさせることができる。さらに、内部リフレッシュ処理P3では、ストレージ装置10のコントローラ11またはフラッシュメモリデバイス120のFMコントローラ121のいずれかによって、論理デバイス124内のデータをリフレッシュさせることができる。従って、ストレージシステムの構成等に応じて適切なリフレッシュモードを設定することができ、長期保存されるデータの消失を防止することができ、使い勝手も向上する。
本実施例では、各論理デバイス124毎にリフレッシュモード及びリフレッシュ起動時刻を設定可能である。従って、ホスト20によって利用される単位(論理デバイス124)で、データのリフレッシュを行うことができる。これにより、データマイグレーションやボリュームコピー等のような他の処理とリフレッシュ処理との連携も容易となる。
本実施例では、内部リフレッシュ処理P3の優先度を外部リフレッシュ処理P2の優先度よりも高く設定する。これにより、ホスト20の処理負荷を増大させることなく、ストレージ装置10内でデータをリフレッシュさせることができる。
なお、外部リフレッシュ処理P2及び内部リフレッシュ処理P3のいずれを用いる場合でも、ウェアレベリング処理を行うことにより、フラッシュメモリデバイス120の寿命を延ばすことができる。ウェアレベリング処理とは、書込み回数の分散を図る処理であり、特定の箇所に書込みが集中しないように、書込み回数の少ない箇所にデータを書き込ませる。これにより、特定の箇所の書込み回数が上限に達して、その特定の箇所への書込みが不能となるのを防止することができる。
例えば、アドレス単位等のように、ある一定の単位で、書込み回数を管理する書込み回数管理テーブルを設けることができる。この書込み回数管理テーブルを参照して、書込み回数の少ないアドレスにデータを書き込むように制御すれば、フラッシュメモリデバイス120の寿命を長くすることができる。例えば、リフレッシュ機能管理テーブルMT1に、書込み管理単位毎の累計書込み回数を管理する部分を追加することにより、ウェアレベリング処理を考慮したリフレッシュ処理を行うことができる。
図12〜図18に基づいて第2実施例を説明する。本実施例を含む以下の各実施例は、上述した第1実施例の変形例に相当する。従って、本実施例では、前記第1実施例との相違部分を中心に説明する。本実施例では、一方のストレージ装置10Uが他方のストレージ装置10内の論理デバイス124からデータを読み出して元の場所に書き戻すことにより、データをリフレッシュさせる。
図12は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムでは、新たに統合ストレージ装置10Uが設けられている。統合ストレージ装置10Uは、ストレージ装置10と同様に構成可能であり、通信ネットワークCN1及びCN2にそれぞれ接続されている。
統合ストレージ装置10Uは、他のストレージ装置10内の論理デバイス124を、あたかも統合ストレージ装置10U自身の論理デバイスであるかのようにして、ホスト20に提供する。即ち、統合ストレージ装置10Uは、ストレージシステム内に分散する複数の論理デバイス124を統合ストレージ装置10U内で仮想化して、統合管理することができるようになっている。
統合ストレージ装置10Uの内部において各ストレージ装置10の有する論理デバイス124を仮想化して管理することにより、統合ストレージ装置10Uの有する各種の機能(例えば、スナップショットやリモートコピー)を、仮想化された論理デバイスについても適用可能となる。
統合ストレージ装置10Uから見た場合、他のストレージ装置10は、統合ストレージ装置10Uの外部に位置するストレージ装置である。従って、ストレージ装置10は、外部ストレージ装置または接続先ストレージ装置と呼ぶことができる。これに対し、統合ストレージ装置10Uは、接続元ストレージ装置と呼ぶこともできる。
図13は、統合ストレージ装置10Uに着目した構成図である。統合ストレージ装置10Uのコントローラ11Uは、前記コントローラ11と同様に構成される。しかし、管理メモリ114内には、ストレージ間リフレッシュ処理P5を実現するためのプログラムが記憶されている。
ストレージ管理リフレッシュ処理P5は、接続元である統合ストレージ装置10Uが、接続先のストレージ装置10内の論理デバイス124についてのデータリフレッシュ処理を実行するものである。ストレージ間リフレッシュ処理P5は、例えば、統合ストレージ装置によるリフレッシュ処理と呼び変えることもできる。ストレージ間リフレッシュ処理P5については後述する。
図14は、統合ストレージ装置10Uが他のストレージ装置10の有する論理デバイス124を取り込む様子を模式的に示す説明図である。統合ストレージ装置10の記憶構造に着目すると、図14中の左上側に示すように、ホスト20からの指示を受領するためのターゲットポート110Tには、論理デバイス124(LU#1)が接続されている。この論理デバイス124は、中間デバイス(VDEV)123を介して、一つまたは複数のフラッシュメモリデバイス120に接続されている。
換言すれば、一つまたは複数のフラッシュメモリデバイス120の有する物理的記憶領域は、中間デバイス123として仮想化されており、この中間デバイス123に論理デバイス124(LU#1)が設定される。この論理デバイス124は、統合ストレージ装置10U内の物理的な記憶デバイス(フラッシュメモリデバイス120)に基づいて生成されているため実論理デバイスと呼ぶこともできる。
これに対し、統合ストレージ装置10U内の他の論理デバイス(LU#3)124は、中間デバイス123Vに接続されている。そして、この中間デバイス123Vは、外部接続用ポート(Externalポート)110E及び通信ネットワークCN1等を介して、他のストレージ装置10内の論理デバイス124に接続されている。即ち、他のストレージ装置10の有する論理デバイス124の記憶領域は、中間デバイス123Vを介して、統合ストレージ装置10U内の論理デバイス124(LU#3)にマッピングされる。
このように、他のストレージ装置10の有する論理デバイス124を利用する論理デバイス124(LU#3)は、データ入出力を行うための窓口であり、実際にデータを格納するデバイスはストレージ装置10内の論理デバイス124である。この論理デバイス124(LU#3)は、統合ストレージ装置10U内のフラッシュメモリデバイス120に基づくデバイスではないため、仮想論理デバイスと呼ぶこともできる。従って、統合ストレージ装置10U内に仮想論理デバイスのみを設ける場合、統合ストレージ装置10Uは、フラッシュメモリデバイス120を備える必要はない。
図15は、統合ストレージ装置10Uが他のストレージ装置10内の論理デバイス124を利用するために使用するマッピングテーブルMT4の一例を示す。このテーブルMT4は、例えば、統合ストレージ装置10U内の管理メモリ114に記憶される。
テーブルMT4は、例えば、LUN(Logical Unit Number)と、論理デバイス124の番号と、中間デバイス123を識別するための情報とを対応付けることにより構成することができる。中間デバイス123(123Vを含む)を識別するための情報には、例えば、中間デバイスの番号と、中間デバイスが接続される物理的な記憶デバイスの種類を示す情報と、物理的な記憶デバイスへ接続するための経路情報等を含めることができる。
実論理デバイスの場合、経路情報として、統合ストレージ装置10U内のフラッシュメモリデバイス120への経路が設定される。仮想論理デバイスの場合、他のストレージ装置10の論理デバイス124にアクセスするためのWWNやLUNが設定される。
ホスト20が仮想論理デバイス124(上記の例では、LU#3)へのアクセス要求(ライトコマンドやリードコマンド)を発行した場合、統合ストレージ装置10Uのコントローラ11Uは、ホスト20からのアクセス要求を、仮想論理デバイス124に対応付けられている論理デバイス124へのアクセス要求に変換する。この変換は、コントローラ11U内の制御部112によって行うことができる。
図16は、本実施例で使用されるリフレッシュ機能管理テーブルMT1Uを示す説明図である。このテーブルMT1Uは、図16中に太線で示すように、リフレッシュ機能情報としてストレージ間リフレッシュ機能を選択可能になっている点で、図6に示すテーブルMT1と異なる。ストレージ管理リフレッシュ機能を設定する場合、IPアドレスには、統合ストレージ装置10UのIPアドレスが設定される。
また、優先順位管理テーブルMT2Uにも、ストレージ間リフレッシュ機能が追加されている。本実施例では、ストレージシステムの負荷が少なくなるように、(1)内部リフレッシュ機能、(2)ストレージ間リフレッシュ機能、(3)外部リフレッシュ機能の順番で、優先度が設定される。
図17は、本実施例によるリフレッシュ起動処理を示すフローチャートである。図8に示すフローチャートに比べて、本処理では、新たにS14が追加されている。即ち、リフレッシュ機能情報の値に「ストレージ間リフレッシュ機能有り」と設定されていた場合、管理サーバ30は、統合ストレージ装置10Uに向けて起動コマンドを発行し、ストレージ間リフレッシュ処理P5を起動させる(S14)。
図18は、ストレージ間リフレッシュ処理P5を示すフローチャートである。本処理は、管理サーバ30のリフレッシュ起動処理P1により起動され、統合ストレージ装置10Uのコントローラ11Uにより実行される。
本処理では、リフレッシュ対象の論理デバイス124の全領域に対して、データのリフレッシュを行う(S50)。即ち、統合ストレージ装置10Uは、ストレージ装置10にアクセスすることにより、リフレッシュ対象の論理デバイス124内のデータを一定量ずつキャッシュメモリ113に読み出す。そして、読み出したデータをストレージ装置10内の論理デバイス124に書き戻す。この作業をリフレッシュ対象の論理デバイス124の全領域について実施する。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、ストレージシステム内の論理デバイスを仮想化する統合ストレージ装置10U内で、接続先のストレージ装置10の有する論理デバイス内に記憶されているデータをリフレッシュさせることができる。従って、接続先のストレージ装置10内のコントローラ10及びFMコントローラ121のいずれもがリフレッシュ機能を備えていない場合でも、ホスト20の処理負荷を増大させることなく、データのリフレッシュを行うことができる。
本実施例では、統合ストレージ装置10Uによって、外部ストレージ装置10内の論理デバイス124に関してデータをリフレッシュさせることができる。従って、例えば、外部ストレージ装置10を通常時にはオフラインストレージとして使用し、必要な場合のみ外部ストレージ装置10と統合ストレージ装置10Uとを接続させて、外部ストレージ装置10内の論理デバイス124についてデータのリフレッシュを行うことができる。これにより、例えば、比較的長期間にわたって保存すべきデータを外部ストレージ装置10内の論理デバイス124に記憶させて管理することができ、外部ストレージ装置10を効率的に使用できる。また、リフレッシュ起動時刻が到来した場合のみ外部ストレージ装置10に電源を入れて起動させれば足りるため、ストレージシステムの消費電力を一層低減することができる。
図19〜図21に基づいて第3実施例を説明する。本実施例では、論理デバイス124がリフレッシュ起動時刻に達した場合でも、リフレッシュ処理が不要となる所定の処理が既に実施されている場合は、リフレッシュ処理を実施しない。
図19に示すリフレッシュ機能管理テーブルMT1Aでは、リフレッシュの要否を示すフラグ情報が追加されている。初期値としては、「リフレッシュ必要」に設定されているが、所定の処理が実施された場合には、「リフレッシュ不要」に変更される。
図20は、リフレッシュ要否を示すフラグを設定するための処理を示す。この処理は、例えば、管理サーバ30によって実行される。管理サーバ30は、例えば、データマイグレーションが実行されたか否か(S60)、リストアが実行されたか否か(S61)、ボリュームコピーが実行されたか否か(S62)を監視する。
これらデータマイグレーション、リストア、ボリュームコピーが所定の処理に該当し、所定の処理の実行が検出された場合(S60:YES,S61:YES,S62:YES)、管理サーバ30は、その所定の処理によってデータの書き込まれた論理デバイスについて、リフレッシュ要否フラグの値を「リフレッシュ不要」に設定する(S63)。これらの所定の処理は、処理対象の論理デバイス内の全データを書き込む処理であるから、所定の処理を終了した時点でデータはリフレッシュされている。
図21は、リフレッシュ起動処理を示すフローチャートである。図8に示すフローチャートとの相違は、リフレッシュ起動時刻に達した論理デバイス124が検出された場合(S10:YES)、管理サーバ30は、リフレッシュ要否フラグの値を調べて、「リフレッシュ必要」に設定されているか否かを判定する点にある(S15)。「リフレッシュ不要」に設定されていた場合(S15:YES)、管理サーバ30は、リフレッシュ処理を起動させず、所定時間経過後にS10を再び実行する。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、論理デバイス124内の全データを結果的にリフレッシュさせる所定の処理が、リフレッシュ起動時刻よりも前に実施された場合は、リフレッシュ処理を実行しないため、無駄なリフレッシュ処理が行われるのを防止することができる。なお、リフレッシュ処理の起動が阻止された後で、管理者は、手動操作で新たなリフレッシュ起動時刻を設定することができる。
図22に基づいて第4実施例を説明する。本実施例では、リフレッシュ処理を不要とする所定の処理が実施された場合、次回のリフレッシュ起動時刻を自動的に修正する。
図22は、リフレッシュ起動時刻を更新させる処理を示すフローチャートである。管理サーバ30は、例えば、データマイグレーションが実行されたか否か(S60)、リストアが実行されたか否か(S61)、ボリュームコピーが実行されたか否か(S62)を監視する。これらの所定の処理の実行が検出された場合(S60:YES,S61:YES,S62:YES)、管理サーバ30は、その所定の処理によってデータの書き込まれた論理デバイスについて、リフレッシュ起動時刻を更新させる(S64)。
例えば、ある論理デバイス124について3年周期でリフレッシュを行う場合、所定の処理が実施された時刻から3年後の時刻が、次回のリフレッシュ起動時刻として、テーブルMT1に設定される。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図23に基づいて第5実施例を説明する。本実施例では、複数のリフレッシュ処理が重複して実行されないようにリフレッシュ起動時刻を調整し、ストレージシステムの負荷を分散させるようになっている。
図23は、リフレッシュ起動時刻を調整する処理を示すフローチャートである。この処理は、管理サーバ30によって実行される。管理サーバ30は、テーブルMT1を参照することにより、各論理デバイス124に設定されている次回のリフレッシュ起動時刻を確認する(S70)。
管理サーバ30は、リフレッシュ起動時刻の重なる論理デバイス124が存在するか否かを判定する(S71)。リフレッシュ起動時刻が重なるとは、一方の論理デバイス124に関するリフレッシュ処理の実行期間と他方の論理デバイス124に関するリフレッシュ処理の実行時間とが一致または一部重複する場合を意味する。
リフレッシュ起動時刻の重なる論理デバイス124が存在する場合(S71:YES)、管理サーバ30は、リフレッシュ起動時刻が重複しないように、新たなリフレッシュ起動時刻を算出してテーブルMT1に設定する(S72)。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、リフレッシュ処理が重複して実行されないようにリフレッシュ起動時刻を予め調整するため、ストレージシステム内においてリフレッシュ処理に要する負荷を分散させることができる。
図24〜図26に基づいて第6実施例を説明する。本実施例では、ホスト20とストレージ装置10とを接続するスイッチ装置40によって、論理デバイス124に記憶されているデータをリフレッシュさせる。
図24は、本実施例によるストレージシステムの全体構成を示す。ストレージ装置10とホスト20との間には、スイッチ装置40が設けられている。このスイッチ装置40は、スイッチ経由リフレッシュ処理P6を実行可能となっている。
図25は、リフレッシュ機能管理テーブルMT1SWを示す。このテーブルMT1SWでは、リフレッシュ機能情報の値として、スイッチ経由リフレッシュ機能(スイッチ経由リフレッシュ処理P6)を選択可能である。スイッチ経由リフレッシュ機能が選択される場合、IPアドレスには、スイッチ装置40のIPアドレスが設定される。
そして、優先順位管理テーブルMT1SWに示すように、本実施例では、(1)内部リフレッシュ機能、(2)スイッチ経由リフレッシュ機能、(3)外部リフレッシュ機能の順番で優先順位が設定されている。
図26は、リフレッシュ起動処理を示すフローチャートである。本処理では、S16に示すように、リフレッシュ機能情報に「スイッチ経由リフレッシュ機能」が設定されている場合、管理サーバ30は、スイッチ装置40に起動コマンドを送信する。スイッチ装置40は、リフレッシュ対象の論理デバイス124にアクセスして、そこに記憶されている全データを一定量ずつ読出し、この読み出したデータを元の記憶位置に書き戻す。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、スイッチ装置40内で論理デバイス124内のデータをリフレッシュさせることができるため、ストレージ装置10やホスト20がリフレッシュ機能を備えていない場合でも、論理デバイス124内の全データをリフレッシュさせることができ、使い勝手が向上する。
図27に基づいて第7実施例を説明する。本実施例では、管理サーバ30を廃止し、管理サーバ30の機能をストレージ装置10内に設けている。図27は、本実施例によるストレージシステムの全体構成を示す。いずれか一つまたは複数のストレージ装置10内には、リフレッシュ管理機能30Aが設けられている。このリフレッシュ管理機能30Aは、前記管理サーバ30の果たす役割を実現するものであり、テーブルMT1やリフレッシュ起動処理P1等を備えている。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、ストレージ装置10内にリフレッシュ管理機能30Aを設けるため、管理サーバ30を設ける必要がない。従って、ストレージシステムの設置に要する面積や空間を少なくすることができ、ストレージシステムの総所有コストをより一層低減することができる。
図28に基づいて第8実施例を説明する。本実施例では、管理サーバ30を廃止し、ホスト20内に管理サーバ30の機能を設けている。図28は、本実施例によるストレージシステムの全体構成を示す。いずれか一つまたは複数のホスト20内には、上述したリフレッシュ管理機能30Aが設けられている。
このように構成される本実施例は、ホスト20によってデータのリフレッシュ処理を管理するため、ホスト20の負荷増大や通信ネットワークCN1のトラフィック増加を招く可能性はあるが、前記第7実施例とほぼ同様の効果を奏する。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、ストレージ装置内に、フラッシュメモリデバイスとハードディスクドライブとを混在させてもよい。また、例えば、複数の論理デバイスをグループ化して管理し、グループ単位でリフレッシュ処理を行う構成としてもよい。
さらに、例えば、NAND型フラッシュメモリデバイスとNOR型フラッシュメモリデバイスのように、技術的性質や性能あるいは信頼性等の相違する複数種類のメモリデバイスを混在させ、各メモリデバイスの特徴に応じてリフレッシュ方法やリフレッシュ時期を適宜設定する構成としてもよい。
本発明の実施形態の概念を示す説明図である。
ストレージシステムの全体構成を示す説明図である。
ホスト及び管理サーバのハードウェア構成を示す説明図である。
ストレージ装置のハードウェア構成を示す説明図である。
フラッシュメモリデバイスと論理デバイスとの関係を示す説明図である。
リフレッシュ機能管理テーブル及び優先順位管理テーブルを示す説明図である。
フラッシュメモリコントローラの有するリフレッシュ機能を管理するテーブルを示す説明図である。
リフレッシュ起動処理を示すフローチャートである。
内部リフレッシュ処理を示すフローチャートである。
フラッシュメモリコントローラにより実行されるリフレッシュ処理を示すフローチャートである。
外部リフレッシュ処理を示すフローチャートである。
第2実施例に係るストレージシステムの全体構成を示す説明図である。
統合ストレージ装置のハードウェア構成を示す説明図である。
統合ストレージ装置及び外部ストレージ装置の記憶構造を示す説明図である。
マッピングテーブルを示す説明図である。
リフレッシュ機能管理テーブル及び優先順位管理テーブルを示す説明図である。
リフレッシュ起動処理を示すフローチャートである。
ストレージ間リフレッシュ処理を示すフローチャートである。
第3実施例に係るストレージシステムで使用されるリフレッシュ機能管理テーブルを示す説明図である。
リフレッシュの要否を示すフラグを設定する処理を示すフローチャートである。
リフレッシュ起動処理を示すフローチャートである。
第4実施例に係るストレージシステムにより実行される、リフレッシュ起動時刻を更新させる処理を示すフローチャートである。
第5実施例に係るストレージシステムにより実行される、リフレッシュ起動時刻を調整する処理を示すフローチャートである。
第6実施例に係るストレージシステムの全体構成を示すフローチャートである。
リフレッシュ機能管理テーブル及び優先順位管理テーブルを示す説明図である。
リフレッシュ起動処理を示すフローチャートである。
第7実施例に係るストレージシステムの全体構成を示す説明図である。
第8実施例に係るストレージシステムの全体構成を示す説明図である。
符号の説明
1…ストレージ装置、2…外部装置、2A…外部リフレッシュ処理、3…管理部、3A…起動スケジューラ、3B…リフレッシュ機能管理テーブル、4…コントローラ、4A…内部リフレッシュ処理、5…フラッシュメモリ搭載部、5A…フラッシュメモリデバイス、5A1…フラッシュメモリコントローラ、5A2…フラッシュメモリ、10…ストレージ装置、10U…統合ストレージ装置、11,11U…コントローラ、12…フラッシュメモリ搭載部、13…インターフェース、20…ホスト、 21,22…インターフェース、23…プロセッサ、24…メモリ、25…補助記憶装置、26…入力装置、27…ディスプレイ、28…バス、30…管理サーバ、30A…リフレッシュ管理機能、31…インターフェース、32…プロセッサ、33…メモリ、34…補助記憶装置、35…入力装置、36…ディスプレイ、37…バス、40…スイッチ装置、CN1…データ入出力用ネットワーク、CN2…管理用ネットワーク、110…チャネルインターフェース、111…フラッシュメモリデバイスインターフェース、110T…ターゲットポート、110E…外部接続用ポート、112…制御部、113…キャッシュメモリ、114…管理メモリ、120…フラッシュメモリデバイス、121…フラッシュメモリコントローラ、122…フラッシュメモリ、123,123V…中間デバイス、124…論理デバイス