A high-speed centralized storage dual-active method and device
By using a mirror disk array as a cache module for the parity disk array in a multi-controller storage system, and the management module managing the address space, the write conflict problem of the parity disk array in a multi-controller environment is solved, achieving efficient data reading and writing and performance improvement.
Patent Information
- Application Number
- CN202411137523.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-19
- Publication Date
- 2025-10-14
- Estimated Expiration
- 2044-08-19
AI Technical Summary
In a multi-controller storage system, parity disk arrays cannot support simultaneous writes from multiple controllers, resulting in data verification calculation conflicts and write amplification problems, affecting storage system performance.
A mirror disk array is used as a cache module for the parity disk array. The address space is managed by the management module to avoid conflicts when writing data. The mirror disk array is used to cache small data, which are then merged and written to the parity disk array to solve the write amplification problem.
It enables multiple controllers in a multi-controller storage system to read and write data simultaneously, avoiding bandwidth bottlenecks, improving performance by several to hundreds of times, fully utilizing hardware resources, and improving the reliability and efficiency of the storage system.
Smart Images

Figure CN119088624B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application belongs to the technical field of computer storage, and particularly relates to a high-speed centralized storage dual-active method and equipment. BACKGROUND
[0002] Due to the high reliability requirement of enterprises on important data storage, a dedicated storage device usually uses a raid disk array scheme to prevent damage of a single disk, which is commonly divided into two types of mirroring (raid1) and parity (raid4, raid5, raid6, etc.). The mirroring scheme uses two disks (such as Disk 1 and Disk 2) to store the same content to ensure that the data is still intact when any one disk is damaged, and the disadvantage is that half of the storage space is wasted, which brings great cost pressure. The principle of the parity scheme is as follows Figure 1 : a certain amount of space redundancy is used to ensure the reliability of data, and the redundant data P needs to be obtained through exclusive or operation of other disk data, and when any one disk is abnormal, the damaged disk data can also be recovered through exclusive or operation of other disks, such as Disk 1…Disk n, Disk n+1. Since the parity scheme requires less additional storage space, it is widely used, but the disadvantage is that it will cause write amplification problems, for example, when writing Block 1, other data blocks in the same strip of raid need to be read out to recalculate the parity data P, and then Block 1 and the parity data P are written again. Figure 2 、 Figure 1 、 2 In the above, Disk n represents the nth disk, Block n represents the nth disk sector, and n is a positive integer.
[0003] In addition, in order to ensure the continuity of the business, the dedicated storage device usually adopts a redundancy mechanism to eliminate single-point failures and guarantee the high availability of storage services, such as a dual-controller architecture (referred to as a dual-control architecture). According to the requirements, it can be further upgraded to a four-controller, eight-controller, etc. multi-controller architecture. As shown in Figure 3 , the disk (and the disk array using the disk group) is simultaneously visible to multiple controllers (primary controller, backup controller, i.e., corresponding controller A and controller B), each controller reads and writes data to the lower part and provides storage services to the upper part. The host uses multi-path technology to aggregate the same volume from different controllers.
[0004] Under the dual-active working mode, theoretically, users can simultaneously read and write to the same storage resource through all controllers, fully utilizing the computing resources of all controllers, but due to the following problems, the read-write process in the dual-active scenario is relatively complex. Specifically:
[0005] One is that the industry usually uses memory as a cache in the controller to speed up read and write and reduce the problem of parity disk array write amplification. However, after one controller rewrites the cache, other controllers cannot perceive it, so there is a synchronization problem of the cache, as shown in Figure 4
[0006] Two is that the parity disk array cannot support multiple controllers to write at the same time, because writing to any data block of the parity disk array requires other data blocks of the same stripe to participate in computing the check data block. If multiple controllers write different data blocks of the same stripe at the same time, there will be a data check computation conflict problem. SUMMARY
[0007] The purpose of the present application is to solve the above problems by using a cache module as a high-performance cache space and a management module to solve the problem that the parity disk array cannot write at the same time in a multi-control environment, which can avoid bandwidth bottlenecks, fully utilize the hardware resources of multi-control, and maximize the performance of the storage system.
[0008] To achieve the above purpose, the technical solution adopted by the present application is:
[0009] The high-speed centralized storage dual-active method proposed by the present application is applied to a multi-control architecture, which includes multiple controllers. The high-speed centralized storage dual-active method includes the following steps:
[0010] S1, using a mirror disk array as a cache module of the parity disk array, the cache module is used to temporarily store data when at least two controllers of the multi-control architecture write data into the parity disk array at the same time, the parity disk array is used for data storage, and the mirror disk array and the parity disk array each include a plurality of disks;
[0011] S2, using one of the controllers of the multi-control architecture as a master controller, and using the remaining controllers as backup controllers, each controller is deployed with a data read-write module and a management module, and only the master controller runs the data read-write module and the management module at the same time, and the backup controllers only run the data read-write module, wherein:
[0012] The data read-write module is used to receive data read-write requests from the host end and execute corresponding data read-write tasks;
[0013] The management module is used for management of the cache module and management of the address space, and the address space is used to represent the correspondence between the logical address and the physical address of the data;
[0014] S3, using the data read-write module and the management module to execute corresponding data read-write tasks according to the data read-write requests issued by the host end, specifically as follows:
[0015] Data write: each data read-write module receives a data write request issued from the host end, and notifies the management module that data needs to be written to the disk, requests a physical address space from the management module, the management module allocates a physical address space according to the logical address and length of the data to be written, returns the physical address corresponding to the physical address space to the corresponding data read-write module, each data read-write module writes data to the corresponding physical address space according to the returned physical address, and after writing is completed, notifies the management module to update the metadata and saves the updated metadata in the mirror disk array and the parity disk array, and the management module notifies the corresponding data read-write module after updating the metadata is completed, and the data read-write module receiving the notification returns the host end data write request is completed, and returns the physical address corresponding to the physical address space to the corresponding data read-write module, specifically: when there is a controller writing at the same time, the management module returns the physical address of the corresponding data read-write module to the mirror disk array, otherwise, the management module returns the physical address of the corresponding data read-write module to the parity disk array;
[0016] Data read: each data read-write module receives a data read request issued from the host end, and provides the logical address and length of the data to the management module, takes the logical address of the data as the input of the management module, obtains the physical address of the data from the management module, reads the data from the corresponding mirror disk array or parity disk array according to the physical address, and notifies the management module to update the metadata after reading is completed and returns the host end;
[0017] S4, when the main controller is dead or abnormal, a standby controller starts the management module to take over the main controller to work; when the standby controller is dead or abnormal, the main controller works normally; when the link between the controller and the host end is abnormal, no operation is needed, and the other controllers work normally.
[0018] Preferably, the cache module is further used to temporarily store the data when the length of the written data is less than a preset threshold, and when the length of the written data is less than the preset threshold, the management module returns the physical address of the corresponding data read-write module to the mirror disk array, otherwise, the management module returns the physical address of the corresponding data read-write module to the parity disk array.
[0019] Preferably, the management module is further used to move the data from the cache module to the parity disk array when the cache space of the cache module is insufficient, and update the metadata after moving is completed, and save the updated metadata in the mirror disk array and the parity disk array.
[0020] Preferably, a standby controller starts the management module to take over the main controller to work, specifically:
[0021] The backup controller re-runs after loading and restoring the metadata saved in the mirror disk array and the parity disk array to the started management module.
[0022] Preferably, the management of the cache module adopts a bcache cache model or an ocf cache model; and the management of the address space adopts an FTL model.
[0023] Preferably, the disk is a dual-port disk or a disk cabinet that can be shared by multiple controllers.
[0024] Preferably, the multi-control architecture is a dual-control architecture or a four-control architecture or an eight-control architecture.
[0025] A high-speed centralized storage dual-active device, comprising a host, a multi-control architecture, a mirror disk array and a parity disk array, the multi-control architecture comprising a plurality of controllers, the mirror disk array and the parity disk array being connected with the controllers, the controllers being further connected with the host, and the controllers being connected with each other through a low-latency link channel for metadata interaction, the high-speed centralized storage dual-active device being used for executing any of the above-mentioned high-speed centralized storage dual-active methods.
[0026] Compared with the prior art, the high-speed centralized storage dual-active device has the following beneficial effects:
[0027] The present invention optimizes the hardware architecture and cooperates with software to achieve storage active-active functions. Multiple controllers can read and write data and complete data requests at the same time. There is no need to forward data, and only a small amount of metadata interaction is required. Therefore, there is no need for high-speed links between controllers for forwarding communication. Only a low-latency link is required. This can avoid bandwidth bottlenecks and the problems of longer data links and larger data delays caused by forwarding data. Compared with existing multi-controller storage devices, this invention can utilize the upstream and downstream link bandwidth of each controller, double the performance, fully utilize the hardware resources of multiple controllers, and maximize the performance of the storage system. Specifically: by using the cache module as a high-performance cache space and management module, the problem that the parity disk array cannot write simultaneously in a multi-control environment is solved, and the active-active storage is better realized. The address space can be managed through the management module to achieve isolation of the logical address and the physical address of the storage, which helps to improve confidentiality and facilitates global wear leveling and global anti-wear leveling. For example, when selecting a physical address, you can give priority to disks that are used less frequently. Normal wear leveling is a function within a single disk and cannot achieve wear leveling between disks. In addition, when managing the address space, the management module will cache small data write requests in a high-speed mirror disk array first. When the cached data accumulates to a certain amount, the data will be merged into a large data and written to the parity disk array. This can solve the write amplification problem caused by writing small data on the parity disk array, and can also make full use of the high-speed bandwidth of the mirror disk array, so that the number of read and write (I / O) operations per second for writing small data can be increased by several times to hundreds of times, which is a significant improvement. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] Figure 1 It is a structural diagram of a mirror disk array in the prior art;
[0029] Figure 2 A schematic diagram of the structure of a parity check disk array in the prior art;
[0030] Figure 3 It is a structural diagram of the dual-control architecture of the prior art;
[0031] Figure 4 A schematic diagram of the structure of the existing dual-controller architecture using memory as a cache;
[0032] Figure 5 This is a flow chart of the high-speed centralized storage active-active method of the present invention;
[0033] Figure 6 A flowchart of executing data writing in the high-speed centralized storage active-active method of the present invention;
[0034] Figure 7 A flow chart showing a method for performing data reading in a high-speed centralized storage active-active manner according to the present invention;
[0035] Figure 8 The structure diagram of the high-speed centralized storage dual-active equipment of the application. DETAILED DESCRIPTION
[0036] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all the other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present application.
[0037] It should be noted that when an element is referred to as being "connected" to another element, it can be directly connected to the other element or there can be intervening elements. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used in the description of the application herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.
[0038] Embodiment 1
[0039] As shown in the figure, a high-speed centralized storage dual-active method is applied to a multi-control architecture including a plurality of controllers, and the high-speed centralized storage dual-active method includes the following steps: Figures 5-7 S1, the mirror disk array is taken as a cache module of the parity disk array, the cache module is used to temporarily store data when at least two controllers of the multi-control architecture write data into the parity disk array at the same time, the parity disk array is used for saving data, and the mirror disk array and the parity disk array each include a plurality of disks.
[0040] In an embodiment, the cache module is further used to temporarily store the data when the length of the written data is less than a preset threshold, and when the length of the written data is less than the preset threshold, the management module returns that the physical address corresponding to the data read-write module belongs to the mirror disk array, otherwise, the management module returns that the physical address corresponding to the data read-write module belongs to the parity disk array.
[0041] In an embodiment, the disk is a dual-port disk or a disk cabinet that can be shared by a plurality of controllers. The dual-port disk or the disk cabinet that can be shared by a plurality of hosts is used, so that the disk is readable and writable for all controllers, and the disk cabinet that can be shared by a plurality of controllers is, for example, a JBOF disk cabinet.
[0042]
[0043] When the multiple controllers write at the same time, a piece of free physical address space is allocated from the mirror disk array; otherwise, for data with a length less than a first preset threshold, a piece of free physical address space is allocated from the mirror disk array, and for data with a length greater than or equal to the first preset threshold, a piece of free physical address space is allocated from the parity disk array.
[0044] S2, one of the multiple controllers is taken as a master controller, and the rest of the controllers are taken as backup controllers, each controller is deployed with a data read-write module and a management module, and only the master controller simultaneously runs the data read-write module and the management module, and the backup controllers only run the data read-write module, wherein:
[0045] The data read-write module is used for receiving a data read-write request of a host end and performing a corresponding data read-write task.
[0046] The management module is used for managing the cache module and managing an address space, and the address space is used for representing a corresponding relationship between a logical address and a physical address of data.
[0047] In an embodiment, the management module is further used for moving data from the cache module to the parity disk array when a cache space of the cache module is insufficient, and updating metadata after the moving is completed, and saving the updated metadata in the mirror disk array and the parity disk array.
[0048] The management module (corresponding to the cache and space management module in the present application Figure 6 、 Figure 7 When the address space is managed, the management module (corresponding to the cache and space management module in the present application) first caches small data write requests in the mirror disk array, and when the cached data reaches a preset number, the data is combined into a large data and written into the parity disk array, so that the write amplification problem caused by writing small data in the parity disk array is solved, and the high-speed bandwidth of the mirror disk array can be fully utilized, the IOPS (Input / Output Operations Per Second) of writing small data can be improved by several times to several hundred times, and the improvement is significant.
[0049] In an embodiment, the management of the cache module adopts a bcache cache model or an ocf cache model, and the management of the address space adopts an FTL model. The bcache cache model is a block device cache, the ocf cache model is an Open CAS Framework, and the FTL model is a flash translation layer. It is easy to understand that the management of the cache module and the address space can also adopt other prior art models known to those skilled in the art.
[0050] The software functions of the present application mainly include a management module and a data read-write module.
[0051] Data read-write module:
[0052] The data read-write module runs in the main controller and the backup controller simultaneously, and is used for receiving a host data request and executing a data read-write task. When the data read-write module executes a data read-write request, the data read-write module cannot directly read and write data according to a request address, and needs to take the read-write request address (logical address) as an input to inquire an actual read-write address (actual storage address, i.e., physical address) from the management module, and read and write data according to the actual read-write address.
[0053] Management module:
[0054] The management module runs in the main controller only, and is responsible for management of the cache module and management of an address space. The cache module is mainly used for temporary storage of write data, so as to realize device acceleration. The management of the address space is mainly used for a corresponding relationship between a data request address and an actual storage address, and is intended to prevent a conflict from occurring. The management of the cache module adopts a bcache cache model or an ocf cache model, and the management of the address space adopts an FTL model.
[0055] Specifically, the management module works as follows:
[0056] 1) responsible for conversion between a logical address and a physical address, the logical address being an address exposed to storage, and the physical address being an actual storage address; 2) responsible for communication with the data read-write module, such as the data read-write module taking a logical address from a user, and telling the data read-write module where the physical address corresponding to the logical address is through the management module; 3) allocating a physical address space according to a logical address and a length of write data, such as allocating an idle physical address space from a mirror disk array for data with a length less than a first preset threshold in step S1, so as to play a role in cache acceleration; when multiple controllers write simultaneously, an idle physical address space is allocated from the mirror disk array, so as to play a role in preventing a competition conflict, thereby solving the problem that multiple controllers cannot write to a parity disk array simultaneously, i.e., when multiple controllers write simultaneously, the management module returns a physical address of the data read-write module belonging to the mirror disk array, and the mirror disk array can be written to by multiple controllers simultaneously; 4) responsible for re-writing data of the mirror disk array to the parity disk array, the mirror disk array being used only as a high-speed data temporary storage area for caching data and solving a conflict (the mirror disk array wastes space), and not being used for storing a large amount of data. It is easy to understand that the management module can also adaptively adjust functions, such as managing storage space of the parity disk array and integrating fragmented storage space, which are well known to those skilled in the art, and will not be described here.
[0057] In an embodiment, the multi-control architecture is a dual-control architecture or a quad-control architecture or an octa-control architecture.
[0058] Wherein, the application can be flexibly extended to multi-control environment (such as dual-control architecture, four-control architecture, eight-control architecture, etc.), the required premise is that the selected disk or disk cabinet can be shared by all controllers, in the multi-control environment, the controller that only runs the management module is the master controller, and the other controllers are backup controllers, the data read-write module runs in all controllers and is responsible for reading and writing data.
[0059] S3, using the data read-write module and the management module to execute data read-write tasks according to the data read-write request issued by the host end, specifically as follows:
[0060] Data write: each data read-write module receives the data write request issued from the host end, and notifies the management module that data needs to be written to the disk, requests a physical address space from the management module, the management module allocates a physical address space according to the logical address and length of the data to be written, returns the physical address corresponding to the physical address space to the corresponding data read-write module, each data read-write module writes data to the corresponding physical address space according to the returned physical address, and after writing is completed, notifies the management module to update the metadata and saves the updated metadata in the mirror disk array and the parity disk array, the management module notifies the corresponding data read-write module after updating the metadata is completed, and the data read-write module that receives the notification returns the host end data write request is completed, and returns the physical address corresponding to the physical address space to the corresponding data read-write module, specifically: when there is a controller writing at the same time, the management module returns the physical address of the corresponding data read-write module to the mirror disk array, otherwise, the management module returns the physical address of the corresponding data read-write module to the parity disk array;
[0061] Data read: each data read-write module receives the data read request issued from the host end, and provides the logical address and length of the data to the management module, takes the logical address of the data as the input of the management module, obtains the physical address of the data from the management module, reads the data from the corresponding mirror disk array or parity disk array according to the physical address, and notifies the management module to update the metadata after reading is completed and returns the host end.
[0062] For data write, the process is as follows Figure 6In the figure, the data read / write module is responsible for receiving data from the host. It then notifies the management module that data needs to be written to disk. The management module allocates the actual disk address space (physical address space) as needed and returns the physical address corresponding to the physical address space to the data read / write module. The data read / write module then writes the data to the actual disk address space. After the write is complete, the management module is notified to update the metadata. For example, metadata includes an L2P table (logical-to-physical address table) and a P2L table (physical-to-logical address table), which record the correspondence between each logical address and the physical address. Metadata can be stored in mirrored disk arrays and parity disk arrays, such as storing the L2P table in the mirrored disk array and the P2L table in the parity disk array. Alternatively, metadata can be allocated and stored based on actual needs. Furthermore, when metadata changes, the modified portion needs to be rewritten to the corresponding disk array for storage. When writing data, the management module returns the physical address space based on the allocation rules and then modifies the table, changing the physical address corresponding to the logical address to the newly allocated physical address. When reading data, the management module queries the table and returns the physical address corresponding to the logical address. Among them, when the data read and write module starts writing data, the management module as the core needs to decide where to write the data. The method varies depending on the selected cache model (Bcache cache model or OCF cache model), but the strategy that must be followed is: if writing data directly to the parity disk array will cause a contention conflict or the length of the data is less than a first preset threshold, the data must first be written to the cache module (i.e., the mirror disk array) for temporary storage. The subsequent management module will move the data from the cache module to the parity disk array at an appropriate time (such as when the cache module's cache space is insufficient).
[0063] For data reading, the process is as follows Figure 7 In the figure, the data read / write module is responsible for receiving data read requests from the host. The data read / write module uses the data request address as input and the actual storage address obtained from the management module. It then uses the actual storage address to read the data. After the read is complete, it notifies the management module to update the metadata and returns it to the host.
[0064] The correspondence between the logical address and the physical address of the data can be continuously modified and adjusted under actual circumstances. For example, when writing data, the data read and write module provides the logical address to the management module, and the management module returns an idle physical address that will not cause competition conflicts, thereby establishing a correspondence between the two. When the management module moves data from the mirror disk array to the parity disk array, and when defragmenting the fragmented space of the parity disk array, it will move data from one physical address to another, which will involve modifying this correspondence.
[0065] The controller is a computer or server in common parlance. When multiple controllers write a parity disk array simultaneously, a conflict will occur as described in the background art. A stripe of the parity disk array can be written by only one controller. When multiple controllers write, the calculation of the check block of the stripe will be wrong. The parity disk array cannot support multiple controllers to write simultaneously because the writing of any data block of the parity disk array requires other data blocks of the same stripe to participate in the calculation of the check data block. If multiple controllers write different data blocks of the same stripe simultaneously, a data check calculation conflict will exist. Therefore, the physical address space returned by the management module cannot cause any conflict among different controllers in principle. Therefore, if the returned address space belongs to the mirror disk array, there is no conflict. If the returned space belongs to the parity disk array, the physical address space of the same stripe cannot be provided to another controller before the request is completed, otherwise a conflict will occur. By using the cache module as a high-performance cache space and the management module to solve the problem that the parity disk array cannot be written simultaneously in a multi-control environment, the dual-active storage is better implemented.
[0066] S4, when the main controller is dead or abnormal, one of the standby controllers starts the management module to take over the main controller to work; when the standby controller is dead or abnormal, the main controller works normally; when the link between the controller and the host is abnormal, no operation is needed, and the other controllers work normally.
[0067] In an embodiment, one of the standby controllers starts the management module to take over the main controller to work, specifically:
[0068] The standby controller loads and recovers the metadata saved in the mirror disk array and the parity disk array to the started management module and then re-runs.
[0069] The takeover is that among all the functions of the management module, the main thing that needs to be saved is the correspondence between the logical address and the physical address, the related metadata is saved in the corresponding disk array, and the process of the takeover is that the standby controller loads, recovers and then re-runs the metadata saved in the disk array, that is, the standby controller takes over the dead or abnormal main controller as a new main controller to run the management module and the data read-write module at the same time, and the other standby controllers still only run the data read-write module.
[0070] The application divides the controller into a main controller and a backup controller in software, the main controller and the backup controller can simultaneously perform data read-write services, but the main controller additionally needs to run a management module to perform management services. The mirror disk array serves as a cache module of the parity disk array, is used for caching data, accelerates data read-write, and can prevent conflicts caused by simultaneously writing the parity disk array. The parity disk array serves as a large-capacity data storage module and is used for storing most user data.
[0071] Further, different configurations can be performed for different volumes, for example, in a dual-control architecture, for volume X, controller A is selected as the main controller and controller B is selected as the backup controller, and for volume Y, controller B is selected as the main controller and controller A is selected as the backup controller. Uniformly distributing the main-backup control configurations of different volumes is conducive to load balancing among multiple controllers.
[0072] When the backup controller is dead or abnormal, the main controller is not affected and does not need any operation; when the main controller is dead or abnormal, the backup controller needs to start the management module to take over the work of the main controller, such as taking over the L2P table and the P2L table, restarting the management module, and the backup controller will continue to serve as a new main controller to provide services for the host; when there is a link exception between the controller and the host, no operation is needed, and other controllers can normally provide data services.
[0073] The specific implementation process is as follows:
[0074] For example, the data write implementation process is as follows: Figure 6
[0075] (1) The data read-write module receives the data write request of the host end and starts writing data;
[0076] (2) The data read-write module requests the physical address space from the management module and specifies the logical address and length of the written data, such as informing that there is a data write, the logical address of the data is A, and the length is X;
[0077] (3) The management module returns the physical address space to determine where to write the data, and the returned physical address space cannot cause any conflict between different controllers in principle;
[0078] (4) The data read-write module writes data according to the corresponding physical address of the returned physical address space (such as writing data to disk N at address M);
[0079] (5) The data read-write module notifies the management module that the data has been written and has been written to the specified location;
[0080] (6) The management module updates the metadata and modifies the physical address corresponding to the logical address A to disk N at address M.
[0081] (7) The management module informs the data read-write module that the metadata update is completed;
[0082] (8) The data read-write module returns the host that the data write request is completed, i.e., the data write is completed, and returns the host state.
[0083] For example, the data read implementation process is as follows: Figure 7
[0084] (1) The data read-write module receives the data read request of the host and starts reading data;
[0085] (2) The data read-write module informs the management module of the logical address and length of the read data, such as informing that there is a data read, the logical address of the data is B, and the length is Y;
[0086] (3) The management module calculates the corresponding actual storage address (such as reading from the disk I, the physical address J) to determine where to read data;
[0087] (4) The data read-write module reads data from the disk I, the physical address J, and returns the host and informs the management module after completion;
[0088] (5) The management module updates the metadata generated by reading data, and the data read-write module returns the host that the data read request is completed and returns the host state.
[0089] The application has been successfully deployed on the super-micro double-control storage server and the Feiteng double-control storage server, and the double-control double-active mode realized by using the high-speed centralized storage double-active method successfully provides storage services, both the double controls have data traffic, and the performance of the double controls is twice as high as that of using only a single control.
[0090] It should be understood that, although Figure 5 , Figure 6 , Figure 7 Each step in the flowchart is displayed in sequence according to the direction of the arrow, but these steps are not necessarily executed in sequence according to the direction of the arrow. Unless otherwise stated in this article, the execution of these steps does not have strict sequence restrictions, and these steps can be executed in other orders. Moreover, at least part of the steps in the figure can include multiple sub-steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution order of these sub-steps or stages is not necessarily sequential, but can be executed in rotation or alternation with at least part of other steps or other steps sub-steps or stages.
[0091] Example 2:
[0092] For example, the data read implementation process is as follows: Figure 8 As shown in FIG. 1, a high-speed centralized storage dual-active device includes a host, a multi-control architecture, a mirror disk array, and a parity disk array. The multi-control architecture includes a plurality of controllers. The mirror disk array and the parity disk array are connected with the controllers. The controllers are also connected with the host. The controllers interact with each other through a low-latency link channel. The high-speed centralized storage dual-active device is used to execute any of the high-speed centralized storage dual-active methods mentioned in Embodiment 1.
[0093] The high-speed centralized storage dual-active device can be flexibly extended to a multi-control environment (such as a dual-control architecture, a four-control architecture, an eight-control architecture, etc.). The hardware architecture of the present embodiment is as shown in FIG. 2. Figure 8 As shown in FIG. 2, it is a dual-control architecture. Controller A and controller B are the master controller and the backup controller, respectively. The mirror disk array is a high-speed mirror disk array. The device uses dual-port disks or disk cabinets (such as JBOF disk cabinets) that can be shared by multiple controllers, etc., to ensure that the disks are readable and writable to all controllers. By using two kinds of disk arrays, the parity disk array is used for large-capacity data storage, and the mirror disk array is used for data caching. The low-latency link channel between the dual controls (controller A and controller B) is used for metadata interaction between the controllers. The high-speed centralized storage dual-active device is used to execute any of the high-speed centralized storage dual-active methods mentioned in Embodiment 1.
[0094] Any combination of the technical features of the above-mentioned embodiments can be made. In order to make the description simple, all possible combinations of the technical features in the above-mentioned embodiments are not described. However, as long as the combination of these technical features does not exist, it should be considered as the scope of the present application.
[0095] The above-mentioned embodiments only express the more specific and detailed embodiments described in the present application, but should not be interpreted as limiting the scope of the patent application. It should be noted that for ordinary skilled persons in the art, without departing from the concept of the present application, a number of modifications and improvements can be made, which are within the scope of the present application. Therefore, the scope of the patent of the present application should be subject to the appended claims.
Claims
1. A high-speed centralized active-active storage method, applied to a multi-controller architecture comprising multiple controllers, characterized in that: The high-speed centralized storage active-active method comprises the following steps: S1. Using a mirror disk array as a cache module for a parity disk array. The cache module is configured to temporarily store data when at least two controllers in a multi-controller architecture simultaneously write data to the parity disk array. The parity disk array is configured to store data. Both the mirror disk array and the parity disk array include multiple disks. S2: One of the controllers in the multi-controller architecture is used as the master controller, and the remaining controllers are used as standby controllers. Each controller is equipped with a data read / write module and a management module. Only the master controller runs both the data read / write module and the management module, while the standby controllers only run the data read / write module. The data reading and writing module is used to receive data reading and writing requests from the host and execute data reading and writing tasks accordingly; The management module is used to manage the cache module and the address space, where the address space is used to represent the correspondence between the logical address and the physical address of the data; S3. Use the data reading and writing module and the management module to execute the data reading and writing tasks according to the data reading and writing requests issued by the host side. The details are as follows: Data writing: Each data read-write module receives a data write request sent from the host side, and notifies the management module that there is data that needs to be written to the disk, and requests the physical address space from the management module. The management module allocates the physical address space according to the logical address and length of the written data, and returns the physical address corresponding to the physical address space to the corresponding data read-write module. Each data read-write module writes the data to the corresponding physical address space according to the returned physical address. After the write is completed, the management module is notified to update the metadata and save the updated metadata in the mirror disk array and the parity disk array. After the metadata is updated, the management module notifies the corresponding data read-write module. After receiving the notification, the data read-write module returns to the host side that the data write request has been completed. The specific method of returning the physical address corresponding to the physical address space to the corresponding data read-write module is: when there is simultaneous writing by the controller, the management module returns that the physical address of the corresponding data read-write module belongs to the mirror disk array; otherwise, the management module returns that the physical address of the corresponding data read-write module belongs to the parity disk array; Data read: Each data read / write module receives a data read request from the host and provides the management module with the logical address and length of the data. The management module uses the logical address of the data as input, obtains the physical address of the data from the management module, and reads the data from the corresponding mirror disk array or parity disk array based on the physical address. After the read is completed, the management module is notified to update the metadata and return it to the host. S4. When the main controller crashes or is abnormal, one of the backup controllers starts the management module to take over the main controller to work; when the backup controller crashes or is abnormal, the main controller works normally; when there is an abnormality in the link between the controller and the host end, no operation is required, and other controllers work normally.
2. The high-speed centralized storage active-active method according to claim 1, wherein: The cache module is also used to temporarily store the data when the length of the written data is less than a preset threshold, and when the length of the written data is less than the preset threshold, the management module returns that the physical address of the corresponding data read and write module belongs to the mirror disk array; otherwise, the management module returns that the physical address of the corresponding data read and write module belongs to the parity disk array.
3. The high-speed centralized storage active-active method according to claim 1, wherein: The management module is also used to move data from the cache module to the parity disk array when the cache space of the cache module is insufficient, and update metadata after the migration is completed, and save the updated metadata in the mirror disk array and the parity disk array.
4. The high-speed centralized storage active-active method according to claim 1, wherein: The standby controller starts the management module to take over the work of the main controller, specifically: The standby controller loads and restores the metadata stored in the mirror disk array and the parity disk array to the started management module and then restarts the controller.
5. The high-speed centralized storage active-active method according to claim 1, wherein: The management of the cache module adopts the bcache cache model or the ocf cache model; the management of the address space adopts the FTL model.
6. The high-speed centralized storage active-active method according to claim 1, wherein: The disk is a dual-port disk or a disk cabinet that can be shared by multiple controllers.
7. The high-speed centralized storage active-active method according to claim 1, wherein: The multi-controller architecture is a dual-controller architecture, a quad-controller architecture, or an eight-controller architecture.
8. A high-speed centralized storage active-active device, characterized by: The high-speed centralized storage active-active device includes a host, a multi-controller architecture, a mirror disk array and a parity disk array. The multi-controller architecture includes multiple controllers. The mirror disk array and the parity disk array are both connected to each of the controllers. Each of the controllers is also connected to the host, and metadata is exchanged between the controllers through a low-latency link channel. The high-speed centralized storage active-active device is used to execute the high-speed centralized storage active-active method as described in any one of claims 1-7.
Citation Information
Patent Citations
Double-control double-active storage control system and method
CN103092786A
Multi-active multi-control storage system with dual RAID data protection
CN112596673A