CN103838525A - Storage system - Google Patents

Storage system Download PDF

Info

Publication number
CN103838525A
CN103838525A CN201410126486.3A CN201410126486A CN103838525A CN 103838525 A CN103838525 A CN 103838525A CN 201410126486 A CN201410126486 A CN 201410126486A CN 103838525 A CN103838525 A CN 103838525A
Authority
CN
China
Prior art keywords
true
page
virtual
pond
length
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
CN201410126486.3A
Other languages
Chinese (zh)
Other versions
CN103838525B (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to CN201410126486.3A priority Critical patent/CN103838525B/en
Priority claimed from CN200980144865.2A external-priority patent/CN102209953B/en
Publication of CN103838525A publication Critical patent/CN103838525A/en
Application granted granted Critical
Publication of CN103838525B publication Critical patent/CN103838525B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention discloses a storage system. A pool is formed based on a plurality of storage devices. The pool is composed of a plurality of true pages comprising true page bodies with different lengths. Among a plurality of virtual pages forming a virtual volume, a controller compresses write data elements to write destination virtual pages, the true pages with the lengths of the true page bodies are selected based on the data length of a data unit comprising compressed write data elements, and the selected true pages are allocated to the destination virtual pages.

Description

Storage system
The application be propose on January 30th, 2009, application number is 200980144865.2, name is called the patent application of " storage system and the storage controlling method of compression and storing data-elements " divisional application.
Technical field
The present invention generally relates to the storage control of compression and storing data-elements.
Background technology
For example, the storage system that discloses in patent citation 1 is known is compression and the storage system of storing data-elements.
Patent citation 1: Japan postpones the open 2006-259962 of publication.
Summary of the invention
Technical matters
Storage system generally includes controller and one group of memory device.Data element is compressed by controller, and compression data element be stored in storage space, storage space is based on one group of memory device.
Conventionally, if compression method difference, the length after data element is compressed is different, even or compression method identical, according to the content of data element before compression, the length after data element is compressed is also different.Therefore, offer the management information amount of storing in the storer of controller and can become large.Reason is in this management information, for example, need to comprise the position of the empty storage area in designated memory space and the information element of length, and the number of these information elements to increase in the time that the number of empty storage area becomes large.In addition, in this management information, for example, need to comprise the memory location of compressed data element and the information element of length of appointment, and in the time that the number of compressed data element becomes large, the number of these information elements also increases.
As a method that reduces the possibility that management information quantitative change is large, consider a kind of method, storage space is divided into the storage area (hereinafter referred to fixed size region) of regular length, and storage is compressed in a data element in a fixed size region; In other words, carry out management taking these fixed size regions as unit.
But, according to the method, if the length in fixed size region is long, in a fixed size region, may have long dummy section (i.e. region except the region being occupied by the data element compressing), and result volumetric efficiency is by variation.On the other hand, if the length in fixed size region is short, although a fixed size region memory the length of dummy section shorten, it is large that the number in the fixed size region that must be managed becomes.Thus, if there is restriction for management information amount, if the length in fixed size region is short, the total length in one group of fixed size region that can be managed is short, and result is that can be stored in data length (being the total length of compressed data element) in storage space also short.In other words, capacity extensibility may worsen.
Thereby, the object of this invention is to provide the high power capacity efficiency in the storage system of wherein having compressed data element, guarantee that capacity extensibility does not decline simultaneously.
Technical scheme
Multiple memory devices based on being included in storage system provide pond.This pond is made up of multiple true pages (physical storage areas).The true page of different length is included in the plurality of true page.
Controller comprises: compression unit, pond management department and I/O handling part.
Data element is write in the destination virtual page compression of writing in multiple virtual pages (virtual storage region) that compression unit comprises virtual volume.
The true page of (condition A) described below and (condition B) is selected to meet by pond management department, and writes destination virtual page described in selected true page is distributed to:
(condition A): the true page length degree of described true page is the length based on having the data cell of writing data element after compression;
(condition B): described true page is not assigned to any virtual page.
I/O handling part is stored described data cell in the true page of having selected.
The write data element self of data cell after by described compression forms, or is made up of the data element of writing after customizing messages and described compression.This customizing messages can be for example data integrity code (for example ECC(error-correcting code)).
Here, " data element " (for example, writing data element) is the element for a virtual page, and can have for example identical with virtual page length length.By making data element compressed, become the data element shorter than virtual page length (sometimes due to content of data element etc., not can this thing happens).
At least one in compression unit, pond management department and I/O handling part can for example, be made up of hardware, computer program or its combination (, part can be implemented and remainder can be by hardware implementation by computer program).
Brief description of the drawings
Fig. 1 is according to the structural drawing of the computer system of first embodiment of the invention;
Fig. 2 is the figure that the structure of office terminal 102 is shown;
Fig. 3 is the structural drawing of various tables;
Fig. 4 shows the example of the pond management screen 401 in first embodiment of the invention;
Fig. 5 is the example that virtual LU management screen 501;
Fig. 6 is the process flow diagram of writing processing;
Fig. 7 is that the true page in first embodiment of the invention is read the process flow diagram of processing;
Fig. 8 is the process flow diagram that the true page in first embodiment of the invention is write processing;
Fig. 9 is that the true page of default length is selected the process flow diagram of processing;
Figure 10 is that true page is selected the process flow diagram of processing;
Figure 11 is the process flow diagram that reads processing in first embodiment of the invention;
Figure 12 shows program and the table in the nonvolatile memory 130 of second embodiment of the invention, preserved;
Figure 13 is the table 1300,1310 in second embodiment of the invention, 1320 and 1330 structural drawing;
Figure 14 shows the example of the pond management screen 1401 in second embodiment of the invention;
Figure 15 shows the example of true page length degree management screen 1501;
Figure 16 is that in second embodiment of the invention, the true page of default length is selected the process flow diagram of processing;
Figure 17 is that the true page in second embodiment of the invention is selected the process flow diagram of processing;
Figure 18 is the process flow diagram of bulk gibberish (chunk garbage) collection and treatment;
Figure 19 is the structural drawing of the virtual page table 1900 in third embodiment of the invention;
Figure 20 is that the true page in third embodiment of the invention is selected the process flow diagram of processing;
Figure 21 is the structural drawing of the virtual page table 2137 in fourth embodiment of the invention;
Figure 22 is that the true page in fourth embodiment of the invention is read the process flow diagram of processing;
Figure 23 is the process flow diagram that interim true page is write processing;
Figure 24 is the process flow diagram that reading in fourth embodiment of the invention processed;
Figure 25 is the process flow diagram of asynchronous compression processing;
Figure 26 is the summary that first embodiment of the invention;
Figure 27 shows the summary of embodiment, wherein in the present invention first to the combination of the 3rd embodiment, virtual LU is secondary LU;
Figure 28 A is the structural drawing of the virtual page table 2137 in the modification of fourth embodiment of the invention;
Figure 28 B shows the access frequency supervisory routine being stored in the modification of fourth embodiment of the invention in nonvolatile memory 130;
Figure 28 C shows the position that changes asynchronous compression processing in the modification of fourth embodiment of the invention;
Figure 29 A shows as the duplicate data units between region, pond of carrying out in the second modified example of second embodiment of the invention;
Figure 29 B shows the state of true page as copy source in the second modified example of second embodiment of the invention and is updated to " not using " from " using "; And
Figure 29 C shows as the state in the region, pond of copy source and is updated to " not using " from " using ".
Description of reference numerals
110: storage system
Embodiment
With reference to brief description of the drawings several embodiments of the present invention.Be to be understood that when the element when same type is not distinguished especially hereinafter, only use identical numeral substantially, still, in the time will distinguishing the element of same type, will use the combination of basic numeral and subsidiary Reference numeral.
Invention mode 1
Figure 26 shows the summary of first embodiment of the invention.
Storage system 110 comprises controller 120 and pond 2601.
Pond 2601 is by for example three ponds region 2603A to 2603C of multiple pond region 2603() form.Region, each pond 2603 comprises multiple true pages 2607.The length (being true page length degree) of these true pages 2607 defines for region, each pond 2603.For example, the length of the true page 2607B in the 2603B of region, pond can be longer than the length of the true page 2607A in pool area 2603A, and the length of true page 2607C in the 2603C of region, the pond length that can be longer than true page 2607B.All true pages in region, a pond 2603 are equal length.Pond 2601 is based on multiple HDD(hard drive) amount of physical memory, and therefore, each true page 2607 is physical storage areas.
Controller 120 is by virtual LU(logical block) 2605 offer main frame.Each virtual LU2605 is made up of multiple virtual pages 2609.Virtual LU2605 is virtual logical volume (not the volume based on HDD).Therefore, each virtual page 2609 is virtual storage regions.All virtual pages 2609 in a virtual LU2605 are equal length.The maximum length of true page 2607 can be for example identical with the length of virtual page 2609.
Below, by the summary of the processing of carrying out in explanation the first embodiment.
In the time receiving write request from main frame, controller 120 is carried out following processing for each data element (convenient for explanation, to be abbreviated as in the drawings " WDE ") (changing kind of a mode, for the each virtual page that belongs to the scope of writing of being specified by this write request) of writing., data element is write in controller 120 compressions.Next, controller 120 is selected true page 2607, the length of this true page 2607 is write data element (for explanation conveniently based on this compression, be abbreviated as in the drawings " CWDE ") length of the data cell that comprises, and be not assigned to any virtual page 2609 true page 2607(in other words, untapped true page).In more concrete mode, for example, controller 120 selects length to meet two conditions (a) and true page 2607 (b) below:
(a) be more than or equal to the length of data cell;
(b) with the difference minimum of the length of this data cell.
According to the example in Figure 26, because the length of data cell is identical with the length of true page 2607B, correspondingly select true page 2607B.And controller 120 is stored in this data cell in selecteed true page 2607B.Data cell can be compression write data element itself, or can for example, by thering is additional data integrity code (ECC(error-correcting code)) the data element of writing of compression form.By data integrity code being appended to the data element of writing of compression, can prevent the error in data of writing data element of compression.
To describe the first embodiment of the present invention in detail below.It is convenient for explanation below to should be appreciated that, tentation data unit is the data element of compression itself.
Fig. 1 is according to the structural drawing of the computer system of first embodiment of the invention.
It is for example SAN(storage area network that multiple main frames 101 and storage system 110 are connected to the first communication network 103, the first communication networks 103).In addition, office terminal 102 and storage system 110 are connected to second communication network, and second communication network is for example that supervising the network 104(can be for example LAN(LAN (Local Area Network))).
Main frame 101 is the computing machines that send I/O request (write request or read request) to storage system 110.Office terminal 102 is the terminals for management storage systems 110.
Storage system 110 comprises controller 120 and one group of memory device 114.Set of memory device 114 comprises multiple HDD111.Should be appreciated that and substitute HDD111, also can utilize the physical storage device of other type, such as flash memory device etc.
Controller 120 receives the I/O request of sending from main frame 100, and accesses one or more HDD111 in the time processing this I/O request.This controller 120 comprises multiple main frame IF121, managing I F122, CPU123, primary memory (MAIN) 124, cache memory (CM) 125, compression and expanded circuit (C/E circuit) 126, nonvolatile memory 130 and HDD IF127.
Main frame IF121 is the interface circuit for such as, communicating by letter with external unit (main frame 101 etc.).
Managing I F122 is for via supervising the network 104 and for example interface circuit of the external device communication of office terminal 102.
HDD IF127 is the interface circuit for communicating by letter with HDD111.
Cache memory 125 can be for example volatile memory.The data that write according to the write request receiving from main frame 101 and the data that read according to the request receiving from main frame 101 are temporarily stored in this storer 125.
Compression and expanded circuit 126 are hardware circuits, and compress or expand the data element being transfused to, and then export this data element.Replace and being carried out by hardware circuit, at least one in this compression and expansion also can be carried out by the CPU123 of computer program.
Management terminal communications program 131, pond supervisory routine 132, I/O handling procedure 133, true LU table 134, pond table 135, true page table 136, virtual page table 137 and virtual LU table 138 are stored in nonvolatile memory 130.These computer programs that are stored in nonvolatile memory 130 are written into primary memory 124, are then carried out by CPU123.Management terminal communications program 131 be for office terminal 102(more specifically, with the storing communication program 149 that will describe below) program of communicating by letter.Pond supervisory routine 132 is the programs for carrying out the processing for example, to pond management (selection of true page etc.) relevant.I/O handling procedure 133 is for carrying out with I/O(for example to true page stores compressed data etc.) program of relevant processing.These various programs and table will be discussed in more detail below.In the following description, being described as the processing carried out by computer program is in fact carried out by the CPU that carries out these computer programs.
Fig. 2 is the figure that the structure of office terminal 102 is shown.
This office terminal 102 is computing machines and for example comprises input equipment 142, output device 143, CPU144, primary memory 145, managing I F146 and HDD147.Each internal bus 150 that is connected to.
This input equipment 142 is pointing device (for example mouse) and/or keyboard.Output device 143 is for example display devices.
User interface control program (hereinafter referred to " UI control program ") 148 and storing communication program 149 are stored in (memory device of some other types also can be used) in HDD147.These computer programs are written into primary memory 145, once and be written into, carried out by CPU144.Managing I F146 is the interface circuit for such as, communicating by letter with external unit (storage system 110 etc.) via supervising the network 104.UI control program 148 is for show GUI(graphical user interface on output device 143) program.Storing communication program 149 is the computer programs for communicating by letter with storage system 110.UI control program 148 and storing communication program 149 will be discussed in more detail below.
Fig. 3 is the structural drawing that various tables are shown.
True LU table 143 is the tables for managing the information relevant to true LU.Particularly, for each true LU, this true LU table 134 has and has for example wherein recorded the territory 301 of true LU ID and the territory 302 of recording capacity information wherein.(in this section, hereinafter, be called as " the true LU of target ") as an example with a true LU, various types of information recordings are in this table 134, as described below.True LU ID is the information representing for the identifier of the true LU of target.Capacity information is the information that represents the memory capacity of the true LU of target.Here, " true LU " is the logical volume based on HDD111, and this aspect is different from virtual LU.
Pond table 135 is the tables for managing the information relevant to pond.Particularly, for the each true LU in composition pond, this pond table 135 can have the territory 311 of for example wherein having recorded true LU ID, the territory 313 of wherein having recorded the territory 312 of its true page length degree and wherein having recorded first true page of ID.(in this section, hereinafter, be called as " the true LU of target ") as an example by one of them of true LU in composition pond 2601, in this table 135, record various types of information, as described below.True LU ID is the information that represents the identifier of the true LU of target.True page length information is the information that represents the length of the true page that forms the true LU of target.First true page of ID is first the information of identifier of true page representing as the true LU of target.According to the following describes, in this first embodiment, be true LU with reference to the region, pond 2603 of Figure 26 explanation.Reason be for each true lu definition true page length degree.The true page length degree of the true page of capacity that therefore, can the true LU of based target and the true LU of target calculates the true number of pages order of the true LU of composition target.
True page table 136 is the tables for managing the information relevant to true page.Particularly, for example, for each true page, true page table 136 can have and wherein recorded the territory 321 of true page ID, the territory 323 of having recorded the territory 322 of its true LU ID and wherein having recorded its status information wherein.(in this section, hereinafter, be called as " the true page of target ") as an example with one true page, in this table 136, record various types of information, as described below.True page ID is the information that represents the identifier of the true page of this target.And true LU ID is the information that represents the identifier of the true LU that comprises the true page of this target.In addition, status information is the information that represents the state of the true page of this target.For example, if the true page of this target is assigned to certain virtual page, the value of its status information is " using ", and if the true page of this target is not assigned to any virtual page, the value of its status information is " not using ".Although should be appreciated that the information of the length that represents true page is not recorded in this table 136, use the true LU ID corresponding with this true page as key word, by reference to pond table 135, can specify the length of true page.Reason is that the true page length degree information recording corresponding with true LU ID is in the table 135 of pond.
Virtual page table 137 is the tables for managing the information relevant to virtual page.Particularly, for example, for each virtual page, virtual page table 137 can have and wherein recorded the territory 331 of virtual page ID, the territory 332 of wherein having recorded its true page ID and the territory 333 of wherein having recorded the data length information of its compression.(in this section, hereinafter, be called as " target virtual page ") as an example by a virtual page, in this table 137, record various types of information, as described below.Virtual page ID is the information that represents the identifier of this target virtual page.And true page ID is the information that represents the identifier of the true page of distributing to this target virtual page.Should be appreciated that, if untrue page is assigned to target virtual page, the value of this true page ID is for example " N/A " (not assigning).In addition, packed data length information is the length of the data element after the compression that represents to be stored in the true page of distributing to target virtual page.If untrue page is assigned to target virtual page, the value of this packed data length information is for example " N/A ".The data length information of compression is for example to read process and write in processing at true page described later, is used to specify the data element part that should be read to which and applies extension process.For example, can be that the value of 512kB and the packed data length information corresponding with target virtual page can represent 346kB when from being assigned to the length of the data element that the true page of target virtual page reads, can find that extension process should be applied to the data element part of the 346kB of the data element of 512kB.
Virtual LU table 138 is the tables for managing the information relevant to virtual LU.Particularly, for example, for each virtual page, the territory 344 that virtual LU table 138 can have the territory 341 of wherein having recorded virtual LU ID, wherein record the territory 342 of capacity information, wherein recorded the territory 343 of the first virtual page ID and wherein recorded compressed information.(in this section, hereinafter, be called as " the virtual LU of target ") as an example with a virtual LU, in this table 138, record various types of information, as described below.Virtual LU ID is the information that represents the identifier of the virtual LU of this target.Capacity information is the information representing for the capacity of the virtual lu definition of target, in other words, represents the information of the capacity of the virtual LU of target.The first virtual page ID is first the information of identifier of virtual page representing as the virtual LU of target.Compressed information is to represent whether to have compressed the information that is stored in the data in the virtual LU of target.Particularly, if for example compressed the data that are stored in the virtual LU of target, the value of this compressed information is " opening ", if but do not have compression to be stored in the data in the virtual LU of target, the value of this compressed information is " pass ".
Now, the length of the true page of the true LU in pond 2601 can for example be arranged by the pond management screen 401 with shown in Fig. 4 by the user of office terminal 102.In addition, the capacity of virtual LU is set, and be stored in data element in these virtual LU whether compressed can be for example by the user of office terminal 102 by arranging with the virtual LU management screen 501 shown in Fig. 5.
Fig. 4 shows the example of this pond management screen 401.
This pond management screen 401 is the GUI that shown by UI control program 149.On this pond management screen 401, be provided with the true LU for being added to pond 2601 ID input domain 402 and for inputting the input domain 403 of length of true page of this true LU that will be added.Use the input equipment 142 shown in Fig. 2, user inputs the ID of the true LU that will be added to true LU ID input domain 402, and also the length of the true page of this true LU is input to the big or small input domain 403 of true page.The true LU ID of input has been recorded to one of multiple true LU ID in true LU table 301.In the time that user presses " confirmation " button, storing communication program 149 is notified storage system 110 to represent the information of the true LU ID that is input to input domain 402 and has been input to the true page length degree of input domain 403.And in the time that the management terminal communications program 131 by storage system 110 receives this information, pond supervisory routine 132 is carried out following processing., pond supervisory routine 132 is added following record to pond table 135: wherein recorded the information that represents (in other words, being inputted by user) that received by management terminal communications program 131 true LU ID and true page length information.In addition, pond supervisory routine 132 is added the record corresponding with all true pages to true page table 136, and the true LU(that these true page compositions have been added pond 2601, comprises their true page of ID and the record of their true LU ID).
Fig. 5 shows the example of virtual LU management screen 501.
Virtual LU management screen 501 is the GUI that shown by UI control program 149.On this virtual LU management screen 501, be provided with for the input domain 502 of virtual LU, for input this virtual LU capacity input domain 503 and for selecting whether to compress the selection button 504 of the data that this virtual LU stores.Use the input equipment 142 shown in Fig. 2, user inputs the expectation ID of virtual LU to territory 502, and inputs the capacity of these virtual LU to input domain 503.In addition, user uses and selects button 504 to specify " compression is opened " or " compression is closed ".
In the time that user presses " confirmation " button, storing communication program 149 notify storage system 110 represent the information of the capacity that is input to the virtual LU ID of input domain 502 and has been input to input domain 503 and with information that appointed selection button 504 is corresponding (i.e. " compression is opened " or " compression is closed ").And in the time receiving this information by management terminal communications program 131, pond supervisory routine 132 is carried out following processing., pond supervisory routine 132 is added following record to virtual LU table 138: the information that has wherein recorded (in other words, being inputted by user) that received by management terminal communications program 131.
Below, by the processing of carrying out in explanation the first embodiment.
Fig. 6 is the process flow diagram for writing processing.
This is write and processes is following processing: if the LU being specified by the write request receiving from main frame 101 is virtual LU, and if the value of the compressed information corresponding with this virtual LU is " opening ", and the processing of carrying out.Particularly, in the time receiving write request, pond supervisory routine 132 determines whether the LU identifying from the LUN that this write request receiving is specified is virtual LU, and whether the value of the compressed information corresponding with this virtual LU (being recorded in the value in virtual LU table 138) is " opening ".If this determination result is sure, start the processing of writing shown in Fig. 6.
Pond supervisory routine 132 is specified one or more virtual pages (step S601) corresponding to the scope of writing (for example, with LBA and the length of writing data) of specifying with write request.
Next,, in one or more virtual pages of having specified at step S601, pond supervisory routine 132 is the target of (in other words, step S603 to S605) using the first virtual page as (step S602) following processing.
Next, pond supervisory routine 132 is carried out true page and is read to process (step S603) in the virtual page as processing target.Describing this true page below with reference to Fig. 7 reads to process.
Next, pond supervisory routine 132 is carried out true page and is write processing (step S604) in the virtual page as processing target.Describe this true page below with reference to Fig. 8 and write processing.
Next, pond supervisory routine 132 determines whether to have completed the processing (step S605) of all virtual pages corresponding with the scope of writing of specifying in step S601.If be (the step S605 that negates in this determination result of step S605, no), as subsequent treatment (in other words pond supervisory routine 132 will not have next virtual page in processed virtual page, by step, S603 to S605 processes) target (step S606), and to this virtual page execution step S603 as processing target.On the other hand, if the determination result in step S605 is sure (step S605 is), this is write to process and stops.
Fig. 7 is that true page is read the process flow diagram of processing.
It is the processing of carrying out in the step S603 of Fig. 6 that this true page is read to process.
Then pond supervisory routine 132 specifies the true page corresponding with virtual page as processing target (in Fig. 7 and Fig. 8, being abbreviated as the true page of target " TRP ") (step S701).If pond supervisory routine 132 success (step S702 is) in the true page of step S701 is specified, performs step the processing of S705 and subsequent step, on the other hand, if failure (step S702, no), performs step the processing of S703 and S704 in the appointment of true page.
If have failure (step S702 in the appointment of true page in step S702, no), pond supervisory routine 132 determines that this is to write for the first time (step S703), data element (data element in cache memory 125) was write before or after the virtual page of processing target, in needs, add one or more " 0 ", and will add this data element of 0 target (writing data element) as (step S704) subsequent treatment.In other words, if shorter than virtual page length using being written to data element as the virtual page of processing target, there are and there is no implication the data of (for example 0 etc.) by adding before or after this data element in step S704 (particularly, specify the bit data of " 0 "), by the whole length of this data element is carried out to processing as identical with the length of virtual page.
On the other hand, if in the success (step S702 is) of appointment of the true page of step S702, pond supervisory routine 132 determines the length whether identical with virtual page length (step S705) of the data element of writing in the virtual page as processing target.If the result of the decision in this step S705 is (the step S705, no) that negates, perform step the processing of S706 and subsequent step.On the other hand, if the result of the decision of this step S705 is sure (step S705, be), pond supervisory routine 132 will be write data element itself in the virtual page of processing target as subsequent treatment target (writing data element) (step S710), and then this processing sequence stops.
If in the determination result of this step S705 be (the step S705, no) that negates, I/O handling procedure 133 reads the data element (step S706) being stored on the true page of finding in step S701.Next, pond supervisory routine 132 is inputted this data element of being read compression and expanded circuit 126, and compression and data element (data element in other words, being read) the execution expansion (step S707) of expanded circuit 126 to this compression.And the data element (step S708) that I/O handling procedure 133 uses this data element of being expanded usually to write in the virtual page of overwrite as processing target.In addition, pond supervisory routine 132 using in step S708 by the data element of overwrite as the target for subsequent treatment (writing data element) (step S709).
Below, in the explanation of Fig. 8 to Figure 10, the data that obtain from step S704, S709 and S710 will be called as " writing data element ".This obtaining from step S704 write data element or itself is written to as the data element the virtual page of processing target (in other words, primitive data element), or 0 data element forming adding by this data element with before or after this data element.And the data element of writing obtaining from step S709 is following data: wherein use the true page of having specified from step S701 data element overwrite that read and expansion in the data element of writing as the virtual page of processing target (in other words, primitive data element).In addition, be to write on as writing data element itself (in other words, primitive data element) in the virtual page of processing target as the data element of writing of the result of step S710.
Fig. 8 is the process flow diagram that true page is write processing.
This true page is write and processed is the processing of carrying out in the step S604 of Fig. 6.
Pond supervisory routine 132 is write data element (WDE) to compression and expanded circuit 126 input, and compression and expanded circuit 126 compress and write data element (step S801).Result, for example, be input to circuit 126 write data element (writing data element (being abbreviated as in the drawings " UWDE ")) before compression and the data element (being abbreviated as in the drawings " CWDE ") of writing having been compressed by circuit 126 is present in cache memory 125.
Next, pond supervisory routine 132 determines whether be more than or equal to virtual page length (step S802) in the length of writing data element of step S801 compression.
If the result of the decision of step S802 is (the step S802, no) that negates, pond supervisory routine 132 is write data element as writing target (step S803) using what compress.Next, pond supervisory routine 132 is carried out the true page shown in Figure 10 and is selected to process (being abbreviated as in the drawings " RP selects to process ") (step S804).In other words, the territory 312 of pond supervisory routine 132 reference cell tables 135, and specify the shortest true page length degree in length is more than or equal to the true page length degree of the length of writing data element of compression.(step S1001).Next, the true page table 136 of pond supervisory routine 132 reference, and select as the true page of true page in the true LU being formed by the true page of the true page length degree of specifying, and its state information value is " not using " (step S1002).
On the other hand, if be sure (step S802 is) in the result of the decision of step S802, pond supervisory routine 132 will be write data element as writing target (step S811) before compression.Reason is the following fact: be that sure expression compression there is no meaning in the result of the decision of step S802, because even if data element is write in compression, it does not become shorter.Next, the true page of the default length shown in pond supervisory routine 132 execution graphs 9 selects to process (being abbreviated as in the drawings " DLRP selects to process ") (step S812).In other words, pond supervisory routine 132 reference cell tables 135 and true page table 136, and at true page length degree, and state information value identical with virtual page length is to select true page (step S901) in the true page of " not using ".
After step S804 or step S812, execution step S805 and subsequent step.
In other words, whether successfully pond supervisory routine 132 determines in step S804 or step S812, the truly selection of page (step S805).If the result in the decision of step S805 is (the step S805, no) that negates, pond supervisory routine 132 is to main frame 101 responses wrong (step S813).
If the result in the decision of step S805 is sure (step S805 is), perform step the processing of S806 and subsequent step.
In other words, the true page table 136 of pond supervisory routine 132 reference, and the value of the status information corresponding with the true page of selecting in step S804 or step S812 is changed into " using " (step S806).Next, pond supervisory routine 132 is with reference to virtual page table 137, and upgrades the information (step S807) relevant to virtual page as processing target.Particularly, pond supervisory routine 132 will be updated to the true page ID of the true page of selecting in step S804 or step S812 with the value of the true page ID corresponding as the virtual page of processing target, and will upgrade the value of the data length of writing data element that represents compression with the value of the packed data length information corresponding as the virtual page of processing target in addition.Should be appreciated that if be sure in the result of the decision of step S802, the value of packed data length information is updated to the value identical with the value of the length of virtual page by pond supervisory routine 132.Next, I/O handling procedure 133 is with reference to virtual page table 137, and in the true page of the virtual page of processing target, (in other words, be written in the true page of selecting in step S804 or step S812) (step S808) using writing as the data element of writing target to distribute to.Now, be compared to that to write the true page of destination short if write target data element, for example, on the region of writing on the true page in destination instead of write in existence and write nonsignificant data (0) on other region of target data element.Next, pond supervisory routine 132 determines whether these times write is (step S809) for the first time, and if the result of this decision is (the step S809 that negates, no), in other words, if the step S703 of Fig. 7 is not performed, the value (being the value of true page table 323) of the status information corresponding with the true page (TRP) of selecting at step S701 is changed into " not using " (step S810).
Figure 11 is the process flow diagram of reading processing.
This reads to process is following processing: if the LU being specified by the read request receiving from main frame 101 is virtual LU, and if the value of the compressed information corresponding with this virtual LU is " opening ", and the processing of carrying out.Particularly, in the time receiving read request, pond supervisory routine 132 determines whether the LU identifying the LUN of this read request appointment from receiving is virtual LU, and whether the value of the compressed information corresponding with this virtual LU (, being recorded in the value in virtual LU table 138) is " opening ".If the result of this decision is sure, starts reading shown in Figure 11 and process.
Pond supervisory routine 132 is specified one or more virtual pages (step S1101) corresponding to reading scope (for example, with LBA and the length of reading target data) of specifying with read request.
Next,, in one or more virtual pages of specifying in step S1101, pond supervisory routine 132 is the target of (in other words, step S1103 to S1107) using the first virtual page as (step S1102) subsequent treatment.
Next, pond supervisory routine 132 is specified true page of (TRP) (step S1103) corresponding with virtual page as processing target.
Next, I/O handling procedure 133 reads in the data element (step S1104) of storage in the true page of specifying in step S1103.
Next, pond supervisory routine 132 is inputted this data element of being read to compression and expanded circuit 126, and compression and expanded circuit 126 are carried out expansion (step S1105) to compressed this data element (in other words, to the data element being read into).But, if identical with the length of virtual page as the packed data length of the virtual page of processing target (write value represented) in virtual page table 137, do not carry out this extension process (in other words, skips steps S1105) because the data element reading at step S1104 is unpressed data element.
Next, pond supervisory routine 132 determines whether to have completed the processing (step S1106) of all virtual pages corresponding with the reading scope of specifying in step S1101.If the result of the decision of step S1106 is (the step S1106 that negates, no), as subsequent treatment (in other words pond supervisory routine 132 will also not have next virtual page in those processed virtual pages, by step, S1103 to S1105 processes) target (step S1108), and to the virtual page execution step S1103 as processing target.On the other hand, if the result of the decision of step S1106 is sure (step S1106 is), pond supervisory routine 132 performs step S1107.In other words, (in other words pond supervisory routine 132 is merged together all data elements that are expanded that are present in cache memory 125, create read data according to the read request that receives from main frame 101), and by thereby the read data that generates send to main frame 101.
The above-mentioned explanation having completed the first embodiment.
According to this first embodiment, admixed together by true page of multiple different true page length degree in pond 2601, and carry out management with true page unit.For example, compare with the situation (, when all true page length degree are less than virtual page length) that the length of working as all true pages is short, the true number of pages order that must be managed is less.Therefore, can suppress the reduction of capacity extension.
In addition, according to this first embodiment, in being more than or equal to the length of writing data element of compression, true page length degree specifies the shortest true page length degree, and writing in the true page of true page length degree that data element stores appointment into compression.Therefore, can realize high power capacity efficiency.
Invention mode 2
The second embodiment of the present invention will be described below.In this explanation, emphasis is and the difference of the first embodiment, and will omit or simply describe the feature (being also like this) common with the first embodiment in the situation of aftermentioned the third and fourth embodiment.
In this second embodiment, not to not using region, pond 2603 to define true page length degree, and result is not used untrue page in region, pond 2603 at those.Writing in processing, if controller 120 can't be from any pond region 2603(as using for the storage purpose ground of writing data element compressing) specify suitable true page, define for the true page length degree that does not use region, pond 2603.Thus, do not use at this true page that has defined this true page length degree in region, pond 2603.Controller 120 does not use region, pond 2603 to select a true page from this, and this true page is assigned to and writes destination virtual page.In addition, in this second embodiment, the each true LU in composition pond 2601 is made up of multiple bulks (the subpool territory of true LU), and defines true page length degree for each bulk.Therefore,, in this second embodiment, bulk is region, pond 2603.In this second embodiment, bulk is that regular length and all bulks are identical length.
To describe this second embodiment of the present invention in detail below.
Figure 12 shows program and the table in the nonvolatile memory 130 in this second embodiment of the present invention, preserved.
In this second embodiment, true page lengths table 1300 and bulk table 1320 are added.In addition, the content of pond table 1310 and true page table 1330 is different respectively from the content of pond table 135 and true page table 136.
Figure 13 is previously described table 1300,1310 in this second embodiment, 1320 and 1330 structural drawing.
True page lengths table 1300 is the lists that wherein can define true page length degree.Does is maximum true page length degree 1 according to this table 1300? MB(megabyte), and this is identical with virtual page length.
Replace the territory 312 and 313 shown in Fig. 3, the territory 1312 that pond table 1310 comprises the each true LU for forming pond.The first bulk ID is recorded in these territories 1312.The first bulk ID is first the identifier of bulk representing as this true LU.According to this table 1310, should be appreciated that the true LU with true LU ID " RL0 " is made up of to " CH9 " ten bulks " CH0 ".Therefore, the first bulk ID corresponding with this true LU is " CH0 ".
Bulk table 1320 is the tables for managing the information relevant to bulk.Particularly, for each bulk, this bulk table 1320 can have the territory 1321 of for example wherein having recorded bulk ID, has wherein recorded the territory 1322 of true page length degree, the territory 1324 of wherein having recorded the territory 1323 of status information and wherein having recorded first true page of ID.With a bulk (hereinafter, in this section, this is called as " target bulk ") as an example, the various information of record in this table 1320 are described below.Bulk ID is the information that represents the identifier of target bulk.Status information is the information that represents the use state of target bulk.For example, if defined true page length degree for target bulk, the value of its status information is " using ", if but target bulk is not defined to true page length degree, the value of its status information is " not using ".First true page of ID is first the identifier of true page representing as target bulk.
True page table 1330 has the territory 1332 for each true page, replaces the territory 332 shown in Fig. 3.Bulk ID is recorded in this territory 1332.This bulk ID is the identifier that represents the bulk with the true page corresponding with this territory 1332.
Figure 14 shows the example of the pond management screen 1401 in this second embodiment.
On this pond management screen 1401, be provided with true page length degree input domain, and in this feature, be different from the pond management screen 401 shown in Fig. 4.
In the time that user presses " confirmation " button, as has been described, add record to pond table 1310, in this pond table 1310, record the true LU ID having inputted from user.Be recorded in the next ID after the ID that the first bulk ID in this record is used as last bulk in pond 2601.In addition, based on the capacity corresponding with the true LU that adds pond 2601 to, pond supervisory routine 132 is specified the bulk number that forms this true LU being added, and will add in bulk table 1320 with the record of the same number of number of this bulk of specifying.Due to thereby each record of being added in recorded bulk ID, true page length value, status information and first true page of ID are " N/A ".
Figure 15 shows the example of true page length degree management screen 1501.
GUI is presented on this true page length degree management screen 1501 by UI control program 148.Be arranged on this true page length degree management screen 1501 for the input domain 1502 of inputting the true page length degree that will be added.Use input equipment 142, the true page length degree that user will be added is input in the true page length degree input domain 1502 of this interpolation.
In the time that user presses " confirmation " button, storing communication program 149 is notified the true page length degree that is input to input domain 1502 to storage system 110.Management terminal communications program 131 in storage system 110 receives this information, and pond supervisory routine 132 is carried out following processing.In other words, pond supervisory routine 132 is added record in true page lengths table 1300 to, has wherein recorded (having inputted from user) the true page length degree having been received by management terminal communications program 131.
Also can in the time of shipping products, arrange in advance polytype true page length degree to be recorded in true page lengths table 1300, so that make can not editor's table 1300.
Figure 16 is that the true page of the default length in second embodiment of the invention is selected the process flow diagram of processing.
It is the processing of carrying out in the step S812 of Fig. 8 that the true page of this default length is selected to process.
Pond supervisory routine 132 is with reference to the territory 1322 of bulk table 1320, and those true pages identical with virtual page length from length, the selection mode value of information is the true page of " not using ".
Whether successfully then pond supervisory routine 132 determine selection (the step S1602) of true page in step S1601.If the result in the decision of this step S1602 is sure (step S1602 is), the sequence of this selection processing stops.
On the other hand, if in the determination result of step S1602 be (the step S1602 that negates, no), due to for example, there is not for the bulk in using any untapped true page that length is identical with virtual page length, correspondingly, for certain untapped bulk, defined the true page length degree identical with virtual page length.
Particularly, pond supervisory routine 132 is with reference to bulk table 1320, and designated state is certain bulk (step S1603) of " not using ".
Next, whether successfully (step S1604) of the appointment of bulk in pond supervisory routine 132 deciding step S1603.If in this determination result of step S1604 be (the step S1604, no) that negates, the sequence of this selection processing stops.On the other hand, if this determination result of step S1604 be sure (step S1604 is) pond supervisory routine 132 state information value in the bulk table 1320 corresponding with the bulk of specifying in step S1603 is updated to " using " (step S1605).In this step, for example, the value of the first true page ID corresponding with the bulk of specifying in step S1603 is updated to effective value by pond supervisory routine 132 from " N/A ".
Next, pond supervisory routine 132 is divided into the bulk of specifying in step S1603 and the true page (step S1606) of the length equal length of virtual page.Particularly, pond supervisory routine 132 can, for example the value in the bulk table 1320 of the true page length degree corresponding with the bulk of specifying in step S1603 is updated to the value (being updated to the identical true page length degree with virtual page length of describing in true page lengths table 1300) that represents virtual page length.In addition, pond supervisory routine 132 can, for example, by for example, with the capacity of bulk (1? GB(gigabyte)) calculate the true number of pages order of the composition bulk of specifying in step S1603 divided by virtual page length, and can add and the record of this number similar number.Thus each record of adding in, a true page ID is the value (for example number in sequence) being automatically assigned, bulk ID is that identifier and the state of specifying bulk are " not using ".
Next,, in those true pages that the bulk of specifying in step S1603 is divided into, pond supervisory routine 132 is selected the first true page (step S1607).
Figure 17 is that the true page in this second embodiment is selected the process flow diagram of processing.
It is the processing of carrying out in the step S804 of Fig. 8 that true page is selected to process.
Pond supervisory routine 132 is with reference to the territory 1322 of bulk table 1320, and specifies the shortest true page length degree (step S1701) in the true page length degree of the length of writing data element that is more than or equal to compression.Next, pond supervisory routine 132 is with reference to true page table 136, and the true page of selection one, and this true page is that true page and the state information value in the true page of bulk forming of the true page length degree by specifying is " not using " (step S1702).
Whether successfully then pond supervisory routine 132 determine selection (the step S1703) in step S1702.If the result of the decision in this step S1703 is sure (step S1703 is), the sequence of this selection processing stops.
On the other hand, if the result of the decision in this step S1703 is (the step S1703 that negates, no), because for example, not having length for the bulk in using is any untapped true page of the length of specifying in step S1701, correspondingly, from true page lengths table 1300, select to be more than or equal to the shortest true page length degree in the true page length degree that compresses the length of writing data element, and to the selected true page length degree of certain future use block definition.
Particularly, after step S1702, execution step S1703 to S1708.Except step S1707, the processing in step S1703 to S1708 is identical with the processing of the above-mentioned step S1602 to S1607 except step S1606 with reference to Figure 16 explanation respectively.
In step S1707, pond supervisory routine 132 selects to be more than or equal to the shortest true page length degree in the true page length degree that compresses the length of writing data element from true page lengths table 1300, and the bulk of appointment is divided into the true page of this selected true page length degree.Particularly, for example, pond supervisory routine 132 can be updated to the value of the true page length degree in the bulk table 1302 corresponding with the bulk of specifying in step S1704 the value of the true page length degree that represents above-mentioned appointment.In addition, for example, by the capacity of bulk is divided divided by the true page length degree of having selected as mentioned above, pond supervisory routine 132 is calculated the true number of pages order of the bulk of specifying in composition step S1704, and in true page table 1330, adds and the record of this number similar number.In the each record adding, the value that true page ID is added automatically, bulk ID is that identifier and the state of the bulk of specifying in step S1704 is " not using ".
Figure 18 is the process flow diagram of bulk garbage collection processing.
This bulk garbage collection processing is the processing for increasing the number of untapped bulk.Particularly, be following processing: if the state that composition state is all true page of the bulk of " using " is " not using ", the state of this bulk is updated to " not using " from " using ".For example, following situation (16-1) to (16-4) each, start this bulk garbage collection processing.
(16-1) CPU123 for example, in low load (load on CPU123 is lower than certain predetermined load);
(16-2) periodically;
(16-3) receive order from the user of office terminal 102;
(16-4) used the ratio of bulk to be reduced to (for example, when with reference to bulk table 1320, pond supervisory routine 132 has detected that the number of " using " value of status information has been less than certain predetermined number) under certain predetermined threshold.
Pond supervisory routine 132 is with reference to bulk table 1320, and target (step S1801) using its first bulk ID as following processing.
Next, pond supervisory routine 132 is with reference to true page table 1330, and whether decision is all " not using " (step S1802) as the state of all true page of the bulk of processing target.If in this determination result of step S1802 be (the step S1802, no) that negates, control stream and proceed to step S1805.
On the other hand, if be sure (step S1802 in the determination result of step S1802, be), pond supervisory routine 132 is deleted the entry (being that status information is the entry of " not use ") (step S1803) of all true page corresponding with bulk as processing target from true page table 1330.
Next, pond supervisory routine 132 is with reference to bulk table 1320, and the status information as the bulk of processing target is changed into " not using " (step S1804).
Next, pond supervisory routine 132 determines whether completed processing (step S1805) for all bulks.If the result in this decision of step S1805 is sure (step S1805 is), this processing sequence stops.On the other hand, if the result in this decision of step S1805 is (the step S1805 that negates, no), pond supervisory routine 132 using the next bulk in all bulks as (step S1806) as subsequent treatment the target of (the in other words processing of step S1802 to S1805), then for this bulk execution step S1802 as processing target.
The above-mentioned explanation that completes second embodiment of the invention.According to this second embodiment, dynamically definition and the length that dynamically changes the true page in region, pond 2603.Therefore, can expect, compare with the situation of the pre-defined length with the true page in region, all ponds 2603 is set, will more suitably define true page length degree.
In addition, in this second embodiment, region, pond 2603 is bulks that capacity is less than the capacity of true LU.Therefore,, even after for example having defined true page length degree for certain bulk, do not store many packed data elements in this bulk temporarily, compared with the situation that is region, pond with true LU, still can manage with the dummy section of small amount.
Should be appreciated that according to this second embodiment, can consider following variant embodiment.
In the first variant embodiment, controller 120 has the function of automatic learning True Data length.Particularly, for example, in step S1707, pond supervisory routine 132, together with the true page length degree of specifying in step S1701 in the untapped bulk of definition, is also added this true page length degree to true page lengths table 1301.The true page length degree of specifying at step S1701 can be to be for example more than or equal to that the length of data element is write in compression and be the length (for example 64KB) of the shortest multiple in multiple predetermined length multiples.
In the second variant embodiment, controller 120 has following function: data cell is copied to the untapped true page in one or more other regions, pond from all true page using certain region, pond, and the state of all true page as this copy source is updated to " not using " from " using ".For example, as shown in Figure 29 A, pond supervisory routine 132 is specified two or more sub regions, for example, to the true page length degree of these two or more sub regions definition identical (, two bulk 2901A and 2901B).In addition, in two or more regions, pond of having specified, it is minimum region, pond that pond supervisory routine 132 is specified the true number of pages order in wherein using.And by data cell, for example, all true pages in the use from the region, pond (bulk 2901A) of this appointment (i.e. the true page of those shown in shade from Figure 29 A) copy to for example, untapped true page in above-mentioned one or more other region, pond (bulk 2901B) to I/O handling procedure 133.And as shown in Figure 29 B, the state of all true pages that are called copy source is updated to " not using " from " using " by pond supervisory routine 132.Thus, in the time having carried out bulk garbage collection shown in Figure 18 and process, as shown in Figure 29 C, comprise as the state in the region, pond (being bulk 2901A) of the true page of copy source and be updated to " not using " from " using ".Correspondingly, according to this second variant embodiment, can increase the number that does not use region, pond.Should be appreciated that the number of times that execution can be copied is suppressed to least limit by the region, pond of the number minimum of the true page in wherein using using copy source.Can using as copy source or the renewal of the state of the true page being just replicated be included in this bulk garbage collected processing; Or also can form the processing separating with this processing.In addition, for example, any in above-mentioned situation (16-1) to (16-4) can be managed for beginning, for determining the region, pond as copy source.
Invention mode 3
In the 3rd embodiment, sometimes multiple true pages are assigned to a virtual page.Therefore, for example, read (Fig. 7) in the step S701 that processes and S706 or write in the step S810 of processing (Fig. 8) at true page at true page, the number (being assigned to the true page as the virtual page of processing target) of TRP is 1 sometimes, is 2 or more sometimes.In a similar fashion, the number of the true page of specifying in the step S1103 that reads to process (Figure 11) is 1 sometimes, is 2 or more sometimes
Figure 19 is the structural drawing of the virtual page table 1900 in third embodiment of the invention.
This table 1900 has territory 1902, replaces territory 332.Sometimes in this territory 1902, record multiple true page ID, instead of a true page ID only.This is because as mentioned above, multiple true pages are assigned to a virtual page sometimes.
Figure 20 is that the true page in third embodiment of the invention is selected the process flow diagram of processing.
Pond supervisory routine 132 is with reference to the territory 312 of the pond table 135 shown in figure 3, and in the true page length degree of length that is more than or equal to compression and writes data element, specify one or more combinations of true page length degree, the total value of wherein one or more true page length degree is longer than compression and writes the length (step S2001) of data element.
Next, pond supervisory routine 132 is with reference to true page table 136, and in the combination of appointed true page length degree, specifies the combination (step S2002) of total value minimum.
Next, the true page table 136 of pond supervisory routine 132 reference, and in the true page with this length, for form the true page (step S2003) that the each true page length degree selection mode value of information of the combination of specifying is " untapped " in step S2002.
The above-mentioned explanation that completes third embodiment of the invention.According to the 3rd embodiment, can expect volumetric efficiency is brought up to higher level.
Invention mode 4
In fourth embodiment of the invention, in the time of the write request receiving from main frame 101, writing in processing of carrying out in the time receiving this write request, controller 120 not temporarily compression writes as the data element in the virtual page of processing target, but is stored in the true page having with virtual page length equal length.Then, and write processing asynchronously, controller 120 is read data elements from this true page of the length identical with virtual page length, and the data element having read is carried out to the above-mentioned true page having illustrated with reference to figure 8 and write processing.
To describe the fourth embodiment of the present invention in detail below.
Figure 21 is the structural drawing of the virtual page table 2137 in fourth embodiment of the invention.
In this virtual page table 2137, for each virtual page, except territory 331 to 333, be also provided with territory 334, wherein record status information.This status information is to represent whether to compress the data element being stored in the true page (below, in this section, being called the true page of target) of distributing to the virtual page corresponding with this status information.For example, if compression is stored in the data element in the true page of target, the value of this status information is " compressing ", and still, if the data element being stored in the true page of target is not compress, the value of this status information is " not compression ".If untrue page is assigned to virtual page, the status information corresponding with this virtual page can be for example " N/A ".
Figure 22 is that the true page in fourth embodiment of the invention is read the process flow diagram of processing.
The true page that the step S2201 to S2210 that true page in the 4th embodiment reads to process corresponds respectively in the first embodiment is read the step S701 to S710 processing.Step S2207 is different from step S707, and correspondingly, step S2208 is different from step S708.Except step S2207 identical with the step S701 to S710 except step S707 and S708 respectively with the step S2201 to S2210 S2208.
In step S2207, pond supervisory routine 132 is with reference to virtual page table 2137, and if the value of the status information corresponding with virtual page as processing target is " compressing ", the data element reading in step S2206 is input to compression and expanded circuit 126, thus compression and expanded circuit 126 these data elements of expansion.On the other hand, if the value of this status information is not " compressing ", pond supervisory routine 132 is not input to the data element having read compression and expanded circuit 126.
Therefore,, in step S2208, the data element of I/O handling procedure 133 these expansions of use or the data element self having read usually overwrite are written to as the data element in the virtual page of processing target.
Figure 23 is the process flow diagram that interim true page is write processing.
This interim true page is write and processed is to replace the true page in the step S604 that writes processing shown in Fig. 6 to write the processing of processing and carry out.As what described in detail, and as described in detail afterwards, this true page is write to process and write processing and is carried out asynchronously.
Pond supervisory routine 132 is carried out the true page of the default length illustrating with reference to figure 9 and is selected to process (being abbreviated as in the drawings " DLRP selects to process ") (step S2301).
Next, whether successfully pond supervisory routine 132 determines selection (the step S2302) of the true page in step S2301.If the result in the decision of step S2302 is (the step S2302, no) that negates, pond supervisory routine 132 is to main frame 101 responses wrong (step S2308).
On the other hand, if be sure (step S2302 is) in the result of the decision of step S2302, perform step the processing of S2303 and subsequent step.
In other words, the true page table 136 of pond supervisory routine 132 reference, and the value of the status information corresponding with the true page of selecting in step S2301 is changed into " using " (step S2303).Next, pond supervisory routine 132 is with reference to virtual page table 2137, and upgrades the information (step S2304) relevant to virtual page as processing target.Particularly, pond supervisory routine 132 will be updated to the true page ID of the true page of selecting in step S2301 with the value of the true page ID corresponding as the virtual page of handling object, to be updated to and represent that compression writes the value of the data length of data element with the value of the packed data length information corresponding as the virtual page of processing target, and will be " not compressing " in addition with the state information updating corresponding as the virtual page of processing target.Next, the virtual page table 2137 of I/O handling procedure 133 reference, and will write as the data element of writing target the true page (step S2305) of distributing to as the virtual page of processing target.Now, be compared to that to write the true page of destination short if write target data element, nonsignificant data (for example 0) write to the region of the true page in destination instead of existence and writes the region of target data element.Next, whether pond supervisory routine 132 determines to write is specifically (step S2306) for the first time, and if the result of this decision is (the step S2306 that negates, no), in other words, if the step S2203 of Figure 22 does not carry out, the value (being the value in true page table 223) of the status information corresponding with the true page (TRP) of selecting is changed into " not using " (step S2307) in step S2201.
Figure 24 is the process flow diagram that reading in fourth embodiment of the invention processed.
The true page that the step S2401 to S2408 that reads to process in the 4th embodiment corresponds respectively in the first embodiment is read the step S1101 to S1108 processing.Step S2405 is different from step S1105, but the step S2401 to S2408 except step S2405 is identical with the step S1101 to S1108 except step S1105 respectively.
At step S2405, pond supervisory routine 132 is with reference to virtual page table 2137, and, if the value of the status information corresponding with virtual page as processing target is " compressing ", the data element reading in step S2404 is input to compression and expanded circuit, thus compression and expanded circuit 126 these data elements of expansion.
Figure 25 is the process flow diagram of asynchronous compression processing.
In the time of each of following situation (25-1) to (25-4), can start this asynchronous compression processing.
(25-1) CPU123 for example, in low load (load on CPU123 is lower than certain predetermined load);
(25-2) periodically;
(25-3) receive order from the user of office terminal 102;
(25-4) ratio of the virtual page corresponding with " compressing " has been reduced to (for example, when with reference to virtual page table 2137, pond supervisory routine 132 has detected that the number of " compressing " value of status information is less than certain predetermined number) under certain predetermined threshold.
Pond supervisory routine 132 is the target (step S2501) of (step S2502 to S2506) using the first virtual page of virtual LU as subsequent treatment.
Then pond supervisory routine 132 determines whether the value of the status information corresponding with virtual page as processing target is " not compressing " (step S2502).
If be sure (step S2502 is) in the determination result of step S2502, pond supervisory routine 132 is specified true page (step S2503) corresponding with virtual page as processing target.And I/O handling procedure 133 is read data elements (step S2504) from appointed true page.Then, the true page shown in execution graph 8 is write processing (step S2505).And, if writing, processes successfully true page, pond supervisory routine 132 will be changed into " compressing " (step S2506) from " not compressing " with the value of the status information corresponding as the virtual page of processing target.
If the result in the decision of step S2502 is (the step S2502, no) that negates, or after step S2506, pond supervisory routine 132 determines whether all virtual pages of virtual LU have been completed to processing (step S2507).If the result of this decision is (the step S2507, no) that negates, pond supervisory routine 132 is using next virtual page as subsequent treatment target (step S2508), and execution step S2502.On the other hand, if be sure (step S2507 is) in the result of this decision of step S2507, this asynchronous compression is processed and is stopped.
The above-mentioned explanation that completes fourth embodiment of the invention.Because, according to the 4th embodiment, do not carry out compression/extension writing in processing, correspondingly can reduce CPU123 in the load of writing in processing, and can expect in addition the raising of the processing speed of writing processing.
Be to be understood that for the 4th embodiment, consider following variant embodiment.For example, as shown in Figure 28 A, in virtual page table 2137 ', for each virtual page, territory 335 can be set, wherein record access frequency (with IOPS, the abbreviation of " I/O per second ").In addition, as shown in Figure 28 B, can in nonvolatile memory 130, provide the access frequency supervisory routine of being carried out by CPU123 (2801).This access frequency supervisory routine 2801 monitors the access frequency to each virtual page, and upgrades the access frequency corresponding with virtual page (being the value in the territory 2105 of Figure 28 A) in mode timely.In this variant embodiment, in asynchronous compression is processed, even if the value of the status information corresponding with virtual page as processing target is " not compression " (step S2502 is), still sometimes do not perform step S2503 and subsequent step, as shown in Figure 28 C.Particularly, in step S2502 "Yes" in the situation that, with reference to virtual page table 2137 ', specify the access frequency corresponding with virtual page as processing target, and if access frequency does not perform step S2503 higher than certain predetermined threshold (step S2801 is).Thus, process/read in processing writing of the virtual page high for access frequency, can expect that processing speed can improve owing to not carrying out compression/non-compression.
Although hereinbefore, for example, for the second to the 4th embodiment, mainly illustrate and the difference of the first embodiment, also can implement the combination of any two or more embodiment (in first to fourth embodiment).In addition, replacing by the LU of the write request appointment from main frame 101 or except the LU that the write request by from main frame 101 is specified, can also be the secondary LU that is configured for the destination of copying the data of storing in elementary LU as the virtual LU that writes destination.An example is shown in Figure 27.In other words, from the true LU of elementary LU(or virtual LU) to the virtual LU of secondary LU() copy data element, elementary LU is such as, to be the LU that unit can access from external unit (main frame etc.) by virtual page, secondary LU is the LU paired with elementary LU.Now, compression is as the data element that copies target, the length of the data cell that the data element based on these compressions comprises is selected one or more true pages, therefore the true page of selecting is assigned to as the virtual page that copies destination, and comprises that the data cell of the data element of these compressions is stored in the true page of oneself.If comprise that the length of the data cell of the data element of these compressions is more than or equal to virtual page length, the data cell that comprises the data element before compression is stored in the true page with virtual page length equal length.
Although certain preferred embodiment of the present invention has been described, and does not mean that and think that the present invention is limited to these specific embodiments, under the prerequisite that does not depart from purport of the present invention, can carry out various changes.
For example, in the true page of the first, third and fourth embodiment is selected to process, if do not find the true page satisfying condition, also can select more to grow the true page of one-level.For example, suppose that it is 511kB that the length of data element is write in compression, although then meeting the true page length degree of (be more than or equal to compression and write the shortest true page length degree in the true page length degree of data element) with condition is 512kB, if because the true page of all 512kB length all in use can not be selected such true page, can select more to grow the true page of one-level, for example, there is the true page with virtual page length equal length.
In addition, for example, if not only data element is write in compression, the information (for example data integrity code) of other type is also added data cell to, compared with virtual page length or true page length degree (for example, at the step S802 of Fig. 8, the step S1001 of Figure 10, in the step S1701 of Figure 17 and the step S2001 of Figure 20), by the whole length target as a comparison of data cell.In addition, if be for example more than or equal to the result of virtual page length as the length of data cell, the data element of writing before compression is write in the true page having with virtual page length equal length, if the length of writing data element before compression meets virtual page length, do not add this information (such as data integrity code etc.) of other type, but only the data element of writing before compression is write to true page.In this case, be included in the data integrity code in data element of writing before compression by use, ensured the reliability of writing data element (for example, 8 byte data globality codes can be added in the data of 512 bytes) before compression.

Claims (4)

1. a storage system, comprising:
Controller, for providing virtual LU; And
At least one memory device, for providing the storage that forms storage pool;
Its middle controller is configured to:
In response to receiving write request, the first actual storage region of storage pool is assigned to the virtual storage region in virtual LU,
The storage data relevant with write request in the first actual storage region, and using virtual storage region as the virtual storage region management decompressing,
If wherein the ratio of decompression virtual storage region and virtual LU exceedes predetermined threshold,
The data of controller compression storage,
The second actual storage region of storage pool is assigned to the virtual storage region in virtual LU, and
Store the data of compression into second actual storage region, and using virtual storage region as the virtual management district management compressing.
2. storage system according to claim 1,
Wherein, the length in the second actual storage region is less than the length in the first actual storage region.
3. according to the storage system of claim 1,
Wherein, compression process described in controller determine whether the data of store compressed in the second actual storage region based on parameter or in the second actual storage region the data before store compressed, wherein said parameter is the length of data of compression.
4. according to the storage system of claim 1,
Wherein, storage system is combined with supervisory computer,
If storage system receives order from supervisory computer,
Controller compression storage data,
The second actual storage region of storage pool is assigned to the virtual storage region in virtual LU,
Store the data of compression into second actual storage region, and
Virtual storage region management using virtual storage region as compression.
CN201410126486.3A 2009-01-30 2009-01-30 Storage system Active CN103838525B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410126486.3A CN103838525B (en) 2009-01-30 2009-01-30 Storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410126486.3A CN103838525B (en) 2009-01-30 2009-01-30 Storage system
CN200980144865.2A CN102209953B (en) 2009-01-30 2009-01-30 Storage system and storage control method that compress and store data elements

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200980144865.2A Division CN102209953B (en) 2009-01-30 2009-01-30 Storage system and storage control method that compress and store data elements

Publications (2)

Publication Number Publication Date
CN103838525A true CN103838525A (en) 2014-06-04
CN103838525B CN103838525B (en) 2017-08-08

Family

ID=50802079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410126486.3A Active CN103838525B (en) 2009-01-30 2009-01-30 Storage system

Country Status (1)

Country Link
CN (1) CN103838525B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731534A (en) * 2015-04-22 2015-06-24 浪潮电子信息产业股份有限公司 Method and device for managing video data
CN111813322A (en) * 2019-04-11 2020-10-23 杭州海康威视系统技术有限公司 Method, device and equipment for creating storage pool and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212625A1 (en) * 2005-03-16 2006-09-21 Yutaka Nakagawa Storage system
CN1945520A (en) * 2005-10-04 2007-04-11 株式会社日立制作所 Data management method in storage pool and virtual volume in dkc
EP1895394A2 (en) * 2006-08-25 2008-03-05 QNX Software Systems GmbH & Co. KG File system having variable logical storage block size

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212625A1 (en) * 2005-03-16 2006-09-21 Yutaka Nakagawa Storage system
CN1945520A (en) * 2005-10-04 2007-04-11 株式会社日立制作所 Data management method in storage pool and virtual volume in dkc
EP1895394A2 (en) * 2006-08-25 2008-03-05 QNX Software Systems GmbH & Co. KG File system having variable logical storage block size

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731534A (en) * 2015-04-22 2015-06-24 浪潮电子信息产业股份有限公司 Method and device for managing video data
CN111813322A (en) * 2019-04-11 2020-10-23 杭州海康威视系统技术有限公司 Method, device and equipment for creating storage pool and storage medium

Also Published As

Publication number Publication date
CN103838525B (en) 2017-08-08

Similar Documents

Publication Publication Date Title
CN102209953B (en) Storage system and storage control method that compress and store data elements
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
CN109690681B (en) Data processing method, storage device, solid state disk and storage system
CN103635900B (en) Time-based data partitioning
US20110010496A1 (en) Method for management of data objects
TWI668626B (en) Storage apparatus and method for autonomous space compaction
CN103562914B (en) The type that economizes on resources extends file system
JPWO2016181481A1 (en) Storage system and storage control method
CN107947799B (en) Data compression method and device
CN105786408A (en) Logical sector mapping in a flash storage array
CN110147203B (en) File management method and device, electronic equipment and storage medium
KR20150122533A (en) Method for generating secondary index and apparatus for storing secondary index
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
CN108628542A (en) A kind of Piece file mergence method and controller
CN103530067B (en) A kind of method and apparatus of data manipulation
JP2017162355A (en) Storage controller, storage control method, and storage control program
US11789622B2 (en) Method, device and computer program product for storage management
CN103838525A (en) Storage system
CN115562595B (en) Volume creating method and device, volume reading and writing method and device, and electronic equipment
CN114625318A (en) Data writing method, device and equipment applied to solid state disk
CN103210389A (en) Metadata processing method and apparatus
CN102023925A (en) A solid state disk and the application method thereof
CN101089985A (en) Method for quickly duplicating file
CN116627350A (en) Firmware configuration data management method and related device for solid state disk
CN117170942A (en) Database backup method based on file system snapshot and related equipment

Legal Events

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