Storage space allocation method, FM management unit and computing system
Through the FM management unit of the CXL storage pool, the average capacity allocation method is used to allocate the storage space in the CXL storage pool to nodes evenly, solving the problem that nodes cannot meet the memory space requirements in traditional computing architecture, and improving performance and storage space utilization.
Patent Information
- Application Number
- CN202311413506.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-27
- Publication Date
- 2025-04-29
AI Technical Summary
In traditional computing architecture, nodes can only use the memory space provided by the memory directly connected to themselves, and cannot meet the node's memory space needs.
Through the FM management unit of the CXL storage pool, the average capacity allocation method is used to allocate the storage space in the CXL storage pool to the nodes evenly, ensuring that the nodes can use as many storage channels as possible to read and write data.
It realizes allocating the memory space provided by the CXL storage pool as much as possible to the node, improving performance and reducing the storage space utilization problem caused by excessive load of a single storage device.
Smart Images

Figure CN119902694A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computing devices, and in particular to a storage space allocation method, a FM management unit and a computing system. Background Art
[0002] In traditional computing architecture, nodes are connected to storage via a bus, and nodes can only use the memory space provided by the storage connected to the node. In scenarios where nodes need more memory space, this solution cannot meet the node's demand for memory space. Summary of the invention
[0003] The embodiment of the present application provides a storage space allocation method, an FM management unit and a computing system, which can allocate the memory space provided by as many storage devices as possible in the CXL storage pool to the node, thereby improving performance. The technical solution is as follows.
[0004] In a first aspect, a storage space allocation method is provided, the method being applied to an FM management unit of a CXL storage pool, the FM management unit being used to allocate storage space in the CXL storage pool, comprising: receiving a storage space allocation request from a first node, the storage space allocation request comprising an initial configuration capacity, the initial configuration capacity indicating a capacity corresponding to a storage space that needs to be allocated from the CXL storage pool to the first node, the CXL storage pool comprising a plurality of storage devices; determining an average capacity based on a current configuration capacity and the number of storage devices whose remaining capacity in the CXL storage pool is not zero, the current configuration capacity being a difference between the initial configuration capacity and a capacity corresponding to the storage space that has been allocated to the first node by the FM management unit; and allocating the storage space of the CXL storage pool to the first node based on the average capacity.
[0005] In the method provided in the first aspect, the mean capacity is determined according to the initial configuration capacity included in the storage space allocation request of the first node and the number of storage devices with non-zero remaining capacity in the CXL storage pool, and the storage space in the CXL storage pool is allocated to the storage devices based on the mean capacity, so as to achieve average distribution of the storage space in the CXL storage pool, which helps to allocate the memory space provided by as many storage devices in the CXL storage pool as possible to the nodes, so that the storage space required by the first node is distributed on as many storage devices in the CXL storage pool as possible, so that the first node can use as many storage channels as possible to read and write data, which is conducive to full utilization of memory bandwidth, thereby improving performance.
[0006] In addition, since the storage space is evenly distributed, the probability of allocating the storage space of a single storage device to the first node, which results in an overload on the single storage device, is reduced, and the overall storage space utilization of each storage device in the CXL storage pool is improved.
[0007] In some implementations, allocating storage space of the CXL storage pool to the first node based on the mean capacity includes: traversing all storage devices in the CXL storage pool, determining first storage devices in the CXL storage pool whose remaining capacity is greater than the mean capacity and second storage devices whose remaining capacity is less than the mean capacity and greater than zero, and allocating storage space corresponding to the mean capacity and the remaining capacity of each first storage device and each second storage device to the first node, respectively.
[0008] In some embodiments, after allocating each first storage device and each second storage device to the first node according to the mean capacity and the remaining capacity respectively, the method further includes: determining the current configuration capacity; when the current configuration capacity is not zero, updating the mean capacity, and based on the mean capacity, allocating the storage space of the CXL storage pool to the first node again; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero; when the current configuration capacity is zero, ending the storage space allocation to the first node.
[0009] In some implementations, allocating storage space of the CXL storage pool to the first node based on the average capacity includes: traversing all storage devices in the CXL storage pool, determining first storage devices in the CXL storage pool whose remaining capacity is greater than the average capacity, and allocating storage space corresponding to the average capacity of each first storage device to the first node.
[0010] In some embodiments, after allocating the storage space corresponding to each first storage device according to the mean capacity to the first node, the method further includes: determining the current configuration capacity; when the current configuration capacity is not zero, updating the mean capacity, and based on the mean capacity, allocating the storage space of the CXL storage pool to the first node again; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero; when the current configuration capacity is zero, ending the allocation of storage space to the first node.
[0011] In some embodiments, based on the mean capacity, allocating storage space of the CXL storage pool to the first node includes: traversing multiple storage devices in the CXL storage pool in sequence; when determining a first storage device whose remaining capacity is greater than the mean capacity, allocating the storage space of the first storage device corresponding to the mean capacity to the first node, and updating the current configuration capacity; when determining a second storage device whose remaining capacity is less than the mean capacity and greater than zero, allocating the storage space of the second storage device corresponding to the remaining capacity to the first node, and updating the current configuration capacity; or, when determining a second storage device whose remaining capacity is less than the mean capacity and greater than zero, not allocating the storage space corresponding to the remaining capacity of the second storage device to the first node.
[0012] In some embodiments, after completing a round of allocating storage space of the CXL storage pool to the first node, the method further includes: determining a current configuration capacity, and when the current configuration capacity is not zero, updating a mean capacity, and allocating storage space of the CXL storage pool to the first node again based on the mean capacity; the mean capacity is a ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero; and when the current configuration capacity is zero, ending the storage space allocation to the first node.
[0013] In some embodiments, the method further includes: if the total remaining capacity of the multiple storage devices is less than the initial configuration capacity, sending a configuration error message to the first node, the total remaining capacity refers to the sum of the remaining capacity of each storage device in the multiple storage devices.
[0014] In a second aspect, a FM management unit is provided, the FM management unit comprising: a processor, the processor being coupled to a memory, the memory storing at least one computer program instruction, the at least one computer program instruction being loaded and executed by the processor, so that the FM management unit implements the method of the first aspect or any optional method of the first aspect.
[0015] In a third aspect, a FM management unit is provided, where the FM management unit is used to allocate storage space in a CXL storage pool, including:
[0016] a receiving unit, configured to receive a storage space allocation request from a first node, the storage space allocation request including an initial configuration capacity, the initial configuration capacity indicating a capacity corresponding to a storage space that needs to be allocated to the first node from a CXL storage pool, the CXL storage pool including a plurality of storage devices;
[0017] a determining unit, configured to determine the average capacity based on a current configured capacity and the number of storage devices with non-zero remaining capacity in the CXL storage pool, wherein the current configured capacity is a difference between the initial configured capacity and a capacity corresponding to the storage space that has been allocated by the FM management unit to the first node;
[0018] The allocation unit is configured to allocate storage space of the CXL storage pool to the first node based on the average capacity.
[0019] In some embodiments, the allocating unit is configured to traverse all storage devices in the CXL storage pool, determine first storage devices having a remaining capacity greater than an average capacity and second storage devices having a remaining capacity less than the average capacity and greater than zero in the CXL storage pool, and allocate storage space corresponding to the average capacity and the remaining capacity of each first storage device and each second storage device to the first node, respectively.
[0020] In some embodiments, after each first storage device and each second storage device are allocated to the first node according to the mean capacity and the remaining capacity respectively, the determination unit is further used to determine the current configuration capacity; when the current configuration capacity is not zero, the mean capacity is updated, and based on the mean capacity, the storage space of the CXL storage pool is allocated to the first node again; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero; when the current configuration capacity is zero, the storage space allocation to the first node is terminated.
[0021] In some implementations, the allocating unit is configured to traverse all storage devices in the CXL storage pool, determine first storage devices in the CXL storage pool whose remaining capacity is greater than the average capacity, and allocate storage space corresponding to the average capacity of each first storage device to the first node.
[0022] In some embodiments, the determination unit is further used to determine the current configuration capacity; when the current configuration capacity is not zero, update the mean capacity, and based on the mean capacity, allocate the storage space of the CXL storage pool to the first node again; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero; when the current configuration capacity is zero, end the allocation of storage space to the first node.
[0023] In some embodiments, the determination unit is further used to sequentially traverse multiple storage devices in the CXL storage pool; when determining a first storage device whose remaining capacity is greater than the average capacity, allocate the storage space corresponding to the average capacity of the first storage device to the first node, and update the current configuration capacity; when determining a second storage device whose remaining capacity is less than the average capacity and greater than zero, allocate the storage space corresponding to the remaining capacity of the second storage device to the first node, and update the current configuration capacity; or, when determining a second storage device whose remaining capacity is less than the average capacity and greater than zero, do not allocate the storage space corresponding to the remaining capacity of the second storage device to the first node.
[0024] In some embodiments, the determination unit is further configured to determine the current configuration capacity after completing a round of allocation of storage space of the CXL storage pool to the first node, and to update the mean capacity if the current configuration capacity is not zero, and to allocate the storage space of the CXL storage pool to the first node again based on the mean capacity; the mean capacity is the ratio of the current configuration capacity to the number of storage devices whose remaining capacity is not zero; and to end the allocation of storage space to the first node if the current configuration capacity is zero.
[0025] In some embodiments, the apparatus further includes: a sending unit configured to send a configuration error message to the first node if the total remaining capacity of the plurality of storage devices is less than the initial configuration capacity, the total remaining capacity referring to the sum of the remaining capacity of each storage device in the plurality of storage devices.
[0026] In a fourth aspect, a computing system is provided, the computing system comprising: a node, an FM management unit and a CXL storage pool, the CXL storage pool comprising multiple storage devices, the node being connected to the FM management unit, the FM management unit being used to allocate and manage storage space in the CXL storage pool; the FM management unit being used to implement the method provided in the first aspect or any optional manner of the first aspect.
[0027] In a fifth aspect, a computer-readable storage medium is provided, wherein at least one instruction is stored in the storage medium. When the instruction is executed on a computer, the computer executes the method provided in the first aspect or any optional manner of the first aspect.
[0028] In a sixth aspect, a computer program product is provided, which includes one or more computer program instructions. When the computer program instructions are loaded and executed by a computer, the computer executes the method provided by the first aspect or any optional method of the first aspect.
[0029] In the seventh aspect, a chip is provided, comprising a memory and a processor, wherein the memory is used to store computer instructions, and the processor is used to call and run the computer instructions from the memory to execute the method in the above-mentioned first aspect and any possible implementation of the first aspect.
[0030] Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 It is a schematic diagram of an application scenario provided by an embodiment of the present application;
[0032] Figure 2 is a schematic diagram of the hardware architecture of a computing system provided in an embodiment of the present application;
[0033] Figure 3 is a flow chart of a storage space allocation method provided by this embodiment;
[0034] Figure 4 is a flow chart of a memory allocation method provided by this embodiment;
[0035] Figure 5 is a flow chart of another storage space allocation method provided by this embodiment;
[0036] Figure 6 is a flow chart of another storage space allocation method provided in an embodiment of the present application;
[0037] Figure 7 This is a flowchart of another storage space allocation method provided in an embodiment of the present application. DETAILED DESCRIPTION
[0038] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings.
[0039] The following is an explanation of some terminology concepts involved in the embodiments of the present application.
[0040] (1) Compute Express Link (CXL) protocol
[0041] The CXL protocol is an open industrial standard, based on the peripheral component interconnect express (PCIe) protocol, for high-bandwidth, low-latency device interconnection. The CXL protocol can be used to connect devices such as central processing units (CPUs), accelerators, memory caches, and smart network cards. The CXL protocol can be used in scenarios such as artificial intelligence (AI) and high-performance computing. CXL reuses three types of protocols based on PCIe 5.0, namely CXL.io, CXL.cache, and CXL.memory. The CXL.io protocol is used to detect devices, configurations, register accesses, and interrupts that support the CXL protocol. The CXL.cache protocol is used for the server to access the memory of the processor inside the server and cache the memory from the processor. The CXL.memory protocol is used for the server's processor to access the server's internal memory.
[0042] (2) Fabric management (Fabric management or Fabric manager or Fabric memory, FM)
[0043] FM is a management software used to manage and allocate storage space in the CXL storage pool to provide the required memory space to the node. The hardware entity responsible for running FM includes many situations. For example, FM is run by a CXL switch chip (CXL switch), or by a CXL memory expansion card (CXL expander), or by a CXL controller; or by a CPU; or by a baseboard manager controller (BMC). In this embodiment, the hardware devices running FM are collectively referred to as FM management units. The FM management unit may include management software and hardware devices running the management software. For example, the FM management unit may be a CXL controller, a CXL switch chip, or other control chips inside a node, or an independent hardware device, such as an independent server or other terminal device.
[0044] (3) Node
[0045] A node is a smallest computing unit in a computing device. A node may include components such as a central processing unit (CPU), a south bridge chip, an internal memory, a PCIe device, and their peripheral circuits. For example, a node may include one or more CPUs and / or one or more GPUs. A computing device may be a server, or a tablet computer, a personal computer, a mobile phone, or other terminal device. A node may also include an accelerator, such as 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, referred to as smart network card). A node may also be a virtual node. In this embodiment, the node supports the CXL protocol, and the node may communicate with a storage device via the CXL protocol.
[0046] (4) Storage devices
[0047] Storage devices are used to provide storage space for nodes to save data. Storage devices can be memory or hard disk. Memory can be either random access memory or read-only memory (ROM). For example, random access memory is dynamic random access memory (DRAM) or storage class memory (SCM). DRAM is a semiconductor memory, and like most random access memory (RAM), it is a volatile memory device. SCM is a composite storage technology that combines the characteristics of traditional storage devices and memory. Storage class memory can provide faster read and write speeds than hard disks, but has slower access speeds than DRAM and is cheaper than DRAM. Memory can also include other random access memories, such as static random access memory (SRAM). Read-only memory is, for example, programmable read only memory (PROM) or erasable programmable read only memory (EPROM). Exemplarily, the storage device is a dual in-line memory module or a dual in-line memory module (DIMM) memory stick. For example, the storage device is a module composed of 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).
[0048] The embodiment of the present application relates to an application scenario of a CXL storage pool, which may include storage space provided by multiple storage devices. In order to distinguish different storage devices, "first storage device" and "second storage device" are used to distinguish and describe multiple different storage devices. Since the processing logic of FM for memory allocation from each storage device is similar, in order to describe clearly and concisely, the embodiment of the present application focuses on the process of how FM allocates the storage space of the first storage device to the node as an example. The process of FM allocating memory space to other storage devices other than the first storage device can refer to the process of allocating the memory space of the first storage device to the node.
[0049] (5) Configuration capacity
[0050] Configuration capacity can also be called demand capacity, and configuration capacity indicates the capacity of storage space that a node needs to obtain from the CXL storage pool. Configuration capacity can also be understood as the capacity of storage space that FM needs to allocate to the node. In some implementations of the present application, if the configuration capacity required by the node is relatively large, and the storage space capacity allocated by FM to the node at one time is less than the configuration capacity, then FM needs to continue to allocate storage space in the CXL storage pool to the node, that is, FM needs to allocate storage space to the node multiple times. Every time FM allocates memory space to the node, FM updates the configuration capacity, for example, FM subtracts the capacity of the allocated memory space from the initial configuration capacity as the updated configuration capacity, so as to determine how much memory space needs to be further allocated to the node through the updated configuration capacity. Configuration capacity should be understood as the current configuration capacity, that is, the configuration capacity can be a dynamic variable that changes with the stage in which FM allocates storage space from the storage pool to the first node. For example, the current configuration capacity may be the initial configuration capacity indicated in the storage space application request sent by the first node to the FM; the current configuration capacity may also be the configuration capacity for the second round of storage space allocation to the first node after FM completes one round of storage space allocation for the first node; the current configuration capacity may be the configuration capacity for the next round of storage space allocation to the first node after FM completes another round of storage space allocation for the first node. Exemplarily, the above-mentioned initial configuration capacity may be understood as the total configuration capacity required for the first node, and the current configuration capacity may be the initial configuration capacity minus the storage capacity allocated by FM to the first node for the first time, and the current configuration capacity may also be the initial configuration capacity minus the total storage capacity allocated by FM to the first node for the first and second times. It should be understood that the size of the current configuration capacity is associated with the number of times the FM management unit allocates storage space to the first node.
[0051] (6) Remaining capacity
[0052] The remaining capacity can also be called unallocated capacity, free capacity or available capacity. The remaining capacity refers to the capacity of the memory space in the storage device that has not been allocated to the node for use. For example, the remaining capacity is the capacity of the free memory space in the storage device. For example, the specification capacity of the storage device is 100G. If 20G of the memory space with a capacity of 100G has been allocated to the node, the remaining capacity of the storage device is 80G.
[0053] (7) Mean capacity
[0054] The mean capacity is the ratio between the configuration capacity and the number of storage devices in the CXL storage pool. For example, the mean capacity is the ratio between the configuration capacity and the number of storage devices with remaining capacity (remaining capacity greater than zero) in the CXL storage pool. In some implementations of the present application, when the remaining capacity of a storage device is greater than the mean capacity, a storage device can allocate storage space to the node for use according to the mean capacity each time it allocates storage space, thereby achieving average distribution of storage space. In scenarios where the configuration capacity required by the node is relatively large, involving multiple rounds of storage space allocation processes, the current configuration capacity is a dynamic variable. Based on this, the mean capacity will also change with the change of the current configuration capacity, and the mean capacity should also be understood as the current mean capacity. In order to distinguish the mean capacities corresponding to different rounds of storage space allocation processes, "mean capacity", "second mean capacity" and "third mean capacity" can be used to distinguish and describe different mean capacities. For example, the average capacity is the average capacity based on the first round of memory allocation process, which corresponds to the first configuration capacity, and the average capacity can be the ratio between the first configuration capacity and the number of storage devices with remaining capacity in the CXL storage pool before the first round of memory allocation. The second average capacity is the average capacity based on the second round of storage space allocation process, which corresponds to the current configuration capacity, and the second average capacity can be the ratio between the configuration capacity based on which the second round of allocation is based (for example, the difference between the first configuration capacity and the storage capacity allocated to the first node in the first round) and the number of storage devices with remaining capacity in the CXL storage pool after the first round of storage space allocation.
[0055] (8) Specifications and capacity
[0056] The specification capacity may also be referred to as the total capacity, nominal capacity or rated capacity. The specification capacity is, for example, the theoretical maximum capacity set for the storage device by the manufacturer of the storage device during the production of the storage device. For example, the specification capacity of the storage device is 32G, 64G, 128G or 256G.
[0057] (9) Total remaining capacity
[0058] The total remaining capacity refers to the sum of the remaining capacity of each storage device in the multiple storage devices in the CXL storage pool. The total remaining capacity is obtained by, for example, adding the remaining capacity of each storage device in the CXL storage pool. The total remaining capacity is used to indicate the total amount of memory that has not yet been allocated in the CXL storage pool. For example, the CXL storage pool includes storage device A, storage device B, and storage device C. The remaining capacities of storage device A, storage device B, and storage device C are 10G, 20G, and 30G, respectively. Then the total remaining capacity is 10G+20G+30G=60G, indicating that the total amount of memory that has not yet been allocated in the CXL storage pool is 60G.
[0059] (10) Storage Channel
[0060] A storage channel refers to a channel between a node and a storage device. A storage channel is used to transmit data or instructions between a node and a storage device. For example, if the CXL storage pool is a memory pool, a storage channel is a memory channel, and a memory channel is a channel between a processor (such as a CPU) and a memory. For another example, a storage channel is a channel between a CPU and a hard disk.
[0061] (11) Storage channel bandwidth
[0062] The bandwidth of a storage channel refers to the amount of data that can be transmitted in a storage channel per unit time. The larger the bandwidth of a storage channel, the faster the storage read and write speed, thereby speeding up data access and processing and improving performance. Improving the bandwidth of a storage channel is particularly important for applications that require large data throughput and high-performance computing, such as data centers, scientific computing, and massively parallel computing.
[0063] (12) Storage capacity table
[0064] The storage capacity table is used to record the information of all storage devices in the CXL storage pool. The information of the storage device includes the identification of the storage device and the capacity parameters of the storage device. The identification of the storage device is used to identify the corresponding storage device. The identification of the storage device is, for example, the serial number of the storage device. The capacity parameters of the storage device include but are not limited to the capacity specification of the storage device, the used capacity of the storage device, and the remaining capacity of the storage device. In a possible implementation, the storage capacity table is also used to record the total capacity parameters of all storage devices in the CXL storage pool. The total capacity parameters include the total specification capacity, the total allocated capacity, and the total remaining capacity.
[0065] In a possible implementation of generating a storage capacity table, when the FM management unit is started, the FM detects all storage devices connected to the FM, the FM reads the information of the corresponding storage device from each storage device, and the FM generates a memory capacity table based on the information of all storage devices. The memory capacity table includes information of all storage devices connected to the FM. The FM saves the memory capacity table when it is powered off, so that the memory capacity table can be read the next time it is powered on and the storage capacity table can continue to be used for storage space allocation. The FM can save the memory capacity table on the persistent storage of the hardware device where the FM is located, and the FM can also save the storage capacity table on the persistent storage of the node.
[0066] Exemplarily, the storage capacity table is shown in Table 1 below. The items in the row of ellipsis ... in Table 1 represent the specification capacity, allocated capacity and remaining capacity of storage devices that are not shown in Table 1 but exist. The items in the row of summary represent the total specification capacity, total allocated capacity and total remaining capacity of m storage devices in the CXL storage pool. The total specification capacity is obtained by summing the specification capacity (128G) of storage device 1, the specification capacity (256G) of storage device 2, ..., and the specification capacity (256G) of storage device m. The total allocated capacity is obtained by summing the allocated capacity (6G) of storage device 1, the allocated capacity (6G) of storage device 2, ..., and the allocated capacity (6G) of storage device m. The total remaining capacity is obtained by summing the remaining capacity (122G) of storage device 1, the remaining capacity (250G) of storage device 2, ..., and the remaining capacity (250G) of storage device m.
[0067] Table 1 Storage capacity table
[0068] Storage device identification Specifications and capacity Allocated capacity Remaining capacity Storage device 1 128G 6G 122G Storage Device 2 256G 6G 250G …… …… …… …… Storage device m 256G 6G 250G Summary Total specification capacity Total allocated capacity Total remaining capacity
[0069] When the remaining capacity of a storage device is greater than the average capacity, since FM adopts an average allocation method, the allocated capacity of each storage device recorded in Table 1 is equal, and the allocated capacity of each storage device is 6G.
[0070] The following is an example of an application scenario of the embodiment of the present application.
[0071] The embodiments of the present application can be applied to a scenario where FM allocates storage space to a node from a CXL storage pool. Figure 1 (a) or Figure 1 In (b), the storage space in the CXL storage pool is, for example, the memory space provided by the memory stick. Figure 1 In (c), the storage space in the CXL storage pool includes the memory space provided by the memory stick, the storage space provided by the SSD, and the storage space provided by the HDD. A node may be a server, wherein a server may include one or more CPU computing modules and / or one or more GPU computing modules. Alternatively, multiple nodes may be deployed on a server, wherein a node is a CPU computing module or a GPU computing module.
[0072] To facilitate understanding, the following first introduces the CXL storage pooling technology.
[0073] In the architecture of traditional computing devices, such as Figure 1As shown in (a), the memory sticks are directly connected to the nodes through the bus, and the nodes can only use the memory space provided by the memory sticks directly connected to them. For example, node 1 is directly connected to memory sticks 1, 2, and 3, and node 2 is directly connected to memory sticks 4, 5, and 6. The memory space of any memory stick among memory sticks 1, 2, and 3 can only be allocated to node 1 and cannot be allocated to node 2. The memory space of any memory stick among memory sticks 4, 5, and 6 can only be allocated to node 2 and cannot be allocated to node 1. As a result, each node can only use the memory space provided by three memory sticks. When the CPU in the node needs to use the memory space, the memory capacity and bandwidth available to the CPU will be limited by the number of CPU pins, and the memory capacity and bandwidth are difficult to expand.
[0074] The problem of memory capacity and bandwidth being limited by CPU pins can be solved by establishing a storage pool system through the CXL protocol. For example, a large number of memory sticks are combined into a storage pool, and then the CXL protocol is used to connect the storage pool to the CPUs in multiple nodes, so that the memory space in the storage pool can be allocated to multiple CPUs as needed. For example, please refer to the attached Figure 1 (b), attached Figure 1 (b) shows a scenario of interconnecting multiple nodes and storage pools based on a CXL controller. Memory bars 1, 2 to 6 form a storage pool. A portion of the interfaces of the CXL controller are connected to each of the memory bars 1, 2 to 6, and another portion of the interfaces of the CXL controller are connected to node 1 and node 2, respectively. The CXL controller can run FM management software, and the CXL controller manages the allocation of memory space of each of the memory bars 1, 2 to 6 based on the FM management software. The CXL controller can allocate the memory space of any memory bar among memory bars 1, 2 to 6 to node 1 or node 2, so that node 1 and node 22 can share the memory space of 6 memory bars. Since each node connected to the CXL controller can share the memory space of all memory bars connected to the CXL controller, the problem of memory capacity and bandwidth being limited by CPU pins in the node is solved to a certain extent.
[0075] For example, please refer to the attached Figure 1 (c), attached Figure 1 (c) shows a scenario where multiple nodes and storage pools are interconnected based on a CXL switch. FM management software can also be run on the CXL switch to manage and allocate memory space in the storage pool. In addition, the CXL switch can provide more interfaces than the CXL controller. The CXL switch can connect to multiple nodes and storage pools, allowing more nodes to share the storage space in the storage pool.
[0076] Taking the example of a storage pool implemented based on CXL (hereinafter referred to as CXL storage pool) consisting of memory bars, 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 the storage space in the SSD to the node 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, the type of each storage device in the CXL storage pool is a DIMM memory bar. Alternatively, the type of each storage device in the CXL storage pool can also be different. For example, the type of some storage devices in the CXL storage pool is a DIMM memory bar, and the type of another storage device is a hard disk.
[0077] In addition, the storage space in the CXL storage pool may be allocated to a CPU in a node, or may be allocated to other hardware entities, for example, the storage space in the CXL storage pool may be allocated to an accelerator or a GPU.
[0078] In summary, please refer to the attached Figure 2 , attached Figure 2 1 is a schematic diagram of the hardware architecture of a computing system 10 provided in an embodiment of the present application. Figure 2 The computing system 10 shown may be a Figure 1 The system shown in (b) or the attached Figure 1 The system shown in (c).
[0079] The computing system 10 may include n nodes, a FM management unit 200 , 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.
[0080] Nodes 1-n can be used to process business data. Nodes 1-n can use the storage space provided by the CXL storage pool to store business data. For further explanation of nodes, please refer to (3) in the above terminology concept section. Figure 2 The nodes 1-n in the may include one or more CPU computing modules or one or more GPU computing modules.
[0081] Nodes 1-n may be n servers, or multiple nodes may be deployed in one server, for example, nodes 1-4 may be deployed in one server, and nodes 5-n may be deployed in other servers. The corresponding quantity relationship between nodes and servers is not specifically limited here. In some embodiments, n nodes from node 1 to node n are deployed on a server, and the CXL storage pool is a storage system independent of the server.
[0082] The FM management unit 200 is a hardware entity that runs the FM 221. The FM management unit 200 is, for example, an attached Figure 1 The CXL controller shown in (b) of FIG. 1 is also shown in FIG. Figure 1 The CXL switch shown in (c) of FIG. 2 is a CXL switch. The FM management unit 200 is also a CXL storage expansion card, such as a CXL memory expansion card. The FM management unit can also be an independent computing device, such as a server or a terminal device.
[0083] The FM management unit 200 may further include a memory 220, an interface 230, an interface 240 and a bus 250. The memory 220, the interface 230 and the interface 240 are communicatively connected via the bus 250.
[0084] The bus 250 may be a peripheral component interconnect (PCI) bus, a PCIe bus, or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 2 The bus 250 is represented by only one line, but it does not mean that there is only one bus or one type of bus. The bus 250 may include a path for transmitting information between various components of the FM management unit 200 (eg, the processor 210, the memory 220, the interface 230, and the interface 240).
[0085] The interface 230 uses a transceiver module such as, but not limited to, a network interface card, a transceiver, an optical module, etc. to realize communication between the FM management unit 200 and the n nodes. The interface 230 is, for example, one interface, or the interface 230 includes a combination of multiple interfaces. The present embodiment does not limit the number of interfaces 230.
[0086] The interface 240 uses a transceiver module such as, but not limited to, a network interface card, a transceiver, or an optical module to implement communication between the FM management unit 200 and the m storage devices in the CXL storage pool. In a possible implementation, the interface 240 is a PCIe interface, each of the m storage devices in the CXL storage pool includes a PCIe interface, and the PCIe interface of the FM management unit 200 is connected to the m storage devices in the CXL storage pool via a PCIe bus. The interface 240 is, for example, a single interface, or a combination of multiple interfaces. The present embodiment does not limit the number of interfaces 240.
[0087] The CXL storage pool is a storage device independent of the nodes 1 - n; the FM management unit may be independent of the server deployed by the nodes 1 - n and the CXL storage pool, for example, the FM management unit may be another computing device or a terminal device.
[0088] The FM management unit may also be integrated with each storage device in the CXL storage pool in the same device. For example, the FM management unit 200 may also be integrated with each storage device in the CXL storage pool in a storage server storage pool.
[0089] Currently, there is a lack of solutions for how to allocate storage space in a CXL storage pool. Based on this, an embodiment of the present application provides a method for evenly allocating storage space provided by each storage device in a CXL storage pool. For example, FM can determine the mean capacity based on the capacity (configuration capacity) of the storage space that needs to be allocated to a node (e.g., node 1) and the number of memories that can provide storage space. When the available capacity of a storage device is greater than the mean capacity, a node is allocated storage space in the storage device that is equal to the mean capacity. In this way, each storage device can provide the same storage space capacity for the node, achieving even distribution. Among them, the configuration capacity of the storage space that needs to be allocated to the node can be determined according to the actual business processing situation of the node. For example, when node 1 needs to process more business data, it indicates that node 1 needs more storage space. At this time, the configuration capacity is larger, such as 1024G. At this time, node 1 can send a storage space application request to the FM management unit, and the storage space application request is used to instruct the FM management unit to allocate 1024G storage space to node 1 from the CXL storage pool; for another example, when node 1 needs to process less business data, it indicates that node 1 needs less storage space. At this time, the configuration capacity is smaller, such as 128G. At this time, node 1 can send a storage space application request to the FM management unit, and the storage space application request is used to instruct the FM unit to allocate 128G storage space to node 1 from the CXL storage pool.
[0090] For example, please refer to the attached Figure 2 , Figure 2 In the figure, the storage space is represented by a rectangle. When the remaining capacity of a memory is greater than the average capacity, the capacity of the memory space allocated by FM from storage device 1, storage device 2, ... to storage device m is the same. Figure 2 The two rectangles filled with patterns represent the capacity of the storage space allocated from the storage device. The above storage space can be a memory space, which can include the memory space and the storage space in the hard disk.
[0091] In addition, due to the different storage space usage of each storage and the limitations of their respective capacity specifications, it is possible that the remaining capacity of some storage devices is less than the average capacity, while the remaining capacity of other storage devices is greater than the average capacity. For example, the CXL storage pool includes 10 storage devices, of which the remaining capacity of 2 storage devices is less than the average capacity, and the remaining capacity of the other 8 storage devices is greater than the average capacity. In this case, the 2 storage devices with remaining capacity less than the average capacity cannot each allocate the average capacity to node 1.
[0092] In order to solve the above problem, when FM is performing the storage space allocation process, if it is determined that the remaining capacity of a storage device is less than the average capacity, FM can allocate memory space according to the remaining capacity of the storage device, so that the storage device provides all the remaining storage space of the device to the first node (for example, node 1), and the storage space that the storage device lacks to provide (the difference between the average capacity and the remaining capacity of the storage device) is provided by other storage devices in the CXL storage pool. Alternatively, if it is determined that the remaining capacity of a storage device is less than the average capacity, FM skips the storage device in this round of memory allocation process, and FM does not allocate storage space to the storage device in this round of storage space allocation process. After the storage space is allocated from all storage devices, FM determines the total capacity of the allocated storage space compared to the configured capacity. FM can update the configured capacity based on the missing capacity, so that the current configured capacity is equal to the missing capacity (the difference between the first configured capacity and the storage capacity allocated to the first node), and FM performs the second round of storage space allocation process based on the updated configured capacity. In executing the second round of storage space allocation process, FM can still use the average allocation method until the capacity of the allocated storage space meets the needs of the nodes (such as the total capacity of the storage space allocated in all rounds is equal to the first configuration capacity).
[0093] FM evenly distributes the storage space provided by each storage device in the CXL storage pool, thereby allocating as much storage space provided by as many storage devices in the CXL storage pool as possible to the node. For example, the memory space provided by all storage devices with remaining capacity greater than zero is allocated to the node, so that as many storage devices as possible in the CXL storage pool participate in the memory allocation process for the same node. Therefore, when the node uses the allocated storage space to read and write data, the node can concurrently access the storage space provided by multiple storage devices, thereby improving the performance of the node in reading and writing data.
[0094] In addition, since the storage space of multiple storage devices is allocated to the node, it is avoided that the storage space of only one storage device is allocated to the node, which results in the node only being able to use the storage channel between the storage device to read and write data, resulting in insufficient bandwidth resources and limited performance. The node can use multiple storage channels between the node and multiple storage devices to read and write data. For example, after the storage space of m storage devices is allocated to the same node, the data generated by the node can be concurrently transmitted to the m storage devices through m storage channels, thereby improving the bandwidth utilization of the storage channels.
[0095] In addition, since the storage space provided by each storage device with a remaining capacity greater than the average capacity in the CXL storage pool for the same node has the same capacity, which is the average capacity, the probability that the node accesses each storage device with a remaining capacity greater than the average capacity is the same, and therefore the probability that the storage channel between the node and each storage device with a remaining capacity greater than the average capacity is used is the same, thereby making the load of each storage channel relatively balanced.
[0096] Attached Figure 3 FIG. 1 is a flow chart of a storage space allocation method provided by this embodiment. Figure 3 The method shown includes the following steps S301 to S312.
[0097] Attached Figure 3 The method shown can be applied to the Figure 1 For example, the system architecture shown in (b) is Figure 3 In the method shown, the FM management unit is attached Figure 1 (b) Software running in the CXL controller, attached Figure 3 The node in the method shown is attached Figure 1 (b) Node 1 or Node 2.
[0098] Attached Figure 3 The method shown can also be applied to the Figure 1 The system architecture is shown in (c). Figure 3 In the method shown, the FM management unit may be an attached Figure 1 (c) Software running in the CXL switch, attached Figure 3 The node in the method shown is attached Figure 1 The node in (c).
[0099] Attached Figure 3 The method shown can also be applied to the Figure 2 For example, the attached Figure 3 In the method shown, FM is the Figure 2 The software running in the FM management unit 200 is attached Figure 3 The node in the method shown is attached Figure 2 Any node among the n nodes, attached Figure 3In the method shown, the CXL storage pool is attached Figure 2 CXL storage pool.
[0100] Step S301: The first node sends a storage space application request to the FM.
[0101] The storage space application request is used to request the FM to allocate storage space for the first node. The storage space application request may also be called a storage space allocation request. The first node sends a storage space application request to the FM, thereby indicating that the first node needs to obtain storage space, thereby triggering the FM to perform a storage space allocation process. The storage space application request may be a message in the encapsulation format specified by the CXL protocol.
[0102] In one possible implementation, the storage space application request is used to indicate the initial configuration capacity requested to be allocated by the first node. The configuration capacity represents the total storage space capacity required by the first node, and the configuration capacity can be understood as the size of the storage space required by the first node. FM can allocate storage to the first node according to the initial configuration capacity. . For example, if the first node needs to obtain a storage space with a capacity of 60G, the storage space application request sent by the first node to FM can carry 60G, where 60G is a specific example of the configuration capacity. Since the storage space application request is used to indicate the configuration capacity required by the first node, FM can accurately determine the capacity of the storage space that needs to be allocated to the first node based on the configuration capacity.
[0103] Optionally, the storage space application request further includes a group identifier, which is used to identify a corresponding storage device group in the CXL storage pool. Since the storage space application request includes the group identifier, the FM can be instructed to allocate storage space to the first node from a specified storage device group.
[0104] In step S302, FM receives a storage space allocation request, obtains the total remaining capacity of multiple storage devices in the CXL storage pool, and compares the total remaining capacity of the CXL storage pool with the configured capacity. If the total remaining capacity of the CXL storage pool is greater than or equal to the initial configured capacity, FM further executes step S303. If the total remaining capacity of the CXL storage pool is less than the initial configured capacity, FM further executes step S312.
[0105] In one possible implementation of determining the total remaining capacity, FM searches the storage capacity table based on the identifier of each storage device in the CXL storage pool to obtain the remaining capacity of each storage device in the CXL storage pool; FM accumulates the remaining capacity of each storage device in the CXL storage pool to obtain the total remaining capacity. In another possible implementation of determining the total remaining capacity, the memory capacity table itself records the total remaining capacity of all storage devices in the CXL storage pool, and FM searches the storage capacity table to obtain the total remaining capacity of all storage devices in the CXL storage pool. In yet another possible implementation of determining the total remaining capacity, FM searches the storage capacity table based on the group identifier to obtain the remaining capacity of each storage device in the CXL storage pool that belongs to the storage device group corresponding to the group identifier, and FM accumulates the remaining capacity of each storage device in the storage device group to obtain the total remaining capacity of the storage device group.
[0106] Step S303 : FM determines the mean capacity based on the current configured capacity and the number of storage devices with non-zero remaining capacity in the CXL storage pool.
[0107] It should be noted that if the initial configuration capacity requested for allocation by the first node is small, one round of storage space allocation can meet the storage demand of the first node, and the current capacity is the initial configuration capacity at this time; if the initial configuration capacity requested for allocation by the first node is large, one round of storage space allocation cannot meet the storage demand of the first node. Then, when allocating storage space to the first node in the first round, FM first determines the mean capacity based on the initial configuration capacity and the number of storage devices with non-zero remaining capacity in the CXL storage pool. In subsequent rounds of storage space allocation, FM determines the mean capacity again based on the updated current configuration capacity and the number of storage devices with non-zero remaining capacity in the CXL storage pool.
[0108] The average capacity is the ratio between the first configuration capacity and the number of storage devices with remaining capacity. For example, the initial configuration capacity in the storage space application request sent by the first node to the FM is 60G, and there are 10 storage devices with remaining capacity in the CXL storage pool. The FM determines the average capacity to be 60G / 10=6G. In other words, the FM divides the configuration capacity required by the first node according to the number of storage devices with remaining capacity, thereby determining the storage space that each storage device needs to provide.
[0109] In one possible implementation, the FM searches the memory capacity table based on the identifier of each storage device in the CXL storage pool to obtain the remaining capacity of each storage device recorded in the storage capacity table. The FM determines the number of storage devices whose remaining capacity is not 0. The FM determines a ratio between the first configured capacity and the number of storage devices with remaining capacity as the mean capacity.
[0110] Considering that a storage device with a remaining capacity of 0 cannot provide storage space, by determining the mean capacity based on the number of storage devices with remaining capacity, the determined mean capacity is more accurate than directly determining the mean capacity based on the number of all storage devices.
[0111] After the FM determines the average capacity, if the remaining capacity of a storage device is greater than the average capacity, the FM evenly allocates storage space provided by multiple storage devices with remaining capacity in the CXL storage pool to the first node according to the average capacity. Exemplarily, for each storage device with remaining capacity in the CXL storage pool, the FM allocates storage space of the storage device with the capacity of the average capacity to the first node.
[0112] Step S304 , the FM traverses all storage devices in the CXL storage pool, and determines a first storage device in the CXL storage pool whose remaining capacity is greater than the average capacity and a second storage device whose remaining capacity is less than the average capacity and greater than zero.
[0113] Regarding the order of storage devices traversed by FM in each round of memory allocation, in a possible implementation, FM traverses the storage devices in the order of the identifications of the storage devices in the CXL storage pool. For example, if the identification of the storage device is the number of the storage device, for example, FM traverses the storage devices in the order of storage device 1→storage device 2→storage device 3 from small to large numbers, thereby determining the first storage device and the second storage device in the CXL storage pool.
[0114] In addition, there may be a situation where there is no second storage device in the CXL storage pool. For example, the remaining capacity of each storage device in the CXL storage pool is greater than the average capacity. As a specific example, the initial capacity requested for allocation by the first node is 10G, the CXL storage pool includes 10 storage devices, and the remaining capacity of each storage device is 20G. FM determines that the average capacity is 10G / 10=1G. In the process of traversing all storage devices in the CXL storage pool, FM determines that the remaining capacity (20G) of each storage device in the CXL storage pool is greater than the average capacity (1G). This situation is equivalent to each storage device in the CXL storage pool being a first storage device, and there is no second storage device.
[0115] Step S305 , FM allocates storage space corresponding to the average capacity and the remaining capacity of each first storage device and each second storage device to the first node.
[0116] For the first storage device whose remaining capacity is greater than or equal to the average capacity, the remaining capacity of the first storage device is sufficient, and the first storage device can provide storage space according to the average capacity. For example, the average capacity is 6G, the remaining capacity of the first storage device is 10G, and FM allocates 6G of storage space from the first storage device, so that the remaining capacity of the first storage device is updated to 4G after this storage space allocation.
[0117] In a possible implementation, after FM allocates the storage space with the average capacity in the first storage device to the first node, FM updates the remaining capacity of the first storage device to the difference between the remaining capacity of the first storage device and the average capacity. Exemplarily, FM searches the storage capacity table based on the identifier of the first storage device, and updates the remaining capacity of the first storage device corresponding to the identifier of the first storage device recorded in the memory capacity table to the difference between the remaining capacity of the first storage device and the average capacity. Exemplarily, the average capacity is 6G, the remaining capacity of the first storage device is 10G, and the remaining capacity of the first storage device originally recorded in the storage capacity table is 10G. After FM allocates 6G of storage space from the first storage device, FM updates the remaining capacity of the first storage device recorded in the storage capacity table to 4G.
[0118] By executing the step of updating the remaining capacity in the storage capacity table, the remaining capacity recorded in the storage capacity table can be dynamically updated along with the storage space allocation process, and the remaining capacity of each storage device can be accurately recorded, which facilitates the execution of subsequent storage capacity allocation steps.
[0119] In addition, if the remaining capacity of the second storage device is less than the average capacity, the FM allocates the second storage device to the first node according to the remaining capacity.
[0120] If there is no second storage device in the CXL storage pool, FM allocates each first storage device to the first node according to the average capacity. At this time, the first node can determine the current configuration capacity according to the total storage capacity allocated to it and the initial configuration capacity. At this time, the total storage capacity allocated to the first node is the average capacity * the number of first storage devices, and the current configuration capacity is the initial configuration capacity minus the total storage capacity allocated to the first node. As a specific example, the initial configuration capacity requested to be allocated by the first node is 60G, the CXL storage pool includes 10 storage devices, and the remaining capacity of each of the 10 storage devices is 20G. FM can determine that the average capacity is 60G / 10=6G, and FM allocates 6G of storage space in each of the 10 storage devices according to the average capacity to the first node, so that the total storage capacity allocated to the first node is 6G*10=60G. As another specific example, the initial configuration capacity requested to be allocated by the first node is 80G, the CXL storage pool includes 8 storage devices, and the remaining capacity of each storage device is 25G. FM can determine that the average capacity is 80G / 8 = 10G. FM allocates 10G of storage space in each of the 8 storage devices according to the average capacity to the first node, so that the total storage capacity allocated to the first node is 10G*8=80G.
[0121] If there are second storage devices in the CXL storage pool, FM allocates the storage capacity of each first storage device to the first node according to the average capacity, and allocates the storage capacity of each second storage device to the first node according to the remaining capacity. At this time, the first node can determine the current configuration capacity based on the total storage capacity allocated to it and the initial configuration capacity. At this time, the total storage capacity allocated to the first node is the sum of the average capacity*the number of first storage devices and the remaining capacity of all second storage devices, and the current configuration capacity is the initial configuration capacity minus the total storage capacity allocated to the first node. As a specific example, the initial configuration capacity requested by the first node is 60G, the CXL storage pool includes 10 storage devices, the remaining capacity of 9 of the 10 storage devices is 20G, and the remaining capacity of 1 storage device is 3G. FM can determine that the average capacity is 60G / 10=6G. FM allocates 6G of storage space in each of the 9 storage devices with a remaining capacity of 20G to the first node, and allocates 3G of storage space in the 1 storage device with a remaining capacity of 3G to the first node, so that the total storage capacity allocated to the first node is 6G*9+3G=57G. As another specific example, the initial configuration capacity requested by the first node is 100G, the CXL storage pool includes 10 storage devices, the remaining capacity of 8 of the 10 storage devices is 30G, and the remaining capacity of 2 of the 10 storage devices is 5G. FM can determine that the average capacity is 100G / 10=10G. FM allocates 10G of storage space in each of the 8 storage devices with a remaining capacity of 30G to the first node, and allocates 5G of storage space in each of the 2 storage devices with a remaining capacity of 5G to the first node, so that the total storage capacity allocated to the first node is 10G*8+5G*2=100G.
[0122] Step S306, determining the current configuration capacity.
[0123] In one embodiment, after a storage device allocates storage space to a first node once, FM updates the configuration capacity, for example, by subtracting the storage capacity allocated to the first node from the initial configuration capacity to determine the current configuration capacity. In other words, the current configuration capacity = initial configuration capacity - storage capacity allocated to the first node. As a specific example, the initial configuration capacity is 60G, and the memory capacity allocated to the first node is 3G. FM determines that the current configuration capacity = 60G - 3G = 57G. Based on 57G, FM can determine that 57G of memory space needs to be allocated to the first node.
[0124] Since FM allocates storage space of the average capacity from the first storage device, the storage pool can update the configuration capacity based on the average capacity and the initial configuration capacity to determine the current configuration capacity. For example, FM subtracts the average capacity from the initial configuration capacity to update the configuration capacity. The updated configuration capacity is the difference between the initial configuration capacity and the average capacity; of course, if the remaining capacity of the storage device is less than the average capacity, then the updated configuration capacity is the difference between the initial configuration capacity and the remaining capacity of the storage device.
[0125] In this way, after FM completes a round of storage space allocation, for example, a round of storage space allocation involves m storage devices, and the current configuration capacity has been reduced m times, the current configuration capacity is the initial configuration capacity minus the total storage space capacity provided by each storage device in the first round of storage space allocation. The current configuration capacity can also be understood as the difference between the total capacity of all storage spaces allocated in the first round and the initial configuration capacity. The current configuration capacity can accurately reflect the capacity of the storage space that is still lacking in the current first node.
[0126] In one embodiment, FM updates the configuration capacity only after completing a round of storage space allocation, so as to determine whether the required configuration capacity has been provided for the first node based on the updated configuration capacity, or whether the storage space allocation process needs to be further executed. In particular, considering that the storage space required by the first node may be large, the storage space allocated after FM executes a round of even storage space allocation process may not meet the needs of the first node (e.g., the total storage space capacity allocated in a round is less than the initial configuration capacity). By updating the configuration capacity once after each round of storage space allocation, the storage space still lacking in the first node after the current storage space allocation is dynamically recorded, so as to facilitate the execution of the second round of storage space allocation process.
[0127] If the remaining capacity of the second storage device is less than the average capacity, FM can allocate all the remaining storage space in the second storage device to the first node, so that the second storage device provides storage space for the first node according to the remaining capacity. For example, if the average capacity is 6G and the remaining capacity of the second storage device is 3G, FM allocates all the 3G storage space in the second storage device to the first node, so that the remaining capacity of the second storage device becomes 0, and the storage space that the second storage device should have provided but lacked (the difference between the average capacity and the remaining capacity = 6G-3G = 3G) will be provided by the first storage device in the CXL storage pool whose remaining capacity is greater than the average capacity in the next round of storage space allocation.
[0128] In another possible implementation of determining the current configuration capacity when there is a second storage device in the CXL storage pool, when FM is executing the first round of storage space allocation process, whenever the capacity of the storage space allocated from a storage device (the second storage device) is less than the mean capacity, FM determines the difference between the mean capacity and the capacity of the storage space allocated from the storage device, and the difference is equivalent to the capacity of the storage space that the storage device lacks to provide. When FM traverses each storage device whose remaining capacity is not zero and determines the second storage device, FM sums the capacity of the storage space that each second storage device lacks to provide to obtain the current configuration capacity. The current configuration capacity is the sum of the difference between the capacity of the storage space provided by each second storage device in the first round of storage space allocation and the mean capacity.
[0129] For example, in the first round of storage space allocation, there are 10 storage devices participating in the storage space allocation, the first configuration capacity is 60G, the average capacity is 6G, and two storage devices, storage device 1 and storage device 2, are the second storage devices among the 10 storage devices, and their remaining capacity is 3G, resulting in 3G of storage space being allocated from storage device 1 and storage device 2 respectively, and 6G of storage space being allocated from the other 8 storage devices other than storage device 1 and storage device 2 respectively. One calculation formula for the current configuration capacity is =60G-6G*8-3G*2=6G; another calculation formula for the current configuration capacity is
[0130] =(6G-3G)*2=6G.
[0131] In a possible implementation, after the FM management unit allocates the storage space corresponding to the remaining capacity in the first storage device to the first node, the FM updates the remaining capacity of the first storage device to zero. Exemplarily, the FM searches the storage capacity table based on the identifier of the first storage device, and updates the remaining capacity of the first storage device corresponding to the identifier of the first storage device recorded in the storage capacity table to zero. Exemplarily, the average capacity is 6G, the remaining capacity of the first storage device is 3G, and the remaining capacity of the first storage device originally recorded in the storage capacity table is 3G. After the FM allocates 3G of storage space from the first storage device, it updates the remaining capacity of the first storage device recorded in the storage capacity table to 0.
[0132] The storage pool is for the range of storage devices traversed by FM in each round of storage space allocation. In a possible implementation, FM traverses all storage devices in the CXL storage pool that are connected to FM and have non-zero remaining capacity in each round of storage space allocation process, so as to allocate the storage space of all storage devices in the CXL storage pool that are connected to FM and have non-zero remaining capacity to the first node for use. In another possible implementation, FM determines multiple target storage devices whose remaining capacity is not zero and matches the setting parameters from the CXL storage pool in each round of storage space allocation process according to the setting parameters pre-configured by the user, and FM traverses the multiple target storage devices, so as to allocate the storage space of the multiple target storage devices to the first node for use. For example, the user divides the CXL storage pool into multiple storage device groups, each storage device group includes one or more storage devices. The user allocates a corresponding group identifier to each storage device group. The storage space application request sent by the first node includes the group identifier, thereby specifying to allocate storage space from the storage devices in the corresponding storage device group. The setting parameters configured by the user are, for example, the type of storage device. The type of storage device is, for example, a hard disk or a memory. The parameters of the target storage device match the set parameters, for example, the type of the storage device is the same as the type of the pre-set storage device. For example, the user sets the type of storage device participating in the storage space allocation to be memory, and FM determines a storage device of type memory with a non-zero remaining capacity from the CXL memory pool as the target storage device. FM can traverse all storage devices with a non-zero remaining capacity in the storage device group corresponding to the group identifier, so as to allocate the storage space of all storage devices with a non-zero remaining capacity in the storage device group to the first node for use.
[0133] Step S307, FM determines whether the current configuration capacity is zero.
[0134] FM can use whether the current configuration capacity is zero as a trigger condition for whether to end the storage space allocation (or whether to perform a second round of memory allocation). For example, if the current configuration capacity is zero, it means that the total capacity of the storage space allocated by FM for the first node has reached the initial configuration capacity, which is equivalent to the storage space allocated in the first round of storage to meet the needs of the first node. FM can end the storage space allocation process and FM does not need to perform a second round of storage space allocation.
[0135] If the current configuration capacity is not zero, it means that the total capacity of the storage space allocated by FM for the first node is less than the initial configuration capacity, which is equivalent to that the storage space allocated in the first round of storage space allocation has not yet met the needs of the first node. FM can determine that a second round of storage space allocation is needed. FM can return to execute step S303 based on the current configuration capacity (the capacity of the storage space that still needs to be allocated to the first node), thereby executing the second round of cyclic allocation of storage space. In the process of allocating storage space in the second round, FM determines the current mean capacity (second mean capacity) based on the current configuration capacity and the number of storage devices with remaining capacity among the multiple storage devices. FM redistributes the storage space provided by the multiple storage devices to the first node evenly based on the current mean capacity. In the process of evenly allocating storage space again, FM can determine the current configuration capacity (third configuration capacity) in a similar manner to step S306. If the current configuration capacity is not zero, it indicates that the total capacity of the memory space allocated in two rounds of storage has not yet met the needs of the first node. FM returns to execute step S303 based on the current configuration capacity, thereby performing a third round of storage space allocation. If the current configuration capacity is zero, it indicates that the total capacity of the storage space allocated in two rounds of storage has met the needs of the first node. FM ends the storage space allocation process.
[0136] By analogy, FM can cyclically execute at least one round of the process of evenly allocating storage space. Each round of the process of evenly allocating storage space includes steps S303 to S307. The configuration capacity based on each round of allocation can be different. The configuration capacity based on each round of allocation can be obtained by executing step S306 in the previous round of allocation. The configuration capacity based on each round of allocation can be the difference between the configuration capacity based on the previous round of allocation and the total capacity of the storage space allocated from each storage device in the previous round.
[0137] The storage devices that provide storage space in each round of allocation may be the storage devices that still have remaining capacity after the previous round of allocation. The number of storage devices that provide storage space in each round of allocation may be less than the number of storage devices that provided storage space in the previous round of allocation. For example, in the first round of allocation, 10 storage devices provide storage space, and the remaining capacity of one of the storage devices is fully allocated to the first node, and in the second round of allocation, 9 storage devices provide storage space.
[0138] The condition for the end of the loop is, for example, that the sum of the capacities of the storage spaces allocated to the first node in all rounds is greater than or equal to the first configuration capacity. For example, if the sum of the capacities of the storage spaces allocated to the first node in the first round, the capacities of the storage spaces allocated to the first node in the second round, to the capacities of the storage spaces allocated to the first node in the i-th round is greater than or equal to the first configuration capacity, then the loop can be ended after the i-th round of allocation, where i is a positive integer greater than or equal to 1.
[0139] In an exemplary scenario, the first node sends a storage space application request to FM, and the information used to indicate the configuration capacity (initial configuration capacity) carried in the storage space application request is 60G. In the process of executing the first round of storage space allocation, FM determines that there are a total of 10 storage devices with non-zero remaining capacity in the CXL storage pool, and these 10 storage devices are storage devices 0 to storage devices 9. Based on the initial configuration capacity (60G) and the number of storage devices with remaining capacity (10), FM determines that the average capacity is the ratio of the first configuration capacity to the number of storage devices with remaining capacity = 60G / 10 = 6G. FM traverses each storage device from storage device 0 to storage device 9. For each storage device currently traversed, FM determines the first storage device and the second storage device. For the first storage device, FM allocates storage space according to 6G. For example, the first storage device is storage device 0 to storage device 9, the second storage device is storage device 9, the remaining capacity of storage device 9 is 3G, and the remaining capacity of the other 9 storage devices except storage device 9 is greater than 6G. Therefore, in the first round of allocation, FM allocates 6G of memory space in each of the 9 storage devices from storage device 0 to storage device 8 to the first node, and FM allocates 3G of memory space from storage device 9 to the first node. After completing the first round of storage space allocation, FM updates the configuration capacity from the initial configuration capacity (60G) to the difference between the initial configuration capacity and the total capacity of the storage space allocated in the first round (57G) = 60G-57G=3G. The current configuration capacity can also be understood as the capacity of the storage space that storage device 9 lacks to provide, which is (mean capacity-remaining capacity of storage device 9=6G-3G=3G).
[0140] In the second round of allocation, FM determines that there are 9 storage devices with non-zero remaining capacity in the CXL storage pool, namely storage device 0 to storage device 8. Since the remaining capacity of storage device 9 is zero, storage device 9 does not participate in the second round of allocation. FM determines the current average capacity (second average capacity) to be 3G / 9=1 / 3G based on the current configuration capacity (3G) and the number of storage devices with remaining capacity (9). FM traverses each of the 9 storage devices from storage device 0 to storage device 8 to determine the first storage device and the second storage device. Assuming that at this time, the remaining capacity of the 9 storage devices from storage device 0 to storage device 8 is greater than 1 / 3G, FM determines that the 9 storage devices at this time are all first storage devices, and then FM allocates 1 / 3G of storage space from each of the 9 storage devices to the first node. In addition, if there is a second storage device with a remaining capacity less than 1 / 3G in the second round of allocation, the second round of storage space allocation will continue to be carried out using S305, which will result in the capacity of the storage space allocated in the second round being less than 3G. FM will then execute the third round of allocation process until the total capacity of the storage space allocated in all rounds reaches 60G and the allocation is terminated.
[0141] Step S312: If the total remaining capacity of the plurality of storage devices is less than the configured capacity or the configured capacity is not greater than 0, the FM generates a configuration error message, and the FM sends the configuration error message to the first node.
[0142] The configuration error message indicates that the FM has not configured storage space for the first node. For example, the configuration error message indicates that an error occurred in a memory allocation process.
[0143] If the total remaining capacity of multiple storage devices is less than the configured capacity, it indicates that the first node has requested too much storage space to be configured, and the storage space requested by the first node exceeds the total amount of storage space that FM can allocate (the total remaining capacity of all storage devices in the CXL storage pool). Even if FM allocates the total remaining capacity of all storage devices to the first node, the capacity of the allocated storage space still cannot meet the needs of the first node. In this case, FM can directly notify the first node of a configuration error without executing the storage space allocation process.
[0144] If the configured capacity is not greater than 0, it indicates that the first node does not need storage space. Therefore, when the configured capacity is not greater than 0, the FM does not need to execute the storage allocation process and can send a configuration error message to the first node.
[0145] The method provided in this embodiment evenly distributes the storage space of each storage device in the CXL storage pool to the storage devices according to the configuration capacity required by the first node, so that multiple storage devices provide storage space for the first node at the same time. In this way, the first node can concurrently access the storage space provided by the multiple storage devices, and the first node can concurrently read and write data to the storage space provided by the multiple storage devices, thereby improving performance.
[0146] In addition, since storage space is evenly allocated from each storage device, the probability of allocating storage space of only a single storage device to the first node resulting in an overload of the single storage device is reduced, and the overall storage space utilization of each storage device in the CXL storage pool is improved.
[0147] In addition, FM may use the method provided in this embodiment to allocate storage space for each first node in the first node cluster, thereby realizing an effective CXL shared storage space allocation management method, which can realize shared allocation of the CXL storage pool by multiple first nodes.
[0148] In addition, since the storage space of each storage device with remaining capacity is provided to the first node, the storage space required by the first node is distributed on as many storage devices as possible in the CXL storage pool, so that the first node can use as many storage channels as possible to read and write data, realize multi-channel concurrency of memory, and is conducive to full utilization of memory bandwidth.
[0149] In addition, since the capacity of the storage space provided by each storage device is basically the same, the capacity of the storage space provided by each storage device is likely to be the mean capacity, so that the probability of each storage channel (such as a storage channel) being used by the computing device is basically the same, so the bandwidth performance of each storage channel (such as a storage channel) is relatively balanced and stable.
[0150] In addition, when the CXL storage pool includes storage devices of various specifications, in the early stage of the use of the CXL storage pool, when the capacity of each storage device is relatively sufficient (for example, the remaining capacity of each storage device is greater than or equal to the mean capacity), the average allocation method is adopted to make the number of storage devices participating in the storage space allocation as large as possible, which helps the first node to concurrently access the storage space provided by as many storage devices as possible, thereby improving performance. When the capacity of the CXL storage pool is tight (for example, the number of storage devices with remaining capacity is small), storage space can still be allocated from the storage devices in the CXL storage pool for the first node to use, thereby maintaining good read and write performance.
[0151] In the attached Figure 3In the embodiment shown, the second storage device still participates in the storage space allocation process, and the storage space provided by the second storage device is less than the memory space provided by the first storage device whose remaining capacity is greater than the average capacity, and the capacity of the memory space provided by the second storage device is the remaining capacity of the second storage device. In another possible implementation, the second storage device does not need to participate in this round of memory allocation process. Figure 4 Description of embodiments.
[0152] Attached Figure 4 FIG. 1 is a flowchart of another memory allocation method provided by this embodiment. Figure 4 The method shown in the attached Figure 3 The difference between the methods shown is that Figure 3 In the method shown, step S305 is replaced by Figure 4 Step S405 in the method shown. Figure 4 For other steps in the method shown, please refer to the attached Figure 3 Description of the method.
[0153] Step S405 , FM allocates the storage space corresponding to the average capacity of each first storage device to the first node, and FM skips each second storage device in the current round of storage space allocation.
[0154] For the second storage device whose remaining capacity is less than the average capacity, it indicates that the remaining capacity of the second storage device is insufficient. In this case, FM can cancel the step of allocating storage space from the second storage device once, which is equivalent to FM skipping the second storage device in this cycle. FM can allocate storage space from the first storage device whose remaining capacity is greater than the average capacity in the CXL storage pool. For example, FM determines that the remaining capacity of the first storage device is greater than or equal to the average capacity, and FM allocates the storage space with the capacity of the average capacity in the first storage device to the first node.
[0155] Whether FM skips a storage device again in the second round of storage space allocation process can be determined based on whether the remaining capacity of the storage device is greater than or equal to the current average capacity (second average capacity). For example, in the process of FM allocating storage space in the second round, for a first storage device whose remaining capacity is greater than or equal to the current average capacity, FM can allocate the storage space of the first storage device with the capacity of the current average capacity to the first node. For a second storage device whose remaining capacity is less than the current average capacity, FM skips the second storage device in the second round of allocation.
[0156] By analogy, whether FM skips a storage device in any round of storage space allocation process can be based on whether the current remaining capacity of the storage device is greater than or equal to the mean capacity based on this round of storage space allocation. If the current remaining capacity of a storage device is greater than or equal to the mean capacity based on this round of storage space allocation, FM allocates the storage space corresponding to the mean capacity in the storage device to the first node. If the current remaining capacity of a storage device is less than the mean capacity based on this round of storage space allocation, FM skips the storage device in this round of allocation.
[0157] For example, the first configuration capacity in the storage space application request sent by the first node to the FM is 60G. During the first round of storage space allocation, the FM determines the average capacity to be 6G based on the first configuration capacity (60G). There are 10 storage devices with non-zero remaining capacity in the CXL storage pool, of which there is one second storage device with a remaining capacity of 3G. During the first round of storage space allocation, the FM skips the second storage device because the remaining capacity (3G) of the second storage device is less than the average capacity (6G), resulting in the lack of 6G storage space not being allocated to the first node. During the second round of storage space allocation, the FM determines the average capacity to be 0.6G based on the current configuration capacity (6G). There are 10 storage devices with non-zero remaining capacity in the CXL storage pool. If their remaining capacities are all greater than the average capacity at this time, it is determined that these 10 storage devices are all first storage devices. The FM allocates the storage space with a capacity of 0.6G in each first storage device to the first node. At this time, the current configuration capacity is zero, and the storage space allocation of the first node is completed.
[0158] Figure 5 This is a flowchart of another storage space allocation method provided in an embodiment of the present application. Figure 5 The method shown is Figure 3 The method shown is similar, except that in each round of storage space allocation, FM compares the remaining capacity of a storage device with the mean capacity. If the remaining capacity of the storage device is greater than the mean capacity, FM determines that the storage device is the first storage device, and FM allocates the storage space corresponding to the mean capacity in the first storage device to the first node, and then FM updates the current configuration capacity, and the updated configuration capacity is the difference between the initial configuration capacity and the mean capacity. If the remaining capacity of the storage device is less than the mean capacity, FM determines that the storage device is the second storage device, and allocates the storage space corresponding to the remaining capacity in the second storage device to the first node, and then FM updates the current configuration capacity, and the updated configuration capacity is the difference between the initial configuration capacity and the remaining capacity.
[0159] Figure 6 This is a flowchart of another storage space allocation method provided in an embodiment of the present application. Figure 6 The method shown is Figure 4 The method shown is similar, except that in each round of storage space allocation, FM compares the remaining capacity of a storage device with the mean capacity. If the remaining capacity of the storage device is greater than the mean capacity, FM determines that the storage device is the first storage device, FM allocates the storage space corresponding to the mean capacity in the first storage device to the first node, and then FM updates the current configuration capacity, and the updated configuration capacity is the difference between the initial configuration capacity and the mean capacity. If the remaining capacity of the storage device is less than the mean capacity, FM determines that the storage device is the second storage device, and FM skips the second storage device.
[0160] Figure 7 This is a flowchart of another storage space allocation method provided in an embodiment of the present application. Figure 7 The method is applied to the FM management unit of the CXL storage pool, and the FM management unit is used to allocate storage space in the CXL storage pool. Figure 7 The method shown includes S701 to S703.
[0161] S701: The FM management unit receives a storage space allocation request from a first node.
[0162] S702: The FM management unit determines the average capacity based on the current configured capacity and the number of storage devices with non-zero remaining capacity in the CXL storage pool.
[0163] S703: The FM management unit allocates storage space of the CXL storage pool to the first node based on the average capacity.
[0164] In some implementations, allocating storage space of the CXL storage pool to the first node based on the mean capacity includes:
[0165] Traversing all storage devices in the CXL storage pool, determining a first storage device in the CXL storage pool whose remaining capacity is greater than the average capacity and a second storage device whose remaining capacity is less than the average capacity and greater than zero,
[0166] Allocate storage spaces corresponding to the average capacity and the remaining capacity of each first storage device and each second storage device to the first node.
[0167] In some implementations, after allocating each first storage device and each second storage device to the first node according to the average capacity and the remaining capacity, the method further includes:
[0168] Determine the current configuration capacity;
[0169] When the current configuration capacity is not zero, the mean capacity is updated, and based on the mean capacity, the storage space of the CXL storage pool is again allocated to the first node; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero;
[0170] When the current configuration capacity is zero, storage space allocation to the first node is terminated.
[0171] In some implementations, allocating storage space of the CXL storage pool to the first node based on the average capacity includes: traversing all storage devices in the CXL storage pool, determining first storage devices in the CXL storage pool whose remaining capacity is greater than the average capacity, and allocating storage space corresponding to the average capacity of each first storage device to the first node.
[0172] In some implementations, after allocating storage space corresponding to the average capacity of each first storage device to the first node, the method further includes:
[0173] Determine the current configuration capacity;
[0174] When the current configuration capacity is not zero, the mean capacity is updated, and based on the mean capacity, the storage space of the CXL storage pool is again allocated to the first node; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero;
[0175] When the current configuration capacity is zero, storage space allocation to the first node is terminated.
[0176] In some implementations, allocating storage space of the CXL storage pool to the first node based on the mean capacity includes:
[0177] Traverse multiple storage devices in the CXL storage pool in sequence;
[0178] When determining a first storage device whose remaining capacity is greater than the average capacity, allocating storage space of the first storage device corresponding to the average capacity to the first node, and updating the current configuration capacity;
[0179] When determining a second storage device whose remaining capacity is less than the average capacity and greater than zero, allocating the storage space of the second storage device corresponding to the remaining capacity to the first node, and updating the current configuration capacity;
[0180] Alternatively, when a second storage device having a remaining capacity that is less than the average capacity and greater than zero is determined, the storage space corresponding to the remaining capacity of the second storage device is not allocated to the first node.
[0181] In some implementations, after completing a round of allocating storage space of the CXL storage pool to the first node, the method further includes:
[0182] Determine the current configuration capacity, and if the current configuration capacity is not zero, update the mean capacity, and allocate the storage space of the CXL storage pool to the first node again based on the mean capacity; the mean capacity is the ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero;
[0183] When the current configuration capacity is zero, storage space allocation to the first node is terminated.
[0184] Attached Figure 3 The method shown or attached Figure 4 The method shown can be executed after the node loads the memory. Exemplarily, the process of loading the memory space of the node includes the following steps 1 to 4.
[0185] Step 1: The basic input / output system (BIOS) of the node detects the CXL device.
[0186] CXL devices include FM and CXL-enabled storage devices.
[0187] Step 2: The BIOS of the node reports the information of the detected CXL device to the operating system (OS) of the node.
[0188] Step 3: The node OS loads the CXL device as a direct access (DAX) device.
[0189] Step 4: The node sends a storage space request to FM, thus triggering the attached Figure 3 The method shown or attached Figure 4 The method shown.
[0190] In addition, FM performs additional Figure 3 The method shown or attached Figure 4 After the storage space is allocated by the method shown, FM can send the address of the storage space allocated to the node to the node. The node uses the mmap (MemoryMap) function to map the / dev / dax0.x file to the address space of the user-mode program in the node according to the address of the storage space, and manages the storage space through the user-mode program in the node.
[0191] The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referenced to each other, and each embodiment focuses on the differences from other embodiments.
[0192] A refers to B, which means that A is the same as B or A is a simple variant of B.
[0193] The terms "first" and "second" in the description and claims of the embodiments of the present application are used to distinguish different objects, rather than to describe a specific order of objects, and cannot be understood as indicating or implying relative importance. For example, the first storage device and the second storage device are used to distinguish different storage devices, rather than to describe a specific order of storage devices, and cannot be understood as the first storage device being more important than the second storage device.
[0194] In the embodiments of the present application, unless otherwise specified, "at least one" means one or more, and "a plurality" means two or more. For example, a plurality of storage devices means two or more storage devices.
[0195] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loading and executing computer program instructions on a computer, the process or function described in accordance with the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, a computer, a server or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integrations. Available media can be magnetic media, (e.g., floppy disk, hard disk, tape), optical media (e.g., DVD), or semiconductor media (e.g., solid-state hard disk Solid State Disk (SSD)), etc.
[0196] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A storage space allocation method, characterized in that: The method is applied to a FM management unit of a CXL storage pool, the FM management unit being used to allocate storage space in the CXL storage pool, and includes: receiving a storage space allocation request from a first node, the storage space allocation request including an initial configuration capacity, the initial configuration capacity indicating a capacity corresponding to a storage space that needs to be allocated to the first node from a CXL storage pool, the CXL storage pool including a plurality of storage devices; determining a mean capacity based on a current configuration capacity and the number of storage devices with non-zero remaining capacity in the CXL storage pool, wherein the current configuration capacity is a difference between the initial configuration capacity and a capacity corresponding to the storage space that has been allocated by the FM management unit to the first node; Based on the average capacity, storage space of the CXL storage pool is allocated to the first node.
2. The method according to claim 1, characterized in that The allocating storage space of the CXL storage pool to the first node based on the average capacity includes: Traversing all storage devices in the CXL storage pool, determining a first storage device in the CXL storage pool whose remaining capacity is greater than the average capacity and a second storage device whose remaining capacity is less than the average capacity and greater than zero, Allocate storage space corresponding to the average capacity and the remaining capacity of each of the first storage devices and each of the second storage devices to the first node.
3. The method according to claim 2, characterized in that After allocating each of the first storage devices and each of the second storage devices to the first node according to the average capacity and the remaining capacity, the method further includes: Determining the current configuration capacity; In the case where the current configured capacity is not zero, updating the mean capacity, and allocating storage space of the CXL storage pool to the first node again based on the mean capacity; the mean capacity is a ratio between the current configured capacity and the number of storage devices whose remaining capacity is not zero; When the current configuration capacity is zero, storage space allocation to the first node is terminated.
4. The method according to claim 1, characterized in that: The allocating storage space of the CXL storage pool to the first node based on the average capacity includes: traversing all storage devices in the CXL storage pool, determining first storage devices in the CXL storage pool whose remaining capacity is greater than the average capacity, and allocating storage space corresponding to the average capacity of each of the first storage devices to the first node.
5. The method according to claim 4, characterized in that After allocating the storage space corresponding to each of the first storage devices according to the average capacity to the first node, the method further includes: Determining the current configuration capacity; In the case where the current configured capacity is not zero, updating the mean capacity, and allocating storage space of the CXL storage pool to the first node again based on the mean capacity; the mean capacity is a ratio between the current configured capacity and the number of storage devices whose remaining capacity is not zero; When the current configuration capacity is zero, storage space allocation to the first node is terminated.
6. The method according to claim 1, characterized in that The allocating storage space of the CXL storage pool to the first node based on the average capacity includes: traversing the plurality of storage devices in the CXL storage pool in sequence; When determining a first storage device whose remaining capacity is greater than the average capacity, allocating storage space of the first storage device corresponding to the average capacity to the first node, and updating the current configuration capacity; When a second storage device is determined whose remaining capacity is less than the average capacity and greater than zero, the storage space corresponding to the remaining capacity of the second storage device is allocated to the first node, and the current configuration capacity is updated; or, when a second storage device is determined whose remaining capacity is less than the average capacity and greater than zero, the storage space corresponding to the remaining capacity of the second storage device is not allocated to the first node.
7. The method according to claim 6, characterized in that After completing a round of allocating storage space of the CXL storage pool to the first node, the method further includes: determining a current configuration capacity, and if the current configuration capacity is not zero, updating the mean capacity, and allocating storage space of the CXL storage pool to the first node again based on the mean capacity; the mean capacity being a ratio between the current configuration capacity and the number of storage devices whose remaining capacity is not zero; When the current configuration capacity is zero, storage space allocation to the first node is terminated.
8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: If the total remaining capacity of the multiple storage devices is less than the initial configuration capacity, a configuration error message is sent to the first node, and the total remaining capacity refers to the sum of the remaining capacity of each storage device in the multiple storage devices.
9. A FM management unit, characterized in that: The FM management unit comprises: 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 so that the FM management unit implements the method according to any one of claims 1 to 8.
10. A computing system, characterized in that: The computing system comprises: a node, a FM management unit and a CXL storage pool, the CXL storage pool comprises a plurality of storage devices, the node is connected to the FM management unit, the FM management unit is used to allocate and manage storage space in the CXL storage pool; the FM management unit is used to implement the method as claimed in any one of claims 1 to 8.