(57)【要約】  データ・セットにとっておよびデータ・セットの移行にとって最適なストレージ環境を判定するための、コンピュータ・プログラム製品、システム、および方法が提供される。各アプリケーションのメタデータは、アプリケーションがデータ・セットを格納するために使用するストレージ・プールを示し、各ストレージ・プールは、複数のストレージ環境のうちの１つの中に、データ・セットを格納するための様々な組織化スキームを使用して構成される。少なくとも１つのアプリケーションのメタデータは、様々なストレージ環境から割り当てられるそのアプリケーションのデータ・セットを格納するためのストレージ・プールを示す。アプリケーションのメタデータが処理されて、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されるアプリケーションのデータ・セットが判定される。第１のストレージ・プールから第２のストレージ環境内で実装される第２のストレージ・プールへの判定されたデータ・セット。
2021531557.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ環境におけるデータ・セットの格納を管理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、実行されると操作を実行するコンピュータ可読プログラム・コードが具現化されているコンピュータ可読ストレージ媒体を備え、前記操作は、
データ・セットを格納するためにアプリケーションが使用するストレージ・プールを示す各アプリケーションのメタデータを維持することであって、各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成され、少なくとも１つのアプリケーションの前記メタデータは、様々なストレージ環境から割り当てられる前記アプリケーションの前記データ・セットを格納するためのストレージ・プールを示す、前記維持することと、
アプリケーションの前記メタデータを処理して、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されている前記アプリケーションのデータ・セットを判定することと、
前記判定されたデータ・セットを前記第１のストレージ・プールから前記第２のストレージ環境内で実装される第２のストレージ・プールに移行することと、を含む、コンピュータ・プログラム製品。
【請求項２】
前記ストレージ環境は、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ、およびカウント・キー・データ（ＣＫＤ）・ストレージを含む、少なくとも複数のストレージ環境を含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記操作は、
前記アプリケーションの前記メタデータを、前記判定されたデータ・セットが前記第２のストレージ・プールに格納されることを示すように更新することを更に含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項４】
前記操作は、
前記第１のストレージ環境に従って構成されている第１のストレージへのアクセスを管理するための第１のデーモンを提供することと、
前記第２のストレージ環境に従って構成されている第２のストレージへのアクセスを管理するための第２のデーモンを提供することと、を更に含み、
前記第１のストレージ・プールに割り振られた前記データ・セットを前記第２のストレージ・プールへと前記移行することは、
前記第１のデーモンによって、前記第１のストレージ内の前記第１のストレージ・プールから、前記判定されたデータ・セットを読み込むことと、
前記第１のデーモンによって、前記判定されたデータ・セットを、前記第１のストレージ環境用の第１のデータ・フォーマットから、前記第２のストレージ環境用の第２のデータ・フォーマットへと変換することと、
前記第２のデータ・フォーマットの前記データ・セットを、前記第２のストレージに書き込むための前記第２のデーモンに送信することと、を含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項５】
前記操作は、
前記第１および第２のストレージ・プールに格納されるアプリケーションの前記データ・セットへの入力／出力（Ｉ／Ｏ）アクセスのデータ・アクセス・パターンについてのデータ・アクセス情報を収集すること、を更に含み、前記第２のストレージ環境に格納されるべきである前記第１のストレージ・プール中のデータ・セットを判定することは、前記データ・セットが前記第２のストレージ環境に格納されるべきであることを前記データ・セットについて収集された前記データ・アクセス情報が示していると判定するものである、請求項１に記載のコンピュータ・プログラム製品。
【請求項６】
前記判定されたデータ・セットが前記第２のストレージ環境に格納されるべきであると前記データ・アクセス情報が示していると前記判定することは、
前記データ・セットの前記メタデータ中の前記データ・アクセス情報を機械学習モジュールに提供することと、
前記機械学習モジュールによって、前記提供されたデータ・アクセス情報を複数のアクセス・パターン分類のうちの１つへと分類することと、
前記データ・セット用のアクセス・パターン分類から複数のストレージ環境のうちの前記データ・セットが格納されるべき最適なストレージ環境を判定するための、ルールを適用することと、を含み、前記判定されたデータ・セットはあるアクセス・パターン分類を有するものとして分類され、前記ルールを前記適用することによって、前記第２のストレージ環境が前記データ・セットにとって最適なストレージ環境であると判定される、請求項５に記載のコンピュータ・プログラム製品。
【請求項７】
前記操作は、
最適なストレージ環境が判定されるデータ・セットごとに、前記判定された前記データ・セットにとって最適なストレージ環境に前記データ・セットが格納されるかどうかを判定することと、
前記判定された前記データ・セットにとって最適なストレージ環境に現時点では格納されていない各データ・セットを、前記判定された前記データ・セットにとって最適なストレージ環境へと移行することと、を更に含む、請求項６に記載のコンピュータ・プログラム製品。
【請求項８】
前記データ・セットについての前記データ・アクセス情報の前記分類は、前記データ・セットの前記データ・アクセス情報に基づいて前記アクセス・パターン分類のうちの１つを生成するように訓練される、機械学習アルゴリズムによって行われる、請求項６に記載のコンピュータ・プログラム製品。
【請求項９】
前記データ・アクセス情報は、様々なデータ・セットについて、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプ、のうちの複数を含む、請求項６に記載のコンピュータ・プログラム製品。
【請求項１０】
前記ストレージ環境はオブジェクト・ストレージとファイル・ストレージとブロック・ストレージとを含み、前記ルールを前記適用することは、前記アプリケーションのデータ・セットごとの前記最適なストレージ環境が、
前記データ・セットがファイルとしてアクセスされると判定したことに応答して、前記データ・セットにとって前記最適なストレージ環境がファイル・ストレージであると示すこと、
ランダムなアクセス・パターンを含む前記データ・セット用のアクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
シーケンシャルなアクセス・パターンを含む前記データ・セット用の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すこと、
１秒当たりの操作の多いアクセス・パターンを含む前記データ・セット用の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
１秒当たりの操作が少なく処理ユニット負荷の高い使用状況のアクセス・パターンを含む前記データ・セット用の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すこと、
低レイテンシ・アクセスが必要なデータ・アクセスの場合に生じる低レイテンシを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
高レイテンシおよびサイズ閾値よりも大きいデータ・セットのサイズを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すことであって、前記高レイテンシはタイムアウトせずに高レイテンシに耐えるデータ・アクセスについて生じる、前記示すこと、
高レイテンシに耐性がありかつデータ・セットのサイズがサイズ閾値未満の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がオブジェクト・ストレージであると示すこと、
トランザクション・データベースのアクセス・パターンを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
ファイル・データベースのアクセス・パターンを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すこと、ならびに
ウェブ・データベースのアクセス・パターンを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、を含むルールの要素である、少なくとも複数のルールを含む、と判定することを含む、請求項６に記載のコンピュータ・プログラム製品。
【請求項１１】
複数のストレージ環境におけるデータの格納を管理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログム製品は、実行されると操作を実行するコンピュータ可読プログラム・コードが具現化されているコンピュータ可読ストレージ媒体を備え、前記操作は、
現時点のストレージ環境内で実装されている現時点のストレージに格納されているデータ・セットのデータ・アクセス情報を、分類エンジンに提供することと、
前記分類エンジンによって、前記データ・セットの前記データ・アクセス情報から、アクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定することと、
前記アクセス・パターン分類を使用して、前記データ・セットにとって最適なストレージ環境を判定することと、
前記現時点のストレージ環境が前記最適なストレージ環境を含まないことに応答して、前記データ・セットを前記最適なストレージ環境内で実装されるターゲットのストレージに移動させることと、を含む、コンピュータ・プログラム製品。
【請求項１２】
前記ストレージ環境は、ファイル・ストレージ、ブロック・ストレージ、およびオブジェクト・ストレージを少なくとも備える、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記データ・アクセス情報は、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプを含むアクセス属性のうちの少なくとも複数を含み、前記アクセス・パターン分類のセットは、ただ１つのアクセス属性に基づく少なくとも１つのアクセス・パターン分類と、複数の前記アクセス属性に基づく少なくとも１つのアクセス・パターン分類と、を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１４】
前記操作は、
データ・セットが複数のストレージ環境のうちの１つにおけるストレージに格納されているアプリケーションのアプリケーション・メタデータを提供することを更に含み、あるアプリケーションの各アプリケーション・メタデータは、格納される前記アプリケーションのデータ・セットごとに、ストレージのうちの１つにおけるストレージ・プールと前記データ・セットの前記データ・アクセス情報とを示し、前記アプリケーション・メタデータは、様々なストレージ環境にあるストレージに格納される前記アプリケーションの複数のデータ・セットを示す、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１５】
複数のストレージ環境におけるデータ・セットの格納を管理するためのシステムであって、
プロセッサと、
前記プロセッサによって実行されると操作を実行するコンピュータ可読プログラム・コードを有する、コンピュータ可読ストレージ媒体と、を備え、前記操作は、
データ・セットを格納するためにアプリケーションが使用するストレージ・プールを示す各アプリケーションのメタデータを維持することであって、各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成され、少なくとも１つのアプリケーションの前記メタデータは、様々なストレージ環境から割り当てられる前記アプリケーションの前記データ・セットを格納するためのストレージ・プールを示す、前記維持することと、
アプリケーションの前記メタデータを処理して、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されている前記アプリケーションのデータ・セットを判定することと、
前記判定されたデータ・セットを前記第１のストレージ・プールから前記第２のストレージ環境内で実装される第２のストレージ・プールに移行することと、を含む、システム。
【請求項１６】
前記操作は、
前記第１のストレージ環境に従って構成されている第１のストレージへのアクセスを管理するための第１のデーモンを提供することと、
前記第２のストレージ環境に従って構成されている第２のストレージへのアクセスを管理するための第２のデーモンを提供することと、を更に含み、
前記第１のストレージ・プールに割り振られた前記データ・セットを前記第２のストレージ・プールへと前記移行することは、
前記第１のデーモンによって、前記第１のストレージ内の前記第１のストレージ・プールから、前記判定されたデータ・セットを読み込むことと、
前記第１のデーモンによって、前記判定されたデータ・セットを、前記第１のストレージ環境用の第１のデータ・フォーマットから、前記第２のストレージ環境用の第２のデータ・フォーマットへと変換することと、
前記第２のデータ・フォーマットの前記データ・セットを、前記第２のストレージに書き込むための前記第２のデーモンに送信することと、を含む、請求項１５に記載のシステム。
【請求項１７】
前記操作は、
前記第１および第２のストレージ・プールに格納されるアプリケーションの前記データ・セットへの入力／出力（Ｉ／Ｏ）アクセスのデータ・アクセス・パターンについてのデータ・アクセス情報を収集すること、を更に含み、前記第２のストレージ環境に格納されるべきである前記第１のストレージ・プール中のデータ・セットを判定することは、前記データ・セットが前記第２のストレージ環境に格納されるべきであることを前記データ・セットについて収集された前記データ・アクセス情報が示していると判定するものである、請求項１５に記載のシステム。
【請求項１８】
前記判定されたデータ・セットが前記第２のストレージ環境に格納されるべきであると前記データ・アクセス情報が示していると前記判定することは、
前記データ・セットの前記メタデータ中の前記データ・アクセス情報を機械学習モジュールに提供することと、
前記機械学習モジュールによって、前記提供されたデータ・アクセス情報を複数のアクセス・パターン分類のうちの１つへと分類することと、
前記データ・セット用のアクセス・パターン分類から複数のストレージ環境のうちの前記データ・セットが格納されるべき最適なストレージ環境を判定するための、ルールを適用することと、を含み、前記判定されたデータ・セットはあるアクセス・パターン分類を有するものとして分類され、前記ルールを前記適用することによって、前記第２のストレージ環境が前記データ・セットにとって最適なストレージ環境であると判定される、請求項１７に記載のシステム。
【請求項１９】
複数のストレージ環境におけるデータの格納を管理するためのシステムであって、
プロセッサと、
前記プロセッサによって実行されると操作を実行するコンピュータ可読プログラム・コードを有する、コンピュータ可読ストレージ媒体と、を備え、前記操作は
現時点のストレージ環境内で実装されている現時点のストレージに格納されているデータ・セットのデータ・アクセス情報を、分類エンジンに提供することと、
前記分類エンジンによって、前記データ・セットの前記データ・アクセス情報から、アクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定することと、
前記アクセス・パターン分類を使用して、前記データ・セットにとって最適なストレージ環境を判定することと、
前記現時点のストレージ環境が前記最適なストレージ環境を含まないことに応答して、前記データ・セットを前記最適なストレージ環境内で実装されるターゲットのストレージに移動させることと、を含む、システム。
【請求項２０】
前記データ・アクセス情報は、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプを含むアクセス属性のうちの少なくとも複数を含み、前記アクセス・パターン分類のセットは、ただ１つのアクセス属性に基づく少なくとも１つのアクセス・パターン分類と、複数の前記アクセス属性に基づく少なくとも１つのアクセス・パターン分類と、を含む、請求項１９に記載のシステム。
【請求項２１】
複数のストレージ環境におけるデータ・セットの格納を管理するための方法であって、
データ・セットを格納するためにアプリケーションが使用するストレージ・プールを示す各アプリケーションのメタデータを維持することであって、各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成され、少なくとも１つのアプリケーションの前記メタデータは、様々なストレージ環境から割り当てられる前記アプリケーションの前記データ・セットを格納するためのストレージ・プールを示す、前記維持することと、
アプリケーションの前記メタデータを処理して、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されている前記アプリケーションのデータ・セットを判定することと、
前記判定されたデータ・セットを前記第１のストレージ・プールから前記第２のストレージ環境内で実装される第２のストレージ・プールに移行することと、を含む、方法。
【請求項２２】
前記第１のストレージ環境に従って構成されている第１のストレージへのアクセスを管理するための第１のデーモンを提供することと、
前記第２のストレージ環境に従って構成されている第２のストレージへのアクセスを管理するための第２のデーモンを提供することと、を更に含み、
前記第１のストレージ・プールに割り振られた前記データ・セットを前記第２のストレージ・プールへと前記移行することは、
前記第１のデーモンによって、前記第１のストレージ内の前記第１のストレージ・プールから、前記判定されたデータ・セットを読み込むことと、
前記第１のデーモンによって、前記判定されたデータ・セットを、前記第１のストレージ環境用の第１のデータ・フォーマットから、前記第２のストレージ環境用の第２のデータ・フォーマットに変換することと、
前記第２のデータ・フォーマットの前記データ・セットを、前記第２のストレージに書き込むための前記第２のデーモンに送信することと、を含む、
請求項２１に記載の方法。
【請求項２３】
前記第１および第２のストレージ・プールに格納されるアプリケーションの前記データ・セットへの入力／出力（Ｉ／Ｏ）アクセスのデータ・アクセス・パターンについてのデータ・アクセス情報を収集すること、を更に含み、前記第２のストレージ環境に格納されるべきである前記第１のストレージ・プール中のデータ・セットを判定することは、前記データ・セットが前記第２のストレージ環境に格納されるべきであることを前記データ・セットについて収集された前記データ・アクセス情報が示していると判定するものである、
請求項２１に記載の方法。
【請求項２４】
前記判定されたデータ・セットが前記第２のストレージ環境に格納されるべきであると前記データ・アクセス情報が示していると前記判定することは、
前記データ・セットの前記メタデータ中の前記データ・アクセス情報を機械学習モジュールに提供することと、
前記機械学習モジュールによって、前記提供されたデータ・アクセス情報を複数のアクセス・パターン分類のうちの１つへと分類することと、
前記データ・セット用のアクセス・パターン分類から複数のストレージ環境のうちの前記データ・セットが格納されるべき最適なストレージ環境を判定するための、ルールを適用することと、を含み、前記判定されたデータ・セットはあるアクセス・パターン分類を有するものとして分類され、前記ルールを前記適用することによって、前記第２のストレージ環境が前記データ・セットにとって最適なストレージ環境であると判定される、請求項２３に記載の方法。
【請求項２５】
前記アプリケーションの前記メタデータを前記処理して、前記第２のストレージ環境に格納されるべきである、前記第１のストレージ環境にある前記第１のストレージ・プールに格納される前記データ・セットを判定することは、
現時点のストレージ環境内で実装されている現時点のストレージに格納されているデータ・セットの前記メタデータ中のデータ・アクセス情報を、分類エンジンに提供することと、
前記分類エンジンによって、前記データ・セットの前記データ・アクセス情報から、アクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定することと、
前記アクセス・パターン分類を使用して、前記第２のストレージ環境を含む前記データ・セットにとって最適なストレージ環境を判定することと、を含む、請求項２１に記載の方法。
【請求項２６】
前記データ・アクセス情報は、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプを含むアクセス属性のうちの少なくとも複数を含み、前記アクセス・パターン分類のセットは、ただ１つのアクセス属性に基づく少なくとも１つのアクセス・パターン分類と、複数の前記アクセス属性に基づく少なくとも１つのアクセス・パターン分類と、を含む、請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・セットにとっておよびデータ・セットの移行にとって最適なストレージ環境を判定するための、コンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【０００２】
ストレージ・システムは、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ等などの、様々なストレージ環境を実装し得る。複数のストレージ環境を使用すると、ストレージ管理ライフサイクルのプロセスにおいて、データ用ストレージの設置の判断が複雑になる。ストレージ管理者はストレージを管理するための様々なツールを使用する。一度システムが選択されると（すなわち、ウェブ対応サーバ（ｗｅｂ−ｆａｃｉｎｇ  ｓｅｒｖｅｒ）にはブロック・ベースのストレージ、プリント・システムにはファイル・ベースのストレージ、ならびにピクチャなどの非構造化データまたはファイル・コラボレーション（およびコンテンツ・ストリーミング）にはオブジェクト・ベースのストレージ）、ストレージの方法論は通常、技術の更新サイクルまで変更されない。
【０００３】
当技術分野では、アプリケーションのデータ・セットを格納するための場所を管理するための、改善された技法が必要とされている。
【発明の概要】
【０００４】
実施形態は、データ・セットにとっておよびデータ・セットの移行にとって最適なストレージ環境を判定するための、コンピュータ・プログラム製品、システム、および方法を含む。各アプリケーションのメタデータは、アプリケーションがデータ・セットを格納するために使用するストレージ・プールを示し、各ストレージ・プールは、複数のストレージ環境のうちの１つの中に、データ・セットを格納するための様々な組織化スキームを使用して構成される。少なくとも１つのアプリケーションのメタデータは、様々なストレージ環境から割り当てられるそのアプリケーションのデータ・セットを格納するためのストレージ・プールを示す。アプリケーションのメタデータが処理されて、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されているアプリケーションのデータ・セットが判定される。判定されたデータ・セットは、第１のストレージ・プールから第２のストレージ環境内で実装される第２のストレージ・プールに移行される。
【０００５】
上記の実施形態の場合、データ・セットが第２のストレージ環境へと移行され得るように、アプリケーションのメタデータを使用して、第１のストレージ環境内のストレージ・プールに格納されるデータ・セットが第２のストレージ環境に格納されるべきであることが判定される。このように、データ・セットが最適なストレージ環境へと移行されるように、アプリケーションが使用するストレージ・プールに格納されるデータ・セットについて、より最適なストレージ環境が選択され得ることを判定するために、メタデータが使用される。
【０００６】
更なる実施形態では、ストレージ環境は、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ、およびカウント・キー・データ（ＣＫＤ）・ストレージを含む、少なくとも複数のストレージ環境を含む。
【０００７】
上記の実施形態の場合、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ、およびＣＫＤストレージにわたる様々な共有ストレージ環境のうちの１つが、データ・セットへの移行に関与でき、アプリケーションがアクセス可能なストレージ・システムにおいて実装され得る共有ストレージ環境が活用されるようになっている。
【０００８】
更なる実施形態では、アプリケーションのメタデータは、判定されたデータ・セットが第２のストレージ・プールに格納されることを示すように更新される。
【０００９】
上記の実施形態の場合、メタデータは、移行されたデータ・セットを格納すべき新しい第２のストレージ・プールおよび第２のストレージ環境を反映するように更新され、この結果このメタデータは、ストレージ環境間でセットの更なる移行が行われるべきかどうかを判定するために処理され得る。
【００１０】
更なる実施形態では、第１のデーモンが、第１のストレージ環境に従って構成されている第１のストレージへのアクセスを管理し、第２のデーモンが、第２のストレージ環境に従って構成されている第２のストレージへのアクセスを管理する。データ・セットは、第１のデーモンが第１のストレージ内の第１のストレージ・プールから判定されたデータ・セットを読み込むことによって移行される。第１のデーモンは、判定されたデータ・セットを、第１のストレージ環境用の第１のデータ・フォーマットから、第２のストレージ環境用の第２のデータ・フォーマットに変換する。第２のデータ・フォーマットのデータ・セットは、第２のストレージに書き込むための第２のデーモンに送信される。
【００１１】
上記の実施形態の場合、ストレージ環境デーモンは、ソースのストレージ環境から最適なストレージ環境へのデータ・セットの移動を管理し、この場合、デーモンの各々は、それらのストレージ環境中のデータへのアクセスを管理するための、ならびに、他のストレージ・デーモンとの通信およびデータ・セットを移行しようとしているターゲットのストレージ環境のデータ・フォーマットへのデータ・セットの変換を管理するための、必要な全ての機能およびＡＰＩを含む。
【００１２】
更なる実施形態では、第１および第２のストレージ・プールに格納されるアプリケーションのデータ・セットへの入力／出力（Ｉ／Ｏ）アクセスのデータ・アクセス・パターンについてのデータ・アクセス情報が収集される。第２のストレージ環境に格納されるべきである第１のストレージ・プール中のデータ・セットを判定することは、データ・セットが第２のストレージ環境に格納されるべきであることをデータ・セットについて収集されたデータ・アクセス情報が示していると判定することを含む。
【００１３】
上記の実施形態の場合、最適なストレージの判定は、検討中のデータ・セットに関する現時点の操作パラメータ、例えば、現時点のデータ・アクセス・パターンに基づいてストレージ選択を最適化するためのＩ／Ｏアクセスのデータ・アクセス・パターンに基づいている。
【００１４】
更なる実施形態では、判定されたデータ・セットが第２のストレージ環境に格納されるべきであることをデータ・アクセス情報が示していると判定することは、データ・セットのメタデータ中のデータ・アクセス情報を機械学習モジュールに提供することを含む。機械学習モジュールは、提供されたデータ・アクセス情報を、複数のアクセス・パターン分類のうちの１つへと分類する。データ・セット用のアクセス・パターン分類から複数のストレージ環境のうちのデータ・セットが格納されるべき最適なストレージ環境を判定するための、ルールを適用する。判定されたデータ・セットはあるアクセス・パターン分類を有するものとして分類され、この場合、ルールを適用することによって、第２のストレージ環境がデータ・セットにとって最適なストレージ環境であると判定される。
【００１５】
上記の実施形態の場合、機械学習モジュールを使用してデータ・アクセス情報をアクセス・パターン分類へと分類し、それを次いでルール・エンジンに適用して、最適なストレージ環境が選択される。この機械学習モジュールの使用により、アクセス情報に基づいて最適なまたは最良のアクセス・パターン分類が提供され、次いでそれを使用して、アクセス・パターン分類に基づいて最適なストレージ選択することができるが、この理由は、特定のタイプのアクセス・パターンには特定のタイプのストレージ環境がより適しているからである。
【００１６】
更なる実施形態では、最適なストレージ環境が判定されるデータ・セットごとに、判定されたそのデータ・セットにとって最適なストレージ環境にそのデータ・セットが格納されるかどうかの判定が行われる。判定されたデータ・セットにとって最適なストレージ環境に現時点では格納されていない各データ・セットは、判定されたデータ・セットにとって最適なストレージ環境へと移行される。
【００１７】
更なる実施形態では、データ・セットのデータ・アクセス情報の分類は、データ・セットのデータ・アクセス情報に基づいてアクセス・パターン分類のうちの１つを生成するように訓練される、機械学習アルゴリズムによって行われる。
【００１８】
上記の実施形態の場合、機械学習アルゴリズムは、実際のアクセス・パターンに基づいてアクセス・パターン選択を選択して、データ・アクセス情報を分類する際の機械学習アルゴリズムの予測品質を改善し、データ・セット用に使用すべきストレージ環境の選択の改善をもたらすように訓練される。
【００１９】
更なる実施形態では、データ・アクセス情報は、様々なデータ・セットについて、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプ、のうちの複数を含む。
【００２０】
更なる実施形態では、ストレージ環境は、オブジェクト・ストレージ環境と、ファイル・ストレージ環境と、ブロック・ストレージ環境と、を含む。アプリケーションのデータ・セットごとに最適なストレージ環境を判定するためのルールは、データ・セットがファイルとしてアクセスされると判定したことに応答して、データ・セットにとって最適なストレージ環境がファイル・ストレージであると示すこと、ランダムなアクセス・パターンを含むデータ・セット用のアクセス・パターン分類に応答して、最適なストレージ環境がブロック・ストレージであると示すこと、シーケンシャルなアクセス・パターンを含むデータ・セット用のアクセス・パターン分類に応答して、最適なストレージ環境がファイル・ストレージであると示すこと、１秒当たりの操作の多いアクセス・パターンを含むデータ・セット用のアクセス・パターン分類に応答して、最適なストレージ環境がブロック・ストレージであると示すこと、１秒当たりの操作が少なく処理ユニット負荷の高い使用状況のアクセス・パターンを含むデータ・セット用のアクセス・パターン分類に応答して、最適なストレージ環境がファイル・ストレージであると示すこと、低レイテンシ・アクセスが必要なデータ・アクセスの場合に生じる低レイテンシを含むアクセス・パターン分類に応答して、最適なストレージ環境がブロック・ストレージであると示すこと、高レイテンシおよびサイズ閾値よりも大きいデータ・セットのサイズを含むアクセス・パターン分類に応答して、最適なストレージ環境がファイル・ストレージであると示すことであって、高レイテンシはタイムアウトせずに高レイテンシに耐えるデータ・アクセスについて生じる、示すこと、高レイテンシに耐性があり（ｈｉｇｈ  ｌａｔｅｎｃｙ  ｔｏｌｅｒａｎｔ）かつデータ・セットのサイズがサイズ閾値未満のアクセス・パターン分類に応答して、最適なストレージ環境がオブジェクト・ストレージであると示すこと、トランザクション・データベースのアクセス・パターンを含むアクセス・パターン分類に応答して、最適なストレージ環境がブロック・ストレージであると示すこと、ファイル・データベースのアクセス・パターンを含むアクセス・パターン分類に応答して、最適なストレージ環境がファイル・ストレージであると示すこと、ならびにウェブ・データベースのアクセス・パターンを含むアクセス・パターン分類に応答して、最適なストレージ環境がブロック・ストレージであると示すこと、を含む、少なくとも複数のルールを含む。
【００２１】
更なる実施形態は、複数のストレージ環境におけるデータの格納を管理するための、コンピュータ・プログラム製品、システム、および方法を含む。現時点のストレージ環境内で実装される現時点のストレージに格納されるデータ・セットのデータ・アクセス情報は、データ・セットのデータ・アクセス情報からアクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定する分類エンジンに提供される。アクセス・パターン分類を使用して、データ・セットにとって最適なストレージ環境を判定する。データ・セットは、現時点のストレージ環境が最適なストレージ環境を含まないことに応答して、最適なストレージ環境内で実装されるターゲットのストレージに移動される。
【００２２】
上記の実施形態の場合、アクセス・パターン分類は、機械学習および試験に基づいて分類の改善が得られるようにデータ・アクセス情報を処理する、分類エンジンから判定される。この改善された分類は次いで、データ・セットの実際のアクセス・パターンに基づいて、データ・セットにとって最も妥当かつ最適なストレージ環境を選択するために使用される。
【００２３】
更なる実施形態では、データ・アクセス情報は、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプを含むアクセス属性のうちの少なくとも複数を含む。アクセス・パターン分類のセットは、ただ１つのアクセス属性に基づく少なくとも１つのアクセス・パターン分類と、複数のアクセス属性に基づく少なくとも１つのアクセス・パターン分類と、を含む。
【００２４】
更なる実施形態では、データ・セットが複数のストレージ環境のうちの１つにおけるストレージに格納されているアプリケーションのアプリケーション・メタデータが提供され、あるアプリケーションの各アプリケーション・メタデータは、格納されるアプリケーションのデータ・セットごとに、ストレージのうちの１つにおけるストレージ・プールとデータ・セットのデータ・アクセス情報とを示し、アプリケーション・メタデータは、様々なストレージ環境にあるストレージに格納されるアプリケーションの複数のデータ・セットを示す。
【図面の簡単な説明】
【００２５】
【図１】ストレージ環境の実施形態を示す図である。
【図２】アプリケーション・メタデータの実施形態を示す図である。
【図３】アプリケーション・メタデータ中のデータ・セット用のデータ・セット・メタデータの実施形態を示す図である。
【図４】データ・セット・メタデータ中のデータ・セットのデータ・アクセス情報の実施形態を示す図である。
【図５】ストレージ・プール情報の実施形態を示す図である。
【図６ａ】ルールの実施形態を示す図である。
【図６ｂ】ルールのセットの実施形態を示す。
【図７】ストレージ環境中のデータ・セットのデータ・アクセス情報を収集するための操作の実施形態を示す図である。
【図８】アプリケーションのデータ・セットを移行すべきかどうかを判定するための操作の実施形態を示す図である。
【図９】データ・セットを移行させるリクエストを処理するための操作の実施形態を示す図である。
【図１０】移行されたデータ・セットをターゲットのストレージ環境に格納するための操作の実施形態を示す図である。
【図１１】図１のコンポーネントが実装され得るコンピューティング環境を示す図である。
【発明を実施するための形態】
【００２６】
記載される実施形態は、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ等などの、利用可能な様々なストレージ環境においてアプリケーションのデータ・セットを管理するための、コンピュータ技術の改善をもたらす。記載される実施形態は、データ・セットの現時点の操作属性、例えば、データ・セットにおけるＩ／Ｏ処理およびパフォーマンスに関連するデータ・アクセス情報ならびにデータ・セットの属性に基づいて、アプリケーションのデータ・セットを異なるストレージ環境に移動させるべきかについての判定を行うための、自動化された技法を提供する。組み込まれたストレージ環境管理システムは、各アプリケーションについて、アプリケーションのデータ・セットを格納するためにアプリケーションが使用するストレージ・プールを示すメタデータを維持する。各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成されている。少なくとも１つのアプリケーションのメタデータは、様々なストレージ環境から割り当てられるそのアプリケーションのデータ・セットを格納するためのストレージ・プールを示す。メタデータは、データ・セットのアクセス・パターン分類を判定しこのアクセス・パターン分類からデータ・セットにとって最適なストレージ環境を判定するように処理するための、機械学習モジュールに提供される。データ・セットは現時点で最適なストレージ環境に格納されていない場合には、データ・セットは最適なストレージ環境へと移行され得る。このように、あるデータ・セットについて異なるストレージ環境を使用する決定は、データ・セットが最も適したストレージ環境に格納されているかどうかを判定するための、データ・セットの現時点の操作パラメータに基づいている。
【００２７】
図１は、ホスト・システム１０４中のアプリケーション１０２から、第１、第２からｍ番目までの様々なストレージ環境のそれぞれに対応する複数のストレージ１０６１、１０６２、…、１０６ｍのうちの１つに格納するための入力／出力リクエストを受信する、ストレージ・サーバ１００の実施形態を示す。コンポーネント１００、１０４、および１０６１、１０６２、…、１０６ｍは、ネットワーク１０８を介して通信する。ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ、およびカウント・キー・データ（ＣＫＤ）・ストレージのストレージ環境など、ストレージ環境が異なれば、使用するデータおよびメタデータのフォーマット、ならびにアプリケーション１０２のデータ・セットを格納するための技術は異なる。ファイル・ストレージは、階層型ファイル・システムではデータ・セットをファイルとして格納し、ファイルについてのメタデータおよびその内容は、ファイル・システムに格納される。ブロック・ストレージでは、データ・セットは、ブロックへのアクセスおよびブロックに対する操作の実行のために使用され得るアドレスおよびアプリケーション・プログラム・インターフェース（ＡＰＩ）を有する、ブロックとして格納される。ブロック・ストレージにおけるブロックは、別個のメタデータを有さない場合のある、データのチャンクである。ブロック・ストレージは、トランザクション型データベースの運用などのパフォーマンス重視の用途にとって最適である。オブジェクト・ストレージでは、データおよびデータのメタデータは、一意の識別子を有するオブジェクトとしてバンドル化され格納される。オブジェクト・ストレージではユーザはメタデータのフォーマットを定義できるが、このことは分析に有用であり、オブジェクトには、ハイパーテキスト転送プロトコル（ＨＴＴＰ）プログラミング・インターフェースまたは任意の他の好適なオブジェクト・アクセス方法を使用してアクセスできる。
【００２８】
ストレージ１０６１、１０６２、…、１０６ｍは、同じデータ・センタに存在しても異なるデータ・センタに存在してもよい。更に、同じストレージ環境について、追加の別個のストレージ・システムが存在してもよい。
【００２９】
ストレージ・サーバ１００は、１つまたは複数のプロセッサ・デバイスなどのプロセッサ１１０と、プロセッサ１１０によって実行されるプログラム・コードを有するメモリ１１２と、を含む。メモリ１１２は、ストレージ１０６１、１０６２、…、１０６ｍ中のデータ・セットと、データ・セット・メタデータ３００およびデータ・アクセス情報４００を含む、ストレージ１０６１、１０６２、…、１０６ｍに格納されるアプリケーション１０２からのデータ・セットについてのメタデータを有する、アプリケーション・メタデータ２００と、ストレージ１０６１、１０６２、…、１０６ｍ内に構成される、割り当てられたまたはデータ・セットを格納できる空いたストレージ・プールについてのストレージ・プール情報５００と、の移行を管理するために、プロセッサ１１０によって実行される、移行マネージャ１１４を含む。
【００３０】
移行エンジン１１６は、入力１２０としてデータ・セットのデータ・アクセス情報４００の何らかの組合せを受信し、出力としてアクセス・パターン分類１２２を生成するための機械学習モジュール１１８を含み、このアクセス・パターン分類１２２は、判定されたアクセス・パターン分類１２２に基づいて最適なストレージ環境１２６を判定するためのルールのルール・セット６００を処理する、ルール・エンジン１２４に提供され得る。移行エンジン１１６内のコンポーネント１２０、１１８、１２２、１２４、および１２６の間に示す矢印は、移行エンジン１１６内の実際の構造ではなく、コンポーネント間のデータの流れを表現するために使用される。
【００３１】
機械学習モジュール１１８は、入力１２０であるデータ・アクセス情報およびデータ・セットの他の属性に基づいてアクセス・パターン分類を判定するために、機械学習の技法、例えば、決定木学習、結合ルール学習、人工ニューラル・ネットワーク、帰納プログラミング論理、サポート・ベクトル・マシン、ベイジアン・モデル、等を実施する。機械学習モジュール１１８は、特定の入力データ・アクセス情報に対して様々なアクセス・パターン分類を生成するように訓練され得る。一実施形態では、機械学習モジュール１１８は、データ・アクセス情報の属性、例えば１秒当たりのＩ／Ｏ操作、Ｉ／Ｏ当たりのレイテンシ、Ｉ／Ｏタイムアウトの数、ワークロードのタイプ、データ・セットのサイズ、データ・アクセス・パターン等の、様々な組合せについて調整されたアクセス・パターン分類を生成するように、バック・プロパゲーションを使用して、隠れ層中のノードにおける重みおよびバイアスを調整するように訓練され得る、人工ニューラル・ネットワーク・プログラムを備え得る。出力される最適なストレージ環境１２６は調整され、機械学習モジュール１１８は、入力される様々なデータ・アクセス情報について所望の最適なストレージ環境を生成するように調整される。バック・プロパゲーションでは、出力の誤差のマージンが測定され、これに応じて誤差を小さくするように、隠れ層中のノードにおける重みおよびバイアスが調整される。バック・プロパゲーションは、勾配降下を用いる人工ニューラル・ネットワークの教師あり学習用のアルゴリズムを備え得る。人工ニューラル・ネットワークおよび誤差関数が与えられれば、方法は、ニューラル・ネットワークの重みおよびバイアスに関して誤差関数の勾配を計算し得る。
【００３２】
メモリ１１２は、ストレージ１０６１、１０６２、…、１０６ｍにおいて利用可能な様々なストレージ環境の各々用の、ストレージ環境デーモン１２８１、１２８２、…、１２８ｍを更に含み得る。ストレージ環境デーモン１２８１、１２８２、…、１２８ｍは、それらの対応するストレージ環境用のデータにアクセスしフォーマットする、および、互いと通信してデータをあるストレージ環境から別のストレージ環境へと移動させるための、プログラムまたはプロセスを備える。更に、各ストレージ環境デーモン１２８ｉは、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ、ＣＫＤストレージ等のうちのいずれかの間でなど、ストレージ環境ｉ用のデータ・フォーマットのデータ・セットを別のストレージ環境ｊ用のデータ・フォーマットに変換するためのプログラム・コンポーネントを含んでもよく、また、デーモン１２８ｉが管理するストレージ環境ｉに合わせて構成されるストレージと通信するためのアプリケーション・プログラミング・インタフェース（ＡＰＩ）、例えば直接接続、伝送制御プロトコル（ＴＣＰ）／ユーザ・データグラム・プロトコル（ＵＤＰ）転送、ＲＥＳＴｆｕｌ  ＡＰＩ（例えばＡｍａｚｏｎ  Ｓｉｍｐｌｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ（Ｓ３））を含んでもよい。（Ａｍａｚｏｎ  Ｓ３およびＡｍａｚｏｎ  Ｓｉｍｐｌｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅは、アメリカ合衆国または他の国々あるいはその組合せにおけるＡｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＡＷＳ）のサービス名称、商標、登録商標、またはトレード・ドレスである）
【００３３】
移行マネージャ１１４、移行エンジン１１６、機械学習モジュール１１８、ルール・エンジン１２４、およびデーモン１２８１、１２８２、…、１２８ｍは図１では、メモリ１１２にロードされプロセッサ１１０によって実行される、プログラム・コードとして示されている。代替として、これらのプログラムの機能の一部または全部は、ストレージ・サーバ１００中のハードウェア・デバイスにおいて、例えば特定用途向け集積回路（ＡＳＩＣ）において実装され得るか、または別個の専用プロセッサによって実行され得る。
【００３４】
ストレージ１０６１、１０６２、…、１０６ｍは、磁気ハード・ディスク・ドライブ、磁気テープ記憶装置、ソリッド・ステート電子部品から成るソリッド・ステート・ストレージ・デバイス（ＳＳＤ）、ＥＥＰＲＯＭ（電気的消去可能プログラム可能読み出し専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）ドライブ、ストレージ・クラス・メモリ（ｓｔｏｒａｇｅ−ｃｌａｓｓ  ｍｅｍｏｒｙ；ＳＣＭ）等、相変化メモリ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ；ＰＣＭ）、抵抗性ランダム・アクセス・メモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ；ＲＲＡＭ（登録商標））、スピン転移トルク・メモリ（ｓｐｉｎ  ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ｍｅｍｏｒｙ；ＳＴＭ−ＲＡＭ）、導電性ブリッジＲＡＭ（ｃｏｎｄｕｃｔｉｖｅ  ｂｒｉｄｇｉｎｇ  ＲＡＭ；ＣＢＲＡＭ）、光学ディスク、テープ等などの、様々なタイプおよびクラスのストレージ・デバイスにおいて実装され得る。ストレージ・アレイは、単純ディスク束（Ｊｕｓｔ  ａ  Ｂｕｎｃｈ  ｏｆ  Ｄｉｓｋ；ＪＢＯＤ）、直接アクセス記憶装置（Ｄｉｒｅｃｔ  Ａｃｃｅｓｓ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ；ＤＡＳＤ）、独立ディスク冗長アレイ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ；ＲＡＩＤ）のアレイ、仮想化デバイス等などのストレージ・デバイス１１２１、…、１１２ｍにおけるランクが更に構成され得る。更に、ストレージ１０６１、１０６２、…、１０６ｍを実装するストレージ・デバイスは、様々なベンダからの異種のストレージ・デバイスおよび様々なタイプのストレージ・デバイスを、例えば、第２のタイプのストレージ・デバイス、例えばＳＳＤよりもデータ転送速度が遅い、第１のタイプのストレージ・デバイス、例えばハード・ディスク・ドライブを含み得る。
【００３５】
メモリ１１２は、上記したものを含む好適な揮発性または不揮発性メモリ・デバイスを備え得る。
【００３６】
図２は、アプリケーション１０２のうちの１つを含むアプリケーション２０２用のアプリケーション・メタデータ２００中のアプリケーション・メタデータ２００ｉの例の実施形態を示し、アプリケーション２０２からのｎ個のデータ・セットの各々用のデータ・セット情報３００１、３００２、…、３００ｎを含む。
【００３７】
図３は、アプリケーション２０２のデータ・セット３００ｊ用のデータ・セット情報（メタデータ）３００ｊの例の実施形態を示しており、データ・セット名３０２と、データ・セット３０２が格納されるストレージ・プール３０４と、データ・セットにおけるデータ・アクセスの属性を有するデータ・アクセス情報４００ｋと、を示す。アプリケーションの様々なデータ・セットは、様々なストレージ環境でまたは同じストレージ環境内で実装されるストレージ１０６１、１０６２、…、１０６ｍにおけるストレージ・プールに格納され得る。
【００３８】
図４は、アプリケーション１０２のうちの１つ用のアプリケーション・メタデータ２００ｉ中の１つのデータ・セット３００ｊ用のデータ・アクセス情報４００ｋの例の実施形態を示し、例として、例えば時間周期間隔などのある測定間隔中の１秒当たりのＩ／Ｏ操作の数、または例えばサブチャンネル開始（ＳＳＣＨ）操作の数などの操作の間隔の数の平均を含み得る、例えば１秒当たりのＩ／Ｏ操作４０２などのデータ・アクセスの属性、測定間隔中のＩ／Ｏリクエストの処理におけるレイテンシの平均を含み得る、Ｉ／Ｏ操作当たりのレイテンシ４０４、測定間隔中のＩ／Ｏタイムアウト４０６の数、トランザクション・データベース操作、アプリケーション操作、重要な操作、データベース・ファイル操作等などの、データ・アクセスのワークロードのタイプ４０８、例えばシーケンシャルなまたはランダムな、データ・アクセス・パターン４１０、およびデータ・セット３０２のデータ・セットのサイズ４１２、を含む。データ・アクセス情報４００ｋには、追加のデータ・アクセスの属性も維持することができる。
【００３９】
図２、図３、および図４のアプリケーション・メタデータ情報は、アプリケーションが使用するデータ・セットと、様々なストレージ環境内で実装され得る、データ・セットに割り振られたストレージ・プールと、各データ・セットのデータ・アクセス情報と、についての情報を提供する。
【００４０】
図５は、様々なストレージ１０６１、１０６２、…、１０６ｍにおける各ストレージ・プールについて維持されるストレージ・プール情報５００ｉの例の実施形態を示し、ストレージ・プールが実装されるストレージ５０２、例えばストレージ１０６１、１０６２、…、１０６ｍのうちの１つと、ファイル・ストレージ、ブロック・ストレージ、オブジェクト・ストレージ、ＣＫＤストレージ等などの、ストレージ５０２が構成されるストレージ環境のタイプと、アプリケーション１０２のデータ・セットに割り当てられたストレージ５０２内のストレージ・プールを識別する、割り当てられたストレージ・プール５０６と、アプリケーション１０２のデータ・セットを格納するための割り当てに利用可能な、空いているストレージ・プール５０８と、を含む。
【００４１】
図６ａは、ルール・セット６００中のルール６００ｉの例の実施形態を示し、機械学習モジュール１１８からの出力１２２を含むアクセス・パターン分類６０２と、分類されたアクセス・パターン分類にとって最適なストレージ環境６０４と、を含む。
【００４２】
図６ｂは、表６１０において実装されるルール６００の例を示し、この表ではルール６００ｉの各々が、アクセス・パターン分類６０２と、対応するアクセス・パターン分類６０２にとって最適なストレージ環境６０４と、を提供する。管理者は、ルールを削除もしくは修正する、または様々なアクセス・パターン分類について新しい最適なストレージ環境を追加することによって、ルール表６１０を更新することができる。
【００４３】
ある実施形態では、アクセス・パターン分類１２２は単一の分類を含み得る。更なる実施形態では、アクセス・パターン分類は、複数の分類の組合せ、例えば、高レイテンシおよび大規模データ・セットを含み得る。そのような場合、ルール・セット６００は、アクセス・パターン分類の組合せにとって最適な特定のストレージ環境を提供し得る。出力されるアクセス・パターン分類１２２が分類の組合せを含み、ルール・セット６００が組合せのうちのただ１つの分類にとって最適なストレージ環境６０４を提供するのみである場合、ルール・エンジン１２４は、最適なストレージ環境１２６として、組合せのうちのその１つの分類にとって最適なストレージ環境を出力し得る。
【００４４】
図７は、ストレージ環境デーモン１２８１、１２８２、…、１２８ｍが行う、それらの対応するストレージ環境のデータ・アクセス情報を収集するための操作の実施形態を示す。ストレージ環境デーモン１２８ｉは（ブロック７００において）、ストレージ環境ｉで実装されるストレージ１０６ｉ中のデータ・セットのＩ／Ｏアクセス情報の収集を開始する。ストレージ環境デーモン１２８ｉは、デーモン１２８ｉが管理するストレージ１０６ｉへのＩ／Ｏリクエストを処理するときに、データ・アクセス情報を連続的に収集し得る。ストレージ環境ｉにおけるストレージ１０６ｉ中のデータ・セットへのＩ／Ｏアクセスごとに、ストレージ環境デーモン１２８ｉは（ブロック７０２において）、平均を含み得る１秒当たりのＩ／Ｏ操作４０２を更新し、Ｉ／Ｏ当たりのレイテンシ４０４の平均を更新し、Ｉ／Ｏアクセスがタイムアウトになった場合はＩ／Ｏタイムアウト４０６を更新する。デーモン１２８ｉは（ブロック７０４において）、ランダム、シーケンシャル等などのデータ・アクセスのアクセス・パターンを判定し、判定されたデータ・アクセス・パターンを示すようにアクセス・パターン４１０を更新する。デーモン１２８ｉは（ブロック７０６において）、ある期間中の、データベース・トランザクション・アクセス、データベース・ファイル・アクセス、ファイル・アクセス、ウェブ・アクセス等などのアプリケーション・アクセスについて、ワークロードのタイプを判定し、判定されたワークロードを示すようにワークロードのタイプ４０８を更新する。データ・セットのサイズ４１２は（ブロック７０８において）、データ・セットを修正する書き込み操作の後で、更新される。
【００４５】
図７の実施形態の場合、各デーモン１２８ｉは、同じくデーモン１２８ｉによって対処されるＩ／Ｏリクエストの処理後にデータ・アクセス情報が連続的に更新されるように、そのデーモン１２８ｉが管理するストレージ環境にあるストレージ・デバイスのデータ・アクセス情報の収集を管理する。データ・アクセス情報を連続的に更新することによって、移行マネージャ１１４は、現時点の操作状態を反映したアクセス・パターン分類１２２を取得するために機械学習モジュール１１８に入力すべき最新のデータ・アクセス情報を有する。
【００４６】
図８は、移行マネージャ１１４、機械学習モジュール１１８、およびルール・エンジン１２４が行う、アプリケーション１０２のデータ・セットを移行すべきかどうかおよびデータ・セットにとって最適なストレージ環境を判定するための操作の実施形態を示す。移行マネージャ１１４は、データ・セット３００ｊのデータ・アクセス情報４００ｋが更新された後で、または、アプリケーション１０２のアプリケーション・メタデータ２００ｉを周期的に処理してアプリケーション１０２のデータ・セットを移行すべきかどうかを判定することによって、データ・セットを移行すべきかどうかを判定するための操作を実行できる。（ブロック８００において）アプリケーション１０２のデータ・セットを移行すべきかどうかを判定するための操作が開始されると、移行マネージャ１１４は（ブロック８０２において）、データ・アクセス情報４００ｋ（例えば、１秒当たりのＩ／Ｏ、Ｉ／Ｏ当たりのレイテンシ、Ｉ／Ｏタイムアウト、ワークロードのタイプ、データ・アクセス・パターン、データ・セットのサイズ）、およびアクセス・パターン分類を判定するための他の関連情報、例えばアプリケーション２０２またはデータ・セットを使用しているアプリケーションのタイプから、データ・セット３００ｊについての入力１２０を判定する。移行マネージャ１１４は（ブロック８０４において）、判定された入力１２０（例えばデータ・アクセス情報４００ｋ）を機械学習モジュール１１８に提供して、入力データ・アクセス情報４００ｋを複数のアクセス・パターン分類１２２のうちの１つとして分類する。判定されたアクセス・パターン分類１２２は（ブロック８０６において）、ルール・セット６００を適用してデータ・セット用のアクセス・パターン分類１２２からデータ・セットにとって最適なストレージ環境を判定するための、ルール・エンジン１２４へと送信される。
【００４７】
ルール・エンジン１２４は（ブロック８０８において）、フィールド６０２におけるものなどのアクセス・パターン分類１２２用のルール６００ｉを判定し、判定されたルール６００ｉにおいて示される最適なストレージ環境６０４を、移行マネージャ１１４に返す。（ブロック８１０において）検討中のデータ・セット３００ｊが最適なストレージ環境にあるストレージ・プール３０４に現時点で格納されている、すなわち、割り当てられたストレージ・プールのフィールド５０６内の判定されたストレージ・プール３０４を識別するストレージ・プール情報５００ｉがストレージ環境タイプ５０４として最適なストレージ環境を有する場合には、データ・セットは既に最適なストレージ環境に格納されているので、制御を終了する。（ブロック８１０において）現時点でデータ・セットが最適なストレージ環境に格納されていない場合には、移行マネージャ１１４は（ブロック８１２において）現時点でデータ・セットを格納しているソースのストレージ環境ｉ用のデーモン１２８Ｓを呼び出して、データ・セットを最適なストレージ環境へと移行させる。
【００４８】
図８の実施形態の場合、データ・セットならびにデータ・セットのサイズおよびアプリケーションのタイプなどのデータ・セット属性に関するＩ／Ｏアクセスのパフォーマンスの情報に関与する現時点のデータ・アクセス情報が、機械学習アルゴリズムを使用してアクセス・パターン分類１２２を判定する機械学習モジュール１１８に提供される。このように、アクセス・パターン分類１２２は現時点の操作状態に基づいており、正確な分類が可能となる信頼度の範囲内で計算できる。次いでアクセス分類１２２を使用して、データ・セットにとって最適なストレージ環境が、異なるデータ・セット分類または分類の組合せに対して異なる最適なストレージ環境を特定する、ルール・セット６００から判定される。管理者は、異なるアクセス・パターン分類へのストレージ環境のマッピングが最適化されるように、ルール・セット６００を連続的に調整することができる。このことにより、多数の操作要因およびデータ・セットの特徴をリアルタイムで考慮して、データ・セットを、データ・セットにとってより最適かつ好適なストレージ環境へと移行すべきかどうかを判定することが可能になる。
【００４９】
更なる実施形態では、最適なストレージ環境の選択を最適化するために、機械学習モジュール１１８への入力１２０として、政府規制、事業規制、過去の傾向、技術更新（例えばオール・フラッシュ構想）、およびモデリング、ならびに物理的な移行（すなわち、階層間の移行ではなく別のデータ・センタへの移行）などの、他の属性を使用できる。
【００５０】
図９は、ストレージ１０６Ｓに格納されているデータ・セットを、ターゲットのストレージ環境デーモン１２８Ｔが管理する、データ・セットにとって最適なストレージ環境を含むターゲットのストレージ環境へと移行するために呼び出される、ソースのストレージ環境デーモン１２８Ｓが行う操作の実施形態を示す。ソースのストレージ環境デーモン１２８Ｓが（ブロック９００において）ターゲットのストレージ環境へとデータ・セットを移行させるリクエストを受信すると、デーモン１２８Ｓは（ブロック９０２において）移行すべきデータ・セットをソースのストレージ１０６Ｓにおけるソースのデータ・フォーマットで読み込み、（ブロック９０４において）そのデータ・セットを、ターゲットの（最適な）ストレージ環境のターゲットのデータ・フォーマットに変換する。デーモン１２８Ｓは、（ブロック９０６において）ターゲットのデータ・フォーマットのデータ・セットを格納のためのターゲットのストレージ環境デーモン１２８Ｔに送信する。
【００５１】
図１０は、ソースのストレージ環境から移行されたデータ・セットを含み得る、ターゲットのストレージ環境内のストレージ・プールに格納すべきデータ・セットを（ブロック１０００において）受信したときに、ターゲットのストレージ環境デーモン１２８Ｔが行う操作の実施形態を示す。デーモン１２８Ｔは（ブロック１００２において）、空いているストレージ・プール５０８中の、ターゲットの（最適な）ストレージ環境タイプ５０４用に利用可能なストレージ・プールを判定する。デーモン１２８Ｔは（ブロック１００４において）、受信したデータ・セットを判定された空いているストレージ・プールに書き込み、（ブロック１００６において）受信したデータ・セットが判定されたターゲットの（最適な）ストレージ環境にある空いているストレージ・プールを示すように、データ・セット・メタデータ３００ｊ用のストレージ・プール３０４を更新する。割り当てられたストレージ・プールは次いで、空いているストレージ・プール５０８から割り当てられたストレージ・プール５０６へと（ブロック１００８において）移動される。
【００５２】
図９および図１０の実施形態の場合、ストレージ環境デーモンは、ソースのストレージ環境から最適なストレージ環境へのデータ・セットの移動を管理し、この場合、デーモンの各々は、それらのストレージ環境中のデータへのアクセスを管理するための、ならびに、他のストレージ・デーモンとの通信およびデータ・セットを移行しようとしているターゲットのストレージ環境のデータ・フォーマットへのデータ・セットの変換を管理するための、必要な全ての機能およびＡＰＩを含む。
【００５３】
記載した実施形態では、変数ｉ、ｊ、ｍ、ｎ、等は、様々な要素に対して用いられるとき、その要素の同じまたは異なる例を表し得る。
【００５４】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読ストレージ媒体を含んでもよい。
【００５５】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用される命令を保持および保存できる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の好適な組合せであり得るが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能なプログラマブル読取り専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック（登録商標）、フロッピー（登録商標）・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の好適な組合せが含まれる。本明細書において使用されるコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または配線を介して伝送される電気信号などの、一時的信号そのものであると解釈されるべきではない。
【００５６】
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを経由して、外部のコンピュータもしくは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを備え得る。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に保存されるように転送する。
【００５７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ（登録商標）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードのいずれか、であり得る。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でかつ部分的に遠隔のコンピュータ上で、または専ら遠隔のコンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、遠隔のコンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよく、または、外部のコンピュータへの接続を（例えば、インターネット・サービス・プロバイダを利用してインターネットを介して）行ってもよい。いくつかの実施形態では、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個人化することができる。
【００５８】
本明細書には、本発明の実施形態に係る方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様が記載されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せを、コンピュータ可読プログラム命令によって実施できることが、理解されるであろう。
【００５９】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が保存されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んだ製品を備えるように、コンピュータ可読ストレージ媒体に保存され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方式で機能するように指示できるものであってもよい。
【００６０】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータによって実行されるプロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００６１】
図中のフローチャートおよびブロック図には、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の、可能な実装形態のアーキテクチャ、機能性、および動作が説明されている。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で行われ得る。例えば連続して示される２つのブロックは、実際は実質的に並行して実行され得、またはこれらのブロックは時には関わる機能に応じて、逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実施され得ることが、留意されるであろう。
【００６２】
図１の演算コンポーネントは、ストレージ・サーバ１００とホスト１０４とストレージ１０６１、１０６２、…、１０６ｍとを含む、１つまたは複数のコンピュータ・システム、例えば図１１に示すコンピュータ・システム１１０２において実装され得る。コンピュータ・システム／サーバ１１０２は、プログラム・モジュールなどの、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的な文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム／サーバ１１０２は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールを、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスを含むコンピュータ・システム・ストレージ媒体内に配置することができる。
【００６３】
図１１に示すように、コンピュータ・システム／サーバ１１０２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１１０２のコンポーネントは、１つまたは複数のプロセッサまたは処理ユニット１１０４、システム・メモリ１１０６、およびシステム・メモリ１１０６からプロセッサ１１０４までを含む様々なシステム・コンポーネントを結合するバス１１０８を含み得るが、これらに限定されない。バス１１０８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのうちのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかのうちの１つまたは複数を表している。例として、限定するものではないが、そのようなアーキテクチャとしては、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、および周辺装置相互接続（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ；ＰＣＩ）バスが挙げられる。
【００６４】
コンピュータ・システム／サーバ１１０２は通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１１０２がアクセス可能な任意の利用可能な媒体であってよく、これには、揮発性媒体および不揮発性媒体、取り外し可能媒体および取り外し不可能媒体の両方が含まれる。
【００６５】
システム・メモリ１１０６は、ランダム・アクセス・メモリ（ＲＡＭ）１１１０またはキャッシュ・メモリ１１１２あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ１１０２は、他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ・システム・ストレージ媒体を更に含み得る。単なる例として、取り外し不可能な不揮発性磁気媒体（図示しないが典型的には「ハード・ドライブ」と呼ばれる）に対する読取りおよび書き込みを行うための、ストレージ・システム１１１３が提供され得る。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー（登録商標）・ディスク」）に対する読取りおよび書き込みを行うための磁気ディスク・ドライブ、ならびに、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光学媒体などの取り外し可能な不揮発性光ディスクに対する読取りおよび書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、各々が１つまたは複数のデータ媒体インターフェースによってバス１１０８に接続され得る。以下で更に描写し記載するように、メモリ１１０６は、本発明の実施形態の機能を実行するように構成されている１組の（例えば少なくとも１つの）プログラム・モジュールを有する、少なくとも１つのプログラム製品を含み得る。
【００６６】
１組の（少なくとも１つの）プログラム・モジュール１１１６を有するプログラム／ユーティリティ１１１４は、例としてメモリ１１０６に格納され得るが、また限定されることなく、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データにも格納され得る。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはこれらの何らかの組合せは、ネットワーキング環境の実装を含み得る。コンピュータ１１０２のコンポーネントは、本明細書に記載する本発明の実施形態の機能または方法論あるいはその両方を一般に実行する、プログラム・モジュール１１１６として実装され得る。図１のシステムは１つまたは複数のコンピュータ・システム１１０２において実装することができ、これらが複数のコンピュータ・システム１１０２において実装される場合には、コンピュータ・システムはネットワークを介して通信し得る。
【００６７】
コンピュータ・システム／サーバ１１０２はまた、キーボード、ポインティング・デバイス、ディスプレイ１１２０等などの１つもしくは複数の外部デバイス１１１８、ユーザとコンピュータ・システム／サーバ１１０２の対話を可能にする１つもしくは複数のデバイス、またはコンピュータ・システム／サーバ１１０２と１つもしくは複数の他のコンピューティング・デバイスとの通信を可能にする任意のデバイス（例えば、ネットワーク・カード、モデム等）、あるいはその組合せとも通信し得る。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェース１１２２を介して行うことができる。また更に、コンピュータ・システム／サーバ１１０２は、ネットワーク・アダプタ１１２４を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、または公共ネットワーク（例えばインターネット）、あるいはその組合せなどの、１つまたは複数のネットワークと通信し得る。描かれているように、ネットワーク・アダプタ１１２４は、バス１１０８を介してコンピュータ・システム／サーバ１１０２のその他のコンポーネントと通信する。示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム／サーバ１１０２と組み合わせて使用してもよいことが理解されるべきである。例としては以下が挙げられるが、これらに限定されない：マイクロコード、デバイス・ドライバ、冗長な処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、等。
【００６８】
用語「実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔｓ）」、「実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「１つまたは複数の実施形態（ｏｎｅ  ｏｒ  ｍｏｒｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「いくつかの実施形態（ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、および「１つの実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」は、そうではないと明示的に規定されていない限りは、「本発明の１つまたは複数の（ただし全てではない）実施形態」を意味する。
【００６９】
用語「を含む（ｉｎｃｌｕｄｉｎｇ）」、「を備える（ｃｏｍｐｒｉｓｉｎｇ）」、「を有する（ｈａｖｉｎｇ）」、およびこれらの変化形は、そうではないと明示的に規定されていない限りは、「を含むがそれに限定されない」を意味する。
【００７０】
項目を列挙したリストは、そうではないと明示的に規定されていない限りは、任意のまたは全ての項目が相互に排他的であることを示唆するものではない。
【００７１】
用語「１つの（ａ）」、「１つの（ａｎ）」、および「その（ｔｈｅ）」は、そうではないと明示的に規定されていない限りは、「１つまたは複数の」を意味する。
【００７２】
互いに通信するデバイスは、そうではないと明示的に規定されていない限りは、互いに連続的に通信している必要はない。更に、互いに通信するデバイスは直接的に、または１つもしくは複数の媒介物を介して間接的に、通信し得る。
【００７３】
互いに通信するいくつかのコンポーネントを有する実施形態の記載は、そのようなコンポーネントの全てが必要であることを示唆するものではない。そうではなく、本発明の多種多様な可能な実施形態を示すために、様々な任意選択的なコンポーネントが記載される。
【００７４】
本明細書で単一のデバイスまたは物品が記載されている場合、単一のデバイス／物品の代わりに２つ以上のデバイス／物品を（それらが協働するか否かに関わらず）使用できることが、容易に明らかであろう。同様に、本明細書で２つ以上のデバイスまたは物品が記載されている場合（それらが協働するか否かに関わらず）、２つ以上のデバイスもしくは物品の代わりに単一のデバイス／物品を使用できること、または、示された数のデバイスもしくは物品の代わりに異なる数のデバイス／物品を使用できることが、容易に明らかであろう。デバイスの機能性または特徴あるいはその両方は、そのような機能性／特徴を有するものとして明示的に記載されていない１つまたは複数の他のデバイスによって、代替的に具現化され得る。したがって、本発明の他の実施形態では、そのデバイス自体は必ずしも含まれない。
【００７５】
本発明の様々な実施形態の前述の説明は、例示および説明のために提示されたものである。網羅的であること、または本発明を開示された厳密な形態に限定することは、意図されていない。上記の教示に照らして、多くの修正および変更が可能である。本発明の範囲は、この詳細な説明ではなく、本明細書に添付した特許請求の範囲によって限定されることが意図されている。上記の明細書、例、およびデータは、本発明の構成の製造および使用の完全な説明を提供する。本発明の多くの実施形態は本発明の範囲から逸脱することなく実現できるため、本発明は以下に添付する特許請求の範囲に存する。
【図１】
2021531557.tif 000003
【図２】
2021531557.tif 000004
【図３】
2021531557.tif 000005
【図４】
2021531557.tif 000006
【図５】
2021531557.tif 000007
【図６ａ】
2021531557.tif 000008
【図６ｂ】
2021531557.tif 000009
【図７】
2021531557.tif 000010
【図８】
2021531557.tif 000011
【図９】
2021531557.tif 000012
【図１０】
2021531557.tif 000013
【図１１】
2021531557.tif 000014
【手続補正書】
【提出日】令和3年1月13日(2021.1.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のストレージ環境におけるデータ・セットの格納を管理するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータに、
データ・セットを格納するためにアプリケーションが使用するストレージ・プールを示す各アプリケーションのメタデータを維持することであって、各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成され、少なくとも１つのアプリケーションの前記メタデータは、様々なストレージ環境から割り当てられる前記アプリケーションの前記データ・セットを格納するためのストレージ・プールを示す、前記維持することと、
アプリケーションの前記メタデータを処理して、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されている前記アプリケーションのデータ・セットを判定することと、
前記判定されたデータ・セットを前記第１のストレージ・プールから前記第２のストレージ環境内で実装される第２のストレージ・プールに移行することと、を実行させる、コンピュータ・プログラム。
【請求項２】
前記ストレージ環境は、ブロック・ストレージ、ファイル・ストレージ、オブジェクト・ストレージ、およびカウント・キー・データ（ＣＫＤ）・ストレージを含む、少なくとも複数のストレージ環境を含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記コンピュータに、前記アプリケーションの前記メタデータを、前記判定されたデータ・セットが前記第２のストレージ・プールに格納されることを示すように更新することを更に実行させる、請求項１または２に記載のコンピュータ・プログラム。
【請求項４】
前記コンピュータに、前記第１のストレージ環境に従って構成されている第１のストレージへのアクセスを管理するための第１のデーモンを提供することと、前記第２のストレージ環境に従って構成されている第２のストレージへのアクセスを管理するための第２のデーモンを提供することと、を更に実行させ、
前記第１のストレージ・プールに割り振られた前記データ・セットを前記第２のストレージ・プールへと前記移行することは、
前記第１のデーモンによって、前記第１のストレージ内の前記第１のストレージ・プールから、前記判定されたデータ・セットを読み込むことと、
前記第１のデーモンによって、前記判定されたデータ・セットを、前記第１のストレージ環境用の第１のデータ・フォーマットから、前記第２のストレージ環境用の第２のデータ・フォーマットへと変換することと、
前記第２のデータ・フォーマットの前記データ・セットを、前記第２のストレージに書き込むための前記第２のデーモンに送信することと、を含む、請求項１〜３のいずれか１項に記載のコンピュータ・プログラム。
【請求項５】
前記コンピュータに、前記第１および第２のストレージ・プールに格納されるアプリケーションの前記データ・セットへの入力／出力（Ｉ／Ｏ）アクセスのデータ・アクセス・パターンについてのデータ・アクセス情報を収集すること、を更に実行させ、前記第２のストレージ環境に格納されるべきである前記第１のストレージ・プール中のデータ・セットを判定することは、前記データ・セットが前記第２のストレージ環境に格納されるべきであることを前記データ・セットについて収集された前記データ・アクセス情報が示していると判定するものである、請求項１〜４のいずれか１項に記載のコンピュータ・プログラム。
【請求項６】
前記判定されたデータ・セットが前記第２のストレージ環境に格納されるべきであると前記データ・アクセス情報が示していると前記判定することは、
前記データ・セットの前記メタデータ中の前記データ・アクセス情報を機械学習モジュールに提供することと、
前記機械学習モジュールによって、前記提供されたデータ・アクセス情報を複数のアクセス・パターン分類のうちの１つへと分類することと、
前記データ・セット用のアクセス・パターン分類から複数のストレージ環境のうちの前記データ・セットが格納されるべき最適なストレージ環境を判定するための、ルールを適用することと、を含み、前記判定されたデータ・セットはあるアクセス・パターン分類を有するものとして分類され、前記ルールを前記適用することによって、前記第２のストレージ環境が前記データ・セットにとって最適なストレージ環境であると判定される、請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記コンピュータに、最適なストレージ環境が判定されるデータ・セットごとに、前記判定された前記データ・セットにとって最適なストレージ環境に前記データ・セットが格納されるかどうかを判定することと、前記判定された前記データ・セットにとって最適なストレージ環境に現時点では格納されていない各データ・セットを、前記判定された前記データ・セットにとって最適なストレージ環境へと移行することと、を更に実行させる、請求項６に記載のコンピュータ・プログラム。
【請求項８】
前記データ・セットについての前記データ・アクセス情報の前記分類は、前記データ・セットの前記データ・アクセス情報に基づいて前記アクセス・パターン分類のうちの１つを生成するように訓練される、機械学習アルゴリズムによって行われる、請求項６または７に記載のコンピュータ・プログラム。
【請求項９】
前記データ・アクセス情報は、様々なデータ・セットについて、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプ、のうちの複数を含む、請求項６〜８のいずれか１項に記載のコンピュータ・プログラム。
【請求項１０】
前記ストレージ環境はオブジェクト・ストレージとファイル・ストレージとブロック・ストレージとを含み、前記ルールを前記適用することは、前記アプリケーションのデータ・セットごとの前記最適なストレージ環境が、
前記データ・セットがファイルとしてアクセスされると判定したことに応答して、前記データ・セットにとって前記最適なストレージ環境がファイル・ストレージであると示すこと、
ランダムなアクセス・パターンを含む前記データ・セット用のアクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
シーケンシャルなアクセス・パターンを含む前記データ・セット用の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すこと、
１秒当たりの操作の多いアクセス・パターンを含む前記データ・セット用の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
１秒当たりの操作が少なく処理ユニット負荷の高い使用状況のアクセス・パターンを含む前記データ・セット用の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すこと、
低レイテンシ・アクセスが必要なデータ・アクセスの場合に生じる低レイテンシを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
高レイテンシおよびサイズ閾値よりも大きいデータ・セットのサイズを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すことであって、前記高レイテンシはタイムアウトせずに高レイテンシに耐えるデータ・アクセスについて生じる、前記示すこと、
高レイテンシに耐性がありかつデータ・セットのサイズがサイズ閾値未満の前記アクセス・パターン分類に応答して、前記最適なストレージ環境がオブジェクト・ストレージであると示すこと、
トランザクション・データベースのアクセス・パターンを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、
ファイル・データベースのアクセス・パターンを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がファイル・ストレージであると示すこと、ならびに
ウェブ・データベースのアクセス・パターンを含む前記アクセス・パターン分類に応答して、前記最適なストレージ環境がブロック・ストレージであると示すこと、を含むルールの要素である、少なくとも複数のルールを含む、と判定することを含む、請求項６〜９のいずれか１項に記載のコンピュータ・プログラム。
【請求項１１】
複数のストレージ環境におけるデータの格納を管理するためのコンピュータ・プログラムであって、前記コンピュータ・プログムは、コンピュータに、
現時点のストレージ環境内で実装されている現時点のストレージに格納されているデータ・セットのデータ・アクセス情報を、分類エンジンに提供することと、
前記分類エンジンによって、前記データ・セットの前記データ・アクセス情報から、アクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定することと、
前記アクセス・パターン分類を使用して、前記データ・セットにとって最適なストレージ環境を判定することと、
前記現時点のストレージ環境が前記最適なストレージ環境を含まないことに応答して、前記データ・セットを前記最適なストレージ環境内で実装されるターゲットのストレージに移動させることと、を実行させる、コンピュータ・プログラム。
【請求項１２】
前記ストレージ環境は、ファイル・ストレージ、ブロック・ストレージ、およびオブジェクト・ストレージを少なくとも備える、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記データ・アクセス情報は、１秒当たりのＩ／Ｏ操作、アクセスにおけるレイテンシ、レイテンシ遅延に起因するタイムアウト、データ・アクセス・パターン、ワークロードのタイプを含むアクセス属性のうちの少なくとも複数を含み、前記アクセス・パターン分類のセットは、ただ１つのアクセス属性に基づく少なくとも１つのアクセス・パターン分類と、複数の前記アクセス属性に基づく少なくとも１つのアクセス・パターン分類と、を含む、請求項１１または１２に記載のコンピュータ・プログラム。
【請求項１４】
前記コンピュータに、データ・セットが複数のストレージ環境のうちの１つにおけるストレージに格納されているアプリケーションのアプリケーション・メタデータを提供することを更に実行させ、あるアプリケーションの各アプリケーション・メタデータは、格納される前記アプリケーションのデータ・セットごとに、ストレージのうちの１つにおけるストレージ・プールと前記データ・セットの前記データ・アクセス情報とを示し、前記アプリケーション・メタデータは、様々なストレージ環境にあるストレージに格納される前記アプリケーションの複数のデータ・セットを示す、請求項１１〜１３のいずれか１項に記載のコンピュータ・プログラム。
【請求項１５】
複数のストレージ環境におけるデータ・セットの格納を管理するためのシステムであって、
プロセッサと、
前記プロセッサによって実行されると操作を実行するコンピュータ可読プログラム・コードを有する、コンピュータ可読ストレージ媒体と、を備え、前記操作は、
データ・セットを格納するためにアプリケーションが使用するストレージ・プールを示す各アプリケーションのメタデータを維持することであって、各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成され、少なくとも１つのアプリケーションの前記メタデータは、様々なストレージ環境から割り当てられる前記アプリケーションの前記データ・セットを格納するためのストレージ・プールを示す、前記維持することと、
アプリケーションの前記メタデータを処理して、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されている前記アプリケーションのデータ・セットを判定することと、
前記判定されたデータ・セットを前記第１のストレージ・プールから前記第２のストレージ環境内で実装される第２のストレージ・プールに移行することと、を含む、システム。
【請求項１６】
複数のストレージ環境におけるデータの格納を管理するためのシステムであって、
プロセッサと、
前記プロセッサによって実行されると操作を実行するコンピュータ可読プログラム・コードを有する、コンピュータ可読ストレージ媒体と、を備え、前記操作は
現時点のストレージ環境内で実装されている現時点のストレージに格納されているデータ・セットのデータ・アクセス情報を、分類エンジンに提供することと、
前記分類エンジンによって、前記データ・セットの前記データ・アクセス情報から、アクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定することと、
前記アクセス・パターン分類を使用して、前記データ・セットにとって最適なストレージ環境を判定することと、
前記現時点のストレージ環境が前記最適なストレージ環境を含まないことに応答して、前記データ・セットを前記最適なストレージ環境内で実装されるターゲットのストレージに移動させることと、を含む、システム。
【請求項１７】
複数のストレージ環境におけるデータ・セットの格納を管理するための方法であって、
データ・セットを格納するためにアプリケーションが使用するストレージ・プールを示す各アプリケーションのメタデータを維持することであって、各ストレージ・プールは、複数のストレージ環境のうちの１つにおいてデータ・セットを格納するための様々な組織化スキームを使用して構成され、少なくとも１つのアプリケーションの前記メタデータは、様々なストレージ環境から割り当てられる前記アプリケーションの前記データ・セットを格納するためのストレージ・プールを示す、前記維持することと、
アプリケーションの前記メタデータを処理して、第２のストレージ環境に格納されるべきである、第１のストレージ環境内で実装される第１のストレージ・プールに格納されている前記アプリケーションのデータ・セットを判定することと、
前記判定されたデータ・セットを前記第１のストレージ・プールから前記第２のストレージ環境内で実装される第２のストレージ・プールに移行することと、を含む、方法。
【請求項１８】
前記アプリケーションの前記メタデータを前記処理して、前記第２のストレージ環境に格納されるべきである、前記第１のストレージ環境にある前記第１のストレージ・プールに格納される前記データ・セットを判定することは、
現時点のストレージ環境内で実装されている現時点のストレージに格納されているデータ・セットの前記メタデータ中のデータ・アクセス情報を、分類エンジンに提供することと、
前記分類エンジンによって、前記データ・セットの前記データ・アクセス情報から、アクセス・パターン分類のセットのうちのあるアクセス・パターン分類を判定することと、
前記アクセス・パターン分類を使用して、前記第２のストレージ環境を含む前記データ・セットにとって最適なストレージ環境を判定することと、を含む、請求項１７に記載の方法。
【国際調査報告】
2021531557.tif 000015
2021531557.tif 000016
2021531557.tif 000017