Storage control device, storage control method, and recording medium

A storage control device according to the present invention connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data, the storage control device includes: a clone processing unit that, when receiving a copy instruction for one of the copy disk devices, repeats reading and writing of each of the segments in order of address to complete copy, and that, when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starts copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performs writing into both the first copy disk and the later copy disk.

This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2016-042479, filed on Mar. 4, 2016, the disclosure of which is incorporated herein in its entirety by reference.

TECHNICAL FIELD

The present invention relates to a storage control device, a storage control method, and a recording medium, in particular, a storage control device, a storage control method, and a recording medium, which create a plurality of clone disks of a master disk.

BACKGROUND ART

Japanese Unexamined Patent Application Publication No. 2015-46159 discloses a system in which, after one virtual machine that becomes a master is created, a clone of the master virtual machine is created, and a plurality of new virtual machines are created, when using a plurality of virtual machines by using a virtual environment.

SUMMARY

The creation of the clone of the master virtual machine is performed by copying a logical disk that is a component of the virtual machine that becomes a master (hereinafter, master disk) into another logical disk, and constructing a new virtual machine by using the copied logical disk (hereinafter, clone disk). When creating a plurality of new virtual machines simultaneously, processing of creating the respective new virtual machines is executed a synchronously. Thus, the creation of the respective clone disks is performed separately and a synchronously.

Since data copies from one master disk into a plurality of clone disks are executed a synchronously, reading of all data of the master disk is performed each time when the clone disk creation is required. Thus, there is a problem in that, the load of the master disk is increased as the number of requests for the clone disk creation grows, and, as a result, it takes time to perform reading processing from the master disk, and processing time of the clone disk creation is lengthened.

This problem occurs when a plurality of clone disks are created from one master disk a synchronously without limitation to when the clone of the virtual machine is created. The disks may be logical disks or actual disks (physical disks).

It is an object of the present invention to provide a storage control device, a storage control method, and a recording medium, which solve the above-described problem.

A storage control device according one aspect of the present invention is connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data. The storage control device includes: a clone processing unit that, when receiving a copy instruction for one of the copy disk devices, repeats reading and writing of each of the segments in order of address to complete copy, and that, when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starts copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performs writing into both the first copy disk and the later copy disk.

A storage control method according to one aspect of the present invention is a method of a storage control device. The storage control device is connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data. The storage control method is performed by the storage control device. The storage control method includes: receiving a copy instruction for one of the copy disk devices, and repeating reading and writing of each of the segments in order of address to complete copy; and when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starting copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performing writing into both the first copy disk and the later copy disk.

A computer readable non-transitory recording medium according to one aspect of the present invention embodies a program. The program causes a computer to perform a method. The computer is connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data. The method includes: receiving a copy instruction for one of the copy disk devices, and repeating reading and writing of each of the segments in order of address to complete copy, and, when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starting copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performing writing into both the first copy disk and the later copy disk.

EXEMPLARY EMBODIMENT

A storage control device10according to the present example embodiment receives a plurality of data-copy-requests transmitted from a master disk device20into clone disk devices21a synchronously and continuously in a short period of time. When receiving the data-copy-request into each of the clone disk devices21, the storage control device10stores an address where copying data into the clone disk device21specified by the data-copy-request is started (hereinafter, copy start address) in association with the clone disk device21.

The storage control device10performs reading from the master disk device20sequentially, and performs writing into each of the clone disk devices21sequentially with the copy start address stored in association with the clone disk device21as a starting point.

Accordingly, the storage control device10reduces the data reading volume with respect to the master disk device20, and shortens the data copy time into the clone disk devices21.

FIG. 1is a configuration diagram of a storage system40according to a first example embodiment. The storage system40includes the storage control device10, the master disk device20connected to the device, the plurality of the clone disk devices21, and a management server device30.

The master disk device20and the clone disk devices21have similar in capacity. The master disk device20and the clone disk devices21may be physical disk devices, respectively, or logical disk devices provided in one physical disk device. In addition, three clone disk devices21are illustrated inFIG. 1, but the number of the clone disk devices21is not limited to three.

The master disk device20stores original data to be copied into the clone disk devices21. The original data is composed of a plurality of pieces of segment data, for example, a plurality of blocks, and a segment ID (Identifier) is allocated to each of them. The segment ID is, for example, a segment sequence number, a segment initial address, or a segment final address.

The original data stored in the master disk device20is illustrated in the upper stage ofFIG. 5. In the example ofFIG. 5, the original data is composed of three segments denoted by (1), (2), and (3). The number of the segments is not limited to three.

In the present example embodiment, the segments are managed circularly. Here, the term circularly means that, for example, the segment (1) is followed by the segment (2) and then by the segment (3) to return to the segment (1).

In other words, the term circularly means that reading and writing of the segments are operated continuously in order of address such that the segment having the lowest address is targeted after the segment having the highest address.

The storage control device10includes a clone processing unit12and a management table11.

The clone processing unit12receives a data-copy-request that targets any one of the clone disk devices21from the management server device30, and executes copying data from the master disk device20into the specified clone disk device21. The clone processing unit12can receive a plurality of data-copy-requests targeting the clone disk device21sequentially to execute copy thereof concurrently. The clone processing unit12controls the master disk device20such that reading data from the master disk device20is performed sequentially when executing the data copy.

As just described, the management server device30is one example of a management device.

The clone processing unit12is configured by a logic circuit. The clone processing unit12may be achieved by a program53that the storage control device10that is also a computer device50executes.

FIG. 2is a configuration diagram of the computer device50. The computer device50includes a processor51and a main storage unit52which are connected to each other with a bus55. Here, the main storage unit52is, for example, a semiconductor storage device. The main storage unit52stores the program53.

The semiconductor storage device is, for example, a flash Read Only Memory (ROM), a Solid State Drive (SSD), or a Random Access Memory (RAM). That is, the main storage unit52is a computer-readable non-transitory recording medium and/or transitory recording medium.

The program53is executed by the processor51to make the processor51function as the clone processing unit12.

FIG. 3is a configuration diagram of data stored in the management table11. The management table11stores a read segment ID variable, a write segment ID variable, and copy start segment ID variables and state variables which are provided in association with the respective clone disk devices21.

The read segment ID variable stores a segment ID of a segment during reading, during reading data from the master disk device20in a copy progressing process. The read segment ID variable is advanced (added) when reading of the segment data is completed.

The write segment ID variable stores a segment ID of a segment during writing, during writing data into the clone disk device21in the copy progressing process. The write segment ID variable is advanced (added) when writing of the segment data is completed. In both the read segment ID variable and the write segment ID variable, an initial value is, for example, the segment ID of the initial segment of the original data.

The state variable indicates a state in a copy process of the associated clone disk device21. There are three types of states: not targeted (initial value); waiting for processing; and during processing.

The copy start segment ID variable stores a segment ID of a segment where copy of the associated clone disk device21is started.

The management table11is stored in a storage region of the storage control device10. The management table11is stored in, for example, the main storage unit52of the computer device50.

FIG. 4is an operation flow chart of the clone processing unit12. The clone processing unit12is activated when receiving a data copy instruction from the management server device30.

In other words, the management server device30(management device) transmits the copy instruction to the storage control device10.

In the following description, the read segment ID is a value of the read segment ID variable, and other segment IDs follow this example.

When being activated, the clone processing unit12stores the read segment ID in the copy start segment ID variable associated with the clone disk device21specified by the copy request (S21). Then, during non-writing in the data copy process (N in S22), the clone processing unit12records “during processing” in the state variable associated with the clone disk device21(S23). Finally, in the case of no longer during reading of the master disk device20, more specifically, in the case of not during reading for copy of another clone disk device21, the clone processing unit12issues a reading instruction of the segment indicated by the read segment ID to the master disk device20(S24).

During writing in the data copy process (Y in S22), the clone processing unit12records “waiting for processing” in the state variable associated with the clone disk device21specified by the copy request (S31). This is because, when writing is already performed, copy of the clone disk device21is waited until copy of the next segment is started (S3, S4).

The clone processing unit12is activated also when reading of the master disk device20is completed, and advances the read segment ID to the next segment ID (S11). This advance is performed circularly, as described above.

Then, for segments of write segment IDs of all of the clone disk devices21associated with state variables indicating “during processing”, the clone processing unit12starts writing of data for which reading is completed (S12).

The clone processing unit12is activated also when writing to all of the clone disk devices21, which is started in S12, is completed, and advances the write segment ID to the next segment ID (S1). This advance is performed circularly, as described above.

Next, among the clone disk devices21in which the state variable value is “during processing”, the clone processing unit12gives notice of completion for those in which copy is completed (S2). The clone processing unit12determines whether copy is completed, for example, determines that copy is completed with respect to a clone disk device21in which the copy start segment ID corresponds to the read segment ID. For each of the clone disk devices21, the clone processing unit12counts the number of the segments in which copy is completed, and may determine that copy is completed with respect to a clone disk device21in which the number of the segments of the original data of the master disk device20corresponds to the number of the segments in which copy is completed.

When there is a clone disk device21in which the state variable value is “waiting for processing”, the clone processing unit12changes the state variable value to “during processing” (S3). Finally, when there is a clone disk device21in which the associated state variable is “during processing”, the clone processing unit12starts reading of the segment of the master disk device20indicated by the read segment ID (S4).

At the completion of reading data from the master disk device20, the clone processing unit12may start writing of data of the segment in which reading is completed into the clone disk device21(S12) and start reading of data of the next segment simultaneously.

FIG. 5toFIG. 9are diagrams illustrating a process of executing copy with respect to three clone disk devices21(illustrated by clone disks1,2, and3, respectively). In this example, the master disk device20stores data composed of three segments (illustrated by (1), (2), and (3), respectively). In this example, the copy start segment ID is illustrated as a start address of a copy segment, the read segment ID is illustrated as a read address, and the write segment ID is illustrated as a write address. Start addresses of copy start segments of the clone disks1,2, and3are illustrated as copy start addresses1,2, and3.

InFIG. 5, when receiving a data-copy-request for the clone disk1first after starting of operation of the storage system40, the clone processing unit12sets the read address to the copy start address of the clone disk1. Here, the copy start address1becomes a start address of the segment (1). Then, the clone processing unit12starts to copy data of the segment (1) of the master disk indicated by the read address into the segment (1) of the clone disk1indicated by the write address1.

InFIG. 6, when receiving a data-copy-request for the clone disk2during writing into the segment (1) of the clone disk1(double-lined arrow in the drawing), the clone processing unit12sets the read address to the copy start address of the clone disk2. Here, the copy start address2becomes a start address of the segment (2). After the completion of writing into the segment (1) of the clone disk1, the clone processing unit12starts to copy data of the segment (2) of the master disk indicated by the read address into the segments (2) of the clone disks1and2indicated by the write addresses. At this time, copy into the segment (1) of the clone disk1, which is hatched in the drawing, is completed.

InFIG. 7, when receiving a data-copy-request for the clone disk3during writing into the segments (2) of the clone disks1and2(double-lined arrows in the drawing), the clone processing unit12sets the read address to the copy start address of the clone disk3. Here, the copy start address3becomes a start address of the segment (3). After the completion of writing into the segments (2) of the clone disks1and2, the clone processing unit12starts to copy data of the segment (3) of the master disk indicated by the read address into the segments (3) of the clone disks1,2, and3indicated by the write addresses. At this time, copies into the segment (1) and (2) of the clone disk1and the segment (2) of the clone disk2, which are hatched in the drawing, are completed.

InFIG. 8, after the completion of writing into the segments (3) of the clone disks1,2, and3(double-lined arrows in the drawing), the clone processing unit12notifies the management server device30of copy completion of the clone disk1in which the copy start address1corresponds to the read address. Then, the clone processing unit12starts to copy data of the segment (1) of the master disk indicated by the read address into the segments (1) of the clone disks2and3indicated by the write addresses. At this time, copies into all of the segments of the clone disk1, the segments (2) and (3) of the clone disk2, and the segment (3) of the clone disk3, which are hatched in the drawing, are completed.

InFIG. 9, after the completion of writing into the segments (1) of the clone disks2and3(double-lined arrows in the drawing), the clone processing unit12notifies the management server device30of copy completion of the clone disk2in which the copy start address2corresponds to the read address. Then, the clone processing unit12starts to copy data of the segment (2) of the master disk indicated by the read address into the segment (2) of the clone disk3indicated by the write address. At this time, copies into all of the segments of the clone disks1and2and the segments (1) and (3) of the clone disk3, which are hatched in the drawing, are completed.

Then, after the completion of writing into the segment (2) of the clone disk3, the clone processing unit12notifies the management server device30of copy completion of the clone disk3in which the copy start address3corresponds to the read address, and finishes copy of the clone disks1,2, and3.

The storage control device10according to the present example embodiment can perform copy at high speed even when copying data into the plurality of clone disk devices21from one master disk device20are executed a synchronously.

The first reason is that, when receiving a data-copy-request into a clone disk device21, the clone processing unit12sets the write segment ID of the clone disk device21so as to perform data reading from the master disk device20by a sequential reading operation. Accordingly, seek operation of the master disk device20is effectively performed.

The second reason is that the clone processing unit12can write data, read one time from the master disk device20, into the plurality of clone disk devices21. More specifically, the clone processing unit12need not read data from the master disk device20each time, with respect to each of the clone disk devices21that are targets to be copied.

Accordingly, the storage control device10can perform copy at high speed by reducing the load of data read of the master disk device20.

FIG. 10is a configuration diagram of the storage control device10according to a second example embodiment.

The storage control device10is connected to the master disk device20that stores data into a plurality of segments continuously, and the plurality of clone disk devices21that are copy destinations of the data.

The storage control device10includes the clone processing unit12that, when receiving a copy instruction for any one of the clone disk devices21, repeats reading and writing of each of the segments in order of address to complete copy. When a first copy disk, that is a copy disk device other than a later copy disk that is the specified clone disk device21, is during copy when receiving the copy instruction, the clone processing unit12starts copy of the later copy disk device from the segment during reading, and, after the completion of reading data of the segment, performs writing into both the first copy disk and the later copy disk.

The storage control device10according to the present example embodiment can perform copy at high speed even when copying data into the plurality of clone disk devices21from one master disk device20are executed a synchronously.

The first reason is that, when receiving a data-copy-request to a clone disk device21, the clone processing unit12sets the write segment ID of the clone disk device21so as to perform data reading from the master disk device20by a sequential reading operation. Accordingly, seek operation of the master disk device20is effectively performed.

The second reason is that the clone processing unit12can write data read one time from the master disk device20into the plurality of clone disk devices21. More specifically, the clone processing unit12need not read data from the master disk device20each time, with respect to each of the clone disk devices21that are targets to be copied.

Accordingly, the storage control device10can perform copy at high speed by reducing the load of data read of the master disk device20.

A storage control device connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data, the storage control device includes:

a clone processing unit that, when receiving a copy instruction for one of the copy disk devices, repeats reading and writing of each of the segments in order of address to complete copy, and

that, when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starts copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performs writing into both the first copy disk and the later copy disk.

The storage control device according to supplementary note 1, wherein

the clone processing unit

(1) continues reading and writing of the segments in order of circular address such that the segment having the lowest address is targeted after the segment having the highest address, as long as there is the copy disk device during copy, and

(2) gives notice of completion for the copy disk device in which copy of all of the segments is completed.

The storage control device according to supplementary note 2, further includes:

a storage region in a management table storing a read segment ID variable that stores a segment ID that is an identifier of the segment during reading, a write segment ID variable that stores the segment ID during writing, and a copy start segment ID variable that stores the segment ID where copy is started with respect to each of the copy disk devices during copy, during reading the master disk device, wherein

the clone processing unit

(1) stores, when receiving the copy instruction during reading the master disk device, a value of the read segment ID variable in the copy start segment ID variable of the copy disk device specified by the copy instruction,

(2) when reading of the master disk device is completed,(a) advances the value of the read segment ID variable to the next segment ID in order of the circular address,(b) starts writing of the read data into the segments indicated by the write segment ID variable of all of the copy disk devices during copy,

(3) when writing of all of the copy disk devices is completed,(a) advances a value of the write segment ID variable to the next segment ID in order of the circular address,(b) among the copy disk devices during copy, determines those in which copy of all segments is completed on the basis of the copy start segment ID variable, and gives notice of completion, and,(c) when there is the copy disk device during copy, starts reading from the segment indicated by the read segment ID variable of the master disk device.

The storage control device according to any one on supplementary notes 1 to 3, wherein

each of the segment IDs is a start address of the segments or a sequence number.

A storage system including:

the storage control device of any one of supplementary notes 1 to 4;

a management device that transmits the copy instruction to the storage control device and receives the notice of completion;

the master disk device; and

the plurality of copy disk devices.

A storage control method of a storage control device connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data, the storage control method includes:

by the storage control device,

receiving a copy instruction for one of the copy disk devices, and repeating reading and writing of each of the segments in order of address to complete copy; and

when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starting copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performing writing into both the first copy disk and the later copy disk.

The storage control method according to supplementary note 6, further includes:

by the storage control device,

(1) continuing reading and writing of the segments in order of circular address such that the segment having the lowest address is targeted after the segment having the highest address, as long as there is the copy disk device during copy, and

(2) giving notice of completion for the copy disk device in which copy of all of the segments is completed.

The storage control method according to supplementary note 7, further includes:

with the use of a storage region in a management table storing a read segment ID variable that stores a segment ID that is an identifier of the segment during reading, a write segment ID variable that stores the segment ID during writing, and a copy start segment ID variable that stores the segment ID where copy is started with respect to each of the copy disk devices during copy, during reading the master disk device,

by the storage control device,

(1) storing, when receiving the copy instruction during reading the master disk device, a value of the read segment ID variable in the copy start segment ID variable of the copy disk device specified by the copy instruction,

(2) when reading of the master disk device is completed,(a) advancing the value of the read segment ID variable to the next segment ID in order of the circular address,(b) starting writing of the read data into the segments indicated by the write segment ID variable of all of the copy disk devices during copy,

(3) when writing of all of the copy disk devices is completed,(a) advancing a value of the write segment ID variable to the next segment ID in order of the circular address,(b) among the copy disk devices during copy, determining those in which copy of all segments is completed on the basis of the copy start segment ID variable, and giving notice of completion, and,(c) when there is the copy disk device during copy, starting reading from the segment indicated by the read segment ID variable of the master disk device.

A computer readable non-transitory recording medium embodying a program, the program causing a computer to perform a method, the computer connected to a master disk device that stores data into a plurality of segments continuously, and a plurality of copy disk devices that are copy destinations of the data, the method includes:

receiving a copy instruction for one of the copy disk devices, and repeating reading and writing of each of the segments in order of address to complete copy, and,

when a first copy disk that is the copy disk device other than a later copy disk that is the specified copy disk device is during copy when receiving the copy instruction, starting copy of the later copy disk from the segment during reading, and, after the completion of reading data of the segment, performing writing into both the first copy disk and the later copy disk.

The method performed by the computer caused by the program embodied in the computer readable non-transitory recording medium according to supplementary note 9, the method further includes:

(1) continuing reading and writing of the segments in order of circular address such that the segment having the lowest address is targeted after the segment having the highest address, as long as there is the copy disk device during copy, and

(2) giving notice of completion for the copy disk device in which copy of all of the segments is completed.