(57)【要約】【課題】クラウド・ストレージをランクとして使用するストレージ・システムを提供する。【解決手段】クラウド・ストレージをランクとして利用するためのコンピュータ実装方法は、クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・アドレスをグループ化して、１つまたは複数のクラウド・ストレージ・デバイス上の割り当てられたストレージ空間から１つまたは複数の仮想ローカル・ランクを作成することと、１つまたは複数の仮想ローカル・ランクに対するローカル・データ・アクセス要求を、クラウド・インターフェイス用に構成されたクラウド・データ・アクセス要求に変換することと、クラウド・インターフェイスを介してそれらのクラウド・データ・アクセス要求を１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを含む。【選択図】図４
2020533678.tif 000002
【特許請求の範囲】
【請求項１】
クラウド・ストレージをランクとして利用するためのコンピュータ実装方法であって、前記方法が、
クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、
前記割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、
前記仮想ローカル・アドレスをグループ化して、前記１つまたは複数のクラウド・ストレージ・デバイス上の前記割り当てられたストレージ空間から１つまたは複数の仮想ローカル・ランクを作成することと、
前記１つまたは複数の仮想ローカル・ランクに対するローカル・データ・アクセス要求を、前記クラウド・インターフェイス用に構成されたクラウド・データ・アクセス要求に変換することと、
前記クラウド・インターフェイスを介して前記クラウド・データ・アクセス要求を前記１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを含んでいる、コンピュータ実装方法。
【請求項２】
前記クラウド・データ・アクセス要求を伝達することが、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てることをさらに含んでおり、
前記第１のサービス・レベルが、前記第２のサービス・レベルおよび前記第３のサービス・レベルより大きい待ち時間および小さいスループットを有しており、前記第２のサービス・レベルが、前記第３のサービス・レベルより大きい待ち時間および小さいスループットを有している、請求項１に記載のコンピュータ実装方法。
【請求項３】
サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、前記第１のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てることをさらに含んでいる、請求項２に記載のコンピュータ実装方法。
【請求項４】
サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、前記第２のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てることをさらに含んでいる、請求項２に記載のコンピュータ実装方法。
【請求項５】
サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、前記第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てることをさらに含んでいる、請求項２に記載のコンピュータ実装方法。
【請求項６】
前記仮想ローカル・アドレスをグループ化して１つまたは複数の仮想ローカル・ランクを作成することが、前記仮想ローカル・アドレスをグループ化して複数の仮想ローカル・ランクを作成することを含み、前記複数の仮想ローカル・ランクの各々が異なるサイズを有している、請求項１に記載のコンピュータ実装方法。
【請求項７】
ホスト・アダプタを１つまたは複数のホスト・デバイスに通信によって結合するように構成された１つまたは複数のポートを含んでいる前記ホスト・アダプタと、
プロセッサおよびメモリを備えているストレージ・コントローラであって、前記ホスト・アダプタに通信によって結合されている、前記ストレージ・コントローラと、
プロセッサおよびメモリを備えているデバイス・アダプタであって、前記ストレージ・コントローラに通信によって結合されている、前記デバイス・アダプタとを備えている、ストレージ・システムであって、
前記デバイス・アダプタが、複数のローカル・ストレージ・ドライブに通信によって結合された複数のポートと、ネットワークを介して複数のクラウド・ストレージ・デバイスに通信によって結合された少なくとも１つのネットワーク・ポートとをさらに含んでおり、
前記デバイス・アダプタおよび前記ストレージ・コントローラのうちの１つが、
前記クラウド・ストレージ・デバイスのうちの１つまたは複数でストレージ空間を割り当てることと、
前記割り当てられたストレージ空間を対応する仮想ローカル・アドレスに割り当てることと、
前記割り当てられたストレージ空間を１つまたは複数の仮想ローカル新磁気ディスク制御機構（ＲＡＩＤ）アレイに構成することと、
前記１つまたは複数の仮想ローカルＲＡＩＤアレイに対するローカル・データ・アクセス要求を、前記複数のクラウド・ストレージ・デバイスにアクセスするためのアプリケーション・プログラミング・インターフェイス（ＡＰＩ）の要件に従って構成されたクラウド・データ・アクセス要求に変換することとを実行するように構成された変換モジュールを実装するようにさらに構成されている、ストレージ・システム。
【請求項８】
前記変換モジュールが、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されており、
前記第１のサービス・レベルが、前記第２のサービス・レベルおよび前記第３のサービス・レベルより大きい待ち時間および小さいスループットを有しており、前記第２のサービス・レベルが、前記第３のサービス・レベルより大きい待ち時間および小さいスループットを有している、請求項７に記載のストレージ・システム。
【請求項９】
前記変換モジュールが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、前記第１のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項８に記載のストレージ・システム。
【請求項１０】
前記変換モジュールが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、前記第２のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項８に記載のストレージ・システム。
【請求項１１】
前記変換モジュールが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、前記第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項８に記載のストレージ・システム。
【請求項１２】
前記変換モジュールが、前記割り当てられたストレージ空間を複数の仮想ローカルＲＡＩＤアレイに構成するようにさらに構成され、前記複数の仮想ローカルＲＡＩＤアレイの各々が異なるサイズを有している、請求項７に記載のストレージ・システム。
【請求項１３】
前記デバイス・アダプタの前記ネットワーク・ポートがイーサネット（Ｒ）・ポートである、請求項７に記載のストレージ・システム。
【請求項１４】
コンピュータ可読プログラムが格納されているコンピュータ可読記憶媒体を備えているコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムが、プロセッサによって実行された場合に、前記プロセッサに、
クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、
前記割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、
前記仮想ローカル・アドレスをグループ化して、前記１つまたは複数のクラウド・ストレージ・デバイス上の前記割り当てられたストレージ空間から１つまたは複数の仮想ローカル新磁気ディスク制御機構（ＲＡＩＤ）アレイを作成することと、
前記１つまたは複数の仮想ローカルＲＡＩＤアレイに対するローカル・データ・アクセス要求を、前記クラウド・インターフェイス用に構成されたクラウド・データ・アクセス要求に変換することと、
前記クラウド・インターフェイスを介して前記クラウド・データ・アクセス要求を前記１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを実行させる、コンピュータ・プログラム製品。
【請求項１５】
前記コンピュータ可読プログラムが、前記プロセッサに、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てさせるようにさらに構成されており、
前記第１のサービス・レベルが、前記第２のサービス・レベルおよび前記第３のサービス・レベルより大きい待ち時間および小さいスループットを有しており、前記第２のサービス・レベルが、前記第３のサービス・レベルより大きい待ち時間および小さいスループットを有している、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
前記コンピュータ可読プログラムが、前記プロセッサに、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、前記第１のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てさせるようにさらに構成されている、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記コンピュータ可読プログラムが、前記プロセッサに、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、前記第２のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てさせるようにさらに構成されている、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
前記コンピュータ可読プログラムが、前記プロセッサに、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、前記第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てさせるようにさらに構成されている、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
前記コンピュータ可読プログラムが、前記プロセッサに、前記仮想ローカル・アドレスをグループ化して、複数の仮想ローカルＲＡＩＤアレイを作成させるようにさらに構成され、前記複数の仮想ローカルＲＡＩＤアレイの各々が異なるサイズを有している、請求項１４に記載のコンピュータ・プログラム製品。
【請求項２０】
前記コンピュータ可読プログラムが、前記プロセッサに、前記クラウド・インターフェイスのアプリケーション・プログラミング・インターフェイス（ＡＰＩ）の要件に従って、前記１つまたは複数の仮想ローカルＲＡＩＤアレイに対するローカル・データ・アクセス要求をクラウド・データ・アクセス要求に変換させるようにさらに構成されている、請求項１４に記載のコンピュータ・プログラム製品。
【請求項２１】
ネットワークを介して前記コンピューティング・デバイスを１つまたは複数のクラウド・ストレージ・デバイスに通信によって結合するように構成されたネットワーク・アダプタと、
データを格納するように構成されたストレージ媒体と、
前記ネットワーク・アダプタおよび前記ストレージ媒体に通信によって結合されたプロセッサとを備えているコンピューティング・デバイスであって、前記プロセッサが、
前記１つまたは複数のクラウド・ストレージ・デバイスに関連付けられたアプリケーション・プログラミング・インターフェイス（ＡＰＩ）を介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、
前記割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングするマップ・テーブルを生成して前記仮想ローカル・アドレスをグループ化し、前記１つまたは複数のクラウド・ストレージ・デバイス上の前記割り当てられたストレージ空間から１つまたは複数の仮想ローカル・ランクを作成することであって、前記マップ・テーブルが前記ストレージ媒体に格納されている、前記作成することと、
前記１つまたは複数の仮想ローカル・ランクに対するデータ・アクセス要求を、前記１つまたは複数のクラウド・ストレージ・デバイスに関連付けられた前記ＡＰＩ用に構成されたクラウド・データ・アクセス要求に変換することと、
前記クラウド・データ・アクセス要求を、前記１つまたは複数のクラウド・ストレージ・デバイスに関連付けられた前記ＡＰＩを介して前記１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを実行するように構成されている、コンピューティング・デバイス。
【請求項２２】
前記プロセッサが、少なくとも部分的に、前記クラウド・データ・アクセス要求に関連付けられたデータの圧縮率、前記１つまたは複数の仮想ローカル・ランクに関連付けられた入出力データ速度、およびサービス・レベル・アグリーメントに基づいて、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項２１に記載のコンピューティング・デバイス。
【請求項２３】
前記プロセッサが、前記サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、前記入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられた前記データが圧縮可能であるということの決定に応答して、前記第１のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項２２に記載のコンピューティング・デバイス。
【請求項２４】
前記プロセッサが、前記サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、前記入出力データ速度が第２の事前に定義されたしきい値を下回っており、前記データ・アクセス要求に関連付けられた前記データが圧縮不可能であるということの決定に応答して、前記第２のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項２２に記載のコンピューティング・デバイス。
【請求項２５】
前記プロセッサが、前記サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または前記入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、前記第３のサービス・レベルを前記クラウド・データ・アクセス要求に割り当てるようにさらに構成されている、請求項２２に記載のコンピューティング・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
クラウド・ストレージをランクとして使用するストレージ・システムを実現するためのコンピュータ実装方法に関する。
【背景技術】
【０００２】
ストレージ・エリア・ネットワーク（ＳＡＮ：storage area networks）などのストレージ・ネットワークは、さまざまなタイプのデータ・ストレージ・システムをさまざまなタイプのサーバ（本明細書では「ホスト・システム」とも呼ばれる）と相互接続するために使用される。一部のサーバは、データ・ストレージ媒体、ストレージ・コントローラ、メモリ、および付随する電力システム、冷却システムなどの、さまざまなハードウェアを含む。
【０００３】
ストレージ・コントローラは、読み取り要求および書き込み要求に応答して、データ・ストレージ媒体およびメモリへのアクセスを制御する。ストレージ・コントローラは、ＲＡＩＤ（redundant array of independent disks：新磁気ディスク制御機構）、ＪＢＯＤ（just a bunch of disks：単純ディスク束）、ならびにその他の冗長性およびセキュリティ・レベルなどのデータ・ストレージ・デバイスに従って、データを管理することができる。一例として、ＤＳ８０００シリーズなどのＩＢＭ（Ｒ）ＥＳＳ（Enterprise Storage Server）は、コンピュータの実体、キャッシュ、不揮発性ストレージなどの冗長なクラスタを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウド・ストレージをランクとして使用するストレージ・システムを提供する。
【課題を解決するための手段】
【０００５】
本開示の態様は、クラウド・ストレージをランクとして利用するためのコンピュータ実装方法、コンピュータ・プログラム製品、コンピューティング・デバイス、およびシステムを含んでよい。例示的な方法は、クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・アドレスをグループ化して、１つまたは複数のクラウド・ストレージ・デバイス上の割り当てられたストレージ空間から１つまたは複数の仮想ローカル・ランクを作成することと、１つまたは複数の仮想ローカル・ランクに対するローカル・データ・アクセス要求を、クラウド・インターフェイス用に構成されたクラウド・データ・アクセス要求に変換することと、クラウド・インターフェイスを介してそれらのクラウド・データ・アクセス要求を１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを含む。
【０００６】
上記の概要は、本開示の各実施形態例もすべての実装も説明するよう意図されていない。
【０００７】
各図面が、実施形態例のみを表しており、したがって、範囲の制限と見なされるべきではないということを理解して、添付の図面を使用することによって、追加の特殊性および詳細と共に、実施形態例が説明される。
【図面の簡単な説明】
【０００８】
【図１】例示的なネットワーク環境の一実施形態を示す上位のブロック図である。
【図２】例示的なストレージ・システムの一実施形態を示す上位のブロック図である。
【図３】例示的なデバイス・アダプタの一実施形態のブロック図である。
【図４】ストレージ・コントローラ用のランクとしてクラウド・ストレージを使用する例示的な方法の一実施形態を示すフローチャートである。
【発明を実施するための形態】
【０００９】
慣行に従って、説明されるさまざまな特徴は一定の縮尺で描かれておらず、実施形態例に関連する特定の特徴を強調するように描かれている。
【００１０】
以下の詳細な説明では、本明細書の一部を形成する添付の図面に対する参照が行われ、その参照において、特定の例示的な実施形態が、例として示される。ただし、その他の実施形態が利用されてよく、論理的変更、機械的変更、および電気的変更が行われてよいということが、理解されるべきである。さらに、図面および本明細書において提示される方法は、個別のステップが実行される順序を制限すると解釈されるべきではない。したがって、以下の詳細な説明は、限定する意味で受け取られるべきではない。
【００１１】
本明細書において使用されるとき、「少なくとも１つ」、「１つまたは複数」、および「〜または〜あるいはその組み合わせ」という語句は、動作中の結合および分離の両方である無制限の表現である。例えば、「Ａ、Ｂ、およびＣのうちの少なくとも１つ」、「Ａ、Ｂ、またはＣのうちの少なくとも１つ」、「Ａ、Ｂ、およびＣのうちの１つまたは複数」、「Ａ、Ｂ、またはＣのうちの１つまたは複数」、および「Ａ、Ｂ、またはＣ、あるいはその組み合わせ」という表現の各々は、Ａ単独、Ｂ単独、Ｃ単独、ＡおよびＢの組み合わせ、ＡおよびＣの組み合わせ、ＢおよびＣの組み合わせ、またはＡ、Ｂ、およびＣの組み合わせを意味する。さらに、「１つ（a）」または「１つ（an）」の実体という用語は、その実態のうちの１つまたは複数のことを指す。そのため、「１つ（a）」（または「１つ（an）」）、「１つまたは複数」、および「少なくとも１つ」という用語は、本明細書では交換可能なように使用され得る。「備えている」、「含んでいる」、および「有している」という用語が交換可能なように使用され得るということにも注意するべきである。「自動的」およびその変形の用語は、本明細書において使用されるとき、プロセスまたは動作が実行されるときに、具体的な人間の入力なしで実行される、任意のプロセスまたは動作のことを指す。人間の入力は、そのような入力が、プロセスまたは動作の実行方法または実行のタイミングを指示または制御する場合に、具体的であると見なされる。人間の入力を使用するプロセスは、その入力が、プロセスの実行方法または実行のタイミングを指示することも制御することも行わない場合、まだ自動的であると見なされる。
【００１２】
「決定する」、「算出する」、および「計算する」という用語、ならびにその変形は、本明細書において使用されるとき、交換可能なように使用され、任意の種類の方法、プロセス、数学演算、または手法を含む。以下では、「通信する」または「通信によって結合される」は、無線または有線に関わらず、任意の電気接続を意味するものとし、２つ以上のシステム、コンポーネント、モジュール、デバイスなどが、任意のプロトコルまたは形式を使用してデータ、信号、またはその他の情報を交換できるようにする。さらに、通信によって結合された２つのコンポーネントは、互いに直接結合される必要はなく、他の中間のコンポーネントまたはデバイスを介して一緒に結合されてもよい。
【００１３】
図１は、例示的なネットワーク・アーキテクチャ１００の一実施形態を示す上位のブロック図である。ネットワーク・アーキテクチャ１００は、制限ではなく、単に例として提示されている。実際、本明細書で開示されるシステムおよび方法は、図１に示されているネットワーク・アーキテクチャ１００に加えて、多種多様な異なるネットワーク・アーキテクチャに適用可能であってよい。
【００１４】
図に示されているように、ネットワーク・アーキテクチャ１００は、１つまたは複数のクライアントまたはクライアント・コンピュータ１０２−１…１０２−Ｎ（Ｎはクライアント・コンピュータの総数）、および１つまたは複数のホスト１０６−１…１０６−Ｍ（Ｍはホスト（本明細書では、「サーバ・コンピュータ」１０６、「ホスト・システム」１０６、または「ホスト・デバイス」１０６とも呼ばれる）の総数）を含む。図１には５つのクライアント１０２が示されているが、他の実施形態では、その他の数のクライアント１０２が使用され得るということが、理解されるべきである。例えば、一部の実施形態では、１つのクライアント１０２のみが実装される。他の実施形態では、５つより多いクライアント１０２または少ないクライアント１０２が使用される。同様に、図１には４つのホスト１０６が示されているが、任意の適切な数のホスト１０６が使用され得るということが、理解されるべきである。例えば、一部の実施形態では、１つのホスト１０６のみが使用される。他の実施形態では、４つより多いストレージ・ホスト１０６または少ないストレージ・ホスト１０６が使用され得る。
【００１５】
クライアント・コンピュータ１０２の各々は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップまたはノートブック・コンピュータ、ネットブック、タブレット・コンピュータ、ポケット・コンピュータ、スマートフォン、あるいは任意のその他の適切な種類の電子デバイスとして実装され得る。同様に、ホスト１０６の各々は、任意の適切なホスト・コンピュータまたはサーバを使用して実装され得る。そのようなサーバは、ＩＢＭ  Ｓｙｓｔｅｍ  ｚ（Ｒ）およびＩＢＭ  Ｓｙｓｔｅｍ  ｉ（Ｒ）サーバに加えて、ＵＮＩＸ（Ｒ）サーバ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ）サーバ、およびＬｉｎｕｘプラットフォームを含むことができるが、これらに限定されない。
【００１６】
クライアント・コンピュータ１０２は、ネットワーク１０４を介して、ホスト１０６に通信によって結合される。ネットワーク１０４の例としては、ローカル・エリア・ネットワーク（ＬＡＮ：local-area-network）、広域ネットワーク（ＷＡＮ：wide-area-network）、インターネット、イントラネットなどが挙げられる。一般に、クライアント・コンピュータ１０２は、通信セッションを開始し、一方、サーバ・コンピュータ１０６は、クライアント・コンピュータ１０２からの要求を待つ。特定の実施形態では、コンピュータ１０２またはサーバ１０６あるいはその両方は、１つまたは複数の内部または外部の直接取り付けられたストレージ・システム１１２（例えば、ハード・ディスク・ドライブ、半導体ドライブ、テープ・ドライブなどのアレイ）に、接続されてよい。これらのコンピュータ１０２、１０６、および直接取り付けられたストレージ・システム１１２は、ＡＴＡ、ＳＡＴＡ、ＳＣＳＩ、ＳＡＳ、ファイバ・チャネルなどのプロトコルを使用して通信してよい。
【００１７】
ネットワーク・アーキテクチャ１００は、特定の実施形態では、ストレージ・エリア・ネットワーク（ＳＡＮ：storage-area-network）１０８またはＬＡＮ１０８（例えば、ネットワークに取り付けられたストレージを使用する場合）など、サーバ１０６の背後にストレージ・ネットワーク１０８を含んでよい。図１に示された例では、ネットワーク１０８は、サーバ１０６を１つまたは複数のストレージ・サブシステム１１０に接続する。説明の目的で、１つのストレージ・サブシステム１１０のみが示されているが、他の実施形態では２つ以上のストレージ・サブシステム１１０が使用され得るということが、理解されるべきである。ストレージ・サブシステム１１０は、ストレージ・デバイスのアレイ１１６への接続を管理する。ストレージ・デバイスのアレイ１１６は、ハード・ディスク・ドライブまたは半導体ドライブあるいはその両方のアレイを含むことができる。加えて、図１に示されている例では、下で詳細に説明されているように、ストレージ・サブシステム１１０が、クラウド・ストレージに接続し、クラウド・ストレージがローカル・ストレージ・アレイのように見えるように、クラウド・ストレージからストレージ・アレイを作成するように構成される。
【００１８】
ストレージ・サブシステム１１０にアクセスするために、ホスト・システム１０６は、ホスト１０６上の１つまたは複数のポートからストレージ・サブシステム１１０上の１つまたは複数のポートへの物理的接続を経由して通信してよい。接続は、スイッチ、ファブリック、直接接続などを介してよい。特定の実施形態では、サーバ１０６およびストレージ・サブシステム１１０は、ファイバ・チャネル（ＦＣ：Fibre Channel）またはｉＳＣＳＩなどのネットワーク規格を使用して通信してよい。
【００１９】
図２は、ストレージ・システム２００の一実施形態の上位のブロック図である。ストレージ・システム２００は、ストレージ・ドライブ（例えば、ハード・ディスク・ドライブまたは半導体ドライブあるいはその両方）の１つまたは複数のアレイを含んでいる。図に示されているように、ストレージ・システム２００は、ストレージ・サブシステム２１０と、複数のスイッチ２２０と、ハード・ディスク・ドライブまたは半導体ドライブ（フラッシュメモリベースのドライブなど）あるいはその両方などの複数のストレージ・ドライブ２１６とを含んでいる。ストレージ・サブシステム２１０は、１つまたは複数のホスト（例えば、オープン・システムまたはメインフレーム・サーバあるいはその両方）が、複数のストレージ・ドライブ２１６内のデータにアクセスできるようにしてよい。
【００２０】
一部の実施形態では、ストレージ・サブシステム２１０は、１つまたは複数のストレージ・コントローラ２２２を含んでいる。図２に示されている例では、ストレージ・サブシステムは、ストレージ・コントローラ２２２ａおよびストレージ・コントローラ２２２ｂを含んでいる。説明の目的で、本明細書では２つのストレージ・コントローラ２２２のみが示されているが、他の実施形態では３つ以上のストレージ・コントローラが使用され得るということが、理解されるべきである。図２のストレージ・サブシステム２１０は、ストレージ・サブシステム２１０をホスト・デバイスおよびストレージ・ドライブ２０４にそれぞれ接続するために、ホスト・アダプタ２２４ａ、２２４ｂ、およびデバイス・アダプタ２２６ａ、２２６ｂも含んでいる。複数のストレージ・コントローラ２２２ａ、２２２ｂは、データが接続されたホストで使用可能であることを保証するのに役立つ冗長性を実現する。したがって、１つのストレージ・コントローラ（例えば、ストレージ・コントローラ２２２ａ）が故障した場合、他のストレージ・コントローラ（例えば、２２２ｂ）が故障したストレージ・コントローラのＩ／Ｏ負荷を受け取り、ホストとストレージ・ドライブ２０４の間でＩ／Ｏを継続できることを保証することができる。このプロセスは、「フェイルオーバー」と呼ばれることがある。
【００２１】
各ストレージ・コントローラ２２２は、１つまたは複数のプロセッサ２２８およびメモリ２３０をそれぞれ含むことができる。メモリ２３０は、揮発性メモリ（例えば、ＲＡＭ）および不揮発性メモリ（例えば、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリなど）を含むことができる。揮発性メモリおよび不揮発性メモリは、プロセッサ２２８上で実行され、ストレージ・ドライブ２０４内のデータにアクセスするために使用される、ソフトウェア・モジュールを格納することができる。ストレージ・コントローラ２２２は、これらのソフトウェア・モジュールのうちの少なくとも１つのインスタンスをホストすることができる。これらのソフトウェア・モジュールは、ストレージ・ドライブ２０４内の論理ボリュームに対するすべての読み取り要求および書き込み要求を管理することができる。
【００２２】
具体的には、各ストレージ・コントローラ２２２は、各デバイス・アダプタ２２６を介して、ストレージ・ドライブ２０４に通信によって結合される。各デバイス・アダプタ２２６は、ストレージ・ドライブ２１６への入出力（Ｉ／Ｏ：Input/Output）アクセスを管理するように構成される。例えば、デバイス・アダプタ２２６は、ストレージ・ドライブ２１６を論理的に構成し、データを格納するストレージ・ドライブ２１６上の位置を決定する。ストレージ・ドライブ２１６（ディスク・ドライブ・モジュール（ＤＤＭ：disk drive modules）とも呼ばれる）は、異なる性能特性を有するさまざまな種類のドライブのグループを含むことができる。例えば、ストレージ・ドライブ２１６は、（相対的に）遅い「ニアライン」ディスク（例えば、毎分７，２００回転（ＲＰＭ：revolutions per minute）の回転速度）、ＳＡＳディスク・ドライブ（例えば、１０ｋまたは１５ｋＲＰＭ）、および相対的に速い半導体ドライブ（ＳＳＤ：solid state drives）の組み合わせを含むことができる。
【００２３】
デバイス・アダプタ２２６は、スイッチ２２０を介してストレージ・ドライブ２１６に結合される。スイッチ２２０の各々は、光ファイバ接続を介してストレージ・ドライブ２１６をデバイス・アダプタに結合するファイバ・スイッチであることができる。デバイス・アダプタ２２６は、ストレージ・ドライブ２１６をアレイ・サイト２３４に論理的にグループ化する。説明の目的で、ストレージ・ドライブ２１６から成る単一のアレイ・サイト２３４が図２に示されている。しかし、他の実施形態では、ストレージ・ドライブ２１６から成る２つ以上のアレイ・サイトが含まれ得るということが、理解されるべきである。アレイ・サイト２３４は、新磁気ディスク制御機構（ＲＡＩＤ）アレイ２３４として構成され得る。任意の種類のＲＡＩＤアレイ（例えば、ＲＡＩＤ０、ＲＡＩＤ５、ＲＡＩＤ１０など）が使用され得るということが、理解されるべきである。各ＲＡＩＤアレイは、ランクとも呼ばれる。各ランクは、範囲と呼ばれる、複数の同じサイズのパーティションに分割される。各範囲のサイズは、実装に応じて変化することができる。例えば、各範囲のサイズは、少なくとも部分的に、範囲のストレージ・タイプによって決まることができる。範囲のストレージ・タイプ（例えば、固定長ブロック（ＦＢ：Fixed Block）またはカウント・キー・データ（ＣＫＤ：count key data））は、ストレージ・サブシステムに結合されたホストの種類（例えば、オープンシステム・ホストまたはメインフレーム・サーバ）によって決まる。その後、これらの範囲は、論理ボリュームを構成するためにグループ化される。
【００２４】
ストレージ・サブシステム２１０は、フルディスク暗号化、不揮発性ストレージ（ＮＶＳ：non-volatile storage）アルゴリズム（例えば、しきい値化、ステージ、デステージ）、ストレージ・プール・ストライピング（範囲の循環）、動的ボリューム拡張、動的データ再配置、インテリジェントな書き込みキャッシング、および適応型マルチストリーム・プリフェッチ（adaptive multi-stream prefetching）などの、ただしこれらに限定されない、さまざまな管理機能を可能にすることができる。図２に示されたアーキテクチャに類似するアーキテクチャを有するストレージ・システム２１０の１つの例は、ＩＢＭ  ＤＳ８０００（ＴＭ）シリーズ・エンタープライズ・ストレージ・システムである。ＤＳ８０００（ＴＭ）は、継続的動作をサポートするように設計されたディスク・ストレージおよび半導体ストレージを提供する、高性能、大容量のストレージ・サブシステムである。それでも、本明細書で開示された実施形態は、ＩＢＭ  ＤＳ８０００（ＴＭ）シリーズ・エンタープライズ・ストレージ・システムに限定されず、システムに関連付けられた製造業者、製品名、またはコンポーネントもしくはコンポーネント名に関わらず、任意の同等の、または類似するストレージ・システムまたはストレージ・システムのグループにおいて実装され得る。したがって、ＩＢＭ  ＤＳ８０００（ＴＭ）は、単に例として提示されており、限定するよう意図されていない。
【００２５】
さらに、図２に示された実施形態では、デバイス・アダプタ２２６の各々が、イーサネット（Ｒ）・ポートなどの各ネットワーク・ポート２３２を含んでおり、このポートが、インターネットなどのネットワークを介して、デバイス・アダプタ２２６をクラウド・ストレージ・デバイス２１４に通信によって結合する。図２に示されている例では、各デバイス・アダプタ２２６は、各変換モジュール２３２をさらに含んでおり、変換モジュール２３２は、クラウド・ストレージ・デバイス２１４が、ストレージ・コントローラ２２２にはローカルＲＡＩＤアレイまたはローカル・ランクのように見えるように、クラウド・ストレージ・デバイス２１４を仮想ＲＡＩＤアレイに割り当ててグループ化するように構成される。このようにして、ローカル・ランク（ＲＡＩＤアレイ２４３など）に使用できるストレージ・コントローラ２２２の機能が、クラウドのランク２１４にも使用できる。
【００２６】
図３および４に関して下で詳細に説明されているように、変換モジュール２３２は、ストレージ・コントローラ・コマンドまたはＩ／Ｏアクセスあるいはその両方と、クラウド・インターフェイス・コマンド（cloud interface commands）またはＩ／Ｏアクセスあるいはその両方との間で変換するように構成される。この例では、変換モジュール２３２がデバイス・アダプタ２２６に含まれているが、他の実施形態では、クラウド変換モジュール２３２がストレージ・コントローラ２２２に含まれ得るということに、注意するべきである。具体的には、一部の実施形態では、各ストレージ・コントローラ２２２は、各デバイス・アダプタ２２６へのコマンドの変換を実行する各変換モジュールを含む。
【００２７】
したがって、本明細書に記載された実施形態は、従来のクラウド・ストレージ・システムを超える優位性を可能にする。例えば、従来のクラウド・ストレージ・システムは、通常、リモートのアーカイブ、バックアップ、および取得などの、比較的簡単な機能を可能にする。しかし、そのような従来のシステムは、クラウドに格納されたデータに対して、前述した管理機能（例えば、しきい値化、ステージ、およびデステージなどのＮＶＳアルゴリズム）などの高度な管理機能を実行できない。したがって、下でさらに詳細に説明される変換モジュール２３２を使用することによって、本明細書に記載された実施形態は、クラウド・ストレージ・デバイスに格納されたデータに対する、従来のクラウド・ストレージ・システムに使用できない高度な管理機能の実行を可能にする。具体的には、変換モジュール２３２を使用することによって、ストレージ・コントローラ２２２およびデバイス・アダプタ２２６は、仮想ＲＡＩＤアレイが、リモート・ストレージではなく、デバイス・アダプタ２２６に結合されたローカル・ドライブであるかのように、クラウド・ストレージから成る仮想ＲＡＩＤアレイまたはランクにアクセスして利用することができる。このようにして、前述した管理機能などの、ローカル・ドライブに使用できる管理機能と同じ管理機能を、それらの管理機能の実装に関連付けられた基礎になるコードまたはハードウェアあるいはその両方を変更することなく、リモートのクラウド・ストレージに使用することができる。
【００２８】
図３は、デバイス・アダプタ２２６などのデバイス・アダプタまたはストレージ・コントローラ２２２などのストレージ・コントローラとして実装できる、例示的なコンピューティング・デバイス３００の一実施形態のブロック図である。説明の目的で、コンピューティング・デバイス３００は、本明細書ではデバイス・アダプタに関して説明される。図３に示された例では、デバイス・アダプタ３００は、メモリ３２５、ストレージ３３５、相互接続（例えば、バス）３４０、１つまたは複数のプロセッサ３０５（本明細書ではＣＰＵ３０５ともに呼ばれる）、Ｉ／Ｏデバイス・インターフェイス３５０、およびネットワーク・アダプタまたはポート３１５を含んでいる。
【００２９】
各ＣＰＵ３０５は、メモリ３２５またはストレージ３３５あるいはその両方に格納されたプログラミング命令を取得して実行する。相互接続３４０は、プログラミング命令などのデータを、ＣＰＵ３０５、Ｉ／Ｏデバイス・インターフェイス３５０、ストレージ３３５、ネットワーク・アダプタ３１５、およびメモリ３２５の間で移動するために使用される。相互接続３４０は、１つまたは複数のバスを使用して実装され得る。さまざまな実施形態では、ＣＰＵ３０５は、単一のＣＰＵ、複数のＣＰＵ、または複数のプロセッシング・コアを含んでいる単一のＣＰＵであることができる。一部の実施形態では、プロセッサ３０５は、デジタル信号プロセッサ（ＤＳＰ：digital signal processor）であることができる。メモリ３２５は、一般に、ランダム・アクセス・メモリ（例えば、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ：dynamic random access memory）、またはフラッシュ）を表すために含められている。ストレージ３３５は、一般に、ハード・ディスク・ドライブ、半導体デバイス（ＳＳＤ：solid state device）、取り外し可能メモリ・カード、光ストレージ、またはフラッシュ・メモリ・デバイスなどの、不揮発性メモリを表すために含められている。
【００３０】
一部の実施形態では、メモリ３２５は、クラウド変換命令３０１を格納し、ストレージ３３５は、マップ・テーブル３０７を格納する。しかし、さまざまな実施形態では、クラウド変換命令３０１およびマップ・テーブル３０７が、部分的にメモリ３２５に格納され、かつ部分的にストレージ３３５に格納されるか、あるいは全体的にメモリ３２５に格納されるか、または全体的にストレージ３３５に格納される。
【００３１】
クラウド変換命令３０１は、ＣＰＵ３０５によって実行された場合、ＣＰＵ３０５に、マップ・テーブル３０７を利用して、図２に関して前述された変換モジュールを実装させる。クラウド変換命令３０１およびマップ・テーブル３０７は、デバイス・アダプタ３００に格納され、デバイス・アダプタ３００によって実行／利用されるように示されているが、他の実施形態では、クラウド変換命令３０１およびマップ・テーブル３０７が、図２に示されているストレージ・コントローラ２２２ａまたはストレージ・コントローラ２２２ｂあるいはその両方などのストレージ・コントローラに格納され、それらのストレージ・コントローラよって実行／利用され得るということに、注意するべきである。クラウド変換命令３０１は、ＣＰＵ３０５に、図２に示されたクラウド・ストレージ・デバイス２１４などの、クラウド・ストレージ・デバイス上の空間を割り当てさせる。この空間は、静的に割り当てられるか、または必要性が生じたときに要求に応じて割り当てられ得る。例えば、この空間は、先験的に、または実行時に割り当てられ得る。さらに、クラウド・ストレージのランクは、異なるストレージ容量で作成され得る。
【００３２】
クラウド変換命令３０１は、ＣＰＵ３０５に、割り当てられたストレージを１つまたは複数の仮想ランクにグループ化することと、クラウド・ストレージ・デバイスと１つまたは複数の仮想ランクとの間のマッピングをマップ・テーブル３０７に格納することとをさらに実行させる。具体的には、クラウド変換命令３０１は、ＣＰＵ３０５にマップ・テーブル３０７を生成させ、マップ・テーブル３０７は、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングし、仮想ローカル・アドレスをグループ化して１つまたは複数の仮想ローカル・ランクまたはＲＡＩＤアレイを作成する。このようにして、クラウド・ストレージの仮想ランクは、Ｉ／Ｏデバイス・インターフェイス３５０を介してデバイス・アダプタ３００に通信によって結合されたストレージ・コントローラに直接取り付けられたローカル・ランクのように見える。また、Ｉ／Ｏデバイス・インターフェイス３５０は、デバイス・アダプタ３００を、半導体ドライブおよびニアライン・ドライブ（例えば、前述されたストレージ・ドライブ２１６）などの、ストレージ・デバイスのローカル・ランクに、通信によって結合する。例えば、Ｉ／Ｏデバイス・インターフェイス３５０は、光ファイバ・ポートを含むことができる。
【００３３】
Ｉ／Ｏアクセス（例えば、読み取り要求または書き込み要求）が受信されたときに、クラウド変換命令３０１が、ＣＰＵ３０５に、要求がクラウド・ストレージの仮想ランクに格納されたデータに向けられているかどうかを判定させる。要求がクラウド・ストレージの仮想ランクに格納されたデータに向けられている場合、クラウド変換命令３０１が、クラウド・インターフェイスを介してクラウド・ストレージ・デバイスに送信するために、Ｉ／Ｏアクセスを変換する。例えば、クラウド変換命令３０１は、クラウド・ストレージ・デバイスにアクセスするためにクラウド・インターフェイスによって使用されるコマンド、書式、デバイスのアドレスなどを使用して、Ｉ／Ｏアクセスを変換できる。本明細書において使用されるとき、Ｉ／Ｏアクセス、読み取り／書き込みアクセス、およびデータ・アクセスという用語は、交換可能なように使用され得る。クラウド・インターフェイスの例としては、ＩＢＭ（Ｒ）Ｃｌｏｕｄ  Ｍａｎａｇｅｒまたはｔｈｅ  Ａｍａｚｏｎ（Ｒ）Ｓｉｍｐｌｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ（Ａｍａｚｏｎ  Ｓ３）インターフェイスが挙げられるが、これらに限定されない。したがって、前述したように、クラウド変換命令３０１は、他のローカル・ストレージ・デバイスと同様に、クラウド・ストレージをストレージ・コントローラで透過的に使用できるようにする。
【００３４】
加えて、一部の実施形態では、デバイス・アダプタ３００は、複数のレベルのストレージのサービスおよびクラウド・ストレージの仮想ランクとの接続を可能にすることができる。例えば、一部のそのような実施形態では、３つのレベルのサービスが存在する。しかし、複数のレベルのサービスを提供する他の実施形態では、２つまたは４つ以上のレベルのサービスが提供され得る。この例では、３つのレベルのサービスが利用され、サービスのレベルの選択は、データの圧縮率、仮想ローカル・ランクの各入出力データ速度、およびサービス・レベル・アグリーメントに基づく。例えば、サービス・レベル・アグリーメントが低品質のサービスを示しており、仮想ローカル・ランクのＩ／Ｏデータ速度がしきい値を下回っており、アクセスされているデータが圧縮可能である場合、第１のレベルのサービスが選択される。低品質のサービスは、サービスの事前に定義されたしきい値レベルを下回る、任意の品質のサービスであることができる。第１のレベルのサービスは、この例の３つの選択肢のうちの最低レベルのサービスである。例えば、第１のレベルのサービスは、他の２つのレベルのサービスより大きい待ち時間および小さいスループットを含むことができる。サービス・レベル・アグリーメントが低品質のサービスを示しており、仮想ローカル・ランクのＩ／Ｏデータ速度がしきい値を下回っており、データが圧縮不可能である場合、第２のレベルのサービスが選択される。第２のレベルのサービスは、第１のレベルのサービスより大きいスループットまたはより小さい待ち時間あるいはその両方を含む。最後または第３のレベルのサービスは、他のすべてのデータに使用される（例えば、ＳＬＡが、事前に定義されたしきい値を超えるサービスのレベルを示しているか、またはＩ／Ｏデータ速度がしきい値を超えているか、あるいはその両方である）。第３のレベルのサービスは、第１および第２の両方のレベルのサービスより大きいスループットまたはより小さい待ち時間あるいはその両方を含む。異なるレベルのサービスを提供することによって、デバイス・アダプタ３２６は、クラウド・ストレージの仮想ランクを活用して、クラウド・ストレージおよびアクセスに対する顧客の必要性を満たすことにおいて、より大きい柔軟性を提供することができる。例示的な第１、第２、および第３のレベルが、待ち時間およびスループットにおいて異なっていると説明されているが、サービスのレベルを区別するために他の要因が使用され得るということに、注意するべきである。例えば、一部の実施形態では、３つのレベルのサービスは、同じ待ち時間およびスループットを有しているが、費用および冗長性のレベルにおいて異なる。
【００３５】
図４は、ランクとしてクラウド・ストレージを使用する方法４００の一実施形態を示すフローチャートである。方法４００は、デバイス・アダプタ２２６などのデバイス・アダプタまたはストレージ・コントローラ２２２などのストレージ・コントローラによって実施され得る。例えば、方法４００は、クラウド変換命令３０１などの命令を実行する、コンピューティング・デバイス３００内のＣＰＵ３０５などのＣＰＵによって、実施され得る。例示的な方法４００における動作の順序が、例示の目的で提供されているということ、および他の実施形態では、この方法が異なる順序で実行され得るということが、理解されるべきである。同様に、他の実施形態では、一部の動作が省略されるか、または追加の動作が含まれ得るということが、理解されるべきである。
【００３６】
ブロック４０２で、クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間が割り当てられる。クラウド・インターフェイスは、クラウド・ストレージ・デバイスへのアクセスを可能にするように構成されたインターフェイスである。例えば、クラウド・インターフェイスは、アプリケーション・プログラミング・インターフェイス（ＡＰＩ：application programming interface）として実装され得る。上では、例示的なクラウド・インターフェイスが説明された。クラウド・ストレージを割り当てることは、クラウド・インターフェイスを介して、指定された量のストレージを要求することを含むことができる。このストレージ空間は、必要とされる前に静的に要求されるか、またはストレージ空間が必要とされるときに動的に要求され得る。さらに、本明細書において使用されるとき、クラウド・ストレージ・デバイスは、ローカル・エリア・ネットワークまたは直接通信リンクとは対照的に、インターネットなどの広域ネットワークを介してアクセスされるストレージ・デバイスである。
【００３７】
ブロック４０４で、割り当てられたストレージ空間は、対応する仮想ローカル・アドレスにマッピングされる。例えば、一部の実施形態では、デバイス・アダプタまたはストレージ・コントローラは、割り当てられたストレージ空間を対応する仮想ローカル・アドレスに割り当てる。本明細書において使用されるとき、仮想ローカル・アドレスは、ローカル接続を介してデバイス・アダプタに結合されたストレージ・デバイスのアドレスのように見えるメモリ・アドレスである。ローカル接続とは、インターネットなどの広域ネットワークまたはリモート・ネットワークを経由しない接続のことを指す。
【００３８】
ブロック４０６で、１つまたは複数のクラウド・ストレージ・デバイス上の割り当てられたストレージ空間に対応する仮想ローカル・アドレスが、グループ化または構成されて、１つまたは複数の仮想ローカル・ランク（例えば、ＲＡＩＤアレイ）を作成する。すなわち、仮想ローカル・アドレスは、ストレージ・デバイスのローカルＲＡＩＤアレイとしてデバイス・アダプタに直接接続されているように見えるように配置される。
【００３９】
ブロック４０８で、１つまたは複数の仮想ローカル・ランクに対するローカル・データ・アクセス要求が、クラウド・インターフェイスに従って構成された（例えば、クラウド・インターフェイスのＡＰＩの要件に従って構成された）クラウド・データ・アクセス要求に変換される。本明細書において使用されるとき、ローカル・データ・アクセス要求は、仮想ローカル・アドレスを使用し、デバイス・アダプタに直接結合されたローカルＲＡＩＤアレイにアクセスするためのデバイス・アダプタの要件に従って書式設定された、要求である。同様に、クラウド・データ・アクセス要求は、クラウド・インターフェイスの要件に従って、クラウド・ストレージ・デバイスのアドレスを使用して構成された、データ・アクセス要求である。これらのデータ・アクセス要求は、読み取り要求および書き込み要求に加えて、しきい値化、データ暗号化などのさまざまな管理機能を含むことができる。
【００４０】
ブロック４１０で、変換されたクラウド・データ・アクセス要求が、クラウド・インターフェイスおよびデバイス・アダプタのネットワーク・ポートを介して１つまたは複数のクラウド・ストレージ・デバイスに伝達される。したがって、前述したように、方法４００は、ローカル接続を介してデバイス・アダプタに結合されたローカルＲＡＩＤアレイの場合と同じ機能をクラウド・ストレージで使用可能にして、ストレージ・サブシステムがクラウド・ストレージを使用できるようにする。
【００４１】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
【００４２】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー（Ｒ）・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００４３】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００４４】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００４５】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００４６】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【００４７】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【００４８】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
実施形態例
【００４９】
実施例１は、クラウド・ストレージをランクとして利用するためのコンピュータ実装方法を含む。この方法は、クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・アドレスをグループ化して、１つまたは複数のクラウド・ストレージ・デバイス上の割り当てられたストレージ空間から１つまたは複数の仮想ローカル・ランクを作成することと、１つまたは複数の仮想ローカル・ランクに対するローカル・データ・アクセス要求を、クラウド・インターフェイス用に構成されたクラウド・データ・アクセス要求に変換することと、クラウド・インターフェイスを介してそれらのクラウド・データ・アクセス要求を１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを含む。
【００５０】
実施例２は、実施例１の方法を含み、クラウド・データ・アクセス要求を伝達することが、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てることをさらに含む。第１のサービス・レベルは、第２のサービス・レベルおよび第３のサービス・レベルより大きい待ち時間および小さいスループットを有し、第２のサービス・レベルは、第３のサービス・レベルより大きい待ち時間および小さいスループットを有する。
【００５１】
実施例３は、実施例２の方法を含み、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、第１のサービス・レベルをクラウド・データ・アクセス要求に割り当てることをさらに含む。
【００５２】
実施例４は、実施例２〜３のいずれかの方法を含み、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、第２のサービス・レベルをクラウド・データ・アクセス要求に割り当てることをさらに含む。
【００５３】
実施例５は、実施例２〜４のいずれかの方法を含み、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てることをさらに含む。
【００５４】
実施例６は、実施例１〜５のいずれかの方法を含み、仮想ローカル・アドレスをグループ化して１つまたは複数の仮想ローカル・ランクを作成することが、仮想ローカル・アドレスをグループ化して複数の仮想ローカル・ランクを作成することを含み、複数の仮想ローカル・ランクの各々が異なるサイズを有する。
【００５５】
実施例７は、ストレージ・システムを含む。ストレージ・システムは、ホスト・アダプタを１つまたは複数のホスト・デバイスに通信によって結合するように構成された１つまたは複数のポートを含んでいるホスト・アダプタと、プロセッサおよびメモリを備えているストレージ・コントローラであって、ホスト・アダプタに通信によって結合されている、ストレージ・コントローラと、プロセッサおよびメモリを備えているデバイス・アダプタであって、ストレージ・コントローラに通信によって結合されている、デバイス・アダプタとを備える。デバイス・アダプタは、複数のローカル・ストレージ・ドライブに通信によって結合された複数のポートと、ネットワークを介して複数のクラウド・ストレージ・デバイスに通信によって結合された少なくとも１つのネットワーク・ポートとをさらに含む。デバイス・アダプタおよびストレージ・コントローラのうちの１つが、変換モジュールを実装するようにさらに構成される。変換モジュールは、クラウド・ストレージ・デバイスのうちの１つまたは複数でストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスに割り当てることと、割り当てられたストレージ空間を１つまたは複数の仮想ローカル新磁気ディスク制御機構（ＲＡＩＤ）アレイに構成することと、１つまたは複数の仮想ローカルＲＡＩＤアレイに対するローカル・データ・アクセス要求を、複数のクラウド・ストレージ・デバイスにアクセスするためのアプリケーション・プログラミング・インターフェイス（ＡＰＩ）の要件に従って構成されたクラウド・データ・アクセス要求に変換することとを実行するように構成される。
【００５６】
実施例８は、実施例７のストレージ・システムを含み、変換モジュールが、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。第１のサービス・レベルは、第２のサービス・レベルおよび第３のサービス・レベルより大きい待ち時間および小さいスループットを有し、第２のサービス・レベルは、第３のサービス・レベルより大きい待ち時間および小さいスループットを有する。
【００５７】
実施例９は、実施例８のストレージ・システムを含み、変換モジュールが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、第１のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００５８】
実施例１０は、実施例８〜９のいずれかのストレージ・システムを含み、変換モジュールが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、第２のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００５９】
実施例１１は、実施例８〜１０のいずれかのストレージ・システムを含み、変換モジュールが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００６０】
実施例１２は、実施例７〜１１のいずれかのストレージ・システムを含み、変換モジュールが、割り当てられたストレージ空間を複数の仮想ローカルＲＡＩＤアレイに構成するようにさらに構成され、複数の仮想ローカルＲＡＩＤアレイの各々が異なるサイズを有する。
【００６１】
実施例１３は、実施例７〜１２のいずれかのストレージ・システムを含み、デバイス・アダプタのネットワーク・ポートがイーサネット（Ｒ）・ポートである。
【００６２】
実施例１４は、コンピュータ可読プログラムが格納されているコンピュータ可読記憶媒体を備えているコンピュータ・プログラム製品を含む。このコンピュータ可読プログラムは、プロセッサによって実行された場合に、プロセッサに、クラウド・インターフェイスを介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・アドレスをグループ化して、１つまたは複数のクラウド・ストレージ・デバイス上の割り当てられたストレージ空間から１つまたは複数の仮想ローカル新磁気ディスク制御機構（ＲＡＩＤ）アレイを作成することと、１つまたは複数の仮想ローカルＲＡＩＤアレイに対するローカル・データ・アクセス要求を、クラウド・インターフェイス用に構成されたクラウド・データ・アクセス要求に変換することと、クラウド・インターフェイスを介してそれらのクラウド・データ・アクセス要求を１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを実行させる。
【００６３】
実施例１５は、実施例１４のコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てさせるようにさらに構成される。第１のサービス・レベルは、第２のサービス・レベルおよび第３のサービス・レベルより大きい待ち時間および小さいスループットを有し、第２のサービス・レベルは、第３のサービス・レベルより大きい待ち時間および小さいスループットを有する。
【００６４】
実施例１６は、実施例１５のコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、第１のサービス・レベルをクラウド・データ・アクセス要求に割り当てさせるようにさらに構成される。
【００６５】
実施例１７は、実施例１５〜１６のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、第２のサービス・レベルをクラウド・データ・アクセス要求に割り当てさせるようにさらに構成される。
【００６６】
実施例１８は、実施例１５〜１７のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てさせるようにさらに構成される。
【００６７】
実施例１９は、実施例１４〜１８のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、仮想ローカル・アドレスをグループ化して、複数の仮想ローカルＲＡＩＤアレイを作成させるようにさらに構成され、複数の仮想ローカルＲＡＩＤアレイの各々が異なるサイズを有する。
【００６８】
実施例２０は、実施例１４〜１９のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、クラウド・インターフェイスのアプリケーション・プログラミング・インターフェイス（ＡＰＩ）の要件に従って、１つまたは複数の仮想ローカルＲＡＩＤアレイに対するローカル・データ・アクセス要求をクラウド・データ・アクセス要求に変換させるようにさらに構成される。
【００６９】
実施例２１は、コンピューティング・デバイスを含む。コンピューティング・デバイスは、ネットワークを介してコンピューティング・デバイスを１つまたは複数のクラウド・ストレージ・デバイスに通信によって結合するように構成されたネットワーク・アダプタと、データを格納するように構成されたストレージ媒体と、ネットワーク・アダプタおよびストレージ媒体に通信によって結合されたプロセッサとを備える。このプロセッサは、１つまたは複数のクラウド・ストレージ・デバイスに関連付けられたアプリケーション・プログラミング・インターフェイス（ＡＰＩ）を介して１つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングするマップ・テーブルを生成して仮想ローカル・アドレスをグループ化し、１つまたは複数のクラウド・ストレージ・デバイス上の割り当てられたストレージ空間から１つまたは複数の仮想ローカル・ランクを作成することであって、このマップ・テーブルがストレージ媒体に格納されている、作成することと、１つまたは複数の仮想ローカル・ランクに対するデータ・アクセス要求を、１つまたは複数のクラウド・ストレージ・デバイスに関連付けられたＡＰＩ用に構成されたクラウド・データ・アクセス要求に変換することと、１つまたは複数のクラウド・ストレージ・デバイスに関連付けられたＡＰＩを介してそれらのクラウド・データ・アクセス要求を１つまたは複数のクラウド・ストレージ・デバイスに伝達することとを実行するように構成される。
【００７０】
実施例２２は、実施例２１のコンピューティング・デバイスを含み、プロセッサが、少なくとも部分的に、クラウド・データ・アクセス要求に関連付けられたデータの圧縮率、１つまたは複数の仮想ローカル・ランクに関連付けられた入出力データ速度、およびサービス・レベル・アグリーメントに基づいて、第１のサービス・レベル、第２のサービス・レベル、または第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００７１】
実施例２３は、実施例２２のコンピューティング・デバイスを含み、プロセッサが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮可能であるということの決定に応答して、第１のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００７２】
実施例２４は、実施例２２〜２３のいずれかのコンピューティング・デバイスを含み、プロセッサが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値未満の品質のサービスを示しており、入出力データ速度が第２の事前に定義されたしきい値を下回っており、データ・アクセス要求に関連付けられたデータが圧縮不可能であるということの決定に応答して、第２のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００７３】
実施例２５は、実施例２２〜２４のいずれかのコンピューティング・デバイスを含み、プロセッサが、サービス・レベル・アグリーメントが、第１の事前に定義されたしきい値を上回る品質のサービスを示しているか、または入出力データ速度が第２の事前に定義されたしきい値を上回っているということの決定に応答して、第３のサービス・レベルをクラウド・データ・アクセス要求に割り当てるようにさらに構成される。
【００７４】
本明細書では、特定の実施形態が示され、説明されたが、同じ目的を達成するように計算された任意の配置が、示された特定の実施形態の代わりに使用されてよいということが、当業者によって理解されるであろう。したがって、本発明が特許請求の範囲およびそれと同等のもののみによって制限されるということが、明白に意図される。
【図１】
2020533678.tif 000003
【図２】
2020533678.tif 000004
【図３】
2020533678.tif 000005
【図４】
2020533678.tif 000006
【国際調査報告】
2020533678.tif 000007
2020533678.tif 000008