JP2023553316A - ストレージシステム最適化を使用したアプリケーション性能の強化 - Google Patents
ストレージシステム最適化を使用したアプリケーション性能の強化 Download PDFInfo
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 198
- 238000005457 optimization Methods 0.000 title claims abstract description 40
- 238000013508 migration Methods 0.000 claims abstract description 38
- 230000005012 migration Effects 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims abstract description 17
- 230000008859 change Effects 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 15
- 230000000977 initiatory effect Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 abstract description 29
- 239000010410 layer Substances 0.000 description 35
- 238000013519 translation Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 238000013480 data collection Methods 0.000 description 9
- 239000007787 solid Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000012517 data analytics Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003370 grooming effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 235000019633 pungent taste Nutrition 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid 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)のバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定することを含みうる。本発明の実施態様は、該データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立することを含みうる。本発明の実施態様は、該相互接続アプリケーションプログラムインタフェースとの接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換することを含みうる。本発明の実施態様は、該物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集することを含みうる。本発明の実施態様は、該ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算することを含みうる。
本発明の、これらの目的及び他の目的、特徴及び利点は、その例示的な実施態様の下記の発明の詳細な説明から明らかになるであろう。そして、該詳細な説明は、添付の図面に関連して読まれるべきである。図面の様々な特徴は、図面が発明の詳細な説明と併せて本発明を理解することを当業者に容易にすることを明確にする為のものである故に、縮尺どおりでない。図面は、下記に述べられる通りである。
特許請求の範囲に記載されている構造及び方法の詳細な実施態様が本明細書において開示されている。しかしながら、開示された実施態様が、様々な形態で具現化されうる特許請求の範囲に記載された構造及び方法の例に過ぎないことが、理解されることができる。しかしながら、本発明は、様々な形態で具現化されてもよく、本明細書において記載された例示的な実施態様に制限されると解釈されるべきでない。寧ろ、これらの例示的な実施態様は、この開示が徹底的且つ完全なものとなり、当業者にこの発明の範囲を十分に伝えることができるように提供される。発明の詳細な説明において、周知の特徴及び技術の詳細は、提示された実施態様を不必要に分かりにくくするのを避ける為に、省略されうる。
前述されているように、主にアクセス基準、使用頻度、セキュリティ及びデータ回復要件に基づいて、様々な種類のストレージデバイス上にデータを記憶する為に、マルチティア化されたストレージアプローチ(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に記載の方法。 - 前記データを移動することを決定することが、最後の階層化サイクルでのエクステントにおける入出力ワークロードに基づいて行われる、請求項1に記載の方法。
- 前記物理アクセスカウンタが仮想論理ブロックアドレスに変換される、請求項1に記載の方法。
- 前記ヒートマップデータが、各入出力操作の為のヒートマップを含む、請求項1に記載の方法。
- 前記階層化マイグレーション計画が、エクステントレベルマッピングで識別されたエクステントをストレージティアに移動することを含む、請求項1に記載の方法。
- 前記ヒートマップデータが解析されて、エクステントレベルマッピングを取得する、請求項2に記載の方法。
- ストレージシステム最適化の為の階層化マイグレーションの為のコンピュータシステムであって、該コンピュータシステムが、
1以上のプロセッサ、1以上のコンピュータ可読メモリ、1以上のコンピュータ可読有形記憶媒体、及び前記1以上のコンピュータ可読メモリのうちの少なくとも1つを介して前記1以上のプロセッサのうちの少なくとも1つによって実行する為の、前記1以上のコンピュータ可読有形記憶媒体のうちの少なくとも1つのコンピュータ可読有形記憶媒体上に記憶されたプログラム命令を備えており、ここで、前記コンピュータシステムは、
ストレージドライブとストレージティアとの間のワークロードのバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定すること;
前記データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立すること;
前記相互接続アプリケーションプログラムインタフェースとの前記接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換すること;
前記物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集すること;及び、
前記ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算すること
を含む方法を実行することが可能である、前記コンピュータシステム。 - データブロックを新しいロケーションに移動することを決定すること;
アクセスヒートカウンタからデータを収集する為の信号をストレージシステムに送信すること;
前記アクセスヒートカウンタから前記データの前記収集を開始すること;
物理アドレスを論理アドレスに変換すること;
前記ヒートマップデータを前記ストレージシステムにコピーすること;及び、
前記ヒートマップデータを解析すること
を更に含む、請求項8に記載のコンピュータシステム。 - 前記データを移動することを決定することが、最後の階層化サイクルでのエクステントにおける入出力ワークロードに基づいて行われる、請求項8に記載のコンピュータシステム。
- 前記物理アクセスカウンタが仮想論理ブロックアドレスに変換される、請求項8に記載のコンピュータシステム。
- 前記ヒートマップデータが、各入出力操作の為のヒートマップを含む、請求項8に記載のコンピュータシステム。
- 前記階層化マイグレーション計画が、エクステントレベルマッピングで識別されたエクステントをストレージティアに移動することを含む、請求項8に記載のコンピュータシステム。
- 前記ヒートマップデータが解析されて、エクステントレベルマッピングを取得する、請求項9に記載のコンピュータシステム。
- ストレージシステム最適化の為の階層化マイグレーションの為のコンピュータプログラム製品であって、該コンピュータプログラム製品が、
1以上のコンピュータ可読有形記憶媒体、及び前記1以上のコンピュータ可読有形記憶媒体のうちの少なくとも1つのコンピュータ可読有形記憶媒体上に記憶された複数のプログラム命令を備えており、前記複数のプログラム命令が、
ストレージドライブとストレージティアとの間のワークロードのバランスをとる為に、アクセスカウンタに基づいてデータを移動することを決定すること;
前記データを移動することを決定することに基づいて、相互接続アプリケーションプログラムインタフェースとの接続を確立すること;
前記相互接続アプリケーションプログラムインタフェースとの前記接続を確立することに基づいて、物理アクセスカウンタを収集し、そして変換すること;
前記物理アクセスカウンタを収集しそして変換することに基づいて、ヒートマップデータを収集すること;及び、
前記ヒートマップデータを収集することに基づいて、内部マップ変更イベントの為に階層化マイグレーション計画を計算すること
を含む方法をプロセッサに実行させる為に該プロセッサによって実行可能である、
前記コンピュータプログラム製品。 - データブロックを新しいロケーションに移動することを決定すること;
アクセスヒートカウンタからデータを収集する為の信号をストレージシステムに送信すること;
前記アクセスヒートカウンタから前記データの前記収集を開始すること;
物理アドレスを論理アドレスに変換すること;
前記ヒートマップデータを前記ストレージシステムにコピーすること;及び、
前記ヒートマップデータを解析すること
を更に含む、請求項15に記載のコンピュータプログラム製品。 - 前記データを移動することを決定することが、最後の階層化サイクルでのエクステントにおける入出力ワークロードに基づいて行われる、請求項15に記載のコンピュータプログラム製品。
- 前記物理アクセスカウンタが仮想論理ブロックアドレスに変換される、請求項15に記載のコンピュータプログラム製品。
- 前記ヒートマップデータが、各入出力操作の為のヒートマップを含む、請求項15に記載のコンピュータプログラム製品。
- 前記階層化マイグレーション計画が、エクステントレベルマッピングで識別されたエクステントをストレージティアに移動することを含む、請求項15に記載のコンピュータプログラム製品。
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)
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)
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 | 华为技术有限公司 | 一种存储系统、文件存储和读取方法及终端设备 |
-
2020
- 2020-12-02 US US17/109,180 patent/US11726692B2/en active Active
-
2021
- 2021-11-09 WO PCT/CN2021/129429 patent/WO2022116778A1/en active Application Filing
- 2021-11-09 CN CN202180077367.1A patent/CN116529695A/zh active Pending
- 2021-11-09 GB GB2309843.7A patent/GB2616789A/en active Pending
- 2021-11-09 JP JP2023531583A patent/JP2023553316A/ja active Pending
- 2021-11-09 DE DE112021005233.0T patent/DE112021005233T5/de active Pending
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 |