(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-24
(45)【発行日】2022-09-01
(54)【発明の名称】コグニティブ階層型ストレージ管理システムを訓練する際のユーザ満足度の最適化
(51)【国際特許分類】
G06F 16/185 20190101AFI20220825BHJP
【FI】
G06F16/185
(21)【出願番号】P 2020501789
(86)(22)【出願日】2018-07-18
(86)【国際出願番号】 IB2018055324
(87)【国際公開番号】W WO2019016718
(87)【国際公開日】2019-01-24
【審査請求日】2020-12-22
(32)【優先日】2017-07-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ラビッザ、ステファン
(72)【発明者】
【氏名】スチェイデラー、ティム、ウウェ
(72)【発明者】
【氏名】ルエガー、エリック
(72)【発明者】
【氏名】ムエゲ、ソーステン
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開2014-232348(JP,A)
【文献】特開2006-031668(JP,A)
【文献】米国特許出願公開第2008/0313109(US,A1)
【文献】特開平09-034898(JP,A)
【文献】野澤 哲生,IBMが人間に似せたストレージ 重要なことだけを記録可能に ビッグデータ時代のデータ急増に対処,日経エレクトロニクス,日本,日経BP社,2016年05月20日,第1168号,p.20
【文献】飯澤 健、外3名,デバイス性能モデルを用いた制御による階層型ハイブリッド・ストレージ・システムのアクセス性能向上,第9回データ工学と情報マネジメントに関するフォーラム,日本,電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2017年02月27日,p.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法であって、
プロセッサが、
ストレージ・デバイスのセットの、前記コグニティブ階層型ストレージ管理システムによって管理される階層化されたストレージ環境に含まれる階層のセットの第一階層と関連付けられる第一ストレージ・デバイスに記憶された第一データ要素のコピーへのアクセスに対する応答を、第一ユーザに提供するステップと、
データ要素のセットの前記第一データ要素へのアクセスのための前記コグニティブ階層型ストレージ管理システムに対する前記第一ユーザの要求を含む第一データアクセス要求に対する前記コグニティブ階層型ストレージ管理システムの前記応答についての前記第一ユーザの満足度度合いを記述する入力を前記第一ユーザから受信するステップと、
前記第一データ要素と関連付けられる第一メタデータ・セットを識別するステップと、前記第一メタデータ・セットを前記第一ユーザの満足度度合いと関連付けるステップと、前記第一データ要素を、前記関連付けるステップに応答して、前記階層のセットの前記第一階層と別個の第二階層と関連付けられた第二ストレージ・デバイスに移行するステップと
を実行する、方法。
【請求項2】
前記第一ユーザの満足度度合いは不満足であり、
前記第二ストレージ・デバイスは前記第一ストレージ・デバイスよりも高い性能が可能である、
請求項1に記載の方法。
【請求項3】
前記データ要素のセットの第二データ要素と関連付けられた第二メタデータ・セットを識別するステップと、
前記第一メタデータ・セットと前記第二メタデータ・セットとがメタデータ値の共通のサブセットを共有すると判断するステップと、
前記判断するステップに応答して前記第二データ要素を前記第二ストレージ・デバイスに移行するステップと
をさらに含む、請求項1または2に記載の方法。
【請求項4】
複数のユーザから追加の入力を受信するステップであって、
前記追加の入力は、ユーザ・フィードバックの複数のセットを識別し、
前記ユーザ・フィードバックの複数のセットの各々は、前記データ要素のセットの一つ以上のデータ要素にアクセスする前記複数のユーザの個別のユーザの要求に対する前記コグニティブ階層型ストレージ管理システムの応答についての前記個別のユーザの満足度度合いを識別する、
受信するステップと、
前記ユーザ・フィードバックの複数のセットの各々について前記識別するステップおよび前記関連付けるステップを繰り返すことによって前記コグニティブ階層型ストレージ管理システムを訓練するステップと、
繰り返され
た満足度レベルの判断に応答して、前記一つ以上のデータ要素のサブセットを、前記階層のセットの一つの階層から前記階層のセットの異なる階層に移行するステップと
をさらに含む、請求項3に記載の方法。
【請求項5】
前記移行するステップは、前記コグニティブ階層型ストレージ管理システムのストレージ・コントローラ・デバイスに、前記第一データ要素を前記第一ストレージ・デバイスから前記第二ストレージ・デバイスに物理的に移動させるよう指示するステップを含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記関連付けるステップは、
ユーザの満足度度合いを追加のメタデータ要素として符号化するステップと、
前記追加のメタデータ要素を前記第一メタデータ・セットに組み込むステップと、
前記第一メタデータ・セットを、前記コグニティブ階層型ストレージ管理システムの機械学習モジュールに含まれるニューラル・ネットワークに入力ベクトルとしてサブミットするステップと
を含む、請求項4に記載の方法。
【請求項7】
前記移行するステップは、
前記サブミットするステップに応答して、前記第二ストレージ・デバイスを識別する前記ニューラル・ネットワークの出力を受信するステップ
をさらに含む、請求項6に記載の方法。
【請求項8】
プロセッサと、前記プロセッサに連結されたメモリと、前記プロセッサに連結されたコンピュータ可読ハードウェア・ストレージ・デバイスとを含むコグニティブ階層型ストレージ管理システムであって、
前記ストレージ・デバイスは、請求項1~7のいずれか一項に記載の方法における各ステップを前記メモリを介して前記プロセッサに実行させるように構成されたプログラム・コードを含む、コグニティブ階層型ストレージ管理システム。
【請求項9】
請求項1~7のいずれか一項に記載の方法における各ステップをプロセッサに実行させるためのコンピュータ・プログラム。
【請求項10】
請求項9に記載のコンピュータ・プログラムを記憶した、コンピュータ可読ストレージ・デバイス。
【請求項11】
プロセッサが、
複数の階層からなる階層型ストレージに記憶されたデータ要素について、前記データ要素の特性を示すメタデータと、前記データ要素に過去にアクセスしたユーザから受信した前記データ要素へのアクセスについての満足度とを関連付けるステップと、
関連付けられた前記メタデータと前記満足度とを複数入力することにより、前記メタデータと前記満足度との相関を推論するようにニューラル・ネットワークを訓練するステップと、
訓練された前記ニューラル・ネットワークに別のデータ要素のメタデータを入力し、前記別のデータ要素についての推論されたユーザ満足度を出力として取得することと、
取得された前記ユーザ満足度に基づいて、前記複数の階層のうち、前記別のデータ要素が記憶されるべき階層を決定することと、
を実行する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ化されたストレージ管理の分野に関し、特に、階層化されたストレージ・アーキテクチャにおけるファイル・アクセスの効率、整合性、および予測可能性の改善に関する。
【背景技術】
【0002】
このような階層化された環境では、仮想または物理ストレージ・コンポーネントが、各コンポーネントの性能特性の関数として階層に編成されうる。このような階層化は、より高価で高速なストレージ・デバイスの要件を低減するため、作業負荷をよりよいバランスにするため、またはあるクラスのストレージ・デバイスをそのクラスのデバイスに記憶されるタイプのデータの重要度もしくはアクセス頻度とより効果的にマッチさせるためなど、様々な理由で行われうる。
【0003】
一部の場合には、より高いストレージ階層からより低いストレージ階層に移行されたデータにアクセスする要求を満たすためには、移行前にかかっていたであろう時間よりもかなり長い時間がかかりうる。このようなストレージ性能の低下により、受け入れ難い応答時間が生じうる。例えば、以前により高い階層のストレージ・デバイスにアクセスする際に迅速な応答を享受していたユーザは、より低い階層のデバイスの応答時間を受け入れ難く感じうる。ユーザがより低い階層の同じストレージ媒体またはデバイスから複数の同時データアクセス操作を行おうと試みた結果、アクセス時間がより長くなると、さらに大きなユーザの不満が生じうる。
【0004】
階層間のデータの移行を管理する既存の方法は、既知の技術によって測定されうる応答時間などの客観的パラメータに焦点を合わせる。既存の方法は、要求されたデータ項目のクラス、ユーザのクラスまたは他のユーザ特性、ユーザの設備の場所またはタイプ、要求されたデータの意図された用途、さらには時刻など複数のファクタの複雑なまたは微妙な関数でありうるユーザ満足度などの主観的基準を考慮しない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、コンピュータ化されたデータ・ストレージ技術に必然的に根ざした技術的問題に対する技術的解決策を提供する。特に、本発明は、データアクセス時間についてのユーザ満足度を考慮することにより、階層化されたストレージ環境におけるファイル・アクセスの効率、整合性、および予測可能性を高めることを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態は、プロセッサと、プロセッサに連結されたメモリと、プロセッサに連結されたコンピュータ可読ハードウェア・ストレージ・デバイスとを含むコグニティブ階層型ストレージ管理システムを提供し、該ストレージ・デバイスは、コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を実装するためにメモリを介してプロセッサによって実行させられるように構成されたプログラム・コードを含み、該方法は、
第一データアクセス要求に対する階層型ストレージ管理システムの応答についての第一ユーザの満足度度合いを記述する入力を第一ユーザから受信するステップであって、
第一データアクセス要求は、データ要素のセットの第一データ要素へのアクセスのための階層型ストレージ管理システムに対する第一ユーザの要求を含み、
応答は、ストレージ・デバイスのセットの第一ストレージ・デバイスに記憶された第一データ要素のコピーへのアクセスを第一ユーザに提供するステップを含み、
第一ストレージ・デバイスは、階層型ストレージ管理システムによって管理される階層化されたストレージ環境に含まれる階層のセットの第一階層と関連付けられる、
受信するステップと、
第一データ要素と関連付けられる第一メタデータ・セットを識別するステップと、
第一メタデータ・セットを第一ユーザの満足度度合いと関連付けるステップであって、
ユーザの満足度度合いを追加のメタデータ要素として符号化するステップと、
追加のメタデータ要素を第一メタデータ・セットに組み込むステップと、
第一メタデータ・セットを、コグニティブ階層型ストレージ管理システムの機械学習モジュールに含まれるニューラル・ネットワークに入力ベクトルとしてサブミットするステップと
を含む、関連付けるステップと、
第一データ要素を第二ストレージ・デバイスに移行するステップであって、
移行するステップは、関連付けるステップに応答して行われ、
第二ストレージ・デバイスは、階層のセットの第二階層と関連付けられ、
第一階層と第二階層とは別個である、
移行するステップと、を含む。
【0007】
本発明の別の実施形態は、コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法であって、
プロセッサが、
ストレージ・デバイスのセットの、前記コグニティブ階層型ストレージ管理システムによって管理される階層化されたストレージ環境に含まれる階層のセットの第一階層と関連付けられる第一ストレージ・デバイスに記憶された第一データ要素のコピーへのアクセスに対する応答を、第一ユーザに提供するステップと、
データ要素のセットの前記第一データ要素へのアクセスのための前記コグニティブ階層型ストレージ管理システムに対する前記第一ユーザの要求を含む第一データアクセス要求に対する前記コグニティブ階層型ストレージ管理システムの前記応答についての前記第一ユーザの満足度度合いを記述する入力を前記第一ユーザから受信するステップと、
前記第一データ要素と関連付けられる第一メタデータ・セットを識別するステップと、前記第一メタデータ・セットを前記第一ユーザの満足度度合いと関連付けるステップと、前記第一データ要素を、前記関連付けるステップに応答して、前記階層のセットの前記第一階層と別個の第二階層と関連付けられた第二ストレージ・デバイスに移行するステップと
を実行する、方法である。
【0008】
本発明のさらに別の実施形態は、コンピュータ可読プログラム・コードが記憶されたコンピュータ可読ハードウェア・ストレージ・デバイスを含むコンピュータ・プログラム製品を提供し、該プログラム・コードは、プロセッサと、プロセッサに連結されたメモリと、プロセッサに連結されたコンピュータ可読ハードウェア・ストレージ・デバイスとを含むコグニティブ階層型ストレージ管理システムによって実行されるように構成され、該ストレージ・デバイスは、コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を実装するためにメモリを介してプロセッサによって実行させられるように構成されたプログラム・コードを含み、該方法は、
第一データアクセス要求に対する階層型ストレージ管理システムの応答についての第一ユーザの満足度度合いを記述する入力を第一ユーザから受信するステップであって、
第一データアクセス要求は、データ要素のセットの第一データ要素へのアクセスのための階層型ストレージ管理システムに対する第一ユーザの要求を含み、
応答は、ストレージ・デバイスのセットの第一ストレージ・デバイスに記憶された第一データ要素のコピーへのアクセスを第一ユーザに提供するステップを含み、
第一ストレージ・デバイスは、階層型ストレージ管理システムによって管理される階層化されたストレージ環境に含まれる階層のセットの第一階層と関連付けられる、
受信するステップと、
第一データ要素と関連付けられる第一メタデータ・セットを識別するステップと、
第一メタデータ・セットを第一ユーザの満足度度合いと関連付けるステップであって、
ユーザの満足度度合いを追加のメタデータ要素として符号化するステップと、
追加のメタデータ要素を第一メタデータ・セットに組み込むステップと、
第一メタデータ・セットを、コグニティブ階層型ストレージ管理システムの機械学習モジュールに含まれるニューラル・ネットワークに入力ベクトルとしてサブミットするステップと、
を含む、関連付けるステップと、
第一データ要素を第二ストレージ・デバイスに移行するステップであって、
移行するステップは、関連付けるステップに応答して行われ、
第二ストレージ・デバイスは、階層のセットの第二階層と関連付けられ、
第一階層と第二階層とは別個である、
移行するステップと、を含む。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態によるコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を実装するために使用されうるコンピュータ・システムおよびコンピュータ・プログラム・コードの構造を示した図である。
【
図2】従来の階層化されたストレージ・アーキテクチャの例を示した図である。
【
図3】本発明の実施形態によるストレージ管理システムのアーキテクチャを示した図である。
【
図4】本発明の実施形態によるコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法のステップを示すフローチャートである。
【
図5】本発明の実施形態が役立ちうるキャッシュWANストレージ環境のアーキテクチャを示した図である。
【発明を実施するための形態】
【0010】
本文書は、ある例を含み、ストレージ・デバイスまたはストレージ媒体が階層に編成され、データがストレージ・デバイスもしくはストレージ媒体の性能特性の関数として、またはデータに対するユーザの応答時間要件の関数として特定の階層のストレージに導かれる、本発明のある実施形態を説明する。しかし、これらの例および例示的実施形態は、本発明の実施形態をそのようなファクタに限定するものと解釈されてはならない。
【0011】
本発明の範囲内の階層化されたストレージ環境では、仮想または物理ストレージ・コンポーネントが、各コンポーネントの読み出し速度、書き込み速度、平均アクセス時間、ストレージ容量、記憶データの単位当たりのコスト、信頼性、堅牢性、またはコンポーネントの他の特性の関数として階層に編成されうる。同様に、データ項目が、そのデータの予想応答時間要件、データの予想アクセス頻度、データの重要度、データのセキュリティ要件、データの記憶に必要なストレージ容量、またはデータ項目にアクセスするユーザの要求を最もよく満たすと実装者が考える他の任意のファクタの関数として特定の階層に割り当てられる。
【0012】
「より高い」(例えばより高速の)ストレージ階層から「より低い」(例えばより低速の)ストレージ階層に移行されたデータにアクセスする要求の結果、データアクセス要求を満たすために移行前にかかっていたであろうよりも長い時間がかかりうる。非常に低速であり、複数の同時ユーザに役立ち難く、またはテープ・ユニットのようにストレージ媒体を物理的に取り付ける必要があるより低い階層のストレージ・デバイスからデータを読み出す際に、ユーザはアクセス時間を特に不満足に感じうる。
【0013】
これらの問題は、階層化されたコンピュータ化されたデータ・ストレージ技術に必然的に根ざし、本発明の実施形態は、これらの問題に対処する技術的解決策を提供する。この技術的解決策は、階層化されたストレージ・アーキテクチャを設計、実装、または管理できる機械学習システムなどの技術を含みうる。
【0014】
特に、本発明の実施形態は、ニューラル・ネットワークまたは人工知能コンピュータ・アプリケーションなどの自己学習システムを含む。この自己学習システムは、ユーザ満足度のフィードバックを分析して、データ・セットをストレージ・デバイスの様々な階層間で動的に割り当てまたは移行する。自己学習システムは、大きなユーザの集団から受信されたフィードバックから生成された一連の訓練データ・セットをニューラル・ネットワークにサブミットすることにより、最初に訓練されうる。
【0015】
この訓練の目標は、あるデータ項目を特定のストレージ階層と関連付ける最も効果的で費用効果の高いやり方を決定する方法、ならびにこの決定をユーザ満足度フィードバックおよびそのデータ項目と関連付けられたメタデータの関数として行うことをシステムに教えることである。このようなメタデータは、例えば、データ要素が更新される頻度、要素が最後にアクセスまたは変更された時間、データ要素のサイズ、データ要素へのアクセスを要求したユーザもしくはユーザ・グループの特性、またはデータ要素のファイル名、パス名、場所もしくはデータ・タイプを含みうる。
【0016】
ニューラル・ネットワークが訓練データ・セットの結果としてデータを正しく編成する方法を学習すると、実世界データの要素を各データ要素と関連付けられたメタデータの関数として階層に編成することによってユーザ満足度を動的に最適化できるようになる。
【0017】
本発明の実施形態は、基本的な本発明の発明概念を、データが様々なソースに記憶されうるかまたは様々なソースからアクセスされうる他の用途および技術分野に適合させうる。このような用途の一例は、ローカル・データ・キャッシュおよびリモート・データ・キャッシュの両方をサポートするワイド・エリア・ネットワーク(WAN;wide-area network)である。このような例では、キャッシュされたデータが異なる場所にいつ移行されるべきかを判断するために本発明が用いられうる。
【0018】
本発明は、任意の可能な技術的詳細の統合度のシステム、方法、もしくはコンピュータ・プログラム製品またはそれらの組み合わせでありうる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(単数または複数)を含みうる。
【0019】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持および記憶できる有形のデバイスでありうる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせでありうるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM;random access memory)、読み出し専用メモリ(ROM;read-only memory)、消去可能プログラマブル読み出し専用メモリ(EPROM;erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM;static random access memory)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM;compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD;digital versatile disk)、メモリ・スティック、フレキシブルディスク、命令が記録されたパンチカードまたは溝内の隆起構造体などの機械的に符号化されたデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書で使用されるところのコンピュータ可読ストレージ媒体は、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通じて伝播する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの一時的信号それ自体と解釈されてはならない。
【0020】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくはワイヤレス・ネットワークまたはそれらの組み合わせを介して外部コンピュータもしくは外部記憶デバイスにダウンロードされうる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジサーバまたはそれらの組み合わせを含みうる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、各コンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
【0021】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA;instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk(登録商標)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む一つ以上のプログラミング言語の任意の組み合わせで記述されたソース・コードもしくはオブジェクト・コードでありうる。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で実行しうる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN;local area network)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されることができ、または外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)接続がなされうる。一部の実施形態では、本発明の態様を行うために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA;field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA;programmable logic array)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行しうる。
【0022】
本明細書においては、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本発明の態様が説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されうることが理解されよう。
【0023】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、および/または他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートおよび/またはブロック図の1つ又複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
【0024】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置または他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラマブル装置または他のデバイス上で行わせてコンピュータ実装プロセスを作り出し、それにより、コンピュータ、他のプログラマブル装置または他のデバイス上で実行される命令が、フローチャートおよび/またはブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するようにしてもよい。
【0025】
図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装態様のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(単数または複数)を実装するための一つ以上の実行可能命令を含む命令のモジュール、セグメント、または部分を表しうる。一部の代替的実装態様では、ブロックに記載された機能は、図面に記された以外の順序で生じうる。例えば、連続して示された二つのブロックは、関連する機能性に応じて、実際には実質的に同時に実行されてもよいし、またはブロックが時には逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図内のブロックの組み合わせは、指定された機能もしくは動作を行うかまたは専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する専用ハードウェアベース・システムによって実装されうることにも留意されたい。
【0026】
図1は、本発明の実施形態によるコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を実装するために使用されうるコンピュータ・システムおよびコンピュータ・プログラム・コードの構造を示した図である。
図1は対象物101~115を参照する。
【0027】
図1において、コンピュータ・システム101は、プロセッサ103を含み、プロセッサ103は、一つ以上のI/Oインタフェース109を通じて一つ以上のハードウェア・データ・ストレージ・デバイス111と一つ以上の入出力デバイス113、115とに連結されている。
【0028】
ハードウェア・データ・ストレージ・デバイス111は、磁気テープ・ドライブ、固定または取り外し可能ハード・ディスク、光ディスク、ストレージ装備モバイル・デバイス、およびソリッドステート・ランダム・アクセスまたは読み出し専用ストレージ・デバイスを含みうるがこれらに限定されない。入出力デバイスは、これらに限定されないが、キーボード、スキャナ、ハンドヘルド遠隔通信デバイス、タッチセンサ式ディスプレイ、タブレット、生体認証リーダ、ジョイスティック、トラックボール、またはコンピュータ・マウスなどの入力デバイス113と、プリンタ、プロッタ、タブレット、携帯電話、ディスプレイ、または音生成デバイスを含みうるがこれらに限定されない出力デバイス115と、を含みうる。データ・ストレージ・デバイス111、入力デバイス113、および出力デバイス115は、ローカルに位置するかまたはリモート・サイトに位置し、そこからネットワーク・インタフェースを通じてI/Oインタフェース109に接続されうる。
【0029】
プロセッサ103は、一つ以上のメモリ・デバイス105にも接続され、このメモリ・デバイス105は、これらに限定されないが、ダイナミックRAM(DRAM;Dynamic RAM)、スタティックRAM(SRAM;Static RAM)、プログラマブル読み出し専用メモリ(PROM;Programmable Read-Only Memory)、フィールドプログラマブル・ゲート・アレイ(FPGA)、セキュア・デジタル・メモリ・カード、SIMカード、または他のタイプのメモリ・デバイスを含みうる。
【0030】
少なくとも一つのメモリ・デバイス105は、コンピュータ実行可能命令を含むコンピュータ・プログラムである記憶されたコンピュータ・プログラム・コード107を含む。記憶されたコンピュータ・プログラム・コードは、本発明の実施形態によるコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を実行するプログラムを含み、
図1~5に示される方法を含む本明細書に記載の他の実施形態を実装しうる。データ・ストレージ・デバイス111は、コンピュータ・プログラム・コード107を記憶しうる。ストレージ・デバイス111に記憶されたコンピュータ・プログラム・コード107は、メモリ・デバイス105を介してプロセッサ103によって実行されるように構成される。プロセッサ103は記憶されたコンピュータ・プログラム・コード107を実行する。
【0031】
一部の実施形態では、記憶されたコンピュータ・プログラム・コード107は、ハード・ドライブ、光ディスクまたは他の書き込み可能、書き換え可能、または取り外し可能ハードウェア・データ・ストレージ・デバイス111から記憶およびアクセスされるのではなく、読み出し専用メモリ(ROM)デバイス105などのスタティック取り外し不能読み出し専用ストレージ媒体に記憶されうるかまたはそのようなスタティック取り外し不能読み出し専用媒体105から直接プロセッサ103によってアクセスされうる。同様に、一部の実施形態では、記憶されたコンピュータ・プログラム・コード107は、コンピュータ可読ファームウェア105として記憶されうるか、またはハード・ドライブもしくは光ディスクなどのより動的なまたは取り外し可能なハードウェア・データ・ストレージ・デバイス111からではなく、そのようなファームウェア105から直接プロセッサ103によってアクセスされうる。
【0032】
したがって、本発明は、コンピュータ・インフラストラクチャをサポートし、コンピュータ可読コードをコンピュータ・システム101に統合、ホスティング、維持、およびデプロイするプロセスを開示し、コンピュータ・システム101と組み合わせたコードはコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を行うことができる。
【0033】
本発明のコンポーネントのいずれも、コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を提供するサービス・プロバイダによって作成、統合、ホスティング、維持、デプロイ、管理、サービス、サポート等されうる。したがって、本発明は、コンピュータ可読コードをコンピュータ・システム101に統合するステップを含むコンピューティング・インフラストラクチャをデプロイまたは統合するためのプロセスを開示し、コンピュータ・システム101と組み合わせたコードはコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法を行うことができる。
【0034】
一つ以上のデータ・ストレージ・ユニット111(または
図1に示されない一つ以上の追加のメモリ・デバイス)は、コンピュータ可読プログラムが具現化されているかもしくは他のデータが記憶されているかまたはその両方であるコンピュータ可読ハードウェア・ストレージ・デバイスとして使用されることができ、コンピュータ可読プログラムは記憶されたコンピュータ・プログラム・コード107を含む。一般に、コンピュータ・システム101のコンピュータ・プログラム製品(または代替的に製造品)は、コンピュータ可読ハードウェア・ストレージ・デバイスを含みうる。
【0035】
コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法のためのプログラム・コード107は、プログラム・コード107をコンピュータ可読ストレージ媒体(例えばコンピュータ・データ・ストレージ・デバイス111)にロードすることによりプログラム・コード107をクライアント、サーバおよびプロキシ・コンピュータ(図示せず)に直接手動でロードすることによりデプロイされうるものと理解されるが、プログラム・コード107は、プログラム・コード107を中央サーバ(例えばコンピュータ・システム101)または中央サーバのグループに送信することによりコンピュータ・システム101に自動的または半自動的にデプロイされてもよい。次いで、プログラム・コード107が、プログラム・コード107を実行するクライアント・コンピュータ(図示せず)にダウンロードされうる。
【0036】
代替例として、プログラム・コード107は、電子メールを介してクライアント・コンピュータに直接送信されてもよい。次いで、プログラム・コード107は、プログラム・コード107をディレクトリにデタッチするプログラムを選択する電子メール・オプションによってクライアント・コンピュータ上のディレクトリにデタッチされるかまたはクライアント・コンピュータ上のディレクトリにロードされうる。
【0037】
別の代替例は、プログラム・コード107をクライアント・コンピュータのハード・ドライブ上のディレクトリに直接送信することである。プロキシ・サーバが構成される場合には、プロセスはプロキシ・サーバ・コードを選択し、プロキシ・サーバ・コードを配置すべきコンピュータを判断し、プロキシ・サーバ・コードを伝送し、その後プロキシ・コンピュータ上にプロキシ・サーバ・コードをインストールする。次に、プログラム・コード107がプロキシ・サーバに伝送され、プロキシ・サーバ上に記憶される。
【0038】
一実施形態では、コグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法のためのプログラム・コード107は、ソフトウェア・アプリケーション(図示せず)、オペレーティング・システム(図示せず)およびネットワーク・オペレーティング・システム・ソフトウェア(図示せず)と共存するようにプログラム・コード107を提供し、その後プログラム・コード107が機能する環境においてプログラム・コード107をクライアントおよびサーバ上にインストールすることにより、クライアント、サーバおよびネットワーク環境に統合される。
【0039】
プログラム・コード107に含まれるコードの前述の統合の第一ステップは、プログラム・コード107が必要とするかまたはプログラム・コード107と連動して動作する、プログラム・コード107がデプロイされるクライアントおよびサーバ上のネットワーク・オペレーティング・システム(図示せず)を含む、任意のソフトウェアを識別することである。この識別されるソフトウェアはネットワーク・オペレーティング・システムを含み、ネットワーク・オペレーティング・システムは、ネットワーキング機能を追加することにより基本オペレーティング・システムを強化するソフトウェアを含む。次に、ソフトウェア・アプリケーションおよびバージョン番号が識別され、プログラム・コード107とともに機能することがテストされているソフトウェア・アプリケーションおよび正しいバージョン番号のリストと比較される。見つからないかまたは正しいバージョン番号とマッチしないソフトウェア・アプリケーションは正しいバージョンにアップグレードされる。
【0040】
プログラム・コード107からソフトウェア・アプリケーションにパラメータを渡すプログラム命令が、その命令のパラメータ・リストがプログラム・コード107により必要とされるパラメータ・リストとマッチすることを確認するためにチェックされる。反対に、ソフトウェア・アプリケーションによりプログラム・コード107に渡されるパラメータが、そのパラメータがプログラム・コード107により必要とされるパラメータとマッチすることを確認するためにチェックされる。ネットワーク・オペレーティング・システムを含むクライアントおよびサーバ・オペレーティング・システムが識別され、プログラム・コード107とともに動作することがテストされているオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェア・プログラムのリストと比較される。テストされたオペレーティング・システムおよびバージョン番号のリストのエントリとマッチしないオペレーティング・システム、バージョン番号、またはネットワーク・ソフトウェア・プログラムは、クライアント・コンピュータ上でリストされたレベルにアップグレードされ、サーバ・コンピュータ上でリストされたレベルにアップグレードされる。
【0041】
プログラム・コード107がデプロイされようとしているソフトウェアが、プログラム・コード107とともに動作することがテストされている正しいバージョンレベルであることを確認した後、プログラム・コード107をクライアントおよびサーバ上にインストールすることによって統合が完了される。
【0042】
本発明の実施形態は、コンピュータ・システムのプロセッサによって行われる方法として、コンピュータ・プログラム製品として、コンピュータ・システムとして、またはコンピュータ・インフラストラクチャをサポートするためにプロセッサにより行われるプロセスもしくはサービスとして実装されうる。
【0043】
図2は、従来の階層化されたストレージ・アーキテクチャ2000の例を示した図である。
図2は、参照番号200~231および2000で識別される要素を示す。
【0044】
この例では、エンタープライズ・システム、クラウドコンピューティング・プラットフォーム、または別のマルチユーザ・コンピュータ化環境によってアクセスされるストレージ・デバイスは、四つの階層に編成される。階層0 200は、ソリッドステート・ディスク201およびキャッシュ・ストレージなどの最も高速のストレージ・デバイスを含む。階層1 210は、高速RAIDアレイ211、またはより高性能の回転媒体ディスク・ドライブなどの次に高速のストレージ・デバイスを含む。
【0045】
同様に、階層2 220は、中速のより大容量のハード・ドライブ、大規模災害復旧バックアップ媒体221a、専用データベース・サーバ221b、または電子メール・サーバなどの、次に高速のストレージ・デバイスのグループを含む。最後に、階層3 230は、光ディスク・アレイ231または磁気テープのようなアーカイブ・ストレージ媒体などの最も低速のストレージ・リソースを含み、これらの一部はオンデマンドでアクセスされるために取り付け手順を必要としうる。
【0046】
しかし、
図2のアーキテクチャはストレージが階層化されうるやり方の一例にすぎない。他の応用例では、優先度のより低い(この例では番号のより大きい)階層がより安価なストレージを含むよう、ストレージ・デバイスおよび媒体がストレージ・コストの関数として階層に編成されてもよい。他の応用例では、階層化されたストレージ・アーキテクチャは、ストレージ・デバイスを4つより多い階層にまたは4つより少ない階層に編成しうる。
【0047】
さらに他の応用例では、階層に
図2の例で使用されるものとは異なる名前が任意に割り当てられてもよい。例えば、三階層ストレージ・アーキテクチャは、「ゴールド・ストレージ」、「シルバー・ストレージ」、および「ブロンズ・ストレージ」という名前の階層を含みうる。
【0048】
このような階層化されたストレージは、ストレージ媒体をネットワーク接続ストレージ(NAS;network-attached storage)デバイスとして構成する環境において最も一般的であるが、これは必須の要件ではない。本発明の実施形態は、そのアーキテクチャに含まれるストレージ・デバイスまたは媒体が実装者によって重要と考えられる任意のファクタの関数として階層に編成されることができる限り、任意の種類のストレージ・アーキテクチャに応用されうる。
【0049】
特定の既知の応用例では、特定のタイプのデータを記憶する階層の選択は、予め定義されたルールまたはポリシーの関数として判断されうる。例えばあるポリシーは、データベースのバックアップがより低速の(「より低い」)階層2の大容量ハード・ドライブに記憶されること、またはストリーミングビデオ・ファイルがより高速の(「より高い」)階層0のデバイスに記憶されることを命じうる。
【0050】
場合によっては、他のルールまたはポリシーが、ある階層から別の階層にデータがいつ、どのように移行されうるかを決定しうる。このような移行は、例えば、データベースのサイズが以前に決定されたポリシーによって指定された閾値を超えるとき、または平均データベース・アクセス頻度が以前に決定されたポリシーによって指定された閾値を下回るときに行われうる。このような例では、以前に決定されたポリシーは、データベースが「より低い」階層にあるより大容量であるがより低性能のデバイスに移行されることを要求しうる。別の例では、大きな電子百科事典が、ユーザが百科事典へのアクセスを要求しない指定された期間が経過したときに、より高い階層のより高性能のデバイスからより低い階層のより低性能のデバイスに移行されうる。
【0051】
図3は、本発明の実施形態によるストレージ管理システムのアーキテクチャを示した図である。
図3は、参照番号300~370および2000で示される要素を含む。
【0052】
図3のシステムは、ユーザ300が、デバイス、ワークステーションまたは他のインタフェース・デバイス310を使用して階層型ストレージ管理(HSM;hierarchical storage-management)コントローラ320からのデータアクセスを要求することによって、階層化されたストレージ環境2000に記憶されたデータを読み出すことを可能にする。その後、HSMコントローラ320は、階層型ストレージ環境2000の階層の一つに編成されたストレージ・デバイスから要求されたデータを読み出し、読み出されたデータをユーザ・システム310に返す。ユーザ300がストレージ環境2000の階層にデータを記憶するかまたはストレージ環境2000の階層に既に記憶されたデータを変更する操作は、類似の機構によって行われうる。
【0053】
本発明の実施形態では、メタデータ/フィードバック・アグリゲータ330が、これらのデータアクセス操作を監視し、各ユーザにより開始されたトランザクションを記録し、アクセスされたデータ項目の特性を識別するメタデータのセットをHSMコントローラ320から受信する。
【0054】
アグリゲータ330は、完了されたトランザクションについてのユーザ・フィードバックも受信しうる。そのようなフィードバックは、実装者により所望される任意の形式をとることができ、本文書に記載された簡略化された実施形態および例では、このフィードバックは英数字数値コードによって表されうる。例えば、0のユーザ・フィードバックは、トランザクション中のシステムのアクセス時間についての不満を示してよく、1のフィードバックは中立的反応を示してよく、2のフィードバックはユーザがシステムのデータアクセス性能に満足したことを示してよい。
【0055】
三つより多いかまたは少ない可能なコード値を使用するもの、または一つより多い文字または関数のセットを含みうるより複雑なコードを使用するものを含む、他の既知の符号化機構が可能である。しかし、いずれの場合にも、アグリゲータ330はユーザ・トランザクションごとにデータ対を構築し、この対はメタデータのセットとユーザ・フィードバック値とからなる。次に、アグリゲータ330は、このデータ対をイベント・データベース340に記憶する。
【0056】
次に、自己学習コグニティブ・アナライザ350が、機械学習および人工知能の既知の方法により、集約されたデータ対を使用して、その学習アルゴリズムおよびそのストレージ管理モデルを改良する。洞察データベース360に記憶されたこれらのアルゴリズムおよびモデルは、リデプロイメント・エンジン370がストレージ・プール2000内でデータをどのように編成するかを決定する。
図3に示される実施形態では、洞察データベース360は、データまたはストレージ・デバイスをストレージ・プール2000の階層間でどのように、いつ再編成するかを判断する決定木を含みうる。
【0057】
例えば、ストレージ2000の階層2に記憶されたデータベースにアクセスする際の大量の不満足なユーザ・フィードバックをコグニティブ・アナライザ350が受信した場合、アナライザは、既知の分析手段により、そのデータベースのいくつかの同時アクセスと低いユーザ満足度との間の相関をイベント・データベース340に記憶されたメタデータから推論しうる。それに応答して、コグニティブ・アナライザ350は、洞察データベース360に記憶されたそのストレージ管理ルールおよび推論的洞察を更新しうる。リデプロイメント・エンジン370はその後、洞察データベース360に記憶された意思決定ルールの改訂に応答して、最も頻繁にアクセスされるデータベース・ファイルをストレージ・プール2000の階層2から、同時データアクセス要求に応答する際により高い性能が可能な階層1 RAIDアレイに移動させる。
【0058】
このように、本発明の実施形態はそのストレージ管理手順を絶えず改善し、そのデータ移行ルールを主観的なユーザ満足度評価および記憶されたデータの客観的なメタデータ特性の関数として絶えず改訂する。
【0059】
図4は、本発明の実施形態によるコグニティブ階層型ストレージ管理システムを訓練する際にユーザ満足度を最適化するための方法のステップを示すフローチャートである。
図4は、ステップ400~480を含む。
【0060】
図4の方法は、コグニティブ階層型ストレージ管理システムを訓練するための方法論を含む。このようなコグニティブ・システムは、単に静的ルールにしたがうことによって、またはあるパラメータが予め定義された閾値を超えていることを検出することによってデータ・セットを特定の階層と関連付けるものではない。代わりに、対応システムは、アクセスされるデータのメタデータを大きなユーザの集団から受信されるフィードバックと相関付けることによって動的階層化ルールを絶えず自己調節する。
【0061】
このフィードバックは、以前のデータアクセス操作についてのユーザ満足度の主観的レベルを報告し、したがって対応自己学習システムが(
図2のような)階層化されたストレージを待ち時間またはハード・フォールトの発生のような客観的な性能測定値の関数ではなくユーザ満足度の関数として管理することを可能にする。階層化されたストレージ管理システムの最終的目標はユーザの満足度の主観的レベルを向上させることであるため、ユーザ満足度レベルに基づいて階層化決定を行うようシステムを訓練することは、この目標を達成する上でより正確で直接的なやり方である。
【0062】
図4の実施形態では、コグニティブ・ストレージ管理システムは、データ要素にアクセスした過去の試みについてのユーザ・フィードバックとそのデータ要素の特性を記述するメタデータとを含む入力ベクトルによって訓練されるニューラル・ネットワークを含む。これにより、ニューラル・ネットワークはユーザ満足度レベルをあるメタデータ・パターンと関連付けること、およびその結果、類似のメタデータと関連付けられたデータがユーザ満足度、ストレージ・コストおよび技術的制約を最適化するためにより高速(またはより低速)の階層に移行されるべきか否かを判断することが可能になる。
【0063】
図4の方法は、本発明の実施形態をニューラル・ネットワークに基づく機械学習の方法を採用するシステムに限定するものと解釈されてはならない。本発明は、当技術分野で知られた任意の種類の機械学習またはコグニティブ・システム訓練方法論に対応するのに十分な適応性がある。
【0064】
本発明は、階層型ストレージ管理システムに限定されると解釈されてもならない。
図5の例示的なシステムによって示されるように、
図4で説明されるコグニティブ・システム訓練方法論は、コグニティブ・ルータ、ネットワーク・スイッチもしくは他のネットワーク機器、WAN、クラウド、エンタープライズ・ネットワークもしくは他のタイプの分散コンピューティング・システムのキャッシュ・ストレージ・システム、流体流通ネットワーク、またはセルラ通信ネットワーク管理システムなど、他の種類のシステムおよび応用例に適合されうる。
【0065】
ステップ400で、コグニティブ階層型ストレージ管理システムが、以前のデータアクセス要求に対するシステムの応答についての一人以上のユーザの満足度レベルを記述するユーザ・フィードバックを受信する。
【0066】
このフィードバックは、当技術分野で知られた任意の手段によって入力、伝送、および配信されうる。一例では、ユーザは、特定のデータアクセス操作の後にコンピュータ・ワークステーションまたはモバイル・デバイスを使用して電子ユーザ満足度調査を完了し、その調査の結果がその後コンピュータ・ネットワークまたはセルラ・ネットワークを介してシステムに送信されることが考えられる。別の例では、ユーザが手書きのフォームに記入してもよく、それがその後データ入力オペレータによって手動で入力される。
【0067】
フィードバックは、当技術分野で知られた任意の手段によってフォーマットされうる。ある実施形態は、単にユーザに満足度レベルを「満足」、「不満足」、または「どちらでもない-満足でも不満足でもない」と記述するよう要求することによって、フィードバック・プロセスの合理化、ストレージ要件の低減、およびユーザの負担の軽減を図りうる。他の場合では、より多いかまたは少ない数の可能な満足度レベル、様々なタイプのレベル、または自然言語処理(NLP;natural-language processing)モジュールによって意味が推論されうる自由形式の自然言語のテキスト形式を受理するようにシステムが構成されうる。
【0068】
他の実施形態では、フィードバックは、ユーザが、「受け入れ難いほど遅い応答時間」または「推定配信時間を正確に予測できない」など、ユーザの満足度レベルの理由を特定することを可能にしうる。
【0069】
ステップ410で、システムは、ステップ400で受信されたユーザ・フィードバックの対象である各データ要素またはデータ要素のセットを識別する。その後システムは、目的の各データ要素またはデータ・セットと関連付けられたメタデータを取得する。
【0070】
単一のデータ要素のメタデータの正確なフォーマットおよび内容は、データが記憶されたハードウェアまたはオペレーティング・システムの関数でありうる。さらに、本発明の実施形態は、実装者が所望する場合には、メタデータの入手可能なサブセットのみを取得するようにしてもよい。
【0071】
メタデータの要素は、ホスト・オペレーティング・システムもしくはクラウド・サービス・ディレクトリによってなど当技術分野で知られた任意の手段によって最初に作成および記憶されたものであるかまたはストレージ・コントローラから直接読み出されたものでありうる。ステップ400のように、メタデータは、コンピュータ・ネットワークによってなど当技術分野で知られた任意の手段を通じてシステムに伝送されて受信されうる。
【0072】
表1は、より大きなデータベース・ファイルセットの一部としてアクセスされたファイルを記述する典型的なメタデータのセットの例を含む。
【0073】
【0074】
図4の例では、ユーザ・フィードバックは、ステップ400で識別された以前にアクセスされたデータ項目ごとに表1のメタデータの一つのインスタンスを含む。他の実施形態では、異なるタイプのメタデータが受信されうるが、いずれの場合にも、以前にアクセスされたデータ項目はそれぞれ一つのメタデータのセットまたはサブセットだけに関連付けられる。
【0075】
ステップ420で、システムは、ステップ410で識別された各データ項目のメタデータを、ステップ400で識別されたそのデータ項目にアクセスする要求に対するシステムの応答についてのユーザ満足度のレベルと関連付ける。
【0076】
本発明の実施形態は、メタデータをユーザ満足度のレベルと関連付ける当技術分野で知られた任意の手段に対応するのに十分な適応性がある。
図4の単純な例では、一桁の英数字コードとしてフォーマットされたユーザ・フィードバックが、追加のメタデータ要素として各メタデータ・インスタンスに追加されうる。このような追加は、一つまたは複数のシステムがメタデータを記憶する標準的方法に影響しない代わりに、入手可能なメタデータのサブセットとユーザ満足度評価との両方を含む拡張データ構造を構成するであろう。このような拡張データ構造の各インスタンスは、特定のデータ項目、特定のデータアクセス要求、および特定のユーザと関連付けられる。
【0077】
ステップ430で、システムは、ステップ420で構築された各拡張データ構造をコグニティブ階層型ストレージ管理システムにシステムを訓練する手段としてサブミットする。このサブミッションは、当技術分野で知られた任意の手段によって行われうるが、システムがニューラル・ネットワークに基づく機械学習モジュールを含む
図4の例では、サブミッションは、拡張データ構造をニューラル・ネットワークの入力ベクトルとしてサブミットすることにより行われる。
【0078】
表2は、そのような入力ベクトルの一例を示す。この例では、ステップ400で受信されたユーザ・フィードバックは、0(不満足)、1(どちらでもない)、または2(満足)の三つの値のいずれかとして符号化されることができる指定されたユーザ満足レベルを有した。
【0079】
表2の各行は一つのニューラル・ネットワークの入力ベクトルを識別し、ユーザ満足度コード(列1)と9つのメタデータの要素(列2~10)とを含む。各ベクトルは十個のデータ・フィールドを含むため、各ベクトルは10の次元を有する。しかし、ニューラル・ネットワークまたは他のコグニティブ・プログラムがベクトルを入力として受信できる限り、入力ベクトルは実装者により所望される任意の次元を有しうる。他の実施形態では、ステップ400で受信されたフィードバックによって識別された一つのデータアクセス操作と関連付けられた各メタデータ/ユーザ満足度データ構造は、データ構造を処理するコグニティブ・ソフトウェア・モジュールの要件に応じて異なる形式またはより複雑な形式をとりうる。
【0080】
表2の例では、第一行は、ワークグループ「2456」(「gid」フィールドにより識別)のユーザ「1000」(「uid」フィールドにより識別)により行われたデータアクセス要求のメタデータおよびユーザ満足度レベルを識別する。このアクセス要求は、リンク「2315」(「nlink」フィールドにより指定)により識別されるデータ・ファイルへのアクセスを要求したものであり、ユーザが要求に対するシステムの応答に中立的反応(「response」値「1」により識別)であったことを指定する。
【0081】
表2の後続の各行は、ステップ400で受信されたユーザ・フィードバックにより識別される他のデータアクセス操作についての類似のデータ・セットを識別する。
【0082】
【0083】
図4の実施形態および例では、システムは、ステップ430で構築された各入力ベクトルを、コグニティブ階層型ストレージ管理システムのニューラル・ネットワークまたは他のモジュールにサブミットする。しかし、前述のように、これらの実施形態および例は、ニューラル・ネットワークを訓練するステップを含む機械学習の応用例に本発明を限定するものと解釈されてはならない。
【0084】
ステップ450で、システムは、ステップ440でサブミットされた各入力ベクトルに応答して、ニューラル・ネットワーク(または他の訓練可能なコグニティブ・モデル)から出力ベクトルを受信する。これらの出力ベクトルは、実装者によって所望されるかまたはニューラル・ネットワークもしくは他の訓練可能なモジュールの動作によって定義される任意の形式をとりうる。
【0085】
図4の単純な例では、各出力ベクトルは、対応するデータ要素が移行されるべきストレージ階層を識別する一次元の英数字値を含みうる。これらの例では、ニューラル・ネットワークまたは他のコグニティブ・モジュールは、人工知能または機械学習の既知の方法を使用して、特定のデータ項目に最適であろうストレージ階層を判断する。
【0086】
例えば、ステップ430でサブミットされた入力ベクトルのサブセットは、サイズが1メガバイトを超える特定のデータベースのテーブルへのアクセスを要求する際、それらの要求が英国内に物理的に位置するワークグループから行われたときに大半のユーザが応答時間に不満であることを識別しうる。この例では、システムは、その特定のデータベースの全ての大きなテーブルがより低速の階層2のストレージ・デバイスからより高速の階層1のデバイスに移行されるべきことを指定することによって応答しうる。この推奨は、ステップ400で受信されたユーザ・フィードバックによって識別されたいずれのデータアクセス要求の対象でもなかったそのデータベースの大きなテーブルにまで及びうる。この場合のコグニティブ・システムは、人工知能の既知の方法を使用して、ユーザがその特定のデータベースに含まれるいずれの大きなファイルにアクセスしようとする際にも不満を感じる可能性が高いことをユーザ・フィードバックから学習していると考えられ、全てのファイルをより高速のストレージ階層に移動することによってそのような問題が生じる前に回避しようとするであろう。
【0087】
この方法論の変形例は、本発明の範囲内である。例えば、システムは、単にあるデータ項目がより高速の階層に移行されるべきことを示す出力ベクトルを返しうる。別の例では、ユーザがメタデータ値のあるサブセットと関連付けられたデータにアクセスする際に予想を超える圧倒的に肯定的な満足度レベルを報告した場合には、システムは、同一または類似のメタデータ・サブセットと関連付けられた全てのデータがより安価であるがより低速の階層に移行されるべきことを推奨する、より複雑な応答を返しうる。
【0088】
いずれの場合にも、ステップ430でコグニティブ・システムにサブミットされた入力ベクトルは、あるデータ要素に最適なストレージ階層をよりインテリジェントに識別し、客観的なシステム性能仕様または他の客観的な測定値ではなく主観的なユーザ満足度レベルをそのインテリジェントな識別の基礎とするようシステムを訓練するために役立つ。
【0089】
ステップ450で、システムは、ステップ440でコグニティブ・システムから受信された出力から、そのデータが異なる階層に移行されることが必要か否かを判断する。システムが移行は不要であると判断した場合には、
図4の方法は終了し、追加のユーザ・フィードバックが受信された場合にのみ再開する。そのような追加のフィードバックが受信されたときには、
図4の方法はステップ400から次の反復を再開し、追加のフィードバックを用いてコグニティブ・システムがさらに訓練される。
【0090】
ステップ450~480の手順は、システムによって移行できると識別されたデータ項目ごとに繰り返される。一部の実施形態において、この手順は、ステップ400で受信されたフィードバックによってデータアクセス要求と関連付けられたデータ項目ごとに(または同様にステップ430でシステムにサブミットされた入力ベクトルと関連付けられたデータ項目ごとに)繰り返される。
【0091】
他の実施形態では、ステップ440でシステムによって生成された出力によって識別される追加のデータ項目が、受信されたフィードバックによって識別されたアクセス要求の対象ではなかった場合であっても、これらの追加のデータ項目がフィードバックによって識別されたアクセス要求の対象であったあるデータ項目のあるメタデータ値と関連付けられるとコグニティブ・システムによって識別された場合には、ステップ440でシステムによって生成される出力によって識別される追加のデータ項目について手順が繰り返される。
【0092】
言い換えれば、本発明の実施形態は、ステップ400~430の訓練手順によって識別されるメタデータ値のあるパターンから意味を推論することにより、追加のデータ項目が同じパターンと関連付けられるが故に移行されるべきであることを学習しうる。
【0093】
ステップ450でシステムが、ステップ440で生成された出力がデータ移行を推奨すると判断した場合には、
図4の方法はステップ460~480に続く。
【0094】
ステップ460では、システムは、各データ項目をより高速のストレージ階層に移行するか、またはより低速のストレージ階層に移行するかを判断する。上述のように、ステップ440でシステムが、メタデータ要素のサブセットによって識別される特定の条件下で、特定のデータ項目にアクセスしようとした際のユーザ満足度レベルが受け入れ難いほど低いことを識別した場合には、ステップ470でシステムは、その特定のデータ項目をより高性能のストレージ階層に位置するより高速のストレージ・デバイスに移行する。反対に、ステップ440でシステムが、特定のデータ項目のユーザ満足度レベルが非常に高いためにユーザがより低いデータアクセス性能に耐えられるかもしれないことを識別した場合には、ステップ480でシステムは、その特定のデータ項目をより低性能のストレージ階層に位置するより低速のストレージ・デバイスに移行しうる。
【0095】
いずれの場合にも、システムは、ステップ470または480で、階層型ストレージ・プールの一つ以上のストレージ・コントローラに、一つの階層のストレージ・デバイスから別の階層のストレージ・デバイスにデータを物理的に移動することによってデータ移行を行うよう指示することにより、データ移行を開始しうる。一部の実施形態では、この移行は直ちに行われうるが、他の実施形態では、移行は、他の事業上の制約または技術的制約にしたがって将来の時間または日付にスケジュールされうる。
【0096】
ある実施形態では、階層型ストレージ管理システムは、実際のデータ移行を行うことができるハードウェアまたはソフトウェアを含みうる。そのような場合には、システムは、ステップ470または480で、データを一つの階層から別の階層に直ちにまたはスケジュールされた将来の時間に物理的に移動しうる。
【0097】
図5は、本発明の実施形態が役立ちうるキャッシュWANストレージ環境のアーキテクチャを示した図である。
図5は、項目500a~530bを含む。
【0098】
本文書に記載される本発明の一部の例および実施形態は、階層型ストレージ環境およびネットワーク接続ストレージ(NAS)をサポートする実装態様を説明するが、他の多くのタイプの実施形態が可能である。
【0099】
図4の方法は、例えば、キャッシュ・ワイド・エリア・ネットワーク(WAN)環境に適用されうる。このような場合には、中央「ホーム」サーバに記憶されたデータが、支店などの遠隔地にキャッシュされうる。この機構は、支店がキャッシュ・サーバに記憶されたキャッシュされたデータのコピーにより迅速にアクセスすることを可能にする。しかし、このようなキャッシュには追加のコストおよびコンピューティング・リソースを要するため、あるタイプのミッションクリティカルなデータのみをキャッシュすると費用効率がよくなりうる。
【0100】
このようなアーキテクチャを
図2の階層化されたストレージ環境に類似したものとみなすことにより、本発明の実施形態は、いずれのデータがキャッシュされた記憶媒体を占有すべきか、およびいずれが中央ハブのみに存在すべきかを判断するように適合されうる。この場合には、ユーザ満足度はストレージ・デバイスの性能よりもネットワーク帯域幅の関数である可能性がより高いが、本発明の基礎となる方法は同じように働く。以前のデータアクセス操作についてのユーザ満足度のレベルを識別するフィードバックを受信した後、コグニティブ分散ストレージ管理システムは、メタデータおよびユーザ・フィードバックの関数として、(より長いアクセス時間を提供しうる)中央ハブ・サーバと(より高い性能を提供しうる)ローカル・キャッシング・サーバとの間で特定のデータ項目を移行するか否かを判断しうる。
【0101】
一部の実施形態では、システムは、中央ハブ・サーバに記憶された特定のデータ項目が支店のような遠隔のWAN接続されたサイトに位置するキャッシュに移行されるのではなくそれと同期されるべきか否かおよびその頻度を判断するために
図4の方法をさらに適合させうる。
【0102】
図5の例では、WANを通じて二つの遠隔支店510aおよび510bに接続された中央ハブ510cを含むワイド・エリア・ネットワークが示される。集中ストレージ・デバイス520のセットが、中央位置510cに物理的に位置する。
【0103】
支店510aに物理的に位置するユーザ500aは、ネットワークを通じてハブ510cに物理的に記憶されたデータにアクセスすることができ、支店510bに物理的に位置するユーザ510bは、ネットワークを通じてハブ510cに物理的に記憶されたデータに同様にアクセスすることができる。しかし、ワイド・エリア・ネットワークを通じたデータアクセス時間は低速でありうる。したがって、ハブ・サーバ520に記憶されたデータが、それぞれの支店510aまたは510bにそれぞれ位置するローカル・キャッシュ・サーバ530aおよび530bにコピーされる。支店510aまたは510bに物理的に位置するユーザ500aまたは500bは、WAN転送に固有の遅延を伴わずにローカルにキャッシュ530aまたは530bに記憶されたデータにアクセスできるため、ローカルにキャッシュされたデータは、ハブに記憶されたデータよりも高性能なストレージ媒体とみなされうる。
【0104】
この機構は、ローカル・キャッシュ530aおよび530bが定期的にリフレッシュされるかまたはサーバ520上のハブ・データベースと同期される場合にのみ機能しうる。しかし、WANを通じた同期は時間がかかり高価でありうるため、ユーザ満足度レベルと技術的制約またはコスト制約との間での最善の妥協をもたらすために同期が頻繁に調整されねばならない。したがって、ハブ・サーバ520とローカル・キャッシュ・サーバ530aおよび530bとの間でいつデータが同期(実質的には「移行」)されるべきかを判断する手段が存在しなければならない。
【0105】
したがって、コグニティブWANストレージ管理システムは、ユーザ満足度のフィードバックおよびキャッシュされたデータのメタデータの関数として各タイプまたはクラスのキャッシュされたデータを同期する最善の時を判断するために
図4の方法に類似する方法を採用しうる。キャッシュされたデータが読み出し専用データだけではない実施形態では、本発明の方法は、支店のキャッシュと集中ハブのデータ・ストレージ・デバイスとの間での双方向同期を管理するように適合されうる。
【0106】
本明細書には記載されないが、本発明のさらに他の実施形態も可能である。例えば、テープライブラリ管理システムが、テープの取得および取り付けを要するデータ要求の性能を最適化するように
図4の方法を適合させうる。このような最適化は、ユーザ・フィードバックとテープに記憶されたデータ項目のメタデータとに基づく、テープ上のデータ項目の実際のポジションの、またはあるデータ項目を記憶するテープの選択の判断を含みうる。テープ(またはあるタイプの光ディスク)のようなシーケンシャルアクセス媒体は媒体上のある位置に記憶されたデータにより迅速にアクセスできるため、これらの判断はストレージ階層またはWANサーバ位置の判断に類似しうる。同様に、メディア・ライブラリに記憶されたオフライン・データへのアクセスは、データが長期保管のために倉庫に入れられているテープのようなアクセス頻度の低い媒体に記憶された場合よりも、迅速に見つけられ取り付けられうる(あるテープのような)特定のストレージ媒体にデータがアーカイブされたときに、より迅速に行われうる。