(57)【要約】【課題】遠隔コピー操作におけるデータ管理のための技術を提供する。【解決手段】一次ストレージ・コントローラから二次ストレージ・コントローラへの遠隔コピー操作を介してデータの同期が実行される。ここにおいて、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される。第１のデータ構造が、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶する。第２のデータ構造が、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶する。【選択図】図６
2021507351.tif 000002
【特許請求の範囲】
【請求項１】
一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、前記実行すること、
第１のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第２のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、方法。
【請求項２】
前記第２のデータ構造が、前記バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、請求項１に記載の方法。
【請求項３】
データの前記同期のための操作が、最初、前記第２のデータ構造を考慮することなしに前記第１のデータ構造を使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにトラックをコピーするように実行される、請求項２に記載の方法。
【請求項４】
前記同期入出力プロセスが前記第２のデータ構造において識別される前記トラックを解放したと判定することに応答して、前記第２のデータ構造を前記第１のデータ構造にコピーし、次に、データの前記同期を、前記第１のデータ構造を使用することによって完了することをさらに含む、請求項３に記載の方法。
【請求項５】
同期入出力プロセスが、前記バス・インターフェースを介した書込みを実行すべく使用され、前記同期入出力プロセスは、前記ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに前記同期入出力プロセスは、前記ネットワーク・インターフェースを介して前記トラック上で書込みを実行する他のプロセスと比べて、前記トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、請求項１に記載の方法。
【請求項６】
前記第１のデータ構造が、標準同期外れビットマップであり、前記第２のデータ構造が、同期入出力同期外れビットマップである、請求項１に記載の方法。
【請求項７】
同期入出力プロセスが、前記バス・インターフェースを使用することによって書き込み、前記遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、前記第１のデータ構造が、標準同期外れ（ＯＯＳ）ビットマップであり、前記第２のデータ構造が、同期入出力ＯＯＳビットマップであり、前記方法が、
現在の整合性グループが、前記標準ＯＯＳビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップに、前記同期入出力プロセスを介した書込みの標示を記憶すること、および
前記現在の整合性グループが、前記標準ＯＯＳビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップに、非同期入出力プロセスを介した書込みの標示を記憶すること
をさらに含む、請求項１に記載の方法。
【請求項８】
前記同期入出力プロセスが前記同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、前記同期入出力ＣＲビットマップを、次の整合性グループをコピーするために使用すべく前記標準ＣＲビットマップとマージすることをさらに含む、請求項７に記載の方法。
【請求項９】
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサが、操作を実行し、前記プロセッサによって実行される前記操作が、
一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、前記実行すること、
第１のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第２のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、システム。
【請求項１０】
前記第２のデータ構造が、前記バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、請求項９に記載のシステム。
【請求項１１】
データの前記同期のための操作が、最初、前記第２のデータ構造を考慮することなしに前記第１のデータ構造を使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにトラックをコピーするように実行される、請求項１０に記載のシステム。
【請求項１２】
前記操作が、前記同期入出力プロセスが前記第２のデータ構造において識別される前記トラックを解放したと判定することに応答して、前記第２のデータ構造を前記第１のデータ構造にコピーし、次に、データの前記同期を、前記第１のデータ構造を使用することによって完了することをさらに含む、請求項１１に記載のシステム。
【請求項１３】
同期入出力プロセスが、前記バス・インターフェースを介した書込みを実行すべく使用され、前記同期入出力プロセスは、前記ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに前記同期入出力プロセスは、前記ネットワーク・インターフェースを介して前記トラック上で書込みを実行する他のプロセスと比べて、前記トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、請求項９に記載のシステム。
【請求項１４】
前記第１のデータ構造が、標準同期外れビットマップであり、前記第２のデータ構造が、同期入出力同期外れビットマップである、請求項９に記載のシステム。
【請求項１５】
同期入出力プロセスが、前記バス・インターフェースを使用することによって書き込み、前記遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、前記第１のデータ構造が、標準同期外れ（ＯＯＳ）ビットマップであり、前記第２のデータ構造が、同期入出力ＯＯＳビットマップであり、前記操作が、
現在の整合性グループが、前記標準ＯＯＳビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップに、前記同期入出力プロセスを介した書込みの標示を記憶すること、および
前記現在の整合性グループが、前記標準ＯＯＳビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップに、非同期入出力プロセスを介した書込みの標示を記憶すること
をさらに含む、請求項９に記載のシステム。
【請求項１６】
前記操作が、前記同期入出力プロセスが前記同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、前記同期入出力ＣＲビットマップを、次の整合性グループをコピーするために使用すべく前記標準ＣＲビットマップとマージすることをさらに含む、請求項１５に記載のシステム。
【請求項１７】
コンピュータ・プログラム製品であって、
コンピュータ可読プログラム・コードを実体化しているコンピュータ可読記憶媒体を備え、前記コンピュータ可読プログラム・コードが、操作を実行するように構成され、前記操作が、
一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、前記実行すること、
第１のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第２のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、コンピュータ・プログラム製品。
【請求項１８】
前記第２のデータ構造が、前記バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
データの前記同期のための操作が、最初、前記第２のデータ構造を考慮することなしに前記第１のデータ構造を使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにトラックをコピーするように実行される、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２０】
前記操作が、前記同期入出力プロセスが前記第２のデータ構造において識別される前記トラックを解放したと判定することに応答して、前記第２のデータ構造を前記第１のデータ構造にコピーし、次に、データの前記同期を、前記第１のデータ構造を使用することによって完了することをさらに含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
同期入出力プロセスが、前記バス・インターフェースを介した書込みを実行すべく使用され、前記同期入出力プロセスは、前記ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに前記同期入出力プロセスは、前記ネットワーク・インターフェースを介して前記トラック上で書込みを実行する他のプロセスと比べて、前記トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２２】
前記第１のデータ構造が、標準同期外れビットマップであり、前記第２のデータ構造が、同期入出力同期外れビットマップである、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２３】
同期入出力プロセスが、前記バス・インターフェースを使用することによって書き込み、前記遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、前記第１のデータ構造が、標準同期外れ（ＯＯＳ）ビットマップであり、前記第２のデータ構造が、同期入出力ＯＯＳビットマップであり、前記操作が、
現在の整合性グループが、前記標準ＯＯＳビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップに、前記同期入出力プロセスを介した書込みの標示を記憶すること、および
前記現在の整合性グループが、前記標準ＯＯＳビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップに、非同期入出力プロセスを介した書込みの標示を記憶すること
をさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２４】
前記操作が、前記同期入出力プロセスが前記同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、前記同期入出力ＣＲビットマップを、次の整合性グループをコピーするために使用すべく前記標準ＣＲビットマップとマージすることをさらに含む、請求項２３に記載のコンピュータ・プログラム製品。
【請求項２５】
一次ストレージ・コントローラであって、
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサが、操作を実行し、前記プロセッサによって実行される前記操作が、
前記一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、前記実行すること、
第１のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第２のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、一次ストレージ・コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、遠隔コピー操作中にバス・インターフェースを介してストレージ・コントローラに書き込まれるデータの管理に関する。
【背景技術】
【０００２】
一部のストレージ・システム環境において、ストレージ・コントローラ（またはストレージ・コントローラ複合体（storage controller complex））は、互いに結合された複数のストレージ・サーバを備えることが可能である。ストレージ・コントローラは、ホスト・コンピューティング・システムが、ストレージ・コントローラによって制御されるストレージ・デバイスを相手に入出力（Ｉ／Ｏ）操作を実行することを可能にし、ここで、ホスト・コンピューティング・システムは、ホストと呼ばれてよい。
【０００３】
多くのシステムにおいて、データは、１つのストレージ・コントローラから別のストレージ・コントローラにコピーされることが可能であり、データをそのようにコピーすることは、遠隔コピーと呼ばれてよい。データがそこからコピーされるストレージ・コントローラは、一次ストレージ・コントローラと呼ばれてよく、データがコピーされる先のストレージ・コントローラは、二次ストレージ・コントローラと呼ばれてよい。１つまたは複数のストレージ・ボリュームが、一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされてよく、ここで、ストレージ・ボリュームは、複数のトラックを含んでよい。コピーすることは、データ・レプリケーションのために一次ストレージ・コントローラと二次ストレージ・コントローラの間でストレージ・ボリュームをミラーリングすることを含んでよい。
【０００４】
一部のミラーリング機構は、データ整合性（data consistency）のために整合性グループの形成を制御することが可能である。整合性グループは、データの整合性のあるコピーを作成する際に一緒に管理される複数のストレージ・ユニットにわたるボリュームの集まりである。依存する書込みの順序は、整合性グループにおいて保存される。これらの整合性グループの形成は、遠隔コピー・プロセスおよびコピー・ボリュームに対するコマンドを二次ストレージ・コントローラに送る一次ストレージ・コントローラによって制御されてよい。
【０００５】
同期外れ（ＯＯＳ：out of synchronization）ビットマップが、遠隔コピー関係に関与するいずれのトラックが、未だにコピーされておらず、それ故、保護されたトラックであるかを識別する。各トラックは、ビットマップにおける１ビットによって表される。ビットは、対応するトラックがコピーされるべきときに設定される。そのビットは、対応するトラックが一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされたときにリセットされる（すなわち、設定解除される）。
【０００６】
一次ストレージ・コントローラと二次ストレージ・コントローラの間で整合性のあるコピーが実行されるべきとき、変更記録（ＣＲ）ビットマップが保持されてよい。ＣＲビットマップは、ソース・ストレージ・ボリューム上のすべてのトラックに関するビットを有する。現在の整合性グループに関して遠隔コピー関係が確立された後、ソース・ストレージ・ボリュームのトラック上に書込みが存在するとき、ＣＲビットマップにおいて、次の整合性グループに関する後続の遠隔コピーにおいてそのトラックがコピーされる必要があることを示すべくビットが設定される。
【０００７】
米国特許出願公開第２０１６／０２０３１７２号明細書が、異種のリストの効率的な記憶のためのビットマップ・データ構造のためのハードウェアを提供するための方法およびシステムについて説明する。米国特許出願公開第２００３／０１５８８６９号明細書が、遠隔コピーに関する増分更新制御を提供するための方法およびシステムについて説明する。米国特許第９，４８３，３６６号明細書が、更新を遠隔コピーするためのビットマップ選択を提供するためのシステムおよび方法について説明する。米国特許第９，２５０，８３２号明細書が、ファームウェア動作を高速パス・ハードウェア入出力（Ｉ／Ｏ）処理と同期させるビットマップを提供するための方法およびシステムについて説明する。米国特許第９，０２６，６９６号明細書が、ストレージ・デバイスのためのスプリッタに対する継続的なプッシュのためにＩ／Ｏトラック情報を使用するためのシステムおよび方法について説明する。米国特許第８，８６２，８４８号明細書が、ビットマップを使用してデータ記憶を提供するための方法およびシステムについて説明する。米国特許第８，５９５，４５５号明細書が、ビットマップ書込み意図ログ記録を使用してミラーリングされたクラスタ・ストレージ・システムにおけるデータ整合性を保持するための方法およびシステムについて説明する。米国特許第７，０８９，３８５号明細書が、複数列ビットマップの使用を通じて進行中の書込みを追跡するための方法およびシステムについて説明する。
【０００８】
さらに、米国特許出願公開第２０１７／０２３５８０５号明細書が、データ・レプリケーション同期のための追跡構造を提供するための方法およびシステムについて説明する。米国特許出願公開第２０１５／０１７８２０１号明細書が、スワップＩ／Ｏまたは類似したＩ／Ｏパターン、あるいはその両方の効率的なキャッシングを提供するための方法およびシステムについて説明する。米国特許第９，６０１，１５１号明細書が、読取り１回ポイント・イン・タイム・コピー（read-once point in time copy）を介してデータ・ストレージ・システムＩ／Ｏ帯域幅を低減するための方法およびシステムについて説明する。米国特許第９，５３５，６１０号明細書が、変形されたセクタ・ビットマップを使用した部分的書込み操作のためにピア・ツー・ピア遠隔コピー（ＰＰＲＣ）転送を最適化するための方法およびシステムについて説明する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許出願公開第２０１６／０２０３１７２号明細書
【特許文献２】米国特許出願公開第２００３／０１５８８６９号明細書
【特許文献３】米国特許第９，４８３，３６６号明細書
【特許文献４】米国特許第９，２５０，８３２号明細書
【特許文献５】米国特許第９，０２６，６９６号明細書
【特許文献６】米国特許第８，８６２，８４８号明細書
【特許文献７】米国特許第８，５９５，４５５号明細書
【特許文献８】米国特許第７，０８９，３８５号明細書
【特許文献９】米国特許出願公開第２０１７／０２３５８０５号明細書
【特許文献１０】米国特許出願公開第２０１５／０１７８２０１号明細書
【特許文献１１】米国特許第９，６０１，１５１号明細書
【特許文献１２】米国特許第９，５３５，６１０号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
遠隔コピー操作におけるデータ管理のための技術を提供する。
【課題を解決するための手段】
【００１１】
一次ストレージ・コントローラから二次ストレージ・コントローラへの遠隔コピー操作を介してデータの同期が実行される方法、システム、およびコンピュータ・プログラム製品が提供される。ここにおいて、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される。第１のデータ構造が、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶する。第２のデータ構造が、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶する。その結果、バス・インターフェースを介して書き込む遠隔コピー操作およびプロセスの間の競合が低減される。
【００１２】
一部の実施形態において、第２のデータ構造は、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセス（syncio process）によって確保されるトラックを識別する。その結果、遠隔コピー操作との同期入出力プロセスによってもたらされる競合が低減される。
【００１３】
さらなる実施形態において、データの同期のための操作は、最初、第２のデータ構造を考慮することなしに第１のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される。その結果、既存の遠隔コピー機構への交代が回避される。
【００１４】
さらなる実施形態において、同期入出力プロセスが第２のデータ構造において識別されるトラックを解放したと判定することに応答して、第２のデータ構造が第１のデータ構造にコピーされ、次に、データの同期が、第１のデータ構造を使用することによって完了させられる。その結果、同期入出力プロセスは、既存のコピー操作のパフォーマンスに大きな影響を及ぼすことなしに一次ストレージ・コントローラに組み込まれる。
【００１５】
一部の実施形態において、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する。それらの実施形態の結果、同期入出力プロセスによって確保された書込みが、既存のコピー操作のパフォーマンスに大きな影響を及ぼすことはない。
【００１６】
さらなる実施形態において、第１のデータ構造は、標準同期外れビットマップであり、第２のデータ構造は、同期入出力同期外れビットマップである。その結果、既存のデータ構造が再使用され、同期入出力操作のために類似のデータ構造が作成される。
【００１７】
さらなる実施形態において、同期入出力プロセスは、バス・インターフェースを使用することによって書き込む。ここにおいて、遠隔コピー操作は、ミラーリング・プロセスにおいて実行され、第１のデータ構造は、標準同期外れ（ＯＯＳ）ビットマップであり、第２のデータ構造は、同期入出力ＯＯＳビットマップである。現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップが、同期入出力プロセスを介した書込みの標示（indications of writes）を記憶する。現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップが、非同期入出力プロセスを介した書込みの標示を記憶する。その結果、同期入出力プロセスとミラーリング・プロセスの間の競合が低減される。
【００１８】
さらなる実施形態において、同期入出力プロセスが同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、同期入出力ＣＲビットマップが、次の整合性グループをコピーするために使用すべく標準ＣＲビットマップとマージされる。その結果、グローバル・ミラーのための既存の機構が同期入出力と統合される。
【００１９】
第１の態様から見て、本発明は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、実行すること、第１のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第２のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む方法を提供する。
【００２０】
好ましくは、本発明は、第２のデータ構造が、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、方法を提供する。
【００２１】
好ましくは、本発明は、データの同期のための操作が、最初、第２のデータ構造を考慮することなしに第１のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される、方法を提供する。
【００２２】
好ましくは、本発明は、同期入出力プロセスが第２のデータ構造において識別されるトラックを解放したと判定することに応答して、第２のデータ構造を第１のデータ構造にコピーし、次に、データの同期を、第１のデータ構造を使用することによって完了することをさらに含む方法を提供する。
【００２３】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、方法を提供する。
【００２４】
好ましくは、本発明は、第１のデータ構造が、標準同期外れビットマップであり、第２のデータ構造が、同期入出力同期外れビットマップである、方法を提供する。
【００２５】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを使用することによって書き込み、遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、第１のデータ構造が、標準同期外れ（ＯＯＳ）ビットマップであり、第２のデータ構造が、同期入出力ＯＯＳビットマップである、方法を提供し、方法は、現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップに、同期入出力プロセスを介した書込みの標示を記憶すること、および現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップに、非同期入出力プロセスを介した書込みの標示を記憶することをさらに含む。
【００２６】
好ましくは、本発明は、同期入出力プロセスが同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、同期入出力ＣＲビットマップを、次の整合性グループをコピーするために使用すべく標準ＣＲビットマップとマージすることをさらに含む方法を提供する。
【００２７】
第２の態様から見て、本発明は、メモリと、メモリに結合されたプロセッサとを備えるシステムを提供する。ここにおいて、プロセッサは、操作を実行し、プロセッサによって実行される操作は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、実行すること、第１のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第２のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む。
【００２８】
好ましくは、本発明は、第２のデータ構造が、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、システムを提供する。
【００２９】
好ましくは、本発明は、データの同期のための操作が、最初、第２のデータ構造を考慮することなしに第１のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される、システムを提供する。
【００３０】
好ましくは、本発明は、操作が、同期入出力プロセスが第２のデータ構造において識別されるトラックを解放したと判定することに応答して、第２のデータ構造を第１のデータ構造にコピーし、次に、データの同期を、第１のデータ構造を使用することによって完了することをさらに含む、システムを提供する。
【００３１】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、システムを提供する。
【００３２】
好ましくは、本発明は、第１のデータ構造が、標準同期外れビットマップであり、第２のデータ構造が、同期入出力同期外れビットマップである、システムを提供する。
【００３３】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを使用することによって書き込み、遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、第１のデータ構造が、標準同期外れ（ＯＯＳ）ビットマップであり、第２のデータ構造が、同期入出力ＯＯＳビットマップであり、操作は、現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップに、同期入出力プロセスを介した書込みの標示を記憶すること、および現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップに、非同期入出力プロセスを介した書込みの標示を記憶することをさらに含む、システムを提供する。
【００３４】
好ましくは、本発明は、操作が、同期入出力プロセスが同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、同期入出力ＣＲビットマップを、次の整合性グループをコピーするために使用すべく標準ＣＲビットマップとマージすることをさらに含む、システムを提供する。
【００３５】
第３の態様から見て、本発明は、コンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを実体化しているコンピュータ可読記憶媒体を備え、コンピュータ可読プログラム・コードは、操作を実行するように構成され、操作は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、実行すること、第１のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第２のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む。
【００３６】
好ましくは、本発明は、第２のデータ構造が、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、コンピュータ・プログラム製品を提供する。
【００３７】
好ましくは、本発明は、データの同期のための操作が、最初、第２のデータ構造を考慮することなしに第１のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される、コンピュータ・プログラム製品を提供する。
【００３８】
好ましくは、本発明は、操作が、同期入出力プロセスが第２のデータ構造において識別されるトラックを解放したと判定することに応答して、第２のデータ構造を第１のデータ構造にコピーし、次に、データの同期を、第１のデータ構造を使用することによって完了することをさらに含む、コンピュータ・プログラム製品を提供する。
【００３９】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、コンピュータ・プログラム製品を提供する。
【００４０】
好ましくは、本発明は、第１のデータ構造が、標準同期外れビットマップであり、第２のデータ構造が、同期入出力同期外れビットマップである、コンピュータ・プログラム製品を提供する。
【００４１】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを使用することによって書き込み、遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、第１のデータ構造が、標準同期外れ（ＯＯＳ）ビットマップであり、第２のデータ構造が、同期入出力ＯＯＳビットマップであり、操作は、現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録（ＣＲ）ビットマップに、同期入出力プロセスを介した書込みの標示を記憶すること、および現在の整合性グループが、標準ＯＯＳビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準ＣＲビットマップに、非同期入出力プロセスを介した書込みの標示を記憶することをさらに含む、コンピュータ・プログラム製品を提供する。
【００４２】
好ましくは、本発明は、操作が、同期入出力プロセスが同期入出力ＣＲビットマップにおいて示されるトラックを解放することに応答して、同期入出力ＣＲビットマップを、次の整合性グループをコピーするために使用すべく標準ＣＲビットマップとマージすることをさらに含む、コンピュータ・プログラム製品を提供する。
【００４３】
第４の態様から見て、本発明は、メモリと、メモリに結合されたプロセッサとを備える一次ストレージ・コントローラを提供する。ここにおいて、プロセッサは、操作を実行し、プロセッサによって実行される操作は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力（Ｉ／Ｏ）要求が受信される、実行すること、第１のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第２のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む。
【００４４】
次に、同様の参照符号が図面全体にわたって対応する部分を表す図面を参照する。
【図面の簡単な説明】
【００４５】
【図１】一部の実施形態による、１つまたは複数のホストと、１つまたは複数のストレージ・デバイスとに結合された一次ストレージ・コントローラを備え、同期入出力ベースの書込みが、１つまたは複数のホストから一次ストレージ・コントローラに対して行われる、コンピューティング環境を示すブロック図である。
【図２】一部の実施形態による、標準同期外れ（ＯＯＳ）ビットマップだけが使用され、同期入出力ＯＯＳビットマップは使用されない場合の同期プロセスに対する同期入出力プロセスの干渉を示すフローチャートである。
【図３】一部の実施形態による、標準ＯＯＳビットマップに加えて同期入出力ＯＯＳビットマップを使用することによって同期入出力プロセスによる同期プロセスに対するパフォーマンス影響を回避することを示すフローチャートである。
【図４】一部の実施形態による、書込み前割込みプロセス（prewrite intercept process）によって実行される操作を示すフローチャートである。
【図５】一部の実施形態による、同期入出力プロセスが存在する状態で一次ストレージ・コントローラから二次ストレージ・コントローラにデータを整合性のあるようにコピーすることをサポートするグローバル・ミラー・プロセスをサポートする、一次ストレージ・コントローラにおける強化を示すブロック図である。
【図６】一部の実施形態による、同期入出力プロセスと同期プロセスの間の競合を低減する操作を示すフローチャートである。
【図７】一部の実施形態による、同期入出力プロセスとグローバル・ミラー・プロセスの間の競合を低減する操作を示すフローチャートである。
【図８】一部の実施形態による、クラウド・コンピューティング環境を示すブロック図である。
【図９】一部の実施形態による、図８のクラウド・コンピューティング環境のさらなる詳細を示すブロック図である。
【図１０】一部の実施形態による、図１〜図９において説明される、ストレージ・コントローラまたはホストに含められてよい一部の要素を示す計算システムを示すブロック図である。
【発明を実施するための形態】
【００４６】
後段の説明において、本明細書の一部分を形成し、いくつかの実施形態を例示する添付の図面が参照される。他の実施形態が利用されてよく、構造上、および動作上の変更が行われてよいものと理解される。
【００４７】
同期入出力（ｓｙｎｃ  Ｉ／Ｏとも呼ばれる）は、計算デバイスのためのアタッチメント・ハードウェアおよびプロトコルを備える。同期入出力は、非常に低遅延のランダム読取り、および小ブロック順次書込みのために設計される。計算デバイス間の同期入出力接続は、ポイント・ツー・ポイント光ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）インターフェースを介してよい。同期入出力操作は、同期入出力において、ホスト計算デバイスは、Ｉ／Ｏ操作が完了するのを待つ間、アプリケーション・スレッドをスピン・ループに保つことが可能であるという点で、従来のＩ／Ｏとは異なるように振る舞う。このことは、プロセッサ・サイクルが従来のＩ／Ｏの２回のコンテキスト・スワップを実行する必要性、Ｉ／Ｏスレッドをスリーブ状態にし、その後、そのＩ／Ｏスレッドを再ディスパッチするための操作を実行する必要性、およびＩ／Ｏ割込みの必要性を回避する。同期入出力操作は、同期入出力プロセスによって実行されることが可能であり、ホストから一次ストレージ・コントローラへの高速データ転送プロセスに対応することが可能である。
【００４８】
同期入出力プロセスの厳密なパフォーマンス要件に起因して、同期入出力プロセスは、ストレージ・コントローラにおいて書込みを実行するための以前の機構に見られる、書込みごとに１回の書込み前割込み呼出しの標準の規則に違反する。同期入出力プロセスは、トラックに関して１回、書込み前割込みを呼び出し、次にそのトラックに複数回書き込むことが可能である。書込み前割込みのための現在の機構は、ＯＯＳビットマップ（標準ＯＯＳビットマップと呼ばれる）またはＣＲビットマップ（標準ＣＲビットマップと呼ばれる）においてビットを設定する。同期機構は、いずれのトラックを一次ストレージ・コントローラから二次ストレージ・コントローラにコピーすべきかを判定すべくＯＯＳビットマップを使用する。同期入出力プロセスは、同期入出力プロセスによって実行される高速の書込みのためにトラック・アクセスを確保し、確保されたトラック・アクセスを、長い時間にわたってトラックの同期入出力プロセスのグループに保つことが可能である。同期入出力プロセスが、これらのトラックのうちの１つに関してＯＯＳビットを設定する時点に達した場合、設定されたＯＯＳビットに対応するストレージ・ボリュームをコピーすることは、同期入出力プロセスがそのトラック・アクセスを解放するまで続けられ、このことは、比較的長い時間を要する可能性がある。このことが、ボリュームを二次ストレージ・コントローラに適時に同期する能力に影響を及ぼす。
【００４９】
一部の実施形態において、書込みのために同期入出力プロセスによって確保されているトラックを識別すべく特別なデータ構造（同期入出力ＯＯＳビットマップと呼ばれる）がストレージ・コントローラによって提供され、同期操作は、同期操作が完了するまで、同期入出力ＯＯＳビットマップにおいて識別されるトラックを考慮することなしに、データの同期を実行すべく標準ＯＯＳビットマップを使用する。このことが、同期入出力プロセスの操作を完了する同期入出力プロセス時間をもたらす。その後、同期入出力プロセスが確保されたトラックを解放すると、同期入出力ＯＯＳビットマップから標準ＯＯＳビットマップにビットがコピーされ、標準ＯＯＳビットマップが、データの同期を完了させるために使用される。
【００５０】
例示的な実施形態
図１は、一部の実施形態による、１つまたは複数のホスト１０４と、１つまたは複数のストレージ・デバイス１０６、１０８とに結合された一次ストレージ・コントローラ１０２を備え、同期入出力ベースの書込みが、１つまたは複数のホスト１０４から一次ストレージ・コントローラ１０２に対して行われる、コンピューティング環境１００のブロック図を示す。
【００５１】
一次ストレージ・コントローラ１０２は、１つまたは複数のホスト１０４が、一次ストレージ・コントローラ１０２によって保持される論理ストレージに対して入出力（Ｉ／Ｏ）操作を実行することを可能にする。論理ストレージに対応する物理ストレージは、ストレージ・デバイス１０６、１０８、または一次ストレージ・コントローラ１０２のキャッシュ１１０、あるいはその組合せの１つまたは複数に見出されてよい。
【００５２】
一次ストレージ・コントローラ１０２において実行される同期プロセス１１２が、一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にストレージ・ボリュームのトラックをコピーするコピー操作を実行してよい。同期プロセス１１２は、遠隔コピー操作、すなわち、１つのストレージ・コントローラからのストレージ・ボリュームのトラックを別のストレージ・コントローラにコピーするコピー操作を実行しているものとして参照されてよい。一部の実施形態において、同期プロセス１１２は、ソフトウェアにおいて、ファームウェアにおいて、ハードウェアにおいて、またはその任意の組合せにおいて実施されてよい。同期プロセス１１２は、一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされるべきトラックを示す標準ＯＯＳビットマップ１１６を使用する。標準ＯＯＳビットマップの各ビットは、ストレージ・ボリュームのトラックに対応する。ビットが設定された（すなわち、１に割り当てられた）場合、対応するトラックが、データ同期のために一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされることになる。ビットが設定されない（すなわち、設定解除され、またはリセットされて、０に割り当てられる）場合、対応するトラックは、データ同期のために一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされなくてよい。
【００５３】
一次ストレージ・コントローラ１０２、二次ストレージ・コントローラ１１４、および１つまたは複数のホスト１０４は、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、電話デバイス、ネットワーク機器、ブレード・コンピュータ、処理デバイス、コントローラ、その他などの、当技術分野において現在、知られているものを含む任意の適切な計算デバイスを備えてよい。一次ストレージ・コントローラ１０２、二次ストレージ・コントローラ１１４、および１つまたは複数のホスト１０４は、ストレージ・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネット、イントラネットなどの任意の適切なネットワークにおける要素であってよい。一部の実施形態において、一次ストレージ・コントローラ１０２、二次ストレージ・コントローラ１１４、および１つまたは複数のホスト１０４は、クラウド・コンピューティング環境における要素であってよい。
【００５４】
一部の実施形態において、ホスト１０４は、バス・インターフェース［例えば、ポイント・ツー・ポイント光ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）インターフェース］１１８およびネットワーク・インターフェース１２０を介して一次ストレージ・コントローラ１０２に結合されてよい。ホスト１０４からの同期入出力操作は、バス・インターフェース１１８を介して実行されてよい。ホスト１０４からの従来のＩ／Ｏ操作は、ネットワーク・インターフェース１２０を介して実行されてよい。バス・インターフェース１１８は、ネットワーク・インターフェース１２０と比べて、Ｉ／Ｏのためのより高速のアクセス・チャネルを備えてよい。ＥｘｐＥｔｈｅｒ技術などの、イーサネット（Ｒ）上でＰＣＩｅを可能にすべく、分散型ＰＣＩｅスイッチなどの、ＰＣＩｅエクステンダ・ケーブルもしくはＰＣＩｅエクステンダ構成要素を含め、バス・インターフェース１１８を拡張するさらなるバス・インターフェース技術が利用されてよい。ネットワーク・インターフェース１２０は、ホスト１０４を、ネットワーク・アダプタを介して、一次ストレージ・コントローラ１０２を含むネットワーク１２２に結合してよい。
【００５５】
一次ストレージ・コントローラ１０２は、ホスト１０４から一次ストレージ・コントローラ１０２への同期入出力ベースの書込みの実行を可能にする同期入出力プロセス１２４を含む。一部の実施形態において、同期入出力プロセス１２４は、ソフトウェアにおいて、ファームウェアにおいて、ハードウェアにおいて、またはその任意の組合せにおいて実施されてよい。
【００５６】
一部の実施形態において、ソフトウェアにおいて、ファームウェアにおいて、ハードウェアにおいて、またはその任意の組合せにおいて実施される書込み前割込みプロセス１２６が、一次ストレージ・コントローラ１０２において実行される。トラックに書込みを実行するために、プロセスが、書込み前割込みプロセス１２６を呼び出し、その後、トラックに書き込む。書込み前割込みプロセス１２６がプロセスによって呼び出されたとき、トラックが、そのプロセスのために確保される。
【００５７】
同期入出力プロセス１２４以外のプロセスが、書込み前割込みプロセス１２６を呼び出し、その後、トラックに１回だけ迅速に書き込み、その後、トラックが解放される。しかし、同期入出力プロセス１２４は、同期入出力プロセス１２４によるトラックに対する最初の書込みよりかなり前から書込み前割込みプロセス１２６を呼び出してよい。さらに、書込み前割込みプロセス１２６を呼び出した後、同期入出力プロセス１２４は、トラックに対して複数の書込みを実行してよい。したがって、同期入出力プロセス１２４は、トラックを、そのトラックに書き込むことなしに相当な時間にわたって確保してよく、またはトラックを、そのトラックに対して複数の書込みを実行することによって、相当な時間にわたって確保してよい。このため、同期入出力プロセス１２４は、トラックを、そのトラックに書き込むことを予期して確保するが、トラックを確保した直後にトラックに実際に書き込まなくてよい。
【００５８】
以前の機構において、同期入出力プロセス１２４が、書込み前割込みプロセス１２６を呼び出すことによってトラックを確保したとき、同期プロセス１１２は、確保されたトラックが同期入出力プロセス１２４によって解放されるまで、確保されたトラックが位置するストレージ・ボリュームのいずれのトラックもコピーすることができない。それ故、同期入出力プロセス１２４によって実行される書込みは、同期プロセス１１２の効率的な動作に干渉する。
【００５９】
一部の実施形態において、同期入出力プロセス１２４によって実行される書込みによって同期プロセス１１２の効率的な動作にもたらされる干渉を回避すべく、同期入出力ＯＯＳビットマップ１２８が、一次ストレージ・コントローラ１０２に保持される。同期入出力ＯＯＳビットマップ１２８は、トラックごとに１ビットを有し、同期入出力プロセス１２４によって書き込まれるトラックが設定され（すなわち、１に割り当てられ）、これらのトラックに関する対応するビットが、標準ＯＯＳビットマップ１１６において設定解除される（すなわち、０に割り当てられる）。
【００６０】
同期入出力プロセス１２４が同期入出力ＯＯＳビットマップ１２８においてトラックを解放すると、同期入出力ＯＯＳビットマップ１２８において対応するビットが設定解除され、次に、標準ＯＯＳビットマップ１１６においてそのトラックに対応するビットが設定される。次に、同期プロセス１１２が、一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にそのトラックをコピーする。
【００６１】
したがって、図１は、同期入出力プロセス１２４が書き込んでよいストレージ・ボリュームのトラックを示す同期入出力ＯＯＳビットマップ１２８を保持することによって、同期プロセス１１２が効率的に動作することが可能であり、一次ストレージ・コントローラ１０２からのストレージ・ボリュームのトラックを二次ストレージ・コントローラ１１４に同期させることができる、一部の実施形態を示す。
【００６２】
図２は、一部の実施形態による、標準ＯＯＳビットマップ１１６だけが使用され、同期入出力ＯＯＳビットマップ１２８は使用されない場合の同期プロセスに対する同期入出力プロセスの干渉を示すフローチャート２００を示す。図２のフローチャートに示される操作は、一次ストレージ・コントローラ１０２において実行されてよい。
【００６３】
制御は、同期入出力プロセス１２４がＮのトラックを確保するブロック２０２から始まり、ここで、Ｎは、１つまたは複数であってよい数である。例えば、一部の実施形態において、Ｎは、１０であってよい。同期入出力プロセス１２４が、Ｎのトラックに関するトラック・アクセスを確実にし、Ｎのトラックのセットのトラックごとに書込み前割込みプロセス１２６を呼び出す（ブロック２０４において）。書込み前割込みプロセス１２６が、標準ＯＯＳビットマップ１１６において（または標準ＣＲビットマップにおいて）Ｎのトラックのそれぞれに対応するビットを設定する（ブロック２０６において）。
【００６４】
ブロック２０６から、制御は、同期入出力プロセス１２４がＮのトラックに書き込むブロック２０８に進む。この書込みは、相当な期間の後に行われてよく、または相当な期間にわたって続いてよく、ここで、一部の実施形態において、その相当な期間は、１０秒を超えていてよく、数分または数時間にまで延びることも可能である。Ｎのトラックに対する書込みの完了の後、同期入出力プロセス１２４が、それらのＮのトラックを解放し（ブロック２１０において）、標準ＯＯＳビットマップ１１６における対応するビットを設定解除する。
【００６５】
図２において、参照符号２１２は、同期入出力プロセス１２４が、ブロック２０２においてストレージ・ボリュームのＮのトラックに関するトラック・アクセスを行う場合、同期プロセス１１２による一次ストレージ・コントローラ１０２からのストレージ・ボリューム全体のすべてのトラックの二次ストレージ・コントローラ１１４への転送が停止されることを示す。同期入出力プロセス１２４がそれらのＮのトラックを解放する（ブロック２１０において）まで、それらのＮのトラック、またはストレージ・ボリュームの他のいずれのトラックも、二次ストレージ・コントローラ１１４に転送されない。同期入出力プロセス１２４がＮのトラックを解放した後、ストレージ・ボリュームのトラックが二次ストレージ・コントローラに転送されてよい（参照符号２１４を介して示されるとおり）。それ故、同期入出力プロセス１２４によるＮのトラックの確保から解放までの間の時間にわたって、同期プロセス１１２は、それらのＮのトラックが位置するストレージ・ボリュームのいずれのトラックに対しても遠隔コピー操作を実行することができない。
【００６６】
図３は、一部の実施形態による、標準ＯＯＳビットマップ１１６に加えて同期入出力ＯＯＳビットマップ１２８を使用することによって同期入出力プロセス１２４による同期プロセス１１２に対するパフォーマンス影響を回避することを示すフローチャート３００を示す。図３のフローチャートに示される操作は、一次ストレージ・コントローラ１０２において実行されてよい。
【００６７】
制御は、同期入出力プロセス１２４がＮのトラックを確保するブロック３０２から始まり、ここで、Ｎは、１つまたは複数であってよい数である。例えば、一部の実施形態において、Ｎは、１０であってよい。同期入出力プロセス１２４が、Ｎのトラックに関するトラック・アクセスを確実にし、Ｎのトラックのセットのトラックごとに書込み前割込みプロセス１２６を呼び出す（ブロック３０４において）。書込み前割込みプロセス１２６が、同期入出力ＯＯＳビットマップ１２８においてＮのトラックのそれぞれに対応するビットを設定し（ブロック３０６において）、標準ＯＯＳビットマップ１１６におけるビットを設定解除する。
【００６８】
ブロック３０６から、制御は、同期入出力プロセス１２４がＮのトラックに書き込むブロック３０８に進む。この書込みは、相当な期間の後に行われてよく、または相当な期間にわたって続いてよく、ここで、一部の実施形態において、その相当な期間は、１０秒を超えていてよく、数分または数時間にまで延びることも可能である。Ｎのトラックに対する書込みの完了の後、同期入出力プロセス１２４が、それらのＮのトラックを解放し（ブロック３１０において）、Ｎのトラックに対応するビットが、同期入出力ＯＯＳビットマップ１２８において設定解除され、標準ＯＯＳビットマップ１１６において設定される。
【００６９】
図３において、参照符号３１２は、同期入出力プロセス１２４が、ブロック３０２においてストレージ・ボリュームのＮのトラックに関するトラック・アクセスを行う場合、同期プロセス１１２による一次ストレージ・コントローラ１０２からのストレージ・ボリューム全体のトラックの二次ストレージ・コントローラ１１４への転送が停止されないことを示す。それらのＮのトラック以外の他のトラックは、それらのＮのトラックに対応するビットが標準ＯＯＳビットマップ１１６において設定されないので、同期プロセスによって処理されてよい。しかし、同期入出力プロセス１２４がＮのトラックを解放する（ブロック３１０において）まで、それらのＮのトラックは、二次ストレージ・コントローラ１１４に転送されない（参照符号３１４を介して示されるとおり）。それ故、同期入出力プロセス１２４によるＮのトラックの確保から解放までの間の時間にわたって、同期プロセス１１２は、それらのＮのトラックが位置するストレージ・ボリュームの任意のトラック（それらのＮのトラック以外の）に対して遠隔コピー操作を実行することができる。
【００７０】
図４は、一部の実施形態による、書込み前割込みプロセス１２６によって実行される操作を示すフローチャート４００を示す。図４のフローチャートに示される操作は、一次ストレージ・コントローラ１０２において実行されてよい。
【００７１】
制御は、書込み前割込みプロセス１２６が実行され、別のプロセスによって呼び出されるブロック４０２から始まる。書込み前割込みプロセス１２６は、いずれのプロセスがその呼出しを行ったかを判定する（ブロック４０４において）。書込み前割込みプロセス１２６が同期入出力プロセス１２４によって呼び出されている場合（分岐４０６を介して示されるとおり）、書込み前割込みプロセス１２６は、参照符号４０８を介して示されるとおり、同期入出力ＯＯＳビットマップ１２８および標準ＯＯＳビットマップ１１６を更新し、ここで、更新は、図３のブロック３０６における操作による。
【００７２】
書込み前割込みプロセス１２６が同期プロセス１１２によって呼び出されている場合（分岐４１０を介して示されるとおり）、書込み前割込みプロセス１２６は、参照符号４１２を介して示されるとおり、標準ＯＯＳビットマップ１１６を更新し、ここで、更新は、非同期入出力プロセスによってトラック上で実行されるように要求された書込みに対応する標準ＯＯＳビットマップ１１６におけるトラックに対応するビットを設定する。
【００７３】
したがって、図１〜図４は、標準ＯＯＳビットマップ１１６に加えて、同期入出力プロセス１２４に対応する同期入出力ＯＯＳビットマップ１２８を使用することによって、同期プロセス１１２のパフォーマンスが既存の機構よりも向上させられる、一部の実施形態を示す。
【００７４】
図５は、同期入出力プロセス１２４が存在する状態で一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にデータを整合性のあるようにコピーすることをサポートするグローバル・ミラー・プロセス（ミラーリング・プロセス）５０４をサポートする、一次ストレージ・コントローラ１０２における強化を示す一部の実施形態のブロック図５００を示す。図５における操作は、一次ストレージ・コントローラ１０２において実行されてよい。
【００７５】
図５において、一次ストレージ・コントローラ１０２は、一次ストレージ・コントローラ１０２において実行されるグローバル・ミラー・プロセス５０４を含む。同期入出力プロセスのない既存の機構において、グローバル・ミラー・プロセス５０４は、一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にデータを整合性のあるようにコピーする。データの整合性のあるコピーを実行すべく、標準ＯＯＳビットマップ１１６に加えて、標準変更記録（ＣＲ）ビットマップ５０６が、一次ストレージ・コントローラ１０２において保持される。既存の機構において、標準ＯＯＳビットマップ１１６は、現在の整合性グループに関してコピーされるべきトラックを示し、標準ＣＲビットマップ５０６は、次の整合性グループに関してコピーされるべきトラックを示す。既存の機構において、標準ＯＯＳビットマップ１１６を使用することによって現在の整合性グループがコピーされているときにトラック上の新たな書込みが受信されたとき、これらのトラックは、二次ストレージ・コントローラ１１４にコピーされるべき次の整合性グループに入ることになるので、これらのトラックに対応するビットが標準ＣＲビットマップ５０６において設定される。現在の整合性グループがコピーされると、標準ＣＲビットマップ５０６に記憶されていた次の整合性グループをコピーするために、標準ＣＲビットマップ５０６は標準ＯＯＳビットマップ１１６に切り替わる。
【００７６】
しかし、同期入出力プロセス１２４が存在する状態において、同期入出力ベースの書込みが、図１〜図４に示される実施形態において同期プロセスが影響を受けたのと同一の理由でパフォーマンス影響をもたらす可能性があるので、既存の機構は、問題を生じる。そのようなパフォーマンス影響を回避すべく、次の整合性グループに関して同期入出力プロセス１２４によって書き込まれるトラックを示す同期入出力ＣＲビットマップ５０８が保持される。標準ＣＲビットマップ５０６は、非同期入出力プロセスによって書き込まれるトラックを示すことを続ける。
【００７７】
一部の実施形態において、同期入出力プロセス１２４が、同期入出力ＣＲビットマップ５０８において同期入出力プロセス１２４によって書き込まれるものとして示されるトラックを解放したとき、同期入出力ＣＲビットマップ５０８は、グローバル・ミラー・プロセス５０４によって次の整合性グループに関するデータをコピーするために標準ＣＲビットマップ５０６とマージされる。
【００７８】
したがって、図５は、同期入出力プロセス１２４が存在する状態でグローバル・ミラー・プロセスが効率的に動作し、同期入出力ＣＲビットマップ５０８が、現在の整合性グループがコピーされている間、同期入出力プロセス１２４によって書き込まれるトラックを示すべく保持される、一部の実施形態を示す。
【００７９】
図６は、一部の実施形態による、同期入出力プロセスと同期プロセスの間の競合を低減する操作を示すフローチャート６００を示す。図６に示される操作は、一次ストレージ・コントローラ１０２において実行されてよい。
【００８０】
制御は、一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４への遠隔コピー操作を介してデータの同期が実行されるブロック６０２から始まる。ここにおいて、遠隔コピー操作が進行中である間、一次ストレージ・コントローラ１０２において、バス・インターフェース１１８とネットワーク・インターフェース１２０の両方を介してホスト１０４から入出力（Ｉ／Ｏ）要求が受信される。第１のデータ構造１１６（例えば、ＯＯＳビットマップ１１６）が、データの同期のために一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされるべきネットワーク・インターフェース１２０を介して書き込まれるトラックの識別情報を記憶する（ブロック６０４において）。第２のデータ構造１２８（例えば、同期入出力ＯＯＳビットマップ１２８）が、データの同期のために一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされるべきバス・インターフェース１１８を介して書き込まれるトラックの識別情報を記憶する（ブロック６０６において）。一部の実施形態において、第２のデータ構造１２８は、バス・インターフェース１１８を介した書込みを実行するのに使用される同期入出力プロセス１２４によって確保されたトラックを識別する。
【００８１】
ブロック６０６から、制御は、データの同期のための操作が、最初、第２のデータ構造１２８を考慮することなしに第１のデータ構造１１６を使用することによって一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にトラックをコピーするように実行されるブロック６０８に進む。同期入出力プロセス１２４が第２のデータ構造１２８において識別されるトラックを解放したと判定することに応答して、第２のデータ構造が第１のデータ構造にコピーされ、データの同期が、第１のデータ構造を使用することによって完了させられる。
【００８２】
図７は、一部の実施形態による、同期入出力プロセス１２４とグローバル・ミラー・プロセス５０４の間の競合を低減する操作を示すフローチャート７００を示す。図７における操作は、一次ストレージ・コントローラ１０２において実行されてよい。
【００８３】
制御は、同期入出力プロセス１２４がバス・インターフェース１１８を使用することによって書き込むブロック７０２から始まる。ここにおいて、遠隔コピー操作が、グローバル・ミラー・プロセス５０４において実行され、第１のデータ構造１１６は、標準同期外れ（ＯＯＳ）ビットマップであり、第２のデータ構造１２８は、同期入出力ＯＯＳビットマップである。現在の整合性グループが、標準ＯＯＳビットマップ１１６を使用することによって一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされている間、同期入出力変更記録（ＣＲ）ビットマップ５０８が、同期入出力プロセス１２４を介した書込みの標示を記憶する（ブロック７０４において）。現在の整合性グループが、標準ＯＯＳビットマップ１１６を使用することによって一次ストレージ・コントローラ１０２から二次ストレージ・コントローラ１１４にコピーされている間、標準ＣＲビットマップ５０６が、非同期入出力プロセスを介した書込みの標示を記憶する（ブロック７０６において）。
【００８４】
ブロック７０６から、制御は、同期入出力プロセス１２４が、同期入出力ＣＲビットマップ５０８において示されるトラックを解放することに応答して、同期入出力ＣＲビットマップ５０８が、次の整合性グループをコピーするために使用すべく標準ＣＲビットマップ５０６とマージされるブロック７０８に進む。
【００８５】
したがって、図１〜図７は、同期入出力同期外れビットマップ１２８または同期入出力変更記録ビットマップ５０８あるいはその両方を使用することによって、一次ストレージ・コントローラ１０２と二次ストレージ・コントローラ１１４の間のコピー操作のためのプロセスの実行中に同期入出力プロセス１２４が実行されるとき、競合が低減される、一部の実施形態を示す。
【００８６】
クラウド・コンピューティング環境
クラウド・コンピューティングは、最小限の管理労力、またはサービス・プロバイダとの最小限のやりとりしか伴わずに迅速にプロビジョニングされ、リリースされることが可能である構成可能なコンピューティング・リソース（例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス）の共有されるプールに対する好都合な、オンデマンドのネットワーク・アクセスを可能にするためのモデルである。
【００８７】
次に図８を参照すると、例示的なクラウド・コンピューティング環境５０が示される。図示されるとおり、クラウド・コンピューティング環境５０は、例えば、携帯情報端末（ＰＤＡ）もしくはセルラ電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組合せなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信相手とすることが可能な、１つまたは複数のクラウド・コンピューティング・ノード１０を備える。ノード１０は、互いに通信することが可能である。ノード１０は、前段で説明されるプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなどの、１つまたは複数のネットワークにおいて、物理的に、または仮想でグループ化されてよい（図示せず）。このことは、クラウド・コンピューティング環境５０が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することを可能にする。図８に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは、単に例示的であることが意図されること、ならびにコンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続、あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信することが可能である（例えば、ウェブ・ブラウザを使用して）ことが理解される。
【００８８】
次に図９を参照すると、クラウド・コンピューティング環境５０（図８）によって提供される機能抽象化層のセットが示される。図９に示される構成要素、層、および機能は、単に例示的であることが意図され、本発明の実施形態は、これらに限定されないことをあらかじめ理解されたい。
【００８９】
ハードウェアおよびソフトウェア層６０が、ハードウェア構成要素と、ソフトウェア構成要素とを含む。ハードウェア構成要素の例は、メインフレーム、一例において、ＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システム、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ、一例において、ＩＢＭ（Ｒ）ｐＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ（Ｒ）ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ（Ｒ）ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、ストレージ・デバイス、ならびにネットワークおよびネットワーキング構成要素を含む。ソフトウェア構成要素の例は、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例において、ＩＢＭ（Ｒ）ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例において、ＩＢＭ（Ｒ）ＤＢ２（Ｒ）データベース・ソフトウェアを含む（ＩＢＭ（Ｒ）、ｚＳｅｒｉｅｓ（Ｒ）、ｐＳｅｒｉｅｓ（Ｒ）、ｘＳｅｒｉｅｓ（Ｒ）、ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）、ＷｅｂＳｐｈｅｒｅ（Ｒ）、およびＤＢ２（Ｒ）は、世界中の多くの管轄区域において登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である）。
【００９０】
仮想化層６２が、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントが提供されることが可能な抽象化層を提供する。
【００９１】
一実施例において、管理層６４が、後段で説明される機能を提供してよい。リソース・プロビジョニングが、クラウド・コンピューティング環境内でタスクを実行するのに利用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。測定および価格設定が、クラウド・コンピューティング環境内でリソースが利用されるにつれての費用追跡、およびこれらのリソースの消費に関する料金請求またはインボイス送付を提供する。一実施例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを備えてよい。セキュリティが、クラウド・コンシューマおよびタスクに関する身元検証、ならびにデータおよびその他のリソースに関する保護を提供する。ユーザ・ポータルが、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理が、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割当ておよび管理を提供する。サービス・レベル合意（ＳＬＡ）計画および履行が、ＳＬＡにより将来の要求が予期されるクラウド・コンピューティング・リソースの事前準備および調達を提供する。
【００９２】
作業負荷層６６が、クラウド・コンピューティング環境が利用されてよい機能の例を提供する。この層から提供されてよい作業負荷および機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ解析処理、トランザクション処理、および図１〜図８に示される同期入出力プロセスとコピー・プロセスの間の競合低減６８を含む。
【００９３】
さらなる実施形態の詳細
説明される操作は、ソフトウェア、ファームウェア、ハードウェア、またはその任意の組合せを作り出すべく標準のプログラミング技法またはエンジニアリング技法、あるいはその両方を使用して方法、装置、またはコンピュータ・プログラム製品として実施されてよい。したがって、実施形態の態様は、完全にハードウェアの実施形態の形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む）の形態、または「回路」、「モジュール」、もしくは「システム」として本明細書においてすべてが一般的に参照されることが可能なソフトウェア態様とハードウェア態様を組み合わせる実施形態の形態をとってよい。さらに、実施形態の態様は、コンピュータ・プログラム製品の形態をとってよい。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態の態様を実行させるためのコンピュータ可読プログラム命令を担持する１つ（または複数の）コンピュータ可読記憶媒体を含んでよい。
【００９４】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持し、記憶することが可能な有形のデバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストは、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能なプログラマブル読取り専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、メモリ・スティック、フロッピ・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を通じて伝播する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または配線を通じて伝送される電気信号などの一過性の信号そのものであると解釈されるべきではない。
【００９５】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、伝送光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶されるようにコンピュータ可読プログラム命令を転送する。
【００９６】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、もしくはそれに類するものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくはそれに類似したプログラミング言語などの従来の手続き型プログラミング言語を含め、１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されても、一部がユーザのコンピュータ上で実行されても、スタンドアロンのソフトウェア・パッケージとして実行されても、一部がユーザのコンピュータ上で、かつ一部が遠隔コンピュータ上で実行されても、全体が遠隔コンピュータもしくは遠隔サーバの上で実行されてもよい。全体が遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、または接続は、外部コンピュータに対して行われてもよい（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）。一部の実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、本実施形態の態様を実行するために、電子回路をカスタマイズするようにコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することが可能である。
【００９７】
本実施形態の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることが可能であることが理解されよう。
【００９８】
これらのコンピュータ可読プログラム命令は、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含む製造品を備えるべく、特定の様態で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せを導くことができるコンピュータ可読記憶媒体に記憶されてもよい。
【００９９】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ上、他のプログラマブル装置上、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【０１００】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備える、命令のモジュール、セグメント、または部分を表すことが可能である。一部の代替の実装形態において、ブロックに記載される機能は、図に記載される順序を外れて生じてよい。例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてよく、またはそれらのブロックが、ときとして、関与する機能に依存して、逆の順序で実行されてよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施されることが可能であることにも留意されたい。
【０１０１】
図１０は、一部の実施形態による一次ストレージ・コントローラ１０２、二次ストレージ・コントローラ１１４、ホスト１０４、または他の計算デバイスに含められてよい一部の要素を示すブロック図である。システム１０００は、一部の実施形態において、少なくともプロセッサ１００４を含むことが可能な回路１００２を含んでよい。また、システム１０００は、メモリ１００６（例えば、揮発性メモリ・デバイス）、およびストレージ１００８を含んでもよい。ストレージ１００８は、不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＲＰＯＭ、フラッシュ、ファームウェア、プログラマブル・ロジック、その他）、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ、その他を含んでよい。ストレージ１００８は、内部ストレージ・デバイス、付加されたストレージ・デバイス、またはネットワーク・アクセス可能なストレージ・デバイス、あるいはその組合せを備えてよい。システム１０００は、メモリ１００６にロードされて、プロセッサ１００４または回路１００２によって実行されることが可能なコード１０１２を含むプログラム・ロジック１０１０を含んでよい。一部の実施形態において、コード１０１２を含むプログラム・ロジック１０１０は、ストレージ１００８に記憶されてよい。他の一部の実施形態において、プログラム・ロジック１０１０は、回路１００２において実施されてよい。システム１０００における構成要素のうちの１つまたは複数は、バスを介して、または他の結合もしくは接続１０１４を介して通信してよい。したがって、図１０は、その他の要素とは別個のプログラム・ロジック１０１０を示すが、プログラム・ロジック１０１０は、メモリ１００６または回路１００２、あるいはその両方において実施されてよい。
【０１０２】
一部の実施形態は、コンピューティング・システムにコンピュータ可読コードを組み込む人または自動化された処理によってコンピューティング命令を展開するための方法を対象としてよく、ここで、コードは、コンピューティング・システムと組み合わさって、説明される実施形態の動作を実行することを可能にされる。
【０１０３】
「或る実施形態」、「実施形態」、「いくつかの実施形態」、「その実施形態」、「それらの実施形態」、「１つまたは複数の実施形態」、「一部の実施形態」、および「一実施形態」という術語は、特に明記しない限り、「本発明の１つまたは複数の（ただし、すべてではない）実施形態」を意味する。
【０１０４】
「含む」、「備える」、「有する」という術語、およびその変形は、特に明記しない限り、「含むが、限定されない」を意味する。
【０１０５】
アイテムの列挙されるリストは、特に明記しない限り、それらのアイテムのいずれも、またはすべてが相互排他的であることを暗示しない。
【０１０６】
「或る」および「その」という術語は、特に明記しない限り、「１つまたは複数の」を意味する。
【０１０７】
互いに通信状態にあるデバイスは、特に明記しない限り、互いに継続的に通信状態にある必要はない。さらに、互いに通信状態にあるデバイスは、直接に通信しても、１つまたは複数の仲介役を通じて間接的に通信してもよい。
【０１０８】
互いに通信状態にあるいくつかの構成要素を有する実施形態について説明することは、すべてのそのような構成要素が要求されることを暗示しない。それどころか、様々なオプションの構成要素が、本発明の多種多様な可能な実施形態を例示すべく説明される。
【０１０９】
さらに、プロセス・ステップ、方法ステップ、アルゴリズム、またはそれに類するものは、順番に説明されることが可能であるものの、そのようなプロセス、方法、およびアルゴリズムは、代わりの順序で機能するように構成されてよい。すなわち、説明されるステップのいずれの順序もしくは順番も、それらのステップがその順番で実行されるべき要件を必ずしも示すものではない。本明細書において説明されるプロセスのステップは、実際的である任意の順序で実行されてよい。さらに、一部のステップは、同時に実行されてよい。
【０１１０】
単一のデバイスまたは製品について本明細書において説明される場合、単一のデバイス／製品の代わりに複数のデバイス／製品が（それらが協働するか否かにかかわらず）使用されてよいことが直ちに明白であろう。同様に、複数のデバイスまたは製品について（それらが協働するか否かにかかわらず）本明細書において説明される場合、その複数のデバイスまたは製品の代わりに単一のデバイス／製品が使用されてよいこと、または示される数のデバイスもしくはプログラムの代わりに異なる数のデバイス／製品が使用されてよいことが直ちに明白であろう。デバイスの機能またはフィーチャ、あるいはその両方は、代替として、そのような機能／フィーチャを有するものとして明示的に説明されない他の１つまたは複数のデバイスによって実現されてよい。それ故、本発明の他の実施形態は、そのデバイスそのものを含まなくてもよい。
【０１１１】
図に示されていることが可能な少なくとも一部の動作は、一部のイベントが或る順序で生じることを示す。代替の実施形態において、一部の動作は、異なる順序で実行されてよく、変形されてよく、または除去されてよい。さらに、前述した論理にステップが追加されてよく、それでも、説明される実施形態に準拠する。さらに、本明細書において説明される動作は、順番に生じてよく、または一部の動作は、並行に処理されてよい。さらに、動作は、単一の処理ユニットによって実行されても、分散された複数の処理ユニットによって実行されてもよい。
【０１１２】
本発明の様々な実施形態の以上の説明は、例示および説明の目的で提示されてきた。以上の説明は、網羅的であることも、開示される形態そのものに本発明を限定することも意図していない。以上の教示に鑑みて多くの変形形態および変更形態が可能である。本発明の範囲は、この詳細な説明によってではなく、添付の特許請求の範囲によって限定されることが意図される。以上の詳細、例示、およびデータは、本発明の構成の製造および使用の完全な説明を与える。本発明の範囲を逸脱することなく、本発明の多くの実施形態が作成されることが可能であるので、本発明は、添付の特許請求の範囲に存する。
【図１】
2021507351.tif 000003
【図２】
2021507351.tif 000004
【図３】
2021507351.tif 000005
【図４】
2021507351.tif 000006
【図５】
2021507351.tif 000007
【図６】
2021507351.tif 000008
【図７】
2021507351.tif 000009
【図８】
2021507351.tif 000010
【図９】
2021507351.tif 000011
【図１０】
2021507351.tif 000012
【国際調査報告】
2021507351.tif 000013
2021507351.tif 000014