(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-17
(45)【発行日】2022-06-27
(54)【発明の名称】遠隔コピー操作中にバス・インターフェースを介してストレージ・コントローラに書き込まれるデータの管理
(51)【国際特許分類】
G06F 11/20 20060101AFI20220620BHJP
G06F 3/06 20060101ALI20220620BHJP
【FI】
G06F11/20 664
G06F3/06 301X
G06F3/06 304F
G06F11/20 671
(21)【出願番号】P 2020531531
(86)(22)【出願日】2018-12-12
(86)【国際出願番号】 IB2018059926
(87)【国際公開番号】W WO2019116251
(87)【国際公開日】2019-06-20
【審査請求日】2021-05-25
(32)【優先日】2017-12-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】クラフォード、ジョシュア
(72)【発明者】
【氏名】シュレイバー、デイヴィッド、ブレント
(72)【発明者】
【氏名】ワード、マシュー
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特表2011-507062(JP,A)
【文献】特表2010-503089(JP,A)
【文献】特開2002-324000(JP,A)
【文献】特開平10-091357(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、前記実行すること、
第1のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第2のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、方法。
【請求項2】
前記第2のデータ構造が、前記バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、請求項1に記載の方法。
【請求項3】
データの前記同期のための操作が、最初、前記第2のデータ構造を考慮することなしに前記第1のデータ構造を使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにトラックをコピーするように実行される、請求項2に記載の方法。
【請求項4】
前記同期入出力プロセスが前記第2のデータ構造において識別される前記トラックを解放したと判定することに応答して、前記第2のデータ構造を前記第1のデータ構造にコピーし、次に、データの前記同期を、前記第1のデータ構造を使用することによって完了することをさらに含む、請求項3に記載の方法。
【請求項5】
同期入出力プロセスが、前記バス・インターフェースを介した書込みを実行すべく使用され、前記同期入出力プロセスは、前記ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに前記同期入出力プロセスは、前記ネットワーク・インターフェースを介して前記トラック上で書込みを実行する他のプロセスと比べて、前記トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、請求項1に記載の方法。
【請求項6】
前記第1のデータ構造が、標準同期外れビットマップであり、前記第2のデータ構造が、同期入出力同期外れビットマップである、請求項1に記載の方法。
【請求項7】
同期入出力プロセスが、前記バス・インターフェースを使用することによって書き込み、前記遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、前記第1のデータ構造が、標準同期外れ(OOS)ビットマップであり、前記第2のデータ構造が、同期入出力OOSビットマップであり、前記方法が、
現在の整合性グループが、前記標準OOSビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップに、前記同期入出力プロセスを介した書込みの標示を記憶すること、および
前記現在の整合性グループが、前記標準OOSビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、標準CRビットマップに、非同期入出力プロセスを介した書込みの標示を記憶すること
をさらに含む、請求項1に記載の方法。
【請求項8】
前記同期入出力プロセスが前記同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、前記同期入出力CRビットマップを、次の整合性グループをコピーするために使用すべく前記標準CRビットマップとマージすることをさらに含む、請求項7に記載の方法。
【請求項9】
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサが、操作を実行し、前記プロセッサによって実行される前記操作が、
一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、前記実行すること、
第1のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第2のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、システム。
【請求項10】
前記第2のデータ構造が、前記バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、請求項9に記載のシステム。
【請求項11】
データの前記同期のための操作が、最初、前記第2のデータ構造を考慮することなしに前記第1のデータ構造を使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにトラックをコピーするように実行される、請求項10に記載のシステム。
【請求項12】
前記操作が、前記同期入出力プロセスが前記第2のデータ構造において識別される前記トラックを解放したと判定することに応答して、前記第2のデータ構造を前記第1のデータ構造にコピーし、次に、データの前記同期を、前記第1のデータ構造を使用することによって完了することをさらに含む、請求項11に記載のシステム。
【請求項13】
同期入出力プロセスが、前記バス・インターフェースを介した書込みを実行すべく使用され、前記同期入出力プロセスは、前記ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに前記同期入出力プロセスは、前記ネットワーク・インターフェースを介して前記トラック上で書込みを実行する他のプロセスと比べて、前記トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、請求項9に記載のシステム。
【請求項14】
前記第1のデータ構造が、標準同期外れビットマップであり、前記第2のデータ構造が、同期入出力同期外れビットマップである、請求項9に記載のシステム。
【請求項15】
同期入出力プロセスが、前記バス・インターフェースを使用することによって書き込み、前記遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、前記第1のデータ構造が、標準同期外れ(OOS)ビットマップであり、前記第2のデータ構造が、同期入出力OOSビットマップであり、前記操作が、
現在の整合性グループが、前記標準OOSビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップに、前記同期入出力プロセスを介した書込みの標示を記憶すること、および
前記現在の整合性グループが、前記標準OOSビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、標準CRビットマップに、非同期入出力プロセスを介した書込みの標示を記憶すること
をさらに含む、請求項9に記載のシステム。
【請求項16】
前記操作が、前記同期入出力プロセスが前記同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、前記同期入出力CRビットマップを、次の整合性グループをコピーするために使用すべく前記標準CRビットマップとマージすることをさらに含む、請求項15に記載のシステム。
【請求項17】
コンピュータ・プログラム製品であって、
コンピュータ可読プログラム・コードを実体化しているコンピュータ可読記憶媒体を備え、前記コンピュータ可読プログラム・コードが、操作を実行するように構成され、前記操作が、
一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、前記実行すること、
第1のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第2のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、コンピュータ・プログラム製品。
【請求項18】
前記第2のデータ構造が、前記バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
データの前記同期のための操作が、最初、前記第2のデータ構造を考慮することなしに前記第1のデータ構造を使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにトラックをコピーするように実行される、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記操作が、前記同期入出力プロセスが前記第2のデータ構造において識別される前記トラックを解放したと判定することに応答して、前記第2のデータ構造を前記第1のデータ構造にコピーし、次に、データの前記同期を、前記第1のデータ構造を使用することによって完了することをさらに含む、請求項19に記載のコンピュータ・プログラム製品。
【請求項21】
同期入出力プロセスが、前記バス・インターフェースを介した書込みを実行すべく使用され、前記同期入出力プロセスは、前記ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに前記同期入出力プロセスは、前記ネットワーク・インターフェースを介して前記トラック上で書込みを実行する他のプロセスと比べて、前記トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、請求項17に記載のコンピュータ・プログラム製品。
【請求項22】
前記第1のデータ構造が、標準同期外れビットマップであり、前記第2のデータ構造が、同期入出力同期外れビットマップである、請求項17に記載のコンピュータ・プログラム製品。
【請求項23】
同期入出力プロセスが、前記バス・インターフェースを使用することによって書き込み、前記遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、前記第1のデータ構造が、標準同期外れ(OOS)ビットマップであり、前記第2のデータ構造が、同期入出力OOSビットマップであり、前記操作が、
現在の整合性グループが、前記標準OOSビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップに、前記同期入出力プロセスを介した書込みの標示を記憶すること、および
前記現在の整合性グループが、前記標準OOSビットマップを使用することによって前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされている間、標準CRビットマップに、非同期入出力プロセスを介した書込みの標示を記憶すること
をさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項24】
前記操作が、前記同期入出力プロセスが前記同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、前記同期入出力CRビットマップを、次の整合性グループをコピーするために使用すべく前記標準CRビットマップとマージすることをさらに含む、請求項23に記載のコンピュータ・プログラム製品。
【請求項25】
一次ストレージ・コントローラであって、
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサが、操作を実行し、前記プロセッサによって実行される前記操作が、
前記一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、前記遠隔コピー操作が進行中である間、前記一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、前記実行すること、
第1のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記ネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および
第2のデータ構造に、データの前記同期のために前記一次ストレージ・コントローラから前記二次ストレージ・コントローラにコピーされるべき前記バス・インターフェースを介して書き込まれるトラックの識別情報を記憶すること
を含む、一次ストレージ・コントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、遠隔コピー操作中にバス・インターフェースを介してストレージ・コントローラに書き込まれるデータの管理に関する。
【背景技術】
【0002】
一部のストレージ・システム環境において、ストレージ・コントローラ(またはストレージ・コントローラ複合体(storage controller complex))は、互いに結合された複数のストレージ・サーバを備えることが可能である。ストレージ・コントローラは、ホスト・コンピューティング・システムが、ストレージ・コントローラによって制御されるストレージ・デバイスを相手に入出力(I/O)操作を実行することを可能にし、ここで、ホスト・コンピューティング・システムは、ホストと呼ばれてよい。
【0003】
多くのシステムにおいて、データは、1つのストレージ・コントローラから別のストレージ・コントローラにコピーされることが可能であり、データをそのようにコピーすることは、遠隔コピーと呼ばれてよい。データがそこからコピーされるストレージ・コントローラは、一次ストレージ・コントローラと呼ばれてよく、データがコピーされる先のストレージ・コントローラは、二次ストレージ・コントローラと呼ばれてよい。1つまたは複数のストレージ・ボリュームが、一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされてよく、ここで、ストレージ・ボリュームは、複数のトラックを含んでよい。コピーすることは、データ・レプリケーションのために一次ストレージ・コントローラと二次ストレージ・コントローラの間でストレージ・ボリュームをミラーリングすることを含んでよい。
【0004】
一部のミラーリング機構は、データ整合性(data consistency)のために整合性グループの形成を制御することが可能である。整合性グループは、データの整合性のあるコピーを作成する際に一緒に管理される複数のストレージ・ユニットにわたるボリュームの集まりである。依存する書込みの順序は、整合性グループにおいて保存される。これらの整合性グループの形成は、遠隔コピー・プロセスおよびコピー・ボリュームに対するコマンドを二次ストレージ・コントローラに送る一次ストレージ・コントローラによって制御されてよい。
【0005】
同期外れ(OOS:out of synchronization)ビットマップが、遠隔コピー関係に関与するいずれのトラックが、未だにコピーされておらず、それ故、保護されたトラックであるかを識別する。各トラックは、ビットマップにおける1ビットによって表される。ビットは、対応するトラックがコピーされるべきときに設定される。そのビットは、対応するトラックが一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされたときにリセットされる(すなわち、設定解除される)。
【0006】
一次ストレージ・コントローラと二次ストレージ・コントローラの間で整合性のあるコピーが実行されるべきとき、変更記録(CR)ビットマップが保持されてよい。CRビットマップは、ソース・ストレージ・ボリューム上のすべてのトラックに関するビットを有する。現在の整合性グループに関して遠隔コピー関係が確立された後、ソース・ストレージ・ボリュームのトラック上に書込みが存在するとき、CRビットマップにおいて、次の整合性グループに関する後続の遠隔コピーにおいてそのトラックがコピーされる必要があることを示すべくビットが設定される。
【0007】
米国特許出願公開第2016/0203172号明細書が、異種のリストの効率的な記憶のためのビットマップ・データ構造のためのハードウェアを提供するための方法およびシステムについて説明する。米国特許出願公開第2003/0158869号明細書が、遠隔コピーに関する増分更新制御を提供するための方法およびシステムについて説明する。米国特許第9,483,366号明細書が、更新を遠隔コピーするためのビットマップ選択を提供するためのシステムおよび方法について説明する。米国特許第9,250,832号明細書が、ファームウェア動作を高速パス・ハードウェア入出力(I/O)処理と同期させるビットマップを提供するための方法およびシステムについて説明する。米国特許第9,026,696号明細書が、ストレージ・デバイスのためのスプリッタに対する継続的なプッシュのためにI/Oトラック情報を使用するためのシステムおよび方法について説明する。米国特許第8,862,848号明細書が、ビットマップを使用してデータ記憶を提供するための方法およびシステムについて説明する。米国特許第8,595,455号明細書が、ビットマップ書込み意図ログ記録を使用してミラーリングされたクラスタ・ストレージ・システムにおけるデータ整合性を保持するための方法およびシステムについて説明する。米国特許第7,089,385号明細書が、複数列ビットマップの使用を通じて進行中の書込みを追跡するための方法およびシステムについて説明する。
【0008】
さらに、米国特許出願公開第2017/0235805号明細書が、データ・レプリケーション同期のための追跡構造を提供するための方法およびシステムについて説明する。米国特許出願公開第2015/0178201号明細書が、スワップI/Oまたは類似したI/Oパターン、あるいはその両方の効率的なキャッシングを提供するための方法およびシステムについて説明する。米国特許第9,601,151号明細書が、読取り1回ポイント・イン・タイム・コピー(read-once point in time copy)を介してデータ・ストレージ・システムI/O帯域幅を低減するための方法およびシステムについて説明する。米国特許第9,535,610号明細書が、変形されたセクタ・ビットマップを使用した部分的書込み操作のためにピア・ツー・ピア遠隔コピー(PPRC)転送を最適化するための方法およびシステムについて説明する。
【先行技術文献】
【特許文献】
【0009】
【文献】米国特許出願公開第2016/0203172号明細書
【文献】米国特許出願公開第2003/0158869号明細書
【文献】米国特許第9,483,366号明細書
【文献】米国特許第9,250,832号明細書
【文献】米国特許第9,026,696号明細書
【文献】米国特許第8,862,848号明細書
【文献】米国特許第8,595,455号明細書
【文献】米国特許第7,089,385号明細書
【文献】米国特許出願公開第2017/0235805号明細書
【文献】米国特許出願公開第2015/0178201号明細書
【文献】米国特許第9,601,151号明細書
【文献】米国特許第9,535,610号明細書
【発明の概要】
【発明が解決しようとする課題】
【0010】
遠隔コピー操作におけるデータ管理のための技術を提供する。
【課題を解決するための手段】
【0011】
一次ストレージ・コントローラから二次ストレージ・コントローラへの遠隔コピー操作を介してデータの同期が実行される方法、システム、およびコンピュータ・プログラム製品が提供される。ここにおいて、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される。第1のデータ構造が、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶する。第2のデータ構造が、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶する。その結果、バス・インターフェースを介して書き込む遠隔コピー操作およびプロセスの間の競合が低減される。
【0012】
一部の実施形態において、第2のデータ構造は、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセス(syncio process)によって確保されるトラックを識別する。その結果、遠隔コピー操作との同期入出力プロセスによってもたらされる競合が低減される。
【0013】
さらなる実施形態において、データの同期のための操作は、最初、第2のデータ構造を考慮することなしに第1のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される。その結果、既存の遠隔コピー機構への交代が回避される。
【0014】
さらなる実施形態において、同期入出力プロセスが第2のデータ構造において識別されるトラックを解放したと判定することに応答して、第2のデータ構造が第1のデータ構造にコピーされ、次に、データの同期が、第1のデータ構造を使用することによって完了させられる。その結果、同期入出力プロセスは、既存のコピー操作のパフォーマンスに大きな影響を及ぼすことなしに一次ストレージ・コントローラに組み込まれる。
【0015】
一部の実施形態において、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する。それらの実施形態の結果、同期入出力プロセスによって確保された書込みが、既存のコピー操作のパフォーマンスに大きな影響を及ぼすことはない。
【0016】
さらなる実施形態において、第1のデータ構造は、標準同期外れビットマップであり、第2のデータ構造は、同期入出力同期外れビットマップである。その結果、既存のデータ構造が再使用され、同期入出力操作のために類似のデータ構造が作成される。
【0017】
さらなる実施形態において、同期入出力プロセスは、バス・インターフェースを使用することによって書き込む。ここにおいて、遠隔コピー操作は、ミラーリング・プロセスにおいて実行され、第1のデータ構造は、標準同期外れ(OOS)ビットマップであり、第2のデータ構造は、同期入出力OOSビットマップである。現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップが、同期入出力プロセスを介した書込みの標示(indications of writes)を記憶する。現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準CRビットマップが、非同期入出力プロセスを介した書込みの標示を記憶する。その結果、同期入出力プロセスとミラーリング・プロセスの間の競合が低減される。
【0018】
さらなる実施形態において、同期入出力プロセスが同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、同期入出力CRビットマップが、次の整合性グループをコピーするために使用すべく標準CRビットマップとマージされる。その結果、グローバル・ミラーのための既存の機構が同期入出力と統合される。
【0019】
第1の態様から見て、本発明は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、実行すること、第1のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第2のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む方法を提供する。
【0020】
好ましくは、本発明は、第2のデータ構造が、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、方法を提供する。
【0021】
好ましくは、本発明は、データの同期のための操作が、最初、第2のデータ構造を考慮することなしに第1のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される、方法を提供する。
【0022】
好ましくは、本発明は、同期入出力プロセスが第2のデータ構造において識別されるトラックを解放したと判定することに応答して、第2のデータ構造を第1のデータ構造にコピーし、次に、データの同期を、第1のデータ構造を使用することによって完了することをさらに含む方法を提供する。
【0023】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、方法を提供する。
【0024】
好ましくは、本発明は、第1のデータ構造が、標準同期外れビットマップであり、第2のデータ構造が、同期入出力同期外れビットマップである、方法を提供する。
【0025】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを使用することによって書き込み、遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、第1のデータ構造が、標準同期外れ(OOS)ビットマップであり、第2のデータ構造が、同期入出力OOSビットマップである、方法を提供し、方法は、現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップに、同期入出力プロセスを介した書込みの標示を記憶すること、および現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準CRビットマップに、非同期入出力プロセスを介した書込みの標示を記憶することをさらに含む。
【0026】
好ましくは、本発明は、同期入出力プロセスが同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、同期入出力CRビットマップを、次の整合性グループをコピーするために使用すべく標準CRビットマップとマージすることをさらに含む方法を提供する。
【0027】
第2の態様から見て、本発明は、メモリと、メモリに結合されたプロセッサとを備えるシステムを提供する。ここにおいて、プロセッサは、操作を実行し、プロセッサによって実行される操作は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、実行すること、第1のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第2のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む。
【0028】
好ましくは、本発明は、第2のデータ構造が、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、システムを提供する。
【0029】
好ましくは、本発明は、データの同期のための操作が、最初、第2のデータ構造を考慮することなしに第1のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される、システムを提供する。
【0030】
好ましくは、本発明は、操作が、同期入出力プロセスが第2のデータ構造において識別されるトラックを解放したと判定することに応答して、第2のデータ構造を第1のデータ構造にコピーし、次に、データの同期を、第1のデータ構造を使用することによって完了することをさらに含む、システムを提供する。
【0031】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、システムを提供する。
【0032】
好ましくは、本発明は、第1のデータ構造が、標準同期外れビットマップであり、第2のデータ構造が、同期入出力同期外れビットマップである、システムを提供する。
【0033】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを使用することによって書き込み、遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、第1のデータ構造が、標準同期外れ(OOS)ビットマップであり、第2のデータ構造が、同期入出力OOSビットマップであり、操作は、現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップに、同期入出力プロセスを介した書込みの標示を記憶すること、および現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準CRビットマップに、非同期入出力プロセスを介した書込みの標示を記憶することをさらに含む、システムを提供する。
【0034】
好ましくは、本発明は、操作が、同期入出力プロセスが同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、同期入出力CRビットマップを、次の整合性グループをコピーするために使用すべく標準CRビットマップとマージすることをさらに含む、システムを提供する。
【0035】
第3の態様から見て、本発明は、コンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを実体化しているコンピュータ可読記憶媒体を備え、コンピュータ可読プログラム・コードは、操作を実行するように構成され、操作は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、実行すること、第1のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第2のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む。
【0036】
好ましくは、本発明は、第2のデータ構造が、バス・インターフェースを介した書込みを実行するのに使用される同期入出力プロセスによって確保されたトラックを識別する、コンピュータ・プログラム製品を提供する。
【0037】
好ましくは、本発明は、データの同期のための操作が、最初、第2のデータ構造を考慮することなしに第1のデータ構造を使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにトラックをコピーするように実行される、コンピュータ・プログラム製品を提供する。
【0038】
好ましくは、本発明は、操作が、同期入出力プロセスが第2のデータ構造において識別されるトラックを解放したと判定することに応答して、第2のデータ構造を第1のデータ構造にコピーし、次に、データの同期を、第1のデータ構造を使用することによって完了することをさらに含む、コンピュータ・プログラム製品を提供する。
【0039】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを介した書込みを実行すべく使用され、同期入出力プロセスは、ホストが、アプリケーション・スレッドを、書込み操作が完了するのを待つスピン・ループに保つことを可能にし、さらに同期入出力プロセスは、ネットワーク・インターフェースを介してトラック上で書込みを実行する他のプロセスと比べて、トラック上で書込みを実行するのに先立って書込みを実行するためにトラックをより長い持続時間にわたって確保する、コンピュータ・プログラム製品を提供する。
【0040】
好ましくは、本発明は、第1のデータ構造が、標準同期外れビットマップであり、第2のデータ構造が、同期入出力同期外れビットマップである、コンピュータ・プログラム製品を提供する。
【0041】
好ましくは、本発明は、同期入出力プロセスが、バス・インターフェースを使用することによって書き込み、遠隔コピー操作が、ミラーリング・プロセスにおいて実行され、第1のデータ構造が、標準同期外れ(OOS)ビットマップであり、第2のデータ構造が、同期入出力OOSビットマップであり、操作は、現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、同期入出力変更記録(CR)ビットマップに、同期入出力プロセスを介した書込みの標示を記憶すること、および現在の整合性グループが、標準OOSビットマップを使用することによって一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされている間、標準CRビットマップに、非同期入出力プロセスを介した書込みの標示を記憶することをさらに含む、コンピュータ・プログラム製品を提供する。
【0042】
好ましくは、本発明は、操作が、同期入出力プロセスが同期入出力CRビットマップにおいて示されるトラックを解放することに応答して、同期入出力CRビットマップを、次の整合性グループをコピーするために使用すべく標準CRビットマップとマージすることをさらに含む、コンピュータ・プログラム製品を提供する。
【0043】
第4の態様から見て、本発明は、メモリと、メモリに結合されたプロセッサとを備える一次ストレージ・コントローラを提供する。ここにおいて、プロセッサは、操作を実行し、プロセッサによって実行される操作は、一次ストレージ・コントローラから二次ストレージ・コントローラに対する遠隔コピー操作を介してデータの同期を実行することであって、遠隔コピー操作が進行中である間、一次ストレージ・コントローラにおいて、バス・インターフェースとネットワーク・インターフェースの両方を介してホストから入出力(I/O)要求が受信される、実行すること、第1のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきネットワーク・インターフェースを介して書き込まれるトラックの識別情報を記憶すること、および第2のデータ構造に、データの同期のために一次ストレージ・コントローラから二次ストレージ・コントローラにコピーされるべきバス・インターフェースを介して書き込まれるトラックの識別情報を記憶することを含む。
【0044】
次に、同様の参照符号が図面全体にわたって対応する部分を表す図面を参照する。
【図面の簡単な説明】
【0045】
【
図1】一部の実施形態による、1つまたは複数のホストと、1つまたは複数のストレージ・デバイスとに結合された一次ストレージ・コントローラを備え、同期入出力ベースの書込みが、1つまたは複数のホストから一次ストレージ・コントローラに対して行われる、コンピューティング環境を示すブロック図である。
【
図2】一部の実施形態による、標準同期外れ(OOS)ビットマップだけが使用され、同期入出力OOSビットマップは使用されない場合の同期プロセスに対する同期入出力プロセスの干渉を示すフローチャートである。
【
図3】一部の実施形態による、標準OOSビットマップに加えて同期入出力OOSビットマップを使用することによって同期入出力プロセスによる同期プロセスに対するパフォーマンス影響を回避することを示すフローチャートである。
【
図4】一部の実施形態による、書込み前割込みプロセス(prewrite intercept process)によって実行される操作を示すフローチャートである。
【
図5】一部の実施形態による、同期入出力プロセスが存在する状態で一次ストレージ・コントローラから二次ストレージ・コントローラにデータを整合性のあるようにコピーすることをサポートするグローバル・ミラー・プロセスをサポートする、一次ストレージ・コントローラにおける強化を示すブロック図である。
【
図6】一部の実施形態による、同期入出力プロセスと同期プロセスの間の競合を低減する操作を示すフローチャートである。
【
図7】一部の実施形態による、同期入出力プロセスとグローバル・ミラー・プロセスの間の競合を低減する操作を示すフローチャートである。
【
図8】一部の実施形態による、クラウド・コンピューティング環境を示すブロック図である。
【
図9】一部の実施形態による、
図8のクラウド・コンピューティング環境のさらなる詳細を示すブロック図である。
【
図10】一部の実施形態による、
図1~
図9において説明される、ストレージ・コントローラまたはホストに含められてよい一部の要素を示す計算システムを示すブロック図である。
【発明を実施するための形態】
【0046】
後段の説明において、本明細書の一部分を形成し、いくつかの実施形態を例示する添付の図面が参照される。他の実施形態が利用されてよく、構造上、および動作上の変更が行われてよいものと理解される。
【0047】
同期入出力(sync I/Oとも呼ばれる)は、計算デバイスのためのアタッチメント・ハードウェアおよびプロトコルを備える。同期入出力は、非常に低遅延のランダム読取り、および小ブロック順次書込みのために設計される。計算デバイス間の同期入出力接続は、ポイント・ツー・ポイント光ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)インターフェースを介してよい。同期入出力操作は、同期入出力において、ホスト計算デバイスは、I/O操作が完了するのを待つ間、アプリケーション・スレッドをスピン・ループに保つことが可能であるという点で、従来のI/Oとは異なるように振る舞う。このことは、プロセッサ・サイクルが従来のI/Oの2回のコンテキスト・スワップを実行する必要性、I/Oスレッドをスリーブ状態にし、その後、そのI/Oスレッドを再ディスパッチするための操作を実行する必要性、およびI/O割込みの必要性を回避する。同期入出力操作は、同期入出力プロセスによって実行されることが可能であり、ホストから一次ストレージ・コントローラへの高速データ転送プロセスに対応することが可能である。
【0048】
同期入出力プロセスの厳密なパフォーマンス要件に起因して、同期入出力プロセスは、ストレージ・コントローラにおいて書込みを実行するための以前の機構に見られる、書込みごとに1回の書込み前割込み呼出しの標準の規則に違反する。同期入出力プロセスは、トラックに関して1回、書込み前割込みを呼び出し、次にそのトラックに複数回書き込むことが可能である。書込み前割込みのための現在の機構は、OOSビットマップ(標準OOSビットマップと呼ばれる)またはCRビットマップ(標準CRビットマップと呼ばれる)においてビットを設定する。同期機構は、いずれのトラックを一次ストレージ・コントローラから二次ストレージ・コントローラにコピーすべきかを判定すべくOOSビットマップを使用する。同期入出力プロセスは、同期入出力プロセスによって実行される高速の書込みのためにトラック・アクセスを確保し、確保されたトラック・アクセスを、長い時間にわたってトラックの同期入出力プロセスのグループに保つことが可能である。同期入出力プロセスが、これらのトラックのうちの1つに関してOOSビットを設定する時点に達した場合、設定されたOOSビットに対応するストレージ・ボリュームをコピーすることは、同期入出力プロセスがそのトラック・アクセスを解放するまで続けられ、このことは、比較的長い時間を要する可能性がある。このことが、ボリュームを二次ストレージ・コントローラに適時に同期する能力に影響を及ぼす。
【0049】
一部の実施形態において、書込みのために同期入出力プロセスによって確保されているトラックを識別すべく特別なデータ構造(同期入出力OOSビットマップと呼ばれる)がストレージ・コントローラによって提供され、同期操作は、同期操作が完了するまで、同期入出力OOSビットマップにおいて識別されるトラックを考慮することなしに、データの同期を実行すべく標準OOSビットマップを使用する。このことが、同期入出力プロセスの操作を完了する同期入出力プロセス時間をもたらす。その後、同期入出力プロセスが確保されたトラックを解放すると、同期入出力OOSビットマップから標準OOSビットマップにビットがコピーされ、標準OOSビットマップが、データの同期を完了させるために使用される。
【0050】
例示的な実施形態
図1は、一部の実施形態による、1つまたは複数のホスト104と、1つまたは複数のストレージ・デバイス106、108とに結合された一次ストレージ・コントローラ102を備え、同期入出力ベースの書込みが、1つまたは複数のホスト104から一次ストレージ・コントローラ102に対して行われる、コンピューティング環境100のブロック図を示す。
【0051】
一次ストレージ・コントローラ102は、1つまたは複数のホスト104が、一次ストレージ・コントローラ102によって保持される論理ストレージに対して入出力(I/O)操作を実行することを可能にする。論理ストレージに対応する物理ストレージは、ストレージ・デバイス106、108、または一次ストレージ・コントローラ102のキャッシュ110、あるいはその組合せの1つまたは複数に見出されてよい。
【0052】
一次ストレージ・コントローラ102において実行される同期プロセス112が、一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にストレージ・ボリュームのトラックをコピーするコピー操作を実行してよい。同期プロセス112は、遠隔コピー操作、すなわち、1つのストレージ・コントローラからのストレージ・ボリュームのトラックを別のストレージ・コントローラにコピーするコピー操作を実行しているものとして参照されてよい。一部の実施形態において、同期プロセス112は、ソフトウェアにおいて、ファームウェアにおいて、ハードウェアにおいて、またはその任意の組合せにおいて実施されてよい。同期プロセス112は、一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされるべきトラックを示す標準OOSビットマップ116を使用する。標準OOSビットマップの各ビットは、ストレージ・ボリュームのトラックに対応する。ビットが設定された(すなわち、1に割り当てられた)場合、対応するトラックが、データ同期のために一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされることになる。ビットが設定されない(すなわち、設定解除され、またはリセットされて、0に割り当てられる)場合、対応するトラックは、データ同期のために一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされなくてよい。
【0053】
一次ストレージ・コントローラ102、二次ストレージ・コントローラ114、および1つまたは複数のホスト104は、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、電話デバイス、ネットワーク機器、ブレード・コンピュータ、処理デバイス、コントローラ、その他などの、当技術分野において現在、知られているものを含む任意の適切な計算デバイスを備えてよい。一次ストレージ・コントローラ102、二次ストレージ・コントローラ114、および1つまたは複数のホスト104は、ストレージ・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネット、イントラネットなどの任意の適切なネットワークにおける要素であってよい。一部の実施形態において、一次ストレージ・コントローラ102、二次ストレージ・コントローラ114、および1つまたは複数のホスト104は、クラウド・コンピューティング環境における要素であってよい。
【0054】
一部の実施形態において、ホスト104は、バス・インターフェース[例えば、ポイント・ツー・ポイント光ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)インターフェース]118およびネットワーク・インターフェース120を介して一次ストレージ・コントローラ102に結合されてよい。ホスト104からの同期入出力操作は、バス・インターフェース118を介して実行されてよい。ホスト104からの従来のI/O操作は、ネットワーク・インターフェース120を介して実行されてよい。バス・インターフェース118は、ネットワーク・インターフェース120と比べて、I/Oのためのより高速のアクセス・チャネルを備えてよい。ExpEther技術などの、イーサネット(R)上でPCIeを可能にすべく、分散型PCIeスイッチなどの、PCIeエクステンダ・ケーブルもしくはPCIeエクステンダ構成要素を含め、バス・インターフェース118を拡張するさらなるバス・インターフェース技術が利用されてよい。ネットワーク・インターフェース120は、ホスト104を、ネットワーク・アダプタを介して、一次ストレージ・コントローラ102を含むネットワーク122に結合してよい。
【0055】
一次ストレージ・コントローラ102は、ホスト104から一次ストレージ・コントローラ102への同期入出力ベースの書込みの実行を可能にする同期入出力プロセス124を含む。一部の実施形態において、同期入出力プロセス124は、ソフトウェアにおいて、ファームウェアにおいて、ハードウェアにおいて、またはその任意の組合せにおいて実施されてよい。
【0056】
一部の実施形態において、ソフトウェアにおいて、ファームウェアにおいて、ハードウェアにおいて、またはその任意の組合せにおいて実施される書込み前割込みプロセス126が、一次ストレージ・コントローラ102において実行される。トラックに書込みを実行するために、プロセスが、書込み前割込みプロセス126を呼び出し、その後、トラックに書き込む。書込み前割込みプロセス126がプロセスによって呼び出されたとき、トラックが、そのプロセスのために確保される。
【0057】
同期入出力プロセス124以外のプロセスが、書込み前割込みプロセス126を呼び出し、その後、トラックに1回だけ迅速に書き込み、その後、トラックが解放される。しかし、同期入出力プロセス124は、同期入出力プロセス124によるトラックに対する最初の書込みよりかなり前から書込み前割込みプロセス126を呼び出してよい。さらに、書込み前割込みプロセス126を呼び出した後、同期入出力プロセス124は、トラックに対して複数の書込みを実行してよい。したがって、同期入出力プロセス124は、トラックを、そのトラックに書き込むことなしに相当な時間にわたって確保してよく、またはトラックを、そのトラックに対して複数の書込みを実行することによって、相当な時間にわたって確保してよい。このため、同期入出力プロセス124は、トラックを、そのトラックに書き込むことを予期して確保するが、トラックを確保した直後にトラックに実際に書き込まなくてよい。
【0058】
以前の機構において、同期入出力プロセス124が、書込み前割込みプロセス126を呼び出すことによってトラックを確保したとき、同期プロセス112は、確保されたトラックが同期入出力プロセス124によって解放されるまで、確保されたトラックが位置するストレージ・ボリュームのいずれのトラックもコピーすることができない。それ故、同期入出力プロセス124によって実行される書込みは、同期プロセス112の効率的な動作に干渉する。
【0059】
一部の実施形態において、同期入出力プロセス124によって実行される書込みによって同期プロセス112の効率的な動作にもたらされる干渉を回避すべく、同期入出力OOSビットマップ128が、一次ストレージ・コントローラ102に保持される。同期入出力OOSビットマップ128は、トラックごとに1ビットを有し、同期入出力プロセス124によって書き込まれるトラックが設定され(すなわち、1に割り当てられ)、これらのトラックに関する対応するビットが、標準OOSビットマップ116において設定解除される(すなわち、0に割り当てられる)。
【0060】
同期入出力プロセス124が同期入出力OOSビットマップ128においてトラックを解放すると、同期入出力OOSビットマップ128において対応するビットが設定解除され、次に、標準OOSビットマップ116においてそのトラックに対応するビットが設定される。次に、同期プロセス112が、一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にそのトラックをコピーする。
【0061】
したがって、
図1は、同期入出力プロセス124が書き込んでよいストレージ・ボリュームのトラックを示す同期入出力OOSビットマップ128を保持することによって、同期プロセス112が効率的に動作することが可能であり、一次ストレージ・コントローラ102からのストレージ・ボリュームのトラックを二次ストレージ・コントローラ114に同期させることができる、一部の実施形態を示す。
【0062】
図2は、一部の実施形態による、標準OOSビットマップ116だけが使用され、同期入出力OOSビットマップ128は使用されない場合の同期プロセスに対する同期入出力プロセスの干渉を示すフローチャート200を示す。
図2のフローチャートに示される操作は、一次ストレージ・コントローラ102において実行されてよい。
【0063】
制御は、同期入出力プロセス124がNのトラックを確保するブロック202から始まり、ここで、Nは、1つまたは複数であってよい数である。例えば、一部の実施形態において、Nは、10であってよい。同期入出力プロセス124が、Nのトラックに関するトラック・アクセスを確実にし、Nのトラックのセットのトラックごとに書込み前割込みプロセス126を呼び出す(ブロック204において)。書込み前割込みプロセス126が、標準OOSビットマップ116において(または標準CRビットマップにおいて)Nのトラックのそれぞれに対応するビットを設定する(ブロック206において)。
【0064】
ブロック206から、制御は、同期入出力プロセス124がNのトラックに書き込むブロック208に進む。この書込みは、相当な期間の後に行われてよく、または相当な期間にわたって続いてよく、ここで、一部の実施形態において、その相当な期間は、10秒を超えていてよく、数分または数時間にまで延びることも可能である。Nのトラックに対する書込みの完了の後、同期入出力プロセス124が、それらのNのトラックを解放し(ブロック210において)、標準OOSビットマップ116における対応するビットを設定解除する。
【0065】
図2において、参照符号212は、同期入出力プロセス124が、ブロック202においてストレージ・ボリュームのNのトラックに関するトラック・アクセスを行う場合、同期プロセス112による一次ストレージ・コントローラ102からのストレージ・ボリューム全体のすべてのトラックの二次ストレージ・コントローラ114への転送が停止されることを示す。同期入出力プロセス124がそれらのNのトラックを解放する(ブロック210において)まで、それらのNのトラック、またはストレージ・ボリュームの他のいずれのトラックも、二次ストレージ・コントローラ114に転送されない。同期入出力プロセス124がNのトラックを解放した後、ストレージ・ボリュームのトラックが二次ストレージ・コントローラに転送されてよい(参照符号214を介して示されるとおり)。それ故、同期入出力プロセス124によるNのトラックの確保から解放までの間の時間にわたって、同期プロセス112は、それらのNのトラックが位置するストレージ・ボリュームのいずれのトラックに対しても遠隔コピー操作を実行することができない。
【0066】
図3は、一部の実施形態による、標準OOSビットマップ116に加えて同期入出力OOSビットマップ128を使用することによって同期入出力プロセス124による同期プロセス112に対するパフォーマンス影響を回避することを示すフローチャート300を示す。
図3のフローチャートに示される操作は、一次ストレージ・コントローラ102において実行されてよい。
【0067】
制御は、同期入出力プロセス124がNのトラックを確保するブロック302から始まり、ここで、Nは、1つまたは複数であってよい数である。例えば、一部の実施形態において、Nは、10であってよい。同期入出力プロセス124が、Nのトラックに関するトラック・アクセスを確実にし、Nのトラックのセットのトラックごとに書込み前割込みプロセス126を呼び出す(ブロック304において)。書込み前割込みプロセス126が、同期入出力OOSビットマップ128においてNのトラックのそれぞれに対応するビットを設定し(ブロック306において)、標準OOSビットマップ116におけるビットを設定解除する。
【0068】
ブロック306から、制御は、同期入出力プロセス124がNのトラックに書き込むブロック308に進む。この書込みは、相当な期間の後に行われてよく、または相当な期間にわたって続いてよく、ここで、一部の実施形態において、その相当な期間は、10秒を超えていてよく、数分または数時間にまで延びることも可能である。Nのトラックに対する書込みの完了の後、同期入出力プロセス124が、それらのNのトラックを解放し(ブロック310において)、Nのトラックに対応するビットが、同期入出力OOSビットマップ128において設定解除され、標準OOSビットマップ116において設定される。
【0069】
図3において、参照符号312は、同期入出力プロセス124が、ブロック302においてストレージ・ボリュームのNのトラックに関するトラック・アクセスを行う場合、同期プロセス112による一次ストレージ・コントローラ102からのストレージ・ボリューム全体のトラックの二次ストレージ・コントローラ114への転送が停止されないことを示す。それらのNのトラック以外の他のトラックは、それらのNのトラックに対応するビットが標準OOSビットマップ116において設定されないので、同期プロセスによって処理されてよい。しかし、同期入出力プロセス124がNのトラックを解放する(ブロック310において)まで、それらのNのトラックは、二次ストレージ・コントローラ114に転送されない(参照符号314を介して示されるとおり)。それ故、同期入出力プロセス124によるNのトラックの確保から解放までの間の時間にわたって、同期プロセス112は、それらのNのトラックが位置するストレージ・ボリュームの任意のトラック(それらのNのトラック以外の)に対して遠隔コピー操作を実行することができる。
【0070】
図4は、一部の実施形態による、書込み前割込みプロセス126によって実行される操作を示すフローチャート400を示す。
図4のフローチャートに示される操作は、一次ストレージ・コントローラ102において実行されてよい。
【0071】
制御は、書込み前割込みプロセス126が実行され、別のプロセスによって呼び出されるブロック402から始まる。書込み前割込みプロセス126は、いずれのプロセスがその呼出しを行ったかを判定する(ブロック404において)。書込み前割込みプロセス126が同期入出力プロセス124によって呼び出されている場合(分岐406を介して示されるとおり)、書込み前割込みプロセス126は、参照符号408を介して示されるとおり、同期入出力OOSビットマップ128および標準OOSビットマップ116を更新し、ここで、更新は、
図3のブロック306における操作による。
【0072】
書込み前割込みプロセス126が同期プロセス112によって呼び出されている場合(分岐410を介して示されるとおり)、書込み前割込みプロセス126は、参照符号412を介して示されるとおり、標準OOSビットマップ116を更新し、ここで、更新は、非同期入出力プロセスによってトラック上で実行されるように要求された書込みに対応する標準OOSビットマップ116におけるトラックに対応するビットを設定する。
【0073】
したがって、
図1~
図4は、標準OOSビットマップ116に加えて、同期入出力プロセス124に対応する同期入出力OOSビットマップ128を使用することによって、同期プロセス112のパフォーマンスが既存の機構よりも向上させられる、一部の実施形態を示す。
【0074】
図5は、同期入出力プロセス124が存在する状態で一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にデータを整合性のあるようにコピーすることをサポートするグローバル・ミラー・プロセス(ミラーリング・プロセス)504をサポートする、一次ストレージ・コントローラ102における強化を示す一部の実施形態のブロック
図500を示す。
図5における操作は、一次ストレージ・コントローラ102において実行されてよい。
【0075】
図5において、一次ストレージ・コントローラ102は、一次ストレージ・コントローラ102において実行されるグローバル・ミラー・プロセス504を含む。同期入出力プロセスのない既存の機構において、グローバル・ミラー・プロセス504は、一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にデータを整合性のあるようにコピーする。データの整合性のあるコピーを実行すべく、標準OOSビットマップ116に加えて、標準変更記録(CR)ビットマップ506が、一次ストレージ・コントローラ102において保持される。既存の機構において、標準OOSビットマップ116は、現在の整合性グループに関してコピーされるべきトラックを示し、標準CRビットマップ506は、次の整合性グループに関してコピーされるべきトラックを示す。既存の機構において、標準OOSビットマップ116を使用することによって現在の整合性グループがコピーされているときにトラック上の新たな書込みが受信されたとき、これらのトラックは、二次ストレージ・コントローラ114にコピーされるべき次の整合性グループに入ることになるので、これらのトラックに対応するビットが標準CRビットマップ506において設定される。現在の整合性グループがコピーされると、標準CRビットマップ506に記憶されていた次の整合性グループをコピーするために、標準CRビットマップ506は標準OOSビットマップ116に切り替わる。
【0076】
しかし、同期入出力プロセス124が存在する状態において、同期入出力ベースの書込みが、
図1~
図4に示される実施形態において同期プロセスが影響を受けたのと同一の理由でパフォーマンス影響をもたらす可能性があるので、既存の機構は、問題を生じる。そのようなパフォーマンス影響を回避すべく、次の整合性グループに関して同期入出力プロセス124によって書き込まれるトラックを示す同期入出力CRビットマップ508が保持される。標準CRビットマップ506は、非同期入出力プロセスによって書き込まれるトラックを示すことを続ける。
【0077】
一部の実施形態において、同期入出力プロセス124が、同期入出力CRビットマップ508において同期入出力プロセス124によって書き込まれるものとして示されるトラックを解放したとき、同期入出力CRビットマップ508は、グローバル・ミラー・プロセス504によって次の整合性グループに関するデータをコピーするために標準CRビットマップ506とマージされる。
【0078】
したがって、
図5は、同期入出力プロセス124が存在する状態でグローバル・ミラー・プロセスが効率的に動作し、同期入出力CRビットマップ508が、現在の整合性グループがコピーされている間、同期入出力プロセス124によって書き込まれるトラックを示すべく保持される、一部の実施形態を示す。
【0079】
図6は、一部の実施形態による、同期入出力プロセスと同期プロセスの間の競合を低減する操作を示すフローチャート600を示す。
図6に示される操作は、一次ストレージ・コントローラ102において実行されてよい。
【0080】
制御は、一次ストレージ・コントローラ102から二次ストレージ・コントローラ114への遠隔コピー操作を介してデータの同期が実行されるブロック602から始まる。ここにおいて、遠隔コピー操作が進行中である間、一次ストレージ・コントローラ102において、バス・インターフェース118とネットワーク・インターフェース120の両方を介してホスト104から入出力(I/O)要求が受信される。第1のデータ構造116(例えば、OOSビットマップ116)が、データの同期のために一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされるべきネットワーク・インターフェース120を介して書き込まれるトラックの識別情報を記憶する(ブロック604において)。第2のデータ構造128(例えば、同期入出力OOSビットマップ128)が、データの同期のために一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされるべきバス・インターフェース118を介して書き込まれるトラックの識別情報を記憶する(ブロック606において)。一部の実施形態において、第2のデータ構造128は、バス・インターフェース118を介した書込みを実行するのに使用される同期入出力プロセス124によって確保されたトラックを識別する。
【0081】
ブロック606から、制御は、データの同期のための操作が、最初、第2のデータ構造128を考慮することなしに第1のデータ構造116を使用することによって一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にトラックをコピーするように実行されるブロック608に進む。同期入出力プロセス124が第2のデータ構造128において識別されるトラックを解放したと判定することに応答して、第2のデータ構造が第1のデータ構造にコピーされ、データの同期が、第1のデータ構造を使用することによって完了させられる。
【0082】
図7は、一部の実施形態による、同期入出力プロセス124とグローバル・ミラー・プロセス504の間の競合を低減する操作を示すフローチャート700を示す。
図7における操作は、一次ストレージ・コントローラ102において実行されてよい。
【0083】
制御は、同期入出力プロセス124がバス・インターフェース118を使用することによって書き込むブロック702から始まる。ここにおいて、遠隔コピー操作が、グローバル・ミラー・プロセス504において実行され、第1のデータ構造116は、標準同期外れ(OOS)ビットマップであり、第2のデータ構造128は、同期入出力OOSビットマップである。現在の整合性グループが、標準OOSビットマップ116を使用することによって一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされている間、同期入出力変更記録(CR)ビットマップ508が、同期入出力プロセス124を介した書込みの標示を記憶する(ブロック704において)。現在の整合性グループが、標準OOSビットマップ116を使用することによって一次ストレージ・コントローラ102から二次ストレージ・コントローラ114にコピーされている間、標準CRビットマップ506が、非同期入出力プロセスを介した書込みの標示を記憶する(ブロック706において)。
【0084】
ブロック706から、制御は、同期入出力プロセス124が、同期入出力CRビットマップ508において示されるトラックを解放することに応答して、同期入出力CRビットマップ508が、次の整合性グループをコピーするために使用すべく標準CRビットマップ506とマージされるブロック708に進む。
【0085】
したがって、
図1~
図7は、同期入出力同期外れビットマップ128または同期入出力変更記録ビットマップ508あるいはその両方を使用することによって、一次ストレージ・コントローラ102と二次ストレージ・コントローラ114の間のコピー操作のためのプロセスの実行中に同期入出力プロセス124が実行されるとき、競合が低減される、一部の実施形態を示す。
【0086】
クラウド・コンピューティング環境
クラウド・コンピューティングは、最小限の管理労力、またはサービス・プロバイダとの最小限のやりとりしか伴わずに迅速にプロビジョニングされ、リリースされることが可能である構成可能なコンピューティング・リソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス)の共有されるプールに対する好都合な、オンデマンドのネットワーク・アクセスを可能にするためのモデルである。
【0087】
次に
図8を参照すると、例示的なクラウド・コンピューティング環境50が示される。図示されるとおり、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)もしくはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信相手とすることが可能な、1つまたは複数のクラウド・コンピューティング・ノード10を備える。ノード10は、互いに通信することが可能である。ノード10は、前段で説明されるプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなどの、1つまたは複数のネットワークにおいて、物理的に、または仮想でグループ化されてよい(図示せず)。このことは、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することを可能にする。
図8に示されるコンピューティング・デバイス54A~Nのタイプは、単に例示的であることが意図されること、ならびにコンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続、あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信することが可能である(例えば、ウェブ・ブラウザを使用して)ことが理解される。
【0088】
次に
図9を参照すると、クラウド・コンピューティング環境50(
図8)によって提供される機能抽象化層のセットが示される。
図9に示される構成要素、層、および機能は、単に例示的であることが意図され、本発明の実施形態は、これらに限定されないことをあらかじめ理解されたい。
【0089】
ハードウェアおよびソフトウェア層60が、ハードウェア構成要素と、ソフトウェア構成要素とを含む。ハードウェア構成要素の例は、メインフレーム、一例において、IBM(R)zSeries(R)システム、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ、一例において、IBM(R)pSeries(R)システム、IBM(R)xSeries(R)システム、IBM(R)BladeCenter(R)システム、ストレージ・デバイス、ならびにネットワークおよびネットワーキング構成要素を含む。ソフトウェア構成要素の例は、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例において、IBM(R)WebSphere(R)アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例において、IBM(R)DB2(R)データベース・ソフトウェアを含む(IBM(R)、zSeries(R)、pSeries(R)、xSeries(R)、BladeCenter(R)、WebSphere(R)、およびDB2(R)は、世界中の多くの管轄区域において登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である)。
【0090】
仮想化層62が、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントが提供されることが可能な抽象化層を提供する。
【0091】
一実施例において、管理層64が、後段で説明される機能を提供してよい。リソース・プロビジョニングが、クラウド・コンピューティング環境内でタスクを実行するのに利用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。測定および価格設定が、クラウド・コンピューティング環境内でリソースが利用されるにつれての費用追跡、およびこれらのリソースの消費に関する料金請求またはインボイス送付を提供する。一実施例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを備えてよい。セキュリティが、クラウド・コンシューマおよびタスクに関する身元検証、ならびにデータおよびその他のリソースに関する保護を提供する。ユーザ・ポータルが、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理が、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割当ておよび管理を提供する。サービス・レベル合意(SLA)計画および履行が、SLAにより将来の要求が予期されるクラウド・コンピューティング・リソースの事前準備および調達を提供する。
【0092】
作業負荷層66が、クラウド・コンピューティング環境が利用されてよい機能の例を提供する。この層から提供されてよい作業負荷および機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ解析処理、トランザクション処理、および
図1~
図8に示される同期入出力プロセスとコピー・プロセスの間の競合低減68を含む。
【0093】
さらなる実施形態の詳細
説明される操作は、ソフトウェア、ファームウェア、ハードウェア、またはその任意の組合せを作り出すべく標準のプログラミング技法またはエンジニアリング技法、あるいはその両方を使用して方法、装置、またはコンピュータ・プログラム製品として実施されてよい。したがって、実施形態の態様は、完全にハードウェアの実施形態の形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む)の形態、または「回路」、「モジュール」、もしくは「システム」として本明細書においてすべてが一般的に参照されることが可能なソフトウェア態様とハードウェア態様を組み合わせる実施形態の形態をとってよい。さらに、実施形態の態様は、コンピュータ・プログラム製品の形態をとってよい。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態の態様を実行させるためのコンピュータ可読プログラム命令を担持する1つ(または複数の)コンピュータ可読記憶媒体を含んでよい。
【0094】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持し、記憶することが可能な有形のデバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストは、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を通じて伝送される電気信号などの一過性の信号そのものであると解釈されるべきではない。
【0095】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、伝送光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶されるようにコンピュータ可読プログラム命令を転送する。
【0096】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++、もしくはそれに類するものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくはそれに類似したプログラミング言語などの従来の手続き型プログラミング言語を含め、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されても、一部がユーザのコンピュータ上で実行されても、スタンドアロンのソフトウェア・パッケージとして実行されても、一部がユーザのコンピュータ上で、かつ一部が遠隔コンピュータ上で実行されても、全体が遠隔コンピュータもしくは遠隔サーバの上で実行されてもよい。全体が遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、または接続は、外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)。一部の実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本実施形態の態様を実行するために、電子回路をカスタマイズするようにコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することが可能である。
【0097】
本実施形態の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることが可能であることが理解されよう。
【0098】
これらのコンピュータ可読プログラム命令は、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製造品を備えるべく、特定の様態で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せを導くことができるコンピュータ可読記憶媒体に記憶されてもよい。
【0099】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ上、他のプログラマブル装置上、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0100】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、命令のモジュール、セグメント、または部分を表すことが可能である。一部の代替の実装形態において、ブロックに記載される機能は、図に記載される順序を外れて生じてよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてよく、またはそれらのブロックが、ときとして、関与する機能に依存して、逆の順序で実行されてよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施されることが可能であることにも留意されたい。
【0101】
図10は、一部の実施形態による一次ストレージ・コントローラ102、二次ストレージ・コントローラ114、ホスト104、または他の計算デバイスに含められてよい一部の要素を示すブロック図である。システム1000は、一部の実施形態において、少なくともプロセッサ1004を含むことが可能な回路1002を含んでよい。また、システム1000は、メモリ1006(例えば、揮発性メモリ・デバイス)、およびストレージ1008を含んでもよい。ストレージ1008は、不揮発性メモリ・デバイス(例えば、EEPROM、ROM、RPOM、フラッシュ、ファームウェア、プログラマブル・ロジック、その他)、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ、その他を含んでよい。ストレージ1008は、内部ストレージ・デバイス、付加されたストレージ・デバイス、またはネットワーク・アクセス可能なストレージ・デバイス、あるいはその組合せを備えてよい。システム1000は、メモリ1006にロードされて、プロセッサ1004または回路1002によって実行されることが可能なコード1012を含むプログラム・ロジック1010を含んでよい。一部の実施形態において、コード1012を含むプログラム・ロジック1010は、ストレージ1008に記憶されてよい。他の一部の実施形態において、プログラム・ロジック1010は、回路1002において実施されてよい。システム1000における構成要素のうちの1つまたは複数は、バスを介して、または他の結合もしくは接続1014を介して通信してよい。したがって、
図10は、その他の要素とは別個のプログラム・ロジック1010を示すが、プログラム・ロジック1010は、メモリ1006または回路1002、あるいはその両方において実施されてよい。
【0102】
一部の実施形態は、コンピューティング・システムにコンピュータ可読コードを組み込む人または自動化された処理によってコンピューティング命令を展開するための方法を対象としてよく、ここで、コードは、コンピューティング・システムと組み合わさって、説明される実施形態の動作を実行することを可能にされる。
【0103】
「或る実施形態」、「実施形態」、「いくつかの実施形態」、「その実施形態」、「それらの実施形態」、「1つまたは複数の実施形態」、「一部の実施形態」、および「一実施形態」という術語は、特に明記しない限り、「本発明の1つまたは複数の(ただし、すべてではない)実施形態」を意味する。
【0104】
「含む」、「備える」、「有する」という術語、およびその変形は、特に明記しない限り、「含むが、限定されない」を意味する。
【0105】
アイテムの列挙されるリストは、特に明記しない限り、それらのアイテムのいずれも、またはすべてが相互排他的であることを暗示しない。
【0106】
「或る」および「その」という術語は、特に明記しない限り、「1つまたは複数の」を意味する。
【0107】
互いに通信状態にあるデバイスは、特に明記しない限り、互いに継続的に通信状態にある必要はない。さらに、互いに通信状態にあるデバイスは、直接に通信しても、1つまたは複数の仲介役を通じて間接的に通信してもよい。
【0108】
互いに通信状態にあるいくつかの構成要素を有する実施形態について説明することは、すべてのそのような構成要素が要求されることを暗示しない。それどころか、様々なオプションの構成要素が、本発明の多種多様な可能な実施形態を例示すべく説明される。
【0109】
さらに、プロセス・ステップ、方法ステップ、アルゴリズム、またはそれに類するものは、順番に説明されることが可能であるものの、そのようなプロセス、方法、およびアルゴリズムは、代わりの順序で機能するように構成されてよい。すなわち、説明されるステップのいずれの順序もしくは順番も、それらのステップがその順番で実行されるべき要件を必ずしも示すものではない。本明細書において説明されるプロセスのステップは、実際的である任意の順序で実行されてよい。さらに、一部のステップは、同時に実行されてよい。
【0110】
単一のデバイスまたは製品について本明細書において説明される場合、単一のデバイス/製品の代わりに複数のデバイス/製品が(それらが協働するか否かにかかわらず)使用されてよいことが直ちに明白であろう。同様に、複数のデバイスまたは製品について(それらが協働するか否かにかかわらず)本明細書において説明される場合、その複数のデバイスまたは製品の代わりに単一のデバイス/製品が使用されてよいこと、または示される数のデバイスもしくはプログラムの代わりに異なる数のデバイス/製品が使用されてよいことが直ちに明白であろう。デバイスの機能またはフィーチャ、あるいはその両方は、代替として、そのような機能/フィーチャを有するものとして明示的に説明されない他の1つまたは複数のデバイスによって実現されてよい。それ故、本発明の他の実施形態は、そのデバイスそのものを含まなくてもよい。
【0111】
図に示されていることが可能な少なくとも一部の動作は、一部のイベントが或る順序で生じることを示す。代替の実施形態において、一部の動作は、異なる順序で実行されてよく、変形されてよく、または除去されてよい。さらに、前述した論理にステップが追加されてよく、それでも、説明される実施形態に準拠する。さらに、本明細書において説明される動作は、順番に生じてよく、または一部の動作は、並行に処理されてよい。さらに、動作は、単一の処理ユニットによって実行されても、分散された複数の処理ユニットによって実行されてもよい。
【0112】
本発明の様々な実施形態の以上の説明は、例示および説明の目的で提示されてきた。以上の説明は、網羅的であることも、開示される形態そのものに本発明を限定することも意図していない。以上の教示に鑑みて多くの変形形態および変更形態が可能である。本発明の範囲は、この詳細な説明によってではなく、添付の特許請求の範囲によって限定されることが意図される。以上の詳細、例示、およびデータは、本発明の構成の製造および使用の完全な説明を与える。本発明の範囲を逸脱することなく、本発明の多くの実施形態が作成されることが可能であるので、本発明は、添付の特許請求の範囲に存する。