JP6913481B2 - 大容量格納装置、システム、及び方法 - Google Patents
大容量格納装置、システム、及び方法 Download PDFInfo
- Publication number
- JP6913481B2 JP6913481B2 JP2017031935A JP2017031935A JP6913481B2 JP 6913481 B2 JP6913481 B2 JP 6913481B2 JP 2017031935 A JP2017031935 A JP 2017031935A JP 2017031935 A JP2017031935 A JP 2017031935A JP 6913481 B2 JP6913481 B2 JP 6913481B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- instance
- physical
- physical blocks
- blocks
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/061—Improving I/O performance
-
- 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
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
ここで該インタフェイスは各仮想マシンに対して独立した大容量格納装置をエミュレート(emulate)する。しかし、仮に該インタフェイスが前記ソリッドステートドライブにおいて共有されたフラッシュ変換階層を使用すれば、1つの仮想マシンと相互作用する永久ストレージインタフェイスの性能が、他の仮想マシン及び永久ストレージ間の相互作用によって影響を受けるか、又は低下し得る。
前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンの予測される書込み動作レベルに比例する加重値を割当するように構成されたハイパバイザ(hyperviser)を更に含むことが好ましい。
前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンのサービスの永続的ストレージ品質(persistent storage quality)に比例する加重値を割当するように構成されたハイパバイザを更に含むことが好ましい。
前記第1仮想フラッシュ変換階層インスタンスに割り当てられた前記第1セットの物理ブロックは、前記大容量格納装置の第1のパッケージに割り当てられ、前記第2仮想フラッシュ変換階層インスタンスに割り当てられた前記第2セットの物理ブロックは、前記大容量格納装置の第2のパッケージに割り当てられ、前記大容量格納装置は、前記ストレージアクセス要請に応答して、第1仮想フラッシュ変換階層インスタンスの前記第1セットの物理ブロック又は第2仮想フラッシュ変換階層インスタンスの前記第2セットの物理ブロックを、新しい物理ブロックに割り当てるように構成されるページ割当器を含むことが好ましい。
前記ホスト上のゲスト装置ドライバによって、前記第1名称空間を含む読出し要請を構成する段階と、前記大容量格納装置によって、前記第1仮想機能を通じて前記読出し要請を受信する段階と、前記第1仮想フラッシュ変換階層インスタンスによって、前記読出し要請を処理する段階と、前記第1仮想機能を通じて、前記読出し要請の結果を返す段階と、を更に含むことが好ましい。
前記ホスト上のゲスト装置ドライバによって、書き込まれるべきデータ及び前記第1名称空間に対する識別子を含む書込み要請を構成する段階と、前記大容量格納装置によって、前記第1仮想機能を通じて、前記書込み要請を受信する段階と、前記第1仮想フラッシュ変換階層インスタンスによって、前記書込み要請を処理する段階と、前記第1仮想フラッシュ変換階層インスタンスによって、前記大容量格納装置のページ割当器から、書込み可能な物理ページに対応する1つ以上の物理ページナンバを要請する段階と、前記ページ割当器から1つ以上の物理ページナンバを受信する段階と、前記受信された1つ以上の物理ページナンバに対応する1つ以上の物理ページに前記データを書き込む段階と、を更に含むことが好ましい。
仮想機能105はホスト102のゲスト装置ドライバによって提供される。本文で使用されるように、“ホスト”は1つ又はそれ以上の大容量格納装置と連結され、これを使用するコンピュータ(例えば、サーバ)である。各仮想マシンはストレージアクセス要請(例えば、永久ストレージからのデータ読出し、永久ストレージへのデータ書込み、又は永久ストレージのデータ消去に対する要請)を生成する。各ストレージアクセス要請は仮想機能としての呼出(call)を通じて生成される。永久ストレージはハードディスク、及び/又はSSD(solid state drive)、及び/又はUSBスティック或いはサムドライブ(thumb drive)、及び/又はメモリカード等のような大容量格納装置により具現される。
シングルルート入/出力仮想化(SR−IOV)は、多様なPCIe(Peripheral Component Interconnect Express)ハードウェア機能の中で、大容量格納装置に対して、その資源へのアクセスを区分可能にするために使用される。
これらの機能は、PCIe物理的機能PF(107)及び1つ又はそれ以上のPCIe仮想機能(VFs)105を含む。各物理的機能107及び仮想機能105には、入/出力メモリ管理部104(IOMMU、input/output memory management unit)が相異なるトラフィックストリーム(traffic streams)を区分可能にする一意的なPCIe RID(Requester identifier、要求者識別子)が割当てられる。斯くして、仮想機能105を相異なる仮想マシン100(VMs)に割当ててあるので、仮想マシン100及び大容量格納装置の間でデータを伝送する間において、他の仮想マシン100の入/出力ストリームと互いに干渉することを防止できる。
ホスト102は論理ページナンバ(logical page numbers)に向けられた(directed to)ストレージアクセス要請(例えば、論理ページナンバのページに格納されたデータを要請すること、論理ページナンバのページにデータ書込みを要請すること、又は論理ページナンバのページに格納されたデータの消去を要請すること)等を使用して大容量格納装置と相互作用(interact)する。
物理ページ120に新しいデータを書き込むことが、物理ページ120を含む物理ブロック110の全体のコンテンツを他のところに格納(セーブ)し、物理ブロック110を消去し、同一のページ位置に以前データを代替する新しいデータが格納されたコンテンツを該物理ブロックに再び書き込むことを要求するので、論理ページナンバを物理ページナンバに直接的又は静的に(directly or statically)マッピングすることは非効率的である。本文で使用されるように、“物理ページナンバ”は大容量格納装置内でページを一意的に識別する識別子(identifier)(例えば、数字)である。
時には、フラッシュ変換階層125は“ガーベッジコレクション(garbage collection)”であると称される動作を遂行する。この動作により、物理ブロック110の有効なコンテンツが1つ又はそれ以上の他の物理ブロック110内の他の物理ページ120に移動した後に、無効としてマーキングされた物理ページ120の大きい部分(例えば、設定閾値を超過する部分)を含む物理ブロック110が消去され、この消去された物理ブロック110に新しいデータを書き込むことが可能になる。フラッシュ変換階層125はソリッドステートドライブ103のコントローラ(例えば、マイクロコントローラ)で駆動されるソフトウェア形態で具現される。
結果的に、例えば、第1仮想マシン(例えば、VM1)からの書込み要請は物理ページ120の無効化をもたらし、次いで、該物理ページ120の無効化は物理ブロック110に影響を与えるガーベッジコレクションを発生させる。これは、ストレージアクセス要請、例えば、同一の物理ブロック110の物理ページ120にマッピングされた論理ページに対する、第2仮想マシン(例えば、VM2)によって伝送された読出し要請の処理を遅延させる。このように、或る仮想マシン100に提供されるサービス品質が他の仮想マシン100によって伝送されたストレージアクセス要請によって影響を受ける。即ち、サービス品質が低下し、より予測不能になる。
図3において、破線内が本発明に係る大容量格納装置に属し、破線外の仮想マシン100(VM1、VM2、VM3)がホスト(102、即ち、ユーザコンピュータ)に属する。破線内の機能ブロックのうち、複数の物理ブロック110がハードウェアであるのに対して、残りは全てコントローラ上で動くソフトウェアであり、コントローラのハードウェアは、コア部と外部入出力部(対仮想マシン(ホスト)、対物理ブロック)を含むが、全て記載を省略してある。
図3を参照すれば、一実施形態で、仮想フラッシュ変換階層(FTL)インスタンス210が各割当された仮想機能又は名称空間に対して生成される。特定の仮想機能からのストレージアクセス要請が該仮想機能の名称空間と連関され、従って、名称空間と連関された仮想フラッシュ変換階層インスタンス210に伝達される。図2のシステムの状況と異なり、図3の実施形態では、名称空間は論理ページナンバのセット(集合)又は範囲にマッピングされない代わりに、個別の仮想フラッシュ変換階層インスタンス210(例えば、vFTL1、vFTL2)にマッピングされる。結果的に、相異なる仮想装置100からのストレージアクセス要請は仮想フラッシュ変換階層で分離されているので、1つの仮想マシンが提出したストレージアクセス要請が、他の仮想マシンの享受するサービス品質に及ぼす悪影響を軽減できる。物理ページ120は仮想マシンを意識したNANDページ割当器(VM−aware NAND page allocator)230によって割当される。
図4で、第1仮想マシンVM1及び第2仮想マシンVM2の2つの仮想マシン100が示される。各仮想マシンは装置名称空間管理者106によって別々の装置名称空間(separate device namespace)に割当される。第1仮想マシンVM1がストレージアクセス要請、例えば、書込み要請を発行する場合、大容量格納装置は該ストレージアクセス要請を第1仮想フラッシュ変換階層インスタンス210a(vFTL1)に伝送(route)する。書込み要請は例えば、8セクタサイズを有する論理ページ(そして対応する物理ページ)の割当を要求する。物理ページは物理ページナンバ(ppn、physical page number)によって識別される。
第1仮想フラッシュ変換階層インスタンス210aは、VMを意識したNANDページ割当器230に対する、対応するストレージアクセス要請を生成して物理ページ120のナンバ(即ち、物理ページナンバ(ppn))を提供するよう要求する。ここで物理ページ120のナンバは、書込み要請を実行するのに必要なメモリの大きさ(例えば、8セクタ)に対応する。以後、割当された物理フラッシュページに書込みデータをフラッシュ(flush、一斉書き込み)する。従ってストレージアクセス要請は割当された物理ページの物理ページナンバ(ppn)を要請することをさらに含む。
最後に、仮想フラッシュ変換階層インスタンス210aは論理から物理へのマッピング(logical to physical mappings)(例えば、仮想マシン論理ブロックアドレス(VM−LBA)又は論理ページナンバ(lpn)からNANDフラッシュページナンバなどの物理ページナンバ(ppn)へのマッピング)を更新する。他方、第2仮想マシンVM2によって生成されたストレージアクセス要請は追加処理のために第2仮想フラッシュ変換階層インスタンス210bに伝送(route)される。
情報又は要請を交換することを必要としない点で、第1及び第2仮想フラッシュ変換階層インスタンス210a、210bなどの仮想フラッシュ変換階層インスタンスは、互いに独立的であり、互いを意識しない(unaware)。このようにして、本システムは第1仮想マシンVM1によって生成されたストレージアクセス要請及び第2仮想マシンVM2によって生成されたストレージアクセス要請の間の干渉を防止できる。
このようにして、VMを意識したNANDページ割当器230は結果的に、図6で、D1、D2、及びD3の参照番号が付与された各々、第1仮想マシンVM1、第2仮想マシンVM2、及び第3仮想マシンVM3からのデータは混合されず、区分された物理ブロック110に書き込まれる。
書込み要請が仮想フラッシュ変換階層インスタンス210から受信され、要請した仮想フラッシュ変換階層インスタンス210に対してリスティングされたオープンフラッシュブロック110の空間が充分でない場合、又は書込み要請の実行が現在のオープンフラッシュブロック110を万杯に満たす場合、仮想マシンを意識したNANDページ割当器230は書込み要請を遂行するために新しい物理ブロック110を割当する。
書込み要請の完了の後に新しい物理ブロック110が部分的に空いた空間(partially empty)を維持する場合、仮想マシンを意識したNANDページ割当器230は新しい物理ブロック110のアドレスをオープンフラッシュブロック110のリストに追加する。
例えば、図7の第2仮想フラッシュ変換階層インスタンス(vFTL2)と連関されたオープンフラッシュブロック110が書込み要請によって満杯になり全てのページが使用された場合、仮想マシンを意識したNANDページ割当器230は新しい物理ブロック110’を割当し、それを第2仮想フラッシュ変換階層インスタンスvFTL2のオープンフラッシュブロックとして認識する。
斯くして、例えば、第1仮想フラッシュ変換階層インスタンスに割当された第1物理ブロック(図8に“フラッシュブロック1(Flash block 1)”と記載される)は第1仮想フラッシュ変換階層インスタンスに割当された他の物理ブロック110と共に大容量格納装置のパッケージナンバ0(Pkg#0)に割当される。第2仮想フラッシュ変換階層インスタンスに割当された第2物理ブロック(図8に“フラッシュブロック2(Flash block 2)”と記載される)は第2仮想フラッシュ変換階層インスタンスに割当された他の物理ブロック110と共に大容量格納装置のパッケージナンバ1(Pkg#1)に割当される。このようなパッケージは、例えば、大容量格納装置(例えば、ソリッドステートドライブ103)の印刷回路基板(又は印刷配線基板)にハンダ付けされた(soldered)集積回路である。
ガーベッジコレクション動作の間において、設定された閾値を超過する無効物理ページ部分を含む物理ブロックは、該物理ブロックの有効物理ページのコンテンツが他の物理ブロック、例えば追加提供ブロック(overprovision blocks)に先ず移動された後に、消去され、新規な格納(書込み)のために使用可能になる。
このように、追加提供ブロックは、無効化された物理ページ120を含む物理ブロック110が消去され、格納のために再び使用可能になる前に、一部の格納空間を、例えば、無効化された物理ページ120の空間を使用せず放置しながら、ストレージの特定の容量を提供するために使用される。
例えば、図10に示したように、ガーベッジコレクションを遂行して多数の無効物理ページ120を含む物理ブロック110を解除(free up、ガーベッジの無い状態にする)する場合、各仮想フラッシュ変換階層インスタンス210は先ず有効データを含む物理ページの内容(図10では「有効」と記載)を追加提供ブロック110の「自由」ページ(図10では、「空き」と記載)へ移動し、その後に、物理ブロック110を消去して解除(freed_up)する。
繰り返して述べると、追加提供(overprovision)は無効ページを消去する前に、ガーベッジコレクションによって無効ページを含む物理ブロック110から有効データが移動される「自由」ページを含む、追加的な「自由」フラッシュブロック110を提供できる。
600段階で、ホスト102はSR−IOV(シングルルート入出力仮想化)を活性化し、大容量格納装置に対して第1仮想機能VF0を含む仮想機能105(図3及び関連段落の記述を参照)を設定する。
602段階で、ホスト102は仮想フラッシュ変換階層の特徴を活性化する。
604段階で、ホスト102は名称空間(namespace)を生成し、名称空間を第1仮想機能VF0に添付する。
606段階で、大容量格納装置は第1仮想機能VF0の名称空間の論理ブロックアドレス範囲に従って仮想フラッシュ変換階層インスタンスを生成する。
608段階で、ホスト102は第1仮想機能VF0を第1仮想マシンに割当し、第1仮想機能VF0を活性化する。このようなプロセスは他の仮想マシン及び名称空間に対して反複され得る。
610段階で、仮想マシンは、例えば開始論理ブロックアドレス0及び8セクタサイズの読出し要請を発行する。
612段階で、ホスト102上のゲスト装置ドライバは、要請情報(request information)を含む、対応するNVMe(Non Volatile Memory Express)読出し要請を構成する。NVMe読出し要請は名称空間識別子をまた含む。
614段階で、大容量格納装置は要請した仮想マシンに添付された仮想機能を通じて読出し要請を受信する。
616段階で、大容量格納装置は読出し要請を管理し、要請した仮想マシンが付着された仮想フラッシュ変換階層インスタンスに読出し要請を伝送(pass)する。
618段階で、仮想フラッシュ変換階層インスタンスは読出し要請が要請したフラッシュページを読み出し、対応する仮想機能の完了キュー(CQ、completion queue)に完了応答を伝送する。以後にゲスト装置ドライバはサブミッションキュー(SQ、submission queue)を通知する。
620段階で、ゲスト装置ドライバはインタラプトを管理し、サブミッションキューを更新する。読出し動作の結果は仮想機能によって仮想マシンへ返還される。
622段階で、仮想マシンは例えば、開始論理ブロックアドレス0及び8セクタサイズを有する書込み要請を発行する。
624段階で、ホスト102のゲスト装置ドライバは要請情報を含む、対応するNVMe書込み要請を構成する。NVMe書込み要請は名称空間識別子をまた含む。
626段階で、大容量格納装置は要請した仮想マシンに添付された仮想機能を通じて書込み要請を受信する。
628段階で、大容量格納装置は書込み要請を管理し、要請した仮想マシンが付着された仮想フラッシュ変換階層インスタンスに書込み要請を伝送する。
630段階で、仮想フラッシュ変換階層インスタンスはNANDページ割当器に新しい物理ページナンバを要請し、(例えば、仮想フラッシュ変換階層インスタンスはNANDページ割当器から新しい物理ページナンバを要請する)データをフラッシュページに書き込み、マッピングエントリを更新する。
632段階で、仮想フラッシュ変換階層インスタンスは対応する仮想機能の完了キュー(CQ)に書込み完了を伝送する。
634段階で、ホスト102のゲスト装置ドライバはインタラプトを管理し、サブミッションキュー(SQ)を更新する。
また、大容量格納装置の多様な要素は、1つ又はそれ以上のコンピューティング装置で本文に記載された多様な機能を遂行するために他のシステム構成要素と相互作用し、コンピュータプログラム命令語を実行し、1つ又はそれ以上のプロセッサで駆動(run)する、プロセス又はスレッドである。コンピュータプログラム命令語はランダムアクセスメモリ(RAM、random access memory)などの標準メモリ装置を使用してコンピューティング装置内に具現されるメモリに格納される。コンピュータプログラム命令語はCD−ROM、フラッシュドライブ等の他の非一時的なコンピュータ読出し可能な媒体に格納される。
また、当業者は、本発明の以上の例示的な実施形態の思想から逸脱することなく、多様なコンピューティング装置の機能が1つのコンピューティング装置に組合わされるか、又は集積でき、特定のコンピューティング装置の機能が1つ又はそれ以上の他のコンピューティング装置にわたって分散できることを認知すべきである。
102 ホスト
103 ソリッドステートドライブ(SSD)
104 入力/出力メモリ管理部(IOMMU)
105 仮想機能(VF0、VF1、VF2、・・・)
106 装置名称空間管理者
107 物理的機能(PF)
110、110’ 物理ブロック、フラッシュブロック
120 物理ページ
125 フラッシュ変換階層(FTL)
130 NANDページ割当器
210 仮想フラッシュ変換階層(vFTL)インスタンス
210a、210b 第1、第2
230 VMを意識したNANDページ割当器
LBA 論理ブロックアドレス
NSA、NSB 名称空間A、B
OFB オープンフラッシュブロック
ppn 物理ページナンバ
Claims (11)
- ホストの複数の仮想マシンに割当てられ、第1名称空間が付加される第1仮想機能及び第2名称空間が付加される第2仮想機能と、
前記第1仮想機能と通信(interact)するように構成された第1仮想フラッシュ変換階層インスタンス及び前記第2仮想機能と通信するように構成された第2仮想フラッシュ変換階層インスタンスと、
複数の物理ブロックを含み、前記複数の物理ブロックの各々が複数の物理ページを含み、前記複数の物理ブロックが第1セットの物理ブロック、及び前記第1セットの物理ブロックとは分離された(disjoint)第2セットの物理ブロックを含むフラッシュメモリと、
前記第1仮想フラッシュ変換階層インスタンス及び前記第2仮想フラッシュ変換階層インスタンスを実行するように構成されたコントローラと、を備え、
前記第1仮想フラッシュ変換階層インスタンスは、論理ページナンバに向けられたストレージアクセス要請を受信して、前記第1セットの物理ブロック内の物理ページナンバにのみ向けられたストレージアクセス要請を生成するように構成され、
前記第2仮想フラッシュ変換階層インスタンスは、論理ページナンバに向けられたストレージアクセス要請を受信して、前記第2セットの物理ブロック内の物理ページナンバにのみ向けられたストレージアクセス要請を生成するように構成され、
前記第1セットの物理ブロックと前記第2セットの物理ブロックとは、互いに区別され、
前記第1仮想フラッシュ変換階層インスタンスによって前記第1セットの物理ブロックに格納された第1セットのデータは、前記第2仮想フラッシュ変換階層インスタンスによって前記第2セットの物理ブロックに格納された第2セットのデータに混合されなく、
前記第1仮想フラッシュ変換階層インスタンス及び前記第2仮想フラッシュ変換階層インスタンスの各々は、それぞれのセットの物理ブロックに対するガーベッジコレクション動作を遂行するように更に構成され、
前記第1仮想フラッシュ変換階層インスタンスは、第1加重値を有し、
前記第2仮想フラッシュ変換階層インスタンスは、第2加重値を有し、
前記第1セットの物理ブロックは、ガーベッジコレクション動作の間のデータの格納のために予約された第1の複数の追加提供ブロック(overprovision)を含み、
前記第2セットの物理ブロックは、ガーベッジコレクション動作の間のデータの格納のために予約された第2の複数の追加提供ブロックを含み、
前記第1セットの物理ブロック内の物理ブロックの数に対する前記第1の複数の追加提供ブロック内の物理ブロックの数の比率は、前記第1加重値に比例するように調節され、
前記第2セットの物理ブロック内の物理ブロックの数に対する前記第2の複数の追加提供ブロック内の物理ブロックの数の比率は、前記第2加重値に比例するように調節されることを特徴とする大容量格納装置。 - 前記第1仮想フラッシュ変換階層インスタンスに割り当てられた前記第1セットの物理ブロックは、前記大容量格納装置の第1のパッケージに割り当てられ、
前記第2仮想フラッシュ変換階層インスタンスに割り当てられた前記第2セットの物理ブロックは、前記大容量格納装置の第2のパッケージに割り当てられ、
前記大容量格納装置は、前記ストレージアクセス要請に応答して、第1仮想フラッシュ変換階層インスタンスの前記第1セットの物理ブロック又は第2仮想フラッシュ変換階層インスタンスの前記第2セットの物理ブロックを、新しい物理ブロックに割り当てるように構成されるページ割当器を含むことを特徴とする請求項1に記載の大容量格納装置。 - ホストと、
大容量格納装置と、を備え、
前記ホストは、
第1名称空間(namespace)に関連付けされ、前記大容量格納装置でインスタンス化された(instantiated)第1仮想フラッシュ変換階層インスタンスにストレージアクセス要請を送信するように構成された第1仮想マシンと、
第2名称空間に関連付けされ、前記大容量格納装置でインスタンス化された第2仮想フラッシュ変換階層インスタンスにストレージアクセス要請を送信するように構成された第2仮想マシンと、を含み、
前記大容量格納装置は、複数の物理ブロックを有するフラッシュメモリを含み、
前記複数の物理ブロックの各々は、複数の物理ページ、第1セットの物理ブロック、及び第2セットの物理ブロックを含み、
前記第1セットの物理ブロックと前記第2セットの物理ブロックとは、互いに分離(disjoint)及び区別(distinct)され、
前記第1仮想フラッシュ変換階層インスタンスによって前記第1セットの物理ブロックに格納された第1セットのデータは、前記第2仮想フラッシュ変換階層インスタンスによって前記第2セットの物理ブロックに格納された第2セットのデータと混合されず、
前記第1仮想フラッシュ変換階層インスタンスは、前記第1セットの物理ブロック内の物理ページにのみ向けられたストレージアクセス要請を生成するように構成され、
前記第2仮想フラッシュ変換階層インスタンスは、前記第2セットの物理ブロック内の物理ページにのみ向けられたストレージアクセス要請を生成するように構成され、
前記大容量格納装置は、前記第1仮想フラッシュ変換階層インスタンス及び前記第2仮想フラッシュ変換階層インスタンスを実行するように構成されたコントローラを更に含み、
前記第1仮想フラッシュ変換階層インスタンス及び前記第2仮想フラッシュ変換階層インスタンスの各々は、それぞれのセットの物理ブロックに対するガーベッジコレクション動作を遂行するように更に構成され、
前記第1仮想フラッシュ変換階層インスタンスは、第1加重値を有し、
前記第2仮想フラッシュ変換階層インスタンスは、第2加重値を有し、
前記第1セットの物理ブロックは、ガーベッジコレクション動作の間のデータの格納のために予約された第1の複数の追加提供ブロックを含み、
前記第2セットの物理ブロックは、ガーベッジコレクション動作の間のデータの格納のために予約された第2の複数の追加提供ブロックを含み、
前記第1セットの物理ブロック内の物理ブロックの数に対する前記第1の複数の追加提供ブロック内の物理ブロックの数の比率は、前記第1加重値に比例するように調節され、
前記第2セットの物理ブロック内の物理ブロックの数に対する前記第2の複数の追加提供ブロック内の物理ブロックの数の比率は、前記第2加重値に比例するように調節されることを特徴とするシステム。 - 前記ホストは、前記第2名称空間に関連付けされ、前記第2仮想フラッシュ変換階層インスタンスにストレージアクセス要請を送信するように構成された第3仮想マシンを更に含むことを特徴とする請求項3に記載のシステム。
- 前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンの予測される書込み動作レベルに比例する加重値を割当するように構成されたハイパバイザ(hyperviser)を更に含むことを特徴とする請求項3に記載のシステム。
- 前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンのサービスの永続的ストレージ品質(persistent storage quality)に比例する加重値を割当するように構成されたハイパバイザを更に含むことを特徴とする請求項3に記載のシステム。
- 前記第1仮想フラッシュ変換階層インスタンスに割り当てられた前記第1セットの物理ブロックは、前記大容量格納装置の第1のパッケージに割り当てられ、
前記第2仮想フラッシュ変換階層インスタンスに割り当てられた前記第2セットの物理ブロックは、前記大容量格納装置の第2のパッケージに割り当てられ、
前記大容量格納装置は、前記ストレージアクセス要請に応答して、第1仮想フラッシュ変換階層インスタンスの前記第1セットの物理ブロック又は第2仮想フラッシュ変換階層インスタンスの前記第2セットの物理ブロックを、新しい物理ブロックに割り当てるように構成されるページ割当器を含むことを特徴とする請求項3に記載のシステム。 - ホストによって、第1名称空間及び第2名称空間を生成する段階と、
前記ホストによって、複数の物理ブロックを含む大容量格納装置の第1仮想フラッシュ変換階層インスタンスと通信(interact)するように構成された第1仮想機能に前記第1名称空間を付加する段階と、
前記ホストによって、前記大容量格納装置の第2仮想フラッシュ変換階層インスタンスと通信するように構成された第2仮想機能に前記第2名称空間を付加する段階と、
前記第1仮想フラッシュ変換階層インスタンスによって、第1論理ページナンバに向けられた(directed to)第1ストレージアクセス要請を受信する段階と、
前記第1仮想フラッシュ変換階層インスタンスによって、前記複数の物理ブロックの中の第1サブセット内の物理ページナンバにのみ向けられたストレージアクセス要請を生成する段階と、
前記第2仮想フラッシュ変換階層インスタンスによって、第2論理ページナンバに向けられた第2ストレージアクセス要請を受信する段階と、
前記第2仮想フラッシュ変換階層インスタンスによって、前記複数の物理ブロックの中の第2サブセット内の物理ページナンバにのみ向けられたストレージアクセス要請を生成する段階と、を有し、
前記第1サブセットと前記第2サブセットとは、互いに分離(disjoint)及び区別(distinct)され、
前記第1仮想フラッシュ変換階層インスタンスによって前記第1サブセットに格納された第1セットのデータは、前記第2仮想フラッシュ変換階層インスタンスによって前記第2サブセットに格納された第2セットのデータに混合されなく、
前記第1仮想フラッシュ変換階層インスタンスによって、前記第1サブセットに対するガーベッジコレクション動作を遂行する段階を更に含み、
前記第1仮想フラッシュ変換階層インスタンスは、第1加重値を有し、
前記第2仮想フラッシュ変換階層インスタンスは、第2加重値を有し、
前記第1サブセットは、ガーベッジコレクション動作の間のデータの格納のために予約された第1の複数の追加提供ブロックを含み、
前記第2サブセットは、ガーベッジコレクション動作の間のデータの格納のために予約された第2の複数の追加提供ブロックを含み、
前記第1サブセット内の物理ブロックの数に対する前記第1の複数の追加提供ブロック内の物理ブロックの数の比率は、前記第1加重値に比例するように調節され、
前記第2サブセット内の物理ブロックの数に対する前記第2の複数の追加提供ブロック内の物理ブロックの数の比率は、前記第2加重値に比例するように調節されることを特徴とする方法。 - 前記ホストによって、第1仮想マシン及び第2仮想マシンを生成する段階と、
前記ホストによって、前記第1仮想機能を前記第1仮想マシンに割当する段階と、
前記ホストによって、前記第2仮想機能を前記第2仮想マシンに割当する段階と、を更に含むことを特徴とする請求項8に記載の方法。 - 前記ホスト上のゲスト装置ドライバによって、前記第1名称空間を含む読出し要請を構成する段階と、
前記大容量格納装置によって、前記第1仮想機能を通じて前記読出し要請を受信する段階と、
前記第1仮想フラッシュ変換階層インスタンスによって、前記読出し要請を処理する段階と、
前記第1仮想機能を通じて、前記読出し要請の結果を返す段階と、を更に含むことを特徴とする請求項9に記載の方法。 - 前記ホスト上のゲスト装置ドライバによって、書き込まれるべきデータ及び前記第1名称空間に対する識別子を含む書込み要請を構成する段階と、
前記大容量格納装置によって、前記第1仮想機能を通じて、前記書込み要請を受信する段階と、
前記第1仮想フラッシュ変換階層インスタンスによって、前記書込み要請を処理する段階と、
前記第1仮想フラッシュ変換階層インスタンスによって、前記大容量格納装置のページ割当器から、書込み可能な物理ページに対応する1つ以上の物理ページナンバを要請する段階と、
前記ページ割当器から1つ以上の物理ページナンバを受信する段階と、
前記受信された1つ以上の物理ページナンバに対応する1つ以上の物理ページに前記データを書き込む段階と、を更に含むことを特徴とする請求項9に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662299502P | 2016-02-24 | 2016-02-24 | |
US62/299,502 | 2016-02-24 | ||
US15/133,187 | 2016-04-19 | ||
US15/133,187 US10235198B2 (en) | 2016-02-24 | 2016-04-19 | VM-aware FTL design for SR-IOV NVME SSD |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017151988A JP2017151988A (ja) | 2017-08-31 |
JP2017151988A5 JP2017151988A5 (ja) | 2020-04-02 |
JP6913481B2 true JP6913481B2 (ja) | 2021-08-04 |
Family
ID=59629976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017031935A Active JP6913481B2 (ja) | 2016-02-24 | 2017-02-23 | 大容量格納装置、システム、及び方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10235198B2 (ja) |
JP (1) | JP6913481B2 (ja) |
KR (1) | KR102414721B1 (ja) |
CN (2) | CN107122314B (ja) |
TW (2) | TWI765225B (ja) |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642497B2 (en) * | 2016-08-31 | 2020-05-05 | International Business Machines Corporation | System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics |
CN108959108B (zh) * | 2017-05-26 | 2021-08-24 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10852990B2 (en) * | 2017-08-02 | 2020-12-01 | Samsung Electronics Co., Ltd. | Hybrid framework of NVMe-based storage system in cloud computing environment |
CN109656833B (zh) | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据储存装置 |
CN109656834B (zh) * | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据管理方法以及数据储存系统 |
TWI685847B (zh) * | 2017-10-12 | 2020-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置之非揮發式記憶體的命名空間規劃 |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
CN108255424B (zh) * | 2017-12-28 | 2021-01-12 | 深圳忆联信息系统有限公司 | 一种NVMe固态硬盘IO响应延迟的保障方法 |
US10891239B2 (en) * | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
CN108595115B (zh) * | 2018-03-27 | 2021-10-01 | 深圳忆联信息系统有限公司 | 一种提高ssd垃圾回收效率的方法 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
CN111902804B (zh) | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US10564872B2 (en) * | 2018-06-29 | 2020-02-18 | Western Digital Technologies, Inc. | System and method for dynamic allocation to a host of memory device controller memory resources |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10691592B2 (en) * | 2018-10-30 | 2020-06-23 | Micron Technology, Inc. | Error-checking in namespaces on storage devices using a namespace table and metadata |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
KR20200072639A (ko) | 2018-12-12 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US10860420B2 (en) | 2019-02-05 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for mitigating read disturb impact on persistent memory |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10970212B2 (en) | 2019-02-15 | 2021-04-06 | Alibaba Group Holding Limited | Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones |
US10783035B1 (en) | 2019-02-28 | 2020-09-22 | Alibaba Group Holding Limited | Method and system for improving throughput and reliability of storage media with high raw-error-rate |
US10891065B2 (en) | 2019-04-01 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
KR102263040B1 (ko) * | 2019-04-23 | 2021-06-09 | 삼성전자주식회사 | 멀티 코어 솔리드 스테이트 드라이브의 운용 방법 |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11074124B2 (en) | 2019-07-23 | 2021-07-27 | Alibaba Group Holding Limited | Method and system for enhancing throughput of big data analysis in a NAND-based read source storage |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US10997019B1 (en) | 2019-10-31 | 2021-05-04 | Alibaba Group Holding Limited | System and method for facilitating high-capacity system memory adaptive to high-error-rate and low-endurance media |
US11200159B2 (en) | 2019-11-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating efficient utilization of NAND flash memory |
US11119847B2 (en) | 2019-11-13 | 2021-09-14 | Alibaba Group Holding Limited | System and method for improving efficiency and reducing system resource consumption in a data integrity check |
US11169855B2 (en) * | 2019-12-03 | 2021-11-09 | Sap Se | Resource allocation using application-generated notifications |
CN111103960B (zh) * | 2019-12-22 | 2021-06-29 | 北京浪潮数据技术有限公司 | 一种Nvme SSD及其复位方法和系统 |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
JP2021114038A (ja) | 2020-01-16 | 2021-08-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11573737B2 (en) | 2020-03-02 | 2023-02-07 | Silicon Motion, Inc. | Method and apparatus for performing disk management of all flash array server |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11494098B2 (en) | 2020-06-30 | 2022-11-08 | Western Digital Technologies, Inc. | Variable performance storage devices |
US11262923B2 (en) * | 2020-07-08 | 2022-03-01 | Samsung Electronics Co., Ltd. | Method for managing namespaces in a storage device using an over-provisioning pool and storage device employing the same |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
CN111736780B (zh) * | 2020-08-07 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的擦除方法、装置、设备及存储介质 |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
CN112241308B (zh) * | 2020-10-21 | 2022-07-29 | 海光信息技术股份有限公司 | 一种虚拟机标识处理方法、装置及相关设备 |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
EP4180936A1 (en) * | 2021-11-10 | 2023-05-17 | Samsung Electronics Co., Ltd. | Virtualized system and method of controlling access to nonvolatile memory device in virtualization environment |
CN115079957B (zh) * | 2022-07-20 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 请求处理方法、装置、控制器、设备及存储介质 |
US20240168905A1 (en) | 2022-11-18 | 2024-05-23 | Samsung Electronics Co., Ltd. | Centralized storage device, in-vehicle electronic system including the same, and method of operating the same |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334134B1 (en) * | 1998-08-18 | 2001-12-25 | International Business Machines Corporation | Insert performance on a multi-system transaction environment |
US6598143B1 (en) * | 2000-02-24 | 2003-07-22 | International Business Machines Corporation | Method to increase performance of acquiring free memory pages |
US6961806B1 (en) * | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
JP4683546B2 (ja) * | 2005-07-15 | 2011-05-18 | 国立大学法人 東京大学 | データベースの再編成方法及びデータベース再編成システム |
US8819092B2 (en) * | 2005-08-16 | 2014-08-26 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
KR101354152B1 (ko) * | 2006-12-18 | 2014-01-27 | 삼성전자주식회사 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
KR20090095909A (ko) * | 2008-03-06 | 2009-09-10 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 관리 방법 |
US8954654B2 (en) | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
JP5093294B2 (ja) * | 2010-05-14 | 2012-12-12 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2012058770A (ja) * | 2010-09-03 | 2012-03-22 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8850104B2 (en) * | 2011-03-21 | 2014-09-30 | Apple Inc. | Independent management of data and parity logical block addresses |
US10241908B2 (en) | 2011-04-26 | 2019-03-26 | Seagate Technology Llc | Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage |
US20150220432A1 (en) * | 2011-09-28 | 2015-08-06 | Mediatek Inc. | Method and apparatus for managing at least one non-volatile memory |
JP5937702B2 (ja) * | 2012-02-01 | 2016-06-22 | エンパイア テクノロジー ディベロップメント エルエルシー | クラウドカートグラフィの防止 |
US9645917B2 (en) | 2012-05-22 | 2017-05-09 | Netapp, Inc. | Specializing I/O access patterns for flash storage |
CN103064632B (zh) * | 2012-12-04 | 2016-03-23 | 记忆科技(深圳)有限公司 | 固态硬盘及其虚拟化方法、系统 |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN103902632B (zh) | 2012-12-31 | 2018-01-02 | 华为技术有限公司 | 键值存储系统中构建文件系统的方法、装置及电子设备 |
US9003071B2 (en) | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US20140304453A1 (en) | 2013-04-08 | 2014-10-09 | The Hong Kong Polytechnic University | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
CN103269361A (zh) * | 2013-05-03 | 2013-08-28 | 北京理工大学 | 一种用于深空通信的文件传输装置及其设计方法 |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
EP3033682A4 (en) * | 2013-08-14 | 2017-04-05 | Skyera, LLC | Address translation for a non-volatile memory storage device |
US9612973B2 (en) | 2013-11-09 | 2017-04-04 | Microsoft Technology Licensing, Llc | Using shared virtual memory resources for performing memory-mapping |
IN2013CH05400A (ja) | 2013-11-22 | 2015-05-29 | Ineda Systems Pvt Ltd | |
CN103744612A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于闪存转换层的精简配置的方法及其系统 |
US9887008B2 (en) | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9501245B2 (en) * | 2014-05-02 | 2016-11-22 | Cavium, Inc. | Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host |
US10235056B2 (en) * | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
US9438426B2 (en) | 2014-10-03 | 2016-09-06 | Seagate Technology Llc | Key-value data storage device with hybrid architecture |
-
2016
- 2016-04-19 US US15/133,187 patent/US10235198B2/en active Active
- 2016-11-10 KR KR1020160149701A patent/KR102414721B1/ko active IP Right Grant
- 2016-12-22 TW TW109104429A patent/TWI765225B/zh active
- 2016-12-22 TW TW105142579A patent/TWI688860B/zh active
-
2017
- 2017-02-15 CN CN201710080583.7A patent/CN107122314B/zh active Active
- 2017-02-15 CN CN202010284025.4A patent/CN111488294B/zh active Active
- 2017-02-23 JP JP2017031935A patent/JP6913481B2/ja active Active
-
2019
- 2019-02-04 US US16/266,848 patent/US11048541B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107122314B (zh) | 2020-04-10 |
TW202024923A (zh) | 2020-07-01 |
US10235198B2 (en) | 2019-03-19 |
US20170242722A1 (en) | 2017-08-24 |
JP2017151988A (ja) | 2017-08-31 |
KR20170099746A (ko) | 2017-09-01 |
US11048541B2 (en) | 2021-06-29 |
CN111488294B (zh) | 2023-11-07 |
TWI688860B (zh) | 2020-03-21 |
US20190179660A1 (en) | 2019-06-13 |
TW201730771A (zh) | 2017-09-01 |
TWI765225B (zh) | 2022-05-21 |
CN107122314A (zh) | 2017-09-01 |
KR102414721B1 (ko) | 2022-06-29 |
CN111488294A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6913481B2 (ja) | 大容量格納装置、システム、及び方法 | |
US10318324B2 (en) | Virtualization support for storage devices | |
JP6982468B2 (ja) | メモリシステムおよび制御方法 | |
JP6765321B2 (ja) | メモリシステムおよび制御方法 | |
US10592408B2 (en) | Apparatus, computer program product, system, and method for managing multiple regions of a memory device | |
JP6779838B2 (ja) | メモリシステムおよび制御方法 | |
JP6709180B2 (ja) | メモリシステムおよび制御方法 | |
JP6765322B2 (ja) | メモリシステムおよび制御方法 | |
US20160378680A1 (en) | File access method and related device | |
JP6785204B2 (ja) | メモリシステムおよび制御方法 | |
US11747984B2 (en) | Memory system that constructs virtual storage regions for virtual machines | |
TW201917584A (zh) | 記憶體系統及控制方法 | |
KR102443593B1 (ko) | 하이브리드 메모리 시스템 | |
KR20190116641A (ko) | 가상화 시스템을 위한 저장 장치 및 그 동작 방법 | |
US11880301B2 (en) | Enabling efficient guest access to peripheral component interconnect express (PCIe) configuration space | |
CN111913892B (zh) | 使用cmb提供开放通道存储设备 | |
WO2020024151A1 (zh) | 信息处理方法及装置、设备、系统 | |
JP7167295B2 (ja) | メモリシステムおよび制御方法 | |
JP7102482B2 (ja) | メモリシステムおよび制御方法 | |
JP2022051902A (ja) | メモリシステム | |
JP2022091981A (ja) | コントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200220 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200220 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200220 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200811 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210401 |
|
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: 20210615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210712 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6913481 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |