(57)【特許請求の範囲】
【請求項１】
複数のストレージシステムと、
管理サーバと、
前記複数のストレージシステムを論理的に一つの記憶資源に仮想化し、前記記憶資源を、ネットワークを介して接続されるホスト計算機に提供する仮想化層と、
を備える仮想ストレージシステムであって、
前記複数のストレージシステムの夫々は、
前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える対応関係を記憶する記憶手段と、
前記ホスト計算機から受信したコマンドに対応する機能を自身が有していない場合に、前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中の他のストレージシステムから検索する検索手段と、
前記コマンドに対応する機能を有するストレージシステムに前記コマンドを転送する転送手段と、
を備え、
前記複数のストレージシステムの少なくとも一つのストレージシステムが前記ネットワークに新たに接続された新規ストレージシステムであり、他のストレージシステムが既存のストレージシステムである場合、
前記既存のストレージシステムの前記記憶手段は、前記管理サーバから受信した、前記新規ストレージシステムと当該新規ストレージシステムが有する機能との関係、そして、前記コマンドと当該機能との関係、とを有する対応関係を、追加記憶し、
前記新規ストレージの記憶手段は、前記管理サーバから受信した、前記既存のストレージシステムについての前記対応関係を追加記憶する、仮想ストレージシステム。
【請求項２】
前記複数のストレージシステムの夫々は、前記ホスト計算機から受信したコマンドに対応する機能を自身が有してない場合に、前記コマンドに対応する機能を有する他のストレージシステムがどれであるのかを前記管理サーバに問い合せ、前記問い合わせに対する返答を受信し、前記コマンドに対応する機能を有するストレージシステムに前記コマンドを転送する、請求項１記載の仮想ストレージシステム。
【請求項３】
前記管理サーバは、前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える関連関係を記憶する記憶手段を有し、前記管理サーバが前記新規ストレージシステムを認識すると、当該記憶手段に当該新規ストレージシステムが有する機能に係る前記対応を前記関連関係に追加登録する、請求項１記載の仮想ストレージシステム。
【請求項４】
前記複数のストレージシステムの夫々が、前記ホスト計算機から受信したコマンドに対応する機能を自身が有していない場合に、前記コマンドに対応する機能を有する他のストレージシステムがどれであるのかを前記管理サーバに問い合せると、前記管理サーバは、前記問い合わせに応答して、前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中から検索し、検索結果を問い合わせ先のストレージシステムに返答する、請求項３記載の仮想ストレージシステム。
【請求項５】
前記複数のストレージシステム少なくとも一つのストレージシステムは、前記管理サーバから、前記新規ストレージシステムが有する機能を受信し、他のストレージシステムは、前記管理サーバから前記新規ストレージシステムが有する機能を受信した前記ストレージシステムから当該新規ストレージシステムが有する機能を受信する、請求項１記載の仮想ストレージシステム。
【請求項６】
前記ホスト計算機は、
前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える対応関係を記憶する記憶手段と、
前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中から検索する検索手段と、
前記コマンドに対応する機能を有するストレージシステムに前記コマンドを発行する手段と、
を備える、請求項１仮想ストレージシステム。
【請求項７】
前記仮想化層は、
前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える対応関係を記憶する記憶手段と、
前記ホスト計算機から発行されるコマンドを受信し、前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中から検索する検索手段と、
前記コマンドに対応する機能を有するストレージシステムに前記コマンドを転送する転送手段と、
を備える、請求項１仮想ストレージシステム。
【請求項８】
前記記憶手段は、各ストレージシステムの障害情報を記憶しており、前記検索手段は、前記コマンドに対応する機能を有するストレージシステムに障害が生じているときには、前記コマンドに対応する機能を有する他のストレージシステムを検索する、請求項１記載の仮想ストレージシステム。
【請求項９】
各ストレージシステムは、前記コマンドに対応する機能を有する他のストレージシステムが存在しないときには、前記ホスト計算機にエラーを報告する手段を更に備える、請求項６記載の仮想ストレージシステム。
【請求項１０】
前記複数のストレージシステム夫々の負荷が略均等になるように、各ストレージシステム間で論理デバイスを移動させる手段を更に備える、請求項１記載の仮想ストレージシステム。
【請求項１１】
前記複数のストレージシステム夫々が管理する実データを格納する外部ストレージシステムを更に備える、請求項１記載の仮想ストレージシステム。
【請求項１２】
前記機能は、スナップショット、レプリケーション、及び、リモートコピーの少なくとも一つである、請求項１乃至１１の何れか１項記載の仮想ストレージシステム。
【請求項１３】
複数のストレージシステムと、
管理サーバと、
前記複数のストレージシステムを論理的に一つの記憶資源に仮想化し、前記記憶資源を、ネットワークを介して接続されるホスト計算機に提供する仮想化層と、
を備える仮想ストレージシステムの制御方法であって、
前記複数のストレージシステムの夫々は、
前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える対応関係を記憶する記憶ステップと、
前記ホスト計算機から受信したコマンドに対応する機能を自身が有していない場合に、前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中の他のストレージシステムから検索する検索ステップと、
前記コマンドに対応する機能を有するストレージシステムに前記コマンドを転送する転送ステップと、
を実行し、
前記複数のストレージシステムの少なくとも一つのストレージシステムが前記ネットワークに新たに接続された新規ストレージシステムであり、他のストレージシステムが既存のストレージシステムである場合、
前記既存のストレージシステムは、前記管理サーバから受信した、前記新規ストレージシステムと当該新規ストレージシステムが有する機能との関係、そして、前記コマンドと当該機能との関係、とを有する対応関係を、追加記憶し、
前記新規ストレージは、前記管理サーバから受信した、前記既存のストレージシステムについての前記対応関係を追加記憶する、仮想ストレージシステムの制御方法。
【請求項１４】
前記複数のストレージシステムの夫々は、前記ホスト計算機から受信したコマンドに対応する機能を自身が有してない場合に、前記コマンドに対応する機能を有する他のストレージシステムがどれであるのかを前記管理サーバに問い合せ、前記問い合わせに対する返答を受信し、前記コマンドに対応する機能を有するストレージシステムに前記コマンドを転送する、請求項１３記載の仮想ストレージシステムの制御方法。
【請求項１５】
前記管理サーバは、前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える関連関係を記憶し、前記管理サーバが前記新規ストレージシステムを認識すると、当該新規ストレージシステムが有する機能に係る前記対応を前記関連関係に追加登録する、請求項１３記載の仮想ストレージシステムの制御方法。
【請求項１６】
前記複数のストレージシステムの夫々が、前記ホスト計算機から受信したコマンドに対応する機能を自身が有していない場合に、前記コマンドに対応する機能を有する他のストレージシステムがどれであるのかを前記管理サーバに問い合せると、前記管理サーバは、前記問い合わせに応答して、前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中から検索し、検索結果を問い合わせ先のストレージシステムに返答する、請求項１５記載の仮想ストレージシステムの制御方法。
【請求項１７】
前記複数のストレージシステム少なくとも一つのストレージシステムは、前記管理サーバから、前記新規ストレージシステムが有する機能を受信し、他のストレージシステムは、前記管理サーバから前記新規ストレージシステムが有する機能を受信した前記ストレージシステムから当該新規ストレージシステムが有する機能を受信する、請求項１３記載の仮想ストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のストレージシステムを論理的に一つの記憶資源として仮想化してなる仮想ストレージシステム及びその制御方法に関する。
【背景技術】
【０００２】
ストレージ分野では、ネットワーク上に分散する複数のコンピューティングリソースをあたかも一つのコンピューティングリソースであるかのように運用し、処理性能や耐障害性の向上を図る「ストレージグリッド（広域広帯域共有ファイルシステム）」が注目されている。ストレージグリッドの運用方法として、複数のストレージシステムを論理的に一つの記憶資源として仮想化する方法が知られている。
【０００３】
ボリュームを仮想化する技術として、第一のストレージシステムの外部に存在する第二のストレージシステムの論理ユニットを第一のストレージシステム内で管理する技術が知られている（特開平７−２１０４３９号公報、特開２００１−３１８８３３号公報、特開２００３−８８２１号公報参照）。
【特許文献１】特開平７−２１０４３９号公報
【特許文献２】特開２００１−３１８８３３号公報
【特許文献３】特開２００３−８８２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ストレージグリッドにおいては、論理的に一つの記憶資源を構成する複数のストレージシステムのうち機能Ｂを有するストレージシステムがホスト計算機から機能Ｂの処理要求を受信すると、そのストレージシステムは機能Ｂの処理要求を認識し、処理することができる。
【０００５】
しかし、ストレージグリッドによって論理的に一つの記憶資源に仮想化されたそれぞれのストレージシステムは、必ずしも機能を共通にするとは限らない。例えば、ストレージグリッドを構成する複数のストレージシステムのうち一部のストレージシステムのみが機能Ａを有している場合がある。ホスト計算機は、複数のストレージシステムをあたかも一つの記憶資源であるかのように認識しているので、機能Ａを有していないストレージシステムに機能Ａの処理要求を送信してしまうことがある。このようなケースでは、コマンドエラーがホスト計算機に返送されてしまい、機能Ａの処理要求が適切に処理されない。
【０００６】
そこで、本発明は、複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムにおいて、各ストレージシステムが有する機能が異なる場合であっても、ホスト計算機からのコマンドを適切に処理することを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明は、複数のストレージシステムと、管理サーバと、前記複数のストレージシステムを論理的に一つの記憶資源に仮想化し、前記記憶資源を、ネットワークを介して接続されるホスト計算機に提供する仮想化層と、を備える仮想ストレージシステムであって、前記複数のストレージシステムの夫々は、前記ホスト計算機から発行されるコマンドと当該コマンドに対応する機能との関係、そして、前記機能と当該機能を有する前記複数のストレージシステムとの関係を備える対応関係を記憶する記憶手段と、前記ホスト計算機から受信したコマンドに対応する機能を自身が有していない場合に、前記コマンドに対応する機能を有するストレージシステムを前記複数のストレージシステムの中の他のストレージシステムから検索する検索手段と、前記コマンドに対応する機能を有するストレージシステムに前記コマンドを転送する転送手段と、を備え、前記複数のストレージシステムの少なくとも一つのストレージシステムが前記ネットワークに新たに接続された新規ストレージシステムであり、他のストレージシステムが既存のストレージシステムである場合、前記既存のストレージシステムの前記記憶手段は、前記管理サーバから受信した、前記新規ストレージシステムと当該新規ストレージシステムが有する機能との関係、そして、前記コマンドと当該機能との関係、とを有する対応関係を、追加記憶し、前記新規ストレージの記憶手段は、前記管理サーバから受信した、前記既存のストレージシステムについての前記対応関係を追加記憶する、仮想ストレージシステム、及び、その制御方法であることを特徴とするものである。
【発明の効果】
【０００８】
本発明によれば、複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムにおいて、各ストレージシステムが有する機能が異なる場合であっても、ホスト計算機からのコマンドを適切に処理できる。
【発明を実施するための最良の形態】
【０００９】
図１は本実施形態に係る仮想ストレージシステム１００のシステム構成を示す。仮想ストレージシステム１００は、複数のストレージシステム２０Ａ，２０Ｂ，２０Ｃと、外部ストレージシステム７０を備える。
【００１０】
それぞれのストレージシステム２０Ａ，２０Ｂ，２０Ｃには、一つ以上のホスト計算機５１が接続されている。仮想化プログラム６３を有するホスト計算機５１は、ＳＡＮ（Storage Area Network）４１を介してそれぞれのストレージシステム２０Ａ，２０Ｂ，２０Ｃに接続しており、仮想化プログラム６３の機能により複数のストレージシステム２０Ａ，２０Ｂ，２０Ｃを論理的に一つの記憶資源（以下、仮想ストレージシステム１００と称する。）として認識する。
【００１１】
仮想化プログラム６３を有しない他のホスト計算機５１は、ＳＡＮ４２、仮想化装置５２、及びＳＡＮ４１を介してそれぞれのストレージシステム２０Ａ，２０Ｂ，２０Ｃに接続しており、仮想化装置５２内の仮想化プログラム６３の機能により複数のストレージシステム２０Ａ，２０Ｂ，２０Ｃを一つの仮想ストレージシステム１００として認識する。
【００１２】
上述の構成により、ホスト計算機５１は、複数のストレージシステム２０Ａ，２０Ｂ，２０Ｃにより提供される記憶領域を論理的な一つの仮想ストレージシステム１００として認識し、仮想ストレージシステム１００にアクセスすることができる。
【００１３】
仮想化装置５２は、複数のストレージシステム２０Ａ，２０Ｂ，２０Ｃのそれぞれが提供する記憶領域を論理的な一つの記憶領域に仮想化する。仮想化装置５２は、例えば、仮想化スイッチ、インテリジェントスイッチ、又は仮想化専用装置などである。尚、仮想ストレージシステム１００、及び仮想化装置５２を含んで構成されるシステムをストレージネットワークシステムと称する。
【００１４】
ホスト計算機５１は、アプリケーションプログラム６０、及び交替パスソフトウェア６１を有する。
【００１５】
アプリケーションプログラム６０は、例えば、データベース管理ソフトウェア、Ｗｅｂアプリケーションソフトエア、ストリーミングアプリケーションソフトウェア、Ｅビジネスアプリケーションソフトウェアなどの業務プログラムである。
【００１６】
交替パスソフトウェア６１は、ホスト計算機５１と仮想ストレージシステム１００内の論理デバイスとの間の論理パスを管理し、マルチパス制御を実行する。マルチパス制御とは、複数の論理パスの中からどの論理パスを使用して論理デバイスにアクセスするのかを制御することをいう。交替パスソフトウェア６１は、マルチパス管理プログラム（図示せず）、筺体間マルチパスプログラム（図示せず）、優先制御プログラム（図示せず）、及び同一デバイス対応テーブル６２を有する。
【００１７】
マルチパス管理プログラムは、交替パスソフトウェア６１全体の管理及び制御を行う。
【００１８】
筺体間マルチパスプログラムは、複数のストレージシステム２０を経由して、外部ストレージシステム７０内の論理デバイス７０１に接続する複数の論理パスをマルチパスとして認識する。
【００１９】
優先制御プログラムは、同一の論理デバイスに接続する複数の論理パスのそれぞれの使用率に基づいて、複数の論理パスの中から優先的に使用する論理パスを選択する。
【００２０】
同一デバイス対応テーブル６２は、異なる論理パスが同一の論理デバイスに接続しているネットワーク環境下において、論理パスと論理デバイスとの対応関係を示す。
【００２１】
交替パスソフトウェア６１は、必ずしもホスト計算機５１内に格納される必要はなく、仮想化装置５２内に格納されていてもよい。
【００２２】
以下の説明においては、ストレージシステム２０Ａ，２０Ｂ，２０Ｃを特に区別しないときには、ストレージシステム２０と記す。
【００２３】
ストレージシステム２０は、ＣＰＵ（Central Processing Unit）２１、メモリ２２、ディスクインターフェース制御部２３、ディスクユニット２４、ＦＣ（Fiber Channel）インターフェース制御部２５，２６、及びＬＡＮ（Local Area Network）インターフェース制御部２７，２８を備える。
【００２４】
ＣＰＵ２１は、メモリ２２に格納されている各種プログラム又はモジュールを実行することにより、ストレージシステム２０における各種制御処理を実行する。メモリ２２は、内部記憶装置と称されるものであり、各種モジュール等を記憶する不揮発性メモリと、ＣＰＵ２１の演算処理結果を一時的に保持する揮発性メモリとを含む。
【００２５】
ＣＰＵ２１は、ディスクインターフェース制御部２３を介してディスクユニット２４に接続されている。ディスクインターフェース制御部２３は、ＣＰＵ２１から出力される論理アドレスをＬＢＡ（Logical Block Address）に変換し、ＣＰＵ２１による論理デバイスへのアクセスを可能とする。
【００２６】
ディスクユニット２４は、ＲＡＩＤ（Redundant Arrays of Independent Inexpensive Disks）構成された複数のディスクドライブ２４０を有する。
【００２７】
ディスクドライブ２４０は、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＡＳ（Serial Attached SCSI）ディスクドライブ或いはＳＣＳＩ（Small Computer System Interface）ディスクドライブ等の物理デバイスである。物理デバイスとは、実記憶領域を有する実デバイスである。
【００２８】
論理デバイス２４２は、実記憶領域を有しない仮想的なデバイスであり、データを記憶する実体的な記憶領域は、外部ストレージシステム７０内の論理デバイス７０１に存在する。即ち、ストレージシステム２０は、外部ストレージシステム７０の論理デバイス７０１を自己の内部デバイスとして取り込み、これを論理ユニットとしてホスト計算機５１に提供している。ホスト計算機５１がＵＮＩＸ（登録商標）系のシステムである場合には、論理ユニットは、デバイスファイル（Device File）に対応付けられる。ホスト計算機５１がＷｉｎｄｏｗｓ（登録商標）系のシステムである場合には、論理ユニットは、ドライブレター（ドライブ名）に対応付けられる。論理ユニットには、ＬＵＮ（Logical Unit Number）がアサインされる。外部ストレージシステム７０の論理デバイス７０１があたかもストレージシステム２０の内部デバイスであるかのように仮想化する方法の詳細については、特開２００５−１０７６４５号公報に開示されている。
【００２９】
コマンドデバイス２４３は、ホスト計算機５１とストレージシステム２０との間でコマンドやステータスを受け渡すための専用の論理ユニットである。ホスト計算機５１からストレージシステム２０に送信されるコマンドは、コマンドデバイス２４３に書き込まれる。ストレージシステム２０は、コマンドデバイス２４３に書き込まれたコマンドに対応する処理を実行し、その実行結果をステータスとしてコマンドデバイス２４３に書き込む。コマンドデバイス２４３を用いたコマンド管理の詳細については、後述する。
【００３０】
ディスクインターフェース制御部２３は、複数のディスクドライブ２４０をＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤ方式においては、複数のディスクドライブ２４０が一つのＲＡＩＤグループとして管理される。ＲＡＩＤグループは、例えば、４つのディスクドライブ２４０を一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは、８つのディスクドライブ２４０を一組としてグループ化することにより（７Ｄ＋１Ｐ）、構成される。即ち、複数のディスクドライブ２４０のそれぞれが提供する記憶領域が集合して一つのＲＡＩＤグループが構成される。ＲＡＩＤグループ上には、ホスト計算機５１からのアクセス単位である複数の論理デバイス２４１が定義される。ホスト計算機５１が認識する論理的な記憶領域である論理ユニットには、一つ以上の論理デバイス２４１がマッピングされる。ホスト計算機５１は、ＬＵＮとＬＢＡとを指定することにより、論理デバイス２４１にアクセスできる。
【００３１】
尚、ストレージシステム２０は、外部ストレージシステム７０に接続することにより、外部ストレージシステム７０の記憶領域をホスト計算機５１に提供できるならば、必ずしもディスクユニット２４とディスクインターフェース制御部２３とを備えている必要はない。
【００３２】
ＦＣインターフェース制御部２５は、ストレージシステム２０と外部ストレージシステム７０との間のＳＡＮ４３を通じてのコマンドやデータの転送を制御する。ＦＣインターフェース制御部２６は、ストレージシステム２０とホスト計算機５１との間のＳＡＮ４１を通じてのコマンドやデータの転送を制御する。ＳＡＮ４１，４３を介するデータ通信プロトコルは、ファイバチャネルプロトコルやｉＳＣＳＩプロトコルなどである。尚、ＳＡＮ４３は必須ではなく、ＦＣインターフェース制御部２５と外部ストレージシステム７０とが光ファイバケーブルなどで直接接続されていてもよい。
【００３３】
ＬＡＮインターフェース制御部２７は、管理ネットワーク４０を介して管理サーバ５０に接続する。管理ネットワーク４０は、イーサネット（登録商標）ケーブルなどで構成されるＬＡＮである。管理ネットワーク４０におけるデータ通信プロトコルは、ＴＣＰ／ＩＰである。管理サーバ５０は、仮想ストレージシステム１００内の論理ユニットの作成、ホスト計算機５１への論理ユニットの割り当て、ホスト計算機５１と仮想ストレージシステム１００との間のアクセスパスの設定（ＬＵＮマスキングやゾーニングなど）などを管理する。
【００３４】
外部ストレージシステム７０は、ＲＡＩＤ構成された一つ以上のディスクドライブ７００を有する。ディスクドライブ７００は、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＡＳ（Serial Attached SCSI）ディスクドライブ或いはＳＣＳＩ（Small Computer System Interface）ディスクドライブ等のストレージデバイスである。複数のディスクドライブ７００上には、論理デバイス７０１が形成されている。
【００３５】
尚、外部ストレージシステム７０は、ストレージシステム２０とは異なる機種であってもよく、或いはストレージシステム２０と同一の機種であってもよい。
【００３６】
ストレージシステム２０は、ホスト計算機５１からアクセス要求を受信すると、そのアクセス要求が自己の内部デバイスとしての論理デバイス２４１へのアクセス要求であるのか或いは外部デバイスとしての論理デバイス７０１へのアクセス要求であるのかを判定し、論理デバイス７０１へのアクセス要求であるならば、論理デバイス２４２と論理デバイス７０１との間のアドレス変換等を行って、論理デバイス７０１へのアクセス要求を外部ストレージシステム７０に送信する。
【００３７】
サービスプロセッサ８１は、ストレージシステム２０の構成情報（後述するデバイス情報テーブル１０６、構成情報１０８を含む。）の設定や、稼働情報の取得などを行うコンピュータ端末である。サービスプロセッサ８１は、ストレージシステム２０内のＬＡＮインターフェース制御部２８に接続される。各ストレージシステム２０に接続する各サービスプロセッサ８１は、一つのマスタサービスプロセッサ８２に接続される。マスタサービスプロセッサ８２は、各サービスプロセッサ８１から収集した情報（ストレージシステム２０の構成情報、稼働情報など）を一元管理する。尚、複数のサービスプロセッサ８１のうちの一つがマスタサービスプロセッサとして機能してもよく、或いは各ストレージシステム２０がマスタサービスプロセッサ８２に直接接続されていてもよい。
【００３８】
尚、仮想ストレージシステム１００は、各ストレージシステム２０間で構成情報を送受信することにより、各ストレージシステム２０間におけるコマンド転送やボリュームマイグレーションを実行できる範囲を示している。各ストレージシステム２０に外部ストレージシステム７０が接続されている場合には、仮想ストレージシステム１００の範囲は、複数のストレージシステム２０と外部ストレージシステム７０とを含む。各ストレージシステム２０に外部ストレージシステム７０が接続されていない場合には、仮想ストレージシステム１００の範囲は、複数のストレージシステム２０を含み、外部ストレージシステム７０を含まない。
【００３９】
各ストレージシステム２０は、例えば、ＲＡＩＤ構成された複数のディスクドライブ２４０を備えるディスクアレイシステムとして構成することもできるし、或いは各ストレージストレージシステム２０自体がＳＣＳＩターゲットになる仮想化スイッチとして構成することもできる。ストレージシステム２０は、記憶制御装置と別称することもできる。
【００４０】
管理ネットワーク４０は、一つ以上のホスト計算機５１に接続している。また、管理ネットワーク４０には、一つ以上のクライアント計算機３０が接続されている。各クライアント計算機５１は、管理ネットワーク４０を介してホスト計算機５１に接続し、アプリケーションプログラム６０を介して仮想ストレージシステム１００にデータ入出力を要求できる。
【００４１】
図２は同一デバイス対応テーブル６２を示す。同一デバイス対応テーブル６２は、「パス番号」、「ストレージシステム識別子」、「ＬＵＮ」、及び「デバイス識別子」をそれぞれ対応付けて格納する。
【００４２】
「パス番号」は、論理パスの番号を示す。
【００４３】
「ストレージシステム識別子」は、仮想ストレージシステム１００内でストレージシステム２０又は外部ストレージシステム７０を一意に識別するための情報を示す。
【００４４】
「ＬＵＮ」は、ストレージシステム２０又は外部ストレージシステム７０内の論理ユニットの番号を示す。
【００４５】
「デバイス識別子」は、仮想ストレージシステム１００内で論理デバイス２４１，２４２，７０１を一意に識別するための情報を示す。
【００４６】
パス番号０，２，３の三つの論理パスは、異なるストレージシステム２０を経由するものではあるが、同一の論理デバイスに接続することを示している。同一の論理デバイスであっても、ストレージシステム２０毎にＬＵＮが異なるのは、ホストストレージドメインを採用しているためである。
【００４７】
尚、同一デバイス対応テーブル６２は、複数のストレージシステム２０を一つの仮想ストレージシステム１００に仮想化する仮想化層（図１に示す例では、ホスト計算機５１又は仮想化装置５２）に保持されている。
【００４８】
図３はメモリ２２内に格納されている各種プログラム及びテーブルを示す。メモリ２２には、オペレーティングシステム１０１、機能登録プログラム１０２、機能−装置対応認識プログラム１０３、コマンド−機能対応テーブル１０４、機能−装置対応テーブル１０５、デバイス情報テーブル１０６、障害情報１０７、及び構成情報１０８が格納されている。
【００４９】
コマンド−機能対応テーブル１０４は、ホスト計算機５１から発行されるコマンドとそのコマンドに対応する機能との対応関係を保持する。ホスト計算機５１が仮想ストレージシステム１００に要求する「機能」の具体例として、例えば、スナップショット、レプリケーション、リモートコピーなどがある。
【００５０】
機能登録プログラム１０２は、コマンドと機能との対応関係をコマンド−機能対応テーブル１０４に登録する。
【００５１】
機能−装置対応テーブル１０５は、ホスト計算機５１が要求する機能と、その機能を有するストレージシステム２０との対応関係を保持する。
【００５２】
機能−装置対応認識プログラム１０３は、ストレージシステム２０と機能との対応関係を機能−装置対応テーブル１０５に登録する。
【００５３】
デバイス情報テーブル１０６は、論理デバイスの属性を保持する。
【００５４】
障害情報１０７は、各ストレージシステム２０の障害情報を保持する。
【００５５】
構成情報１０８は、外部ストレージシステム７０内の論理デバイス７０１と各ストレージシステム２０内の論理デバイス２４２との対応関係を示すマッピング情報である。外部デバイスを内部デバイスにマッピングするためのマッピング情報の詳細については、特開２００５−１０７６４５号公報に開示されている。
【００５６】
尚、後述するコマンド管理では、ホスト計算機５１から発行されたコマンドがどの機能に対応するのか、その機能を有するストレージシステム２０がどれであるのかを検索することができ、検索されたストレージシステム２０にそのコマンドを転送できることが可能であるならば、仮想ストレージシステム１００は、必ずしも上述のテーブル形式でコマンド、機能、ストレージシステム２０の対応関係を保持している必要はない。例えば、リスト構造又はその他の形式でコマンド、機能、ストレージシステム２０の対応関係を保持してもよい。
【００５７】
図４はコマンド−機能対応テーブル１０４を示す。コマンド−機能対応テーブル１０４は、ホスト計算機５１から仮想ストレージシステム１００へ発行されるコマンドと、そのコマンドに対応する機能との対応関係を保持する。例えば、コマンドＣ００１は、仮想ストレージシステム１００に機能Ａを要求するためのものである。
【００５８】
図５は機能−装置対応テーブル１０５を示す。機能−装置対応テーブル１０５は、ホスト計算機５１が要求する機能と、その機能を有するストレージシステム２０との対応関係を保持する。例えば、ストレージシステム２０Ａは、機能Ｂを有している。
【００５９】
例えば、図６に示すように、仮想ストレージシステム１００がストレージシステム２０Ａとストレージシステム２０Ｂとから構成される場合、機能−装置対応テーブル１０５には、ストレージシステム２０Ａと機能Ｂ、ストレージシステム２０Ｂと機能Ｂとがそれぞれ対応付けられて登録され、コマンド−機能対応テーブル１０４には、コマンドＣ００４と機能Ｂとが対応付けられて登録される。プログラムＰ４は、機能Ｂを実現するためのものである。図７に示すように、仮想ストレージシステム１００にストレージシステム２０Ｃが新規に追加されると、機能−装置対応テーブル１０５には、ストレージシステム２０Ｃと機能Ａが対応付けられて追加登録され、コマンド−機能対応テーブル１０４には、コマンドＣ００１，Ｃ００２，Ｃ００３と機能Ａとが対応付けられて追加登録される。プログラムＰ３は、機能Ａを実現するためのものである。
【００６０】
仮想ストレージシステム１００がコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持する仕方として、以下の（１）〜（６）のバリエーションが考えられる。
【００６１】
（１）ストレージシステム２０内のメモリ２２と、管理サーバ５０とがそれぞれコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持する。
（２）管理サーバ５０がコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持する。
（３）ホスト計算機５１がコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持する。
（４）複数のストレージシステム２０を一つの仮想ストレージシステム１００に仮想化する仮想化層がコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持する。
（５）サービスプロセッサ８１又はマスタサービスプロセッサ８２がコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持する。
（６）コマンドデバイス２４３がコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持する。
【００６２】
図８はデバイス情報テーブル１０６を示す。デバイス情報テーブル１０６は、論理デバイスの属性を保持するためのものであり、ストレージシステム２０内のメモリ２２に格納される。デバイス情報テーブル１０６は、「デバイス番号」、「ステータスフラグ」、及び「外部デバイスフラグ」をそれぞれ対応付けて格納する。
【００６３】
「デバイス番号」は、ストレージシステム２０内で論理デバイス２４１，２４２を一意に識別するための情報である。
【００６４】
「ステータスフラグ」は、ストレージシステム２０内の論理デバイス２４１，２４２を使用している状態にあるか、或いは使用していない状態（空き状態）にあるかを示す。図中の"ＯＮ"は、論理デバイス２４１，２４２が使用されている状態にあることを示す。
【００６５】
「外部デバイスフラグ」は、ストレージシステム２０内の論理デバイス２４２が外部デバイス（論理デバイス７０１）として使用されている状態にあるか否かを示す。図中の"ＯＮ"は、論理デバイス２４２が外部デバイスとして使用されていることを示す。"ＯＦＦ"は、論理デバイス２４１が内部デバイスとして使用されていることを示す。外部デバイスフラグのデフォルト値は、"ＯＦＦ"であり、ストレージシステム２０内の論理デバイス２４２が外部ストレージシステム７０内の論理デバイス７０１にマッピングされると、"ＯＦＦ"が"ＯＮ"に変更される。
【００６６】
図９は障害情報１０７を示す。障害情報１０７は、各ストレージシステム２０が正常に機能しているか、或いは障害が生じているかを示す情報である。本実施形態では、ストレージシステム２０がホスト計算機５１からのコマンドを受信できない状態にある場合に、ストレージシステム２０に障害が生じているものと判定する例を示すが、予め設定された障害レベルに基づいて、ストレージシステム２０に障害が生じているか否かを判定してもよい。障害判定に用いられる障害レベルは、ユーザが入力したものでもよく、或いはユーザに提示された複数の障害レベルの中からユーザが選択した障害レベルであってもよい。各ストレージシステム２０のメモリ２２と、管理サーバ５０は、障害情報１０７を保持する。
【００６７】
ストレージシステム２０が実行する一般的なコマンド処理について、図１０を参照しながら説明する。
【００６８】
ストレージシステム２０は、ホスト計算機５１からコマンドを受信すると（Ｓ１０１）、アクセス要求を受ける論理デバイスが外部デバイス（論理デバイス７０１）であるか否かを、デバイス情報テーブル１０６を参照して判定する（Ｓ１０２）。
【００６９】
アクセス要求を受ける論理デバイスが内部デバイス（論理デバイス２４１）であるならば（Ｓ１０２；ＮＯ）、ストレージシステム２０は、通常の動作により内部デバイスにアクセスする（Ｓ１０３）。
【００７０】
アクセス要求を受ける論理デバイスが外部デバイス（論理デバイス７０１）であるならば（Ｓ１０２；ＹＥＳ）、ストレージシステム２０は、外部デバイスにアクセスするためのコマンドを外部ストレージシステム７０に送信する（Ｓ１０４）。
【００７１】
次に、仮想ストレージシステム１００が実行するコマンド管理について、図１１を参照しながら説明する。ここでは、ホスト計算機５１からコマンドを受信したストレージシステム２０がそのコマンドに対応する機能を有してない場合に、その機能を有するストレージシステム２０を検索し、検索したストレージシステム２０にコマンドを転送する例を示す。
【００７２】
尚、図１１の説明では、以下の（１）〜（２）を前提とする。
（１）各ストレージシステム２０と、管理サーバ５０とがそれぞれコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持している。
（２）機能Ｂを有するストレージシステム２０Ａ，２０Ｂからなる仮想ストレージシステム１００に、機能Ａを有するストレージシステム２０Ｃを新規に追加する。
【００７３】
仮想ストレージシステム１００にストレージシステム２０Ｃを追加する処理を行う（Ｓ２０１）。即ち、ＳＡＮ４１にストレージシステム２０Ｃを接続し、ホスト計算機５１及び仮想化装置５２からストレージシステム２０Ｃを認識するための処理（例えば、ストレージシステム２０Ｃのストレージシステム識別子の認識、ストレージシステム２０Ｃ内の論理ユニットのＬＵＮの認識、その論理ユニットに接続する論理パスのパス番号の認識など）を行う。ストレージシステム２０Ｃが外部ストレージシステム７０の論理デバイス７０１を共有する場合には、ストレージシステム２０ＣをＳＡＮ４３に接続すればよい。
【００７４】
次に、管理サーバ５０は、仮想ストレージシステム１００にストレージシステム２０Ｃが新規に追加されたことを認識するとともに、ストレージシステム２０ＣがプログラムＰ３を有していることを認識し、自身が管理するコマンド−機能対応テーブル１０４に機能Ａを追加登録するとともに、自身が管理する機能−装置対応テーブル１０５にストレージシステム２０Ｃを追加登録する（Ｓ２０２）。
【００７５】
ストレージシステム２０Ｃが機能Ａに対応するプログラムＰ３を有しているという情報は、ユーザからの管理サーバ５０への入力により取得してもよく、或いはプログラムＰ３に対応するプログラム（プログラムＰ３にコマンドを送るプログラム）をホスト計算機５１にインストールする際に、そのプログラムから取得してもよい。
【００７６】
次に、管理サーバ５０は、ストレージシステム２０Ｃが有するプログラムＰ３が仮想ストレージシステム１００に新規に追加されたことをそれぞれのストレージシステム２０Ａ，２０Ｂに通知する（Ｓ２０３）。新規機能が追加されたことをストレージシステム２０Ａ，２０Ｂに通知する方法としては、管理サーバ５０からそれぞれのストレージシステム２０Ａ，２０Ｂに個別に通知する方法でもよく、或いは管理サーバ５０が特定のストレージシステム２０に通知し、特定のストレージシステム２０が他のストレージシステム２０に通知する方法でもよい。
【００７７】
次に、それぞれのストレージシステム２０Ａ，２０Ｂは、自身のメモリ２２内に保持されている機能−装置対応テーブル１０５にストレージシステム２０Ｃと機能Ａとを対応付けて追加登録し、コマンド−機能対応テーブル１０４にコマンドＣ００１，Ｃ００２，Ｃ００３と機能Ａとを対応付けて追加登録する（Ｓ２０４）。
【００７８】
次に、管理サーバ５０は、仮想ストレージシステム１００内に既に存在する機能（プログラム）、その機能に対応するコマンド、及びその機能を有するストレージシステム２０との対応関係をストレージシステム２０Ｃに通知する（Ｓ２０５）。
【００７９】
次に、ストレージシステム２０Ｃは、管理サーバ５０から通知された情報（仮想ストレージシステム１００内に既に存在するプログラム（機能）とそのプログラムを有するストレージシステム２０との対応関係）を基に、自身のメモリ２２内に保持されている機能−装置対応テーブル１０５にストレージシステム２０Ａ，２０Ｂと機能Ｂとを対応付けて追加登録し、コマンド−機能対応テーブル１０４にコマンドＣ００４と機能Ｂとを対応付けて追加登録する（Ｓ２０６）。
【００８０】
次に、ホスト計算機５１は、仮想ストレージシステム１００にプログラムＰ３に対応するコマンドＣ００１を送信する（Ｓ２０７）。ホスト計算機５１は、個々のストレージシステム２０Ａ，２０Ｂ，２０Ｃを認識した上でコマンドＣ００１を送信しているのではないので、ストレージシステム２０Ａ，２０Ｂ，２０Ｃのうち何れがコマンドを受信するかはケースバイケースである。ここでは、ストレージシステム２０ＡがコマンドＣ００１を受信した場合を想定して説明を続ける。
【００８１】
次に、ストレージシステム２０Ａは、コマンドＣ００１を受信すると、自身のメモリ２２内に保持されているコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を参照し、コマンドＣ００１がどのプログラムに対応するものであるのか、そのプログラムを有するストレージシステム２０はどれかを検索する（Ｓ２０８）。
【００８２】
尚、仮に、ストレージシステム２０ＣがコマンドＣ００１を受信したならば、ストレージシステム２０Ｃは、後述するステップＳ２１０，Ｓ２１２を実施する。
【００８３】
次に、ストレージシステム２０Ａは、ＳＡＮ４３を介して、コマンドＣ００１をストレージシステム２０Ｃに転送する（Ｓ２０９）。このとき、コマンドＣ００１が処理するべき実データがストレージシステム２０Ａに存在する場合は、ストレージシステム２０Ａは、ストレージシステム２０Ｃに実データを送信する。実データの送信は、一度にまとめて行ってもよく、或いは複数回に分けて部分的に送信してもよい。コマンドＣ００１が処理するべき実データが外部ストレージシステム７０の論理デバイス７０１に存在する場合は、論理デバイス７０１の制御担当をストレージシステム２０Ａからストレージシステム２０Ｃに変更する。
【００８４】
尚、ストレージシステム２０Ａは、コマンド転送の履歴情報として、コマンドと転送先のストレージシステム２０とを対応付けた情報を保持しておき、ホスト計算機５０から新たにコマンドを受信したときに、その履歴情報を参照して、他のストレージシステム２０にコマンドを転送してもよい。
【００８５】
次に、ストレージシステム２０Ａは、正常にコマンドを受信したことをホスト計算機５１に報告する（Ｓ２１０）。
【００８６】
次に、ストレージシステム２０Ｃは、コマンドＣ００１の処理が完了した段階で、ストレージシステム２０Ａに完了報告をする（Ｓ２１１）。
【００８７】
ストレージシステム２０Ｃから完了報告を受信したストレージシステム２０Ａは、コマンドＣ００１の処理が完了したことをホスト計算機５１に報告する（Ｓ２１２）。
【００８８】
尚、図１１に示したコマンド管理の他の方法として、例えば、ステップＳ２０１，Ｓ２０２，Ｓ２０５，Ｓ２０６の順に実施し、プログラムＰ３とストレージシステム２０Ｃが新規に追加されたことをストレージシステム２０Ｃがストレージシステム２０Ａ，２０Ｂに通知し、その後、ステップＳ２０４を実施してから、Ｓ２０７〜Ｓ２１２を順に実施する方法がある。
【００８９】
次に、仮想ストレージシステム１００が実行する他のコマンド管理について、図１２を参照しながら説明する。ここでは、ホスト計算機５１からコマンドを受信したストレージシステム２０がそのコマンドに対応する機能を有してない場合に、その機能を有するストレージシステム２０がどれであるかを管理サーバ５０に問い合わせる。問い合わせを受けた管理サーバ５０は、そのコマンドに対応する機能を有するストレージシステム２０を検索し、問い合わせ先のストレージシステム２０に通知する。管理サーバ５０から通知を受けたストレージシステム２０は、そのコマンドに対応する機能を有するストレージシステム２０にコマンドを転送する。
【００９０】
尚、図１２の説明では、以下の（１）〜（２）を前提とする。
（１）管理サーバ５０は、コマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持する必要があるが、各ストレージシステム２０は、コマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持する必要はない。
（２）機能Ｂを有するストレージシステム２０Ａ，２０Ｂからなる仮想ストレージシステム１００に、機能Ａを有するストレージシステム２０Ｃを新規に追加する。
【００９１】
仮想ストレージシステム１００にストレージシステム２０Ｃを追加する処理を行う（Ｓ３０１）。即ち、ＳＡＮ４１にストレージシステム２０Ｃを接続し、ホスト計算機５１及び仮想化装置５２からストレージシステム２０Ｃを認識するための処理（例えば、ストレージシステム２０Ｃのストレージシステム識別子の認識、ストレージシステム２０Ｃ内の論理ユニットのＬＵＮの認識、その論理ユニットに接続する論理パスのパス番号の認識など）を行う。ストレージシステム２０Ｃが外部ストレージシステム７０の論理デバイス７０１を共有する場合には、ストレージシステム２０ＣをＳＡＮ４３に接続すればよい。
【００９２】
次に、管理サーバ５０は、仮想ストレージシステム１００にストレージシステム２０Ｃが新規に追加されたことを認識するとともに、ストレージシステム２０ＣがプログラムＰ３を有していることを認識し、自身が管理するコマンド−機能対応テーブル１０４に機能Ａを追加登録するとともに、自身が管理する機能−装置対応テーブル１０５にストレージシステム２０Ｃを追加登録する（Ｓ３０２）。
【００９３】
次に、ホスト計算機５１は、仮想ストレージシステム１００にプログラムＰ３に対応するコマンドＣ００１を送信する（Ｓ３０３）。ホスト計算機５１は、個々のストレージシステム２０Ａ，２０Ｂ，２０Ｃを認識した上でコマンドＣ００１を送信しているのではないので、ストレージシステム２０Ａ，２０Ｂ，２０Ｃのうち何れがコマンドを受信するかはケースバイケースである。ここでは、ストレージシステム２０ＡがコマンドＣ００１を受信した場合を想定して説明を続ける。
【００９４】
次に、ストレージシステム２０Ａは、コマンドＣ００１を受信すると、コマンドＣ００１を実行できる機能Ａを自身が有しているか否かを判定する。本実施形態では、ストレージシステム２０Ａは、コマンドＣ００１を実行できる機能Ａを有してないので、コマンドＣ００１を実行できる機能Ａを有しているストレージシステム２０がどれであるかを管理サーバ５０に問い合せる（Ｓ３０４）。
【００９５】
尚、仮に、ストレージシステム２０ＡがコマンドＣ００１を実行できる機能Ａを有しているならば、ストレージシステム２０Ａは、後述するステップＳ３０７，Ｓ３０９を実行する。
【００９６】
問い合せを受けた管理サーバ５０は、自身が管理するコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を参照し、コマンドＣ００１を実行できる機能Ａを有しているストレージシステム２０Ｃを検索する（Ｓ３０５）。
【００９７】
次に、管理サーバ５０は、コマンドＣ００１を実行できる機能Ａを有しているストレージシステム２０がストレージシステム２０Ｃであることをストレージシステム２０Ａに通知する（Ｓ３０６）。
【００９８】
次に、ストレージシステム２０Ａは、コマンドＣ００１をストレージシステム２０Ｃに転送する（Ｓ３０７）。このとき、コマンドＣ００１が処理するべき実データがストレージシステム２０Ａに存在する場合は、ストレージシステム２０Ａは、ストレージシステム２０Ｃに実データを送信する。実データの送信は、一度にまとめて行ってもよく、或いは複数回に分けて部分的に送信してもよい。コマンドＣ００１が処理するべき実データが外部ストレージシステム７０の論理デバイス７０１に存在する場合は、論理デバイス７０１の制御担当をストレージシステム２０Ａからストレージシステム２０Ｃに変更する。
【００９９】
次に、ストレージシステム２０Ａは、正常にコマンドを受信したことをホスト計算機５１に報告する（Ｓ３０８）。
【０１００】
次に、ストレージシステム２０Ｃは、コマンドＣ００１の処理が完了した段階で、ストレージシステム２０Ａに完了報告をする（Ｓ３０９）。
【０１０１】
ストレージシステム２０Ｃから完了報告を受信したストレージシステム２０Ａは、コマンドＣ００１の処理が完了したことをホスト計算機５１に報告する（Ｓ３１０）。
【０１０２】
尚、図１のネットワーク構成は、ホスト計算機５１から各ストレージシステム２０へコマンドを発行するためのネットワーク（ＳＡＮ４１，４２）と、管理サーバ５０が各ストレージシステム２０との間で管理情報を送受信するためのネットワーク（管理ネットワーク４０）とが異なるアウトバンド方式となっているが、本実施形態は、インバウンド方式にも適用できる。例えば、管理サーバ５０がＳＡＮ４１経由で各ストレージシステム２０との間で管理情報を送受信するように構成すれば、インバンド方式となる。
【０１０３】
次に、ホスト計算機５１が実行するコマンド管理について、図１３を参照しながら説明する。ここでは、ホスト計算機５１は、交替パスソフトウェア６１、コマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持しており、コマンドに対応する機能を有するストレージシステム２０と、ホスト計算機５１からストレージシステム２０の管理下にある論理デバイスへ接続する論理パスとを把握している。
【０１０４】
ホスト計算機５１は、コマンドを発行する際に、コマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を参照することにより、そのコマンドに対応する機能を有しているストレージシステム２０がどれであるのかを検索する（Ｓ４０１）。
【０１０５】
次に、ホスト計算機５１は、検索したストレージシステム２０の配下にある論理デバイスの中から論理パスを介してホスト計算機５１に接続する論理デバイスを選択し、コマンドを発行する（Ｓ４０２）。これにより、ホスト計算機５１は、コマドに対応する機能を有するストレージシステム２０にコマンドを直接発行できる。
【０１０６】
尚、ホスト計算機５１は、全てのストレージシステム２０の配下にある論理デバイスに予め論理パスを張っておき、コマンドに対応する機能を有するストレージシステム２０の配下にある論理デバイスに接続する論理パスを交替パスソフトウェア６１により選択し、コマンドを発行してもよい。
【０１０７】
次に、仮想化装置５２が実行するコマンド管理について、図１４を参照しながら説明する。ここでは、仮想化装置５２は、交替パスソフトウェア６１、コマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を保持しており、コマンドに対応する機能を有するストレージシステム２０と、仮想化装置５２からストレージシステム２０の管理下にある論理デバイスへ接続する論理パスとを把握している。
【０１０８】
仮想化装置５２は、ホスト計算機５１からコマンドを受信すると、コマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を参照することにより、そのコマンドに対応する機能を有しているストレージシステム２０がどれであるのかを検索する（Ｓ５０１）。
【０１０９】
次に、仮想化装置５２は、検索したストレージシステム２０の配下にある論理デバイスの中から論理パスを介して仮想化装置５２に接続する論理デバイスを選択し、コマンドを転送する（Ｓ５０２）。これにより、仮想化装置５２は、コマドに対応する機能を有するストレージシステム２０にコマンドを転送できる。
【０１１０】
尚、仮想化装置５２は、全てのストレージシステム２０の配下にある論理デバイスに予め論理パスを張っておき、コマンドに対応する機能を有するストレージシステム２０の配下にある論理デバイスに接続する論理パスを交替パスソフトウェア６１により選択し、コマンドを転送してもよい。
【０１１１】
図１４に示したコマンド管理は、複数のストレージシステム２０を一つの仮想ストレージシステム１００に仮想化する仮想化層においても実行できる。
【０１１２】
次に、マスタサービスプロセッサ８２が実行するコマンド管理について、図１５を参照しながら説明する。ここでは、ホスト計算機５１からコマンドを受信したストレージシステム２０がそのコマンドに対応する機能を有してない場合に、その機能を有するストレージシステム２０がどれであるかをマスタサービスプロセッサ８２に問い合わせる。問い合わせを受けたマスタサービスプロセッサ８２は、そのコマンドに対応する機能を有するストレージシステム２０を検索し、問い合わせ先のストレージシステム２０に通知する。マスタサービスプロセッサ８２から通知を受けたストレージシステム２０は、そのコマンドに対応する機能を有するストレージシステム２０にコマンドを転送する。
【０１１３】
尚、図１５の説明では、以下の（１）〜（２）を前提とする。
（１）マスタサービスプロセッサ８２は、コマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持する必要があるが、各ストレージシステム２０は、コマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持する必要はない。
（２）機能Ｂを有するストレージシステム２０Ａ，２０Ｂからなる仮想ストレージシステム１００に、機能Ａを有するストレージシステム２０Ｃを新規に追加する。
【０１１４】
仮想ストレージシステム１００にストレージシステム２０Ｃを追加する処理を行う（Ｓ６０１）。即ち、ＳＡＮ４１にストレージシステム２０Ｃを接続し、ホスト計算機５１及び仮想化装置５２からストレージシステム２０Ｃを認識するための処理（例えば、ストレージシステム２０Ｃのストレージシステム識別子の認識、ストレージシステム２０Ｃ内の論理ユニットのＬＵＮの認識、その論理ユニットに接続する論理パスのパス番号の認識など）を行う。ストレージシステム２０Ｃが外部ストレージシステム７０の論理デバイス７０１を共有する場合には、ストレージシステム２０ＣをＳＡＮ４３に接続すればよい。
【０１１５】
次に、マスタサービスプロセッサ８２は、仮想ストレージシステム１００にストレージシステム２０Ｃが新規に追加されたことを認識するとともに、ストレージシステム２０ＣがプログラムＰ３を有していることを認識し、自身が管理するコマンド−機能対応テーブル１０４に機能Ａを追加登録するとともに、自身が管理する機能−装置対応テーブル１０５にストレージシステム２０Ｃを追加登録する（Ｓ６０２）。
【０１１６】
次に、ホスト計算機５１は、仮想ストレージシステム１００にプログラムＰ３に対応するコマンドＣ００１を送信する（Ｓ６０３）。ホスト計算機５１は、個々のストレージシステム２０Ａ，２０Ｂ，２０Ｃを認識した上でコマンドＣ００１を送信しているのではないので、ストレージシステム２０Ａ，２０Ｂ，２０Ｃのうち何れがコマンドを受信するかはケースバイケースである。ここでは、ストレージシステム２０ＡがコマンドＣ００１を受信した場合を想定して説明を続ける。
【０１１７】
次に、ストレージシステム２０Ａは、コマンドＣ００１を受信すると、コマンドＣ００１を実行できる機能Ａを自身が有しているか否かを判定する。本実施形態では、ストレージシステム２０Ａは、コマンドＣ００１を実行できる機能Ａを有してないので、コマンドＣ００１を実行できる機能Ａを有しているストレージシステム２０がどれであるかをマスタサービスプロセッサ８２に問い合せる（Ｓ６０４）。
【０１１８】
尚、仮に、ストレージシステム２０ＡがコマンドＣ００１を実行できる機能Ａを有しているならば、ストレージシステム２０Ａは、後述するステップＳ３０７，Ｓ３０９を実行する。
【０１１９】
問い合せを受けたマスタサービスプロセッサ８２は、自身が管理するコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を参照し、コマンドＣ００１を実行できる機能Ａを有しているストレージシステム２０Ｃを検索する（Ｓ６０５）。
【０１２０】
次に、マスタサービスプロセッサ８２は、コマンドＣ００１を実行できる機能Ａを有しているストレージシステム２０がストレージシステム２０Ｃであることをストレージシステム２０Ａに通知する（Ｓ６０６）。
【０１２１】
次に、ストレージシステム２０Ａは、コマンドＣ００１をストレージシステム２０Ｃに転送する（Ｓ６０７）。このとき、コマンドＣ００１が処理するべき実データがストレージシステム２０Ａに存在する場合は、ストレージシステム２０Ａは、ストレージシステム２０Ｃに実データを送信する。実データの送信は、一度にまとめて行ってもよく、或いは複数回に分けて部分的に送信してもよい。コマンドＣ００１が処理するべき実データが外部ストレージシステム７０の論理デバイス７０１に存在する場合は、論理デバイス７０１の制御担当をストレージシステム２０Ａからストレージシステム２０Ｃに変更する。
【０１２２】
次に、ストレージシステム２０Ａは、正常にコマンドを受信したことをホスト計算機５１に報告する（Ｓ６０８）。
【０１２３】
次に、ストレージシステム２０Ｃは、コマンドＣ００１の処理が完了した段階で、ストレージシステム２０Ａに完了報告をする（Ｓ６０９）。
【０１２４】
ストレージシステム２０Ｃから完了報告を受信したストレージシステム２０Ａは、コマンドＣ００１の処理が完了したことをホスト計算機５１に報告する（Ｓ６１０）。
【０１２５】
尚、上述の説明では、マスタサービスプロセッサ８２がコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持し、コマンド管理する例を示したが、サービスプロセッサ８１がコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を保持し、コマンド管理してもよい。サービスプロセッサ８１は、それぞれのストレージシステム２０に接続されているので、自身がコマンドに対応する機能を有しているストレージシステム２０であるか否かを判定することはできても、他のストレージシステム２０がコマンドに対応する機能を有しているストレージシステム２０であるか否かを判定することはできない。これに対し、マスタサービスプロセッサ８２は、全てのストレージシステム２０の機能を管理できるため、どのストレージシステム２０がコマンドに対応する機能を有しているストレージシステム２０であるか否かを判定できる。
【０１２６】
次に、コマンドデバイス２４３を用いたコマンド管理について、図１６を参照しながら説明する。各ストレージシステム２０のメモリ２２又はコマンドデバイス２４３には、コマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５が格納されているものとする。
【０１２７】
ホスト計算機５１は、ストレージシステム２０Ａのコマンドデバイス２４３にコマンドＣ００１を書き込む（Ｓ７０１）。
【０１２８】
ストレージシステム２０ＡのＣＰＵ２１は、コマンドデバイス２４３にコマンドＣ００１が書き込まれたことを検出すると、メモリ２２又はコマンドデバイス２４３に格納されているコマンド−機能対応テーブル１０４、及び機能−装置対応テーブル１０５を参照して、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０Ｃを検索する（Ｓ７０２）。
【０１２９】
検索の結果、コマンドＣ００１に対応する機能Ａが自身の機能ではなく、他のストレージシステム２０Ｃの機能であると判定された場合、ストレージシステム２０Ａは、ホスト計算機５１にコマンドＣ００１を返送することなく、コマンド処理の延長で、ストレージシステム２０Ｃのコマンドデバイス２４３にコマンドＣ００１を転送する（Ｓ７０３）。
【０１３０】
尚、ストレージシステム２０Ａのコマンドデバイス２４３が受けたコマンドをストレージシステム２０Ｃに転送する場合、コマンドデバイス２４３が受けた方式でストレージシステム２０Ｃのコマンドデバイス２４３に転送する。この場合、ストレージシステム２０Ｃのコマンドデバイス２４３をストレージシステム２０Ａが検知する方法がある。若しくは、ストレージシステム２０Ｃにコマンドデバイス２４３がない場合には、ストレージシステム２０Ｃが認識できる形式にコマンド形式を変換してからストレージシステム２０Ａからストレージシステム２０Ｃにコマンドを転送してもよい。
【０１３１】
次に、ホスト計算機５１がコマンドを再発行することによりコマンド管理を行う処理について、図１７を参照しながら説明する。ストレージシステム２０Ａは、ホスト計算機５１からコマンドを受信すると、コマンドに対応する機能を有するストレージシステム２０を検索する（図１１：Ｓ２０８）。そして、ストレージシステム２０Ａは、ホスト計算機５１にコマンドの再発行を要求するとともに、コマンドに対応する機能を有するストレージシステム２０がどれであるかをホスト計算機５１に通知する。コマンド再発行要求を受けたホスト計算機５１は、コマンドに対応する機能を有するストレージシステムにコマンドを再発行する。
【０１３２】
ホスト計算機５１は、ストレージシステム２０ＡにコマンドＣ００１を発行する（Ｓ８０１）。
【０１３３】
次に、ストレージシステム２０Ａは、自身が管理するコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を参照し、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０Ｃを検索する（Ｓ８０２）。
【０１３４】
ストレージシステム２０Ａは、ホスト計算機５１にコマンドＣ００１の再発行を要求するとともに、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０がストレージシステム２０Ｃであることをホスト計算機５１に通知する（Ｓ８０３）。
【０１３５】
ホスト計算機５１は、ストレージシステム２０Ａからコマンド再発行要求とコマンドＣ００１に対応する機能Ａを有するストレージシステム２０がストレージシステム２０Ｃであることの通知を受ける（Ｓ８０４）。
【０１３６】
次に、ホスト計算機５１は、ストレージシステム２０ＣにコマンドＣ００１を再発行する（Ｓ８０５）。このとき、コマンドＣ００１が処理するべき実データがストレージシステム２０Ａに存在する場合は、ストレージシステム２０Ａは、ストレージシステム２０Ｃに実データを送信する。実データの送信は、一度にまとめて行ってもよく、或いは複数回に分けて部分的に送信してもよい。コマンドＣ００１が処理するべき実データが外部ストレージシステム７０の論理デバイス７０１に存在する場合は、論理デバイス７０１の制御担当をストレージシステム２０Ａからストレージシステム２０Ｃに変更する。
【０１３７】
尚、上述の説明では、ホスト計算機５１が発行したコマンドに対応する機能を有するストレージシステム２０がどれであるかをストレージシステム２０Ａが検索する例を示したが、管理サーバ５０又はマスタサービスプロセッサ８２が検索し、ホスト計算機５１にコマンド再発行要求と検索結果を通知してもよい。
【０１３８】
また、図１７の処理では、必ずしもコマンド再発行要求は必須ではない。ホスト計算機５１は、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０がストレージシステム２０Ｃであることの通知をストレージシステム２０Ａから受けた段階で、ストレージシステム２０ＣにコマンドＣ００１を再発行してもよい。
【０１３９】
尚、図１１乃至図１７に示した各処理において、ホスト計算機５１が発行したコマンドに対応する機能を有するストレージシステム２０が複数存在する場合には、稼働率（ビジー率）の低いストレージシステム２０、業務に関連のあるストレージシステム２０、又は前回選択しなかったストレージシステム２０などにコマンド転送するのが好適である。
【０１４０】
また、上述の説明では、コマンドに対応する機能が一つのストレージシステム２０で実現される場合を想定したが、コマンドに対応する機能が二つ以上のストレージシステム２０で実現される場合にも本実施形態を適用できる。例えば、リモートコピーを実行するには、ローカルサイト（コピー元）のストレージシステム２０と、リモートサイト（コピー先）のストレージシステム２０とがリモートコピー機能を搭載している必要がある。例えば、リモートコピー機能を有しないストレージシステム２０Ｃがリモートコピー要求を受けた場合に、ストレージシステム２０Ｃがリモートコピー機能を有するストレージシステム２０Ａ，２０Ｂを検索し、ストレージシステム２０Ｃからストレージシステム２０Ａ，２０Ｂにリモートコピーコマンドを転送して、ストレージシステム２０Ａとストレージシステム２０Ｂとの間でリモートコピーを実行してもよい。
【０１４１】
次に、図１１乃至図１６の方法でコマンドを転送する際に障害が生じたときの処理について、図１８を参照しながら説明する。ここでは、ストレージシステム２０Ｃに障害が生じ、ストレージシステム２０Ｃから管理サーバ５０に障害の報告が通知された直後に（つまり、ホスト計算機５１もストレージシステム２０Ａもストレージシステム２０Ｃの障害を認識していないときに）、ホスト計算機５１がストレージシステム２０ＡにコマンドＣ００１を発行した場合を例に説明する。
【０１４２】
ストレージシステム２０Ｃに障害が発生すると、ストレージシステム２０Ｃは、管理サーバ５０に障害報告を行う（Ｓ９０１）。
【０１４３】
次に、ホスト計算機５１は、ストレージシステム２０Ｃの障害を認識する前に、コマンドＣ００１をストレージシステム２０Ａに発行する（Ｓ９０２）。
【０１４４】
次に、ストレージシステム２０Ａは、自身が管理するコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を参照し、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０Ｃを検索する（Ｓ９０３）。
【０１４５】
次に、ストレージシステム２０Ａは、コマンドＣ００１をストレージシステム２０Ａに転送する（Ｓ９０４）。
【０１４６】
ところが、ストレージシステム２０Ｃは障害中であるので、ストレージシステム２０Ｃからストレージシステム２０Ａにエラーが返送される（Ｓ９０５）。
【０１４７】
ストレージシステム２０Ａは、ストレージシステム２０Ｃからエラー報告を受けることにより、ストレージシステム２０Ｃが障害中であることを認識し、障害情報１０７のストレージシステム２０Ｃの"ステータス"を"障害"に更新する（Ｓ９０６）。
【０１４８】
ストレージシステム２０Ａは、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０が他に存在しているならば（Ｓ９０７；ＹＥＳ）、ステップＳ９０３の処理に戻る。
【０１４９】
一方、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０が他に存在しないならば（Ｓ９０７；ＮＯ）、ストレージシステム２０Ａは、ホスト計算機５１にエラーを報告する（Ｓ９０８）。
【０１５０】
次に、ストレージシステム２０Ａは、管理サーバ５１にストレージシステム２０Ｃの障害を報告する（Ｓ９０９）。管理サーバ５１は、ストレージシステム２０Ａからの障害報告を受けると、自身が管理する障害情報１０７のストレージシステム２０Ｃの"ステータス"を"障害"に更新する。
【０１５１】
次に、図１１乃至図１６の方法でコマンドを転送する際に障害が生じたときの他の処理について、図１９を参照しながら説明する。ここでは、ストレージシステム２０Ｃに障害が生じ、ストレージシステム２０Ｃから管理サーバ５０に障害の報告が通知され、更に管理サーバ５１から各ストレージシステム２０に障害の報告が通知された後に（つまり、各ストレージシステム２０がストレージシステム２０Ｃの障害を認識しているときに）、ホスト計算機５１がストレージシステム２０ＡにコマンドＣ００１を発行した場合を例に説明する。
【０１５２】
ストレージシステム２０Ｃに障害が発生すると、ストレージシステム２０Ｃは、管理サーバ５０に障害報告を行う（Ｓ１００１）。
【０１５３】
次に、管理サーバ５０は、仮想ストレージシステム１００内の全てのストレージシステム２０にストレージシステム２０Ｃの障害を通知する（Ｓ１００２）。
【０１５４】
各ストレージシステム２０は、管理サーバ５０からの通知により、ストレージシステム２０Ｃが障害中であることを認識し、障害情報１０７のストレージシステム２０Ｃの"ステータス"を"障害"に更新する（Ｓ１００３）。
【０１５５】
次に、ホスト計算機５１は、ストレージシステム２０Ｃの障害を認識する前に、コマンドＣ００１をストレージシステム２０Ａに発行する（Ｓ１００４）。
【０１５６】
次に、ストレージシステム２０Ａは、自身が管理するコマンド−機能対応テーブル１０４及び機能−装置対応テーブル１０５を参照して、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０Ｃを検索し、更に障害情報１０７を参照して、ストレージシステム２０Ｃが障害中であることを認識する（Ｓ１００５）。
【０１５７】
ストレージシステム２０Ａは、ホスト計算機５１にエラーを報告する（Ｓ１００６）。
【０１５８】
尚、ステップＳ１００５において、コマンドＣ００１に対応する機能Ａを有するストレージシステム２０が複数存在する場合には、ストレージシステム２０Ａは、正常に動作しているストレージシステム２０にコマンドＣ００１を転送してもよい。
【０１５９】
次に、仮想ストレージシステム１００内の負荷分散について、図２０を参照しながら説明する。ここでは、仮想ストレージシステム１００内の複数のストレージシステム２０のうちストレージシステム２０Ｃの負荷が大きい場合を例示する。
【０１６０】
管理サーバ５０は、仮想ストレージシステム１００内の各ストレージシステム２０から負荷情報を取得し、ストレージシステム２０Ｃに負荷が集中していることを認識する（Ｓ１１０１）。負荷情報として、各ストレージシステム２０のリソース稼働率、占有率などがある。
【０１６１】
次に、管理サーバ５０は、ストレージシステム２０Ｃに負荷が集中していることをストレージシステム２０Ｃに通知する（Ｓ１１０２）。
【０１６２】
次に、ストレージシステム２０Ｃは、移行候補の論理デバイスとして、ストレージシステム２０Ｃにのみ実装されているプログラムＰ３を使用していない論理デバイス（以下、移行候補論理デバイスと称する。）を選択する（Ｓ１１０３）。ストレージシステム２０Ｃにのみ実装されているプログラムＰ３を使用していない論理デバイスを移行候補論理デバイスとして選択するのは、ストレージシステム２０Ｃにのみ実装されているプログラムＰ３への負荷が大きい場合、プログラムＰ３を使用する論理デバイスを移行候補論理デバイスとして選択しても、負荷分散にならないためである。
【０１６３】
次に、ストレージシステム２０Ｃは、移行候補論理デバイスを移行することを管理サーバ５０に通知する（Ｓ１１０４）。
【０１６４】
次に、管理サーバ５０は、各ストレージシステム２０のリソース稼働率などを参照し、移行候補論理デバイスの移行先ストレージシステム２０を決定する（Ｓ１１０５）。ここでは、移行先ストレージシステム２０として、ストレージシステム２０Ａが選択された場合を例示する。
【０１６５】
次に、管理サーバ５０は、ストレージシステム２０Ｃに移行先のストレージシステム２０Ａを指定した上で、移行候補論理デバイスの移行指示を送信する（Ｓ１１０６）。
【０１６６】
次に、ストレージシステム２０Ｃは、管理サーバ５０からの指示に従い、移行候補論理デバイスを移行先ストレージシステム２０Ａに移行する（Ｓ１１０７）。
【０１６７】
尚、移行先ストレージシステム２０をどのストレージシステム２０にするかは、サービスプロセッサ８１経由でシステム管理者がストレージシステム２０Ｃに入力してもよく、或いはホスト計算機５１がストレージシステム２０Ｃに指示を与えてもよい。
【０１６８】
次に、仮想ストレージシステム１００を構成する複数のストレージシステム２０の性能差を考慮したコマンド処理について、図２１乃至図２２を参照しながら説明する。仮想ストレージシステム１００を構成する複数のストレージシステム２０に性能差がある場合には、高性能ストレージシステムに多くのＩ／Ｏ要求を処理してもらうことにより、仮想ストレージシステム１００全体の処理性能を向上させることができる。
【０１６９】
図２１はスペック情報１０９を示す。スペック情報１０９は、各ストレージシステム２０Ａ，２０Ｂ，２０Ｃのプロセッサ性能、ポート性能、キャッシュ容量などを含む。スペック情報１０９は、各ストレージシステム２０のメモリ２２、管理サーバ５０、マスタサービスプロセッサ８２、又はサービスプロセッサ８１などに格納される。
【０１７０】
次に、複数のストレージシステム２０の性能差を考慮したコマンド処理について、図２２を参照しながら説明する。ここでは、各ストレージシステム２０がスペック情報１０９を保持している場合を例示する。
【０１７１】
ストレージシステム２０Ａは、ホスト計算機５１からコマンドを受信すると（Ｓ１２０１）、スペック情報１０９を参照し、仮想ストレージシステム１００の中から高性能ストレージシステムを検索する（Ｓ１２０２）。ここでは、ストレージシステム２０Ｃが高性能ストレージシステムである場合を例示する。
【０１７２】
ストレージシステム２０Ａは、ストレージシステム２０Ｃにホスト計算機５１からのコマンドを転送する（Ｓ１２０３）。高性能ストレージシステムに多くのコマンドを処理してもらうことで、仮想ストレージシステム１００全体の処理性能を向上させることが可能となる。例えば、通常のホストアクセスについては、高性能ストレージシステム２０Ｃにできるだけ多く処理させる一方、コーピーなどのＩ／Ｏ処理については、その他のストレージシステム２０Ａ（高性能であることを要しない。）に処理させるのが好適である。
【０１７３】
高性能ストレージシステム２０Ｃと、その他のストレージシステム２０Ａとのそれぞれにどの程度、Ｉ／Ｏ要求を処理してもらうかは、高性能ストレージシステム２０Ｃとその他のストレージシステム２０Ａとの性能差から割り出した比率などで決定するのが好適である。例えば、高性能ストレージシステム２０Ｃのキャッシュ容量がその他のストレージシステム２０Ａのキャッシュ容量の２倍であるならば、高性能ストレージシステム２０ＣのＩ／Ｏ処理数をその他のストレージシステム２０ＡのＩ／Ｏ処理数の２倍程度にする。
【０１７４】
次に、仮想ストレージシステム１００を構成する複数のストレージシステム２０の稼働率差を考慮したコマンド処理について、図２３乃至図２４を参照しながら説明する。仮想ストレージシステム１００を構成する複数のストレージシステム２０に稼働率差がある場合には、低稼働率ストレージシステム２０に多くのＩ／Ｏ要求を処理してもらうことにより、仮想ストレージシステム１００全体の処理性能を向上させることができる。
【０１７５】
図２３は稼働率情報１１０を示す。稼働率情報１１０は、各ストレージシステム２０Ａ，２０Ｂ，２０Ｃの稼働率（ＣＰＵ２２のプロセッサ使用率、ＣＰＵ２２の単位時間あたりにおけるＩ／Ｏ処理回数（ＩＯＰＳ）、インターフェース制御部２６の単位時間あたりのデータ転送量（転送レート）、ストレージシステム２０がホスト計算機５１からＩ／Ｏリクエストを受信して応答するまでの時間（応答時間）など）を含む。稼働率情報１１０は、各ストレージシステム２０のメモリ２２、管理サーバ５０、マスタサービスプロセッサ８２、又はサービスプロセッサ８１などに格納される。
【０１７６】
次に、複数のストレージシステム２０の稼働率差を考慮したコマンド処理について、図２４を参照しながら説明する。ここでは、各ストレージシステム２０が稼働率情報１１０を保持している場合を例示する。
【０１７７】
ストレージシステム２０Ａは、ホスト計算機５１からコマンドを受信すると（Ｓ１３０１）、稼働率情報１１０を参照し、仮想ストレージシステム１００の中から低稼働率ストレージシステム２０を検索する（Ｓ１３０２）。ここでは、ストレージシステム２０Ｃの稼働率が低い場合を例示する。
【０１７８】
ストレージシステム２０Ａは、ストレージシステム２０Ｃにホスト計算機５１からのコマンドを転送する（Ｓ１３０３）。低稼働率ストレージシステム２０Ｃに多くのコマンドを処理してもらうことで、仮想ストレージシステム１００全体の処理性能を向上させることが可能となる。例えば、通常のホストアクセスについては、低稼働率ストレージシステム２０Ｃにできるだけ多く処理させる一方、コーピーなどのＩ／Ｏ処理については、その他のストレージシステム２０Ａ（低稼働率であることを要しない。）に処理させるのが好適である。
【０１７９】
低稼働率ストレージシステム２０Ｃと、その他のストレージシステム２０Ａとのそれぞれにどの程度、Ｉ／Ｏ要求を処理してもらうかは、低稼働率ストレージシステム２０Ｃとその他のストレージシステム２０Ａとの稼働率差から割り出した比率などで決定するのが好適である。例えば、ストレージシステム２０Ｃの稼働率がその他のストレージシステム２０Ａの稼働率の１／２であるならば、ストレージシステム２０ＣのＩ／Ｏ処理数をその他のストレージシステム２０ＡのＩ／Ｏ処理数の２倍程度にする。
【０１８０】
尚、ストレージシステム２０の性能差を考慮したコマンド処理（図２２）又はストレージシステム２０の稼働率差を考慮したコマンド処理（図２４）を実施する上で、仮に、ストレージシステム２０Ａが処理すべきＩ／Ｏ要求をストレージシステム２０Ｃが処理するならば、実データを格納する論理デバイスをストレージシステム２０Ａからストレージシステム２０Ｃに移行し、ホスト計算機５１からストレージシステム２０Ｃへ直接Ｉ／Ｏ要求を発行すればよい。仮に実データが外部ストレージシステム７０に格納されている場合には、外部ストレージシステム７０の制御担当をストレージシステム２０Ａからストレージシステム２０Ｃに切り替えればよい。
【０１８１】
また、「高性能ストレージシステムを検索する主体」又は「低稼働率ストレージシステムを検索する主体」は、各ストレージシステム２０に限らず、例えば、管理サーバ５０、サービスプロセッサ８１、マスタサービスプロセッサ８２、ホスト計算機５１、又は仮想化装置５２でもよい。即ち、ホスト計算機５１からコマンドを受信したストレージシステム２０Ａがストレージシステム２０Ｃにコマンドを転送する際の処理手順は、上述した図１１乃至図２０の処理において、「コマンドに対応する機能を有するストレージシステムの検索」を「高性能ストレージシステムの検索」又は「低稼働率ストレージシステムの検索」に置き換えた方式に準じることもできる。
【０１８２】
図２５は仮想ストレージシステム１０１のシステム構成を示す。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、詳細な説明を省略する。仮想ストレージシステム１０１は、複数のストレージシステム２０Ａ，２０Ｂ，２０Ｃを一つのストレージシステム１０１に仮想化したものである。図１に示した仮想ストレージシステム１００と異なる点は、仮想ストレージシステム１０１は、外部ストレージシステム７０を有しないことである。即ち、各ストレージシステム２０は、実データを格納する実デバイスを有する。仮想ストレージシステム１０１においても、上述したコマンド管理や障害処理などの処理（図１１乃至図２２に示した処理）を行うことができる。
【０１８３】
本実施形態によれば、複数のストレージシステム２０を論理的に一つの記憶資源に仮想化してなる仮想ストレージシステム１００，１０１において、各ストレージシステム２０が有する機能が異なる場合であっても、ホスト計算機５１からのコマンドを適切に処理できる。また、ストレージシステム２０として、新旧の機種が混在し、各ストレージシステム２０の機能が異なるような場合でも、仮想ストレージシステム１００，１０１全体として、各ストレージシステム２０の機能を共有できる。
【図面の簡単な説明】
【０１８４】
【図１】本実施形態に係る仮想ストレージシステムのシステム構成図である。
【図２】同一デバイス対応テーブルの説明図である。
【図３】ストレージシステムのメモリ内に格納されている各種プログラム及びテーブルの説明図である。
【図４】コマンド−機能対応テーブルの説明図である。
【図５】機能−装置対応テーブルの説明図である。
【図６】ストレージシステムが有する機能の説明図である。
【図７】ストレージシステムが有する機能の説明図である。
【図８】デバイス情報テーブルの説明図である。
【図９】障害情報の説明図である。
【図１０】一般的なコマンド処理を示すフローチャートである。
【図１１】仮想ストレージシステムが実行するコマンド管理を示すフローチャートである。
【図１２】仮想ストレージシステムが実行する他のコマンド管理を示すフローチャートである。
【図１３】ホスト計算機が実行するコマンド管理を示すフローチャートである。
【図１４】仮想化装置が実行するコマンド管理を示すフローチャートである。
【図１５】マスタサービスプロセッサが実行するコマンド管理を示すフローチャートである。
【図１６】コマンドデバイスを用いたコマンド管理を示すフローチャートである。
【図１７】ホスト計算機がコマンドを再発行することによりコマンド管理を行う処理を示すフローチャートである。
【図１８】コマンドを転送する際に障害が生じたときの処理を示すフローチャートである。
【図１９】コマンドを転送する際に障害が生じたときの他の処理を示すフローチャートである。
【図２０】仮想ストレージシステムの負荷分散処理を示すフローチャートである。
【図２１】スペック情報の説明図である。
【図２２】各ストレージシステムの性能差を考慮したコマンド処理を示すフローチャートである。
【図２３】稼働率情報の説明図である。
【図２４】各ストレージシステムの稼働率を考慮したコマンド処理を示すフローチャートである。
【図２５】本実施形態に係る仮想ストレージシステムのシステム構成図である。
【符号の説明】
【０１８５】
２０…ストレージシステム  ５１…ホスト計算機  ５２…仮想化装置  ７０…外部ストレージシステム  １００…ストレージシステム  １０４…コマンド−機能対応テーブル  １０５…機能−装置対応テーブル  １０７…障害情報
【図１】
0004800059.tif 000002
【図２】
0004800059.tif 000003
【図３】
0004800059.tif 000004
【図４】
0004800059.tif 000005
【図５】
0004800059.tif 000006
【図６】
0004800059.tif 000007
【図７】
0004800059.tif 000008
【図８】
0004800059.tif 000009
【図９】
0004800059.tif 000010
【図１０】
0004800059.tif 000011
【図１１】
0004800059.tif 000012
【図１２】
0004800059.tif 000013
【図１３】
0004800059.tif 000014
【図１４】
0004800059.tif 000015
【図１５】
0004800059.tif 000016
【図１６】
0004800059.tif 000017
【図１７】
0004800059.tif 000018
【図１８】
0004800059.tif 000019
【図１９】
0004800059.tif 000020
【図２０】
0004800059.tif 000021
【図２１】
0004800059.tif 000022
【図２２】
0004800059.tif 000023
【図２３】
0004800059.tif 000024
【図２４】
0004800059.tif 000025
【図２５】
0004800059.tif 000026