Storage system and storage control method

The storage system addresses network bottlenecks and slow access by using clone volumes in a second storage device to store and access primary volume data locally, improving data access speed and reducing bandwidth consumption.

JP2026006385APending Publication Date: 2026-01-16HITACHI VANTARA LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024105313
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-28
Publication Date
2026-01-16

AI Technical Summary

Technical Problem

Existing storage systems face issues with network bandwidth bottlenecks and slow data access performance when copying volumes between environments, leading to high storage capacity consumption and inefficient data access.

Method used

A storage system architecture that includes a first storage device with a primary volume and a second storage device with clone volumes, allowing data to be stored in a pool of the second device and accessed by multiple clone volumes, reducing network burden and enhancing data access speed.

Benefits of technology

This approach reduces network bandwidth strain and increases data access speed in the second environment by enabling local storage of clone volumes and shared access to primary volume data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026006385000001_ABST
    Figure 2026006385000001_ABST
Patent Text Reader

Abstract

To speed up data access in a second environment while reducing a load on a network band between a first environment and the second environment.SOLUTION: The second storage apparatus stores data of the clone volume in a pool of the second storage apparatus, and when the data is not stored in the pool of the second storage apparatus, acquires the data from the pool of the first storage apparatus and stores the data in the pool of the second storage apparatus, and data related to the primary volume stored in the pool of the second storage apparatus is accessible by the plurality of clone volumes in common.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a storage system and a storage control method, and is suitable for application to a storage control method in a storage system relating to a technique for copying data between a first environment and a second environment via a network. [Background technology]

[0002] For example, Patent Document 1 discloses a storage system capable of executing virtual copies using a RoW (Redirect on Write) method. In the technology disclosed in Patent Document 1, first control information associated one-to-one with a volume and second control information that manages user data are managed in a tree structure, and a copy of the volume is created at high speed by copying only the first control information.

[0003] In recent years, there has been an increasing need for data utilization. Examples of such needs include using data stored in a first environment in a second environment. For example, using data stored in a database in a mission-critical business environment in a data analysis environment, and using data stored in a production environment for test execution in a development or test environment. To speed up the analysis and execution of such data, distributed processing using multiple computers is generally performed. To meet such needs, multiple copies of volumes must be created in storage systems installed in physically separate environments, depending on the number of computers.

[0004] One possible method of applying the technology disclosed in Patent Document 1 to the above-mentioned needs is to first fully copy the volumes from the storage device in the first environment to the storage device in the second environment once, and then copy the required number of volumes in the second environment.Another possible method of applying the technology disclosed in Patent Document 1 to the above-mentioned needs is to copy the required number of volumes in the first environment, then copy these volumes to the second environment, and have a computer in the second environment access these volumes. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Japanese Patent Publication No. 2022-26812 Summary of the Invention [Problem to be solved by the invention]

[0006] However, with the technology disclosed in Patent Document 1, the burden on the network bandwidth between the storage devices in the first environment and the second environment becomes a bottleneck, and a full copy of a volume takes a long time. In addition, performing a full copy of a volume every time consumes a large amount of storage capacity in the storage system in the second environment. Moreover, with the technology disclosed in Patent Document 1, all accesses to data from computers in the second environment must go through the network between the storage devices, resulting in extremely poor data access performance.

[0007] The present invention has been made in consideration of the above points, and aims to propose a storage system and a storage control method that can reduce the burden on the network bandwidth between the first environment and the second environment while speeding up data access in the second environment. [Means for solving the problem]

[0008] In order to solve this problem, the present invention provides a storage system comprising a first storage device and a second storage device, each having a processor and a pool and connected via a network, wherein the first storage device has a primary volume, the second storage device has a plurality of clone volumes which are clones of the primary volume, the second storage device stores data of the clone volume in the pool of the second storage device, and if the data is not stored in the pool of the second storage device, retrieves the data from the pool of the first storage device and stores it in the pool of the second storage device, and the data related to the primary volume stored in the pool of the second storage device can be commonly accessed by the plurality of clone volumes.

[0009] In addition, the present invention provides a storage control method for a storage system comprising a first storage device and a second storage device, each having a processor and a pool and connected via a network, wherein the first storage device has a primary volume, the second storage device has a plurality of clone volumes which are clones of the primary volume, the second storage device stores data of the clone volume in the pool of the second storage device, and if the data is not stored in the pool of the second storage device, retrieves the data from the pool of the first storage device and stores it in the pool of the second storage device, and the data related to the primary volume stored in the pool of the second storage device can be commonly accessed by the plurality of clone volumes. [Effects of the Invention]

[0010] According to the present invention, it is possible to reduce the burden on the network bandwidth between the first environment and the second environment while increasing the speed of data access in the second environment. [Brief explanation of the drawings]

[0011] [Figure 1] 1 is a system configuration diagram of a storage system according to a first embodiment. [Figure 2] FIG. 2 is a block diagram illustrating an example of a hardware configuration of a storage device. [Figure 3] FIG. 3 is a diagram illustrating an example of the configuration of a memory illustrated in FIG. 2. [Figure 4] FIG. 10 is a diagram illustrating an example of a volume management table. [Figure 5A] FIG. 10 is a diagram illustrating an example of an address translation table including invalid values. [Figure 5B] FIG. 10 is a diagram illustrating an example of an address translation table that does not include invalid values. [Figure 6] FIG. 10 illustrates an example of a page management table. [Figure 7] FIG. 10 is a diagram showing an example of an external volume management table. [Figure 8] 10 is a flowchart illustrating an example of a procedure for a clone creation process. [Figure 9] 10 is a flowchart illustrating an example of a procedure for a clone deletion process. [Figure 10] 10 is a flowchart illustrating an example of a procedure for a virtual volume write process. [Figure 11] 10 is a flowchart illustrating an example of a procedure for a virtual volume read process. [Figure 12] FIG. 10 is a sequence diagram for constructing multiple remote clone volumes. [Figure 13] FIG. 10 is a block diagram showing an example of the logical configuration of a storage system according to a second embodiment. [Figure 14] FIG. 2 illustrates an example of the configuration of a memory in a storage device. [Figure 15] 10 is a sequence chart showing an example of a procedure for switching an external volume to a new snapshot volume. [Figure 16] 10 is a flowchart illustrating an example of a procedure for a shared cache volume synchronization process. DETAILED DESCRIPTION OF THE INVENTION

[0012] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[0013] (1) First embodiment (1-1) System configuration Fig. 1 is a block diagram showing an example of the logical configuration of a storage system according to the first embodiment. The storage system according to the first embodiment includes an on-premise environment as an example of a first environment and a public cloud environment (hereinafter abbreviated as "cloud environment") as an example of a second environment, and includes a first storage device 100 and a management server 23 in the on-premise environment, a second storage device 100A in the cloud environment, and an inter-storage network (hereinafter referred to as "network") 2 connecting these. Note that, for simplicity of explanation, part of the network configuration is omitted in Fig. 1.

[0014] Here, the first storage device 100 and the second storage device 100A have almost the same configuration except for the logical configuration of volumes etc. set by the user, so when there is no need to particularly distinguish between the two, they may be collectively referred to as "storage device 100" or "node."

[0015] The storage device 100 is, for example, a storage system that employs a loosely coupled scale-out architecture and includes multiple data centers 1, 1A (e.g., a first data center and a second data center). As shown in FIG. 1, each data center 1, 1A has, as its logical configuration, a pool 110, a page 120, and a primary volume 101. Storage that employs a loosely coupled scale-out architecture has a scale-out function that can expand performance or capacity as needed from a small-scale configuration. A loosely coupled scale-out method in which multiple appliances (data centers 1, 1A) are clustered is mainstream, and the storage device 100 shown in FIG. 1 also employs this scale-out method, but is not limited to this.

[0016] The storage system according to the first embodiment includes a first storage device 100 and a second storage device 100A, each of which has a CPU (Central Processing Unit) as an example of a processor and a pool 110, and which are connected via a network 2. The first storage device 100 has a primary volume 101 capable of storing data, and reads and writes data in response to requests from a production server 11 as an example of a host device. Meanwhile, the second storage device 100A has a pool 110 capable of storing data, and provides data in response to access from a data analysis server 12 as an example of a virtual machine (application VM) configured by an application, for example. The second storage device 100A has a plurality of remote clone volumes (hereinafter sometimes abbreviated as "clone volumes") 103 as an example of clone volumes that are clones of the primary volume 101. The second storage device 100A stores data of the clone volume 103 in the pool 110 of the second storage device 100A, and if the data is not stored in the pool 110 of the second storage device 100A, the data is obtained from the pool 110 of the first storage device 100 and stored in the pool 110 of the second storage device 100A. Data related to the primary volume 101 stored in the pool 110 of the second storage device 100A can be commonly accessed by multiple clone volumes 103.

[0017] The first storage device 100 is a storage device that reads and writes data in response to requests from a production server 11 in a data center 1 as an example of a first environment. The first storage device 100 includes a primary volume 101, a snapshot 107, address translation tables 142A and 142B, and a pool 110.

[0018] The second storage device 100A has an external volume 105 associated with the primary volume 101 in the first storage device 100, a cache shared volume 104 for, for example, at least temporarily storing data of the primary volume 101 via the external volume 105, and a remote clone volume 103 as an example of a clone volume that is at least one volume configured by copying the cache shared volume 104 as needed and is accessed by a data analysis server 12 as an example of a virtual computer. Note that the virtual computer is not limited to the data analysis server 12, and may be a computer having other functions that use data stored in the remote clone volume 103. This will be explained in more detail below.

[0019] A page 120 is a logical storage device (logical volume) managed by the storage apparatus 100, and a pool 110 is created by integrating at least one page 120. The primary volume 101 is a virtual volume. In the primary volume 101, data is managed in page units, for example.

[0020] The primary volume 101 is associated with its belonging pool (the pool 110 from which it was created) by a volume management table (corresponding to the volume management table 141 shown in FIG. 3) described later. The address of the allocation destination for the page is managed by a page management table (corresponding to the page management table 143 shown in FIG. 3) described later. For example, in the case of FIG. 1, the primary volume 101 is associated with the pool 110 that includes a page 120, and has, for example, page "A" 107. The address of page "A" 107 of the primary volume 101 is converted by the address conversion table 142A and allocated to page "A" 120 in the pool 110.

[0021] The first storage device 100 acquires a snapshot volume 102 of the primary volume 101 at a certain point in time, for example, using a snapshot method as an example of a differential data acquisition method. Here, the snapshot volume 102 includes page "A" 107 so as to correspond to the primary volume 101 having page "A" 107. For example, in the case of FIG. 1, the snapshot volume 102 is associated with pool 110 which includes page 120, and page "A" 107 of the snapshot volume 102 has its address converted by address conversion table 142B and is assigned to page "A" 120 in pool 110.

[0022] On the other hand, in a second data center 1A as an example of a second environment, the second storage device 100A at least reads data in response to access from a data analysis server 12 configured by, for example, a virtual computer, and provides the data to the data analysis server 12. Note that the second storage device 100A may be configured to write data in response to a request from the data analysis server 12.

[0023] The second storage device 100A is provided with an address conversion table 142C (first address conversion table), an address conversion table 142D (second address conversion table), and an address conversion table 142E in addition to the externally connected volume 105, the shared cache volume 104, and at least one remote clone volume 103. The externally connected volume 105, the shared cache volume 104, and at least one remote clone volume 103 correspond to the address conversion table 142C, the address conversion table 142D, and the address conversion table 142E, respectively. The address conversion table 142C, the address conversion table 142D, and the address conversion table 142E will be described in detail later.

[0024] In the storage system according to this embodiment, multiple clone volumes 103 can access data in the same primary volume 101, and can write to each volume separately. The storage system includes an address conversion table 142C as an example of a first address conversion table that manages the correspondence between address information relating to the storage addresses of data between the pool 110 and the cache shared volume 104. The second storage device 100A registers, in the address conversion table 142C, address information relating to the storage addresses of data staged from the primary volume 101 in the first storage device 100 to the cache shared volume 104.

[0025] In this storage system, the second storage device 100A has an address conversion table 142C as an example of a first address conversion table for accessing data related to the primary volume 101, and address conversion tables 142D to 142E as examples of second address conversion tables for each of the multiple clone volumes 103. Via the first address conversion table 142C, the second storage device 100A accesses data related to the primary volume 101 that is stored in the pool 110 of the first storage device 100 and the pool 110 of the second storage device 100A, and via the second address conversion tables 142D to 142E, accesses data that has been written to the clone volume 103 and is stored in the pool 110 of the second storage device 100A. The address conversion tables 142D to 142E manage the correspondence of address information relating to the storage addresses of data between the pool 110 and each remote clone volume 103, respectively. The second storage device 100A registers address information relating to the storage address of data written from the data analysis server 12 to the remote clone volume 103 in the address conversion table 142D of the remote clone volume 103.

[0026] The clone volume 103 refers to the second address conversion tables 142D to 142E for data written to the clone volume 103, and refers to the first address conversion table 142C for data related to the primary volume 101, and when the data related to the primary volume 101 is obtained from the first storage device 100 and stored in the second storage device 100A, the reference destination of the first address conversion table 142C is changed from the pool 110 of the first storage device 100 to the pool 110 of the second storage device 100A. Furthermore, in this embodiment, when creating a clone volume 103 in the second storage device 100A, the first storage device 100 has a snapshot of the primary volume 101, and the second storage device 100A creates a cache shared volume 104 and a first address conversion table 142C which is an address conversion table referenced by the cache shared volume 104 and which references the snapshot volume via the external volume 105, copies the cache shared volume 104 to create a clone volume which references the first address conversion table 142C, and also creates second address conversion tables 142D to 142E which register the storage address of data written to the clone volume 103. In this embodiment, the first storage device 100 has multiple snapshots created at different times for the same primary volume 101, and when the snapshot referenced in the first address translation table 142C is changed to another snapshot created from the same primary volume 101, differential information between the snapshot before the change and the snapshot after the change is used to obtain data relating to the difference from the first storage device 100 and store it in the pool 110 of the second storage device 100A, and after the referenced snapshot is changed, the data stored in the pool 110 of the second storage device 100A before and after the change is accessed from the clone volume 103. Furthermore, the multiple remote clone volumes 103 are configured by making multiple copies of the cache shared volume 104.The number of address conversion tables provided corresponds to the number of remote clone volumes 103. The second storage device 100A registers data written from the data analysis server 12 to each remote clone volume 103 in each address conversion table 142D corresponding to each remote clone volume 103.

[0027] When the data analysis server 12 accesses data from the remote clone volume 103, if the address information related to the storage address of the accessed data in the address conversion table 142D is an invalid value (for example, "FFFFFFFF"), the second storage device 100A searches for address information in the address conversion table 142C corresponding to the cache shared volume 104, and if the address information obtained as the search result is a valid value, the second storage device 100A reads the data from the pool 110 that is the destination of the address conversion using the address conversion table 142C, while if the address information obtained as the search result is an invalid value, the second storage device 100A stores the data read from the primary volume 101 via the external volume 105 in the cache shared volume 104, and registers the address information corresponding to the read data in the address conversion table 142C corresponding to the cache shared volume 104.

[0028] When the data analysis server 12 accesses data from the remote clone volume 103, the second storage device 100A searches the address conversion table 142C corresponding to the cache shared volume 104, and if the address information obtained as a result of the search is a valid value, it registers the valid value in the address information related to the accessed data in the address conversion table 142D corresponding to the remote clone volume 103.

[0029] When the second storage device 100A creates a new shared cache volume 104 by copying the external volume 105, it initializes the address information in the address translation table 142C corresponding to the shared cache volume 104 with an invalid value.

[0030] When creating a new remote clone volume 103, the second storage device 100A copies the address translation table 142C corresponding to the shared cache volume 104 as the corresponding address translation table 142D, thereby initializing the address translation table 142D.

[0031] In response to a data write request from the data analysis server 12 to the remote clone volume 103, the second storage device 100A stores the data in the pool 110 and registers the address information of the data in the address conversion table 142D corresponding to the remote clone volume 103. In response to a data read request from the data analysis server 12 to the remote clone volume 103, the second storage device 100A refers to the address conversion table 142D corresponding to the remote clone volume 103. If the address information in the address conversion table 142D is an invalid value (for example, "FFFFFFFF (Invalid)" in Figure 5), the second storage device 100A refers to the address conversion table 142C corresponding to the cache shared volume 104. If a valid value for address information is found in either the address conversion table 142D or the address conversion table 142C, the second storage device 100A reads the data from the pool 110 based on the address information of the valid value. If the second storage apparatus 100A cannot find a valid value for the address information in either the address conversion table 142D or the address conversion table 142C, it reads the data via the external volume 105, stores the read data in the pool 110 and the shared cache volume 104, and updates the address information in the address conversion table 142C corresponding to the shared cache volume 104. If there is no differential prefetch request from the management server 23, the second storage apparatus 100A, for example, sets the address conversion table 142C corresponding to the shared cache volume 104 to invalid. In this case, in this embodiment, it is possible to use information for connecting to the external volume 105 and the snapshot volume beyond it instead. On the other hand, if there is a differential prefetch request from the management server 23, the second storage apparatus 100A obtains the data from the pool 110 of the first storage apparatus 100 and stores it in the pool 110 of the second storage apparatus 100A.

[0032] In the above embodiment, the clone volume 103 refers to address conversion tables 142D to 142E for data written to the clone volume 103, and refers to address conversion table 142C for data related to the primary volume 101, and when data related to the primary volume 101 is obtained from the first storage device 100 and stored in the second storage device 100A, the reference destination of the first address conversion table 142C is changed from pool 110 of the first storage device 100 to pool 110 of the second storage device 100A.

[0033] In the above embodiment, when creating a clone volume 103 in the second storage device 100A, the first storage device 100 has a snapshot of the primary volume 101, and the second storage device 100A creates a cache shared volume 104 and an address conversion table 142C which is an address conversion table referenced by the cache shared volume 104 and which references the snapshot volume via the external volume 105, copies the cache shared volume 104 to create a clone volume which references the first address conversion table 142C, and also creates address conversion tables 142D to 142E which register the storage address of data written to the clone volume 103.

[0034] 2 is a block diagram showing an example of the hardware configuration of a storage device in a storage system according to the first embodiment. Since the first storage device 100 and the second storage device 100A have similar hardware configurations, the following description will focus on the second storage device 100A. Note that the example shown in the figure simplifies the network configuration example. The second storage device 100A is connected to a production server 11 and a data analysis server 12 via a storage network 31, and to a management server 23 via a management network 32.

[0035] The production server 11 is a server that operates in a production environment and handles business data as an example of data. The data analysis server 12 is a server that performs data analysis on data provided from the second storage device 100A. As hosts, the production server 11 and the data analysis server 12 send I / O requests (write requests or read requests) that specify input / output destinations to the controller 61.

[0036] The management server 23 is a server that manages the storage devices. The management server 23 manages the storage devices via the management network 32.

[0037] The storage network 31 is, for example, an FC (Fiber Channel) network, and the management network 32 is, for example, an IP (Internet Protocol) network. The storage network 31 and the management network 32 may be the same communication network.

[0038] The second storage device 100A includes at least one controller 61 and a plurality of physical drives 18 (SSDs: Solid State Drives) whose data reading and writing is controlled by the controller 61. The physical drives 18 are connected to each controller 61, and one or a plurality of physical drives 18 are assigned to each controller 61. Note that, although FIG. 2 shows an SSD (Solid State Drive) as an example of the physical drive 18, the present invention is not limited to this, and the physical drive 18 may be any device that physically stores data, such as an HDD (Hard Disk Drive).

[0039] The controller 61 includes at least one processor 13 , at least one memory 14 , a front-end IF 15 , a back-end IF 16 , and a management IF 17 .

[0040] The processor 13 is a processor that realizes various controls by executing programs read from the memory 14. In this embodiment, the processor 13 performs controls related to creating and deleting clones, writing and reading data, etc. The processor 13 is, for example, a CPU (Central Processing Unit), but is not limited to this.

[0041] The memory 14 is a storage device that stores programs executed by the processor 13 and data used by the processor 13. In this embodiment, for example, as shown in FIG. 2, the data in each memory 14 is duplicated by a pair of the processor 13 and the memory 14.

[0042] The front-end IF 15 is a communication interface device that mediates data exchange between the production server 11 or the data analysis server 12 and the controller 61. The controller 61 is connected to the production server 11 and the data analysis server 12 from the front-end IF 15 via the storage network 31.

[0043] The back-end IF 16 is a communication interface device that mediates data exchange between the physical drives 18 and the controller 61. The back-end IF 16 is connected to a plurality of physical drives 18.

[0044] The management IF 17 is a communication interface device that mediates data exchange between the management server 23 and the controller 61. The controller 61 is connected to the management server 23 from the management IF 17 via the management network 32.

[0045] (1-2) Memory configuration Fig. 3 is a diagram showing an example of the configuration of the memory 14 shown in Fig. 2. The programs and control data stored in the memory 14 are executed and used by the processor 13, respectively.

[0046] The memory 14 includes a control information section 140 that holds tables as examples of control data, and a program section 150 that holds programs executed by the processor 13. The program section 150 is a local memory used by the processor 13 (see FIG. 2) that belongs to the same group as the memory 14. On the other hand, the control information section 140 may be a shared memory that can be used not only by the processor 13 that belongs to the same group as the memory 14, but also by processors 13 that belong to other groups.

[0047] The control information unit 140 includes a volume management table 141, an address conversion table 142, a page management table 143, and an external volume management table 145. The volume management table 141, the address conversion table 142, the page management table 143, and the external volume management table 145 will be described in detail later.

[0048] The program section 150 includes a clone creation program 151, a clone deletion program 152, a virtual volume write program (hereinafter abbreviated as "virtual VOL write program") 153, a virtual volume read program (hereinafter abbreviated as "virtual VOL read program") 154, and a configuration setting program 155.

[0049] The clone creation program 151 has a function to create a remote clone volume 103 by copying the shared cache volume 104. The clone deletion program 152 has a function to delete an existing remote clone volume 103.

[0050] The virtual volume write program 153 has a function of writing data to the remote clone volume 103 or the pool 110 in response to access from the data analysis server 12. The virtual volume read program 154 has a function of providing the data stored in the remote clone volume 103 or the pool 110 to the data analysis server 12 in response to access from the data analysis server 12.

[0051] The configuration setting program 155, for example, sets the configuration of the cache shared volume 104, remote clone volume 103, and pool 110, and registers, updates, and deletes corresponding address information in the address translation tables 142C, 142D, and 142E according to the set configuration.

[0052] 4 is a diagram showing an example of the volume management table 141. The volume management table 141 is control data for managing volumes such as the page 120 and the primary volume 101. The volume management table 141 has the following items: volume ID 1411, capacity 1412, usage amount 1413, volume type 1414, clone source volume ID (IDentifier) ​​1415 (corresponding to the "clone source VOL ID" in the figure), and cache shared volume ID (IDentifier) ​​1416 (corresponding to the "cache shared VOL ID" in the figure). In the following explanation, the volume ID may be abbreviated to "VOL ID".

[0053] The volume ID 1411 is an identifier for distinguishing between the volumes. The capacity 1412 indicates the capacity allocated to the volume identified by the volume ID 1411 (hereinafter referred to as the volume), and the usage amount 1413 indicates the current usage amount of the volume.

[0054] The volume type 1414 indicates the type of the volume. If the volume is a pool volume, the type is displayed as "Pool VOL." If the volume is a virtual volume, the type is displayed as "Virtual VOL." If the volume is a clone created by locally virtually copying a volume, the type is displayed as "(Local Clone)." If the volume is an externally connected (external) volume from another data center different from its own data center, the type is displayed as "(External VOL)." If the volume is a cache shared volume 104, the type is displayed as "(Cache Shared)." If the volume is a remote clone volume 103, the type is displayed as "(Remote Clone)."

[0055] In this description, "external connection" refers to mapping from the primary volume 101 of one's own data center to data of another data center, and therefore also includes mapping between the page 120 to which the primary volume 101 of the own data center is linked and the primary volume 101 that holds the data of the other data center.

[0056] The clone source volume ID 1415 indicates the volume ID of the clone source cache shared volume 104 when a local clone volume is created for the volume corresponding to each volume ID. The local clone volume is a clone volume created on the first storage device 100 side. The cache shared volume ID 1416 indicates the volume ID of the cache shared volume 104 for the volume corresponding to each volume ID.

[0057] In the illustrated example, the volume with volume ID "3" is the external volume 105, the volume with volume ID "4" is the shared cache volume 104, and the two volumes with volume IDs "5" and "6" are two local clone volumes. These two local clone volumes are found to be copies of the shared cache volume 104 with volume ID "4" because the shared cache volume ID 1416 is "4".

[0058] 5A and 5B are diagrams showing examples of address conversion tables 142A, 142B, 142C, 142D, and 142E (hereinafter, collectively referred to as "address conversion tables 142" when there is no need to distinguish one from another) that manage the correspondence between logical addresses indicating data storage addresses and physical addresses. Note that Fig. 5A is an example of address conversion table 142 that includes invalid values, and Fig. 5B is an example of address conversion table 142 that does not include invalid values.

[0059] The address conversion table 142 manages the correspondence between a logical address 1421 indicating the start address of a storage area where data is stored and a physical address 1422. In this embodiment, data is processed in page units, so the physical addresses 1422 in Figures 5A and 5B are indicated by page numbers.

[0060] If the value of the physical address 1422 is a valid value such as "0" or "2," this means that the data is stored in the local data center that holds this address translation table 142. On the other hand, if the value of the physical address 1422 is an invalid value such as "FFFFFFFF" (see, for example, FIG. 5A), this means that the data is stored in the logical address 1421 of the straight-mapped page 120 in the local data center (the same address as the logical address 1421 of the accessed virtual volume). For example, if the accessed virtual volume is a local clone volume, is straight-mapped to the pool 110, and the pool 110 externally connects a virtual volume of the clone-source data center, this means that the actual data is stored in the clone-source data center.

[0061] 6 is a diagram showing an example of the page management table 143. The page management table 143 is control data for managing pages. The page management table 143 has the following items: page number 1431, pool volume ID 1432, start address 1433, status 1434, allocation destination volume ID 1435, and allocation destination logical address 1436.

[0062] The page number 1431 indicates an identifier (page number) assigned to each page. The pool volume ID 1432 indicates the volume ID of the page 120 that stores the entity data of the page identified by the page number 1431 (hereinafter, the page). The start address 1433 indicates the start address of the entity data of the page stored in the pool volume ID 1432.

[0063] The status 1434 indicates whether the page is allocated to a page in the primary volume 101. The allocated volume ID 1435 indicates the volume ID of the primary volume 101 to which the page is allocated, and the allocated logical address 1436 indicates the logical address (start address) of the page allocated to the primary volume 101.

[0064] 7 is a diagram showing an example of the external connection volume management table 145. The external connection volume management table 145 is control data for managing volumes (external connection volumes) externally connected from other data centers. The external connection volume management table 145 has the following items: external connection volume ID 1451, connection node ID 1452, port ID 1453, and target device ID 1454. The external connection volume ID 1451 indicates an identifier assigned to an external connection volume in the local data center.

[0065] The connection node ID 1452 indicates a data center ID indicating the connection source data center of the external volume (hereinafter referred to as the external volume) identified by the external volume ID 1451. The data center ID is an identifier that can uniquely identify multiple data centers that make up the storage device 100. The port ID 1453 indicates the identifier of the port of the local data center to which the external volume is connected, and the target device ID 1454 indicates the identifier of the target device that holds the entity data of the external volume in the connection source data center.

[0066] (1-3) Processing The following describes in detail the processes executed by the storage system according to this embodiment: a "clone creation process" that creates a clone volume as a clone of a certain volume, a "write process" that is executed in response to a write request to the clone, a "read process" that is executed in response to a read request to the clone, and a "clone deletion process" that deletes the clone. In this embodiment, the volume from which a clone volume is created is also referred to as the "clone source."

[0067] (1-3-1) Clone creation process 8 is a flowchart showing an example of the procedure for the clone creation process, which is executed by the clone creation program 151.

[0068] In step S101, the clone creation program 151 determines whether or not the clone source is the externally connected volume 105. In this embodiment, if the clone source is the externally connected volume 105, the remote clone volume 103 is selected, whereas if the clone source is not the externally connected volume 105, the local clone volume is selected. If the clone creation program 151 determines in step S101 that the clone source is the externally connected volume 105, it executes step S102, whereas if it determines that this is not the case, it executes step S107, which will be described later.

[0069] In step S102, the clone creation program 151 determines whether or not there is a shared cache volume 104. If it is determined that there is no shared cache volume 104, the clone creation program 151 executes step S103, but if it is determined that there is no shared cache volume 104, it executes step S105, which will be described later.

[0070] In step S103, the clone creation program 151 updates the volume management table 141 to newly assign a volume ID to the shared cache volume 104. Specifically, the clone creation program 151 updates the volume type 14141 for the volume ID "4" of the shared cache volume 104 in the volume management table 141 to "Virtual VOL (Cache Shared)".

[0071] In step S104, the clone creation program 151 initializes the address information in the address conversion table 142C to an invalid value. The reason for initializing to an invalid value is that the shared cache volume 104 has been newly created and there is no storage address information where data is stored.

[0072] In step S105, the clone creation program 151 updates the volume management table 141 to assign a volume ID to the newly created remote clone volume 103. Specifically, for example, if the volume IDs of the newly created remote clone volumes 103 are "5" and "6" in the volume management table 141, the clone creation program 151 updates the cache shared VOL ID 1416 of the cache shared volume 104 to "4" for the volume IDs "5" and "6".

[0073] In step S106, the clone creating program 151 copies the address translation table 142C corresponding to the shared cache volume 104 as the address translation table 142D of the remote clone volume 103.

[0074] On the other hand, as described above, if it is not determined in step S101 that the clone source is the externally connected volume 105, then in step S107 the clone creation program 151 updates the volume management table 141 to assign the volume ID of the local clone volume. Specifically, for example, if the volume ID of the local clone volume is "2" in the volume management table 141, the clone creation program 151 updates the cache shared VOL ID 1416 of the cache shared volume 104 for the volume ID "2" to the volume ID of the local clone volume.

[0075] In step S108, the clone creating program 151 copies the address translation table (not shown) corresponding to the clone source volume as the address translation table of the local clone volume.

[0076] (1-3-2) Clone deletion process 9 is a flowchart showing an example of the procedure for the clone deletion process. The clone deletion process is executed by the clone deletion program 152.

[0077] In step S201, the clone deletion program 152 determines whether or not the target volume is a remote clone volume 103. If the target volume is a remote clone volume 103, the clone deletion program 152 executes step S102, but if the target volume is not a remote clone volume 103, it executes step S205, which will be described later.

[0078] In step S102, the clone deletion program 152 determines whether or not there has been a request to delete the shared cache volume 104. If there has been a request to delete the shared cache volume 104, the clone deletion program 152 executes step S203, whereas if there has not been a request to delete the shared cache volume 104, the clone deletion program 152 executes step S205, which will be described later.

[0079] In step S203, the clone deletion program 152 releases all pages that have been allocated to the shared cache volume 104, and updates the page management table 143. Specifically, the clone deletion program 152 updates the allocated volume ID 1435 of the page number of the page in the shared cache volume 104 in the page management table 143 to "-", and also updates the allocated logical address 1436 to "-".

[0080] In step S204, the clone deletion program 152 releases the volume ID of the cache shared volume 104, and updates the volume management table 141. Specifically, the clone deletion program 152 updates the volume type 14141, which indicates this cache shared volume 104, in the volume management table 141 from "Virtual VOL (Cache Shared)" to, for example, "-".

[0081] In step S205, the clone deletion program 152 releases all pages that have been allocated to the remote clone volume 103, and updates the page management table 143. Specifically, the clone deletion program 152 updates the allocation destination volume ID 1435 of the page number of the page of the remote clone volume 103 in the page management table 143 to "-", and updates the allocation destination logical address 1436 to "-".

[0082] In step S206, the clone deletion program 152 releases the volume ID of the local clone volume, and updates the volume management table 141. Specifically, the clone deletion program 152 updates the volume type 14141, which indicates that this is a local clone volume, in the volume management table 141 from "Virtual VOL (Local Clone)" to, for example, "-".

[0083] (1-3-3) Write processing 10 is a flowchart showing an example of the virtual volume write processing procedure. The virtual volume write processing is executed by the virtual volume write program 153.

[0084] In step S301, the virtual volume write program 153 allocates a free page and updates the page management table 143. Specifically, the virtual volume write program 153 allocates a page having a page number for which the allocation destination volume ID 1435 in the page management table 143 is "-", and updates the allocation destination volume ID 1435 in the page management table 143 for the page number to which the page has been allocated to the volume ID assigned to the volume to which the data is to be written. In step S302, the virtual volume write program 153 writes the data to the pool 110 that contains the page.

[0085] In step S303, the virtual volume write program 153 updates the address translation table 142D that corresponds to the remote clone volume 103. In step S304, the virtual volume write program 153 returns a "Good" response to the data analysis server 12 or a completion response to the caller. This causes the data analysis server 12 and the like to recognize that preparations for writing data to the remote clone volume 103 are complete and begin writing data to the remote clone volume 103.

[0086] (1-3-4) Virtual VOL read processing 11 is a flowchart showing an example of the virtual volume read processing procedure. The virtual volume read processing is executed by the virtual volume read program 154.

[0087] In step S401, the virtual volume read program 154 references the address translation table for the virtual volume specified in the read request. In step S402, the virtual volume read program 154 determines whether the address translation table contains an invalid value. If the virtual volume read program 154 determines that the value is invalid, it executes step S403. If the virtual volume read program 154 determines that the value is not invalid, it executes step S410, which will be described later.

[0088] In step S403, the virtual volume read program 154 references the volume management table 141, identifies the ID of the shared cache volume corresponding to the virtual volume, and references the address translation table 142C of the shared cache volume 104 corresponding to that ID.

[0089] In step S404, the virtual volume read program 154 determines whether the value is invalid in the address conversion table 142C. If the virtual volume read program 154 determines that the value is invalid, it executes step S405, but if the value is not invalid, it executes step S409.

[0090] In step S409, the virtual volume read program 154 updates the address information in the address conversion table of the virtual volume that is the read request destination to the physical address acquired in step S404. In step S410, the virtual volume read program 154 reads the data based on the address information indicated in the address conversion table.

[0091] Meanwhile, in step S405, the virtual volume read program 154 reads data from the external volume 105. In step S406, the virtual volume read program 154 executes a write process to the shared cache volume 104.

[0092] In step S407, the virtual volume read program 154 transfers the data read from the external volume 105 or the page of the virtual volume that is the target of the read request to the data analysis server 12, which is an example of a host device. In step S408, the virtual volume read program 154 responds with "Good" to the data analysis server 12. As a result, the data analysis server 12 recognizes that preparations for reading data from the virtual volume that is the target of the read request are complete, and begins reading the data from the virtual volume that is the target of the read request.

[0093] 12 is a timing chart showing an example of the procedure of a storage control method according to this embodiment. The storage control method is generally for a storage system including a first storage device 100 and a second storage device 100A, each of which has a processor and a pool 110 and is connected via a network 2 or the like. The first storage device 100 has a primary volume 101, and the second storage device 100A has a plurality of clone volumes 103 that are clones of the primary volume 101. The second storage device 100A stores data from the clone volume 103 in the pool 110 of the second storage device 100A. If the data is not stored in the pool 110 of the second storage device 110A, the second storage device 100A retrieves the data from the pool 110 of the first storage device 100 and stores it in the pool 110 of the second storage device 100A, so that the data related to the primary volume 101 stored in the pool 110 of the second storage device 100A can be commonly accessed by the plurality of clone volumes 103. The update of the page management table 143, volume management table 141, etc. that accompanies the following processing has already been explained, so the explanation will be omitted.

[0094] In step S1001, the management server 23 instructs the first storage device 100 to create a local clone volume. In step S1002, the first storage device 100 creates a local clone volume.

[0095] In step S1003, the management server 23 instructs the second storage device 100A to set the external volume 105. In step S2004, the second storage device 100A sets the external volume 105.

[0096] In step S1005, the management server 23 instructs the second storage apparatus 100A to create a remote clone volume 103. In step S1006, the second storage apparatus 100A creates a shared cache volume 104. In step S1007, the second storage apparatus 100A copies the shared cache volume 104 to create a remote clone volume 103.

[0097] In step S1008, the management server 23 determines whether the required number of remote clone volumes 103 have been created, and if the required number of remote clone volumes 103 have not been created, it repeats the above-mentioned step S1005, whereas if the required number of remote clone volumes 103 have been created, it terminates the process.

[0098] (2) Second embodiment Since the storage system according to the second embodiment has the same configuration and operation as the storage system according to the first embodiment, a description of the similar configuration and operation will be omitted and the following description will focus on the differences. In this embodiment, if the second storage device 100A has accessed data in the remote clone volume 103 and the data is stored in the pool 110 of the second storage device 100A, the second storage device 100A reads the data from the pool 110 of the second storage device 100A and sends it to the source of the access request, and if the data is not stored in the pool 110 of the second storage device 100A, the second storage device 100A obtains the data from the pool 110 of the first storage device 100A and sends it to the source of the access request, and stores the obtained data in the pool 110 of the second storage device 110A.

[0099] 13 is a block diagram showing an example of the logical configuration of a storage system according to the second embodiment. In the illustrated example, due to space limitations, part of the flow for creating a snapshot volume 102A is shown in a simplified form.

[0100] In the first embodiment described above, a snapshot volume 102 of a primary volume 101 is acquired in the first storage device 100 at a certain point in time, but a situation in which, for example, new data is written to the primary volume 101 after that point in time (or, for example, data may be deleted) is not assumed, whereas the second embodiment assumes such a situation. In the second embodiment, when the referenced snapshot is changed to a new one, data is prefetched using snapshot difference information (differences written after the old snapshot), and the prefetched data obtained using the old snapshot is used as is. As a specific example of the above situation, the following will explain the case where data is written.

[0101] In the first storage device 100 in the first data center 1, the production server 11 writes new data to the primary volume 101, which already has page "A" 107. The new data is stored in the primary volume 101 as page "B" 107A, for example.

[0102] Here, in the first storage device 100, in response to the snapshot creation instruction issued by the management server 23, a snapshot volume 102A is created for the primary volume 101, following the snapshot volume 102, which includes page 107A of "B" related to subsequent data writing (see, for example, the black arrows in the figure near the snapshot volumes 102 and 102A). The snapshot volume 102A includes not only page 107 of "A" but also page 107A of "B".

[0103] For example, in the case of Figure 13, snapshot volume 102A is associated with page 120, and page 107 of "A" and page 107A of "B" of snapshot volume 102A have their addresses converted by address conversion table 142B and are assigned to page 120 of "A" and page 120 of "B" (not shown) in pool 110.

[0104] As described above, the external volume 105 corresponds to the primary volume 101, and page 107A of "B" is reflected in accordance with the snapshot volume 102A of the primary volume 101. As a result, the external volume 105 includes page 107 of "A" and page 107A of "B".

[0105] As described above, the snapshot volume 102A is reflected in the cache shared volume 104 so that it corresponds to the primary volume 101 via the external volume 105, and the address information thereof is also registered in the address translation table 142C. In this embodiment, this type of processing is referred to as "cache shared volume synchronization processing."

[0106] 14 is a diagram showing an example of the configuration of the memory 14 in the second embodiment. The programs and control data stored in the memory 14 are executed and used by the processor 13, respectively.

[0107] In the second embodiment, in addition to the memory configuration of the first embodiment, a shared cache volume synchronization program 156 and a difference extraction program 157 are further provided.

[0108] The shared cache volume synchronization program 156 has a function of synchronizing the external volume 105 and the shared cache volume 104. The shared cache volume synchronization program 156 reads data from the external volume 105 and writes it to the shared cache volume 104 based on the differential location information received from the management server 23.

[0109] The difference extraction program 157 has the function of comparing the entire logical-physical conversion tables (address conversion tables) of two snapshots and creating difference location information. The difference location information is a list of logical addresses that correspond to different physical addresses. For example, the written page 107 of "A" and page 107A of "B" store different data at the same logical address, and therefore correspond to different physical addresses. Therefore, the difference extraction program 157 adds the logical address of page 107A to the difference location information.

[0110] FIG. 15 is a sequence chart showing an example of a procedure for switching the external volume 105 to a new snapshot volume 102. In FIG.

[0111] In step S2001, the management server 23 instructs the first storage device 100 to create a snapshot of the primary volume 101. In step S2002, the first storage device 100 creates a new snapshot volume 102A for the primary volume 101.

[0112] In step S2003, the management server 23 instructs the first storage device 100 to acquire differential location information between the snapshot 102A created in step S2001 and the snapshot 102 that is currently set as the external volume 105. In step S2004, the first storage device 100 creates differential location information.

[0113] In step S2005, the management server 23 instructs the second storage apparatus 100A to switch the external volume 105. The instruction to switch the external volume 105 includes, for example, a request for differential prefetching, the volume ID of the snapshot volume 102A, and differential position information.

[0114] In step S2006, the second storage device 100A updates the settings of the external volume 105 in response to the instruction to switch the external volume 105. In step S2007, the second storage device 100A deletes the existing remote clone volume 103. It is assumed here that there is no request from the management server 23 to delete the cache shared volume 104.

[0115] Step S1500 is a cache shared volume synchronization process, which includes steps S2008 to S2010.

[0116] In step S2008, the second storage device 100A requests the first storage device 100 to read data based on address information corresponding to the difference, for example, page 107A of "B." In step S2009, the first storage device 100 reads the data and transmits the data to the second storage device 100A.

[0117] In step S2010, the second storage device 100A writes data to the shared cache volume 104. Details of this shared cache volume synchronization processing will be described later.

[0118] Finally, in step S2011, the second storage device 100A copies the shared cache volume 104 to create remote clone volumes 103 in the same number as the number of data analysis servers 12.

[0119] 16 is a flowchart showing an example of the steps of the shared cache volume synchronization process (step S1500) shown in FIG.

[0120] In step S1501, the second storage device 100A initializes the current address of the address translation table 142C corresponding to the shared cache volume 104 to "0".

[0121] In step S1502, the second storage device 100A references the differential location information for the current address. In step S1503, the virtual volume write program 153 determines whether there is a difference in the current address. If the second storage device 100A determines that there is a difference, it executes step S1504; if it does not determine that there is a difference, it executes step S1508.

[0122] In step S1504, the second storage device 100A determines whether or not there is a request for differential prefetching. If there is a request for differential prefetching, the second storage device 100A executes step S1505, and if there is no request for differential prefetching, the second storage device 100A executes step S1507.

[0123] In step S1505, the first storage device 100 reads data from the externally connected volume 105. Specifically, the first storage device 100 reads data from the current address of the externally connected volume 105. In step S1506, the virtual volume write program 153 executes a process of writing data to the current address of the shared cache volume 104.

[0124] On the other hand, in step S1507, if there is no request for differential prefetching from the management server 23, the second storage device 100A invalidates, for example, the address translation table 142C corresponding to the cache shared volume 104. The invalidation in step S1507 is performed, for example, in order to make it possible to use previous data that precedes the latest data in cases where it is not necessarily necessary to use the latest data (when there is no request for differential prefetching).

[0125] In step S1508, the second storage device 100A adds, for example, a predetermined offset address to the current address to accommodate the next data. In step S1509, the second storage device 100A determines whether the current address is the end address of the externally connected volume 105. If it is the end address, the cache shared volume synchronization process ends and returns to the caller process to execute the next step (step S2011). If it is not the end address, the process returns to the above-mentioned step S1502 and executes the subsequent steps.

[0126] The storage system according to the present embodiment described above includes a first storage device 100 and a second storage device 100A, each having a processor and a pool, and connected via a network. The first storage device 100 has a primary volume 101, and the second storage device 100A has a plurality of clone volumes 103, which are clones of the primary volume 101. The second storage device 100A stores data of the clone volume 103 in the pool of the second storage device 100A, and if the data is not stored in the pool 110 of the second storage device 100A, retrieves the data from the pool 110 of the first storage device 100 and stores it in the pool 110 of the second storage device 100A. Data related to the primary volume 101 stored in the pool 110 of the second storage device 100A can be commonly accessed by the plurality of clone volumes 103.

[0127] According to the above-described embodiment, data of the primary volume 101 in the first storage device 100 is acquired through at least one remote clone volume 103 in the second storage device 100A. Since data copying is not performed using the network 2 between the storage devices when the remote clone volume 103 is created, the remote clone volume 103 can be created quickly. Furthermore, by storing data read from the primary volume 101 in the cache shared volume 104, when a read access to the same data occurs in a different remote clone volume 103, the number of times data is copied using the network 2 between the first storage device 100 and the second storage device 100A can be reduced to one, thereby improving performance. This reduces the burden on the network bandwidth between the first environment and the second environment, reducing network power consumption, while speeding up data access in the second environment. Furthermore, this also reduces the storage capacity required for writing data to a single write, thereby reducing costs.

[0128] The storage control method for the storage system of this embodiment is a storage control method for a storage system comprising a first storage device 100 and a second storage device 100A, each having a processor and a pool, and connected via a network, wherein the first storage device 100 has a primary volume 101, and the second storage device 100A has a plurality of clone volumes 103 which are clones of the primary volume 101, and the second storage device 100A stores data of the clone volume 103 in the pool of the second storage device 100A, and if the data is not stored in the pool of the second storage device 100A, retrieves the data from the pool of the first storage device 100 and stores it in pool 110 of the second storage device 100A, and makes the data related to the primary volume 101 stored in pool 110 of the second storage device 100A commonly accessible by the plurality of clone volumes 103.

[0129] In the storage system according to this embodiment, multiple clone volumes 103 can access data in the same primary volume 101, and can write to each volume separately.

[0130] In the storage system of the above embodiment, the second storage device 100A has a first address conversion table 142C for accessing data related to the primary volume 101 and second address conversion tables 142D to 142E for each of the multiple clone volumes 103, and accesses data related to the primary volume 101 that is stored in pool 110 of the first storage device 100 and pool 110 of the second storage device 100A via the first address conversion table 142C, and accesses data that has been written to the clone volume 103 and is stored in pool 110 of the second storage device 100A via the second address conversion tables 142D to 142E.

[0131] In the above embodiment, the clone volume 103 refers to the second address conversion tables 142D to 142E for data written to the clone volume 103, and refers to the first address conversion table 142C for data related to the primary volume 101, and when the data related to the primary volume 101 is obtained from the first storage device 100 and stored in the second storage device 100A, the reference destination of the first address conversion table 142C is changed from the pool 110 of the first storage device 100 to the pool 110 of the second storage device 100A.

[0132] In the above embodiment, when creating a clone volume 103 in the second storage device 100A, the first storage device 100 has a snapshot of the primary volume 101, and the second storage device 100A creates a cache shared volume 104 and a first address conversion table 142C which is an address conversion table referenced by the cache shared volume 104 and which references the snapshot volume via the external volume 105, copies the cache shared volume 104 to create a clone volume which references the first address conversion table 142C, and also creates second address conversion tables 142D to 142E which register the storage address of data written to the clone volume 103.

[0133] In the above embodiment, the multiple clone volumes 103 are configured by multiple copies of the shared cache volume 104, and the second address translation tables 142D to 142E are provided in a number corresponding to the multiple remote clone volumes 103.

[0134] In the above embodiment, if the data of the accessed clone volume 103 is stored in pool 110 of the second storage device 100A, the second storage device 100A reads the data from pool 110 of the second storage device 100A and sends it to the source of the access request, and if the data is not stored in pool 110 of the second storage device 100A, the second storage device 100A obtains the data from pool 110 of the first storage device 100 and sends it to the source of the access request, and stores the obtained data in pool 110 of the second storage device 110A.

[0135] In the above embodiment, when there is a prefetch request, the data is acquired from the pool 110 of the first storage device 100 and stored in the pool 110 of the second storage device 100A.

[0136] In the above embodiment, the first storage device 100 has multiple snapshots created at different times for the same primary volume 101, and when the snapshot referenced in the first address conversion table 142C is changed to another snapshot created from the same primary volume 101, the data relating to the difference is obtained from the first storage device 100 using difference information between the snapshot before the change and the snapshot after the change, and stored in pool 110 of the second storage device 100A, and after the referenced snapshot is changed, the data stored in pool 110 of the second storage device 100A before and after the change is accessed from the clone volume 103.

[0137] The present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the spirit and scope of the appended claims. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, the elements described in parallel in the present embodiment may be configured such that at least one of the elements is connected in series to the other elements. [Industrial Applicability]

[0138] The present invention can be applied to a storage system relating to a technique for copying data between a first environment and a second environment via a network. [Explanation of symbols]

[0139] 100...first storage device, 100A...second storage device, 101...primary volume, 102...data analysis server, 103...remote clone volume, 104...cache shared volume, 105...external volume, 110...pool

Claims

1. A storage system including a first storage device and a second storage device, each having a processor and a pool, and connected via a network, the first storage device has a primary volume; the second storage device has a plurality of clone volumes that are clones of the primary volume; The second storage device storing the data of the clone volume in a pool of the second storage device, and if the data is not stored in the pool of the second storage device, obtaining the data from the pool of the first storage device and storing it in the pool of the second storage device; The data related to the primary volume stored in the pool of the second storage device can be commonly accessed by the plurality of clone volumes. A storage system comprising:

2. The multiple clone volumes can access the data of the same primary volume and can be written to separately.

2. The storage system according to claim 1.

3. the second storage device has a first address translation table for accessing data related to the primary volume, and a second address translation table for each of the plurality of clone volumes; accessing data related to the primary volume and stored in a pool of the first storage device and a pool of the second storage device via the first address translation table; Accessing data written to the clone volume and stored in a pool in the second storage device via the second address translation table 3. The storage system according to claim 2.

4. the clone volume refers to the second address translation table for data written to the clone volume, and refers to the first address translation table for data related to the primary volume; When data related to the primary volume is acquired from the first storage device and stored in the second storage device, the reference destination of the first address translation table is changed from the pool of the first storage device to the pool of the second storage device.

4. The storage system according to claim 3.

5. When creating a clone volume in the second storage device, the first storage device has a snapshot of the primary volume; the second storage device creates a cache shared volume and a first address translation table which is an address translation table referenced by the cache shared volume and which references the snapshot volume via an external volume; A clone volume that references the first address translation table is created by copying the cache shared volume, and the second address translation table is created to register the storage address of data written in the clone volume.

4. The storage system according to claim 3.

6. the plurality of clone volumes are configured by making a plurality of copies of the cache shared volume; The second address translation table is provided with a number corresponding to the number of clone volumes.

6. The storage system according to claim 5.

7. The second storage device When the accessed data of the clone volume is stored in a pool of the second storage device, the data is read from the pool of the second storage device and sent to the access request source, and when the data is not stored in the pool of the second storage device, the data is obtained from the pool of the first storage device and sent to the access request source, and the obtained data is stored in the pool of the second storage device.

2. The storage system according to claim 1.

8. When a prefetch request is received, the data is obtained from the pool of the first storage device and stored in the pool of the second storage device.

2. The storage system according to claim 1.

9. the first storage device has a plurality of snapshots created at different times for the same primary volume, when changing the snapshot referred to in the first address translation table to another snapshot created from the same primary volume, using difference information between the snapshot before the change and the snapshot after the change, acquiring data relating to the difference from the first storage device and storing the data in a pool in the second storage device; After the referenced snapshot is changed, the data stored in the pool of the second storage device before and after the change is accessed from the clone volume.

4. The storage system according to claim 3.

10. A storage control method for a storage system comprising a first storage device and a second storage device, each having a processor and a pool, and connected via a network, comprising: the first storage device has a primary volume; the second storage device has a plurality of clone volumes that are clones of the primary volume; The second storage device storing the data of the clone volume in a pool of the second storage device, and if the data is not stored in the pool of the second storage device, obtaining the data from the pool of the first storage device and storing it in the pool of the second storage device; The data related to the primary volume stored in the pool of the second storage device is made accessible to the plurality of clone volumes in common. A storage control method comprising:

Citation Information

Patent Citations

  • Storage system and its control method

    JP2007213345A

  • Storage system and storage control method

    JP2019124983A

  • Storage system and storage control method

    JP2021026512A

  • Distributed storage system

    JP2023123802A

  • Information processing system and method

    JP2024027156A