(57)【要約】【課題】外部記憶装置のデータ保証性を向上させること。【解決手段】外部記憶装置８の記憶領域をボリュームとして管理するに際して、リードまたはライトアクセス対象のデータに対応する保証コードを保証コード生成／確認部２０６で生成し、生成した保証コードを外部記憶装置８に格納し、外部記憶装置８の記憶領域に対するリードまたはライトアクセスを実行するときに、アクセス対象のデータに対応して格納された保証コードとアクセス対象のデータから生成された保証コードとの一致を保証コード生成／確認部２０６で確認することで、アクセス対象のデータを保証する。【選択図】図１
2008117253.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された外部記憶装置の記憶領域をボリュームとして管理する記憶装置システムであって、リード又はライトアクセス対象のデータに対応する保証コードを生成する保証コード生成部と、前記生成された保証コードの前記外部記憶装置への書込み又は前記外部記憶装置に格納された保証コードの読出しを制御するプロセッサと、前記アクセス対象のデータから生成された保証コードと前記アクセス対象のデータに対応した保証コードとして前記外部記憶装置から読み出された保証コードとの一致を確認する確認部と、を備えてなる記憶装置システム。
【請求項２】
前記保証コードは、前記ライトアクセス対象のデータまたは前記リードアクセス対象のデータを入力としたハッシュ値と、データ格納位置とを含むことを特徴とする請求項１に記載の記憶装置システム。
【請求項３】
前記保証コード生成部は、前記外部記憶装置の記憶領域のブロック毎に対応づけて、データ格納位置とエラー検出コードを含む保証コードを生成し、前記プロセッサは、前記外部記憶装置の記憶領域のうち前記アクセス対象のデータが格納されたブロックに隣接して、前記データ格納位置とエラー検出コードを含む保証コードを書込み、前記外部記憶装置の記憶領域のうち前記アクセス対象のデータが格納されたブロックに隣接して格納された保証コードであって、前記データ格納位置とエラー検出コードを含む保証コードを読み出してなる請求項１に記載の記憶装置システム。
【請求項４】
ネットワークに接続された外部記憶装置の記憶領域をボリュームとして管理する複数の記憶装置システムと、前記ネットワークに接続されたホスト計算機とを備えた計算機システムにおいて、前記複数の記憶装置システムのうち移行元の記憶装置システムは、リード又はライトアクセスの対象となるデータに対応する保証コードを生成する保証コード生成部と、前記生成された保証コードの前記外部記憶装置への書込み又は前記外部記憶装置に格納された保証コードの読出しを制御するプロセッサと、アクセス対象のデータから生成された保証コードと前記アクセス対象のデータに対応した保証コードとして前記外部記憶装置から読み出された保証コードとの一致を確認する確認部と、前記外部記憶装置に格納されたデータと当該データに対応して生成された保証コードを含む管理情報を前記移行先の記憶装置システムに移行させる管理移行部を備え、前記移行先の記憶装置システムは、前記移行元から移行された管理情報を移行先の管理情報として管理する管理部を備えてなることを特徴とする計算機システム。
【請求項５】
前記プロセッサは、前記ホスト計算機からのアクセス要求に対して、前記外部記憶装置の記憶領域のうち旧保証コード領域をアクセス先とするときには、前記旧保証コード領域に既に格納されている旧保証コードの変更処理を旧保証コード情報に従って実行し、新保証コード領域をアクセス先とするときには、新保証コード領域に新規保証コードを追加する処理を新保証コード情報に従って実行してなることを特徴とする請求項４に記載の計算機システム。
【請求項６】
前記プロセッサは、前記ホスト計算機からのアクセス要求に対して、前記外部記憶装置の記憶領域のうち旧保証コード領域をアクセス先とするときには、前記旧保証コード領域に既に格納されている旧保証コードの変更処理を旧保証コード情報に従って実行し、新保証コード領域をアクセス先とするときには、新保証コード領域のうちデータが格納されているブロックに隣接して、新規保証コードを追加する処理を新保証コード情報に従って実行してなることを特徴とする請求項４に記載の計算機システム。
【請求項７】
前記外部記憶装置に格納されたデータへのアクセスパスを前記ホスト計算機に優先して管理する仮想管理ネットワーク装置を備え、前記各記憶装置システムは、前記仮想管理ネットワーク装置を介して前記ホスト計算機に接続されてなることを特徴とする請求項４に記載の計算機システム。
【請求項８】
ネットワークに接続された外部記憶装置の記憶領域をボリュームとして管理する複数の記憶装置システムと、前記ネットワークに接続されたホスト計算機とを備えた計算機システムの処理方法において、前記複数の記憶装置システムのうち一つを移行元とし、他の一つを移行先として、前記移行元の記憶装置システムは、前記外部記憶装置に格納されたデータと当該データに対応して生成された保証コードを含む管理情報を前記移行先の記憶装置システムに移行し、前記移行先の記憶装置システムは、前記移行元から移行された管理情報を移行先の管理情報として管理することを特徴とする計算機システムの処理方法。
【請求項９】
前記外部記憶装置に格納されたデータと当該データに対応して生成された保証コードを含む管理情報を前記移行先の記憶装置システムに移行するに際して、
前記ホスト計算機は、前記各記憶装置システムから前記外部記憶装置に格納されたデータへのアクセスパスを管理し、
前記複数の記憶装置システムのうち一つを移行元とし、他の一つを移行先として、前記移行先の記憶装置システムは、前記外部記憶装置に格納されたデータのうち移行元の記憶装置システムの管理対象となるデータに対するアクセスを前記移行元の記憶装置システムの管理する移行元ボリューム経由で実行し、
前記ホスト計算機は、前記移行先の記憶装置システムのアクセス時に、前記移行元ボリューム経由によるデータへのアクセス経路の使用を開始し、
前記移行元の記憶装置システムは、管理対象のボリュームのダーディデータを前記外部記憶装置に書込みした後、前記外部記憶装置に格納したデータのキャッシュメモリの使用を中止し、
前記移行先の記憶装置システムは、管理対象のデータへのアクセスを前記外部記憶装置に直接実行し、
前記移行元の記憶装置システムは、外部記憶装置に格納されたデータのうち管理対象となるデータに対するアクセスを前記移行先の記憶装置システムの管理する移行先ボリューム経由で実行し、
前記移行先の記憶装置システムは、前記外部記憶装置に格納したデータのキャッシュメモリの使用を開始し、
前記ホスト計算機は、前記移行元ボリューム経由によるデータへのアクセス経路の使用を中止する、ことを特徴とする計算機システムの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムを構成する記憶装置システムにおけるデータ保証技術に関する。
【背景技術】
【０００２】
大容量の記憶領域を低コストで管理する方法の一つとして、ストレージ仮想化技術がある。ストレージ仮想化技術では、第一の記憶装置システムに第二の記憶装置（システム）を接続し、第二の記憶装置（システム）の記憶領域を第一の記憶装置システムの記憶領域としてホストに提供する。ホストからの第一の記憶装置システムへのアクセス要求に対しては、アクセス先が第一の記憶装置システムの記憶領域か、第二の記憶装置（システム）の記憶領域か判断し、適切なアクセス先へアクセス要求を転送する。
【０００３】
下記特許文献１は、セクタ長が固定されたディスク装置において、書き込み／読み出しデータの正確さを保証する技術を開示している。特許文献１では、データ、誤り検出／訂正情報、および保証情報を、それぞれ異なるディスク装置に格納するため、セクタ長が固定されている複数のディスク装置から構成されるディスクアレイ装置においても、書き込みデータおよび読み出しデータの正確さを保証することができる。
【０００４】
【特許文献１】特開２００６−１０７３１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ストレージ仮想化技術を用いることで、性能、信頼性、機能、価格等の異なる記憶装置システムを統合して大容量の記憶装置システムを構成することができる。例えば、高性能、高信頼、高機能な管理元記憶装置システムを用意し、低機能、低価格な外部記憶装置を当該管理元記憶装置システムへ接続する。さらに、格納するデータの特性に応じて格納先記憶装置を変更することで、データ価値に合ったデータ管理が可能となる。例えば、高頻度にアクセスする業務情報は管理元記憶装置システムの記憶領域に格納し、アクセス頻度の低いアーカイブデータは外部記憶装置に格納する。
【０００６】
しかし、従来のストレージ仮想化技術では、管理元記憶装置システムの記憶領域として提供する外部記憶装置の記憶領域のデータ保証について考慮していない。低コストの複数の外部記憶装置を高機能な管理元記憶装置システムに接続する構成を採用した場合、外部記憶装置には、管理元記憶装置システムと比較して十分な、読み出し／書き込みデータの正確さを保証するデータ保証機能が存在しない場合がある。この場合、管理元記憶装置システムでは、外部記憶装置の記憶領域をデータ保証性の低い記憶領域として別途管理する必要がある。
【０００７】
また、従来のストレージ仮想化技術では、データ保証を適用した外部記憶装置の管理元記憶装置システムの切り替えについて考慮していない。システムの負荷分散や高可用性を実現する目的で、データ保証性を維持したまま、ある外部記憶装置の管理元記憶装置システムを切り替える必要がある。しかし、データ保証を考慮せず外部記憶装置の管理元を別の記憶装置システムへ移行する場合、移行先の記憶装置システムが同様のデータ保証機能を持たなければ、データ保証性が低下してしまう。また、移行先の記憶装置システムが同様のデータ保証機能を持つ場合でも、データ保証のための保証コード等の再生成が必要となり、処理コストが増大してしまう。
【０００８】
本発明の目的は、ストレージ仮想化技術により接続された外部記憶装置のデータ保証性を向上させることにある。また、外部記憶装置のデータ保証性を維持したまま、外部記憶装置を管理対象とする管理元を切り替えることにある。
【課題を解決するための手段】
【０００９】
この目的を達成するために、本発明は、外部記憶装置の記憶領域をボリュームとして管理するに際して、リードまたはライトアクセス対象のデータに対応して、保証コードを生成し、生成した保証コードをアクセス対象のデータと関連づけて外部記憶装置に格納し、外部記憶装置の記憶領域に対するリードまたはライトアクセスを実行するときに、アクセス対象のデータに対応して格納された保証コードとアクセス対象のデータから生成された保証コードとの一致を確認することで、アクセス対象のデータを保証するようにしたものである。
【００１０】
外部記憶装置に格納したデータと、当該データに対応して、外部記憶装置に格納した保証コードを含む管理情報を、移行元の記憶装置システムから移行先の記憶装置システムに移行する際、管理情報の管理元を、移行元の記憶装置システムから移行先の記憶装置システムに切換えることで、外部記憶装置のデータ保証性を維持したまま、外部記憶装置のデータを移行することができる。
【発明の効果】
【００１１】
本発明によれば、外部記憶装置のデータ保証性を向上させることができる。また、外部記憶装置のデータ保証性を維持したまま、外部記憶装置の管理元を切り替えることができる。
【発明を実施するための最良の形態】
【００１２】
図１に、本発明の第一の実施形態の構成図を示す。記憶装置システム２、外部記憶装置８がネットワーク３を介してホストコンピュータ（ホスト計算機）１０と接続されている。また、記憶装置システム２や外部記憶装置８の構成状態の変更や内部状態の参照に使用する管理端末１１は、記憶装置システム２、外部記憶装置８と、ネットワーク３を介して接続されている。
【００１３】
記憶装置システム２（２ａ、２ｂ）は、外部記憶装置８のボリュームが対応付けられ、実際の記憶領域が外部記憶装置８に存在する外部ボリュームを持つ。外部記憶装置８に存在するボリュームがデータを格納したデータボリューム９２の場合は、外部ボリューム（データ）９０が対応し、データの保証コードを格納した保証コードボリューム９３の場合は、外部ボリューム（保証コード）９１が対応している。ホストコンピュータ１０や他の記憶装置システム２からのアクセスを受け付けるためのパス情報として、外部ボリューム（データ）９０は外部ボリューム（データ）ＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）９５を、データボリューム９２はデータボリュームＬＵ９６を、保証コードボリューム９３は保証コードボリュームＬＵ９７を、それぞれ持つ。データボリューム９２と保証コードボリューム９３を格納する外部記憶装置８は、別々であっても同じであっても良い。さらに、記憶装置システム２は、保証コードの外部記憶装置８への書込み又は外部記憶装置８に格納された保証コードの読出しを制御するＣＰＵ（プロセッサ）２００ａと、保証コードの生成／確認機能、暗号化／復号化機能を持つ保証コード生成／確認部２０６と、ハッシュや暗号のための鍵を管理する鍵管理部２０７を持つ。すなわち、保証コード生成／確認部２０６は、リード又はライトアクセス対象のデータに対応する保証コードを生成する保証コード生成部として機能するとともに、アクセス対象のデータから生成された保証コードとアクセス対象のデータに対応した保証コードとして外部記憶装置８から読み出された保証コードとの一致を確認する確認部として機能する。
【００１４】
ホストコンピュータ１０では、アプリケーションプログラム７０、パス管理プログラム７１が動作している。パス管理プログラム７１は、データへのアクセス経路を複数管理し、アプリケーションプログラム７０からの記憶装置システム２へのアクセス要求は、パス管理プログラム７１により、複数のアクセス経路から選択した適切な記憶装置システム２のボリュームに対し発行されるよう制御される。外部記憶装置８のデータボリューム９２と保証コードボリューム９３の管理を記憶装置システム２ａと記憶装置システム２ｂ間で移行する場合、ボリューム情報や鍵情報を移行する。
【００１５】
図２に、記憶装置システム２内部の概要を示す。記憶装置システム２は、以下のような要素からなる。ディスクドライブ２１０を格納する記憶装置２１。ホストコンピュータ１０、他の記憶装置システム２、外部記憶装置８とネットワーク３を介して記憶制御装置２０を接続するチャネルインタフェース２０１、記憶装置２１と記憶制御装置２０を接続するドライブインタフェース２０２、メモリパッケージ２０３、保守端末２０４をパスで接続した記憶制御装置２０である。
【００１６】
記憶装置２１には、ディスクドライブ（ハードディスクドライブ）２１０が単数または複数格納されている。各ドライブ２１０は、入出力ポートを複数持つ。記憶装置システム２において、記憶装置２１は複数存在しても良い。なお、ディスクドライブ（ハードディスクドライブ）に代わりに、記憶デバイスをフラッシュメモリなどの半導体メモリデバイスで構成し手も良い。
【００１７】
記憶制御装置２０には、ホストコンピュータ１０、他の記憶装置システム２、外部記憶装置８とキャッシュメモリ２０５の間のデータ転送を制御するチャネルインタフェース２０１、キャッシュメモリ２０５とドライブ２１０の間のデータ転送を制御するドライブインタフェース２０２を格納している。チャネルインタフェース２０１は、ホストコンピュータ１０、他の記憶装置システム２からのリード／ライト等の要求を受領する他、他の記憶装置システム８や外部記憶装置８に対し、リード／ライト要求を発行する。ドライブインタフェース２０２は、2枚がペアとなり、記憶装置２１のドライブ２１０に接続している。チャネルインタフェース２０１、ドライブインタフェース２０２の内部は、入出力ポート２００ｃ、２００ｄと、ローカルメモリ２００ｅ、２００ｆ、ＣＰＵ（プロセッサ）２００ａ、２００ｂ、データ転送の制御部２００ｇ、２００ｈから構成される。
【００１８】
保証コード生成／確認部２０６は、保証コードのハッシュ値とＬＲＣ（Ｌｏｎｇｉｔｕｄｉｎａｌ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）コードの生成／確認機能と、暗号化／復号化機能を持つ。ハッシュ値は、入力されるデータと鍵（初期値）情報を元に、例えば、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）といったハッシュ関数を計算した値を算出する。また、ＬＲＣは、入力されるデータの水平方向のパリティとして算出する。暗号化／復号化機能は、キャッシュメモリ２０５へハッシュ用の鍵や記憶装置システム２間の通信用鍵を暗号化して格納するために、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）といった共通鍵ブロック暗号をサポートする。さらに、記憶装置システム２間での通信をより高セキュアに実行したい場合は、公開鍵暗号の暗号化／復号化機能を持ってもよい。
【００１９】
鍵管理部２０７は、ボリューム毎のハッシュ用の鍵であるボリューム鍵や、他の記憶装置システム２と通信するためのシステム間通信鍵を生成する鍵生成部２０７１と、キャッシュメモリ２０５に格納する鍵情報６２を暗号化／復号化するための鍵暗号化鍵（共通鍵）を格納する鍵格納部２０７２から構成する。さらに、記憶装置システム２間での通信をより高セキュアに実行したい場合は、自記憶装置システム２の公開鍵暗号の通信鍵（秘密鍵）を格納できるようにしても良い。
【００２０】
保証コード生成／確認部２０６、鍵管理部２０７は、耐タンパ性を持つ機能ブロックとして実装する。耐タンパ性とは、外部からの機能内部の情報を不正に参照したり改ざんしたりするのを難しくする性質のことであり、ハードウェアとソフトウェアに関する技術を、通常複数組み合わせて使用する。図２では、保証コード生成/確認部２０６、鍵管理部２０７の機能ブロックを、保証コード生成／確認性能を重視してチャネルインタフェース２０１に実装しているが、別の構成として、例えば、保証コード生成/確認部２０６、鍵管理部２０７を独立したパッケージとして実装しても良い。
【００２１】
ＣＰＵ（プロセッサ）２００ａは、外部ボリューム登録プログラム５０、保証コード生成／更新プログラム５１、ライトプログラム５２、デステージプログラム５３、リードプログラム５４、ステージングプログラム５５、外部ボリューム移行プログラム５６、外部ボリューム管理移行プログラム５７等の各種制御プログラムを実行する。各種制御プログラムは、チャネルインタフェース２０１のＣＰＵ２００ａの他、ドライブインタフェース２０１のＣＰＵ（プロセッサ）２００ｂでも実行される。記憶装置システム２において、チャネルインタフェース２０１、ドライブインタフェース２０２は複数存在しても良い。
【００２２】
また、メモリパッケージ２０３は、ボリューム管理情報６０、外部ボリューム情報６１、鍵情報６２、認証コード情報６３等の、記憶装置システム２の管理情報の格納や、ホストコンピュータ１０とドライブ２１０間のデータ転送を中継するキャッシュメモリ２０５、データ転送の制御部２０５ａから構成される。メモリパッケージ２０３は複数存在しても良い。
【００２３】
保守端末２０４は、記憶措置システム２の構成を変更したり、内部状態を参照したりするために使用される。また、管理端末１１から記憶装置システム２への指示を中継する。保守端末２０４は、チャネルインタフェース２０１、ドライブインタフェース２０２に接続されていても良い。
【００２４】
図３ａに、ボリューム管理情報６０を示す。ボリューム管理情報６０は、記憶装置システム２のボリューム毎に存在し、各ボリュームの情報を格納する。ボリューム管理情報６０は、記憶装置システム２において一意に決まるボリューム番号、記憶領域が当該記憶装置システム２の“内部”に存在するか、あるいは、別の外部記憶装置８に存在するか（“外部”）を示す記憶位置、ドライブインタフェース２０２ペアからドライブ２１０へ接続されるパスにおいて、２本が１ペアとなっているパスのペアを特定する番号であるドライブパス番号、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）１、ＲＡＩＤ５といった形態で、データを冗長コード付きでドライブ２１０に格納する際、冗長コードをつけるデータ群を分散して格納する範囲のドライブ２１０群を特定するＲＡＩＤグループ番号、ＲＡＩＤグループ内における先頭アドレス番号と終端アドレス番号、ホストコンピュータ１０や他の記憶装置システム２からのアクセスを可能にするチャネルインタフェース２０１のポートとＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）を特定するホストパス定義情報、ボリューム容量、キャッシュメモリ２０５使用時にクリーン／ダーティデータを残すか否かを示すキャッシング実行状態、ボリュームが外部ボリュームの場合に格納しているデータ種別（データ／保証コード）を表す外部ボリューム属性、外部ボリュームの詳細な情報を格納する外部ボリューム付加情報６０１から構成される。
【００２５】
記憶位置が“内部”の項目については、外部ボリューム属性、外部ボリューム付加情報を無効としても良い。記憶位置が“外部”の項目については、ドライブパス番号、ＲＡＩＤグループ番号、先頭アドレス番号、終端アドレス番号の項目を無効としても良い。
【００２６】
図３ｂに、外部ボリューム付加情報６０１の内、データボリューム付加情報６０１ａを示す。データボリューム付加情報６０１ａは、ボリュームが外部ボリュームの場合で、外部ボリューム属性がデータの場合、ボリューム管理情報６０の外部ボリューム付加情報６０１に格納する。データボリューム付加情報６０１ａは、データボリューム９２の格納位置変更やデータ隣接保証コード生成に伴いデータボリューム９２を移行中であるか否かを示すデータボリューム状態、２つのデータボリューム情報６０２のどちらが有効かを示す有効情報フラグ、データボリューム９２の詳細な情報を格納するデータボリューム情報６０２、データボリューム９２移行の進捗を管理する進捗管理アドレス、データボリューム９２が保証コードボリューム９３を持つか否かを示す保証コードボリューム有無、保証コードを持つ場合、保証コードのボリューム番号を持つ。
【００２７】
図３ｃに、データボリューム情報６０２を示す。データボリューム情報６０２は、当該データボリューム情報６０２が有効か否かを示す有効フラグ、データボリューム９２を管理している外部ボリューム情報６１を特定する外部ボリューム番号、データボリューム９２へのデータ隣接保証コード有無、データ隣接保証コードのコード種別（LA（Logical  Address）、ＬＲＣ）、コードサイズ、コード内フォーマット等である保証コード属性を持つ。尚、記憶装置システム間２でデータボリューム９２の管理を移行した際、移行元記憶装置システム２ａと移行先記憶装置システム２ｂの間でボリューム番号が変わる場合は、ＬＡ内ボリューム番号オフセット情報を保証コード属性内に格納し、データ隣接保証コード生成／確認時にボリューム番号を修正する。
【００２８】
図３ｄに、データ隣接保証コードを示す。データ隣接保証コードは、例えば、（ｉ）に示すように、外部ボリューム（データ）９０のボリューム番号とブロック
番号からなるＬＡと、データの水平パリティであるＬＲＣから構成しても良い。データボリュームのデータとしてあらかじめ外部記憶装置８に格納されているデータを使用する場合、通常、（ｉｉ）に示すように、データは、例えば、５１２Ｂ単位といったブロックに分割して格納している。このため、データ隣接保証コードを付加するには、外部ボリューム移行プログラム５７により、（ｉｉｉ）に示すように同一／別の外部記憶装置８の同一／別のボリュームに再配置する。尚、再配置されたボリュームのデータ参照は、保証コード属性を参照し、データ隣接保証コードのサイズにより、アクセス先頭、アクセスサイズを修正する。
【００２９】
図３ｅに、外部ボリューム付加情報６０１の内、保証コードボリューム付加情報６０１ｂを示す。保証コードボリューム付加情報６０１ｂは、ボリュームが外部ボリュームの場合で、外部ボリューム属性が保証コードの場合、ボリューム管理情報６０の外部ボリューム付加情報６０１に格納する。保証コードボリューム付加情報６０１ｂは、保証コードボリューム９３の格納位置変更や保証コード内容の変更に伴い保証コードボリューム９３を移行中であるか否かを示す保証コードボリューム状態、２つの保証コードボリューム情報６０３のどちらが有効かを示す有効情報フラグ、保証コードボリューム９３の詳細な情報を格納する保証コードボリューム情報６０３、保証コードボリューム９３移行の進捗を管理する進捗管理アドレス、対応するデータボリューム９２のボリューム番号を持つ。
【００３０】
図３ｆに、保証コードボリューム情報６０３を示す。保証コードボリューム情報６０３は、当該保証コードボリューム情報６０３が有効か否かを示す有効フラグ、保証コードボリューム９３を管理している外部ボリューム番号、保証コードボリューム９３に格納しているハッシュ種別、ハッシュサイズ等を示すハッシュフォーマット情報、鍵情報６２内のボリューム鍵の鍵格納位置を示す鍵格納先情報、ハッシュ以外の保証コードのコード種別（ＬＡ、ＬＲＣ）、コードサイズ、コード内フォーマット等である保証コード属性を持つ。
【００３１】
図３ｇに、保証コードを示す。保証コードは、例えば、（ｉ）に示すように、デ
ータと鍵から算出したハッシュ値と、外部ボリューム（データ／保証コード）のボリューム番号とブロック番号からなるＬＡと、データ／保証コードの水平パリティであるＬＲＣから構成しても良い。通常保証コードは対応するデータと比較して小さいため、保証コードボリュームには、（ｉｉ）に示すように、一つのブロックに複数のデータブロックに対応する保証コードを格納する。データブロックに対応する保証コードの位置は、データボリューム９２に対応する保証コードボリューム９３を特定し、ハッシュフォーマット情報と保証コード属性から保証コードサイズを求めて算出する。尚、記憶装置システム間２で保証コードボリューム９３の管理を移行した際、移行元記憶装置システム２ａと移行先記憶装置システム２ｂの間でボリューム番号が変わる場合は、ＬＡ内ボリューム番号オフセット情報を保証コード属性内に格納し、保証コード生成／確認時にボリューム番号を修正する。
【００３２】
図４ａに、外部ボリューム情報６１を示す。外部ボリューム情報６１は、他の記憶装置システム２、または、外部記憶装置８のボリュームを一意に特定する情報であり、当該領域に格納された情報が有効であることを示す有効フラグ、他の記憶装置システム２、または、外部記憶装置８のボリュームを一意に特定するためSCSI（Small Computer System Interface）のINQUIRYコマンド等で得た情報を格納するデバイス特定情報、先頭ＬＢＡ（Logical Block Address）と終端ＬＢＡ、対応する記憶装置システム２のボリュームを特定する対応ボリューム番号、他の記憶装置システム２、または、外部記憶装置８のボリュームへのアクセス経路であるパス情報６１０のリストと、複数のパスの使用優先度を示すパス優先度情報からなる。
【００３３】
図４ｂに、外部ボリューム情報６１０のパス情報リストを構成するパス情報６１０を示す。パス情報６１０は、他の記憶装置システム２、または、外部記憶装置８の対象ボリュームへアクセスする経路を特定する情報であり、他の記憶装置システム２、または、外部記憶装置８のポートを特定するポートアドレス情報、当該ポートにおいて対象ボリュームが対応しているＬＵＮ番号、対象ボリュームアクセスするための記憶装置システム２の自ストレージポート番号、アクセスする経路の状態からなる。
【００３４】
図５に、ボリュームと管理情報の関係をまとめる。記憶装置システム２が管理するボリュームには、記憶領域を記憶装置２１に持つ内部ボリューム９４、記憶領域を他の記憶装置システム２や外部記憶装置８に持ち、データを格納している外部ボリューム（データ）９０、記憶領域を他の記憶装置システム２や外部記憶装置８に持ち、保証コードを格納している外部ボリューム（保証コード）９１がある。ホストコンピュータ１０や他の記憶装置システム２からのアクセスを受け付けるためのパス情報として、内部ボリューム９４は内部ボリュームＬＵ９８を、外部ボリューム（データ）９０は外部ボリューム（データ）ＬＵ９５を、ホストパス定義情報にそれぞれ持つ。各ボリュームにはボリューム管理情報６０が対応し、外部ボリューム（データ）９０には、データボリューム情報６０２を持つデータボリューム付加情報６０１ａが、外部ボリューム（保証コード）９１には、保証コードボリューム情報６０３を持つ保証コードボリューム付加情報６０１ｂが付加される。データボリューム情報６０２、保証コードボリューム情報６０３には、データボリューム９２、保証コードボリューム９３に対応する、外部ボリューム情報６１が対応する。外部記憶装置へのアクセスパス情報として、データボリューム９２はデータボリュームＬＵ９６を、保証コードボリューム９３は保証コードボリュームＬＵ９７を、パス情報６１０にそれぞれ持つ。尚、複数のアクセスパス情報がある場合は、複数のパス情報６１０を登録する。
【００３５】
図６ａに、鍵管理部に格納される鍵について示す。キャッシュメモリ２０５に格納する鍵情報６２を暗号化／復号化するための鍵暗号化鍵（共通鍵）を持つ。また、記憶装置システム２間での通信をより高セキュアに実行したい場合は、自記憶装置システム２の公開鍵暗号の通信鍵（秘密鍵）を格納できるようにしても良い。
【００３６】
図６ｂに、鍵情報６２を示す。鍵情報６２は、ボリューム毎のハッシュ用の鍵であるボリューム鍵と、他の記憶装置システム２と通信するためのシステム間通信鍵からなる。ボリューム鍵は、鍵暗号化鍵で暗号化されキャッシュメモリ２０５に格納される。ボリューム鍵格納領域は、保証コードボリューム９３移行時を考慮し、一つのボリューム当り複数のボリューム鍵を格納できるようにしても良い。また、システム間通信鍵は、他の記憶装置システム２と共通鍵暗号で通信する場合は、鍵暗号化鍵で暗号化されキャッシュメモリ２０５に格納される。また、記憶装置システム２間での通信をより高セキュアに実行したい場合は、システム間通信鍵を公開鍵としてキャッシュメモリ２０５に格納しても良い。
【００３７】
図７に、認証コード情報６３を示す。記憶装置システム２がサポートする保証コードフォーマット（ハッシュ、ＬＡ、ＬＲＣ等）の情報が格納され、外部ボリュームの移行先記憶装置システム２ｂを選択する際に参照する。
【００３８】
図８に、外部ボリューム登録の手順を示す。まず、外部ボリューム登録すべきボリュームを持つ外部記憶装置８をネットワーク３に接続する（ステップ８００）。次に、外部記憶装置８は、外部ボリューム登録すべきボリュームへのパスを定義する（ステップ８０１）。
【００３９】
次に、ホストコンピュータ１０／管理端末１１からの起動により、外部ボリューム登録プログラム５０が実行されると、記憶装置システム２は、以下の処理を実行する。まず、記憶装置システム２は、デバイス認識を実行し、他の記憶装置システム２や外部記憶装置８のボリュームを検出して外部ボリューム情報６１に登録し（ステップ８０２）、次に、外部ボリューム情報６１に登録したボリュームの交替パスを定義する（ステップ８０３）。他の記憶装置システム２や外部記憶装置８の複数のポートから、同じボリュームが見えている場合には、パス情報６１０に登録し、アクセスパスの優先度を決定する。次に、外部ボリューム情報６１に登録した他の記憶装置システム２や外部記憶装置８のボリュームの内、データボリューム９２とするボリュームを外部ボリュームとして定義する。この場合、記憶装置システム２は、ボリューム管理情報６０、データボリューム付加情報６０１ａを設定し、データボリューム情報６０２には、当該データボリューム９２に対応する外部ボリューム情報６１を登録する。次に、保証コードを付加するか否か決定する（ステップ８０５）。
【００４０】
保証コードを付加しない場合（ステップ８０５のＮ）、ステップ８０７へ移行し、保証コードを付加する場合（ステップ８０５のＹ）、記憶装置システム２は、保証コード生成／更新処理として、保証コード生成／更新プログラム５１を起動する（ステップ８０６）。最後に、記憶装置システム２は、データボリュームに対応付けた外部ボリューム（データ）９０のホストコンピュータ１０へのパスを定義する（ステップ８０７）。
【００４１】
図９に、保証コード生成／更新プログラム５１を示す。保証コード生成／更新プログラム５１の処理を開始するに際しては、まず、外部ボリューム登録時に外部ボリューム登録プログラム５０から起動される。また、ホストコンピュータ１０／管理端末１１からの保証コード生成／更新要求受領時に保証コード生成／更新プログラム５１の処理が実行される。以下では、各ステップをプロセッサ２００ａで実行するものとして説明するが、プロセッサ２００ｂや他のプロセッサで実行する場合には、キャッシュメモリ２０５を介し、処理をプロセッサ間で移行して実行しても良い。
【００４２】
まず、プロセッサ２００ａは、外部ボリューム（データ）９０に保証コードボリューム９３が有るか判断し（ステップ９００）、外部ボリューム（データ）９０に保証コードボリューム９３が無い場合（ステップ９００のＮ）、保証コード生成であり、外部ボリューム情報６１に登録したボリュームの内、保証コードボリューム９３とするボリュームを選択し、外部ボリュームとして定義する（ステップ９０１）。この場合、プロセッサ２００ａは、ボリューム管理情報６０、保証コードボリューム付加情報６０１ｂを設定し、保証コードボリューム情報６０３には、当該保証コードボリューム９３に対応する外部ボリューム情報６１を登録する。尚、保証コードボリューム９３へ保証コードを書き込むため、保証コードボリューム９３に元々格納されていたデータは無効となる。次に、プロセッサ２００ａは、外部ボリューム（データ）９０のデータボリューム付加情報６０１ａの保証コードボリューム有無を“有”に更新する（ステップ９０２）。
【００４３】
一方、外部ボリューム（データ）に保証コードボリュームが有る場合（ステップ９００のＹ）、保証コード更新であり、プロセッサ２００ａは、外部ボリューム情報６１を参照し新たに保証コードボリューム９３とするボリュームを選択する（ステップ９０３）。尚、保証コードボリューム９３へ保証コードを書き込むため、保証コードボリューム９３に元々格納されていたデータは無効となる。
【００４４】
次に、プロセッサ２００ａは、保証コードボリューム９３に格納するハッシュ値を算出するのに必要な鍵を新規に生成し（ステップ９０４）、生成した鍵を、鍵暗号化鍵で暗号化し、鍵情報６２に格納する。次に、プロセッサ２００ａは、新たな保証コードボリューム情報６０３を設定する（ステップ９０５）。設定する領域は、有効情報フラグが指示していない側の保証コードボリューム情報６０３領域である。プロセッサ２００ａは、保証コードボリュームの外部ボリューム情報６１を特定する外部ボリューム番号、ハッシュフォーマット情報、鍵格納先情報、保証コード属性を設定し、次に、保証コードボリューム付加情報６０１ｂの保証コードボリューム状態を移行中に設定する（ステップ９０６）。この後、プロセッサ２００ａは、保証コードボリューム付加情報６０１ｂの進捗管理アドレスを外部ボリューム（データ）９０の先頭に初期化する（ステップ９０７）。
【００４５】
次に、プロセッサ２００ａは、外部ボリューム（データ）９０の終端まで参照したか判断し（ステップ９０８）、外部ボリューム（データ）９０の終端まで参照した場合（ステップ９０８のＹ）、ステップ９１３へ移行し、外部ボリューム（データ）９０の終端まで参照していない場合（ステップ９０８のＮ）、データボリューム９２からデータのステージングを実行する（ステップ９０９）。ステージングについては、ステージングプログラム５５として後述する。尚、保証コード更新の場合、データステージング時の保証コード確認は、現在有効な保証コードボリューム情報６０３に従って実行する。
【００４６】
次に、プロセッサ２００ａは、新たな保証コードボリューム情報６０３に従い、保証コードを生成する（ステップ９１０）。データと鍵から算出したハッシュ値と、外部ボリューム（データ）のボリューム番号とブロック番号からなるＬＡと、データの水平パリティであるＬＲＣから構成しても良い。次に、プロセッサ２００ａは、生成した保証コードをキャッシュメモリから新たな保証コードボリューム９３に書込み（ステップ９１１）、保証コードを生成／更新した分だけ進捗管理アドレスを更新する（ステップ９１２）。その後、ステップ９０８へ移行し、最後に、プロセッサ２００ａは、有効情報フラグを反転（１⇔２）し、保証コードボリューム付加情報６０１ｂの保証コードボリューム状態を定常に設定する（ステップ９１３）。
【００４７】
図１０に、ライトプログラム５２を示す。ライトプログラム５２は、ホストコンピュータ１０からライト要求を受領した際に起動される。
【００４８】
まず、プロセッサ２００ａは、ホストコンピュータ１０からライト要求を受領し（ステップ１０００）、次に、ホストコンピュータ１０からライトデータを受領し、キャッシュメモリ２０５に格納する（ステップ１００１）。次に、プロセッサ２００ａは、ボリューム管理情報６０から、ライト対象ボリュームのキャッシング実行状態を判断し（ステップ１００２）、キャッシング実行中の場合（ステップ１００２のＹ）、ステップ１００４へ移行し、キャッシング非実行中の場合（ステップ１００２のＮ）ライト対象データのデステージを実行する（ステップ１００３）。デステージについては、デステージプログラム５３として後述する。最後に、プロセッサ２００ａは、ホストコンピュータ１０にライト終了を報告する（ステップ１００４）。
【００４９】
図１１に、デステージプログラム５３を示す。デステージプログラム５３は、ホストコンピュータ１０からのライト要求受領時、ライトプログラム５２中において実行する。また、ホストコンピュータ１０からのライト要求とは非同期に記憶装置システム２がデステージプログラム５３の処理を実行する。
【００５０】
まず、プロセッサ２００ａは、デステージ対象データを決定し（ステップ１１００）、ライト要求受領時、ライトプログラム５２中で実行する場合、ライトデータをデステージ対象データとする。ライト要求とは非同期に実行する場合、例えば、キャッシュメモリ２０５に格納されたダーティデータの内、最も古いデータをデステージ対象データとする。次に、プロセッサ２００ａは、デステージ対象データが内部ボリューム９４のデータか判断し（ステップ１１０１）、内部ボリューム９４のデータである場合（ステップ１１０１のＹ）、デステージ対象データをキャッシュメモリ２０５から記憶装置２１へ書き込む（１１０２）。ＲＡＩＤ構成の内部ボリューム９４の場合、プロセッサ２００ａは、必要ならばパリティ生成を実行し、データとパリティを記憶装置２１へ書き込む。以上で、処理を終了する。
【００５１】
一方、内部ボリューム９４のデータでない場合（ステップ１１０１のＮ）、つまり、外部ボリューム（データ ）９０のデータである場合、プロセッサ２００ａは、デステージ対象のデータボリューム９２を特定する（ステップ１１０３）。例えば、プロセッサ２００ａは、外部ボリューム（データ ）９０に対応するボリューム管理情報６０から、データボリューム付加情報６０１ａを参照し、現在有効なデータボリューム情報６０２から、外部ボリューム情報６１を辿り、データボリューム９２を特定する。その際、プロセッサ２００ａは、データボリューム状態が移行中である場合は、進捗管理アドレスを参照し、デステージ先のアドレスに対応するデータボリューム情報６０２に従ってデータボリューム９２を特定する。
【００５２】
次に、プロセッサ２００ａは、データボリューム情報６０２からデータ隣接保証コード有無を判断し（ステップ１１０４）、データ隣接保証コード有無が“無”の場合（ステップ１１０４のＮ）、デステージ対象データをキャッシュメモリ２０５からデータボリューム９２へ書き込む（ステップ１１０５）。その後、ステップ１１０８へ移行する。一方、データ隣接保証コード有無が“有”の場合（ステップ１１０４のＹ）、プロセッサ２００ａは、データボリューム情報６０２に従ってデータ隣接保証コードを生成し（ステップ１１０６）、デステージ対象データとデータ隣接保証コードをキャッシュメモリ２０５からデータボリューム９２へ書き込む（ステップ１１０７）。
【００５３】
次に、プロセッサ２００ａは、デステージ対象の保証コードボリューム９３を特定する（ステップ１１０８）。例えば、プロセッサ２００ａは、外部ボリューム（データ ）９０に対応するボリューム管理情報６０から、ボリューム番号（保証コード）を参照し、外部ボリューム（保証コード）９１を特定し、外部ボリューム（保証コード）９１に対応するボリューム管理情報６０から、保証コードボリューム付加情報６０１ｂを参照し、現在有効な保証コードボリューム情報６０３から、外部ボリューム情報６１を辿り、保証コードボリューム９３を特定する。その際、プロセッサ２００ａは、保証コードボリューム状態が移行中である場合は、進捗管理アドレスを参照し、デステージ先のアドレスに対応する保証コードボリューム情報６０３に従って保証コードボリューム９３を特定する。
【００５４】
次に、プロセッサ２００ａは、保証コードボリューム有無を判断する（ステップ１１０９）。保証コードボリューム無と判断するケースには、データボリューム付加情報６０１ａの保証コードボリューム有無が“無”の他、データボリューム付加情報６０１ａの保証コードボリューム有無が“有”で、対応する保証コードボリュームの保証コードボリューム付加情報６０１ｂのデステージ先のアドレスに対応する保証コードボリューム情報６０３が無効の場合（データ保証ボリュームを生成中の時）がある。
【００５５】
プロセッサ２００ａは、保証コードボリュームが無い場合（ステップ１１０９のＮ）、処理を終了し、保証コードボリュームが有る場合（ステップ１１０９のＹ）、保証コードボリューム情報６０３に従って保証コードを生成し（ステップ１１１０）、生成した保証コードをキャッシュメモリ２０５から保証コードボリューム９３へ書き込む（ステップ１１１１）。
【００５６】
図１２に、リードプログラム５４を示す。リードプログラム５４は、ホストコンピュータ１０からリード要求を受領した際に起動される。
【００５７】
まず、ホストコンピュータ１０からリード要求をプロセッサ２００ａが受領すると（ステップ１２００）、プロセッサ２００ａは、リード対象データのステージングを実行する（ステップ１２０１）。ステージングについては、ステージングプログラム５５として後述する。
【００５８】
次に、プロセッサ２００ａは、ステージングが正常終了したか判断し（ステップ１２０２）、ステージングが正常終了した場合（ステップ１２０２のＹ）、ホストコンピュータ１０へリード対象データを転送し（ステップ１２０３）、ホストコンピュータ１０へリード終了を報告する（ステップ１２０４）。
【００５９】
一方、ステージングが正常終了しなかった場合（ステップ１２０２のＮ）、プロセッサ２００ａは、管理端末１１にリード対象データの位置情報と共にリード失敗を表示し（ステップ１２０５）、ホストコンピュータ１０へリード失敗を報告する（ステップ１２０６）。リード失敗した箇所の回復方法は、例えば、再度ホストコンピュータ１０からリード失敗位置にデータをライトする方法がある。
【００６０】
図１３に、ステージングプログラム５５を示す。ステージングプログラム５５は、ホストコンピュータ１０からのリード要求受領時、リードプログラム５４中において実行する。また、保証コード生成／更新プログラム５１、外部ボリューム移行プログラム５６においても実行する。
【００６１】
まず、プロセッサ２００ａは、ステージング対象データがキャッシュメモリ２０５に存在するか判断し（ステップ１３００）、ステージング対象データがキャッシュメモリ２０５に存在する場合（ステップ１３００のＹ）、ステージング正常終了（ステップ１３１５）として処理を終了する。ステージング対象データがキャッシュメモリ２０５に存在しない場合（ステップ１３００のＮ）、プロセッサ２００ａは、ステージング対象データが内部ボリューム９４のデータか判断する（ステップ１３０１）。
【００６２】
ステージング対象データが内部ボリューム９４のデータである場合（ステップ１３０１のＹ）、プロセッサ２００ａは、ステージング対象データを記憶装置２１からキャッシュメモリ２０５へ読み出し（ステップ１３０２）、ステージング正常終了（ステップ１３１５）として処理を終了する。一方、ステージング対象データが内部ボリューム９４のデータでない場合（ステップ１３０１のＮ）、つまり、外部ボリューム（データ ）９０のデータである場合、プロセッサ２００ａは、ステージング対象データのデータボリュームを特定する（ステップ１３０３）。詳細はステップ１１０３参照。
【００６３】
次に、プロセッサ２００ａは、データボリューム情報６０２からデータ隣接保証コード有無を判断し（ステップ１３０４）、データ隣接保証コード有無が“無”の場合（ステップ１３０４のＮ）、ステージング対象データをデータボリューム９２からキャッシュメモリ２０５に読み込む（ステップ１３０５）。その後、ステップ１３０９へ移行する。データ隣接保証コード有無が“有”の場合（ステップ１３０４のＹ）、プロセッサ２００ａは、ステージング対象データとデータ隣接保証コードをデータボリューム９２からキャッシュメモリ２０５へ読み込む（ステップ１３０６）。
【００６４】
次に、プロセッサ２００ａは、データボリューム情報６０２に従ってデータ隣接保証コードを生成し、読み出したデータ隣接保証コードと比較し（ステップ１３０７）、データ隣接保証コードが正常であるか判断する（ステップ１３０８）。生成したデータ隣接保証コードと読み出したデータ隣接保証コードが一致する場合、プロセッサ２００ａは、正常と判断する。一方、データ隣接保証コードが正常でない場合（ステップ１３０８のＮ）、プロセッサ２００ａは、ステージングエラー終了（ステップ１３１６）として処理を終了する。データ隣接保証コードが正常である場合（ステップ１３０８のＹ）、プロセッサ２００ａは、ステージング対象の保証コードボリューム９３を特定する（ステップ１３０９）。詳細はステップ１１０８参照。
【００６５】
次に、プロセッサ２００ａは、保証コードボリューム有無を判断する（ステップ１３１０）。詳細はステップ１１０９参照。保証コードボリュームが無い場合（ステップ１３１０のＮ）、プロセッサ２００ａは、ステージング正常終了（ステップ１３１５）として処理を終了する。保証コードボリュームが有る場合（ステップ１３１０のＹ）、プロセッサ２００ａは、保証コードがキャッシュメモリ２０５に存在するか判断し（ステップ１３１１）、保証コードがキャッシュメモリに存在する場合（ステップ１３１１のＹ）、ステップ１３１３へ移行する。
【００６６】
保証コードがキャッシュメモリに存在しない場合（ステップ１３１１のＮ）、プロセッサ２００ａは、保証コードを保証コードボリューム９３からキャッシュメモリ２０５へ読み込み（ステップ１３１２）、保証コードボリューム情報６０３に従って保証コードを生成し、読み出した保証コードと比較し（ステップ１３１３）、保証コードが正常であるか判断する（ステップ１３１４）。次に、プロセッサ２００ａは、生成した保証コードと読み出した保証コードが一致する場合、正常と判断し、保証コードが正常である場合（ステップ１３１４のＹ）、ステージング正常終了（ステップ１３１５）として処理を終了する。一方、保証コードが正常でない場合（ステップ１３１４のＮ）、プロセッサ２００ａは、ステージングエラー終了（ステップ１３１６）として処理を終了する。
【００６７】
図１４に、外部ボリューム移行プログラム５６を示す。外部ボリューム移行プログラム５６は、外部ボリューム（データ）の移行を対象にしており、ホストコンピュータ１０／管理端末１１からのデータ隣接保証コード付加要求受領時、データ格納先データボリューム９２変更要求受領時に実行される。
【００６８】
まず、プロセッサ２００ａは、外部ボリューム情報６１を参照し新たにデータボリューム９２とするボリュームを選択し（ステップ１４００）、新たなデータボリューム情報６０２を設定する（ステップ１４０１）。設定する領域は、有効情報フラグが指示していない側のデータボリューム情報６０２領域である。プロセッサ２００ａは、データボリュームの外部ボリューム情報６１を特定する外部ボリューム番号、データ隣接保証コード有無、保証コード属性を設定する。次に、プロセッサ２００ａは、データボリューム付加情報６０１ａのデータボリューム状態を移行中に設定し（ステップ１４０２）、データボリューム付加情報６０１ａの進捗管理アドレスを外部ボリューム（データ）９０の先頭に初期化する（ステップ１４０３）。
【００６９】
次に、プロセッサ２００ａは、外部ボリューム（データ）９０の終端まで参照したか判断し（ステップ１４０４）、外部ボリューム（データ）９０の終端まで参照した場合（ステップ１４０４のＹ）、ステップ１４０９へ移行し、外部ボリューム（データ）９０の終端まで参照していない場合（ステップ１４０４のＮ）、データボリューム９２からデータのステージングを実行する（ステップ１４０５）。ステージングについては、ステージングプログラム５５を実行する。尚、データステージング時のデータ隣接保証コード確認は、現在有効なデータボリューム情報６０２に従い実行する。
【００７０】
次に、プロセッサ２００ａは、新たなデータボリューム情報６０２に従い、データ隣接保証コードを生成する（ステップ１４０６）。この場合、外部ボリューム（データ）のボリューム番号とブロック番号からなるＬＡと、データの水平パリティであるＬＲＣから構成しても良い。次に、プロセッサ２００ａは、生成したデータ隣接保証コードをキャッシュメモリから新たなデータボリュームに書込み（ステップ１４０７）、データ隣接保証コードを生成した分だけ進捗管理アドレスを更新する（ステップ１４０８）。その後、ステップ１４０４へ移行する。最後に、プロセッサ２００ａは、有効情報フラグを反転（１⇔２）し、データボリューム付加情報６０１ａのデータボリューム状態を定常に設定する（ステップ１４０９）。
【００７１】
図１５に、データボリューム９２と保証コードボリューム９３の管理を、移行元記憶装置システム２ａと移行先記憶装置システム２ｂとの間で移行する手順を示す。移行の各手順での指示は、ホストコンピュータ１０／管理端末１１から実行する。記憶装置システム２では、外部ボリューム管理移行プログラム５７が処理を実行する。尚、図１６ａ〜１６ｌは図１５の処理手順中の移行状態を示す。図１５の説明において、対応する図１６ａ〜１６ｌの番号を併記する。表現を簡単にするため、図１６ではＬＵ表記を省略する。
【００７２】
まず、移行元記憶装置システム２ａは、移行対象の外部ボリューム（データ）９０ａを決定し（ステップ１５００）（図１６ａ）、移行対象の外部ボリューム（データ）９０ａに保証コードボリュームが有るか判断し（ステップ１５０１）、データボリューム付加情報６０１ａの保証コードボリューム有無が“有”の場合、有りと判断する。ただし、保証コードボリューム状態が移行中の場合は、移行が終了するまで外部ボリューム（データ）９０の移行を保留する。移行対象の外部ボリューム（データ）９０ａに保証コードボリュームが無い場合（ステップ１５０１のＮ）、ステップ１５０３へ移行する。
【００７３】
移行対象の外部ボリューム（データ）９０ａに保証コードボリュームが有る場合（ステップ１５０１のＹ）、移行対象の外部ボリューム（データ）９０ａに対応する保証コードを格納した外部ボリューム（保証コード）９１ａを移行対象とする（ステップ１５０２）。移行元記憶装置システム２ａは、外部ボリューム（データ ）９０ａに対応するボリューム管理情報６０から、ボリューム番号（保証コード）を参照し、外部ボリューム（保証コード）９１ａを特定する。
【００７４】
次に、移行元記憶装置システム２ａは、移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａに関連する情報（管理情報）を移行先記憶装置システム２ｂへ転送する（ステップ１５０３）。転送する管理情報は、移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａの、ボリューム管理情報６０（データボリューム付加情報６０１ａ、データボリューム情報６０２、保証コードボリューム付加情報６０１ｂ、保証コードボリューム情報６０３含む）、外部ボリューム情報６１（パス情報６１０含む）、鍵情報６２である。鍵情報６２はシステム間通信鍵で暗号化し転送する。尚、移行先記憶装置システム２ｂは、認証コード情報６３から判断して、移行元記憶装置システム２ａと同じ保証コードの生成／確認が可能な認証コードサポートを持つ記憶装置システム２から選択するものとする。
【００７５】
次に、移行先記憶装置システム２ｂは、移行元記憶装置システム２ａからの移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａに関連する情報（管理情報）を受領し（ステップ１５０４）（図１６ｂ）、次に、デバイス認識を実行し、他の記憶装置システム２や外部記憶装置８のボリュームを検出して外部ボリューム情報６１に登録する（ステップ１５０５）。その際、移行先記憶装置システム２ｂは、移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａに対応する外部記憶装置８のデータボリューム９２、保証コードボリューム９３、また、移行対象の外部ボリューム（データ）９０ａを検出して外部ボリューム情報６１に登録する（ステップ１５０５）。
【００７６】
次に、移行先記憶装置システム２ｂは、外部ボリューム情報６１に登録したボリュームの交替パスを定義し（ステップ１５０６）、複数のポートから、同じボリュームが見えている場合には、パス情報６１０に登録し、アクセスパスの優先度を決定する。
【００７７】
次に、移行先記憶装置システム２ｂは、外部ボリューム情報６１に登録した他の記憶装置システム２や外部記憶装置８のボリュームの内、移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａに対応する外部記憶装置８のデータボリューム９２、保証コードボリューム９３を、外部ボリューム（データ）９０ｂ、外部ボリューム（保証コード）９１ｂとして定義する（ステップ１５０７）。このとき、移行先記憶装置システム２ｂは、ボリューム管理情報６０、データボリューム付加情報６０１ａ／保証コードボリューム付加情報６０１ｂを設定し、データボリューム情報６０２／保証コードボリューム情報６０３には、当該外部ボリューム情報６１を登録する。尚、キャッシング状態は非実行中とする。
【００７８】
次に、移行先記憶装置システム２ｂは、外部ボリューム情報６１に登録した移行対象の外部ボリューム（データ）９０ａを、外部ボリューム（データ）９０ｂの（データボリューム９２が登録されていない側の）データボリューム情報６０２に登録し、有効情報フラグを更新し、移行対象の外部ボリューム（データ）９０ａのデータボリューム情報６０２を有効とする（ステップ１５０８）。これにより、ホストコンピュータ１０からの、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂへのアクセス要求は、移行先記憶装置システム２ｂから移行元記憶装置システム２ａの移行対象の外部ボリューム（データ）９０ａへのアクセス要求として実行されることになる。次に、移行先記憶装置システム２ｂは、外部ボリューム（データ）９０ｂのホストコンピュータ１０へのパスを定義する（ステップ１５０９）（図１６ｃ、“Ｐ”は優先パス、“Ｓ”は非優先パスを示す）。
【００７９】
図１５ｂに移って、次に、ホストコンピュータ１０は、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂへのパス定義を追加し（ステップ１５１０）、その後、デバイス認識を実行し、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂを検出する（ステップ１５１１）。次に、ホストコンピュータ１０は、パス管理プログラム７１において、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂをデータボリューム９２に格納されたデータへアクセスするための交替パスとして定義する（ステップ１５１２）（図１６ｄ）。以降、ホストコンピュータ１０から、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂへのアクセスが開始される。
【００８０】
次に、移行元記憶装置システム２ａは、デバイス認識を実行し、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂを外部ボリューム情報６１に登録する（ステップ１５１３）。次に、外部ボリューム情報６１に登録したボリュームの交替パスを定義する（ステップ１５１４）。次に、移行元記憶装置システム２ａは、外部ボリューム情報６１に登録した移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂを、移行対象の外部ボリューム（データ）９０ａの（データボリューム９２が登録されていない側の）データボリューム情報６０２に登録する（ステップ１５１５）（図１６ｅ）。これにより、有効情報フラグを反転させれば、ホストコンピュータ１０から、移行元記憶装置システム２ａの移行対象の外部ボリューム（データ）９０ａへのアクセス要求は、移行元記憶装置システム２ａから移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂへのアクセス要求として実行されることになる。
【００８１】
次に、ホストコンピュータ１０は、移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａのキャッシュメモリ２０５のダーティデータを、データボリューム９２、保証コードボリューム９３に全てデステージし、デステージ完了後、移行対象の外部ボリューム（データ）９０ａと外部ボリューム（保証コード）９１ａのキャッシング実行状態を非実行中とする（ステップ１５１６）（図１６ｆ）。これにより、データボリューム９２、保証コードボリューム９３のデータは、移行元記憶装置システム２ａでも移行先記憶装置システム２ｂでもキャッシングされず、ホストコンピュータ１０とデータボリューム９２、保証コードボリューム９３の間でスルー動作となる。
【００８２】
次に、移行先記憶装置システム２ｂは、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂの有効情報フラグを反転し、データボリューム９２が登録されている側のデータボリューム情報６０２を有効とする（ステップ１５１７）（図１６ｇ）。これにより、ホストコンピュータ１０から、移行元記憶装置システム２ｂの外部ボリューム（データ）９０ｂへのアクセス要求は、移行元記憶装置システム２ｂからデータボリューム９２へのアクセス要求として実行されることになる。これにより、データボリューム９２へのデステージ／ステージングが開始されるため、保証コードの生成／確認のために、保証コードボリューム９３へのアクセス要求が発生することになる。
【００８３】
次に、移行元記憶装置システム２ａは、移行対象の外部ボリューム（データ）９０ａの有効情報フラグを反転し、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂが登録されている側のデータボリューム情報６０２を有効とする（ステップ１５１８）（図１６ｈ）。これにより、ホストコンピュータ１０から、移行元記憶装置システム２ａの移行対象の外部ボリューム（データ）９０ａへのアクセス要求は、移行元記憶装置システム２ａから、移行先記憶装置システム２ｂの外部ボリューム（データ）９０ｂへのアクセス要求として実行されることになる。これにより、データボリューム９２へのデステージ／ステージングが中断となるため、保証コードボリューム９３へのアクセスは中断する。次に、移行先記憶装置システム２ｂは、外部ボリューム（データ）９０ｂ、外部ボリューム（保証コード）９１ｂのキャッシング実行状態を実行中とする（ステップ１５１９）（図１６ｉ）。
【００８４】
図１５ｃに移って、次に、ホストコンピュータ１０は、パス管理プログラム７１において、移行先記憶装置システム２ａの移行対象の外部ボリューム（データ）９０ａをデータボリューム９２に格納されたデータへアクセスするための交替パスとしての定義から削除する（ステップ１５２０）。以降、ホストコンピュータ１０から、移行元記憶装置システム２ａの外部ボリューム（データ）９０ａへのアクセスは中断される。次に、ホストコンピュータ１０は、移行先記憶装置システム２ａの移行対象の外部ボリューム（データ）９０ａに対応するパス定義を削除する（ステップ１５２１）（図１６ｊ）。
【００８５】
次に、移行先記憶装置システム２ｂは、移行先記憶装置システム２ｂの移行対象の外部ボリューム（データ）９０ｂのデータボリューム情報６０２から、移行元記憶装置システム２ａの移行対象の外部ボリューム（データ）９０ａを削除する（ステップ１５２２）（図１６ｋ）。
【００８６】
次に、移行元記憶装置システム２ａは、移行対象の外部ボリューム（データ）９０ａのホストコンピュータ１０へのパス定義を解除する（ステップ１５２３）。次に、移行元記憶装置システム２ａは、移行対象の外部ボリューム（データ）９０ａのデータボリューム情報６０２から、移行元記憶装置システム２ｂの外部ボリューム（データ）９０ｂを削除する（ステップ１５２４）。次に、移行元記憶装置システム２ａは、移行対象の外部ボリューム（データ）９０ａを、移行元の記憶装置システム２ｂの外部ボリューム（保証コード）９１ａ定義から削除する(ステップ１５２５)。すなわち、移行元記憶装置システム２ａは、ボリューム管理情報６０（データボリューム付加情報６０１ａ／保証コードボリューム付加情報６０１ｂ、データボリューム情報６０２／保証コードボリューム情報６０３含む）をクリアする。最後に、移行元記憶装置システム２ａは、移行対象のデータボリューム９２、保証コードボリューム９３の外部ボリューム情報６１（パス情報６１０含む）を削除する（ステップ１５２６）（図１６ｌ）。
【００８７】
本実施形態によれば、外部記憶装置８のデータ保証性を向上させることができるとともに、外部記憶装置８のデータ保証性を維持したまま、外部記憶装置８の管理元を切り替えることができる。
【００８８】
図１７に、本発明の第二の実施形態の構成図を示す。説明の重複をさけるため、第一の実施形態との差異についてのみ説明する。
【００８９】
図１７では、図１における、ホストコンピュータ１０に実装されたパス管理プログラム７１の代わりに、ネットワーク３が仮想管理機能を持つ仮想管理ネットワーク装置３１となっている。仮想管理ネットワーク装置３１では、一つまたは複数の記憶装置システム２が提供するボリューム群を、ホストコンピュータ１０に対して、任意に割り当てる機能を持つ。
【００９０】
図１８に、仮想管理ネットワーク装置３１の構成例を示す。尚、当該構成例が本発明を限定するものではない。
【００９１】
仮想管理ネットワーク装置３１は、インタフェース３２と、制御モジュール３３、制御情報メモリ３４をスイッチ３５にて互いに接続した構成である。接続は、スイッチ接続やバス接続でもよく、本発明を限定するものではない。尚、インタフェース３２は複数存在する。また、制御情報メモリ３４は２重化されている。
【００９２】
インタフェース３２は、ホストコンピュータ１０、記憶装置システム２、外部記憶装置８に接続している。インタフェース３２のメモリには、リード／ライト要求、データ、ステータス等を管理する入出力管理情報や、これらの転送先を特定する転送制御情報（仮想管理ネットワーク装置内部／外部）等が格納されている。
【００９３】
制御モジュール３３は、仮想管理ネットワーク装置３１の構成変更や内部状態の監視等を行う。尚、仮想管理ネットワーク装置３１は、管理端末１１等と接続し、管理端末１１等外部からの指示により動作しても良い。
【００９４】
制御情報メモリ３４には、制御情報メモリ３４に格納されたデータの更新を排他的に制御するための排他情報、仮想管理ネットワーク装置３１が検出した記憶装置システム２のボリュームに関する情報である記憶装置システムボリューム情報（この記憶装置システムボリューム情報は、記憶装置システム２の固有情報、アドレス情報、ボリューム番号等を有する。）、検出された記憶装置システムボリュームと、このボリュームによって構成される仮想ボリュームとの対応を示す、仮想ボリューム―記憶装置システムボリューム間マッピング情報、仮想ボリュームをどのようにホストコンピュータ１０に見せているか（即ち、仮想ボリュームをどのようにホストコンピュータ１０にアクセスさせるか）を管理する、ホスト提供ボリューム―仮想ボリューム間マッピング情報等を持つ。
【００９５】
ホストコンピュータ１０は、ホスト提供ボリューム―仮想ボリューム間マッピング情報において自身に対応付けられている仮想ボリュームにアクセスすることができる。ホストコンピュータ１０が仮想ボリュームにアクセスする際には、ホスト提供ボリュームの識別情報を有するアクセス要求を送信する。このアクセス要求を受信した仮想管理ネットワーク装置３１は、ホスト提供ボリューム−仮想ボリューム間マッピング情報を参照して、仮想ボリュームを割り出し、さらに、仮想ボリューム―記憶装置システムボリューム間マッピング情報を参照して、アクセス要求中の識別情報が示す記憶装置システム２、ボリューム番号を割り出す。そして仮想管理ネットワーク装置３１は、ホストコンピュータ１０から受信したアクセス要求を、割り出されたボリューム番号（若しくは割り出されたボリュームの識別情報）を有するアクセス要求に変換して、割り出された記憶装置システム２宛に送信する。
【００９６】
ホストコンピュータ１０のアクセス先ボリュームを切り替える際には、仮想管理ネットワーク装置３１が、管理端末１１またはホストコンピュータ１０からのボリューム切り替え指示に基づいて、仮想ボリューム―記憶装置システムボリューム間マッピング情報を書き換えることとなる。即ち、仮想管理ネットワーク装置３１は、ホストコンピュータ１０が移行対象ボリュームにアクセスする際にアクセス先として指定する、ホスト提供ボリュームが対応する仮想ボリュームに対応付けられる記憶装置システムボリュームを、移行元記憶装置システム２ａの移行対象ボリュームから移動先記憶装置システム２ｂの移行対象ボリュームに書き換える。
【００９７】
この様にすれば、ホストコンピュータ１０は、アクセス先ボリュームが移動元記憶装置システム２ａから移動先記憶装置システム２ｂに変更になっても、同じホスト提供ボリュームや仮想ボリュームの識別情報を使用し続けることで、アクセス先ボリュームの変更後も移動対象ボリュームにアクセスすることができる。尚、係る仮想ボリューム―記憶装置システムボリューム間マッピング情報の書き換えや、マッピング情報に基づくアクセス要求の送信は、仮想管理ネットワーク装置３１内のメモリに格納されているプログラムを仮想管理ネットワーク装置３１内のＣＰＵが実行することにより実行される。
【００９８】
図１５において、ホストコンピュータ１０で実行している処理（ステップ１５１０、１５１１、１５１２、１５２０、１５２１）を仮想管理ネットワーク装置３１が実行することとなる。
【００９９】
本実施形態によれば、ホストコンピュータ１０は、アクセス先ボリュームが移動元記憶装置システム２ａから移動先記憶装置システム２ｂに変更になっても、同じホスト提供ボリュームや仮想ボリュームの識別情報を使用し続けることで、アクセス先ボリュームの変更後も移動対象ボリュームにアクセスすることができる。
【図面の簡単な説明】
【０１００】
【図１】本発明の第一の実施形態を示す構成図である。
【図２】本発明の第一の実施形態における、記憶装置システムの構成図である。
【図３ａ】本発明の第一の実施形態における、ボリューム管理情報の一例を示す図である。
【図３ｂ】本発明の第一の実施形態における、データボリューム付加情報の一例を示す図である。
【図３ｃ】本発明の第一の実施形態における、データボリューム情報の一例を示す図である。
【図３ｄ】本発明の第一の実施形態における、データボリューム隣接保証コードの一例を示す図である。
【図３ｅ】本発明の第一の実施形態における、保証コードボリューム付加情報の一例を示す図である。
【図３ｆ】本発明の第一の実施形態における、保証コードボリューム情報の一例を示す図である。
【図３ｇ】本発明の第一の実施形態における、保証コードの一例を示す図である。
【図４ａ】本発明の第一の実施形態における、外部ボリューム情報の一例を示す図である。
【図４ｂ】本発明の第一の実施形態における、パス情報の一例を示す図である。
【図５】本発明の第一の実施形態における、ボリュームと、ボリューム管理情報、外部ボリューム情報の関連の一例を示す図である。
【図６ａ】本発明の第一の実施形態における、鍵格納部に格納する鍵の一例を示す図である。
【図６ｂ】本発明の第一の実施形態における、鍵情報の一例を示す図である。
【図７】本発明の第一の実施形態における、認証コード情報の一例を示す図である。
【図８】本発明の第一の実施形態における、外部ボリューム登録の手順の一例をフローチャートである。
【図９】本発明の第一の実施形態における、保証コード生成／更新プログラムの一例を示す図である。
【図１０】本発明の第一の実施形態における、ライトプログラムの一例を示す図である。
【図１１】本発明の第一の実施形態における、デステージプログラムの一例を示す図である。
【図１２】本発明の第一の実施形態における、リードプログラムの一例を示す図である。
【図１３】本発明の第一の実施形態における、ステージングプログラムの一例を示す図である。
【図１４】本発明の第一の実施形態における、外部ボリューム移行プログラムの一例を示す図である。
【図１５ａ】本発明の第一の実施形態における、外部ボリュームの管理を、移行元記憶装置システムから移行先記憶装置システムへ移行する手順の一例を示すフローチャートである。
【図１５ｂ】図１５ａに続くフローチャートである。
【図１５ｃ】図１５ｂに続くフローチャートである。
【図１６ａ】本発明の第一の実施形態における、外部ボリュームの管理を、移行元記憶装置システムから移行先記憶装置システムへ移行する図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示すブロック図である。
【図１６ｂ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｃ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｄ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｅ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｆ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｇ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｈ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｉ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｊ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｋ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１６ｌ】図１５ａ，ｂ，ｃの一部の手順におけるシステムの状態を示す他のブロック図である。
【図１７】本発明の第二の実施形態を示す構成図である。
【図１８】本発明の第二の実施形態における、仮想管理ネットワーク装置の一例を示す構成図である。
【符号の説明】
【０１０１】
１０：ホストコンピュータ
１１：管理端末
２：記憶装置システム
２０：記憶制御装置
２０１：チャネルインタフェース
２０２：ドライブインタフェース
２０３：メモリパッケージ
２０４：保守端末
２０５：キャッシュメモリ
２０６：保証コード生成／確認部
２０７：鍵管理部
２０７１：鍵生成部
２０７２：鍵格納部
２１：記憶装置
２１０：ドライブ
３：ネットワーク
３１：仮想管理ネットワーク装置
５０：外部ボリューム登録プログラム
５１：保証コード生成／更新プログラム
５２：ライトプログラム
５３：デステージプログラム
５４：リードプログラム
５５：ステージングプログラム
５６：外部ボリューム移行プログラム
５７：外部ボリューム管理移行プログラム
６０：ボリューム管理情報
６０１：外部ボリューム付加情報
６０１ａ：データボリューム付加情報
６０１ｂ：保証コードボリューム付加情報
６０２：データボリューム情報
６０３：保証コードボリューム情報
６１：外部ボリューム情報
６１０：パス情報
６２：鍵情報
６３：認証コード情報
７０：アプリケーションプログラム
７１：パス管理プログラム
８：外部記憶装置
９０：外部ボリューム（データ）
９１：外部ボリューム（保証コード）
９２：データボリューム
９３：保証コードボリューム
９４：内部ボリューム
９５：外部ボリューム（データ）ＬＵ
９６：データボリュームＬＵ
９７：保証コードボリュームＬＵ
９８：内部ボリュームＬＵ
【図１】
2008117253.tif 000003
【図２】
2008117253.tif 000004
【図３ａ】
2008117253.tif 000005
【図３ｂ】
2008117253.tif 000006
【図３ｃ】
2008117253.tif 000007
【図３ｄ】
2008117253.tif 000008
【図３ｅ】
2008117253.tif 000009
【図３ｆ】
2008117253.tif 000010
【図３ｇ】
2008117253.tif 000011
【図４ａ】
2008117253.tif 000012
【図４ｂ】
2008117253.tif 000013
【図５】
2008117253.tif 000014
【図６ａ】
2008117253.tif 000015
【図６ｂ】
2008117253.tif 000016
【図７】
2008117253.tif 000017
【図８】
2008117253.tif 000018
【図９】
2008117253.tif 000019
【図１０】
2008117253.tif 000020
【図１１】
2008117253.tif 000021
【図１２】
2008117253.tif 000022
【図１３】
2008117253.tif 000023
【図１４】
2008117253.tif 000024
【図１５ａ】
2008117253.tif 000025
【図１５ｂ】
2008117253.tif 000026
【図１５ｃ】
2008117253.tif 000027
【図１６ａ】
2008117253.tif 000028
【図１６ｂ】
2008117253.tif 000029
【図１６ｃ】
2008117253.tif 000030
【図１６ｄ】
2008117253.tif 000031
【図１６ｅ】
2008117253.tif 000032
【図１６ｆ】
2008117253.tif 000033
【図１６ｇ】
2008117253.tif 000034
【図１６ｈ】
2008117253.tif 000035
【図１６ｉ】
2008117253.tif 000036
【図１６ｊ】
2008117253.tif 000037
【図１６ｋ】
2008117253.tif 000038
【図１６ｌ】
2008117253.tif 000039
【図１７】
2008117253.tif 000040
【図１８】
2008117253.tif 000041