(57)【要約】【課題】ストレージ仮想化装置の間での処理速度の差を小さくする。【解決手段】  第１のストレージ仮想化装置は、ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中で動作する。第１のストレージ仮想化装置は、受信部、負荷計算部、選択部、処理部を備える。受信部は、第１のストレージ仮想化装置に割り振られた書き込み命令、書き込み命令で書き込むデータ、及び、システム中の他のストレージ仮想化装置の稼動状況を受信する。負荷計算部は、第１のストレージ仮想化装置が書き込み命令を処理するときの負荷を表す指標値を計算する。選択部は、指標値が閾値を超えると、書き込み命令の実行を依頼する第２のストレージ仮想化装置を、稼動状況を用いて選択する。処理部は、第２のストレージ仮想化装置に、書き込み命令とデータの送信処理を行う。【選択図】図１
2015204078.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中の第１のストレージ仮想化装置として動作するストレージ仮想化装置であって、
前記第１のストレージ仮想化装置に割り振られた書き込み命令、前記書き込み命令で書き込むデータ、及び、前記システム中の他のストレージ仮想化装置の稼動状況を受信する受信部と、
前記第１のストレージ仮想化装置が前記書き込み命令を処理するときの負荷を表す指標値を計算する負荷計算部と、
前記指標値が閾値を超えると、前記書き込み命令の実行を依頼する第２のストレージ仮想化装置を、前記稼動状況を用いて選択する選択部と、
前記第２のストレージ仮想化装置に、前記書き込み命令と前記データの送信処理を行う処理部と、
を備えることを特徴とするストレージ仮想化装置。
【請求項２】
前記選択部は、前記システム中の他のストレージ仮想化装置の稼動状況が低いストレージ仮想化装置ほど選択されやすくなるように選択する
ことを特徴とする請求項１に記載のストレージ仮想化装置。
【請求項３】
前記処理部は、前記第１のストレージ仮想化装置で得られた指標値が閾値以下の場合、前記データを、前記第１のストレージ仮想化装置のアクセス先の物理ストレージ装置に格納することにより、前記書き込み命令を処理する
ことを特徴とする請求項１または２に記載のストレージ仮想化装置。
【請求項４】
前記指標値は、前記処理部で実行中の命令の処理にかかる処理量と、前記第１のストレージ仮想化装置と前記第１のストレージ仮想化装置のアクセス先の物理ストレージ装置の間で送受信されるデータの量である
ことを特徴とする請求項１〜３の何れかに記載のストレージ仮想化装置。
【請求項５】
ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中の第１のストレージ仮想化装置として動作するストレージ仮想化装置が、
前記第１のストレージ仮想化装置に割り振られた書き込み命令、前記書き込み命令で書き込むデータ、及び、前記システム中の他のストレージ仮想化装置の稼動状況を受信し、
前記第１のストレージ仮想化装置が前記書き込み命令を処理するときの負荷を表す指標値を計算し、
前記指標値が閾値を超えると、前記書き込み命令の実行を依頼する第２のストレージ仮想化装置を、前記稼動状況を用いて選択し、
前記第２のストレージ仮想化装置に、前記書き込み命令と前記データの送信処理を行う
ことを特徴とするストレージ仮想化装置の制御方法。
【請求項６】
前記システム中の他のストレージ仮想化装置の稼動状況が低いストレージ仮想化装置ほど選択されやすくなるように選択する
ことを特徴とする請求項５に記載のストレージ仮想化装置の制御方法。
【請求項７】
前記第１のストレージ仮想化装置で得られた指標値が閾値以下の場合、前記第１のストレージ仮想化装置が、前記データを、前記第１のストレージ仮想化装置のアクセス先の物理ストレージ装置に格納することにより、前記書き込み命令を処理する
ことを特徴とする請求項５または６に記載のストレージ仮想化装置の制御方法。
【請求項８】
前記指標値は、前記処理部で実行中の命令の処理にかかる処理量と、前記第１のストレージ仮想化装置と前記第１のストレージ仮想化装置のアクセス先の物理ストレージ装置の間で送受信されるデータの量である
ことを特徴とする請求項５〜７の何れかに記載のストレージ仮想化装置の制御方法。
【請求項９】
ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中の第１のストレージ仮想化装置として動作するストレージ仮想化装置に、
前記第１のストレージ仮想化装置に割り振られた書き込み命令、前記書き込み命令で書き込むデータ、及び、前記システム中の他のストレージ仮想化装置の稼動状況を受信し、
前記第１のストレージ仮想化装置が前記書き込み命令を処理するときの負荷を表す指標値を計算し、
前記指標値が閾値を超えると、前記書き込み命令の実行を依頼する第２のストレージ仮想化装置を、前記稼動状況を用いて選択し、
前記第２のストレージ仮想化装置に、前記書き込み命令と前記データの送信処理を行う
処理を行わせることを特徴とする制御プログラム。
【請求項１０】
前記第１のストレージ仮想化装置に、
前記システム中の他のストレージ仮想化装置の稼動状況が低いストレージ仮想化装置ほど選択されやすくなるように選択する
処理を行わせることを特徴とする請求項９に記載の制御プログラム。
【請求項１１】
前記第１のストレージ仮想化装置に、
前記第１のストレージ仮想化装置で得られた指標値が閾値以下の場合、前記データを、前記第１のストレージ仮想化装置のアクセス先の物理ストレージ装置に格納することにより、前記書き込み命令を処理する
処理を行わせることを特徴とする請求項９または１０に記載の制御プログラム。
【請求項１２】
前記指標値は、前記処理部で実行中の命令の処理にかかる処理量と、前記第１のストレージ仮想化装置と前記第１のストレージ仮想化装置のアクセス先の物理ストレージ装置の間で送受信されるデータの量である
ことを特徴とする請求項９〜１１の何れかに記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ストレージシステムに関する。
【背景技術】
【０００２】
ストレージシステムは、ホストコンピュータ、ファイバチャネルスイッチ（ＦＣスイッチ）、物理ストレージ装置、ストレージ仮想化装置などを複数台備える。ホストコンピュータは、ストレージ仮想化装置へのデータの書き込み命令を出力する。ホストコンピュータとファイバチャネルスイッチは接続されており、ホストコンピュータから出力された命令は、ファイバチャネルスイッチに通知される。ファイバチャネルスイッチは、複数のストレージ仮想化装置に接続されている。ファイバチャネルスイッチは、複数のストレージ仮想化装置中の１つのストレージ仮想化装置に、受信した命令を送る。各ストレージ仮想化装置は、複数の物理ストレージ装置の記憶領域の一部または全部を組み合わせて、仮想的なストレージ装置として動作する。各ストレージ仮想化装置は、仮想的なストレージ装置をホストコンピュータにアクセス可能に提供する。ホストコンピュータからストレージ仮想化装置にアクセスが行われた際、ストレージ仮想化装置は、ストレージ仮想化装置のアクセス領域に対応する物理的なストレージ装置の記憶領域にアクセスする。
【０００３】
ストレージシステムにおいて、１つのストレージ仮想化装置にアクセスが集中することは、処理の遅延を招くため、好ましくない。そのため、ファイバチャネルスイッチは、例えば、ラウンドロビンで、ホストコンピュータからのアクセスを、複数のストレージ仮想化装置に振り分ける。ラウンドロビンにより、１台のストレージ仮想化装置にアクセスが集中しない。
【０００４】
ファイバチャネルスイッチの技術として、ファイバチャネルスイッチ内で、仮想ポートと複数の物理ポートを関連づけ、転送する仮想ポート先をコントロールする技術が知られている（例えば、特許文献１参照）。
【０００５】
負荷分散に関する技術として、物理ストレージ装置の各種パフォーマンスデータを収集し、総合メトリックスを算出し、物理ストレージ装置間でロードバランシングをする技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−７６５８２号公報
【特許文献２】特表２００８−５２１１４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した背景技術では以下のような問題がある。
ストレージシステムに設置される物理ストレージ装置の性能は、一律に同様ではない。処理速度の遅い物理ストレージ装置と通信するストレージ仮想化装置は、他のストレージ仮想化装置に比べて処理速度が遅くなるという問題がある。
【０００８】
１つの側面において、本発明の目的は、ストレージ仮想化装置の間での処理速度の差を小さくすることである。
【課題を解決するための手段】
【０００９】
第１のストレージ仮想化装置は、ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中で動作する。第１のストレージ仮想化装置は、受信部、負荷計算部、選択部、処理部を備える。受信部は、第１のストレージ仮想化装置に割り振られた書き込み命令、書き込み命令で書き込むデータ、及び、システム中の他のストレージ仮想化装置の稼動状況を受信する。負荷計算部は、第１のストレージ仮想化装置が書き込み命令を処理するときの負荷を表す指標値を計算する。選択部は、指標値が閾値を超えると、書き込み命令の実行を依頼する第２のストレージ仮想化装置を、稼動状況を用いて選択する。処理部は、第２のストレージ仮想化装置に、書き込み命令とデータの送信処理を行う。
【発明の効果】
【００１０】
ストレージ仮想化装置の間での処理速度の差が、小さくなる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るストレージシステムの例を説明する図である。
【図２】ストレージ仮想化装置の構成の例を説明する図である。
【図３】書き込み命令を受信したストレージ仮想化装置の処理の例を説明するフローチャートである。
【図４Ａ】選択部から選択されたストレージ仮想化装置の処理の例を説明するフローチャートである。
【図４Ｂ】選択部から選択されたストレージ仮想化装置が書き込み中のデータの共有先となる場合の処理の例を説明するフローチャートである。
【図５】ストレージ仮想化装置の負荷情報収集処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態に係るストレージシステムの例を説明する図である。ストレージシステム１００は、ホストコンピュータ１１０、ファイバチャネルスイッチ１２０（１２０ａと１２０ｂ）、物理ストレージ装置１３０、ストレージ仮想化装置１４０を有する。図１の例では、ストレージシステム１００は、複数のホストコンピュータ１１０−１〜１１０−ｎを有する。図１の例では、物理ストレージ装置１３０（１３０−１〜１３０−Ｉ）と、ストレージ仮想化装置１４０（１４０−１〜１４０―Ｒ）も複数、システム１００中に含まれている。なお、ホストコンピュータ、ストレージ仮想化装置、物理ストレージ装置の数は限定されない。
【００１３】
ホストコンピュータ１１０は、ファイバチャネルスイッチ１２０に接続されている。ホストコンピュータ１１０は、ファイバチャネルスイッチ１２０に、ストレージ仮想化装置１４０へのデータの書き込み命令と、ストレージ仮想化装置１４０に書き込むデータを出力する。ファイバチャネルスイッチ１２０は、ストレージ仮想化装置１４０と接続されている。ファイバチャネルスイッチ１２０は、ホストコンピュータ１１０から出力された命令を受信する。ファイバチャネルスイッチ１２０は、ラウンドロビンでストレージ仮想化装置１４０を選択し、受信した命令を選択したストレージ仮想化装置１４０に送る。すなわち、ファイバチャネルスイッチ１２０は、ストレージシステム中の複数のストレージ仮想化装置１４０の間でホストコンピュータ１１０から出された命令の処理回数が等しくなるように調整する調整装置である。
【００１４】
ストレージ仮想化装置１４０は、各々で、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、ビットマップ、インターフェイスを備える。ビットマップは、ストレージ仮想化装置１４０のキャッシュ領域を複数の領域に分割し、分割された領域毎にビットを対応づけた管理情報である。ビットマップは、例えば、ビットのＯＮとＯＦＦによってデータが既に書き込み済みか、書き込み未実施かを管理する。ビットがＯＮの状態は、ストレージ仮想化装置１４０に格納されたデータが、物理ストレージ装置に書き込まれていない状態である。一方、ビットがＯＦＦの状態は、ストレージ仮想化装置１４０に格納されたデータが、物理ストレージ装置に書き込まれた状態である。
【００１５】
次に、ストレージ仮想化装置の詳細な説明をする。図２は、ストレージ仮想化装置の構成の例を説明する図である。ストレージ仮想化装置１４０は、負荷計算部２１０、選択部２２０、ビットマップ管理部２３０、仮想化部２４０、処理部２５０、受信部２９０を備える。更に、ストレージ仮想化装置１４０は、キャッシュ２６０、ビットマップ２７０、記憶部２８０を有する。負荷計算部２１０、選択部２２０、ビットマップ管理部２３０、仮想化部２４０、処理部２５０で実行される各処理は、ＣＰＵで行われる。受信部２９０は、インターフェイスである。仮想化部２４０は、複数の物理ストレージ装置の記憶領域の一部または全部を組み合わせて、ストレージ仮想化装置を、仮想的なストレージ装置として動作させる。受信部２９０は、ホストコンピュータ１１０で生成された１つ以上のストレージ仮想化装置１４０への書き込み命令と、書き込み命令による書き込み対象のデータとを受信する。
【００１６】
負荷計算部２１０は、ＣＰＵ使用率監視部２１１、ネットワーク監視部２１２、キャッシュ使用率監視部２１３を有する。ＣＰＵ使用率監視部２１１は、ストレージ仮想化装置のＣＰＵ使用率を監視する。ネットワーク監視部２１２は、ストレージ仮想化装置と物理ストレージ装置の間のネットワークの負荷を監視する。ネットワーク監視部２１２が監視するネットワークの負荷は、例えば、ストレージ仮想化装置が物理ストレージ装置へ書き込むデータの量である。キャッシュ使用率監視部２１３は、ストレージ仮想化装置のキャッシュ使用率を監視する。負荷計算部２１０は、ストレージ仮想化装置の負荷を表す指標値を計算する。ストレージ仮想化装置の負荷を表す指標値は、例えば、ＣＰＵ使用率、ネットワークの負荷情報、キャッシュ使用率などのデータである。負荷計算部２１０は、更に、ストレージ仮想化装置の負荷を表す指標値を全ストレージ仮想化装置１４０間で、定期的に共有する。全ストレージ仮想化装置１４０間でストレージ仮想化装置の負荷を表す指標値を共有することで、他のストレージ仮想化装置の稼動状況を共有できる。負荷計算部２１０は、ネットワークの負荷情報を、ストレージ仮想化装置１４０と物理ストレージ装置１３０間に接続されているファイバチャネルスイッチ１２０から収集してもよい。
【００１７】
記憶部２８０は、全ストレージ仮想化装置１４０間で共有した各ストレージ仮想化装置の負荷を表す指標値を、共有元ストレージ仮想化装置１４０の識別子と対応付けて記憶する。選択部２２０は、書き込み命令を受信した際のＣＰＵ使用率又はネットワークの負荷を示す値が、所定の閾値を超えている場合、ＣＰＵ使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置を選択する。一方、選択部２２０は、書き込み命令を受信した際のＣＰＵ使用率及びネットワークの負荷を示す値が、所定の閾値を超えていない場合、キャッシュ使用率の低いストレージ仮想化装置を選択する。ビットマップ管理部２３０は、ビットマップ２７０の各ビットのＯＮ、ＯＦＦを管理する。処理部２５０は、書き込み命令を受信し、物理ストレージ装置への書き込み処理行う。記憶部２８０、ビットマップ２７０、キャッシュ２６０は、メモリで実現される。
【００１８】
以下に、本実施形態に係るストレージ仮想化装置１４０の処理の例を説明する。図１のストレージシステム１００では、ストレージ仮想化装置１４０−１がファイバチャネルスイッチ１２０から命令を受信している。
【００１９】
（１）ストレージ仮想化装置１４０−１の受信部２９０は、ホストコンピュータ１１０からの書き込み命令を、ファイバチャネルスイッチ１２０から受け取る。
【００２０】
（２）ストレージ仮想化装置１４０−１の処理部２５０は、物理ストレージ装置１３０への書き込みデータを、キャッシュに格納する。ストレージ仮想化装置１４０−１のビットマップ管理部２３０は、ストレージ仮想化装置１４０−１中のビットマップの書き込み対象の物理ストレージ装置領域に対応したビットをＯＮにする。
【００２１】
（３）ストレージ仮想化装置１４０−１の負荷計算部２１０は、全ストレージ仮想化装置１４０（１４０−１〜１４０−Ｒ）のＣＰＵ使用率と、ネットワークの負荷情報を収集する。ネットワークの負荷を示す値は、例えば、ストレージ仮想化装置が書き込みをするデータ量である。ストレージ仮想化装置１４０（１４０−１〜１４０−Ｒ）は、各々で、ＣＰＵ使用率と、キャッシュ使用率とを測定している。また、ストレージ仮想化装置１４０（１４０−１〜１４０−Ｒ）は、各々で、接続されている物理ストレージ装置１３０とのネットワークの負荷を監視している。更に、ストレージ仮想化装置１４０−１の負荷計算部２１０は、ストレージ仮想化装置の負荷を表す指標値を計算する。ストレージ仮想化装置の負荷を表す指標値は、例えば、ＣＰＵ使用率、ネットワークの負荷情報、キャッシュ使用率などのデータである、
ファイバチャネルスイッチ１２０は、ストレージシステム中の複数のストレージ仮想化装置１４０の間でホストコンピュータ１１０から出された命令の処理回数が等しくなるように調整する。しかしながら、ファイバチャネルスイッチ１２０は、ホストコンピュータ１１０から出された書き込み命令による処理量を考慮していない。また、ファイバチャネルスイッチ１２０では、物理ストレージ装置間の応答時間の差も考慮されていない。そのため、本実施形態に係るストレージ仮想化装置は、ホストコンピュータ１１０から出された書き込み命令による処理量や、物理ストレージ装置間の性能の差を考慮するために、（４）、（５）の処理をする。
【００２２】
（４）ストレージ仮想化装置１４０−１の選択部２２０は、自身のＣＰＵ使用率が、第１の閾値よりも大きいか判定する。第１の閾値は、ストレージ仮想化装置１４０−１が物理ストレージ装置への書き込み処理速度に影響が出るＣＰＵ使用率を使用すればよい。
【００２３】
（５）ストレージ仮想化装置１４０−１の選択部２２０は、ネットワークの負荷を示す値が、第２の閾値よりも大きいか判定する。第２の閾値は、ストレージ仮想化装置１４０−１が物理ストレージ装置への書き込み処理速度に影響が出るネットワークの負荷を示す値を使用すればよい。なお、（４）（５）の処理は、逆の順番で処理されてもよく、並列に処理されてもよい。
【００２４】
（４）、（５）の判定の結果、ＣＰＵ使用率又はネットワークの負荷を示す値が、所定の閾値を超えている場合、ストレージ仮想化装置１４０は、（Ａ６）〜（Ａ１３）に示す処理を行う。
【００２５】
（Ａ６）ストレージ仮想化装置１４０−１中の選択部２２０は、ストレージ仮想化装置１４０−１自身が受けた書き込み命令を、ストレージ仮想化装置１４０−１の代わりに実行するストレージ仮想化装置１４０を選択する。このとき、選択部２２０は、実行を要求する先のストレージ仮想化装置として、ＣＰＵ使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置を選択する。つまり、選択部２２０が選択するストレージ仮想化装置は、ＣＰＵ使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置ほど、選択される可能性が高いものとする。一例として、ＣＰＵ使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置１４０−２が選択されたとする。
【００２６】
（Ａ７）ストレージ仮想化装置１４０−１の処理部２５０は、ストレージ仮想化装置１４０−２に、物理ストレージ装置１３０への書き込みデータを送信する。ストレージ仮想化装置１４０−２は、キャッシュに受信した書き込みデータを格納する。
【００２７】
（Ａ８）ストレージ仮想化装置１４０−２のビットマップ管理部２３０は、ストレージ仮想化装置１４０−２中のビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＮにする。ビットマップのビットがＯＮになることで、ストレージ仮想化装置１４０−２は、書き込み処理の待機状態となる。
【００２８】
（Ａ９）ストレージ仮想化装置１４０−２の処理部２５０は、書き込み命令を出したホストコンピュータ１１０に、書き込み処理が完了したことを通知する。
【００２９】
（Ａ１０）ストレージ仮想化装置１４０−１の処理部２５０は、ストレージ仮想化装置１４０−２に、ホストコンピュータ１１０からの書き込み命令を転送する。
【００３０】
（Ａ１１）ストレージ仮想化装置１４０−２の処理部２５０は、書き込み命令を受信すると、物理ストレージ装置１３０への書き込み処理を行う。
【００３１】
（Ａ１２）ストレージ仮想化装置１４０−２のビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする。ストレージ仮想化装置１４０−２の処理部２５０は、書き込み処理が完了したことをストレージ仮想化装置１４０−１に通知する。
【００３２】
（Ａ１３）ストレージ仮想化装置１４０−１のビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする。
【００３３】
（Ａ６）〜（Ａ１３）の処理では、ストレージ仮想化装置１４０−１は、ファイバチャネルスイッチ１２０から受信した物理ストレージ装置への書き込み処理を、ストレージ仮想化装置１４０−１自身で処理をしない。そのため、ストレージ仮想化装置１４０−１の負荷は上がらない。このように、負荷が比較的低いストレージ仮想化装置１４０−２が、ストレージ仮想化装置１４０−１の代わりに書き込み処理を行うことで、処理量や物理ストレージ装置の処理速度の差に起因するストレージ仮想化装置１４０間での負荷の差を小さくする。
【００３４】
次に、（４）、（５）の判定の結果、ＣＰＵ使用率及びネットワークの負荷を示す値が、所定の閾値を超えていない場合、ストレージ仮想化装置１４０は、（Ｂ６）〜（Ｂ１３）に示す処理を行う。この場合、ホストコンピュータ１１０からの命令を受けたストレージ仮想化装置１４０自身が、ファイバチャネルスイッチ１２０から受信した物理ストレージ装置への書き込み処理を行う。
【００３５】
（Ｂ６）ストレージ仮想化装置１４０−１の負荷計算部２１０は、全ストレージ仮想化装置１４０（１４０−１〜１４０−Ｒ）のキャッシュ使用率情報を収集する。
【００３６】
（Ｂ７）ストレージ仮想化装置１４０−１の選択部２２０は、書き込み対象のデータの共有先として、キャッシュ使用率の低いストレージ仮想化装置を選択する。なお、キャッシュ使用率が低いストレージ仮想化装置ほど、選択される可能性が高い。（Ｂ７）の処理では、一例として、キャッシュ使用率の低いストレージ仮想化装置１４０−３が選択される。
【００３７】
（Ｂ８）ストレージ仮想化装置１４０−１の処理部２５０は、ストレージ仮想化装置１４０−３に、物理ストレージ装置１３０への書き込みデータを送信する。ストレージ仮想化装置１４０−３の処理部２５０は、受信したデータを、キャッシュに格納する。
【００３８】
（Ｂ９）ストレージ仮想化装置１４０−３のビットマップ管理部２３０は、ストレージ仮想化装置１４０−３中のビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＮにする。
【００３９】
（Ｂ１０）ストレージ仮想化装置１４０−１の処理部２５０は、書き込み命令を出したホストコンピュータ１１０に、書き込み処理が完了したことを通知する。
【００４０】
（Ｂ１１）ストレージ仮想化装置１４０−１の処理部２５０は、物理ストレージ装置１３０への書き込み処理を行う。
【００４１】
（Ｂ１２）ストレージ仮想化装置１４０−１のビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする。ストレージ仮想化装置１４０−１の処理部２５０は、書き込み処理が完了したことをストレージ仮想化装置１４０−３に通知する。
【００４２】
（Ｂ１３）ストレージ仮想化装置１４０−３のビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする。
【００４３】
以上、述べたように、ＣＰＵ使用率又はネットワークの負荷を示す値が、所定の閾値を超えた場合、（Ａ６）〜（Ａ１２）の処理を行うことで、処理速度が遅くなっているストレージ仮想化装置の処理を、処理速度が速いストレージ仮想化装置に渡すことができる。
【００４４】
図３は、書き込み命令を受信したストレージ仮想化装置の処理の例を説明するフローチャートである。受信部２９０は、ホストコンピュータ１１０からの書き込み命令を、ファイバチャネルスイッチ１２０を経由して受け取る（ステップＳ１０１）。処理部２５０は、物理ストレージ装置１３０への書き込みデータを、キャッシュに格納する（ステップＳ１０２）。ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＮにする（ステップＳ１０３）。負荷計算部２１０は、全ストレージ仮想化装置１４０（１４０−１〜１４０−Ｒ）のＣＰＵ使用率と、ネットワークの負荷情報を収集する。更に、負荷計算部２１０は、ストレージ仮想化装置の負荷を表す指標値を計算する（ステップＳ１０４）。負荷計算部２１０は、ＣＰＵ使用率が、第１の閾値よりも大きいか判定する。又、負荷計算部２１０は、ネットワークの負荷を示す値が、第２の閾値よりも大きいか判定する（ステップＳ１０５）。
【００４５】
ＣＰＵ使用率又はネットワークの負荷を示す値の少なくとも一方が、所定の閾値を超えている場合、選択部２２０は、書き込み処理が可能なストレージ仮想化装置があるかを判定する（ステップＳ１０６、ステップＳ１０５でＹＥＳ）。選択部２２０は、ＣＰＵ使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置を選択する（ステップ１０７、ステップＳ１０６でＹＥＳ）。処理部２５０は、選択部２２０が選択したストレージ仮想化装置に書き込みデータ及び書き込み命令を送信する（ステップＳ１０８）。選択部２２０が選択したストレージ仮想化装置が、物理ストレージ装置への書き込み処理を行い、物理ストレージ装置への書き込み処理が完了した通知を受信すると、ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする（ステップＳ１０９）。
【００４６】
一方、ＣＰＵ使用率とネットワーク負荷情報のいずれも閾値以下である場合、負荷計算部２１０は、全ストレージ仮想化装置１４０のキャッシュ使用率の情報を収集する。選択部２２０は、全ストレージ仮想化装置１４０から、キャッシュ使用率が低いストレージ仮想化装置を選択する（ステップ１１０、ステップＳ１０５でＮＯ、ステップＳ１０６でＮＯ）。処理部２５０は、選択部２２０が選択したストレージ仮想化装置に書き込みデータを送信する（ステップＳ１１１）。処理部２５０は、書き込み命令を出したホストコンピュータ１１０に、書き込み処理が完了したことを通知する（ステップＳ１１２）。処理部２５０は、物理ストレージ装置１３０への書き込み処理を行う（ステップＳ１１３）。処理部２５０は、書き込み処理が完了したことを書き込み対象のデータの共有先となっているストレージ仮想化装置１４０に通知する（ステップＳ１１４）。ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする（ステップＳ１１５）。ステップＳ１０９又はステップＳ１１５の処理が終了すると、書き込み命令を受信したストレージ仮想化装置は、書き込み処理を終了する。
【００４７】
図４Ａは、選択部から選択されたストレージ仮想化装置の処理の例を説明するフローチャートである。図４Ａは、ＣＰＵ使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置として選択されたことにより、他のストレージ仮想化装置１４０の処理を代理で行うストレージ仮想化装置内の処理の例である。処理部２５０は、書き込み処理が可能かどうかの確認の問い合わせを受信する（ステップＳ２０１）。なお、Ｓ２０１で受信した問い合わせは、書き込み処理の代理処理を要求する側のストレージ仮想化装置１４０のＳ１０６の処理で出された問い合わせに相当する。選択部２２０は、ＣＰＵ使用率と第１の閾値の比較結果及びネットワークの負荷と第２の閾値の比較結果を用いて、書き込み処理に対応が可能かを判定する（ステップＳ２０２）。処理部２５０は、書き込み処理が可能であることを、書き込み処理の代理処理で要求する側のストレージ仮想化装置１４０に通知する（ステップＳ２０３、ステップＳ２０２でＹＥＳ）。受信部２９０は、書き込みデータを、書き込み命令を受信したストレージ仮想化装置から受信する（ステップＳ２０４）。なお、Ｓ２０４で受信した書き込みデータは、書き込み処理の代理処理で要求する側のストレージ仮想化装置１４０のＳ１０８の処理で送信された書き込みデータに相当する。処理部２５０は、キャッシュに受信したデータを格納する（ステップＳ２０５）。ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＮにする（ステップＳ２０６）。処理部２５０は、書き込み命令を出したホストコンピュータ１１０に、書き込み処理が完了したことを通知する（ステップＳ２０７）。
【００４８】
処理部２５０は、物理ストレージ装置１３０への書き込み処理を行う（ステップＳ２０８）。処理部２５０は、書き込み処理が完了したことを、書き込み命令を受信したストレージ仮想化装置に通知する（ステップＳ２０９）。ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする（ステップＳ２１０）。処理部２５０は、書き込み処理ができないことを、書き込み処理の代理処理で要求する側のストレージ仮想化装置１４０に通知する（ステップＳ２１１、ステップＳ２０２でＮＯ）。ステップＳ２１１又はステップＳ２１０処理が終了すると、ストレージ仮想化装置は書き込み処理を終了する。
【００４９】
図４Ｂは、選択部から選択されたストレージ仮想化装置が書き込み中のデータの共有先となる場合の処理の例を説明するフローチャートである。受信部２９０は、書き込みデータを、ホストコンピュータから書き込み命令を受信したストレージ仮想化装置から受信する（ステップＳ３０１、ステップＳ１１１に対応）。処理部２５０は、キャッシュに受信したデータを格納する（ステップＳ３０２）。ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＮにする（ステップＳ３０３）。受信部２９０は、書き込み命令を受信したストレージ仮想化装置から、書き込み完了の通知を受信する（ステップＳ３０４、ステップＳ１１４に対応）。ビットマップ管理部２３０は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをＯＦＦにする（ステップＳ３０５）。ステップＳ３０５の処理が終了すると、ストレージ仮想化装置は、処理を終了する。
【００５０】
図５は、ストレージ仮想化装置の負荷情報収集処理の例を説明するフローチャートである。負荷情報収集処理は、システム内の全てのストレージ仮想化装置で行われる。ＣＰＵ使用率監視部２１１は、ＣＰＵ使用率情報を収集する（ステップＳ４０１）。ネットワーク監視部２１２は、ストレージ仮想化装置が物理ストレージ装置への書き込みをするデータ量を収集する（ステップＳ４０２）。キャッシュ使用率監視部２１３は、キャッシュ使用率情報を収集する（ステップＳ４０３）。負荷計算部２１０は、ＣＰＵ使用率、ネットワークの負荷情報、キャッシュ使用率などのデータである、ストレージ仮想化装置の負荷を表す指標値を計算し、全ストレージ仮想化装置に送信する（ステップＳ４０４）。処理部２５０は、一定時間待機し、処理をＳ４０１に戻す。
【００５１】
以上、説明したように、実施形態にかかる方法では、ＣＰＵ使用率又はネットワークの負荷を示す値が、所定の閾値を超えており、処理速度が遅くなっているストレージ仮想化装置の処理を、処理速度が速いストレージ仮想化装置に渡すことができる。
【００５２】
＜その他＞
本実施形態のストレージシステムは、全ストレージ仮想化装置１４０のＣＰＵ使用率と、ネットワークの負荷情報を用いて、ストレージシステムを拡張したほうがよいかを判定することもできる。ストレージ仮想化装置は、何れのストレージ仮想化装置においても、ＣＰＵ使用率が第１の閾値を上回る状態とネットワーク負荷が第２の閾値を超えている状態のうちの１つ以上を満たす場合、システムの拡張要求を管理端末に通知する。この場合、ストレージシステム全体が過負荷な状態であり、その状態が継続している。すなわち、ストレージ仮想化装置がボトルネックとなり、ストレージシステム全体の機能を低下させている場合である。管理端末は、ストレージ仮想化装置１４０のいずれかに接続され、ストレージ仮想化装置１４０全体を管理する端末である。ストレージシステムは、システム中に調整装置を備えなくともよい。
【００５３】
負荷計算部２１０は、全ストレージ仮想化装置のＣＰＵ使用率の平均値及びネットワークの負荷情報を表す値の平均値を、定期的に計算する。負荷計算部２１０は、例えば、１時間毎に、平均値を計算する。負荷計算部２１０は、計算された平均値が、一定回数連続で所定の閾値を超えた場合、ストレージシステム全体が過負荷な状態と判断する。
【符号の説明】
【００５４】
１１０  ホストコンピュータ
１２０  ファイバチャネルスイッチ
１３０  物理ストレージ装置
１４０  ストレージ仮想化装置
２１０  負荷計算部
２１１  ＣＰＵ使用率監視部
２１２  ネットワーク監視部
２１３  キャッシュ使用率監視部
２２０  選択部
２３０  ビットマップ管理部
２４０  仮想化部
２５０  処理部
２６０  キャッシュ
２７０  ビットマップ
【図１】
2015204078.tif 000003
【図２】
2015204078.tif 000004
【図３】
2015204078.tif 000005
【図４Ａ】
2015204078.tif 000006
【図４Ｂ】
2015204078.tif 000007
【図５】
2015204078.tif 000008