Movatterモバイル変換


[0]ホーム

URL:


WO2025139139A1 - Storage system resource management method and apparatus, device and nonvolatile readable storage medium - Google Patents

Storage system resource management method and apparatus, device and nonvolatile readable storage medium
Download PDF

Info

Publication number
WO2025139139A1
WO2025139139A1PCT/CN2024/121993CN2024121993WWO2025139139A1WO 2025139139 A1WO2025139139 A1WO 2025139139A1CN 2024121993 WCN2024121993 WCN 2024121993WWO 2025139139 A1WO2025139139 A1WO 2025139139A1
Authority
WO
WIPO (PCT)
Prior art keywords
resource
resource pool
global
resources
local
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
PCT/CN2024/121993
Other languages
French (fr)
Chinese (zh)
Inventor
徐玉显
孙京本
刘清林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co LtdfiledCriticalSuzhou Metabrain Intelligent Technology Co Ltd
Publication of WO2025139139A1publicationCriticalpatent/WO2025139139A1/en
Pendinglegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Classifications

Definitions

Landscapes

Abstract

The present application relates to the field of computers, and provides a storage system resource management method and apparatus, a device and a nonvolatile readable storage medium. The method comprises: for each CPU and memory resource of a storage system, creating an individual scheduling domain; separately establishing in each scheduling domain a global IO resource pool and a plurality of local IO resource pools, and setting resource linked lists; in response to system initialization, allocating IO resources in the global IO resource pool to respective local IO resource pools, and recording same in the resource linked lists; in response to the need to increase IO resources of a local IO resource pool, the local IO resource pool applying to the global IO resource pool for IO resources; and, in response to the success in the local IO resource pool applying to the global IO resource pool for the IO resources, allocating the IO resources to the local IO resource pool, and recording same. Using the solution of the present application can increase IO processing paths, reduce cross-path access to resources, decrease overheads caused by cross-socket access to memories, and ensure optimal IO resource configurations.

Description

Translated fromChinese
存储系统资源管理的方法、装置、设备及非易失性可读存储介质Storage system resource management method, device, equipment and non-volatile readable storage medium

相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS

本申请要求于2023年12月28日提交中国专利局,申请号为202311841280.4,申请名称为“一种存储系统资源管理的方法、装置、设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to a Chinese patent application filed with the China Patent Office on December 28, 2023, with application number 202311841280.4 and application name “A method, device, equipment and medium for storage system resource management”, all contents of which are incorporated by reference in this application.

技术领域Technical Field

本申请实施例涉及计算机领域,特别的,涉及一种存储系统资源管理的方法、装置、设备及非易失性可读存储介质。The embodiments of the present application relate to the field of computers, and in particular, to a method, apparatus, device and non-volatile readable storage medium for managing storage system resources.

背景技术Background Art

在海量存储、大数据和AI(Artificial Intelligence,人工智能)时代背景下,各行业对存储业务的需求不断增长,存储系统的软硬件架构为了满足业务增长和性能的提升,目前也都在持续的升级优化中,硬件架构上从单路CPU(Central Processing Unit,中央处理器)架构升级到了双路甚至多路,软件业务也升级各种功能,但是软件基础架构针对硬件平台的升级也需要升级优化,否则很难充分发挥出硬件升级带来的优势,比如双路架构下,存储系统资源管理方法如果仍然采用单路架构的技术,就会很难充分发挥多处理器的优势。In the era of massive storage, big data and AI (Artificial Intelligence), the demand for storage services in various industries is growing. In order to meet business growth and performance improvement, the hardware and software architecture of storage systems are currently being continuously upgraded and optimized. The hardware architecture has been upgraded from a single-channel CPU (Central Processing Unit) architecture to a dual-channel or even multi-channel architecture, and the software business has also upgraded various functions. However, the software infrastructure also needs to be upgraded and optimized for the hardware platform. Otherwise, it will be difficult to give full play to the advantages brought by the hardware upgrade. For example, under a dual-channel architecture, if the storage system resource management method still uses the technology of a single-channel architecture, it will be difficult to give full play to the advantages of multiple processors.

发明内容Summary of the invention

有鉴于此,本申请实施例的目的在于提出一种存储系统资源管理的方法、装置、设备及非易失性可读存储介质,通过使用本申请的技术方案,能够增加IO处理路径,提升了IO处理能力,减少资源的跨路访问,降低跨socket访问内存带来的开销,保证IO资源处在一个最优的配置。In view of this, the purpose of the embodiments of the present application is to propose a method, device, equipment and non-volatile readable storage medium for storage system resource management. By using the technical solution of the present application, it is possible to increase the IO processing path, improve the IO processing capability, reduce cross-path access to resources, reduce the overhead caused by cross-socket access to memory, and ensure that IO resources are in an optimal configuration.

基于上述目的,本申请的实施例的第一方面提供了一种存储系统资源管理的方法,包括以下步骤:Based on the above purpose, a first aspect of an embodiment of the present application provides a method for managing storage system resources, comprising the following steps:

针对存储系统的每路的CPU和内存资源创建单独的调度域;Create a separate scheduling domain for each CPU and memory resource of the storage system;

在每个调度域中分别建立全局IO(Input/Output,输入/输出)资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中分别设置资源链表;In each scheduling domain, a global IO (Input/Output) resource pool and several local IO resource pools are established, and resource linked lists are set in the global IO resource pool and each local IO resource pool;

响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录;In response to system initialization, the IO resources in the global IO resource pool are allocated to the corresponding local IO resource pools, and the allocation status is recorded in the respective resource linked lists;

响应于有本地IO资源池需要增加IO资源,本地IO资源池向全局IO资源池申请IO资源;In response to a local IO resource pool needing to increase IO resources, the local IO resource pool applies for IO resources from the global IO resource pool;

响应于本地IO资源池向全局IO资源池申请IO资源成功,全局IO资源池将对应的IO资源分配到本地IO资源池中,并在全局IO资源池和本地IO资源池的资源链表中对分配情况进行记录。In response to the local IO resource pool successfully applying for IO resources from the global IO resource pool, the global IO resource pool allocates the corresponding IO resources to the local IO resource pool, and records the allocation in the resource linked lists of the global IO resource pool and the local IO resource pool.

根据本申请的一个实施例,所述在每个调度域中分别建立全局IO资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中设置资源链表的步骤包括:According to an embodiment of the present application, the steps of establishing a global IO resource pool and a plurality of local IO resource pools in each scheduling domain, and setting a resource linked list in the global IO resource pool and each local IO resource pool include:

在每个调度域中分别创建一个全局IO资源池,全局IO资源池位于调度域所属的架构中的CPU所直连的物理内存上;A global IO resource pool is created in each scheduling domain. The global IO resource pool is located on the physical memory directly connected to the CPU in the architecture to which the scheduling domain belongs.

在每个调度域中分别创建若干个本地IO资源池,并将每个本地IO资源池连接到对应的全局IO资源池;Create several local IO resource pools in each scheduling domain, and connect each local IO resource pool to the corresponding global IO resource pool;

在全局IO资源池和每个本地IO资源池中分别设置资源链表用于记录IO资源信息。Resource linked lists are set in the global IO resource pool and each local IO resource pool to record IO resource information.

根据本申请的一个实施例,所述响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录的步骤包括:According to an embodiment of the present application, in response to system initialization, the steps of allocating IO resources in the global IO resource pool to corresponding local IO resource pools and recording the allocation status in respective resource linked lists include:

响应于系统初始化,根据静态配额从全局IO资源池上申请相应数量的IO资源;In response to system initialization, a corresponding number of IO resources are applied from the global IO resource pool according to the static quota;

将申请到的IO资源分配到对应的本地IO资源池中;Allocate the requested IO resources to the corresponding local IO resource pool;

在全局IO资源池和本地IO资源池中的资源链表中分别记录分配的IO资源的信息。The information of the allocated IO resources is recorded in the resource linked lists in the global IO resource pool and the local IO resource pool respectively.

根据本申请的一个实施例,还包括:According to one embodiment of the present application, it also includes:

响应于本地IO资源池向全局IO资源池申请IO资源失败,全局IO资源池向其他调度域的全局IO资源池申请IO资源并进行IO资源调度,并在各自的资源链表中对调度情况进行记录。In response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from the global IO resource pools of other scheduling domains and performs IO resource scheduling, and records the scheduling status in the respective resource linked lists.

根据本申请的一个实施例,响应于本地IO资源池向全局IO资源池申请IO资源失败,全局IO资源池向其他调度域的全局IO资源池申请IO资源并进行IO资源调度,并在各自的资源链表中对调度情况进行记录的步骤包括:According to one embodiment of the present application, in response to a local IO resource pool failing to apply for IO resources from a global IO resource pool, the global IO resource pool applies for IO resources from global IO resource pools of other scheduling domains and performs IO resource scheduling, and the steps of recording the scheduling status in respective resource linked lists include:

响应于本地IO资源池向全局IO资源池申请IO资源失败,全局IO资源池向其他调度域的全局IO资源池申请IO资源;In response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from the global IO resource pool of another scheduling domain;

其他调度域的全局IO资源池将对应的IO资源转移到发出申请的全局IO资源池中,并在两个全局IO资源池的资源链表中分别对调度情况进行记录;The global IO resource pools of other scheduling domains transfer the corresponding IO resources to the global IO resource pool that issued the request, and record the scheduling status in the resource linked lists of the two global IO resource pools respectively;

发出申请的全局IO资源池将获得到IO资源分配到发出申请的本地IO资源池中,并在全局IO资源池和本地IO资源池中的资源链表中对分配情况进行记录。The global IO resource pool that issues the application will allocate the IO resources obtained to the local IO resource pool that issues the application, and record the allocation status in the resource linked lists in the global IO resource pool and the local IO resource pool.

根据本申请的一个实施例,还包括:According to one embodiment of the present application, it also includes:

响应于调度域的IO压力持续第一预设时间低于预设值,将每个本地IO资源池中的IO资源释放到全局IO资源池中;In response to the IO pressure of the scheduling domain being lower than a preset value for a first preset time, releasing the IO resources in each local IO resource pool to the global IO resource pool;

在本地IO资源池和全局IO资源池中的资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists in the local IO resource pool and the global IO resource pool.

根据本申请实施例,还包括:According to an embodiment of the present application, it also includes:

响应于本地IO资源池释放的IO资源是其他调度域的IO资源,全局IO资源池将对应的IO资源释放到其他调度域的全局IO资源池中;In response to the IO resources released by the local IO resource pool being IO resources of other scheduling domains, the global IO resource pool releases the corresponding IO resources to the global IO resource pools of other scheduling domains;

在全局IO资源池和其他调度域的全局IO资源池中资源链表中对释放情况进行记录。The release status is recorded in the resource linked list in the global IO resource pool and the global IO resource pool of other scheduling domains.

根据本申请的一个实施例,还包括:According to one embodiment of the present application, it also includes:

统计资源链表中全局IO资源池向其他调度域的全局IO资源池申请的IO资源中未分配的IO资源数量;Count the number of unallocated IO resources in the IO resources requested by the global IO resource pool from other scheduling domains in the resource linked list;

将统计出的数量与设定阈值进行比较;Compare the counted number with the set threshold;

响应于统计出的数量超过设定阈值,将未分配的IO资源在第二预设时间内释放到其他调度域的全局IO资源池中;In response to the counted number exceeding a set threshold, releasing the unallocated IO resources to a global IO resource pool of another scheduling domain within a second preset time;

在全局IO资源池和其他调度域的全局IO资源池的资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists of the global IO resource pool and the global IO resource pools of other scheduling domains.

根据本申请的一个实施例,还包括:According to one embodiment of the present application, it also includes:

统计资源链表中全局IO资源池向其他调度域的全局IO资源池申请的IO资源中已分配的IO资源数量;Count the number of allocated IO resources in the resource linked list from the global IO resource pool's request to the global IO resource pools of other scheduling domains;

响应于统计出的数量持续第三预设时间低于预设值,将未分配的IO资源在第四预设时间内释放到其他调度域的全局IO资源池中;In response to the counted number being lower than a preset value for a third preset time, releasing the unallocated IO resources to a global IO resource pool of another scheduling domain within a fourth preset time;

在全局IO资源池和其他调度域的全局IO资源池的资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists of the global IO resource pool and the global IO resource pools of other scheduling domains.

根据本申请的一个实施例,还包括:According to one embodiment of the present application, it also includes:

响应于有本地IO资源池的IO压力持续第五预设时间低于压力阈值,减小本地IO资源池的静态配额;In response to the IO pressure of the local IO resource pool being lower than the pressure threshold for a fifth preset time, reducing the static quota of the local IO resource pool;

本地IO资源池将减小的静态配额对应的IO资源释放到全局IO资源池中,并在本地IO资源池和全局IO资源池的资源链表中对释放情况进行记录。The local IO resource pool releases the IO resources corresponding to the reduced static quota to the global IO resource pool, and records the release status in the resource linked lists of the local IO resource pool and the global IO resource pool.

根据本申请的一个实施例,每个IO资源池中的资源链表包括资源池空闲的IO资源链表、资源池已分配IO资源链表、从远端借来的IO资源中处于空闲状态的IO资源链表和从远端借来的IO资源中处于已分配状态的IO资源链表。According to an embodiment of the present application, the resource list in each IO resource pool includes a list of idle IO resources in the resource pool, a list of allocated IO resources in the resource pool, a list of idle IO resources in the IO resources borrowed from the remote end, and a list of allocated IO resources in the IO resource pool. A linked list of IO resources in the allocated state among the remote borrowed IO resources.

根据本申请的一个实施例,还包括:According to one embodiment of the present application, it also includes:

统计每个调度域当前的IO压力;Statistics on the current IO pressure of each scheduling domain;

响应于接收到新的IO任务,将IO任务下发到当前IO压力最小的调度域中进行处理。In response to receiving a new IO task, the IO task is sent to the scheduling domain with the lowest current IO pressure for processing.

本申请的实施例的第二方面,还提供了一种存储系统资源管理的装置,装置包括:According to a second aspect of an embodiment of the present application, there is also provided a device for managing storage system resources, the device comprising:

创建模块,创建模块被配置为针对存储系统的每路的CPU和内存资源创建单独的调度域;A creation module, where the creation module is configured to create a separate scheduling domain for each CPU and memory resource of the storage system;

设置模块,设置模块被配置为在每个调度域中分别建立全局IO资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中分别设置资源链表;A setting module, the setting module is configured to establish a global IO resource pool and a plurality of local IO resource pools in each scheduling domain, and set a resource linked list in the global IO resource pool and each local IO resource pool;

分配模块,分配模块被配置为响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录;An allocation module, the allocation module is configured to allocate IO resources in the global IO resource pool to corresponding local IO resource pools in response to system initialization, and record the allocation status in respective resource linked lists;

申请模块,申请模块被配置为响应于有本地IO资源池需要增加IO资源,本地IO资源池向全局IO资源池申请IO资源;The application module is configured to, in response to a local IO resource pool needing to increase IO resources, apply for IO resources from the global IO resource pool by the local IO resource pool;

调度模块,响应于本地IO资源池向全局IO资源池申请IO资源成功,全局IO资源池将对应的IO资源分配到本地IO资源池中,并在全局IO资源池和本地IO资源池的资源链表中对分配情况进行记录。The scheduling module, in response to the local IO resource pool successfully applying for IO resources from the global IO resource pool, the global IO resource pool allocates the corresponding IO resources to the local IO resource pool, and records the allocation status in the resource linked lists of the global IO resource pool and the local IO resource pool.

本申请的实施例的第三方面,还提供了一种计算机设备,该计算机设备包括:According to a third aspect of the embodiments of the present application, a computer device is provided, the computer device comprising:

至少一个处理器;以及at least one processor; and

存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。The memory stores computer instructions executable on the processor, and the instructions implement the steps of any one of the above methods when executed by the processor.

本申请的实施例的第四方面,还提供了一种计算机非易失性可读存储介质,计算机非易失性可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。According to a fourth aspect of the embodiments of the present application, a computer non-volatile readable storage medium is provided, wherein the computer non-volatile readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of any one of the above methods are implemented.

本申请具有以下有益技术效果:本申请实施例提供的存储系统资源管理的方法,通过针对存储系统的每路的CPU和内存资源创建单独的调度域;The present application has the following beneficial technical effects: the method for storage system resource management provided by the embodiment of the present application creates a separate scheduling domain for each CPU and memory resource of the storage system;

在每个调度域中分别建立全局IO资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中分别设置资源链表;响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录;响应于有本地IO资源池需要增加IO资源,本地IO资源池向全局IO资源池申请IO资源;响应于本地IO资源池向全局IO资源池申请IO资源成功,全局IO资源池将对应的IO资源分配到本地IO资源池中,并在全局IO资源池和本地IO资源池的资源链表中对分配情况进行记录的技术方案,能够增加IO处理路径,提升了IO处理能力,减少资源的跨路访问,降低跨socket(套接字)访问内存带来的开销,保证IO资源处在一个最优的配置。A global IO resource pool and several local IO resource pools are established in each scheduling domain, and resource linked lists are set in the global IO resource pool and each local IO resource pool; in response to system initialization, the IO resources in the global IO resource pool are allocated to the corresponding local IO resource pools, and the allocation status is recorded in the respective resource linked lists; in response to a local IO resource pool needing to increase IO resources, the local IO resource pool applies for IO resources from the global IO resource pool; in response to the local IO resource pool successfully applying for IO resources from the global IO resource pool, the global IO resource pool allocates the corresponding IO resources to The technical solution of recording the allocation status in the local IO resource pool and in the resource linked list of the global IO resource pool and the local IO resource pool can increase the IO processing path, improve the IO processing capability, reduce the cross-path access of resources, reduce the overhead caused by cross-socket access to memory, and ensure that the IO resources are in an optimal configuration.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other embodiments can be obtained based on these drawings without paying any creative work.

图1为根据本申请一个实施例的存储系统资源管理的方法的示意性流程图;FIG1 is a schematic flow chart of a method for managing storage system resources according to an embodiment of the present application;

图2为根据本申请一个实施例的双路处理器架构的示意图;FIG2 is a schematic diagram of a dual-path processor architecture according to an embodiment of the present application;

图3为根据本申请一个实施例的双路处理器架构中的调度域的示意图;FIG3 is a schematic diagram of a scheduling domain in a dual-path processor architecture according to an embodiment of the present application;

图4为根据本申请一个实施例的存储系统资源管理的装置的示意图;FIG4 is a schematic diagram of a storage system resource management device according to an embodiment of the present application;

图5为根据本申请一个实施例的计算机设备的示意图;FIG5 is a schematic diagram of a computer device according to an embodiment of the present application;

图6为根据本申请一个实施例的计算机非易失性可读存储介质的示意图。FIG. 6 is a schematic diagram of a computer non-volatile readable storage medium according to an embodiment of the present application.

具体实施方式DETAILED DESCRIPTION

为使本申请的目的、技术方案和优点更加清楚明白,以下结合可选实施例,并参照附图,对本申请实施例详细说明。In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the embodiments of the present application are described in detail below in combination with optional embodiments and with reference to the accompanying drawings.

本申请的方案可以用在双路处理器架构中,也可以用在更多路处理器架构中,本申请仅以双路处理器架构作为示例进行描述,双路处理器架构如图2所示,每一路都有一个多核的CPU(也叫处理器或socket),每一路都有自己本地的内存条(这里用DIMM(Dual-In-line-Memory-Module,双列直插式存储模块)表示)与该路的CPU直接相连。这两路通过CPU之间的高速互联通道相连(比如Intel(英特尔)的UPI(Ultra Path Interconnect,超级路径互连)、AMD(Advanced Micro Devices,Inc.超威半导体公司)的xGMI(Socket/Inter-Chip Global Memory Interconnect,套接字/芯片间全局存储器互连)等)。双路组合提升了平台的运算能力,但是双路平台还有一个明显的特性,CPU访问本路直连的内存效率要明显要比访问远端内存(另一路的内存)的高,因为访问远端内存需要经过CPU之间的高速互联通道和远端CPU才能访问到,而且双路CPU间的缓存同步效率要比CPU内部的缓存同步效率要差。针对双路架构这一技术特征,本申请提出了一种基于双路架构的存储系统资源管理方法,旨在让存储系统在双路架构下,资源的管理既能发挥多CPU带来的算力提升,又能减小内存跨路访问开销的影响。The solution of the present application can be used in a dual-way processor architecture or in a multi-way processor architecture. The present application only describes the dual-way processor architecture as an example. The dual-way processor architecture is shown in FIG2 . Each path has a multi-core CPU (also called a processor or socket), and each path has its own local memory stick (here represented by DIMM (Dual-In-line-Memory-Module)) directly connected to the CPU of the path. The two paths are connected through a high-speed interconnect channel between CPUs (such as Intel's UPI (Ultra Path Interconnect), AMD's (Advanced Micro Devices, Inc.) xGMI (Socket/Inter-Chip Global Memory Interconnect), etc.). The dual-channel combination improves the computing power of the platform, but the dual-channel platform also has an obvious feature: the CPU's efficiency in accessing the memory directly connected to the local channel is significantly higher than that of accessing the remote memory (the memory on the other channel), because accessing the remote memory requires the high-speed interconnection channel between the CPUs and the remote CPU to access it, and the cache synchronization efficiency between the dual-channel CPUs is lower than the cache synchronization efficiency within the CPU. In view of the technical feature of the dual-channel architecture, this application proposes a storage system resource management method based on the dual-channel architecture, which aims to enable the storage system to manage resources under the dual-channel architecture to give full play to the advantages of multiple CPUs. The computing power improvement brought by this can also reduce the impact of cross-path memory access overhead.

存储系统中IO资源本质上都是内存对象,存储系统是高并发系统,对这些内存对象的访问和处理是非常频繁的,所以访问这些IO资源要尽量避免跨路访问,这是双路架构下资源管理需要解决的一个问题。存储系统在应用层有自己的调度模块,被设置为调度各层业务模块的IO任务,首先按照双路架构将调度域和资源池实现划分,每一路对应一个调度域和其本地的IO资源,调度域是基于socket划分的,IO资源根据其物理内存位置划分的,直连哪一路的socket,该资源就划分到哪一路。因此,每一路都有独立的任务调度和资源管理,即有相对独立的IO路径。这样既增加了IO处理路径,提升了IO处理能力,又减少了资源的跨路访问,整体上降低了跨socket访问内存带来的开销。同时为了适应双路压力不均衡的场景,本申请还提出了在双路压力不均衡时,IO资源的自适应调整策略和方法,尽量满足两边压力的不同需求,保证IO资源处在一个最优的配置。IO resources in the storage system are essentially memory objects. The storage system is a high-concurrency system. The access and processing of these memory objects are very frequent. Therefore, cross-path access should be avoided as much as possible when accessing these IO resources. This is a problem that resource management needs to solve under the dual-path architecture. The storage system has its own scheduling module at the application layer, which is set to schedule the IO tasks of the business modules at each layer. First, the scheduling domain and resource pool are divided according to the dual-path architecture. Each path corresponds to a scheduling domain and its local IO resources. The scheduling domain is divided based on the socket. The IO resources are divided according to their physical memory location. The resource is divided to whichever socket is directly connected. Therefore, each path has independent task scheduling and resource management, that is, it has a relatively independent IO path. This not only increases the IO processing path and improves the IO processing capability, but also reduces the cross-path access of resources, and overall reduces the overhead caused by cross-socket access to memory. At the same time, in order to adapt to the scenario of unbalanced pressure on the dual paths, this application also proposes an adaptive adjustment strategy and method for IO resources when the pressure on the dual paths is unbalanced, so as to meet the different pressure requirements on both sides as much as possible and ensure that the IO resources are in an optimal configuration.

作为一种可选的示例,IO资源可以但不限于包括内存资源和数据对象,数据对象可以但不限于包括特定格式的数据结构,作为一种可选的示例,可以但不限于创建数据类型所对应的数据对象,可以但不限于将符合目标数据格式的数据写入所创建的数据对象中,其中,目标数据格式包括允许写入所创建的数据对象中的数据所需满足的数据格式。As an optional example, IO resources may include but are not limited to memory resources and data objects, data objects may include but are not limited to data structures in a specific format, as an optional example, data objects corresponding to data types may be created but are not limited to, and data conforming to a target data format may be written into the created data object but are not limited to, wherein the target data format includes a data format that is required to allow data to be written into the created data object.

基于上述目的,本申请的实施例的第一个方面,提出了一种存储系统资源管理的方法的一个实施例。图1示出的是该方法的示意性流程图。Based on the above purpose, the first aspect of the embodiment of the present application provides an embodiment of a method for managing storage system resources. FIG1 shows a schematic flow chart of the method.

如图1中所示,该方法可以包括以下步骤:As shown in FIG. 1 , the method may include the following steps:

S1针对存储系统的每路的CPU和内存资源创建单独的调度域。如图3所示,存储系统在应用层有自己的调度模块,被设置为调度各层业务模块的IO任务,首先将调度域(scheduledomain)按双路架构划分,每路一个scheduledomain,每个scheduledomain相对独立,每个scheduledomain内都有一条完整的IO路径,也就是说一个IO来了,既可以在scheduledomain-0中处理,也可以在scheduledomain-1中处理,并且处理过程中的任务基本不会跨scheduledomain。每个scheduledomain中的任务处理线程绑定到scheduledomain各自所属的那路CPU核心上,IO下发到各业务模块处理时,根据当前任务处理所在的scheduledomain,将下一步要处理的任务放到相同的scheduledomain执行,这样每路都有独立的IO处理路径。S1 creates a separate scheduling domain for each CPU and memory resource of the storage system. As shown in Figure 3, the storage system has its own scheduling module at the application layer, which is set to schedule the IO tasks of each layer of business modules. First, the scheduling domain is divided according to the dual-channel architecture, with one scheduledomain for each channel. Each scheduledomain is relatively independent, and each scheduledomain has a complete IO path. In other words, when an IO comes, it can be processed in scheduledomain-0 or scheduledomain-1, and the tasks in the processing process basically do not cross scheduledomains. The task processing thread in each scheduledomain is bound to the CPU core of the channel to which the scheduledomain belongs. When the IO is sent to each business module for processing, the task to be processed next is placed in the same scheduledomain for execution according to the scheduledomain where the current task processing is located. In this way, each channel has an independent IO processing path.

S2在每个调度域中分别建立全局IO资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中分别设置资源链表。IO路径按scheduledomain实现了划分,IO资源也按scheduledomain实现划分。然后在系统中建立一个全局的IO资源池,里面一开始都是空闲的内存资源,按照内存物理位置,划分成两个全局的IO资源池,分属于不同的scheduledomain。如图3所示,有两个G_IO_Res(global IO Resource,全局资源池)池,分属在不同的scheduledomain里。每个G_IO_Res池中的内存都位于其domain所属的那路CPU所直连的物理内存上,并且分配和使用都在各自domain的IO处理路径里。每层业务模块的IO资源是在自己的L_IO_Res(Local IO Resource,本地资源池)池中。每层业务模块有两个L_IO_Res池,并且分配和使用都在各自domain的IO处理路径里。G_IO_Res和L_IO_Res结构基本相同,主要有4各成员:free_list、allocated_list、remote_free_list和remote_allocated_list。free_list是该池空闲的资源链表,allocated_list是该池已分配的资源链表,remote_free_list是从远端借来的资源,空闲资源链表,remote_allocated_list是从远端借来的资源,且已分配的资源链表。S2 establishes a global IO resource pool and several local IO resource pools in each scheduling domain, and sets resource lists in the global IO resource pool and each local IO resource pool. IO paths are divided by scheduledomain, and IO resources are also divided by scheduledomain. Then a global IO resource pool is established in the system, and once it is opened, All memory resources are free at the beginning. According to the physical location of memory, they are divided into two global IO resource pools, which belong to different scheduledomains. As shown in Figure 3, there are two G_IO_Res (global IO Resource) pools, which belong to different scheduledomains. The memory in each G_IO_Res pool is located on the physical memory directly connected to the CPU to which its domain belongs, and the allocation and use are in the IO processing path of each domain. The IO resources of each layer of business modules are in their own L_IO_Res (Local IO Resource) pool. Each layer of business modules has two L_IO_Res pools, and the allocation and use are in the IO processing path of each domain. The structures of G_IO_Res and L_IO_Res are basically the same, with four main members: free_list, allocated_list, remote_free_list and remote_allocated_list. free_list is a linked list of free resources in the pool, allocated_list is a linked list of allocated resources in the pool, remote_free_list is a linked list of free resources borrowed from the remote end, and remote_allocated_list is a linked list of allocated resources borrowed from the remote end.

S3响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录。系统初始化阶段,各层业务模块按照各自的静态配额从G_IO_Res池上申请相应数量的IO资源放入业务模块的L_IO_Res池中。例如,将一定数量的IO资源从G_IO_Res的free_list转移到业务模块L_IO_Res池的free_list中,并将这部分资源记录到G_IO_Res的allocated_list中。因为每层业务模块有两个L_IO_Res池,分属于不同的domain,所以当L_IO_Res池从G_IO_Res池申请IO资源时,总是选择与该L_IO_Res池同domain的G_IO_Res池。S3 responds to system initialization, allocates IO resources in the global IO resource pool to the corresponding local IO resource pool, and records the allocation in the respective resource linked lists. During the system initialization phase, each layer of business modules applies for a corresponding number of IO resources from the G_IO_Res pool according to their own static quotas and puts them into the L_IO_Res pool of the business module. For example, a certain number of IO resources are transferred from the free_list of G_IO_Res to the free_list of the L_IO_Res pool of the business module, and these resources are recorded in the allocated_list of G_IO_Res. Because each layer of business module has two L_IO_Res pools, which belong to different domains, when the L_IO_Res pool applies for IO resources from the G_IO_Res pool, it always selects the G_IO_Res pool in the same domain as the L_IO_Res pool.

S4响应于有本地IO资源池需要增加IO资源,本地IO资源池向全局IO资源池申请IO资源。随着IO压力的增大,各层业务模块可能需要动态扩充其L_IO_Res池来满足更高的性能,业务模块扩充其IO资源的过程也是从G_IO_Res池上申请相应数量的IO资源放入其L_IO_Res池中的过程,但是如果本domain中G_IO_Res池的free_list上已经没有足够的IO资源,则会申请失败,因此可以尝试向另一个domain(也就是另一个调度域)去借IO资源。S4 responds to the need to increase IO resources in the local IO resource pool, and the local IO resource pool applies for IO resources from the global IO resource pool. As IO pressure increases, each layer of business modules may need to dynamically expand their L_IO_Res pools to meet higher performance. The process of business modules expanding their IO resources is also the process of applying for a corresponding number of IO resources from the G_IO_Res pool and putting them into their L_IO_Res pools. However, if there are not enough IO resources on the free_list of the G_IO_Res pool in this domain, the application will fail, so you can try to borrow IO resources from another domain (that is, another scheduling domain).

S5响应于本地IO资源池向全局IO资源池申请IO资源成功,全局IO资源池将对应的IO资源分配到本地IO资源池中,并在全局IO资源池和本地IO资源池的资源链表中对分配情况进行记录。将申请的一定数量的IO资源从G_IO_Res的free_list转移到业务模块L_IO_Res池的free_list中,并将这部分资源记录到G_IO_Res的allocated_list中。S5 In response to the local IO resource pool successfully applying for IO resources from the global IO resource pool, the global IO resource pool allocates the corresponding IO resources to the local IO resource pool, and records the allocation in the resource linked lists of the global IO resource pool and the local IO resource pool. A certain number of IO resources applied for are transferred from the free_list of G_IO_Res to the free_list of the business module L_IO_Res pool, and these resources are recorded in the allocated_list of G_IO_Res.

通过使用本申请的技术方案,能够增加IO处理路径,提升了IO处理能力,减少资源的跨路访问,降低跨socket访问内存带来的开销,保证IO资源处在一个最优的配置。By using the technical solution of the present application, it is possible to increase the IO processing path, improve the IO processing capability, reduce cross-path access to resources, reduce the overhead caused by cross-socket access to memory, and ensure that IO resources are in an optimal configuration.

在本申请的一个可选实施例中,在每个调度域中分别建立全局IO资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中设置资源链表的步骤包括:In an optional embodiment of the present application, a global IO resource pool and several local IO resource pools are established in each scheduling domain. The steps of creating an IO resource pool and setting a resource list in the global IO resource pool and each local IO resource pool include:

在每个调度域中分别创建一个全局IO资源池,全局IO资源池位于调度域所属的架构中的CPU所直连的物理内存上;A global IO resource pool is created in each scheduling domain. The global IO resource pool is located on the physical memory directly connected to the CPU in the architecture to which the scheduling domain belongs.

在每个调度域中分别创建若干个本地IO资源池,并将每个本地IO资源池连接到对应的全局IO资源池;Create several local IO resource pools in each scheduling domain, and connect each local IO resource pool to the corresponding global IO resource pool;

在全局IO资源池和每个本地IO资源池中分别设置资源链表用于记录IO资源信息。在系统中建立一个全局的IO资源池,里面一开始都是空闲的内存资源,按照内存物理位置,划分成两个全局的IO资源池,分属于不同的scheduledomain。如图3所示,有两个G_IO_Res(global IO Resource,全局资源池)池,分属在不同的scheduledomain里。每个G_IO_Res池中的内存都位于其domain所属的那路CPU所直连的物理内存上,并且分配和使用都在各自domain的IO处理路径里。每层业务模块的IO资源是在自己的L_IO_Res(Local IO Resource,本地资源池)池中。每层业务模块有两个L_IO_Res池,并且分配和使用都在各自domain的IO处理路径里。G_IO_Res和L_IO_Res结构基本相同,主要有4各成员:free_list、allocated_list、remote_free_list和remote_allocated_list。free_list是该池空闲的资源链表,allocated_list是该池已分配的资源链表,remote_free_list是从远端借来的资源,空闲资源链表,remote_allocated_list是从远端借来的资源,且已分配的资源链表。Resource linked lists are set up in the global IO resource pool and each local IO resource pool to record IO resource information. A global IO resource pool is established in the system, which is initially filled with free memory resources. According to the physical location of the memory, it is divided into two global IO resource pools, which belong to different scheduledomains. As shown in Figure 3, there are two G_IO_Res (global IO Resource) pools, which belong to different scheduledomains. The memory in each G_IO_Res pool is located on the physical memory directly connected to the CPU to which its domain belongs, and the allocation and use are in the IO processing path of each domain. The IO resources of each layer of business modules are in their own L_IO_Res (Local IO Resource) pool. Each layer of business modules has two L_IO_Res pools, and the allocation and use are in the IO processing path of each domain. The structures of G_IO_Res and L_IO_Res are basically the same, with four main members: free_list, allocated_list, remote_free_list and remote_allocated_list. free_list is a linked list of free resources in the pool, allocated_list is a linked list of allocated resources in the pool, remote_free_list is a linked list of free resources borrowed from the remote end, and remote_allocated_list is a linked list of allocated resources borrowed from the remote end.

在本申请的一个可选实施例中,响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录的步骤包括:In an optional embodiment of the present application, in response to system initialization, the steps of allocating IO resources in the global IO resource pool to the corresponding local IO resource pool and recording the allocation status in the respective resource linked lists include:

响应于系统初始化,根据静态配额从全局IO资源池上申请相应数量的IO资源;In response to system initialization, a corresponding number of IO resources are applied from the global IO resource pool according to the static quota;

将申请到的IO资源分配到对应的本地IO资源池中;Allocate the requested IO resources to the corresponding local IO resource pool;

在全局IO资源池和本地IO资源池中的资源链表中分别记录分配的IO资源的信息。系统初始化阶段,各层业务模块按照各自的静态配额从G_IO_Res池上申请相应数量的IO资源放入业务模块的L_IO_Res池中。例如,将一定数量的IO资源从G_IO_Res的free_list转移到业务模块L_IO_Res池的free_list中,并将这部分资源记录到G_IO_Res的allocated_list中。因为每层业务模块有两个L_IO_Res池,分属于不同的domain,所以当L_IO_Res池从G_IO_Res池申请IO资源时,总是选择与该L_IO_Res池同domain的G_IO_Res池。The information of allocated IO resources is recorded in the resource linked lists in the global IO resource pool and the local IO resource pool respectively. During the system initialization phase, each layer of business modules applies for a corresponding number of IO resources from the G_IO_Res pool according to their own static quotas and puts them into the L_IO_Res pool of the business module. For example, a certain number of IO resources are transferred from the free_list of G_IO_Res to the free_list of the L_IO_Res pool of the business module, and these resources are recorded in the allocated_list of G_IO_Res. Because each layer of business module has two L_IO_Res pools, which belong to different domains, when the L_IO_Res pool applies for IO resources from the G_IO_Res pool, it always selects the G_IO_Res pool in the same domain as the L_IO_Res pool.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

响应于本地IO资源池向全局IO资源池申请IO资源失败,全局IO资源池向其他调度域的全局IO资源池申请IO资源并进行IO资源调度,并在各自的资源链表中对调度情况进行记录。In response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies to other scheduling domains. The global IO resource pool applies for IO resources and schedules IO resources, and records the scheduling status in each resource chain list.

在本申请的一个可选实施例中,响应于本地IO资源池向全局IO资源池申请IO资源失败,全局IO资源池向其他调度域的全局IO资源池申请IO资源并进行IO资源调度,并在各自的资源链表中对调度情况进行记录的步骤包括:In an optional embodiment of the present application, in response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from the global IO resource pool of other scheduling domains and performs IO resource scheduling, and the steps of recording the scheduling status in the respective resource linked lists include:

响应于本地IO资源池向全局IO资源池申请IO资源失败,全局IO资源池向其他调度域的全局IO资源池申请IO资源;In response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from the global IO resource pool of another scheduling domain;

其他调度域的全局IO资源池将对应的IO资源转移到发出申请的全局IO资源池中,并在两个全局IO资源池的资源链表中分别对调度情况进行记录;The global IO resource pools of other scheduling domains transfer the corresponding IO resources to the global IO resource pool that issued the request, and record the scheduling status in the resource linked lists of the two global IO resource pools respectively;

发出申请的全局IO资源池将获得到IO资源分配到发出申请的本地IO资源池中,并在全局IO资源池和本地IO资源池中的资源链表中对分配情况进行记录。尝试从另一个domain中G_IO_Res池中获取一定的IO资源来满足本domain的资源请求,例如,将一定数量的IO资源从另一个domain中G_IO_Res池的free_list转移到本domain的G_IO_Res池的remote_free_list中,并将这部分资源记录到另一个domain中G_IO_Res的allocated_list中,此时本domain中G_IO_Res池的free_list上已有足够的IO资源。然后将一定数量的IO资源从本domain中的G_IO_Res池的remote_free_list转移到请求模块在本domain中的L_IO_Res池的remote_free_list中,并将这部分资源记录到本domian中的G_IO_Res的remote_allocated_list中。The global IO resource pool that issued the request will obtain the IO resources and allocate them to the local IO resource pool that issued the request, and record the allocation status in the resource linked lists in the global IO resource pool and the local IO resource pool. Try to obtain certain IO resources from the G_IO_Res pool in another domain to meet the resource request of this domain. For example, transfer a certain number of IO resources from the free_list of the G_IO_Res pool in another domain to the remote_free_list of the G_IO_Res pool in this domain, and record this part of resources in the allocated_list of G_IO_Res in another domain. At this time, there are enough IO resources on the free_list of the G_IO_Res pool in this domain. Then transfer a certain number of IO resources from the remote_free_list of the G_IO_Res pool in this domain to the remote_free_list of the L_IO_Res pool in this domain of the requesting module, and record this part of resources in the remote_allocated_list of G_IO_Res in this domain.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

响应于调度域的IO压力持续第一预设时间低于预设值,将每个本地IO资源池中的IO资源释放到全局IO资源池中;In response to the IO pressure of the scheduling domain being lower than a preset value for a first preset time, releasing the IO resources in each local IO resource pool to the global IO resource pool;

在本地IO资源池和全局IO资源池中的资源链表中对释放情况进行记录。调度域的IO压力在持续一段时间内下降,下降到低于一个预设值时,业务模块会逐渐释放这些扩充的IO资源,即将自己在本domain中L_IO_Res池上扩充的IO资源释放,其实就归还到本domain中G_IO_Res的free_list或remote_free_list中。The release status is recorded in the resource linked list in the local IO resource pool and the global IO resource pool. When the IO pressure of the scheduling domain decreases for a period of time and drops below a preset value, the business module will gradually release these expanded IO resources, that is, release the IO resources expanded in the L_IO_Res pool in the domain, and actually return them to the free_list or remote_free_list of G_IO_Res in the domain.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

响应于本地IO资源池释放的IO资源是其他调度域的IO资源,全局IO资源池将对应的IO资源释放到其他调度域的全局IO资源池中;In response to the IO resources released by the local IO resource pool being IO resources of other scheduling domains, the global IO resource pool releases the corresponding IO resources to the global IO resource pools of other scheduling domains;

在全局IO资源池和其他调度域的全局IO资源池中资源链表中对释放情况进行记录。如果释放的是L_IO_Res的free_list上的IO资源,则转移到G_IO_Res的free_list上;如果释放的是L_IO_Res的remote_free_list上的IO资源,则转移到G_IO_Res的remote_free_list上,相应的,更新G_IO_Res的allocated_list或remote_allocated_list。The release status is recorded in the resource linked list of the global IO resource pool and the global IO resource pool of other scheduling domains. If the IO resource released is on the free_list of L_IO_Res, it is transferred to the free_list of G_IO_Res; If the IO resource released is on the remote_free_list of L_IO_Res, it is transferred to the remote_free_list of G_IO_Res, and the allocated_list or remote_allocated_list of G_IO_Res is updated accordingly.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

统计资源链表中全局IO资源池向其他调度域的全局IO资源池申请的IO资源中未分配的IO资源数量;Count the number of unallocated IO resources in the IO resources requested by the global IO resource pool from other scheduling domains in the resource linked list;

将统计出的数量与设定阈值进行比较;Compare the counted number with the set threshold;

响应于统计出的数量超过设定阈值,将未分配的IO资源在第二预设时间内释放到其他调度域的全局IO资源池中;In response to the counted number exceeding a set threshold, releasing the unallocated IO resources to a global IO resource pool of another scheduling domain within a second preset time;

在全局IO资源池和其他调度域的全局IO资源池的资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists of the global IO resource pool and the global IO resource pools of other scheduling domains.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

统计资源链表中全局IO资源池向其他调度域的全局IO资源池申请的IO资源中已分配的IO资源数量;Count the number of allocated IO resources in the resource linked list from the global IO resource pool's request to the global IO resource pools of other scheduling domains;

响应于统计出的数量持续第三预设时间低于预设值,将未分配的IO资源在第四预设时间内释放到其他调度域的全局IO资源池中;In response to the counted number being lower than a preset value for a third preset time, releasing the unallocated IO resources to a global IO resource pool of another scheduling domain within a fourth preset time;

在全局IO资源池和其他调度域的全局IO资源池的资源链表中对释放情况进行记录。如果G_IO_Res的remote_free_list上IO资源数量超过一定阈值,则会及时地还给另一个domain的G_IO_Res池。如果G_IO_Res的remote_allocated_list超过一定时间持续很低,则将G_IO_Res的remote_free_list上IO资源全部归还给另一个domain的G_IO_Res池。归还给另一个domain的G_IO_Res池的过程是,将本domain中G_IO_Res池的remote_free_list上的IO资转移回另一个domain中G_IO_Res池的free_list上,并更新另一domain中G_IO_Res池的allocated_list,将这部分资源记录从allocated_list中移除。如果无法从另一domain借到足够的资源,则本业务模块只能异步等待其它模块释放了,当满足条件以后,再去本domain中的G_IO_Res池申请。The release status is recorded in the resource linked list of the global IO resource pool and the global IO resource pool of other scheduling domains. If the number of IO resources on the remote_free_list of G_IO_Res exceeds a certain threshold, it will be returned to the G_IO_Res pool of another domain in a timely manner. If the remote_allocated_list of G_IO_Res remains very low for more than a certain period of time, all IO resources on the remote_free_list of G_IO_Res will be returned to the G_IO_Res pool of another domain. The process of returning to the G_IO_Res pool of another domain is to transfer the IO resources on the remote_free_list of the G_IO_Res pool in this domain back to the free_list of the G_IO_Res pool in another domain, and update the allocated_list of the G_IO_Res pool in another domain, and remove these resource records from the allocated_list. If sufficient resources cannot be borrowed from another domain, the business module can only wait asynchronously for other modules to release them. When the conditions are met, it will apply to the G_IO_Res pool in the domain.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

响应于有本地IO资源池的IO压力持续第五预设时间低于压力阈值,减小本地IO资源池的静态配额;In response to the IO pressure of the local IO resource pool being lower than the pressure threshold for a fifth preset time, reducing the static quota of the local IO resource pool;

本地IO资源池将减小的静态配额对应的IO资源释放到全局IO资源池中并在本地IO资源池和全局IO资源池的资源链表中对释放情况进行记录。如果两边domain上IO路径压力在某些场景下差别较大,各层业务模块可以动态调整本层业务模块在两个domain中的L_IO_Res池静态配额。比如,将IO压力小的domain中的L_IO_Res池静态配额调小,它会释放部分IO资源到该Domain中的G_IO_Res池,这样当IO压力大的那边需要借更多内存时,IO压力小的这边有足够的内存可以快速借出。The local IO resource pool releases the IO resources corresponding to the reduced static quota to the global IO resource pool and records the release in the resource list of the local IO resource pool and the global IO resource pool. If the IO path pressure on the two domains is very different in some scenarios, each layer of business modules can dynamically adjust the business modules of this layer in the two domains. L_IO_Res pool static quota. For example, if you reduce the static quota of the L_IO_Res pool in the domain with less IO pressure, it will release some IO resources to the G_IO_Res pool in the domain, so that when the side with more IO pressure needs to borrow more memory, the side with less IO pressure has enough memory to borrow quickly.

在本申请的一个可选实施例中,每个IO资源池中的资源链表包括资源池空闲的IO资源链表、资源池已分配IO资源的资源链表、从远端借来的IO资源中处于空闲状态的IO资源链表和从远端借来的IO资源中处于已分配状态的IO资源链表。In an optional embodiment of the present application, the resource linked list in each IO resource pool includes a linked list of idle IO resources in the resource pool, a linked list of allocated IO resources in the resource pool, a linked list of idle IO resources borrowed from a remote end, and a linked list of allocated IO resources borrowed from a remote end.

在本申请的一个可选实施例中,还包括:In an optional embodiment of the present application, it also includes:

统计每个调度域当前的IO压力;Statistics on the current IO pressure of each scheduling domain;

响应于接收到新的IO任务,将IO任务下发到当前IO压力最小的调度域中进行处理。In response to receiving a new IO task, the IO task is sent to the scheduling domain with the lowest current IO pressure for processing.

本申请技术方案首先按照双路架构将调度域和资源池实现划分,每一路对应一个调度域和其本地的IO资源,因此,每一路都有独立的任务调度和资源管理,即有相对独立的IO路径,这样既增加了IO处理路径,提升了IO处理能力,又减少了资源的跨路访问,整体上降低了跨socket访问内存带来的开销。同时为了适应双路压力不均衡的场景,本申请还提出了在双路压力不均衡时,IO资源的自适应调整策略和方法,尽量满足两边压力的不同需求,保证IO资源处在一个最优的配置。The technical solution of this application first divides the scheduling domain and resource pool according to the dual-channel architecture. Each channel corresponds to a scheduling domain and its local IO resources. Therefore, each channel has independent task scheduling and resource management, that is, a relatively independent IO path. This not only increases the IO processing path and improves the IO processing capability, but also reduces the cross-channel access to resources, and overall reduces the overhead caused by cross-socket access to memory. At the same time, in order to adapt to the scenario of unbalanced dual-channel pressure, this application also proposes an adaptive adjustment strategy and method for IO resources when the dual-channel pressure is unbalanced, so as to try to meet the different pressure requirements on both sides and ensure that IO resources are in an optimal configuration.

需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取非易失性可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中非易失性可读存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。It should be noted that a person skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing the relevant hardware through a computer program, and the above-mentioned program can be stored in a computer-readable non-volatile readable storage medium. When the program is executed, it can include the processes of the embodiments of the above-mentioned methods. The non-volatile readable storage medium can be a magnetic disk, an optical disk, a read-only memory (ROM) or a random access memory (RAM). The above-mentioned computer program embodiments can achieve the same or similar effects as the corresponding embodiments of any of the above-mentioned methods.

此外,根据本申请实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机非易失性可读存储介质中。在该计算机程序被CPU执行时,执行本申请实施例公开的方法中限定的上述功能。In addition, the method disclosed in the embodiment of the present application can also be implemented as a computer program executed by a CPU, and the computer program can be stored in a computer non-volatile readable storage medium. When the computer program is executed by the CPU, the above functions defined in the method disclosed in the embodiment of the present application are performed.

基于上述目的,本申请的实施例的第二个方面,提出了一种存储系统资源管理的装置,如图4所示,装置200包括:Based on the above purpose, a second aspect of an embodiment of the present application provides a device for managing storage system resources. As shown in FIG4 , the device 200 includes:

创建模块,创建模块被配置为针对存储系统的每路的CPU和内存资源创建单独的调度域;A creation module, where the creation module is configured to create a separate scheduling domain for each CPU and memory resource of the storage system;

设置模块,设置模块被配置为在每个调度域中分别建立全局IO资源池和若干个本地IO资源池,并在全局IO资源池和每个本地IO资源池中分别设置资源链表;A setting module, the setting module is configured to establish a global IO resource pool and a plurality of local IO resource pools in each scheduling domain, and set a resource linked list in the global IO resource pool and each local IO resource pool;

分配模块,分配模块被配置为响应于系统初始化,将全局IO资源池中的IO资源分配到对应的本地IO资源池中,并在各自的资源链表中对分配情况进行记录;An allocation module, the allocation module is configured to allocate IO resources in the global IO resource pool to corresponding local IO resource pools in response to system initialization, and record the allocation status in respective resource linked lists;

申请模块,申请模块被配置为响应于有本地IO资源池需要增加IO资源,本地IO资源池向全局IO资源池申请IO资源;The application module is configured to, in response to a local IO resource pool needing to increase IO resources, apply for IO resources from the global IO resource pool by the local IO resource pool;

调度模块,调度模块被配置为响应于本地IO资源池向全局IO资源池申请IO资源成功,全局IO资源池将对应的IO资源分配到本地IO资源池中,并在全局IO资源池和本地IO资源池的资源链表中对分配情况进行记录。The scheduling module is configured to respond to the local IO resource pool successfully applying for IO resources from the global IO resource pool, and the global IO resource pool allocates the corresponding IO resources to the local IO resource pool, and records the allocation in the resource linked lists of the global IO resource pool and the local IO resource pool.

基于上述目的,本申请实施例的第三个方面,提出了一种计算机设备。图5示出的是本申请提供的计算机设备的实施例的示意图。如图5所示,本申请实施例包括如下装置:至少一个处理器21;以及存储器22,存储器22存储有可在处理器上运行的计算机指令23,指令由处理器执行时实现以上方法。Based on the above purpose, the third aspect of the embodiment of the present application provides a computer device. FIG5 shows a schematic diagram of an embodiment of the computer device provided by the present application. As shown in FIG5, the embodiment of the present application includes the following devices: at least one processor 21; and a memory 22, the memory 22 stores computer instructions 23 that can be run on the processor, and the instructions are executed by the processor to implement the above method.

基于上述目的,本申请实施例的第四个方面,提出了一种计算机非易失性可读存储介质。图6示出的是本申请提供的计算机非易失性可读存储介质的实施例的示意图。如图6所示,计算机非易失性可读存储介质31存储有被处理器执行时执行如上方法的计算机程序32。Based on the above purpose, the fourth aspect of the embodiment of the present application provides a computer non-volatile readable storage medium. FIG6 shows a schematic diagram of an embodiment of the computer non-volatile readable storage medium provided by the present application. As shown in FIG6, the computer non-volatile readable storage medium 31 stores a computer program 32 that performs the above method when executed by a processor.

此外,根据本申请实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机非易失性可读存储介质中。在该计算机程序被处理器执行时,执行本申请实施例公开的方法中限定的上述功能。In addition, the method disclosed in the embodiment of the present application can also be implemented as a computer program executed by a processor, and the computer program can be stored in a computer non-volatile readable storage medium. When the computer program is executed by the processor, the above functions defined in the method disclosed in the embodiment of the present application are performed.

此外,上述方法步骤以及系统单元也可以利用控制器以及被设置为存储使得控制器实现上述步骤或单元功能的计算机程序的计算机非易失性可读存储介质实现。In addition, the above method steps and system units may also be implemented using a controller and a computer non-volatile readable storage medium configured to store a computer program that enables the controller to implement the above steps or unit functions.

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本申请实施例公开的范围。Those skilled in the art will also appreciate that various exemplary logic blocks, modules, circuits and algorithm steps described in conjunction with the disclosure herein can be implemented as electronic hardware, computer software or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, a general description has been given to the functions of various schematic components, blocks, modules, circuits and steps. Whether this function is implemented as software or implemented as hardware depends on application and the design constraints imposed on the entire system. Those skilled in the art can implement the function in various ways for each application, but this implementation decision should not be interpreted as causing a departure from the disclosed scope of the present application embodiment.

在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读非易失性可读存储介质上或通过计算机可读非易失性可读存储介质来传送。计算机可读非易失性可读存储介质包括计算机非易失性可读存储介质和通信非易失性可读存储介质,该通信非易失性可读存储介质包括有助于将计算机程序从一个位置传送到另一个位置的任何非易失性可读存储介质。非易失性可读存储介质可以是能够被通用或专用计算机访问的任何可用非易失性可读存储介质。作为例子而非限制性的,该计算机可读非易失性可读存储介质可以包括RAM、ROM、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以被设置为携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它非易失性可读存储介质。此外,任何连接都可以适当地称为计算机可读非易失性可读存储介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(Digital Subscriber Line,DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在非易失性可读存储介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(Compact Disc,CD)、激光盘、光盘、数字多功能盘(Digital Versatile Disc,DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读非易失性可读存储介质的范围内。In one or more exemplary designs, the functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on or transmitted via a computer-readable non-volatile storage medium. The computer-readable non-volatile storage medium includes a computer-readable non-volatile storage medium and a communication non-volatile storage medium. Storage media include any non-volatile readable storage media that helps transfer a computer program from one location to another. Non-volatile readable storage media can be any available non-volatile readable storage media that can be accessed by a general or special computer. As an example and not limitation, the computer-readable non-volatile readable storage media can include RAM, ROM, EEPROM (Electrically Erasable Programmable Read-Only Memory), CD-ROM (Compact Disc Read-Only Memory) or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, or can be configured to carry or store the required program code in the form of instructions or data structures and can be accessed by a general or special computer or a general or special processor. Any other non-volatile readable storage medium. In addition, any connection can be appropriately referred to as a computer-readable non-volatile readable storage medium. For example, if a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwaves are used to send software from a website, server, or other remote source, then the above coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwaves are all included in the definition of non-volatile readable storage media. As used herein, disks and optical disks include compact disks (CDs), laser disks, optical disks, digital versatile disks (DVDs), floppy disks, and blue-ray disks, where disks usually reproduce data magnetically, while optical disks reproduce data optically using lasers. Combinations of the above contents should also be included in the scope of computer-readable non-volatile readable storage media.

以上是本申请公开的示例性实施例,但是应当注意,在不背离权利要求限定的本申请实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本申请实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。The above are exemplary embodiments disclosed in the present application, but it should be noted that various changes and modifications may be made without departing from the scope disclosed in the embodiments of the present application as defined in the claims. The functions, steps and/or actions of the method claims according to the disclosed embodiments described herein do not need to be performed in any particular order. In addition, although the elements disclosed in the embodiments of the present application may be described or required in individual form, they may also be understood as multiple unless explicitly limited to the singular.

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。It should be understood that, as used herein, the singular forms "a", "an" are intended to include the plural forms as well, unless the context clearly supports an exception. It should also be understood that, as used herein, "and/or" refers to any and all possible combinations including one or more of the associated listed items.

上述本申请实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the embodiments disclosed in the above-mentioned embodiments of the present application are only for description and do not represent the advantages or disadvantages of the embodiments.

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机非易失性可读存储介质中,上述提到的非易失性可读存储介质可以是只读存储器,磁盘或光盘等。A person of ordinary skill in the art will appreciate that all or part of the steps for implementing the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer non-volatile readable storage medium, and the above-mentioned non-volatile readable storage medium may be a read-only memory, a disk or an optical disk, etc.

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请实施例公开的范围(包括权利要求)被限于这些例子;在本申请实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。Those skilled in the art should understand that the discussion of any of the above embodiments is only exemplary and is not intended to imply that the scope of the embodiments disclosed in this application (including the claims) is limited to these examples; based on the ideas of the embodiments of this application, the technical features of the above embodiments or different embodiments can also be combined, and there are many other variations of different aspects of the embodiments of this application as above, which are not provided in detail for the sake of simplicity. Any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles should be included in the protection scope of the embodiments of this application.

Claims (20)

Translated fromChinese
一种存储系统资源管理的方法,其特征在于,包括以下步骤:A method for managing storage system resources, characterized by comprising the following steps:针对存储系统的每路的CPU和内存资源创建单独的调度域;Create a separate scheduling domain for each CPU and memory resource of the storage system;在每个所述调度域中分别建立全局IO资源池和若干个本地IO资源池,并在所述全局IO资源池和每个所述本地IO资源池中分别设置资源链表;Establishing a global IO resource pool and a plurality of local IO resource pools in each of the scheduling domains, and setting a resource linked list in the global IO resource pool and each of the local IO resource pools;响应于系统初始化,将所述全局IO资源池中的IO资源分配到对应的所述本地IO资源池中,并在各自的所述资源链表中对分配情况进行记录;In response to system initialization, the IO resources in the global IO resource pool are allocated to the corresponding local IO resource pools, and the allocation status is recorded in the respective resource linked lists;响应于有本地IO资源池需要增加IO资源,所述本地IO资源池向所述全局IO资源池申请IO资源;In response to a local IO resource pool needing to increase IO resources, the local IO resource pool applies for IO resources from the global IO resource pool;响应于所述本地IO资源池向所述全局IO资源池申请IO资源成功,所述全局IO资源池将对应的IO资源分配到所述本地IO资源池中,并在所述全局IO资源池和所述本地IO资源池的资源链表中对分配情况进行记录。In response to the local IO resource pool successfully applying for IO resources from the global IO resource pool, the global IO resource pool allocates the corresponding IO resources to the local IO resource pool and records the allocation in the resource linked lists of the global IO resource pool and the local IO resource pool.根据权利要求1所述的方法,其特征在于,所述在每个所述调度域中分别建立全局IO资源池和若干个本地IO资源池,并在所述全局IO资源池和每个所述本地IO资源池中设置资源链表的步骤包括:The method according to claim 1 is characterized in that the steps of establishing a global IO resource pool and a plurality of local IO resource pools in each of the scheduling domains, and setting a resource linked list in the global IO resource pool and each of the local IO resource pools include:在每个调度域中分别创建一个全局IO资源池,所述全局IO资源池位于调度域所属的架构中的CPU所直连的物理内存上;A global IO resource pool is created in each scheduling domain, and the global IO resource pool is located on a physical memory directly connected to a CPU in an architecture to which the scheduling domain belongs;在每个调度域中分别创建若干个本地IO资源池,并将每个所述本地IO资源池连接到对应的所述全局IO资源池;Creating a plurality of local IO resource pools in each scheduling domain, and connecting each of the local IO resource pools to the corresponding global IO resource pool;在所述全局IO资源池和每个所述本地IO资源池中分别设置资源链表用于记录IO资源信息。A resource linked list is set in the global IO resource pool and each of the local IO resource pools respectively for recording IO resource information.根据权利要求2所述的方法,其特征在于,所述响应于系统初始化,将所述全局IO资源池中的IO资源分配到对应的所述本地IO资源池中,并在各自的所述资源链表中对分配情况进行记录的步骤包括:The method according to claim 2 is characterized in that, in response to system initialization, the step of allocating IO resources in the global IO resource pool to the corresponding local IO resource pool and recording the allocation status in the respective resource linked lists comprises:响应于系统初始化,根据静态配额从所述全局IO资源池上申请相应数量的IO资源;In response to system initialization, applying for a corresponding number of IO resources from the global IO resource pool according to the static quota;将申请到的IO资源分配到对应的所述本地IO资源池中;Allocate the applied IO resources to the corresponding local IO resource pool;在所述全局IO资源池和所述本地IO资源池中的资源链表中分别记录分配的IO资源的信息。The information of the allocated IO resources is recorded in the resource linked lists in the global IO resource pool and the local IO resource pool respectively.根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:响应于所述本地IO资源池向所述全局IO资源池申请IO资源失败,所述全局IO资源池向其他调度域的全局IO资源池申请IO资源并进行IO资源调度,并在各自的所述资源链表中对调度情况进行记录。In response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from global IO resource pools of other scheduling domains and performs IO resource scheduling, and records the scheduling status in the respective resource linked lists.根据权利要求4所述的方法,其特征在于,所述响应于所述本地IO资源池向所述全局IO资源池申请IO资源失败,所述全局IO资源池向其他调度域的全局IO资源池申请IO资源并进行IO资源调度,并在各自的所述资源链表中对调度情况进行记录的步骤包括:The method according to claim 4 is characterized in that, in response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from the global IO resource pool of other scheduling domains and performs IO resource scheduling, and the steps of recording the scheduling status in the respective resource linked lists include:响应于所述本地IO资源池向所述全局IO资源池申请IO资源失败,所述全局IO资源池向其他调度域的全局IO资源池申请IO资源;In response to the local IO resource pool failing to apply for IO resources from the global IO resource pool, the global IO resource pool applies for IO resources from the global IO resource pool of another scheduling domain;所述其他调度域的全局IO资源池将对应的IO资源转移到发出申请的所述全局IO资源池中,并在两个所述全局IO资源池的资源链表中分别对调度情况进行记录;The global IO resource pools of the other scheduling domains transfer the corresponding IO resources to the global IO resource pool that issued the application, and respectively record the scheduling status in the resource linked lists of the two global IO resource pools;发出申请的所述全局IO资源池将获得到IO资源分配到发出申请的所述本地IO资源池中,并在所述全局IO资源池和所述本地IO资源池中的资源链表中对分配情况进行记录。The global IO resource pool that issues the application allocates the obtained IO resources to the local IO resource pool that issues the application, and records the allocation status in the resource linked lists in the global IO resource pool and the local IO resource pool.根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:响应于调度域的IO压力持续第一预设时间低于预设值,将每个所述本地IO资源池中的IO资源释放到所述全局IO资源池中;In response to the IO pressure of the scheduling domain being lower than a preset value for a first preset time, releasing the IO resources in each of the local IO resource pools to the global IO resource pool;在所述本地IO资源池和所述全局IO资源池中的资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists in the local IO resource pool and the global IO resource pool.根据权利要求6所述的方法,其特征在于,还包括:The method according to claim 6, further comprising:响应于所述本地IO资源池释放的IO资源是其他调度域的IO资源,所述全局IO资源池将对应的IO资源释放到所述其他调度域的全局IO资源池中;In response to the IO resources released by the local IO resource pool being IO resources of other scheduling domains, the global IO resource pool releases the corresponding IO resources to the global IO resource pool of the other scheduling domains;在所述全局IO资源池和所述其他调度域的全局IO资源池中资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists in the global IO resource pool and the global IO resource pools of other scheduling domains.根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:统计资源链表中所述全局IO资源池向其他调度域的全局IO资源池申请的IO资源中未分配的IO资源数量;Count the number of unallocated IO resources among the IO resources applied by the global IO resource pool in the resource linked list to the global IO resource pools of other scheduling domains;将统计出的数量与设定阈值进行比较;Compare the counted number with the set threshold;响应于所述统计出的数量超过所述设定阈值,将所述未分配的IO资源在第二预设时间内释放到所述其他调度域的全局IO资源池中;In response to the counted number exceeding the set threshold, releasing the unallocated IO resources to the global IO resource pool of the other scheduling domain within a second preset time;在所述全局IO资源池和所述其他调度域的全局IO资源池的资源链表中对释放情况进行记录。The release status is recorded in the resource linked lists of the global IO resource pool and the global IO resource pools of other scheduling domains.根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:统计资源链表中所述全局IO资源池向其他调度域的全局IO资源池申请的IO资源中己分配的IO资源数量;Counting the number of allocated IO resources from the IO resources applied by the global IO resource pool in the resource linked list to the global IO resource pools of other scheduling domains;响应于统计出的所述数量持续第三预设时间低于预设值,将未分配的IO资源在第四预设时间内释放到所述其他调度域的全局IO资源池中;In response to the counted number being lower than a preset value for a third preset time, releasing the unallocated IO resources to the global IO resource pool of the other scheduling domain within a fourth preset time;在所述全局IO资源池和所述其他调度域的全局IO资源池的资源链表中对释放情况进行记录。The release situation is recorded in the resource linked lists of the global IO resource pool and the global IO resource pools of other scheduling domains.根据权利要求3所述的方法,其特征在于,还包括:The method according to claim 3, further comprising:响应于有本地IO资源池的IO压力持续第五预设时间低于压力阈值,减小所述本地IO资源池的静态配额;In response to the IO pressure of the local IO resource pool being lower than the pressure threshold for a fifth preset time, reducing the static quota of the local IO resource pool;所述本地IO资源池将减小的静态配额对应的IO资源释放到所述全局IO资源池中,并在所述本地IO资源池和所述全局IO资源池的资源链表中对释放情况进行记录。The local IO resource pool releases the IO resources corresponding to the reduced static quota to the global IO resource pool, and records the release status in the resource linked lists of the local IO resource pool and the global IO resource pool.根据权利要求1所述的方法,其特征在于,每个所述IO资源池中的所述资源链表包括资源池空闲的IO资源链表、资源池己分配IO资源链表、从远端借来的IO资源中处于空闲状态的IO资源链表和从远端借来的IO资源中处于己分配状态的IO资源链表。The method according to claim 1 is characterized in that the resource linked list in each of the IO resource pools includes a linked list of idle IO resources in the resource pool, a linked list of allocated IO resources in the resource pool, a linked list of idle IO resources in the IO resources borrowed from a remote end, and a linked list of allocated IO resources in the IO resources borrowed from a remote end.根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:统计每个调度域当前的IO压力;Statistics on the current IO pressure of each scheduling domain;响应于接收到新的IO任务,将所述IO任务下发到当前IO压力最小的调度域中进行处理。In response to receiving a new IO task, the IO task is sent to the scheduling domain with the lowest current IO pressure for processing.根据权利要求1所述的方法,其特征在于,所述针对存储系统的每路的CPU和内存资源创建单独的调度域,包括:The method according to claim 1, wherein creating a separate scheduling domain for each CPU and memory resource of the storage system comprises:将调度域按照双路结构划分,每路一个调度域,其中,每个调度域相对独立、且每个调度域中包括一条完整的IO路径;The scheduling domain is divided into two-way structures, one scheduling domain for each way, wherein each scheduling domain is relatively independent and each scheduling domain includes a complete IO path;将每个调度域中的任务处理线程绑定至每个调度域所对应路的CPU核心上。Bind the task processing threads in each scheduling domain to the CPU cores corresponding to each scheduling domain.根据权利要求3所述的方法,其特征在于,所述响应于系统初始化,根据静态配额从所述全局IO资源池上申请相应数量的IO资源,包括:The method according to claim 3, characterized in that, in response to system initialization, applying for a corresponding number of IO resources from the global IO resource pool according to a static quota comprises:系统初始化阶段,将相应数量的IO资源从所述全局IO资源池的空闲的资源链表转移到业务模块的所述本地IO资源池的空闲的资源链表中,并将所述相应数量的IO资源记录到所述全局IO资源池的己分配的资源链表中。During the system initialization phase, a corresponding number of IO resources are transferred from the idle resource linked list of the global IO resource pool to the idle resource linked list of the local IO resource pool of the business module, and the corresponding number of IO resources are recorded in the allocated resource linked list of the global IO resource pool.根据权利要求3所述的方法,其特征在于,所述响应于系统初始化,根据静态配额从所述全局IO资源池上申请相应数量的IO资源,包括:The method according to claim 3, characterized in that, in response to system initialization, applying for a corresponding number of IO resources from the global IO resource pool according to a static quota comprises:从与所述本地IO资源池对应的调度域所对应的全局IO资源池上申请相应数量的IO资源。Apply for a corresponding amount of IO resources from the global IO resource pool corresponding to the scheduling domain corresponding to the local IO resource pool.根据权利要求5所述的方法,其特征在于,在所述全局IO资源池向其他调度域的全局IO资源池申请IO资源之后,所述方法还包括:The method according to claim 5, characterized in that after the global IO resource pool applies for IO resources from the global IO resource pools of other scheduling domains, the method further comprises:在所述全局IO资源池向其他调度域的全局IO资源池申请IO资源失败的情况下,业务模块异步等待其他模块释放,在满足条件后,再从所述全局IO资源池申请IO资源。In the case that the global IO resource pool fails to apply for IO resources from the global IO resource pools of other scheduling domains, the service module asynchronously waits for the release of other modules, and applies for IO resources from the global IO resource pool after the conditions are met.根据权利要求5所述的方法,其特征在于,所述在两个全局IO资源池的资源链表中分别对调度情况进行记录,包括:The method according to claim 5, characterized in that the recording of the scheduling status in the resource linked lists of the two global IO resource pools respectively comprises:将一定数量的IO资源从其他调度域中全局IO资源池的空闲的资源链表转移到本调度域的全局IO资源池的从远端借来的资源、且空闲的资源链表中,并将所述一定数量的IO资源记录到其他调度域中全局IO资源池的己分配的资源链表中。A certain number of IO resources are transferred from the idle resource linked list of the global IO resource pool in other scheduling domains to the idle resource linked list of the global IO resource pool in this scheduling domain, and the certain number of IO resources are recorded in the allocated resource linked list of the global IO resource pool in other scheduling domains.一种存储系统资源管理的装置,其特征在于,所述装置包括:A device for storage system resource management, characterized in that the device comprises:创建模块,所述创建模块被配置为针对存储系统的每路的CPU和内存资源创建单独的调度域;A creation module, wherein the creation module is configured to create a separate scheduling domain for each CPU and memory resource of the storage system;设置模块,所述设置模块被配置为在每个所述调度域中分别建立全局IO资源池和若干个本地IO资源池,并在所述全局IO资源池和每个所述本地IO资源池中分别设置资源链表;A setting module, wherein the setting module is configured to respectively establish a global IO resource pool and a plurality of local IO resource pools in each of the scheduling domains, and respectively set a resource linked list in the global IO resource pool and each of the local IO resource pools;分配模块,所述分配模块被配置为响应于系统初始化,将所述全局IO资源池中的IO资源分配到对应的所述本地IO资源池中,并在各自的所述资源链表中对分配情况进行记录;an allocation module, the allocation module being configured to allocate IO resources in the global IO resource pool to the corresponding local IO resource pool in response to system initialization, and record the allocation status in the respective resource linked lists;申请模块,所述申请模块被配置为响应于有本地IO资源池需要增加IO资源,所述本地IO资源池向所述全局IO资源池申请IO资源;An application module, wherein the application module is configured to, in response to a local IO resource pool needing to increase IO resources, the local IO resource pool applying for IO resources from the global IO resource pool;调度模块,所述调度模块被配置为响应于所述本地IO资源池向所述全局IO资源池申请IO资源成功,所述全局IO资源池将对应的IO资源分配到所述本地IO资源池中,并在所述全局IO资源池和所述本地IO资源池的资源链表中对分配情况进行记录。A scheduling module, wherein the scheduling module is configured to respond to the local IO resource pool successfully applying for IO resources from the global IO resource pool, the global IO resource pool allocates the corresponding IO resources to the local IO resource pool, and records the allocation status in the resource linked lists of the global IO resource pool and the local IO resource pool.一种计算机设备,其特征在于,包括:A computer device, comprising:至少一个处理器;以及at least one processor; and存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-17任意一项所述方法的步骤。A memory storing computer instructions executable on the processor, wherein the instructions, when executed by the processor, implement the steps of the method according to any one of claims 1 to 17.一种计算机非易失性可读存储介质,所述计算机非易失性可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-17任意一项所述方法的步骤。A computer non-volatile readable storage medium storing a computer program, characterized in that the computer program implements the steps of the method according to any one of claims 1 to 17 when executed by a processor.
PCT/CN2024/1219932023-12-282024-09-27Storage system resource management method and apparatus, device and nonvolatile readable storage mediumPendingWO2025139139A1 (en)

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
CN202311841280.42023-12-28
CN202311841280.4ACN117492967B (en)2023-12-282023-12-28Method, device, equipment and medium for managing storage system resources

Publications (1)

Publication NumberPublication Date
WO2025139139A1true WO2025139139A1 (en)2025-07-03

Family

ID=89680374

Family Applications (1)

Application NumberTitlePriority DateFiling Date
PCT/CN2024/121993PendingWO2025139139A1 (en)2023-12-282024-09-27Storage system resource management method and apparatus, device and nonvolatile readable storage medium

Country Status (2)

CountryLink
CN (1)CN117492967B (en)
WO (1)WO2025139139A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN117492967B (en)*2023-12-282024-03-19苏州元脑智能科技有限公司Method, device, equipment and medium for managing storage system resources
CN118069071B (en)*2024-04-192024-08-13苏州元脑智能科技有限公司Resource access control method, device, computer equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN110162395A (en)*2018-02-122019-08-23杭州宏杉科技股份有限公司A kind of method and device of Memory Allocation
CN115129473A (en)*2022-06-302022-09-30苏州浪潮智能科技有限公司Resource management method, device and medium based on NUMA architecture storage system
US20220382591A1 (en)*2021-05-272022-12-01Vmware, Inc.Managing resource distribution in global and local pools based on a flush threshold
CN115794368A (en)*2021-09-112023-03-14华为技术有限公司Service system, memory management method and device
CN117492967A (en)*2023-12-282024-02-02苏州元脑智能科技有限公司Method, device, equipment and medium for managing storage system resources

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN101706757B (en)*2009-09-212011-11-16中国科学院计算技术研究所I/O system and working method facing multi-core platform and distributed virtualization environment
CN102497432B (en)*2011-12-132014-06-25华为技术有限公司Multi-path accessing method for input/output (I/O) equipment, I/O multi-path manager and system
CN106681835B (en)*2016-12-282019-04-05华为技术有限公司The method and resource manager of resource allocation
CN111708631B (en)*2020-05-062023-06-30深圳震有科技股份有限公司Data processing method based on multipath server, intelligent terminal and storage medium
CN116340003A (en)*2023-04-112023-06-27国网信息通信产业集团有限公司北京分公司Self-adaptive edge computing resource management method and system based on deep reinforcement learning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN110162395A (en)*2018-02-122019-08-23杭州宏杉科技股份有限公司A kind of method and device of Memory Allocation
US20220382591A1 (en)*2021-05-272022-12-01Vmware, Inc.Managing resource distribution in global and local pools based on a flush threshold
CN115794368A (en)*2021-09-112023-03-14华为技术有限公司Service system, memory management method and device
CN115129473A (en)*2022-06-302022-09-30苏州浪潮智能科技有限公司Resource management method, device and medium based on NUMA architecture storage system
CN117492967A (en)*2023-12-282024-02-02苏州元脑智能科技有限公司Method, device, equipment and medium for managing storage system resources

Also Published As

Publication numberPublication date
CN117492967A (en)2024-02-02
CN117492967B (en)2024-03-19

Similar Documents

PublicationPublication DateTitle
WO2025139139A1 (en)Storage system resource management method and apparatus, device and nonvolatile readable storage medium
DE112006001590B4 (en) Device, method and system for data processing at transport layer level
CN103914399B (en)Disk buffering method and device in a kind of concurrent computational system
US8650270B2 (en)Distributed computing with multiple coordinated component collections
WO2014205357A1 (en)Resource silos at network-accessible services
CN111858034B (en)Resource management method, system, device and medium
WO2023284722A1 (en)Tenant resource management method and tenant management system
US10084860B2 (en)Distributed file system using torus network and method for configuring and operating distributed file system using torus network
US11016829B2 (en)Two-layered deterministic interprocess communication scheduler for input output determinism in solid state drives
WO2025001603A1 (en)High-concurrency read-write optimization system for distributed file system, and medium and device
US11169720B1 (en)System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly
CN119376894A (en) A distributed task resource scheduling system and method
WO2024055715A1 (en)Method and apparatus for determining big data cluster deployment scheme, cluster, and storage medium
CN115543222A (en)Storage optimization method, system, equipment and readable storage medium
CN109831391A (en)Flow control method, storage device and system in distributed storage system
US10289329B2 (en)Burst buffer dynamic logical volume sizing in high performance computing environment
CN113487307A (en)External text data processing method and device for distributed system
WO2024239710A1 (en)Deployment method and deployment apparatus for virtual network function
CN111338782A (en) A Contention-Aware Node Allocation Method for Shared Burst Data Cache
CN110413197A (en)Manage method, equipment and the computer program product of storage system
CN117608835A (en)Distributed kernel architecture for server-free data center
CN117632394A (en) Task scheduling method and device
CN110399206B (en)IDC virtualization scheduling energy-saving system based on cloud computing environment
JP2019525311A (en) Change of network accessible data volume
CN111339045A (en)AI computing array distributed caching method, system, device and medium

Legal Events

DateCodeTitleDescription
121Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number:24910083

Country of ref document:EP

Kind code of ref document:A1


[8]ページ先頭

©2009-2025 Movatter.jp