Threshold configuration method, device and equipment
By dynamically adjusting the latency threshold of the storage system through configuration devices, the problem of false alarms or no alarms caused by fixed thresholds is solved, the accuracy and timeliness of latency alarms are achieved, and the troubleshooting efficiency of the storage system is improved.
Patent Information
- Application Number
- CN202410585294.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-11
- Publication Date
- 2025-11-11
AI Technical Summary
In existing technologies, the latency threshold of storage systems uses a fixed value, which cannot be flexibly adjusted according to the needs of different upper-layer applications. This leads to frequent false alarms or no alarms, and fails to accurately indicate abnormalities in the storage system.
The configuration device dynamically configures the latency threshold based on the data stored in the storage device, the hardware configuration, and the load latency model, ensuring that the latency threshold matches the actual state of the storage device. This includes analyzing the data types stored, building a load latency model, and making dynamic adjustments.
It improves the accuracy and timeliness of latency alarms, enhances the troubleshooting efficiency of storage systems, and improves the responsiveness of maintenance personnel.
Smart Images

Figure CN120929324A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a threshold configuration method, apparatus, and device. Background Technology
[0002] For storage systems, triggering a latency alarm when the system's latency exceeds a threshold ensures timely notification, allowing maintenance personnel to promptly troubleshoot storage system faults. Currently, latency thresholds are typically fixed. However, different upper-layer applications have varying latency requirements for storage systems. Setting a fixed threshold can lead to false alarms (where the storage system's latency is normal, but an alarm is triggered due to a low threshold) or no alarms (where the storage system's latency is abnormal, but no alarm is triggered due to a high threshold). Summary of the Invention
[0003] This application provides a threshold configuration method, apparatus, and device to improve the flexibility of latency threshold configuration.
[0004] In a first aspect, this application provides a threshold configuration method, which can be executed by a configuration device capable of configuring a latency threshold, wherein the latency threshold configured by the configuration device is related to some or all of the following: data stored in the storage device, hardware configuration of the storage device, and load latency model of the storage device, wherein the load latency model of the storage device describes the relationship between the load and latency of the storage device.
[0005] After configuring the latency threshold, the configuration device monitors the latency of the storage device. If the latency of the storage device exceeds the latency threshold, a latency alarm is initiated. The latency alarm is used to notify that the latency of the storage device exceeds the latency threshold.
[0006] Currently, latency thresholds are configured with fixed values, meaning that regardless of the service deployed on the storage device or the hardware configuration of the storage device, the latency threshold remains the same. In this application, however, the latency threshold is no longer a fixed value but is related to the information of the storage device, ensuring that the latency threshold better reflects the actual state of the storage device. The configuration of the latency threshold is more flexible, and the initiated latency alarms can more accurately and promptly alert maintenance personnel to potential anomalies in the storage device.
[0007] In one possible implementation, the data stored in the storage device is business-related data, where "business" refers to the services deployed on the storage device. The configuration device can determine the type of services deployed on the storage device by analyzing the data stored in the storage device.
[0008] Using the above method, the configuration device can accurately determine the type of service deployed on the storage device by analyzing the data stored in the storage device, so as to quickly complete the configuration of the latency threshold.
[0009] In one possible implementation, the load latency model of the storage device is related to the load parameters and latency of the storage device during operation. The configuration device can construct a load latency model for the storage device based on the load parameters and latency of the storage device during operation.
[0010] The above method constructs the load latency model of the storage device based on the load parameters and latency of the storage device during operation, ensuring that the load latency model of the storage device can accurately indicate the relationship between the load and latency of the storage device.
[0011] In one possible implementation, the load parameters of the storage device during operation include some or all of the following:
[0012] The number of inputs and outputs per unit time of the storage device, the proportion of read operations of the storage device, the proportion of write operations of the storage device, and the bandwidth of the storage device.
[0013] Using the above methods, storage devices have a variety of load parameters during operation. Different load parameters can be used to construct different load latency models to suit different latency threshold configuration scenarios.
[0014] In one possible implementation, the data stored in the storage device is any of the following: data related to cloud services, data in a database, or data related to virtualization services.
[0015] Correspondingly, the service types deployed on the storage device can be any of the following: cloud services, database services, or virtualization services.
[0016] When configuring latency thresholds, the configuration device can either directly configure the latency thresholds based on the data stored in the storage device, or it can configure the latency thresholds based on the type of service deployed on the storage device after knowing the type of service deployed on the storage device.
[0017] Using the above method, the data stored in the storage device is concentrated on data related to several common services, which makes it easier to quickly determine the type of service deployed on the storage device when configuring latency thresholds, thereby improving the efficiency of latency threshold configuration.
[0018] In one possible implementation, when configuring the latency threshold, the configuration device may first configure an initial value for the latency threshold, which is related to the data stored in the storage device and some or all of the hardware configuration of the storage device; then, the configuration device adjusts the latency threshold according to the load latency model of the storage device.
[0019] Using the above method, after configuring the initial value of the latency threshold, the configuration device dynamically adjusts the latency threshold. The latency threshold changes flexibly during the operation of the storage device to better match the real-time state of the storage device.
[0020] In one possible implementation, when constructing the load balancing model, the configuration device first obtains a preset functional relationship, where the functional relationship is a functional relationship between load parameters and latency, and the values of parameters other than load parameters and latency in the functional relationship are unknowns; then, the configuration device substitutes the load parameters and latency of the storage device collected during the operation of the storage device into the functional relationship, determines the values of the parameters other than load parameters and latency in the functional relationship, and the functional relationship with the determined parameter values is the load-latency model of the storage device.
[0021] By using the above method, since the function relationship is set in advance, the load latency model of the storage device can be obtained by only using the collected load parameters and the latency of the storage device. This can improve the construction efficiency of the load latency model and further ensure the configuration efficiency of the latency threshold.
[0022] In one possible implementation, the data stored within the storage device includes metadata about the data within the storage device. The configuration device can determine the type of service deployed on the storage device by analyzing the metadata of the data stored within the storage device. The metadata contains information that characterizes the service, allowing for a relatively quick determination of the type of service deployed on the storage device.
[0023] In one possible implementation, the hardware configuration of the storage device is to provide the performance of the memory that provides the storage space within the storage device. Different memory performances result in different latency levels for the storage device, and the latency threshold is related to the memory performance, ensuring that the specific value of the latency threshold better matches the inherent properties of the storage device itself.
[0024] In one possible implementation, the storage device is a storage pool or a virtual disk. Storage pools and virtual disks are a type of logical storage resource that users can perceive. Configuring latency thresholds for storage pools or virtual disks can effectively improve the user experience.
[0025] Secondly, this application also provides a configuration device that has the function of implementing the behavior in the method examples of the first aspect described above. The beneficial effects are described in the first aspect description and will not be repeated here. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the configuration device includes a threshold module and an alarm module. These modules can perform the corresponding functions in the method examples of the first or second aspect described above, as detailed in the method examples, and will not be repeated here.
[0026] Thirdly, this application also provides a computing device including at least one processor and a memory, and may further include a communication interface. The at least one processor executes program instructions stored in the memory to perform the method provided in the first aspect or any possible implementation thereof. The memory is coupled to the processor and stores computer program instructions and data necessary for the backup task allocation process. The communication interface is used for communicating with other devices.
[0027] Fourthly, this application provides a computing device system including at least one computing device. Each computing device includes a memory and a processor. The processor of at least one computing device is used to access code in the memory to execute the methods provided in the first aspect or any possible implementation thereof.
[0028] Fifthly, this application provides a computer-readable storage medium that, when executed by a computing device, allows the computing device to execute the method provided in the first aspect or any possible implementation thereof, or to execute the method provided in the second aspect. The storage medium stores computer program instructions. The storage medium includes, but is not limited to, volatile memory, such as random access memory, and non-volatile memory, such as flash memory, hard disk drive (HDD), and solid-state drive (SSD).
[0029] Sixthly, this application provides a computing device program product, which includes computer program instructions. When executed by a computing device, the computing device performs the methods provided in the first aspect or any possible implementation thereof. The computer program product can be a software installation package. When the methods provided in the first aspect or any possible implementation thereof are required, the computer program product can be downloaded and executed on the computing device.
[0030] In a seventh aspect, this application also provides a computer chip connected to a memory, the chip being used to read and execute computer program instructions stored in the memory, and to execute the methods described in the first aspect and various possible implementations of the first aspect.
[0031] For the technical effects that can be achieved in the second to seventh aspects mentioned above, please refer to the description of the technical effects that can be achieved by the corresponding design scheme in the first aspect mentioned above. This application will not repeat them here. Attached Figure Description
[0032] Figure 1 This is a schematic diagram of the structure of a threshold configuration system provided in an embodiment of this application;
[0033] Figures 2A-2C , Figure 3 This application provides a schematic diagram of the deployment of a node and a storage device according to an embodiment of the present application.
[0034] Figure 4 This is a schematic diagram of a threshold configuration method provided in an embodiment of this application;
[0035] Figure 5 This is a schematic diagram of a portion of the data in a GPT provided in an embodiment of this application;
[0036] Figure 6 A schematic diagram of some metadata in a storage device supporting database services, provided as an embodiment of this application;
[0037] Figures 7A-7B A schematic diagram of a load delay model provided in an embodiment of this application;
[0038] Figure 8 This is a schematic diagram of the structure of a configuration device provided in an embodiment of this application;
[0039] Figures 9-10 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application. Detailed Implementation
[0040] Before introducing the threshold configuration method provided by the embodiments of this application, some concepts involved in the embodiments of this application should be clarified:
[0041] (1) Virtualization technology, computing instance, container, virtual machine (VM).
[0042] Virtualization is a resource management technology that abstracts and transforms various physical resources of a host, such as processors, memory, and interfaces, to present them in a more accessible form. Virtualization is a resource allocation method from a logical perspective; it is a logical abstraction of physical resources.
[0043] With the help of virtualization technology, a host machine can form software modules with independent operating environments. In this embodiment, the software modules with independent operating environments formed through virtualization are referred to as computing instances. A computing instance can be a virtual machine or a container.
[0044] A virtual machine (VM) is a "complete computer" simulated using virtualization technology, possessing full hardware system functionality and running in a completely isolated environment. Any task that can be performed on a physical computer can also be performed in a VM. A VM has components such as a processor (also called a virtual processor), memory, and hard disk; these components are virtualized from the host computer's processor, memory, and hard disk.
[0045] A container is an independent operating environment simulated through virtualization technology. A container is similar to a lightweight sandbox, which shields the software and hardware outside the container. Containers achieve virtualization at the operating system level and directly reuse the host's operating system.
[0046] From the host's perspective, a compute instance is viewed as a special kind of "process." This "process" performs computational tasks and consumes the host's resources such as processor, memory, and hard drive.
[0047] (2) Nodes and storage pools.
[0048] In this embodiment, a node refers to a device deployed with an upper-layer application. The upper-layer application is a user-facing application that provides services to users, such as a database, file management system, or cloud service. The node can complete tasks triggered by the upper-layer application. The node also has storage capabilities; that is, it can provide storage space for storing data. This embodiment does not limit the specific form of the node; it can be a standalone server, mobile terminal, or other computing device, or it can be a cluster of multiple computing devices, such as a storage system.
[0049] Logically, any given node has one or more storage pools. The storage space within these pools collectively constitutes the storage space available to that node. Each storage pool is built upon the memory accessible to the node; a storage pool can be understood as an abstract logical storage space. Setting up storage pools helps manage the node's storage space. The memory accessible to the node can be internal to the node or externally deployed memory that the node can access via a network.
[0050] When a node has multiple storage pools, the storage pools are isolated from each other. Each storage pool can independently host data storage tasks, meaning that any storage pool can support the data storage required for a data storage task.
[0051] The term "mutual isolation" means that there is no mutual influence between the various storage pools. When actually executing a data storage task, only one storage pool can be selected from the multiple storage pools to store the data that needs to be stored in the data storage task, without having to distribute the data across various storage pools.
[0052] Within any given storage pool, there are multiple "disks" (also called "volumes"). These disks are formed by logically dividing the storage space within the pool. Similarly, the storage space provided by the disks in a storage pool originates from the memory accessible to that node. Unlike hard drives or other hardware, the disks within a storage pool are "virtual" disks. The partitioning of disks within the pool facilitates the management of the storage space. To distinguish them from hard drives and other hardware, the disks within a storage pool are called virtual disks. Typically, storage pools and virtual disks are perceptible to users. Users can view the attribute information of storage pools or virtual disks (such as creation time, available storage space, etc.) through upper-layer applications, and they can also view the data stored within the storage pools or virtual disks.
[0053] In this embodiment of the application, the configuration device has a latency threshold configuration function, which is for storage devices with storage functions such as storage pools or virtual disks.
[0054] (3) Load and load delay model.
[0055] The load of a storage device describes the workload or stress it endures. In this embodiment, the load of a storage device focuses on its ability to handle data read and write operations. The load of a storage device is not fixed; it varies with the number of data read and write operations required. There are many parameters that indicate the load of a storage device. This embodiment does not limit the type of parameter. For ease of explanation, the parameters indicating the load of a storage device are referred to as storage device load parameters. Storage device load parameters include, but are not limited to: the number of input / output operations per second (IOPS), the percentage of read operations, the percentage of write operations, and the bandwidth of the storage device.
[0056] The IOPS of a storage device describes the number of data read and write operations completed per unit of time. These operations include data reading and data writing. A data reading operation refers to the operation of reading data from the storage device, while a data writing operation refers to the operation of writing data into the storage device.
[0057] The read operation percentage of a storage device describes the proportion of data read operations out of all data read and write operations performed on that storage device. This percentage can be obtained as the ratio of the number of data read operations to the total number of data read and write operations performed on the storage device per unit time. Similarly, the write operation percentage describes the proportion of data write operations out of all data read and write operations performed on the storage device. This percentage can also be obtained as the ratio of the number of data write operations to the total number of data read and write operations performed on the storage device per unit time. The bandwidth of a storage device is defined as the amount of data that the storage device reads or writes per unit time.
[0058] The load-latency model of a storage device describes the relationship between the load and latency of the storage device. In the embodiments of this application, the load-latency model of the storage device can be reflected as the relationship between the load parameters of the storage device and the latency. Different load parameters of the storage device will result in different load-latency models.
[0059] (4) Latency of storage devices.
[0060] The latency of a storage device refers to the response time of the storage device to data read and write operations. In other words, the latency of a storage device describes the average time taken to complete data read and write operations within the storage device. This application does not limit the specific start and end points of the storage device's latency. For example, the latency of the storage device may start at the trigger time of the data read / write operation and end at the time of issuing the response to the data read / write operation (the response to the data read / write operation refers to providing feedback on the read data or notifying the data write result). As another example, the latency of the storage device may start at the time the storage device receives the instruction from the node to perform a data read / write operation and end at the time of issuing the response to the data access request.
[0061] Nodes with data storage capabilities can be applied to various business scenarios. Here, we will take a storage system as an example to illustrate the possible business scenarios in which they can be applied.
[0062] For example, a storage system provides storage services to users. Users can deploy storage services on the storage system according to their actual needs. For instance, a user can deploy a database on the storage system to centrally organize their data for easy querying. Or, a user can deploy a file system on the storage system to manage their data at the file level.
[0063] For example, storage systems can also be used to support cloud services. Taking cloud-based office services as an example, these services refer to office applications (such as cloud desktops) deployed in the cloud. Users connect to the cloud to operate these applications for work. The storage system can provide storage space for these cloud-based office services to store computer program instructions related to the office applications and data generated during their operation.
[0064] For example, storage systems can be applied to virtualization business scenarios. Storage resources in a storage system can be virtualized into virtual "disks" (which can be understood as a kind of virtual storage resource) through virtualization technology. These virtual "disks" serve as "hard drives" in computing instances, providing storage space.
[0065] Regardless of the business scenario in which a storage system is applied, its basic function is to handle data access requests from external sources and to read or write data within the system's memory. These data access requests are initiated by applications deployed on top of the storage system. These applications can be understood as the functionalities provided by the storage system, such as the databases, file management systems, office applications, and computing instances deployed on it, as mentioned earlier. The latency of the storage system in reading or writing data reflects its ability to support these applications and represents its performance. More intuitively, from a user perspective, the storage system provides storage pools, virtual disks, and other storage devices to users; therefore, the latency of the storage system in reading or writing data can be understood as the latency of these storage pools and virtual disks provided to users.
[0066] Therefore, storage device latency is a key factor in measuring storage system performance. Higher latency indicates degraded storage system performance or an inability to adequately support upper-layer applications. To address this, a latency threshold can be set. When the storage device's latency exceeds this threshold, the user is notified that the storage system is performing poorly or that the upper-layer application is experiencing an anomaly. An appropriate latency threshold can help users promptly identify potential problems with the storage system.
[0067] Currently, latency thresholds are typically set to a fixed value. However, different upper-layer applications have different latency requirements, and using a fixed latency threshold cannot accurately indicate the performance of the storage system or anomalies in upper-layer applications based on the relationship between latency and the threshold.
[0068] like Figure 1 As shown, a threshold configuration system provided in this application embodiment includes a configuration device 10 and a storage device 20.
[0069] The configuration device 10 is used to configure a latency threshold. In this embodiment, the latency threshold configured by the configuration device 10 is related to some or all of the following information:
[0070] Information 1: Data stored in storage device 20.
[0071] The data stored in storage device 20 is the data of the services deployed on storage device 20. The services deployed on storage device 20 refer to the types of upper-layer applications that storage device 20 can support. Different types of services deployed on storage device 20 result in different data stored in storage device 20.
[0072] The configuration device 10 can configure a latency threshold for the storage device 20 based on the data stored in the storage device 20. The configuration device 10 obtains the data stored in the storage device 20, analyzes the obtained data to determine the type of service deployed on the storage device 20, and configures the latency threshold for the storage device 20 according to the type of service deployed on the storage device 20. In other words, the type of service deployed on the storage device 20 is related to the data stored in the storage device 20.
[0073] Information 2: Hardware configuration in storage device 20.
[0074] For storage device 20, an important factor affecting the latency of storage device 20 is the hardware configuration of storage device 20. The hardware configuration of storage device 20 refers to the memory that provides the physical form of the storage space within storage device 20, that is, the performance of the memory on which storage device 20 is based. For ease of explanation, the memory that provides the physical form of the storage space within storage device 20 is referred to as the memory of storage device 20.
[0075] The storage device 20 uses different types of memory, resulting in different latency. For example, a hard disk drive (HDD) has lower data read / write efficiency, requiring a longer time to complete data reading or writing. An SSD, on the other hand, has higher data read / write efficiency, completing data reading or writing in a shorter time.
[0076] If the storage device 20 contains both HDD and SDD, its latency is typically longer because it may need to read or write data to either the HDD or SDD during data access request processing, resulting in a higher latency threshold. Conversely, if the storage device 20 contains only SDD, its latency is typically shorter, enabling faster processing of data access requests, and thus a lower latency threshold.
[0077] Information 3: Load latency model of storage device 20.
[0078] The configuration device 10 can collect the load parameters and latency of the storage device 20, establish a load-latency model for the storage device 20, and configure a latency threshold for the storage device 20 based on the load-latency model. The load-latency model of the storage device 20 is related to the load parameters and latency of the storage device 20.
[0079] This application does not limit the specific form or deployment location of the configuration device 10. The configuration device 10 can be a hardware device, such as a computing device, or a component (such as a processor) within that computing device. The configuration device 10 can also be a software module, such as an application running on a processor, an application running in a virtual machine or container, etc. The configuration device 10 can be deployed on the storage device 20 or outside of the storage device 20.
[0080] Storage device 20 has basic processing capabilities, capable of handling instructions from devices outside of itself to complete data read / write operations. Storage device 20 also has storage capabilities, providing storage space for storing data. This storage device 20 is a user-perceptible module with storage functionality. For example, storage device 20 could be a storage pool, a virtual disk, etc. In some scenarios, hard disks or other storage devices may also be user-perceptible; in such cases, storage device 20 could be a hard disk hardware module.
[0081] Generally, an upper-layer application is deployed on the node, and the node contains the storage device 20. Users can store or view data in the storage device 20 through the upper-layer application.
[0082] The following describes several possible configurations of a node that includes storage device 20.
[0083] The first type involves deploying nodes in a centralized storage system, where the nodes are the engines within that system, and the storage device 20 is a virtual disk or storage pool formed based on the memory (such as a hard disk) within the centralized storage system.
[0084] like Figure 2A The diagram shown is a schematic of a system architecture provided in an embodiment of this application. The system architecture includes an application server 100, a switch 110, and a storage system 120.
[0085] Users access data through applications. The computer running these applications is called an "application server". Application server 100 can be a physical machine or a virtual machine. Physical application servers include, but are not limited to, desktop computers, servers, laptops, and mobile devices. Application server accesses storage system to access data through fiber optic switch 110. However, switch 110 is only an optional device, and application server 100 can also communicate directly with storage system 120 via network.
[0086] Figure 2AThe storage system 120 shown is a centralized storage system. A key feature of a centralized storage system is a unified entry point through which all data access requests from external sources must pass. This entry point is the engine 121 of the centralized storage system. The engine 121 is the most crucial component of the centralized storage system, used to process data access requests from external sources, and many advanced functions of the storage system are implemented within it.
[0087] like Figure 2A As shown, engine 121 contains one or more controllers. Figure 2A Let's take an engine with two controllers as an example. Controller 0 and Controller 1 have a mirror channel. When Controller 0 writes data to its memory 124, it can send a copy of that data to Controller 1 through the mirror channel. Controller 1 then stores the copy in its local memory 124. Thus, Controller 0 and Controller 1 act as backups for each other. When Controller 0 fails, Controller 1 can take over its operations, and vice versa, preventing hardware failures from rendering the entire storage system 120 unavailable. When four controllers are deployed in engine 121, any two controllers have a mirror channel, thus any two controllers act as backups for each other.
[0088] In terms of hardware, such as Figure 2A As shown, controller 0 includes at least a network interface card (NIC) 122, a processor 123, and memory 124. NIC 122 can be used to communicate with application server 100, thereby providing storage services to application server 100. NIC 122 can also be used to communicate with hard disk 134 to expand the storage system's capacity. Through NIC 122, engine 121 can connect to more hard disks 134, thus forming a very large storage resource pool.
[0089] Processor 123 is the computational and control core of controller 0. It can be a central processing unit (CPU) or other specific integrated circuits. Processor 123 can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0090] Memory 124 refers to the internal memory that directly exchanges data with processor 123. Memory 124 can be dynamic random access memory (DRAM). Besides DRAM, memory 124 can also be other random access memories, such as static random access memory (SRAM). Alternatively, memory 124 can also be read-only memory (ROM). For example, read-only memory can be programmable read-only memory (PROM) or erasable programmable read-only memory (EPROM). Memory 124 can also be flash memory or other types of memory. Memory 124 stores the computer program instructions required by processor 123 to perform data operations.
[0091] Controller 1 (and others) Figure 2A The hardware components and software structure of the controller (not shown) are similar to those of controller 0, and will not be described in detail here.
[0092] Hard disk 134 is used to provide storage resources, such as storing data. It can be a disk or other types of storage media, such as a solid-state drive or a shingled magnetic recording hard disk.
[0093] The second type involves deploying nodes in a distributed storage system, where the nodes are servers within the system, and the storage device 20 is a virtual disk or storage pool formed based on the storage device (such as a hard disk) within the server.
[0094] like Figure 2B The diagram shown is a system architecture schematic of a distributed storage system provided in an embodiment of this application. The distributed storage system includes a server cluster. The server cluster includes one or more servers 130 ( Figure 2B The diagram shows three servers 130 (but is not limited to two servers 130), and these servers 130 can communicate with each other. A server 130 is a device that has both computing and storage capabilities, such as a server or desktop computer.
[0095] Server 130 can serve as the storage device 20 mentioned in the embodiments of this application. In terms of hardware, such as... Figure 2B As shown, server 130 includes at least processor 132, memory 133, network interface card 134, and hard disk 105. Processor 132, memory 133, network interface card 134, and hard disk 105 are connected via a bus.
[0096] The functions and specific types of processor 132, memory 133, network card 134, and hard disk 134 are similar to those of processor 123, memory 124, network card 122, and hard disk 105 mentioned above. Please refer to the previous description for details, which will not be repeated here. The difference lies in that, in a distributed storage system, servers 130 can communicate with each other, and this communication can be achieved through network card 122 within server 130.
[0097] Hard disk 105 is used to provide storage resources, such as storing data. It can be a disk or other types of storage media, such as a solid-state drive or a shingled magnetic recording hard disk.
[0098] The third type is where the node is a computing node or storage node in the distributed storage system, and the storage device 20 is a virtual disk or storage pool formed based on the memory (such as a hard disk) of the storage node in the storage system.
[0099] like Figure 2C The diagram shown is a schematic of the system architecture of another distributed storage system provided in this application embodiment. In this distributed storage system, the computing and storage functions required by the distributed storage system are deployed on different nodes. The node with computing function is called a computing node, and the node with storage function is called a storage node.
[0100] exist Figure 2C The distributed storage system comprises a compute node cluster and a storage node cluster. The compute node cluster includes one or more compute nodes (140...). Figure 2C The diagram shows two compute nodes 140 (but is not limited to two compute nodes 140), and the compute nodes 140 can communicate with each other. A compute node 140 is a computing device, such as a server, desktop computer, or controller of a storage array.
[0101] Compute node 140 has computing capabilities and can receive and process data requests sent from outside the storage system. If the data request is for accessing data or for processing data, compute node 140 can send a data access request to storage node 150 to request access to the data from the storage node or to retrieve the data from the storage node.
[0102] In terms of hardware, such as Figure 2C As shown, the compute node 140 includes at least a processor 142, memory 143, and a network interface card (NIC) 144. The specific form of the processor 142 is similar to that of the processor 123, as described above, and will not be repeated here. It is used to process data requests and trigger the NIC 144 to request data access from the storage node.
[0103] Memory 143 is used to store computer program instructions required by the processor 142 to process data requests. It can also temporarily store data. When the data stored in memory 143 reaches a certain threshold, the computing node 140 can send a data access request to the storage node 150 via network interface card 144 to persistently store the data. Network interface card 144 is used to communicate with storage node 150.
[0104] Any compute node 140 can access any storage node 150 in the storage node cluster via the network. The storage node cluster includes multiple storage nodes 150. Figure 2C The diagram shows three storage nodes 150, but is not limited to three storage nodes 150. Each storage node 150 includes one or more control units 151, a network interface card (NIC) 154, and multiple hard disks 155. The NIC 154 is used to communicate with the compute node 140. The hard disks 155 are used to store data and can be disks or other types of storage media, such as solid-state drives (SSDs) or shingled magnetic recording hard disks (SMARDs).
[0105] The functions of the control unit 151 (equivalent to the processor in storage node 150), network card 154 and multiple hard disks 155 are similar to those of the processor 142, network card 144 and hard disk 105 mentioned above. For details, please refer to the above description and it will not be repeated here.
[0106] The fourth type is where the node is a computing instance deployed on the host, and the storage device 20 is a storage resource formed by virtualizing the host's memory.
[0107] like Figure 3 The diagram shown is a schematic of a host virtualization architecture provided in an embodiment of this application. Virtualization technology is applied to host 150, forming a virtualization architecture as shown below. Figure 3 The virtualization architecture shown includes underlying hardware 151, a host operating system 152, a computing instance management unit 153, and at least one computing instance 154. The host 150 is a computing device. This host 150 can be a server, mobile terminal, tablet computer, or other computing device.
[0108] The underlying hardware 151 refers to some hardware components in the host 150, such as the processor, memory, and network card. The underlying hardware 151 can be understood as the physical resources on the host 150, which are objects that need to be virtualized in virtualization technology.
[0109] Based on the underlying hardware 151, the host 150 runs software modules such as the host operating system 152, the computing instance management unit 153, and the computing instance 154.
[0110] The host operating system 152 runs on the processor 110 and is used to implement the basic functions of the host 150. The basic functions include, but are not limited to: management functions for the underlying hardware 151, control functions for input / output devices (such as monitors, keyboards, mice, etc.) connected to the host 150, and management of processes in the host 150.
[0111] The compute instance management unit 153 manages the compute instance 154. This unit can virtualize the underlying hardware 151 to provide a runtime environment for the compute instance 154. There are various ways the compute instance management unit 153 can provide the runtime environment to the compute instance 154. For example, it can simulate the runtime environment for the compute instance 154 through software. Alternatively, the compute instance 154 can directly access the underlying hardware 151 (such as memory 120).
[0112] When compute instance 154 is a virtual machine, the compute instance management unit 153 includes QEMU (quick emulator) and a virtual machine monitor (VMM). When compute instance 154 is a container, the compute instance management unit 153 can be a container engine.
[0113] Computing instance 154 has an independent operating environment. It occupies the physical resources of host 150 and can execute various tasks and implement related business functions based on these resources. Computing instances 154 are independent of each other and do not affect one another. In this embodiment, computing instance 154 can be a virtual machine, a container, or other modules formed by virtualization using the physical resources of host 150.
[0114] The hardware components included in host 150 are similar in type to those of network card 122, processor 123 and memory 124 mentioned above. For details, please refer to the above description and will not be repeated here.
[0115] In this embodiment, the latency threshold configured for storage device 20 is related to some or all of the following information: the data stored in storage device 20, the hardware configuration of storage device 20, and the load latency model of storage device 20. The latency threshold is no longer fixed, but is determined based on relevant information of storage device 20, and the final configured latency threshold is more consistent with the actual state of storage device 20.
[0116] The following is combined with Figure 4This application provides a threshold configuration method, which includes two parts: one part is the configuration process of the initial value of the latency threshold, which can be referred to in step 401; the other part is the dynamic adjustment process of the latency threshold of the storage device 20, which can be referred to in step 403. The method includes:
[0117] Step 401: Configure device 10 to configure the delay threshold.
[0118] When the storage device 20 initially operates, the configuration device 10 can configure a latency threshold for it, that is, configure the initial value of the latency threshold. This application embodiment does not limit the manner in which the configuration device 10 performs step 401. Two methods for the configuration device 10 to configure the latency threshold are listed below:
[0119] Method 1: The configuration device 10 configures the latency threshold based on the data stored in the storage device 20.
[0120] For storage device 20, it can be used to support upper-layer applications, such as cloud services, database services, and virtualization services. The data stored in storage device 20 is the business data related to the upper-layer applications. Different services require different latency levels for storage device 20. For example, in cloud service scenarios, since the service target is usually users, higher latency in storage device 20 results in a poorer user experience. Different types of cloud services also have different latency requirements for storage device 20. For instance, cloud office services typically require fast response times to enhance user efficiency, which necessitates storage device 20 to complete data read and write operations quickly. Cloud storage services, on the other hand, typically require data to be stored in user-rented or purchased storage resources (i.e., the storage device in storage device 20) according to user needs. Compared to cloud office services, cloud storage services have lower real-time requirements and do not necessarily require lower latency in storage device 20.
[0121] For example, in database services, since databases are mainly used for data management, they need to respond promptly to operations such as adding, deleting, querying, and modifying data. Therefore, when storage device 20 is used to support the database, it has high latency requirements to ensure that storage device 20 can quickly respond to various user operations on the database.
[0122] For example, virtualization services refer to deploying computing instances on physical hosts, with different computing instances capable of handling different services. Since virtualization services deploy computing instances on physical hosts, when a computing instance responds to a received data access request, it needs to rely on a computing instance management unit to achieve interaction between the underlying hardware and the computing instance. The latency of the storage device 20 is related to the interaction method between the underlying hardware and the computing instance.
[0123] The configuration device 10 analyzes the data stored in the storage device 20, determines the service type deployed on the storage device 20, and configures a latency threshold for the storage device 20 according to the service type of the storage device 20.
[0124] The data stored in storage device 20 includes two types of data: one is data metadata, which describes the data and records its attribute information, such as data size, data modification history, and data business characteristics; the other is the data itself.
[0125] 1. The configuration device 10 obtains the metadata of the data from the storage device 20 and determines the type of service deployed on the storage device 20 based on the metadata of the data.
[0126] When the configuration device 10 determines the service type deployed on the storage device 20 based on the data stored in the storage device 20, if the metadata in the storage device 20 contains the service characteristics of the data, the configuration device 10 can obtain the information of the service characteristics of the data from the metadata in the storage device 20, and then determine the service type deployed on the storage device 20.
[0127] For example, let's assume that the services that may be deployed on storage device 20 are divided into three categories: cloud office services, database services, and virtualization services. The empirical values for latency thresholds for these three different service categories are 50 milliseconds, 30 milliseconds, and 10 milliseconds, respectively.
[0128] For cloud-based office services, Windows will be deployed on cloud resources. TM System, Windows TM Windows uses a Globally Unique Partition Table (GPT) in its partitioning architecture. TM Windows will automatically be created in the middle. TM The partition to be reserved, such as Figure 5 As shown, the offset value of this partition in the GPT table entry is between 0x400 and 0x47F, and the partition name will be defined as "Microsoft reserved partition". GPT is located in the metadata.
[0129] If the configuration device 10 extracts the GPT from the metadata and queries the table entries of the GPT, for table entries with offset values between 0x400 and 0x47F, if it detects that the partition name is a Microsoft reserved partition, it can be assigned that cloud office-type cloud services are deployed on the storage device 20, and its time threshold can be set to 50 milliseconds.
[0130] For database services, the metadata of the data in the storage device 20 supporting that database service always contains the same information, used to identify that the storage device 20 is a storage device 20 supporting the same database. For example... Figure 6 The image shows a portion of the metadata within storage device 20. The data within the boxes in this metadata represents the database as Oracle. Therefore, storage device 20 can be identified as an Oracle business volume.
[0131] If the configuration device 10 analyzes the metadata of the data in the storage device 20, and if the metadata of multiple consecutively stored data in the storage device 20 contains the same information, such as the metadata of multiple data containing 0000A206, then the storage device 20 can be determined to be a storage device 20 that supports database services, and the configuration device 10 can set its time threshold to 10 milliseconds.
[0132] For virtualization services, it can be considered that all services other than cloud office services and database services belong to virtualization services. That is, if the configuration device 10 does not extract GPT from the metadata in the storage device, and does not find that the metadata of each data in the storage device 20 has the same information, it can be determined that virtualization services are deployed on the storage device 20, and the configuration device 10 can set its time threshold to 30 milliseconds.
[0133] When the configuration device 10 determines the service type deployed on the storage device 20 based on the data stored in the storage device 20, if the metadata of the data in the storage device 20 does not contain the service characteristics of the data, the configuration device 10 can obtain the data itself (i.e., the data described by the metadata) from the storage device 20, analyze the data itself, and determine the service type deployed on the storage device 20.
[0134] For example, let's assume that the services that may be deployed on storage device 20 are divided into three categories: cloud office services, database services, and virtualization services. The empirical values for latency thresholds for these three different service categories are 50 milliseconds, 30 milliseconds, and 10 milliseconds, respectively.
[0135] For cloud-based office services, Windows will be deployed on cloud resources. TM System. In Windows TM Several applications will be installed on the system. Data processed by these applications, such as files or images processed by office software, will be stored in the storage device 20. If the configuration device 10 retrieves data processed by these applications from the storage device 20, the configuration device 10 can assume that cloud office services are deployed on the storage device 20 and can set its time threshold to 50 milliseconds.
[0136] For database services, the data in the database is usually stored in the memory of storage device 20 in the form of data tables. If configuration device 10 queries multiple data tables from storage device 20, configuration device 10 can assume that database services are deployed on storage device 20, and configuration device 10 can set its time threshold to 10 milliseconds.
[0137] For virtualization services, all services except cloud-based office services and database services can be considered virtualization services. That is, if configuration device 10 does not detect Windows from the storage device... TM If no data table is found stored in storage device 20 after the data is processed by the application within the system, it can be determined that virtualization services are deployed on storage device 20, and configuration device 10 can set its time threshold to 30 milliseconds.
[0138] Method 2: The configuration device 10 determines the latency threshold based on the hardware configuration in the storage device 20.
[0139] The configuration device 10 acquires the hardware configuration of the storage device 20, which indicates the performance of each hardware component within the storage device 20. For example, the hardware configuration of the storage device 20 refers to the performance of its memory. Memory performance metrics include, but are not limited to, memory access time, memory cycle time, and memory bandwidth. These are merely examples; the memory may also display other performance metrics, such as memory power consumption.
[0140] The memory access time, also known as the memory access duration, is the time it takes for the memory to complete one data read / write operation. The memory cycle time is the minimum time interval between two consecutive data read / write operations. The memory bandwidth is the amount of data read or written by the memory per unit time; it can also be called the data transfer rate.
[0141] The configuration device 10 can use one performance index of the memory as the hardware configuration of the storage device 20, or it can use multiple performance indexes of the memory as the hardware configuration of the storage device 20.
[0142] For example, the storage time of the memory can be used as a hardware configuration of the storage device 20. For the memory of the storage device 20, the shorter the storage time, the lower the latency of the storage device 20, and correspondingly, the lower the latency threshold of the storage device.
[0143] For example, the storage time and storage cycle of the memory can be used as hardware configurations for the storage device 20. For the memory of the storage device 20, the smaller the storage time and the shorter the storage cycle, the lower the latency of the storage device 20, and correspondingly, the lower the latency threshold of the storage device.
[0144] The configuration device 10 can pre-store latency thresholds corresponding to different hardware configurations. After acquiring the hardware configuration of the storage device 20, the configuration device 10 configures the latency threshold corresponding to the hardware configuration of the storage device 20. Generally speaking, the latency threshold T1 configured when the storage device 20 contains both HDD and SSD, the latency threshold T3 configured when the storage device 20 contains only HDD, and the latency threshold T3 configured when the storage device 20 contains only SSD satisfy the following relationship:
[0145] Delay threshold T2 > Delay threshold T1 > Delay threshold T3
[0146] For example, for a case that includes both HDD and SSD, the corresponding latency threshold is 50 milliseconds; for a case that includes only SSD, the corresponding latency threshold is 10 milliseconds.
[0147] The configuration device 10 may also pre-store latency threshold ranges corresponding to different hardware configurations. After acquiring the hardware configuration of the storage device 20, the configuration device 10 selects a value from the latency threshold range corresponding to the hardware configuration of the storage device 20 as the latency threshold for configuring the storage device 20. For example, for the case that includes both HDD and SSD, the corresponding latency threshold range is 10 milliseconds to 50 milliseconds; for the case that includes only SSD, the corresponding latency threshold is 2 milliseconds to 10 milliseconds; and for the case that includes only HDD, the corresponding latency threshold is 20 milliseconds to 150 milliseconds. When the configuration device 10 determines that the storage device 20 includes both HDD and SSD, the configuration device 10 can select a value from 45 milliseconds to 50 milliseconds as the latency threshold for the storage device 20. When the configuration device 10 determines that the storage device 20 includes only SSD, the configuration device 10 can select a value from 8 milliseconds to 12 milliseconds as the latency threshold for the storage device 20.
[0148] The above describes two methods for configuring the latency threshold for the storage device 20 using the configuration device 10. The configuration device 10 can choose either method to configure the latency threshold for the storage device 20.
[0149] The configuration device 10 can also combine two methods to configure a latency threshold for the storage device 20. The configuration device 10 obtains the data stored in the storage device 20 and the hardware configuration of the storage device 20, and configures a latency threshold for the storage device 20 based on the data stored in the storage device 20 and the hardware configuration of the storage device 20. This application embodiment does not limit the method by which the configuration device 10 configures the latency threshold for the storage device 20 based on the data stored in the storage device 20 and the hardware configuration of the storage device 20. For example, the configuration device 10 determines the service type deployed on the storage device 20 based on the data stored in the storage device 20, obtains the latency threshold corresponding to the service type (i.e., the latency threshold determined in method one), and determines the latency threshold corresponding to the hardware configuration in the storage device 20 (i.e., the latency threshold determined in method two). The configuration device 10 can use the average of the latency threshold corresponding to the service type and the latency threshold corresponding to the hardware configuration in the storage device 20 as the latency threshold of the storage device 20. Alternatively, the configuration device 10 can use a value between the latency threshold corresponding to the service type and the latency threshold corresponding to the hardware configuration in the storage device 20 as the latency threshold of the storage device 20. The configuration device 10 can also use the maximum or minimum value of the latency threshold corresponding to the service type and the latency threshold corresponding to the hardware configuration in the storage device 20 as the latency threshold of the storage device 20.
[0150] Step 402: Initiate a latency alarm if the latency of storage device 20 is greater than the latency threshold.
[0151] After acquiring the latency threshold configured for the storage device 20, the configuration device 10 monitors the latency of the storage device 20. When it detects that the latency of the storage device 20 exceeds the latency threshold, it initiates a latency alarm to notify the user that the current latency of the storage device 20 exceeds the latency threshold.
[0152] In this embodiment, after the configuration device 10 configures a latency threshold for the storage device 20, the storage device 20 can operate based on that latency threshold. The latency threshold of the storage device 20 can always remain the latency threshold configured by the configuration device 10 in step 401. That is, once configured, the latency threshold of the storage device 20 will not change. After configuring the latency threshold for the storage device 20, the configuration device 10 can also subsequently adjust the latency threshold, i.e., dynamically adjust the latency threshold. In other words, the latency threshold of the storage device 20 is no longer fixed but changes as the storage device 20 operates. The dynamic adjustment of the latency threshold by the configuration device 10 for the storage device 20 can be seen in step 403.
[0153] Step 403: Configure device 10 to dynamically adjust the delay threshold.
[0154] The configuration device 10 collects the load parameters and latency of the storage device 20 during operation, and constructs a load-latency model for the storage device 20. There is a certain correspondence between the load and latency of the storage device 20. The configuration device 10 collects the load parameters and latency of the storage device 20 during operation, performs linear fitting on the load parameters and latency of the storage device 20, and the functional relationship between the load parameters and latency of the storage device 20 obtained after linear fitting is the load-latency model of the storage device 20.
[0155] To quickly obtain the load-latency model of storage device 20, the configuration device 10 can pre-configure the functional relationship between the load parameters and latency of storage device 20. In this pre-configured functional relationship, the values of parameters other than the load parameters and latency are unknowns. The configuration device 10 substitutes the collected load parameters and latency of storage device 20 during operation into this functional relationship to determine the parameter values. Once the parameter values are determined, the functional relationship with those parameter values constitutes the load-latency model of storage device 20.
[0156] For example, the configuration device 10 has a pre-configured functional relationship between the read operation percentage x and the latency T, as follows:
[0157] T = mx 2 -nx+N. Where m, n, and N are the parameters of this function, and m, n, and N are unknowns.
[0158] The configuration device 10 substitutes the collected read operation percentage value x and latency T of the storage device 20 during operation into the above functional relationship to obtain the values of m, n, and N. Once the values of m, n, and N are determined, the above functional relationship becomes the load latency model of the storage device 20. Figure 7A As shown, this is the functional relationship of the configuration device 10 after the values of m, n and N are determined.
[0159] For example, the configuration device 10 has a pre-configured functional relationship between IOPS and latency T, which is as follows:
[0160] T = A(IOPS) 3 -Bx 2 +C. Where A, B, and B are the parameters of the function, and A, B, and C are unknowns.
[0161] The configuration device 10 substitutes the collected IOPS and latency T of the storage device 20 during operation into the above functional relationship to obtain the values of A, B, and C. Once the values of A, B, and C are determined, the above functional relationship becomes the load-latency model of the storage device 20. Figure 7B As shown, this is the functional relationship of the configuration device 10 after the values of A, B and C have been determined.
[0162] After acquiring the load latency model of the storage device 20, the configuration device 10 can dynamically adjust the latency threshold using the load latency model of the storage device 20.
[0163] This application embodiment does not limit the specific adjustment method of the configuration device 10 in dynamically adjusting the latency threshold using the load latency model of the storage device 20. For example, since the load latency model indicates the relationship between the load and latency of the storage device 20, the load parameters of the storage device 20 usually change in a certain regularity over time. For example, the load parameters of the storage device 20 fluctuate around a certain value or within a certain range during a certain period of time. Based on the changing pattern of the load parameters of the storage device 20, the configuration device 10 can predict the load parameters of the storage device 20 in a certain period of time in the future. Using the predicted load parameters of the storage device 20 and the load latency model of the storage device 20, the configuration device 10 can predict the latency of the storage device 20 in a certain period of time in the future. Based on the predicted latency of the storage device 20 in a certain period of time in the future, the configuration device 10 determines the latency threshold of the storage device 20 in that period of time, thereby dynamically adjusting the latency threshold. In practical applications, the configuration device 10 increases the latency of the storage device 20 within a predicted future time period by a set value, and the latency after the set value is increased is used as the time threshold of the storage device 20 within that time period. Alternatively, the storage device 20 can directly use the latency of the storage device 20 within a predicted future time period as the time threshold of the storage device 20 within that time period.
[0164] For example, since the load-latency model indicates the relationship between the load and latency of storage device 20, configuration device 10 can collect the load parameters of storage device 20. After acquiring the load parameters, it uses the load-latency model to determine the latency corresponding to the acquired load parameters of storage device 20. Based on the latency corresponding to the load parameters of storage device 20, it determines the latency threshold of storage device 20 within the specified time period, thereby dynamically adjusting the latency threshold. In practical applications, configuration device 10 can increase the latency corresponding to the load parameters of storage device 20 by a set value, and the latency after increasing the set value becomes the current time threshold of storage device 20. Alternatively, storage device 20 can directly use the latency corresponding to its load parameters as the current time threshold.
[0165] In this embodiment, three methods are provided for configuring latency thresholds for storage device 20. Two of these methods are those mentioned in step 401, and the third method is the method mentioned in step 403, which determines the latency threshold of storage device 20 based on its load latency model. These three methods are applicable to any scenario requiring latency threshold configuration. The method mentioned in step 401, where the configuration device 10 configures the latency threshold for storage device 20, can be completed at the initial stage of storage device 20's operation. That is, the service type deployed on storage device 20 and the hardware configuration of storage device 20 are usually determined at the initial stage of storage device 20's operation and generally do not change. The method mentioned in step 401, where the configuration device 10 configures the latency threshold for storage device 20, is suitable for configuring the initial value of the latency threshold for storage device 20. Since the load latency parameter of storage device 20 is formed based on the load parameters and latency during the operation of storage device 20, step 403 is suitable for configuring the latency threshold for storage device 20 after it has been operating for a period of time.
[0166] Step 404: Initiate a latency alarm if the latency of storage device 20 exceeds the latency threshold. The execution method of step 404 is similar to that of step 402. For details, please refer to the relevant description of step 402, which will not be repeated here.
[0167] Based on the same inventive concept as the method embodiments, this application also provides a configuration device for executing the method executed by the configuration device 10 in the above method embodiments. For example... Figure 8 As shown, the configuration device 800 includes a threshold module 801 and an alarm module 802. Specifically, in the configuration device 800, the modules are connected through a communication path.
[0168] Threshold module 801 is used to configure latency thresholds, wherein the latency thresholds are related to some or all of the following: data stored in the storage device, hardware configuration of the storage device, and load latency model of the storage device, wherein the load latency model of the storage device describes the relationship between the load and latency of the storage device.
[0169] The alarm module 802 is used to initiate a latency alarm when the latency of the storage device is greater than the latency threshold. The latency alarm is used to notify the storage device that the latency is greater than the latency threshold.
[0170] As one possible implementation, the data stored in the storage device is business-related data, and the business is the business deployed on the storage device.
[0171] As one possible implementation, the load latency model of the storage device is related to the load parameters of the storage device during operation and the latency of the storage device.
[0172] As one possible implementation, the load parameters of the storage device during operation include some or all of the following:
[0173] The number of inputs and outputs per unit time of the storage device, the proportion of read operations of the storage device, the proportion of write operations of the storage device, and the bandwidth of the storage device.
[0174] As one possible implementation, the data stored in the storage device is any of the following:
[0175] Data related to cloud services, data in databases, and data related to virtualization services.
[0176] The service type deployed on the storage device is any of the following:
[0177] Cloud services, database services, and virtualization services.
[0178] As one possible implementation, when configuring the latency threshold, the threshold module 801 first configures an initial value for the latency threshold, which is related to the data stored in the storage device and some or all of the hardware configuration of the storage device; then, the threshold module 801 adjusts the latency threshold according to the load latency model of the storage device.
[0179] As one possible implementation, the threshold module 801 obtains a preset functional relationship, wherein the functional relationship is a functional relationship between load parameters and latency, and the values of parameters other than load parameters and latency in the functional relationship are unknowns; the threshold module 801 substitutes the load parameters and latency of the storage device during operation into the functional relationship to determine the values of parameters other than load parameters and latency in the functional relationship, and the functional relationship with the determined parameter values is the load-latency model of the storage device.
[0180] As one possible implementation, the data stored in the storage device includes metadata related to the data stored in the storage device.
[0181] As one possible implementation, the hardware configuration of the storage device is designed to provide the performance of the memory within the storage space of the storage device.
[0182] As one possible implementation, the storage device is a storage pool or a virtual disk.
[0183] The module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processor, exist as separate physical entities, or be integrated into a single module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0184] If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a terminal device (which may be a personal computer, mobile phone, or network device, etc.) or processor to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0185] This application also provides, for example Figure 9 The computing device 900 shown includes a bus 901, a processor 902, a communication interface 903, and a memory 904. The processor 902, the memory 904, and the communication interface 903 communicate with each other via the bus 901.
[0186] The processor 902 can be a CPU, or it can be other general-purpose processors, DSPs, ASICs, FPGAs, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0187] Memory 904 can be DRAM. Besides DRAM, memory 904 can also be other random access memory (such as SRAM). Additionally, memory 902 can also be ROM. For read-only memory, for example, it could be PROM, EPROM, etc. Memory 904 can also be flash memory.
[0188] The memory 904 stores computer program instructions, and the processor 902 executes these computer program instructions to perform the aforementioned tasks. Figure 4 The steps performed by configuration device 10 in the described method. The memory 904 may also include other software modules required for running processes, such as an operating system (e.g., multiple modules in configuration device 800). The operating system may be LINUX. TM UNIX TM WINDOWS TM wait.
[0189] This application also provides a computing device system, the computing device system including at least one such as Figure 10 The computing device 1000 shown includes a bus 1001, a processor 1002, a communication interface 1003, and a memory 1004. The processor 1002, the memory 1004, and the communication interface 1003 communicate with each other via the bus 1001. At least one computing device 1000 in the computing device system communicates with each other via a communication path.
[0190] The specific types of processor 1002 and memory 1004 can be found in the relevant descriptions of processor 902 and memory 904, and will not be repeated here. Processor 1002 executes the computer program instructions stored in memory 1004 to perform the aforementioned tasks. Figure 4 The described method may include some or all of the steps performed by the configuration device 10. The memory may also include other software modules required for running processes, such as an operating system. The operating system may be Linux. TM UNIX TM WINDOWS TM wait.
[0191] At least one computing device 1000 in the computing device system establishes communication with each other through a communication network, and each computing device 1000 runs any one or any multiple modules of the configuration device 800.
[0192] The descriptions of the processes corresponding to the above-mentioned figures each have their own emphasis. For parts of a process that are not described in detail, please refer to the relevant descriptions of other processes.
[0193] In the above embodiments, implementation can be achieved, in whole or in part, through 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. A computer program product includes computer program instructions, which, when loaded and executed on a computer, generate, in whole or in part, the product according to the embodiments of the present invention. Figure 4 The process or function described.
[0194] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., SSD).
[0195] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A threshold configuration method, characterized in that, include: Configure a latency threshold, wherein the latency threshold is related to some or all of the following: the data stored in the storage device, the hardware configuration of the storage device, and the load latency model of the storage device, wherein the load latency model of the storage device describes the relationship between the load and latency of the storage device; If the latency of the storage device is greater than the latency threshold, a latency alarm is initiated. The latency alarm is used to notify that the latency of the storage device is greater than the latency threshold.
2. The method as described in claim 1, characterized in that, The data stored in the storage device is business-related data, and the business is the business deployed on the storage device.
3. The method as described in claim 1, characterized in that, The load latency model of the storage device is related to the load parameters of the storage device during operation and the latency of the storage device.
4. The method as described in claim 3, characterized in that, The load parameters of the storage device during operation include some or all of the following: The number of input / output operations (IOPS) per unit time of the storage device, the percentage of read operations of the storage device, the percentage of write operations of the storage device, and the bandwidth of the storage device.
5. The method according to any one of claims 1 to 4, characterized in that, The data stored in the storage device is any of the following: Data related to cloud services, data in databases, and data related to virtualization services.
6. The method according to any one of claims 1 to 5, characterized in that, The configured latency threshold includes: Configure an initial value for the latency threshold, which is related to the type of service deployed on the storage device and some or all of the hardware configuration of the storage device; The latency threshold is adjusted according to the load latency model of the storage device.
7. The method as described in claim 3, characterized in that, The method further includes: Obtain a preset functional relationship, wherein the functional relationship is a functional relationship between load parameters and time delay, and the values of parameters other than the load parameters and the time delay in the functional relationship are unknowns; The load parameters and latency of the storage device during operation are collected and substituted into the function relationship. The values of the parameters other than the load parameters and the latency are determined in the function relationship. The function relationship with the parameter values determined is the load-latency model of the storage device.
8. The method as described in claim 2, characterized in that, The data stored in the storage device includes metadata of the data within the storage device.
9. The method as described in claim 1, characterized in that, The hardware configuration of the storage device is designed to provide the performance of the memory within the storage space of the storage device.
10. The method according to any one of claims 1 to 9, characterized in that, The storage device is a storage pool or a virtual disk.
11. A configuration device, characterized in that, include: A threshold module is used to configure latency thresholds, wherein the latency thresholds are related to some or all of the following: data stored in the storage device, hardware configuration of the storage device, and load latency model of the storage device, wherein the load latency model of the storage device describes the relationship between the load and latency of the storage device; An alarm module is used to initiate a latency alarm when the latency of the storage device is greater than the latency threshold. The latency alarm is used to notify that the latency of the storage device is greater than the latency threshold.
12. The apparatus as claimed in claim 11, characterized in that, The load latency model of the storage device is related to the load parameters of the storage device during operation and the latency of the storage device.
13. The apparatus as claimed in claim 12, characterized in that, The load parameters of the storage device during operation include some or all of the following: The number of inputs and outputs per unit time of the storage device, the proportion of read operations of the storage device, the proportion of write operations of the storage device, and the bandwidth of the storage device.
14. A computing device, characterized in that, The computing device includes a processor and memory; The memory is used to store computer program instructions; The processor executes computer program instructions in the memory to perform the method as described in any one of claims 1 to 10.
15. A computer-readable storage medium, characterized in that, When the computer-readable storage medium is executed by a computing device, the computing device performs the method according to any one of claims 1 to 10.