WO2023184907A1 - 一种多控存储系统的io处理方法、系统及相关组件 - Google Patents
一种多控存储系统的io处理方法、系统及相关组件 Download PDFInfo
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 241001522296 Erithacus rubecula Species 0.000 claims description 3
- 230000007423 decrease Effects 0.000 claims 1
- 230000008439 repair process Effects 0.000 claims 1
- 230000007717 exclusion Effects 0.000 abstract description 12
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk 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
一种多控存储系统的IO处理方法、系统及相关组件,应用于存储系统控制领域,多控存储系统的IO处理方法包括:确定多段条带与多个控制器的对应关系(S1),以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带(S2);判断IO任务是否为写处理任务(S3);若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器(S4);若IO任务不为写处理任务,确定目标控制器为任一控制器(S5);控制目标控制器执行IO任务(S6)。多控存储系统的IO处理方法、系统及相关组件,用于处理多控存储系统的IO任务,为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥。
Description
相关申请的交叉引用
本申请要求于2022年03月30日提交中国专利局,申请号为202210321234.0,申请名称为“一种多控存储系统的IO处理方法、系统及相关组件”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及存储系统控制领域,特别涉及一种多控存储系统的IO处理方法、系统及相关组件。
当前,随着存储系统对可靠性和性能的要求越来越高,RAID(Redundant Arrays of Independent Disks,磁盘冗余阵列)的高容错能力、高可靠性和高性能设计成为必需。RAID不仅需要执行上层的业务IO(Input/Output,输入/输出),还需要做各类后台任务,例如巡检、初始化、重构等,这些业务IO和后台任务存在交互场景,为了保证执行业务IO和后台任务时数据的一致性,双控存储系统通常在控制器间添加条带锁,条带锁可保证同一时刻2个控制器的IO互斥。
条带锁通常涉及多控之间的多次通信,同时条带锁本身就是一种资源,当业务IO并发量很大时,资源申请等待、双控通信、锁等待等步骤均会对性能造成影响。
进一步的,随着系统对可靠性、冗余保护能力的要求提高,超过双控的多控存储系统也在发展中,而多控存储系统中利用条带锁方案来实现IO互斥,必然进一步加重控制器的通信频率,造成更多IO等待,对性能造成进一步影响。
发明内容
有鉴于此,本申请的目的在于提供一种多控存储系统的IO处理方法、系统及相关组件。其具体方案如下:
一种多控存储系统的IO处理方法,包括:
确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;
接收IO任务,并在所有条带中确定IO任务对应的目标条带;
判断IO任务是否为写处理任务;
若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;
若IO任务不为写处理任务,确定目标控制器为任一控制器;
控制目标控制器执行IO任务。
可选的,控制目标控制器执行IO任务的过程,包括:
通过任务排队和条带IO计数控制目标控制器执行IO任务。
可选的,控制目标控制器执行IO任务的过程,包括:
若IO任务为写处理任务,则控制目标控制器通过ROW写执行IO任务。
可选的,写处理任务包括后台任务和写操作任务。
可选的,后台任务包括:
重构、巡检、慢盘检测、初始化中的一个或多个。
可选的,确定多段条带与多个控制器的对应关系的过程,包括:
通过轮询或哈希算法将所有条带分配到多个控制器。
可选的,IO处理方法还包括:
当控制器状态发生变化,重新确定所有条带和所有控制器的对应关系。
相应的,本申请还公开了一种多控存储系统的IO处理系统,包括:
关系模块,用于确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;
条带确定模块,用于接收IO任务,并在所有条带中确定IO任务对应的目标条带;
控制器确定模块,用于判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;
动作模块,用于控制目标控制器执行IO任务。
相应的,本申请还公开了一种多控存储系统的IO处理装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上文任一项多控存储系统的IO处理方法的步骤。
相应的,本申请还公开了一种非易失性可读存储介质,非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任一项多控存储系统的IO处理方法的步骤。
本申请公开了一种多控存储系统的IO处理方法,包括:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带;判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;控制目标控制器执行IO任务。本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例中一种多控存储系统的IO处理方法的步骤流程图;
图2为本申请实施例中一种多控存储系统的IO处理系统的结构分布图;
图3为本申请实施例中一种多控存储系统的IO处理装置的结构分布图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了保证执行业务IO和后台任务时数据的一致性,双控存储系统通常在控制器间添加条带锁,条带锁可保证同一时刻2个控制器的IO互斥。但条带锁通常涉及多控之间的框间多次通信,同时条带锁本身就是一种资源,当业务IO并发量很大时,资源申请等待、双控通信、锁等待等步骤均会对性能造成影响。
本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。
本申请实施例公开了一种多控存储系统的IO处理方法,参见图1所示,包括:
S1:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;
具体的,此处的对应关系,实现了地址空间的隔离,从而使得控制器之间不需再加锁,即可实现互斥的任务执行。在确定对应关系时,一般通过轮询或哈希算法将所有条带分配到多个控制器,通常为所有条带被平均分配到多个控制器。控制器的个数不少于两个,主要起到冗余保护的作用,在一些对可靠性要求较高的客户系统中,控制器的个数越多。进一步的,条带与控制器的对应关系并非完全固定不变,当控制器状态发生变化,重新确定所有条带和所有控制器的对应关系,以保证所有条带均由状态正常的控制器负责,这里控制器状态发生变化,包括控制器增加或恢复、控制器减少或故障。
S2:接收IO任务,并在所有条带中确定IO任务对应的目标条带;
具体的,接收IO任务后可将IO任务按照条带粒度进行分解,然后确定IO任务对应的一个或多个目标条带。
S3:判断IO任务是否为写处理任务;
S4:若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;
S5:若IO任务不为写处理任务,确定目标控制器为任一控制器;
可以理解的是,IO任务包括写处理任务和读请求任务,写处理任务具体包括后台任务和写操作,进一步的,后台任务是RIAD特有的任务,包括重构、巡检、慢盘检测、初始化中的一个或多个。可以理解的是,写处理任务具体为涉及到条带数据修改的内容,必须由对应关系中目标条带对应的控制器来执行,而非写处理任务的其他IO任务,通常为读请求任务,可以由其他控制器来执行。
S6:控制目标控制器执行IO任务。
在一些具体的实施例中,步骤S6的实现具体包括:通过任务排队和条带IO计数控制目标控制器执行IO任务。可以理解的是,目标控制器利用任务排队和条带IO技术来实现IO互斥和高并发,当存在同一个目标条带的多个写处理任务,控制目标控制器通过任务排队来逐个实现这多个写处理任务;当同一个目标条带同时存在读请求任务和写处理任务时,一般通过条带上活跃的IO计数来判断条带是否占用来完成互斥;如果目标条带上只存在多个读请求任 务,则允许其并发执行。也就是说,执行读请求任务的目标控制器不一定与目标条带符合对应关系,所有目标条带的所有任务执行中,只有写处理任务必须由唯一对应的控制器来实现,其余情况则可通过任务排队和条带IO计数来完成IO互斥。
在一些具体的实施例中,若IO任务为写处理任务,则控制目标控制器通过ROW(Redirect-On-Write,写时重定向)写执行IO任务。可以理解的是,ROW写时,上层存在元数据控制器逻辑地址(L,卷地址)到物理地址(P1,RAID地址)的映射关系,在没有写操作时,L指向P1,读请求直接访问P1地址,在写操作过程中,L指向P2,但只有完成写操作、更新完元数据(L->P2)才能允许新的读请求任务访问P2地址,也就是说写操作过程中读请求任务要么不执行,要么读取P1地址的旧数据,不存在读一半旧数据读一半新数据的情况。ROW写保证了写处理任务和读请求任务之间的互斥。
本申请公开了一种多控存储系统的IO处理方法,包括:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带;判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;控制目标控制器执行IO任务。本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。
本申请实施例公开了一种多控存储系统的IO处理方法,包括:确定多段条带与多个控制器的对应关系,以使所有条带的写处理任务由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;接收IO任务,并在所有条带中确定IO任务对应的目标条带;判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;控制目标控制器执行IO任务。本申请为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。
相应的,本申请实施例还公开了一种多控存储系统的IO处理系统,参见图2所示,包括:
关系模块1,用于确定多段条带与多个控制器的对应关系,以使所有条带的写操作由多个控制器分别负责,且任两个控制器负责的两段条带均不重合;
条带确定模块2,用于接收IO任务,并在所有条带中确定IO任务对应的目标条带;
控制器确定模块3,用于判断IO任务是否为写处理任务;若IO任务为写处理任务,确定目标控制器为目标条带对应的控制器;若IO任务不为写处理任务,确定目标控制器为任一控制器;
动作模块4,用于控制目标控制器执行IO任务。
本申请实施例为所有条带的写操作分配了特定的控制器,在接收到IO任务时有意分配目标控制器,从而使得写处理任务只能由唯一对应的控制器实现,进而保证了IO任务之间免锁互斥的技术效果。
在一些具体的实施例中,动作模块4具体用于:
通过任务排队和条带IO计数控制目标控制器执行IO任务。
在一些具体的实施例中,动作模块4具体用于:
若IO任务为写处理任务,则控制目标控制器通过ROW写执行IO任务。
在一些具体的实施例中,写处理任务包括后台任务和写操作任务。
在一些具体的实施例中,后台任务包括:重构、巡检、慢盘检测、初始化中的一个或多个。
在一些具体的实施例中,关系模块1具体用于:
通过轮询或哈希算法将所有条带分配到多个控制器。
在一些具体的实施例中,关系模块1还用于:
当控制器状态发生变化,重新确定所有条带和所有控制器的对应关系。
相应的,本申请实施例还公开了一种多控存储系统的IO处理装置,参见图3所示,包括:
存储器11,用于存储计算机程序;
处理器12,用于执行计算机程序时实现如上文任一项多控存储系统的IO处理方法的步骤。
相应的,本申请实施例还公开了一种非易失性可读存储介质,非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任一项多控存储系统的IO处理方法的步骤。
其中,具体有关多控存储系统的IO处理方法的细节内容,可以参照上文实施例中的相关描述,此处不再赘述。
其中,本实施例中多控存储系统的IO处理装置及非易失性可读存储介质,均具有与上文实施例中多控存储系统的IO处理方法相同的技术效果,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种多控存储系统的IO处理方法、系统及相关组件进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (20)
- 一种多控存储系统的IO处理方法,其特征在于,包括:确定多段条带与多个控制器的对应关系,以使所有所述条带的写处理任务由多个所述控制器分别负责,且任两个所述控制器负责的两段所述条带均不重合;接收IO任务,并在所有所述条带中确定所述IO任务对应的目标条带;判断所述IO任务是否为所述写处理任务;若所述IO任务为所述写处理任务,确定目标控制器为所述目标条带对应的所述控制器;若所述IO任务不为所述写处理任务,确定所述目标控制器为任一所述控制器;控制所述目标控制器执行所述IO任务。
- 根据权利要求1所述IO处理方法,其特征在于,所述控制所述目标控制器执行所述IO任务的过程,包括:通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务。
- 根据权利要求1所述IO处理方法,其特征在于,所述控制所述目标控制器执行所述IO任务的过程,包括:若所述IO任务为所述写处理任务,则控制所述目标控制器通过ROW写执行所述IO任务。
- 根据权利要求3所述IO处理方法,其特征在于,还包括:在所述写处理任务执行过程中,禁止其他所述控制器对所述写处理任务执行过程中新写入的数据执行读请求任务。
- 根据权利要求1所述IO处理方法,其特征在于,所述写处理任务包括后台任务和写操作任务。
- 根据权利要求5所述IO处理方法,其特征在于,所述后台任务包括:重构、巡检、慢盘检测、初始化中的一个或多个。
- 根据权利要求1至6任一项所述IO处理方法,其特征在于,所述确定多段条带与多个控制器的对应关系的过程,包括:通过轮询或哈希算法将所有所述条带分配到多个所述控制器。
- 根据权利要求1至6任一项所述IO处理方法,其特征在于,所述确定多段条带与多个控制器的对应关系的过程,包括:将所有所述条带平均分配到多个所述控制器。
- 根据权利要求7所述IO处理方法,其特征在于,还包括:当所述控制器状态发生变化,重新确定所有所述条带和所有所述控制器的对应关系。
- 根据权利要求9所述IO处理方法,其特征在于,所述当所述控制器状态发生变化,重新确定所有所述条带和所有所述控制器的对应关系的过程,包括:当所述控制器的数量发生增减和/或所述控制器发生故障和/或所述控制器修复故障时,重新确定所有所述条带和所有所述控制器的对应关系。
- 根据权利要求1所述IO处理方法,其特征在于,所述接收IO任务,并在所有所述条带中确定所述IO任务对应的目标条带的过程,包括:接收所述IO任务后,将所述IO任务按照条带粒度进行分解;在所有所述条带中确定与分解后的所述IO任务对应的所述目标条带。
- 根据权利要求1所述IO处理方法,其特征在于,所述若所述IO任务不为所述写处理任务,确定所述目标控制器为任一所述控制器的过程,包括:若所述IO任务为读请求任务,则确定所述目标控制器为任一所述控制器。
- 根据权利要求2所述IO处理方法,其特征在于,所述通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务的过程,包括:当存在针对同一个所述目标条带的多个所述写处理任务时,控制所述目标控制器通过任务排队逐个执行多个所述写处理任务。
- 根据权利要求2所述IO处理方法,其特征在于,所述通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务的过程,包括:当针对同一个所述目标条带同时存在所述写处理任务和读请求任务时,控制所述目标控制器通过IO计数判断所述目标条带是否被占用,以基于判断结果完成针对同一个所述目标条带同时存在的所述写处理任务和所述读请求任务的互斥执行。
- 根据权利要求2所述IO处理方法,其特征在于,所述通过任务排队和条带IO计数控制所述目标控制器执行所述IO任务的过程,包括:当存在针对同一个所述目标条带的多个读请求任务时,控制所述目标控制器允许多个所述读请求任务并发执行。
- 根据权利要求4所述IO处理方法,其特征在于,所述在所述写处理任务执行过程中,禁止其他所述控制器对所述写处理任务执行过程中新写入的数据执行读请求任务的过程,包括:在所述写操作任务执行过程中,控制所述目标控制器的元数据控制器逻辑地址由原 来指向的第一物理地址转换为指向第二物理地址,以禁止其他所述控制器对所述写操作任务执行过程中新写入的数据执行所述读请求任务。
- 根据权利要求16所述IO处理方法,其特征在于,还包括:在所述写操作任务执行完成后,允许新的所述读请求任务访问所述第二物理地址。
- 一种多控存储系统的IO处理系统,其特征在于,包括:关系模块,用于确定多段条带与多个控制器的对应关系,以使所有所述条带的写处理任务由多个所述控制器分别负责,且任两个所述控制器负责的两段所述条带均不重合;条带确定模块,用于接收IO任务,并在所有所述条带中确定所述IO任务对应的目标条带;控制器确定模块,用于判断所述IO任务是否为所述写处理任务;若所述IO任务为所述写处理任务,确定目标控制器为所述目标条带对应的所述控制器;若所述IO任务不为所述写处理任务,确定所述目标控制器为任一所述控制器;动作模块,用于控制所述目标控制器执行所述IO任务。
- 一种多控存储系统的IO处理装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述多控存储系统的IO处理方法的步骤。
- 一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述多控存储系统的IO处理方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321234.0 | 2022-03-30 | ||
CN202210321234.0A CN114415981B (zh) | 2022-03-30 | 2022-03-30 | 一种多控存储系统的io处理方法、系统及相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023184907A1 true WO2023184907A1 (zh) | 2023-10-05 |
Family
ID=81264014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/121922 WO2023184907A1 (zh) | 2022-03-30 | 2022-09-27 | 一种多控存储系统的io处理方法、系统及相关组件 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114415981B (zh) |
WO (1) | WO2023184907A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415981B (zh) * | 2022-03-30 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种多控存储系统的io处理方法、系统及相关组件 |
Citations (7)
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 (zh) * | 2016-10-19 | 2017-03-22 | 华中科技大学 | 一种基于环状虚拟双控的多控制器实现方法 |
CN107688514A (zh) * | 2017-08-31 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种多活raid读写系统 |
CN111290711A (zh) * | 2020-01-21 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种raid系统的io处理方法及相关装置 |
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 (zh) * | 2022-03-30 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种多控存储系统的io处理方法、系统及相关组件 |
Family Cites Families (9)
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 |
KR102060736B1 (ko) * | 2015-11-27 | 2020-02-11 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치 |
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 (zh) * | 2020-12-18 | 2023-08-18 | 南京道熵信息技术有限公司 | 具有双重raid数据保护的多活多控存储系统 |
CN113326005B (zh) * | 2021-06-11 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种raid存储系统的读写方法和装置 |
-
2022
- 2022-03-30 CN CN202210321234.0A patent/CN114415981B/zh active Active
- 2022-09-27 WO PCT/CN2022/121922 patent/WO2023184907A1/zh active Application Filing
Patent Citations (7)
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 (zh) * | 2016-10-19 | 2017-03-22 | 华中科技大学 | 一种基于环状虚拟双控的多控制器实现方法 |
CN107688514A (zh) * | 2017-08-31 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种多活raid读写系统 |
CN111290711A (zh) * | 2020-01-21 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种raid系统的io处理方法及相关装置 |
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 (zh) * | 2022-03-30 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种多控存储系统的io处理方法、系统及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN114415981A (zh) | 2022-04-29 |
CN114415981B (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144399B1 (en) | Managing storage device errors during processing of inflight input/output requests | |
US9344498B2 (en) | Policy-based management of storage functions in data replication environments | |
US10909072B2 (en) | Key value store snapshot in a distributed memory object architecture | |
US7107411B2 (en) | Apparatus method and system for fault tolerant virtual memory management | |
US11809707B2 (en) | File operations in a distributed storage system | |
US20060085626A1 (en) | Updating system configuration information | |
US20230273859A1 (en) | Storage system spanning multiple failure domains | |
WO2021057108A1 (zh) | 一种读数据方法、写数据方法及服务器 | |
US11314655B2 (en) | Storage device configurable mapping granularity system where data is written without performing read-modify-write operations | |
WO2023184907A1 (zh) | 一种多控存储系统的io处理方法、系统及相关组件 | |
WO2021088423A1 (zh) | 一种用于raid io的内存管理方法、系统、终端及存储介质 | |
US20130311659A1 (en) | Controlling access to a shared storage system | |
CN112748865B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US11966637B1 (en) | Method and system for storing data in portable storage devices | |
CN111124251A (zh) | 用于i/o控制的方法、装置以及计算机可读介质 | |
US20150135004A1 (en) | Data allocation method and information processing system | |
US10437471B2 (en) | Method and system for allocating and managing storage in a raid storage system | |
WO2020024589A1 (en) | Key value store snapshot in a distributed memory object architecture | |
US10860235B2 (en) | Storage system having a plurality of storage apparatuses which migrate a first volume group to a second volume group | |
WO2023236629A1 (zh) | 数据访问方法、装置、存储系统及存储介质 | |
JP2574532B2 (ja) | フォールトトレラントシステムにおける資源管理方法 | |
US9690503B2 (en) | Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices | |
US20130262790A1 (en) | Method, computer program and device for managing memory access in a multiprocessor architecture of numa type | |
JP2830293B2 (ja) | プログラム実行方法 | |
CN111190543A (zh) | 一种线程间共享nvdimm存储资源的存储方法及系统 |
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 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18710591 Country of ref document: US |