CN110221770A - 在存储装置当中改进数据分布的方法 - Google Patents

在存储装置当中改进数据分布的方法 Download PDF

Info

Publication number
CN110221770A
CN110221770A CN201910110042.3A CN201910110042A CN110221770A CN 110221770 A CN110221770 A CN 110221770A CN 201910110042 A CN201910110042 A CN 201910110042A CN 110221770 A CN110221770 A CN 110221770A
Authority
CN
China
Prior art keywords
storage
storage device
memory
weight
partially based
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910110042.3A
Other languages
English (en)
Inventor
A.R.查加姆雷迪
M.J.库马尔
S.森
M.K.纳奇姆图
G.凯因
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110221770A publication Critical patent/CN110221770A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0653Monitoring storage devices or systems
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0683Plurality of storage devices

Abstract

示例包含用于为在计算系统中存储数据而确定存储策略的技术,计算系统具有一个或多个存储节点,每个存储节点包含一个或多个存储装置。一种技术包含:从存储节点的存储装置得到评级信息;至少部分基于评级信息,将存储装置指派到存储池;以及至少部分基于所指派的存储池和评级信息,自动为计算系统确定存储策略。

Description

在存储装置当中改进数据分布的方法
技术领域
本文描述的示例一般涉及用于改进在计算系统中的存储装置中存储和存取数据的性能的技术。
背景技术
存储装置包含一种或多种类型的存储器。与每存储器元件仅能够存储1比特的单级单元(SLC)相比,多级单元(MLC)是能够存储多于单比特的信息的存储器元件。三级单元(TLC)和四级单元(QLC)是每单元分别能够存储3比特和4比特的MLC存储器的版本。(注意,由于惯例,名称“多级单元”有时特别用来指“二级单元”)。大体上,存储器常称作SLC(每单元1比特-最快,最高成本);MLC(每单元2比特);TLC(每单元3比特);以及QLC(每单元4比特-最慢,最小成本)。MLC存储器的一个示例是QLC NAND闪速存储器。
取决于数据对象的大小、数据对象的存取频率、所期望的存取次数等等,一些计算系统使用不同类型的存储装置来存储数据对象。一些计算系统可包含一个或多个存储节点,其中每个存储节点包含一个或多个存储装置。计算系统可具有各种类型的存储器的存储装置,其具有各种操作特性和能力。在一些计算系统中,散列技术被用于提供跨计算系统中的存储节点的整个集合来分布和定位数据对象的确定性方式。一种已知的散列算法使用存储节点的相对权重来识别如何在存储节点的集群中均匀分布数据对象而不会创建热点。
数据中心管理员当前在系统控制台使用命令行工具来识别存储装置的类型、将存储装置编组到逻辑池中,并且基于文档化的存储装置规范来人工地指派权重。这种人工存储设置(在一些情况中,被实现成定制的命令行脚本)基于已知的参考配置使存储节点权重自动化,以便在存储池规定步骤期间一致的散列。
由于缺乏基于存储装置属性向存储池中的存储节点指派权重的明确方式,当前使用的解决方案是人工的并且易于出错。此外,存储装置规范可能不可获得,或者可能是错误的或过期的,这使此信息成为用于评估存储装置性能的不可靠源。数据中心管理员通常运行一些综合(例如,人造的或人为的)基准来识别存储装置性能特性,然后人工地为存储装置和存储节点指派权重。鉴于现代计算机服务器场(farm)中愈加大量的存储装置,此方法是有问题的。
附图说明
图1示出示例计算系统。
图2示出示例存储节点。
图3示出示例服务器计算系统。
图4示出得到存储装置评级的示例。
图5示出存储管理操作的逻辑流程的示例。
图6示出将存储装置指派到池的逻辑流程的示例。
图7示出示例存储介质。
具体实施方式
如本公开中所构思的,存储装置可暴露性能特性信息(例如,评级信息),该信息由存储管理部件用于为计算系统确定存储管理策略。在一个实施例中,存储管理策略可基于自动化的存储器编组(也称作汇合成池或分层)以及基于存储装置性能特性信息而指派的相对权重,从而改进在计算系统内基于散列的数据分布。
图1示出示例计算系统。计算系统100包含一个或多个数据中心区域,诸如数据中心区域1 102、数据中心区域2 104、…数据中心区域N 106,其中N是自然数。计算系统100中的每个数据中心区域包含至少一个存储管理部件108。在本发明的实施例中,存储管理部件108从数据中心区域中的存储装置获得性能特性信息,并且为每个存储装置确定一个或多个存储装置权重值。存储管理部件108至少部分基于属于存储节点的存储装置的存储装置权重值,为每个存储节点确定存储节点权重值。存储管理部件至少部分基于存储节点权重值和存储装置权重值,为计算系统中的数据中心区域确定存储管理策略。存储管理部件108可使用所确定的存储装置权重值将存储装置编组到存储池中。当确定要在计算系统中何处存储数据时,计算系统100则可使用存储管理策略。
计算系统100中的每个数据中心区域可包含一个或多个存储节点。例如,数据中心区域1 102包含数量为“J”的存储节点,其表示为存储节点1-1 110、存储节点1-2 112、…存储节点1-J 114,其中J是自然数。例如,数据中心区域2 104包含数量为“K”的存储节点,其表示为存储节点2-1 116、存储节点2-2 118、…存储节点2-K 120,其中K是自然数。例如,数据中心区域N 106包含数量为“L”的存储节点,其表示为存储节点N-1 122、存储节点N-2124、…存储节点N-L 126,其中L是自然数。
图2示出示例存储节点。存储节点200可表示图1中示出的任何存储节点。例如,存储节点A 202可包含如所示的一个或多个存储装置,诸如存储装置A-1 204、存储装置A-2206、…存储装置A-M 208,其中M是自然数。
因此,在一些示例中,取决于计算系统100的总体存储要求,计算系统可包含许多存储节点,其中每个存储节点可能包含许多存储装置。此外,每个存储装置可包含一个或多个存储器。每个存储装置204、206、…208可具有存储管理部件108可发现的性能特性信息。
图3示出数据中心区域中的示例服务器计算系统300。在一些示例中,如图3中所示,系统300包含通过I/O接口303和I/O接口323耦合到一个或多个存储装置320的服务器310。存储装置320表示图2的存储装置A-1 204、存储装置A-2 206到存储装置A-M 208中的任何一个或多个。如图3中所示,服务器310可包含操作系统(OS)311、一个或多个系统存储器装置312、电路316以及存储管理部件108。对于这些示例,电路316可能够运行服务器310的各种功能元件,诸如可至少部分在一个或多个系统存储器装置312内维护的存储管理部件108以及OS 311。电路316可包含主机处理电路,其包含一个或多个中央处理单元(CPU)(未示出)以及关联的芯片集和/或控制器。
根据一些示例,如图3中所示,OS 311可包含文件系统313以及一个或多个存储装置驱动程序315,而且一个或多个存储装置320可包含存储控制器324、一个或多个存储存储器装置322和存储器326。OS 311可被布置成实现存储装置驱动程序315来至少协调从文件313-1到313-n当中的文件的数据到一个或多个存储存储器装置322的临时存储,其中“n”是大于1的所有正整数中的任一个。所述数据例如可以是由运行应用程序(图3中未示出)或OS311的至少部分而产生的或者可以与其相关联。如下面更详细描述的,OS 311与存储装置320传递一个或多个命令和事务,以将数据写到存储装置320或从存储装置320读取数据。命令和事务可由在存储装置320的逻辑和/或特征来组织和处理,以将数据写到存储装置320或从存储装置320读取数据。
在一些示例中,存储控制器324可包含接收向存储装置320处的一个或多个存储存储器装置322的事务请求的逻辑和/或特征。对于这些示例,事务请求可由OS 311发起或者源自OS 311,在一些实施例中,OS 311可通过输入/输出(I/O)接口303和323,利用文件系统313将数据写到存储装置320/从存储装置320读取数据。
在一些示例中,存储器326可包含易失性类型的存储器,包含但不限于:RAM、D-RAM、DDR SDRAM、SRAM、T-RAM或Z-RAM。易失性存储器的一个示例包含DRAM或诸如SDRAM的某种变体。如本文描述的存储器子系统可兼容多种存储器技术,诸如DDR4(DDR版本4,由JEDEC于2012年9月公布的初始规范)、LPDDR4(低功率双倍数据率(LPDDR)版本4,最初由JEDEC于2014年8月公布的JESD209-4)、WIO2(宽I/O 2(WideIO2),最初由JEDEC于2014年8月公布的JESD229-2)、HBM(高带宽存储器DRAM,最初由JEDEC于2013年10月公布的JESD235)、DDR5(DDR版本5,当前由JEDEC讨论中)、LPDDR5(LPDDR版本5,当前由JEDEC讨论中)、HBM2(HBM版本2,当前由JEDEC讨论中)和/或其它技术以及基于此类规范的派生物或扩展的技术。
然而,不以此方式限制示例,并且在一些实例中,存储器326可包含非易失性类型的存储器,即使到存储器326的电力被中断,这类存储器的状态也是确定的。在一些示例中,存储器326可包含非易失性类型的存储器,其诸如对于NAND或NOR技术是可按块寻址的。因此,存储器326也能够包含未来一代类型的非易失性存储器,诸如三维交叉点存储器(以商业方式从Intel公司可获得的3D XPointTM)或者其它可按字节寻址的非易失性类型的存储器。根据一些示例,存储器126可包含多种类型的非易失性存储器,其包含:硫属玻璃、多阈值级别NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻存储器、纳米线存储器、FeTRAM、结合忆阻器技术的MRAM、或者STT-MRAM、或者上面任何存储器的组合,或者其它存储器。
在一些示例中,一个或多个存储存储器装置322可以是存储来自写入事务和/或写入操作的数据的装置。一个或多个存储存储器装置322可包含具有门的一个或多个芯片或管芯,其可单独包含一种或多种类型的非易失性存储器,包含但不限于:NAND闪速存储器、NOR闪速存储器、3-D交叉点存储器(3D XPointTM)、铁电存储器、SONOS存储器、铁电聚合物存储器、FeTRAM、FeRAM、奥氏存储器、纳米线、EEPROM、相变存储器、忆阻器或者STT-MRAM。对于这些示例,存储装置320可被布置或配置成固态驱动器(SSD)。可按块读取和写入数据,而且可在存储器326中保存用于这些块的映射或定位信息。
根据一些示例,用于一个或多个存储存储器装置322中存储的并且经由文件313-1到313-n存取的数据的、在存储装置驱动程序315和存储控制器324之间的通信可通过I/O接口303和I/O接口323来路由。I/O接口303和323可被布置成串行高级技术附件(SATA)接口以将服务器310的元件耦合到存储装置320。在另一示例中,I/O接口303和323可被布置成串行附着小型计算机系统接口(SCSI)(或者简写为SAS)接口以将服务器310的元件耦合到存储装置320。在另一示例中,I/O接口303和323可被布置成外围部件互连快速(PCIe)接口以将服务器310的元件耦合到存储装置320。在另一示例中,I/O接口303和323可被布置成非易失性存储器快速(NVMe)接口以将服务器310的元件耦合到存储装置320。对于此其它示例,可利用通信协议通过如产业标准或规范(包含产物或变体)中描述的I/O接口303和323来通信,所述产业标准或规范是诸如在2014年11月公布的外围部件互连(PCI)快速基础规范修订版3.1(“PCI快速规范”或“PCIe规范”)或后续修订版,和/或也在2014年11月公布的非易失性存储器快速(NVMe)规范修订版1.2(“NVMe规范”)或后续修订版。
在一些示例中,一个或多个系统存储器装置312可存储信息和命令,所述命令可由电路316用于处理信息。此外,如图3中所示,电路316可包含存储器控制器318。存储器控制器318可被布置成控制对至少暂时存储在一个或多个系统存储器装置312的数据的存取,以便最终存储到存储装置320处的一个或多个存储存储器装置322。
在一些示例中,存储装置驱动程序315可包含转发与源自OS 311的一个或多个读取或写入事务和/或读取或写入操作关联的命令的逻辑和/或特征。例如,存储装置驱动程序315可转发与写入事务关联的命令,以便可使数据存储到存储装置320处的一个或多个存储存储器装置322。
一个或多个系统存储器装置312可包含一个或多个芯片或管芯,所述芯片或管芯具有诸如RAM、D-RAM、DDR SDRAM、SRAM、T-RAM或Z-RAM之类的易失性类型的存储器。然而,不以此方式限制示例,并且在一些实例中,一个或多个系统存储器装置312可包含非易失性类型的存储器,包含但不限于:NAND闪速存储器、NOR闪速存储器、3-D交叉点存储器(3DXPointTM)、铁电存储器、SONOS存储器、铁电聚合物存储器、FeTRAM、FeRAM、奥氏存储器、纳米线、EEPROM、相变存储器、忆阻器或者STT-MRAM。
持久存储器319可包含具有非易失性类型的存储器的一个或多个芯片或管芯,所述非易失性类型的存储器包含但不限于:NAND闪速存储器、NOR闪速存储器、3-D交叉点存储器(3D XPointTM)、铁电存储器、SONOS存储器、铁电聚合物存储器、FeTRAM、FeRAM、奥氏存储器、纳米线、EEPROM、相变存储器、忆阻器或者STT-MRAM。
根据一些示例,服务器310可包含但不限于:数据中心区域中的服务器、服务器阵列或服务器场、万维网服务器、网络服务器、因特网服务器、工作站、微型计算机、大型计算机、超级计算机、网络电器、万维网电器、分布式计算系统、个人计算机、平板计算机、智能电话、多处理器系统、基于处理器的系统、或者这些项的组合。
图4示出得到存储装置评级的示例。在一个实施例中,当存储装置320支持NVMe规范时,存储管理部件108可将命令发送到存储装置320内的存储控制器324以获得关于该存储装置的性能特性信息402。在一个实施例中,性能特性信息也可称作存储装置评级或评级信息。在一个实施例中,命令可以是“得到存储装置评级”命令400或者类似的命令。在其它实施例中,可使用其它存储装置规范以及关联的命令。在如图4中所示的一个示例中,性能特性信息402可包含一个或多个数据字段。性能特性信息402中可包含的数据字段可取决于许多因素,诸如存储装置的类型(包含存储装置的存储器类型)、版本号、I/O能力、存储容量、电力使用情况、存取速度等等。例如,性能特性信息402可包含存储器类型字段404,其可指定存储装置中存在哪种类型的存储器(例如,3D XPointTM、SLC NAND、MLC NAND、TLCNAND、QLC NAND、3D NAND等等)。例如,性能特性信息402可包含随机4K读取字段406,其可以每秒输入/输出(IO)(IOPS)为单位来指定对于从存储装置随机100%读取4K比特的性能评级。例如,性能特性信息402可包含随机4K写入字段408,其可以每秒输入/输出(IO)(IOPS)为单位来指定对于随机100%写入4K比特到存储装置的性能评级。例如,性能特性信息402可包含随机4K 70/30字段410,其可以每秒输入/输出(IO)(IOPS)为单位来指定对于具有4K比特的块的随机存取的性能评级,其中70%是从存储装置读取,30%是向存储装置写入。例如,性能特性信息402可包含顺序读取字段412,其可以每秒兆字节(MB/S)为单位来指定对于从存储装置顺序读取的性能评级。例如,性能特性信息402可包含顺序写入字段414,其可以每秒兆字节(MB/S)为单位来指定对于向存储装置顺序写入的性能评级。例如,性能特性信息402可包含平均活动读/写(R/W)功率字段416,其可以瓦特为单位来指定存储装置的平均功耗。例如,性能特性信息402可包含空闲功率字段418,其可以瓦特为单位来指定存储装置的空闲功耗的性能评级。例如,性能特性信息402可包含耐久性字段420,其可指定期望存储装置无失败地执行的每天驱动器写入(DWPD)次数。例如,性能特性信息402可包含容量字段422,其可以千兆字节(GB)为单位来指定存储装置中的存储器的大小。
图5示出存储管理操作的逻辑流程。对于这些示例,这些过程可由图3中示出的系统300的元件或部件来实现,或者这些过程可使用图3中示出的系统300的元件或部件,诸如存储管理部件108、OS 311、电路316、持久存储器319、一个或多个系统存储器装置312、存储装置320、存储控制器324、存储器326和/或一个或多个存储存储器装置322。然而,此过程不限于仅由系统300的这些部件或元件来实现或者仅使用系统300的这些部件或元件。逻辑流程500可表示本文描述的一个或多个逻辑、特征或装置所执行的操作中的一些或全部。
在一个实施例中,可在图1中示出的系统100的存储管理部件108或者图3的系统300的存储管理部件108中实现流程500。在另一实施例中,可在图3中示出的系统300的电路316中实现流程500。在一个示例中,存储管理部件108可被布置成运行一个或多个软件或固件实现的部件或模块。
本文中包含表示用于执行所公开架构的新颖方面的多套示例方法的一组逻辑流程。虽然为了解释的简单性而将本文示出的一套或多套方法示出和描述成一系列的动作,但是本领域技术人员会理解并领悟,这些套方法不受动作的顺序限制。一些动作可根据其自身以与本文描述和示出的顺序不同的顺序发生和/或与其它动作同时发生。例如,本领域技术人员会理解并领悟,备选地,一套方法能够被表示成比如状态图中的一系列相关状态或事件。此外,一套方法中示出的动作可能并非全部是新颖实现所需要的。
可在软件、固件和/或硬件中实现逻辑流程。在软件和固件实施例中,可由诸如光、磁或半导体存储装置之类的至少一个非暂时性计算机可读介质或机器可读介质上存储的计算机可执行指令来实现逻辑流程。实施例不限于此上下文中。
可运行存储管理部件108,以将系统中的一个或多个存储节点以及每个存储节点中的一个或多个存储装置的特性和性能评级考虑在内,自动为系统100确定存储策略。存储策略可由系统100用于针对分配要被存储在一个或多个存储节点以及存储节点内的一个或多个存储装置中的数据,作出可最适合于总体系统性能的决定。在一个实施例中,可在系统100启动时运行存储管理部件108。在一个实施例中,存储管理部件108可由系统管理员按需(例如,人工地)运行,或者可被调度成周期性地运行。在另一实施例中,每当在系统中激活或去活存储节点时可运行存储管理部件108。在另一实施例中,每当在系统中激活或去活存储装置时可运行存储管理部件108。在一个实施例中,存储管理部件108可基于对系统100的一个或多个存储节点中的一个或多个存储装置的分析来自动确定存储策略。
在处理存储节点及其存储装置之前,存储管理部件108可将进一步计算中要使用的变量初始化。在一个实施例中,存储管理部件108可将IOPS水准、吞吐量水准、容量水准、IOPS相对权重、容量相对权重以及吞吐量相对权重初始化。处理可在框502从系统100的第一存储节点内的第一存储装置开始。存储管理部件108可得到对于存储装置的存储装置评级。在框504,存储管理部件108可将存储装置指派到存储池。在一个实施例中,存储池可以是具有相似操作特性的存储装置的组或集。
图6示出将存储装置指派到存储池的逻辑流程的示例。存储器的类型可被用于对是否存储装置意欲用于要求更佳性能或更佳吞吐量的工作负荷来分门别类。处理可从框602开始。在框604,存储管理部件108确定存储装置中的一个或多个存储器的存储器类型。如果存储器类型是3-D交叉点存储器(3D XPointTM),则在框608可进行存储器的容量的确定。如果存储装置的存储器小于预定义的阈值(如以若干千兆字节(GB)来度量,比如小于XGB),则存储装置可被指派到高速缓存池610。高速缓存池610可被用于对数据的最高性能存取和最频繁存取,但是高速缓存池可能较小并且较昂贵。如果存储装置的存储器大于或等于预定义的阈值(例如,大于或等于X GB),则存储装置可被指派到低时延池612。低时延池可被用于对数据的最高性能存取(例如,要求低时延的那些存取)和频繁存取,但是低时延池可比高速缓存池更大。因为低时延池比高速缓存池更大,所以低时延池可比高速缓存池更昂贵。
如果在框604,存储器类型是SLC NAND,则存储装置可被指派到日志池614。在一个实施例中,日志池可被用于存储对数据的改变的日志文件。因为使用了SLC NAND,可为日志池提供具有高耐久性、但具有比3-D交叉点更低的成本的更高级别的NAND性能。在一个实施例中,日志池中对数据的更新可能是写入密集的。如果在框604,存储器类型是TLC 3DNAND,则存储装置可被指派到性能池616。性能池可被用于不具有极低时延要求的面向性能的工作负荷。如果在框604,存储器类型是QLC 3D NAND,则在一个实施例中,存储管理部件108可在框618检查存储装置的读/写吞吐量比率。QLC 3D NAND可提供比SLC NAND或TLC 3DNAND更低的耐久性和更低的写入带宽性能,但具有更高容量和更低成本。在一个实施例中,可通过执行得到存储驱动器评级命令来获得读/写吞吐量比率。在一个实施例中,如果比率大于预定义的值(比如8:2),则存储管理部件108可检查存储装置的每天驱动器写入(DWPD)耐久性度量。在一个实施例中,可通过执行得到存储驱动器评级命令来获得DWPD度量。在一个实施例中,如果存储装置的DWPD大于预定义的值(比如0.3),则存储装置可被指派到吞吐量池622。在一个实施例中,吞吐量池622可被用于存储例如流播数据,用于要求更高的每天写入次数的应用。在一个实施例中,如果存储装置的DWPD小于或等于预定义的值(比如0.3)或者小于或等于预定义的读/写吞吐量比率(比如8:2),则存储装置可被指派到容量池624。在一个实施例中,容量池624可被用于存储例如要在较长时间段内存档的、不太频繁存取的数据。
虽然图6中示出六种不同的存储池类型,但是在其它实施例中也可使用其它池类型。例如,存储池可被定义成用于低功率应用。在另一示例中,存储池可被定义成用于高安全性应用。在一个实施例中,系统管理员可无视以编程方式被指派给存储装置的存储池,而以人工方式将存储装置指派到另一存储池。
现在返回到图5,处理继续进行框506,其中存储管理部件108可至少部分基于存储装置评级信息,为存储装置计算单独的存储装置权重。在一个实施例中,可计算下面的单独的存储装置权重:
驱动器IOPS权重=驱动器IOPS/IOPS水准;
驱动器容量权重=驱动器容量/容量水准;
吞吐量权重=驱动器吞吐量/吞吐量水准;其中,可从存储装置获得驱动器IOPS、驱动器容量和驱动器吞吐量的值。
在其它实施例中,可使用其它或额外的单独的存储装置权重。
接下来,在框508,存储管理部件108可至少部分基于单独的存储装置权重,计算相对存储装置权重。在一个实施例中,可计算相对存储装置权重:
相对存储装置权重=(IOPS相对权重*驱动器IOPS权重)+(容量相对权重*驱动器容量权重)+(吞吐量相对权重*吞吐量权重)。
在框510,存储管理部件108确定是否需要处理当前存储节点的更多存储装置。如果是,则在框502,处理对当前存储节点的下一存储装置继续进行。如果不是,则处理继续进行框512,其中可至少部分基于相对存储装置权重来计算存储节点权重。在一个实施例中,存储节点权重表示该存储节点的存储装置的合计权重。在一个实施例中,可按下式计算存储节点权重:
存储节点权重=∑相对存储装置权重
在框514,存储管理部件108确定是否需要处理更多存储节点。如果是,则在框502,处理对系统100中的下一存储节点的第一存储装置继续进行。如果不是,则现在已处理了全部存储节点中的全部存储装置。在框516,存储管理部件108可至少部分基于每个存储节点的存储节点权重和池来自动为系统100确定存储策略。可确定存储策略而无需系统管理员人工干预或激活。存储策略可由系统100用于自动确定哪些存储节点以及存储节点内的哪些存储装置要被用于存储数据。
图7示出存储介质的示例。存储介质700可包括一种产品。在一些示例中,存储介质700可包含诸如光、磁或半导体存储装置之类的任何非暂时性计算机可读介质或机器可读介质。存储介质700可存储各种类型的计算机可执行指令,诸如实现上文描述的逻辑流程的指令。计算机可读或机器可读存储介质的示例可包含能够存储电子数据的任何有形介质,包含易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写存储器等等。计算机可执行指令的示例可包含任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视码等等。示例不限于此上下文中。
根据一些示例,图3中称作电路316的部件可执行用于存储管理部件108和/或存储介质700的处理操作或逻辑。电路316可包含各种硬件元件、软件元件或两者的组合。硬件元件的示例可包含装置、逻辑装置、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、ASIC、可编程逻辑装置(PLD)、数字信号处理器(DSP)、FPGA/可编程逻辑、存储器单元、逻辑门、寄存器、半导体装置、芯片、微芯片、芯片集等等。软件元件的示例可包含软件部件、程序、应用、计算机程序、应用程序、装置驱动程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件部件、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或者这些项的任何组合。确定是否使用硬件元件和/或软件元件来实现示例可根据给定示例所期望的任何数量的因素而变化,诸如期望的计算速率、功率级别、热容限、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。
服务器310可以是计算装置的一部分,计算装置可以是例如用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板、智能电话、嵌入式电子设备、游戏控制台、服务器阵列或服务器场、万维网服务器、网络服务器、因特网服务器、工作站、微型计算机、大型计算机、超级计算机、网络电器、万维网电器、分布式计算系统、多处理器系统、基于处理器的系统、或者这些项的组合。因此,如适当地期望的,在服务器310的各种实施例中可包含或省略本文描述的服务器310的功能和/或特定配置。
可使用分立电路、ASIC、逻辑门和/或单个芯片架构的任何组合来实现服务器310的部件和特征。此外,在适当地适合之处,可使用微控制器、可编程逻辑阵列和/或微处理器或上述项的任何组合来实现服务器310的特征。注意,在本文中,硬件、固件和/或软件元件可统称作或单独称作“逻辑”、“电路”或“线路”。
可使用表达“在一个示例中”或“示例”连同它们的派生词来描述一些示例。这些术语意味着结合该示例描述的具体特征、结构或特性被包含在至少一个示例中。在本说明书中的各种位置出现的短语“在一个示例中”不一定全部指的是同一示例。
可使用表达“耦合”和“连接”连同它们的派生词来描述一些示例。这些术语不一定意在作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可指示两个或更多元件彼此直接物理或电气接触。然而,术语“耦合”也可意味着两个或更多元件彼此不直接接触,但仍然彼此合作或交互。
强调的是,提供本公开的摘要以遵照37 C.F.R.第1.72(b)节,其要求会允许读者迅速断定技术公开的性质的摘要。提交摘要是基于它不会被用于解释或限制权利要求的范围或含义的理解。此外,在上述详细描述中能够看到,出于简化本公开的目的,在单个示例中将各种特征编组在一起。这种公开方法不要被解释为反映要求保护的示例需要比每个权利要求中明确记载的特征更多的特征的意图。相反,如下面的权利要求所反映的,发明主题在于少于单个所公开示例的全部特征。因此,下面的权利要求据此被结合到详细描述中,其中,每个权利要求作为分离的示例自立。在所附权利要求中,术语“包含”和“在其中”分别用作相应术语“包括”和“其中”的普通英语等价物。此外,术语“第一”、“第二”、“第三”等等仅用作标签,而并非意在将数字要求强加在其对象上。
虽然已采用对结构特征和/或方法动作特定的语言描述了主题,但是要理解,所附权利要求中定义的主题不一定限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作作为实现权利要求的示例形式被公开。
示例
示例1是一种在计算系统中的方法,所述计算系统包含一个或多个存储节点,每个存储节点包含一个或多个存储装置,所述方法包括:从存储节点的存储装置得到评级信息;至少部分基于所述评级信息,将所述存储装置指派到存储池;以及至少部分基于所指派的存储池和所述评级信息,自动为所述计算系统确定存储策略。
示例2可包括示例1的方法,包括:至少部分基于所述存储装置的所述评级信息,为所述存储装置计算单独的存储权重。
示例3可包括示例2的方法,包括:至少部分基于所述单独的存储权重,为所述存储装置计算相对存储权重。
示例4可包括示例3的方法,包括:至少部分基于所述相对存储装置权重,为所述存储节点计算存储节点权重。
示例5可包括示例4的方法,包括:至少部分基于所述所指派的存储池和所述存储节点权重,自动为所述计算系统确定存储策略。
示例6可包括示例5的方法,其中,所述存储节点权重包括所述存储节点的存储装置的所述相对存储装置权重的总和。
示例7可包括示例1的方法,包括:根据所述存储策略,自动确定哪些存储节点以及存储节点内的哪些存储装置被用于存储数据。
示例8可包括示例1的方法,其中,所述存储池的类型包括高速缓存池、低时延池、日志池、性能池、吞吐量池以及容量池其中之一。
示例9可包括示例1的方法,其中,将所述存储装置指派到所述存储池包括:至少部分基于所述存储装置中的存储器的类型,将所述存储装置指派到所述存储池。
示例10是至少一个包括多个指令的机器可读介质,所述多个指令响应于由在计算平台的系统来执行而促使所述系统进行操作,所述计算平台包含一个或多个存储节点,每个存储节点包含一个或多个存储装置,所述操作包括:从存储节点的存储装置得到评级信息;至少部分基于所述评级信息,将所述存储装置指派到存储池;以及至少部分基于所指派的存储池和所述评级信息,自动为所述计算系统确定存储策略。
示例11可包括示例10的至少一个机器可读介质,包括指令以用于:至少部分基于所述存储装置的所述评级信息,为所述存储装置计算单独的存储权重。
示例12可包括示例11的至少一个机器可读介质,包括指令以用于:至少部分基于所述单独的存储权重,为所述存储装置计算相对存储权重。
示例13可包括示例12的至少一个机器可读介质,包括指令以用于:至少部分基于所述相对存储装置权重,为所述存储节点计算存储节点权重。
示例14可包括示例13的至少一个机器可读介质,包括指令以用于:至少部分基于所述所指派的存储池和所述存储节点权重,自动为所述计算系统确定存储策略。
示例15可包括示例14的至少一个机器可读介质,其中,所述存储节点权重包括所述存储节点的存储装置的所述相对存储装置权重的总和。
示例16可包括示例10的至少一个机器可读介质,包括指令以用于:根据所述存储策略,自动确定哪些存储节点以及存储节点内的哪些存储装置被用于存储数据。
示例17可包括示例10的至少一个机器可读介质,其中,所述存储池的类型包括高速缓存池、低时延池、日志池、性能池、吞吐量池以及容量池其中之一。
示例18可包括示例10的至少一个机器可读介质,其中,将所述存储装置指派到所述存储池的指令包括:至少部分基于所述存储装置中的存储器的类型将所述存储装置指派到所述存储池的指令。
示例19是一种设备,包括:电路;以及逻辑,用于由所述电路来执行以:从存储节点的存储装置得到评级信息;至少部分基于所述评级信息,将所述存储装置指派到存储池;以及至少部分基于所指派的存储池和所述评级信息,自动为所述计算系统确定存储策略。
示例20可包括示例19的设备,包括:至少部分基于所述存储装置的所述评级信息为所述存储装置计算单独的存储权重的所述逻辑。
示例21可包括示例20的设备,包括:至少部分基于所述单独的存储权重为所述存储装置计算相对存储权重的所述逻辑。
示例22可包括示例21的设备,包括:至少部分基于所述相对存储装置权重为所述存储节点计算存储节点权重的所述逻辑。
示例23可包括示例22的设备,包括:至少部分基于所述所指派的存储池和所述存储节点权重自动为所述计算系统确定存储策略的所述逻辑。
示例24可包括示例19的设备,其中,所述存储池的类型包括高速缓存池、低时延池、日志池、性能池、吞吐量池以及容量池其中之一。
示例25可包括示例19的设备,其中,将所述存储装置指派到所述存储池的所述逻辑包括:至少部分基于所述存储装置中的存储器的类型将所述存储装置指派到所述存储池的逻辑。
示例26是一种系统,包括:一个或多个存储节点,每个存储节点包含一个或多个存储装置;耦合到所述一个或多个存储节点的服务器,所述服务器包含存储管理部件以从存储节点的存储装置得到评级信息;至少部分基于所述评级信息,将所述存储装置指派到存储池;以及至少部分基于所指派的存储池和所述评级信息,自动为所述计算系统确定存储策略。
示例27可包括示例26的系统,包括:至少部分基于所述存储装置的所述评级信息为每个存储装置计算单独的存储权重的所述存储管理部件。
示例28可包括示例27的系统,包括:至少部分基于每个存储装置的所述单独的存储权重为每个存储装置计算相对存储权重的所述存储管理部件。
示例29可包括示例28的系统,包括:至少部分基于所述存储节点中的存储装置的所述相对存储装置权重为每个存储节点计算存储节点权重的所述存储管理部件。
示例30可包括示例29的系统,包括:至少部分基于所述所指派的存储池和所述存储节点权重自动为所述系统确定存储策略的所述存储管理部件。

Claims (16)

1.一种在计算系统中的方法,所述计算系统包含一个或多个存储节点,每个存储节点包含一个或多个存储装置,所述方法包括:
从存储节点的存储装置得到评级信息;
至少部分基于所述评级信息,将所述存储装置指派到存储池;以及
至少部分基于所指派的存储池和所述评级信息,自动为所述计算系统确定存储策略。
2.如权利要求1所述的方法,包括:
至少部分基于所述存储装置的所述评级信息,为所述存储装置计算单独的存储权重。
3.如权利要求2所述的方法,包括:
至少部分基于所述单独的存储权重,为所述存储装置计算相对存储权重。
4.如权利要求3所述的方法,包括:
至少部分基于所述相对存储装置权重,为所述存储节点计算存储节点权重。
5.如权利要求4所述的方法,包括:至少部分基于所述所指派的存储池和所述存储节点权重,自动为所述计算系统确定存储策略。
6.如权利要求5所述的方法,其中,所述存储节点权重包括所述存储节点的存储装置的所述相对存储装置权重的总和。
7.如权利要求1所述的方法,包括:根据所述存储策略,自动确定哪些存储节点以及存储节点内的哪些存储装置被用于存储数据。
8.如权利要求1所述的方法,其中,所述存储池的类型包括高速缓冲池、低时延池、日志池、性能池、吞吐量池以及容量池其中之一。
9.如权利要求1所述的方法,其中,将所述存储装置指派到所述存储池包括:至少部分基于所述存储装置中的存储器的类型,将所述存储装置指派到所述存储池。
10.一种系统,包括:
一个或多个存储节点,每个存储节点包含一个或多个存储装置;
耦合到所述一个或多个存储节点的服务器,所述服务器包含存储管理部件以从存储节点的存储装置得到评级信息;至少部分基于所述评级信息,将所述存储装置指派到存储池;以及至少部分基于所指派的存储池和所述评级信息,自动为所述计算系统确定存储策略。
11.如权利要求10所述的系统,包括:至少部分基于所述存储装置的所述评级信息为每个存储装置计算单独的存储权重的所述存储管理部件。
12.如权利要求11所述的系统,包括:至少部分基于每个存储装置的所述单独的存储权重为每个存储装置计算相对存储权重的所述存储管理部件。
13.如权利要求12所述的系统,包括:至少部分基于所述存储节点中的存储装置的所述相对存储装置权重为每个存储节点计算存储节点权重的所述存储管理部件。
14.如权利要求13所述的系统,包括:至少部分基于所述所指派的存储池和所述存储节点权重自动为所述系统确定存储策略的所述存储管理部件。
15.至少一个机器可读介质,所述机器可读介质包括多个指令,所述多个指令响应于被系统执行而促使所述系统完成如权利要求1至9中任一项所述的方法。
16.一种设备,包括用于执行如权利要求1至9中任一项所述的方法的部件。
CN201910110042.3A 2018-03-02 2019-02-11 在存储装置当中改进数据分布的方法 Pending CN110221770A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/910,933 US20190042089A1 (en) 2018-03-02 2018-03-02 Method of improved data distribution among storage devices
US15/910933 2018-03-02

Publications (1)

Publication Number Publication Date
CN110221770A true CN110221770A (zh) 2019-09-10

Family

ID=65231636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910110042.3A Pending CN110221770A (zh) 2018-03-02 2019-02-11 在存储装置当中改进数据分布的方法

Country Status (4)

Country Link
US (1) US20190042089A1 (zh)
KR (1) KR20190104876A (zh)
CN (1) CN110221770A (zh)
DE (1) DE102019102317A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419679A (zh) * 2021-06-18 2021-09-21 Oppo广东移动通信有限公司 存储装置、系统级芯片、电子设备及存储方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10726930B2 (en) * 2017-10-06 2020-07-28 Western Digital Technologies, Inc. Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data
CN109542352B (zh) * 2018-11-22 2020-05-08 北京百度网讯科技有限公司 用于存储数据的方法和装置
US11194473B1 (en) * 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
CN112925472A (zh) * 2019-12-06 2021-06-08 阿里巴巴集团控股有限公司 请求处理方法、装置、电子设备及计算机存储介质
CN113687782B (zh) * 2021-07-30 2023-12-22 济南浪潮数据技术有限公司 存储池时延确定方法、装置、电子设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419679A (zh) * 2021-06-18 2021-09-21 Oppo广东移动通信有限公司 存储装置、系统级芯片、电子设备及存储方法

Also Published As

Publication number Publication date
KR20190104876A (ko) 2019-09-11
DE102019102317A1 (de) 2019-09-05
US20190042089A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
CN111149096B (zh) 借助于主机内存缓冲区范围的自适应装置服务质量
WO2021008220A1 (en) Systems and methods for data storage system
CN110221770A (zh) 在存储装置当中改进数据分布的方法
Poremba et al. Nvmain: An architectural-level main memory simulator for emerging non-volatile memories
US10032488B1 (en) System and method of managing data in a non-volatile memory having a staging sub-drive
US10114556B2 (en) Method and apparatus for improving read performance of a solid state drive
CN104641356B (zh) 地址映射
WO2014169015A1 (en) Multiprocessor system with independent direct access to bulk solid state memory resources
CN112148525A (zh) 实现更快且经过调节的装置初始化时间
CN105718213B (zh) 改进在低队列深度工作负载中的混合随机性能的方法
CN109219797A (zh) 用于格式化持久性存储器文件的技术
CN110069357A (zh) 集成电路存储器装置及其操作方法
JP7293458B1 (ja) ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法
JPWO2014038073A1 (ja) 記憶装置システム
US11275680B2 (en) Profile and queue-based wear leveling of memory devices
CN113012730A (zh) 具有微凸块以发射用于机器学习操作的数据的存储器装置
CN112286843B (zh) 数据存储系统的系统和方法
US11221973B2 (en) Parallel iterator for machine learning frameworks
US11868223B2 (en) Read-disturb-based read temperature information utilization system
US11914494B2 (en) Storage device read-disturb-based read temperature map utilization system
US20230229342A1 (en) Read-disturb-based read temperature identification system
Hosseini Near Memory Processing in Hybrid Memory System 3D-DRAM vs. 3D-NVM
Kurotsuchi et al. All-SSD storage system with indication of garbage collection and dynamic allocation of reserved SSD
CN112908372A (zh) 使用不同微凸块发射用于机器学习操作的数据
CN114610229A (zh) 减少概率性数据完整性扫描冲突

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