Information processing device and method for controlling replacement of semiconductor storage device

A processor or hard-wired logic circuit of an information processing device is configured to collect a life-expectancy index value of a first semiconductor storage device of primary semiconductor storage devices. The life-expectancy index value relates to a remaining number of times written data is able to be erased. The processor or hard-wired logic circuit is configured to collect read/write information regarding read/write access including read access of reading data from the first semiconductor storage device and write access of writing data to the first semiconductor storage device. The processor or hard-wired logic circuit is configured to determine, based on the collected read/write information, a criterion threshold used as a criterion for replacement of the first semiconductor storage device, and replace the first semiconductor storage device with a second semiconductor storage device of secondary semiconductor storage devices if the life-expectancy index value is less than the criterion threshold.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-070675, filed on Mar. 28, 2013, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to an information processing device and a method for controlling replacement of a semiconductor storage device.

BACKGROUND

To date, an information processing device that uses a storage device including a nonvolatile semiconductor as storage is known. As an example of such an information processing device, an information processing device that uses a solid state drive (SSD) having NAND type flash memory as storage is known.

In NAND type flash memory, writing and reading is performed in units of pages each of which contains a plurality of memory cells for retaining data, and erasure of data is performed in units of blocks each of which contains a plurality of pages. The memory cell, however, is degraded each time data is rewritten, and therefore becomes incapable of normally recording information when rewriting of data is performed many times. For this reason, if data is frequently rewritten to the same memory cell, the memory cell becomes incapable of normally recoding information. As a result, a block containing the memory cell that has become incapable of normally recording information becomes a defective block.

To address this, a technique of wear leveling is known. In wear leveling, the numbers of times data is written to memory cells and the numbers of times data is erased are made uniform, so that occurrence of a defective block is inhibited and the lifetime of an SSD is improved. For example, an SSD to which the technique of wear leveling is applied causes the numbers of updates of the entire memory cells included in the SSD to be uniform by moving data stored in a block where updating is performed frequently to a block where the number of updates is small.

A related technique is disclosed in, for example, Japanese Laid-open Patent Publication No. 2007-323224.

The technique of wear leveling mentioned above, however, does not thoroughly solve restrictions on the number of times data is written and the number of times data is erased in one SSD, but only prolongs the lifetime of the SSD. For this reason, it is impossible for an information processing device to continue to use one SSD without consideration of the number of times data is written and the number of times data is erased in a flash memory.

SUMMARY

According to an aspect, provided is an information processing device including a plurality of semiconductor storage devices from and to which data is read and written and a processor or hard-wired logic circuit. The processor or hard-wired logic circuit is configured to collect a life-expectancy index value of a first semiconductor storage device of primary semiconductor storage devices. The life-expectancy index value relates to a remaining number of times written data is able to be erased. The processor or hard-wired logic circuit is configured to collect read/write information regarding read/write access including read access of reading data from the first semiconductor storage device and write access of writing data to the first semiconductor storage device. The processor or hard-wired logic circuit is configured to determine, based on the collected read/write information, a criterion threshold used as a criterion for replacement of the first semiconductor storage device. The processor or hard-wired logic circuit is configured to replace the first semiconductor storage device with a second semiconductor storage device of secondary semiconductor storage devices if the life-expectancy index value is less than the criterion threshold.

The aspect will be realized and attained by the elements and combinations particularly pointed out in the claims.

DESCRIPTION OF EMBODIMENTS

Embodiments of an information processing device and a method for controlling replacement of a semiconductor storage device will be described in detail below with reference to the drawings. It is to be noted that the disclosed technique is not limited to the embodiments. The embodiments may be combined appropriately to the extent not inconsistent herewith.

First Embodiment

With reference toFIG. 1, an information processing device according to a first embodiment will be described below.FIG. 1is a block diagram illustrating an information processing device according to the first embodiment. As illustrated inFIG. 1, the information processing device1includes a central processing unit (CPU) pool2, a disk area network3, a disk pool4, a management network7, and a management server10.

The CPU pool2contains a plurality of nodes5ato5e. Here, the node5ais a device including a CPU and a memory and being capable of implementing various application programs independently or in conjunction with other nodes, and is, for example, a server board on which a CPU and a memory are mounted. Note that, assuming that the nodes5bto5eperform functions similar to those of the node5a, description given below will not be repeated.

The disk pool4contains a plurality of SSDs6ato6f. Note that it is assumed that, as illustrated inFIG. 1, the disk pool4contains a plurality of SSDs in addition to the SSDs6ato6f. Each of the SSDs6ato6fis a semiconductor storage device that is used when the nodes5ato5eexecute application programs, and has a life expectancy based on the number of times data is erased. For example, among the SSDs6ato6f, the life-expectancy index value, which is an index value of the life expectancy, is “100” for a semiconductor storage device in which erasure of data is not performed, and the life expectancy index value is “0” for an SSD in which data is erased many times and that has reached the end of its life.

The disk area network3is a network that connects each of the nodes5ato5eand an SSD used when each of the nodes5ato5eexecutes an application program. For example, in accordance with a specification from the management server10, the disk area network3establishes or closes connection between the node5aand one or more arbitrary SSDs included in the disk pool4.

In such a configuration, the node5aexecutes an application program using arbitrary SSDs among SSDs contained in the disk pool4. For example, the node5aexecutes an application program using the SSD6aand the SSD6b.

The management server10is connected through the management network7to each of the nodes5ato5e. Then, if the node5bexecutes an application program in order to provide a new service, for example, the management server10instructs the disk area network3to establish connection between the SSD6dand the node5b. As a result, using the SSD6d, the node5bmay execute an application program to provide various kinds of services.

In this way, using the plurality of nodes5ato5eand the SSDs6ato6fcontained in the disk pool4, the information processing device1may execute an arbitrary number of application programs to provide various kinds of services. For example, the information processing device1may combine the nodes5aand5bwith the SSDs6aand6bso as to provide a Web service, and may combine the nodes5cto5ewith the SSDs6cand6dso as to provide a service of large-scale data processing.

The SSD6aincludes nonvolatile semiconductor memory such as NAND type flash memory and phase change memory (PCM). The nonvolatile semiconductor memory has data cells that have restrictions on the number of times data is erased and the number of times data is written. For example, in a single level cell (SLC) mode in which one data cell stores one bit of data, the number of times data is erased is limited to about 10,000. In a multi-level cell (MLC) mode in which one data cell stores more than one bit of data, the number of times data is erased is limited to about 100,000.

In such a manner, there is a limitation on the number of times data is erased, for memory cells included in the SSD6a, and therefore the SSD has a lifetime. For this reason, the information processing device1collects life-expectancy index values based on the remaining numbers of times each of the SSDs6ato6fwill be able to erase data. For example, the information processing device1collects the values of Media_Wearout_Indicator as the life expectancies utilizing smartmontools. If the life expectancy of an SSD used by each of the nodes5ato5efalls short of a predetermined threshold, the information processing device1changes the currently used SSD to another SSD. That is, the information processing device1performs wear leveling for each of the SSDs6ato6fcontained in the disk pool4. This enables the information processing device1to use SSDs as storage without consideration of their lifetimes.

FIG. 2is an illustration for explaining processing performed by an information processing device according to the first embodiment. For example, SSDs in an SSD group60aare SSDs that the nodes5aand5buse for execution of an application program. That is, the information processing device1causes the nodes5aand5band the SSD group60ato operate in combination as one system. SSDs in an SSD group60bare SSDs not in use.

If the life expectancy of the SSD60cfalls short of a predetermined threshold, the information processing device1logically replace the SSD60cwith the SSD60d. That is, the information processing device1changes connection of the disk area network3so as to close connection between the nodes5aand5band the SSD60cand connect the nodes5aand5bto the SSD60d. As a result, the nodes5aand5bcontinuously executes an application program using the SSD group60e.

When the life expectancy of the SSD6ais short, for example, although accessing to the SSD6athat involves erasure of data in memory cells, such as writing of data, has a possibility of causing a malfunction, accessing to the SSD6athat does not involve erasure of data, such as reading of data, may be accepted. Accordingly, the information processing device1collects the amount of data read and the amount of data written per unit period of time when each of the nodes5ato5eexecutes an application program. The information processing device1calculates a proportion of the amount of the read data to sum of the amounts of the read data the written data, and calculates a proportion of the amount of the written data to the sum.

Then, the information processing device1judges the property of an application program on the basis of the calculated proportions. Thereafter, the information processing device1determines a threshold for judging whether to replace an SSD depending on the judged property of the application program, and replaces the SSD if the life expectancy of any of the SSDs6ato6fis shorter than the determined threshold.

If an application program performed by the node5ais judged to have a read-intensive property in which reading of data is frequently performed, the information processing device1determines that the value of a threshold is “10”. For example, the information processing device1judges that an application program is read-intensive when the proportion of the amount of the read data is larger than a predetermined threshold. The information processing device1may judge that an application program is read-intensive when the proportion of the amount of the read data is larger than the proportion of the amount of the written data. Then, the information processing device1replaces the SSD6aused by the node5awith another SSD if the life expectancy of the SSD6aused by the node5ais shorter than “10”.

Alternatively, the information processing device1may judge the tendency of read/write access to an SSD. For example, the information processing device1judges that read/write access to an SSD has a read-intensive tendency in which reading of data is frequently performed, when the proportion of the amount of the read data is larger than a predetermined threshold. The information processing device1may judge that read/write access to an SSD is read-intensive when the proportion of the amount of the read data is larger than the proportion of the amount of the written data. If read/write access to an SSD is judged to be read-intensive, the information processing device1may directly determine a threshold of “10” for judging whether to replace an SSD, and then may replace the SSD if the life expectancy of any of the SSDs6ato6fis shorter than a determined threshold.

If an application program performed by the node5ais judged to have a write-intensive property in which writing of data is frequently performed, the information processing device1determines that the value of a threshold is “30”. For example, the information processing device1judges that an application program is write-intensive when the proportion of the amount of the written data is larger than a predetermined threshold. The information processing device1may judge that an application program is write-intensive when the proportion of the amount of the written data is larger than the proportion of the amount of the read data. If the property of the application program is write-intensive, the information processing device1sets the threshold to a value larger than the threshold determined in the case where the property of the application program is read-intensive. Then, if the life expectancy of the SSD6aused by the node5ais shorter than “30”, the information processing device1replaces the SSD6aused by the node5awith another SSD.

Alternatively, the information processing device1may judge the tendency of read/write access to an SSD. For example, the information processing device1judges that read/write access to an SSD has a write-intensive tendency in which writing of data is frequently performed, when the proportion of the amount of the written data is larger than a predetermined threshold. The information processing device1may judge that read/write access to an SSD is write-intensive when the proportion of the amount of the written data is larger than the proportion of the amount of the read data. If read/write access to an SSD is judged to be write-intensive, the information processing device1may directly determine a threshold of “30” for judging whether to replace an SSD, and then may replace the SSD if the life expectancy of any of the SSDs6ato6fis shorter than the determined threshold.

At the time when the node5aonly uses the SSD6a, if the life of the SSD6aexpires, the node5awill not be able to perform processing during replacement of the SSD6awith another SSD. Additionally, only replacing the SSD6aused by the node5awith the SSD6dcauses a loss of data used by the node5a. As a result, the node5ais not able to continuously perform processing.

To address such issues, in the information processing device1, each of the nodes5ato5econstructs redundant arrays of inexpensive disks (RAID)-1 using two SSDs, and performs data mirroring for duplexing. For example, the node5auses the SSD6aand the SSD6bin which data has been copied by mirroring using the RAID-1 configuration. Then, in the case of replacing the SSD6aused by the node5awith the SSD6d, the information processing device1closes connection between the SSD6aand the node5a, and replicates data of the SSD6ato the SSD6d. Then, the information processing device1establishes connection between the SSD6dto which data has been replicated, and the node5a.

In a period of time from the closure of connection to the SSD6ato the establishment of connection to the SSD6d, the node5aperforms processing described below. That is, when writing data, the node5abuffers data to be written to a memory; when reading data, the node5areads data from the SSD6bto which the node5ais connected. Then, upon establishment of connection to the SSD6d, the node5areflects the data buffered in the memory into the SSD6band the SSD6d. Therefore, the information processing device1may replace an SSD without causing each of the nodes5ato5eto suspend execution of an application program.

Then, with reference toFIG. 3, a functional configuration of the management server10will be described.FIG. 3is a block diagram for explaining the functional configuration of the management server according to the first embodiment. Note that, in the example illustrated inFIG. 3, the nodes5aand5bamong the nodes5ato5eincluded in the information processing device1and the SSDs6ato6damong the SSDs included in the information processing device1are illustrated.

As illustrated inFIG. 3, the management server10includes a storage unit11, a communication unit14, an updating unit15, a judgment unit16, a determination unit17, a selection unit18, and a setting unit19. The storage unit11stores a life-expectancy management table12and a workload management table13. The functions of the updating unit15, the judgment unit16, the determination unit17, the selection unit18, and the setting unit19may be realized by a dedicated hard-wired logic circuit or a processor executing a program. The processor is, for example, a CPU, a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD). The processor may be a combination of two or more elements of the CPU, the MPU, the DSP, the ASIC, and the PLD.

With reference toFIGS. 4 and 5, information stored in the life-expectancy management table12and the workload management table13, which are stored in the storage unit11, will be described below. First, with reference toFIG. 4, an example of information stored in the life-expectancy management table12is described.FIG. 4illustrates an example of a life-expectancy management table. As illustrated inFIG. 4, the life expectancy of each of the SSDs6ato6fis stored in the life-expectancy management table12. In particular, SSD identifiers (IDs), connection destinations, and life expectancies are stored in association with one another in the life-expectancy management table12. Here, the SSD ID is an identifier for identifying each of the SSDs6ato6f. The connection destination is information indicating a node to which an SSD indicated by the associated SSD ID is connected. The life expectancy is the life expectancy of the SSD identified by the associated SSD ID.

For example, in the example illustrated inFIG. 4, the life-expectancy management table12stores that, for the SSD having an SSD ID of “SSD #0”, the node5ais connected thereto and the life expectancy thereof is “100”. The life-expectancy management table12stores that, for the SSD having an SSD ID of “SSD #1”, the node5bis connected thereto and the life expectancy thereof is “80”. The life-expectancy management table12stores that, for the SSD having an SSD ID of “SSD #2”, none of the nodes5ato5eis connected thereto and the life expectancy thereof is “50”.

Then, with reference toFIG. 5, information stored in the workload management table13is described.FIG. 5illustrates an example of a workload management table. As illustrated inFIG. 5, ratio between data read from an SSD in use and data written thereto at the time when each of the nodes5ato5eexecutes an application program are stored in the workload management table13.

In particular, node IDs, program execution flags, and ratio are stored in association with one another in the workload management table13. Here, the node ID is an identifier for identifying each of the nodes5ato5e. The program execution flag is a flag indicating whether a node identified by the node ID associated therewith is executing a program. The ratio is information indicating a ratio of the proportion (%) of the amount of data (byte) read by a node identified by the node ID associated therewith to the proportion (%) of the amount of data (byte) written by that node for one second.

For example, the workload management table13stores information to the effect that the node5ais executing an application program, and that the ratio of the amount of data read by the node5ato the amount of data written by the node5ais “50:50”. The workload management table13stores information to the effect that the node5bis executing an application program, and that the ratio of the amount of data read by the node5bto the amount of data written by the node5bis “90:10”. The workload management table13stores information to the effect that the node5cis not executing an application program and therefore the ratio is “null”.

With reference back toFIG. 3, the communication unit14controls communication between the management server10with each of the nodes5ato5evia the management network7and instructions to the disk area network3. In particular, the communication unit14controls communication of the updating unit15and the setting unit19with each of the nodes5ato5e. The communication unit14also controls instructions from the setting unit19to the disk area network3.

The updating unit15updates the life-expectancy management table12and the workload management table13stored in the storage unit11at predetermined time intervals. For example, each of the nodes5ato5eacquires the value of Media_Wearout_Indicator using smartmontools at predetermined time intervals and sends the acquired value of Media_Wearout_Indicator as a life-expectancy index value to the management server10while associating the life-expectancy index value with the SSD ID. Each of the nodes5ato5ealso acquires the amount of the read data to the amount of written data by an arbitrary approach such as a sar command of Linux (registered trademark), calculates the ratio based on the acquired amounts of data, and sends the calculated ratio to the management server10. Each of the nodes5ato5enotifies the management server10of startup of an application program when the application program is started, and sends the termination of an application program to the management server10when execution of the application program is terminated.

The updating unit15receives an SSD ID, a life-expectancy index value, and a ratio from each of the nodes5ato5e. The updating unit15updates the life-expectancy management table12on the basis of the received SSD ID and life-expectancy index value, and updates the workload management table13using the received ratio.

For example, upon receipt of an SSD ID of “SSD #0” and a life expectancy of “50” from the node5a, the updating unit15extracts, from the life-expectancy management table12, an entry in which the SSD ID of “SSD #0” is stored. Then, the updating unit15updates the connection destination of the extracted entry to “node5a”, and updates the life expectancy to “50”. When receiving a ratio of “40:60” from the node5a, the updating unit15also extracts an entry in which a node ID of “node5a” is stored, from the workload management table13. Then, the updating unit15updates the ratio of the extracted entry to “40:60”.

When notified of startup of an application program from the node5a, the updating unit15also extracts an entry in which the node ID of “node5a” is stored, from the workload management table13, and updates the program execution flag of the extracted entry to “1”. When notified of termination of the application program from the node5a, the updating unit15also extracts an entry in which the node ID of “node5a” is stored, from the workload management table13, and updates the program execution flag of the extracted entry to “0”.

The judgment unit16judges the property of an application program executed by each of the nodes5ato5e, based on the ratio of read data to written data stored in the workload management table13. For example, referring to the workload management table13, the judgment unit16acquires the ratio of read data to written data for each of the SSDs6ato6f.

Then, the judgment unit16judges that the application program is read-intensive if the proportion of read data is larger than a predetermined threshold. The judgment unit16also judges that the application program is write-intensive if the proportion of read data is smaller than the predetermined threshold. Note that when the proportion of read data is larger than the proportion of written data, the judgment unit16may judge that the application program is read-intensive.

For example, when information illustrated inFIG. 5is stored in the workload management table13, the judgment unit16performs processing described below. For example, because the proportion of read data is larger than the proportion of written data when the node5bexecutes an application program, the judgment unit16judges that the application program executed by the node5bis read-intensive.

For the case where the node5aexecutes an application program, the proportion of read data and the proportion of written data are the same. For such a case, in consideration of the stability of the system, the judgment unit16may judge that the application program executed by the node5ais write-intensive. Note that if the judgment unit16judges the property of the application program, the judgment unit16notifies the determination unit17of the judgment result.

Note that the judgment unit16may judge the tendency of read/write access to each of the SSDs6ato6f, without judging the property of the application program, and notifies the determination unit17of the judgment result.

The determination unit17determines a threshold used as a criterion for replacement of an SSD, on the basis of the property of an application program executed by each of the nodes5ato5e. For example, the determination unit17receives, from the judgment unit16, a notification to the effect that the application program executed by the node5ais write-intensive. In such a case, the determination unit17sets the threshold used as a criterion for an SSD used by the node5ato “30”, and gives the selection unit18a notification to the effect that the threshold used as a criterion for replacement of an SSD used by the node5ais “30”.

The determination unit17receives, from the judgment unit16, a notification to the effect that the application program executed by the node5bis read-intensive. In such a case, the determination unit17sets the threshold used as a criterion for an SSD used by the node5bto “10”, and notifies the selection unit18to the effect that the threshold used as a criterion for replacement of an SSD used by the node5bis “10”. That is, in cases where the application program executed by each of the nodes5ato5eis read-intensive, the determination unit17determines a threshold having a smaller value than in cases where the application program is write-intensive.

Note that, in the example described above, the determination unit17sets the threshold to “10” in the case where the application program executed by each of the nodes5ato5eis read-intensive, and sets the threshold to “30” in the case where the application program concerned is write-intensive. However, the embodiment is not limited to this. For example, the determination unit17may determine the threshold based on the ratio stored in the workload management table13. For example, when, for an application program that is write-intensive, the proportion of written data stored in the workload management table13is larger than a predetermined value, the determination unit17may set the threshold to a value larger than “30”.

Note that, when receiving a judgment result indicating the tendency of read/write access to each of the SSDs6ato6f, the determination unit17may determine a threshold used as a criterion for replacement of the SSDs6ato6fon the basis of the received judgment result. For example, when receiving a judgment result for the SSD6ato the effect that the tendency of read/write access is read-intensive, the determination unit17determines that the threshold used as a criterion for replacement of the SSD6ais “10”. When receiving a judgment result for the SSD6ato the effect that the tendency of read/write access is write-intensive, the determination unit17determines that the threshold used as a criterion for replacement of the SSD6ais “30”.

The selection unit18judges whether to replace an SSD or SSDs used by each of the nodes5ato5e, based on a threshold determined depending on the property of an application program. For example, the selection unit18receives, from the determination unit17, a notification to the effect that the threshold used as a criterion for replacement of SSDs used by the node5ais “30”. Then, referring to the life-expectancy management table12, the selection unit18identifies one or more SSDs used by the node5a. Then, the selection unit18judges whether the life-expectancy index value of each of the identified SSDs is smaller than a threshold of “30”. If the life-expectancy index value is smaller than “30”, it is judged that the SSD is to be replaced.

If it is judged that the SSD is to be replaced, the selection unit18performs processing described below. For example, referring to the life-expectancy management table12, the selection unit18extracts SSDs whose connection destinations are “NOT CONNECTED”. Then, if the application program executed by the node5ais read-intensive, the selection unit18searches the extracted SSDs for an SSD whose life-expectancy index value is larger than “10” and equal to or smaller than “30”. Thereafter, if the selection unit18detects an SSD whose life-expectancy index value is larger than “10” and equal to or smaller than “30”, the selection unit18notifies the setting unit19of the SSD ID of the SSD to be replaced among SSDs used by the node5aand the SSD ID of the SSD detected from the life-expectancy management table12.

If the selection unit18has not been able to detect an SSD whose life-expectancy index value is larger than “10” and equal to or smaller than “30”, the selection unit18searches the extracted SSDs for an SSD whose life-expectancy index value is larger than “30”. If the selection unit18detects an SSD whose life-expectancy index value is larger than “30”, the selection unit18notifies the setting unit19of the SSD ID of an SSD to be replaced among SSDs used by the node5aand the SSD ID of an SSD detected from the life-expectancy management table12. Note that if the selection unit18has not been able to detect an SSD whose life-expectancy index value is larger than “30”, the selection unit18gives an administrator or the like a notification to the effect that there is no SSD with which replacement may be performed.

If the application program executed by the node5ais write-intensive, the selection unit18searches for an SSD whose life-expectancy index value is larger than “30”. Then, if the selection unit18detects an SSD whose life-expectancy index value is larger than “30”, the selection unit18notifies the setting unit19of the SSD ID of an SSD ID to be replaced among SSDs used by the node5aand the SSD ID of an SSD detected from the life-expectancy management table12.

Note that if the judgment unit16does not judge the property of the application program, the selection unit18may select an SSD to be replaced by performing processing similar to that described above. For example, in the case where the threshold is “10” for the SSD6aand the life-expectancy index value of the SSD6ais smaller than “10”, the selection unit18selects an SSD whose life-expectancy index value is larger than “10” and equal to or less than “30” as an SSD with which the SSD6ais to be replaced. In the case where the threshold is “30” for the SSD6aand the life-expectancy index value of the SSD6ais smaller than “30”, the selection unit18selects an SSD whose life-expectancy index value is larger than “30” as an SSD with which the SSD6ais to be replaced.

The setting unit19changes setting of SSDs used by each of the nodes5ato5e. For example, the setting unit19receives the SSD ID of the SSD6aand the SSD ID of the SSD6dfrom the selection unit18. Referring to the workload management table13, the setting unit19identifies the node5athat is using the SSD6a. Then, the setting unit19requests the identified node5ato perform a procedure for closing connection to the SSD6a. In such a case, the node5aperforms the procedure for closing connection to the SSD6ato close the connection to the SSD6a.

The setting unit19also instructs the disk area network3to close connection between the node5aand the SSD6a. As a result, the connection between the node5aand the SSD6ais closed. Referring to the workload management table13, the setting unit19also identifies a node that is not executing an application program. For example, the setting unit19identifies the node5cwhen the information illustrated inFIG. 5is stored in the workload management table13. Then, the setting unit19instructs the disk area network3to establish connection between the node5cand the SSDs6aand6d. Then, the setting unit19requests the node5cto replicate the data of the SSD6ato the SSD6d.

The node5creplicates the data of the SSD6ato the SSD6d, and notifies the setting unit19of completion of replication. Then, the setting unit19instructs the disk area network3to close connection between the node5cand the SSD6dand establish connection between the node5aand the SSD6d. Then, the setting unit19requests the node5ato perform a procedure for establishing connection to the SSD6d. As a result, the node5acontinues executing the application program using the SSD6dthat stores the same data as the SSD6a.

Note that, in a period of time from closure of connection to the SSD6ato establishment of connection to the SSD6d, the node5areads data from the SSD6b. Additionally, when writing data, the node5abuffers data to be written to a memory, and reflects the buffered data into the SSDs6band6dafter establishment of connection to the SSD6d. Note that, if a buffer overflow occurs, the node5amay write data to the SSD6band replicate data from the SSD6bto the SSD6dafter establishment of connection to the SSD6d.

With reference toFIG. 6, the flow of processing performed by the information processing device1according to the first embodiment will be described next.FIG. 6is a flowchart for explaining the flow of processing performed by the information processing device according to the first embodiment. Note that the flow of processing in which the node5auses the SSDs6aand6band replaces the SSD6awith the SSD6dwill be described below. In the explanation described below, it is assumed that the node5cis not executing an application program.

The node5amonitors accesses to each SSD, and notifies the management server10of a read/write ratio, which is a ratio between the amount of read data and the written data, of accesses to each SSD (S101). The node5aalso confirms the life expectancies of the SSDs6aand6bin use, and sends the life-expectancy index values thereof to the management server10(S102). Then, the management server10updates the workload management table13and the life-expectancy management table12, based on the received read/write ratio and life-expectancy index values (S103).

The management server10judges whether the application program executed by the node5ais read-intensive or write-intensive, on the basis of the read/write ratio stored in the workload management table13(S104). Then, the management server10checks whether the life expectancies of the SSDs6aand6bconnected to the node5aeach fall short of a threshold based on the property of the application program executed by the node5a(S105).

The management server10judges whether checking of the life expectancy of SSD with the threshold based on the property of an application program has been completed for all the nodes that are executing application programs (S106). If checking of the life expectancy of SSD with the threshold based on the property of an application program has not been completed for all the nodes that are executing application programs (No at S106), the management server10performs processing described below. That is, the management server10performs S105for each node that is executing an application program has not been checked for.

If checking of the life expectancy of SSD with the threshold based on the property of an application program has been completed for all the nodes that are executing application programs (Yes at S106), the management server10performs processing described below. That is, the management server10judges whether there is an SSD whose life-expectancy index value falls short of the threshold, that is, an SSD whose life-expectancy index value is smaller than the threshold (S107). If there is an SSD whose life-expectancy index value is smaller than the threshold (Yes at S107), the management server10judges whether there is an SSD that satisfies the threshold based on the property of the application program among SSDs not in use (S108).

If there is an SSD (the SSD6d, for example) that satisfies the threshold based on the property of the application program among SSDs not in use (Yes at S108), the management server10performs processing described below. That is, the management server10requests a node (the node5a, for example) that uses an SSD (the SSD6a, for example) whose life expectancy falls short of the threshold, to perform a procedure for closing connection to the SSD (SSD6a) (S109). Then, the node5aperforms the procedure for closing connection and notifies the management server10of completion of the procedure (S110).

Upon receipt of a notification of completion of the procedure for closing connection to the SSD6afrom the node5a, the management server10performs an SSD replacement processing described below (S111). That is, the management server10instructs the disk area network3, so that connection of the node5ato the SSD6ais closed and connection of a node (the node5c, for example) that is not executing an application program to the SSDs6aand6dis established. After completion of the establishment of connection, the management server10notifies the node5cof completion of the establishment of connection. Then, the node5cperforms copying of data from the SSD6ato the SSD6d, and notifies the management server10of completion of the copying (S112).

Then, the management server10closes connection of the node5cto the SSD6d, and connects the SSD6dto the node5a, and gives the node5aa notification to the effect that connection to the SSD6dhas been established (S113). Then, the node5aperforms a procedure for connection to the SSD6d(S114). The management server10closes connection of the node5cto the SSD6a(S115).

The management server10judges whether there is an SSD that falls short of the threshold and has not been replaced (S116). If there is no SSD that falls short of the threshold and has not been replaced (No at S116), the management server10completes the processing. If there is an SSD that falls short of the threshold and has not been replaced (Yes at S116), the management server10performs S108. Note that if there is no SSD that is not used and satisfies the threshold based on the property of the application program (No at S108), the management server10terminates the processing without doing anything.

With reference toFIG. 7andFIG. 8, the flow of processing of S108inFIG. 6, that is, judging whether there is an SSD that satisfies a threshold based on the property of an application program among SSDs not in use, will be described next. First, with reference toFIG. 7, the flow of processing performed by the selection unit18when the property of an application program is read-intensive will be described.

FIG. 7is a first flowchart for explaining the flow of processing performed by the selection unit18. For example, the selection unit18judges whether there is an SSD whose life-expectancy index value is larger than “10” and equal to or less than “30” among SSDs not in use (S201). If there is no SSD whose life-expectancy index value is larger than “10” and equal to or less than “30” (No at S201), the selection unit18judges whether there is an SSD whose life-expectancy index value is larger than “30” and equal to or less than “100” (S202).

If there is an SSD whose life-expectancy index value is larger than “30” and equal to or less than “100” (Yes at S202), the selection unit18selects the SSD that satisfies the thresholds (S203) and terminates the processing. If there is an SSD whose life-expectancy index value is larger than “10” and equal to or less than “30” (Yes at S201), the selection unit18selects the SSD that satisfies the thresholds (S203) and terminates the processing. If there is no SSD whose life-expectancy index value is larger than “30” and equal to or less than “100” (No at S202), the selection unit18terminates the processing without selecting an SSD.

Then, with reference toFIG. 8, the flow of processing performed by the selection unit18when the property of an application program is write-intensive will be described.FIG. 8is a second flowchart for explaining the flow of processing performed by the selection unit18. For example, if the property of an application program is write-intensive, the selection unit18judges whether there is an SSD whose life-expectancy index value is larger than “30” and equal to or less than “100” among SSDs not in use (S301).

If there is an SSD whose life-expectancy index value is larger than “30” and equal to or less than “100” among SSDs not in use (Yes at S301), the selection unit18selects the SSD that satisfies the thresholds (S302) and terminates the processing. If there is no SSD whose life-expectancy index value is larger than “30” and equal to or less than “100” among SSDs not in use (No at S301), the selection unit18terminates the processing without selecting an SSD.

As described above, the information processing device1includes the SSD6aand, for example, the SSD6f, which is a substitute for the SSD6a. The information processing device1collects the life-expectancy index value for the SSD6aand the amounts of data read from and written to the SSD6a, and calculates the ratio. Then, on the basis of the calculated ratio, the information processing device1determines a threshold used as a criterion for replacement. Thereafter, if the collected life-expectancy index value is less than the determined threshold, the information processing device1replaces the SSD6awith the SSD6f. Therefore, the information processing device1may cause the node5ato continuously use the SSDs6ato6fas storage devices.

Additionally, since the information processing device1judges replacement of the SSD6ausing a threshold based on the ratio between the amounts of data read from and written to the SSD6a, the information processing device1may use each of the SSDs6ato6funtil the very end of the life expectancy thereof. As a result, the information processing device1may make the utmost use of the lifetime of each of the SSDs6ato6fas storage.

Note that the information processing device1may judge the property of an application program executed by the node5a, based on the calculated ratio, and may determine a threshold used as a criterion for replacement of the SSD6aused by the node5a, depending on the judged property of the application program. Thereafter, the information processing device1replaces the SSD6awith another SSD if the collected life-expectancy index value is less than the determined threshold. In such a case, the information processing device1may also cause the node5ato continuously use the SSDs6ato6fas storage devices.

Additionally, the information processing device1may replace an SSD using a threshold determined depending on the property of an application program executed by the node5a. In such a case, the information processing device1may also use each of the SSDs6ato6funtil the very end of the life expectancy thereof and may make the utmost use of the lifetime of each of the SSDs6ato6fwhen used as storage.

In a write-intensive case, the information processing device1sets, as a threshold used as the criterion for replacement, a second threshold having a larger value than a first threshold that is set in a read-intensive case. Thus, the information processing device1assigns an SSD having a long life expectancy to a node that writes data very frequently at the time of execution of an application program, and assigns an SSD having a short life expectancy to a node that reads data very frequently at the time of execution of an application program. As a result, the information processing device1may make the utmost use of the life of each of the SSDs6ato6f.

Note that the information processing device1may judge whether the property of an application program executed by the node5ais read-intensive or write-intensive. Then, if the application program is write-intensive, the information processing device1may use a threshold having a larger value than a threshold used when the application program is read-intensive.

The information processing device1includes a plurality of SSDs not in use, that is, standby SSDs and selects an SSD that satisfies conditions given below, among the SSDs not in use, when replacing the SSD6a. That is, if the tendency of read/write access to the SSD6ais read-intensive, the information processing device1selects an SSD whose life-expectancy index value is larger than the first threshold and smaller than the second threshold among standby SSDs. Then, the information processing device1replaces the SSD6awith the selected SSD. This enables the information processing device1to use an SSD having a short life-expectancy in preference to other SSDs among SSDs not in use.

If the property of an application program executed by the node5ais read-intensive, the information processing device1may select an SSD that satisfies conditions given below among SSDs not in use. That is, the information processing device1may select an SSD whose life-expectancy index value is larger than a threshold set when the property of the application program is read-intensive and is smaller than a threshold set when the property of the application program is write-intensive.

If the tendency of read/write access to the SSD6ais write-intensive, the information processing device1selects an SSD whose life-expectancy index value is larger than the second threshold. Then, the information processing device1replaces the SSD6awith the selected SSD. This enables the information processing device1to assign an SSD having a sufficient life expectancy to a node that writes data very frequently at the time of execution of an application program. As a result, the information processing device1may inhibit a situation where the life expectancies of the SSDs6ato6freach their ends and therefore the SSD used by each of the nodes5ato5esuddenly becomes unavailable. Thus, the information processing device1may execute an application program stably.

If the property of an application program executed by the node5ais write-intensive, the information processing device1may select an SSD that satisfies conditions given below, among SSDs not in use. That is, the information processing device1selects an SSD whose life-expectancy index value is larger than a threshold set when the property of an application program is write-intensive. Then, the information processing device1may replace an SSD used by the node5awith the selected SSD.

Additionally, the information processing device1may judge that the tendency of read/write access to the SSD6ais read-intensive if the amount of data read from the SSD6aper unit period of time is larger than a predetermined threshold. This enables the information processing device1to assign an SSD having a small life-expectancy index value to a node from which a large amount of data is read at the time of execution of an application program.

If the amount of data read when the node5aexecutes an application program is larger than a predetermined threshold, the information processing device1may judge that the application program executed by the node5ais read-intensive. Then, the information processing device1may assign an SSD having a small life-expectancy index value to a node that executes a read-intensive application program.

If the information processing device1replaces the SSD6awith the SSD6dwhen the node5aperforms mirroring with the SSD6aand the SSD6busing RAID-1 configuration, the information processing device1performs processing described below. That is, the information processing device1holds data to be written from the node5ainto the SSDs6aand6bin a memory until the SSD6ais replaced with the SSD6d. Then, the information processing device1replicates the data of the SSD6ato the SSD6d, and replicates the data held in the memory to the SSDs6band6d. Thus, the information processing device1may perform replacement of SSDs while the node5ais executing an application program.

In this way, the information processing device1judges whether to replace each of the SSDs6ato6funtil the life expectancies of the SSDs6ato6freach their ends. Here, a plurality of nodes5ato5eare placed in the information processing device1, and application programs executed by the nodes5ato5ehave properties that vary from one another. For this reason, when each of the nodes5ato5emakes mirroring using RAID-1 configuration, deviation will occur among life expectancies of the SSDs6ato6f. According to the present embodiment, even when the node5auses SSDs on which mirroring is performed using RAID-1 configuration, the information processing device1may effectively make use of each of the SSDs6ato6fover a long time.

Other Embodiments

Although the first embodiment has been described above, embodiments may be carried out in various different forms other than the first embodiment described above. Accordingly, other embodiments will be described below.

Other RAID Configurations

In the information processing device1described above, the node5acopies data of the SSDs6aand6bby mirroring using RAID-1 configuration. However, embodiments are not limited to this. For example, the node5amay utilize RAID-5 configuration in which data and parity for reconstructing data are stored in a distributed manner in five SSDs. The node5amay also utilize RAID-6 configuration in which data and parity for reconstructing data are stored in a distributed manner in six SSDs.

In this way, when the node5autilizes RAID-5 or RAID-6 configuration, the information processing device1does not have to replicate data stored in an SSD to be replaced. For example, in the case where the information processing device1replaces the SSD6awith the SSD6fwhen the node5autilizes RAID-5 configuration with the SSDs6ato6e, data to be stored in the SSD6fis able to be reconstructed from the SSDs6bto6e.

For this reason, when replacing the SSD6abeing used by the node5awith the SSD6f, the information processing device1closes connection between the SSD6aand the node5a. Then, the information processing device1establishes connection between the SSD6fand the node5awithout replicating data from the SSD6ato the SSD6f. As a result, the node5areconstructs data to be stored in the SSD6ffrom that in the SSDs6bto6eowing to functions of RAID-5. Also, owing to functions of RAID-5, the node5ais able to continue reading data while replacing the SSD6awith the SSD6f, and data has not to be buffered for writing of data. Thus, the node5amay continuously execute an application program while replacing the SSD6awith the SSD6f.

With reference toFIG. 9, the flow of processing performed by the information processing device1for the node5athat utilizes RAID-5 configuration will be described next.FIG. 9is a flowchart for explaining the flow of processing performed by an information processing device according to the second embodiment. Note that S401to S408in the processing illustrated inFIG. 9are similar to S101to S108illustrated inFIG. 6, and therefore will not be further discussed. In the description given below, the flow of processing in which the node5autilizes RAID-5 configuration with the SSDs6ato6eand replaces the SSD6awith the SSD6fthat satisfies a threshold depending on the property of an application program executed by the node5awill be explained.

The management server10closes connection of the node5ato the SSD6a, connects the SSD6fto the node5a, updates the life-expectancy management table12, and then gives the node5aa notification to the effect that connection to the SSD6fhas been established (S409). The node5areconstructs data to be stored in the SSD6fusing the SSDs6bto6e, and reconstructs RAID-5 with the SSDs6bto6f. Then, the node5agives the management server10a notification to the effect that reconstruction of RAID-5 has been completed (S410). The management server10judges whether there is an SSD that falls short of a threshold and has not been replaced (S411). If there is no SSD that falls short of the threshold and has not been replaced (No at S411), the management server10completes the processing. If there is an SSD that falls short of the threshold and has not been replaced (Yes at S411), the management server10performs S408.

In this way, in the case where data and parity for reconstructing data are stored in the SSDs6ato6eused by the node5a, the information processing device1executes processing given below when replacing any of the SSDs6ato6e. For example, the information processing device1replaces the SSD6awith the SSD6f, and reconstructs data to be stored in the SSD6fusing data and parity stored in the SSDs6bto6f. Thus, without replicating data of an SDD to be replaced, the information processing device1may replace the SSD while the node5ais executing an application program.

Configuration of Information Processing Device

In the first embodiment described above, an example where an arbitrary SSD among the SSDs6ato6econtained in the disk pool4is connected via the disk area network3to each of the nodes5ato5econtained in the CPU pool2has been described. However, embodiments are not limited to this. For example, the information processing device1may connect the nodes5ato5eand the SSDs6ato6eusing a storage area network (SAN) instead of the disk area network3. Additionally, the information processing device1may cause not only SSDs but also arbitrary devices such as hard disk drives (HDDs) to be contained as storage in the disk pool4.

Property of Application Program

In the first embodiment described above, the management server10judges the property of an application program on the basis of the ratio between the amounts of data read and written by execution of the application program. However, embodiments are not limited to this. For example, the management server10may judge the property of an application program in consideration of not only the ratio between the amounts of data read and written by execution of the application program but also, for example, a normal amount of data of writing.

The management server10may take the number of nodes executing application programs into consideration. Additionally, the management server10does not necessarily have to judge the property of an application program. That is, the management server10may directly set a threshold used as an index for replacement, based on the ratio between the amounts of data read from and written to each of the SSDs6ato6e, and perform replacement of each of the SSDs6ato6e.

Combination of RAIDs

The example where the node5autilizes RAID-1 configuration has been described in the first embodiment described above, and the example where the node5autilizes RAID-5 configuration has been described in the second embodiment. However, embodiments are not limited to these examples. For example, the information processing device1may perform processing illustrated inFIG. 6for the node5aand perform processing illustrated inFIG. 9for the node5bwhen the node5autilizes RAID-1 configuration and the node5butilizes RAID-5 or RAID-6 configuration.

Information Collected

In the first embodiment described above, the management server10collects the amounts of data read and written per unit period of time. However, embodiments are not limited to this, and, the management server10may collect the number of times per unit period of time data is read from and the number of times per unit period of time data is written to each of the nodes5ato5e, for example. Then, the management server10may judge that the application program is read-intensive if the number of times data is read is larger than a predetermined threshold. Alternatively, the management server10may judge whether the application program is read-intensive or write-intensive, based on the ratio between the number of times data is read and the number of times data is written.

The information processing device1may determine that the tendency of read/write access to the SSD6ais read-intensive if the number of times data is read from the SSD6ais larger than a threshold when the node5aexecutes an application program. Thus, the information processing device1may assign an SSD whose life-expectancy index value is small to a node that reads data many times when executing an application program.

Program

As described above, the management server10according to the first embodiment implements various kinds of processing utilizing a dedicated hard-wired logic circuit or a processor executing a program. For example, a program may be prepared in advance and executed by a computer such as a personal computer or a workstation. Accordingly, with reference toFIG. 10, an example of a computer that executes a program having functions similar to those of the management server10illustrated in the first embodiment will be described below.FIG. 10is a block diagram for explaining a computer that executes a control program.

In a computer100illustrated inFIG. 10, a read only memory (ROM)110, an HDD120, a random access memory (RAM)130, and a CPU140are connected by a bus160. The computer100illustrated inFIG. 10also includes an input output interface (I/O)150for sending and receiving packets.

The HDD120stores therein a life-expectancy management table121, which is information similar to the life-expectancy management table12stored in the storage unit11illustrated inFIG. 3, and a workload management table122, which is information similar to the workload management table13. A control program131is held in advance in the RAM130. By reading the control program131from the RAM130and executing the control program131, the CPU140functions as a control process141, in the example illustrated inFIG. 10. The control process141performs functions similar to those of the updating unit15, the judgment unit16, the determination unit17, the selection unit18, and the setting unit19illustrated inFIG. 3.

The control program may be distributed via networks, such as the Internet. Additionally, the program is recoded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a compact disc read only memory (CD-ROM), a magneto optical (MO) disc, or a digital versatile disc (DVD). The computer may read the program from the recording medium to execute the program.