WO2012117534A1 - 計算機システムおよびその制御方法 - Google Patents

計算機システムおよびその制御方法 Download PDF

Info

Publication number
WO2012117534A1
WO2012117534A1 PCT/JP2011/054727 JP2011054727W WO2012117534A1 WO 2012117534 A1 WO2012117534 A1 WO 2012117534A1 JP 2011054727 W JP2011054727 W JP 2011054727W WO 2012117534 A1 WO2012117534 A1 WO 2012117534A1
Authority
WO
WIPO (PCT)
Prior art keywords
volume
virtual
computer system
storage device
pool
Prior art date
Application number
PCT/JP2011/054727
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 JP2013502103A priority Critical patent/JP5416860B2/ja
Priority to PCT/JP2011/054727 priority patent/WO2012117534A1/ja
Priority to US13/131,357 priority patent/US8745354B2/en
Publication of WO2012117534A1 publication Critical patent/WO2012117534A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • the present invention relates to a storage system, and more particularly to capacity management of a storage volume pool.
  • Thin provisioning is a technique for assigning a virtual volume to a host computer.
  • a virtual volume is a volume to which a data storage area is allocated from a pooled physical disk only when data is written from the host computer to the virtual volume.
  • VMs virtual machines
  • a hypervisor which is a server virtualization management program, manages a plurality of volumes at a time and provides the administrator with a single data storage area.
  • the hypervisor considers the volume pool resource usage (capacity used, I / O volume, etc.) Without creating an image file that is a VM entity in a virtual volume with a large free space. As a result, there is a possibility that a deviation in resource usage between the volume pools occurs or is promoted.
  • the present application includes a plurality of means for solving the above-described problems.
  • a computer system comprising one or more storage devices and one or more host computers connected to the storage devices.
  • the host computer includes a first interface connected to the storage device, a first processor connected to the first interface, and a first storage device connected to the first processor,
  • the first processor controls one or more virtual machines each executing one or more applications
  • the storage device includes a controller connected to the host computer and one or more connected to the controller.
  • a plurality of virtual volumes, and a plurality of pools each including a real storage area of the physical storage device.
  • the virtual volume is received as a write destination volume from the host computer, the real storage area included in the pool corresponding to the virtual volume of the write destination is received.
  • the data is allocated to the write destination virtual volume and the data is stored in the allocated real storage area, and the computer system uses the volume as the write destination by the host computer based on the information held by the storage device.
  • the priority order is determined, and the determined priority order
  • FIG. 2 is a block diagram showing an internal configuration of the storage apparatus according to the first embodiment of the present invention. It is a block diagram which shows the outline
  • FIG. 5 is a sequence diagram showing processing from when the management software according to the first embodiment of the present invention acquires configuration information of a hypervisor and each storage device until an additional module holds a write destination candidate volume management table.
  • FIG. 6 is a sequence diagram illustrating processing from when an administrator performs an operation involving file creation on a hypervisor until an additional module writes a file to a specified volume of each storage device in the first embodiment of the present invention.
  • FIG. 10 is a sequence diagram illustrating a process from when the management software according to the second embodiment of the present invention acquires configuration information of a hypervisor and each storage device until the management software holds a write destination candidate volume management table.
  • FIG. 10 is a sequence diagram showing processing from when an administrator performs a file creation operation on management software until the management software writes a file to a specified volume of each storage device through an interface in the second embodiment of the present invention.
  • FIG. 1 is a block diagram showing an overall outline of an IT system according to the first embodiment of the present invention.
  • This system includes a host computer 100, a management server 200, and one or more storage apparatuses 400, which are connected to each other via a LAN 301.
  • the storage apparatus 400 and the host computer 100 are connected to each other via a SAN (Storage Area Network) 300.
  • the system may include a plurality of host computers. In this case, in addition to the management LAN 301, a plurality of host computers may be connected to each other via a data transfer LAN.
  • FIG. 2A is a block diagram illustrating an internal configuration of the host computer 100 according to the first embodiment of this invention.
  • the host computer 100 includes one or more CPUs 110, one or more memories 111, one or more SAN adapters 112, one or more LAN adapters 113, and one or more storage devices 114, which are internal to each other. They are connected by a bus 115.
  • the host computer 100 is connected to the storage apparatus 400 via the SAN adapter 112.
  • the host computer 100 is connected to the management server 200 via the LAN adapter 113.
  • the host computer 100 does not necessarily include the storage device 114. When the host computer 100 does not include the storage device 114, the host computer 100 uses a volume in the storage apparatus 400 as a software storage area.
  • FIG. 2B is a block diagram illustrating an internal configuration of the management server 200 according to the first embodiment of this invention.
  • the internal configuration of the management server 200 is the same as that of the host computer 100, but does not necessarily include a SAN adapter.
  • the management server 200 shown in FIG. 2B includes one or more CPUs 210, one or more memories 211, one or more LAN adapters 212, and one or more storage devices 213, which are connected to each other via an internal bus 214. Has been.
  • the management server 200 is connected to the storage apparatus 400 and the host computer 100 via the LAN adapter 212.
  • FIG. 3 is a block diagram illustrating an internal configuration of the storage apparatus 400 according to the first embodiment of this invention.
  • the storage apparatus 400 includes one or more controllers 410 and one or more physical disks 411.
  • the controller 410 includes one or more CPUs 412, one or more memories 413, one or more NVRAMs (Non Volatile Random Access Memory) 414, one or more cache memories 415, one or more back-end interfaces 416 and 417, One or more LAN adapters 418 and one or more SAN adapters 419 are connected to each other via an internal bus 420.
  • the controller 410 is connected to the physical disk 411 via the back-end interfaces 416 and 417. Further, the storage apparatus 400 is connected to the management server 200 via the LAN adapter 418. The storage apparatus 400 is connected to the host computer 100 via a SAN adapter 419.
  • FIG. 4 is a block diagram showing an outline of the software configuration of the IT system in the first embodiment of the present invention.
  • one or more virtual machines 500, one or more hypervisors 501, and an additional module 502 operate on the host computer 100.
  • the additional module is a program module added to the hypervisor 501 in the present embodiment.
  • These software that is, programs corresponding to the virtual machine 500, the hypervisor 501, and the additional module 502 are stored in the storage device 114 or the storage apparatus 400, loaded into the memory 111, and executed using the CPU 110.
  • the virtual machine 500, the hypervisor 501, or the additional module 502 may be described as the subject.
  • the above-described program is executed by the processor (CPU 110), so that a predetermined process is performed in the memory 111.
  • the communication port for example, a communication control device such as the SAN adapter 112 or the LAN adapter 113
  • the subject in the description may be replaced with a processor.
  • the processing executed by the virtual machine 500, the hypervisor 501, or the additional module 502 can be described as processing executed by the CPU 110 according to the above program.
  • information held by the virtual machine 500, the hypervisor 501, or the additional module 502 is actually held in the memory 111 or the storage device 114.
  • the processing disclosed with the processor as the subject includes a computer or an information processing apparatus (the host computer 100 in the case of the virtual machine 500, the hypervisor 501, and the additional module 502 described above) including the processor, or includes it. It may be described as a process executed by the computer system. Further, part or all of the program may be realized by dedicated hardware. Various programs may be installed in each computer or the like by a program distribution server or a non-transitory storage medium that can be read by the computer. The same applies to the management server 200 and the storage apparatus 400 described below.
  • Management software 600 operates on the management server 200.
  • the management software 600 is stored in the storage device 213, loaded into the memory 211, and executed using the CPU 210.
  • the processing executed by the management software 600 is described as processing executed by the CPU 210 according to the management software 600, processing executed by the management server 200, or processing executed by the computer system. You can also In the following description, information held by the management software 600 is actually held in the memory 211 or the storage device 213.
  • the management server 200 further has an input / output device (not shown). Examples of input / output devices include a display, a keyboard, and a pointing device, but other devices may be used.
  • the management server 200 has a serial interface or an Ethernet interface as an input / output device, and a display computer (not shown) having a display, a keyboard, or a pointing device is connected to the interface, and display information is transmitted to the display computer.
  • the display computer may display or accept the input, thereby replacing the input and display by the input / output device.
  • a set of one or more computers that manage the computer system and display the display information of the present invention may be referred to as a management system.
  • the management server 200 displays the display information
  • the management server 200 is a management system.
  • a combination of the management server 200 and a display computer (not shown) is also a management system.
  • a plurality of computers may realize processing equivalent to that of the management server 200.
  • the plurality of computers in addition, when the display computer performs display) (Including the display computer) is the management system.
  • volume pools 700 there are one or more volume pools 700 on the storage device 400, and one or more virtual volumes 701 (described later) created from these.
  • the virtual volume 701 is assigned to the host computer 100 via the SAN 300. Note that not only the virtual volume 701 but also logical volumes described later may be mixed on the storage apparatus 400. Further, the hypervisor 501 may straddle a plurality of host computers.
  • the hypervisor 501 provides an environment for executing a plurality of virtual machines.
  • the hypervisor 501 recognizes and manages volumes (that is, virtual volumes 701 and logical volumes 702 (see FIG. 5)). Further, the hypervisor 501 manages in which volume the image file 503 of the virtual machine 500 is stored, and executes a writing process to the image file 503 and the like. However, when a new image file is created, the additional module 502 that captures the new file creation process of the hypervisor 501 determines the image file storage destination volume.
  • FIG. 19 is an explanatory diagram illustrating an example of the host volume management table 2100 held by the hypervisor 501 according to the first embodiment of this invention.
  • the information held in the computer system will be described using the expression “table”, but the information is expressed in a data structure other than the table, for example, a list, a database (DB), or a queue. May be.
  • the “host volume management table” is sometimes called “host volume management information”.
  • expressions such as “identification information”, “identifier”, “name”, “name”, or “ID” may be used, but these can be replaced with each other. The same applies to tables other than the host volume management table 2100 described below.
  • the host volume management table 2100 includes a host volume ID column 2101, a storage ID column 2102, a storage volume ID column 2103, and an empty capacity column 2104.
  • a host volume ID column 2101 an identifier of a volume (virtual volume or logical volume) recognized and given by the hypervisor 501 is registered.
  • Registered in the storage ID column 2102 is an identifier of a storage apparatus in which a storage volume (that is, a volume recognized by the storage apparatus 400) corresponding to the host volume (that is, a volume recognized by the host computer 100) exists.
  • the storage volume ID column 2103 the identifier of the storage volume corresponding to the host volume is registered.
  • the free capacity column 2104 the free capacity of the host volume is registered.
  • the host volume management table 2100 may further include a column for registering information other than the above, for example, information indicating the I / O amount for each host volume.
  • the host computer 100 may periodically measure the amount of I / O to each host volume and register the result in the host volume management table 2100.
  • the storage ID and the storage volume ID are information that is assigned and held by the storage apparatus 400, but the hypervisor 501 can acquire such information from the storage apparatus 400 by using, for example, SCSI Inquiry.
  • the management software 600 acquires configuration information from the host computer 100 and the storage apparatus 400 and stores it in the management table. In addition, the management software 600 transmits the priority information of the write destination volume to the additional module 502. Details of the management software 600 will be described later.
  • FIG. 5 is a block diagram showing an outline of the software configuration in the storage apparatus 400 according to the first embodiment of this invention.
  • a storage agent 703, a virtual volume manager 704, and a logical volume manager 705 are operating. These are stored in the physical disk 411 or the NVRAM 414, loaded into the memory 413, and executed using the CPU 412.
  • processing executed by the storage agent 703, virtual volume manager 704, or logical volume manager 705 is processing executed by the CPU 412 according to a program, processing executed by the storage device 400, or It can also be described as processing executed by the computer system.
  • information held by the storage agent 703, the virtual volume manager 704, or the logical volume manager 705 is actually held in the memory 111 or the storage device 114.
  • the virtual volume 701 is allocated to the host computer 100, but the logical volume 702 belonging to the volume pool 700 is used for allocation to the virtual volume 701, and is directly (ie, virtual volume). It is not assigned to the host computer 100 (without going through 701).
  • the storage apparatus 400 may include a logical volume 702 that does not belong to the volume pool 700.
  • a logical volume 702 that does not belong to the volume pool 700 cannot be assigned to the virtual volume 701, but can be assigned directly to the host computer 100 without going through the virtual volume 701.
  • a virtual volume 701 and a logical volume can be mixed on the storage apparatus 400, but this can be assigned to the host computer 100 and the virtual volume 701 that can be assigned to the host computer 100.
  • the logical volume manager 705 creates one or more logical volumes 702 from the physical disk 411 and manages the mapping between the logical volume 702 and the physical disk 411.
  • FIG. 6 is a conceptual diagram showing the relationship between the logical volume 702 and the physical disk 411 in the first embodiment of the present invention.
  • the logical volume 702 is composed of four physical disks 800, 801, 802 and 803.
  • the areas in the physical disk labeled 1-1, 1-2, 1-3,... Are areas divided into predetermined sizes and are called stripes.
  • the areas labeled P1, P2,... are areas that store parity information of corresponding stripes, and are called parity stripes.
  • the logical volume manager 705 holds a volume management table in order to manage the mapping relationship between the logical volume 702 and the physical disk 411.
  • FIG. 7 is an explanatory diagram illustrating an example of a volume management table held by the logical volume manager 705 according to the first embodiment of this invention.
  • the volume management table includes a logical volume ID column 900, a disk column 901, a RAID level column 902, and a stripe size column 903.
  • a logical volume ID column 900 an identifier assigned to each logical volume by the logical volume manager 705 is registered.
  • the disk column 901 identifiers of physical disks that constitute a logical volume are registered.
  • the RAID level column 902 a RAID (Redundant Array of Inexpensive Disks) level used for the configuration of the logical volume is registered.
  • stripe size column 903 the size of the stripe used for the configuration of the logical volume is registered.
  • the virtual volume manager 704 creates one or more virtual volumes 701 from the logical volumes 702 registered in the volume pool 700, and manages the mapping between the virtual volumes 701 and the logical volumes 702.
  • FIG. 8 is a conceptual diagram showing the relationship between the virtual volume 701 and the logical volume 702 in the first embodiment of the present invention.
  • a storage area of a physical disk (hereinafter referred to as a real storage area) is not directly allocated to the virtual volume 701, but a logical volume 702 is configured as shown in FIG. A partial area is assigned.
  • the virtual volume manager 704 uses an unused area in the logical volume 702 (that is, not yet assigned to the virtual volume 701) as a place where the virtual volume 701 has been written. Assign to.
  • the area 1003 of the logical volume 702 is assigned to the area 1000 of the virtual volume 701, and the area 1005 of the logical volume 702 is assigned to the area 1001 of the virtual volume 701.
  • the storage apparatus 400 receives a data write request to the area 1000 from the host computer 100
  • the data is assigned to the area 1003 of the logical volume 702 assigned to the area 1000 (more precisely, to the area 1003).
  • Real storage area in the physical disk 801 As shown in FIG. 7, real storage areas in the physical disk 801 are allocated in advance to all areas in the logical volume 702.
  • the area of the logical volume 702 is not allocated to the remaining area 1002 excluding the areas 1000 and 1001 in the virtual volume 701.
  • the remaining area 1004 of the logical volume 702 excluding the areas 1003 and 1005 has not yet been assigned to the virtual volume 701 (that is, unused).
  • the storage apparatus 400 newly receives a data write request to the area 1002, at least a part of the area 1004 is allocated to at least a part of the area 1002 where data is written, and data is stored in the allocated area. Stored.
  • a partial area of the logical volume 702 is allocated to the virtual volume 701, but the real storage area of the physical disk is directly allocated to the virtual volume. May be. Even when a partial area of the logical volume 702 is allocated as described above, the actual storage area of the physical disk is finally associated with the areas 1000 and 1001 of the virtual volume 701 as a result of the allocation. .
  • the virtual volume manager 704 In order to manage the relationship between the virtual volume 701 and the logical volume 702, the allocation status of the virtual volume 701, and the usage status in the logical volume 702, the virtual volume manager 704 stores the virtual volume management table 1100 and the unused area management table 1200. Hold.
  • FIG. 9 is an explanatory diagram illustrating an example of the virtual volume management table 1100 held by the virtual volume manager 704 according to the first embodiment of this invention.
  • the virtual volume management table 1100 is roughly divided into a virtual volume column indicating a position in the virtual volume and a logical volume column indicating a corresponding area in the logical volume.
  • the virtual volume column includes a volume ID column 1101, a start LBA column 1102, and an end LBA column 1103. Registered in the volume ID column 1101 is an identifier of a volume assigned to the virtual volume.
  • the start LBA column 1102 the start LBA (Logical Block Address) of the area in the virtual volume is registered.
  • the end LBA column 1103 the end LBA of the area in the virtual volume is registered.
  • the logical volume column includes a volume ID column 1104, a start LBA column 1105, and an end LBA column 1106.
  • Registered in the volume ID column 1104 is an identifier of a logical volume having a data storage area allocated to the corresponding virtual volume area.
  • the start LBA column 1105 the start LBA of the area in the logical volume is registered.
  • the end LBA column 1106 the end LBA of the area in the logical volume is registered.
  • volume ID column 1101 For example, “3”, “0x00000000”, and “0x0001af0f” are registered in the volume ID column 1101, the start LBA column 1102, and the end LBA column 1103 in the first row of the virtual volume management table 1100 in FIG.
  • the start LBA column 1105, and the end LBA column 1106, “0”, “0x00000000”, and “0x0001af0f” are registered, respectively.
  • the LBA “0x00000000” to “0x0001af0f” of the logical volume 702 identified by the volume ID “0” is stored in the area from the LBA “0x00000000” to “0x0001af0f” of the virtual volume 701 identified by the volume ID “3”.
  • the area up to is allocated. Since the real storage area of the physical disk 411 is allocated in advance to the area in the logical volume (see FIGS. 6 and 7), the area is eventually allocated to the area in the virtual volume 701 based on the virtual volume management table 1100. The actual storage area of the physical disk 411 can be specified.
  • FIG. 10 is an explanatory diagram illustrating an example of the unused area management table 1200 held by the virtual volume manager 704 according to the first embodiment of this invention.
  • the unused area management table 1200 includes a logical volume ID column 1201, a start LBA column 1202, and an end LBA column 1203.
  • the identifier of the logical volume 702 registered in the volume pool 700 for allocating a data storage area to the virtual volume 701 is registered.
  • the start LBA column 1202 and the end LBA column 1203 the start LBA column and the end LBA column of the unused area 1004 in the logical volume 702 are registered.
  • the storage agent 703 manages the logical volume 702 and the virtual volume 701.
  • FIG. 20 is an explanatory diagram illustrating an example of the storage volume management table 2200 held by the storage agent 703 according to the first embodiment of this invention.
  • the storage volume management table 2200 includes a storage volume ID column 2201, a pool ID column 2202, and a pool free capacity column 2203.
  • an identifier of a storage volume that is, a virtual volume 701 or a logical volume 702 is registered.
  • Registered in the pool ID column 2202 is an identifier of a volume pool corresponding to a volume identified by the identifier registered in the storage volume ID column 2201 (hereinafter referred to as the volume in the description of FIG. 20).
  • the pool free capacity column 2203 the free capacity of the volume pool corresponding to the volume is registered.
  • the free capacity of the volume pool is the capacity of an area of the volume pool 700 that has not yet been allocated to the virtual volume 701.
  • the volume pool 700 is not associated with the volume. Therefore, a blank is registered in the pool ID column 2202, and the actual volume of the volume is stored in the pool free capacity column 2203. Regardless of the capacity and the free capacity, the maximum value that can be registered in the pool free capacity column 2203 is registered. The reason why such a value is registered will be described later (see FIG. 15).
  • information regarding the logical volume 702 may be registered in the storage volume management table 2200 in a format other than the above.
  • a column indicating whether the volume is a logical volume 702 or a virtual volume 701 is registered in the storage volume management table 2200, and the pool ID column 2202 and pool free capacity when the volume is the logical volume 702 are registered.
  • the column 2203 may be blank.
  • the storage volume management table 2200 may further include a column other than the above.
  • the storage volume management table 2200 may further include a column for registering an I / O amount for each storage volume or an I / O amount for each volume pool.
  • the storage apparatus 400 may periodically measure the amount of I / O to each storage volume or volume pool, and register the result in the storage volume management table 2200.
  • FIG. 11 is an explanatory diagram showing an example of the host / storage volume management table 1600 held by the management software 600 according to the first embodiment of this invention.
  • the host storage volume management table 1600 is roughly divided into a host side information column and a storage side information column.
  • the host side information column includes a host volume ID column 1601 and an empty capacity column 1602.
  • a volume identifier recognized by the hypervisor 501 is registered in the host volume ID column 1601.
  • a volume identified by an identifier registered in the host volume ID column 1601 is referred to as the volume.
  • the volume is either a virtual volume 701 or a logical volume 702 assigned to the host computer.
  • the free capacity column 1602 the free capacity of the volume is registered.
  • the storage side information column includes a storage ID column 1603, a storage volume ID column 1604, a pool ID column 1605, and a pool free capacity column 1606.
  • the storage ID column 1603 and the storage volume ID column 1604 include storage device and storage volume identifiers corresponding to the host volume ID column 1601 (in other words, the identifier of the storage device 400 that stores the volume, and the storage device 400 Are respectively assigned to the volume).
  • the pool ID column 1605 the identifier of the volume pool corresponding to the volume is registered.
  • the pool free capacity column 1606 the free capacity of the volume pool 700 corresponding to the volume is registered.
  • the identifier of the host volume ID column 1601 and the identifier of the storage volume ID column 1604 are generally different.
  • the pool ID column 1605 is blank as in the case of FIG. 20, and the value of the pool free capacity column 1606 is the maximum value that can be registered.
  • the host side information column and the storage side information column may include columns other than the above.
  • the host volume management table 2100 includes a column for registering the I / O amount for each host volume
  • the host side information column of the host / storage volume management table 1600 may also include the same column.
  • the storage volume management table 2200 includes a column for registering the I / O amount for each storage volume or each volume pool
  • the storage side information column of the host / storage volume management table 1600 may also include the same column.
  • the host / storage volume management table 1600 can be created from the “host volume management table 2100” and “table in which the storage volume management table 2200 is assigned the identifier (storage ID) of each storage device 400”. Specifically, “the row of the host volume management table 2100” and “the row of the table in which the identifier (storage ID) of each storage device 400 is added to the storage volume management table 2200” are compared, and the storage ID and storage volume ID are compared. By joining those that match, each row of the host storage volume management table 1600 is created. However, volumes that are not registered in the host volume management table 2100 (that is, volumes that are not recognized by the host computer 100) are not registered in the host / storage volume management table 1600.
  • FIG. 12 is an explanatory diagram illustrating an example of the write destination candidate volume management table 1700 held by the additional module 502 according to the first embodiment of this invention.
  • the write destination candidate volume management table 1700 includes a priority column 1701 and a host volume ID column 1702.
  • the priority order column 1701 the order for searching for the write destination volume during the file creation process of the additional module 502 is registered.
  • Registered in the host volume ID column 1702 is a volume identifier recognized by the hypervisor 501.
  • the order registered in the write destination candidate volume management table 1700 is an index indicating the desirability of each volume as the storage destination of the image file 503. This means that a volume assigned a higher rank is preferable as a storage destination of the image file 503.
  • the storage destination is not necessarily selected according to the priority order, and the priority order may be referred to only for issuing a warning.
  • FIG. 13 shows the process from when the management software 600 according to the first embodiment of the present invention acquires the configuration information of the hypervisor 501 and each storage device 400 until the additional module 502 holds the write destination candidate volume management table 1700. It is the sequence diagram which showed the process.
  • This process is periodically executed to update the write destination candidate volume management table 1700.
  • the processing of FIG. 13 may be executed not only periodically but also when triggered by a predetermined event, such as when a user gives an instruction or when information is pushed from the hypervisor 501 or the storage device 401. It may be executed at arbitrary timing.
  • the management software 600 requests the hypervisor 501 to transmit host side configuration information (step 1300).
  • the management software 600 receives the host side configuration information from the hypervisor 501 (step 1301).
  • the configuration information to be acquired is an information item included in the host volume management table 2100. Note that information other than the above may be included in the acquired configuration information. Further, the host-side configuration information may be transmitted from the hypervisor 501 without a request from the management software 600.
  • the management software 600 requests each storage apparatus 400 to transmit storage side configuration information (step 1302).
  • the management software 600 receives storage side configuration information from each storage device 400 (step 1303).
  • the configuration information to be acquired is an identifier (storage ID) of each storage apparatus 400 and information items included in the storage volume management table 2200. Note that information other than the above may be included in the acquired configuration information. Further, the storage-side configuration information may be transmitted from each storage device 400 without a request from the management software 600.
  • the management software 600 creates a host / storage volume management table 1600 based on the information acquired in Steps 1301 and 1303 (Step 1304).
  • the creation method is as described with reference to FIG.
  • the management software 600 determines the priority order of the write destination candidate volume by the process described later (step 1305).
  • the management software 600 transmits the priority order information of the write destination candidate volume to the additional module 502 (step 1306).
  • the additional module 502 holds the write destination candidate volume management table 1700 based on the priority order information of the write destination candidate volume received from the management software 600 (step 1307).
  • FIG. 14 shows processing until the administrator 1400 performs an operation involving file creation on the hypervisor 501 and the additional module 502 writes the file to the specified volume of each storage apparatus 400 in the first embodiment of the present invention. It is the sequence diagram shown.
  • the operation accompanied by file creation refers to an operation including an instruction for creating a new image file 503 such as “new creation of virtual machine 500” or “adding a new disk image to virtual machine 500”. Alternatively, another operation including an instruction to newly create the image file 503 may be used. Further, before the process of FIG. 14, it is necessary to execute the process shown in FIG. 13 to create the write destination candidate volume management table 1700.
  • the administrator 1400 performs an operation involving file creation on the hypervisor 501 (step 1401).
  • the hypervisor 501 executes a file creation process in accordance with the operation in step 1401 (step 1402).
  • the additional module 502 captures the file creation process of the hypervisor 501 (step 1403).
  • a capture implementation method there is a method in which the additional module 502 receives a notification of occurrence of a file creation processing event from the hypervisor 501.
  • the additional module 502 determines a write destination volume using the write destination candidate volume management table 1700 (step 1404). Basically, the additional module 502 selects the volume with the highest priority as the write destination volume, and when there is a write failure due to an I / O error or insufficient capacity in the next step 1405, the additional module 502 sequentially Select a lower-order volume.
  • the additional module 502 performs a write process on the volume determined in step 1404 (step 1405).
  • the additional module 502 may write to the volume designated by the hypervisor 501 (regardless of the priority order) instead of the volume determined in step 1404.
  • the hypervisor 501 or the management software 600 issues a warning to the administrator 1400. indicate.
  • Whether the priority order is low may be determined based on a predetermined threshold. For example, a priority order of the top 10 percent or less, a priority order of 10 or less, or a priority order lower than the order defined by the administrator 1400 may be determined as a low priority order.
  • FIG. 15 is a flowchart showing an example of priority order determination processing (step 1305) of the write destination candidate volume management table 1700, which is executed in the first embodiment of the present invention.
  • the management software 600 sorts the host storage volume management table 1600 in descending order of the pool free capacity column 1606 (step 1501). This is due to the following reason. That is, after the image file 503 is stored, data is written to the image file 503. As a result, when the capacity of the volume pool 700 allocated to the storage destination virtual volume 701 is insufficient, this shortage is resolved. Therefore, it is necessary to copy data between the volume pools 700, which causes a decrease in I / O performance. This is because it is desirable to store the image file 503 in the virtual volume 701 assigned to the volume pool 700 having a large free capacity in order to reduce the number of times of such data copying.
  • the host storage volume management table 1600 may be sorted in ascending order of the I / O amount. This is because it is desirable to store the image file 503 in the virtual volume 701 assigned to the volume pool 700 with a small amount of I / O in order to prevent performance degradation due to I / O concentration on a specific physical disk.
  • n is a variable used for the iterative processing from step 1503 to step 1507, and represents the number of iterations.
  • i is a variable used in the repetitive processing from step 1503 to step 1507, and indicates what line of the host / storage volume management table 1600 is to be processed.
  • step 1507 the management software 600 executes the repeated processing from step 1503 to step 1507 (step 1503). In other cases, since processing for all the rows has been completed, the process proceeds to step 1508.
  • step 1503 If it is determined in step 1503 that the variable n is smaller than the number of rows registered in the host / storage volume management table 1600, the management software 600 determines whether the i-th row of the host / storage volume management table 1600 satisfies a predetermined condition. It is determined whether or not (step 1504).
  • the predetermined condition is a condition of a volume that is not desirable as a storage destination of the image file 503.
  • the condition of step 1504 is, for example, “the free capacity of the volume registered in the i-th row is less than the threshold” or “the I / O amount for the volume pool corresponding to the volume registered in the i-th row” May be any of the above or the like, or a combination thereof.
  • the management software 600 executes Step 1505 when the above condition is satisfied, and executes Step 1506 when it is not satisfied.
  • step 1505 the management software 600 moves the i-th row of the host / storage volume management table 1600 to the last row. After this processing, the i-th row is shifted to the i-th row so that it is not necessary to increment i in step 1506, and it is only necessary to move to step 1507.
  • step 1506 the management software 600 increments i in order to move the processing target to the next line of the host / storage volume management table 1600.
  • step 1505 or 1506 the management software 600 increments n for repetitive processing (step 1507), and proceeds to step 1503.
  • step 1503 If it is determined in step 1503 that the variable n is equal to or greater than the number of rows in the host storage volume management table 1600, the management software 600 ends the priority order determination process (step 1508).
  • the rows of the host storage volume management table 1600 are sorted in descending order of priority. That is, the priority of the volume registered in the first line is the highest, and the priority of the volume registered in the last line is the lowest.
  • the host volume identified by the value “1” in the host volume ID column 1601 is “host volume 1”, and the storage identified by the value “storage 1” in the storage ID column 1603 is used.
  • the device 400 is “storage device 1”, the storage volume identified by the value “Vol 1” in the storage volume ID column 1604 is “storage volume 1”, and the volume pool 700 is identified by the value “pool 1” in the pool ID column 1605 Is described as “volume pool 1”. The same applies to other ID values.
  • step 1501 the rows of the host storage volume management table 1600 are sorted in the order of the values in the pool free capacity column 1606. Since the values of the pool free capacity columns 1606 of the host volumes 1, 2, 3, 4, and 5 are 300 GB, 175 GB, 1024 GB, 105 GB, and MAX (that is, the maximum values that can be registered), The rows are arranged in the order of 3, 1, 2, 4.
  • step 1504 the determination in step 1504 is performed for each rearranged row. For example, if “20 GB” is used as the threshold for the free capacity of the volume in step 1504, the host volume 1 row is the host because the free capacity of the host volume 1 is “10 GB”, which is smaller than the threshold. Move to the end of the storage volume management table 1600 (step 1505). As a result, when the processing of FIG. 15 ends, the rows of the host / storage volume management table 1600 are arranged in the order of the host volumes 5, 3, 2, 4, 1.
  • the priorities of the host volumes 5, 3, 2, 4, 1 are 1, 2, 3, 4, 5 respectively, and those values are registered in the write destination candidate volume management table 1700. That is, when the host volume 5 is selected as the writing destination of the image file 503 and the writing fails, the next highest host volume 3 is selected. Is done.
  • the virtual volume corresponding to the volume pool 700 having a larger free capacity is preferentially selected as the storage destination of the image file 503.
  • the maximum value that can be registered in the item is registered as the pool free capacity column 1606 of the logical volume 702 that can be allocated to the host computer 100.
  • the host volume 5 (that is, the storage volume 3 of the storage apparatus 2) corresponds to such a logical volume 702.
  • the priority of the logical volume 702 is always higher than that of the virtual volume 701 as a result of the sorting in step 1501. . This is because, generally, I / O to the logical volume 702 is processed at a higher speed than I / O to the virtual volume 701.
  • the logical volume 702 is preferentially selected to select the virtual machine. 500 and the storage device 401 are intended to be secured.
  • I / O the virtual volume 701
  • steps 1504 to 1505 since the priority of a volume that is not desirable as a storage destination of the image file 503 (for example, a volume with a small free capacity or a volume with I / O congestion) is lowered, such a volume is stored in the image file 503. It is difficult to be selected as the storage location of 503.
  • a volume that is not desirable as a storage destination of the image file 503 for example, a volume with a small free capacity or a volume with I / O congestion
  • FIG. 1 A second embodiment according to the present invention will be described based on FIGS. 1 to 12, 15 to 17, and 19 to 21.
  • FIG. The difference between the present embodiment and the first embodiment is that, from the viewpoint of the administrator 1400, the software module that the administrator 1400 executes an operation involving file creation is different.
  • the administrator 1400 executes an operation involving file creation on the hypervisor 501.
  • the administrator 1400 executes an operation involving file creation on the management software 600.
  • the operations of the management software 600, the hypervisor 501, and the additional module 502 of the present embodiment are different from those of the first embodiment.
  • the system configuration in this embodiment is the same as that described with reference to FIGS. 1 to 5 in the first embodiment.
  • the roles of the software modules are the same as those in the first embodiment except for the management software 600, the hypervisor 501, and the additional module 502.
  • the conceptual diagram and management table of the first embodiment shown in FIGS. 6 to 12 are also applied to this embodiment.
  • the management software 600 of this embodiment executes the priority determination process of the write destination candidate volume management table 1700 shown in FIG. 15 as in the first embodiment. Differences of the roles of the management software 600, the hypervisor 501, and the additional module 502 of the present embodiment from the first embodiment will be described later.
  • FIG. 16 shows the processing from when the management software 600 according to the second embodiment of the present invention acquires the configuration information of the hypervisor 501 and each storage device 400 until the management software 600 holds the write destination candidate volume management table 1700. It is the sequence diagram shown.
  • Step 1800 to Step 1805 are the same as Step 1300 to Step 1305 of the first embodiment, and thus description thereof is omitted.
  • step 1806 the management software 600 holds the write destination candidate volume management table 1700. This process is repeatedly executed as necessary to update the write destination candidate volume management table 1700.
  • the additional module 502 operates as an interface on the hypervisor 501 and does not execute independent processing.
  • FIG. 17 shows that, in the second embodiment of the present invention, the administrator 1400 performs a file creation operation on the management software 600, and the management software 600 sends a file to the designated volume of each storage device 400 through the interface (addition module 502). It is the sequence figure which showed the processing until it writes.
  • the management software 600 or the like needs to execute the processing shown in FIG. 16 to create the write destination candidate volume management table 1700.
  • the administrator 1400 performs a file creation operation on the management software 600 (step 1900).
  • the file creation operation refers to creation of a new image file 503 such as “new creation of virtual machine 500” or “adding a new disk image to virtual machine 500”. Refers to an accompanying operation.
  • the file creation operation of this embodiment is performed on the management software 600 instead of on the hypervisor 501.
  • the management software 600 executes a file creation process, and holds the image file 503 on the memory 211 or the storage device 213 on the management server 200 (step 1901).
  • the management software 600 uses the write destination candidate volume management table 1700 to determine a write destination volume (step 1902).
  • the management software 600 basically selects the highest-priority volume, and sequentially selects lower-order volumes when a write failure occurs due to an I / O error or insufficient capacity.
  • the management software 600 designates the volume determined in step 1902 and transmits the file to the hypervisor 501 through the additional module 502 that is an interface on the hypervisor 501 (step 1903). Note that the management software 600 may transmit a file without specifying a volume. In this case, the additional process described in step 1904 is performed.
  • the hypervisor 501 writes the file received in step 1903 to the designated volume (step 1904).
  • the additional module 502 is an interface for writing a file to the designated volume when receiving the file to be written and the designation of the volume to which the file is to be written.
  • step 1903 when a file is transmitted without specifying a volume, the hypervisor 501 writes the file to any volume regardless of the priority order.
  • step 1903 an additional process will be described when a file is transmitted without specifying a volume.
  • the management software 600 requests host-side configuration information from the hypervisor 501 and obtains a host volume management table 2106 including an image file sequence 2105 as shown in FIG.
  • FIG. 21 is an explanatory diagram illustrating an example of the host volume management table 2106 held by the hypervisor 501 according to the second embodiment of this invention.
  • the host volume ID column 2101 to the free capacity column 2104 of the host volume management table 2106 are the same as the corresponding columns of the host volume management table 2100 (FIG. 19), the description thereof is omitted.
  • the image file column 2105 of the host volume management table 2106 the file name of the image file 503 stored in the host volume is registered.
  • the management software 600 searches the image file sequence 2105 and identifies the volume in which the file was created in step 1904. When the identified volume is a volume with a low priority in the write destination candidate volume management table 1700, the management software 600 presents a warning to the administrator 1400. Note that the determination of low priority may be performed as in the first embodiment. For example, a priority order of the top 10 percent or less, a priority order of 10 or less, or a priority order lower than the order defined by the administrator 1400 may be determined as a low priority order. The above is the description of the case where the file is transmitted in step 1903 without designating the volume.
  • 3rd Embodiment according to this invention is described based on FIGS. 1-12, FIG. 14, FIG. 15, and FIGS. 18-20.
  • the difference between the present embodiment and the first embodiment is that the processing executed by the management software 600 in the first embodiment is executed by the additional module 502 in the present embodiment. Accordingly, the operation of the additional module 502 of this embodiment is different from that of the first embodiment.
  • the system configuration in this embodiment is the same as that described in the first embodiment with reference to FIGS. 1 to 5 except that the management server 200 and the LAN 301 are not required.
  • the role of each software module is the same as that of the first embodiment except for the additional module 502.
  • the conceptual diagram and management table of the first embodiment shown in FIGS. 6 to 12 are also applied to this embodiment. However, this embodiment does not require the management software 600 on the management server 200.
  • the additional module 502 or the like needs to execute the processing shown in FIG. 18 in advance and the additional module 502 holds the write destination candidate volume management table 1700. There is. Further, the processing shown in FIG. 15 is also executed in the same manner as in the first embodiment. However, when the additional module 502 does not control the writing destination and presents a warning to the administrator 1400 in step 1405, the warning is presented by the hypervisor 501.
  • FIG. 18 is a sequence showing processing until the additional module 502 according to the third embodiment of the present invention acquires the configuration information of the hypervisor 501 and each storage device 400 and holds the write destination candidate volume management table 1700.
  • FIG. 18 is a sequence showing processing until the additional module 502 according to the third embodiment of the present invention acquires the configuration information of the hypervisor 501 and each storage device 400 and holds the write destination candidate volume management table 1700.
  • This process is repeatedly executed as necessary to update the write destination candidate volume management table 1700.
  • the additional module 502 requests the hypervisor 501 to transmit host side configuration information (step 2000).
  • the additional module 502 receives host-side configuration information from the hypervisor 501 (step 2001).
  • the configuration information to be acquired is an information item included in the host volume management table 2100. Note that information other than the above may be included in the acquired configuration information. Further, the hypervisor 501 may transmit the configuration information without a request from the additional module 502.
  • the additional module 502 requests each storage device 400 to transmit storage-side configuration information (step 2002).
  • the additional module 502 receives the storage side configuration information from each storage device 400 (step 2003).
  • the configuration information to be acquired is an identifier (storage ID) of each storage apparatus 400 and information items included in the storage volume management table 2200. Information other than the above may be included in the acquired configuration information.
  • SCSI Inquiry may be used to issue and reply to requests.
  • the additional module 502 issues a SCSI inquiry to request configuration information, and each storage device 400 stores the configuration information in the Vendor-specific area of the inquiry data and returns it.
  • the additional module 502 creates a host / storage volume management table 1600 based on the host volume management table 2100 and the storage volume management table 2200 (step 2004).
  • the creation method is the same as in the first embodiment.
  • the row of the host volume management table 2100 and the row of the storage volume management table 2200 are compared, and the rows in which the storage ID column 2102 and the storage volume ID column 2103 match are combined. As a result, each row of the host storage volume management table 1600 is created.
  • the additional module 502 determines the priority order of the write destination candidate volume by the processing shown in FIG. 15 (step 2005).
  • the additional module 502 holds the write destination candidate volume management table 1700 (step 2006).

Landscapes

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

Abstract

 ボリュームプール間でのリソース使用量の偏り発生を防止することによって、プール間データコピーの回数を減らす。 一つ以上の記憶装置と、前記記憶装置に接続される一つ以上のホスト計算機と、を備える計算機システムであって、前記記憶装置は、一つ以上の物理記憶デバイスを含み、複数の仮想ボリュームと、各々が前記物理記憶デバイスの実記憶領域を含む複数のプールと、を対応付ける情報を保持し、前記ホスト計算機から書き込み先のボリュームとして前記仮想ボリュームが指定されたデータの書き込み要求を受信した場合、書き込み先の前記仮想ボリュームに対応する前記プールに含まれる前記実記憶領域を前記書き込み先の仮想ボリュームに割り当てて当該データを格納し、前記計算機システムは、前記記憶装置が保持する情報に基づいて、前記ホスト計算機による書き込み先としての前記ボリュームの優先順位を決定し、決定した前記優先順位を保持する。

Description

計算機システムおよびその制御方法
 本発明はストレージシステムに関し、特にストレージボリュームプールの容量管理に関する。
 特開2003-15915号公報(特許文献1)に開示されているようなシンプロビジョニングと呼ばれる技術がある。シンプロビジョニングは、仮想ボリュームをホスト計算機に割り当てる技術である。仮想ボリュームは、ホスト計算機から仮想ボリュームへデータの書き込みがあって初めて、プール化された物理ディスクからデータ保存領域が割り当てられるボリュームである。
 一方、一つのホスト計算機上に複数の仮想マシン(VM)を構築するサーバ仮想化技術がある。サーバ仮想化技術において「VMware Virtual Machine File System: Technical Overview and Best Practices」(非特許文献1)に開示されているような技術が利用されている。この技術では、サーバ仮想化の管理プログラムであるハイパーバイザが、複数ボリュームを一括して管理し、管理者に単一のデータ保存領域として提供する。
特開2003-15915号公報
「VMware Virtual Machine File System: Technical Overview and Best Practices」、第6頁から第11頁、[online]、VMware Inc.発行、[平成23年1月14日検索]、インターネット<URL:http://www.vmware.com/pdf/vmfs-best-practices-wp.pdf>
 従来技術において、仮想ボリュームがホスト計算機に割り当てられた場合、ホスト計算機は仮想ボリュームの空容量のみ認識し、仮想ボリュームのデータを実際に格納するボリュームプールの情報を認識しない。
 このため、複数ボリュームプールからなる複数仮想ボリュームをホスト計算機に割り当てた環境で、管理者がVMを作成したとき、ハイパーバイザはボリュームプールのリソース使用量(使用容量、I/O量等)を考慮せずに、空容量の大きい仮想ボリュームにVMの実体であるイメージファイルを作成する。その結果、ボリュームプール間でのリソース使用量の偏りが発生又は助長される可能性がある。
 この偏りを原因として「他のボリュームプールに空容量があるにもかかわらず、特定のボリュームプールの容量が枯渇してしまい、そのプールから切り出した仮想ボリュームへの書き込みができなくなる」、および「I/O性能が低下する」といった課題があった。偏りが発生した場合、解消するためにはボリュームプール間でのデータコピーが必要だが、このためには一時的にストレージのリソース(メモリ、ネットワーク帯域等)をデータコピーのために使用しなくてはならず、I/O性能低下の可能性がある。
 上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
 本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、一つ以上の記憶装置と、前記記憶装置に接続される一つ以上のホスト計算機と、を備える計算機システムであって、前記ホスト計算機は、前記記憶装置に接続される第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1記憶デバイスと、を含み、前記第1プロセッサは、各々が一つ以上のアプリケーションを実行する一つ以上の仮想マシンを制御し、前記記憶装置は、前記ホスト計算機に接続されるコントローラと、前記コントローラに接続される一つ以上の物理記憶デバイスと、を含み、複数の仮想ボリュームと、各々が前記物理記憶デバイスの実記憶領域を含む複数のプールと、を対応付ける情報を保持し、前記ホスト計算機から書き込み先のボリュームとして前記仮想ボリュームが指定されたデータの書き込み要求を受信した場合、書き込み先の前記仮想ボリュームに対応する前記プールに含まれる前記実記憶領域を前記書き込み先の仮想ボリュームに割り当てて、当該データを前記割り当てられた実記憶領域に格納し、前記計算機システムは、前記記憶装置が保持する情報に基づいて、前記ホスト計算機による書き込み先としての前記ボリュームの優先順位を決定し、決定した前記優先順位を保持することを特徴とする。
 本発明の一実施形態によれば、ボリュームプール間でのリソース使用量の偏り発生を防止することによって、ストレージ側でのプール間データコピーの回数を減らすことができる。
本発明の第1の実施形態におけるITシステムの全体概要を示すブロック図である。 本発明の第1の実施形態のホスト計算機の内部構成を示すブロック図である。 本発明の第1の実施形態の管理サーバの内部構成を示すブロック図である。 本発明の第1の実施形態のストレージ装置の内部構成を示すブロック図である。 本発明の第1の実施形態におけるITシステムのソフトウェア構成の概要を示すブロック図である。 本発明の第1の実施形態のストレージ装置内のソフトウェア構成の概要を示すブロック図である。 本発明の第1の実施形態における論理ボリュームと物理ディスクとの関係を示した概念図である。 本発明の第1の実施形態の論理ボリュームマネージャが保持するボリューム管理テーブルの一例を示す説明図である。 本発明の第1の実施形態における仮想ボリュームと論理ボリュームの関係を示した概念図である。 本発明の第1の実施形態の仮想ボリュームマネージャが保持する仮想ボリューム管理テーブルの一例を示す説明図である。 本発明の第1の実施形態の仮想ボリュームマネージャが保持する未使用領域管理テーブルの一例を示す説明図である。 本発明の第1の実施形態の管理ソフトウェアが保持するホスト・ストレージボリューム管理テーブルの一例を示した説明図である。 本発明の第1の実施形態の追加モジュールが保持する書き込み先候補ボリューム管理テーブルの一例を示した説明図である。 本発明の第1の実施形態の管理ソフトウェアが、ハイパーバイザおよび各ストレージ装置の構成情報を取得して、追加モジュールが書き込み先候補ボリューム管理テーブルを保持するまでの処理を示したシーケンス図である。 本発明の第1の実施形態において、管理者がハイパーバイザ上でファイル作成を伴う操作を行い、追加モジュールが各ストレージ装置の指定ボリュームにファイルを書き込むまでの処理を示したシーケンス図である。 本発明の第1の実施形態において実行される、書き込み先候補ボリューム管理テーブルの優先順位決定の処理の一例を示すフローチャートである。 本発明の第2の実施形態の管理ソフトウェアがハイパーバイザおよび各ストレージ装置の構成情報を取得し、管理ソフトウェアが書き込み先候補ボリューム管理テーブルを保持するまでの処理を示したシーケンス図である。 本発明の第2の実施形態において、管理者が管理ソフトウェア上でファイル作成操作を行い、管理ソフトウェアがインターフェースを通して各ストレージ装置の指定ボリュームにファイルを書き込むまでの処理を示したシーケンス図である。 本発明の第3の実施形態の追加モジュールが、ハイパーバイザおよび各ストレージ装置の構成情報を取得し、書き込み先候補ボリューム管理テーブルを保持するまでの処理を示したシーケンス図である。 本発明の第1の実施形態のハイパーバイザが保持するホストボリューム管理テーブルの一例を示す説明図である。 本発明の第1の実施形態のストレージエージェントが保持するストレージボリューム管理テーブルの一例を示した説明図である。 本発明の第2の実施形態のハイパーバイザが保持するホストボリューム管理テーブルの一例を示す説明図である。
 以下、添付図面に基づいて、本発明の実施形態を説明する。
 <第1の実施形態>
 図1から図15、図19、図20に基づいて、本発明に従う第1の実施形態について説明する。
 図1は、本発明の第1の実施形態におけるITシステムの全体概要を示すブロック図である。
 本システムは、ホスト計算機100、管理サーバ200、および一つ以上のストレージ装置400から構成され、それらは互いにLAN301で接続されている。ストレージ装置400とホスト計算機100とは互いにSAN(Storage Area Network)300で接続されている。なお、本システムは複数のホスト計算機を含んでもよく、その場合は管理用のLAN301に加えてデータ転送用のLANで複数のホスト計算機が互いに接続されていてもよい。
 図2Aは、本発明の第1の実施形態のホスト計算機100の内部構成を示すブロック図である。
 ホスト計算機100は、一つ以上のCPU110、一つ以上のメモリ111、一つ以上のSANアダプタ112、一つ以上のLANアダプタ113、および一つ以上のストレージデバイス114で構成され、それらは互いに内部バス115で接続されている。ホスト計算機100はSANアダプタ112を介してストレージ装置400と接続されている。またホスト計算機100はLANアダプタ113を介して管理サーバ200と接続されている。なお、ホスト計算機100はストレージデバイス114を必ずしも備えなくてもよい。ホスト計算機100は、ストレージデバイス114を備えない場合、ストレージ装置400内のボリュームをソフトウェアの記憶領域として用いる。
 図2Bは、本発明の第1の実施形態の管理サーバ200の内部構成を示すブロック図である。
 管理サーバ200の内部構成はホスト計算機100と同様だが、必ずしもSANアダプタを備えていない。図2Bに示す管理サーバ200は、一つ以上のCPU210、一つ以上のメモリ211、一つ以上のLANアダプタ212、および一つ以上のストレージデバイス213で構成され、それらは互いに内部バス214で接続されている。管理サーバ200はLANアダプタ212を介して、ストレージ装置400およびホスト計算機100と接続されている。
 図3は、本発明の第1の実施形態のストレージ装置400の内部構成を示すブロック図である。
 ストレージ装置400は一つ以上のコントローラ410および一つ以上の物理ディスク411で構成される。コントローラ410は、一つ以上のCPU412、一つ以上のメモリ413、一つ以上のNVRAM(Non Volatile Random Access Memory)414、一つ以上のキャッシュメモリ415、一つ以上のバックエンドインターフェース416および417、一つ以上のLANアダプタ418、ならびに一つ以上のSANアダプタ419で構成され、それらは相互に内部バス420で接続されている。
 コントローラ410はバックエンドインターフェース416および417を介して物理ディスク411と接続されている。また、ストレージ装置400はLANアダプタ418を介して管理サーバ200と接続されている。また、ストレージ装置400はSANアダプタ419を介してホスト計算機100と接続されている。
 図4は、本発明の第1の実施形態におけるITシステムのソフトウェア構成の概要を示すブロック図である。
 ホスト計算機100上では一つ以上の仮想マシン500、一つ以上のハイパーバイザ501、および追加モジュール502が動作する。なお、追加モジュールは、本実施形態においてハイパーバイザ501に追加されるプログラムモジュールである。これらのソフトウェア(すなわち仮想マシン500、ハイパーバイザ501および追加モジュール502に対応するプログラム)はストレージデバイス114またはストレージ装置400に格納されており、メモリ111にロードされ、CPU110を用いて実行される。
 以下の説明において仮想マシン500、ハイパーバイザ501または追加モジュール502を主語として説明を行う場合があるが、上記のプログラムは、プロセッサ(CPU110)によって実行されることで、定められた処理を、メモリ111および通信ポート(例えばSANアダプタ112またはLANアダプタ113のような通信制御デバイス)を用いながら行うため、それらの説明における主語をプロセッサに置き換えてもよい。ホスト計算機100の場合、仮想マシン500、ハイパーバイザ501または追加モジュール502が実行する処理を、CPU110が上記のプログラムに従って実行する処理として説明することができる。また、以下の説明において仮想マシン500、ハイパーバイザ501または追加モジュール502が保持する情報は、実際にはメモリ111またはストレージデバイス114に保持される。
 また、プロセッサを主語として開示された処理は、そのプロセッサを含む計算機または情報処理装置(上記の仮想マシン500、ハイパーバイザ501および追加モジュール502の場合は、ホスト計算機100)、または、それを包含する計算機システムが実行する処理として説明してもよい。また、プログラムの一部または全部が専用ハードウェアによって実現されてもよい。また、各種プログラムは、プログラム配布サーバまたは計算機が読み取り可能な非一時的記憶メディアによって各計算機等にインストールされてもよい。以下に説明する管理サーバ200およびストレージ装置400についても同様である。
 管理サーバ200上では管理ソフトウェア600が動作する。管理ソフトウェア600はストレージデバイス213に格納されており、メモリ211にロードされ、CPU210を用いて実行される。なお、ホスト計算機100の場合と同様、以下の説明において管理ソフトウェア600が実行する処理は、CPU210が管理ソフトウェア600に従って実行する処理、管理サーバ200が実行する処理、または計算機システムが実行する処理として説明することもできる。また、以下の説明において管理ソフトウェア600が保持する情報は、実際にはメモリ211またはストレージデバイス213に保持される。
 なお、管理サーバ200はさらに入出力デバイス(図示省略)を有する。入出力デバイスの例としてはディスプレイ、キーボードおよびポインティングデバイスが考えられるが、これ以外のデバイスであってもよい。あるいは、管理サーバ200がシリアルインターフェースまたはイーサネットインターフェースを入出力デバイスとして有し、当該インターフェースにディスプレイ、キーボードまたはポインティングデバイスを有する表示用計算機(図示省略)を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信したりすることによって、表示用計算機による表示または入力の受付を行い、これによって入出力デバイスによる入力および表示を代替してもよい。
 以後、計算機システムを管理し、本発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理サーバ200が表示用情報を表示する場合、管理サーバ200が管理システムである。また、管理サーバ200と表示用計算機(図示省略)との組み合わせも管理システムである。また、管理処理の高速化および高信頼化のために複数の計算機が管理サーバ200と同等の処理を実現してもよく、その場合は当該複数の計算機(さらに表示用計算機が表示を行う場合はその表示用計算機も含む)が管理システムである。
 ストレージ装置400上には一つ以上のボリュームプール700があり、これらから作成された一つ以上の仮想ボリューム701(後述)がある。仮想ボリューム701は、SAN300を介してホスト計算機100に割り当てられている。なお、ストレージ装置400上には仮想ボリューム701だけでなく、後述の論理ボリュームが混在していてもよい。また、ハイパーバイザ501が複数のホスト計算機に跨っていてもよい。
 ハイパーバイザ501は複数の仮想マシンを実行するための環境を提供する。また、ハイパーバイザ501はボリューム(すなわち仮想ボリューム701および論理ボリューム702(図5参照))を認識し、管理する。さらに、ハイパーバイザ501は、仮想マシン500のイメージファイル503がどのボリュームに格納されているかを管理し、イメージファイル503への書き込み処理等を実行する。ただし、イメージファイルの新規作成時は、ハイパーバイザ501の新規ファイル作成処理をキャプチャした追加モジュール502が、イメージファイル格納先ボリュームを決定する。
 図19は、本発明の第1の実施形態のハイパーバイザ501が保持するホストボリューム管理テーブル2100の一例を示す説明図である。
 なお、以下の説明において、計算機システムに保持される情報を、「テーブル」の表現を用いて説明するが、これらの情報はテーブル以外のデータ構造、例えばリスト、データベース(DB)またはキュー等で表現されてもよい。これらの情報がデータ構造に依存しないことを示すために、例えば「ホストボリューム管理テーブル」を「ホストボリューム管理情報」のように呼ぶことがある。また、各情報の内容を説明する際に「識別情報」、「識別子」、「名」、「名前」または「ID」などの表現を用いる場合があるが、これらは互いに置換可能である。以下に説明するホストボリューム管理テーブル2100以外のテーブルについても同様である。
 ホストボリューム管理テーブル2100は、ホストボリュームID列2101、ストレージID列2102、ストレージボリュームID列2103、および空容量列2104からなる。ホストボリュームID列2101には、ハイパーバイザ501が認識し、付与するボリューム(仮想ボリュームまたは論理ボリューム)の識別子が登録される。ストレージID列2102にはホストボリューム(すなわちホスト計算機100によって認識されるボリューム)に対応するストレージボリューム(すなわちストレージ装置400によって認識されるボリューム)が存在するストレージ装置の識別子が登録される。ストレージボリュームID列2103には、ホストボリュームに対応するストレージボリュームの識別子が登録される。空容量列2104にはホストボリュームの空容量が登録される。
 ホストボリューム管理テーブル2100は、上記以外の情報、例えば、各ホストボリュームに対するI/O量を示す情報を登録する列をさらに含んでもよい。例えば、ホスト計算機100が各ホストボリュームへのI/O量を定期的に測定し、その結果をホストボリューム管理テーブル2100に登録してもよい。
 なお、ストレージIDおよびストレージボリュームIDは、ストレージ装置400が付与および保持する情報であるが、ハイパーバイザ501は、例えば、SCSI Inquiryを利用してこれらの情報をストレージ装置400から取得できる。
 管理ソフトウェア600はホスト計算機100およびストレージ装置400から構成情報を取得し、管理テーブルに格納する。また管理ソフトウェア600は追加モジュール502に対して書き込み先ボリュームの優先順位情報を送信する。管理ソフトウェア600については詳細を後述する。
 図5は、本発明の第1の実施形態のストレージ装置400内のソフトウェア構成の概要を示すブロック図である。
 ストレージ装置400上では、ストレージエージェント703、仮想ボリュームマネージャ704、および論理ボリュームマネージャ705が動作している。これらは物理ディスク411またはNVRAM414に格納されており、メモリ413にロードされ、CPU412を用いて実行される。なお、ホスト計算機100の場合と同様、以下の説明においてストレージエージェント703、仮想ボリュームマネージャ704または論理ボリュームマネージャ705が実行する処理は、CPU412がプログラムに従って実行する処理、ストレージ装置400が実行する処理、または計算機システムが実行する処理として説明することもできる。また、以下の説明においてストレージエージェント703、仮想ボリュームマネージャ704または論理ボリュームマネージャ705が保持する情報は、実際にはメモリ111またはストレージデバイス114に保持される。
 なお、図5の例において、仮想ボリューム701はホスト計算機100に割り当てられるが、ボリュームプール700に属する論理ボリューム702は、仮想ボリューム701に割り当てられるために使用されるものであり、直接(すなわち仮想ボリューム701を介さずに)ホスト計算機100に割り当てられることはない。しかし、実際には、ストレージ装置400は、ボリュームプール700に属さない論理ボリューム702を含んでもよい。ボリュームプール700に属さない論理ボリューム702は、仮想ボリューム701に割り当てることができないが、仮想ボリューム701を介さずに直接ホスト計算機100に割り当てることができる。
 図4を参照して、ストレージ装置400上に仮想ボリューム701と論理ボリュームとが混在し得ることを記載したが、これは、ホスト計算機100に割り当て可能な仮想ボリューム701と、ホスト計算機100に割り当て可能な論理ボリューム702とが混在し得ること、言い換えると、ボリュームプール700に属する論理ボリューム702と、ボリュームプール700に属さない論理ボリューム702とが混在し得ることを意味する。
 論理ボリュームマネージャ705は、物理ディスク411から一つ以上の論理ボリューム702を作成し、論理ボリューム702と物理ディスク411の間のマッピングを管理する。
 図6は、本発明の第1の実施形態における論理ボリューム702と物理ディスク411との関係を示した概念図である。
 図6の例では論理ボリューム702は四つの物理ディスク800、801、802および803から構成されている。1-1、1-2、1-3…とラベル付けした物理ディスク内の領域は、あらかじめ決められたサイズに区切られた領域であり、ストライプと呼ばれる。一方、P1、P2…とラベル付けした領域は、対応するストライプのパリティ情報を格納する領域であり、パリティストライプと呼ばれる。論理ボリュームマネージャ705は論理ボリューム702と物理ディスク411のマッピング関係を管理するために、ボリューム管理テーブルを保持する。
 図7は、本発明の第1の実施形態の論理ボリュームマネージャ705が保持するボリューム管理テーブルの一例を示す説明図である。
 ボリューム管理テーブルは、論理ボリュームID列900、ディスク列901、RAIDレベル列902、およびストライプサイズ列903からなる。論理ボリュームID列900には、論理ボリュームマネージャ705が各論理ボリュームに割り当てた識別子が登録される。ディスク列901には論理ボリュームを構成する物理ディスクの識別子が登録される。RAIDレベル列902には論理ボリュームの構成に使用されているRAID(Redundant Arrays of Inexpensive Disks)レベルが登録される。ストライプサイズ列903には、論理ボリュームの構成に使用されているストライプのサイズが登録される。
 仮想ボリュームマネージャ704は、ボリュームプール700に登録された論理ボリューム702から一つ以上の仮想ボリューム701を作成し、仮想ボリューム701と、論理ボリューム702との間のマッピングを管理する。
 図8は、本発明の第1の実施形態における仮想ボリューム701と論理ボリューム702の関係を示した概念図である。
 多くの場合、仮想ボリューム701へは、物理ディスクの記憶領域(以下、実記憶領域と記載)が直接割り当てられるのではなく、図8のように論理ボリューム702が構成され、論理ボリューム702内の一部領域が割り当てられる。仮想ボリューム701にデータの書き込みがあった場合、仮想ボリュームマネージャ704は、論理ボリューム702内の未使用の(すなわちまだ仮想ボリューム701に割り当てられていない)領域を、仮想ボリューム701の書き込みがあった場所に割り当てる。
 図8の例では、仮想ボリューム701の領域1000に論理ボリューム702の領域1003が割り当てられ、仮想ボリューム701の領域1001に論理ボリューム702の領域1005が割り当てられている。このことは、既にホスト計算機から領域1000及び領域1001へのデータの書き込みが行われたことを意味している。例えば、ストレージ装置400がホスト計算機100から領域1000へのデータ書き込み要求を受信した場合、データは、領域1000に割り当てられた論理ボリューム702の領域1003(より正確には、その領域1003に割り当てられた物理ディスク801内の実記憶領域)に格納される。なお、図7に示すように、論理ボリューム702内の全ての領域に、物理ディスク801内の実記憶領域が予め割り当てられている。
 図8の例において、仮想ボリューム701のうち領域1000及び1001を除く残りの領域1002には論理ボリューム702の領域が割り当てられていない。一方、論理ボリューム702のうち領域1003及び1005を除く残りの領域1004は、まだ仮想ボリューム701に割り当てられていない(すなわち未使用である)。ストレージ装置400が新たに領域1002へのデータの書き込み要求を受信した場合、領域1002のうち少なくともデータが書き込まれる部分には、領域1004の少なくとも一部が割り当てられ、当該割り当てられた領域にデータが格納される。
 なお、上記のように、多くの場合は(本実施形態の場合も含めて)仮想ボリューム701へは論理ボリューム702の一部領域が割り当てられるが、仮想ボリュームに物理ディスクの実記憶領域が直接割り当てられてもよい。上記のように論理ボリューム702の一部領域が割り当てられる場合であっても、最終的には、割り当ての結果、仮想ボリューム701の領域1000、1001等に、物理ディスクの実記憶領域が対応付けられる。
 仮想ボリューム701と論理ボリューム702との関係、仮想ボリューム701の割り当て状況、および論理ボリューム702内の使用状況を管理するため、仮想ボリュームマネージャ704は、仮想ボリューム管理テーブル1100および未使用領域管理テーブル1200を保持する。
 図9は、本発明の第1の実施形態の仮想ボリュームマネージャ704が保持する仮想ボリューム管理テーブル1100の一例を示す説明図である。
 仮想ボリューム管理テーブル1100は大きく分けて、仮想ボリューム内の位置を示す仮想ボリューム列、および論理ボリューム内の対応する領域を示す論理ボリューム列からなる。
 仮想ボリューム列は、ボリュームID列1101、開始LBA列1102、および終了LBA列1103からなる。ボリュームID列1101には、仮想ボリュームに付与されたボリュームの識別子が登録される。開始LBA列1102には、仮想ボリューム内の領域の開始LBA(Logical Block Address)が登録される。終了LBA列1103には、仮想ボリューム内の領域の終了LBAが登録される。
 論理ボリューム列も同様に、ボリュームID列1104、開始LBA列1105、および終了LBA列1106からなる。ボリュームID列1104には、対応する仮想ボリュームの領域へ割り当てられたデータ保存領域を持つ論理ボリュームの識別子が登録される。開始LBA列1105には、論理ボリューム内の領域の開始LBAが登録される。終了LBA列1106には、論理ボリューム内の領域の終了LBAが登録される。
 例えば、図9の仮想ボリューム管理テーブル1100の先頭の行のボリュームID列1101、開始LBA列1102および終了LBA列1103には、それぞれ、「3」、「0x00000000」および「0x0001af0f」が登録され、ボリュームID列1104、開始LBA列1105および終了LBA列1106には、それぞれ、「0」、「0x00000000」および「0x0001af0f」が登録されている。これは、ボリュームID「3」で識別される仮想ボリューム701のLBA「0x00000000」から「0x0001af0f」までの領域に、ボリュームID「0」で識別される論理ボリューム702のLBA「0x00000000」から「0x0001af0f」までの領域が割り当てられていることを示す。論理ボリューム内の領域にはあらかじめ物理ディスク411の実記憶領域が割り当てられているため(図6および図7参照)、結局、仮想ボリューム管理テーブル1100に基づいて、仮想ボリューム701内の領域に割り当てられた物理ディスク411の実記憶領域を特定することができる。
 図10は、本発明の第1の実施形態の仮想ボリュームマネージャ704が保持する未使用領域管理テーブル1200の一例を示す説明図である。
 未使用領域管理テーブル1200は、論理ボリュームID列1201、開始LBA列1202、および終了LBA列1203からなる。論理ボリュームID列1201には、仮想ボリューム701へのデータ保存領域割り当て用としてボリュームプール700に登録されている論理ボリューム702の識別子が登録される。開始LBA列1202および終了LBA列1203には、論理ボリューム702の中で未使用の領域1004の開始LBAおよび終了LBA列がそれぞれ登録される。
 ストレージエージェント703は、論理ボリューム702および仮想ボリューム701を管理する。
 図20は、本発明の第1の実施形態のストレージエージェント703が保持するストレージボリューム管理テーブル2200の一例を示した説明図である。
 ストレージボリューム管理テーブル2200は、ストレージボリュームID列2201、プールID列2202、およびプール空容量列2203からなる。ストレージボリュームID列2201には、ストレージボリューム(すなわち、仮想ボリューム701または論理ボリューム702)の識別子が登録される。プールID列2202には、ストレージボリュームID列2201に登録された識別子によって識別されるボリューム(以下、図20の説明において当該ボリュームと記載する)に対応するボリュームプールの識別子が登録される。プール空容量列2203には、当該ボリュームに対応するボリュームプールの空容量が登録される。ボリュームプールの空容量とは、ボリュームプール700のうち、まだ仮想ボリューム701に割り当てられていない領域の容量である。
 なお、当該ボリュームが論理ボリューム702である場合は、当該ボリュームにボリュームプール700が対応付けられないため、プールID列2202には空欄が登録され、プール空容量列2203には、当該ボリュームの実際の容量および空容量にかかわらず、プール空容量列2203に登録され得る最大値が登録される。このような値が登録される理由については後述する(図15参照)。
 ただし、論理ボリューム702に関する情報は、上記以外の形式でストレージボリューム管理テーブル2200に登録されてもよい。例えば、ストレージボリューム管理テーブル2200に、当該ボリュームが論理ボリューム702または仮想ボリューム701のいずであるかを示す列を登録し、当該ボリュームが論理ボリューム702である場合のプールID列2202およびプール空容量列2203を空欄としてもよい。
 ストレージボリューム管理テーブル2200は上記以外の列をさらに含んでもよい。例えば、ストレージボリューム管理テーブル2200は、各ストレージボリュームに対するI/O量または各ボリュームプールに対するI/O量を登録する列をさらに含んでもよい。例えば、ストレージ装置400が各ストレージボリュームまたは各ボリュームプールへのI/O量を定期的に測定し、その結果をストレージボリューム管理テーブル2200に登録してもよい。
 図11は、本発明の第1の実施形態の管理ソフトウェア600が保持するホスト・ストレージボリューム管理テーブル1600の一例を示した説明図である。
 ホスト・ストレージボリューム管理テーブル1600は大きく分けてホスト側情報列およびストレージ側情報列を持つ。
 ホスト側情報列はホストボリュームID列1601および空容量列1602からなる。ホストボリュームID列1601にはハイパーバイザ501の認識するボリュームの識別子が登録される。以下、図11の説明において、ホストボリュームID列1601に登録された識別子によって識別されるボリュームを当該ボリュームと記載する。当該ボリュームは、ホスト計算機に割り当てられた仮想ボリューム701または論理ボリューム702のいずれかである。空容量列1602には当該ボリュームの空容量が登録される。
 ストレージ側情報列はストレージID列1603、ストレージボリュームID列1604、プールID列1605、およびプール空容量列1606からなる。ストレージID列1603およびストレージボリュームID列1604には、ホストボリュームID列1601に対応する、ストレージ装置およびストレージボリュームの識別子(言い換えると、当該ボリュームを格納するストレージ装置400の識別子、および、そのストレージ装置400が当該ボリュームに付与した識別子)がそれぞれ登録される。プールID列1605には、当該ボリュームに対応するボリュームプールの識別子が登録される。プール空容量列1606には、当該ボリュームに対応するボリュームプール700の空容量が登録される。
 なお、ホストボリュームID列1601の識別子とストレージボリュームID列1604の識別子は、一般に異なる。また、当該ボリュームが論理ボリュームである場合は、図20の場合と同様、プールID列1605は空欄となり、プール空容量列1606の値は登録され得る最大値となる。
 また、ホスト側情報列およびストレージ側情報列には、上記以外の列が含まれてもよい。例えば、ホストボリューム管理テーブル2100が各ホストボリュームに対するI/O量を登録する列を含む場合、ホスト・ストレージボリューム管理テーブル1600のホスト側情報列も同様の列を含んでよい。また、ストレージボリューム管理テーブル2200が各ストレージボリュームまたは各ボリュームプールに対するI/O量を登録する列を含む場合、ホスト・ストレージボリューム管理テーブル1600のストレージ側情報列も同様の列を含んでよい。
 なお、ホスト・ストレージボリューム管理テーブル1600は、「ホストボリューム管理テーブル2100」および「ストレージボリューム管理テーブル2200に各ストレージ装置400の識別子(ストレージID)を付与したテーブル」から作成できる。具体的には、「ホストボリューム管理テーブル2100の行」と「ストレージボリューム管理テーブル2200に各ストレージ装置400の識別子(ストレージID)を付与したテーブルの行」とを比較し、ストレージIDおよびストレージボリュームIDが一致するものを結合することによって、ホスト・ストレージボリューム管理テーブル1600の各行が作成される。ただし、ホストボリューム管理テーブル2100に登録されていないボリューム(すなわち、ホスト計算機100の認識していないボリューム)は、ホスト・ストレージボリューム管理テーブル1600に登録されない。
 図12は、本発明の第1の実施形態の追加モジュール502が保持する書き込み先候補ボリューム管理テーブル1700の一例を示した説明図である。
 書き込み先候補ボリューム管理テーブル1700は優先順位列1701およびホストボリュームID列1702からなる。優先順位列1701には、追加モジュール502のファイル作成処理時に書き込み先のボリュームを検索するための順位が登録される。ホストボリュームID列1702には、ハイパーバイザ501が認識するボリュームの識別子が登録される。
 なお、書き込み先候補ボリューム管理テーブル1700に登録された順位は、各ボリュームの、イメージファイル503の格納先としての望ましさを示す指標である。高い順位が付与されたボリュームほど、イメージファイル503の格納先として望ましいことを意味する。ただし、後述するように、必ずしも優先順位の通りに格納先が選択されるとは限らず、単に警告を発するためだけに優先順位が参照される場合もある。
 図13は、本発明の第1の実施形態の管理ソフトウェア600が、ハイパーバイザ501および各ストレージ装置400の構成情報を取得して、追加モジュール502が書き込み先候補ボリューム管理テーブル1700を保持するまでの処理を示したシーケンス図である。
 なお、この処理は、書き込み先候補ボリューム管理テーブル1700の更新のために定期的に実行される。ただし、図13の処理は、定期的に実行されるほかに、ユーザが指示をした時、または、ハイパーバイザ501もしくはストレージ装置401からの情報プッシュ時など、所定のイベントを契機として実行されてもよいし、任意のタイミングで実行されてもよい。
 最初に、管理ソフトウェア600は、ハイパーバイザ501に対してホスト側構成情報の送信を要求する(ステップ1300)。
 次に、管理ソフトウェア600は、ハイパーバイザ501からホスト側構成情報を受信する(ステップ1301)。取得する構成情報は、ホストボリューム管理テーブル2100に含まれる情報項目である。なお、取得した構成情報に上記以外の情報が含まれていてもよい。また、ホスト側構成情報は、管理ソフトウェア600からの要求なしに、ハイパーバイザ501から送信されてもよい。
 次に、管理ソフトウェア600は、各ストレージ装置400に対してストレージ側構成情報の送信を要求する(ステップ1302)。
 次に、管理ソフトウェア600は、各ストレージ装置400からストレージ側構成情報を受信する(ステップ1303)。取得する構成情報は、各ストレージ装置400の識別子(ストレージID)、およびストレージボリューム管理テーブル2200に含まれる情報項目である。なお、取得した構成情報に上記以外の情報が含まれていてもよい。また、ストレージ側構成情報は、管理ソフトウェア600の要求なしに、各ストレージ装置400から送信されてもよい。
 次に、管理ソフトウェア600は、ステップ1301およびステップ1303で取得した情報をもとに、ホスト・ストレージボリューム管理テーブル1600を作成する(ステップ1304)。作成方法は、図11を参照して説明した通りである。
 次に、管理ソフトウェア600は、後述の処理によって、書き込み先候補ボリュームの優先順位を決定する(ステップ1305)。
 次に、管理ソフトウェア600は、追加モジュール502に、書き込み先候補ボリュームの優先順位情報を送信する(ステップ1306)。
 追加モジュール502は、管理ソフトウェア600から受信した書き込み先候補ボリュームの優先順位情報に基づいて、書き込み先候補ボリューム管理テーブル1700を保持する(ステップ1307)。
 図14は、本発明の第1の実施形態において、管理者1400がハイパーバイザ501上でファイル作成を伴う操作を行い、追加モジュール502が各ストレージ装置400の指定ボリュームにファイルを書き込むまでの処理を示したシーケンス図である。
 なお、ファイル作成を伴う操作とは、「仮想マシン500の新規作成」または「仮想マシン500に新たにディスクイメージを追加する」等の、イメージファイル503の新規作成の指示を含む操作を指す。あるいは、イメージファイル503の新規作成の指示を含む他の操作であってもよい。また、図14の処理の前に、図13に示す処理を実行し、書き込み先候補ボリューム管理テーブル1700を作成しておく必要がある。
 最初に、管理者1400がハイパーバイザ501上でファイル作成を伴う操作を行う(ステップ1401)。
 次に、ハイパーバイザ501が、ステップ1401の操作に応じてファイル作成処理を実行する(ステップ1402)。
 次に、追加モジュール502が、ハイパーバイザ501のファイル作成処理をキャプチャする(ステップ1403)。なお、キャプチャの実現方法の一例として、ハイパーバイザ501からのファイル作成処理イベントの発生通知を、追加モジュール502が受信する方法がある。
 次に、追加モジュール502が、書き込み先候補ボリューム管理テーブル1700を用いて、書き込み先ボリュームを決定する(ステップ1404)。基本的には追加モジュール502は書き込み先ボリュームとして優先順位が最高位であるボリュームを選択し、次のステップ1405において、I/Oエラーまたは容量不足等に起因する書き込み失敗が発生した場合に、順次、下位順位のボリュームを選択する。
 次に、追加モジュール502が、ステップ1404で決定したボリュームに書き込み処理を行う(ステップ1405)。
 なお、ステップ1405において、追加モジュール502は、ステップ1404で決定したボリュームではなく、ハイパーバイザ501が(優先順位に関係なく)指定したボリュームに書き込みを行ってもよい。この場合において、ハイパーバイザ501が指定したボリュームが、書き込み先候補ボリューム管理テーブル1700における優先順位が低いボリュームである場合に、管理者1400に対しての警告を、ハイパーバイザ501、または管理ソフトウェア600が表示する。優先順位が低いか否かは、所定の閾値に基づいて判定されてもよい。例えば、上位10パーセント以下の優先順位、10位以下の優先順位、または、管理者1400が定義した順位より低い優先順位を、低い優先順位と判定してもよい。
 図15は、本発明の第1の実施形態において実行される、書き込み先候補ボリューム管理テーブル1700の優先順位決定の処理(ステップ1305)の一例を示すフローチャートである。
 最初に、管理ソフトウェア600は、プール空容量列1606の降順に、ホスト・ストレージボリューム管理テーブル1600をソートする(ステップ1501)。これは次の理由による。すなわち、イメージファイル503が格納された後、そのイメージファイル503へのデータの書き込みが行われ、その結果、格納先の仮想ボリューム701に割り当てられたボリュームプール700の容量が不足すると、この不足を解消するために、ボリュームプール700間でのデータのコピーが必要になり、これによってI/O性能の低下が発生する。このようなデータのコピーの回数を減らすためには、空容量が大きいボリュームプール700に割り当てられた仮想ボリューム701にイメージファイル503を格納することが望ましいためである。
 なお、ホスト・ストレージボリューム管理テーブル1600にボリュームプールへのI/O量が登録されている場合には、そのI/O量の昇順にホスト・ストレージボリューム管理テーブル1600をソートしてもよい。特定の物理ディスクへのI/Oの集中による性能低下を防ぐためには、I/O量の少ないボリュームプール700に割り当てられた仮想ボリューム701にイメージファイル503を格納することが望ましいためである。
 次に、管理ソフトウェア600は、変数nおよびiを0で初期化する(ステップ1502)。nはステップ1503からステップ1507の繰り返し処理に用いる変数であり、繰り返しが何回目かを表す。iはステップ1503からステップ1507の繰り返し処理内で用いる変数であり、ホスト・ストレージボリューム管理テーブル1600の何行目を処理するかを示す。
 変数nがホスト・ストレージボリューム管理テーブル1600に登録されている行数より小さい場合、管理ソフトウェア600は、ステップ1503からステップ1507の繰り返し処理を実行する(ステップ1503)。その他の場合は、全行数分の処理が終了したため、ステップ1508に移る。
 ステップ1503において変数nがホスト・ストレージボリューム管理テーブル1600に登録された行数より小さいと判定された場合、管理ソフトウェア600は、ホスト・ストレージボリューム管理テーブル1600の第i行が所定の条件を満たすか否かを判定する(ステップ1504)。
 ここで、所定の条件とは、イメージファイル503の格納先として望ましくないボリュームの条件である。例えば、一般に、容量に余裕のないボリュームに新たなイメージファイル503を格納することは望ましくない。また、仮想マシン500の性能を確保するためには、I/Oが混雑したボリュームプール700に対応する仮想ボリューム701に新たなイメージファイル503を格納することは望ましくない。このため、ステップ1504の条件は、例えば、「第i行に登録されたボリュームの空容量がしきい値未満」、または「第i行に登録されたボリュームに対応するボリュームプールに対するI/O量がしきい値以上」等のいずれかであってもよいし、それらの組み合わせであってもよい。
 管理ソフトウェア600は、上記の条件が満たされる場合にステップ1505を実行し、満たされない場合にステップ1506を実行する。
 ステップ1505において、管理ソフトウェア600は、ホスト・ストレージボリューム管理テーブル1600の第i行を最終行に移動する。この処理の後、第i行には、それまで第i+1行だった行がシフトしているので、ステップ1506でiをインクリメントする必要はなく、ステップ1507に移るだけでよい。
 ステップ1506において、管理ソフトウェア600は、処理対象をホスト・ストレージボリューム管理テーブル1600の次行に移すため、iをインクリメントする。
 管理ソフトウェア600は、ステップ1505または1506を実行した後、繰り返し処理のため、nをインクリメントし(ステップ1507)、ステップ1503に移る。
 ステップ1503において変数nがホスト・ストレージボリューム管理テーブル1600の行数以上と判定された場合、管理ソフトウェア600は優先順位決定処理を終了する(ステップ1508)。この段階で、ホスト・ストレージボリューム管理テーブル1600の行は優先順位降順にソートされている。すなわち、先頭の行に登録されたボリュームの優先順位が最も高く、末尾の行に登録されたボリュームの優先順位が最も低い。
 ここで、図11に示したホスト・ストレージボリューム管理テーブル1600を参照して、図15の優先順位決定処理の具体例を説明する。なお、記載を簡略化するため、ここでは例えばホストボリュームID列1601の値「1」によって識別されるホストボリュームを「ホストボリューム1」、ストレージID列1603の値「storage 1」によって識別されるストレージ装置400を「ストレージ装置1」、ストレージボリュームID列1604の値「Vol 1」によって識別されるストレージボリュームを「ストレージボリューム1」、プールID列1605の値「pool 1」によって識別されるボリュームプール700を「ボリュームプール1」のように記載する。他のIDの値についても同様である。
 ステップ1501において、ホスト・ストレージボリューム管理テーブル1600の行がプール空容量列1606の値の順にソートされる。ホストボリューム1、2、3、4、5のプール空容量列1606の値がそれぞれ300GB、175GB、1024GB、105GBおよびMAX(すなわち登録可能な最大値)であるため、ソートの結果、ホストボリューム5、3、1、2、4の順に行が並ぶ。
 その後、並べ替えられた各行について、ステップ1504の判定が行われる。例えば、ステップ1504において、ボリュームの空容量のしきい値として「20GB」が使用された場合、ホストボリューム1の空容量がしきい値より小さい「10GB」であるため、ホストボリューム1の行がホスト・ストレージボリューム管理テーブル1600の最後尾に移動する(ステップ1505)。その結果、図15の処理が終了した時点で、ホスト・ストレージボリューム管理テーブル1600の行は、ホストボリューム5、3、2、4、1の順に並ぶ。
 この場合、ホストボリューム5、3、2、4、1の優先順位がそれぞれ1、2、3、4、5となり、それらの値が書き込み先候補ボリューム管理テーブル1700に登録される。すなわち、イメージファイル503の書き込み先としてホストボリューム5が選択され、その書き込みに失敗した場合に、次に順位が高いホストボリューム3が選択され、さらに失敗した場合には同様に順位に従ってホストボリュームが選択される。
 上記のように、ステップ1501においてボリュームプール700の空容量の順に行がソートされているため、より空容量が大きいボリュームプール700に対応する仮想ボリュームがイメージファイル503の格納先として優先的に選択される。
 なお、本実施形態では、ホスト計算機100に割り当て可能な論理ボリューム702のプール空容量列1606として、その項目に登録可能な最大値が登録される。図11の例では、ホストボリューム5(すなわちストレージ装置2のストレージボリューム3)がこのような論理ボリューム702に相当する。このため、ストレージ装置400に仮想ボリューム701とホスト計算機100に割り当て可能な論理ボリューム702とが混在する場合、ステップ1501のソートの結果、論理ボリューム702の優先順位は仮想ボリューム701のそれより必ず高くなる。これは、一般に、論理ボリューム702へのI/Oが仮想ボリューム701へのI/Oより高速に処理されるため、それらが混在する場合には論理ボリューム702を優先的に選択することによって仮想マシン500およびストレージ装置401の性能を確保することを意図している。仮想ボリューム701へのI/Oを実行するためには、仮想ボリューム701とボリュームプール700内の論理ボリューム702とのマッピングを参照し、必要があれば割り当てを実行しなければならないが、ホスト計算機100に直接割り当てられた論理ボリューム702へのI/Oを実行するためにはそのような参照および割り当ての処理が不要となるためである。
 また、ステップ1504から1505において、イメージファイル503の格納先として望ましくないボリューム(例えば空容量が小さいボリュームまたはI/Oが混雑したボリューム)の優先順位が下げられるため、そのようなボリュームは、イメージファイル503の格納先として選択されにくい。
 以上のように、本実施形態によれば、ボリュームプール間でのリソース使用量の偏り発生を防止することができ、その結果、ストレージ側でのプール間データコピーの回数を減らすことができる。
 <第2の実施形態>
 図1から図12、図15から図17、および図19から図21に基づいて、本発明に従う第2の実施形態について説明する。本実施形態と第1の実施形態の相違は、管理者1400の観点から、管理者1400がファイル作成を伴う操作を実行するソフトウェアモジュールが異なる点である。第1の実施形態においては、管理者1400はハイパーバイザ501上でファイル作成を伴う操作を実行したが、本実施形態においては、管理者1400は管理ソフトウェア600上でファイル作成を伴う操作を実行する。これに伴い、本実施形態の管理ソフトウェア600、ハイパーバイザ501、および追加モジュール502の動作が、第1の実施形態のものと異なる。
 本実施形態におけるシステム構成は、第1の実施形態において、図1から図5を用いて説明したものと同様である。また、各ソフトウェアモジュールの役割は、管理ソフトウェア600、ハイパーバイザ501、および追加モジュール502を除いて、第1の実施形態と同様である。図6から図12に示す第1の実施形態の概念図および管理テーブルは、本実施形態にも適用される。また、本実施形態の管理ソフトウェア600は、第1の実施形態と同様、図15に示す書き込み先候補ボリューム管理テーブル1700の優先順位決定の処理を実行する。本実施形態の管理ソフトウェア600、ハイパーバイザ501、追加モジュール502の役割の、第1の実施形態との相違については、後述する。
 図16は、本発明の第2の実施形態の管理ソフトウェア600がハイパーバイザ501および各ストレージ装置400の構成情報を取得し、管理ソフトウェア600が書き込み先候補ボリューム管理テーブル1700を保持するまでの処理を示したシーケンス図である。
 ステップ1800からステップ1805は、実施例1のステップ1300からステップ1305と同様であるため、説明を省略する。
 本実施形態では、ステップ1806において、管理ソフトウェア600が、書き込み先候補ボリューム管理テーブル1700を保持する。本処理は、書き込み先候補ボリューム管理テーブル1700の更新のために、必要に応じて繰り返し実行される。なお本実施形態において、追加モジュール502はハイパーバイザ501上のインターフェースとして動作し、独立した処理は実行しない。
 図17は、本発明の第2の実施形態において、管理者1400が管理ソフトウェア600上でファイル作成操作を行い、管理ソフトウェア600がインターフェース(追加モジュール502)を通して、各ストレージ装置400の指定ボリュームにファイルを書き込むまでの処理を示したシーケンス図である。
 なお、この処理の前に、管理ソフトウェア600等が図16に示す処理を実行し、書き込み先候補ボリューム管理テーブル1700を作成しておく必要がある。
 最初に、管理者1400が管理ソフトウェア600上で、ファイル作成操作を行う(ステップ1900)。なお、ファイル作成操作とは、第1の実施形態において説明したとおり、「仮想マシン500の新規作成」または「仮想マシン500に新たにディスクイメージを追加する」等の、イメージファイル503の新規作成を伴う操作を指す。ただし、本実施形態のファイル作成操作は、ハイパーバイザ501上ではなく管理ソフトウェア600上で行われる。
 次に、管理ソフトウェア600が、ファイル作成処理を実行し、イメージファイル503を、管理サーバ200上のメモリ211またはストレージデバイス213上に保持する(ステップ1901)。
 次に、管理ソフトウェア600が、書き込み先候補ボリューム管理テーブル1700を用いて、書き込み先ボリュームを決定する(ステップ1902)。管理ソフトウェア600は、基本的には優先順位の最高位のボリュームを選択し、I/Oエラーまたは容量不足等に起因する書き込み失敗時に、順次、下位順位のボリュームを選択する。
 次に、管理ソフトウェア600が、ステップ1902で決定したボリュームを指定し、ハイパーバイザ501上のインターフェースである追加モジュール502を通して、ハイパーバイザ501にファイルを送信する(ステップ1903)。なお、管理ソフトウェア600は、ボリュームを指定せずにファイルを送信してもよい。この場合、ステップ1904に記載の追加処理が行われる。
 次に、ハイパーバイザ501が、ステップ1903において受信したファイルを、指定されたボリュームに書き込む(ステップ1904)。本実施形態において、追加モジュール502は、書き込むべきファイルと、そのファイルの書き込み先のボリュームの指定と、を受信した場合に、そのファイルを指定されたボリュームに書き込むためのインターフェースである。
 なお、ステップ1903で、ボリュームを指定せずにファイルが送信された場合は、ハイパーバイザ501が優先順位に関係なくいずれかのボリュームにファイルを書き込む。以下、ステップ1903で、ボリュームを指定せずにファイルが送信された場合追加処理について説明する。
 管理ソフトウェア600は、ハイパーバイザ501にホスト側構成情報を要求し、図21に示すようなイメージファイル列2105を含むホストボリューム管理テーブル2106を取得する。
 図21は、本発明の第2の実施形態のハイパーバイザ501が保持するホストボリューム管理テーブル2106の一例を示す説明図である。
 ホストボリューム管理テーブル2106のホストボリュームID列2101~空容量列2104は、ホストボリューム管理テーブル2100(図19)の対応する列と同様であるため、説明を省略する。ホストボリューム管理テーブル2106のイメージファイル列2105には、ホストボリュームに格納されるイメージファイル503のファイル名が登録されている。
 管理ソフトウェア600は、イメージファイル列2105を検索し、ステップ1904においてファイルの作成されたボリュームを特定する。特定したボリュームが、書き込み先候補ボリューム管理テーブル1700における優先順位が低いボリュームである場合に、管理ソフトウェア600は、管理者1400に対して、警告を提示する。なお、優先順位の低さの判定は、第1の実施形態と同様に実行されてもよい。例えば、上位10パーセント以下の優先順位、10位以下の優先順位、または、管理者1400が定義した順位より低い優先順位を、低い優先順位と判定してもよい。以上が、ステップ1903で、ボリュームを指定せずにファイルを送信した場合についての説明である。
 以上の第2の実施形態によれば、管理者1400が管理ソフトウェア600上でファイル作成操作を行った場合にも、第1の実施形態と同様の効果を得ることができる。
 <第3の実施形態>
 図1から図12、図14、図15、および図18から図20に基づいて、本発明に従う第3の実施形態について説明する。なお本実施形態と第1の実施形態との相違は、第1の実施形態において管理ソフトウェア600が実行する処理を、本実施形態においては追加モジュール502が実行する点である。これに伴い、本実施形態の追加モジュール502の動作は、第1の実施形態のものと異なる。
 本実施形態におけるシステム構成は、第1の実施形態において図1から図5を用いて説明したものと、管理サーバ200およびLAN301を必要としない点を除いて同様である。また、各ソフトウェアモジュールの役割は、追加モジュール502を除いて、第1の実施形態と同様である。図6から図12に示す第1の実施形態の概念図および管理テーブルは、本実施形態にも適用される。ただし、本実施形態は、管理サーバ200上の管理ソフトウェア600を必要としない。図14に示すファイル作成処理時の処理を実行するためには、追加モジュール502等が事前に図18に示す処理を実行し、追加モジュール502が書き込み先候補ボリューム管理テーブル1700を保持しておく必要がある。また、図15に示す処理も第1の実施形態と同様に実行される。ただし、ステップ1405において、追加モジュール502が書き込み先を制御せず、管理者1400に対して警告を提示する場合、警告の提示は、ハイパーバイザ501によって実行される。
 図18は、本発明の第3の実施形態の追加モジュール502が、ハイパーバイザ501および各ストレージ装置400の構成情報を取得し、書き込み先候補ボリューム管理テーブル1700を保持するまでの処理を示したシーケンス図である。
 なお、この処理は、書き込み先候補ボリューム管理テーブル1700の更新のために、必要に応じて繰り返し実行される。
 最初に、追加モジュール502は、ハイパーバイザ501に対してホスト側構成情報の送信を要求する(ステップ2000)。
 次に、追加モジュール502は、ハイパーバイザ501からホスト側構成情報を受信する(ステップ2001)。取得する構成情報は、ホストボリューム管理テーブル2100に含まれる情報項目である。なお、取得した構成情報に上記以外の情報が含まれていてもよい。また、追加モジュール502の要求なしに、ハイパーバイザ501が構成情報を送信してもよい。
 次に、追加モジュール502は、各ストレージ装置400に対してストレージ側構成情報の送信を要求する(ステップ2002)。
 次に、追加モジュール502は、各ストレージ装置400からストレージ側構成情報を受信する(ステップ2003)。取得する構成情報は、各ストレージ装置400の識別子(ストレージID)、およびストレージボリューム管理テーブル2200に含まれる情報項目である。取得した構成情報に上記以外の情報が含まれていてもよい。なお、ステップ2002とステップ2003において、要求の発行および返信を実行するために、SCSI Inquiryを利用してもよい。この場合、追加モジュール502はSCSI Inquiryを発行して構成情報を要求し、各ストレージ装置400はInquiry DataのVendor-specific領域に構成情報を格納して返送する。
 次に、追加モジュール502が、ホストボリューム管理テーブル2100およびストレージボリューム管理テーブル2200をもとに、ホスト・ストレージボリューム管理テーブル1600を作成する(ステップ2004)。作成方法は第1の実施形態と同様であり、ホストボリューム管理テーブル2100の行と、ストレージボリューム管理テーブル2200の行とを比較し、ストレージID列2102およびストレージボリュームID列2103が一致する行を結合することによってホスト・ストレージボリューム管理テーブル1600の各行が作成される。
 次に、追加モジュール502が、図15に示した処理によって、書き込み先候補ボリュームの優先順位を決定する(ステップ2005)。
 次に、追加モジュール502が、書き込み先候補ボリューム管理テーブル1700を保持する(ステップ2006)。
 以上の第3の実施形態によれば、管理サーバ200を備えない計算機システムにおいても、第1の実施形態と同様の効果を得ることができる。
100 ホスト計算機
200 管理サーバ
300 SAN
301 LAN
400 ストレージ装置
500 仮想マシン
501 ハイパーバイザ
502 追加モジュール
503 イメージファイル
600 管理ソフトウェア
700 ボリュームプール
701 仮想ボリューム
703 論理ボリューム

Claims (15)

  1.  一つ以上の記憶装置と、前記記憶装置に接続される一つ以上のホスト計算機と、を備える計算機システムであって、
     前記ホスト計算機は、前記記憶装置に接続される第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1記憶デバイスと、を含み、
     前記第1プロセッサは、各々が一つ以上のアプリケーションを実行する一つ以上の仮想マシンを制御し、
     前記記憶装置は、
     前記ホスト計算機に接続されるコントローラと、前記コントローラに接続される一つ以上の物理記憶デバイスと、を含み、
     複数の仮想ボリュームと、各々が前記物理記憶デバイスの実記憶領域を含む複数のプールと、を対応付ける情報を保持し、
     前記ホスト計算機から書き込み先のボリュームとして前記仮想ボリュームが指定されたデータの書き込み要求を受信した場合、書き込み先の前記仮想ボリュームに対応する前記プールに含まれる前記実記憶領域を前記書き込み先の仮想ボリュームに割り当てて、当該データを前記割り当てられた実記憶領域に格納し、
     前記計算機システムは、
     前記記憶装置が保持する情報に基づいて、前記ホスト計算機による書き込み先としての前記ボリュームの優先順位を決定し、
     決定した前記優先順位を保持することを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記記憶装置は、前記各プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量を示す情報を保持し、
     前記計算機システムは、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量に基づいて前記優先順位を決定することを特徴とする計算機システム。
  3.  請求項2に記載の計算機システムであって、
     前記計算機システムは、前記プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量が多いほど、当該プールに対応する前記仮想ボリュームの順位が高くなるよう、前記優先順位を決定することを特徴とする計算機システム。
  4.  請求項3に記載の計算機システムであって、
     前記計算機システムは、
     ファイル作成指示が入力された場合、前記優先順位が最も高い前記ボリュームを書き込み先として指定し、前記書き込み先として指定されたボリュームへのファイルの書き込みを実行し、
     前記書き込み先として指定されたボリュームへのファイルの書き込みに失敗した場合、前記書き込み先として指定されたボリュームの次に前記優先順位が高い前記ボリュームを新たな書き込み先として指定することを特徴とする計算機システム。
  5.  請求項4に記載の計算機システムであって、
     前記ホスト計算機および前記記憶装置は、第1ネットワークを介して相互に接続され、
     前記計算機システムは、第2ネットワークを介して前記ホスト計算機及び前記記憶装置に接続される管理計算機をさらに備え、
     前記管理計算機は、
     前記第2ネットワークに接続される第2インターフェースと、前記第2インターフェースに接続される第2プロセッサと、前記第2プロセッサに接続される第2記憶デバイスと、を含み、
     前記第2ネットワークを介して、前記記憶装置から、前記各プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量を示す情報を取得し、
     前記プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量が多いほど、当該プールに対応する前記仮想ボリュームの順位が高くなるよう、前記優先順位を決定し、
     前記決定した優先順位を保持し、
     前記ファイル作成指示を入力されると、ファイルを作成し、前記作成されたファイルに加えて、前記作成されたファイルの書き込み先を指定する情報として、前記優先順位が最も高い前記仮想ボリュームを識別する情報を前記ホスト計算機に送信し、
     前記第1プロセッサは、前記第1記憶デバイスに格納された仮想マシン制御プログラムを実行することによって、前記一つ以上の仮想マシンを制御し、
     前記仮想マシン制御プログラムは、ファイル及び当該ファイルの書き込み先を指定する情報を入力されると、当該指定された書き込み先に当該ファイルを書き込む処理を前記第1プロセッサに実行させ、
     前記ホスト計算機は、前記仮想マシン制御プログラムに従って、前記管理計算機から受信したファイルを、前記管理計算機によって指定されたボリュームに書き込むことを特徴とする計算機システム。
  6.  請求項5に記載の計算機システムであって、
     前記記憶装置は、さらに、予め前記実記憶領域が割り当てられ、かつ、前記プールに対応付けられていない一つ以上の論理ボリュームを管理し、
     前記ホスト計算機は、前記各仮想ボリュームの空き容量を示す情報を保持し、
     前記管理計算機は、
     前記第2ネットワークを介して、前記ホスト計算機から、前記各仮想ボリュームの空き容量を示す情報を取得し、
     前記一つ以上の論理ボリュームのうち空き容量が所定の閾値より大きいものの順位がいずれの前記仮想ボリュームの順位より高くなり、空き容量が所定の閾値より大きい仮想ボリュームの順位が、前記空き容量が前記所定の閾値より小さい仮想ボリュームの順位より高くなり、かつ、前記プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量が多いほど、当該プールに対応する前記仮想ボリュームの順位が高くなるよう、前記優先順位を決定することを特徴とする計算機システム。
  7.  請求項4に記載の計算機システムであって、
     前記ホスト計算機および前記記憶装置は、第1ネットワークを介して相互に接続され、
     前記計算機システムは、第2ネットワークを介して前記ホスト計算機及び前記記憶装置に接続される管理計算機をさらに備え、
     前記管理計算機は、
     前記第2ネットワークに接続される第2インターフェースと、前記第2インターフェースに接続される第2プロセッサと、前記第2プロセッサに接続される第2記憶デバイスと、を含み、
     前記第2ネットワークを介して、前記記憶装置から、前記各プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量を示す情報を取得し、
     前記プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量が多いほど、当該プールに対応する前記仮想ボリュームの順位が高くなるよう、前記優先順位を決定し、
     前記決定した優先順位を示す情報を前記ホスト計算機に送信し、
     前記第1プロセッサは、前記第1記憶デバイスに格納された仮想マシン制御プログラムを実行することによって、前記一つ以上の仮想マシンを制御し、
     前記ホスト計算機は、
     前記第1記憶デバイスに格納され、前記第1プロセッサによって実行される追加プログラムをさらに含み、
     前記管理計算機から受信した前記優先順位を示す情報を保持し、
     前記ファイル作成指示を入力されると、前記仮想マシン制御プログラムに従ってファイルを作成し、
     前記追加プログラムに従って、前記作成されたファイルを、前記優先順位が最も高い前記ボリュームに書き込むことを特徴とする計算機システム。
  8.  請求項4に記載の計算機システムであって、
     前記ホスト計算機および前記記憶装置は、第1ネットワークを介して相互に接続され、
     前記第1プロセッサは、前記第1記憶デバイスに格納された仮想マシン制御プログラムを実行することによって、前記一つ以上の仮想マシンを制御し、
     前記ホスト計算機は、
     前記第1記憶デバイスに格納され、前記第1プロセッサによって実行される追加プログラムをさらに含み、
     前記追加プログラムに従って、前記第1ネットワークを介して、前記記憶装置から、前記各プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量を示す情報を取得し、
     前記プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量が多いほど、当該プールに対応する前記仮想ボリュームの順位が高くなるよう、前記優先順位を決定し、
     前記決定した優先順位を保持し、
     前記ファイル作成指示を入力されると、前記仮想マシン制御プログラムに従ってファイルを作成し、
     前記追加プログラムに従って、前記作成されたファイルを、前記優先順位が最も高い前記ボリュームに書き込むことを特徴とする計算機システム。
  9.  請求項8に記載の計算機システムであって、前記ホスト計算機は、前記追加プログラムに従う前記第1ネットワークを介した前記記憶装置との通信に、SCSI Inquiryを用いることを特徴とする計算機システム。
  10.  請求項3に記載の計算機システムであって、
     前記計算機システムは、ファイル作成指示が入力された場合、前記ファイル作成指示に従っていずれかの前記ボリュームへのファイルの書き込みを実行し、前記ファイルが書き込まれたボリュームの前記優先順位が所定の順位より低い場合、警告を出力することを特徴とする計算機システム。
  11.  請求項1に記載の計算機システムであって、
     前記記憶装置は、前記各プールへのI/O量を示す情報を保持し、
     前記計算機システムは、前記プールへのI/O量が少ないほど、当該プールに対応する前記仮想ボリュームの順位が高くなるように、前記優先順位を決定することを特徴とする計算機システム。
  12.  一つ以上の記憶装置と、前記記憶装置に接続される一つ以上のホスト計算機と、を備える計算機システムの制御方法であって、
     前記ホスト計算機は、前記記憶装置に接続される第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1記憶デバイスと、を含み、
     前記第1プロセッサは、各々が一つ以上のアプリケーションを実行する一つ以上の仮想マシンを制御し、
     前記記憶装置は、
     前記ホスト計算機に接続されるコントローラと、前記コントローラに接続される一つ以上の物理記憶デバイスと、を含み、
     複数の仮想ボリュームと、各々が前記物理記憶デバイスの実記憶領域を含む複数のプールと、を対応付ける情報を保持し、
     前記ホスト計算機から書き込み先のボリュームとして前記仮想ボリュームが指定されたデータの書き込み要求を受信した場合、書き込み先の前記仮想ボリュームに対応する前記プールに含まれる前記実記憶領域を前記書き込み先の仮想ボリュームに割り当てて、当該データを前記割り当てられた実記憶領域に格納し、
     前記制御方法は、
     前記記憶装置が保持する情報に基づいて、前記ホスト計算機による書き込み先としての前記ボリュームの優先順位を決定する第1手順と、
     決定した前記優先順位を保持する第2手順と、を含むことを特徴とする計算機システムの制御方法。
  13.  請求項12に記載の計算機システムの制御方法であって、
     前記記憶装置は、前記各プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量を示す情報を保持し、
     前記第1手順は、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量に基づいて前記優先順位を決定する手順を含むことを特徴とする計算機システムの制御方法。
  14.  請求項13に記載の計算機システムの制御方法であって、
     前記第1手順は、前記プールに含まれる実記憶領域のうち、まだ前記仮想ボリュームに割り当てられていない実記憶領域の量が多いほど、当該プールに対応する前記仮想ボリュームの順位が高くなるよう、前記優先順位を決定する手順を含むことを特徴とする計算機システムの制御方法。
  15.  請求項14に記載の計算機システムの制御方法であって、
     ファイル作成指示が入力された場合、前記優先順位が最も高い前記ボリュームを書き込み先として指定し、前記書き込み先として指定されたボリュームへのファイルの書き込みを実行する第3手順をさらに含み、
     前記第3手順は、前記書き込み先として指定されたボリュームへのファイルの書き込みに失敗した場合、前記書き込み先として指定されたボリュームの次に前記優先順位が高い前記ボリュームを新たな書き込み先として指定する手順をさらに含むことを特徴とする計算機システムの制御方法。
PCT/JP2011/054727 2011-03-02 2011-03-02 計算機システムおよびその制御方法 WO2012117534A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013502103A JP5416860B2 (ja) 2011-03-02 2011-03-02 計算機システムおよびその制御方法
PCT/JP2011/054727 WO2012117534A1 (ja) 2011-03-02 2011-03-02 計算機システムおよびその制御方法
US13/131,357 US8745354B2 (en) 2011-03-02 2011-03-02 Computer system for resource allocation based on orders of proirity, and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/054727 WO2012117534A1 (ja) 2011-03-02 2011-03-02 計算機システムおよびその制御方法

Publications (1)

Publication Number Publication Date
WO2012117534A1 true WO2012117534A1 (ja) 2012-09-07

Family

ID=46754038

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/054727 WO2012117534A1 (ja) 2011-03-02 2011-03-02 計算機システムおよびその制御方法

Country Status (3)

Country Link
US (1) US8745354B2 (ja)
JP (1) JP5416860B2 (ja)
WO (1) WO2012117534A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047313B2 (en) * 2011-04-21 2015-06-02 Red Hat Israel, Ltd. Storing virtual machines on a file system in a distributed environment
US9158561B2 (en) * 2011-08-18 2015-10-13 Vmware, Inc. Systems and methods for modifying an operating system for a virtual machine
JP6142599B2 (ja) * 2013-03-18 2017-06-07 富士通株式会社 ストレージシステム、ストレージ装置および制御プログラム
CN109976662B (zh) * 2017-12-27 2022-06-14 浙江宇视科技有限公司 数据存储方法、装置及分布式存储系统
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070403A (ja) * 2002-08-01 2004-03-04 Hitachi Ltd ファイル格納先ボリューム制御方法
JP2009116436A (ja) * 2007-11-02 2009-05-28 Hitachi Ltd 記憶領域の構成最適化方法、計算機システム及び管理計算機
JP2009140356A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 管理装置及び管理方法
WO2010122679A1 (ja) * 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びその制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
JP4402565B2 (ja) * 2004-10-28 2010-01-20 富士通株式会社 仮想ストレージ管理プログラム、方法及び装置
JP4699837B2 (ja) * 2005-08-25 2011-06-15 株式会社日立製作所 ストレージシステム、管理計算機及びデータ移動方法
JP4920979B2 (ja) * 2006-01-25 2012-04-18 株式会社日立製作所 ストレージ装置及びその制御方法
JP4958883B2 (ja) * 2008-10-29 2012-06-20 株式会社日立製作所 管理サーバ装置によるストレージ装置及び空調装置の制御方法及びストレージシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070403A (ja) * 2002-08-01 2004-03-04 Hitachi Ltd ファイル格納先ボリューム制御方法
JP2009116436A (ja) * 2007-11-02 2009-05-28 Hitachi Ltd 記憶領域の構成最適化方法、計算機システム及び管理計算機
JP2009140356A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 管理装置及び管理方法
WO2010122679A1 (ja) * 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びその制御方法

Also Published As

Publication number Publication date
JPWO2012117534A1 (ja) 2014-07-07
US8745354B2 (en) 2014-06-03
JP5416860B2 (ja) 2014-02-12
US20120226885A1 (en) 2012-09-06

Similar Documents

Publication Publication Date Title
JP5416860B2 (ja) 計算機システムおよびその制御方法
CN110955487B (zh) Hci环境下的vm/容器和卷配置决定方法及存储系统
JP4235220B2 (ja) 計算機システムおよびデータ移行方法
US9524107B2 (en) Host-based device drivers for enhancing operations in redundant array of independent disks systems
JP4884198B2 (ja) ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機
US10437642B2 (en) Management system for computer system
US9928004B2 (en) Assigning device adaptors to use to copy source extents to target extents in a copy relationship
JP2009238114A (ja) ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム
JP5762146B2 (ja) コンピュータ・ベース・システムにおける資源割当てる方法および装置
JP4748950B2 (ja) 記憶領域管理方法及びシステム
US10069906B2 (en) Method and apparatus to deploy applications in cloud environments
US20130185531A1 (en) Method and apparatus to improve efficiency in the use of high performance storage resources in data center
US20220066786A1 (en) Pre-scanned data for optimized boot
JP2020173727A (ja) ストレージ管理装置、情報システム、及びストレージ管理方法
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
JP2015532734A (ja) 物理ストレージシステムを管理する管理システム、物理ストレージシステムのリソース移行先を決定する方法及び記憶媒体
CN107430527B (zh) 具有服务器存储系统的计算机系统
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
US9547450B2 (en) Method and apparatus to change tiers
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US20130318102A1 (en) Data Handling in a Cloud Computing Environment
JP7113698B2 (ja) 情報システム
WO2018173300A1 (ja) I/o制御方法およびi/o制御システム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13131357

Country of ref document: US

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

Ref document number: 11859945

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013502103

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11859945

Country of ref document: EP

Kind code of ref document: A1