CN116010312A - 用于管理输入/输出的方法、设备和计算机程序产品 - Google Patents
用于管理输入/输出的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN116010312A CN116010312A CN202310122893.6A CN202310122893A CN116010312A CN 116010312 A CN116010312 A CN 116010312A CN 202310122893 A CN202310122893 A CN 202310122893A CN 116010312 A CN116010312 A CN 116010312A
- Authority
- CN
- China
- Prior art keywords
- request
- credit
- credit unit
- type
- unit
- 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
Images
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
Abstract
本公开的实施例涉及用于管理输入/输出(I/O)的方法、设备和计算机程序产品。一种方法包括响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于第一类型的I/O请求的至少一个信用单位。至少一个信用单位中的每个信用单位指示存储设备预留给第一类型的I/O请求的I/O处理能力。该方法还包括基于确定的结果,向第一I/O请求分配第一信用单位。该方法还包括利用第一信用单位对存储设备执行第一I/O请求所请求的I/O操作。此外,该方法还包括响应于I/O操作完成,回收第一信用单位以用于后续I/O请求。本公开的实施例能够实现针对不同类型的I/O的I/O处理能力的动态分配。
Description
本申请是申请日为2018年01月18日、申请号为201810049787.9,发明名称为“用于管理输入/输出的方法、设备和计算机程序产品”的发明专利申请的分案申请。
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及一种用于管理输入/输出(I/O)的方法、设备和计算机程序产品。
背景技术
在存储系统中可能存在针对相同存储设备的不同类型的I/O。例如,存储系统的重要配置信息(诸如,各组件的状态信息等)和用户数据可能被存储在相同存储设备上。针对这种重要配置信息的I/O和针对用户数据的I/O通常具有不同优先级。存储系统的配置信息对于存储系统而言非常重要,配置信息中的数据丢失可能导致严重问题。因此,针对重要配置信息的I/O相对于针对用户数据的I/O而言通常具有较高优先级。换言之,针对重要配置信息的I/O性能必须得到保证,其必须在要求的时间内完成,并且其吞吐率必须得到保证。
发明内容
本公开的实施例提供了一种用于管理I/O的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种用于管理I/O的方法。该方法包括:响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于第一类型的I/O请求的至少一个信用单位,至少一个信用单位中的每个信用单位指示存储设备预留给第一类型的I/O请求的I/O处理能力;基于确定的结果,向第一I/O请求分配第一信用单位;利用第一信用单位对存储设备执行第一I/O请求所请求的I/O操作;以及响应于I/O操作完成,回收第一信用单位以用于后续I/O请求。
在本公开的第二方面,提供了一种用于管理I/O的设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,该指令当由至少一个处理单元执行时,使得设备执行动作。该动作包括:响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于第一类型的I/O请求的至少一个信用单位,至少一个信用单位中的每个信用单位指示存储设备预留给第一类型的I/O请求的I/O处理能力;基于确定的结果,向第一I/O请求分配第一信用单位;利用第一信用单位对存储设备执行第一I/O请求所请求的I/O操作;以及响应于I/O操作完成,回收第一信用单位以用于后续I/O请求。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的存储系统100的架构图;
图2示出了根据本公开的实施例的用于管理I/O的示例过程200的流程图;
图3示出了根据本公开的实施例的用于管理I/O的示例过程300的流程图;
图4示出了根据本公开的实施例的用于管理I/O的方法400的流程图;以及
图5示出了可以用来实施本公开内容的实施例的示例设备500的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,在存储系统中可能存在针对相同存储设备的具有不同优先级的I/O。为了保证具有较高优先级的I/O的性能,存储设备可以为具有较高优先级的I/O预留较多的I/O处理能力,而为具有较低优先级的I/O预留较少的I/O处理能力,从而保证具有较高优先级的I/O能够在要求的时间内完成并且具有较高吞吐率。
在传统方案中,这样的预留通常是固定不变的,也即预留给具有较高优先级的I/O的I/O处理能力和预留给具有较低优先级的I/O的I/O处理能力具有固定比例。以此方式,当存储系统的重要配置信息和用户数据被存储在相同存储设备上时,即使针对配置信息的I/O并不繁忙,针对用户数据的I/O也无法获得预留给针对配置信息的I/O的I/O处理能力,因此始终处于较低的性能水平。
当存储设备是基于许多磁盘而构建的映射独立冗余磁盘阵列(RAID)时,上述问题可能更为严重。
例如,当存储设备是映射RAID时,配置信息和一部分用户数据可以被共同地存储在一个或多个磁盘区段中,并且一个或多个磁盘区段可以被分布在许多盘上。针对与配置信息共同存储的这部分用户数据的I/O由于上述原因可能始终处于较低的性能水平,因此也被称为“慢速I/O”。另一方面,除上述用户数据之外的其他用户数据可以被存储在其他磁盘区段中,并且其他磁盘区段也被分布在上述许多盘上。针对未与配置信息共同存储的这部分用户数据的I/O被分配有较多的I/O处理能力,从而处于较高的性能水平,因此也被称为“快速I/O”。可以看出,当存储设备是映射RAID时,由于慢速I/O和快速I/O可能实际上针对的是同一物理盘,因此可能导致快速I/O被慢速I/O阻塞的情况。也即,慢速I/O可能导致快速I/O的性能下降,从而降低整个存储系统的性能。
本公开的示例实施例提出了一种用于管理I/O的方案。该方案能够实现针对不同类型的I/O的I/O处理能力的动态分配。通过在具有较高优先级的I/O并不繁忙时将预留给这类I/O的I/O处理能力分配给具有较低优先级的I/O,该方案能够提高针对与配置信息存储在相同存储设备上的用户数据的I/O的处理性能,由此提高存储系统的整体性能。
图1示出了根据本公开的实施例的存储系统100的架构图。如图1所示,存储系统100总体上包括控制台110、主机120和存储处理器(SP)130。SP 130可以包括控制模块140和数据模块150。数据模块150可以包括持久性存储管理器(PSM)101、操作PSM 101的一个或多个组件102(本文中也被称为“客户端组件”)和存储设备103。应当理解,仅出于示例性的目的描述存储系统100的结构和功能,而不暗示对于本公开的范围的任何限制。本公开的实施例还可以被应用到具有不同的结构和/或功能的存储系统中。
在一些实施例中,PSM 101可以是一种驱动器,其允许一个或多个客户端组件102将相应的配置信息持久地存储在存储设备103中的指定存储区域中。在一些实施例中,PSM101可以提供数据库接口(例如,内核数据库管理器(KDBM))来实现这样的存储。
在一些实施例中,存储设备103可以基于任何目前已知或者将来开发的非易失性存储介质而构建,非易失性存储介质的示例包括但不限于一个或多个磁盘、固态盘(SSD)或磁盘阵列等。存储设备103可以是逻辑存储设备或者物理存储设备。在以下描述中,将以独立磁盘冗余阵列(RAID)作为存储设备103的示例。然而,应当理解,这仅仅是出于示例的目的,而不暗示对本公开的范围的任何限制。
在一些实施例中,一个或多个客户端组件102的示例可以包括但不限于用于与主机120接口的主机模块、用于提供逻辑存储单元的用户逻辑单元号模块、用于提供文件系统接口的文件系统模块、用于提供将用户数据临时缓存在动态随机访问存储器(DRAM)中的DRAM缓存模块、用于提供闪存上的数据缓存的闪存缓存模块、用于提供独立冗余磁盘阵列(RAID)接口的RAID模块等。
在一些实施例中,用户可以经由控制台130发出诸如创建或更改存储对象的命令。控制模块140可以将该命令转换成对应的I/O请求,并且将其发送数据模块150。I/O请求例如可以被发送至客户端组件102。客户端组件102可以经由PSM 101将与该存储对象有关的配置或者状态信息写入到存储设备103,或者从存储设备103读取与该存储对象有关的配置或状态信息。在另一些实例中,控制模块140也可以直接将针对配置或状态信息的I/O请求发送至PSM 101,例如以从存储设备103读取相应的配置或状态信息。在本文中,以上与针对配置或状态信息的I/O请求有关的路径也被称为“控制路径”。
在一些实施例中,例如,主机120可以向数据模块150发起读写用户数据的命令。主机120可以是在本地或远程运行用户应用的任何物理计算机、虚拟机、服务器等。针对用户数据的I/O请求可以被发送至客户端组件102,客户端组件102可以针对存储设备103执行I/O请求所请求的I/O操作,例如从存储设备103读取或者向其写入相应的用户数据等。在本文中,以上与针对用户数据的I/O请求有关的路径也被称为“数据路径”。
在一些实施例中,存储设备103例如可以是RAID,其上可以创建一个或多个逻辑存储区域(诸如逻辑单元号(LUN))。特别地,在存储设备103上可以创建有用于存储配置信息的私有存储区域(例如,私有LUN),和用于存储用户数据的用户存储区域(例如,用户LUN)。例如,私有LUN对于用户不可见。在一些实施例中,可以针对私有LUN中存储的数据提供多重镜像的保护以提供高可用性,例如基于提供多重镜像的RAID组来创建私有LUN。在一些实施例中,PSM 101可以使用标准I/O请求包(IRP)结构来与存储设备103上的LUN进行交互,以例如从其读取或向其写入数据、和/或查询LUN的配置等。在一些实施例中,PSM 101还可以支持加锁/解锁操作,以支持来自不同控制器的访问。
在一些实施例中,PSM 101允许客户端组件102对私有LUN进行一系列修改。PSM101允许这些修改被原子地提交或放弃。例如,如果一组修改中的所有修改被成功提交,则该组中的所有修改都被更新到相应的盘(例如,存储设备103中的相应盘)。如果一组修改中的任何修改提交失败,或者在提交之前SP 130发生故障,则该组修改中的所有修改都不被更新到相应的盘。也即,PSM 101可以确保针对私有LUN的写入是原子的。在另一些实施例中,客户端组件102可以被允许随机地写入PSM数据区域中的仅一小部分。在此情况下,PSM101也可以确保针对私有LUN的更新是原子的。
如上所述,PSM 101依赖于存储设备103作为实际后端存储设备,以持久地存储客户端组件102的配置和状态信息。在一些实施例中,PSM可以通过提供符合以下要求的机制来实现这样的存储:
(1)高可用性,即该机制是高度可用的。这意味着即使在存储设备103(例如,RAID)中的一个或多个盘出现故障时,该机制也必须确保数据的完整性。这可以通过多个冗余存储区域或通过使用标准的RAID技术来实现。
(2)管理能力,即该机制提供必要的管理能力,以便于使用。该机制包括提供图形用户界面支持,来呈现和修改PSM的属性。这些属性的示例可以包括但不限于使用/可用的总字节数、内容列表、格式化未使用空间等。
(3)保证一致性。即使在任何操作中出现运行时故障,该机制也必须保证数据和存储介质的一致性。从这种故障中恢复不需要借助于修复工具的使用。
(4)多用户支持。该机制支持来自多个用户的信息的存储和检索,并且从用户的角度提供不同用户的对应信息的分离。
(5)通用性,即该机制不对其处理的数据做任何假设。
在一些实施例中,PSM 101可以提供标准设备访问接口以供客户端组件102操作,诸如设备打开、关闭、加载/卸载设备控制入口点等接口。附加地,在一些实施例中,PSM 101还可以提供附加操作接口,诸如读取、写入、提交、放弃、删除、格式化未使用空间等接口。通过这些接口,PSM 101可以为客户端组件102提供简单的文件操作的原语。
在一些实施例中,如上所述,为了保证针对配置信息的I/O的性能,存储设备103初始地可以为针对配置信息的I/O预留较多的I/O处理能力,而为针对用户信息的I/O预留较少的I/O处理能力。此外,PSM可以与存储设备103进行协调,以根据针对配置信息的I/O和针对用户信息的I/O的实际负荷水平动态地调整I/O处理能力在两者之间的分配。
以下将结合图2和图3对这种I/O处理能力的动态调整进行进一步的详细描述。图2示出了根据本公开的实施例的用于管理I/O的示例流程200的流程图。出于说明的目的,在图2中仅示出如图1所示的PSM 101、客户端组件102和存储设备103。此外,在关于图2的描述中,将RAID作为存储设备103的示例,并且其上创建有用于存储配置信息的私有LUN和用于存储用户数据的用户LUN。应当理解,这仅仅出于示例的目的,而不暗示对本公开的范围的任何限制。
客户端组件102可以向PSM 101发送210针对配置信息的第一I/O请求。在本文中,针对配置信息的I/O请求也被称为“第一类型”的I/O请求。
响应于从客户端组件102接收到第一I/O请求,PSM 101可以为第一I/O请求分配220第一信用单位。在此所述的“信用单位(credit)”指示存储设备103的I/O处理能力,例如存储设备103能够同时处理的I/O操作的计数。
在一些实施例中,为了向第一I/O请求分配第一信用单位,PSM101可以首先确定是否存在可用于第一类型的I/O请求的至少一个信用单位。当确定存在至少一个信用单位时,PSM 101可以从至少一个信用单位中为第一I/O请求分配第一信用单位。
在一些实施例中,存储设备103的总I/O处理能力可以被表示为预定数目的信用单位。初始地,存储设备103可以从预定数目的信用单位中分别为针对配置信息的I/O请求和针对用户数据的I/O请求(在本文中,针对用户数据的I/O请求也被称为“第二类型”的I/O请求)分配预定比例的信用单位,例如为第一类型的I/O请求预留80%的I/O处理能力,而为第二类型的I/O预留20%的I/O处理能力。
例如,当如图1所示的SP 130被启动时,PSM 101可以被加载并且向存储设备103发起第一设备控制请求(例如,PSM 101可以向RAID 103发起第一设备控制操作IOCTL_FLARE_GET_RAID_INFO)以获取存储设备103预留给第一类型的I/O请求的信用单位的最大数目和/或最小数目。同时,PSM 101可以维护一个或多个变量,用于记录信用单位的使用状态。例如,PSM 101可以利用所获取的预留给第一类型的I/O请求的信用单位的最大数目和/或最小数目来更新一个或多个变量中的至少部分变量。一个或多个变量可以至少包括但不限于,预留给第一类型的I/O请求的信用单位的最大数目和/或最小数目(在本文中利用“第一变量”来表示)、当前剩余的信用单位的数目(在本文中利用“第二变量”来表示)、尚未完成的第一类型的I/O请求的数目(在本文中利用“第三变量”来表示)、借用给第二类型的I/O的信用单位的数目(在本文中利用“第四变量”来表示)以及是否存在等待信用单位的I/O请求(在本文中利用“第五变量”来表示)等。
在一些实施例中,例如,第一变量和第二变量可以被初始化为通过第一设备控制操作而获得的信用单位的最大数目和/或最小数目,第三变量和第四变量可以分别被初始化为特定值(例如,零),第五变量可以被初始化为“假”(也即,初始情况下不存在等待信用单位的I/O请求)。应当理解,在本文中所使用的数值(例如,零)均是示例性的,而不旨在暗示对本公开的范围的任何限制。
在一些实施例中,PSM 101可以通过检查第二变量来确定是否存在可用于第一类型的I/O请求的至少一个信用单位。例如,当第二变量大于特定值(例如,零)时,PSM 101可以确定是否存在可用于第一类型的I/O请求的信用单位。在一些实施例中,PSM 101可以将确定存在的至少一个信用单位中的部分信用单位分配给第一I/O请求。备选地,在另一些实施例中,利用当仅有一个客户端组件102存在的情况下(也即,仅有一个第一类型的I/O的请求者),PSM 101可以将确定存在的至少一个信用单位中的全部信用单位分配给第一I/O请求。
在另一些实施例中,预留给第一类型的I/O请求的可能已经全部分配给一个或多个客户端102,也即第二变量可能为零。在此情况下,PSM 101可以将第一I/O请求加入到等待队列中(例如,当等待队列未满时),以等待已分配的信用单位被回收,并且相应地将第五变量更新为“真”(也即,指示存在等待信用单位的I/O请求)。在一些实施例中,如果等待队列已满使得第一I/O请求无法被加入时,PSM 101可以默认地在未获得信用单位的情况下向存储设备103发起第一I/O请求所请求的I/O操作(例如,发送相应IRP)。备选地,在此情况下,PSM 101也可以向客户端组件102返回第一I/O请求执行失败的指示。
在一些实施例中,当已分配的信用单位被回收时,第二变量可以被相应更新,从而大于特定值(例如,零)。在此情况下,PSM 101可以从等待队列中取出等待信用单位的第一I/O请求,并且从第二变量所指示的信用单位中为等待队列中的第一I/O请求分配部分或全部的信用单位作为第一信用单位。类似地,如果在取出第一I/O请求之后等待队列为空,则PSM 101可以相应地更新将第五变量更新为“假”。
在一些实施例中,响应于第一信用单位被分配给第一I/O请求,PSM 101可以向存储设备103发送230相应IRP,以对存储设备103中的私有LUN执行240相应的I/O操作。当I/O操作完成时,存储设备103可以向PSM 101发送250IRP完成确认。响应于接收到IRP完成确认,PSM 101可以回收260第一信用单位,以用于后续I/O请求。例如,PSM 101可以更新第二变量,以指示第一信用单位的回收。此外,PSM 101可以向客户端组件发送270第一I/O请求完成的指示。
附加地或者备选地,在一些实施例中,PSM 101可以基于第一类型的I/O请求的完成情况,改变针对第一类型的I/O请求的等待队列的长度。例如,如上所述,PSM 101可以利用第三变量来记录已向存储设备103发出但尚未完成的第一类型的I/O请求的数目。
在一些实施例中,PSM 101可以确定第三变量的变化趋势,并基于所确定的变化趋势来调整等待队列的长度。例如,当第三变量逐渐增加而超过第一预定阈值时,PSM 101可以相应地增加等待队列的长度,以使得能够缓存更多第一类型的I/O请求。当第三变量逐渐减小而低于第二预定阈值时,PSM 101可以相应地减小等待队列的长度,以使得更多第一类型的I/O请求能够被执行。
附加地或者备选地,在一些实施例中,例如当第一类型的I/O请求的响应时间(例如,如下所述的平均响应时间)超过预定阈值或者当存储设备103向PSM 101指示第一类型的I/O请求执行失败时,PSM 101可以相应地增加等待队列的长度,以使得能够缓存更多第一类型的I/O请求。在此仅示出了基于第一类型的I/O请求的完成情况来调整等待队列长度的一些示例。应当理解,本公开的实施例能够被体现在与以上不同的更多示例中。
当针对存储设备103上的用户LUN的I/O负荷较大时,PSM可以与存储设备103进行通信,以使得预留给针对私有LUN的I/O请求的I/O处理能力能够动态地分配给针对用户LUN的I/O请求。
图3示出了根据本公开的实施例的用于管理I/O的示例流程300的流程图。出于说明的目的,在图3中仅示出如图1所示的PSM 101、客户端组件102和存储设备103。此外,在关于图3的描述中,将RAID作为存储设备103的示例,并且其上创建有用于存储配置信息的私有LUN和用于存储用户数据的用户LUN。应当理解,这仅仅出于示例的目的,而不暗示对本公开的范围的任何限制。
当针对存储设备103上的用户LUN的I/O(也即,第二类型的I/O)负荷较大时,存储设备103可以向PSM 101发起310第二设备控制操作(例如,存储设备103可以向PSM 101发起第二设备控制操作IOCTL_PSM_APPLY_RESERVED_CREDIT),以从预留给第一类型的I/O请求的信用单位中借用第二信用单位用于第二类型的I/O。响应于第二设备控制操作,PSM 101可以确定320第一类型的I/O请求的平均响应时间,以确定当前针对配置信息的I/O的性能是否符合期望。
在一些实施例中,该平均响应时间可以基于所有完成的第一类型的I/O请求的响应时间的算术平均值来被计算。备选地,在另一些实施例中,该平均响应时间可以基于所有完成的第一类型的I/O请求的响应时间的加权平均值来被计算。具体地,可以为最近完成的第一类型的I/O请求的响应时间xi分配权重t(例如,0<t<1),而为之前完成的所有第一类型的I/O请求的加权平均响应时间xi-1分配权重(1-t),则第一类型的I/O请求的当前加权平均响应时间xi+1=txi+(1-t)xi-1。通常,t>0.5,也即最近完成的第一类型的I/O请求的响应时间xi对于当前加权平均响应时间xi+1的影响超过历史I/O请求的加权平均响应时间的影响。
在一些实施例中,PSM 101可以进一步将所确定的平均响应时间与预定阈值进行比较。例如,当所确定的平均响应时间低于预定阈值时,其可以指示当前针对配置信息的I/O的性能符合期望。在此情况下,PSM 101可以向存储设备103发送330从预留给第一类型的I/O请求的信用单位中向第二类型的I/O借用第二信用单位的指示。附加地,PSM 101可以相应地减小第二变量并增加第四变量,以记录第二信用单位的借用。备选地,在另一些实施例中,尽管所确定的平均响应时间低于预定阈值,但是平均响应时间的变化趋势是越来越长时,为了避免针对配置信息的I/O的性能恶化,PSM 101也可以不向第二类型的I/O借用第二信用单位。
在一些实施例中,响应于从PSM 101接收到第二信用单位被借用给第二类型的I/O的指示,存储设备101可以基于第二信用单位来提高340针对用户LUN的I/O的I/O处理能力。
在一些实施例中,客户端组件102可以向PSM 101发送350加快第一类型的I/O请求的处理速度的请求。响应于接收到这样的请求,当PSM 101确定存在借用给第二类型的I/O请求的信用单位时(例如,当第四变量大于零时),PSM 101可以向存储设备103发起360第三设备控制操作(例如,PSM 101可以向存储设备103发起第三设备控制操作IOCTL_FLARE_RETURN_RESERVED_CREDIT),以回收之前借用给第二类型的I/O请求的信用单位(例如,第二信用单位)。
附加地或者备选地,在一些实施例中,PSM 101可以自行确定是否要发起第三设备控制操作,以回收之前借用给第二类型的I/O请求的信用单位,而不依赖于来自客户端组件102的请求(也即,动作350可以不被执行)。在一些实施例中,PSM 101可以基于第三变量的变化来确定是否需要回收借用的第二信用单位。例如,当第三变量越来越大而超过第一预定阈值时,PSM 101可以发起360第三设备控制操作,以回收借用的第二信用单位用于加快第一类型的I/O请求的处理速度。附加地或者备选地,PSM 101可以基于以上描述的第一类型的I/O请求的平均响应时间的变化来确定是否需要回收借用的第二信用单位。例如,当第一类型的I/O请求的平均响应时间越来越长而超过预定阈值时,PSM 101可以发起360第三设备控制操作,以回收借用的第二信用单位用于加快第一类型的I/O请求的处理速度。以上仅示出了PSM 101确定是否要发起第三设备控制操作以回收借用给第二类型的I/O请求的信用单位的一些示例。应当理解的是,本公开的实施例能够被体现在与以上不同的更多示例中。
在一些实施例中,响应于第三设备控制操作,存储设备103可以向PSM 101发送370回收之前借用给第二类型的I/O请求的第二信用单位的指示。响应于接收到这样的指示,存储设备103可以相应地增加第二变量并减小第四变量,以记录第二信用单位的回收。以此方式,由客户端组件102发起的后续第一类型的I/O请求能够获得更多的信用单位,以加快第一类型的I/O请求的处理速度。
通过以上描述能够看出,本公开的示例实施例能够实现针对不同类型的I/O的I/O处理能力的动态分配。通过在具有较高优先级的I/O并不繁忙时将预留给这类I/O的I/O处理能力分配给具有较低优先级的I/O,本公开的示例实施例能够提高针对与配置信息存储在相同存储设备上的用户数据的I/O的处理性能,由此提高存储系统的整体性能。
图4示出了根据本公开的实施例的用于管理I/O的方法400的流程图。以下结合图1来描述方法400中所涉及的动作。例如,方法400可以由如图1所示的PSM 101执行。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框401处,PSM 101响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于第一类型的I/O请求的至少一个信用单位。至少一个信用单位中的每个信用单位可以指示存储设备预留给第一类型的I/O请求的I/O处理能力。
在框420,PSM 101基于确定的结果,向第一I/O请求分配第一信用单位。
在一些实施例中,PSM 101响应于确定存在至少一个信用单位,从至少一个信用单位中向第一I/O请求分配第一信用单位。
备选地,在另一些实施例中,PSM 101响应于确定不存在至少一个信用单位,将第一I/O请求加入到等待队列中,以等待向第一类型的I/O请求分配的一个或多个信用单位被回收。然后,PSM 101可以响应于一个或多个信用单位被回收,从一个或多个信用单位中向第一I/O请求分配第一信用单位。
在框430,PSM 101利用第一信用单位对存储设备执行第一I/O请求所请求的I/O操作。
在框430,PSM 101响应于I/O操作完成,回收第一信用单位以用于后续I/O请求。
附加地或者备选地,在一些实施例中,PSM 101还基于I/O操作的结果,改变等待队列的长度。
附加地或者备选地,在一些实施例中,PSM 101响应于至少一个信用单位被确定为存在并且接收到从至少一个信用单位中为第二类型的第二I/O请求分配第二信用单位的第一请求,确定第一类型的I/O请求的平均响应时间。PSM 101进一步响应于平均响应时间低于预定阈值,从至少一个信用单位中向第二I/O请求分配第二信用单位。
附加地或者备选地,在一些实施例中,PSM 101响应于接收到加快处理第一类型的I/O请求的第二请求,回收第二信用单位以用于第一类型的后续I/O请求。
在一些实施例中,第一类型的I/O请求的第一优先级高于第二类型的I/O请求的第二优先级。
在一些实施例中,第一类型的I/O请求用于从存储设备读取或向其写入系统配置信息,并且第二类型的I/O请求用于从存储设备读取或向其写入用户数据。
在一些实施例中,存储设备是独立磁盘冗余阵列(RAID),并且I/O处理能力由RAID能够同时处理的I/O操作的数目表示。
图5示出了可以用来实施本公开内容的实施例的示例设备500的示意性框图。例如,如图1所示的SP 130可以利用示例设备500来实现。如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如存储盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400,可由处理单元501执行。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到RAM 503并由CPU 501执行时,可以执行上文描述的方法400的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于管理输入/输出(I/O)的方法,包括:
响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于所述第一类型的I/O请求的至少一个信用单位,所述至少一个信用单位中的每个信用单位指示所述存储设备预留给所述第一类型的I/O请求的I/O处理能力;
基于所述确定的结果,向所述第一I/O请求分配第一信用单位;
利用所述第一信用单位对所述存储设备执行所述第一I/O请求所请求的I/O操作;以及
响应于所述I/O操作完成,回收所述第一信用单位以用于后续I/O请求;
其中所述存储设备是独立磁盘冗余阵列(RAID),并且所述I/O处理能力由所述RAID能够同时处理的I/O操作的数目表示。
2.根据权利要求1所述的方法,其中向所述第一I/O请求分配所述第一信用单位包括:
响应于确定存在所述至少一个信用单位,从所述至少一个信用单位中向所述第一I/O请求分配所述第一信用单位。
3.根据权利要求1所述的方法,其中向所述第一I/O请求分配所述第一信用单位包括:
响应于确定不存在所述至少一个信用单位,将所述第一I/O请求加入到等待队列中,以等待向所述第一类型的I/O请求分配的一个或多个信用单位被回收;以及
响应于所述一个或多个信用单位被回收,从所述一个或多个信用单位中向所述第一I/O请求分配所述第一信用单位。
4.根据权利要求3所述的方法,还包括:
基于所述I/O操作的执行结果,改变所述等待队列的长度。
5.根据权利要求1所述的方法,还包括:
响应于所述至少一个信用单位被确定为存在并且接收到从所述至少一个信用单位中为第二类型的第二I/O请求分配第二信用单位的第一请求,确定所述第一类型的I/O请求的平均响应时间;以及
响应于所述平均响应时间低于预定阈值,从所述至少一个信用单位中向所述第二I/O请求分配所述第二信用单位。
6.根据权利要求5所述的方法,还包括:
响应于接收到加快处理所述第一类型的I/O请求的第二请求,回收所述第二信用单位以用于所述第一类型的后续I/O请求。
7.根据权利要求5所述的方法,其中所述第一类型的I/O请求的第一优先级高于所述第二类型的I/O请求的第二优先级。
8.根据权利要求1所述的方法,其中所述存储设备是映射RAID。
9.一种用于管理输入/输出(I/O)的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于所述第一类型的I/O请求的至少一个信用单位,所述至少一个信用单位中的每个信用单位指示所述存储设备预留给所述第一类型的I/O请求的I/O处理能力;
基于所述确定的结果,向所述第一I/O请求分配第一信用单位;
利用所述第一信用单位对所述存储设备执行所述第一I/O请求所请求的I/O操作;以及
响应于所述I/O操作完成,回收所述第一信用单位以用于后续I/O请求;
其中所述存储设备是独立磁盘冗余阵列(RAID),并且所述I/O处理能力由所述RAID能够同时处理的I/O操作的数目表示。
10.根据权利要求9所述的设备,其中向所述第一I/O请求分配所述第一信用单位包括:
响应于确定存在所述至少一个信用单位,从所述至少一个信用单位中向所述第一I/O请求分配所述第一信用单位。
11.根据权利要求9所述的设备,其中向所述第一I/O请求分配所述第一信用单位包括:
响应于确定不存在所述至少一个信用单位,将所述第一I/O请求加入到等待队列中,以等待向所述第一类型的I/O请求分配的一个或多个信用单位被回收;以及
响应于所述一个或多个信用单位被回收,从所述一个或多个信用单位中向所述第一I/O请求分配所述第一信用单位。
12.根据权利要求11所述的设备,其中所述动作还包括:
基于所述I/O操作的执行结果,改变所述等待队列的长度。
13.根据权利要求9所述的设备,其中所述动作还包括:
响应于所述至少一个信用单位被确定为存在并且接收到从所述至少一个信用单位中为第二类型的第二I/O请求分配第二信用单位的第一请求,确定所述第一类型的I/O请求的平均响应时间;以及
响应于所述平均响应时间低于预定阈值,从所述至少一个信用单位中向所述第二I/O请求分配所述第二信用单位。
14.根据权利要求13所述的设备,其中所述动作还包括:
响应于接收到加快处理所述第一类型的I/O请求的第二请求,回收所述第二信用单位以用于所述第一类型的后续I/O请求。
15.根据权利要求13所述的设备,其中所述第一类型的I/O请求的第一优先级高于所述第二类型的I/O请求的第二优先级。
16.根据权利要求9所述的设备,其中所述存储设备是映射RAID。
17.一种计算机程序产品,所述计算机程序产品包括非瞬态计算机存储介质,所述非瞬态计算机存储介质中存储有一个或多个软件程序的机器可执行指令,其中所述机器可执行指令在由设备执行时使所述设备:
响应于接收到针对存储设备的第一类型的第一I/O请求,确定是否存在可用于所述第一类型的I/O请求的至少一个信用单位,所述至少一个信用单位中的每个信用单位指示所述存储设备预留给所述第一类型的I/O请求的I/O处理能力;
基于所述确定的结果,向所述第一I/O请求分配第一信用单位;
利用所述第一信用单位对所述存储设备执行所述第一I/O请求所请求的I/O操作;以及
响应于所述I/O操作完成,回收所述第一信用单位以用于后续I/O请求;
其中所述存储设备是独立磁盘冗余阵列(RAID),并且所述I/O处理能力由所述RAID能够同时处理的I/O操作的数目表示。
18.根据权利要求17所述的计算机程序产品,其中向所述第一I/O请求分配所述第一信用单位包括:
响应于确定存在所述至少一个信用单位,从所述至少一个信用单位中向所述第一I/O请求分配所述第一信用单位。
19.根据权利要求17所述的计算机程序产品,其中向所述第一I/O请求分配所述第一信用单位包括:
响应于确定不存在所述至少一个信用单位,将所述第一I/O请求加入到等待队列中,以等待向所述第一类型的I/O请求分配的一个或多个信用单位被回收;以及
响应于所述一个或多个信用单位被回收,从所述一个或多个信用单位中向所述第一I/O请求分配所述第一信用单位。
20.根据权利要求17所述的计算机程序产品,其中所述存储设备是映射RAID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310122893.6A CN116010312A (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310122893.6A CN116010312A (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
CN201810049787.9A CN110059037B (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810049787.9A Division CN110059037B (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010312A true CN116010312A (zh) | 2023-04-25 |
Family
ID=67213898
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310122893.6A Pending CN116010312A (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
CN201810049787.9A Active CN110059037B (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810049787.9A Active CN110059037B (zh) | 2018-01-18 | 2018-01-18 | 用于管理输入/输出的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10740001B2 (zh) |
CN (2) | CN116010312A (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459892B2 (en) | 2014-04-23 | 2019-10-29 | Qumulo, Inc. | Filesystem hierarchical aggregate metrics |
CN116010312A (zh) * | 2018-01-18 | 2023-04-25 | 伊姆西Ip控股有限责任公司 | 用于管理输入/输出的方法、设备和计算机程序产品 |
US10795796B1 (en) | 2020-01-24 | 2020-10-06 | Qumulo, Inc. | Predictive performance analysis for file systems |
CN113282381A (zh) * | 2020-02-19 | 2021-08-20 | 中科寒武纪科技股份有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
US11704058B2 (en) * | 2020-07-28 | 2023-07-18 | Samsung Electronics Co., Ltd. | Systems and methods for resource-based scheduling of commands |
US11775481B2 (en) | 2020-09-30 | 2023-10-03 | Qumulo, Inc. | User interfaces for managing distributed file systems |
US11157458B1 (en) | 2021-01-28 | 2021-10-26 | Qumulo, Inc. | Replicating files in distributed file systems using object-based data storage |
US11461241B2 (en) | 2021-03-03 | 2022-10-04 | Qumulo, Inc. | Storage tier management for file systems |
US11132126B1 (en) | 2021-03-16 | 2021-09-28 | Qumulo, Inc. | Backup services for distributed file systems in cloud computing environments |
US11567660B2 (en) | 2021-03-16 | 2023-01-31 | Qumulo, Inc. | Managing cloud storage for distributed file systems |
US11620159B2 (en) | 2021-04-23 | 2023-04-04 | Samsung Electronics Co., Ltd. | Systems and methods for I/O command scheduling based on multiple resource parameters |
CN113193940B (zh) * | 2021-04-25 | 2023-02-28 | 无锡江南计算技术研究所 | 一种基于信用同步的信用回馈方法及装置 |
US11669255B2 (en) * | 2021-06-30 | 2023-06-06 | Qumulo, Inc. | Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations |
US11599508B1 (en) | 2022-01-31 | 2023-03-07 | Qumulo, Inc. | Integrating distributed file systems with object stores |
US11722150B1 (en) | 2022-09-28 | 2023-08-08 | Qumulo, Inc. | Error resistant write-ahead log |
US11729269B1 (en) | 2022-10-26 | 2023-08-15 | Qumulo, Inc. | Bandwidth management in distributed file systems |
US11934660B1 (en) | 2023-11-07 | 2024-03-19 | Qumulo, Inc. | Tiered data storage with ephemeral and persistent tiers |
US11921677B1 (en) | 2023-11-07 | 2024-03-05 | Qumulo, Inc. | Sharing namespaces across file system clusters |
CN117590923A (zh) * | 2024-01-19 | 2024-02-23 | 北京卡普拉科技有限公司 | 基于i/o访问降低功耗的方法、装置及设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373467B2 (en) * | 2004-05-17 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Storage device flow control |
US7398361B2 (en) * | 2005-08-30 | 2008-07-08 | P.A. Semi, Inc. | Combined buffer for snoop, store merging, load miss, and writeback operations |
US8949555B1 (en) * | 2007-08-30 | 2015-02-03 | Virident Systems, Inc. | Methods for sustained read and write performance with non-volatile memory |
US9141568B2 (en) * | 2011-08-25 | 2015-09-22 | Apple Inc. | Proportional memory operation throttling |
JP5903873B2 (ja) * | 2011-12-19 | 2016-04-13 | 富士通株式会社 | ストレージ装置、ストレージ装置の制御方法及びストレージ装置制御プログラム |
US20150269032A1 (en) * | 2014-03-18 | 2015-09-24 | Netapp, Inc. | Backing up data to cloud data storage while maintaining storage efficiency |
KR102505855B1 (ko) * | 2016-01-11 | 2023-03-03 | 삼성전자 주식회사 | 가중치 기반 멀티-큐 가능 리소스 공유 방법 |
US20170344266A1 (en) * | 2016-05-27 | 2017-11-30 | Netapp, Inc. | Methods for dynamic resource reservation based on classified i/o requests and devices thereof |
CN116010312A (zh) * | 2018-01-18 | 2023-04-25 | 伊姆西Ip控股有限责任公司 | 用于管理输入/输出的方法、设备和计算机程序产品 |
US10437758B1 (en) * | 2018-06-29 | 2019-10-08 | Apple Inc. | Memory request management system |
-
2018
- 2018-01-18 CN CN202310122893.6A patent/CN116010312A/zh active Pending
- 2018-01-18 CN CN201810049787.9A patent/CN110059037B/zh active Active
- 2018-10-31 US US16/176,301 patent/US10740001B2/en active Active
-
2020
- 2020-07-02 US US16/919,791 patent/US11144209B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11144209B2 (en) | 2021-10-12 |
US20190220189A1 (en) | 2019-07-18 |
CN110059037A (zh) | 2019-07-26 |
CN110059037B (zh) | 2023-02-03 |
US10740001B2 (en) | 2020-08-11 |
US20200333955A1 (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059037B (zh) | 用于管理输入/输出的方法、设备和计算机程序产品 | |
JP7280508B2 (ja) | 情報処理装置、情報処理方法および仮想マシン接続管理プログラム | |
US9971692B2 (en) | Supporting concurrent operations at fine granularity in a caching framework | |
CN109213696B (zh) | 用于缓存管理的方法和设备 | |
US9916249B2 (en) | Space allocation in a multi-grained writeback cache | |
US10095595B2 (en) | Instant recovery in a multi-grained caching framework | |
US10628311B2 (en) | Reducing defragmentation in a multi-grained writeback cache | |
EP3865992A2 (en) | Distributed block storage system, method, apparatus and medium | |
CN114036078A (zh) | 用于管理存储系统中的缓存设备的方法和系统 | |
US9817757B2 (en) | Scalable metadata management in a multi-grained caching framework | |
CN113157216B (zh) | 用于存储管理的方法、设备和计算机可读存储介质 | |
US11513849B2 (en) | Weighted resource cost matrix scheduler | |
US11403026B2 (en) | Method, device and computer program product for managing storage system | |
CN107577733B (zh) | 一种数据复制的加速方法及系统 | |
CN116097228A (zh) | 在针对写入集合中的轨道释放高速缓存资源之后获得用于对写入集合中的轨道的预期写入的高速缓存资源 | |
CN107209738B (zh) | 储存存储器直接访问 | |
CN111124253B (zh) | 管理存储设备的方法、装置和计算机程序产品 | |
CN110737397B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US10606506B2 (en) | Releasing space allocated to a space efficient target storage in a copy relationship with a source storage | |
US10949354B2 (en) | Distributed safe data commit in a data storage system | |
JPWO2018173300A1 (ja) | I/o制御方法およびi/o制御システム | |
CN114780014A (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 |