The present invention generally relates to management of logical volumes.
Recently, a data center dynamically allocates its computers, networks and storage virtualized resources in order to make efficient use of resources and solve or mitigate bottlenecks and failures quickly. In particular, volume scale out is performed to satisfy an expected or unexpected increase on the read-workload demand of a service, that cannot be satisfied with a single logical volume. Moreover, volume migration is performed to satisfy an expected or unexpected increase on the disk-performance demand (e.g. require changing from SATA to SSD), and to balance the workload of several storages. Migration may also be required to resume the service when a problem occurs in the I/O path between a host and its provided logical volume. However, performing volume scale out and volume migration takes a big amount of time because full data copy is required.
On the other hand, there is a data reusing method in order to avoid copying large amounts of data between logical volumes. Patent Literature 1 discloses a system in which even with the command to delete the application data, the stored application data is not deleted but it is kept stored for future reuse by the same application. This method avoids the time-consuming task of making a backup and restoring the application data that needs to be reused.
[PTL 1]
US Patent Publication No. 2012/0179823
The related art disclosed by Patent Literature 1 is used for the purpose of reusing data as a copy of previously discarded data. However, this technology cannot be used for logical volume scale out or migration. Because in these cases, at least one logical volume is still provided to the host. Therefore, for reusing the data once duplicated to the original data, management of relationship between the original data is required. For example, when a logical volume is migrated to a new logical volume, the original volume is usually deleted. Even if the data in the source logical volume is not deleted but kept, it cannot be used as a copy of the data in the destination logical volume, which is provided to a host, because in the system of the Patent Literature 1 (1) data kept is not associated with original data but with an application, and (2) data kept is not updated according to the changes in related original data. As a result, it is not possible to reuse the data kept in order to avoid the time-consuming and resource-consuming task of copying a logical volume when performing management operations such as at least one of logical volume scale out and logical volume migration, which are operations that need to be performed in short time to solve unexpected problems and demands before downtime and bad performance occur.
A management system manages a plurality of logical volumes in a storage system coupled to a host system. The plurality of logical volumes includes a first logical volume provided to the host system and a second logical volume. The management system manages the second logical volume as a duplicate volume of the first logical volume and a first state volume which is a logical volume provided to the host system. The management system changes the second logical volume to a second state volume associated with the first logical volume, which is not a logical volume provided to the host system and which is on standby for a future use by the host system. The management system manages a data difference between data stored in the second logical volume which is the second state volume and data stored in the first logical volume associated with the second logical volume if data is newly stored in the first logical volume.
According to the present invention, in a data center, an automated process or an administrator can perform unplanned management operations such as at least one of scale out and migration without the need for time-consuming logical volume copy.
An embodiment of the present invention will be described below.
Although the expression “aaa table” is used to describe information in the following description, the information may be expressed in a data structure other than a table. In order to denote independence from the data structure, the term “aaa table” can be replaced with the term “aaa information”.
Although an ID (identifier) is used as information for identifying a target in the following description, the ID can be replaced with other kinds of identification information.
In the following description, the term “program” is occasionally used as a subjective to describe a process. However, the program is executed by a processor unit (for example, a CPU (Central Processing Unit)) to perform a determined process using at least one of a storage unit (e.g. a memory) and an interface unit (e.g. a communication port). Therefore, the subject of the process can be a processor unit. A part of the process may be performed by a hardware circuit, and the processor unit may comprise the hardware circuit. A program may be installed from a program source. The program source may be a program distribution server or a portable storage medium, for example.
In the following description, a collection of one or more computers configured to manage logical volumes and display information for display may be referred to as a “management system”. In the case where a management computer displays the information for display, the management computer may serve as the management system. In addition, a combination of the management computer and a display computer also may serve as the management system. In order to enhance the speed and the reliability of a management process, a plurality of computers may be used to achieve a process that is identical or similar to that performed by the management computer. In this case, the plurality of computers (which may include the display computer in the case where the display computer is used for display) may serve as the management system. In the embodiment, the management computer serves as the management system. The phrase “the management computer displays information” may denote that information is displayed on a display device possessed by the management computer, or may denote that information for display is transmitted to the display computer coupled to the management computer. In the latter case, the display computer displays information represented by the information for display on the display device possessed by the display computer.
In the following description, the term “logical volume” denotes a logical storage device. The logical volume may be a real logical volume, or may be a virtual logical volume. The term “real logical volume” denotes a logical volume based on one or more PDEVs. The term “PDEV” is the abbreviation of a non-volatile physical storage device such as a HDD (Hard Disk Drive) or a SSD (Solid State Drive). A plurality of PDEVs may form a plurality of RAID (Redundant Array of Independent (or Inexpensive) Disks) groups. The RAID group may be referred to as a “parity group”. Examples of the “virtual logical volume” may include a logical volume according to a storage virtualization technology and that is based on a storage resource (e.g. a logical volume) of an external storage apparatus coupled to a storage apparatus having the virtual logical volume, a logical volume according to a capacity virtualization technology (typically, Thin Provisioning), and a logical volume provided as a snapshot of an original logical volume.
<Overview of the Embodiment>
An overview of the embodiment is explained by referring to the diagram shown in
Time (t) represents a host computer named Host1 that serves a service. The Provided logical volume named Logical volume1, hereinafter LV1, is coupled to Host1 (
After time (t), the service served by Host1 has a temporal demand for read-heavy workload that LV1 alone cannot satisfy. Therefore, scale out is requested. Since LV1 is not associated with any Standby logical volume, scale out is performed as follows (
Time (t+1) represents the state when the scale out task has finished and LV2 is a Provided logical volume, coupled to Host2. The read-heavy workload of the service is divided or balanced between Host1 and Host2. The data in LV1 and LV2 is kept the same by propagating the changes (write) that arrive to one of the logical volumes to the other logical volume. The changes can be propagated by at least one of the storage system, the host system and the management system. The logical volumes LV1 and LV2 are considered in a pairing relation because their data is kept synched by the storage system. The recent read and write rate of LV1 is managed by the management system. The read and write rate is a value, expressed as read frequency (e.g. TOPS (I/O per second)) divided by read and write frequencies. Further the storage system can manage a paring relation between LV1 and LV2 and keep their data synched.
After time (t+1), the service demand for read-heavy workload ends. In order to use efficiently the storage system resources, Host2 is released from the service, and the resources to couple Host2 and LV2 are released. The management system determines that LV2 is suitable to become a Standby logical volume, based on the recent read and write rate of LV1, which denotes that the service has read-heavy workload and does not have write-heavy workload (
When LV2 becomes a Standby logical volume, LV2 contains the same data as LV1, but their data becomes different as writes arrive to LV1. The association between LV1 and LV2 and the data difference are managed by at least one of the management system and the storage system (
Time (t+2) represents the state when the LV1 and LV2 are associated and their data difference is managed by at least one of the management system and the storage system. LV1 is a Provided logical volume and LV2 is a Standby logical volume. In time (t+2), if the amount of the data difference is above a threshold, the managed data difference can be copied from LV1 to LV2 fully or partially by the storage system autonomously or in response to a request from the management system, so that the amount is smaller than the threshold. As a result, it is possible to synch LV1 and LV2 after time (t+2).
After time (t+2), the service served by Host1 has again a temporal demand for read-heavy workload that LV1 alone cannot satisfy. Therefore, scale out is requested. Since LV1 is associated with a Standby logical volume, scale out is performed in short time as follows (
Time (t+3) represents the state when the scale out task has finished, similarly to the state represented in time (t+1).
As described in the overview above, by (1) keeping the logical volume that was requested to be deleted, (2) associating the logical volume kept with its original logical volume provided to a host, and (3) managing the data difference between the logical volumes, one duplicated logical volume of the original logical volume can be provided multiple times by performing a full copy of a logical volume for the first time it is duplicated. Moreover, because the management system according to the embodiment handles the burden of deciding which logical volumes are kept, for how long are kept, and when should be reused or deleted, the management system can be also used by automated processes such as auto-scale and migration, and by unskilled users and administrators that request operations of logical volume duplication and logical volume deletion.
<Configuration of a Computer System>
A computer system 100 includes a storage system and a host system coupled to the storage system via a network such as SAN (Storage Area Network). A management system managing a plurality of logical volumes 2212 is coupled to the storage system and the host system via the same or another network such as a LAN (Local Area Network).
The host system is at least one host computer 2000. The host computer 2000 is a computer which uses a logical volume 2212 provided by a storage apparatus 2200, specifically, the host computer 2000 issues an I/O (Input/Output) request designating the logical volume 2212 to the storage apparatus 2200. The host computer 200 comprises an interface unit, a storage unit, an input unit, an output unit and a processor unit coupled to them. The interface unit is at least one interface device such as a data I/F 2015 and a management I/F 2016. The data I/F 2015 (e.g. an interface device of SAN) is coupled to the storage system. The management I/F 2016 (e.g. an interface device of LAN) is coupled to the management system. The data I/F 2015 and the management I/F 2016 may be the same. The storage unit is at least one storage device such as a memory 2014. The input unit is at least one input device 2011 such as a keyboard, a pointing device and so on. The output unit is at least one output device 2013 such as a display device. The processor unit is at least one processor such as a CPU 2012. The memory 2014 stores a program such as an application 2021, and the CPU 2012 executes the application 2021. The application 2021 includes a program for using a provided logical volume.
The storage system is at least one storage apparatus 2200. The storage apparatus 2200 comprises a plurality of disk devices 2213 and a storage controller unit coupled to the plurality of disk devices 2213.
Each disk device 2213 is an example of a PDEV. The plurality of disk devices 2213 may be at least one RAID group. The plurality of logical volumes 2212 are based on the plurality of disk devices 2213.
The storage controller unit is at least one storage controller such as a disk controller 2211. The disk controller 2211 comprises an interface unit, a storage unit such as a memory 2244, and a processor unit such as a CPU 2223 coupled to the interface unit and the storage unit. The interface unit comprises a data I/F 2211 coupled to the host system, a management I/F 2222 coupled to the management system, and a disk I/F 2215 coupled to the plurality of disk devices 2213. The memory 2224 stores management information 2231 a control program 2232. The management information 2231 is information with respect to the plurality of logical volumes 2212. The management information 2231 may include the same tables as tables 2121 to 2124. The CPU 2223 executes the control program 2232. The disk controller 2211 receives an I/O request designating a logical volume 2212, and write/read data in/from disk devices 2213 which are the basis of the logical volume. The disk controller 2211 manages data difference between data stored in a first logical volume and data stored in a second logical volume which has a certain relationship with the first logical volume. In the embodiment, the first logical volume is a Provided logical volume such as a Primary logical volume (a copy source logical volume) having a pairing relation with a Secondary logical volume (a copy target logical volume), or a logical volume not forming a copy pair but associated with a Standby logical volume. The second logical volume is a Secondary logical volume having a pairing relation with a Primary logical volume, a Standby logical volume associated with a Primary logical volume, or a Formatted logical volume The disk controller 2211 is configured to keep the volumes in the same pair (group) same by executing copy data (all data or differential data) from one volume to another volume autonomously or in response to a request from the management system. Further the disk controller 2211 is configured to fully or partially copy data difference between data stored in a Provided logical volume and a Standby logical volume associated with the Provided logical volume autonomously or in response to a request from the management system. Further the disk controller 2211 is configured to input (write) and output (read) of data in and from a logical volume 2212 designated by the I/O request from the host system. Further the disk controller 2211 is configured to configure information in the management information 2231 in response to a request from the management system. Information necessary for these kinds of processing is stored in the management information 2231. For example, the management information 2231 may include information defining volume ID, volume type (e.g. primary, secondary, Provided, or Standby), related volume ID (e.g. paired volume ID or associated Standby logical volume ID) for each logical volume.
As defined above, in the embodiment, the management system is a management computer 2100. The management computer 2100 comprises an interface unit, a storage unit, an input unit, an output unit and a processor unit coupled to them. The interface unit is at least one interface device such as a management I/F 2215. The management I/F 2215 is coupled to the host system and the management system. The storage unit is at least one storage device such as a memory 2114. The input unit is at least one input device 2111 such as a keyboard, a pointing device and so on. The output unit is at least one output device 2113 such as a display device. The processor unit is at least one processor such as a CPU 2112. The memory 2114 stores programs and information. The information is such as (1) a logical volume association table 2121 (
<Logical Volume Association Table 2121>
A row of the Logical volume association table 2121 represents an association between a Provided logical volume and a Standby logical volume. A row is added when a logical volume becomes Standby, i.e. when an association is created (
A Standby logical volume can be associated, by the CPU 2212, in the Logical volume association table 2121 with a Provided logical volume which also appears as a Primary logical volume at the Logical volume pairing table 2122 (
A Provided logical volume ID 3001 and a Standby logical volume ID 3002, each identify a logical volume 2212 and the storage apparatus 2200 where the logical volume belongs. Logical volumes 2212 have an ID assigned on creation that never changes until the logical volume is deleted, i.e. becomes free space 6002 (
The logical volume ID is used in the in the Logical volume association table 2121, the Logical volume pairing table (
An amount of data difference 3003 and a data difference 3004 denote an amount of different data, and the portions of different data, respectively, between the Provided logical volume and the Standby logical volume identified in the same row in the Logical volume association table 2121. Both values are changed by the CPU 2112 (the management computer 2100) (
An important flag 3005 contains one of two values: “Yes” and “No”. “Yes” value denotes that the logical volume association represented by the same row in the Logical volume association table 2121 is important. “No” value denotes that the mentioned association is not important. This flag is configured when the association is created and may be changed anytime. The flag can be configured automatically by the CPU 2112 (the management computer 2100), for example, in a scenario where the admin configures beforehand a parameter of the maximum performance that a service should be able to reach, and the CPU 2112 decides the number of Standby logical volume associations that should be configured to important in order to be able to quickly satisfy the desired maximum performance.
A data difference threshold 3006 is a value configured in the rows whose association is configured as important by the important flag 3005. When in a row with the important flag 3005 configured to “Yes” the data difference 3004 reaches the data difference threshold 3006, the CPU 2112 determines to synch fully or partially the Provided logical volume and the Standby logical volume by copying data difference specified based on the data difference 3004 from the Provided logical volume to the Standby logical volume (
It is seen from the Logical volume association table 2121 that a Provided logical volume with ID V010 that belongs to a storage apparatus with ID “VSP1” is associated with a Standby logical volume with ID “V030” that belongs to a storage apparatus with ID “VSP2”, there are 70 MB of different data between the logical volumes, the information of the portions of different data can be accessed with the pointer “0x00F65000”, the association is important, and the data difference threshold is configured to “100 MB”.
<Logical Volume Pairing Table 2122>
A row of the Logical volume pairing table 2122 represents a pairing relation between a Primary logical volume and a Secondary logical volume, where the Primary logical volume has been copied to the Secondary logical volume and their data is kept synched (
A row is deleted when the corresponding pairing relation is cancelled, or when the corresponding Primary logical volume 4001 or Secondary logical volume 4002 is deleted, made Standby or Formatted (
A Primary logical volume ID 4001 and a Secondary logical volume ID 4002, each identify a logical volume 2212 and the storage apparatus 2200 where the logical volume belongs, similarly as the logical volume ID used in the Logical volume association table 2121 (
A Logical volume read write rate 4003 contains the recent rate of the Primary logical volume identified in the same row of the Logical volume pairing table 2122. A read write rate is a value from 1 to 0, expressed as read IOPS divided by all IOPS including read and write IOPS. The higher the rate value is, the more read IOs and less write IOs has the logical volume, and therefore a logical volume is more suitable to become Standby by the CPU 2112 (
It is seen from the Logical volume pairing table 2122 that a Primary logical volume with ID “V010” that belongs to a storage apparatus with ID “VSP1” is associated with a Secondary logical volume with ID “V070” that belongs to a storage apparatus with ID “VSP2”, and the logical volume read write rate is “0.2”.
<Logical Volume Management Table 2123>
Each logical volume is represented by one row in the Logical volume management table 2123. Rows are added and deleted when logical volumes are created or deleted, i.e. made free space (
A logical volume with state 5003 “Formatted” is a logical volume with no data and not provided to the host system. A logical volume with state 5003 “Standby” is a logical volume with data and not provided to the host system. A logical volume with state 5003 “Provided” is a logical volume with data and is coupled to the host system. The state of a logical volume is changed by the CPU 2112 (the management computer 2100) (
A logical volume ID 5001 identifies a logical volume 2212 and the storage apparatus 2200 where the logical volume belongs, similarly as the logical volume ID used in the Logical volume association table 2121 (
Besides of the configuration example of
It is seen from the Logical volume management table 2123 that a Provided logical volume with ID “V010” that belongs to a storage apparatus with ID “VSP1” has a capacity of “800 GB” and is provided to a host computer named “Host5”.
<Storage Management Table 2124>
Each storage apparatus 2200 is represented by one row in the Storage management table 2124. The storage space amounts in free space 6002, free logical volumes 6003 and provided logical volumes 6004 change when logical volumes are created (free space is assigned to a logical volume), change state (
Besides of the configuration example of
It is seen from the Storage management table 2124 that a Storage with ID “VSP1” has 30 TB of free storage space, 2 TB of formatted free storage space, 4 TB of standby free storage space, and 50 TB of provided storage space.
<Logical Volume Provision Processing>
In 7001, the Logical volume provision program 2125 refers to the Logical volume association table 2121 (
In 7002, the Logical volume provision program 2125 refers to the Logical volume association table 2121 (
In 7003, the Logical volume provision program 2125 refers to the Storage management table 2124 (
In 7004, the Logical volume provision program 2125 refers to the Logical volume association table 2121 (
In 7005, the Logical volume provision program 2125 refers to the Storage management table 2124 (
In 7006, the Logical volume provision program 2125 refers to the Logical volume association table 2121 (
In 7007, the Logical volume provision program 2125 removes, from the Logical volume association table 2121 (
In 7008, the Logical volume provision program 2125 adds, to the Logical volume pairing table 2122 (
The usual situation when performing scale out is to kept both logical volumes synched, and the usual situation when performing migration is to change the roles of the pair relation and then delete the input logical volume before the data in the logical volumes is modified. In the unusual situation when the two logical volumes are not kept synched, the pairing relation is cancelled.
In the situation when the input logical volume is already a Secondary logical volume paired with a Primary logical volume V in the Logical volume pairing table 2122 (
In 7009, the Logical volume provision program 2125 provides the output logical volume to a new host computer (or the same host computer already recognizing the input logical volume) as follows: (1) changing the state of the output logical volume to Provided in the Logical volume management table 2123 (
A synch function according to the pairing relation is requested to the disk controller 2211 in the storage apparatus 2200 where the Primary logical volume or the Secondary logical volume belongs. The synch function can be configured in other resource.
Further, the subprocess composed by 7003 and 7004 is used when requesting a logical volume provision that is not a copy of other logical volume. In this case, whether the requested amount of space is available or not is determined in step 7003.
Further, when the computer system 100 or each storage apparatus 2200 keeps a predefined percentage of Formatted logical volumes from the total storage capacity, the subprocesses of 7003 and 7004 are used. In this case, whether the predetermined percentage of Formatted logical volumes exist is determined in 7003, and if not, 7004 is executed. With this process, the system can avoid the wait for the format process.
<Logical Volume Deletion Processing>
In 8001, the Logical volume deletion program 2126 refers to the Logical volume pairing table 2122 (
A paired logical volume is suitable to become Standby if the corresponding logical volume read write rate 4003 (
When the input logical volume is suitable (Yes in 8001), the processing goes to 8002. When the input logical volume is not suitable (No in 8001), the processing goes to 8003.
In 8002, the Logical volume deletion program 2126 releases resources and updates the tables of the management computer as follows: (1) sending a request to release the host computer where the input logical volume was provided, and the resources that made possible the coupling between the host computer and the logical volume (e.g. storage port, switch), (2) changing the state of the input logical volume to Standby in the Logical volume management table 2123 (
In 8003, the Logical volume deletion program 2126 requests the storage apparatus to delete, i.e. make free space, or format, i.e. become Formatted, the input logical volume. The processing updates the Logical volume management table 2123 (
<Difference Update Processing>
In 9001, the Difference update program 2127 refers to the Logical volume association table 2121 (
In 9002, the Difference update program 2127 iterates each of the Standby logical volumes retrieved in 9001. Hereinafter, the Standby logical volume selected for the each iteration is referred as iterated logical volume.
In 9003, the Difference update program 2127 refers to the Logical volume association table 2121 (
In 9004, the Difference update program 2127 orders the storage apparatus to delete, i.e. make free space, or format, i.e. become Formatted, the iterated logical volume in 9002. The processing updates the Logical volume management table 2123 (
In 9005, the Difference update program 2127 refers to the Logical volume association table 2121 (
In 9006, the Difference update program 2127 refers to the Logical volume association table 2121 (
In 9007, the Difference update program 2127 refers to the information pointed by the data difference value in 3004 in the Logical volume association table 2121 (
As described above, according to the embodiment, the management computer 2100 takes advantage of the performed task of copying a whole logical volume into another, which is a task that consumes abundant time and resources, in order to avoid many future tasks of copying a whole logical volume. The embodiment can be implemented as a management processing transparent for administrators.
Therefore, by allowing management operations such as scale out and migration to be performed avoiding a full logical volume copy, (1) resources are efficiently used and (2) unexpected problems and demands can be satisfied in short time before downtime and bad performance occur.
While an embodiment has been described above, it should be understood that the present invention is not limited to the embodiment described above, and may be changed variously without departing from the scope and spirit of the present invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2014/000829 | 2/18/2014 | WO | 00 |