JP2023553316A - ストレージシステム最適化を使用したアプリケーション性能の強化 - Google Patents

ストレージシステム最適化を使用したアプリケーション性能の強化 Download PDF

Info

Publication number
JP2023553316A
JP2023553316A JP2023531583A JP2023531583A JP2023553316A JP 2023553316 A JP2023553316 A JP 2023553316A JP 2023531583 A JP2023531583 A JP 2023531583A JP 2023531583 A JP2023531583 A JP 2023531583A JP 2023553316 A JP2023553316 A JP 2023553316A
Authority
JP
Japan
Prior art keywords
data
storage
computer
collecting
heat map
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.)
Pending
Application number
JP2023531583A
Other languages
English (en)
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 JP2023553316A publication Critical patent/JP2023553316A/ja
Pending legal-status Critical Current

Links

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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

ストレージシステム最適化の為の階層化マイグレーションの為の、方法、コンピュータシステム及びコンピュータプログラム製品が提供される。本発明の実施態様は、ストレージドライブとストレージティアとの間のワークロードのバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定することを含みうる。本発明の実施態様は、該データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立することを含みうる。本発明の実施態様は、該相互接続アプリケーションプログラムインタフェースとの接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換することを含みうる。本発明の実施態様は、該物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集することを含みうる。本発明の実施態様は、該ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算することを含みうる。【選択図】図3

Description

本発明は一般的に、コンピューティングの分野に、より詳細にはストレージシステムに、関する。
マルチティア化されたストレージアプローチは、主にアクセス基準、使用頻度、セキュリティ及びデータ回復要件に基づいて、様々な種類のストレージデバイス上にデータを記憶する為に使用されることができる。ストレージ階層化(Storage tiering)は、より良いシステム性能を得る為に、様々な種類のディスクをロケーション間で透過的に再配置する機能を備えうる。
本発明の実施態様は、ストレージシステム最適化の為の階層化マイグレーション(tiering migration)の為の、方法、コンピュータシステム及びコンピュータプログラム製品を開示する。本発明の実施態様は、ストレージドライブとストレージティア(storage tiers)との間のワークロード(workload)のバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定することを含みうる。本発明の実施態様は、該データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立することを含みうる。本発明の実施態様は、該相互接続アプリケーションプログラムインタフェースとの接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換することを含みうる。本発明の実施態様は、該物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集することを含みうる。本発明の実施態様は、該ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算することを含みうる。
本発明の、これらの目的及び他の目的、特徴及び利点は、その例示的な実施態様の下記の発明の詳細な説明から明らかになるであろう。そして、該詳細な説明は、添付の図面に関連して読まれるべきである。図面の様々な特徴は、図面が発明の詳細な説明と併せて本発明を理解することを当業者に容易にすることを明確にする為のものである故に、縮尺どおりでない。図面は、下記に述べられる通りである。
図1は、少なくとも1つの実施態様に従うネットワーク化されたコンピュータ環境を図示する。 図2は、少なくとも1つの実施態様に従うストレージシステム最適化の為のシステムアーキテクチャのブロック図である。 図3は、少なくとも1つの実施態様に従う、ストレージシステム最適化を用いた階層化マイグレーションの間にアプリケーション性能を強化する為のプロセスを示す動作フローチャート図である。 図4は、少なくとも1つの実施態様に従う、ストレージシステム最適化を用いて内部マップ変更イベントの間にアプリケーション性能を強化する為のプロセスを示す動作フローチャート図である。 図5は、少なくとも1つの実施態様に従う、図1に図示されたコンピュータ及びサーバの内部コンポーネント及び外部コンポーネントのブロック図である。 図6は、本開示の実施態様に従う、図1に図示されたコンピュータシステムを備えている例示的なクラウドコンピューティング環境のブロック図である。 図7は、本開示の実施態様に従う、図6の例示的なクラウドコンピューティング環境の機能レイヤのブロック図である。
特許請求の範囲に記載されている構造及び方法の詳細な実施態様が本明細書において開示されている。しかしながら、開示された実施態様が、様々な形態で具現化されうる特許請求の範囲に記載された構造及び方法の例に過ぎないことが、理解されることができる。しかしながら、本発明は、様々な形態で具現化されてもよく、本明細書において記載された例示的な実施態様に制限されると解釈されるべきでない。寧ろ、これらの例示的な実施態様は、この開示が徹底的且つ完全なものとなり、当業者にこの発明の範囲を十分に伝えることができるように提供される。発明の詳細な説明において、周知の特徴及び技術の詳細は、提示された実施態様を不必要に分かりにくくするのを避ける為に、省略されうる。
前述されているように、主にアクセス基準、使用頻度、セキュリティ及びデータ回復要件に基づいて、様々な種類のストレージデバイス上にデータを記憶する為に、マルチティア化されたストレージアプローチ(multi-tiered storage approach)が使用されることができる。ストレージ階層化(Storage tiering)は、より良いシステム性能を得る為に、様々な種類のディスクをロケーション間で透過的に再配置する機能を含みうる。ストレージ階層化(Storage tiering)は、当初、ハードディスクドライブ(HDD)向けに、及びニアラインストレージディスク(nearline storage disks)、例えば、テープ及びハードディスクドライブ(HDD)ディスクシステム、向けに設計された。該ハードディスクドライブ(HDD)及びニアラインストレージディスクは、フラッシュドライブとは異なる技術を使用し、並びにハードディスクドライブ(HDD)及びニアラインストレージディスク向けの既存の階層化メカニズム(tiering mechanism)は、リバランス及びティア間マイグレーション(inter tier migration)の為にフラッシュドライブで動作するように調整された。既存の階層化メカニズムの大きな制限は、フラッシュドライブの為のヒート測定(heat measurements)とハードディスクの為のヒート測定が同じ様式で行われていることである。ハードディスクドライブ(HDD)及びニアラインストレージディスクのヒート測定は、フラッシュドライブの場合と同じようには動作しない。それ故に、なかんずく、ヒートマップメンテナンス(heat map maintenance)の為の中央処理装置(CPU)の消費を低減する為に、及びストレージシステムにおけるフラッシュ入出力(IO)最適化を使用してアプリケーション性能を改善する為にシステムリソース利用に対する改善を生み出すことが有利でありうる。
以下に記載された例示的な実施態様は、ストレージ最適化の為の、システム、方法及びプログラム製品を提供する。このように、本発明の実施態様は、ストレージシステムにおけるフラッシュ入出力(IO)操作を最適化してアプリケーション性能を向上させることによって、ストレージ最適化の技術分野を改善する為の能力を有する。より具体的には、ストレージシステム最適化の為の更新されたシステムアーキテクチャを使用して、階層化マイグレーションの間及び内部マップ変更イベントの間に、強化されたアプリケーション性能を得られることができる。該階層化マイグレーションを処理する為に、多層化アーキテクチャとエクステントバランシング機能(extent balancing function)が作成される。提供されたシステムアーキテクチャ上での該階層化マイグレーションは、多くの利点を提供する。
1つの利点は、ストレージ仮想化システムでのヒートマップメンテナンスの為に中央処理装置(CPU)の消費量が低減されるようにシステムリソース利用率に対する改善を含む。該ストレージ仮想化システムでのヒートマップメンテナンスは、他の入出力(IO)サービス及び目的の為に使用され得、従って、性能上の利点がシステムレベルで生じる。加えて、ストレージ階層化環境(tiering environment)においてフラッシュ入出力(IO)最適化を使用することによって、フラッシュティア上に存在するエクステントの為のヒートマップ更新(heat map updates)をスキップし、そして、階層化マイグレーション決定の前に該フラッシュ内のフラッシュ変換レイヤ(FTL:flash translation layer)からヒートマップ情報を直接的にフェッチすることによって、アプリケーション性能が強化され且つ最適化される。
別の利点は、ストレージ階層化(Storage tiering)に統合されるフラッシュドライブアクセス統計に関するフラッシュドライブからの情報の収集を含む。収集された該情報は、階層化デーモン(tiering demon)(すなわち、コンピューティングオペレーティングシステムにおいてバックグラウンドプロセスとして実行される階層化(tiering))におけるコンピューティング要件を低減することに関する情報、及びフラッシュエクステントについてのインラインヒートマップ更新の為に消費されるメモリリソースを解放することができ、それにより、メモリの向上された最適化が結果として生じる。
他の利点の1つは、コストが高く且つ性能が重要な要素であるところの空間である高速ティアにおける該エクステントを管理する為の改善されたアプローチを含む。エクステントは、ファイルシステム内の予約された記憶領域を含みうる。別の利点は、既存のストレージ製品への容易な実装及び統合を含み、並びに特別なハードウェア又はソフトウェア備品が不要であることである。別の利点は、利用可能なリソースが、該エクステント又は予約された記憶領域を調整することによって又は移動することによって利用可能になった後に、アプリケーション性能が所望の性能期待値を満たすことを含む。多くの利点が、コンピューティングサービス及びクラウドベースのサービスの為に、重要なブロックレベル及びファイルシステムのストレージソリューションを提供する。
1つの実施態様に従うと、データアクセス、データの使用頻度、及びデータセキュリティ並びにデータ回復要件に基づいて、複数の種類のストレージデバイス上にデータを記憶する為に、多層ストレージアーキテクチャ(multi-tier storage architecture)が作成される。1つの例として、応答時間に敏感であるアプリケーションによって頻繁にアクセスされるデータは、ソリッドステートドライブ(SSD:solid state drives)上に記憶されうる。アクセス頻度が低い又は稀であるデータは、大容量の7.2K回転/分(RPM:revolutions per minute)ドライブに保存されうる。アクセス頻度が低いデータほど、応答時間が長くなりうるが、アクセス頻度が低い故に、応答時間の長さは許容されうる。アクセス頻度の高いデータをソリッドステートドライブ(SSD)に保存する場合の1ギガバイトあたりのコストは、アクセス頻度の低いその他のデータを7.2K RPMドライブに保存する場合のコストよりも大幅に高くなる。
該多層ストレージアーキテクチャは、例えば、アクセシビリティ、頻度及び回復要件に基づいて、データを記憶するロケーションを識別することができる。多層ストレージ最適化プログラム(multi-tier storage optimization program)は、より高いコスト及びより高い性能のストレージティアから利益を得る可能性のあるデータを識別してもよく、及び時間の経過とともに、一部のデータの為に最適なティアが変更されてもよい。データを識別すること及び適切なティアへデータを移動することは、データのアクセスと該データがアクセスされる頻度とに基づいて時間の経過とともに調整される継続的なプロセスでありうる。
アクセスヒート温度(Access heat temperatures)は、複数の種類のバックエンドディスクを仮想化する為に、及び複数のティア間でエクステントを自律的に移動する為に使用されうる。フラッシュストレージは、ホットエクステントの実行を処理する為に、より高いティア、例えば、上位3つのティア又は上位3つの種類のティアに位置されうる。ホットエクステントは、ホストアプリケーションによって高度にアクセス可能であるデータを含みうる。フラッシュドライブは、ハードディスクドライブ(HDD)及びニアラインストレージディスクよりも高速に入出力(IO)操作に対応することができうる。それ故に、フラッシュドライブは、階層化アーキテクチャの最上位レイヤで配置されうる。フラッシュドライブはまた、より高価であり得、従って、高い性能特性を持つ限られたスペースを含みうる。データのストレージを階層化することにより、入出力(IO)操作ごとに更新されうるアクセスヒートカウントに基づいて、該エクステントを移動させうる。
加えて、該エクステントの熱さ(hotness)は、階層化システム(tiering system)における該エクステントの各々についてカウンタを保持する入出力(IO)監視デーモンによって収集されうる。ホットエクステント(hot extents)又はコールドエクステント(cold extents)は、バックエンドの入出力(IO)アクティビティに関連するメトリックでありうる。例えば、ホットエクステント(すなわち、高活性エクステント(high activity extent))は、より高いティアにマイグレーションされ得、及びコールドエクステント(すなわち、低活性エクステント(low activity extent))は、入出力(IO)アクティビティに基づいてデモーションされてもよく又はより低いティアにマイグレーションダウンされてもよい。該エクステントを監視することは、エクステントバランシングの為に使用されうる。該ホットエクステント及びコールドエクステントを監視することは、ヒートマップデータに基づくヒートマップを用いて行われてもよい。ヒートマップは、各エクステントについてのワークロードアクティビティに基づくメトリックであってもよい。該エクステントのデモーション(demotion)及び該フラッシュストレージにおいて該エクステントを保持することは、該エクステントの該熱さに依存しうる。該エクステントのデモーションは、該エクステントをより高速なティアからより低速なティアへ移動することを含みうる。該デモーションは典型的には、より速いティアにおけるデータが頻繁にアクセスされない場合、例えば、最後に定義されたサイクル通りにアクセスされない場合、に生じ、従って、より遅いティアに移動される。該エクステントについてのアクセスカウンタに対する更新は、何らかの読み取り又は書き込みの入出力(IO)要求が受信されたときに行われうる。
ストレージコントローラにおける階層化モデル(tiering model)の1つの例は、性能を考慮したギガバイト当たりのコストに基づくストレージの能力の階層化(hierarchy)を含みうる。例えば、低コスト且つ低性能のドライブは、ニアラインドライブを包含しうる。該ニアラインドライブよりもわずかに高コスト且つ高性能のドライブは、高性能のエンタープライズドライブを包含しうる。該エンタープライズドライブよりも高コスト且つ高性能のドライブは、大容量のフラッシュドライブを包含しうる。該大容量のフラッシュドライブよりも高コスト且つ高性能のドライブは、高性能フラッシュ又はソリッドステートドライブ(SSD)を包含しうる。
1つの実施態様に従うと、エクステントバランシング機能が、エクステントマイグレーションを処理する為に作成される。該エクステントバランシング機能は、同じストレージティア内又は異なる種類のストレージティア内のエクステントマイグレーションを処理してもよく、及び階層化機能(tiering feature)とのバンドルソリューションとして提供されてもよい。例えば、該エクステントマイグレーションが同じティア論理ユニット(LUN)間である場合に、ティア内マイグレーションがバランシング機能の為に発生しうる。また、あるディスクの利用率が高く、同じティア上にある他のディスクの利用率が低い場合、利用率の低いディスクが該マイグレーション後に性能制限に違反しない場合に、幾つかのホットエクステントが利用率の低いディスクに移動されうる。
異なる種類のストレージティアの間で又は同じ種類のストレージティアの間で動作するエクステントバランシング機能は、ホットエクステントが複数のディスクに分散又は再分配される故に、性能を向上しうる。該エクステントバランシング機能は、過負荷シナリオを支援し得、該エクステントマイグレーションプロセスは、大量の性能を改善し、従って、性能利得を提供する。
アプライアンススタック(appliance stack)における階層化(tiering)の例は、ネットワークサーバ、スイッチ、フラッシュシステム及び様々なティアの冗長アレイ(RAID:redundant array of independent disk)ストレージを包含しうる。該アプライアンススタックは、分析処理を最適化する為に、単一ラック内で直接接続又はスイッチファブリックを介して接続されるところのストレージデバイスに接続されるサーバを有しうる。例えば、ティア1は、RAID 10を含み得、書き込み集中型のエンタープライズのソリューションとしてのソフトウェア(SaaS:Software as a Solution)ソリッドステートドライブ(SSD)(400GB SLC)であり、及び最も高価でありうる。ティア2は、RAID 5を含み得、読み取り集中型のエンタープライズSAS SSD(1.6TB MLC)でありうる。ティア3は、RAID 6のHDD(15K、10K、7.2K)を含みうる。データアナリティクスは、データウェアハウス及びアナリティクス操作の為に配信され、伝送され、及び使用されうる。アナリティクスとデータとの組み合わせは、アプライアンススタックにあり、及び顧客の使用の為に提供されうる。
ストレージ最適化プログラムを使用し且つその恩恵を受けうる例示的なシステムは、IBM PureData(登録商標)(IBM PureData及びIBM PureDataに基づく全ての商標及びロゴは、International Business Machines Corporation及び/又はその関連会社の商標又は登録商標である)、Netezza(登録商標)IBM(登録商標)(Netezza及びNetezzaに基づく全ての商標及びロゴは、International Business Machines Corporation及び/又はその関連会社の商標又は登録商標である)、並びに他の多くのストレージユニットを包含しうる。IBM PureData(登録商標)は、Netezza(登録商標)テクノロジーを使用し、データウェアハウスとデータに対するアナリティクス操作の為のメカニズムを提供するアナリティクスの為のシステムである。該システムにより、アプリケーションデータのストレージ管理、及びドライブ間で最適な性能を得る為のクラスターレベルでのストレージ階層化の内部利用が可能である。
フラッシュドライブにおけるフラッシュスペースとして占有されるエクステントは、アクセスヒートカウントに基づいてフラッシュドライブ間でデータを移動する為にリバランシングを必要としうる。フラッシュドライブにおけるターゲットディスクと過負荷の識別は、アレイが仮想化レベルでアクセス統計を保持し、且つ収集されたデータに基づくエクステント移動が実行されうるように、仮想化レベルで保持されるアクセスカウンタに依存しうる。
既存の階層化ソリューション(tiering solutions)、ヒート測定及び、フラッシュドライブの為のマイグレーションにおいてエクステントバランシングが制限されている故に、現在の典型的なシナリオがここで説明されうる。フラッシュドライブ内のソリッドステートドライブ(SSD)フラッシュコントローラ又はストレージ仮想化コントローラは、ソリッドステートドライブ(SSD)操作を管理し且つフラッシュドライブ論理ブロックアドレッシング(LBA:logical block addressing)上で実行される入出力(IO)操作を監視するフラッシュ変換レイヤ(FTL:flash translation layer)を備えている。フラッシュ変換レイヤ(FTL)モジュールは、入出力(IO)操作の為にフェッチしてもよく、及び該ドライブの入出力(IO)カウンタと論理ブロックアドレッシング(LBA)ロケーションブロックのテーブルを維持しうる。フラッシュ変換レイヤ(FTL)モジュールによって得られたデータのテーブルは、1日当たりのドライブ書き込み数(DWPD:drive writes per day)、ウェアレベリング予測(wear leveling predictions)、及びアプリケーションデータを計算する為に使用されうる。
ストレージ仮想化コントローラはまた、エクステント(例えば、論理ブロックアドレッシング(LBA)ユニットにマッピングされたエクステント)に基づく入出力(IO)カウンタを保持してもよく、及び複数のティアをまたぐ階層化移動(tiering movements)に使用されてもよい。入出力(IO)カウンタ更新は、ストレージシステムに伝送される各入出力(IO)操作で実行されてもよい。エクステントがより速い性能のティアに存在する場合、該ストレージシステムは、関連付けられたエクステントへのより多くの入出力(IO)要求を期待してもよい。各入出力(IO)操作は、フラッシュドライブの2つのロケーションでカウントされ得、該システム内でアクセス性の高いデータを提供する場合に、二重カウントがシステム全体におけるアーキテクチャに非効率を生じさせうる。2ヶ所での二重カウントは、ストレージ階層化レベルでの1つのカウントとフラッシュ変換レイヤ(FTL)レベルでの別のカウントとを備えうる。入出力(IO)カウンタは、物理的位置のドライブレベルマッピングに基づいて更新され、並びに該フラッシュドライブ内のフラッシュ変換レイヤ(FTL)でのアクセスカウンタでウェアレベリング(wear leveling)及び他のフラッシュ機能を監視する為に更新される。
フラッシュドライブ上のアクセスカウンタから保持データを取得し、そして、そのデータを使用してフラッシュ制御ユニットからストレージ仮想化システムへ情報を抽出することには、多くの複雑さが伴う。1つの複雑性は、マッピングがドライブレベルで変更され、ドライブレベルがストレージ仮想化エンジンの上位レイヤを知らない故に、該物理論理ブロックアドレッシング(LBA)を仮想化された複数の論理ブロックアドレス(LBAs)にマッピングすることを含む。マッピングにおける変更の間、該カウンタは消滅し、そして、新しい物理的位置について再スタートされる。別の複雑性は、ストレージシステムレベルでの入出力(IO)統計がエクステントに基づいてカウントされ、及びファームウェアが論理物理論理ブロックアドレッシング(logical physical logical block addressing)(LBA)レベルで動作する故に、ドライブファームウェアに対してエクステント可視性がない場合がある。本明細書において提示された1つの実施態様は、入出力(IO)性能(すなわち、より高速な性能のフラッシュティア)を高め、入出力レイテンシを低減し、そして、操作効率を向上させる。
ここで図1を参照すると、1つの実施態様に従う例示的なネットワーク化されたコンピュータ環境100が図示されている。ネットワーク化されたコンピュータ環境100はコンピュータ102を備えていてもよく、該コンピュータ102は、ソフトウェアプログラム108及びストレージ最適化プログラム110aを実行することが可能であるプロセッサ104及びデータストレージデバイス106を備えている。ネットワーク化されたコンピュータ環境100は、データベース114及び通信ネットワーク116と相互作用しうるストレージ最適化プログラム110bを実行することが可能であるサーバ112を備えていてもよい。コンピュータ102はまたクライアントコンピュータとして知られていることがあり、及びサーバ112はまたサーバコンピュータとして知られていることがある。ネットワーク化されたコンピュータ環境100は、複数のコンピュータ102及びサーバ112を備えていてもよく、そのうちの1つのみが示されている。通信ネットワーク116は、様々な種類の通信ネットワーク、例えば、ワイドエリアネットワーク(WAN:wide area network)、ローカルエリアネットワーク(LAN:local area network)、電気通信ネットワーク、無線ネットワーク、公衆交換網若しくは衛星ネットワーク又はそれらの組み合わせ、を包含しうる。図1は、1つの実装の例示に過ぎず、異なる実施態様が実装されうる環境に関していかなる制限も意味しないことが理解されるべきである。図示された環境に対する多くの修正が、設計及び実装要件に基づいてなされうる。
コンピュータ102は、通信ネットワーク116を介してサーバ112と通信しうる。通信ネットワーク116は、接続、例えば、有線通信リンク、無線通信リンク、又は光ファイバケーブル、を備えていてもよい。図5を参照して説明されるように、サーバ112は夫々、内部コンポーネント902a及び外部コンポーネント904aを備えていてもよく、及びコンピュータ102は夫々、内部コンポーネント902b及び外部コンポーネント904bを備えていてもよい。サーバ112はまた、クラウドコンピューティングサービスモデル、例えば、サービスとしてのソフトウェア(SaaS:Software as a Service)、サービスとしてのアナリティクス(AaaS:Analytics as a Service)、サービスとしてのブロックチェイン(BaaS:Blockchain as a Service)、サービスとしてのプラットフォーム(PaaS:Platform as a Service)、又はサービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service)、で動作しうる。サーバ112はまた、クラウドコンピューティングデプロイメントモデル、例えば、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウド、に配置されてもよい。コンピュータ102は例えば、モバイルデバイス、電話機、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムを実行し、ネットワークにアクセスし、及びデータベース114にアクセスすることができる任意の種類のコンピューティングデバイスでありうる。本実施態様の様々な実装に従うと、ストレージ最適化プログラム110a及び110bは、様々なストレージデバイス、例えばこれらに限定されるわけではないが、コンピュータ/モバイルデバイス102、サーバ112、又はクラウドストレージサービス、内に埋め込まれうるデータベース114と対話しうる。
本実施態様に従うと、コンピュータ102又はサーバ112(例えば、サーバコンピュータ)を操作するユーザは、ストレージ最適化プログラム110a及び110b(夫々)を使用して、ストレージシステム最適化を使用してアプリケーション性能を向上させうる。該ストレージ最適化方法は、図2~図4に関して以下でより詳細に説明されている。
ここで図2を参照すると、少なくとも1つの実施態様に従うストレージ最適化プログラム110a及び110bによって使用されるストレージシステム最適化の為のシステムアーキテクチャ200のブロック図の例が図示されている。システムストレージ最適化の為のシステムアーキテクチャ200は、既存のストレージティア機能(storage tier features)と連携してもよく、ストレージプール内の利用可能なティアについて仮想化マップから情報を収集してもよく、該システムにおけるフラッシュドライブについて、最適化された入出力(IO)統計情報収集を可能にしうる。
ストレージ最適化プログラム110a及び110bは、システムストレージ最適化の為のシステムアーキテクチャ200と通信しうる。ストレージシステム最適化の為のシステムアーキテクチャ200内において、ホスト202は、サービスのネットワークに接続されたコンピュータ又はサーバを備えていてもよく、ホスト202は、仮想化システム204に情報を送信してもよい。該仮想化システムは、ホスト202からデータを受信又は取得してもよく、及びヒートマップ更新206モジュール又はコンポーネント、ヒートマップモニタ208、ティアデータリロケータ210モジュール又はコンポーネント、エクステント仮想化マップ212、及びコンポーネントの為の相互接続アプリケーションプログラムインタフェース(API)214モジュールを備えていてもよい。
ヒートマップ更新206モジュールは、ストレージプール内の各エクステントの為の入出力(IO)カウンタを処理し、且つ維持しうる。ヒートマップ更新206はまた、任意の入出力(IO)が該システムに到達するか又は該システムに送信される場合に、アクセスカウンタを維持しうる。ヒートマップモニタ208は、性能向上の為の負荷分散(load balancing)及び追加の階層化マイグレーション処理(tiering migration processes)を行う目的の為に、エクステント上のモニタワークロードを処理しうる。ティアデータリロケータ210モジュールは、どのエクステントがどのティアに位置しているかを追跡し、及びワークロードに基づいて同じティア上でエクステントを利用可能にする為にワークロードを追跡しうる。ティアデータリロケータ210モジュールは、プロモーション(promotion)若しくはデモーションのケースを選択する為に、又はどのエクステントがプロモーション(promotion)又はデモーションされうるかを選択する為に使用されうる。
エクステント仮想化マップ212は、データが物理的に配置されるエクステント及びターゲットドライブを備えうる。エクステント仮想化マップ212は、該ストレージシステムにおける該データのローカルマッピング又は物理的マッピングに関連する情報を取得する為に使用されうる。相互接続アプリケーションプログラムインタフェース(API)214モジュールは、内部パラメータ設定が外部から制御されうるように、外部エンティティが認証を使用して内部操作を実行することを可能にしうる。
フラッシュドライブ216は、フラッシュ変換レイヤ(FTL)218、アクセスカウンタ更新220モジュール、及びデータブロック222を備えうる。フラッシュソリッドステートドライブ(SSD)ディスクコントローラ内のフラッシュ変換レイヤ(FTL)218は、階層化マイグレーション決定(tiering migration decision)の前にフラッシュ変換レイヤ(FTL)218から論理ブロックアドレッシング(LBA)(例えば、データブロック222)のアクセスマップをフェッチしうる。ハードディスクドライブ(HDD)224は、ハードディスクコントローラ226、トラック及びセクタアドレス228を備えうる。トラック及びセクタアドレス228は、データが保存されるハードディスクドライブ(HDD)内のハードウェアロケーションアドレスでありうる。
既存の階層化機能(tiering feature)におけるデータコレクションデーモン(data collection demon)は、フラッシュドライブ216に対応する複数の論理ブロックアドレス(LBAs)(例えば、データブロック222)の為に、フラッシュ変換レイヤ(FTL)218から直接的に情報を取得するように調整されうる。例えば、階層化機能(tiering feature)における機能サポートマップは、下記の表1に表されうる。
複数のフラッシュ論理ブロックアドレス(LBAs)がフラッシュ変換レイヤ(FTL)218で一旦収集されると、該情報は、ストレージレベルで維持される仮想化マップをトラバースすることによって、エクステント仮想化マップ212モジュールでエクステントマップに変換されうる。例えば、1つの論理ブロックアドレス(LBA)からエクステントマップへの変換は、仮想化層(例えば、仮想化システム204)について下記の表2において示されうる。
エクステントヒートマップの例は、ストレージ階層化(storage tiering)で下記の表3において示されうる。
収集される入出力統計は、階層化(tiering)に寄与する夫々のフラッシュエクステントについて更新されうる。該複数の論理ブロックアドレス(LBAs)の変更は、内部移動によってデータが失われる前に該データを収集する為に、上位層ストレージへのメッセージベースの通信を使用して、上位層又は上位レベルのストレージシステム(例えば、仮想化システム204)に事前対応的に信号を送ることによって、フラッシュ変換レイヤ(FTL)218レベルで管理されうる。アプリケーションプログラムインタフェース(API)214モジュールは、アクセスカウンタマップを更新するバックグラウンドプロセスとして実行されるガベージコレクションの方法とは対照的に、ストレージシステム(例えば、仮想化システム204)とドライブフラッシュ変換レイヤ(FTL)218との間で通信しうる。
ストレージ最適化プログラム110a及び110bによって作成される通信プロトコルは、階層化データコレクションデーモン(tiering data collection demon)へのデータダンピング信号(data dumping signal)を備えていてもよい。該データダンピング信号は、情報を交換する為のエンティティ間の特別な通信メッセージを備えうる。該階層化データコレクションデーモンに応答して、データ構造(例えば、データブロック222)が割り当てられ、そして保存され、及びエクステントレベルヒートマップ(extent level heat map)がソリッドステートドライブ(例えば、フラッシュドライブ216)のエクステントについて更新されうる。ストレージ最適化プログラム110a及び110bは、ストレージ階層化(storage tiering)に対するフラッシュの内部操作(例えば、ガベージコレクション)の識別を維持することによって、夫々の論理ブロックアドレス(LBA)ロケーションについて正しいアクセスカウンタを保持する。アクセスカウンタは階層化レベル(tiering level)で維持され得、及び物理アクセスカウンタはドライブレベルで維持されうる(例えば、論理ブロックアドレス(LBA)ロケーションについてのアクセスカウンタ)。1つの例として、階層化マイグレーションが行われるべきかどうかを決定する為に、又は該階層化マイグレーションをトリガーする為に、アクセスカウンタが使用される。物理アクセスカウンタは、ドライブレベルのグルーミング、例えば、ガベージコレクション及びソリッドステートドライブ(SSD)の内部ページング、の為に使用されうる。
幾つかの最新のフラッシュドライブは、アプリケーションプログラムインタフェース(API)で利用され、そして活用されることができる内部入出力(IO)監視機能を提供しうる。ストレージ最適化プログラム110a及び110bにおけるストレージ階層化データコレクターデーモン(storage tiering data collector demon)は、プール内のエクステントについて、サポートされるフラッシュのロケーションと他の非フラッシュスレージ(non-flash storage)のロケーションとを識別しうる。この識別機能である該ストレージ階層化データコレクターデーモンは、ストレージ最適化プログラム110a及び110bがフラッシュストレージのロケーションと非フラッシュストレージのロケーションとを区別することができる故に、フラッシュに位置するエクステントのみについて起動しうる。
該ストレージ階層化データコレクターデーモンとフラッシュ変換レイヤ(FTL)218との間の通信伝送は、インバウンドプロトコル及びアウトオブバウンドプロトコルを使用して実行されうる。インバウンド実装は、プロトコル、例えば、スモールコンピュータシステムインタフェース(SCSI:small computer system interface)コマンド記述子ブロック(CDB:command descriptor block)又は不揮発性メモリエクスプレス(NVMe商標:non-volatile memory express)(NVMe及び全てのNVMeベースの商標及びロゴは、NVM Express,Inc.及び/又はその関連会社の商標又は登録商標である)のデータ記述子、を使用しうる。アウトオブバウンドプロトコルは、要素間、例えばイニシエータとターゲットデバイスとの間、の通信を伝送する為に、エンターナルホスト(enteral host)又はコンピューティングエンティティを使用しうる。
外部ストレージ(例えば、フラッシュドライブ216又はハードディスクドライブ(HDD)224)がストレージ仮想化エンジン(例えば、仮想化システム204)によって仮想化されるときに、ストレージ最適化プログラム110a及び110bはドライブ(例えば、フラッシュドライブ216)のフラッシュ変換レイヤ(FTL)218の情報を識別、使用及びフロントエンドストレージクラスタ(例えば、ストレージシステム又は仮想化システム204)に伝達しうる。得られた情報は、システム全体(例えば、仮想化システム204)のヒートカウント測定を最適化する為に、階層化機能(tiering feature)(例えば、ティアデータリロケータ210モジュール)によって消費されうる。この工程は、中央処理装置(CPU:central processing unit)の消費が低減されるような入出力(IO)処理における不要な工程を除去しうる。加えて、入出力(IO)操作の大部分は、より高速な性能のティアから提供される故に、入出力(IO)性能の効率に対する有意な改善は、より高速なティアの為に得られる。例えば、データアナリティクスアプリケーションにおいて、読み出しワークロードの量は、ストレージシステムにおける書き込みワークロードの方が計算集約的であり、従って、フラッシュ変換レイヤ(FTL)218における論理ブロックアドレッシング(LBA)マッピング変更故に必要とされる中間ヒート更新の変更が少なくてもよい(すなわち、より性能が向上する)。
例えば、ホスト202は、ストレージシステム(例えば、仮想化システム204)からデータ、例えば、1,10,000、を読み出している。ホスト202によってアクセスされる総読み取りデータは、1,10,000の入出力(IO)操作であり、及び過去24時間における2つの階層化サイクル(tiering cycle)間のフラッシュティアで、よりアクセスしやすいブロックが1以上のフラッシュドライブ(例えば、フラッシュドライブ216)上に配置されているイージーティア(easy tier)で実行される。入出力(IO)がストレージシステム(例えば、仮想化システム204)に一旦到達すると、ヒートマップ更新206はエクステントについて更新される。従って、階層化(tiering)におけるヒートマップマネージャ(例えば、ヒートマップモニタ208)で、1,00,000個のヒートマップ更新が行われる。その結果、1,00,000の入出力(IO)カウンタ更新が、1日当たりのドライブ書き込み数(DWPD:drive writes per day)を計算する為に使用され、読み取り妨害監視(disturbance monitoring)に使用され、そして、ドライブの他のヘルスチェックアップ(health checkups)の為に使用されるフラッシュ変換レイヤ(FTL)218で行われる。
同じ例を続けると、合計で2,00,000+10,000=2,10,000の操作がアクセス履歴管理でカウントされ、これは1つの入出力(IO)当たり約2+操作である。この既存の制限を解決する為に、非フラッシュの位置の10,000個の入出力(IO)操作についてアクセスカウンタ更新220及びヒートマップ更新206モジュールは、ストレージ階層化レベル(storage tiering level)(例えば、ヒートマップ更新206)で実行されうる。
全てのフラッシュ入出力(IO)操作の場合に、階層化監視(tiering monitor)の為のヒートマップ更新モジュール206がスキップされる。階層化決定(tiering decision)を行う前に、情報が、ドライブフラッシュ変換レイヤ(FTL)218に問い合わせることによって収集されうる。従って、ヒート統計を維持する為には、1,00,000+10,000=1,10,000回の操作が必要である。該ヒートマップを保持又は維持する為に必要とされる明確な操作数によって、リソースの最適化が可能になる。
ここで図3を参照すると、少なくとも1つの実施態様に従う、ストレージ最適化プログラム110a及び110bによって使用される階層化マイグレーションプロセス300の間の例示的な強化アプリケーション性能を示す動作フローチャート図が図示されている。ストレージ最適化プログラム110a及び110bは、システムストレージ最適化の為のシステムアーキテクチャ200を使用することによって、階層化マイグレーションの間にストレージシステムにおけるフラッシュ入出力(IO)操作を最適化する為に利用されうる。この更新されたシステムアーキテクチャは多階層化されたアーキテクチャ(multi-tiered architecture)であり、該多階層化されたアーキテクチャは、エクステント機能のバランスをとる為に、及びストレージドライブとストレージティアとの間のワークロードにおけるバランスを達成するように階層化マイグレーションを処理する為に利用される。
工程302は、アクセスカウンタに基づいてデータを移動することを決定することを含む。ティアデータリロケータ210モジュールが、該アクセスカウンタに基づいてデータを移動することを決定してもよい。該決定は、最後の階層化サイクルでのエクステントにおける入出力(IO:input-output)ワークロードに基づいて行われる。該アクセスカウンタに基づいてデータを移動することを決定することは、該ドライブと該ティアとの間の該ワークロードのバランスをとる為に行われる。該入出力(IO)ワークロードは、ワークロードの為のドライブ閾値ベースのマイグレーションを含みうる。例えば、該エクステントが配置されているところの現在のドライブ制限内に該エクステントがとどまっていない場合に、階層化デーモン(tiering demon)は、静的な閾値(static threshold)を維持し、且つマイグレーション決定を行う。
工程304は、相互接続API 214モジュールが呼び出され、接続を確立することを含む。該相互接続APIが呼び出され、そして、該相互接続APIは、バックエンドのドライブサブシステム、例えばバックエンドのソリッドステートドライブ(SSD:solid state drives)、との接続を確立する。ストレージ最適化プログラム110a及び110bは、該アクセスカウンタに基づいてデータを移動することを決定することに基づいて、該データ収集を送信するように該相互接続APIに要求しうる。
工程306は、物理アクセスカウンタが収集され、そして変換される。ドライブのアクセスカウンタの収集は、階層化マイグレーションの為に収集されうる。該物理アクセスカウンタは収集され、そして、フラッシュドライブ216のデータブロック222における複数の仮想論理ブロックアドレス(LBAs)に変換されうる。フラッシュドライブ216はホットデータ(hot data)とみなされ得、データブロック222は物理アドレスを保持しうる。仮想アドレスとヒートデータを備えているアクセステーブルは、ストレージシステム(例えば、仮想化システム204)に転送又は伝送されうる。
工程308では、ヒートマップデータが収集される。該ヒートマップデータは、ヒートマップ更新206モジュールで収集されうる。ヒートマップ更新206モジュールは、各入出力(IO)操作のヒートマップを含みうる。該ドライブ(例えば、フラッシュドライブ216)からの収集された該ヒートマップデータは、エクステントレベルマッピングを取得する為に解析されてもよい。該データ構造は、プロビジョニングされてもよく、ヒートマップは、夫々のエクステントについてヒートマップ更新206モジュールで更新されてもよい。
工程310では、階層化マイグレーション計画(tiering migration plan)が計算される。ティアデータリロケータ210モジュールは、該階層化マイグレーション計画を計算し、そして、工程308でエクステントレベルマッピングで識別されたエクステントを、夫々のストレージティアに移動させうる。該階層化マイグレーション計画の計算は例えば、階層化マネージャ(tiering manager)を使用して計算されてもよい。該階層化マネージャは、ストレージプール内のサポートされるドライブタイプごとに最小の閾値及び最大の閾値を保持していてもよい。新しい入出力(IO)がストレージに送信されるか、又は該ストレージによって受信される場合に、該階層化マネージャはワークロードを記録する。階層化サイクルの時点で、該カウンタは、エクステントを現在のドライブに保持するか又は現在のドライブから移動するかのいずれかの為に、参照カウンタとマッチングされうる。例えば、該エクステントが最後の階層化サイクルで有意に減少した入出力(IO)を受信した場合に、このマッチングは、有意に減少した量の入出力(IO)が受信されるので該エクステントをデモーションすることを示唆し、それはより低い可能性があり、そして次に、閾値を維持する。
ここで図4を参照すると、少なくとも1つの実施態様に従う、ストレージ最適化プログラム110a及び110bによって使用される内部マップ変更イベントプロセス400の間の例示的なアプリケーション性能の強化を示す動作フローチャート図が図示されている。
工程402は、データブロックを新しいロケーションに移動することを決定することを含む。フラッシュドライブ216内のフラッシュ変換レイヤ218は、1以上のデータブロック222が新しいロケーションに移動する必要があることを検出しうる。該データブロックを移動することを決定することは、現在のロケーションでの熱量(heat value)を識別し、そして、該データブロックを移動することを含みうる。該熱量は、静的ファイルとして該ストレージシステムによって定義されうる。値は、サポートされるドライブの種類及びドライブの入出力(IO)の提供能力に基づいて割り当てられうる。例えば、IBM(登録商標) Easy Tier(登録商標)(IBM Easy Tier及び全てのIBM Easy Tierベースの商標及びロゴは、International Business Machines Corporation及び/又はその関連会社の商標又は登録商標である)は、基準値がハードコードされるか又は固定されたパラメータで保存されるスプレッドシートファイル又はxmlファイルを保存しうる。
工程404では、信号が、該ストレージシステムに送信されて、データを収集する。該信号は、データブロックを新しいロケーションに移動することを決定することに基づいて、ストレージシステム(例えば、仮想化システム204)に送信される。フラッシュ変換レイヤ218は、内部論理のブロックアドレス(LBA)移動が始まる前に、アクセスヒートカウンタからデータを収集する為の信号を該ストレージシステム(例えば、仮想化システム204)に送信しうる。
工程406では、データ収集が開始される。該データ収集は、該アクセスヒートカウンタからデータを収集する為に送信された信号に基づいて開始される。該データ収集は、相互接続API 214モジュールによって開始されうる。相互接続API 214モジュールは、信号をドライブ(例えば、フラッシュドライブ216)から受信し、そして該データ収集を開始しうる。
工程408では、物理アドレスが論理アドレスに変換される。開始されたデータ収集に応答して、フラッシュ変換レイヤ218は、複数の物理アドレスを複数の論理ブロックアドレス(LBAs)に変換し、そして次に、タプル(tuple)を該ストレージシステムに送信しうる。該タプルは、1つの論理ブロックアドレス(LBA)及び1つのヒートカウントを含みうる。フラッシュ変換レイヤ218内部の論理アドレス-物理アドレス変換マップの例が、下記の表4において提供されうる。
工程410では、ヒートデータが該ストレージシステムにコピーされる。フラッシュ変換レイヤ218が、ヒートデータを該ストレージシステムにコピーしてもよい。該ヒートデータ又はヒート情報が該ストレージシステムに一旦コピーされると、ブロック移動操作が処理されることが可能になる。
工程412では、ヒートマップデータが解析される。ヒートマップ更新206は、該ドライブからの該収集されたヒートマップを解析し得、該ヒートマップを解析してエクステントレベルマッピングを取得しうる。該データ構造は、プロビジョニングされてもよく、及び該ヒートマップは、夫々のエクステントについて更新されうる。
図2~図4は、1つの実施態様の例示に過ぎず、異なる実施態様がどのように実装されうるかに関して如何なる制限も意味しないことが理解されるであろう。図示された1以上の実施態様に対する多くの修正が、設計及び実装要件に基づいてなされうる。
図5は、本発明の例示的な実施態様に従う、図1に図示されたコンピュータの内部コンポーネント及び外部コンポーネントのブロック図900である。図5は、1つの実装の例示を提供するだけであり、異なる実施態様が実装されうる環境に関して如何なる制限も意味しないことが理解されるべきである。図示された環境に対する多くの修正が、設計及び実装要件に基づいてなされうる。
データ処理システム902及び904は、機械読み取り可能なプログラム命令を実行することができる任意の電子デバイスを表す。データ処理システム902及び904は、スマートフォン、コンピュータシステム、PDA、又は他の電子デバイスを表す。データ処理システム902及び904によって表されうるコンピューティングシステム、環境、若しくは構成又はそれらの組み合わせの例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータシステム、及び上記のシステム又はデバイスのいずれかを備えている分散クラウドコンピューティング環境を包含するが、これらに限定されない。
コンピュータ102及びサーバ112は、図5において示される内部コンポーネント902a及び902b並びに外部コンポーネント904a及び904b夫々の組を備えうる。内部コンポーネント902a及び902bの該組の各々は、1以上のバス912上にある、1以上のプロセッサ906、1以上のコンピュータ可読RAM 908及び1以上のコンピュータ可読ROM 910、並びに1以上のオペレーティングシステム914、1以上のアプリケーションプログラム915及び1以上のコンピュータ可読記憶媒体915を備えている。クライアントコンピュータ102内の1以上のオペレーティングシステム914、ソフトウェアプログラム108及び停電復旧予測プログラム(outage restoration prediction program)110a、並びにネットワークサーバ112内の停電復旧予測プログラム110bは、1以上のRAM 908(それらは典型的にはキャッシュメモリを備えている)を介して1以上のプロセッサ906によって実行する為に1以上のコンピュータ可読記憶媒体915上に記憶されていてもよい。図5に図示されている実施態様において、コンピュータ可読記憶媒体915の各々は、内部ハードドライブの磁気ディスクストレージデバイスである。代替的には、コンピュータ可読記憶媒体915の各々は、半導体ストレージデバイス、例えば、ROM 910、EPROM、フラッシュメモリ、又はコンピュータプログラム及びデジタル情報を記憶することができる任意の他のコンピュータ可読有形ストレージデバイス、である。
内部コンポーネント902a及び902bの各組はまた、ポータブルコンピュータ可読有形ストレージデバイス920、例えば、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、又は半導体ストレージデバイス、の1以上から読み取り及びそれに書き込む為のR/Wドライブ又はインタフェース918を備えている。ソフトウェアプログラム、例えば、ソフトウェアプログラム108並びにストレージ最適化プログラム110a及び110b、は、夫々のポータブルコンピュータ可読有形記ストレージデバイス920の1以上に記憶され、夫々のR/Wドライブ又はインタフェース918を介して読み取られ、及び夫々のハードディスク916内にロードされることができる。
内部コンポーネント902a及び902bの各組はまた、ネットワークアダプタ(若しくはスイッチポートカード)又はインタフェース922、例えば、TCP/IPアダプタカード、無線wi-fiインタフェースカード、又は3G/4G/5G無線インタフェースカード、又は他の有線若しくは無線の通信リンク、を包含しうる。コンピュータ102におけるソフトウェアプログラム108及びストレージ最適化プログラム110a、並びにネットワークサーバ112におけるストレージ最適化プログラム110bは、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他のワイドエリアネットワーク)及び夫々のネットワークアダプタ又はインタフェース922を介して外部のコンピュータ(例えば、サーバ)からダウンロードされることができる。ネットワークアダプタ(若しくはスイッチポートアダプタ)又はインタフェース922から、コンピュータ102におけるソフトウェアプログラム108及びストレージ最適化プログラム110a、並びにネットワークサーバコンピュータ112におけるストレージ最適化プログラム110bが、夫々のハードドライブ916内にロードされる。該ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はそれらの組み合わせを備えていてもよい。
外部コンポーネント904a及び904bの該組の各々は、コンピュータ表示モニタ924、キーボード926、及びコンピュータマウス928を備えていることができる。外部コンポーネント904a及び904bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、及び他のヒューマンインタフェースデバイスを備えていることができる。内部コンポーネント902a及び902bの該組の各々は、コンピュータ表示モニタ924、キーボード926及びコンピュータマウス928にインタフェースする為のデバイスドライバ930を備えている。デバイスドライバ930、R/Wドライブ又はインタフェース918及びネットワークアダプタ又はインタフェース922は、ハードウェア及び(ストレージデバイス916若しくはROM 910又はそれらの組み合わせ内に記憶されている)ソフトウェアを備えている。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示の実装はクラウドコンピューティング環境に限定されないことが予め理解されるべきである。寧ろ、本発明の実施態様は、現在知られている又は後に開発される任意の他の種類のコンピューティング環境と組み合わされて実装されることができる。
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの相互作用で迅速にプロビジョニングされ且つ解放されることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理(processing)、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にする為のサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデル(deployment model)を含みうる。
特徴は下記の通りである。
オンデマンドセルフサービス(On-demand self-service):クラウドコンシューマ(cloud consumer)は、サービスのプロバイダとのヒューマンインターラクション(human interaction)を必要とせずに、自動的に必要に応じて、コンピューティング機能、例えばサーバ時間及びネットワークストレージ、を一方的にプロビジョニングすることができる。
ブロードネットワークアクセス:機能は、ネットワークを介して利用可能であり、及び異種のシン(thin)クライアント・プラットフォーム又はシック(thick)クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソースのプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービスを提供する為にプールされ、及び様々な物理リソースと仮想リソースが需要に従って動的に割り当てられ及び再割り当てされる。コンシューマは一般的に、提供されたリソースの正確なロケーションについての制御又は知識を有していないが、より高いレベルの抽象化でのロケーション(例えば、国、州又はデータセンター)を特定できうるという点で、ロケーションに依存しないといえる。
迅速な順応性:機能は、迅速且つ弾力的にプロビジョニングされ、場合によっては自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされうる。コンシューマにとって、プロビジョニングに利用可能な機能はしばしば、無制限であり及びいつでも任意の量で購入されることができる。
測定されたサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御し及び最適化する。リソース使用は監視され、制御され、及び報告されることができ、利用されるサービスのプロバイダ及びコンシューマの両方についての透明性を提供することができる。
サービスモデルは下記の通りである。
サービスとしてのソフトウェア(SaaS:Software as a Service):クラウドインフラストラクチャにおいて実行しているプロバイダのアプリケーションを使用する為に、コンシューマに提供される機能である。該アプリケーションは、シン・クライアント・インタフェース、例えばウェブブラウザ(例えば、ウェブベースの電子メール)、を通じて、様々なクライアント・装置からアクセス可能である。該コンシューマは、制限されたユーザ固有のアプリケーション構成設定の在りうる例外として、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション機能さえも包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウドインフラストラクチャ上にデプロイする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、又はストレージを包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
サービスとしての分析(AaaS:Analytics as a Service):該コンシューマに提供される機能は、ウェブベース又はクラウドベースのネットワーク(すなわち、インフラストラクチャ)を使用して、分析プラットフォームにアクセスすることである。分析プラットフォームは、分析ソフトウェアリソースへのアクセスを含み得、関連データベース、コーパス、サーバ、オペレーティングシステム又はストレージへのアクセスを含みうる。該コンシューマは、基礎であるウェブベース又はクラウドベースのインフラストラクチャ、例えば、データベース、コーパス、サーバ、オペレーティングシステム又はストレージを包含する上記の基礎であるウェブベース又はクラウドベースのインフラストラクチャ、を管理又は制御しないが、デプロイされたアプリケーション及び場合によってはアプリケーションホスティング環境の構成の制御を有する。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマが、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションに対する制御、並びに、場合によっては、ネットワーク・コンポーネント(例えば、ホストのファイアウォール)を選択することの制限された制御を有する。
デプロイメントモデル(Deployment Models)は下記の通りである。
プライベートクラウド:クラウドインフラストラクチャは、ある組織の為のみに運営される。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス(on-premises)又はオフプレミス(off-premises)に存在しうる。
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、及び共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシ、及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス又はオフプレミスに存在しうる。
パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界グループに対して利用可能であり、及びクラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散の為のクラウド・バースティング)によって一緒にされる2以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
クラウドコンピューティング環境は、無国籍性(statelessness)、低結合性、モジュール性、及びセマンティック相互運用性(semantic interoperability)に焦点を有する指向されたサービスである。クラウドコンピューティングの中核(heart)は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図6を参照すると、例示的なクラウドコンピューティング環境1000が図示されている。図示されているように、クラウドコンピューティング環境1000は、クラウドコンシューマ、例えば、パーソナルデジタルアシスタント(PDA:personal digital assistant)又は携帯電話1000A、デスクトップコンピュータ1000B、ラップトップコンピュータ1000C若しくは自動車コンピュータシステム1000N等又はそれらの組み合わせ、によって用いられるローカルコンピューティングデバイスが通信しうる1以上のクラウドコンピューティングノード1050を備えている。ノード1050は、互いに通信しうる。それらは、1以上のネットワーク、例えば、本明細書において記載されている、プライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせ、において物理的又は仮想的にグループ化されていてもよい(図示せず)。これにより、クラウドコンピューティング環境1000は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム若しくはソフトウェア又はそれらの組み合わせを提供することができる。図示されているコンピューティングデバイス1000A~1000Nの種類は、例示のみを意図されていること、並びにコンピューティングノード1050及びクラウドコンピューティング環境1000は、任意の種類のネットワーク若しくはネットワークアドレス可能接続又はそれらの組み合わせを介して(例えば、ウェブブラウザを使用して)任意の種類のコンピュータ化されたデバイスと通信することが理解される。
ここで図7を参照すると、クラウドコンピューティング環境1000によって提供される機能的抽象化層の1組1100が示されている。図7において示されているコンポーネント、層及び機能は、単に例示であることが意図されていること、並びに本発明の実施態様はそれらに限定されないことが理解されるべきである。図示されている通り、下記の複数の層及び対応する複数の機能が提供される。
ハードウェア及びソフトウェア層1102は、ハードウェアコンポーネント及びソフトウェアコンポーネントを包含する。ハードウェアコンポーネントの例は、メインフレーム1104、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ1106;サーバ1108;ブレード・サーバ1110;ストレージデバイス1112;並びに、ネットワーク及びネットワーキングコンポーネント1114を包含する。幾つかの実施態様において、ソフトウェアコンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1116及びデータベース・ソフトウェア1118を包含する。
仮想化層1120は、抽象化層を提供し、この抽象化層から、仮想エンティティの下記の例が提供されうる:すなわち、仮想サーバ1122;仮想ストレージ1124;仮想ネットワーク1126;例えば仮想プライベートネットワークを包含する上記の仮想ネットワーク1126;仮想アプリケーション及びオペレーティングシステム1128;並びに、仮想クライアント1130。
1つの例において、管理層1132は、以下で説明される複数の機能を提供しうる。リソース・プロビジョニング1134は、クラウドコンピューティング環境内でタスクを実行する為に利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格決定1136は、リソースがクラウドコンピューティング環境内で利用される場合のコスト追跡と、これらのリソースの消費についての課金又は請求とを提供する。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを包含しうる。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル1138は、コンシューマ及びシステム管理者の為に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1140は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA:Service Level Agreement)の計画及び履行1142は、将来の要件がSLAに従って予測されるクラウド・コンピューティング・リソースの為の事前配置及びその調達を提供する。
ワークロード層1144は、該クラウドコンピューティング環境が利用されうる複数の機能の例を提供する。この層から提供されうる複数のワークロード及び複数の機能の例は、マッピング及びナビゲーション1146;ソフトウェア開発及びライフサイクル管理1148;仮想教室教育の提供1150;データアナリティクス処理1152;トランザクション処理1154;並びにストレージ最適化1156を包含する。ストレージ最適化プログラム110a及び110bは、ストレージシステム最適化を用いて、階層化マイグレーションの間に及び内部マップ変更イベントの間にアプリケーション性能を強化させる方法を提供する。
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
コンピュータ可読記憶媒体915は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。コンピュータ可読記憶媒体915は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。コンピュータ可読記憶媒体915のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)908、読み取り専用メモリ(ROM:read only memory)910、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、コンピュータ可読記憶媒体915は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体915から個々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェース922は、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体915中に記憶する為に伝送する。
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ906を介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ906又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体915が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体915中に記憶されうる。
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
本発明の様々な実施態様の記載は、例示の目的の為に提示されたものであり、網羅的であること又は開示された実施態様に限定されることが意図されたものでない。多くの修正及び変形が、記載された実施態様の範囲及び精神から逸脱することなしに当業者に明らかであろう。本明細書において使用される語は、実施態様の原理、実用的な用途、又は市場において見られる技術に対する技術的改善を最もよく説明する為に、又は当業者が本明細書において開示されている実施態様を理解することができるようにする為に選択された。

Claims (20)

  1. ストレージシステム最適化の為の階層化マイグレーションの方法であって、
    ストレージドライブとストレージティアとの間のワークロードのバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定すること;
    前記データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立すること;
    前記相互接続アプリケーションプログラムインタフェースとの前記接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換すること;
    前記物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集すること;及び、
    前記ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算すること
    を含む、前記方法。
  2. データブロックを新しいロケーションに移動することを決定すること;
    アクセスヒートカウンタからデータを収集する為の信号をストレージシステムに送信すること;
    前記アクセスヒートカウンタから前記データの前記収集を開始すること;
    物理アドレスを論理アドレスに変換すること;
    前記ヒートマップデータを前記ストレージシステムにコピーすること;及び、
    前記ヒートマップデータを解析すること
    を更に含む、請求項1に記載の方法。
  3. 前記データを移動することを決定することが、最後の階層化サイクルでのエクステントにおける入出力ワークロードに基づいて行われる、請求項1に記載の方法。
  4. 前記物理アクセスカウンタが仮想論理ブロックアドレスに変換される、請求項1に記載の方法。
  5. 前記ヒートマップデータが、各入出力操作の為のヒートマップを含む、請求項1に記載の方法。
  6. 前記階層化マイグレーション計画が、エクステントレベルマッピングで識別されたエクステントをストレージティアに移動することを含む、請求項1に記載の方法。
  7. 前記ヒートマップデータが解析されて、エクステントレベルマッピングを取得する、請求項2に記載の方法。
  8. ストレージシステム最適化の為の階層化マイグレーションの為のコンピュータシステムであって、該コンピュータシステムが、
    1以上のプロセッサ、1以上のコンピュータ可読メモリ、1以上のコンピュータ可読有形記憶媒体、及び前記1以上のコンピュータ可読メモリのうちの少なくとも1つを介して前記1以上のプロセッサのうちの少なくとも1つによって実行する為の、前記1以上のコンピュータ可読有形記憶媒体のうちの少なくとも1つのコンピュータ可読有形記憶媒体上に記憶されたプログラム命令を備えており、ここで、前記コンピュータシステムは、
    ストレージドライブとストレージティアとの間のワークロードのバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定すること;
    前記データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立すること;
    前記相互接続アプリケーションプログラムインタフェースとの前記接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換すること;
    前記物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集すること;及び、
    前記ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算すること
    を含む方法を実行することが可能である、前記コンピュータシステム。
  9. データブロックを新しいロケーションに移動することを決定すること;
    アクセスヒートカウンタからデータを収集する為の信号をストレージシステムに送信すること;
    前記アクセスヒートカウンタから前記データの前記収集を開始すること;
    物理アドレスを論理アドレスに変換すること;
    前記ヒートマップデータを前記ストレージシステムにコピーすること;及び、
    前記ヒートマップデータを解析すること
    を更に含む、請求項8に記載のコンピュータシステム。
  10. 前記データを移動することを決定することが、最後の階層化サイクルでのエクステントにおける入出力ワークロードに基づいて行われる、請求項8に記載のコンピュータシステム。
  11. 前記物理アクセスカウンタが仮想論理ブロックアドレスに変換される、請求項8に記載のコンピュータシステム。
  12. 前記ヒートマップデータが、各入出力操作の為のヒートマップを含む、請求項8に記載のコンピュータシステム。
  13. 前記階層化マイグレーション計画が、エクステントレベルマッピングで識別されたエクステントをストレージティアに移動することを含む、請求項8に記載のコンピュータシステム。
  14. 前記ヒートマップデータが解析されて、エクステントレベルマッピングを取得する、請求項9に記載のコンピュータシステム。
  15. ストレージシステム最適化の為の階層化マイグレーションの為のコンピュータプログラム製品であって、該コンピュータプログラム製品が、
    1以上のコンピュータ可読有形記憶媒体、及び前記1以上のコンピュータ可読有形記憶媒体のうちの少なくとも1つのコンピュータ可読有形記憶媒体上に記憶された複数のプログラム命令を備えており、前記複数のプログラム命令が、
    ストレージドライブとストレージティアとの間のワークロードのバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定すること;
    前記データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立すること;
    前記相互接続アプリケーションプログラムインタフェースとの前記接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換すること;
    前記物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集すること;及び、
    前記ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算すること
    を含む方法をプロセッサに実行させる為に該プロセッサによって実行可能である、
    前記コンピュータプログラム製品。
  16. データブロックを新しいロケーションに移動することを決定すること;
    アクセスヒートカウンタからデータを収集する為の信号をストレージシステムに送信すること;
    前記アクセスヒートカウンタから前記データの前記収集を開始すること;
    物理アドレスを論理アドレスに変換すること;
    前記ヒートマップデータを前記ストレージシステムにコピーすること;及び、
    前記ヒートマップデータを解析すること
    を更に含む、請求項15に記載のコンピュータプログラム製品。
  17. 前記データを移動することを決定することが、最後の階層化サイクルでのエクステントにおける入出力ワークロードに基づいて行われる、請求項15に記載のコンピュータプログラム製品。
  18. 前記物理アクセスカウンタが仮想論理ブロックアドレスに変換される、請求項15に記載のコンピュータプログラム製品。
  19. 前記ヒートマップデータが、各入出力操作の為のヒートマップを含む、請求項15に記載のコンピュータプログラム製品。
  20. 前記階層化マイグレーション計画が、エクステントレベルマッピングで識別されたエクステントをストレージティアに移動することを含む、請求項15に記載のコンピュータプログラム製品。
JP2023531583A 2020-12-02 2021-11-09 ストレージシステム最適化を使用したアプリケーション性能の強化 Pending JP2023553316A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/109,180 2020-12-02
US17/109,180 US11726692B2 (en) 2020-12-02 2020-12-02 Enhanced application performance using storage system optimization
PCT/CN2021/129429 WO2022116778A1 (en) 2020-12-02 2021-11-09 Enhanced application performance using storage system optimization

Publications (1)

Publication Number Publication Date
JP2023553316A true JP2023553316A (ja) 2023-12-21

Family

ID=81752614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023531583A Pending JP2023553316A (ja) 2020-12-02 2021-11-09 ストレージシステム最適化を使用したアプリケーション性能の強化

Country Status (6)

Country Link
US (1) US11726692B2 (ja)
JP (1) JP2023553316A (ja)
CN (1) CN116529695A (ja)
DE (1) DE112021005233T5 (ja)
GB (1) GB2616789A (ja)
WO (1) WO2022116778A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115202563A (zh) * 2021-04-14 2022-10-18 戴尔产品有限公司 基于预测数据访问频率趋势模式在集群存储系统的存储层级之间的数据移动
US11868223B2 (en) 2022-01-19 2024-01-09 Dell Products L.P. Read-disturb-based read temperature information utilization system
US11914494B2 (en) * 2022-01-20 2024-02-27 Dell Products L.P. Storage device read-disturb-based read temperature map utilization system
CN118051190A (zh) * 2024-04-16 2024-05-17 深圳市领德创科技有限公司 一种固态硬盘的数据保护方法及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237021B1 (en) 1998-09-25 2001-05-22 Complex Data Technologies, Inc. Method and apparatus for the efficient processing of data-intensive applications
US20050071560A1 (en) 2003-09-30 2005-03-31 International Business Machines Corp. Autonomic block-level hierarchical storage management for storage networks
US8924675B1 (en) 2010-09-24 2014-12-30 Emc Corporation Selective migration of physical data
US8935493B1 (en) * 2011-06-30 2015-01-13 Emc Corporation Performing data storage optimizations across multiple data storage systems
US9047017B1 (en) * 2011-12-20 2015-06-02 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers
US8972694B1 (en) * 2012-03-26 2015-03-03 Emc Corporation Dynamic storage allocation with virtually provisioned devices
US8930778B2 (en) 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
US9552288B2 (en) 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US9280300B2 (en) 2013-06-28 2016-03-08 Vmware, Inc. Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage
CN103605483A (zh) 2013-11-21 2014-02-26 浪潮电子信息产业股份有限公司 一种分级存储系统中块级数据特征处理方法
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
US10222984B1 (en) 2015-12-31 2019-03-05 EMC IP Holding Company LLC Managing multi-granularity flash translation layers in solid state drives
US10042578B2 (en) * 2016-11-08 2018-08-07 International Business Machines Corporation Extent migration in multi-tier storage systems
US10510374B2 (en) * 2017-07-05 2019-12-17 Seagate Technology Llc Self-healing in a storage system
US20190050163A1 (en) * 2017-08-14 2019-02-14 Seagate Technology Llc Using snap space knowledge in tiering decisions
CN107844269B (zh) 2017-10-17 2020-06-02 华中科技大学 一种基于一致性哈希的分层混合存储系统
US11074011B2 (en) * 2019-03-20 2021-07-27 Western Digital Technologies, Inc. Solid state drive latency estimation interface for host performance tuning
US11188461B2 (en) * 2019-06-19 2021-11-30 Micron Technology, Inc. Garbage collection adapted to memory device life expectancy
CN111506262B (zh) 2020-03-25 2021-12-28 华为技术有限公司 一种存储系统、文件存储和读取方法及终端设备

Also Published As

Publication number Publication date
WO2022116778A1 (en) 2022-06-09
GB2616789A (en) 2023-09-20
GB202309843D0 (en) 2023-08-16
DE112021005233T5 (de) 2023-09-07
US11726692B2 (en) 2023-08-15
US20220171560A1 (en) 2022-06-02
CN116529695A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US11073999B2 (en) Extent migration in multi-tier storage systems
KR102624824B1 (ko) 데이터 볼륨들의 동적 구성
US10168915B2 (en) Workload performance in a multi-tier storage environment
US9983807B1 (en) Static service levels and application specific usage tags for storage policy based management of storage resources
US11726692B2 (en) Enhanced application performance using storage system optimization
US11893256B2 (en) Partitioning of deduplication domains in storage systems
US10664185B2 (en) Backend-aware extent balancing
US20210263677A1 (en) Nvme queue management multi-tier storage systems
US10809941B2 (en) Multi-tiered storage
US11567664B2 (en) Distributing data across a mixed data storage center
US11467735B2 (en) I/O operations in log structured arrays
US11513861B2 (en) Queue management in solid state memory
US10956084B2 (en) Drive utilization in multi-tiered systems with read-intensive flash
US10708340B2 (en) Methods and systems for improving efficiency in data transfers
US10176120B2 (en) Cache prefetching in offloaded data transfer (ODX)
US20200348874A1 (en) Memory-fabric-based data-mover-enabled memory tiering system
US11797208B2 (en) Backend deduplication awareness
US11782641B2 (en) Backend aware virtualized storage

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230609

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230512

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230711

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240411