JP6993929B2 - マルチストリーミングのための、ストレージ装置、ストレージ管理部、及び方法 - Google Patents
マルチストリーミングのための、ストレージ装置、ストレージ管理部、及び方法 Download PDFInfo
- Publication number
- JP6993929B2 JP6993929B2 JP2018089023A JP2018089023A JP6993929B2 JP 6993929 B2 JP6993929 B2 JP 6993929B2 JP 2018089023 A JP2018089023 A JP 2018089023A JP 2018089023 A JP2018089023 A JP 2018089023A JP 6993929 B2 JP6993929 B2 JP 6993929B2
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- storage
- stream
- management unit
- streaming performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/0608—Saving storage space on 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/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0658—Controller construction arrangements
-
- 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/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
-
- 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/0688—Non-volatile semiconductor memory arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/02—Transmitters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/06—Receivers
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
製造及び連結以外は同一の装置も相異なるように遂行され得る。例えば、同一のホストマシン(machine)に連結された2つのSSDストレージ装置を考慮する。2つのSSDの中で1つが、ホストマシンにより発行された全命令の中で実質的に50%よりも多い命令を受信すると、当該SSDは入出力(I/O)キューの内の命令がより多くなるせいで、性能が遅くなることは勿論、ガーベージコレクション及びライト増幅が、結局、相棒のSSDよりもずっと多くなる事態に陥る。
そして、2016年3月1日出願された米国仮特許出願(62/302,162)の利益を主張する、2016年5月4日出願された米国特許出願(15/146,708)は、全ての目的のため、本明細書にここで参照により組み込まれる。
アプリケーションはそれ自身が使用する目的に合わせ任意の個数のストリーミングを定義できる。例えば、アプリケーション又は運営体制(OS)は寿命が長いデータに対して1つのストリームを、単に一時的に格納されるデータに対して他のストリームなどを定義できる。なお、アプリケーションはストリームの区別に際して他の条件を利用できる。即ち、データ寿命の使用は、単に1つの例示的なやり方(approach)である。
1)ドライブ類型(例えば、イーサネットSSDである事実)。
2)そのホストとの通信に際して経験された全てのネットワーク待機時間。
3)SLC及びTLCの待機時間(又は相対的な待機時間)。
4)SLC対TLCにストリームを割り当てる際の全ての制約。
即ち、マルチストリーミングの脈略の内で、アプリケーションの或る小さい部分が高レベルのQoS資源を要求するからといって、該アプリケーション全体に高レベルのQoS資源を提供するよりは、本発明の実施例では、アプリケーションの内、小さいが高レベルのQoSを要求する部分に対してのみ1つの高レベルQoSストリームが提供され、該アプリケーションの他のストリームには低レベルのQoS資源が提供される。
メモリ115は、フラッシュメモリ、SRAM(Static_RAM(Random Access Memory))、PRAM(Persistent_RAM、又はPhase_shift_RAM)、FRAM(登録商標)(Ferroelectric_RAM)、又は、MRAM(Magnetoresistive_RAM)のようなNVRAM(Non-Volatile_RAM)などの任意の多様なメモリであり得るが、一般的にはDRAM(Dynamic_RAM)である。なお、メモリ115は相異なるメモリ種類の任意の組合せであり得る。メモリ115は、なおマシン105の一部であり得るメモリコントローラ125により制御される。
ストレージ管理部135は、SATA(Serial AT Attachment)、SCIS(Small Computer Systems Interface)、又は他の適切な規約である旧型プロトコル305-1を用いてシングルド(shingled、屋根葺型記録方式)HDD(Hard Disk Drive)120-1と通信できる。
また、ストレージ管理部135は、PCIe(Peripheral Component Interconnect express)連結の4個のラインを通せるプロトコル305-2を用いた、マルチストリーミングのSSD(Solid State Drives)である、新型フラッシュメモリのストレージ装置120-2と通信できる。
ストレージ管理部135はSAS(Serial Attachment Small Computer Systems Interface)であるプロトコル305-3を用いて、混合された媒体のストレージ装置120-3と通信できる。
ストレージ管理部135は、PCIe連結の2個のラインを通せるプロトコル305-4を用いて、旧型のフラッシュメモリのストレージ装置120-4と通信できる。
そして、ストレージ管理部135はイーサネット(登録商標)連結であるプロトコル305-5を用いて、NVMeoF(Non-Volatile Memory express over Fabric)のフラッシュメモリストレージ装置120-5と通信できる。
SSD120-2は、装置ストリームを用いて図1のストレージ管理部135又はホストマシン105と通信する(図8を参照して後述するように、SSD120-2及び図1のホストマシン105は、アプリケーションストリームを通じて通信するとしても理解できる。つまり、一般的に装置ストリーム425-1~425-3又はアプリケーションストリームの中で、何れか1つに寄与(attribute)した特性は他の類型のストリームにも寄与できる。)。
SSDコントローラ410は、ストレージ415、ここではフラッシュメモリチップ415-1~415-8)に対する、ガーベージコレクション動作と共にリード(read)及びライト(write)動作を管理する。SSDコントローラ410は、フラッシュ変換階層430を含み、この管理の一部を遂行する。
又は、幾つかのストレージ管理部は、要請していない情報を受信しないように設定されており、ストレージ装置にそのストリーミング性能を要請した後にのみ、ストレージ装置のストリーミング性能を処理する。本発明の斯かる実施例において、受信機505はコントローラ410が図1のストレージ装置120のセルフインベントリを遂行する前に、図1のストレージ管理部135から要請を受信できる(受信機505は、アプリケーションからリード及びライトの要請を受信するなどの他の目的のために使用でき、コントローラ410の一部であり得る。しかし、受信機505は本発明の全ての実施例において、ストリーミング性能の管理に必須ではない。)。
ストレージ装置がどのようにオートストリーミングを遂行するかを制御するパラメータが変化すると、この変化は、図1のストレージ管理部135がストレージ装置のオートストリーミング性能への依存を所望するか否かに影響を与える。この変化の報告を受けることにより、図1のストレージ管理部135は、ストレージ装置の現在最新のストリーミング性能情報を踏まえて図1のホストマシン105からの要請に対して適切な装置ストリーム/ストレージ装置をより良く選択できる。例えば、ストレージ装置のオートストリーミング性能の変化は、図1のストレージ管理部135がこれ以上ストレージ装置のオートストリーミング性能に依存せずに、代わりに自らストリームを割り当てるべきであることを意味する場合もある。
2017年4月11日出願された米国仮特許出願(62/484,387)の利益を主張する、現在係属中の2017年7月18日出願された米国特許出願(15/653,479)(これら両者は、全ての目的のため、本明細書にここで参照により組み込まれる。)は、図1のストレージ装置120が、そのストリーミング性能を図1のストレージ管理部135に報告できる1つの方法を説明するが、しかし本発明の実施例は、図1のストレージ装置120がそのストリーミング性能を図1のストレージ管理部135に報告する他のメカニズムも支援できる。図1のストレージ管理部135に情報を報告する何らかの方法が有ると仮定できれば、その報告を作るのに使用される具体的なやり方は核心事ではない。
● 装置ストリームの個数610。つまり、図1のストレージ装置120が支援する図4の装置ストリーム425が幾つであるか。
● 消去ブロックのサイズ615。つまり、図1のストレージ装置120内の消去ブロックのサイズ(図1のストレージ装置120がガーベージコレクション又は類似した動作を遂行すると仮定)
● 物理的異種性(physical_heterogeneity)620。つまり、図1のストレージ装置120内の使用可能な相異なる類型のストレージが何であるか。例えば、図4で、フラッシュメモリチップ415-1、415-2、415-5、415-6はSLCであり、その反面、フラッシュメモリチップ415-3、415-4、415-7、415-8はMLCである。図1のストレージ装置120内の全てのストレージが同一の類型に属する場合には、図1のストレージ装置120内のどこにデータがライトされるかに関係せず、性能上の差異は無いか又は殆ど無い。しかし、図1のストレージ装置120が相異なる類型のストレージを支援する場合には、データが実際どこにライトされるかは、図1のストレージ装置120の性能に影響する。
● オートストリーミング性能625。つまり、ストレージ装置120がオートストリーミングを支援するか否か、そして図1のストレージ装置120により支援されるオートストリーミングのパラメータ。図1のストレージ装置120がオートストリーミングを支援し、そしてオートストリーミングのパラメータが有用であれば、図1のストレージ管理部135は外部から選択された装置ストリームを賦課する代わりに、内部的なオートストリーミングの遂行を図1のストレージ装置120に委任する。
● 最適のストリームのライトサイズ630。つまり、図1のストレージ装置120が最適の又は実質的に最適のストリームのライトサイズを有するか否か。最適のストリームのライトサイズ630は、他の因子の中でフラッシュ‐ブロックページサイズ、バッファサイズ、ストレージ装置120上で同時に動作するストリームの個数、これらのストリームにより消耗される帯域幅、及び他の因子を含む、ストレージ装置120の多様な制約因子に関連する。
● ストレージ内コンピューティング(In-Storage Computing: ISC)635。つまり、図1のストレージ装置120がストレージ内コンピューティングを提供するか否か。そして、提供する場合、プロセッサの個数、各プロセッサのIPS(秒当たり命令実行数)、ストレージ内コンピューティングプロセッサ上で実行されるアプリケーションにより使用されるデータを格納するために使用可能なメモリ量、などのストレージ内コンピューティング性能。
● プログラム及び消去速度のパラメータ640。つまり、図1のストレージ装置120が、どのようにガーベージコレクションを遂行するかに関するパラメータ(図1のストレージ装置120がガーベージコレクションを遂行すると仮定)。このパラメータは、消去ブロックを消去するのに必要な平均時間、消去ブロックから有効データをプログラムするのに必要な平均時間などを包含する。このパラメータは消去ブロックサイズ615を包含し得る。
● バッファサイズ645。つまり、ストレージ装置120内に含まれたバッファのサイズ。バッファサイズ645は追加的な関連のバッファ情報を包含できる。即ち、例えば、バッファが図4に提供された装置ストリーム425(又はネームスペース(namespace))の間に分割されるか否か、又はバッファが図4の装置ストリーム425(又はネームスペース)を通じて共有されるか否か。
● 処理能力(throughput)の制限650。つまり、図1のストレージ装置120の制限。例えば、使用可能な帯域幅又は待ち時間。
● ファームウェアのバージョン655。つまり、(図4の装置ストリーム425-1~425-3の動作に影響する)図1のストレージ装置120のファームウェアのバージョン。
2017年4月11日出願された米国仮特許出願(62/484,387)の利益を主張する、現在係属中の2017年7月18日出願された米国特許出願(15/653,479)は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれて図1のストレージ装置120に対する多数の他の情報を列挙し、該情報は図1のストレージ装置120の性能(よって、ストリーミング性能)に影響する。これらの因子の全ては、図6のストリーミング性能の一部として考慮され、よって図1のストレージ管理部135への報告の対象であり得る。
オーグメンタ920はストレージ管理部135(又は図1のマシン105内の幾つかの他の構成要素)が測定できる、ストレージ装置に依存しない考慮事項を用いて図6のストリーミング性能605を補強する。オーグメンタ920は、他の可能性の中で、ストレージ管理部135と図1のストレージ装置との間で通信するのに必要な時間、又は図1のプロセッサ110と図1のストレージ装置120と間の連結による帯域幅を測定できる。ストレージ管理部135は、オーグメンタ920により決定された、この情報を図6のストリーミング性能605に加えて図1のストレージ装置120に関する追加情報として提供できる。
以上、全てで3個のストレージ装置は、装置ID_3を有するストレージ装置のSLC媒体のための低いものから、装置ID_1を有するストレージ装置のSMR媒体のための極めて高いものまで多様なガーベージコレクションの待ち時間を有する(「低い」、「中間」、「高い」、「極めて高い」のような任意的記述子を利用するよりは、数値的待ち時間が代わりに使用できる。)。以上全てで3個のストレージ装置は、なお相異なるバッファサイズを提供する。つまり、装置ID_3を有するストレージ装置はSLC及びMLC媒体の間でその1GBのバッファを共有する。
任意の媒体類型が任意の使用事例に対してデータを格納するのに利用できるけれども、特定の媒体類型は、相異なる使用事例によっては他の媒体類型より良く適合する場合がある。つまり、(必要な使用事例に依存するが、特定の環境では単一の媒体類型が全ての使用事例に対して最適になる場合があり得るが、)任意の特定の媒体類型が全ての使用事例に対して最適と考えられることはあまり無い。従って、長期間のデータ格納のためにはSMRが、SLC又はMLCの中の何れか1つより選好され、反面にストレージ内コンピューティング及び高い処理能力の使用事例のためには、SLCが選好される。
例えば、長期的な格納の使用事例の場合には、高い加重を意味する0.25のような低い値がSMRに提供され、一方SLC及びMLCには0.5及び/又は0.75のような高い値(即ち、低い加重)が与えられる。逆に、ストレージ内コンピューティング及び高い処理能力の使用事例の場合には、SLCには0.25のような、低い値(高い加重)が与えられ、一方MLC及びSMRには0.5及び0.75のような、高い値(即ち、低い加重)が与えられる。(多様な媒体類型に対して図示された値は、単に例示的な値であり、そして任意の所望の値がその代わりに使用され得る。)何れの接近法を用いるにせよ、特定の使用事例のための最適のストレージ装置は、媒体類型の使用事例とどのように相互作用するのかを考慮に入れて決定される。
例えば、データが長期の格納のためライトされると、データの速い接近及び頻繁な変化を要求する場合と異なる加重値の集合が適用される。加重値は、なお追加情報に基づいて設定され得る(又は調整され得る)。例えば、図8のアプリケーション805はその所望の加重値を設定できるが、しかし図1のマシン105により提供される約束されたQoSに基づいて(又は、図8アプリケーション805が何のために支払うかに基づいて)加重値はターゲットQoSを反映するように、上へ又は下へ調整される。
加重値が図8のアプリケーション805により提供されると、多重アプリケーションストリーム810-1~810-3(又は、相異なるアプリケーション805のためのアプリケーションストリーム)の各々が、図1の同一のストレージ装置120に対して同一の装置ストリームを要請すれば(又は後述するように、ストリームプール(pool)の容量を超過するのに十分な装置ストリームをストリームプールに対して要請すれば)、より良い加重和を有するアプリケーションストリームには要請された通りの装置ストリームが割り当てられる。一方、他のアプリケーションストリームには必ずしも最適ではない装置ストリーム(例えば、必ずしも最適ではない装置、又は必ずしも最適ではないストリームプールと関連された装置ストリーム)が割り当てられる。
図10(A)の表1005を用いると、斯かるアプリケーションストリームの双方は装置ID_3、ストリームID_12~_13を有するストレージ装置に向かうであろう。しかし、第2アプリケーションストリームはSLCを選好するかも知れないが、ストリームID_4~_11、又は、ストリームID_14~_17を用いるMLCでも満足できる。しかし、ストリームID_12~_13のみが第1アプリケーションストリームに必要な低い待ち時間を提供する。第1アプリケーションストリームにストリームID_12~_13の中で1つが割り当てられないと、第1アプリケーションストリームには相当に否定的な影響を被る。従って、選好するストリームが割り当てられなかった場合のアプリケーションストリームへの影響の大きさを比較することで、加重和に基づくならば他のアプリケーションがその装置ストリームを割り当てられるべき場合であっても、アプリケーションストリームはそれを選好する装置ストリームに割り当てられる場合がある。
例えば、幾つかの装置ストリームは、反応の速い高性能ストリームとして分類され(様々な他の可能性がある中で、例えば、図1のストレージ装置120内の処理のためのストリームには高い優先順位が割り当てられ、又は、該ストリームは高い帯域幅、又は、低い待ち時間で動作する)、反面に他のストリームは低性能ストリームとして分類される(例えば、該ストリームは古いストレージ装置により提供され、又は該ストリームは遅い連結又はまだ安定的ではない連結を利用するストレージ装置により支援される)。
(別の選択肢として、図6のストリーミンング性能が変更されると、マッパー1205は単に再呼出しされて、図1のストレージ装置120のため、図6のストリーミング性能605を再生成する。)
そして、加重値割り当て機1215は、図8のソフトウェアストリーム810-1~810-3のために図4の装置ストリーム425-1~425-3を選択するに当たり使用するべき加重値を、ソフトウェアストリーム810-1~810-3に対するソフトウェアストリーム要求1120に割り当てる。加重値の割り当て機1215は、任意のソースから加重値を割り当てる。例えば、加重値は特定の使用事例のための使用者から、又は多様な使用事例のため、ストリーミング性能のための加重値を格納するファイルから出てくる。
装置ストリーム分類機1305は、図4の装置ストリーム425-1~425-3を等級別に、又はプール別に分類し、ソフトウェアストリーム分類機1310は、図8のソフトウェアストリーム810-1~810-3を等級別に同様に分類する。これにより、マッパー1205は、対応する等級に基づいて図8のソフトウェアストリーム810-1~810-3と図4の装置ストリーム425-1~425-3とをマッチングできる。
従来のシステムでは、図8のアプリケーション805からのデータは、結局図3のストレージ装置120-1~120-5の何れかに格納配置されるが、その際、組織的配置が無く、図3のストレージ装置120-1~120-5におけるストリーミング特性に関する考慮が無ない。しかし、本発明の実施例においては、図8の相異なるソフトウェアストリーム810-1~810-3と関連されたデータは、特定の相異なるストレージ装置へ送信される。この結果は低性能ストリームのデータに対して高性能の資源を浪費するのを防止する。例えば、長期間格納されるデータはフラッシュメモリのストレージ装置よりHDDに格納され得る。
二番目の例で、図1のストレージ装置120は図6のストリーミング性能605が変化したことを感知し、これは、セルフインベントリを反復し、図1のストレージ管理部135へ報告することを正当化する。ステップ1415、1420、1430の反復は、図1のストレージ装置120が、図6のストリーミング性能605を図1の多重のストレージ管理部135に報告する場合、特に適切である。つまり、図1の1つのストレージ管理部135の動作は、他のストレージ管理部に影響を与え得るが、他のストレージ管理部は、図1のストレージ装置120が図6のストリーミング性能605の変化を、それらに報告しないと、その変化を知ることができない。
三番目の例で、ステップ1415、1420,1430が図6のストリーミング性能605を図1の1つのストレージ管理部135に報告することを説明した通りに、図1のストレージ装置120はストリーミング性能を1つ以上の図1のストレージ管理部135に報告する必要がある。
(図6のストリーミング性能605を図1のストレージ管理部135に報告する際に、ステップ1415を必ずしも多重回遂行せず、ステップ1420、1430のみを簡単に反復していると、ステップ1415が、なお反復される必要がある状況が有り得る。例えば、図1の相異なるストレージ管理部135が、報告された図6の相異なるストリーミング性能605を所望する場合である。)
そうではないと(即ち、オートストリーミング性能が変化していない場合)、ステップ1515で、図5のアプデイト感知器520は、任意の他のストリーミング性能が変化したかを確認する。つまり、例えば、他の可能性と並んで、ストレージ装置の処理能力、ストレージ装置のリード/ライト/消去の待ち時間、割り当てられたか、又は割り当てが解除されたストリーム、大きなストレージ内コンンピューティング作業の始まりなどである。斯かる確認の中で何れか一つが肯定的な結果となる(即ち、変化が確認された)と、ステップ1520で、図1のストレージ装置120は図6のストリーミング性能605が変化したことを知る。そうではないと、ステップ1525で、図1のストレージ装置120は、図6のストリーミング性能605が変化しないことを知る。
叙述1.本発明の実施例はストレージ装置を含み、該ストレージ装置は、
データのためのストレージと、
前記ストレージに前記データをライト(write)するのに用いられる多数の装置ストリームと、
前記ストレージ装置のストリーミング性能をインベントリ(inventory)するストリーミング性能分析器と、
前記ストレージ装置の前記ストリーミング性能を少なくとも1つストレージ管理部に送信する送信機と、を包含する。
叙述2.本発明の実施例は叙述1によるストレージ装置を包含するが、
前記ストレージ装置は次のフォーマットの中で1つを支援する。つまり、 NVMeoF(Non-Volatile Memory express over Fabric)装置、シングルド(shingled)ハードディスクドライブ、フラッシュメモリのストレージ装置、及び混合された媒体ストレージ装置。
叙述3.本発明の実施例は叙述2によるストレージ装置を包含するが、前記フラッシュメモリのストレージ装置はフラッシュメモリのSSD(Solid State Drive)を包含する。
叙述4.本発明の実施例は叙述2によるストレージ装置を包含するが、前記混合された媒体ストレージは混合された媒体のSSDを包含する。
叙述5.本発明の実施例は叙述1によるストレージ装置を包含し、前記ストレージ装置は前記ストリーミング選択分析器及び前記送信機を含むコントローラをさらに包含する。
叙述6.本発明の実施例は叙述1によるストレージ装置を包含するが、
前記ストレージ装置は前記ストレージ装置の前記ストリーミング性能にアプデイトがある時を感知するように動作するアプデイト感知器をさらに包含し、
前記ストリーミング性能分析器は前記ストレージ装置の前記アプデイトされたストリーミング性能を再インベントリするように動作し、そして
前記送信機は前記ストレージ装置の前記アプデイトされたストリーミング性能を前記少なくとも1つのストレージ管理部に送信するように動作する。
叙述7.本発明の実施例は叙述1によるストレージ装置を包含するが、
前記ストリーミング性能分析器は前記ストレージ装置の前記ストリーミング性能を周期的にインベントリするように動作し、そして
前記送信機は各インベントリ以後に前期ストレージ装置の前記ストリーミング性能を前記少なくとも1つのストレージ管理部に送信するように動作する。
叙述8.本発明の実施例は叙述1によるストレージ装置を包含するが、
前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング(In-Storage Computing: ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述9.本発明の実施例は叙述1によるストレージ装置を包含するが、
データのための前記ストレージは第1類型の第1ストレージ及び第2類型の第2ストレージを含み、前記第1類型は前記第2類型と相異なり、
前記ストレージ装置により支援される前記多数の装置ストリームの中で第1装置ストリームは前記第1ストレージと関連され、そして
前記ストレージ装置により支援される前記多数の装置ストリームの中で第2装置ストリームは前記第2ストレージと関連される。
叙述10.本発明の実施例は叙述1によるストレージ装置を包含し、前記ストレージ装置は前記少なくとも1つのストレージ管理部から前期ストレージ装置の前記ストリーミング性能に対する要請を受信する受信機をさらに包含する。
叙述11.本発明の実施例はストレージ管理部を包含し、ストレージ管理部は、
少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能、少なくとも1つのソフトウェアストリームに対する要求及び前記少なくとも1つのソフトウェアストリームからの要請を受信する受信機と、
前記少なくとも1つのソフトウェアストリーム及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対する前記要求に対応する前記少なくとも1つのストレージ装置により支援される多数の装置ストリームの中で1つを選択する装置ストリーム選択機と、及び
前記要請を前記少なくとも1つのストレージ装置の中で、前記多数の装置ストリームの中で選択された1つを支援する第1ストレージ装置に送信する送信機を包含する。
叙述12.本発明の実施例は叙述11によるストレージ管理部を包含し、ストレージ管理部はストレージ装置に依存しない考慮事項を用いて前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能を補強するオーグメンタ(augmenter)をさらに包含する。
叙述13.本発明の実施例は叙述11によるストレージ管理部を包含し、前記ストレージ管理部はホストマシン上のプロセッサ上で実行されるソフトウェアを用いて具現される。
叙述14.本発明の実施例は叙述11によるストレージ管理部を包含し、 前記ストレージ管理部はホストマシン内でハードウェアモジュールとして具現される。
叙述15.本発明の実施例は叙述11によるストレージ管理部を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング(In-Storage Ccomputing: ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述16.本発明の実施例は叙述11のストレージ管理部を包含するが、前記ストリーム選択機は前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つへのマッピング(mapping)を生成するマッパー(mapper)を包含する。
叙述17.本発明の実施例は叙述16によるストレージ管理部を包含するが、
前記受信機は前記少なくとも1つのストレージ装置の少なくとも1つのアプデイトされたストリーミング性能を受信するように動作し、そして
前記装置ストリーム選択機は前記少なくとも1つのストレージ装置の前記少なくとも1つのアプデイトされたストリーミング性能に対応する前記マッピングをアプデイトするマッピングアプデイタをさらに包含する。
叙述18.本発明の実施例は叙述16によるストレージ管理部を包含するが、前記マッパーは、
前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの各々を少なくとも二つの等級の中で一つに割り当てる装置ストリーム分類機と、及び
前記少なくとも1つのソフトウェアストリームの各々を前記少なくとも二つの等級の中で一つに割り当てるソフトウェアストリーム分類機を包含し、
前記装置ストリーム選択機は前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で、前記少なくとも1つのソフトウェアストリームと共に等級内にある1つを選択するように動作する。
叙述19.本発明の実施例は叙述16によるストレージ管理部を包含し、ストレージ管理部は前記マッピングを格納するデータ構造のためのストレージをさらに包含する。
叙述20.本発明の実施例は叙述11によるストレージ管理部を包含し、ストレージ管理部は前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能を格納するデータ構造のためのストレージをさらに包含する。
叙述21.本発明の実施例は叙述11によるストレージ管理部を包含し、前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能は、前記少なくとも1つのストレージ装置が第1類型の第1ストレージと第2類型の第2ストレージとの包含を規定し、前記第1類型は前記第2類型と相異なる。
叙述22.本発明の実施例は叙述11によるストレージ管理部を包含し、前記少なくとも1つのストレージ装置は第1ストレージ装置及び第2ストレージ装置を包含し、前記第1ストレージ装置と前記第2ストレージ装置とは相異なるストリーミング性能を支援する。
叙述23.本発明の実施例は叙述22によるストレージ管理部を包含するが、
前記第1ストレージ装置は第1類型のストレージを支援し、そして
前記第2ストレージ装置は第2類型のストレージを支援し、前記第2類型のストレージは前記第1類型のストレージと相異なる。
叙述24.本発明の実施例は叙述22によるストレージ管理部を包含するが、前記相異なるストリーミング性能は相異なる多数の装置ストリーム、相異なる消去ブロックサイズ、相異なるストレージ容量、相異なるオートストリーミング性能、相異なる最適のストリームライトのサイズ、相異なるストレージ内コンピューティング性能、相異なるプログラム及び消去速度のパラメータ、相異なるバッファサイズ、相異なる処理能力の制限、そして相異なるファームウェアバージョンを包含する。
叙述25.本発明の実施例は叙述11によるストレージ管理部を包含するが、
前記少なくとも1つのソフトウェアストリームに対する前記要求は前記少なくとも1つのソフトウェアストリームに対する少なくとも二つの要求を包含し、
前記装置ストリーム選択機は加重値を前記少なくとも1つのソフトウェアストリームに対する前記少なくとも二つの要求に割り当てる加重値の割り当て機を包含し、そして
前記装置ストリーム選択機は前記加重値及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するように動作する。
叙述26.本発明の実施例は方法を包含し、方法は、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップと、
前記ストレージ装置と通信する少なくとも1つのストレージ管理部を識別するステップと、及び
前記ストリーミング性能を前記ストレージ装置で前記少なくとも1つのストレージ管理部に報告するステップと、を包含する。
叙述27.本発明の実施例は叙述26による方法を包含し、方法は、
前記ストレージ装置の第2ストリーミング性能を後で判別するステップと、及び
前記第2ストリーミング性能を前記少なくとも1つのストレージ管理部に報告するステップと、をさらに包含する。
叙述28.本発明の実施例は叙述26による方法を包含するが、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップは前記ストレージ装置の前記ストリーミング性能を前記ストレージ装置により周期的に判別するステップを包含し、そして
前記ストリーミング性能を前記ストレージ装置で前記少なくとも1つのストレージ管理部に報告するステップは前記ストリーミング性能を前記ストレージ装置で前記少なくとも1つのストレージ管理部に周期的に報告するステップを包含する。
叙述29.本発明の実施例は叙述26による方法を包含し、方法は、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップと、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別した後、前記ストレージ装置の第2ストリーミング性能を判別するステップと、及び
前第2ストリーミング性能を前記少なくとも1つのストレージ管理部に報告するステップを更に包含する。
叙述30.本発明の実施例は叙述29による方法を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置により支援される多数の装置ストリームの中で1つを前記少なくとも1つのストレージ管理部の中で1つに割り当てるステップを包含する。
叙述31.本発明の実施例は叙述29による方法を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置のオートストリーミング性能を変更するステップを包含する。
叙述32.本発明の実施例は叙述26による方法を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング(in-storage computing: ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述33.本発明の実施例は叙述32による方法を包含するが、
前記ストレージ装置の前記物理的異種性は第1類型の第1ストレージ及び第2類型の第2ストレージを包含し、前記第1類型は前記第2類型と相異なり、
前記ストレージ装置により支援される前記装置ストリームの中で第1装置ストリームは前記第1ストレージと関連され、そして
前記ストレージ装置により支援される前記装置ストリームの中で第2装置ストリームは前記第2ストレージと関連される。
叙述34.本発明の実施例は叙述26による方法を包含するが、前記ストレージ装置はNVMeoF(Non-Volatile Memory express over Fabric)装置、シングルドハード(shingled)ディスクドライブ、フラッシュメモリのストレージ装置及び混合された媒体のストレージ装置を包含する集合から導出される。
叙述35.本発明の実施例は叙述34による方法を包含するが、前記フラッシュメモリのストレージ装置はフラッシュメモリSSD(Solid State Drive)を包含する。
叙述36.本発明の実施例は叙述34による方法を包含するが、前記混合された媒体のストレージ装置は混合された媒体SSDを包含する。
叙述37.本発明の実施例は叙述26による方法を包含するが、
前記方法は前記少なくとも1つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する要請を受信するステップをさらに包含し、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップは、前記少なくとも1つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記ストレージ装置の前記ストリーミング性能を判別するステップを包含し、そして
前記ストリーミング性能を前記少なくとも1つのストレージ管理部に報告するステップは前記ストリーミング性能を前記少なくとも1つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記少なくとも1つのストレージ管理部に報告するステップを包含する。
叙述38.本発明の実施例は方法を包含し、方法は、
多数の装置ストリームを支援する少なくとも1つのストレージ装置の少なくとも2つのストリーミング性能を受信するステップと、
少なくとも1つのソフトウェアストリームから要請を受信するステップと、
前記少なくとも1つのソフトウェアストリームの少なくとも1つの要求を判別するステップと、
前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するステップと、及び
前記多数の装置ストリームの中で前記選択された少なくとも一つを用いて前記要請を前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのストレージ装置に送信するステップと、を包含する。
叙述39.本発明の実施例は叙述38による方法を包含し、前記少なくとも2つのストリーミング性能は多数の装置ストリーム、消去ブロックサイズ、ストレージ容量、オートストリーミング性能、最適のストリームライトのサイズ、ストレージ内コンピューティング性能、プログラム及び消去速度のパラメータ、バッファサイズ、処理能力の制限及びファームウェアバージョンの中で少なくとも1つに対して相異なる。
叙述40.本発明の実施例は叙述38による方法を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング(In-Storage Computing: ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述41.本発明の実施例は叙述38による方法を包含し、方法はストレージ装置に依存しない考慮事項を用いて前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能を補強するステップと、をさらに包含する。
叙述42.本発明の実施例は叙述38による方法を包含し、前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するステップは、
前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つへのマッピング(mapping)を生成するステップと、及び
前記少なくとも1つのソフトウェアストリームに対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも1つを選択する前記マッピングを用いるステップと、を包含する。
叙述43.本発明の実施例は叙述42による方法を包含するが、
前記少なくとも1つのストレージ装置の少なくとも1つのアプデイトされたストリーミング性能を受信するステップと、及び
前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのストレージ装置の前記少なくとも1つのアプデイトされたストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも1つへの前記マッピングをアプデイトするステップと、をさらに包含する。
叙述44.本発明の実施例は叙述42による方法を包含するが、前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つへのマッピング(mapping)を生成するステップは、
前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの各々を前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能を用いて少なくとも2つの等級の中で1つに割り当てるステップと、
前記少なくとも1つのソフトウェアストリームを前記少なくとも2つの等級の中で1つに割り当てるステップと、及び
前記少なくとも1つのソフトウェアストリームを同一な等級を有する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも1つに割り当てることで前記マッピングを生成するステップと、を包含する。
叙述45.本発明の実施例は叙述38による方法を包含するが、多数の装置ストリームを支援する少なくとも1つのストレージ装置の少なくとも2つのストリーミング性能を受信するステップは、
少なくとも第1類型のストレージを支援する少なくとも第1ストレージ装置の少なくとも第1ストリーミング性能を受信するステップと、及び
少なくとも第2類型のストレージを支援する少なくとも第2ストレージ装置の少なくとも第2ストリーミング性能を受信するステップを包含し、前記第2類型のストレージは前記第1類型のストレージと相異なる。
叙述46.本発明の実施例は叙述38による方法を包含するが、前記少なくとも1つのストレージ装置は第1類型の第1ストレージ及び第2類型の第2ストレージを包含し、前記第1類型は前記第2類型と相異なる。
叙述47.本発明の実施例は叙述38による方法を包含するが、
前記少なくとも1つのソフトウェアストリームの少なくとも1つの要求を判別するステップは前記少なくとも1つのソフトウェアストリームの少なくとも2つの要求を判別するステップを包含し、前記少なくとも2つの要求は前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能の部分集合を表し、そして
前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するステップは、
加重値を前記少なくとも1つのソフトウェアストリームの前記少なくとも2つの要求に割り当てるステップと、及び
前記加重値及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリ-ムの中で前記少なくとも1つを選択するステップと、を包含する。
叙述48.本発明の実施例は非一時的ストレージ媒体を含む物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップと、
前記ストレージ装置と通信する少なくとも1つのストレージ管理部を識別するステップと、及び
前記ストリーミング性能を前記ストレージ装置で前記少なくとも1つのストレージ管理部に報告するステップを惹起する格納されたそれに対する命令語を有する。
叙述49.本発明の実施例は叙述48による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
前記ストレージ装置の第2ストリーミング性能を後で判別するステップと、及び
前記第2ストリーミング性能を前記少なくとも1つのストレージ管理部に報告するステップを惹起する格納されたそれに対する追加の命令語を有する。
叙述50.本発明の実施例は叙述48による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップと、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別した後、前記ストレージ装置の第2ストリーミング性能を判別するステップと、及び
前第2ストリーミング性能を前記少なくとも1つのストレージ管理部に報告するステップを惹起する格納されたそれに対する追加の命令語を有する。
叙述51.本発明の実施例は叙述48による物品を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置により支援される多数の装置ストリームの中で1つを前記少なくとも1つのストレージ管理部の中で1つに割り当てるステップを包含する。
叙述52.本発明の実施例は叙述50による物品を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置のオートストリーミング性能を変更するステップを包含する。
叙述53.本発明の実施例は叙述48による物品を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング(In-Storage Computing: ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述54.本発明の実施例は叙述53による物品を包含するが、
前記ストレージ装置の前記物理的異種性は第1類型の第1ストレージ及び第2類型の第2ストレージを包含し、前記第1類型は前記第2類型と相異なり、
前記ストレージ装置により支援される前記装置ストリームの中で第1装置ストリームは前記第1ストレージと関連され、そして
前記ストレージ装置により支援される前記装置ストリームの中で第2装置ストリームは前記第2ストレージと関連される。
叙述55.本発明の実施例は叙述48による物品を包含するが、前記ストレージ装置はNVMeoF(Non-Volatile Memory express over Fabric)装置、シングルドハード(shingled)ディスクドライブ、フラッシュメモリのストレージ装置及び混合された媒体のストレージ装置を包含する集合から導出される。
叙述56.本発明の実施例は叙述55による物品を包含するが、前記フラッシュメモリのストレージ装置はフラッシュメモリSSD(Solid State Drive)を包含する
叙述57.本発明の実施例は叙述55による物品を包含するが、前記混合された媒体のストレージ装置は混合された媒体SSDを包含する。
叙述58.本発明の実施例は叙述48による物品を包含するが、
前記方法は前記少なくとも1つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する要請を受信するステップをさらに包含し、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップは、前記少なくとも1つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記ストレージ装置の前記ストリーミング性能を判別するステップを包含し、そして
前記ストリーミング性能を前記ストレージ装置で前記少なくとも1つのストレージ管理部に報告するステップは前記ストリーミング性能を前記少なくとも1つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記少なくとも1つのストレージ管理部に報告するステップを包含する。
叙述59.本発明の実施例は非一時的ストレージ媒体を含む物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
多数の装置ストリームを支援する少なくとも1つのストレージ装置の少なくとも2つのストリーミング性能を受信するステップと、
少なくとも1つのソフトウェアストリームから要請を受信するステップと、
前記少なくとも1つのソフトウェアストリームの少なくとも1つの要求を判別するステップと、
前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するステップと、及び
前記多数の装置ストリームの中で前記選択された少なくとも一つを用いて前記要請を前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのストレージ装置に送信するステップを惹起する格納されたそれに対する命令語を有する。
叙述60.本発明の実施例は叙述59による物品を包含するが、前記少なくとも2つのストリーミング性能は多数の装置ストリーム、消去ブロックサイズ、ストレージ容量、オートストリーミング性能、最適のストリームライトのサイズ、ストレージ内コンピューティング性能、プログラム及び消去速度のパラメータ、バッファサイズ、処理能力の制限及びファームウェアバージョンの中で少なくとも1つに対して相異なる。
叙述61.本発明の実施例は叙述59による物品を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング(in-storage computing: ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述62.本発明の実施例は叙述59による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、ストレージ装置に依存しない考慮事項を用いて前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能を補強するステップ惹起する格納されたそれに対する追加命令語を有する。
叙述63.本発明の実施例は叙述59による物品を包含するが、前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するステップは、
前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つへのマッピング(mapping)を生成するステップと、及び
前記少なくとも1つのソフトウェアストリームに対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも1つを選択する前記マッピングを用いるステップと、を包含する。
叙述64.本発明の実施例は叙述63による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
前記少なくとも1つのストレージ装置の少なくとも1つのアプデイトされたストリーミング性能を受信するステップと、及び
前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのストレージ装置の前記少なくとも1つのアプデイトされたストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも1つへの前記マッピングをアプデイトするステップを惹起する格納されたそれに対する追加命令語を有する。
叙述65.本発明の実施例は叙述63による物品を包含するが、前記少なくとも1つのソフトウェアストリームで前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つへのマッピング(mapping)を生成するステップは、
前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの各々を前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能を用いて少なくとも2つの等級の中で1つに割り当てるステップと、
前記少なくとも1つのソフトウェアストリームを前記少なくとも2つの等級の中で1つに割り当てるステップと、及び
前記少なくとも1つのソフトウェアストリームを同一な等級を有する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも1つに割り当てることで前記マッピングを生成するステップと、を包含する。
叙述66.本発明の実施例は叙述59による物品を包含するが、多数の装置ストリームを支援する少なくとも1つのストレージ装置の少なくとも2つのストリーミング性能を受信するステップは、
少なくとも第1類型のストレージを支援する少なくとも第1ストレージ装置の少なくとも第1ストリーミング性能を受信するステップと、及び
少なくとも第2類型のストレージを支援する少なくとも第2ストレージ装置の少なくとも第2ストリーミング性能を受信するステップを包含し、前記第2類型のストレージは前記第1類型のストレージと相異なる。
叙述67.本発明の実施例は叙述59による物品を包含するが、前記少なくとも1つのストレージ装置は第1類型の第1ストレージ及び第2類型の第2ストレージを包含し、前記第1類型は前記第2類型と相異なる。
叙述68.本発明の実施例は叙述59による物品を包含するが、
前記少なくとも1つのソフトウェアストリームの少なくとも1つの要求を判別するステップは前記少なくとも1つのソフトウェアストリームの少なくとも2つの要求を判別するステップを包含し、前記少なくとも2つの要求は前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能の部分集合を表し、そして
前記少なくとも1つのソフトウェアストリームの前記少なくとも1つの要求及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも1つを選択するステップは、
加重値を前記少なくとも1つのソフトウェアストリームの前記少なくとも2つの要求に割り当てるステップと、及び
前記加重値及び前記少なくとも1つのストレージ装置の前記少なくとも1つのストリーミング性能に対応する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリ-ムの中で前記少なくとも1つを選択するステップと、を包含する。
110 プロセッサ
115 メモリ
120 ストレージ装置
120-1 シングルドHDD
120-2 新型SSD(フラッシュメモリストレージ装置)
120-3 混合媒体ストレージ装置
120-4 旧型SSD(フラッシュメモリストレージ装置)
120-5 NVMeoF_SSD(フラッシュメモリストレージ装置)
125 メモリコントローラ
135 ストレージ管理部
205 クロック
210 コネクタ
215 バス
220 インタフェース
225 入出力エンジン
305 プロトコル
305-1 旧型プロトコル(SATA、SCSI)
305-2 PCIe(x4)
305-3 SAS
305-4 PCIe(x2)
305-5 イーサネット
405 インタフェースロジック
410 コントローラ、SSDコントローラ
415 ストレージ
415-1~415-8 フラッシュメモリチップ
420、420-1~420-4 チャンネル
425、425-1~425-3 装置ストリーム
430 フラッシュ変換階層
505,905 受信機
510 ストリーミング性能分析器
515,915 送信機
520 アプデイト感知器
605 ストリーミング性能
610 装置ストリームの個数
615 消去ブロックサイズ
620 物理的異種性
625 オートストリーミング性能
630 最適のストリームライトサイズ
635 ストレージ内コンピューティング
640 プログラム/消去速度のパラメータ
645 バッファサイズ
650 処理能力の制限
655 ファームウェアバージョン
705 要請
805 アプリケーション
810、810-1~810-3 ソフトウェアストリーム、ソフトウェアストリーム1~3
815 要請
910 装置ストリーム選択機
920 オーグメンタ
925 ストレージ
930 ストリーミング性能関連データ構造
935 マッピング関連データ構造
1005 表
1010 表
1110 QoS要求
1115 装置ストリームを分類
1120 ソフトウェアストリーム要求
1125 装置ストリームを選択
1130 装置ストリームを利用
1205 マッパー
1210 マッピングアプデイタ
1215 加重値割り当て器
1305 装置ストリーム分類器
1310 ソフトウェアストリーム分類器
Claims (23)
- ストレージ装置であって、
第1類型の第1ストレージ及び前記第1類型とは異なる第2類型の第2ストレージを含むデータのためのストレージと、
前記第1ストレージ及び前記第2ストレージからのデータのリード(read)と前記第1ストレージ及び前記第2ストレージへのデータのライト(write)とを制御する1つ以上のコントローラと、
前記ストレージへのデータのライトに用いられる多数の装置ストリームと、
前記ストレージ装置のストリーミング性能のインベントリ(inventory)を作成する、少なくとも一部がプロセッサで実装されるストリーミング性能分析器と、
前記ストレージ装置のストリーミング性能を少なくとも1つのストレージ管理部に送信する送信機と、を備え、
前記第1ストレージは、少なくとも第1チャネル及び第2チャネルによりアクセスされ、
前記第2ストレージは、少なくとも第3チャネル及び第4チャネルによりアクセスされ、
前記ストレージ装置により支援される前記多数の装置ストリームの中の第1装置ストリームは、前記第1ストレージに関連し、
前記ストレージ装置により支援される前記多数の装置ストリームの中の第2装置ストリームは、前記第2ストレージに関連し、
前記多数の装置ストリームの中の第1装置ストリームは、前記第1チャネル又は前記第2チャネルのいずれかを介して前記第1ストレージに第1データを格納するように用いられ、
前記多数の装置ストリームの中の第2装置ストリームは、前記第3チャネル又は前記第4チャネルのいずれかを介して前記第2ストレージに第2データを格納するように用いられ、
前記ストリーミング性能は、前記ストレージ装置の消去ブロックサイズ、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームのライトサイズ、前記ストレージ装置により支援されるストレージ内コンピューティング(In-Storage Computing:ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、並びに前記ストレージ装置により支援される装置ストリームの処理能力(throughput)の制限、の全てを含む集合から導出されることを特徴とするストレージ装置。 - 前記ストレージ装置は、前記ストレージ装置のストリーミング性能にアップデイトがある場合を感知するように動作する、少なくとも一部が前記プロセッサで実装されるアップデイト感知器を更に含み、
前記ストリーミング性能分析器は、前記ストレージ装置のアップデイトされたストリーミング性能のインベントリを再作成するように動作し、
前記送信機は、前記ストレージ装置のアップデイトされたストリーミング性能を前記少なくとも1つのストレージ管理部に送信するように動作することを特徴とする請求項1に記載のストレージ装置。 - 前記ストレージ管理部は、ソフトウェアストリームのQoS(Quality of Service)要求及び前記ストレージ装置のストリーミング性能の中の少なくとも一部に基づいて1つ以上の操作を実行するように動作することを特徴とする請求項1に記載のストレージ装置。
- 前記QoS要求は、最少帯域幅、最大帯域幅、優先レベル、最大レイテンシ、及び好ましいレイテンシレベルの中の少なくとも1つを含むことを特徴とする請求項3に記載のストレージ装置。
- 前記ストレージ管理部は、全てのQoS要求の合計が前記ストレージ装置の性能を超えないことを保証するように動作することを特徴とする請求項4に記載のストレージ装置。
- 少なくとも1つのストレージ装置からの前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能、少なくとも1つのソフトウェアストリームに対するQoS(Quality of Service)要求、及び前記少なくとも1つのソフトウェアストリームからの要請を受信する受信機と、
前記少なくとも1つのソフトウェアストリームに対するQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのストレージ装置により支援される多数の装置ストリームの中の1つを選択する、少なくとも一部がプロセッサで実装される装置ストリーム選択機と、
前記多数の装置ストリームの中から選択される1つを支援する前記少なくとも1つのストレージ装置の中の第1ストレージ装置に前記要請を送信する送信機と、を備え、
前記多数の装置ストリームの中から選択される1つに関連するデータは、前記ストレージ装置により提供される少なくとも2つのチャネルの中のいずれかを通じてライト(write)され、
前記第1ストレージ装置は、前記ストレージ装置からのデータをリード(read)し前記ストレージ装置へのデータをライトするように制御する第1コントローラを含み、
前記QoS要求は、最少帯域幅、最大帯域幅、優先レベル、最大レイテンシ、又は好ましいレイテンシの中の少なくとも1つを含み、
前記少なくとも1つのソフトウェアストリームは、アプリケーションによって規定され、
前記ストリーミング性能は、前記ストレージ装置の消去ブロックサイズ、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームのライトサイズ、前記ストレージ装置により支援されるストレージ内コンピューティング(ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、並びに前記ストレージ装置により支援される装置ストリームの処理能力の制限、の全てを含む集合から導出されることを特徴とするストレージ管理部。 - ストレージ装置に依存しない考慮事項を用いて前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能を補強する、少なくとも一部が前記プロセッサで実装されるオーグメンタ(augmenter)を更に含み、
前記ストレージ装置に依存しない考慮事項は、前記ストレージ管理部と前記少なくとも1つのストレージ装置との間の帯域幅、又は前記ストレージ管理部と前記少なくとも1つのストレージ装置との間の通信に要求される時間の中の少なくとも1つを含むことを特徴とする請求項6に記載のストレージ管理部。 - 前記装置ストリーム選択機は、前記少なくとも1つのソフトウェアストリームのQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのソフトウェアストリームから前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つへのマッピング(mapping)を生成する、少なくとも一部が前記プロセッサで実装されるマッパー(mapper)を含むことを特徴とする請求項6に記載のストレージ管理部。
- 前記マッピングを格納するデータ構造のためのストレージを更に含むことを特徴とする請求項8に記載のストレージ管理部。
- 前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能を格納するデータ構造のためのストレージを更に含むことを特徴とする請求項6に記載のストレージ管理部。
- 前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能は、前記少なくとも1つのストレージ装置が第1類型の第1ストレージ及び前記第1類型とは異なる第2類型の第2ストレージを含むことを規定することを特徴とする請求項6に記載のストレージ管理部。
- 前記少なくとも1つのストレージ装置は、第1ストレージ装置及び第2ストレージ装置を含み、
第1コントローラを含む前記第1ストレージ装置と第2コントローラを含む前記第2ストレージ装置とは、異なるストリーミング性能を支援することを特徴とする請求項6に記載のストレージ管理部。 - 前記第1ストレージ装置は、第1類型のストレージを支援し、
前記第2ストレージ装置は、前記第1類型のストレージとは異なる第2類型のストレージを支援することを特徴とする請求項12に記載のストレージ管理部。 - 前記異なるストリーミング性能は、異なる消去ブロックサイズ、異なるストレージ容量、異なるオートストリーミング性能、異なる最適のストリームのライトサイズ、異なるストレージ内コンピューティング性能、異なるプログラム及び消去速度のパラメータ、異なるバッファサイズ、並びに異なる処理能力の制限を含むことを特徴とする請求項12に記載のストレージ管理部。
- 前記少なくとも1つのソフトウェアストリームに対するQoS要求は、前記少なくとも1つのソフトウェアストリームに対する少なくとも2つのQoS要求を含み、
前記装置ストリーム選択機は、前記少なくとも1つのソフトウェアストリームに対する少なくとも2つのQoS要求に加重値を割り当てる、少なくとも一部が前記プロセッサで実装される加重値の割り当て機を含み、
前記装置ストリーム選択機は、前記少なくとも1つのソフトウェアストリームに対する要求、前記加重値、及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つを選択するように動作することを特徴とする請求項6に記載のストレージ管理部。 - 前記ストレージ管理部は、全てのQoS要求の合計が前記ストレージ装置の性能を超えないことを保証するように動作することを特徴とする請求項6に記載のストレージ管理部。
- ストレージ管理部で、多数の装置ストリームを支援する少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能を受信するステップと、
ストレージ管理部で、アプリケーションによって規定された少なくとも1つのソフトウェアストリームからの要請を受信するステップと、
前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS(Quality of Service)要求を判別するステップと、
前記ストレージ管理部で、前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つを選択するステップと、
前記ストレージ管理部が前記多数の装置ストリームの中から選択される少なくとも1つを用いて、前記少なくとも1つのソフトウェアストリームからの前記要請を前記少なくとも1つのストレージ装置に送信するステップと、を有し、
前記少なくとも1つのQoS要求は、最少帯域幅、最大帯域幅、優先レベル、最大レイテンシ、又は好ましいレイテンシレベルの中の少なくとも1つを含み、
前記多数の装置ストリームの中から選択される少なくとも1つに関連するデータは、前記少なくとも1つのストレージ装置により提供される少なくとも2つのチャネルの中のいずれかを通じてライト(write)され、
前記ストレージ装置は、前記ストレージ装置からのデータをリード(read)し前記ストレージ装置へのデータをライトするように制御するコントローラを含み、
前記ストリーミング性能は、前記ストレージ装置上の消去ブロックサイズ、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームのライトサイズ、前記ストレージ装置により支援されるストレージ内コンピューティング(ISC)、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、並びに前記ストレージ装置により支援される装置ストリームの処理能力の制限、の全てを含む集合から導出されることを特徴とする方法。 - ストレージ装置に依存しない考慮事項を用いて前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能を補強するステップを更に含み、
前記ストレージ装置に依存しない考慮事項は、前記ストレージ管理部と前記少なくとも1つのストレージ装置との間の帯域幅、又は前記ストレージ管理部と前記少なくとも1つのストレージ装置との間の通信に要求される時間の中の少なくとも1つを含むことを特徴とする請求項17に記載の方法。 - 前記ストレージ管理部で、前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つを選択するステップは、
前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのソフトウェアストリームから前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つへのマッピング(mapping)を生成するステップと、
前記マッピングを用いて前記少なくとも1つのソフトウェアストリームに対応するように、前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つを選択するステップと、を含むことを特徴とする請求項17に記載の方法。 - 前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのソフトウェアストリームから前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つへのマッピング(mapping)を生成するステップは、
前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの各々を前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能を用いて少なくとも2つの等級の中の1つに割り当てるステップと、
前記少なくとも1つのソフトウェアストリームを前記少なくとも2つの等級の中の1つに割り当てるステップと、
同一の等級を有する前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つに前記少なくとも1つのソフトウェアストリームを割り当てることによりマッピングを生成するステップと、を含むことを特徴とする請求項19に記載の方法。 - 前記ストレージ管理部で、多数の装置ストリーム及び少なくとも2つの異なる類型のストレージを支援する少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能を受信するステップは、
前記ストレージ管理部で、第1コントローラを含み前記少なくとも2つの異なる類型のうちの少なくとも第1類型のストレージを支援する少なくとも1つの第1ストレージ装置のストリーミング性能のうちの少なくとも第1ストリーミング性能を受信するステップと、
前記ストレージ管理部で、第2コントローラを含み少なくとも前記第1類型のストレージとは異なる第2類型のストレージを支援する少なくとも1つの第2ストレージ装置のストリーミング性能のうちの少なくとも第2ストリーミング性能を受信するステップと、を含むことを特徴とする請求項17に記載の方法。 - 前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS要求を判別するステップは、前記少なくとも1つのソフトウェアストリームの少なくとも2つのQoS要求を判別するステップを含み、
前記少なくとも2つのQoS要求は、前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能の部分集合を表し、
前記ストレージ管理部で、前記少なくとも1つのソフトウェアストリームの少なくとも1つのQoS要求及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも1つを選択するステップは、
前記少なくとも1つのソフトウェアストリームの少なくとも2つのQoS要求に加重値を割り当てるステップと、
前記ストレージ管理部で、前記加重値及び前記少なくとも1つのストレージ装置の少なくとも1つのストリーミング性能に対応するように、前記少なくとも1つのストレージ装置により支援される前記多数の装置ストリ-ムの中の少なくとも1つを選択するステップと、を含むことを特徴とする請求項17に記載の方法。 - 前記ストレージ管理部は、全てのQoS要求の合計が前記ストレージ装置の性能を超えないことを保証するように動作することを特徴とする請求項17に記載の方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762501087P | 2017-05-03 | 2017-05-03 | |
US62/501,087 | 2017-05-03 | ||
US201762511957P | 2017-05-26 | 2017-05-26 | |
US62/511,957 | 2017-05-26 | ||
US15/690,270 | 2017-08-29 | ||
US15/690,270 US20180321855A1 (en) | 2017-05-03 | 2017-08-29 | Multistreaming in heterogeneous environments |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018190425A JP2018190425A (ja) | 2018-11-29 |
JP2018190425A5 JP2018190425A5 (ja) | 2021-06-10 |
JP6993929B2 true JP6993929B2 (ja) | 2022-01-14 |
Family
ID=64014700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018089023A Active JP6993929B2 (ja) | 2017-05-03 | 2018-05-07 | マルチストリーミングのための、ストレージ装置、ストレージ管理部、及び方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US20180321855A1 (ja) |
JP (1) | JP6993929B2 (ja) |
KR (1) | KR102559022B1 (ja) |
CN (1) | CN108806750B (ja) |
TW (1) | TWI771396B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11024390B1 (en) * | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US11262942B2 (en) * | 2018-07-16 | 2022-03-01 | ScaleFlux, Inc. | Integrating host-side storage device management with host-side non-volatile memory |
EP3857952A4 (en) * | 2018-09-27 | 2022-07-06 | Telefonaktiebolaget LM Ericsson (publ) | METHOD AND DEVICE FOR INTERACTION BETWEEN WIRELESS AND WIRED COMMUNICATION NETWORKS |
TWI710904B (zh) * | 2019-02-18 | 2020-11-21 | 宏碁股份有限公司 | 資料寫入方法與儲存裝置 |
CN109979508A (zh) * | 2019-03-15 | 2019-07-05 | 合肥沛睿微电子股份有限公司 | 固态硬盘装置与相关的固态硬盘控制电路 |
TWI701552B (zh) * | 2019-03-22 | 2020-08-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US11500587B2 (en) * | 2020-11-20 | 2022-11-15 | Samsung Electronics Co., Ltd. | System and method for in-SSD data processing engine selection based on stream IDs |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012523623A (ja) | 2009-04-08 | 2012-10-04 | グーグル インコーポレイテッド | フラッシュメモリデータストレージデバイスのパーティション化 |
JP2016170583A (ja) | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160299715A1 (en) | 2015-04-10 | 2016-10-13 | Kabushiki Kaisha Toshiba | Storage system capable of invalidating data stored in a storage device thereof |
US20160313943A1 (en) | 2015-04-24 | 2016-10-27 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
US7296124B1 (en) * | 2004-06-29 | 2007-11-13 | National Semiconductor Corporation | Memory interface supporting multi-stream operation |
JP2006235960A (ja) | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | ガーベッジコレクション高速化方法 |
JP4524703B2 (ja) * | 2008-02-29 | 2010-08-18 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
EP2455865B1 (en) | 2009-07-17 | 2020-03-04 | Toshiba Memory Corporation | Memory management device |
JP2011175615A (ja) * | 2010-01-27 | 2011-09-08 | Toshiba Corp | ホスト装置およびメモリデバイス |
WO2012020544A1 (ja) | 2010-08-11 | 2012-02-16 | 日本電気株式会社 | データ処理システム、データ処理方法、およびプログラム |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
US8682639B2 (en) | 2010-09-21 | 2014-03-25 | Texas Instruments Incorporated | Dedicated memory window for emulation address |
US20120290786A1 (en) | 2011-05-11 | 2012-11-15 | Mesnier Michael P | Selective caching in a storage system |
KR102079339B1 (ko) * | 2011-08-31 | 2020-02-19 | 삼성전자주식회사 | 클라우드 시스템상의 컨텐츠를 디엘엔에이로 연결된 디바이스로 전달하는 전자 장치 및 방법 |
US9158461B1 (en) * | 2012-01-18 | 2015-10-13 | Western Digital Technologies, Inc. | Measuring performance of data storage systems |
US8788658B2 (en) * | 2012-02-03 | 2014-07-22 | International Business Machines Corporation | Allocation and balancing of storage resources |
JP5723812B2 (ja) | 2012-03-16 | 2015-05-27 | 株式会社 日立産業制御ソリューションズ | ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム |
US20160196076A1 (en) | 2013-07-08 | 2016-07-07 | Wilus Institute Of Standards And Technology Inc. | Memory system and method for controlling same |
US9542293B2 (en) * | 2014-01-14 | 2017-01-10 | Netapp, Inc. | Method and system for collecting and pre-processing quality of service data in a storage system |
US8874835B1 (en) | 2014-01-16 | 2014-10-28 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
US9740574B2 (en) * | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
US20160044077A1 (en) | 2014-08-06 | 2016-02-11 | Dell Products L.P. | Policy use in a data mover employing different channel protocols |
US10963126B2 (en) | 2014-12-10 | 2021-03-30 | D2L Corporation | Method and system for element navigation |
US9886210B2 (en) * | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US9552384B2 (en) | 2015-06-19 | 2017-01-24 | HGST Netherlands B.V. | Apparatus and method for single pass entropy detection on data transfer |
KR102381343B1 (ko) | 2015-07-27 | 2022-03-31 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US9582250B1 (en) | 2015-08-28 | 2017-02-28 | International Business Machines Corporation | Fusion recommendation for performance management in streams |
KR102401600B1 (ko) | 2015-08-31 | 2022-05-25 | 삼성전자주식회사 | 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치 |
US10681110B2 (en) | 2016-05-04 | 2020-06-09 | Radware, Ltd. | Optimized stream management |
JP2018022275A (ja) | 2016-08-02 | 2018-02-08 | 東芝メモリ株式会社 | 半導体記憶装置 |
US10768829B2 (en) * | 2017-02-15 | 2020-09-08 | Microsoft Technology Licensing, Llc | Opportunistic use of streams for storing data on a solid state device |
US10298649B2 (en) | 2017-02-15 | 2019-05-21 | Microsoft Technology Licensing, Llc | Guaranteeing stream exclusivity in a multi-tenant environment |
-
2017
- 2017-08-29 US US15/690,270 patent/US20180321855A1/en not_active Abandoned
-
2018
- 2018-02-21 KR KR1020180020493A patent/KR102559022B1/ko active IP Right Grant
- 2018-03-28 TW TW107110792A patent/TWI771396B/zh active
- 2018-04-09 CN CN201810309840.4A patent/CN108806750B/zh active Active
- 2018-05-07 JP JP2018089023A patent/JP6993929B2/ja active Active
-
2021
- 2021-04-13 US US17/229,857 patent/US11507326B2/en active Active
-
2022
- 2022-10-25 US US17/973,529 patent/US11847355B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012523623A (ja) | 2009-04-08 | 2012-10-04 | グーグル インコーポレイテッド | フラッシュメモリデータストレージデバイスのパーティション化 |
JP2016170583A (ja) | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160299715A1 (en) | 2015-04-10 | 2016-10-13 | Kabushiki Kaisha Toshiba | Storage system capable of invalidating data stored in a storage device thereof |
US20160313943A1 (en) | 2015-04-24 | 2016-10-27 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
Also Published As
Publication number | Publication date |
---|---|
KR102559022B1 (ko) | 2023-07-24 |
CN108806750B (zh) | 2023-11-07 |
JP2018190425A (ja) | 2018-11-29 |
US20180321855A1 (en) | 2018-11-08 |
TW201843591A (zh) | 2018-12-16 |
CN108806750A (zh) | 2018-11-13 |
KR20180122546A (ko) | 2018-11-13 |
TWI771396B (zh) | 2022-07-21 |
US11507326B2 (en) | 2022-11-22 |
US20230042833A1 (en) | 2023-02-09 |
US20210232321A1 (en) | 2021-07-29 |
US11847355B2 (en) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6993929B2 (ja) | マルチストリーミングのための、ストレージ装置、ストレージ管理部、及び方法 | |
US11216365B1 (en) | Maintenance of non-volaitle memory on selective namespaces | |
US10996863B1 (en) | Nonvolatile memory with configurable zone/namespace parameters and host-directed copying of data across zones/namespaces | |
US9710377B1 (en) | Multi-array operation support and related devices, systems and software | |
KR102533072B1 (ko) | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US9323463B2 (en) | Storage system and cache control method | |
US11740801B1 (en) | Cooperative flash management of storage device subdivisions | |
KR20210111527A (ko) | 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법 | |
CN110865770A (zh) | 存储器系统 | |
KR20220063756A (ko) | 저장 장치 내의 호스트 인터페이스 계층 및 그에 의해 서브미션 큐들로부터의 요청들을 처리하는 방법 | |
CN114464234A (zh) | 提供隔离的系统和方法 | |
US11567883B2 (en) | Connection virtualization for data storage device arrays | |
US11768628B2 (en) | Information processing apparatus | |
JP2018036711A (ja) | ストレージシステム,ストレージ制御装置および制御プログラム | |
US11507321B1 (en) | Managing queue limit overflow for data storage device arrays | |
US20230205427A1 (en) | Storage device including memory controller and operating method of the same | |
WO2019021415A1 (ja) | ストレージシステム及びデータ格納制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210422 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210422 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210422 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20210423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211019 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6993929 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |