(57)【要約】【課題】  コントローラが複数のホストのうちの１つから要求を受信して処理する方法、システム、および製品を提供する。【解決手段】  コントローラは、そのコントローラに結合された１次ストレージ・コントロール・ユニットが動作可能であるかどうかを判定する。１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、１次ストレージ・コントロール・ユニットにアクセスすることにより、応答が生成される。この応答は、１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、２次ストレージ・コントローラにアクセスすることにより生成され、データは１次ストレージ・コントロール・ユニットから２次ストレージ・コントロール・ユニットに同期的に複製される。【選択図】  図１
2006195977.tif 000002
【特許請求の範囲】
【請求項１】
コントローラで複数のホストのうちの１つから要求を受信することと、
前記コントローラにより、１次ストレージ・コントロール・ユニットが動作可能であるかどうかを判定することと、
前記１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、前記１次ストレージ・コントロール・ユニットにアクセスすることにより応答を生成することと、
前記１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、２次ストレージ・コントロール・ユニットにアクセスすることにより前記応答を生成することであって、データが前記１次ストレージ・コントロール・ユニットから前記２次ストレージ・コントロール・ユニットに同期的に複製されて、前記応答を生成することと、
を含む、ストレージ・アクセス要求処理方法。
【請求項２】
前記コントローラがキャッシュを含み、前記方法が、
書込みキャッシュが前記コントローラ内で使用可能であるかどうかを判定することと、
前記２次ストレージ・コントロール・ユニットにアクセスすることにより前記応答を生成する前に、前記２次ストレージ・コントロール・ユニットを前記キャッシュの内容で更新することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記コントローラがキャッシュを含み、書込みキャッシュが前記コントローラ内で使用可能であり、前記要求が書込み要求であり、前記方法が、
前記書込み要求を受信したことに応答して、前記データを前記キャッシュに書き込むことと、
前記書込み要求が受信された前記複数のホストのうちの前記１つに対して、前記書込み要求が実行されたことを応答することであって、前記キャッシュに書き込まれた前記データが、
（ｉ）前記１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、前記１次ストレージ・コントロール・ユニットに、
（ｉｉ）前記１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、前記２次ストレージ・コントロール・ユニットに、
定期的にデステージされることと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記複数のホストが、どのストレージ・コントロール・ユニットが前記ホストからの要求を満足するかを前記複数のホストに対して示す通知なしに動作する、請求項１に記載の方法。
【請求項５】
前記コントローラがキャッシュを含み、書込みキャッシュが使用可能であり、前記要求が読取り要求であり、前記方法が、
前記読取り要求を前記キャッシュから満足できると判定したことに応答して、前記読取り要求を前記キャッシュから満足することと、
前記読取り要求を前記キャッシュから満足できないと判定したことに応答して、前記１次ストレージ・コントロール・ユニットが動作可能である場合に前記読取り要求を前記１次ストレージ・コントロール・ユニットから満足することと、
前記１次ストレージ・コントロール・ユニットが動作可能ではない場合に前記２次ストレージ・コントロール・ユニットを前記キャッシュの内容で更新することと、
前記２次ストレージ・コントロール・ユニットの更新の後で前記読取り要求を前記２次ストレージ・コントロール・ユニットから満足することと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記１次ストレージ・コントロール・ユニットに対する更新が前記２次ストレージ・コントロール・ユニットにコピーされた後で、前記１次ストレージ・コントロール・ユニットにより前記コントローラに完了通知を送信することで、前記データが、前記１次ストレージ・コントロール・ユニットと前記２次ストレージ・コントロール・ユニットとの間で同期的に複製され、前記データが同期的に複製された後で前記１次ストレージ・コントロール・ユニットおよび前記２次ストレージ・コントロール・ユニットが同一データを含んでいる、請求項１に記載の方法。
【請求項７】
複数のオペレーティング・システムが前記複数のホスト上で実行され、前記コントローラ内の単一アプリケーションにより前記複数のホストが前記１次ストレージ・コントロール・ユニットおよび前記２次ストレージ・コントロール・ユニットに保管されたデータにアクセスできるようにし、前記１次ストレージ・コントロール・ユニットが動作可能である場合に前記１次ストレージ・コントロール・ユニットが前記複数のホストによって生成されたデータ転送要求を処理するために使用可能である、請求項１に記載の方法。
【請求項８】
前記コントローラが、前記１次および２次ストレージ・コントロール・ユニット内のストレージ・ボリュームを制御するストレージ・エリア・ネットワーク・ボリューム・コントローラであり、前記１次ストレージ・コントロール・ユニットが１次ストレージ・コントローラであり、前記２次ストレージ・コントロール・ユニットが２次ストレージ・コントローラであり、前記ストレージ・エリア・ネットワーク・ボリューム・コントローラ上のリダイレクト・アプリケーションが、前記受信すること、前記判定すること、前記１次ストレージ・コントローラにアクセスすることによる前記応答生成すること、および前記２次ストレージ・コントローラにアクセスすることによる前記応答生成することを実行する、請求項１に記載の方法。
【請求項９】
メモリと、
前記メモリに結合されたプロセッサとを有し、前記プロセッサが動作を実行することができ、前記動作が、
（ｉ）複数のホストのうちの１つから要求を受信することと、
（ｉｉ）１次ストレージ・コントロール・ユニットが動作可能であるかどうかを判定することと、
（ｉｉｉ）前記１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、前記１次ストレージ・コントロール・ユニットにアクセスすることにより応答を生成することと、
（ｉｖ）前記１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、２次ストレージ・コントロール・ユニットにアクセスすることにより前記応答を生成することであって、データが前記１次ストレージ・コントロール・ユニットから前記２次ストレージ・コントロール・ユニットに同期的に複製されて、前記応答を生成することと、
を含むストレージ・アクセス要求処理システム。
【請求項１０】
キャッシュをさらに含み、前記動作が、
（ｉ）書込みキャッシュが使用可能であるかどうかを判定することと、
（ｉｉ）前記２次ストレージ・コントロール・ユニットにアクセスすることにより前記応答を生成する前に、前記２次ストレージ・コントロール・ユニットを前記キャッシュの内容で更新することと、
をさらに含む、請求項９に記載のシステム。
【請求項１１】
キャッシュをさらに含み、書込みキャッシュが使用可能であり、前記要求が書込み要求であり、前記動作が、
（ａ）前記書込み要求を受信したことに応答して、前記データを前記キャッシュに書き込むことと、
（ｂ）前記書込み要求が受信された前記複数のホストのうちの前記１つに対して、前記書込み要求が実行されたことを応答することであって、前記キャッシュに書き込まれた前記データが、
（ｉ）前記１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、前記１次ストレージ・コントロール・ユニットに、
（ｉｉ）前記１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、前記２次ストレージ・コントロール・ユニットに、
定期的にデステージされることと、
をさらに含む、請求項９に記載のシステム。
【請求項１２】
前記複数のホストが、どのストレージ・コントロール・ユニットが前記ホストからの要求を満足するかを前記複数のホストに対して示す通知なしに動作する、請求項９に記載のシステム。
【請求項１３】
キャッシュをさらに含み、書込みキャッシュが使用可能であり、前記要求が読取り要求であり、前記動作が、
（ａ）前記読取り要求を前記キャッシュから満足できると判定したことに応答して、前記読取り要求を前記キャッシュから満足することと、
（ｂ）前記読取り要求を前記キャッシュから満足できないと判定したことに応答して、前記１次ストレージ・コントロール・ユニットが動作可能である場合に前記読取り要求を前記１次ストレージ・コントロール・ユニットから満足することと、
（ｃ）前記１次ストレージ・コントロール・ユニットが動作可能ではない場合に前記２次ストレージ・コントロール・ユニットを前記キャッシュの内容で更新することと、
（ｄ）前記２次ストレージ・コントロール・ユニットの更新の後で前記読取り要求を前記２次ストレージ・コントロール・ユニットから満足することと、
をさらに含む、請求項９に記載のシステム。
【請求項１４】
前記１次ストレージ・コントロール・ユニットに対する更新が前記２次ストレージ・コントロール・ユニットにコピーされた後で、前記１次ストレージ・コントロール・ユニットにより完了通知を送信することで、前記データが、前記１次ストレージ・コントロール・ユニットと前記２次ストレージ・コントロール・ユニットとの間で同期的に複製され、前記データが同期的に複製された後で前記１次ストレージ・コントロール・ユニットおよび前記２次ストレージ・コントロール・ユニットが同一データを含んでいる、請求項９に記載のシステム。
【請求項１５】
複数のオペレーティング・システムが前記複数のホスト上で実行され、単一アプリケーションにより前記複数のホストが前記１次ストレージ・コントロール・ユニットおよび前記２次ストレージ・コントロール・ユニットに保管されたデータにアクセスできるようにし、前記１次ストレージ・コントロール・ユニットが動作可能である場合に前記１次ストレージ・コントロール・ユニットが前記複数のホストによって生成されたデータ転送要求を処理するために使用可能である、請求項９に記載のシステム。
【請求項１６】
前記システムが、前記１次および２次ストレージ・コントロール・ユニット内のストレージ・ボリュームを制御するストレージ・エリア・ネットワーク・ボリューム・コントローラであり、前記１次ストレージ・コントロール・ユニットが１次ストレージ・コントローラであり、前記２次ストレージ・コントロール・ユニットが２次ストレージ・コントローラであり、前記ストレージ・エリア・ネットワーク・ボリューム・コントローラ上のリダイレクト・アプリケーションが、前記受信すること、前記判定すること、前記１次ストレージ・コントローラにアクセスすることによる前記応答生成すること、および前記２次ストレージ・コントローラにアクセスすることによる前記応答生成することを実行する、請求項９に記載のシステム。
【請求項１７】
複数のホスト、１次ストレージ・コントロール・ユニットおよび２次ストレージ・コントロール・ユニットに結合されたコントローラに含まれるコンピュータに、
前記複数のホストのうちの１つから要求を受信する機能と、
前記１次ストレージ・コントロール・ユニットが動作可能であるかどうかを判定する機能と、
前記１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、前記１次ストレージ・コントロール・ユニットにアクセスすることにより応答を生成する機能と、
前記１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、前記２次ストレージ・コントロール・ユニットにアクセスすることにより前記応答を生成する機能であって、データが前記１次ストレージ・コントロール・ユニットから前記２次ストレージ・コントロール・ユニットに同期的に複製されて、前記応答を生成する機能と、
を実現させるためのプログラム。
【請求項１８】
複数のホスト、１次ストレージ・コントロール・ユニットおよび２次ストレージ・コントロール・ユニットに結合されたコントローラを含むコンピューティング・システムにコンピュータ可読コードを組込んで、ストレージ・アクセス要求処理のコンピューティング・システムをデプロイするための方法であって、
前記コントローラで前記複数のホストのうちの１つから要求を受信することと、
前記コントローラにより、前記１次ストレージ・コントロール・ユニットが動作可能であるかどうかを判定することと、
前記１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、前記１次ストレージ・コントロール・ユニットにアクセスすることにより応答を生成することと、
前記１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、前記２次ストレージ・コントロール・ユニットにアクセスすることにより前記応答を生成することであって、データが前記１次ストレージ・コントロール・ユニットから前記２次ストレージ・コントロール・ユニットに同期的に複製されて、前記応答を生成することと、
を実行することができる前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・アクセス要求をリダイレクトするための方法、システム、および製品（article of manufacture）に関する。
【背景技術】
【０００２】
ホスト・サーバは、１次ストレージ・コントローラの障害の場合に、バックアップまたは２次ストレージ・コントローラに対してデータ・アクセス動作を実行し続けることができる。たとえば、ＩＢＭの*ＨｙｐｅｒＳｗａｐ*構成では、ホスト・サーバは１次および２次ストレージ・コントローラにアクセスすることができる。（ＩＢＭおよびＨｙｐｅｒＳｗａｐはインターナショナル・ビジネス・マシーンズ社の商標または登録商標である。）ホスト・サーバは１次ストレージ・コントローラに対してすべてのストレージ・アクセスを振り向けることができ、２つのストレージ・コントローラは、同一データが両方に保管されることを保証するために協力して動作することができる。ホスト・サーバ上のＨｙｐｅｒＳｗａｐソフトウェアは、１次ストレージ・コントローラで障害が発生した時期を決定することができ、すべてのストレージ・アクセスを２次ストレージ・コントローラに自動的にリダイレクトすることができる。
【０００３】
１次および２次ストレージ・コントローラは、ピアツーピア・リモート・コピー（ＰＰＲＣ：Peer-to-Peer Remote Copy）機能を使用して、１次ストレージ・コントローラから２次ストレージ・コントローラにデータをコピーすることができる。ＰＰＲＣ用の同期タイプの動作、すなわち、同期ＰＰＲＣでは、１次ストレージ・コントローラ側のローカル・ストレージ・ボリュームに対してホスト・アプリケーションによって実行される更新は、２次ストレージ・コントローラ側のリモート・ストレージ・ボリュームに対して同期的にシャドーイングされる。同期ＰＰＲＣは同期コピー・ソリューションであるので、ホスト・アプリケーションに関して書込みが完了したと見なされるよりも前での、両方のコピー（ローカルおよびリモート・ストレージ・ボリューム）についての書込み更新が保証される。同期ＰＰＲＣでは、ローカルおよびリモート・ボリュームの両方で更新が同期的に実行されるまで、ホスト・アプリケーションは「書込み完了」条件を取得しない。したがって、ホスト・サーバ上のホスト・アプリケーションの見地から見ると、２次ストレージ・コントローラ側のリモート・ボリュームのデータは１次ストレージ・コントローラ側のローカル・ボリュームのデータと同等であり、障害のある１次ストレージ・コントローラの代わりに２次ストレージ・コントローラを使用することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、コントローラが複数のホストのうちの１つから要求を受信する方法、システム、および製品を提供する。
【課題を解決するための手段】
【０００５】
コントローラは、そのコントローラに結合された１次ストレージ・コントロール・ユニットが動作可能であるかどうかを判定する。１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して、１次ストレージ・コントロール・ユニットにアクセスすることにより、応答が生成される。この応答は、１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して、２次ストレージ・コントローラにアクセスすることにより生成され、データは１次ストレージ・コントロール・ユニットから２次ストレージ・コントロール・ユニットに同期的に複製される。
【０００６】
特定の諸実施形態では、コントローラはキャッシュを含み、書込みキャッシュがコントローラ内で使用可能であるかどうかの判定が行われる。２次ストレージ・コントロール・ユニットにアクセスすることにより応答を生成する前に、２次ストレージ・コントロール・ユニットはキャッシュの内容で更新される。
【０００７】
追加の諸実施形態では、コントローラはキャッシュを含み、書込みキャッシュはコントローラ内で使用可能であり、要求は書込み要求であり、書込み要求を受信したことに応答して、データがキャッシュに書き込まれる。そこから書込み要求が受信された複数のホストのうちの１つに対して応答が行われ、その応答は書込み要求が実行されたことを示し、キャッシュに書き込まれたデータは、１次ストレージ・コントロール・ユニットが動作可能であると判定したことに応答して１次ストレージ・コントロール・ユニットに、１次ストレージ・コントロール・ユニットが動作可能ではないと判定したことに応答して２次ストレージ・コントロール・ユニットに、定期的にデステージされる。
【０００８】
他の諸実施形態では、複数のホストは、どのストレージ・コントロール・ユニットがそのホストからの要求を満足するかを複数のホストに対して示す通知なしに動作する。
【０００９】
さらに他の諸実施形態では、コントローラはキャッシュを含み、書込みキャッシュは使用可能であり、要求は読取り要求であり、読取り要求をキャッシュから満足できると判定したことに応答して、読取り要求はキャッシュから満足される。読取り要求をキャッシュから満足できないと判定したことに応答して、１次ストレージ・コントロール・ユニットが動作可能である場合に読取り要求は１次ストレージ・コントロール・ユニットから満足される。１次ストレージ・コントロール・ユニットが動作可能ではない場合に２次ストレージ・コントロール・ユニットはキャッシュの内容で更新される。２次ストレージ・コントロール・ユニットの更新の後で読取り要求は２次ストレージ・コントロール・ユニットから満足される。
【００１０】
さらに他の諸実施形態では、１次ストレージ・コントロール・ユニットに対する更新が２次ストレージ・コントロール・ユニットにコピーされた後で１次ストレージ・コントロール・ユニットを介してコントローラに完了通知を送信することにより、データは１次ストレージ・コントロール・ユニットと２次ストレージ・コントロール・ユニットとの間で同期的に複製され、データが同期的に複製された後で１次ストレージ・コントロール・ユニットおよび２次ストレージ・コントロール・ユニットは同一データを含む。
【００１１】
追加の諸実施形態では、複数のオペレーティング・システムは複数のホスト上で実行され、コントローラ内の単一アプリケーションは複数のホストが１次ストレージ・コントロール・ユニットおよび２次ストレージ・コントロール・ユニットに保管されたデータにアクセスできるようにし、１次ストレージ・コントロール・ユニットが動作可能である場合に１次ストレージ・コントロール・ユニットは複数のホストによって生成されたデータ転送要求を処理するために使用可能である。
【００１２】
さらに追加の諸実施形態では、コントローラは、１次および２次ストレージ・コントロール・ユニット内のストレージ・ボリュームを制御するストレージ・エリア・ネットワーク・ボリューム・コントローラであり、１次ストレージ・コントロール・ユニットは１次ストレージ・コントローラであり、２次ストレージ・コントロール・ユニットは２次ストレージ・コントローラであり、ストレージ・エリア・ネットワーク・ボリューム・コントローラ上のリダイレクト・アプリケーションは、受信、判定、１次ストレージ・コントローラにアクセスすることによる応答生成、および２次ストレージ・コントローラにアクセスすることによる応答生成を実行する。
【００１３】
次に図面を参照すると、同様の参照番号は図面全体を通して対応する部分を表している。
【発明を実施するための最良の形態】
【００１４】
以下の説明では、本明細書の一部を形成し、いくつかの諸実施形態を図示する添付図面を参照する。その他の諸実施形態を使用することができ、構造上および動作上の変更を行うことができることは言うまでもない。
【００１５】
図１は、複数のホスト１０２ａ、１０２ｂ、・・・、１０２ｎと、リダイレクト・コントローラ１０４と、１次ストレージ・コントローラ１０６と、２次ストレージ・コントローラ１０８とを含むコンピューティング環境１００を示している。特定の諸実施形態では、ホスト１０２ａ・・・１０２ｎはデータ・インターフェース・チャネル１１０ａ、１１０ｂ、・・・、１１０ｎを介してリダイレクト・コントローラ１０４に結合され、リダイレクト・コントローラ１０４はデータ・インターフェース・チャネル１１２、１１４を介して１次および２次ストレージ・コントローラ１０６、１０８に結合されている。データ・インターフェース・チャネル１１０ａ・・・１１０ｎ、１１２、１１４は、エンタープライズ・システム接続（ＥＳＣＯＮ）*チャネルまたはファイバ・チャネル、ストレージ・エリア・ネットワーク（ＳＡＮ）相互接続などの任意のその他の適切なデータ・インターフェース・メカニズムを含むことができる。（ＥＳＣＯＮはインターナショナル・ビジネス・マシーンズ社の商標または登録商標である。）
【００１６】
ホスト１０２ａ・・・１０２ｎは、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、電話通信装置、ブレード・コンピュータ、ネットワーク・アプライアンスなど、当技術分野で現在知られているものを含む、任意の適切な計算装置を有することができる。ホスト１０２ａ・・・１０２ｎは、ＩＢＭのＯＳ／３９０*オペレーティング・システム、Ｍｉｃｒｏｓｏｆｔ*のＷｉｎｄｏｗｓ*オペレーティング・システムなどの任意の適切なオペレーティング・システム（図示せず）を含むことができる。（ＯＳ／３９０はインターナショナル・ビジネス・マシーンズ社の商標または登録商標であり、ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓはマイクロソフト社の商標または登録商標である。）また、ホスト１０２ａ・・・１０２ｎは、リダイレクト・コントローラ１０４に入出力（Ｉ／Ｏ）要求を送信するホスト・アプリケーション１１６ａ、１１６ｂ、・・・、１１６ｎも含むことができる。
【００１７】
リダイレクト・コントローラ１０４は、計算装置、コントローラ、ＩＢＭのＴｏｔａｌＳｔｏｒａｇｅ*  ＳＡＮボリューム・コントローラ、アプライアンスなど、当技術分野で現在知られているものを含む、任意の適切なデバイスを有することができる。（ＴｏｔａｌＳｔｏｒａｇｅはインターナショナル・ビジネス・マシーンズ社の商標または登録商標である。）リダイレクト・コントローラ１０４は、リダイレクト・アプリケーション１１８とキャッシュ１２０とを含むことができる。リダイレクト・アプリケーション１１８は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せで実現することができる。
【００１８】
リダイレクト・アプリケーション１１８は、ホスト・アプリケーション１１６ａ・・・１１６ｎから入出力要求を受信し、１次ストレージ・コントローラ１０６にアクセスすることにより受信した入出力要求に応答することができる。１次ストレージ・コントローラ１０６の障害の場合、リダイレクト・アプリケーション１１８は、２次ストレージ・コントローラ１０８にアクセスすることにより受信した入出力要求に応答することができる。
【００１９】
１次および２次ストレージ・コントローラ１０６、１０８は、互いに同期通信距離の範囲内にある可能性がある。２つのストレージ・コントローラ間の同期通信距離は、２つのストレージ・コントローラ間で同期通信が実行可能な距離である。ストレージ・コントローラ１０６、１０８、すなわち、ストレージ・コントロール・ユニットはストレージ・ボリューム（図示せず）を制御し、ストレージ・ボリュームは、直接アクセス・ストレージ・デバイス（ＤＡＳＤ）、１つまたは複数の冗長ディスク・アレイ（ＲＡＩＤ）、単純ディスク束（ＪＢＯＤ）、または当技術分野で知られている任意の他のデータ・リポジトリ・システムとして構成することができる。
【００２０】
データ・インターフェース・チャネル１２２は、１次ストレージ・コントローラ１０６を２次ストレージ・コントローラ１０８に結合することができる。１次ストレージ・コントローラ１０６内のデータは２次ストレージ・コントローラ１０８に同期的にコピーすることができる（参照番号１２４）。同期コピーの結果として、１次ストレージ・コントローラ１０６によって制御されるデータに対する変更が２次ストレージ・コントローラ１０８にコピーされるまで、リダイレクト・アプリケーション１１８から１次ストレージ・コントローラ１０６への要求は完了しない。特定の諸実施形態では、データを同期的にコピーする同期コピー動作１２４は同期ＰＰＲＣ動作にすることができる。
【００２１】
図１は、リダイレクト・コントローラ１０４上のリダイレクト・アプリケーション１１８がホスト・アプリケーション１１６ａ・・・１１６ｎから動作可能な１次ストレージ・コントローラ１０６に入出力要求をリダイレクトする、特定の諸実施形態を示している。１次ストレージ・コントローラ１０６が動作可能ではない場合、リダイレクト・アプリケーション１１８はホスト・アプリケーション１１６ａ・・・１１６ｎから２次ストレージ・コントローラ１０８に入出力要求をリダイレクトする。特定の諸実施形態では、複数のオペレーティング・システムは複数のホスト１０２ａ・・・１０２ｎ上で実行され、リダイレクト・コントローラ１０４内の単一リダイレクト・アプリケーション１１８は複数のホスト１０２ａ・・・１０２ｎが１次ストレージ・コントローラ１０６および２次ストレージ・コントローラ１０８に保管されたデータにアクセスできるようにする。
【００２２】
図２は、特定の諸実施形態により、書込みキャッシュがリダイレクト・コントローラ１０４内で使用不可であるときにストレージ・アクセスをリダイレクトするための動作を示している。特定の諸実施形態では、この動作はリダイレクト・アプリケーション１１８で実現することができる。
【００２３】
特定の諸実施形態では、書込みキャッシュはリダイレクト・コントローラ１０４内で使用不可である。書込みキャッシュの使用不可は、リダイレクト・アプリケーション１１８によるかまたは他のアプリケーションにより実行することができる。書込みキャッシュが使用不可であるときに、リダイレクト・アプリケーション１１８は、動作可能な１次ストレージ・コントローラ１０６に書き込むことにより、ホスト・アプリケーション１１６ａ・・・１１６ｎから受信した書込み動作を実行する。１次ストレージ・コントローラ１０６が動作可能ではない場合、リダイレクト・アプリケーション１１８は、２次ストレージ・コントローラ１０８に書き込むことにより、書込み動作を実行する。書込みキャッシュが使用不可であるときに、キャッシュ１２０は書込み動作を実行するために使用されない。
【００２４】
制御はブロック２００から始まり、そこで書込みキャッシュが使用不可であると判定されたときに、リダイレクト・アプリケーション１１８はホスト・アプリケーション１１６ａ・・・１１６ｎのうちの１つから入出力要求を受信する。リダイレクト・アプリケーション１１８は（ブロック２０２で）、１次ストレージ・コントローラ１０６が動作可能であるかどうか、すなわち、１次ストレージ・コントローラ１０６に障害が発生していないかどうかを判定する。
【００２５】
１次ストレージ・コントローラ１０６が動作可能であるとリダイレクト・アプリケーション１１８が（ブロック２０２で）判定した場合、リダイレクト・アプリケーション１１８は（ブロック２０４で）実行のために１次ストレージ・コントローラ１０６に入出力要求を送信する。たとえば、書込み要求は１次ストレージ・コントローラ１０６によって制御されるストレージ・ボリュームにデータを書き込むことができ、読取り要求は１次ストレージ・コントローラ１０６によって制御されるストレージ・ボリュームからデータを読み取ることができる。
【００２６】
リダイレクト・アプリケーション１１８は（ブロック２０６で）１次ストレージ・コントローラ１０６から応答を受信し、その応答は送信された要求の実行の結果である。たとえば、その応答は、読取り要求によって要求されたデータを提供することができる。１次ストレージ・コントローラ１０６は２次ストレージ・コントローラ１０８と同期ＰＰＲＣ関係にあるので、１次および２次ストレージ・コントローラ１０６、１０８内のデータが同一になった後でのみ、応答がリダイレクト・アプリケーション１１８によって受信される。
【００２７】
リダイレクト・アプリケーション１１８は（ブロック２０８で）、そこからリダイレクト・アプリケーション１１８が入出力要求を受信したホスト・アプリケーションに応答を送信する。制御はブロック２００に戻り、そこでリダイレクト・アプリケーション１１８はホスト・アプリケーション１１６ａ・・・１１６ｎのうちの１つから他の入出力要求を受信する。特定の諸実施形態では、ホスト・アプリケーション１１６ａ・・・１１６ｎからの入出力要求は処理のためにすでにリダイレクト・コントローラ１０４内にバッファリングされている可能性があり、制御はブロック２０２に移行する。
【００２８】
１次ストレージ・コントローラ１０６が動作可能ではないとリダイレクト・アプリケーション１１８が（ブロック２０２で）判定した場合、リダイレクト・アプリケーション１１８は（ブロック２１０で）実行のために２次ストレージ・コントローラ１０８に入出力要求を送信する。２次ストレージ・コントローラ１０８は入出力要求を処理し、リダイレクト・アプリケーション１１８は（ブロック２１２で）２次ストレージ・コントローラ１０８から応答を受信する。２次ストレージ・コントローラ１０８は１次ストレージ・コントローラの障害の時点で１次ストレージ・コントローラ１０６と同じデータを持っているので、２次ストレージ・コントローラ１０８からの応答は正確である。リダイレクト・アプリケーション１１８は（ブロック２０８で）、そこからリダイレクト・アプリケーション１１８が入出力要求を受信したホスト・アプリケーションに受信した応答を送信し、複数のホスト・アプリケーション１１６ａ・・・１１６ｎからの追加の入出力要求を処理するために制御はブロック２００に戻る。特定の代替諸実施形態では、１次ストレージ・コントローラ１０６に障害が発生していない場合でも、２次ストレージ・コントローラ１０８に入出力要求を送信することができる。たとえば、特定の諸実施形態では、１次ストレージ・コントローラ１０６について保守またはその他のアクティビティが実行されている場合、１次ストレージ・コントローラ１０６にスイッチバックする前のある期間の間、２次ストレージ・コントローラ１０８からデータを供給することができる。ホスト・アプリケーション１１６ａ・・・１１６ｎのうちの１つまたは複数によって生成された入出力要求を処理するために１次ストレージ・コントローラが使用可能であるときに、１次ストレージ・コントローラ１０６は動作可能であると見なすことができる。
【００２９】
図２は、リダイレクト・アプリケーション１１８が複数のホスト１０２ａ・・・１０２ｎから入出力要求を受信し、１次ストレージ・コントローラ１０６が動作可能である場合に実行のために入出力要求を１次ストレージ・コントローラ１０６に振り向ける、一実施形態を示している。１次ストレージ・コントローラ１０６が動作可能ではない場合、１次ストレージ・コントローラ１０６の障害の時点で２次ストレージ・コントローラ１０８が１次ストレージ・コントローラ１０６と同期ＰＰＲＣ関係にあった場合、リダイレクト・アプリケーション１１８は実行のために入出力要求を２次ストレージ・コントローラ１０８に振り向ける。
【００３０】
図３は、特定の諸実施形態により、書込みキャッシュがリダイレクト・コントローラ１０４内で使用可能であるときにストレージ・アクセスをリダイレクトするための動作を示している。特定の諸実施形態では、この動作はリダイレクト・アプリケーション１１８で実現することができる。
【００３１】
特定の諸実施形態では、書込みキャッシュはリダイレクト・コントローラ１０４内で使用可能である。書込みキャッシュの使用可能化は、リダイレクト・アプリケーション１１８によるかまたは他のアプリケーションにより実行することができる。書込みキャッシュが使用可能であるときに、リダイレクト・アプリケーション１１８は、書込み要求に応答して、キャッシュ１２０にデータを書き込むことができ、キャッシュ１２０に保管されたデータによりホスト・アプリケーション１１６ａ・・・１１６ｎからの特定の入出力要求に応答することができる。リダイレクト・アプリケーション１１８がキャッシュ１２０に保管されたデータにより入出力要求に応答できない場合、リダイレクト・アプリケーション１１８はその要求をストレージ・コントローラに転送することができる。キャッシュ１２０は、入出力要求を満足するためにリダイレクト・アプリケーション１１８によって使用されるストレージ・コントローラに定期的間隔でデステージされる。ストレージ・コントローラへのキャッシュ１２０のデステージは、ストレージ・コントローラによって制御されるボリュームにキャッシュ１２０の内容をコピーまたは移動することを含むことができる。ストレージ・コントローラ１０６、１０８からのデータを保護することとは対照的に、データがキャッシュ１２０内で使用可能であるときに応答をより高速で生成することができるので、書込みキャッシュの使用可能化の結果、ホスト１０２ａ・・・１０２ｎからの入出力要求に対する応答がより高速になる可能性がある。
【００３２】
制御はブロック３００から始まり、そこで書込みキャッシュが使用可能であると判定されたときに、リダイレクト・アプリケーション１１８は複数のホスト・アプリケーション１１６ａ・・・１１６ｎのうちの１つから入出力要求を受信する。リダイレクト・アプリケーション１１８は（ブロック３０２で）、入出力要求が書込み要求であるかどうかを判定する。そうである場合、リダイレクト・アプリケーション１１８は（ブロック３０４で）書込み要求に対応するデータをキャッシュ１２０に書き込み、制御はブロック３００に戻り、そこでホスト１０２ａ・・・１０２ｎからの次の入出力要求が処理される。定期的に（参照番号３０６）、リダイレクト・アプリケーション１１８または他の何らかのアプリケーションのいずれか一方が（ブロック３０８で）デステージ動作を実行し、そこで実行のためにリダイレクト・アプリケーション１１８によってそれに対して入出力要求が転送されているストレージ・コントローラにキャッシュ１２０の内容の一部または全部が書き込まれる。
【００３３】
入出力要求が書き込み要求ではないとリダイレクト・アプリケーション１１８が（ブロック３０２で）判定した場合、リダイレクト・アプリケーション１１８は（ブロック３１０で）要求がキャッシュ１２０から満足できるかどうか、すなわち、要求を処理するためのデータがキャッシュ１２０内で使用可能であるかどうかを判定する。そうである場合、リダイレクト・アプリケーション１１８は（ブロック３１２で）キャッシュ１２０に保管されたデータを使用することにより、そこから入出力要求が受信されたホスト・アプリケーションに対する応答を生成する。したがって、そのデータがキャッシュ１２０内で使用可能である読取り要求は、キャッシュ１２０を使用することによって満足される。
【００３４】
入出力要求がキャッシュ１２０から満足できないとリダイレクト・アプリケーション１１８が（ブロック３１０で）判定した場合、リダイレクト・アプリケーション１１８は（ブロック３１４で）１次ストレージ・コントローラ１０６が動作可能であるかどうかを判定する。
【００３５】
１次ストレージ・コントローラ１０６が動作可能であるとリダイレクト・アプリケーション１１８が（ブロック３１４で）判定した場合、リダイレクト・アプリケーション１１８は（ブロック３１６で）実行のために１次ストレージ・コントローラ１０６に入出力要求を送信する。
【００３６】
リダイレクト・アプリケーション１１８は（ブロック３１８で）１次ストレージ・コントローラ１０６から応答を受信し、その応答は要求の実行の結果である。リダイレクト・アプリケーション１１８は（ブロック３２０で）、そこからリダイレクト・アプリケーション１１８が入出力要求を受信したホスト・アプリケーションに応答を送信する。１次ストレージ・コントローラ１０６は２次ストレージ・コントローラ１０８と同期ＰＰＲＣ関係にあるので、１次および２次ストレージ・コントローラ１０６、１０８内のデータが同一になった後でのみ、応答がリダイレクト・アプリケーション１１８によって受信される。制御はブロック３００に戻り、そこでリダイレクト・アプリケーション１１８はホスト・アプリケーション１１６ａ・・・１１６ｎのうちの１つから他の入出力要求を受信する。
【００３７】
１次ストレージ・コントローラ１０６が動作可能ではないとリダイレクト・アプリケーション１１８が（ブロック３１４で）判定した場合、リダイレクト・アプリケーション１１８は（ブロック３２２で）キャッシュ１２０の内容で２次ストレージ・コントローラ１０８を更新する。１次ストレージ・コントローラ１０６の障害の時点で１次および２次ストレージ・コントローラ１０６、１０８が同期ＰＰＲＣ関係にある間、キャッシュ１２０内のデータは１次ストレージ・コントローラ１０６にデステージされていない可能性がある。したがって、２次ストレージ・コントローラ１０８側で入出力要求を処理する前に、キャッシュ１２０の内容を使用して、２次ストレージ・コントローラ１０８のストレージ・ボリュームを更新しなければならない。
【００３８】
リダイレクト・アプリケーション１１８は（ブロック３２４で）実行のために２次ストレージ・コントローラ１０８に入出力要求を送信する。２次ストレージ・コントローラ１０８は入出力要求を処理し、リダイレクト・アプリケーション１１８は（ブロック３２６で）２次ストレージ・コントローラ１０８から応答を受信する。２次ストレージ・コントローラ１０８は、１次ストレージ・コントローラの障害の時点で１次ストレージ・コントローラ１０６と同じデータを有し、１次ストレージ・コントローラ１０６の障害の時点のキャッシュ１２０の内容を有するので、２次ストレージ・コントローラ１０８からの応答は正確である。リダイレクト・アプリケーション１１８は（ブロック３２０で）、そこからリダイレクト・アプリケーション１１８が入出力要求を受信したホスト・アプリケーションに受信した応答を送信し、複数のホスト・アプリケーション１１６ａ・・・１１６ｎからの追加の入出力要求を処理するために制御はブロック３００に戻る。
【００３９】
図３は、リダイレクト・コントローラ１０４がキャッシュ１２０を含み、書込みキャッシュがリダイレクト・コントローラ１０４内で使用可能である一実施形態を示している。１次および２次ストレージ・コントローラ１０６、１０８が同期ＰＰＲＣ関係に保持されているだけでなく、１次ストレージ・コントローラ１０６の障害の場合に、実行のために２次ストレージ・コントローラ１０８に入出力要求を送信する前に、２次ストレージ・コントローラ１０８がキャッシュ１２０の内容で更新される。
【００４０】
特定の諸実施形態では、障害のある１次ストレージ・コントローラ１０６が動作可能になると、ストレージ・コントローラ１０６、１０８は２次ストレージ・コントローラ１０８から１次ストレージ・コントローラ１０６への任意の更新データを同期させることができ、リダイレクト・コントローラ１０４は、入出力要求を満足するためにもう一度、１次ストレージ・コントローラ１０６を使用し始めることができる。
【００４１】
特定の諸実施形態では、複数のホスト１０２ａ・・・１０２ｎを単一リダイレクト・コントローラ１０４によって同時に処理することができ、その単一リダイレクト・コントローラ１０４は複数のホスト１０２ａ・・・１０２ｎからの入出力要求をストレージ・コントローラ１０６、１０８にリダイレクトする。したがって、複数のホスト１０２ａ・・・１０２ｎのために、種々のオペレーティング・システムに適合された複数バージョンのリダイレクト・アプリケーション１１８は不要である。ホスト１０２ａ・・・１０２ｎ上のオペレーティング・システムが同一である場合でも、リダイレクト・コントローラ１０４がない場合、各ホストは、ストレージ・コントローラ１０６、１０８により直接入出力要求を実行するためにインストール済みアプリケーションが必要になるであろう。したがって、特定の諸実施形態は、単一リダイレクト・アプリケーション１１８が複数のホスト１０２ａ・・・１０２ｎからの入出力要求を処理できることを保証する。特定の諸実施形態では、ストレージ・コントローラ１０６、１０８により入出力動作を実行するために、リダイレクト・アプリケーション１１８上にプログラムを１回インストールするだけで十分である。
【００４２】
特定の諸実施形態では、複数のホスト１０２ａ・・・１０２ｎは、どのストレージ・コントローラ１０６、１０８が複数のホスト１０２ａ・・・１０２ｎからの入出力要求を満足するかを示す任意の通知を受信せずに動作する。したがって、１次ストレージ・コントローラ１０６の障害は、複数のホスト１０２ａ・・・１０２ｎではなくリダイレクト・コントローラ１０４によって処理される。
【００４３】
特定の諸実施形態では、リダイレクト・コントローラ１０４は、ＩＢＭのＴｏｔａｌＳｔｏｒａｇｅ  ＳＡＮボリューム・コントローラなどの特殊アプライアンスである。特定の諸実施形態では、このような特殊アプライアンスは、各ホストがストレージ・コントローラ１０６、１０８による入出力動作を直接実行するコンピューティング環境より、コンピューティング環境１００のパフォーマンスを改善することができる。
【００４４】
特定の諸実施形態は、１次ストレージ・コントローラ１０６に障害が発生した場合でも、複数のホスト１０２ａ・・・１０２ｎからのすべてのデータ・アクセスを受信し満足し続けるリダイレクト・コントローラ１０４を提供する。書込みキャッシュがリダイレクト・コントローラ１０４内で使用可能であるかどうかに基づいて、リダイレクト・コントローラ１０４は異なる動作を実行することができる。複数のホスト１０２ａ・・・１０２ｎは、１次ストレージ・コントローラ１０６の障害からの回復方法を把握している必要はない。したがって、ストレージ・コントローラの障害の場合でも、複数のホスト１０２ａ・・・１０２ｎのうちのいずれについても再構成は不要である。
【００４５】
追加の実施形態の詳細
上述の技法は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、またはそれらの任意の組合せを伴う方法、装置、または製品として実現することができる。本明細書で使用する「製品」という用語は、回路（たとえば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、ＡＳＩＣなど）あるいはコンピュータ可読媒体（たとえば、ハード・ディスク・ドライブ、フレキシブル・ディスク、テープなどの磁気記憶媒体）、光ディスク・ストレージ（たとえば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（たとえば、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、読取り専用メモリ（ＲＯＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、フラッシュ、ファームウェア、プログラマブル・ロジックなど）またはそれらの組合せで実現されたプログラム命令、コード、あるいは論理またはそれらの組合せを指す。コンピュータ可読媒体内のコードは、プロセッサなどのマシンによってアクセスおよび実行することができる。特定の諸実施形態では、諸実施形態がなされるコードはさらに、伝送媒体によるかまたはネットワークを介してファイル・サーバからアクセス可能なものにすることができる。このようなケースでは、コードが実現される製品は、ネットワーク伝送回線、ワイヤレス伝送媒体、空間を伝搬する信号、電波、赤外線信号などの伝送媒体を有することができる。当然のことながら、当業者であれば、諸実施形態の範囲を逸脱せずに多くの変更を行うことができ、製品は当技術分野で知られている任意の情報伝送媒体を有することができることを認識するであろう。たとえば、製品は、マシンによって実行されたときに結果的に動作が実行される命令をそこに保管している記憶媒体を有する。
【００４６】
図４は、特定の諸実施形態を実現することができるシステム４００のブロック図を示している。特定の諸実施形態では、リダイレクト・コントローラ１０４、ホスト１０２ａ・・・１０２ｎ、およびストレージ・コントローラ１０６、１０８は、システム４００により実現することができる。システム４００は、特定の諸実施形態ではプロセッサ４０４を含む可能性がある回路４０２を含むことができる。また、システム４００は、メモリ４０６（たとえば、ＲＡＭなどの揮発性メモリ・デバイス）およびストレージ４０８も含むことができる。システム４００の特定の要素は、リダイレクト・コントローラ１０４、ホスト１０２ａ・・・１０２ｎ、およびストレージ・コントローラ１０６、１０８に見られる場合もあれば見られない場合もある。ストレージ４０８は、不揮発性メモリ・デバイス（たとえば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、フラッシュ、ファームウェア、プログラマブル・ロジックなど）、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどを含むことができる。ストレージ４０８は、内部ストレージ・デバイス、付加ストレージ・デバイス、あるいはネットワーク・アクセス可能ストレージ・デバイス、またはこれらの組合せを有することができる。システム４００は、メモリ４０６内にロードし、プロセッサ４０４または回路４０２によって実行することができるコード４１２を含むプログラム・ロジック４１０を含むことができる。特定の諸実施形態では、コード４１２を含むプログラム・ロジック４１０はストレージ４０８に保管することができる。特定の他の諸実施形態では、プログラム・ロジック４１０は回路４０２で実現することができる。したがって、図４はプログラム・ロジック４１０を他の要素から分離して示しているが、プログラム・ロジック４１０はメモリ４０６あるいは回路４０２またはその両方で実現することができる。
【００４７】
特定の諸実施形態は、コンピューティング・システムにコンピュータ可読コードを統合する人または自動処理によりコンピューティング・インフラストラクチャを配備するための方法を対象とすることができ、そのコードはコンピューティング・システムと協力して、上述の諸実施形態の動作を実行するために使用可能である。
【００４８】
図２、図３の動作のうちの少なくともいくつかは、並行してならびに順次、実行することができる。代替諸実施形態では、その動作のいくつかは、異なる順序で実行するか、変更または除去することもできる。
【００４９】
さらに、ソフトウェア、ハードウェア、およびファームウェア・コンポーネントの多くは、例示のために個別のモジュールとして記載されている。このようなコンポーネントは、より少数のコンポーネントに統合するかまたはより多数のコンポーネントに分割することができる。さらに、特定のコンポーネントによって実行されるものとして記載されている特定の動作は他のコンポーネントによって実行することができる。
【００５０】
図１〜４に図示し参照されているデータ構造およびコンポーネントは、特定のタイプの情報を有するものとして記載されている。代替諸実施形態では、このデータ構造およびコンポーネントは、異なるように構造化することができ、これらの図に図示し参照されているものより少数あるいは多数またはそれらとは異なるフィールドまたは異なる機能を有することができる。
【００５１】
したがって、上記の諸実施形態の記述は、例示および説明のために提示されたものである。これは、網羅的なものではなく、開示された正確な形式に諸実施形態を限定するためのものでもない。上記の教示を考慮すると、多くの変更および変形が可能である。
【図面の簡単な説明】
【００５２】
【図１】特定の諸実施形態によるコンピューティング環境のブロック図である。
【図２】特定の諸実施形態により、書込みキャッシュがリダイレクト・コントローラ内で使用不可であるときにストレージ・アクセスをリダイレクトするための動作を示す図である。
【図３】特定の諸実施形態により、書込みキャッシュがリダイレクト・コントローラ内で使用可能であるときにストレージ・アクセスをリダイレクトするための動作を示す図である。
【図４】特定の諸実施形態が実現される例示的なシステムを示す図である。
【符号の説明】
【００５３】
１００：コンピューティング環境
１０２ａ：ホスト
１０２ｂ：ホスト
１０２ｎ：ホスト
１０４：リダイレクト・コントローラ（コントローラ、計算装置、ＳＡＮボリューム・コントローラ、アプライアンスなど）
１０６：１次ストレージ・コントローラ（１次ストレージ・コントロール・ユニット）
１０８：２次ストレージ・コントローラ（２次ストレージ・コントロール・ユニット）
１１０ａ：データ・インターフェース・チャネル
１１０ｂ：データ・インターフェース・チャネル
１１０ｎ：データ・インターフェース・チャネル
１１２：データ・インターフェース・チャネル
１１４：データ・インターフェース・チャネル
１１６ａ：ホスト・アプリケーション
１１６ｂ：ホスト・アプリケーション
１１６ｎ：ホスト・アプリケーション
１１８：リダイレクト・アプリケーション
１２０：キャッシュ
１２２：データ・インターフェース・チャネル
１２４：同期コピー動作
【図１】
2006195977.tif 000003
【図２】
2006195977.tif 000004
【図３】
2006195977.tif 000005
【図４】
2006195977.tif 000006