WO2025200445A1 - Procédé d'attribution d'espace de stockage et serveur - Google Patents
Procédé d'attribution d'espace de stockage et serveurInfo
- Publication number
- WO2025200445A1 WO2025200445A1 PCT/CN2024/129038 CN2024129038W WO2025200445A1 WO 2025200445 A1 WO2025200445 A1 WO 2025200445A1 CN 2024129038 W CN2024129038 W CN 2024129038W WO 2025200445 A1 WO2025200445 A1 WO 2025200445A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- storage
- storage space
- space
- server cluster
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
Definitions
- the present application relates to the field of server technology, and in particular to a storage space allocation method and a server.
- Hyperconvergence is an infrastructure technology that integrates computing, storage, and networking functions. Hyperconvergence uses software-defined methods to combine computing and storage resources and make them available to applications through virtualization.
- a hyperconverged cluster is a cluster of multiple servers and storage systems. Each server integrates computing, storage, and networking capabilities, and can act as a host to perform tasks related to the hyperconverged platform.
- a hyperconverged infrastructure (HCI) is a software platform based on hyperconverged clusters and a comprehensive solution built on hyperconvergence technology.
- a hyperconverged platform uses virtualization and management software to organize the computing and storage resources within the hyperconverged cluster, enabling resource sharing and management.
- an embodiment of the present application provides a storage space allocation method and server for allocating storage space for temporary files, solving the problem of improper temporary file storage affecting the operation of computing nodes or the realization of business functions.
- the configuration request is used to request registration of an external storage of the server cluster into a storage space of the server cluster;
- the storage space is allocated using the storage pool.
- the server after receiving a storage space allocation request, can allocate storage space to the computing nodes used to perform tasks corresponding to business functions based on the storage pool, thereby supporting the computing nodes in storing temporary files during task execution and achieving business functions.
- the storage pool is determined by the storage resources of the server's external storage and the storage resources of the server cluster's internal storage. Through the storage pool, storage space can be jointly provided by multiple server cluster internal storage and server cluster external storage, ignoring the problem of different storage methods for different types of storage, avoiding the inability to achieve business functions due to insufficient remaining storage space of a single storage, and improving the stability of business function implementation.
- the performing storage pooling processing on the external storage of the server cluster and the internal storage of the server cluster to obtain a storage pool includes:
- a file system is established on the logical block device to obtain the storage pool.
- the remaining available space of the server cluster's external storage and the remaining available space of the server cluster's internal storage are combined. Available space is pooled to create a storage pool, which is then used to provide storage space for compute nodes. Furthermore, the storage pool created through resource pooling can accommodate differences in storage methods between different types of storage, allowing multiple storage systems to simultaneously provide storage space.
- the server cluster external storage includes a server cluster first external storage that directly exposes a block device
- the server cluster internal storage includes a server cluster first internal storage that directly exposes a block device
- the process of exposing the remaining available space of the first external storage of the server cluster or the remaining available space of the first internal storage of the server cluster as a block device is as follows:
- the process of exposing the remaining available space of the second external storage of the server cluster or the remaining available space of the second internal storage of the server cluster as a block device is as follows:
- the virtual disk is associated with a block device in the server.
- the remaining available space is virtualized to create a corresponding virtual disk, and then a connection is established between the virtual disk and the block device in the server, thereby exposing the remaining space of the storage that does not directly expose the block device.
- allocating storage space using the storage pool includes:
- the storage space allocation request includes a temporary file size and a service function identifier
- the server can dynamically allocate temporary storage space using the storage pool according to the actual needs of the computing nodes to efficiently utilize the remaining storage space of each storage and avoid waste or insufficient storage resources.
- the administrator can flexibly adjust the allocation plan of the temporary storage space according to different business needs and allocation strategies to better meet the storage needs of different computing nodes and optimize the utilization of storage resources.
- the server can quickly determine the temporary storage space according to the allocation strategy and allocate it to the computing node to ensure that the computing node can obtain the required storage resources in a timely manner.
- the server can manage the storage space corresponding to different business functions to more effectively organize and manage the storage space and ensure data isolation and security.
- the configuration mode corresponding to the service function identifier is thin provisioning, determining a storage space from the storage pool that is larger than a first temporary storage space of the storage pool, and allocating the first temporary storage space to the computing node after zeroing the first temporary storage space;
- the configuration mode corresponding to the service function identifier is thick provisioning, determining a second temporary storage space from the storage pool, the second temporary storage space having a storage space larger than the storage space to be allocated, and allocating the second temporary storage space to the computing node after zeroing the second temporary storage space;
- a third temporary storage space storing data is determined from the storage pool, and the third temporary storage space is allocated to the computing node.
- the utilization of storage space can be effectively optimized, the performance and resource utilization efficiency of the server cluster can be improved, thereby providing a beneficial impact on the stability and reliability of the business function.
- the allocation strategy includes a correspondence between the service function identifier and the number of copies
- the method further includes:
- a storage space release request sent by the computing node is received, data in the virtual disk indicated by the storage space release request is released, and the virtual disk is deleted.
- the server after receiving a storage space release request, the server can dynamically release data in the virtual disk according to actual needs, thereby avoiding waste of storage space, reducing unnecessary storage space occupancy, and improving storage space utilization efficiency.
- the method further includes:
- the server by acquiring storage status change information for both the server cluster's external storage and the server cluster's internal storage, the server can perceive in real time changes in storage resources within the server cluster, such as increases or decreases in remaining storage space. The server can then promptly respond and update the storage pool, ensuring the real-time and accurate storage space availability of the storage pool.
- an embodiment of the present application provides a storage space allocation device, comprising:
- An acquisition module configured to respond to the configuration request and acquire storage resources stored externally by the server cluster
- the allocation module is configured to allocate storage space using the storage pool when a storage space allocation request is received.
- the processor is used to execute the computer-executable instructions stored in the memory to implement the storage space allocation method described in any embodiment of the first aspect above.
- a storage pool is a logical concept used to manage and organize storage resources. It consists of a group of physical storage devices (such as hard drives, disk arrays, tape libraries, and flash storage devices). By pooling these physical storage resources, different types of physical storage devices are integrated into a unified logical storage unit, making storage resource management more flexible and efficient.
- a storage pool can be considered a resource pool specifically designed for storage resources.
- a file system is a data structure used in computers to organize, store, and access data and directories.
- a file system is the interface between the operating system and storage devices (such as hard drives and flash memory). It allows users to store data in the form of files and organize these files into a directory structure, providing users and applications with a unified, abstract way to access and manage data.
- the embodiments of the present application can be applied in a scenario where a user calls a certain business function of a server cluster through a user terminal.
- the management node needs to call the storage node to provide storage space.
- the computing node can temporarily store the relevant files or intermediate data (i.e., temporary files) for the service function implementation in the storage space provided by the storage node, and then the computing node can provide the service function to the user. If the storage node cannot provide sufficient storage space for the computing node, that is, the remaining available space of the storage node is less than the temporary file size, the computing node will be unable to store the temporary file or unable to store all temporary files in the process of implementing the service function, which may cause the service function to fail to be implemented.
- the storage nodes include storage node 1 and storage node 2.
- Storage node 1 and storage node 2 are of different types, and both the remaining available space of storage node 1 and the remaining available space of storage node 2 are smaller than the storage space requested by the computing node, and the sum of the remaining available space of storage node 1 and the remaining available space of storage node 2 is greater than or equal to the storage space requested by the computing node.
- storage node 1 and storage node 2 are of different types, even though the sum of the remaining available space of storage node 1 and storage node 2 is greater than the storage space requested by the computing node, storage node 1 and storage node 2 cannot jointly provide storage space for the computing node. Therefore, the computing node fails to execute the task and the business function invocation fails.
- step a When the user calls a business function through the user terminal (step a), the management node executes step b and dispatches the task corresponding to the business function to a computing node for execution. During the execution of the task, the computing node executes step c to request the storage pool to allocate storage space. Since the sum of the remaining available space of storage node 1 and the remaining available space of storage node 2 is greater than the storage space requested by the computing node, and the remaining available space of storage node 1 and the remaining available space of storage node 2 are pooled into a storage pool through resource pooling, therefore, although the types of storage node 1 and storage node 2 are different, the remaining available space of storage node 1 and the remaining available space of storage node 2 can still be used through the storage pool.
- the available space collectively provides storage for the compute node.
- the storage pool executes step d to allocate storage space for the compute node.
- the compute node stores temporary files related to the business function in the storage pool's provided space. If the compute node successfully completes the task in step e and provides the user with the business function implementation, the user terminal executes step f to display the business function implementation results to the user.
- storage node 1 is SAN
- storage node 2 is RBD
- storage node 3 is LOCAL.
- the remaining available space of storage node 1, the remaining available space of storage node 2, and the remaining available space of storage node 3 can be pooled to obtain a storage pool that can be used to provide storage space.
- the management node can directly use the storage pool to allocate storage space to the computing node, so that the computing node stores temporary files in the storage space provided by the storage pool, thereby supporting the completion of the task and realizing the corresponding business function.
- the storage space allocation method provided in the embodiments of the present application is to pool the remaining available space of multiple storage nodes to obtain a storage pool, centrally manage storage resources, flexibly schedule them, and eliminate the isolation of storage resources between different types of storage nodes.
- the storage pool can utilize multiple storage nodes of different types to jointly provide temporary storage space for computing nodes based on the user's business needs, thereby supporting the implementation of business functions. This improves the utilization rate of the remaining available space of storage nodes and improves the stability of business function implementation.
- the following example illustrates the system architecture of a server cluster associated with an application scenario.
- Figure 3 is a system architecture diagram of a server cluster provided in an embodiment of the present application.
- the server cluster includes a management node, multiple computing nodes, and multiple storage nodes such as SAN, RBD, LOCAL, and NAS.
- the storage nodes shown in Figure 3 are all internal storage (also called internal storage) of the server cluster.
- the management node is used to run the storage space management and distribution system.
- the management node can provide users with the function of configuring storage nodes. After the user configures the storage node through the front-end management page displayed by the client (the electronic device used by the user), the management node can uniformly manage the storage nodes in the server cluster according to the user's configuration, such as storage node registration and verification, and is used to receive storage space allocation requests from each computing node, and distribute, monitor and release storage space according to the storage space allocation requests.
- the management node is also used to pool the remaining storage space resources of multiple storage nodes into a storage pool.
- the management node is also used to assign tasks corresponding to business functions to computing nodes.
- the computing node is used to send a storage space allocation request to the management node to apply for storage space, and use the storage space provided by the storage pool to perform tasks corresponding to business functions, providing users with corresponding business functions.
- the storage nodes shown in Figure 3 are storage resources within the server cluster. Each storage node can be used to provide storage space.
- Internal storage refers to storage nodes located within the server cluster, typically within the same local area network (LAN) as compute nodes and management nodes. Internal storage provides high-speed data access and transmission performance, allowing compute nodes to directly access data on internal storage through network protocols such as NFS, SMB/CIFS, and more.
- the management node can also expand the storage resources outside the server cluster as a storage node.
- Figure 4 is a system architecture diagram of another server cluster provided by an embodiment of the present application.
- the server cluster external storage (also referred to as external storage) can be SAN, RBD, LOCAL or NAS.
- External storage refers to a storage node located outside the server cluster, which usually communicates with the management node and computing node in the cluster through a high-speed network connection (such as Fibre Channel or Ethernet, etc.). After the external storage is registered with the management node, it can also serve as a storage node of the server cluster to provide corresponding storage space for the computing node. External storage can provide larger storage capacity and higher performance.
- the embodiment of the present application increases the overall storage capacity of the server cluster by expanding the storage nodes outside the server cluster, thereby providing more sufficient storage space for the computing nodes, reducing the impact of insufficient storage space on task execution, improving the success rate of task execution, and providing users with more stable business functions.
- FIG5 is a system architecture diagram of another server cluster provided in an embodiment of the present application.
- a node agent of a storage space management and distribution system runs in the computing node.
- the computing node When the computing node performs a task corresponding to a business function, it can apply for storage space from the management node through the node agent, and after the computing node receives the relevant information of the storage space distributed by the management node through the node agent (such as address information and storage space size, etc.), the computing node mounts the access path of the storage space in a directory of the computing node, so that the computing node accesses the storage space according to the directory, and then stores temporary files in the storage space or reads temporary files from the storage space to support the computing node.
- Compute nodes execute tasks and realize business functions.
- the storage space management and distribution system includes a platform storage space registration module, a platform storage space management module, and a platform storage space distribution module.
- the node agent includes a computing node storage space adaptation module and a computing node storage management module.
- the storage node shown in Figure 6 includes internal storage and external storage. In another implementation, the storage node may also include only internal storage.
- the storage nodes mentioned below may include both internal and external storage, or only internal storage.
- the platform storage space registration module is used to register internal storage and store relevant information configured by users through the user-side front-end management page.
- the platform storage space registration module can register the external storage as a storage node of the server cluster.
- the platform storage space registration module is also used to verify the network connectivity of storage nodes and determine the corresponding relationship between compute nodes and storage nodes.
- a server cluster may include multiple compute nodes and multiple storage nodes, and each compute node may be able to communicate with some of the multiple storage nodes. In other words, compute nodes may not be able to access all storage nodes via the network, and storage nodes may not be able to communicate with all compute nodes via the network.
- the platform storage space registration module verifies the network connectivity of each storage node, determines the compute nodes that can communicate with the storage node, and obtains a list of compute nodes corresponding to the storage node. As another implementation, the platform storage space registration module verifies the network connectivity of each compute node, determines the storage nodes that the compute node can access via the network, and obtains a list of storage nodes corresponding to the compute node.
- the platform storage space management module is used to expose the remaining available space of each storage node in the form of a block device and map multiple block devices into a logical block device.
- the platform storage space management module pools the remaining resources of the storage node by establishing a file system on the logical block device to obtain a storage pool.
- the platform storage space management module also manages the allocated storage space in the storage pool and monitors the free space and health status of the storage pool to ensure the implementation of business functions. It also obtains storage status change information for both the server cluster's external storage and the server cluster's internal storage, and updates the storage pool's storage space based on this storage status change information.
- Lazy zeroing is a special form of thick provisioning that does not require the storage pool to be immediately filled during storage allocation. Instead of zeroing out, the storage pool gradually fills the space when data is first written. When allocating storage space, the storage pool does not erase any data remaining in the space. When a compute node first writes to the storage space, the space is reset to zero as needed. This method allows for immediate allocation of the specified amount of space, while preserving data in the space until it is actually used.
- users can also configure the number of copies corresponding to the business function identifier through the front-end management page.
- the number of copies refers to the number of copies of temporary files that the computing node needs to store in the storage space when performing the tasks corresponding to the business function. For example, if the number of copies is 2, the computing node needs to store 2 temporary files in the storage space.
- the management node needs to determine the storage space size based on the number of copies and the size of the temporary files when allocating storage space for the computing node using the storage pool.
- increasing the number of copies of temporary files can improve the stability of business function implementation and avoid the inability to implement the corresponding business function due to abnormal or damaged temporary file storage.
- the front-end management page provides a configuration function for the number of copies. Users can configure the number of copies according to the importance of different business functions to themselves, providing users with more stable function implementation.
- the management node can use the storage pool to allocate storage space according to the user's configuration, and provide storage space for the computing node to support the computing node to store temporary files related to the business function in the storage space to realize the business function.
- the management node can also monitor the usage of the storage space in real time, and release the data in the storage space after the task is completed, so as to reduce unnecessary occupation of the storage node and waste of resources.
- the management node uses the storage pool to provide storage space for temporary files, effectively supports the implementation of business functions, and improves the success rate of task execution; in addition, users can configure storage nodes according to their own needs, and the management node can distribute storage space according to the user's configuration, which increases the flexibility of the server cluster.
- S901 The user terminal sends configuration information to the management node.
- users can also configure storage nodes for providing storage space, and then the management node registers these storage nodes.
- the management node may package the configuration information into a message and send it to the management node through the network.
- the management node registers the storage node according to the configuration information and stores the correspondence between the service function identifier and other options.
- the management node registers the storage node according to the configuration information and saves the correspondence between the business function identifier in the configuration information and the above-mentioned other options (such as the computing node list, storage node, configuration mode, function priority, and number of copies, etc.).
- the management node may also perform a connectivity test on the storage node.
- This connectivity test verifies that communication between the compute node and the storage node is normal and that data can be transmitted and accessed.
- the connectivity test may involve the compute node performing a simple read/write test on the storage node, such as writing test data to the storage node and then reading and verifying the correctness of the test data.
- the management node will mark the storage node as available and include the storage space it provides in the storage pool to provide storage space for the compute nodes.
- the connectivity test described above tests the network connectivity between each compute node and each storage node within the server cluster, determines the storage nodes that each compute node can access via the network, and obtains a storage node list corresponding to each compute node.
- the storage node list corresponding to a compute node includes the storage nodes that the compute node can access via the network.
- the temporary storage management and distribution system can allocate storage space to the compute node based on the storage node list corresponding to the compute node.
- S903 The management node exposes the remaining available space of the storage node as a block device.
- the remaining available space on a storage node refers to the available storage space remaining on the storage node.
- the storage space corresponding to a block device refers to the remaining available space on the storage node corresponding to that block device.
- Block devices and storage nodes have a one-to-one correspondence.
- storage nodes can be divided into two types: storage nodes that directly expose block devices (such as storage nodes that support the ISCSI protocol, also called first storage nodes) and storage nodes that do not directly expose block devices (such as storage nodes that support the NFS protocol, also called second storage nodes).
- the management node can use different methods to expose the remaining available space in the storage node as a block device.
- the management node For storage nodes that directly expose block devices, the management node associates these exposed block devices with the storage space management and distribution system. For example, for storage nodes that support the iSCSI protocol, the management node can use appropriate tools or commands to scan for storage nodes and establish connections. For example, it can scan the IP address of a storage node, discover available block devices, and add them to the server cluster's storage device list.
- the management node For storage nodes that don't directly expose block devices, the management node detects the available storage resources (i.e., remaining free space) within the storage node. Based on the detected remaining free space, the management node then uses virtualization technology to create a virtual disk, which acts as a map and proxy for the remaining free space within the storage node. Once the virtual disk is created, the management node associates the virtual disk with a block device (such as a Network Block Device (NBD)) within the management node. Using the NBD, the management node provides an access interface in the form of a block device, exposing the available resources of the storage node that doesn't directly expose block devices to the management node as block devices.
- a block device such as a Network Block Device (NBD)
- each storage node is exposed as a block device in different ways, so that the remaining available space of the storage node can be pooled for resources to achieve unified management and allocation.
- the external storage includes a first external storage that directly exposes a block device
- the internal storage includes a first internal storage that directly exposes a block device
- the process of exposing the remaining available space of the first external storage or the remaining available space of the first internal storage as a block device may be: scanning the first block device corresponding to the remaining available space in the first external storage or the first internal storage, and establishing a connection with the first block device.
- the external storage includes a second external storage that does not directly expose the block device
- the internal storage includes a second internal storage that does not directly expose the block device
- the process of exposing the remaining available space of the second external storage or the remaining available space of the second internal storage as a block device is as follows: obtaining the remaining available space of the second external storage or the remaining available space of the second internal storage, and Create a virtual disk using the remaining available space of the storage or the remaining available space of the secondary internal storage; associate the virtual disk with the block device on the management node.
- S904 The management node maps the block device to a logical block device.
- the management node can use the Device Mapper to map multiple block devices into a single logical block device.
- the Device Mapper is a kernel module that provides a framework for userspace programs to define block device behavior.
- the Device Mapper maps block devices to logical block devices by redirecting block device requests from kernel space to user space.
- the management node uses the Device Mapper to construct the dm_table and dm_target structures.
- the dm_table represents a mapping table that defines the mapping relationship between logical block device addresses and block device addresses, including information on how to map a logical block device address to a block device address.
- the dm_target represents an entry in the mapping table, describing how to map a logical block device to one or more block devices.
- the mapping table records the mapping relationship between multiple block devices and logical block devices. Once the mapping relationship is established, the logical block device can be called like a normal block device, implementing resource pooling for multiple block devices.
- S905 The management node establishes a file system on the logical block device.
- the file system refers to the file system established for the logical block device in step S904. By establishing a file system on the logical block device, data storage, access, and management functions are implemented.
- the file system manages each block device within the logical block device according to a mapping table. Each block device contains a certain amount of data and metadata information (such as file attributes and directory structure). By maintaining block device and metadata information, the file system implements operations such as storing, reading, modifying, and deleting data in the storage pool.
- Common file systems for logical block devices include the Extended File System (EXT), the Extents File System (XFS), and the Butter File System (Btrfs).
- EXT Extended File System
- XFS Extents File System
- Btrfs Butter File System
- Each of these file systems has its own unique characteristics, suited to different application scenarios and requirements.
- the EXT file system is a commonly used file system in Linux, supporting large files and directories, and online defragmentation.
- the XFS file system offers high performance and reliability, making it suitable for large-scale data storage and management.
- the management node first formats the logical block device and then uses the mkfs command to create a file system on the logical block device.
- the mkfs command is "sudo mkfs -t ext4 /dev/mapper/mylogicalvolume.”
- the management node can mount the file system on the logical block device to a specified directory and then access the file system created on the logical block device through the directory.
- the logical block device becomes a storage pool that can implement data storage, access, and management functions.
- the management node After establishing a file system on the logical block device and mounting the file system to a directory, the management node completes the resource pooling of the remaining available space of the storage nodes, integrating the remaining available space of each storage node into a storage pool, and then using the storage pool to call the remaining available space of each storage node to jointly provide storage space for the computing nodes.
- S907 The management node returns configuration completion information to the user terminal.
- the management node After the management node successfully registers each storage node and pools the remaining available space resources of each storage node into a storage pool, it can return a configuration completion message to the user end indicating successful configuration. If the connection fails or the verification fails, the configuration completion message will be returned to the user end indicating a configuration failure.
- S908 The user terminal displays the configuration result to the user.
- the remaining available space of each storage node can be managed in a unified manner.
- a storage pool is obtained by pooling the remaining available space of each storage node, and then the storage pool is used to provide storage space for the computing node.
- the above process can ignore the differences in storage methods between different types of storage nodes.
- the storage pool obtained by resource pooling can simultaneously use the remaining available space of multiple storage nodes to jointly provide storage space for the computing node, breaking through the limitation of the resource capacity of a single storage node. It avoids the problem that a storage node cannot provide storage space, resulting in the inability to realize business functions, and improves the reliability of the hyper-converged platform.
- S1002 The management node assigns tasks corresponding to business functions to computing nodes.
- the management node After receiving the service function call request sent by the user terminal, the management node assigns the task corresponding to the service function indicated by the service function identifier to the computing node, and the computing node executes the task to realize the service function.
- the management node can assign tasks based on the list of computing nodes corresponding to the business function identifier. Based on the business function, the management node determines the list of computing nodes configured by the user through the front-end management page, identifies the computing node capable of executing the task corresponding to the business function, and then assigns the task corresponding to the business function to a computing node in the computing node list.
- S1003 The computing node executes the task and sends a storage space allocation request to the management node.
- a compute node may generate a series of intermediate results that may be used in subsequent computational steps. Storing these intermediate results in temporary files facilitates subsequent computation and processing. Furthermore, temporary files allow for the temporary storage of a portion of data, improving computational efficiency and response speed.
- the storage space allocation request is used to request storage space from the storage space management and distribution system.
- the storage space allocation request includes the temporary file size and the service function identifier.
- the service function identifier is used to indicate a unique service function.
- the computing node sends a storage space allocation request to the storage node to obtain the required storage space, and then uses the storage space to execute the task and realize the business function.
- S1004 The management node allocates storage space to the computing node using the storage pool according to the storage space allocation request, and feeds back storage space information to the computing node.
- a storage pool is created by the management node by pooling the remaining available space on each storage node.
- the management node exposes the remaining available space on each storage node as a block device, maps multiple block devices into a single logical block device, and then creates a file system on this logical block device to create a storage pool.
- the management node can determine the size of the storage space that needs to be allocated to the computing node, that is, determine the size of the space to be allocated.
- the storage space to be allocated should be greater than or equal to the size of the temporary file to support the computing node to store the temporary file completely in the storage space, avoiding temporary file storage failure due to insufficient storage space.
- the management node can determine the corresponding unique business function and then allocate storage space to the compute node using the storage pool according to a pre-configured allocation policy.
- the allocation policy can include at least one of the aforementioned correspondence between business function identifiers and compute nodes, the correspondence between business function identifiers and configuration modes, the correspondence between business function identifiers and function priorities, the number of replicas corresponding to the business function identifier, and the correspondence between business function identifiers and storage nodes.
- the computing node When executing a task, the computing node stores the intermediate results or data involved as temporary files in the allocated storage space, and performs necessary calculations, processing, and other operations to complete the task and realize business functions.
- the storage pool is used to provide storage space for computing nodes, which can break the storage method barriers between different types of storage nodes, abstract each storage node, hide the implementation details of the storage node, and then ignore the problem of different storage methods of different types of storage nodes, and integrate the remaining available space of multiple storage nodes into a storage pool.
- the storage space allocation method further includes:
- a storage release request is used to request the management node to release temporary files from the storage space. After a task completes, the compute node sends a storage release request to the management node, instructing it to release the previously allocated storage space so that it can be used by other tasks or other compute nodes.
- S1007 The management node releases the storage space according to the storage space release request.
- the management node When receiving a storage space release request from a compute node, the management node will release the storage space allocated to the compute node accordingly and add the released storage space back to the available storage pool so that it can be allocated and used again later.
- the computing node After the task is completed, the computing node will return the execution results to the user end.
- the execution results may include the calculation results, output data, and task execution status information.
- the user end processes and records the received execution results for subsequent business operations or user queries.
- S1009 The user receives the execution result and performs subsequent operations according to business needs.
- the client After receiving the task execution results returned by the computing node, the client will perform subsequent operations based on business needs, such as executing subsequent business processes, updating business status, and displaying execution results to users.
- the client is responsible for effectively processing and utilizing the task execution results to meet user needs and business process requirements.
- Steps S1006-S1009 are the subsequent steps after the business function is implemented, including the release of storage space and the return of task execution results. These steps S1001-S1009 together constitute a complete business function execution process, involving multiple steps such as user request, task allocation, resource management, task processing, storage space allocation, result return, and resource release. In actual scenarios, other operational and management tasks may also be involved, such as monitoring, logging, and exception handling.
- the following further illustrates the above storage space allocation process in conjunction with FIG12 , introducing the process in which the management node distributes storage space according to the storage space allocation request, and the computing node utilizes the storage space to execute tasks.
- FIG12 is a signaling diagram of a storage space allocation method provided in an embodiment of the present application.
- the implementation process of the service function includes:
- S1201 The user terminal sends a service function call request to the management node.
- S1202 The management node assigns tasks corresponding to business functions to computing nodes.
- S1203 The computing node executing the task sends a storage space allocation request to the management node through the node agent.
- steps S1201 - S1203 reference may be made to the description of steps S1001 - S1003 .
- S1204 The management node allocates storage space according to the storage space allocation request.
- the management node After receiving a storage space allocation request, the management node determines the corresponding unique business function based on the business function identifier and determines the pre-configured allocation policy based on the business function. It then uses the storage pool to allocate storage space for the compute node. The management node allocates storage space from the storage pool that can store temporary files.
- the management node determines at least one storage node that the computing node can access over the network based on the storage node list corresponding to the computing node, and obtains a first storage node set (the first storage node set includes at least one storage node that the computing node can access over the network).
- the management node determines at least one storage node corresponding to the business function identifier based on the storage node list corresponding to the business function identifier, and obtains a second storage node set (the second storage node set includes at least one storage node corresponding to the business function identifier).
- the management node determines at least one storage node that exists in both the first storage node set and the second storage node set, and obtains a third storage node set (the third storage node set includes at least one storage node that exists in both the first storage node set and the second storage node set).
- the management node uses the block devices corresponding to the remaining storage space of each storage node in the third storage node set in the storage pool to provide storage space for the computing node.
- the management node uses the storage pool to provide storage space for the computing node according to the configuration mode corresponding to the business function identifier. If the configuration mode is thin provisioning, the size of the first temporary storage space provided by the management node to the computing node using the storage pool can be larger than the capacity of the storage pool, and the first temporary storage space is reset to zero before allocation. To the computing node;
- the management node uses the storage pool to provide the computing node with a second temporary storage space that is larger than the size of the storage space to be allocated, and the second temporary storage space is reset to zero before being allocated to the computing node.
- the management node simultaneously receives storage space allocation requests sent by two computing nodes (storage space allocation request 1 sent by computing node 1 and storage space allocation request 2 sent by computing node 2), if the functional priority of the business function corresponding to the business function identifier in the storage space allocation request 1 is higher than the functional priority of the business function corresponding to the business function identifier in the storage space allocation request 2, the management node will prioritize using the storage pool to allocate storage space for computing node 1, and then allocate storage space for computing node 2.
- the management node determines the number of copies corresponding to the business function identifier, and then needs to provide the computing node with space that can store temporary files with the same number of copies as storage space, that is, the size of the storage space is greater than or equal to the product of the number of copies and the size of the temporary file (the configuration mode is not considered at this time).
- S1205 The management node creates a virtual disk.
- the management node After the storage space is divided from the storage pool in step S1204, the management node creates a corresponding virtual disk for the storage space using virtualization technology.
- a virtual disk is a logical storage unit that corresponds to a portion of storage space allocated within a storage pool.
- the management node When creating a virtual disk, the management node must specify parameters such as the virtual disk's capacity (i.e., storage size), performance characteristics, and access permissions to meet the storage space requirements of the compute nodes.
- Virtual disk information may include an identifier and a storage location.
- the identifier uniquely identifies the virtual disk, and the storage location is the specific storage location of the virtual disk in the storage pool (e.g., one or more block device addresses used to provide storage space).
- the storage location can be the physical address of a block device or other location identifier.
- Virtual disk information can also include capacity, access rights, and management information.
- the capacity of a virtual disk refers to its size, which allows the node agent to understand the available storage space.
- Access rights control the virtual disk, such as read and write permissions and user permissions.
- Management information can include information such as the virtual disk's administrator, creation time, and update time.
- the computing node establishes a network connection between the computing node and the storage pool according to the virtual disk information.
- the node agent in the computing node can associate the virtual disk with the block device (such as NBD) on the computing node, expose the virtual disk to the computing node in the form of a block device, and then establish a network connection between the computing node and the storage pool.
- the block device such as NBD
- the computing node creates a file system in the virtual disk through the node agent, and mounts the file system in a directory of the computing node.
- the node agent creates a file system on the virtual disk.
- a file system is an organizational structure used to manage files and data on the virtual disk, allowing for the storage of temporary files on the virtual disk. Common file systems include Ext4, NTFS, and XFS.
- the node agent selects a directory on the compute node as a mount point and mounts the created file system to the selected directory. Mounting is the process of associating a file system with a directory (i.e., a mount point). This directory will be used to access files and data on the virtual disk. By mounting the file system to this directory, the directory becomes the access point for the virtual disk.
- S1209 The computing node determines the mount point of the file system.
- the compute node accesses the virtual disk based on the directory (i.e., mount point), and writes the intermediate results or data to the virtual disk as a temporary file.
- the compute node reads the temporary file from the virtual disk based on the directory.
- S1212 The computing node sends a storage space release request to the management node through the node agent.
- the storage space release request may include the identifier and storage location of the virtual disk, which are the same as those in step S1206.
- S1214 The management node deletes the virtual disk.
- the management node After the management node releases the virtual disk, it will then perform the operation of deleting the virtual disk to completely clean up and recycle the resources.
- the management node may also send a confirmation message to the computing node, indicating that the virtual disk has been completely cleaned and recycled. After receiving the confirmation message, the computing node may continue with subsequent operations or terminate the task.
- the compute node returns the task execution results to the user.
- the user can display the execution results to the user.
- the task execution status, output data, and log information can be presented in a user-friendly manner (such as images or web pages), allowing the user to clearly understand the task execution status and results, ensuring that the user can obtain the task execution status and results in a timely and accurate manner.
- dynamic allocation and release operations on the management node enable flexible management of the storage space required for task execution.
- This dynamic allocation and release mechanism improves overall resource utilization, avoids resource waste, and meets the flexible storage space requirements of different tasks. It also fully leverages virtualization technology to create and manage virtual disks, enabling storage resource isolation, flexible scheduling, and dynamic allocation, improving storage resource utilization and flexibility.
- the storage space allocation method provided in the embodiments of this application enables task execution and resource management in a distributed computing environment. This approach enables parallel execution of tasks and distributed storage and management of data, fully leveraging the advantages of distributed computing and improving the efficiency of the overall computing system. Furthermore, reasonable storage resource allocation and scheduling also helps optimize system performance and enhance the efficiency and stability of task execution.
- the task execution results are displayed to users through the user end, allowing users to intuitively understand the task execution status and the realization of business functions. Users can adjust and optimize their work plans in a timely manner according to the status and results of task execution and business function realization.
- the correspondence between the above-mentioned business function identifiers and computing nodes, the correspondence between the business function identifiers and storage nodes, the configuration mode corresponding to the business function identifiers, the function priority corresponding to the business function identifiers, and the number of copies corresponding to the business function identifiers can be configured by the user through the front-end management page; or it can be pre-configured or obtained through other means without user configuration, as long as the same technical effect can be achieved.
- an embodiment of the present application further provides a storage space allocation device.
- the solution provided by this device is similar to the solution described in the above method, and the technical effects achieved are the same, so a detailed description thereof will not be repeated here.
- This device 1300 includes:
- the receiving module 1301 is configured to receive a configuration request, wherein the configuration request is used to request registration of an external storage of the server cluster into a storage space of the server cluster;
- An acquisition module 1302 is configured to respond to the configuration request and acquire storage resources stored externally by the server cluster;
- the processing module 1303 is configured to perform storage pooling processing on the external storage of the server cluster and the internal storage of the server cluster to obtain a storage pool, wherein storage resources of the storage pool are determined based on the storage resources of the external storage of the server cluster and the storage resources of the internal storage of the server cluster;
- the allocation module 1304 is configured to allocate storage space using the storage pool upon receiving a storage space allocation request.
- the processing module 1303 is specifically used to: expose the remaining available space of the server cluster's external storage and the remaining available space of the server cluster's internal storage as corresponding multiple block devices; map the multiple block devices into logical block devices; establish a file system on the logical block devices to obtain the storage pool.
- the server cluster external storage includes a server cluster first external storage that directly exposes a block device. storage; the server cluster internal storage includes a first internal storage of the server cluster that directly exposes a block device; the processing module 1303 is specifically used to scan the first external storage of the server cluster or the first internal storage of the server cluster corresponding to the remaining available space in the first block device, and establish a connection with the first block device.
- the server cluster external storage includes a second external storage of the server cluster that does not directly expose block devices
- the server cluster internal storage includes a second internal storage of the server cluster that does not directly expose block devices
- the processing module 1303 is specifically used to obtain the remaining available space of the second external storage of the server cluster or the remaining available space of the second internal storage of the server cluster, and create a virtual disk based on the remaining available space of the second external storage of the server cluster or the remaining available space of the second internal storage of the server cluster; and associate the virtual disk with the block device in the server.
- the allocation module 1304 is specifically used to receive a storage space allocation request sent by a computing node of the server cluster, the storage space allocation request including a temporary file size and a business function identifier; determine the storage space to be allocated based on the temporary file size; determine the temporary storage space from the storage pool based on the business function identifier and allocation policy, and allocate the temporary storage space to the computing node in the form of a virtual disk, wherein the temporary storage space is greater than or equal to the storage space to be allocated.
- the allocation strategy includes a correspondence between the business function identifier and the configuration mode; the allocation module 1304 is specifically used to determine the configuration mode corresponding to the business function identifier; if the configuration mode corresponding to the business function identifier is thin provisioning, determine a first temporary storage space with a storage space larger than the storage pool from the storage pool, and allocate the first temporary storage space to the computing node after setting it to zero; if the configuration mode corresponding to the business function identifier is thick provisioning, determine a second temporary storage space with a storage space larger than the storage space to be allocated from the storage pool, and allocate the second temporary storage space to the computing node after setting it to zero; if the configuration mode corresponding to the business function identifier is delayed zeroing, determine a third temporary storage space storing data from the storage pool, and allocate the third temporary storage space to the computing node.
- the allocation strategy includes the correspondence between the business function identifier and the number of copies; the allocation module 1304 is specifically used to determine the size of the temporary storage space based on the storage space to be allocated and the number of copies corresponding to the business function identifier, and determine the temporary storage space from the storage pool based on the size of the temporary storage space, and the temporary storage space is used to store a target number of temporary files, where the target number is the number of copies corresponding to the business function identifier.
- the device further includes an update module, which is used to obtain storage status change information of the server cluster external storage and the server cluster internal storage, and update the storage space of the storage pool according to the storage status change information.
- the device further includes a release module, which is configured to receive a storage space release request sent by the computing node, release data in the virtual disk indicated by the storage space release request, and delete the virtual disk.
- a release module which is configured to receive a storage space release request sent by the computing node, release data in the virtual disk indicated by the storage space release request, and delete the virtual disk.
- FIG 14 is a schematic diagram of the structure of a server provided in an embodiment of the present application.
- server 1400 includes: a processor 1401 and a memory 1402; wherein processor 1401 is in communication with memory 1402, and memory 1401 is used to store computer-executable instructions or code; processor 1401 is used to execute the computer-executable instructions or code stored in memory 1402, thereby implementing the technical solutions of the aforementioned method embodiments.
- the memory 1402 may be independent or integrated with the processor 1401.
- the server 1400 may further include a bus for connecting the above devices.
- the server is used to execute the technical solution in the aforementioned method embodiment, and its implementation principle and technical effect are similar and will not be repeated here.
- An embodiment of the present application further provides a processing chip, which is used to execute instructions or codes to implement the storage space allocation method described in any embodiment of the present application.
- the present application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments may be performed by computer instructions to instruct the relevant hardware.
- the program may be stored in the above computer-readable storage medium. When the program is executed, it may include the processes of the above method embodiments.
- the computer-readable storage medium may be the memory or memory of any of the above embodiments.
- the technical solution of the present application can be embodied in the form of a software product, which can be stored in a storage medium, such as a read-only memory (ROM)/RAM, a magnetic disk, an optical disk, etc., and includes a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network communication device such as a router) to execute the methods described in each embodiment of the present application or certain parts of the embodiments.
- a storage medium such as a read-only memory (ROM)/RAM, a magnetic disk, an optical disk, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
L'invention concerne un procédé d'attribution d'espace de stockage ainsi qu'un serveur. Le procédé est appliqué à un serveur. Après réception d'une demande d'attribution d'espace de stockage, un serveur peut utiliser un groupe de stockage pour attribuer et fournir un espace de stockage à des nœuds de calcul pour qu'ils exécutent des tâches correspondant à des fonctions de service, de façon à aider les nœuds de calcul à stocker des fichiers temporaires pendant l'exécution des tâches, ce qui permet de réaliser les fonctions de service. Le groupe de stockage est déterminé au moyen de ressources de stockage dans des stockages externes d'une grappe de serveurs et de ressources de stockage dans des stockages internes de la grappe de serveurs. Au moyen du groupe de stockage, les stockages internes d'une pluralité de grappes de serveurs et les stockages externes des grappes de serveurs peuvent être utilisés conjointement pour fournir un espace de stockage, de façon à éviter le problème de la diversité des modes de stockage pour différents types de stockages, et pour éviter l'incapacité à réaliser des fonctions de service en raison d'un insuffisance d'espace de stockage libre pour un seul stockage, ce qui permet d'améliorer la stabilité de l'exécution des fonctions de service.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410346841.1 | 2024-03-25 | ||
| CN202410346841.1A CN118193478A (zh) | 2024-03-25 | 2024-03-25 | 一种存储空间的分配方法及服务器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025200445A1 true WO2025200445A1 (fr) | 2025-10-02 |
Family
ID=91413364
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/129038 Pending WO2025200445A1 (fr) | 2024-03-25 | 2024-10-31 | Procédé d'attribution d'espace de stockage et serveur |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN118193478A (fr) |
| WO (1) | WO2025200445A1 (fr) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118193478A (zh) * | 2024-03-25 | 2024-06-14 | 超聚变数字技术有限公司 | 一种存储空间的分配方法及服务器 |
| CN118193479A (zh) * | 2024-03-25 | 2024-06-14 | 超聚变数字技术有限公司 | 一种存储空间的分配方法及服务器 |
| CN120994142B (zh) * | 2025-10-23 | 2026-01-23 | 苏州元脑智能科技有限公司 | 一种存储池空间的管理方法及电子设备 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103024001A (zh) * | 2012-11-30 | 2013-04-03 | 中兴通讯股份有限公司 | 一种业务调度方法与装置及融合设备 |
| US20150012982A1 (en) * | 2012-02-14 | 2015-01-08 | Fujitsu Technology Solutions Intellectual Property Gmbh | Cluster storage system, process for secure erasure of data, and computer program product |
| CN106973119A (zh) * | 2017-05-17 | 2017-07-21 | 国网山东省电力公司信息通信公司 | 一种电力企业存储资源管理系统 |
| CN113590309A (zh) * | 2021-06-30 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
| CN118193479A (zh) * | 2024-03-25 | 2024-06-14 | 超聚变数字技术有限公司 | 一种存储空间的分配方法及服务器 |
| CN118193478A (zh) * | 2024-03-25 | 2024-06-14 | 超聚变数字技术有限公司 | 一种存储空间的分配方法及服务器 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2608378T3 (es) * | 2011-12-29 | 2017-04-10 | Huawei Technologies Co., Ltd. | Sistema y procedimiento de computación en la nube para gestionar recursos de almacenamiento asociados |
-
2024
- 2024-03-25 CN CN202410346841.1A patent/CN118193478A/zh active Pending
- 2024-10-31 WO PCT/CN2024/129038 patent/WO2025200445A1/fr active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150012982A1 (en) * | 2012-02-14 | 2015-01-08 | Fujitsu Technology Solutions Intellectual Property Gmbh | Cluster storage system, process for secure erasure of data, and computer program product |
| CN103024001A (zh) * | 2012-11-30 | 2013-04-03 | 中兴通讯股份有限公司 | 一种业务调度方法与装置及融合设备 |
| CN106973119A (zh) * | 2017-05-17 | 2017-07-21 | 国网山东省电力公司信息通信公司 | 一种电力企业存储资源管理系统 |
| CN113590309A (zh) * | 2021-06-30 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
| CN118193479A (zh) * | 2024-03-25 | 2024-06-14 | 超聚变数字技术有限公司 | 一种存储空间的分配方法及服务器 |
| CN118193478A (zh) * | 2024-03-25 | 2024-06-14 | 超聚变数字技术有限公司 | 一种存储空间的分配方法及服务器 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118193478A (zh) | 2024-06-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11218364B2 (en) | Network-accessible computing service for micro virtual machines | |
| JP6208207B2 (ja) | オブジェクト・ストレージ・システムにアクセスするコンピュータ・システム | |
| JP4632574B2 (ja) | 記憶装置およびファイルデータのバックアップ方法およびファイルデータのコピー方法 | |
| JP6219420B2 (ja) | 入力/出力オペレーションのためにオブジェクト・ストレージ・システムを構成すること | |
| US7730259B2 (en) | Method, computer and system for managing a storage subsystem configuration | |
| JP6199452B2 (ja) | ストレージ・オブジェクトとして論理ボリュームをエクスポートするデータ・ストレージ・システム | |
| CN105892943B (zh) | 一种分布式存储系统中块存储数据的访问方法及系统 | |
| RU2427891C2 (ru) | Виртуальная сетевая система хранения информации, сетевое запоминающее устройство и виртуальный способ | |
| US7716319B2 (en) | Computer system and method for managing log information | |
| US7966470B2 (en) | Apparatus and method for managing logical volume in distributed storage systems | |
| JP2005267327A (ja) | ストレージシステム | |
| US7966517B2 (en) | Method and apparatus for virtual network attached storage remote migration | |
| CN101222490B (zh) | 一种网络服务器系统及方法 | |
| CN102223409B (zh) | 一种网络存储资源应用系统及方法 | |
| CN106201357A (zh) | 一种存储池的构建方法及系统 | |
| JPH11296313A (ja) | 記憶サブシステム | |
| CN118193478A (zh) | 一种存储空间的分配方法及服务器 | |
| JP2000339098A (ja) | ストレージドメイン管理システム | |
| WO2025200444A1 (fr) | Procédé et serveur d'attribution d'espace de stockage | |
| JP2005228278A (ja) | 記憶領域の管理方法、管理装置及び管理プログラム | |
| CN116401227B (zh) | 一种集群配置方法、装置、设备及介质 | |
| US8838768B2 (en) | Computer system and disk sharing method used thereby | |
| CN109302494A (zh) | 一种网络存储系统的配置方法、装置、设备及介质 | |
| JP2004355638A (ja) | 計算機システム及びそのデバイスの割り当て方法 | |
| CN113312128B (zh) | 一种融合微服务与idv架构的桌面云系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24931757 Country of ref document: EP Kind code of ref document: A1 |