Storage array performance testing method, system, electronic device, and storage medium

By using automated testing methods, a storage array performance testing environment was built, and test cases were written using the Vdbench tool. This solved the problems of long testing time and error-proneness in traditional storage array performance testing, and achieved efficient and accurate performance data collection.

CN115617629BActive Publication Date: 2026-07-24INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2022-10-10
Publication Date
2026-07-24

Smart Images

  • Figure CN115617629B_ABST
    Figure CN115617629B_ABST
Patent Text Reader

Abstract

The application provides a storage array performance test method, a system, an electronic device and a storage medium, comprising: building a test environment, the test environment comprising a storage system and a host; initializing the test environment; creating a test storage array and a test volume in the storage system according to a configuration file; mapping the test volume to the host, and calling a test case to test the test volume to obtain performance data of the test storage array. The application provides a method for automatically testing the performance of a storage array, which automatically completes the performance test of the storage array and the collection of performance data, solves the problem of requiring a large amount of manual intervention in the traditional performance test, improves the accuracy of the performance test, and is simple and convenient, and is suitable for most storage array products on the market.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and in particular to a method, system, electronic device, and storage medium for testing the performance of a storage array. Background Technology

[0002] Traditional storage arrays use RAID technology. RAID (Redundant Arrays of Independent Disks) is an array of independent disks with redundancy. It consists of many independent disks combined into a large-capacity disk group, leveraging the additive effect of individual disks to improve the overall performance of the disk system. This technology divides data into many segments and stores them on different hard drives. RAID also utilizes the concept of parity check, ensuring that data can still be read even if one hard drive in the array fails. As a high-performance, highly reliable storage technology, RAID has been widely adopted.

[0003] Traditional methods for testing storage array performance require a lot of manual intervention. Testers need to manually clean the environment before each test. When a large number of storage arrays need to be tested, this is time-consuming and prone to errors, resulting in inaccurate performance test results.

[0004] Therefore, there is an urgent need for an automated storage array performance testing method that can improve the accuracy of performance testing in order to solve the aforementioned technical problems of existing technologies. Summary of the Invention

[0005] To address the shortcomings of existing technologies, the main objective of this invention is to provide a storage array performance testing method, system, electronic device, and storage medium to solve the aforementioned technical problems of existing technologies.

[0006] To achieve the above objectives, in a first aspect, the present invention provides a method for testing the performance of a storage array, the method comprising:

[0007] Set up a test environment, which includes a storage system and a host;

[0008] Initialize the test environment;

[0009] A test storage array and a test volume are created in the storage system according to the configuration file.

[0010] The test volume is mapped to the host, and test cases are invoked to test the test volume to obtain performance data of the test storage array.

[0011] In some embodiments, initializing the test environment includes:

[0012] Query all existing storage volumes and the first mapping relationship between the existing storage volumes and the host;

[0013] The first mapping relationship, the existing storage volume, the existing storage array, and the existing storage pool are deleted according to a preset order.

[0014] Clean up the multipaths under each host to complete the initialization of the test environment.

[0015] In some embodiments, the configuration file includes definitions of the configuration environment and the test storage system;

[0016] The definition of the configuration environment includes the definition of software and hardware configuration;

[0017] The test storage system definition includes parameters for creating test storage pools, creating test storage arrays, and creating test volumes.

[0018] In some embodiments, setting up the test environment includes:

[0019] The storage system is scheduled using a remote command-line method.

[0020] Host scheduling is implemented using SSH.

[0021] Deploy the test cases to the host.

[0022] In some embodiments, deploying the test cases to the host includes:

[0023] The test cases were written using the Vdbench testing tool.

[0024] Define the storage address of the test case and the IO load in the test case, and ensure that only the test case is stored at the storage address.

[0025] In some embodiments, mapping the test volume to the host includes:

[0026] Query all the test volumes and all hosts mentioned;

[0027] Based on the number of hosts and the number of test papers, establish a second mapping relationship between the test papers and the hosts;

[0028] Based on the second mapping relationship, the test paper is mapped to the corresponding host.

[0029] In some embodiments, invoking test cases to test the test volume to obtain performance data of the test storage array includes:

[0030] The test cases are invoked to test the test paper and generate test data.

[0031] The test data is parsed to obtain the performance data, which includes IOPS data, bandwidth data, and average latency.

[0032] Obtain the hardware and software configuration, test storage array parameters, and I / O load in the current test case;

[0033] The performance data, hardware and software configurations, test storage array parameters, and I / O load in the test cases are summarized and stored for subsequent analysis.

[0034] Secondly, this application provides a storage array performance testing system, the system comprising:

[0035] The preparation module is used to set up the test environment, which includes a storage system and a host.

[0036] The preparation module is also used to initialize the test environment;

[0037] The processing module is used to create test storage arrays and test volumes in the storage system according to the configuration file;

[0038] The processing module is also used to map the test volume to the host and call test cases to test the test volume to obtain performance data of the test storage array.

[0039] Thirdly, this application provides an electronic device, the electronic device comprising:

[0040] One or more processors;

[0041] and a memory associated with the one or more processors, the memory storing program instructions that, when read and executed by the one or more processors, perform the following operations:

[0042] Set up a test environment, which includes a storage system and a host;

[0043] Initialize the test environment;

[0044] A test storage array and a test volume are created in the storage system according to the configuration file.

[0045] The test volume is mapped to the host, and test cases are invoked to test the test volume to obtain performance data of the test storage array.

[0046] Fourthly, this application also provides a computer-readable storage medium storing a computer program that causes a computer to perform the following operations:

[0047] Set up a test environment, which includes a storage system and a host;

[0048] Initialize the test environment;

[0049] A test storage array and a test volume are created in the storage system according to the configuration file.

[0050] The test volume is mapped to the host, and test cases are invoked to test the test volume to obtain performance data of the test storage array.

[0051] The beneficial effects achieved by this application are as follows:

[0052] This application provides a method for testing the performance of a storage array, comprising: setting up a test environment, the test environment including a storage system and a host; initializing the test environment; creating a test storage array and a test volume in the storage system according to a configuration file; mapping the test volume to the host, and calling test cases to test the test volume to obtain performance data of the test storage array. This application provides an automated method for testing the performance of a storage array, automatically completing the collection of performance data, solving the problem of requiring extensive manual intervention in traditional performance testing, and improving the accuracy of performance testing; moreover, if different storage arrays are needed, only the command line for creating the disk array in the configuration file needs to be changed, which is simple and convenient and applicable to most storage array products on the market. Attached Figure Description

[0053] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort, wherein:

[0054] Figure 1 This is a flowchart of a storage array performance testing method provided in an embodiment of this application;

[0055] Figure 2 This is a diagram of the storage array performance testing system architecture provided in an embodiment of this application;

[0056] Figure 3 This is a structural diagram of an electronic device provided in an embodiment of this application. Detailed Implementation

[0057] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0058] It should be understood that, in the description of this application, unless the context explicitly requires it, the words "comprising," "including," and similar terms throughout the specification and claims should be interpreted as encompassing rather than being exclusive or exhaustive; that is, meaning "including but not limited to."

[0059] It should also be understood that the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance. Furthermore, in the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0060] It should be noted that the terms "S1," "S2," etc., are used only for descriptive purposes and do not specifically refer to the order or sequence, nor are they intended to limit this application. They are merely for the convenience of describing the method of this application and should not be construed as indicating the sequential order of the steps. Furthermore, the technical solutions of the various embodiments can be combined with each other, but this must be based on the ability of those skilled in the art to implement them. When the combination of technical solutions is contradictory or impossible to implement, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection claimed in this application.

[0061] Example 1

[0062] like Figure 1 As shown in the figure, this application provides an automatic testing program. Specifically, the process of using the above-mentioned automatic testing program to perform performance testing on a storage array is as follows:

[0063] S1. Initialize the test environment.

[0064] Before initializing the test environment, it is necessary to set it up. Specifically, the automated test program can be deployed on the host machine, or further, directly on a server within the host machine. Simultaneously, define the communication method between the automated test program and the storage system as remote command line, and the communication method between the automated test program and the host machine as SSH (Secure Shell). Write test cases using the Vdbench testing tool and deploy them on the host machine. Define the storage address of the test cases and the IO (Input / Output) load within the test cases. The IO load includes IO read / write, sequential / random, block size, cache hit rate, and other data. Vdbench is an IO workload generator used to verify data integrity and measure the performance of directly attached and network-connected storage. It is a free and easy-to-use tool, often used for testing and benchmarking. Using vdbench, you can obtain performance values ​​for the storage array under a specific IO workload.

[0065] The automated testing program logs into the host via SSH and cleans up the multipaths of each host to complete the initialization of the hosts in the test environment. The specific cleanup method is a conventional technique in the art and will not be described in detail here. The automated testing program controls the storage system via remote command line and deletes the first mapping relationship, the existing storage volume, the existing storage array, and the existing storage pool in the following order to complete the initialization of the storage system in the test environment:

[0066] Step A: Disconnect the mapping relationship: Query all existing storage volumes; iterate through the numbers of all existing storage volumes, query the first mapping relationship between the existing storage volume and the host, and delete the first mapping relationship. Specifically, this can be done automatically through the following command line:

[0067] "lsvdisk-nohdr

[0068] "lsvdiskhostmap-nohdr{vdisk_id}"

[0069] "rmvdiskhostmap-host{host_id}{vdisk_id}"

[0070] Step B: Delete the volume. Specifically, this can be done automatically using the following command line:

[0071] "lsvdisk-nohdr

[0072] "rmvdisk-force{vdisk_id}"

[0073] Step C: Delete existing storage arrays, including distributed and general-purpose storage arrays. Specifically, this can be done automatically via the following command line:

[0074] "lsarray-nohdr

[0075] "mcsop rmarray-force-mdisk{mdisk_id}{mdisk_grp_id}"

[0076] Step D: Delete the existing storage pool. This can be done automatically using the following command line:

[0077] "lsmdiskgrp-nohdr

[0078] "rmmdiskgrp-force{mdiskgrp_id}"

[0079] S2. Create a test storage array and test volumes in the storage system according to the configuration file. The configuration file includes the definition of the test storage system, specifically including parameters for creating a test storage pool, creating a test storage array, and creating a test volume.

[0080] Specifically, the process of creating a test storage array and test volume includes:

[0081] Storage pools are created based on the storage pool extension data blocks predefined in the configuration file. The size (MB) of the storage pool extension data blocks to be created can be specified in the configuration file, and must be 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192. For example, writing mdisk_grp_list=[1024, 512] in the configuration file will create a storage pool Pool0 with a size of 1024 and a storage pool Pool1 with a size of 512. Writing mdisk_grp_list=

[1024] in the configuration file will create a storage pool Pool0 with a size of 1024.

[0082] Based on the storage array type that needs to be tested in the test cases, create the corresponding storage array. The array parameters include: rebuildareas (used to define the number of interface spare parts), stripewidth (used to indicate the width of a single redundant unit in the distributed driver set, i.e., the interface stripe width), and drivecount (used to specify the number of drivers used for the array, i.e., the interface array width).

[0083] If it's a distributed storage array, simply concatenate the parameters from the configuration file and use the command line "mkdistributedarray-driveclass 1-level{level}{attribute}-noinitnewextentsPool0". The configuration file predefines the parameters for the distributed storage array, for example...

[0084] If a regular storage array is created in Pool0, the spare quantity is generally required to be 0, and the stripe width should match the queue width. For example, `-rebuildareas 0-stripewidth 10-drivecount 10`. By querying the hard drive list and based on the array width parameter configured in the configuration file, several candidate drives are randomly selected. Their names are concatenated (e.g., xx:yy:zz), and the drives are specified via the command line `mkarray-level{level}-drive{drive}Pool0`. The configuration file predefines the parameters for the regular storage array, for example:

[0085]

[0086] Then, based on the number of volumes and the size of each volume defined in the configuration file, create the corresponding test volumes, such as: NUMBER_VDISK=24, VDISK_SIZE=1024*1024; that is, create 24 test volumes, each with a size of 1024*1024MB.

[0087] In addition, the configuration file also defines the configuration environment, i.e., the hardware and software configuration, where the specific values ​​are set by the testers, for example:

[0088] PRODUCT_NAME (device hard drive model) = "AS5500G5",

[0089] COMTROLLER_NUM (number of controllers) = 2.

[0090] SOFT_VERSION (software version) = "6.1.1.1",

[0091] DISK_TYPE (disk type) = "NVMe SSD",

[0092] DISK_SPEED (disk read speed) = "0",

[0093] DISK_CAPACITY (disk read speed) = "1.7T",

[0094] HOST_PORT (host port) = "FC16G".

[0095] S3. Map the tests to hosts. Determine the number of volumes mapped to each host based on the number of test volumes / number of hosts. Then, query the list of all test volumes using the command "lsvdisk-nohdr" to obtain the test volume number (vdisk_id); query the list of all hosts using the command "lshost-nohdr" to obtain the host number (host_id). Then, iterate through the test volumes and hosts to establish a second mapping relationship using the command "mkvdiskhostmap-host{host_id}{vdisk_id}". This can map the first n vdisks to host1, n-2n vdisks to host2, and so on.

[0096] S4. Log in to all hosts via SSH, complete multi-path scanning, discover test volumes, and then call the test cases deployed on the hosts to start testing and generate test results.

[0097] Specifically, by default, the `VDBENTCH_PATH` command executes all scripts in the specified folder. The folder address corresponding to the VDBENTCH test case scripts is predefined, for example, `VDBENTCH_PATH=" / root / vdbench50407"`. This folder cannot contain any files other than test case scripts. `VDBENTCH_FILE_DIR=" / root / caoqi / scripts / test"` outputs the test results to the corresponding folder; if it doesn't exist, it will be created automatically, such as `VDBENTCH_OUTPUT_PATH=" / root / caoqi / output / test3"`. If an alarm occurs, the script will not be executed. If you only want to execute a specific script, you need to set `VDBENTCH_PATH` to "" and then list the absolute path of the script in `VDBENTCH_PATH_LIST`.

[0098] The test cases are scripts written using the Vdbentch testing tool. The output test results are in HTML (HyperText Markup Language) format. The output test results are read and parsed to obtain the average IOPS, bandwidth, and latency. Then, the pre-defined hardware and software configurations in the configuration file are read (Table 1), the storage array configuration (Table 2), and the IO load in the test cases (Table 3).

[0099] Table 1

[0100] AS5500G5 2 6.1.1.1 SSD 10 1.92T

[0101] Table 2

[0102] draid5 9 1 32 1

[0103] Table 3

[0104] order 001 8KB 100% 0% 0

[0105] By summarizing Tables 1, 2, and 3 above, a single test result is obtained. Finally, thousands of test results are aggregated into a single table to obtain performance data for further analysis by R&D personnel. While obtaining performance data, this application also performs a preliminary analysis of the aggregated results. Based on the configuration file, the test results are checked, and prompts are given for failed or missed tests. Furthermore, prompts are given for unreasonable data; for example, if performance data fluctuates rapidly or is 50 / 50, the testers or R&D personnel are prompted to check the number of performance values ​​deviating from the mean; if performance data should gradually increase, the point of performance value decline is checked; if performance data changes irregularly, a sudden drop in performance value is checked, and the testers or R&D personnel are instructed to retest these abnormal results and correct them.

[0106] Based on the automatic testing program disclosed in the embodiments of this application, the performance of the storage array can be automatically tested and the performance data can be automatically collected without manual intervention, reducing possible errors and thus improving the accuracy of the generated performance data.

[0107] Example 2

[0108] Corresponding to Embodiment 1 above, this application also provides a method for testing the performance of a storage array, such as... Figure 1 As shown, the details are as follows:

[0109] 1100. Set up a test environment, which includes a storage system and a host;

[0110] Preferably, the establishment of the test environment includes:

[0111] 1110. Implement scheduling of the storage system based on remote command line;

[0112] 1120. Implement host scheduling based on SSH;

[0113] 1130. Deploy the test cases to the host.

[0114] Preferably, deploying the test cases to the host includes:

[0115] 1131. Write the test cases based on the Vdbench testing tool;

[0116] 1132. Define the storage address of the test case and the IO load in the test case, and ensure that only the test case is stored at the storage address.

[0117] 1200. Initialize the test environment;

[0118] Preferably, the initialization of the test environment includes:

[0119] 1210. Query all existing storage volumes and the first mapping relationship between the existing storage volumes and the host;

[0120] 1220. Delete the first mapping relationship, the existing storage volume, the existing storage array, and the existing storage pool according to a preset order;

[0121] 1230. Clean up the multipaths under each host to complete the initialization of the test environment.

[0122] 1300. Create a test storage array and a test volume in the storage system according to the configuration file;

[0123] Preferably, the configuration file includes definitions of the configuration environment and the test storage system;

[0124] The definition of the configuration environment includes the definition of hardware and software configuration;

[0125] The test storage system definition includes parameters for creating test storage pools, creating test storage arrays, and creating test volumes.

[0126] 1400. Map the test volume to the host and call the test cases to test the test volume to obtain the performance data of the test storage array.

[0127] Preferably, mapping the test paper to the host includes:

[0128] 1410. Query all the test papers and all hosts mentioned above;

[0129] 1420. Based on the number of hosts and the number of test papers, establish a second mapping relationship between the test papers and the hosts;

[0130] 1430. Based on the second mapping relationship, map the test paper to the corresponding host.

[0131] Preferably, the step of calling test cases to test the test volume to obtain performance data of the test storage array includes:

[0132] 1440. Call the test cases to test the test paper and generate test data;

[0133] 1450. Parse the test data to obtain the performance data, which includes IOPS data, bandwidth data, and average latency.

[0134] 1460. Obtain the hardware and software configuration, the test storage array parameters, and the IO load in the current test case;

[0135] 1470. Summarize and store the performance data, the hardware and software configuration, the test storage array parameters, and the IO load in the test cases for subsequent analysis.

[0136] Example 3

[0137] like Figure 2 As shown, corresponding to Embodiments 1 and 2 above, this application provides a storage array performance testing system, the system comprising:

[0138] Preparation module 210 is used to set up a test environment, which includes a storage system and a host.

[0139] The preparation module 210 is also used to initialize the test environment;

[0140] Processing module 220 is used to create a test storage array and a test volume in the storage system according to a configuration file;

[0141] The processing module 220 is used to map the test volume to the host and call test cases to test the test volume to obtain the performance data of the test storage array.

[0142] In some embodiments, the preparation module 210 is further configured to query all existing storage volumes and the first mapping relationship between the existing storage volumes and the hosts; the preparation module 210 is further configured to delete the first mapping relationship, the existing storage volumes, the existing storage arrays, and the existing storage pools in a preset order; the preparation module 210 is further configured to clean up the multipaths under each host to complete the initialization of the test environment.

[0143] In some embodiments, the preparation module 210 is further configured to define a configuration file, which includes a definition of a configuration environment and a definition of a test storage system; the definition of the configuration environment includes a definition of hardware and software configuration; the definition of the test storage system includes parameters for creating a test storage pool, creating a test storage array, and creating a test volume.

[0144] In some embodiments, the preparation module 210 is further configured to schedule the storage system based on a remote command line; the preparation module 210 is further configured to schedule the host based on an SSH method; the preparation module 210 is further configured to deploy the test cases to the host.

[0145] In some embodiments, the preparation module 210 is further configured to write the test cases based on the Vdbench testing tool; define the storage address of the test cases and the IO load in the test cases; and ensure that only the test cases are stored at the storage address.

[0146] In some embodiments, the processing module 220 is further configured to query all test papers and all hosts; the processing module 220 is further configured to establish a second mapping relationship between the test papers and hosts based on the number of hosts and the number of test papers; the processing module 220 is further configured to map the test papers to the corresponding hosts based on the second mapping relationship.

[0147] In some embodiments, the processing module 220 is further configured to invoke test cases to test the test volume and generate test data; the processing module 220 is further configured to parse the test data to obtain the performance data, the performance data including IOPS data, bandwidth data, and average latency; the processing module 220 is further configured to obtain the hardware and software configuration, the test storage array parameters, and the IO load in the test case under the current test case; the processing module 220 is further configured to summarize and store the performance data, the hardware and software configuration, the test storage array parameters, and the IO load in the test case for subsequent analysis.

[0148] Example 4

[0149] Corresponding to all the above embodiments, this application provides an electronic device, including:

[0150] One or more processors; and memory associated with the one or more processors, the memory storing program instructions that, when read and executed by the one or more processors, perform the following steps:

[0151] Step A: Set up the test environment, which includes a storage system and a host.

[0152] Step B: Initialize the test environment;

[0153] Step C: Create a test storage array and test volume in the storage system according to the configuration file;

[0154] Step D: Map the test volume to the host and call the test cases to test the test volume to obtain the performance data of the test storage array.

[0155] In some embodiments, the following steps are also performed:

[0156] Query all existing storage volumes and the first mapping relationship between the existing storage volumes and the host;

[0157] The first mapping relationship, the existing storage volume, the existing storage array, and the existing storage pool are deleted according to a preset order.

[0158] Clean up the multipaths under each host to complete the initialization of the test environment.

[0159] In some embodiments, the following steps are also performed:

[0160] Define a configuration file, which includes the definition of the configuration environment and the definition of the test storage system;

[0161] The definition of the configuration environment includes the definition of software and hardware configuration;

[0162] The test storage system definition includes parameters for creating test storage pools, creating test storage arrays, and creating test volumes.

[0163] In some embodiments, the following steps are also performed:

[0164] The setup of the test environment includes:

[0165] The storage system is scheduled using a remote command-line method.

[0166] Host scheduling is implemented using SSH.

[0167] Deploy the test cases to the host.

[0168] In some embodiments, the following steps are also performed:

[0169] The test cases were written using the Vdbench testing tool.

[0170] Define the storage address of the test case and the IO load in the test case, and ensure that only the test case is stored at the storage address.

[0171] In some embodiments, the following steps are also performed:

[0172] Query all the test volumes and all hosts mentioned;

[0173] Based on the number of hosts and the number of test papers, establish a second mapping relationship between the test papers and the hosts;

[0174] Based on the second mapping relationship, the test paper is mapped to the corresponding host.

[0175] In some embodiments, the following steps are also performed:

[0176] The test cases are invoked to test the test paper and generate test data.

[0177] The test data is parsed to obtain the performance data, which includes IOPS data, bandwidth data, and average latency.

[0178] Obtain the hardware and software configuration, test storage array parameters, and I / O load in the current test case;

[0179] The performance data, hardware and software configurations, test storage array parameters, and I / O load in the test cases are summarized and stored for subsequent analysis.

[0180] in, Figure 3 The architecture of an electronic device is illustrated, which may include a processor 310, a video display adapter 311, a disk drive 312, an input / output interface 313, a network interface 314, and a memory 320. The processor 310, video display adapter 311, disk drive 312, input / output interface 313, network interface 314, and memory 320 can communicate with each other via a bus 330.

[0181] The processor 310 can be implemented using a general-purpose CPU (Central Processing Unit), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to achieve the technical solution provided in this application.

[0182] The memory 320 can be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 320 can store the operating system 321 for controlling the execution of the electronic device 300, and the basic input / output system (BIOS) 322 for controlling the low-level operations of the electronic device 300. Additionally, it can store a web browser 323, a data storage management system 324, and an icon font processing system 323, etc. The aforementioned icon font processing system 323 can be the application program that specifically implements the aforementioned steps in this embodiment. In summary, when the technical solution provided in this application is implemented through software or firmware, the relevant program code is stored in the memory 320 and is called and executed by the processor 310.

[0183] Input / output interface 313 is used to connect input / output modules to realize information input and output. Input / output modules can be configured as components in the device (not shown in the figure) or externally connected to the device to provide corresponding functions. Input devices may include keyboards, mice, touch screens, microphones, various sensors, etc., and output devices may include displays, speakers, vibrators, indicator lights, etc.

[0184] Network interface 314 is used to connect a communication module (not shown in the figure) to enable communication between this device and other devices. The communication module can communicate via wired means (such as USB, Ethernet cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).

[0185] Bus 330 includes a pathway for transmitting information between various components of the device, such as processor 310, video display adapter 311, disk drive 312, input / output interface 313, network interface 314, and memory 320.

[0186] In addition, the electronic device 300 can also obtain information on specific claim conditions from the virtual resource object claim condition information database for use in condition judgment, etc.

[0187] It should be noted that although the above-described device only shows the processor 310, video display adapter 311, disk drive 312, input / output interface 313, network interface 314, memory 320, bus 330, etc., in specific implementations, the device may also include other components necessary for normal operation. Furthermore, those skilled in the art will understand that the above-described device may only include the components necessary for implementing the solution of this application, and does not necessarily include all the components shown in the figures.

[0188] Example 6

[0189] Corresponding to all the above embodiments, this application also provides a computer-readable storage medium, characterized in that it stores a computer program that causes a computer to operate as follows:

[0190] Step A: Set up the test environment, which includes a storage system and a host.

[0191] Step B: Initialize the test environment;

[0192] Step C: Create a test storage array and test volume in the storage system according to the configuration file;

[0193] Step D: Map the test volume to the host and call the test cases to test the test volume to obtain the performance data of the test storage array.

[0194] As can be seen from the above description of the embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general-purpose hardware platforms. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, a cloud server, or a network device, etc.) to execute the methods described in various embodiments or some parts of the embodiments of this application.

[0195] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, for system or system embodiments, since they are basically similar to method embodiments, the description is relatively simple, and relevant parts can be referred to the descriptions in the method embodiments. The systems and system embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without creative effort.

[0196] The above description is only a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for testing the performance of a storage array, characterized in that, The method includes: Set up a test environment, which includes a storage system and a host, wherein test cases are deployed on the host; The test environment is initialized, including: querying all existing storage volumes and the first mapping relationship between the existing storage volumes and the hosts; deleting the first mapping relationship, the existing storage volumes, the existing storage arrays, and the existing storage pools in a preset order; and cleaning up the multipaths under each host to complete the initialization of the test environment. In the storage system, test storage arrays and test volumes are created according to the configuration file, including: creating a storage pool based on the storage pool extension data blocks predefined in the configuration file; creating a corresponding storage array based on the type of storage array to be tested in the test cases; if it is a distributed storage array, generating a distributed storage array creation command by concatenating the array parameters in the configuration file, wherein the array parameters include: the number of interface spare parts, the width of a single redundant unit in the distributed drive set, and the number of drives used for the array; if it is a normal storage array, querying the hard disk list, selecting several candidate drives according to the array width parameters configured in the configuration file, and generating a normal storage array creation command based on the candidate drives; and creating corresponding test volumes according to the number of volumes and the size of each volume defined in the configuration file. Mapping the test papers to hosts includes: querying all test papers and all hosts; establishing a second mapping relationship between the test papers and hosts based on the number of hosts and the number of test papers; and mapping the test papers to the corresponding hosts based on the second mapping relationship. Log in to all hosts via SSH, perform multi-path scanning to discover test volumes, and invoke test cases to test the test volumes to obtain performance data of the test storage array. This includes: invoking test cases to test the test volumes and generate test data; parsing the test data to obtain performance data, which includes IOPS data, bandwidth data, and average latency; obtaining the hardware and software configuration, test storage array parameters, and IO load in the current test case; and summarizing and storing the performance data, hardware and software configuration, test storage array parameters, and IO load in the test case for subsequent analysis.

2. The method according to claim 1, characterized in that, The configuration file includes the definition of the configuration environment and the definition of the test storage system; The definition of the configuration environment includes the definition of software and hardware configuration; The test storage system definition includes parameters for creating test storage pools, creating test storage arrays, and creating test volumes.

3. The method according to claim 2, characterized in that, The setup of the test environment includes: The storage system is scheduled using a remote command-line method. Host scheduling is implemented using SSH. Deploy the test cases to the host.

4. The method according to claim 3, characterized in that, Deploying the test cases to the host includes: The test cases were written using the Vdbench testing tool. Define the storage address of the test case and the IO load in the test case, and ensure that only the test case is stored at the storage address.

5. A storage array performance testing system for implementing the method as described in any one of claims 1-4, characterized in that, The system includes: The preparation module is used to set up the test environment, which includes a storage system and a host. The preparation module is also used to initialize the test environment; The processing module is used to create test storage arrays and test volumes in the storage system according to the configuration file; The processing module is also used to map the test volume to the host and call test cases to test the test volume to obtain performance data of the test storage array.

6. An electronic device, characterized in that, The electronic device includes: One or more processors; And a memory associated with the one or more processors, the memory being used to store program instructions that, when read and executed by the one or more processors, perform the method of any one of claims 1-4.

7. A computer-readable storage medium, characterized in that, It stores a computer program that causes the computer to perform the method described in any one of claims 1-4.