(57)【要約】【課題】フラッシュメモリをオフライン化して、別のコントローラで再度オンライン化して使用するときに、ボリューム情報、寿命情報がわからず、格納データの運用に支障をきたすことを防止するストレージシステム及び記憶管理方法を提供する。【解決手段】記憶領域を構成するフラッシュメモリ１３００を有し、フラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステム１２００において、オンラインのフラッシュメモリの一部又は全部をオフライン化する場合に、フラッシュメモリにおけるオフライン時の管理領域とする領域の既存データを管理領域以外の領域に移動して管理領域を作成し、作成した管理領域に前記フラッシュメモリの管理情報を書き出し、フラッシュメモリをオフライン化する。【選択図】図１
2008192061.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域を構成するフラッシュメモリを有し、前記フラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステムにおいて、
オンラインのフラッシュメモリの一部又は全部をオフライン化する場合に、該フラッシュメモリにおけるオフライン時の管理領域とする領域の既存データを管理領域以外の領域に移動して管理領域を作成し、作成した管理領域に前記フラッシュメモリの管理情報を書き出し、前記フラッシュメモリをオフライン化することを特徴とするストレージシステム。
【請求項２】
記憶領域を構成するフラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステムにおいて、
オフラインのフラッシュメモリをオンライン化する場合に、前記フラッシュメモリの管理領域から管理情報を読み出し、前記フラッシュメモリをオンライン化し、前記フラッシュメモリの管理領域をデータ領域として開放することを特徴とするストレージシステム。
【請求項３】
請求項１記載のストレージシステムにおいて、
前記既存データの移動先として、書き込み寿命が高いセクタを選択することを特徴とするストレージシステム。
【請求項４】
請求項１記載のストレージシステムにおいて、
前記フラッシュメモリをオンライン化するときに、前記管理領域分の領域を前記フラッシュメモリで確保するように、該フラッシュメモリのボリューム割り当てを管理することを特徴とするストレージシステム。
【請求項５】
請求項１又は２に記載のストレージシステムにおいて、
前記フラッシュメモリの管理情報は、該フラッシュメモリの書き込み寿命であることを特徴とするストレージシステム。
【請求項６】
請求項１又は２に記載のストレージシステムにおいて、
前記フラッシュメモリの管理情報は、該フラッシュメモリのボリューム情報であることを特徴とするストレージシステム。
【請求項７】
請求項１又は２に記載のストレージシステムにおいて、
前記フラッシュメモリの管理情報は、複数のフラッシュメモリで構成されるＲＡＩＤ構成情報を含むボリューム情報であることを特徴とするストレージシステム。
【請求項８】
請求項２記載のストレージシステムにおいて、
オフラインのフラッシュメモリをオンライン化する場合に、読み出した管理情報を基に正しくＲＡＩＤ構成を組んでいるか確認し、正しくＲＡＩＤ構成を組めなければエラーを通知し、正しいＲＡＩＤ構成を組めるフラッシュメモリを提示することを特徴とするストレージシステム。
【請求項９】
請求項２記載のストレージシステムにおいて、
前記フラッシュメモリの管理領域のデータを無効にしてから、データ領域として開放することを特徴とするストレージシステム。
【請求項１０】
記憶領域を構成するフラッシュメモリを有し、前記フラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステムにおける記憶管理方法において、
オンラインのフラッシュメモリの一部又は全部をオフライン化する場合に、該フラッシュメモリにおけるオフライン時の管理領域とする領域の既存データを管理領域以外の領域に移動して管理領域を作成することと、作成した管理領域に前記フラッシュメモリの管理情報を書き出すことと、前記フラッシュメモリをオフライン化することを含むことを特徴とする記憶管理方法。
【請求項１１】
請求項１０記載の記憶管理方法において、
オフラインのフラッシュメモリをオンライン化する場合に、前記フラッシュメモリの管理領域から管理情報を読み出すことと、前記フラッシュメモリをオンライン化することと、前記フラッシュメモリの管理領域をデータ領域として開放することを含むことを特徴とする記憶管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及び記憶管理方法であり、特に計算機や記憶装置を用いた計算機システムにおいて、記憶装置における記憶領域のデータを長期に管理するストレージシステムに関する。
【背景技術】
【０００２】
企業などでの計算機システムにおいて、ストレージのデータ量の増大に伴い、またデータを長期間にわたって保持するようになるに伴い、データを格納する記憶媒体の容量も増加している。また長期間データを保持するために、記憶媒体の寿命を考慮してデータを保管する必要がある。データを保管する記憶媒体において、不揮発性の半導体メモリ、例えばフラッシュメモリ等の書込み回数制限型メモリがある。フラッシュメモリは書き込み回数の制限があるものの、ディスクドライブに比べて、ドライブの回転などの動力を伴わないことから、一般的に長寿命であると言われている。
【０００３】
また、フラッシュメモリの書き込み回数の制限を補うため、フラッシュメモリのセクタへの書き込み回数の管理をコントローラで行ない、特定のセクタの消去箇所を集中しないようにし、寿命を延ばす技術が開示されている（特許文献１）。
【特許文献１】特開平６−１２４５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
かかる従来の方法においては、次のような問題がある。
フラッシュメモリによる記憶媒体の長寿命化により、記憶媒体のほうが記憶媒体を制御するコントローラよりも寿命が長くなることが考えられる。この場合、フラッシュメモリを記憶装置から取り外し、すなわちオフライン化し、別の記憶装置に前記フラッシュメモリを装填する、または別のコントローラを入れ替えることで、同じフラッシュメモリを使いまわすことが可能となる。
【０００５】
しかし、従来の技術では、コントローラで管理情報を管理しているため、フラッシュメモリを取り外して、前記フラッシュメモリを別のコントローラに装填して動作させるときに、書き込み回数、すなわち書き込みに対するフラッシュメモリの寿命は引き継がれない。よって、どの程度使用していたか、新しいコントローラは把握することができない。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、以下の手段を用いる。
すなわち、本発明は、記憶領域を構成するフラッシュメモリを有し、前記フラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステムにおいて、オンラインのフラッシュメモリの一部又は全部をオフライン化する場合に、該フラッシュメモリにおけるオフライン時の管理領域とする領域の既存データを管理領域以外の領域に移動して管理領域を作成し、作成した管理領域に前記フラッシュメモリの管理情報を書き出し、前記フラッシュメモリをオフライン化するストレージシステムである。
【発明の効果】
【０００７】
本発明によれば、フラッシュメモリのオフライン化でも、装置側で管理するのに必要なボリューム情報や寿命情報などの管理情報を保持することが可能であり、前記管理情報をオフライン化するときのみ書き込むために、フラッシュメモリへの書き込み回数の省力化を行ない、寿命の短縮をさけることが可能である。また通信形態を用いずとも、フラッシュメモリの換装のみでデータの引継ぎが可能となる。
【発明を実施するための最良の形態】
【０００８】
本発明を実施するための最良の形態を説明する。
【０００９】
本発明の実施形態は、フラッシュメモリのオフライン化において、フラッシュメモリの書き込み回数の制限を考慮し、またフラッシュメモリで管理していたデータを再度利用するため、オフライン化時に、ボリューム、寿命情報を書き込む。記憶装置のコントローラは、フラッシュメモリを管理領域とデータ領域を分けて管理する。ホスト計算機からのデータはデータ領域に書き込み、オフライン化したときのみ管理領域を用いる。管理領域は、オフライン化のときに作成することとし、管理領域とするセクタを選択し、管理領域としたセクタのデータをデータ領域のセクタに移動する。そして、管理計算機やホスト計算機が、オフライン化するフラッシュメモリをコントローラに通達し、コントローラは、書き込み回数と連携したフラッシュメモリ寿命情報、ＲＡＩＤ構成やそのＲＡＩＤ構成から切り出したボリュームの管理情報を、オフライン化するフラッシュメモリの管理領域に書き出しし、オフライン化する。
【００１０】
そして、管理計算機は、再度記憶装置のコントローラや別のコントローラに、前記オフライン化したフラッシュメモリ装填完了後、オンライン化、すなわち装填したフラッシュメモリからデータを利用可能とするように指示する。そしてコントローラは、装填されたフラッシュメモリから管理情報を読み出し、運用を開始する。ＲＡＩＤ構成の場合、複数のフラッシュメモリの情報から一括に生成する。そして、管理領域の情報は開放し、再度データ領域として活用する。
以下、本発明のストレージシステム及び記憶管理方法の実施例について、図面を用いて詳細に説明する。本発明におけるストレージシステムは、記憶領域を構成するメモリを有する１以上のストレージ装置からなり、以下、単にストレージという場合がある。
【００１１】
実施例１を説明する。図１は、本発明の第一の実施形態における計算機システムの構成を示す図の一例である。管理計算機１０００は、ＣＰＵ１００１と、ストレージ１２００と通信するＩ／Ｆ１００２と、ユーザとの間で情報を入出力する入出力装置１００３と、メモリ１００４を有する計算機である。メモリ１００４にはオフラインオンライン指示プログラム１００５が格納されている。またストレージ１２００のストレージ構成指示、例えばパスの設定などの指示を管理計算機１０００で行なえるようにしてもよい。
【００１２】
ホスト計算機１１００は、ＣＰＵ１１０１と、ストレージ１２００と通信するＩ／Ｆ１１０２と、ユーザとの間で情報を入出力する入出力装置１１０３と、メモリ１１０４を有する計算機である。メモリ１１０４には、ホスト計算機上で業務のために必要な業務プログラム１１０５が格納されている。業務プログラム１１０５はＣＰＵ１１０１により動作するものである。
【００１３】
ストレージ１２００は、コントローラ１２０１と、管理計算機１０００の操作要求やホスト計算機１１００の読み書きに関する通信を行なうＩ／Ｆ１２０５と、ホスト計算機１１００からのデータを格納する領域であるボリューム１３０１と、ボリュームを構成する記憶媒体であるフラッシュメモリ１３００を有するストレージ装置である。またコントローラ１２０１には、ＣＰＵ１２０２と、ストレージ１２００の性能向上のために利用するキャッシュ１２０３と、メモリ１２０４で構成されている。
【００１４】
Ｉ／Ｆ１２０５は、通信形態が異なれば、例えば管理計算機１０００との操作要求に関する通信がＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）であり、ホスト計算機１１００とのデータＩ／Ｏに関する通信がＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ））であるときは、通信形態ごとに通信装置が別々に配置されることもある。また同じプロトコルでも、用途の違いや設定の違いにより、複数配置されることもある。
【００１５】
メモリ１２０４には、ストレージ構成プログラム１２０６と、ストレージアクセス管理プログラム１２０７と、ストレージ構成情報１２０８と、ストレージオフラインオンライン実行プログラム１２０９がある。ストレージ構成プログラム１２０６、ストレージアクセス管理プログラム１２０７及びストレージオフラインオンライン実行プログラム１２０９は、ＣＰＵ１２０２によって実行されることにより実現される。ストレージ構成情報１２０８は、ストレージ構成プログラム１２０６、ストレージアクセス管理プログラム１２０７、ストレージオフラインオンライン実行プログラム１２０９で使用される情報であり、ストレージ１２００で管理する情報である。
【００１６】
ストレージ構成プログラム１２０６は、ストレージ１２００の構成について管理するプログラムであり、ボリューム１３０１をＩ／Ｆ１２０５経由で管理計算機１０００などの計算機に認識させるための機能や、ボリューム間でのデータ移行を行なうための機能や、フラッシュメモリやボリュームへのデータの読み書きする機能や、フラッシュメモリの領域をシュレッディングしてフラッシュメモリ内のデータを無効なデータとする機能などを持つ。
【００１７】
ストレージアクセス管理プログラム１２０７は、ストレージ１２００において、フラッシュメモリ１３００への書き込み寿命の管理、フラッシュメモリ間のデータの移動を行なうプログラムである。
【００１８】
ストレージオフラインオンライン実行プログラム１２０９は、フラッシュメモリのオフライン、オンラインを実際に制御するプログラムである。
【００１９】
ボリューム１３０１は、フラッシュメモリ１３００による媒体そのものである場合や、フラッシュメモリ１３００を複数持って、ＲＡＩＤ構成のボリュームを実現する論理的なボリュームの場合もある。
【００２０】
図２、図３、図４は、実施例１における、ストレージ１２００のストレージ構成情報１２０８にある情報の一例である。
【００２１】
ストレージ構成情報１２０８には、ボリュームテーブル２０００、パリティグループテーブル２１００、フラッシュメモリセクタテーブル３０００、フラッシュメモリ管理領域テーブル４０００がある。ここでパリティグループとは、記憶媒体によりＲＡＩＤを構成する単位である。
【００２２】
ボリュームテーブル２０００には、図２に示すように、フラッシュメモリ番号２００１、ボリューム番号２００２と、開始論理セクタ２００３と、最終論理セクタ２００４からなる。
【００２３】
ボリュームはデータを格納する領域であるが、ＲＡＩＤ構成されているパリティグループから作成されたボリュームでは、物理的には複数の記憶媒体にデータが散在しても、論理的には一つの領域として取り扱うこととなる。またこのボリュームは論理ユニットと呼ばれる場合がある。またフラッシュメモリ単体をボリュームと扱う場合は、パリティグループテーブル２１００は必要ない。
【００２４】
フラッシュメモリ番号２００１は、フラッシュメモリ単体自体の識別子である。ボリューム番号２００２は、ボリューム１３０１を識別するために一意に付された識別子である。開始論理セクタ２００３は、ボリューム番号２００２にあたる各ボリューム１３０１に割り当てた最初の論理セクタの番号を示す。最終論理セクタ２００４は、ボリューム番号２００２にあたる各ボリューム１３０１に割り当てた最後の論理セクタの番号を示す。
【００２５】
開始論理セクタ２００３と最終論理セクタ２００４により、フラッシュメモリ番号２００１で示す各フラッシュメモリについて、ＲＡＩＤ構成となっている各フラッシュメモリにおいて作成されたボリュームの割当範囲を管理する。例えば、ボリューム番号１のボリュームであれば、フラッシュメモリ番号１の開始論理セクタ２００３が０、最終論理セクタ２００４が９９９であり、フラッシュメモリ番号２の開始論理セクタ２００３が１００００、最終論理セクタ２００４が１０９９９の範囲であり、フラッシュメモリ番号３の開始論理セクタ２００３が２００００、最終論理セクタ２００４が２０９９９であり、フラッシュメモリ番号４の開始論理セクタ２００３が３００００、最終論理セクタ２００４が３０９９９で割り当てていることがわかる。論理セクタの番号は、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）と呼ばれることもある。
【００２６】
パリティグループテーブル２１００は、図２に示すように、パリティグループ番号２１０１、記憶媒体番号２１０２、ＲＡＩＤタイプ２１０３からなり、パリティグループごとに設けられている。ここでパリティグループとストレージの記憶媒体で形成されたＲＡＩＤを構成する単位である。
【００２７】
パリティグループ番号２１０１は、ストレージ１２００内に形成されたパリティグループを識別するために一意に付された識別子である。記憶媒体番号２１０２は、パリティグループを構成する記憶媒体の識別子であり、記憶媒体番号２１０２の情報により表されている。パリティグループテーブル２１００の例に従えば、パリティグループＰ０を構成する記憶媒体は１、２、３、４の番号をもつ記憶媒体であり、これはパリティグループテーブル２１００の記憶媒体番号２１０２の１、２、３、４の番号で示される記憶媒体で構成されていることを示している。
【００２８】
フラッシュメモリセクタテーブル３０００は、フラッシュメモリのセクタの状態を管理するテーブルであり、図３に示すように、フラッシュメモリ番号３００１と、セクタ番号３００２と、書き込み寿命３００３と、論理セクタ３００４と、物理セクタ３００５からなる。
【００２９】
フラッシュメモリ番号３００１は、ボリュームテーブル２０００のフラッシュメモリ番号２００１と同様にフラッシュメモリ単体自体の識別子である。セクタ番号３００２は、セクタを識別する番号である。書き込み寿命３００３は、各セクタへの書き込み回数が使用寿命、すなわち書き込み可能回数の上限値に対してどの程度の使用済み割合であるかを示しており、書き込み寿命が高いセクタとは使用済み割合が少ないセクタを意味する。論理セクタ３００４は、セクタの論理番号を示す。物理セクタ３００５は、セクタの物理番号を示す。なお、書き込み寿命３００３として書き込み済み回数を使用することができる。また、書き込み可能残り回数、書き込み可能残り割合などを書き込み寿命の代わりに使用し、そして、残り回数又は残り割合が多いセクタを書き込み寿命が高いとすることもできる。
【００３０】
フラッシュメモリ状態テーブル３１００は、フラッシュメモリがオンラインか、オフラインかの状態を管理するテーブルであり、図３に示すように、フラッシュメモリ番号３１０１と、オンラインオフライン３１０２で構成されている。
【００３１】
フラッシュメモリ番号３１０１は、ボリュームテーブル２０００のフラッシュメモリ番号２００１と同様にフラッシュメモリ単体自体の識別子である。
【００３２】
オンラインオフライン３１０２は、フラッシュメモリがオンラインの状態か、オフラインの状態かを示す情報である。例えば、図３にある例に従えば、フラッシュメモリ番号１のフラッシュメモリはオンラインとして稼動しており、フラッシュメモリ番号１０５はオフラインとなっていることを示している。
【００３３】
フラッシュメモリ管理領域テーブル４０００は、フラッシュメモリのオフライン化時に管理領域として用いる領域を示すテーブルであり、図４に示すように、フラッシュメモリ番号４００１と、管理領域開始物理セクタ４００２と、管理領域最終物理セクタ４００３からなる。
【００３４】
フラッシュメモリ番号４００１は、ボリュームテーブル２０００のフラッシュメモリ番号２００１、フラッシュメモリセクタテーブル３０００のフラッシュメモリ番号３００１と同様にフラッシュメモリ単体自体の識別子である。管理領域開始物理セクタ４００２は、オフライン時に管理領域として利用する領域の物理セクタのはじめの位置を表す。管理領域最終物理セクタ４００３は、オフライン時に管理領域として利用する領域の物理セクタの最後の位置を表す。
【００３５】
管理領域開始物理セクタ４００２と管理領域最終物理セクタ４００３で各フラッシュメモリにおける管理領域の位置を示すことになる。例えばフラッシュメモリ番号１の管理領域は、物理セクタ０から１００までの間のセクタを利用することになる。
【００３６】
ストレージ構成プログラム１２０６を実行するＣＰＵ１２０２は、オフライン化時に管理領域として利用する領域をオフライン化の前にはデータ領域として扱う。これは、フラッシュメモリの書き込み回数を平準化する技術に対応するためである。ただし、管理領域分の領域をフラッシュメモリで確保できるようにストレージアクセス管理プログラム１２０７を実行するＣＰＵ１２０２が監視することになる。よって、ストレージ構成プログラム１２０６がデータ領域として使用できる領域自体は、フラッシュメモリの全体の領域からオフライン化時の管理領域分の領域分を差し引いたものとなる。
【００３７】
図２、図３、図４においては、ストレージ構成プログラム１２０６を動作させるＣＰＵ１２０２により、ボリュームをホストに認識させた後、ストレージアクセス管理プログラム１２０７を動作させるＣＰＵ１２０２が、ホストからのデータの書き込みにより、値が更新させることとなる。またフラッシュメモリ管理領域テーブル４０００においては、フラッシュメモリ搭載時から管理しておいても良い。
【００３８】
図５は、実施例１における、フラッシュメモリのオンライン、オフラインをユーザが指示する画面の一例である。この画面は管理計算機１０００のオフラインオンライン指示プログラム１００５を用いてＣＰＵ１００１が出力する画面である。
【００３９】
オフライン・オンライン指示画面５０００は、フラッシュメモリ番号５００１と、入力の時点でのフラッシュメモリの状態を示す現在５００２と、変更したい状態を示す変更５００３がある。ユーザの入力対象はフラッシュメモリ番号５００１と変更５００３である。現在５００２に示される情報は、フラッシュメモリ番号５００１を基に、フラッシュメモリ状態テーブル３１００より、オフラインオンライン指示プログラム１００５を用いてＣＰＵ１００１が取得する。
【００４０】
またオフライン・オンライン指示画面５０００は、パリティグループでの指定も可能とし、パリティグループ番号５１０１と、入力の時点でのパリティグループの状態を示す現在５１０２と、変更したい状態を示す変更５１０３がある。ユーザの入力対象はフラッシュメモリ番号５１０１と変更５１０３である。現在５１０２に示される情報は、パリティグループ番号５１０１を基に、パリティグループテーブル２１００とフラッシュメモリ状態テーブル３１００より、オフラインオンライン指示プログラム１００５を用いてＣＰＵ１００１が取得する。すなわち、パリティグループを構成するフラッシュメモリがすべてオンラインであれば、オンラインとなる。すべてオフラインであればオフラインとなる。部分的にオンライン、オフラインとなっていれば、オンライン、オフライン両方の状態を出すことになる。
【００４１】
またユーザの入力値５００１、５００３、５１０１、５１０３に対して、実際に実行要求を出す実行ボタンである実行５００４、実行をキャンセルするボタンであるキャンセル５００５がある。実行ボタン５００４を押した後にキャンセル５００５のボタンが出てきて、このボタンを押すことにより、データ保管指定画面が出てくるようにしてもよい。
【００４２】
フラッシュメモリ番号５００１の入力値は、例えばボリュームテーブル２０００のフラッシュメモリ番号２００１における同じ値のものの指定となり、パリティグループ番号５１０１の入力値は、パリティグループテーブル２１００のパリティグループ番号２１０１における同じ値のものの指定となる。
【００４３】
オフライン・オンライン指示画面５０００においては、フラッシュメモリ単位によるオンライン化、オフライン化の指示、パリティグループ単位によるオンライン化、オフライン化指示は、どちらか一方でも両方でも構わない。フラッシュメモリ単位による指示と、パリティグループ単位による指示で、結果的にどちらの指定も同じフラッシュメモリのオフライン化、オンライン化の指示になっていたら、パリティグループの指定を優先することとする。これはユーザが設定できても良いし、両方とも同じフラッシュメモリへの指定となっていたら、エラーとして、どちらか一方の指定を行なうように指示してもよい。
【００４４】
図６は、実施例１における、フラッシュメモリのオフライン化を行なう処理のフローチャートの一例である。図６においては、ストレージ１２００のストレージオフラインオンライン実行プログラム１２０９によりＣＰＵ１２０２が処理する。
【００４５】
ＣＰＵ１２０２は、管理計算機１０００のオフラインオンライン指示プログラム１００５を動作させるＣＰＵ１００１より、オフライン要求を受け付ける（ステップ６０００）。オフラインの指示は例えば図５のような画面を用意して、ユーザに指定させる。
【００４６】
次に、ＣＰＵ１２０２は、オフライン化するフラッシュメモリのオフライン時に管理領域とする領域がデータ領域として使用されているか調べる（ステップ６００１）。管理領域がデータ領域として使用されていればステップ６００２に、使用されていなければステップ６００３に進む。
【００４７】
ＣＰＵ１２０２は、ステップ６００２にて、オフライン時に管理領域として扱う領域のデータを別の領域、すなわち別の物理セクタの場所に移動する。そして、ステップ６００３に進む。
【００４８】
ＣＰＵ１２０２は、ステップ６００３にて、ステップ６００２でデータを移動して作成した管理領域を管理領域として扱うように宣言する。このとき、ストレージ構成プログラム１２０６を用いて動作するＣＰＵ１２０２には、前記管理領域にはデータを書き込まないように指示することになる。ストレージ構成プログラム１２０６を用いて動作するＣＰＵ１２０２は、管理領域のデータを読み出せなくしてもよい。そして、ステップ６００４に進む。
【００４９】
ＣＰＵ１２０２は、ステップ６００４にて、オフライン化に必要な管理情報を管理領域に書き込む。必要な管理情報とは、各フラッシュメモリにおける情報、すなわちボリュームテーブル２０００の各フラッシュメモリの部分、フラッシュメモリセクタテーブル３０００の各フラッシュメモリの部分である。パリティグループ２１００の情報は、パリティグループの代表のフラッシュメモリにだけ情報を格納しても良いし、関連するフラッシュメモリ全部に格納しても良い。そして、ステップ６００５に進む。
【００５０】
ＣＰＵ１２０２は、ステップ６００５にて、フラッシュメモリをオフライン化する。すなわちフラッシュメモリを取り外し可能な状態とする。
【００５１】
上記ステップ終了後、例えばユーザがフラッシュメモリを取り外し、保管するなどしておくことになる。
【００５２】
図７は、図６のフローチャートの処理終了後、フラッシュメモリセクタテーブル３０００（図３参照）の変更の状態を示す一例である。
【００５３】
フラッシュメモリ番号１のフラッシュメモリの管理領域は、図４のフラッシュメモリ管理領域テーブル４０００の例に従うと、管理領域開始物理セクタが０、管理領域最終物理セクタが１００である。
【００５４】
上記物理セクタは、図２のボリュームテーブル２０００と図３のフラッシュメモリセクタテーブルの例に従えば、フラッシュメモリ番号１のセクタ番号０の領域はボリューム番号１のデータ領域として使用されていることがわかる。よってこの領域のデータは別のセクタに移動する必要がある。またボリュームテーブル２０００から、論理セクタは０から１９９９までの領域を使用しており、それ以外は使用していないことを表している。よって、論理セクタ０から１９９９以外の領域にデータを移動することになる。そのとき、書き込みが少ないものから選ぶという条件を用いれば、例えば論理アドレス５０００の書き込み寿命が０％なので、そこに移動するようにする。そして、論理セクタの番号を交換することとなる。同様にセクタ番号１から１０００までの領域のデータを別のセクタに移動する。そして、物理セクタ０から１０００までのアドレスを管理領域として、この領域に管理情報を格納することになる。
【００５５】
図８は、実施例１における、オフラインであるフラッシュメモリのオンライン化を行なう処理のフローチャートの一例である。
【００５６】
図８においては、ストレージ１２００のストレージオフラインオンライン実行プログラム１２０９によりＣＰＵ１２０２が処理する。またオンライン化するフラッシュメモリがすでにストレージ１２００に装填されているものとする。
【００５７】
ＣＰＵ１２０２は、管理計算機１０００のオフラインオンライン指示プログラム１００５を動作させるＣＰＵ１００１より、オンライン化指示を受け付ける（ステップ８０００）。オンライン化の指示は、例えば図５のような画面を用意して、ユーザに指定させる。
【００５８】
次に、ＣＰＵ１２０２は、オンライン化するフラッシュメモリの管理領域にある管理情報をコントローラで管理できるように読み出す（ステップ８００１）。管理領域の読み出し位置は、図４で示したフラッシュメモリ管理領域テーブル４０００と同様の情報がフラッシュメモリに記憶されており、この情報を得ることで、読み出し位置の把握が可能である。この情報を読み取ることで、実際にフラッシュメモリにあるデータを読み出すことも可能となる。そして、ステップ８００２に進む。
【００５９】
次に、ＣＰＵ１２０２は、ステップ８００２にて、ステップ８００１で取得した管理情報から、オンライン化するフラッシュメモリが正しい構成となっているか確認する。例えば、フラッシュメモリがＲＡＩＤ構成である場合には、ＲＡＩＤ構成に基づいたフラッシュメモリがないと、フラッシュメモリに格納されたデータを読み出すことができない。具体的にはフラッシュメモリの管理情報として格納されたパリティグループテーブル２１００の記憶媒体情報２１０２から、オンライン化するフラッシュメモリが記憶媒体情報２１０２の番号を持つものがあるかどうかを調べる。そして、フラッシュメモリが正しい構成となっていれば、ステップ８００３に進み、フラッシュメモリが正しい構成となっていなければ、ステップ８００５に進む。
【００６０】
ＣＰＵ１２０２は、ステップ８００３にて、オンライン化を行なう。すなわち、ホスト計算機１１００からのデータアクセスを受け付ける。ただし、図６のフローチャートの説明でも示したように、管理領域がある場合は、ストレージ構成プログラム１２０６を動作させるＣＰＵ１２０２は、その部分への書き込みは禁止され、また読み出しもできないようにしてもよい。そして、ステップ８００４に進む。
【００６１】
ＣＰＵ１２０２は、ステップ８００４にて、管理領域のデータを開放する。すなわち、管理領域もデータ領域として扱えるようにする。実際には、ストレージ構成プログラム１２０６を動作させるＣＰＵ１２０２に、管理領域の書き込み、読み出しを許可する。ただし、管理領域のデータを残したまま、書き込みを許可すると、不正アクセスにより、管理領域のデータが読み出せる可能性もあるので、管理領域を開放する前に、シュレッディング操作をストレージ構成プログラム１２０６が行ない、データを無効なものにしてから開放してもよい。そして、処理を終了する。
【００６２】
ＣＰＵ１２０２は、ステップ８００５にて、フラッシュメモリが正しい構成となっていないというエラーを、図５のオフライン・オンライン指示画面５０００を使用して設定したユーザに、管理計算機１０００のオフラインオンライン指示プログラム１００５を介して通知して処理を終了する。エラーの表示は、画面にてその通知を表示する、またはメールによるユーザへの通知でも良い。またエラーとして、正しい記憶媒体の構成、すなわちオンライン化するのに必要なフラッシュメモリの情報を提示しても良い。この情報はパリティグループ２１００の記憶媒体番号の２１０２の情報を提示することになる。またこの提示においては、現在オンライン化可能となっている、例えば装填されているフラッシュメモリと、装填されていないフラッシュメモリを切り分けて表示しても良い。
【００６３】
よって、図６のフローチャートの処理と図８のフローチャートの処理により、オフライン化したフラッシュメモリをオンライン化したときに、そのままフラッシュメモリに格納されたデータをホスト計算機１１００や管理計算機１０００から使用することができ、フラッシュメモリの寿命情報もそのまま引き継いで管理することが可能となる。
【００６４】
実施例１において、ボリュームのオフライン、オンラインを管理し、フラッシュメモリにあるすべてのボリュームの状態がオフラインになれば、フラッシュメモリをオフライン化して、取り外しができるような状態にしてもよい。上記のような処理をするかユーザに選択させても良い。
【００６５】
また、実施例１において、ＲＡＩＤでなくとも、フラッシュ単体をボリュームとして、またフラッシュ単体から一部を切り出してボリュームとして定義してボリュームを扱ってもよい。実施例１と同様に管理が可能である。
【００６６】
また、実施例１において、フラッシュディスクという形態ではスロットという複数のフラッシュメモリの集合を単位で扱う場合がある。前記フラッシュメモリ内のセクタ間のデータ移動だけではなく、スロットの範囲でセクタを管理し、必要に応じてフラッシュメモリのデータを移動させることも同様に可能であり、スロット単位での取り外しを行なうことも可能である。
【００６７】
また、実施例１において、フラッシュメモリの管理領域として物理セクタの配置を固定していたが、物理セクタの配置に依存せず、あるセクタに管理領域のポインタと範囲のみを管理し、そのポインタが指す実際の管理領域はどこでもよいとしてもよい。
【００６８】
また、実施例１において、セクタの選択方式は、前記第一の実施形態と同様に書き込み回数の少ないものを選択してもよい。もしくは、管理領域への書き込み回数は少ないと判断し、書き込み回数が多いもの、特に書き込み回数において閾値を管理していて、閾値は超えたが、まだ書き込める余裕のあるセクタを選んでもよい。
【００６９】
実施例２を説明する。図９は、本発明の第二の実施形態における計算機システムの構成を示す図である。図１の実施例１と類似した計算機システムの構成であるが、ホスト計算機１１００のメモリ１１０４に管理計算機１０００のメモリ１００４にあったオフラインオンライン指示プログラム１００５があるところが差分となる。オフラインオンライン指示プログラム１００５と業務プログラム１１０５と連携するなどして、オフライン、オンライン指示を業務プログラム１１０５の判断で行ない、業務プログラム１１０５がどの判断をもとに、オフラインオンライン指示プログラム１００５にオフライン、オンラインの指示を行なうことで、ユーザや管理計算機１０００の介在無くオフライン、オンラインの指示を行なうことが可能となる。
【００７０】
また、ボリューム番号が多く必要な場合に、ボリューム番号を入れ替える、ボリュームの稼動を一旦停止するような場合には、ボリューム自体をオフライン化することとなる。その指示も業務プログラム１１０５の判断をオフラインオンライン指示プログラム１００５が受け取り、その指示をストレージ１２００が受け取り、その後各フラッシュメモリにおいて、関連するすべてのボリュームがオフライン化したら、フラッシュメモリもオフライン化するとし、図６のフローチャートのような処理でフラッシュメモリをオフライン化してもよい。
【００７１】
以上実施例で本発明を説明したが、本発明の他の実施形態１は、記憶領域を構成するフラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステムにおいて、オフラインのフラッシュメモリをオンライン化する場合に、前記フラッシュメモリの管理領域から管理情報を読み出し、前記フラッシュメモリをオンライン化し、前記フラッシュメモリの管理領域をデータ領域として開放するストレージシステムである。
【００７２】
本発明の他の実施形態２は、本発明のストレージシステムにおいて、前記既存データの移動先として、書き込み寿命が高いセクタを選択するストレージシステムである。
【００７３】
本発明の他の実施形態３は、本発明のストレージシステムにおいて、前記フラッシュメモリをオンライン化するときに、前記管理領域分の領域を前記フラッシュメモリで確保するように、該フラッシュメモリのボリューム割り当てを管理するストレージシステムである。
【００７４】
本発明の他の実施形態４は、本発明又は実施形態１のストレージシステムにおいて、前記フラッシュメモリの管理情報は、該フラッシュメモリの書き込み寿命であるストレージシステムである。
【００７５】
本発明の他の実施形態５は、本発明又は実施形態１のストレージシステムにおいて、前記フラッシュメモリの管理情報は、該フラッシュメモリのボリューム情報であるストレージシステムである。
【００７６】
本発明の他の実施形態６は、本発明又は実施形態１のストレージシステムにおいて、前記フラッシュメモリの管理情報は、複数のフラッシュメモリで構成されるＲＡＩＤ構成情報を含むボリューム情報であるストレージシステムである。
【００７７】
本発明の他の実施形態１は、実施形態１のストレージシステムにおいて、オフラインのフラッシュメモリをオンライン化する場合に、読み出した管理情報を基に正しくＲＡＩＤ構成を組んでいるか確認し、正しくＲＡＩＤ構成を組めなければエラーを通知し、正しいＲＡＩＤ構成を組めるフラッシュメモリを提示するストレージシステムである。
【００７８】
本発明の他の実施形態８は、実施形態１のストレージシステムにおいて、前記フラッシュメモリの管理領域のデータを無効にしてから、データ領域として開放するストレージシステムである。
【００７９】
本発明の他の実施形態９は、記憶領域を構成するフラッシュメモリを有し、前記フラッシュメモリをオフライン及びオンラインとして扱う機能を備え、オンラインのフラッシュメモリの管理情報を記憶し管理するストレージシステムにおける記憶管理方法において、オンラインのフラッシュメモリの一部又は全部をオフライン化する場合に、該フラッシュメモリにおけるオフライン時の管理領域とする領域の既存データを管理領域以外の領域に移動して管理領域を作成することと、作成した管理領域に前記フラッシュメモリの管理情報を書き出すことと、前記フラッシュメモリをオフライン化することを含む記憶管理方法である。
【００８０】
本発明の他の実施形態１０は、実施形態９の記憶管理方法において、オフラインのフラッシュメモリをオンライン化する場合に、前記フラッシュメモリの管理領域から管理情報を読み出すことと、前記フラッシュメモリをオンライン化することと、前記フラッシュメモリの管理領域をデータ領域として開放することを含む記憶管理方法である。
【図面の簡単な説明】
【００８１】
【図１】実施例１における、計算機システムの構成の一例を示す図。
【図２】実施例１のストレージシステムで用いられるボリュームテーブル等の一例を示す図。
【図３】実施例１のストレージシステムで用いられるフラッシュメモリセクタテーブル等の一例を示す図。
【図４】実施例１のストレージシステムで用いられるフラッシュメモリ管理領域テーブルの一例を示す図。
【図５】実施例１のストレージシステムで用いられる設定画面の一例を示す図。
【図６】実施例１のストレージシステムにおけるフラッシュメモリオフライン化のフローチャートの一例を示す図。
【図７】実施例１のストレージシステムで用いられるフラッシュメモリセクタテーブルの一例を示す図。
【図８】実施例１のストレージシステムにおけるフラッシュメモリオンライン化のフローチャートの一例を示す図。
【図９】実施例２における、計算機システムの構成の一例を示す図。
【符号の説明】
【００８２】
１０００  管理計算機
１００１  ＣＰＵ
１００２  Ｉ／Ｆ
１００３  入出力装置
１００４  メモリ
１００５  オフラインオンライン指示プログラム
１１００  ホスト計算機
１１０１  ＣＰＵ
１１０２  Ｉ／Ｆ
１１０３  入出力装置
１１０４  メモリ
１１０５  業務プログラム
１２００  ストレージ
１２０１  コントローラ
１２０２  ＣＰＵ
１２０３  キャッシュ
１２０４  メモリ
１２０５  Ｉ／Ｆ
１２０６  ストレージ構成プログラム
１２０７  ストレージアクセス管理プログラム
１２０８  ストレージ構成情報
１２０９  ストレージオフラインオンライン実行プログラム
１３００  フラッシュメモリ
１３０１  ボリューム
【図１】
2008192061.tif 000003
【図２】
2008192061.tif 000004
【図３】
2008192061.tif 000005
【図４】
2008192061.tif 000006
【図５】
2008192061.tif 000007
【図６】
2008192061.tif 000008
【図７】
2008192061.tif 000009
【図８】
2008192061.tif 000010
【図９】
2008192061.tif 000011