(57)【要約】【課題】個別に稼動していたストレージシステムをスムーズに仮想ストレージシステムの構成要素とすることができるようにする。【解決手段】上位装置から送信された要求に従って第一のストレージシステムで実行される処理の対象である管理対象を、第一と第二の管理識別子とで管理する。第一の管理識別子を指定した要求を上位装置から受信し、その要求で指定されている第一の管理識別子を、それに対応した第二の管理識別子に変換する。【選択図】図７
2008040571.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から送信された要求に従って第一のストレージシステムで実行される処理の対象である管理対象を管理し、該第一のストレージシステムの動作を制御する装置であって、
複数の管理対象の各々についての第一と第二の管理識別子を記録した識別子対応情報を記憶する識別子対応記憶部と、
第一の管理識別子を指定した要求を前記上位装置から受信する受信部と、
前記受信した要求で指定されている第一の管理識別子に対応した第二の管理識別子を前記識別子対応情報から特定する対応特定部と、
前記特定された第二の管理識別子を前記第一のストレージシステムの処理部に出力する出力部と
を備え、
前記第二の管理識別子は、前記第一のストレージシステムでの処理のために使用される種類の管理識別子であり、前記出力された第二の管理識別子から、前記第一のストレージシステムの処理部が、処理の対象を識別し、
前記第一の管理識別子は、前記上位装置で認識される種類の管理識別子であり、前記第一のストレージシステムが、複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムの構成要素とされる際に、該仮想ストレージシステムにおける他のストレージシステムでの管理対象の第一の管理識別子と重複しない値に変更される、
制御装置。
【請求項２】
前記第一と第二の管理識別子は、前記第一のストレージシステムに存在する複数の論理的な記憶デバイスの各々を識別するための識別子、及び／又は、複数の特定のリソースの各々を識別するための識別子である、
請求項１記載の制御装置。
【請求項３】
前記仮想ストレージシステムを構成するストレージシステムの台数の変更に応じて前記第一の管理識別子を変更する変更部、
を更に備える請求項１記載の制御装置。
【請求項４】
前記台数の変更とは、既存の仮想ストレージシステムに前記第一のストレージシステムを増設することであり、
前記変更部は、前記第一のストレージシステムの複数の管理対象にそれぞれ対応した複数の第一の管理識別子を、それぞれ、前記既存の仮想ストレージシステムにおける各他のストレージシステムでの複数の第一の管理識別子と重複しない値に変更する、
請求項３記載の制御装置。
【請求項５】
前記台数の変更とは、前記第一のストレージシステムを含んだ既存の第一の仮想ストレージシステムに、第二の仮想ストレージシステムをマージすることで、第三の仮想ストレージシステムを構築することであり、
前記変更部は、前記第一のストレージシステムの複数の管理対象にそれぞれ対応した複数の第一の管理識別子を、それぞれ、前記第三の仮想ストレージシステムの各他のストレージシステムにおける複数の第一の管理識別子と重複しない値に変更する、
請求項３記載の制御装置。
【請求項６】
変更後の前記複数の第一の管理識別子を前記上位装置に通知する変更報告部、
を更に備える請求項３記載の制御装置。
【請求項７】
前記変更部は、前記仮想ストレージシステムから前記第一のストレージシステムが減設されたことにより該第一のストレージシステムが単独となった場合には、前記複数の第一の管理識別子を、それぞれ、前記複数の第二の管理識別子と同じ値に変更する、
請求項３記載の制御装置。
【請求項８】
前記複数の管理対象の各々は、論理的な記憶デバイスであり、
前記仮想化ストレージシステムを構成する前記第一のストレージシステムと第二のストレージシステムは、前記仮想化ストレージシステムを構成しない外部のストレージシステムに接続されており、且つ、前記第一のストレージシステムにおける実体の無い第一の仮想的な論理記憶デバイスと、前記第二のストレージシステムにおける実体の無い第二の仮想的な論理記憶デバイスとが、前記外部ストレージシステムにおける実体の有る外部論理記憶デバイスに接続されており、
前記変更部は、前記第一の仮想的な論理記憶デバイスの第一の管理識別子を、前記第二の仮想的な論理記憶デバイスの第一の管理識別子と同じ値にする、
請求項３記載の制御装置。
【請求項９】
複数のストレージシステムを論理的に一つの記憶資源を仮想化してなる仮想ストレージシステムでの管理方法であって、
前記複数のストレージシステムのそれぞれが保持する複数の管理計算機をネットワークで接続し、
前記複数の管理計算機でそれぞれ管理される複数の管理情報を一つのマスタの管理計算機で一括して管理する、
統合管理方法。
【請求項１０】
前記複数の管理計算機とは別の管理計算機を前記ネットワークに接続し、
前記別の管理計算機を前記マスタの管理計算機とし、
前記複数の管理計算機をスレイブの管理計算機とし、
前記マスタの管理計算機が、前記複数のスレイブの管理計算機のそれぞれの識別子を記憶し、
前記複数のスレイブの管理計算機の各々が、前記マスタの管理計算機の識別子を記憶し、
前記複数のスレイブの管理計算機の各々が、前記マスタの管理計算機に、管理情報を送信し、
前記マスタの管理計算機が、前記複数のスレイブの管理計算機からそれぞれ複数の管理情報を受信し、前記受信した複数の管理情報を、前記マスタの管理計算機の記憶資源に格納する、
請求項９記載の統合管理方法。
【請求項１１】
前記複数の管理計算機のうちの一つを前記マスタの管理計算機とし、他の管理計算機をスレイブの管理計算機とし、
前記マスタの管理計算機が、スレイブの管理計算機の識別子を記憶し、
前記スレイブの管理計算機が、前記マスタの管理計算機の識別子を記憶し、
前記スレイブの管理計算機が、前記マスタの管理計算機に、管理情報を送信し、
前記マスタの管理計算機が、前記スレイブの管理計算機から管理情報を受信し、前記受信した管理情報を、前記マスタの管理計算機の記憶資源に格納し、
前記マスタの管理計算機は、前記スレイブの管理計算機の管理情報の他に、自分が接続されているストレージシステムを管理するための管理情報も、前記マスタの管理計算機の前記記憶資源に格納する、
請求項９記載の統合管理方法。
【請求項１２】
前記マスタの管理計算機を多重化し、多重化されたマスタの管理計算機のうちの一つをアクティブとし、他をパッシブとし、
前記アクティブのマスタの管理計算機が停止した場合に、いずれかのパッシブのマスタの管理計算機がアクティブとなって、前記停止したマスタの管理計算機に代わって、マスタの管理計算機として稼動する、
請求項９記載の統合管理方法。
【請求項１３】
前記マスタの管理計算機は、自分以外の管理計算機に、自分の識別子であるマスタ識別子をブロードキャストし、
前記マスタ識別子を受信した管理計算機が、自分の記憶資源に、前記受信したマスタ識別子を格納し、それに応答して、自分の識別子であるスレイブ識別子を、前記マスタ識別子の送信元である前記マスタの管理計算機に送信し、
前記マスタの管理計算機は、自分以外の管理計算機から前記スレイブ識別子を受信し、該受信したスレイブ識別子を、自分の記憶資源に格納する、
請求項９記載の統合管理方法。
【請求項１４】
上位装置から送信された要求に従って第一のストレージシステムで実行される処理の対象である管理対象を管理し、該第一のストレージシステムの動作を制御する制御装置と、
前記第一のストレージシステムを含んだ複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムと、
前記仮想ストレージシステムを前記一つの記憶資源として提供するための仮想化部と
を備え、
前記制御装置は、
複数の管理対象の各々についての第一と第二の管理識別子を記録した識別子対応情報を記憶する識別子対応記憶部と、
第一の管理識別子を指定した要求を前記上位装置から受信する受信部と、
前記受信した要求で指定されている第一の管理識別子に対応した第二の管理識別子を前記識別子対応情報から特定する対応特定部と、
前記特定された第二の管理識別子を前記第一のストレージシステムの処理部に出力する出力部と
を備え、
前記第二の管理識別子は、前記第一のストレージシステムでの処理のために使用される種類の管理識別子であり、前記出力された第二の管理識別子から、前記第一のストレージシステムの処理部が、処理の対象を識別し、
前記第一の管理識別子は、前記上位装置で認識される種類の管理識別子であり、前記第一のストレージシステムが、複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムの構成要素とされる際に、該仮想ストレージシステムにおける他のストレージシステムでの管理対象の第一の管理識別子と重複しない値に変更される、
計算機システム。
【請求項１５】
前記制御装置が、
前記仮想ストレージシステムを構成するストレージシステムの台数の変更に応じて前記第一の管理識別子を変更する変更部と、
変更後の前記複数の第一の管理識別子を前記仮想化部に通知する変更報告部と
を更に備え、
前記仮想化部が、ホスト計算機が指定し得る複数の第三の管理識別子と前記複数の第一の管理識別子との対応を管理し、前記変更後の複数の第一の管理識別子を受信した場合、前記複数の第三の管理識別子にそれぞれ対応付けられている複数の第一の管理識別子を、前記受信した変更後の複数の第一の管理識別子に変更する、
請求項１４記載の計算機システム。
【請求項１６】
前記上位装置が、前記ホスト計算機と前記仮想ストレージシステムとの間に介在するスイッチであり、
前記仮想化部が、前記スイッチに搭載されている、
請求項１４記載の計算機システム。
【請求項１７】
前記上位装置が、前記ホスト計算機であり、
前記仮想化部が、前記ホスト計算機に搭載されている、
請求項１４記載の計算機システム。
【請求項１８】
請求項１記載の制御装置を備えたストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージシステムを論理的に一つの記憶資源として仮想化した仮想ストレージシステムに関する。
【背景技術】
【０００２】
例えば、ストレージ分野では、ネットワーク上に分散する複数のコンピューティングリソースをあたかも一つのコンピューティングリソースであるかのように運用し、処理性能や耐障害性の向上を図る「ストレージグリッド（広域広帯域共有ファイルシステム）」が注目されている。ストレージグリッドの運用方法として、複数のストレージシステムを論理的に一つの記憶資源として仮想化する方法が知られている。
【０００３】
また、ボリュームを仮想化する技術として、第一のストレージシステムの外部に存在する第二のストレージシステムの論理ユニットを第一のストレージシステム内で管理する技術が知られている（例えば特開２００５−１０７６４５号公報）。
【０００４】
【特許文献１】特開２００５−１０７６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ストレージグリッドを構築する方法として、例えば、単体のストレージシステムとして稼動していたものを複数台集めて構築することが考えられる。具体例として、ストレージシステムＡとＢの２台をストレージグリッドとする場合について考える。
【０００６】
単純に、それらのストレージシステムＡとＢの境界をなくして仮想的に１台のシステムとした場合、論理的な記憶デバイス（論理ボリュームとも呼ばれる、以下、「ＬＤＥＶ」と略記する）の番号（番号に限らず他種の識別子でも良い）は、ストレージシステムＡ、Ｂそれぞれにつけられているため、同じＬＤＥＶ番号のＬＤＥＶが複数存在してしまうという問題が発生し得る。これは、ＬＤＥＶ番号だけではなく、他種の管理識別子でも生じ得る。例えば、コピー系の制御情報、例としては、ペア番号やグループ番号（複数のペアから成るグループの番号）等においても同じ問題が発生し得る。このため、個別に稼動していたストレージシステムをスムーズに仮想ストレージシステムの構成要素とすることは難しい。
【０００７】
さらに、ストレージシステムＡ、Ｂは、それぞれ、少なくとも１つの管理装置（以下、ＳＶＰ（Service Processor））を備えている場合がある。ＳＶＰは、例えば、管理対象のストレージシステムへの情報入力の指示を受けたり、情報を出力したり、ストレージシステムの管理情報を保持したりする。ストレージシステムＡ、Ｂをストレージグリッドとして仮想ストレージシステムを構築し、ストレージシステムＡのＳＶＰで管理する情報を、ストレージシステムＢが取得したい場合、ストレージシステムＢは、ストレージシステムＡのＳＶＰへの問い合わせが必要となる。このため、ストレージシステムＢは、ストレージシステムＡのＳＶＰから管理情報を取得するたびに、そのＳＶＰに問い合わせをすることになるので、処理が煩雑になり、負荷も増加する。
【０００８】
従って、本発明の目的は、個別に稼動していたストレージシステムをスムーズに仮想ストレージシステムの構成要素とすることができるようにすることにある。
【０００９】
本発明の別の目的は、仮想ストレージシステムにおける各ストレージシステムが各他のストレージシステムの管理装置に管理情報を問い合わせなくても済む新規な管理方法を提供することにある。
【００１０】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本発明の第一の側面に従う制御装置は、上位装置から送信された要求に従って第一のストレージシステムで実行される処理の対象である管理対象を管理し、該第一のストレージシステムの動作を制御する装置である。この制御装置は、複数の管理対象の各々についての第一と第二の管理識別子を記録した識別子対応情報を記憶する識別子対応記憶部と、第一の管理識別子を指定した要求を前記上位装置から受信する受信部と、前記受信した要求で指定されている第一の管理識別子に対応した第二の管理識別子を前記識別子対応情報から特定する対応特定部と、前記特定された第二の管理識別子を前記第一のストレージシステムの処理部に出力する出力部とを備える。前記第二の管理識別子は、前記第一のストレージシステムでの処理のために使用される種類の管理識別子である。前記出力された第二の管理識別子から、前記第一のストレージシステムの処理部が、処理の対象を識別することができる。前記第一の管理識別子は、前記上位装置で認識される種類の管理識別子であり、前記第一のストレージシステムが、複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムの構成要素とされる際に、該仮想ストレージシステムにおける他のストレージシステムでの管理対象の第一の管理識別子と重複しない値に変更される。
【００１２】
この制御装置は、第一のストレージシステムに搭載されていても良いし、該第一のストレージシステムとは別の装置であってもよい。
【００１３】
この制御装置の第一の実施態様では、前記第一と第二の管理識別子は、前記第一のストレージシステムに存在する複数の論理的な記憶デバイスの各々を識別するための識別子、及び／又は、複数の特定のリソースの各々を識別するための識別子である。特定のリソースとは、例えば、論理的な記憶デバイスから別の論理的な記憶デバイスへのコピーのためのペアとすることができる。このペアは、単一のペアであっても良いし、複数のペアで構成されたペアグループの構成要素であるペアであってもよい。
【００１４】
この制御装置の第二の実施態様では、前記仮想ストレージシステムを構成するストレージシステムの台数の変更に応じて前記第一の管理識別子を変更する変更部が更に備えられる。
【００１５】
この制御装置の第三の実施態様では、前記第二の実施態様において、前記台数の変更とは、既存の仮想ストレージシステムに前記第一のストレージシステムを増設することである。前記変更部は、前記第一のストレージシステムの複数の管理対象にそれぞれ対応した複数の第一の管理識別子を、それぞれ、前記既存の仮想ストレージシステムにおける各他のストレージシステムでの複数の第一の管理識別子と重複しない値に変更する。
【００１６】
この制御装置の第四の実施態様では、前記第二の実施態様において、前記台数の変更とは、前記第一のストレージシステムを含んだ既存の第一の仮想ストレージシステムに、第二の仮想ストレージシステムをマージすることで、第三の仮想ストレージシステムを構築することである。前記変更部は、前記第一のストレージシステムの複数の管理対象にそれぞれ対応した複数の第一の管理識別子を、それぞれ、前記第三の仮想ストレージシステムの各他のストレージシステムにおける複数の第一の管理識別子と重複しない値に変更する。
【００１７】
この制御装置の第五の実施態様では、前記第二の実施態様において、変更後の前記複数の第一の管理識別子を前記上位装置に通知する変更報告部が更に備えられる。
【００１８】
この制御装置の第六の実施態様では、前記第二の実施態様において、前記変更部は、前記仮想ストレージシステムから前記第一のストレージシステムが減設されたことにより該第一のストレージシステムが単独となった場合には、前記複数の第一の管理識別子を、それぞれ、前記複数の第二の管理識別子と同じ値に変更する。
【００１９】
この制御装置の第七の実施態様では、前記第二の実施態様において、前記複数の管理対象の各々は、論理的な記憶デバイスである。前記仮想化ストレージシステムを構成する前記第一のストレージシステムと第二のストレージシステムは、前記仮想化ストレージシステムを構成しない外部のストレージシステムに接続されており、且つ、前記第一のストレージシステムにおける実体の無い第一の仮想的な論理記憶デバイスと、前記第二のストレージシステムにおける実体の無い第二の仮想的な論理記憶デバイスとが、前記外部ストレージシステムにおける実体の有る外部論理記憶デバイスに接続されている。この場合、前記変更部は、前記第一の仮想的な論理記憶デバイスの第一の管理識別子を、前記第二の仮想的な論理記憶デバイスの第一の管理識別子と同じ値にする。
【００２０】
本発明の第二の側面に従う管理方法は、複数のストレージシステムを論理的に一つの記憶資源を仮想化してなる仮想ストレージシステムでの管理方法である。この管理方法では、前記複数のストレージシステムのそれぞれが保持する複数の管理計算機をネットワークで接続し、前記複数の管理計算機でそれぞれ管理される複数の管理情報を一つのマスタの管理計算機で一括して管理する。
【００２１】
この管理方法の第一の実施態様では、前記複数の管理計算機とは別の管理計算機を前記ネットワークに接続する。前記別の管理計算機を前記マスタの管理計算機とし、前記複数の管理計算機をスレイブの管理計算機とする。前記マスタの管理計算機が、前記複数のスレイブの管理計算機のそれぞれの識別子を記憶する。前記複数のスレイブの管理計算機の各々が、前記マスタの管理計算機の識別子を記憶する。前記複数のスレイブの管理計算機の各々が、前記マスタの管理計算機に、管理情報を送信する。前記マスタの管理計算機が、前記複数のスレイブの管理計算機からそれぞれ複数の管理情報を受信し、前記受信した複数の管理情報を、前記マスタの管理計算機の記憶資源に格納する。
【００２２】
この管理方法の第二の実施態様では、前記複数の管理計算機のうちの一つを前記マスタの管理計算機とし、他の管理計算機をスレイブの管理計算機とする。前記マスタの管理計算機が、スレイブの管理計算機の識別子を記憶する。前記スレイブの管理計算機が、前記マスタの管理計算機の識別子を記憶する。前記スレイブの管理計算機が、前記マスタの管理計算機に、管理情報を送信する。前記マスタの管理計算機が、前記スレイブの管理計算機から管理情報を受信し、前記受信した管理情報を、前記マスタの管理計算機の記憶資源に格納する。前記マスタの管理計算機は、前記スレイブの管理計算機の管理情報の他に、自分が接続されているストレージシステムを管理するための管理情報も、前記マスタの管理計算機の前記記憶資源に格納する。
【００２３】
この管理方法の第三の実施態様では、前記マスタの管理計算機を多重化し、多重化されたマスタの管理計算機のうちの一つをアクティブとし、他をパッシブとする。前記アクティブのマスタの管理計算機が停止した場合に、いずれかのパッシブのマスタの管理計算機がアクティブとなって、前記停止したマスタの管理計算機に代わって、マスタの管理計算機として稼動する。
【００２４】
この管理方法の第四の実施態様では、前記マスタの管理計算機は、自分以外の管理計算機に、自分の識別子であるマスタ識別子をブロードキャストする。前記マスタ識別子を受信した管理計算機が、自分の記憶資源に、前記受信したマスタ識別子を格納し、それに応答して、自分の識別子であるスレイブ識別子を、前記マスタ識別子の送信元である前記マスタの管理計算機に送信する。前記マスタの管理計算機は、自分以外の管理計算機から前記スレイブ識別子を受信し、該受信したスレイブ識別子を、自分の記憶資源に格納する。
【００２５】
本発明の第三の側面に従う計算機システムは、上位装置から送信された要求に従って第一のストレージシステムで実行される処理の対象である管理対象を管理し、該第一のストレージシステムの動作を制御する制御装置と、前記第一のストレージシステムを含んだ複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムと、前記仮想ストレージシステムを前記一つの記憶資源として提供するための仮想化部とを備える。前記制御装置は、複数の管理対象の各々についての第一と第二の管理識別子を記録した識別子対応情報を記憶する識別子対応記憶部と、第一の管理識別子を指定した要求を前記上位装置から受信する受信部と、前記受信した要求で指定されている第一の管理識別子に対応した第二の管理識別子を前記識別子対応情報から特定する対応特定部と、前記特定された第二の管理識別子を前記第一のストレージシステムの処理部に出力する出力部とを備える。前記第二の管理識別子は、前記第一のストレージシステムでの処理のために使用される種類の管理識別子であり、前記出力された第二の管理識別子から、前記第一のストレージシステムの処理部が、処理の対象を識別する。前記第一の管理識別子は、前記上位装置で認識される種類の管理識別子であり、前記第一のストレージシステムが、複数のストレージシステムを論理的に一つの記憶資源に仮想化してなる仮想ストレージシステムの構成要素とされる際に、該仮想ストレージシステムにおける他のストレージシステムでの管理対象の第一の管理識別子と重複しない値に変更される。
【００２６】
この計算機システムの第一の実施態様では、前記制御装置が、前記仮想ストレージシステムを構成するストレージシステムの台数の変更に応じて前記第一の管理識別子を変更する変更部と、変更後の前記複数の第一の管理識別子を前記仮想化部に通知する変更報告部とを更に備える。前記仮想化部が、ホスト計算機が指定し得る複数の第三の管理識別子と前記複数の第一の管理識別子との対応を管理し、前記変更後の複数の第一の管理識別子を受信した場合、前記複数の第三の管理識別子にそれぞれ対応付けられている複数の第一の管理識別子を、前記受信した変更後の複数の第一の管理識別子に変更する。
【００２７】
この計算機システムの第二の実施態様では、前記上位装置が、前記ホスト計算機と前記仮想ストレージシステムとの間に介在するスイッチである。前記仮想化部が、前記スイッチに搭載されている。
【００２８】
この計算機システムの第三の実施態様では、前記上位装置が、前記ホスト計算機であり、
前記仮想化部が、前記ホスト計算機に搭載されている。
【００２９】
上述した制御装置或いは計算機システムの記憶部は、例えば、メモリなどの記憶資源により構築することができる。また、制御装置或いは計算機システムでの他の各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【００３０】
本発明の制御装置や計算機システムによれば、個別に稼動していたストレージシステムをスムーズに仮想ストレージシステムの構成要素とすることができる。
【００３１】
本発明の統合管理方法によれば、仮想ストレージシステムにおける各ストレージシステムが各他のストレージシステムの管理装置に管理情報を問い合わせなくても済む新規な管理方法を提供することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の一実施形態を説明する。
【００３３】
図１は、本発明の一実施形態に係るシステム全体の構成例を示す。以下の説明では、同種の要素を区別しないで説明する場合には、親番号のみ（例えば１００）を用いて説明し、同種の要素を区別して説明する場合には、親番号と子符号（例えば１００Ａ、１００Ｂ）を用いて説明することにする。
【００３４】
仮想ストレージシステム１００Ａは、複数のストレージシステム２０Ａ，２０Ｂと、外部ストレージシステム７０とを備える。同様に仮想ストレージシステム１００Ｂは、複数のストレージシステム２０Ｃ、２０Ｄと、外部ストレージシステム７０とを備える。仮想化ストレージシステム１００Ａと同様な構成である仮想化ストレージシステム１００Ｂが同じＳＡＮ４１に接続されていてもよい。
【００３５】
各ホスト計算機５１は、図示しないＣＰＵや記憶資源（例えばメモリ）を備える。記憶資源に、コンピュータプログラムが記憶されており、ＣＰＵが、そのコンピュータプログラムを実行することができる。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵによって処理が行われるものとする。
【００３６】
それぞれのストレージシステム２０Ａ，２０Ｂには、ホスト計算機５１Ａが接続されている。ホスト計算機５１Ａは、ＳＡＮ（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）ディスクドライブ等のストレージデバイスである。複数のディスクドライブ７００上には、外部ＬＤＥＶ７０１が形成されている。なお、ディスクドライブ７００に代えて又は加えて、他種の記憶デバイス（例えばフラッシュメモリ）があっても良い。
【００５８】
尚、外部ストレージシステム７０は、ストレージシステム２０とは異なる機種であってもよく、或いはストレージシステム２０と同一の機種であってもよい。
【００５９】
ＳＶＰ（サービスプロセッサ）８１は、ストレージシステム２０の構成情報（後述するデバイス情報テーブル１０６、マッピングテーブル１０８を含む）の設定や、稼働情報の取得などを行うコンピュータ端末である。ＳＶＰ８１は、ストレージシステム２０内のＬＡＮインターフェース制御部２８に接続される。各ストレージシステム２０に接続する各ＳＶＰ８１は、一つのマスタＳＶＰに接続される。マスタＳＶＰは、各ＳＶＰ８１から収集した情報（ストレージシステム２０の構成情報、稼働情報など）を一元管理する。尚、複数のＳＶＰ８１のうちの一つがマスタＳＶＰとして機能してもよく、或いは各ストレージシステム２０がマスタＳＶＰ８２に直接接続されていてもよい。マスタＳＶＰを備えた管理方法については、後に詳述する。
【００６０】
仮想ストレージシステム１００は、ストレージシステム２０間で構成情報を送受信することにより、各ストレージシステム２０間におけるコマンド転送やボリュームマイグレーションを実行できる範囲を示している。各ストレージシステム２０に外部ストレージシステム７０が接続されている場合には、仮想ストレージシステム１００の範囲は、複数のストレージシステム２０と外部ストレージシステム７０とを含む。各ストレージシステム２０に外部ストレージシステム７０が接続されていない場合には、仮想ストレージシステム１００の範囲は、複数のストレージシステム２０を含み、外部ストレージシステム７０を含まない。
【００６１】
各ストレージシステム２０は、例えば、ＲＡＩＤ構成された複数のディスクドライブ２４０を備えるディスクアレイシステムとして構成することもできるし、或いは各ストレージストレージシステム２０自体がＳＣＳＩターゲットになる仮想化スイッチとして構成することもできる。ＬＤＥＶ番号などの階層化された管理識別子を管理しストレージシステムの動作を制御する装置を、「制御装置」と総称することができる。制御装置は、ストレージシステム２０の中にあっても良いし、外にあっても良い。
【００６２】
管理ネットワーク４０は、一つ以上のホスト計算機５１に接続している。また、管理ネットワーク４０には、一つ以上のクライアント計算機３０が接続されている。各クライアント計算機３０は、管理ネットワーク４０を介してホスト計算機５１に接続し、アプリケーションプログラム６０を介して仮想ストレージシステム１００にデータ入出力を要求できる。
【００６３】
図３は、ストレージシステム２０のメモリ２２内に格納されている各種プログラム及びテーブルを示す。
【００６４】
メモリ２２には、例えば、オペレーティングシステム１０１、番号管理プログラム１０２、番号管理テーブル１０５、デバイス情報テーブル１０６及びマッピングテーブル１０８が格納される。
【００６５】
番号管理テーブル１０５は、グローバルＬＤＥＶ番号とローカルＬＤＥＶ番号との対応表である。デバイス情報テーブル１０６は、論理デバイスの属性を保持するテーブルである。マッピングテーブル１０８は、外部ＬＤＥＶ７０１のＬＤＥＶ番号とローカルＬＤＥＶ番号（それに代えて又は加えて、グローバルＬＤＥＶ番号であっても良い）との対応関係を表すテーブルである。
【００６６】
図４ａ、図４ｂは番号管理テーブル１０５の構成例を示す。
【００６７】
番号管理テーブル１０５は、仮想ストレージシステム１００の上位の装置（ホスト計算機５１及び／又は仮想化装置５２）に見せる番号である「グローバルＬＤＥＶ番号」と、ストレージシステム２０内部で処理するときの番号である「ローカルＬＤＥＶ番号」との対応表である。例えば、ホスト計算機５１Ａからは、グローバルＬＤＥＶ番号で要求を受け、番号管理プログラム１０２によって、そのグローバルＬＤＥＶ番号に対応するローカルＬＤＥＶ番号が本テーブル１０５から取得され、取得されたローカルＬＤＥＶ番号を用いて、処理（例えば、ＬＤＥＶに対する書き込み又は読出し（Ｉ／Ｏ）の処理）が行われる。交替パスソフトウェア６１には、前述したように、グローバルＬＤＥＶ番号の情報のみ保持される（図２参照）。なお、図４ａと図４ｂの違いについては、後述する。
【００６８】
また、ここでは、ＬＤＥＶ番号についてのテーブル例を示すが、ＬＤＥＶ番号に限らず、個々のストレージシステムで利用されていたが１つの仮想ストレージシステムとなったために重複してしまうおそれのある他種の管理識別子（例えば、コピー系のペア番号やグループ番号など）についても、同様のテーブルを保持することができる。特に、その他種の管理識別子としては、上位の装置（例えばホスト計算機）からの何らかの要求で指定される管理識別子を挙げることができる。
【００６９】
図５は、デバイス情報テーブル１０６の構成例を示す。
【００７０】
デバイス情報テーブル１０６は、各ＬＤＥＶの属性を管理するためのテーブルである。デバイス情報テーブル１０６には、例えば、各ＬＤＥＶ毎に、「デバイス番号」、「ステータスフラグ」、及び「外部デバイスフラグ」が記録される。
【００７１】
「デバイス番号」は、ストレージシステム２０内でＬＤＥＶ２４１，２４２を一意に識別するためのローカルＬＤＥＶ番号である。
【００７２】
「ステータスフラグ」は、ストレージシステム２０内のＬＤＥＶ２４１，２４２を使用している状態にあるか、或いは使用していない状態（空き状態）にあるかを示す。図中の"ＯＮ"は、ＬＤＥＶ２４１，２４２が使用されている状態にあることを示す。
【００７３】
「外部デバイスフラグ」は、ストレージシステム２０内のＬＤＥＶ（仮想デバイス）２４２が外部ＬＤＥＶ７０１として使用されている状態にあるか否かを示す。図中の"ＯＮ"は、ＬＤＥＶ２４２が外部ＬＤＥＶとして使用されていることを示す。"ＯＦＦ"は、ＬＤＥＶ２４１が内部ＬＤＥＶとして使用されていることを示す。外部デバイスフラグのデフォルト値は、"ＯＦＦ"であり、ストレージシステム２０内のＬＤＥＶ２４２が外部ストレージシステム７０内の論理デバイス７０１にマッピングされると、"ＯＦＦ"が"ＯＮ"に変更される。
【００７４】
図６は、ストレージシステム２０がアクセス要求を受けた場合に行われる処理の流れを示す。この図６と、図１及び図３を参照して、ホスト計算機５１から仮想ストレージシステム１００Ａに対するアクセスの際に行われる一連の処理流れを説明する。
【００７５】
アプリケーション６０は、ＬＵＮを指定したアクセス要求を発行する。交替パスソフトウェア６１が、そのアクセス要求で指定されているＬＵＮに対応するストレージシステム識別子及びグローバルＬＤＥＶ番号を、同一デバイス対応テーブル６２から特定する。交替パスソフトウェア６１が、そのストレージシステム識別子から識別されるストレージシステム２０に、そのグローバルＬＤＥＶ番号を指定したアクセス要求を発行する。なお、交替パスソフトウェア６１は、指定されたＬＵＮに対応する交替パスが混んでいる等の特段の理由がある場合には、別の交替パスを使用してアクセス要求を発行しても良い。
【００７６】
図６に示すように、ストレージシステム６０は、グローバルＬＤＥＶ番号が指定されたアクセス要求を受信する（ステップＳ１０１）。この場合、番号管理プログラム１０２によって、そのグローバルＬＤＥＶ番号に対応するローカルＬＤＥＶ番号が、番号管理テーブル１０５から特定される。ストレージシステム６０（例えば、図示しないＩ／Ｏ処理プログラム）が、デバイス情報テーブル１０６を参照し、その特定されたローカルＬＤＥＶ番号が、内部ＬＤＥＶに対応したものか（外部デバイスフラグが"ＯＦＦ"か）、外部ＬＤＥＶに対応したものか（外部デバイスフラグ"ＯＮ"か）を判定する（Ｓ１０２）。つまり、アクセス要求が、外部ＬＤＥＶ７０１へのアクセス要求であるか、内部ＬＤＥＶ２４１へのアクセス要求であるかが判定される。
【００７７】
ストレージシステム２０は、外部ＬＤＥＶ７０１へのアクセス要求であるならば（Ｓ１０２でＹＥＳ）、マッピングテーブル１０８を参照し、外部ＬＤＥＶ７０１へのアドレス変換等を行って、外部ＬＤＥＶ７０１へのアクセス要求を外部ストレージシステム７０に送信する（Ｓ１０４）。一方、ストレージシステム２０は、内部ＬＤＥＶ２４１へのアクセス要求であるならば（Ｓ１０２でＮＯ）、内部ＬＤＥＶ２４１へのアクセスを行う（Ｓ１０３）。
【００７８】
以上が、本実施形態のシステム全体についての説明である。
【００７９】
本実施形態では、仮想ストレージシステムが、以下に説明する手順で構築される。その手順を、図２０に従って説明する。
【００８０】
１．仮想ストレージシステムを構築するストレージシステムの決定（Ｓ６０１）
例えば、管理サーバ５０が、管理者から、仮想ストレージシステムの番号（管理サーバ５０内で管理している仮想ストレージシステムのユニークな番号）の指定と、その仮想ストレージシステムに含めるストレージシステムの番号（管理サーバ５０内で管理しているストレージシステムのユニークな番号）の指定とを受ける。指定された各種番号の登録が行われる。なお、新規に仮想ストレージシステムが作成される場合、所定の方法で生成された新たな仮想ストレージシステム番号（例えば、最後の仮想ストレージシステム番号の最終桁のアルファベットを次のアルファベットに変えたもの）が、その新規の仮想ストレージシステムに割り当てられる。
【００８１】
２．ＳＶＰ統合（Ｓ６０２）
図１２，１３のＭＳＶＰ番号とＳＶＰ番号一覧が登録される。ＳＶＰを統合せずに、複数ＳＶＰのままで仮想ストレージシステム環境を作る場合は、本処理は行われない。
【００８２】
３．Active/Passiveなストレージシステムの決定（Ｓ６０３）
仮想ストレージシステム１００の詳細が決められる。具体的には、外部ＬＤＥＶ７０１をどのストレージシステム２０で交替パスを張るかが決められる。これは、ストレージシステムの各ＬＤＥＶ毎に行われる。
【００８３】
４．外部ＬＤＥＶ決定処理（Ｓ６０４）
ストレージシステム２０に認識させる外部ＬＤＥＶ７０１が決定される（例えば追加される）。複数のストレージシステム２０の各々の仮想デバイスに同一の外部ＬＤＥＶ７０１がマッピングされる場合には、それら複数のストレージシステム２０にその外部ＬＤＥＶ７０１が認識される。
【００８４】
５．ストレージシステム間での交替パスの設定（Ｓ６０５）
例えば、ストレージシステム２０Ａと２０Ｂの両方に外部ＬＤＥＶ７０１が認識された場合、異なるストレージシステム２０Ａ、２０Ｂをそれぞれ経由する交替パスが設定される。なお、上記３．では、同一の外部ＬＤＥＶ７０１にアクセス可能な複数のストレージシステム２０のうちの一つ（例えば制御権を有するストレージシステム）がActiveとされ、他がPassiveとされる。
【００８５】
以下、本実施形態について更に説明を行う。以下、その説明は、（Ａ）階層化されたＬＤＥＶ番号、（Ｂ）統合ＳＶＰ、（Ｃ）仮想ストレージシステム１００でのフェイルオーバ、の順で行う。また、ストレージシステム２０の上位の装置として、ホスト計算機５１や仮想化装置５２などが考えられるが、以下の説明では、その上位装置はホスト計算機５１Ａとする。
【００８６】
＜（Ａ）階層化されたＬＤＥＶ番号＞。
【００８７】
本実施形態の特徴の一つとして、ＬＤＥＶ番号が階層化されている点にある。すなわち、ストレージシステム内での処理に使用されるＬＤＥＶ番号をローカルＬＤＥＶ番号とし、ホスト計算機５１Ａに提供される新規の概念のＬＤＥＶ番号、つまりグローバルＬＤＥＶ番号が用意される。各ストレージシステムは、仮想ストレージシステム１００の一員であろうとなかろうと、ローカルＬＤＥＶ番号の他に、グローバルＬＤＥＶ番号を保持しておく。グローバルＬＤＥＶ番号が格別必要とされなくても、ストレージシステムがグローバルＬＤＥＶ番号を保持することは、本実施形態では有用である。なぜなら、そのストレージシステムを仮想ストレージシステムの一員とすることをスムーズに行うことができるからである。
【００８８】
なお、本実施形態でのＬＤＥＶ番号の階層化は、例えば上記外部接続の公報に開示されているような、ＬＵＮとＬＤＥＶ番号との階層とは、技術思想が全く異なる。本実施形態において、LUNとは、オープンホスト（オープン系のシステムでのホスト計算機）が一つのＬＵ（論理ユニット）を識別するための識別子であり、ポート番号とSCSI-IDの組み合わせで決まる。このため、勝手に変更できる番号ではない。本実施形態では、この勝手に変更できないＬＵＮの下位に、階層化されたＬＤＥＶ番号を用意し、その階層化されたＬＤＥＶ番号を変更することで、上位にインパクトを与えずに、単独で稼動していたストレージシステムを仮想ストレージシステムに組み込んだり、そのストレージシステムを仮想ストレージシステムから減設したりすることができるのである。
【００８９】
以下、具体的に説明する。なお、以下、ストレージシステム２０Ａ、２０Ｂのそれぞれの要素を説明に用いる際、その要素の親番号に、その要素を有するストレージシステムの子符号と同じ子符号を用いる場合がある。例えば、番号管理プログラムを説明に用いる場合、ストレージシステム２０Ａの番号管理プログラムは「１０２Ａ」とし、ストレージシステム２０Ｂの番号管理プログラムは「１０２Ｂ」とすることがある。
【００９０】
図７ａにあるように、ストレージシステム２０Ａとストレージシステム２０Ｂがそれぞれ単体のシステムとして稼動しているとする。ストレージシステム２０Ａ内のＬＤＥＶ２４１、２４２は、ストレージシステム２０Ａ内でのＬＤＥＶ番号が割り振られ、このＬＤＥＶ番号に基づき処理を行っている。このＬＤＥＶ番号が、ローカルＬＤＥＶ番号である。仮想ストレージシステム１００Ａの一員とならない場合、例えば、ＬＤＥＶのグローバルＬＤＥＶ番号は、そのＬＤＥＶのローカルＬＤＥＶ番号と同じ値とされる。この点は、ストレージシステム２０Ｂについても同様である。ストレージシステム２０Ａ，２０Ｂでは、それぞれ、ローカルＬＤＥＶ番号もグローバルＬＤＥＶ番号も０〜６３番であるとする。
【００９１】
本実施形態では、ストレージシステム２０が仮想ストレージシステム１００の一員であるか否かに関わらず、交替パスソフトウェア６１には、グローバルＬＤＥＶ番号が提供される。ホスト計算機５１Ａからのアクセス要求では、グローバルＬＤＥＶ番号が指定されている。例えば、ストレージシステム２０Ｂは、単体で稼動している場合には、番号管理テーブル１０５Ｂに登録されるグローバルＬＤＥＶ番号とローカルＬＤＥＶ番号は同じ値である。図４ａが、単体で稼動しているストレージシステム２０Ｂ内の番号管理テーブル１０５Ｂの一例を示している。
【００９２】
ここで、ストレージシステム２０Ａと２０Ｂにより仮想ストレージシステム１００Ａが新規に構築されるとする。この場合、本実施形態では、上位のＬＤＥＶ番号であるグローバルＬＤＥＶ番号を付け直す処理が行われる。
【００９３】
具体的には、番号管理プログラム１０２Ｂが、ストレージシステム２０ＢにおけるグローバルＬＤＥＶ番号を０〜６３番から６４〜１２７番に付け替える（Ｓ２０１）。図４ｂが、グローバルＬＤＥＶ番号が付け替えられた後の、ストレージシステム２０Ｂ内の番号管理テーブル１０５を示す。なお、ストレージシステム２０Ａと２０ＢのグローバルＬＤＥＶ番号がそれぞれ０〜６３であることは、番号管理プログラム１０２同士が対話する、管理サーバ５０から知らせを受ける等、種々の方法で特定することができる。
【００９４】
その後、番号管理プログラム１０２Ｂが、交替パスソフトウェア６１に、グローバルＬＤＥＶ番号の変更に関する番号変更情報を報告する（Ｓ２０２）。この番号変更情報には、例えば、新たに構築された仮想ストレージシステム１００Ａの番号と、仮想ストレージシステム１００Ａを構成するストレージシステム２０Ａ、２０Ｂのそれぞれの番号と、各ストレージシステム２０Ａ、２０Ｂでの変更前及び変更後のそれぞれのグローバルＬＤＥＶ番号とが含まれる。
【００９５】
交替パスソフトウェア６１は、番号変更情報から、ストレージシステム２０Ａ、２０Ｂが仮想ストレージシステム１００ＡとなりグローバルＬＤＥＶ番号が０〜１２７に変わったことを認識する（Ｓ２０３）。交替パスソフトウェア６１は、受信した番号変更情報を基に、同一デバイス対応テーブル６２を更新する。具体的には、例えば、ストレージシステム２０Ａ，２０Ｂが個々に稼動していたので、交替パスソフトウェア６１は、ストレージシステム２０Ａ、２０Ｂにそれぞれ対応した同一デバイス対応テーブル６２Ａ、６２Ｂを有していた。交替パスソフトウェア６１は、受信した番号変更情報から、ストレージシステム２０Ａ、２０Ｂによって一つの仮想ストレージシステム１００Ａが構築されたことを知る。この場合、交替パスソフトウェア６１は、それらのテーブル６２Ａ、６２Ｂを、一つのテーブルとする（例えば、新たに一つの同一デバイス対応テーブルを準備し、その新規の同一デバイス対応テーブルに、同一デバイス対応テーブル６２Ａ、６２Ｂに記録されている各情報を登録する）。そして、交替パスソフトウェア６１は、新規の同一デバイス対応テーブルから、上記受信した番号変更情報に含まれている、各ストレージシステム２０Ａ、２０Ｂでの変更前の各グローバルＬＤＥＶ番号を特定する。交替パスソフトウェア６１は、特定した各グローバルＬＤＥＶ番号を、上記受信した番号変更情報に含まれている、ストレージシステム２０Ａ、２０Ｂでの変更後の各グローバルＬＤＥＶ番号に更新する。
【００９６】
以上の一連の処理により、個々に稼動していたストレージシステム２０Ａ、２０Ｂが一つの仮想ストレージシステム１００Ａとされても、アプリケーション６０に格別影響を与えないようにすることができる。交替パスソフトウェア６１が、ホスト計算機５１ではなく仮想化装置５２に搭載されている場合には、ホスト計算機５１全体に格別影響を与えないようにすることができる。なお、グローバルＬＤＥＶ番号の付け替え、番号変更情報の報告は、番号管理プログラム１０２Ｂに代えて又は加えて、番号管理プログラム１０２Ａが行っても良い。
【００９７】
さて、以上のように、グローバルＬＤＥＶ番号の付け替えられて同一デバイス対応テーブルの更新が行われた場合、ストレージシステム２０Ｂは、ホスト計算機５１Ａから、グローバルＬＤＥＶ番号６４〜１２７番でアクセス要求を受ける。ストレージシステム２０Ｂは、アクセス要求で指定された変更後のグローバルＬＤＥＶ番号に対応するローカルＬＤＥＶ番号を、更新後の番号管理テーブル１０５Ｂから特定し、特定されたローカルＬＤＥＶ番号で、アクセス要求に従う処理（特定されたローカルＬＤＥＶ番号に対応するＬＤＥＶへのアクセス）を実行することができる。
【００９８】
なお、Ｓ２０１では、番号管理プログラム１０２Ｂ（及び／又は１０２Ａ）が、マッピングテーブル１０８Ａ、１０８Ｂから、ストレージシステム２０ＢのローカルＬＤＥＶ番号に対応付けられている外部ＬＤＥＶが、ストレージシステム２０Ａにも対応付けられているかを調査し、対応付けられているならば、グローバルＬＤＥＶ番号の付け替えにおいて、同一の外部ＬＤＥＶに対応付けられている複数のローカルＬＤＥＶ番号に対し、同一のグローバルＬＤＥＶ番号を付与することができる。
【００９９】
また、上述した一連の処理は、複数のストレージシステムにより一つの仮想ストレージシステムを構築することに限らず、一つの仮想ストレージシステムに別の仮想ストレージシステムをマージすることにも適用することができる。図８ａ、図８ｂは、仮想ストレージシステム１００Ａに仮想ストレージシステム１００Ｂをマージして１つの仮想ストレージシステム１００Ｃを構築する場合の具体例を示す。この例によれば、図８ａに示すように、仮想ストレージシステム１００Ａ、１００Ｂには、それぞれ、グローバルＬＤＥＶ番号として０〜１２７番が付与されているが、１つの仮想ストレージシステム１００Ｃが構築される場合、図８ｂに示すように、仮想ストレージシステム１００ＢのグローバルＬＤＥＶ番号が、０〜１２７番から１２８〜２５５番に付け替えられる。なお、この番号の付け替えは、番号管理プログラム１０２Ａ〜１０２Ｄのうちの少なくとも一つが行うことができる。
【０１００】
このように、グローバルＬＤＥＶ番号の付け替えや、番号変更情報の報告は、新規に仮想ストレージシステムを構築する場合に限らず、仮想ストレージシステムに仮想ストレージシステム或いはストレージシステムをマージする場合にも適用することができる。
【０１０１】
一つの仮想ストレージシステム１００からストレージシステム２０（或いは仮想ストレージシステム）を減設する場合は、当然、その分、グローバルＬＤＥＶ番号の数も減る。例えば、図８ｂにおいて、ストレージシステム２０Ｂを減設すると、仮想ストレージシステム１００ＣのグローバルＬＤＥＶ番号０〜２５５番のうち、グローバルＬＤＥＶ番号６４〜１２７番がなくなる。この場合、この減設されたタイミングで、グローバルＬＤＥＶ番号の付け替えが行われても良いし（１２８〜２５５番が、６４〜１９１番に変更されても良い）、次回にストレージシステム２０がマージされた場合に、グローバルＬＤＥＶ番号の付け替えが行われても良い。なお、減設されたストレージシステム２０Ｂは、単独で稼動させることも可能である。減設されたストレージシステム２０Ｂの番号管理プログラム１０２Ｂは、仮想ストレージシステムから減設されて単独になったことを検知した場合に、グローバルＬＤＥＶ番号６４〜１２７番を、自分のローカルＬＤＥＶ番号（例えば０〜６３番）と同じ番号に変更する。
【０１０２】
また、一つの仮想ストレージシステム内で、或るストレージシステムのＬＤＥＶを別のストレージシステムに移行することも可能である。以下、仮想ストレージシステム１００ＡのグローバルＬＤＥＶ番号１０番のＬＤＥＶをストレージシステム２０Ａからストレージシステム２０Ｂへ移行する例を説明する。
【０１０３】
例えば、ストレージシステム２０Ａが、グローバルＬＤＥＶ番号１０番のＬＤＥＶの移行指示を受けると、グローバルＬＤＥＶ番号１０番のＬＤＥＶの制御権をストレージシステム２０Ａから２０Ｂへ移行する。このとき、グローバルＬＤＥＶ番号１０番のＬＤＥＶは、仮想ストレージシステム１００Ａの中でユニークであるため、ストレージシステム２０Ａからストレージシステム２０Ｂに移行しても、ＬＤＥＶのグローバルＬＤＥＶ番号は１０番のまま変わらない。一方、グローバルＬＤＥＶ番号１０番とローカルＬＤＥＶ番号との対応付けは、ストレージシステム２０Ａとストレージシステム２０Ｂのそれぞれにおいて変更される。具体的には、例えば、番号管理プログラム１０２Ａが、グローバルＬＤＥＶ番号１０番を番号管理テーブル１０５Ａから削除し、番号管理プログラム１０２Ｂが、番号管理テーブル１０５Ｂから、未使用のローカルＬＤＥＶ番号を特定し、特定した未使用のローカルＬＤＥＶ番号に、グローバルＬＤＥＶ番号１０番を対応付ける。例として、移行前は、グローバルＬＤＥＶ番号１０番は、ストレージシステム２０Ａ内でのローカルＬＤＥＶ番号１０番に対応付けられていたが、移行後は、ストレージシステム２０Ｂ内でのローカルＬＤＥＶ番号３０番に対応付けられたとする。こうすることで、ホスト計算機５１からは、移行したことは見えず、アクセス要求を出す際にも、グローバルＬＤＥＶ番号が変わらないため影響しない。ストレージシステム２０Ａ，２０Ｂ側ではボリュームの制御権が移行したことを認識し、ストレージシステム２０Ｂは、移行対象のグローバルＬＤＥＶ番号に未使用のローカルＬＤＥＶ番号を対応付ける。
【０１０４】
仮想ストレージシステム１００間で生成するリモートコピーの場合、グローバルＬＤＥＶ番号をコピー元とコピー先で合わせる必要はない。従来のリモートコピーのペアを生成する要領でよい。また、仮想ストレージシステム１００内で生成するローカルコピーの場合も同様である。
【０１０５】
仮想ストレージシステム１００内のストレージシステム２０間で移行できるボリュームを「仮想ストレージシステム適用ボリューム」と呼ぶ。仮想ストレージシステム１００内のボリュームは、全てが仮想ストレージシステム適用ボリュームでもよいし、仮想ストレージシステム１００内のボリュームの一部が仮想ストレージシステム適用ボリュームで、残りを各ストレージシステム２０内のみで使用する従来のボリュームと混在してもよい。
【０１０６】
＜（Ｂ）統合ＳＶＰ＞。
【０１０７】
次に、ＳＶＰの統合管理方法について、図を参照しながら説明する。
【０１０８】
ＳＶＰの統合管理とは、仮想ストレージシステム１００に、一つのマスターＳＶＰ（以下、ＭＳＶＰ）を設け、そのＭＳＶＰによって、複数の他のＳＶＰを管理することである。複数の他のＳＶＰが取得する情報は、ＭＳＶＰに能動的に送信され、ＭＳＶＰにて、一括管理される。
【０１０９】
ＳＶＰの統合管理の第一の方法として、図９ａに示すようなマスターＳＶＰ（以下、ＭＳＶＰ）８２を新規に設定する方法がある。手順について、図１０を参照しながら説明する。
【０１１０】
各ストレージシステム２０にあるＳＶＰ８１を、ネットワークで接続する（Ｓ３０１）。そのネットワーク上に、新規な計算機を接続し、これをＭＳＶＰ８２とする（Ｓ３０２）。ＭＳＶＰ８２では、所定のイベントが発生した場合に（例えば、計算機がネットワークに接続されたことを検知したことを契機に）、ＭＳＶＰとしての設定を行うためのＭＳＶＰ設定プログラム８２１が、ＭＳＶＰ８２のプロセッサで実行される。
【０１１１】
ＭＳＶＰ設定プログラム８２１は、仮想ストレージシステム１００内の全ＳＶＰ８１の識別子を認識する（Ｓ３０３）。各ＳＶＰ８１には、そのＳＶＰの識別子を設定しておく。方法としては、ＭＳＶＰ設定プログラム８２１が、仮想ストレージシステム１００内の全ＳＶＰ８１の識別子の入力をユーザから受けるか、或いは、全ＳＶＰ８１へブロードキャストでメッセージとＭＳＶＰ８２の識別子とを送り、各ＳＶＰ８１のＳＶＰ間認識プログラム８１１より、そのＳＶＰ８１の識別子を返信してもらう。ＭＳＶＰ設定プログラム８２１は、ＭＳＶＰ８２の記憶資源（例えばメモリ）に、ＳＶＰ一覧表（図示せず）を記憶させる。そのＳＶＰ一覧表に、各ＳＶＰ８１のＳＶＰ識別子が記録される。
【０１１２】
各ＳＶＰ８１（具体的には、例えば、ＳＶＰのプロセッサで実行される制御プログラム）は、ＭＳＶＰ８２から受信したＭＳＶＰ識別子を、自分の記憶資源（例えばメモリ）に登録する（Ｓ３０４）。なお、ＭＳＶＰ識別子は、ユーザから入力されても良い。
【０１１３】
各ＳＶＰ８１は、ＳＶＰ８１上で管理する情報を、ＭＳＶＰ８２に送り、ＭＳＶＰ８２にて、各々のＳＶＰ（これらはスレーブＳＶＰ：ＳＳＶＰと呼ぶ）８１で管理されている情報が一括管理される（Ｓ３０５）。例えば、ＳＳＶＰ８１は、自分が接続されているストレージシステムから、番号管理テーブル１０５を取得し、取得した番号管理テーブル１０５を、ＭＳＶＰ８２に送信する。
【０１１４】
ＭＳＶＰ８２と他のＳＳＶＰ８１が設定されたことを、例えば、ＭＳＶＰ設定プログラム８２１が、仮想ストレージシステムを構成する全てのストレージシステム２０に報告する（Ｓ３０６）。例えば、ＭＳＶＰ識別子と各ＳＳＶＰ識別子が、各ストレージシステム２０に報告され、そのストレージシステム２０のメモリ２２等に記録される。
【０１１５】
ＭＳＶＰ設定プログラム８２１は、各ＳＳＶＰ８１から情報を受信した場合、受信した情報に、その情報の送信元のＳＳＶＰ８１の識別子を関連付ける。これにより、ＭＳＶＰ８２は、どのストレージシステム２０のＳＳＶＰの情報かを意識して管理することができる。ＭＳＶＰ８２は交替系を持たせるため２重化されても良い。
【０１１６】
この第一の方法によれば、ＳＳＶＰ８１の負荷を均等にすることができる。また、ストレージシステム２０の増減設にも対応しやすい。
【０１１７】
ＳＶＰ統合管理の第二の方法として、図９ｂに示すように、複数のＳＶＰ８１のうち１台をＭＳＶＰと兼用する方法もある。以下、その手順について、図１１を参照しながら説明する。
【０１１８】
各ストレージシステム２０にあるＳＶＰ８１をネットワークで接続する（Ｓ４０１）。
【０１１９】
次に、例えばユーザが、複数のＳＰＶ８１の中から、ＭＳＶＰに兼用するものを決定する（Ｓ４０２）。各ＳＶＰ８１は、どれもＭＳＶＰになる可能性があるため、全てのＳＶＰ８１が、前述したＭＳＶＰ設定プログラム８２１を予め持ち、ＭＳＶＰに選択された場合だけ、そのプログラム８２１が実行される。また、全ＳＶＰ８１は、ＳＶＰ間認識プログラム８１１を持ち、ＳＶＰ８１間の相互通信を行う。
【０１２０】
ユーザは、ＭＳＶＰと決めたＳＶＰ８１のＭＳＶＰ設定プログラム８２１を実行させる（Ｓ４０３）。ＭＳＶＰ設定プログラム８２１が実行されたＳＶＰ８２（８１）は、自分がＭＳＶＰであることを認識し、ＭＳＶＰ８２内の制御情報へ登録する（Ｓ４０４）。具体的には、例えば、ＭＳＶＰ設定プログラム８２１が、ＭＳＶＰであることを意味する情報を、ＳＶＰ８２の記憶資源に登録する。
【０１２１】
ＭＳＶＰ設定プログラム８２１は、他のＳＶＰ８１へ、ＭＳＶＰ識別子（自分の識別子）を、ブロードキャストで知らせる（Ｓ４０５）。各他のＳＶＰ８１のＳＶＰ間認識プログラム８１１は、ＭＳＶＰ識別子を受信し、自分を有するＳＶＰ８１の記憶資源に、そのＭＳＶＰ識別子を登録する。また、各他のＳＶＰ８１は、ＭＳＶＰ識別子の受信に応答して、自分の識別子を、ＭＳＶＰ８２に返信する。また、各他のＳＶＰ８１のＳＶＰ間認識プログラム８１１は、自分を有するＳＶＰ８１の記憶資源で管理されている情報を、ＭＳＶＰ８２に送る。これにより、全ての他のＳＶＰ８１での管理情報がＭＳＶＰ８２にて一括管理される。他のＳＶＰ８１からＭＳＶＰ８２に送信される情報として、例えば、該他のＳＶＰ８１が接続されているストレージシステム内の番号管理テーブル１０５がある。
【０１２２】
ＭＳＶＰと他のＳＶＰ（以下、ＳＳＶＰ）が設定されたことを、例えばＭＳＶＰ設定プログラム８２１が、仮想ストレージシステムを構成する全てのストレージシステム２０に報告する（Ｓ４０６）。具体的には、例えば、各ＳＶＰの識別子と、各識別子がＭＳＶＰの識別子であるかＳＳＶＰの識別子であるかを示す情報とを、各ストレージシステム２０に報告する。各ストレージシステム２０は、それらの情報から、自分のＳＶＰがＭＳＶＰかＳＳＶＰか認識し登録することができる。
【０１２３】
以上の第二の方法では、複数のＳＳＶＰの中から、ＭＳＶＰの交替系となるものを選択しておいてもよい。すなわち、ＭＳＶＰを２重化しておいてもよい。この場合、稼動しているＭＳＶＰがダウンした場合、選択されていた他のＳＶＰがＭＳＶＰとして稼動することができる。ＭＳＶＰがダウン（例えば故障）したか否かは、例えば、ＳＶＰ間認識プログラム８１１同士の通信から検出することができる。なお、この第二の方法でも、前述した第一の方法でも、同時期に稼動するＭＳＶＰの台数は、仮想ストレージシステム１００において１台とする。その１台のＭＳＶＰがダウンした場合に、交替系のＭＳＶＰが稼動することができる。
【０１２４】
第一の方法及び第二の方法のいずれでも、ＭＳＶＰが設定されたら、ＳＶＰ８１からの指定はできなくなり、それ以降はＭＳＶＰから指定する。ＭＳＶＰやＳＶＰで、前述した番号管理プログラム１０２が実行されても良い。
【０１２５】
また、第二の方法の場合、ＭＳＶＰが設定されたストレージシステム２０Ａが停止されたら、ＭＳＶＰ機能も停止してしまう。このため、他のストレージシステム２０のＳＶＰ８１に、ＭＳＶＰの役割を移す必要がある。そこで、ストレージシステム２０を計画的に停止する際には（つまり意図的に停止する際には）、そのストレージシステム２０が停止することを他のストレージシステム２０へ通知し、他のストレージシステム２０で、そのストレージシステム２０が停止することを認識できるようにする。その時の通知方法は、ホスト経由でもストレージシステム間通信４４を使用してもよい。ＭＳＶＰのあるストレージシステム２０Ａが計画的に停止される場合、そのストレージシステム２０Ａは、他のストレージシステム２０へ、ＭＳＶＰになることのメッセージを送信し、且つ、ＭＳＶＰで管理されていた全ての管理情報を送る。そのメッセージを受けたストレージシステム２０は、自分に接続されているＳＶＰ８１をＭＳＶＰに設定し、且つ、送られて来た管理情報を、そのＳＶＰ８１の記憶資源に格納する。また、障害などでＭＳＶＰのあるストレージシステム２０が突然停止した場合も、他のストレージシステム２０は、定期的にストレージシステム２０間で通信し、停止したことを検知できるようにしておく。停止したと検知したストレージシステム２０が、ＭＳＶＰがあるストレージシステム２０Ａであると判断したら、自分に接続されているＳＶＰがＭＳＶＰとなるように設定する。そのストレージシステム２０は、停止したストレージシステム２０ＡのＭＳＶＰから管理情報を取れ出せれば、その管理情報を抽出し、抽出した管理情報を、ＭＳＶＰとしたＳＶＰの記憶資源に格納する。以上のストレージシステム間のやり取りは、ＳＶＰ間で行われても良い。
【０１２６】
また、各ＳＳＶＰは、自分を備えるストレージシステムから取得し記憶した情報を、自分のＳＳＶＰ識別子と共に、ＭＳＶＰに送信する。ＭＳＶＰ設定プログラムは、受信した情報を、該情報と共に受信したＳＳＶＰ識別子を関連付けて、ＭＳＶＰの記憶資源に格納する。
【０１２７】
また、各ストレージシステムへのＭＳＶＰ設定報告で報告することとしては、例えば、SVPを統合したことである。
【０１２８】
さて、ストレージシステムのＳＶＰがＭＳＶＰであるか等が書かれたストレージシステム管理情報を、管理サーバ５０にて管理することができる。ストレージシステム管理情報は、ストレージシステム毎に用意される。以下、それについて説明する。
【０１２９】
図１２ａは、ストレージシステム２０Ａについてのストレージシステム管理情報を示す。図１２ｂは、ストレージシステム２０Ｄについてのストレージシステム管理情報を示す。以下、図１２ａを代表的に参照して説明する。
【０１３０】
ストレージシステム管理情報９５１Ａには、例えば、仮想ストレージシステム構成情報、ストレージシステム情報、仮想ストレージシステム番号、ＳＶＰ番号及びＭＳＶＰ番号が記録される。
【０１３１】
「仮想ストレージシステム構成情報」は、ストレージシステム２０Ａが仮想ストレージシステム１００を構成しているか否かを示すビット情報である。図１２ａによれば、"Ｙｅｓ"という値が記録されているので、ストレージシステム２０Ａが仮想ストレージシステム１００を構成していることがわかる。一方、図１２ｂによれば、"Ｎｏ" という値が記録されているので、ストレージシステム２０Ｄが仮想ストレージシステム１００を構成していない（つまり単独で稼動している）ことがわかる。
【０１３２】
「ストレージシステム情報」は、その仮想ストレージシステム１００を構成している他のストレージシステム２０の番号である。この図によれば、ストレージシステム２０Ａと２０Ｂによって一つの仮想ストレージシステムが構成されていることがわかる。
【０１３３】
「仮想ストレージシステム番号」は、ストレージシステム２０Ａを構成要素の一つとしている仮想ストレージシステム１００の番号である。
【０１３４】
「ＳＶＰ番号」は、ストレージシステム２０ＡのＳＶＰの識別子である。
【０１３５】
「ＭＳＶＰ番号」は、ＭＳＶＰの識別子である。ストレージシステム２０ＡのＳＶＰがＭＳＶＰの場合には、ＳＶＰ番号と同じ番号が、ＭＳＶＰ番号として記録される。なお、単独でストレージシステム２０Ｄが稼動している場合にも、ＳＶＰ番号と同じ番号が、ＭＳＶＰ番号として記録される（この場合、それに代えて、ＭＳＶＰ番号はブランクであっても良い）。
【０１３６】
図１３は、仮想ストレージシステム管理情報を示す。
【０１３７】
仮想ストレージシステム管理情報９５３は、仮想ストレージシステム１００毎に１つ用意される。この情報も、管理サーバ５０の記憶資源に記憶される。以下、この仮想ストレージシステム管理情報９５３は、仮想ストレージシステム１００Ａに対応した情報とする。
【０１３８】
仮想ストレージシステム管理情報９５３には、仮想ストレージシステム番号、ストレージシステム情報、ＭＳＶＰ番号及びＳＶＰ番号一覧が記録される。
【０１３９】
「仮想ストレージシステム番号」は、仮想ストレージシステム１００Ａの識別子（番号）である。
【０１４０】
「ストレージシステム情報」は、仮想ストレージシステム１００Ａを構成するストレージシステム２０の識別子（番号）の一覧である。
【０１４１】
「ＭＳＶＰ番号」は、仮想ストレージシステム１００ＡのＭＳＶＰの識別子である。
【０１４２】
「ＳＶＰ番号一覧」は、仮想ストレージシステム１００Ａ内のＳＶＰの識別子の一覧である。ここでは、例えば、第二の方法でＳＶＰ統合管理が行われる場合、図示のように、ＭＳＶＰ識別子と同じ識別子（Ｓ２０Ａ）が記録される。一方、第一の方法でＳＶＰ統合管理が行われる場合、ＭＳＶＰ識別子と同じ識別子がＳＶＰ識別子として記録されない（第二の方法と同様に記録されても良い）。
【０１４３】
図１４は、仮想ストレージシステム全体情報を示す。
【０１４４】
仮想ストレージシステム全体情報９５５は、管理サーバ５０の記憶資源に記憶される。この情報９５５には、「仮想ストレージシステム番号一覧」という項目があり、これは、管理サーバ５０の管理対象である全ての仮想ストレージシステムの番号である。「仮想ストレージシステム番号一覧」に含められる番号は、例えば、図２０のＳ６０１で追加される。
【０１４５】
＜（Ｃ）仮想ストレージシステムでのフェイルオーバ＞。
【０１４６】
仮想ストレージシステム１００は、ホスト計算機５１からは１つのシステムとして見える。仮想ストレージシステム１００にて、例えばフェイルオーバ機能を実現する。このとき、ストレージシステム２０Ｂをストレージシステム２０Ａの交替系とする。実際には、ＬＤＥＶ単位で交替系を設定するため、別のＬＤＥＶに関しては、ストレージシステム２０Ａがストレージシステム２０Ｂの交替系となってもよい。
【０１４７】
図１５は、フェイルオーバ管理情報を示す。具体的には、図１５ａが、フェイルオーバするＬＤＥＶのためのフェイルオーバ管理情報を示す。一方、図１５ｂが、フェイルオーバしないＬＤＥＶのフェイルオーバ管理情報を示す。
【０１４８】
フェイルオーバ管理情報９５７は、例えば、各ストレージシステムのメモリ２２に記憶される。ファイルオーバ管理情報９５７には、その情報が対応付けられたグローバルＬＤＥＶ番号と、初期Activeストレージシステム番号（初期にActiveとするストレージシステムの番号）と、現Activeストレージシステム番号（現在Activeのストレージシステムの番号）と、現Passiveストレージシステム番号（現在Passiveのストレージシステム番号）と、フェイルオーバ有無（フェイルオーバを行うか否か）と、状態（例えば、フェイルオーバを行っている最中か否か）とが記録される。フェイルオーバしないグローバルＬＤＥＶ番号に対応したファイルオーバ管理情報は、図１５ｂに示すように、全てがブランクとなっている。なお、フィルオーバしないＬＤＥＶについては、フェイルオーバ管理情報は無くても良い。
【０１４９】
通常系のストレージシステム２０Ａを「Active」と呼び、交替系のストレージシステム２０Ｂを「Passive」と呼ぶ。このようにすることで、ストレージシステム２０と外部ストレージシステム７０間のパス障害やストレージシステム２０の計画停止時及びストレージシステム２０の障害時にも、「Active」から「Passive」へ処理の主導権を切り替えることにより、外部ボリューム７０１に影響させずに処理を続けることができる。
【０１５０】
また、ストレージシステム２０のマイグレーションをする際に、新旧のストレージシステム２０間で外部ボリューム７０１の制御権を切り替える移行機能においても、最初に移行元を「Active」（外部ボリュームへのパスが接続されている）、移行先を「Passive」とし、Active／Passiveを切り替え処理を行うことで実現できる。
【０１５１】
ストレージシステム２０Ａとストレージシステム２０Ｂ間でのフェイルオーバ処理について図１７を参照しながら説明する。
【０１５２】
図１７は、図１をフェイルオーバ処理に関連のある部分を抽出して簡易化したものである。ここでは、外部ストレージシステム７０内の外部ＬＤＥＶＸが実体で、それに対応付けられたＬＤＥＶ２４０を、仮想デバイスＡ、Ｂとする。仮想デバイスＡは、ストレージシステム２０Ａ内にあり、仮想デバイスＢは、ストレージシステム２０Ｂ内にある。仮想デバイスＡ，Ｂは、同一の実体Ｘに接続されているので、同一のグローバルＬＤＥＶ番号（以下、グローバルＬＤＥＶ番号Ｘ）が付与されているものとする。仮想デバイスＡ、Ｂへホスト計算機５１からパスを張り、それらを交替パスソフトウェア６１により交替パスとして設定される。ここでは、ストレージシステム２０ＡをActive、ストレージシステム２０ＢをPassiveとする。
【０１５３】
ホスト計算機５１から、グローバルＬＤＥＶ番号Ｘが指定されたアクセス要求が、ストレージシステム２０Ａ又は２０Ｂに対して出される。ストレージシステム２０Ａが、そのアクセス要求を受けた場合、グローバルＬＤＥＶ番号Ｘに対応したフェイルオーバ管理情報９５７では、ストレージシステム２０ＡがActiveとなっているため、そのアクセス要求は、ストレージシステム２０Ａで処理される。このため、もし、ストレージシステム２０Ｂで、そのアクセス要求を受けた場合は、そのアクセス要求を、ストレージシステム２０Ｂから２０Ａへ専用線４４を介して転送する。ストレージシステム２０Ａは、ホスト計算機５１から受けたアクセス要求であるかストレージシステム２０Ｂから受けたアクセス要求であるかを区別することなく処理することができる。
【０１５４】
ここで、仮想デバイスＡと外部ＬＤＥＶＸとの間のパスに障害が発生したとする。この場合、Active側のパスが障害になるため、外部ＬＤＥＶＸに対してのコントローラ部分であるストレージシステム２０Ａと２０ＢのActiveとPassiveの役割を入れ替えることを行う。
【０１５５】
まず、図１９に示すように、ストレージシステム２０Ｂが、仮想デバイスＢと外部ＬＤＥＶＸ間のパスを有効にする（Ｓ５０１）。
【０１５６】
一方、ストレージシステム２０Ａが、仮想デバイスＡ側で既に受けつけ済みであるが、外部ＬＤＥＶＸへのアクセスが未処理なアクセス要求を、仮想デバイスＢ側に転送する（Ｓ５０２）。これにより、ストレージシステム２０Ｂが、転送されて来たアクセス要求に従って、外部ＬＤＥＶＸへアクセスする（Ｓ５０３）。
【０１５７】
その後、ストレージシステム２０Ａと２０ＢのActive/Passiveが切り替えられる（Ｓ５０４）。すなわち、少なくとも、グローバルＬＤＥＶ番号Ｘに対応したフェイルオーバ管理情報において、現Activeストレージ番号が、ストレージシステム２０Ｂの番号となり、現Passiveストレージ番号が、ストレージシステム２０Ａの番号となる。
【０１５８】
以上により、ストレージシステム２０Ａと２０ＢのActiveとPassiveの切替が完了する。以後、グローバルＬＤＥＶ番号Ｘを指定したアクセス要求を、ストレージシステム２０Ｂが受けた場合は、図１８に示すように、ストレージシステム２０Ｂが、そのアクセス要求を処理する。一方、ストレージシステム２０Ａが、そのアクセス要求を受けた場合は、そのアクセス要求を、ストレージシステム２０Ａから専用線４４を介してストレージシステム２０Ｂへ転送する。
【０１５９】
このようにして、一つの仮想ストレージシステム１００において、ストレージシステム間のフェイルオーバを実現することができる。
【０１６０】
なお、図１は、ホスト計算機５１から各ストレージシステム２０へコマンドを発行するためのネットワーク（ＳＡＮ４１，４２）と、管理サーバ５０が各ストレージシステム２０との間で管理情報を送受信するためのネットワーク（管理ネットワーク４０）とが異なるアウトバンド方式となっているが、本実施形態は、インバウンド方式にも適用できる。例えば、管理サーバ５０がＳＡＮ４１経由で各ストレージシステム２０との間で管理情報を送受信するように構成すれば、インバンド方式となる。
【０１６１】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１６２】
例えば、図１６に示すように、外部ストレージシステム７０は無くても良い。また、上述した実施形態に係るシステム全体構成では、メインフレームシステムとオープンシステムのいずれか一方或いはそれらが混在してもよい。
【０１６３】
また、例えば、階層化して管理されるのは、LDEV番号に限らない。例えば、ＬＤＥＶ番号に代えて又は加えて、コピー系のペア番号やグループ番号などのリソース番号を階層化し、ＬＤＥＶ番号と同様の方法で付け替え等を行うことができる。今まで別々のストレージシステムにあったリソース番号が、１つの仮想ストレージシステムとなったために、ユニークな番号であることが必要となる。例えば、ストレージシステム２０Aに、LDEV＃０とそのレプリケーションであるLDEV＃１００をペア＃０として管理しているとする。同じように、ストレージシステム２０Bに、LDEV＃０とそのレプリケーションであるLDEV＃１００をペア＃０として管理しているとする。ここで、ストレージシステム２０Aと２０Bを仮想ストレージシステム１００とした場合、LDEV＃０と＃１００が重複するため、前記のようにLDEV番号を付け直す必要がでるが、さらに、ペア番号もペア＃０で重複してしまう。このため、LDEV番号と同様に、グローバルペア番号とローカルペア番号を設けることができる。番号の付け替え方法は、LDEV番号の付け替え方法と同様にすることができる。コピー系のペア番号をグループにしたグループ番号についても、グローバルグループ番号とローカルグループ番号を設けて同様に処理を行うことができる。
【図面の簡単な説明】
【０１６４】
【図１】図１は、本発明の一実施形態に係るシステム全体の構成例を示す。
【図２】図２は、同一デバイス対応テーブル６２の構成例を示す。
【図３】図３は、ストレージシステム２０のメモリ２２内に格納されている各種プログラム及びテーブルを示す。
【図４】図４ａは、単体で稼動しているストレージシステム２０Ｂ内の番号管理テーブル１０５Ｂの一例を示す。図４ｂが、グローバルＬＤＥＶ番号が付け替えられた後の、ストレージシステム２０Ｂ内の番号管理テーブル１０５を示す。
【図５】図５は、デバイス情報テーブル１０６の構成例を示す。
【図６】図６は、ストレージシステム２０がアクセス要求を受けた場合に行われる処理の流れを示す。
【図７】図７ａは、仮想化ストレージシステムを構成しない各ストレージシステム２０Ａ、２０ＢのグローバルＬＤＥＶ番号とローカルＬＤＥＶ番号の関係を示す。図７ｂは、仮想化ストレージシステムを構成したストレージシステム２０Ａ、２０ＢのグローバルＬＤＥＶ番号とローカルＬＤＥＶ番号の関係を示す。
【図８】図８ａは、別々の仮想化ストレージシステム１００Ａ，１００ＢのグローバルＬＤＥＶ番号とローカルＬＤＥＶ番号の関係を示す。図８ｂは、仮想ストレージシステム１００Ａに別の仮想ストレージシステム１００Ｂがマージされたことにより構成された仮想ストレージシステム１００ＣのグローバルＬＤＥＶ番号とローカルＬＤＥＶ番号の関係を示す。
【図９】図９ａは、ＳＶＰ統合管理の第一の方法の説明図である。図９ｂは、ＳＶＰ統合管理の第二の方法の説明図である。
【図１０】図１０は、第一の方法でのＳＶＰ統合管理を行うための手順を示すフローチャートである。
【図１１】図１１は、第二の方法でのＳＶＰ統合管理を行うための手順を示すフローチャートである。
【図１２】図１２ａは、ストレージシステム２０Ａについてのストレージシステム管理情報を示す。図１２ｂは、ストレージシステム２０Ｄについてのストレージシステム管理情報を示す。
【図１３】図１３は、仮想ストレージシステム管理情報を示す。
【図１４】図１４は、仮想ストレージシステム全体情報を示す。
【図１５】図１５ａは、フェイルオーバするＬＤＥＶのためのフェイルオーバ管理情報を示す。図１５ｂは、フェイルオーバしないＬＤＥＶのフェイルオーバ管理情報を示す。
【図１６】図１６は、本実施形態の一変形例に係るシステム全体構成を示す。
【図１７】図１７は、仮想ストレージシステムでのアクセスの流れの一例である。
【図１８】図１８は、図１７のシステムで、ストレージシステム２０Ａと外部ストレージシステム７０との間のパスに障害が生じた後の、アクセスの流れの一例である。
【図１９】図１９は、ストレージシステム間でのActive/Passiveの切替の流れの一例である。
【図２０】図２０は、仮想ストレージシステムを構築する手順の一例を示すフローチャートである。
【符号の説明】
【０１６５】
２０…ストレージシステム  ５１…ホスト計算機  ５２…仮想化装置  ７０…外部ストレージシステム  １００…仮想ストレージシステム  １０５…番号管理テーブル  １０８…マッピングテーブル
【図１】
2008040571.tif 000003
【図２】
2008040571.tif 000004
【図３】
2008040571.tif 000005
【図４】
2008040571.tif 000006
【図５】
2008040571.tif 000007
【図６】
2008040571.tif 000008
【図７】
2008040571.tif 000009
【図８】
2008040571.tif 000010
【図９】
2008040571.tif 000011
【図１０】
2008040571.tif 000012
【図１１】
2008040571.tif 000013
【図１２】
2008040571.tif 000014
【図１３】
2008040571.tif 000015
【図１４】
2008040571.tif 000016
【図１５】
2008040571.tif 000017
【図１６】
2008040571.tif 000018
【図１７】
2008040571.tif 000019
【図１８】
2008040571.tif 000020
【図１９】
2008040571.tif 000021
【図２０】
2008040571.tif 000022