Predictive optimization system and method for data generation and transmission in storage networks

An administrative terminal receives designation of generation target data and of a generation destination storage device and identifies data similar to the target data. The terminal calculates a first predicted time expected for transmitting the target data from a storage device holding the target data to the generation destination storage device, and a second predicted time expected to be required for a second transmission process of transmitting the similar data from an object storage service to the generation destination storage device and of transmitting difference data between the target data and the similar data from the storage device holding the target data to the generation destination storage device. If the second predicted time is shorter than the first predicted time, the administrative terminal performs the second transmission process to transmit the similar data and the difference data to the generation destination storage device to generate the generation target data therein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technology for generating data in a device by use of data existing in other devices connected thereto via a network.

2. Description of the Related Art

For use in storing diverse kinds of data, hybrid clouds have become popular as storage that combines on-premises storage with public could storage.

As the use of hybrid clouds is gaining ground, more and more situations are expected where data is copied not only between on-premises devices but also between an on-premises device and a public cloud device as well as between public cloud devices.

As related art, for example, U.S. Pat. No. 7,152,079 discloses a technology in which a journal regarding an update, of data in a first storage system is acquired by a second storage system via communication lines and the second storage system updates the data corresponding to the data in the first storage system by use of the acquired journal.

SUMMARY OF INVENTION

In a case where multiple storage systems are separated from each other, for example, the storage systems are interconnected via a wide area network (WAN). Generally, the bandwidth of the WAN is narrower than that of a network within each storage system, primarily for cost reasons.

As a result, copying large amounts of data between the storage systems can take a long time under bandwidth constraints of the WAN.

The present invention has been made in view of the above circumstances and provides, as an object, a technology for shortening the time required to generate data.

In achieving the foregoing and other objects of the present invention, according to one aspect thereof, there is provided a data generation control system including multiple store a devices and an administrative device. The administrative device receives designation of generation target data and of a generation destination storage device constituting a storage device in which the generation target data is generated. The administrative device identifies data similar to the generation target data. The administrative device calculates a first predicted time expected to be required for a first transmission process of transmitting basic data from a generation source storage device holding the basic data corresponding to the generation target data to the generation destination storage device, and a second predicted time expected to be required for a second transmission process of transmitting the similar data from a similar data storage device holding the similar data to the generation destination storage device an of transmitting difference data between the basic data and the similar data from the generation source, storage, device to the generation destination storage device if the second predicted time is shorter than the first predicted time, the administrative device performs the second transmission process to transmit the similar data and the difference data to the generation destination storage device so as to generate the generation target data therein. If the second predicted time is not shorter than the first predicted time, the administrative device performs the first transmission process to transmit the basic data to the generation destination storage device so as to generate the generation target data therein.

According to the present invention, the time required to generate data can be shortened.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Some preferred embodiments of the present invention are described below with reference to the accompanying drawings. It is to be noted that the embodiments to be explained below are not limitative of the present invention as claimed by the appended claims and that not all constituents or their combinations explained in conjunction with the embodiments are indispensable as the means for solving the above-mentioned problems.

In the description that follows, information may be explained using an expression “AAA table.” However, information may be expressed using any other data structure. That is, the expression “AAA table” may be rephrased as “AAA information” so as to indicate that the information is not dependent on any specific data structure.

In the explanatory paragraphs that follow, there are cases in which a “program” is assumed to be the subject of operation. Since the program is executed by processor (e.g., central processing unit (CPU)) to perform a predetermined process using suitable storage resources (e.g., memory) and/or a communication interface device e.g., network interface card (NIC)), the processor may alternatively be considered the subject of the process. A process explained using a program as the subject of operation may be considered a process performed by a computer having a processor.

FIG.1is an overall configuration diagram of a computer system according to a first embodiment of the present invention.

A computer system1is an exemplary data generation control system having an on-premises data center10and a public cloud20. The on-premises data center10and the public cloud20are located away from each other. The on-premises data center10and the public cloud20are interconnected via the Internet30acting as an exemplary network.

The on-premises data center10includes at least one host100, at least one storage device200, and an administrative terminal300as an exemplary administrative device. The host100, the storage device200, the administrative terminal300, and the Internet30are interconnected via a switch (SW)11.

The host100performs various processes under user control, and carries out input/output (I/O) operations on process-related data to and from the storage device200. The administrative terminal300performs administrative processes on the devices administered by the computer system1. In the first embodiment, the administrative terminal300controls the process of generating (e.g., copying) given data in a predetermined device.

The storage device200is block storage that administers data in units of blocks, for example. The storage device200includes storage controller (CTL)210including a storage operating system (OS) and, using storage regions of physical drives230seeFIG.3), stores various types of data. In the first embodiment, the storage device200holds volumes for storing data, and stores backup data of the volumes. Also, the storage device200stores the backup data of the volumes into an object storage service400, to be discussed later.

The public cloud20includes a storage device500and the object storage service400. The storage device500, the object storage service400, and the Internet30are interconnected via a switch21.

The object storage service400is an example of storage or a storage device that stores data in units of objects. In the first embodiment, the object storage service400stores the backup data of the volumes therein as the objects.

The storage device500is software-defined storage (SDS), for example. The storage device500includes a storage CTL510including a storage OS and, using storage regions of a physical drive531(seeFIG.4), stores various types of data.

In the first embodiment, a path (referred to as a path1) exists between the storage device200of the on-premises data center10and the object storage service400of the public cloud20; another path (referred to as a path2) exists between the object storage service400and the storage device500; and another path (referred to as a path3) exists between the storage device200of the on-premises data center10and the storage device500of the public cloud20. The path2, which includes only the network inside the public clod20, provides a bandwidth higher than that of the path1or path3that includes the Internet.

FIG.2is a schematic explanatory diagram outlining a data copy process performed by the computer system1according to the first embodiment. The data copy process inFIG.2is one in which the data (generation target data) of a volume (Vol) #a in the storage device200of the on-premises data center10is copied to a volume (Vol) #b in the storage device500of the public cloud20. For the first embodiment, it is assumed that the backup data of the Vol #a at a given point in time in the past is stored both in the storage device200of the on-premises data center10and in the object storage service400of the public cloud20.

The administrative terminal300receives, from an administrator, an instruction to copy the data (copy target data (generation target data), basic data of the Vol #a in the storage device200copy source storage, copy source storage device, generation storage device, first storage device, backup execution storage device) to the Vol #b in the storage device500copy destination storage, copy destination storage device, generation destination storage device, second storage device). Upon receipt of the instruction ((1) inFIG.2), the administrative terminal300searches for data similar to the copy target data (i.e., similar data is searched for), and determines how to transfer the data ((2) inFIG.2). It is assumed here that the similar data exists in the object storage service400(similar data storage device, backup storage device, third storage device) and that it is determined that data copy (generation) is to be performed by transmitting the similar data from the object storage service400to the storage device500. Subsequent processes are explained hereunder on the basis of this assumption.

The administrative terminal300instructs the copy destination storage (storage device500in the example ofFIG.2) to copy the searched-for similar data ((3) inFIG.2). According to the instruction, the storage device.500retrieves (reads) the designated similar data (backup data of the Vol #a) from the object storage service400and stores the retrieved data into the Vol #b ((4) inFIG.2).

The administrative terminal300then instructs the copy source storage (storage device200in the example ofFIG.2) to extract differences between the copy target data and the similar data and to transfer the differences to the object storage service400((5) inFIG.2). According to the instruction, the storage device200extracts difference data by comparing the Vol #a with its backup data ((6) inFIG.2), and transfers the difference data to the object storage service400((7) inFIG.2).

The administrative terminal300then instructs the ropy destination storage to copy the difference data ((8) inFIG.2). According to the instruction, the storage device500reads the difference data from the object storage service400and causes the difference data to be reflected in the backup data of the Vol #a stored in the Vol #b, thereby generating a data copy of the Vol #a in the Vol #b. This completes copying of the data of the Vol #a to the Vol #b in the storage device500.

What follows is a detailed explanation of the configuration of the on-premises data center10.

FIG.3is a configuration diagram of the on-premises data center10according to the first embodiment.

The on-premises data center10includes the host100, the storage device200, the administrative terminal300, and at least one switch11.

The switch11performs switching of the data to be transmitted. The host100includes a processor101, a front-end (FE) interface (I/F)102, and an administrative I/F103. The processor101carries out various processes and performs I/O operations on data to and from the storage device200. The FE I/F102mediates communication with the storage device200. The administrative I/F103mediates administrative communication with the administrative terminal300.

The storage device200has two controllers210and multiple physical drives230. Each of the physical drives230is a hard disk drive (HDD) or a solid-state drive (SSD), for example, and stores various types of data such as user data for use by the host100.

Each controller210includes a processor211, a memory212, an administrative, I/F213, a copy I/F214, an I/O I/F215, and a drive I/F216.

The administrative I/F213mediates administrative communication with the administrative terminal300. The copy I/F214mediates communication related to the copying of data to and from other storage devices. The I/O I/F215mediates communication related to data I/O to and from the host100. The drive I/F216mediates communication with the physical drives230.

The processors211perform various processes according to programs stored in the memories212.

Each memory212is a random-access memory (RAM), for example, and stores a program group222to be executed by the processors211, along with other necessary data.

The administrative terminal300includes a processor301, a memory302, and an administrative I/F303. The administrative I/F303mediates administrative communication with the host100and with the storage device200.

The processor301performs various processes according to programs stored in the memory302.

The memory302is a RAM, for example, which stores a program group311to be executed by the processor301, along with a table group312necessary for the processing.

The configuration of the public cloud20is explained below in detail.

FIG.4is a configuration diagram of the public cloud according to the first embodiment.

The public cloud20includes at least one storage device500, the object storage service400, and the switch21.

The switch21performs switching of the data to be transmitted. The object storage service400has physical drives for storing data, and administers the data in units of objects.

The storage device500includes a compute service520that carries out various processes and a block storage service530that stores data in units of blocks. The compute service520includes a processor521and a memory522. The processor521executes diverse processes according to programs stored in the memory522.

The memory522is a RAM, for example, which stores a program group523to be executed by the processor521, as well as a table group524necessary for the processing.

The block storage service530has at least one physical drive531.

Explained below are the configurations of the program groups222and523stored respectively in the memories212and522of the storage devices200and500.

FIG.5is a configuration diagram of the program group stored in the memory of the storage device according to the first embodiment.

The program groups222and523in the storage devices200and500each include a storage OS program223. The storage OS program223includes a volume preparation program2231, a volume backup program2232, a volume restoration program2233, a catalog information preparation program2234, a difference data extraction program2235, a difference extraction availability determination program2236, and a volume copy program2237.

The volume preparation program2231performs the process of preparing volumes in the storage device. The volume backup program2232performs the process of backing up the volumes in the storage device. The volume restoration program2233performs the process of restoring the volumes from the backup data. The catalog information preparation program2234performs the process of preparing catalog information411(264) (seeFIG.93regarding volume backup. The difference data extraction program2235performs the process of extracting the differences between the data of the volumes and the data similar thereto. The difference extraction availability determination program2236performs the process of determining whether or not the differences can be extracted. Whether or not the differences can be extracted may be use for example, on the basis of whether or not the storage device stores the same data as the similar data. The volume copy program2237performs the process of copying the volumes.

The configuration of the memory302of the administrative terminal300is explained below.

FIG.6is a configuration diagram of the memory of the administrative terminal according to the first embodiment.

The memory302of the administrative terminal300stores the program group311and the table group312. The program group311include a volume copy control program3111, a similar data search program3112, and an optimal copy path determination program3113.

The volume copy control program3111controls the process of copying volume data to the storage device. For example, the volume copy control program3111performs the process of issuing instructions to copy the volumes. The similar data search program3112performs the process of searching for the data similar to the data targeted for copy. The optimal copy path determination program3113performs the process of determining an optimal path upon copying generating) the copy target data.

The table group312includes an administered storage registration table (TBL)3121, a transfer path information TEL3122, a VOL information TEL3123, a backup information TEL3124, and an optimal copy path determination TEL3125. Each of these tables will be discussed later in detail.

A data backup process performed by the storage device200is explained below.

FIG.7is an explanatory diagram explaining the data backup process performed by the storage device according to the first embodiment.

In the storage device200, a pool250is configured on the basis of the storage regions in the physical drives230. A volume260and a snapshot (SS) volume261are assigned the storage regions in the pool250.

The storage device200has a volume, backup function262and an object conversion function270.

The backup function262is implemented by the processor211executing the Volume backup program2232. The volume backup function262is a function that acquires a snapshot of the volume260, prepares backup data266including the difference data between the current snapshot and the preceding snapshot as well as metadata regarding the difference data, and stores the backup data266into external storage (object storage service400in the first embodiment).

The volume backup function262makes use of a catalog information preparation function263and difference data extraction function265. The catalog information preparation function263is implemented by the processor211executing the catalog information preparation program2234. The difference data extraction function265is implemented by the processor211executing the difference data extraction program2235.

The volume backup function262performs backup in an incremental form on a periodical basis, for example. Specifically, the volume backup function262acquires a snapshot of the backup target volume, causes the difference data extraction function265to compare the currently acquired snapshot data with the snapshot data of the preceding generation to extract the updates as the difference data, and prepares encapsulated backup data266by supplementing the difference data (data body) with position information indicative of the storage locations of the difference data in the volume and with size information indicative of the size of the difference data. For example, being backup data in an incremental form the first backup data includes all data of the backup target volume, and the second and subsequent backup data include the difference data between the newly acquired snapshot and the snapshot of the preceding generation, position information, and size information.

Also, the volume backup function262causes the catalog information preparation function263to prepare catalog information254on the basis of the snapshots of the backup target data and information regarding the backup source volumes. In the first embodiment, the catalog information preparation function263acquires catalog information411from the object storage service400, and adds later changes to the acquired catalog information411to prepare the catalog information264.

Also, the volume backup function262stores the backup data266and the catalog information264into the object storage service400. After the backup data266and the catalog information264have been stored in the object storage service400, the snapshot data other than the most recent snapshot may be deleted from the pool250.

The object conversion function270is implemented by the processor211executing the volume backup program2232. The object conversion function270is a function that converts block format data into object format data to be handled by the object storage service400.

The object storage service400has a bucket401that stores actual data. The bucket401is divided internally into a catalog information storage area40and a data storage area420. The catalog information storage area410stores the catalog information411. The data storage area420stores the data corresponding to the backup data266.

A data restoration process performed by the storage device500is explained below.

FIG.8is an explanatory diagram explaining a backup data restoration process performed by the storage device according to the first embodiment.

In the storage device500, a pool554is configured on the basis of the storage regions of the physical drive531in the block storage service530. A volume553is assigned the storage regions of the pool554.

The storage device500has an object conversion function551and a backup restoration function552.

The object conversion function551is implemented by the processor521executing the volume backup program2232. The object conversion function551is a function that converts, into block format data, the object format data handled by the object storage service400.

The backup restoration function552is implemented by the processor521executing the volume restoration program2233. The backup restoration function552acquires SS #0 backup data421-0as the first backup data from the object storage service400, restores data based on the3510backup data421-0in the copy destination volume. The backup restoration function552then acquires backup data sequential up to the backup data of the snapshot to be restored (e.g., snapshot corresponding to the copy target volume) and, using each piece of the backup data acquired for the volume, restores the differences. In this manner, the desired data can be restored (generated) in the volume.

The catalog information411(264) is explained below.

FIG.9is a configuration diagram of the catalog information according to the first embodiment.

The catalog information411(26) is used to administer information regarding backups (snapshots). The catalog information411(264) stores entries for each of the backups.

The entries in the catalog information411(264) include fields of a backup identification (ID) (SS #)411a, a backup source device ID411b, a backup source VOL411c, a backup source VOL size411d, a preceding-generation backup ID411e, an acquisition date and time411f, an object key411g, and an object size411h.

The backup ID(SS #)411astores the backup ID corresponding to the entry. In the first embodiment, a snapshot number (SS #) is used as the backup ID. The backup source device ID411bstores the ID of the device (backup source device) that holds the volume corresponding to the entry and targeted for backup. The backup source VOL #4411cstores the ID (Vol #) of the volume (backup source volume) corresponding to the entry and targeted for backup. The backup source VOL size411dstores the size of the backup source volume corresponding to the entry. The preceding-generation backup ID411estores a backup ID indicative of the backup that precedes, by one generation, the backup corresponding to the entry. In a case where the backup corresponding to the entry is the first backup of the volume, the backup of one generation ago does not exist. In this case, the preceding-generation backup ID411eholds “not available (N/A))”. The acquisition date and time411fstores the date and time at which the backup corresponding to the entry was acquired. The object key411gstores the identification information (object key) regarding the object in the object storage service400holding the backup data of the volume corresponding to the entry. In a case where multiple objects are used for the backup corresponding to the entry, multiple object keys are associated with the entry. The object size411hstores the size of the object corresponding to the object key in the object key411gof the entry.

The administered storage registration TBT3121is explained below.

FIG.10is a configuration diagram of the administered storage registration TBL according to the first embodiment.

The administered storage registration. TEL3121is used to administer the information regarding the storage targeted to be administered by the administrative terminal300. The administered storage registration TEL3121stores entries for each type of administered storage. The entries in the administered storage registration TBL3121include fields of a device name3121a, a device type3121b, and a CTL IP address/bucket name3121c.

The device name3121astores the device name defined by the user for the storage corresponding to the entry. The device type3121bstores the device type of the storage corresponding to the entry. The device types include block storage, SDS, and object store, for example. The CTL IF address/bucket name3121cstores the IF address or bucket name of the CTL of the storage corresponding to the entry.

The transfer path information TEL3122is explained below.

FIG.11is a configuration diagram of the transfer path information TBL according to the first embodiment.

The transfer path information TBL3122is used to administer the information regarding the paths between multiple devices. The transfer path information TEL3122stores entries for each of the paths. The entries in the transfer path information TEL3122include fields of a path #3122a, a source device name3122b, a destination device name3122c, and an average transfer rate3122d.

The path #3122astores the number of the path corresponding to the entry. The source device name3122bstores the device name of the source of the path corresponding to the entry. The destination device name3122cstores the device name of the destination of the path corresponding to the entry. The average transfer rate3122dstores an average transfer rate of the path corresponding to the entry.

The VOL information TEL3123is explained below.

FIG.12is a configuration diagram of the VOL information TEL according to the first embodiment.

The VOL information TEL3123is used to administer the information regarding the volumes held in each type of storage. The VOL information TBL3123stores entries for each of the volumes. The entries in the VOL information TEL3123include fields of a device name3123a, a VOL #3123b, and a size3123c.

The device name3123astores the device name of the device that holds the volume corresponding to the entry. The VOL #3123bstores the identification information (VOL #) regarding the volume corresponding to the entry in the first embodiment, the VOL # is a unique value inside the device, for example. The size3123cstores the size of the volume corresponding to the entry.

The backup information TBL3124is explained below.

FIG.13is a configuration diagram of the backup information TEL according to the first embodiment.

The backup information TBL3124is used to administer the backup-related information. The backup information TBL3124is prepared on the basis of the catalog information411in the object storage service400. The backup information TBL3124stores entries for each backup. The entries in the backup information TBL3124include fields of a backup ID3124a, a source device3124b, a source VOL3124c, and an acquisition date and time3124d.

The backup ID3124astores the ID of the backup corresponding to the entry (backup ID). The source, device3124bstores the ID of the device (backup source device) that holds the volume corresponding to the entry and targeted for backup. The source VOL3124cstores the ID of the volume (backup source VOL) corresponding to the entry and targeted for backup. The acquisition date and time3124dstores the date and time at which the backup corresponding to the entry was acquired.

The optimal copy path determination TBL3125is explained below.

FIG.14is a configuration diagram of the optimal copy path determination TBL according to the first embodiment.

The optimal copy path determination TBL3125is used to administer the information for determining an optimal copy path. The optimal copy path determination TBL3125includes fields of a normal copy3125aand a similar data utilization copy3125e.

The normal copy3125astores fields of information regarding normal copy in which the copy target data is copied to the copy destination. The normal copy is a process in which, in the example ofFIG.1, the data of the Vol #a is copied from the storage, device200to the storage device500via the path3.

The normal copy3125aincludes fields of a normal copy target size3125b, a normal copy path velocity3125c, and a normal copy predicted time3125d.

The normal copy target size3125bstores the size of the data targeted for copy. The normal copy path velocity3125cstores the communication rate of the path for use in normal copy (path3in the example ofFIG.1). The normal copy predicted time3125dstores the time predicted for normal copy (normal copy predicted time).

The similar data utilization copy3125estores fields of the information regarding similar data utilization copy in which data is prepared at the copy destination utilizing the data similar to the copy target data. In the example ofFIG.1, the similar data utilization copy involves copying the data similar to the copy target data to the storage device500via the path2, and transferring the differences between the copy target data and the similar data via the paths1and2in order to generate the copy target data in the storage device500.

The similar data utilization copy3125eincludes fields of a similar data size3125f, a similar data transfer path velocity3125g, a difference data size3125h, a difference data first transfer path velocity3125i, a difference data second transfer path velocity3125j, and a similar data utilization copy predicted time3125k.

The similar data size3125fstores the size of similar data. The similar data transfer path velocity3125gstores the communication rate of the path for use in transferring the similar data (path2in the example ofFIG.1). The difference data size3125hstores the size of difference data constituting the differences between the copy target data and the similar data. The difference data first transfer path velocity3125istores the transfer rate of the first path (path1in the example ofFIG.1) from among the paths for use in transferring the difference data. The difference data second transfer path velocity3125jstores the transfer rate of the second path (path2in the example ofFIG.1) from among the paths for use in transferring the difference data. The similar data utilization copy predicted time3125kstores the time predicted to be required for similar data utilization copy.

The processing operations of the computer system1are explained below.

A volume copy process is explained first.

FIG.15is a flowchart of the volume copy process according to the first embodiment.

The volume copy control program3111of the administrative terminal300receives (in step S100), from the administrator, an instruction to copy a volume (volume copy instruction, which is an exemplary generation instruction). The volume copy instruction includes information identifying the volume to be copied (copy target volume), such as the VOL # of the copy target volume and the device name of the copy source storage, and information identifying the copy destination (device name of the copy destination storage). The similar data search program3112then determines (in step S200) whether or not the data (similar data) similar to the data of the copy target volume (i.e., copy target data) included in the volume copy instruction exists in some device other than the copy source storage within the computer system1. In the first embodiment, the similar data search program3112references the backup information TBL3124to determine whether or not the backup data for the copy target volume exists.

As a result, if it is determined that the similar data does not exist in any device other than the copy source storage (“No” in step S200), the volume copy control program3111performs (in step S800) the process of transferring (copying) the data of the copy target volume from the copy source storage to the copy destination storage (in normal copy; a first transmission process), and terminates the process.

On the other hand, if it is determined that the similar data exists in some device other than the copy source storage (“Yes” in step S200), the volume copy control program3111then determines whether or not the differences between the similar data and the copy target data can be extracted the copy source storage (in step S300). Specifically, the volume copy control program3111queries the copy source storage whether the differences from the copy target data can be extracted, and receives a response from the copy source storage when queried whether the differences between the copy target data and the similar data can be extracted, the copy source storage causes the difference extraction availability determination program2236to determine whether or not it is possible to extract the differences between the copy target data and the similar data. The difference extraction availability determination program2236sends the result of the determination to the volume copy control program3111. Here, whether or not the differences between the copy target data and the similar data can be extracted may be determined on the basis of whether or not the copy source storage stores the same data as the similar data.

As a result, if it is determined that the differences between the copy target data and the similar data cannot be extracted (“No” in step S300), the volume copy control program3111transfers control to step S800and causes the normal copy to be executed.

On the other hand, if it is determined that the differences between the copy target data and the similar data can be extracted (“Yes” in step S300), the volume copy control program3111performs a normal copy time prediction process (in step S400) for predicting the time required for normal copy (first predicted time). The volume copy control program3111then carries out (in step S500) similar data utilization copy time prediction process for predicting the time (second predicted time) required to prepare the copy target data in the copy destination storage, through similar data utilization copy (second transmission process) by transferring the similar data to the copy destination device and also transferring the differences between the similar data and the copy target data to the copy destination device.

The volume copy control program3111then determines which of the normal copy and the similar data utilization copy is to be finished earlier than the other copy (in step S600).

As a result, if it is determined that the similar data utilization copy is to be finished earlier, e.g., that the similar data utilization copy predicted time is shorter than the normal copy predicted time (“Similar Data Utilization Copy” in step S600), then the volume copy control program3111performs a similar data utilization copy process (step S700) in which similar data utilization copy is executed, and terminates the volume copy process.

On the other hand, if it is determined that the normal copy is to be finished earlier, e.g., that the similar data utilization copy predicted time is not shorter than the normal copy predicted time (“Normal Copy” in step S600), the volume copy control program3111transfers control to step S800and executes normal copy.

The normal copy time prediction process (3400) is explained below.

FIG.16is a flowchart of the normal copy time prediction process according to the first embodiment.

The optimal copy path determination program3113references the VOL information TBL3123to acquire the size of the copy target volume (in step S410). The optimal copy path determination program3113then references the transfer path information TEL3122to acquire the transfer rate of the path (path3an this example) from the copy source storage to the copy destination storage (in step S420).

The optimal copy path determination program3113then calculates a predicted time by dividing the size of the copy target volume by the transfer rate (in step S430). The optimal copy path determination program3113stores the result of the calculation into the field of the normal copy predicted time3125din the optimal copy path determination TBL3125(in step S440), and terminates the process.

The similar data utilization copy time prediction process (S500) is explained below.

FIG.17is a flowchart of the similar data utilization copy time prediction process according to the first embodiment.

The optimal copy path determination program3113references the catalog information264acquired from the object storage service400, to obtain (in step S510) the size of the similar data (backup size).

The optimal copy path determination program3113then references the transfer path information TBL3122to obtain (in step S520) the transfer rate of the path (path2in this example) from the storage that holds the similar data object storage service400in this example) to the copy destination storage (storage device500). The optimal copy path determination program3113calculates a backup restoration time [A] by dividing the backup size by the transfer rate (in step S530).

The optimal copy path determination program3113then requests the copy source storage to calculate an amount of difference between the copy target volume and the similar data (in step S540). Here, the calculation request includes the Vol # and SS # of the copy target volume, for example.

The difference data extraction program2235of the copy source storage (storage device200) calculates the amount of difference between the copy target volume and the similar data, and returns the calculated amount of difference to the optimal copy path determination program3113of the administrative terminal300(in step S550).

The optimal copy path determination program3113acquires the amount of difference returned from the copy source storage, and references the transfer path information TBL3122to acquire the transfer rate of the path (path1) from the copy source storage to the object storage service400, as well as the transfer rate of the path (path2) from the object storage service400to the copy destination storage (in step S560).

The optimal copy, path determination program3113then calculates (in step S570) the time (difference transfer time [B]) required to transfer the difference data. Specifically, the optimal copy path determination program3113calculates the difference transfer time by adding up the value obtained by dividing the amount of difference by the transfer rate of the path1and the value acquired by dividing the amount of difference by the transfer rate of the path2.

The optimal copy path determination program3113then determines the sum of the backup restoration time [A] and difference transfer time [B] as the similar data utilization copy predicted time (in step S580), and terminates the process.

The similar data utilization copy process (S700) is explained below.

FIG.18is a flowchart of the similar data utilization copy process according to the first embodiment.

The volume copy control program3111of the administrative terminal300gives a VOL copy start indication on the screen (in step S701). The volume copy control program3111thus displays, on the screen, that the similar data is being transferred (in step S702).

The volume copy control program3111then transmits pan instruction to restore backup to the copy destination storage (in step S703). The volume copy control program3111causes the backup restoration instruction to include the VOL # of the copy destination and the backup ID (SS #) of the backup target data (similar data).

Upon receipt of the backup restoration instruction, the volume copy program2237of the copy destination storage restores the data having the backup ID included in the instruction, into the volume having the VOL # at the copy destination (in step S704). The volume copy program2237then returns a completion response.

Upon receipt of the completion response to the backup restoration instruction, the volume copy control pro ram3111of the administrative terminal300displays, on the screen, that the differences are being transferred (in step S705), and transmits an instruction to transfer the differences to the copy source storage (in step S706). The volume copy control program3111causes the difference transfer instruction to include the VOL # of the copy source and the backup ID (SS #) of the data targeted for difference extraction.

Upon receipt of the difference transfer instruction, the difference data extraction program2235of the copy source storage extracts (in step S707) the differences between the volume having the VOL # of the copy source and the data having backup ID as included in the difference transfer instruction, transfers the difference data thus extracted as a backup to the object storage service400, and returns the backup ID (551) of the data that holds the differences to the volume copy control program3111of the administrative terminal300(in step S708).

The volume copy control program3111of the administrative terminal300transmits, the copy destination to an instruction to restore the difference data (in step S709). The volume copy control program3111causes the difference restoration instruction to include the VOL # of the copy destination and the backup ID ((SS #) of the difference data.

Upon receipt of the difference restoration instruction, the volume restoration program2233of the copy destination storage restores the difference data having the backup ID included in the difference restoration instruction, into the volume having the VOL # at the copy destination, thereby generating the data of the copy target volume in the copy destination volume (in step S710). The volume restoration program2233then returns a completion response. This completes copying of the volume to the copy destination storage.

Upon receipt of the completion response to the difference restoration instruction, the volume copy control program3111of the administrative terminal300displays, on the screen, that the VOL copy is completed (in step S711), and terminates the similar data utilization cony process.

In the above-described computer system1according to the first embodiment, in a case where generation (copy) of data by use of similar data is determined to be faster than straight-forward copying of the copy target data, the data generation may be carried out quickly using the similar data.

A computer system1A according to a second embodiment of the present invention is explained below. In the ensuing description of the computer system1A, the constituent elements that are substantially similar to those in the computer system1according to the first embodiment are represented by the same reference characters.

FIG.19is a schematic explanatory diagram outlining a data copy process performed by the computer system according to the second embodiment of the present invention.

The data copy process inFIG.19involves copying the data of a volume (Vol) #a in the storage device200of an on-premises data center10A to a volume (Vol) #b in the storage device500of the public cloud20. For the second embodiment, it is assumed that the backup data of the Vol #a at a given point in the past is stored in the storage device200of the on-premises data center IDA and in the object storage service400of the public cloud20.

The computer system1A includes an administrative terminal300A. The administrative terminal300A differs from the administrative terminal300of the first embodiment in terms of8ome processes performed by the volume copy control program3111and by the optimal copy path determination program3113. Specifically, in execution of the volume copy process, the similar data utilization copy time prediction process (S500) is replaced by a similar data utilization copy time prediction process (S800), and the similar data utilization copy process (3700) is replaced by a similar data utilization copy process (3900).

The administrative terminal300A receives ((1) inFIG.19), from the administrator, an instruction to copy the data of the Vol #a in the storage device200(copy source storage) to the Vol #b in the storage device500(copy destination storage). Given the instruction, the administrative terminal300A searches for data similar to the copy target data (i.e., similar data is searched for), and determines how to transfer the data ((2) inFIG.19). It is assumed here that the similar data exists in the object storage service400and that it is determined that data copy is to be performed by transmitting the similar data from the object storage service400to the storage device500. Subsequent processes are explained hereunder on the basis of this assumption.

The administrative terminal300A instructs the copy destination storage (storage device500in the example ofFIG.19) to copy the searched-for similar data ((3) inFIG.19). According to the instruction, the storage device500retrieves (reads) the designated similar a data (backup data of the Vol #a) from the object storage service400and stores the retrieved data into the Vol #b ((4) inFIG.19).

The administrative terminal300A then instructs the copy source storage (storage device200in the example ofFIG.19) to extract the differences between the target data and the similar data and to transfer the differences to the copy destination storage ((5) inFIG.19). According to the instruction, the copy source storage (storage device200) extracts the difference data by comparing the Vol #a with its backup data ((6) inFIG.19), and transfers the extracted difference data to the copy destination storage ((7) inFIG.19).

In turn, the copy destination storage causes the difference data to be reflected in the backup data of the Vol #a, to generate a copy of the Vol #a. This completes copying of the data of the Vol #a to the Vol #b in the storage device500.

The similar data utilization copy time prediction process (S800) according to the second embodiment is explained below.

FIG.20is a flowchart of the similar data utilization copy time prediction process according to the second embodiment. The steps in this process that are similar to those in the similar data utilization copy time prediction process according to the first embodiment inFIG.17are designated by the same reference characters, with duplicate descriptions omitted where appropriate.

The optimal copy path determination program3113acquires the amount of difference returned from the copy source storage, and references the transfer path information TBL3122to acquire the transfer rate of the path (path3) from the copy source storage to the copy destination storage (in step S810).

The optimal copy path determination program3113then calculates (in step S820) the time (difference transfer time [B]) required to transfer the difference data. Specifically, the optimal copy path determination program3113calculates the difference transfer time by dividing the amount of difference by the transfer rate of the path3.

The optimal copy path determination program3113then determines the sum of the backup restoration time [A] and difference transfer time [B] as the similar data utilization copy predicted time (in step S580), and terminates the process.

According to this similar data utilization copy time prediction process, it is possible suitably to predict the td me of the similar data utilization copy process in which the similar data is transferred from the object storage service400to the copy destination storage and in which the difference data is transferred from the copy source storage to the copy destination storage.

The similar data utilization copy process (S900) according to the second embodiment is explained below.

FIG.21is a flowchart of the similar data utilization copy process according to the second embodiment. The steps in this process that are similar to those in the similar data utilization copy time prediction process according to the second embodiment inFIG.18are designated by the same reference characters, with duplicate descriptions omitted where appropriate.

Upon receipt of the difference transfer instruction, the difference data extraction program2235of the copy source storage extracts (inn step S707) the differences between the volume having the VOL # of the copy source and the data having the backup ID as included in the difference transfer instruction. The difference data extraction program2235then transfers (in step S910), to the copy destination storage, the extracted difference data and information indicative of a write position of the difference data in the volume (i.e., write position information).

Upon receipt of the difference data, the volume restoration program2233of the copy destination storage generates the copy target volume by storing the difference data into the copy destination volume according to the write position information (in step S920). The volume restoration program2233then returns completion response. This completes copying of the volume to the copy destination storage.

Upon receipt of the storage completion response from the copy destination storage, the volume copy program2237of the copy source storage sends a VOL copy completion response to the administrative terminal300A (in step S930).

A computer system1B according to a third embodiment of the present invention is explained below. In the ensuing description of the computer system18, the constituent elements that are substantially similar to those in the computer system1according to the first embodiment are represented by the same reference characters.

FIG.22is a schematic explanatory diagram outlining a data copy process performed by the computer system according to the third embodiment of the present invention.

The data copy process inFIG.22involves copying (restoring) a volume (Vol #a) at a given point in time in a storage device2008of on-premises data center10B to a storage device2008of an on-premises data center108. In the third embodiment, the backup data including an entire backup of the Vol #a at a given point in the past (as a backup (base)) is stored in the storage device200A of the on-premises data center108. The same backup data as that in the storage device200A is stored in the object storage service400of the public cloud20. The object storage service400of the public cloud20further retains the difference data (backup (differences)) preceding the given point in time of the Vol #a. In the third embodiment, the backup data of the base is regarded as the backup #0 (base), and the difference data at a later n-th backup point in time is regarded as the backup #n (differences).

The computer system1B includes an administrative terminal300B. The administrative terminal300B differs from the administrative terminal300of the first embodiment in terms of some processes.

The administrative terminal3008receives ((1) inFIG.22), from the administrator, an instruction to copy (prepare) the data of the Vol #a at a given backup point in time (time point n in this case) in the storage device200A to a Vol #c in the storage device2008(copy destination storage). In the third embodiment, the copy instruction includes, for example, the Vol # of the restoration target, information indicative of the backup point in time of the restoration target (backup #), and the Vol # of the copy destination.

The administrative terminal300B searches for data similar to the data of the restoration target at the backup point in time (i.e., similar data is searched for), and determines how to transfer the data ((2) inFIG.22). Here, the storage device200A retains the backup #0 of the Vol #a, i.e., base backup data preceding the backup point n in time of the restoration target, so that the base backup data is searched for as the similar data. Thus, the assumption is that the data copy is determined to be performed transferring the similar data from the storage device200A to the storage device200B. Subsequent processes are explained hereunder on the basis of this assumption.

The administrative terminal3001instructs the storage device200A to transfer the searched-for similar data ((3) inFIG.22). According to the instruction, the storage device200A retrieves (reads) the designated similar data (backup #0 of the Vol. #a), and stores ((4) inFIG.22) the retrieved data into the Vol #c in the copy destination storage (storage device200B).

The administrative terminal300B then instructs the copy destination storage (storage device200B) to transfer the differences between the restoration target data and the similar data ((5) inFIG.22). According to the instruction, the copy destination storage (storage device200B) transfers, from the object storage service400, the difference data up to the backup point in time of the restoration target subsequent to the similar data ((6) inFIG.22). For example, in a case where the backup point in time is #n, the copy destination storage (storage device200B) transfers, from the object storage service400, the backup data ranging from the backup #1 to the backup #n. Here, the data ranging from the backup #0 to the backup #n constitutes the basic data corresponding to the copy target data.

The copy destination storage then generates the data at the Predetermined backup point n in time of the Vol #a by causing the backup data ranging from the backup41to the backup #n to be successively reflected in the backup #0 of the Vol #a stored in the Vol #c. This completes generation (copy) of the data at the predetermined backup point n in time in the storage device200B.

The present invention is not limited to the preferred embodiments discussed above and may be implemented in diverse variations so far as they are within the scope of this invention.

For example, in the above-described embodiments, the predicted time of the normal copy is compared with the predicted time of the similar data utilization copy such that the data may be copied using the type of copy subject to the shorter predicted time. However, this is not limitative of the present invention. As depicted inFIG.1, for example, there may be a case, where the communication rate between the copy source storage and the copy destination storage is low and where the communication rate of the path between the storage that holds the similar data (object storage service400inFIG.1) on one hand and the copy destination storage on the other hand is high, and thus, the processing time is expected to be shorter if the similar data utilization copy is used instead of the normal copy. In that case, the similar data utilization copy may be performed preferentially without predicting and comparing the expected times of the different copy types.

Some or all of the processes performed by the processors in the above-described embodiments may be carried out by use of hardware circuits. The programs used by the above embodiments may be installed from program sources. The program sources may be program distribution servers or storage media (e.g., portable storage media).