(57)【要約】【課題】ストレージサブシステム間の負荷分散において、負荷分散後にシステムの限界性能を劣化させない拡張性の高い計算機システムを提供すること。【解決手段】第１ストレージサブシステムと、ホスト計算機と、管理計算機と、を備える計算機システムにおける負荷分散方法であって、第１ストレージサブシステムは、ディスクドライブ群の記憶領域から複数の第１論理ユニットを作成し、ホスト計算機は、複数の第１論理ユニットと対応する仮想論理ユニットから構成される論理記憶領域を作成し、論理記憶領域を構成する複数の第１論理ユニットの各々とホスト計算機との間の通信経路が設定され、第１ストレージサブシステムが、第１ストレージサブシステムの負荷を監視するステップと、第１ストレージサブシステムが、負荷の監視結果に基づいて、第１論理ユニットとホスト計算機との間の通信経路を変更するステップと、を含むことを特徴とする。【選択図】図２７
2010079626.tif 000002
【特許請求の範囲】
【請求項１】
第１ストレージサブシステムと、前記第１ストレージサブシステムと接続されるホスト計算機と、前記第１ストレージサブシステムと接続される管理計算機と、を備える計算機システムにおける負荷分散方法であって、
前記ホスト計算機は、ネットワークに接続される第１インタフェースと、前記第１インタフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、
前記管理計算機は、ネットワークに接続される第２インタフェースと、前記第２インタフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、を備え、
前記第１ストレージサブシステムは、複数のディスクドライブへのデータの読み書きを制御する第１コントローラを備え、
前記第１コントローラは、前記ホスト計算機に接続される第３インタフェース及び第４インタフェースと、前記ディスクドライブに接続される第５インタフェースと、前記第３インタフェース、前記第４インタフェース、及び前記第５インタフェースに接続される第３プロセッサと、前記第３プロセッサに接続される第３メモリと、を備え、
前記第１ストレージサブシステムは、前記複数のディスクドライブからディスクドライブ群を構成し、前記ディスクドライブ群の記憶領域から複数の第１論理ユニットを作成し、
前記ホスト計算機は、前記複数の第１論理ユニットと対応する仮想論理ユニットから構成される論理記憶領域を作成し、
前記論理記憶領域を構成する前記複数の第１論理ユニットの各々と前記ホスト計算機との間の通信経路が設定され、
前記ホスト計算機は、前記仮想論理ユニットにアクセスすることによって、前記設定された通信経路を介して、前記第１論理ユニットにアクセスし、
前記方法は、
前記第１ストレージサブシステムが、前記第１ストレージサブシステムの負荷を監視するステップと、
前記第１ストレージサブシステムが、前記負荷の監視結果に基づいて、前記第１論理ユニットと前記ホスト計算機との間の前記通信経路を変更するステップと、を含むことを特徴とする負荷分散方法。
【請求項２】
前記負荷を監視するステップでは、前記第３インタフェース及び前記第４インタフェースの負荷を監視することを特徴とする請求項１に記載の負荷分散方法。
【請求項３】
前記第３インタフェース及び前記第４インタフェースの負荷を監視するステップでは、前記第３インタフェース及び前記第４インタフェースの使用帯域を監視し、
前記通信経路を変更するステップでは、前記第３インタフェースの使用帯域が多く、前記第４インタフェースの使用帯域が少ない場合、前記第１論理ユニットから前記ホスト計算機への通信経路を、前記第３インタフェースを経由する通信経路から前記第４インタフェースを経由する通信経路に変更することを特徴とする請求項２に記載の負荷分散方法。
【請求項４】
前記方法は、さらに、
前記第１ストレージサブシステムが、前記ホスト計算機に通信経路の変更要求を送信するステップと、
前記ホスト計算機が、前記通信経路の変更要求を受信した場合、前記受信した変更要求に基づいて、前記第３インタフェースを経由する接続を切断するための切断要求を前記第１ストレージサブシステムに送信するステップと、
前記ホスト計算機が、前記第１ストレージサブシステムから前記切断要求の応答を受信した後に、前記第４インタフェースを経由する接続をするための接続要求を前記第１ストレージサブシステムに送信するステップと、を含むことを特徴とする請求項３に記載の負荷分散方法。
【請求項５】
前記方法は、さらに、
前記第１ストレージサブシステムが、前記第３インタフェースを経由する通信経路を切断するステップと、
前記ホスト計算機が、前記切断を検出した場合、前記第１論理ユニットに再度接続するための接続要求を前記第１ストレージサブシステムに送信するステップと、
前記第１ストレージサブシステムが、前記接続要求を受信した場合、前記通信経路の変更情報を含む応答を前記ホスト計算機に送信するステップと、
前記ホスト計算機は、受信した応答に含まれる前記通信経路の変更情報に基づいて、前記第４インタフェースを経由して前記第１論理ユニットに接続するための接続要求を、前記第１ストレージサブシステムに送信するステップと、を含むことを特徴とする請求項３に記載の負荷分散方法。
【請求項６】
前記第３インタフェース及び前記第４インタフェースは、ホストバスアダプタであることを特徴とする請求項１に記載の負荷分散方法。
【請求項７】
前記計算機システムは、さらに、前記ホスト計算機と前記管理計算機とに接続される第２ストレージサブシステムを備え、
前記第２ストレージサブシステムは、複数のディスクドライブへのデータの読み書きを制御する第２コントローラを備え、
前記第２コントローラは、前記ホスト計算機に接続される第６インタフェースと、前記複数のディスクドライブと接続される第７インタフェースと、前記第６インタフェース、及び前記第７インタフェースに接続された第４プロセッサと、前記第４プロセッサに接続された第４メモリと、を備え、
前記第２ストレージサブシステムは、前記複数のディスクドライブからディスクドライブ群を構成し、前記ディスクドライブ群の記憶領域から複数の第２論理ユニットを作成し、
前記ホスト計算機は、前記複数の第１論理ユニットと対応する仮想論理ユニット及び前記複数の第２論理ユニットと対応する仮想論理ユニットから構成される論理記憶領域を作成し、
前記論理記憶領域を構成する前記複数の第１論理ユニット及び前記複数の第２論理ユニットの各々と前記ホスト計算機との間の通信経路が設定され、
前記ホスト計算機は、前記仮想論理ユニットにアクセスすることによって、前記設定された通信経路を介して、前記第１及び第２論理ユニットにアクセスし、
前記方法は、
前記第１ストレージサブシステムが、前記第２ストレージサブシステムの負荷を監視するステップと、
前記第１ストレージサブシステムが、前記負荷の監視結果に基づいて、前記第２ストレージサブシステムの負荷が高いと判定した場合、前記第２ストレージサブシステムの前記第２論理ユニットに格納されているデータを、前記第１ストレージサブシステムの前記第１論理ユニットにコピーするステップと、
前記第１ストレージサブシステムが、前記論理ユニットから前記ホスト計算機への通信経路を、前記第２論理ユニットから前記第６インタフェースを経由する通信経路から、前記第１論理ユニットから前記第３又は第４インタフェースを経由する通信経路に変更するステップと、を含むことを特徴とする請求項１に記載の負荷分散方法。
【請求項８】
前記第２論理ユニットから前記ホスト計算機への通信経路を前記第１論理ユニットから前記ホスト計算機への通信経路に変更するステップでは、
前記第１ストレージサブシステムが、前記第１ストレージサブシステムに含まれる移動先の前記第１論理ユニットの情報を作成し、
前記作成された移動先の第１論理ユニットの情報を前記第２ストレージサブシステムに送信することを特徴とする請求項７に記載の負荷分散方法。
【請求項９】
前記方法は、前記第１ストレージサブシステムが、前記第２ストレージサブシステムから、前記ホスト計算機と前記第２ストレージサブシステムとの間のデータ通信量を負荷情報として取得するステップと、を含むことを特徴とする請求項７に記載の負荷分散方法。
【請求項１０】
ホスト計算機と接続される第１ストレージサブシステムと、前記第１ストレージサブシステムと接続される管理計算機を備える計算機システムであって、
前記ホスト計算機は、ネットワークに接続される第１インタフェースと、前記第１インタフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、
前記管理計算機は、ネットワークに接続される第２インタフェースと、前記第２インタフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、を備え、
前記第１ストレージサブシステムは、複数のディスクドライブへのデータの読み書きを制御する第１コントローラを備え、
前記第１コントローラは、前記ホスト計算機に接続される第３インタフェース及び第４インタフェースと、前記ディスクドライブに接続される第５インタフェースと、前記第３インタフェース、前記第４インタフェース、及び前記第５インタフェースに接続される第３プロセッサと、前記第３プロセッサに接続される第３メモリと、を備え、
前記第１ストレージサブシステムは、前記複数のディスクドライブからディスクドライブ群を構成し、前記ディスクドライブ群の記憶領域から複数の第１論理ユニットを作成し、
前記ホスト計算機は、前記複数の第１論理ユニットと対応する仮想論理ユニットから構成される論理記憶領域を作成し、
前記論理記憶領域を構成する前記複数の第１論理ユニットの各々と前記ホスト計算機との間の通信経路が設定され、
前記ホスト計算機は、前記仮想論理ユニットにアクセスすることによって、前記設定された通信経路を介して、前記第１論理ユニットにアクセスし、
前記第１ストレージサブシステムは、
前記第１ストレージサブシステムの負荷を監視し、
前記負荷の監視結果に基づいて、前記第１論理ユニットと前記ホスト計算機との間の前記通信経路を変更することを特徴とする計算機システム。
【請求項１１】
前記第１ストレージサブシステムは、前記第３インタフェース及び前記第４インタフェースの負荷を監視することを特徴とする請求項１０に記載の計算機システム。
【請求項１２】
前記第１ストレージサブシステムは、前記第３インタフェース及び前記第４インタフェースの使用帯域を監視し、
前記第１ストレージサブシステムは、前記第３インタフェースの使用帯域が多く、前記第４インタフェースの使用帯域が少ない場合、前記第１論理ユニットから前記ホスト計算機への通信経路を、前記第３インタフェースを経由する通信経路から前記第４インタフェースを経由する通信経路に変更することを特徴とする請求項１１に記載の計算機システム。
【請求項１３】
前記第１ストレージサブシステムは、さらに、前記ホスト計算機に通信経路の変更要求を送信し、
前記ホスト計算機は、
前記通信経路の変更要求を受信した場合、前記受信した変更要求に基づいて、前記第３インタフェースを経由する接続を切断するための切断要求を前記第１ストレージサブシステムに送信し、
前記第１ストレージサブシステムから前記切断要求の応答を受信した後に、前記第４インタフェースを経由する接続をするための接続要求を前記第１ストレージサブシステムに送信することを特徴とする請求項１２に記載の計算機システム。
【請求項１４】
前記第１ストレージサブシステムは、さらに、前記第３インタフェースを経由する通信経路を切断し、
前記ホスト計算機は、前記切断を検出した場合、前記第１論理ユニットに再度接続するための接続要求を前記第１ストレージサブシステムに送信し、
前記第１ストレージサブシステムは、前記接続要求を受信した場合、前記通信経路の変更情報を含む応答を前記ホスト計算機に送信し、
前記ホスト計算機は、受信した応答に含まれる前記通信経路の変更情報に基づいて、前記第４インタフェースを経由して前記第１論理ユニットに接続するための接続要求を、前記第１ストレージサブシステムに送信することを特徴とする請求項１２に記載の計算機システム。
【請求項１５】
前記第３インタフェース及び前記第４インタフェースは、ホストバスアダプタであることを特徴とする請求項１０に記載の計算機システム。
【請求項１６】
前記計算機システムは、さらに、前記ホスト計算機と前記管理計算機とに接続される第２ストレージサブシステムを備え、
前記第２ストレージサブシステムは、複数のディスクドライブへのデータの読み書きを制御する第２コントローラを備え、
前記第２コントローラは、前記ホスト計算機に接続される第６インタフェースと、前記複数のディスクドライブと接続される第７インタフェースと、前記第６インタフェース、及び前記第７インタフェースに接続された第４プロセッサと、前記第４プロセッサに接続された第４メモリと、を備え、
前記第２ストレージサブシステムは、前記複数のディスクドライブからディスクドライブ群を構成し、前記ディスクドライブ群の記憶領域から複数の第２論理ユニットを作成し、
前記ホスト計算機は、前記複数の第１論理ユニットと対応する仮想論理ユニット及び前記複数の第２論理ユニットと対応する仮想論理ユニットから構成される論理記憶領域を作成し、
前記論理記憶領域を構成する前記複数の第１論理ユニット及び前記複数の第２論理ユニットの各々と前記ホスト計算機との間の通信経路が設定され、
前記ホスト計算機は、前記仮想論理ユニットにアクセスすることによって、前記設定された通信経路を介して、前記第１及び第２論理ユニットにアクセスし、
前記第１ストレージサブシステムは、前記第２ストレージサブシステムの負荷を監視し、
前記負荷の監視結果に基づいて、前記第２ストレージサブシステムの負荷が高いと判定した場合、前記第２ストレージサブシステムの前記第２論理ユニットに格納されているデータを、前記第１ストレージサブシステムの前記第１論理ユニットにコピーし、
前記第１ストレージサブシステムは、前記論理ユニットから前記ホスト計算機への通信経路を、前記第２論理ユニットから前記第６インタフェースを経由する通信経路から、前記第１論理ユニットから前記第３又は第４インタフェースを経由する通信経路に変更することを特徴とする請求項１０に記載の計算機システム。
【請求項１７】
前記第２論理ユニットから前記ホスト計算機への通信経路を前記第１論理ユニットから前記ホスト計算機への通信経路に変更する場合、前記第１ストレージサブシステムは、前記第１ストレージサブシステムに含まれる移動先の前記第１論理ユニットの情報を作成し、
前記作成された移動先の第１論理ユニットの情報を前記第２ストレージサブシステムに送信することを特徴とする請求項１６に記載の計算機システム。
【請求項１８】
前記第１ストレージサブシステムは、前記第２ストレージサブシステムから、前記ホスト計算機と前記第２ストレージサブシステムとの間のデータ通信量を負荷情報として取得することを特徴とする請求項１６に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージサブシステムを備える計算機システムに関する。特に、ストレージサブシステム内、及び、複数のストレージサブシステム間における負荷分散技術に関する。
【背景技術】
【０００２】
大規模な計算機システムでは、データを格納するために、複数のストレージサブシステムを接続する場合がある。この場合、特定のストレージサブシステムに負荷が集中してしまうことがあり、計算機システムの限界性能に近づけることが困難となっていた。
【０００３】
前述した課題を解決する技術として、ホストから書き込まれたデータを記憶するストレージサブシステムが複数あるシステムにおいて、ストレージサブシステム間で負荷分散する技術がある（例えば、特許文献１参照）。
【０００４】
具体的には、ストレージサブシステムは、ホストがデータを書き込むために割り当てられる論理的な記憶領域であるＬＵを、複数の記憶領域に分割して管理する。任意の分割された記憶領域に対するＩ／Ｏ要求が増加したことによって、ストレージサブシステムの負荷が高まった場合、当該分割された記憶領域に格納されたデータが負荷の低いストレージサブシステムに移動される。データの移動後、当該データが格納される負荷の低いストレージシステムが、負荷の高かったストレージサブシステムに代わって当該データに対するＩ／Ｏ要求を処理する。
【０００５】
前述した負荷分散技術によって、Ｉ／Ｏ要求が増加したＬＵを他のストレージシステムのＬＵに移動させる負荷分散に比べ、Ｉ／Ｏ要求に対する処理の負荷をストレージサブシステム間でより適切に分散することができるようになる。
【特許文献１】米国特許出願第２００４／０２１０７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した負荷分散技術では、データ単位で移動が行われているため、ホストとストレージサブシステムとの通信路が切り替えられない。このため、データ移動後も、データの移動元のストレージサブシステムが、ホストとストレージサブシステムとの間のＩ／Ｏ要求に関する通信を行う。つまり、ホストは、データの移動元のストレージサブシステムを経由して、データの移動先のストレージサブシステムと通信する。
【０００７】
このため、移動元のストレージサブシステムにおけるホストとストレージサブシステム間のデータ通信量に変化はなく、ストレージサブシステムの通信Ｉ／Ｆの使用帯域に不均衡が発生し、システムの通信Ｉ／Ｆの帯域を効率良く使用することができない。このことによって、システムの限界通信性能により近づけることが困難になってしまうという課題がある。
【０００８】
また、前述したように、Ｉ／Ｏ要求に関する通信を行うストレージサブシステムと、データを格納しているストレージサブシステムとが異なるため、ストレージサブシステム間において通信が発生し、Ｉ／Ｏ要求に対するレイテンシが大きくなる。このことによって、負荷分散時後の限界Ｉ／Ｏ性能が負荷分散前と比較して低下してしまうという課題がある。
【０００９】
一方、負荷分散をＬＵ単位で行った場合、ＬＵ単位の負荷分散は、移動先のストレージサブシステムの負荷が大きくなるため負荷分散という課題を解決できない。
【００１０】
本発明は、前述した課題を鑑みてなされたものである。具体的には、本発明の目的は、システムの通信Ｉ／Ｆの帯域を効率良く使用することができ、システムの限界通信性能により近づけることが容易な計算機システムを提供することである。
【００１１】
また、本発明の別の目的は、負荷分散後の限界Ｉ／Ｏ性能が負荷分散前と比較して低下しない計算機システムを提供することである。
【課題を解決するための手段】
【００１２】
本発明の代表的な一例を示せば以下の通りである。すなわち、第１ストレージサブシステムと、前記第１ストレージサブシステムと接続されるホスト計算機と、前記第１ストレージサブシステムと接続される管理計算機と、を備える計算機システムにおける負荷分散方法であって、前記ホスト計算機は、ネットワークに接続される第１インタフェースと、前記第１インタフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、前記管理計算機は、ネットワークに接続される第２インタフェースと、前記第２インタフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、を備え、前記第１ストレージサブシステムは、複数のディスクドライブへのデータの読み書きを制御する第１コントローラを備え、前記第１コントローラは、前記ホスト計算機に接続される第３インタフェース及び第４インタフェースと、前記ディスクドライブに接続される第５インタフェースと、前記第３インタフェース、前記第４インタフェース、及び前記第５インタフェースに接続される第３プロセッサと、前記第３プロセッサに接続される第３メモリと、を備え、前記第１ストレージサブシステムは、前記複数のディスクドライブからディスクドライブ群を構成し、前記ディスクドライブ群の記憶領域から複数の第１論理ユニットを作成し、前記ホスト計算機は、前記複数の第１論理ユニットと対応する仮想論理ユニットから構成される論理記憶領域を作成し、前記論理記憶領域を構成する前記複数の第１論理ユニットの各々と前記ホスト計算機との間の通信経路が設定され、前記ホスト計算機は、前記仮想論理ユニットにアクセスすることによって、前記設定された通信経路を介して、前記第１論理ユニットにアクセスし、前記方法は、前記第１ストレージサブシステムが、前記第１ストレージサブシステムの負荷を監視するステップと、前記第１ストレージサブシステムが、前記負荷の監視結果に基づいて、前記第１論理ユニットと前記ホスト計算機との間の前記通信経路を変更するステップと、を含むことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、システムの通信Ｉ／Ｆの帯域を効率良く使用することができ、システムの限界通信性能により近づけることが容易な計算機システムを提供することができる。また、負荷分散後の限界Ｉ／Ｏ性能が負荷分散前と比較して低下しない計算機システムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明の幾つかの実施例を説明する。
【００１５】
［第１の実施形態］
第１の実施形態では、アプリケーションプログラム５０７（図５参照）がアクセスの対象としている連続的な記憶領域にアクセスするときに発生するホストＩ／Ｆ使用帯域４００（図４参照）を効率よくホストＩ／Ｆ１０８−１、１０８−２（図１参照）間で負荷分散する方法及びシステムについて説明する。以降、アクセスは、断りが無い限り読み出し（リード）と書き込み（ライト）の両方の処理のことをいう。
【００１６】
図１は、本発明の第１実施形態の計算機システムの構成例を示すブロック図である。
【００１７】
計算機システムは、ホスト１００、管理ホスト１０１、ストレージサブシステム１０６、ホスト１００とストレージサブシステム１０６とが通信するためのストレージネットワーク１０３、及び管理ホストとストレージサブシステムとが通信するための管理ネットワーク１０５から構成される。
【００１８】
ホスト１００は、ストレージサブシステム１０６へデータを書き込んだり、ストレージサブシステム１０６からデータを読み出したりする。
【００１９】
管理ホスト１０１は、ストレージサブシステム１０６を管理するための計算機である。
【００２０】
ストレージサブシステム１０６は、データを書き込むための記憶領域であるＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）をホスト１００へ提供する。
【００２１】
ホスト１００とストレージサブシステム１０６とは、イーサネット（登録商標）ケーブル１０２で接続され、ホスト１００とストレージサブシステム１０６との間でのみ通信するストレージネットワーク１０３を形成されている。
【００２２】
管理ホスト１０１とストレージサブシステム１０６は、例えば、イーサネット（登録商標）ケーブル１０４で接続され、ストレージサブシステム１０６を管理するために使用される管理ネットワーク１０５を形成されている。
【００２３】
ストレージサブシステム１０６は、コントローラ１０７とディスク１１５から構成される。
【００２４】
コントローラは、ホストＩ／Ｆ１０８（１０８−１、１０８−２）、管理Ｉ／Ｆ１０９、ＣＰＵ１１０、キャッシュメモリ１１１、主メモリ１１２、及びディスクＩ／Ｆ１１３から構成される。
【００２５】
ホストＩ／Ｆ１０８は、ホスト１００と通信するためのネットワークデバイスであり、ストレージサブシステム１０６は、ｉＳＣＳＩプロトコルを用いてホスト１００と通信する。例えば、ホストＩ／Ｆ１０８−１にはＩＰアドレスとして１９２．１６８．０．１が割り当てられており、ホストＩ／Ｆ１０８−２にはＩＰアドレスとして１９２．１６８．０．２が割り当てられている。
【００２６】
なお、図１に示すストレージサブシステム１０６は、ホストＩ／Ｆ１０８を二つしか備えていないが、二つ以上備えていてもよい。
【００２７】
管理Ｉ／Ｆ１０９は、管理ホスト１０１と通信するためのネットワークデバイスであり、ストレージサブシステム１０６は、例えば、ＴＣＰ／ＩＰプロトコルを用いて管理ホスト１０１と通信する。
【００２８】
ＣＰＵ１１０は、主メモリ１１２に格納されているプログラムを実行する。
【００２９】
キャッシュメモリ１１１は、ホスト１００が要求するリードデータやライトデータを一時的に保持し、データの読み出し及び書き込みを高速化するためのデバイスである。
【００３０】
主メモリ１１２は、プログラム及び管理テーブルを記憶するデバイスである。
【００３１】
ディスクＩ／Ｆ１１３は、ＣＰＵ１１０がディスク１１５とアクセスするためのデバイスである。
【００３２】
ホストＩ／Ｆ１０８、管理Ｉ／Ｆ１０９、ＣＰＵ１１０、キャッシュメモリ１１１、主メモリ１１２、及びディスクＩ／Ｆ１１３は、例えばバス１１４で接続される。また、ディスクＩ／Ｆ１１３とディスク１１５も同様に、例えば、バス１１４で接続される。
【００３３】
主メモリ１１２は、ターゲットプログラム１１６、システム制御プログラム１１７、負荷監視プログラム１１８、パス変更プログラム１１９、ストレージサブシステム管理テーブル１２０、ＬＵ管理テーブル１２１、及び負荷管理テーブル１２２を格納する。
【００３４】
ターゲットプログラム１１６は、ｉＳＣＳＩターゲット機能を提供するプログラムであり、ホスト１００のイニシエータプログラム５０９と通信する。
【００３５】
システム制御プログラム１１７は、ＬＵを作成又は削除するためのプログラムである。
【００３６】
負荷監視プログラム１１８は、ホストＩ／Ｆ１０８（１０８−１、１０８−２）の使用帯域をＬＵ単位で計測するプログラムである。
【００３７】
パス変更プログラム１１９は、ホストＩ／Ｆ１０８−１とホストＩ／Ｆ１０８−２との使用帯域に不均衡が発生したときに、負荷分散処理を実行するプログラムである。
【００３８】
負荷分散処理は、使用帯域が広いホストＩ／Ｆ１０８（１０８−１、１０８−２）から使用帯域が狭いホストＩ／Ｆ１０８（１０８−１、１０８−２）へデータの経路であるパス、つまり、ターゲットアドレスを変更することによって実現される。負荷分散処理については、図１４Ａ、及び図１４Ｂを用いて後述する。
【００３９】
各プログラムが行う処理については、後述する各処理のフローチャートを用いて詳細を説明する。
【００４０】
ストレージサブシステム管理テーブル１２０は、ストレージサブシステム１０６に関する情報を管理するためのテーブルである。ＬＵ管理テーブル１２１は、ＬＵに関する情報を管理するためのテーブルである。負荷管理テーブル１２２は、ＬＵ毎に使用している帯域を管理しているテーブルである。なお、各テーブルについて図２、図３及び図４を用いて詳細を説明する。
【００４１】
図２は、本発明の第１実施形態のストレージサブシステム管理テーブル１２０の一例を示す説明図である。
【００４２】
ストレージサブシステム管理テーブル１２０は、ストレージサブシステムＩＤ２００、未使用容量２０１、及び管理Ｉ／Ｆ２０２を含む。
【００４３】
ストレージサブシステムＩＤ２００は、ストレージサブシステム１０６を一意に識別するための識別子を格納する。
【００４４】
未使用容量２０１は、ストレージサブシステム１０６が備える記憶領域のうちＬＵとして使用されていない容量を格納する。つまり、未使用容量２０１は、新規に作成するＬＵに割り当てることが可能な記憶領域の容量を格納する。
【００４５】
管理Ｉ／Ｆ２０２は、管理Ｉ／Ｆ１０９に割り当てられているＩＰアドレスを格納する。
【００４６】
図３は、本発明の第１実施形態のＬＵ管理テーブル１２１の一例を示す説明図である。
【００４７】
ＬＵ管理テーブル１２１は、ＲＡＩＤグループＩＤ３００、内部ＬＵＮ３０１、ターゲットネーム３０２、ＩＰアドレス３０３、ポート番号３０４、外部ＬＵＮ３０５、及びＬＶＭ−ＬＵ  ＩＤ３０６を含む。
【００４８】
ＲＡＩＤグループＩＤ３００は、ストレージサブシステム１０６内のＲＡＩＤグループを一意に識別するための識別子を格納する。
【００４９】
内部ＬＵＮ３０１は、ストレージサブシステム１０６内のＬＵを一意に識別するための識別子を格納する。
【００５０】
ターゲットネーム３０２は、ＬＵに割り当てられているｉＳＣＳＩターゲットの名前を格納する。
【００５１】
ＩＰアドレス３０３は、ｉＳＣＳＩターゲットに割り当てられているホストＩ／Ｆ１０８のＩＰアドレスを格納する。
【００５２】
ポート番号３０４は、ターゲットプログラム１１６がイニシエータプログラム５０９と通信するときに使用するＩＰアドレスのＴＣＰポート番号を格納する。
【００５３】
外部ＬＵＮ３０５は、ホスト１００がｉＳＣＳＩターゲットに割り当てられているＬＵを一意に識別するための識別子を格納する。
【００５４】
ＬＶＭ−ＬＵ  ＩＤ３０６は、ＬＶＭプログラム５０８によって作成される仮想ＬＵ(以下、ＬＶＭ−ＬＵと呼ぶ)をストレージサブシステム１０６内で一意に識別するための識別子を格納する。内部ＬＵに対応するＬＶＭ−ＬＵ  ＩＤを管理することによって、どの内部ＬＵにどのＬＶＭ−ＬＵが対応しているのか分かる。また、ストレージサブシステム１０６がＬＶＭ−ＬＵ  ＩＤ３０６に関する情報を保持することによって、ＬＶＭ用のＬＵを設定した管理ホスト１０１とは別の管理ホスト（図示省略）にＬＶＭ−ＬＵとＬＵとの対応情報を提供できる。ＬＶＭ用のＬＵを設定した管理ホスト１０１とは別の管理ホストは、対応情報に基づいて、ＬＶＭ−ＬＵ単位で複製を作成するなどの処理をすることができる。
【００５５】
図４は、本発明の第１実施形態の負荷管理テーブル１２２の一例を示す説明図である。
【００５６】
負荷管理テーブル１２２は、ＲＡＩＤグループＩＤ３００、内部ＬＵＮ３０１、ＩＰアドレス３０３、及びホストＩ／Ｆ使用帯域４００を含む。
【００５７】
ホストＩ／Ｆ使用帯域４００は、ターゲットプログラム１１６とイニシエータプログラム５０９が通信に使用したネットワーク帯域を格納する。負荷管理テーブル１２２０は、ｉＳＣＳＩターゲットに対応する内部ＬＵ毎に計測した値を管理する。
【００５８】
図５は、本発明の第１実施形態のホスト１００の構成例を示すブロック図である。
【００５９】
ホスト１００は、ポインティングデバイス５００、入力デバイス５０１、出力デバイス５０２、ＣＰＵ５０３、主メモリ５０４、及びホストＩ／Ｆ５０５を備える。ポインティングデバイス５００、入力デバイス５０１、出力デバイス５０２、ＣＰＵ５０３、主メモリ５０４、及びホストＩ／Ｆ５０５は、それぞれ、例えば、バス５０６で接続される。
【００６０】
ポインティングデバイス５００及び入力デバイス５０１は、管理者から入力された情報をＣＰＵ５０３へ送信する。例えば、ポインティングデバイス５００はマウスであり、入力デバイス５０１はキーボードである。
【００６１】
出力デバイス５０２は、ＣＰＵ５０３によって指示された情報を出力する。例えば、出力デバイス５０２は、液晶ディスプレイである。
【００６２】
ＣＰＵ５０３は、主メモリ５０４に格納されているプログラムを実行する。
【００６３】
主メモリ５０４は、アプリケーションプログラム５０７、ＬＶＭプログラム５０８、及びＬＶＭ−ＬＵ管理テーブル５１０を格納する。
【００６４】
ホストＩ／Ｆ５０５はストレージサブシステム１０６と通信するためのネットワークデバイスであり、例えば、ホスト１００はｉＳＣＳＩプロトコルを用いてストレージサブシステム１０６と通信する。
【００６５】
アプリケーションプログラム５０７は、ストレージサブシステム１０６にデータを書き込み（ライト）、また、ストレージサブシステム１０６からデータを読み出し（リード）するプログラムである。例えば、アプリケーションプログラムは、データベースソフトウェアである。
【００６６】
ＬＶＭ（Ｌｏｇｉｃａｌ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅｍｅｎｔ）プログラム５０８は、複数のＬＵを一つの仮想ＬＵとして扱うことができる機能を提供するプログラムである。
【００６７】
図６は、本発明の第１実施形態のＬＶＭ−ＬＵ管理テーブル５１０の一例を示す説明図である。
【００６８】
ＬＶＭ−ＬＵ管理テーブル５１０は、ＬＶＭ−ＬＵＮ６００、ターゲットネーム３０２、ＩＰアドレス３０３、ポート番号３０４、及び外部ＬＵＮ３０５を含む。
【００６９】
ＬＶＭ−ＬＵＮ６００は、ホスト１００がＬＶＭ−ＬＵを一意に識別するための識別子を格納する。
【００７０】
図７は、本発明の第１実施形態の管理ホスト１０１の構成例を示すブロック図である。
【００７１】
管理ホスト１０１は、ポインティングデバイス７００、入力デバイス７０１、出力デバイス７０２、ＣＰＵ７０３、主メモリ７０４、及び管理ホストＩ／Ｆ７０５を備える。管理ホスト１０１は、ポインティングデバイス７００、入力デバイス７０１、出力デバイス７０２、ＣＰＵ７０３、主メモリ７０４、及び管理ホストＩ／Ｆ７０５は、それぞれ、例えば、バス７０６で接続される。
【００７２】
ポインティングデバイス７００及び入力デバイス７０１は、管理者から入力された情報をＣＰＵ７０３へ送信する。例えば、ポインティングデバイス７００はマウスであり、入力デバイス７０１はキーボードである。
【００７３】
出力デバイス７０２は、ＣＰＵ７０３によって指示された情報を出力する。例えば、出力デバイス７０２は、液晶ディスプレイである。
【００７４】
ＣＰＵ７０３は、主メモリ７０４に格納されているプログラムを実行する。
【００７５】
主メモリ７０４は、ストレージサブシステム登録プログラム７０７、ＬＵ設定プログラム７０８、及びシステムグループ管理テーブル７０９を格納する。
【００７６】
管理ホストＩ／Ｆ７０５はストレージサブシステム１０６と通信するためのネットワークデバイスであり、例えば、管理ホスト１０１はＴＣＰ／ＩＰプロトコルを用いてストレージサブシステム１０６と通信する。
【００７７】
ストレージサブシステム登録プログラム７０７は、管理ホスト１０１がストレージサブシステム１０６と通信するために必要な情報を管理者から取得するためのＧＵＩを表示するプログラムである。
【００７８】
ＬＵ設定プログラム７０８は、ＬＶＭ−ＬＵを構成するＬＵをストレージサブシステム１０６に設定するためのプログラムである。
【００７９】
システムグループ管理テーブル７０９は、ストレージサブシステム登録プログラム７０７が実行され、管理者によって入力された情報を管理するためのテーブルである。
【００８０】
図８は、本発明の第１実施形態のシステムグループ管理テーブル７０９の一例を示す説明図である。
【００８１】
システムグループ管理テーブル７０９は、システムグループＩＤ８００、ストレージサブシステムＩＤ２００、及び管理Ｉ／Ｆ２０２を含む。
【００８２】
システムグループＩＤ８００は、計算機システム内のストレージサブシステム１０６をグループ化して管理する場合、計算にシステム内で当該グループを一意に識別するための識別子を格納する。
【００８３】
まず、第１実施形態の概要について説明する。
【００８４】
図１２は、本発明の第１実施形態のＬＶＭ−ＬＵの構成の一例、及び負荷分散処理の一例を示す説明図である。以下、ホスト１００上に作成されるＬＶＭ−ＬＵ１２００を構成するＬＵをＣ−ＬＵ（Ｃｏｍｐｏｎｅｎｔ−ＬＵ）１２０１と呼ぶ。
【００８５】
図１２に示すストレージサブシステム１０６は、複数のディスク１１５から構成されるＲＡＩＤグループ０（１２０２−１）及びＲＡＩＤグループ１（１２０２−２）を備える。
【００８６】
ＲＡＩＤグループ０（１２０２−１）には、ＲＡＩＤグループ０（１２０２−１）の物理的記憶領域から作成される論理的な記憶領域であるＬＵ１２０３（１２０３−１〜１２０３−４）が作成されている。また、ＲＡＩＤグループ１（１２０２−２）も同様に、ＬＵ１２０３（１２０３−５〜１２０３−７）が作成されている。以下、ＬＵ１２０３を内部ＬＵ１２０３とも呼ぶ。
【００８７】
内部ＬＵ１２０３には、内部ＬＵＮ３０１が割り当てられている。具体的には、内部ＬＵ１２０３−１は内部ＬＵＮ３０１「ＬＵ０」が、内部ＬＵ１２０３−２は内部ＬＵＮ３０１「ＬＵ１」が割り当てられ、内部ＬＵ１２０３−３は内部ＬＵＮ３０１「ＬＵ２」が割り当てられ、内部ＬＵ１２０３−４は内部ＬＵＮ３０１「ＬＵ３」が割り当てられ、内部ＬＵ１２０３−５は内部ＬＵＮ３０１「ＬＵ４」が割り当てられ、内部ＬＵ１２０３−６は内部ＬＵＮ３０１「ＬＵ５」が割り当てられ、内部ＬＵ１２０３−７は内部ＬＵＮ３０１「ＬＵ６」が割り当てられている。
【００８８】
図１２に示すホスト１００には、Ｃ−ＬＵ１２０１からＬＶＭ−ＬＵ１２００が作成されている。具体的には、Ｃ−ＬＵ１２０１−１、Ｃ−ＬＵ１２０１−２、Ｃ−ＬＵ１２０１−３、及びＣ−ＬＵ１２０１−４から構成されるＬＶＭ-ＬＵ１２００が作成されている。
【００８９】
Ｃ−ＬＵ１２０１と内部ＬＵ１２０３とはそれぞれ対応づけられている。具体的には、Ｃ−ＬＵ１２０１−１は内部ＬＵ１２０３−１をターゲットとし、Ｃ−ＬＵ１２０１−２は内部ＬＵ１２０３−２をターゲットとし、Ｃ−ＬＵ１２０１−３は内部ＬＵ１２０３−３をターゲットとし、Ｃ−ＬＵ１２０１−４は内部ＬＵ１２０３−４をターゲットとしている。
【００９０】
また、Ｃ−ＬＵ１２０１（Ｃ−ＬＵ１２０１−１〜Ｃ−ＬＵ１２０１−４）は、ホストＩ／Ｆ１０８−１を介して内部ＬＵ１２０３（内部ＬＵ１２０３−１〜内部ＬＵ１２０３−４）にアクセスしている。
【００９１】
図１２に示すように、ホストＩ／Ｆ１０８−１の使用帯域が大きいため、ホストＩ／Ｆ１０８−１に負荷がかかっている。本発明の第１実施形態では、後述する負荷分散処理によって、ホストＩ／Ｆ１０８−２を介してアクセスするようにパス（ターゲットアドレス）を変更する。例えば、図１２において、内部ＬＵ１２０３−４のパス（ターゲットアドレス）１２０４をパス（ターゲットアドレス）１２０５に変更する。これによって、ホストＩ／Ｆ１０８−１の負荷が減少する。
【００９２】
この様な処理を行えるのは、ＬＶＭ−ＬＵ１２００を複数のＣ−ＬＵ１２０１から構成し、かつ、内部ＬＵ１２０３毎にホストＩ／Ｆ１０８の使用帯域を監視しているためである。
【００９３】
以下、ＬＶＭ−ＬＵ１２００の作成方法について説明する。
【００９４】
まず、管理者がストレージサブシステム登録プログラム７０７を起動し、計算機システムのストレージサブシステム１０６を登録する。
【００９５】
図示していないが、ストレージサブシステム登録プログラム７０７が表示するストレージサブシステム登録画面に、管理者はシステムグループＩＤ８００と登録対象のストレージサブシステム１０６の管理Ｉ／Ｆ１０９に割り当てられているＩＰアドレス３０３を入力する。
【００９６】
ストレージサブシステム登録プログラム７０７は、入力されたＩＰアドレス３０３を用いてストレージサブシステム１０６のシステム制御プログラム１１７に対してストレージサブシステムＩＤ２００を要求する。
【００９７】
システム制御プログラム１１７は、ストレージサブシステム管理テーブル１２０を参照し、ストレージサブシステムＩＤ２００を含む応答をストレージサブシステム登録プログラム７０７に送信する。
【００９８】
次に、ストレージサブシステム登録プログラム７０７は、管理者から入力されたシステムグループＩＤ８００とＩＰアドレス３０３、及びストレージサブシステム１０６から取得されたストレージサブシステムＩＤ２００をそれぞれシステムグループ管理テーブル７０９に登録する。
【００９９】
次に管理者は、ＬＵ設定プログラム７０８を用いてＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１をストレージサブシステム１０６に作成する。
【０１００】
第１実施形態における計算機システムでは、Ｃ−ＬＵ１２０１を複数作成し、複数のＣ−ＬＵ１２０１から構成されたＬＶＭ−ＬＵ１２００に対してアプリケーションプログラム５０７がアクセスする。
【０１０１】
まず、Ｃ−ＬＵ１２０１を作成するときの処理、つまり、内部ＬＵ１２０３を作成する処理について説明する。
【０１０２】
Ｃ−ＬＵ１２０１の作成処理は、ＬＶＭ用ＬＵ作成画面１０００（図１０参照）に入力された情報に基づいて実行される。以下、ＬＶＭ用ＬＵ作成画面１０００について説明する。
【０１０３】
図１０は、本発明の第１実施形態のＬＶＭ用ＬＵ作成画面１０００の一例を示す説明図である。
【０１０４】
ＬＶＭ用ＬＵ作成画面１０００は、ストレージサブシステムＩＤ１００１、ＬＶＭ−ＬＵ  ＩＤ１００２、ＬＶＭ−ＬＵサイズ１００３、分割方法のサイズ１００６及びその入力領域１００４、分割方法のＬＵ数１００７及びその入力領域１００５、ＯＫボタン１００８、並びにキャンセルボタン１００９から構成される。
【０１０５】
ストレージサブシステムＩＤ１００１は、システムグループ管理テーブル７０９を参照し、登録されているストレージサブシステムＩＤ２００を選択肢として表示するプルダウンメニューである。
【０１０６】
ＬＶＭ−ＬＵ  ＩＤ１００２は、ＬＶＭ−ＬＵ  ＩＤを入力するためのテキストエリアである。
【０１０７】
ＬＶＭ−ＬＵサイズ１００３は、作成するＬＶＭ−ＬＵ１２００のサイズを入力するテキストエリアである。
【０１０８】
分割方法は、ＬＶＭ−ＬＵ１２００をＣ−ＬＵ１２０１に分割する方法である。分割方法には、サイズ１００６とＬＵ数１００７とがある。サイズ１００６はそのサイズを入力する入力領域１００４があり、また、ＬＵ数１００７はそのＬＵ数を入力する入力領域１００５がある。
【０１０９】
サイズ１００６は入力領域１００４で指定されたサイズでＬＶＭ−ＬＵ１２００をＣ−ＬＵ１２０１に分割する方法であり、ＬＵ数１００７は入力領域１００５で指定された数のＣ−ＬＵ１２０１にＬＶＭ−ＬＵ１２００を分割する方法である。管理者は、いずれかの方法を選択して、Ｃ−ＬＵ１２０１をＬＶＭ−ＬＵ１２００に分割する。
【０１１０】
例えば、ＬＶＭ−ＬＵサイズ１００３が「２００ＧＢ」のＬＶＭ−ＬＵ１２００を四つのＣ−ＬＵ１２０１に分割する場合、分割方法には、ＬＵ数１００７が選択され、入力領域１００５には、「４」が入力される。
【０１１１】
ＯＫボタン１００８は、Ｃ−ＬＵの作成内容を決定するボタンである。
【０１１２】
キャンセルボタン１００９は、Ｃ−ＬＵの作成処理を取り消すためのボタンである。
【０１１３】
管理者は、各項目に必要な情報を入力し、ＯＫボタン１００８を操作することによって、Ｃ−ＬＵ１２０１が作成される。以下、Ｃ−ＬＵ１２０１の作成処理の詳細を説明する。
【０１１４】
図９は、本発明の第１実施形態のＣ−ＬＵ１２０１の作成処理のフローチャートである。
【０１１５】
管理者がＬＵ設定プログラム７０８を起動したときに以下の処理が実行される。
【０１１６】
管理ホストのＬＵ設定プログラム７０８は、システムグループ管理テーブル７０９に登録されているストレージサブシステム１０６のシステム制御プログラム１１７へ未使用容量２０１を要求する（９００）。
【０１１７】
未使用容量２０１の要求を受信したシステム制御プログラム１１７は、ストレージサブシステム管理テーブル１２０参照し、未使用容量２０１をＬＵ設定プログラム７０８へ送信する（９０１）。
【０１１８】
ＬＵ設定プログラム７０８は、システム制御プログラム１１７から未使用容量２０１を受信し、ＬＶＭ用ＬＵ作成画面１０００を出力デバイス７０２に表示する（９０２）。
【０１１９】
ＬＵ設定プログラム７０８は、Ｃ−ＬＵ１２０１作成に必要な情報を取得する（９０３）。具体的には、管理者が、出力デバイス７０２に表示されたＬＶＭ用ＬＵ作成画面１０００を用いて、Ｃ−ＬＵ１２０１を作成するストレージサブシステムＩＤ２００を選択し、ＬＶＭ−ＬＵ  ＩＤ３０６とＬＶＭ−ＬＵのサイズを入力する。次に、管理者は、Ｃ−ＬＵ１２０１をＬＶＭ−ＬＵ１２００に分割する方法を選択し、分割方法に必要な情報を入力し、ＯＫボタン１００８を操作する。
【０１２０】
ＬＵ設定プログラム７０８は、ストレージサブシステム１０６から取得した未使用容量２０１を参照し、入力されたＬＶＭ−ＬＵサイズ１００３のＬＶＭ−ＬＵ１２００を作成できるか否かを判定する（９０５）。
【０１２１】
入力されたＬＶＭ−ＬＵサイズ１００３のＬＶＭ−ＬＵ１２００を作成できないと判定された場合、ＬＵ設定プログラム７０８は、容量が不足している旨をエラーメッセージとして出力デバイス７０２に表示して管理者に通知し、処理を終了する。
【０１２２】
入力されたＬＶＭ−ＬＵサイズ１００３のＬＶＭ−ＬＵ１２００を作成できると判定された場合、ＬＵ設定プログラム７０８は、Ｃ−ＬＵ１２０１を作成するために必要な情報をシステム制御プログラム１１７に送信する（９０５）。
【０１２３】
Ｃ−ＬＵ１２０１を作成するために必要な情報を受信したシステム制御プログラム１１７は、未使用領域のあるＲＡＩＤグループ１２０２（図１２参照）に指定されたサイズのＬＵ１２０３（図１２参照）を作成し、作成されたＬＵ１２０３にターゲットネーム３０２、ＩＰアドレス３０３、ポート番号、外部ＬＵＮ３０５を割り当て、ＬＵ１２０３が作成されたＲＡＩＤグループのＲＡＩＤグループＩＤ３００とＬＶＭ−ＬＵ  ＩＤ３０６とをＬＵ管理テーブル１２１に対応づけて登録する（９０６）。ただし、ＬＶＭ−ＬＵ  ＩＤ３０６は、ＬＶＭ−ＬＵ  ＩＤ１００２に入力された値を格納する。
【０１２４】
システム制御プログラム１１７は、ＬＵ１２０３に割り当てるターゲットネーム３０２にＬＶＭ−ＬＵ  ＩＤ３０６を含める。また、ターゲットネーム３０２は、例えば、ストレージサブシステム１０６の識別子などを含めて世界で唯一となるように割り当てられる。システム制御プログラム１１７は、ＩＰアドレス３０３を割り当てる場合、負荷管理テーブル１２２を参照し、ホストＩ／Ｆ使用帯域４００の合計が最も小さいＩＰアドレス３０３を選択してもよいし、ＬＶＭ用ＬＵ作成画面１０００を用いて管理者に指定させてもよい。
【０１２５】
以上のステップで、ストレージサブシステム１０６に、ＬＶＭ−ＬＵ１２００を構成するＬＵ１２０３を作成することができる。なお、ストレージサブシステム１０６に作成したＬＶＭ−ＬＵ１２００を構成するＬＵ１２０３はｉＳＣＳＩターゲットとしてイニシエータプログラム５０９に認識される。
【０１２６】
次に、ＬＶＭ−ＬＵ１２００を作成する処理について説明する。
【０１２７】
図１１は、本発明の第１実施形態のＬＶＭ−ＬＵ１２００作成処理を説明するフローチャートである。
【０１２８】
ホスト１００のイニシエータプログラム５０９は、ストレージネットワーク１０３に接続されているｉＳＣＳＩターゲットに対してＳｅｎｄＴａｒｇｅｔｓコマンドを発行してディスカバリセッションを開始し、ｉＳＣＳＩターゲットからの応答を待つ（１１００）。
【０１２９】
ＳｅｎｄＴａｒｇｅｔｓコマンドを受信したストレージサブシステム１０６のターゲットプログラム１１６は、ターゲットネーム３０２、ＩＰアドレス３０３、ポート番号３０４、及び外部ＬＵＮ３０５を含むターゲット情報をイニシエータプログラム５０９へ送信する（１１０１）。
【０１３０】
ターゲット情報を受信したイニシエータプログラム５０９は、受信したターゲット情報を出力デバイス５０２へ表示する（１１０２）。管理者は、出力デバイス５０２に表示されたターゲットネーム３０２からＬＶＭ−ＬＵ１２００を構成するｉＳＣＳＩターゲットを判別してすべてを選択し、ｉＳＣＳＩターゲットに対してログイン処理の開始をイニシエータプログラム５０９に出す。管理者からの命令を受けたイニシエータプログラム５０９は、選択されたｉＳＣＳＩターゲットへログイン要求を送信する（１１０３）。
【０１３１】
ログイン要求を受信したターゲットプログラム１１６は、ログイン処理を実行し、当該処理が完了したことをイニシエータプログラム５０９へ送信する（１１０４）。なお、ログインのときには、例えば、ＣＨＡＰ（Ｃｈａｌｌｅｎｇｅ  Ｈａｎｄｓｈａｋｅ  Ａｕｔｈｅｎｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）認証等を用いて、ログイン要求するイニシエータプログラム５０９をターゲットプログラム１１６が認証する。
【０１３２】
イニシエータプログラム５０９は、他にログインすべきｉＳＣＳＩターゲットがあるか否かを判定する（１１０５）。
【０１３３】
他にログインすべきｉＳＣＳＩターゲットがあると判定された場合、イニシエータプログラム５０９は、ステップ１１０３に戻り同様の処理を実行する。
【０１３４】
他にログインすべきｉＳＣＳＩターゲットがないと判定された場合、イニシエータプログラム５０９は、処理を終了する。
【０１３５】
管理者は、ホスト１００のＬＶＭプログラム５０８を起動し、ログインしたすべてのｉＳＣＳＩターゲットからＬＶＭ−ＬＵ１２００を作成する。ＬＶＭプログラム５０８は、作成されたＬＶＭ−ＬＵ１２００にＬＶＭ−ＬＵＮ６００を割り当て、また、ＬＶＭ−ＬＵを構成しているｉＳＣＳＩターゲットのターゲットネーム３０２、ＩＰアドレス３０３、ポート番号３０４、及び外部ＬＵＮ３０５をＬＶＭ−ＬＵ管理テーブル５１０に登録する（１１０６）。
【０１３６】
以上の処理で、ホスト１００にＬＶＭ−ＬＵ１２００を作成することができる。アプリケーションプログラム５０７は、複数のｉＳＣＳＩターゲットから構成され論理的に作成されたＬＶＭ−ＬＵ１２００に対してアクセスする。
【０１３７】
次に、ホストＩ／Ｆ１０８の使用帯域を監視する処理について説明する。
【０１３８】
図１３は、本発明の第１実施形態の負荷監視処理を説明するフローチャートである。
負荷監視プログラム１１８は、例えば、ストレージサブシステム１０６の電源投入後に自動的に実行され、ストレージサブシステム１０６の電源が切断されるまで実行され続ける。
【０１３９】
ストレージサブシステム１０６の負荷監視プログラム１１８は、ＬＵ管理テーブル１２１の内部ＬＵＮ３０１とＩＰアドレス３０３とを参照し、使用するホストＩ／Ｆ１０８の使用帯域を内部ＬＵ毎に計測する（１３００）。使用帯域とは、例えば、一週間の平均使用ｂｐｓ（ｂｉｔｅ  ｐｅｒ  ｓｅｃ）である。負荷監視プログラム１１８は、一週間の平均使用ｂｐｓを計測した後、ステップ１３０１に進む。
【０１４０】
負荷監視プログラム１１８は、計測した内部ＬＵのＲＡＩＤグループＩＤ３００、内部ＬＵＮ３０１、ＩＰアドレス３０３、及びホストＩ／Ｆ使用帯域４００を負荷管理テーブル１２２に登録する（１３０１）。以降、負荷監視プログラム１１８は、定期的に前述した処理を実行し、負荷管理テーブル１２２を更新する。
【０１４１】
以上の処理によって、ストレージサブシステム１０６の内部ＬＵ毎のホストＩ／Ｆ１０８の使用帯域を監視することができる。
【０１４２】
次に、ｉＳＣＳＩターゲットのパス（ターゲットアドレス）変更処理について説明する。
【０１４３】
図１４Ａは、本発明の第１実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。
【０１４４】
ストレージサブシステム１０６のパス変更プログラム１１９は、例えば、ストレージサブシステム１０６の電源投入後に、一週間毎に自動的に実行される。
【０１４５】
パス変更プログラム１１９は、負荷管理テーブル１２２から内部ＬＵ１２０３に関する負荷情報を取得し（１４００）、以下の処理を実行する。
【０１４６】
ステップ１４０１において、パス変更プログラム１１９は、負荷分散可能な内部ＬＵ１２０３があるか否かを判定する。具体的には、ホストＩ／Ｆ１０８−１とホストＩ／Ｆ１０８−２との使用帯域に不均衡が発生しているか否かを判定する。ここで、使用帯域の不均衡とは、例えば、使用帯域の最も大きい値が、最も小さい値の２倍以上となっている状態のことである。なお、使用帯域の最も大きい値となっているホストＩ／Ｆ１０８を高負荷ホストＩ／Ｆ、使用帯域の最も小さい値であるホストＩ／Ｆ１０８を低負荷ホストＩ／Ｆと呼ぶ。
【０１４７】
ホストＩ／Ｆ１０８−１とホストＩ／Ｆ１０８−２との使用帯域に不均衡が発生していないと判定された場合、パス変更プログラム１１９は、処理を終了する。
【０１４８】
ホストＩ／Ｆ１０８−１とホストＩ／Ｆ１０８−２との使用帯域に不均衡が発生していると判定された場合、パス変更プログラム１１９は、高負荷ホストＩ／Ｆが割り当てられている内部ＬＵ１２０３の中に低負荷ホストＩ／Ｆへ変更できる内部ＬＵ１２０３があるか否かを判定する。つまり、負荷分散が可能な内部ＬＵ１２０３があるか否かを判定する。
【０１４９】
具体的には、パス変更プログラム１１９は、高負荷ホストＩ／Ｆと低負荷ホストＩ／Ｆの使用帯域の差（以下、使用帯域の差という）を算出し、高負荷ホストＩ／Ｆが割りあてられている内部ＬＵ１２０３の中で、前述した使用帯域の差の値が１／２に最も近い使用帯域を使用している内部ＬＵ１２０３を負荷分散の候補に決める。以下、負荷分散の候補である内部ＬＵ１２０３を候補内部ＬＵと呼ぶ。
【０１５０】
当該候補内部ＬＵに割り当てられている高負荷ホストＩ／Ｆ１０８を低負荷ホストＩ／Ｆ１０８に変更したときの使用帯域の差が、変更前の使用帯域の差よりも小さくなる場合、パス変更プログラム１１９は、負荷分散が可能な内部ＬＵ１２０３があると判定する。
【０１５１】
図４の場合、ホストＩ／Ｆ１０８−１の使用帯域が３４０Ｍｂｐｓであり、ホストＩ／Ｆ１０８−２の使用帯域が１２０Ｍｂｐｓであるため、パス変更プログラム１１９は、不均衡が発生していると判定する。この場合、使用帯域の差の１／２は１１０Ｍｂｐｓであり、内部ＬＵＮ３０１が「３」の内部ＬＵ１２０３が候補内部ＬＵとなる。
【０１５２】
候補内部ＬＵのホストＩ／Ｆ１０８−１をホストＩ／Ｆ１０８−２に変更すると使用帯域の差が小さくなるので、パス変更プログラム１１９は、当該公募内部ＬＵを負荷分散が可能な内部ＬＵ１２０３があると判定する。
【０１５３】
ステップ１４０１において、負荷分散が可能な内部ＬＵ１２０３があると判定された場合、パス変更プログラム１１９は、ステップ１４０２に進む。なお、負荷分散が可能な内部ＬＵを決定するアルゴリズムは、前述したものに限定されず、ホストＩ／Ｆ１０８間の使用帯域を分散することができれば、どのアルゴリズムを利用してもよい。例えば、ホストＩ／Ｆ１０８の帯域の使用率を用いてもよい。
【０１５４】
パス変更プログラム１１９は、候補内部ＬＵのホストＩ／Ｆ１０８を低負荷ホストＩ／Ｆへ変更するようにターゲットプログラム１１６へパス変更要求を送信する（１４０２）。
【０１５５】
パス変更要求を受信したターゲットプログラム１１６は、候補内部ＬＵに対応するｉＳＣＳＩターゲットにログインしているイニシエータプログラム５０９へターゲットアドレス変更要求１５００（図１５参照）を送信する（１４０３）。ターゲットアドレス変更要求１５００についての詳細については、図１５を用いて後述する。ターゲットアドレス変更要求１５００には、パスの変更先の情報としてＩＰアドレス３０３とポート番号３０４とを含む。
【０１５６】
ターゲットアドレス変更要求１５００を受信したイニシエータプログラム５０９は、候補内部ＬＵに対応するｉＳＣＳＩターゲットからのログアウト要求をターゲットプログラム１１６へ送信する（１４０４）。
【０１５７】
ターゲットプログラム１１６は、ログアウト処理を実行し、ログアウトが完了したことをログアウト応答としてイニシエータプログラム５０９へ送信する（１４０５）。次に、ターゲットプログラム１１６は、候補内部ＬＵに未使用のポート番号３０４を割り当て、これに伴い候補内部ＬＵ関するＬＵ管理テーブル１２１のＩＰアドレス３０３とポート番号３０４とを変更する。
【０１５８】
イニシエータプログラム５０９は、受信したターゲットアドレス変更要求１５００に含まれるパスの変更先のＩＰアドレス３０３とポート番号３０４とを取得する。イニシエータプログラム５０９は、取得されたＩＰアドレス３０３とポート番号３０４とを用いて、ステップ１４０４でログアウトしたターゲットネーム３０２が割り当てられているｉＳＣＳＩターゲットにログインするため、ターゲットプログラム１１６へログイン要求を送信する（１４０６）。この処理によって、ｉＳＣＳＩターゲットのパス（ターゲットアドレス）は変更されるが、同一のｉＳＣＳＩターゲットにログインしている状態は維持される。つまり、ホスト１００は、同一の内部ＬＵ１２０３と通信する。
【０１５９】
ログイン要求を受信したターゲットプログラム１１６は、ログイン処理を実行し、ログインが完了したことをログイン応答としてイニシエータプログラム５０９へ送信する（１４０７）。
【０１６０】
ログイン応答を受信したイニシエータプログラム５０９は、ログイン処理を完了する（１４０８）。
【０１６１】
ターゲットプログラム１１６は、パス変更が完了したことをパス変更応答としてパス変更プログラム１１９へ送信する。また、ターゲットプログラム１１６は、候補内部ＬＵのホストＩ／Ｆ１０８を変更後、さらに、負荷分散が可能な内部ＬＵ１２０３がないか検索するようにパス変更プログラム１１９へ要求を送信する（１４０９）。
【０１６２】
以上の処理によって、ホストＩ／Ｆ使用帯域４００を分散させるためのパス変更を実行することができる。
【０１６３】
前述した処理は、ターゲットアドレス変更要求１５００を用いた例を示したが、ＴＣＰコネクションの切断を利用したパス変更を行うこともできる。以下、ＴＣＰコネクションの切断を利用したパス変更を説明する。
【０１６４】
図１４Ｂは、本発明の第１実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。なお、図１４Ａとの差異を中心に説明する。
【０１６５】
ステップ１４０３において、パス変更要求を受信したターゲットプログラム１１６は、パス変更前のターゲットアドレスのＴＣＰコネクションを切断する（１４１０）。
【０１６６】
ステップ１４０４において、ＴＣＰコネクションが切断されるため、イニシエータプログラム５０９がターゲットへログインすることによって確立されているｉＳＣＳＩセッションも切断される。このため、イニシエータプログラム５０９は、ｉＳＣＳＩセッションを確立していたターゲットへ再ログインするため、ログイン要求をターゲットプログラム１１６へ送信する（１４１１）。
【０１６７】
ステップ１４０５において、ログイン要求を受信したターゲットプログラム１１６は、ｉＳＣＳＩプロトコルにあるターゲットアドレスが変更されたことを示す「リダイレクション」をログイン応答としてイニシエータプログラムへ送信する（１４１２）。ここで、「リダイレクション」とは、具体的には、Ｓｔａｔｕｓ  Ｃｌａｓｓが「１」で、Ｓｔａｔｕｓ  Ｄｅｔａｉｌが「２」のログイン応答のことである。当該ログイン応答は、変更先となるターゲットアドレスを含む。
【０１６８】
ステップ１４０６において、ログイン応答を受信したイニシエータプログラム５０９は、変更先となるターゲットアドレスを用いて、同一のターゲットへログインするために、ターゲットプログラム１１６へログイン要求を送信する。
【０１６９】
以上の処理によって、ｉＳＣＳＩプロトコルの規格の範囲内でターゲットアドレスを変更することができる。
【０１７０】
次に、図１４Ａに示すパス変更処理を実現するためのターゲットアドレス変更要求の構成例について説明する。
【０１７１】
図１５は、本発明の第１実施形態のターゲットアドレス変更要求の構成例を示す説明図である。
【０１７２】
ｉＳＣＳＩプロトコルには、ｉＳＣＳＩターゲットからｉＳＣＳＩイニシエータへイベントを通知するためのＡｓｙｎｃｈｒｏｎｏｕｓ  Ｍｅｓｓａｇｅがある。当該Ａｓｙｎｃｈｒｏｎｏｕｓ  ＭｅｓｓａｇｅをｉＳＣＳＩターゲットからｉＳＣＳＩイニシエータへ送信することによって、例えば、ｉＳＣＳＩイニシエータにログアウトするように要求することができる。
【０１７３】
第１実施形態のターゲットアドレス変更要求１５００は、Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｍｅｓｓａｇｅの一つのイベントとして実現される。
ターゲットアドレス変更要求１５００は、Ｂｙｔｅ１５０１、Ｏｆｆｓｅｔ（０）１５０２、Ｏｆｆｓｅｔ（１）１５０３、Ｏｆｆｓｅｔ（２）１５０４、Ｏｆｆｓｅｔ（３）１５０５、ＤａｔａＳｅｇｍｅｎｔＬｅｎｇｔｈ１５０６、ＡｓｙｃＥｖｅｎｔ１５０７、及びＤａｔａＳｅｇｍｅｎｔ１５０８から構成される。
【０１７４】
Ｂｙｔｅ１５０１は、行の開始バイトと終了バイトとを示す。
【０１７５】
Ｏｆｆｓｅｔ（０）１５０２〜Ｏｆｆｓｅｔ（３）１５０５は、開始バイトからのオフセット値である。
【０１７６】
ＤａｔａＳｅｇｍｅｎｔＬｅｎｇｔｈ１５０６は、ＤａｔａＳｅｇｍｅｎｔ１５０８の長さを示す値が設定される。
【０１７７】
ＡｓｙｃＥｖｅｎｔ１５０７は、ターゲットから送信されるイベントを一意に識別するための識別子である。
【０１７８】
ＤａｔａＳｅｇｍｅｎｔ１５０８は、ｉＳＣＳＩ  Ｅｖｅｎｔ  Ｄａｔａとして、変更後のＩＰアドレス３０３とポート番号３０４とが設定される。
【０１７９】
第１実施形態では、ＡｓｙｃＥｖｅｎｔ１５０７に、ｉＳＣＳＩプロトコルでは定義されていない、例えば、「５０」をターゲットアドレス変更イベントとして定義したＡｓｙｎｃｈｒｏｎｏｕｓ  Ｍｅｓｓａｇｅを利用する。ターゲットアドレス変更イベントとして用いるＡｓｙｃＥｖｅｎｔ１５０７の値は、ｉＳＣＳＩプロトコルにおいて定義されていないものであればどの値でもよい。イニシエータプログラム５０９は、ＡｓｙｃＥｖｅｎｔ１５０７が「５０」のＡｓｙｎｃｈｒｏｎｏｕｓ  Ｍｅｓｓａｇｅを受信した場合、ターゲットアドレス変更要求の処理を実行する。
【０１８０】
図１６は、本発明の第１実施形態のパス変更処理後のＬＵ管理テーブル１２１を示す説明図である。
【０１８１】
パス変更処理によって、候補内部ＬＵに対応するＬＵ管理テーブル１２１のＩＰアドレス３０３が「１９２．１６９．０．１」から「１９２．１６８．０．２」に変更され、ポート番号３０４が「５０００３」から「６０００３」に変更されている。具体的には、図１２において、候補内部ＬＵ（この場合は、内部ＬＵ１２０３Ｄ）のターゲットアドレス１２０４をターゲットアドレス１２０５に変更されていることが分かる。
【０１８２】
以上説明したように、第１実施形態によれば、アプリケーションプログラム５０７がアクセス対象としているＬＶＭ−ＬＵ１２００を構成する、容量の小さい内部ＬＵ１２０３単位で、ストレージサブシステム１０６のホストＩ／Ｆ１０８間の使用帯域の負荷を分散することができる。このことによって、システムの通信Ｉ／Ｆの帯域を効率良く使用することができため、システムの限界通信性能により近づけることが容易な計算機システムを提供することができる効果がある。
【０１８３】
第１実施形態では、パス変更プログラム１１９が定期的に実行されるとしたが、特定のホストＩ／Ｆ１０８の使用帯域が、任意の閾値を超えたときに実行されてもよい。
【０１８４】
また、パス変更プログラム１１９が候補ＬＵを決定するときに、使用帯域のみを用いたが、内部ＬＵ１２０３に優先度を設定し、高負荷ホストＩ／Ｆと低負荷Ｉ／Ｆとの差を小さくできる優先度の高い内部ＬＵ１２０３を優先的に候補ＬＵとして決定してもよい。
【０１８５】
また、ＬＶＭ用ＬＵ作成画面１０００において、ＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１にアクセスするホスト１００のｉＳＣＳＩイニシエータネームを入力させ、ｉＳＣＳＩイニシエータネームとＬＵとの対応関係をストレージサブシステム１０６内に保存しておくことで、ＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１に割り当てられたｉＳＣＳＩターゲットにログイン可能なｉＳＣＳＩイニシエータを限定することができる。
【０１８６】
また、ＬＶＭ用ＬＵ作成画面１０００において、ＬＶＭ−ＬＵ１２００のサイズを分割する方法を管理者に指定させたが、分割するサイズ、または、ＬＵ数があらかじめ設定されていることによって、管理者の入力を省略することもできる。
【０１８７】
第１実施形態では、ＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１の数が「４」の場合を説明したが、Ｃ−ＬＵ１２０１の数を数千、数万にすることで、負荷分散処理をより最適行うことができ、ホストＩ／Ｆの帯域を効率的に使用することができる。
【０１８８】
［第２実施形態］
次に、本発明の第２実施形態について説明する。なお、以下の説明では、第１実施形態との相違点を主に説明する。
【０１８９】
第２実施形態では、複数のストレージサブシステム１０６間で、アプリケーションプログラム５０７によって発生するディスクＩ／Ｏ負荷をシステム限界性能を低下させずに分散する方法、及びシステムについて説明する。
まず、第２実施形態の概要について説明する。
【０１９０】
図２７は、本発明の第２実施形態の計算機システムの構成例、及び負荷分散処理の一例を示す説明図である。
【０１９１】
第２実施形態における計算機システムは、ストレージサブシステム１０６−１とストレージサブシステム１０６−２とを備える。
【０１９２】
ストレージサブシステム１０６−１は、ホストＩ／Ｆ１０８−１、ホストＩ／Ｆ１０８−２とを備え、ホストＩ／Ｆ１０８−１、ホストＩ／Ｆ１０８−２からストレージネットワーク１０３を介してホスト１００と通信する。
【０１９３】
ストレージサブシステム１０６−１は、複数のディスク装置から構成されるＲＡＩＤグループ０（１２０２−１）、及びＲＡＩＤグループ１（１２０２−２）とが構成されている。
【０１９４】
ＲＡＩＤグループ０（１２０２−１）には、内部ＬＵ１２０３−１、内部ＬＵ１２０３−２、及び内部ＬＵ１２０３−３が作成されている。また、ＲＡＩＤグループ１（１２０２−２）には、内部ＬＵ１２０３−４、内部ＬＵ１２０３−５、及び内部ＬＵ１２０３−６が作成されている。
【０１９５】
内部ＬＵ１２０３には、それぞれ内部ＬＵＮ３０１が割り当てられている。具体的には、内部ＬＵ１２０３−１には内部ＬＵＮ３０１「ＬＵ０」が割り当てられ、内部ＬＵ１２０３−２には内部ＬＵＮ３０１「ＬＵ１」が割り当てられ、内部ＬＵ１２０３−３には内部ＬＵＮ３０１「ＬＵ２」が割り当てられ、内部ＬＵ１２０３−４には内部ＬＵＮ３０１「ＬＵ４」が割り当てられ、内部ＬＵ１２０３−５には内部ＬＵＮ３０１「ＬＵ５」が割り当てられ、内部ＬＵ１２０３−６には内部ＬＵＮ３０１「ＬＵ６」が割り当てられている。
【０１９６】
ストレージサブシステム１０６−２は、ホストＩ／Ｆ１０８−３、ホストＩ／Ｆ１０８−４とを備え、ホストＩ／Ｆ１０８−３、ホストＩ／Ｆ１０８−４からストレージネットワーク１０３を介してホスト１００と通信する。
【０１９７】
ストレージサブシステム１０６−１は、複数のディスク装置から構成されるＲＡＩＤグループ０（１２０２−３）、及びＲＡＩＤグループ１（１２０２−４）とが構成されている。
【０１９８】
ＲＡＩＤグループ０（１２０２−３）には、内部ＬＵ１２０３−７、及び内部ＬＵ１２０３−８が作成されている。また、ＲＡＩＤグループ１（１２０２−４）には、内部ＬＵ１２０３−９、及び内部ＬＵ１２０３−１０が作成されている。
【０１９９】
ストレージサブシステム１０６−２においても同様に、内部ＬＵ１２０３には、それぞれ内部ＬＵＮ３０１が割り当てられている。具体的には、内部ＬＵ１２０３−７には内部ＬＵＮ３０１「ＬＵ４」が割り当てられ、内部ＬＵ１２０３−８には内部ＬＵＮ３０１「ＬＵ３」が割り当てられ、内部ＬＵ１２０３−９には内部ＬＵＮ３０１「ＬＵ１」が割り当てられ、内部ＬＵ１２０３−１０には内部ＬＵＮ３０１「ＬＵ１」が割り当てられている。
【０２００】
ホスト１００は、ＬＶＭ−ＬＵ１２００を備える。ＬＶＭ−ＬＵ１２００は、Ｃ−ＬＵ１２０１−１、Ｃ−ＬＵ１２０１−２、Ｃ−ＬＵ１２０１−３、及びＣ−ＬＵ１２０１−４から構成されている。Ｃ−ＬＵ１２０１は、内部ＬＵ１２０３と対応づけられている。具体的には、Ｃ−ＬＵ１２０１−１は内部ＬＵ１２０３−１をターゲットとし、Ｃ−ＬＵ１２０１−２は内部ＬＵ１２０３−２をターゲットとし、Ｃ−ＬＵ１２０１−３は内部ＬＵ１２０３−３をターゲットとし、Ｃ−ＬＵ１２０１−４は内部ＬＵ１２０３−８をターゲットとしている。
【０２０１】
第２実施形態では、図２７において、ストレージサブシステム１０６ＡのディスクＩ／Ｏ負荷が増加した場合、Ｃ−ＬＵ１２０１Ｃのパスを、内部ＬＵ１２０３−３から内部ＬＵ１２０３−７に変更し（２７００）、さらに、内部ＬＵ１２０３−３のデータを内部ＬＵ１２０３−７にデータをコピーする（２７０１）ことによって、ストレージサブシステム１０６−１のディスクＩ／Ｏ負荷を低減することができる。
【０２０２】
図１７は、本発明の第２実施形態のストレージサブシステム１０６の構成例を示すブロック図である。
【０２０３】
負荷監視プログラム１７００は、ＬＵ１２０３のＩＯＰＳ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｅｃｏｎｄ）１８００（図１８参照）を計測するプログラムである。
【０２０４】
パス変更プログラム１７０１は、ストレージサブシステム１０６−１とストレージサブシステム１０６−２とのＩＯＰＳ１８００に不均衡が発生したときに、ＩＯＰＳ１８００が高いストレージサブシステム１０６からＩＯＰＳ１８００が低いストレージサブシステム１０６へデータを移動するための、負荷分散処理を実行するプログラムである。
【０２０５】
イニシエータプログラム１７０２は、他のストレージサブシステム１０６のｉＳＣＳＩターゲットとｉＳＣＳＩプロトコルを用いてデータを送受信するプログラムである。イニシエータプログラム１７０２は、内部ＬＵ１２０３のデータを他のストレージサブシステム１０６へ移動するときに用いられる。
【０２０６】
負荷管理テーブル１７０３は、ＩＯＰＳ１８００を内部ＬＵ毎に管理しているテーブルである。
【０２０７】
コピー状態管理テーブル１７０４は、内部ＬＵ１２０３から別の内部ＬＵ１２０３へデータを移動するときのコピー状態２６０４（図２５参照）を管理しているテーブルである。コピー状態管理テーブルについては、図２５を用いて後述する。
【０２０８】
システムグループ管理テーブル１７０５は、他のストレージサブシステム１０６と通信するときに必要となる情報を管理するテーブルである。
【０２０９】
ＲＡＩＤグループ管理テーブル１７０６は、ＲＡＩＤグループに関する情報を管理するテーブルである。システム制御プログラム１１７は、内部ＬＵ１２０３を作成又は削除したときにＲＡＩＤグループ管理テーブルを更新する。
【０２１０】
図１８は、本発明の第２実施形態の負荷管理テーブル１７０３の一例を示す説明図である。
【０２１１】
負荷管理テーブル１７０３は、ＲＡＩＤグループＩＤ３００、内部ＬＵＮ３０１、及びＩＯＰＳ１８００を含む。
【０２１２】
ＩＯＰＳ１８００は、内部ＬＵ１２０３に対し、単位時間（毎秒）あたりに発行されるリードコマンドとライトコマンドを合わせたコマンド数の平均値である。負荷管理テーブル１７０３は、ｉＳＣＳＩターゲットに対応する内部ＬＵ１２０３毎に計測した値を管理する。
【０２１３】
図１９は、本発明の第２実施形態の管理ホスト１０１の構成例を示すブロック図である。
【０２１４】
主メモリ７０４は、ストレージサブシステム登録プログラム１９００、ＬＵ設定プログラム１９０１、システムグループ管理テーブル７０９、ストレージプール管理テーブル１９０３を格納する。
【０２１５】
ストレージサブシステム登録プログラム１９００は、新規にストレージサブシステム１０６が登録されると、システムグループ管理テーブル７０９に登録されているストレージサブシステム１０６にシステムグループ管理テーブルの情報を送信するプログラムである。
【０２１６】
ＬＵ設定プログラム１９０1は、管理者がＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１に必要な記憶領域をストレージプールから割り当て、当該割り当てられた記憶領域をストレージサブシステム１０６に設定するプログラムである。
【０２１７】
ストレージプール管理テーブル１９０２は、システムグループ管理テーブル７０９に登録されているストレージサブシステム１０６の未使用容量２０１をシステムグループ内で共有するために未使用容量２０１を管理するテーブルである。ここで、ストレージプールとは、複数のストレージサブシステム１０６の全未使用領域から構成される記憶領域である。
【０２１８】
図２０は、本発明の第２実施形態のシステムグループ管理テーブル７０９の一例を示す説明図である。
【０２１９】
図２０の例では、管理Ｉ／Ｆ２０２が「１９２．１６８．１．１」である「ｓｔｏｒａｇｅ０」と、管理Ｉ／Ｆ２０２が「１９２．１６８．１．２」である「ｓｔｏｒａｇｅ１」とが同一のシステムグループＩＤ８００「ｓｙｓｔｅｍ０」に登録されている。
【０２２０】
図２１は、本発明の第２実施形態のストレージプール管理テーブル１９０２の一例を示す説明図である。
【０２２１】
ストレージプール管理テーブル１９０２は、ストレージプールＩＤ２１００、ストレージサブシステムＩＤ２００、及び未使用容量２０１を含む。
【０２２２】
ストレージプールＩＤ２１００は、システムグループ内でストレージプールを一意に識別するための識別子である。図２１に示す例では、ストレージプールＩＤ２１００は、ストレージサブシステム１０６単位で割り当てているが、ストレージサブシステム１０６のＲＡＩＤグループ１２０２単位に割り当てもよいし、ディスク１１５単位に割り当ててもよい。
【０２２３】
ストレージプールＩＤ２１００は、ＬＶＭ用ＬＵを作成するときに使用される。ストレージプールの未使用容量２０１は、ＬＶＭ用ＬＵを作成するときのＣ−ＬＵ１２０１として使用される容量である。したがって、ＬＶＭ−ＬＵ１２００は、ストレージサブシステム１０６の未使用の記憶領域を用いて作成される場合がある。
【０２２４】
以下、ＬＶＭ−ＬＵ１２００の作成処理について説明する。ＬＶＭ−ＬＵ１２００作成処理は、本発明の第１実施形態と同様に、まず、ＬＶＭ用ＬＵ作成画面２３００を用いて設定を行う。
【０２２５】
図２３は、本発明の第２実施形態のＬＶＭ用ＬＵ作成画面２３００の一例を示す説明図である。
【０２２６】
ＬＶＭ用ＬＵ作成画面２３００は、ストレージプールＩＤ２３０１、ＬＶＭ−ＬＵ  ＩＤ１００２、ＬＶＭ−ＬＵサイズ１００３、分割方法のサイズ１００６及びその入力領域１００４、分割方法のＬＵ数１００７及びその入力領域１００５、ＯＫボタン１００８、及びキャンセルボタン１００９から構成されている。
【０２２７】
ストレージプールＩＤ２３０１は、ストレージプール管理テーブル１９０２を参照し、登録されているストレージプールＩＤ２１００及び未使用容量２０１を、選択肢として表示するプルダウンメニューである。
【０２２８】
図２２は、本発明の第２実施形態のＬＶＭ−ＬＵ１２００作成処理を説明するフローチャートである。
【０２２９】
管理ホスト１０１のＬＵ設定プログラム１９０１は、管理者から起動されたときに以下の処理を実行する。
【０２３０】
ＬＵ設定プログラム１９０１は、システムグループ管理テーブル７０９に登録されているストレージサブシステム１０６から未使用容量２０１を取得し、ストレージプール管理テーブル１９０２の内容を最新の状態に更新する。図２７に示す例においては、まず、ＬＵ設定プログラム１９０１は、ストレージサブシステム０（１１７−１）のシステム制御プログラム１１７へ未使用容量２０１を取得する要求を送信する（２２００）。以下、各ストレージサブシステムが備えるプログラム及びテーブルについて区別する場合、ストレージサブシステム１０６−１のものについては「−１」を付与し、また、ストレージサブシステム１０６−２のものについては「−２」を付与する。
【０２３１】
未使用容量２０１を取得する要求を受信したシステム制御プログラム１１７−１は、ストレージサブシステム管理テーブル１２０−１を参照し、未使用容量２０１−１をＬＵ設定プログラム１９０１へ送信する（２２０１）。
【０２３２】
ＬＵ設定プログラム１９０１は、ストレージプール管理テーブル１９０２のストレージサブシステム１０６−１に対応するエントリの未使用容量２０１を、取得した未使用容量２０１−１に更新する。また、システム制御プログラム１１７−２へ未使用容量２０１−２を取得する要求を送信する（２２０２）。
【０２３３】
未使用容量２０１を取得する要求を受信したシステム制御プログラム１１７−２は、ストレージサブシステム管理テーブル１２０−２を参照し、未使用容量２０１−２をＬＵ設定プログラム１９０１へ送信する（２２０３）。
【０２３４】
ＬＵ設定プログラム１９０１は、ストレージプール管理テーブル１９０２のストレージサブシステム１０６−２に対応するエントリの未使用容量２０１を、取得した未使用容量２０１−２に更新する。以上の処理で最新のストレージプール管理テーブル１９０２が作成される（２２０４）。
【０２３５】
ＬＵ設定プログラム１９０１は、出力デバイス７０２にＬＶＭ用ＬＵ作成画面２３００を表示する（２２０５）。
【０２３６】
管理者は、Ｃ−ＬＵ１２０１を作成するストレージプールＩＤ２１００を選択し、ＬＶＭ−ＬＵ  ＩＤ１００２とＬＶＭ−ＬＵサイズ１００３とを入力する。次に、管理者は、ＬＶＭ−ＬＵ１２００をＣ−ＬＵ１２０１に分割する方法を選択し、分割方法に必要な情報を入力する。管理者は、入力内容を確認し、ＯＫボタン１００８を操作する。以上の処理によって、ＬＵ設定プログラム１９０１は、ＬＶＭ−ＬＵ１２００を作成するために必要な情報を取得する（２２０６）。
【０２３７】
ＬＵ設定プログラム１９０１は、入力されたＬＵサイズ１００３の内部ＬＵ１２０３を選択されたストレージプールから作成できるか否かを判定する（２２０７）。
【０２３８】
入力されたＬＵサイズ１００３の内部ＬＵ１２０３を選択されたストレージプールから作成できないと判定された場合、ＬＵ設定プログラム１９０１は、容量が不足しているエラーメッセージを出力デバイスへ表示して管理者へ通知し、処理を終了する。
【０２３９】
入力されたＬＵサイズ１００３の内部ＬＵ１２０３を選択されたストレージプールから作成できると判定された場合、ＬＵ設定プログラム１９０１は、内部ＬＵ１２０３を作成するために必要となるＬＶＭ−ＬＵ  ＩＤ３０６、作成するＬＵ数、及びそのサイズを、ＬＵ作成要求に含めてシステム制御プログラム１１７−１へ送信する（２２０８）。
【０２４０】
システム制御プログラム１１７−１は、未使用領域のあるＲＡＩＤグループ１２０２に指定されたサイズの内部ＬＵ１２０３を作成し、ＬＵ管理テーブル１２１−１に登録する。また、システム制御プログラム１１７−１は、ＬＵ作成が完了したことをＬＵ作成応答として、ＬＵ設定プログラム１９０１へ送信する（２２０９）。システム制御プログラム１１７−１が内部ＬＵ１２０３を作成するＲＡＩＤグループ１２０２を決定するときに、負荷管理テーブル１７０３を参照し、ＩＯＰＳの合計が最も低いＲＡＩＤグループ１２０２を選択してもよいし、ＬＶＭ用ＬＵ作成画面２３００で管理者に指定させてもよい。
【０２４１】
システム制御プログラム１１７−１からＬＵ作成応答を受信したＬＵ設定プログラム７０８は、内部ＬＵ１２０３作成するために必要となるＬＶＭ−ＬＵ  ＩＤ３０６、作成するＬＵ数、及びそのサイズを、ＬＵ作成要求に含めてシステム制御プログラム１１７−２へ送信する。
【０２４２】
システム制御プログラム１１７−２は、未使用領域のあるＲＡＩＤグループ１２０２に指定されたサイズのＬＵ１２０３を作成し、ＬＵ管理テーブル１２１−２に登録する。また、システム制御プログラム１１７−２は、ＬＵ作成が完了したことをＬＵ作成応答として、ＬＵ設定プログラム１９０１へ送信する。
【０２４３】
以上の処理によって、ＬＶＭ−ＬＵ１２００を構成する内部ＬＵ１２０３を作成することができる。
【０２４４】
ＬＶＭ−ＬＵ１２００及びストレージプールに高性能用又はアーカイブ用の低性能用などの属性を設定できるようにし、ＬＶＭ−ＬＵ１２００の用途に合わせて適したストレージプールからＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１が作成されるようにしてもよい。また、ＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１を作成できるストレージサブシステム１０６を複数指定できるようにしてもよい。
【０２４５】
図２３の入力例では、管理者は、容量が２００ＧＢで、のＬＶＭ−ＬＵ  ＩＤ３０６が「ＬＶＭ−０」というＬＶＭ−ＬＵ１２００をホスト１００のＬＶＭプログラム５０８に作成させようとしている。
【０２４６】
当該設定でＬＶＭ−ＬＵ１２００が作成されることによって、図２７に示すように、作成されるＬＶＭ−ＬＵ１２００は、ストレージサブシステムＩＤ２００が「ｓｔｏｒａｇｅ０」であるストレージサブシステム１０６−１内に各ＬＵサイズが５０ＧＢの三つの内部ＬＵ１２０３と、ストレージサブシステムＩＤ２００が「ｓｔｏｒａｇｅ１」であるストレージサブシステム１０６−１内にＬＵサイズが５０ＧＢの一つのＬＵから構成される。
【０２４７】
なお、ＬＶＭ−ＬＵ１２００作成処理は、本発明の第１実施形態のＬＶＭ−ＬＵ１２００作成処理と同様であり（図１１参照）、以下の点が異なる。つまり、ステップ１１００のディスカバリによって、イニシエータプログラム５０９は、ターゲットプログラム１１６−１と１１６−２の両方のターゲット情報を取得する。また、選択されたｉＳＣＳＩターゲットがストレージサブシステム１０６−１と１０６−２の両方にある場合、両方のｉＳＣＳＩターゲットへログインする点が異なる。
【０２４８】
ホスト１００が管理Ｉ／Ｆを備え、管理ホスト１０１と通信し、ホスト１００、管理ホスト１０１、及びストレージサブシステム１０６が連携することによってＬＶＭ−ＬＵ１２００を管理者の手間を掛けることなく作成することもできる。
【０２４９】
ＬＵ設定プログラム１９０１は、ストレージサブシステム１０６から内部ＬＵ１２０３の作成完了応答を受信後、イニシエータプログラムにＬＶＭ−ＬＵ  ＩＤ３０６を送信し、ＬＶＭ−ＬＵ１２００を構成するｉＳＣＳＩターゲットにログインする。ログイン完了後、ＬＵ設定プログラム１９０１は、ＬＶＭプログラム５０８にＬＶＭ−ＬＵ  ＩＤ３０６を送信し、同一ＬＶＭ−ＬＵ  ＩＤ３０６を含むターゲットネームを割り当てられているｉＳＣＳＩターゲットからＬＶＭ−ＬＵ１２００を作成する。
【０２５０】
前述した処理によって、管理者は、ＬＶＭ用ＬＵ作成画面２３００で必要な項目を入力するだけでＬＶＭ−ＬＵ１２００を自動で作成できるようになる。
【０２５１】
図２４Ａ及び図２４Ｂは、本発明の第２実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。
【０２５２】
パス変更プログラム１７０１−１は、例えば、ストレージサブシステム１０６−１の電源投入後に、一週間周期で自動的に実行される。
【０２５３】
パス変更プログラム１７０１−１は、システムグループ管理テーブル１７０５−１に登録されている他のストレージサブシステム１０６−２の合計のＩＯＰＳ１８００情報と未使用容量２０１を取得するため、パス変更プログラム１７０１−２へ負荷情報要求を送信する（２４００）。
【０２５４】
パス変更プログラム１７０１−２は、負荷管理テーブル１７０３のＩＯＰＳ１８００の合計値と、ストレージサブシステム管理テーブル１２０の未使用容量２１０を含む負荷情報をパス変更プログラム１７０１−１へ送信する（２４０１）。
【０２５５】
パス変更プログラム１７０１−１は、負荷分散可能な内部ＬＵ１２０３があるか否かを判定する（２４０２）。具体的には、まず、ストレージサブシステム１０６−１とストレージサブシステム１０６−２とのＩＯＰＳ１８００に不均衡が発生しているか否かを判定する。ＩＯＰＳ１８００の不均衡とは、例えば、ＩＯＰＳ１８００のうち、最も高い値が、最も低い値の２倍以上となっている状態のことである。以下、ＩＯＰＳ１８００の最も高い値となっているストレージサブシステム１０６を高負荷ノード、ＩＯＰＳ１８００の最も低い値であるストレージサブシステム１０６を低負荷ノードと呼ぶ。
【０２５６】
負荷分散可能な内部ＬＵ１２０３がない、つまり、ストレージサブシステム１０６−１とストレージサブシステム１０６−２とのＩＯＰＳ１８００に不均衡が発生していないと判定された場合、パス変更プログラム１７０１−１は、処理を終了する。
【０２５７】
負荷分散可能な内部ＬＵ１２０３がある、つまり、ストレージサブシステム１０６−１とストレージサブシステム１０６−２とのＩＯＰＳ１８００に不均衡が発生していると判定された場合、パス変更プログラム１７０１−１は、次に、低負荷ノードの内部ＬＵ１２０３に移動することが可能な、高負荷ノードの内部ＬＵ１２０３があるか否かを判定する。
【０２５８】
具体的には、パス変更プログラム１７０１−１は、まず、高負荷ノードと低負荷ノードとのＩＯＰＳ１８００の差を算出し、高負荷ノードの内部ＬＵ１２０３の中で、内部ＬＵ１２０３のＩＯＰＳ１８００が、前述したＩＯＰＳ１８００の差の値の１／２に最も近いＩＯＰＳ１８００となっている内部ＬＵ１２０３を負荷分散の候補内部ＬＵ１２０３に決定する。
【０２５９】
次に、パス変更プログラム１７０１−１は、決定された候補内部ＬＵ１２０３が存在するストレージサブシステム１０６（高負荷ノード）から低負荷ノードに変更する場合、低負荷ノードに内部ＬＵ１２０３を移動する未使用容量があり、かつ、ＩＯＰＳ１８００の差が変更前の差よりも小さくなるときには、負荷分散可能な内部ＬＵ１２０３があると判定する。パス変更プログラム１７０１−１は、パス変更プログラム１７０１−１は、候補内部ＬＵ１２０３の存在するストレージサブシステム１０６−１をストレージサブシステム１０６−２に変更した状態から、さらに、他に負荷分散が可能な内部ＬＵ１２０３があるか否かを判定するため、ステップ２４０２の処理を繰り返し実行する。全ての候補内部ＬＵ１２０３が検索された後、パス変更プログラム１７０１−１は、ステップ２４０３に進む。
【０２６０】
図１８の場合、ストレージサブシステム１０６−１の合計ＩＯＰＳ１８００が「４５０ＫＩＯＰＳ」であり、ストレージサブシステム１０６−２の合計ＩＯＰＳ１８００が「１６０ＫＩＯＰＳ」であるとすると、不均衡が発生していることになる。ＩＯＰＳ１８００の差の１／２は、「１４５ＫＩＯＰＳ」で、高負荷ノードの内部ＬＵ１２０３−３が候補内部ＬＵ１２０３となる。また、候補内部ＬＵ１２０３の存在するストレージサブシステム１０６−１をストレージサブシステム１０６−２に変更することで差が小さくなるので、パス変更プログラム１７０１−１は、負荷分散可能な内部ＬＵ１２０３があると判定する。パス変更プログラム１７０１−１は、候補内部ＬＵ１２０３の存在するストレージサブシステム１０６−１をストレージサブシステム１０６−２に変更した後、さらに、負荷分散が可能な内部ＬＵ１２０３が存在するか否かを判定する。
【０２６１】
なお、負荷分散が可能な内部ＬＵ１２０３を決定するアルゴリズムは、前述したものに限らず、ストレージサブシステム１０６間のＩＯＰＳ１８００を分散することができればどのアルゴリズムを利用してもよい。
【０２６２】
パス変更プログラム１７０１−１は、移動先ターゲットアドレス作成要求をパス変更プログラム１７０１−２へ送信する（２４０３）。送信される移動先ターゲットアドレス作成要求には、移動元ｉＳＣＳＩターゲットのターゲットネーム３０２、ＬＶＭ−ＬＵ  ＩＤ３０６、ＩＰアドレス３０３、ポート番号３０４、及び内部ＬＵ１２０３がエミュレートしているディスク１１５に関する情報すべてを含んでいる。ディスク１１５に関する情報としては、例えば、サイズ、モデル名やシリアル番号などである。
【０２６３】
移動先ターゲットアドレス作成要求を受信したパス変更プログラム１７０１−２は、未使用容量のあるＲＡＩＤグループ１２０２に、移動元の内部ＬＵ１２０３と同サイズの内部ＬＵ１２０３を作成する。
【０２６４】
ＲＡＩＤグループを選択する基準は、未使用容量が最も多いＲＡＩＤグループ１２０２でもよいし、合計ＩＯＰＳ１８００が最も低いＲＡＩＤグループ１２０２でもよい。なお、作成される内部ＬＵ１２０３がエミュレートするディスク１１５に関する情報は、受信した移動先ターゲットアドレス作成要求に含まれる情報を使用する。
【０２６５】
パス変更プログラム１７０１−２は、作成される内部ＬＵ１２０３に、内部ＬＵＮ３０１、ＩＰアドレス３０３、ポート番号３０４、外部ＬＵＮ３０５を割り当て、ターゲットネーム３０２とＬＶＭ−ＬＵ  ＩＤ３０６とは、受信した移動先ターゲットアドレス作成要求に含まれる情報を使用する。ＩＰアドレス３０３は、ストレージサブシステム１０６−２のホストＩ／Ｆ１０８−３、１０８−４に割り当てられているＩＰアドレスのいずれかを割り当てる。
【０２６６】
パス変更プログラム１７０１−２は、作成された内部ＬＵ１２０３に関する情報をＬＵ管理テーブル１２１−２に登録する。パス変更プログラム１７０１−２は、内部ＬＵ１２０３の作成が完了したこと応答としてパス変更プログラム１７０１−１へ送信する。当該応答には、作成された内部ＬＵ１２０３に割り当てられているＩＰアドレス３０３とポート番号３０４とが含まれている。
【０２６７】
パス変更プログラム１７０１−２から内部ＬＵ１２０３の作成が完了したことを伝える応答を受信したパス変更プログラム１７０１−１は、候補内部ＬＵ１２０３のターゲットアドレスを低負荷ノードへ変更するため、パス変更要求をターゲットプログラム１１６−２に送信する（２４０５）。
【０２６８】
パス変更要求を受信したターゲットプログラム１１６−１は、候補内部ＬＵ１２０３に対応するｉＳＣＳＩターゲットにログインしているイニシエータプログラム５０９へターゲットアドレス変更要求１５００を送信する（２４０６）。
【０２６９】
ターゲットアドレス変更要求１５００を受信したイニシエータプログラム５０９は、候補内部ＬＵ１２０３に対応するｉＳＣＳＩターゲットからのログアウト要求をターゲットプログラム１１６−１へ送信する（２４０７）。
【０２７０】
ログアウト要求を受信したターゲットプログラム１１６−１は、ログアウト処理を実行し、ログアウトが完了したことをログアウト応答としてイニシエータプログラム５０９へ送信する（２４０８）。
【０２７１】
ログアウト応答を受信したイニシエータプログラム５０９は、ステップ２４０７で受信したターゲットアドレス変更要求１５００から変更先のＩＰアドレス３０３とポート番号３０４とを取得する。イニシエータプログラム５０９は、取得されたＩＰアドレス３０３、ポート番号３０４、及びステップ２４０７でログアウトしたターゲットネーム３０２を利用して、低負荷ノードに作成された内部ＬＵ１２０３に対応するｉＳＣＳＩターゲットへログインするようログイン要求をターゲットプログラム１１６−２に送信する（２４０９）。
【０２７２】
ログイン要求を受信したターゲットプログラム１１６−２は、ログイン処理を実行し、ログインが完了したことをログイン応答としてイニシエータプログラム５０９へ送信する（２４１０）。
【０２７３】
ログイン応答を受信したイニシエータプログラム５０９は、ログイン処理を完了する（２４１１）。
【０２７４】
パス変更プログラム１７０１−２は、データコピー処理を実行する（２４１２）。データコピー処理の詳細については、図２６を用いて後述する。
【０２７５】
パス変更プログラム１７０１−２は、コピー元の内部ＬＵ１２０３を削除し、ＬＵ管理テーブル１２１を更新するように要求をパス変更プログラム１７０１−１に送信する（２４１３）。
【０２７６】
ＬＵ管理テーブル１２１を更新の要求を受信したパス変更プログラム１７０１−１は、ＬＵ管理テーブル１２１を更新する（２４１４）。具体的には、ＬＵ管理テーブル１２１に格納されているコピー元の内部ＬＵ１２０３に関する情報を当該ＬＵ管理テーブル１２１から削除する。また、新たに作成されたコピー先の内部ＬＵ１２０３に関する情報をＬＵ管理テーブル１２１に格納する。
【０２７７】
前述した処理によって、高負荷ノードの内部ＬＵ１２０３を低負荷ノードの内部ＬＵ１２０３へコピーし（データコピー処理）２７０１し、また、高負荷ノードの内部ＬＵ１２０３のターゲットアドレス変更２７００をすることができる。
【０２７８】
図２５は、本発明の第２実施形態のコピー状態管理テーブル１７０４の一例を示す説明図である。
【０２７９】
コピー状態管理テーブル１７０４は、コピー領域２５００とコピー状態２５０１とを含む。
【０２８０】
コピー領域２５００は、内部ＬＵ１２０３の記憶領域を一定のサイズで区切った領域のアドレス範囲である。例えば、コピー領域の「００００−０００９」は、内部ＬＵ１２０３のアドレスが００００〜０００９の記憶領域を示している。パス変更プログラム１７０１−２は、コピー領域単位でデータのコピー処理を管理する。
【０２８１】
コピー状態２５０１は、コピー領域２５００に格納されているデータのコピー状態を管理する。具体的には、コピーが完了している場合は、「コピー済み」が格納され、コピーが完了していない場合は、「未コピー」が格納される。
【０２８２】
コピー状態管理テーブル１７０４は、データコピー処理２７０１の前にパス変更プログラム１７０１によって作成される。
【０２８３】
図２６は、本発明の第２実施形態のデータコピー処理２７０１を説明するフローチャートである。
【０２８４】
データコピー処理２７０１は、コピー先のパス変更プログラム１７０１−２がコピー元の内部ＬＵＮ３０１に対応するｉＳＣＳＩターゲットからデータをリードし、読み出されたデータをコピー先の内部ＬＵ１２０３にライトする。
【０２８５】
以下の説明において、パス変更プログラム１７０１−２は、データコピー処理２７０１の前に、ステップ２４０４で受信したコピー元のターゲットネーム３０２、ＩＰアドレス３０３、及びポート番号３０４をイニシエータプログラム１７０２−２へ送信しており、イニシエータプログラム１７０２−２は、コピー元の内部ＬＵ１２０３のｉＳＣＳＩターゲットにログインしているものとする。
【０２８６】
パス変更プログラム１７０１−２は、ホスト１００からコピー先の内部ＬＵ１２０３にライト要求があるか否かを判定する（２６００）。
【０２８７】
ホスト１００からコピー先の内部ＬＵ１２０３にライト要求があるかと判定された場合、パス変更プログラム１７０１−２は、ライト要求に含まれるアドレスから対応するコピー領域２５００を特定し、特定されたコピー領域２５００のコピー状態２５０１が「未コピー」であるか否かを判定する（２６０１）。
【０２８８】
特定されたコピー領域２５００のコピー状態２５０１が「未コピー」でないと判定された場合、パス変更プログラム１７０１−２は、ステップ２６０３に進む。
特定されたコピー領域２５００のコピー状態２５０１が「未コピー」であると判定された場合、パス変更プログラム１７０１−２は、特定されたコピー領域２５００のコピー状態２５０１を「コピー済み」に更新する（２６０２）。
【０２８９】
パス変更プログラム１７０１−２は、コピー元の内部ＬＵ１２０３に格納されているデータを移動先の内部ＬＵ１２０３へライトし（２６０３）、ステップ２６０４に進む。
【０２９０】
ステップ２６００においてホスト１００からコピー先の内部ＬＵ１２０３にライト要求があるかと判定された場合、又は、ステップ２６０３の処理が終了した場合、パス変更プログラム１７０１−２は、ホスト１００からのコピー先の内部ＬＵ１２０３にリード要求があるか否かを判定する（２６０４）。
【０２９１】
ホスト１００からのコピー先の内部ＬＵ１２０３にリード要求があると判定された場合、パス変更プログラム１７０１−２は、リード要求に含まれるアドレスから対応するコピー領域２５００を特定し、特定されたコピー領域２５００のコピー状態２５０１が「未コピー」であるか否かを判定する（２６０５）。
【０２９２】
特定されたコピー領域２５００のコピー状態２５０１が「未コピー」でないと判定された場合、パス変更プログラム１７０１−２は、ステップ２６０８に進む。
【０２９３】
特定されたコピー領域２５００のコピー状態２５０１が「未コピー」であると判定された場合、パス変更プログラム１７０１−２は、特定されたコピー領域２５００のコピー状態２５０１を「コピー済み」に更新する（２６０６）。
【０２９４】
次に、パス変更プログラム１７０１−２は、リード対象のアドレスを含むコピー領域２５００をコピー元の内部ＬＵ１２０３からリードし、読み出されたコピー領域２５００をコピー先の内部ＬＵ１２０３にライトする（２６０７）。
【０２９５】
パス変更プログラム１７０１−２は、リード対象のアドレスからデータをリードしホスト１００へ応答する（２６０８）。
【０２９６】
ステップ２６０４においてホスト１００からのコピー先の内部ＬＵ１２０３にリード要求がないと判定された場合、又は、ステップ２６０７の処理が終了した場合、パス変更プログラム１７０１−２は、コピー領域２００５を若いアドレス順にコピーし、当該コピー領域２００５のコピー状態２５０１を「コピー済み」に更新する（２６０９）。
【０２９７】
パス変更プログラム１７０１−１は、コピー状態管理テーブル１７０４のコピー状態２５０１を参照し、コピー状態２５０１が「未コピー」のコピー領域２５００があるか否かを判定する（２６１０）。
【０２９８】
コピー状態２５０１が「未コピー」のコピー領域２５００があるかと判定された場合、パス変更プログラム１７０１−１は、ステップ２６００へ戻り同様の処理を実行する。
【０２９９】
コピー状態２５０１が「未コピー」のコピー領域２５００がないかと判定された場合、パス変更プログラム１７０１−１は、処理を終了する。
【０３００】
以上の処理によって、ストレージサブシステム１０６間で内部ＬＵ１２０３に対するＩ／Ｏ負荷を分散することができる。また、Ｉ／Ｏ負荷分散処理によって移動されたデータを格納するストレージサブシステム１０６にホスト１００が直接アクセスできるようにパス変更することもできる。
【０３０１】
本発明の第２実施形態では、Ｉ／Ｏ負荷を分散する例を示したが、ＩＯＰＳ１８００が「０」である内部ＬＵ１２０３を一つのＲＡＩＤグループ１２０２に集約することもできる。一つのＲＡＩＤグループ１２０２に集約することで、ホスト１００から集約した内部ＬＵ１２０３にＩ／Ｏ要求が発行されるまで当該ＲＡＩＤグループ１２０２を構成している、すべてのディスク１１５の電源をＯＦＦ又はスタンバイにすることができる。これによって、ストレージサブシステム１０６の節電が可能となる。
【０３０２】
具体的には、ストレージサブシステム１０６は、ＲＡＩＤグループ１２０２ごとの容量と使用容量とをＲＡＩＤグループ管理テーブル１７０６（図２８参照）で管理する。
【０３０３】
さらに、ストレージサブシステム１０６は、図示していないがＬＵ管理テーブル１２１で内部ＬＵ１２０３毎の容量を管理する。
【０３０４】
図２８は、本発明の第２実施形態のＲＡＩＤグループ管理テーブル１７０６の一例を示す説明図である。
【０３０５】
ＲＡＩＤグループ管理テーブル１７０６は、ＲＡＩＤグループＩＤ３００、容量２８００、及び使用容量２８０１を含む。
【０３０６】
容量２８００は、ＲＡＩＤグループＩＤ３００に該当するＲＡＩＤグループ１２０２の全容量を格納する。
【０３０７】
使用容量２８０１は、ＲＡＩＤグループＩＤ３００に該当するＲＡＩＤグループ１２０２において、内部ＬＵ１２０３として割り当てられている容量を格納する。
【０３０８】
パス変更プログラム１７０１は、システムグループ管理テーブル１７０５に登録されている他のストレージサブシステム１０６から負荷管理テーブル１７０３の情報を取得する。
【０３０９】
パス変更プログラム１７０１は、取得された負荷情報からＲＡＩＤグループ１２０２のＩＯＰＳ１８００が「０」ではないＲＡＩＤグループ１２０２に属している内部ＬＵ１２０３のうち、ＩＯＰＳ１８００が「０」である内部ＬＵ１２０３を特定する。
【０３１０】
パス変更プログラムは、特定された内部ＬＵ１２０３のみをＲＡＩＤグループ１２０２に含むように内部ＬＵ１２０３の再配置を行う。ＲＡＩＤグループ１２０２のＩＯＰＳ１８００が「０」であるＲＡＩＤグループ１２０２の未使用領域に特定された内部ＬＵ１２０３を移動できる場合は移動してもよい。
【０３１１】
特定された内部ＬＵ１２０３を移動する先のＲＡＩＤグループ１２０２を決定する場合、データ移動が少なくなるように、例えば、ＩＯＰＳ１８００が「０」でない内部ＬＵ１２０３の使用容量が最も少ないＲＡＩＤグループを優先的に選択するようにしてもよい。
【０３１２】
内部ＬＵ１２０３を移動する処理は、図２４のパス変更処理と同様の処理を用いる。内部ＬＵ１２０３の再配置が完了したときには、ＩＯＰＳ１８００が「０」である内部ＬＵ１２０３のみからなるＲＡＩＤグループを構成するディスク１１５の電源をＯＦＦ、又はスタンバイにすることによって、ストレージサブシステム１０６の節電が可能となる。ホスト１００から、ＲＡＩＤグループ１２０２を構成する内部ＬＵ１２０３に対してＩ／Ｏ要求があった場合、ストレージサブシステム１０６は、ディスクの電源をＯＮ又はスタンバイからの復帰を行い、Ｉ／Ｏ要求を処理する。
【０３１３】
本発明の第２実施形態において、ＬＶＭ−ＬＵ１２００を構成するＣ−ＬＵ１２０１の数を増やすことで、内部ＬＵ１２０３のサイズを小さくでき、移動するデータが小さくなるため、データの移動時間を短縮することができる。
【０３１４】
以上説明したように、本発明の第２実施形態によれば、アプリケーションプログラム５０７がアクセス対象としているＬＶＭ−ＬＵ１２００よりも記憶領域が小さい内部ＬＵ１２０３単位で、複数のストレージサブシステム１０６が接続された計算機システムにおいて、特定のストレージサブシステムのディスクＩ／Ｏ負荷が高まった場合、Ｉ／Ｏ負荷の低いストレージサブシステム１０６へデータの移動及びパスの切り替えの両方を行うことができる。このことによって、負荷分散時の限界Ｉ／Ｏ性能が負荷分散前と比較して低下しない拡張性の高い計算機システムを提供することができる効果がある。
【０３１５】
本発明の第２実施形態では、ストレージサブシステム１０６間の負荷分散方法と計算機システムを示したが、ストレージサブシステム１０６内のＲＡＩＤグループ１２０２間のＩＯＰＳ１８００に関する負荷分散をすることも可能である。
【０３１６】
また、本発明の第２実施形態では、データの移動をストレージネットワーク１０３を経由して行う例を示したが、ストレージネットワーク１０３と管理ネットワーク１０５とは別のストレージサブシステム間を接続するデータの移動用ネットワークを用いてデータの移動を行ってもよい。これによって、ストレージネットワーク１０３の使用帯域を小さくでき、データ移動の影響によるホストのＩ／Ｏ性能低下を抑えることができる。
【０３１７】
本発明の第１及び第２実施形態では、ｉＳＣＳＩの場合について説明したが、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）を用いた場合においても、同様の負荷分散が可能である。この場合、ストレージネットワーク１０３は、ファイバ・チャネル・スイッチを含むＳＡＮが用いられる。また、ストレージサブシステム１０６は、ホストＩ／Ｆ１０８の代わりにＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）を備え、ＨＢＡからＳＡＮに接続される。
【０３１８】
ＦＣを用いたネットワークでは、ストレージサブシステム１０６のＨＢＡ、及びファイバ・チャネル・スイッチの負荷が監視され、ストレージサブシステム１０６のＨＢＡに負荷が発生した場合、他のＨＢＡにパスが変更され、また、ファイバ・チャネル・スイッチに負荷が発生した場合、同様にファイバ・チャネル・スイッチのパスを変更される。これによって、本発明の第１及び第２実施形態と同様の効果を奏する。
【図面の簡単な説明】
【０３１９】
【図１】本発明の第１実施形態の計算機システムの構成例を示すブロック図である。
【図２】本発明の第１実施形態のストレージサブシステム管理テーブルの一例を示す説明図である。
【図３】本発明の第１実施形態のＬＵ管理テーブルの一例を示す説明図である。
【図４】本発明の第１実施形態の負荷管理テーブルの一例を示す説明図である。
【図５】本発明の第１実施形態のホストの構成例を示すブロック図である。
【図６】本発明の第１実施形態のＬＶＭ−ＬＵ管理テーブルの一例を示す説明図である。
【図７】本発明の第１実施形態の管理ホストの構成例を示すブロック図である。
【図８】本発明の第１実施形態のシステムグループ管理テーブルの一例を示す説明図である。
【図９】本発明の第１実施形態のＣ−ＬＵの作成処理のフローチャートである。
【図１０】本発明の第１実施形態のＬＶＭ用ＬＵ作成画面の一例を示す説明図である。
【図１１】本発明の第１実施形態のＬＶＭ−ＬＵ作成処理を説明するフローチャートである。
【図１２】本発明の第１実施形態のＬＶＭ−ＬＵの構成の一例、及び負荷分散処理の一例を示す説明図である。
【図１３】本発明の第１実施形態の負荷監視処理を説明するフローチャートである。
【図１４Ａ】本発明の第１実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。
【図１４Ｂ】本発明の第１実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。
【図１５】本発明の第１実施形態のターゲットアドレス変更要求の構成例を示す説明図である。
【図１６】本発明の第１実施形態のパス変更処理後のＬＵ管理テーブルを示す説明図である。
【図１７】本発明の第２実施形態のストレージサブシステムの構成例を示すブロック図である。
【図１８】本発明の第２実施形態の負荷管理テーブルの一例を示す説明図である。
【図１９】本発明の第２実施形態の管理ホストの構成例を示すブロック図である。
【図２０】本発明の第２実施形態のシステムグループ管理テーブル７０９の一例を示す説明図である。
【図２１】本発明の第２実施形態のストレージプール管理テーブル１９０２の一例を示す説明図である。
【図２２】本発明の第２実施形態のＬＶＭ−ＬＵ作成処理を説明するフローチャートである。
【図２３】本発明の第２実施形態のＬＶＭ用ＬＵ作成画面の一例を示す説明図である。
【図２４Ａ】本発明の第２実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。
【図２４Ｂ】本発明の第２実施形態のｉＳＣＳＩターゲットのパス変更処理を説明するフローチャートである。
【図２５】本発明の第２実施形態のコピー状態管理テーブルの一例を示す説明図である。
【図２６】本発明の第２実施形態のデータコピー処理を説明するフローチャートである。
【図２７】本発明の第２実施形態の計算機システムの構成例、及び負荷分散処理の一例を示す説明図である。
【図２８】本発明の第２実施形態のＲＡＩＤグループ管理テーブルの一例を示す説明図である。
【符号の説明】
【０３２０】
１００  ホスト
１０１  管理ホスト
１０３  ストレージネットワーク
１０５  管理ネットワーク
１０６  ストレージサブシステム
１０７  コントローラ
１０８  ホストＩ／Ｆ
１０９  管理Ｉ／Ｆ
１１０  ＣＰＵ
１１１  キャッシュメモリ
１１２  主メモリ
１１３  ディスクＩ／Ｆ
１１４  バス
１１５  ディスク
１２００  ＬＶＭ−ＬＵ
１２０３  内部ＬＵ
【図１】
2010079626.tif 000003
【図２】
2010079626.tif 000004
【図３】
2010079626.tif 000005
【図４】
2010079626.tif 000006
【図５】
2010079626.tif 000007
【図６】
2010079626.tif 000008
【図７】
2010079626.tif 000009
【図８】
2010079626.tif 000010
【図９】
2010079626.tif 000011
【図１０】
2010079626.tif 000012
【図１１】
2010079626.tif 000013
【図１２】
2010079626.tif 000014
【図１３】
2010079626.tif 000015
【図１４Ａ】
2010079626.tif 000016
【図１４Ｂ】
2010079626.tif 000017
【図１５】
2010079626.tif 000018
【図１６】
2010079626.tif 000019
【図１７】
2010079626.tif 000020
【図１８】
2010079626.tif 000021
【図１９】
2010079626.tif 000022
【図２０】
2010079626.tif 000023
【図２１】
2010079626.tif 000024
【図２２】
2010079626.tif 000025
【図２３】
2010079626.tif 000026
【図２４Ａ】
2010079626.tif 000027
【図２４Ｂ】
2010079626.tif 000028
【図２５】
2010079626.tif 000029
【図２６】
2010079626.tif 000030
【図２７】
2010079626.tif 000031
【図２８】
2010079626.tif 000032