JP7442523B2 - ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上 - Google Patents

ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上 Download PDF

Info

Publication number
JP7442523B2
JP7442523B2 JP2021530060A JP2021530060A JP7442523B2 JP 7442523 B2 JP7442523 B2 JP 7442523B2 JP 2021530060 A JP2021530060 A JP 2021530060A JP 2021530060 A JP2021530060 A JP 2021530060A JP 7442523 B2 JP7442523 B2 JP 7442523B2
Authority
JP
Japan
Prior art keywords
data
storage
layer
shared
tier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021530060A
Other languages
English (en)
Other versions
JP2022515593A (ja
Inventor
パティル、サンディープ、ラメッシュ
エダ、サシカンス
ジェイン、アブヒシェク
ユキルデ、ディグヴィジェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022515593A publication Critical patent/JP2022515593A/ja
Application granted granted Critical
Publication of JP7442523B2 publication Critical patent/JP7442523B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Description

本発明はデータ・ストレージ・システムに関連しており、より詳細には、本発明は、データ・ワークロードの特性を使用して情報ライフサイクル管理を改善することに関連している。
情報がストレージ内で維持されているときに、通常、情報には複数の動作が発生する。例えば、ストレージに格納された(例えば、書き込まれた)後に、データの一部には、複数の読み取り動作または変更動作あるいはその両方が発生する。また、データの異なる部分は、通常、時間と共にストレージ内の異なる位置に移動される(例えば、再び書き込まれる)。時間と共にストレージ容量およびデータ・スループットが増加するにつれて、効率的な方法でこれらのアクセス動作を実行できるストレージ・システムの望ましさも増大する。
それに応じて、多くのストレージ・システムが情報ライフサイクル管理(ILM:information lifecycle management)を実施する。ILMは、作成(例えば、初期のストレージ)の時点から削除の時点まで、情報システムに含まれているデータまたはメタデータあるいはその両方のフローを管理するための包括的なアプローチである。しかし、従来のILM方式は、クラスタ化されたファイルシステム内の情報の分散を効果的に管理することができなかった。このことは、ストレージの異なる部分にわたってデータがストライプ化されるクラスタ化されたファイルシステムの場合に、特に当てはまる。
一実施形態によれば、コンピュータ実装方法が、ストレージ内のデータの配置に対応する1つまたは複数の提案を受信することを含み、1つまたは複数の提案は、データ・ワークロードの特性に基づく。1つまたは複数の提案は、1つまたは複数の提案に対応する実際のストレージに格納された実際のデータの部分を識別するために使用される。実際のストレージは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノード(シェアード・ナッシング・ノード、shared nothing node)を含んでいる第2の層を含む。第1の層に格納された実際のデータの識別された部分ごとに、実際のデータの特定の識別された部分を第2の層に転送するかどうかを判定するために、1つまたは複数の提案がさらに使用される。さらに、実際のデータの識別された部分のうちの少なくとも1つを第2の層に転送するということの決定に応答して、実際のデータの識別された部分のうちの少なくとも1つを第1の層から第2の層に転送するために、1つまたは複数の命令が送信される。
コンピュータ・プログラム製品は、別の実施形態によれば、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を含む。これらのプログラム命令は、プロセッサに前述の方法を実行させるために、プロセッサによって読み取り可能または実行可能あるいはその両方である。
システムは、別の実施形態によれば、プロセッサ、およびプロセッサに統合された論理、プロセッサによって実行可能な論理、またはプロセッサに統合され、プロセッサによって実行可能な論理を含む。さらに、この論理は、前述の方法を実行するように構成される。
コンピュータ実装方法は、さらに別の実施形態によれば、クラスタ化されたファイルシステムに格納されたデータのワークロードの特性を分析することを含む。クラスタ化されたファイルシステムは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含むストレージ内で実装される。さらに、第1および第2の層は、同じ名前空間に含まれる。分析されたワークロードの特性は、ストレージ内のデータの配置に対応する1つまたは複数の提案を生成するために使用される。さらに、1つまたは複数の提案は、ストレージ内のデータの少なくとも一部を第1の層と第2の層の間で転送するために使用される。
システムは、別の実施形態によれば、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含んでいるストレージを含む。さらに、第1および第2の層は、同じ名前空間に含まれる。システムは、プロセッサ、およびプロセッサに統合された論理、プロセッサによって実行可能な論理、またはプロセッサに統合され、プロセッサによって実行可能な論理も含む。この論理は、プロセッサによって、ストレージに格納されたデータのワークロードの特性を分析するように構成される。分析されたワークロードの特性は、プロセッサによって、ストレージ内のデータの配置に対応する1つまたは複数の提案を生成するためにさらに使用される。さらに、1つまたは複数の提案は、プロセッサによって、ストレージ内のデータの少なくとも一部を第1の層と第2の層の間で転送するために使用される。
本発明のその他の態様および実施形態は、本発明の原理を図面と併せて例として説明する、以下の詳細な説明から明らかになる。
一実施形態によるネットワーク・アーキテクチャを示す図である。 一実施形態による、図1のサーバまたはクライアントあるいはその両方に関連付けられてよい代表的ハードウェア環境を示す図である。 一実施形態による層型データ・ストレージ・システムを示す図である。 一実施形態によるクラスタ化されたファイルシステムを部分的に表す図である。 一実施形態による方法のフローチャートを示す図である。 一実施形態による方法のフローチャートを示す図である。 一実施形態による方法のフローチャートを示す図である。
以下の説明は、本発明の一般的原理を説明する目的で行われるのであり、本明細書において請求される本発明の概念を制限するように意図されていない。さらに、本明細書に記載された特定の特徴を、さまざまな可能な組み合わせおよび並べ替えの各々において、その他の記載された特徴と組み合わせて使用することができる。
本明細書では、特に具体的に定義されない限り、すべての用語には、本明細書から示される意味、および当業者によって理解される意味、または辞書、論文などにおいて定義された意味、あるいはその両方を含む、最も広い可能な解釈が与えられる。
本明細書および添付の特許請求の範囲において使用されるとき、単数形「a」、「an」、および「the」が、特に規定されない限り、複数の指示対象を含むということにも注意しなければならない。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組み合わせの存在を示すが、1つまたは複数のその他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組み合わせの存在または追加を除外していないということが、さらに理解されるであろう。
以下の説明では、単一の(同じ)名前空間内でストライプ化するストレージ構成およびストライプ化しないストレージ構成の両方をサポートすることができるフレームワークを実現するためのシステム、方法、およびコンピュータ・プログラム製品の複数の好ましい実施形態を開示する。さらに、本明細書における実施形態の一部は、例えば下でさらに詳細に記載されているように、データ・ワークロードの特性および提案または提案から得られたデータ・モデルあるいはその両方に基づいて、異なる層(その一部は、専用ハードウェアを使用して有効化される)間でデータを適切に配置または移行するように、ILM方式を大幅に改良することができる。
一般的な一実施形態では、コンピュータ実装方法が、ストレージ内のデータの配置に対応する1つまたは複数の提案を受信することを含み、1つまたは複数の提案は、データ・ワークロードの特性に基づく。1つまたは複数の提案は、1つまたは複数の提案に対応する実際のストレージに格納された実際のデータの部分を識別するために使用される。実際のストレージは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含む。第1の層に格納された実際のデータの識別された部分ごとに、実際のデータの特定の識別された部分を第2の層に転送するかどうかを判定するために、1つまたは複数の提案がさらに使用される。さらに、実際のデータの識別された部分のうちの少なくとも1つを第2の層に転送するということの決定に応答して、実際のデータの識別された部分のうちの少なくとも1つを第1の層から第2の層に転送するために、1つまたは複数の命令が送信される。
別の一般的な実施形態では、コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を含む。これらのプログラム命令は、プロセッサに前述の方法を実行させるために、プロセッサによって読み取り可能または実行可能あるいはその両方である。
別の一般的な実施形態では、システムは、プロセッサ、およびプロセッサに統合された論理、プロセッサによって実行可能な論理、またはプロセッサに統合され、プロセッサによって実行可能な論理を含む。さらに、この論理は、前述の方法を実行するように構成される。
さらに別の一般的な実施形態では、コンピュータ実装方法が、クラスタ化されたファイルシステムに格納されたデータのワークロードの特性を分析することを含む。クラスタ化されたファイルシステムは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含むストレージ内で実装される。さらに、第1および第2の層は、同じ名前空間に含まれる。分析されたワークロードの特性は、ストレージ内のデータの配置に対応する1つまたは複数の提案を生成するために使用される。さらに、1つまたは複数の提案は、ストレージ内のデータの少なくとも一部を第1の層と第2の層の間で転送するために使用される。
別の一般的な実施形態では、システムは2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含んでいるストレージを含む。さらに、第1および第2の層は、同じ名前空間に含まれる。システムは、プロセッサ、およびプロセッサに統合された論理、プロセッサによって実行可能な論理、またはプロセッサに統合され、プロセッサによって実行可能な論理も含む。この論理は、プロセッサによって、ストレージに格納されたデータのワークロードの特性を分析するように構成される。分析されたワークロードの特性は、プロセッサによって、ストレージ内のデータの配置に対応する1つまたは複数の提案を生成するためにさらに使用される。さらに、1つまたは複数の提案は、プロセッサによって、ストレージ内のデータの少なくとも一部を第1の層と第2の層の間で転送するために使用される。
図1は、一実施形態に従うアーキテクチャ100を示している。図1に示されているように、第1のリモート・ネットワーク104および第2のリモート・ネットワーク106を含む複数のリモート・ネットワーク102が提供される。ゲートウェイ101は、リモート・ネットワーク102と近接ネットワーク108との間で結合されてよい。本アーキテクチャ100との関連において、ネットワーク104、106はそれぞれ、ローカル・エリア・ネットワーク(LAN:local area network)、インターネットなどの広域ネットワーク(WAN:wide area network)、公衆交換電話網(PSTN:public switched telephone network)、構内電話網などを含むが、これらに限定されない、任意の形態を取ることができる。
使用中に、ゲートウェイ101はリモート・ネットワーク102から近接ネットワーク108への入り口ポイントとして機能する。このようにして、ゲートウェイ101は、ゲートウェイ101に到着するデータの特定のパケットを向けることができるルータ、およびゲートウェイ101に入る実際のパスおよびゲートウェイ101から出る実際のパスを特定のパケットに提供するスイッチとして機能することができる。
ゲートウェイ101を介してリモート・ネットワーク102からアクセスできる、近接ネットワーク108に結合された少なくとも1つのデータ・サーバ114がさらに含まれる。データ・サーバ114が任意のタイプのコンピューティング・デバイス/グループウェアを含むことができるということに注意するべきである。複数のユーザ・デバイス116が各データ・サーバ114に結合されている。ユーザ・デバイス116は、ネットワーク104、106、108のうちの1つを通って直接接続されてもよい。そのようなユーザ・デバイス116は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、または任意のその他の種類の論理を含むことができる。一実施形態では、ユーザ・デバイス111がネットワークのうちのいずれかに直接結合されてもよいということに注意するべきである。
周辺機器120または一連の周辺機器120(例えば、ファクシミリ装置、プリンタ、ネットワークまたはローカルあるいはその両方のストレージ・ユニットまたはストレージ・システムなど)が、ネットワーク104、106、108のうちの1つまたは複数に結合されてよい。データベースまたは追加コンポーネントあるいはその両方が、ネットワーク104、106、108に結合された任意の種類のネットワーク要素で利用されるか、またはそのようなネットワーク要素に統合されてよいということに注意するべきである。本説明との関連において、ネットワーク要素はネットワークの任意のコンポーネントを指すことができる。
一部のアプローチによれば、本明細書に記載された方法およびシステムは、1つまたは複数の他のシステムをエミュレートする仮想システムまたはシステムあるいはその両方(IBM z/OS環境をエミュレートするUNIX(R)システム、MICROSOFT WINDOWS(R)環境を仮想的にホストするUNIX(R)システム、IBM z/OS環境をエミュレートするMICROSOFT WINDOWS(R)システムなど)と共に実装されるか、またはそのようなシステムの上に実装されるか、あるいはその両方で実装されてよい。一部の実施形態では、この仮想化またはエミュレーションあるいはその両方は、VMWAREソフトウェアを使用して拡張されてよい。
その他のアプローチでは、1つまたは複数のネットワーク104、106、108は、一般に「クラウド」と呼ばれる、システムのクラスタを表すことができる。クラウド・コンピューティングでは、処理能力、周辺機器、ソフトウェア、データ、サーバなどの共有されたリソースが、オンデマンドの関係においてクラウド内の任意のシステムに提供され、それによって、多くのコンピューティング・システムにまたがるサービスのアクセスおよび分散が可能になる。クラウド・コンピューティングは、通常、クラウド内で動作するシステム間のインターネット接続を含むが、システムを接続するその他の手法が使用されてもよい。
図2に、一実施形態に従って、図1のユーザ・デバイス116またはサーバ114あるいはその両方に関連付けられた代表的ハードウェア環境を示す。この図は、マイクロプロセッサなどの中央処理装置210、およびシステム・バス212を介して相互接続されたその他の複数のユニットを備えているワークステーションの標準的なハードウェア構成を示している。
図2に示されたワークステーションは、ランダム・アクセス・メモリ(RAM:Random Access Memory)214、読み取り専用メモリ(ROM:Read Only Memory)216、ディスク・ストレージ・ユニット220などの周辺機器をバス212に接続するための入出力(I/O:input/output)アダプタ218、キーボード224、マウス226、スピーカ228、マイクロホン232、またはタッチ・スクリーンおよびデジタル・カメラ(図示されていない)などのその他のユーザ・インターフェイス・デバイス、あるいはその組み合わせをバス212に接続するためのユーザ・インターフェイス・アダプタ222、ワークステーションを通信ネットワーク235(例えば、データ処理ネットワーク)に接続するための通信アダプタ234、ならびにバス212をディスプレイ・デバイス238に接続するためのディスプレイ・アダプタ236を含む。
ワークステーション上には、Microsoft Windows(R)オペレーティング・システム(OS:Operating System)、MAC OS、UNIX(R) OSなどのオペレーティング・システムが常駐することができる。前述されたプラットフォームおよびオペレーティング・システム以外のプラットフォームおよびオペレーティング・システム上に好ましい実施形態が実装されてもよいということが理解されるであろう。好ましい実施形態は、拡張マークアップ言語(XML:eXtensible Markup Language)、C言語、またはC++言語、あるいはこれらの組み合わせ、あるいはその他のプログラミング言語を、オブジェクト指向プログラミング方法と共に使用して記述されてよい。複雑なアプリケーションを開発するためにますます使用されるようになったオブジェクト指向プログラミング(OOP:object oriented programming)が使用されてよい。
ここで図3を参照すると、一実施形態に従ってストレージ・システム300が示されている。さまざまな実施形態に従って、図3に示された要素の一部が、ハードウェアまたはソフトウェアあるいはその両方として実装されてよいということに注意する。ストレージ・システム300は、少なくとも1つの上位ストレージ層302上および少なくとも1つの下位ストレージ層306上の複数の媒体またはドライブあるいはその両方と通信するために、ストレージ・システム・マネージャ312を含んでよい。上位ストレージ層302は、好ましくは、ハード・ディスク・ドライブ(HDD:hard disk drive)内のハード・ディスク、不揮発性メモリ(NVM:nonvolatile memory)、半導体ドライブ(SSD:solid state drive)内の半導体ストレージ、フラッシュ・ストレージ、SSDアレイ、フラッシュ・ストレージ・アレイなど、または本明細書に記載されたか、もしくは従来技術において知られているその他の媒体、あるいはその組み合わせなどの、1つまたは複数のランダム・アクセスまたは直接アクセスあるいはその両方の媒体304を含むことができる。下位ストレージ層306は、好ましくは、テープ・ドライブ内の磁気テープまたは光媒体あるいはその両方、低速アクセスHDD、低速アクセスSDDなど、または本明細書に記載されたか、もしくは従来技術において知られているその他の順次アクセス媒体、あるいはその組み合わせなどの順次アクセス媒体を含む、1つまたは複数の下位で実行されるストレージ媒体308を含むことができる。1つまたは複数の追加ストレージ層316は、システム300の設計者の要求に従って、ストレージ媒体の任意の組み合わせを含むことができる。また、上位ストレージ層302または下位ストレージ層306あるいはその両方のいずれかは、ストレージ・デバイスまたはストレージ媒体あるいはその両方のなんらかの組み合わせを含むことができる。
ストレージ・システム・マネージャ312は、図3に示されたストレージ・エリア・ネットワーク(SAN:storage area network)またはその他の適切なネットワーク・タイプなどのネットワーク310を介して、上位ストレージ層302上および下位ストレージ層306上のドライブまたはストレージ媒体あるいはその両方304、308と通信することができる。ストレージ・システム・マネージャ312は、ストレージ・システム・マネージャ312の一部であってもなくてもよいホスト・インターフェイス314を介して、1つまたは複数のホスト・システム(図示されていない)と通信することもできる。ストレージ・システム300のストレージ・システム・マネージャ312または任意のその他のコンポーネントあるいはその両方は、ハードウェア内またはソフトウェア内あるいはその両方に実装されてよく、従来技術において知られている種類のコマンドを実行するために、中央処理装置(CPU:central processing unit)、フィールド・プログラマブル・ゲートアレイ(FPGA:field programmable gate array)、特定用途向け集積回路(ASIC:application specific integrated circuit)などのプロセッサ(図示されていない)を利用することができる。当然、当業者が本説明を読んだときに明らかであろうように、ストレージ・システムの任意の配置が使用されてよい。
その他の実施形態では、ストレージ・システム300は、任意の数のデータ・ストレージ層を含むことができ、各ストレージ層内の同じであるか、または異なるストレージ媒体を含むことができる。例えば、各データ・ストレージ層は、HDD、SSD、順次アクセス媒体(テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど)、直接アクセス媒体(CD-ROM、DVD-ROMなど)、または媒体のストレージ・タイプの任意の組み合わせなどの、同じタイプのストレージ媒体を含むことができる。そのような1つの構成において、上位ストレージ層302は、上位で実行されるストレージ環境内にデータを格納するためのSSDストレージ媒体の大部分を含むことができ、下位ストレージ層306および追加ストレージ層316を含む残りのストレージ層は、データを下位で実行されるストレージ環境内に格納するために、SSD、HDD、テープ・ドライブなどの任意の組み合わせを含むことができる。このようにして、より頻繁にアクセスされるデータ、優先度の高いデータ、より素早くアクセスされる必要のあるデータなどは、上位ストレージ層302に格納されてよく、これらの属性のいずれかを持たないデータは、下位ストレージ層306を含む追加ストレージ層316に格納されてよい。当然、当業者は、本説明を読んだときに、本明細書において提示された実施形態に従って、異なるストレージ方式で実装するために、ストレージ媒体のタイプの多くのその他の組み合わせを考案することができる。
一部の実施形態に従って、ストレージ・システム(300など)は、データ・セットを開くための要求を受信するように構成された論理、要求されたデータ・セットが、複数の関連する部分において、層型データ・ストレージ・システム300の下位ストレージ層306に格納されているかどうかを判定するように構成された論理、要求されたデータ・セットの関連する各部分を層型データ・ストレージ・システム300の上位ストレージ層302に移動するように構成された論理、および層型データ・ストレージ・システム300の上位ストレージ層302上の要求されたデータ・セットを関連する部分から組み立てるように構成された論理を含むことができる。
当然、この論理は、さまざまな実施形態に従って、任意のデバイス上またはシステム上あるいはその両方での方法として、またはコンピュータ・プログラム製品として実装されてよい。
前述したように、多くのストレージ・システムは、作成(例えば、初期のストレージ)の時点から削除の時点まで、情報システムに含まれているデータまたはメタデータあるいはその両方のフローを管理するために、ILMを実装する。しかし、従来のILM方式は、クラスタ化されたファイルシステム内の情報の分散を効果的に管理することができなかった。このことは、ストレージの異なる部分にわたってデータがストライプ化されるクラスタ化されたファイルシステムの場合に、特に当てはまる。例えば、ストレージの異なるディスクにわたってデータをストライプ化することによって、達成可能なスループットが増えるが、例えば下でさらに詳細に記載されているように、各ディスクからフラグメントの各々を再呼び出しすることを伴う状況において、待ち時間も増える。
図4を参照すると、一実施形態に従って、クラスタ化されたファイルシステム400を表す図が示されている。任意選択として、存在するクラスタ化されたファイルシステム400は、図3などの他の図を参照して記載されている特徴などの、本明細書に示されている任意の他の実施形態からの特徴と共に、実装されてよい。ただし、そのようなクラスタ化されたファイルシステム400および本明細書において提示されている他のものは、本明細書に示されている実施形態例において具体的に記載されていることもあれば、記載されていないこともあるさまざまな応用または並べ替えにあるいはその両方において、使用されてよい。さらに、本明細書において提示されているクラスタ化されたファイルシステム400は、任意の望ましい環境内で使用されてよい。したがって、図4(およびその他の図)は、可能性のある任意の並べ替えを含むと見なされてよい。
図に示されているように、クラスタ化されたファイルシステム400は、第1の層402および第2の層404を含む。好ましいアプローチでは、第1および第2の層402、404は、クラスタ化されたファイルシステム400の同じ名前空間に含まれる。したがって、第1および第2の層402、404は、例えば当業者が本説明を読んだ後に理解するであろうように、一意の識別子またはシンボルの論理的グループを保持するために作成された同じ抽象的コンテナまたは環境に含まれてよい。さらに、第1の層402に対応する第1のiノード構造が、第2の層404に対応する第2のiノード構造とは別に維持されるのが好ましい。しかし一部のアプローチでは、第1および第2の層402、404それぞれに、結合されたiノード構造の一意の部分が割り当てられてよい。
ここで第1の層402を具体的に参照すると、共有ノード406、408が、任意の望ましい種類であってよい複数の異なるストレージ・コンポーネント410の各々に結合されている。例えば、さまざまなアプローチでは、ストレージ・コンポーネント410のうちのいずれか1つまたは複数が、HDD、SSD、または磁気テープ・ライブラリなど、あるいはこれらの組み合わせを含んでよい。したがって、一部のアプローチでは、共有ノード406、408のうちの1つまたは複数が、実際には共有ディスク・ノードであってよい。共有ノード406、408の各々はまた、コントローラ412と、例えばキャッシュとして機能することができるストレージ414の一部とを含む。コントローラ412の各々が、望ましいアプローチに応じて、例えばプロセッサ、サーバ、CPUなどの、任意の望ましい種類の処理コンポーネントを含むか、または実際に任意の望ましい種類の処理コンポーネントであってよいということにも、注意するべきである。
第2の層404は、複数の異なるストレージ・コンポーネント416も含み、それらのストレージ・コンポーネント416の各々は、それぞれの共有なしノード(シェアード・ナッシング・ノード)418に結合される。共有なしノード418の各々は、ノード418の各々が独立しており、互いに対して自己充足的である、分散コンピューティング・アーキテクチャを含む共有なしアーキテクチャを有する。一部の例示的なアプローチでは、第2の層404にわたって競合ポイントが1つも存在しない。したがって、共有なしノード418は、例えば当業者が本説明を読んだ後に理解するであろうように、共有なしノード418間でストレージまたは計算リソースあるいはその両方を分け合わない。
したがって、第1の層402は、共有ノード406、408を使用して複数のストレージ・コンポーネント410にわたってデータをストライプ化することができ、一方、第2の層404は、共有なしノード418を使用してストレージ・コンポーネント416にわたってデータをストライプ化することができない。さらに、共有ノード406、408の各々が、異なるストレージ・コンポーネント410の各々に結合され、共有ノード406、408のいずれかによって、ストレージ・コンポーネント410のいずれかに対して、データを書き込むこと、または読み込むこと、あるいはその両方を実行できるようにする。当業者によって理解されるであろうように、データ・ストライピングは、連続するセグメントが異なる物理ストレージ・デバイスに格納されるように、例えばファイルなどの順次データを論理的にセグメント化する手法である。ストライピングは、処理デバイスが、単一のストレージ・デバイスが供給できる速度よりも速くデータを要求する場合に役立つ。これは、同時にアクセスされ得る複数のデバイスにわたってセグメントを分散することによって、達成可能な合計データ・スループットが増えるためである。データ・ストライピングは、多数のストレージ・コンポーネントにわたってI/O負荷のバランスを取るために役立つプロセスでもある。さらに、一部のデータ・ストライピング・プロセスは、ストレージ・デバイス上で、データ・シーケンスの先頭からデータの連続的セグメントをラウンドロビン方式でインターリーブすることを含む。
反対に、共有なしノード418の各々は、共有なしアーキテクチャ(シェアード・ナッシング・アーキテクチャ)を有しており、それによってデータ・ストライピングを実施することができない。むしろ、共有なしノード418の各々は、例えば、共有なしクラスタ用汎用並列ファイル・システム(GPFS-SNC:general parallel file system for shared nothing clusters)モードなどのデータ非ストライピング・モード(data non-striping mode)を実施する。本発明を制限するよう全く意図されていない例示的なアプローチによれば、GPFS-SNCモードは、特定のクラスタ上で動作する拡張可能なファイル・システムを含む。第1および第2の層402、404の各々に含まれているコンポーネントの数が制限するよう全く意図されていないということにも注意するべきである。むしろ、望ましいアプローチに応じて、任意の望ましい数のノード、ストレージ・コンポーネントなどが実装されてよい。
ストライピング・モードが提供する並列性を考慮すると、場合によってはストライピング・モードが望ましいが、非ストライピング・モードも利益をもたらす。例えば、非ストライピング・アーキテクチャは、データが存在するノード上で計算ジョブをスケジューリングすることを可能にする局所性認識を実現することができる。同じファイルシステム内に大きいブロック・サイズと小さいブロック・サイズが共存できるようにするメタブロックも実装され、それによって、異なる種類のアプリケーションの要求を満たす。一部のアプローチでは、アプリケーションが書き込み帯域幅と読み取り帯域幅の両方を最大化するために異なるノード上のファイルのレイアウトを決定できるようにする書き込みアフィニティも、実現される。さらに、データ複製のためのネットワーク帯域幅の使用を増やすために、パイプライン化された複製が使用されてよく、一方、進行中の計算での失敗の影響を低減するために、分散回復が利用されてよい。したがって、ストライピング・モードおよび非ストライピング・モードを効果的に実施できるファイルシステムが望ましい。
共有なしノード418の各々は、コントローラ420、ストレージ422の一部(例えば、場合によってはキャッシュとして機能することができる部分)、および専用ハードウェア424を含む。全体的なデータ使用およびストレージ容量が増え続けるにつれて、システムのデータ・アクセス動作の実行に関連する待ち時間が全体的に拡大される。このことは、ストレージの異なる部分にわたってデータがストライプ化される以前のクラスタ化されたファイルシステムの場合に、特に当てはまる。例えば、ストレージの異なるディスクにわたってデータをストライプ化することによって、達成可能なスループットを増やすことができるが、各ストレージ位置からフラグメントの各々を再呼び出しすることを伴う状況において、待ち時間も増える。
この待ち時間に対処するために、本明細書に含まれている実施形態の一部は、専用ハードウェア424を実装する。専用ハードウェア424は、第2の層404内の共有なしノード418がデータ操作を実行できる速度を増やすことができるのが好ましい。言い換えると、専用ハードウェア424は、共有なしノード418の各々と共有なしノード418に結合された各ストレージ・コンポーネント416との間で実行されるデータ転送の速度を、効果的に増やす。これによってストレージ・コンポーネント416からデータに非常に速くアクセスできるようにし、それによって、読み取り動作、書き込み動作、再書き込み動作などを実行することに関連する待ち時間を大幅に減らす。
専用ハードウェア424を形成するために使用されてよいコンポーネントの例としては、グラフィックス・プロセッシング・ユニット(GPU:graphics processing unit)、SSDキャッシュ、ASIC、または不揮発性メモリ・エクスプレス(NVMe:non-volatile memory express)など、あるいはこれらの組み合わせが挙げられるが、これらに全く限定されない。本発明を制限するよう全く意図されていない例によれば、例えば下でさらに詳細に記載されているように、機械学習モデルを開発するのを支援するために、GPUを含んでいる専用ハードウェア424が使用されてよい。さらに、共有なしノード418の各々は、望ましいアプローチに応じて、同じであるか、類似するか、または異なる専用ハードウェア424のコンポーネントを含んでよい。例えば、一部のアプローチでは、共有なしノード418の各々がSSDキャッシュ専用ハードウェア424を含み、一方、他のアプローチでは、共有なしノード418のうちの1つがSSDキャッシュ専用ハードウェア424を含み、共有なしノード418のうちの別の共有なしノード418がGPU専用ハードウェア424を含む。
一部のアプローチでは、共有なしノード418の各々と共有なしノード418に結合された各ストレージ・コンポーネント416との間に伸びる通信経路426も、データ転送速度を加速させることができる。本発明を制限するよう全く意図されていない例によれば、高速なPCIe(Peripheral Component Interconnect Express)バスが、共有なしノード418および各ストレージ・コンポーネント416を結合する通信経路426として機能する。さらに、専用ハードウェア424が、PCIeバスと組み合わさって、データの転送をさらに加速するように機能してよい。
図4を引き続き参照すると、第1および第2の層402、404が両方ともネットワーク428に接続されている。第1または第2あるいはその両方の層402、404は、例えばWiFi、Bluetooth、セルラー・ネットワークなどの無線接続、例えば、ケーブル、光ファイバ・リンク、ワイヤなどの有線接続など、または本説明を読んだ後に当業者にとって明らかになるであろう任意のその他の種類の接続を使用して、ネットワーク428に結合されてよい。さらに、ネットワークは、例えば望ましいアプローチに応じて、任意の種類であってよい。例えば、一部のアプローチでは、ネットワーク428はWAN(例えば、インターネットなど)である。しかし、ネットワーク428が実装できるその他のネットワークの種類の例としては、LAN、PSTN、SAN、内部電話網などが挙げられるが、これらに限定されない。したがって、第1および第2の層402、404は、それらの間に存在する分離の大きさにかかわらず(例えば、異なる地理的位置に配置されているにもかかわらず)、互いに通信できる。
中央コントローラ430およびユーザ432(例えば、管理者)も、ネットワーク428に結合される。一部のアプローチでは、中央コントローラ430は、第1および第2の層402、404間の通信を管理するために使用される。中央コントローラ430は、ユーザ432とクラスタ化されたファイルシステム400の間の通信を管理してもよい。一部のアプローチによれば、中央コントローラ430は、データ、動作要求、コマンド、書式設定命令などをユーザ432から受信し、これらの適切な部分を第1または第2あるいはその両方の層402、404に向ける。
やはり、時間と共にストレージ容量およびデータ・スループットが増加するにつれて、効率的な方法でデータ・アクセス動作を実行できるストレージ・システムの望ましさも増大する。機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を効率的な方法で適用できるようにするストレージ・アーキテクチャを実装することによって、本明細書に含まれている実施形態のうちのさまざまな実施形態が、この望ましい改良を実現することができる。さらに、リアルタイムでの性能をさらに改善するために、ファイルシステム内の異なる層に固有の性能の特徴がインテリジェントに利用されてよい。例えば、ここで図5Aを参照すると、一実施形態に従って、コンピュータ実装方法500のフローチャートが示されている。方法500は、さまざまな実施形態において、特に図1~4に示された環境のいずれかにおいて、本発明に従って実行されてよい。当然、当業者が本説明を読んだときに理解するであろうように、図5Aにおいて具体的に記載された動作よりも多いか、または少ない動作が方法500に含まれてよい。
方法500のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、方法500のフローチャートに示されているノード501、502、503の各々は、多層データ・ストレージ・システム内の異なる位置に配置された1つまたは複数のプロセッサに対応してよい。さらに、1つまたは複数のプロセッサの各々は、互いに通信するように構成されるのが好ましい。
さまざまな実施形態では、方法500は、コントローラ、プロセッサなど、または1つまたは複数のプロセッサを備えているその他のデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法500の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。プロセッサの例としては、中央処理装置(CPU)、ASIC、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスが挙げられるが、これらに限定されない。
前述したように、図5Aは、異なるノード501、502、503を含んでおり、これらのノードの各々が、多層データ・ストレージ・システム内の異なる位置に配置された1つまたは複数のプロセッサ、コントローラ、コンピュータなどを表す。例えば、ノード501は、クラスタ化されたファイルシステム(例えば、上の図4の412、420を参照)の層に電気的に結合された1つまたは複数のプロセッサを含んでよい。ノード502は、クラスタ化されたファイルシステム(例えば、上の図4の430を参照)の中央コントローラとして機能する1つまたは複数のプロセッサを含んでよい。さらに、ノード503は、ユーザの位置にある1つまたは複数のプロセッサを含んでよく、このユーザの位置は、ノード501および503の各々で、(例えば、ネットワーク接続を介して)1つまたは複数のプロセッサと通信している。したがって、アプローチに応じて、コマンド、データ、要求などがノード501、502、503の各々の間で送信されてよい。さらに、例えば当業者が本説明を読んだ後に理解するであろうように、方法500に含まれるさまざまなプロセスが制限するよう全く意図されていないということに、注意するべきである。例えば、一部のアプローチでは、ノード502からノード503に送信されるデータは、ノード503からノード502に送信される要求によって開始されてよい。
図に示されているように、方法500の動作504は、ノード501で1つまたは複数のプロセッサによって実行される。ノード501での1つまたは複数のプロセッサがクラスタ化されたファイルシステムの特定の層に電気的に結合されるということに、再度注意するべきである。したがって、一部のアプローチでは、ノード501での1つまたは複数のプロセッサは、共有ノード406、408内のコントローラ412のうちの1つまたは複数を含む。他のアプローチでは、ノード501での1つまたは複数のプロセッサは、共有なしノード418内のコントローラ420のうちの1つまたは複数を含む。さらに他のアプローチでは、ノード501での1つまたは複数のプロセッサは、共有ノード406、408内のコントローラ412のうちの1つまたは複数および共有なしノード418内のコントローラ420のうちの1つまたは複数を表してよい。言い換えると、ノード501で1つまたは複数のプロセッサによって実行されるプロセスは、特定のアプローチに応じて、図4のクラスタ化されたファイルシステムの層402、404のいずれかに含まれるノード406、408、418のいずれかによって実行されてよい。
方法500を引き続き参照すると、動作504が、クラスタ化されたファイルシステムに格納されたデータに対応するデータ・ワークロードの特性を収集することを含んでいる。前述したように、クラスタ化されたファイルシステムは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含むストレージ内で実装される。好ましいアプローチでは、クラスタ化されたファイルシステムの第1および第2の層は、同じ名前空間にも含まれる。
収集されるデータ・ワークロードの特性は、望ましいアプローチに応じて変化する。例えば、動作504において収集されてよいデータ・ワークロードの特性の例としては、読み取りパターンまたは書き込みパターンあるいはその両方、データが対応するファイル・タイプ、データが対応するファイルの特定の部分(例えば、ヘッダー、フッター、メタデータ・セクションなど)などが挙げられるが、これらに全く限定されない。一部のアプローチによれば、例えば当業者が本説明を読んだ後に理解するであろうように、動作504において収集されるデータ・ワークロードの特性を識別するために、教師あり学習モデルが使用されてよい。
動作506が、収集されたデータ・ワークロードの特性をノード502に送信することをさらに含む。アプローチに応じて、データ・ワークロードの特性は、収集されたときに、既定のサイズでまとめて、定期的に、などで、ノード502に送信されてよい。
さらに、動作508は、データ・ワークロードの特性を分析することを含む。データ・ワークロードの特性を分析するプロセスは、受信されたワークロードの特性の数または種類あるいはその両方に応じて変わる。例えば、異なるアプローチでは、対応するデータの種類、データのサイズ、異なる読み取り/書き込みパターン、特定のアクセス・パターン、提案されたフレームワークの推定、クラスタ化されたファイルシステムが使用されている産業またはワークロードあるいはその両方の種類などを分析することによって、動作508が実行されてよい。
分析されたワークロードの特性は、その後、ストレージ内のデータの特定の部分の配置に対応する1つまたは複数の提案またはデータ・モデルあるいはその両方を生成するために使用される。動作510を参照する。例えば、一部のアプローチでは、提案(本明細書では「ヒント」とも呼ばれる)またはデータ・モデルあるいはその両方は、特定のワークロードに対応する。一部のアプローチでは、生成された提案は、例えば識別されたワークロードに基づいて、状況に適した特定の機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を識別するためにも使用される。これらの機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方は、データが格納されているストレージまたはストレージ位置(例えば、ノード)あるいはその両方に実際に含まれているデータを表すように、時間をかけて開発されてよい。したがって、機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方は、データ・ワークロードの特性を使用して、または少なくともデータ・ワークロードの特性に基づいて、時間と共に更新されて(例えば、改良されて)よい。
これらの生成された提案は、その後、動作512での承認のために、ノード503に送信される。ノード503で、ユーザ(例えば、管理者)は、生成された提案の一部または全部を受け入れるか、または何も受け入れないことができる。ノード503で、ユーザは、アプローチに応じて、1つまたは複数の補足的な提案またはモデルあるいはその両方を提案することもできる。したがって、判定514は、生成された提案が受け入れられるかどうかの判定を含む。生成された提案が受け入れられないということの決定に応答して、方法500が動作516に進み、それによって、例えば前述したように、ユーザが1つまたは複数の提案またはデータ・モデルあるいはその両方を提案する。提案またはデータ・モデルあるいはその両方は、元の提案が生成されたクラスタ化されたファイルシステムに対して実行される機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方に基づいてよい。
しかし、判定514に戻り、生成された提案が受け入れられるということの決定に応答して、方法500が動作518にジャンプする。しかし、生成された提案が受け入れられる一部のアプローチの場合に、動作516が実行されてよいということに、注意するべきである。例えばユーザは、生成された提案を補完するために、1つまたは複数の提案またはデータ・モデルあるいはその両方を提供してよい。
図に示されているように、動作518は、生成された提案のいずれかが受け入れられたかどうかを示す応答をノード502に送信することを含む。この応答は、前述したように、1つまたは複数の提案またはデータ・モデルあるいはその両方を含んでもよい。ノード503から応答を受信することに応答して、動作520が実行される。そこでは、動作520が、1つまたは複数の承認された提案またはデータ・モデルあるいはその両方を使用して、ストレージ内のデータの少なくとも一部を第1の層と第2の層の間で転送することを含んでいる。言い換えると、動作520は、提案またはデータ・モデルあるいはその両方を適用して、クラスタ化されたファイルシステムに含まれているデータを管理することを含む。一部のアプローチでは、提案またはデータ・モデルあるいはその両方は、例えば下でさらに詳細に説明されているように、新しいデータが受信されたときに、そのデータに適用されてもよい(例えば、図5Cを参照)。
ここで図5Bを参照すると、提案またはデータ・モデルあるいはその両方を適用して、事前にデータが入力されているクラスタ化されたファイルシステムに含まれているデータを管理する例示的なサブプロセスが、一実施形態に従って示されており、一部のアプローチでは、これらのサブプロセスのうちの1つまたは複数が、図5Aの動作520を実行するために使用されてよい。ただし、図5Bのサブプロセスが、本発明を制限するよう全く意図されていない一実施形態に従って示されているということに、注意するべきである。例えば、図5Aは、図5Bに含まれている例示的なサブプロセスがノード502で1つまたは複数のプロセッサによって実行されることを示しているが、実際には、サブプロセスのうちのいずれか1つまたは複数が、クラスタ化されたファイルシステム内の他のプロセッサのいずれかによって実行されてよい。したがって、図5Bに含まれているサブプロセスのうちのいずれか1つまたは複数が、上の図4のコントローラ412、420のうちの1つまたは複数によって実行されてよい。
図5Bを引き続き参照すると、下位の動作540が、クラスタ化されたファイルシステムのストレージ内のデータの配置に対応する1つまたは複数の提案またはデータ・モデルあるいはその両方を受信することを含んでいる。前述したように、クラスタ化されたファイルシステムは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含んでいるストレージを含む。1つまたは複数の提案またはデータ・モデルあるいはその両方は、データ・ワークロードの特性にも基づく。データ・ワークロードの特性は、提案またはデータ・モデルあるいはその両方が適用されるストレージ環境から得られるのが好ましいが、一部のアプローチでは、他の情報を使用して提案またはデータ・モデルあるいはその両方のうちの1つまたは複数が得られてよい。例えば、類似するクラスタ化されたファイルシステムに対して実行された機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を使用して作られた1つまたは複数のデータ・モデルが、使用されてよい。
下位の動作540において受信された1つまたは複数の提案またはデータ・モデルあるいはその両方が、ストレージ内の層のうちの特定の1つに移行されることから恩恵を受けると予測された実際のストレージに格納されている実際のデータの特定の部分を識別するために、さらに使用されてよい。下位の動作542を参照する。例えば、既存の機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方の精度を改善する情報を含んでいるか、またはそのような情報に対応するか、あるいはその両方であるとして、データの特定の部分が識別されてよい。したがって、データの一部に関連付けられたデータ・ワークロードの特性を使用するか、または少なくともそのようなデータ・ワークロードの特性に基づくアルゴリズムを更新するのを支援するために、共有なしノードに含まれている専用ハードウェア(例えば、GPUなど)を使用できるように、データの識別された部分を、第2の層内の共有なしノードのうちの1つに移行するのが望ましいことがある。別の例によれば、次回の重いデータ転送のワークロードを含んでいると予想されるデータの部分が、提案またはデータ・モデルあるいはその両方を使用して識別されてよい。データのこの部分は、次回の重いデータ転送のワークロードを考慮して、第2の層に格納されることから恩恵を受けると予測される。この予測は、予想される重いデータ転送のワークロードおよび第2の層内の共有なしノードの構成の両方に基づき、この共有なしノードは、データ転送速度の向上を達成できる専用ハードウェアを含むのが好ましい。さらに別の例によれば、データの一部が、機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方に役立つ情報を提供できるとして識別されてよい。したがって、例えば当業者が本説明を読んだ後に理解するであろうように、データの一部が、クラスタ化されたファイルシステム内のデータの配置を管理するために使用されるカスタムILM方式を改善する可能性を有するとして決定されてよい。
下位の動作542において識別された実際のデータの部分ごとに、特定の部分のデータがストレージ内の異なる層に転送されるべきかどうかに関する実際の判定が行われる。判定544を参照する。一部のアプローチによれば、判定544を実行することは、ストレージ内の異なる層の特定の構成を決定することと、それらの構成を、提案またはデータ・モデルあるいはその両方を使用して行われている予測と比較することとを実際に含んでよい。例えば、第2の層内の共有なしノードのいずれかが専用ハードウェアを実際に含んでいるかどうかに関する判定が行われてよい。さらに、専用ハードウェアを含んでいるとして決定されたノードに関して、例えばデータ転送速度能力の向上などの、特定のノードの専用ハードウェアがどのレベルの性能を達成できるかに関する決定が、さらに行われてよい。
第1の層内の共有ノードに関して、同様の決定が行われてよい。共有ノードは、追加された専用ハードウェアを含まなくてよいが、異なるストレージ・コンポーネントにわたって共有ノードの各々が相互接続される方法は、特定の動作を並列に実行できるようにし、それによって、単一の共有なしノードが達成できる処理速度よりも速い処理速度を達成する。したがって、次回の重いデータ転送のワークロードを考慮して、データの特定の部分が共有なしノードを含んでいる第2の層に格納されることから恩恵を受けると予測することができると同時に、次回のデータ処理負荷の高いワークロードを考慮して、データの他の部分が第1の層に格納されることから恩恵を受けると予測することができ、それによって、このワークロードを2つ以上の処理コンポーネントによって並列に実行することができる。
図5Bのフローチャートは、データの特定の部分がストレージ内の異なる層に転送されないという決定に応答して、下位の動作546に進むように示されている。そこでは、下位の動作546が、デフォルトのILM方式を使用して、クラスタ化されたファイルシステム内のデータの特定の部分の配置を管理することを含んでいる。上で示唆したように、ILM方式は、データ・ストレージに関わる管理プロセスを自動化し、通常は、指定されたポリシーに従ってデータを構造化し、それらの基準に基づいて、ある層から別の層へのデータ移行を自動化する。例えば、より新しいデータまたはより頻繁にアクセスされるデータあるいはその両方が、より高い性能の媒体に格納され、一方で、あまり重要でないデータが、より低い性能の媒体に格納されるのが好ましい。一部のアプローチでは、ユーザが、特定のILM方式で特定のストレージ・ポリシーを指定してもよい。
判定544に戻り、データの特定の部分がストレージ内の異なる層に転送されるべきであるという決定に応答して、フローチャートが下位の動作548に進む。そこでは、下位の動作548が、転送を実行することに関連付けられた、転送元および転送先の層の情報を準備することを含んでいる。例によれば、第1の層に格納されたデータの一部を第2の層に転送することは、データの一部が現在格納されているストレージ内の位置(例えば、データの一部がストライプ化されているすべての論理アドレスまたは物理アドレスあるいはその両方)、データの一部の合計サイズ、データの一部に関連付けられたメタデータ、データの一部が格納される第2の層内の位置(例えば、論理アドレスまたは物理アドレスあるいはその両方)などを識別する情報を準備することを含む。
さらに、下位の動作550は、データの特定の部分を転送元の層から転送先の層に転送する(例えば、移行する)ための1つまたは複数の命令を送信することを含む。1つまたは複数の命令は、転送先の層内の意図されるストレージ位置の論理アドレス、または本説明を読んだ後に当業者にとって明らかになるであろう、データ転送を実際に実行することに関連付けられた任意のその他の情報を含んでよい。
データのこの部分が、前に格納されていた層に転送されて戻されることも好ましいということにも、注意するべきである。このことは、第1の層から第2の層に移行されたデータの部分に特に当てはまる。やはり、第2の層の共有なしノードに含まれている専用ハードウェアは、性能の改善を可能にし、したがって、適切なデータのために確保されるのが好ましい。例によれば、実行中の機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を更新するための、第2の層の共有なしノードに移行されたデータの部分は、その後、第1の層に移行されて戻されるのが好ましく、それによって、専用ハードウェアを追加の処理に使用できるようにする。
やはり、これらのサブプロセスは、下位の動作542において識別されたデータの部分ごとに実行される。したがって、例えば識別されたデータの部分の数に応じて、図5Bに含まれているサブプロセスのうちのいずれか1つまたは複数が任意の回数繰り返されてよい。
前述したように、本明細書に含まれている実施形態の一部を使用して形成された提案またはデータ・モデルあるいはその両方が、新たに受信されたデータをストレージに格納するプロセスを管理するために使用されるのも好ましい。例えば、提案またはデータ・モデルあるいはその両方は、受信データの各部分が格納されるべきクラスタ化されたファイルシステム内の位置を決定するために、ユーザ、実行中のアプリケーション、別のファイルシステムなどから受信されたデータに適用されてよい。したがって、図5Cは、方法570のフローチャートが一実施形態に従って示されているということを示している。方法570は、さまざまな実施形態において、特に図1~4に示された環境のいずれかにおいて、本発明に従って実行されてよい。当然、当業者が本説明を読んだときに理解するであろうように、図5Cにおいて具体的に記載された動作よりも多いか、または少ない動作が方法570に含まれてよい。
方法570のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、さまざまな実施形態では、方法570は、コントローラ、プロセッサなど、または1つまたは複数のプロセッサを備えているその他のデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法570の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。プロセッサの例としては、中央処理装置(CPU)、ASIC、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスが挙げられるが、これらに限定されない。
図5Cに示されているように、方法570の動作572は、新しいデータを受信することを含んでいる。アプローチに応じて、データは、ストリームとして連続的に受信される、1つまたは複数のパケットで受信される、などであってよい。さらに、動作574は、提案またはデータ・モデルあるいはその両方を使用して、それらの提案またはデータ・モデルあるいはその両方に対応する新たに受信されたデータの部分を識別することを含む。特定のアプローチによれば、提案またはデータ・モデルあるいはその両方は、ストレージ内の特定の層に格納されることから恩恵を受けると予測される新たに受信されたデータの部分を識別するために使用されるのが好ましい。
前述したように、本実施形態におけるクラスタ化されたファイルシステムのストレージは、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含む。1つまたは複数の提案またはデータ・モデルあるいはその両方は、データ・ワークロードの特性にも基づく。したがって、次回の重いデータ転送のワークロードを考慮して、データの特定の部分が共有なしノードを含んでいる第2の層に格納されることから恩恵を受けると予測することができると同時に、次回のデータ処理負荷の高いワークロードを考慮して、データの他の部分が第1の層に格納されることから恩恵を受けると予測することができ、それによって、このワークロードを2つ以上の処理コンポーネントによって並列に実行することができる。したがって、例えばアプローチに応じて、下位の動作542を実行することに関して上で記載されたアプローチのうちのいずれか1つまたは複数が、動作572を実行するために実施されてよい。
さらに、動作574において識別された新しいデータの部分ごとに、特定の部分のデータがストレージ内の特定の層に実際に格納されるべきかどうかに関する実際の判定が行われる。判定576を参照する。一部のアプローチによれば、判定576を実行することは、ストレージ内の異なる層の特定の構成を決定することと、それらの構成を、新しいデータの識別された部分の各々と比較することとを実際に含んでよい。例えば、第2の層内の共有なしノードのいずれかが専用ハードウェアを実際に含んでいるかどうかに関する判定が行われてよい。さらに、専用ハードウェアを含んでいるとして決定されたノードに関して、例えばデータ転送速度能力の向上などの、特定のノードの専用ハードウェアがどの性能を達成できるかに関する決定が、さらに行われてよい。
例えば本明細書に記載されたアプローチのいずれかに従って、第1の層内の共有ノードに関して同様の決定が行われてもよい。例えば、共有ノードは、追加された専用ハードウェアを含まなくてよいが、異なるストレージ・コンポーネントにわたって共有ノードの各々が相互接続される方法は、特定の動作を並列に実行できるようにし、それによって、単一の共有なしノードが達成できる処理速度よりも速い処理速度を達成する。したがって、次回の重いデータ転送のワークロードを考慮して、データの特定の部分が共有なしノードを含んでいる第2の層に格納されることから恩恵を受けることができると同時に、次回のデータ処理負荷の高いワークロードを考慮して、データの他の部分が第1の層に格納されることから恩恵を受けると予測することができ、それによって、このワークロードを2つ以上の処理コンポーネントによって並列に実行することができる。
新しいデータの特定の部分が、ストレージ内の層のうちの特定の1つに格納されることから実際に恩恵を受けないということの決定に応答して、方法570が動作578に進む。そこでは、動作578が、デフォルトのILM方式を使用して、クラスタ化されたファイルシステム内の新しいデータの特定の部分の配置を管理することを含んでいる。本発明を制限するよう全く意図されていない例によれば、デフォルトのILM方式は、新しいデータの特定の部分を第2の層に格納する選択肢を伴って、新しいデータがデフォルトとして第1の層に格納されるのが好ましいということを指定してよい。これによって、第1の層を使用してデータの残りの部分を管理しながら、第2の層に含まれている専用ハードウェアをデータの適切な部分のために確保することができる。
しかし、判定576に戻り、新しいデータの特定の部分が、ストレージ内の層のうちの特定の1つに格納されることから恩恵を受けるということの決定に応答して、フローチャートが下位の動作580に進む。そこでは、下位の動作580が、新たに受信されたデータの特定の識別された部分を層のうちの特定の1つに格納するための1つまたは複数の命令を送信することを含んでいる。やはり、1つまたは複数の命令は、データの一部の意図されるストレージ位置の論理アドレス、または本説明を読んだ後に当業者にとって明らかになるであろう任意のその他の情報を含んでよい。
例によれば、データの特定の部分が、実行中の機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を更新するために使用できる1つまたは複数の特定の特性を有しているとして識別されてよい。それによって、1つまたは複数の命令が、データのこの識別された部分が第2の層に格納されることを引き起してよく、例えば、特定のアプローチに基づいて、第2の層に含まれている専用ハードウェアを使用してデータを処理できるようにする。別の例によれば、次回の重いデータ転送のワークロードを含むと予測された新しいデータの部分が、第2の層に格納されることから恩恵を受けるという決定が行われる。具体的には、第2の層内の専用ハードウェアが、予想される次回の重いデータ転送のワークロードを補完する性能のレベルの向上を可能にしてよい。それによって、新しいデータの部分が第2の層に格納されるのが好ましい。
しかし、第2の層に格納されたデータの部分が最終的に第1の層に転送されてよいということにも、注意するべきである。やはり、第2の層の共有なしノードに含まれている専用ハードウェアは、性能の改善を可能にし、したがって、適切なデータのために確保されるのが好ましい。例えば、実行中の機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を更新するために使用される、第2の層の共有なしノードでのデータの部分は、その後、第1の層に移行されて戻されるのが好ましく、それによって、専用ハードウェアを追加の処理に使用できるようにする。
やはり、これらのサブプロセスは、動作574において識別された新しいデータの部分ごとに実行される。したがって、例えば識別されたデータの部分の数、または受信された新しいデータの量、あるいはその両方に応じて、図5Cに含まれているプロセスのうちのいずれか1つまたは複数が任意の回数繰り返されてよい。
したがって、本明細書に含まれている実施形態のうちのさまざまな実施形態は、単一の(同じ)名前空間内でストライプ化するストレージ構成およびストライプ化しないストレージ構成の両方をサポートすることができるフレームワークを実現することができる。さらに、本明細書における実施形態の一部は、機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方が特定のファイルシステムの内部の機能を表す精度を大幅に改善することができる。次に、これらの改善された機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方は、データ・ワークロードの特性および提案または提案から得られたデータ・モデルあるいはその両方に基づいて、ファイルシステム内の異なる層(その一部は、専用ハードウェアを使用して有効化される)間でデータを適切に配置または移行するように、ILM方式を改良することができる。さらに、ストライピング方式を実施する層および非ストライピング方式を実施する層とやりとりするために使用されるiノード構造が、別々に維持される。それに応じて、各複製および信頼性が別々に構成されて、維持される。
本明細書に含まれている実施形態の一部は、データ・ワークロードの特性の分析に基づいて、提案またはデータ・モデルあるいはその両方を生成および提案することもできる。この分析は、データの種類、データの量、読み取りアクセス・パターンまたは書き込みアクセス・パターンあるいはその両方などを受け取るのが好ましい。それによって、これらの提案またはデータ・モデルあるいはその両方は、異なる層(その一部は、専用ハードウェアを使用して有効化される)間でデータを適切に移行することができる。移行とは別に、提案またはデータ・モデルあるいはその両方は、新たに作成されたファイル、新たに受信されたデータなどのための配置ルールを開発するのを支援することもできる。
このことは、従来の製品によって発生する欠点と比較すると、特に望ましい。例えば、従来のファイルシステムは、複数のディスクにわたってデータをストライプ化し、それによって、例えば機械学習アルゴリズムまたは深層学習アルゴリズムあるいはその両方を含めることによってデータを実際の処理に使用できるようになる前に、計算インフラストラクチャが、さまざまなディスクにわたって格納されたすべてのフラグメントを再呼び出しすることを引き起すことから生じる、待ち時間に関する課題に直面した。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(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)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、および前述の任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、コンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、LANまたはWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
このようなコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。このようなコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んだ製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能な装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに説明される機能/動作を実施するように、コンピュータによって実行されるプロセスを作出するべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
さらに、さまざまな実施形態に従うシステムは、プロセッサ、およびプロセッサに統合された論理またはプロセッサによって実行可能な論理あるいはその両方を含んでよく、この論理は、本明細書において列挙された処理ステップのうちの1つまたは複数を実行するように構成される。プロセッサは、処理ハードウェア、メモリ、I/Oインターフェイスなどの多くのコンポーネントを含んでいる、個別のプロセッサまたは処理回路などの、本明細書に記載されているような任意の構成であってよい。統合されるということは、つまり、プロセッサに論理が、特定用途向け集積回路(ASIC)、FPGAなどのハードウェア論理として組み込まれるということである。プロセッサによって実行可能であるということは、つまり、論理が、プロセッサによってアクセス可能なハードウェア論理、ソフトウェア論理(ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部など)など、またはハードウェア論理とソフトウェア論理のなんらかの組み合わせであり、プロセッサによって実行されたときになんらかの機能をプロセッサに実行させるように構成されているということである。ソフトウェア論理は、従来技術において知られた任意のメモリ・タイプの、ローカルまたはリモートあるいはその両方のメモリに格納されてよい。ASIC、FPGA、中央処理装置(CPU)、集積回路(IC:integrated circuit)、グラフィック処理装置(GPU)といった、ソフトウェア・プロセッサ・モジュールまたはハードウェア・プロセッサあるいはその両方などの、従来技術において知られた任意のプロセッサが使用されてよい。
上で提示された説明から複数の組み合わせを作成して、前述のシステムまたは方法あるいはその両方のさまざまな特徴が任意の方法で組み合わせられてよいということは、明らかである。
本発明の実施形態が、サービスをオンデマンドで提供するように顧客のために展開されるサービスの形態で提供されてよいということがさらに理解されるであろう。
上ではさまざまな実施形態が説明されたが、これらの実施形態は単に例として提示されており、これらに限定されないということが理解されるべきである。したがって、好ましい実施形態の広さおよび範囲は、前述された実施形態例のいずれによっても限定されるべきではなく、以下の特許請求の範囲およびそれらと同等のもののみに従って定義されるべきである。

Claims (8)

  1. コンピュータ・システムが実行する方法であって、
    ストレージ内のデータの配置に対応する1つまたは複数の提案を受信するステップであって、前記1つまたは複数の提案が、データ・ワークロードの特性に基づく、前記受信するステップと、
    前記1つまたは複数の提案を使用して、前記1つまたは複数の提案に対応する実際のストレージに格納された実際のデータの部分を識別するステップであって、前記実際のストレージが、2つ以上の共有ノードを含んでいる第1の層、および少なくとも1つの共有なしノードを含んでいる第2の層を含み、前記第2の層が前記少なくとも1つの共有なしノードのうちの2つ以上にわたってデータをストライプ化するよう構成されないという条件で、前記第1の層が、前記2つ以上の共有ノードにわたってデータをストライプ化するように構成される、前記使用して識別するステップと、
    前記第1の層に格納された前記実際のデータの前記識別された部分ごとに、前記1つまたは複数の提案を使用して、前記実際のデータの特定の前記識別された部分を前記第2の層に転送するかどうかを判定するステップと、
    前記実際のデータの前記識別された部分のうちの少なくとも1つを前記第2の層に転送するということの決定に応答して、前記実際のデータの前記識別された部分のうちの前記少なくとも1つを前記第1の層から前記第2の層に転送するための1つまたは複数の命令を送信するステップとを含む、方法。
  2. 前記第2の層内の前記少なくとも1つの共有なしノードの各々が専用ハードウェアを含む、請求項1に記載の方法。
  3. 前記専用ハードウェアが、グラフィックス・プロセッシング・ユニット、半導体ドライブ・キャッシュ、特定用途向け集積回路、および不揮発性メモリ・エクスプレスから成る群から選択される、請求項2に記載の方法。
  4. 前記第1および第2の層が同じ名前空間に含まれる、請求項1ないしのいずれかに記載の方法。
  5. 前記1つまたは複数の提案を使用して、前記提案に対応する新たに受信されたデータの部分を識別するステップと、
    前記新たに受信されたデータの前記識別された部分ごとに、前記1つまたは複数の提案を使用して、前記新たに受信されたデータの前記特定の識別された部分を前記第2の層に格納するかどうかを判定するステップと、
    前記新たに受信されたデータの前記特定の識別された部分を前記第2の層に格納するということの決定に応答して、前記新たに受信されたデータの前記特定の識別された部分を前記第2の層に格納するための1つまたは複数の命令を送信するステップと、
    前記新たに受信されたデータの前記特定の識別された部分を前記第2の層に格納しないということの決定に応答して、前記新たに受信されたデータの前記特定の識別された部分を前記第1の層に格納するための1つまたは複数の命令を送信するステップとを含む、請求項1ないしのいずれかに記載の方法。
  6. 前記データ・ワークロードの特性が、読み取りパターンまたは書き込みパターンあるいはその両方、対応するファイル・タイプ、およびファイルの対応する部分から成る群から選択された情報を使用して生成される、請求項1ないしのいずれかに記載の方法。
  7. 少なくとも1つのプロセッサと、
    請求項1ないしのいずれかに記載の方法の各ステップを前記少なくとも1つのプロセッサに実行させるためのコンピュータ・プログラムと、を備える、コンピュータ・システム。
  8. 請求項1ないしのいずれかに記載の方法の各ステップをコンピュータ・システムに実行させる、コンピュータ・プログラム。
JP2021530060A 2019-01-08 2019-12-16 ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上 Active JP7442523B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/242,955 2019-01-08
US16/242,955 US11656780B2 (en) 2019-01-08 2019-01-08 Increasing data performance by transferring data between storage tiers using workload characteristics
PCT/IB2019/060848 WO2020144514A1 (en) 2019-01-08 2019-12-16 Increasing data performance by transferring data between storage tiers using workload characteristics

Publications (2)

Publication Number Publication Date
JP2022515593A JP2022515593A (ja) 2022-02-21
JP7442523B2 true JP7442523B2 (ja) 2024-03-04

Family

ID=71403531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021530060A Active JP7442523B2 (ja) 2019-01-08 2019-12-16 ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上

Country Status (6)

Country Link
US (2) US11656780B2 (ja)
JP (1) JP7442523B2 (ja)
CN (1) CN113272781A (ja)
DE (1) DE112019005392T5 (ja)
GB (1) GB2593408B (ja)
WO (1) WO2020144514A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687443B2 (en) * 2013-05-15 2023-06-27 EMC IP Holding Company LLC Tiered persistent memory allocation
CN115202563A (zh) * 2021-04-14 2022-10-18 戴尔产品有限公司 基于预测数据访问频率趋势模式在集群存储系统的存储层级之间的数据移动
CN116737056A (zh) * 2022-03-04 2023-09-12 戴尔产品有限公司 基于存储对象的输入/输出模式在集群存储系统的存储层级之间进行数据移动
US20230418800A1 (en) * 2022-06-02 2023-12-28 Barcelona Supercomputing Center-Centro Nacional De Supercomputación Method for optimizing the management of a flow of data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011515727A (ja) 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ
JP2016085666A (ja) 2014-10-28 2016-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
JP2016118821A (ja) 2014-12-18 2016-06-30 富士通株式会社 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8330647B2 (en) 2006-06-08 2012-12-11 Vista Research, Inc. Sensor suite and signal processing for border surveillance
US8700674B2 (en) * 2009-07-14 2014-04-15 Hewlett-Packard Development Company, L.P. Database storage architecture
US9191437B2 (en) 2009-12-09 2015-11-17 International Business Machines Corporation Optimizing data storage among a plurality of data storage repositories
US8819488B1 (en) 2011-06-15 2014-08-26 Amazon Technologies, Inc. Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services
US8548970B2 (en) 2011-07-06 2013-10-01 Iac Search & Media, Inc. Systems, computer-readable media, and methods of operating a target computer system to answer a query
US9626377B1 (en) * 2013-06-07 2017-04-18 EMC IP Holding Company LLC Cluster file system with metadata server for controlling movement of data between storage tiers
US10203889B2 (en) 2016-04-01 2019-02-12 Salesforce.Com, Inc. Multi-tier file system with transparent holes
US10168915B2 (en) 2017-01-19 2019-01-01 International Business Machines Corporation Workload performance in a multi-tier storage environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011515727A (ja) 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ
JP2016085666A (ja) 2014-10-28 2016-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
JP2016118821A (ja) 2014-12-18 2016-06-30 富士通株式会社 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム

Also Published As

Publication number Publication date
CN113272781A (zh) 2021-08-17
WO2020144514A1 (en) 2020-07-16
US20230176763A1 (en) 2023-06-08
US20200218464A1 (en) 2020-07-09
JP2022515593A (ja) 2022-02-21
DE112019005392T5 (de) 2021-07-15
GB2593408A (en) 2021-09-22
GB2593408B (en) 2022-03-02
GB202110460D0 (en) 2021-09-01
US11656780B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
JP7442523B2 (ja) ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上
US10140066B2 (en) Smart partitioning of storage access paths in shared storage services
US8898224B2 (en) Migrating active I/O connections with migrating servers and clients
JP6327810B2 (ja) モビリティ動作リソース割り当てのための方法、システム、コンピュータ・プログラム
JP2021531557A (ja) データ・セットにとっておよびデータ・セットの移行にとって最適なストレージ環境の判定
US10684947B2 (en) Increasing high performance data storage utilization by reducing write operations
US10824355B2 (en) Hierarchical management of storage capacity and data volumes in a converged system
US9552167B2 (en) Raid array transformation in a pooled storage system
US11132210B2 (en) Dynamic parallelism adjustment
JP2018537752A (ja) ツリーベース・データ構造の同時一括処理のためのコンピュータ実装方法、コンピュータ・プログラム、ストレージ・システム
US10782922B2 (en) Storage device volume selection for improved space allocation
US11061931B2 (en) Scalable and balanced distribution of asynchronous operations in data replication systems
US9798488B2 (en) System and method for transferring traditional raid to distributed array
US10901645B1 (en) Converting small extent storage pools into large extent storage pools in place
US20180196700A1 (en) Management and utilization of storage capacities in a converged system
US11132138B2 (en) Converting large extent storage pools into small extent storage pools in place
US10521380B1 (en) Using storage controllers to respond to multipath input/output requests
US20180198861A1 (en) Management and utilization of data volumes in a converged system
US10936544B2 (en) Enabling consistency in push order for network caching
US10768844B2 (en) Internal striping inside a single device
JP2012146280A (ja) 記憶操作のためのキュー及び作業負荷による選択インタフェースの方法及び装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230718

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240220

R150 Certificate of patent or registration of utility model

Ref document number: 7442523

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150