CN108959111B - 数据存储装置和用于流管理的方法 - Google Patents
数据存储装置和用于流管理的方法 Download PDFInfo
- Publication number
- CN108959111B CN108959111B CN201810397204.1A CN201810397204A CN108959111B CN 108959111 B CN108959111 B CN 108959111B CN 201810397204 A CN201810397204 A CN 201810397204A CN 108959111 B CN108959111 B CN 108959111B
- Authority
- CN
- China
- Prior art keywords
- streams
- namespaces
- namespace
- logical
- hardware
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000013500 data storage Methods 0.000 title claims abstract description 32
- 238000007726 management method Methods 0.000 title abstract description 6
- 230000015654 memory Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000012544 monitoring process Methods 0.000 claims description 4
- 239000007787 solid Substances 0.000 claims description 3
- 238000013507 mapping Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了一种数据存储装置和用于流管理的方法。所述用于流管理的方法包括:从多个命名空间接收逻辑流;确定与所述多个命名空间相关联的逻辑流的特征;选择可配置分配模式;基于逻辑流的特征和可配置分配模式,将与所述多个命名空间相关联的逻辑流分配给访问与数据存储装置相关联的物理存储块的多个硬件流。所述多个硬件流的数量是固定的,并且与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的I/O处理而变化。
Description
本申请要求2017年5月19日提交的序列号为62/508,829的美国临时专利申请的权益和优先权,该临时专利申请的公开内容全部通过引用被合并于此。
技术领域
本公开总体上涉及具有多流传输(multi-streaming)能力的存储装置,更具体地,涉及用于基于命名空间将流映射到存储块的系统和方法。
背景技术
固态驱动器(SSD)的多流传输使相关数据能够被存储在相同的物理擦除块上,益处在于存储的相似数据可具有相似的失效时间,并且可被更有效地进行垃圾回收。因此,多流传输可降低SSD的写入放大因子(WAF)。
被实现为具有多流传输特征的现代SSD通常具有有限数量的可用硬件流,例如,8至16个硬件流。然而,现代SSD能够容纳许多独立的命名空间,每个命名空间可具有许多逻辑流。集中于对流进行识别和合并的传统的多流传输方案未考虑逻辑流与附属的命名空间的关联。
发明内容
根据一个实施例,一种用于流管理的方法包括:从多个命名空间接收逻辑流;确定与所述多个命名空间相关联的逻辑流的特征;选择可配置分配模式;基于逻辑流的特征和可配置分配模式将与所述多个命名空间相关联的逻辑流分配给访问与数据存储装置相关联的物理存储块的多个硬件流。所述多个硬件流的数量是固定的,并且与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的输入/输出(I/O)处理而变化。
根据另一实施例,一种数据存储装置包括:多个物理存储块;流映射器,被配置为:从多个命名空间接收逻辑流;确定与所述多个命名空间相关联的逻辑流的特征;选择可配置分配模式;基于逻辑流的特征和可配置分配模式,将与所述多个命名空间相关联的逻辑流分配给访问所述多个物理存储块的多个硬件流。所述多个硬件流的数量是固定的,并且与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的I/O处理而变化。
现在,包括各种新颖的实施细节和事项组合的以上和其他特征将参照附图被具体描述,并且在权利要求中被指出。将理解的是,这里描述的具体系统和方法仅仅通过说明的方式被示出并且不作为限制。本领域技术人员将理解的是,在不脱离本公开的范围的情况下,这里描述的原理和特征可在各种实施例和许多实施例中被采用。
附图说明
作为本说明书的一部分而被包括的附图示出目前优选的实施例,并连同以上给出的总体描述和以下给出的优选实施例的详细描述来解释和教导这里描述的原理。
图1示出根据一个实施例的示例流映射系统的框图;
图2A示出根据一个实施例的用于将逻辑流分配给硬件流的示例比例方案;
图2B示出根据一个实施例的用于将逻辑流分配给硬件流的示例加权比例方案;
图3A示出根据一个实施例的用于将命名空间的逻辑流分配给硬件流的示例公平且平衡方案;
图3B示出根据另一实施例的用于将命名空间的逻辑流分配给硬件流的示例公平且平衡方案;
图4示出根据一个实施例的用于将逻辑流分配给硬件流的示例平均且成比例方案;
图5A示出根据一个实施例的混合自动流传输方案的示例;
图5B示出根据另一实施例的混合自动流传输方案的示例;
图6是根据一个实施例的示例公平且平衡映射方案的流程图;
图7是根据一个实施例的示例成比例映射方案的流程图;
图8是根据一个实施例的示例平均且成比例映射方案的流程图;
图9是根据一个实施例的示例混合自动流传输映射方案的流程图。
为了说明的目的,贯穿附图,附图并非必须被成比例地绘制并且通常通过同样的标号表示相似的结构或功能的元素。附图仅意图便于描述这里描述的各种实施例。附图不描述在这里公开的教导的每个方面,并且不限制权利要求的范围。
具体实施方式
这里公开的特征和教导中的每个可被单独使用或与其它特征和教导结合地使用,以提供一种用于基于命名空间将流映射到存储块的系统和方法。参照附图进一步详细描述了单独地和组合地使用这些额外特征和教导中的许多特征和教导的代表性示例。这样的详细描述仅仅意图向本领域技术人员教导用于实践本教导的各个方面的更深入的细节,并不意图限制权利要求的范围。因此,从最广泛的意义上讲,在详细描述中,以上公开的对特征的组合对于实践所述教导而言可能不是必需的,而是仅仅用于具体地描述本教导的代表性示例。
在以下的描述中,仅仅为了解释的目的而阐述特定的术语以提供对本公开的彻底的理解。然而,本领域技术人员将清楚的是,对于实践本公开的教导而言,这些特定细节不是必需的。
这里的详细描述的一些部分根据针对计算机存储器之内的数据比特的操作的算法和符号表示而被提出。这些算法描述和表示被数据处理领域的技术人员用于将它们的工作的要旨有效地传达给所述领域的其他技术人员。算法在这里通常被认为是导致期望结果的前后一致的步骤的序列。所述步骤是需要对于物理量的物理操纵的步骤。通常,虽然不是必需的,但是这些物理量采用如下形式:能够被存储、被传输、被组合、被比较和被以其他方式操纵的电信号或磁信号。主要由于普遍使用的原因,将这些信号称作比特、值、元素、符号、字符、条目、数字等有时被证明是方便的。
然而,应该想到的是,这些术语和相似的术语中的全部将与合适的物理量相关联,并且仅仅是应用于这些物理量的方便的标签。除非有明显与以下讨论相反的特别陈述,否则要理解的是,贯穿说明书,利用诸如“处理”、“计算”、“演算”、“确定”、“显示”等术语的讨论指的是计算机系统或类似的电子计算装置的如下操作和处理:将计算机系统的寄存器和存储器之内的由物理(电子)量表示的数据操作并转换成计算机系统存储器或寄存器或其他这样的信息存储、传输或显示装置之内的由物理量类似地表示的其他数据。
另外,代表性示例和从属权利要求的各个特征可以以不被具体且明确地列举的方式被组合,以便提供本教导的额外的有用实施例。也要明确地注意的是,为了最初公开的目的,以及为了约束要求保护的主题的目的,所有的数值范围或对实体组的表示公开了每个可能的中间数值或中间实体。也要明确地注意的是,在附图中示出的组件的大小和形状被设计为帮助理解怎样实践本教导,但是不意图限制在示例中示出的大小和形状。
本公开描述了数据存储装置的流映射器,其中,所述流映射器用于基于命名空间的附属内容将硬流(即:支持SSD硬件的流,这里还被称作“硬件流”)资源分配给命名空间。命名空间的附属内容的示例包括但不限于:命名空间的数量、每个命名空间的逻辑流的数量、逻辑流的输入/输出模式、以及逻辑空间的使用。流映射器将如从主机看到的大量流和命名空间映射到可从数据存储装置获得的有限数量的硬件流。由该流映射器使用的映射方案可采取如下方式中的一项或更多项:公平且平衡方式、成比例方式、成比例且公平方式、以及混合自动流传输方式。
图1示出根据一个实施例的示例流映射系统的框图。数据存储装置100(例如,SSD)是包括四个命名空间NS 110a、110b、110c和110d的能够实现多流的驱动器,四个命名空间中的每个命名空间具有一个或更多个逻辑流145,例如,w、x、y和z。流映射系统具有固定数量的访问与数据存储装置100相关联的物理存储块160的硬件流155。逻辑流145的数量和硬件流155的数量可彼此不同。流映射器150可将命名空间的逻辑流145映射到硬件流155。
根据一个实施例,流映射器150可基于各种映射方案对逻辑流145进行映射。由流映射器150实施的映射方案可在运行时间期间根据各种操作条件(诸如,工作负荷、命名空间的数量以及逻辑流和硬件流的数量)而动态地改变。例如,流映射器150可使用以下项中的一项:成比例方案、公平且平衡方案、平均且成比例方案、以及混合自动流传输方案。
根据一个实施例,尚未被另外分配给任何流的来自命名空间的I/O流量(例如,I/O包)可被分配给通用I/O处理器。按照一些方式,通用I/O处理器聚集类似于流的I/O流量,但是进入通用I/O处理器的I/O数据除了不与其他流共享特征之外,还可能不具有统一的共同特征。这样的通用I/O处理器可根据实施而需要(或不需要)流。在它需要流的情况下,在特定流分配方案被应用之前,从总的硬件流可用量中减去被分配给通用I/O处理器的流。
根据一个实施例,流映射器150可使用自动流传输和/或流合并技术选择共享硬件流的命名空间。流映射器150可采用的流分配方式的示例包括但不限于:基于顺序地数据写入的方式、数据写入频率与新近(SFR)方式、多队列方式、轮询调度方式。命名空间的逻辑流可基于它们的数据的相似性(例如,写入顺序性、生命期限、定时模式、I/O大小、文件类型(例如,MS Excel、Word)等)而被分组在一起。各种自动流传输和/或流合并技术在如下美国专利申请中被描述:2015年7月13日提交的序列号为15/499,877且名称为“AutomaticStream Detection&Assignment Algorithm”的美国专利申请、2016年10月26日提交的序列号为15/458,968且名称为“Method of Consolidating Data Streams for Multi-StreamEnabled SSDs”的美国专利申请,2016年11月4日提交的序列号为15/344,422且名称为“Smart I/O Stream Detection based on Multiple Attributes”的美国专利申请,这些美国专利申请的公开内容通过引用被包含。
流映射器150采用的多命名空间控制通过如同数据存储装置100是多个虚拟驱动器一样地处理数据存储装置100,使多个逻辑地址空间(LBA空间)能够被分配给数据存储装置100。来自主机的写入命令包括特定命名空间的标识符。流映射器150可基于写入命令中所包括的命名空间的标识符来确定将被访问的命名空间。由此,主机可如同数据存储装置100是多个驱动器一样地,在无需将逻辑地址空间划分为多个空间的情况下处理数据存储装置100。由此,多命名空间控制可减少主机侧的总拥有成本(TCO)。
在一个实施例中,流映射器150可将来自命名空间的所有的逻辑I/O流如同它们是单个流一样(不管来自命名空间的逻辑流的数量如何)地对待,随后,以硬件流水平来分析并合并最相似的命名空间。
根据一个实施例,流映射器150可基于成比例方案对逻辑流进行映射。根据成比例方案,流映射器150为每个命名空间分配与其逻辑流需求和/或读取/写入吞吐量成比例的数量的硬件流。例如,逻辑流的数量可用于确定将被分配给每个命名空间的硬件流的比例。在另一示例中,逻辑流中的每个可被给定权重,并且针对每个命名空间的加权的逻辑流可用于确定硬件流分配的比例。如果命名空间的数量大于可用硬件流的数量,则一个或更多个命名空间可被合并。
图2A示出根据一个实施例的用于将逻辑流分配给硬件流的示例成比例方案。在该示例中,命名空间NS1具有1个逻辑流,命名空间NS2具有8个逻辑流,命名空间NS3具有64个逻辑流,命名空间NS4具有2个逻辑流,命名空间NS5具有4个逻辑流,命名空间NS6具有1个逻辑流。流映射器150可在不给定权重的情况下对待逻辑流。逻辑流的总数量是80。根据比例,命名空间NS2被分配有2个硬件流,命名空间NS3被分配有13个硬件流,命名空间NS5被分配有1个硬件流。命名空间NS1、NS4和NS6未被分配有任何硬件流。在NS2、NS3和NS5的逻辑流已完成或被暂停之后,被释放的硬件流可被重新分配给命名空间NS1、NS4和NS6。
根据一个实施例,基于成比例方案的命名空间分配可基于加权的逻辑流。每个逻辑流可被给定权重,并且针对每个命名空间的逻辑流的加权和在分配硬件流的数量的过程中被作为因素考虑。一些逻辑流可比其他逻辑流被给定更高的权重。另外,一些命名空间可比其他命名空间被给定更高的权重。例如,每个命名空间的至少一个逻辑流可基于逻辑流的吞吐量而被给定更高权重。具有高吞吐量的逻辑流可比具有较低吞吐量的逻辑流获得更高权重。因此,具有低数量的高吞吐量的逻辑流的命名空间在与具有高数量的低吞吐量的逻辑流的另一命名空间竞争时,可获得硬件流的共享。
图2B示出根据一个实施例的用于将逻辑流分配给硬件流的示例加权比例方案。在该示例中,命名空间NS1至NS6的逻辑流的总数量是80(1+8+64+2+4+1)。每个命名空间NS1至NS6的比例是0.0125、0.1、0.8、0.025、0.05和0.0125。每个命名空间NS1至NS6的总I/O吞吐量是12、24、64、8、8和4兆比特/秒(MB/s)。每个命名空间的吞吐量比例是其对于总吞吐量的贡献。也就是说,针对NS1至NS6的吞吐量(TP)比例是0.1、0.2、0.533、0.067、0.067和0.033。要注意的是,每个命名空间的I/O吞吐量可使用不同标准(诸如,每个单位时隙的数据包的数量)被测量。基于这些I/O吞吐量,针对每个命名空间的加权的逻辑流(LS)的数量被计算如下:
加权的LS=(吞吐量比例/LS比例)*LS的数量
例如,命名空间NS1仅具有1个逻辑流,但是,其加权的逻辑流是8((0.1/0.125)*1)个。这表示命名空间NS1的逻辑流(仅仅1个)被给定了比其逻辑流的数量高的权重,这是因为:针对该逻辑流的I/O吞吐量比属于其他命名空间NS2至NS6的其他逻辑流的平均I/O吞吐量更高。在另一示例中,命名空间NS3具有64个逻辑流,但是其加权的逻辑流是42.667((0.533/0.8)*64)个。这表示命名空间NS3的逻辑流与其逻辑流的数量相比被给定了更高的权重,这是因为其I/O吞吐量比属于其他命名空间NS1、NS2以及NS4至NS6的其他逻辑流的平均I/O吞吐量低。基于加权的逻辑流,硬件流被分配给每个命名空间NS1至NS6。
根据一个实施例,流映射器150可使用公平且平衡方案。流映射器150基于命名空间的数量在命名空间之间公平地划分硬件流,没有命名空间会具有比需要的逻辑流的数量更多的硬件流。如果存在比硬件流多的命名空间,则一些命名空间可被选择以共享硬件流。在一些实施例中,如果在给予每个命名空间公平数量的流之后存在剩余的硬件流,则剩余的硬件流可基于如上讨论的成比例方案被分配给命名空间。
如果存在比命名空间多的流并且流的划分不平均,则流映射器150基于对逻辑流的需要或I/O吞吐量将剩余的硬件流分配给命名空间。公平且平衡方案认识到:当用于分配或合并逻辑流的所有其他因素失败或不可用(或过于精细)时,命名空间是数据相关性或紧密性的最终确定因素。
例如,针对具有X个硬件流和Y个命名空间的系统,通过按照命名空间的数量划分的硬件流的数量来计算底线值:
底线值=取整[(硬件流的数量)/(命名空间的数量)]
根据底线值,流映射器150可应用不同的公平且平衡映射方案。
在一个实施例中,当底线值大于或等于1(即,可用硬件流的数量大于或等于命名空间的数量)时,流映射器150可为每个命名空间分配至少一个硬件流(即,公平分配)。这里,术语“公平”或“公平地”表示分配给命名空间的硬件流的最大数量不超过在命名空间中运行的逻辑流的数量。在基于底线值将硬件流公平分配给命名空间之后,流映射器150可基于每个命名空间中的逻辑流的剩余数量将剩余的硬件流分配给命名空间。
图3A示出根据一个实施例的用于将命名空间的逻辑流分配给硬件流的示例“公平且平衡”方案。在该示例中,存在总计16个可用的硬件流,并且6个命名空间(NS1至NS6)正在运行。因此,可用的硬件流的数量大于命名空间的数量,因此,底线值大于或等于1。
命名空间NS1具有1个逻辑流,命名空间NS2具有8个逻辑流,命名空间NS3具有64个逻辑流,命名空间NS4具有2个逻辑流,命名空间NS5具有4个逻辑流,命名空间6具有1个逻辑流。这些值是用于说明的简单示例,要注意的是,任何命名空间可具有任何数量的相关联的逻辑流。在这种情况下的底线值是2(取整(16/6)),因此,多达两个硬件流可被分配给命名空间中的每个命名空间。然而,命名空间NS1仅具有1个逻辑流,因此,仅仅一个硬件流被分配给命名空间NS1。这基于公平性完成硬件流的分配,并且16个可用的硬件流中的总计11个硬件流被分配。
一旦公平分配完成,流映射器150基于针对每个命名空间的逻辑流的“平衡”来分配剩余的硬件流。硬件流的平衡分配取决于每个命名空间的逻辑流的数量。例如,具有64个逻辑流的命名空间NS3基于针对每个命名空间的剩余逻辑流的比例(另外,假设吞吐量相等)被分配有剩余5个硬件流中的全部。命名空间NS1、NS2、NS4、NS5和NS6不被分配有剩余的硬件流中的任何硬件流,这是因为它们与命名空间NS3相比具有相对较小数量的逻辑流(在示例中,假设吞吐量相等)。剩余的硬件流的该“平衡”分配完成了总计16个硬件流的映射。
图3B示出根据另一实施例的用于将命名空间的逻辑流分配给硬件流的示例公平且平衡方案。在该示例中,由于存在8个可用的硬件流和14个命名空间,从而导致底线值小于1。因此,一些命名空间不能够被分配有至少一个硬件流。在这种情况下,流映射器150将每个命名空间的I/O流量模式作为一个整体来分析并将具有相同或相似特征的一些命名空间合并为逻辑命名空间簇,而不是将公平数量的硬件流分配给命名空间中的每个命名空间。流映射器150持续将命名空间合并为命名空间簇,直到命名空间簇的数量变为等于或小于可用硬件流的数量为止。通过流映射器150的对命名空间的簇级分组减少了命名空间簇的数量,使得每个命名空间簇被分配有公平数量的硬件流。
在该示例中,命名空间NS1、NS2和NS3被分为一组,命名空间NS5和NS6被分为一组,命名空间NS7、NS8和NS9被分为一组,命名空间NS11和NS12被分组为单独的命名空间簇。命名空间NS4、NS10、NS13和NS14未被分组,导致单个命名空间簇。命名空间簇中的每个可被分配有公平数量的硬件流,在这种情况下为一个硬件流。如果在将硬件流公平分配给命名空间簇之后剩余了任何硬件流,则剩余的硬件流可基于命名空间簇中的逻辑流的数量而被分配给一个或更多个命名空间簇,以进行平衡分配。
根据另一实施例,流映射器可基于平均且成比例方案对逻辑流进行映射。平均且成比例方案在硬件流的数量比命名空间的数量大得多时特别有用。这里,术语“平均”或“平均地”表示相同数量的硬件流作为基本数量被分配给每个命名空间。被分配给命名空间的平均数量的总数可不超过可用的硬件流。在一些情况下,平均数量可包括如以上在公平且平衡方案中讨论的“公平”数量,但是,可不限于小于划分所允许的硬件流的最大数量。流映射器150将定义的、小的基本数量的流(例如,一个硬件流)分配给每个命名空间。剩余的硬件流基于针对命名空间的逻辑流的比例而被分配给命名空间。要注意的是,随着硬件流的基本数量向底线值=取整[(硬件流的数量)/(命名空间的数量)]增加时,平均且成比例方案可崩塌为公平且平衡方案。平均且成比例方案类似于成比例方案,但是可首先确保所有的命名空间被分配有至少一个硬件流,并且成员最多的命名空间可被分配有剩余的硬件流的全部或大部分。
图4是根据一个实施例的用于将逻辑流分配给硬件流的示例平均且成比例方案。在该示例中,命名空间NS1具有1个逻辑流,命名空间NS2具有2个逻辑流,命名空间NS3具有8个逻辑流,命名空间NS4具有4个逻辑流,命名空间NS5具有1个逻辑流,命名空间NS6具有1个逻辑流。流映射器150将基本(平均)数量的硬件流(例如,一个硬件流)分配给命名空间中的每个以便为每个命名空间提供低水平的基本流传输能力,并且还基于逻辑流的比例(例如,未加权或加权的比例)(针对已经被分发的硬件流减去1)分配剩余的硬件流。在本示例中,假设针对逻辑流中的每个的吞吐量相似(即未加权的比例),则在剩余的硬件流之中,命名空间NS2被分配有一个硬件流,命名空间NS3被分配有6个硬件流,命名空间NS4被分配有3个硬件流。
根据另一实施例,流映射器150可基于混合自动流传输方案对逻辑流进行映射。流映射器150保留用于共享/合并/结合命名空间的特定数量的硬件流,从而将一个硬件流分配给多于一个的命名空间(这里,也被称作“跨命名空间”分配)。跨命名空间的硬件流是为能够跨多个命名空间的I/O流量模式而保留的。流映射器150也可使用自动流传输逻辑来检测这样的跨命名空间的流,以合并并且分配普通硬件流。随后,流映射器150可基于先前描述的分配方案(诸如,公平且平衡方案、成比例方案以及平均且成比例方案)中的一个将剩余的硬件流分配给命名空间。跨命名空间分配与以上参照图3B解释的命名空间分簇的不同之处可在于:在混合自动流传输方案中,命名空间分簇是有意的并且可直接在开始时被配置。也就是说,共享的硬件流的数量、属于它们的命名空间和/或硬件流中允许包括的数据量可由主机选择性地定义,并且可在数据存储装置分析剩余的硬件流将被怎样划分之前被执行。换言之,在混合自动流传输方式中,作为第一步,可将命名空间分组以便共享硬件流,随后,经由其他方式分发剩余的硬件流,然而,在“公平且平衡”、“成比例”以及“平均且成比例”方式中,在大部分硬件流已经经由首要方案被分配之后,分簇仅作为随后的步骤被进行。
图5A示出根据一个实施例的混合自动流传输方案的示例。在该示例中,存在8个硬件流和8个命名空间。要注意的是,硬件流的数量和命名空间的数量可相同或不同。流映射器150的自动流传输逻辑可确定命名空间NS6、NS7和NS8在行为上是连接的,并且可将3个(或任何合适数量,如主机或自动流传输检测器可确定的数量)硬件流分配给命名空间NS6、NS7和NS8。随后,命名空间NS1、NS2、NS3、NS4和NS5中的每个被独立地分配有剩余的硬件流中的一个。3个共享的硬件流可不被绑定到特定命名空间。相反,三个共享的硬件流被用于有效地执行跨命名空间NS6、NS7和NS8的I/O操作。作为更具体的示例,命名空间NS6、NS7和NS8均可具有多个逻辑流;给定命名空间之内的那些逻辑流中的每个可被定向到三个共享的硬件流中的一个中。
图5B示出根据另一实施例的混合自动流传输方案的示例。在该示例中,存在16个硬件流和8个命名空间。要注意的是,硬件流的数量和命名空间的数量可相同或不同。命名空间NS1至命名空间NS8中的每个被分别分配有一个硬件流。流映射器150的自动流传输逻辑可针对可跨多个命名空间的操作,为自动流传输保留剩余的8个硬件流。为自动流传输保留的硬件流对于如下情况是有用的:I/O操作未被指定有特定命名空间的指示I/O操作是跨命名空间操作的标识符。与此类似的分发在一些情况下是有用的:命名空间各自包含一些逻辑流,这些逻辑流中的一些本质上类似于其他命名空间的逻辑流,并且这些逻辑流中的一些本质上是该命名空间所独有的。每个命名空间的独有的逻辑流可使用专用于该命名空间的各个硬件流,类似于其他命名空间的逻辑流的那些逻辑流可使用共享的硬件流。
当命名空间(或命名空间簇)被增加、去除或实质上改变时,现在的流映射方案可被重新运行。如果存在对使用当前被分配的硬件流的命名空间的改变,则流映射器可重新运行映射方案以重新分发硬件流,并且新的且未被分配的命名空间可基于新的映射方案被分配有硬件流。当硬件流被重新分发时,映射方案可从一个映射方案改变为另一映射方案。例如,随着硬件流的基本数量的增加,平均且成比例方案可切换为公平且平衡方案。
图6是根据一个实施例的示例公平且平衡映射方案的流程图。主机可将流映射器配置为在公平且平衡模式下操作(601)。可选地,流映射器可监测I/O流量模式并且基于可用硬件流的数量、命名空间的数量、每个命名空间的逻辑流的数量等将自身配置为在公平且平衡模式下操作。流映射器计算底线值并且检查底线值是否大于或等于1(602)。如果底线值大于或等于1,则流映射器将公平数量的硬件流分配给每个命名空间(即,公平分配)(611)并且基于逻辑流的数量将剩余的硬件流分配给命名空间(即,平衡分配)(612)。如果底线值不大于或等于1,则流映射器分析针对每个命名空间的I/O流量模式并基于I/O流量模式合并命名空间以创建命名空间簇(621)。合并处理持续进行,直到命名空间簇的数量等于或小于可用硬件流的数量为止(622)。流映射器将公平数量的硬件流分配给每个命名空间簇(即,公平分配)(623)。
图7是根据一个实施例的示例成比例映射方案的流程图。主机可将流映射器配置为在成比例模式下操作(701)。可选地,流映射器可监测I/O流量模式并基于可用硬件流的数量、命名空间的数量、每个命名空间的逻辑流的数量等将自身配置为在成比例模式下操作。流映射器基于逻辑流的比例将硬件流分配给命名空间(702)。如果存在未被分配有硬件流的任何命名空间(703),则流映射器监测被分配有硬件流的命名空间的完成的流(704),并检查是否释放了任何硬件流(705)。流映射器将被释放的硬件流重新分配给未被分配的命名空间(706)。在一个实施例中,流映射器监测使用通用I/O流的命名空间的通用I/O。当命名空间(或命名空间簇)被增加、去除或实质上改变时,流映射器可重新运行映射方案,并且硬件流可被重新分发。
图8是根据一个实施例的示例平均且成比例映射方案的流程图。主机可将流映射器配置为在平均且成比例模式下操作(801)。可选地,流映射器可监测I/O流量模式并基于可用硬件流的数量、命名空间的数量、每个命名空间的逻辑流的数量等将自身配置为在平均且成比例模式下操作。流映射器将第一平均数量的硬件流分配给每个命名空间(即,平均分配)(802)。流映射器还基于比例分布将任意剩余的硬件流分配给命名空间(即,成比例分配)。
图9是根据一个实施例的示例混合自动流传输映射方案的流程图。主机可将流映射器配置为在混合自动流传输模式下操作(901)。可选地,流映射器可监测I/O流量模式并基于可用硬件流的数量、命名空间的数量、每个命名空间的逻辑流的数量等将自身配置为在混合自动流传输模式下操作。流映射器监测I/O流量模式(902)并确定是否存在可在行为上连接的任何命名空间(903)。在行为上连接的命名空间可具有逻辑流,其中,所述逻辑流具有相同或相似的写入顺序性、生命期限、定时模式、I/O大小、文件类型和/或I/O流量模式。如果存在任何在行为上连接的命名空间,则流映射器将基本数量的硬件流分配给在行为上连接的命名空间(911)并且还将剩余的硬件流分配给用于自动流传输的非连接的命名空间中的每个(912)。如果不存在在行为上连接的命名空间,则流映射器将基本数量的硬件流分配给每个命名空间(921)并且将剩余的硬件流分配给命名空间之中的用于自动流传输的命名空间(922)。
根据一个实施例,一种用于流管理的方法包括:从多个命名空间接收逻辑流;确定与所述多个命名空间相关联的逻辑流的特征;选择可配置分配模式;基于逻辑流的特征和可配置分配模式将与所述多个命名空间相关联的逻辑流分配给访问与数据存储装置相关联的物理存储块的多个硬件流。所述多个硬件流的数量是固定的,并且与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的输入/输出(I/O)处理而变化。
逻辑流的特征可包括:写入顺序性、生命期限、计时模式、I/O大小、文件类型、每个命名空间的逻辑流的数量、每个命名空间的逻辑流的比例、以及逻辑流的I/O流量模式。
可配置分配模式可以是公平且平衡模式,所述方法还可包括:计算底线值以确定硬件流的数量是否大于或等于命名空间的数量;如果底线值大于或等于1,则将公平数量的硬件流分配给每个命名空间并基于每个命名空间的逻辑流的数量将剩余的硬件流分配给命名空间;如果底线值小于1,则通过整体地分析属于每个命名个空间的逻辑流的I/O流量模式来分析每个命名空间的I/O流量模式,并将具有相同或相似I/O流量模式的命名空间合并为一个或更多个命名空间簇;将公平数量的硬件流分配给每个命名空间簇。
命名空间可被聚集成簇,直到命名空间簇的数量等于或小于硬件流的数量为止。
可配置分配模式可以是成比例模式,所述方法还可包括:基于针对每个命名空间的逻辑流的加权比例将硬件流分配给命名空间。逻辑流的加权比例可基于I/O吞吐量和逻辑流的数量而被计算。
可配置分配模式可以是平均且成比例模式,所述方法还可包括:将第一数量的硬件流分配给每个命名空间;基于针对每个命名空间的逻辑流的加权比例将剩余的硬件流分配给命名空间。逻辑流的加权比例可基于I/O吞吐量和逻辑流的数量而被计算。
可配置分配模式可以是混合自动流传输模式,所述方法还可包括:监测与逻辑流相关联的I/O流量模式;基于I/O流量模式确定是否存在在行为上连接的命名空间。
所述方法还可还包括:将基本数量的硬件流分配给在行为上连接的命名空间;将剩余的硬件流分配给在行为上不连接的用于自动流传输的每个命名空间。
所述方法还可包括:如果不存在在行为上连接的命名空间,则将基本数量的硬件流分配给每个命名空间;将剩余的硬件流分配给用于自动流传输的命名空间。
根据另一实施例,一种数据存储装置包括:多个物理存储块;流映射器,被配置为:从多个命名空间接收逻辑流;确定与所述多个命名空间相关联的逻辑流的特征;选择可配置分配模式;基于逻辑流的特征和可配置分配模式,将与所述多个命名空间相关联的逻辑流分配给访问所述多个物理存储块的多个硬件流。所述多个硬件流的数量是固定的,与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的I/O处理而变化。
数据存储装置可以是被实现为具有自动流传输特征的固态驱动器(SSD)。
逻辑流的特征可包括:写入顺序性、生命期限、计时模式、I/O大小、文件类型、每个命名空间的逻辑流的数量、每个命名空间的逻辑流的比例、以及逻辑流的I/O流量模式。
可配置分配模式可以是公平且平衡模式,所述流映射器还可被配置为:计算底线值以确定硬件流的数量是否大于或等于命名空间的数量;如果底线值大于或等于1,则将公平数量的硬件流分配给每个命名空间并基于每个命名空间的逻辑流的数量将剩余的硬件流分配给命名空间;如果底线值小于1,则通过整体地分析属于每个命名个空间的逻辑流的I/O流量模式来分析每个命名空间的I/O流量模式,并将具有相同或相似I/O流量模式的命名空间合并为一个或更多个命名空间簇;将公平数量的硬件流分配给每个命名空间簇。
命名空间可被聚集成簇,直到命名空间簇的数量等于或小于硬件流的数量为止。
可配置分配模式可以是成比例模式,所述流映射器还可被配置为:基于针对每个命名空间的逻辑流的加权比例将硬件流分配给命名空间。逻辑流的加权比例可基于I/O吞吐量和逻辑流的数量而被计算。
可配置分配模式可以是平均且成比例模式,所述流映射器还可被配置为:将第一数量的硬件流分配给每个命名空间;基于针对每个命名空间的逻辑流的加权比例将剩余的硬件流分配给命名空间。逻辑流的加权比例可基于I/O吞吐量和逻辑流的数量而被计算。
可配置分配模式可以是混合自动流传输模式,所述流映射器还可被配置为:监测与逻辑流相关联的I/O流量模式;基于I/O流量模式确定是否存在在行为上连接的命名空间。
所述流映射器还可被配置为:将基本数量的硬件流分配给在行为上连接的命名空间;将剩余的硬件流分配给在行为上不连接的用于自动流传输的每个命名空间。
所述流映射器还可被配置为:如果不存在在行为上连接的命名空间,则将基本数量的硬件流分配给每个命名空间;将剩余的硬件流分配给用于自动流传输的命名空间。
在上文中已经描述了上述示例实施例以说明实现用于基于命名空间将流映射到存储块的系统和方法的各种实施例。对于本领域普通技术人员而言,将发生对公开的示例实施例的各种修改和变更。意图处于发明的范围之内的主题在权利要求中被阐述。
Claims (11)
1.一种方法,包括:
从多个命名空间接收逻辑流;
确定与所述多个命名空间相关联的逻辑流的特征;
选择可配置分配模式;
基于逻辑流的特征和可配置分配模式将与所述多个命名空间相关联的逻辑流分配给访问与数据存储装置相关联的物理存储块的多个硬件流,
其中,访问与数据存储装置相关联的物理存储块的硬件流的数量是固定的,并且
其中,与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的输入/输出I/O处理而变化,
其中,可配置分配模式包括公平且平衡模式、成比例模式、平均且成比例模式和混合自动流传输模式中的一个或多个,
其中,当可配置分配模式是公平且平衡模式时,所述方法还包括:
计算底线值以确定硬件流的数量是否大于或等于命名空间的数量,其中,底线值等于与通过将硬件流的数量除以命名空间的数量而获得的值对应的取整后的值;
如果底线值大于或等于1,则将公平数量的硬件流分配给每个命名空间并基于每个命名空间的逻辑流的数量将剩余的硬件流分配给命名空间;
如果底线值小于1,则通过整体地分析属于每个命名空间的逻辑流的I/O流量模式来分析每个命名空间的I/O流量模式,并将具有相同或相似I/O流量模式的命名空间合并为一个或多个命名空间簇;将公平数量的硬件流分配给每个命名空间簇,
其中,当可配置分配模式是成比例模式时,所述方法还包括:
基于针对每个命名空间的逻辑流的加权比例将硬件流分配给命名空间,其中,逻辑流的加权比例基于I/O吞吐量和逻辑流的数量而被计算,
其中,当可配置分配模式是平均且成比例模式时,硬件流的数量大于命名空间的数量,所述方法还包括:
将第一数量的硬件流分配给每个命名空间;
基于针对每个命名空间的逻辑流的加权比例将剩余的硬件流分配给命名空间,其中,逻辑流的加权比例基于I/O吞吐量和逻辑流的数量而被计算,
其中,当可配置分配模式是混合自动流传输模式时,所述方法还包括:
监测与逻辑流相关联的I/O流量模式;
基于I/O流量模式确定是否存在在行为上连接的命名空间。
2.如权利要求1所述的方法,其中,逻辑流的特征包括:写入顺序性、生命期限、计时模式、I/O大小、文件类型、每个命名空间的逻辑流的数量、每个命名空间的逻辑流的比例、以及逻辑流的I/O流量模式。
3.如权利要求1所述的方法,其中,当可配置分配模式是公平且平衡模式时,命名空间被聚集成簇,直到命名空间簇的数量等于或小于硬件流的数量为止。
4.如权利要求1所述的方法,当可配置分配模式是混合自动流传输模式时,所述方法还包括:
将基本数量的硬件流分配给在行为上连接的命名空间;
将剩余的硬件流分配给在行为上不连接的用于自动流传输的每个命名空间。
5.如权利要求1所述的方法,当可配置分配模式是混合自动流传输模式时,所述方法还包括:
如果不存在在行为上连接的命名空间,则将基本数量的硬件流分配给每个命名空间;
将剩余的硬件流分配给用于自动流传输的命名空间。
6.一种数据存储装置,包括:
多个数据存储块;
流映射器,被配置为:
从多个命名空间接收逻辑流;
确定与所述多个命名空间相关联的逻辑流的特征;
选择可配置分配模式;
基于逻辑流的特征和可配置分配模式,将与所述多个命名空间相关联的逻辑流分配给访问所述多个数据存储块的多个硬件流,其中,访问与数据存储装置相关联的数据存储块的硬件流的数量是固定的,并且
其中,与所述多个命名空间相关联的逻辑流的数量根据在主计算机上运行的输入/输出I/O处理而变化,
其中,可配置分配模式包括公平且平衡模式、成比例模式、平均且成比例模式和混合自动流传输模式中的一个或多个,
其中,当可配置分配模式是公平且平衡模式时,所述流映射器还被配置为:
计算底线值以确定硬件流的数量是否大于或等于命名空间的数量,其中,底线值等于与通过将硬件流的数量除以命名空间的数量而获得的值对应的取整后的值;
如果底线值大于或等于1,则将公平数量的硬件流分配给每个命名空间并基于每个命名空间的逻辑流的数量将剩余的硬件流分配给命名空间;
如果底线值小于1,则通过整体地分析属于每个命名空间的逻辑流的I/O流量模式来分析每个命名空间的I/O流量模式,并将具有相同或相似I/O流量模式的命名空间合并为一个或多个命名空间簇;将公平数量的硬件流分配给每个命名空间簇,
其中,当可配置分配模式是成比例模式时,所述流映射器还被配置为:
基于针对每个命名空间的逻辑流的加权比例将硬件流分配给命名空间,其中,逻辑流的加权比例基于I/O吞吐量和逻辑流的数量而被计算,
其中,当可配置分配模式是平均且成比例模式时,硬件流的数量大于命名空间的数量,所述流映射器还被配置为:
将第一数量的硬件流分配给每个命名空间;
基于针对每个命名空间的逻辑流的加权比例将剩余的硬件流分配给命名空间,其中,逻辑流的加权比例基于I/O吞吐量和逻辑流的数量而被计算,
其中,当可配置分配模式是混合自动流传输模式时,所述流映射器还被配置为:
监测与逻辑流相关联的I/O流量模式;
基于I/O流量模式确定是否存在在行为上连接的命名空间。
7.如权利要求6所述的数据存储装置,其中,数据存储装置是利用自动流传输特征来实现的固态驱动器SSD。
8.如权利要求6所述的数据存储装置,其中,逻辑流的特征包括:写入顺序性、生命期限、计时模式、I/O大小、文件类型、每个命名空间的逻辑流的数量、每个命名空间的逻辑流的比例、以及逻辑流的I/O流量模式。
9.如权利要求6所述的数据存储装置,其中,当可配置分配模式是公平且平衡模式时,命名空间被聚集成簇,直到命名空间簇的数量等于或小于硬件流的数量为止。
10.如权利要求6所述的数据存储装置,其中,当可配置分配模式是混合自动流传输模式时,所述流映射器还被配置为:
将基本数量的硬件流分配给在行为上连接的命名空间;
将剩余的硬件流分配给在行为上不连接的用于自动流传输的每个命名空间。
11.如权利要求6所述的数据存储装置,其中,当可配置分配模式是混合自动流传输模式时,所述流映射器还被配置为:
如果不存在在行为上连接的命名空间,则将基本数量的硬件流分配给每个命名空间;
将剩余的硬件流分配给用于自动流传输的命名空间。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762508829P | 2017-05-19 | 2017-05-19 | |
US62/508,829 | 2017-05-19 | ||
US15/678,986 | 2017-08-16 | ||
US15/678,986 US10338842B2 (en) | 2017-05-19 | 2017-08-16 | Namespace/stream management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959111A CN108959111A (zh) | 2018-12-07 |
CN108959111B true CN108959111B (zh) | 2024-03-08 |
Family
ID=64271704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810397204.1A Active CN108959111B (zh) | 2017-05-19 | 2018-04-28 | 数据存储装置和用于流管理的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10338842B2 (zh) |
KR (1) | KR102290540B1 (zh) |
CN (1) | CN108959111B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656834B (zh) * | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据管理方法以及数据储存系统 |
CN109656833B (zh) * | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据储存装置 |
JP2019079464A (ja) * | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US11113198B2 (en) | 2019-05-06 | 2021-09-07 | Micron Technology, Inc. | Timed data transfer between a host system and a memory sub-system |
US11113006B2 (en) * | 2019-05-06 | 2021-09-07 | Micron Technology, Inc. | Dynamic data placement for collision avoidance among concurrent write streams |
KR20200145151A (ko) * | 2019-06-20 | 2020-12-30 | 삼성전자주식회사 | 맵핑 정보를 축약하는 플래시 변환 계층 구조를 이용하여 메모리 리소스를 관리하는 데이터 저장 장치 |
CN110504002B (zh) * | 2019-08-01 | 2021-08-17 | 苏州浪潮智能科技有限公司 | 一种硬盘数据一致性测试方法与装置 |
KR20210085674A (ko) | 2019-12-31 | 2021-07-08 | 삼성전자주식회사 | 다중-스트림을 지원하도록 구성된 스토리지 장치 및 그것의 동작 방법 |
KR20220049329A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105103114A (zh) * | 2013-03-14 | 2015-11-25 | 微软技术许可有限责任公司 | 提供多个层的数据存储、文件和卷系统 |
CN105474184A (zh) * | 2013-09-28 | 2016-04-06 | 英特尔公司 | 用来管理高容量储存器装置的设备和方法 |
CN106233264A (zh) * | 2014-03-31 | 2016-12-14 | 亚马逊科技公司 | 使用可变条带大小的文件存储装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001118335A (ja) | 1999-10-14 | 2001-04-27 | Internatl Business Mach Corp <Ibm> | データ記録・再生装置、データ記録方法、データ再生方法、データ記録・再生方法、ハードディスクコントローラおよびavデータの記録・再生方法 |
US8738621B2 (en) | 2009-01-27 | 2014-05-27 | EchoStar Technologies, L.L.C. | Systems and methods for managing files on a storage device |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
US9466383B2 (en) | 2013-12-30 | 2016-10-11 | Sandisk Technologies Llc | Non-volatile memory and method with adaptive logical groups |
US9984110B2 (en) * | 2014-08-21 | 2018-05-29 | Dropbox, Inc. | Multi-user search system with methodology for personalized search query autocomplete |
US20160283125A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US9696935B2 (en) | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US10235097B2 (en) * | 2015-07-21 | 2019-03-19 | Samsung Electronics Co., Ltd. | Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller |
US9996473B2 (en) * | 2015-11-13 | 2018-06-12 | Samsung Electronics., Ltd | Selective underlying exposure storage mapping |
US20180150257A1 (en) * | 2016-11-30 | 2018-05-31 | Microsoft Technology Licensing, Llc | File System Streams Support And Usage |
US10768829B2 (en) * | 2017-02-15 | 2020-09-08 | Microsoft Technology Licensing, Llc | Opportunistic use of streams for storing data on a solid state device |
US10761750B2 (en) * | 2017-03-09 | 2020-09-01 | Netapp Inc. | Selectively storing data into allocation areas using streams |
-
2017
- 2017-08-16 US US15/678,986 patent/US10338842B2/en active Active
-
2018
- 2018-03-22 KR KR1020180033300A patent/KR102290540B1/ko active IP Right Grant
- 2018-04-28 CN CN201810397204.1A patent/CN108959111B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105103114A (zh) * | 2013-03-14 | 2015-11-25 | 微软技术许可有限责任公司 | 提供多个层的数据存储、文件和卷系统 |
CN105474184A (zh) * | 2013-09-28 | 2016-04-06 | 英特尔公司 | 用来管理高容量储存器装置的设备和方法 |
CN106233264A (zh) * | 2014-03-31 | 2016-12-14 | 亚马逊科技公司 | 使用可变条带大小的文件存储装置 |
Non-Patent Citations (1)
Title |
---|
周恩强 ; 张伟 ; 董勇 ; 卢宇彤 ; .面向分层混合存储架构的协同式突发缓冲技术.国防科技大学学报.2015,(第01期),47-52页. * |
Also Published As
Publication number | Publication date |
---|---|
CN108959111A (zh) | 2018-12-07 |
US20180335947A1 (en) | 2018-11-22 |
KR102290540B1 (ko) | 2021-08-18 |
KR20180127176A (ko) | 2018-11-28 |
US10338842B2 (en) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959111B (zh) | 数据存储装置和用于流管理的方法 | |
US9652379B1 (en) | System and method for reducing contentions in solid-state memory access | |
US8261281B2 (en) | Optimizing allocation of resources on partitions of a data processing system | |
JP5744909B2 (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
US8190795B2 (en) | Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program | |
US8112524B2 (en) | Recommending moving resources in a partitioned computer | |
US7590816B2 (en) | Computer system, management computer and storage system, and storage area allocation amount controlling method | |
CN103577345A (zh) | 提高由多个系统共享的存储高速缓存灵活性的方法和结构 | |
JP7141804B2 (ja) | リソース管理のための方法、装置、電子機器及び記憶媒体 | |
CN103384877A (zh) | 包括闪存的存储系统和存储控制方法 | |
US20100229175A1 (en) | Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems | |
CN104090847A (zh) | 一种固态存储设备的地址分配方法 | |
US9032147B1 (en) | Storage space allocation for logical disk creation | |
JP2000222281A5 (zh) | ||
CN111736957A (zh) | 多类型业务的混合部署方法、装置、设备及存储介质 | |
CN112955880A (zh) | 用于处理片上系统中的地址解码的装置和方法 | |
CN114556309A (zh) | 内存空间的分配方法、装置及存储介质 | |
US20180292988A1 (en) | System and method for data access in a multicore processing system to reduce accesses to external memory | |
CN109788325B (zh) | 视频任务分配方法及服务器 | |
EP2869183A1 (en) | Information processing apparatus, storage device control circuit, and storage device control method | |
CN112889036B (zh) | 基于类别的动态存储器插槽分配 | |
US20190384722A1 (en) | Quality of service for input/output memory management unit | |
CN103795621A (zh) | 一种虚拟机的数据交换方法、装置及物理主机 | |
CN112597080B (zh) | 读请求控制装置及方法以及存储器控制器 | |
US20030163609A1 (en) | Method for dispatching access requests to a direct access storage deivce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |