An embodiment of the present invention will be described hereinbelow by adopting a flash memory and a hard disk as storage devices (called ‘storage media’ hereinbelow) of a plurality of types by way of example. First, an overview of the embodiment of the present invention will be described.
A storage control device (the subsequently described data archive management device, for example) selects a storage device constituting a data archive destination on the basis of the characteristic of the flash memory and the costs of data archiving and stores data in the selected storage device.
More specifically, for example, the storage control device selects a low-cost storage device from the data archive period and bit costs. For example, warranty period of the hard disk is three years and the warranty period of the flash memory is ten years. Further, suppose that the bit costs are 0.3 dollars for the hard disk and one dollar for the flash memory. Suppose also that the bit costs for data migration are 0.3 dollars.
In this case, when data of a five-year archive period are archived in the hard disk, the hard disk must be exchanged once in order to archive the data for five years because the hard disk has a warranty period of only three years. That is, two purchases of a hard disk are required. Accordingly, because the bit costs of one hard disk are 0.3 dollars, purchasing the hard disk two times means that bit costs of 0.6 dollars are incurred. Further, because the hard disk is exchanged once, costs for a single data migration are incurred. Hence, because the bit costs of the data migration are 0.3 dollars, eventually, hard disk costs of 0.6 dollars and data migration costs of 0.3 dollars are incurred, which means total bit costs of 0.9 dollars. However, even in this case, bit costs are lower than the bit cost of one dollar of the flash memory. Hence, if costs are considered, a hard disk is desirably selected.
As another example, when data of an archive period of seven years are archived in a hard disk, because such archiving involves exchanging the hard disk two times and performing two data migrations, bit costs of 1.5 dollars are eventually incurred. On the other hand, because the bit costs of the flash memory do not vary at one dollar even over an assurance period of seven years, in this case, it is said that the costs of archiving data in flash memory are lower.
As mentioned earlier, the storage control device can be selected as the storage device constituting the data archive destination by considering the costs.
Furthermore, the storage control device obtains the write number of archived data from the size of the archived data and the current write number of the flash memory. Further, the storage control device manages the threshold value of the write number of the flash memory in order to maintain the lifespan of the flash memory. Further, when the write number threshold value of the flash memory is exceeded as a result of writing archived data, the storage control device is able to perform data archiving equivalent to the excess write number while maintaining the lifespan of the flash memory by selecting a flash memory capable of additional separate storage (a flash memory for which the write number threshold value is not exceeded even when the excess write number is added to the current write number).
A few embodiments of the present invention will be described hereinbelow.
A data archive management device 100, a computer device 130, the hard disk storage 110, and flash memory storage 120 are connected to a communication network.
The data archive management device 100 is a computer comprising a CPU 101, a communication interface device (‘I/F’ hereinbelow) 102, an I/O device 103, and a memory 104.
The I/F 102 communicates with the hard disk storage 110, flash memory storage 120, and the computer device 130.
A plurality of computer programs executed by a CPU 101 and data referenced by the CPU 101 are stored in the memory 104. More specifically, for example, a data archive management program 105, a volume function setting program 106, a data migration program 107, archive target data 108, and data management information 109 are stored. The archive target data 108 and data management information 109 are information used by the data archive management program 105, volume function setting program 106, and data migration program 107. When a computer program is the subject hereinbelow, the processing is actually performed by the CPU that executes the computer program.
The I/O device 103 is a device that inputs and outputs information between the CPU 101, I/F 102, and the user.
The computer device 130 is a computer comprising a CPU 131, an I/F 132, an I/O device 133, and a memory 134.
The I/F 132 communicates with the data archive management device 100, hard disk storage 110, and flash memory storage 120 and so forth.
A data transmission program 135 executed by the CPU 131 is stored in the memory 104. The data transmission program 135 transmits data to the data archive management device 100 so that the latter judges which volume of a particular storage data is stored in. Further, the data archive management device 100 determines the storage location of the data and stores the data as is. Otherwise, the data archive management device 100 may determine the storage destination and report same to the computer device 130 and the computer device 130 may store the data in the reported storage destination.
The I/O device 133 input and outputs information between the I/F 132 and user.
The hard disk storage 110 is a storage system comprising a controller 111, an I/F 112, a cache 113, a memory 114, a hard disk volume 118, and a plurality of hard disks 119.
The I/F 112 sends and receives data I/O related to the reading and writing of the computer device 130 and performs communications related to operation requests from the data archive management device 100. Further, a plurality of the I/F 112 may be prepared depending on the type of communication format. For example, when communications related to the data archive management device 100 and related to operation requests thereof are IP (Internet Protocol), an I/F that performs IP-compliant communications is prepared and, when data I/O-related communications are FC (Fibre Channel), an I/F that performs FC-compliant communications may be prepared. Further, as a result of differences in applications and setting differences and so forth, a plurality of the I/F may be disposed even for the same protocol.
The cache 113 is memory that is used in order to improve the performance of the hard disk storage 110. More specifically, the cache 113 temporarily stores write target data that is written from the computer to the hard disk volume 118 (‘write data’ hereinbelow) and read target data that is read from the hard disk volume 118 to the computer (‘read data’ hereinbelow), and so forth.
The hard disk volume 118 is a logical storage medium that is prepared from the storage resources provided by one or a plurality of hard disks 119 and which stores data resulting from the operations of the computer (data archive management device 100, for example). The hard disk volume 118 is sometimes a medium of the hard disk 119 and sometimes a logical volume that holds a plurality of hard disks 119 to implement a RAID configuration volume.
A storage configuration program 115, a storage access monitoring program 116, and storage configuration information 117 are stored in the memory 114. The storage configuration program 115 and storage access monitoring program 116 are executed by the controller 111. The storage configuration information 117 is information that is used by the storage configuration program 115 and storage access monitoring program 116 and is information that can be managed by the hard disk storage 110.
The storage configuration program 115 is a program for managing the configuration of the hard disk storage 110. The storage configuration program 115 has a function that allows a computer such as the data archive management device 100 to identify the hard disk volume 118 via the I/F 112 (program module) and a function for performing data migration between hard disk volumes, and so forth.
The storage access monitoring program 116 is a program for monitoring what kind of access is made to the hard disk storage 110. The storage access monitoring program 116 monitors the number of writes (write number) in units of the hard disk volume 118 and write number for each hard disk 119 constituting the hard disk volume 118.
The flash memory storage 120 is a storage subsystem comprising a controller 121, an I/F 122, a cache 123, a memory 124, a flash memory volume 128, and a plurality of flash memories 129.
The I/F 122 sends and receives data I/O related to the reading and writing of the computer and performs communications related to operation requests from the data archive management device 100 and computer device 130 and so forth. Further, a plurality of the I/F 122 may be prepared depending on the form of communication as per the I/F 112.
The cache 123 is memory that is used in order to improve the performance of the flash memory storage 120. More specifically, the cache 113 temporarily stores write data that are written from the computer to the flash memory volume 128 and read target data that are read from the flash memory volume 128 to the computer, and so forth.
The flash memory volume 128 is a logical storage medium that is provided by the storage resources of a plurality of flash memories 129. The flash memory volume 128 is sometimes a medium of the flash memory 129 and sometimes a logical volume that holds a plurality of flash memory 129 to implement a RAID configuration volume.
A storage configuration program 125, a storage access monitoring program 126, and storage configuration information 127 are stored in the memory 124. The storage configuration program 125 and storage access monitoring program 126 are executed by the controller 121. The storage configuration information 127 is information that is used by the storage configuration program 125 and storage access monitoring program 126 and is information that can be managed by the flash memory storage 120.
The storage configuration program 125 is a program for managing the configuration of the flash memory storage 120. The storage configuration program 125 has a function that allows a computer such as the data archive management device 100 to identify the flash memory volume 128 via the I/F122 and a storage function for performing data migration between flash memory volumes, and so forth.
The storage access monitoring program 126 is a program for monitoring what kind of access is made to the flash memory storage 120. The storage access monitoring program 126 monitors write number in units of the flash memory volume 128 and write number for each storage medium constituting the flash memory volume 128.
In the hard disk storage 110 and flash memory storage 120, the respective constituent elements differ in that the storage media are either hard disks or flash memory, but the hard disk storage 110 and flash memory storage 120 may comprise commonly available constituent elements. Further, the number of volumes illustrated in the respective storages is one but a plurality of volumes can also be installed in the respective storages.
The storage configuration information 117 and 127 can also comprise table groups with the same configuration. The storage configuration information 117 and 127 include a storage media table 200, a parity group 210, and a volume table 220, for example. Here, a parity group is a group constituted by a plurality of storage media which is a unit that constitutes a RAID.
The storage media table 200 has a column 201 in which a storage medium number indicating a number that identifies the storage medium of the hard disk 119 and flash memory 129 is written, a column 202 in which the warranty deadline of the storage medium is written; a column 203 in which the class of storage medium is written, and a column 204 in which the current write number of the storage medium is written. The storage medium number, warranty deadline, storage medium type, and current write number are recorded for each storage medium. The warranty deadline is “Apr. 30, 2007” when the storage medium number is “1”, for example. This represents the fact that Apr. 30, 2007 is the warranty deadline. The warranty deadline is similarly interpreted for the other storage media (for example, the fact that Apr. 30, 2008 is the warranty deadline is represented for the warranty deadline of another storage medium). Further, a value such as HDD or flash memory, for example, is entered as storage medium type. HDD represents a hard disk. Further, when the storage medium is a hard disk, the current write number need not be saved because the value of the current write number is not used in this embodiment.
The parity group table 210 has a column 211 in which the parity group number is written, a column 212 in which the warranty deadline is written, a column 213 in which the total capacity is written, a column 214 in which the free capacity is written, a column 215 in which the storage medium number is written, and a column 216 in which the RAID type is recorded. The parity group number, warranty deadline, total capacity, free capacity, storage medium number, and RAID type are recorded for each parity group.
The parity group number is an identifier that is uniquely assigned in order to identify a parity group formed in the hard disk storage 110 and the flash memory storage 120.
The warranty deadline is the warranty deadline for the quality of the parity group. The warranty deadline of one parity group equals the earliest of the warranty deadlines of the storage media constituting the parity group, for example.
The total capacity is the total volume of data that can be archived in a parity group.
The free capacity is the capacity of the unused archive region of the parity group and has a value obtained by subtracting the amount of data already archived in the parity group (the used storage capacity) from the total capacity.
The storage medium number is an identifier of a storage medium that constitutes the parity group which is represented by the same information as the information recorded in the column 201. For example, the storage media that constitute the parity group “P0” are the storage media with the numbers “1”, “2”, “3”, and “4”. This shows that the parity group is constituted by storage media indicated by the numbers of the storage medium numbers “1”, “2”, “3”, and “4” of the storage media table 200.
The RAID type expresses the level of the RAID (Redundant Array of Independent (or Inexpensive) Disks) of the parity group.
The volume table 220 has a column 221 in which the volume number is written, a column 222 in which the number of the allocated parity group is written, and a column 223 in which the allocated capacity is written. The volume number, allocated parity group, and allocated capacity are recorded for each volume. A volume is a region for storing data. However, in a volume created from a RAID-constituted parity group, even when data is physically distributed between a plurality of storage media, the volume can be logically treated as one region. Further, a volume is sometimes called a logical unit.
The volume number is an identifier that is uniquely assigned in order to identify the hard disk volume 118 and flash memory volume 128 and so forth.
The allocated parity group number represents the number of the parity group to which the hard disk volume 118 and flash memory volume 128 and so forth have be enallocated. The allocated parity group number is the same information as the parity group number written to the parity group table 210.
The allocated capacity is the data capacity allocated to the hard disk volume 118 and flash memory volume 128 and so forth.
Furthermore, when the volume is not a RAID configuration, the parity group table 210 need not be installed and there are no longer any allocated parity group numbers of the volume table. Instead, storage media numbers that correspond with the respective volume numbers and which are added to the volume table 220 can be stored as storage media numbers.
The data management information 109 includes an archive data management information table 400, a cost table 410, and a write threshold value table 420, for example.
The archive data management information table 400 has a column 401 in which the data ID is written, a column 402 in which the archive volume number is written, a column 403 in which the warranty deadline is written, and a column 404 in which the data size is written. The data ID, archive volume number, warranty deadline and data size are recorded for each data recorded in the storage.
The data ID is an identifier that is assigned in order to identify data recorded in the hard disk storage 110 and flash memory storage 120.
The archive volume number is the number of the hard disk volume 118 and flash memory volume 128 in which the data are archived. In order to rapidly specify the archive volume, the number of the parity group or the number of the storage medium or the like may also be stored associated with the information on the archive volume.
The warranty deadline is the deadline by which the data must be archived in the hard disk storage 110 and flash memory storage 120.
The data size is the data size of the archive target data.
The units of the data may be units called files or separately managed metadata and primary data that constitute the files may be the data units. Further, a directory in which files are grouped and all the files thereof may be treated as one data which may be a collection of information of a certain significance known as the content.
The cost table 410 is an example of information on the costs required for data archiving. The cost table 410 includes a column 411 in which the cost target item is written and a column 412 in which the bit cost is written.
The cost target item indicates an item that is the target of data archiving-related costs. Cost target items include “HDD” and “flash memory” as costs when the hard disk 119 and flash memory 129 are used as the storage media and “data migration” which is the cost of performing data migration to another storage medium when the lifespan of a certain storage medium is reached, as shown in the example of the cost table 410.
The bit cost represents the bit cost of the respective cost target items. For example, in the case of a “HDD”, the bit cost is indicated as “0.3 dollars”.
Because the cost target item also includes cases where the costs differ for storage media of the same type, there are also cases where management is performed for each individual storage medium, and each storage medium can be identified by the cost target item. For example, if the formats HDD-A and HDD-B exist for the same HDD, information can be registered in the cost table individually. Further, after the data migration, if there are special costs when the migration source volume is deleted, functions related to the volume data deletion are also cost targets and, therefore, these functions are also registered as cost target items. There are also cases where the values themselves of the storage media and functions and so forth decrease each year. In order to cater to such cases, the bit costs of the individual storage media and functions may be managed for each period.
The write threshold value table 420 is a table for managing storage media obtained by providing write threshold values for data archiving in storage media that perform the data archiving, and the write threshold values. The write threshold value table 420 has a column 421 in which the class of storage medium is written and a column 422 in which the threshold value of the write number related to the storage medium class (‘write threshold value’ hereinbelow) is written.
‘Write threshold value’ as it is used here is the condition for deciding to perform data migration to another storage medium for data archiving when data is written to the target storage medium until the write number is reached. Where the write threshold value is concerned, the write limit number itself that exists in the flash memory may be used as the threshold value, or a value on the order of 80% of the write limit number may be set and used the value at which writes that exceed this value are judged to be dangerous.
According to the example of the write threshold value table 420 (because the example in the table is a threshold value of 5000 times), the value of 5000 times is established as the write threshold value for the flash memory constituting the storage medium. Once the writes exceed 5000 times, the condition for considering archiving the data in another storage medium is fulfilled.
With respect to setting the write threshold value, the write threshold value may be a fixed value but, in order to use the flash memory for a long period, a method that sets the value of the threshold value at regular intervals may also be considered for a certain period. For example, by setting the write threshold value at 500 times for the first year and then increasing the threshold value by 500 every other year, a write threshold value of 5000 times of writing may be established over a ten-year period. The update of the write threshold value may be performed manually by the user but can also be performed automatically by using hardware or software.
A data archive designation screen 500 is an example of a GUI (Graphical User Interface) that is displayed by the data archive management program 105 of the data archive management device 100 when a data archive instruction is received from the user. The data archive designation screen 500 has, for example, a data ID entry field 501, a data-size entry field 502, and an archive deadline entry field 503. There is a Run button 504 that actually issues an execution request and a button 505 that cancels the execution for each of the entry fields 501, 502, and 503. The cancel button 505 may appear after the run button 504 is pushed.
The data archive management program 105 receives the attributes of the archive target data, which are the data ID, data size, and archive deadline via the screen 500. The data ID, data size, and archive deadline input via the screen are each recorded in the archive data management information table 400. For example, when, according to the example in
The respective processes of the flowchart can be executed by the data archive management program 105. The flowchart of
A data archive request is received from the user as a result of the processing of the data archive management program 105 (step 600). The user requests data archiving by means of the data archive designation screen 500 shown in
Instep 601, the data archive management program 105 obtains volume information, parity group information, and storage medium information from the storage configuration information 117 and 127 of the hard disk storage 110, flash memory storage 120 respectively. The data archive management program 105 then moves on to step 602.
In step 602, the data archive management program 105 obtains the write number of the stored archive target data. The write number can be calculated on the basis of the data size that is input, for example. More specifically, for example, if the 20 MB archive target data is written 64 KB at a time, a write number of 320 times is required. The data archive management program 105 then moves to step 603.
In step 603, the data archive management program 105 calculates the archiving costs when a volume is created in a parity group that is obtained in step 601 from the archive deadline of the data archive request obtained in step 600.
The archiving costs are determined by the newly arising bit cost of a volume of the storage medium that is newly introduced when the archive deadline of the volume is exceeded, that is, when the archive deadline of the parity group to which the volume belongs is exceeded, and by the costs of performing data migration from the existing volume to the newly introduced storage medium. More specifically, the current date is Apr. 30, 2006, for example. According to the example of the data archive designation screen 500, the archive period of the archive target data of data ID “D1” is Apr. 30, 2007. When parity groups include “P0”, “P1”, and “P2” as shown in
After step 603 above, the data archive management program 105 moves on to step 604.
In step 604, the data archive management program 105 sequences parity groups with low calculated archiving costs. That is, the data archive management program 105 sequences the parity groups in ascending order so that the parity group with the lowest calculated archiving cost has the highest priority. The data archive management program 105 then moves on to step 605.
According to the above example, it is clear that, where the archiving costs of archive target data “D1” are concerned, the bit cost of parity group “P0” is 0.3 dollars, the bit cost of parity group “P1” is 0.3 dollars, and the bit cost of parity group “P2” is 1.0 dollars. The parity groups “P0” and “P1” have the same costs. However, this sequencing is performed in the subsequent step 605. The parity group “P2” is the third lowest in archiving costs after “P0” and “P1”.
In step 605, the data archive management program 105 performs sequencing of parity groups with the same archiving costs. Here, the data archive management program 105 sequences parity groups whose data archive deadline and parity group archive deadline are close.
For example, the archive deadline of the archive target data of data ID “D1” is Apr. 30, 2007. In step 604, because both parity group “P0” and parity group “P1” have the same archive costs and the same ranking, the data archive management program 105 checks the archive deadlines of the two parity groups. It can be seen from the example of parity group table 210 that the warranty deadline of parity group “P0” is Apr. 30, 2007 and the warranty deadline of parity group “P1” is Apr. 30, 2008. Hence, it is clear that parity group “P0” is closer to the warranty deadline of the archive target data and, therefore, the data archive management program 105 assigns a higher ranking to the parity group “P0”. Hence, the sequence “P0”, “P1”, and “P2” results in steps 604 and 605.
Following step 605, the data archive management program 105 moves to step 606.
In step 606, the data archive management program 105 does not perform the judgment of subsequent step 607 and selects the parity group that comes first in the sequence of steps 604 and 605. The data archive management program 105 then moves to step 607.
For example, if the order is “P0”, “P1”, and “P2”, the data archive management program 105 first selects parity group “P0” and subsequently selects “P1” and then “P2” in the course of this step.
In step 607, the data archive management program 105 checks whether the current write number exceeds the write threshold value when the archive target data is written to the parity group selected in step 606. If the write threshold value is exceeded, the data archive management program 105 moves to step 609 and if the write threshold value is not exceeded, the data archive management program 105 moves to step 608.
For example, when parity group “P0” is judged, it can be seen from the parity group table 210 of the storage configuration information 117 that the storage media constituting parity group “P0” are “1”, “2”, “3”, and “4”. It can be seen from the storage medium table 200 that the storage media “1”, “2”, “3”, and “4” are HDD. It can also be seen from the write threshold value table 420 of the data management information 109 that the data archive management program 105 does not set a HDD-related write threshold value and has no influence on the write threshold value. Accordingly, in this case, the data archive management program 105 judges that the current write number does not exceed the write threshold value and then moves to step 608.
Further, when the parity group “P1” is judged in step 607, because “P1” is also constituted by a HDD, this indicates that there is no effect on the write threshold value. Accordingly, so too in this case, the data archive management program 105 judges that the current write number does not exceed the write threshold value and moves to step 608.
Further, when parity group “P2” is judged in this step 607, the data archive management program 105 specifies that “P2” is constituted by a flash memory. In addition, the data archive management program 105 knows from the write threshold value table 420 that the write threshold value is 5000 times. The data archive management program 105 must then check whether the current write number exceeds the write threshold value when archive target data is written to the parity group “P2”. The data archive management program 105 knows from the parity group table 210 and storage media table 200 that the current write number of the storage media “9”, “10”, “11”, and “12” that constitute parity group “P2” is 4900 times in each case.
Further, it can be seen from the RAID type of the parity group table 210 that the parity group “P2” is a RAID5 configuration. The RAID5 write number of four storage media is a data write for three storage media of the four storage media and a parity write for one storage medium. Hence, a write number that is 4/3 times write number to a normal disk is large (many). More specifically, because data are written sequentially to each one of the storage media, if the write number of the archive target data is 300, for example, the write number to the volume of the parity group is 400 and four storage media are employed for one storage medium. Hence, the write number is ¼ of 400, i.e. 100. Hence, with respect to the data of a write number of 300, in this case, write number to one storage medium is 100 (when writes are performed with this write number, the current write number of the respective storage media is updated by the storage access monitoring program 126).
According to the example of the storage medium table 200 of the storage configuration information 117 of the flash memory storage 120, the current write number of each of the current storage media is 4900 and the data archive management program 105 knows that the current write number of one storage medium is 5000 when archive target data of a write number of 300 are stored as mentioned earlier. Hence, in this case, because the threshold value is still not exceeded, the data archive management program 105 moves to step 608. However, if the data write number is 600, for example, the data archive management program 105 knows that the write number of one storage medium is 200. Hence, in this case, the current write number of one storage medium is 5100 and it is clear, in this case, that the write threshold value is exceeded. Thus, in this case, the data archive management program 105 moves on to step 609.
In step 608, the data archive management program 105 judges whether a volume capable of storing archive target data can be created in the parity group on the basis of the free capacity of the parity group (parity group selected in step 606). The data archive management program 105 judges that archive target data can be stored in the parity group if the size of the archive target data to be stored is smaller than the free capacity of the parity group. If the volume can be created, the data archive management program 105 moves to step 611 and, if not, the data archive management program 105 moves to step 609.
More specifically, for example, when the total capacity of the parity group “P0” is 100 MB, the free capacity is also “100 MB”, and the data size of the archive target data “D1” is 20 MB based on the example of the data archive designation screen 500, the data archive management program 105 judges that data storage is possible because the free capacity is greater than the data size. In this case, the data archive management program 105 moves to step 611. However, if the data size of archive target data “D1” is greater than 100 MB, the data archive management program 105 knows that the archive target data cannot be stored in the parity group “P0”. In this case, the processing moves to step 609.
In step 609, the data archive management program 105 judges that the judgment of step 607 has not been performed for all the parity groups sequenced in step 605. That is, the data archive management program 105 checks whether the judgment has been performed for all the parity groups that are to be judged. If the judgment has been performed for all the parity groups, the data archive management program 105 moves to step 610 and, if not, the data archive management program 105 moves to step 606 and it is judged whether the data can be stored in another parity group.
In step 610, when there is nowhere permitting storage of the archive target data, that is, there is no parity group capable of storing archive target data, the data archive management program 105 presents this result to the user and then ends the processing.
Instep 611, the data archive management program 105 creates a volume for storing the archive target data in the parity group. The size of the volume may be the same as the size of the data.
For example, the archive target data “D1” has a data size of 20 MB. The data archive management program 105 creates a volume with a data size of 20 MB in parity group “P0” which is judged as being capable of storing archive target data “D1”. In this case, in the storage configuration information 117, the free capacity of the parity group changes from 100 MB to 80 MB. Further, information on the new volume “L1” is stored in the volume table 220. The update of the storage configuration information 117 is performed as a result of the data archive management program 105 reporting updated information to the storage configuration program 115 and the storage configuration program 115 writing the updated information in a predetermined position of the storage configuration information 117.
In step 612, the data archive management program 105 stores archive target data to the volume created in step 611. Further, the data archive management program 105 registers the ID of the stored archive target data, the ID of the volume of the archive destination, and the archive deadline and data size in the archive data management table 400 of the data management information 109. The processing is terminated after step 612 has finished.
In the above processing, the data archive management program 105 creates a volume each time archive target data is stored. However, an existing volume may be selected and data may be stored in the selected volume. In this case, in step 608, before a volume capable of storage can be created, the data archive management program 105 checks whether free capacity for writing the archive target data exists in the existing volume. When the judgment is performed, the free capacity of each volume must be registered in the volume table 220 of the storage configuration information 117 and 127. The free capacity of the volume is also dependent on the host that stores the archive target data and the management conditions of the data archive management device, for example. Hence, this information may be registered in the data management information 109 in accordance with the ID of the volume. If free capacity of the volume exists, the data archive management program 105 may perform step 612 and, if no free capacity exists, the data archive management program 105 may check whether there is a volume for storing the archive target data among all the volumes. In this case, when the checking order starts with the volume with the largest free capacity, the number of checks is small.
Furthermore, in
The first embodiment was described hereinabove. A computer program installed in the data archive management device 100 may be in the storage 110, 120 or in the computer device 130. Further, in this first embodiment, the data migration program 107 checks at regular intervals for the existence of a storage medium for which the archive deadline of the archive target data exceeds the warranty deadline of the storage medium and whose warranty deadline is the current time. If such a storage medium is found, the data in the storage medium can be caused to migrate to another storage medium. The selection of the other storage medium can be performed on the basis of the cost table 410.
According to the first embodiment, in a storage system in which a hard disk and a flash memory are mixed, the lifespan of the flash memory is not exhausted and data archiving that corresponds with the archive period of the archive target data is possible. Further, data archiving costs can be reduced.
The second embodiment of the present invention will be described hereinbelow. Further, differences from the first embodiment will mainly be described below and descriptions of points in common with the first embodiment will be omitted or simplified (the same is true of the other embodiments).
In the second embodiment, the configuration of the archive data management information table 400 differs from that of the first embodiment. Hence,
In addition to the columns described in the first embodiment, the archive data management information table 400 has a column 701 in which the access pattern of the data is recorded, a column 702 in which the Read tendency that represents the data read tendency is recorded, and a column 703 in which a Write tendency that represents the data write tendency is recorded.
The access pattern is the data access pattern and, more specifically, is shown as either sequential or random. The Read tendency expresses the data read tendency by means of an expression such as ‘large’ or ‘small’ (‘many’ or ‘not many’) ‘Large’ or ‘small’ maybe judged by setting a certain read number as the threshold value. The Write tendency expresses the data write tendency by means of an expression such as ‘large or small’ ‘Large’ or ‘small’ maybe judged by setting a certain read number as the threshold value. At least one of the access pattern, Read tendency and Write tendency may be set manually and the data archive management program 105 may monitor the status (access status) of the data IO with respect to the volume and may perform a timely update in accordance with the monitoring result.
The data characteristic table 710 has a column 711 in which the data access pattern is recorded, a column 712 in which a read focus or write focus is recorded, a column 713 in which the recommended storage medium for the access pattern and Read/Write focus value is recorded, and a column 714 in which the priority of the recommended storage medium is recorded. According to
The data characteristic table 710 is used to obtain the recommended storage medium from a data characteristic such as the access pattern or Read/Write focus. For example, if the access pattern is “random” and the Read/Write focus is “Read focus”, it is clear that the recommended storage medium is the flash memory. In reality, because no consideration of the hard disk seek time or rotation wait time is required for the flash memory, the random read easily produces the flash memory characteristic and the IO processing is high-speed processing. The table is used in the subsequent flowchart and, as a result of the user's designation of the data characteristic and the actual data access conditions, data is stored in the recommended suitable storage medium.
In addition to the entry fields described in the first embodiment, the data archive designation screen 500 displays an access pattern entry field 801, a Read/Write focus entry field 802, and an entry field 803 indicating whether there is a focus on cost. The user is able to enter the access pattern, indicate whether the application of the volume has a Read focus or a Write-focus, and specify the existence of a cost focus. In the case of a Read focus, the value “Read focus” is entered, and, in the case of a Write focus, “Write focus” is entered. These values are sometimes not designated. The cost focus existence is either high or low for the volume that stores archive target data but, in this value, Yes is registered when the archive target data is to be treated with an emphasis on the archiving cost. If this is not the case, no input is made or No is entered.
The data archive information acquisition processing of step 900 represents the processing of steps 600, 601, and 602 of the flowchart in
In step 901, the data archive management program 105 judges whether the user request is cost-focused. The existence of a cost focus can be judged from the cost focus existence entered in the data archive designation screen 500 of
The parity group sequencing of step 902 represents steps 603, 604, and 605 of the flowchart of
The processing of the data archiving processing 1 of step 903 represents step 606 of the flowchart in
In step 904, the data archive management program 105 judges whether the storage medium is specified by a data characteristic. This is determined from the access pattern and Read/Write focus entered in the data archive designation screen 500 of
For example, according to the examples of
Further, in the case of the user request of
Instep 905, the data archive management program 105 creates a list of only the specified storage media in the parity group, in other words, selects a parity group constituted by specified storage media. That is, here, although the same processing as that of steps 603, 604, and 605 in the flowchart of
In the data archive processing 2 of step 906, step 606 and subsequent processing is performed on the sequence of parity groups created in step 905.
As a result of this processing, data archiving can be executed by selecting data archive storage media and parity groups that also conform to the data characteristic instead of performing data archiving based on archiving costs and write restrictions and so forth and by determining a suitable data archive destination. Further, in the selection of the parity groups, parity groups with the lowest costs may be selected among the parity groups that conform to the data characteristic, for example.
In step 1000, the data migration program 107 obtains the access characteristic of archive target data, that is, obtains an indication of whether the pattern of access to the archive target data is sequential or random and of whether the data has a Read focus (a lot of reading) or a write focus (a lot of writing) The data migration program 107 monitors the archive target data access characteristic such as whether the archive target data is obtained at regular or irregular intervals. The data migration program 107 then moves on to step 1001.
In step 1001, the data migration program 107 judges whether the currently allocated volume is suited to the access characteristic. If the volume is suited to the access characteristic, the data migration program 107 moves to step 1002 and if the volume is not suitable, the data migration program 107 ends the processing.
For example, the volume in which the archive target data of data ID “D3” is stored is L3 in the data archive management table of
Here, when the archive target data “D3” is updated to a Write focus, the data migration program 107 knows that the flash memory no longer conforms to this characteristic. Hence, in this case, the data migration program 107 moves to step 1002 because the volume is not suited to the access characteristic. If the archive target data “D3” retains a Read focus, because there is no particular change in the access characteristic, the data migration program 107 judges that the flash memory volume is also suited to the characteristic and ends the processing.
In step 1002, the data migration program 107 performs archive medium selection processing. This is the processing described earlier, i.e. the processing up until immediately before the judgment is Yes in step 608 of
In step 1003, the data migration program 107 judges whether the current storage destination volume and the storage destination volume selected in step 1002 are the same storage destination volume. If these volumes are indeed the same, the data migration program 107 ends the processing and, if the volumes differ, the data migration program 107 moves to step 1004.
Because the storage destination is different in step 1004, the data migration program 107 asks the user whether data are to be transferred to the newly selected volume. When a response to the effect that no data transfer is to be performed is received from the user, the data migration program 107 ends the processing without doing anything in particular. When a response to the effect that data are to be transferred is received from the user, the data migration program 107 moves to step 1005. The data migration program 107 may also make a determination in step 1004 without asking the user.
In step 1005, the data migration program 107 stores archive target data in the newly selected storage destination volume. Following this processing, the data migration program 107 ends the overall processing operation of
In addition to when the access characteristic is updated and a storage medium is added and so forth, the flow above can also be applied when there is a change in a value of the cost table 410. If there is a change to the cost table when a storage medium is added, this may lead to the data migration program 107 starting the processing after step 1002. Further, an indication of whether there is a cost focus may also be stored in addition to the archive target data. In this case, the step 1002 advances the processing of the flowchart of
Further, in the above flow, when the archive target data stored in the current storage destination volume is transferred to the newly selected storage destination volume, the data migration program 107 may delete the archive target data from the current storage destination volume. However, when the current storage destination volume is a flash memory volume, the processing to delete the data is processing to bury data of a predetermined code. Hence, the archive target data of the transfer source may need not be deleted also so that there is no shortening of the lifespan of the flash memory. Here, the transfer source archive target data are unnecessary and, therefore, the data size of the archive target data may be the free capacity and the other archive target data may be overwritten. The archive target data can actually be dispensed with by such overwriting.
In the third embodiment, in addition to the elements described in the second embodiment, a volume function table 1100 and a volume function correspondence table 1110 are also included in the data management information 109.
The volume function table 1100 has a column 1101 in which the volume function (in other words, the application) is written, a column 1102 in which the access pattern of the volume function is written, and a column 1103 in which the Read/Write focus of the volume function is written.
Here, volume functions include, for example, a snapshot pool that indicates a volume group for storing a snapshot differential, a journal pool constituting a volume group for managing information corresponding with the volume update history and the data update order and so forth, and a dynamic volume expansion pool constituting a volume group that is used by a function to expand the capacity of a volume dynamically in accordance with writing. Further, the example in
Storage media may be directly allocated in the volume function table rather than the access pattern and Read focus items and so forth. That is, instead of the respective columns of volume function, access pattern and Read/Write focus being prepared for the volume function table 1100, a column in which attributes relating to the storage medium are recorded may be prepared. Further, the storage medium class, namely, “HDD” and “flash memory”, for example, may be stored as the attributes recorded in the column. Further, when the volume function is snapshot pool or journal pool, for example, “HDD” is recorded as the storage medium class and, as a result, when snapshot pool or journal pool is set, the respective volumes constituting the respective pools may be hard disk volumes. In addition, when the volume function is a dynamic volume expansion pool, “flash memory” is recorded as the storage medium class and, as a result, when the dynamic volume expansion pool is set, the respective volumes constituting the pool may be flash memory volumes.
The volume function correspondence table 1110 is a table for managing volumes allocated to the respective volume functions and identifiers of the pools constituted by each function. The volume function correspondence table 1110 has a column 1111 in which the volume function is written, a column 1112 in which the ID constituting the identifier of the respective function pools is written, and a column 1113 in which the IDs of the respective volumes allocated to the pool of the respective functions is recorded. For example, according to the example in
For example, the volume function setting program 106 is able to display a volume function designation screen 1200 in response to a predetermined request from the user. The volume function designation screen 1200 has an entry field 1211 for the type of volume function, an entry field 1212 for the size (pool capacity) required by the volume setting, a run button 1213 which is a button for issuing an instruction to set the volume function, and a button 1214 for canceling the execution.
The number of the existing volumes being used may be designated instead of a size designation in the size entry field 1212. In this case, the volume function setting program 106 checks whether the characteristic of the volume corresponding with the designated number satisfies the designated volume function and, when it is judged that the function is satisfied, the volume function setting program 106 is able to include the designated volume in the pool of the designated volume function.
Furthermore, when no particular volume function is added when the volume is set, the item indicating the data ID are set as the volume ID in
Furthermore, data migration of information on the respective volume functions to another storage or the like is sometimes performed. In this case, by designating information on the migration origin instead of the size, the size of the migration source is handed over and the volume of the migration destination maybe set by the subsequent flowchart of
In step 1300, the volume function setting program 106 receives volume function settings via the screen 1200 of
In step 1301, the volume function setting program 106 obtains the storage configuration information 117 and 127 and moves to step 1302.
In step 1302, the volume function setting program 106 obtains the information recorded in the data characteristic table 710 and information recorded in the volume function table 1100 from the data management information 109. Thereafter, the volume function setting program 106 moves to step 1303.
In step 1303, the volume function setting program 106 judges whether the flash memory corresponds to the volume characteristic. If the flash memory corresponds with the characteristic, the volume function setting program 106 moves to step 1304 and, if the HDD corresponds with the characteristic, the volume function setting program 106 moves to step 1305.
For example, the volume function setting program 106 knows from the obtained information that the dynamic volume expansion volume has a random access pattern and a Read focus (See
In step 1304, the volume function setting program 106 selects the storage medium for setting the volume as the flash memory in accordance with the results of step 1303 and then moves to step 1306.
In step 1305, the volume function setting program 106 selects a storage medium that is not flash memory as the storage medium, that is, a hard disk. Thereupon, if the archive period of the volume setting itself is fixed, the archiving costs may be considered and it may be judged which storage medium is to be the target of cost reductions. This judgment is the same as that of the flowchart of
In step 1306, the volume function setting program 106 judges whether it is possible to create a volume that satisfies the designation of step 1301 by means of the selected storage medium, that is, whether the size of the designated volume can be secured. The volume function setting program 106 moves to step 1307 if a size permitting creation of the volume can be secured and moves to step 1308 if not. The judgment of step 1306 can be made, for example, by judging whether the free capacity of the total of the storage medium group comprising the selected storage medium is equal to or more than the size of the designated volume.
In step 1307, the volume function setting program 106 creates a volume on the basis of information obtained in step 1301 and makes settings so that the volume functions can be executed. The volume function setting program 106 then ends the processing.
In step 1308, the fact that a size permitting creation of the volume does not exist is reported to the user. The processing is then ended.
Also when a volume is set, this processing allows a storage medium with a volume function to be selected in accordance with the characteristic of the storage medium and allows a volume to be set. Further, in a case where volume migration is set by the designation of
The fourth embodiment comprises a hard disk/flash memory mixed storage 140 instead of the hard disk storage 110 and flash memory storage 120. That is, a plurality of hard disks 119 and a plurality of flash memory 129 are provided in one storage 140. As a result, both the hard disk volume 118 and flash memory volume 128 are provided in one storage 140. Further, the reference numerals 141 to 147 each have the same functions as the reference numerals 111 to 117. Further, the functions of the data archive management device 100 maybe applied to the hard disk/flash memory mixed storage.
In the fifth embodiment, a virtualization device 150 is installed between the data archive management device 100 and the hard disk storage 110 and flash memory storage 120. The data archive management device 100 accesses the hard disk storage 110 and flash memory storage 120 via the virtualization device 150. The data archive management device 100 may also connect to the hard disk/flash memory mixed storage 140 shown in the fourth embodiment in addition to accessing the hard disk storage 110 and flash memory storage 120.
The virtualization device 150 is a device that provides a host (the data archive management device 100, for example) with the storage resources of the hard disk storage 110 and flash memory storage 120 as if these resources were the host's own storage resources. From the perspective of the virtualization device 150, the storage 110 and 120 are so-called external storage. The virtualization device 150 comprises a controller 151, an I/F 152, a cache 153, and a memory 154.
A virtualization configuration program 155, a storage access monitoring program 156, and storage configuration information 157 are stored in the memory 154. The virtualization configuration program 155 and storage access monitoring program 156 are executed by the controller 151. The storage configuration information 157 is information used by the virtualization configuration program 155 and storage access monitoring program 156.
The virtualization configuration program 155 provides a computer such as the data archive management device 100 with the volumes of the hard disk storage 110, flash memory storage 120, and hard disk/flash memory mixed storage 140 illustrated by the fourth embodiment as virtualized volumes. The virtualization configuration program 155 has a function for obtaining a volume of the virtualization device by virtualizing the hard disk volume 118 and flash memory volume 128 and permitting identification of same by a computer such as the data archive management device 100 via the I/F 152, and a storage function for performing data migration between the hard disk volume 118 and flash memory volume 128 and so forth.
The storage access monitoring program 156 is able to monitor what kind of access is made to which volume of the hard disk storage 110, flash memory storage 120, and the hard disk/flash memory mixed storage 140 illustrated by the fourth embodiment.
The computer system above is also able to manage the hard disk volume 118 and flash memory volume 128 and so forth by applying the tables and programs of at least one embodiment among the first to third embodiments. Further, the functions of the data archive management device 100 may be applied to the virtualization device 150.
In the sixth embodiment, the flash memory 129 is defined in the cache 133. Because the flash memory 129 has the same semiconductor memory as the cache, a case where a cache exists may also be considered. In such a configuration, the flash memory volume 128 can be defined in the cache. Further, the reference numerals 161 to 167 have the same functions as those of the reference numerals 111 to 117 respectively. The functions of the data archive management device 100 may also be applied to a flash memory cache storage 160.
In the seventh embodiment, the functions of the data archive management device 100 are applied to a switch device instead of the virtualization device 150 of the fifth embodiment.
A switch device 170 is a switch device of a fiber channel network, for example. The switch device 170 has a controller 171, an I/F 172, a cache 173, and a memory 174. The memory 174 stores a data archive management program 175, a volume function setting program 176, a data migration program 177, archive target data 178, and data management information 179. That is, the functions of the data archive management device 100 are applied to the switch device 170.
The embodiment of the present invention and a few embodiment examples were described herein above but this embodiment and these embodiment examples only serve to illustrate the inventions of the present invention, there being no intention to limit the scope of the present invention to this embodiment and these embodiment examples. The present invention can also be implemented in a variety of other forms without departing from the spirit thereof.
For example, when the storage medium is selected, if the access pattern is random, the flash memory may be selected and, when the access pattern is sequential, the hard disk may be selected. This is because, when the access pattern is random, the head of the hard disk performs a lot of seeking. However, in this case, when “read focus” is set in addition to the access pattern “random”, the flash memory may be selected. On the other hand, when “write focus” is set in addition to the access pattern “sequential”, the lifespan of the flash memory when writing is produced is shorter and, therefore, the hard disk may be selected. That is, when both the access pattern and the Read/Write focus are set, the recommended storage medium is set with the priority on the Read/Write focus and, in the absence of a Read/Write focus, the storage medium may be selected depending on whether the access pattern is random or sequential.
In a first embodiment of the control device according to the present invention, the storage device of the first type is a storage device of a type having restrictions on the write number. A fourth acquisition module for acquiring a write number threshold value of the storage device of the first type; a calculation module for calculating the write number produced when the archive target data is written to the storage device of the first type on the basis of the data size of the archive target data; and a fifth acquisition module for acquiring the current total write number of each of a plurality of the storage devices of the first type are further provided. When the storage device of the first type is selected, the selection module selects storage devices of the first type for which the sum of the calculated write number and the total write number is equal to or less than the write number threshold value.
In the second embodiment, the storage system according to the first embodiment has a plurality of parity groups. Each of the plurality of parity groups is constituted by two or more of the storage devices of the first type. The archive target data are stored distributed to storage devices of the first type that constitute the parity groups. The selection module selects, when storage devices of the first type are selected, a parity group for which each of the two or more storage devices of the first type that constitute the parity group are at or below the write number threshold value from among the plurality of parity groups.
In the third embodiment, the second embodiment is further provided with a sixth acquisition module for acquiring the RAID level of each of the plurality of parity groups. The calculation module calculates the write numbers of the respective storage devices of the first type that constitute the respective parity groups on the basis of the respective RAID levels thus acquired.
In the fourth embodiment, the storage device of the first type is a flash memory (may also be another type of storage device having write number restrictions such as a DVD). The storage device of the second type is a hard disk.
In the fifth embodiment, a seventh acquisition module for acquiring a data access characteristic that constitutes the access characteristic of the archive target data is further provided. The selection module selects a storage device of a type having a device access characteristic that is suited to the acquired data access characteristic and for which the total cost is minimum from among the storage devices of the plurality of types. The device access characteristic is the access characteristic of the storage device.
In the sixth embodiment, according to the fifth embodiment, the data access characteristic and the device access characteristic are at least one of an access pattern and a read priority or write priority.
In the seventh embodiment, according to the sixth embodiment, the storage device of the first type is a storage device of a type having restrictions on the write number. The selection module selects a storage device of the first type when the data access characteristic and the device access characteristic are read priority and selects a storage device of the second type in the case of a write priority.
In an eighth embodiment, according to the sixth embodiment, the access pattern includes random access and sequential access. The selection module selects a storage device of the first type when the data access characteristic and the device access characteristic are random access, and selects a storage device of the second type in the case of sequential access.
In a ninth embodiment, according to the eighth embodiment, the storage device of the first type is a storage device of a type having restrictions on the write number. The selection module selects a storage device of the second type when the data access characteristic and the device access characteristic are random access and write priority.
In a tenth embodiment, according to the eighth embodiment, the storage device of the first type is a storage device of a type having restrictions on the write number. The selection module selects a storage device of the first type when the data access characteristic and the device access characteristic are sequential access and read priority.
In an eleventh embodiment, according to the fifth embodiment, a monitoring module for monitoring the access characteristic with respect to the archive target data; a first judgment module for judging whether the access characteristic obtained by the monitoring and the device access characteristic of the selected storage device differ; and a data migration module are further provided. When it is judged that the access characteristic obtained by the monitoring and the device access characteristic of the selected storage device differ, the selection module selects the storage device of a type having a device access characteristic suited to the access characteristic obtained by the monitoring from among the storage devices of the plurality of types. The data migration module performs data migration from the selected storage device to a storage device having a device access characteristic suited to the access characteristic.
In a twelfth embodiment, a second judgment module for judging whether there is a cost focus is further provided. When it is judged that there is no cost focus, the selection module selects a storage device of a type having a device access characteristic suited to the acquired data access characteristic from among the storage devices of the plurality of types. The device access characteristic is the access characteristic of the storage device.
In a thirteenth embodiment, a reception module for receiving a designation of a volume function and a logical volume to which the volume function is assigned from the user; an eighth acquisition module for acquiring an access characteristic corresponding with the designated volume function; a specification module for specifying a storage device that constitutes the designated logical volume from among the plurality of storage devices; a third judgment module for judging whether the access characteristic of the specified storage device is suited to the acquired access characteristic; and a volume function assignment control module that does not assign the volume function to the designated logical volume when it is judged that the access characteristic of the specified storage device is not suited to the acquired access characteristic are further provided.
In a fourteenth embodiment, the control device is a host device of the storage system which is connected to a virtualization device that provides a plurality of the storage devices of the first type and a plurality of the storage devices of the second type of the storage system as if the storage devices of the first and second types were the virtualization device's own storage resources.
In a fifteenth embodiment, the storage system comprises a cache memory for temporarily storing data that are written to the storage devices or read from the storage devices of the storage system by the host device of the storage system, and the cache memory comprises a plurality of the storage devices of the first type.
In a sixteenth embodiment, the control device is a switch device that is interposed between the host device of the storage system and the storage system.
A control device according to another aspect of the present invention comprises an acquisition module for acquiring a data access characteristic which is an access characteristic of archive target data constituting a target that is archived by the storage system; and a selection module for selecting a storage device of a type having a device access characteristic suited to the acquired data access characteristic from among the storage devices of the plurality of types. The device access characteristic is the access characteristic of the storage device. The access characteristic is at least one of sequential access or random access, and a read priority or write priority.
A control device according to yet another aspect of the present invention comprises a reception module for receiving a designation of a volume function and a logical volume provided with the volume function from a user; an acquisition module for acquiring an access characteristic that corresponds with the designated volume function; a specification module for specifying from among the plurality of storage devices a storage device that constitutes the designated logical volume; a judgment module for judging whether the access characteristic of the specified storage device is suited to the acquired access characteristic; and a control module that does not provide the designated logical volume with the volume function when it is judged that the access characteristic of the specified storage device does not suit the acquired access characteristic. The access characteristic is at least one of sequential access or random access, and a read priority or write priority. The volume function is at least one of a function for storing differential data produced by the snapshot management; a function for storing the update history of the first logical volume; and a function that is dynamically allocated to the second logical volume in accordance with writing with respect to the second logical volume.
These control devices may be a host device of the storage system (a host computer that issues I/O commands to the storage system or a management computer that manages the storage system, for example), for example, and may be provided in the storage system or provided in an intermediate device that is provided between the storage system and the host device. Alternatively, the respective parts of the control devices may be provided distributed to at least two of the host device of the storage system, the intermediate device, and the storage system.
The respective parts of each of the control devices can be implemented by hardware (a circuit, for example), computer programs run by a processor (a CPU, for example), or a combination of hardware and computer programs (a portion of a certain part is executed by the hardware while the remainder is executed by a computer program, for example). Each of the computer programs can be read from the storage resources (memory, for example) provided in a computer machine. The storage resources can also be installed via a recording medium such as a CD-ROM or DVD (Digital Versatile Disk) or the like or can be downloaded via a communication network such as the Internet or a LAN.
Number | Date | Country | Kind |
---|---|---|---|
2006-183710 | Jul 2006 | JP | national |