CLAIM OF PRIORITY The present application claims priority from Japanese application P2004-116988 filed on Apr. 12, 2004, the content of which is hereby incorporated by reference into this application.
BACKGROUND It is related with a storage system, and more particularly to a data storage system that properly selects a physical drive in which data is stored.
In recent years, the amount of data that is dealt with in a computer system has been remarkably increasing. In order to record a large amount of data, a disk array system is widely employed. A disk array system is an assembly of a plurality of disk drives and has the features that the capacity is large, and the performance, the reliability, and the availability are high.
Also, in recent years, a Fibre Channel (FC) has appeared as an interface between a host computer and a peripheral device such as a disk device. As a result, it becomes easy that a plurality of host computers and a plurality of storage devices are connected to each other through FC cables to structure a computer system. With this structure, data is commonly used between the respective host computers, and a network load can be reduced as compared with the conventional structure.
As described above, in a system where a large number of disk drives are connected to each other, when data is stored, it is necessary to assign the disk drive in which the data is stored.
JP 2001-142648 A discloses a method of assigning a disk drive in which data is recorded according to a required capacity, performance, reliability, or the like.
SUMMARY In a system including a large number of disk drives as described above, each of the disk drives has a set warranty period. In order to prevent the data disappearance due to the failure of a disk drive, it is necessary that a disk drive that has gone over the warranty period be removed rapidly and replaced with a new disk drive. In this situation, data to be stored in the new disk drive among the data that has been stored in the original disk drive has to be copied to another disk drive. Such a copy delays a time required for replacement of the disk drive, consumes a hardware resource, and adversely affects another affair. Accordingly, it is desirable to appropriately arrange the data in advance so as to reduce the number of times of copying the data.
According to the present invention, there is provided a storage system including: a storage device having a plurality of disk drives that stores data; and a data storage managing device which is connected to the storage device and has a data storage managing module that manages the storage of the data in the storage device, in which the data storage managing module compares a retention date of the data to be stored with a warranty expiration date of the disk drive, selects a disk drive that stores the data at the result of the comparison, and stores the data in the selected disk drive.
According to the present invention, it is possible that data be appropriately arranged within the storage device, and the hardware resource be effectively used.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram of a storage system according to a first embodiment of the present invention.
FIGS. 2A to2C are explanatory diagrams of data and so on which are recorded in a memory.
FIG. 3 is a flowchart of a data storing process which is executed by a data storage managing program.
FIG. 4 is a flowchart of a drive removing process which is executed by a drive removal program.
FIG. 5 is an explanatory diagram of a display screen of an input and output device of the data storage managing device.
FIG. 6 is an explanatory diagram of a drive-by drive data list window.
FIG. 7 is an explanatory diagram of a drive removal window.
FIG. 8 is a block diagram of a storage system according to a second embodiment of the present invention.
FIG. 9 is an explanatory diagram of a parity group and a logical unit.
FIGS. 10A and 10B are explanatory diagrams of data and so on which are recorded in a memory of the data storage managing device according to this embodiment.
FIGS. 11A and 11B are explanatory diagrams of data and so on which are recorded in a memory of a storage subsystem according to this embodiment.
FIG. 12 is a flowchart of a data storing process which is executed by the data storage managing program.
FIG. 13 is a flowchart of a logical unit assigning process which is executed by a logical unit assigning program.
FIG. 14 is a flowchart of a logical unit assignment executing process which is executed by a logical unit assignment executing program.
FIG. 15 is a flowchart of a parity group information notifying process which is executed by a parity group information notifying program.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Now, a description will be given in more detail of preferred embodiments of the present invention with reference to the accompanying drawings.
FIG. 1 is a block diagram showing a storage system according to a first embodiment of the present invention.
The storage system shown inFIG. 1 is made up of a data storage managingdevice101, a plurality ofdrive devices112, and acable117 that connects those devices to each other. The storage system is connected to anothercomputer118 so as to communicate with thecomputer118 through anetwork116.
The data storage managingdevice101 includes: a control module (CPU)102 that executes various programs which are recorded in amemory104; an input andoutput device103 that is used by a user to input and output information; thememory104 in which various programs, data, and information are recorded; an interface (I/F)111 that controls communication with each of thedrive devices112; and a network interface (I/F)110 that controls communication which is conducted with thecomputer118 through thenetwork116.
Thememory104 records a datastorage managing program105, adrive removal program106, a data to be stored107, adrive device information108, and a storeddata managing information109. They will be described in detail with reference to FIGS.2 to4.
Each of thedrive devices112 includes: adisk drive114 that stores data; aninterface115 that communicates with the data storage managingdevice101; and acontrol device113 that controls the operation of those devices.
Thenetwork116 is, for example, an LAN, and connected with another computer (not shown).
Thecable117 may be formed of a metal cable or an optical fiber, and connects the data storage managingdevice101 and thedrive devices112. Communication using a protocol such as an SCSI or a Fibre Channel (FC) is conducted through thecable117. The data storage managingdevice101 and thedrive devices112 may be connected directly to each other with thecable117 as a transmission medium, or connected through a network.
Thecomputer118 includes: a control module (CPU)119 that executes a program which is recorded in thememory104; an input andoutput device120 that is used by a user to input and output information; amemory121 in which various programs, data, and information are recorded; and a network interface (I/F)123 that controls communication which is conducted with the data storage managingdevice101 through thenetwork116.
Thememory121 stores at least a data transmitprogram122. Thedata transmit program122 transmits the data to be recorded in thedrive devices112 to the data storage managingdevice101. The transmission may be conducted by a data unit or a batch process.
Thecomputer118 is, for example, an E-mail server. In this case, thememory121 records a program (not shown) which realizes a function as the E-mail server. Also, the data which is transmitted by thedata transmit program122 is, for example, an E-mail Archive.
Also, the data storage managingdevice101 may provide a function as thecomputer118. That is, the data storage managingdevice101 may be a computer (computing machine) to indicate write and read of data with respect to thedisk drives114 to thedrive devices112. For example, a program (not shown) that realizes a function as the E-mail server is recorded in thememory104 of the data storage managingdevice101, and when thecontrol module102 executes the program which is recorded in thememory104, the datastorage managing device101 realizes a function as the data storage managing device that manages the storage of the data which is obtained from another computer connected to thenetwork116, and a function as the E-mail server.
Also, when another program is recorded in thememory104 and executed by thecontrol module102, the data storage managingdevice101 can realize the functions except the function as the E-mail server. Also, it is possible that hardware necessary to realize those functions be added to the data storage managingdevice101. In this manner, the data storage managingdevice101 can provide the functions except the function as the data storage managing device by addition of appropriate hardware and software.
FIGS. 2A to2C are explanatory diagrams of data and so on which are recorded in thememory104.
FIG. 2A is an explanatory diagram of the data to be stored107.
The data to be stored107 is data which is temporarily stored in thememory104, and is made up of adata ID201, adata size202, aretention period203, and a datamain body204.
Thedata ID201 is an identifier assigned to identify data which are recorded in thedrive devices112, and is uniquely determined in thedrive device112 which is managed by the datastorage managing device101.
Thedata size202 is a data size of the data to be stored107, and structured by 20 MB (megabyte) in an example shown inFIGS. 2A to2C.
Theretention period203 is a term during which the data has to be stored in thedrive devices112 after the data has been recorded in thedrive devices112. The term may be determined by the computer, application software, an OS, or a user that produces that data. Also, the datastorage managing program105 may determine the term according to a policy that decides theretention period203 depending on the kind of data or the kind of application software that prepares the data. For example, in the case where E-mail data is stored, theretention period203 is set to one year. In the example shown inFIGS. 2A to2C, theretention period203 is set to two years.
The datamain body204 is data that is prepared by another computer (not shown) which is connected to thenetwork116 and obtained to be stored in thedrive devices112 by the datastorage managing program105. The datamain body204 is a file such as a document or an E-mail. Also, the datamain body204 may be data that another computer requires the datastorage managing device101 that data be stored in thedrive devices112.
FIG. 2B is an explanatory diagram of thedrive device information108.
Thedrive device information108 is made up of adrive number205, awarranty expiration date206, atotal capacity207, and afree capacity208, the information being provided in each of thedrive devices112.
Thedrive number205 is an identifier that is uniquely assigned to identify therespective disk drives114 which are disposed in the drive-devices112.
Thewarranty expiration date206 is a warranty expiration date of therespective disk drives114 disposed in thedrive devices112, and is determined according to a warranty period which is determined by a manufacturer of the disk drives114, application conditions of the disk drives114, and so on. It is necessary that thedisk drive114 that has passed over thewarranty expiration date206 be rapidly removed and replaced with anew disk drive114. It is possible that the warranty expiration date be not set in each of the disk drives114 but set with each of thedrive devices112 as a unit.
Thetotal capacity207 is a total amount of data which can be stored in each of the disk drives114.
Thefree capacity208 is a capacity of unused data storage region of adisk drive114, and a value obtained by subtracting the amount of data that has been already stored in thedisk drive114 from thetotal capacity207.
Thedrive device information108 is initialized by the user through the input andoutput device103 when each of the disk drives114 is connected to the datastorage managing device101. Then, thedrive device information108 is referred to by the datastorage managing program105 and thedrive removal program106.
Also, it is possible that the manufacturer of each of the disk drives114 record the disk drive information including the warranty period, capacity, and so on of thedisk drive114 in a ROM or the like (not shown) within each of the disk drives114 at the time of factory shipment, the datastorage managing program105 and so on read the information and set thewarranty expiration date206 and thetotal capacity208 on the basis of the read information. In this case, for example, thewarranty expiration date206 and thetotal capacity208 are set in the following procedure.
First, the datastorage managing program105 issues a disk drive information transmit request to thecontrol device113 of each drive device.
Thecontrol device113 includes at least a CPU (not shown) and a memory (not shown), the memory records at least a drive device information notifying program (not shown), and the CPU executes the program that is recorded in the memory.
Subsequently, the drive device information notifying program reads the disk drive information from the ROM of thedisk drive114, calculates the values of thewarranty expiration date206 and thetotal capacity208, and returns the calculated values to the datastorage managing program105. Then, the data storage managing program records the receivedwarranty expiration date206 andtotal capacity208 in thedrive device information108.
In the case where onedrive device112 includes a plurality ofdisk drives114, thewarranty expiration date206 which is returned to the datastorage managing program105 by the drive device information notifying program is, for example, the earliest date of the warranty expiration dates206 which are calculated for the respective disk drives114. Also, in this case, thetotal capacity208 is a total value of the capacities of the respective disk drives114.
Also, the drive device information notifying program may return the read disk drive information to the datastorage managing program105. In this case, the datastorage managing program105 calculates thewarranty expiration date206 and thetotal capacity208 according to the disk drive information.
FIG. 2C is an explanatory diagram of the stored data managing information.
The stored data managing information is made up of adata ID209, astorage drive210, aretention date211, and adata size212.
Thedata ID209 is an identifier that is assigned to identify the data which are recorded in thedrive devices112, and thedata ID201 that has been explained with reference toFIG. 2A is recorded as it is.
The storage drive21G is a drive number of thedisk drive114 in which the data is stored, and is equal to thedrive number205.
Theretention date211 is a time at which aretention period1003 elapses from the data storage time. The data that does not achieve theretention date211 must not be deleted or changed.
Thedata size212 is a data size of the data to be stored107, and thedata size202 that has been explained with reference toFIG. 2A is recorded as it is.
The storeddata managing information109 is prepared by the datastorage managing program105 and is referred to by thedrive removal program106.
FIG. 3 is a flowchart of a data storing process which is executed by the datastorage managing program105.
The datastorage managing program105 is a program that manages the storage of the data in each of thedrive devices112, and is executed by thecontrol module102. The datastorage managing program105 obtains the data to be stored in each of thedrive devices112 from another computer (not shown) through thenetwork116, and temporarily stores the data in thememory104 as the data to be stored107. Also, the datastorage managing program105 selects anydrive device112, and stores the data to be stored107 in the selecteddrive device112.
When a data storage request is received with the data to be stored107 as an argument, the storing process starts (S301). Then, theretention date211 is calculated according to theretention period203 of the data and the present date (S302).
Subsequently, thedisk drive114 having thewarranty expiration date206 that is later than theretention date211 is selected from thedrive device information108 to specify thedrive number205. A list in which thedrive numbers205 are arranged in the order that the warranty expiration dates206 are earlier is prepared (S303). In addition, in the remaining disk drives114 (the disk drives each having thewarranty expiration date206 that is earlier than the retention date211), a list in which thedrive numbers205 are arranged in the order that the warranty expiration dates206 are later is prepared, and this list is added to the tale of the list which is prepared in the step S303 (S304).
Then, an initialization is conducted with the value of a variable k as 1 (S305). In this example, the variable k is a counter which is used to sequentially read the information in the lists prepared in the steps S303 and S304.
Then, thedrive number205 which is k-th from the head of the list is searched (S306). In the case where the k-th drive number205 is not found, thedisk drive114 that is to store the data does not exist. Consequently, an error message that is indicative of no disk drive in which the data is to be stored is displayed (S315) to abnormally end the storing process without storing the data (S316).
On the other hand, in the case where the k-th drive number205 is found, thefree capacity208 that corresponds to thedrive number205 is searched from thedrive device information108, and is compared with thedata size202 of the data to be stored107 (S307). In the case where thefree capacity208 is larger than thedata size202 or equal to thedata size202, the data can be stored in the k-th disk drive114. Consequently, processing advances to a step S312 which will be described later.
On the other hand, in the case where thefree capacity208 is smaller than thedata size202, in order to ensure the capacity that stores the data to be stored107, the data that has already passed over theretention date211 is searched with reference to theretention date211 of the data which is stored in thedisk drive114 from the stored data managing information109 (S308). In the case where no data that has already passed over theretention date211 is found, the data to be stored107 cannot be stored in thedisk drive114. Consequently, the variable k is incremented by one (S311), and processing returns to the step S306 for examining a subsequent disk drive.
On the other hand, in the case where expired data that has already passed over theretention date211 is found, a total of thedata sizes212 of all of the found data and thefree capacity208 are calculated and compared with thedata size202 of the data to be stored107 (S309). In the case where thedata size202 is larger than the calculated total capacity or equal to the calculated total capacity, the data to be stored107 cannot be stored in thedisk drive114. Consequently, the variable k is incremented by one (S311), and processing returns to the step S306 for examining the subsequent disk drive. On the other hand, in the case where thedata size202 is smaller than the calculated total capacity, all of the expired data which has been found is deleted, and a capacity that stores the data to be stored107 is ensured (S310).
Then, the data to be stored107 is stored in the k-th disk drive114 (S312), update that information on data which is newly stored is added to the storeddata managing information109 is made (S313), and the storing process is completed (S314).
According to the processing shown inFIG. 3, thedisk drive114 having thewarranty expiration date206 that is later than theretention date211 of the data to be stored107 is selected, and the data to be stored107 is stored in the selecteddisk drive114. For that reason, when thewarranty expiration date206 of thedisk drive114 has elapsed, and thedisk drive114 is removed, the data that is stored in thedisk drive114 does not need to move to anotherdisk drive114, thereby making it possible to reduce the amount of processing necessary for removing the disk drive.
Also, because thedisk drive114 having the earliestwarranty expiration date206 is selected from the disk drives114 having the warranty expiration dates206 which are later than theretention date211 of the data to be stored107, and the data is stored in the selecteddisk drive114, thedrive device112 having the laterwarranty expiration date206 can be assigned to data having thelater retention date211.
Also, in the case where nodisk drive114 having the warranty expiration date that is later than theretention date211 of the data to be stored107 is found, thedisk drive114 having the latest warranty expiration date is selected. Therefore, it is possible to reduce the transfer of the data necessary for removing thedisk drive114.
FIG. 4 is a flowchart of a drive removing process which is executed by thedrive removal program106.
Thedrive removal program106 is a program which is executed by thecontrol module102 and conducts a process necessary for removing thedrive device112 that has passed over the warranty expiration date (or approaches the warranty expiration date).
When the drive removing process starts (S401), the information on thedisk drive114 to be removed is first deleted from the drive device information108 (S402).
Then, the data that is stored in thedisk drive114 and has not yet passed over theretention date211 is searched from the storeddata managing information109, and a list of those data is prepared (S403).
Then, an initialization is conducted with the value of the variable k as 1 (S404). In this example, the variable k is a counter that counts up the listed data.
Then, the k-th data is searched from the list. In the case where the k-th data is not found, it is judged that the removal of thedisk drive114 is enabled because the transfer of all of the data to be transferred has been completed, or there exists no data that needs to be transferred. The input andoutput device103 is notified of the judgment (S408), and the drive removing process is completed (S409).
On the other hand, in the case where the k-th data is found, a data storage request with the k-th data to be stored as an argument is transmitted to the datastorage managing program105, to thereby execute the data storing process (FIG. 3) (S406).
Then, the variable k is incremented by one (S407), and processing returns to the step S405 for conducting subsequent data processing.
FIG. 5 is an explanatory diagram of a screen that is displayed on the input andoutput device103 of the datastorage managing device101.
The input andoutput device103 according to this embodiment includes a screen display device (not shown) and a pointing device (not shown) such as a mouse. In addition, the input andoutput device103 may include a keyboard (not shown) through which a character can be inputted. Also, the input andoutput device103 applies a graphical user interface (GUI) which can input information by indication and operation by a mouse cursor to improve the convenience.
Adrive list window501 is displayed on the screen of the input andoutput device103, and adrive list502, a datalist display button507, adrive removal button508, and a windowclose button509 are displayed on the window.
Thedrive list502 displays the contents of thedrive device information108. More particularly, the drive table502 is made up of adrive number column503, a warrantyexpiration date column504, atotal capacity column505, and afree capacity column506. Each of those columns displays thedrive number205, thewarranty expiration date206, thetotal capacity207, and thefree capacity208 of thedrive device information108, respectively.
The user operates any row of thedrive list502 so as to select thedrive device112 that corresponds to that row. The dotted lines shown inFIG. 5 represent that thedrive device112 whosedrive number column503 is “drive #2” is selected.
In addition, when the datalist display button507 is operated, a drive-by-drive data list window (FIG. 6) for the selecteddrive device112 is displayed. Also, when thedrive removal button508 is operated, a drive removal window (FIG. 7) for removing the selecteddrive device112 is displayed. Also, when the windowclose button509 is operated, thedrive list window501 is closed.
FIG. 6 is an explanatory diagram of a drive-by-drive data list window.
A drive-by-drivedata list window601 displays adrive number602, adata list603, and a windowclose button607.
Thedrive number602 as displayed is thedrive number205 which is selected in thedrive list window501.FIG. 6 displays an example in which a drive “drive #2” is selected inFIG. 5.
Thedata list603 is a list of the data that is stored in thedrive device112, and displays the contents of the storeddata managing information109. More particularly, thedata list603 consists of adata ID column604, aretention date column605, and asize column606. Those columns display thedata ID209, theretention date211, and thedata size212 of the storeddata managing information109 in which the data stored in thedisk drive114 is recorded.
When the windowclose button607 is operated, the drive-by-drive data list window is closed.
FIG. 7 is an explanatory diagram of a drive removal window.
Adrive removal window701 displays a drive to be removed702, adata list703, anexecution button710, and a cancelbutton711.
Thedrive number702 as displayed is adrive number205 which is selected as being removed in thedrive list window501.FIG. 7 shows an example in which the drive “drive #1” is selected inFIG. 5.
Thedata list703 is a list of the data which is stored in thedrive device112 and consists of adata ID column704, aretention date column705, asize column706, and adata transfer column707. Thedata ID column704, theretention date column705, and thesize column706 display thedata ID209, theretention date211, and thedata size212 of the storeddata managing information109 in which the data stored in thedrive device112 is recorded. Thedata transfer column707 displays a transfer necessityselect column708 and a transferred driveselect column709.
The transfer necessityselect column708 is used for selecting whether the data corresponding to the row is transferred to anotherdisk drive114. When the user operates an arrow at the right side of that column, a pull down menu appears to allow the user to select any one of “transfer” and “not transfer”. The default value of that column (a value that is displayed before the user conducts the selection) is “transfer” with respect to the data that has not passed over theretention date211 and “not transfer” with respect to other data.
The transferred driveselect column709 is used to select thedisk drive114 to which the “transfer” selected data is to be transferred. A pull down menu can be applied for this column as with the transfer necessity select column. The default value of this column is a drive number which is selected in the procedure shown inFIG. 3.
When theexecution button710 is operated, the transfer of the respective data of the drive is executed according to the selection in thedata transfer column707, and the drive can be removed.
When the cancelbutton711 is operated, the transfer of the data is not executed and thedrive removal window701 is closed.
According to the first embodiment of the present invention, since the data that is long in retention date is stored in the drive device that is long in warranty expiration date, the amount of data which is transferred when the warranty expiration date is expired and the disk drive is removed is reduced, and a period of time necessary for the removing process of the disk drive can be reduced.
FIG. 8 is a block diagram showing a storage system according to a second embodiment of the present invention.
The second embodiment according to the present invention is different from the fist embodiment in that a disk array device (storage subsystem) is used instead of the drive device. In this embodiment, parts common to those in the first embodiment will be omitted from a detailed description of this embodiment.
The storage system shown inFIG. 8 is made up of a datastorage managing device801, astorage subsystem811, a Fibre Channel (FC)network823 that connects those elements to each other, and anFC switch824.
The datastorage managing device801 includes: a control module (CPU)802 that executes various programs which are recorded in amemory804; an input andoutput device803 that is used by a user to input and output information; thememory804 that records various programs, data, and information; an FC interface (I/F)810 that controls communication with thestorage subsystem811; and a network interface (I/F)809 that controls communication which is conducted with thestorage subsystem811 and another computer (not shown) through anIP network825.
Thememory804 records a datastorage managing program805, a logical unit (LDEV) assigningprogram806, a data to be stored807, and a storeddata managing information808. Those elements will be described in detail with reference toFIGS. 10, 12, and13. Also, the logical unit will be described in detail with reference toFIG. 9.
Thestorage subsystem811 is made up of adisk drive820, a network interface (I/F)821 that controls communication which is conducted with another computer including the datastorage managing device801 through theIP network825, an FC interface (I/F)822 that controls communication with the datastorage managing device801, and acontrol device812 that controls those elements.
Thestorage subsystem811 includes a plurality ofdisk drives820, structures a disk array (RAID: redundant arrays of inexpensive disks), and stores the data to be stored807.
Thecontrol device812 is made up of aCPU813 that executes various programs which are recorded in thememory815, acache814 that temporarily records the data to be written in thedisk drive820 and the data which is read from thedisk drive820, and amemory815 in which various programs, data, and information are recorded.
Thememory815 records a logical unitassignment executing program816, a logicalunit access program817, a parity groupinformation notifying program826, aparity group information818, and a logicalunit managing information819. Those elements will be described in detail with reference toFIGS. 11, 12,14, and15. Also, the parity group will be described in detail with reference toFIG. 9.
TheFC network823 is a network that connects the datastorage managing device801 and thestorage subsystem811 through an optical fiber or a metal cable, and conducts the data communication by a Fibre Channel protocol.
TheFC switch824 is a switch that changes over the connection of theFC network823. A storage area network (SAN) is structured by theFC switch824 so that the datastorage managing device801 or thestorage subsystem811 can be readily increased or decreased in number.
The datastorage managing device801 and thestorage subsystem811 are connected mutually through the storage area network (SAN), thereby being capable of commonly using the data and the hardware resource.
FIG. 9 is an explanatory diagram showing a parity group and a logical unit (LDEV).
Every given number ofdisk drives820 of thestorage subsystem811 form oneparity group901. Theparity group901 is a unit that structures RAID. For example, when aRAID level5 is applied, even if a failure occurs in one of the disk drives820 that structure oneparity group901, the data in thedisk drive820 that breaks down is restored from the data in the remainingdisk drives820, thereby making it possible to prevent the disappearance of the data. In an example shown inFIG. 9, fourdisk drives820 form one parity group.
Thelogical unit902 is described as LDEV in the figure. Thelogical unit902 is a region on thedisk drive820 and is physically scattered in a plurality of disk drives820. However, thelogical unit902 can be logically regarded as one region. In the example shown inFIG. 9, because RAID is applied, the region of onelogical unit902 is uniformly dispersed in thedisk drive820 that structures oneparity group901. The logicalunit assigning program806 can assign thelogical unit902 of an arbitrary capacity to the free region of thearbitrary parity group901.
FIGS. 10A and 10B are explanatory diagrams of the data and the like which are recorded in thememory804 of the datastorage managing device801 according to this embodiment.
FIG. 10A is an explanatory diagram showing the data to be stored807.
The data to be stored807 is data that is temporarily recorded in thememory804, and consists of adata ID1001, adata size1002, aretention period1003, and a datamain body1004.
Thedata ID1001 is an identifier which is assigned to identify the data stored in thestorage subsystem811, and is uniquely determined in thestorage subsystem811 which is managed by the datastorage managing device801.
Thedata size1002 is the data size of the data to be stored807, and 5 MB in the example shown inFIGS. 10A and 10B.
Theretention period1003 is a term during which the data has to be stored after the data has been recorded in thestorage subsystem811. In the example shown inFIGS. 10A and 10B, the retention period is two years.
The datamain body1004 is data that is prepared by another computer (not shown) which is connected to theIP network825, and that is obtained to be stored in thestorage subsystem811 by the datastorage managing program805. The datamain body1004 is a file such as a document or an E-mail. Also, the datamain body1004 may be that another computer requires the datastorage managing device801 that the data be stored in thestorage subsystem811.
FIG. 10B is an explanatory diagram of the storeddata managing information808.
The storeddata managing information808 is prepared by the datastorage managing program805, and consists of adata ID1005, a storagelogical unit1006, aretention date1007, and adata size1008.
Thedata ID1005 is an identifier that is assigned to identify the data which are recorded in thestorage subsystem811, and thedata ID1001 which has been explained with reference toFIG. 10A is recorded as it is.
The storagelogical unit1006 is the number of thelogical unit902 in which the data is stored.
Theretention date1007 is a term during which the data has to be stored in thestorage subsystem811, and a time point at which theretention period1003 elapses from the storage start time of the data.
Thedata size1008 is the data size of the data to be stored807, and thedata size1002 which has been explained with reference toFIG. 10A is recorded as it is.
FIGS. 11A and 11B are explanatory diagrams of the data and so on which are recorded in thememory815 of thestorage subsystem811 according to this embodiment.
FIG. 11A is an explanatory diagram of theparity group information818.
Theparity group information818 consists of aparity group number1101, awarranty expiration date1102, atotal capacity1103, afree capacity1104, and adisk drive number1105, and is disposed for each of the parity groups901.
Theparity group number1101 is an identifier that is uniquely assigned to identify theparity groups901 which are formed within thestorage subsystem811.
Thewarranty expiration date1102 is a warranty expiration date of each of the parity groups901. Thewarranty expiration date1102 of oneparity group901 is equal to the earliest warranty expiration date among the warranty expiration dates of the disk drives820 that structure theparity group901. The warranty expiration date of thedisk drive820 is determined according to a warranty period which is determined by a manufacturer, application conditions of the disk drives820, and so on. It is necessary that thedisk drive820 of theparity group901 that has passed over thewarranty expiration date1102 be rapidly removed and replaced with anew disk drive820.
Thetotal capacity1103 is the total amount of data which can be stored in theparity group901.
Thefree capacity1104 is the capacity of an unused data storage region of theparity group901, and is a value obtained by subtracting the amount of data that has been already stored in theparity group901 from thetotal capacity1103.
Theparity group information818 is initialized by the user when thedisk drive820 is introduced into thestorage subsystem811. Then, theparity group information818 is referred to by the logicalunit assigning program806. Also, it is possible that the manufacturer of each of the disk drives820 records the information including the warranty period, capacity, and so on of thedisk drive820 in a ROM or the like (not shown) within each of the disk drives820 at the time of factory shipment, the datastorage managing program805 and so on read the information and set thewarranty expiration date1102 and thetotal capacity1103 on the basis of the read information.
Thedisk drive number1105 is an identification number of thedisk drive820 that structures theparity group901. The number is uniquely assigned to thedisk drive820 in onestorage subsystem811.
FIG. 11B is an explanatory diagram of a logicalunit managing information819.
The logicalunit managing information819 is made up of alogical unit number1106, anassignment parity group1107, and anassignment capacity1108.
Thelogical unit number1106 is an identifier that is uniquely assigned to identify thelogical units902 which are formed within thestorage subsystem811.
Theassignment parity group1107 is theparity group number1101 of theparity group901 to which thelogical unit902 is assigned.
Theassignment capacity1108 is the data capacity that is assigned to thelogical unit902.
FIG. 12 is a flowchart of the data storing process which is executed by the datastorage managing program805.
The datastorage managing program805 is a program that manages the storage of the data in thestorage subsystem811, and is executed by thecontrol module802. The datastorage managing program805 obtains the data to be stored in thestorage subsystem811 from another computer (not shown) through theIP network825, and records the obtained data in thememory804 as the data to be stored807. Also, the datastorage managing program805 stores the data to be stored107 in the logical unit which is assigned by the logicalunit assigning program806.
When a data storage request is received with the data to be stored807 as an argument, the data storing process starts (S1201). Then, theretention date1007 is calculated according to theretention period1003 of the data and the present date (S1202).
Then, the logicalunit assigning program806 is indicated to execute the logical unit assigning process with thedata size1002 and theretention date1007 of the data to be stored807 as the arguments (S1203). This processing will be described with reference toFIG. 13.
Then, the data to be stored807 is stored in thelogical unit902 that is assigned in S1203 (S1204). More particularly, the logicalunit access program817 of thestorage subsystem811 is indicated to store the data to be stored807.
The logicalunit access program817 is a program that is executed by theCPU813, and the data to be stored807 is stored in the designated logical unit of thedisk drive820 according to an indication of the data storage managing program805 (S1204).
Also, the indication is transmitted to thecontrol device812 of thestorage subsystem811 through theFC network823 and theFC switch824, but may be transmitted through theIP network825.
Then, update that the information on newly stored data is added to the storeddata managing information808 is made (S1205), and the data storing process is completed (S1206).
FIG. 13 is a flowchart of the logical unit assigning process which is executed by the logicalunit assigning program806 in the step S1203.
The logicalunit assigning program806 is a program which is executed by thecontrol module802, and designates the parity group that stores the data to be stored807.
When the logical unit assignment request is received with thedata size1002 and theretention date1007 of the data to be stored807 as the arguments, the logical unit assigning process starts (S1301). Then, theparity group information818 of thestorage subsystem811 that stores the data is acquired (S1302). The acquirement is conducted when the parity group information notification request is issued at thestorage subsystem811 side, and the result is received (refer toFIG. 15). The issue of the request and the reception of the result interact with thecontrol device812 of thestorage subsystem811 through theFC network823 and theFC switch824, but may be conducted through theIP network825.
Then, theparity group901 having thewarranty expiration date1102 that is later than theretention date1007 is selected from the acquiredparity group information818 to specify theparity group number1101. A list in which the specifiedparity group numbers1101 are arranged in the order that the warranty expiration dates1102 are earlier is prepared (S1303). In addition, in the remaining parity groups901 (theparity groups901 each having thewarranty expiration date1102 that is earlier than the retention date1007), a list in which the specifiedparity group numbers1101 are arranged in the order that the warranty expiration dates1102 are later is prepared, and the list is added to the tale of the list that is prepared in the step S1303 (S1304).
Then, an initialization is conducted with the value of a variable k as 1 (S1305). In this example, the variable k is a counter which is used to sequentially read the information in the lists prepared in the steps S1303 and S1304.
Then, theparity group number1101 which is k-th from the head of the list is searched (S1306). In the case where the k-thparity group number1101 is not found, theparity group901 that is to store the data does not exist. Consequently, an error message that is indicative of no parity group in which the data is to be stored is displayed (S1311) to abnormally end this process without storing the data (S1312).
On the other hand, in the case where the k-thparity group number1101 is found, thefree capacity1104 that corresponds to theparity group number1101 is searched from theparity group information818, and is compared with thedata size1002 of the data to be stored807 (S1307). In the case where thefree capacity1104 is smaller than thedata size1002, the data to be stored807 cannot be stored in theparity group901. Consequently, the variable k is incremented by one (S1308), and processing returns to the step S1306 for searching the subsequent parity group.
On the other hand, in the case where thefree capacity1104 is larger than thedata size1002 or equal to thedata size1002, the data can be stored in the k-th parity group901. Consequently, thelogical unit902 for storing the data to be stored807 is assigned to theparity group901. More specifically, the execution of the logical unitassignment executing program816 is indicated with thedata size1002 and theparity group number1101 of the data to be stored807 as the arguments (S1309). The processing of the logical unitassignment executing program816 will be described with reference toFIG. 14.
This indication is transmitted to thecontrol device812 of thestorage subsystem811 through theFC network823 and theFC switch824, but may be transmitted through theIP network825.
With the above procedure, the logical unit assigning process is completed (S1310).
InFIG. 13, thewarranty expiration date1102 is set and thelogical unit902 is assigned for each of the parity groups901. However, it is possible that the warranty expiration date be set and thelogical unit902 be assigned for each of thestorage subsystems811. In this case, the warranty expiration date of thestorage subsystem811 is equal to the earliest warranty expiration date among the warranty expiration dates of the disk drives820 that structure thestorage subsystem811.
FIG. 14 is a flowchart of the logical unit assignment executing process which is executed by the logical unitassignment executing program816 in the step S1309.
The logical unitassignment executing program816 is a program that is executed by theCPU813, and assigns the logical unit of the designated capacity to the parity group which is designated by the logicalunit assigning program806.
When the logical unit assignment execution request is received with thedata size1002 of the data to be stored807 and theparity group number1101 that stores the data to be stored807 as the arguments, the logical unit assignment executing process starts (S1401). Then, thelogical unit902 of thedata size1002 is newly assigned to theparity group901 of that number (S1402).
Then, update that the information on the logical unit that is newly assigned to is added to the logicalunit managing information819 is made (S1403), and the processing is completed (S1404).
FIG. 15 is a flowchart of the parity group information notifying process which is executed by the parity groupinformation notifying program826 in the step S1302 ofFIG. 13.
The parity groupinformation notifying program826 is a program which is executed by theCPU813, and notifies the logicalunit assigning program806 of the contents of theparity group information818.
When the parity group information notification request which is issued from the datastorage managing device801 is received, the parity group information notifying process starts (S1501). Then, what issues the parity group information request is notified of the contents of the parity group information818 (S1502), and the processing is completed (S1503).
According to the processing shown in FIGS.12 to14, theparity group901 having thewarranty expiration date1102 that is later than theretention date1007 of the data to be stored807 is selected, and the data to be stored807 is stored in the selectedparity group901. For that reason, when thewarranty expiration date1102 of theparity group901 elapses, and thedisk drive820 that structures theparity group901 is removed, it is unnecessary to transfer the data to be stored807 to anotherparity group901, and the amount of processing can be reduced.
Also, because theparity group901 having the earliestwarranty expiration date1102 is selected from theparity groups901 having the warranty expiration dates which are later than theretention date1007 of the data to be stored807, and the data to be stored807 is stored in the selectedparity group901, theparity group901 having the laterwarranty expiration date1102 can be assigned to data to be stored807 having thelater retention date1007.
Also, in the case where noparity group901 having the warranty expiration date that is later than theretention date1007 of the data to be stored807 is found, theparity group901 having the latest warranty expiration date is selected. Consequently, it is possible to reduce the transfer of the data necessary for removing thedisk drive820 of theparity group901.
According to the second embodiment of the present invention, since the data having the later retention date is stored in the parity group having the later warranty expiration date, the amount of data that is transferred when the warranty expiration date elapses and the parity group is removed is reduced, thereby making it possible to reduce a period of time necessary for the disk drive removing process.
While the present invention has been described in detail and pictorially in the accompanying drawings, the present invention is not limited to such detail but covers various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims.