(57)【要約】      （修正有）【課題】ＮＡＳシステムにインストールされている多くのプログラムのライセンスを効率良く管理するストレージシステムの制御方法およびプログラムを提供する。【解決手段】ネットワークを介して接続される情報処理装置からファイル名指定によるデータ入出力要求を授受する複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムについてライセンスがそれぞれに設定されているかどうかを判断する。各プログラムについてライセンスがそれぞれに設定されていると判断した場合には、ストレージシステム内のチャネル制御部においてインストールされているプログラムを利用できるように制御するように管理する。【選択図】      図１２
2004234559.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される情報処理装置からファイル名指定によるデータ入出力要求を授受する複数のチャネル制御部と、
前記チャネル制御部ごとに割り当てられたアクセス可能な記憶領域と、
前記記憶領域を備える記憶デバイスと、
を含んで構成されるストレージシステムの制御方法において、
前記チャネル制御部に実行させるプログラムをインストールするステップと、
前記複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムについてライセンスがそれぞれに設定されているかどうかを判断するステップと、
前記プログラムについてライセンスがそれぞれに設定されていると判断した場合には、ストレージシステム内の前記チャネル制御部において前記インストールされているプログラムを利用できるように制御するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項２】
請求項１に記載のストレージシステムの制御方法において、
前記複数のチャネル制御部のうち少なくともいずれか２つのチャネル制御部でクラスタを構成させた場合には、
前記クラスタを構成するチャネル制御部に割り当てられた記憶領域にインストールされているプログラムについてライセンスがそれぞれに設定されているかどうかを判断するステップと、
前記プログラムについてライセンスがそれぞれに設定されていると判断した場合には、ストレージシステム内の前記チャネル制御部において前記インストールされているプログラムを利用できるように制御するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項３】
請求項１に記載のストレージシステムの制御方法において、
前記複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムが一致するかどうかをあらかじめ判断するステップと、
前記インストールされているプログラムのうちあるプログラムが一致しないと判断した場合には、全ての前記チャネル制御部において当該プログラムの実行のさせ方を制御するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項４】
請求項１に記載のストレージシステムの制御方法において、
前記複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムのバージョンが一致するかどうかをあらかじめ判断するステップと、
前記インストールされているプログラムのうちあるプログラムのバージョンが一致しないと判断した場合には、全ての前記チャネル制御部において当該プログラムの実行のさせ方を制御するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項５】
請求項３に記載のストレージシステムの制御方法において、
前記全てのチャネル制御部において前記プログラムの実行のさせ方を制御するステップは、前記プログラムのライセンスを解除するステップであること、
を特徴とするストレージシステムの制御方法。
【請求項６】
請求項３に記載のストレージシステムの制御方法において、
前記全てのチャネル制御部において前記プログラムの実行のさせ方を制御するステップは、前記プログラムをアンインストールするステップであること、
を特徴とするストレージシステムの制御方法。
【請求項７】
請求項１に記載のストレージシステムの制御方法において、
前記プログラムについてライセンスがそれぞれに設定されていないと判断した場合には、前記プログラムの利用をできないように制御するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項８】
請求項１に記載のストレージシステムの制御方法において、
前記プログラムについてライセンスがそれぞれに設定されていないと判断した場合には、前記プログラムについてのライセンスキーの登録を要求するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項９】
請求項１に記載のストレージシステムの制御方法において、
前記プログラムについてライセンスがそれぞれに設定されていないと判断したが、必要な数のライセンスキーが登録されている場合には、前記ライセンスが設定されていないプログラムにそれぞれライセンスを設定するステップと、
前記ストレージシステム内の前記チャネル制御部において前記インストールされているプログラムを利用できるように制御するステップと、
を備えることを特徴とするストレージシステムの制御方法。
【請求項１０】
請求項８に記載のストレージシステムの制御方法において、
前記プログラムについてのライセンスキーの登録を要求した場合に、当該ライセンスキーが既に登録されたライセンスキーであるかどうかを判断するステップが含まれること、
を特徴とするストレージシステムの制御方法。
【請求項１１】
ネットワークを介して接続される情報処理装置からファイル名指定によるデータ入出力要求を授受する複数のチャネル制御部と、
前記チャネル制御部ごとに割り当てられたアクセス可能な記憶領域と、
前記記憶領域を備える記憶デバイスと、
を含んで構成されるストレージシステムにおいて、
前記複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムについてライセンスがそれぞれに設定されているかどうかを判断する手段と、
前記プログラムについてライセンスがそれぞれに設定されていると判断した場合には、ストレージシステム内の前記チャネル制御部において前記インストールされているプログラムを利用できるように制御する手段と、
を備えることを特徴とするストレージシステム。
【請求項１２】
ネットワークを介して接続される情報処理装置からファイル名指定によるデータ入出力要求を授受する複数のチャネル制御部と、
前記チャネル制御部ごとに割り当てられたアクセス可能な記憶領域と、
前記記憶領域を備える記憶デバイスと、
を含んで構成されるストレージシステムに、
前記複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムについてライセンスがそれぞれに設定されているかどうかを判断する機能と、
前記プログラムについてライセンスがそれぞれに設定されていると判断した場合には、ストレージシステム内の前記チャネル制御部において前記インストールされているプログラムを利用できるように制御する機能と、
を実現するためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストレージシステムの制御方法、ストレージシステム、及びプログラムに関する。
【０００２】
【従来の技術】
近年コンピュータシステムで取り扱われるデータ量が急激に増加している。このようなデータを管理するためのストレージシステムとして、最近ではミッドレンジクラスやエンタープライズクラスと呼ばれるような、巨大な記憶資源を提供するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）方式で管理されたストレージシステムにファイルシステムを結合させた、大規模なストレージシステムが注目されている。また、かかる膨大なデータを効率よく利用し管理するために、ディスクアレイ装置等のストレージシステムと情報処理装置とを専用のネットワーク（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、以下ＳＡＮと記す）で接続し、ストレージシステムへの高速かつ大量なアクセスを実現する技術が開発されている。一方、ストレージシステムと情報処理装置とをＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコル等を用いたネットワークで相互に接続し、情報処理装置からのファイルレベルでのアクセスを実現するＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）と呼ばれるストレージシステムが開発されている。
【０００３】
このようなストレージシステムにおいては、不正コピー防止等を目的として、コンピュータにインストールされるオペレーティングシステムやアプリケーションプログラムを機能させるために、一般にライセンスを設定（登録）することが要求される。ここでインストールされるプログラムの数が多い場合や、管理すべきコンピュータの数が多い場合は、管理対象となるライセンス数も必然的に多くなる。なお、このようなライセンスを管理する仕組みとして、例えば会社等の内部またはグループ内に組織の変更や人事異動があった場合にその社員が利用しているインストールプログラムに対するライセンスの設定変更を行う仕組みが知られている（例えば、特許文献１）。
【０００４】
【特許文献１】
特開２００２−２７９１６５号公報
【０００５】
【発明が解決しようとする課題】
ところで、上述のＮＡＳにおいては、例えば、情報処理装置との間の通信を行うためのプログラムやファイルシステム機能などを実現するためのプログラムなど、数多くのプログラムがインストールされる。従って、特にＮＡＳにおいては、ライセンスを効率よく管理する仕組みが求められる。
【０００６】
本発明は上記課題を鑑みてなされたものであり、ストレージシステムの制御方法、ストレージシステム、及びプログラムを提供することを主たる目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るストレージシステムのライセンスを管理する方法は、ネットワークを介して接続される情報処理装置からファイル名指定によるデータ入出力要求を授受する複数のチャネル制御部と、前記チャネル制御部ごとに割り当てられたアクセス可能な記憶領域と、前記記憶領域を備える記憶デバイスと、を含んで構成されるストレージシステムの制御方法において、前記チャネル制御部に実行させるプログラムをインストールするステップと、前記複数のチャネル制御部に割り当てられた記憶領域にインストールされているプログラムについてライセンスがそれぞれに設定されているかどうかを判断するステップと、前記プログラムについてライセンスがそれぞれに設定されていると判断した場合には、ストレージシステム内の前記チャネル制御部において前記インストールされているプログラムを利用できるように制御するステップと、を備える。
【０００８】
なお、前記情報処理装置とは、前記構成の前記記憶デバイス制御装置を備えて構成されるストレージシステムにＬＡＮやＳＡＮを介してアクセスする、例えば、パーソナルコンピュータやメインフレームコンピュータである。ファイルアクセス処理部の機能はチャネル制御部のＣＰＵ上で実行されるオペレーティングシステムおよびこのオペレーティングシステム上で動作する例えばＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等のプログラムによって提供される。記憶デバイスは例えばハードディスク装置などのディスクドライブである。
【０００９】
またファームウエアやファイルアクセス処理部を機能させるためのプログラムが記憶デバイスにインストールされることにより、ストレージシステムは情報処理装置に対してＮＡＳとしての機能を提供することができる。
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【００１０】
【発明の実施の形態】
＝＝＝全体構成例＝＝＝
図１は、本発明の一実施例として説明するチャネル制御部を備えるストレージシステムの全体構成を示す。ストレージシステム６００は、記憶デバイス制御装置１００と記憶デバイス（記憶装置）３００とを備えている。記憶デバイス制御装置１００は、情報処理装置２００から受信したコマンドに従って記憶デバイス３００に対する制御を行う。例えば情報処理装置２００からデータの入出力要求を受信して、記憶デバイス３００に記憶されているデータの入出力のための処理を行う。データは、記憶デバイス３００が備えるディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）（以下、ＬＵと記す）に記憶されている。また記憶デバイス制御装置１００は、情報処理装置２００との間で、ストレージシステム６００を管理するための各種コマンドの授受も行う。
【００１１】
情報処理装置２００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリを備えたコンピュータである。情報処理装置２００が備えるＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。情報処理装置２００は、例えばパーソナルコンピュータやワークステーションであることもあるし、メインフレームコンピュータであることもある。
【００１２】
図１において、情報処理装置２００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）４００を介して記憶デバイス制御装置１００と接続されている。ＬＡＮ４００は、インターネットとすることもできるし、専用のネットワークとすることもできる。ＬＡＮ４００を介して行われる情報処理装置２００と記憶デバイス制御装置１００との間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。情報処理装置２００からは、ストレージシステム６００に対して、ファイル名指定によるデータアクセス要求（以下、ファイルアクセス要求と記す）が送信される。
【００１３】
記憶デバイス制御装置１００は、チャネル制御部１１０を備える。以下、このチャネル制御部１１０のことをＣＨＮとも記す。記憶デバイス制御装置１００は、チャネル制御部１１０によりＬＡＮ４００を介して情報処理装置２００との間で通信を行う。チャネル制御部１１０は、情報処理装置２００からのファイルアクセス要求を個々に受け付ける。すなわち、チャネル制御部１１０には、個々にＬＡＮ４００上のネットワークアドレス（例えば、ＩＰアドレス）が割り当てられていてそれぞれが個別にＮＡＳとして振る舞い、個々のＮＡＳがあたかも独立したＮＡＳが存在しているかのようにＮＡＳのサービスを情報処理装置２００に提供することができる。以下、チャネル制御部１１０をＣＨＮと記す。このように１台のストレージシステム６００に個別にＮＡＳとしてのサービスを提供するチャネル制御部１１０を備えるように構成したことで、従来、独立したコンピュータで個別に運用されていたＮＡＳサーバが一台のストレージシステム６００に集約されて運用される。そして、この構成によってストレージシステム６００の統括的な管理が可能となり、ライセンス管理、インストールの有無及びプログラムのバージョンなどのプログラム管理だけでなく、各種設定・制御や障害管理といった保守業務の効率化が図られる。
【００１４】
なお、本実施の形態に係る記憶デバイス制御装置１００のチャネル制御部１１０の機能は、後述するように、一体的にユニット化された回路基板上に形成されたハードウェア及びこのハードウェアにより実行されるオペレーティングシステム（以下、ＯＳと記す）やこのＯＳ上で動作するアプリケーションプログラムなどのプログラムにより実現される。このように本実施例のストレージシステム６００では、従来ハードウェアの一部として実装されてきた機能が主としてプログラムによって実現されている。このため、本実施例のストレージシステム６００では柔軟性に富んだシステム運用が可能となり、多様で変化の激しいユーザニーズに対応したきめ細かなサービスを提供することが可能となる。
【００１５】
なお、上記においては、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）４００を介して記憶デバイス制御装置１００と情報処理装置２００とを接続するように設定されているが、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して記憶デバイス制御装置１００と情報処理装置２００とを接続するように設定してもよい。また、ＬＡＮ４００やＳＡＮ等のネットワークを介さずに記憶デバイス制御装置１００と情報処理装置２００とを接続するように設定してもよい。
【００１６】
＝＝＝記憶デバイス＝＝＝
記憶デバイス３００は多数のディスクドライブ（物理ディスク）を備えており情報処理装置２００に対して記憶領域を提供する。データは、ディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域であるＬＵに記憶されている。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。
【００１７】
なお、記憶デバイス３００は例えば複数のディスクドライブによりディスクアレイを構成するようにすることもできる。この場合、情報処理装置２００に対して提供される記憶領域は、ＲＡＩＤにより管理された複数のディスクドライブにより提供されるようにすることもできる。
【００１８】
記憶デバイス制御装置１００と記憶デバイス３００との間は図１のように直接に接続される形態とすることもできるし、ネットワークを介して接続するようにすることもできる。さらに記憶デバイス３００は記憶デバイス制御装置１００と一体として構成されることもできる。
【００１９】
記憶デバイス３００に設定されるＬＵ（記憶領域）には、情報処理装置２００からアクセス可能なユーザＬＵや、チャネル制御部１１０の制御のために使用されるシステムＬＵ等がある。システムＬＵにはＣＨＮ１１０で実行されるオペレーティングシステムも格納される。その他、ＣＨＮ１１０で実行され、ＮＡＳサービスを提供するために必要なアプリケーションプログラムやデータなども格納される。また各ＬＵにはチャネル制御部１１０が対応付けられている。これによりチャネル制御部１１０毎にアクセス可能なＬＵが割り当てられている。また上記対応付けは、複数のチャネル制御部１１０で一つのＬＵを共有するようにすることもできる。なお以下において、ユーザＬＵやシステムＬＵをユーザディスク、システムディスク等とも記す。また、複数のチャネル制御部１１０で共有されるＬＵを共有ＬＵあるいは共有ディスクと記す。
【００２０】
＝＝＝記憶デバイス制御装置＝＝＝
記憶デバイス制御装置１００はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０、管理端末１６０、接続部１５０を備える。
【００２１】
チャネル制御部１１０は情報処理装置２００との間で通信を行うための通信インタフェースを備え、情報処理装置２００との間でデータ入出力コマンド等を授受する機能を備える。例えばＣＨＮ１１０は情報処理装置２００からのファイルアクセス要求を受け付ける。そしてファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するＩ／Ｏ要求を出力することにより、記憶デバイス３００へのアクセスを行う。これによりストレージシステム６００はＮＡＳとしてのサービスを情報処理装置２００に提供することができる。なおＩ／Ｏ要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別が含まれている。またデータの書き込みの場合にはＩ／Ｏ要求に書き込みデータが含まれているようにすることもできる。Ｉ／Ｏ要求の出力は、後述するＩ／Ｏプロセッサ１１９により行われる。
【００２２】
各チャネル制御部１１０は管理端末１６０と共に内部ＬＡＮ１５１で接続されている。これによりチャネル制御部１１０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。チャネル制御部１１０の構成については後述する。
【００２３】
接続部１５０はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０を相互に接続する。チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０間でのデータやコマンドの授受は接続部１５０を介することにより行われる。接続部１５０は例えば高速スイッチングによりデータ伝送を行う超高速クロスバスイッチなどの高速バスである。チャネル制御部１１０同士が高速バスで接続されていることで、個々のコンピュータ上で動作するＮＡＳサーバがＬＡＮを通じて接続する従来の構成に比べてチャネル制御部１１０間の通信パフォーマンスが大幅に向上する。またこれにより高速なファイル共有機能や高速フェイルオーバなども可能となる。
【００２４】
共有メモリ１２０及びキャッシュメモリ１３０は、チャネル制御部１１０、ディスク制御部１４０により共有される記憶メモリである。共有メモリ１２０は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ１３０は主にデータを記憶するために利用される。
【００２５】
例えば、あるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが書き込みコマンドであった場合には、当該チャネル制御部１１０は書き込みコマンドを共有メモリ１２０に書き込むと共に、情報処理装置２００から受信した書き込みデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は共有メモリ１２０を監視しており、共有メモリ１２０に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ１３０から書き込みデータを読み出して記憶デバイス３００に書き込む。
【００２６】
またあるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが読み出しコマンドであった場合には、当該チャネル制御部１１０は読み出しコマンドを共有メモリ１２０に書き込むと共に、読み出し対象となるデータがキャッシュメモリ１３０に存在するかどうかを調べる。ここでキャッシュメモリ１３０に存在すれば、そのデータを情報処理装置２００に送信する。一方、読みだし対象となるデータがキャッシュメモリ１３０に存在しない場合には、共有メモリ１２０を監視することにより読み出しコマンドが共有メモリ１２０に書き込まれたことを検出したディスク制御部１４０が、記憶デバイス３００から読みだし対象となるデータを読み出してこれをキャッシュメモリ１３０に書き込むと共に、その旨を共有メモリ１２０に書き込む。そして、チャネル制御部１１０は共有メモリ１２０の監視により読みだし対象となるデータがキャッシュメモリ１３０に書き込まれたことを検出すると、そのデータを情報処理装置２００に送信する。
【００２７】
なお、このようにチャネル制御部１１０からディスク制御部１４０に対するデータの書き込みや読み出しの指示を共有メモリ１２０を介在させて間接に行う構成の他、例えばチャネル制御部１１０からディスク制御部１４０に対してデータの書き込みや読み出しの指示を共有メモリ１２０を介さずに直接に行う構成とすることもできる。
【００２８】
ディスク制御部１４０は記憶デバイス３００の制御を行う。例えば上述のように、チャネル制御部１１０が情報処理装置２００から受信したデータ書き込みコマンドに従って記憶デバイス３００へデータの書き込みを行う。また、チャネル制御部１１０により送信された論理アドレス指定によるＬＵへのデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する。記憶デバイス３００における物理ディスクがＲＡＩＤにより管理されている場合には、ＲＡＩＤ構成（例えば、ＲＡＩＤ０，１，５）に従ったデータのアクセスを行う。またディスク制御部１４０は、記憶デバイス３００に記憶されたデータの複製管理の制御やバックアップ制御を行う。さらにディスク制御部１４０は、災害発生時のデータ消失防止（ディザスタリカバリ）などを目的としてプライマリサイトのストレージシステム６００のデータの複製をセカンダリサイトに設置された他のストレージシステムにも記憶する制御（レプリケーション機能、又はリモートコピー機能）なども行う。
【００２９】
各ディスク制御部１４０は管理端末１６０と共に内部ＬＡＮ１５１で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部１４０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。ディスク制御部１４０の構成については後述する。
【００３０】
＝＝＝管理端末＝＝＝
管理端末１６０はストレージシステム６００を保守・管理するためのコンピュータである。管理端末１６０を操作することにより、例えば記憶デバイス３００内の物理ディスク構成の設定や、ＬＵの設定、チャネル制御部１１０において実行されるマイクロプログラムのインストール等を行うことができる。ここで、記憶デバイス３００内の物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、ＲＡＩＤ構成の変更（例えばＲＡＩＤ１からＲＡＩＤ５への変更等）等を行うことができる。さらに管理端末１６０からは、ストレージシステム６００の動作状態の確認や故障部位の特定、チャネル制御部１１０で実行されるオペレーティングシステムのインストール等の作業を行うこともできる。また管理端末１６０はＬＡＮや電話回線等で外部保守センタと接続されており、管理端末１６０を利用してストレージシステム６００の障害監視を行ったり、障害が発生した場合に迅速に対応したりすることも可能である。障害の発生は例えばＯＳやアプリケーションプログラム、ドライバソフトウェアなどから通知される。この通知はＨＴＴＰプロトコルやＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）、電子メールなどにより行われる。これらの設定や制御は、管理端末１６０で動作するＷｅｂサーバが提供するＷｅｂページをユーザインタフェースとしてオペレータなどにより行われる。オペレータ等は、管理端末１６０を操作して障害監視する対象や内容の設定、障害通知先の設定などを行うこともできる。
【００３１】
管理端末１６０は記憶デバイス制御装置１００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末１６０は、記憶デバイス制御装置１００及び記憶デバイス３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００３２】
管理端末１６０の構成を示すブロック図を図２に示す。
管理端末１６０は、ＣＰＵ１６１、メモリ１６２、ポート１６３、記録媒体読取装置１６４、入力装置１６５、出力装置１６６、記憶装置１６８を備える。
【００３３】
ＣＰＵ１６１は管理端末１６０の全体の制御を司るもので、メモリ１６２に格納されたプログラム１６２ｃを実行することにより上記Ｗｅｂサーバとしての機能等を実現する。メモリ１６２には、物理ディスク管理テーブル１６２ａとＬＵ管理テーブル１６２ｂとプログラム１６２ｃとが記憶されている。
【００３４】
物理ディスク管理テーブル１６２ａは、記憶デバイス３００に備えられる物理ディスク（ディスクドライブ）を管理するためのテーブルである。物理ディスク管理テーブル１６２ａを図３に示す。図３においては、記憶デバイス３００が備える多数の物理ディスクのうち、ディスク番号＃００１乃至＃００６までが示されている。それぞれの物理ディスクに対して、容量、ＲＡＩＤ構成、使用状況が示されている。
【００３５】
ＬＵ管理テーブル１６２ｂは、上記物理ディスク上に論理的に設定されるＬＵを管理するためのテーブルである。ＬＵ管理テーブル１６２ｂを図４に示す。図４においては、記憶デバイス３００上に設定される多数のＬＵのうち、ＬＵ番号＃１乃至＃３までが示されている。それぞれのＬＵに対して、物理ディスク番号、容量、ＲＡＩＤ構成が示されている。
【００３６】
記録媒体読取装置１６４は、記録媒体１６７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ１６２や記憶装置１６８に格納される。従って、例えば記録媒体１６７に記録されたプログラム１６２ｃを、記録媒体読取装置１６４を用いて上記記録媒体１６７から読み取って、メモリ１６２や記憶装置１６８に格納するようにすることができる。記録媒体１６７としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置１６４は管理端末１６０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置１６８は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置１６５はオペレータ等による管理端末１６０へのデータ入力等のために用いられる。入力装置１６５としては例えばキーボードやマウス等が用いられる。出力装置１６６は情報を外部に出力するための装置である。出力装置１６６としては例えばディスプレイやプリンタ等が用いられる。ポート１６３は内部ＬＡＮ１５１に接続されており、これにより管理端末１６０はチャネル制御部１１０やディスク制御部１４０等と通信を行うことができる。またポート１６３は、ＬＡＮ４００に接続するようにすることもできるし、電話回線に接続するようにすることもできる。
【００３７】
＝＝＝外観図＝＝＝
次に、本実施の形態に係るストレージシステム６００の外観構成を図５に示す。また、記憶デバイス制御装置１００の外観構成を図６に示す。
図５に示すように、本実施の形態に係るストレージシステム６００は記憶デバイス制御装置１００及び記憶デバイス３００がそれぞれの筐体に納められた形態をしている。記憶デバイス制御装置１００の筐体の両側に記憶デバイス３００の筐体が配置されている。
【００３８】
記憶デバイス制御装置１００は、正面中央部に管理端末１６０が備えられている。管理端末１６０はカバーで覆われており、図６に示すようにカバーを開けることにより管理端末１６０を使用することができる。なお図６に示した管理端末１６０はいわゆるノート型パーソナルコンピュータの形態をしているが、どのような形態とすることも可能である。
【００３９】
管理端末１６０の下部には、チャネル制御部１１０のボードを装着するためのスロットが設けられている。チャネル制御部１１０のボードとは、チャネル制御部１１０の回路基板が形成されたユニットであり、スロットへの装着単位である。本実施の形態に係るストレージシステム６００においては、スロットは８つあり、図５及び図６には８つのスロットにチャネル制御部１１０のボードが装着された状態が示されている。各スロットにはチャネル制御部１１０のボードを装着するためのガイドレールが設けられている。ガイドレールに沿ってチャネル制御部１１０のボードをスロットに挿入することにより、チャネル制御部１１０のボードを記憶デバイス制御装置１００に装着することができる。また各スロットに装着されたチャネル制御部１１０のボードは、ガイドレールに沿って手前方向に引き抜くことにより取り外すことができる。また各スロットの奥手方向正面部には、各チャネル制御部１１０のボードを記憶デバイス制御装置１００と電気的に接続するためのコネクタが設けられている。
【００４０】
なお、スロットには以上に説明したＮＡＳとして機能するタイプのチャネル制御部１１０以外にも、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続する機能を備えるタイプや、ＦＩＣＯＮ（Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｏｎ）（登録商標）やＥＳＣＯＮ（Ｅｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍ  Ｃｏｎｎｅｃｔｉｏｎ）  （登録商標）等のメインフレーム系のプロトコルに従って通信を行う機能を備えるタイプのチャネル制御部１１０が装着されることもある。８つのスロットには１以上のチャネル制御部１１０のボードを装着することが可能である。従って、例えば８つのスロット全てにＣＨＮ１１０のボードを装着するようにすることもできる。またチャネル制御部１１０のボードを装着しないスロットを設けるようにすることもできる。
【００４１】
各スロットのチャネル制御部１１０は、同種の複数のチャネル制御部１１０でクラスタを構成する。例えば２枚のＣＨＮ１１０をペアとしてクラスタを構成することができる。クラスタを構成することにより、クラスタ内のあるチャネル制御部１１０に障害が発生した場合でも、障害が発生したチャネル制御部１１０がそれまで行っていた処理をクラスタ内の他のチャネル制御部１１０に引き継ぐようにすることができる（フェイルオーバ制御）。２枚のＣＨＮ１１０でクラスタを構成している様子を示す図を図１１に示すが、詳細は後述する。
【００４２】
なお、記憶デバイス制御装置１００は信頼性向上のため電源供給が２系統化されており、チャネル制御部１１０のボードが装着される上記８つのスロットは電源系統毎に４つずつに分けられている。そこでクラスタを構成する場合には、両方の電源系統のチャネル制御部１１０のボードを含むようにする。これにより、片方の電源系統に障害が発生し電力の供給が停止しても、同一クラスタを構成する他方の電源系統に属するチャネル制御部１１０のボードへの電源供給は継続されるため、当該チャネル制御部１１０に処理を引き継ぐ（フェイルオーバ）ことができる。
【００４３】
なお、上述したように、チャネル制御部１１０は上記各スロットに装着可能なボード、すなわち一つのユニットとして提供されるが、上記一つのユニットは一体形成された複数枚数の回路基板から構成されているようにすることもできる。
【００４４】
ディスク制御部１４０や共有メモリ１２０等の、記憶デバイス制御装置１００を構成する他の装置については図５及び図６には示されていないが、記憶デバイス制御装置１００の背面側等に装着されている。
また記憶デバイス制御装置１００には、チャネル制御部１１０のボード等から発生する熱を放出するためのファン１７０が設けられている。ファン１７０は記憶デバイス制御装置１００の上面部に設けられる他、チャネル制御部１１０用スロットの上部にも設けられている。
【００４５】
ところで、筐体に収容されて構成される記憶デバイス制御装置１００および記憶デバイス３００としては、例えばＳＡＮ対応として製品化されている従来構成の装置を利用することができる。特に上記のようにＣＨＮ１１０のボードのコネクタ形状を従来構成の筐体に設けられているスロットにそのまま装着できる形状とすることで従来構成の装置をより簡単に利用することができる。つまり本実施例のストレージシステム６００は、既存の製品を利用することで容易に構築することができる。
【００４６】
＝＝＝チャネル制御部＝＝＝
本実施の形態に係るストレージシステム６００は、上述の通りＣＨＮ１１０により情報処理装置２００からのファイルアクセス要求を受け付け、ＮＡＳとしてのサービスを情報処理装置２００に提供する。
【００４７】
ＣＨＮ１１０のハードウェア構成を図７に示す。この図に示すようにＣＨＮ１１０のハードウェアは一つのユニットで構成される。以下、このユニットのことをＮＡＳボードとも記す。ＮＡＳボードは一枚もしくは複数枚の回路基板を含んで構成される。より具体的には、ＮＡＳボードは、ネットワークインタフェース部１１１、ＣＰＵ１１２、メモリ１１３、入出力制御部１１４、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）プロセッサ１１９、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）１１５、ボード接続用コネクタ１１６、通信コネクタ１１７を備え、これらが一体的にユニット化された回路基板上に形成されている。
【００４８】
ネットワークインタフェース部１１１は、情報処理装置２００との間で通信を行うための通信インタフェースを備えている。ＣＨＮ１１０の場合は、例えばＴＣＰ／ＩＰプロトコルに従って情報処理装置２００から送信されたファイルアクセス要求を受信する。通信コネクタ１１７は情報処理装置２００と通信を行うためのコネクタである。ＣＨＮ１１０の場合はＬＡＮ４００に接続可能なコネクタであり、例えばイーサネット（登録商標）に対応している。
【００４９】
ＣＰＵ１１２は、ＣＨＮ１１０をＮＡＳボードとして機能させるための制御を司る。
メモリ１１３には様々なプログラムやデータが記憶される。例えば図８に示すメタデータ７３０やロックテーブル７２０、また図１０に示すＮＡＳマネージャ７０６等の各種プログラムが記憶される。
【００５０】
メタデータ７３０はファイルシステムが管理しているファイルに対応させて生成される情報である。メタデータ７３０には例えばファイルのデータが記憶されているＬＵ上のアドレスやデータサイズなど、ファイルの保管場所を特定するための情報が含まれる。メタデータ７３０にはファイルの容量、所有者、更新時刻等の情報が含まれることもある。また、メタデータ７３０はファイルだけでなくディレクトリに対応させて生成されることもある。メタデータ７３０は記憶デバイス３００上の各ＬＵにも記憶されている。
【００５１】
ロックテーブル７２０は、情報処理装置２００からのファイルアクセスに対して排他制御を行うためのテーブルである。排他制御を行うことにより情報処理装置２００でファイルを共用することができる。ロックテーブル７２０にはファイルロックテーブルとＬＵロックテーブルとがある。ファイルロックテーブルは、ファイル毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００によりあるファイルがオープンされている場合に当該ファイルにロックが掛けられる。ロックが掛けられたファイルに対する他の情報処理装置２００によるアクセスは禁止される。ＬＵロックテーブルは、ＬＵ毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００により、あるＬＵに対するアクセスが行われている場合に当該ＬＵにロックが掛けられる。ロックが掛けられたＬＵに対する他の情報処理装置２００によるアクセスは禁止される。
【００５２】
入出力制御部１１４は、ディスク制御部１４０やキャッシュメモリ１３０、共有メモリ１２０、管理端末１６０との間でデータやコマンドの授受を行う。入出力制御部１１４はＩ／Ｏプロセッサ１１９やＮＶＲＡＭ１１５を備えている。Ｉ／Ｏプロセッサ１１９は例えば１チップのマイコンで構成される。Ｉ／Ｏプロセッサ１１９は上記データやコマンドの授受を制御し、ＣＰＵ１１２とディスク制御部１４０との間の通信を中継する。ＮＶＲＡＭ１１５はＩ／Ｏプロセッサ１１９の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１１５に記憶されるプログラムの内容は、管理端末１６０や、後述するＮＡＳマネージャ７０６からの指示により書き込みや書き換えを行うことができる。
【００５３】
次にディスク制御部１４０のハードウェア構成を示す図を図９に示す。
ディスク制御部１４０のボードは、一つのユニットとして形成されている。ディスク制御部１４０のボードは、インタフェース部１４１、メモリ１４３、ＣＰＵ１４２、ＮＶＲＡＭ１４４、ボード接続用コネクタ１４５を備え、これらが一体的にユニット化された回路基板上に形成されている。
【００５４】
インタフェース部１４１は、接続部１５０を介してチャネル制御部１１０等との間で通信を行うための通信インタフェースや、記憶デバイス３００との間で通信を行うための通信インタフェースを備えている。
【００５５】
ＣＰＵ１４２は、ディスク制御部１４０全体の制御を司ると共に、チャネル制御部１１０や記憶デバイス３００、管理端末１６０との間の通信を行う。メモリ１４３やＮＶＲＡＭ１４４に格納された各種プログラムを実行することにより本実施の形態に係るディスク制御部１４０の機能が実現される。ディスク制御部１４０により実現される機能としては、記憶デバイス３００の制御やＲＡＩＤ制御、記憶デバイス３００に記憶されたデータの複製管理やバックアップ制御、リモートコピー制御等である。
【００５６】
ＮＶＲＡＭ１４４はＣＰＵ１４２の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１４４に記憶されるプログラムの内容は、管理端末１６０や、ＮＡＳマネージャ７０６からの指示により書き込みや書き換えを行うことができる。
またディスク制御部１４０のボードはボード接続用コネクタ１４５を備えている。ボード接続用コネクタ１４５が記憶デバイス制御装置１００側のコネクタと嵌合することにより、ディスク制御部１４０のボードは記憶デバイス制御装置１００と電気的に接続される。
【００５７】
＝＝＝ソフトウェア構成＝＝＝
次に、本実施の形態に係るストレージシステム６００におけるソフトウェア構成図を図１０に示す。
オペレーティングシステム７０１は例えばＵＮＩＸ（登録商標）である。オペレーティングシステム７０１上では、ＲＡＩＤマネージャ７０８、ボリュームマネージャ７０７、ＳＶＰマネージャ７０９、ファイルシステムプログラム７０３、ネットワーク制御部７０２、障害管理プログラム７０５、ＮＡＳマネージャ７０６などのソフトウェア（プログラム）が動作する。
【００５８】
オペレーティングシステム７０１上で動作するＲＡＩＤマネージャ７０８は、ＲＡＩＤ制御部７４０に対するパラメータの設定やＲＡＩＤ制御部７４０を制御する機能を提供する。ＲＡＩＤマネージャ７０８はオペレーティングシステム７０１やオペレーティングシステム７０１上で動作する他のアプリケーション、もしくは管理端末１６０からパラメータや制御指示情報を受け付けて、受け付けたパラメータのＲＡＩＤ制御部７４０への設定や、ＲＡＩＤ制御部指示情報に対応する制御コマンドの送信を行う。
【００５９】
ここで設定されるパラメータとしては、例えば、ＲＡＩＤグループを構成する記憶デバイス（物理ディスク）を定義（ＲＡＩＤグループの構成情報、ストライプサイズの指定など）するためのパラメータ、ＲＡＩＤレベル（例えば０，１，５）を設定するためのパラメータなどがある。また、ＲＡＩＤマネージャ７０８がＲＡＩＤ制御部７４０に送信する制御コマンドとしてはＲＡＩＤの構成・削除・容量変更を指示するコマンド、各ＲＡＩＤグループの構成情報を要求するコマンドなどがある。
【００６０】
ボリュームマネージャ７０７は、ＲＡＩＤ制御部７４０によって提供されるＬＵをさらに仮想化した仮想化論理ボリュームをファイルシステムプログラム７０３に提供する。１つの仮想化論理ボリュームは１以上の論理ボリュームによって構成される。
【００６１】
ファイルシステムプログラム７０３の主な機能は、ネットワーク制御部７０２が受信したファイルアクセス要求に指定されているファイル名とそのファイル名が格納されている仮想化論理ボリューム上のアドレスとの対応づけを管理することである。例えば、ファイルシステムプログラム７０３はファイルアクセス要求に指定されているファイル名に対応する仮想化論理ボリューム上のアドレスを特定する。
【００６２】
ネットワーク制御部７０２は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）７１１とＣＩＦＳ（Ｃｏｍｍｏｎ  ＩｎｔｅｒｆａｃｅＦｉｌｅ  Ｓｙｓｔｅｍ）７１３の２つのファイルシステムプロトコルを含んで構成される。ＮＦＳ７１１は、ＮＦＳ７１１が動作するＵＮＩＸ（登録商標）系の情報処理装置２００からのファイルアクセス要求を受け付ける。一方、ＣＩＦＳ７１３はＣＩＦＳ７１３が動作するＷｉｎｄｏｗｓ（登録商標）系の情報処理装置２００からのファイルアクセス要求を受け付ける。
【００６３】
ＮＡＳマネージャ７０６は、ストレージシステム６００について、その動作状態の確認、設定や制御などを行うためのプログラムである。ＮＡＳマネージャ７０６はＷｅｂサーバとしての機能も有し、情報処理装置２００からストレージシステム６００の設定や制御を行うための設定Ｗｅｂページを情報処理装置２００に提供する。設定Ｗｅｂページはチャネル制御１１０の個々において動作するＮＡＳマネージャ７０６により提供される。ＮＡＳマネージャ７０６は、情報処理装置２００からのＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）リクエストに応じて、設定Ｗｅｂページのデータを情報処理装置２００に送信する。情報処理装置２００に表示された設定Ｗｅｂページを利用してシステムアドミニストレータなどによりストレージシステム６００の設定や制御の指示が行われる。
【００６４】
ＮＡＳマネージャ７０６は、設定Ｗｅｂページに対する操作に起因して情報処理装置２００から送信される設定や制御に関するデータを受信してそのデータに対応する設定や制御を実行する。これにより、情報処理装置２００からストレージシステム６００の様々な設定や制御を行うことができる。またＮＡＳマネージャ７０６は設定Ｗｅｂページの設定内容をチャネル制御部１１０上で動作するＯＳやアプリケーションプログラム、ディスク制御部１４０等に通知する。設定Ｗｅｂページで設定された内容は共有ＬＵ３１０に管理されることもある。
【００６５】
ＮＡＳマネージャ７０６の設定Ｗｅｂページを利用して行うことができる内容としては、例えば、ＬＵの管理や設定（容量管理や容量拡張・縮小、ユーザ割り当て等）、上述の複製管理やリモートコピー（レプリケーション）等の機能に関する設定や制御（複製元のＬＵと複製先のＬＵの設定など）、冗長構成されたＣＨＮ間でのクラスタの管理（フェイルオーバさせる相手の対応関係の設定、フェイルオーバ方法など）、ＯＳやＯＳ上で動作するアプリケーションプログラムのバージョン管理、ウイルス検知プログラムやウイルス駆除などのデータの安全性に関する機能を提供するセキュリティ管理プログラムの動作状態の管理や設定などがある。
【００６６】
なお、ＮＡＳマネージャ７０６によるストレージシステム６００の動作状態の確認、設定や制御には、上述した設定Ｗｅｂページを介する方法以外にクライアント・サーバシステムとすることもできる。その場合、ＮＡＳマネージャ７０６はクライアント・サーバシステムのサーバ機能を有し、情報処理装置２００のクライアント機能の操作に起因して送信される設定や制御を、上述した設定Ｗｅｂページと同様に実施することで、ストレージシステム６００の動作状態の確認、設定や制御を行う。
障害管理プログラム７０５は、クラスタを構成するチャネル制御部１１０間でのフェイルオーバ制御を行うためのプログラムである。
【００６７】
２枚のＣＨＮ１１０でクラスタ１８０が構成されている様子を図１１に示す。図１１では、ＣＨＮ１（チャネル制御部１）１１０とＣＨＮ２（チャネル制御部２）１１０とでクラスタ１８０が構成されている場合を示す。
上述したように、フェイルオーバ処理はクラスタ１８０を構成するチャネル制御部１１０間で行われる。つまり、例えばＣＨＮ１（１１０）に何らかの障害が発生し処理を継続することができなくなった場合には、ＣＨＮ１（１１０）がそれまで行っていた処理はＣＨＮ２（１１０）に引き継がれる。フェイルオーバ処理は、ＣＨＮ１（１１０）とＣＨＮ２（１１０）により実行される障害管理プログラム７０５により実行される。
【００６８】
ＣＨＮ１（１１０）及びＣＨＮ２（１１０）は共に障害管理プログラム７０５を実行し、共有メモリ１２０に対して自己の処理が正常に行われていることを書き込むようにする。そして、相手側の上記書き込みの有無を相互に確認するようにする。相手側による書き込みが検出できない場合には、相手側に何らかの障害が発生したと判断し、フェイルオーバ処理を実行する。フェイルオーバ実行時の処理の引き継ぎは、共有ＬＵ３１０を介して行われる。
【００６９】
フェイルオーバはこのように自動的に行われることもあるが、オペレータが管理端末１６０を操作して手動で行われることもある。またＮＡＳマネージャ７０６が提供する設定Ｗｅｂページを利用してユーザが情報処理装置２００から手動で行われることもある。フェイルオーバを手動で行う目的としては、耐用年数の経過やバージョンアップ、定期診断などのためにチャネル制御部１１０のハードウェア（例えばＮＡＳボード）を交換する必要が生じた場合などがある。
【００７０】
ＳＶＰマネージャ７０９は、管理端末１６０からの要求に応じて各種のサービスを管理端末１６０に提供する。例えば、ＬＵ３１０の設定内容やＲＡＩＤの設定内容等のストレージシステム６００に関する各種設定内容の管理端末１６０への提供や、管理端末１６０から入力されたストレージシステム６００に関する各種設定の反映等を行う。
【００７１】
＝＝＝チャネル制御部へのＬＵの割り当て＝＝＝
チャネル制御部１１０のＬＵ３１０の割り当ては、例えば、設定Ｗｅｂページを利用して行うことができる。より具体的には、設定Ｗｅｂページのチャネル制御部１１０に対応させて設けられている設定欄にＬＵ３１０の識別子であるＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）を設定することにより各チャネル制御部１１０へのＬＵ３１０の割り当てを指定することができる。ここで同じＬＵＮのＬＵ３１０を複数のチャネル制御部１１０に対して設定すれば同じＬＵ３１０を複数のチャネル制御部１１０に共有させることもできる。
【００７２】
これらの設定内容はメモリ１１３や共有メモリ１２０、共有ＬＵ３１０等に記憶される。これらに記憶されたチャネル制御部１１０へのＬＵ３１０の割り当てに関する情報はＯＳやアプリケーションプログラムにより適宜参照され、チャネル制御部１１０から各ＬＵ３１０へのアクセス制限等に利用される。例えば、情報処理装置２００からデータ入出力要求を受信したチャネル制御部１１０は、そのデータ入出力要求が自身に割り当てられているＬＵ３１０を対象とするものであるかどうかを前記設定内容を参照して調べ、自身に割り当てられている場合にはそのデータ入出力要求についての処理を行い、割り当てられていない場合には処理を行わないように制御を行う。なお、これらの設定や制御は、管理端末１６０から行うようにすることも可能である。
【００７３】
＝＝＝各ＣＨＮに対するアクセス制限＝＝＝
チャネル制御部１１０には、特定の情報処理装置２００のみが各チャネル制御部１１０にアクセスできるようにアクセス制限を設定することができる。また、特定の情報処理装置２００をグループ化して、各チャネル制御部１１０にアクセスできるようにアクセス制限を設定することもできる。これらの設定についても設定Ｗｅｂページを利用して情報処理装置２００から行うことができる。
【００７４】
これらの設定内容はメモリ１１３や共有メモリ１２０、共有ＬＵ３１０等に記憶される。これらに記憶されたチャネル制御部１１０へのＬＵ３１０の割り当てに関する情報はＯＳやアプリケーションプログラムにより適宜参照され、あるチャネル制御部１１０に対してそのチャネル制御部１１０に対するアクセスが許可されていない情報処理装置２００からのアクセスがあった場合にそのアクセスを制限する処理等に利用される。
【００７５】
このようにチャネル制御部１１０についてのアクセス制限が行われることで、例えば情報処理装置２００のユーザの観点から処理負荷が均等に配分されるように各チャネル制御部１１０を利用する情報処理装置２００を割り当てるといったことが可能となり、この機能を利用すればストレージシステム６００の効率的な運用が可能となる。なお、これらの設定や制御も、管理端末１６０から行うようにすることも可能である。
【００７６】
＝＝＝インストール処理＝＝＝
次に、本実施の形態に係るストレージシステム６００をＮＡＳとして機能させるために必要なプログラムのインストールについて説明する。
ストレージシステム６００をＮＡＳとして機能させるためには、ＣＨＮ１１０で実行されるＯＳ７０１をインストールする必要がある。また、ＣＨＮ１１０やディスク制御部１４０で実行させるためのマイクロプログラム（ファームウエア）もインストールする必要がある。その他ＣＨＮ１１０には、ボリュームマネージャ７０７、ファイルシステムプログラム７０３、ＮＡＳマネージャ７０６等のアプリケーションプログラムが必要に応じてインストールされる。
【００７７】
ＯＳ７０１やアプリケーションプログラムは記憶デバイス３００に設定されるシステムＬＵ（システムディスク）に記憶される。また、システムＬＵに記憶されると、そのプログラム名（プログラムの識別子）、ＯＳとアプリケーションプログラムとを区別するプログラム区分、プログラムのバージョンなどの情報が、後述するプログラム状態テーブル、ライセンス数情報テーブル、ライセンス状態情報テーブルなどに記録される。なお、これらのテーブルは共有ＬＵ（共有ディスク）３１０に格納されている。
【００７８】
システムＬＵにはＯＳインストール領域や、障害検知用の記憶領域、クラスタ情報用の記憶領域などが割り当てられることもある。障害検知用の記憶領域には、ＯＳ７０１やアプリケーションプログラムが出力するダンプリスト（ＯＳ７０１のカーネルの異常終了や、デーモンの異常終了、複数のプロセス間で処理がループすることによる異常などに起因して出力されるコア（ｃｏｒｅ）ダンプ、メモリダンプ、ディスクダンプ）などの障害管理に関する情報が格納される。クラスタ情報用の記憶領域にはＣＨＮ１１０間でクラスタ１８０を設定するために必要となる情報が格納される。このように、ＯＳ７０１やアプリケーションプログラムを格納するための記憶領域を記憶デバイス３００に設けるようにすることにより、ＣＨＮ１１０にかかる記憶領域を設ける必要がなくなる。
【００７９】
また上記障害検知用の記憶領域やクラスタ情報用の記憶領域は、それぞれ障害管理用ＬＵや、クラスタＬＵとして、システムＬＵとは別に設けるようにすることもできる。なお、記憶デバイス３００がＲＡＩＤ５の方式で運用されている場合には、システムＬＵや障害管理用ＬＵ、クラスタＬＵなどは１つのパリティグループに集中させるのではなく、複数のパリティグループに分散させるようにすることが好ましい。これらのＬＵ３１０には記憶デバイス制御装置１００の運用上、重要なデータが格納されるためである。
【００８０】
ＯＳ７０１やアプリケーションプログラムのインストールは管理端末（コンピュータ）１６０から行われる。具体的には、これらのプログラムは、管理端末１６０が備える記録媒体読取装置１６４を用いてＣＤ―ＲＯＭ等の記録媒体１６７から読み込むようにすることもできるし、ポート１６３を介して例えばインターネットからダウンロードすることにより読み込むようにすることもできる。そして、これらのプログラムはＣＨＮ１１０毎に記憶デバイス３００に設けられたシステムＬＵにインストールされる。
【００８１】
＝＝＝クラスタの設定＝＝＝
上述したように本実施例のストレージシステム６００における障害管理プログラム７０５は、クラスタ１８０を構成するチャネル制御部１１０間でのフェイルオーバ制御やフェイルバック制御を行っている。
【００８２】
クラスタ１８０の設定は、記憶デバイス制御装置１００に装着されている同種のチャネル制御部（回路基板）１１０をグループ化（クラスタ化）するように行われる。この設定により、同一グループ（クラスタ１８０）内のいずれかのチャネル制御部１１０に障害が発生した場合には、障害が発生したチャネル制御部１１０がそれまで行っていた処理をクラスタ１８０内の他のチャネル制御部１１０に引き継ぐようにフェイルオーバ制御がなされる。また、フェイルオーバした後に障害が発生したチャネル制御部１１０が正常に処理を行えるようになった場合には、他のチャネル制御部１１０が行っていた処理を元のチャネル制御部１１０に引き継ぐようにフェイルバック処理がなされる。
【００８３】
クラスタ１８０の設定は設定Ｗｅｂページから行うことができる。これらの設定情報は、システムディスク（システムＬＵ）のクラスタ情報用の記憶領域、クラスタ１８０を構成するチャネル制御部１１０間で共通にアクセス可能な共有ディスク（共有ＬＵ）３１０、ストレージシステム６００内の共有ディスク（共有ＬＵ）３１０等に記憶されるようにすることができる。共有ＬＵ３１０には、フェイルオーバ処理を行う際に必要な引継情報等も記憶される。なお、共有ＬＵ３１０には、フェイルオーバ処理を行う際に必要な引き継ぎ情報や、後述する、プログラム状態テーブル、ライセンス情報テーブル、及びライセンス情報テーブルなどの情報等が記憶される。
【００８４】
図１２に本実施の形態の一例として説明するストレージシステム６００の構成図を示す。図１２に示されるように、ストレージシステム６００のチャネル制御部１（１１０）とチャネル制御部２（１１０）とでクラスタＡ１８０を構成させ、チャネル制御部３（１１０）とチャネル制御部４（１１０）とでクラスタＢ１８０を構成させるようにすることもできる。この場合において、各チャネル制御部１乃至４（１１０）ごとにアクセス可能なシステムディスク（記憶領域）１乃至４（３１０）が割り当てられている。したがって、システムディスク１には、チャネル制御部１（１１０）で実行されるＯＳやＯＳにインストールされているプログラム、ＮＡＳサービスを提供するために必要なプログラムやデータなどが格納されている。また、ストレージシステム６００には、ストレージシステム６００内の各チャネル制御部１乃至４（１１０）間で共通にアクセス可能な共有ディスク（共有ＬＵ）３１０が備えられている。
【００８５】
＝＝＝プログラムのライセンス管理＝＝＝
上述したように、各チャネル制御部１乃至４（１１０）は各チャネル制御部１乃至４（１１０）のプログラム状態を一致させる処理を行う。しかし、あるプログラムによってはライセンスを設定しなければならないものがある。そこで、各チャネル制御部１乃至４（１１０）はプログラムのライセンスの設定状態を一致させる処理も行う。これらの処理は、それぞれのチャネル制御部１乃至４（１１０）が行うが、管理端末１６０が行うようにしてもよい。
【００８６】
なお、上記ライセンスを設定しなければならないプログラムとしては、例えば、アプリケーションプログラムなどがある。アプリケーションプログラムは、チャネル制御部１乃至４（１１０）に割り当てられたシステムＬＵ３１０にそれぞれインストールすることはできるが、有効なライセンスを設定するまでは利用することができないようになっている。このライセンスを設定するためには、まずライセンスキーを登録しなければならない。このライセンスキーは、ユーザがアプリケーションプログラムを購入した場合に、アプリケーションプログラムの提供元より発行されるパスワードである。このライセンスキーは、例えば、利用可能なアプリケーションプログラムの情報、利用可能なストレージシステム６００（ストレージシステム６００の製造番号など）、利用可能なライセンス数／ライセンス容量／ライセンス人数／ライセンス期間などのライセンス内容が組み込まれたキーである。ライセンスキーはユーザが見ても解読できないように暗号化されている。
【００８７】
以下に、図１２に示されるようにクラスタ１８０を設定した場合の各チャネル制御部１１０のプログラムのライセンスの設定状態を一致させる処理の例を図１３及び図１４に示す。
【００８８】
＜各プログラムを利用できるようにするための処理＞
図１３は、クラスタ１８０を構成する全てのチャネル制御部１１０のプログラムについてライセンスを設定して、全てのチャネル制御部１１０において各プログラムを利用できるようにするための処理の一例を示す。
ユーザは、プログラムのライセンスキーを登録するチャネル制御部１１０の設定画面を呼び出す。そうすると、そのチャネル制御部１１０は、共有ＬＵ３１０に格納されているライセンス状態情報テーブルの利用状態を確認し、クラスタ１８０を構成する全てのチャネル制御部１及び２（１１０）にそれぞれ割り当てられたシステムＬＵ１及び２（３１０）にインストールされているプログラムについてライセンスがそれぞれに設定されている（利用可能状態）かどうかを判断する（Ｓ１３００）。図１５に本実施の形態として説明するライセンス状態情報テーブルの例を示す。この図に示すように、ライセンス状態情報テーブルにはストレージシステム６００の識別子、クラスタ識別子、チャネル制御部１１０の識別子、プログラムの識別子、プログラム区分、プログラムのバージョン、プログラムの利用状態などの情報が記録されている。ライセンス数情報テーブルは、ストレージシステム６００又はクラスタ１８０の各チャネル制御部１１０がアクセス可能なシステムＬＵ３１０や、共有ＬＵ３１０に格納されている。
【００８９】
（Ｓ１３００）の判断の結果、インストールされているプログラムについてライセンスがそれぞれに設定されていると判断した場合（Ｓ１３００：Ｙ）にはこの処理を終了する。一方、（Ｓ１３００）の判断の結果、インストールされているプログラムについてライセンスがそれぞれに設定されていないと判断した場合（Ｓ１３００：Ｎ）には（Ｓ１３０１）に進む。
【００９０】
（Ｓ１３０１）では、チャネル制御部１１０は、共有ＬＵ３１０に格納されているライセンス数情報テーブルを確認し、ストレージシステム６００がクラスタ１８０を構成するチャネル制御部１１０の数以上の残りライセンスを有するか否かを判断する。図１６に本実施の形態として説明するライセンス数情報テーブルの例を示す。図１６に示すように、ライセンス数情報テーブルにはストレージシステム６００の識別子（装置識別子）、プログラム識別子、プログラムのバージョン、ストレージシステム６００が有するプログラムのライセンス数、残りライセンス数などの情報が記録されている。なお、ライセンス数情報テーブルは、ストレージシステム６００又はクラスタ１８０の各チャネル制御部１１０がアクセス可能なシステムＬＵ３１０に格納されていてもよい。残りライセンスとは、ライセンスキーは登録されているが、その登録したライセンスを使用（設定）していないものをいう。つまり、一度登録したライセンスはストレージシステム６００で管理されることになる。したがって、再度のライセンスキーの登録が不要になり、ライセンスキーの入力の手間が省ける。
【００９１】
なお、上記においては、ライセンス数情報テーブルとライセンス状態情報テーブルとを２つのテーブルに分けているが、これらを１つのテーブルにしてもよいし、複数のテーブルに分けてもよい。これらの情報は、情報処理装置２００から確認したい旨の要求があった場合に、表示できるようにしてもよい。図１７に情報処理装置２００の表示画面に表示させるライセンス情報の例を示す。図１７に示すように、情報処理装置２００の表示画面にはプログラムの名称、残りライセンス、プログラムの区分、プログラムの利用状態などが表示されているが、他の情報を表示できるようにしてもよい。
【００９２】
（Ｓ１３０１）の判断の結果、ストレージシステム６００がクラスタ１８０を構成するチャネル制御部１１０の数以上の残りライセンスを有すると判断した場合（Ｓ１３０１：Ｙ）には（Ｓ１３０８）へジャンプする。一方、（Ｓ１３０１）の判断の結果、ストレージシステム６００がクラスタ１８０を構成するチャネル制御部１１０の数以上の残りライセンスを有していないと判断した場合（Ｓ１３０１：Ｎ）には（Ｓ１３０２）へ進む。
【００９３】
（Ｓ１３０２）では、クラスタ１８０を構成する全てのチャネル制御部１１０でプログラムを利用可能状態にするために、図１８に示すように、管理端末１６０又は情報処理装置２００の表示画面にライセンスキー入力画面を表示させ、ライセンスキーの入力を要求する。このライセンスキー入力要求（Ｓ１３０２）に従いユーザがライセンスキーを入力した場合には、チャネル制御部１１０は入力されたライセンスキーが正しいかどうかを判断する（Ｓ１３０３）。すなわち、入力されたライセンスキーが製造元より発行されたライセンスキーと同じであるかどうかを判断する。
【００９４】
（Ｓ１３０３）の判断の結果、ライセンスキーが間違っている場合（Ｓ１３０３：Ｎ）には（Ｓ１３０６）へジャンプし、ユーザの情報処理装置２００にエラー内容を通知してエラー内容を表示する。図１９に情報処理装置２００に通知したライセンスキーエラー内容の表示例を示す。これにより、ユーザは入力したライセンスキーが正しくないことを知ることができる。一方、（Ｓ１３０３）の判断の結果、入力されたライセンスキーが正しい場合（Ｓ１３０３：Ｙ）には（Ｓ１３０４）に進み、そのライセンスキーを使いまわしているかどうかを判断する。つまり、そのライセンスキーが既にストレージシステム６００の他のチャネル制御部１１０のプログラムに登録されているライセンスキーと同じかどうかを判断する（Ｓ１３０４）。これにより、ライセンスキーの不正利用を未然に防止することができる。
【００９５】
（Ｓ１３０４）の判断の結果、そのライセンスキーを使いまわしていると判断した場合（Ｓ１３０４：Ｙ）には（Ｓ１３０６）へジャンプし、ユーザの情報処理装置２００にエラー内容を通知してエラー内容を表示する。図２０に情報処理装置２００に通知したライセンスキーエラー内容の表示例を示す。これにより、ユーザは入力されたライセンスキーが既に登録されているものであることを知ることができる。一方、（Ｓ１３０４）の判断の結果、そのライセンスキーを使いまわしていないと判断した場合（Ｓ１３０４：Ｎ）には（Ｓ１３０５）へ進み、入力されたライセンスキーに組み込まれたライセンス数と残りライセンス数との合計がクラスタ１８０を構成するチャネル制御部１１０の数以上あるかどうかを判断する。
【００９６】
（Ｓ１３０５）の判断の結果、入力されたライセンスキーに組み込まれたライセンス数と残りライセンス数との合計がクラスタ１８０を構成するチャネル制御部１１０の数以上有していないと判断した場合（Ｓ１３０５：Ｎ）には（Ｓ１３０６）へ進み、ユーザの情報処理装置２００にエラー内容を通知してエラー内容を表示する。図２１に情報処理装置２００に通知したライセンスキーエラー内容の表示例を示す。これにより、ユーザはさらにライセンスキーを登録する必要があることを知ることができる。図１３には示していないが、この場合においてエラー内容を表示した後、再度ユーザにライセンスキーの入力を要求するようにしてもよい（Ｓ１３０２）。
【００９７】
一方、（Ｓ１３０５）の判断の結果、入力されたライセンスキーを登録し、登録されたライセンス数と残りライセンス数との合計がクラスタ１８０を構成するチャネル制御部１１０の数以上有していると判断した場合（Ｓ１３０５：Ｙ）には（Ｓ１３０７）へ進み、ライセンス数情報テーブルの各情報を変更する。次に、クラスタ１８０を構成する全てのチャネル制御部１１０において実行させるプログラムにライセンスを設定したかどうかを判断する（Ｓ１３０８）。
【００９８】
（Ｓ１３０８）の判断の結果、クラスタ１８０を構成する全てのチャネル制御部１１０において実行させるプログラムにライセンスを設定していないと判断した場合（Ｓ１３０８：Ｎ）には、各チャネル制御部１１０は設定されていないプログラムのライセンスを設定する（Ｓ１３０９）。次に、共有ＬＵ３１０に格納されているライセンス数情報テーブルの残りライセンス数を１減らして、図１５に示されるライセンス状態情報テーブルの利用状態を利用可能状態に変更する（Ｓ１３１０）。具体的には、クラスタＡ１８０を構成するチャネル制御部１及び２の”Ｐｒｏｇｒａｍ３”についてライセンスが設定されていない場合には、チャネル制御部１及び２がそれぞれ”Ｐｒｏｇｒａｍ３”についてのライセンスを設定する。そして、ライセンス数情報テーブルの残りライセンス数を１減らして、ライセンス状態情報テーブルの自己のチャネル制御部１１０に該当する利用状態を利用可能状態に変更する。
（Ｓ１３０８）の判断の結果、クラスタ１８０を構成する全てのチャネル制御部１１０において実行させるプログラムにライセンスを設定したと判断した場合（Ｓ１３０８：Ｙ）には、ライセンスの設定処理を終了する。
【００９９】
＜各プログラムを利用できないようにするための処理＞
図１４は、クラスタ１８０を構成する全てのチャネル制御部１１０のプログラムについてライセンスを解除し、全てのチャネル制御部１１０において各プログラムを利用できないようにするための処理の一例を示す。
この処理は、ユーザからあるプログラムの利用をできないようにしてほしい旨の指示があった時や、そのプログラムをアンインストールする時に行われる。まず、クラスタ１８０を構成する全てのチャネル制御部１１０のプログラムについてのライセンスを解除したかどうかを判断する（Ｓ１４００）。
【０１００】
（Ｓ１４００）の判断の結果、クラスタ１８０を構成する全てのチャネル制御部１１０のプログラムについてライセンスが解除されていないと判断した場合（Ｓ１４００：Ｎ）には、各チャネル制御部１１０はライセンスを解除していないプログラムのライセンスを解除する（Ｓ１４０１）。次に、共有ＬＵ３１０等に格納されているライセンス数状態テーブルの残りライセンス数を１増やして、ライセンス状態情報テーブルの利用状態を利用不可に変更する（Ｓ１４０２）。具体的には、クラスタＢ１８０を構成するチャネル制御部３及び４の”Ｐｒｏｇｒａｍ３”についてライセンスが解除されていないと判断した場合には、各チャネル制御部３及び４（１１０）は”Ｐｒｏｇｒａｍ３”についてライセンスを解除する。そして、ライセンス数情報テーブルの残りライセンス数を１増やして、ライセンス状態情報テーブルの自己のチャネル制御部１１０に該当する利用状態を利用不可状態に変更する。
【０１０１】
（Ｓ１４００）の判断の結果、クラスタ１８０を構成する全てのチャネル制御部１１０のプログラムについてライセンスを解除したと判断した場合（Ｓ１４００：Ｙ）には、ライセンスの解除処理を終了する。この処理はプログラムのライセンスを解除するものであって、ストレージシステム６００から設定されたライセンスキーを消去するわけではない。したがって、一度設定されたライセンスキーはストレージシステム６００が管理していることから、再度ライセンスキーを設定する必要がなくなり、ユーザの再度ライセンスキーの入力の手間が省ける。
【０１０２】
以上のように、プログラムのライセンスの設定状態を一致させる処理により、どのチャネル制御部１１０においても各プログラムを実行させることができる。したがって、ユーザはあるチャネル制御部１１０に行わせていたデータの処理を、その他のチャネル制御部１１０において行わせることができるため、混乱を招くことがなくなる。特にクラスタ１８０を設定した場合には、クラスタ１８０を構成するチャネル制御部１１０間で各プログラムを実行できるため、フェイルオーバをしても不都合が生じることがなくなり、ユーザに混乱を招くことがなくなる。
【０１０３】
本発明によれば、共有ディスクにライセンス情報を格納してライセンス管理を実現する例を示す。共有ディスクに格納することで、システムディスクの障害でプログラムを再インストールしても、ライセンス状態やライセンス情報をそのまま利用できる。また、装置としてライセンスを一元管理できるため、ライセンスの移動が容易になり、ライセンスの不正利用を防止できる。このように、本発明によれば、プログラムのライセンスを効率よく管理することができる。
なお、本実施例以外に、システムＬＵ３１０に反映して、全チャネル制御部１１０間で同期する方法も本発明に含まれる。
【０１０４】
＝＝＝プログラムの管理＝＝＝
各チャネル制御部１１０は、プログラムのライセンスの設定状態を一致させる処理を行う前に、各チャネル制御部１１０のＯＳやＯＳにインストールされているアプリケーションプログラムの状態を一致させる処理を行うようにしてもよい。プログラム状態を一致させる処理とは、例えば、ストレージシステム６００の全てのチャネル制御部１１０のＯＳやＯＳにインストールされているアプリケーションプログラムの有無、プログラムのバージョン、プログラムのライセンスなどを一致させる処理がある。これらの処理は、それぞれのチャネル制御部１１０が行うが、管理端末１６０が行うようにしてもよい。
【０１０５】
プログラム状態を一致させる処理は、例えば、システムの起動時、プログラムの実行時、プログラムの利用開始時、情報処理装置２００がストレージシステム６００内の全てのチャネル制御部１１０にアクセスできるようにアクセス制限を設定した時、クラスタ１８０の設定をした時、プログラムのライセンスキーを設定した時、システムを修復した時などプログラム状態の不整合が発生する可能性がある場合に行われる。
【０１０６】
図１２に示されるようにクラスタ１８０を設定した場合の各チャネル制御部１乃至４（１１０）のＯＳやＯＳにインストールされているアプリケーションプログラム状態を一致させる処理の例を図２２に示す。
クラスタ１８０を設定するとクラスタ１８０を構成する各チャネル制御部１及び２（１１０）は、まず、プログラム状態テーブルを確認し、クラスタ１８０を構成するチャネル制御部１及び２（１１０）に割り当てられたシステムＬＵ（記憶領域）３１０にインストールされているプログラムが一致するか否かを判断する（Ｓ２２００）。この処理により、チャネル制御部１（１１０）とチャネル制御部２（１１０）とにおいてプログラムの整合性を得ることができる。したがって、チャネル制御部１（１１０）からチャネル制御部２（１１０）にフェイルオーバしても、プログラムが正常に動作し不具合が生じることがない。
【０１０７】
図２３にプログラム状態テーブルの例を示す。プログラム状態テーブルには、例えば、装置識別子、クラスタ識別子、チャネル制御部識別子、プログラム識別子、プログラム区分、バージョン、利用状態などの情報が記録されている。なお、このプログラム状態テーブルは、メモリ１１３や共有メモリ１２０、共有ディスク（共有ＬＵ）３１０等に記憶されている。
【０１０８】
（Ｓ２２００）の判断の結果、インストールされているプログラムが一致すると判断した場合（Ｓ２２００：Ｙ）には、プログラム状態テーブルを確認し、インストールされているプログラムのバージョンが一致するか否かを判断する（Ｓ２２０１）。一方、（Ｓ２２００）の判断の結果、インストールされているプログラムが一致しないと判断した場合（Ｓ２２００：Ｎ）には（Ｓ２２０５）へジャンプする。
【０１０９】
（Ｓ２２０１）では、プログラム状態テーブルを確認し、インストールされているプログラムのバージョンが一致するか否かを判断する。プログラムのバージョンが異なるとチャネル制御部１（１１０）からチャネル制御部２（１１０）にフェイルオーバさせたときに、各バージョンによってシステムコールが異なるため各チャネル制御部１１０で行った処理結果が異なる場合が生じる。そのため、ユーザが混乱することになる。したがって、この処理をすることにより、ユーザ全体の混乱を未然に防止することができる。
【０１１０】
（Ｓ２２０１）の判断の結果、インストールされているプログラムのバージョンが一致すると判断した場合（Ｓ２２０１：Ｙ）には（Ｓ２２０２）に進む。一方、（Ｓ２２０１）の判断の結果、インストールされているプログラムのバージョンが一致しないと判断した場合（Ｓ２２０１：Ｎ）には（Ｓ２２０５）にジャンプする。
【０１１１】
（Ｓ２２０２）では、インストールされているプログラムがアプリケーションプログラムであるか否かを判断する。オペレーティングシステムは、ＮＡＳとしての機能を実現させるために最低限必要なプログラムであるため、あらかじめライセンスされている場合がある。したがって、アプリケーションプログラムのみについてライセンス設定状態を一致させる処理を行えばよい場合がある。この場合に（Ｓ２２０２）の処理は適用されるが、全てのプログラムにおいてライセンス設定状態を一致させる処理を行う場合には（Ｓ２２０２）の処理を適用しなくてもよい。
【０１１２】
（Ｓ２２０２）の判断の結果、インストールされているプログラムがアプリケーションプログラムであると判断した場合（Ｓ２２０２：Ｙ）には（Ｓ２２０３）へ進む。一方、（Ｓ２２０２）の判断の結果、インストールされているプログラムがアプリケーションプログラムではないと判断した場合（Ｓ２２０２：Ｎ）には（Ｓ２２０４）へジャンプする。
【０１１３】
（Ｓ２２０３）では、クラスタ１８０を構成する全てのチャネル制御部１１０のライセンス設定状態が一致する否かを判断する処理である。アプリケーションプログラムはライセンスを設定しなければ、そのプログラムを利用することができない。したがって、クラスタＡ１８０を構成するチャネル制御部１（１１０）ではライセンスを設定しているが、クラスタＡ１８０を構成するチャネル制御部２（１１０）ではライセンスを設定していない場合には問題が生じる場合がある。例えば、チャネル制御部１（１１０）のあるプログラムにより処理させていたデータを、チャネル制御部２（１１０）ではそのデータを処理させることができないという問題がある。したがって、この処理をすることにより、ユーザ全体の混乱を未然に防止することができる。
【０１１４】
（Ｓ２２０３）の判断の結果、ライセンス設定状態が一致すると判断した場合（Ｓ２２０３：Ｙ）には（Ｓ２２０４）へ進む。一方、（Ｓ２２０３）の判断の結果、ライセンス設定状態が一致しないと判断した場合（Ｓ２２０３：Ｎ）には（Ｓ２２０５）へジャンプする。
【０１１５】
（Ｓ２２０５）では、プログラム状態が一致するか否かを判断したプログラムを利用できないように制御し、ログファイルにプログラム状態が一致しない旨の情報を記録する。また、図２４に示すように、管理端末１６０や情報処理装置２００の表示画面にエラーメッセージ（プログラム状態の不整合）を表示させたり、メールでその旨を通知したりする。
【０１１６】
（Ｓ２２０４）では、ライセンス状態情報テーブルやプログラム状態テーブルの利用状態を利用可能状態に変更して、そのプログラムを利用できるようにする。そして、（Ｓ２２０６）へ進み、全てのプログラムにおいて（Ｓ２２００）〜（Ｓ２２０３）の事項について確認したか否かを判断する。これにより、クラスタ１８０を構成しようとするチャネル制御部１１０で実行されるプログラムが一致することとなる。したがって、クラスタ１８０の設定が可能となる。
【０１１７】
（Ｓ２２０６）の判断の結果、全てのプログラムにおいて確認したと判断した場合（Ｓ２２０６：Ｙ）には、プログラム状態を一致させる処理を終了する。一方、（Ｓ２２０６）の判断の結果、全てのプログラムにおいて確認していないと判断した場合（Ｓ２２０６：Ｎ）には（Ｓ２２００）へジャンプし、未だ確認していないプログラムについて（Ｓ２２００）〜（Ｓ２２０３）の事項が確認される。
【０１１８】
以上のことから、特定のクラスタ１８０に属するチャネル制御部１１０は、障害発生時に別のチャネル制御部１１０へフェイルオーバしても、クラスタ１８０内のチャネル制御部１１０のライセンス状態が一致するので、フェイルオーバ先でプログラムを実行することができ、クラスタ機能を実現することが可能となる。
【０１１９】
なお、以上において複数のチャネル制御部１１０を備えた記憶デバイス制御装置１００を含んで構成されるストレージシステム６００を例に挙げ具体的に説明したが、一つのチャネル制御部１１０を備えた複数の記憶デバイス制御装置１００を含んで構成されるストレージシステム６００であっても本発明を実施することができる。
【０１２０】
本発明によれば、プログラムのライセンスを効率よく管理することができるだけではなく、プログラムのインストールの有無の管理や、プログラムのバージョン管理もすることができる。
【０１２１】
以上において本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１２２】
【発明の効果】
本発明によれば、ストレージシステムの制御方法、ストレージシステム、及びプログラムを提供することができる。
【図面の簡単な説明】
【図１】本実施の形態におけるストレージシステムの全体構成示すブロック図である。
【図２】本実施の形態における管理端末の構成を示すブロック図である。
【図３】本実施の形態における物理ディスク管理テーブルを示す図である。
【図４】本実施の形態におけるＬＵ管理テーブルを示す図である。
【図５】本実施の形態におけるストレージシステムの外観構成を示す図である。
【図６】本実施の形態における記憶デバイス制御装置の外観構成を示す図である。
【図７】本実施の形態におけるＣＨＮを示す図である。
【図８】本実施の形態におけるメモリに記憶されるデータの内容を説明するための図である。
【図９】本実施の形態におけるディスク制御部を示す図である。
【図１０】本実施の形態におけるソフトウェア構成図である。
【図１１】本実施の形態におけるチャネル制御部においてクラスタが構成されている様子を示す図である。
【図１２】本実施の形態におけるストレージシステムの構成図を示す図である。
【図１３】本実施の形態におけるプログラムのライセンスの設定状態を一致させる処理を説明するためのフローチャートを示す図である。
【図１４】本実施の形態におけるプログラムのライセンスの設定状態を一致させる処理を説明するためのフローチャートを示す図である。
【図１５】本実施の形態として説明するライセンス状態情報テーブルのイメージを示す図である。
【図１６】本実施の形態として説明するライセンス数情報テーブルのイメージを示す図である。
【図１７】情報処理装置の表示画面に表示させるライセンス情報のイメージを示す図である。
【図１８】情報処理装置の表示画面にライセンスキーを入力する画面のイメージを示す図である。
【図１９】情報処理装置に通知したライセンスキーエラー内容の表示のイメージを示す図である。
【図２０】情報処理装置に通知したライセンスキーエラー内容の表示のイメージを示す図である。
【図２１】情報処理装置に通知したライセンスキーエラー内容の表示のイメージを示す図である。
【図２２】本実施の形態におけるプログラム状態を一致させる処理を説明するためのフローチャートを示す図である。
【図２３】本実施の形態として説明するプログラム状態テーブルのイメージを示す図である。
【図２４】管理端末や情報処理装置の表示画面に表示させるエラーメッセージのイメージを示す図である。
【符号の説明】
１００    記憶デバイス制御装置
１１０    チャネル制御部
１２０    共有メモリ
１３０    キャッシュメモリ
１４０    ディスク制御部
１５０    接続部
１５１    内部ＬＡＮ
１６０    管理端末
１８０    クラスタ
２００    情報処理装置
３００    記憶デバイス
３１０    ＬＵ
４００    ＬＡＮ
６００    ストレージシステム
【図１】
2004234559.tif 000003
【図２】
2004234559.tif 000004
【図３】
2004234559.tif 000005
【図４】
2004234559.tif 000006
【図５】
2004234559.tif 000007
【図６】
2004234559.tif 000008
【図７】
2004234559.tif 000009
【図８】
2004234559.tif 000010
【図９】
2004234559.tif 000011
【図１０】
2004234559.tif 000012
【図１１】
2004234559.tif 000013
【図１２】
2004234559.tif 000014
【図１３】
2004234559.tif 000015
【図１４】
2004234559.tif 000016
【図１５】
2004234559.tif 000017
【図１６】
2004234559.tif 000018
【図１７】
2004234559.tif 000019
【図１８】
2004234559.tif 000020
【図１９】
2004234559.tif 000021
【図２０】
2004234559.tif 000022
【図２１】
2004234559.tif 000023
【図２２】
2004234559.tif 000024
【図２３】
2004234559.tif 000025
【図２４】
2004234559.tif 000026