(57)【特許請求の範囲】
【請求項１】
・ストレージ仮想化エンジンによって、第１のタイプのストレージにマップするように構成されたアクティブエリアと、第２のタイプのストレージにマップするように構成された非アクティブエリアに、仮想ボリュームをセグメント化するステップであって、前記第２のタイプのストレージは、ホスト機器に関連したデータを含むように構成され、前記第１のタイプのストレージは、前記ホスト機器に関連したデータに対応するポイントインタイムイメージを含むように構成されており、前記第１のタイプのストレージは、前記第２のタイプのストレージよりも速いタイプであり、前記第１のタイプのストレージと前記第２のタイプのストレージは、共にアクティブ状態にあり、及び、前記ストレージ仮想化エンジンは、前記第１のタイプのストレージと前記第２のタイプのストレージ内の格納場所に前記仮想ボリュームをマップするように構成される、ステップと、
・前記第１のタイプのストレージ内のスペースの一部を、書き込み動作または読み取り動作の間に、前記ホスト機器を通じた対応する書き込み要求または読み取り要求に応答して、キャッシュメモリとして機能するように割り当てるステップと、
・前記読み取り要求がフォールトするような読み取り要求に応答して「不許可」状態を示すために、前記ストレージ仮想化エンジンによって、前記第１のタイプのストレージ内のポイントインタイムイメージに関連した読み取り専用マップを初期化するステップと、
・前記ストレージ仮想化エンジンによって、前記読み取り要求のフォールトに続いて、マッピングがアクティブエリアか非アクティブエリアかには関係なく、前記第１のタイプのストレージと前記第２のタイプのストレージの両方から、いずれか１つに存在するデータの適切な部分をコピーすることを可能にするステップと、
・前記書き込み要求または前記読み取り要求への応答に関連した待ち時間を、前記第１のタイプのストレージのみを通じて前記書き込み動作または前記読み取り動作を実行することにより削減するステップであって、前記データの適切な部分が前記第２のタイプのストレージまたは前記第１のタイプのストレージのいずれからコピーされるかには関係なく、前記書き込み動作は、前記第２のタイプのストレージに書き込まれるデータを、前記第1のタイプのストレージにキャッシュすることを含み、前記読み取り動作は、前記データの適切な部分を、前記第１のタイプのストレージ内の適切なキャッシュ場所に取り出すことで、前記キャッシュ場所から読み取ることを含む、ステップと、を備える、方法。
【請求項２】
さらに、前記ストレージ仮想化エンジンを通じて、前記第１のタイプのストレージに定期的に、前記ホスト機器に関連したデータに対応するポイントインタイムイメージを作成するステップを備える、請求項１に記載の方法。
【請求項３】
さらに、前記第１のタイプのストレージにおける前記ポイントインタイムイメージをデータアクセスの新しい順序に配置するステップを備える、請求項１に記載の方法。
【請求項４】
さらに、前記ポイントインタイムイメージによって占有されたメモリがしきい値を超えた際に、前記第２のタイプのストレージへ、前記ホスト機器に関連した最も以前にアクセスしたデータに対応する少なくとも１つのポイントインタイムイメージを再同期するステップおよび移送するステップのうちの１つのステップを備える、請求項３に記載の方法。
【請求項５】
さらに、前記適切なデータの一部を、前記読み取り動作の完了に成功した後で、元の場所に解放するステップを備える、請求項１に記載の方法。
【請求項６】
さらに、第１のタイプのストレージにキャッシュされたデータを、前記第２のタイプのストレージに前記ホスト機器のアイドルサイクル中に書き込むステップを備える、請求項１に記載の方法。
【請求項７】
前記第１のタイプのストレージは、前記ホスト機器に関連したローカルストレージであり、前記第２のタイプのストレージは、前記ホスト機器に関連したリモートストレージである、請求項１に記載の方法。
【請求項８】
前記第１のタイプのストレージは、直接接続ディスクおよびローカルストレージアレイのうちの１つであり、前記第２のタイプのストレージは、直接接続ディスク、ローカルストレージアレイ、リモートのインターネットスモールコンピューターシステムインターフェイス（iSCSI)ボリュームおよびリモートオブジェクトストレージのうちの１つである、請求項７に記載の方法。
【請求項９】
前記ホスト機器は、コンピューターネットワークを介して前記第２のタイプのストレージに結合している、請求項７に記載の方法。
【請求項１０】
・ホスト機器に関連したデータに対応するポイントインタイムイメージを第１のタイプのストレージに格納するステップと、
・前記ホスト機器に関連したデータを、第２のタイプのストレージに格納するステップであって、前記第２のタイプのストレージは、前記第１のタイプのストレージより遅いタイプであり、前記第１のタイプのストレージと前記第２のタイプのストレージは、共にアクティブ状態にある、ステップと、
・前記ポイントインタイムイメージによって占有されたメモリがしきい値を超えた際に、前記第２のタイプのストレージへ、前記ホスト機器に関連した最も以前にアクセスしたデータに対応する少なくとも１つのポイントインタイムイメージを再同期するステップおよび移送するステップのうちの1つのステップと、
・ストレージ仮想化エンジンによって、前記第１のタイプのストレージにマップするように構成されたアクティブエリアと、前記第２のタイプのストレージにマップするように構成された非アクティブエリアに、仮想ボリュームをセグメント化するステップであって、前記ストレージ仮想化エンジンは、前記第１のタイプのストレージと前記第２のタイプのストレージ内の格納場所に、前記仮想ボリュームをマップするように構成される、ステップと、
・書き込み動作または読み取り動作の間に、前記ホスト機器による対応する書き込み要求または読み取り要求に応答して、前記第１のタイプのストレージ内のスペースの一部を、キャッシュメモリとして機能するように割り当てるステップと、
・前記読み取り要求がフォールトするような読み取り要求に応答して「不許可」状態を示すために、前記ストレージ仮想化エンジンによって、前記第１のタイプのストレージ内のポイントインタイムイメージに関連した読み取り専用マップを初期化するステップと、
・前記ストレージ仮想化エンジンによって、前記読み取り要求のフォールトに続いて、マッピングがアクティブエリアか非アクティブエリアかには関係なく、前記第１のタイプのストレージと前記第２のタイプのストレージの両方から、いずれか１つに存在するデータの適切な部分をコピーすることを可能にするステップと、
・前記書き込み動作または読み取り動作を前記第１のタイプのストレージのみを通じて実行するステップであって、前記データの適切な部分が前記第２のタイプのストレージまたは前記第１のタイプのストレージのいずれからコピーされるかには関係なく、前記書き込み動作は、前記第２のタイプのストレージに書き込むデータを前記第１のタイプのストレージにおいてキャッシュすることを含み、前記読み取り動作は、前記データの適切な部分を、前記第１のタイプのストレージの適切なキャッシュ場所へ取り出すことで、前記キャッシュ場所から読み取ることを含む、ステップと、を備える、方法。
【請求項１１】
前記ホスト機器は、コンピューターネットワークを介して前記第２のタイプのストレージに結合している、請求項１０に記載の方法。
【請求項１２】
さらに、前記第１のタイプのストレージにおける前記ポイントインタイムイメージをデータアクセスの新しい順序に配置するステップを備える、請求項１０に記載の方法。
【請求項１３】
さらに、前記適切なデータの一部を、前記読み取り動作の完了に成功した後で、元の場所に解放するステップを備える、請求項１０に記載の方法。
【請求項１４】
さらに、前記第１のタイプのストレージにキャッシュされたデータを、前記第２のタイプのストレージに前記ホスト機器のアイドルサイクル中に書き込むステップを備える、請求項１０に記載の方法。
【請求項１５】
前記第１のタイプのストレージは、前記ホスト機器に関連したローカルストレージであり、前記第２のタイプのストレージは、前記ホスト機器に関連したリモートストレージである、請求項１０に記載の方法。
【請求項１６】
・書き込み要求と読み取り要求を生成するように構成されたホスト機器と、
・前記ホスト機器に関連した第１のタイプのストレージと、
・前記ホスト機器に関連した第２のタイプのストレージであって、前記第２のタイプのストレージは、前記第１のタイプのストレージよりも遅いタイプであり、前記第１のタイプのストレージと前記第２のタイプのストレージは、共にアクティブ状態にある、第２のタイプのストレージと、及び、
・前記第１のタイプのストレージにマップするように構成されたアクティブエリア、および、前記第２のタイプのストレージにマップするように構成された非アクティブエリアに、前記第１のタイプのストレージと前記第２のタイプのストレージとの仮想ボリュームセグメント化を実行するように構成された、ストレージシステムにおけるストレージ管理に関連したストレージ仮想化エンジンであって、前記第２のタイプのストレージは、前記ホスト機器に関連したデータを含むように構成され、前記第１のタイプのストレージは、前記ホスト機器に関連したデータに対応するポイントインタイムイメージを含むように構成される、ストレージ仮想化エンジンと、を備えるストレージシステムであって、
前記ホスト機器のユーザーは、書き込み動作または読み取り動作の間に、前記ホスト機器による前記書き込み要求および前記読み取り要求に応答して、前記第１のタイプのストレージ内のスペースの一部を、キャッシュメモリとして機能するように割り当てるように構成され、
前記ストレージ仮想化エンジンは、
・前記読み取り要求がフォールトするような読み取り要求に応答して「不許可」状態を示すために、前記第１のタイプのストレージ内のポイントインタイムイメージに関連した読み取り専用マップを初期化するステップと、
・前記読み取り要求のフォールトに続いて、マッピングがアクティブエリアか非アクティブエリアかには関係なく、前記第１のタイプのストレージと前記第２のタイプのストレージの両方から、いずれか１つに存在する前記データの適切な部分をコピーすることを可能にするステップと、
・前記第1のタイプのストレージのみによって前記書き込み動作または前記読み取り動作の実行を可能にすることによって、対応する前記書き込み要求または前記読み取り要求への応答に関連した待ち時間を削減するステップと、を含むように構成され、
前記書き込み動作中に、前記第２のタイプのストレージに書き込まれるデータは、前記第１のタイプのストレージにキャッシュされ、前記読み取り動作中に、前記第２のタイプのストレージ及び前記第１のタイプのストレージのいずれのタイプのストレージからコピーされるかには関係なく、前記データの適切な部分が、前記第１のタイプのストレージ内の適切なキャッシュ場所へ取り出すことで、前記キャッシュ場所から読み取られる、ストレージシステム。
【請求項１７】
さらに、前記ストレージ仮想化エンジンを通じて、前記第１のタイプのストレージに定期的に、前記ホスト機器に関連したデータに対応するポイントインタイムイメージを作成するステップを備える、請求項１６に記載のストレージシステム。
【請求項１８】
前記ストレージ仮想化エンジンは、さらに、前記第１のタイプのストレージ内のポイントインタイムイメージをデータアクセスの新しい順序で配置するように構成される、請求項１６に記載のストレージシステム。
【請求項１９】
前記ストレージ仮想化エンジンが、さらに、前記ポイントインタイムイメージによって占有されたメモリがしきい値を超えた際に、前記第２のタイプのストレージへ、前記ホスト機器に関連した最も以前にアクセスしたデータに対応する少なくとも１つのポイントインタイムイメージを再同期するステップおよび移送するステップのうちの１つのステップを備える、請求項１８に記載のストレージシステム。
【請求項２０】
前記適切なデータの一部は、前記読み取り動作の完了が成功した後に、その元の場所に解放される、請求項１６に記載のストレージシステム。
【請求項２１】
前記ホスト機器のアイドルサイクル中に、前記第１のタイプのストレージにキャッシュされたデータは、前記第２のタイプのストレージに書き込まれる、請求項１６に記載のストレージシステム。
【請求項２２】
前記第１のタイプのストレージは、前記ホスト機器に関連したローカルストレージであり、前記第２のタイプのストレージは、前記ホスト機器に関連したリモートストレージである、請求項１６に記載のストレージシステム。
【請求項２３】
前記第１のタイプのストレージは、直接接続ディスクおよびローカルストレージアレイの１つであり、前記第２のタイプのストレージは、直接接続ディスク、ローカルストレージアレイ、リモートiSCSIボリューム、およびリモートオブジェクトストレージの１つである、請求項２２に記載のストレージシステム。
【請求項２４】
前記ストレージシステムは、さらに、前記第２のタイプのストレージを前記ホスト機器に結合するように構成されたコンピューターネットワークを含む、請求項２２に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、一般的にストレージシステムに関するものであり、とりわけ、ストレージシステムにおける書き込み要求および／または読み取り要求への応答に関連した待ち時間削減の方法、装置、および／またはシステムに関するものである。
【背景技術】
【０００２】
ストレージシステムは、ストレージプールに格納されたエンティティ（例えば、組織）に属する１人または複数のユーザーに関連したデータを含むことが可能である。データの一部は、上記１人または複数のユーザーによって頻繁にアクセスされる場合があり、データの別の部分は、上記１人または複数のユーザーによってアクセスされる頻度が低い場合がある。さらにストレージシステムは、上記１人または複数のユーザーに関連したデータをバックアップするように構成される場合もある。
【０００３】
アクセスの頻度が高いデータが、低い性能を提供するハードウェアに格納されている場合、読み取り/書き込みの要求に対処するための応答時間が増加する場合がある。さらに、低い性能を提供するハードウェアがその最大容量に近く格納されているデータを含む場合、応答時間はさらに増加され得る。ある想定例では、ハードウェアが、クラウドストレージ環境でのサービスとして提供されるリモートストレージと関連した場合、上記１人または複数のユーザーは読み取り/書き込みのタイムアウトに遭遇し、人間の労力の無駄および／または生産性の損失につながり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここに開示されるのは、ストレージシステムにおける書き込み要求および／または読み取り要求への応答に関連した待ち時間削減の方法、装置および／またはシステムである。
【課題を解決するための手段】
【０００５】
１つの局面においては、方法は、ストレージ仮想化エンジンによって、第１のタイプのストレージにマップするように構成されたアクティブエリアと、第２のタイプのストレージにマップするように構成された非アクティブエリアに、仮想ボリュームをセグメント化するステップを含む。第２のタイプのストレージは、ホスト機器に関連したデータを含むように構成され、第１のタイプのストレージは、ホスト機器に関連したデータに対応するポイントインタイムイメージを含むように構成されている。第１のタイプのストレージは、第２のタイプのストレージよりも高い性能を提供し、ストレージ仮想化エンジンは、第１のタイプのストレージおよび第２のタイプのストレージ内の格納場所に仮想ボリュームをマップするように構成されている。
【０００６】
この方法は、また、ホスト機器を通じて対応する書き込み要求および／または読み取り要求に対する応答における書き込み動作および／または読み取り動作の間に、キャッシュメモリとして機能する、第１のタイプのストレージ内の一部のスペースを割り当てるステップと、第１のタイプのストレージを通じて、対応する書き込み動作および／または読み取り動作を実行することを通じて書き込み要求および／または読み取り要求への応答に関連した待ち時間を削減するステップとを含む。書き込み動作は、第２のタイプのストレージに書き込むデータを第１のタイプのストレージでキャッシュすることを含み、読み取り動作は、第１のタイプのストレージにキャッシュされた最近書き込まれたデータまたは第２のタイプのストレージからのデータの一部を、そこから読み取る第１のタイプのストレージ内の適切なキャッシュ場所へ取り出すことを含む。
【０００７】
もう一つの局面においては、方法は、第１のタイプのストレージにおいてホスト機器に関連したデータに対応するポイントインタイムイメージを格納するステップと、第２のタイプのストレージにおいてホスト機器に関連したデータを格納するステップとを含む。第２のタイプのストレージは、第１のタイプのストレージに比べて低い性能を提供する。この方法は、また、ポイントインタイムイメージで占有されたメモリがしきい値を超えた際に、第２のタイプのストレージに、ホスト機器と関連した最も以前にアクセスされたデータに対応する１つ以上のポイントインタイムイメージを再同期、または移送するステップと、ストレージ仮想化エンジンによって、第１のタイプのストレージにマップするように構成されたアクティブエリアと、第２のタイプのストレージにマップするように構成された非アクティブエリアに、仮想ボリュームをセグメント化するステップとを含む。
【０００８】
ストレージ仮想化エンジンは、第１のタイプのストレージと第２のタイプのストレージ内の格納場所に仮想ボリュームをマップするように構成される。さらに、この方法は、ホスト機器を通じて、対応する書き込み要求および／または読み取り要求に対する応答における書き込み動作および／または読み取り動作の間に、キャッシュメモリとして機能する、第１のタイプのストレージ内の一部のスペースを割り当てるステップと、第１のタイプのストレージを通じて、上記書き込み動作および／または読み取り動作を実行するステップとを含む。書き込み動作は、第２のタイプのストレージに書き込むデータを第１のタイプのストレージでキャッシュすることを含み、読み取り動作は、第１のタイプのストレージにキャッシュされた最近書き込まれたデータまたは第２のタイプのストレージからのデータの一部を、そこから読み取る第１のタイプのストレージ内の適切なキャッシュ場所へ取り出すことを含む。
【０００９】
更にもう一つの局面では、ストレージシステムは、書き込み要求および／または読み取り要求を生成するように構成されたホスト機器と、ホスト機器に関連した第１のタイプのストレージと、ホスト機器に関連した第２のタイプのストレージとを含む。第２のタイプのストレージは、第１のタイプのストレージよりも低い性能を提供する。このストレージシステムは、また、第１のタイプのストレージにマップするように構成されたアクティブエリアと、第２のタイプのストレージにマップするように構成された非アクティブエリアへの、第１のタイプのストレージと第２のタイプのストレージの仮想ボリュームセグメント化を実行するように構成されたストレージシステムにおけるストレージ管理に関連したストレージ仮想化エンジンを含む。第２のタイプのストレージは、ホスト機器に関連したデータを含むように構成され、第１のタイプのストレージは、ホスト機器に関連したデータに対応するポイントインタイムイメージを含むように構成されている。
【００１０】
ホスト機器のユーザーは、ホスト機器を通じて、対応する書き込み要求および／または読み取り要求に対する応答における書き込み動作および／または読み取り動作の間に、キャッシュメモリとして機能する、第１のタイプのストレージ内の一部のスペースを割り当てるように構成されている。ストレージ仮想化エンジンは、対応する書き込み要求および／または読み取り要求への応答に関連した待ち時間を減らすために、第１のタイプのストレージを通じて、書き込み動作および／または読み取り動作を実行することを可能にするように構成されている。書き込み動作中に、第２のタイプのストレージに書き込まれるデータは、第１のタイプのストレージにキャッシュされる。読み取り動作中には、第１のタイプのストレージでキャッシュされた最近書き込まれたデータ、または第２のタイプのストレージからのデータの一部は、そこから読み取る第１のタイプのストレージ内の適切なキャッシュ場所へ取り出される。
【００１１】
ここに開示されている方法およびシステムは、さまざまな局面を達成するために、いかなる手段をも使って実現することでき、機器によって実行された時に機器がここに開示されている動作のいずれかを実行することを引き起こす一連の命令を具体化する機械可読の媒体の形態において実行することが可能である。その他の特徴については、付属の図面と以下の詳細な説明により明らかとなる。
【図面の簡単な説明】
【００１２】
この発明の実施例は付属の図面において、例として示されるものであり、限定としてではない。図面においては類似した参照は類似の要素を示す。
【００１３】
【図１】１つ以上の実施例におけるストレージシステムの概略図である。
【図２】１つ以上の実施例における、分割された仮想ボリュームと、仮想ボリュームがマップされるストレージの種類とを示す図である。
【図３】１つ以上の実施例における、データの書き込みプロセスを示す図である。
【図４】１つ以上の実施例における、図３のデータの書き込みプロセスの後で、ライトバックキャッシュから適切なタイプのストレージへのデータの書き込みを示す図である。
【図５】１つ以上の実施例における、データ読み取りプロセスを示す図である。
【図６】１つ以上の実施例における、図２のイメージデータボリュームに関連した、最も以前に使われた（LRU)キャッシュの実現に関連する動作を詳細に示すフローチャートである。
【図７】１つ以上の実施例における、図１のストレージ システムの書き込み要求および／または読み取り要求に関連した待ち時間軽減の方法に関連する動作を詳細に示すプロセスフロー図である。
【図８】１つ以上の実施例における、図１のストレージシステムで書き込み動作および／または読み取り動作の実行に関連する動作を詳細に示すプロセスのフロー図である。
【発明を実施するための形態】
【００１４】
本願の実施例におけるその他の特徴については、付属の図面と以下の詳細な説明により明らかとなる。
【００１５】
ここに開示されるのは、ストレージ システムにおける書き込み要求および／または読み取り要求への応答に関連した待ち時間削減の方法、装置および／またはシステムである。本願の実施例は、特定の例によって記述されてはいるが、様々な実施例のより広範な趣旨と範囲から逸脱することなく、様々な修正および変更をこれらの実施例に行なうことができることは明らかであろう。
【００１６】
図１は、１つ以上の実施例における、ストレージシステム１００を示す。１つ以上の実施例において、ストレージシステム１００は、それに関連したデータを、１つ以上の「ストレージプール」に外部的に格納および／またはバックアップさせるように構成された１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）を含み得る。１つ以上の実施例においては、上記１つ以上のストレージプールの各々は、ソリッドステートドライブ（SSD)に基づくもの、ハードディスクドライブ（HDD）に基づくもの（HDDへのアクセスは、例えば、ファイバーチャネル（FC）プロトコル、シリアルアタッチドスモールコンピューターシステムインターフェイス（SAS）プロトコル、または、シリアルアドバンストテクノロジーアタッチメント（SATA）プロトコルに基づく)、リモートのインターネットスモールコンピューターシステムインターフェイス（iSCSI）ボリュームに基づくもの、リモートオブジェクトストレージに基づくもの、またはこれらの組み合わせであり得る。１つ以上の実施例においては、前記のドライブは、直接接続ディスク１０４またはローカルストレージアレイ１０６であり得る。
【００１７】
図１は、説明のための例としてドライブベースのストレージを構成する直接接続ディスク１０４とローカルストレージアレイ１０６の両方を示す。１つ以上の実施例においては、直接接続ディスク１０４およびローカルストレージアレイ１０６は、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）と同じ場所にあり得る。図１は、また、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）からリモートの場所にあるものとして、リモートiSCSIボリューム１０８とリモートオブジェクトストレージ１１０の両方を示す。１つ以上の実施例においては、リモートオブジェクトストレージ１１０は、ブロック機器としてのその表示を可能にするそれに関連したエミュレーションドライバーを必要とすることがある。
【００１８】
１つ以上の実施例においては、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）は、それと関連したリモートストレージ（例えば、リモートiSCSIボリューム１０８、リモートオブジェクトストレージ１１０）とコンピューターネットワーク１２０を介して通信するように構成することができる。１つ以上の実施例においては、コンピューターネットワーク１２０は、ストレージエリアネットワーク（SAN）、ローカルエリアネットワーク（LAN）、ワイドエリアネットワーク（WAN）、例えばインターネットなどの通信リンクを使用する仮想プライベート ネットワーク（VPN）、またはこれらの任意の組み合わせであり得る。１つ以上の実施例においては、１つ以上ホスト機器（例えば、ホスト機器１０２１−Ｎ）に関連したストレージ（例えば、直接接続ディスク１０４、ローカルストレージアレイ１０６）は、ネットワーク接続ストレージ（NAS）機器、または直接接続ストレージ（DAS）機器として１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）と直接通信することができる。
【００１９】
図１の実施例においては、ストレージ仮想化エンジン１３２は、コンピューターネットワーク１２０に結合することが可能であり、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）に関連した記憶域をフレキシブルに、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８、およびリモートオブジェクトストレージ１１０および／またはストレージアプリケーションに割り当てるように構成することが可能である。LSI(R)ストレージ仮想化マネージャーTM（SVMTM）は、ストレージ仮想化エンジン１３２の例であり得る。１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、ストレージシステム１００におけるストレージプールや、そこにおける仮想ボリュームの割り当ての一元管理を可能にすることができる。１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、コンピューターネットワーク１２０と結合した物理装置を監視できることがある。１つ以上の実施例においては、物理装置は、ホスト機器（例えば、１つ以上のホスト機器１０２１−Ｎ）、および／または、１つ以上のストレージプールとして構成されたストレージ（例えば、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８、および／または、リモートオブジェクトストレージ１１０）であり得る。本願にて用いられるストレージ仮想化エンジン１３２という用語は、ハードウェアまたはソフトウェアを意味し得る。
【００２０】
したがって、図１の実施例においては、ストレージ仮想化エンジン１３２は、それと関連したエージェントを通じてコンピューターネットワーク１２０に結合した、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８、および／またはリモートオブジェクトストレージ１１０を監視するように構成することが可能である。１つの実施例においては、ストレージ仮想化エンジン１３２と関連したエージェントは、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）にインストールされたグラフィカルユーザーインターフェイス（GUI）のツールであり得る。１つ以上の実施例においては、すべてのホスト機器（例えば、ホスト機器１０２１−Ｎ）ではないが、ある台数のホスト機器に、エージェントをインストールし得る。別の例では、エージェントは、ストレージシステム１００の管理者に関連付けられるように構成されたホスト機器（例えば、ホスト機器１０２１−Ｎ）にのみインストールされ得る。さらにもう一つの例では、エージェントは、ストレージシステム１００がその一部であるところのクラウドコンピューティング環境に関連したストレージサービスのカスタマーとして構成された１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）にインストールされ得る。
【００２１】
１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、ストレージシステム１００に関連したストレージプール、および／または、仮想ボリュームの割り当ての一元管理を可能にするように構成され得る。さらに、１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、それと関連したホスト機器（例えば、ホスト機器１０２１−Ｎ）からボリューム情報を検索することと、読み取り/書き込み要求に応答して、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）から入出力（I/O）をそれと関連したストレージ機器に直接ルーティングすることとを可能にするように構成され得る。
【００２２】
１つ以上の実施例においては、１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）は、ネットワークファイルシステム（NFS）プロトコル、共通インターネットファイルシステム（CIFS）プロトコル、およびiSCSIプロトコルを含む（ただしそれらに限定されない）プロトコルに関連したデータセットをサポートすることが可能である。図１の実施例においては、コンピューターネットワーク１２０は、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８およびリモートオブジェクトストレージ１１０と互換性のある適切なコントローラーを所有し得る。たとえば、独立ディスクの周辺コンポーネントインターコネクト（PCI）の重複配列（RAID)コントローラーは、直接接続ディスク１０４と互換性があり、FC/iSCSIコントローラーは、ローカルストレージアレイ１０６および／またはリモートiSCSIボリューム１０８と互換性があり得る。
【００２３】
上記で説明したように、リモートオブジェクトストレージ１１０は、それに関連したエミュレーションドライバーを有し得る。１つの実施例においては、エミュレーションドライバと、リモートオブジェクトストレージ１１０を含むクラウドと関連した、アプリケーションプログラミングインターフェイス（API）とを使用して、ローカルのブロック機器をエミュレートすることができる。従来のブロックストレージがクラウドに関連している別の実施例においては、クラウドと関連したベンダーはiSCSI論理ユニット番号（LUN）を有効化し、そのための適切なソフトウェアをインストールすることが可能である。
【００２４】
ストレージ仮想化エンジン１３２は、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８およびリモートオブジェクトストレージ１１０と関連したストレージアレイコントローラー上で実行するように構成することも可能であるということは明らかである。上述の修正は、実施例の範囲内にある。
【００２５】
１つ以上の実施例においては、１つ以上のストレージプール（例えば、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８、リモートオブジェクトストレージ１１０）と関連したストレージアレイの仮想ボリュームのセグメント化は、ストレージ仮想化エンジン１３２を介して行うことが可能である。１つ以上の実施例においては、仮想ボリュームは、ストレージプール（例えば、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８、リモートオブジェクトストレージ１１０）の１つ以上の構成要素の容量から派生することが可能である。１つ以上の実施例においては、仮想ボリュームのセグメント化に続いて、ストレージプール（例えば、直接接続ディスク１０４、ローカルストレージアレイ１０６、リモートiSCSIボリューム１０８、リモートオブジェクトストレージ１１０）の１つ以上の構成要素の格納場所への仮想ボリュームのマッピングを行うことができる。
【００２６】
１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、仮想ボリュームを、ストレージプールに関連した第１のタイプのストレージにマップするように構成されたアクティブエリアと、ストレージプールに関連した第２のタイプのストレージにマップするように構成された非アクティブエリアとに分割するように構成することが可能である。１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、基本データボリュームがストレージプールの１構成要素上に存在し得るとともに、イメージデータボリュームがストレージプールの別の構成要素上に存在し得るようにストレージプールに関連したデータボリュームを分割するように構成することが可能である。１つ以上の実施例においては、そこにエージェントをインストールした１つ以上のホスト機器（例えば、ホスト機器１０２１−Ｎ）におけるユーザーは、ストレージプールの上記１構成要素、および／または、上記別の構成要素を選択することができる。１つ以上の実施例においては、イメージデータボリュームは、基本データボリュームに関連したポイントインタイムイメージ（例えば、スナップショット）を含み得る。
【００２７】
図２は、１つ以上の実施例による、上記の分割された仮想ボリューム２０２と、仮想ボリューム２０２がマップされたタイプのストレージ（例えば、第１のタイプのストレージ２０４、第２のタイプのストレージ２０６）とを示す。１つ以上の実施例においては、上記に説明したように、仮想ボリューム２０２は、アクティブエリア２１２と非アクティブエリア２１４に分割されることができ、ストレージプールに関連したデータボリューム（図示せず)を、イメージデータボリューム２２２と基本データボリューム２２４に分割することが可能である。１つ以上の実施例においては、基本データボリューム２２４は、ホスト機器（例えば、ホスト機器１０２１−Ｎ）と関連したデータを含むことが可能である。上述のように、１つ以上の実施例においては、イメージデータボリューム２２２は、ホスト機器（例えば、ホスト機器１０２１−Ｎ）と関連したデータに対応するポイントインタイムイメージを含むことが可能である。
【００２８】
上述のように、１つ以上の実施例においては、アクティブエリア２１２を第１のタイプのストレージ２０４にマップすることができ、非アクティブエリア２１４を第２のタイプのストレージ２０６にマップすることが可能である。１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、ストレージプールの第１のタイプのストレージ２０４でのイメージデータボリューム２２２の記憶と、第２のタイプのストレージ２０６での基本データボリューム２２４の記憶を可能にするように構成され得る。１つ以上の実施例においては、第１のタイプのストレージ２０４に常駐のイメージデータボリューム２２２は、データボリュームに関連したポイントインタイムイメージを格納するように構成することが可能である。１つ以上の実施例においては、上述のように、前記の格納場所は、ユーザーがアクセスすることができる。
【００２９】
１つ以上の実施例においては、ホスト機器（例えば、ホスト機器１０２１−Ｎ）のユーザーは、キャッシュの目的のためにそこに関連したローカルのストレージのスペースをいくらか割り当てることができる。リモートストレージは、クラウドサービスとしてユーザーに提供され得る。したがって、１つ以上の実施例においては、第１のタイプのストレージ２０４（イメージデータボリューム２２２を含む)は、キャッシュの目的に割り当てられたいくらかのスペースを含めることができ、第２のタイプのストレージ２０６は、リモートストレージであり得る。１つ以上の実施例においては、ユーザーは、それに関連したホスト機器（例えば、ホスト機器１０２１−Ｎ）からのデータ書き込み要求を開始することができる。図３は、１つ以上の実施例による、データ書き込み処理を図示する。１つ以上の実施例において、図３に示すように、ホスト機器（例えば、ホスト機器１０２１−Ｎ）で発生したデータ書き込み要求（例えば、書き込み要求３０２）がアクティブエリア２１２に関連付けられ得るとき、書き込み動作は、第１のタイプのストレージ２０４上で実行することができる。１つ以上の実施例においては、第１のタイプのストレージ２０４が第２のタイプのストレージ２０６よりも高い性能に関連している場合には、（例えば、ユーザーによって）そこに割り当てられたキャッシュは、ライトバックキャッシュとして利用されることが可能である。
【００３０】
図３に示されているように、１つ以上の実施例においては、書き込み動作（例えば、書き込み３０４）は、高い性能を持つ第１のタイプのストレージ２０４上で実行することが可能である。したがって、１つ以上の実施例においては、すべての書き込み要求（例えば、書き込み要求３０２）は、書き込み動作（例えば、書き込み３０４）が高速ストレージ（例えば、第１のタイプのストレージ２０４）上で実行されることによって、迅速に処理されることができる。１つ以上の実施例においては、キャッシュする目的のための高速ストレージ上のスペースをユーザー割り当てすることによって、最近書き込まれたデータに簡単にアクセスすることができる。
【００３１】
１つ以上の実施例においては、上述のように、第１のタイプのストレージ２０４は、ライトバックキャッシュを含むことが可能である。１つ以上の実施例においては、最近書き込まれたデータは、ライトバックキャッシュに格納され得て、そこを通じてアクセスすることが可能である。１つ以上の実施例においては、ホスト機器（例えば、ホスト機器１０２１−Ｎ）のアイドルサイクル中に、最近書き込まれたデータは、第２のタイプのストレージ２０６（例えば、基本データボリューム２２４）に書き込まれ得る。１つ以上の実施例においては、第２のタイプのストレージ２０６がリモートストレージであり、ホスト機器がコンピューターネットワーク１２０を介してそれと通信するように構成されている場合に、最近書き込まれたデータは、コンピュータネットワーク１２０に関連した状況（例えば、帯域幅の可用性が高い、トラフィックが少ない等、最適な状況において）も考慮に入れ、第２のタイプのストレージ２０６に書き込むことができる。１つ以上の実施例においては、ライトバックキャッシュにおける最近書き込まれたデータのポイントインタイムイメージは、第２のタイプのストレージ２０６に書き込む前に、ストレージ仮想化エンジン１３２を通過させることが可能である。図４は、第２のタイプのストレージ２０６へのライトバックキャッシュからのデータの書き込みを示す。
【００３２】
１つ以上の実施例においては、上述のように、ホスト機器（例えば、ホスト機器１０２１−Ｎ）のユーザーは、キャッシュの目的のためにそれに関連したローカルのストレージ内にスペースをいくらか割り当てることができる。リモートストレージは、ユーザーに提供されるクラウドサービスであり得る。したがって、１つ以上の実施例においては、第１のタイプのストレージ２０４（イメージデータボリューム２２２を含む）は、キャッシュの目的に割り当てられたいくらかスペースを含めることができ、第２のタイプのストレージ２０６は、リモートストレージであり得る。１つ以上の実施例においては、ユーザーは、それに関連したホスト機器（例えば、ホスト機器１０２１−Ｎ）からデータ読み込み要求を開始することができる。
【００３３】
図５は、１つ以上の実施例による、データ読み取りプロセスを図示する。１つ以上の実施例においては、少なくとも読み取り要求（例えば、読み取り要求５０２）への応答として、「読み取り専用」の代わりに、「不許可」状態を示すイメージデータボリューム２２２に格納されているポイントインタイムイメージに関連したマップを初期化するように、ストレージ仮想化エンジン１３２を構成することが可能である。したがって、１つ以上の実施例においては、読み取り要求５０２は、上述の「不許可」状態のためにフォールトすることがあり得る。１つ以上の実施例においては、読み取り要求５０２は、基本データボリューム２２４からの読み取り（例えば、読み取り５０４）、または、イメージデータボリューム２２２のキャッシュに最近書き込まれたデータの読み取りを行なうように指示されることができる。１つ以上の実施例においては、読み取り要求がフォールトすると、ストレージ仮想化エンジン１３２は、上述の部分が仮想ボリューム２０２のアクティブエリア２１２にマッピングされるか、非アクティブエリア２１４にマッピングされるかにかかわらず、基本データボリューム２２４またはイメージデータボリューム２２２からのデータの適切な部分のコピーを可能にするように構成され得る。
【００３４】
次に、１つ以上の実施例においては、データの適切な部分がコピーされる基本データボリューム２２４またはイメージデータボリューム２２２内のスペースは、使用されていないとマークされ得る。したがって、１つ以上の実施例においては、データの適切な部分が基本データボリューム２２４からコピーされる場合、データの適切な部分が基本データボリューム２２４から第１のタイプのストレージ２０４内のキャッシュ場所へ取り出され得る。１つ以上の実施例においては、データの適切な部分がイメージデータボリューム２２２からコピーされる場合、データの適切な部分がイメージデータボリューム２２２から第１のタイプのストレージ２０４の適切なキャッシュ場所へ取り出され得る。１つ以上の実施例においては、ポイントインタイムイメージは、ストレージ仮想化エンジン１３２を通じて作成／データアクセスの最近度の順で、イメージデータボリューム２２２内で上から下へ配列することが可能である。最も最近アクセスされたデータは、イメージデータボリューム２２２内で一番上の場所に対応し、最も以前にアクセスされたデータは、イメージデータボリューム２２２内で一番下の場所に対応する。
【００３５】
１つ以上の実施例においては、したがって、キャッシュに割り当てられた場所は読み取りキャッシュとして利用することが可能である。１つ以上の実施例においては、読み取られるデータの場所（例えば、基本データボリューム２２４、イメージデータボリューム２２２の下の部分）に関わらず、データは、イメージデータボリューム２２２の一番上に置かれて読み込まれることが可能である。したがって、１つ以上の実施例においては、ストレージプール上で最近読み込まれたエリア（例えば、データ部分)は、第２のタイプのストレージ２０６よりも高い性能を持ち得る、第１のタイプのストレージ２０４の性能をもって、アクセスすることが可能である。１つ以上の実施例においては、同じエリアへ繰り返しアクセスすると、リードキャッシュによって更に性能が強化され得る。１つ以上の実施例においては、第１のタイプのストレージ２０４においてキャッシュされた最近書き込まれたデータの部分、または第２のタイプのストレージ２０６からのデータは、読み取り動作の完了が成功した後、元の場所に解放することができる。
【００３６】
したがって、１つ以上の実施例においては、ストレージプール内の最近アクセスされたエリアは、その場所に関係なく第１のタイプのストレージ２０４へマップすることができる。１つ以上の実施例においては、ポイントインタイムイメージが頻繁に（例えば、定期的に）作成される場合には、イメージデータボリューム２２２の一番下の場所は、最も以前に使用されたデータのポイントインタイムイメージを保持することが可能であり、イメージデータボリューム２２２の一番上の場所は、最も最近使用されたデータのポイントインタイムイメージを保持することが可能である。したがって、１つ以上の実施例においては、下部のポイントインタイムイメージに関連した削除（または再同期）は、イメージデータボリューム２２２から最も以前のデータを破棄することになり得る。１つ以上の実施例においては、イメージデータボリューム２２２内の破棄されたポイントインタイムイメージに関連したデータは、基本データボリューム２２４において、そこに対応する元のデータに再同期することが可能である。
【００３７】
１つ以上の実施例においては、最も以前のポイントインタイムイメージは、イメージデータボリューム２２２において削除される代わりに、基本データボリューム２２４に移送することができる。図６は、１つ以上の実施例による、イメージデータボリューム２２２に関連した、最も以前に使われた（LRU）キャッシュの実行に関連する動作を詳細に示すフローチャートを示す。１つ以上の実施例においては、動作６０２は、データのポイントインタイムイメージを頻繁に（例えば、定期的に）イメージデータボリューム２２２内に作成することを伴うことがあり得る。１つ以上の実施例においては、動作６０４は、イメージデータボリューム２２２に関連したキャッシュメモリがしきい値を超えるかどうかをチェックすることを伴うことがあり得る。１つ以上の実施例において、しきい値を超える場合は、動作６０６は、基本データボリューム２２４内の空きスペースに下部のポイントインタイムイメージを再同期/移送することを伴うことがあり得る。１つ以上の実施例においては、しきい値を超えない場合は、制御は、動作６０２に進むことが可能である。
【００３８】
したがって、１つ以上の実施例においては、２つのストレージプール上のボリュームを、高速ストレージ容量（例えば、第１のタイプのストレージ２０４）がキャッシュの目的に利用され得る一方で、低速ストレージ容量（例えば、第２のタイプのストレージ２０６）がほとんどのデータを格納するために利用され得るように、割り当てる（例えば、ホスト機器（例えば、ホスト機器１０２１−Ｎ）におけるユーザーによって)ことができる。１つ以上の実施例においては、上記の手法を取り入れたストレージシステム１００における読み取り要求と書き込み要求に関連した待ち時間を削減することができる。１つ以上の実施例においては、仮想ボリューム２０２は、あるストレージスペース上のストレージ仮想化エンジン１３２を通じて規定され、ポイントインタイムイメージは、より良い性能を持つ別のストレージスペースに格納されることがあり得る。したがって、１つ以上の実施例においては、ポイントインタイムイメージに関連したストレージは、データの残りの部分に対するキャッシュとして利用されることが可能である。１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、性能を向上するために、上述のキャッシュにおけるデータの出入りを管理することができる。
【００３９】
図７は、１つ以上の実施例による、ストレージシステム１００における書き込み要求および／または読み取り要求への応答に関連した待ち時間を削減する方法に伴う動作を詳細に示すプロセスフロー図を示す。１つ以上の実施例においては、動作７０２は、仮想ボリューム２０２を第１のタイプのストレージ２０４にマップするように構成されたアクティブエリア２１２と、第２のタイプのストレージ２０６にマップするように構成された非アクティブエリア２１４とに、ストレージ仮想化エンジン１３２を通じてセグメント化することを含む。１つ以上の実施例においては、第２のタイプのストレージ２０６は、ホスト機器に関連したデータを含むように構成することができ、第１のタイプのストレージ２０４は、ホスト機器に関連したデータに対応するポイントインタイムイメージを含むように構成することができる。１つ以上の実施例においては、第１のタイプのストレージ２０４は、第２のタイプのストレージ２０６よりも高い性能を提供することができ、また、ストレージ仮想化エンジン１３２は、仮想ボリューム２０２を第１のタイプのストレージ２０４と第２のタイプのストレージ２０６における格納場所にマップするように構成することができる。
【００４０】
１つ以上の実施例においては、動作７０４は、ホスト機器を通じた対応する書き込み要求および／または読み取り要求への応答としての書き込み動作および／または読み取り動作の際に、第１のタイプのストレージ２０４におけるスペースの一部をキャッシュメモリとして動作するように割り当てることを含み得る。１つ以上の実施例においては、動作７０６は、第１のタイプのストレージ２０４を通じた対応する書き込み動作および／または読み取り動作の実行を通じて、書き込み要求および／または読み取り要求への応答に関連した待ち時間を削減することを含み得る。
【００４１】
１つ以上の実施例においては、書き込み動作は、第１のタイプのストレージ２０４において、第２のタイプのストレージ２０６に書き込まれるデータをキャッシュすることを含み、読み取り動作は、第１のタイプのストレージ２０４でキャッシュされた最近書き込まれたデータまたは第２のタイプのストレージ２０６からのデータの一部を、そこから読み取る第１のタイプのストレージ２０４内の適切なキャッシュ場所へ取り出すことを含む。
【００４２】
図８は、１つ以上の実施例による、ストレージシステム１００における読み取り動作および／または書き込み動作を実行することに伴う動作を詳細に示すプロセスフロー図を示す。１つ以上の実施例においては、動作８０２は、第１のタイプのストレージ２０４に、ホスト機器に関連したデータに対応するポイントインタイムイメージを格納することを伴い得る。１つ以上の実施例においては、動作８０４は、第２のタイプのストレージ２０６にホスト機器に関連したデータを格納することを伴い得る。１つ以上の実施例においては、第２のタイプのストレージ２０６は、第１のタイプのストレージ２０４よりも低い性能を提供することがある。
【００４３】
１つ以上の実施例においては、動作８０６は、ポイントインタイムイメージによって占有されたメモリがしきい値を超えた際に、第２のタイプのストレージ２０６に、ホスト機器と関連した最も以前にアクセスされたデータに対応する１つ以上のポイントインタイムイメージを再同期、または、移送することを伴い得る。１つ以上の実施例においては、動作８０８は、ストレージ仮想化エンジン１３２によって、第１のタイプのストレージ２０４にマップするように構成されたアクティブエリア２１２と、第２のタイプのストレージ２０６にマップするように構成された非アクティブエリア２１４に、仮想ボリューム２０２をセグメント化することを伴い得る。１つ以上の実施例においては、ストレージ仮想化エンジン１３２は、第１のタイプのストレージ２０４と第２のタイプのストレージ２０６内の格納場所へ、仮想ボリューム２０２をマップするように構成することが可能である。
【００４４】
１つ以上の実施例においては、動作８１０は、第１のタイプのストレージ２０４内の一部のスペースを、ホスト機器を通じた対応する書き込み要求および／または読み取り要求への応答としての書き込み動作および／または読み取り動作の際に、キャッシュメモリとして動作するように割り当てることを伴い得る。次に、１つ以上の実施例においては、動作８１２は、第１のタイプのストレージ２０４を通じて、書き込み動作および／または読み取り動作を実行することを伴い得る。１つ以上の実施例においては、書き込み動作は、第１のタイプのストレージ２０４において、第２のタイプのストレージ２０６に書き込まれるデータをキャッシュすることを含み、読み取り動作は、第１のタイプのストレージ２０４でキャッシュされた最近書き込まれたデータまたは第２のタイプのストレージ２０６からのデータの一部、そこから読み取る第１のタイプのストレージ２０４内の適切なキャッシュ場所へ取り出すことを含む。
【００４５】
本願の実施例は、特定の例によって記述されてはいるが、様々な実施例の広範な趣旨と範囲から逸脱することなく、様々な修正および変更をこれらの実施例に行なうことができることは明らかであろう。また、例えば、ここに記述された様々な機器およびモジュールは、ハードウェア回路（例えば、CMOSベースのロジック回路)、ファームウェア、ソフトウェア、または、ハードウェア、ファームウェアおよびソフトウェアの任意の組み合わせ（例えば、機械読み取り可能なメディアで具体化された）を使って、有効化し、動作することができる。
【００４６】
さらに、ここで開示された様々な動作、プロセス、および方法は、機械読み取り媒体および／またはデータ処理システム（例えば、コンピュータ装置）と互換性のあるマシンアクセス可能な媒体において具体化され得るとともに、任意の順序で実行することが可能である（たとえば様々な動作を実現するための手段を用いることを含む）ことが理解されるであろう。したがって、明細書および図面は、限定的なものとしてではなく、例示的ものとしてみなされるべきである。
【符号の説明】
【００４７】
１００  ストレージシステム、１０２１〜１０２N  ホスト機器、１０４  直接接続ディスク、１０６  ローカルストレージアレイ、１０８  リモートＩＳＣＳＩ ボリューム、１１０  リモートオブジェクトストレージ、１３２  ストレージ仮想化エンジン、２０２  仮想ボリューム、２０４  第１のタイプのストレージ、２０６  第２のタイプのストレージ、２１２  アクティブエリア、２１４  非アクティブエリア、２２２  イメージデータボリューム、２２４  基本データボリューム。
【図１】
0005813375.tif 000002
【図２】
0005813375.tif 000003
【図３】
0005813375.tif 000004
【図４】
0005813375.tif 000005
【図５】
0005813375.tif 000006
【図６】
0005813375.tif 000007
【図７】
0005813375.tif 000008
【図８】
0005813375.tif 000009