ストレージシステム
【解決課題】随時に設定できるWORM機能を記憶デバイス自体に持たせたストレージシステムを提供する。
【解決手段】記憶デバイス3と、記憶デバイスと情報処理装置6との間のデータ交換を制御するコントローラ4と、を備えるストレージシステムである。記憶デバイス3は、記憶セル42と、書き込み制御線51Aにヒューズを備え、コントローラは、ヒューズに電圧を加えてこれを溶断することにより記憶セルを不可逆的にWORM化する。
【解決手段】記憶デバイス3と、記憶デバイスと情報処理装置6との間のデータ交換を制御するコントローラ4と、を備えるストレージシステムである。記憶デバイス3は、記憶セル42と、書き込み制御線51Aにヒューズを備え、コントローラは、ヒューズに電圧を加えてこれを溶断することにより記憶セルを不可逆的にWORM化する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージシステムに係わり、特に、記憶デバイスとしてフラッシュメモリなどの半導体メモリを使用したストレージシステムに関するものである。
【背景技術】
【0002】
記憶制御システムは、ストレージシステムと、このストレージシステムに対して上位装置となる情報処理装置と、を備えている。ストレージシステムは、ハードディスクドライブ等の記憶デバイスの複数をアレイ状に収容することにより、情報処理装置に十分な記憶容量を提供する。情報処理装置はストレージシステムにSANなどを介して接続し、記憶デバイスにデータを書き込み、かつ書き込んだデータを記憶デバイスから読み込む。ストレージシステムは記憶デバイスと情報処理装置との間のデータの交換を制御する制御装置を備えている。
【0003】
ところで、ハードディスクドライブは随時データの書き換えが可能であるために、データが改竄されるおそれがある。そこで、データの書き換えを制限する機能をストレージシステムに持たせた従来技術が種々存在する。データの書き換えを制限する機能は、WORM(Write Once Read Many)と呼ばれる。
【0004】
例えば、特開2005−267602号公報には、ストレージシステムのボリュームに保存されるデータを保護することが可能なストレージシステムが開示されている。ストレージシステムはボリュームが表現されるストレージ媒体、ストレージシステムを制御するディスクコントローラ、及び次回書き込みポインタを使用してボリュームの複数の領域のどれが書き込み保護されているか表示する複数のエントリを有するWORM(追記型)構成テーブルを持つことにより、保護される領域を管理することによりWORM機能を実現する。WORM構成テーブルのエントリは、それぞれ先頭オフセットと末尾オフセットを使用して定義されるボリュームの書き込み保護領域を表示する。
【0005】
また、特開2005−284816号公報には、キャッシュを含むストレージシステム全体としてWORMを保証したシステムが記載されている。ストレージシステムは、計算機から受信したライトデータを格納する記憶デバイスと、キャッシュメモリと、記憶デバイスへのデータの入出力を制御する制御部とを有する。制御部は、計算機から受信したライトコマンドで指定されるライト対象の記憶領域について、既にライトデータがストレージシステムに書き込まれているか否かを判断し、ライト対象の記憶領域についてライトデータが未だ書き込まれていない場合に、前記ライトコマンドに従ってライトデータを受信して、ライトデータをキャッシュメモリに格納する。
【0006】
さらに、特開2005−338945号公報には、WORM機能を利用可能にしたストレージシステムが開示されている。ストレージシステムは、計算機からのデータの書き込み要求を受領すると、書込禁止情報が示す内容に基づいて計算機から書き込みデータの書き込み可否を判定する。書き込み可能である場合は、送信されたデータの保証コードを生成し、データが格納される領域が書込不可であることを示す書込禁止情報を生成し、生成された書込禁止情報を前記保証コードに格納して、計算機から受信したデータが格納される領域に、書込禁止情報を格納した保証コードを付与し、書込禁止情報を格納した保証コードを付与したデータを、キャッシュメモリ、及び/又は、ディスク装置に格納する。計算機からの書き込みデータが書き込み不可能である場合には、計算機に対してその旨を送信する。
【特許文献1】特開2005−267602号公報
【特許文献2】特開2005−284816号公報
【特許文献3】特開2005−338945号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
既述した従来のストレージシステムは、記憶デバイス自体がWORM機能を持ったものではなく、ストレージベンダによって提供される管理用のソフトウエアに基づく処理によって、ストレージシステムにWORM機能を持たせている。したがって、従来のストレージシステムは、CD−RやDVD−Rのように、記録デバイスに対するデータの改竄を物理的に防止できるようにすることまでは配慮されていない。
【0008】
ストレージシステムは情報処理装置から発行されるデータを記録デバイスに書き込み後、このデータを頻繁に更新する必要性を備えていることから、追記型の記憶デバイスだけでストレージリソースを構成することができないことは当然であるが、追記型の記憶デバイスと随時書き換え可能な記憶デバイスとを併用し、改竄を避けるべきデータを追記型の記憶デバイスに移動するとしても、ストレージリソースに追記型の記憶デバイスを利用することは効率的でない。
【0009】
本発明は、既述の問題を解決するために、管理者が随時に設定できるWORM機能を記憶デバイス自体に持たせるようにしたストレージシステムを提供することを目的とするものである。
【課題を解決するための手段】
【0010】
本発明は、情報処理装置から送られたデータを記憶デバイスに書き込むことができるが、記憶デバイスに新たなデータの書き込みや書き込まれたデータの更新を禁止した以降は、記憶デバイスへのデータの書き込み制限を記憶デバイス自体に物理的かつ不可逆的に設定できるようにした、ストレージシステムであることを特徴とするものである。
【0011】
本発明の第1の形態は、記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御するコントローラと、を備えるストレージシステムにおいて、前記記憶デバイスは、記憶領域と、当該記憶領域をWORM化出来る素子とを備え、前記コントローラは、前記記憶デバイスに前記素子を用いて前記記憶領域を不可逆的にWORM化する制御信号を出力する、ことを特徴とするものである。
【0012】
本発明の第2の形態は、記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御する第1のコントローラと、を備えるストレージシステムにおいて、前記記憶デバイスは、記憶領域と、当該記憶領域へ前記データを書き込む動作と、前記記憶領域に書き込まれた前記データを当該記憶領域から読み出す動作と、を制御する制御回路と、前記制御回路に、前記データの書き込みを実行させるための第1の制御信号を第1の制御線を介して出力し、前記データの読み込みを実行させるための第2の制御信号を第2の制御線を介して出力する第2のコントローラと、前記第1の制御線と前記第2の制御線との少なくとも第1の制御線の途中にあり、当該制御線を切断する切断素子と、当該切断素子を駆動させる駆動回路と、を備え、前記第2のコントローラは、前記第1のコントローラからの命令に基づいて、前記駆動回路に前記切断素子で前記制御線を切断するための第3の制御信号を出力する、ことを特徴とするものである。
【発明の効果】
【0013】
本発明によれば、管理者が随時に設定できるWORM機能を記憶デバイス自体に持たせるようにしたストレージシステムを提供することができる。
【発明を実施するための最良の形態】
【0014】
図1は、本発明に係わるストレージシステムを備えた記憶制御システムを示している。この記憶制御システムは、上位装置としての情報処理計算機6と、ストレージシステム1と、管理計算機8とから構成されている。情報処理装置は、ユーザのクライアント計算機に対してサーバあるいはホストとして働くものであり、ユーザが望む業務のアプリケーションをクライアント計算機に対して提供する。
【0015】
ストレージシステムステム1は、複数の記憶デバイス(記憶装置)3と、この記憶デバイスと情報処理計算機6との間のデータの交換に係わる各種制御処理を実行する記憶制御装置4と、を備えている。記憶制御装置4はプロセッサ4Bと、このマイクロプロセッサが実行するマイクロプログラムを格納する不揮発メモリ4Dと、マイクロプロセッサが記憶制御処理を実行する上で参照する制御テーブルを格納した制御メモリ4Cと、を備えている。4Eは記憶装3置に書き込まれるデータの一時記憶領域であるキャッシュメモリである。
【0016】
4Hは制御装置4の内部バスであり、情報処理計算機6のI/F(6A)はバス4HのI/F(4A)に接続している。管理計算機8のI/F(8A)はバス4HのI/F(4G)に接続されている。バス4HのI/F(4F)は複数の記憶デバイス3に接続している。記憶制御装置1は請求項記載の第1のコントローラに該当する。管理計算機8は制御メモリへの制御テーブルの設定等記憶制御処理の一端を担っている。したがって、管理計算機も請求項1の第1のコントローラに該当し得る。記憶デバイスは記憶素子としての複数のフラッシュメモリチップC1,C2,・・・・Cnと、各素子を制御するコントローラ(フラッシュメモリコントローラ)2を備えている。フラッシュメモリコントローラが請求項記載の第2のコントローラに該当する。
【0017】
記憶デバイスの詳細な構成を図2に示す。フラッシュメモリチップC1(C2)は、WORM機能を持った記憶素子である。このWORM機能は、フラッシュメモリコントローラ2とフラッシュメモリチップとの間の書き込み制御線の途中にヒューズ50があること、そして、ヒューズにヒューズが溶断するに足る程度の電圧を供給するための高圧回路があること、ヒューズが切断された後はフラッシュメモリコントローラ2から書き込み制御信号がフラッシュメモリチップに送られないようにしたことにより達成される。
【0018】
フラッシュメモリチップはアドレスをラッチするアドレスラッチ回路40と、指定されたアドレスにデータを記憶する記憶領域である記憶セル42と、データをラッチするデータラッチ回路44と、アドレスラッチ回路40とデータラッチ回路44とを制御する制御回路46と、記憶セルの書き込みデータを消去する消去回路48と、制御回路46への書き込み制御線51Aの途中に設けられた第1のヒューズ50と、読み込み制御線52Aの途中に設けられた第2のヒューズ52と、を備えて構成されている。これらヒューズはフラッシュメモリチップ外にあっても良い。
【0019】
フラッシュメモリコントローラ2は、プロセッサ20と、プロセッサ20が実行するマイクロプログラムが格納された不揮発メモリ14と、プロセッサ20がマイクロプルグラムを実行する上で参照する制御テーブル等が格納される制御メモリ16と、ヒューズ50,52に高電圧を付加することを制御する制御信号出力用の高電圧制御用I/F22と、フラッシュメモリチップに各種制御信号を出力するためのI/F18と、記憶制御装置4のI/F4Fと接続するI/F10とを備えている。
【0020】
フラッシュメモリI/F18からアドレスラッチ回路40にはアドレス信号線32が設けられている。フラッシュメモリコントローラ2のプロセッサ20は、記憶セルのアドレスを指定するアドレス信号をアドレス信号線32からアドレスラッチ回路40に出力する。
【0021】
符号30はデータ線である。データ線30は、フラッシュメモリI/Fから出てデータラッチ回路44に接続されている。アドレスラッチ回路40はアドレス線32から送られたアドレスをラッチする。データラッチ回路はデータ線30から送られたデータ、或いは記憶セルから読み出されたデータをラッチする。
【0022】
制御回路46は、アドレスラッチ回路40及びデータラッチ回路44を制御し、ラッチされたアドレスに対応するデータを記憶セル42に書き込み、或いはラッチされたアドレスに格納されたデータを記憶セルから読み出す。
【0023】
符号24は、フラッシュメモリコントローラ2がフラッシュメモリチップ(C1,C2・・・・)を選択する制御信号を出力するための制御線である。プロセッサ20は、複数あるフラッシュメモリチップから、記憶制御装置4のプロセッサ4Bからの指示を受けて、データの入出力対象となったチップを選択して当該チップを活性化する。プロセッサ20は、選択されたチップの制御回路46に、チップ選択信号(/CE:Chip Enable)をフラッシュメモリI/F18を介して出力する。
【0024】
符号51Aは、データ書き込み制御信号(/WE:Write Enable)を制御回路46に出力する制御線である。この書き込み制御信号線51Aには、フラッシュメモリI/F18からの配線26が接続されている。プロセッサ20は配線26を介して制御線51Aに書き込み制御信号を出力する。
【0025】
符号51Bは、データ読み込み制御信号(/OE:Output Enable )を制御回路46に出力する制御線である。この書き込み制御信号線51Bには、フラッシュメモリI/F18からの配線28が接続されている。プロセッサ20は配線28を介して制御線51Bに読み込み制御信号を出力する。
【0026】
SW3は信号線26と書き込み制御信号線51Aとの間に設けられたスイッチである。SW4は信号線28と読み込み制御信号線51Bとの間に設けられたスイッチである。書き込み制御信号線51Aは高圧回路からの出力線38に接続する第1の高電圧線53Aに接続している。第1の高電圧線53Aと出力線30との間にはスイッチSW1があり、スイッチSW1は制御線34に接続されている。制御線34とスイッチSW3との間には第1のバイパス線55Aがあり、その途中には第1のインバータ54がある。
【0027】
読み込み制御線51Bは高圧回路からの出力線38に接続する第2の高電圧線53Bに接続している。第1の高電圧線53Bと出力線30との間にはスイッチSW2があり、スイッチSW2は制御線36に接続されている。制御線36とスイッチSW4との間には第2のバイパス線55Bがあり、その途中には第2のインバータ56がある。
【0028】
書き込み制御信号線51Aと制御回路との間には、第1のヒューズ50があり、読み込み制御信号線51Bと制御回路46との間には第2のヒューズ52が設けられている。ヒューズは請求項に記載された切断素子の一例である。ヒューズは高圧回路からの高電圧を受けると溶断し、これにより各制御線は非可逆的、物理的に切断させる。プロセッサ20はI/F22を介してスイッチの開閉を制御する制御信号をスイッチSW1とSW2とにそれぞれ出力する。
【0029】
次に、フラッシュメモリチップへのデータの書き込み時及びフラッシュメモリチップからのデータの読み込み時における、図2の回路の動作について説明する。この時の各スイッチの状態は次のとおりである。プロセッサ20は制御線34及び36にスイッチSW1とSW2とを開放するための「L」を各スイッチのゲートに出力する。これにより、両スイッチは開放され、電圧回路からの電圧がヒューズ50と52に印加されない。電圧としてヒューズが溶断される程度の電圧であれば足りる。この電圧は制御信号の電圧レベルと比較して高いために、高電圧として記述した。
【0030】
一方、スイッチSW3へはインバータ54によって「H」が供給され、そしてSW4へはインバータ56によって「H」が供給される。したがって、SW3及びSW4は閉じられている。これにより、フラッシュメモリコントローラ2は制御回路46へ書き込み制御信号(/WE)及び読み込み制御信号(/OE)をそれぞれ出力することができる。この時、SW1及びSW2が開放されているために、高電圧がフラッシュメモリコントローラ2に印加されないようになっている。
【0031】
フラッシュメモリコントローラ2は、記憶制御装置4のプロセッサ4Bのデータ書き込み又は読み込み命令を受けて、命令の対象となっているフラッシュメモリチップを選択する。フラッシュメモリコントローラ2は選択されたチップの制御回路46にチップ選択信号(/CE)を出力する。次いで、プロセッサ20が書き込み制御信号(/WE)を配線26、スイッチSW3、書き込み制御線51A、及びヒューズ50を介して制御回路46に出力すると、制御回路46は、アドレスラッチ回路40でラッチされた、前記記憶セルのアドレスに、データラッチ回路44でラッチされたデータを書き込む。
【0032】
プロセッサ4Bは、計算機6から送られたデータを格納するキャッシュメモリ4Eからこのデータを読み、これをフラッシュメモリコントローラ2に送る。フラッシュメモリコントローラ2のプロセッサ20は制御回路46にチップ選択信号を送信して特定のチップを選択し、このチップのデータラッチ回路44にデータをラッチする。
【0033】
プロセッサ20が読み込み制御信号(/OE)を配線26、スイッチSW4、読み込み制御線51B、及びヒューズ52を介して制御回路46に出力すると、制御回路46は、アドレスラッチ回路40でラッチされたアドレスに格納されたデータを記憶セル42から読み出してデータラッチ回路44でラッチし、ラッチされたデータをフラッシュメモリI/F18を介してプロセッサ20に出力する。プロセッサ20はこのデータを記憶制御装置4に送る。プロセッサ4Bはキャッシュメモリ4Eに書き込む。計算機6からデータ読み込み要求を受けたプロセッサ4Bは、キャッシュメモリ4Eからデータを読み込んで、データを計算機6に出力する。
【0034】
フラッシュメモリコントローラ2が記憶制御装置4からの命令に基づいて、フラッシュメモリチップをWORM化する際の、図2に示す回路の動作について説明する。フラッシュメモリチップWORM化するとは、書き込み制御線51Aの途中にあるヒューズ50を溶断して、記憶セル42にデータを書き込むこと、また、記憶セル42の格納データを更新することを禁止することをいう。なお、読み込み制御線51Bの途中にあるヒューズ52を溶断することにより、記憶セル42からのデータの読み込みをできないようにすることができる。このことは、記憶セルのデータを破棄(シュレッディング)することに等しい。WORM化されていないフラッシュメモリチップに対する、データのシュレッディングは、記憶セルの全メモリ領域に所定値を更新記憶させれば良い。すなわち、ヒューズ52に対する溶断は、通常ヒューズ50が溶断されていないフラッシュメモリチップに対して行う。
【0035】
ストレージシステム1がフラッシュメモリチップをWORM化する場合、プロセッサ20は制御線34に「H」を出力する。この結果、スイッチSW1は閉じ、一方、インバータ54によってスイッチスイッチSW3には「L」が供給されるため、スイッチSW3は開く。書き込み制御線51Aは第1の高電圧線53Aを介して高圧回路に接続する。
【0036】
ヒューズ50に高電圧が加えられてヒューズ50が溶断する。その後、プロセッサ20が制御線34に「L」を出力すると、スイッチSW1は開き、スイッチSW3は閉じる。以後、プロセッサ20が書き込み制御信号を書き込み制御線51Aに出力しても、ヒューズ50は溶断しているために、書き込み制御信号は制御回路46に到達しない。したがって、フラッシュメモリコントローラ2はフラッシュメモリチップにデータを書き込むことができない。すなわち、フラッシュメモリチップがWORM化されたことになる。フラッシュメモリコントローラは各フラッシュメモリチップ毎にフラッシュメモリチップをWORM化することができる。
【0037】
フラッシュメモリコントローラ2が、WORM化されたフラッシュメモリチップに対して、記憶制御装置4からの命令に基づいて、フラッシュメモリチップをシュレッディング、すなわち、フラッシュメモリチップからデータを読み出すことが出来ないようにする場合、プロセッサ20は制御線36に「H」を出力する。すると、スイッチSW2は閉じ、スイッチSW4は開く。読み込み制御線51Bは第2の高電圧線53Bを介して高圧回路に接続し、ヒューズ52に高電圧が印加してヒューズ52が溶断する。以後、スイッチSW2が開き、スイッチSW4が閉じて、プロセッサ20が読み込み制御信号を読み込み制御線51Bに出力しても読み込み制御信号は制御回路46に到達しない。したがって、フラッシュメモリコントローラ2はフラッシュメモリチップからデータを読み出すことができない。
【0038】
図3はフラッシュメモリコントローラ2がヒューズの切断を行うフローチャートを示している。フラッシュメモリコントローラ2のプロセッサ20が記憶制御装置4のプロセッサ4Bから特定のフラッシュメモリチップに対する要求を受け付けると(10)、この要求がフラッシュメモリチップをWORM化する要求か、すなわち、フラッシュメモリコントローラをRead Onlyにするための要求かを判定する(12)。フラッシュメモリコントローラがこの判定を肯定した場合は、書き込み制御線(WE線)のヒューズ50に高電圧を印加してヒューズを溶断する。一方、フラッシュメモリコントローラが前記判定を否定すると、読み込み制御線(OE線)のヒューズ52を切断する。
【0039】
図20は図2のフラッシュメモリチップC1を抜き出した、フラッシュメモリチップブロック図であり、図19はフラッシュメモリチップへのデータの書き込み動作を示すタイミングチャートである。図19のタイミングチャートを、図20を利用して説明する。
【0040】
図19において、Addr inとはフラッシュメモリチップにアドレスが入力されてラッチされた状態にあることを示し、Data inとはフラッシュメモリチップにデータが入力されてラッチされた状態にあることを示している。フラッシュメモリコントローラ2がチップ選択信号(/CE)をHigh(H)からLow(L)にし、書き込み制御信号(/WE)をHからLにするとフラッシュメモリチップの記憶セル42にデータの書き込みが行われる。しかしながら、ヒューズ50が切断されていると、/WE´がLにならないために記憶セル42にデータの書き込みが行われない。
【0041】
読み込み制御信号(/OE)がHからLになり、/WEがLからHになると、フラッシュメモリコントローラは記憶セルに書き込まれたデータを読み出して(Data out)してベリファイを実行するが、既述のとおりデータが書き込まれなかったためにフラッシュメモリコントローラ2は書き込みエラーを判定し、このエラーメッセージを記憶制御装置4に返す。
【0042】
複数の記憶デバイス3が情報処理計算機6に対して提供する記憶領域は仮想化されている。計算機6は仮想化された論理ボリュームを認識して、この論理ボリュームに割り当てられた物理領域にデータを書き込み、そしてこの物理領域からデータを読み込む。
【0043】
なお、スイッチSW1,SW2、配線53A,53B、そして、高圧回路(電圧回路)によって、請求項記載の切断素子(ヒューズ)に対する駆動回路が形成される。
【0044】
図4は、論理ボリュームの内容を規定した管理テーブルである。記憶領域として掲げられたLDEV1乃至LDEV5はそれぞれ論理ボリュームである。この論理ボリュームは一つの記憶デバイスの記憶領域、又は複数の記憶デバイスの記憶領域に跨って設定されている。PG1乃至PG3はパリティグループである。パリティグループには、一つ又は複数のLDEVが含まれる。パリティグループは、図5に示すように、論理ボリュームのRAIDレベルと記憶容量を定義した記憶領域である。ストレージシステム1の管理者はパリティグループを定義し、このパリティグループの範囲内で所望のLDEVを作成する。
【0045】
図4において、RW(Read Write)はLDEVに対してデータの書き込み及びLDEVからデータの読み込みが可能であることを示している。容量とはLDEVに割り当てられた記憶領域の全記憶容量である。図4及び図5の管理テーブルは管理計算機8によって記憶制御装置4の制御メモリ4Cに設定される。記憶制御装置4はLDEVに対してWORMを設定できる。LDEV4は、WORMが設定されてR(Read Only)の属性に成った論理ボリュームである。記憶デバイス3として、ヒューズ50と52とを備えるフラッシュメモリチップからなる記憶デバイスに、ヒューズ50と52とを備えないフラッシュメモリチップからなる記憶デバイスを併用しても良い。前者はWORM機能を備えた記憶デバイスであり、後者はWORM機能を備えない記憶デバイスである。WORM化は記憶デバイスの単位で行われる。即ち、ある一つの記憶デバイスに属するフラッシュメモリチップの全てに対してWORM化が行われる。
【0046】
LDEVに対してWORMを設定できるようにすると、LDEVの記憶領域を有するがWORM機能を有しない記憶デバイスから、WORM機能を有する記憶デバイスにこのLDEVの記憶領域を移動する必要がある。この移動の種類には、LDEVの全データを他の記憶デバイスに移動すること、LDEVの一部のデータを一つの記憶デバイスから他の記憶デバイスに移動すること、がある。移動先の記憶デバイスは既述のWORM機能を備えている。
【0047】
例えば、図6に示すように、LDEVが、WORM機能を持たない複数の記憶デバイス、すなわち、既述のヒューズを備えず常時データの書き込み及びデータの読み込みとも可能な記憶デバイス(3a,3b,3c)に設定されている場合には、記憶制御装置4はLDEVを、それぞれWORM機能を持った記憶デバイス(3A,3B,3C)へ移動する。
【0048】
一方、図7のように、複数の記憶デバイス3−1,3−2,3−3にWORM対象の記憶領域LDEV10とWORM対象外の記憶領域LDEV12,14が設定されている場合、記憶制御装置4は両者の容量を比較する。WORM対象でない記憶領域12,14の合計の記憶容量がWORM対象の記憶領域10の記憶領域より大きい場合には、記憶制御装置4は、WORM対象の記憶領域10を、他のWORM機能を持った複数の記憶デバイス3−4,3−5,3−6へ移動する。
【0049】
さらに、図8のように、WORM対象の記憶領域10の記憶容量がWORM対象でない記憶領域12の記憶容量より大きい場合には、記憶制御装置4はWORM対象でない記憶領域12を他の記憶デバイス3−4,3−5,3−6へ移動する。
【0050】
WORM化する記憶デバイスを極力少なくするためにLDEVのデータを一つの記憶デバイスから他の記憶デバイスへ移動させる時、移動後のLDEVのRAIDレベルを移動前のRAIDレベルより下げることにより、WORM化する記憶デバイスが少なくて済む場合がある。例えば、LDEVのRAIDレベルをRAID1からRAID無しにすると、LDEVのミラーとなる記憶領域が必要とならずに、ミラーを備える記憶領域をWORM化する必要がない。
【0051】
図9は記憶デバイスを管理する管理テーブルの一例である。PDEV1乃至PDEV11はそれぞれ別個の記憶デバイス3に対応している。属性は記憶デバイスに対するデータの書き込み・記憶デバイスからのデータの読み込みの可否に関する性質である。RWは、計算機6がデータ書き込み(Write)及びデータ読み込み(Read)とも可能であることを示している。Rはデータ読み込みのみ(Read Only)が可能であることを示している。Sはデータ書き込み・データ読み込みの両方が不可能であること、すなわち、記憶デバイスが破棄(Shredding)されたことを示している。
【0052】
属性変更日は、属性が変更された日時を示している。保持期限は記憶デバイスがデータを正しく保持できる期限を示している。例えば、PDEV5はWORM化されて、属性がRWからRに属性が変更されている。この属性が変更されたのは、2006年7月12日である。データの保持期限は属性変更日から10年後の2016年7月12日である。
【0053】
WORM機能が「あり」とは、記憶デバイスに属するフラッシュメモリチップがヒューズ50と52のうち少なくともヒューズ50を備えていること、を示している。ヒューズ52が無いと、記憶デバイスの破棄ができない。
【0054】
WORM機能が「なし」とは、記憶デバイスに属するフラッシュメモリチップがヒューズ50と52のうち少なくともヒューズ50を備えていないことである。PGとは既述したパリティグループである。例えば、PG4は図5に示すようにRAID5によって構成される記憶容量600Gとして設定されている。PDEV8,9,10,11の各記憶デバイスはそれぞれ記憶容量200Gを有しており、これらの記憶デバイスが集まってPG4(合計記憶容量800G)を構成する。
【0055】
PDEV6のN/Aは、PDEV6がシュレッディングされもはやパリティグループを構成しないことを示している。PDEV7のN/AはPDEV7が未使用であることを示している。図9の管理テーブルも図4及び図5の管理テーブルと同様に、ストレージシステムの管理者が管理計算機8を用いて制御メモリ4Cに設定される。
【0056】
図10は、LDEVがどの記憶デバイス(PDEV)にマッピングされるかを説明するマッピング管理テーブルである。例えば、LDEV5はPDEV8乃至PDEV11に跨って設定されている。PDEV1にはLDEV1とLDEV2とが設定されている。マッピング管理テーブルは管理計算機8によって制御装置4の制御メモリ4Cに設定される。記憶制御装置4のマイクロプロセッサ4Bは計算機6からのLDEVへのアクセスをマッピング管理テーブルに基づいてPDEVへのアクセスに変換する。一つの記憶領域(PDEV)には一種類のパリティグループが適用される。
【0057】
図11は、記憶領域(LDEV)に書き込み制限を加えて、この記憶デバイスをWORM化する時に行われる処理の流れを示したものである。既述のとおり、記憶領域をWORM化するために、フラッシュメモリコントローラ2は、記憶領域を構成する記憶デバイスのフラッシュメモリチップの書き込み制御線にあるヒューズ50を溶断する。
【0058】
フラッシュメモリコントローラ2は、記憶制御装置4から記憶領域(LDEV)をWORM化する要求を受け付ける(400)と、この要求からWORM化されるべき記憶領域を取得する(402)。次いで、フラッシュメモリコントローラ2はWORM化要求にRAIDレベルを変更する指定があるか否かをチェックする(401)。
【0059】
管理計算機8は記憶領域をWORM化する際に、WORM化後の記憶領域のRAIDレベルを変更することをストレージシステムに指示することができる。RAIDレベルを変更する態様としては、例えば、WORM化前の記憶領域に設定されていたRAIDレベルをWORM化後に下げることである。図12は、記憶デバイス3−1,3−2,3−3に跨って構成されているLDEVのRAIDレベル(RAID5)をRAIDなしに下げていることを示している。
【0060】
記憶制御装置4は記憶デバイス3−2と3−3の記憶データを記憶デバイス3−1に移動して、記憶領域(LDEV)を記憶デバイス3−1に集約する。例えば、記憶デバイス3−2,3−3にWORM機能がなく、記憶デバイス3−1にWORM機能がある場合には、記憶領域LDEVのRAIDレベルを下げることによって記憶領域をWORM化できる。図12によれば、記憶デバイス3−1のみWORM化され、WORM化するデバイスが少なくて済むという利点がある。
【0061】
フラッシュメモリコントローラがWORM化要求で指定された記憶領域のパリティグループのRAIDレベルがRAID1であり、指定されたRAIDレベルがRAIDなしであることを判定すると(404)、後述の図15で説明する処理に移動する。図13において、記憶デバイス3−7にはLDEV(A)が存在し、記憶デバイス3−8にはLDEV(A)のミラーであるLDEV(A)´が存在する。記憶制御装置4は、⇒で示すように、記憶デバイス3−8のLDEV(A)´をパージして、LDEV(A)とLDEV(A)´との間のミラーリングを解除する。RAID5→RAID0の場合は、ステップ430以外はすべて図15と同じである。この場合、ミラー解除(3‐8の記憶領域開放)ではなく、データの集約・移動(ステップ420と同等処理)になる。
【0062】
WORM化要求にRAIDレベルの変更が含まれていないか、又は、“WORM化要求で指定された記憶領域のパリティグループのRAIDレベルがRAID1であり、指定されたRAIDレベルがRAIDなし”以外の変更である場合には、ストレージシステムは図10のマッピング管理テーブル参照し、要求で指定された記憶領域のパリティグループを使用している他の記憶領域の有無を判定する(406)。このような判定を行う理由は、WORM化要求で指定された記憶領域のパリティグループを使用している他の記憶領域が存在する記憶デバイスをWORM化してはならないためである。
【0063】
この判定が否定された場合は、記憶制御装置4は図14に示す処理を実行する。この判定が肯定された場合、フラッシュメモリコントローラ2は図9の記憶デバイス管理テーブルを参照し、要求で指定された記憶領域が使用する記憶デバイスにWORM機能があるか否かを判定する(408)。
【0064】
記憶制御装置4は、この判定を肯定した場合、WORM化要求で指定された記憶領域を構成する記憶デバイスのフラッシュメモリコントローラ2に、この記憶デバイスをWORM化する要求を送信する(412)。ストレージサブシステ4は、図9の記憶デバイス管理テーブルにおいて、PDEV5のように、記憶領域の属性をRW(書き込み可・読み込み可)からR(書き込み不可・読み込み可)に変更し、さらに属性を変更した日、データの保持期限を更新して記憶デバイス管理テーブル(図9)に登録する(414)。記憶制御装置4は、さらに、図4の記憶領域管理テーブルにおける、要求で指定された記憶領域の属性を、LDEV4のように、“RW”から“R”に変更する(416)。
【0065】
記憶制御装置4が、ステップ408を否定判定した場合、制御装置4は図9の記憶デバイス管理テーブルを参照して、WORM機能がない記憶デバイスにある、WORM化要求で指定された記憶領域のデータをWORM機能がある未使用の記憶デバイスに移動し、パリティグループを構成する記憶デバイスを変更する。記憶制御装置4は、パリティグループ管理テーブル、記憶デバイス管理テーブル、マッピング管理テーブルをそれぞれ更新する(410)。
【0066】
ステップ406が否定判定された場合は、記憶制御装置4は、図14に示す処理を実行する。記憶制御装置4は、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を参照して、要求で指定された記憶領域(α)の容量と、要求で指定された記憶領域と同じパリティグループにある要求で指定された記憶領域以外の記憶領域(β)の容量の合計を比較し、αの記憶容量がβの記憶容量の合計よりも小か否かをチェックする(418)。このような比較を行う理由は、どちらの記憶領域を他の記憶デバイスに移動した方がデータの移動が少なくて済むかを判断するためである。
【0067】
この判定が否定された場合、すなわち、βの記憶容量がαの記憶容量より小さい場合には、制御装置は記憶領域(β)と同じRAIDレベルの未使用のパリティグループを構成する、一つ又は複数の記憶デバイスに記憶領域(β)のデータを移動する。ストレージシステムは、記憶領域管理テーブル(図4)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を更新する(422)。記憶領域βのデータを移動するのは記憶領域αのデータを移動させることに比較してデータの移動量が少なくて済むからである。
【0068】
ステップ418が肯定判定された場合、記憶制御装置4は、指定された記憶領域(α)と同じRAIDレベルでWORM機能がある記憶デバイスから構成される未使用のパリティグループを構成する一つ又は複数の記憶デバイスに、指定された記憶領域(α)のデータを移動する。ストレージシステムは、記憶領域管理テーブル、パリティグループ管理テーブル、記憶デバイス管理テーブル、そしてマッピング管理テーブルを更新する(420)。ストレージシステムが記憶領域αのデータを移動するのは、記憶領域βのデータを移動させるよりデータの移動量が少なくて済むからである。
【0069】
図11のステップ404において、肯定判定が行われた場合、図15処理に移行する。ストレージシステムは、図10のマッピング管理テーブルを参照して、WORM化の要求において指定された記憶領域のパリティグループを使用している他の記憶領域が無いか否かを判定する(424)。
【0070】
記憶制御装置4がこの要求を否定判定した場合には、WORM化の要求で指定された記憶領域(α)の容量とWORM化の要求で指定された記憶領域と同じパリティグループにあるが指定された記憶領域以外の記憶領域(β)の容量の合計を比較し、記憶領域(β)の容量の合計が記憶領域(α)より小さいか否かを判定する(426)。
【0071】
ストレージシステムがこの判定を肯定した場合、ストレージシステムは記憶領域(β)と同じRAIDレベルのパリティグループに、記憶領域(β)のデータを移動し、記憶領域管理テーブル(図4)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を更新する(428)。
【0072】
次いで、ストレージシステムは、指定された記憶領域のパリティグループのミラーを解除し、RAIDレベルをRAID1からRAIDなしに変更、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図10)、そしてマッピング管理テーブル(図10)を更新する(430)。ストレージシステムがステップ426を否定判定する場合は、ストレージシステムは、記憶デバイス管理テーブル(図9)を参照し、未使用かつWORM機能を有する記憶デバイスに対してRAIDなしのパリティグループを作成、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)を更新する(432)。
【0073】
次いで、ストレージシステムは、WORM化要求で指定された記憶領域(α)のデータを、ステップ432で作成したパリティグループに移動し、記憶領域管理テーブル(図4)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を更新する(434)。
【0074】
図16はデータの廃棄(シュレッディング/Shredding)の動作を示すフローチャートである。記憶制御装置4が管理計算機8からデータの廃棄要求を受ける(500)と、この要求から廃棄の対象となる記憶領域(LDEV)を取得する(502)。制御装置は、既述の記憶領域管理テーブル(図4)、及び記憶デバイス管理テーブル(図9)を参照し、データの廃棄要求で指定された記憶領域を備える記憶デバイスにWORM機能があり、その装置の属性がR(書き込み不可・読み込み可)か否かをチェックする(504)。
【0075】
ステップ504が肯定判定された場合には、記憶制御装置4からのデータ廃棄要求を受けたフラッシュメモリコントローラ2は記憶デバイスにシュレッディングを要求する(506)。すなわち、フラッシュメモリコントローラ2は読み込み制御線51Bに高電圧を加えて読み込み制御線の途中にあるヒューズ52を溶断する。
【0076】
記憶制御装置4は、記憶デバイス管理テーブル(図9)の属性を“S”に変更すると共に、属性変更日、保持期限を更新する(510)。さらに、記憶制御装置4は、記憶領域管理テーブル(図4)、パリティ管理テーブル(図5)、マッピング管理テーブル(図10)から要求で指定された記憶領域のエントリを削除する(512)。
【0077】
記憶制御装置がステップ504において否定判定をした場合には、WORM機能がある記憶デバイスの属性がRW(書き込み可・読み込み可)であるために、フラッシュメモリコントローラ2はヒューズ52を切断する必要はなく、フラッシュメモリコントローラ2は記憶セルの全領域のデータをワイプ、例えば、記憶セルの全領域に「0」を書き込めば良い。
【0078】
図17は記憶制御装置が行う、記憶デバイスに対する診断処理を説明するフローチャートである。記憶制御装置4のプロセッサ4Bは、フローチャートを定期的に実行する。例えば、数時間毎に実行する。ストレージシステムは障害がある記憶デバイスを早期に発見するために障害診断処理を行う。
【0079】
記憶制御装置4は記憶デバイス管理テーブル(図9)を参照して(700)、診断の対象になった記憶デバイスがWORM化、すなわちR(Read Only)化されているか否かをチェックする(702)。記憶制御装置4がこの判定を肯定した場合には、診断の対象になった記憶デバイスについて診断を行うことなく、全ての記憶デバイスについてチェックしたかを判定し(706)、これを否定した場合にはステップ700にリターンして次の記憶デバイスに対して診断処理を行う。これを肯定した場合には処理を終了する。
【0080】
ステップ702において、記憶制御装置4は、診断対象の記憶デバイスがWORM化されている場合には、記憶デバイスについてオンライン診断、すわなち、データのライト、ベリファイを実行する。この処理によれば、WORM化されている記憶デバイスについて診断処理を行わないようにして、全ての記憶デバイスに対する診断がより短い時間で終了するようになる。
【0081】
次に、WORM化された記憶デバイスの使用期限を延長するための処理について説明する。図18はこの処理を示すフローチャートである。ストレージシステムは定期的、例えば日に一回このフローチャートを実行する。図9の記憶デバイス管理テーブルにあるように、WORM化された記憶デバイスにはデータの保管期限が定められている。
【0082】
記憶制御装置4は、図9に示す記憶デバイス管理テーブルを参照する(800)。次いで、記憶制御装置4は、現在日時と使用期限とを比較し、使用期限に到遠した記憶デバイスがあるか否かをチェックする(802)。記憶制御装置4が使用期限に到達した記憶デバイスがないと判定した場合には、図18のフローチャートを終了する。記憶制御装置4が使用期限に到達した記憶デバイスがあると判定した場合には、図9の記憶デバイス管理テーブルを参照し、未使用かつWORM機能のある記憶デバイスで、使用期限に到達した記憶領域と同じRAIDレベルのパリティグループを作成し、パリティ管理テーブル(図5)、記憶デバイス管理テーブル(図9)を更新する(804)。
【0083】
次いで、記憶制御装置4は、指定された記憶領域のデータを、作成したパリティグループに移動し、記憶デバイス管理テーブル(図9)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッビング管理テーブル(図10)を更新する(806)。
【0084】
次いで、記憶制御装置4は作成したパリティグループの記憶デバイスにWORM化要求を送信する(808)。以上の処理により、データの保持期限が来た記憶デバイスから他の記憶デバイスに記憶領域を移動することが出来たために、記憶デバイスをWORM化した場合でもデータの保持期限を延長することができる。
【0085】
既述の実施形態では、PDEVを記録デバイスとしたが、各フラッシュメモリチップをPDEVとし、各フラッシュメモリ単位でWORM化を行ってもよい。また、フラッシュメモリに代わる他の半導体メモリを記憶デバイスとして使用することもできる。その他、当業者によって考え付く変更を既述の実施形態に加えることもできる。
【図面の簡単な説明】
【0086】
【図1】本発明に係わるストレージサブシスムと、上位計算機と、管理計算機とを備えてなる記憶制御システムのハードウエアブロック図である。
【図2】記憶デバイスの詳細構成を示すハードウエアブロック図である。
【図3】切断素子であるヒューズを溶断させるための処理動作を説明するフローチャートである。
【図4】論理ボリューム(LDEV)の管理テーブルである。
【図5】パリティグループの管理テーブルである。
【図6】論理ボリューム(LDEV)の移動処理に伴う動作を示すブロック図である。
【図7】当該処理動作の他の例を示すブロック図である。
【図8】当該処理動作のさらに他の例を示すブロック図である。
【図9】記憶デバイスの管理テーブルである。
【図10】記憶デバイスと論理ボリュームとの対応関係を規定したマッピング管理テーブルである。
【図11】記憶領域(LDEV)のWORM化処理の動作を説明するフローチャートである。
【図12】論理ボリューム(LDEV)を移動する際に、LDEVのRAIDレベルを下げていること説明するブロックである。
【図13】図12とは別な例を説明するブロック図である。
【図14】図11のフローチャートの一部を詳細に記載したフローチャートである。
【図15】図11のフローチャートの他の一部を詳細に記載したフローチャートである。
【図16】記憶デバイスに記憶されたデータを破棄する処理動作を示すフローチャートである。
【図17】記憶デバイスの診断処理動作を説明するフローチャートである。
【図18】WORM化された記憶デバイスがデータを保持できる期限を延長するための処理動作を説明するフローチャートである。
【図19】WORM化されたフラッシュメモリチップへデータを書き込み際の書き込み不能動作を説明刷るタイミングチャートである。
【図20】フラッシュメモリチップのハードウエアブロック構成図である。
【符号の説明】
【0087】
1 ストレージシステム、2 フラッシュメモリコントローラ(第2のコントローラ)、3 記憶デバイ、4 記憶制御装置(第2のコントローラ)、C1・・・・ フラッシュメモリチップ、42記憶セル、46 制御回路、50 ヒューズ(第1の切断素子)、51A 書き込み制御線(第1の制御線)、51B 読み込み制御線(第2の制御線)、52 ヒューズ(第2の切断素子)
【技術分野】
【0001】
本発明はストレージシステムに係わり、特に、記憶デバイスとしてフラッシュメモリなどの半導体メモリを使用したストレージシステムに関するものである。
【背景技術】
【0002】
記憶制御システムは、ストレージシステムと、このストレージシステムに対して上位装置となる情報処理装置と、を備えている。ストレージシステムは、ハードディスクドライブ等の記憶デバイスの複数をアレイ状に収容することにより、情報処理装置に十分な記憶容量を提供する。情報処理装置はストレージシステムにSANなどを介して接続し、記憶デバイスにデータを書き込み、かつ書き込んだデータを記憶デバイスから読み込む。ストレージシステムは記憶デバイスと情報処理装置との間のデータの交換を制御する制御装置を備えている。
【0003】
ところで、ハードディスクドライブは随時データの書き換えが可能であるために、データが改竄されるおそれがある。そこで、データの書き換えを制限する機能をストレージシステムに持たせた従来技術が種々存在する。データの書き換えを制限する機能は、WORM(Write Once Read Many)と呼ばれる。
【0004】
例えば、特開2005−267602号公報には、ストレージシステムのボリュームに保存されるデータを保護することが可能なストレージシステムが開示されている。ストレージシステムはボリュームが表現されるストレージ媒体、ストレージシステムを制御するディスクコントローラ、及び次回書き込みポインタを使用してボリュームの複数の領域のどれが書き込み保護されているか表示する複数のエントリを有するWORM(追記型)構成テーブルを持つことにより、保護される領域を管理することによりWORM機能を実現する。WORM構成テーブルのエントリは、それぞれ先頭オフセットと末尾オフセットを使用して定義されるボリュームの書き込み保護領域を表示する。
【0005】
また、特開2005−284816号公報には、キャッシュを含むストレージシステム全体としてWORMを保証したシステムが記載されている。ストレージシステムは、計算機から受信したライトデータを格納する記憶デバイスと、キャッシュメモリと、記憶デバイスへのデータの入出力を制御する制御部とを有する。制御部は、計算機から受信したライトコマンドで指定されるライト対象の記憶領域について、既にライトデータがストレージシステムに書き込まれているか否かを判断し、ライト対象の記憶領域についてライトデータが未だ書き込まれていない場合に、前記ライトコマンドに従ってライトデータを受信して、ライトデータをキャッシュメモリに格納する。
【0006】
さらに、特開2005−338945号公報には、WORM機能を利用可能にしたストレージシステムが開示されている。ストレージシステムは、計算機からのデータの書き込み要求を受領すると、書込禁止情報が示す内容に基づいて計算機から書き込みデータの書き込み可否を判定する。書き込み可能である場合は、送信されたデータの保証コードを生成し、データが格納される領域が書込不可であることを示す書込禁止情報を生成し、生成された書込禁止情報を前記保証コードに格納して、計算機から受信したデータが格納される領域に、書込禁止情報を格納した保証コードを付与し、書込禁止情報を格納した保証コードを付与したデータを、キャッシュメモリ、及び/又は、ディスク装置に格納する。計算機からの書き込みデータが書き込み不可能である場合には、計算機に対してその旨を送信する。
【特許文献1】特開2005−267602号公報
【特許文献2】特開2005−284816号公報
【特許文献3】特開2005−338945号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
既述した従来のストレージシステムは、記憶デバイス自体がWORM機能を持ったものではなく、ストレージベンダによって提供される管理用のソフトウエアに基づく処理によって、ストレージシステムにWORM機能を持たせている。したがって、従来のストレージシステムは、CD−RやDVD−Rのように、記録デバイスに対するデータの改竄を物理的に防止できるようにすることまでは配慮されていない。
【0008】
ストレージシステムは情報処理装置から発行されるデータを記録デバイスに書き込み後、このデータを頻繁に更新する必要性を備えていることから、追記型の記憶デバイスだけでストレージリソースを構成することができないことは当然であるが、追記型の記憶デバイスと随時書き換え可能な記憶デバイスとを併用し、改竄を避けるべきデータを追記型の記憶デバイスに移動するとしても、ストレージリソースに追記型の記憶デバイスを利用することは効率的でない。
【0009】
本発明は、既述の問題を解決するために、管理者が随時に設定できるWORM機能を記憶デバイス自体に持たせるようにしたストレージシステムを提供することを目的とするものである。
【課題を解決するための手段】
【0010】
本発明は、情報処理装置から送られたデータを記憶デバイスに書き込むことができるが、記憶デバイスに新たなデータの書き込みや書き込まれたデータの更新を禁止した以降は、記憶デバイスへのデータの書き込み制限を記憶デバイス自体に物理的かつ不可逆的に設定できるようにした、ストレージシステムであることを特徴とするものである。
【0011】
本発明の第1の形態は、記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御するコントローラと、を備えるストレージシステムにおいて、前記記憶デバイスは、記憶領域と、当該記憶領域をWORM化出来る素子とを備え、前記コントローラは、前記記憶デバイスに前記素子を用いて前記記憶領域を不可逆的にWORM化する制御信号を出力する、ことを特徴とするものである。
【0012】
本発明の第2の形態は、記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御する第1のコントローラと、を備えるストレージシステムにおいて、前記記憶デバイスは、記憶領域と、当該記憶領域へ前記データを書き込む動作と、前記記憶領域に書き込まれた前記データを当該記憶領域から読み出す動作と、を制御する制御回路と、前記制御回路に、前記データの書き込みを実行させるための第1の制御信号を第1の制御線を介して出力し、前記データの読み込みを実行させるための第2の制御信号を第2の制御線を介して出力する第2のコントローラと、前記第1の制御線と前記第2の制御線との少なくとも第1の制御線の途中にあり、当該制御線を切断する切断素子と、当該切断素子を駆動させる駆動回路と、を備え、前記第2のコントローラは、前記第1のコントローラからの命令に基づいて、前記駆動回路に前記切断素子で前記制御線を切断するための第3の制御信号を出力する、ことを特徴とするものである。
【発明の効果】
【0013】
本発明によれば、管理者が随時に設定できるWORM機能を記憶デバイス自体に持たせるようにしたストレージシステムを提供することができる。
【発明を実施するための最良の形態】
【0014】
図1は、本発明に係わるストレージシステムを備えた記憶制御システムを示している。この記憶制御システムは、上位装置としての情報処理計算機6と、ストレージシステム1と、管理計算機8とから構成されている。情報処理装置は、ユーザのクライアント計算機に対してサーバあるいはホストとして働くものであり、ユーザが望む業務のアプリケーションをクライアント計算機に対して提供する。
【0015】
ストレージシステムステム1は、複数の記憶デバイス(記憶装置)3と、この記憶デバイスと情報処理計算機6との間のデータの交換に係わる各種制御処理を実行する記憶制御装置4と、を備えている。記憶制御装置4はプロセッサ4Bと、このマイクロプロセッサが実行するマイクロプログラムを格納する不揮発メモリ4Dと、マイクロプロセッサが記憶制御処理を実行する上で参照する制御テーブルを格納した制御メモリ4Cと、を備えている。4Eは記憶装3置に書き込まれるデータの一時記憶領域であるキャッシュメモリである。
【0016】
4Hは制御装置4の内部バスであり、情報処理計算機6のI/F(6A)はバス4HのI/F(4A)に接続している。管理計算機8のI/F(8A)はバス4HのI/F(4G)に接続されている。バス4HのI/F(4F)は複数の記憶デバイス3に接続している。記憶制御装置1は請求項記載の第1のコントローラに該当する。管理計算機8は制御メモリへの制御テーブルの設定等記憶制御処理の一端を担っている。したがって、管理計算機も請求項1の第1のコントローラに該当し得る。記憶デバイスは記憶素子としての複数のフラッシュメモリチップC1,C2,・・・・Cnと、各素子を制御するコントローラ(フラッシュメモリコントローラ)2を備えている。フラッシュメモリコントローラが請求項記載の第2のコントローラに該当する。
【0017】
記憶デバイスの詳細な構成を図2に示す。フラッシュメモリチップC1(C2)は、WORM機能を持った記憶素子である。このWORM機能は、フラッシュメモリコントローラ2とフラッシュメモリチップとの間の書き込み制御線の途中にヒューズ50があること、そして、ヒューズにヒューズが溶断するに足る程度の電圧を供給するための高圧回路があること、ヒューズが切断された後はフラッシュメモリコントローラ2から書き込み制御信号がフラッシュメモリチップに送られないようにしたことにより達成される。
【0018】
フラッシュメモリチップはアドレスをラッチするアドレスラッチ回路40と、指定されたアドレスにデータを記憶する記憶領域である記憶セル42と、データをラッチするデータラッチ回路44と、アドレスラッチ回路40とデータラッチ回路44とを制御する制御回路46と、記憶セルの書き込みデータを消去する消去回路48と、制御回路46への書き込み制御線51Aの途中に設けられた第1のヒューズ50と、読み込み制御線52Aの途中に設けられた第2のヒューズ52と、を備えて構成されている。これらヒューズはフラッシュメモリチップ外にあっても良い。
【0019】
フラッシュメモリコントローラ2は、プロセッサ20と、プロセッサ20が実行するマイクロプログラムが格納された不揮発メモリ14と、プロセッサ20がマイクロプルグラムを実行する上で参照する制御テーブル等が格納される制御メモリ16と、ヒューズ50,52に高電圧を付加することを制御する制御信号出力用の高電圧制御用I/F22と、フラッシュメモリチップに各種制御信号を出力するためのI/F18と、記憶制御装置4のI/F4Fと接続するI/F10とを備えている。
【0020】
フラッシュメモリI/F18からアドレスラッチ回路40にはアドレス信号線32が設けられている。フラッシュメモリコントローラ2のプロセッサ20は、記憶セルのアドレスを指定するアドレス信号をアドレス信号線32からアドレスラッチ回路40に出力する。
【0021】
符号30はデータ線である。データ線30は、フラッシュメモリI/Fから出てデータラッチ回路44に接続されている。アドレスラッチ回路40はアドレス線32から送られたアドレスをラッチする。データラッチ回路はデータ線30から送られたデータ、或いは記憶セルから読み出されたデータをラッチする。
【0022】
制御回路46は、アドレスラッチ回路40及びデータラッチ回路44を制御し、ラッチされたアドレスに対応するデータを記憶セル42に書き込み、或いはラッチされたアドレスに格納されたデータを記憶セルから読み出す。
【0023】
符号24は、フラッシュメモリコントローラ2がフラッシュメモリチップ(C1,C2・・・・)を選択する制御信号を出力するための制御線である。プロセッサ20は、複数あるフラッシュメモリチップから、記憶制御装置4のプロセッサ4Bからの指示を受けて、データの入出力対象となったチップを選択して当該チップを活性化する。プロセッサ20は、選択されたチップの制御回路46に、チップ選択信号(/CE:Chip Enable)をフラッシュメモリI/F18を介して出力する。
【0024】
符号51Aは、データ書き込み制御信号(/WE:Write Enable)を制御回路46に出力する制御線である。この書き込み制御信号線51Aには、フラッシュメモリI/F18からの配線26が接続されている。プロセッサ20は配線26を介して制御線51Aに書き込み制御信号を出力する。
【0025】
符号51Bは、データ読み込み制御信号(/OE:Output Enable )を制御回路46に出力する制御線である。この書き込み制御信号線51Bには、フラッシュメモリI/F18からの配線28が接続されている。プロセッサ20は配線28を介して制御線51Bに読み込み制御信号を出力する。
【0026】
SW3は信号線26と書き込み制御信号線51Aとの間に設けられたスイッチである。SW4は信号線28と読み込み制御信号線51Bとの間に設けられたスイッチである。書き込み制御信号線51Aは高圧回路からの出力線38に接続する第1の高電圧線53Aに接続している。第1の高電圧線53Aと出力線30との間にはスイッチSW1があり、スイッチSW1は制御線34に接続されている。制御線34とスイッチSW3との間には第1のバイパス線55Aがあり、その途中には第1のインバータ54がある。
【0027】
読み込み制御線51Bは高圧回路からの出力線38に接続する第2の高電圧線53Bに接続している。第1の高電圧線53Bと出力線30との間にはスイッチSW2があり、スイッチSW2は制御線36に接続されている。制御線36とスイッチSW4との間には第2のバイパス線55Bがあり、その途中には第2のインバータ56がある。
【0028】
書き込み制御信号線51Aと制御回路との間には、第1のヒューズ50があり、読み込み制御信号線51Bと制御回路46との間には第2のヒューズ52が設けられている。ヒューズは請求項に記載された切断素子の一例である。ヒューズは高圧回路からの高電圧を受けると溶断し、これにより各制御線は非可逆的、物理的に切断させる。プロセッサ20はI/F22を介してスイッチの開閉を制御する制御信号をスイッチSW1とSW2とにそれぞれ出力する。
【0029】
次に、フラッシュメモリチップへのデータの書き込み時及びフラッシュメモリチップからのデータの読み込み時における、図2の回路の動作について説明する。この時の各スイッチの状態は次のとおりである。プロセッサ20は制御線34及び36にスイッチSW1とSW2とを開放するための「L」を各スイッチのゲートに出力する。これにより、両スイッチは開放され、電圧回路からの電圧がヒューズ50と52に印加されない。電圧としてヒューズが溶断される程度の電圧であれば足りる。この電圧は制御信号の電圧レベルと比較して高いために、高電圧として記述した。
【0030】
一方、スイッチSW3へはインバータ54によって「H」が供給され、そしてSW4へはインバータ56によって「H」が供給される。したがって、SW3及びSW4は閉じられている。これにより、フラッシュメモリコントローラ2は制御回路46へ書き込み制御信号(/WE)及び読み込み制御信号(/OE)をそれぞれ出力することができる。この時、SW1及びSW2が開放されているために、高電圧がフラッシュメモリコントローラ2に印加されないようになっている。
【0031】
フラッシュメモリコントローラ2は、記憶制御装置4のプロセッサ4Bのデータ書き込み又は読み込み命令を受けて、命令の対象となっているフラッシュメモリチップを選択する。フラッシュメモリコントローラ2は選択されたチップの制御回路46にチップ選択信号(/CE)を出力する。次いで、プロセッサ20が書き込み制御信号(/WE)を配線26、スイッチSW3、書き込み制御線51A、及びヒューズ50を介して制御回路46に出力すると、制御回路46は、アドレスラッチ回路40でラッチされた、前記記憶セルのアドレスに、データラッチ回路44でラッチされたデータを書き込む。
【0032】
プロセッサ4Bは、計算機6から送られたデータを格納するキャッシュメモリ4Eからこのデータを読み、これをフラッシュメモリコントローラ2に送る。フラッシュメモリコントローラ2のプロセッサ20は制御回路46にチップ選択信号を送信して特定のチップを選択し、このチップのデータラッチ回路44にデータをラッチする。
【0033】
プロセッサ20が読み込み制御信号(/OE)を配線26、スイッチSW4、読み込み制御線51B、及びヒューズ52を介して制御回路46に出力すると、制御回路46は、アドレスラッチ回路40でラッチされたアドレスに格納されたデータを記憶セル42から読み出してデータラッチ回路44でラッチし、ラッチされたデータをフラッシュメモリI/F18を介してプロセッサ20に出力する。プロセッサ20はこのデータを記憶制御装置4に送る。プロセッサ4Bはキャッシュメモリ4Eに書き込む。計算機6からデータ読み込み要求を受けたプロセッサ4Bは、キャッシュメモリ4Eからデータを読み込んで、データを計算機6に出力する。
【0034】
フラッシュメモリコントローラ2が記憶制御装置4からの命令に基づいて、フラッシュメモリチップをWORM化する際の、図2に示す回路の動作について説明する。フラッシュメモリチップWORM化するとは、書き込み制御線51Aの途中にあるヒューズ50を溶断して、記憶セル42にデータを書き込むこと、また、記憶セル42の格納データを更新することを禁止することをいう。なお、読み込み制御線51Bの途中にあるヒューズ52を溶断することにより、記憶セル42からのデータの読み込みをできないようにすることができる。このことは、記憶セルのデータを破棄(シュレッディング)することに等しい。WORM化されていないフラッシュメモリチップに対する、データのシュレッディングは、記憶セルの全メモリ領域に所定値を更新記憶させれば良い。すなわち、ヒューズ52に対する溶断は、通常ヒューズ50が溶断されていないフラッシュメモリチップに対して行う。
【0035】
ストレージシステム1がフラッシュメモリチップをWORM化する場合、プロセッサ20は制御線34に「H」を出力する。この結果、スイッチSW1は閉じ、一方、インバータ54によってスイッチスイッチSW3には「L」が供給されるため、スイッチSW3は開く。書き込み制御線51Aは第1の高電圧線53Aを介して高圧回路に接続する。
【0036】
ヒューズ50に高電圧が加えられてヒューズ50が溶断する。その後、プロセッサ20が制御線34に「L」を出力すると、スイッチSW1は開き、スイッチSW3は閉じる。以後、プロセッサ20が書き込み制御信号を書き込み制御線51Aに出力しても、ヒューズ50は溶断しているために、書き込み制御信号は制御回路46に到達しない。したがって、フラッシュメモリコントローラ2はフラッシュメモリチップにデータを書き込むことができない。すなわち、フラッシュメモリチップがWORM化されたことになる。フラッシュメモリコントローラは各フラッシュメモリチップ毎にフラッシュメモリチップをWORM化することができる。
【0037】
フラッシュメモリコントローラ2が、WORM化されたフラッシュメモリチップに対して、記憶制御装置4からの命令に基づいて、フラッシュメモリチップをシュレッディング、すなわち、フラッシュメモリチップからデータを読み出すことが出来ないようにする場合、プロセッサ20は制御線36に「H」を出力する。すると、スイッチSW2は閉じ、スイッチSW4は開く。読み込み制御線51Bは第2の高電圧線53Bを介して高圧回路に接続し、ヒューズ52に高電圧が印加してヒューズ52が溶断する。以後、スイッチSW2が開き、スイッチSW4が閉じて、プロセッサ20が読み込み制御信号を読み込み制御線51Bに出力しても読み込み制御信号は制御回路46に到達しない。したがって、フラッシュメモリコントローラ2はフラッシュメモリチップからデータを読み出すことができない。
【0038】
図3はフラッシュメモリコントローラ2がヒューズの切断を行うフローチャートを示している。フラッシュメモリコントローラ2のプロセッサ20が記憶制御装置4のプロセッサ4Bから特定のフラッシュメモリチップに対する要求を受け付けると(10)、この要求がフラッシュメモリチップをWORM化する要求か、すなわち、フラッシュメモリコントローラをRead Onlyにするための要求かを判定する(12)。フラッシュメモリコントローラがこの判定を肯定した場合は、書き込み制御線(WE線)のヒューズ50に高電圧を印加してヒューズを溶断する。一方、フラッシュメモリコントローラが前記判定を否定すると、読み込み制御線(OE線)のヒューズ52を切断する。
【0039】
図20は図2のフラッシュメモリチップC1を抜き出した、フラッシュメモリチップブロック図であり、図19はフラッシュメモリチップへのデータの書き込み動作を示すタイミングチャートである。図19のタイミングチャートを、図20を利用して説明する。
【0040】
図19において、Addr inとはフラッシュメモリチップにアドレスが入力されてラッチされた状態にあることを示し、Data inとはフラッシュメモリチップにデータが入力されてラッチされた状態にあることを示している。フラッシュメモリコントローラ2がチップ選択信号(/CE)をHigh(H)からLow(L)にし、書き込み制御信号(/WE)をHからLにするとフラッシュメモリチップの記憶セル42にデータの書き込みが行われる。しかしながら、ヒューズ50が切断されていると、/WE´がLにならないために記憶セル42にデータの書き込みが行われない。
【0041】
読み込み制御信号(/OE)がHからLになり、/WEがLからHになると、フラッシュメモリコントローラは記憶セルに書き込まれたデータを読み出して(Data out)してベリファイを実行するが、既述のとおりデータが書き込まれなかったためにフラッシュメモリコントローラ2は書き込みエラーを判定し、このエラーメッセージを記憶制御装置4に返す。
【0042】
複数の記憶デバイス3が情報処理計算機6に対して提供する記憶領域は仮想化されている。計算機6は仮想化された論理ボリュームを認識して、この論理ボリュームに割り当てられた物理領域にデータを書き込み、そしてこの物理領域からデータを読み込む。
【0043】
なお、スイッチSW1,SW2、配線53A,53B、そして、高圧回路(電圧回路)によって、請求項記載の切断素子(ヒューズ)に対する駆動回路が形成される。
【0044】
図4は、論理ボリュームの内容を規定した管理テーブルである。記憶領域として掲げられたLDEV1乃至LDEV5はそれぞれ論理ボリュームである。この論理ボリュームは一つの記憶デバイスの記憶領域、又は複数の記憶デバイスの記憶領域に跨って設定されている。PG1乃至PG3はパリティグループである。パリティグループには、一つ又は複数のLDEVが含まれる。パリティグループは、図5に示すように、論理ボリュームのRAIDレベルと記憶容量を定義した記憶領域である。ストレージシステム1の管理者はパリティグループを定義し、このパリティグループの範囲内で所望のLDEVを作成する。
【0045】
図4において、RW(Read Write)はLDEVに対してデータの書き込み及びLDEVからデータの読み込みが可能であることを示している。容量とはLDEVに割り当てられた記憶領域の全記憶容量である。図4及び図5の管理テーブルは管理計算機8によって記憶制御装置4の制御メモリ4Cに設定される。記憶制御装置4はLDEVに対してWORMを設定できる。LDEV4は、WORMが設定されてR(Read Only)の属性に成った論理ボリュームである。記憶デバイス3として、ヒューズ50と52とを備えるフラッシュメモリチップからなる記憶デバイスに、ヒューズ50と52とを備えないフラッシュメモリチップからなる記憶デバイスを併用しても良い。前者はWORM機能を備えた記憶デバイスであり、後者はWORM機能を備えない記憶デバイスである。WORM化は記憶デバイスの単位で行われる。即ち、ある一つの記憶デバイスに属するフラッシュメモリチップの全てに対してWORM化が行われる。
【0046】
LDEVに対してWORMを設定できるようにすると、LDEVの記憶領域を有するがWORM機能を有しない記憶デバイスから、WORM機能を有する記憶デバイスにこのLDEVの記憶領域を移動する必要がある。この移動の種類には、LDEVの全データを他の記憶デバイスに移動すること、LDEVの一部のデータを一つの記憶デバイスから他の記憶デバイスに移動すること、がある。移動先の記憶デバイスは既述のWORM機能を備えている。
【0047】
例えば、図6に示すように、LDEVが、WORM機能を持たない複数の記憶デバイス、すなわち、既述のヒューズを備えず常時データの書き込み及びデータの読み込みとも可能な記憶デバイス(3a,3b,3c)に設定されている場合には、記憶制御装置4はLDEVを、それぞれWORM機能を持った記憶デバイス(3A,3B,3C)へ移動する。
【0048】
一方、図7のように、複数の記憶デバイス3−1,3−2,3−3にWORM対象の記憶領域LDEV10とWORM対象外の記憶領域LDEV12,14が設定されている場合、記憶制御装置4は両者の容量を比較する。WORM対象でない記憶領域12,14の合計の記憶容量がWORM対象の記憶領域10の記憶領域より大きい場合には、記憶制御装置4は、WORM対象の記憶領域10を、他のWORM機能を持った複数の記憶デバイス3−4,3−5,3−6へ移動する。
【0049】
さらに、図8のように、WORM対象の記憶領域10の記憶容量がWORM対象でない記憶領域12の記憶容量より大きい場合には、記憶制御装置4はWORM対象でない記憶領域12を他の記憶デバイス3−4,3−5,3−6へ移動する。
【0050】
WORM化する記憶デバイスを極力少なくするためにLDEVのデータを一つの記憶デバイスから他の記憶デバイスへ移動させる時、移動後のLDEVのRAIDレベルを移動前のRAIDレベルより下げることにより、WORM化する記憶デバイスが少なくて済む場合がある。例えば、LDEVのRAIDレベルをRAID1からRAID無しにすると、LDEVのミラーとなる記憶領域が必要とならずに、ミラーを備える記憶領域をWORM化する必要がない。
【0051】
図9は記憶デバイスを管理する管理テーブルの一例である。PDEV1乃至PDEV11はそれぞれ別個の記憶デバイス3に対応している。属性は記憶デバイスに対するデータの書き込み・記憶デバイスからのデータの読み込みの可否に関する性質である。RWは、計算機6がデータ書き込み(Write)及びデータ読み込み(Read)とも可能であることを示している。Rはデータ読み込みのみ(Read Only)が可能であることを示している。Sはデータ書き込み・データ読み込みの両方が不可能であること、すなわち、記憶デバイスが破棄(Shredding)されたことを示している。
【0052】
属性変更日は、属性が変更された日時を示している。保持期限は記憶デバイスがデータを正しく保持できる期限を示している。例えば、PDEV5はWORM化されて、属性がRWからRに属性が変更されている。この属性が変更されたのは、2006年7月12日である。データの保持期限は属性変更日から10年後の2016年7月12日である。
【0053】
WORM機能が「あり」とは、記憶デバイスに属するフラッシュメモリチップがヒューズ50と52のうち少なくともヒューズ50を備えていること、を示している。ヒューズ52が無いと、記憶デバイスの破棄ができない。
【0054】
WORM機能が「なし」とは、記憶デバイスに属するフラッシュメモリチップがヒューズ50と52のうち少なくともヒューズ50を備えていないことである。PGとは既述したパリティグループである。例えば、PG4は図5に示すようにRAID5によって構成される記憶容量600Gとして設定されている。PDEV8,9,10,11の各記憶デバイスはそれぞれ記憶容量200Gを有しており、これらの記憶デバイスが集まってPG4(合計記憶容量800G)を構成する。
【0055】
PDEV6のN/Aは、PDEV6がシュレッディングされもはやパリティグループを構成しないことを示している。PDEV7のN/AはPDEV7が未使用であることを示している。図9の管理テーブルも図4及び図5の管理テーブルと同様に、ストレージシステムの管理者が管理計算機8を用いて制御メモリ4Cに設定される。
【0056】
図10は、LDEVがどの記憶デバイス(PDEV)にマッピングされるかを説明するマッピング管理テーブルである。例えば、LDEV5はPDEV8乃至PDEV11に跨って設定されている。PDEV1にはLDEV1とLDEV2とが設定されている。マッピング管理テーブルは管理計算機8によって制御装置4の制御メモリ4Cに設定される。記憶制御装置4のマイクロプロセッサ4Bは計算機6からのLDEVへのアクセスをマッピング管理テーブルに基づいてPDEVへのアクセスに変換する。一つの記憶領域(PDEV)には一種類のパリティグループが適用される。
【0057】
図11は、記憶領域(LDEV)に書き込み制限を加えて、この記憶デバイスをWORM化する時に行われる処理の流れを示したものである。既述のとおり、記憶領域をWORM化するために、フラッシュメモリコントローラ2は、記憶領域を構成する記憶デバイスのフラッシュメモリチップの書き込み制御線にあるヒューズ50を溶断する。
【0058】
フラッシュメモリコントローラ2は、記憶制御装置4から記憶領域(LDEV)をWORM化する要求を受け付ける(400)と、この要求からWORM化されるべき記憶領域を取得する(402)。次いで、フラッシュメモリコントローラ2はWORM化要求にRAIDレベルを変更する指定があるか否かをチェックする(401)。
【0059】
管理計算機8は記憶領域をWORM化する際に、WORM化後の記憶領域のRAIDレベルを変更することをストレージシステムに指示することができる。RAIDレベルを変更する態様としては、例えば、WORM化前の記憶領域に設定されていたRAIDレベルをWORM化後に下げることである。図12は、記憶デバイス3−1,3−2,3−3に跨って構成されているLDEVのRAIDレベル(RAID5)をRAIDなしに下げていることを示している。
【0060】
記憶制御装置4は記憶デバイス3−2と3−3の記憶データを記憶デバイス3−1に移動して、記憶領域(LDEV)を記憶デバイス3−1に集約する。例えば、記憶デバイス3−2,3−3にWORM機能がなく、記憶デバイス3−1にWORM機能がある場合には、記憶領域LDEVのRAIDレベルを下げることによって記憶領域をWORM化できる。図12によれば、記憶デバイス3−1のみWORM化され、WORM化するデバイスが少なくて済むという利点がある。
【0061】
フラッシュメモリコントローラがWORM化要求で指定された記憶領域のパリティグループのRAIDレベルがRAID1であり、指定されたRAIDレベルがRAIDなしであることを判定すると(404)、後述の図15で説明する処理に移動する。図13において、記憶デバイス3−7にはLDEV(A)が存在し、記憶デバイス3−8にはLDEV(A)のミラーであるLDEV(A)´が存在する。記憶制御装置4は、⇒で示すように、記憶デバイス3−8のLDEV(A)´をパージして、LDEV(A)とLDEV(A)´との間のミラーリングを解除する。RAID5→RAID0の場合は、ステップ430以外はすべて図15と同じである。この場合、ミラー解除(3‐8の記憶領域開放)ではなく、データの集約・移動(ステップ420と同等処理)になる。
【0062】
WORM化要求にRAIDレベルの変更が含まれていないか、又は、“WORM化要求で指定された記憶領域のパリティグループのRAIDレベルがRAID1であり、指定されたRAIDレベルがRAIDなし”以外の変更である場合には、ストレージシステムは図10のマッピング管理テーブル参照し、要求で指定された記憶領域のパリティグループを使用している他の記憶領域の有無を判定する(406)。このような判定を行う理由は、WORM化要求で指定された記憶領域のパリティグループを使用している他の記憶領域が存在する記憶デバイスをWORM化してはならないためである。
【0063】
この判定が否定された場合は、記憶制御装置4は図14に示す処理を実行する。この判定が肯定された場合、フラッシュメモリコントローラ2は図9の記憶デバイス管理テーブルを参照し、要求で指定された記憶領域が使用する記憶デバイスにWORM機能があるか否かを判定する(408)。
【0064】
記憶制御装置4は、この判定を肯定した場合、WORM化要求で指定された記憶領域を構成する記憶デバイスのフラッシュメモリコントローラ2に、この記憶デバイスをWORM化する要求を送信する(412)。ストレージサブシステ4は、図9の記憶デバイス管理テーブルにおいて、PDEV5のように、記憶領域の属性をRW(書き込み可・読み込み可)からR(書き込み不可・読み込み可)に変更し、さらに属性を変更した日、データの保持期限を更新して記憶デバイス管理テーブル(図9)に登録する(414)。記憶制御装置4は、さらに、図4の記憶領域管理テーブルにおける、要求で指定された記憶領域の属性を、LDEV4のように、“RW”から“R”に変更する(416)。
【0065】
記憶制御装置4が、ステップ408を否定判定した場合、制御装置4は図9の記憶デバイス管理テーブルを参照して、WORM機能がない記憶デバイスにある、WORM化要求で指定された記憶領域のデータをWORM機能がある未使用の記憶デバイスに移動し、パリティグループを構成する記憶デバイスを変更する。記憶制御装置4は、パリティグループ管理テーブル、記憶デバイス管理テーブル、マッピング管理テーブルをそれぞれ更新する(410)。
【0066】
ステップ406が否定判定された場合は、記憶制御装置4は、図14に示す処理を実行する。記憶制御装置4は、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を参照して、要求で指定された記憶領域(α)の容量と、要求で指定された記憶領域と同じパリティグループにある要求で指定された記憶領域以外の記憶領域(β)の容量の合計を比較し、αの記憶容量がβの記憶容量の合計よりも小か否かをチェックする(418)。このような比較を行う理由は、どちらの記憶領域を他の記憶デバイスに移動した方がデータの移動が少なくて済むかを判断するためである。
【0067】
この判定が否定された場合、すなわち、βの記憶容量がαの記憶容量より小さい場合には、制御装置は記憶領域(β)と同じRAIDレベルの未使用のパリティグループを構成する、一つ又は複数の記憶デバイスに記憶領域(β)のデータを移動する。ストレージシステムは、記憶領域管理テーブル(図4)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を更新する(422)。記憶領域βのデータを移動するのは記憶領域αのデータを移動させることに比較してデータの移動量が少なくて済むからである。
【0068】
ステップ418が肯定判定された場合、記憶制御装置4は、指定された記憶領域(α)と同じRAIDレベルでWORM機能がある記憶デバイスから構成される未使用のパリティグループを構成する一つ又は複数の記憶デバイスに、指定された記憶領域(α)のデータを移動する。ストレージシステムは、記憶領域管理テーブル、パリティグループ管理テーブル、記憶デバイス管理テーブル、そしてマッピング管理テーブルを更新する(420)。ストレージシステムが記憶領域αのデータを移動するのは、記憶領域βのデータを移動させるよりデータの移動量が少なくて済むからである。
【0069】
図11のステップ404において、肯定判定が行われた場合、図15処理に移行する。ストレージシステムは、図10のマッピング管理テーブルを参照して、WORM化の要求において指定された記憶領域のパリティグループを使用している他の記憶領域が無いか否かを判定する(424)。
【0070】
記憶制御装置4がこの要求を否定判定した場合には、WORM化の要求で指定された記憶領域(α)の容量とWORM化の要求で指定された記憶領域と同じパリティグループにあるが指定された記憶領域以外の記憶領域(β)の容量の合計を比較し、記憶領域(β)の容量の合計が記憶領域(α)より小さいか否かを判定する(426)。
【0071】
ストレージシステムがこの判定を肯定した場合、ストレージシステムは記憶領域(β)と同じRAIDレベルのパリティグループに、記憶領域(β)のデータを移動し、記憶領域管理テーブル(図4)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を更新する(428)。
【0072】
次いで、ストレージシステムは、指定された記憶領域のパリティグループのミラーを解除し、RAIDレベルをRAID1からRAIDなしに変更、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図10)、そしてマッピング管理テーブル(図10)を更新する(430)。ストレージシステムがステップ426を否定判定する場合は、ストレージシステムは、記憶デバイス管理テーブル(図9)を参照し、未使用かつWORM機能を有する記憶デバイスに対してRAIDなしのパリティグループを作成、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)を更新する(432)。
【0073】
次いで、ストレージシステムは、WORM化要求で指定された記憶領域(α)のデータを、ステップ432で作成したパリティグループに移動し、記憶領域管理テーブル(図4)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッピング管理テーブル(図10)を更新する(434)。
【0074】
図16はデータの廃棄(シュレッディング/Shredding)の動作を示すフローチャートである。記憶制御装置4が管理計算機8からデータの廃棄要求を受ける(500)と、この要求から廃棄の対象となる記憶領域(LDEV)を取得する(502)。制御装置は、既述の記憶領域管理テーブル(図4)、及び記憶デバイス管理テーブル(図9)を参照し、データの廃棄要求で指定された記憶領域を備える記憶デバイスにWORM機能があり、その装置の属性がR(書き込み不可・読み込み可)か否かをチェックする(504)。
【0075】
ステップ504が肯定判定された場合には、記憶制御装置4からのデータ廃棄要求を受けたフラッシュメモリコントローラ2は記憶デバイスにシュレッディングを要求する(506)。すなわち、フラッシュメモリコントローラ2は読み込み制御線51Bに高電圧を加えて読み込み制御線の途中にあるヒューズ52を溶断する。
【0076】
記憶制御装置4は、記憶デバイス管理テーブル(図9)の属性を“S”に変更すると共に、属性変更日、保持期限を更新する(510)。さらに、記憶制御装置4は、記憶領域管理テーブル(図4)、パリティ管理テーブル(図5)、マッピング管理テーブル(図10)から要求で指定された記憶領域のエントリを削除する(512)。
【0077】
記憶制御装置がステップ504において否定判定をした場合には、WORM機能がある記憶デバイスの属性がRW(書き込み可・読み込み可)であるために、フラッシュメモリコントローラ2はヒューズ52を切断する必要はなく、フラッシュメモリコントローラ2は記憶セルの全領域のデータをワイプ、例えば、記憶セルの全領域に「0」を書き込めば良い。
【0078】
図17は記憶制御装置が行う、記憶デバイスに対する診断処理を説明するフローチャートである。記憶制御装置4のプロセッサ4Bは、フローチャートを定期的に実行する。例えば、数時間毎に実行する。ストレージシステムは障害がある記憶デバイスを早期に発見するために障害診断処理を行う。
【0079】
記憶制御装置4は記憶デバイス管理テーブル(図9)を参照して(700)、診断の対象になった記憶デバイスがWORM化、すなわちR(Read Only)化されているか否かをチェックする(702)。記憶制御装置4がこの判定を肯定した場合には、診断の対象になった記憶デバイスについて診断を行うことなく、全ての記憶デバイスについてチェックしたかを判定し(706)、これを否定した場合にはステップ700にリターンして次の記憶デバイスに対して診断処理を行う。これを肯定した場合には処理を終了する。
【0080】
ステップ702において、記憶制御装置4は、診断対象の記憶デバイスがWORM化されている場合には、記憶デバイスについてオンライン診断、すわなち、データのライト、ベリファイを実行する。この処理によれば、WORM化されている記憶デバイスについて診断処理を行わないようにして、全ての記憶デバイスに対する診断がより短い時間で終了するようになる。
【0081】
次に、WORM化された記憶デバイスの使用期限を延長するための処理について説明する。図18はこの処理を示すフローチャートである。ストレージシステムは定期的、例えば日に一回このフローチャートを実行する。図9の記憶デバイス管理テーブルにあるように、WORM化された記憶デバイスにはデータの保管期限が定められている。
【0082】
記憶制御装置4は、図9に示す記憶デバイス管理テーブルを参照する(800)。次いで、記憶制御装置4は、現在日時と使用期限とを比較し、使用期限に到遠した記憶デバイスがあるか否かをチェックする(802)。記憶制御装置4が使用期限に到達した記憶デバイスがないと判定した場合には、図18のフローチャートを終了する。記憶制御装置4が使用期限に到達した記憶デバイスがあると判定した場合には、図9の記憶デバイス管理テーブルを参照し、未使用かつWORM機能のある記憶デバイスで、使用期限に到達した記憶領域と同じRAIDレベルのパリティグループを作成し、パリティ管理テーブル(図5)、記憶デバイス管理テーブル(図9)を更新する(804)。
【0083】
次いで、記憶制御装置4は、指定された記憶領域のデータを、作成したパリティグループに移動し、記憶デバイス管理テーブル(図9)、パリティグループ管理テーブル(図5)、記憶デバイス管理テーブル(図9)、マッビング管理テーブル(図10)を更新する(806)。
【0084】
次いで、記憶制御装置4は作成したパリティグループの記憶デバイスにWORM化要求を送信する(808)。以上の処理により、データの保持期限が来た記憶デバイスから他の記憶デバイスに記憶領域を移動することが出来たために、記憶デバイスをWORM化した場合でもデータの保持期限を延長することができる。
【0085】
既述の実施形態では、PDEVを記録デバイスとしたが、各フラッシュメモリチップをPDEVとし、各フラッシュメモリ単位でWORM化を行ってもよい。また、フラッシュメモリに代わる他の半導体メモリを記憶デバイスとして使用することもできる。その他、当業者によって考え付く変更を既述の実施形態に加えることもできる。
【図面の簡単な説明】
【0086】
【図1】本発明に係わるストレージサブシスムと、上位計算機と、管理計算機とを備えてなる記憶制御システムのハードウエアブロック図である。
【図2】記憶デバイスの詳細構成を示すハードウエアブロック図である。
【図3】切断素子であるヒューズを溶断させるための処理動作を説明するフローチャートである。
【図4】論理ボリューム(LDEV)の管理テーブルである。
【図5】パリティグループの管理テーブルである。
【図6】論理ボリューム(LDEV)の移動処理に伴う動作を示すブロック図である。
【図7】当該処理動作の他の例を示すブロック図である。
【図8】当該処理動作のさらに他の例を示すブロック図である。
【図9】記憶デバイスの管理テーブルである。
【図10】記憶デバイスと論理ボリュームとの対応関係を規定したマッピング管理テーブルである。
【図11】記憶領域(LDEV)のWORM化処理の動作を説明するフローチャートである。
【図12】論理ボリューム(LDEV)を移動する際に、LDEVのRAIDレベルを下げていること説明するブロックである。
【図13】図12とは別な例を説明するブロック図である。
【図14】図11のフローチャートの一部を詳細に記載したフローチャートである。
【図15】図11のフローチャートの他の一部を詳細に記載したフローチャートである。
【図16】記憶デバイスに記憶されたデータを破棄する処理動作を示すフローチャートである。
【図17】記憶デバイスの診断処理動作を説明するフローチャートである。
【図18】WORM化された記憶デバイスがデータを保持できる期限を延長するための処理動作を説明するフローチャートである。
【図19】WORM化されたフラッシュメモリチップへデータを書き込み際の書き込み不能動作を説明刷るタイミングチャートである。
【図20】フラッシュメモリチップのハードウエアブロック構成図である。
【符号の説明】
【0087】
1 ストレージシステム、2 フラッシュメモリコントローラ(第2のコントローラ)、3 記憶デバイ、4 記憶制御装置(第2のコントローラ)、C1・・・・ フラッシュメモリチップ、42記憶セル、46 制御回路、50 ヒューズ(第1の切断素子)、51A 書き込み制御線(第1の制御線)、51B 読み込み制御線(第2の制御線)、52 ヒューズ(第2の切断素子)
【特許請求の範囲】
【請求項1】
記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御するコントローラと、を備えるストレージシステムにおいて、
前記記憶デバイスは、記憶領域と、当該記憶領域をWORM化出来る素子とを備え、
前記コントローラは、前記素子を用いて前記記憶領域を不可逆的にWORM化する制御信号を前記記憶デバイスに出力する、ストレージシステム。
【請求項2】
記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御する第1のコントローラと、を備えるストレージシステムにおいて、
前記記憶デバイスは、
記憶領域と、
当該記憶領域へ前記データを書き込む動作と、前記記憶領域に書き込まれた前記データを当該記憶領域から読み出す動作と、を制御する制御回路と、
前記制御回路に、前記データの書き込みを実行させるための第1の制御信号を第1の制御線を介して出力し、前記データの読み込みを実行させるための第2の制御信号を第2の制御線を介して出力する第2のコントローラと、
前記第1の制御線と前記第2の制御線との少なくとも第1の制御線の途中にあり、当該制御線を切断する切断素子と、
当該切断素子を駆動させる駆動回路と、を備え、
前記第2のコントローラは、前記第1のコントローラからの命令に基づいて、前記駆動回路に前記切断素子で前記制御線を切断するための第3の制御信号を出力する、ストレージシステム。
【請求項3】
前記第1の制御線の途中に第1の切断素子が設けられ、前記第2の制御線の途中に第2の切断素子が設けられている、請求項2記載のストレージシステム。
【請求項4】
前記第1の切断素子はヒューズから構成され、前記駆動回路は当該第1のヒューズに電圧を印加する電圧回路を備え、前記駆動回路は前記第3の制御信号に基づいて前記第1の制御線を前記電圧回路に接続して前記第1の切断素子を切断させる、請求項3記載のストレージシステム。
【請求項5】
前記第2の切断素子はヒューズから構成され、前記駆動回路は前記第3の制御信号に基づいて前記第2の制御線を前記電圧回路に接続して前記第2の切断素子を切断させる、請求項4記載のストレージシステム。
【請求項6】
前記記憶デバイスは、前記記憶領域を構成する複数のフラッシュメモリチップを備え、各メモリチップは、記憶セルと、前記制御回路と、を備える、請求項2記載のストレージシステム。
【請求項7】
前記ストレージシステムは、前記切断素子を備えない他の記憶デバイスを備えてなる、請求項2記載のストレージシステム。
【請求項8】
前記第1のコントローラは、複数の論理ボリュームを前記情報処理装置に提供し、
当該複数の論理ボリュームのうち前記データの書き込みを制限する特定の論理ボリュームを設定し、
複数ある前記記憶デバイスの中から、前記制限が設定された論理ボリュームに記憶領域を提供する記憶デバイスを特定し、
当該特定された記憶デバイスの前記第1の制御線を前記切断素子によって切断する、請求項2記載のストレージシステム。
【請求項9】
前記ストレージシステムは、前記切断素子を備えない他の記憶デバイスを備え、
前記切断素子を備える記憶デバイスを第1の記憶デバイスとし、前記他の記憶デバイスを第2の記憶デバイスとすると、
前記特定の論理ボリュームが前記第2の記憶デバイスにある場合、前記第1のコントローラは、当該特定の論理ボリュームの前記第2の記憶デバイスにあるデータを前記第1の記憶デバイスに移動させ、
当該第1の記憶デバイスの前記第1の制御線を前記切断素子によって切断する、請求項8記載のストレージシステム。
【請求項10】
前記第切断素子によって前記第1の制御線を切断しようとしている前記第1の記憶デバイスが、前記特定の論理ボリューム以外の他の論理ボリュームに記憶領域を提供している場合、前記第1のコントローラは、当該他の論理ボリュームを他の記憶デバイスに移動する、請求項9記載のストレージシステム。
【請求項11】
前記特定の論理ボリュームに記憶領域を提供する前記記憶デバイスに他の論理ボリュームが割り当てられている場合、前記第1のコントローラは、前記特定の論理ボリュームの記憶容量と前記他の記憶容量とを対比し、少ない記憶容量を持った方の論理ボリュームを他の記憶デバイスに移動させる、請求項8記載のストレージシステム。
【請求項12】
前記第1のコントローラは、前記特定の論理ボリュームの前記書き込みを制限する前後で、当該論理ボリュームのRAIDレベルを変更する、請求項8記載のストレージシステム。
【請求項13】
前記第1のコントローラは、複数の前記記憶デバイスの診断を行う際に、前記切断素子によって前記第1の制御線が切断された前記記憶デバイスの診断処理をスキップする、請求項2記載のストレージシステム。
【請求項14】
前記切断素子によって前記第1の制御線が切断された前記記憶デバイスについて、データを保持できる期限が定められており、前記第1のコントローラは前記期限を参照し、複数ある前記記憶デバイスのうち期限が到達した記憶デバイスのデータを他の記憶デバイスに移動する、請求項2記載のストレージシステム。
【請求項15】
前記第1のコントローラは、前記特定の論理ボリュームの前記書き込みを制限する前後で、当該論理ボリュームのRAIDレベルを下げる、請求項12記載のストレージシステム。
【請求項1】
記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御するコントローラと、を備えるストレージシステムにおいて、
前記記憶デバイスは、記憶領域と、当該記憶領域をWORM化出来る素子とを備え、
前記コントローラは、前記素子を用いて前記記憶領域を不可逆的にWORM化する制御信号を前記記憶デバイスに出力する、ストレージシステム。
【請求項2】
記憶デバイスと、前記記憶デバイスと情報処理装置との間のデータ交換を制御する第1のコントローラと、を備えるストレージシステムにおいて、
前記記憶デバイスは、
記憶領域と、
当該記憶領域へ前記データを書き込む動作と、前記記憶領域に書き込まれた前記データを当該記憶領域から読み出す動作と、を制御する制御回路と、
前記制御回路に、前記データの書き込みを実行させるための第1の制御信号を第1の制御線を介して出力し、前記データの読み込みを実行させるための第2の制御信号を第2の制御線を介して出力する第2のコントローラと、
前記第1の制御線と前記第2の制御線との少なくとも第1の制御線の途中にあり、当該制御線を切断する切断素子と、
当該切断素子を駆動させる駆動回路と、を備え、
前記第2のコントローラは、前記第1のコントローラからの命令に基づいて、前記駆動回路に前記切断素子で前記制御線を切断するための第3の制御信号を出力する、ストレージシステム。
【請求項3】
前記第1の制御線の途中に第1の切断素子が設けられ、前記第2の制御線の途中に第2の切断素子が設けられている、請求項2記載のストレージシステム。
【請求項4】
前記第1の切断素子はヒューズから構成され、前記駆動回路は当該第1のヒューズに電圧を印加する電圧回路を備え、前記駆動回路は前記第3の制御信号に基づいて前記第1の制御線を前記電圧回路に接続して前記第1の切断素子を切断させる、請求項3記載のストレージシステム。
【請求項5】
前記第2の切断素子はヒューズから構成され、前記駆動回路は前記第3の制御信号に基づいて前記第2の制御線を前記電圧回路に接続して前記第2の切断素子を切断させる、請求項4記載のストレージシステム。
【請求項6】
前記記憶デバイスは、前記記憶領域を構成する複数のフラッシュメモリチップを備え、各メモリチップは、記憶セルと、前記制御回路と、を備える、請求項2記載のストレージシステム。
【請求項7】
前記ストレージシステムは、前記切断素子を備えない他の記憶デバイスを備えてなる、請求項2記載のストレージシステム。
【請求項8】
前記第1のコントローラは、複数の論理ボリュームを前記情報処理装置に提供し、
当該複数の論理ボリュームのうち前記データの書き込みを制限する特定の論理ボリュームを設定し、
複数ある前記記憶デバイスの中から、前記制限が設定された論理ボリュームに記憶領域を提供する記憶デバイスを特定し、
当該特定された記憶デバイスの前記第1の制御線を前記切断素子によって切断する、請求項2記載のストレージシステム。
【請求項9】
前記ストレージシステムは、前記切断素子を備えない他の記憶デバイスを備え、
前記切断素子を備える記憶デバイスを第1の記憶デバイスとし、前記他の記憶デバイスを第2の記憶デバイスとすると、
前記特定の論理ボリュームが前記第2の記憶デバイスにある場合、前記第1のコントローラは、当該特定の論理ボリュームの前記第2の記憶デバイスにあるデータを前記第1の記憶デバイスに移動させ、
当該第1の記憶デバイスの前記第1の制御線を前記切断素子によって切断する、請求項8記載のストレージシステム。
【請求項10】
前記第切断素子によって前記第1の制御線を切断しようとしている前記第1の記憶デバイスが、前記特定の論理ボリューム以外の他の論理ボリュームに記憶領域を提供している場合、前記第1のコントローラは、当該他の論理ボリュームを他の記憶デバイスに移動する、請求項9記載のストレージシステム。
【請求項11】
前記特定の論理ボリュームに記憶領域を提供する前記記憶デバイスに他の論理ボリュームが割り当てられている場合、前記第1のコントローラは、前記特定の論理ボリュームの記憶容量と前記他の記憶容量とを対比し、少ない記憶容量を持った方の論理ボリュームを他の記憶デバイスに移動させる、請求項8記載のストレージシステム。
【請求項12】
前記第1のコントローラは、前記特定の論理ボリュームの前記書き込みを制限する前後で、当該論理ボリュームのRAIDレベルを変更する、請求項8記載のストレージシステム。
【請求項13】
前記第1のコントローラは、複数の前記記憶デバイスの診断を行う際に、前記切断素子によって前記第1の制御線が切断された前記記憶デバイスの診断処理をスキップする、請求項2記載のストレージシステム。
【請求項14】
前記切断素子によって前記第1の制御線が切断された前記記憶デバイスについて、データを保持できる期限が定められており、前記第1のコントローラは前記期限を参照し、複数ある前記記憶デバイスのうち期限が到達した記憶デバイスのデータを他の記憶デバイスに移動する、請求項2記載のストレージシステム。
【請求項15】
前記第1のコントローラは、前記特定の論理ボリュームの前記書き込みを制限する前後で、当該論理ボリュームのRAIDレベルを下げる、請求項12記載のストレージシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2008−117107(P2008−117107A)
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願番号】特願2006−298669(P2006−298669)
【出願日】平成18年11月2日(2006.11.2)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願日】平成18年11月2日(2006.11.2)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]