(57)【特許請求の範囲】
【請求項１】
互いに通信可能な第１ストレージ装置と第２ストレージ装置とを含む複数ストレージ装置をもとに仮想ストレージ装置をホスト計算機に提供する、ストレージシステムであって、
前記第１ストレージ装置は、第１論理ユニットを提供し、前記第１論理ユニットに対応付けられている第１ポートと、前記第１ポートの状態の情報を含む第１ポート管理情報と、を含み、
前記第２ストレージ装置は、第２論理ユニットを提供し、前記第２論理ユニットに対応付けられている第２ポートと、前記第２ポートの状態の情報を含む第２ポート管理情報と、を含み、
前記第１論理ユニット及び前記第２論理ユニットは、一つの仮想論理ユニットとして前記ホスト計算機に提供され、
前記第１ストレージ装置は、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、前記第１ポートの状態が前記第１ポート管理情報により示される状態であり、前記第２ストレージ装置が前記ポート状態の問い合わせに対して応答不可であることを示す応答を、前記ホスト計算機に返し、
前記第２ストレージ装置は、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、応答を返さない、ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記第１ストレージ装置は、前記第１論理ユニットがＩ／Ｏ可能であるか否かを示すＬＵ状態、を示す第１論理ユニット管理情報を保持し、
前記第２ストレージ装置は、前記第２論理ユニットがＩ／Ｏ可能であるか否かを示すＬＵ状態、を示す第２論理ユニット管理情報を保持し、
前記第１ストレージ装置及び前記第２ストレージ装置は、それぞれ、前記第１論理ユニット管理情報及び前記第２論理ユニット管理情報が示すＬＵ状態に基づき、前記ポート状態の問い合わせに対する応答の有無を決定する、ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記第１論理ユニット管理情報及び前記第２論理ユニット管理情報は、それぞれ、前記第１論理ユニットと前記第２論理ユニットの一方のみを使用する場合に優先して選択されるプライマリ論理ユニットを示し、
前記第１論理ユニット及び前記第２論理ユニットが同期状態から非同期状態に変化した場合、
前記第１ストレージ装置は、前記第１論理ユニット管理情報において、前記第１論理ユニットが前記プライマリ論理ユニットである場合に前記第１論理ユニットのＬＵ状態をＩ／Ｏ可能に維持し、前記第２論理ユニットが前記プライマリ論理ユニットである場合に前記第１論理ユニットのＬＵ状態をＩ／Ｏ不可に変更し、
前記第２ストレージ装置は、前記第２論理ユニット管理情報において、前記第２論理ユニットが前記プライマリ論理ユニットである場合に前記第２論理ユニットのＬＵ状態をＩ／Ｏ可能に維持し、前記第１論理ユニットが前記プライマリ論理ユニットである場合に前記第２論理ユニットのＬＵ状態をＩ／Ｏ不可に変更する、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記ホスト計算機からの前記仮想論理ユニットのポート状態の問い合わせは、前記仮想論理ユニットのポートグループの状態の問い合わせであり、
前記第１ストレージ装置が返す応答は、前記第１ポートが含まれる第１ポートグループを示す識別子と前記第１ポートグループの状態を明示し、
前記第１ストレージ装置が返す応答は、前記第２ポートが含まれる第２ポートグループを示す識別子と前記第２ポートグループの状態が応答不可であることを明示する、又は、前記第２ポートグループについての情報含まないことによって、前記第２ストレージ装置が前記ポート状態の問い合わせに対して応答不可であることを示す、ストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、
前記第１論理ユニットと前記第２論理ユニットが同期状態にある場合、前記ホスト計算機から前記仮想論理ユニットへ、前記第１ポート及び前記第２ポートを介してアクセス可能であり、
前記第１論理ユニットと前記第２論理ユニットが非同期状態にある場合、前記第１ストレージ装置は前記応答を前記ホスト計算機に返し、前記第２ストレージ装置は前記応答を返さない、ストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記第１ストレージ装置は、前記第２ストレージ装置から前記第２ポートの状態を示す情報を受信し、
前記第２ストレージ装置は、前記第１ストレージ装置から前記第１ポートの状態を示す情報を受信し、
前記第１論理ユニットと前記第２論理ユニットが同期状態にある場合、
前記第１ストレージ装置は、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、前記第１ポートの状態が第１ポート管理情報により示される状態であり、前記第２ポートの状態が前記第２ストレージ装置から受信した情報が示す状態であることを示す応答を、前記ホスト計算機に返し、
前記第２ストレージ装置は、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、前記第２ポートの状態が第２ポート管理情報により示される状態であり、前記第１ポートの状態が前記第１ストレージ装置から受信した情報が示す状態であることを示す応答を、前記ホスト計算機に返す、ストレージシステム。
【請求項７】
請求項１に記載のストレージシステムであって、
前記第１ストレージ装置及び前記第２ストレージ装置は、それぞれ、仮想論理ユニットの論理ユニットの非同期状態における優先度を示す、論理ユニット優先度情報を保持し、
前記論理ユニット優先度情報は、前記第１論理ユニットが前記第２論理ユニットより優先されることを示し、
前記第１ストレージ装置及び前記第２ストレージ装置は、前記論理ユニット優先度情報を参照して、前記ホスト計算機への応答内容を決定する、ストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、
前記第１ポート及び前記第２ポートのポート状態として、前記ホスト計算機から前記仮想論理ユニットへのアクセスにおける優先度を示す優先ポート状態及び非優先ポート状態が定義されており、
前記第１論理ユニット及び前記第２論理ユニットの一方はバックアップ論理ユニットとコピーペアを構成し、他方は独立論理ユニットであり、
前記第１ポート及び前記第２ポートにおいて前記一方の論理ユニットに対応付けられているポートは、前記優先ポート状態であり、
前記第１ポート及び前記第２ポートにおいて前記他方の論理ユニットに対応付けられているポートは、前記非優先ポート状態である、ストレージシステム。
【請求項９】
請求項１に記載のストレージシステムであって、
前記第１ポート及び前記第２ポートのポート状態として、前記ホスト計算機から前記仮想論理ユニットへのアクセスにおける優先度を示す優先ポート状態及び非優先ポート状態が定義されており、
前記第１ポート及び前記第２ポートにおいて前記ホスト計算機からの距離が近いポートは優先ポート状態であり、
前記第１ポート及び前記第２ポートにおいて前記ホスト計算機からの距離が遠いポートは非優先ポート状態である、ストレージシステム。
【請求項１０】
請求項１に記載のストレージシステムであって、
前記第１ポート及び前記第２ポートのポート状態として、前記ホスト計算機から前記仮想論理ユニットへのアクセスにおける優先度を示す優先ポート状態及び非優先ポート状態が定義されており、
前記第１ストレージ装置及び前記第２ストレージ装置は、自装置及び他装置の負荷状態を監視し、
前記第１ストレージ装置及び前記第２ストレージ装置は、前記第１ストレージ装置及び前記第２ストレージ装置の負荷状態の差に基づいて、前記第１ポート及び前記第２ポートの状態を決定する、ストレージシステム。
【請求項１１】
互いに通信可能な第１ストレージ装置と第２ストレージ装置とを含む複数ストレージ装置をもとに仮想ストレージ装置をホスト計算機に提供するストレージシステム、の制御方法であって、
前記第１ストレージ装置は、第１論理ユニットを提供し、前記第１論理ユニットに対応付けられている第１ポートと、前記第１ポートの状態の情報を含む第１ポート管理情報と、を含み、
前記第２ストレージ装置は、第２論理ユニットを提供し、前記第２論理ユニットに対応付けられている第２ポートと、前記第２ポートの状態の情報を含む第２ポート管理情報と、を含み、
前記第１論理ユニット及び前記第２論理ユニットは、一つの仮想論理ユニットとして前記ホスト計算機に提供され、
前記第１ストレージ装置が、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、前記第１ポートの状態が前記第１ポート管理情報により示される状態であり、前記第２ストレージ装置が前記ポート状態の問い合わせに対して応答不可であることを示す応答を、前記ホスト計算機に返し、
前記第２ストレージ装置が、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、応答を返さない、ストレージシステムの制御方法。
【請求項１２】
請求項１１に記載のストレージシステムの制御方法であって、
前記第１ストレージ装置は、前記第１論理ユニットがＩ／Ｏ可能であるか否かを示すＬＵ状態、を示す第１論理ユニット管理情報を保持し、
前記第２ストレージ装置は、前記第２論理ユニットがＩ／Ｏ可能であるか否かを示すＬＵ状態、を示す第２論理ユニット管理情報を保持し、
前記第１ストレージ装置及び前記第２ストレージ装置が、それぞれ、前記第１論理ユニット管理情報及び前記第２論理ユニット管理情報が示すＬＵ状態に基づき、前記ポート状態の問い合わせに対する応答の有無を決定する、ストレージシステムの制御方法。
【請求項１３】
請求項１２に記載のストレージシステムの制御方法であって、
前記第１論理ユニット管理情報及び前記第２論理ユニット管理情報は、それぞれ、前記第１論理ユニットと前記第２論理ユニットの一方のみを使用する場合に優先して選択されるプライマリ論理ユニットを示し、
前記第１論理ユニット及び前記第２論理ユニットが同期状態から非同期状態に変化した場合、
前記第１ストレージ装置が、前記第１論理ユニット管理情報において、前記第１論理ユニットが前記プライマリ論理ユニットである場合に前記第１論理ユニットのＬＵ状態をＩ／Ｏ可能に維持し、前記第２論理ユニットが前記プライマリ論理ユニットである場合に前記第１論理ユニットのＬＵ状態をＩ／Ｏ不可に変更し、
前記第２ストレージ装置が、前記第２論理ユニット管理情報において、前記第２論理ユニットが前記プライマリ論理ユニットである場合に前記第２論理ユニットのＬＵ状態をＩ／Ｏ可能に維持し、前記第１論理ユニットが前記プライマリ論理ユニットである場合に前記第２論理ユニットのＬＵ状態をＩ／Ｏ不可に変更する、ストレージシステムの制御方法。
【請求項１４】
請求項１１に記載のストレージシステムの制御方法であって、
前記ホスト計算機からの前記仮想論理ユニットのポート状態の問い合わせは、前記仮想論理ユニットのポートグループの状態の問い合わせであり、
前記第１ストレージ装置が返す応答は、前記第１ポートが含まれる第１ポートグループを示す識別子と前記第１ポートグループの状態を明示し、
前記第１ストレージ装置が返す応答は、前記第２ポートが含まれる第２ポートグループを示す識別子と前記第２ポートグループの状態が応答不可であることを明示する、又は、前記第２ポートグループについての情報含まないことによって、前記第２ストレージ装置が前記ポート状態の問い合わせに対して応答不可であることを示す、ストレージシステムの制御方法。
【請求項１５】
請求項１１に記載のストレージシステムの制御方法であって、
前記第１論理ユニットと前記第２論理ユニットが同期状態にある場合、前記ホスト計算機から前記仮想論理ユニットへ、前記第１ポート及び前記第２ポートを介してアクセス可能であり、
前記第１論理ユニットと前記第２論理ユニットが非同期状態にある場合、前記第１ストレージ装置が前記応答を前記ホスト計算機に返し、前記第２ストレージ装置が前記応答を返さない、ストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２００７−２８６９４６号公報（特許文献１）がある。この公報は、ＨＡ（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）構成の二つのストレージ装置のいずれにアクセスしても最新のデータにアクセス可能な計算機システムを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２８６９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数ボリュームによるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成では、プライマリボリュームとセカンダリボリューム（以下では論理ユニットと呼ぶこともある）のＨＡボリュームペアを、単一の論理ユニット（仮想論理ユニット）としてホスト計算機に提供する。さらに、複数ストレージ装置によるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成では、プライマリストレージ装置とセカンダリストレージ装置(以下では単に装置と呼ぶこともある)のＨＡストレージ装置ペアを、単一のストレージ装置（仮想ストレージ装置）として、ホスト計算機に提供する。【０００５】
複数の論理ユニットを、単一の仮想論理ユニットとしてホスト計算機に提供する場合、ホスト計算機が仮想論理ユニットにアクセスするための複数のパスが存在する。ホスト計算機は、仮想論理ユニットへのアクセスに使用するパスを決定するために、仮想ストレージ装置に対して、仮想論理ユニットに対応付けられた全ポートの状態の通知を要求する。要求は、例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）におけるＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを使用する。【０００６】
複数のストレージ装置を単一の仮想ストレージ装置としてホスト計算機に提供する場合、ポート状態通知要求を受けたストレージ装置は、自装置が有するポートの状態と合わせて、自装置とＨＡストレージ装置ペアを構成する他装置（以下では単に他装置と呼ぶこともある）が有するポートの状態も応答する必要がある。【０００７】
しかし、例えばストレージ装置間で通信障害が発生した場合、ストレージ装置は、他装置が有するポートの状態を知ることができない。そのため、ポート状態通知要求への一方のストレージ装置からの応答と他方のストレージ装置からの応答に、矛盾が生じる可能性がある。仮想ストレージ装置を構成する全てのストレージ装置間で整合している必要がある。
【課題を解決するための手段】
【０００８】
本発明の一態様は、互いに通信可能な第１ストレージ装置と第２ストレージ装置とを含む複数ストレージ装置をもとに仮想ストレージ装置をホスト計算機に提供する、ストレージシステムである。前記第１ストレージ装置は、第１論理ユニットを提供し、前記第１論理ユニットに対応付けられている第１ポートと、前記第１ポートの状態の情報を含む第１ポート管理情報と、を含む。前記第２ストレージ装置は、第２論理ユニットを提供し、前記第２論理ユニットに対応付けられている第２ポートと、前記第２ポートの状態の情報を含む第２ポート管理情報と、を含む。前記第１論理ユニット及び前記第２論理ユニットは、一つの仮想論理ユニットとして前記ホスト計算機に提供される。前記第１ストレージ装置は、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、前記第１ポートの状態が前記第１ポート管理情報により示される状態であり、前記第２ストレージ装置が前記ポート状態の問い合わせに対して応答不可であることを示す応答を、前記ホスト計算機に返す。前記第２ストレージ装置は、前記ホスト計算機からの前記仮想論理ユニットを指定したポート状態の問い合わせに対して、応答を返さない。
【発明の効果】
【０００９】
本発明の一態様によれば、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を有するストレージシステムにおいて、ポートの状態についての問い合わせに対して適切な応答を返すことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報システムの概要を示す。
【図２】図２は、情報システムの構成例を示す。
【図３Ａ】図３Ａは、ストレージ装置のメモリに格納される情報例を示す。
【図３Ｂ】図３Ｂは、ストレージ装置の制御メモリに格納される情報例を示す。
【図４Ａ】図４Ａは、ストレージ装置のパス定義テーブルに格納される情報例を示す。
【図４Ｂ】図４Ｂは、ストレージ装置がホスト計算機に返すポート状態の定義例を示す。
【図５Ａ】図５Ａは、ストレージ装置のストレージ装置ペア管理テーブルの構成例を示す。
【図５Ｂ】図５Ｂは、ストレージ装置の論理ユニットペア管理テーブルの構成例を示す。
【図５Ｃ】図５Ｃは、ストレージ装置の自装置マッピング管理テーブルの構成例を示す。
【図５Ｄ】図５Ｄは、ストレージ装置の他装置マッピング管理テーブルの構成例を示す。
【図５Ｅ】図５Ｅは、ストレージ装置のＰＧ状態管理テーブルの構成例を示す。
【図６】図６は、論理ユニットペア管理テーブルの更新の概略を示すフロー図を示す。
【図７】図７は、ホスト計算機に対する仮想ストレージ装置、及び仮想論理ユニットの提供方法の一例を示す。
【図８】図８は、ホスト計算機から受信したポート状態通知要求への応答方法の概略を示すフロー図を示す。
【図９】図９は、ポートグループ状態の決定方法の一例を表す。
【図１０】図１０は、ポートグループ状態の決定方法の他の例を表す。
【図１１】図１１は、外接ストレージ装置を含む情報システムの他の構成例を示す。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明を実施するための形態を説明する。以下の説明は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１２】
金融系の基幹システムなど、極めて高い可用性（サービス継続性）が求められる情報システムにおいては、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  （ｏｒ  Ｉｎｅｘｐｅｎｓｉｖｅ）  Ｄｉｓｋｓ）等の技術による高信頼化方法に加え、ＨＡ（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）構成が用いられている。
【００１３】
ＨＡ構成は、二重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続するための自動障害回復機能を備える。特に、現在では、リソースの有効活用及び負荷分散の観点から、全ての系を稼動系として運用するＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成が注目を集めている。
【００１４】
現在ストレージコントローラの二重化による単一の装置内でのＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成が存在する。一方で、Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙの観点から、ストレージ装置の二重化によるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成に対する要求が強くなると予想される。
【００１５】
ストレージ装置の二重化によるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成は、二つのストレージ装置（物理ストレージ装置）からなるＨＡストレージ装置ペアを、単一の仮想ストレージ装置として、ホスト計算機に提供する。ストレージ装置の二重化によるＨＡ構成は、さらに、二つのストレージ装置のそれぞれが提供する論理ユニットのペアを、単一の仮想論理ユニットとしてホスト計算機に提供する。ホスト計算機は、仮想論理ユニットにアクセスするため、論理ユニットペアのいずれのパスも使用することができる。
【００１６】
例えば、同じデータセンタ内に存在する複数のストレージ装置によるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成において、ホスト計算機から仮想論理ユニット（仮想論理ユニットを構成する異なる論理ユニット）へのアクセス時間は、使用するパスに因らず、ほぼ同等となる。そのため、ホスト計算機が、仮想論理ユニットへのアクセスを行う際に使用するパスによる性能上の影響はほとんどない。
【００１７】
一方、Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙの観点からは、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成の複数のストレージ装置は、互いに距離を置いて遠隔地に配置することが望ましい。遠隔地のデータセンタ間の複数のストレージ装置によるＨＡ構成においては、使用するパスによって、ホスト計算機から仮想論理ユニットへのアクセス時間が大きく異なる。
【００１８】
例えば、一方のパスはホスト計算機から近距離に存在するストレージ装置が有する論理ユニットに対応付けられているため、当該パスを使用した仮想論理ユニットへのアクセス時間が短い。他方のパスは、ホスト計算機から１００ｋｍ以上離れた遠隔地に存在するストレージ装置が有する論理ユニットに対応付けられているため、当該パスを使用した仮想論理ユニットへのアクセス時間は長い。
【００１９】
このような環境では、ストレージ装置がパス（ポート）に使用優先度を設定することが可能な非対称Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成の適用が望ましい。この構成を、ＡＬＵＡ（Ａｓｙｍｍｅｔｒｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ａｃｃｅｓｓ）構成と呼ぶ。ＡＬＵＡ構成を用いることにより、ホスト計算機は遅延の少ないパスを優先的に使用することが可能となり、性能と可用性を両立させることができる。
【００２０】
具体的には、ホスト計算機が仮想論理ユニットに対して発行するＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対して、ストレージ装置が当該仮想論理ユニットに対応付けられたポートが含まれるポートグループ（ＰＧ）の状態（ＰＧ状態）を応答することによりＡＬＵＡ構成が実現される。設定されるＰＧ状態は、例えば、「優先」「非優先」、を含む。ホスト計算機は、「優先」状態のポートグループ（パス）を、「非優先」のポートグループ（パス）よりも優先的に使用する。
【００２１】
仮想ストレージ装置は、ホスト計算機からは単一のストレージ装置に見えていなければならない。ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドがいずれのストレージ装置に発行されるかは、ホスト計算機に依存している。当該コマンドへの応答は、仮想ストレージ装置を構成するストレージ装置間で整合している必要がある。以下においては、当該応答整合性の問題を解決するストレージシステムを説明する。
【実施例１】
【００２２】
本実施例は、複数のストレージ装置でＡＬＵＡ構成を実現する方法を説明する。図１は本実施例の情報システムの概要を示す。ストレージ装置３０ａ、３０ｂは、ＨＡストレージ装置ペアを構成しており、ホスト計算機２０には、単一の仮想ストレージ装置７０に見えている。【００２３】
論理ユニット（ＬＵと記載することもある）６０ａ、６０ｂは、ＨＡペア（ＨＡ論理ユニットペア）を構成しており、ホスト計算機２０には、単一の仮想論理ユニット６１に見えている。ポート３７ａ、３７ｂは、それぞれ論理ユニット６０ａ、６０ｂに対応付けられている。ホスト計算機２０には、仮想論理ユニット６１に対応付けられているように見える、つまり、ホスト計算機２０が保持するマッピング情報は、仮想論理ユニット６１にポート３７ａ、３７ｂを対応付けている。【００２４】
ホスト計算機２０から仮想論理ユニット６１に対して発行されたＰＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを、例えばストレージ装置３０ａが受信した場合、ストレージ装置３０ａは、ストレージ装置３０ｂに対し、ポート３７ｂが含まれるポートグループのＰＧ状態を通知するよう要求する。この通知要求が失敗した場合、ストレージ装置３０ａが、論理ユニットペア管理テーブル１１１を参照し、自装置３０ａの論理ユニット６０ａのＩ／Ｏの可不可の状態を確認する。【００２５】
ポートグループは、仮想ストレージ装置７０を構成するストレージ装置３０ａ、３０ｂが有する全てのポートを分割して形成されるグループである。ポートグループは、１又は複数のポートで構成されている。以下に説明する例において、ポートグループは、単一のストレージ装置のポートからなる。【００２６】
自装置３０ａの論理ユニット６０ａに「Ｉ／Ｏ可能」に相当する状態が付与されている場合、ストレージ装置３０ａは、ポート３７ａが含まれるポートグループの状態については、ＰＧ状態管理テーブル１１４に記載されたＰＧ状態を、ホスト計算機２０に対して応答する。【００２７】
ポート３７ｂが含まれるポートグループの状態については、「応答不可」に相当するＰＧ状態を、ホスト計算機２０に対して応答する。当該応答により、ホスト計算機２０は、ポート３７ｂへアクセスできないと認識する。当該応答は、ポート３７ｂについての一切の情報を示さないことで「応答不可」に相当するＰＧ状態を応答してもよい。【００２８】
自装置３０ａの論理ユニット６０ａに「Ｉ／Ｏ不可」に相当するステータスが付与されている場合、ストレージ装置３０ａは、ホスト計算機２０に対して、ＰＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対する応答を返さない。【００２９】
この構成により、ストレージ装置３０ａ、３０ｂ間の通信に障害が発生した場合においても、ホスト計算機２０からのＰＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対して、ストレージ装置３０ａ、３０ｂ間で整合性の取れた応答を行うことができる。これにより、複数ストレージ装置からなるＡＬＵＡ構成を実現できる。【００３０】
特に、Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙのため、１００ｋｍを越えるような遠隔地に存在するデータセンタのストレージ装置でＨＡ構成を組んでいるユーザに対しては、ＡＬＵＡ構成により、高可用且つ、高性能なシステムを提供できる。さらに、複数の仮想サーバが複数のホスト計算機で稼動する様なユーザに対しては、複数のストレージ装置に対してそれぞれの仮想サーバからアクセス可能になるため、システムリソースの有効活用可能なシステムを提供できる。【００３１】
図２は、本実施例におけるストレージ装置３０を備える情報システム１の構成例を示す。以下の説明において、ホスト計算機２０はいずれか一つ又は複数ホスト計算機を示す。この点は、ストレージ装置３０、論理ユニット６０、ポート３７等の他の構成要素について同様である。【００３２】
情報システム１は、管理サーバ１０、ホスト計算機２０ａ、２０ｂ、ストレージ装置３０ａ、３０ｂ、及び外部装置４０を備える。図２は、一台の管理サーバ１０、２台のホスト計算機２０ａ、２０ｂ、２台のストレージ装置３０ａ、３０ｂを示すが、これら装置の数は限定されない。【００３３】
ホスト計算機２０ａ、２０ｂ、ストレージ装置３０ａ、３０ｂ、及び外部装置４０は、データ通信線５１を解して相互に接続される。また、管理サーバ１０は、ホスト計算機２０ａ、２０ｂ、ストレージ装置３０ａ、３０ｂに機器制御線５０を介して接続される。【００３４】
管理サーバ１０は、二次記憶装置１１、プロセッサであるＣＰＵ１２、主記憶装置であるメモリ１３、入力装置１４、出力装置である表示装置１５、及びインタフェース（Ｉ／Ｆ）１６を備える。これらは、内部ネットワークによって相互に接続される。【００３５】
ホスト計算機２０は、二次記憶装置２１、プロセッサであるＣＰＵ２２、主記憶装置であるメモリ２３、入力装置２４、出力装置である表示装置２５、Ｉ／Ｆ２６、及びポート２７を備える。これらは、内部ネットワークによって相互に接続される。【００３６】
ＣＰＵ２２は、メモリ２３に格納されるプログラムを実行することによって、各種処理を行う。例えば、ＣＰＵ２２は、ストレージ装置３０にＩ／Ｏ要求を送信することによって、当該ストレージ装置３０によって提供される論理ユニットにアクセスする。【００３７】
ストレージ装置３０ａ、３０ｂは、それぞれ、ストレージコントローラ３１、及びディスクドライブ３９を備える。ディスクドライブ３９は、ホスト計算機２０（ホスト計算機２０ａ、２０ｂの任意の一つ）から書き込み要求されたデータを記憶する。【００３８】
ストレージコントローラ３１は、ストレージ装置３０（ストレージ装置３０ａ、３０ｂの任意の一つ）の全体を制御する。例えば、ストレージコントローラ３１は、ディスクドライブ３９からのデータの読み出しを制御する。ストレージコントローラ３１は、ディスクドライブ３９の記憶領域を、１つ以上の論理ユニットとしてホスト計算機２０に提供する。ホスト計算機２０から論理ユニットや装置の情報の要求を受けると、ストレージコントローラ３１は、ストレージ装置ＩＤ及び論理ユニットＩＤを仮想ストレージ装置ＩＤ及び仮想論理ユニットＩＤに変換し、ホスト計算機２０に提供する。【００３９】
ストレージコントローラ３１は、プロセッサ３２、メモリ３３、制御メモリ３４、キャッシュメモリ３５、Ｉ／Ｆ３６、ポート３７、及びディスク制御部３８を備える。これらは、内部ネットワークにて相互に接続される。【００４０】
プロセッサ３２は、メモリ３３又は制御メモリ３４に格納されるプログラムを実行することによって各種処理を行う。メモリ３３は、プロセッサ３２によって実行されるプログラム及びプロセッサ３２によって必要とされる情報等を格納する。メモリ３３及び制御メモリ３４は区別されていなくともよい。キャッシュメモリ３５は、ディスクドライブ３９へ書き込まれるデータ及びディスクドライブ３９から読み出されるデータを一時的に格納する。【００４１】
ポート３７は、ホスト計算機２０又は他方のストレージ装置３０との接続に用いられる。本例は、ポート３７として、ＳＣＳＩを上位プロトコルとしたファイバチャネルＩ／Ｆに対応したポートを想定する。ＳＣＳＩを上位プロトコルとしたＩＰネットワークＩ／Ｆなど、ネットワークＩ／Ｆに対応した他の種類のポートであってもよい。【００４２】
なお、本例は、ポート３７として物理ポートを説明するが、ＮＰＩＶ（Ｎ＿Ｐｏｒｔ  ＩＤ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）等の技術を用いて仮想化された、仮想ポートであってもよい。【００４３】
ディスク制御部３８は、ディスクドライブ３９へのデータの書き込み及びディスクドライブ３９からのデータの読み出しを制御する。ディスクドライブ３９の記憶領域は、一つ以上の論理ユニット６０としてストレージ装置３０に提供される。外部装置４０は、例えば装置間通信障害が発生した場合などに、各ストレージ装置３０が正常に稼働しているかを確認するために用いられる。【００４４】
ストレージ装置３０ａ、３０ｂは、装置間データ通信線５２を介して相互に接続される。１本の装置間データ通信線５２のみが図示されているが、複数の通信線が存在してもよい。例えば、ストレージ装置３０ａからストレージ装置３０ｂへデータ通信を行うデータ通信線と、ストレージ装置３０ａからストレージ装置３０ｂへデータ通信を行うデータ通信線が含まれる。【００４５】
次に、本例の情報システム１における処理の概要を説明する。本例の情報システム１は、複数のストレージ装置３０（物理ストレージ装置３０）を単一のストレージ装置（仮想ストレージ装置７０）としてホスト計算機２０に提供し、さらに、複数の論理ユニット（実論理ユニット）６０を単一の論理ユニット（仮想論理ユニット）６１としてホスト計算機２０に提供する。ホスト計算機２０に対し、仮想ストレージ装置７０、及び仮想論理ユニット６１を提供する具体的な手段については、図７を参照して後述する。【００４６】
図３Ａは、各ホスト計算機２０のメモリ２３が格納している情報の例を示す。メモリ２３は、ＣＰＵ２２によって実行されるプログラム及びＣＰＵ２２によって必要とされる情報等を格納している。図３Ａに示すように、メモリ２３は、パス定義テーブル１００、パス制御プログラム１０１、アプリケーションプログラム１０２、及びＯＳ１０３を格納している。【００４７】
パス定義テーブル１００は、ストレージ装置３０の論理ユニット６０へのアクセスに使用されるパスに関する情報を示す。パス定義テーブル１００については、図４Ａを参照して後述する。【００４８】
パス制御プログラム１０１は、ストレージ装置３０の論理ユニット６０へのアクセスに使用されるパスを制御する。パス制御プログラム１０１は、パス定義テーブル１００を参照して、パスを制御する。【００４９】
アプリケーションプログラム１０２は、各種処理を実行する。例えば、アプリケーションプログラム１０２は、データベースの機能又はＷｅｂサーバ機能を提供する。ＯＳ１０３は、ホスト計算機２０の処理の全体を制御する。【００５０】
図３Ｂは、各ストレージ装置３０の制御メモリ３４が格納している情報の例を示す。制御メモリ３４は、プロセッサ３２によって実行されるプログラム及びプロセッサ３２によって必要とされる情報等を格納する。制御メモリ３４は、例えば、ストレージ装置ペア管理テーブル１１０、論理ユニットペア管理テーブル１１１、自装置マッピング管理テーブル１１２、他装置マッピング管理テーブル１１３、及びＰＧ状態管理テーブル１１４を格納している。【００５１】
制御メモリ３４は、さらに、入出力処理プログラム１１５、装置間通信制御プログラム１１６、論理ユニットペア状態管理プログラム１１７、マッピング状態管理プログラム１１８、ポート状態設定プログラム１１９、ポート状態確認プログラム１２０、及びＩＤ変換プログラム１２１を格納している。【００５２】
ストレージ装置ペア管理テーブル１１０は、ストレージ装置３０からなるＨＡストレージ装置ペアを管理するための情報である。ＨＡストレージ装置ペアは、二つのストレージ装置から形成され、ホスト計算機２０には、ＨＡストレージ装置ペアに対応する一つの仮想ストレージ装置７０が提供される。ストレージ装置ペア管理テーブル１１０については、図５Ａを参照して後述する。【００５３】
論理ユニットペア管理テーブル１１１は、ストレージ装置３０ａ、３０ｂのそれぞれから提供される論理ユニット６０からなるＨＡ論理ユニットペアを管理するための情報である。ＨＡ論理ユニットペアは、二つの論理ユニットから形成され、ホスト計算機２０には、ＨＡ論理ユニットペアに対応する一つの仮想論理ユニット６１が提供される。論理ユニットペア管理テーブル１１１については、図５Ｂを参照して後述する。【００５４】
自装置マッピング管理テーブル１１２、他装置マッピング管理テーブル１１３、及びＰＧ状態管理テーブル１１４は、ストレージ装置３０によって提供される論理ユニット６０に対応付けられたポート３７の情報を管理するための情報である。自装置マッピング管理テーブル１１２、他装置マッピング管理テーブル１１３、及びＰＧ状態管理テーブル１１４については、それぞれ、図５Ｃ、図５Ｄ及び図５Ｅを参照して後述する。【００５５】
入出力処理プログラム１１５は、ホスト計算機２０から受信したＩ／Ｏ要求を処理する。装置間通信制御プログラム１１６は、ストレージ装置３０間で制御情報やユーザデータの送受信を制御する。【００５６】
論理ユニットペア状態管理プログラム１１７は、仮想論理ユニット６１を構成する論理ユニット６０（ＨＡ論理ユニットペア）のペア状態を管理する。論理ユニットペア状態管理プログラム１１７は、論理ユニット６０のペアの同期がしているか否かを判定し、判定結果を論理ユニットペア管理テーブル１１１に格納する。【００５７】
同期しているペアにおいて、一方の論理ユニットにおける更新毎に、他方の論理ユニットに反映される。論理ユニットペア状態管理プログラム１１７は、論理ユニット６０へのＩ／Ｏが可能か否かを判定し、判定結果を論理ユニットペア管理テーブル１１１のＬＵ状態（自装置）カラム５１６に格納する。【００５８】
マッピング状態管理プログラム１１８は、論理ユニット６０とポート３７のマッピングを管理し、結果を自装置マッピング管理テーブル１１２及び他装置マッピング管理テーブル１１３に格納する。【００５９】
ポート状態設定プログラム１１９は、ストレージ装置３０の管理者からの指示、又はストレージ装置３０の状態を基に、ポート３７が属するポートグループの状態をＰＧ状態管理テーブル１１４に格納する。【００６０】
ポート状態確認プログラム１２０は、ホスト計算機２０から受けたポート状態通知要求に対し、対象となるポート３７の状態を取得し、ホスト計算機２０に応答を行う。本例において、ポート３７の状態は、当該ポート３７が属するＰＧ状態に一致する。【００６１】
具体的には、ポート状態確認プログラム１２０は、ＰＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドが指定する仮想論理ユニット６１が対応付けられている自ストレージ装置３０及び他ストレージ装置３０のポート３７が属するポートグループの状態を、ホスト計算機２０に応答する。【００６２】
ＩＤ変換プログラム１２１は、ストレージ装置ＩＤ及び論理ユニットＩＤを、それぞれ仮想ストレージ装置ＩＤ及び仮想論理ユニットＩＤに変換し、ホスト計算機２０に提供する。ＩＤ変換プログラム１２１は、ホスト計算機２０から受けた仮想ストレージ装置ＩＤ及び仮想論理ユニットＩＤを、それぞれストレージ装置ＩＤ及び論理ユニットＩＤに変換する。【００６３】
図４Ａは、ホスト計算機２０のメモリ２３に格納されるパス定義テーブル１００の構成例を示す。パス定義テーブル１００は、仮想論理ユニット６１にアクセス可能なパスを管理する。【００６４】
パス定義テーブル１００は、仮想ストレージ装置ＩＤカラム４０１、仮想ＬＵ  ＩＤカラム４０２、パス１カラム４０３及びパス２カラム４０４を有する。さらに、パス１カラム４０３、パス２カラム４０４は、それぞれ、ポートＩＤカラム４２１、４３１、ＰＧ  ＩＤカラム４２２、４３２及びＰＧ状態カラム４２３、４３３を有する。【００６５】
仮想ストレージ装置カラムＩＤ４０１は、ホスト計算機２０がアクセスを行う仮想ストレージ装置の、情報システム１内で一意の識別子を格納する。仮想ＬＵ  ＩＤカラム４０２は、ホスト計算機２０がアクセスを行う仮想論理ユニット６１の、情報システム１内で一意の識別子を格納する。パス１カラム４０３及びパス２カラム４０４は、それぞれ、仮想論理ユニット６１にアクセス可能な一つのパスを示す。本例においては、二つのパスの情報のみが示されている。【００６６】
ポートＩＤカラム４２１、４３１は、仮想論理ユニット６１に対応付けられたポート３７の識別子を示す。ＰＧ  ＩＤカラム４２２、４３２は、ポート属するポートグループの識別子を示す。ポートＩＤ、ＰＧ  ＩＤは、情報システム１内の一意である。ＰＧ状態カラム４２３、４３３は、ポートが属するポートグループの状態を示す。【００６７】
パス制御プログラム１０１は、ストレージ装置３０ａ、３０ｂに、ＰＧ状態カラム４２３、４３３に格納する値を要求し、受信した値を格納する。図４Ｂは、ＰＧ状態の定義例を示す。「ＰＧ状態」カラムは、ホスト計算機２０からの要求に対するストレージ装置３０からの応答が示すＰＧ状態を示す。図４Ｂの例において、「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」は、ＡＬＵＡ構成における優先ポートを示し、「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」はＡＬＵＡ構成における非優先ポートを示す。優先ポート及び非優先ポートは運用ポートであり、ホスト計算機２０は、優先ポートを優先して使用して仮想論理ユニット６１にアクセスする。【００６８】
「Ｓｔａｎｄｂｙ」は、待機ポートを示す。運用ポートで障害発生すると、当該運用ポートから待機ポートに切り替えられる。「Ｕｎａｖａｉｌａｂｌｅ」は、使用不可ポートを示し、「Ｏｆｆｌｉｎｅ」は、応答不可ポートを示す。【００６９】
ストレージ装置３０は、優先ポート及び非優先ポートへのリード／ライトアクセス及び状態情報の要求に応答する。状態情報の要求は、例えば、ＩＮＱＵＩＲＹコマンドやＰＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドである。【００７０】
ストレージ装置３０は、待機ポート及び使用不可ポートへのリード／ライトアクセスを受け付けないが、状態情報の要求を受け付け、ホスト計算機２０に応答を返す。ストレージ装置３０は、応答不可ポートへの一切の要求を受け付けない、つまり、ホスト計算機２０に対して応答を返さない。【００７１】
なお、上記状態の一部のみが設定されていてもよい。例えば、「Ｓｔａｎｄｂｙ」、「Ｕｎａｖａｉｌａｂｌｅ」は、通常のＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成の運用においては、積極的に設定されることは少ない。【００７２】
図５Ａは、ストレージ装置３０の制御メモリ３４に格納されるストレージ装置ペア管理テーブル１１０の構成例を示す。ストレージ装置ペア管理テーブル１１０は、仮想ストレージ装置ＩＤカラム５０１、ストレージ装置ＩＤ（自装置）カラム５０２、ストレージ装置ＩＤ（他装置）カラム５０３を有する。【００７３】
仮想ストレージ装置ＩＤカラム５０１は、ホスト計算機２０がアクセスを行う仮想ストレージ装置７０の、情報システム１内で一意の識別子であり、ＨＡストレージ装置ペアを構成するストレージ装置間で共通の値が格納される。【００７４】
ストレージ装置ＩＤ（自装置）カラム５０２は、仮想ストレージ装置７０の構成要素である自装置の識別子を格納する。ストレージ装置ＩＤ（他装置）カラム５０３は、仮想ストレージ装置７０の構成要素である他装置の識別子を格納する。ストレージ装置ＩＤ（自装置）カラム５０２、及びストレージ装置ＩＤ（他装置）カラム５０３は、情報システム１内で一意の識別子である。【００７５】
ストレージ装置３０は、ストレージ装置ＩＤ（他装置）カラム５０３に格納された値を確認することにより、自装置とＨＡストレージペアを構成するストレージ装置３０のＩＤを取得することができる。【００７６】
図５Ｂは、ストレージ装置３０の制御メモリ３４に格納される論理ユニットペア管理テーブル１１１の構成例を示す。論理ユニットペア管理テーブル１１１は、仮想ＬＵ  ＩＤカラム５１１、ＬＵ  ＩＤ（自装置）カラム５１２、ＬＵ  ＩＤ（他装置）カラム５１３、ペア状態カラム５１４、プライマリＬＵ  ＩＤカラム５１５、ＬＵ状態（自装置）カラム５１６を有する。【００７７】
仮想ＬＵ  ＩＤカラム５１１は、ホスト計算機２０がアクセスを行う仮想論理ユニット６１の識別子を格納する。ＬＵ  ＩＤ（自装置）カラム５１２は、仮想論理ユニット６１の構成要素である自装置３０内の論理ユニットの識別子を示す。ＬＵ  ＩＤ（他装置）カラム５１３は、仮想論理ユニット６１の構成要素である他装置３０内の論理ユニットの識別子を示す。【００７８】
ペア状態カラム５１４は、仮想論理ユニット６１を構成するＨＡ論理ユニットペアの状態を示す。例えば、「Ｄｕｐｌｅｘ」は、仮想論理ユニット６１を構成する論理ユニット６０間の同期が取れている（論理ユニット６０が同一のユーザデータを格納している）ことを示す。「Ｓｕｓｐｅｎｄ」は、仮想論理ユニット６１を構成する論理ユニット６０間の同期が取れていないことを示す。例えば、ストレージ装置間通信障害により、同期が妨げられる。【００７９】
プライマリＬＵ  ＩＤカラム５１５は、ＨＡ論理ユニットペアにおいて、片方の論理ユニット６０のみで運用を行う場合に優先的に使用する論理ユニット６０の識別子を示す。例えば、ストレージ装置間通信障害が発生した場合に、プライマリＬＵ  ＩＤが示す論理ユニット６０が優先的に使用される。【００８０】
ＬＵ状態（自装置）カラム５１６は、仮想論理ユニット６１を構成する論理ユニット６０のうち、自装置の論理ユニット６０が「Ｉ／Ｏ可能」であるか、若しくは「Ｉ／Ｏ不可」であるかを示すＬＵ状態を示す。【００８１】
論理ユニットペア状態管理プログラム１１７は、仮想論理ユニット６１を構成する論理ユニット６０（ＨＡ論理ユニットペア）のペア状態を管理する。論理ユニットペア状態管理プログラム１１７は、さらに、論理ユニット６０のペアの同期がしているか否かを判定し、判定結果を論理ユニットペア管理テーブル１１１に格納する。同期しているペアにおいて、一方の論理ユニット６０における更新毎に、他方の論理ユニット６０に反映される。【００８２】
仮想ＬＵ  ＩＤカラム５１１、ＬＵ  ＩＤ（自装置）カラム５１２、ＬＵ  ＩＤ（他装置）カラム５１３、プライマリＬＵ  ＩＤカラム５１５、の値は、例えば管理者の指示に従って、予め設定されている。【００８３】
以下において、図５Ｂの構成図及び図６のフローチャートを参照しつつ論理ユニットペア管理テーブル１１１の更新を説明する。ストレージ装置３０ａ、３０ｂは、ストレージ装置３０ａ、３０ｂ間の通信障害を監視する（ＳＰ５１）。ストレージ装置３０ａ、３０ｂ内での障害又は装置間データ通信線５２におけるストレージ装置３０ａ、３０ｂ間の通信における障害により、ＨＡ論理ユニットペアの同期が取れなくなることがある。それを検知した論理ユニットペア状態管理プログラム１１７は、対応するエントリにおけるペア状態カラム５１４の値を、「Ｄｕｐｌｅｘ」から「Ｓｕｓｐｅｎｄ」に変更する（ＳＰ５２）。【００８４】
装置間データ通信線５２の状態及び他装置３０からの応答を監視することで、各ＨＡ論理ユニットペアの同期状態を確認できる。ＨＡ論理ユニットペアの同期が回復した場合、論理ユニットペア状態管理プログラム１１７は、対応するエントリにおけるペア状態カラム５１４の値を、「Ｓｕｓｐｅｎｄ」から「Ｄｕｐｌｅｘ」に変更する。【００８５】
論理ユニットペア状態管理プログラム１１７は、論理ユニット６０へのＩ／Ｏが可能か否かを判定し、判定結果を論理ユニットペア管理テーブル１１１のＬＵ状態（自装置）カラム５１６に格納する。例えば、自装置３０内の障害により論理ユニット６０への適正なアクセスができない場合、当該論理ユニット６０のＬＵ状態は、「Ｉ／Ｏ不可」である。【００８６】
装置間データ通信線５２におけるストレージ装置３０ａ、３０ｂ間の通信における障害等によりＨＡ論理ユニットペアの同期が取れない場合、論理ユニットペア状態管理プログラム１１７は、プライマリＬＵ  ＩＤカラム５１５を参照する（ＳＰ５３）。【００８７】
論理ユニットペア状態管理プログラム１１７は、「Ｓｕｓｐｅｎｄ」のエントリにおいて、プライマリＬＵ  ＩＤカラム５１５が自装置３０のＬＵ  ＩＤを含む場合（ＳＰ５３ＹＥＳ）、ＬＵ状態（自装置）カラム５１６の値を「Ｉ／Ｏ可能」に維持する（ＳＰ５４）。「Ｓｕｓｐｅｎｄ」のエントリにおいて、プライマリＬＵ  ＩＤカラム５１５が他装置３０のＬＵ  ＩＤを含む場合（ＳＰ５３：ＮＯ）、ＬＵ状態（自装置）カラム５１６の値を「Ｉ／Ｏ不可」に変更する（ＳＰ５５）。【００８８】
このように、プライマリＬＵ  ＩＤカラム５１５及びＬＵ状態（自装置）カラム５１６は、それぞれ、非同期状態におけるポート（論理ユニット／ストレージ装置）の優先度を示している。プライマリＬＵ  ＩＤカラム５１５により、ストレージ装置３０ａ、３０ｂはＬＵ状態を決定することができる。【００８９】
図５Ｃは、ストレージ装置３０の制御メモリ３４に格納される自装置マッピング管理テーブル１１２の構成例を示す。自装置マッピング管理テーブル１１２は、自装置内に存在する論理ユニット６０に関するマッピング情報を格納する。【００９０】
自装置マッピング管理テーブル１１２は、ＬＵ  ＩＤカラム５２１、ポートＩＤカラム５２２、ＰＧ  ＩＤカラム５２３を有する。ＬＵ  ＩＤカラム５２１は、自装置内に存在する論理ユニット６０の識別子を格納する。ポートＩＤカラム５２２は、論理ユニット６０に対応付けられたポート３７の識別子を示す。ＰＧ  ＩＤカラム５２３は、ポート３７の属するポートグループの識別子を示す。【００９１】
図５Ｄは、ストレージ装置３０の制御メモリ３４に格納される他装置マッピング管理テーブル１１３の構成例を示す。他装置マッピング管理テーブル１１３は、自装置とＨＡストレージ装置ペアを構成している他装置３０内に存在する論理ユニット６０に関するマッピング情報を格納する。【００９２】
他装置マッピング管理テーブル１１３は、ＬＵ  ＩＤカラム５３１、ポートＩＤカラム５３２、ＰＧ  ＩＤカラム５３３を有する。ＬＵ  ＩＤカラム５３１は、自装置３０とＨＡストレージ装置ペアを構成している他装置３０内に存在する論理ユニット６０の識別子を示す。ポートＩＤカラム５３２は、論理ユニット６０に対応付けられたポート３７の識別子を示す。ＰＧ  ＩＤカラム５３３は、ポート３７の属するポートグループの識別子を示す。【００９３】
マッピング状態管理プログラム１１８が自装置マッピング管理テーブル１１２を変更した場合、装置間通信制御プログラム１１６は、ＨＡストレージ装置ペアを構成する他装置３０に対して、変更内容を通知する。変更内容を受信した他装置３０のマッピング状態管理プログラム１１８は、受信した内容に沿って、他装置マッピング管理テーブル１１３を更新する。【００９４】
ストレージ装置３０は、自装置マッピング管理テーブル１１２を更新した際に、他装置３０に変更内容を通知しなくともよい。他装置３０のマッピング情報を参照したい場合は、その都度、装置間通信制御プログラム１１６が他装置３０に対してマッピング情報の通知要求を行う。マッピング状態管理プログラム１１８は、当該通知要求の応答を他装置マッピング管理テーブル１１３に格納する。なお、本例において一つのＬＵ  ＩＤに一つのポートＩＤが対応付けられているが、一つの論理ユニット６０に対して複数のポート３７が対応付けられていてもよい。【００９５】
図５Ｅは、ストレージ装置３０の制御メモリ３４に格納されるＰＧ状態管理テーブル１１４の構成例を示す。ＰＧ状態管理テーブル１１４は、ＰＧ  ＩＤカラム５４１、ポートグループを管理しているストレージ装置３０（自装置又他装置）を示す装置情報カラム５４２、自装置３０で管理されているポートグループの状態を示すＰＧ状態カラム５４３を有する。ＰＧ状態カラム５４３の値は、管理者によって予め設定されている。又は、ストレージ装置３０が自動的にＰＧ状態カラム５４３の値を決定する。この点は後述する。【００９６】
図７は、ホスト計算機２０に対し、仮想ストレージ装置７０、及び仮想論理ユニット６１を提供する手段を示す概要図である。ホスト計算機２０が、例えばＳＣＳＩのＩＮＱＵＩＲＹコマンドを用いて、ストレージ装置３０ａ（ストレージ装置ＩＤ：ＳＮ−a）に対して、ストレージ装置ＩＤの通知を要求した場合、当該要求を受領したストレージ装置３０ａは、ストレージ装置ペア管理テーブル１１０を参照し、仮想ストレージ装置ＩＤカラム５０１から取得した値（仮想ストレージ装置ＩＤ：ＳＮ−ｃ）を、ホスト計算機２０に応答する。【００９７】
仮想ストレージ装置ＩＤカラム５０１の値は、ＨＡストレージ装置ペアを構成するストレージ装置３０ａ、及び３０ｂで共通であり、当該ストレージ装置ＩＤ要求の応答は、当該ストレージ装置ＩＤ要求が発行されたストレージ装置によらず共通となる。これにより、ＨＡストレージ装置ペアを構成するストレージ装置３０ａ、及び３０ｂを、単一の仮想ストレージ装置７０としてホスト計算機に提供する。【００９８】
同様に、ホスト計算機２０が、例えばＳＣＳＩのＩＮＱＵＩＲＹコマンドを用いて、ストレージ装置３０に対して、論理ユニットＩＤの通知を要求した場合、当該要求を受領したストレージ装置３０は、論理ユニットペア管理テーブル１１１を参照し、仮想ＬＵ  ＩＤカラム５１１から取得した値(仮想ＬＵ  ＩＤ：Ｖｏｌ−３)を、ホスト計算機２０に応答する。【００９９】
仮想ＬＵ  ＩＤカラム５０１の値は、ＨＡストレージ装置ペアを構成するストレージ装置３０ａ、及び３０ｂで共通であり、当該ＬＵ  ＩＤ要求の応答は、当該ストレージ装置ＩＤ要求が発行されたストレージ装置によらず共通となる。これにより、ＨＡボリュームペアを構成する論理ユニット６０ａ、及び６０ｂを、単一の仮想論理ユニット６１としてホスト計算機に提供する。  【０１００】
図８は、ストレージ装置３０における、ホスト計算機２０から発行されたポート状態通知要求に対する応答内容を決定するためのフロー図である。ストレージ装置３０は、ホスト計算機２０からの仮想論理ユニット６１を指定した要求に対して、図４Ｂに示すＰＧ状態の一つを選択する。【０１０１】
本例は、ホスト計算機２０から発行されるポート状態通知要求の一例として、ＳＣＳＩにおけるＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを説明する。【０１０２】
ステップＳＰ１において、ストレージ装置３０ａは、ホスト計算機２０から仮想論理ユニット６１に対して発行されたＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを、受信する。【０１０３】
ステップＳＰ２において、ストレージ装置３０ａのポート状態確認プログラム１２０は、当該ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに含まれ、当該ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドの対象となる仮想論理ユニット６１の仮想ＬＵ  ＩＤを取得する。【０１０４】
ステップＳＰ３において、ストレージ装置３０ａのポート状態確認プログラム１２０は、自装置３０ａの論理ユニットペア管理テーブル１１１を参照し、当該仮想ＬＵ  ＩＤが示す仮想論理ユニット６１のペア状態の情報を、ペア状態カラム５１４から取得する。【０１０５】
当該ペア状態が、Ｄｕｐｌｅｘ状態である場合（ＳＰ３：ＮＯ）、ポート状態確認プログラム１２０は、ステップＳＰ４を実行する。当該ペア状態がＳｕｓｐｅｎｄ状態である場合（ＳＰ３：ＹＥＳ）、ポート状態確認プログラム１２０は、ステップＳＰ７を実行する。【０１０６】
ステップＳＰ４において、ポート状態確認プログラム１２０は、自装置３０ａの装置間通信制御プログラム１１６を起動する。装置間通信制御プログラム１１６は、ＨＡストレージ装置ペアを構成する他装置３０ｂに対し、当該仮想ＬＵ  ＩＤを送信し、当該仮想ＬＵ  ＩＤに対応するＰＧ状態の通知を要求する。【０１０７】
当該通知要求を受け取ったストレージ装置３０ｂは、ポート状態確認プログラム１２０を起動する。ストレージ装置３０ｂのポート状態確認プログラム１２０は、自装置３０ｂの論理ユニットペア管理テーブル１１１を参照し、当該仮想ＬＵ  ＩＤと対応する自装置３０ｂのＬＵ  ＩＤを、ＬＵ  ＩＤカラム５１２から取得する。【０１０８】
次にポート状態確認プログラム１２０は、自装置３０ｂの自装置マッピング管理テーブル１１２を参照し、取得したＬＵ  ＩＤと対応するＰＧ  ＩＤを、ＰＧ  ＩＤカラム５２３から取得する。次にポート状態確認プログラム１２０は、自装置３０ｂのＰＧ状態管理テーブル１１４を参照し、当該ＰＧ  ＩＤに対応するＰＧ状態の情報を、ＰＧ状態カラム５４３取得する。【０１０９】
次にポート状態確認プログラム１２０は、自装置３０ｂの装置間通信制御プログラム１１６を起動する。装置間通信制御プログラム１１６は、当該ＰＧ状態を、ストレージ装置３０ａに送信する。【０１１０】
ステップＳＰ５において、ストレージ装置３０ａのポート状態確認プログラム１２０は、他装置３０ｂから、ＰＧ状態の情報を受信する。【０１１１】
ステップＳＰ６において、ストレージ装置３０ａのポート状態確認プログラム１２０は、ストレージ装置３０ｂと同様の方法で、自装置３０ａにおいて当該仮想ＬＵ  ＩＤに対応するＰＧ状態の情報を、ＰＧ状態管理テーブル１１４のＰＧ状態カラム５４３から取得する。【０１１２】
ポート状態確認プログラム１２０は、自装置３０ａの論理ユニットペア管理テーブル１１１を参照し、当該仮想ＬＵ  ＩＤに対応する自装置３０ａのＬＵ  ＩＤをＬＵ  ＩＤ（自装置）カラム５１２から取得し、他装置３０ｂのＬＵ  ＩＤを、ＬＵ  ＩＤ（他装置）カラム５１３から取得する。【０１１３】
ポート状態確認プログラム１２０は、自装置３０ａの自装置マッピング管理テーブル１１２を参照し、自装置３０ａのＬＵ  ＩＤに対応するＰＧ  ＩＤを、ＰＧ  ＩＤカラム５２３から取得する。さらに、ポート状態確認プログラム１２０は、他装置マッピング管理テーブル１１３を参照し、他装置３０ｂのＬＵ  ＩＤに対応するＰＧ  ＩＤを、ＰＧ  ＩＤカラム５３３から取得する。【０１１４】
次にポート状態確認プログラム１２０は、ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対する応答として、当該仮想ＬＵ  ＩＤに対応する自装置３０ａのＰＧ  ＩＤ及びＰＧ状態の組合せと、他装置３０ｂのＰＧ  ＩＤ及びＰＧ状態の組合せを、ホスト計算機２０に送信する。これにより、ペア状態が同期状態の場合に、適切にポート状態（ＰＧ状態）をホスト計算機２０に返すことができる。【０１１５】
ステップＳＰ７において、ストレージ装置３０ａのポート状態確認プログラム１２０は、自装置３０ａの論理ユニットペア管理テーブル１１１を参照し、当該仮想ＬＵ  ＩＤに対応する自装置のＬＵ状態を、ＬＵ状態（自装置）カラム５１６から取得する。当該ＬＵ状態が、「Ｉ／Ｏ可能」である場合（ＳＰ７：ＹＥＳ）、ポート状態確認プログラム１２０は、ステップＳＰ８を実行する。当該ＬＵ状態が、「Ｉ／Ｏ不可」である場合（ＳＰ７：ＮＯ）、ポート状態確認プログラム１２０は、ステップＳＰ９を実行する。【０１１６】
ステップＳＰ８において、ポート状態確認プログラム１２０は、自装置３０ａの論理ユニットペア管理テーブル１１１を参照し、当該仮想ＬＵ  ＩＤと対応する自装置のＬＵ  ＩＤを、ＬＵ  ＩＤ（自装置）カラム５１２から取得する。【０１１７】
次にポート状態確認プログラム１２０は、自装置３０ａの自装置マッピング管理テーブル１１２を参照し、当該ＬＵ  ＩＤａと対応するＰＧ  ＩＤを、ＰＧ  ＩＤカラム５２３から取得する。次にポート状態確認プログラム１２０は、自装置３０ａのＰＧ状態管理テーブル１１４を参照し、ＰＧ状態をＰＧ状態カラム５４３から取得する。【０１１８】
次にポート状態確認プログラム１２０は、自装置３０ａの他装置マッピング管理テーブル１１３を参照し、他装置３０ｂのＬＵ  ＩＤと対応する他装置３０ｂのＰＧ  ＩＤを、ＰＧ  ＩＤカラム５３３から取得する。【０１１９】
次にポート状態確認プログラム１２０は、当該ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対する応答として、当該仮想ＬＵ  ＩＤに対応する自装置３０ａのＰＧ  ＩＤ及びＰＧ状態の組合せと、他装置３０ｂのＰＧ  ＩＤ及びＰＧ状態の組合せとを、ホスト計算機２０に送信する。このとき応答される他装置３０ｂのＰＧ状態は、当該ポートグループを介した全ての通信が不可であることを示す、「Ｏｆｆｌｉｎｅ」である。【０１２０】
本ステップではストレージ装置３０、３０ｂ間の通信が不可であるため、ホスト計算機２０に通知する他装置３０ｂのＰＧ  ＩＤは、実際に他装置３０ｂのＬＵ  ＩＤに対応づけられているＰＧ  ＩＤとは異なる可能性がある。ステップＳＰ８は、他装置３０ｂのポートグループの状態はホスト計算機２０に「Ｏｆｆｌｉｎｅ」であると、ホスト計算機２０に通知する。これにより、ホスト計算機２０から当該仮想論理ユニット６１へのアクセスは、当該ポートグループに属するポート３７を使用することがなく、実運用上の問題を防ぐことができる。【０１２１】
ステップＳＰ９において、ストレージ装置３０ａのポート状態確認プログラム１２０は、当該ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対する応答を行わない。ホスト計算機２０は、一定の時間以内にストレージ装置３０からの応答がなかった場合、当該ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドの発行に用いたポート３７は使用不可能な状態になっていると判定する。ホスト計算機２０は、別のポート３７を用いて改めてＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを発行する。【０１２２】
上記ステップＳＰ８及びＳＰ９により、ペア状態が非同期状態の場合についても、ホスト計算機２０に対して、ストレージ装置間で矛盾のない応答を行うことができる。【０１２３】
上記動作に代えて、マッピング状態管理プログラム１１８が、当該ポートグループに属する他装置３０ｂのポート３７と当該仮想論理ユニット６１の対応付けを、他装置マッピング管理テーブル１１３及びＰＧ状態管理テーブル１１４から削除してもよい。これにより、他装置３０ｂが、ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対して応答不可であることを示す。【０１２４】
この場合、ポート状態確認プログラム１２０は、ＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対しては、当該仮想ＬＵ  ＩＤに対応する自装置３０ａのＰＧ  ＩＤ及びＰＧ状態の組合せのみ応答する。当該仮想ＬＵ  ＩＤに対応する他装置３０ｂのＰＧ  ＩＤ及びＰＧ状態については一切応答を行わない。【０１２５】
なお、ストレージ装置３０ａが他装置マッピング管理テーブル１１３を持たなくてもよい。この構成において、ステップＳＰ６及びＳＰ８において、ポート状態確認プログラム１２０は、他装置３０ｂのＰＧ  ＩＤを参照することができない。ステップＳＰ６については、ステップＳＰ４及びＳＰ５でストレージ装置３０ｂに対してＰＧ状態の要求及び受信を行う際に、当該仮想ＬＵ  ＩＤに対応するＰＧ  ＩＤの要求及び受信を合わせて行えばよい。ステップＳＰ８については、ポート状態確認プログラム１２０が、ＰＧ状態管理テーブル１１４を参照し、装置情報カラム５４２の値が「自装置」となっているＰＧ  ＩＤ以外の全てのＰＧ  ＩＤについて、「Ｏｆｆｌｉｎｅ」と応答すればよい。【０１２６】
また、ステップＳＰ４において、装置間通信制御プログラム１１６は、ＨＡストレージ装置ペアを構成する他装置３０ｂに対し、論理ユニットペア管理テーブル１１１のＬＵ  ＩＤ（他装置）カラム５１３を送信してもよい。この場合、ストレージ装置３０ｂのポート状態確認プログラム１２０は、自装置マッピング管理テーブル１１２を参照し、取得したＬＵ  ＩＤと対応するＰＧ  ＩＤを、ＰＧ  ＩＤカラム５２３から取得する。【０１２７】
ＡＬＵＡ構成を組む場合、ストレージ装置３０の管理者は各ポート３７が属するポートグループについてＰＧ状態を設定する。例えば、全てのポートグループに対して「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）、或いは「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）の状態一方を設定する。【０１２８】
各ポートグループの状態は、ストレージ装置３０の管理者が自由に決めることができる。例えば以下のような基準で設定すればよい。【０１２９】
（１）ＨＡ論理ユニットペアを構成する２つの論理ユニット６０のうち、いずれか１つの論理ユニット６０にのみローカルコピーペアを組んでいる構成が考えられる。このような構成では、管理者は、バックアップ論理ユニットとローカルコピーペアを組んでいる論理ユニット６０に対応付けられているポート３７が属するポートグループの状態を「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）と設定すればよい。【０１３０】
さらに、管理者は、ローカルコピーを組んでいない独立の論理ユニット６０に対応付けられているポート３７が属するポートグループの状態を「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）と設定すればよい。これにより、仮想論理ユニットの耐障害性を向上できる。【０１３１】
（２）ＨＡ論理ユニットペアを構成する２つの論理ユニット６０のうち、いずれか１つの論理ユニット６０にのみ、バックアップ論理ユニットとリモートコピーを組む構成が考えられる。図９は、この構成例を示す。図９において、仮想論理ユニット６１ａは、論理ユニット６０ａ＿ａ、論理ユニット６０ｂ＿ａで構成されており、仮想論理ユニット６１ｂは、論理ユニット６０ａ＿ｂ、論理ユニット６０ｂ＿ｂで構成されている。論理ユニット６０ａ＿ａ、論理ユニット６０ａ＿ｂは、ストレージ装置３０ａにより提供され、論理ユニット６０ｂ＿ａ、論理ユニット６０ｂ＿ｂは、ストレージ装置３０ｂにより提供されている。【０１３２】
論理ユニット６０ａ＿ａは、ストレージ装置３０ｃの論理ユニット６０ｃとリモートコピーペアを構成している。論理ユニット６０ｂ＿ｂは、ストレージ装置３０ｄの論理ユニット６０ｄとリモートコピーペアを構成している。【０１３３】
管理者は、リモートコピーペアを組んでいる論理ユニット６０ａ＿ａ、６０ｂ＿ｂに対応付けられているポート３７が属するポートグループの状態を「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）と設定すればよい。管理者は、リモートコピーペアを組んでいない独立の論理ユニット６０ａ＿ｂ、６０ｂ＿ａに対応付けられているポート３７が属するポートグループの状態を、「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）と設定すればよい。これにより、仮想論理ユニットの耐障害性を向上できる。【０１３４】
（３）ＨＡ論理ユニットペアを構成する２つの論理ユニット６０のうち、いずれか１つの論理ユニット６０を有するストレージ装置３０が、ホスト計算機２０から近い距離に存在し、他方の論理ユニット６０を有するストレージ装置３０が、ホスト計算機２０から遠い距離に存在する構成が考えられる。【０１３５】
図１０は、この構成例を示す。図１０において、仮想論理ユニット６１ａは、論理ユニット６０ａ＿ａ、論理ユニット６０ｂ＿ａで構成されており、仮想論理ユニット６１ｂは、論理ユニット６０ａ＿ｂ、論理ユニット６０ｂ＿ｂで構成されている。論理ユニット６０ａ＿ａ、論理ユニット６０ａ＿ｂは、ストレージ装置３０ａにより提供され、論理ユニット６０ｂ＿ａ、論理ユニット６０ｂ＿ｂは、ストレージ装置３０ｂにより提供されている。【０１３６】
ホスト計算機２０ａは、仮想論理ユニット６１ａにアクセスする。ホスト計算機２０ａは、ストレージ装置３０ｂから遠く、ストレージ装置３０ａに近い位置に配置されている。ホスト計算機２０ｂは、仮想論理ユニット６１ｂにアクセスする。ホスト計算機２０ｂは、ストレージ装置３０ａから遠く、ストレージ装置３０ｂに近い位置に配置されている。【０１３７】
管理者は、ホスト計算機２０ａから近い距離に存在するストレージ装置３０ａが有する論理ユニット６０ａ＿ａに対応付けられているポート３７が属するポートグループを「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）と設定すればよい。さらに、管理者は、ホスト計算機２０ａから遠い距離に存在するストレージ装置３０ｂが有する論理ユニット６０ｂ＿ａに対応付けられているポート３７が属するポートグループの状態を「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）と設定すればよい。【０１３８】
同様に、管理者は、ホスト計算機２０ｂから近い距離に存在するストレージ装置３０ｂが有する論理ユニット６０ｂ＿ｂに対応付けられているポート３７が属するポートグループを「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）と設定すればよい。さらに、管理者は、ホスト計算機２０ｂから遠い距離に存在するストレージ装置３０ａが有する論理ユニット６０ａ＿ｂに対応付けられているポート３７が属するポートグループの状態を「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）と設定すればよい。これにより、ホスト計算機から仮想論理ユニットへのアクセスにおける応答時間を短縮できる。【０１３９】
（４）図５Ｂを参照して説明したように、ストレージ装置３０間で障害が発生した場合、ＨＡ論理ユニットペアを構成する二つの論理ユニット６０において、いずれの論理ユニット６０を用いて運用を行うか、予め設定されている。【０１４０】
ここで、ストレージ装置３０間の通信障害時に「Ｉ／Ｏ可能」と設定される論理ユニット６０をプライマリＬＵ、「Ｉ／Ｏ不可」と設定される論理ユニット６０をセカンダリＬＵと呼ぶ。【０１４１】
管理者は、プライマリＬＵに対応付けられているポート３７が属するポートグループを「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）と設定し、セカンダリＬＵに対応付けられているポート３７が属するポートグループを「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）と設定すればよい。これにより、ストレージ装置間の通信が取れない状態においても、ホスト計算機が同一の論理ユニットにアクセスできる。【０１４２】
以上の例において、ストレージ装置３０の管理者が、手動でポートグループの状態（優先度）を設定する。ストレージ装置３０は、ポートグループの状態を自動的に設定してもよい。例えば、上記（１）のケースにおいて、ストレージ装置３０ａ、３０ｂの装置間通信制御プログラム１１６は、自装置３０のローカルコピーの構成についての情報を、他装置３０に送信し、受信した情報を制御メモリ３４内に保持する。【０１４３】
各ストレージ装置３０のポート状態設定プログラム１１９は、自装置及び他装置３０のローカルコピー構成を基に、上記（１）において説明した判定を行い、判定結果を自装置３０のＰＧ状態管理テーブル１１４に格納する。【０１４４】
若しくは、上記（４）のケースにおいて、各ストレージ装置３０のポート状態設定プログラム１１９が、自装置３０の論理ユニットペア管理テーブル１１１を参照し、プライマリＬＵ  ＩＤの情報を基に、上記（４）と同様の判定を行い、判定結果を自装置３０のＰＧ状態管理テーブル１１４に格納する。【０１４５】
なお、図２が示す構成例において、装置の仮想化機能を有するストレージ装置３０に存在するディスクドライブ３９によって提供される論理ユニット６０が、ＨＡ論理ユニットペアを構成している。これと異なり、ストレージ装置３０に外接ストレージ装置を接続し、外接ストレージ装置のディスクドライブよって提供される論理ユニットによってＨＡ論理ユニットペアを構成してもよい。【０１４６】
図１１は、この構成例を示す。図１１において、外接ストレージ装置８０ａ、８０ｂが、それぞれ、ストレージ装置３０ａ、３０ｂに接続している。外接ストレージ装置８０ａ、８０ｂは、それぞれ、ストレージコントローラ８１及びディスクドライブ８４を含む。ストレージコントローラ８１は、Ｉ／Ｆ８２及びポート８３を含む。【０１４７】
外接ストレージ装置８０ａ、８０ｂは、ディスクドライブ８４の記憶領域から論理ユニットを構成する。ストレージ装置３０ａ、３０ｂは、それぞれ、外接ストレージ装置８０ａ、８０ｂの論理ユニットを、マッピングにより自装置の論理ユニットと同様に、ホスト計算機２０に提供することができる。【０１４８】
ストレージ装置３０ａ、３０ｂは、外接ストレージ装置８０ａ、８０ｂの論理ユニットのみでＨＡ論理ユニットペアを構成してもよいし、外接ストレージ装置８０ａ、８０ｂの論理ユニットとストレージ装置３０ａ、３０ｂの論理ユニットでＨＡ論理ユニットペアを構成してもよい。なお、この構成において、ストレージ装置３０ａ、３０ｂのディスクドライブ３９の有無を問わず、また、外接ストレージ装置８０ａ、８０ｂの仮想化機能の有無を問わない。【０１４９】
以上のように、本実施例によれば、複数のストレージ装置によるＡＵＬＡ構成のストレージシステムにおいて、仮想論理ユニットに対するポート状態通知要求に対して、応答内容の不整合を避けることができる。
【実施例２】
【０１５０】
実施例１は、ＡＬＵＡ構成を有する複数のストレージ装置３０を含む情報システムの例を説明した。複数ストレージ装置がＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を有する場合、その対称性に関わらず、ＡＬＵＡ構成と同様の課題が存在する。そこで本実施例は、複数ストレージ装置により対称的なＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を組む例を説明する。なお、ＡＬＵＡ構成と区別する上で、対称的なＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を、ＳＬＵＡ（Ｓｙｍｍｅｔｒｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ａｃｃｅｓｓ）構成と呼ぶこともある。【０１５１】
以下には実施例１との差異を主に説明する。ＳＬＵＡ構成においても、ＨＡストレージ装置ペアを構成するストレージ装置３０間で通信が取れていない場合、ストレージ装置３０は、ＰＧ状態について、実施例１と同様の応答を返す。【０１５２】
ＳＬＵＡ構成においては、ホスト計算機２０が仮想論理ユニット６１にアクセスする場合、どのパスを用いても差がないことが期待される。通常時において、ホスト計算機２０が発行するＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対する応答は、全ポートグループのＰＧ状態が「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）であることを示せばよい。【０１５３】
ホスト計算機２０は、仮想論理ユニット６１へのアクセスに際し、任意のパスを使用してよい。例えば、ホスト計算機２０は、仮想論理ユニット６１へアクセス可能な全てパスの中から、ラウンドロビンでアクセスに使用するパスを選択する。【０１５４】
ただし、ホスト計算機２０のパス選択方法によっては、ＨＡストレージ装置ペアを構成する２つのストレージ装置３０のうち、いずれか一方のストレージ装置３０の負荷が増大する可能性がある。【０１５５】
そこで、例えば、ストレージ装置３０ａ、３０ｂのそれぞれは、ホスト計算機２０が定期的に発行するＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドに対して、ＨＡストレージ装置ペアを構成するストレージ装置３０ａ、３０ｂ双方の負荷状態を基に、応答する。ストレージ装置３０ａ、３０ｂの負荷状態に基づく応答は、ＨＡストレージ装置ペアを構成するストレージ装置３０間で通信可能である場合の応答である。【０１５６】
例えば、仮想ストレージ装置７０を構成するストレージ装置３０ａ、３０ｂのそれぞれは、負荷状態監視プログラム（不図示）により、自装置の有する全プロセッサ３２の稼働率を定期的に監視し、プロセッサ３２当たり及び単位時間当たりの平均稼働率を算出する。ストレージ装置３０ａ、３０ｂの装置間通信制御プログラム１１６は、それぞれ、自装置の測定値を他装置に送信し、自装置の測定値を他装置と共有する。【０１５７】
二つのストレージ装置３０ａ、３０ｂ平均稼働率の差が規定値を超える場合、次回のＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを受信したストレージ装置３０は、平均稼働率の高いストレージ装置３０の有するポートグループのうち、所定割合のポートグループのＰＧ状態を「Ａｃｔｉｖｅ／Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ」（非優先）と応答する。上記所定割合は、平均稼働率の差に応じて増加する関数で表されてもよいし、固定値でもよい。【０１５８】
その後、当該平均稼働率の差が上記規定値以下になった場合、次回のＲＥＰＯＲＴ  ＴＡＲＧＥＴ  ＰＯＲＴ  ＧＲＯＵＰＳコマンドを受信したストレージ装置３０は、全ＰＧの状態が「Ａｃｔｉｖｅ／Ｏｐｔｉｍｉｚｅｄ」（優先）であると、応答する。【０１５９】
ストレージ装置３０は、プロセッサ３２の稼働率以外の負荷状態の測定値を使用することができる。他の負荷状態の測定値の例は、ディスクドライブ３９の平均稼働率及びキャッシュメモリ３５の平均使用率等である。複数種類の測定値の組み合わせを使用してもよい。以上のように、本実施例によれば、ストレージ装置の負荷状態に応じてホスト計算機からのアクセスを制御することで、適切に負荷を分散することができる。【０１６０】
尚、本発明は上記実施例に限定されるものではなく、様々な変形例を含む。例えば、仮想ストレージ装置は、３以上のストレージ装置から構成されていてもよい。ストレージ装置は、他ストレージ装置のポート状態の情報やコピーペアの情報を管理計算機から受信してもよい。【０１６１】
ホスト計算機は、上記例のように、仮想論理ユニットのポートグループの状態を問い合わせることで、当該仮想論理ユニットのポート状態を問い合わせてもよいし、当該仮想論理ユニットのポートのみの状態を問い合わせてもよい。ストレージ装置は、仮想論理ユニットのポートのみについて、ポート状態の情報を返す。【０１６２】
上記例は本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備えるものに限定されるものではない。ある例の構成の一部を他の例の構成に置き換えることが可能であり、ある例の構成に他の例の構成を加えることも可能である。各例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。図の構成は説明上必要と考えられるものを示しており、製品上必ずしも全ての構成を示しているとは限らない。
【図１】
0005948504.tif 000002
【図２】
0005948504.tif 000003
【図３Ａ】
0005948504.tif 000004
【図３Ｂ】
0005948504.tif 000005
【図４Ａ】
0005948504.tif 000006
【図４Ｂ】
0005948504.tif 000007
【図５Ａ】
0005948504.tif 000008
【図５Ｂ】
0005948504.tif 000009
【図５Ｃ】
0005948504.tif 000010
【図５Ｄ】
0005948504.tif 000011
【図５Ｅ】
0005948504.tif 000012
【図６】
0005948504.tif 000013
【図７】
0005948504.tif 000014
【図８】
0005948504.tif 000015
【図９】
0005948504.tif 000016
【図１０】
0005948504.tif 000017
【図１１】
0005948504.tif 000018