WO2018011881A1 - ストレージ装置及び計算機システム - Google Patents

ストレージ装置及び計算機システム Download PDF

Info

Publication number
WO2018011881A1
WO2018011881A1 PCT/JP2016/070541 JP2016070541W WO2018011881A1 WO 2018011881 A1 WO2018011881 A1 WO 2018011881A1 JP 2016070541 W JP2016070541 W JP 2016070541W WO 2018011881 A1 WO2018011881 A1 WO 2018011881A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage area
volume
logical
virtual storage
virtual
Prior art date
Application number
PCT/JP2016/070541
Other languages
English (en)
French (fr)
Inventor
中川 弘隆
匡人 仁科
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2016/070541 priority Critical patent/WO2018011881A1/ja
Publication of WO2018011881A1 publication Critical patent/WO2018011881A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Definitions

  • the present invention relates to control of logical resources of a storage apparatus.
  • a plurality of virtual servers are constructed on a single physical host computer, and a configuration is used in which images of virtual servers and usage data are stored in a storage device. With this configuration, the data of one or a plurality of virtual servers is collected in one logical volume of the storage device.
  • Patent Document 1 discloses a technology in which one logical volume of a storage device is divided into a plurality of virtual volumes on a host computer, and data used by a virtual server is stored for each virtual volume.
  • Patent Document 2 discloses a technique for accepting only a request from a WWN (World Wide Name) registered at the time of fabric login as LU access restriction via In-band such as SAN (Storage Area Network). Yes.
  • WWN World Wide Name
  • SAN Storage Area Network
  • a storage apparatus when a plurality of logical volumes (LU: Logical Unit) are grouped into a plurality of logical groups (LU Conglomerate), and a logical path is set to a representative logical volume (ALU: Administrative Logical Unit) in the logical group.
  • the host computer issues an I / O (Input / Output) command specifying an identifier of a logical volume (SLU: Subsidy Logical Unit) other than the ALU in the logical group to which the logical path belongs, and the storage device receives the received I / O. Distributes I / O processing to the SLU specified by the command.
  • a conglomerate LU structure Conglomerate LU Structure
  • the plurality of virtual volumes disclosed in Patent Document 1 is one logical volume in the storage apparatus, and the functions of the storage apparatus are controlled in units of logical volumes, resulting in an excess storage area.
  • a virtual server template image is stored for one logical volume in the storage device, a snapshot or replica volume is generated from the logical volume storing the virtual server template image, and the generated volume is A technique for using and deploying a virtual server is known.
  • a multi-stage snap that once creates a snapshot from the template volume or generates a replica, and generates a virtual server deployment volume from the generated volume
  • a shot or multistage replication configuration is used.
  • an intermediate volume from the template volume to the virtual server deployment volume is required, an intermediate volume larger than the number of virtual servers to be deployed is required, and the number of virtual servers that can be deployed in the storage device does not use the configuration. There was a problem that it decreased compared to the case.
  • the present invention has been made in view of the above problems, and an object thereof is to suppress the consumption of the storage area of the storage apparatus by the intermediate volume.
  • the present invention is a storage apparatus having a processor, a memory, and a storage medium, wherein a logical storage area is generated from the storage medium, a logical device is assigned to the logical storage area, and a logical unit to which the logical storage area is assigned is virtually
  • a control unit provided as a storage area, wherein the control unit assigns a first logical device to the logical storage area and assigns a first logical unit associated with the first logical device to a first virtual storage;
  • the second virtual storage area is generated as a second virtual storage area, and the second virtual storage area is generated as a third virtual storage area.
  • a second logical unit is allocated with the virtual storage area as a read-only memory, and an access request for the second logical unit is transferred to the first virtual storage area.
  • a copy of the first logical device is generated as a third logical device in the logical storage area, and the third logical unit associated with the third logical device is set to the third logical device.
  • the resources allocated to the logical storage area as the second volume (intermediate volume) can be reduced, and the decrease in the number of logical devices (LDEV) that can be stored in the storage apparatus can be suppressed.
  • LDEV logical devices
  • FIG. 1 is a block diagram illustrating an example of a computer system according to a first embodiment of this invention.
  • FIG. 1 is a block diagram illustrating an example of a storage apparatus according to a first embodiment of this invention.
  • 1 is a block diagram illustrating an example of a control unit of a storage apparatus according to a first embodiment of this invention. It is a block diagram which shows a 1st Example of this invention and shows an example of a host computer. It is a block diagram which shows a 1st Example of this invention and shows an example of a management computer. It is a figure which shows a prior art example and shows an example of the operation
  • FIG. 5 is a diagram illustrating an example of an LU management table according to the first embodiment of this invention. It is a figure which shows the 1st Example of this invention and shows an example of a VM management table. It is a flowchart which shows a 1st Example of this invention and shows an example of the process performed by a control part, when an access request is received.
  • 6 is a flowchart illustrating an example of a volume management table update process performed by a control unit according to the first embodiment of this invention.
  • 4 is a flowchart illustrating an example of LU generation processing performed by a control unit according to the first embodiment of this invention.
  • FIG. 5 is a flowchart illustrating an example of copy pair generation processing performed by a control unit according to the first embodiment of this invention. It is a figure which shows a prior art example and shows an example of the process which produces
  • FIG. 9 is a block diagram illustrating a configuration of a storage apparatus that generates a clone volume from a template volume according to a conventional example.
  • FIG. 5 is a diagram illustrating a relationship between an LDEV and an LU in a process of generating a clone volume from a template volume according to the first embodiment of this invention. It is a figure which shows a prior art example and shows an example of the operation
  • FIG. 1 is a block diagram showing an example of a computer system according to the first embodiment of this invention.
  • the computer system of this embodiment is mainly composed of host computers 1000-1 and 1000-2 that use a storage device 4000 for storing data, and a management computer 3000 that manages the storage device 4000 and the host computers 1000-1 and 1000-2. Configured.
  • the entire host computer is denoted by reference numeral 1000 without “-”. The same applies to the reference numerals of other components.
  • the management computer 3000 is connected to the host computer 1000 via the management network 6000.
  • the host computer 1000 is connected to the storage apparatus 4000 via a SAN (Storage Area Network) 5000.
  • the management computer 3000 is connected to the storage apparatus 4000 via the management network 6000.
  • the storage apparatus 4000 includes interfaces 4110-1 and 4110-2 connected to the SAN 5000, and logical units (Logical Units: hereinafter referred to as LUs) 4210-1 to 4210- providing virtual storage areas as logical volumes (VOLs) to the host computer 1000.
  • LUs Logical Units: hereinafter referred to as LUs
  • VOLs logical volumes
  • LDEVs Logical Devices: logical devices
  • 4220-1 and 4220-2 to which one or more LU 4210s are allocated
  • pools 4230-1 and 4230-2 that provide one or more LDEVs 4220.
  • a pool 4230 is generated from a plurality of storage media, the storage area of the pool 4230 is set as a logical storage area 4231, and a logical device (LDEV 4220) is allocated to the logical storage area 4231.
  • the logical unit (LU 4210) assigned to the logical device (LDEV 4220) is provided to the host computer 1000 as a virtual storage area (VOL 131).
  • a replica (clone) of the template volume VOL1 stored in LDEV1 (4220-1) is generated as LDEV3 (4220-3), stored in the logical storage area 4231-3, and LU3 is stored in LDEV3.
  • 4210-3) is allocated and provided to the host computer 1000-2 as a volume VOL3 and used as a virtual computer (VM) 1320.
  • the virtual machine 1620 can constitute a virtual desktop, for example.
  • a snapshot of the LDEV1 (4220-1) is generated to be an intermediate volume VOL2, and further from this snapshot (VOL2)
  • VOL2 There is known an operation mode in which a clone is generated to be the operation volume VOL3 and the operation volume VOL3 is allocated to the virtual machine 1620.
  • intermediate volumes for example, LU2 to LU5 are generated.
  • these intermediate volumes are set as Read Only, and are set as LU2 to LU5 that transfer a read request to the LDEV1 (4220-1) that is the source of replication.
  • the replicated LDEV3 (4220-3) is mapped to LU3 to LU6 (4210-6) assigned to the virtual machine 1620 of the host computer 1000-2, and the virtual machine 1620 replicates the template volume (LDEV3). Use to operate.
  • a read request is generated to LU2 to LU5 that are intermediate volumes
  • the read request is transferred to the replication source LDEV1 (4220-1), and the LDEV1 (4220-1) is accessed.
  • the LDEV 4220 resource (the logical storage area 4231 of the pool 4230) of the pool 4230 to the LU2 to LU5 corresponding to the intermediate volume VOL, and the resource consumption of the storage device 4000 is reduced. Can be suppressed.
  • FIG. 2A is a block diagram illustrating an example of the configuration of the storage apparatus 4000.
  • the storage device 4000 includes a host I / F unit (FEPK: Front End PacKage) 4100, a control unit (MPPK: Micro Processor PacKage) 4200, a shared memory unit (CMPK: Cache Memory PacKage) 4300, And a disk I / F unit (BEPK: BackEnd PacKage) 4400 and a management port 3.
  • FEPK Front End PacKage
  • MPPK Micro Processor PacKage
  • CMPK Cache Memory PacKage
  • BEPK BackEnd PacKage
  • the host I / F unit 4100, the control unit 4200, the shared memory unit 4300, the disk I / F unit 4400, and the management port 3 are connected to each other via the internal network 4500.
  • the host I / F unit 4100 has a plurality of host I / Fs (or logical ports) 4110. In the illustrated example, the host I / F unit 4100 is connected to the SAN 5000 via logical ports 1A, 2B, and 3B.
  • the host I / F unit 4100 has a plurality of host groups, and WWN (World Wide Name) registered in the host group at the time of login (for example, fabric login) to the host I / F 4110 via the SAN 5000. Includes a function to accept login requests by.
  • WWN World Wide Name
  • the disk I / F unit 4400 includes a plurality of disk I / Fs 4410, and the disk I / F is connected to a storage device (storage medium) 4700 via a cable, for example.
  • the storage device 4700 is composed of a nonvolatile storage medium such as an HDD or an SSD.
  • the storage device 4700 includes a redundancy device such as RAID.
  • the storage device 4700 provides a logical storage area 4231 to the LDEV 4220 of the pool 4230 shown in FIG.
  • the disk I / F unit 4400 includes a logical partition function, and can allocate the storage area of the physical storage device 4700 to the logical storage area (pool 4230).
  • the logical storage area 4231 allocated to the pool 4230 is allocated to the LDEV 4220 as will be described later.
  • the LDEV 4220 is mapped with an LU 4210 indicating a virtual storage area, and the LU 4210 is provided to the host computer 1000 as a volume VOL that is a virtual storage area.
  • the host computer 1000 mounts the volume VOL and executes reading and writing.
  • the shared memory unit 4300 includes a data cache memory 4310 and a control information memory 4320.
  • the data cache memory 4310 temporarily stores (caches) data to be written to the storage device 4700, or temporarily stores (caches) data read from the storage device 4700.
  • the control information memory 4320 stores information necessary for processing, for example, configuration information such as logical volumes and bind groups.
  • the control unit 4200 includes a plurality of MPs (Micro Processors) 4210, a local memory (LM) 4220, and a bus 4250 connecting them.
  • the local memory 4270 is loaded with the control program 4600 and executed by the MP 4210.
  • the MP4210 operates as a functional unit that provides a predetermined function by processing according to the program of each functional unit.
  • the MP 4210 functions as the control unit 4200 by performing processing according to the control program. The same applies to other programs.
  • the MP 4210 also operates as a functional unit that provides each function of a plurality of processes executed by each program.
  • a computer and a computer system are an apparatus and a system including these functional units.
  • FIG. 2B is a block diagram illustrating an example of software resources loaded in the local memory 4270.
  • the local memory 4270 includes a control program 4600 for controlling the storage device 4000, a volume management table T1000, an LU management table T2000, and a VM management table T3000.
  • FIG. 3 is a block diagram illustrating an example of the host computer 1000.
  • the host computer 1000 includes a processor 1100, a memory 1200, a host bus adapter (HBA) 1300, a hypervisor 1400, a virtual machine (Virtual Machine) 1320 running on the hypervisor 1400, an input unit 1700,
  • the computer includes an output unit 1800 and a network I / F 1500.
  • the host bus adapter 1300 performs protocol control during communication with the storage apparatus 4000.
  • the host bus adapter 1300 executes the protocol control function, data and iSCSI (or FC SAN, etc.) commands are transmitted / received between the host computer 1000 and the storage apparatus 4000 according to, for example, a fiber channel protocol.
  • iSCSI or FC SAN, etc.
  • the raw device 1310 executes I / O (input / output) trapping processing without copying data to a page cache (not shown). Used as a device for reducing overhead.
  • the volume identifier acquired by the HBA 1300 needs to be a globally unique value, and is formed by a combination of the serial number (device serial number) of the storage device 4000 and the local volume identifier in the storage device.
  • the input unit 1700 includes, for example, a keyboard, a switch, a pointing device, a microphone, and the like.
  • the output unit 1600 includes a monitor display and a speaker.
  • the memory 1200 is loaded with the hypervisor 1400 and executed by the processor 1100 to manage the resources of the host computer 1000.
  • the hypervisor 1400 allocates resources to the virtual computer 1320 based on a command from the management computer 3000.
  • the hypervisor 1400 operates the virtual machine 1320 with the allocated resources.
  • the virtual machine 1320 executes a business application 1210 and a storage management program 1220 on a guest OS (not shown).
  • the storage management program 1220 transmits an operation request for a volume (logical volume) such as LU allocation or deallocation from the business application 1210 or the OS to the storage apparatus management program 3110 included in the management computer 3000 via the management network 6000. Can do. Further, the storage management program 1220 can transmit a logical volume operation request to the storage apparatus 4000 via the storage area network 5000.
  • a volume logical volume
  • FIG. 4 is a block diagram illustrating an example of the management computer 3000.
  • the management computer 3000 is a computer including a processor 3200, a memory 3100, a storage medium 3300, an input unit 3700, an output unit 3600, and a network I / F 3400.
  • the processor 3200 executes the storage device management program 3110 and the host computer management program 3120 loaded in the memory 3100, thereby requesting the configuration management operation of the storage device 4000 and the host computer 1000 via the management network 6000. Send to computer 1000.
  • the storage administrator can input an operation request to the input unit 3700 using an input device such as a keyboard or a mouse, and can obtain an execution result via the output unit 3600 such as a display or a speaker.
  • a storage medium 3300 such as an HDD or SSD stores a storage device management program 3110, a host computer management program 4120, and an execution log of each control program.
  • FIG. 5 is a diagram illustrating an example of a storage area operation mode in a conventional example.
  • the template volume is VOL1
  • the VOL1 entity is LDEV1 (4220-1) of the logical storage area 1 (4231-1) of the pool 4230
  • LU1 (4210-1) is assigned to LDEV1
  • the volume VOL1 (131-1) is assigned. )
  • a snapshot (SS) of LDEV1 is generated and a read-only LDEV2 (4220-2) is generated, and the LU 20 (4210-20) is allocated.
  • the storage system 4000 allocates LU 20 to the host computer 1000-2 and provides it as VOL2 (131-2). When a read request is generated for this VOL2, the storage system 4000 reads data from the logical storage area 2 (4231-2) that stores the data of LDEV2 and responds.
  • the storage system 4000 creates a clone (CL) of LDEV2 and writes it to the logical storage area 3 (4231-3) as LDEV3 (4220-3). Then, LU3 (4210-3) is mapped to the replicated LDEV3, and LU3 is provided as volume VOL3 (131-3) to the host computer 1000-2.
  • CL clone
  • LU3 (4210-3) is mapped to the replicated LDEV3
  • LU3 is provided as volume VOL3 (131-3) to the host computer 1000-2.
  • the host computer 1000 is provided by generating the clone LDEV3 using the snapshot (LDEV2) of the replication source template volume LDEV4220-1 as the replication source and providing VOL3 to the virtual computer of the host computer 1000-2.
  • -2 can protect the template volume LDEV 4220-1 from being altered.
  • FIG. 6 is a diagram showing the relationship of storage areas in the first embodiment.
  • the template volume (virtual storage area) is VOL1
  • the LDEV (logical device) 1 (4220-1), which is the entity of VOL1
  • the LU (logical unit) 1 (4210-1) is allocated to this LDEV1 and provided to the host computer 1000-1 as a template volume VOL1 (131-1).
  • the storage device 4000 is read-only and read-only.
  • a transfer LU2 (4210-2) in which LDEV1 is set as the transfer destination of the request is generated and assigned as an intermediate volume VOL2 to the host computer 1000-2.
  • the host computer 1000-2 can use the LU2 mounted as an intermediate volume VOL2 (131-2).
  • LU2 has no entity in the pool 4230, and when the host computer 1000-2 reads from VOL2, the storage system 4000 transfers the read request to LDEV1, performs read processing, and performs the host computer 1000-2. Respond to.
  • the template volume VOL1 which is the transfer destination of the access request for LU2, is read-only, writing to the VOL2 (VOL1) from the host computer 1000-2 is prohibited, so the LDEV1 cannot be altered. Therefore, the LDEV 1 as the template volume is protected in the same manner as in FIG.
  • a clone of the snapshot volume VOL2 is generated and used as the operation volume VOL3 on the host computer 1000-2, so that a clone (CL) of LDEV1 is generated and a copy pair of the template volume VOL1 is created.
  • CL clone
  • LU3 (4210-3) is mapped to the replicated LDEV3, and the LU3 is mounted as volume VOL3 (131-3) on the host computer 1000-2.
  • a clone is generated from the replication source template LDEV 4220-1, and the operation volume VOL3 (operation LU3) for actually operating the virtual machine 1320 is provided to the host computer 1000-2.
  • the LDEV 3 including the template volume entity can be used.
  • the read destination and the transfer destination of the read request are set to the LDEV 1 that is actual in the pool 4230, and the LDEV 1 is also set to read only.
  • the intermediate volume VOL2 and the template volume VOL1 can prevent modification of LDEV1, which is the entity of the template volume VOL1, by accepting only the read request from the host computer 1000-2 and rejecting the write request. .
  • the host computer 1000-2 can make a read request to the volume VOL2 as in FIG. 5 of the conventional example, but it is not necessary to prepare an LDEV corresponding to LU2 in the pool 4230.
  • the use of the resources of the storage device 4000 can be reduced.
  • the virtual machine system that generates the intermediate volume VOL2 from the template volume VOL1 using a snapshot or a clone can save the resources of the storage device 4000.
  • the resources of the storage apparatus 4000 can be used effectively.
  • FIG. 7 shows an example of the volume management table T1000.
  • the volume management table T1000 is a table for managing the relationship between the volume provided to the host computer 1000 and the resources of the storage apparatus 4000, and is managed by the control program 4600.
  • the volume management table T1000 includes a volume ID (T1010) for storing the volume identifier, a TYPE (T1010) for storing the volume type, and a resource ID (T1030) for storing the resource identifier of the storage device 4000 allocated to the volume. And a pair information T1040 for storing the identifier of the parent volume of the volume constituting the copy pair, and a read only flag T1050 indicating read only.
  • DP of TYPE (T1010) indicates an actual volume.
  • the resource ID (T1030) stores the substance of the resource allocated to the volume or the LU identifier.
  • the example shown in the figure is the same as that in FIG. 6, LDEV1 is assigned to volume VOL1, LU2 is assigned to volume VOL2, and LDEV3 is assigned to volume VOL3.
  • the read-only flag T1050 is “1”, it is a read-only volume, and if it is “0”, it indicates a writable volume.
  • the volumes VOL1 and VOL2 are read-only, and the volume VOL3 is a writable volume.
  • the pair information T1040 indicates a chain of copy pairs in which the volume VOL2 has the volume VOL1 as the parent volume and the volume VOL3 has the volume VOL2 as the parent.
  • FIG. 8 shows an example of the LU management table T2000.
  • the LU management table T2000 is a table for managing the relationship between the LU 4210 assigned to the host computer 1000 and the volume, and is managed by the control program 4600.
  • the LU management table T2000 includes a port ID (T2010) for storing a port identifier, a host group ID (T2020) for storing a host group identifier, an LU ID (T2030) for storing an LU 4210 identifier, and a volume identifier.
  • the entry includes a volume ID (T2040) for storing the ID and a transfer destination virtual volume ID (T2050) for storing the identifier of the transfer destination volume.
  • the transfer destination of the read request to the LU is set by the transfer destination virtual volume ID (T2050).
  • T2050 transfer destination virtual volume ID
  • FIG. 9 is a diagram showing an example of the VM management table T3000.
  • the VM management table T3000 is a table for managing a volume to be allocated to the virtual machine 1320, and is managed by the control program 4600.
  • the VM management table T3000 is assigned to a virtual machine ID (T3010) that stores an identifier of the virtual machine 1320 running on the host computer 1000, a template flag T3020 indicating whether the assigned volume is a template, and a virtual machine 1320.
  • the assigned volume ID (T3030) for storing the identifier of the designated volume is included in one entry.
  • the template flag T3020 is “1”, it indicates that the volume of the assigned volume ID (T3030) is a template volume of the virtual machine.
  • the volumes VOL1 and VOL2 are template volumes.
  • FIG. 10 is a flowchart showing an example of processing executed when the storage apparatus 4000 receives an access request from the host computer 1000.
  • the control unit 4200 acquires the access request and analyzes a command (for example, a SCSI command) included in the access request (F1010).
  • a command for example, a SCSI command
  • the control unit 4200 determines whether or not the analyzed command is a READ command (F1020). If it is a READ command, the process proceeds to step F1030, and if it is not a READ command, the process proceeds to step F1060.
  • step F1030 the control unit 4200 reads the transfer destination virtual volume ID (T2050) by referring to the LU management table T2000 from the ID of the LU to be read.
  • step F1040 the control unit 4200 selects a read target volume from the LU management table T2000.
  • the control unit 4200 selects the volume ID of the volume ID (T2040) as a read target, and the transfer destination virtual volume ID (T2050). If “NULL” is not selected, the volume ID is selected as a read target.
  • the transfer destination virtual volume ID (T2050) of LU2 is “VOL1”
  • volume VOL1 is selected when LU2 is a read target. In other words, a read request to the volume VOL2 is transferred to the volume VOL1.
  • control unit 4200 refers to the VOL (volume) management table T1000 and acquires the identifier of the LDEV 4220 corresponding to the selected volume ID (F1040). Then, the control unit 4200 reads the requested data from the read-target LDEV 4220 and transmits a response to the access request. Data reading is executed by the disk I / F unit 4400, and a response to the access request is executed by the host I / F unit 4100.
  • the access target volume ID is acquired from the LU management table T2000 in step F1060, and whether or not the read-only flag T1050 of the volume is read-only with reference to the volume management table T1000. Is determined (F1070).
  • the current access request for example, write
  • a response indicating violation is notified (F1080).
  • the read-only flag T1050 of the volume is “0”, the current access request (for example, write) is executed.
  • FIG. 11 is a flowchart illustrating an example of a volume management table update process executed by the control unit 4200 of the storage apparatus 4000 at a predetermined timing. This process is executed at a predetermined cycle (for example, every 12 hours) or when the virtual machine 1320 is created or deleted.
  • the control unit 4200 reads the VM management table T3000 (F2010), and then repeats the processes of steps F2020 to F2060 for all virtual machine IDs (T3010).
  • step F2030 the control unit 4200 selects one VM ID (T3010) from the VM management table T3000, and determines whether or not the template flag T3020 is “1”. If “1”, it is determined that the volume ID (T3030) assigned to the VM ID (T3010) is a template volume, and the process proceeds to step F2040. On the other hand, if “0”, it is determined that the volume ID (T3030) assigned to the VM ID (T3010) is an active volume, and the process returns to step F2020 to repeat the above processing.
  • step F2040 the control unit 4200 selects the volume ID (T3030) assigned to the VM ID (T3010).
  • step F2050 the volume management table T1000 is searched based on the volume ID selected by the control unit 4200, and the read-only flag T1050 of the volume ID (T1010) is set to “1”.
  • the template volume is set as a read-only volume by performing the above processing for all entries in the VM management table T3000.
  • FIG. 12 is a flowchart illustrating an example of a process in which the control unit 4200 of the storage apparatus 4000 generates an LU for transferring a read request to another volume in the LU management table T2000. This process is executed when the storage apparatus 4000 receives an LU generation command for transferring a read request from the management computer 3000 to another volume.
  • the LU generation command for transferring a read request to another volume includes the ID of the LU to be generated, the ID of the transfer destination volume, and the type of volume corresponding to the LU.
  • the volume type is snapshot, the identifier of the parent volume is included in the LU generation command.
  • the control unit 4200 analyzes the LU generation command for transferring the read request, and acquires the ID of the received LU, the ID of the transfer destination volume, and the type of volume corresponding to the LU to be generated (F3010).
  • the control unit 4200 reads the LU management table T2000 and the volume management table T1000 (F3020, F3030). Then, the control unit 4200 acquires the value of the read-only flag T1050 from the entry of the volume ID (T10140) that matches the received transfer destination volume ID, and whether or not the flag is “1” (read-only). Is determined (F3040). If the read-only flag T1050 is “1” and the volume is read-only, the process proceeds to step F3050; otherwise, the process proceeds to step F3060.
  • step F3050 the control unit 4200 adds a new entry to the LU management table T2000, receives the received LU ID, transfer destination volume ID, LU management table T2000 LU ID (T2030), and transfer destination virtual volume. Set to ID (T20520).
  • control unit 4200 refers to the volume management table T1000, acquires an unused volume ID (T1010), and sets it to the volume ID (T2040) of the entry added to the LU management table T2000 (F3070). . Also, the control unit 4200 assigns a port ID (T2010) and a host group ID (T2020) to the entry.
  • the control unit 4200 adds a new entry to the volume management table T1000, sets the acquired volume ID as a volume ID (T1010), and sets the type (for example, snapshot) of the received volume as TYPE (T1020). And the LU ID is set to the resource ID (T1030).
  • the volume type (TYPE (T1050)) is a snapshot (or clone)
  • the parent volume ID included in the command is set in the pair information T1040.
  • the control unit 4200 sets the read-only flag T1050 to “1” because the volume is a volume without an entity (logical storage area).
  • control unit 4200 Since the addition of a new entry has been completed in the LU management table T2000 and the volume management table T1000, the control unit 4200 notifies the new volume ID acquired in step F3070 as a response to the LU generation command (F3080).
  • step F3040 if it is determined in step F3040 that the transfer destination volume is not read-only, the control unit 4200 notifies the LU generation command transmission source that the designated LU cannot be generated.
  • control unit 4200 can generate an LU that transfers a read request to a read-only volume and a volume associated with the LU.
  • the volume associated with the LU to which the read request is transferred is generated as a volume having no logical storage area with the LU identifier set in the resource ID (T1030), as shown by “VOL2” in FIG. .
  • the management computer 3000 includes the LU ID in the LU generation command, but the LU ID may be set in the storage device 4000.
  • the ID of the open LU may be set in a new entry in the LU management table T2000, and the ID of the LU may be set in the resource ID (T1030) of the volume management table T1000.
  • FIG. 13 is a flowchart illustrating an example of processing in which the control unit 4200 of the storage apparatus 4000 generates a volume copy pair. This processing is executed when the storage apparatus 4000 receives a copy pair generation command from the management computer 3000.
  • the copy pair generation command includes a copy source volume ID, a copy type (snapshot or clone), and a copy destination volume attribute (read-only or writable).
  • the control unit 4200 analyzes the copy pair generation command, and acquires the copy source volume, the copy type, and the attribute of the copy (derivation) destination volume (F4010). The control unit 4200 determines whether or not the attribute of the copy destination volume is read-only (F4020). If it is read-only, the process proceeds to step F4030, and if writable, the process proceeds to step F4060.
  • step F4030 the control unit 4200 reads the volume management table T1000.
  • the control unit 4200 determines whether or not the copy source volume is read-only (F4040). In other words, it is determined whether or not the LDEV 4220 exists in the copy source volume. If the copy source volume is read-only, the process proceeds to step F4050. If the copy source volume is writable, the process proceeds to step F4060.
  • step F4050 since the copy destination volume is read-only and the copy source volume is also read-only, the processing of steps F3010 to F3080 in FIG. 12 for generating an LU for transferring a read request to the copy source volume is performed. Execute, and acquire the copy destination volume ID as a return value.
  • the control unit 4200 selects the LDEV 4220 of the volume to be the copy source in step F4060.
  • the control unit 4200 acquires the LDEV 4220 stored in the resource ID (T1030) from the entry of the volume management table T1000 with the copy source volume ID.
  • step F4070 the control unit 4200 generates a copy destination volume with the specified copy type for the selected LDEV 4220, adds a volume ID, and adds a new entry to the volume management table T1000 and the LU management table T2000.
  • the control unit 4200 notifies the copy destination volume ID generated in step F4080 and ends the process.
  • the storage apparatus 4000 can replicate a volume of a specified type from a specified copy source volume to generate a copy pair.
  • FIG. 14 is a diagram illustrating an example of a conventional process and an example of processing for generating a clone operation volume from a template volume.
  • the illustrated example shows an example in which the operation volume VOL16 of the virtual machine (VM11) is generated from a copy of the template volume VOL11 of the virtual machine.
  • the snapshot volume VOL12 of the template volume VOL11 of the virtual machine is generated.
  • the snapshot volume VOL12 is read-only.
  • the template volume VOL11 and the snapshot volume VOL12 are parent generations.
  • a clone of the snapshot volume VOL12 is generated as a volume VOL13.
  • a snapshot volume VOL14 of the clone volume VOL13 is generated.
  • the snapshot volume VOL14 is read only.
  • a linked clone (Linked-Clone) of the snapshot volume VOL14 is generated as the volume VOL15.
  • a linked clone is a volume in which a virtual machine volume serving as a master image is read-only and shared by a plurality of virtual machines.
  • the volume VOL16 of the virtual machine (VM11) provided to the user is assumed to be the difference volume VOL16 in which the volume VOL15 is shared (linked clone) and the difference data is accumulated.
  • the volumes VOL1, 516 are user clone volumes.
  • FIG. 15 is a block diagram showing a configuration of a storage apparatus 4000 that shows a conventional example and generates a clone volume from a template volume.
  • the storage apparatus 4000 stores the contents of the LDEV 11 corresponding to the template volume VOL11 in the write data area of the pool 1 (4230-1).
  • a snapshot of the LDEV 11 is generated in the differential data area of the pool 2 (4230-2) and is set as the LDEV 12 corresponding to the snapshot volume VOL12.
  • the clone of the LDEV 12 of the snapshot volume VOL12 is written into the replication data area 3, and the corresponding LDEV 13 is also generated by the clone volume VOL13.
  • a snapshot of the clone LDEV 13 is written to the difference data area 4 to generate an LDEV 14 corresponding to the volume VOL14.
  • the snapshot volume VOL14 is read only.
  • a linked clone (Linked-Clone) of the LDEV 14 corresponding to the snapshot volume VOL14 is written into the differential data area 5, and is generated as an LDEV 15 corresponding to the volume VOL15. Further, the snapshot of the LDEV 15 is written in the difference data area 6 and is generated as the LDEV 16 corresponding to the operation volume VOL16.
  • FIG. 16 is a block diagram illustrating the configuration of the storage apparatus 4000 that creates the clone volume from the template volume according to the first embodiment.
  • the storage apparatus 4000 stores the contents of the LDEV 11 corresponding to the template volume VOL11 in the write data area of the pool 1 (4230-1).
  • the snapshot volume VOL12 generates a volume VOL2 as a copy pair whose parent is the volume VOL1.
  • the parent volume VOL1 is set as the transfer destination (T2050) of the read request.
  • a clone volume VOL3 having the volume VOL2 as a parent volume is generated.
  • the parent volume VOL2 is set as the read request transfer destination (T2050).
  • a snapshot volume VOL4 having the volume VOL3 as a parent volume is generated.
  • the parent volume VOL3 is set as the transfer destination (T2050) of the read request.
  • a snapshot volume VOL5 having the volume VOL4 as a parent volume is generated.
  • parent volume VOL4 is set as the transfer destination (T2050) of the read request.
  • volume VOL6 is written with the snapshot of LDEV1 in the differential data area of pool 2 (4230-2) to generate LDEV2 corresponding to volume VOL6.
  • the read request for the intermediate volume VOL2 to 5 is sent to the LDEV1 of the volume VOL1. Will be transferred to.
  • the logical storage area of the pool 2 that is actually provided to the virtual machine (VM1) can be the differential data area 1 only.
  • the duplicate data area 3 and the differential data areas 4 to 6 shown in FIG. 15 are not required, and it is possible to suppress the consumption of the resources of the storage apparatus 4000 for the intermediate volume, and the storage apparatus 4000 It becomes possible to increase the number of virtual machines that can be deployed.
  • FIGS. 10 to 13 an example in which the processing in FIGS. 10 to 13 is performed by the control unit 4200 in the storage apparatus 4000 is shown, but a part of the processing may be performed by an external computer. .
  • FIG. 18 is a diagram showing an example of storage area operation according to the second embodiment of the present invention.
  • the storage device 4000 shown in the first embodiment is applied with the conglomerate LU structure (ConglomerateloLU Structure), and the bind management table T6000 in FIG. 21 is added as a table used by the control program 4600. It is a thing.
  • Other configurations are the same as those in the first embodiment.
  • FIG. 17 is a diagram showing an example in which Configurator LU Structure is applied to the conventional example shown in FIG. 5.
  • LU1 (4210) is a representative logical volume (ALU)
  • logical paths LDEV1 to LDEV3 are set as auxiliary logical units (SLU: Subsidy
  • LDEV1 (VOL1) to LDEV3 (VOL3) are allocated to logical storage areas 1 to 3 as in FIG.
  • the auxiliary logical unit (SLU) corresponds to the LDEV (logical device) of the first embodiment.
  • the second embodiment shown in FIG. 18 is the same as FIG. 17, but omits the LDEV corresponding to the volume VOL2 of the host computer 1000-2 and transfers the read request to the volume VOL2 to the read-only LDEV1. And respond on behalf.
  • the representative logical volume ALU4210 transfers the read request to the volume VOL2 to the LDEV1 (VOL1), thereby making the LDEV of the intermediate volume VOL2 unnecessary and the pool.
  • the consumption of the logical storage area in 4230 is reduced.
  • FIG. 19 is a diagram showing an example of the volume management table T1000.
  • the configuration of each field T1010 to T1050 is the same as in FIG. 7 of the first embodiment, but the resources of the storage device 4000 such as the representative logical volume ALU are different.
  • the illustrated example corresponds to the configuration of FIG.
  • the TYPE (T1020) is “ALU”
  • the resource ID of the storage device 4000 is “LU1”.
  • the volume VOL2 is a read-only snapshot of the volume VOL1 as in the first embodiment, but the resource ID (T1030) is “VSLU (Virtual Subsidy Logical Unit)”. Different from Example 1. In the following, the VSLU is a virtual SLU, and a virtual SLU under the representative logical volume ALU (VOL4) is shown.
  • FIG. 20 is a diagram showing an example of the LU management table T2000.
  • the configurations of the fields T2010 to T2050 are the same as in the first embodiment, and the transfer destination virtual volume ID (T2050) of the volume VOL2 is set to the volume VOL1 as in the first embodiment. .
  • FIG. 21 is a diagram showing an example of the bind management table T6000.
  • the bind management table T6000 includes an ALU (T6100) that stores an identifier of a volume allocated to an ALU, a bind SLU volume ID (T6020) that stores an identifier of a volume allocated as an SLU, and a transfer destination of a read request.
  • the conversion volume ID (T6030) for storing is included in one entry.
  • the ALU (T6010) stores the volume VOL4 mapped to the LU1 as shown in FIG. 18, and the volumes VOL1 to VOL3 provided to the host computer 1000 corresponding to the ALU of the VOL4 are bound SLU volume IDs (T6020). ).
  • the volume VOL1 is set to the conversion volume ID (T6030) of the volume VOL2 in which the resource ID (T1030) is set to “VSLU (virtual SLU)”.
  • VSLU virtual SLU
  • a read request for the ALU being the volume VOL4 and the SLU being the VOL2 is pointed to the LDEV1 corresponding to the volume VOL1.
  • the conversion volume ID (T6030) is “NULL”
  • the volume ID set in the bind SLU volume ID (T6020) is directly accessed.
  • the read request to the intermediate volume VOL2 is processed by reading from the LDEV1 of the volume VOL1 as in the first embodiment.
  • the resources of the storage apparatus 4000 can be used effectively.
  • FIG. 22 is a flowchart showing an example of processing executed when the storage apparatus 4000 receives an access request from the host computer 1000.
  • the control unit 4200 acquires the access request and analyzes a command (for example, a SCSI command) included in the access request (F5010).
  • the command includes an ALU volume ID, an SLU volume ID, and a request such as reading or writing.
  • the control unit 4200 refers to the bind management table T6000 (5020), and determines whether or not the SLU specified by the command is bound to the ALU. It is determined whether the combination of ALU and SLU included in the command exists in the bind management table T6000 (F5030). If the combination of ALU and SLU exists in the bind management table T6000, the process proceeds to step F5040, and if not, the process proceeds to step F5050.
  • step F5040 the process shown in FIG. 23 is executed.
  • the control unit 4200 denies access to the designated SLU, and transmits a notification of denying access via the host I / F unit 4100.
  • FIG. 23 is a flowchart showing an example of processing performed in step F5040 of FIG.
  • the volume management table T1000 is referred to by the volume ID corresponding to the SLU analyzed in step F5010 of FIG. 22, and the resource ID (T1030) is acquired.
  • step F6020 the control unit 4200 determines whether the resource ID corresponding to the SLU is a VSLU. If the resource ID is VSLU, the process proceeds to step F6040; otherwise, the process proceeds to step F6030. In step F6030, the control unit 4200 instructs the SLU corresponding to the specified resource ID to execute an access.
  • step F6040 the control unit 4200 determines whether or not the type of access request is a write request. If the access request type is a write request, the control unit 4200 rejects the write because the read-only flag T1050 of the volume management table T1000 is “1”, and transmits a response including a write rejection. On the other hand, when the type of the access request is not a write request (read request), the control unit 4200 transfers the access request to the volume ID set in the pair information T1040 of the volume management table T1000 and executes the access.
  • the control unit 4200 reads the volume set in the pair information T1040. By transferring the request, the data can be read from the volume VOL1.
  • FIG. 24 is a flowchart illustrating an example of a process in which the control unit 4200 of the storage apparatus 4000 generates a VSLU (virtual SLU) that transfers a read request to the LU management table T2000.
  • VSLU virtual SLU
  • This processing is executed when the storage apparatus 4000 receives a VSLU generation command for transferring a read request from the management computer 3000.
  • the generation instruction of the VSLU that transfers the read request includes the ID of the transfer destination volume and the type of volume corresponding to the VSLU.
  • the volume type is snapshot, the parent volume identifier is included in the VSLU generation command.
  • the control unit 4200 analyzes the virtual SLU generation command for transferring the read request, and acquires the received transfer destination volume ID and the type of volume corresponding to the generated LU (F7010).
  • the control unit 4200 reads the volume management table T1000 (F7020), and acquires the read-only flag T1050 with an entry that matches the received transfer destination volume ID. Then, the control unit 4200 determines whether or not the read only flag T1050 is “1” (read only) (F7030). If the read-only flag T1050 is “1” and the volume is read-only, the process proceeds to step F7040; otherwise, the process proceeds to step F7060.
  • step F7050 the control unit 4200 adds a new entry to the LU management table T2000, and sets the ID of the open LU and the transfer destination volume ID in the transfer destination virtual volume ID (T2050).
  • the control unit 4200 refers to the volume management table T1000, acquires an unused volume ID (T1010) (F7060), and sets it to the volume ID (T2040) of the entry added to the LU management table T2000 (F3070). .
  • the control unit 4200 assigns a port ID (T2010) and a host group ID (T2020) to the entry.
  • the control unit 4200 adds a new entry to the volume management table T1000, sets the acquired volume ID as a volume ID (T1010), and sets the type (for example, snapshot) of the received volume as TYPE (T1020). And “VSLU” is set to the resource ID (T1030). If the volume type is snapshot, the ID of the parent volume included in the command is set in the pair information T1040. Further, since the volume is a volume without an entity (logical storage area), the read only flag T1050 is set to “1”.
  • control unit 4200 Since the addition of the new entry is completed in the LU management table T2000 and the volume management table T1000, the control unit 4200 notifies the new volume ID acquired in step F7060 as a response to the VSLU generation command (F7070).
  • step F70430 if it is determined in step F70430 that the transfer destination volume is not read-only, the control unit 4200 notifies the transmission source of the VSLU generation command that the specified VSLU cannot be generated.
  • control unit 4200 can generate a VSLU that transfers a read request to a read-only volume and a volume associated with the VSLU.
  • the volume associated with the VSLU to which the read request is transferred is generated as a volume having no logical storage area with the VSLU set in the resource ID (T1030) as shown by “VOL2” in FIG.
  • FIG. 25 is a flowchart illustrating an example of processing in which the control unit 4200 of the storage apparatus 4000 sets the bind management table. This process is executed when the storage apparatus 4000 receives a bind setting command from the management computer 3000.
  • the bind setting command includes a volume ID corresponding to the ALU and a volume ID corresponding to the SLU.
  • the control unit 4200 analyzes the bind setting command, and acquires the volume ID of the ALU and the volume ID of the SLU (F8010).
  • the control unit 4200 refers to the volume management table T1000 and the bind management table T6000 (steps F8020 and F8030).
  • control unit 4200 determines whether or not the volume ID corresponding to the SLU is a VSLU (F8040). If the volume ID corresponding to the SLU is a VSLU, the process proceeds to step F8050, and if not, the process proceeds to step F8060.
  • step F8050 the control unit 4200 searches for an entry whose resource ID (1030) is “VSLU” in the volume management table T1000, and acquires the volume ID of the volume ID (T1010) and the pair information (T1040).
  • control unit 4200 creates a new entry in the bind management table T6000, sets the volume ID corresponding to the ALU to the ALU (T6010), and sets the volume ID acquired from the volume management table T1000 to the volume ID corresponding to the SLU. (T6020) and the volume ID of the pair information (T1040) is set to the conversion volume ID (T6030).
  • step F8060 the control unit 4200 creates a new entry in the bind management table T6000, sets the volume ID corresponding to the ALU to ALU (T6010), and sets the volume ID corresponding to the SLU to the volume ID (T6020). And “NULL” is set in the conversion volume ID (T6030).
  • the ALU volume ID and SLU volume ID instructed from the management computer 3000 can be set in the bind management table T6000.
  • the storage device 4000 adopts a conglomerate LU structure that accesses a virtual storage area (SLU) from the representative logical volume ALU, as in the first embodiment, the intermediate volume A logical storage area for configuring the entity is not necessary, and it is possible to suppress the consumption of the resources of the storage device 4000 for the intermediate volume, and it is possible to increase the number of virtual machines that can be deployed on the storage device 4000. It becomes.
  • SLU virtual storage area
  • the read request is transferred to the read-only LDEV 1.
  • a virtual SLU can be generated.
  • the second embodiment an example in which there is one intermediate volume is shown.
  • a plurality of intermediate volumes can be associated with a virtual SLU.
  • the VSLUs 1 to 4 associated with the intermediate volumes VOL2 to VOL5 may be generated.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • each of the above-described configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
  • Information such as programs, tables, and files for realizing each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ストレージ装置は、第1の論理デバイスを論理記憶領域に割り当て、第1の論理デバイスに対応付けた第1の論理ユニットを第1の仮想記憶領域として提供し、第1の仮想記憶領域の複製を第2の仮想記憶領域として生成し、第2の仮想記憶領域の複製を第3の仮想記憶領域として生成する際に、第2の仮想記憶領域を読み出し専用として第2の論理ユニットを割り当てて、当該第2の論理ユニットに対するアクセス要求を第1の仮想記憶領域に転送するよう論理ユニット管理情報に設定し、第1の論理デバイスの複製を第3の論理デバイスとして前記論理記憶領域に生成し、当該第3の論理デバイスに対応付けた第3の論理ユニットを第3の仮想記憶領域として提供する。

Description

ストレージ装置及び計算機システム
 本発明は、ストレージ装置の論理リソースの制御に関する。
 ホスト計算機の仮想化技術の進展により、一つの物理ホスト計算機上に複数の仮想サーバが構築され、仮想サーバのイメージおよび利用データをストレージ装置に格納する構成が用いられている。この構成で、一つもしくは複数の仮想サーバのデータは、ストレージ装置の一つの論理ボリュームに集約されていた。
 特許文献1では、ストレージ装置の一つの論理ボリュームをホスト計算機上で複数の仮想ボリュームに区分けし、仮想サーバが用いるデータを前記仮想ボリューム毎に収める技術が開示されている。
 また、特許文献2では、SAN(Storage Area Network)などのIn-band経由でのLUアクセス制限として、ファブリックログイン時に登録されたWWN(World Wide Name)からの要求のみを受理する技術が開示されている。
特開2012-079245号公報 特開2004-227154号公報
 ストレージ装置において、複数の論理ボリューム(LU:LogicalUnit)が複数の論理グループ(LU Conglomerate)に纏められ、論理グループ内の代表的な論理ボリューム(ALU:Administrative Logical Unit)に論理パスが設定されるとする。ホスト計算機は、論理パスが属する論理グループ内のALU以外の論理ボリューム(SLU:Subsidiary Logical Unit)の識別子を指定したI/O(Input/Output)コマンドを発行し、ストレージ装置は受信したI/Oコマンドで指定されたSLUへI/O処理を分配する。以下、このようなストレージ装置の構成を、コングロマリットLU構造(Conglomerate LU Structure)という。
 Conglomerate LU Structureのストレージ装置では、ホスト計算機上の一つの仮想サーバに対して、一つもしくは複数のSLUを割当てることにより、仮想サーバ単位にストレージ装置の論理ボリュームを割り当てることが可能となる。
 特許文献1が開示する複数の仮想ボリュームは、ストレージ装置内では、一つの論理ボリュームであり、ストレージ装置が具備する機能は、論理ボリューム単位で制御するため、結果として余剰記憶領域が生じる。
 仮想サーバ構築において、ストレージ装置内の論理ボリューム一つに対して、仮想サーバのテンプレートイメージを格納し、仮想サーバのテンプレートイメージを格納した論理ボリュームからスナップショットまたは複製ボリュームを生成し、前記生成ボリュームを用いて仮想サーバを展開する技術が知られている。
 この技術を利用する際、前記テンプレートイメージを格納したボリュームを保護するために、一度前記テンプレートボリュームからスナップショットを作成もしくは複製を生成し、前記生成ボリュームから仮想サーバ展開用のボリュームを生成する多段スナップショットもしくは多段複製の構成が用いられる。前記構成では、テンプレート用ボリュームから仮想サーバ展開用ボリュームまでの中間ボリュームが必要となり、展開する仮想サーバ数よりも多い中間ボリュームが必要となり、ストレージ装置で展開可能な仮想サーバ数が前記構成を用いない場合に較べて減少すると言う課題があった。
 そこで本発明は、上記問題点に鑑みてなされたもので、ストレージ装置の記憶領域が中間ボリュームで消費されるのを抑制することを目的とする。
 本発明は、プロセッサとメモリと記憶媒体を有するストレージ装置であって、前記記憶媒体から論理記憶領域を生成し、前記論理記憶領域に論理デバイスを割り当て、当該論理記憶領域を割り当てた論理ユニットを仮想記憶領域として提供する制御部を有し、前記制御部は、第1の論理デバイスを前記論理記憶領域に割り当て、前記第1の論理デバイスに対応付けた第1の論理ユニットを第1の仮想記憶領域として提供し、前記第1の仮想記憶領域の複製を第2の仮想記憶領域として生成し、前記第2の仮想記憶領域の複製を第3の仮想記憶領域として生成する際に、前記第2の仮想記憶領域を読み出し専用として第2の論理ユニットを割り当てて、当該第2の論理ユニットに対するアクセス要求を前記第1の仮想記憶領域に転送するよう論理ユニット管理情報に設定し、前記第1の論理デバイスの複製を第3の論理デバイスとして前記論理記憶領域に生成し、当該第3の論理デバイスに対応付けた第3の論理ユニットを第3の仮想記憶領域として提供する。
 本発明によれば、第2のボリューム(中間ボリューム)として論理記憶領域に割り当てるリソースを削減でき、ストレージ装置が格納可能な論理デバイス(LDEV)数の減少を抑止することができる。
本発明の第1の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の第1の実施例を示し、ストレージ装置の一例を示すブロック図である。 本発明の第1の実施例を示し、ストレージ装置の制御部の一例を示すブロック図である。 本発明の第1の実施例を示し、ホスト計算機の一例を示すブロック図である。 本発明の第1の実施例を示し、管理計算機の一例を示すブロック図である。 従来例を示し、記憶領域の運用の一例を示す図である。 本発明の第1の実施例を示し、記憶領域の運用の一例を示す図である。 本発明の第1の実施例を示し、ボリューム管理テーブルの一例を示す図である。 本発明の第1の実施例を示し、LU管理テーブルの一例を示す図である。 本発明の第1の実施例を示し、VM管理テーブルの一例を示す図である。 本発明の第1の実施例を示し、アクセス要求を受け付けたときに制御部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、制御部で行われるボリューム管理テーブルの更新処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、制御部で行われるLU生成処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、制御部で行われるコピーペアの生成処理の一例を示すフローチャートである。 従来例を示し、テンプレート用ボリュームからクローンのボリュームを生成する処理の一例を示す図である。 従来例を示し、テンプレート用ボリュームからクローンのボリュームを生成するストレージ装置の構成を示すブロック図である。 本発明の第1の実施例を示し、テンプレート用ボリュームからクローンのボリュームを生成する処理でLDEVとLUの関係を示す図である。 従来例を示し、記憶領域の運用の一例を示す図である。 本発明の第2の実施例を示し、記憶領域の運用の一例を示す図である。 本発明の第2の実施例を示し、ボリューム管理テーブルの一例を示す図である。 本発明の第2の実施例を示し、LU管理テーブルの一例を示す図である。 本発明の第2の実施例を示し、バインド管理テーブルの一例を示す図である。 本発明の第2の実施例を示し、アクセス要求を受け付けた時に制御部で行われる処理の一例を示すフローチャートである。 本発明の第2の実施例を示し、図22で行われるプロセスAの一例を示すフローチャートである。 本発明の第2の実施例を示し、制御部で行われるVSLUの生成処理の一例を示すフローチャートである。 本発明の第2の実施例を示し、制御部で行われるバインド管理テーブルの設定処理の一例を示すフローチャートである。
 以下、本発明の一実施形態について添付図面を用いて説明する。
 図1は、本発明の第1の実施例を示し、計算機システムの一例を示すブロック図である。本実施例の計算機システムは、データを格納するストレージ装置4000を利用するホスト計算機1000-1、1000-2と、ストレージ装置4000とホスト計算機1000-1、1000-2を管理する管理計算機3000を主体に構成される。なお、以下では、ホスト計算機の全体を「-」のない符号1000で示す。他の構成要素の符号についても同様である。
 管理計算機3000は、管理ネットワーク6000を介してホスト計算機1000と接続する。ホスト計算機1000は、SAN(Storage Area Network)5000を介してストレージ装置4000に接続する。管理計算機3000は、管理ネットワーク6000を介してストレージ装置4000に接続する。
 ストレージ装置4000は、SAN5000に接続するインターフェース4110-1、4110-2と、ホスト計算機1000に論理ボリューム(VOL)として仮想記憶領域を提供する論理ユニット(Logical Unit:以下LU)4210-1~4210-6と、1以上のLU4210を割り当てたLDEV(Logical Device:論理デバイス)4220-1、4220-2と、1以上のLDEV4220を提供するプール4230-1、4230-2とを含む。
 <本実施例の概要>
 本実施例の計算機システムでは、図6で示すように、複数の記憶媒体からプール4230を生成し、プール4230の記憶領域を論理記憶領域4231とし、論理記憶領域4231に論理デバイス(LDEV4220)を割り当て、当該論理デバイス(LDEV4220)に割り当てた論理ユニット(LU4210)を仮想記憶領域(VOL131)としてホスト計算機1000に提供する。
 ストレージ装置4000では、LDEV1(4220-1)に格納されたテンプレート用のボリュームVOL1の複製(クローン)を、LDEV3(4220-3)として生成して論理記憶領域4231-3に格納し、LDEV3にLU3(4210-3)を割り当ててホスト計算機1000-2にボリュームVOL3として提供し、仮想計算機(VM)1320として利用する例を示す。仮想計算機1620は、例えば、仮想デスクトップを構成することができる。
 ストレージ装置4000では、テンプレート用のボリュームとなるLDEV1(4220-1)を保護するために、まずLDEV1(4220-1)のスナップショットを生成して中間ボリュームVOL2とし、さらにこのスナップショット(VOL2)からクローンを生成して運用ボリュームVOL3とし、運用ボリュームVOL3を仮想計算機1620に割り当てる運用形態が知られている。
 テンプレート用ボリュームVOL(仮想記憶領域)1から運用ボリュームVOL3を生成する際に、中間ボリューム(例えば、LU2~LU5)が生成される。ここで、本実施例1では、これらの中間ボリュームをRead Onlyとして複製の元となるLDEV1(4220-1)へ読み出し要求を転送するLU2~LU5として設定する。
 そして、ホスト計算機1000-2の仮想計算機1620に割り当てるLU6(4210-6)に、複製されたLDEV3(4220-3)をLU3にマッピングして、仮想計算機1620はテンプレート用のボリュームの複製(LDEV3)を利用して稼働する。
 これにより、テンプレートのLDEV1(4220-1)からLDEV3(4220-3)の複製(クローン)を生成して仮想計算機をデプロイする際に、中間ボリュームとなるLU2~LU5へ読み出し要求が発生した場合には、複製元のLDEV1(4220-1)に読み出し要求が転送され、LDEV1(4220-1)へのアクセスとなる。
 したがって、本実施例1では、中間ボリュームVOLに対応するLU2~LU5には、プール4230のLDEV4220のリソース(プール4230の論理記憶領域4231)を割り当てる必要がなくなって、ストレージ装置4000のリソースの消費を抑制することができる。
 <ストレージ装置>
 図2Aは、ストレージ装置4000の構成の一例を示すブロック図である。ストレージ装置4000は、図2に示すように、ホストI/F部(FEPK:FrontEnd PacKage)4100と、制御部(MPPK:Micro Processor PacKage)4200と、共有メモリ部(CMPK:Cache Memory PacKage)4300と、ディスクI/F部(BEPK:BackEnd PacKage)4400と、管理用ポート3から構成される。
 これらのホストI/F部4100と、制御部4200と、共有メモリ部4300と、ディスクI/F部4400及び管理用ポート3は、内部ネットワーク4500を介して相互に接続される。
 ホストI/F部4100は、複数のホストI/F(または論理ポート)4110を有する。図示の例では、ホストI/F部4100は、論理ポート1A、2B、3BでSAN5000に接続される。ホストI/F部4100は、複数のホストグループを有し、SAN5000を経由したホストI/F4110へのログイン(例えば、ファブリックログイン)の処理時に、ホストグループに登録された、WWN(World Wide Name)によるログイン要求を受理する機能を含む。
 ディスクI/F部4400は、複数のディスクI/F4410を有し、ディスクI/Fは、例えば、ケーブルを介して記憶デバイス(記憶媒体)4700と接続される。記憶デバイス4700は、HDDやSSD等の不揮発性記憶媒体で構成される。また、記憶デバイス4700は、RAID等の冗長化装置を含む。記憶デバイス4700は、図1に示したプール4230のLDEV4220に論理記憶領域4231を提供する。
 ディスクI/F部4400は、論理分割機能を含み、物理的な記憶デバイス4700の記憶領域を論理的な記憶領域(プール4230)に割り当てることができる。プール4230に割り当てられた論理記憶領域4231は、後述するようにLDEV4220に割り当てられる。LDEV4220は仮想的な記憶領域を示すLU4210がマッピングされ、LU4210が仮想記憶領域なるボリュームVOLとしてホスト計算機1000に提供される。ホスト計算機1000はボリュームVOLをマウントして、読み書きを実行する。
 共有メモリ部4300は、データキャッシュ用メモリ4310と制御情報用メモリ4320を有する。データキャッシュ用メモリ4310は、記憶デバイス4700に書き込むデータを一時的に格納(キャッシュ)し、或いは記憶デバイス4700からリードしたデータを一時的に格納(キャッシュ)する。制御情報用メモリ4320は、処理に必要な情報、例えば、論理ボリュームやバインドグループなどの構成情報を格納する。
 制御部4200は、複数のMP(Micro Processor)4210と、ローカルメモリ(LM)4220と、これらを接続するバス4250とを有する。ローカルメモリ4270には、制御プログラム4600がロードされてMP4210によって実行される。
 MP4210は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、MP4210は、制御プログラムに従って処理することで制御部4200として機能する。他のプログラムについても同様である。さらに、MP4210は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
 図2Bは、ローカルメモリ4270にロードされたソフトウェアリソースの一例を示すブロック図である。ローカルメモリ4270には、ストレージ装置4000を制御する制御プログラム4600と、ボリューム管理テーブルT1000と、LU管理テーブルT2000と、VM管理テーブルT3000とを含む。
 <ホスト計算機>
 図3は、ホスト計算機1000の一例を示すブロック図である。ホスト計算機1000は、プロセッサ1100と、メモリ1200と、ホストバスアダプタ(HBA:Host Bus Adapter)1300と、ハイパバイザ1400と、ハイパバイザ1400上で稼働する仮想計算機(Virtual Machine)1320と、入力部1700と、出力部1800及びネットワークI/F1500とを含む計算機である。
 ホストバスアダプタ1300は、ストレージ装置4000との通信時におけるプロトコル制御を行う。ホストバスアダプタ1300が、プロトコル制御機能を実行することで、ホスト計算機1000とストレージ装置4000との間において、例えば、ファイバチャネルプロトコルに従ってデータやiSCSI(またはFC SAN等)のコマンドの送受信が行われる。
 ローデバイス1310は、仮想計算機1320がボリューム(LU4210)をアクセスした際に、ページキャッシュ(図示せず)に一旦データをコピーする処理を行うことなく、I/O(入出力) 処理を実行し、オーバーヘッドを低減するためのデバイスとして用いられる。
 HBA1300が取得するボリューム識別子は、グローバルユニークな値である必要があり、ストレージ装置4000のシリアル番号(装置製番)とストレージ装置内のローカルボリューム識別子の組合せで形成される。
 入力部1700は、例えば、キーボード、スイッチやポインティングデバイス、マイクロフォンなどから構成される。出力部1600は、モニタディスプレイやスピーカなどから構成される。
 メモリ1200には、ハイパバイザ1400がロードされてプロセッサ1100によって実行されホスト計算機1000のリソースを管理する。ハイパバイザ1400は、管理計算機3000からの指令に基づいて仮想計算機1320にリソースを割り当てる。ハイパバイザ1400は割り当てたリソースで仮想計算機1320を稼働させる。
 仮想計算機1320は、ゲストOS(図示省略)上で業務アプリケーション1210とストレージ管理プログラム1220を実行する。ストレージ管理プログラム1220は、業務アプリケーション1210やOSからのLU割当てや割当て解除などのボリューム(論理ボリューム)に対する操作要求を管理ネットワーク6000を介して管理計算機3000が具備するストレージ装置管理プログラム3110に送信することができる。さらに、ストレージ管理プログラム1220は、ストレージエリアネットワーク5000を介して、ストレージ装置4000に論理ボリュームの操作要求を送信することができる。
 <管理計算機>
 図4は、管理計算機3000の一例を示すブロック図である。管理計算機3000は、プロセッサ3200と、メモリ3100と、記憶媒体3300と、入力部3700と、出力部3600及びネットワークI/F3400とを含む計算機である。
 メモリ3100にロードされたストレージ装置管理プログラム3110及びホスト計算機管理プログラム3120をプロセッサ3200が実行することにより、ストレージ装置4000およびホスト計算機1000の構成管理操作要求を管理ネットワーク6000を介してストレージ装置4000およびホスト計算機1000へ送信する。
 ストレージ管理者は、キーボードやマウスなどの入力装置を用いて入力部3700に操作要求を入力し、ディスプレイやスピーカなどの出力部3600を介して実行結果を取得することができる。
 HDDやSSDなどの記憶媒体3300には、ストレージ装置管理プログラム3110やホスト計算機管理プログラム4120と各制御プログラムの実行ログが格納されている。
 <記憶領域の運用>
 図5は、従来例における記憶領域の運用形態の一例を示す図である。テンプレート用ボリュームをVOL1とし、VOL1の実体をプール4230の論理記憶領域1(4231-1)のLDEV1(4220-1)とし、LDEV1にLU1(4210-1を)割り当てて、ボリュームVOL1(131-1)としてホスト計算機1000-1に提供する。
 次に、テンプレート用ボリュームのLDEV1をホスト計算機1000-2で利用するために、LDEV1のスナップショット(SS)を生成して読み出し専用(Read Only)のLDEV2(4220-2)を生成して、LU20(4210-20)を割り当てる。
 ストレージ装置4000は、ホスト計算機1000-2にLU20を割り当ててVOL2(131-2)として提供する。このVOL2に対して読み出し要求が発生すると、ストレージ装置4000は、LDEV2のデータを格納した論理記憶領域2(4231-2)からデータを読み出して応答する。
 次に、ストレージ装置4000はLDEV2のクローン(CL)を生成して論理記憶領域3(4231-3)に書き込んでLDEV3(4220-3)とする。そして、複製されたLDEV3にLU3(4210-3)をマッピングし、ホスト計算機1000-2にはLU3をボリュームVOL3(131-3)として提供する。
 以上の運用により、複製元のテンプレート用ボリュームLDEV4220-1のスナップショット(LDEV2)を複製元としてクローンのLDEV3を生成してホスト計算機1000-2の仮想計算機にVOL3を提供することで、ホスト計算機1000-2からテンプレート用ボリュームLDEV4220-1が改変されるのを保護することができる。
 図6は、本実施例1における記憶領域の関係を示す図である。まず、図5の従来例と同様に、テンプレート用ボリューム(仮想記憶領域)をVOL1とし、VOL1の実体であるLDEV(論理デバイス)1(4220-1)をプール4230の論理記憶領域1(4231-1)に格納し、このLDEV1にLU(論理ユニット)1(4210-1)を割り当ててテンプレート用ボリュームVOL1(131-1)としてホスト計算機1000-1に提供する。
 次に、テンプレート用ボリュームの複製(スナップショット)として利用するボリュームVOL2(131-2)をホスト計算機1000-2へ提供するために、ストレージ装置4000は、読み出し専用(Read Only)で、かつ、読み出し要求の転送先としてLDEV1を設定した転送用のLU2(4210-2)を生成し、ホスト計算機1000-2に中間ボリュームVOL2として割り当てる。
 ホスト計算機1000-2は、LU2を中間ボリュームVOL2(131-2)としてマウントして利用することができる。LU2は、プール4230に実体がなく、ホスト計算機1000-2がVOL2に対して読み出しを実施すると、ストレージ装置4000では、読み出し要求をLDEV1に転送して、読み出し処理を実施してホスト計算機1000-2に応答する。
 LU2のアクセス要求の転送先であるテンプレート用ボリュームVOL1は、読み出し専用であるので、ホスト計算機1000-2からVOL2(VOL1)への書き込みは禁止されるため、LDEV1を改変することはできない。このため、テンプレート用ボリュームとしてのLDEV1は、図5と同様に保護される。
 次に、ストレージ装置4000では、スナップショットボリュームVOL2のクローンを生成して運用ボリュームVOL3としてホスト計算機1000-2で利用するために、LDEV1のクローン(CL)を生成してテンプレート用ボリュームVOL1のコピーペアを論理記憶領域3(4231-3)に書き込んでLDEV3(4220-3)とする。そして、複製されたLDEV3にLU3(4210-3)をマッピングし、ホスト計算機1000-2にLU3をボリュームVOL3(131-3)としてマウントさせる。
 本実施例1のストレージ装置4000では、複製元のテンプレート用のLDEV4220-1からクローンを生成して実際に仮想計算機1320の運用を行う運用ボリュームVOL3(運用LU3)をホスト計算機1000-2へ提供することで、テンプレート用ボリュームの実体を含むLDEV3を利用させることができる。
 そして、テンプレート用ボリュームVOL1のスナップショットやクローンなどの中間ボリュームVOL2には、読み出し専用かつ読み出し要求の転送先をプール4230に実体のあるLDEV1に設定し、LDEV1も読み出し専用で設定しておく。これにより、中間ボリュームVOL2とテンプレート用ボリュームVOL1は、ホスト計算機1000-2から読み出し要求のみを受け付けて、書き込み要求を拒否することで、テンプレート用ボリュームVOL1の実体であるLDEV1の改変を防ぐことができる。
 このように、ホスト計算機1000-2は前記従来例の図5と同様にボリュームVOL2に対して読み出し要求を行うことを可能にしながら、プール4230にLU2に対応するLDEVを用意する必要がなくなって、ストレージ装置4000の資源の利用を削減することができるのである。
 本実施例1では、テンプレート用ボリュームVOL1からスナップショットやクローンなどで中間ボリュームVOL2を生成する仮想計算機システムでストレージ装置4000の資源を節約することができる。特に、仮想デスクトップシステムのように、企業の本社でテンプレート用ボリュームVOL1を管理して、部門毎や支店毎に中間ボリュームVOL2を配置して、中間ボリュームVOL2の複製で仮想計算機を稼働させる場合には、中間ボリュームの実体をプール4230に格納する必要がなくなるので、ストレージ装置4000の資源を有効に利用することが可能となる。
 <テーブル群>
 次に、ストレージ装置4000の制御部4200に含まれる制御プログラム4600が利用する各テーブルについて以下に説明する。
 図7はボリューム管理テーブルT1000の一例を示す図である。ボリューム管理テーブルT1000は、ホスト計算機1000に提供するボリュームとストレージ装置4000のリソースの関係を管理するテーブルで、制御プログラム4600によって管理される。
 ボリューム管理テーブルT1000は、ボリュームの識別子を格納するボリュームID(T1010)と、ボリュームの種類を格納するTYPE(T1010)と、ボリュームに割り当てたストレージ装置4000のリソースの識別子を格納するリソースID(T1030)と、コピーペアを構成するボリュームの親ボリュームの識別子を格納するペア情報T1040と、読み出し専用を示すリードオンリーフラグT1050とをひとつのエントリに含む。
 TYPE(T1010)の「DP」は、実ボリュームを示す。リソースID(T1030)は、ボリュームに割り当てられているリソースの実体またはLUの識別子が格納される。図示の例では、図6と同様であり、ボリュームVOL1にはLDEV1が割り当てられ、ボリュームVOL2にはLU2が割り当てられ、ボリュームVOL3にはLDEV3が割り当てられる。
 リードオンリーフラグT1050は「1」であれば、読み出し専用のボリュームであり、「0」であれば書き込み可能なボリュームを示す。図示の例では、ボリュームVOL1、2が読み出し専用であり、ボリュームVOL3が書き込む可能なボリュームであることを示す。また、ペア情報T1040は、ボリュームVOL2がボリュームVOL1を親ボリュームとし、ボリュームVOL3がボリュームVOL2を親とするコピーペアの連鎖を示している。
 図8はLU管理テーブルT2000の一例を示す図である。LU管理テーブルT2000は、ホスト計算機1000に割り当てるLU4210とボリュームの関係を管理するテーブルで、制御プログラム4600によって管理される。
 LU管理テーブルT2000は、ポートの識別子を格納するポートID(T2010)と、ホストグループの識別子を格納するホストグループID(T2020)と、LU4210の識別子を格納するLU ID(T2030)と、ボリュームの識別子を格納するボリュームID(T2040)と、転送先のボリュームの識別子を格納する転送先仮想ボリュームID(T2050)とをひとつのエントリに含む。
 本実施例1のLU管理テーブルT2000は、ストレージ装置4000のポートとLU及びボリュームの関係を定義するのに加え、当該LUへの読み出し要求の転送先を転送先仮想ボリュームID(T2050)で設定することができる。すなわち、図中LU2は、転送先仮想ボリュームID(T2050)=「VOL1」に設定されており、LU2に対する読み出し要求は、ボリュームVOL1へ転送される。
 図9は、VM管理テーブルT3000の一例を示す図である。VM管理テーブルT3000は、仮想計算機1320に割り当てるボリュームを管理するテーブルで、制御プログラム4600によって管理される。
 VM管理テーブルT3000は、ホスト計算機1000で稼働する仮想計算機1320の識別子を格納する仮想計算機ID(T3010)と、割り当てたボリュームがテンプレートであるか否かを示すテンプレートフラグT3020と、仮想計算機1320に割り当てられたボリュームの識別子を格納する割り当てボリュームID(T3030)とをひとつのエントリに含む。
 テンプレートフラグT3020は、「1」であれば、割り当てボリュームID(T3030)のボリュームが仮想計算機のテンプレート用ボリュームであることを示す。図示の例では、ボリュームVOL1、VOL2がテンプレート用ボリュームであることを示す。
 <処理>
 次に、ストレージ装置4000で行われる処理の一例について説明する。図10は、ストレージ装置4000がホスト計算機1000からアクセス要求を受け付けた時に実行する処理の一例を示すフローチャートである。
 ホストI/F部4100でアクセス要求を受け付けると、制御部4200はアクセス要求を取得して、アクセス要求に含まれるコマンド(例えば、SCSIコマンド)を解析する(F1010)。
 制御部4200は、解析したコマンドがREADコマンドであるか否かを判定する(F1020)。READコマンドであれば、ステップF1030へ進み、READコマンド以外であればステップF1060に進む。
 ステップF1030では、制御部4200は、読み出し対象のLUのIDからLU管理テーブルT2000を参照して、転送先仮想ボリュームID(T2050)を読み込む。ステップF1040では、制御部4200がLU管理テーブルT2000から読み出し対象のボリュームを選択する。
 すなわち、制御部4200はLU管理テーブルT2000の転送先仮想ボリュームID(T2050)が「NULL」であれば、ボリュームID(T2040)のボリュームIDを読み出し対象として選択し、転送先仮想ボリュームID(T2050)が「NULL」でなければ当該ボリュームIDを読み出し対象として選択する。図8の例では、LU2の転送先仮想ボリュームID(T2050)は「VOL1」となっているので、LU2が読み出し対象の場合はボリュームVOL1を選択する。換言すれば、ボリュームVOL2への読み出し要求をボリュームVOL1へ転送することになる。
 次に、制御部4200は、VOL(ボリューム)管理テーブルT1000を参照して、選択したボリュームIDに対応するLDEV4220の識別子を取得する(F1040)。そして、制御部4200は、読み出し対象のLDEV4220から要求されたデータを読み込んで、アクセス要求に対する応答を送信する。なお、データの読み出しは、ディスクI/F部4400で実行し、アクセス要求に対する応答はホストI/F部4100で実行する。
 次に、読み出し以外のコマンドの場合は、ステップF1060でLU管理テーブルT2000からアクセス対象のボリュームIDを取得し、ボリューム管理テーブルT1000を参照して当該ボリュームのリードオンリーフラグT1050が読み出し専用であるか否かを判定する(F1070)。
 当該ボリュームのリードオンリーフラグT1050が読み出し専用の場合には、現在のアクセス要求(例えば、書き込み)は実行できないので、違反であることを示す応答を通知する(F1080)。一方、当該ボリュームのリードオンリーフラグT1050が「0」の場合には、現在のアクセス要求(例えば、書き込み)を実行する。
 上記処理によって、リードオンリーフラグT1050が「1」のボリュームについては読み出しのみを実行して書き込みを禁止することができる。そして、LU管理テーブルT2000の転送先仮想ボリュームID(T2050)のボリュームの識別子が設定されている場合には、アクセス対象のLUに代わって、設定されているボリュームに対して読み出しを実施する。
 図11は、ストレージ装置4000の制御部4200が所定のタイミング実行するボリューム管理テーブルの更新処理の一例を示すフローチャートである。この処理は所定の周期(例えば12時間毎)や、仮想計算機1320の生成や、削除などの変更時に実行される。
 制御部4200は、VM管理テーブルT3000を読み込んでから(F2010)、ステップF2020~F2060の処理を全ての仮想計算機ID(T3010)について繰り返す。
 ステップF2030では、制御部4200がVM管理テーブルT3000からVM ID(T3010)を一つ選択し、テンプレートフラグT3020が「1」であるか否かを判定する。「1」であれば、当該VM ID(T3010)に割り当てられたボリュームID(T3030)がテンプレート用ボリュームであると判定し、ステップF2040へ進む。一方、「0」であれば、当該VM ID(T3010)に割り当てられたボリュームID(T3030)は運用ボリュームであると判定して、ステップF2020に戻って上記処理を繰り返す。
 ステップF2040では、制御部4200は、当該VM ID(T3010)に割り当てられたボリュームID(T3030)を選択する。ステップF2050では、制御部4200が選択したボリュームIDに基づいてボリューム管理テーブルT1000を検索し、当該ボリュームID(T1010)のリードオンリーフラグT1050を「1」に設定する。
 上記処理をVM管理テーブルT3000の全てのエントリについて実施することで、テンプレート用ボリュームを読み出し専用のボリュームとして設定する。
 図12は、ストレージ装置4000の制御部4200がLU管理テーブルT2000に読み出し要求を他のボリュームへ転送するLUを生成する処理の一例を示すフローチャートである。この処理は、ストレージ装置4000が、管理計算機3000から読み出し要求を他のボリュームに転送するLUの生成指令を受け付けたときに実行される。
 読み出し要求を他のボリュームへ転送するLUの生成指令には、生成するLUのIDと、転送先のボリュームのIDと、LUに対応するボリュームの種類が含まれている。なお、ボリュームの種類がスナップショットの場合には、親ボリュームの識別子がLUの生成指令に含まれる。
 制御部4200は、読み出し要求を転送するLUの生成指令を解析して、受け付けたLUのIDと転送先のボリュームのIDと、生成するLUに対応するボリュームの種類を取得する(F3010)。
 制御部4200は、LU管理テーブルT2000とボリューム管理テーブルT1000を読み込む(F3020、F3030)。そして、制御部4200は、受け付けた転送先のボリュームIDと一致するボリュームID(T10140)のエントリから、リードオンリーフラグT1050の値を取得し、当該フラグが「1」(読み出し専用)であるか否かを判定する(F3040)。リードオンリーフラグT1050が「1」で当該ボリュームが読み出し専用であればステップF3050へ進み、そうでない場合にはステップF3060へ進む。
 ステップF3050では、制御部4200が、LU管理テーブルT2000に新たなエントリを追加して、受け付けたLUのIDと、転送先のボリュームIDをLU管理テーブルT2000のLU ID(T2030)と転送先仮想ボリュームID(T20520)に設定する。
 次に、制御部4200は、ボリューム管理テーブルT1000を参照して未使用のボリュームID(T1010)を取得して、上記LU管理テーブルT2000に追加したエントリのボリュームID(T2040)に設定する(F3070)。また、制御部4200は、当該エントリにポートID(T2010)とホストグループID(T2020)を付与する。
 制御部4200は、ボリューム管理テーブルT1000に新たなエントリを追加して、前記取得したボリュームIDをボリュームID(T1010)に設定し、前記受け付けたボリュームの種類(例えば、スナップショット)をTYPE(T1020)に設定し、前記LUのIDをリソースID(T1030)に設定する。なお、ボリュームの種類(TYPE(T1050))がスナップショット(またはクローン)の場合には、指令に含まれている親ボリュームのIDをペア情報T1040に設定する。また、制御部4200は、当該ボリュームは実体(論理記憶領域)のないボリュームであるので、リードオンリーフラグT1050を「1」に設定しておく。
 制御部4200は、LU管理テーブルT2000とボリューム管理テーブルT1000に新たなエントリの追加が完了したので、LUの生成指令に対する応答として、前記ステップF3070で取得した新たなボリュームIDを通知する(F3080)。
 一方、前記ステップF3040の判定で、転送先のボリュームが読み出し専用ではない場合には、制御部4200は、LUの生成指令の送信元に、指定されたLUを生成できないことを通知する。
 以上の処理によって、制御部4200は、読み出し要求を読み出し専用のボリュームへ転送するLUと、当該LUに関連づけられたボリュームを生成することができる。なお、読み出し要求を転送するLUに関連づけられたボリュームは、図9の「VOL2」で示すように、リソースID(T1030)にLUの識別子が設定され、論理記憶領域を持たないボリュームとして生成される。
 なお、上記では管理計算機3000がLUの生成指令にLUのIDを含める例を示したが、LUのIDをストレージ装置4000で設定するようにしてもよい。この場合、LU管理テーブルT2000の新たなエントリに開いているLUのIDを設定し、当該LUのIDをボリューム管理テーブルT1000のリソースID(T1030)に設定すればよい。
 図13は、ストレージ装置4000の制御部4200がボリュームのコピーペアを生成する処理の一例を示すフローチャートである。この処理は、ストレージ装置4000が、管理計算機3000からコピーペアの生成指令を受け付けたときに実行される。
 コピーペアの生成指令には、コピー元となるボリュームIDと、コピーの種類(スナップショットまたはクローン)と、コピー先のボリュームの属性(読み出し専用または書き込み可)が含まれる。
 制御部4200は、コピーペアの生成指令を解析し、コピー元のボリュームと、コピーの種類と、コピー(派生)先のボリュームの属性を取得する(F4010)。制御部4200は、コピー先のボリュームの属性がリードオンリーであるか否かを判定し(F4020)、読み出し専用であればステップF4030へ進み、書き込み可能であればステップF4060に進む。
 ステップF4030では、制御部4200がボリューム管理テーブルT1000を読み込む。次に、制御部4200は、コピー元のボリュームが読み出し専用であるか否かを判定する(F4040)。換言すれば、コピー元となるボリュームにLDEV4220が存在するか否かを判定する。コピー元となるボリュームが読み出し専用の場合には、ステップF4050へ進み、コピー元となるボリュームが書き込み可能であればステップF4060へ進む。
 ステップF4050では、コピー先のボリュームが読み出し専用、かつ、コピー元となるボリュームも読み出し専用となるので、コピー元のボリュームに読み出し要求を転送するLUを生成する図12のステップF3010~F3080の処理を実行し、戻り値としてコピー先のボリュームIDを取得する。
 一方、生成するコピー先のボリュームの属性が書き込み可能、またはコピー先のボリュームの属性が書き込み可能の場合には、ステップF4060で制御部4200がコピー元となるボリュームのLDEV4220を選択する。制御部4200は、コピー元のボリュームIDでボリューム管理テーブルT1000のエントリからリソースID(T1030)に格納されているLDEV4220を取得する。
 ステップF4070では、制御部4200が、選択したLDEV4220について指定されたコピーの種類でコピー先のボリュームを生成し、ボリュームIDを付与してボリューム管理テーブルT1000とLU管理テーブルT2000に新たなエントリを追加する。次に、制御部4200は、ステップF4080で生成したコピー先のボリュームIDを通知して処理を終了する。
 以上のように、管理計算機3000からの指令に基づいてストレージ装置4000では、指定されたコピー元のボリュームから、指定された種類でボリュームを複製し、コピーペアを生成することができる。
 図14は、従来例を示し、テンプレート用ボリュームからクローンの運用ボリュームを生成する処理の一例を示す図である。図示の例は、仮想計算機のテンプレート用ボリュームVOL11の複製から、仮想計算機(VM11)の運用ボリュームVOL16を生成する例を示す。
 まず、仮想計算機のテンプレート用ボリュームVOL11のスナップショットボリュームVOL12を生成する。スナップショットボリュームVOL12はリードオンリーとする。テンプレート用ボリュームVOL11と、スナップショットボリュームVOL12が親の世代となる。
 次に、スナップショットボリュームVOL12のクローンをボリュームVOL13として生成する。そして、クローンのボリュームVOL13のスナップショットボリュームVOL14を生成する。スナップショットボリュームVOL14はリードオンリーとする。これらのボリュームVOL1、314が仮想計算機の複製となる。
 次に、スナップショットボリュームVOL14のリンクドクローン(Linked-Clone)をボリュームVOL15として生成する。リンクドクローンは、マスター・イメージとなる仮想計算機のボリュームを、読み取り専用で複数の仮想計算機で共有するボリュームである。
 ユーザに提供する仮想計算機(VM11)のボリュームVOL16は、ボリュームVOL15を共有(リンクドクローン)し、差分データを蓄積した差分ボリュームVOL16とする。なお、ボリュームVOL1、516がユーザ用のクローンのボリュームとなる。
 図15は、従来例を示し、テンプレート用ボリュームからクローンのボリュームを生成するストレージ装置4000の構成を示すブロック図である。
 従来例を実現する例として、ストレージ装置4000では、プール1(4230-1)の書き込みデータ領域に、テンプレート用ボリュームVOL11に対応するLDEV11の内容を格納する。
 次に、LDEV11のスナップショットをプール2(4230-2)の差分データ領域に生成し、スナップショットボリュームVOL12に対応するLDEV12とする。次に、スナップショットボリュームVOL12のLDEV12のクローンを複製データ領域3に書き込んでクローンボリュームVOL13も対応するLDEV13を生成する。
 そして、クローンのLDEV13のスナップショットを差分データ領域4に書き込んで、ボリュームVOL14に対応するLDEV14を生成する。スナップショットボリュームVOL14はリードオンリーとする。
 次に、スナップショットボリュームVOL14に対応するLDEV14のリンクドクローン(Linked-Clone)を差分データ領域5に書き込んで、ボリュームVOL15に対応するLDEV15として生成する。さらに、LDEV15のスナップショットを差分データ領域6に書き込んで、運用ボリュームVOL16に対応するLDEV16として生成する。
 以上のように、前記従来例では、中間ボリュームVOL12~15のアクセス(読み出し)先としてLDEV12~15を生成しておく必要があり、この結果、プール2には差分データ領域2、4、5及び複製データ領域3を確保する必要が生じる。
 図16は、実施例1を示し、テンプレート用ボリュームからクローンのボリュームを生成するストレージ装置4000の構成を示すブロック図である。
 図15に示した従来例と同様に、ストレージ装置4000では、プール1(4230-1)の書き込みデータ領域に、テンプレート用ボリュームVOL11に対応するLDEV11の内容を格納する。
 次に、スナップショットボリュームVOL12は、ボリュームVOL1を親とするコピーペアとしてボリュームVOL2を生成する。ボリュームVOL2のリソースには、読み出し要求の転送先(T2050)に親ボリュームVOL1を設定しておく。
 次に、ボリュームVOL2を親ボリュームとするクローンボリュームVOL3を生成する。ボリュームVOL3のリソースには、読み出し要求の転送先(T2050)に親ボリュームVOL2を設定しておく。
 次に、ボリュームVOL3を親ボリュームとするスナップショットボリュームVOL4を生成する。ボリュームVOL4のリソースには、読み出し要求の転送先(T2050)に親ボリュームVOL3を設定しておく。同様に、ボリュームVOL4を親ボリュームとするスナップショットボリュームVOL5を生成する。ボリュームVOL5のリソースには、読み出し要求の転送先(T2050)に親ボリュームVOL4を設定しておく。
 最後に、運用ボリュームVOL6をLDEV1のスナップショットをプール2(4230-2)の差分データ領域に書き込んで、ボリュームVOL6に対応するLDEV2を生成する。
 本実施例1によれば、中間ボリュームVOL2~5を読み出し専用の属性として、読み出し要求の転送先に親ボリュームを設定しておくことで、中間ボリュームVOL2~5に対する読み出し要求は、ボリュームVOL1のLDEV1に転送されることになる。そして、実際に仮想計算機(VM1)に提供されるプール2の論理記憶領域は差分データ領域1のみとすることができる。
 したがって、本実施例1では、図15に示した複製データ領域3と差分データ領域4~6が不要となり、中間ボリュームのためにストレージ装置4000のリソースが消費されるのを抑制でき、ストレージ装置4000上で展開可能な仮想計算機の数を増大することが可能となる。
 なお、上記実施例1では、図10~図13の処理をストレージ装置4000の内部の制御部4200で行う例を示したが、上記処理の一部を外部の計算機で実行するようにしても良い。
 図18は、本発明の第2の実施例を示し、記憶領域の運用の一例を示す図である。本実施例2は、前記実施例1に示したストレージ装置4000に、前記コングロマリットLU構造(Conglomerate LU Structure)を適用したもので、制御プログラム4600が利用するテーブルとして図21のバインド管理テーブルT6000を加えたものである。その他の構成については前記実施例1と同様である。
 図17は、図5に示した従来例に、Conglomerate LU Structureを適用した例を示す図である。図示の例では、LU1(4210)を代表論理ボリューム(ALU:Administrative Logical Unit)とし、このALUの配下に補助論理ユニット(SLU:Subsidiary Logical Unit)としてLDEV1~LDEV3の論理パスを設定する。LDEV1(VOL1)~LDEV3(VOL3)は前記図5と同様に、論理記憶領域1~3に割り当てられている。なお、補助論理ユニット(SLU)は前記実施例1のLDEV(論理デバイス)に対応する。
 ホスト計算機1000-1、1000-2では、それぞれ代表論理ボリューム(ALU=VOL4)141までのホストパスを設定することで、ストレージ装置4000のALU4210の配下の全てのLDEV1~LDEV3にアクセスすることができる。
 図18に示す実施例2も図17と同様であるが、ホスト計算機1000-2のボリュームVOL2に対応するLDEVを省略し、ボリュームVOL2への読み出し要求を代表論理ボリュームALUが読み出し専用のLDEV1に転送して代理で応答するものである。
 本実施例2では、前記実施例1のLU2に代わって、代表論理ボリュームALU4210が、ボリュームVOL2への読み出し要求をLDEV1(VOL1)へ転送することで、中間ボリュームVOL2のLDEVを不要にして、プール4230における論理記憶領域の消費を削減するものである。
 図19は、ボリューム管理テーブルT1000の一例を示す図である。ボリューム管理テーブルT1000は、各フィールドT1010~T1050の構成については前記実施例1の図7と同様であるが、代表論理ボリュームALUなどのストレージ装置4000のリソースが異なる。図示の例は、図18の構成に対応する。
 図19において、ボリュームVOL4は、TYPE(T1020)が「ALU」で、ストレージ装置4000のリソースIDは「LU1」である。ボリュームVOL2は、ボリュームVOL1のスナップショットで読み出し専用である点は、前記実施例1と同様であるが、リソースID(T1030)が「VSLU(Virtual Subsidiary Logical Unit)」となっている点が前記実施例1と相違する。なお、以下ではVSLUを仮想SLUとし、代表論理ボリュームALU(VOL4)の配下の仮想的なSLUを示す。
 図20は、LU管理テーブルT2000の一例を示す図である。LU管理テーブルT2000は、各フィールドT2010~T2050の構成については前記実施例1と同様であり、ボリュームVOL2の転送先仮想ボリュームID(T2050)は、前記実施例1と同様にボリュームVOL1が設定される。
 図21は、バインド管理テーブルT6000の一例を示す図である。バインド管理テーブルT6000は、ALUに割り当てられているボリュームの識別子を格納するALU(T6100)と、SLUとして割り当てられているボリュームの識別子を格納するバインドSLUボリュームID(T6020)と、読み出し要求の転送先を格納する変換ボリュームID(T6030)がひとつのエントリに含まれる。
 ALU(T6010)は、図18で示したようにLU1にマッピングされたボリュームVOL4が格納され、VOL4のALUに対応して、ホスト計算機1000に提供されるボリュームVOL1~VOL3がバインドSLUボリュームID(T6020)として格納される。
 そして、ボリューム管理テーブルT1000で、リソースID(T1030)が「VSLU(仮想SLU)」に設定されたボリュームVOL2の変換ボリュームID(T6030)には、ボリュームVOL1が設定される。これにより、ALUがボリュームVOL4で、SLUがVOL2の読み出し要求は、ボリュームVOL1に対応するLDEV1に点差応されることになる。なお、変換ボリュームID(T6030)が「NULL」の場合は、バインドSLUボリュームID(T6020)に設定されたボリュームIDに直接アクセスされる。
 以上のような構成によって、Conglomerate LU Structureを適用した場合においても、前記実施例1と同様に中間ボリュームVOL2への読み出し要求は、ボリュームVOL1のLDEV1から読み出すことで処理される。これにより、中間ボリュームのためにプール4230の論理記憶領域を確保する必要は無くなって、ストレージ装置4000のリソースを有効に利用することができる。
 図22は、ストレージ装置4000がホスト計算機1000からアクセス要求を受け付けた時に実行する処理の一例を示すフローチャートである。
 ホストI/F部4100でアクセス(I/O)要求を受け付けると、制御部4200はアクセス要求を取得して、アクセス要求に含まれるコマンド(例えば、SCSIコマンド)を解析する(F5010)。コマンドには、ALUのボリュームIDとSLUのボリュームIDと読み出しまたは書き込みなどの要求が含まれる。
 制御部4200は、バインド管理テーブルT6000を参照して(5020)、コマンドで指定されたSLUがALUにバインドされているか否かを判定する。コマンドに含まれているALUとSLUの組み合わせが、バインド管理テーブルT6000に存在するか否かを判定する(F5030)。ALUとSLUの組み合わせが、バインド管理テーブルT6000に存在すればステップF5040へ進み、そうでない場合にはステップF5050に進む。
 ステップF5040では、図23に示す処理を実行する。ステップF5050では、制御部4200が指定されたSLUへのアクセスを拒否し、アクセスを拒否した通知をホストI/F部4100を介して送信する。
 図23は、図22のステップF5040で行われる処理の一例を示すフローチャートである。ステップF6010では、図22のステップF5010で解析したSLUに対応するボリュームIDでボリューム管理テーブルT1000を参照し、リソースID (T1030)を取得する。
 ステップF6020では、制御部4200がSLUに対応するリソースIDがVSLUであるか否かを判定する。リソースIDがVSLUであれば、ステップF6040に進み、そうでなければステップF6030に進む。ステップF6030では、制御部4200が指定されたリソースIDに対応するSLUにアクセス要求を指令してアクセスを実行する。
 ステップF6040では、制御部4200がアクセス要求の種類が書き込み要求であるか否かを判定する。アクセス要求の種類が書き込み要求の場合、制御部4200はボリューム管理テーブルT1000のリードオンリーフラグT1050が「1」であるので書き込みを拒否して、書き込みの拒否を含む応答を送信する。一方、アクセス要求の種類が書き込み要求でない場合(読み出し要求)は、制御部4200はボリューム管理テーブルT1000のペア情報T1040に設定されたボリュームIDにアクセス要求を転送し、アクセスを実行させる。
 以上の処理により、SLUに対応するボリュームのリソースID(T1030)が仮想SLU(VSLU)で、かつ、アクセス要求が読み出し要求の場合には、制御部4200はペア情報T1040に設定されたボリュームに読み出し要求を転送することで、ボリュームVOL1からデータを読み出すことができる。
 これにより、中間ボリュームVOLの実体となるLDEV4220をプール4230に確保する必要がなくなって、ストレージ装置4000のリソースの消費を削減することができる。
 図24は、ストレージ装置4000の制御部4200がLU管理テーブルT2000に読み出し要求を転送するVSLU(仮想SLU)を生成する処理の一例を示すフローチャートである。
 この処理は、ストレージ装置4000が、管理計算機3000から読み出し要求を転送するVSLUの生成指令を受け付けたときに実行される。読み出し要求を転送するVSLUの生成指令には、転送先のボリュームのIDと、VSLUに対応するボリュームの種類が含まれている。なお、ボリュームの種類がスナップショットの場合には、親ボリュームの識別子がVSLUの生成指令に含まれる。
 制御部4200は、読み出し要求を転送する仮想SLUの生成指令を解析して、受け付けた転送先のボリュームのIDと、生成するLUに対応するボリュームの種類を取得する(F7010)。
 制御部4200は、ボリューム管理テーブルT1000を読み込んで(F7020)、受け付けた転送先のボリュームのIDと一致するエントリでリードオンリーフラグT1050を取得する。そして、制御部4200は、リードオンリーフラグT1050が「1」(読み出し専用)であるか否かを判定する(F7030)。リードオンリーフラグT1050が「1」で当該ボリュームが読み出し専用であればステップF7040へ進み、そうでない場合にはステップF7060へ進む。
 ステップF7050では、制御部4200が、LU管理テーブルT2000に新たなエントリを追加して、開いているLUのIDと、転送先のボリュームIDを転送先仮想ボリュームID(T2050)に設定する。制御部4200は、ボリューム管理テーブルT1000を参照して未使用のボリュームID(T1010)を取得して(F7060)、上記LU管理テーブルT2000に追加したエントリのボリュームID(T2040)に設定する(F3070)。また、制御部4200は、当該エントリにポートID(T2010)とホストグループID(T2020)を付与する。
 制御部4200は、ボリューム管理テーブルT1000に新たなエントリを追加して、前記取得したボリュームIDをボリュームID(T1010)に設定し、前記受け付けたボリュームの種類(例えば、スナップショット)をTYPE(T1020)に設定し、「VSLU」をリソースID(T1030)に設定する。なお、ボリュームの種類がスナップショットの場合には、指令に含まれている親ボリュームのIDをペア情報T1040に設定する。また、当該ボリュームは実体(論理記憶領域)のないボリュームであるので、リードオンリーフラグT1050を「1」に設定しておく。
 制御部4200は、LU管理テーブルT2000とボリューム管理テーブルT1000に新たなエントリの追加が完了したので、VSLUの生成指令に対する応答として、前記ステップF7060で取得した新たなボリュームIDを通知する(F7070)。
 一方、前記ステップF70430の判定で、転送先のボリュームが読み出し専用ではない場合には、制御部4200は、VSLUの生成指令の送信元に、指定されたVSLUを生成できないことを通知する。
 以上の処理によって、制御部4200は、読み出し要求を読み出し専用のボリュームに転送するVSLUと、当該VSLUに関連づけられたボリュームを生成することができる。なお、読み出し要求を転送するVSLUに関連づけられたボリュームは、図19の「VOL2」で示すように、リソースID(T1030)にVSLUが設定され、論理記憶領域を持たないボリュームとして生成される。
 図25は、ストレージ装置4000の制御部4200がバインド管理テーブルを設定する処理の一例を示すフローチャートである。この処理は、ストレージ装置4000が、管理計算機3000からバインドの設定指令を受け付けたときに実行される。バインドの設定指令には、ALUに対応するボリュームIDと、SLUに対応するボリュームIDが含まれる。
 制御部4200は、バインドの設定指令を解析し、ALUのボリュームIDと、SLUのボリュームIDを取得する(F8010)。制御部4200は、ボリューム管理テーブルT1000とバインド管理テーブルT6000を参照する(ステップF8020、F8030)。
 次に、制御部4200は、SLUに対応するボリュームIDがVSLUであるか否かを判定する(F8040)。SLUに対応するボリュームIDがVSLUであればステップF8050へ進み、そうでない場合にはステップF8060へ進む。
 ステップF8050では、制御部4200がボリューム管理テーブルT1000のリソースID(1030)が「VSLU」のエントリを検索してボリュームID(T1010)とペア情報(T1040)のボリュームIDを取得する。
 そして、制御部4200は、バインド管理テーブルT6000に新たなエントリを生成し、ALUに対応するボリュームIDをALU(T6010)に設定し、ボリューム管理テーブルT1000から取得したボリュームIDをSLUに対応するボリュームID(T6020)に設定し、変換ボリュームID(T6030)にペア情報(T1040)のボリュームIDを設定する。
 一方、ステップF8060では、制御部4200は、バインド管理テーブルT6000に新たなエントリを生成し、ALUに対応するボリュームIDをALU(T6010)に設定し、SLUに対応するボリュームIDをボリュームID(T6020)に設定し、変換ボリュームID(T6030)に「NULL」を設定する。
 上記処理によって、管理計算機3000から指示されたALUのボリュームIDとSLUのボリュームIDをバインド管理テーブルT6000に設定することができる。
 以上のように、ストレージ装置4000が代表論理ボリュームALUから仮想記憶領域(SLU)にアクセスを行うコングロマリットLU構造(Conglomerate LU Structure)を採用した場合においても、前記実施例1と同様に、中間ボリュームの実体を構成するための論理記憶領域が不要となり、中間ボリュームのためにストレージ装置4000のリソースが消費されるのを抑制でき、ストレージ装置4000上で展開可能な仮想計算機の数を増大することが可能となる。
 なお、上記実施例2では、前記実施例1の図13と同様に、コピーペア(スナップショット、またはクローン)の生成指示をストレージ装置4000が受け付けたときに、読み出し要求をリードオンリーのLDEV1に転送する仮想SLUを生成することができる。
 また、上記実施例2では、中間ボリュームが一つの例を示したが、前記実施例1の図16と同様に、複数の中間ボリュームを仮想SLUに対応付けることができ、図16の例を実施例2に適用すると、中間ボリュームVOL2~VOL5に対応付けたVSLU1~4を生成すればよい。
 <まとめ>
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
 また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (14)

  1.  プロセッサとメモリと記憶媒体を有するストレージ装置であって、
     前記記憶媒体から論理記憶領域を生成し、前記論理記憶領域に論理デバイスを割り当て、当該論理デバイスに割り当てた論理ユニットを仮想記憶領域として提供する制御部を有し、
     前記制御部は、
     第1の論理デバイスを前記論理記憶領域に割り当て、前記第1の論理デバイスに対応付けた第1の論理ユニットを第1の仮想記憶領域として提供し、
     前記第1の仮想記憶領域の複製を第2の仮想記憶領域として生成し、前記第2の仮想記憶領域の複製を第3の仮想記憶領域として生成する際に、前記第2の仮想記憶領域を読み出し専用として第2の論理ユニットを割り当てて、当該第2の論理ユニットに対するアクセス要求を前記第1の仮想記憶領域に転送するよう論理ユニット管理情報に設定し、前記第1の論理デバイスの複製を第3の論理デバイスとして前記論理記憶領域に生成し、当該第3の論理デバイスに対応付けた第3の論理ユニットを第3の仮想記憶領域として提供することを特徴とするストレージ装置。
  2.  請求項1に記載のストレージ装置であって、
     前記制御部は、
     前記第1の仮想記憶領域と第2の仮想記憶領域を読み出し専用としてボリューム管理情報に設定し、前記第2の仮想記憶領域に対する前記アクセス要求が読み出し要求の場合には、前記第2の論理ユニットの論理ユニット設定情報に基づいて当該読み出し要求を前記第1の仮想記憶領域に転送し、前記第2の仮想記憶領域に対する前記アクセス要求が書き込み要求の場合には、当該アクセス要求を拒絶することを特徴とするストレージ装置。
  3.  請求項1に記載のストレージ装置であって、
     前記制御部は、
     前記第1の仮想記憶領域のスナップショットを第2の仮想記憶領域として生成する指令を受け付けた時に、前記第2の論理ユニットを生成して前記論理ユニット管理情報に設定することを特徴とするストレージ装置。
  4.  請求項1に記載のストレージ装置であって、
     前記制御部は、
     代表論理ボリュームから補助論理ユニットにアクセスするコングロマリットLU構造を採用し、前記代表論理ボリュームを前記第1の論理ユニットに対応する第4の仮想記憶領域としてボリューム管理情報に設定し、前記第2の論理ユニットに代わって、前記補助論理ユニットとして仮想SLUを前記第2の仮想記憶領域に対応付けてボリューム管理情報に設定することを特徴とするストレージ装置。
  5.  請求項4に記載のストレージ装置であって、
     前記制御部は、
     前記代表論理ボリュームが第4の仮想記憶領域で、前記仮想SLUが前記第4の仮想記憶領域の配下で、かつ、当該仮想SLUの変換先が前記第1の仮想記憶領域であることをバインド管理情報に設定することを特徴とするストレージ装置。
  6.  請求項5に記載のストレージ装置であって、
     前記制御部は、
     前記第1の仮想記憶領域と前記第2の仮想記憶領域とを読み出し専用として前記ボリューム管理情報に設定し、前記第2の仮想記憶領域に対するアクセス要求が読み出し要求の場合には、前記第2の論理ユニットに対応する仮想SLUのバインド管理情報に基づいて前記読み出し要求を前記第1の仮想記憶領域に転送し、前記第2の仮想記憶領域に対する前記アクセス要求が書き込み要求の場合には、当該アクセス要求を拒絶することを特徴とするストレージ装置。
  7.  請求項5に記載のストレージ装置であって、
     前記制御部は、
     前記第1の仮想記憶領域のスナップショットを第2の仮想記憶領域として生成する指令を受け付けた時に、前記仮想SLUを生成して前記バインド管理情報に設定することを特徴とするストレージ装置。
  8.  プロセッサとメモリと記憶媒体を有するストレージ装置と、
     前記ストレージ装置に接続されたホスト計算機と、
     前記ストレージ装置に接続された管理計算機と、を有する計算機システムであって、
     前記ストレージ装置は、
     前記記憶媒体から論理記憶領域を生成し、前記論理記憶領域に論理デバイスを割り当て、当該論理デバイスに割り当てた論理ユニットを仮想記憶領域として前記ホスト計算機に提供する制御部を有し、
     前記制御部は、
     第1の論理デバイスを前記論理記憶領域に割り当て、前記第1の論理デバイスに対応付けた第1の論理ユニットを第1の仮想記憶領域として前記ホスト計算機に提供し、
     前記第1の仮想記憶領域の複製を第2の仮想記憶領域として生成し、前記第2の仮想記憶領域の複製を第3の仮想記憶領域として生成する際に、前記第2の仮想記憶領域を読み出し専用として第2の論理ユニットを割り当てて、前記ホスト計算機から当該第2の論理ユニットに対するアクセス要求を前記第1の仮想記憶領域に転送するよう論理ユニット管理情報に設定し、前記第1の論理デバイスの複製を第3の論理デバイスとして前記論理記憶領域に生成し、当該第3の論理デバイスに対応付けた第3の論理ユニットを第3の仮想記憶領域として前記ホスト計算機に提供することを特徴とする計算機システム。
  9.  請求項8に記載の計算機システムであって、
     前記制御部は、
     前記第1の仮想記憶領域と第2の仮想記憶領域を読み出し専用としてボリューム管理情報に設定し、前記ホスト計算機から前記第2の仮想記憶領域に対する前記アクセス要求が読み出し要求の場合には、前記第2の論理ユニットの論理ユニット設定情報に基づいて当該読み出し要求を前記第1の仮想記憶領域に転送し、前記ホスト計算機から前記第2の仮想記憶領域に対する前記アクセス要求が書き込み要求の場合には、当該アクセス要求を拒絶することを特徴とする計算機システム。
  10.  請求項8に記載の計算機システムであって、
     前記制御部は、
     前記管理計算機から前記第1の仮想記憶領域のスナップショットを第2の仮想記憶領域として生成する指令を受け付けた時に、前記第2の論理ユニットを生成して前記論理ユニット管理情報に設定することを特徴とする計算機システム。
  11.  請求項8に記載の計算機システムであって、
     前記制御部は、
     代表論理ボリュームから補助論理ユニットにアクセスするコングロマリットLU構造を採用し、前記代表論理ボリュームを前記第1の論理ユニットに対応する第4の仮想記憶領域としてボリューム管理情報に設定し、前記第2の論理ユニットに代わって、前記補助論理ユニットとして仮想SLUを前記第2の仮想記憶領域に対応付けてボリューム管理情報に設定することを特徴とする計算機システム。
  12.  請求項11に記載の計算機システムであって、
     前記制御部は、
     前記代表論理ボリュームが第4の仮想記憶領域で、前記仮想SLUが前記第4の仮想記憶領域の配下で、かつ、当該仮想SLUの変換先が前記第1の仮想記憶領域であることをバインド管理情報に設定したことを特徴とする計算機システム。
  13.  請求項12に記載の計算機システムであって、
     前記制御部は、
     前記第1の仮想記憶領域と前記第2の仮想記憶領域とを読み出し専用として前記ボリューム管理情報に設定し、前記ホスト計算機からの前記第2の仮想記憶領域に対するアクセス要求が読み出し要求の場合には、前記第2の論理ユニットに対応する仮想SLUのバインド管理情報に基づいて前記読み出し要求を前記第1の仮想記憶領域に転送し、前記ホスト計算機からの前記第2の仮想記憶領域に対する前記アクセス要求が書き込み要求の場合には、当該アクセス要求を拒絶することを特徴とする計算機システム。
  14.  請求項12に記載の計算機システムであって、
     前記制御部は、
     前記管理計算機から前記第1の仮想記憶領域のスナップショットを第2の仮想記憶領域として生成する指令を受け付けた時に、前記仮想SLUを生成して前記バインド管理情報に設定することを特徴とする計算機システム。
PCT/JP2016/070541 2016-07-12 2016-07-12 ストレージ装置及び計算機システム WO2018011881A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/070541 WO2018011881A1 (ja) 2016-07-12 2016-07-12 ストレージ装置及び計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/070541 WO2018011881A1 (ja) 2016-07-12 2016-07-12 ストレージ装置及び計算機システム

Publications (1)

Publication Number Publication Date
WO2018011881A1 true WO2018011881A1 (ja) 2018-01-18

Family

ID=60951673

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/070541 WO2018011881A1 (ja) 2016-07-12 2016-07-12 ストレージ装置及び計算機システム

Country Status (1)

Country Link
WO (1) WO2018011881A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230655A (ja) * 2008-03-25 2009-10-08 Nec Corp 仮想マシンのデプロイ高速化システム、その方法及びそのプログラム
JP2013542486A (ja) * 2010-09-10 2013-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのオンデマンド型イメージ・ストリーミング
JP2013242779A (ja) * 2012-05-22 2013-12-05 Hitachi Information & Telecommunication Engineering Ltd Os切り替えシステム及びos切り替え方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230655A (ja) * 2008-03-25 2009-10-08 Nec Corp 仮想マシンのデプロイ高速化システム、その方法及びそのプログラム
JP2013542486A (ja) * 2010-09-10 2013-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのオンデマンド型イメージ・ストリーミング
JP2013242779A (ja) * 2012-05-22 2013-12-05 Hitachi Information & Telecommunication Engineering Ltd Os切り替えシステム及びos切り替え方法

Similar Documents

Publication Publication Date Title
US9652265B1 (en) Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US11734137B2 (en) System, and control method and program for input/output requests for storage systems
US8402239B2 (en) Volume management for network-type storage devices
JP5512833B2 (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
US9329792B2 (en) Storage thin provisioning and space reclamation
JP7012010B2 (ja) 情報処理システム、及び、情報処理システムの制御方法
US8892833B2 (en) Systems, methods, and computer program products providing snapshot data replication in a distributed analytic computing system
JP6055924B2 (ja) ストレージシステム及びストレージシステムの制御方法
US9875059B2 (en) Storage system
WO2015198390A1 (ja) ストレージシステム
US8819351B2 (en) Management of host passthrough and session commands using resource groups
WO2018011882A1 (ja) 計算機システム及びストレージ装置の制御方法
JP2016503522A (ja) ストレージシステム、ストレージシステムの制御方法及び管理システム
JP5355603B2 (ja) ディスクアレイ装置及び論理ボリュームアクセス方法
WO2018011881A1 (ja) ストレージ装置及び計算機システム
WO2017085792A1 (ja) ストレージシステム、及びストレージシステムの制御方法
US10296419B1 (en) Accessing a virtual device using a kernel
WO2016103416A1 (ja) ストレージシステム、ストレージ装置およびアクセス制御方法
Dufrasne et al. IBM DS8880 Architecture and Implementation (Release 8.51)
JP6606235B1 (ja) ストレージシステム
WO2019003416A1 (ja) ストレージシステム及び記憶制御方法
WO2014118870A1 (ja) 計算機および計算機の制御方法
JP2015111434A (ja) 計算機システム及びその制御方法
Bruni et al. DB2 9 for z/OS and Storage Management
JP6013420B2 (ja) ストレージシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16908785

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16908785

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP