WO2023061215A1 - Io processing method and system, and medium - Google Patents

Io processing method and system, and medium Download PDF

Info

Publication number
WO2023061215A1
WO2023061215A1 PCT/CN2022/121848 CN2022121848W WO2023061215A1 WO 2023061215 A1 WO2023061215 A1 WO 2023061215A1 CN 2022121848 W CN2022121848 W CN 2022121848W WO 2023061215 A1 WO2023061215 A1 WO 2023061215A1
Authority
WO
WIPO (PCT)
Prior art keywords
management module
command
processor
data
data flow
Prior art date
Application number
PCT/CN2022/121848
Other languages
French (fr)
Chinese (zh)
Inventor
范瑞春
Original Assignee
苏州浪潮智能科技有限公司
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 苏州浪潮智能科技有限公司 filed Critical 苏州浪潮智能科技有限公司
Publication of WO2023061215A1 publication Critical patent/WO2023061215A1/en

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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present application relates to the field of computer technology, and in particular to an IO processing method, a corresponding system, and a corresponding non-volatile computer-readable storage medium.
  • Latency jitter can measure the stability of the SSD, and the smaller the jitter, the better the stability of the SSD.
  • DM Data Manager, Data Management Module
  • the more DMs the greater the maximum processing capacity of SSD.
  • a DM will be deployed on each processor, and each DM is in an equal position, and the controller receives IO commands from the host (referring to IN/OUT instructions, which are computer
  • IN/OUT instructions which are computer
  • a part of the command system which does not directly control the transmission of I/O data, is responsible for starting and stopping the process of I/O, querying the status of channels and I/O devices, and controlling the channel to perform certain operations) and will be evenly distributed to each DM to process.
  • the number of DMs cannot be reduced.
  • the purpose of this application is to propose an IO processing method and system to solve the problem of large delay and jitter caused by each processor of the solid state disk in the prior art due to the need to process the data management module and multiple other modules. question.
  • the present application provides a method for processing IO, comprising the following steps:
  • Deploy the data management module in the multiple processors of the solid-state hard drive divide the multiple processors into several groups, and select the specified processor in each group according to preset rules
  • the data management module deployed in the specified processor is used as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as the standby management modules;
  • the main management module In response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to select one of the standby management modules as the selected management module based on each pending data flow , and forward the IO command to the selected management module, so that the selected management module processes the IO command.
  • selecting a designated processor in each group according to preset rules includes:
  • each group the processor with the fewest pending tasks is selected as the designated processor.
  • selecting the processor with the fewest pending tasks in each group as the designated processor comprises:
  • each group select the processor that deploys only the data management module as the designated processor.
  • selecting one of the standby management modules as the selected management module based on each data flow to be processed comprises:
  • the method also includes:
  • the main management module In response to the currently processed data traffic not exceeding the maximum processing traffic, the main management module processes the IO command.
  • dividing the plurality of processors into groups includes:
  • the IO command received by the main management module includes:
  • the main management module receives the IO command of the command submitting module.
  • the method also includes:
  • each data management module is assigned the same context descriptor.
  • the method also includes:
  • the context descriptor occupied by the master management module is released.
  • Another aspect of the present application also provides an IO processing system, including:
  • the designated processor selection module is configured to deploy the data management module among the multiple processors of the solid-state disk, divide the multiple processors into several groups, and select the designated processor in each group according to preset rules;
  • the classification module is configured to use the data management module deployed in the specified processor as the main management module, and use the data management modules deployed in other processors in the group where the specified processor is located as the standby management module respectively;
  • the judging module is configured to calculate the data flow currently processed by the main management module in response to receiving an IO command, and judge whether the currently processed data flow exceeds its maximum processing flow;
  • the IO processing module is configured to respond to the currently processed data flow exceeding the maximum processing flow, and the main management module respectively checks the pending data flow of each corresponding standby management module, so as to extract data from each standby management module based on each pending data flow One is selected as the selected management module, and the IO command is forwarded to the selected management module, so that the selected management module processes the IO command.
  • a computer-readable storage medium which stores computer program instructions, and implements the above method when the computer program instructions are executed by a processor.
  • a computer device including a memory and a processor, where a computer program is stored in the memory, and the computer program executes the above method when executed by the processor.
  • the IO processing method of the present application divides the multiple data management modules of the solid-state disk into a main management module and a backup management module, and only uses the main management module under low task pressure, and the main management module sends the IO commands under high task pressure. It is forwarded to the standby management module for processing, which plays the role of data flow management, and can effectively reduce the delay jitter under the condition that the maximum bandwidth remains unchanged, thereby not only meeting the bandwidth performance requirements, but also improving the QoS performance requirements of the SSD .
  • FIG. 1 is a schematic diagram of an IO processing method provided according to an embodiment of the present application
  • FIG. 2 is a schematic diagram of an IO processing system provided according to an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a non-volatile computer-readable storage medium for implementing an IO processing method according to an embodiment of the present application
  • FIG. 4 is a schematic diagram of a hardware structure of a computer device for executing an IO processing method according to an embodiment of the present application.
  • FIG. 1 is a schematic diagram of an embodiment of an IO processing method provided by the present application. As shown in Figure 1, the embodiment of the present application includes the following steps:
  • Step S10 deploy data management modules in multiple processors of the solid-state hard disk, divide the multiple processors into several groups, and select a designated processor in each group according to preset rules;
  • Step S20 using the data management module deployed in the specified processor as the main management module, and using the data management modules deployed in other processors in the group where the specified processor is located as the backup management module;
  • Step S30 in response to the main management module receiving the IO command, calculate its currently processed data flow, and determine whether the currently processed data flow exceeds its maximum processing flow;
  • Step S40 in response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to select one of the standby management modules based on each pending data flow.
  • the management module is selected, and the IO command is forwarded to the selected management module, so that the selected management module processes the IO command.
  • IO means data input (Input) and output (Output).
  • the processor of a solid-state drive is the main control, which is essentially a small processor, and is similar to a mobile phone processor. It is an ARM architecture, and even high-end SSDs use a RISC architecture. Unit, central processing unit) and GPU (Graphics Processing Unit, graphics processing unit), the third largest computing core, used to control the storage order of information and maintain the normal operation of each flash memory unit.
  • the IO processing method of the embodiment of the present application divides the multiple data management modules of the solid-state disk into a main management module and a backup management module, and only uses the main management module under low task pressure, and the main management module under high task pressure.
  • the IO command is forwarded to the standby management module for processing, which plays a role in data traffic management and can effectively reduce the delay jitter while the maximum bandwidth remains unchanged, thereby not only meeting the bandwidth performance requirements, but also improving the QoS of the SSD performance requirements.
  • selecting the designated processor in each group according to a preset rule includes: selecting a processor with the fewest tasks to be processed in each group as the designated processor.
  • selecting a processor with the fewest tasks to be processed in each group as the designated processor includes: selecting a processor in each group on which only the data management module is deployed as the designated processor.
  • the designated processor can focus on processing the tasks of the data management module without switching between different tasks, thereby effectively reducing the Latency jitter ensures the QoS (Quality of Service) performance of SSDs.
  • selecting one of the standby management modules as the selected management module based on each data flow to be processed includes: selecting the standby management module with the least data flow to be processed as the selected management module.
  • the standby management module with the least data flow to be processed is selected as the selected management module.
  • the method further includes: processing the IO command by the main management module in response to the currently processed data traffic not exceeding the maximum processing traffic.
  • the data management module is respectively deployed in multiple processors of the solid-state hard disk, and the multiple processors are divided into several groups, and the specified processor is selected in each group according to preset rules;
  • the data management module acts as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as the standby management modules; if the main management module receives an IO command, it calculates the data flow it is currently processing, and Judging whether the currently processed data flow exceeds its maximum processing flow; if the currently processed data flow does not exceed the maximum processing flow, the main management module processes the IO command.
  • dividing the plurality of processors into several groups includes: equally dividing the plurality of processors into several groups.
  • the grouping method for multiple processors includes but is not limited to average grouping, and an appropriate grouping method can be selected according to actual conditions. If the average grouping method is selected, adjacent processors can be grouped into a group according to the positions of multiple processors on the SSD.
  • the main management module receiving the IO command includes: the main management module receiving the IO command from the command submission module.
  • the command submission module is SubQ Manager, which is responsible for the submission of SubQ instructions.
  • the configuration of the SubQ Manager is modified so that it can only send IO commands to the main management module, but cannot send IO commands to the standby management module.
  • the method further includes: in response to powering on the solid state disk, assigning the same context descriptor to each data management module.
  • the method further includes releasing the context descriptor occupied by the master management module in response to the master management module forwarding the IO command to the selected management module.
  • the context descriptor includes Command, dataframe and so on.
  • Descriptor refers to a file descriptor.
  • the kernel uses file descriptors to access files. When opening an existing file or creating a new file, the kernel returns a file descriptor. Reading and writing files also requires the use of file descriptors to specify the file to be read and written.
  • a file descriptor is a handle represented by an unsigned integer that a process uses to identify an open file. Each file descriptor will correspond to an open file, and at the same time, different file descriptors will also point to the same file. The same file can be opened by different processes or multiple times in the same process.
  • a file descriptor is associated with a file object that includes relevant information (such as the file's opening mode, the file's location type, the file's initial type, etc.), which is called the file's context.
  • each DM is assigned the same context description such as Command and dataframe character, to ensure that each DM can exert its maximum data processing capacity.
  • the main DM After the main DM receives the IO command, it first calculates the currently processed traffic. If the currently processed traffic does not exceed the maximum processing capacity, it processes the IO command and does not forward it. Through traffic calculation, if the traffic currently processed by the main DM exceeds the maximum processing capacity, then the main DM checks the traffic processing status of the three backup DMs in the group where the DM is located, selects a backup DM with the least traffic to be processed, and then The IO command is forwarded to the selected standby DM, so that the standby DM can help process the IO command. After the forwarding is successful, the active DM immediately releases the occupied context descriptor.
  • the master DM can not only process data, but also regulate flow, thereby playing the role of data flow control.
  • FIG. 2 is a schematic diagram of an embodiment of the IO processing system provided by the present application.
  • a kind of IO processing system comprises: designated processor selection module 10, is configured to deploy the data management module respectively in a plurality of processors of solid-state hard disk, and a plurality of processors are divided into several groups, and in Select the specified processor in each group according to the preset rules; the classification module 20 is configured to use the data management module deployed in the specified processor as the main management module, and use the data management module deployed in other processors in the group where the specified processor is located The data management modules are respectively used as standby management modules; the judging module 30 is configured to respond to the main management module receiving an IO command, calculate its current processing data flow, and judge whether the currently processed data flow exceeds its maximum processing flow; and IO The processing module 40 is configured to, in response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flow of each corresponding stand
  • the designated processor selection module 10 includes a pending task determination module configured to select a processor with the least pending tasks in each group as the designated processor.
  • the to-be-processed task determination module includes a deployment module configured to select, in each group, only processors that deploy the data management module as designated processors.
  • the IO processing module 40 includes a standby management module selection module configured to select the standby management module with the least data flow to be processed as the selected management module.
  • system further includes a main management module processing module configured to process the IO command by the main management module in response to the currently processed data flow not exceeding the maximum processing flow.
  • the designated processor selection module 10 includes a grouping module configured to equally divide the plurality of processors into several groups.
  • the judging module 30 includes an IO command receiving module configured for the main management module to receive the IO command from the command submitting module.
  • system further includes a descriptor allocation module configured to allocate the same context descriptor to each data management module in response to the solid state disk being powered on.
  • system further includes a descriptor release module configured to release the context descriptor occupied by the main management module in response to the main management module forwarding the IO command to the selected management module.
  • the IO processing system of the embodiment of the present application divides the multiple data management modules of the solid-state disk into a main management module and a backup management module, and only uses the main management module under low task pressure, and the main management module under high task pressure.
  • the IO command is forwarded to the standby management module for processing, which plays a role in data traffic management and can effectively reduce the delay jitter while the maximum bandwidth remains unchanged, thereby not only meeting the bandwidth performance requirements, but also improving the QoS of the SSD performance requirements.
  • FIG. 3 shows a schematic diagram of a non-volatile computer-readable storage medium for implementing the IO processing method provided according to the embodiment of the present application.
  • a non-transitory computer readable storage medium 3 stores computer program instructions 31 .
  • the computer program instructions 31 are executed by the processor, the following steps are realized:
  • Deploy the data management module in the multiple processors of the solid-state hard drive divide the multiple processors into several groups, and select the specified processor in each group according to the preset rules
  • the data management module deployed in the specified processor is used as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as the standby management modules;
  • the main management module In response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to select one of the standby management modules as the selected management module based on each pending data flow , and forward the IO command to the selected management module, so that the selected management module processes the IO command.
  • selecting the designated processor in each group according to a preset rule includes: selecting a processor with the fewest tasks to be processed in each group as the designated processor.
  • selecting a processor with the fewest tasks to be processed in each group as the designated processor includes: selecting a processor in each group on which only the data management module is deployed as the designated processor.
  • selecting one of the standby management modules as the selected management module based on each data flow to be processed includes: selecting the standby management module with the least data flow to be processed as the selected management module.
  • the step further includes: processing the IO command by the main management module in response to the currently processed data traffic not exceeding the maximum processing traffic.
  • dividing the plurality of processors into several groups includes: equally dividing the plurality of processors into several groups.
  • the main management module receiving the IO command includes: the main management module receiving the IO command from the command submission module.
  • the step further includes: in response to powering on the solid state disk, assigning the same context descriptor to each data management module.
  • the steps further include releasing the context descriptor occupied by the master management module in response to the master management module forwarding the IO command to the selected management module.
  • a computer device including a memory 402 and a processor 401 as shown in FIG. The method of any one of the embodiments.
  • FIG. 4 it is a schematic diagram of a hardware structure of a computer device implementing the IO processing method provided by the present application.
  • the computer equipment includes a processor 401 and a memory 402 , and may further include: an input device 403 and an output device 404 .
  • the processor 401, the memory 402, the input device 403, and the output device 404 may be connected via a bus or in other ways. In FIG. 4, connection via a bus is taken as an example.
  • the input device 403 can receive input numbers or character information, and generate key signal input related to user settings and function control of the IO processing system.
  • the output device 404 may include a display device such as a display screen.
  • the memory 402 as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs and modules, such as program instructions corresponding to the IO processing method in the embodiment of the present application /module.
  • the memory 402 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application program required by at least one function; the data storage area may store data created by using the IO processing method, and the like.
  • the memory 402 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage devices.
  • the memory 402 may optionally include memory that is remotely located relative to the processor 401, and these remote memories may be connected to the local module through a network.
  • Examples of the aforementioned networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
  • the processor 401 executes various functional applications and data processing of the server by running the non-volatile software programs, instructions and modules stored in the memory 402, that is, implements the IO processing method of the above method embodiment.
  • nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory memory.
  • Volatile memory can include random access memory (RAM), which can act as external cache memory.
  • RAM is available in various forms such as Synchronous RAM (DRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DRRAM).
  • DRAM Synchronous RAM
  • DRAM Dynamic RAM
  • SDRAM Synchronous DRAM
  • DDR SDRAM Double Data Rate SDRAM
  • ESDRAM Enhanced SDRAM
  • SLDRAM Synchronous Link DRAM
  • DRRAM Direct Rambus RAM
  • Storage devices of the disclosed aspects are intended to include, but are not limited to, these and other suitable types of memory.
  • a general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • a processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP, and/or any other such configuration.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Provided in the present application are an IO processing method and system, and a medium. The method comprises: respectively deploying data managers in a plurality of processors of a solid state disk, dividing the plurality of processors into several groups, and selecting a specified processor from each group according to a preset rule; using, as a main manager, the data manager deployed in the specified processor, and respectively using, as standby managers, the data managers deployed in other processors in the group where the specified processor is located; if the main manager has received an IO command, calculating data traffic that is currently being processed by the main manager, and determining whether the currently processed data traffic exceeds the maximum processing traffic thereof; and if the currently processed data traffic exceeds the maximum processing traffic, the main manager respectively checking data traffic to be processed of the corresponding standby managers, so as to select one of the standby managers as a selected manager, and forwarding the IO command to the selected manager, such that the selected manager processes the IO command. By means of the present application, the effect of managing data traffic is realized.

Description

IO处理方法、系统及介质IO processing method, system and medium
相关申请的交叉引用Cross References to Related Applications
本申请要求于2021年10月15日提交中国专利局,申请号为202111205383.2,申请名称为“一种IO处理方法及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of a Chinese patent application filed on October 15, 2021 with the application number 202111205383.2 and titled "A Method and System for IO Processing" submitted to the China Patent Office, the entire contents of which are incorporated by reference in this application .
技术领域technical field
本申请涉及计算机技术领域,尤其涉及一种IO处理方法、相应的一种系统、以及相应的一种非易失性计算机可读存储介质。The present application relates to the field of computer technology, and in particular to an IO processing method, a corresponding system, and a corresponding non-volatile computer-readable storage medium.
背景技术Background technique
对于SSD(Solid State Disk或Solid State Drive,固态硬盘)产品来说,QoS(Quality of Service,服务质量)中的时延抖动是一个非常重要的性能衡量指标。时延抖动可以衡量SSD的稳定性,抖动越小,说明SSD的稳定性越好。For SSD (Solid State Disk or Solid State Drive, solid state disk) products, the delay jitter in QoS (Quality of Service, service quality) is a very important performance measurement index. Latency jitter can measure the stability of the SSD, and the smaller the jitter, the better the stability of the SSD.
现有的大多数SSD都是具有多个处理器,因为DM(Data Manager,数据管理模块)是影响SSD性能的关键模块之一,理论上来说,DM的个数越多,SSD的最大处理能力越高,因此现有技术中在每个处理器上都会部署一个DM,且各个DM处于平等地位,控制器从host(主机)接收到IO命令(指的是IN/OUT两种指令,是计算机指令系统的一部分,其不直接控制I/O数据的传送,负责启动、停止I/O的过程、查询通道和I/O设备的状态以及控制通道进行某些操作)后会均匀分发给各个DM进行处理。为了保证最大带宽,DM的个数不能减少。Most of the existing SSDs have multiple processors, because DM (Data Manager, Data Management Module) is one of the key modules that affect SSD performance. In theory, the more DMs, the greater the maximum processing capacity of SSD. The higher, so in the prior art, a DM will be deployed on each processor, and each DM is in an equal position, and the controller receives IO commands from the host (referring to IN/OUT instructions, which are computer A part of the command system, which does not directly control the transmission of I/O data, is responsible for starting and stopping the process of I/O, querying the status of channels and I/O devices, and controlling the channel to perform certain operations) and will be evenly distributed to each DM to process. In order to ensure the maximum bandwidth, the number of DMs cannot be reduced.
上述现有技术中存在一个很大的弊端:因为SSD中除了DM外还有其他处理模块需要部署,又因为每个处理器都部署了一个DM,因此必然存在多个模块共用一个处理器的情况,导致一个处理器需要在多个模块的任务之间切换,使得时延抖动比较大,SSD的QoS性能不佳。There is a big disadvantage in the above-mentioned prior art: because there are other processing modules to be deployed in the SSD besides the DM, and because each processor is deployed with a DM, there must be a situation where multiple modules share one processor , resulting in a processor needing to switch between the tasks of multiple modules, resulting in relatively large delay jitter and poor QoS performance of the SSD.
发明内容Contents of the invention
有鉴于此,本申请的目的在于提出一种IO处理方法及系统,用以解决现有技术中固态硬盘的每个处理器由于需要处理数据管理模块以及多个其他模块导致时延抖动较大的问题。In view of this, the purpose of this application is to propose an IO processing method and system to solve the problem of large delay and jitter caused by each processor of the solid state disk in the prior art due to the need to process the data management module and multiple other modules. question.
基于上述目的,本申请提供了一种IO处理方法,包括以下步骤:Based on the above purpose, the present application provides a method for processing IO, comprising the following steps:
在固态硬盘的多个处理器中分别部署数据管理模块,并将多个处理器分成若干组,且在 每一组中按照预设规则选择指定处理器;Deploy the data management module in the multiple processors of the solid-state hard drive, divide the multiple processors into several groups, and select the specified processor in each group according to preset rules;
将指定处理器中部署的数据管理模块作为主管理模块,且将指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;The data management module deployed in the specified processor is used as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as the standby management modules;
响应于主管理模块接收到IO命令,计算其当前处理的数据流量,并判断当前处理的数据流量是否超过其最大处理流量;In response to the main management module receiving the IO command, calculate its current processing data flow, and determine whether the currently processed data flow exceeds its maximum processing flow;
响应于当前处理的数据流量超过最大处理流量,由主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将IO命令转发至选定管理模块,以使选定管理模块处理IO命令。In response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to select one of the standby management modules as the selected management module based on each pending data flow , and forward the IO command to the selected management module, so that the selected management module processes the IO command.
在一些实施例中,在每一组中按照预设规则选择指定处理器包括:In some embodiments, selecting a designated processor in each group according to preset rules includes:
在每一组中选择待处理任务最少的处理器作为指定处理器。In each group, the processor with the fewest pending tasks is selected as the designated processor.
在一些实施例中,在每一组中选择待处理任务最少的处理器作为指定处理器包括:In some embodiments, selecting the processor with the fewest pending tasks in each group as the designated processor comprises:
在每一组中选择仅部署数据管理模块的处理器作为指定处理器。In each group select the processor that deploys only the data management module as the designated processor.
在一些实施例中,基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块包括:In some embodiments, selecting one of the standby management modules as the selected management module based on each data flow to be processed comprises:
选择待处理数据流量最少的备管理模块作为选定管理模块。Select the standby management module with the least amount of data traffic to be processed as the selected management module.
在一些实施例中,方法还包括:In some embodiments, the method also includes:
响应于当前处理的数据流量未超过最大处理流量,由主管理模块处理IO命令。In response to the currently processed data traffic not exceeding the maximum processing traffic, the main management module processes the IO command.
在一些实施例中,将多个处理器分成若干组包括:In some embodiments, dividing the plurality of processors into groups includes:
将多个处理器平均分成若干组。Divide multiple processors evenly into groups.
在一些实施例中,主管理模块接收到IO命令包括:In some embodiments, the IO command received by the main management module includes:
主管理模块接收到命令提交模块的IO命令。The main management module receives the IO command of the command submitting module.
在一些实施例中,方法还包括:In some embodiments, the method also includes:
响应于固态硬盘上电,为每个数据管理模块分别分配相同的上下文描述符。In response to powering on the solid state disk, each data management module is assigned the same context descriptor.
在一些实施例中,方法还包括:In some embodiments, the method also includes:
响应于主管理模块将IO命令转发至选定管理模块,释放主管理模块占用的上下文描述符。In response to the master management module forwarding the IO command to the selected management module, the context descriptor occupied by the master management module is released.
本申请的另一方面,还提供了一种IO处理系统,包括:Another aspect of the present application also provides an IO processing system, including:
指定处理器选择模块,配置用于在固态硬盘的多个处理器中分别部署数据管理模块,并将多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;The designated processor selection module is configured to deploy the data management module among the multiple processors of the solid-state disk, divide the multiple processors into several groups, and select the designated processor in each group according to preset rules;
分类模块,配置用于将指定处理器中部署的数据管理模块作为主管理模块,且将指定处 理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;The classification module is configured to use the data management module deployed in the specified processor as the main management module, and use the data management modules deployed in other processors in the group where the specified processor is located as the standby management module respectively;
判断模块,配置用于响应于主管理模块接收到IO命令,计算其当前处理的数据流量,并判断当前处理的数据流量是否超过其最大处理流量;以及The judging module is configured to calculate the data flow currently processed by the main management module in response to receiving an IO command, and judge whether the currently processed data flow exceeds its maximum processing flow; and
IO处理模块,配置用于响应于当前处理的数据流量超过最大处理流量,由主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将IO命令转发至选定管理模块,以使选定管理模块处理IO命令。The IO processing module is configured to respond to the currently processed data flow exceeding the maximum processing flow, and the main management module respectively checks the pending data flow of each corresponding standby management module, so as to extract data from each standby management module based on each pending data flow One is selected as the selected management module, and the IO command is forwarded to the selected management module, so that the selected management module processes the IO command.
本申请的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。In yet another aspect of the present application, a computer-readable storage medium is provided, which stores computer program instructions, and implements the above method when the computer program instructions are executed by a processor.
本申请的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。In yet another aspect of the present application, a computer device is provided, including a memory and a processor, where a computer program is stored in the memory, and the computer program executes the above method when executed by the processor.
本申请至少具有以下有益技术效果:The application at least has the following beneficial technical effects:
本申请的IO处理方法,通过对固态硬盘的多个数据管理模块划分主管理模块和备管理模块,并在低任务压力下只使用主管理模块,在高任务压力下由主管理模块将IO命令转发给备管理模块来处理,起到了数据流量管理的作用,可以保证在最大带宽不变的情况下,有效降低时延抖动,进而既满足了带宽性能要求,又提高了固态硬盘的QoS性能要求。The IO processing method of the present application divides the multiple data management modules of the solid-state disk into a main management module and a backup management module, and only uses the main management module under low task pressure, and the main management module sends the IO commands under high task pressure. It is forwarded to the standby management module for processing, which plays the role of data flow management, and can effectively reduce the delay jitter under the condition that the maximum bandwidth remains unchanged, thereby not only meeting the bandwidth performance requirements, but also improving the QoS performance requirements of the SSD .
附图说明Description of drawings
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only These are some embodiments of the present application, and those skilled in the art can obtain other embodiments according to these drawings without creative efforts.
图1为根据本申请实施例提供的IO处理方法的示意图;FIG. 1 is a schematic diagram of an IO processing method provided according to an embodiment of the present application;
图2为根据本申请实施例提供的IO处理系统的示意图;FIG. 2 is a schematic diagram of an IO processing system provided according to an embodiment of the present application;
图3为根据本申请实施例提供的实现IO处理方法的非易失性计算机可读存储介质的示意图;FIG. 3 is a schematic diagram of a non-volatile computer-readable storage medium for implementing an IO processing method according to an embodiment of the present application;
图4为根据本申请实施例提供的执行IO处理方法的计算机设备的硬件结构示意图。FIG. 4 is a schematic diagram of a hardware structure of a computer device for executing an IO processing method according to an embodiment of the present application.
具体实施方式Detailed ways
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请实施例进一步详细说明。In order to make the purpose, technical solution and advantages of the present application clearer, the embodiments of the present application will be further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.
需要说明的是,本申请实施例中所有使用“第一”和“第二”的表述均是为了区分两个 相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本申请实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。It should be noted that all the expressions using "first" and "second" in the embodiments of this application are to distinguish two entities with the same name or different parameters. It can be seen that "first" and "second" " is only for the convenience of expression, and should not be understood as limiting the embodiment of the present application. Furthermore, the terms "comprising" and "having", as well as any variations thereof, are intended to cover a non-exclusive inclusion, for example, of a process, method, system, product or other steps or elements inherent in a process, method, system, product, or device comprising a series of steps or elements.
基于上述目的,在本申请实施例中的,提出了一种IO处理方法的实施例。图1示出的是本申请提供的IO处理方法的实施例的示意图。如图1所示,本申请实施例包括如下步骤:Based on the above purpose, in the embodiment of the present application, an embodiment of an IO processing method is proposed. FIG. 1 is a schematic diagram of an embodiment of an IO processing method provided by the present application. As shown in Figure 1, the embodiment of the present application includes the following steps:
步骤S10、在固态硬盘的多个处理器中分别部署数据管理模块,并将多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;Step S10, deploy data management modules in multiple processors of the solid-state hard disk, divide the multiple processors into several groups, and select a designated processor in each group according to preset rules;
步骤S20、将指定处理器中部署的数据管理模块作为主管理模块,且将指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;Step S20, using the data management module deployed in the specified processor as the main management module, and using the data management modules deployed in other processors in the group where the specified processor is located as the backup management module;
步骤S30、响应于主管理模块接收到IO命令,计算其当前处理的数据流量,并判断当前处理的数据流量是否超过其最大处理流量;Step S30, in response to the main management module receiving the IO command, calculate its currently processed data flow, and determine whether the currently processed data flow exceeds its maximum processing flow;
步骤S40、响应于当前处理的数据流量超过最大处理流量,由主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将IO命令转发至选定管理模块,以使选定管理模块处理IO命令。Step S40, in response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to select one of the standby management modules based on each pending data flow. The management module is selected, and the IO command is forwarded to the selected management module, so that the selected management module processes the IO command.
本申请实施例中,IO表示数据输入(Input)输出(Output)。In the embodiment of the present application, IO means data input (Input) and output (Output).
固态硬盘(SSD)的处理器即主控,主控本质上就是一颗小型处理器,并且和手机处理器类似,是ARM架构,甚至高端SSD会使用RISC架构,是主机中除了CPU(Central Processing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)以外的第三大计算核心,用于控制信息的存储次序,维护各个闪存单元的正常运转。The processor of a solid-state drive (SSD) is the main control, which is essentially a small processor, and is similar to a mobile phone processor. It is an ARM architecture, and even high-end SSDs use a RISC architecture. Unit, central processing unit) and GPU (Graphics Processing Unit, graphics processing unit), the third largest computing core, used to control the storage order of information and maintain the normal operation of each flash memory unit.
本申请实施例的IO处理方法,通过对固态硬盘的多个数据管理模块划分主管理模块和备管理模块,并在低任务压力下只使用主管理模块,在高任务压力下由主管理模块将IO命令转发给备管理模块来处理,起到了数据流量管理的作用,可以保证在最大带宽不变的情况下,有效降低时延抖动,进而既满足了带宽性能要求,又提高了固态硬盘的QoS性能要求。The IO processing method of the embodiment of the present application divides the multiple data management modules of the solid-state disk into a main management module and a backup management module, and only uses the main management module under low task pressure, and the main management module under high task pressure. The IO command is forwarded to the standby management module for processing, which plays a role in data traffic management and can effectively reduce the delay jitter while the maximum bandwidth remains unchanged, thereby not only meeting the bandwidth performance requirements, but also improving the QoS of the SSD performance requirements.
在一些实施例中,在每一组中按照预设规则选择指定处理器包括:在每一组中选择待处理任务最少的处理器作为指定处理器。In some embodiments, selecting the designated processor in each group according to a preset rule includes: selecting a processor with the fewest tasks to be processed in each group as the designated processor.
在一些实施例中,在每一组中选择待处理任务最少的处理器作为指定处理器包括:在每一组中选择仅部署数据管理模块的处理器作为指定处理器。In some embodiments, selecting a processor with the fewest tasks to be processed in each group as the designated processor includes: selecting a processor in each group on which only the data management module is deployed as the designated processor.
上述实施例中,若在指定处理器中仅部署数据管理模块,而不部署其他模块,则指定处理器可以专注处理数据管理模块的任务,不需要在不同任务之间进行切换,进而可以有效降 低时延抖动,保证固态硬盘的QoS(Quality of Service,服务质量)性能。In the above embodiment, if only the data management module is deployed in the designated processor and no other modules are deployed, the designated processor can focus on processing the tasks of the data management module without switching between different tasks, thereby effectively reducing the Latency jitter ensures the QoS (Quality of Service) performance of SSDs.
在一些实施例中,基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块包括:选择待处理数据流量最少的备管理模块作为选定管理模块。In some embodiments, selecting one of the standby management modules as the selected management module based on each data flow to be processed includes: selecting the standby management module with the least data flow to be processed as the selected management module.
本实施例中,为了保证IO命令对应的数据处理更有效率,因而选择待处理数据流量最少的备管理模块作为选定管理模块。In this embodiment, in order to ensure more efficient data processing corresponding to the IO command, the standby management module with the least data flow to be processed is selected as the selected management module.
在一些实施例中,方法还包括:响应于当前处理的数据流量未超过最大处理流量,由主管理模块处理IO命令。In some embodiments, the method further includes: processing the IO command by the main management module in response to the currently processed data traffic not exceeding the maximum processing traffic.
具体地,在固态硬盘的多个处理器中分别部署数据管理模块,并将多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;将指定处理器中部署的数据管理模块作为主管理模块,且将指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;若主管理模块接收到IO命令,计算其当前处理的数据流量,并判断当前处理的数据流量是否超过其最大处理流量;若当前处理的数据流量未超过最大处理流量,由主管理模块处理该IO命令。Specifically, the data management module is respectively deployed in multiple processors of the solid-state hard disk, and the multiple processors are divided into several groups, and the specified processor is selected in each group according to preset rules; The data management module acts as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as the standby management modules; if the main management module receives an IO command, it calculates the data flow it is currently processing, and Judging whether the currently processed data flow exceeds its maximum processing flow; if the currently processed data flow does not exceed the maximum processing flow, the main management module processes the IO command.
在一些实施例中,将多个处理器分成若干组包括:将多个处理器平均分成若干组。In some embodiments, dividing the plurality of processors into several groups includes: equally dividing the plurality of processors into several groups.
本实施例中,对多个处理器的分组方式包括但不限于平均分组,可以根据实际情况选择合适的分组方式。若选择平均分组的方式,可以根据多个处理器在固态硬盘上所在的位置,将相邻的处理器分为一组。In this embodiment, the grouping method for multiple processors includes but is not limited to average grouping, and an appropriate grouping method can be selected according to actual conditions. If the average grouping method is selected, adjacent processors can be grouped into a group according to the positions of multiple processors on the SSD.
在一些实施例中,主管理模块接收到IO命令包括:主管理模块接收到命令提交模块的IO命令。In some embodiments, the main management module receiving the IO command includes: the main management module receiving the IO command from the command submission module.
本实施例中,命令提交模块为SubQ Manager,其负责SubQ指令的提交。本实施例对SubQ Manager的配置进行了修改,使其只能给主管理模块发送IO命令,而不能给备管理模块发送IO命令。In this embodiment, the command submission module is SubQ Manager, which is responsible for the submission of SubQ instructions. In this embodiment, the configuration of the SubQ Manager is modified so that it can only send IO commands to the main management module, but cannot send IO commands to the standby management module.
在一些实施例中,方法还包括:响应于固态硬盘上电,为每个数据管理模块分别分配相同的上下文描述符。In some embodiments, the method further includes: in response to powering on the solid state disk, assigning the same context descriptor to each data management module.
在一些实施例中,方法还包括:响应于主管理模块将IO命令转发至选定管理模块,释放主管理模块占用的上下文描述符。In some embodiments, the method further includes releasing the context descriptor occupied by the master management module in response to the master management module forwarding the IO command to the selected management module.
上述实施例中,上下文描述符包括Command、dataframe等。描述符指文件描述符。内核(kernel)利用文件描述符(file descriptor)来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。每一个文件描述符会 与一个打开文件相对应,同时,不同的文件描述符也会指向同一个文件。相同的文件可以被不同的进程打开也可以在同一个进程中被多次打开。文件描述符与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文。In the above embodiment, the context descriptor includes Command, dataframe and so on. Descriptor refers to a file descriptor. The kernel uses file descriptors to access files. When opening an existing file or creating a new file, the kernel returns a file descriptor. Reading and writing files also requires the use of file descriptors to specify the file to be read and written. A file descriptor is a handle represented by an unsigned integer that a process uses to identify an open file. Each file descriptor will correspond to an open file, and at the same time, different file descriptors will also point to the same file. The same file can be opened by different processes or multiple times in the same process. A file descriptor is associated with a file object that includes relevant information (such as the file's opening mode, the file's location type, the file's initial type, etc.), which is called the file's context.
本申请一示例性实施例的IO处理方法如下:The IO processing method of an exemplary embodiment of the present application is as follows:
(1)假设固态硬盘(SSD)上共有8个处理器,在每个处理器上都部署一个数据管理模块(DM),上电初始化的时候,每个DM分配相同的Command、dataframe等上下文描述符,确保每个DM都能发挥出自己最大的数据处理能力。(1) Assume that there are 8 processors on the solid-state drive (SSD), and deploy a data management module (DM) on each processor. When powering on and initializing, each DM is assigned the same context description such as Command and dataframe character, to ensure that each DM can exert its maximum data processing capacity.
(2)把8个DM平均分成两组,DM0、DM1、DM2、DM3为一组,DM4、DM5、DM6、DM7为另一组,每一组中选择任务少的处理器上部署的DM作为主DM(即主管理模块),其他三个作为备DM(即备管理模块)。任务少是指该处理器上只部署了DM,没有部署其他模块。(2) Divide the 8 DMs into two groups on average, DM0, DM1, DM2, and DM3 are one group, and DM4, DM5, DM6, and DM7 are another group. In each group, select the DM deployed on the processor with fewer tasks as The main DM (ie, the main management module), and the other three serve as standby DMs (ie, standby management modules). Fewer tasks means that only DM is deployed on the processor, and no other modules are deployed.
(3)修改SubQ Manager(命令提交模块)的配置,只允许SubQ Manager给两个主DM发送IO命令,不能给六个备DM发送IO命令。(3) Modify the configuration of SubQ Manager (command submission module), and only allow SubQ Manager to send IO commands to two main DMs, and cannot send IO commands to six standby DMs.
(4)主DM收到IO命令后,先对当前处理的流量进行计算,如果当前处理的流量没有超过最大处理能力,则处理IO命令,不进行转发处理。通过流量计算,如果主DM当前处理的流量超过了最大处理能力,那么主DM再检查该DM所在组内的3个备DM的流量处理情况,从中选择一个待处理流量最少的备DM,然后把该IO命令转发给选中的备DM,让备DM帮忙处理该IO命令,转发成功后,主DM立即释放占用的上下文描述符。(4) After the main DM receives the IO command, it first calculates the currently processed traffic. If the currently processed traffic does not exceed the maximum processing capacity, it processes the IO command and does not forward it. Through traffic calculation, if the traffic currently processed by the main DM exceeds the maximum processing capacity, then the main DM checks the traffic processing status of the three backup DMs in the group where the DM is located, selects a backup DM with the least traffic to be processed, and then The IO command is forwarded to the selected standby DM, so that the standby DM can help process the IO command. After the forwarding is successful, the active DM immediately releases the occupied context descriptor.
由此,主DM既可以处理数据,又可以调节流量,从而起到了数据流量控制的作用。Thus, the master DM can not only process data, but also regulate flow, thereby playing the role of data flow control.
在本申请实施例中,还提供了一种IO处理系统。图2示出的是本申请提供的IO处理系统的实施例的示意图。如图2所示,一种IO处理系统包括:指定处理器选择模块10,配置用于在固态硬盘的多个处理器中分别部署数据管理模块,并将多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;分类模块20,配置用于将指定处理器中部署的数据管理模块作为主管理模块,且将指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;判断模块30,配置用于响应于主管理模块接收到IO命令,计算其当前处理的数据流量,并判断当前处理的数据流量是否超过其最大处理流量;以及IO处理模块40,配置用于响应于当前处理的数据流量超过最大处理流量,由主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将IO命令转发至选定管理模块,以使选定管理模块处理IO命令。In the embodiment of the present application, an IO processing system is also provided. FIG. 2 is a schematic diagram of an embodiment of the IO processing system provided by the present application. As shown in Fig. 2, a kind of IO processing system comprises: designated processor selection module 10, is configured to deploy the data management module respectively in a plurality of processors of solid-state hard disk, and a plurality of processors are divided into several groups, and in Select the specified processor in each group according to the preset rules; the classification module 20 is configured to use the data management module deployed in the specified processor as the main management module, and use the data management module deployed in other processors in the group where the specified processor is located The data management modules are respectively used as standby management modules; the judging module 30 is configured to respond to the main management module receiving an IO command, calculate its current processing data flow, and judge whether the currently processed data flow exceeds its maximum processing flow; and IO The processing module 40 is configured to, in response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flow of each corresponding standby management module, so as to extract data from each standby management module based on each pending data flow One is selected as the selected management module, and the IO command is forwarded to the selected management module, so that the selected management module processes the IO command.
在一些实施例中,指定处理器选择模块10包括待处理任务判定模块,配置用于在每一组 中选择待处理任务最少的处理器作为指定处理器。In some embodiments, the designated processor selection module 10 includes a pending task determination module configured to select a processor with the least pending tasks in each group as the designated processor.
在一些实施例中,待处理任务判定模块包括部署模块,配置用于在每一组中选择仅部署数据管理模块的处理器作为指定处理器。In some embodiments, the to-be-processed task determination module includes a deployment module configured to select, in each group, only processors that deploy the data management module as designated processors.
在一些实施例中,IO处理模块40包括备管理模块选择模块,配置用于选择待处理数据流量最少的备管理模块作为选定管理模块。In some embodiments, the IO processing module 40 includes a standby management module selection module configured to select the standby management module with the least data flow to be processed as the selected management module.
在一些实施例中,系统还包括主管理模块处理模块,配置用于响应于当前处理的数据流量未超过最大处理流量,由主管理模块处理IO命令。In some embodiments, the system further includes a main management module processing module configured to process the IO command by the main management module in response to the currently processed data flow not exceeding the maximum processing flow.
在一些实施例中,指定处理器选择模块10包括分组模块,配置用于将多个处理器平均分成若干组。In some embodiments, the designated processor selection module 10 includes a grouping module configured to equally divide the plurality of processors into several groups.
在一些实施例中,判断模块30包括IO命令接收模块,配置用于主管理模块接收到命令提交模块的IO命令。In some embodiments, the judging module 30 includes an IO command receiving module configured for the main management module to receive the IO command from the command submitting module.
在一些实施例中,系统还包括描述符分配模块,配置用于响应于固态硬盘上电,为每个数据管理模块分别分配相同的上下文描述符。In some embodiments, the system further includes a descriptor allocation module configured to allocate the same context descriptor to each data management module in response to the solid state disk being powered on.
在一些实施例中,系统还包括描述符释放模块,配置用于响应于主管理模块将IO命令转发至选定管理模块,释放主管理模块占用的上下文描述符。In some embodiments, the system further includes a descriptor release module configured to release the context descriptor occupied by the main management module in response to the main management module forwarding the IO command to the selected management module.
本申请实施例的IO处理系统,通过对固态硬盘的多个数据管理模块划分主管理模块和备管理模块,并在低任务压力下只使用主管理模块,在高任务压力下由主管理模块将IO命令转发给备管理模块来处理,起到了数据流量管理的作用,可以保证在最大带宽不变的情况下,有效降低时延抖动,进而既满足了带宽性能要求,又提高了固态硬盘的QoS性能要求。The IO processing system of the embodiment of the present application divides the multiple data management modules of the solid-state disk into a main management module and a backup management module, and only uses the main management module under low task pressure, and the main management module under high task pressure. The IO command is forwarded to the standby management module for processing, which plays a role in data traffic management and can effectively reduce the delay jitter while the maximum bandwidth remains unchanged, thereby not only meeting the bandwidth performance requirements, but also improving the QoS of the SSD performance requirements.
在本申请实施例中,还提供了一种非易失性计算机可读存储介质,图3示出了根据本申请实施例提供的实现IO处理方法的非易失性计算机可读存储介质的示意图。如图3所示,非易失性计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现如下步骤:In the embodiment of the present application, a non-volatile computer-readable storage medium is also provided, and FIG. 3 shows a schematic diagram of a non-volatile computer-readable storage medium for implementing the IO processing method provided according to the embodiment of the present application. . As shown in FIG. 3 , a non-transitory computer readable storage medium 3 stores computer program instructions 31 . When the computer program instructions 31 are executed by the processor, the following steps are realized:
在固态硬盘的多个处理器中分别部署数据管理模块,并将多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;Deploy the data management module in the multiple processors of the solid-state hard drive, divide the multiple processors into several groups, and select the specified processor in each group according to the preset rules;
将指定处理器中部署的数据管理模块作为主管理模块,且将指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;The data management module deployed in the specified processor is used as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as the standby management modules;
响应于主管理模块接收到IO命令,计算其当前处理的数据流量,并判断当前处理的数据流量是否超过其最大处理流量;In response to the main management module receiving the IO command, calculate its current processing data flow, and determine whether the currently processed data flow exceeds its maximum processing flow;
响应于当前处理的数据流量超过最大处理流量,由主管理模块分别检查对应的各备管理 模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将IO命令转发至选定管理模块,以使选定管理模块处理IO命令。In response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to select one of the standby management modules as the selected management module based on each pending data flow , and forward the IO command to the selected management module, so that the selected management module processes the IO command.
在一些实施例中,在每一组中按照预设规则选择指定处理器包括:在每一组中选择待处理任务最少的处理器作为指定处理器。In some embodiments, selecting the designated processor in each group according to a preset rule includes: selecting a processor with the fewest tasks to be processed in each group as the designated processor.
在一些实施例中,在每一组中选择待处理任务最少的处理器作为指定处理器包括:在每一组中选择仅部署数据管理模块的处理器作为指定处理器。In some embodiments, selecting a processor with the fewest tasks to be processed in each group as the designated processor includes: selecting a processor in each group on which only the data management module is deployed as the designated processor.
在一些实施例中,基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块包括:选择待处理数据流量最少的备管理模块作为选定管理模块。In some embodiments, selecting one of the standby management modules as the selected management module based on each data flow to be processed includes: selecting the standby management module with the least data flow to be processed as the selected management module.
在一些实施例中,步骤还包括:响应于当前处理的数据流量未超过最大处理流量,由主管理模块处理IO命令。In some embodiments, the step further includes: processing the IO command by the main management module in response to the currently processed data traffic not exceeding the maximum processing traffic.
在一些实施例中,将多个处理器分成若干组包括:将多个处理器平均分成若干组。In some embodiments, dividing the plurality of processors into several groups includes: equally dividing the plurality of processors into several groups.
在一些实施例中,主管理模块接收到IO命令包括:主管理模块接收到命令提交模块的IO命令。In some embodiments, the main management module receiving the IO command includes: the main management module receiving the IO command from the command submission module.
在一些实施例中,步骤还包括:响应于固态硬盘上电,为每个数据管理模块分别分配相同的上下文描述符。In some embodiments, the step further includes: in response to powering on the solid state disk, assigning the same context descriptor to each data management module.
在一些实施例中,步骤还包括:响应于主管理模块将IO命令转发至选定管理模块,释放主管理模块占用的上下文描述符。In some embodiments, the steps further include releasing the context descriptor occupied by the master management module in response to the master management module forwarding the IO command to the selected management module.
应当理解,在相互不冲突的情况下,以上针对根据本申请的IO处理方法阐述的所有实施方式、特征和优势同样地适用于根据本申请的IO处理系统和存储介质。It should be understood that all the implementations, features and advantages described above with respect to the IO processing method according to the present application are equally applicable to the IO processing system and the storage medium according to the present application without conflicting with each other.
在本申请实施例中,还提供了一种计算机设备,包括如图4所示的存储器402和处理器401,该存储器402中存储有计算机程序,该计算机程序被该处理器401执行时实现上述任意一项实施例的方法。In the embodiment of the present application, a computer device is also provided, including a memory 402 and a processor 401 as shown in FIG. The method of any one of the embodiments.
如图4所示,为本申请提供的执行IO处理方法的计算机设备的硬件结构示意图。以如图4所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与IO处理系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。As shown in FIG. 4 , it is a schematic diagram of a hardware structure of a computer device implementing the IO processing method provided by the present application. Taking the computer equipment shown in FIG. 4 as an example, the computer equipment includes a processor 401 and a memory 402 , and may further include: an input device 403 and an output device 404 . The processor 401, the memory 402, the input device 403, and the output device 404 may be connected via a bus or in other ways. In FIG. 4, connection via a bus is taken as an example. The input device 403 can receive input numbers or character information, and generate key signal input related to user settings and function control of the IO processing system. The output device 404 may include a display device such as a display screen.
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的IO处理方法对应的程序指令/模 块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储IO处理方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。The memory 402, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs and modules, such as program instructions corresponding to the IO processing method in the embodiment of the present application /module. The memory 402 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application program required by at least one function; the data storage area may store data created by using the IO processing method, and the like. In addition, the memory 402 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage devices. In some embodiments, the memory 402 may optionally include memory that is remotely located relative to the processor 401, and these remote memories may be connected to the local module through a network. Examples of the aforementioned networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的IO处理方法。The processor 401 executes various functional applications and data processing of the server by running the non-volatile software programs, instructions and modules stored in the memory 402, that is, implements the IO processing method of the above method embodiment.
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。Finally, it should be noted that the computer-readable storage medium (eg, memory) herein may be a volatile memory or a nonvolatile memory, or may include both volatile memory and nonvolatile memory. By way of example and not limitation, nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory memory. Volatile memory can include random access memory (RAM), which can act as external cache memory. By way of example and not limitation, RAM is available in various forms such as Synchronous RAM (DRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). Storage devices of the disclosed aspects are intended to include, but are not limited to, these and other suitable types of memory.
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本申请实施例公开的范围。Those of skill would also appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described generally in terms of their functionality. Whether such functionality is implemented as software or as hardware depends upon the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the functions in various ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope disclosed in the embodiments of the present application.
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理 器、一个或多个微处理器结合DSP和/或任何其它这种配置。The various exemplary logic blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed using the following components designed to perform the functions herein: general purpose processors, digital signal processing (Digital Signal Processing, DSP for short) ), application specific integrated circuit (Application Specific Integrated Circuit, referred to as ASIC), field programmable gate array (Field Programmable Gate Array, referred to as FPGA) or other programmable logic devices, discrete gate or transistor logic, discrete hardware components or components of these components any combination. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP, and/or any other such configuration.
以上是本申请公开的示例性实施例,但是应当注意,在不背离权利要求限定的本申请实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本申请实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。The above are the exemplary embodiments disclosed in the present application, but it should be noted that various changes and modifications can be made without departing from the scope of the embodiments disclosed in the present application defined by the claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. In addition, although the elements disclosed in the embodiments of the present application may be described or required in an individual form, they may also be understood as plural unless explicitly limited to a singular number.
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本申请实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。It should be understood that as used herein, the singular form "a" and "an" are intended to include the plural forms as well, unless the context clearly supports an exception. It should also be understood that "and/or" as used herein is meant to include any and all possible combinations of one or more of the associated listed items. The serial numbers of the embodiments disclosed in the above-mentioned embodiments of the present application are only for description, and do not represent the advantages and disadvantages of the embodiments.
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请实施例公开的范围(包括权利要求)被限于这些例子;在本申请实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。Those of ordinary skill in the art should understand that: the discussion of any of the above embodiments is exemplary only, and is not intended to imply that the scope (including claims) disclosed by the embodiments of the present application is limited to these examples; under the idea of the embodiments of the present application , the technical features in the above embodiments or different embodiments can also be combined, and there are many other changes in different aspects of the above embodiments of the present application, which are not provided in details for the sake of brevity. Therefore, within the spirit and principle of the embodiments of the present application, any omissions, modifications, equivalent replacements, improvements, etc., shall be included in the protection scope of the embodiments of the present application.

Claims (18)

  1. 一种IO处理方法,其特征在于,包括以下步骤:A kind of IO processing method is characterized in that, comprises the following steps:
    在固态硬盘的多个处理器中分别部署数据管理模块,并将所述多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;Deploying data management modules in multiple processors of the solid-state hard drive, dividing the multiple processors into several groups, and selecting a designated processor in each group according to preset rules;
    将所述指定处理器中部署的数据管理模块作为主管理模块,且将所述指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;The data management module deployed in the specified processor is used as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as backup management modules;
    响应于所述主管理模块接收到IO命令,计算其当前处理的数据流量,并判断所述当前处理的数据流量是否超过其最大处理流量;Responsive to the main management module receiving an IO command, calculate its currently processed data flow, and determine whether the currently processed data flow exceeds its maximum processing flow;
    响应于所述当前处理的数据流量超过所述最大处理流量,由所述主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将所述IO命令转发至所述选定管理模块,以使所述选定管理模块处理所述IO命令。In response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flow of each corresponding standby management module, so as to select from each standby management module based on each pending data flow One serves as the selected management module, and forwards the IO command to the selected management module, so that the selected management module processes the IO command.
  2. 根据权利要求1所述的方法,其特征在于,在每一组中按照预设规则选择指定处理器包括:The method according to claim 1, wherein selecting a designated processor according to preset rules in each group comprises:
    在每一组中选择待处理任务最少的处理器作为指定处理器。In each group, the processor with the fewest pending tasks is selected as the designated processor.
  3. 根据权利要求2所述的方法,其特征在于,在每一组中选择待处理任务最少的处理器作为指定处理器包括:The method according to claim 2, wherein selecting the processor with the fewest tasks to be processed in each group as the designated processor comprises:
    在每一组中选择仅部署所述数据管理模块的处理器作为指定处理器。In each group, only the processor on which the data management module is deployed is selected as the designated processor.
  4. 根据权利要求3所述的方法,其特征在于,还包括:The method according to claim 3, further comprising:
    在所述仅部署所述数据管理模块的指定处理器处理所述数据管理模块的任务时,不进行不同任务之间的切换。When the designated processor on which only the data management module is deployed processes the tasks of the data management module, switching between different tasks is not performed.
  5. 根据权利要求1所述的方法,其特征在于,基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块包括:The method according to claim 1, wherein selecting one of the standby management modules as the selected management module based on each data flow to be processed comprises:
    选择待处理数据流量最少的备管理模块作为所述选定管理模块。Select the standby management module with the least amount of data traffic to be processed as the selected management module.
  6. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    响应于所述当前处理的数据流量未超过所述最大处理流量,由所述主管理模块处理所述IO命令。In response to the currently processed data traffic not exceeding the maximum processing traffic, the main management module processes the IO command.
  7. 根据权利要求1或6所述的方法,其特征在于,所述当前处理的数据流量超过最大处理流量表示所述指定处理器处于低任务压力,所述当前处理的数据流量未超过所述最大处理流量表示所述指定处理器处于高任务压力。The method according to claim 1 or 6, wherein the currently processed data flow exceeds the maximum processing flow, indicating that the designated processor is under low task pressure, and the currently processed data flow does not exceed the maximum processing flow Traffic indicates that the specified processor is under high task pressure.
  8. 根据权利要求1所述的方法,其特征在于,将所述多个处理器分成若干组包括:The method according to claim 1, wherein dividing the plurality of processors into several groups comprises:
    将所述多个处理器平均分成若干组。The plurality of processors are evenly divided into several groups.
  9. 根据权利要求8所述的方法,其特征在于,所述将所述多个处理器平均分成若干组包括:The method according to claim 8, wherein said dividing the plurality of processors into several groups on average comprises:
    根据多个处理器在固态硬盘上所在的位置,将相邻的多个处理器分为一组。According to the location of multiple processors on the solid state disk, multiple adjacent processors are grouped into one group.
  10. 根据权利要求1所述的方法,其特征在于,所述主管理模块接收到IO命令包括:The method according to claim 1, wherein the receiving the IO command by the main management module comprises:
    所述主管理模块接收到命令提交模块的IO命令。The main management module receives the IO command from the command submission module.
  11. 根据权利要求9所述的方法,其特征在于,还包括:The method according to claim 9, further comprising:
    将所述命令提交模块的配置修改为只向所述主管理模块发送所述IO命令,不向所述备管理模块发送所述IO命令。Modifying the configuration of the command submitting module to only send the IO command to the main management module, and not send the IO command to the standby management module.
  12. 根据权利要求10或11所述的方法,其特征在于,所述命令提交模块为SubQ Manager,负责SubQ指令的提交。The method according to claim 10 or 11, wherein the command submission module is SubQ Manager, which is responsible for the submission of SubQ instructions.
  13. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    响应于所述固态硬盘上电,为每个数据管理模块分别分配相同的上下文描述符。In response to powering on the solid state disk, each data management module is assigned the same context descriptor.
  14. 根据权利要求13所述的方法,其特征在于,还包括:The method according to claim 13, further comprising:
    响应于所述主管理模块将所述IO命令转发至所述选定管理模块,释放所述主管理模块占用的上下文描述符。Responsive to the primary management module forwarding the IO command to the selected management module, releasing the context descriptor occupied by the primary management module.
  15. 根据权利要求13或14所述的方法,其特征在于,所述上下文描述符用于表示文件描述符。The method according to claim 13 or 14, wherein the context descriptor is used to represent a file descriptor.
  16. 根据权利要求15所述的方法,其特征在于,所述文件描述符与包括相关信息的文件对象相关联;其中,所述相关信息至少包括如下之一:文件的打开模式、文件的位置类型、文件的初始类型。The method according to claim 15, wherein the file descriptor is associated with a file object including related information; wherein the related information includes at least one of the following: the opening mode of the file, the location type of the file, The initial type of the file.
  17. 一种IO处理系统,其特征在于,包括:A kind of IO processing system is characterized in that, comprising:
    指定处理器选择模块,配置用于在固态硬盘的多个处理器中分别部署数据管理模块,并将所述多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;The designated processor selection module is configured to respectively deploy the data management module among the multiple processors of the solid-state disk, divide the multiple processors into several groups, and select the designated processor in each group according to preset rules ;
    分类模块,配置用于将所述指定处理器中部署的数据管理模块作为主管理模块,且将所述指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;The classification module is configured to use the data management module deployed in the specified processor as the main management module, and use the data management modules deployed in other processors in the group where the specified processor is located as the backup management module respectively;
    判断模块,配置用于响应于所述主管理模块接收到IO命令,计算其当前处理的数据流量,并判断所述当前处理的数据流量是否超过其最大处理流量;以及A judging module configured to calculate the currently processed data flow in response to the main management module receiving an IO command, and judge whether the currently processed data flow exceeds its maximum processing flow; and
    IO处理模块,配置用于响应于所述当前处理的数据流量超过所述最大处理流量,由所述主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将所述IO命令转发至所述选定管 理模块,以使所述选定管理模块处理所述IO命令。The IO processing module is configured to respond to the currently processed data flow exceeding the maximum processing flow, and the main management module respectively checks the pending data flows of the corresponding standby management modules, so as to base on each pending data flow Select one of the standby management modules as the selected management module, and forward the IO command to the selected management module, so that the selected management module processes the IO command.
  18. 一种非易失性计算机可读存储介质,其特征在于,存储有计算机程序指令,该计算机程序指令被处理器执行时实现如下步骤:A non-volatile computer-readable storage medium, characterized in that it stores computer program instructions, and when the computer program instructions are executed by a processor, the following steps are implemented:
    在固态硬盘的多个处理器中分别部署数据管理模块,并将所述多个处理器分成若干组,且在每一组中按照预设规则选择指定处理器;Deploying data management modules in multiple processors of the solid-state hard drive, dividing the multiple processors into several groups, and selecting a designated processor in each group according to preset rules;
    将所述指定处理器中部署的数据管理模块作为主管理模块,且将所述指定处理器所在组内的其他处理器中部署的数据管理模块分别作为备管理模块;The data management module deployed in the specified processor is used as the main management module, and the data management modules deployed in other processors in the group where the specified processor is located are respectively used as backup management modules;
    响应于所述主管理模块接收到IO命令,计算其当前处理的数据流量,并判断所述当前处理的数据流量是否超过其最大处理流量;Responsive to the main management module receiving an IO command, calculate its currently processed data flow, and determine whether the currently processed data flow exceeds its maximum processing flow;
    响应于所述当前处理的数据流量超过所述最大处理流量,由所述主管理模块分别检查对应的各备管理模块的待处理数据流量,以基于各待处理数据流量从各备管理模块中选择一个作为选定管理模块,并将所述IO命令转发至所述选定管理模块,以使所述选定管理模块处理所述IO命令。In response to the currently processed data flow exceeding the maximum processing flow, the main management module respectively checks the pending data flow of each corresponding standby management module, so as to select from each standby management module based on each pending data flow One serves as the selected management module, and forwards the IO command to the selected management module, so that the selected management module processes the IO command.
PCT/CN2022/121848 2021-10-15 2022-09-27 Io processing method and system, and medium WO2023061215A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111205383.2A CN114138178B (en) 2021-10-15 2021-10-15 IO processing method and system
CN202111205383.2 2021-10-15

Publications (1)

Publication Number Publication Date
WO2023061215A1 true WO2023061215A1 (en) 2023-04-20

Family

ID=80394213

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/121848 WO2023061215A1 (en) 2021-10-15 2022-09-27 Io processing method and system, and medium

Country Status (2)

Country Link
CN (1) CN114138178B (en)
WO (1) WO2023061215A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114138178B (en) * 2021-10-15 2023-06-09 苏州浪潮智能科技有限公司 IO processing method and system
CN115658277B (en) * 2022-12-06 2023-03-17 苏州浪潮智能科技有限公司 Task scheduling method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965678A (en) * 2015-07-01 2015-10-07 忆正科技(武汉)有限公司 Solid-state storage control method and apparatus and solid-state storage device
CN108021454A (en) * 2017-12-28 2018-05-11 努比亚技术有限公司 A kind of method, terminal and the computer-readable storage medium of processor load equilibrium
CN108536394A (en) * 2018-03-31 2018-09-14 北京联想核芯科技有限公司 Order distribution method, device, equipment and medium
CN113254222A (en) * 2021-07-13 2021-08-13 苏州浪潮智能科技有限公司 Task allocation method and system for solid state disk, electronic device and storage medium
CN114138178A (en) * 2021-10-15 2022-03-04 苏州浪潮智能科技有限公司 IO processing method and system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3295321A4 (en) * 2015-05-14 2019-04-24 Apeiron Data Systems Accessing multiple storage devices from multiple hosts without remote direct memory access (rdma)
CN110995616B (en) * 2019-12-06 2022-05-31 苏州浪潮智能科技有限公司 Management method and device for large-flow server and readable medium
CN111722797B (en) * 2020-05-18 2021-06-29 西安交通大学 SSD and HA-SMR hybrid storage system oriented data management method, storage medium and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965678A (en) * 2015-07-01 2015-10-07 忆正科技(武汉)有限公司 Solid-state storage control method and apparatus and solid-state storage device
CN108021454A (en) * 2017-12-28 2018-05-11 努比亚技术有限公司 A kind of method, terminal and the computer-readable storage medium of processor load equilibrium
CN108536394A (en) * 2018-03-31 2018-09-14 北京联想核芯科技有限公司 Order distribution method, device, equipment and medium
CN113254222A (en) * 2021-07-13 2021-08-13 苏州浪潮智能科技有限公司 Task allocation method and system for solid state disk, electronic device and storage medium
CN114138178A (en) * 2021-10-15 2022-03-04 苏州浪潮智能科技有限公司 IO processing method and system

Also Published As

Publication number Publication date
CN114138178B (en) 2023-06-09
CN114138178A (en) 2022-03-04

Similar Documents

Publication Publication Date Title
WO2023061215A1 (en) Io processing method and system, and medium
WO2021000698A1 (en) Hotspot data management method, device and system
US7430211B2 (en) System and method for receive queue provisioning
US9983899B2 (en) Network resource configuration for a virtual machine
US11563695B2 (en) Queue protection using a shared global memory reserve
WO2021228103A1 (en) Load balancing method and apparatus for cloud host cluster, and server
CN110995616B (en) Management method and device for large-flow server and readable medium
US20230153264A1 (en) Data transmission method, chip, and device
JP2017211984A (en) METHOD, SYSTEM AND APPARATUS FOR QoS-AWARE INPUT/OUTPUT MANAGEMENT FOR PCIe STORAGE SYSTEM WITH RECONFIGURABLE MULTI-PORTS
WO2021103596A1 (en) Data migration method, device, and computer-readable storage medium
WO2022089175A1 (en) Network congestion control method and apparatus
WO2024060682A9 (en) Memory management method and apparatus, memory manager, device and storage medium
CN109189573A (en) A kind of isomery internal storage management system based on NVDIMM
CN114610243B (en) Method, system, storage medium and equipment for converting thin volume
WO2010111906A1 (en) Blade server and service scheduling method thereof
WO2023025046A1 (en) Super block management method and apparatus
WO2012163019A1 (en) Method for reducing power consumption of externally connected ddr of data chip and data chip system
CN107408058A (en) A kind of dispositions method of virtual resource, apparatus and system
CN108228104A (en) Data transmission method and solid-state hard disk controller
CN111404705B (en) SDN optimization method and device and computer readable storage medium
US10606751B2 (en) Techniques for cache delivery
CN113407301A (en) Virtual machine monitoring method, system, storage medium and equipment
CN116938849B (en) Intelligent adjustment method for flow table specification and related equipment
CN110336759A (en) Protocol message transfer method and device based on RDMA
CN113419673B (en) Method, system, medium and device for RBD access storage cluster

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22880155

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE