CN109154883A - 驱动级内部服务质量 - Google Patents
驱动级内部服务质量 Download PDFInfo
- Publication number
- CN109154883A CN109154883A CN201880001929.2A CN201880001929A CN109154883A CN 109154883 A CN109154883 A CN 109154883A CN 201880001929 A CN201880001929 A CN 201880001929A CN 109154883 A CN109154883 A CN 109154883A
- Authority
- CN
- China
- Prior art keywords
- queue
- reading
- write
- service
- request
- 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
Links
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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种存储控制器。存储控制器包括主机接口、驱动器接口以及与该主机接口和该驱动器接口耦合的服务质量控制模块。该QoS模块包括:用于每个数据流的读队列和写队列,每个队列与对应的令牌桶相关联;以及仲裁器,其被配置为接收来自所述读队列和写队列的请求,并且按照至少部分地由每个令牌桶中的令牌数量确定的顺序来服务所述读队列和写队列。该QoS模块还包括:服务质量测量模块,其被配置为测量用于读队列和写队列中的每个的服务质量级别;以及带宽分配管理器,其被配置为以对应于所述服务级别协议和用于读队列和写队列中的每个的测量的服务质量级别的速率将令牌分配给每个令牌桶。
Description
相关申请
本申请特此要求享有于2017年3月22日提交的、名称为“DRIVE-LEVEL INTERNALQOS”的美国临时专利申请号62/474,718的权益和优先权,并且该美国临时专利申请的全部内容通过引用纳入本文。
技术领域
本公开内容的多个方面涉及数据存储,并且具体地涉及在单个存储设备内将不同的服务质量(QoS)级别(level,水平,等级)应用于不同的数据流。
背景技术
大型存储***,诸如数据中心和云存储提供商,通常为多个不同的客户和应用程序存储和检索大量数据。不同的应用程序和不同的客户可能对其数据被多快地存储或检索具有不同的要求。这些要求通常呈客户和存储提供商之间的服务级别协议(SLA)的形式。服务级别协议通常为任何具体客户、应用程序或个体数据流定义最低服务质量(QoS)。
服务质量包括针对数据读和数据写的性能特性。对于单独的写流量(traffic,业务)或读流量,参数是等待时间(latency)和吞吐量(throughput)。对于混合工作负荷(workload),以每秒输入/输出操作(IOPS)为单位衡量它。
当处理多个流量流时,数据网络使用SLA和QoS来提供已知的、测量的和保证的服务级别。数据中心和云服务提供商还可以通过将SLA和QoS应用于附加类型的共享资源而受益,所述共享资源诸如使用虚拟服务器的计算能力和使用多个大型存储设备和阵列的共享存储。
用于数据网络的服务级别协议通常包括基于每个连接的延时度量、抖动度量和数据包丢失度量。这转化成路径中通过路由器的每个连接的带宽和等待时间分配。用于存储设备的SLA包括用于写流量、读流量和混合的写/读流量的带宽、等待时间和IOPS。
为了维持共享客户的可接受服务级别,有必要测量性能以确保它始终是可接受的。性能测量方法是QoS。通过测量QoS,服务提供商可以确保客户接收适当的服务,并且确定其基础设施是否可能需要升级以及何时可能需要升级以维持期望的服务级别。
较新的数据中心和云服务基础设施越来越依赖于虚拟化服务。这些数据中心具有大型服务器场。服务器运行多个虚拟机(VM)。VM具有分配给它的数据存储。数据存储可以呈从本地存储(高速RAM、本地总线NV存储——通常是PCIe SSD、本地HDD)到通过LAN或SAN(全闪存阵列、混合闪存和HDD、HDD阵列)的远程共享存储的许多形式。
在此环境中,应用程序或用户被分配网络带宽、处理器带宽和存储大小。直到最近,随着较高速非易失性存储器(诸如闪存)的出现,存储带宽并不因CPU和HDD带宽之间的性能大大失配而那么重要。高速应用程序需要更多本地高速缓存。
具有能够在对照其QoS参数被连续地测量的不同SLA下预备(provision)资源的基础设施在支持多租户共享存储的较新的数据中心和云服务架构中变得非常重要。
随着现在存在的存储性能和成本的大大变化,期望将SLA指派给服务的存储部分。
全闪存阵列(AFA)***提供QoS特征和SLA特征。这些通常被预备在跨多个主机ID的阵列入口处。在一个主机ID内,可以经由与特定的虚拟机(VM)、容器和应用程序相关联的名称空间和逻辑块寻址(LBA)范围进一步预备它们。
只要带宽和等待时间远远欠预订,AFA就能够分离用户流量并且管理该流量以满足SLA目标。在接近满预订的情形或过预订的情形下AFA不能确定性地满足SLA目标,这是由于它们使用固态驱动器(SSD)。
SSD需要使其性能和等待时间不确定的后台操作,诸如垃圾收集(garbagecollection)、损耗均衡(wear leveling)和擦洗(scrubbing)。已经试图通过让主机调节SSD中允许的后台活动量来减少这些影响。然而,如果***达到能力极限和性能极限,则SSD必须执行后台任务以腾出空间——这在最坏可能的时间消除了确定性。
存在遭受SSD性能变化的许多其他使用模型。任何依赖于一致的SSD存储性能的高性能应用程序都具有此问题。此外,任何具有共享相同存储的多个应用程序、VM和/或主机的***都具有此问题。
发明内容
在一个实施方案中,提供了一种用于存储***的存储控制器。该存储控制器包括:主机接口,其被配置为接收和传输多个数据流,每个数据流具有一个由一个对应的服务质量衡量的对应的服务级别协议;驱动器接口,其被配置为将所述数据流传输到存储介质;以及服务质量控制模块,其与该主机接口和该驱动器接口耦合。
该服务质量控制模块包括:用于每个所述数据流的读队列,每个读队列与一个对应的令牌(token,权标)桶相关联;用于每个所述数据流的写队列,每个写队列与一个对应的令牌桶相关联;以及仲裁器,其被配置为接收来自所述读队列和写队列的请求,并且按照至少部分地由每个令牌桶中的令牌数量确定的顺序来服务所述读队列和写队列。
该服务质量控制模块还包括:服务质量测量模块,其被配置为测量用于每个所述读队列和写队列的服务质量级别;以及带宽分配管理器,其被配置为以对应于所述服务级别协议和用于每个所述读队列和写队列的测量的服务质量级别的速率将令牌分配给每个令牌桶。
在另一个实施方案中,提供了一种操作存储控制器的方法,该存储控制器被配置为接收和传输多个数据流,每个数据流具有一个由一个对应的服务质量衡量的对应的服务级别协议。该方法包括:接收来自对应于所述多个数据流的多个读队列和写队列的请求,每个队列包括一个令牌桶;以及以至少部分地由每个令牌桶中的令牌数量确定的顺序来服务来自所述读队列和写队列的请求。
该方法还包括:测量用于每个所述读队列和写队列的服务质量级别;以及以对应于所述服务级别协议和用于每个所述读队列和写队列的测量的服务质量级别的速率将令牌分配给每个令牌桶。
附图说明
参考以下附图可以更好地理解本公开内容的许多方面。虽然结合这些附图描述了若干实施方式,但是本公开内容不限于本文公开的实施方式。相反,目的是覆盖所有替代方案、改型和等同物。
图1例示了计算机主机和数据存储***。
图2例示了数据存储***内的存储控制器和存储介质。
图3例示了用于存储***内的闪存的存储控制器。
图4例示了存储控制器内的服务质量控制器。
图5例示了用于运作存储控制器的方法。
图6例示了存储控制器。
具体实施方式
图1例示了计算机主机和数据存储***100。在此示例实施方案中,主机***1110、主机***2 112一直到主机***N 114向存储控制器120发送数据和从存储控制器120接收数据用于存储在存储介质130内。在一个示例实施方案中,每个主机***可以由不同的客户或应用程序所有或控制。存储控制器120通过链路150与存储介质130通信,并且存储控制器120内的QoS控制器122执行维持用于从主机***接收的每个数据流的服务级别协议的功能,同时将数据传送到存储介质130或从存储介质130传送数据。存储控制器120和存储介质130一起构成存储***160。
存储控制器120(包括QoS控制器122)被配置为在存储***160内提供QoS测量和SLA控制,同时支持多个、同时的存储介质130访问进程(process,过程)。它使得存储***160能够基于用于每个数据流的定义的SLA合同跨来自主机***110-114的一个或多个数据流提供一致的性能。这些SLA合同可以用带宽和等待时间规定。
带宽规范可以具有最小带宽要求和/或最大带宽要求。通常,带宽规范具有单独的读带宽要求和写带宽要求。等待时间规范可以具有固定等待时间、一致等待时间、最小等待时间或不具有要求。等待时间规范也具有单独的读等待时间要求和写等待时间要求。
当确定用于存储***160的总可用带宽和等待时间时,必须考虑存储介质130和存储控制器120的能力和要求。例如,某些类型的存储介质130还具有使它们的性能和等待时间不确定的开销要求,诸如垃圾收集、损耗均衡和擦洗。当创建用于将由存储***160支持的数据流的SLA时,必须考虑这些开销要求。
总之,典型的SLA协议包括四个要求:写带宽(最大写带宽和/或最小写带宽)、写等待时间(固定写等待时间、一致写等待时间或最小写等待时间)、读带宽和读等待时间。
存储控制器120可以采用各种配置中的任何一种。在一些示例中,存储控制器120可以是具有软件的现场可编程门阵列(FPGA)、具有存储器缓冲区的软件、被设计为被包括在具有存储介质130的单一模块(诸如存储***160)中的专用集成电路(ASIC)、用于创建ASIC的一组硬件描述语言(HDL)命令(比如Verilog或System Verilog)、相对于存储介质130的单独模块或许多其他可能的配置中的任何一种。
主机***110-114通过各种通信链路,比如通信链路140、142和144,与存储控制器120通信。这些通信链路可以使用因特网或其他全球通信网络。每个通信链路都可以包括一个或多个无线链路,所述无线链路各自还可以包括长期演进(LTE)、全球移动通信***(GSM)、码分多址CDMA)、IEEE 802.11WiFi、蓝牙、个人区域网络(PAN)、广域网、(WAN)、局域网(LAN)或无线局域网(WLAN),包括上述项的组合、变型和改进。这些通信链路可以携带适合于无线通信的任何通信协议,比如因特网协议(IP)或以太网。
另外,通信链路可以包括一个或多个有线部分,所述有线部分可以包括同步光纤网络(SONET)、混合光纤-同轴电缆(HFC)、时分多路复用(TDM)、异步传输模式(ATM)、电路交换、通信信令或一些其他通信信令,包括上述项的组合、变型或改进。通信链路可以各自使用金属、玻璃、光、空气、空间或一些其他材料作为传输介质。通信链路可以各自是直接链路,或者可以包括中间网络、***或设备,并且可以包括通过多个物理链路传输的逻辑网络链路。常用的存储链路包括SAS、SATA、NVMe、以太网、光纤通道、无限带宽(Infiniband)等。
存储控制器120通过链路150与存储介质130通信。链路150可以是到存储设备或阵列的任何接口。在一个示例中,存储介质130包括NAND闪存,并且链路150可以使用开放式NAND闪存接口(ONFI)命令协议或“切换”命令协议在存储控制器120和存储介质130之间通信。其他实施方案可以使用其他类型的存储器和其他命令协议。其他常见的低级别存储接口包括DRAM存储器总线、SRAM存储器总线和SPI。
链路150也可以是更高级别的存储接口,比如SAS、SATA、PCIe、以太网、光纤通道、无限带宽等。然而,在这些情况下,存储控制器120会驻留在存储***160中,如同该存储***具有其自己的控制器。
图2例示了数据存储***200内的存储控制器210和存储介质230。在此示例实施方案中,存储控制器210(类似于来自图1的存储控制器120)和存储介质230(类似于来自图1的存储介质130)图1)一起构成存储***。
存储控制器210被配置为通过主机I/O 212从多个主机***(诸如来自图1的主机***1-N 110-114)接收多个数据流220-228。每个数据流可以具有一个不同的SLA和一个对应的QoS要求。QoS控制器214测量每个数据流220-228的QoS,并且确保满足用于每个数据流220-228的SLA。驱动器I/O 216与存储介质230通信。在此示例实施方案中,存储介质230包括多个分区232-240。在一些实施方案中,每个分区可以对应于一个具体的数据流,从而隔开每个数据流的数据。
QoS控制器214独立于存储介质类型。它与任何能够支持多个并发操作的存储介质230一起工作。许多介质类型(诸如闪存)除了要求由主机I/O接口212直接请求的介质访问之外,还要求内部生成的介质访问。这些开销介质访问也由SLA支配,并且是维持对总***带宽和等待时间的控制所需的。
生成介质访问的内部进程的一些示例包括垃圾收集、擦洗、擦除和数据迁移。QoS控制器214除了管理数据流之外还管理这些介质访问进程,以确保数据流满足它们的SLA的要求。
为了将SLA分配给各个数据流220-228,首先必须基于存储控制器210和存储介质230的物理能力来确定最大分配阈值和最大用户分配阈值。在存储介质230内创建的每个分区232-240需要分配带宽和等待时间。当每个分区被创建时,一个分配请求被发送到QoS控制器214。
在一个示例实施方案中,存储介质230(诸如闪存阵列)被划分成指派给每个进程的多个物理上单独的存储区域。这些单独的存储区域被称为分区。每个分区具有多个属性,包括一个SLA。
如果QoS控制器214接收到对比***剩余的更多的带宽和/或等待时间的分配请求,则分配由若干个参数控制。在一些实施方案中,不允许带宽的过预备,并且拒绝对分区的分配请求。在其他实施方案中,QoS控制器214可以允许创建分区;但是向用户发送警告(warning)。在此情况下,QoS控制器214可以将用于分区的带宽设定为***剩余的最大量;或可以减少存储介质230内的所有分区上的带宽,以为新分区腾出空间。
典型的分配请求参数包括读等待时间、读带宽、写等待时间和写带宽。每个参数可以包括各种设置和限制。
将读等待时间测量为在空闲的分区上发出命令之后到第一数据的时间。读等待时间设置通常以微秒为单位提供,并且包括:最小的(尽力而为)、固定的(指定设备将定速(pace)到的等待时间)和最大的(基于存储介质的统计)。
当***在其他分区上不是空闲的时,存储***具有最差情况和每个分区的读等待时间的典型值。如果用户试图设定比典型情况和/或最差情况更快的等待时间,QoS控制器214返回警告,并且将等待时间设定到最小/尽力而为。当***是空闲的时,存储***还具有最佳情况值。在紧急停机情形下,此最低等待时间可以被用于元数据分区。
用所有分区中的正常预期流量来测量读带宽。读带宽设置通常以每秒兆字节为单位提供,并且包括:最大的(尽力而为)、值(目标最小带宽)和固定的。
存储***具有包括用于内部操作的开销的总带宽。当指定固定带宽时,将以指定的速率返回数据。当指定值带宽时,QoS控制器214以被保证但通常被超过的最小带宽作为目标。如果读带宽被过预订,QoS控制器214返回错误或警告。
将写等待时间测量为在空闲的分区上发出命令之后到在存储介质230内存储第一数据的时间。写等待时间设置通常以微秒为单位提供,并且包括:非高速缓存的、高速缓存的、最大的和固定的。
服务级别协议通常包括:最小写带宽、最小读带宽、最大写等待时间、最大读等待时间和最小混合流量IOPS。
为需要具有定义的SLA的每组相关的存储介质事务提供服务级别协议。数据流可以具有单个源或多个源。数据流源可以是内部进程或是通过主机I/O接口212或驱动器I/O接口216接收。注意,并非所有存储介质事务都需要SLA控制的数据流。
数据流服务级别协议参数通常包括:最小写带宽、最大写带宽、最大写等待时间、最小读带宽、最大读带宽和最大读等待时间。数据流可以包括来自一个或多个特定的源的用户数据、存储介质230内的垃圾收集等。
用于存储介质230的总的读带宽和写带宽是独立地定义或计算的。总的存储介质230带宽是读带宽和写带宽的组合,但是被单独分配用于每个数据流或进程。
数据流可以具有最小带宽分配和/或最大带宽分配。如果数据流仅具有最小带宽分配,QoS控制器214确保数据流获得最小分配带宽,并且如果存在可用的过量带宽,数据流可以获得该过量带宽的一些或全部。
如果数据流仅具有最大带宽分配,QoS控制器214将数据流节流到最大带宽。如果数据流具有最小带宽分配和最大带宽分配二者,QoS控制器214分配带宽,并且通过突发(burst)将数据流节流。在实际操作期间,定期测量实际带宽并且将其与用于每个数据流的分配比较。
为每个数据流或进程定义等待时间。它可以被定义为最佳的、一致的或固定的。数据流可以具有最大等待时间,在此情况下,该数据流将被赋予优先级以便满足最大等待时间。然而,如果存在每个都具有最大等待时间的许多数据流,这些流将竞争优先级,因此最好限制具有最大等待时间的数据流的数目。
对于高带宽和/或低等待时间数据流,存储介质230可能需要被配置为不同的存储器类型,并且分配给数据流的任务优先级和带宽可以被调整。在一些实施方案中,QoS控制器包括起作用以实现一致等待时间或固定等待时间的等待时间定速器(pacer)。
生成存储数据流量的进程可以是在存储***的外部或内部。内部进程的一些示例包括:存储到介质的内部转化表更新、垃圾收集和损耗均衡以及擦洗。
垃圾收集是消除介质内的过时数据以为新的写入数据腾出空间的进程。在到介质的写入大小不同于主机使用的单位写入大小的情况下,在存储***中需要此进程。擦洗是读现有数据并且如果该数据或当前它被写到的区域存在任何退化风险则将它重新定位到新介质的进程。
在一些实施方案中,存储介质230包括闪存阵列。在这些实施方案中,一个闪存接口路由器位于可能发出闪存接口请求的闪存管理器中的部件和所有闪存接口实例之间。它执行以下功能:将请求路由到适当的闪存接口实例;为每个请求者实现弹性缓冲区,因此请求者具有一个简单的、非阻塞的接口来提交请求;以及在各个请求者之间执行对其的仲裁,以实现每个分区的受保证的服务级别。
图3例示了用于存储***300内的闪存的存储控制器310。在此示例实施方案中,存储控制器310从多个主机机器接收多个数据流374-380。存储控制器310被配置为通过多个闪存接口362-372与闪存阵列一起运作。
QoS控制器330试图确保用于存储介质230(诸如闪存阵列)内的每个分区的定义的性能水平。这涉及定义一组性能参数和用于每个参数的最小值和/或最大值。此定义被称为服务级别协议(SLA)。虚拟驱动器(闪存阵列)可以请求用于每个分区的SLA。如果在其估计中SLA是可实现的,则存储控制器310同意SLA,并且如果在其估计中SLA不是可实现的,则存储控制器警告用户。一旦达成一致,存储控制器310监测度量并且执行流量整形以确保满足所有SLA。表1列举了SLA的一些属性。
表1:服务级别协议属性
并非所有这些属性都需要由SLA指定。分区可能甚至不具有SLA。任何不受SLA约束的请求都应不具有性能保证并且被认为“尽力而为”。
令牌桶354-360被用来管理流量。通常,令牌被定义为表示某些受约束的资源,诸如时间或字节。令牌被以速率“r”添加到桶。桶具有“b”个令牌的最大容量。一旦满了,就不可以将另外的令牌添加到桶。当桶的所有者执行操作时,从桶中移出用于该操作的适当数目的令牌。当桶所有者请求执行操作并且在其桶内具有足够的令牌时,该请求被认为是相符的。当它缺乏足够的令牌时,其请求被视为不相符的。相比于不相符请求,相符请求总是被以更高的优先级处理。
存储控制器310包括管理队列34和一个或多个受QoS管理的队列344-350。每个受QoS管理的队列344-350包括一个或多个令牌桶354-360,取决于该队列的SLA的细节。
在一个示例实施方案中,令牌表示以秒为单位的时间。由时间授予器320根据对应的SLA的属性将令牌分发给每个队列。请求被提交至仲裁器340,该仲裁器将准许的请求转发到适当的闪存接口362-372。
令牌被分发给每个桶的速率由适用于该队列的SLA属性确定。当从字节/秒转换为令牌时,时间授予器320使用读或写阵列内的典型页面的时间。擦除器的SLA为它保证与保证的写带宽成比例的总阵列带宽的一个百分比,以确保擦除的块始终可用。
所有SLA属性的总计不得过度承诺闪存阵列内可用的总带宽,包括开销要求和内务处理要求。写、读和擦除每个队列的要求可以被表示为:
由于所有SLA属性的总计不得过度承诺阵列内可用的总带宽R总,因此使用以下等式来保证永远不超过R总:
桶大小被选择以在令牌可能累积的情况下在不活动时段之后限制活动的突发。当队列所有者向仲裁器340提交命令时,该命令所需的时间被估计。注意,这可能不同于时间授予器320所使用的平均操作时间。当仲裁器340评估请求时使用此时间。
每个闪存接口362-372估计完成其队列中的所有命令会需要的时间。当存在有效的最大等待时间SLA时,仲裁器340避免向接近或超过最大等待时间的接口362-372发出命令。这试图针对发出到空闲分区的命令强制执行最大等待时间,其是由用于其他分区的命令强加的。它不能够保证到单个分区的一系列深排队的命令中的命令的等待时间。
仲裁器340考虑请求所需的估计时间、请求者的桶中的令牌的数目、请求的时期以及其他并发请求。仲裁器340将首先准许来自最近最少被准许的请求者的相符请求,除非目的地闪存接口的362-372队列完成时间将超过等待时间限制。如果不存在可准许的相符请求,仲裁器则准许来自最近最少被准许的请求者的非相符请求,前提是不超过接口等待时间限制。
图4例示了存储控制器400内的服务质量控制器。在存储控制器400内,服务质量功能经由两个高级机制实现:软件进程管理和流路由器/仲裁器。
在此示例实施方案中,三个内部进程被例示为内部进程A模块418、内部进程B模块422和内部进程C模块426。这些模块中的每个与一个相应的响应队列相关联:进程A响应队列416、进程B响应队列420和进程C响应队列424。这些响应队列存储从存储阵列410接收的响应454,以便传送到QoS测量模块402。
在正常操作中,存在生成到阵列的读命令和写命令的多个进程类型。
用户读命令/写命令调度器414从主机接收读命令和写命令。当它接收到读请求或写请求时,它确定请求与哪个用户流相关联。然后,它创建内部介质写请求或读请求,并且将其存放在被配置用于该数据流的写队列或读队列中。
用户读命令/写命令调度器414以高优先级运行,因为所有用户流量都被路由通过它。这是处理低等待时间流所需的。读命令/写命令响应队列412从存储阵列410接收响应454并且将它们传送到QoS测量模块402。
还可以存在生成介质访问请求的多个内部进程418、422和426。这些进程以较低优先级运行,因为它们不处理低等待时间用户流量。总预备和任务管理控制必须确保,这些进程获得足够的处理器带宽以跟上它们的任务。如果不满足此,则可能违反SLA。
存储阵列410完成请求,并且将针对每个请求的响应454返回到请求进程。
每个介质命令在由一个进程生成时被赋予一个创建时间戳428。当请求被返回到进程的响应队列时,生成一个完成时间戳428。QoS测量模块402使用这些时间戳来监测QoS和检测违反。
每个介质访问命令类型和流被指派一个请求队列430-452。这在闪存的情况下包括写、读和擦除。仲裁器408从这些队列取得请求并且将它们转发至存储阵列410以供执行。流路由器内的仲裁算法强制执行QoS。
QoS测量模块402从所有事务接收时间戳428结果。它计算读带宽、读等待时间、写带宽、写等待时间和IOPS。用于平均带宽计算的时间量是基于***性能和流量可选择的。
IOPS计算是每秒的I/O事务的数目。平均时间也是可选择的。IOPS计算可以用于单独的读和写或混合的读和写。每个事务的I/O大小可能每个流不同。
将QoS测量统计与用于每个数据流的预备的SLA比较。如果检测到违反,则生成警告。警告可以被发送回主机以允许主机采取纠正行动。警告严重性是***相关的。通常,当发生QoS违反时,存储设备将不停止运作。
对于读,可以在一个带宽测量中组合一个或多个请求队列。
QoS测量模块402将带宽测量结果与预备的值比较。如果测量的带宽低于预备的值,则生成一条消息。根据***要求,该消息可以被配置为警告或警报(alarm)。如果不存在足够的流量来填充可用带宽,则没有警告。
用于读命令和写命令的等待时间都是按每个命令测量的。等待时间被预备有一个范围目标。等待时间测量结果在该目标范围以外的所有命令都产生消息、警告或警报。
每个操作在几个点处被记录时间:当使它排队时、当它是活动的时、当它完成时,以及当它从队列退出时。这些时间戳被提供给QoS测量模块402,以确保满足所有适用的SLA。
动态QoS控制模块404接收预备命令456,并且负责队列管理和优先顺序排列。动态QoS控制模块404能够根据需要指派存储器资源以满足SLA。它还负责对完成的命令的操作统计的后处理,并且负责对当前性能的统计和违反报告。
动态QoS控制模块404限制低等待时间流的队列深度,并且还确定快速读等待时间的最小队列深度。
带宽分配管理器406接收请求以保留可用带宽的一个相对百分比用于每个队列。对于写或读它不应超过100%。可能的是,基于流量混合SLA将不被满足。
明确带宽分配提供跨队列的固定分配。经由QoS测量块402报告错误。如果不满足QoS要求并且这有关系,则由存储***400的更高级别来调整针对数据流的带宽分配。如果满足特定的QoS度量是重要的,则使用明确分配方法。要使QoS满足SLA,需要充足的余裕(margin)。
如果***仅需要跨数据流的相对SLA并且期望最大化总体总性能,使用比例带宽分配。在此情况下,用于每个流的SLA都在在开始被设定。SLA可以是绝对值或总带宽的百分比。
在操作期间,动态QoS控制模块404监测来自QoS监测器402的警告。如果存在警告,它将违规的一组流(写或读)的总带宽下调。它还维持它们的相对带宽。如果在指定的时间段内没有警告,它将该带宽上调。
施加某个滞后,当在指定的时间内警告减少到指定的数目时,该滞后使调整停止。用于调整的时间段也是可编程的,以确保调整稳定下来。这是一个控制回路。
所有这些预备命令、性能度量和参数以及性能数据可以被保存在存储阵列410内或存储控制器400内的任何其他存储器内,或可以使用API或用户接口存储在控制器400外部。
总之,根据(1)用户流(2)内部管理流(即,内务处理、垃圾收集、完整性检查等)来划分和/或分配用于驱动器存储介质的总带宽。每个流被放置到个体读队列和写队列430-452中,以便使用令牌方案根据QoS/SLA级别进行服务。每个用户数据流还可以在存储介质上具有一个相关联的分区。每个内部管理流可以影响所有分区。
流路由器/仲裁器408管理到存储介质230的队列服务读取/写入。仲裁器408还相对于介质或介质接口的总可用带宽管理流。全局擦除队列452也由路由器/仲裁器408管理。在一些实施方案中,带宽分配管理器406读入存储在存储介质上的配置文件或通过API或用户接口接收的配置信息。
QoS测量模块402监测和/或核查驱动器的实际等待时间或带宽性能,并且根据需要进行校正和/或调整,以使等待时间或带宽性能与配置参数一致。
在具有固定QoS级别的第一模式中,目标QoS是绝对值。如果遇到等待时间或带宽性能违反,QoS测量模块402生成到主机的报警/警告。
在具有动态QoS级别的第二模式中,目标QoS是百分比等待时间或带宽分配和/或目标,然后QoS测量模块402可以动态地调整以满足百分比目标。
为了满足等待时间目标,存储***可能必须服务某些队列以保证等待时间或使用更快速的分区布局。此外,可以以多种方式指定目标:(1)“最低等待时间”(2)小于“x”毫秒的等待时间(3)“x至y”毫秒范围的等待时间等。
图5例示了用于运作存储控制器210的方法。在此示例实施方案中,存储控制器210被配置为接收和传输多个数据流,每个数据流具有一个由一个对应的服务质量衡量的对应的服务级别协议。
仲裁器340被配置为接收来自对应于多个数据流的多个读队列和写队列430-452的请求,其中每个队列与一个对应的令牌桶相关联,(操作500)。仲裁器340按照至少部分地由每个令牌桶中的令牌数量确定的顺序来服务来自读队列和写队列430-453的请求,(操作502)。
服务质量测量模块402测量用于每个读队列和写队列的服务质量级别,(操作504)。带宽分配管理器406以对应于服务级别协议和用于每个读队列和写队列的服务质量测量结果的速率将令牌分配给每个令牌桶,(操作506)。
图6示出存储控制器600。如上所述,存储控制器600能够采用各种各样的配置中的任何一种。在此,针对作为ASIC实现的存储控制器提供了一种示例性配置。然而,在其他示例中,存储控制器600能够内置到存储***或存储阵列中,或内置到主机***中。
在该示例性实施方案中,存储控制器600包括主机接口610、处理电路620、存储接口630和内部存储***640。主机接口610包括被配置为从外部主机***接收数据和命令并发送数据到主机***的电路。存储接口630包括被配置为发送数据和命令到存储介质并从存储介质接收数据的电路。
处理电路620包括被配置为执行如上所述的存储控制器的任务的电子电路。处理电路620可包括检索并执行软件660的微处理器和其他电路。在一些实施方案中,处理电路620可被嵌入存储***中。处理电路620的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其它类型的处理设备、其组合或变型。处理电路620可在单个处理设备内实现,但也可分布于在执行程序指令方面协作的多个处理设备或子***上。
内部存储***640可包括能够存储可由处理电路620执行的软件660的任何非暂时性计算机可读存储介质。内部存储***640还可以包括各种数据结构650,各种数据结构包括一个或多个数据库、表、列表或其他数据结构。存储***640可包括以用于存储信息——比如计算机可读指令、数据结构、程序模块或其他数据——的任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质。
存储***640可作为单个存储设备实现,但是也可以在位于同一地点或者相对于彼此分布的多个存储设备或子***上实现。存储***640可包括能够与处理电路620通信的附加元件,比如控制器。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存、虚拟存储器和非虚拟存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或者能够用于存储期望信息并且可由指令执行***访问的任何其它介质,以及上述项的任何组合或变型。
软件660可以程序指令实现,并且除了其他功能之外,所述软件当总体由存储控制器600执行或具体由处理电路620执行时,能够指示存储控制器600或处理电路620以如本文针对存储控制器所述的那样运作。软件660可以包括附加的进程、程序或组件,比如操作***软件、数据库软件或应用软件。软件660还可以包括固件或可由处理电路620的元件执行的一些其他形式的机器可读处理指令。
在至少一种实施方式中,程序指令可以包括管理进程模块662、时间授予器模块664、仲裁模块666、QoS测量模块672、动态QoS控制模块674和带宽分配管理器模块676。QoS控制器670由仲裁模块666、QoS测量模块672、动态QoS控制模块674和带宽分配管理器模块676组成。
管理进程模块662包括用于执行存储介质维护和开销进程的指令。时间授予器模块664结合带宽分配管理器模块626将令牌分配给与读队列和写队列相关联的各个令牌桶。仲裁模块666至少部分地基于来自请求队列的令牌桶内包含的令牌的量为来自读队列和写队列的请求服务。服务质量测量模块672监测提供给读队列和写队列中的每个的服务质量,并在服务质量下降至相关联的服务级别协议所要求的服务质量以下时发出警告。动态服务质量控制模块672接收预备命令456,并且如果足够的带宽是可用的,动态服务质量控制模块在存储介质内创建新的分区和用于被请求的数据流的新的读队列和写队列。
通常,当软件660被加载到处理电路620中并被执行时,该软件能够将处理电路620整体地从通用计算***转变为如本文针对存储控制器所述的那样运作以及进行其他操作的定制化的专用计算***。内部存储***640上的编码软件660能够转变内部存储***640的物理结构。物理结构的具体转变可以依赖于本说明书的不同实施方式中的各种因素。这些因素的示例可以包括,但不限于,用于实现内部存储***640的存储介质的技术以及计算机存储介质是否被表征为主存储器或辅助存储器。
举例而言,如果计算机存储介质被实现为基于半导体的存储器,则当在半导体存储器中对程序进行编码时,软件660可以转变半导体存储器的物理状态。例如,软件660能够对构成半导体存储器的晶体管、电容器或其他分立电路元件的状态进行转变。对于磁性或光学介质而言,也能够发生类似的转变。在不脱离本说明书的范围的情况下,物理介质的其他转变是可能的,前述示例仅被提供以便于此讨论。
所包括的描述和附图描述了教导本领域技术人员如何作出和使用最佳模式的具体实施方案。出于教导发明原理的目的,简化或省略了一些常规方面。本领域技术人员将明了落在本发明范围内的根据这些实施方案的变型。本领域技术人员还会明了,可以各种方式将上述特征进行组合以形成多个实施方案。因此,本发明不限于如上所述的具体实施方案,而是仅受权利要求及其等同物限制。
Claims (20)
1.一种用于存储***的存储控制器,包括:
主机接口,其被配置为接收和传输多个数据流,每个数据流具有一个由一个对应的服务质量衡量的对应的服务级别协议;
驱动器接口,其被配置为将所述数据流传输到存储介质;以及
服务质量控制模块,其与该主机接口和该驱动器接口耦合,该服务质量控制模块包括:
用于每个所述数据流的读队列,每个读队列与一个对应的令牌桶相关联;
用于每个所述数据流的写队列,每个写队列与一个对应的令牌桶相关联;
仲裁器,其被配置为接收来自所述读队列和写队列的请求,并且按照至少部分地由每个令牌桶中的令牌数量确定的顺序来服务所述读队列和写队列;
服务质量测量模块,其被配置为测量用于所述读队列和写队列中的每个的服务质量级别;以及
带宽分配管理器,其被配置为以对应于所述服务级别协议和用于所述读队列和写队列中的每个的测量的服务质量的速率将令牌分配给每个令牌桶。
2.根据权利要求1所述的存储控制器,其中每个令牌桶中允许的最大令牌数量部分地由一个对应的服务级别协议确定。
3.根据权利要求1所述的存储控制器,其中该仲裁器还被配置为接收来自内部进程队列的请求并且服务所述内部进程队列以及所述读队列和写队列。
4.根据权利要求3所述的存储控制器,其中所述内部进程队列具有所有可用带宽的一个被保证百分比。
5.根据权利要求1所述的存储控制器,其中该仲裁器还被配置为确定每个请求所需的时间量,并且仅当对应的令牌桶中的令牌数量足以满足该请求时才服务该请求。
6.根据权利要求1所述的存储控制器,其中该服务质量控制模块还包括动态服务质量控制模块,该动态服务质量控制模块被配置为接收对新数据流的请求,并且响应于所述对新数据流的请求,确定可用带宽的量,并且仅当该新数据流所需的带宽小于可用带宽的量时才建立该新数据流。
7.根据权利要求1所述的存储控制器,其中每个数据流对应于所述存储介质内的一个分区。
8.根据权利要求1所述的存储控制器,其中所述带宽分配管理器还被配置为响应于用于所述读队列和写队列中的每个的测量的服务质量,调整将令牌分配给每个令牌桶的速率。
9.根据权利要求1所述的存储控制器,其中所述服务质量包括读带宽要求、读等待时间要求、写带宽要求和写等待时间要求。
10.根据权利要求1所述的存储控制器,其中所述服务质量测量模块还被配置为当所述读队列和写队列中的任何一个的服务级别未能满足对应的服务质量要求时发出警告。
11.一种操作存储控制器的方法,该存储控制器被配置为接收和传输多个数据流,每个数据流具有一个由一个对应的服务质量衡量的对应的服务级别协议,该方法包括:
接收来自对应于所述多个数据流的多个读队列和写队列的请求,每个队列与一个对应的令牌桶相关联;
以至少部分地由每个令牌桶中的令牌数量确定的顺序来服务来自所述读队列和写队列的请求;
测量用于所述读队列和写队列中的每个的服务质量级别;以及
以对应于所述服务级别协议和用于所述读队列和写队列中的每个的测量的服务质量的速率将令牌分配给每个令牌桶。
12.根据权利要求11所述的方法,其中每个令牌桶中允许的最大令牌数量部分地由一个对应的服务级别协议确定。
13.根据权利要求11所述的方法,该方法还包括:
接收来自内部进程队列的请求;以及
服务所述内部进程队列以及所述读队列和写队列。
14.根据权利要求13所述的方法,其中所述内部进程队列具有所有可用带宽的一个被保证百分比。
15.根据权利要求11所述的方法,该方法还包括:
确定每个请求所需的时间量;以及
仅当对应的令牌桶中的令牌数量足以满足该请求时才服务该请求。
16.根据权利要求11所述的方法,该方法还包括:
接收对新数据流的请求;
响应于所述对新数据流的请求,确定可用带宽的量;以及
仅当该新数据流所需的带宽小于该可用带宽的量时才建立该新数据流。
17.根据权利要求11所述的方法,其中每个数据流对应于所述存储介质内的一个分区。
18.根据权利要求11所述的方法,该方法还包括:
响应于用于所述读队列和写队列中的每个的测量的服务质量,调整将令牌分配给每个令牌桶的速率。
19.根据权利要求11所述的方法,其中所述服务质量包括读带宽要求、读等待时间要求、写带宽要求和写等待时间要求。
20.根据权利要求11所述的方法,该方法还包括:
当所述读队列和写队列中的任何一个的服务级别未能满足相应的服务质量要求时发出警告。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762474718P | 2017-03-22 | 2017-03-22 | |
US62/474,718 | 2017-03-22 | ||
PCT/US2018/023532 WO2018175559A1 (en) | 2017-03-22 | 2018-03-21 | Drive-level internal quality of service |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109154883A true CN109154883A (zh) | 2019-01-04 |
Family
ID=63582529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880001929.2A Pending CN109154883A (zh) | 2017-03-22 | 2018-03-21 | 驱动级内部服务质量 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10732895B2 (zh) |
CN (1) | CN109154883A (zh) |
WO (1) | WO2018175559A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941541A (zh) * | 2019-11-06 | 2020-03-31 | 北京百度网讯科技有限公司 | 对数据流服务进行问题定级的方法以及装置 |
CN111049669A (zh) * | 2019-10-30 | 2020-04-21 | 烽火通信科技股份有限公司 | 一种实现流量控制的分布式存储***及方法 |
CN111930299A (zh) * | 2020-06-22 | 2020-11-13 | 中国建设银行股份有限公司 | 分配存储单元的方法及相关设备 |
CN113126904A (zh) * | 2019-12-30 | 2021-07-16 | 美光科技公司 | 存储器命令的功能仲裁和服务质量 |
CN113254222A (zh) * | 2021-07-13 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、***、电子设备及存储介质 |
CN113568570A (zh) * | 2021-06-22 | 2021-10-29 | 阿里巴巴新加坡控股有限公司 | 数据处理方法及装置 |
CN113746854A (zh) * | 2021-09-09 | 2021-12-03 | 苏州盛科通信股份有限公司 | QoS管理方法、报文传输方法及报文传输装置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10579567B2 (en) | 2017-06-28 | 2020-03-03 | Western Digital Technologies, Inc. | Queue depth management for host systems accessing a peripheral component interconnect express (PCIe) device via a PCIe switch |
US10437758B1 (en) * | 2018-06-29 | 2019-10-08 | Apple Inc. | Memory request management system |
US10732897B2 (en) | 2018-07-03 | 2020-08-04 | Western Digital Technologies, Inc. | Quality of service based arbitrations optimized for enterprise solid state drives |
US11392320B2 (en) | 2018-07-03 | 2022-07-19 | Western Digital Technologies, Inc. | Quality of service based arbitrations optimized for enterprise solid state drives |
US10963172B2 (en) * | 2018-08-09 | 2021-03-30 | Apple Inc. | Systems and methods for providing a back pressure free interconnect |
US10838884B1 (en) * | 2018-09-12 | 2020-11-17 | Apple Inc. | Memory access quality-of-service reallocation |
EP3864512A1 (en) * | 2018-10-11 | 2021-08-18 | Sensus Spectrum, LLC | Methods for managing bandwidth allocation in a cloud-based system and related bandwidth managers and computer program products |
US10732900B2 (en) * | 2018-10-24 | 2020-08-04 | Western Digital Technologies, Inc. | Bounded latency and command non service methods and apparatus |
KR20210001414A (ko) * | 2019-06-28 | 2021-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법 |
CN112445412B (zh) * | 2019-08-28 | 2024-06-11 | 华为技术有限公司 | 一种数据存储方法及装置 |
US11620053B2 (en) | 2019-10-24 | 2023-04-04 | Micron Technology, Inc. | Quality of service for the multiple functions in memory devices |
US11687244B2 (en) | 2019-10-24 | 2023-06-27 | Micron Technology, Inc. | Quality of service for memory devices using weighted memory access operation types |
US11237731B2 (en) | 2019-10-24 | 2022-02-01 | Micron Technology, Inc. | Quality of service for memory devices using suspend and resume of program and erase operations |
WO2021113420A1 (en) * | 2019-12-03 | 2021-06-10 | Burlywood, Inc. | Adaptive wear leveling using multiple partitions |
US11146455B2 (en) * | 2019-12-20 | 2021-10-12 | Intel Corporation | End-to-end quality of service in edge computing environments |
US20210200695A1 (en) * | 2019-12-27 | 2021-07-01 | Advanced Micro Devices, Inc. | Staging memory access requests |
US11321017B2 (en) * | 2020-06-29 | 2022-05-03 | SK Hynix Inc. | Systems and methods for controlling completion rate of commands |
US11442658B1 (en) * | 2020-07-12 | 2022-09-13 | Lightbits Labs Ltd. | System and method for selecting a write unit size for a block storage device |
US11604743B2 (en) | 2020-08-31 | 2023-03-14 | International Business Machines Corporation | Input/output queue hinting for resource utilization |
US11863623B2 (en) * | 2020-09-11 | 2024-01-02 | Western Digital Technologies, Inc. | Variable QoS management of multiple data streams |
US11593396B2 (en) * | 2020-09-23 | 2023-02-28 | EMC IP Holding Company LLC | Smart data offload sync replication |
KR20220048303A (ko) * | 2020-10-12 | 2022-04-19 | 삼성전자주식회사 | 크레딧을 이용하는 호스트 장치와 스토리지 장치의 동작 방법 |
CN112306415B (zh) * | 2020-11-02 | 2023-04-11 | 成都佰维存储科技有限公司 | Gc流控方法、装置、计算机可读存储介质及电子设备 |
CN112671666B (zh) * | 2020-11-16 | 2022-05-27 | 新华三大数据技术有限公司 | Io处理方法及装置 |
US11868287B2 (en) * | 2020-12-17 | 2024-01-09 | Micron Technology, Inc. | Just-in-time (JIT) scheduler for memory subsystems |
US11561909B2 (en) | 2021-04-28 | 2023-01-24 | Western Digital Technologies, Inc. | Bandwidth allocation for storage system commands in peer-to-peer environment |
US11556274B1 (en) | 2021-09-01 | 2023-01-17 | Western Digital Technologies, Inc. | Endurance groups ECC allocation |
US11640267B2 (en) | 2021-09-09 | 2023-05-02 | Western Digital Technologies, Inc. | Method and system for maintenance allocation between NVM groups |
US20230102680A1 (en) * | 2021-09-30 | 2023-03-30 | Advanced Micro Devices, Inc. | Stacked command queue |
US11934684B2 (en) * | 2021-12-14 | 2024-03-19 | Western Digital Technologies, Inc. | Maximum data transfer size per tenant and command type |
JP2024034411A (ja) | 2022-08-31 | 2024-03-13 | 株式会社東芝 | 磁気ディスク装置及びコマンド処理方法 |
US12028267B1 (en) * | 2022-12-13 | 2024-07-02 | T-Mobile Innovations Llc | Dynamic channel allocation of narrowband internet of things and long-term evolution machine communications |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895485B1 (en) * | 2000-12-07 | 2005-05-17 | Lsi Logic Corporation | Configuring and monitoring data volumes in a consolidated storage array using one storage array to configure the other storage arrays |
CN101213798A (zh) * | 2005-05-27 | 2008-07-02 | 诺基亚公司 | 使用网络层服务质量(QoS)管理的高速串行总线体系 |
US20090225762A1 (en) * | 2008-03-04 | 2009-09-10 | Bridgewater Systems Corp. | Providing dynamic quality of service for virtual private networks |
US20120203986A1 (en) * | 2009-09-09 | 2012-08-09 | Fusion-Io | Apparatus, system, and method for managing operations for data storage media |
CN102833158A (zh) * | 2012-08-15 | 2012-12-19 | 北京神州绿盟信息安全科技股份有限公司 | 网络数据发送方法和装置、网络数据*** |
US20130298123A1 (en) * | 2010-05-31 | 2013-11-07 | Microsoft Corporation | Applying policies to schedule network bandwidth among virtual machines |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496899B1 (en) * | 2000-02-28 | 2002-12-17 | Sun Microsystems, Inc. | Disk scheduling system with bounded request reordering |
US7917903B2 (en) * | 2003-03-27 | 2011-03-29 | Hewlett-Packard Development Company, L.P. | Quality of service controller and method for a data storage system |
US7287121B2 (en) * | 2003-08-27 | 2007-10-23 | Aristos Logic Corporation | System and method of establishing and reconfiguring volume profiles in a storage system |
US20080162735A1 (en) | 2006-12-29 | 2008-07-03 | Doug Voigt | Methods and systems for prioritizing input/outputs to storage devices |
US7711789B1 (en) * | 2007-12-07 | 2010-05-04 | 3 Leaf Systems, Inc. | Quality of service in virtual computing environments |
US8510521B2 (en) * | 2010-09-16 | 2013-08-13 | Apple Inc. | Reordering in the memory controller |
US9141568B2 (en) * | 2011-08-25 | 2015-09-22 | Apple Inc. | Proportional memory operation throttling |
CN104111800B (zh) * | 2013-04-18 | 2018-02-23 | 阿里巴巴集团控股有限公司 | 一种虚拟磁盘的io口调度方法及其调度装置 |
US9170752B2 (en) * | 2013-12-19 | 2015-10-27 | International Business Machines Corporation | Dynamic feedback-based throughput control for black-box storage systems |
US9563369B2 (en) * | 2014-04-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Fine-grained bandwidth provisioning in a memory controller |
US9582355B2 (en) * | 2014-07-09 | 2017-02-28 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
CN107615388A (zh) | 2015-03-20 | 2018-01-19 | 波利伍德有限责任公司 | 存储控制器中的可配置多级纠错 |
WO2016154078A1 (en) * | 2015-03-26 | 2016-09-29 | Burlywood, LLC | A medium defect management method for storage systems requiring an integrated controller |
US10191879B2 (en) | 2015-03-31 | 2019-01-29 | Veritas Technologies Llc | System and method for creating snapshots in openflame environment |
US9575664B2 (en) * | 2015-04-08 | 2017-02-21 | Prophetstor Data Services, Inc. | Workload-aware I/O scheduler in software-defined hybrid storage system |
US10785300B2 (en) * | 2016-10-12 | 2020-09-22 | Dell Products L.P. | Storage rate limiting for information handling system with multiple storage controllers |
-
2018
- 2018-03-21 WO PCT/US2018/023532 patent/WO2018175559A1/en active Application Filing
- 2018-03-21 CN CN201880001929.2A patent/CN109154883A/zh active Pending
- 2018-03-21 US US15/927,500 patent/US10732895B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895485B1 (en) * | 2000-12-07 | 2005-05-17 | Lsi Logic Corporation | Configuring and monitoring data volumes in a consolidated storage array using one storage array to configure the other storage arrays |
CN101213798A (zh) * | 2005-05-27 | 2008-07-02 | 诺基亚公司 | 使用网络层服务质量(QoS)管理的高速串行总线体系 |
US20090225762A1 (en) * | 2008-03-04 | 2009-09-10 | Bridgewater Systems Corp. | Providing dynamic quality of service for virtual private networks |
US20120203986A1 (en) * | 2009-09-09 | 2012-08-09 | Fusion-Io | Apparatus, system, and method for managing operations for data storage media |
US20130298123A1 (en) * | 2010-05-31 | 2013-11-07 | Microsoft Corporation | Applying policies to schedule network bandwidth among virtual machines |
CN102833158A (zh) * | 2012-08-15 | 2012-12-19 | 北京神州绿盟信息安全科技股份有限公司 | 网络数据发送方法和装置、网络数据*** |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049669A (zh) * | 2019-10-30 | 2020-04-21 | 烽火通信科技股份有限公司 | 一种实现流量控制的分布式存储***及方法 |
CN110941541A (zh) * | 2019-11-06 | 2020-03-31 | 北京百度网讯科技有限公司 | 对数据流服务进行问题定级的方法以及装置 |
CN113126904A (zh) * | 2019-12-30 | 2021-07-16 | 美光科技公司 | 存储器命令的功能仲裁和服务质量 |
CN111930299A (zh) * | 2020-06-22 | 2020-11-13 | 中国建设银行股份有限公司 | 分配存储单元的方法及相关设备 |
CN111930299B (zh) * | 2020-06-22 | 2024-01-26 | 中国建设银行股份有限公司 | 分配存储单元的方法及相关设备 |
CN113568570A (zh) * | 2021-06-22 | 2021-10-29 | 阿里巴巴新加坡控股有限公司 | 数据处理方法及装置 |
CN113568570B (zh) * | 2021-06-22 | 2024-04-12 | 阿里巴巴创新公司 | 数据处理方法及装置 |
CN113254222A (zh) * | 2021-07-13 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、***、电子设备及存储介质 |
CN113254222B (zh) * | 2021-07-13 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、***、电子设备及存储介质 |
US12019889B2 (en) | 2021-07-13 | 2024-06-25 | Inspur Suzhou Intelligent Technology Co., Ltd. | Task allocation method and system for solid state drive, electronic device, and storage medium |
CN113746854A (zh) * | 2021-09-09 | 2021-12-03 | 苏州盛科通信股份有限公司 | QoS管理方法、报文传输方法及报文传输装置 |
Also Published As
Publication number | Publication date |
---|---|
US10732895B2 (en) | 2020-08-04 |
WO2018175559A1 (en) | 2018-09-27 |
US20180275923A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154883A (zh) | 驱动级内部服务质量 | |
US11531493B2 (en) | Request throttling in distributed storage systems | |
US20220413705A1 (en) | Resource Monitoring in a Distributed Storage System | |
US10798207B2 (en) | System and method for managing application performance | |
US10649664B2 (en) | Method and device for scheduling virtual disk input and output ports | |
CN109565515B (zh) | 分布式资源管理***中的动态租户结构调整的***、设备和过程 | |
EP3011710B1 (en) | Controlling bandwidth across multiple users for interactive services | |
Balakrishnan et al. | Pelican: A building block for exascale cold data storage | |
KR101957006B1 (ko) | 네트워크 액세스가능 블록 저장을 위한 조정된 승인 제어 | |
US9225668B2 (en) | Priority driven channel allocation for packet transferring | |
US20170177221A1 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
US8775549B1 (en) | Methods, systems, and computer program products for automatically adjusting a data replication rate based on a specified quality of service (QoS) level | |
WO2019091387A1 (en) | Method and system for provisioning resources in cloud computing | |
US10394606B2 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
US10250673B1 (en) | Storage workload management using redirected messages | |
CN105874432A (zh) | 一种资源管理方法、主机和端点 | |
CN104219279A (zh) | 用于超大规模分布式处理应用的模块化架构的***和方法 | |
JP2011215794A (ja) | 分散ストレージシステム及びプログラム | |
US10359945B2 (en) | System and method for managing a non-volatile storage resource as a shared resource in a distributed system | |
Stephens et al. | Titan: Fair Packet Scheduling for Commodity Multiqueue {NICs} | |
CN110221775A (zh) | 存储***中令牌的分配方法和装置 | |
CN116382581A (zh) | 一种加速执行NVMe协议的方法、***、设备和存储介质 | |
JP6394313B2 (ja) | ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム | |
JP2018041282A (ja) | ストレージ管理装置、性能調整方法及び性能調整プログラム | |
EP4057150A1 (en) | Systems, methods, and devices for data storage with specified data transfer rate |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190104 |
|
WD01 | Invention patent application deemed withdrawn after publication |