(57)【特許請求の範囲】
【請求項１】
外部装置と、この外部装置に通信ネットワークを介して接続されるストレージ装置と、前記外部装置及び前記ストレージ装置を管理する管理部とを備えたストレージシステムであって、
前記ストレージ装置は、書き換え可能な不揮発性メモリデバイスを有する記憶部と、この記憶部を制御するコントローラとを備え、かつ、前記メモリデバイスの有する記憶領域に基づいた複数の論理デバイスを前記外部装置に提供するようになっており、
前記管理部は、前記各論理デバイス毎にリフレッシュ時期をそれぞれ管理しており、前記各論理デバイスのうち前記リフレッシュ時期の到来した所定の論理デバイスを検出した場合には、複数種類のリフレッシュモードのうちいずれか一つのリフレッシュモードを選択し、この選択したリフレッシュモードを前記所定の論理デバイスについて実行させるようになっており、
前記複数種類のリフレッシュモードには、外部リフレッシュモードと第１内部リフレッシュモード及び第２内部リフレッシュモードとが含まれており、
前記外部リフレッシュモードでは、前記外部装置が前記所定の論理デバイスに記憶されている全データを前記ストレージ装置を介して読出し、この読み出された全データを前記ストレージ装置を介して前記所定の論理デバイスに書き戻すようになっており、
前記第１内部リフレッシュモードでは、前記コントローラが前記所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを前記所定の論理デバイスに書き戻すようになっており、
前記第２内部リフレッシュモードでは、前記メモリデバイスの内部において、前記メモリデバイスの記憶領域のうち前記所定の論理デバイスに対応する所定の記憶領域に記憶されている全データを読出し、この読み出された全データを前記所定の記憶領域に書き戻すようになっており、さらに、
前記管理部は、前記所定の論理デバイスについて、前記リフレッシュ時期の到来前に、当該所定の論理デバイスに記憶されている全データを前記メモリデバイスに書き込む、データマイグレーション処理、リストア処理またはボリュームコピー処理のいずれかの処理が先に実施された場合には、前記所定の論理デバイスに関するリフレッシュ時期を変更する
ストレージシステム。
【請求項２】
前記管理部は、前記複数種類のリフレッシュモードのうちいずれのリフレッシュモードを選択すべきかを示す情報及び前記リフレッシュ時期を示す情報を前記各論理デバイス毎にそれぞれ管理する管理テーブルを利用することにより、前記選択されたリフレッシュモードの実行を要求するためのコマンドを前記外部装置または前記ストレージ装置のいずれかに発行する請求項１に記載のストレージシステム。
【請求項３】
前記複数種類のリフレッシュモードには予め優先順位が設定されており、前記管理部は、優先順位の高いリフレッシュモードを優先的に選択する請求項１に記載のストレージシステム。
【請求項４】
前記外部装置は、前記ストレージ装置とは別のストレージ装置として構成されており、前記管理部は前記別のストレージ装置内に設けられている請求項１に記載のストレージシステム。
【請求項５】
前記ストレージ装置は、前記リフレッシュ時期が到来した場合に、前記通信ネットワークを介して前記外部装置に接続される請求項１に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリデバイスを使用するストレージシステムに関する。
【背景技術】
【０００２】
企業等の組織では、多量のデータを管理するために、ホストコンピュータ（以下「ホスト」）とは別に構成されたストレージ装置を用いている。例えば、金融機関や病院等のような組織では、多くの顧客に関する売買データや診療データ等を長期間保存する必要があるため、信頼性が高く、かつ、大容量のストレージ装置が必要とされる。このような高信頼性及び大容量の両方を満たすストレージ装置では、例えば、多数のハードディスクドライブをアレイ状に接続しており、RAID（Redundant Array of Independent Disks）に基づく論理的な記憶領域をホストに提供する。
【０００３】
企業等で長期間管理すべきデータは日々増大する。従って、ストレージ装置に搭載されるハードディスクドライブの数も増加する一方である。ハードディスクドライブは、よく知られているように、スピンドルモータで磁気ディスクを高速回転させながら、磁気ヘッドをシークさせてデータの読み書きを行う。このため、ハードディスクドライブは、半導体メモリのような記憶デバイスに比べて、外径寸法や重量が大きくなり、かつ、消費電力も多い。
【０００４】
ストレージ装置の記憶容量を大きくすればするほど、搭載されるハードディスクドライブの数が増大する。従って、ストレージ装置の設置面積が増加し、ストレージ装置の消費電力が大きくなる。このため、ストレージ装置の導入コストや維持コストが増大し、総所有コスト（TCO）の上昇を招くことになる。
【０００５】
ところで、近年では、新たな記憶デバイスとして、フラッシュメモリデバイスが注目されている。フラッシュメモリデバイスとハードディスクドライブとを比較すると、フラッシュメモリデバイスの方が低消費電力であり、かつ、データの読出し速度も速い。また、フラッシュメモリデバイスは、機械的な可動部を必要としないため、ハードディスクドライブよりも小型に形成することができ、故障も発生しにくいという性質を備える。
【０００６】
フラッシュメモリデバイスは、書き換え可能な不揮発性メモリであり、比較的長期間データを保持し続けることができる。しかしながら、フラッシュメモリデバイスにおいても、リーク電流によって、メモリセルに保持されている電圧値が次第に変化するため、そのまま長期間放置しておくと、やがて、メモリセルからデータを読み出すことができなくなる可能性がある。
【０００７】
そこで、フラッシュメモリデバイスに記憶されたデータを一旦読み出してから元の場所に書き戻すことにより、フラッシュメモリデバイスに記憶されたデータをリフレッシュさせる技術が提案されている（特許文献１）。
【特許文献１】米国特許出願公開第２００５／０２４３６２６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記文献に記載の従来技術は、フラッシュメモリデバイス内において、データのリフレッシュを行うことにより、データの長期保存を実現しようとする。しかし、前記文献に記載の従来技術は、フラッシュメモリデバイス単体でのリフレッシュにのみ着目しており、記憶デバイスを多数備えるストレージ装置に関する考察が欠けている。従って、前記文献に記載の従来技術を、ストレージ装置にそのまま適用することはできない。
【０００９】
ストレージ装置は、上述のように、重要なデータを数年〜数十年にわたって保持し続ける必要がある。従って、例えば、フラッシュメモリデバイスを用いた音楽プレイヤー等のような民生品とは異なり、極めて高いレベルでの信頼性が長期間要求される。また、ストレージ装置は、上述のように、大量のデータを管理するために多数の記憶デバイスを必要とする。従って、多数のフラッシュメモリデバイスを効率的かつ安定して使用する仕組みも必要となる。
【００１０】
管理すべきデータの量が増加すればするほど、ストレージシステムに要求される記憶容量は増加する。従って、ストレージシステムの記憶容量を増加させるために、複数のストレージ装置からストレージシステムが構成される場合がある。この場合、ストレージシステム内に、それぞれ仕様の異なるストレージ装置が混在することなり、ヘテロジニアスな環境下において、重要なデータを長期間保存することになる。
【００１１】
従って、あるストレージ装置がデータのリフレッシュ機能を備えていても、他のストレージ装置はリフレッシュ機能を備えていない場合が考えられる。また、同一のストレージ装置に搭載されるメモリデバイスであっても、一方のメモリデバイスはリフレッシュ機能を内蔵しているが、他方のメモリデバイスはリフレッシュ機能を備えていない場合も考えられる。
【００１２】
それぞれが大規模かつ複雑なシステム製品として構成される複数のストレージ装置を備えるストレージシステムでは、記憶容量の増加だけでなく、データ消失の許されない高信頼性も合わせて要求され、さらに、２４時間３６５日の無停止運転まで求められる。ストレージ装置を備えるストレージシステムは、このような技術的性質を備えるため、前記文献に記載の従来技術を単純に適用しても、市場から要求される性能や信頼性を満足することはできない。
【００１３】
そこで、本発明の目的は、書換可能な不揮発性メモリデバイスを用い、メモリデバイスに記憶されているデータを適切な時期に適切な方法でリフレッシュさせることにより、データの長期保存を可能とするストレージシステムを提供することにある。本発明の他の目的は、書換可能な不揮発性メモリデバイスに記憶されているデータのリフレッシュを、ストレージシステムの構成に応じて実行することができるようにしたストレージシステムを提供することにある。本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１４】
上記課題を解決すべく、本発明の一つの観点に従うストレージシステムは、外部装置と、この外部装置に通信ネットワークを介して接続されるストレージ装置と、外部装置及びストレージ装置を管理する管理部とを備えたストレージシステムであって、ストレージ装置は、書き換え可能な不揮発性メモリデバイスを有する記憶部と、この記憶部を制御するコントローラとを備え、かつ、メモリデバイスの有する記憶領域に基づいた複数の論理デバイスを外部装置に提供するようになっており、管理部は、各論理デバイス毎にリフレッシュ時期をそれぞれ管理しており、各論理デバイスのうちリフレッシュ時期の到来した所定の論理デバイスを検出した場合には、複数種類のリフレッシュモードのうちいずれか一つのリフレッシュモードを選択し、この選択したリフレッシュモードを所定の論理デバイスについて実行させる。
【００１５】
本発明の実施形態では、複数種類のリフレッシュモードには、外部リフレッシュモード及び内部リフレッシュモードが含まれており、外部リフレッシュモードでは、外部装置が所定の論理デバイスに記憶されている全データをストレージ装置を介して読出し、この読み出された全データをストレージ装置を介して所定の論理デバイスに書き戻すようになっており、内部リフレッシュモードでは、ストレージ装置の内部において、所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを所定の論理デバイスに書き戻すようになっている。
【００１６】
本発明の実施形態では、複数種類のリフレッシュモードには、第１内部リフレッシュモード及び第２内部リフレッシュモードが含まれており、第１内部リフレッシュモードでは、コントローラが所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを所定の論理デバイスに書き戻すようになっており、第２内部リフレッシュモードでは、メモリデバイスの内部において、メモリデバイスの記憶領域のうち所定の論理デバイスに対応する所定の記憶領域に記憶されている全データを読出し、この読み出された全データを所定の記憶領域に書き戻すようになっている。
【００１７】
本発明の実施形態では、複数種類のリフレッシュモードには、外部リフレッシュモードと第１内部リフレッシュモード及び第２内部リフレッシュモードとが含まれており、外部リフレッシュモードでは、外部装置が所定の論理デバイスに記憶されている全データをストレージ装置を介して読出し、この読み出された全データをストレージ装置を介して所定の論理デバイスに書き戻すようになっており、第１内部リフレッシュモードでは、コントローラが所定の論理デバイスに記憶されている全データを読出し、この読み出された全データを所定の論理デバイスに書き戻すようになっており、第２内部リフレッシュモードでは、メモリデバイスの内部において、メモリデバイスの記憶領域のうち所定の論理デバイスに対応する所定の記憶領域に記憶されている全データを読出し、この読み出された全データを所定の記憶領域に書き戻すようになっている。
【００１８】
本発明の実施形態では、管理部は、複数種類のリフレッシュモードのうちいずれのリフレッシュモードを選択すべきかを示す情報及びリフレッシュ時期を示す情報を各論理デバイス毎にそれぞれ管理する管理テーブルを利用することにより、選択されたリフレッシュモードの実行を要求するためのコマンドを外部装置またはストレージ装置のいずれかに発行する。
【００１９】
本発明の実施形態では、ストレージ装置は、管理部からコマンドを受信した場合、コントローラによって所定の論理デバイスに関するリフレッシュを実行させるか、または、メモリデバイス内で所定の論理デバイスに関するリフレッシュを実行させるか、のいずれかを決定する。
【００２０】
本発明の実施形態では、外部装置は、管理部からコマンドを受信した場合、所定の論理デバイスに記憶されている全データをストレージ装置を介して読出し、この読み出された全データをストレージ装置を介して所定の論理デバイスに書き戻す。
【００２１】
本発明の実施形態では、複数種類のリフレッシュモードには予め優先順位が設定されており、管理部は、優先順位の高いリフレッシュモードを優先的に選択する。
【００２２】
本発明の実施形態では、管理部は、外部リフレッシュモードと内部リフレッシュモードの両方を選択可能な場合、内部リフレッシュモードを優先的に選択する。
【００２３】
本発明の実施形態では、管理部は、所定の論理デバイスが複数存在する場合、これら各所定の論理デバイスに関するリフレッシュ時期が重ならないように調整する。
【００２４】
本発明の実施形態では、管理部は、所定の論理デバイスについて、リフレッシュ時期の到来前に、当該所定の論理デバイスに記憶されている全データをメモリデバイスに書き込む所定の処理が先に実施された場合には、所定の論理デバイスに関するリフレッシュ時期を変更する。
【００２５】
本発明の実施形態では、管理部は、外部装置内に設けられている。管理部は、ストレージ装置内に設けることもできる。管理部は、外部装置及びストレージ装置とは別の独立したコンピュータ装置として構成してもよい。
【００２６】
外部装置は、ストレージ装置とは別のストレージ装置として構成可能である。さらに、外部装置は、ストレージ装置の有する論理デバイスが割り付けられる仮想的な論理デバイスを備えてもよい。
【００２７】
外部装置は、ストレージ装置の有する論理デバイスにデータを読み書きする上位装置として構成してもよい。外部装置は、ストレージ装置に接続されるスイッチ装置として構成することもできる。
【００２８】
ストレージ装置は、リフレッシュ時期が到来した場合に、通信ネットワークを介して外部装置に接続されるものであってもよい。
【００２９】
本発明の他の観点に従うストレージシステムは、第１通信ネットワークを介して相互に接続される外部装置及びストレージ装置と、第１通信ネットワークとは別の第２通信ネットワークを介して外部装置及びストレージ装置にそれぞれ接続される管理装置とを備えるストレージシステムであって、ストレージ装置は、書き換え可能な不揮発性メモリデバイスを有する記憶部と、この記憶部を制御するコントローラと、メモリデバイスの有する記憶領域に基づいた複数の論理デバイスと、論理デバイスに関するリフレッシュを行うための内部リフレッシュ処理部とを備えており、外部装置は、論理デバイスに関するリフレッシュをストレージ装置を介して行うための外部リフレッシュ処理部を備えており、管理装置は、リフレッシュ時期と内部リフレッシュ処理または外部リフレッシュ処理のいずれを選択すべきかを示す情報とを各論理デバイス毎にそれぞれ予め管理している管理テーブルと、内部リフレッシュ処理または外部リフレッシュ処理のうち選択された方のリフレッシュ処理を起動させるためのコマンドをストレージ装置または外部装置に発行する起動部とを備える。
【００３０】
本発明の構成要素は、その全部または一部をコンピュータプログラムとして構成できる場合がある。このコンピュータプログラムは、記録媒体に固定して譲渡等することができるほかに、インターネット等の通信ネットワークを介して伝送することもできる。
【発明を実施するための最良の形態】
【００３１】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の全体概念を示す説明図である。本実施形態のストレージシステムは、例えば、ストレージ装置１と、外部装置２と、管理部３とを備えて構成される。
【００３２】
ストレージ装置１は、コントローラ４及びフラッシュメモリ搭載部５を備える。コントローラ４は、ストレージ装置１の動作を制御するものであり、フラッシュメモリ搭載部５との間のデータ通信や、外部装置２との間のデータ通信等を担当する。また、コントローラ４は、後述する内部リフレッシュ処理４Ａを実行可能である。
【００３３】
フラッシュメモリ搭載部５は、「記憶部」に該当する。フラッシュメモリ搭載部５は、複数のフラッシュメモリデバイス５Ａを備える。図１では、一つのフラッシュメモリデバイス５Ａのみを示す。フラッシュメモリデバイス５Ａは、例えば、フラッシュメモリコントローラ５Ａ１と、フラッシュメモリ５Ａ２とを備える。フラッシュメモリ５Ａ２としては、例えば、NAND型フラッシュメモリまたはNOR型フラッシュメモリ等を適宜使用することができる。フラッシュメモリコントローラ５Ａ１は、フラッシュメモリ５Ａ２へのデータ書込みやデータ読出し等を制御する。
【００３４】
一つまたは複数のフラッシュメモリデバイス５Ａの有する物理的な記憶領域に基づいて一つまたは複数の論理的な記憶領域を生成することができる。この論理的な記憶領域は、論理デバイスまたは論理ボリュームと呼ばれる。
【００３５】
外部装置２は、ストレージ装置１の外部に設けられているコンピュータ装置である。外部装置２としては、後述の実施例からも明らかなように、例えば、サーバコンピュータ等のホスト、他のストレージ装置、スイッチ装置等を挙げることができる。外部装置２は、後述の外部リフレッシュ処理を実行可能である。外部装置２は、ストレージ装置１内に設けられた論理デバイスにアクセスして、データを読み書きすることができる。
【００３６】
管理部３は、フラッシュメモリデバイス５Ａに記憶されているデータのリフレッシュを管理するためのものである。管理部３は、例えば、起動スケジューラ３Ａと、リフレッシュ機能管理テーブル３Ｂとを備えて構成される。管理部３は、後述の実施例からも明らかなように、ストレージ装置１及び外部装置２とは別の独立したコンピュータ装置として構成することもできるし、ストレージ装置１または外部装置２に内蔵される機能として構成することもできる。
【００３７】
起動スケジューラ３Ａは、ストレージシステムの有するリフレッシュ処理（内部リフレッシュ処理４Ａ，外部リフレッシュ処理２Ａ）の起動を制御するものである。リフレッシュ機能管理テーブル３Ｂは、フラッシュメモリデバイス５Ａに記憶されているデータのリフレッシュ方法及びリフレッシュ時期を、各論理デバイス毎にそれぞれ管理する。起動スケジューラ３Ａは、リフレッシュ時期の到来した論理デバイスを発見すると、その論理デバイスについて予め設定されている方法に従って、ストレージ装置１または外部装置２のいずれかに起動コマンドを送信する。これにより、内部リフレッシュ処理４Ａまたは外部リフレッシュ処理２Ａのいずれか一方のみが起動される。
【００３８】
次に、リフレッシュ方法の種類について説明する。本実施形態では、以下に述べるように、複数種類のリフレッシュ方法（リフレッシュモード）のうち、ストレージシステムの構成や負荷等に応じて一つのリフレッシュ方法を選択し、実行させる。
【００３９】
本実施形態のストレージシステムの備える複数のリフレッシュモードは、外部リフレッシュモードと内部リフレッシュモードとに大別される。外部リフレッシュモードとは、ストレージ装置１の外部において、フラッシュメモリデバイス５Ａに記憶されているデータをリフレッシュさせるモードである。内部リフレッシュモードとは、ストレージ装置１の内部において、フラッシュメモリデバイス５Ａに記憶されているデータをリフレッシュさせるモードである。本実施形態では、ストレージシステムの負荷を考慮して、内部リフレッシュモードの方が外部リフレッシュモードよりも高い優先度に設定される。即ち、内部リフレッシュモードを利用可能である場合は、内部リフレッシュモードが優先的に選択される。
【００４０】
内部リフレッシュモードは、さらに、第１内部リフレッシュモードと第２内部リフレッシュモードとに分類される。第１内部リフレッシュモードとは、ストレージ装置１のコントローラ４によって、ストレージ装置１内で実行されるリフレッシュモードである。第２内部リフレッシュモードとは、フラッシュメモリデバイス５Ａ内のフラッシュメモリコントローラ５Ａ１によって、フラッシュメモリデバイス５Ａ内で実行されるリフレッシュモードである。
【００４１】
外部リフレッシュモードを説明する。管理部３の起動スケジューラ３Ａから発行されたコマンドを外部装置２が受領すると、外部リフレッシュ処理２Ａが起動する。外部リフレッシュ処理２Ａは、図１中に一点鎖線で示すように、ストレージ装置１を介して、リフレッシュ対象の論理デバイスに対応するフラッシュメモリデバイス５Ａにアクセスし、データを読み出す。この読み出されたデータは、外部装置２内のメモリに記憶される。そして、外部リフレッシュ処理２Ａは、外部装置２内に一時的に記憶されたデータを、データ読出し元であるフラッシュメモリデバイス５Ａの元の位置に書き込む。これにより、フラッシュメモリ５Ａ２の各セルの電圧値は、該セルに記憶されるデータの種類（１か０か）に応じて復活する。
【００４２】
内部リフレッシュモードを説明する。起動スケジューラ３Ａがストレージ装置１に向けて起動コマンドを発行すると、内部リフレッシュ処理４Ａが起動する。内部リフレッシュ処理４Ａは、第１内部リフレッシュモードまたは第２内部リフレッシュモードのいずれを実行するかを決定する。
【００４３】
例えば、フラッシュメモリデバイス５Ａがリフレッシュ機能を備えていない場合、内部リフレッシュ処理４Ａは、第１内部リフレッシュモードを選択する。第１内部リフレッシュモードが選択された場合、図１中に太線で示すように、コントローラ４は、リフレッシュ対象の論理デバイスに対応するフラッシュメモリデバイス５Ａにアクセスして、データを読み出す。この読み出されたデータは、コントローラ４内のメモリに一時的に記憶される。そして、コントローラ４は、この読み出したデータを元の位置でフラッシュメモリデバイス５Ａに書き込む。
【００４４】
第２内部リフレッシュモードが選択された場合、図１中に点線で示すように、フラッシュメモリコントローラ５Ａ１は、内部リフレッシュ処理４Ａからの指示に従って、フラッシュメモリ５Ａ２の所定の位置から所定サイズのデータを読み出す。この読み出されたデータは、読出し元であるフラッシュメモリ５Ａ２内の空き領域または未使用の他のフラッシュメモリ５Ａ２の記憶領域等に書き込まれる。そして、フラッシュメモリコントローラ５Ａ１は、この読み出したデータを元の位置でフラッシュメモリ５Ａ２に書き込む。
【００４５】
このように構成される本実施形態によれば、記憶デバイスとして、書換可能な不揮発性メモリを用いるため、ハードディスクドライブを用いる場合に比べて、消費電力を低減することができ、ストレージ装置１を小型軽量化することができる。従って、ストレージ装置１の導入コストや維持コストを低減することができる。
【００４６】
本実施形態では、フラッシュメモリデバイス５Ａに記憶されているデータを複数種類のリフレッシュモードのうちいずれか一つのリフレッシュモードを用いて、リフレッシュさせる。従って、フラッシュメモリデバイス５Ａにデータを長期間保存した場合でも、フラッシュメモリデバイス５Ａのメモリセルの電圧値が変化してメモリセルに記憶されているデータが読出し不能となるのを防止することができる。
【００４７】
本実施形態では、論理デバイス単位でデータのリフレッシュを実行させる。即ち、ホスト等のような外部装置２によって認識され利用される単位で、データのリフレッシュを行うことができる。これにより、例えば、長期間の保存を必要とするアーカイブボリューム等を効率よく適切に管理することができる。
【００４８】
本実施形態では、ストレージ装置１の外部でデータをリフレッシュさせる外部リフレッシュモードと、ストレージ装置１の内部でデータをリフレッシュさせる内部リフレッシュモードとの複数種類のリフレッシュモードを用意し、いずれか一つのリフレッシュモードを選択可能とした。従って、例えば、ストレージシステムの構成や論理デバイスの種類等に応じて、より適切なリフレッシュモードを選択可能であり、使い勝手が向上する。
【００４９】
例えば、フラッシュメモリデバイス５Ａがリフレッシュ機能を備えている場合は、第２内部リフレッシュモードによって、コントローラ４や外部装置２の負荷を増大させずに、フラッシュメモリデバイス５Ａ内でデータをリフレッシュさせることができる。また、例えば、フラッシュメモリデバイス５Ａがリフレッシュ機能を備えていない場合や外部装置２がリフレッシュ機能を備えていない場合は、第１内部リフレッシュモードによって、外部装置２の負荷を増大させずに、ストレージ装置１内でデータをリフレッシュさせることができる。さらに、例えば、ストレージ装置１のコントローラ４がリフレッシュ機能を備えていない場合でも、外部装置２のリフレッシュ機能を利用して、フラッシュメモリデバイス５Ａ内のデータをリフレッシュさせることができる。
【００５０】
従って、本実施形態によれば、データのリフレッシュ機能についてそれぞれ異なる仕様を有するフラッシュメモリデバイス５Ａ，ストレージ装置１，外部装置２が混在する場合でも、フラッシュメモリデバイス５Ａ内のデータをリフレッシュさせることができ、データを長期間にわたって保存することができる。
【００５１】
本実施形態では、外部リフレッシュモード及び内部リフレッシュモードの両方を利用可能な場合、内部リフレッシュモードを優先して選択する。これにより、外部装置２の処理負荷を低減することができ、外部装置２で実行される他の処理に影響を与えずにデータをリフレッシュさせることができる。また、内部リフレッシュモードが選択された場合は、ストレージ装置１と外部装置２との間でリフレッシュ対象のデータが転送されないため、ストレージ装置１と外部装置２との間のトラフィックが増大するのを防止できる。
【００５２】
本実施形態では、第１内部リフレッシュモードと第２内部リフレッシュモードの両方を利用可能な場合、第２内部リフレッシュモードを優先的に選択する。これにより、コントローラ４の処理負荷を軽減することができ、ストレージ装置１の応答性能を低下させることなく、データのリフレッシュを行うことができる。
【００５３】
なお、複数種類のリフレッシュモードの中からいずれか一つのリフレッシュモードを選択して実行させる場合を述べたが、これに限らず、複数のリフレッシュモードを時期を変えて実行させることもできる。例えば、第２内部リフレッシュモードを実行させた後で、第１内部リフレッシュモードまたは外部リフレッシュモードを実行させてもよい。以下、本実施形態を詳細に説明する。
【実施例１】
【００５４】
図２は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、一つまたは複数のストレージ装置１０と、一つまたは複数のホスト２０と、少なくとも一つの管理サーバ３０とを備えて構成される。
【００５５】
ストレージ装置１０は、図１中のストレージ装置１に対応する。ホスト２０は、図１中の外部装置２に対応する。管理サーバ３０は、図１中の管理部３に対応する。ストレージ装置１０，ホスト２０及び管理サーバ３０の詳細は、それぞれ後述する。
【００５６】
図２を参照してストレージシステムのネットワーク構成を説明する。各ホスト２０と各ストレージ装置１０とは、例えば、SAN（Storage Area Network）のような通信ネットワークCN１を介して、相互通信可能に接続されている。IP（Internet Protocol）を利用するIP_SANでもよいし、FCP（Fibre Channel Protocol）を利用するFC_SANでもよい。ホスト２０の有するインターフェース（I/F）２１とストレージ装置１０の有するインターフェース１１０とは、通信ネットワークCN１を介して相互に接続されている。
【００５７】
管理サーバ３０は、例えば、LAN（Local Area Network）のような通信ネットワークCN２を介して、各ホスト２０及び各ストレージ装置１０とそれぞれ相互通信可能に接続されている。ホスト２０の有するインターフェース２２，ストレージ装置１０の有するインターフェース１１１及び管理サーバ３０の有するインターフェース３１は、通信ネットワークCN２を介して、相互に接続されている。
【００５８】
なお、図２中では、データ入出力用ネットワークCN１と管理用ネットワークCN２とを分離する場合を示すが、これに限らず、一つの通信ネットワークを用いて、データの入出力及び管理を行う構成でもよい。例えば、通信ネットワークCN２を廃止し、通信ネットワークCN１のみを備える構成でもよい。
【００５９】
次に、ストレージ装置１０，ホスト２０及び管理サーバ３０のハードウェア構成の一例を説明する。紙面の都合上、図２に示すストレージシステムの構成の一部を抜き出して、説明する。また、先に図３を参照してホスト２０及び管理サーバ３０の構成を説明し、次に、図４を用いてストレージ装置１０の構成を説明する。
【００６０】
図３は、ホスト２０及び管理サーバ３０に着目したハードウェア構成図である。先にホスト２０から説明する。ホスト２０は、例えば、インターフェース２１，２２と、プロセッサ（図中「CPU」）２３と、メモリ２４と、補助記憶装置２５と、入力装置２６と、ディスプレイ２７、バス２８とを備えたコンピュータ装置として構成される。例えば、ホスト２０は、パーソナルコンピュータ、ワークステーション、サーバマシン、メインフレームマシン、携帯情報端末、携帯電話等のように構成可能である。
【００６１】
インターフェース２１は、通信ネットワークCN１を介してストレージ装置１０に接続するためのものである。インターフェース２２は、通信ネットワークCN２を介して管理サーバ３０やストレージ装置１０に接続するためのものである。
【００６２】
プロセッサ２３は、メモリ２４に記憶されたプログラムを読み出して実行することにより、所定の機能を実現する。メモリ２４には、外部リフレッシュ処理Ｐ２を実現するためのプログラムが記憶されている。外部リフレッシュ処理Ｐ２についは後述する。なお、ホスト２０は、外部リフレッシュ処理Ｐ２以外に、例えば、OS（Operating System）や業務処理プログラム等のプログラムを適宜実行することができるようになっている。
【００６３】
補助記憶装置２５は、例えば、ハードディスクドライブや半導体メモリデバイス等から構成される。入力装置２６は、例えば、キーボードスイッチやポインティングデバイス、マイクロフォン等から構成される。ディスプレイ２７は、出力装置の一例であり、例えば、液晶ディスプレイやプラズマディスプレイ等から構成される。そして、上述の各部２１〜２７はバス２８によって相互に接続されている。
【００６４】
管理サーバ３０の構成を説明する。管理サーバ３０は、例えば、インターフェース３１と、プロセッサ３２と、メモリ３３と、補助記憶装置３４と、入力装置３５と、出力装置３６及びバス３７とを備えたコンピュータ装置として構成される。管理サーバ３０は、例えば、パーソナルコンピュータや携帯情報端末、携帯電話等のように構成可能である。
【００６５】
インターフェース３１は、通信ネットワークCN２を介して各ホスト２０及び各ストレージ装置１０と接続するためのものである。プロセッサ３２は、メモリ３３に記憶されているプログラムを読み込んで実行することにより、所定の機能を実現させる。メモリ３３には、例えば、リフレッシュ機能管理テーブルＭＴ１と、リフレッシュ起動処理Ｐ１とが記憶されている。これらのテーブルＭＴ１及びリフレッシュ起動処理Ｐ１については後述する。補助記憶装置３４は、例えばハードディスクドライブや半導体メモリデバイス等から構成される。入力装置３５及びディスプレイ３６は、ホスト２０の構成で述べたように、管理者との間で情報を交換するための装置である。
【００６６】
ストレージ装置１０は、図３に示すように、例えば、コントローラ１１と、フラッシュメモリ搭載部１２及びインターフェース１３を備えて構成される。そこで、図４を参照してストレージ装置１０の構成例を説明する。
【００６７】
コントローラ１１は、ストレージ装置１０の全体動作を制御するもので、図１中のコントローラ４に対応する。フラッシュメモリ搭載部１２は、図１中のフラッシュメモリ搭載部５に対応する。インターフェース１３は、通信ネットワークCN２を介して、各ホスト２０及び管理サーバ３０に接続するためのものである。先にコントローラ１１の構成を説明し、次にフラッシュメモリ搭載部１２の構成を説明する。
【００６８】
コントローラ１１は、例えば、インターフェース（図中「チャネルI/F」）１１０と、インターフェース（図中「FM I/F」）１１１と、制御部１１２と、キャッシュメモリ１１３と、管理メモリ１１４とを備えて構成される。
【００６９】
一方のインターフェース１１０は、通信ネットワークCN１を介して各ホスト２０と通信を行うためのものである。他方のインターフェース１１１は、フラッシュメモリ搭載部１２に搭載されている各フラッシュメモリデバイス１２０との間で通信を行うためのものである。インターフェース１１０は、各ホスト２０とキャッシュメモリ１１３との間のデータ転送を制御し、インターフェース１１１は、フラッシュメモリデバイス１２０とキャッシュメモリ１１３との間のデータ転送を制御する。従って、各インターフェース１１０，１１１は、それぞれ少なくとも一つ以上のプロセッサを備えた制御回路のように構成することができる。
【００７０】
制御部１１２は、コントローラ１１の動作を制御するもので、少なくとも一つ以上のプロセッサを備えている。キャッシュメモリ１１３には、例えば、ホスト２０から書き込まれたデータやフラッシュメモリデバイス１２０から読み出されたデータ等が記憶される。管理メモリ１１４には、ストレージ装置１０を管理するための各種管理情報や制御情報が記憶される。例えば、管理メモリ１１４には、内部リフレッシュ処理Ｐ３を実現するためのプログラムや、フラッシュメモリデバイス１２０がリフレッシュ機能を備えるか否かを管理するためのフラッシュメモリコントローラ（図中「FM_CTL」）リフレッシュ機能情報ＭＴ３等が記憶される。
【００７１】
フラッシュメモリ搭載部１２の構成を説明する。フラッシュメモリ搭載部１２は、例えば、複数のフラッシュメモリデバイス１２０を備えて構成される。各フラッシュメモリデバイス１２０は、少なくとも一つ以上のフラッシュメモリコントローラ１２１と、一つまたは複数のフラッシュメモリ１２２とを備えて構成される。一つのフラッシュメモリデバイス１２０は、一つの記憶ドライブに該当する。なお、図中及び以下の説明では、便宜上、フラッシュメモリを「FM」と略記する。
【００７２】
フラッシュメモリ１２２は、FMコントローラ１２１から書き込まれたデータを電圧値（電荷）として保持する。フラッシュメモリ１２２は、書換可能な不揮発性メモリデバイスの一例である。書換可能であって、かつ、不揮発性を有するメモリデバイスであれば、フラッシュメモリに限定されない。本発明は、データの長期保護に際してリフレッシュ動作を必要とする各種のメモリデバイスに適用可能である。FMコントローラ１２１は、リフレッシュ機能を実現するための処理Ｐ４を備えている。即ち、FMコントローラ１２１は、フラッシュメモリデバイス１２０内において、データのリフレッシュを行うことができる。
【００７３】
なお、上述したストレージ装置１０の構成、ホスト２０及び管理サーバ３０の構成は一例であって、本発明は上述の構成に限定されない。
【００７４】
図５は、フラッシュメモリデバイス１２０の有する物理的な記憶領域と論理デバイス１２４との関係を模式的に示す説明図である。図５（ａ）に示すように、各フラッシュメモリデバイス１２０がそれぞれ有する物理的な記憶領域を、一つのRAIDグループ（パリティグループ）１２３として仮想化することができる。そして、この仮想化された物理的な記憶領域１２３を区切ることにより、一つまたは複数の論理デバイス（LU）１２４を設定することができる。
【００７５】
従って、例えば、「LU#1」で特定される論理デバイス１２４に記憶されているデータをリフレッシュさせる場合、各フラッシュメモリデバイス１２０の記憶領域のうち、リフレッシュ対象の論理デバイス１２４（LU#1）に対応する範囲のデータが各フラッシュメモリ１２２からそれぞれ読み出され、元の位置に書き戻される。なお、図５（ｂ）に示すように、一つのフラッシュメモリデバイス１２０内に一つまたは複数の論理デバイス１２４を設定することもできる。
【００７６】
図６は、リフレッシュ機能を管理するためのテーブルＭＴ１を示す説明図である。このテーブルＭＴ１は、例えば、各論理デバイス１２４毎に、適用すべきリフレッシュモード及びリフレッシュ時期をそれぞれ管理する。
【００７７】
この管理テーブルＭＴ１は、例えば、各論理デバイス１２４をストレージシステム内で一意に識別するための論理デバイス情報と、その論理デバイスについて適用されるリフレッシュ機能の種別（リフレッシュモード）を示すリフレッシュ機能情報と、リフレッシュに関する時刻情報とを対応付けて管理する。
【００７８】
論理デバイス情報としては、例えば、WWN（World Wide Name）や論理デバイス番号等を用いることができる。また、各ストレージ装置１０をそれぞれ識別するためのストレージ装置番号や製造番号、ストレージ装置名称等を合わせて管理する構成でもよい。
【００７９】
リフレッシュ機能情報には、その論理デバイスについて適用されるリフレッシュ機能の種別と、そのリフレッシュ機能を実行する装置を特定するための情報とがそれぞれ設定される。
【００８０】
図６中の優先順位管理テーブルＭＴ２に示すように、ストレージシステムの備える複数種類のリフレッシュモード（リフレッシュ機能）には予め優先順位が設定されている。例えば、内部リフレッシュ機能Ｐ３は、外部リフレッシュ機能Ｐ２よりも高い優先度に設定される。従って、ある論理デバイス１２４について、内部リフレッシュ処理及び外部リフレッシュ処理の両方を実行可能である場合、高い優先度に設定されている内部リフレッシュ処理が選択されて、テーブルＭＴ１に登録される。
【００８１】
リフレッシュ機能を実行する主体を特定するための情報としては、例えば、IPアドレスを用いることができる。即ち、外部リフレッシュ機能がテーブルＭＴ１に設定される場合、その外部リフレッシュ機能を実行するホスト２０のIPアドレスもテーブルＭＴ１に設定される。また、内部リフレッシュ機能がテーブルＭＴ１に設定される場合、その内部リフレッシュ機能を実行するストレージ装置１０のIPアドレスもテーブルＭＴ１に設定される。IPアドレスとは、通信ネットワークCN２によって接続された各ノード（ストレージ装置１０，ホスト２０）を特定するための情報の一例である。これにより、管理サーバ３０は、各ホスト２０及び各ストレージ装置１０のうち、いずれの装置にコマンドを発行すべきなのかを直ちに把握できる。
【００８２】
時刻情報には、例えば、前回のリフレッシュ時刻と次回のリフレッシュ起動時刻とをそれぞれ記憶させることができる。前回のリフレッシュ時刻とは、リフレッシュ処理が前回起動された時刻を示す情報である。次回のリフレッシュ起動時刻には、前回のリフレッシュ時刻から所定の時間が経過した値が設定される。リフレッシュ間隔は、例えば、３年毎、５年毎、７年毎等のように設定することができる。リフレッシュ間隔は、各論理デバイス１２４毎にそれぞれ異ならせることができる。なお、例えば、前回のリフレッシュ処理で使用されたリフレッシュモードをテーブルＭＴ１に記憶させてもよい。
【００８３】
図７は、FMコントローラ１２１に関するリフレッシュ機能を管理するためのテーブルＭＴ３を示す説明図である。このテーブルＭＴ３は、例えば、各FMコントローラ１２１をそれぞれ識別するための情報と、各FMコントローラ１２１がリフレッシュ機能を備えているか否かを示す情報とを対応付けて管理する。FMコントローラ１２１がリフレッシュ機能を備える場合（第２内部リフレッシュモードを実行可能な場合）、リフレッシュ機能の有無を示す欄には「有り」と設定される。
【００８４】
次に、本実施例によるストレージシステムのリフレッシュ制御について、図８〜図１１を参照して説明する。なお、以下の各フローチャートは、本発明の理解及び実施に必要な範囲で各処理の概要を示しており、実際のプログラムとは相違する場合がある。また、以下の説明では、ステップを「Ｓ」と略記する。
【００８５】
図８は、リフレッシュ起動処理を示すフローチャートである。この処理は、管理サーバ３０によって所定周期（例えば１時間毎等）で実行される。まず、管理サーバ３０は、テーブルＭＴ１を参照し、各論理デバイス１２４に設定された次回のリフレッシュ起動時刻と現在時刻とをそれぞれ比較する。そして、管理サーバ３０は、テーブルＭＴ１に設定されている次回のリフレッシュ起動時刻が現在時刻を超えている論理デバイス１２４が存在するか否かを判定する（Ｓ１０）。リフレッシュ対象の論理デバイス１２４を一つも発見できなかった場合（S10:NO）、管理サーバ３０は、所定時間が経過するのを待って、再びＳ１０を実行する。
【００８６】
ここで、リフレッシュ起動時刻に達した論理デバイス１２４は、「リフレッシュ時期の到来した所定の論理デバイス」に該当する。以下の説明では、所定の論理デバイス１２４を、リフレッシュ対象の論理デバイス１２４と呼ぶ場合がある。
【００８７】
リフレッシュ起動時刻の到来した論理デバイス１２４を発見した場合（S10:YES）、管理サーバ３０は、その論理デバイス１２４に関するリフレッシュ機能情報の値を確認する（Ｓ１１）。テーブルＭＴ１に「内部リフレッシュ機能有り」と設定されている場合、管理サーバ３０は、テーブルＭＴ１に設定されているIPアドレスを有する装置（ストレージ装置１０）に向けて起動コマンドを発行することにより、内部リフレッシュ処理Ｐ３を起動させる（Ｓ１２）。これに対し、テーブルＭＴ２に「外部リフレッシュ機能有り」と設定されている場合、管理サーバ３０は、テーブルＭＴ１に設定されているIPアドレスを有する装置（ホスト２０）に向けて起動コマンドを発行することにより、外部リフレッシュ処理Ｐ２を起動させる。
【００８８】
図９は、内部リフレッシュ処理Ｐ３を示すフローチャートである。内部リフレッシュ処理Ｐ３は、ストレージ装置１０のコントローラ１１が管理サーバ３０から起動コマンドを受信すると実行される。
【００８９】
管理サーバ３０から受信された起動コマンドには、リフレッシュ対象の論理デバイス１２４を特定する情報が含まれている。コントローラ１１は、コントローラ１１の管理下にある各論理デバイス１２４がどのフラッシュメモリデバイス１２０の記憶領域を利用しているかを管理している。従って、コントローラ１１は、リフレッシュ対象の論理デバイス１２４に対応する一つまたは複数のフラッシュメモリデバイス１２０を特定することができる。
【００９０】
コントローラ１１は、テーブルＭＴ２を参照することにより、リフレッシュ対象の論理デバイス１２４に対応するFMコントローラ１２１がリフレッシュ機能（FM_CTLリフレッシュ処理）Ｐ４を備えているか否かを判定する（Ｓ２０）。
【００９１】
FMコントローラ１２１がリフレッシュ機能Ｐ４を備えている場合（S20:YES）、コントローラ１１は、FMコントローラ１２１の有するリフレッシュ機能Ｐ４を実行させ、フラッシュメモリデバイス１２０内でデータをリフレッシュさせる（Ｓ２１）。即ち、コントローラ１１は、リフレッシュ対象の論理デバイス１２４の全領域について、FMコントローラ１２１の有するリフレッシュ機能Ｐ４により、データを一旦読み出させた後、書き戻させる。このため、コントローラ１１は、リフレッシュ対象のデータ領域に関するリフレッシュ開始アドレス及びリフレッシュさせるデータ長を明示して、FMコントローラ１２１に指示を与える。
【００９２】
これに対し、FMコントローラ１２１がリフレッシュ機能Ｐ４を備えていない場合（S20:NO）、コントローラ１１がデータをリフレッシュさせる（Ｓ２２）。即ち、コントローラ１１は、リフレッシュ対象の論理デバイス１２４に記憶されているデータを一定量ずつキャッシュメモリ１１３に読み出した後、この読み出したデータをそのまま元の格納位置に書き戻す。このようなデータの読出し処理とデータの書込み処理とを、リフレッシュ対象の論理デバイス１２４の全領域について一定量ずつ実行することにより、論理デバイス１２４内のデータをリフレッシュさせることができる。
【００９３】
図１０は、FMコントローラ１２１によるリフレッシュ処理Ｐ４を示すフローチャートである。この処理は、コントローラ１１の内部リフレッシュ処理Ｐ３によって起動され、FMコントローラ１２１によって実行される。
【００９４】
本処理では、内部リフレッシュ処理Ｐ３からパラメータとして、リフレッシュ領域情報を受け取る。リフレッシュ領域情報は、リフレッシュ開始アドレス及びデータ長から特定される。FMコントローラ１２１は、リフレッシュ開始アドレスから指定されたデータ長のデータを、FMコントローラ１２１に内蔵された一時的記憶領域またはFMコントローラ１２１の外部に設けられた一時的記憶領域に読出し、この読み出したデータを元のアドレスに書き戻す（Ｓ３０）。
【００９５】
図１１は、外部リフレッシュ処理Ｐ２を示すフローチャートである。本処理は、管理サーバ３０のリフレッシュ起動処理Ｐ１により起動され、ホスト２０のプロセッサ２３により実行される。
【００９６】
ホスト２０は、リフレッシュ対象の論理デバイス１２４の全領域に対して、リフレッシュを行う（Ｓ４０）。具体的には、ホスト２０のプロセッサ２３は、リフレッシュ対象の論理デバイス１２４内のデータを一定量ずつメモリ２４に読み出す。その後、プロセッサ２３は、この読み出したデータをそのまま元の場所に書き戻す。この作業をリフレッシュ対象の論理デバイス１２４の全領域について実施する。
【００９７】
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、フラッシュメモリデバイス１２０を用いてデータを保存するため、ハードディスクドライブを用いる場合よりも、消費電力を低減することができ、ストレージ装置１０を小型軽量化することができ、ストレージ装置１の総所有コストを低減できる。
【００９８】
本実施例では、内部リフレッシュ処理Ｐ３または外部リフレッシュ処理Ｐ２のいずれかを用いて、論理デバイス１２４内のデータをリフレッシュさせることができる。さらに、内部リフレッシュ処理Ｐ３では、ストレージ装置１０のコントローラ１１またはフラッシュメモリデバイス１２０のFMコントローラ１２１のいずれかによって、論理デバイス１２４内のデータをリフレッシュさせることができる。従って、ストレージシステムの構成等に応じて適切なリフレッシュモードを設定することができ、長期保存されるデータの消失を防止することができ、使い勝手も向上する。
【００９９】
本実施例では、各論理デバイス１２４毎にリフレッシュモード及びリフレッシュ起動時刻を設定可能である。従って、ホスト２０によって利用される単位（論理デバイス１２４）で、データのリフレッシュを行うことができる。これにより、データマイグレーションやボリュームコピー等のような他の処理とリフレッシュ処理との連携も容易となる。
【０１００】
本実施例では、内部リフレッシュ処理Ｐ３の優先度を外部リフレッシュ処理Ｐ２の優先度よりも高く設定する。これにより、ホスト２０の処理負荷を増大させることなく、ストレージ装置１０内でデータをリフレッシュさせることができる。
【０１０１】
なお、外部リフレッシュ処理Ｐ２及び内部リフレッシュ処理Ｐ３のいずれを用いる場合でも、ウェアレベリング処理を行うことにより、フラッシュメモリデバイス１２０の寿命を延ばすことができる。ウェアレベリング処理とは、書込み回数の分散を図る処理であり、特定の箇所に書込みが集中しないように、書込み回数の少ない箇所にデータを書き込ませる。これにより、特定の箇所の書込み回数が上限に達して、その特定の箇所への書込みが不能となるのを防止することができる。
【０１０２】
例えば、アドレス単位等のように、ある一定の単位で、書込み回数を管理する書込み回数管理テーブルを設けることができる。この書込み回数管理テーブルを参照して、書込み回数の少ないアドレスにデータを書き込むように制御すれば、フラッシュメモリデバイス１２０の寿命を長くすることができる。例えば、リフレッシュ機能管理テーブルMT１に、書込み管理単位毎の累計書込み回数を管理する部分を追加することにより、ウェアレベリング処理を考慮したリフレッシュ処理を行うことができる。
【実施例２】
【０１０３】
図１２〜図１８に基づいて第２実施例を説明する。本実施例を含む以下の各実施例は、上述した第１実施例の変形例に相当する。従って、本実施例では、前記第１実施例との相違部分を中心に説明する。本実施例では、一方のストレージ装置１０Ｕが他方のストレージ装置１０内の論理デバイス１２４からデータを読み出して元の場所に書き戻すことにより、データをリフレッシュさせる。
【０１０４】
図１２は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムでは、新たに統合ストレージ装置１０Ｕが設けられている。統合ストレージ装置１０Ｕは、ストレージ装置１０と同様に構成可能であり、通信ネットワークCN１及びCN２にそれぞれ接続されている。
【０１０５】
統合ストレージ装置１０Ｕは、他のストレージ装置１０内の論理デバイス１２４を、あたかも統合ストレージ装置１０Ｕ自身の論理デバイスであるかのようにして、ホスト２０に提供する。即ち、統合ストレージ装置１０Ｕは、ストレージシステム内に分散する複数の論理デバイス１２４を統合ストレージ装置１０Ｕ内で仮想化して、統合管理することができるようになっている。
【０１０６】
統合ストレージ装置１０Ｕの内部において各ストレージ装置１０の有する論理デバイス１２４を仮想化して管理することにより、統合ストレージ装置１０Ｕの有する各種の機能（例えば、スナップショットやリモートコピー）を、仮想化された論理デバイスについても適用可能となる。
【０１０７】
統合ストレージ装置１０Ｕから見た場合、他のストレージ装置１０は、統合ストレージ装置１０Ｕの外部に位置するストレージ装置である。従って、ストレージ装置１０は、外部ストレージ装置または接続先ストレージ装置と呼ぶことができる。これに対し、統合ストレージ装置１０Ｕは、接続元ストレージ装置と呼ぶこともできる。
【０１０８】
図１３は、統合ストレージ装置１０Ｕに着目した構成図である。統合ストレージ装置１０Ｕのコントローラ１１Ｕは、前記コントローラ１１と同様に構成される。しかし、管理メモリ１１４内には、ストレージ間リフレッシュ処理Ｐ５を実現するためのプログラムが記憶されている。
【０１０９】
ストレージ管理リフレッシュ処理Ｐ５は、接続元である統合ストレージ装置１０Ｕが、接続先のストレージ装置１０内の論理デバイス１２４についてのデータリフレッシュ処理を実行するものである。ストレージ間リフレッシュ処理Ｐ５は、例えば、統合ストレージ装置によるリフレッシュ処理と呼び変えることもできる。ストレージ間リフレッシュ処理Ｐ５については後述する。
【０１１０】
図１４は、統合ストレージ装置１０Ｕが他のストレージ装置１０の有する論理デバイス１２４を取り込む様子を模式的に示す説明図である。統合ストレージ装置１０の記憶構造に着目すると、図１４中の左上側に示すように、ホスト２０からの指示を受領するためのターゲットポート１１０Ｔには、論理デバイス１２４（LU#1）が接続されている。この論理デバイス１２４は、中間デバイス（VDEV）１２３を介して、一つまたは複数のフラッシュメモリデバイス１２０に接続されている。
【０１１１】
換言すれば、一つまたは複数のフラッシュメモリデバイス１２０の有する物理的記憶領域は、中間デバイス１２３として仮想化されており、この中間デバイス１２３に論理デバイス１２４（LU#1）が設定される。この論理デバイス１２４は、統合ストレージ装置１０Ｕ内の物理的な記憶デバイス（フラッシュメモリデバイス１２０）に基づいて生成されているため実論理デバイスと呼ぶこともできる。
【０１１２】
これに対し、統合ストレージ装置１０Ｕ内の他の論理デバイス（LU#3）１２４は、中間デバイス１２３Ｖに接続されている。そして、この中間デバイス１２３Ｖは、外部接続用ポート（Externalポート）１１０Ｅ及び通信ネットワークCN１等を介して、他のストレージ装置１０内の論理デバイス１２４に接続されている。即ち、他のストレージ装置１０の有する論理デバイス１２４の記憶領域は、中間デバイス１２３Ｖを介して、統合ストレージ装置１０Ｕ内の論理デバイス１２４（LU#3）にマッピングされる。
【０１１３】
このように、他のストレージ装置１０の有する論理デバイス１２４を利用する論理デバイス１２４（LU#3）は、データ入出力を行うための窓口であり、実際にデータを格納するデバイスはストレージ装置１０内の論理デバイス１２４である。この論理デバイス１２４（LU#3）は、統合ストレージ装置１０Ｕ内のフラッシュメモリデバイス１２０に基づくデバイスではないため、仮想論理デバイスと呼ぶこともできる。従って、統合ストレージ装置１０Ｕ内に仮想論理デバイスのみを設ける場合、統合ストレージ装置１０Ｕは、フラッシュメモリデバイス１２０を備える必要はない。
【０１１４】
図１５は、統合ストレージ装置１０Ｕが他のストレージ装置１０内の論理デバイス１２４を利用するために使用するマッピングテーブルＭＴ４の一例を示す。このテーブルＭＴ４は、例えば、統合ストレージ装置１０Ｕ内の管理メモリ１１４に記憶される。
【０１１５】
テーブルＭＴ４は、例えば、LUN（Logical Unit Number）と、論理デバイス１２４の番号と、中間デバイス１２３を識別するための情報とを対応付けることにより構成することができる。中間デバイス１２３（１２３Ｖを含む）を識別するための情報には、例えば、中間デバイスの番号と、中間デバイスが接続される物理的な記憶デバイスの種類を示す情報と、物理的な記憶デバイスへ接続するための経路情報等を含めることができる。
【０１１６】
実論理デバイスの場合、経路情報として、統合ストレージ装置１０Ｕ内のフラッシュメモリデバイス１２０への経路が設定される。仮想論理デバイスの場合、他のストレージ装置１０の論理デバイス１２４にアクセスするためのWWNやLUNが設定される。
【０１１７】
ホスト２０が仮想論理デバイス１２４（上記の例では、LU#3）へのアクセス要求（ライトコマンドやリードコマンド）を発行した場合、統合ストレージ装置１０Ｕのコントローラ１１Ｕは、ホスト２０からのアクセス要求を、仮想論理デバイス１２４に対応付けられている論理デバイス１２４へのアクセス要求に変換する。この変換は、コントローラ１１Ｕ内の制御部１１２によって行うことができる。
【０１１８】
図１６は、本実施例で使用されるリフレッシュ機能管理テーブルＭＴ１Ｕを示す説明図である。このテーブルＭＴ１Ｕは、図１６中に太線で示すように、リフレッシュ機能情報としてストレージ間リフレッシュ機能を選択可能になっている点で、図６に示すテーブルＭＴ１と異なる。ストレージ管理リフレッシュ機能を設定する場合、IPアドレスには、統合ストレージ装置１０ＵのIPアドレスが設定される。
【０１１９】
また、優先順位管理テーブルＭＴ２Ｕにも、ストレージ間リフレッシュ機能が追加されている。本実施例では、ストレージシステムの負荷が少なくなるように、（１）内部リフレッシュ機能、（２）ストレージ間リフレッシュ機能、（３）外部リフレッシュ機能の順番で、優先度が設定される。
【０１２０】
図１７は、本実施例によるリフレッシュ起動処理を示すフローチャートである。図８に示すフローチャートに比べて、本処理では、新たにＳ１４が追加されている。即ち、リフレッシュ機能情報の値に「ストレージ間リフレッシュ機能有り」と設定されていた場合、管理サーバ３０は、統合ストレージ装置１０Ｕに向けて起動コマンドを発行し、ストレージ間リフレッシュ処理Ｐ５を起動させる（Ｓ１４）。
【０１２１】
図１８は、ストレージ間リフレッシュ処理Ｐ５を示すフローチャートである。本処理は、管理サーバ３０のリフレッシュ起動処理Ｐ１により起動され、統合ストレージ装置１０Ｕのコントローラ１１Ｕにより実行される。
【０１２２】
本処理では、リフレッシュ対象の論理デバイス１２４の全領域に対して、データのリフレッシュを行う（Ｓ５０）。即ち、統合ストレージ装置１０Ｕは、ストレージ装置１０にアクセスすることにより、リフレッシュ対象の論理デバイス１２４内のデータを一定量ずつキャッシュメモリ１１３に読み出す。そして、読み出したデータをストレージ装置１０内の論理デバイス１２４に書き戻す。この作業をリフレッシュ対象の論理デバイス１２４の全領域について実施する。
【０１２３】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ストレージシステム内の論理デバイスを仮想化する統合ストレージ装置１０Ｕ内で、接続先のストレージ装置１０の有する論理デバイス内に記憶されているデータをリフレッシュさせることができる。従って、接続先のストレージ装置１０内のコントローラ１０及びFMコントローラ１２１のいずれもがリフレッシュ機能を備えていない場合でも、ホスト２０の処理負荷を増大させることなく、データのリフレッシュを行うことができる。
【０１２４】
本実施例では、統合ストレージ装置１０Ｕによって、外部ストレージ装置１０内の論理デバイス１２４に関してデータをリフレッシュさせることができる。従って、例えば、外部ストレージ装置１０を通常時にはオフラインストレージとして使用し、必要な場合のみ外部ストレージ装置１０と統合ストレージ装置１０Ｕとを接続させて、外部ストレージ装置１０内の論理デバイス１２４についてデータのリフレッシュを行うことができる。これにより、例えば、比較的長期間にわたって保存すべきデータを外部ストレージ装置１０内の論理デバイス１２４に記憶させて管理することができ、外部ストレージ装置１０を効率的に使用できる。また、リフレッシュ起動時刻が到来した場合のみ外部ストレージ装置１０に電源を入れて起動させれば足りるため、ストレージシステムの消費電力を一層低減することができる。
【実施例３】
【０１２５】
図１９〜図２１に基づいて第３実施例を説明する。本実施例では、論理デバイス１２４がリフレッシュ起動時刻に達した場合でも、リフレッシュ処理が不要となる所定の処理が既に実施されている場合は、リフレッシュ処理を実施しない。
【０１２６】
図１９に示すリフレッシュ機能管理テーブルＭＴ１Ａでは、リフレッシュの要否を示すフラグ情報が追加されている。初期値としては、「リフレッシュ必要」に設定されているが、所定の処理が実施された場合には、「リフレッシュ不要」に変更される。
【０１２７】
図２０は、リフレッシュ要否を示すフラグを設定するための処理を示す。この処理は、例えば、管理サーバ３０によって実行される。管理サーバ３０は、例えば、データマイグレーションが実行されたか否か（Ｓ６０）、リストアが実行されたか否か（Ｓ６１）、ボリュームコピーが実行されたか否か（Ｓ６２）を監視する。
【０１２８】
これらデータマイグレーション、リストア、ボリュームコピーが所定の処理に該当し、所定の処理の実行が検出された場合（S60:YES，S61:YES，S62:YES）、管理サーバ３０は、その所定の処理によってデータの書き込まれた論理デバイスについて、リフレッシュ要否フラグの値を「リフレッシュ不要」に設定する（Ｓ６３）。これらの所定の処理は、処理対象の論理デバイス内の全データを書き込む処理であるから、所定の処理を終了した時点でデータはリフレッシュされている。
【０１２９】
図２１は、リフレッシュ起動処理を示すフローチャートである。図８に示すフローチャートとの相違は、リフレッシュ起動時刻に達した論理デバイス１２４が検出された場合（S10:YES）、管理サーバ３０は、リフレッシュ要否フラグの値を調べて、「リフレッシュ必要」に設定されているか否かを判定する点にある（Ｓ１５）。「リフレッシュ不要」に設定されていた場合（S15:YES）、管理サーバ３０は、リフレッシュ処理を起動させず、所定時間経過後にＳ１０を再び実行する。
【０１３０】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、論理デバイス１２４内の全データを結果的にリフレッシュさせる所定の処理が、リフレッシュ起動時刻よりも前に実施された場合は、リフレッシュ処理を実行しないため、無駄なリフレッシュ処理が行われるのを防止することができる。なお、リフレッシュ処理の起動が阻止された後で、管理者は、手動操作で新たなリフレッシュ起動時刻を設定することができる。
【実施例４】
【０１３１】
図２２に基づいて第４実施例を説明する。本実施例では、リフレッシュ処理を不要とする所定の処理が実施された場合、次回のリフレッシュ起動時刻を自動的に修正する。
【０１３２】
図２２は、リフレッシュ起動時刻を更新させる処理を示すフローチャートである。管理サーバ３０は、例えば、データマイグレーションが実行されたか否か（Ｓ６０）、リストアが実行されたか否か（Ｓ６１）、ボリュームコピーが実行されたか否か（Ｓ６２）を監視する。これらの所定の処理の実行が検出された場合（S60:YES，S61:YES，S62:YES）、管理サーバ３０は、その所定の処理によってデータの書き込まれた論理デバイスについて、リフレッシュ起動時刻を更新させる（Ｓ６４）。
【０１３３】
例えば、ある論理デバイス１２４について３年周期でリフレッシュを行う場合、所定の処理が実施された時刻から３年後の時刻が、次回のリフレッシュ起動時刻として、テーブルＭＴ１に設定される。このように構成される本実施例も前記第１実施例と同様の効果を奏する。
【実施例５】
【０１３４】
図２３に基づいて第５実施例を説明する。本実施例では、複数のリフレッシュ処理が重複して実行されないようにリフレッシュ起動時刻を調整し、ストレージシステムの負荷を分散させるようになっている。
【０１３５】
図２３は、リフレッシュ起動時刻を調整する処理を示すフローチャートである。この処理は、管理サーバ３０によって実行される。管理サーバ３０は、テーブルＭＴ１を参照することにより、各論理デバイス１２４に設定されている次回のリフレッシュ起動時刻を確認する（Ｓ７０）。
【０１３６】
管理サーバ３０は、リフレッシュ起動時刻の重なる論理デバイス１２４が存在するか否かを判定する（Ｓ７１）。リフレッシュ起動時刻が重なるとは、一方の論理デバイス１２４に関するリフレッシュ処理の実行期間と他方の論理デバイス１２４に関するリフレッシュ処理の実行時間とが一致または一部重複する場合を意味する。
【０１３７】
リフレッシュ起動時刻の重なる論理デバイス１２４が存在する場合（S71:YES）、管理サーバ３０は、リフレッシュ起動時刻が重複しないように、新たなリフレッシュ起動時刻を算出してテーブルＭＴ１に設定する（Ｓ７２）。
【０１３８】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、リフレッシュ処理が重複して実行されないようにリフレッシュ起動時刻を予め調整するため、ストレージシステム内においてリフレッシュ処理に要する負荷を分散させることができる。
【実施例６】
【０１３９】
図２４〜図２６に基づいて第６実施例を説明する。本実施例では、ホスト２０とストレージ装置１０とを接続するスイッチ装置４０によって、論理デバイス１２４に記憶されているデータをリフレッシュさせる。
【０１４０】
図２４は、本実施例によるストレージシステムの全体構成を示す。ストレージ装置１０とホスト２０との間には、スイッチ装置４０が設けられている。このスイッチ装置４０は、スイッチ経由リフレッシュ処理Ｐ６を実行可能となっている。
【０１４１】
図２５は、リフレッシュ機能管理テーブルＭＴ１ＳＷを示す。このテーブルＭＴ１ＳＷでは、リフレッシュ機能情報の値として、スイッチ経由リフレッシュ機能（スイッチ経由リフレッシュ処理Ｐ６）を選択可能である。スイッチ経由リフレッシュ機能が選択される場合、IPアドレスには、スイッチ装置４０のIPアドレスが設定される。
【０１４２】
そして、優先順位管理テーブルＭＴ１ＳＷに示すように、本実施例では、（１）内部リフレッシュ機能、（２）スイッチ経由リフレッシュ機能、（３）外部リフレッシュ機能の順番で優先順位が設定されている。
【０１４３】
図２６は、リフレッシュ起動処理を示すフローチャートである。本処理では、Ｓ１６に示すように、リフレッシュ機能情報に「スイッチ経由リフレッシュ機能」が設定されている場合、管理サーバ３０は、スイッチ装置４０に起動コマンドを送信する。スイッチ装置４０は、リフレッシュ対象の論理デバイス１２４にアクセスして、そこに記憶されている全データを一定量ずつ読出し、この読み出したデータを元の記憶位置に書き戻す。
【０１４４】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、スイッチ装置４０内で論理デバイス１２４内のデータをリフレッシュさせることができるため、ストレージ装置１０やホスト２０がリフレッシュ機能を備えていない場合でも、論理デバイス１２４内の全データをリフレッシュさせることができ、使い勝手が向上する。
【実施例７】
【０１４５】
図２７に基づいて第７実施例を説明する。本実施例では、管理サーバ３０を廃止し、管理サーバ３０の機能をストレージ装置１０内に設けている。図２７は、本実施例によるストレージシステムの全体構成を示す。いずれか一つまたは複数のストレージ装置１０内には、リフレッシュ管理機能３０Ａが設けられている。このリフレッシュ管理機能３０Ａは、前記管理サーバ３０の果たす役割を実現するものであり、テーブルＭＴ１やリフレッシュ起動処理Ｐ１等を備えている。
【０１４６】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ストレージ装置１０内にリフレッシュ管理機能３０Ａを設けるため、管理サーバ３０を設ける必要がない。従って、ストレージシステムの設置に要する面積や空間を少なくすることができ、ストレージシステムの総所有コストをより一層低減することができる。
【実施例８】
【０１４７】
図２８に基づいて第８実施例を説明する。本実施例では、管理サーバ３０を廃止し、ホスト２０内に管理サーバ３０の機能を設けている。図２８は、本実施例によるストレージシステムの全体構成を示す。いずれか一つまたは複数のホスト２０内には、上述したリフレッシュ管理機能３０Ａが設けられている。
【０１４８】
このように構成される本実施例は、ホスト２０によってデータのリフレッシュ処理を管理するため、ホスト２０の負荷増大や通信ネットワークCN１のトラフィック増加を招く可能性はあるが、前記第７実施例とほぼ同様の効果を奏する。
【０１４９】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、ストレージ装置内に、フラッシュメモリデバイスとハードディスクドライブとを混在させてもよい。また、例えば、複数の論理デバイスをグループ化して管理し、グループ単位でリフレッシュ処理を行う構成としてもよい。
【０１５０】
さらに、例えば、NAND型フラッシュメモリデバイスとNOR型フラッシュメモリデバイスのように、技術的性質や性能あるいは信頼性等の相違する複数種類のメモリデバイスを混在させ、各メモリデバイスの特徴に応じてリフレッシュ方法やリフレッシュ時期を適宜設定する構成としてもよい。
【図面の簡単な説明】
【０１５１】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】ストレージシステムの全体構成を示す説明図である。
【図３】ホスト及び管理サーバのハードウェア構成を示す説明図である。
【図４】ストレージ装置のハードウェア構成を示す説明図である。
【図５】フラッシュメモリデバイスと論理デバイスとの関係を示す説明図である。
【図６】リフレッシュ機能管理テーブル及び優先順位管理テーブルを示す説明図である。
【図７】フラッシュメモリコントローラの有するリフレッシュ機能を管理するテーブルを示す説明図である。
【図８】リフレッシュ起動処理を示すフローチャートである。
【図９】内部リフレッシュ処理を示すフローチャートである。
【図１０】フラッシュメモリコントローラにより実行されるリフレッシュ処理を示すフローチャートである。
【図１１】外部リフレッシュ処理を示すフローチャートである。
【図１２】第２実施例に係るストレージシステムの全体構成を示す説明図である。
【図１３】統合ストレージ装置のハードウェア構成を示す説明図である。
【図１４】統合ストレージ装置及び外部ストレージ装置の記憶構造を示す説明図である。
【図１５】マッピングテーブルを示す説明図である。
【図１６】リフレッシュ機能管理テーブル及び優先順位管理テーブルを示す説明図である。
【図１７】リフレッシュ起動処理を示すフローチャートである。
【図１８】ストレージ間リフレッシュ処理を示すフローチャートである。
【図１９】第３実施例に係るストレージシステムで使用されるリフレッシュ機能管理テーブルを示す説明図である。
【図２０】リフレッシュの要否を示すフラグを設定する処理を示すフローチャートである。
【図２１】リフレッシュ起動処理を示すフローチャートである。
【図２２】第４実施例に係るストレージシステムにより実行される、リフレッシュ起動時刻を更新させる処理を示すフローチャートである。
【図２３】第５実施例に係るストレージシステムにより実行される、リフレッシュ起動時刻を調整する処理を示すフローチャートである。
【図２４】第６実施例に係るストレージシステムの全体構成を示すフローチャートである。
【図２５】リフレッシュ機能管理テーブル及び優先順位管理テーブルを示す説明図である。
【図２６】リフレッシュ起動処理を示すフローチャートである。
【図２７】第７実施例に係るストレージシステムの全体構成を示す説明図である。
【図２８】第８実施例に係るストレージシステムの全体構成を示す説明図である。
【符号の説明】
【０１５２】
１…ストレージ装置、２…外部装置、２Ａ…外部リフレッシュ処理、３…管理部、３Ａ…起動スケジューラ、３Ｂ…リフレッシュ機能管理テーブル、４…コントローラ、４Ａ…内部リフレッシュ処理、５…フラッシュメモリ搭載部、５Ａ…フラッシュメモリデバイス、５Ａ１…フラッシュメモリコントローラ、５Ａ２…フラッシュメモリ、１０…ストレージ装置、１０Ｕ…統合ストレージ装置、１１，１１Ｕ…コントローラ、１２…フラッシュメモリ搭載部、１３…インターフェース、２０…ホスト、 ２１，２２…インターフェース、２３…プロセッサ、２４…メモリ、２５…補助記憶装置、２６…入力装置、２７…ディスプレイ、２８…バス、３０…管理サーバ、３０Ａ…リフレッシュ管理機能、３１…インターフェース、３２…プロセッサ、３３…メモリ、３４…補助記憶装置、３５…入力装置、３６…ディスプレイ、３７…バス、４０…スイッチ装置、CN１…データ入出力用ネットワーク、CN２…管理用ネットワーク、１１０…チャネルインターフェース、１１１…フラッシュメモリデバイスインターフェース、１１０Ｔ…ターゲットポート、１１０Ｅ…外部接続用ポート、１１２…制御部、１１３…キャッシュメモリ、１１４…管理メモリ、１２０…フラッシュメモリデバイス、１２１…フラッシュメモリコントローラ、１２２…フラッシュメモリ、１２３，１２３Ｖ…中間デバイス、１２４…論理デバイス
【図１】
0004813264.tif 000002
【図２】
0004813264.tif 000003
【図３】
0004813264.tif 000004
【図４】
0004813264.tif 000005
【図５】
0004813264.tif 000006
【図６】
0004813264.tif 000007
【図７】
0004813264.tif 000008
【図８】
0004813264.tif 000009
【図９】
0004813264.tif 000010
【図１０】
0004813264.tif 000011
【図１１】
0004813264.tif 000012
【図１２】
0004813264.tif 000013
【図１３】
0004813264.tif 000014
【図１４】
0004813264.tif 000015
【図１５】
0004813264.tif 000016
【図１６】
0004813264.tif 000017
【図１７】
0004813264.tif 000018
【図１８】
0004813264.tif 000019
【図１９】
0004813264.tif 000020
【図２０】
0004813264.tif 000021
【図２１】
0004813264.tif 000022
【図２２】
0004813264.tif 000023
【図２３】
0004813264.tif 000024
【図２４】
0004813264.tif 000025
【図２５】
0004813264.tif 000026
【図２６】
0004813264.tif 000027
【図２７】
0004813264.tif 000028
【図２８】
0004813264.tif 000029