CN112748880A - IO channel balance control method and device in storage system and readable storage medium - Google Patents

IO channel balance control method and device in storage system and readable storage medium Download PDF

Info

Publication number
CN112748880A
CN112748880A CN202110050024.8A CN202110050024A CN112748880A CN 112748880 A CN112748880 A CN 112748880A CN 202110050024 A CN202110050024 A CN 202110050024A CN 112748880 A CN112748880 A CN 112748880A
Authority
CN
China
Prior art keywords
channel
channels
storage system
target
total
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110050024.8A
Other languages
Chinese (zh)
Other versions
CN112748880B (en
Inventor
亓国强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110050024.8A priority Critical patent/CN112748880B/en
Publication of CN112748880A publication Critical patent/CN112748880A/en
Application granted granted Critical
Publication of CN112748880B publication Critical patent/CN112748880B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The application discloses an IO channel balance control method and device in a storage system and a computer readable storage medium. The method comprises the steps of constructing an IO channel control table representing all IO channel information which can be supported by the current storage system in advance, wherein each piece of IO channel information in the table comprises identification information and a use state of a channel. When a task scheduling request is received, determining the total IO channel usage number based on the load pressure of the storage system; reading the target channel with the unused use state from the IO channel control table until the number of the read channels is the total use number of the IO channels, and simultaneously setting the use state of the target channel to be in use; and when the task scheduling request is finished, changing the use state of each target channel from use to unused, and updating the IO channel control table. The method for controlling and using the IO channels can fully utilize the CPU resources to distribute the IO channels in a balanced mode, and performance of the storage system is improved.

Description

IO channel balance control method and device in storage system and readable storage medium
Technical Field
The present application relates to the field of storage technologies, and in particular, to a method and an apparatus for controlling IO channel equalization in a storage system, and a computer-readable storage medium.
Background
With the rapid development of cloud technology and artificial intelligence, internet data is explosively increased, and accordingly, storage devices are greatly increased, storage applications are diversified, requirements for high load and low time delay of the storage devices are higher and higher, which requires that the storage devices have a sufficiently high IOPS (Input/Output Operations Per Second), so as to support increasingly expansive mass data services.
Whether from the fiber card at the front end or the storage disk at the back end, such as a solid state disk, the performance of these hardware devices is very strong enough to support very high data bandwidth, so the performance bottleneck of the storage device is often concentrated on the CPU (Central Processing Unit) utilization.
Therefore, how to fully utilize the CPU resources and reasonably allocate the IO channels to improve the performance of the storage system is a technical problem to be solved by those skilled in the art.
Disclosure of Invention
The application provides an IO channel balance control method and device in a storage system and a computer readable storage medium, which can make full use of CPU resources to balance and distribute IO channels and improve the performance of the storage system.
In order to solve the above technical problems, embodiments of the present invention provide the following technical solutions:
an embodiment of the present invention provides an IO channel equalization control method in a storage system, including:
an IO channel control table used for representing all IO channel information supported by a current storage system is constructed in advance, and each piece of IO channel information comprises identification information and a use state of a channel;
when a task scheduling request is received, determining the total IO channel usage number based on the load pressure of the storage system;
reading the target channel with the use state of unused from the IO channel control table until the number of the read channels is the total use number of the IO channels, and simultaneously setting the use state of the target channel to be used;
and when the task scheduling request is detected to be finished, changing the use state of each target channel from use to unused.
Optionally, the reading the target channel with the use state as unused from the IO channel control table until the number of read channels is the total IO channel use number, and setting the use state of the target channel to be in use includes:
reading the target channel with the use state as unused from the IO channel control table;
judging whether the number of target channels in use in the IO channel control table is smaller than the total IO channel use number or not;
if the using state in the IO channel control table is that the number of the target channels in use is smaller than the total number of the IO channels in use, setting the using state of the target channels to be in use, and sending an instruction for continuously reading the channels;
and if the number of the target channels in the use state in the IO channel control table is larger than or equal to the total IO channel use number, maintaining the use state of the target channels as unused, and sending a channel reading operation ending instruction.
Optionally, the constructing an IO channel control table indicating all the IO channel information that can be supported by the current storage system includes:
acquiring the total number of IO channels supported by the storage system;
an IO channel control array is constructed according to the total number of the IO channels, and each element in the IO channel control array is initialized to indicate that the use state of each IO channel in the IO channel control array is unused; and the total number of elements of the IO channel control array is the total number of the IO channels.
Optionally, the determining the total number of IO channel uses based on the load pressure of the storage system includes:
acquiring a time delay value, a concurrency number value, a time delay weight and a concurrency weight of the storage system;
and calculating the total IO channel usage according to the delay value, the concurrency number value, the delay weight and the concurrency weight.
Optionally, the reading, from the IO channel control table, the target channel with the use state as unused includes:
presetting a plurality of channel reading threads;
and calling a plurality of channel reading threads and simultaneously reading the target channel with the use state as unused from the IO channel control table.
In another aspect, an embodiment of the present invention provides an IO channel equalization control apparatus in a storage system, including:
the table pre-construction module is used for pre-constructing an IO channel control table used for representing all IO channel information supported by the current storage system, and each piece of IO channel information comprises identification information and a use state of a channel;
the IO channel usage number determining module is used for determining the total IO channel usage number based on the load pressure of the storage system when a task scheduling request is received;
a channel reading module, configured to read the target channel with the unused use state from the IO channel control table until the number of read channels is the total IO channel use number, and set the use state of the target channel to be in use;
and the table updating module is used for changing the use state of each target channel from use to unused when the task scheduling request is detected to be finished.
Optionally, the channel reading module is further configured to:
reading the target channel with the use state as unused from the IO channel control table;
judging whether the number of target channels in use in the IO channel control table is smaller than the total IO channel use number or not;
if the using state in the IO channel control table is that the number of the target channels in use is smaller than the total number of the IO channels in use, setting the using state of the target channels to be in use, and sending an instruction for continuously reading the channels;
and if the number of the target channels in the use state in the IO channel control table is larger than or equal to the total IO channel use number, maintaining the use state of the target channels as unused, and sending a channel reading operation ending instruction.
Optionally, the IO channel usage number determining module is further configured to:
acquiring a time delay value, a concurrency number value, a time delay weight and a concurrency weight of the storage system;
and calculating the total IO channel usage according to the delay value, the concurrency number value, the delay weight and the concurrency weight.
The embodiment of the present invention further provides an IO channel equalization control apparatus in a storage system, including a processor, where the processor is configured to implement the steps of the IO channel equalization control method in the storage system according to any one of the foregoing embodiments when executing a computer program stored in a memory.
Finally, an embodiment of the present invention provides a computer-readable storage medium, where an IO channel equalization control program in a storage system is stored on the computer-readable storage medium, and when the IO channel equalization control program in the storage system is executed by a processor, the steps of the IO channel equalization control method in the storage system are implemented as in any of the foregoing.
The technical scheme provided by the application has the advantages that the IO channel control table is generated by adopting a method of separating IO channel control from use, and when the task is scheduled, the number of the required IO channels is determined according to the load pressure of the current storage system, and the corresponding IO channels are read by inquiring the IO channel control table. The use and the control of the IO channels are separated, and the number of the read channels is related to the system load, so that the CPU resource can be fully utilized, the IO channels are reasonably distributed, the balanced control of the IO channels is realized, and the performance of the storage system is improved.
In addition, the embodiment of the invention also provides a corresponding implementation device and a computer readable storage medium for the IO channel balance control method in the storage system, so that the method has higher practicability, and the device and the computer readable storage medium have corresponding advantages.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions of the related art, the drawings required to be used in the description of the embodiments or the related art will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to these drawings without creative efforts.
Fig. 1 is a schematic flowchart of an IO channel equalization control method in a storage system according to an embodiment of the present invention;
fig. 2 is a structural diagram of a specific implementation of an IO channel equalization control apparatus in a storage system according to an embodiment of the present invention;
fig. 3 is a structural diagram of another specific embodiment of an IO channel equalization control apparatus in a storage system according to an embodiment of the present invention.
Detailed Description
In order that those skilled in the art will better understand the disclosure, the invention will be described in further detail with reference to the accompanying drawings and specific embodiments. It is to be understood that the described embodiments are merely exemplary of the invention, and not restrictive of the full scope of the invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The terms "first," "second," "third," "fourth," and the like in the description and claims of this application and in the above-described drawings are used for distinguishing between different objects and not for describing a particular order. Furthermore, the terms "comprising" and "having," as well as any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not limited to only those steps or elements but may include other steps or elements not expressly listed.
Having described the technical solutions of the embodiments of the present invention, various non-limiting embodiments of the present application are described in detail below.
Referring to fig. 1, fig. 1 is a schematic flow chart of an IO channel equalization control method in a storage system according to an embodiment of the present invention, where the embodiment of the present invention may include the following:
s101: an IO channel control table for representing all IO channel information supported by the current storage system is constructed in advance.
In this step, each piece of IO channel information in the IO channel control table includes identification information and a use state of the channel, the identification information is used to identify which channel the current channel is, and the use state includes a use state and an unused state. When the table is just created, each IO channel is not used, so the use state of each IO channel is unused, and along with the operation of the storage system, each IO channel in the table updates the use state of the IO channel along with the task scheduling and the task ending, so that the IO channel control table is updated. Before an IO channel control table is constructed, all IO channels that can be supported by the storage system, that is, the total number of IO channels, or the number of all IO channels in the IO channel control table, needs to be obtained first, which is the maximum number of IO channels that can be read by a user. As an optional implementation manner, the IO channel control table may be represented in an array form, that is, an IO channel control array may be constructed according to the total number of IO channels, and each element in the IO channel control array is initialized to indicate that the use state of each IO channel in the IO channel control table is unused, and the total number of elements in the IO channel control array is the total number of IO channels.
S102: when a task scheduling request is received, the total number of IO channel usage is determined based on the load pressure of the storage system.
The total number of the IO channels used in this step refers to the total number of the IO channels that need to be used for executing the task scheduling request, and the total number of the IO channels used is smaller than the total number of the IO channels included in the IO channel control table. The determination of the number of IO channels based on the load pressure can be implemented by any relevant technology, and will not be described herein again.
S103: and reading the target channel with the unused use state from the IO channel control table until the read channel number is the total IO channel use number, and simultaneously setting the use state of the target channel to be used.
In this step, unused IO channels may be read from the IO channel control table in sequence. For a class of task scheduling requests, a group of IO channels may be allocated to the class of task scheduling requests in advance, each IO channel may be recycled in the group of IO channels, when a scheduling request of the class of task scheduling requests is executed, an unused IO channel may be read from the group of IO channels, and if the number of unused IO channels in the group is less than the total number of used IO channels, an IO channel number application instruction may be sent to allocate a new IO channel to the group of IO channels.
S104: when the task scheduling request is detected to be finished, the use state of each target channel is changed from use to unused.
In order to ensure effective utilization of the IO channels in the IO channel control table, each IO channel is immediately restored to an unused state after scheduling is finished, so that the IO channel can be used in subsequent task scheduling.
In the technical scheme provided by the embodiment of the invention, the IO channel control table is generated by adopting a method of separating IO channel control from use, and when a task is scheduled, the number of the required IO channels is determined according to the load pressure of the current storage system, and the corresponding IO channels are read by inquiring the IO channel control table. The use and the control of the IO channels are separated, and the number of the read channels is related to the system load, so that the CPU resource can be fully utilized, the IO channels are reasonably distributed, the balanced control of the IO channels is realized, and the performance of the storage system is improved.
It should be noted that, in the present application, there is no strict sequential execution order among the steps, and as long as the logical order is met, the steps may be executed simultaneously or according to a certain preset order, and fig. 1 is only an exemplary manner, and does not represent that only the execution order is the order.
In order to make the technical solutions of the present application more apparent to those skilled in the art, this application also provides an illustrative example, based on the supported IO channel capabilities, the number of the IO channels is t _ max _ num, an IO channel control array fiber [ t _ max _ num ] is maintained, all the IO channel control arrays are initialized to 0, and the fiber _ get _ ctl of each IO channel is 0, if an IO channel is used, the fiber _ get _ ctl is 1, that is, 0 and 1 may be used to identify what usage state the IO channel is in. Determining the using number t _ use _ num of the IO channels based on load pressure (factors such as time delay and concurrency number); during task scheduling, an IO channel is obtained based on a fabric _ get _ ctl, if a corresponding fabric [ fabric _ get _ ctl ] ≦ 0, the IO channel is directly used, if the number of 1 s in the IO channel array is smaller than the number of t _ use _ num, the fabric _ get _ ctl is incremented, if the increment is larger than or equal to t _ max _ num, the fabric _ get _ ctl ≦ 0, and after the task scheduling of the fabric _ cur is finished, the IO channel control table fabric [ fabric _ cur ] ≦ 0 is updated.
In the foregoing embodiment, how to perform step S103 is not limited, and this embodiment provides an implementation manner, which may include the following steps:
reading the target channel with the use state as unused from the IO channel control table;
judging whether the number of target channels in use in the IO channel control table is smaller than the total number of the IO channels in use;
if the using state in the IO channel control table is that the number of the target channels in use is smaller than the total number of the IO channels in use, setting the using state of the target channels to be in use, and sending an instruction for continuously reading the channels;
and if the number of the target channels in use is larger than or equal to the total number of the IO channels in use in the IO channel control table, maintaining the use state of the target channels as unused, and sending a channel reading operation ending instruction.
In the foregoing embodiment, how to execute step S102 is not limited, and a calculation manner of the total usage number of IO channels in this embodiment may include the following steps:
acquiring a time delay value, a concurrency number value, a time delay weight and a concurrency weight of a storage system;
and calculating the total IO channel usage according to the delay value, the concurrency number value, the delay weight and the concurrency weight.
For example, the latency weight is 50%, the concurrency weight is 30%, and the other weights are 20%. Each load item has a statistical method, and a control quantity is finally obtained. For example, the statistical range of the time delay is 0-100ms, the control quantity is 0 when the time delay is 0, and the control quantity is 100 when the time delay is 100ms or more than 100ms, although there may be a nonlinear function for control. Thus the final IO channel total usage t _ use _ num + delay item _ ctrl + 50% + and send item _ ctrl + 30% + the other items + 20%.
In order to further improve the task scheduling request execution efficiency, the process of reading the target channel with the use status as unused from the IO channel control table may include:
presetting a plurality of channel reading threads;
and calling a plurality of channel reading threads and simultaneously reading the target channel with the use state as unused from the IO channel control table.
The channel reading thread can be the same as the total number of the IO channels, so that all the IO channels can be read once without judging whether the IO channels are read or not, the operation is simplified, and the efficiency is improved. However, it should be noted that the number of the channel reading threads does not need to affect the normal service operation of the whole system, and those skilled in the art may select the number of the channel reading threads according to the actual application scenario, which is not limited in this application.
The embodiment of the invention also provides a corresponding device for the IO channel balance control method in the storage system, thereby further ensuring that the method has higher practicability. Wherein the means can be described separately from the functional module point of view and the hardware point of view. The IO channel equalization control device in the storage system according to the embodiment of the present invention is introduced below, and the IO channel equalization control device in the storage system described below and the IO channel equalization control method in the storage system described above may be referred to correspondingly.
Based on the angle of the functional module, referring to fig. 2, fig. 2 is a structural diagram of an IO channel equalization control device in a storage system according to an embodiment of the present invention, in a specific implementation manner, where the device may include:
the table pre-construction module 201 is configured to pre-construct an IO channel control table used for representing all IO channel information supported by the current storage system, where each piece of IO channel information includes identification information and a use state of a channel.
The IO channel usage number determining module 202 is configured to determine, when a task scheduling request is received, an IO channel usage total number based on a load pressure of the storage system.
The channel reading module 203 is configured to read a target channel with an unused use state from the IO channel control table until the number of read channels is the total IO channel use number, and set the use state of the target channel to be in use.
And the table updating module 204 is used for changing the use state of each target channel from use to unused when the task scheduling request is detected to be finished.
Optionally, in some embodiments of this embodiment, the channel reading module 203 may be further configured to:
reading the target channel with the use state as unused from the IO channel control table;
judging whether the number of target channels in use in the IO channel control table is smaller than the total number of the IO channels in use;
if the using state in the IO channel control table is that the number of the target channels in use is smaller than the total number of the IO channels in use, setting the using state of the target channels to be in use, and sending an instruction for continuously reading the channels;
and if the number of the target channels in use is larger than or equal to the total number of the IO channels in use in the IO channel control table, maintaining the use state of the target channels as unused, and sending a channel reading operation ending instruction.
As an optional implementation manner of this embodiment, the channel reading module 203 may further be configured to:
presetting a plurality of channel reading threads;
and calling a plurality of channel reading threads and simultaneously reading the target channel with the use state as unused from the IO channel control table.
Optionally, in other embodiments of this embodiment, the IO channel usage number determining module 202 may be further configured to:
acquiring a time delay value, a concurrency number value, a time delay weight and a concurrency weight of a storage system;
and calculating the total IO channel usage according to the delay value, the concurrency number value, the delay weight and the concurrency weight.
As an alternative embodiment, the table pre-construction module 201 may be further configured to:
acquiring the total number of IO channels supported by a storage system;
an IO channel control array is constructed according to the total number of the IO channels, and each element in the IO channel control array is initialized to be used for indicating that the use state of each IO channel in the IO channel control table is unused; and the total number of the elements of the IO channel control array is the total number of the IO channels.
The functions of each functional module of the IO channel equalization control device in the storage system according to the embodiment of the present invention may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the description related to the foregoing method embodiment, which is not described herein again.
Therefore, the IO channel can be distributed in a balanced manner by fully utilizing the CPU resource by adopting the IO channel control and use separation method, and the performance of the storage system is improved.
The IO channel equalization control device in the storage system mentioned above is described from the perspective of a functional module, and further, the present application also provides an IO channel equalization control device in a storage system, which is described from the perspective of hardware. Fig. 3 is a structural diagram of an IO channel equalization control apparatus in another storage system according to an embodiment of the present application. As shown in fig. 3, the apparatus comprises a memory 30 for storing a computer program;
the processor 31 is configured to implement the steps of the IO channel equalization control method in the storage system according to any one of the above embodiments when executing the computer program.
The processor 31 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like. The processor 31 may be implemented in at least one hardware form of a DSP (Digital Signal Processing), an FPGA (Field-Programmable Gate Array), and a PLA (Programmable Logic Array). The processor 31 may also include a main processor and a coprocessor, where the main processor is a processor for Processing data in an awake state, and is also called a Central Processing Unit (CPU); a coprocessor is a low power processor for processing data in a standby state. In some embodiments, the processor 31 may be integrated with a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content required to be displayed on the display screen. In some embodiments, the processor 31 may further include an AI (Artificial Intelligence) processor for processing a calculation operation related to machine learning.
Memory 30 may include one or more computer-readable storage media, which may be non-transitory. Memory 30 may also include high speed random access memory, as well as non-volatile memory, such as one or more magnetic disk storage devices, flash memory storage devices. In this embodiment, the memory 30 is at least used for storing the following computer program 301, wherein after being loaded and executed by the processor 31, the computer program can implement the relevant steps of the IO channel equalization control method in the storage system disclosed in any of the foregoing embodiments. In addition, the resources stored by the memory 30 may also include an operating system 302, data 303, and the like, and the storage may be transient storage or permanent storage. Operating system 302 may include Windows, Unix, Linux, etc. The data 303 may include, but is not limited to, data corresponding to an IO channel equalization control result in the storage system, and the like.
In some embodiments, the IO channel equalization control device in the storage system may further include a display screen 32, an input/output interface 33, a communication interface 34, a power supply 35, and a communication bus 36.
Those skilled in the art will appreciate that the configuration shown in fig. 3 does not constitute a limitation of the IO channel equalization control device in the storage system, and may include more or fewer components than those shown, such as sensor 37.
The functions of each functional module of the IO channel equalization control device in the storage system according to the embodiment of the present invention may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the description related to the foregoing method embodiment, which is not described herein again.
Therefore, the IO channel can be distributed in a balanced manner by fully utilizing the CPU resource by adopting the IO channel control and use separation method, and the performance of the storage system is improved.
It is to be understood that, if the IO channel equalization control method in the storage system in the above embodiment is implemented in the form of a software functional unit and sold or used as a standalone product, it may be stored in a computer readable storage medium. Based on such understanding, the technical solutions of the present application may be substantially or partially implemented in the form of a software product, which is stored in a storage medium and executes all or part of the steps of the methods of the embodiments of the present application, or all or part of the technical solutions. And the aforementioned storage medium includes: a U disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), an electrically erasable programmable ROM, a register, a hard disk, a removable magnetic disk, a CD-ROM, a magnetic or optical disk, and other various media capable of storing program codes.
Based on this, an embodiment of the present invention further provides a computer-readable storage medium, in which an IO channel equalization control program in a storage system is stored, and when the IO channel equalization control program in the storage system is executed by a processor, the steps of the IO channel equalization control method in the storage system according to any one of the above embodiments are provided.
The functions of the functional modules of the computer-readable storage medium according to the embodiment of the present invention may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the related description of the foregoing method embodiment, which is not described herein again.
Therefore, the IO channel can be distributed in a balanced manner by fully utilizing the CPU resource by adopting the IO channel control and use separation method, and the performance of the storage system is improved.
The embodiments are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same or similar parts among the embodiments are referred to each other. The device disclosed by the embodiment corresponds to the method disclosed by the embodiment, so that the description is simple, and the relevant points can be referred to the method part for description.
Those of skill would further appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the various illustrative components and steps have been described above generally in terms of their functionality in order to clearly illustrate this interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The detailed description is given above of an IO channel equalization control method and apparatus in a storage system, and a computer-readable storage medium. The principles and embodiments of the present invention are explained herein using specific examples, which are presented only to assist in understanding the method and its core concepts. It should be noted that, for those skilled in the art, it is possible to make various improvements and modifications to the present invention without departing from the principle of the present invention, and those improvements and modifications also fall within the scope of the claims of the present application.

Claims (10)

1. An IO channel equalization control method in a storage system is characterized by comprising the following steps:
an IO channel control table used for representing all IO channel information supported by a current storage system is constructed in advance, and each piece of IO channel information comprises identification information and a use state of a channel;
when a task scheduling request is received, determining the total IO channel usage number based on the load pressure of the storage system;
reading the target channel with the use state of unused from the IO channel control table until the number of the read channels is the total use number of the IO channels, and simultaneously setting the use state of the target channel to be used;
and when the task scheduling request is detected to be finished, changing the use state of each target channel from use to unused.
2. The IO channel equalization control method according to claim 1, wherein the reading of the target channel whose use status is unused from the IO channel control table until the number of channels read is the total IO channel use number, and setting the use status of the target channel to be in use includes:
reading the target channel with the use state as unused from the IO channel control table;
judging whether the number of target channels in use in the IO channel control table is smaller than the total IO channel use number or not;
if the using state in the IO channel control table is that the number of the target channels in use is smaller than the total number of the IO channels in use, setting the using state of the target channels to be in use, and sending an instruction for continuously reading the channels;
and if the number of the target channels in the use state in the IO channel control table is larger than or equal to the total IO channel use number, maintaining the use state of the target channels as unused, and sending a channel reading operation ending instruction.
3. The IO channel equalization control method in the storage system according to claim 2, wherein the constructing an IO channel control table indicating all IO channel information that can be supported by the current storage system includes:
acquiring the total number of IO channels supported by the storage system;
an IO channel control array is constructed according to the total number of the IO channels, and each element in the IO channel control array is initialized to indicate that the use state of each IO channel in the IO channel control array is unused; and the total number of elements of the IO channel control array is the total number of the IO channels.
4. The IO channel balancing control method in the storage system according to any one of claims 1 to 3, wherein the determining the total IO channel usage number based on the load pressure of the storage system includes:
acquiring a time delay value, a concurrency number value, a time delay weight and a concurrency weight of the storage system;
and calculating the total IO channel usage according to the delay value, the concurrency number value, the delay weight and the concurrency weight.
5. The IO channel equalization control method according to claim 4, wherein the reading of the target channel with the unused use status from the IO channel control table includes:
presetting a plurality of channel reading threads;
and calling a plurality of channel reading threads and simultaneously reading the target channel with the use state as unused from the IO channel control table.
6. An IO channel equalization control apparatus in a storage system, comprising:
the table pre-construction module is used for pre-constructing an IO channel control table used for representing all IO channel information supported by the current storage system, and each piece of IO channel information comprises identification information and a use state of a channel;
the IO channel usage number determining module is used for determining the total IO channel usage number based on the load pressure of the storage system when a task scheduling request is received;
a channel reading module, configured to read the target channel with the unused use state from the IO channel control table until the number of read channels is the total IO channel use number, and set the use state of the target channel to be in use;
and the table updating module is used for changing the use state of each target channel from use to unused when the task scheduling request is detected to be finished.
7. The IO channel equalization control device in the storage system according to claim 6, wherein the channel reading module is further configured to:
reading the target channel with the use state as unused from the IO channel control table;
judging whether the number of target channels in use in the IO channel control table is smaller than the total IO channel use number or not;
if the using state in the IO channel control table is that the number of the target channels in use is smaller than the total number of the IO channels in use, setting the using state of the target channels to be in use, and sending an instruction for continuously reading the channels;
and if the number of the target channels in the use state in the IO channel control table is larger than or equal to the total IO channel use number, maintaining the use state of the target channels as unused, and sending a channel reading operation ending instruction.
8. The IO channel equalization control device in the storage system according to claim 7, wherein the IO channel usage number determining module is further configured to:
acquiring a time delay value, a concurrency number value, a time delay weight and a concurrency weight of the storage system;
and calculating the total IO channel usage according to the delay value, the concurrency number value, the delay weight and the concurrency weight.
9. An IO channel equalization control apparatus in a storage system, comprising a processor, the processor being configured to implement the steps of the IO channel equalization control method in the storage system according to any one of claims 1 to 5 when executing a computer program stored in a memory.
10. A computer-readable storage medium, wherein the computer-readable storage medium stores thereon an IO channel equalization control program in a storage system, and when executed by a processor, the IO channel equalization control program in the storage system implements the steps of the IO channel equalization control method in the storage system according to any one of claims 1 to 5.
CN202110050024.8A 2021-01-14 2021-01-14 IO channel balance control method and device in storage system and readable storage medium Active CN112748880B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110050024.8A CN112748880B (en) 2021-01-14 2021-01-14 IO channel balance control method and device in storage system and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110050024.8A CN112748880B (en) 2021-01-14 2021-01-14 IO channel balance control method and device in storage system and readable storage medium

Publications (2)

Publication Number Publication Date
CN112748880A true CN112748880A (en) 2021-05-04
CN112748880B CN112748880B (en) 2023-01-10

Family

ID=75651988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110050024.8A Active CN112748880B (en) 2021-01-14 2021-01-14 IO channel balance control method and device in storage system and readable storage medium

Country Status (1)

Country Link
CN (1) CN112748880B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849129A (en) * 2021-09-18 2021-12-28 苏州浪潮智能科技有限公司 IO (input/output) request forwarding method, device and equipment between storage controllers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185467A1 (en) * 2012-01-12 2013-07-18 Narsimha Reddy Challa Managing data paths between computer applications and data storage devices
CN110471747A (en) * 2019-07-04 2019-11-19 深圳市通创通信有限公司 A kind of scheduling application method, device and the terminal device of DMA multichannel
CN112084027A (en) * 2020-09-04 2020-12-15 北京灵汐科技有限公司 Network-on-chip data transmission method, device, network-on-chip, equipment and medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185467A1 (en) * 2012-01-12 2013-07-18 Narsimha Reddy Challa Managing data paths between computer applications and data storage devices
CN110471747A (en) * 2019-07-04 2019-11-19 深圳市通创通信有限公司 A kind of scheduling application method, device and the terminal device of DMA multichannel
CN112084027A (en) * 2020-09-04 2020-12-15 北京灵汐科技有限公司 Network-on-chip data transmission method, device, network-on-chip, equipment and medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849129A (en) * 2021-09-18 2021-12-28 苏州浪潮智能科技有限公司 IO (input/output) request forwarding method, device and equipment between storage controllers
CN113849129B (en) * 2021-09-18 2023-08-25 苏州浪潮智能科技有限公司 IO request forwarding method, device and equipment among storage controllers

Also Published As

Publication number Publication date
CN112748880B (en) 2023-01-10

Similar Documents

Publication Publication Date Title
CN111901409B (en) Load balancing implementation method and device of virtualized cloud platform and readable storage medium
EP3355187A1 (en) Loading method and device for terminal application (app)
EP3253027A1 (en) Resource allocation method and apparatus for virtual machines
US20210103456A1 (en) Virtualized network function deployment
US20140189708A1 (en) Terminal and method for executing application in same
CN111104210A (en) Task processing method and device and computer system
CN109634718A (en) The method and system of cloud platform creation mirror image
CN111552550A (en) Task scheduling method, device and medium based on GPU (graphics processing Unit) resources
CN112748880B (en) IO channel balance control method and device in storage system and readable storage medium
CN111176790A (en) Active maintenance method and device of cloud platform physical host and readable storage medium
CN110399214A (en) A kind of method, apparatus and computer equipment of the load of optimization video card
CN114461393A (en) Multitask scheduling method, multitask scheduling device, electronic equipment, multitask scheduling system and automatic driving vehicle
CN116680060A (en) Task allocation method, device, equipment and medium for heterogeneous computing system
CN111737275A (en) Database update event processing method and device and computer readable storage medium
CN112269719B (en) AI training platform-based file operation queue control method, device and medium
US10896056B2 (en) Cluster expansion method and apparatus, electronic device and storage medium
CN111953503A (en) NFV resource deployment arrangement method and network function virtualization orchestrator
CN111159124B (en) Asynchronous write caching method, device and medium for Linux kernel file system
CN107483634B (en) Load balancing method and system
US11379130B2 (en) Predicting and preparing volume configurations
CN112860401A (en) Task scheduling method and device, electronic equipment and storage medium
CN114153592A (en) Physical host load scheduling method and device of cloud platform, electronic equipment and medium
US10620982B2 (en) Multi-target deployment of virtual systems
CN114996005A (en) Resource scheduling method, device, equipment and medium
CN114448909A (en) Ovs-based network card queue polling method and device, computer equipment and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant