Storage space management method and management device

By migrating the data of the second storage device with a lower utilization rate to the first storage device with a higher utilization rate in the computing system and switching the second storage device to an idle state, the problem of high power consumption and storage management costs of the computing system under the CXL protocol is solved, and the power consumption and cost optimization is achieved.

WO2025148490A1PCT designated stage expired Publication Date: 2025-07-17XFUSION DIGITAL TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/128830
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-12
Filing Date
2024-10-31
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

While using the CXL protocol to provide a large enough shared memory pool for the computing system, the power consumption and storage management costs of the computing system are increased.

Method used

The first storage device and the second storage device are determined by the management device, wherein the target parameters of the first storage device are greater than the second storage device and the remaining capacity is greater than or equal to the used space capacity of the second storage device, the data in the second storage device is migrated to the first storage device, and the second storage device is switched from the active state to the idle state to reduce the number of active storage devices.

Benefits of technology

Reduce the power consumption of the computing system, save storage management costs, and optimize the utilization rate of storage devices, and reduce the number of active storage devices that management devices need to manage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024128830_17072025_PF_FP_ABST
    Figure CN2024128830_17072025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the embodiments of the present application are a storage space management method and management device. The method is applied to the management device, and comprises: the management device first determining a first storage device and a second storage device in a computing system; and then migrating data in the second storage device to the first storage device, and then controlling the second storage device to switch from an active state to an idle state. Thus, more storage devices in a computing system are enabled to enter an idle state, thereby reducing the power consumption of the computing system; moreover, a management device is required to manage less storage devices in an active state, thereby reducing storage management costs.
Need to check novelty before this filing date? Find Prior Art

Description

Storage space management method and management device

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on January 12, 2024, with application number 202410048188.0 and application name “A Storage Space Management Method and Management Device”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the technical field of computing devices, and in particular to a storage space management method and management device. Background Art

[0003] The Computer Express Link (CXL) protocol is an open interconnection protocol that enables high-speed and efficient interconnection between central processing units (CPUs) and graphics processing units (GPUs), field programmable gate arrays (FPGAs), or other accelerators, meeting the requirements of high-performance heterogeneous computing. CXL enables the CPU of a computing device to access attached memory using memory semantics without occupying the device's memory slots.

[0004] After the launch of the CXL protocol, the industry has applied the CXL protocol to memory expansion scenarios to help servers and other computing devices expand their memory capacity.

[0005] However, while adopting the CXL protocol to provide a sufficiently large shared memory pool for the computing system, it also increases the power consumption and storage management cost of the computing system.

[0006] Summary of the Invention

[0007] Embodiments of the present application provide a storage space management method and management device, which can reduce the power consumption and storage management costs of a computing system.

[0008] In a first aspect, an embodiment of the present application provides a storage space management method, which is applied to a management device, the management device being configured to manage a CXL storage pool and a computing device, the computing device and the CXL storage pool both comprising storage devices, the storage devices comprising a first storage device and a second storage device; the method comprising:

[0009] Determine the first storage device and the second storage device, the target parameter of the first storage device is greater than the target parameter of the second storage device, and the remaining capacity of the first storage device is greater than or equal to the used space capacity of the second storage device, the target parameter includes utilization, specification capacity, ratio of specification capacity to operating power consumption, or priority; migrate data in the second storage device to the first storage device, and switch the second storage device from an active state to an idle state to reduce the power consumption of the second storage device.

[0010] The remaining capacity of the first storage device is not 0, and the utilization rate of the second storage device is not 0.

[0011] It should be noted that when there is only one first storage device, the remaining capacity of the first storage device is the remaining capacity of the one first storage device; when there are multiple first storage devices, the remaining capacity of the first storage device is the sum of the remaining capacities of the multiple first storage devices.

[0012] In an embodiment of the present application, by migrating data in the second storage device to the first storage device and then controlling the second storage device to switch from an active state to an idle state, more storage devices can be placed in an idle state, thereby reducing the power consumption of the computing system; at the same time, the management device needs to manage fewer active storage devices, thereby saving storage management costs.

[0013] In the embodiment of the present application, more beneficial effects can be achieved by using a storage device with a smaller target parameter as the second storage device and a storage device with a larger target parameter as the first storage device.

[0014] Exemplarily, when the target parameter is utilization, the management device migrates data from the second storage device with lower utilization to the first storage device with higher utilization. The migration amount is smaller, which can save computing resources.

[0015] For example, when the target parameter is specification capacity, and the specifications and capacities of various storage devices are not exactly the same, data can be concentrated in fewer storage devices to further save storage management costs.

[0016] Exemplarily, when the target parameter is the ratio of specification capacity to operating power consumption, data in the computing system can be preferentially stored in a storage device with a higher energy efficiency ratio, thereby reducing the power consumption of the computing system.

[0017] Exemplarily, when the target parameter is the inverse of the operating power consumption, data in the computing system may be preferentially concentrated in a storage device with lower power consumption, thereby reducing the power consumption of the computing system.

[0018] In a possible implementation, determining the first storage device and the second storage device includes: determining the storage device having the smallest target parameter as the second storage device; and determining the first storage device from storage devices other than the second storage device.

[0019] In an embodiment of the present application, by first determining the second storage device and then determining the first storage device based on the used space capacity of the second storage device, the storage device with the smallest target parameter can be preferentially controlled to enter the idle state, that is, switch from the active state to the idle state, which can quickly reduce the power consumption of the computing system.

[0020] In one possible implementation, determining the first storage device and the second storage device includes: sorting the storage devices from large to small according to the target parameter; determining the first M storage devices in the sorting result as the first storage device, where M is a positive integer greater than or equal to 1; and determining, from the storage devices other than the first storage device, a storage device whose used space capacity is less than or equal to the sum of the remaining capacities of the M first storage devices as the second storage device.

[0021] In the embodiment of the present application, by preferentially storing data in the first M storage devices in the target parameter sorting result, the beneficial effects corresponding to the above target parameters can be maximized.

[0022] In one possible implementation, the target parameter is the utilization rate; determining the first storage device and the second storage device includes: determining the storage device whose utilization rate is less than or equal to a first threshold as the second storage device, marking the storage device whose utilization rate is greater than the first threshold as an active storage device; and determining the first storage device from the active storage devices.

[0023] In an embodiment of the present application, by setting a first threshold to determine the second storage device, the number of second storage devices and the corresponding data volume can be controlled, thereby controlling the amount of migrated data and better scheduling the computing resources of the management device.

[0024] In one possible implementation, the storage devices in the CXL storage pool have the same specification and capacity, and the first storage device and the second storage device are both storage devices in the CXL storage pool; determining the first storage device and the second storage device includes: obtaining a sum of used space capacities of all the storage devices in the CXL storage pool; dividing the sum of used space capacities by the specification capacity to obtain a calculation result, and rounding up to obtain a minimum number K based on the calculation result; determining that the K storage devices in the CXL storage pool are the first storage devices, and determining that all storage devices in the CXL storage pool other than the first storage device are the second storage devices.

[0025] In the embodiment of the present application, by directly calculating the minimum number K and then concentrating the data in the CXL storage pool on the first storage device in the K CXL storage pools, there is no need to repeatedly and cyclically determine the first storage device and the second storage device. After the first storage device and the second storage device are determined once and the corresponding data migration is completed, the preset termination condition can be met, thereby saving computing resources.

[0026] In one possible implementation, determining K storage devices in the CXL storage pool as the first storage devices includes: obtaining a utilization rate of each storage device in the CXL storage pool; sorting the storage devices from high to low according to the utilization rate, and obtaining the first K storage devices in the sorting result as the first storage devices.

[0027] In an embodiment of the present application, by selecting the first K storage devices in the utilization sorting results as the first storage devices, and the storage devices with lower utilization sorting results as the second storage devices, the sum of the used space capacity of these second storage devices is minimized, the amount of data that needs to be migrated is smaller, and computing resources can be saved.

[0028] In one possible implementation, before determining the first storage device and the second storage device, or after switching the second storage device from an active state to an idle state, the method further includes: determining whether a trigger condition for data migration is met, wherein the trigger condition includes that the power consumption and storage management cost of the computing system have not reached a minimum, and / or that the average utilization rate of active storage devices in the computing system has not reached a third threshold, wherein the computing system includes the computing device, the management device, and the CXL storage pool; if the conditions are met, the step of determining the first storage device and the second storage device is triggered.

[0029] In the embodiment of the present application, by setting a trigger condition, the management device can cyclically execute the steps of determining the first storage device and the second storage device, and migrating data, according to the trigger condition, until the trigger condition is no longer satisfied, that is, the termination condition is satisfied. In this way, the beneficial effects expected by the user can be achieved as much as possible.

[0030] In one possible implementation, after switching the second storage device from an active state to an idle state, the method further includes: determining whether a trigger condition for data migration is met, wherein the trigger condition includes that a utilization rate of any active storage device is less than or equal to a second threshold; if so, determining that the active storage device with a utilization rate less than or equal to the second threshold is the second storage device, and deleting the active storage device mark of the second storage device; and triggering the step of determining the first storage device from the active storage devices.

[0031] In an embodiment of the present application, by migrating data from a second storage device with lower utilization to a first storage device with higher utilization in two batches, the management device can be controlled to prevent large amounts of data from being migrated in a short period of time during the process of managing the storage space of the computing device, thereby ensuring the performance of the management device.

[0032] In a possible implementation, the first storage device and the second storage device are both storage devices in the CXL storage pool.

[0033] In the embodiment of the present application, the business operation of the computing device can be guaranteed by controlling the local memory of the computing device not to participate in data migration.

[0034] In a possible implementation, at least one of the first storage device and the second storage device is a storage device of the computing device.

[0035] In an embodiment of the present application, by controlling the local memory of the computing device to participate in data migration, the read and write latency requirements of latency-sensitive businesses can be better met.

[0036] In one possible implementation, after migrating the data in the second storage device to the first storage device, the method further includes: receiving a storage space allocation request sent by the computing device; and allocating storage space of the active storage device to the computing device in response to the storage space allocation request.

[0037] In an embodiment of the present application, by allocating the storage space of an active storage device to a computing device, an idle storage device can be prevented from participating in memory allocation as much as possible and remain in a low-power idle state.

[0038] In a possible implementation, the priority includes pre-designated and non-pre-designated, the first storage device is the pre-designated storage device, and the second storage device is the non-pre-designated storage device other than the first storage device.

[0039] In an embodiment of the present application, a user can directly control a priority storage device in a computing system by presetting a priority, and centrally store data in the priority storage device, thereby better meeting user needs.

[0040] A second aspect of an embodiment of the present application further provides a management device, which includes: a processor, the processor is coupled to a memory, the memory stores at least one computer program instruction, and the at least one computer program instruction is loaded and executed by the processor to enable the management device to implement any method described in the first aspect.

[0041] A third aspect of an embodiment of the present application further provides a computing system, comprising: a computing device, a management device, and a CXL storage pool, wherein the CXL storage pool and the computing device both include storage devices, the management device being connected to the computing device and the CXL storage pool, respectively, and configured to allocate and manage storage space in the storage devices; the management device being configured to implement any of the methods described in the first aspect.

[0042] It should be understood that the beneficial effects of the above-mentioned various aspects can be referenced to each other. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] FIG1a is a schematic diagram of an application scenario provided by an embodiment of the present application;

[0044] FIG1b is a schematic diagram of another application scenario provided by an embodiment of the present application;

[0045] FIG2 is a schematic diagram of the hardware architecture of a computing system provided in an embodiment of the present application;

[0046] FIG3 is a flow chart of a storage space management method provided by this embodiment;

[0047] FIG4 is a flowchart of another storage space management method provided by this embodiment;

[0048] FIG5 is a comparison diagram of storage device utilization before and after data migration provided by this embodiment;

[0049] FIG6 is another comparison diagram of storage device utilization before and after data migration provided by this embodiment;

[0050] FIG7 is another comparison diagram of storage device utilization before and after data migration provided by this embodiment;

[0051] FIG8 is a schematic structural diagram of a management device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0052] The following describes the embodiments of the present application in conjunction with the accompanying drawings. Obviously, the embodiments described are only part of the embodiments of the present application, rather than all the embodiments. Those skilled in the art will appreciate that with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0053] The terms "first", "second", etc. in the description and claims of the embodiments of the present application and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchangeable where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0054] The following is an explanation of some terminology concepts involved in the embodiments of this application.

[0055] (1) Compute Express Link (CXL) protocol

[0056] The CXL protocol is an open industry standard, based on the Peripheral Component Interconnect Express (PCIe) protocol, for high-bandwidth, low-latency device interconnection. CXL can be used to connect devices such as central processing units (CPUs), accelerators, memory caches, and smart network cards. CXL is suitable for scenarios such as artificial intelligence (AI) and high-performance computing.

[0057] (2) Fabric management (Fabric management or Fabric manager or Fabric memory, FM)

[0058] FM is a management software used to manage and allocate storage space in the CXL storage pool to provide the required memory space to computing devices. The hardware entity responsible for running FM can take many forms. For example, FM can be run by a CXL switch chip (CXL switch), or by a CXL memory expansion card, or by a CXL controller; or by a CPU; or by a baseboard manager controller (BMC). In this embodiment, the hardware devices that run FM are collectively referred to as management devices. Management devices can include management software and hardware devices that run the management software. For example, the management device can be a CXL controller, a CXL switch chip, or other control chip, or it can be an independent server or other terminal device.

[0059] (3) Computing equipment

[0060] The computing device can be a server, or a tablet computer, a personal computer, a mobile phone or other terminal device. The computing device may include components such as a CPU, a south bridge chip, a memory, a PCIe device and their peripheral circuits. For example, the computing device may include one or more CPUs. The computing device may also include an accelerator, for example, the accelerator may be a tensor processing unit (TPU), a graphics processing unit (GPU), a neural processing unit (NPU), a data processing unit (DPU) or a smart network interface card (smart NIC). The computing device may also be a virtual computing device. In this embodiment, the computing device supports the CXL protocol, and the computing device can communicate with the storage device through the CXL protocol.

[0061] (4) Storage devices

[0062] Storage devices are used to provide storage space for computing devices to save data. Storage devices can be either memory or a hard disk. Memory can be either random access memory (RAM) or read-only memory (ROM). For example, random access memory is dynamic random access memory (DRAM) or storage class memory (SCM). Memory can also include other random access memories, such as static random access memory (SRAM). Read-only memory, for example, is programmable read-only memory (PROM) or erasable programmable read-only memory (EPROM).

[0063] Exemplarily, the storage device may be a memory stick, which may be a dual in-line memory module or a dual in-line memory module (DIMM) memory stick. For example, a DIMM memory stick is a module that includes DRAM. Exemplarily, the storage device is a memory expansion card. Exemplarily, the storage device is a memory disk with a PCIe interface. Alternatively, the storage device is a hard disk. For example, the storage device is a solid state drive (SSD) or a hard disk drive (HDD). This embodiment is described using the memory stick as an example.

[0064] The embodiments of the present application relate to application scenarios of a CXL storage pool. The CXL storage pool may include storage space provided by multiple storage devices. To distinguish different storage devices, the terms "first storage device" and "second storage device" are used to describe the different storage devices.

[0065] (5) Remaining capacity

[0066] Remaining capacity can also be referred to as unallocated capacity, free capacity, or available capacity. Remaining capacity refers to the amount of memory space in a storage device that has not yet been allocated to a computing device for use. For example, remaining capacity refers to the amount of free memory space in a storage device. For example, if a storage device has a standard capacity of 100GB and 20GB of the 100GB memory space has been allocated to a computing device, the remaining capacity of the storage device is 80GB.

[0067] (6) Specifications and capacity

[0068] Specification capacity can also be referred to as total capacity, nominal capacity, or rated capacity. Specification capacity is, for example, the theoretical maximum capacity set for a storage device by the storage device manufacturer during the storage device production process. For example, a storage device's specification capacity may be 32GB, 64GB, 128GB, or 256GB.

[0069] To facilitate understanding, the following first introduces CXL storage pooling technology.

[0070] In traditional computing device architectures, memory modules are directly connected to the computing device via a bus. A computing device can only use the memory space provided by the memory modules directly connected to it. When the CPU in a computing device wants to connect more memory modules to expand memory capacity and bandwidth, it is limited by the number of CPU pins.

[0071] The problem of memory capacity and bandwidth being limited by CPU pins can be solved by establishing a storage pool system using the CXL protocol. For example, a large number of memory sticks can be combined into a storage pool, and then the CXL protocol can be used to connect the storage pool to the CPUs in multiple computing devices, thereby allocating memory space in the storage pool to multiple CPUs as needed.

[0072] Please refer to Figure 1a, which shows a scenario in which multiple computing devices and a storage pool are interconnected based on a CXL controller. Memory banks 1 through 6 constitute the storage pool. The second interface of the CXL controller is connected to memory banks 1 through 6, respectively, and the first interface of the CXL controller is connected to computing device 1 and computing device 2, respectively. FM management software can run on the CXL controller, and the CXL controller manages the allocation of memory space in memory banks 1 through 6 based on the FM management software. The CXL controller can allocate the memory space in memory banks 1 through 6 to computing device 1 or computing device 2, allowing computing device 1 and computing device 2 to share the memory space of six memory banks. Because each computing device connected to the CXL controller can share the memory space of all memory banks connected to the CXL controller, this, to a certain extent, addresses the issue of memory capacity and bandwidth being limited by the CPU pins within the computing device.

[0073] See Figure 1b, which illustrates a scenario where multiple computing devices and storage pools are interconnected using a CXL switch. FM management software can also run on the CXL switch to manage and allocate memory space within the storage pool. Furthermore, compared to a CXL controller, a CXL switch provides more interfaces, enabling it to connect to more computing devices and storage pools, allowing more computing devices to share the storage space within the storage pool.

[0074] Taking the example of a storage pool implemented based on the CXL protocol (hereinafter referred to as the CXL storage pool) consisting of memory sticks, the CXL storage pool can also be composed of other types of storage devices. For example, the CXL storage pool can also include hard disks such as SSDs or HDDs. For example, the CXL switch allocates storage space in the SSD to computing devices for use. In addition, the storage capacity of each storage device in the CXL storage pool can be the same; the storage capacity of each storage device in the CXL storage pool can also be different; the type of each storage device in the CXL storage pool can be the same, for example, each storage device in the CXL storage pool is a DIMM memory stick. Alternatively, the type of each storage device in the CXL storage pool can be different. For example, some storage devices in the CXL storage pool are DIMM memory sticks, while others are hard disks.

[0075] In addition, the CXL controller or CXL switch can allocate storage space in the CXL storage pool to a CPU in a computing device, or allocate storage space in the CXL storage pool to other hardware entities, such as allocating storage space in the CXL storage pool to an accelerator or a GPU.

[0076] In addition, a CXL controller or CXL switch running FM management software can also manage and allocate the local memory of connected computing devices.

[0077] Embodiments of the present application can be applied to scenarios where memory expansion of a computing system is implemented based on the CXL protocol, as shown in Figure 1a or Figure 1b , and are specifically used to manage the storage space of the computing system. For example, embodiments of the present application can be used to manage data migration within the storage space of a CXL storage pool, or to manage data migration between the storage space of a CXL storage pool and the storage space of the local memory of a computing device.

[0078] Please refer to Figure 2, which is a schematic diagram of the hardware architecture of a computing system 10 provided in an embodiment of the present application. As shown in Figure 2, computing system 10 may include n computing devices, a management device, and a CXL storage pool. The CXL storage pool includes m storage devices, where n is a positive integer greater than or equal to 1, and m is a positive integer greater than or equal to 1.

[0079] Computing devices 1 to n can be used to process business data. Computing devices 1 to n can use the storage space provided by the CXL storage pool to store business data. For further explanation of computing devices, please refer to (3) in the above terminology section.

[0080] The management device is a hardware entity running FM. For example, the management device can be the CXL controller shown in Figure 1a or the CXL switch shown in Figure 1b. In the specific example of Figure 2 , the management device is a computing device running FM other than computing devices 1 through n, such as a server or a terminal device. The management device can also be a CXL storage expansion card, such as a CXL memory expansion card.

[0081] Computing devices 1 to n and the management device each include local memory, namely local memory 1 to n+1. The management device can be used to manage the storage space of local memory 1 to n+1 and the storage space of storage devices 1 to m. Specifically, the management device can be used to respond to storage space allocation requests from computing devices 1 to n and allocate storage space of the aforementioned storage devices (including local memory 1 to n+1 and storage devices 1 to m) to requesters in computing devices 1 to n. The management device can also be used to migrate data in the storage space of the aforementioned storage devices to the corresponding storage devices or local memory when data migration conditions are met.

[0082] When the management device is a computing device, computing devices 1 to n may be connected to the CXL storage pool via the management device, or may be connected to the management device and the CXL storage pool respectively via a bus as shown in FIG2 .

[0083] The bus can be a Peripheral Component Interconnect (PCI) bus, a PCIe bus, or an Extended Industry Standard Architecture (EISA) bus. Buses can be categorized as address buses, data buses, and control buses. For ease of illustration, Figure 2 shows only one line, but this does not imply that there is only one bus or only one type of bus.

[0084] It is understandable that the computing system 10 shown in FIG. 2 is merely an example and not a limitation. The computing system 10 may also be the system shown in FIG. 1 a or the system shown in FIG. 1 b .

[0085] In a system similar to that shown in Figure 1a or Figure 1b, computing devices 1 through n are connected to a CXL storage pool via a management device (a CXL controller or a CXL switch). The management device communicates with the n computing devices via a first interface. This first interface may include, but is not limited to, a transceiver module such as a network interface card, a transceiver, or an optical module. This first interface may be a single interface or a combination of multiple interfaces. The embodiments of this application do not limit the number of these first interfaces.

[0086] At this point, the management device connects to storage devices 1 through m in the CXL storage pool via a second interface. In one possible implementation, the second interface is a PCIe interface. Each of the m storage devices in the CXL storage pool includes a PCIe interface. The PCIe interface of the management device connects to the m storage devices in the CXL storage pool via a PCIe bus. The second interface can be a single interface or a combination of multiple interfaces. This embodiment does not limit the number of second interfaces.

[0087] The CXL storage pool is a storage device independent of computing devices 1 to n; the management device may be independent of the servers deployed by computing devices 1 to n and the CXL storage pool, for example, the management device may be another computing device or a terminal device.

[0088] The management device can also be integrated with each storage device in the CXL storage pool into the same device. For example, the management device can be integrated with each storage device in the CXL storage pool into a storage server as a storage pool.

[0089] At present, the management scheme of the storage devices in the computing system 10 by the management device is mainly based on data migration based on data access popularity and business relevance. Specifically, data that is frequently accessed by the computing device and is strongly related to the computing device business is migrated to a storage device closer to the computing device, and data that is less frequently accessed by the computing device and is less related to the computing device business is migrated to a storage device farther away from the computing device, so as to improve the efficiency of the computing device in accessing data. However, the memory demand of the computing system is dynamic. This management scheme will cause more storage devices to be in an active state. The management device needs to manage these active storage devices. Therefore, this management scheme will lead to an increase in the memory power consumption and management cost of the computing system. For example, an 8GB DDR3 1066 memory stick consumes 15W in active state and 4W in idle state. When the CXL storage pool includes dozens of such memory sticks, this management scheme will result in very high power consumption, which is not conducive to environmental protection and energy saving.

[0090] Based on this, embodiments of the present application provide a storage space management method, management device, and computing system, which can reduce the memory power consumption and management costs of the computing system.

[0091] Please refer to FIG. 3 , which is a flowchart of a storage space management method provided by this embodiment. As shown in FIG. 3 , the method includes steps 301 and 302 .

[0092] The method shown in Figure 3 can be applied to the system architecture shown in Figure 1a. For example, the management device in the method shown in Figure 3 is the CXL controller in Figure 1a, the computing device in the method shown in Figure 3 is computing device 1 or computing device 2 in Figure 1a, and the CXL storage pool in the method shown in Figure 3 is memory 1 through memory 6 in Figure 1a.

[0093] The method shown in Figure 3 can also be applied to the system architecture shown in Figure 1b. For example, the management device in the method shown in Figure 3 can be the CXL switch in Figure 1b, the computing device in the method shown in Figure 3 can be computing device 1 or computing device 2 in Figure 1b, and the CXL storage pool in the method shown in Figure 3 can be the CXL storage pool in Figure 1b.

[0094] The method shown in Figure 3 can also be applied to the system architecture shown in Figure 2. For example, the management device in the method shown in Figure 3 is the management device in Figure 2, the computing device in the method shown in Figure 3 is any one of the n computing devices in Figure 2, and the CXL storage pool in the method shown in Figure 3 is the CXL storage pool in Figure 2.

[0095] Each computing device and / or CXL storage pool in the computing system includes a storage device, which includes a first storage device and a second storage device. It is understood that the storage device of the computing device is also the local memory of the computing device in the system architecture shown in FIG2 .

[0096] Step 301: A management device determines a first storage device and a second storage device.

[0097] When the triggering conditions for data migration are met, the management device may execute steps 301 and 302 to perform data migration.

[0098] Specifically, the trigger condition can be an external trigger, such as being triggered by an instruction sent by a business process or management program in the computing device, or being triggered when the management device detects that the power consumption of the computing system or CXL storage pool is greater than a certain threshold; it can also be an internal trigger, such as a migration cycle is set inside the management device, and data migration is performed once every migration cycle.

[0099] To manage data migration, the management device needs to first determine the source device and the destination device, and then migrate the data in the source device to the destination device. Correspondingly, in the embodiment of the present application, the source device is the second storage device and the destination device is the first storage device.

[0100] Because the computing system consumes significant power when many storage devices in the CXL storage pool are in an active state, the management device can centrally store data from various storage devices in the computing system to reduce the number of active storage devices. This reduces the utilization of more storage devices and allows the management device to switch these devices from an active state to an idle state.

[0101] The difference between the idle and active states lies in whether the storage device contains business data. When business data exists, the storage device will be accessed by businesses at a certain frequency. When no business data exists, the storage device has a utilization rate of 0, and no business accesses the storage device. It is understandable that the power consumption of a storage device in the active state is greater than that in the idle state.

[0102] It is understandable that in some possible implementations, when there is no business data in the storage device, its utilization is not necessarily 0. There may be some configuration files stored therein that will not be used as business access targets. At this time, the storage device may also enter an idle state.

[0103] The remaining capacity of the first storage device is not zero, and the utilization rate of the second storage device is not zero. The utilization rate is the ratio of the used space capacity of the storage device to the specified capacity. It is understandable that when the remaining capacity of a storage device is zero, that is, when the storage space of the storage device is full, data can no longer be written to the storage device. Therefore, a storage device with a remaining capacity of zero does not participate in data migration as a first storage device. Since the purpose of data migration is to make more storage devices enter an idle state, a second storage device with a utilization rate of zero can be considered to have entered or is about to enter an idle state. Therefore, a storage device with a utilization rate of zero does not participate in data migration as a second storage device.

[0104] The target parameters of the first storage device are greater than the target parameters of the second storage device, and the remaining capacity of the first storage device is greater than or equal to the used space capacity of the second storage device. In this way, all business data of the second storage device can be migrated to the first storage device. The target parameters include utilization rate, standard capacity, ratio of standard capacity to operating power consumption, the inverse of operating power consumption, and priority.

[0105] It should be noted that the number of first storage devices can be one or more. When the number of first storage devices is one, the remaining capacity of the first storage device is the remaining capacity of the one first storage device. When the number of first storage devices is multiple, the remaining capacity of the first storage device is the sum of the remaining capacities of the multiple first storage devices.

[0106] In the embodiment of the present application, more beneficial effects can be achieved by using a storage device with a smaller target parameter as the second storage device and a storage device with a larger target parameter as the first storage device.

[0107] For example, when the target parameter is utilization, the management device migrates data from the second storage device with lower utilization to the first storage device with higher utilization. When the specifications and capacities of the first storage device and the second storage device are the same, the migration amount is smaller, which can save computing resources.

[0108] It is understandable that in computing systems, storage devices of the same model or specification are usually used to form a CXL storage pool so that each storage device in the storage pool can directly communicate data without additional configuration, which is more convenient for management devices to perform unified management.

[0109] In some embodiments, the first storage device and the second storage device are both storage devices in a CXL storage pool.

[0110] In other embodiments, at least one of the first storage device and the second storage device is a storage device of a computing device, that is, a local memory of the computing device.

[0111] Whether the computing device's storage device participates in data migration can be determined based on actual business needs and business characteristics. For example, when the business is latency-sensitive, the computing device's storage device can participate in data migration to enable the business to access data with lower latency. When the computing device's local memory is occupied, which would affect business operations, the computing device's storage device may not participate in data migration.

[0112] In one possible implementation, when a management device allocates storage space of a CXL storage pool to a computing device, the management device allocates the storage space of all storage devices in the CXL storage pool to one computing device, taking storage devices as units. Thereafter, if a trigger condition for data migration is met, the management device may determine a first storage device and a second storage device from storage devices in multiple CXL storage pools allocated to the same computing device, as well as from the local memory of the computing device.

[0113] In another possible implementation, when allocating storage space of a CXL storage pool to a computing device, the management device divides the storage space of a storage device in the CXL storage pool into multiple parts, and the multiple parts can be allocated to one or more computing devices.

[0114] Afterwards, when the triggering conditions for data migration are met, if the local memory of the computing device does not participate in the data migration, the management device can first record the ownership information of the data in the CXL storage pool, and then execute steps 301 and 302; after the data migration is completed, the access rights to the storage space where the migrated data is located are configured according to the ownership information, and finally the storage space address of the corresponding data after migration is returned to each computing device in the computing system.

[0115] If the local memory of the computing device participates in data migration and the local memory serves as the first storage device, the management device can migrate the data belonging to the computing device in the second storage device to the local memory, and migrate the data that does not belong to the computing device to other first storage devices; if the local memory serves as the second storage device, the management device can determine the first storage device from the storage devices in the CXL storage pool.

[0116] Through the above two possible implementations, the access security of data in the computing system can be guaranteed and access errors can be avoided.

[0117] After understanding the relevant information of the first storage device and the second storage device, the following introduces a specific method for determining the first storage device and the second storage device.

[0118] In a possible implementation, the management device may determine that the storage device with the smallest target parameter in the computing system is the second storage device; and then determine the first storage device from the storage devices in the computing system except the second storage device.

[0119] The management device may first determine whether there is a storage device with a remaining capacity greater than or equal to the used space capacity of the second storage device; if so, determine one from the corresponding storage devices as the first storage device; if not, determine whether there are N storage devices with a sum of remaining capacities greater than or equal to the used space capacity of the second storage device; if so, determine a combination from the corresponding storage device combinations as the first storage device; if not, assign N+1 to N, and then perform the step of determining N storage devices again. N is a positive integer greater than or equal to 2. Exemplarily, the initial value of N is 2.

[0120] Optionally, when the management device determines a first storage device from multiple qualified storage devices, the storage device with the largest target parameter can be determined as the first storage device; when determining a combination from multiple qualified storage device combinations, the combination with the largest sum of the target parameters can be determined, and the storage device in the combination can be determined as the first storage device.

[0121] Since the purpose of step 302 is to put the second storage device into an idle state, the management device can first determine a second storage device, and then determine one or more first storage devices to ensure that the service data in the second storage device can be completely migrated to the first storage device. In this way, by preferentially controlling the storage device with the smallest target parameter to enter an idle state, the power consumption of the computing system can be quickly reduced.

[0122] In one possible implementation, the management device may sort the storage devices in the computing system from large to small according to the target parameters; then determine the first M storage devices in the sorting result as the first storage device; and then determine, from the storage devices other than the first storage device in the computing system, the storage device whose used space capacity is less than or equal to the sum of the remaining capacities of the M first storage devices as the second storage device.

[0123] Wherein, M is a positive integer greater than or equal to 1.

[0124] If the management device determines that the second storage device does not exist in the M first storage devices, M+1 is assigned to M, and then the step of determining the M first storage devices is performed again.

[0125] Optionally, when the management device determines a second storage device from multiple storage devices that meet the conditions, the storage device with the smallest target parameter may be determined as the second storage device.

[0126] By preferentially storing data in the first M storage devices in the target parameter sorting result, the beneficial effects corresponding to the above target parameters can be maximized.

[0127] In one possible implementation, the target parameter is utilization; the management device may determine a storage device whose utilization is less than or equal to a first threshold as a second storage device, and mark a storage device whose utilization is greater than the first threshold as an active storage device; then, from the active storage devices, determine one or more storage devices whose sum of remaining capacity is greater than the used space capacity of the second storage device as the first storage device.

[0128] Among them, the first threshold is used to determine whether the storage device needs to be used as the source device for data migration; a storage device with a utilization rate lower than the first threshold can be considered as a storage device with lower energy efficiency. At this time, the management device can migrate the data therein to a storage device with higher energy efficiency.

[0129] Similar to the above possible implementation, when the management device needs to determine one as the first storage device from multiple storage devices whose remaining capacity is greater than the used space capacity of the second storage device, the management device can determine the one with the highest utilization rate among the multiple storage devices as the first storage device; or it can determine the one with the largest specification capacity, the largest ratio of specification capacity to operating power consumption, the largest inverse of operating power consumption, or the highest priority among the multiple storage devices as the first storage device.

[0130] The first threshold may be a preset threshold or a threshold determined by the management device according to real-time scenario requirements. By determining the second storage device based on the first threshold, the amount of data migration by the management device within a certain period of time may be controlled.

[0131] In another possible implementation, the management device may determine, from the active storage devices, one or more storage devices whose sum of remaining capacities is greater than the sum of used space capacities of all second storage devices as first storage devices.

[0132] It is understandable that the meanings of a storage device in an active state and an active storage device are different. An active storage device means that the utilization rate of the storage device is not 0, and the storage space of the storage device is occupied by business data; while an active storage device means a storage device that has a special mark added to the managed device.

[0133] In some possible implementations, the specifications and capacities of storage devices in the CXL storage pool are not completely the same. However, it is understandable that storage devices with different specifications and capacities generally have different operating power consumption.

[0134] At this time, the management device can use utilization as the target parameter, or can use specification capacity or operating power consumption as the target parameter, or can combine one or more of utilization, specification capacity and operating power consumption as target parameters to determine the first storage device and the second storage device.

[0135] In a possible implementation, the specification and capacity of the first storage device is higher than that of the second storage device, that is, the management device selects the storage device with a larger specification and capacity as the first storage device.

[0136] By prioritizing the migration of data to storage devices with larger specifications and capacities, as many storage devices as possible can be kept idle and as few as possible can be kept active, minimizing the storage management costs of the computing system.

[0137] In one possible implementation, the ratio of the specification capacity to the operating power consumption of the first storage device is higher than that of the second storage device, that is, the management device selects the storage device with the higher ratio of specification capacity to operating power consumption as the first storage device.

[0138] Among them, the higher the ratio of specification capacity to operating power consumption, the larger the specification capacity of the storage device or the smaller the operating power consumption. Using a storage device with a higher ratio of specification capacity to operating power consumption as the first storage device is more in line with the purpose of the embodiment method of this application.

[0139] By prioritizing the migration of data to storage devices with a higher ratio of specification capacity to operating power consumption, the power consumption of the computing system can be minimized as much as possible.

[0140] In one possible implementation, the target parameter includes a priority, and the priority includes pre-designated and non-pre-designated. The management device may determine that the first storage device is a pre-designated storage device, and the second storage device is a non-pre-designated storage device other than the first storage device.

[0141] The management device may pre-store information indicating these pre-designated storage devices. Specifically, the designation may take the form of specifying conditions, such as prioritizing the first N storage devices in descending order of capacity; specifying types, such as prioritizing storage devices designated for computing devices; or assigning a priority to each storage device as either the first or second storage device.

[0142] In actual applications, the first storage device and the second storage device can be determined by adopting or combining the above possible implementations based on the actual situation of the storage devices in the CXL storage pool and business requirements, so as to achieve a desired balance between the power consumption and storage management costs of the computing system.

[0143] In one possible implementation, the storage devices in the CXL storage pool have the same specification and capacity, and the first storage device and the second storage device are both storage devices in the CXL storage pool. When a trigger condition for data migration is met, the management device may obtain the sum of the used space capacities of all storage devices in the CXL storage pool. The management device may then divide the sum of the used space capacities by the specification capacity to obtain a calculation result, and round up the calculation result to determine a minimum number K. Finally, the K storage devices in the CXL storage pool are determined to be first storage devices, and the storage devices in the CXL storage pool other than the K first storage devices are determined to be second storage devices.

[0144] The first storage device and the second storage device are both storage devices in the CXL storage pool, which means that the local memory of the computing device does not participate in data migration.

[0145] Among them, when the specifications and capacities of the storage devices participating in the data migration are the same, the management device can calculate the total amount of data in all the storage devices currently participating in the data migration; then calculate the minimum number K of first storage devices required to store the total amount of data; then the management device can achieve the expected beneficial effects and determine K storage devices as first storage devices from the storage devices participating in the data migration according to corresponding rules, and determine that all storage devices participating in the data migration except the first storage devices are second storage devices.

[0146] Optionally, the management device may obtain the utilization of each storage device in the CXL storage pool; then sort the storage devices in the CXL storage pool from high to low according to the utilization, and obtain the first K storage devices in the sorting result as the first storage devices.

[0147] By selecting the first K storage devices in the utilization ranking as the first storage devices, the utilization of the remaining second storage devices is relatively low. Under the condition of the same specifications and capacities, the amount of migrated data can be minimized.

[0148] In some other possible implementations, the management device may also select the first K storage devices in descending order of operating power consumption as the first storage devices, so as to reduce the operating power of the computing system as much as possible.

[0149] It can be understood that the above-mentioned examples of possible implementations of determining the first storage device and the second storage device do not constitute a limitation on the embodiments of the present application, and simple transformations and derivative solutions based on the above-mentioned possible implementations also fall within the scope of protection of the embodiments of the present application.

[0150] Step 302: The management device migrates the data in the second storage device to the first storage device, and switches the second storage device from an active state to an idle state.

[0151] The management device may migrate the service data in the second storage device to the first storage device, so that no service accesses the second storage device. At this time, the management device may switch the second storage device from an active state to an idle state.

[0152] Optionally, the second storage device may automatically enter the idle state when there is no business access within a preset period of time; or may enter the idle state under the control of the management device.

[0153] In one possible implementation, after the management device migrates the data in the second storage device to the first storage device, if a storage space allocation request is received from the computing device, storage space of the active storage device is allocated to the computing device in response to the storage space allocation request.

[0154] The storage space request is used to request that the management device allocate storage space to the computing device. This request can also be called a storage space allocation request. By sending a storage space request to the management device, the computing device informs the management device that it needs storage space, thereby triggering the management device to execute the storage space allocation process. The storage space request can be a message encapsulated in the format specified by the CXL protocol.

[0155] By allocating the storage space of active storage devices to computing devices, idle storage devices can be prevented from participating in memory allocation as much as possible and remain in a low-power idle state.

[0156] Exemplarily, the management device can determine from active storage devices a storage device with remaining capacity that can meet the storage space allocation request; determine from these storage devices with sufficient remaining capacity the one with the highest utilization rate as the first target storage device, and finally allocate the storage space of the first target storage device to the requester of the storage space allocation request.

[0157] For example, if there is no storage device in the active state whose remaining capacity can meet the storage space allocation request, these active storage devices are combined to obtain a storage device combination whose sum of remaining capacity can meet the storage space allocation request; then, the combination with the highest average utilization rate among these storage device combinations is determined, and the storage space corresponding to the combination is allocated to the requester of the storage space allocation request.

[0158] After completing the data migration, the management device can control the power consumption of idle storage devices to further reduce power consumption. For example, it can control multiple idle storage devices to power off in turn. It can also better implement functions such as data recovery, memory recovery, storage hot plugging, and memory pooling sharing based on idle storage devices.

[0159] Exemplarily, after migrating the data to fewer storage devices, the management device can implement memory pooling sharing based on these storage devices; specifically, with the storage space of these storage devices as an entire memory pool, the application of the computing device can apply for allocation of storage space from the memory pool. In this way, the problem of storage fragmentation caused by the discontinuous storage space area blocks occupied by different applications of the storage device can be avoided, and the problem of a single fragment being too small to meet the needs of subsequent applications and being idle can be avoided. At this time, the management device can allocate these fragments together to improve the utilization efficiency of the storage device.

[0160] For example, when a storage device failure occurs, the management device can perform data migration to migrate the business data in the failed storage device to a storage device that is operating normally. Specifically, the management device can determine a storage device with remaining capacity that can store the business data in the failed storage device from active and operating normally storage devices. Then, the management device can determine the storage device with the highest utilization rate from these storage devices with sufficient remaining capacity as the second target storage device, and then migrate the business data in the failed storage device to the second target storage device.

[0161] For example, if there is no storage device with remaining capacity that can meet the storage space allocation request among the storage devices that are active and operating normally, these active storage devices are combined to obtain a storage device combination whose sum of remaining capacity can store the business data in the faulty storage device; then, the combination with the highest average utilization rate among these storage device combinations is determined, and the business data in the faulty storage device is migrated to the storage space corresponding to the combination.

[0162] Since the business data has been migrated, the staff can now hot-swap the faulty storage device without affecting business operations and without having to power off the entire computing system for maintenance.

[0163] It is understandable that the management device may execute steps 301 and 302 in a loop until a termination condition is reached, so as to reduce the power consumption and storage management cost of the computing system as much as possible.

[0164] In one implementation, the termination condition can be understood as the computing system's power consumption and storage management costs reaching a minimum. If the computing system's power consumption and storage management costs have not reached a minimum, the termination condition is not met, and the trigger condition for data migration is met. At this time, the management device can execute a round of steps 301-302. After executing a round of steps 301-302, it continues to determine whether the computing system's power consumption and storage management costs have reached a minimum. If not, it triggers step 301 and continues to execute a round of 301-302. If so, it stops. This process repeats. After the computing system's power consumption and storage management costs have reached a minimum, the management device will periodically confirm whether the computing system's power consumption and storage management costs have reached a minimum.

[0165] Exemplarily, the specific process of the management device executing steps 301-302 is as follows:

[0166] The management device first determines that the storage device with the highest utilization rate and non-zero remaining capacity is the first storage device; then determines that the storage devices with utilization rates that are non-zero and lower than the utilization rate of the first storage device are all second storage devices; then, the management device can migrate the data in each second storage device to the first storage device in order from low to high utilization rate; if the storage space of the first storage device is full, the full storage device can no longer be used as the first storage device, and this can be considered the end of a round of data migration.

[0167] In the above process, the first storage device is the storage device with the highest utilization and non-zero remaining capacity. If there is no storage device in the computing system with a non-zero utilization and a utilization lower than that of the first storage device, it indicates that the storage devices in the computing system other than the first storage device are in a state of zero utilization or zero remaining capacity. In other words, the data in the computing system has been concentrated on as few storage devices as possible, with as many storage devices as possible in an idle state. At this point, the management device can determine that the termination condition has been met. Therefore, the termination condition of the above implementation is: for a first storage device, there is no second storage device; correspondingly, the trigger condition is: for a first storage device, there is a second storage device.

[0168] At this time, the management device can first determine a first storage device according to the above implementation, and then determine whether a second storage device exists; if so, continue to execute step 302; if not, that is, the determination result of the second storage device step is an empty set, then the management device ends the storage space management process.

[0169] In some other possible implementations, the termination condition may also be that the average utilization of active storage devices reaches a certain threshold, such as 90%; the termination condition may also be that the number of active storage devices is less than or equal to a certain value, or the total power consumption of active storage devices is less than or equal to a certain threshold.

[0170] In another implementation, the termination condition can be understood as the average utilization of the active storage device reaching a third threshold. When the average utilization does not reach the third threshold, the management device can determine that the termination condition is not met and the trigger condition for data migration is met. At this time, the management device can execute a round of steps 301-302. After executing a round of steps 301-302, the management device continues to determine whether the average utilization has reached the third threshold. If not, step 301 is triggered, and the management device continues to execute a round of 301-302. If so, it stops. Repeat this process. After the average utilization reaches the third threshold, the management device will also periodically confirm whether the average utilization of the active storage device has reached the third threshold.

[0171] In one possible implementation, the management device may first determine a storage device whose utilization is less than or equal to a first threshold as a second storage device, and mark a storage device whose utilization is greater than the first threshold as an active storage device; then determine a first storage device from the active storage devices, and migrate the data of the second storage device to the first storage device; after the storage space of the first storage device is full, determine the first storage device again from the active storage devices whose remaining capacity is not 0, and repeat the above steps of migrating data and determining the first storage device until the data in all second storage devices is migrated.

[0172] In another implementation, the termination condition can be understood as whether the utilization rate of any active storage device is less than or equal to a second threshold. If the utilization rate of any active storage device is less than or equal to the second threshold, the termination condition is not met, but the trigger condition for data migration is met. At this time, the management device can determine that the active storage device with a utilization rate less than or equal to the second threshold is the second storage device and delete the active storage device flag of the second storage device. It is understandable that the storage device whose active storage device flag is deleted is no longer an active storage device.

[0173] The management device then triggers and executes the step of determining the first storage device corresponding to the second storage device from the active storage devices, and then executes step 302. After executing step 302, the management device continues to determine whether there are active storage devices with a utilization rate less than or equal to the second threshold. If so, the above process is repeated. If not, the management device stops. This process repeats. If no active storage device has a utilization rate less than or equal to the second threshold, the management device will periodically confirm whether there are active storage devices with a utilization rate less than or equal to the second threshold.

[0174] Among them, the second threshold is also a preset threshold, and the second threshold can be greater than, less than or equal to the first threshold, that is, the size relationship between the two is not limited in the embodiment of this application.

[0175] By setting a first threshold and a second threshold, and migrating data from a second storage device with lower utilization to a first storage device with higher utilization in two batches based on the first threshold and the second threshold, the management device can be controlled to avoid migrating large amounts of data in a short period of time during the process of managing the storage space of the computing device, thereby ensuring the performance of the management device.

[0176] In an embodiment of the present application, by migrating data in the second storage device to the first storage device and then controlling the second storage device to switch from an active state to an idle state, more storage devices can be placed in an idle state, thereby reducing the power consumption of the computing system; at the same time, the management device needs to manage fewer active storage devices, thereby saving storage management costs.

[0177] The following will describe in detail the process of the storage space management method provided in the embodiment of the present application with reference to Figures 4 to 7.

[0178] Please refer to Figure 4, which is a flowchart of a storage space management method provided in an embodiment of the present application, and the method is applied to the computing system shown in Figure 2. As shown in Figure 4, the method includes steps 401 to 413. In this embodiment, the local memory of the computing device participates in data migration.

[0179] Step 401: The computing device sends a first storage space allocation request to the management device.

[0180] After the computing device is powered on, its processor begins executing the application code stored in the computing device, running the corresponding application. After initialization, the application determines that the computing device's available memory includes local memory and storage devices in the computing system's CXL storage pool (hereinafter referred to as CXL storage devices). At this point, the application sends a first storage space allocation request to the management device that manages the CXL storage devices, requesting the management device to allocate storage space on the CXL storage devices. Furthermore, the application requests the operating system that manages local memory to allocate storage space in the local memory.

[0181] Optionally, each application separately applies for storage space in local memory and storage space in the CXL storage device.

[0182] Optionally, an application for memory management in the computing device sends a first storage space allocation request to the management device; then the storage space of the CXL storage device allocated by the management device and the storage space of the local memory allocated by the operating system are used as a memory pool; other applications in the computing device send allocation requests to the application for memory management when memory allocation is required.

[0183] The first storage space allocation request includes a first configuration capacity, and the first configuration capacity refers to the size of the storage space that needs to be allocated to the computing device.

[0184] Step 402: The management device determines a first target storage space according to the first storage space allocation request.

[0185] Among them, the management device can determine, from the CXL storage devices of the computing system, a first target storage device whose remaining capacity is greater than or equal to the first configured capacity, or a combination of first target storage devices whose sum of remaining capacity is greater than or equal to the first configured capacity based on the first storage space allocation request; and then determine the first target storage space in the first target storage device or the combination of first target storage devices.

[0186] The size of the first target storage space is greater than or equal to the first configured capacity.

[0187] The management device records usage information of each CXL storage device.

[0188] Optionally, the management device includes a memory application table, which is used to record the size of storage space requested and released by each computing device in the CXL storage device; the management device can obtain the remaining capacity of each CXL storage device based on the memory application table, and then determine the first target storage device or the first target storage device combination in the CXL storage device based on the remaining capacity.

[0189] Whenever the memory management program requests the management device to allocate or release storage space of the CXL storage device, the management device updates the memory application table according to the corresponding allocation result or release result.

[0190] Step 403: The management device allocates the first target storage space to the computing device.

[0191] After determining the first target storage space, the management device can directly allocate the first target storage space to the computing device. Specifically, the management device can set access permissions for the first target storage space so that the first target storage space is exclusively for the computing device; before the computing device releases the first target storage space, other computing devices in the computing system cannot access or apply for allocation of the first target storage space.

[0192] After completing the allocation of the first target storage space, the management device may return the address information of the first target storage space to the computing device.

[0193] Step 404: The management device detects whether the triggering condition for data migration is met.

[0194] After a computing system has been running for a period of time, the business data of each computing device in the computing system may be stored in different storage devices. Many storage devices are frequently read and written and are in an active state, resulting in higher power consumption of the computing system. In this case, the management device can manage the storage space in the computing system, concentrating the business data in the computing system on fewer storage devices, leaving more storage devices idle, thereby reducing the computing system's power consumption.

[0195] Therefore, a trigger condition for data migration may be preset in the management device. When the trigger condition is met, it indicates that the management device needs to perform storage management on the computing system, that is, perform data migration to reduce the power consumption of the computing system.

[0196] The trigger condition can be an external trigger, such as being triggered by an instruction sent by a business process or memory management program in the computing device, or when the management device detects that the power consumption of the computing system or CXL storage pool is greater than a certain threshold; it can also be an internal trigger, such as a migration cycle set inside the management device, and data migration is performed every other migration cycle.

[0197] Optionally, the management device also has preset migration parameters. These parameters can be parameters required by the management device to perform data migration, such as the first and second thresholds in the embodiment shown in FIG3 , or identifiers, conditions, and / or a designated order for designated storage devices; they can also be triggering conditions for data migration, such as a migration period.

[0198] Optionally, the migration parameters are input into the management device by a user, administrator, or operation and maintenance personnel.

[0199] The management device may start to cyclically execute step 404 after being powered on, or may start to cyclically execute step 404 after executing step 403 for the first time, until the trigger condition is met.

[0200] If it is detected that the trigger condition is currently met, the management device may execute step 405; if it is detected that the trigger condition is currently not met, step 404 is executed again.

[0201] Step 405: If the trigger condition is met, the management device obtains migration information of each storage device in the computing system.

[0202] After determining that the trigger conditions for data migration are met, the management device can obtain migration information for the local memory of each computing device and the migration information for each CXL storage device. This migration information is used to determine the source and destination devices for the data migration. Optionally, this migration information may include at least one of specification capacity, utilization, and operating power consumption.

[0203] When the specifications, capacity, and operating power consumption of the local memory and the CXL storage device are the same, the management device may use the utilization rate as the migration information.

[0204] In this embodiment, the utilization rate is used as the migration information, and the management device implements a data migration cycle based on the utilization rate. It is understandable that the management device can also implement data migration based on specification capacity, operating power consumption or other parameters.

[0205] The management device may send a first query request to each computing device in the computing system to query the utilization of the corresponding local memory. The management device may also query the model, specification, capacity, operating power consumption, idle power consumption, and remaining capacity of the corresponding local memory from each computing device based on the computing requirements of the data migration.

[0206] It is understandable that when the management device performs data migration, if there is a pre-designated storage device that does not participate in the data migration, the management device sends the first query request to all computing devices in the computing system except the computing device where the designated storage device is located.

[0207] After receiving the first query request, the computing device may return the utilization rate of its own local memory to the management device.

[0208] Optionally, the management device monitors the read and write status of each CXL storage device and calculates the utilization rate of each CXL storage device.

[0209] Optionally, the management device may send a second query request to each computing device allocated with the first target storage space to obtain the utilization rate of the first target storage space, thereby calculating the utilization rate of each CXL storage device.

[0210] Step 406: The management device determines the first storage device and the second storage device according to the migration information.

[0211] The management device can determine the source device and the destination device of the data migration from the local memory and the CXL storage device according to the migration information to implement data migration. In this embodiment, the destination device is referred to as the first storage device and the source device is referred to as the second storage device.

[0212] In a possible implementation, the local memory of the computing device does not participate in data migration. In this case, the management device obtains migration information of each CXL storage device and determines the first storage device and the second storage device in the CXL storage device based on the migration information.

[0213] Specifically, the implementation of determining the first storage device and the second storage device according to the migration information in step 406 of this embodiment is similar to the implementation of step 301 in the embodiment shown in FIG. 3 , and will not be repeated here.

[0214] Step 407: The management device migrates the data in the second storage device to the first storage device.

[0215] When the second storage device includes a local memory, the management device may send a migration instruction to the computing device where the local memory is located; and the computing device migrates the data in the local memory to the first storage device according to the migration instruction.

[0216] It is understandable that when the local memory is used as a second storage device, the local memory needs to at least retain the data content required for the operation of the operating system so that the operating system can run normally; when the local memory of the computing device includes multiple memory bars, and some of the memory bars are sufficient to store the data required for the operation of the operating system, the computing device can migrate all the data of another part of the multiple memory bars to the first storage device.

[0217] Optionally, the migration instruction includes the address of the first storage device; the computing device directly writes the data in the local memory to the address according to the migration instruction, and then deletes the data in the local memory that has been written to the first storage device.

[0218] Optionally, the computing device sends the data in the local memory to the management device according to the migration instruction, and the management device forwards the data to the first storage device; then the computing device deletes the data in the local memory that has been sent to the management device.

[0219] Optionally, when the data of the local memory serving as the second storage device is migrated and the utilization rate is 0, the processor of the computing device where the local memory is located may control the local memory to switch from an active state to an idle state.

[0220] When the second storage device includes a CXL storage device, the management device may directly migrate all data in the second storage device to the first storage device.

[0221] Alternatively, the management device can read all data from the CXL storage device. If the first storage device is the local memory of the computing device, the management device can send all the data to the computing device's processor, which then writes the data to the local memory. If the first storage device is a CXL storage device, the management device can directly write all the data to the first storage device. The management device then deletes all the data from the second storage device.

[0222] Step 408: The management device controls the second storage device to switch from the active state to the idle state.

[0223] After the data migration is completed, the management device may control the second storage device in the computing system with a utilization rate of 0 to switch from an active state to an idle state, so as to reduce power consumption and save energy.

[0224] Among them, for a CXL storage device with a utilization rate of 0, the management device can directly control the CXL storage device to switch from an active state to an idle state; and for the local memory of a computing device with a utilization rate of 0, the management device can send a control instruction to the computing device to enable the computing device to control the local memory to switch from an active state to an idle state.

[0225] Step 409: The management device detects whether the termination condition of data migration is met.

[0226] Due to the large number of storage devices in a computing system, a single data migration may not achieve the desired effect of reducing computing system power consumption. Therefore, the above data migration process can be executed repeatedly until the desired effect is achieved. The termination condition can be set based on the desired effect; when it is detected that the termination condition is currently met, the management device can determine that the current data migration has achieved the desired effect.

[0227] The specific possible implementation of the termination condition can be found in the relevant description of step 302 in the embodiment shown in FIG3 , which will not be repeated here.

[0228] Among them, after determining that a data migration is completed, the management device can detect whether the termination condition of the data migration is met; if not, it means that the data migration needs to continue, and the management device returns to execute step 405; if it is met, it is determined that the data migration is completed, and the management device terminates the data migration cycle.

[0229] Optionally, after executing step 405 and determining that the triggering condition for data migration is met, the management device may determine that the current data migration is complete after a preset maximum migration time has elapsed. Optionally, after executing step 408 and sending a migration instruction to the second storage device, the management device may determine that the current data migration is complete after the maximum migration time has elapsed.

[0230] Optionally, the management device may proactively query the utilization of the second storage device, and when detecting that the utilization of the second storage device is 0, determine that the current data migration is completed.

[0231] Optionally, the management device is responsible for migrating the data in the second storage device to the first storage device. The management device may determine that the current data migration is completed after writing the last byte of the data in the second storage device to the first storage device.

[0232] Step 410: The management device updates the operation status table of the storage device.

[0233] The management device maintains a storage device operation status table, which records the operation status of each local memory and CXL storage device in the computing system, such as whether the storage device is active or idle. After the termination conditions of data migration are met, the management device can update the operation status table based on the operation status of each storage device after data migration.

[0234] Please refer to Figures 5 and 6, which are comparison diagrams of storage device utilization before and after two types of data migration when local memory participates in data migration.

[0235] As shown in Figure 5, the management device is connected to and manages storage devices 1 through 4 and the local memory. Before data migration, the utilization rates of storage device 1, storage device 2, storage device 3, storage device 4, and local memory are 70%, 37%, 65%, 30%, and 40%, respectively. Storage devices 1 through 4 and the local memory are all active and have the same specifications and capacities.

[0236] The management device can migrate data based on utilization, specifically:

[0237] The storage device 1 with the highest utilization is obtained as the first storage device, and the storage device 4 with the lowest utilization is obtained as the second storage device; then the data in the storage device 4 is migrated to the storage device 1. At this time, the storage device 1 is full and the utilization of the storage device 4 is 0.

[0238] Then, the storage device 3 with the highest utilization among the storage devices whose remaining capacity is not 0 is obtained as the first storage device, and the storage device 2 with the lowest utilization among the storage devices whose utilization is not 0 is obtained as the second storage device, and then the data in the storage device 2 is migrated to the storage device 3.

[0239] After storage device 3 is full, there is still data in storage device 2. At this time, the local memory with the highest utilization among the storage devices with non-zero remaining capacity can be obtained as the first storage device, and the storage device 2 with the lowest utilization among the storage devices with non-zero utilization can be obtained as the second storage device, and then the data in storage device 2 can be migrated to the local memory.

[0240] After the above data migration process, a utilization diagram after data migration is obtained, as shown in FIG5 . Specifically, the utilization of storage device 1 is 100%, the utilization of storage device 2 is 0%, the utilization of storage device 3 is 100%, the utilization of storage device 4 is 0%, and the utilization of local memory is 42%. Meanwhile, storage devices 2 and 4, whose utilization is 0%, enter an idle state.

[0241] At this time, the management device may determine whether the termination condition of the data migration is met according to the current utilization of each storage device, and update the current operation status of each storage device into the operation status table.

[0242] As shown in Figure 6, the management device is connected to and manages storage devices 1 through 4 and the local memory. Before data migration, the utilization rates of storage device 1, storage device 2, storage device 3, storage device 4, and local memory were 15%. Storage devices 1 through 4 and the local memory are all active and have the same specifications and capacities.

[0243] The embodiment shown in FIG6 differs from the embodiment shown in FIG5 in that the local memory is the designated first storage device. Based on this, the management device can perform data migration based on utilization, specifically:

[0244] Use local memory as the first storage device and storage devices 1 to 4 as the second storage device; migrate data from storage device 1, storage device 3, storage device 4 and storage device 2 to local memory in descending order of utilization.

[0245] After the above data migration process, a utilization diagram after data migration is obtained as shown in Figure 5. Specifically, the utilization of storage devices 1 to 4 is 0%, the utilization of local memory is 90%, and the storage devices 1 to 4 with a utilization of 0% enter an idle state.

[0246] At this time, the management device may determine whether the termination condition of the data migration is met according to the current utilization of each storage device, and update the current operation status of each storage device into the operation status table.

[0247] Please refer to FIG7 , which is a comparison chart of storage device utilization before and after data migration when the local memory does not participate in data migration.

[0248] As shown in Figure 7, the management device is connected to and manages storage devices 1 through 4 and the local memory. Before data migration, the utilization rates of storage device 1, storage device 2, storage device 3, storage device 4, and local memory are 70%, 35%, 65%, 30%, and 40%, respectively. Storage devices 1 through 4 and the local memory are all active and have the same specifications and capacities.

[0249] The management device can migrate data based on utilization, specifically:

[0250] Storage device 1 with the highest utilization is selected as the first storage device, and storage device 4 with the lowest utilization is selected as the second storage device. The data in storage device 4 is then migrated to storage device 1. At this point, storage device 1 is full, and the utilization of storage device 4 is 0. Next, storage device 3 with the highest utilization among the storage devices with non-zero remaining capacity is selected as the first storage device, and storage device 2 with the lowest utilization among the storage devices with non-zero utilization is selected as the second storage device. The data in storage device 2 is then migrated to storage device 3.

[0251] After the above data migration process, a utilization diagram after data migration is obtained, as shown in FIG7 . Specifically, the utilization of storage device 1 is 100%, the utilization of storage device 2 is 0%, the utilization of storage device 3 is 100%, the utilization of storage device 4 is 0%, and the utilization of local memory is 40%. Meanwhile, storage devices 2 and 4, whose utilization is 0%, enter an idle state.

[0252] At this time, the management device may determine whether the termination condition of the data migration is met according to the current utilization of each storage device, and update the current operation status of each storage device into the operation status table.

[0253] Step 411: The computing device sends a second storage space allocation request to the management device.

[0254] After the management device completes at least one data migration, when the memory space requested by the application is insufficient, the computing device may send a second storage space allocation request to the management device to request more storage space.

[0255] The second storage space allocation request includes a second configuration capacity, where the second configuration capacity refers to the size of the storage space that the management device needs to reallocate to the computing device.

[0256] Optionally, when the application program fails in requesting the operating system to allocate the second configured capacity from the local memory in the active state, the second storage space allocation request is sent to the management device.

[0257] Step 412: The management device determines a second target storage space from active storage devices according to the second storage space allocation request.

[0258] After completing at least one data migration, the management device begins to control the power consumption of the computing system to make it as low as possible. Specifically, the management device begins to control as many storage devices as possible to be in an idle state and as few storage devices as possible to be in an active state. Therefore, after receiving the second storage space allocation request, the management device can determine from the active CXL storage devices a second target storage device whose remaining capacity is greater than or equal to the second configured capacity, or a combination of second target storage devices whose sum of remaining capacity is greater than or equal to the second configured capacity, and then determine the second target storage space from the available storage space of the second target storage device or the combination of second target storage devices.

[0259] Specifically, the management device may query the operation status table of the storage devices updated in step 410 to determine the CXL storage devices in the active state.

[0260] The size of the second target storage space is equal to the second configured capacity.

[0261] For other possible determination methods, please refer to the part of determining the first target storage space in step 403 of this embodiment. The first target storage space is equivalent to the second target storage space in step 412 and will not be described in detail here.

[0262] Step 413: The management device allocates the second target storage space to the computing device.

[0263] After determining the second target storage space, the management device may directly allocate the second target storage space in the CXL storage device to the computing device; and then return address information of the second target storage space to the computing device.

[0264] In an embodiment of the present application, a management device executes a data migration cycle and updates the operation status table of the storage device in real time. Therefore, when a computing device requests to allocate storage space of a CXL storage device, the management device can control the second target storage space allocated to the computing device to be concentrated on the active CXL storage device, so that the CXL storage device that remains in the idle state continues to operate with low power consumption, thereby maintaining the low power consumption state of the computing system and saving energy.

[0265] In an embodiment of the present application, the local memory of the computing device may not participate in data migration, making it easier for the storage devices participating in data migration to unify models, specifications, capacity or power consumption, thereby making the process of the management device determining the first storage device and the second storage device simpler and more accurate.

[0266] As shown in Figure 8, Figure 8 is a schematic diagram of a possible logical structure of a management device provided in an embodiment of the present application. Management device 800 includes: a processor 801, a communication interface 802, a memory 803, and a bus 804. The processor 801, communication interface 802, and memory 803 are interconnected via bus 804. In an embodiment of the present application, processor 801 is used to control and manage the operations of computing device 800. For example, processor 801 is used to run FM management software and execute the steps in any of the embodiments of Figures 3, 4, or 7 and / or other processes used for the technology described herein. Communication interface 802 is used to support communication between management device 800; specifically, communication interface 802 may include a first interface and a second interface, wherein the first interface is used to connect to a computing device, and the second interface is used to connect to a storage device in the CXL storage pool. Memory 703 is used to store program code and data of management device 800.

[0267] Among them, the processor 801 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component or any combination thereof. It can implement or execute the various exemplary logic blocks, modules and circuits described in conjunction with the disclosure of the embodiments of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and the like. The bus 804 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in Figure 8, but this does not mean that there is only one bus or one type of bus.

[0268] The management device 800 shown in FIG. 8 may be applied to the computing system shown in FIG. 1 a , FIG. 1 b or FIG. 2 .

[0269] In another embodiment of the present application, a computing system is provided, comprising: a computing device, a management device, and a CXL storage pool. The CXL storage pool includes multiple storage devices. The computing device is connected to the management device. The management device is configured to allocate and manage storage space in the CXL storage pool. The management device is configured to implement the storage space management method described in the embodiment of FIG. 3 or 4 .

[0270] In another embodiment of the present application, a computer-readable storage medium is also provided, in which computer-executable instructions are stored. When at least one processor of the device executes the computer-executable instructions, the device executes the storage space management method described in the embodiment of Figure 3 or Figure 4 above.

[0271] In another embodiment of the present application, a computer program product is also provided, which includes computer execution instructions, which are stored in a computer-readable storage medium; at least one processor of the device can read the computer execution instructions from the computer-readable storage medium, and at least one processor executes the computer execution instructions so that the device executes the storage space management method described in the embodiment of Figure 3 or Figure 4 above.

[0272] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the embodiments of this application.

[0273] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0274] In the several embodiments provided in the embodiments of the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0275] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0276] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0277] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

Claims

1. A storage space management method, characterized in that The method is applied to a management device, which is used to manage a Compute Express Link (CXL) storage pool and computing devices. Both the computing devices and the CXL storage pool include storage devices, and the storage devices include a first storage device and a second storage device. The method includes: Determine the first storage device and the second storage device, where the target parameter of the first storage device is greater than that of the second storage device, and the remaining capacity of the first storage device is greater than or equal to the used space capacity of the second storage device. The target parameter includes utilization rate, specification capacity, ratio of specification capacity to operating power consumption, or priority. Migrate the data in the second storage device to the first storage device, and switch the second storage device from the active state to the idle state to reduce the power consumption of the second storage device.

2. The method according to claim 1, wherein The determining the first storage device and the second storage device includes: Determine the storage device with the smallest target parameter as the second storage device; Determine the first storage device from the storage devices other than the second storage device.

3. The method according to claim 1, wherein The target parameter is the utilization rate; The determining the first storage device and the second storage device includes: Determine the storage device with a utilization rate less than or equal to a first threshold as the second storage device, and mark the storage device with a utilization rate greater than the first threshold as an active storage device; Determine the first storage device from the active storage devices.

4. The method according to claim 1, wherein The storage devices in the CXL storage pool have the same specification capacity, and the first storage device and the second storage device are both storage devices in the CXL storage pool; The determining the first storage device and the second storage device includes: Obtain the sum of the used space capacities of all storage devices in the CXL storage pool; Divide the sum of the used space capacities by the specification capacity to obtain a calculation result, and round up the calculation result to obtain the minimum number K; Determine K storage devices in the CXL storage pool as the first storage device, and determine that the storage devices in the CXL storage pool other than the first storage device are all the second storage devices.

5. The method according to claim 4, characterized in that, The determining K storage devices in the CXL storage pool as the first storage device includes: Obtain the utilization rate of each storage device in the CXL storage pool; Sort the storage devices in the CXL storage pool from high to low according to the utilization rate, and determine the first K storage devices in the sorting result as the first storage device.

6. The method according to any one of claims 1-5, characterized in that, Before the determining the first storage device and the second storage device, or after the switching the second storage device from the active state to the idle state, the method further includes: Determine whether the trigger condition for data migration is met. The trigger condition includes that the power consumption of the computing system and the storage management cost do not reach the minimum, and / or the average utilization rate of the storage devices in the active state in the computing system does not reach a third threshold. The computing system includes the computing devices, the management device, and the CXL storage pool. If the condition is satisfied, trigger the step of determining the first storage device and the second storage device.

7. The method according to claim 3, characterized in that After switching the second storage device from the active state to the idle state, the method further includes: Determine whether a trigger condition for data migration is satisfied, where the trigger condition includes that the utilization rate of any of the active storage devices is less than or equal to a second threshold; If the condition is satisfied, determine the active storage device with the utilization rate less than or equal to the second threshold as the second storage device, and delete the active storage device flag of the second storage device; Trigger the step of determining the first storage device from the active storage devices.

8. The method according to any one of claims 1-7, characterized in that, Both the first storage device and the second storage device are storage devices in the CXL storage pool; or at least one of the first storage device and the second storage device is a storage device of the computing device.

9. The method according to any one of claims 1-8, characterized in that, After migrating the data in the second storage device to the first storage device, the method further includes: Receive a storage space allocation request sent by the computing device; In response to the storage space allocation request, allocate the storage space of the storage device in the active state to the computing device.

10. A management device, characterized in that, The management device includes: a processor, the processor is coupled to a memory, and at least one computer program instruction is stored in the memory, and the at least one computer program instruction is loaded and executed by the processor so that the management device implements the method according to any one of claims 1-9.

Citation Information

Patent Citations

  • Data processing method and device applied to storage node, equipment and storage medium

    CN115599304A

  • Data processing method and device, processor and hybrid memory system

    CN115904212A

  • Storage management method and computing device

    CN116700612A

  • Memory system and computing system including the same

    CN117075795A

  • Storage space management method and management equipment

    CN118069575A