JP6913481B2 - 大容量格納装置、システム、及び方法 - Google Patents

大容量格納装置、システム、及び方法 Download PDF

Info

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
Application number
JP2017031935A
Other languages
English (en)
Other versions
JP2017151988A (ja
JP2017151988A5 (ja
Inventor
キウ,シェング
キ,ヤンソク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017151988A publication Critical patent/JP2017151988A/ja
Publication of JP2017151988A5 publication Critical patent/JP2017151988A5/ja
Application granted granted Critical
Publication of JP6913481B2 publication Critical patent/JP6913481B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory 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

本発明に係る実施形態の1つ又はそれ以上の様相(aspect)は大容量格納装置に係り、さらに詳細には、仮想フラッシュ変換階層インスタンス(virtual flash translation layer instances)を通じた大容量ストレージへのアクセスを提供する方法及びシステムに関する。
ソリッドステートドライブ(半導体(大容量)格納装置、以下、フラッシュ(永久)ストレージと同義に用いる)を含むホストマシン(host machine)が複数の仮想マシン(virtual machines)を駆動(run)するシステムにおいて、シングルルート入出力仮想化(SR−IOV、single root input/output virtualization)は、各仮想マシンが、インタフェイスを通じて永久ストレージ(persistent storage)と相互作用(interact)することを可能にする。
ここで該インタフェイスは各仮想マシンに対して独立した大容量格納装置をエミュレート(emulate)する。しかし、仮に該インタフェイスが前記ソリッドステートドライブにおいて共有されたフラッシュ変換階層を使用すれば、1つの仮想マシンと相互作用する永久ストレージインタフェイスの性能が、他の仮想マシン及び永久ストレージ間の相互作用によって影響を受けるか、又は低下し得る。
即ち、仮想マシンの各々の永久ストレージアクセス動作の最中に、複数の仮想マシンの相互作用を減少する方法及びシステムが必要である。
米国特許第9,003,071号公報 米国特許公開第2014/0304453号明細書 米国特許公開第2015/0134930号明細書 米国特許公開第2015/0149661号明細書
本発明の実施形態の目的は、仮想マシンを意識した(virtual machine aware)仮想フラッシュ変換階層を提供することにある。
本発明の実施形態による大容量格納装置は、ホストの複数の仮想マシンに割当てられ、第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名称空間(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仮想マシンを更に含むことが好ましい。
前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンの予測される書込み動作レベルに比例する加重値を割当するように構成されたハイパバイザ(hyperviser)を更に含むことが好ましい。
前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンのサービスの永続的ストレージ品質(persistent storage quality)に比例する加重値を割当するように構成されたハイパバイザを更に含むことが好ましい。
前記第1仮想フラッシュ変換階層インスタンスに割り当てられた前記第1セットの物理ブロックは、前記大容量格納装置の第1のパッケージに割り当てられ、前記第2仮想フラッシュ変換階層インスタンスに割り当てられた前記第2セットの物理ブロックは、前記大容量格納装置の第2のパッケージに割り当てられ、前記大容量格納装置は、前記ストレージアクセス要請に応答して、第1仮想フラッシュ変換階層インスタンスの前記第1セットの物理ブロック又は第2仮想フラッシュ変換階層インスタンスの前記第2セットの物理ブロックを、新しい物理ブロックに割り当てるように構成されるページ割当器を含むことが好ましい
本発明の実施形態による方法は、ホストによって、第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仮想マシンに割当する段階と、を更に含むことが好ましい。
前記ホスト上のゲスト装置ドライバによって、前記第1名称空間を含む読出し要請を構成する段階と、前記大容量格納装置によって、前記第1仮想機能を通じて前記読出し要請を受信する段階と、前記第1仮想フラッシュ変換階層インスタンスによって、前記読出し要請を処理する段階と、前記第1仮想機能を通じて、前記読出し要請の結果を返す段階と、を更に含むことが好ましい。
前記ホスト上のゲスト装置ドライバによって、書き込まれるべきデータ及び前記第1名称空間に対する識別子を含む書込み要請を構成する段階と、前記大容量格納装置によって、前記第1仮想機能を通じて、前記書込み要請を受信する段階と、前記第1仮想フラッシュ変換階層インスタンスによって、前記書込み要請を処理する段階と、前記第1仮想フラッシュ変換階層インスタンスによって、前記大容量格納装置のページ割当器から、書込み可能な物理ページに対応する1つ以上の物理ページナンバを要請する段階と、前記ページ割当器から1つ以上の物理ページナンバを受信する段階と、前記受信された1つ以上の物理ページナンバに対応する1つ以上の物理ページに前記データを書き込む段階と、を更に含むことが好ましい。
本発明の実施形態によれば、仮想マシンを意識した仮想フラッシュ変換階層が提供され、これに従ってシステムの性能が向上される。
本発明の特徴及び長所は詳細な説明、特許請求の範囲、及び以下の添付された図面を参照して理解され、認定される。
本発明の実施形態による大容量格納装置と連結されたホストのブロック図である。 従来技術のフラッシュ変換階層を含む大容量格納装置と接続した複数の仮想マシンのブロック図である。 本発明の実施形態に係る複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。 本発明の実施形態に係る仮想マシンを意識したNANDページ割当器及び複数の仮想フラッシュ変換階層インスタンスを通じて大容量格納装置と接続した複数の仮想マシンのブロック図である。 フラッシュメモリの従来技術のフラッシュ変換階層、NANDページ割当器、及びフラッシュメモリの複数の物理ブロックのブロック図である。 本発明の実施形態に係る仮想マシンを意識したNANDページ割当器及び複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。 本発明の実施形態に係る仮想マシン意識したNANDページ割当器及び複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。 本発明の実施形態に係る大容量格納装置のフラッシュパッケージ及びパッケージのフラッシュブロックの組織化(organization)を示すブロック図である。 本発明の実施形態に係る複数のフラッシュブロックと接続した複数の仮想フラッシュ変換階層インスタンスのブロック図である。 本発明の実施形態に係るガーベッジコレクションの間における追加提供ブロック(overprovision blocks)へのデータマイグレーションを説明するデータ流れ図である。 本発明の実施形態に係る装置初期化の順序図である。 本発明の実施形態に係る読出し要請処理の順序図である。 本発明の実施形態に係る書込み要請処理の順序図である。
添付された図面と連関される詳細な記述は、本発明に従って提供されるソリッドステートドライブ(SSD、solid state drive)のための仮想マシンを意識した(VM−aware)フラッシュ変換階層(FTL、flash translation layer)設計の例示的な実施形態の説明を意図し、本発明が構成されるか、或いは活用される唯一の形態を示すとは意図していない。詳細な記述は説明された実施形態と連関されて本発明の特徴を示す。しかし、同一又は等価な機能及び構造は、本発明の思想及び範囲内に含まれる意図を有する他の実施形態によっても達成できることは、よく理解されるべきである。本文の他の箇所にも記載されたように、類似な参照番号は類似な構成又は特徴を示す。
図1はソリッドステートドライブ103と連結されたホスト102を示す。図2は、SR−IOV NVMe SSD{以下、「SR−IOV」 「NVMe」 「SSD」に分割すると、「SR−IOV」(Single Root Input/Output Virtualization、シングルルート入出力仮想化)、 「NVMem」(Non Volatile Memory Express、不揮発性メモリエキスプレス)、 「SSD」(Solid State Drive、ソリッドステートドライブ)を使用する従来技術によるシステム構造(architecture)を示す。複数の仮想マシン100はホスト102上で動作(run)する。ホスト102はプロセッサ(例えば、マイクロプロセッサ)及びメモリを含む。仮想マシン100は多様な仮想機能105(virtual functions)を呼出(call)して永久ストレージ(persistent storage)と相互作用(interact)する。
仮想機能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の入/出力ストリームと互いに干渉することを防止できる。
ソリッドステートドライブ103のフラッシュメモリは物理ブロック110(physical blocks)(又はフラッシュブロック)及び物理ページ120(physical pages)として組織化される。物理ブロック110は1回の動作で消去される最も小さいメモリ単位であり、物理ページ120は1回の動作で書き込まれる最も小さいメモリ単位である。各物理ブロック110は複数の物理ページ120を含む。物理ページ120の大きさは具現に従って変わる。フラッシュメモリのページはNANDページ割当器130(NAND page allocator)によって割当される。
ホスト102は論理ページナンバ(logical page numbers)に向けられた(directed to)ストレージアクセス要請(例えば、論理ページナンバのページに格納されたデータを要請すること、論理ページナンバのページにデータ書込みを要請すること、又は論理ページナンバのページに格納されたデータの消去を要請すること)等を使用して大容量格納装置と相互作用(interact)する。
物理ページ120に新しいデータを書き込むことが、物理ページ120を含む物理ブロック110の全体のコンテンツを他のところに格納(セーブ)し、物理ブロック110を消去し、同一のページ位置に以前データを代替する新しいデータが格納されたコンテンツを該物理ブロックに再び書き込むことを要求するので、論理ページナンバを物理ページナンバに直接的又は静的に(directly or statically)マッピングすることは非効率的である。本文で使用されるように、“物理ページナンバ”は大容量格納装置内でページを一意的に識別する識別子(identifier)(例えば、数字)である。
このような面倒な動作を回避するために、フラッシュ変換階層125は論理ページナンバを動的に(dynamically)物理ページナンバに変換するか、又はマッピングする。新しいデータを或る論理ページナンバのページにデータに上書き(overwrite)する場合、物理ページ120を含む物理ブロック110を消去する代わりに、フラッシュ変換階層125は現在の論理ページナンバと現在対応する物理ページ120を無効(invalid)としてマーキングする。フラッシュ変換階層125は論理ページナンバから物理ページ120へのマッピングを更新して、論理ページナンバを新しい物理ページ120にマッピングし、新しい物理ページ120に新しいデータを書き込む。
時には、フラッシュ変換階層125は“ガーベッジコレクション(garbage collection)”であると称される動作を遂行する。この動作により、物理ブロック110の有効なコンテンツが1つ又はそれ以上の他の物理ブロック110内の他の物理ページ120に移動した後に、無効としてマーキングされた物理ページ120の大きい部分(例えば、設定閾値を超過する部分)を含む物理ブロック110が消去され、この消去された物理ブロック110に新しいデータを書き込むことが可能になる。フラッシュ変換階層125はソリッドステートドライブ103のコントローラ(例えば、マイクロコントローラ)で駆動されるソフトウェア形態で具現される。
一部の実施形態で、複数の仮想機能105は相異なる複数の仮想マシン100に割当され、各仮想機能105は大容量格納装置上に予約された名称空間(namespace)(例えば、図2の名称空間A(NSA)及び名称空間B(NSB)として記載された名称空間)と連関される。図2の例示的なシステムで、第1仮想機能VF1、第2仮想機能VF2のような2つの仮想機能は1つの名称空間(NSB)を共有する。相異なる仮想マシン100(例えば、第0仮想マシンVM0)からのストレージアクセス要請は相異なる仮想機能105(この場合、第0仮想機能VF0)を呼出(call)することによって処理される。これはホスト管理下の仮想マシン100と大容量格納装置のホストインタフェイス階層(HIL、host interface layer)の間において、入/出力経路が分離される結果をもたらす。
しかし、相異なる仮想マシン100に割当された物理ページ120が物理ブロック110を共有する可能性がある。相異なる仮想マシン100からのストレージアクセス要請は大容量格納装置において論理ページナンバで識別される論理ページにマッピングされ、論理ページナンバに向けられたストレージアクセス要請のフォーマットに載せてフラッシュ変換階層125に伝達される。斯くして、フラッシュ変換階層125の入力には、該入力の起源となった仮想マシンと特定ストレージアクセス要請を連結する意味ある情報が無いことがあり得る。
結果的に、例えば、第1仮想マシン(例えば、VM1)からの書込み要請は物理ページ120の無効化をもたらし、次いで、該物理ページ120の無効化は物理ブロック110に影響を与えるガーベッジコレクションを発生させる。これは、ストレージアクセス要請、例えば、同一の物理ブロック110の物理ページ120にマッピングされた論理ページに対する、第2仮想マシン(例えば、VM2)によって伝送された読出し要請の処理を遅延させる。このように、或る仮想マシン100に提供されるサービス品質が他の仮想マシン100によって伝送されたストレージアクセス要請によって影響を受ける。即ち、サービス品質が低下し、より予測不能になる。
シングルルート入出力仮想化(SR−IOV)が有する特徴の装置仮想化をさらに向上するために、フラッシュ変換階層(FTL)125が仮想化(virtualized)される。例えば、フラッシュ変換階層125が、複数の仮想フラッシュ変換階層(vFTL、virtual flash translation layer)インスタンス210により置換されて、入/出力経路は複数の相異なる仮想マシン100に対する複数の仮想フラッシュ変換階層インスタンス210の時点で分離される。
図3は、本発明の実施形態に係る複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。
図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を参照すれば、一実施形態で上述されたように、各仮想フラッシュ変換階層(vFTL)インスタンス210は大容量格納装置(例えば、ソリッドステートドライブ103)のコントローラ上で駆動されるファームウェアのフラッシュ変換階層(FTL)におけるソフトウェア構成要素である。これは従来技術のフラッシュ変換階層(FTL)ソフトウェアのフル機能を有するが、そのようなフラッシュ変換階層(FTL)ソフトウェアと異なり、仮想マシン及び仮想機能名称空間(virtual function namespace)に従って、又は大容量格納装置名称空間に従って組織化され、設計される。
図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によって生成されたストレージアクセス要請の間の干渉を防止できる。
図5を参照すれば、上述されたように従来技術によるフラッシュ変換階層125及びNANDページ割当器130は、入力されるストレージアクセス要請のソース(source)に従って区分しない。例えば、3つの相異なる仮想マシン100からのデータが同一の物理ブロック110に書き込まれ得る。図5で、第1仮想マシンVM1、第2仮想マシンVM2、及び第3仮想マシンVM3のような3つの仮想マシン100からのデータを含むページはD1、D2、及びD3の参照番号が各々付与される。図示されたように、物理ブロック110の各々で、多数の相異なる仮想マシン100からのデータが混合される。
それに対して、図6を参照すれば、本発明の或る実施形態では、第1仮想マシンVM1、第2仮想マシンVM2、及び第3仮想マシンVM3からなる3つの仮想マシン100からのストレージアクセス要請は、各々、3つの別々の仮想フラッシュ変換階層インスタンスvFTL1、vFTL2、vFTL3によって処理され、該仮想フラッシュ変換階層インスタンスの各々は、それらの各々の名称空間(及び仮想マシン100)と既に連関されたブロックのページに対する要請を、又は利用可能であるページがあまりにも少ない場合、現在何れの名称空間又は仮想マシンとも連関されないブロックのページに対する要請を、VMを意識したNANDページ割当器230に向けて生成する。
このようにして、VMを意識したNANDページ割当器230は結果的に、図6で、D1、D2、及びD3の参照番号が付与された各々、第1仮想マシンVM1、第2仮想マシンVM2、及び第3仮想マシンVM3からのデータは混合されず、区分された物理ブロック110に書き込まれる。
図7を参照すれば、一実施形態で、仮想マシンを意識したNANDページ割当器230はリストを維持する。該リストは、各仮想フラッシュ変換階層インスタンス210に対して、「自由」(free、有効データが書き込まれていない)ページを含む単数又は複数の物理ブロック110である“オープンフラッシュブロック(OFB、open flash block)”を含む。任意の仮想フラッシュ変換階層インスタンス210が新しい物理ページナンバを要請する場合、仮想マシンを意識したNANDページ割当器230は要請した仮想フラッシュ変換階層インスタンス210に対してリスティングされたオープンフラッシュブロック110の内の次に利用可能である物理ページナンバを返還(return)する。
書込み要請が仮想フラッシュ変換階層インスタンス210から受信され、要請した仮想フラッシュ変換階層インスタンス210に対してリスティングされたオープンフラッシュブロック110の空間が充分でない場合、又は書込み要請の実行が現在のオープンフラッシュブロック110を万杯に満たす場合、仮想マシンを意識したNANDページ割当器230は書込み要請を遂行するために新しい物理ブロック110を割当する。
書込み要請の完了の後に新しい物理ブロック110が部分的に空いた空間(partially empty)を維持する場合、仮想マシンを意識したNANDページ割当器230は新しい物理ブロック110のアドレスをオープンフラッシュブロック110のリストに追加する。
例えば、図7の第2仮想フラッシュ変換階層インスタンス(vFTL2)と連関されたオープンフラッシュブロック110が書込み要請によって満杯になり全てのページが使用された場合、仮想マシンを意識したNANDページ割当器230は新しい物理ブロック110’を割当し、それを第2仮想フラッシュ変換階層インスタンスvFTL2のオープンフラッシュブロックとして認識する。
図8を参照すれば、仮想マシンを意識したNANDページ割当器230は、相異なる仮想フラッシュ変換階層インスタンス210の物理ブロック110を、相異なるフラッシュパッケージ、ダイ、又はプレーンに優先的に分散するように新しいフラッシュブロック110を割当するように構成される。パッケージはチャンネル(例えば、図示されたように、Channel#0、Channel#1、等)に組織化される。これは、例えば、特定仮想フラッシュ変換階層インスタンス210が新しいブロックに対する要請を生成する時、仮想フラッシュ変換階層インスタンス210に割当された他の物理ブロック110を既に含むパッケージの物理ブロック110を割当することによって具現される。又はどのパッケージも「自由」物理ブロック110を含まない場合、どの物理ブロック110も未だ割当されなかったパッケージの物理ブロック110を割当することによって具現される。
斯くして、例えば、第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)集積回路である。
図9を参照すれば、一部の実施形態で、「自由」フラッシュブロックの数が大容量格納装置のために定義された閾値(threshold)より低くなる度に、ガーベッジコレクションGCが遂行される。各仮想フラッシュ変換階層インスタンス210は自らガーベッジコレクションを管理する。各、仮想フラッシュ変換階層インスタンス210を初期化する間に、特定な数の追加提供フラッシュブロック(overprovision flash blocks)110が該、仮想フラッシュ変換階層インスタンス210に割当される。
ガーベッジコレクション動作の間において、設定された閾値を超過する無効物理ページ部分を含む物理ブロックは、該物理ブロックの有効物理ページのコンテンツが他の物理ブロック、例えば追加提供ブロック(overprovision blocks)に先ず移動された後に、消去され、新規な格納(書込み)のために使用可能になる。
このように、追加提供ブロックは、無効化された物理ページ120を含む物理ブロック110が消去され、格納のために再び使用可能になる前に、一部の格納空間を、例えば、無効化された物理ページ120の空間を使用せず放置しながら、ストレージの特定の容量を提供するために使用される。
例えば、図10に示したように、ガーベッジコレクションを遂行して多数の無効物理ページ120を含む物理ブロック110を解除(free up、ガーベッジの無い状態にする)する場合、各仮想フラッシュ変換階層インスタンス210は先ず有効データを含む物理ページの内容(図10では「有効」と記載)を追加提供ブロック110の「自由」ページ(図10では、「空き」と記載)へ移動し、その後に、物理ブロック110を消去して解除(freed_up)する。
繰り返して述べると、追加提供(overprovision)は無効ページを消去する前に、ガーベッジコレクションによって無効ページを含む物理ブロック110から有効データが移動される「自由」ページを含む、追加的な「自由」フラッシュブロック110を提供できる。
基本的に、各仮想フラッシュ変換階層インスタンス210に提供される追加提供フラッシュブロック110の数は、仮想フラッシュ変換階層インスタンス210に割当された物理ブロック110の数に比例する。しかし、一部の実施形態で、割当されたブロックの数に対する追加提供フラッシュブロック110の数の比率は各仮想フラッシュ変換階層インスタンス210に割当された加重値に従って調節(例えば、加重値に従って比例するように調節)されることができる。例えば、各仮想フラッシュ変換階層インスタンス210の加重値は使用者によって定義(user−defined)される。一部の実施形態で、各仮想マシンは加重値(例えば、使用者によって定義された加重値、又はハイパバイザによって割当された加重値(hypervisor−assigned weight))を有する。各仮想フラッシュ変換階層インスタンス210の加重値は仮想フラッシュ変換階層インスタンス210と連結された仮想マシンの加重値である。又は複数の仮想マシンが仮想フラッシュ変換階層インスタンス210を共有する場合、各仮想フラッシュ変換階層インスタンス210の加重値はこのような仮想マシンの加重値の合計(total)である。
仮想マシンの加重値は、仮想マシンの予想される書込み動作レベル(例えば、該仮想マシンが書込み動作を要請する周期、又は該仮想マシンに予想される単位時間当たり書込みデータの総量)、又は該仮想マシンに適したサービス品質に比例する。
大容量格納装置が第1仮想マシンVM1及び第2仮想マシンVM2に対して仮想フラッシュ変換階層インスタンス210を各々設定する場合、ホスト102は第1仮想マシンVM1及び第2仮想マシンVM2の各々の加重値を設定する。以後、第1仮想マシンVM1及び第2仮想マシンVM2に各々対応するファームウェア、例えば第1仮想フラッシュ変換階層インスタンス及び第2仮想フラッシュ変換階層インスタンスは第1仮想フラッシュ変換階層インスタンス及び第2仮想フラッシュ変換階層インスタンスに割当された物理的容量に基づいて多数の追加提供ブロックを割当する。
一実施形態で、装置初期化(device initialization)は図11に示したように遂行される。
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を活性化する。このようなプロセスは他の仮想マシン及び名称空間に対して反複され得る。
一実施形態で、読出し要請処理は図12に図示されたように遂行される。
610段階で、仮想マシンは、例えば開始論理ブロックアドレス0及び8セクタサイズの読出し要請を発行する。
612段階で、ホスト102上のゲスト装置ドライバは、要請情報(request information)を含む、対応するNVMe(Non Volatile Memory Express)読出し要請を構成する。NVMe読出し要請は名称空間識別子をまた含む。
614段階で、大容量格納装置は要請した仮想マシンに添付された仮想機能を通じて読出し要請を受信する。
616段階で、大容量格納装置は読出し要請を管理し、要請した仮想マシンが付着された仮想フラッシュ変換階層インスタンスに読出し要請を伝送(pass)する。
618段階で、仮想フラッシュ変換階層インスタンスは読出し要請が要請したフラッシュページを読み出し、対応する仮想機能の完了キュー(CQ、completion queue)に完了応答を伝送する。以後にゲスト装置ドライバはサブミッションキュー(SQ、submission queue)を通知する。
620段階で、ゲスト装置ドライバはインタラプトを管理し、サブミッションキューを更新する。読出し動作の結果は仮想機能によって仮想マシンへ返還される。
一実施形態で、書込み要請処理は図13に示したように遂行される。
622段階で、仮想マシンは例えば、開始論理ブロックアドレス0及び8セクタサイズを有する書込み要請を発行する。
624段階で、ホスト102のゲスト装置ドライバは要請情報を含む、対応するNVMe書込み要請を構成する。NVMe書込み要請は名称空間識別子をまた含む。
626段階で、大容量格納装置は要請した仮想マシンに添付された仮想機能を通じて書込み要請を受信する。
628段階で、大容量格納装置は書込み要請を管理し、要請した仮想マシンが付着された仮想フラッシュ変換階層インスタンスに書込み要請を伝送する。
630段階で、仮想フラッシュ変換階層インスタンスはNANDページ割当器に新しい物理ページナンバを要請し、(例えば、仮想フラッシュ変換階層インスタンスはNANDページ割当器から新しい物理ページナンバを要請する)データをフラッシュページに書き込み、マッピングエントリを更新する。
632段階で、仮想フラッシュ変換階層インスタンスは対応する仮想機能の完了キュー(CQ)に書込み完了を伝送する。
634段階で、ホスト102のゲスト装置ドライバはインタラプトを管理し、サブミッションキュー(SQ)を更新する。
このように、本実施形態は、仮想マシンを意識した仮想フラッシュ変換階層を提供し、これに従ってシステムの性能が向上される。
ハードウェア、ファームウェア、及びソフトウェアの組合せを含む“コントローラ(controller)”の用語が本文で使用され、データ又はデジタル信号を処理するために採用される。コントローラハードウェアは、例えばASIC(application specific integrated circuit)、汎用又は特殊目的中央処理ユニット、DSP(digital signal processor)、GPU(graphics processing unit)、及びFPGA(field programmable gate arrays)のようにプログラム可能なロジック装置を含む。コントローラで、本文に記載されたように、各機能が各機能を遂行するように物理的に接続され、構成されたハードウェアによって各機能が遂行される。又はCPUのように非一時的なストレージ媒体に格納された命令語を実行するように構成されたさらに汎用のハードウェアによって各機能が遂行される。コントローラは単一印刷配線基板(PWB、printed wiring board)で製作されるか、又はPWBが多数連結された構造に分散され得る。コントローラは他のコントローラを含み得る。例えば、コントローラはPWB上に連結されたFPGA、及びCPUのように2つのコントローラを含む。
本文に記載された本発明の実施形態に係る大容量格納装置及び/又は他の関連された装置又は構成は、適切なハードウェア、ファームウェア(例えば、ASIC)、ソフトウェア、又はそれらの組合せを活用して具現される。例えば、大容量格納装置の多様な要素は単一の集積回路(IC、integrated circuit)チップ又は別々のICチップ上に形成される。また、大容量格納装置の多様な要素は軟性印刷回路フィルム、テープキャリヤパッケージ(TCP)、印刷回路基板(PCB)上に具現されるか、又は1つの基板上に形成される。
また、大容量格納装置の多様な要素は、1つ又はそれ以上のコンピューティング装置で本文に記載された多様な機能を遂行するために他のシステム構成要素と相互作用し、コンピュータプログラム命令語を実行し、1つ又はそれ以上のプロセッサで駆動(run)する、プロセス又はスレッドである。コンピュータプログラム命令語はランダムアクセスメモリ(RAM、random access memory)などの標準メモリ装置を使用してコンピューティング装置内に具現されるメモリに格納される。コンピュータプログラム命令語はCD−ROM、フラッシュドライブ等の他の非一時的なコンピュータ読出し可能な媒体に格納される。
また、当業者は、本発明の以上の例示的な実施形態の思想から逸脱することなく、多様なコンピューティング装置の機能が1つのコンピューティング装置に組合わされるか、又は集積でき、特定のコンピューティング装置の機能が1つ又はそれ以上の他のコンピューティング装置にわたって分散できることを認知すべきである。
たとえば、“第1”、“第2”、“第3”等の用語が、本文で、多様な要素、構成、領域、階層、及び/又はセクションを説明するために使用されるが、該要素、構成、領域、階層、及び/又はセクションはこのような用語に限定されない。このような用語は単純に1つの要素、構成、領域、階層、及び/又はセクションを他の1つの要素、構成、領域、階層、及び/又はセクションから区分するために使用される。即ち、第1の要素、構成、領域、階層、又はセクションは本発明の技術的思想及び範囲からの逸脱することなく、第2の要素、構成、領域、階層、及び/又はセクションを指し得る。
本文で使用された用語は、単に特定の実施形態を説明するために使用されており、本発明を限定する意図はない。本文で使用されるように、“実質的に(substantially)”、“約(about)”及び類似の用語は、近似用語(terms of approximation)として使用され、程度(degree)の用語として使用されていないので、当業者ならば認識されるであろう、測定値又は演算値における固有の偏差(ズレ)を説明することと意図される。
本文で使用されるように、文脈上そうではないと明確に指指されない限り、単数用語は複数の用語を含むと意図される。“含む”の用語が本文で使用される場合、この用語は特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示するが、追加的な1つ又はそれ以上の特徴、整数、段階、動作、要素、構成要素、及び/又はそれらのグループの存在を排除しないことはよく理解されよう。本文で使用されたように、“及び/又は”の用語は列挙された要素の1つ又はそれ以上の組合せの全体を含む。“少なくとも1つ”のような表現が列挙された要素の先に使用される場合、要素の全体リストを変形し、リストの個別的な要素を変形しない。また、“であり得る(may)”の用語は本発明の実施形態を説明している際には、“本発明の1つ又はそれ以上の実施形態”を参照する。また、“例示的な(exemplary)”の用語は例又は説明を参照するように意図される。本文で使用されるように、“使用(use)”の用語は“活用する時(utilize)”の用語と類似と看做される。
1つの要素が他の1つの要素と連結される(connected to、coupled to)と称される場合、これは直接的な連結されるか、又は1つ又はそれ以上の中間要素が存在する。それに反して、1つの要素が他の1つの要素と直接的(directly on)又は直接的連結(directly connected to、directly coupled to)と称される場合、中間要素が存在しない。
本文の数値的な範囲は参照された範囲内に含まれた同一の数値的精度(numerical precision)の全てのサブ範囲(sub−range)を含むと意図される。例えば、“1.0〜10.0“の範囲は1.0の最小値及び10.0の最大値の間の全てのサブ範囲、即ち、1.0より大きいか、或いは同一の最小値及び10.0より小さいか、或いは同一の最大値を有する全てのサブ範囲、例えば、2.4〜7.6の範囲を含むと意図される。本文で参照された最大数値上の制限はそれに含まれたそれより低い数値的制限を全て含むと意図される。本文で参照された最小数値上の制限はそれに含まれたそれより高い数値的制限を全て含むことと意図される。
「SR−IOV NVMe SSD」(シングルルート−入出力仮想化 不揮発性メモリエキスプレス ソリッドステートドライブ)のための「VMを意識したFTL」(仮想マシンを意識したフラッシュ変換階層)設計の例示的な実施形態が本文で詳細に説明されたが、多様な変形及び変化は当業者によって遂行されよう。従って、本発明の理論に従って構成されたSR−IOV NVMe SSDのためのVMを意識したFTL設計は、本文で詳細に記載されたのと異なる場合を含み得るが、本発明は以下の特許請求の範囲及びそれらの均等物で定義される。
100 仮想マシン(VM1、VM2、VM3、・・・)
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名称空間が付加される第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加重値に比例するように調節されることを特徴とする大容量格納装置。
  2. 前記第1仮想フラッシュ変換階層インスタンスに割り当てられた前記第1セットの物理ブロックは、前記大容量格納装置の第1のパッケージに割り当てられ、
    前記第2仮想フラッシュ変換階層インスタンスに割り当てられた前記第2セットの物理ブロックは、前記大容量格納装置の第2のパッケージに割り当てられ、
    前記大容量格納装置は、前記ストレージアクセス要請に応答して、第1仮想フラッシュ変換階層インスタンスの前記第1セットの物理ブロック又は第2仮想フラッシュ変換階層インスタンスの前記第2セットの物理ブロックを、新しい物理ブロックに割り当てるように構成されるページ割当器を含むことを特徴とする請求項1に記載の大容量格納装置。
  3. ホストと、
    大容量格納装置と、を備え、
    前記ホストは、
    第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加重値に比例するように調節されることを特徴とするシステム。
  4. 前記ホストは、前記第2名称空間に関連付けされ、前記第2仮想フラッシュ変換階層インスタンスにストレージアクセス要請を送信するように構成された第3仮想マシンを更に含むことを特徴とする請求項3に記載のシステム。
  5. 前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンの予測される書込み動作レベルに比例する加重値を割当するように構成されたハイパバイザ(hyperviser)を更に含むことを特徴とする請求項3に記載のシステム。
  6. 前記ホストは、前記第1仮想マシン及び前記第2仮想マシンの各々に、仮想マシンのサービスの永続的ストレージ品質(persistent storage quality)に比例する加重値を割当するように構成されたハイパバイザを更に含むことを特徴とする請求項3に記載のシステム。
  7. 前記第1仮想フラッシュ変換階層インスタンスに割り当てられた前記第1セットの物理ブロックは、前記大容量格納装置の第1のパッケージに割り当てられ、
    前記第2仮想フラッシュ変換階層インスタンスに割り当てられた前記第2セットの物理ブロックは、前記大容量格納装置の第2のパッケージに割り当てられ、
    前記大容量格納装置は、前記ストレージアクセス要請に応答して、第1仮想フラッシュ変換階層インスタンスの前記第1セットの物理ブロック又は第2仮想フラッシュ変換階層インスタンスの前記第2セットの物理ブロックを、新しい物理ブロックに割り当てるように構成されるページ割当器を含むことを特徴とする請求項3に記載のシステム。
  8. ホストによって、第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加重値に比例するように調節されることを特徴とする方法。
  9. 前記ホストによって、第1仮想マシン及び第2仮想マシンを生成する段階と、
    前記ホストによって、前記第1仮想機能を前記第1仮想マシンに割当する段階と、
    前記ホストによって、前記第2仮想機能を前記第2仮想マシンに割当する段階と、を更に含むことを特徴とする請求項8に記載の方法。
  10. 前記ホスト上のゲスト装置ドライバによって、前記第1名称空間を含む読出し要請を構成する段階と、
    前記大容量格納装置によって、前記第1仮想機能を通じて前記読出し要請を受信する段階と、
    前記第1仮想フラッシュ変換階層インスタンスによって、前記読出し要請を処理する段階と、
    前記第1仮想機能を通じて、前記読出し要請の結果を返す段階と、を更に含むことを特徴とする請求項9に記載の方法。
  11. 前記ホスト上のゲスト装置ドライバによって、書き込まれるべきデータ及び前記第1名称空間に対する識別子を含む書込み要請を構成する段階と、
    前記大容量格納装置によって、前記第1仮想機能を通じて、前記書込み要請を受信する段階と、
    前記第1仮想フラッシュ変換階層インスタンスによって、前記書込み要請を処理する段階と、
    前記第1仮想フラッシュ変換階層インスタンスによって、前記大容量格納装置のページ割当器から、書込み可能な物理ページに対応する1つ以上の物理ページナンバを要請する段階と、
    前記ページ割当器から1つ以上の物理ページナンバを受信する段階と、
    前記受信された1つ以上の物理ページナンバに対応する1つ以上の物理ページに前記データを書き込む段階と、を更に含むことを特徴とする請求項9に記載の方法。
JP2017031935A 2016-02-24 2017-02-23 大容量格納装置、システム、及び方法 Active JP6913481B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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