WO2023184907A1 - Multi-control storage system io processing method and system, and related component - Google Patents

Multi-control storage system io processing method and system, and related component Download PDF

Info

Publication number
WO2023184907A1
WO2023184907A1 PCT/CN2022/121922 CN2022121922W WO2023184907A1 WO 2023184907 A1 WO2023184907 A1 WO 2023184907A1 CN 2022121922 W CN2022121922 W CN 2022121922W WO 2023184907 A1 WO2023184907 A1 WO 2023184907A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
controllers
controller
target
strips
Prior art date
Application number
PCT/CN2022/121922
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 WO2023184907A1 publication Critical patent/WO2023184907A1/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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • This application relates to the field of storage system control, and in particular to an IO processing method, system and related components of a multi-control storage system.
  • RAID Redundant Arrays of Independent Disks
  • RAID not only needs to perform upper-layer business IO (Input/Output, input/output), but also needs to perform various background tasks, such as inspection, initialization, reconstruction, etc.
  • background tasks such as inspection, initialization, reconstruction, etc.
  • dual-control storage systems usually add stripe locks between controllers. The stripe lock can ensure mutual exclusion of IO between two controllers at the same time.
  • Stripe locks usually involve multiple communications between multiple controls. At the same time, stripe locks themselves are a resource. When the business IO concurrency is large, steps such as resource application waiting, dual-control communication, and lock waiting will affect performance. Influence.
  • multi-control storage systems that exceed dual-control are also developing.
  • the strip lock scheme is used to achieve IO mutual exclusion, which will inevitably further Increase the communication frequency of the controller, causing more IO waits, further affecting performance.
  • the purpose of this application is to provide an IO processing method, system and related components for a multi-control storage system.
  • the specific plan is as follows:
  • An IO processing method for a multi-control storage system including:
  • the target controller determines the target controller as the controller corresponding to the target stripe
  • the target controller determines the target controller to be any controller
  • control the process of the target controller executing IO tasks including:
  • control the process of the target controller executing IO tasks including:
  • the target controller is controlled to execute the IO task through ROW writing.
  • write processing tasks include background tasks and write operation tasks.
  • background tasks include:
  • One or more of reconstruction, inspection, slow disk detection, and initialization are one or more of reconstruction, inspection, slow disk detection, and initialization.
  • the process of determining the correspondence between multiple strips and multiple controllers includes:
  • All stripes are distributed to multiple controllers via round robin or hash algorithm.
  • IO processing methods also include:
  • this application also discloses an IO processing system for a multi-control storage system, including:
  • the relationship module is used to determine the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and the two strips responsible for any two controllers do not overlap. ;
  • the strip determination module is used to receive IO tasks and determine the target strip corresponding to the IO task in all strips;
  • the controller determination module is used to determine whether the IO task is a write processing task; if the IO task is a write processing task, determine the target controller as the controller corresponding to the target strip; if the IO task is not a write processing task, determine the target controller for any controller;
  • Action module used to control the target controller to perform IO tasks.
  • this application also discloses an IO processing device for a multi-control storage system, including:
  • Memory used to store computer programs
  • the processor is used to implement the steps of any of the above IO processing methods of the multi-control storage system when executing the computer program.
  • this application also discloses a non-volatile readable storage medium.
  • a computer program is stored on the non-volatile readable storage medium.
  • the computer program is executed by the processor, any of the above multi-control storage systems are implemented. The steps of the IO processing method.
  • This application discloses an IO processing method for a multi-control storage system, which includes: determining the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and any two The two strips responsible for each controller do not overlap; receive the IO task and determine the target strip corresponding to the IO task in all strips; determine whether the IO task is a write processing task; if the IO task is a write processing task, determine The target controller is the controller corresponding to the target stripe; if the IO task is not a write processing task, determine the target controller to be any controller; control the target controller to perform the IO task.
  • This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
  • Figure 1 is a step flow chart of an IO processing method for a multi-control storage system in an embodiment of the present application
  • Figure 2 is a structural distribution diagram of an IO processing system of a multi-control storage system in an embodiment of the present application
  • Figure 3 is a structural distribution diagram of an IO processing device of a multi-control storage system in an embodiment of the present application.
  • dual-control storage systems In order to ensure data consistency when executing business IO and background tasks, dual-control storage systems usually add stripe locks between controllers.
  • the stripe lock can ensure that the IO of two controllers at the same time is mutually exclusive.
  • stripe locks usually involve multiple inter-frame communications between multiple controllers.
  • stripe locks themselves are a resource.
  • This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
  • the embodiment of the present application discloses an IO processing method for a multi-control storage system, as shown in Figure 1, which includes:
  • S1 Determine the corresponding relationship between multiple stripes and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and the two stripes responsible for any two controllers do not overlap;
  • the correspondence here realizes the isolation of the address space, so that mutually exclusive task execution can be realized between controllers without additional locking.
  • all stripes are generally allocated to multiple controllers through polling or hashing algorithms, and usually all stripes are evenly allocated to multiple controllers.
  • the number of controllers is no less than two, which mainly plays the role of redundancy protection. In some customer systems with higher reliability requirements, the more controllers there are.
  • the corresponding relationship between strips and controllers is not completely fixed. When the status of the controller changes, the corresponding relationships between all strips and all controllers are re-determined to ensure that all strips are responsible for the normal controller. , where the controller status changes, including controller addition or recovery, controller reduction or failure.
  • S2 Receive the IO task and determine the target strip corresponding to the IO task in all strips;
  • the IO task can be decomposed according to the stripe granularity, and then one or more target stripes corresponding to the IO task can be determined.
  • IO tasks include write processing tasks and read request tasks.
  • Write processing tasks specifically include background tasks and write operations.
  • background tasks are unique to RIAD, including reconstruction, inspection, slow disk detection, and initialization. one or more of. It can be understood that write processing tasks specifically involve modification of strip data and must be executed by the controller corresponding to the target strip in the corresponding relationship, rather than other IO tasks that are not write processing tasks, usually read request tasks. Can be executed by other controllers.
  • step S6 specifically includes: controlling the target controller to execute the IO task through task queuing and stripe IO counting.
  • the target controller uses task queuing and strip IO technology to achieve IO mutual exclusion and high concurrency.
  • the target controller controls the target controller to achieve this one by one through task queuing. Multiple write processing tasks; when there are both read request tasks and write processing tasks on the same target strip, the active IO count on the strip is generally used to determine whether the strip is occupied to complete mutual exclusion; if there are only Multiple read request tasks are allowed to execute concurrently.
  • the target controller that executes the read request task does not necessarily have a corresponding relationship with the target stripe.
  • the write processing task must be implemented by the only corresponding controller. The rest can be IO mutual exclusion is accomplished through task queuing and striped IO counting.
  • the target controller is controlled to write and execute the IO task through ROW (Redirect-On-Write).
  • ROW Redirect-On-Write
  • L metadata controller logical address
  • P1, RAID address physical address
  • P1 address during the write operation, L points to P2, but only when the write operation is completed and the metadata is updated (L->P2) can the new read request task be allowed to access the P2 address, that is to say, the read request task during the write operation Either do not execute, or read the old data at the P1 address. There is no situation of reading half of the old data and half of the new data.
  • ROW writing ensures mutual exclusion between write processing tasks and read request tasks.
  • This application discloses an IO processing method for a multi-control storage system, which includes: determining the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and any two The two strips responsible for each controller do not overlap; receive the IO task and determine the target strip corresponding to the IO task in all strips; determine whether the IO task is a write processing task; if the IO task is a write processing task, determine The target controller is the controller corresponding to the target stripe; if the IO task is not a write processing task, determine the target controller to be any controller; control the target controller to perform the IO task.
  • This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
  • Embodiments of the present application disclose an IO processing method for a multi-control storage system, which includes: determining the correspondence between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and The two strips responsible for any two controllers do not overlap; receive the IO task and determine the target strip corresponding to the IO task in all strips; determine whether the IO task is a write processing task; if the IO task is a write processing task , determine the target controller as the controller corresponding to the target strip; if the IO task is not a write processing task, determine the target controller as any controller; control the target controller to perform the IO task.
  • This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
  • embodiments of the present application also disclose an IO processing system for a multi-control storage system, as shown in Figure 2, which includes:
  • Relationship module 1 is used to determine the corresponding relationship between multiple strips and multiple controllers, so that the write operations of all strips are respectively responsible for multiple controllers, and the two strips responsible for any two controllers do not overlap. ;
  • Strip determination module 2 is used to receive IO tasks and determine the target strip corresponding to the IO task in all strips;
  • Controller determination module 3 is used to determine whether the IO task is a write processing task; if the IO task is a write processing task, determine the target controller as the controller corresponding to the target strip; if the IO task is not a write processing task, determine the target control
  • the device is any controller;
  • Action module 4 is used to control the target controller to perform IO tasks.
  • the embodiment of this application allocates specific controllers to the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks The technical effect of lock-free mutual exclusion between them.
  • the action module 4 is specifically used to:
  • the action module 4 is specifically used to:
  • the target controller is controlled to execute the IO task through ROW writing.
  • write processing tasks include background tasks and write operation tasks.
  • the background tasks include: one or more of reconstruction, inspection, slow disk detection, and initialization.
  • relationship module 1 is specifically used to:
  • All stripes are distributed to multiple controllers via round robin or hash algorithm.
  • relationship module 1 is also used to:
  • an IO processing device for a multi-control storage system as shown in Figure 3, which includes:
  • Memory 11 used to store computer programs
  • the processor 12 is configured to implement the steps of the IO processing method of any of the above multi-control storage systems when executing a computer program.
  • embodiments of the present application also disclose a non-volatile readable storage medium.
  • a computer program is stored on the non-volatile readable storage medium.
  • the computer program is executed by the processor, any of the above multi-control functions are implemented.
  • the steps of the storage system's IO processing method are implemented.
  • the IO processing device and non-volatile readable storage medium of the multi-control storage system in this embodiment have the same technical effects as the IO processing method of the multi-control storage system in the above embodiment, and will not be described again here. .

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A multi-control storage system IO processing method and system, and a related component, applied to the field of storage system control. The multi-control storage system IO processing method comprises: determining the correspondences between a plurality of strips and a plurality of controllers (S1), so that write processing tasks of all the strips are respectively in the charge of the plurality of controllers, and two strips in the charge of any two controllers do not coincide; receiving an IO task, and determining, from among all the strips, a target strip corresponding to the IO task (S2); determining whether the IO task is a write processing task (S3); if the IO task is a write processing task, determining that a target controller is a controller corresponding to the target strip (S4); if the IO task is not a write processing task, determining that the target controller is any controller (S5); and controlling the target controller to execute the IO task (S6). The multi-control storage system IO processing method and system, and the related component are used for processing the IO task of a multi-control storage system, specific controllers are allocated to write operations of all the strips, and the target controller is intentionally allocated when the IO task is received, so that the write processing task can only be achieved by the unique corresponding controller, and thus, lock-free mutual exclusion between IO tasks is ensured.

Description

一种多控存储系统的IO处理方法、系统及相关组件An IO processing method, system and related components for a multi-control storage system
相关申请的交叉引用Cross-references to related applications
本申请要求于2022年03月30日提交中国专利局,申请号为202210321234.0,申请名称为“一种多控存储系统的IO处理方法、系统及相关组件”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application requires the priority of the Chinese patent application submitted to the China Patent Office on March 30, 2022, with the application number 202210321234.0, and the application name is "An IO processing method, system and related components for a multi-control storage system", all of which The contents are incorporated into this application by reference.
技术领域Technical field
本申请涉及存储系统控制领域,特别涉及一种多控存储系统的IO处理方法、系统及相关组件。This application relates to the field of storage system control, and in particular to an IO processing method, system and related components of a multi-control storage system.
背景技术Background technique
当前,随着存储系统对可靠性和性能的要求越来越高,RAID(Redundant Arrays of Independent Disks,磁盘冗余阵列)的高容错能力、高可靠性和高性能设计成为必需。RAID不仅需要执行上层的业务IO(Input/Output,输入/输出),还需要做各类后台任务,例如巡检、初始化、重构等,这些业务IO和后台任务存在交互场景,为了保证执行业务IO和后台任务时数据的一致性,双控存储系统通常在控制器间添加条带锁,条带锁可保证同一时刻2个控制器的IO互斥。Currently, as storage systems have increasingly higher requirements for reliability and performance, the high fault tolerance, high reliability and high performance design of RAID (Redundant Arrays of Independent Disks) has become a necessity. RAID not only needs to perform upper-layer business IO (Input/Output, input/output), but also needs to perform various background tasks, such as inspection, initialization, reconstruction, etc. There are interaction scenarios between these business IO and background tasks. In order to ensure the execution of business For data consistency during IO and background tasks, dual-control storage systems usually add stripe locks between controllers. The stripe lock can ensure mutual exclusion of IO between two controllers at the same time.
条带锁通常涉及多控之间的多次通信,同时条带锁本身就是一种资源,当业务IO并发量很大时,资源申请等待、双控通信、锁等待等步骤均会对性能造成影响。Stripe locks usually involve multiple communications between multiple controls. At the same time, stripe locks themselves are a resource. When the business IO concurrency is large, steps such as resource application waiting, dual-control communication, and lock waiting will affect performance. Influence.
进一步的,随着系统对可靠性、冗余保护能力的要求提高,超过双控的多控存储系统也在发展中,而多控存储系统中利用条带锁方案来实现IO互斥,必然进一步加重控制器的通信频率,造成更多IO等待,对性能造成进一步影响。Furthermore, as the system's requirements for reliability and redundant protection capabilities increase, multi-control storage systems that exceed dual-control are also developing. In multi-control storage systems, the strip lock scheme is used to achieve IO mutual exclusion, which will inevitably further Increase the communication frequency of the controller, causing more IO waits, further affecting performance.
发明内容Contents of the invention
有鉴于此,本申请的目的在于提供一种多控存储系统的IO处理方法、系统及相关组件。其具体方案如下:In view of this, the purpose of this application is to provide an IO processing method, system and related components for a multi-control storage system. The specific plan is as follows:
一种多控存储系统的IO处理方法,包括:An IO processing method for a multi-control storage system, including:
确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;Determine the corresponding relationship between multiple stripes and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and the two stripes responsible for any two controllers do not overlap;
接收IO任务,并在所有条带中确定IO任务对应的目标条带;Receive IO tasks and determine the target strip corresponding to the IO task in all strips;
判断IO任务是否为写处理任务;Determine whether the IO task is a write processing task;
若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;If the IO task is a write processing task, determine the target controller as the controller corresponding to the target stripe;
若IO任务不为写处理任务,确定目标控制器为任一控制器;If the IO task is not a write processing task, determine the target controller to be any controller;
控制目标控制器执行IO任务。Control the target controller to perform IO tasks.
可选的,控制目标控制器执行IO任务的过程,包括:Optional, control the process of the target controller executing IO tasks, including:
通过任务排队和条带IO计数控制目标控制器执行IO任务。Control the target controller to execute IO tasks through task queuing and striped IO counting.
可选的,控制目标控制器执行IO任务的过程,包括:Optional, control the process of the target controller executing IO tasks, including:
若IO任务为写处理任务,则控制目标控制器通过ROW写执行IO任务。If the IO task is a write processing task, the target controller is controlled to execute the IO task through ROW writing.
可选的,写处理任务包括后台任务和写操作任务。Optionally, write processing tasks include background tasks and write operation tasks.
可选的,后台任务包括:Optional, background tasks include:
重构、巡检、慢盘检测、初始化中的一个或多个。One or more of reconstruction, inspection, slow disk detection, and initialization.
可选的,确定多段条带与多个控制器的对应关系的过程,包括:Optional, the process of determining the correspondence between multiple strips and multiple controllers includes:
通过轮询或哈希算法将所有条带分配到多个控制器。All stripes are distributed to multiple controllers via round robin or hash algorithm.
可选的,IO处理方法还包括:Optional, IO processing methods also include:
当控制器状态发生变化,重新确定所有条带和所有控制器的对应关系。When the controller status changes, the corresponding relationships between all strips and all controllers are re-determined.
相应的,本申请还公开了一种多控存储系统的IO处理系统,包括:Correspondingly, this application also discloses an IO processing system for a multi-control storage system, including:
关系模块,用于确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;The relationship module is used to determine the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and the two strips responsible for any two controllers do not overlap. ;
条带确定模块,用于接收IO任务,并在所有条带中确定IO任务对应的目标条带;The strip determination module is used to receive IO tasks and determine the target strip corresponding to the IO task in all strips;
控制器确定模块,用于判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;The controller determination module is used to determine whether the IO task is a write processing task; if the IO task is a write processing task, determine the target controller as the controller corresponding to the target strip; if the IO task is not a write processing task, determine the target controller for any controller;
动作模块,用于控制目标控制器执行IO任务。Action module, used to control the target controller to perform IO tasks.
相应的,本申请还公开了一种多控存储系统的IO处理装置,包括:Correspondingly, this application also discloses an IO processing device for a multi-control storage system, including:
存储器,用于存储计算机程序;Memory, used to store computer programs;
处理器,用于执行计算机程序时实现如上文任一项多控存储系统的IO处理方法的步骤。The processor is used to implement the steps of any of the above IO processing methods of the multi-control storage system when executing the computer program.
相应的,本申请还公开了一种非易失性可读存储介质,非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任一项多控存储系统的IO处理方法的步骤。Correspondingly, this application also discloses a non-volatile readable storage medium. A computer program is stored on the non-volatile readable storage medium. When the computer program is executed by the processor, any of the above multi-control storage systems are implemented. The steps of the IO processing method.
本申请公开了一种多控存储系统的IO处理方法,包括:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带;判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;控制目标控制器执行IO任务。本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。This application discloses an IO processing method for a multi-control storage system, which includes: determining the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and any two The two strips responsible for each controller do not overlap; receive the IO task and determine the target strip corresponding to the IO task in all strips; determine whether the IO task is a write processing task; if the IO task is a write processing task, determine The target controller is the controller corresponding to the target stripe; if the IO task is not a write processing task, determine the target controller to be any controller; control the target controller to perform the IO task. This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
附图说明Description of drawings
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to explain the embodiments of the present application or the technical solutions in the prior art more clearly, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings in the following description are only This is an embodiment of the present application. For those of ordinary skill in the art, other drawings can be obtained based on the provided drawings without exerting creative efforts.
图1为本申请实施例中一种多控存储系统的IO处理方法的步骤流程图;Figure 1 is a step flow chart of an IO processing method for a multi-control storage system in an embodiment of the present application;
图2为本申请实施例中一种多控存储系统的IO处理系统的结构分布图;Figure 2 is a structural distribution diagram of an IO processing system of a multi-control storage system in an embodiment of the present application;
图3为本申请实施例中一种多控存储系统的IO处理装置的结构分布图。Figure 3 is a structural distribution diagram of an IO processing device of a multi-control storage system in an embodiment of the present application.
具体实施方式Detailed ways
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the scope of protection of this application.
为了保证执行业务IO和后台任务时数据的一致性,双控存储系统通常在控制器间添加条带锁,条带锁可保证同一时刻2个控制器的IO互斥。但条带锁通常涉及多控之间的框间多次通信,同时条带锁本身就是一种资源,当业务IO并发量很大时,资源申请等待、双控通信、锁等待等步骤均会对性能造成影响。In order to ensure data consistency when executing business IO and background tasks, dual-control storage systems usually add stripe locks between controllers. The stripe lock can ensure that the IO of two controllers at the same time is mutually exclusive. However, stripe locks usually involve multiple inter-frame communications between multiple controllers. At the same time, stripe locks themselves are a resource. When business IO concurrency is large, steps such as resource application waiting, dual-control communication, and lock waiting will all be interrupted. impact on performance.
本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
本申请实施例公开了一种多控存储系统的IO处理方法,参见图1所示,包括:The embodiment of the present application discloses an IO processing method for a multi-control storage system, as shown in Figure 1, which includes:
S1:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;S1: Determine the corresponding relationship between multiple stripes and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and the two stripes responsible for any two controllers do not overlap;
具体的,此处的对应关系,实现了地址空间的隔离,从而使得控制器之间不需再加锁,即可实现互斥的任务执行。在确定对应关系时,一般通过轮询或哈希算法将所有条带分配到多个控制器,通常为所有条带被平均分配到多个控制器。控制器的个数不少于两个,主要起到冗余保护的作用,在一些对可靠性要求较高的客户系统中,控制器的个数越多。进一步的,条带与控制器的对应关系并非完全固定不变,当控制器状态发生变化,重新确定所有条带和所有控制器的对应关系,以保证所有条带均由状态正常的控制器负责,这里控制器状态发生变化,包括控制器增加或恢复、控制器减少或故障。Specifically, the correspondence here realizes the isolation of the address space, so that mutually exclusive task execution can be realized between controllers without additional locking. When determining the corresponding relationship, all stripes are generally allocated to multiple controllers through polling or hashing algorithms, and usually all stripes are evenly allocated to multiple controllers. The number of controllers is no less than two, which mainly plays the role of redundancy protection. In some customer systems with higher reliability requirements, the more controllers there are. Furthermore, the corresponding relationship between strips and controllers is not completely fixed. When the status of the controller changes, the corresponding relationships between all strips and all controllers are re-determined to ensure that all strips are responsible for the normal controller. , where the controller status changes, including controller addition or recovery, controller reduction or failure.
S2:接收IO任务,并在所有条带中确定IO任务对应的目标条带;S2: Receive the IO task and determine the target strip corresponding to the IO task in all strips;
具体的,接收IO任务后可将IO任务按照条带粒度进行分解,然后确定IO任务对应的一个或多个目标条带。Specifically, after receiving the IO task, the IO task can be decomposed according to the stripe granularity, and then one or more target stripes corresponding to the IO task can be determined.
S3:判断IO任务是否为写处理任务;S3: Determine whether the IO task is a write processing task;
S4:若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;S4: If the IO task is a write processing task, determine the target controller as the controller corresponding to the target strip;
S5:若IO任务不为写处理任务,确定目标控制器为任一控制器;S5: If the IO task is not a write processing task, determine the target controller to be any controller;
可以理解的是,IO任务包括写处理任务和读请求任务,写处理任务具体包括后台任务和写操作,进一步的,后台任务是RIAD特有的任务,包括重构、巡检、慢盘检测、初始化中的一个或多个。可以理解的是,写处理任务具体为涉及到条带数据修改的内容,必须由对应关系中目标条带对应的控制器来执行,而非写处理任务的其他IO任务,通常为读请求任务,可以由其他控制器来执行。It can be understood that IO tasks include write processing tasks and read request tasks. Write processing tasks specifically include background tasks and write operations. Furthermore, background tasks are unique to RIAD, including reconstruction, inspection, slow disk detection, and initialization. one or more of. It can be understood that write processing tasks specifically involve modification of strip data and must be executed by the controller corresponding to the target strip in the corresponding relationship, rather than other IO tasks that are not write processing tasks, usually read request tasks. Can be executed by other controllers.
S6:控制目标控制器执行IO任务。S6: Control the target controller to perform IO tasks.
在一些具体的实施例中,步骤S6的实现具体包括:通过任务排队和条带IO计数控制目标控制器执行IO任务。可以理解的是,目标控制器利用任务排队和条带IO技术来实现IO互斥和高并发,当存在同一个目标条带的多个写处理任务,控制目标控制器通过任务排队来逐个实现这多个写处理任务;当同一个目标条带同时存在读请求任务和写处理任务时,一般通过条带上活跃的IO计数来判断条带是否占用来完成互斥;如果目标条带上只存在多个读请求任 务,则允许其并发执行。也就是说,执行读请求任务的目标控制器不一定与目标条带符合对应关系,所有目标条带的所有任务执行中,只有写处理任务必须由唯一对应的控制器来实现,其余情况则可通过任务排队和条带IO计数来完成IO互斥。In some specific embodiments, the implementation of step S6 specifically includes: controlling the target controller to execute the IO task through task queuing and stripe IO counting. It can be understood that the target controller uses task queuing and strip IO technology to achieve IO mutual exclusion and high concurrency. When there are multiple write processing tasks for the same target strip, the target controller controls the target controller to achieve this one by one through task queuing. Multiple write processing tasks; when there are both read request tasks and write processing tasks on the same target strip, the active IO count on the strip is generally used to determine whether the strip is occupied to complete mutual exclusion; if there are only Multiple read request tasks are allowed to execute concurrently. That is to say, the target controller that executes the read request task does not necessarily have a corresponding relationship with the target stripe. Among all the task executions of all target stripes, only the write processing task must be implemented by the only corresponding controller. The rest can be IO mutual exclusion is accomplished through task queuing and striped IO counting.
在一些具体的实施例中,若IO任务为写处理任务,则控制目标控制器通过ROW(Redirect-On-Write,写时重定向)写执行IO任务。可以理解的是,ROW写时,上层存在元数据控制器逻辑地址(L,卷地址)到物理地址(P1,RAID地址)的映射关系,在没有写操作时,L指向P1,读请求直接访问P1地址,在写操作过程中,L指向P2,但只有完成写操作、更新完元数据(L->P2)才能允许新的读请求任务访问P2地址,也就是说写操作过程中读请求任务要么不执行,要么读取P1地址的旧数据,不存在读一半旧数据读一半新数据的情况。ROW写保证了写处理任务和读请求任务之间的互斥。In some specific embodiments, if the IO task is a write processing task, the target controller is controlled to write and execute the IO task through ROW (Redirect-On-Write). It can be understood that when ROW is written, there is a mapping relationship between the metadata controller logical address (L, volume address) and the physical address (P1, RAID address) in the upper layer. When there is no write operation, L points to P1, and the read request directly accesses it. P1 address, during the write operation, L points to P2, but only when the write operation is completed and the metadata is updated (L->P2) can the new read request task be allowed to access the P2 address, that is to say, the read request task during the write operation Either do not execute, or read the old data at the P1 address. There is no situation of reading half of the old data and half of the new data. ROW writing ensures mutual exclusion between write processing tasks and read request tasks.
本申请公开了一种多控存储系统的IO处理方法,包括:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带;判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;控制目标控制器执行IO任务。本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。This application discloses an IO processing method for a multi-control storage system, which includes: determining the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and any two The two strips responsible for each controller do not overlap; receive the IO task and determine the target strip corresponding to the IO task in all strips; determine whether the IO task is a write processing task; if the IO task is a write processing task, determine The target controller is the controller corresponding to the target stripe; if the IO task is not a write processing task, determine the target controller to be any controller; control the target controller to perform the IO task. This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
本申请实施例公开了一种多控存储系统的IO处理方法,包括:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带;判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;控制目标控制器执行IO任务。本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。Embodiments of the present application disclose an IO processing method for a multi-control storage system, which includes: determining the correspondence between multiple strips and multiple controllers, so that the write processing tasks of all strips are respectively responsible for multiple controllers, and The two strips responsible for any two controllers do not overlap; receive the IO task and determine the target strip corresponding to the IO task in all strips; determine whether the IO task is a write processing task; if the IO task is a write processing task , determine the target controller as the controller corresponding to the target strip; if the IO task is not a write processing task, determine the target controller as any controller; control the target controller to perform the IO task. This application allocates specific controllers for the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks Technical effect of lock-free mutual exclusion.
相应的,本申请实施例还公开了一种多控存储系统的IO处理系统,参见图2所示,包括:Correspondingly, embodiments of the present application also disclose an IO processing system for a multi-control storage system, as shown in Figure 2, which includes:
关系模块1,用于确定多段条带与多个控制器的对应关系,以使所有条带的写操作由多个控制器分别负责,且任两个控制器负责的两段条带均不重合; Relationship module 1 is used to determine the corresponding relationship between multiple strips and multiple controllers, so that the write operations of all strips are respectively responsible for multiple controllers, and the two strips responsible for any two controllers do not overlap. ;
条带确定模块2,用于接收IO任务,并在所有条带中确定IO任务对应的目标条带; Strip determination module 2 is used to receive IO tasks and determine the target strip corresponding to the IO task in all strips;
控制器确定模块3,用于判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器; Controller determination module 3 is used to determine whether the IO task is a write processing task; if the IO task is a write processing task, determine the target controller as the controller corresponding to the target strip; if the IO task is not a write processing task, determine the target control The device is any controller;
动作模块4,用于控制目标控制器执行IO任务。 Action module 4 is used to control the target controller to perform IO tasks.
本申请实施例为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。The embodiment of this application allocates specific controllers to the write operations of all stripes, and intentionally allocates target controllers when receiving IO tasks, so that the write processing tasks can only be implemented by the only corresponding controller, thereby ensuring that the IO tasks The technical effect of lock-free mutual exclusion between them.
在一些具体的实施例中,动作模块4具体用于:In some specific embodiments, the action module 4 is specifically used to:
通过任务排队和条带IO计数控制目标控制器执行IO任务。Control the target controller to execute IO tasks through task queuing and striped IO counting.
在一些具体的实施例中,动作模块4具体用于:In some specific embodiments, the action module 4 is specifically used to:
若IO任务为写处理任务,则控制目标控制器通过ROW写执行IO任务。If the IO task is a write processing task, the target controller is controlled to execute the IO task through ROW writing.
在一些具体的实施例中,写处理任务包括后台任务和写操作任务。In some specific embodiments, write processing tasks include background tasks and write operation tasks.
在一些具体的实施例中,后台任务包括:重构、巡检、慢盘检测、初始化中的一个或多个。In some specific embodiments, the background tasks include: one or more of reconstruction, inspection, slow disk detection, and initialization.
在一些具体的实施例中,关系模块1具体用于:In some specific embodiments, relationship module 1 is specifically used to:
通过轮询或哈希算法将所有条带分配到多个控制器。All stripes are distributed to multiple controllers via round robin or hash algorithm.
在一些具体的实施例中,关系模块1还用于:In some specific embodiments, relationship module 1 is also used to:
当控制器状态发生变化,重新确定所有条带和所有控制器的对应关系。When the controller status changes, the corresponding relationships between all strips and all controllers are re-determined.
相应的,本申请实施例还公开了一种多控存储系统的IO处理装置,参见图3所示,包括:Correspondingly, the embodiment of the present application also discloses an IO processing device for a multi-control storage system, as shown in Figure 3, which includes:
存储器11,用于存储计算机程序; Memory 11, used to store computer programs;
处理器12,用于执行计算机程序时实现如上文任一项多控存储系统的IO处理方法的步骤。The processor 12 is configured to implement the steps of the IO processing method of any of the above multi-control storage systems when executing a computer program.
相应的,本申请实施例还公开了一种非易失性可读存储介质,非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任一项多控存储系统的IO处理方法的步骤。Correspondingly, embodiments of the present application also disclose a non-volatile readable storage medium. A computer program is stored on the non-volatile readable storage medium. When the computer program is executed by the processor, any of the above multi-control functions are implemented. The steps of the storage system's IO processing method.
其中,具体有关多控存储系统的IO处理方法的细节内容,可以参照上文实施例中的相关描述,此处不再赘述。For details about the IO processing method of the multi-control storage system, please refer to the relevant descriptions in the above embodiments and will not be described again here.
其中,本实施例中多控存储系统的IO处理装置及非易失性可读存储介质,均具有与上文实施例中多控存储系统的IO处理方法相同的技术效果,此处不再赘述。Among them, the IO processing device and non-volatile readable storage medium of the multi-control storage system in this embodiment have the same technical effects as the IO processing method of the multi-control storage system in the above embodiment, and will not be described again here. .
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。Finally, it should be noted that in this article, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply that these entities or any such actual relationship or sequence between operations. Furthermore, the terms "comprises," "comprises," or any other variations thereof are intended to cover a non-exclusive inclusion such that a process, method, article, or apparatus that includes a list of elements includes not only those elements, but also those not expressly listed other elements, or elements inherent to the process, method, article or equipment. Without further limitation, an element defined by the statement "comprises a..." does not exclude the presence of additional identical elements in a process, method, article, or apparatus that includes the stated element.
以上对本申请所提供的一种多控存储系统的IO处理方法、系统及相关组件进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。The above has introduced in detail the IO processing method, system and related components of a multi-control storage system provided by this application. This article uses specific examples to illustrate the principles and implementation methods of this application. The description of the above embodiments is only It is used to help understand the methods and core ideas of this application; at the same time, for those of ordinary skill in the field, there will be changes in the specific implementation methods and application scope based on the ideas of this application. In summary, this application The content of the description should not be construed as limiting this application.

Claims (20)

  1. 一种多控存储系统的IO处理方法,其特征在于,包括:An IO processing method for a multi-control storage system, which is characterized by including:
    确定多段条带与多个控制器的对应关系,以使所有所述条带的写处理任务由多个所述控制器分别负责,且任两个所述控制器负责的两段所述条带均不重合;Determine the corresponding relationship between multiple stripes and multiple controllers, so that the write processing tasks of all the strips are respectively responsible for multiple controllers, and any two controllers are responsible for two sections of the strips. None of them overlap;
    接收IO任务,并在所有所述条带中确定所述IO任务对应的目标条带;Receive the IO task and determine the target strip corresponding to the IO task in all the strips;
    判断所述IO任务是否为所述写处理任务;Determine whether the IO task is the write processing task;
    若所述IO任务为所述写处理任务,确定目标控制器为所述目标条带对应的所述控制器;If the IO task is the write processing task, determine the target controller to be the controller corresponding to the target stripe;
    若所述IO任务不为所述写处理任务,确定所述目标控制器为任一所述控制器;If the IO task is not the write processing task, determine that the target controller is any of the controllers;
    控制所述目标控制器执行所述IO任务。Control the target controller to execute the IO task.
  2. 根据权利要求1所述IO处理方法,其特征在于,所述控制所述目标控制器执行所述IO任务的过程,包括:The IO processing method according to claim 1, characterized in that the process of controlling the target controller to perform the IO task includes:
    通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务。The target controller is controlled to execute the IO task through task queuing and stripe IO count.
  3. 根据权利要求1所述IO处理方法,其特征在于,所述控制所述目标控制器执行所述IO任务的过程,包括:The IO processing method according to claim 1, characterized in that the process of controlling the target controller to perform the IO task includes:
    若所述IO任务为所述写处理任务,则控制所述目标控制器通过ROW写执行所述IO任务。If the IO task is the write processing task, the target controller is controlled to execute the IO task through ROW writing.
  4. 根据权利要求3所述IO处理方法,其特征在于,还包括:The IO processing method according to claim 3, further comprising:
    在所述写处理任务执行过程中,禁止其他所述控制器对所述写处理任务执行过程中新写入的数据执行读请求任务。During the execution of the write processing task, other controllers are prohibited from executing read request tasks on data newly written during the execution of the write processing task.
  5. 根据权利要求1所述IO处理方法,其特征在于,所述写处理任务包括后台任务和写操作任务。The IO processing method according to claim 1, characterized in that the write processing tasks include background tasks and write operation tasks.
  6. 根据权利要求5所述IO处理方法,其特征在于,所述后台任务包括:The IO processing method according to claim 5, characterized in that the background tasks include:
    重构、巡检、慢盘检测、初始化中的一个或多个。One or more of reconstruction, inspection, slow disk detection, and initialization.
  7. 根据权利要求1至6任一项所述IO处理方法,其特征在于,所述确定多段条带与多个控制器的对应关系的过程,包括:The IO processing method according to any one of claims 1 to 6, characterized in that the process of determining the correspondence between multiple strips and multiple controllers includes:
    通过轮询或哈希算法将所有所述条带分配到多个所述控制器。All said strips are distributed to multiple said controllers via a round robin or hashing algorithm.
  8. 根据权利要求1至6任一项所述IO处理方法,其特征在于,所述确定多段条带与多个控制器的对应关系的过程,包括:The IO processing method according to any one of claims 1 to 6, characterized in that the process of determining the correspondence between multiple strips and multiple controllers includes:
    将所有所述条带平均分配到多个所述控制器。All said strips are evenly distributed to multiple said controllers.
  9. 根据权利要求7所述IO处理方法,其特征在于,还包括:The IO processing method according to claim 7, further comprising:
    当所述控制器状态发生变化,重新确定所有所述条带和所有所述控制器的对应关系。When the status of the controller changes, the corresponding relationships between all the strips and all the controllers are re-determined.
  10. 根据权利要求9所述IO处理方法,其特征在于,所述当所述控制器状态发生变化,重新确定所有所述条带和所有所述控制器的对应关系的过程,包括:The IO processing method according to claim 9, characterized in that when the status of the controller changes, the process of re-determining the corresponding relationships between all the strips and all the controllers includes:
    当所述控制器的数量发生增减和/或所述控制器发生故障和/或所述控制器修复故障时,重新确定所有所述条带和所有所述控制器的对应关系。When the number of the controllers increases or decreases and/or the controller fails and/or the controller repairs the failure, the corresponding relationships between all the strips and all the controllers are re-determined.
  11. 根据权利要求1所述IO处理方法,其特征在于,所述接收IO任务,并在所有所述条带中确定所述IO任务对应的目标条带的过程,包括:The IO processing method according to claim 1, characterized in that the process of receiving an IO task and determining the target strip corresponding to the IO task in all the strips includes:
    接收所述IO任务后,将所述IO任务按照条带粒度进行分解;After receiving the IO task, decompose the IO task according to strip granularity;
    在所有所述条带中确定与分解后的所述IO任务对应的所述目标条带。The target strip corresponding to the decomposed IO task is determined among all the strips.
  12. 根据权利要求1所述IO处理方法,其特征在于,所述若所述IO任务不为所述写处理任务,确定所述目标控制器为任一所述控制器的过程,包括:The IO processing method according to claim 1, characterized in that if the IO task is not the write processing task, the process of determining the target controller to be any of the controllers includes:
    若所述IO任务为读请求任务,则确定所述目标控制器为任一所述控制器。If the IO task is a read request task, the target controller is determined to be any of the controllers.
  13. 根据权利要求2所述IO处理方法,其特征在于,所述通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务的过程,包括:The IO processing method according to claim 2, wherein the process of controlling the target controller to execute the IO task through task queuing and stripe IO counting includes:
    当存在针对同一个所述目标条带的多个所述写处理任务时,控制所述目标控制器通过任务排队逐个执行多个所述写处理任务。When there are multiple write processing tasks for the same target stripe, the target controller is controlled to execute multiple write processing tasks one by one through task queuing.
  14. 根据权利要求2所述IO处理方法,其特征在于,所述通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务的过程,包括:The IO processing method according to claim 2, wherein the process of controlling the target controller to execute the IO task through task queuing and stripe IO counting includes:
    当针对同一个所述目标条带同时存在所述写处理任务和读请求任务时,控制所述目标控制器通过IO计数判断所述目标条带是否被占用,以基于判断结果完成针对同一个所述目标条带同时存在的所述写处理任务和所述读请求任务的互斥执行。When the write processing task and the read request task exist for the same target stripe, the target controller is controlled to determine whether the target stripe is occupied through IO counting, so as to complete the processing of the same target stripe based on the judgment result. Mutually exclusive execution of the write processing task and the read request task that exist in the target strip at the same time.
  15. 根据权利要求2所述IO处理方法,其特征在于,所述通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务的过程,包括:The IO processing method according to claim 2, wherein the process of controlling the target controller to execute the IO task through task queuing and stripe IO counting includes:
    当存在针对同一个所述目标条带的多个读请求任务时,控制所述目标控制器允许多个所述读请求任务并发执行。When there are multiple read request tasks for the same target stripe, the target controller is controlled to allow multiple read request tasks to be executed concurrently.
  16. 根据权利要求4所述IO处理方法,其特征在于,所述在所述写处理任务执行过程中,禁止其他所述控制器对所述写处理任务执行过程中新写入的数据执行读请求任务的过程,包括:The IO processing method according to claim 4, characterized in that, during the execution of the write processing task, other controllers are prohibited from executing read request tasks on newly written data during the execution of the write processing task. The process includes:
    在所述写操作任务执行过程中,控制所述目标控制器的元数据控制器逻辑地址由原 来指向的第一物理地址转换为指向第二物理地址,以禁止其他所述控制器对所述写操作任务执行过程中新写入的数据执行所述读请求任务。During the execution of the write operation task, the logical address of the metadata controller controlling the target controller is converted from the first physical address originally pointed to to the second physical address to prohibit other controllers from accessing the write operation. During the execution of the operation task, the newly written data executes the read request task.
  17. 根据权利要求16所述IO处理方法,其特征在于,还包括:The IO processing method according to claim 16, further comprising:
    在所述写操作任务执行完成后,允许新的所述读请求任务访问所述第二物理地址。After the execution of the write operation task is completed, the new read request task is allowed to access the second physical address.
  18. 一种多控存储系统的IO处理系统,其特征在于,包括:An IO processing system for a multi-control storage system, which is characterized by including:
    关系模块,用于确定多段条带与多个控制器的对应关系,以使所有所述条带的写处理任务由多个所述控制器分别负责,且任两个所述控制器负责的两段所述条带均不重合;The relationship module is used to determine the corresponding relationship between multiple strips and multiple controllers, so that the write processing tasks of all the strips are respectively responsible for multiple controllers, and any two controllers are responsible for the two controllers. None of the strips mentioned in the paragraphs overlap;
    条带确定模块,用于接收IO任务,并在所有所述条带中确定所述IO任务对应的目标条带;A strip determination module, configured to receive an IO task and determine the target strip corresponding to the IO task in all the strips;
    控制器确定模块,用于判断所述IO任务是否为所述写处理任务;若所述IO任务为所述写处理任务,确定目标控制器为所述目标条带对应的所述控制器;若所述IO任务不为所述写处理任务,确定所述目标控制器为任一所述控制器;A controller determination module, used to determine whether the IO task is the write processing task; if the IO task is the write processing task, determine the target controller to be the controller corresponding to the target strip; if The IO task is not the write processing task, and the target controller is determined to be any of the controllers;
    动作模块,用于控制所述目标控制器执行所述IO任务。An action module is used to control the target controller to execute the IO task.
  19. 一种多控存储系统的IO处理装置,其特征在于,包括:An IO processing device for a multi-control storage system, which is characterized by including:
    存储器,用于存储计算机程序;Memory, used to store computer programs;
    处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述多控存储系统的IO处理方法的步骤。A processor, configured to implement the steps of the IO processing method of the multi-control storage system according to any one of claims 1 to 17 when executing the computer program.
  20. 一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述多控存储系统的IO处理方法的步骤。A non-volatile readable storage medium, characterized in that a computer program is stored on the non-volatile readable storage medium, and when the computer program is executed by a processor, it implements any one of claims 1 to 17 The steps of the IO processing method of the multi-control storage system.
PCT/CN2022/121922 2022-03-30 2022-09-27 Multi-control storage system io processing method and system, and related component WO2023184907A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210321234.0 2022-03-30
CN202210321234.0A CN114415981B (en) 2022-03-30 2022-03-30 IO processing method and system of multi-control storage system and related components

Publications (1)

Publication Number Publication Date
WO2023184907A1 true WO2023184907A1 (en) 2023-10-05

Family

ID=81264014

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/121922 WO2023184907A1 (en) 2022-03-30 2022-09-27 Multi-control storage system io processing method and system, and related component

Country Status (2)

Country Link
CN (1) CN114415981B (en)
WO (1) WO2023184907A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415981B (en) * 2022-03-30 2022-07-15 苏州浪潮智能科技有限公司 IO processing method and system of multi-control storage system and related components

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937428A (en) * 1997-08-06 1999-08-10 Lsi Logic Corporation Method for host-based I/O workload balancing on redundant array controllers
CN106527978A (en) * 2016-10-19 2017-03-22 华中科技大学 Loop-shaped virtual double controller-based multi-controller realization method
CN107688514A (en) * 2017-08-31 2018-02-13 郑州云海信息技术有限公司 A kind of more RAID read-write systems living
CN111290711A (en) * 2020-01-21 2020-06-16 苏州浪潮智能科技有限公司 IO processing method and related device of RAID system
US11061618B1 (en) * 2020-02-25 2021-07-13 EMC IP Holding Company LLC Disk array enclosure configured to determine metadata page location based on metadata identifier
US11079969B1 (en) * 2020-02-25 2021-08-03 EMC IP Holding Company LLC Disk array enclosure configured for metadata and data storage processing
CN114415981A (en) * 2022-03-30 2022-04-29 苏州浪潮智能科技有限公司 IO processing method and system of multi-control storage system and related components

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US9547448B2 (en) * 2014-02-24 2017-01-17 Netapp, Inc. System and method for transposed storage in raid arrays
US9524107B2 (en) * 2014-07-30 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Host-based device drivers for enhancing operations in redundant array of independent disks systems
KR101962359B1 (en) * 2015-11-27 2019-03-26 후아웨이 테크놀러지 컴퍼니 리미티드 Method for storing data by storage device and storage device
EP3859507A1 (en) * 2016-04-07 2021-08-04 Huawei Technologies Co., Ltd. Method for processing stripe in storage device and storage device
US10430336B2 (en) * 2017-04-24 2019-10-01 Exten Technologies, Inc. Lock-free raid implementation in multi-queue architecture
US10977073B2 (en) * 2019-07-10 2021-04-13 Dell Products L.P. Architectural data mover for RAID XOR acceleration in a virtualized storage appliance
CN112596673B (en) * 2020-12-18 2023-08-18 南京道熵信息技术有限公司 Multiple-active multiple-control storage system with dual RAID data protection
CN113326005B (en) * 2021-06-11 2023-01-06 苏州浪潮智能科技有限公司 Read-write method and device for RAID storage system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937428A (en) * 1997-08-06 1999-08-10 Lsi Logic Corporation Method for host-based I/O workload balancing on redundant array controllers
CN106527978A (en) * 2016-10-19 2017-03-22 华中科技大学 Loop-shaped virtual double controller-based multi-controller realization method
CN107688514A (en) * 2017-08-31 2018-02-13 郑州云海信息技术有限公司 A kind of more RAID read-write systems living
CN111290711A (en) * 2020-01-21 2020-06-16 苏州浪潮智能科技有限公司 IO processing method and related device of RAID system
US11061618B1 (en) * 2020-02-25 2021-07-13 EMC IP Holding Company LLC Disk array enclosure configured to determine metadata page location based on metadata identifier
US11079969B1 (en) * 2020-02-25 2021-08-03 EMC IP Holding Company LLC Disk array enclosure configured for metadata and data storage processing
CN114415981A (en) * 2022-03-30 2022-04-29 苏州浪潮智能科技有限公司 IO processing method and system of multi-control storage system and related components

Also Published As

Publication number Publication date
CN114415981B (en) 2022-07-15
CN114415981A (en) 2022-04-29

Similar Documents

Publication Publication Date Title
US11144399B1 (en) Managing storage device errors during processing of inflight input/output requests
US10909072B2 (en) Key value store snapshot in a distributed memory object architecture
US7107411B2 (en) Apparatus method and system for fault tolerant virtual memory management
US8990264B2 (en) Policy-based management of storage functions in data replication environments
US11809707B2 (en) File operations in a distributed storage system
WO2021057108A1 (en) Data reading method, data writing method, and server
US20230273859A1 (en) Storage system spanning multiple failure domains
WO2023184907A1 (en) Multi-control storage system io processing method and system, and related component
WO2021088423A1 (en) Memory management method and system for raid io, terminal and storage medium
US11314655B2 (en) Storage device configurable mapping granularity system where data is written without performing read-modify-write operations
US20130311659A1 (en) Controlling access to a shared storage system
CN112748865B (en) Method, electronic device and computer program product for storage management
US11966637B1 (en) Method and system for storing data in portable storage devices
CN111124251A (en) Method, apparatus and computer readable medium for I/O control
US20150135004A1 (en) Data allocation method and information processing system
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
US10860235B2 (en) Storage system having a plurality of storage apparatuses which migrate a first volume group to a second volume group
WO2023236629A1 (en) Data access method and apparatus, and storage system and storage medium
JP2574532B2 (en) Resource management method in fault tolerant system
US9690503B2 (en) Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices
JP2830293B2 (en) Program execution method
CN111190543A (en) Storage method and system for sharing NVDIMM storage resources among threads
KR20220160898A (en) Method and apparatus for handling transaction
CN118312302A (en) Shared memory read-write permission management method, controller and memory expansion device

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: 22934725

Country of ref document: EP

Kind code of ref document: A1