CN108319430A - Handle the method and device of I/O Request - Google Patents

Handle the method and device of I/O Request Download PDF

Info

Publication number
CN108319430A
CN108319430A CN201810043586.8A CN201810043586A CN108319430A CN 108319430 A CN108319430 A CN 108319430A CN 201810043586 A CN201810043586 A CN 201810043586A CN 108319430 A CN108319430 A CN 108319430A
Authority
CN
China
Prior art keywords
controller
cache
request
data
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810043586.8A
Other languages
Chinese (zh)
Other versions
CN108319430B (en
Inventor
苏伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Sequoia Polytron Technologies Inc
Original Assignee
Hangzhou Sequoia Polytron Technologies Inc
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 Hangzhou Sequoia Polytron Technologies Inc filed Critical Hangzhou Sequoia Polytron Technologies Inc
Priority to CN201810043586.8A priority Critical patent/CN108319430B/en
Publication of CN108319430A publication Critical patent/CN108319430A/en
Application granted granted Critical
Publication of CN108319430B publication Critical patent/CN108319430B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0656Data buffering arrangements

Abstract

The application provides a kind of method and device of processing I/O Request, applied to dual control storage device, the dual control storage device includes the first controller and second controller, the corresponding spatial cache of each controller is divided into multiple cache blocks respectively, there are corresponding offset address for each cache blocks, two in the spatial cache of the first controller and second controller cache blocks with same offset address mirror image each other, the method includes:First controller receives be sent to the I/O Request of second controller after, the I/O Request can be forwarded to second controller, to return to the offset address of target cache block by second controller, and then is executed based on the offset address and to read IO or write the operation of IO.Technical scheme reduces the overhead for creating mirror cache block and maintenance image relationship, avoids scheduling overhead and the own bandwidth of forwarding module as the performance bottleneck of storage system, effectively improves the efficiency of dual control storage device processes I/O Request.

Description

Handle the method and device of I/O Request
Technical field
This application involves field of storage, more particularly to handle the method and device of I/O Request.
Background technology
In field of storage, the response speed of processing I/O Request is usually improved with caching technology, and then improve storage system Performance.
The controller of storage device can preserve the data in LUN (Logical Unit Number, logical unit number) Into spatial cache, when in order to receive the read I O request for reading above-mentioned data, can directly from spatial cache return on Data are stated, to improve response speed.Wherein, it is known as valid data, significant figure from the data being saved in LUN in spatial cache According to the backup for data in LUN.
The data to be written that write IO request carries can be written to by the controller of storage device when handling write IO request Spatial cache is then back to and is written successfully, to improve response speed.Wherein, above-mentioned data to be written are written to spatial cache In be dirty data, dirty data can be written to subsequently in LUN.
For double-controller system, the general means data cached as protection using caching mirror image technology.It is substantially former Reason is that consistent dirty data copy is preserved in the spatial cache of two controllers, and when any controller breaks down, (it is cached Data in space are unavailable), another controller remains to provide corresponding data access.
However, in the prior art, the controller management spatial cache of double-controller system is complex, influences systematicness Energy.
In addition, in double-controller system, if with front end connecting fault, the front-end access control occur for one of controller When device processed, I/O Request can be sent by the path between another controller, another controller again turns above-mentioned I/O Request It is sent to above controller.Wherein, it is unoptimizable path that another controller, which receives and forwards the path of above-mentioned I/O Request,.For that will forward The process United Dispatching of I/O Request, is typically led to dedicated forwarding module.
However, in the I/O Request that processing is received from unoptimizable path, there are internal forwarding processes, if dual control storage device LUN quantity it is more, the scheduling overhead and own bandwidth of forwarding module can become the performance bottleneck of whole system.
Invention content
In view of this, the application provides the method and device of processing I/O Request, cached in management to solve the prior art The problem of influencing system performance in space and internal repeating process.
Specifically, the application is achieved by the following technical solution:
A method of processing I/O Request is applied to dual control storage device, and the dual control storage device includes the first control Device and second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, and each cache blocks, which exist, to be corresponded to Offset address, two in the spatial cache of first controller and the second controller are with same offset address Cache blocks mirror image each other, including:
First controller receives write IO request, determines whether the LUN identification in the write IO request is to be under the jurisdiction of Local LUN identification;
If the LUN identification in the write IO request is not to be under the jurisdiction of local LUN identification, first controller is by institute It states write IO request and is forwarded to the second controller, to determine target cache block by the second controller and return to the target The offset address of cache blocks;
First controller is based on the offset address, and the mesh is written in the data to be written in the write IO request Mark the mirror cache block of cache blocks;
The target cache block is written in the data to be written by first controller, and is sent and write IO successful informations.
In the method for the processing I/O Request, the method further includes:
If the LUN identification in the write IO request is to be under the jurisdiction of local LUN identification, first controller determines mesh Mark cache blocks;
The target cache block is written in data to be written in the write IO request by first controller;
Based on the offset address of the target cache block, the data to be written are written to the mirror image of the target cache block Cache blocks.
In the method for the processing I/O Request, the method further includes:
After the target cache block is written in the data to be written by the first controller, added for the target cache block dirty Data Identification;
It is the mirror image after the mirror cache block of the target cache block is written in the data to be written by the first controller Cache blocks add dirty data mark.
In the method for the processing I/O Request, the method further includes:
First controller operates the cache blocks of any a pair of mirror image each other based on mutual exclusion principle;Wherein, institute It is that first controller and the second controller cannot while operate the cache blocks of mirror image each other to state mutual exclusion principle.
A method of processing I/O Request is applied to dual control storage device, and the dual control storage device includes the first control Device and second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, and each cache blocks, which exist, to be corresponded to Offset address, two in the spatial cache of first controller and the second controller are with same offset address Cache blocks mirror image each other, including:
First controller receives read I O request, determines whether the LUN identification in the read I O request is to be under the jurisdiction of Local LUN identification;
If the LUN identification in the read I O request is not to be under the jurisdiction of local LUN identification, first controller is by institute It states read I O request and is forwarded to the second controller, with empty in the caching for determining first controller by the second controller Between in there are return to confirmation message after data to be read;Wherein, the confirmation message is with carrying the offset of the data to be read Location;
First controller is based on the offset address, is obtained from spatial cache and sends the data to be read.
In the method for the processing I/O Request, the method further includes:
First controller receives the read I O request of the second controller forwarding, determines in local spatial cache With the presence or absence of the target cache block for the data to be read for preserving the read I O request;
If there is the target cache block, first controller determines that the mirror cache block of the target cache block is It is no to preserve the data to be read;
If the mirror cache block preserves the data to be read, first controller is returned to the second controller Return the confirmation message.
In the method for the processing I/O Request, the method further includes:
If there is no the target cache block, first controller is corresponded to from the LUN identification in the read I O request LUN in read the data to be read and be written in the target cache block chosen;
The data to be read are written the mirror cache block of the target cache block by first controller, and to described Second controller returns to the confirmation message.
In the method for the processing I/O Request, the method further includes:
If the mirror cache block of the target cache block does not preserve the data to be read, the first controller is waited for described It reads data and the mirror cache block is written, and the confirmation message is returned to the second controller.
In the method for the processing I/O Request, the method further includes:
First controller reads data simultaneously according to the read I O request, based on the preset strategy that pre-reads from the LUN It is written in several cache blocks chosen, and several caching data in the block is written to the mirror cache of several cache blocks In block.
In the method for the processing I/O Request, the method further includes:
After writing data into cache blocks, effective Data Identification is added for the cache blocks;Wherein, the cache blocks include institute State target cache block, several cache blocks and the mirror cache block.
In the method for the processing I/O Request, the method further includes:
First controller operates the cache blocks of any a pair of mirror image each other based on mutual exclusion principle;Wherein, institute It is that first controller and the second controller cannot while operate the cache blocks of mirror image each other to state mutual exclusion principle.
A kind of device of processing I/O Request, is applied to dual control storage device, and the dual control storage device includes the first control Device and second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, and each cache blocks, which exist, to be corresponded to Offset address, two in the spatial cache of first controller and the second controller are with same offset address Cache blocks mirror image each other, including:
First receiving unit determines whether the LUN identification in the write IO request is to be subordinate to for receiving write IO request In local LUN identification;
First retransmission unit, if not being to be under the jurisdiction of local LUN identification for the LUN identification in the write IO request, The write IO request is forwarded to the second controller, to be determined described in target cache block and return by the second controller The offset address of target cache block;
For being based on the offset address mesh is written in data to be written in the write IO request by writing unit Mark the mirror cache block of cache blocks;
First transmission unit, for the target cache block to be written in the data to be written, and transmission is write IO and is successfully believed Breath.
A kind of device of processing I/O Request, is applied to dual control storage device, and the dual control storage device includes the first control Device and second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, and each cache blocks, which exist, to be corresponded to Offset address, two in the spatial cache of first controller and the second controller are with same offset address Cache blocks mirror image each other, including:
Second receiving unit determines whether the LUN identification in the read I O request is to be subordinate to for receiving read I O request In local LUN identification;
Second retransmission unit, if not being to be under the jurisdiction of local LUN identification for the LUN identification in the read I O request, The read I O request is forwarded to the second controller, to determine the slow of first controller by the second controller Deposit in space that there are return to confirmation message after data to be read;Wherein, the confirmation message carries the inclined of the data to be read Move address;
Second transmission unit, for being based on the offset address, being obtained from spatial cache and sending the access of continuing According to.
In technical scheme, dual control storage device includes the first controller and second controller, each controller pair The spatial cache answered is divided into multiple cache blocks respectively, and there are corresponding offset address, first controllers for each cache blocks There is the cache blocks mirror image each other of same offset address with two in the spatial cache of the second controller;
First controller receives the write IO request for being sent to the second controller, can be by the write IO request It is sent to the second controller, to determine target cache block by the second controller and return to the inclined of the target cache block Move address, first controller can based on the offset address by the write IO request data to be written write-in described in The mirror cache block of target cache block and the target cache block;
First controller receives the read I O request for being sent to the second controller, can be by the read I O request It is sent to the second controller, is waited for being existed in the spatial cache for determining first controller by the second controller Confirmation message is returned after reading data;Wherein, the confirmation message carries the offset address of the data to be read;Described first Controller can be based on the offset address, obtained from spatial cache and send the data to be read;
Due to existing with same offset address in the spatial cache of first controller and the second controller The cache blocks of mirror image each other, first controller can be conveniently based on the offset address that the second controller returns and delay It deposits and the data to be written is written in space, alternatively, the offset address based on second controller return is from spatial cache The data to be read are read, the overhead for creating mirror cache block and maintenance image relationship is reduced;In addition, eliminating Forwarding module avoids the scheduling overhead of forwarding module and own bandwidth from becoming the performance bottleneck of whole system.
Description of the drawings
Fig. 1 is a kind of schematic diagram of dual control storage device processes write IO request of the prior art;
Fig. 2 is a kind of schematic diagram of dual control storage device processes read I O request of the prior art;
Fig. 3 is a kind of Organization Chart of dual control storage device of the prior art;
Fig. 4 is a kind of schematic diagram of the I/O Request in dual control storage device processes unoptimizable path of the prior art;
Fig. 5 is a kind of Organization Chart of dual control storage device shown in the application;
Fig. 6 is a kind of flow chart of the method for processing I/O Request shown in the application;
Fig. 7 is the flow chart of the method for another processing I/O Request shown in the application;
Fig. 8 is a kind of embodiment block diagram of the device of processing I/O Request shown in the application;
Fig. 9 is a kind of hardware structure diagram of the device of processing I/O Request shown in the application;
Figure 10 is the embodiment block diagram of the device of another processing I/O Request shown in the application;
Figure 11 is the hardware structure diagram of the device of another processing I/O Request shown in the application.
Specific implementation mode
In order to make those skilled in the art more fully understand the technical solution in the embodiment of the present invention, and make of the invention real The above objects, features, and advantages for applying example can be more obvious and easy to understand, below in conjunction with the accompanying drawings to prior art and the present invention Technical solution in embodiment is described in further detail.
Double-controller system can usually utilize PCIE (Peripheral Component Interconnect Express) non-transparent bridge realizes the memory address mappings of dual controller, and further realizes data cached transmission and backup.
In the realization principle of caching, the processing of read I O request and write IO request is made a big difference.
For write IO request, caching technology mainly provides performance in terms of three and accelerates.It is the one of the prior art referring to Fig. 1 The schematic diagram of kind dual control storage device processes write IO request.
1. after any controller of dual control storage device receives write IO request, above-mentioned write IO request can be carried to be written Enter data to be written in caching, the data in write-in caching are dirty data, then write data into the slow of another controller Deposit middle formation mirror image dirty data.By caching technology, controller can be written to slow in the data for carrying above-mentioned write IO request The time delay for being written and successfully reducing and above-mentioned data to be written being written to disk space is returned to after in depositing, to improve response Speed achievees the purpose that performance boost;
2. controller by dirty data before being written disk space, can be according to data the characteristics of, to the dirty number in caching It effectively sorts, merge according to progress so that follow-up write efficiency higher;
3. new data may be written again by having been written into the position of dirty data in caching, then before dirty data can be by It is completely covered.When being repetitively written data for the same address in disk space, then actually only IO will need to be for the last time write Disk space is written in data in request.By caching technology, reduce before this operation of the disk space of data write-in several times, Alleviate the pressure of disk.
For read I O request, caching technology is mainly by improving the hit rate of read I O request come improving performance.Referring to Fig. 2, For a kind of schematic diagram of dual control storage device processes read I O request of the prior art.
After any controller of dual control storage device receives the read I O request for the data in disk space, it can select It is read recently or is written infrequently the data taken in a period of time and be stored in spatial cache, it is above-mentioned to receive reading again When the read I O request of data, above-mentioned data can be directly returned from spatial cache.
In addition, controller can also read a part of data to caching by pre-reading tactful autonomous selection from disk space In, it is expected to hit later, relative theory can refer to the prior art, and details are not described herein.
Controller is saved in the data in caching from disk space becomes valid data.Since even if event occurs for controller Barrier, controller in addition can also reacquire above-mentioned data from disk space, and therefore, valid data do not preserve mirror image generally Data.
In the prior art, double-controller system is run using mutually standby mode, and the processing Logic Priority of single LUN is wherein One controller executes.It is a kind of Organization Chart of dual control storage device of the prior art, in the dual control storage device referring to Fig. 3 In, LUN-1 home controls device 1, LUN-2 home controls device 2, controller is according to the processing different with write IO request to read I O request Spatial cache is logically divided into read buffer region and write buffer region by mode.Wherein, only there is life in write buffer region The operation being mirrored into.
As shown in figure 3, " Valid1-1 " is the valid data of LUN-1, " Dirty1-1 ", " Dirty1-2 " is LUN-1 Dirty data, " Mirror1-1 ", " Mirror1-2 " are the mirror image dirty datas of LUN-1;“Valid2-1”,“Valid2-2”, " Valid2-3 " is the valid data of LUN-2, and " Dirty2-1 " is the dirty data of LUN-2, and " Mirror2-1 " is the mirror of LUN-2 As dirty data.
Controller 1 need not be the spatial cache of LUN-2 distribution storage valid data, but be LUN-2 distribution storage mirrors As the spatial cache of dirty data;On the contrary, controller 2 need not be the spatial cache of LUN-1 distribution storage valid data, but want The spatial cache of storage mirror image dirty data is distributed for LUN-1.
When new dirty data is written in spatial cache residing for the valid data, the controller belonging to the spatial cache is notified that Another controller distributes corresponding mirror cache space to preserve mirror image dirty data.After dirty data is written into disk space, delay The dirty data deposited in space becomes valid data, and the controller belonging to the spatial cache is notified that another controller release corresponds to Mirror cache space caching other data.
In addition, when controller 1 breaks down, the LUN-1 for belonging to controller 1 can be taken over by controller 2,2 meeting of controller The spatial cache for storing valid data is distributed for LUN-1.
As it can be seen that controller is handling read I O request and when write IO request, if the spatial cache of valid data be written into it is dirty It fails after data or dirty data write-in disk, needs to convert spatial cache, and need the slow of two controllers of maintenance The mirror of data in space is deposited, management spatial cache is more complicated, influences system performance.
It is a kind of schematic diagram of the I/O Request in dual control storage device processes unoptimizable path of the prior art referring to Fig. 4.When With front end connecting fault occurs for one of dual control memory controller, then when front end applications access the controller, can pass through Path between another controller sends I/O Request, then forwards above-mentioned I/O Request by another controller.Wherein, another controller It is unoptimizable path to receive and forward the path of above-mentioned I/O Request.
For repeating process is carried out United Dispatching, dedicated forwarding module can be generally introduced.It is to handle write IO request Example, forwarding module receive the access request of the spatial cache for controller 1 from the front-end path of controller 2, will first write IO Interim memory 2 is written in request, then inside is forwarded to interim memory 1, and then is sent to above-mentioned write IO request from interim memory 1 The spatial cache of controller 1.Controller 1 does not perceive whether above-mentioned write IO request is received by unoptimizable path, can normally handle.
However, if the LUN quantity of dual control storage device is more, when the I/O Request received there are a large amount of unoptimizable paths, The scheduling overhead and own bandwidth of forwarding module can become the performance bottleneck of whole system.
In view of this, the application provides the method and device of processing I/O Request, managed to solve dual control storage device The problem of influencing system performance in spatial cache and internal repeating process.
Referring to Fig. 5, a kind of Organization Chart of dual control storage device is shown for the application, referring to Fig. 5, dual control storage device includes First controller (controller 1 in figure), second controller (controller 2 in figure) and disk, the corresponding caching of each controller are empty Between be divided into multiple cache blocks respectively, there are corresponding offset address for each cache blocks.Above-mentioned first controller and above-mentioned second Two cache blocks mirror images each other with same offset address in the spatial cache of controller.
Wherein, the name that the first controller and second controller carry out for ease of description, two controllers are no difference, Do not limit the application.
It is identified as shown in figure 5, being identified as in the spatial cache of controller 1 in 1 cache blocks and the spatial cache of controller 2 For 1 cache blocks offset address having the same, and mirror image each other.Be identified as in the spatial cache of controller 12 cache blocks with 2 cache blocks offset address having the same, and mirror image each other are identified as in the spatial cache of controller 2.And so on, control There is mirror cache block in the spatial cache of controller 2 in any cache blocks in the spatial cache of device 1.
When there are one cache blocks, and dirty data is written in two cache blocks of mirror image each other, then mirror can be written in another cache blocks As dirty data;When there are one cache blocks, and valid data are written in two cache blocks of mirror image each other, then another cache blocks can be with Mirror image valid data are written or are in idle state, " No Data " indicates that mirror image valid data are not written in figure.
The default image relationship formed by above-mentioned division, dual control storage device Maintenance free mirror, reduces pipe The overhead that reason spatial cache is brought.
It should be pointed out that whether each cache blocks are wherein write there are corresponding metadata (not shown) to mark Enter data, and the property (dirty data or valid data) of the data of write-in.
In a kind of embodiment shown, each minimum memory unit of cache blocks corresponds to two flags, wherein one A flag characterizes in the storage cell whether dirty data is written, and whether another is identified as to characterize and be written in the storage cell Imitate data.
Such as:Each cache blocks are 8KB (Kilobyte, kilobytes), and minimum memory unit is 512B (Byte, byte).Then Each cache blocks can be divided into 16 sectors based on minimum memory unit, and each sector corresponds to dirty data flag and valid data mark Position, if valid data are written in any sector, corresponding valid data flag is 1, and corresponding dirty data flag is 0;If Dirty data is written in any sector, then corresponding valid data flag is 0, and corresponding dirty data flag is 1;If any sector Data are not written, then corresponding valid data flag is 0, and corresponding dirty data flag is 0.In this embodiment, The flag of each cache blocks only accounts for 32 bits.
It should be pointed out that if any sector in the case where having been written into valid data before this, is written with dirty data, then right The dirty data flag answered is 1, and corresponding valid data flag can still remain 1.In this case, dirty data flag Priority be higher than the priority of valid data flag, controller need to first check that dirty data flag judges whether write in sector Enter dirty data, if dirty data flag is 0, continues checking for valid data flag and judge whether valid data are written in sector.
In the embodiment of the present application, two controllers of dual control storage device can be respectively to be under the jurisdiction of local LUN distribution Corresponding cache blocks, and allocation result is recorded in cache blocks allocation table, wherein above-mentioned cache blocks allocation table includes LUN marks Know the mapping relations with caching block identification (or offset address of cache blocks).
It should be pointed out that when two controllers of dual control storage device are when distributing memory block, it is based on mutual exclusion principle pair The cache blocks of any a pair of mirror image each other are operated;Wherein, above-mentioned mutual exclusion principle is above-mentioned first controller and above-mentioned second Controller cannot simultaneously operate the cache blocks of mirror image each other.
It is illustrated by taking Fig. 5 as an example, controller 1 is to be under the jurisdiction of local LUN-1 distribution cache blocks, and controller 2 is to be subordinate to Cache blocks are distributed in local LUN-2.When controller 1 chooses local cache blocks 1 to distribute to LUN-1, actually simultaneously will Cache blocks 1 in the spatial cache of controller 2 distribute to LUN-1.To avoid controller 2 from again distributing to local cache blocks 1 LUN-2.Controller 1 can lock the caching of controller 2 when distributing cache blocks to be under the jurisdiction of local LUN by mutual exclusion lock Space, and unlock after being assigned.Controller 1 can share above-mentioned cache blocks allocation table to controller 2.
Controller 2 be based on above-mentioned cache blocks allocation table, select unassigned cache blocks distribute to be under the jurisdiction of it is local LUN.Certainly, controller 2 when distributing cache blocks can also lockout controller 1 spatial cache, and after distribution share Cache blocks allocation table.
After the distribution that controller completes cache blocks, I/O Request can be handled based on the technical solution of the application.
It is a kind of flow chart of the method for processing I/O Request shown in the application referring to Fig. 6, this method is deposited applied to dual control Equipment is stored up, dual control storage device of the dual control storage device with reference to shown in Fig. 5 the described method comprises the following steps:
Step 601:First controller receives write IO request, determines whether is LUN identification in the write IO request For the LUN identification for being under the jurisdiction of local.
Step 602:If the LUN identification in the write IO request is not to be under the jurisdiction of local LUN identification, first control The write IO request is forwarded to the second controller by device processed, to be determined target cache block by the second controller and be returned The offset address of the target cache block.
In the embodiment of the present application, the first controller receives write IO request from the path being connect with front end, can be first Determine whether the LUN identification in above-mentioned write IO request is to be under the jurisdiction of local LUN identification.Wherein, above-mentioned write IO request carries LUN Mark, the mapping relations of data initial address and data length, the data initial address are the number in the corresponding LUN of LUN identification According to initial address.
On the one hand, if the LUN identification in above-mentioned write IO request is to be under the jurisdiction of local LUN identification, above-mentioned first control Device processed can directly determine target cache block.
Specifically, it is corresponding with the LUN identification not can be based on the selection of above-mentioned cache blocks allocation table for above-mentioned first controller The cache blocks of data are written as target cache block.
Above-mentioned target cache block can be written in data to be written in above-mentioned write IO request by above-mentioned first controller.
Further, since target cache block is identical as the offset address of mirror cache block, above-mentioned first controller can be based on The mirror cache block of above-mentioned target cache block is written in above-mentioned data to be written by the offset address of above-mentioned target cache block.
In a kind of embodiment shown, above-mentioned first controller delays by the above-mentioned target of above-mentioned data write-in to be written Can be that above-mentioned target cache block and the addition of above-mentioned image cache blocks are dirty after the mirror cache block of counterfoil and above-mentioned target cache block Data Identification.
On the other hand, if the LUN identification in above-mentioned write IO request is not to be under the jurisdiction of local LUN identification, above-mentioned Above-mentioned write IO request can be forwarded to above-mentioned second controller by one controller.It should be pointed out that reduce bandwidth consumption, turn The write IO request for being sent to above-mentioned second controller does not carry above-mentioned data to be written.
Above-mentioned second controller can determine target cache block, and the offset address of above-mentioned target cache block is sent to State the first controller.
In addition, above-mentioned second controller can lock above-mentioned target cache block, no longer above-mentioned target cache block is grasped Make.
Step 603:First controller is based on the offset address, and the data to be written in the write IO request are write Enter the mirror cache block of the target cache block.
Above-mentioned first controller receives above-mentioned offset address, can will be in above-mentioned write IO request based on above-mentioned offset address Data to be written the mirror cache block of above-mentioned target cache block is written.
In a kind of embodiment shown, above-mentioned target cache is written in above-mentioned data to be written by above-mentioned first controller Can be that above-mentioned image cache blocks add dirty data mark after the mirror cache block of block.By the measure, controller can determine The cache blocks have been written into dirty data.
In addition, if above-mentioned image cache blocks have added effective Data Identification before this, above-mentioned first controller can be gone Except the valid data identify, dirty data mark is then added.Certainly, above-mentioned first controller can also retain the valid data mark Know.
Above-mentioned second controller can be based on processing write IO request as a result, update local cache table.
Step 604:The target cache block is written in the data to be written by first controller, and send write IO at Work(information.
Above-mentioned first controller above-mentioned data to be written can be written upper in the spatial cache of above-mentioned second controller Target cache block is stated, IO successful informations are write in then forward end transmission, to complete the process of single treatment I/O Request.
In a kind of embodiment shown, above-mentioned target cache is written in above-mentioned data to be written by above-mentioned first controller Can be that above-mentioned target cache block adds dirty data mark after block.
In addition, if above-mentioned target cache block has added effective Data Identification before this, above-mentioned first controller can be gone Except the valid data identify, dirty data mark is then added.
It, can be to above-mentioned in addition, above-mentioned first controller is by above-mentioned data to be written after being written above-mentioned target cache block Second controller sends write-in and completes information, to be released to the locking of above-mentioned target cache block and rear by above-mentioned second controller It is continuous that above-mentioned data to be written are written in the corresponding LUN of above-mentioned LUN identification.
Certainly, above-mentioned first controller can also update local cache table, postpone in order to subsequently be based on local cache table It deposits and obtains data in space.Wherein, above-mentioned local cache table includes LUN identification, data initial address and offset address (or caching Block identification) mapping relations.Specific renewal process can refer to the prior art, and details are not described herein.
In the application implementation, if the dirty data in local spatial cache is written to LUN by above-mentioned second controller In the middle, the dirty data of the cache blocks where the dirty data having been written into can be identified and is changed to valid data mark.Can specifically it join According to the prior art, details are not described herein.
It is a kind of flow chart of the method for processing I/O Request shown in the application referring to Fig. 7, this method is deposited applied to dual control Equipment is stored up, dual control storage device of the dual control storage device with reference to shown in Fig. 5 the described method comprises the following steps:
Step 701:First controller receives read I O request, determines whether is LUN identification in the read I O request For the LUN identification for being under the jurisdiction of local.
Step 702:If the LUN identification in the read I O request is not to be under the jurisdiction of local LUN identification, first control The read I O request is forwarded to the second controller by device processed, to determine first controller by the second controller Spatial cache in there are return to confirmation message after data to be read;Wherein, the confirmation message carries the data to be read Offset address.
In the embodiment of the present application, the first controller receives read I O request from the path being connect with front end, can be first Determine whether the LUN identification in above-mentioned read I O request is to be under the jurisdiction of local LUN identification.Wherein, above-mentioned read I O request carries LUN Mark, the mapping relations of data initial address and data length, the data initial address are the number in the corresponding LUN of LUN identification According to initial address.
On the one hand, if the LUN identification in above-mentioned read I O request is to be under the jurisdiction of local LUN identification, above-mentioned first control Device processed can determine whether above-mentioned read I O request hits local spatial cache.
Specifically, above-mentioned first controller can be based on the LUN identification in above-mentioned read I O request, data start sum number Preset local cache table is searched according to length, it is determined whether there are corresponding local cache list items.If so, correspondence can be checked Whether data are written in the spatial cache of offset address in local cache list item (with the presence or absence of dirty data mark or significant figure According to mark), and in the case where data are written, read the data to be read of above-mentioned read I O request;If not, corresponding to upper State and data be not written in the spatial cache of offset address, then based in above-mentioned read I O request LUN identification, data start and Data length reads above-mentioned data to be read from the corresponding LUN of LUN identification.
It should be pointed out that a read I O request may be split as the combination of multiple LUN identifications and data start, To search local cache table.
The prior art specifically is can refer to, details are not described herein by the application.
On the other hand, if the LUN identification in above-mentioned read I O request is not to be under the jurisdiction of local LUN identification, above-mentioned Above-mentioned read I O request can be forwarded to above-mentioned second controller by one controller.
Above-mentioned second controller receives the above-mentioned read I O request of above-mentioned first controller forwarding, can determine above-mentioned the There are return to confirmation message after data to be read in the spatial cache of one controller.
In a kind of embodiment shown, above-mentioned second controller receives the above-mentioned reading of above-mentioned first controller forwarding I/O Request can be determined in local spatial cache first with the presence or absence of the target for the data to be read for preserving above-mentioned read I O request Cache blocks.
Specifically, above-mentioned second controller can be based on the LUN identification in above-mentioned read I O request, data start sum number Local cache table is searched according to length, it is determined whether there are corresponding local cache list items.And there are corresponding local cache tables Xiang Shi, determines whether the corresponding cache blocks of the offset address in local cache list item are written data, if written data (exists Dirty data identifies or valid data mark), then the cache blocks are target cache block.
If there is above-mentioned target cache block, then above-mentioned second controller may further determine that above-mentioned target cache block Whether mirror cache block preserves above-mentioned data to be read.
Since to cache data in the block consistent for above-mentioned target cache block and above-mentioned image, as a kind of embodiment, above-mentioned the Two controllers can check the spatial cache of above-mentioned first controller based on the offset address of above-mentioned target cache block, determine above-mentioned Whether mirror cache block adds dirty data mark or valid data mark.When above-mentioned image cache blocks add effective Data Identification or Dirty data identifies, and illustrates the saved above-mentioned data to be read of above-mentioned image cache blocks.
In this case, above-mentioned second controller can send confirmation message to above-mentioned first controller.Wherein, above-mentioned Confirmation message carries the offset address of above-mentioned data to be read.
When above-mentioned image cache blocks do not preserve above-mentioned data to be read, it is slow that above-mentioned second controller can be based on above-mentioned target Above-mentioned target cache data to be read in the block are written above-mentioned image cache blocks, and are completed in write-in by the offset address of counterfoil Afterwards, above-mentioned confirmation message is sent to above-mentioned first controller.
Certainly, above-mentioned second controller can be above-mentioned after by above-mentioned data write-in above-mentioned image cache blocks to be read Mirror cache block adds effective Data Identification.
If there is no above-mentioned target cache block, then above-mentioned second controller can be marked from the LUN in above-mentioned read I O request In the target cache block known and read above-mentioned data to be read in corresponding LUN, and above-mentioned data write-in to be read is chosen.
Wherein, as a kind of embodiment, above-mentioned second controller can select to correspond to by local cache blocks allocation table In LUN identification and be not added with dirty data mark cache blocks as target cache block.Certainly, if corresponding to the caching of LUN identification Block has all added dirty data mark, and above-mentioned second controller can distribute new cache blocks to the LUN identification again.
Further, above-mentioned second controller also needs, according to the offset address for the target cache block chosen, to continue above-mentioned Access states the first controller and sends above-mentioned confirmation message then up according to being written in the mirror cache block of above-mentioned target cache block.
Certainly, above-mentioned second controller can be above-mentioned after above-mentioned target cache block is written in above-mentioned data to be read Target cache block adds effective Data Identification;Above-mentioned image cache blocks are being written in above-mentioned data to be read by above-mentioned second controller Afterwards, can be that above-mentioned image cache blocks add effective Data Identification.
In a kind of embodiment shown, above-mentioned second controller is sending above-mentioned confirmation letter to above-mentioned first controller Before breath, above-mentioned target cache block can be first locked, in order to avoid when carrying out other operations for above-mentioned target cache block in change State the data being had been written into target cache block.
In the application implementation, the above-mentioned reading IO that above-mentioned second controller can be forwarded based on above-mentioned first controller is asked It asks, if reading what data and being written were chosen from the corresponding LUN of LUN identification in above-mentioned read I O request based on the preset strategy that pre-reads In dry cache blocks, and above-mentioned several caching data in the block are written in the mirror cache block of above-mentioned several cache blocks.
It is illustrated by taking Fig. 5 as an example, controller 1 receives the read I O request in the unoptimizable path of the forwarding of controller 2, above-mentioned Read read I O request is one section of continuous data being under the jurisdiction of in the LUN-1 of controller 1, for example, 3 read I O requests are continuous Read the data in data initial address 1, data initial address 2 and data initial address 3.Then controller 1 can will be in LUN-1 In data pre-head to local several cache blocks in data initial address 4, data initial address 5, then above-mentioned data are written The mirror cache block of above-mentioned several cache blocks.
By the measure, above-mentioned second controller after the read I O request of subsequently received above-mentioned first controller forwarding, Can quickly confirmation message be sent to above-mentioned first controller.Reduce in the spatial cache for working as above-mentioned first controller not yet When data to be read are written, the time delay of data to be read is written to above-mentioned first controller for above-mentioned second controller, to be promoted The response speed of dual control storage system.
Certainly, data are being written to the mirror cache block of above-mentioned several cache blocks and above-mentioned several cache blocks in second controller Afterwards, can be that above-mentioned cache blocks add effective Data Identification.
Step 703:First controller is based on the offset address, is obtained from spatial cache and sends described continue Access evidence.
Above-mentioned first controller receives the confirmation message that above-mentioned second controller returns, and can be based on above-mentioned confirmation message In offset address, the data to be read of above-mentioned read I O request are obtained from local spatial cache, then will be above-mentioned to be read Data are sent to front end, to complete the process of single treatment I/O Request.
In addition, after above-mentioned data to be read are sent to front end by above-mentioned first controller, it can be to above-mentioned second controller It sends to read and completes information, to release the locking to above-mentioned target cache block by above-mentioned second controller.The measure is that mutual exclusion is former A kind of embodiment then is avoided when the multiple I/O Requests of dual control storage device processes, and two controllers are simultaneously to mirror image each other Cache blocks operated, cause handle I/O Request failure.
In conclusion in technical scheme, dual control storage device includes the first controller and second controller, respectively The corresponding spatial cache of controller is divided into multiple cache blocks respectively, and each cache blocks are there are corresponding offset address, and above-mentioned Two in the spatial cache of the one controller and above-mentioned second controller cache blocks with same offset address mirror image each other;
First controller receives the write IO request for being sent to second controller, and above-mentioned write IO request can be sent to Two controllers;Second controller determines backward first controller of target cache block with returning to the offset of above-mentioned target cache block Location;Based on above-mentioned offset address above-mentioned target cache can be written in data to be written in above-mentioned write IO request by the first controller The mirror cache block of block and above-mentioned target cache block;
First controller receives the read I O request for being sent to second controller, and above-mentioned read I O request can be sent to Two controllers;Second controller determines that there are return to confirmation letter after data to be read in the spatial cache of above-mentioned first controller Breath;Wherein, the offset address of above-mentioned data to be read is carried in above-mentioned confirmation message;First controller can be based on above-mentioned offset Address obtains concurrently to serve and states data to be read from local spatial cache;
Due to there is the mirror image each other with same offset address in the spatial cache of the first controller and second controller Cache blocks, the first controller and second controller be not necessarily to manage the mirror of cache blocks, without creating any cache blocks Mirror cache block, reduce performance cost;
Data to be written are written in the offset address that first controller can be returned based on second controller in spatial cache, The latter, the offset address returned based on second controller read data to be read from spatial cache;
In addition, dual control storage device in the application cancels forwarding module, avoid forwarding module scheduling overhead and itself Bandwidth becomes the performance bottleneck of whole system.
Corresponding with the embodiment of the method for aforementioned processing I/O Request, present invention also provides the devices of processing I/O Request Embodiment.
It is a kind of embodiment block diagram of the device of processing I/O Request shown in the application referring to Fig. 8:
As shown in figure 8, the device 80 of the processing I/O Request, including:
First receiving unit 810, for receiving write IO request, determine the LUN identification in the write IO request whether be It is under the jurisdiction of local LUN identification.
First retransmission unit 820, if not being to be under the jurisdiction of local LUN marks for the LUN identification in the write IO request Know, the write IO request is forwarded to the second controller, to be determined target cache block by the second controller and be returned The offset address of the target cache block.
Writing unit 830, for being based on the offset address, described in the data to be written write-in in the write IO request The mirror cache block of target cache block.
First transmission unit 840 for the target cache block to be written in the data to be written, and sends and writes IO successes Information.
In this example, described device further includes:
First determination unit, 850 (not shown), if being to be under the jurisdiction of this for the LUN identification in the write IO request The LUN identification on ground determines target cache block.
Said write unit 830 is further used for delaying the data to be written write-in target in the write IO request Counterfoil;
Based on the offset address of the target cache block, the data to be written are written to the mirror image of the target cache block Cache blocks.
In this example, described device further includes:
First adding device, 860 (not shown), after the target cache block is written in the data to be written, Dirty data mark is added for the target cache block;The data to be written are written to the mirror cache block of the target cache block Afterwards, it is that the mirror cache block adds dirty data mark.
In this example, described device further includes:
First mutual exclusion unit, 870 (not shown), for the caching based on mutual exclusion principle to any a pair of mirror image each other Block is operated;Wherein, the mutual exclusion principle is that first controller and the second controller cannot be simultaneously to mirrors each other The cache blocks of picture are operated.
The embodiment that the application handles the device of I/O Request can be applied in dual control storage device.Device embodiment can be with By software realization, can also be realized by way of hardware or software and hardware combining.For implemented in software, patrolled as one Device in volume meaning is by the processor of dual control storage device where it by corresponding computer in nonvolatile memory Program instruction reads what operation in memory was formed.For hardware view, as shown in figure 9, handling I/O Request for the application A kind of hardware structure diagram of dual control storage device where device, in addition to processor shown in Fig. 9, memory, network interface, Yi Jifei Except volatile memory, the reality of dual control storage device in embodiment where device generally according to the device of the processing I/O Request Border function can also include other hardware, be repeated no more to this.
The function of each unit and the realization process of effect specifically refer to and correspond to step in the above method in above-mentioned apparatus Realization process, details are not described herein.
It is the embodiment block diagram of the device of another processing I/O Request shown in the application referring to Figure 10:
As shown in Figure 10, the device 100 of the processing I/O Request, including:
Second receiving unit 110, for receiving read I O request, determine the LUN identification in the read I O request whether be It is under the jurisdiction of local LUN identification.
Second retransmission unit 120, if not being to be under the jurisdiction of local LUN marks for the LUN identification in the read I O request Know, the read I O request is forwarded to the second controller, to determine first controller by the second controller Spatial cache in there are return to confirmation message after data to be read;Wherein, the confirmation message carries the data to be read Offset address.
Second transmission unit 130 is obtained from spatial cache and is sent described to be read for being based on the offset address Data.
In this example, described device further includes:
Second determination unit, 140 (not shown), the read I O request for receiving the second controller forwarding, really With the presence or absence of the target cache block for the data to be read for preserving the read I O request in fixed local spatial cache;
If there is the target cache block, first controller determines that the mirror cache block of the target cache block is It is no to preserve the data to be read;
150 (not shown) of returning unit, if the data to be read are preserved for the mirror cache block, to institute It states second controller and returns to the confirmation message.
In this example, described device further includes:
160 (not shown) of reading unit is used for if there is no the target cache block, from the read I O request The corresponding LUN of LUN identification in read the data to be read and be written in the target cache block chosen.
150 (not shown) of the returning unit is further used for delaying the data write-in to be read target The mirror cache block of counterfoil, and return to the confirmation message to the second controller.
In this example, described device further includes:
150 (not shown) of the returning unit, if being further used for the mirror cache block of the target cache block The data to be read are not preserved, the mirror cache block are written into the data to be read, and return to the second controller Return the confirmation message.
In this example, described device further includes:
160 (not shown) of the reading unit is further used for, according to the read I O request, pre-reading based on preset Strategy reads data from the LUN and is written in several cache blocks chosen, and several caching data in the block are written In the mirror cache block of several cache blocks.
In this example, described device further includes:
Second adding device, 170 (not shown), is further used for after writing data into cache blocks, is the cache blocks Add effective Data Identification;Wherein, the cache blocks include that the target cache block, several cache blocks and the mirror image are slow Counterfoil.
In this example, described device further includes:
Second mutual exclusion unit, 180 (not shown), for the caching based on mutual exclusion principle to any a pair of mirror image each other Block is operated;Wherein, the mutual exclusion principle is that first controller and the second controller cannot be simultaneously to mirrors each other The cache blocks of picture are operated.
The embodiment that the application handles the device of I/O Request can be applied in dual control storage device.Device embodiment can be with By software realization, can also be realized by way of hardware or software and hardware combining.For implemented in software, patrolled as one Device in volume meaning is by the processor of dual control storage device where it by corresponding computer in nonvolatile memory Program instruction reads what operation in memory was formed.For hardware view, as shown in figure 11, I/O Request is handled for the application A kind of hardware structure diagram of dual control storage device where device, in addition to processor, memory, network interface shown in Figure 11 and Except nonvolatile memory, the device of dual control storage device in embodiment where device generally according to the processing I/O Request Actual functional capability can also include other hardware, be repeated no more to this.
The function of each unit and the realization process of effect specifically refer to and correspond to step in the above method in above-mentioned apparatus Realization process, details are not described herein.
For device embodiments, since it corresponds essentially to embodiment of the method, so related place is referring to method reality Apply the part explanation of example.The apparatus embodiments described above are merely exemplary, wherein described be used as separating component The unit of explanation may or may not be physically separated, and the component shown as unit can be or can also It is not physical unit, you can be located at a place, or may be distributed over multiple network units.It can be according to actual It needs that some or all of module therein is selected to realize the purpose of application scheme.Those of ordinary skill in the art are not paying In the case of going out creative work, you can to understand and implement.
The foregoing is merely the preferred embodiments of the application, not limiting the application, all essences in the application With within principle, any modification, equivalent substitution, improvement and etc. done should be included within the scope of the application protection god.

Claims (13)

1. a kind of method of processing I/O Request, is applied to dual control storage device, the dual control storage device includes the first controller And second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, there are corresponding for each cache blocks Two in the spatial cache of offset address, first controller and the second controller are slow with same offset address Counterfoil mirror image each other, which is characterized in that including:
First controller receives write IO request, determines whether the LUN identification in the write IO request is to be under the jurisdiction of local LUN identification;
If the LUN identification in the write IO request is not to be under the jurisdiction of local LUN identification, first controller is write described I/O Request is forwarded to the second controller, to determine target cache block by the second controller and return to the target cache The offset address of block;
First controller is based on the offset address, and the target, which is written, in the data to be written in the write IO request delays The mirror cache block of counterfoil;
The target cache block is written in the data to be written by first controller, and is sent and write IO successful informations.
2. according to the method described in claim 1, it is characterized in that, the method further includes:
If the LUN identification in the write IO request is to be under the jurisdiction of local LUN identification, first controller determines that target is slow Counterfoil;
The target cache block is written in data to be written in the write IO request by first controller;
Based on the offset address of the target cache block, the data to be written are written to the mirror cache of the target cache block Block.
3. method according to claim 1 or 2, which is characterized in that the method further includes:
After the target cache block is written in the data to be written by the first controller, dirty data is added for the target cache block Mark;
It is the mirror cache after the mirror cache block of the target cache block is written in the data to be written by the first controller Block adds dirty data mark.
4. according to the method described in claim 1, it is characterized in that, the method further includes:
First controller operates the cache blocks of any a pair of mirror image each other based on mutual exclusion principle;Wherein, described mutual Reprimand principle, which is first controller and the second controller, simultaneously to be operated the cache blocks of mirror image each other.
5. a kind of method of processing I/O Request, is applied to dual control storage device, the dual control storage device includes the first controller And second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, there are corresponding for each cache blocks Two in the spatial cache of offset address, first controller and the second controller are slow with same offset address Counterfoil mirror image each other, which is characterized in that including:
First controller receives read I O request, determines whether the LUN identification in the read I O request is to be under the jurisdiction of local LUN identification;
If the LUN identification in the read I O request is not to be under the jurisdiction of local LUN identification, first controller is by the reading I/O Request is forwarded to the second controller, with by the second controller in the spatial cache for determining first controller There are return to confirmation message after data to be read;Wherein, the confirmation message carries the offset address of the data to be read;
First controller is based on the offset address, is obtained from spatial cache and sends the data to be read.
6. according to the method described in claim 5, it is characterized in that, the method further includes:
First controller receives the read I O request of second controller forwarding, determine in local spatial cache whether In the presence of the target cache block for the data to be read for preserving the read I O request;
If there is the target cache block, first controller determines whether the mirror cache block of the target cache block is protected Deposit the data to be read;
If the mirror cache block preserves the data to be read, first controller returns to institute to the second controller State confirmation message.
7. according to the method described in claim 6, it is characterized in that, the method further includes:
If there is no the target cache block, first controller is from the corresponding LUN of LUN identification in the read I O request It is middle to read the data to be read and be written in the target cache block chosen;
The data to be read are written the mirror cache block of the target cache block by first controller, and to described second Controller returns to the confirmation message.
8. according to the method described in claim 6, it is characterized in that, the method further includes:
If the mirror cache block of the target cache block does not preserve the data to be read, the first controller will be described to be read The mirror cache block is written in data, and returns to the confirmation message to the second controller.
9. according to the method described in claim 6, it is characterized in that, the method further includes:
First controller is read data from the LUN and is written according to the read I O request based on the preset strategy that pre-reads In several cache blocks chosen, and several cachings data in the block are written to the mirror cache blocks of several cache blocks In.
10. according to the method described in claim 9, it is characterized in that, the method further includes:
After writing data into cache blocks, effective Data Identification is added for the cache blocks;Wherein, the cache blocks include the mesh Mark cache blocks, several cache blocks and the mirror cache block.
11. according to the method described in claim 5, it is characterized in that, the method further includes:
First controller operates the cache blocks of any a pair of mirror image each other based on mutual exclusion principle;Wherein, described mutual Reprimand principle, which is first controller and the second controller, simultaneously to be operated the cache blocks of mirror image each other.
12. a kind of device of processing I/O Request, is applied to dual control storage device, the dual control storage device includes the first controller And second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, there are corresponding for each cache blocks Two in the spatial cache of offset address, first controller and the second controller are slow with same offset address Counterfoil mirror image each other, which is characterized in that including:
First receiving unit determines whether the LUN identification in the write IO request is to be under the jurisdiction of this for receiving write IO request The LUN identification on ground;
First retransmission unit, if not being to be under the jurisdiction of local LUN identification for the LUN identification in the write IO request, by institute It states write IO request and is forwarded to the second controller, to determine target cache block by the second controller and return to the target The offset address of cache blocks;
Data to be written in the write IO request are written the target and delayed by writing unit for being based on the offset address The mirror cache block of counterfoil;
First transmission unit for the target cache block to be written in the data to be written, and sends and writes IO successful informations.
13. a kind of device of processing I/O Request, is applied to dual control storage device, the dual control storage device includes the first controller And second controller, the corresponding spatial cache of each controller are divided into multiple cache blocks respectively, there are corresponding for each cache blocks Two in the spatial cache of offset address, first controller and the second controller are slow with same offset address Counterfoil mirror image each other, which is characterized in that including:
Second receiving unit determines whether the LUN identification in the read I O request is to be under the jurisdiction of this for receiving read I O request The LUN identification on ground;
Second retransmission unit, if not being to be under the jurisdiction of local LUN identification for the LUN identification in the read I O request, by institute It states read I O request and is forwarded to the second controller, with empty in the caching for determining first controller by the second controller Between in there are return to confirmation message after data to be read;Wherein, the confirmation message is with carrying the offset of the data to be read Location;
Second transmission unit obtains from spatial cache for being based on the offset address and sends the data to be read.
CN201810043586.8A 2018-01-17 2018-01-17 Method and device for processing IO (input/output) request Active CN108319430B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810043586.8A CN108319430B (en) 2018-01-17 2018-01-17 Method and device for processing IO (input/output) request

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810043586.8A CN108319430B (en) 2018-01-17 2018-01-17 Method and device for processing IO (input/output) request

Publications (2)

Publication Number Publication Date
CN108319430A true CN108319430A (en) 2018-07-24
CN108319430B CN108319430B (en) 2021-03-23

Family

ID=62894334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810043586.8A Active CN108319430B (en) 2018-01-17 2018-01-17 Method and device for processing IO (input/output) request

Country Status (1)

Country Link
CN (1) CN108319430B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377536A (en) * 2019-07-12 2019-10-25 深信服科技股份有限公司 Data processing method, device, equipment and computer readable storage medium
CN110928495A (en) * 2019-11-12 2020-03-27 杭州宏杉科技股份有限公司 Data processing method and device on multi-control storage system
CN111694770A (en) * 2019-03-15 2020-09-22 杭州宏杉科技股份有限公司 Method and device for processing IO (input/output) request
CN112181295A (en) * 2020-09-22 2021-01-05 杭州宏杉科技股份有限公司 Data access method and device, storage equipment and machine-readable storage medium
CN112559388A (en) * 2020-12-14 2021-03-26 杭州宏杉科技股份有限公司 Data caching method and device
CN113849129A (en) * 2021-09-18 2021-12-28 苏州浪潮智能科技有限公司 IO (input/output) request forwarding method, device and equipment between storage controllers

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169750A (en) * 2007-12-10 2008-04-30 杭州华三通信技术有限公司 Memory mirror image system, device and memory mirror image method
CN101471955A (en) * 2007-12-28 2009-07-01 英业达股份有限公司 Method for writing equipment data in dual-controller network storage circumstance
CN101477505A (en) * 2008-12-23 2009-07-08 北京中星微电子有限公司 Data transmission method between master and slave equipments through bus
CN101840309A (en) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Access control method and system of double control disk array in multipath environment
CN103827843A (en) * 2013-11-28 2014-05-28 华为技术有限公司 Method, device, and system for writing data
CN104049918A (en) * 2014-07-03 2014-09-17 浪潮集团有限公司 Cache management method of double-control storage server
US20170192860A1 (en) * 2015-12-30 2017-07-06 Commvault Systems, Inc. Deduplication replication in a distributed deduplication data storage system
JP2018010557A (en) * 2016-07-15 2018-01-18 富士通株式会社 Storage system and management device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169750A (en) * 2007-12-10 2008-04-30 杭州华三通信技术有限公司 Memory mirror image system, device and memory mirror image method
CN101471955A (en) * 2007-12-28 2009-07-01 英业达股份有限公司 Method for writing equipment data in dual-controller network storage circumstance
CN101477505A (en) * 2008-12-23 2009-07-08 北京中星微电子有限公司 Data transmission method between master and slave equipments through bus
CN101840309A (en) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Access control method and system of double control disk array in multipath environment
CN103827843A (en) * 2013-11-28 2014-05-28 华为技术有限公司 Method, device, and system for writing data
CN104049918A (en) * 2014-07-03 2014-09-17 浪潮集团有限公司 Cache management method of double-control storage server
US20170192860A1 (en) * 2015-12-30 2017-07-06 Commvault Systems, Inc. Deduplication replication in a distributed deduplication data storage system
JP2018010557A (en) * 2016-07-15 2018-01-18 富士通株式会社 Storage system and management device

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694770A (en) * 2019-03-15 2020-09-22 杭州宏杉科技股份有限公司 Method and device for processing IO (input/output) request
CN110377536A (en) * 2019-07-12 2019-10-25 深信服科技股份有限公司 Data processing method, device, equipment and computer readable storage medium
CN110377536B (en) * 2019-07-12 2023-05-12 深信服科技股份有限公司 Data processing method, device, equipment and computer readable storage medium
CN110928495A (en) * 2019-11-12 2020-03-27 杭州宏杉科技股份有限公司 Data processing method and device on multi-control storage system
CN110928495B (en) * 2019-11-12 2023-09-22 杭州宏杉科技股份有限公司 Data processing method and device on multi-control storage system
CN112181295A (en) * 2020-09-22 2021-01-05 杭州宏杉科技股份有限公司 Data access method and device, storage equipment and machine-readable storage medium
CN112181295B (en) * 2020-09-22 2022-02-18 杭州宏杉科技股份有限公司 Data access method and device, storage equipment and machine-readable storage medium
CN112559388A (en) * 2020-12-14 2021-03-26 杭州宏杉科技股份有限公司 Data caching method and device
CN112559388B (en) * 2020-12-14 2022-07-12 杭州宏杉科技股份有限公司 Data caching method and device
CN113849129A (en) * 2021-09-18 2021-12-28 苏州浪潮智能科技有限公司 IO (input/output) request forwarding method, device and equipment between storage controllers
CN113849129B (en) * 2021-09-18 2023-08-25 苏州浪潮智能科技有限公司 IO request forwarding method, device and equipment among storage controllers

Also Published As

Publication number Publication date
CN108319430B (en) 2021-03-23

Similar Documents

Publication Publication Date Title
CN108319430A (en) Handle the method and device of I/O Request
CN104915151B (en) A kind of memory excess distribution method that active is shared in multi-dummy machine system
US8805902B2 (en) Managing snapshot storage pools
US7039767B2 (en) Method and system for coherently caching I/O devices across a network
CN106569742B (en) Memory management method and storage equipment
CN103154909B (en) Distributed cache consistency protocol
CN106133676B (en) Storage system
US9507720B2 (en) Block storage-based data processing methods, apparatus, and systems
US8656119B2 (en) Storage system, control program and storage system control method
WO2013175529A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
CN103761190B (en) Data processing method and apparatus
CN104536702B (en) A kind of memory array system and data write request processing method
CN105095094A (en) Memory management method and equipment
CN108153683A (en) For transmitting the device and method of data between address range in memory
US9021214B2 (en) Storage system and method for controlling memory in storage system
WO2019092499A1 (en) Tiering data strategy for a distributed storage system
EP3710944A1 (en) File operations in a distributed storage system
CN103064797A (en) Data processing method and virtual machine management platform
US11693738B2 (en) Storage system spanning multiple failure domains
CN108762668A (en) A kind of method and device of processing write-in conflict
US20080127198A1 (en) Fine granularity exchange level load balancing in a multiprocessor storage area network
US20070073972A1 (en) Instant copy of data in a cache memory via an atomic command
US20110238915A1 (en) Storage system
CN107038092A (en) A kind of data copy method and device
CN114327270A (en) Request processing method, device, equipment and readable storage medium

Legal Events

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