(57)【要約】【課題】各ストレージ制御モジュールで動作しているストレージ制御ソフトウェアを柔軟かつ動的に変更する。【解決手段】ストレージシステムにおいて、複数の第１のストレージ制御モジュールは、各ストレージ制御モジュールと通信しているディスクデバイスに格納されたデータに関連するＩ／Ｏ操作を処理し、第１のストレージ制御モジュールによってインストールおよび実行されることが可能な複数のタイプのストレージ制御ソフトウェアから、ストレージ制御モジュールのうちの第１のストレージ制御モジュールにインストールされる第１のタイプのストレージ制御ソフトウェアを指定し、指定された第１のタイプのストレージ制御ソフトウェアを第１のストレージ制御モジュールにインストールして、第１のストレージ制御モジュールが第１のタイプのＩ／Ｏ操作を処理するために第１のタイプのストレージ制御ソフトウェアを実行する。【選択図】図２
2008257682.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のストレージ制御プロセッサを備え、前記各ストレージ制御プロセッサは、通信のために、１つまたは複数のストレージデバイスと接続され、前記１つまたは複数のストレージデバイスは、前記１つまたは複数のストレージ制御プロセッサによって処理される入出力（Ｉ／Ｏ）操作に関連するデータを格納し、
前記ストレージ制御プロセッサと通信する管理プロセッサを備え、
第１のタイプの前記Ｉ／Ｏ操作を処理するために、前記ストレージ制御プロセッサのうちの第１のストレージ制御プロセッサで実行される、第１のタイプのストレージ制御ソフトウェアを備え、
前記管理プロセッサは、前記第１のタイプのストレージ制御ソフトウェアを、前記第１のタイプのストレージ制御ソフトウェアと異なる、第２のタイプのストレージ制御ソフトウェアに置き換えるよう構成され、
前記第２のタイプのストレージ制御ソフトウェアが前記第１のストレージ制御プロセッサによって実行される際に、前記第１のストレージ制御プロセッサは、前記第１のタイプのＩ／Ｏ操作と異なる、第２のタイプのＩ／Ｏ操作を処理することが可能である、ストレージシステム。
【請求項２】
前記第１および第２のタイプのストレージ制御ソフトウェアは、
ブロックベースのＩ／Ｏ操作を処理する、ブロックベースのストレージ制御ソフトウェア、
ファイルベースのＩ／Ｏ操作を処理する、ネットワーク接続ストレージ（ＮＡＳ）システムストレージ制御ソフトウェア、
コンテンツベースの識別子を使用してＩ／Ｏ操作を処理する、コンテンツアドレス指定可能ストレージ制御ソフトウェア、
ディスクストレージデバイスがテープストレージデバイスとして表されるＩ／Ｏ操作を処理する、仮想テープライブラリストレージ制御ソフトウェア、
テープストレージデバイスがディスクストレージデバイスとして表されるＩ／Ｏ操作を処理する、仮想ディスクライブラリストレージ制御ソフトウェア、および
オブジェクトベースのプロトコルを使用してＩ／Ｏ操作を処理する、オブジェクト指向ストレージ制御ソフトウェアの各タイプから選択される、請求項１に記載のストレージシステム。
【請求項３】
前記データを格納する１つまたは複数のボリュームをさらに含み、前記ボリュームは、前記ストレージデバイスのストレージ容量を論理的に表し、
第１の前記ボリュームが前記第１のストレージ制御プロセッサを介して最初にアクセスされるように、前記第１のボリュームと前記第１のストレージ制御プロセッサとの間に第１のパスが最初に定義され、
前記第１のストレージ制御プロセッサにおいて前記第２のタイプのストレージ制御ソフトウェアがインストールされ、実行されたときに、前記第１のボリュームと第２の前記ストレージ制御プロセッサとの間に第２のパスが定義され、前記第２のストレージ制御プロセッサは、前記第１のタイプのストレージ制御ソフトウェアを実行するように構成され、それによって、前記第１のボリュームが、前記第２のストレージ制御プロセッサを介してアクセス可能になる、請求項１に記載のストレージシステム。
【請求項４】
少なくとも３つの前記ストレージ制御プロセッサをさらに備え、前記第１のタイプのストレージ制御ソフトウェアは、前記第１のストレージ制御プロセッサと、第２の前記ストレージ制御プロセッサとによって、最初に実行され、前記第２のタイプのストレージ制御ソフトウェアは、第３の前記ストレージ制御プロセッサによって実行され、
前記管理プロセッサは、前記各ストレージ制御プロセッサの負荷を測定して、前記負荷のうちで所定のしきい値を通過したものがあるかどうかを調べるよう構成され、
前記管理プロセッサは、前記第３のストレージ制御プロセッサの負荷が前記所定のしきい値を通過した場合に、前記第１のストレージ制御プロセッサにおいて実行されている前記第１のタイプのストレージ制御ソフトウェアを、前記第３のストレージ制御プロセッサにおいて実行されている前記第２のタイプのストレージ制御ソフトウェアに置き換え、前記第３のストレージ制御プロセッサの負荷の一部を前記第１のストレージ制御プロセッサに移すことによって、前記第３のストレージ制御プロセッサの負荷を軽減するように構成された、請求項１に記載のストレージシステム。
【請求項５】
前記各ストレージ制御プロセッサの前記負荷は、少なくとも部分的には、前記ストレージ制御プロセッサの処理能力の利用率に基づいて決定される、請求項４に記載のストレージシステム。
【請求項６】
前記データを格納する複数のボリュームをさらに含み、前記ボリュームは、前記ストレージデバイスのストレージ容量を論理的に表し、
第１の前記ボリュームが前記第３のストレージ制御プロセッサを介して最初にアクセスされるように、前記第１のボリュームと前記第３のストレージ制御プロセッサとの間に第１のパスが最初に定義され、
前記第１のストレージ制御プロセッサによる実行のために、前記第２のタイプのストレージ制御ソフトウェアがインストールされたときに、前記第１のボリュームと前記第１のストレージ制御プロセッサとの間に第２のパスが定義され、それによって、前記第３のストレージ制御プロセッサの負荷の一部が前記第１のストレージ制御プロセッサに移される、請求項４に記載のストレージシステム。
【請求項７】
１つまたは複数のストレージ制御モジュールをさらに含み、前記各ストレージ制御モジュールは、前記１つまたは複数のストレージ制御プロセッサのうちの１つと、ストレージ制御メモリとを含み、
ストレージ管理モジュールをさらに含み、前記ストレージ管理モジュールは、前記ストレージ管理プロセッサを含み、
前記ストレージ管理モジュールと通信している管理コンピュータが、前記第１のストレージ制御プロセッサを含む第１の前記ストレージ制御モジュールから前記第１のタイプのストレージ制御ソフトウェアをアンインストールするために前記ストレージ管理モジュールによって実行されるプログラムを呼び出すために使用されるよう構成され、
前記ストレージ管理モジュールは、前記第２のタイプのストレージ制御ソフトウェアを前記第１のストレージ制御モジュールにインストールし、前記第２のタイプのストレージ制御ソフトウェアが、前記第１のストレージ制御プロセッサによる実行のために前記ストレージ制御メモリにロードされるようにし、それによって、前記第１のストレージ管理モジュールのロールが、前記第１のタイプのＩ／Ｏ操作を処理することから、前記第２のタイプのＩ／Ｏ操作を処理することに変更されるよう、構成された、請求項１に記載のストレージシステム。
【請求項８】
１つまたは複数のストレージ制御サーバをさらに含み、前記各ストレージ制御サーバは、前記１つまたは複数のストレージ制御プロセッサのうちの１つと、サーバメモリとを含み、
管理コンピュータをさらに含み、前記管理コンピュータは、前記ストレージ管理プロセッサを含み、前記管理コンピュータは、前記１つまたは複数のストレージ制御サーバとネットワーク経由で通信しており、
前記管理コンピュータは、前記第１のストレージ制御プロセッサを含む第１の前記ストレージ制御モジュールから前記第１のタイプのストレージ制御ソフトウェアをアンインストールするように構成され、
前記管理コンピュータは、前記第２のタイプのストレージ制御ソフトウェアを前記第１のストレージ制御モジュールにインストールし、前記第２のタイプのストレージ制御ソフトウェアが、前記第１のストレージ制御プロセッサによる実行のために前記第１のサーバの前記サーバメモリにロードされるようにし、それによって、前記第１のサーバのロールが、前記第１のタイプのＩ／Ｏ操作を処理することから、前記第２のタイプのＩ／Ｏ操作を処理することに変更されるよう、構成された、請求項１に記載のストレージシステム。
【請求項９】
ストレージシステムを操作する方法であって、
複数の第１のストレージ制御モジュールを設けるステップであって、前記各ストレージ制御モジュールは、前記各ストレージ制御モジュールと通信しているディスクデバイスに格納されたデータに関連するＩ／Ｏ操作を処理することが可能である、ステップと、
前記第１のストレージ制御モジュールによってインストールおよび実行されることが可能な複数のタイプのストレージ制御ソフトウェアから、前記ストレージ制御モジュールのうちの第１のストレージ制御モジュールにインストールされる第１のタイプのストレージ制御ソフトウェアを指定するステップと、
前記指定された第１のタイプのストレージ制御ソフトウェアを前記第１のストレージ制御モジュールにインストールして、前記第１のストレージ制御モジュールが第１のタイプのＩ／Ｏ操作を処理するために前記第１のタイプのストレージ制御ソフトウェアを実行することを可能にするステップと、を含む方法。
【請求項１０】
前記第１のストレージ制御モジュールにある前記第１のタイプのデータ制御ソフトウェアを置き換えるために、第２のタイプのデータ制御ソフトウェアを指定するステップと、
前記指定された第２のタイプのデータ制御ソフトウェアを前記第１のストレージ制御モジュールにインストールして、前記第１のストレージ制御モジュールが前記第１のタイプのＩ／Ｏ操作の代わりに第２のタイプのＩ／Ｏ操作を処理するために前記第２のタイプのストレージ制御ソフトウェアを実行することを可能にするステップと、をさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１のストレージ制御モジュールに前記第１のタイプのストレージ制御ソフトウェアがインストールされている場合に、前記第１のストレージ制御モジュールに割り当てられている１つまたは複数の第１のボリュームを識別するステップと、
前記第２のタイプのストレージ制御ソフトウェアが前記第１のストレージ制御モジュールにインストールされている場合に、前記第１のボリュームを、前記第１のストレージ制御モジュールによってアクセスされることから割り当て解除するステップと、
前記第１のボリュームに関連する割り当て解除情報を保存するステップと、をさらに含み、前記割り当て解除情報は、前記第１のボリュームにアクセスするために指定されているタイプのストレージ制御ソフトウェアを含む、請求項１０に記載の方法。
【請求項１２】
前記第１のタイプのストレージ制御ソフトウェアを第２のストレージ制御モジュールにインストールするステップと、
前記第１のボリュームを、前記第２のストレージ制御モジュールを介してアクセスされるように割り当てるステップと、
前記第１のボリュームにアクセスすることを許可されているホストコンピュータを決定するステップと、
前記第２のストレージ制御モジュールにおいて前記第１のボリュームおよび前記ホストコンピュータについての論理装置番号セキュリティを定義するステップと、をさらに含む、請求項１１に記載の方法。
【請求項１３】
前記各ストレージ制御モジュールの負荷を測定して、前記ストレージ制御モジュールのうちのいずれかの負荷が所定のしきい値を通過したかどうかを調べるステップと、
前記所定のしきい値を通過した負荷を有する、過負荷のストレージ制御モジュールを識別するステップであって、前記過負荷のストレージ制御モジュールは、前記第１のタイプのＩ／Ｏ操作を処理するために前記第１のタイプのストレージ制御ソフトウェアがインストールされている、ステップと、
前記過負荷のストレージ制御モジュールの負荷を軽減するために使用されることが可能なターゲットストレージ制御モジュールを識別するステップであって、前記ターゲットストレージ制御モジュールは、前記第１のタイプのＩ／Ｏ操作と異なる第２のタイプのＩ／Ｏ操作を処理するために第２のタイプのストレージ制御ソフトウェアがインストールされている、ステップと、
前記ターゲットストレージ制御モジュールが前記第１のタイプのＩ／Ｏ操作を処理することが可能であるように、前記第１のタイプのストレージ制御ソフトウェアを前記ターゲットストレージ制御モジュールにインストールするステップと、
前記過負荷のストレージ制御モジュールの負荷の一部を前記ターゲットストレージ制御モジュールに移すステップと、をさらに含む、請求項９に記載の方法。
【請求項１４】
前記負荷の一部を前記ターゲットストレージ制御モジュールに移す前記ステップはさらに、
第１のボリュームと前記過負荷のストレージ制御モジュールとの間に定義された第１のパスを削除するステップであって、前記第１のパスは、前記第１のボリュームが、前記過負荷のストレージ制御モジュールを介してアクセスされることを可能にする、ステップと、
前記第１のボリュームと前記ターゲットストレージ制御モジュールとの間に第２のパスを定義して、前記第１のボリュームが、前記過負荷のストレージ制御モジュールを介してではなく、前記ターゲットストレージ制御モジュールを介してアクセスされることが可能になるようにするステップと、を含む、請求項１３に記載の方法。
【請求項１５】
前記第１のタイプのストレージ制御ソフトウェアと前記第２のタイプのストレージ制御ソフトウェアとをストレージ制御ソフトウェアリポジトリから取り出すステップをさらに含み、前記ストレージ制御ソフトウェアリポジトリは、
ブロックベースのＩ／Ｏ操作を処理する、ブロックベースのストレージ制御ソフトウェア、
ファイルベースのＩ／Ｏ操作を処理する、ネットワーク接続ストレージ（ＮＡＳ）システムストレージ制御ソフトウェア、
コンテンツベースの識別子を使用してＩ／Ｏ操作を処理する、コンテンツアドレス指定可能ストレージ制御ソフトウェア、
ディスクストレージデバイスがテープストレージデバイスとして表されるＩ／Ｏ操作を処理する、仮想テープライブラリストレージ制御ソフトウェア、
テープストレージデバイスがディスクストレージデバイスとして表されるＩ／Ｏ操作を処理する、仮想ディスクライブラリストレージ制御ソフトウェア、および
オブジェクトベースのプロトコルを使用してＩ／Ｏ操作を処理する、オブジェクト指向ストレージ制御ソフトウェアを含む、複数の異なるタイプのストレージ制御ソフトウェアを含む、請求項１０に記載の方法。
【請求項１６】
複数のストレージ制御モジュールを含むストレージシステムであって、前記各ストレージ制御モジュールは、Ｉ／Ｏ操作を独立に処理することが可能である、ストレージシステムと、
前記ストレージ制御モジュールと通信していて、前記Ｉ／Ｏ操作に関連するデータを格納する、１つまたは複数のストレージデバイスと、を備え、
前記各ストレージ制御モジュールは、様々なタイプのストレージ制御ソフトウェアがインストールされており、
第１の前記ストレージ制御モジュールが、第１のタイプのＩ／Ｏ操作を処理するために第１のタイプのストレージ制御ソフトウェアを実行するように構成され、
第２の前記ストレージ制御モジュールが、前記第１のタイプのＩ／Ｏ操作と異なる第２のタイプのＩ／Ｏ操作を処理するために第２のタイプのストレージ制御ソフトウェアを実行するように構成され、
第３の前記ストレージ制御モジュールが、前記第１または第２のタイプのＩ／Ｏ操作と異なる第３のタイプのＩ／Ｏ操作を処理するために第３のタイプのストレージ制御ソフトウェアを実行するように構成された、情報システム。
【請求項１７】
管理コンピュータをさらに含み、前記管理コンピュータは、前記第１のストレージ制御モジュールから前記第１のタイプのストレージ制御ソフトウェアをアンインストールして第４のタイプのストレージ制御ソフトウェアをインストールするように構成され、それによって、前記第１のストレージ制御モジュールが、前記第１、第２、または第３のタイプのＩ／Ｏ操作と異なる第４のタイプのＩ／Ｏ操作を処理するように構成される、請求項１６に記載のシステム。
【請求項１８】
前記第１のタイプのストレージ制御ソフトウェアは、ブロックベースのＩ／Ｏ操作を処理する、ブロックベースのストレージ制御ソフトウェアであり、
前記第２のタイプのストレージ制御ソフトウェアは、ファイルベースのＩ／Ｏ操作を処理する、ネットワーク接続ストレージ（ＮＡＳ）システムストレージ制御ソフトウェアであり、
前記第３のタイプのストレージ制御ソフトウェアは、
コンテンツベースの識別子を使用してＩ／Ｏ操作を処理する、コンテンツアドレス指定可能ストレージ制御ソフトウェア、
ディスクストレージデバイスがテープストレージデバイスとして表されるＩ／Ｏ操作を処理する、仮想テープライブラリストレージ制御ソフトウェア、
テープストレージデバイスがディスクストレージデバイスとして表されるＩ／Ｏ操作を処理する、仮想ディスクライブラリストレージ制御ソフトウェア、および
オブジェクトベースのプロトコルを使用してＩ／Ｏ操作を処理する、オブジェクト指向ストレージ制御ソフトウェアのうちの１つである、請求項１６に記載のシステム。
【請求項１９】
ストレージ管理モジュールをさらに含み、前記ストレージ管理モジュールは、前記各ストレージ制御モジュールの負荷を測定して、前記負荷のうちで所定のしきい値を通過したものがあるかどうかを調べるように構成され、
前記ストレージ管理モジュールは、前記ストレージ制御モジュールのうちの１つの特定の１つの負荷が所定のしきい値を超えた場合に、前記特定のストレージ制御モジュールの負荷を軽減するために使用されることが可能なターゲットストレージ制御モジュールを識別することにより、前記特定のストレージ制御モジュールの負荷を軽減するように構成され、
前記ストレージ管理モジュールは、前記特定のストレージ制御モジュールにインストールされている、あるタイプのストレージ制御ソフトウェアと一致する、あるタイプのストレージ制御ソフトウェアを、前記ターゲット制御モジュールにインストールするように構成され、それによって、前記ターゲットストレージ制御モジュールが、前記特定のストレージ制御モジュールと同じタイプのＩ／Ｏ操作を処理するように構成され、
前記ストレージ管理モジュールは、前記特定のストレージ制御モジュールの負荷の一部を前記ターゲットストレージ制御モジュールに移すように構成された、請求項１６に記載のシステム。
【請求項２０】
前記特定のストレージ制御モジュールの前記負荷は、少なくとも部分的には、前記特定のストレージ制御モジュールの処理能力の利用率に基づいて決定される、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  発明の属する技術分野
[0002]  本発明は、主として、ユニファイドストレージシステムのようなストレージシステムに関する。
【背景技術】
【０００２】
[0003]  関連技術の説明
[0004]  ユニファイドストレージは、複数の異なるタイプのストレージ技術を、単一ハードウェアプラットフォームを用いて実装することを可能にするための概念である。ストレージシステムのハードウェアコンポーネントは、たとえば、標準的なＣＰＵや標準的なメモリモジュールなどを使用することなどにより、ますます標準化されつつあるため、異なるタイプのストレージ制御ソフトウェアを、同一ストレージハードウェアプラットフォーム上で実行することが可能である。ユニファイドストレージシステムの主な利点は、ハードウェア要件が減ることにより、単一のハードウェアシステムを様々なストレージ用途に使用できることである。ユニファイドストレージシステムは、最低でも、ファイルタイプのデータのストレージと、エンタープライズアプリケーションプログラムによって生成される、ブロックベースの入出力（Ｉ／Ｏ）操作のストレージとを、同時に可能にしなければならない。ファイルベースのストレージ用にネットワーク接続ストレージ（ＮＡＳ）システムを与え、ブロックベースのストレージ用にＲＡＩＤディスクアレイを与える、というように、別々のストレージプラットフォームを用意しなければならない代わりに、ユニファイドストレージシステムは、どの機能にも独立に使用されることが可能でありながら、同時に、両方の機能を結合して同時使用することも可能であるように、あらねばならない。さらに、ユニファイドストレージシステムは、より先進的なストレージ技術（ＣＡＳ（コンテンツアドレス指定可能ストレージ）、ＶＴＬ（仮想テープライブラリ）、ＶＤＬ（仮想ディスクライブラリ）、ＯＯＳ（オブジェクト指向ストレージ）など）も組み込んで実施することが可能でなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
[0005]  現行ソリューションとそれらの課題
【０００４】
[0006]  ほとんどの従来型ストレージシステムは、いまだ単一制御タイプのシステムである。これは、それらが、ブロックベースのストレージシステム、ＮＡＳシステム、ＣＡＳシステム、ＶＴＬシステム、ＶＤＬシステム、ＯＯＳシステムなどのいずれかであるという意味である。これに対し、いくつかのベンダが、複数制御システムを提供し始めている。これらの複数制御システムは、典型的には、ブロックストレージサポートを追加するように修正されたＮＡＳプラットフォームであるが、ＦＣ−ＳＡＮ（ファイバチャネル−ストレージエリアネットワーク）とＩＰ−ＳＡＮ（インターネットプロトコル−ストレージエリアネットワーク）（ｉＳＣＳＩ）ブロックベースのストレージとの組み合わせや、ＮＡＳとｉＳＣＳＩ（インターネットＳＣＳＩ）との組み合わせの場合もある。
【０００５】
[0007]  しかしながら、先行技術のシステムはすべて、１つまたは２つの所定のプロトコルを処理することに限定して構成されていて、様々なプロトコルに対応するように動的に変更されることができないという点で、静的なシステムである。したがって、先行技術のシステムは、システムが実施できるタスクを動的かつ柔軟に変更するために様々な形式のストレージ制御ソフトウェアを他のハードウェアプラットフォームに自動的かつ動的にインストールして実行することができない。たとえば、一部の先行技術のユニファイドストレージシステムは、ブロックベース（ＦＣおよびｉＳＣＳＩ）の制御とファイルシステム制御とを同時に与えることが可能である。しかしながら、これらのシステムの制御は、１つのハードウェアプラットフォームで動作している共通のＯＳおよびファイルシステム層をベースとすることが可能である。したがって、ブロックベースの機能性を提供している場合でも、操作は、ファイルシステム層によって処理されなければならず、そのために、望ましくないオーバヘッドが発生して、ブロックベースのストレージの効率が低下する。また、そのようなセットアップによって、システムが起動した後のブロック構成およびファイル構成の変更が困難になる。さらに、システムは、その構成を、負荷をよりよく均衡させるためにシステム負荷に基づいて自動的かつ動的に変更することができない。
【課題を解決するための手段】
【０００６】
[0008]  本発明は、ユニファイドストレージシステムを提供する方法および装置を開示する。本発明のユニファイドストレージシステムは、複数のタイプのストレージ制御（たとえば、ブロックベースのストレージ、ファイルシステムを用いるＮＡＳストレージ、ＣＡＳ機能、ＶＴＬストレージ、ＶＤＬストレージ、ＯＯＳ、その他）を、そのストレージシステムの標準ハードウェアプラットフォームを利用して可能にすることができる。本発明のユニファイドストレージシステムは、種々のストレージ技術を実装するために、各ストレージ制御モジュールで動作しているストレージ制御ソフトウェアを柔軟かつ動的に変更することが可能である。当業者であれば、本発明の以上およびその他の特徴および利点は、以下の好ましい実施形態の詳細説明から明らかになるであろう。
【０００７】
[0009]  添付の図面は、ここまでの一般説明、および以下の好ましい実施形態の詳細説明と併せて、現時点で考えられている本発明の最良の態様の好ましい実施形態の原理を例示および説明することに役立つ。
【発明を実施するための最良の形態】
【０００８】
[0025]  以下の本発明の詳細説明では、本開示の一部をなす添付図面を参照する。それらの図面には、本発明を実施することが可能な特定の実施形態が、限定ではなく例示として示される。それらの図面では、類似の参照符号は、複数の図面にわたってほぼ同様の要素を示す。さらに、図面、先述の説明、および以下の説明は、例示的かつ説明的であるに過ぎず、いかなるかたちでも本発明または本出願の範囲を限定するものではない。
【０００９】
[0026]  本発明は、真のユニファイドストレージシステムを提供する方法および装置を開示する。本発明のユニファイドストレージシステムは、標準化されたハードウェア構成を有する複数の制御モジュールを含み、各ストレージ制御モジュールで動作しているストレージ制御ソフトウェア（たとえば、ブロックベース、ＮＡＳ、ＣＡＳ、ＶＴＬ、ＶＤＬ、ＯＯＳなど）を柔軟に変更することが可能であり、なおかつ、ストレージ制御の再割り当て中にデータおよび構成を保全することが可能である。これらの特徴を実現するために、本発明は、ストレージ制御ソフトウェアを空きストレージ制御モジュールにインストールする方法を含み、さらに、ストレージ制御モジュールからストレージ制御ソフトウェアをアンインストールする方法、およびストレージ制御モジュールにストレージ制御ソフトウェアを再インストールする方法を含む。ストレージ制御ソフトウェアをアンインストールおよび再インストールする処理の間、データおよびシステム構成（ボリュームへのホスト接続に関する情報や、ボリューム内のデータなど）は、保全され、再インストール処理後に利用されることが可能である。さらに、本発明のシステムは、管理者その他の人員の介入を必要とせずに、システム負荷を均衡させるために、その構成を自動的に変更することが可能である。
【００１０】
[0027]  第１の実施形態−システム構成
[0028]  図１は、本発明の方法および装置を適用することが可能なハードウェア構成の例を示す。本発明の情報システムは、１つまたは複数のストレージシステム２０００、１つまたは複数の管理コンピュータ１１００、および１つまたは複数のホストコンピュータ１０００を含むことが可能である。
【００１１】
[0029]  ホストコンピュータ１０００は、Ｉ／Ｏ操作（たとえば、データをストレージシステム２０００に格納する操作）を実施するために含まれることが可能である。ホストコンピュータ１０００は、ホストＣＰＵ  １００１およびホストメモリ１００２を含む。ホストコンピュータ１０００は、インターフェースＩ／Ｆ  １００３を使用してネットワーク４０００経由でストレージシステム２０００に接続することが可能であり、あるいは、代替として、ストレージシステム２０００に直接接続することが可能である。ネットワーク４０００の典型的な媒体タイプはファイバチャネル（ＦＣ）、イーサネット（登録商標）などであるが、本発明では、任意の適切なネットワーク媒体を使用することが可能である。ホストコンピュータは、管理ネットワーク４２００経由で管理コンピュータ１１００に接続するためのＩ／Ｆ  １００４を含むことも可能である。管理ネットワーク４２００の典型的な媒体タイプはイーサネット（登録商標）であるが、本発明では、他の適切なネットワーク媒体を使用することも可能である。さらに、管理ネットワーク４２００は、ネットワーク４０００と同じネットワークの一部であることも、独立したネットワークであることも可能である。
【００１２】
[0030]  管理コンピュータ１１００は、後で詳述される管理ソフトウェアを実行するために用意される。管理コンピュータ１１００は、管理ＣＰＵ  １１０１および管理メモリ１１０２を含む。管理コンピュータは、管理ネットワーク４２００経由でのストレージシステム２０００およびホストコンピュータ１０００への接続を可能にするＩ／Ｆ  １１０３を含む。
【００１３】
[0031]  ストレージシステム２０００は、ストレージコントローラ２１００と、１つまたは複数のストレージデバイス２００１（ハードディスクドライブなど）とを含む。ストレージコントローラ２１００は、（たとえば、ホストコンピュータ１０００からの）Ｉ／Ｏ操作の処理、およびストレージデバイス２００１に対するデータの読み書きの制御を行う、複数のストレージ制御モジュール２２００を含む。ストレージコントローラ２１００はまた、ストレージシステム２０００を管理するストレージ管理モジュール２９００と、Ｉ／Ｏ操作を推進するキャッシュメモリ２１３０とを含む。
【００１４】
[0032]  各ストレージ制御モジュール２１００は、ＣＰＵ  ２２１１、メモリ２２１２、ホストインターフェース２２１３、管理インターフェース２２１４、および内部インターフェース２２１５を含む。ＣＰＵ  ２２１１およびメモリ２２１２は、後で詳述される、Ｉ／Ｏ要求または他の操作を処理するストレージ制御ソフトウェアをロードして実行するために使用される。ストレージ制御ソフトウェアは、メモリ２２１２に格納され、ＣＰＵ  ２２１１によって実行される。ホストインターフェース２２１３は、ホストコンピュータ１０００とストレージ制御モジュール２２００とをネットワーク４０００経由で接続するために使用される。特定タイプのＩ／Ｆ  ２２１３は、前述のように、用意されるネットワーク４０００のタイプに依存する。管理インターフェース２２１４は、各ストレージ制御モジュール２２００を、内部管理ネットワーク２１２０経由で、ストレージ管理モジュール２９００および他のストレージ制御モジュール２２００と接続して通信させるために使用される。内部管理ネットワーク２１２０に使用されるネットワーク媒体の典型的な例はイーサネット（登録商標）であるが、ＰＣＩのようなシステムバスを内部管理ネットワーク２１２０に使用することも可能である。内部インターフェース２２１５は、ストレージ制御モジュール２２００と、ストレージ制御モジュール２２００、キャッシュメモリ２１３０、およびディスクインターフェース２１１０、２１１１の間の通信に使用されるストレージシステム内部バス２１３３または内部交換ネットワークとを接続するために使用される。
【００１５】
[0033]  ストレージ管理モジュール２９００は、管理コンピュータ１１００から受け取った管理操作を処理し、ＣＰＵ  ２９１６、メモリ２９１７、内部管理インターフェース２９１３、外部管理インターフェース２９１４、および内部インターフェース２９１５を含む。ストレージ管理関連ソフトウェア（後で詳述）は、ストレージ管理要求または他の操作を処理するために、メモリ２９１７に格納され、ＣＰＵ  ２９１６によって実行される。内部管理インターフェース２９１３は、内部管理ネットワーク２１２０経由で、ストレージ制御モジュール２２００とストレージ管理モジュール２９００とを接続するために使用される。外部管理インターフェース２９１４は、管理ネットワーク４２００経由で、ストレージ管理モジュール２９００と管理コンピュータ１１００とを接続するために使用される。内部インターフェース２９１５は、ストレージ管理モジュール２９００と、ストレージ内部バスまたは内部交換ネットワーク２１３３とを接続するために使用される。
【００１６】
[0034]  キャッシュメモリ２１３０は、ホストコンピュータ１０００から受け取った書き込みデータを、そのデータがディスクドライブ２００１に格納される前に、一時的に格納する。キャッシュメモリ２１３０はまた、ホストコンピュータ１０００から要求された読み出しデータも格納する。キャッシュメモリ２１３０は、バッテリバックアップされた不揮発性メモリであってよく、各ストレージ制御モジュール２２００に割り当てられたキャッシュ量は、個々のストレージ制御モジュールのロール、または個々のストレージ制御モジュールの負荷に基づいて構成されることが可能である。たとえば、各ストレージ制御モジュールが、本発明に従って、どのように使用されているかに応じて、いくつかのストレージ制御モジュール２２００が、他のストレージ制御モジュール２２００より多くのキャッシュを必要とする場合がある。
【００１７】
[0035]  ディスクインターフェース２１１０および２１１１は、ストレージコントローラ２１００と、内部ディスクドライブ２００１、外部ストレージシステム３０００（従来型のストレージシステムであってよく、必ずしも別のユニファイドストレージシステム２０００でなくてもよい）、またはテープデバイス５０００とを接続するために使用される。したがって、Ｉ／Ｆ  ２１１１は、たとえば、ネットワーク４１００（ローカルエリアネットワークであってもよく、ネットワーク４０００と同じネットワークであってもよい）および／または管理ネットワーク４２００と接続されることが可能である。さらに、ストレージコントローラ２１００は、データを、ディスクドライブ２００１に格納する代わりに（または格納することに加えて）、ネットワーク接続経由で、外部ストレージシステム３０００、テープデバイス５０００に格納することが可能である。
【００１８】
[0036]  ストレージデバイス２００１のそれぞれは、ディスクドライブ、または他の好適なストレージデバイス（たとえば、固体メモリ、光学式ドライブ、テープドライブなど）である。ストレージデバイス２００１は、ＳＣＳＩコマンドのような適切なプロトコルコマンドに従って、データを格納したり取り出したりするＩ／Ｏ要求を処理する。さらに、ストレージシステム２０００は、必ずしも内部ストレージデバイス２００１を持たなくてもよく、その代わりに、データを格納したり取り出したりするために外部ストレージシステム３０００または他の外部ストレージを使用することが可能である。したがって、本発明に他の適切なハードウェアアーキテクチャを適用できることは明らかである。
【００１９】
[0037]  図２は、本発明の方法および装置を適用することが可能なソフトウェア構成の例を示す。ホストコンピュータ１０００は、いくつかのアプリケーション（ＡＰ）１０１１が（たとえば、ストレージシステム２０００にデータを書き込んだり、ストレージシステム２０００からデータを読み出したりする）Ｉ／Ｏ操作を生成するコンピュータである。ホストコンピュータ１０００はまた、ホストコンピュータ１０００とストレージシステム２０００との間の接続を有効にするためにネットワークドライバを含むオペレーティングシステム（ＯＳ）１０００を含む。本発明において使用可能なネットワーク通信プロトコルとして、たとえば、ＦＣ／イーサネット（登録商標）経由のＳＣＳＩ、イーサネット（登録商標）経由のＮＦＳ／ＣＩＦＳファイル操作、および／またはイーサネット（登録商標）経由のＨＴＴＰなどがある。したがって、本発明はユニファイドストレージシステムなので、任意の数の通信プロトコルを本発明に適用することが可能である。
【００２０】
[0038]  管理コンピュータ１１００は、管理者が、ストレージシステム２０００を構成するシステム構成設定操作のような操作を発行することを可能にするストレージ管理Ｉ／Ｆプログラム１１１１を含む。管理コンピュータ１１００には、管理者が、１つまたは複数のストレージシステム２０００に接続するホストコンピュータ１０００を管理することを可能にするために、ホストコンピュータ管理プログラム１１１２も常駐する。
【００２１】
[0039]  ストレージ制御モジュール２２００は、特定のストレージ操作および技術をストレージ制御モジュールに実施させるために、後で詳述される様式でストレージ制御モジュール２２００にインストールされ、実行されるストレージ制御ソフトウェア（ＳＷ）２２０１を含む。本発明のストレージ制御モジュールにインストール可能なストレージ制御ソフトウェア２２０１として、たとえば、ブロックストレージ、ＮＡＳ、ＣＡＳ、仮想テープライブラリ（ＶＴＬ）、仮想ディスクライブラリ（ＶＤＬ）、オブジェクト指向ストレージ（ＯＯＳ）などを実装するソフトウェアがある。各タイプのストレージ制御ＳＷの典型的な動作については、後で詳述する。さらに、本発明には任意のタイプのストレージ制御ＳＷが適用可能であってよいため、ストレージ制御ＳＷ  ２２０１のタイプは、本発明の範囲を制限しない。
【００２２】
[0040]  ストレージ制御モジュール２２００はさらに、１つまたは複数の論理ボリューム２２４０を含む。論理ボリューム２２４０は、「０００」、「００１」などのような論理装置番号（ＬＵＮ）を有する。ボリューム２２４０は、図１で示された、１つまたは複数のディスクドライブ２００１からなり、ホストコンピュータ１０００がデータを格納する際に使用するよう、ストレージ制御ＳＷ  ２２０１によって提供される。さらに、従来型のストレージシステムによって提供されるＲＡＩＤ機能性や他の典型的なストレージシステム制御機能性も、ストレージ制御ＳＷ  ２２０１によって提供されることが可能である。たとえば、ディスクドライブ２００１は、アレイグループとして構成されることが可能であり、各アレイグループ上に１つまたは複数の論理ボリューム２２４０を作成することが可能である。
【００２３】
[0041]  ストレージ管理モジュール２９００は、ストレージシステム２０００を管理するソフトウェアを実行する。本発明においては、本発明を実施するために、いくつかのストレージ管理プログラムおよび管理テーブルを採用することが可能であり、それらのそれぞれについては、後述される。
【００２４】
[0042]  ストレージ制御モジュール管理プログラム２９０１は、ストレージ制御モジュール２２００を管理する。このプログラムによって実施される典型的な管理操作は、特定のストレージ制御ソフトウェア２２０１を特定のストレージ制御モジュール２２００にインストールして、そのストレージ制御モジュールが所望の様式で機能することを可能にすることである。
【００２５】
[0043]  ストレージ制御モジュール管理テーブル２９０２は、どのストレージ制御ソフトウェアがどのストレージ管理モジュールにインストールされているかの追跡情報を提供する。図３は、ストレージ制御モジュール管理テーブル２９０２の例を示す。ストレージ制御モジュール管理テーブル２９０２は、ストレージ管理モジュール２９００のメモリ、またはストレージ管理モジュール２９００の使用のために割り当てられたボリュームに格納されることが可能である。ストレージ制御モジュール管理テーブルは、各ストレージ制御モジュール２２００で動作しているストレージ制御ソフトウェア２２０１に関する情報を含む。ストレージ制御モジュール管理テーブル２９０２の典型的なエントリとして、ストレージ制御モジュール識別子２９０２１（ストレージ制御モジュール番号の値など）、現在割り当てられているストレージ制御ソフトウェア２９０２２のタイプ（ブロック、ＮＡＳ、ＣＡＳなど）、ストレージ制御ソフトウェアのベンダ２９０２３、ストレージ制御ソフトウェアのバージョン２９０２４、ストレージ制御モジュールに割り当てられたボリューム番号２９０２５（たとえば、論理装置番号）、ストレージ制御モジュールのステータス２９０２６などがある。ステータス２９０２６に関しては、「オンライン」は、ストレージ制御モジュール２２００が現在使用されているか割り当てられていることを意味することが可能であり、「オフライン」は、ストレージ制御モジュールが現在割り当てられていないことを意味することが可能である。
【００２６】
[0044]  ストレージ制御ソフトウェア管理テーブル２９０３は、ユニファイドストレージシステム２０００で使用可能なストレージ制御ソフトウェアの個々のタイプおよびバージョンに関する情報を含む。図４は、ストレージ制御ソフトウェア管理テーブル２９０３の例を示す。ストレージ制御ソフトウェア管理テーブル２９０３は、ストレージ管理モジュール２９００のメモリ２９１７、またはストレージ管理モジュール２９００に割り当てられたボリュームに格納されることが可能である。ストレージ制御ソフトウェア管理テーブル２９０３は、ストレージシステム２０００のストレージ制御モジュール２２００にインストールされることが可能なストレージ制御ソフトウェアに関する情報を含む。ストレージ制御ソフトウェア管理テーブル２９０３の典型的なエントリとして、ストレージ制御ソフトウェア２９０３１のタイプ、ストレージ制御ソフトウェアのベンダ２９０３２、ストレージ制御ソフトウェアのバージョン２９０３３、ストレージ制御ソフトウェアが格納されているボリュームの番号２９０３４などがある。ストレージ制御ソフトウェアが格納されている特定のボリューム２９０３４へのパスは、ストレージ管理モジュール２９００がそのボリュームにアクセスできるように、定義されることが可能である。
【００２７】
[0045]  ボリューム供給プログラム２９０４は、その典型的な管理操作が、ボリューム２２４０をストレージ制御モジュール２２００に割り当てること、および、特定のストレージ制御モジュール２２００から、そのストレージ制御モジュールに割り当てられた特定のボリューム２２４０への、システム内のパスを定義することである、プログラムである。図５は、ボリューム供給プログラム２９０４が、ストレージシステム２０００内で割り当てられたボリュームを管理するために使用する、ボリューム管理テーブルの例である。ボリューム管理テーブルの典型的なエントリは、ボリューム番号２９１１１、割り当てられたストレージ制御モジュールの番号２９１１２、および関連付けられたストレージ制御モジュールポートＷＷＮ  ２９１１３（図５には略記されたＷＷＮが示されている）である。図６は、ボリューム供給プログラムが、特定ボリューム２２４０へのアクセスを制御するために使用する、ＬＵＮセキュリティテーブル２９１２の例である。ＬＵＮセキュリティテーブル２９１２の典型的なエントリとして、ボリューム番号２９１２１と、ボリュームへのアクセスを許可されたホストコンピュータのＷＷＮ  ２９１２２（図６には略記されたＷＷＮが示されている）とがある。
【００２８】
[0046]  ボリューム割り当て解除および割り当てプログラム２９０５は、特定のストレージ制御モジュール２２００から１つまたは複数のボリューム２２４０を割り当て解除（すなわち、パス定義を削除）するために実行可能であり、また、ストレージ制御モジュール２２００からボリューム２２４０へのパスを定義することも可能である。
【００２９】
[0047]  図７Ａは、ボリューム割り当て解除管理テーブル２９０６の例を示す。ボリューム割り当て解除管理テーブル２９０６は、ストレージ管理モジュール２９００のメモリ２９１７、またはストレージ管理モジュール２９００に割り当てられたボリュームに格納されることが可能である。ボリューム割り当て解除管理テーブル２９０６は、ストレージ制御ソフトウェアがストレージ制御モジュールから割り当て解除（すなわち、アンインストール）されたときの各ストレージ制御モジュールのボリューム情報を保存するために、各ストレージ制御モジュール用の割り当て解除されたストレージ制御ソフトウェアに関する情報を含む。ボリューム割り当て解除管理テーブル２９０６の典型的なエントリとして、そのボリュームがストレージ制御モジュールから割り当て解除されたときにボリューム割り当て解除および割り当てプログラム２９０５によって発行される割り当て解除番号２９０６１、ストレージ制御モジュール識別子２９０６２（ストレージシステム２０００内で割り当てられたストレージ制御モジュール番号の値など）、その割り当て解除によってストレージ制御モジュールから割り当て解除された、割り当てられていたストレージ制御ソフトウェアのタイプ２９０６３、割り当て解除されたストレージ制御ソフトウェアのベンダ２９０６４、割り当て解除されたストレージ制御ソフトウェアのバージョン２９０６５、ストレージ制御モジュールに割り当てられた１つまたは複数のボリュームの番号２９０６６（たとえば、論理装置番号）などがある。図７Ｂは、別のボリューム割り当て解除管理テーブル２９０６’の例を示す。図７Ｂのボリューム割り当て解除管理テーブル２９０６’は、図７Ａのボリューム割り当て解除管理テーブルのエントリに加えて、各ボリュームのＬＵＮセキュリティ情報２９０６７を含む。これにより、ボリューム割り当て解除時に各ボリュームも保存されるＬＵＮセキュリティ設定が可能になる。
【００３０】
[0048]  負荷均衡化プログラム２９０７は、ストレージシステムの計算の計算負荷を管理し、ストレージシステムの各種モジュール間の負荷を均衡させる。負荷均衡化プログラム２９０７によって実施される典型的な管理操作は、各ストレージ制御モジュール２２００の負荷を測定して、後で詳述される負荷均衡化処理を実行することである。図８は、負荷均衡化プログラム２９０７によって使用される負荷管理テーブル２９０８の例を示す。負荷管理テーブル２９０８は、ストレージ管理モジュール２９００のメモリ２９１７、またはストレージ管理モジュール２９００に割り当てられたボリュームに格納されることが可能である。各ストレージ制御モジュール２２００の計算負荷に関する情報は、負荷管理テーブル２９０８に格納される。負荷管理テーブル２９０８の典型的なエントリとして、ストレージ制御モジュール識別子２９０８１（ストレージシステム内で内部的に割り当てられたストレージ制御モジュール番号の値など）、ＣＰＵ利用率２９０８２（現在の利用率と、再均衡化を行わなければならないしきい値との両方をリストする）、およびストレージ制御モジュールまたはストレージ制御モジュールの各ポートへのホスト接続の数２９０８３（現在の接続の数と、再均衡化を行わなければならないしきい値の数との両方をリストする）がある。ストレージ制御モジュールに対する負荷を決定するために、ストレージ制御モジュール２２００の各ポートのスループットを、このテーブルのさらなるエントリ（図示せず）としてもよい。
【００３１】
[0049]  ストレージ制御ソフトウェアリポジトリ２９１０は、ストレージ管理モジュール２９００によって管理される。管理者は、管理コンピュータ１１００のストレージ管理Ｉ／Ｆプログラム１１１１を使用して、ストレージ制御ソフトウェアをストレージシステムにインストールする。これが行われると、ストレージ制御ソフトウェア管理テーブル２９０３は、ストレージ制御モジュール管理プログラム２９０１によって更新される。これは、ストレージ制御管理プログラム２９０１によって自動的に実施されるか、ストレージ管理Ｉ／Ｆプログラム１１１１経由で管理者によって手動で実施されることが可能である。ストレージ制御ソフトウェアは、ストレージ制御モジュール２９００によって管理されるストレージ制御ソフトウェアリポジトリに格納される。このリポジトリは、ストレージ管理モジュール２９００のメモリ２９１７、またはストレージ管理モジュール２９００に割り当てられたボリュームに格納されることが可能である。
【００３２】
[0050]  本発明のストレージ制御ソフトウェアリポジトリに収容されることが可能なストレージ制御ソフトウェアには、たとえば、次のものがある。
【００３３】
[0051]  割り当てられたボリューム２２４０をホストコンピュータ１０００に提供することが可能なブロックストレージ制御ＳＷ  ２９２１。ブロックストレージ制御ＳＷ  ２９２１は、ＦＣなどのネットワーク操作を受け取って解釈し、その後、ホストコンピュータ１０００から受け取ったＳＣＳＩコマンドを処理することによって、割り当てられたボリューム２２４０に、ブロックアドレスに従って直接アクセスすることが可能である。
【００３４】
[0052]  ＮＡＳストレージ制御ＳＷ  ２９２２は、割り当てられたボリューム２２４０にファイルシステムをエクスポートすることが可能である。ＮＦＳおよびＣＩＦＳなどのネットワークプロトコルによって配信される、ホストコンピュータ１０００からのファイル関連操作は、ＮＡＳストレージ制御ＳＷ  ２９２２によって処理され、ＮＦＳ／ＣＩＦＳなどのネットワークファイルシステムサーバモジュールは、ＮＡＳストレージ制御ＳＷ  ２９２２に含まれ、ＮＡＳストレージ制御ＳＷ  ２９２２がインストールされたときに、ストレージ制御モジュール２２００に常駐する。したがって、データは、ユーザまたはアプリケーションから、ファイルベースのコマンドによって、ファイルとしてアクセスされるのであって、ブロックベースのアクセスの場合のように、標準割り当てサイズの個々のストレージブロックとしてアクセスされるのではない。ファイルベースのコマンドは、ファイルシステムに宛てられ、ファイルシステムは、典型的には、そのファイルコマンドをブロックベースのコマンドに解釈する。
【００３５】
[0053]  ＣＡＳストレージ制御ＳＷ  ２９２３は、任意のストレージロケーションにではなく、データの内容に基づくアドレスにデータを格納する機能性を有効にする。一部のＣＡＳシステムでは、システムは、特定データのためのアドレスを、データの実際の内容に基づいて（たとえば、ハッシュ計算などにより）決定する。他のＣＡＳシステムでは、ハッシュ計算の代わりにファイルパス名を使用することが可能であり、他のＣＡＳ機能性（たとえば、当該技術分野において周知の、ユーザ定義メタデータを追加する機能、オブジェクトロックを用いてオブジェクトをロックする機能、保全性チェーンを追加する機能など）を組み込むことが可能である。
【００３６】
[0054]  ＶＴＬストレージ制御ＳＷ  ２９２４は、ディスクデバイスを使用してテープデバイスをエミュレートすることによる、テープコマンド受け取りやデータ複製解除などのＶＴＬ機能性を提供する。
【００３７】
[0055]  ＶＤＬストレージ制御ＳＷ  ２９２５は、テープドライブを使用してディスクデバイスをエミュレートし、ハードディスクドライブではなくテープドライブからなる論理ボリュームを提供することが可能である。
【００３８】
[0056]  ＯＯＳストレージ制御ＳＷ  ２９２６は、ＯＳＤ  Ｔ−１０標準で使用されるコマンドのようなオブジェクトベースのプロトコルコマンドに従って、データおよびデータの属性（メタデータ）からなるオブジェクトとして、データのストレージを実施することが可能である。
【００３９】
[0057]  静的ストレージ制御ソフトウェアの割り当てと割り当て解除
[0058]  このセクションでは、ストレージ制御ソフトウェアをストレージ制御モジュールにインストールする手順、ストレージ制御ソフトウェアをストレージ制御モジュールからアンインストールする手順、およびストレージ制御ソフトウェアをストレージ制御モジュールに再インストールする手順を説明する。本発明のストレージシステムより前は、ストレージ制御ソフトウェアは固定され、各ストレージ制御モジュールに関連付けられるので、上述の手順は、一般に必要ではなかった。
【００４０】
[0059]  ストレージ制御ソフトウェア２２０１のストレージ制御モジュール２２０９へのインストールのための例示的制御手順を、図９、図１０及び図１１に示す。この手順は、使用可能なストレージ制御モジュールの初期割り当てを行うものであり、空きストレージ制御モジュール２２００を見つけることと、そのストレージ制御モジュール２２００にストレージ制御ソフトウェア２２０１をインストールすることと、そのストレージ制御モジュールに空のボリュームを割り当てることと、を含む。この手順は、通常は、新しいストレージシステムのインストール時、または新しいストレージ制御モジュールが与えられた場合に用いられる。
【００４１】
[0060]  図９は、空きストレージ制御モジュールを見つけることと、見つかったストレージ制御モジュールにストレージ制御ソフトウェアをインストールすることと、の手順を示している。
【００４２】
[0061]  ステップ１１０００で、管理者が、管理コンピュータ１１００上でストレージ管理Ｉ／Ｆプログラム１１１１を使用して、ストレージ管理モジュール２９００上でストレージ制御モジュール管理プログラム２９０１を呼び出す。管理者は、ストレージ制御ソフトウェアのタイプ（必須）、ベンダ（任意）、バージョン（任意）などのパラメータを与え、それによって、ストレージ制御モジュール管理プログラム２９０１が、空きストレージ制御モジュールに、指定されたストレージ制御ソフトウェアを割り当てる。
【００４３】
[0062]  ステップ１１０２０で、ストレージ制御モジュール管理プログラムは、ストレージ制御モジュール管理テーブルのステータスカラム２９０２６が「オフライン」である空きストレージ制御モジュールを見つけるために、ストレージ制御モジュール管理テーブル２９０２を検索する。管理者が、ストレージ管理Ｉ／Ｆプログラム１１１１でストレージ制御モジュール管理テーブルを見て、どのストレージ制御モジュールが使用可能かを既に知っていて、ステップ１１０００で、ストレージ制御モジュールの特定の番号を指定する場合は、このステップをスキップすることが可能である。
【００４４】
[0063]  ステップ１１０３０で、空きストレージ制御モジュールが見つからない場合、または、管理者が指定したストレージ制御モジュール番号が正しくない場合、プログラムは、ステップ１１０５０に進み、エラーを返してプログラムを終了する。そうでない場合、プロセスは、ステップ１１０４０に進む。
【００４５】
[0064]  ステップ１１０４０では、ステップ１１０２０で空きストレージ制御モジュールが見つかった場合、または空きストレージ制御モジュールが指定された場合、ストレージ制御モジュール管理プログラム２９０１は、指定されたストレージ制御ソフトウェアが既にストレージシステム２０００にインストールされているかどうかを調べるために、ストレージ制御ＳＷ管理テーブル２９０３を検索する。ストレージ制御モジュール管理プログラムがストレージ制御ＳＷ管理テーブル２９０３を調べる際には、ストレージ制御ソフトウェアのタイプを比較する必要があり、他の比較用パラメータ（ストレージ制御ソフトウェアのベンダ名やバージョンなど）も任意選択であってよい。
【００４６】
[0065]  ステップ１１０６０で、指定されたストレージ制御ソフトウェアが既にストレージシステム２０００にインストールされている場合、プロセスは、ステップ１１０７０に進む。一方、指定されたストレージ制御ソフトウェアがまだストレージシステム２０００にインストールされていない場合、ストレージ制御モジュール管理プログラム２９０１は、ステップ１１０８０に進み、エラーを返して処理を終了する。
【００４７】
[0066]  ステップ１１０７０で、ストレージ制御モジュール管理プログラム２９０１は、指定されたストレージ制御ＳＷを、ストレージ制御ソフトウェアリポジトリ２９１０から取り出し、取り出したストレージＳＷを、ステップ１１０２０で見つかった空きストレージ制御モジュールのメモリにインストールし、次に、その空きストレージ制御モジュールでストレージ制御ソフトウェアを起動する。
【００４８】
[0067]  ストレージ制御ソフトウェアを空きストレージ制御モジュールにインストールして起動する代替方法では、指定されたストレージ制御ソフトウェアを収容するボリュームが、ストレージ管理モジュールとストレージ制御モジュールとの間で共有されることが可能である場合に、ストレージ制御モジュール管理プログラムは、指定されたストレージ制御ソフトウェアを収容する共有ボリュームへのパスを定義する。ストレージ制御モジュール管理プログラム２９０１は、次に、空きストレージ制御モジュールの場所に、そのボリュームの「ＬＵ０」を割り当てて、そのストレージ制御モジュールがこのボリュームからブートされるようにする。さらに、指定されたストレージ制御ソフトウェアを収容するボリュームを共有できない場合は、指定されたストレージ制御ソフトウェアを、その空きストレージ制御モジュールに「ＬＵ０」として割り当てられた別のボリュームにコピーすることが可能である。次に、ストレージ制御モジュールが起動したら、ＢＩＯＳ内に配置されることが可能なプログラムローダプログラムが、ブートアップ処理の間に、特定のＬＵ（たとえば、「ＬＵ０」）から、指定されたストレージ制御ソフトウェアを読み出し、メモリ上でソフトウェアの実行を開始する。
【００４９】
[0068]  ステップ１１０９０で、ストレージ制御ソフトウェアが、空きストレージ制御モジュールで使用されるためにインストールされた後、ストレージ制御モジュール管理プログラム２９０１が、ストレージ制御モジュール管理テーブル２９０２内のその特定のストレージ制御モジュールのエントリを、指定されたストレージ制御ソフトウェアの情報で更新する。
【００５０】
[0069]  したがって、本発明は、ストレージ制御モジュールが所望の用途に適応できるように、様々なストレージ制御ソフトウェアが、指定された時点でストレージ制御モジュールにインストールされることを可能にする点で、先行技術に対する優位性を有する。本発明より前は、各ストレージ制御モジュールにおいて、プリインストールされたストレージ制御ソフトウェアが起動するだけで、起動時に実行されるストレージ制御ソフトウェアを変更することに関して選択肢がなかった。
【００５１】
[0070]  ストレージ制御モジュールへのストレージ制御ソフトウェアのインストールが完了した後、図１０に示されるように、そのストレージ制御モジュールに空のボリュームが割り当てられる。
【００５２】
[0071]  ステップ１１１００で、管理者が、管理コンピュータ上でストレージ管理Ｉ／Ｆプログラムを使用し、作成するボリュームの数や、ＬＵＮセキュリティの設定に使用するホストＷＷＮなどのパラメータを使用して、ストレージ管理モジュール２９００上でボリューム供給プログラム２９０４を呼び出す。代替として、管理者は、未割り当てボリュームを手動で検索して指定することが可能である。
【００５３】
[0072]  ステップ１１１２０で、ボリューム供給プログラム２９０４は、空の（未割り当て）ボリュームを見つけるために、ボリューム管理テーブル２９１１を検索する。
【００５４】
[0073]  ステップ１１１３０で、未割り当てボリュームが見つかったか、ステップ１１１００で管理者によってボリュームが指定されている場合には、ボリューム供給プログラムは、ステップ１１１４０に進む。一方、未割り当てボリュームが見つからない場合、または管理者が正しくないボリュームを指定した場合には、プロセスは、ステップ１１１５０に進み、そこで、ボリューム供給プログラムは、エラーを返してプログラムを終了する。
【００５５】
[0074]  ステップ１１１４０で、ボリューム供給プログラム２９０４が、ボリュームの識別に使用される論理装置番号を定義し、プロセスは、そのボリュームのパスを定義する、図１１に示されるパス定義プロセスに進む。
【００５６】
[0075]  図１１のステップ１１１７０で、ボリューム供給プロセス２９０４は、ステップ１１０２０で見つかったストレージ制御モジュールのポートＷＷＮを、新しく割り当てられたボリュームに割り当てる。
【００５７】
[0076]  ステップ１１１８０で、ボリューム供給プログラム２９０４は、ボリューム管理テーブル２９１１を新しいボリューム情報で更新する。
【００５８】
[0077]  ステップ１１１９０で、ボリューム供給プログラム２９０４は、入力されたホストＷＷＮを使用して、ボリュームに対してＬＵＮセキュリティを定義する。これは、ボリューム供給プログラム２９０４が、ストレージ制御モジュールに関してＬＵＮセキュリティテーブル２９１２を更新することを意味する。上述の手順が完了したら、ホストコンピュータ１０００が、ストレージ制御モジュールの指定されたポートから、割り当てられたボリュームにアクセスすることが可能になる。
【００５９】
[0078]  ストレージ制御ＳＷのストレージ制御モジュールからの割り当て解除
[0079]  管理者は、ストレージ制御モジュールの計算能力をより効率的に利用するために、１つまたは複数のストレージ制御モジュール２２００のロールを切り替えたい場合がある。たとえば、夜間にバックアップ操作を実施するために、より高い計算能力が必要になる場合がある。そのような状況では、そのときに、ＶＴＬストレージ制御ソフトウェアを実行しているストレージ制御モジュールがより多くあることが望ましい。同様に、このときは、ストレージ制御モジュールが、ブロックベースのストレージ制御ソフトウェアまたはＮＡＳストレージ制御ソフトウェアを実行している必要性は少ないと考えられる。これは、それらが、日中の間によりアクティブであろう生産用途に使用されるのが普通であるためである。
【００６０】
[0080]  ストレージ制御モジュール２２００のロール変更を実現するために、本発明では、ストレージ制御ソフトウェアをストレージ制御モジュールから割り当て解除する手順が提供される。さらに、データ、およびオリジナルのストレージ制御モジュール構成のホスト接続のような構成情報は、後で必要に応じて、前のロールを再開することが可能であるように、保存されることが好ましい。たとえば、管理者は、バックアップ手順が実施された翌朝に、ストレージ制御モジュールをオリジナルの構成に戻したい場合がある。
【００６１】
[0081]  図１２は、ストレージ制御ソフトウェア２２０１をストレージ制御モジュール２２００から割り当て解除する制御手順の例を示し、この手順は、ホストコンピュータの切断と、ストレージ制御ソフトウェアの停止と、ストレージ制御モジュールに割り当てられたボリュームの割り当て解除と、ボリュームに関連する情報の保存とを含む。
【００６２】
[0082]  ステップ１２０００で、管理者は、管理コンピュータ１１００上でホストコンピュータ管理プログラム１１１２を呼び出して、割り当て解除されるべき（すなわち、再割り当てされるべき）特定のストレージ制御モジュール２２００からホストコンピュータ１０００を切断する。切断コマンドは、「ストレージ制御モジュールによって与えられたファイルシステムからアンマウントする」命令であっても「ホストコンピュータＯＳをシャットダウンする」命令であってもよい。命令を容易にするために、ストレージ制御モジュールとのホストコンピュータ接続に関する情報は、管理コンピュータ１１００によって保全および管理されることが可能である。そのような接続情報の一例は、ボリューム管理テーブル２９１１およびＬＵＮセキュリティテーブル２９１２のコピーである。
【００６３】
[0083]  ステップ１２０１０で、管理者が、管理コンピュータ１１００上でストレージ管理Ｉ／Ｆプログラム１１１１を使用して、ストレージ管理モジュール２９００上でストレージ制御モジュール管理プログラム２９０１を呼び出す。管理者は、指定されたストレージ制御モジュールを割り当て解除するために、割り当て解除されるべきストレージ制御モジュールの番号のようなパラメータを含める。
【００６４】
[0084]  ステップ１２０２０で、ストレージ制御モジュール管理プログラム２９０１は、指定されたストレージ制御モジュール２２００上のストレージ制御ソフトウェア２２０１を停止し、任意の必要な手順（キャッシュメモリからディスクへのフラッシュなど）を実行する。
【００６５】
[0085]  ステップ１２０３０で、停止操作がエラーなしで完了することが可能な場合、プロセスは、ステップ１２０４０に進む。一方、停止操作がエラーを発生して完了する場合は、ステップ１２０５０で、ストレージ制御モジュール管理プログラム２９０１はエラーを返し、プログラムは終了する。
【００６６】
[0086]  ステップ１２０４０で、ストレージ制御モジュール管理プログラム２９０１は、データボリュームを割り当て解除して、構成情報（ボリュームへの現在のホスト接続、その他）を保存するために、ストレージ管理モジュール２９００上でボリューム割り当て解除および割り当てプログラムを呼び出す。しかしながら、構成の保存は、どのような場合でも必須というわけではない。たとえば、現在の構成を再開する予定がまったくない場合は、構成情報を保存する必要がない。さらに、情報が保存されていなければ場合、管理者は、情報を思い出して、ストレージ制御モジュールの再割り当て時にホストコンピュータからボリュームへのパスを再定義することが可能である。
【００６７】
[0087]  ステップ１２０６０で、ボリューム割り当て解除および割り当てプログラムは、ストレージ制御モジュールのボリュームへのパスを割り当て解除する。典型的な割り当て解除操作は、図５のボリューム管理テーブルを、特定のボリュームについての「割り当てられたストレージ制御モジュールの番号」エントリ２９１１２および「関連付けられたストレージ制御モジュールＷＷＮ」エントリ２９１１３の値を削除することなどによって、更新することである。ボリューム管理情報が削除されていても、ボリューム自体は削除されていないので、データ自体はまだ、ストレージシステムに保存されている。したがって、そのデータは、ボリュームの再割り当て時に利用可能であり、再割り当ての実行時に使用するためにデータをバックアップすることは不要である。
【００６８】
[0088]  ステップ１２０７０で、ボリューム割り当て解除および割り当てプログラムは、割り当て解除されたボリュームについてのＬＵＮセキュリティを割り当て解除する。典型的な割り当て解除操作は、図６のＬＵＮセキュリティテーブル２９１２を、「アクセスを許可されたホストのＷＷＮ」エントリ２９１２２の値を削除することなどによって、更新することであろう。さらに、このステップは、必ずしも必須ではない。ＬＵＮセキュリティテーブル２９１２はストレージ制御モジュール自体によって管理されるため、ＬＵＮセキュリティ情報は、割り当て解除されたボリュームが再割り当てされるとすぐに再使用されることが可能である。たとえば、同じボリュームが後で同じストレージ制御モジュールに再割り当てされた場合、そのＬＵＮセキュリティ設定は、引き続き有効になる。しかしながら、割り当て解除されたボリュームが、再割り当て時に同じストレージ制御モジュールに再割り当てされることは必須ではない。すなわち、再割り当て時には、これらのボリュームに別のストレージ制御モジュールが割り当てられることが可能である。そのような場合は、ボリューム割り当て解除時にＬＵＮセキュリティ情報を割り当て解除し、そのボリュームの再割り当て時にＬＵＮセキュリティ情報を再定義するほうがよい。管理者によるＬＵＮセキュリティ情報の再定義を支援するために、ＬＵＮセキュリティ情報は、次のステップ１２０８０で、図７Ｂに示されるようなボリューム割り当て解除管理テーブルに保存されることが可能である。代替方法では、管理コンピュータは、ＬＵＮセキュリティ情報を保存することが可能である。さらに代替として、管理者は、再割り当て時にその情報が利用されるときに、その情報を思い出すことが可能である。
【００６９】
[0089]  ステップ１２０８０で、ボリューム割り当て解除および割り当てプログラム２９０５は、割り当て解除番号を生成し、ボリューム割り当て解除管理テーブル２９０６を更新する（すなわち、新しい割り当て解除番号に対応する新しいエントリを追加する）。前述のように、ＬＵＮセキュリティ情報２９０６７を、図７Ｂの割り当て解除管理テーブル２９０６’に含めることが可能である。
【００７０】
[0090]  ステップ１２０９０で、ボリューム割り当て解除および割り当てプログラムは、割り当て解除番号を管理コンピュータ１１００に返す。返された割り当て解除番号は、ボリュームの再割り当て時、すなわち、同じストレージ制御モジュールまたは別のストレージ制御モジュールの再配置時に利用される。割り当て解除番号は、管理コンピュータ１１００上のストレージ管理インターフェースプログラム１１１１によって保全されるか、管理者によって手動で保全されることが可能である。上述の手順が完了したら、指定されたストレージ制御モジュール２２００は空きであり、新しいロールを割り当てられることが可能である（すなわち、指定されたストレージ制御モジュール２２００に新しいストレージ制御ソフトウェアがロードされることが可能である）。割り当て解除操作が行われる他の状況として、ストレージ制御モジュールを置き換える場合や、ストレージ制御モジュールを削除する場合がある。
【００７１】
[0091]  ストレージ制御モジュールへのストレージ制御ＳＷの再インストール
[0092]  前述のように、管理者は、前の手順で割り当て解除されたストレージ制御モジュールをオリジナルの構成（たとえば、午前中の構成、ストレージ制御モジュールの置き換え中の構成など）に戻したい場合がある。この手順は、図９で示された、ストレージ制御ソフトウェアをストレージ制御モジュールにインストールする手順と異なる。後述されるように、この状況では、保存されたボリュームが、割り当て済みストレージ制御モジュールに割り当てられる。
【００７２】
[0093]  図１１，図１２及び図１３は、ストレージ制御ソフトウェア２２０１をストレージ制御モジュール２２００（割り当て解除時と同じストレージ制御モジュールであっても、別のストレージ制御モジュールであってもよい）に再割り当てする制御手順の例を示す。一般に、このプロセスは、割り当て解除されたストレージ制御ソフトウェア情報を取り出すこと、使用可能なストレージ制御モジュールを見つけること、（必要に応じて）ストレージ制御ソフトウェアをインストールすること、保存されている任意のボリュームを再割り当てすること、および／または（必要に応じて）新しいボリュームを割り当てることを含む。
【００７３】
[0094]  ステップ１３０００で、管理者は、管理コンピュータ１１００上でストレージ管理Ｉ／Ｆプログラム１１１１を使用して、ストレージ管理モジュール２９００上でストレージ制御モジュール管理プログラム２９０１を呼び出す。管理者は、ストレージ制御ソフトウェア２２０１をストレージ制御モジュール２２００に再割り当てするために、ストレージ制御ソフトウェアのタイプ（必須）、ベンダ（任意）、バージョン（任意）、指定された割り当て解除番号、ホストＷＷＮなどのパラメータを使用する。
【００７４】
[0095]  ステップ１３０１０で、ストレージ制御モジュール管理プログラム２９００は、指定された割り当て解除番号がボリューム割り当て解除管理テーブル２９０６に存在するかどうかを調べるために、ストレージ管理モジュール２９００上でボリューム割り当て解除および割り当てプログラム２９０５を呼び出す。
【００７５】
[0096]  ステップ１３０２０で、ボリューム割り当て解除および割り当てプログラムは、指定された割り当て解除番号を、ボリューム割り当て解除管理テーブル２９０６で検索する。
【００７６】
[0097]  ステップ１３０３０で、指定された割り当て解除番号が存在する場合には、ボリューム割り当て解除および割り当てプログラム２９０５は、指定されたストレージ制御ソフトウェアのタイプが、ボリューム割り当て解除管理テーブルに保存されているものと同じかどうかを調べる。ストレージ制御ソフトウェアのタイプは、機能が適正であることを確認するために比較されなければならず、他の比較（ストレージ制御ソフトウェアのベンダ名やバージョンなど）は、任意で行われてよい。割り当て解除番号が存在しない場合、または制御ソフトウェアのタイプが指定と一致しない場合、ステップ１３０５０で、ボリューム割り当て解除および割り当てプログラムは、エラーを返してプログラムを終了する。そうでない場合、プロセスは、ステップ１３０４０に進む。
【００７７】
[0098]  ステップ１３０４０で、指定されたストレージ制御ソフトウェアが同じであれば、ボリューム割り当て解除および割り当てプログラム２９０５は、プロセスの制御をストレージ制御モジュール管理プログラム２９０１に返す。（ストレージ制御ソフトウェアのタイプは同じであって）ベンダまたはバージョンが異なる場合は、データフォーマット変換プログラムがストレージシステムに実装可能であるか、外部サーバにおいて利用可能であれば、エラーを返す必要はなく、データフォーマットを、ストレージ制御ソフトウェアのオリジナルのバージョンからストレージ制御ソフトウェアの新しいバージョンに変換して、操作を続けることが可能である。
【００７８】
[0099]  ステップ１３０６０で、ボリューム割り当て解除管理テーブル２９０６において、割り当て解除されたストレージ制御モジュールの適切なエントリが見つかったら、新しいロールを割り当てられるストレージ制御モジュールを見つける必要があり、それによって、保存されているオリジナルのボリュームを、そのストレージ制御モジュールに再割り当てすることが可能である。したがって、ストレージ制御モジュール管理プログラム２９０１は、ストレージ制御モジュール管理テーブル２９０２を検索して、指定されたタイプのストレージ制御ソフトウェアを既に実行しているストレージ制御モジュール２２００があるかどうかを調べる。指定されたタイプのストレージ制御ソフトウェアを既に有するストレージ制御モジュールを検索する際には、ストレージ制御ソフトウェアのタイプを比較しなければならず、他のパラメータ（ストレージ制御ソフトウェアのベンダ名やバージョンなど）の比較も任意で行われてよい。
【００７９】
[0100]  ステップ１３０７０で、ストレージ制御モジュールが見つからない場合、または、管理者が、既存の制御モジュールの計算負荷を増やさないようにするために新しいストレージ制御モジュールを割り当てたい場合、プロセスは、図１５で示されるプロセスのステップ１３１４０に進む。代替として、指定されたストレージ制御ソフトウェアが既にインストールされている、１つまたは複数のストレージ制御モジュールが見つかった場合は、ステップ１３０８０で、ストレージ制御モジュール管理プログラムが、見つかったストレージ制御モジュールのうちの１つを選択する。ストレージ制御モジュールの１つを選択するには、様々な方法がある。１つの方法は、候補のストレージ制御モジュールの中から、計算負荷が最小であるストレージ制御モジュールを選択し、それによって負荷均衡化も同時に考慮する方法である。しかしながら、本発明は、具体的な選択方法のいずれにも限定されない。さらに、ボリュームの制御を引き継ぐストレージ制御モジュールは、必ずしも単一のストレージ制御モジュールでなくてもよい。すなわち、ボリュームの制御を引き継ぐストレージ制御モジュールが１つだけではストレージ制御モジュールが過負荷になると考えられる状況では、計算負荷を複数のストレージ制御モジュールに分散させるために、複数のストレージ制御モジュールをボリュームの制御の引き継ぎに割り当てることが可能である。ボリュームを複数のストレージ制御モジュールに分散させるには、様々な方法があるので、本発明は、ボリューム分散方法によって限定されない。しかしながら、ステップ１３１４０で適切なストレージ制御モジュールが見つかった場合でも、管理者は、特定のストレージ制御モジュールを使用するとそのストレージ制御モジュールが過負荷になる場合には、そのストレージ制御モジュールを使用したくないであろう。この場合、ストレージ制御モジュール管理プログラム２９０１は、ステップ１３０８０で、管理者がフローの制御を取得する選択肢を提供することが可能である。１つまたは複数のストレージ制御モジュールが選択された後、プロセスは、図１４のプロセスのステップ１３１１０に進む。
【００８０】
[0101]  ステップ１３１１０で、ストレージ制御モジュール管理プログラムは、ボリューム割り当て解除管理テーブル２９０６を検索して、指定された割り当て解除番号に対応するボリューム番号を見つける。
【００８１】
[0102]  ステップ１３１２０で、選択されたストレージ制御モジュールは、ステップ１３１１０で見つかったボリューム割り当て解除管理テーブル２９０６’のエントリから取得されたボリューム番号やホストＷＷＮなどのパラメータを使用して、ボリューム供給プログラム２９０４を呼び出す（ホストＷＷＮは、ＬＵＮセキュリティエントリ２９０６７から取得される）。次に、プロセスは、ステップ１３１１０で見つかった、１つまたは複数のボリューム番号に対してパスを定義する、図１１のプロセスに進む。
【００８２】
[0103]  ステップ１１１７０で、ボリューム供給プログラムは、ストレージ制御モジュールのポートＷＷＮを、ステップ１３１１０で見つかった、１つまたは複数のボリュームに割り当てる。
【００８３】
[0104]  ステップ１１１８０で、ボリューム供給プログラムは、それらの１つまたは複数のボリュームに関してボリューム管理テーブルを更新する。
【００８４】
[0105]  ステップ１１１９０で、ボリューム供給プログラムは、入力されたホストＷＷＮを使用して、それらの１つまたは複数のボリュームに対してＬＵＮセキュリティを定義する。これは、ボリューム供給プログラムが、ストレージ制御モジュールに関してＬＵＮセキュリティテーブル２９１２を更新することを意味する。図７Ａのようなボリューム割り当て解除管理テーブルにホストＷＷＮ情報が保存されていない場合、管理者は、管理コンピュータ１１００上のストレージ管理Ｉ／Ｆプログラム１１１１からホストＷＷＮ情報を指定することが可能である。上述の手順が完了したら、ホストコンピュータが、再度、ストレージ制御モジュールの指定されたポートから、割り当てられたボリュームにアクセスすることが可能になる。
【００８５】
[0106]  図１５に戻り、ステップ１３１４０で、図１３のプロセスでストレージ制御モジュールが見つからなかった場合、プロセスは、図９のプロセスに進み、ステップ１１０２０から、空きストレージ制御モジュールを見つけ、そのストレージ制御モジュールにストレージ制御ソフトウェアをインストールすることを試みる。プロセスは、ステップ１１０２０〜１１０９０を実行し、次に、図１５のステップ１３１５０に戻る。ここで実行されたステップ１１０２０〜１１０９０は、図９を参照して前述されたものと同じである。したがって、これらのステップの説明を繰り返す必要はない。
【００８６】
[0107]  ストレージ制御モジュール管理プログラム２９０１が、ストレージ制御モジュール内で、指定されたストレージ制御ソフトウェアをインストールして起動し、ステップ１１０９０で、ストレージ制御モジュール管理テーブル２９０２内のストレージ制御モジュールについてのエントリを、新しいストレージ制御ソフトウェアの情報で更新した後、プロセスは、図１５のステップ１３１５０に戻る。プロセスがストレージ制御モジュールを見つけられなかった場合、または、指定されたストレージ制御ソフトウェアがまだストレージシステムにインストールされていない場合、ストレージ制御モジュール管理プログラムは、ステップ１１０５０または１１０８０で、それぞれエラーを返す。
【００８７】
[0108]  ステップ１３１５０で、指定されたストレージ制御ソフトウェアを空きストレージ制御モジュールに割り当てることができた場合、プロセスは、図１４のステップ１３１１０に進んで、指定された割り当て解除番号に対応するボリュームがないか探す。したがって、プロセスは、図１４のステップ１３１１０、１３１２０を、その図を参照して前述された様式で実施し、次にプロセスは、図１１のプロセスに進んで、指定された割り当て解除番号に対応するボリュームについてのパス定義を実施するステップ１１１７０〜１１１９０を実行する。これらのステップはすべて、既に詳述されているので、ここでその説明を繰り返す必要はない。上述の手順が完了したら、ホストコンピュータが、再度、ストレージ制御モジュールの指定されたポートから、割り当てられたボリュームにアクセスすることが可能になる。
【００８８】
[0109]  図１５に戻り、ステップ１３１７０で、図９のステップ１１０８０でのストレージ制御ソフトウェアのタイプの不一致のために、空きストレージ制御モジュールを割り当てることができないが、空きストレージ制御モジュールを見つけることはできた場合、ステップ１３１８０で、ストレージ制御モジュール管理プログラムは、正しくないストレージ制御ソフトウェアが指定されたというエラーを返し、プログラムを終了する。一方、図９のステップ１１０５０で使用可能な空きストレージ制御モジュールがなかったために、空きストレージ制御モジュールを割り当てることができない場合、ステップ１３１９０で、ストレージ制御モジュール管理プログラムは、空いているストレージ制御モジュールがないというエラーを返し、プログラムを終了する。代替として、プロセスを終了する代わりに、負荷均衡化プログラム２９０７を呼び出して、ストレージ制御モジュールの割り当て解除、次いで、割り当て解除されたストレージ制御モジュールへのロール（すなわち、指定されたストレージ制御ソフトウェア）の割り当てを試みることが可能である。負荷均衡化プログラム２９０７の手順を、図１６，図１７及び図１８に示し、以下のセクションで説明する。
【００８９】
[0110]  さらに、ストレージ制御モジュールに再割り当てされたオリジナルのボリュームに加えて空のボリュームが必要であれば、管理者は、１つまたは複数の空のボリュームをストレージ制御モジュールに割り当てることが可能である。これを実施する手順は、前述の、図１０のステップ１１１００から始めて図１１のステップ１１１９０まで続く手順と同じである。したがって、これらのステップをここで改めて説明する必要はない。
【００９０】
[0111]  ストレージ制御ＳＷの動的な割り当ておよび割り当て解除
[0112]  これまでのセクションでは、日時、ストレージ制御モジュールの置き換え、またはストレージ制御モジュールの追加に応じてロールを変更するために、管理者が、ストレージ制御モジュールに対して、ロールの割り当て、割り当て解除、および再割り当てを指定する。しかしながら、本発明によれば、ストレージシステム自体が、ストレージ制御モジュールのロールを再構成して、負荷均衡化を自動的に実施することが可能である。たとえば、ある数のストレージ制御モジュールが現在ブロックベースの処理に割り当てられていて、ある数のストレージ制御モジュールがＮＡＳ処理としての使用に割り当てられていて、ブロックベースのストレージ制御モジュールが過負荷状態でありながら、ＮＡＳストレージ制御モジュールが低活動状態である場合には、動的な負荷均衡化がふさわしいであろう。本発明の負荷均衡化方法では、空きストレージ制御モジュールがない場合に、ＮＡＳストレージ制御モジュールの１つを割り当て解除し、それに関連付けられていたボリュームを別のＮＡＳストレージ制御モジュールに割り当てることが可能である。その後、割り当て解除されたＮＡＳストレージ制御モジュールは、ブロックベースの処理用のストレージ制御ＳＷをインストールして、他のブロックベースのストレージ制御モジュールの負荷を軽減することが可能である。したがって、本発明は、ストレージ制御モジュールを種々の異なるタイプのストレージ制御用途に動的に再割り当てすることを可能にする（上述の内容は、非限定的な例に過ぎない）。
【００９１】
[0113]  図１６，図１７及び図１８は、本発明による負荷均衡化を実施する例示的制御手順を示す。この手順は、大まかに言えば、ストレージ制御モジュールの負荷を測定することと、マイグレーションターゲットのストレージ制御モジュールを見つけて、割り当て解除、および再割り当てすることと、マイグレーションターゲットのボリュームを見つけることと、マイグレーションを実行することと、を含む。
【００９２】
[0114]  ステップ１４０００で、ストレージ管理モジュール２９００上の負荷均衡化プログラム２９０７は、ストレージ制御モジュールのパフォーマンスパラメータ（各ストレージ制御モジュールのＣＰＵ負荷、接続数、ポートスループットなど）を測定する。この測定は、定期的またはオンデマンドに行われることが可能である。
【００９３】
[0115]  ステップ１４０１０で、負荷均衡化プログラム２９０７は、測定ステップの結果を、図８の負荷管理テーブル２９０８に格納する。
【００９４】
[0116]  ステップ１４０２０で、負荷均衡化プログラムは、負荷管理テーブル２９０８を検査し、ストレージ制御モジュールのいくつかのパラメータが、ある時点、または、ある時間帯に所定のしきい値を超えているのが見つかった場合は、ステップ１４０４０に進むことによって、負荷均衡化処理が実行される。見つからない場合、負荷均衡化プログラムは、ステップ１４０００へのループバックで示されるように、定期的に、またはオンデマンドベースでパフォーマンスの測定を続ける。負荷均衡化処理に関して言えば、負荷均衡化プログラムは、特定の負荷しきい値またはパフォーマンスしきい値を通過したと識別されたストレージ制御モジュールの負荷（たとえば、ストレージシステム内のボリュームに対して実施されるＩ／Ｏ操作）を分散させる。
【００９５】
[0117]  ステップ１４０４０で、所定のしきい値を超える負荷を有すると識別されたストレージ制御モジュールがあるので、負荷均衡化プログラムは、その識別されたストレージ制御モジュールの負荷を軽減することを試みる。負荷均衡化プログラムは、最初に、ストレージ制御モジュール管理テーブル２９０２を検索して空きストレージ制御モジュールを見つける。
【００９６】
[0118]  ステップ１４０５０で、空きストレージ制御モジュールが見つかった場合、プロセスは、ステップ１４０６０に進む。一方、空きストレージ制御モジュールが見つからなかった場合、プロセスは、図１７のステップ１４１００に進む。
【００９７】
[0119]  ステップ１４０６０で、ストレージ制御モジュール管理プログラム２９０１は、所定の負荷しきい値を超えていると識別されたストレージ制御モジュールで実行されているものと同じタイプのストレージ制御ソフトウェア２２０１を、ストレージ制御ソフトウェアリポジトリ２９１０から取得する。ストレージ制御モジュール管理プログラム２９０１は、取得されたストレージ制御ＳＷ  ２２０１を、新たに見つかった（ステップ１４０４０で見つかった）ストレージ制御モジュールにインストールして起動する。このステップで実施される手順は、図９のステップ１１０７０で前述されたものと同様である。
【００９８】
[0120]  ステップ１４０７０で、負荷均衡化プログラムは、ストレージ制御モジュール管理テーブル２９０２を更新する。このステップは、図９のステップ１１０９０と同様である。次にプロセスは、図１８のステップ１４１９０に進んで、過負荷ストレージ制御モジュール管理テーブルにあるボリュームを再割り当てする。図１８の各ステップについては、図１７の説明の後に説明する。
【００９９】
[0121]  図１７のステップ１４１００で、空きストレージ制御モジュールが見つからなかったため、負荷均衡化プログラムは、過負荷のストレージ制御モジュールの過剰負荷の一部を引き継ぐために割り当て解除および再割り当てされることが可能なストレージ制御モジュールを見つける必要がある。さらに、割り当て解除されたストレージモジュールの負荷は、同じタイプのストレージ制御ソフトウェアを実行している他のいくつかのストレージ制御モジュールによって引き継がれなければならない。したがって、負荷均衡化プログラムは、ストレージ制御モジュール管理テーブル２９０２を検索して、過負荷のストレージ制御モジュールで実行されているストレージ制御ソフトウェアと異なるタイプのストレージ制御ソフトウェアを採用しているストレージ制御モジュール２２００を見つける。
【０１００】
[0122]  ステップ１４１１０で、過負荷のストレージ制御モジュールのものと異なるタイプの、同じタイプのストレージ制御ソフトウェアを有するストレージ制御モジュールが２つ以上見つかった場合、プロセスは、ステップ１４１２０に進む。一方、そのようなストレージ制御モジュールが２つ以上は見つからなかった場合、負荷均衡化プログラムは、適切なマイグレーションターゲットがないため、ステップ１４１８０で終了する。この場合は、プログラムが管理者にエラーメッセージを送り、管理者は、ストレージ制御モジュールの１つが割り当て解除されることが可能かどうか、または負荷均衡化を達成するために新しいストレージ制御モジュールを追加しなければならないかどうかを、手動で決定することが可能である。
【０１０１】
[0123]  ステップ１４１２０で、負荷均衡化プログラム２９０７は、負荷管理テーブル２９０８を検索し、ステップ１４１００で見つかった２つ以上のストレージ制御モジュールの中から見つかったストレージ制御モジュールのうちの１つを選択する。ストレージ制御モジュールを選択するには、様々な方法がある。好ましい方法では、見つかったストレージ制御モジュールの１つにおいて、測定された負荷が最も低いストレージ制御モジュールが、割り当て解除されるよう選択される。これは、見つかったストレージ制御モジュールのそれぞれについて負荷管理テーブル２９０８を参照することによって決定される。しかしながら、本発明は、特定の選択方法に限定されない。
【０１０２】
[0124]  ステップ１４１３０で、負荷均衡化プログラムは、ステップ１４１２０で選択された、選択されたストレージ制御モジュールからストレージ制御ソフトウェアを割り当て解除し、負荷均衡化プログラムは、割り当て解除番号を受け取る。この割り当て解除処理は、ストレージ制御モジュール管理プログラム２９０１を呼び出して、図１２を参照して前述されたステップ１２０００〜１２０９０を実施することによって、実施される。これらのステップについては、既に詳述されているので、ここで改めて説明する必要はない。
【０１０３】
[0125]  ステップ１４１４０で、負荷均衡化プログラム２９０７は、ステップ１２０９０を完了して、選択されたストレージ制御モジュールの割り当て解除を終了し、割り当て解除番号を返した後、選択されて割り当て解除されたストレージ制御モジュールと同じストレージ制御ソフトウェアを実行している他のストレージ制御モジュールのうちの１つまたは複数に、割り当て解除されたボリュームを再割り当てするために、ボリューム割り当て解除管理テーブル２９０６を検索して、返された割り当て解除番号に対応するボリューム番号を見つける。同じストレージ制御ソフトウェアを実行している他のストレージ制御モジュールが複数存在する場合、これらのうちのどれに、割り当て解除されたストレージ制御モジュールのＩ／Ｏ操作を引き継がせるか、を選択するには、様々な方法がある。好ましい一方法は、負荷均衡化テーブル２９０８を参照して、負荷が最も低いストレージ制御モジュールを選択することである。しかしながら、本発明は、特定の選択方法に限定されない。さらに、複数のストレージ制御モジュールが、割り当て解除されたストレージ制御モジュールと同じストレージ制御ソフトウェアを実行している場合は、計算負荷を複数のストレージ制御モジュールに分散させるために、複数のストレージ制御モジュールが、割り当て解除されたボリュームを引き継ぐことが可能である。これは、１つのストレージ制御モジュールだけがそのボリュームを引き継ぐと、そのストレージ制御モジュールもまた過負荷になってしまう可能性があるためである。複数のストレージ制御モジュールにまたがるボリューム分散を決定するには、様々な方法があり、したがって、本発明は、特定のボリューム分散方法に限定されない。
【０１０４】
[0126]  ステップ１４１５０で、負荷均衡化プログラム２９０７は、割り当て解除されたストレージ制御モジュールに以前から割り当てられていたボリューム番号および割り当て済みホストＷＷＮなどのパラメータを使用して、ボリューム供給プログラム２９０４を呼び出す。ボリューム番号およびホストＷＷＮは、割り当て解除番号を使用してボリューム割り当て解除管理テーブル２９０６’から取り出すことが可能である（ホストＷＷＮは、ＬＵＮセキュリティエントリ２９０６７に含まれる）。
【０１０５】
[0127]  ステップ１４１６０で、ボリューム供給プログラムは、図１１に示された処理のステップ１１１７０〜１１１９０を実施して、再割り当てされたボリュームのパスを定義する。これにより、ホストコンピュータが、再割り当てされたストレージ制御モジュールの指定されたポートから、再割り当てされたボリュームにアクセスできるようになる。再割り当てされたボリュームのパス定義が完了したら、マイグレーションターゲットのストレージ制御モジュールが、負荷均衡化に使用されることが可能になり、手順は、図１８の１４１９０に進む。
【０１０６】
[0128]  図１８のステップ１４１９０で、負荷均衡化プログラム２９０７は、過負荷のストレージ制御モジュールにあるどのボリュームを空きストレージ制御モジュールにマイグレートするかを決定する。マイグレーションのターゲットとなるボリュームを選択するには、様々な方法がある。１つの方法は、ボリュームのボリューム番号に基づく。たとえば、各ボリュームに番号が昇順に振られていて、ボリューム番号が小さいほうの半数のボリュームが、過負荷のストレージ制御モジュールにとどまり、ボリューム番号が大きいほうの半数のボリュームが、空きストレージ制御モジュールへのマイグレーションのターゲットとなることが可能である。別の方法では、ホストによるボリュームへのアクセスの頻度を測定し、測定されたアクセス頻度に従って、ほぼ均等にボリュームを分散させることが可能である。さらに代替として、管理者は、移動させるボリュームを手動で選択することが可能である。他の方法も本開示から自明であり、本発明は、特定の方法に限定されない。
【０１０７】
[0129]  ステップ１４２００で、負荷均衡化プログラム２９０７は、管理コンピュータ上でホストコンピュータ管理プログラム１１１１を呼び出して、ステップ１４１９０で選択されたターゲットボリュームに関連付けられたホストコンピュータを切断する。代替方法では、管理者は、ホストを切断することを手動で指定することが可能である。
【０１０８】
[0130]  ステップ１４２１０で、負荷均衡化プログラム２９０７は、マイグレーションターゲットのボリュームを過負荷のストレージ制御モジュールから割り当て解除するために、ボリューム割り当て解除および割り当てプログラム２９０５を呼び出す。
【０１０９】
[0131]  ステップ１４２２０で、ボリューム割り当て解除および割り当てプログラム２９０５は、ターゲットボリュームへのパスを割り当て解除する。典型的な割り当て解除操作には、図５のボリューム管理テーブル２９１１を、「割り当てられたストレージ制御モジュールの番号」エントリ２９１１２および「関連付けられたストレージ制御モジュールＷＷＮ」エントリ２９１１３の値を削除することによって更新することが含まれる。ボリューム管理情報は削除されるが、ボリュームおよびデータ自体は、ストレージシステム内に存続する。そこで、そのデータを、ボリュームが再割り当てされたときなどに利用することが可能である。したがって、この方法では、ボリュームが割り当て解除されるときにボリューム上のデータをバックアップして、再割り当て時にそれらのデータをボリュームに戻す必要がない。これは、データがストレージデバイス内で存続しているためである。もちろん、ボリュームが再割り当てされないことが予想される場合、または、そのボリュームデータを収容している物理的ストレージ空間が別の用途に必要な場合は、ボリュームのデータをバックアップデバイスにバックアップすることが可能である。
【０１１０】
[0132]  ステップ１４２４０で、ボリューム割り当て解除および割り当てプログラム２９０５は、割り当て解除されたボリュームに対するＬＵＮセキュリティを割り当て解除する。典型的な割り当て解除操作は、図６のＬＵＮセキュリティテーブル２９１２を、「アクセスを許可されたホストのＷＷＮ」２９１２２のエントリを削除することによって更新することである。
【０１１１】
[0133]  ステップ１４２５０で、ボリューム割り当て解除および割り当てプログラム２９０５は、割り当て解除番号を生成し、ボリューム割り当て解除管理テーブルを更新する（すなわち、新しい割り当て解除用エントリを追加する）。
【０１１２】
[0134]  ステップ１４２６０で、ボリューム割り当て解除および割り当てプログラムは、割り当て解除番号を負荷均衡化プログラム２９０７に返す。
【０１１３】
[0135]  ステップ１４２７０で、負荷均衡化プログラムは、図１７の処理で割り当て解除されたか、図１６の処理で見つかった空きストレージ制御モジュールであるマイグレーションターゲットのストレージ制御モジュールにボリュームを再割り当てするために、ボリューム割り当て解除管理テーブル２９０６を検索して、返された割り当て解除番号に対応するボリューム番号を見つける。
【０１１４】
[0136]  ステップ１４２８０で、負荷均衡化プログラムは、割り当て解除されたボリュームに対する割り当て解除済みボリューム番号および割り当て済みホストＷＷＮなどのパラメータを使用して、ボリューム供給プログラムを呼び出す。ボリューム番号およびホストＷＷＮは、割り当て解除番号およびＬＵＮセキュリティ情報を使用することにより、ボリューム割り当て解除管理テーブル２９０６’から取得されることが可能である。ボリューム供給プログラム２９０４は、図１１に関して前述されたように、割り当てられたボリュームのパスを定義するために、図１１のステップ１１１７０〜１１１９０を実施する。これらのステップについては、既に詳述されているので、ここで改めて説明する必要はない。図７Ｂのテーブル２９０６’ではなく図７Ａのテーブル２９０６のようなボリューム割り当て解除管理テーブルにホストＷＷＮ情報が保存されていない場合、管理者は、管理コンピュータ１１００上のストレージ管理Ｉ／Ｆプログラム１１１１からホストＷＷＮ情報を指定することが可能である。上述の手順が完了したら、ホストコンピュータが、再割り当てされたストレージ制御モジュールの指定されたポートから、再割り当てされたボリュームにアクセスすることが可能になる。
【０１１５】
[0137]  第２の実施形態
[0138]  本発明の第２の実施形態として、本発明の別のハードウェアおよびソフトウェア構成を説明する。本発明の第２の実施形態のストレージシステムの典型的なハードウェア構成を、図１９に示す。第２の実施形態では、第１の実施形態の、複数のストレージ制御モジュール２２００を有するストレージシステム２０００の代わりに、複数のストレージ制御サーバ６０００を採用する。ＣＰＵのようなハードウェア要素は標準化されているので、ストレージ制御モジュール２２００は、標準化されたハードウェアを使用して開発されることが可能である。したがって、標準化されたハードウェアを有するストレージ制御モジュールは、１つまたは複数の外部ストレージシステム３０００に接続された、標準化されたコンピュータまたは機器に置き換えられることが可能である。外部ストレージシステム３０００は、本発明のユニファイドストレージシステムではなく従来型のストレージシステムであってよい。
【０１１６】
[0139]  ストレージ制御サーバ６０００のハードウェア構成は、第１の実施形態のストレージ制御モジュール２２００の場合と同様または同じである。したがって、各ストレージ制御サーバ６０００は、ＣＰＵ  ６０１１と、メモリ６０１２と、ネットワーク４０００に接続される第１のインターフェース６０１３と、管理ネットワーク４２００に接続される第２のインターフェース６０１４と、ネットワーク４１００および外部ストレージシステム３０００に接続される第３のインターフェース６０１５と、を含む。１つの違いは、ストレージコントローラ２１００が、ストレージシステム２０００の一部であることから、キャッシュ２１３０を含むことである。しかしながら、サーバ６０００のほうは、必ずしもキャッシュを有しないが、インストレーションによってはキャッシュを含む場合がある。
【０１１７】
[0140]  第１および第２の実施形態のいずれにおいても、ストレージ管理モジュールにある、ストレージ管理に関連するプログラムおよびテーブルのすべてまたは一部が、管理コンピュータ１１００に常駐することが可能である。さらに、ストレージ制御ソフトウェアリポジトリを、管理コンピュータ１１００または他の外部サーバに配置することも可能である。リポジトリとストレージシステムとの間の距離は、本発明の全体機能には影響しない。したがって、ソフトウェアリポジトリは、インターネットなどを介してアクセスが可能であるような、ワイドエリアネットワーク（ＷＡＮ）上の別の場所に配置されてもよい。さらに、前述の第１の実施形態において示されたものと同じ処理フローを使用するために、プログラムおよびテーブルのロケーションおよびプログラム間通信にいくつかの小変更を施すことが可能である。しかしながら、これらの変更は、本発明の中心的な処理フロー（ストレージ制御ソフトウェアのインストール、ストレージ制御ソフトウェアのアンインストール、ストレージ制御ソフトウェアの再インストール、負荷均衡化など）の機能性には影響しない。
【０１１８】
[0141]  図２０は、図１９のハードウェア構成に従う論理構成の例を示す。ハードウェア構成が変更されているため、ソフトウェア構成も、一部変更が必要である。たとえば、図１９の構成にはストレージ管理モジュールがないため、第１の実施形態のストレージ管理モジュールのタスクを、管理コンピュータ１１００が引き継ぐ。しかしながら、この制御関連ソフトウェアのロケーション変更は、本発明の中心的な制御フローには影響しない。
【０１１９】
[0142]  たとえば、管理コンピュータ１１００は、ホストコンピュータ管理プログラム１１１２およびストレージ管理インターフェースプログラム１１１１を含むことに加えて、さらに、第１の実施形態のストレージ制御モジュール管理プログラム２９０１と同様の機能を実施するストレージ制御サーバプログラム１９０１を含む。さらに管理コンピュータ１１００に含まれるものとして、テーブル２９０２と同じ情報を収容するストレージ制御サーバ管理テーブル、テーブル２９０３と同じ情報を収容するストレージ制御ソフトウェアテーブル１９０３、プログラム２９０４と同様の機能を実施するボリューム供給管理プログラム１９０４、プログラム２９０５と同様の機能を実施するボリューム割り当て解除および割り当てプログラム１９０５、プログラム２９０６と同様の機能を実施するボリューム割り当て解除管理プログラム１９０６、プログラム２９０７と同様の機能を実施する負荷均衡化プログラム１９０７、テーブル２９０８と同じ情報を収容する負荷管理テーブル１９０８、テーブル２９１１と同じ情報を収容するボリューム管理テーブル１９１１、テーブル２９１２と同じ情報を収容するＬＵＮセキュリティテーブル１９１２がある。前述のように、管理コンピュータ１１００内、またはネットワーク４０００、４２００、４１００を介して利用可能な他の場所に、ストレージ制御ソフトウェアリポジトリ１９１０を収容することも可能である。
【０１２０】
[0143]  さらに、ストレージ制御サーバ６０００とストレージシステム３０００との間の接続の一部としてネットワークスイッチ（図示せず）が利用される場合は、ゾーニングを割り当てることが可能である。このゾーニング割り当ては、ＬＵＮセキュリティ設定ステップの直前または直後のようなパス定義フェーズにおいて実施されなければならない。第２の実施形態におけるストレージ制御サーバ６０００のソフトウェア構成は、第１の実施形態におけるストレージ制御モジュール２２００のソフトウェア構成と同じであってよく、ボリューム６２４０およびストレージ制御ソフトウェア６２０１を含む。したがって、サーバ６０００は、データが物理的には外部ストレージシステム３０００に格納されている場合でも、ホストコンピュータ１０００にボリューム６２４０を提供することが可能である。
【０１２１】
[0144]  Ｉ／Ｆプロトコルスタックの変更
[0145]  前述の実施形態では、ストレージ制御モジュール２２００またはストレージ制御サーバ６０００のロールを変更する際に、ストレージ制御ソフトウェアの全体が、別のストレージ制御ソフトウェアに置き換えられる。しかしながら、使用されるインターフェースプロトコルだけを置き換えることも可能である。たとえば、インターフェースハードウェアの置き換えに合わせて、ＦＣとｉＳＣＳＩとを置き換えることが可能である。たとえば、インターフェースプロトコルの置き換えを達成するために用いることが可能な１つの方法は、ストレージ制御ソフトウェアからオリジナルのプロトコルスタックを割り当て解除し、ストレージ管理モジュール２９００などから、新しいプロトコルスタックをストレージ制御ソフトウェアにインストールすることである。ホスト側の構成（ＬＵＮセキュリティやゾーニングなど）は、パス定義のステップで、プロトコルスタックの置き換えに合わせて変更されることが可能である。しかしながら、他の構成は、必ずしも変更が必要ではない。
【０１２２】
[0146]  本発明は、ユニファイドストレージシステムを提供する方法および装置を教示する。ユニファイドストレージシステムは、ストレージ制御モジュール（すなわち、標準ハードウェア）上で実行されているストレージ制御ソフトウェア（ブロック、ＮＡＳ、ＣＡＳ、ＶＴＬ、ＶＤＬ、ＯＯＳなど）を柔軟に変更することが可能である。本発明は、時間、ストレージ制御モジュール置き換えの置き換え、またはストレージ制御モジュールの追加に応じて、ストレージ制御モジュールのロール変更を実施するために用いられることが可能である。ストレージシステムは、負荷均衡化を自動的に実施するために、ストレージ制御モジュールの割り当て済みロールを動的に再構成することも可能である。
【０１２３】
[0147]  したがって、本発明は、様々なタイプのストレージ制御ソフトウェアを実行することが可能であって、さらに、負荷を均衡化するために、それらの様々なストレージ制御ソフトウェアを互いに交換することが可能なユニファイドストレージシステムのための方法および装置を提供することが理解されよう。さらに、本明細書では、特定の実施形態を図示および説明してきたが、当業者であれば、開示された特定の実施形態の代わりに、同じ目的を達成することを意図された任意の翻案を用いることが可能であることを理解されよう。本開示は、本発明の任意およびすべての翻案物または変形物を包含することを意図しており、先述の説明は、例示的になされたものであって限定的になされたものではないことを理解されたい。したがって、本発明の範囲は、添付の特許請求項、ならびにそのような特許請求項が権利として与えられる、あらゆる等価物に関連して適正に決定されなければならない。
【図面の簡単な説明】
【０１２４】
【図１】[0010]本発明の方法および装置を適用することが可能なハードウェア構成の例を示す図である。
【図２】[0011]図１のアーキテクチャに適用される、本発明の論理構成の例を示す図である。
【図３】[0012]ストレージ制御モジュール管理テーブルの例を示す図である。
【図４】[0013]ストレージ制御ソフトウェア管理テーブルの例を示す図である。
【図５】[0014]ボリューム管理テーブルの例を示す図である。
【図６】[0015]ＬＵＮセキュリティテーブルの例を示す図である。
【図７】[0016]（Ａ）は本発明によるボリューム割り当て解除管理テーブルの例を示す図であり、[0017]（Ｂ）はＬＵＮセキュリティを含む、ボリューム割り当て解除管理テーブルの別の例を示す図である。
【図８】[0018]負荷管理テーブルの例を示す図である。
【図９】[0019]空きストレージ制御モジュールを割り当てる例示的制御手順を示す図である。
【図１０】同空きストレージ制御モジュールを割り当てる例示的制御手順を示す図である。
【図１１】同空きストレージ制御モジュールを割り当てる例示的制御手順を示す図である。
【図１２】[0020]ストレージ制御モジュールからストレージ制御ソフトウェアを割り当て解除する例示的処理を示す図である。
【図１３】[0021]ストレージ制御ソフトウェアをストレージ制御モジュールに再割り当てする制御手順の例を示す図である。
【図１４】同ストレージ制御ソフトウェアをストレージ制御モジュールに再割り当てする制御手順の例を示す図である。
【図１５】同ストレージ制御ソフトウェアをストレージ制御モジュールに再割り当てする制御手順の例を示す図である。
【図１６】[0022]負荷均衡化の制御手順の例を示す図である。
【図１７】同負荷均衡化の制御手順の例を示す図である。
【図１８】同負荷均衡化の制御手順の例を示す図である。
【図１９】[0023]本発明の方法および装置を適用することが可能なハードウェア構成の別の例を示す図である。
【図２０】[0024]図１９のアーキテクチャに適用される、本発明の論理構成の例を示す図である。
【図１】
2008257682.tif 000003
【図２】
2008257682.tif 000004
【図３】
2008257682.tif 000005
【図４】
2008257682.tif 000006
【図５】
2008257682.tif 000007
【図６】
2008257682.tif 000008
【図７】
2008257682.tif 000009
【図８】
2008257682.tif 000010
【図９】
2008257682.tif 000011
【図１０】
2008257682.tif 000012
【図１１】
2008257682.tif 000013
【図１２】
2008257682.tif 000014
【図１３】
2008257682.tif 000015
【図１４】
2008257682.tif 000016
【図１５】
2008257682.tif 000017
【図１６】
2008257682.tif 000018
【図１７】
2008257682.tif 000019
【図１８】
2008257682.tif 000020
【図１９】
2008257682.tif 000021
【図２０】
2008257682.tif 000022
【外国語明細書】
2008257682000001.pdf