WO2017085870A1 - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
WO2017085870A1
WO2017085870A1 PCT/JP2015/082729 JP2015082729W WO2017085870A1 WO 2017085870 A1 WO2017085870 A1 WO 2017085870A1 JP 2015082729 W JP2015082729 W JP 2015082729W WO 2017085870 A1 WO2017085870 A1 WO 2017085870A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
resource
storage device
volume
target
Prior art date
Application number
PCT/JP2015/082729
Other languages
French (fr)
Japanese (ja)
Inventor
良徳 大平
渡 岡田
晋広 牧
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/082729 priority Critical patent/WO2017085870A1/en
Publication of WO2017085870A1 publication Critical patent/WO2017085870A1/en

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

Definitions

  • the present invention relates to a performance management technique for a computer system.
  • a performance management technology of a computer system there is a technology that prevents a performance influence between applications by enabling a user to set a resource occupation amount for each physical resource (port, cache, etc.) possessed by the computer system.
  • storage virtualization technology such as thin provisioning technology and tearing technology, allows the storage system to be managed even by users without specialized knowledge by automatically determining the appropriate media for storing data. is there.
  • One of the challenges of performance management technology for virtual storage devices is the performance of the virtual storage device that occurs when the storage function is applied to the virtual volume when there are multiple virtual volumes in one virtual storage device There is no way to avoid the problem.
  • the storage function include a volume copy function for a virtual volume belonging to a virtual storage apparatus, a virtual volume deduplication function, a virtual volume compression function, and the like.
  • the virtual storage device virtual is affected by the temporary load for copying the volume. There may be a case where the amount of resources is temporarily insufficient, and the performance of other virtual volumes in the virtual storage apparatus is degraded.
  • the computer system includes a storage device, a memory, and a processor that executes a program stored in the memory.
  • the processor creates a first virtual storage device.
  • the processor secures the first resource from the physical resources in the computer system and allocates the first resource to the first virtual storage device.
  • the processor creates a plurality of virtual volumes in the first virtual storage device using the first resource.
  • the processor receives an I / O request for any of the plurality of virtual volumes, the processor executes processing related to the I / O request using the first resource.
  • the processor receives a request for execution of a target operation on a target virtual volume from among a plurality of virtual volumes, and a first resource amount that is a resource amount of a first resource used when the target operation is executed on the target virtual volume It is determined whether or not estimation is possible.
  • the processor generates the second virtual storage device when the first resource amount cannot be estimated.
  • the processor identifies the second resource used for the target virtual volume among the first resources, and allocates at least the second resource to the second virtual storage device.
  • the processor changes the affiliation of the target virtual volume from the first virtual storage device to the second virtual storage device.
  • the processor performs the target operation on the target virtual volume.
  • the performance impact on other virtual volumes due to the target operation on the target virtual volume can be reduced.
  • FIG. It is a 1st block diagram of the computer system which concerns on a present Example. It is a figure explaining allocation to the virtual resource of a physical resource. It is a figure explaining the correspondence of a physical volume and a virtual volume.
  • 3 is a diagram illustrating an example of a storage control program and a storage control table stored in a memory 142.
  • FIG. It is an example of a virtual storage configuration management table 411. It is an example of a virtual volume configuration management table 412. An example of the physical volume configuration management table 413 is shown. It is an example of a virtual volume monitor table 414. 4 is an example of a workload characteristic management table 420; An example of the physical resource amount management table 415 is shown. An example of the virtual resource amount management table 416 is shown.
  • 3 is an example of a resource allocation program 400. It is an example of a virtual volume creation program. 3 is an example of a host I / O program 401. It is a figure explaining a volume copy function. It is a figure explaining a deduplication function and a compression function. It is an example of a storage function state management table 417. It is an example of a default resource amount table 418. It is an example of a virtual resource amount learning table 419. An example of the setting screen 2301 displayed on the user computer is shown. It is an example of the process which the workload determination program 405 performs. It is an example of the flowchart of the process which the storage function application program 402 performs.
  • xxx table information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “xxx information” to indicate that the information does not depend on the data structure.
  • xxx information information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “xxx information” to indicate that the information does not depend on the data structure.
  • the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
  • the components, functions, processing units, processing means, and the like described in the present embodiment may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Information such as programs, tables, and files that realize each function includes non-volatile semiconductor memory,
  • a storage device such as a hard disk drive or SSD (Solid State Drive), or a computer-readable non-transitory data storage medium such as an IC card, SD card or DVD.
  • a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used.
  • an ID assigned to the element may be used instead of the reference code.
  • the process may be described with “program” as the subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)) so that a predetermined process can be appropriately performed. Since processing is performed using a storage resource (for example, a memory) and / or an interface device (for example, a communication port), the subject of processing may be a processor.
  • the process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor.
  • the processor may include a hardware circuit that performs a part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a storage medium that can be read by a program distribution server or a computer.
  • the program distribution server may include a processor (for example, a CPU) and a storage resource, and the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • a processor for example, a CPU
  • the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • FIG. 1 is a first configuration diagram of a computer system according to the present embodiment.
  • the computer system includes a host computer (hereinafter referred to as a host) 100, a server computer (hereinafter referred to as a server) 2501, a medium 150, and a management server computer (hereinafter referred to as a management server) 110.
  • the number of each of the host 100, media 150, and management server 110 included in the computer system is an arbitrary number of 1 or more. Further, the number of servers 2501 included in the computer system is not limited to two as in the illustrated example, and may be one or three or more.
  • the medium 150 stores data that the host 100 reads and writes.
  • the medium 150 may be of any type, such as an SSD (Solid State Drive) 151 or an HDD (Hard Disk Drive) 152. Further, the medium 150 may be configured as a single unit, or a plurality of media 150 may configure a RAID (Redundant Arrays of Inexpensive Disks) group.
  • the server 2501 is, for example, a general purpose computer.
  • the server 2501 performs data transfer control between the host 100 and the medium 150.
  • the host 100 is a computer that performs business using data stored in the medium 150.
  • the host 100 and the server 2501 are connected by a data network 130 and can communicate with each other.
  • the data network 130 uses a general technique such as Ethernet (registered trademark).
  • the servers 2501 are connected to each other via the interconnect network 2502 and can refer to information held by each other.
  • the interconnect network 2502 can be configured by using a general technique as with the data network 130.
  • the server 2503 is connected to the management server 110 via the management network 131.
  • the management server 110 and each computer 2501 can communicate with each other.
  • the management network 131 also uses a general technique such as Ethernet (registered trademark).
  • the management server 110 is a general-purpose computer, for example. In the management server 110, system management software operates.
  • the system management software is software that manages the server 2501.
  • the server 2501 includes devices such as a processor 141, a memory 142, a host interface 160, an inter-server interface 2502, a management interface 161, and a media interface 162.
  • Each interface 160, 2501, 161, 162 may be simply referred to as a port.
  • the devices in the server 2501 are connected to each other via an internal network (not shown) and can communicate with each other.
  • Each processor 141 in the server 2501 can execute a program that realizes various functions of the server 2501, such as a program that processes a command received from the host 100.
  • the host interface (host I / F) 160 is a device that is connected to the host 100 and communicates with the host 100.
  • the host I / F 160 is equipped with a communication protocol used for the data network 130 and can communicate data and commands with the host 100.
  • the inter-server interface (inter-server I / F) 2502 is a device that performs communication between the servers 2502.
  • the inter-server I / F 2502 is implemented with a communication protocol used for the interconnect network 2503, and data and commands can be communicated between the servers 2501.
  • the management interface (management I / F) 161 is a device that is connected to the management server 110 and communicates with the management server 110.
  • the management interface 161 is implemented with a communication protocol used for the management network 131 and can communicate data and commands with the management server 110.
  • the media interface (media I / F) 162 is a device that is connected to the media 150 and communicates with the media 150.
  • the media I / F 162 is implemented with standard communication protocols such as FC, Serial Attached SCSI (SAS), Serial Advanced Technology Attachment (SATA), and can communicate data and commands with the media 150.
  • FC Serial Attached SCSI
  • SAS Serial Attached SCSI
  • SATA Serial Advanced Technology Attachment
  • each device included in the computer system may be referred to as a “physical resource”.
  • the type of each device such as the memory 142 or the processor may be referred to as a “resource type”.
  • Each server 2501 generates a plurality of virtual resources (virtual processor, virtual memory, virtual port, etc.) by logically dividing one physical resource (processing capacity) using so-called virtual computer technology. Can do. Specifically, for example, one physical resource is logically divided by assigning the processing capacity of the physical resource to a plurality of virtual resources in a time division manner.
  • the maximum processing capacity is defined for each physical resource.
  • the maximum processing capacity of each physical resource may be referred to as “limit resource amount”.
  • the physical resource is consumed, for example, by executing an input / output (I / O) process based on a read or write command from the host 100 by a host I / O program 401 described later.
  • I / O input / output
  • configurations having different limit resource amounts are allowed even for the same resource type.
  • FIG. 2 is a diagram illustrating allocation of physical resources to virtual resources.
  • the virtual storage 200 is configured with physical resources (for example, processor 141, memory 142, ports 160, 2501, 161, 162, etc.) in the server 2501 or physical resources (for example, media 150) connected to the server 2501. It is a logical storage device, and a plurality of virtual storages 200 can be generated from one storage device.
  • each physical resource may be referred to as a physical processor 141, a physical memory 142, a physical medium 150, and a physical port.
  • the resource amount of each virtual resource may be referred to as a virtual resource amount
  • the resource amount of each physical resource may be referred to as a physical resource amount.
  • the virtual storage 200 includes “virtual resources” such as a virtual processor 201, a virtual memory 202, a virtual medium 203, and a virtual port 204.
  • Each virtual resource corresponds to a physical processor 141, a physical memory 142, a physical medium 150, and a physical port.
  • Virtual resources and physical resources have an N: M correspondence.
  • some or all of the physical resource amounts possessed by the plurality of processors 141 can be combined and assigned to one virtual processor 201.
  • the physical resource amount of one processor 141 can be allocated to a plurality of virtual processors.
  • FIG. 3 is a diagram for explaining the correspondence between physical volumes and virtual volumes.
  • the physical volume 301 is a logical volume that the computer system has.
  • the server 2501 generates one or more physical volumes 301 based on one or more physical media 150.
  • the virtual volume 300 is a virtual logical volume that the virtual storage 200 has.
  • the physical processor 141 generates the virtual volume 300 by executing the resource allocation program 400.
  • the server 2501 associates the physical volume 301 with the virtual volume.
  • the virtual storage 200 includes a plurality of virtual volumes 300 . This is for explaining the performance management technique when a plurality of virtual volumes 300 belong to one virtual storage 200 in the present embodiment, and one virtual volume 300 does not belong to one virtual storage 200. This is not a limitation.
  • the correspondence relationship between the virtual volume and the physical volume is 1: 1 and the volume size is the same is described.
  • the correspondence relationship between both volumes is not limited to 1: 1, and may be 1: N, N: 1, or N: M.
  • two physical volumes 301 having a half volume size may be associated with one virtual volume 300 having an arbitrary volume size.
  • FIG. 4 is a diagram illustrating an example of a storage control program and a storage control table stored in the memory 142.
  • the storage control program includes, for example, a resource allocation program 400, a host I / O program 401, a storage function application program 40O program 401, a storage function application program 402, a virtual resource amount learning program 403, a virtual resource amount relearning program 404, and a work A load determination program 405 is included. Details of each program will be described later.
  • the storage control table includes, for example, a virtual storage setting management table 410, a virtual storage configuration management table 411, a virtual volume configuration management table 412, a physical volume configuration management table 413, a virtual volume monitor table 414, a physical resource amount management table 415, and a virtual resource.
  • An amount management table 416, a storage function state management table 417, a default resource amount table 418, a virtual resource amount learning table 419, and a workload characteristic management table 420 are included.
  • the virtual storage setting management table 410 is a table for managing configuration information of the virtual storage 200. Details of the tables 411-419 will be described later.
  • the management server 110 may also have storage control tables 410-420.
  • the storage control tables 410-420 can be synchronized between the management server 110 and the server 2501.
  • the system management software on the management server 110 includes the functions 400, 402, 403, and 404 of the storage control program. Thereby, the functions of the programs 400, 402, 403, and 404 among the storage control programs can be operated on the management server 110.
  • the server 2501 controls the operation of the physical storage by referring to the storage control table and executing the storage control program.
  • FIG. 5 is an example of the virtual storage configuration management table 411.
  • the virtual storage configuration management table 411 is a table for managing configuration information of virtual resources for each virtual storage 200.
  • the virtual storage configuration management table 411 includes, for example, a virtual storage identifier (VS #) 501, a virtual storage virtual port configuration 502, a virtual storage virtual processor configuration 503, and a virtual storage configuration for each virtual storage 200. It includes columns for virtual memory configuration 504 and virtual storage virtual media configuration 505.
  • the virtual resource amount of the virtual port 204 is set. This virtual resource amount is indicated by, for example, the port performance (Gbps) and the number of ports (number) of one or more physical ports constituting the virtual port 204.
  • the virtual resource amount of the virtual processor 201 is set. This virtual resource amount is indicated by, for example, the processor performance (GHz) and the number of processors (pieces) of one or more physical processors 141 constituting the virtual processor 201.
  • the virtual resource amount of the virtual memory 202 is set.
  • This virtual resource amount is indicated by, for example, a memory amount (Byte) of one or more physical memories 142 constituting the virtual memory 202.
  • the virtual resource amount of the virtual media 203 is set.
  • the virtual resource amount of the media is indicated by, for example, the media type (SSD 151 or HDD 152) and the number of media (pieces) of one or more physical media 150 constituting the virtual media 203.
  • the physical resource amount of the physical medium 150 that is the basis of the virtual resource amount of the virtual medium 203 differs for each media type.
  • the physical resource amount per unit for each media type may be determined in advance in the system, such as 100 IOPS for HDD and 10000 IOPS for SSD. Naturally, media 150 of different media types with different physical resource amounts may be added.
  • the total virtual resource amount of the virtual port is 8 Gbps
  • the total virtual resource amount of the virtual processor is 2.3 GHz
  • the virtual resource amount of the virtual memory Is 200 GB in total
  • the virtual resource amount of the virtual media is 30000 IOPS in total.
  • the virtual storage configuration management table 411 is an example. For each virtual resource amount, a general unit indicating a physical resource amount related to processing performance can be used. Further, this table 411 can further include columns of other virtual resources of the virtual storage 200.
  • FIG. 6 is an example of the virtual volume configuration management table 412.
  • the virtual volume configuration management table 412 is a table showing the correspondence between the virtual volume 300 and the physical volume 301.
  • the virtual volume configuration management table 412 includes, for example, a virtual volume number (VVOL #) 601 that is an identifier of a virtual volume, a volume size 602 of the virtual volume, and a physical volume number of a physical volume associated with the virtual volume for each virtual volume. 603, a virtual volume label 604, a virtual storage number 605, a virtual volume learning virtual storage number 606, and a learning function application necessity 607 column.
  • VVOL # virtual volume number
  • the workload characteristics of the virtual volume are set.
  • the workload characteristics are set by a user or measured by the workload determination program 405, for example. Details of the workload determination program 405 will be described later.
  • VVOL # 000 has the workload characteristics of the first online transaction processing (OLTP) system.
  • OLTP online transaction processing
  • the first OLTP system has a workload characteristic that, for example, I / O to the virtual volume is a random access with a relatively small amount of data.
  • DWH is set in the label 604 of VVOL # 002. This indicates that VVOL # 002 has data warehouse (DWH) workload characteristics.
  • the DWH system has a workload characteristic that, for example, the I / O to the virtual volume is a sequential access with a relatively large amount of data.
  • N / A is set in the label 604 of VVOL # 001.
  • N / A is set in each column 601-606 of VVOL # 001. This indicates that no physical volume is associated with VVOL # 001.
  • the virtual storage number is an identifier of the virtual storage to which the virtual volume normally belongs.
  • the learning virtual storage number is a value used in the storage function application program 402, and is an identifier of a virtual storage that temporarily isolates the virtual volume when the learning function is applied.
  • the virtual storage number being learned is set. Note that “-” is set in the column 606 before and after learning.
  • the learning function application necessity is a value used in the storage function application program 402 and is a value indicating whether or not the virtual volume applies the learning function.
  • the virtual volume learning function is applied by the virtual resource amount learning program 403. Details of the storage function application program 402 and the virtual resource amount learning program 403 will be described later. The learning function and learning will be described later.
  • VVOL # 000 and # 002 belong to the virtual storage # 000.
  • the learning function is applied to both VVOL # 000 and # 002.
  • VVOL # 002 indicates that learning is in progress and the affiliation has been changed to virtual storage # 100.
  • the association with the physical volume # 002 is changed from VVOL # 002 in the virtual storage # 000 to VVOL # 002 in the virtual storage # 100.
  • each resource (columns 703-706) in charge of physical volume # 002 is virtual storage # 100. Will be assigned.
  • each resource (columns 703-706) in charge of the physical volume # 002 is reassigned to the virtual storage # 000.
  • the server 2501 uses the virtual storage set in the virtual storage number 605 as the access destination. However, when a number is set in the learning virtual storage number 606, the server 2501 sets the virtual storage set in the learning virtual storage number 606 as the access destination.
  • FIG. 7 shows an example of the physical volume configuration management table 413.
  • the physical volume configuration management table 413 is a table for managing information of physical resources that are in charge of processing (hereinafter referred to as assigned resources) for each physical volume 301.
  • the physical volume configuration management table 413 includes, for each physical volume, a physical volume number 701 that is an identifier of the physical volume, a volume size 702 of the physical volume, an assigned port number 703 that indicates an identifier of a port in charge of the physical volume, and a physical volume.
  • the unique identifier for each media type such as “HDD100” or “SSD100” is shown as the assigned media number 706, the identifier may be any as long as the storage medium can be specified.
  • N / A is stored in the volume size 702, it indicates that the physical volume is not defined.
  • FIG. 8 is an example of the virtual volume monitor table 414.
  • the virtual volume monitor table 414 is a table for managing monitor information for each virtual volume 300.
  • the virtual volume monitor table 414 indicates, for each virtual volume 300, a virtual volume number (VVOL #) 801 that is an identifier of the virtual volume, a throughput performance 802 that indicates the throughput performance of the virtual volume, and a response performance of the virtual volume.
  • the column includes a response performance 803, a read rate 804 indicating the read rate of the virtual volume, a sequential rate 805 indicating the sequential rate of the virtual volume, and a hit rate 806 indicating the hit rate of the virtual volume.
  • the monitor information may include an I / O size (I / O size) for the virtual volume. Note that the throughput performance, response performance, read rate, sequential rate, hit rate, and I / O size are self-explanatory and will not be described.
  • the values in the columns 802 to 806 are measured by the host I / O program 401 and updated. Although details of how to update these values are not described in this specification, they can be updated using a general monitoring technique. For example, the update of the throughput performance can be realized by a process of sequentially counting the number of I / O received by the host and totaling it every second.
  • FIG. 9 is an example of the workload characteristic management table 420.
  • the workload characteristic management table 420 is a table for managing characteristic information for each workload characteristic, for example.
  • the workload characteristic management table 420 includes, for each workload characteristic, a label 901 that is an identifier of the workload characteristic, a read rate 902, a sequential rate 903, an I / O size 904, and Hit as each characteristic information of the workload characteristic.
  • a column with a rate of 905 is included.
  • a response performance column for a virtual volume may be included.
  • Columns 902 to 905 include standard values (standard values) of characteristic information when a virtual volume having the workload characteristic is measured.
  • the standard value of a virtual volume with the workload characteristic “OLTP1” has a read rate of 10%, a sequential rate of 0%, an IO size of 8 KB, and a hit rate of 0%.
  • FIG. 10 shows an example of the physical resource amount management table 415.
  • the physical resource amount management table 415 is a table for managing the amount of physical resources (physical resource amount) of the physical storage.
  • the physical resource amount management table 415 includes, for example, a physical resource resource type 1001, a physical resource resource number 1002, a physical resource limit resource amount 1003, a physical resource resource allocation rate 1004, and a physical resource usage rate 1005 for each physical resource. , And a physical resource usage rate threshold 1006 column.
  • the type of the physical resource is set.
  • the type is, for example, a physical port, a physical processor, a physical memory, a physical medium, or the like.
  • an identifier of the physical resource is set.
  • the physical resource can be uniquely specified by the values set in the resource type 1001 and the resource number 1002.
  • the maximum processing capacity of the physical resource is set.
  • the ratio of the physical resource amount occupied by any virtual resource in the limit resource amount is set.
  • the physical resource usage rate 1005 a ratio of the physical resource amount used by any virtual resource in the limit resource amount is set.
  • the resource allocation rate and physical resource usage rate are values based on the processing performance of physical resources. In this specification, for convenience, a value obtained by subtracting the resource allocation rate 1004 from 100% is also expressed as a surplus resource rate.
  • the limit resource amount is 4 Gbps
  • the resource allocation rate is 10%
  • the physical resource usage rate is 1%.
  • 400 Mbps is occupied by the virtual port of any virtual storage 200
  • 40 Mbps is used by the virtual port.
  • the limit resource amount is 2 GHz
  • the resource allocation rate is 50%
  • the physical resource usage rate is 40%.
  • 1 GHz or 500 ms per second
  • any virtual processor of the virtual storage 200 of which 0.8 GHz (or 400 ms per second). Indicates that the virtual processor is using.
  • the limit resource amount is 100 MB
  • the resource allocation rate is 30%
  • the physical resource usage rate is 20%.
  • 30 MB of the limit resource amount 100 MB of the physical memory # 000 is occupied by the virtual memory of any one of the virtual storages 200, of which 20 MB is used by the virtual memory.
  • the capacity used for the virtual storage 200 may indicate a cache capacity referred to as a read cache per unit time.
  • the limit resource amount is 100 IOPS
  • the resource allocation rate is 60%
  • the physical resource usage rate is 50%.
  • the physical media # HDD002 indicates that 60 IOPS of the limit resource amount 100 IOPS is occupied by any virtual storage 200, and 50 IOPSMB is used for the virtual media.
  • each value is a value indicating the amount of resources targeted for the processing performance of each physical resource, it can be calculated by different calculation formulas or different units.
  • a threshold for determining that the physical resource is in a resource tight state is set.
  • the server 2501 operates the resource tightness improvement program regularly or irregularly. For example, this program refers to the threshold 1006 and determines that the physical resource is in a resource tight state when the physical resource usage rate exceeds the threshold 1006. Physical resources that are in a resource tight state can hinder the virtual storage 200 from achieving the target performance.
  • the resource tightness improvement program can improve the tightness of each physical resource.
  • FIG. 11 shows an example of the virtual resource amount management table 416.
  • the virtual resource amount management table 416 is a table for managing the allocation amount of physical resources of the virtual resources that the virtual storage 200 has.
  • the virtual resource amount management table 416 includes, for example, a virtual storage number (VS #) 1101 indicating a virtual storage identifier, a resource type 1102 indicating the type of a virtual resource belonging to the virtual storage, and an identifier of a physical resource allocated to the virtual resource.
  • Resource number 1103 indicating resource occupancy rate 1104 indicating the occupancy rate of the virtual resource allocated to the physical resource
  • shared resource occupancy rate 1105 indicating the proportion of the physical resource not allocated to the virtual resource
  • virtual of the physical resource It has columns for a resource usage rate 1106 and a storage function usage rate 1107.
  • the ratio of the virtual resources allocated (occupied) is set out of the limit resource amount of the physical resource.
  • the virtual processor included in VS # 000 occupies 50% of the limit resource amount of physical processor # 000 and 20% of the limit resource amount of processor # 001.
  • a ratio of virtual resources used by the virtual storage for the storage function among the virtual resources used by the virtual storage is set.
  • FIG. 12 is an example of the resource allocation program 400.
  • the server 2501 executes the resource allocation program 400 when receiving a virtual storage setting request from the management server 110.
  • This program 400 is a program for determining how much resource amount a virtual resource of a virtual storage is allocated to which physical resource of the physical storage.
  • the program 400 receives a virtual storage setting request (S1201).
  • This request includes, for example, the virtual storage number of the target virtual storage, the virtual volume number of the virtual volume belonging to the target virtual storage, the size, the target performance, and the configuration information of the virtual resources of the target virtual storage (virtual storage Each value of the configuration management table 411) and the like are included.
  • the virtual storage setting request may include the workload characteristics and learning policy of each virtual volume. These policies will be described later.
  • the program 400 sets an initial value of a virtual resource usage rate (hereinafter referred to as a target resource usage rate) targeted by the target virtual storage (S1202).
  • a target resource usage rate a virtual resource usage rate targeted by the target virtual storage
  • the target resource usage rate is a value used by the resource reallocation program 402, and is a value that controls the reserve amount of the virtual resource amount necessary to achieve the target performance. For example, if the target resource usage rate is set to 10%, the virtual storage can occupy 10 times the amount of virtual resources that the server 2501 has estimated to be necessary to achieve the target performance, and is set to 90%. Compared to the case, it is possible to reduce the risk of not achieving the target performance due to the change in the workload.
  • the target resource usage rate can be specified by the management server, but in this embodiment, an example in which the server 2501 automatically adjusts is shown.
  • the initial value is set to 20%, and an operation for securing a physical occupation amount five times the virtual resource amount set by the management server is illustrated. Thereafter, the target resource usage rate is raised in consideration of the virtual resource usage rate by the resource reallocation program 402, and is finally determined when the required minimum virtual resource amount is reached.
  • the program 400 executes a virtual volume creation program (S1203). Thereby, the creation of one virtual volume belonging to the virtual storage and the allocation of the virtual resource amount are executed. Details of the virtual volume creation program will be described later.
  • the program 400 determines whether or not the virtual volume has been successfully created (S1204). When the creation fails (S1204; No), the program 400 and the contents changed by the execution of the program 400 are rolled back (S1207), and the management server 110 is notified of the setting failure of the target virtual storage (S1208). The process is terminated.
  • the program 400 determines whether or not creation of all the virtual volumes specified in the virtual storage setting request is completed (S1205).
  • the program 400 If the creation of all virtual volumes has not been completed (S1205; No), the program 400 returns the process to S1203. On the other hand, when the creation of all virtual volumes is completed (S1205; Yes), the program 400 notifies the management server 110 of the successful setting of the target virtual storage (S1206), and the process ends.
  • a virtual storage is set according to the request from the management server 110, and a virtual volume belonging to it is created.
  • FIG. 13 shows an example of a virtual volume creation program.
  • This program 1202 is a part of the resource allocation program 400 and is executed in S1203.
  • This program creates one of the virtual volumes specified in the virtual storage setting request (hereinafter referred to as the target virtual volume in this description) and allocates virtual resources for the target virtual volume.
  • the program refers to the physical resource amount management table 415 and selects one of the resource types 1001 (S1301).
  • S1301 the resource types 1001
  • a case where a processor is selected as the resource type will be described with respect to S1302-1304. Similar steps are performed for other resource types.
  • the program selects the processor 141 having the smallest physical resource usage rate 1005 as the assigned resource (the assigned processor) from all the processors 141 in the physical storage (S1302). In the example of FIG. 10, “processor 001” is selected.
  • the program calculates the resource occupation rate according to the volume size of the target virtual volume (S1303).
  • the resource occupation rate of the target virtual volume is, for example, “(total virtual processor resource amount of the target virtual storage (value of virtual processor configuration 503)) ⁇ (total volume size of virtual volumes belonging to the target virtual storage) ⁇ ( (Volume size of target virtual volume) / (limit resource amount of processor in charge) ”
  • the purpose of S1303 is to determine a reasonable value as the initial value of the resource occupation rate of the target virtual volume. If this is the case, the resource occupancy of the target virtual volume may be calculated by different means. For example, it may be calculated simply by “(total amount of virtual resources specified by the management server) ⁇ (total number of virtual volumes belonging to the target virtual storage) ⁇ (limit resource amount of assigned virtual resource)”.
  • the program determines whether the calculated resource occupancy is less than or equal to the surplus resource ratio of the processor in charge (S1304). When the calculated resource occupancy exceeds the surplus resource rate of the processor in charge (S1304; No), the program responds to the resource allocation program 400 with a failure to create a virtual volume (1310) and ends the processing. To do.
  • the program determines whether the resource occupancy is calculated for all resource types (S1305). ).
  • the program returns to S1301, and selects one resource type for which the resource occupancy rate has not been calculated.
  • the program creates a physical volume (S1306) and associates each assigned resource with the created physical volume. Specifically, the program selects a physical volume that is not defined (for example, physical volume # 001) in the physical volume configuration management table 413, sets the volume size of the target virtual volume in the volume size 702, and calculates Each assigned resource identifier is set in the corresponding column 703-706.
  • the program allocates a virtual resource amount to each resource in charge (S1307). Specifically, the program adds the calculated resource occupancy rate to the resource allocation rate 1004 and resource occupancy rate 1104 of each assigned resource.
  • the program associates the created physical volume with the target virtual volume (S1308). Specifically, the program creates an entry for the target virtual volume in the virtual volume configuration management table 412 and sets the volume size 602, physical volume number 603, and virtual storage head 000 of the created physical volume.
  • the program responds to the resource allocation program that the virtual volume has been successfully created (S1309) and ends the process.
  • the program in response to a virtual storage setting request from the management server 110, it is possible to determine the resource in charge of the virtual volume to belong to the target virtual storage and assign an appropriate amount of virtual resource to each resource in charge.
  • FIG. 14 is an example of the host I / O program 401.
  • the host I / O program 401 is a program that processes a read or write command for the virtual volume 300 issued by the host 100 and received by the server 2501. Note that when the server 2501 receives a command, one arbitrarily selected processor 141 activates the host I / O program 401 corresponding to the command.
  • the program 401 receives a read or write command for the virtual volume from the host 100 (1401).
  • the virtual volume is referred to as a designated virtual volume
  • the command is referred to as a target command.
  • the program 401 refers to the virtual volume configuration management table 412 and the physical volume configuration management table 413, and identifies the resource in charge of the designated virtual volume (S1402).
  • the program 401 determines whether or not processing for the target command is being executed by the processor in charge (S1417). That is, it is determined whether or not the processor executing itself is a responsible processor. If not executed by the responsible processor (S1417; No), that is, the program 401 transfers the target command to the responsible processor in order to re-execute the program 401 by the responsible processor (S1418), and the process is terminated.
  • the program 401 determines whether the responsible port has received the target command (S1403). When a port other than the port in charge receives the target command (S1403; No), the program 401 returns an error to the host 100 (S1416) and ends the process.
  • the program 401 refers to the virtual resource amount management table 416, and the virtual resource usage rate 1106 of all the assigned resources is less than the upper limit of 100%. It is determined whether or not there is (S1404). When the virtual resource usage rate 1106 is 100% (S1404; Yes), the program 401 repeats the sleep for a predetermined time (S1415), and waits for the virtual resource usage rate to become less than 100%.
  • the program 401 analyzes the target command (S1405), and whether the target command is a read command. It is determined whether or not (S1406).
  • the program 401 determines whether target data (read data) based on the target command is stored in the responsible memory (S1419). When the target data is stored in the responsible memory (S1419; Yes), the program 401 transmits the target data on the responsible memory to the host 100 (S1409), updates the monitor information (S1413), and performs the processing. finish.
  • the program 401 reads the target data from the responsible medium (S1407) and stores the target data in the responsible memory (S1408). Next, the program 401 transmits the target data in the assigned memory to the host 100 (S1409), updates the monitor information (S1413), and ends the process.
  • the program 401 stores the target data in the responsible memory (S1410), and transmits a normal response to the host 100 (1411).
  • the program 401 writes the target data to the assigned medium at an arbitrary timing (S1412).
  • the monitor information is updated (S1413), and the process ends.
  • the monitor information includes throughput performance 802, response performance 803, read rate 804, sequential rate 805, hit rate 806, and the like for the specified virtual volume.
  • the monitor information also includes a physical resource usage rate 1005 and a virtual resource usage rate 1106 of each responsible resource used by the program 401.
  • the virtual resource usage rate the value of the virtual storage to which the virtual volume belongs is updated.
  • the host I / O program 401 can identify the resource assigned to the specified virtual volume based on the target command, and whether the virtual resource usage rate of the assigned resource has reached the upper limit (100% in this example). It is possible to determine whether or not the target command is processed only when it has not been reached. Further, when the virtual resource usage rate reaches the upper limit value, the processing of the target command can be quickly executed by allocating the shared resource.
  • the program 401 can acquire monitor information of processing for the target command.
  • the storage function of the physical storage will be described.
  • Examples of storage functions include a volume copy function, a deduplication function, and a compression function.
  • FIG. 15 is a diagram for explaining the volume copy function.
  • FIG. 15A is a diagram showing an overview of the volume copy function.
  • FIG. 15B is a state transition diagram in the volume copy function.
  • the volume copy function is a function for generating a virtual volume that is a copy of a certain virtual volume 300. Specifically, the data in the replication source virtual volume is copied to the replication destination virtual volume (volume copy; 1503).
  • the replication source virtual volume is a primary volume (PVOL) 1501
  • the replication destination virtual volume is a secondary volume (SVOL) 1502.
  • Init 1511 indicates an initial state.
  • the initial state is a state in which the volume copy 1503 between the PVOL 1502 and the SVOL 1502 is not executed.
  • the state transits to the state of Copying 1502 through an operation (create in the figure) for creating an SVOL from Init 1511.
  • Copying 1512 indicates a state in the middle of executing the volume copy 1503 from the PVOL 1501 to the SVOL 1502.
  • Paired 1513 is a state in which the contents of data in PVOL 1501 and SVOL 1502 match. Specifically, for example, a state immediately after the volume copy 1503 is completed, or a state in which write data is written in the PVOL 1501 and reflected in the SVOL 1502 after the volume copy 1503 is completed.
  • Suspended 1514 is in a state where the contents of the data in PVOL 1501 and SVOL 1502 do not match. Specifically, for example, the write data based on the write command is written only in the PVOL 1501 and is not reflected in the SVOL 1502. In this case, for example, a data difference portion between the PVOL 1501 and the SVOL 1502 is recorded.
  • an operation to temporarily suspend Paired 1513 is performed by writing to PVOL (Suspend in the figure)
  • the state transits to the state of Suspended 1514.
  • a resynchronization operation is performed from Suspended 1514 (Resync in the figure)
  • the state transits to Copying 1512.
  • Restoring 1515 is a state in which a data difference portion between the PVOL 1501 and the SVOL 1502 is reflected in the SVOL 1502.
  • the state transits to the Restoring state.
  • the reflection is completed, the state transits to the Paired 1513 state.
  • the amount of virtual resources required by PVOL 1501 and SVOL 1502 differs depending on each state. For example, when the status is Copying 1512, the SVOL 1502 requires a larger amount of virtual resources than when the status is Suspended 1514. That is, it is necessary to perform control for adding an appropriate amount of virtual resources to the SVOL 1502 when the state transition is made from the Suspended 1514 to the Copying 1511, that is, when the Resync operation is performed.
  • FIG. 16 is a diagram for explaining the deduplication function and the compression function.
  • FIG. 16A is a diagram illustrating an overview of the deduplication function and the compression function.
  • FIG. 16B is a state transition diagram in the deduplication function and the compression function.
  • FIG. 16A When there are areas 1601 where the same data is stored in a plurality of virtual volumes 300, the data in these areas 1601 overlap.
  • the deduplication function is a function for associating each of these areas (hereinafter referred to as duplication areas) 1601 with one physical area 1602 (duplication elimination 1610).
  • the deduplication function is a function that improves the capacity efficiency of the physical volume 301 by storing data in a plurality of overlapping areas 1601 together in one physical area 1602.
  • the overlapping area 1601 may be set in units of the virtual volume 300, or may be set in units of areas (for example, pages) smaller than the virtual volume 300.
  • the compression function is a function of improving capacity efficiency by compressing 1611 the data in the virtual area 1603 and storing it in the corresponding physical area storage 1604. It is possible to apply the function of compression 1611 together with deduplication 1610 to virtual areas 1601 in a plurality of virtual volumes 300 in which the same data is stored.
  • the compression function when the compression function is applied, it is necessary to perform a compression operation or an operation for releasing the compression (expansion / contraction operation) on the virtual area 1603 of the virtual volume 300, and the virtual volume compared to the case where the compression function is not applied 300 requires more virtual resources. That is, it is necessary to perform control for adding an appropriate virtual resource amount to the virtual volume 300 when the compression operation is executed.
  • Init 1605 indicates an initial state.
  • the initial state is a state where deduplication 1610 or compression 1604 is not executed.
  • Deduplicating (Compressing) 1606 is a state in which an operation (Deduplicate (Compress)) of deduplication 1610 (compression 1611) is being executed.
  • Dedicated (Compressed) 1608 is a state in which the process of deduplication 1610 (compression 1611) is completed.
  • Duplicating (De-Compressing) 1606 is a state in which an operation (Duplicate (De-Compress)) for releasing deduplication 1610 (compression 1611) is being executed.
  • FIG. 17 is an example of the storage function status management table 417.
  • the storage function status management table 417 is a table for managing storage functions for each virtual volume 300.
  • the storage function status management table 417 includes, for example, columns of a virtual volume virtual volume number (VVOL #) 1701, a virtual volume function type 1702, and a virtual volume status 1703 for each virtual volume.
  • VVOL # virtual volume virtual volume number
  • the type of storage function applied to the virtual volume is set. Specifically, for example, “volume copy ()”, “deduplication”, “compression”, and the like are set in the function type column 1702 as storage functions.
  • volume copy the parenthesis indicates whether the virtual volume is a replication source (PVOL) or a replication destination (SVOL).
  • the current status of the storage function of the virtual volume is set.
  • the status 1703 is set with the ratio of the overlapping area 1601 to the entire area of the virtual volume 300.
  • the state 1703 is set to either compressed or uncompressed as the compression state of the virtual volume.
  • FIG. 18 is an example of the default resource amount table 418.
  • the default resource amount table 418 is a table for managing the correction rate of the virtual resource amount of the virtual volume 300 when an operation is performed for each function type of the storage function.
  • the default resource amount table 418 includes, for example, a function type column 1801 indicating the type of storage function for each storage function, an operation 1802 for transitioning to each state of the storage function, and correction of the resource amount of the port when the operation is performed.
  • Port correction rate 1803 indicating the rate
  • processor 1804 indicating the rate of correction of the resource amount of the processor when the operation is performed
  • memory correction rate 1805 indicating the rate of correction of the resource amount of the memory when the operation is performed
  • operation Includes a column of media correction rate 1806 indicating the correction rate of the amount of resource of the media when performing.
  • the port correction rate 1803, the processor correction rate 1804, the memory correction rate 1805, and the media correction rate 1806 indicate the virtual resource amount when each operation is performed on the virtual resource amount of each virtual resource initially allocated to the virtual volume. A rate of increase may be set.
  • FIG. 19 is an example of the virtual resource amount learning table 419.
  • the virtual resource amount learning table 419 is a table for managing the learning result of the virtual volume for each workload when each operation of the storage function is performed.
  • the virtual resource amount learning table 419 includes, for example, a workload 1901 indicating the workload characteristics, a function type 1902 indicating the storage function type, and a storage function status for each operation in the workload characteristics of the virtual volume.
  • the column includes an operation 1903 indicating an operation, a learning state 1904, a learning result 1905, collected data 1906, and a learning count 1907.
  • learning refers to isolating a virtual volume to be learned into a learning virtual storage and monitoring the rate of increase in the amount of virtual resources allocated to the learning virtual storage.
  • the monitored data is calculated as collected data for each workload characteristic of the virtual volume, the function type of the storage function applied to the virtual volume, and each operation.
  • the collection data is calculated by executing the virtual resource amount learning program.
  • the workload 1901 in this figure corresponds to the label 901 in FIG.
  • the function type 1902 and the operation 1903 in this figure correspond to the function type 1801 and the operation 1802 in FIG.
  • the learning state 1904 an identifier for identifying whether or not the entry is valid is set.
  • the learning state 1904 is set with a plurality of learning states in the target workload characteristics, function types, and operations. Each learning state is, for example, “not learned”, “learning”, or “learning complete”.
  • “Unlearned” is a state where measurement has not yet started and collected data has not been acquired. “Learning” indicates that the measurement is started and the collected data is being acquired, but the required number of collected data has not yet been acquired and the learning result cannot be used. “Learning complete” indicates that the necessary number of collected data has been acquired and the learning result can be used.
  • the learning result 1905 stores the learning result.
  • the collected data 1906 stores the acquired collected data.
  • the learning count 1907 stores the number of acquired collected data.
  • the learning result and the collected data are, for example, the rate of increase of the resource amount for each virtual resource (virtual resource amount increase rate) as shown in the lower diagram of FIG.
  • the collection data of each virtual resource is collected in a preset number (specified number of times).
  • the learning result is an average value of the collected data of the specified number of times. That is, a value obtained by dividing the collected data of each virtual resource by the number of learnings is a learning result of each virtual resource.
  • CCC is an average value of data collected twice (CC1 and CC2) for each virtual resource.
  • the virtual resource amount learning table 419 can store learning results according to workload characteristics, storage function function types, and operations. In the virtual resource amount learning program 403 described below, appropriate learning of each virtual volume can be performed. You can refer to the results.
  • workload characteristics and learning policies are set for the virtual volume.
  • This policy is set for the virtual volume to which the storage function is applied.
  • the policy may be set when creating a virtual storage and a virtual volume, or may be set at any timing.
  • Policy setting is performed by a user computer connected to the management server 110 or the server 2501. Then, the server 2501 receives the policy setting from the user computer and sets it in the label 901 and the learning function application necessity 607 of the virtual volume configuration management table 412.
  • the management server 110 may receive a policy setting from the user computer and set the virtual resource amount learning table 419. As described above, the virtual resource amount learning table 419 is synchronized between the server 2501 and the management server 110.
  • FIG. 20 shows an example of the setting screen 2301 displayed on the user computer.
  • the user selects the virtual volume number of the virtual volume to which the storage function is applied on the setting screen 2301. Further, the user sets the workload characteristics and learning policy of the selected virtual volume according to the workload characteristics policy 2302.
  • the policy of the workload characteristic depends on, for example, selection of whether the user inputs or automatically identifies.
  • the learning policy specifies whether or not the specified virtual volume requires learning.
  • Either “label designation” or “automatic identification” can be selected as the workload characteristic policy 2302.
  • learning policy 2302 either “learning required” or “learning unnecessary” can be selected.
  • the virtual volume # 003 is selected, and the label designation “OLTP1” and “learning required” are set.
  • the requesting computer transmits the selection to the server 2501.
  • the server 2501 executes the workload determination program 405 to determine the workload characteristics of the selected virtual volume. Then, the server 2501 recognizes virtual volume groups with the same label as having the same workload characteristics.
  • the policy 2303 is “no learning required”, the server 2501 does not apply the learning function to the virtual volume in the storage function application program 402.
  • FIG. 21 shows an example of processing executed by the workload determination program 405.
  • the subject of this processing is the server 2501 (workload determination program 405), but is not limited thereto.
  • the subject of this processing may be the management server 110 (system management software).
  • the workload determination program 405 is executed when the server 2501 receives “automatic identification” as the workload characteristic policy 2302 of the selected virtual volume.
  • the selected virtual volume is referred to as a target virtual volume.
  • the program 405 refers to the virtual volume monitor table 414 and acquires monitor information 802-806 of the target virtual volume (S2401).
  • the program 405 classifies the workload characteristics of the target virtual volume based on the acquired monitor information 802-806 (S2402). Specifically, the program 405 calculates the similarity of the workload characteristics by calculating the similarity between the acquired monitor information 802-806 and each parameter 902-905 of each workload set in the virtual volume monitor table 414. Perform classification. For example, the least square method is used for calculating the similarity. In this classification, the difference between the collected monitor information 802 to 806 and the workload characteristic parameters 902 to 905 is calculated, and the workload characteristic with the smallest difference is regarded as the workload characteristic of the target virtual volume.
  • the program 405 sets the determined workload characteristics in the label 604 of the virtual storage configuration management table 412 (S2403).
  • the server 2501 can grasp the workload characteristics of each virtual volume belonging to the virtual storage. By grasping the workload characteristics of each virtual volume, a learning result for each workload characteristic when the storage function is applied to the virtual volume can be acquired.
  • FIG. 22 is an example of a flowchart of processing executed by the storage function application program 402.
  • the server 2501 executes the program 402 when it receives a storage function application request from the requesting computer.
  • the requesting computer designates the virtual volume to be requested, the type and operation of the storage function for the virtual volume, and transmits a storage function application request for requesting the operation to the server 2501.
  • This request indicates one operation of one function type of the storage function and the virtual volume number of the virtual volume that is the target of the operation.
  • the virtual volume to be requested is a target virtual volume
  • the virtual storage to which the target virtual volume currently belongs is the target virtual storage.
  • the request source computer may be a user computer or the management server 110 connected to the network 131 or 130.
  • the program 402 receives a storage function application request (S2001).
  • the program 402 refers to the virtual volume configuration management table 412 and determines whether or not the learning function needs to be applied to the target virtual volume (S2011).
  • the program 402 When learning of the target virtual volume is unnecessary (S2011; unnecessary), the program 402 applies the storage function specified for the target virtual volume (S2009), responds the completion of application to the requesting computer (S2010), and performs processing. Exit.
  • the server 2501 performs the operation of the applied storage function on the target volume asynchronously with the program 402 (asynchronous processing).
  • the program 402 determines the virtual resource amount of the target virtual storage when the function type and operation of the storage function included in the request are performed on the target virtual volume. It is determined whether estimation is possible (S2002). Specifically, the program 402 refers to the label 604 of the virtual volume configuration management table 412 and acquires the workload characteristics of the target virtual volume. Next, the program 402 refers to the virtual resource amount learning table 419 and determines whether the learning of the function type and operation of the storage function included in the request has been completed for the workload characteristics of the target virtual volume. In other words, this determination is a determination as to whether to create a learning virtual storage device.
  • the learning of the function type and operation of the storage function corresponding to the workload characteristics of the target virtual volume is completed. That is, in the virtual resource amount learning table 419, “learning complete” is set in the learning state 1904 corresponding to the combination of the acquired workload characteristic and the requested operation, and the learning result (virtual resource amount increase rate) is set. It is a memorized state. In this case, since the program 402 does not need to generate a learning virtual storage device, the program 402 acquires the virtual resource amount of the target virtual storage according to the learning result 1905 (S2007).
  • the program 402 increases the virtual resource amount increase rate of each virtual resource corresponding to the learning result 1905 and the configuration (virtual resource amount) 502-505 of each virtual resource of the target virtual storage in the virtual storage configuration management table 411. And get.
  • the program 402 multiplies the virtual resource amount of each virtual resource by the virtual resource increase rate to calculate the increase virtual resource amount.
  • the program 402 adds the virtual resource amount corresponding to the increase in the virtual resource amount of each virtual resource to each virtual resource of the target virtual storage (S2008). Note that the procedure for adding the increased virtual resource amount to each virtual resource of the target virtual storage is the same as the procedure shown in the virtual volume creation program, and therefore the details are omitted.
  • the program 402 executes the virtual resource configuration columns 502-505 of the virtual storage configuration management table 411, the resource allocation rate 1004 of the physical resource amount management table 415, and the resource occupation rate 1104 of the virtual resource amount management table 416. And the process proceeds to S2009.
  • the program 402 applies the storage function specified for the target virtual volume (S2009), responds to the requesting computer to the completion of application (S2010), and ends the processing.
  • the virtual resources of the target virtual storage are expanded by allocating the virtual resources of the virtual resources required for the requested operation to the target virtual storage.
  • the program 402 needs to generate a virtual storage for learning in order to learn the target virtual volume. Accordingly, the program 402 acquires the virtual resource amount of each virtual resource necessary for the learning virtual storage to which the target virtual volume belongs when learning (S2003). In this description, the virtual resource amount of each virtual resource in the learning virtual storage is referred to as a learning virtual resource amount.
  • the learning virtual resource amount includes a virtual resource amount (volume resource amount; V) of each virtual resource used by the target virtual volume, and a correction rate 1803 of the virtual resource amount of each virtual resource by executing the requested operation. Use the amount multiplied by -1806.
  • the learning virtual resource amount may be equal to the volume resource amount V.
  • the volume resource amount (V) is a value obtained by multiplying the resource usage P of the target virtual storage by the resource usage rate M of the target virtual volume.
  • the resource usage P is stored in the corresponding physical resource limit resource amount 1003 (physical resource amount management table 415), the virtual resource resource occupation rate 1104 and the virtual resource usage rate 1106 for the physical resource. This is a value obtained by multiplying (virtual resource amount management table 416).
  • the resource utilization rate M is the ratio of the throughput performance of the target virtual volume to the total value of the throughput performance of all virtual volumes belonging to the target virtual storage in the virtual volume monitor table 414.
  • the resource amount corresponding to the throughput performance of the target virtual volume can be estimated from the resource usage amount P of the target virtual storage. Further, the correction value of the virtual resource amount by execution of each operation can be estimated from the learning virtual resource amount with respect to the volume resource amount (V) which is the virtual resource amount when the operation is not applied.
  • the program 402 allocates a physical resource of the acquired learning virtual resource amount to each virtual resource, and newly creates a learning virtual storage (S2004). Creation of the learning virtual storage is basically the same as the resource allocation program 400 described above except that the virtual volume creation program 1203 is not performed.
  • each assigned resource of the physical volume corresponding to the target virtual volume of the learning virtual resource amount is allocated (the virtual volume configuration management table 412 and the physical volume configuration management table 413 are reference).
  • the allocation amount of each responsible resource to each virtual resource is changed according to the learning virtual resource amount. If the resource amount of the assigned resource is insufficient, the assigned resource of the virtual resource is added.
  • the assigned resource to be added may be a physical resource having the smallest physical resource usage rate among the physical resources in the computer system.
  • the program 402 changes the affiliation of the target virtual volume from the target virtual storage to the learning virtual storage (S2005). Next, the program 402 reduces the virtual resource amount of the target virtual storage (S2006), and advances the process to S2009. As a result, only the target virtual volume belongs to the learning virtual storage. Of the virtual resources allocated to the target virtual storage, the resource in charge of the target virtual volume is allocated to the learning virtual storage, so that the virtual resource amount of the target virtual storage is reduced.
  • the program 402 uses the virtual storage number of the target virtual storage as it is in the virtual storage number 605 of the virtual volume configuration management table 412. In the set state, the virtual storage number of the learning virtual storage is newly set in the learning virtual storage number 606. Next, the program 402 changes the learning state 1904 of the target workload characteristic to “under learning” for the virtual resource amount learning table 419.
  • the program 402 applies the storage function specified in the request to the target virtual volume (S2009), notifies the requesting computer of the application completion (S2010), and ends the processing.
  • the server 2501 performs the operation of the applied storage function on the target volume asynchronously with the program 402 (asynchronous processing).
  • the target volume In response to the storage function application request, it can be determined whether or not the target volume has been learned.
  • the virtual resource amount of the target virtual storage corresponding to the function type and operation of the storage function can be added based on the learning result.
  • An appropriate amount of virtual resources can be added without stopping the target virtual storage. Thereby, when the storage function is applied to the target virtual volume, the influence on other virtual volumes belonging to the target virtual storage can be reduced.
  • the affiliation of the target virtual volume is changed to the newly created virtual storage for learning.
  • learning can be performed when the operation included in the request is executed, and the increase in the virtual resource amount of the target virtual volume when the operation included in the request is executed is accurately estimated by learning. be able to.
  • the amount of virtual resources allocated to the target virtual storage is reduced. As a result, an appropriate virtual resource amount is allocated to both the target virtual storage and the learning virtual storage.
  • the subject of this processing is the server 2501 (storage function application program 402), but is not limited thereto.
  • the subject of this processing may be the management server 110 (system management software).
  • the subject of each step relating to the above description can be replaced with the management server 110.
  • the following steps are different from the above description.
  • the management server 110 When the management server 110 is the main body, for example, instead of S2004-S2005, the management server 110 creates a learning virtual storage that specifies the learning virtual resource amount acquired in S2003, and changes the affiliation of the target virtual volume.
  • the included instruction is transmitted to the server 2501.
  • the server 2501 creates a learning virtual storage based on the instruction, and allocates each virtual resource of the learning virtual resource amount.
  • the server 2501 changes the affiliation of the target virtual volume from the target virtual storage to the learning virtual storage, and reduces the target virtual storage.
  • the management server 110 transmits the acquired virtual resource amount and the target virtual storage expansion instruction to the server 2501.
  • the server 2501 adds each virtual resource of the virtual resource amount to the target virtual storage.
  • the management server 110 transmits a storage function application instruction for the target virtual volume to the controller.
  • the management server 110 transmits a response to the storage function application request to the requesting computer, and ends the process.
  • the server 2501 applies the storage function based on the instruction to the target virtual volume. Note that the management server 110 may collectively issue the instructions in S2004 to S2005 without performing each step.
  • FIG. 23 is an example of a flowchart of processing executed by the virtual resource amount learning program 403.
  • This program 403 is a program executed when it is determined that “estimation is impossible” in step 2002 of the storage function application program 402.
  • This program 403 is executed when a storage function operation (and learning about the operation) executed asynchronously with the storage function application program is completed, or when a specified time elapses after the execution of the operation starts. Program.
  • the program 403 refers to the virtual volume monitor table 414 and calculates the collection data of the target virtual volume from the monitoring information of the learning virtual storage (S2101).
  • the monitor information here is the virtual resource usage rate 1106 and the storage function usage rate 1107 of the learning virtual storage in the virtual resource amount management table 416.
  • the program 403 acquires monitor information and calculates a value obtained by multiplying these values as collected data.
  • the program 403 sets the virtual resource amount increase rate as the collected data in the column of each virtual resource in the entry corresponding to the workload (characteristic) 1901 of the target virtual volume and the executed operation 1903.
  • the program 403 determines whether or not the collection data of the preset number (specified number) has been collected (S2102). If the specified number of collection data has not been collected, the program 403 advances the process to S2104.
  • the program 403 calculates a learning result based on the specified number of collected data (S2103), and uses the calculated value as the target virtual volume of the virtual resource amount learning table 419. Are stored in the learning result column 1905 of the entry corresponding to the operation of the storage function.
  • the program 403 changes the learning state column 1904 of the entry corresponding to the workload characteristics and storage function operation of the target virtual volume in the virtual resource amount learning table 419 to “learning complete” (S2106).
  • the program 403 expands (restores) the target virtual storage for the amount reduced by the storage function application program (S2006) (S2104), and changes the affiliation of the target virtual volume from the learning virtual storage to the target virtual storage (S2105). ), The process is terminated. Specifically, the program 403 deletes the learning virtual storage number set in the learning virtual storage number 606 for the target virtual volume entry in the virtual volume configuration management table 412. In S2104, each virtual resource allocated to the learning virtual storage is again allocated to the target virtual storage (see the virtual volume configuration management table 412 and the physical volume configuration management table 413).
  • the virtual resource amount of the virtual resource allocated to the learning virtual storage can be calculated based on the learning result.
  • the target virtual storage can be expanded and the affiliation of the target virtual volume can be returned from the learning virtual storage to the target virtual storage.
  • the target virtual volume can be returned to an appropriate environment, and the required virtual resource amount can be allocated to the target virtual storage by returning the affiliation of the target virtual volume.
  • the subject of this processing is the server 2501 (virtual resource amount learning program 403), but is not limited thereto.
  • the subject of this processing may be the management server 110 (system management software).
  • the subject of each step relating to the above description can be replaced with the management server 110.
  • the server 2501 transmits monitor information to the management server 110 (including synchronization of tables between the server 2501 and the management server 110).
  • the server 2501 transmits a notification of completion of the target operation to the management server 110.
  • the following steps are different from the above description.
  • the management server 110 transmits to the server 2501 an instruction to expand the target virtual storage and return the affiliation of the target volume to the target virtual storage. Based on the instruction, the controller expands the target virtual storage, and returns the affiliation of the target virtual volume from the learning virtual storage to the target virtual storage.
  • FIG. 24 is an example of a flowchart of processing executed by the virtual resource relearning program 404.
  • the virtual resource relearning program 404 is a program for performing relearning when the result of virtual resource amount estimation using the learning result deviates from the subsequent monitoring result.
  • This program 404 is a program that is executed when it is determined that “estimation is possible” in step 2002 of the storage function application program 402.
  • This program 404 is executed when a storage function operation (and learning about the operation) executed asynchronously with the storage function application program is completed, or when a specified time elapses after the execution of the operation starts. Program.
  • the program 404 collects monitor information of the virtual resource amount increase rate of each virtual resource of the target virtual volume (S2201).
  • the monitor information here includes, for example, the virtual resource usage rate 1106 and the storage function usage rate 1107 (virtual resource amount management table 416) of the physical resource corresponding to each virtual resource of the target virtual storage, and the storage function application program 402.
  • the program 404 determines whether or not the collected monitor information is deviated from the learning result 1905 of the virtual resource amount learning table 419 (S2202).
  • the program 404 issues an alert to the requesting computer (2203) and changes the learning state 1904 to “unlearned”. (2204).
  • the virtual state is changed when the storage function is applied next time by changing the learning state to “unlearned”.
  • the resource amount learning program 403 can be activated.
  • the subject of this processing is the server 2501 (virtual resource relearning program 404), but is not limited thereto.
  • the subject of this processing may be the management server 110 (system management software). In this case, it is assumed that each table is synchronized between the server 2501 and the management server 110.
  • server 2501 has been described as one of the components of the computer system, any control computer including the server 2501 may be used.
  • the server 2501 can be replaced with a storage controller having each device (processor, memory, host interface, management interface, media interface, etc.).
  • a storage system may be configured by the storage controller and the medium 150 connected to the storage controller.
  • each process is performed by the server 2501 or the management server 110.
  • the storage controller may perform each process instead of the server 2501. An example of this is shown below.
  • FIG. 25 is a second configuration diagram of the computer system according to this embodiment.
  • the second configuration diagram is different from the first configuration diagram in that the computer system has a storage system.
  • Functions equivalent to the functions provided by software on the server 2501 may be provided by the storage controller. That is, also in this configuration, it is possible to provide functions equivalent to the various functions described above using the method shown by using the first configuration diagram.
  • the difference between the second configuration diagram and the first configuration diagram will be mainly described.
  • the computer system has an arbitrary number of one or more hosts 100, a management server 110, and a storage system.
  • the storage system includes a storage controller (hereinafter referred to as a controller) 120 and one or more media 150.
  • a storage controller hereinafter referred to as a controller
  • media 150 one or more media 150.
  • the controller 120 performs data transfer control between the host 100 and the medium 150.
  • the host 100 and the controller 120 are connected by a data network 130 and can communicate with each other.
  • the data network 130 is a network such as a SAN (Storage Area Network).
  • the data network 130 uses a general technology such as FC (Fibre Channel) or Ethernet (registered trademark).
  • the controller 120 is connected to the management server 110 via the management network 131.
  • the management server and the storage device can communicate with each other.
  • the management network 131 also uses a general technique such as Ethernet (registered trademark).
  • the controller 120 is configured to be operable even if a failure occurs in any of the modules 140, for example, by being made redundant by a plurality of modules 140.
  • the number of modules 140 in the controller 120 is not limited to a plurality and may be one. One module 140 will be briefly described.
  • the module 140 includes devices such as a processor 1410, a memory 1420, a host interface 1600, a management interface 1610, and a media interface 1620.
  • Module 140 may include any number of one or more devices.
  • Each device in the module 140 is the same as each device in the server 2501 (the processor 141, the memory 142, the host interface 160, the management interface 161, and the media interface 162).
  • information (such as various tables and programs) stored in the memory 1420 may be the same as that of the server 2501.
  • the processor 1410 can execute each process described above by executing the program in the memory.

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)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

In this invention, a processor generates a first virtual storage device, secures a first resource from a physical resource within a storage device, allocates the first resource to the first virtual storage device, and, using the first resource, generates a plurality of virtual volumes within the first virtual storage device. If a request is received to execute a specified operation on a specified virtual volume from among the plurality of virtual volumes, the processor determines whether an estimate can be made of a first resource volume which is the volume of the first resource which will be used if the specified operation is executed on the specified virtual volume, and if the estimate of the first resource volume cannot be made, generates a second virtual storage device. The processor identifies a second resource, from among the first resource, which is used in the specified virtual volume, allocates at least the second resource to the second virtual storage device, and changes the affiliation of the specified virtual volume from the first virtual storage device to the second virtual storage device. The processor executes the specified operation on the specified virtual volume.

Description

計算機システムComputer system
 本発明は、計算機システムの性能管理技術に関する。 The present invention relates to a performance management technique for a computer system.
 クラウド環境では、テナントを単位とした性能管理技術が重要となってきており、テナントを構成する記憶媒体を有する計算機システムの性能管理技術も、ますます重要になってきている。一方で近年、ストレージ仮想化技術により、ストレージ装置に関する専門知識を持たない管理者でも容易にストレージ管理ができるようになってきている。以上の背景から、ストレージ仮想化技術を適用した仮想ストレージ装置の性能管理技術が重要となってきている。 In a cloud environment, performance management technology for each tenant has become important, and performance management technology for computer systems that have storage media that make up a tenant has become increasingly important. On the other hand, in recent years, storage virtualization technology has made it possible for an administrator who does not have specialized knowledge about storage devices to easily manage storage. From the above background, performance management technology for virtual storage devices to which storage virtualization technology is applied has become important.
 計算機システムの性能管理技術として、計算機システムが持つ各物理資源(ポートやキャッシュなど)について、ユーザによる資源占有量を設定可能にすることで、アプリケーション間の性能影響を防止する技術がある。一方、ストレージ仮想化技術として、シンプロビジョニング技術やティアリング技術など、データを格納する適切なメディアをストレージシステムが自動決定することで、専門知識を持たないユーザでも、ストレージシステムを管理可能にする技術がある。 As a performance management technology of a computer system, there is a technology that prevents a performance influence between applications by enabling a user to set a resource occupation amount for each physical resource (port, cache, etc.) possessed by the computer system. On the other hand, storage virtualization technology, such as thin provisioning technology and tearing technology, allows the storage system to be managed even by users without specialized knowledge by automatically determining the appropriate media for storing data. is there.
 仮想ストレージ装置を対象とした性能管理技術の課題の1つは、1つの仮想ストレージ装置内に複数の仮想ボリュームが存在する場合において、仮想ボリュームにストレージ機能を適用したときに生じる仮想ストレージ装置の性能問題を回避する手段がないことである。ストレージ機能としては、例えば、仮想ストレージ装置に所属する仮想ボリュームのボリュームコピー機能や、仮想ボリュームの重複排除機能、仮想ボリュームの圧縮機能等がある。 One of the challenges of performance management technology for virtual storage devices is the performance of the virtual storage device that occurs when the storage function is applied to the virtual volume when there are multiple virtual volumes in one virtual storage device There is no way to avoid the problem. Examples of the storage function include a volume copy function for a virtual volume belonging to a virtual storage apparatus, a virtual volume deduplication function, a virtual volume compression function, and the like.
 例えば、仮想ストレージ装置内の特定のボリュームに対して、ストレージ機能の1つであるボリュームコピー機能を適用する場合、当該ボリュームをコピーするための一時的な負荷の影響で、当該仮想ストレージ装置の仮想資源量が一時的に不足し、当該仮想ストレージ装置内の他の仮想ボリュームの性能が低下してしまう場合がある。 For example, when the volume copy function, which is one of the storage functions, is applied to a specific volume in a virtual storage device, the virtual storage device virtual is affected by the temporary load for copying the volume. There may be a case where the amount of resources is temporarily insufficient, and the performance of other virtual volumes in the virtual storage apparatus is degraded.
 計算機システムは、記憶デバイスと、メモリとメモリに格納されたプログラムを実行するプロセッサと、を備える。プロセッサは、第1仮想ストレージ装置を生成する。プロセッサは、計算機システム内の物理資源から第1資源を確保し、第1資源を第1仮想ストレージ装置に割当てる。プロセッサは、第1資源を用いて、第1仮想ストレージ装置内に複数の仮想ボリュームを生成する。プロセッサは、複数の仮想ボリュームのいずれかに対するI/O要求を受信した場合、第1資源を用いてI/O要求に係る処理を実行する。プロセッサは、複数の仮想ボリュームのうちの対象仮想ボリュームに対する対象操作の実行要求を受信した場合、対象仮想ボリュームに対象操作を実行した場合に使用される第1資源の資源量である第1資源量の見積りが可能か否かを判定する。プロセッサは、第1資源量の見積りが不可能な場合、前記第2仮想ストレージ装置を生成する。プロセッサは、第1資源のうち対象仮想ボリュームに使用されている第2資源を特定し、少なくとも第2資源を第2仮想ストレージ装置に割当てる。プロセッサは、対象仮想ボリュームの所属を第1仮想ストレージ装置から第2仮想ストレージ装置に変更する。プロセッサは、対象仮想ボリュームに対して、対象操作を実行する。 The computer system includes a storage device, a memory, and a processor that executes a program stored in the memory. The processor creates a first virtual storage device. The processor secures the first resource from the physical resources in the computer system and allocates the first resource to the first virtual storage device. The processor creates a plurality of virtual volumes in the first virtual storage device using the first resource. When the processor receives an I / O request for any of the plurality of virtual volumes, the processor executes processing related to the I / O request using the first resource. The processor receives a request for execution of a target operation on a target virtual volume from among a plurality of virtual volumes, and a first resource amount that is a resource amount of a first resource used when the target operation is executed on the target virtual volume It is determined whether or not estimation is possible. The processor generates the second virtual storage device when the first resource amount cannot be estimated. The processor identifies the second resource used for the target virtual volume among the first resources, and allocates at least the second resource to the second virtual storage device. The processor changes the affiliation of the target virtual volume from the first virtual storage device to the second virtual storage device. The processor performs the target operation on the target virtual volume.
 対象仮想ボリュームに対象操作を行ったことによる他の仮想ボリュームに対する性能の影響を低減できる。 The performance impact on other virtual volumes due to the target operation on the target virtual volume can be reduced.
本実施例に係る計算機システムの第一の構成図である。It is a 1st block diagram of the computer system which concerns on a present Example. 物理資源の仮想資源への割当てを説明する図である。It is a figure explaining allocation to the virtual resource of a physical resource. 物理ボリュームと仮想ボリュームとの対応関係を説明する図である。It is a figure explaining the correspondence of a physical volume and a virtual volume. メモリ142に格納されるストレージ制御プログラム、およびストレージ制御テーブルの一例を示す図である。3 is a diagram illustrating an example of a storage control program and a storage control table stored in a memory 142. FIG. 仮想ストレージ構成管理テーブル411の一例である。It is an example of a virtual storage configuration management table 411. 仮想ボリューム構成管理テーブル412の一例である。It is an example of a virtual volume configuration management table 412. 物理ボリューム構成管理テーブル413の一例を示す。An example of the physical volume configuration management table 413 is shown. 仮想ボリュームモニタテーブル414の一例である。It is an example of a virtual volume monitor table 414. ワークロード特性管理テーブル420の一例である。4 is an example of a workload characteristic management table 420; 物理資源量管理テーブル415の一例を示す。An example of the physical resource amount management table 415 is shown. 仮想資源量管理テーブル416の一例を示す。An example of the virtual resource amount management table 416 is shown. 資源割当てプログラム400の一例である。3 is an example of a resource allocation program 400. 仮想ボリューム作成プログラムの一例である。It is an example of a virtual volume creation program. ホストI/Oプログラム401の一例である。3 is an example of a host I / O program 401. ボリュームコピー機能を説明する図である。It is a figure explaining a volume copy function. 重複排除機能及び圧縮機能を説明する図である。It is a figure explaining a deduplication function and a compression function. ストレージ機能状態管理テーブル417の一例である。It is an example of a storage function state management table 417. デフォルト資源量テーブル418の一例である。It is an example of a default resource amount table 418. 仮想資源量学習テーブル419の一例である。It is an example of a virtual resource amount learning table 419. ユーザ計算機に表示される設定画面2301の一例を示す。An example of the setting screen 2301 displayed on the user computer is shown. ワークロード判定プログラム405が実行する処理の一例である。It is an example of the process which the workload determination program 405 performs. ストレージ機能適用プログラム402が実行する処理のフローチャートの一例である。It is an example of the flowchart of the process which the storage function application program 402 performs. 仮想資源量学習プログラム403が実行する処理のフローチャートの一例である。It is an example of the flowchart of the process which the virtual resource amount learning program 403 performs. 仮想資源再学習プログラム404が実行する処理のフローチャートの一例である。It is an example of the flowchart of the process which the virtual resource relearning program 404 performs. 本実施例に係る計算機システムの第二の構成図である。It is a 2nd block diagram of the computer system which concerns on a present Example.
 以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。 In the following description, information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “xxx information” to indicate that the information does not depend on the data structure. In the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
 本実施例で説明する各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、 The components, functions, processing units, processing means, and the like described in the present embodiment may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Information such as programs, tables, and files that realize each function includes non-volatile semiconductor memory,
 ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。 It can be stored in a storage device such as a hard disk drive or SSD (Solid State Drive), or a computer-readable non-transitory data storage medium such as an IC card, SD card or DVD.
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。 In the following description, when a description is made without distinguishing the same type of element, a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used. Alternatively, an ID assigned to the element may be used instead of the reference code.
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 In the following description, the process may be described with “program” as the subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)) so that a predetermined process can be appropriately performed. Since processing is performed using a storage resource (for example, a memory) and / or an interface device (for example, a communication port), the subject of processing may be a processor. The process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor. The processor may include a hardware circuit that performs a part or all of the processing. The program may be installed in a computer-like device from a program source. The program source may be, for example, a storage medium that can be read by a program distribution server or a computer. When the program source is a program distribution server, the program distribution server may include a processor (for example, a CPU) and a storage resource, and the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers. In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
 図1は、本実施例に係る計算機システムの第一の構成図である。 FIG. 1 is a first configuration diagram of a computer system according to the present embodiment.
 計算機システムは、ホスト計算機(以下、ホストという。)100、サーバ計算機(以下、サーバという。)2501、メディア150及び管理サーバ計算機(以下、管理サーバという。)110を有する。計算機システムが有するホスト100、メディア150及び管理サーバ110のそれぞれの数は、1以上の任意の数である。また、計算機システムが有するサーバ2501の数は、図示例のように2つには限定されず、1つでもよいし3つ以上でもよい。 The computer system includes a host computer (hereinafter referred to as a host) 100, a server computer (hereinafter referred to as a server) 2501, a medium 150, and a management server computer (hereinafter referred to as a management server) 110. The number of each of the host 100, media 150, and management server 110 included in the computer system is an arbitrary number of 1 or more. Further, the number of servers 2501 included in the computer system is not limited to two as in the illustrated example, and may be one or three or more.
 メディア150は、ホスト100が読み書きするデータを格納する。メディア150は、例えば、SSD(Solid State Drive)151やHDD(Hard Disk Drive)152などどのような種類であってもよい。また、メディア150は、単体で構成されてもよいし、複数のメディア150によりRAID(Redundant Arrays of Inexpensive Disks)グループが構成されていてもよい。 The medium 150 stores data that the host 100 reads and writes. The medium 150 may be of any type, such as an SSD (Solid State Drive) 151 or an HDD (Hard Disk Drive) 152. Further, the medium 150 may be configured as a single unit, or a plurality of media 150 may configure a RAID (Redundant Arrays of Inexpensive Disks) group.
 サーバ2501は、例えば汎用計算機である。サーバ2501は、ホスト100とメディア150との間のデータ転送制御などを行う。ホスト100は、メディア150に格納されたデータを使って業務などを行う計算機である。ホスト100とサーバ2501とは、データネットワーク130で接続されており、互いに通信が可能である。データネットワーク130は、Ethernet(登録商標)などの一般的な技術が利用される。 The server 2501 is, for example, a general purpose computer. The server 2501 performs data transfer control between the host 100 and the medium 150. The host 100 is a computer that performs business using data stored in the medium 150. The host 100 and the server 2501 are connected by a data network 130 and can communicate with each other. The data network 130 uses a general technique such as Ethernet (registered trademark).
 各サーバ2501は、インターコネクトネットワーク2502を介して互いに接続されており、互いが保持する情報を参照することが可能である。なお、インターコネクトネットワーク2502は、データネットワーク130同様に一般的な技術を用いて構成できる。 The servers 2501 are connected to each other via the interconnect network 2502 and can refer to information held by each other. Note that the interconnect network 2502 can be configured by using a general technique as with the data network 130.
 また、サーバ2503は、管理ネットワーク131を介して管理サーバ110に接続される。管理サーバ110と各計算機2501とは、互いに通信が可能である。管理ネットワーク131も、Ethernet(登録商標)などの一般的な技術が利用される。 The server 2503 is connected to the management server 110 via the management network 131. The management server 110 and each computer 2501 can communicate with each other. The management network 131 also uses a general technique such as Ethernet (registered trademark).
 管理サーバ110は、例えば、汎用計算機である。管理サーバ110では、システム管理ソフトが動作する。システム管理ソフトは、サーバ2501の管理を行うソフトウェアである。 The management server 110 is a general-purpose computer, for example. In the management server 110, system management software operates. The system management software is software that manages the server 2501.
 サーバ2501は、プロセッサ141、メモリ142、ホストインターフェース160、サーバ間インターフェース2502、管理インターフェース161、メディアインターフェース162などのデバイスを有する。各インターフェース160、2501、161、162を、単にポートと呼ぶこともある。 The server 2501 includes devices such as a processor 141, a memory 142, a host interface 160, an inter-server interface 2502, a management interface 161, and a media interface 162. Each interface 160, 2501, 161, 162 may be simply referred to as a port.
 サーバ2501内の各デバイスは、互いに図示しない内部ネットワークで接続されており、通信が可能である。 The devices in the server 2501 are connected to each other via an internal network (not shown) and can communicate with each other.
 サーバ2501内の各プロセッサ141は、ホスト100から受信するコマンドを処理するプログラムなど、当該サーバ2501が備える各種機能を実現するプログラムを実行できる。 Each processor 141 in the server 2501 can execute a program that realizes various functions of the server 2501, such as a program that processes a command received from the host 100.
 ホストインターフェース(ホストI/F)160は、ホスト100に接続され、ホスト100との通信を行うデバイスである。ホストI/F160には、データネットワーク130に用いられる通信プロトコルが実装されており、ホスト100とのデータ及びコマンドの通信が可能である。 The host interface (host I / F) 160 is a device that is connected to the host 100 and communicates with the host 100. The host I / F 160 is equipped with a communication protocol used for the data network 130 and can communicate data and commands with the host 100.
 サーバ間インターフェース(サーバ間I/F)2502は、サーバ2502間の通信を行うデバイスである。サーバ間I/F2502には、インターコネクトネットワーク2503に用いられる通信プロトコルが実装されており、サーバ2501間のデータ及びコマンドの通信が可能である。 The inter-server interface (inter-server I / F) 2502 is a device that performs communication between the servers 2502. The inter-server I / F 2502 is implemented with a communication protocol used for the interconnect network 2503, and data and commands can be communicated between the servers 2501.
 管理インターフェース(管理I/F)161は、管理サーバ110に接続され、管理サーバ110との通信を行うデバイスである。管理インターフェース161には、管理ネットワーク131に用いられる通信プロトコルが実装されており、管理サーバ110とのデータ及びコマンドの通信が可能である。 The management interface (management I / F) 161 is a device that is connected to the management server 110 and communicates with the management server 110. The management interface 161 is implemented with a communication protocol used for the management network 131 and can communicate data and commands with the management server 110.
 メディアインターフェース(メディアI/F)162は、メディア150に接続され、メディア150との通信を行うデバイスである。メディアI/F162には、FC、Serial Attached SCSI(SAS)、Serial Advanced Technology Attachment(SATA)などの標準的な通信プロトコルが実装されており、メディア150とのデータ及びコマンドの通信が可能である。 The media interface (media I / F) 162 is a device that is connected to the media 150 and communicates with the media 150. The media I / F 162 is implemented with standard communication protocols such as FC, Serial Attached SCSI (SAS), Serial Advanced Technology Attachment (SATA), and can communicate data and commands with the media 150.
 以下の説明では、計算機システムが有する各デバイスを「物理資源」という場合がある。また、例えば、メモリ142やプロセッサなど、各デバイスの種別を、「資源種別」という場合がある。 In the following description, each device included in the computer system may be referred to as a “physical resource”. For example, the type of each device such as the memory 142 or the processor may be referred to as a “resource type”.
 また、各サーバ2501は、いわゆる仮想計算機技術を用いて1つの物理資源(の処理能力)を論理的に分割することで複数の仮想資源(仮想プロセッサ、仮想メモリ、仮想ポート等)を生成することができる。具体的には、例えば物理資源の処理能力を時分割で複数の仮想資源に割当てることにより、1つの物理資源を論理的に分割する。 Each server 2501 generates a plurality of virtual resources (virtual processor, virtual memory, virtual port, etc.) by logically dividing one physical resource (processing capacity) using so-called virtual computer technology. Can do. Specifically, for example, one physical resource is logically divided by assigning the processing capacity of the physical resource to a plurality of virtual resources in a time division manner.
 また、各物理資源には、最大処理能力が定められている。以下の説明では、各物理資源の最大処理能力のことを「限界資源量」という場合がある。当該物理資源は、例えば、後述のホストI/Oプログラム401による、ホスト100からのリード又はライトコマンドに基づくI/O(Input or Output)処理等を実行することで消費される。尚、本明細書では、同一の資源種別であっても、限界資源量が異なる構成を許容する。 Moreover, the maximum processing capacity is defined for each physical resource. In the following description, the maximum processing capacity of each physical resource may be referred to as “limit resource amount”. The physical resource is consumed, for example, by executing an input / output (I / O) process based on a read or write command from the host 100 by a host I / O program 401 described later. In the present specification, configurations having different limit resource amounts are allowed even for the same resource type.
 図2は、物理資源の仮想資源への割当てを説明する図である。仮想ストレージ200は、サーバ2501内の物理資源(例えば、プロセッサ141、メモリ142、各ポート160、2501、161、162等)又はサーバ2501に接続された物理資源(例えば、メディア150)で構成された論理的なストレージ装置であり、1つのストレージ装置から複数個の仮想ストレージ200を生成できる。以下、仮想ストレージ200及び仮想資源と区別するため、便宜上、各物理資源を、物理プロセッサ141、物理メモリ142、物理メディア150、物理ポートという場合がある。また、各仮想資源の資源量を仮想資源量といい、各物理資源の資源量を物理資源量という場合がある。 FIG. 2 is a diagram illustrating allocation of physical resources to virtual resources. The virtual storage 200 is configured with physical resources (for example, processor 141, memory 142, ports 160, 2501, 161, 162, etc.) in the server 2501 or physical resources (for example, media 150) connected to the server 2501. It is a logical storage device, and a plurality of virtual storages 200 can be generated from one storage device. Hereinafter, in order to distinguish from the virtual storage 200 and the virtual resources, for the sake of convenience, each physical resource may be referred to as a physical processor 141, a physical memory 142, a physical medium 150, and a physical port. In addition, the resource amount of each virtual resource may be referred to as a virtual resource amount, and the resource amount of each physical resource may be referred to as a physical resource amount.
 仮想ストレージ200は、仮想プロセッサ201、仮想メモリ202、仮想メディア203、仮想ポート204などの「仮想資源」によって構成される。各仮想資源は、物理プロセッサ141、物理メモリ142、物理メディア150、物理ポートにそれぞれ対応する。 The virtual storage 200 includes “virtual resources” such as a virtual processor 201, a virtual memory 202, a virtual medium 203, and a virtual port 204. Each virtual resource corresponds to a physical processor 141, a physical memory 142, a physical medium 150, and a physical port.
 仮想資源と物理資源とは、N:Mの対応関係を持つ。例えば、複数のプロセッサ141が有する物理資源量の一部又は全部を組合せて、1つの仮想プロセッサ201に割当てることができる。また、1つのプロセッサ141の物理資源量を、複数の仮想プロセッサに割当てることができる。 * Virtual resources and physical resources have an N: M correspondence. For example, some or all of the physical resource amounts possessed by the plurality of processors 141 can be combined and assigned to one virtual processor 201. In addition, the physical resource amount of one processor 141 can be allocated to a plurality of virtual processors.
 図3は、物理ボリュームと仮想ボリュームとの対応関係を説明する図である。 FIG. 3 is a diagram for explaining the correspondence between physical volumes and virtual volumes.
 物理ボリューム301は、計算機システムが有する論理ボリュームである。サーバ2501は、1又は複数の物理メディア150に基づき、1又は複数の物理ボリューム301を生成する。 The physical volume 301 is a logical volume that the computer system has. The server 2501 generates one or more physical volumes 301 based on one or more physical media 150.
 仮想ボリューム300は、仮想ストレージ200が有する仮想的な論理ボリュームである。物理プロセッサ141は、資源割当てプログラム400を実行することにより仮想ボリューム300を生成する。サーバ2501は、仮想ボリュームに、物理ボリューム301を対応づける。 The virtual volume 300 is a virtual logical volume that the virtual storage 200 has. The physical processor 141 generates the virtual volume 300 by executing the resource allocation program 400. The server 2501 associates the physical volume 301 with the virtual volume.
 以下の説明では、仮想ストレージ200に複数の仮想ボリューム300が含まれる場合を説明する。これは、本実施例において、1つの仮想ストレージ200に複数の仮想ボリューム300が所属する場合の性能管理技術を説明するためであって、1つの仮想ストレージ200内に1つの仮想ボリューム300が所属しないことを限定するものではない。 In the following description, a case where the virtual storage 200 includes a plurality of virtual volumes 300 will be described. This is for explaining the performance management technique when a plurality of virtual volumes 300 belong to one virtual storage 200 in the present embodiment, and one virtual volume 300 does not belong to one virtual storage 200. This is not a limitation.
 また、以下の説明では、便宜上、仮想ボリュームと物理ボリュームとの対応関係が1:1であり、かつボリュームサイズが同じである場合を記載する。しかしながら、両ボリュームの対応関係は、1:1に限られず、1:Nであっても、N:1であっても、N:Mであってもよい。例えば、任意のボリュームサイズの1つの仮想ボリューム300に対し、半分のボリュームサイズの2つの物理ボリューム301を対応づけてもよい。 In the following description, for the sake of convenience, the case where the correspondence between the virtual volume and the physical volume is 1: 1 and the volume size is the same is described. However, the correspondence relationship between both volumes is not limited to 1: 1, and may be 1: N, N: 1, or N: M. For example, two physical volumes 301 having a half volume size may be associated with one virtual volume 300 having an arbitrary volume size.
 図4は、メモリ142に格納されるストレージ制御プログラム、およびストレージ制御テーブルの一例を示す図である。 FIG. 4 is a diagram illustrating an example of a storage control program and a storage control table stored in the memory 142.
 ストレージ制御プログラムは、例えば、資源割当てプログラム400、ホストI/Oプログラム401、ストレージ機能適用プログラム40Oプログラム401、ストレージ機能適用プログラム402、仮想資源量学習プログラム403、仮想資源量再学習プログラム404及び、ワークロード判定プログラム405を含む。各プログラムの詳細は後述する。 The storage control program includes, for example, a resource allocation program 400, a host I / O program 401, a storage function application program 40O program 401, a storage function application program 402, a virtual resource amount learning program 403, a virtual resource amount relearning program 404, and a work A load determination program 405 is included. Details of each program will be described later.
 ストレージ制御テーブルは、例えば、仮想ストレージ設定管理テーブル410、仮想ストレージ構成管理テーブル411、仮想ボリューム構成管理テーブル412、物理ボリューム構成管理テーブル413、仮想ボリュームモニタテーブル414、物理資源量管理テーブル415、仮想資源量管理テーブル416、ストレージ機能状態管理テーブル417、デフォルト資源量テーブル418、仮想資源量学習テーブル419、ワークロード特性管理テーブル420を含む。仮想ストレージ設定管理テーブル410は、仮想ストレージ200の構成情報を管理するテーブルである。テーブル411-419の詳細は後述する。 The storage control table includes, for example, a virtual storage setting management table 410, a virtual storage configuration management table 411, a virtual volume configuration management table 412, a physical volume configuration management table 413, a virtual volume monitor table 414, a physical resource amount management table 415, and a virtual resource. An amount management table 416, a storage function state management table 417, a default resource amount table 418, a virtual resource amount learning table 419, and a workload characteristic management table 420 are included. The virtual storage setting management table 410 is a table for managing configuration information of the virtual storage 200. Details of the tables 411-419 will be described later.
 尚、本実施例では、管理サーバ110も、ストレージ制御テーブル410-420を有していてもよい。また、管理サーバ110とサーバ2501との間で、ストレージ制御テーブル410-420を同期できるものとする。さらに、管理サーバ110上のシステム管理ソフトには、ストレージ制御プログラムのうち、400、402、403及び404の機能が含まれているとする。これにより、ストレージ制御プログラムのうち、400、402、403及び404のプログラムの機能を、管理サーバ110上で動作させることができる。 In this embodiment, the management server 110 may also have storage control tables 410-420. In addition, it is assumed that the storage control tables 410-420 can be synchronized between the management server 110 and the server 2501. Furthermore, it is assumed that the system management software on the management server 110 includes the functions 400, 402, 403, and 404 of the storage control program. Thereby, the functions of the programs 400, 402, 403, and 404 among the storage control programs can be operated on the management server 110.
 サーバ2501は、ストレージ制御テーブルを参照し、ストレージ制御プログラムを実行することにより、物理ストレージの動作を制御する。 The server 2501 controls the operation of the physical storage by referring to the storage control table and executing the storage control program.
 図5は、仮想ストレージ構成管理テーブル411の一例である。仮想ストレージ構成管理テーブル411は、仮想ストレージ200毎の仮想資源の構成情報を管理するテーブルである。仮想ストレージ構成管理テーブル411は、例えば、仮想ストレージ200毎に、仮想ストレージの識別子である仮想ストレージ番号(VS#)501、仮想ストレージの仮想ポート構成502、仮想ストレージの仮想プロセッサ構成503、仮想ストレージの仮想メモリ構成504、及び、仮想ストレージの仮想メディア構成505のカラムを含む。 FIG. 5 is an example of the virtual storage configuration management table 411. The virtual storage configuration management table 411 is a table for managing configuration information of virtual resources for each virtual storage 200. The virtual storage configuration management table 411 includes, for example, a virtual storage identifier (VS #) 501, a virtual storage virtual port configuration 502, a virtual storage virtual processor configuration 503, and a virtual storage configuration for each virtual storage 200. It includes columns for virtual memory configuration 504 and virtual storage virtual media configuration 505.
 仮想ポート構成502には、当該仮想ポート204の仮想資源量が設定される。この仮想資源量は、例えば、当該仮想ポート204を構成する1以上の物理ポートのポート性能(Gbps)及びポート数(個)で示される。 In the virtual port configuration 502, the virtual resource amount of the virtual port 204 is set. This virtual resource amount is indicated by, for example, the port performance (Gbps) and the number of ports (number) of one or more physical ports constituting the virtual port 204.
 仮想プロセッサ構成503には、当該仮想プロセッサ201の仮想資源量が設定される。この仮想資源量は、例えば、当該仮想プロセッサ201を構成する1以上の物理プロセッサ141のプロセッサ性能(GHz)及びプロセッサ数(個)で示される。 In the virtual processor configuration 503, the virtual resource amount of the virtual processor 201 is set. This virtual resource amount is indicated by, for example, the processor performance (GHz) and the number of processors (pieces) of one or more physical processors 141 constituting the virtual processor 201.
 仮想メモリ構成504には、当該仮想メモリ202の仮想資源量が設定される。この仮想資源量は、例えば、当該仮想メモリ202を構成する1以上の物理メモリ142のメモリ量(Byte)で示される。 In the virtual memory configuration 504, the virtual resource amount of the virtual memory 202 is set. This virtual resource amount is indicated by, for example, a memory amount (Byte) of one or more physical memories 142 constituting the virtual memory 202.
 仮想メディア構成505には、当該仮想メディア203の仮想資源量が設定される。このメディアの仮想資源量は、例えば、仮想メディア203を構成する1以上の物理メディア150のメディア種別(SSD151またはHDD152)及びメディア台数(個)で示される。尚、仮想メディア203の仮想資源量の基となる物理メディア150の物理資源量は、メディア種別毎に異なる。メディア種別毎の1台当りの物理資源量は、HDDは100IOPS、SSDは10000IOPSのように、システム内で事前に決定されていてよい。また、当然に、物理資源量が異なるメディア種別のメディア150を追加してもよい。 In the virtual media configuration 505, the virtual resource amount of the virtual media 203 is set. The virtual resource amount of the media is indicated by, for example, the media type (SSD 151 or HDD 152) and the number of media (pieces) of one or more physical media 150 constituting the virtual media 203. Note that the physical resource amount of the physical medium 150 that is the basis of the virtual resource amount of the virtual medium 203 differs for each media type. The physical resource amount per unit for each media type may be determined in advance in the system, such as 100 IOPS for HDD and 10000 IOPS for SSD. Naturally, media 150 of different media types with different physical resource amounts may be added.
 例えば、VS#001が有する各仮想資源について説明すると、仮想ポートの仮想資源量は、合計で8Gbpsであり、仮想プロセッサの仮想資源量は、合計で2.3GHzであり、仮想メモリの仮想資源量は、合計で200GBであり、仮想メディアの仮想資源量は、合計で30000IOPSである。 For example, when describing each virtual resource of VS # 001, the total virtual resource amount of the virtual port is 8 Gbps, the total virtual resource amount of the virtual processor is 2.3 GHz, and the virtual resource amount of the virtual memory Is 200 GB in total, and the virtual resource amount of the virtual media is 30000 IOPS in total.
 尚、上記の仮想ストレージ構成管理テーブル411は、一例である。各仮想資源量については、処理性能に関する物理資源量を示す一般的な単位を使用することができる。また、このテーブル411に、さらに仮想ストレージ200が有する他の仮想資源のカラムを含めることもできる。 The virtual storage configuration management table 411 is an example. For each virtual resource amount, a general unit indicating a physical resource amount related to processing performance can be used. Further, this table 411 can further include columns of other virtual resources of the virtual storage 200.
 図6は、仮想ボリューム構成管理テーブル412の一例である。仮想ボリューム構成管理テーブル412は、仮想ボリューム300と物理ボリューム301の対応関係を示すテーブルである。仮想ボリューム構成管理テーブル412は、例えば、仮想ボリューム毎に、仮想ボリュームの識別子である仮想ボリューム番号(VVOL#)601、仮想ボリュームのボリュームサイズ602、仮想ボリュームに対応づけられた物理ボリュームの物理ボリューム番号603、仮想ボリュームのラベル604、仮想ストレージ番号605、仮想ボリュームの学習中仮想ストレージ番号606、及び、学習機能適用要否607のカラムを含む。 FIG. 6 is an example of the virtual volume configuration management table 412. The virtual volume configuration management table 412 is a table showing the correspondence between the virtual volume 300 and the physical volume 301. The virtual volume configuration management table 412 includes, for example, a virtual volume number (VVOL #) 601 that is an identifier of a virtual volume, a volume size 602 of the virtual volume, and a physical volume number of a physical volume associated with the virtual volume for each virtual volume. 603, a virtual volume label 604, a virtual storage number 605, a virtual volume learning virtual storage number 606, and a learning function application necessity 607 column.
 ラベル604には、当該仮想ボリュームのワークロード特性が設定される。ワークロード特性は、例えば、ユーザにより設定されるか又はワークロード判定プログラム405により測定される。ワークロード判定プログラム405の詳細は、後述する。 In the label 604, the workload characteristics of the virtual volume are set. The workload characteristics are set by a user or measured by the workload determination program 405, for example. Details of the workload determination program 405 will be described later.
 例えば、VVOL#000のラベル604には、「OLTP1」が設定される。これは、VVOL#000が第1のオンライントランザクション処理(OLTP)系のワークロード特性を有することを示している。なお、第1のOLTP系は、例えば、当該仮想ボリュームへのI/Oが、データ量が比較的少なくランダムアクセスであるというワークロード特性を持つ。 For example, “OLTP1” is set in the label 604 of VVOL # 000. This indicates that VVOL # 000 has the workload characteristics of the first online transaction processing (OLTP) system. Note that the first OLTP system has a workload characteristic that, for example, I / O to the virtual volume is a random access with a relatively small amount of data.
 また、例えば、VVOL#002のラベル604には、「DWH」が設定されている。これは、VVOL#002がデータウェアハウス(DWH)系のワークロード特性を有することを示している。なお、DWH系は、例えば、当該仮想ボリュームへのI/Oが、データ量が比較的多くシーケンシャルアクセスであるというワークロード特性を持つ。 Also, for example, “DWH” is set in the label 604 of VVOL # 002. This indicates that VVOL # 002 has data warehouse (DWH) workload characteristics. The DWH system has a workload characteristic that, for example, the I / O to the virtual volume is a sequential access with a relatively large amount of data.
 また、例えば、VVOL#001のラベル604には、「N/A」が設定されている。また、例えば、VVOL#001の各カラム601-606には、「N/A」が設定されている。これは、VVOL#001には物理ボリュームが対応づけられていないことを示す。 For example, “N / A” is set in the label 604 of VVOL # 001. For example, “N / A” is set in each column 601-606 of VVOL # 001. This indicates that no physical volume is associated with VVOL # 001.
 仮想ストレージ番号は、仮想ボリュームが通常所属している仮想ストレージの識別子である。 The virtual storage number is an identifier of the virtual storage to which the virtual volume normally belongs.
 学習中仮想ストレージ番号は、ストレージ機能適用プログラム402で利用する値であり、学習機能を適用する際に一時的に当該仮想ボリュームを隔離する仮想ストレージの識別子である。当該カラム606には、学習中の仮想ストレージ番号が設定される。尚、学習前及び学習後には、当該カラム606には「―」が設定される。 The learning virtual storage number is a value used in the storage function application program 402, and is an identifier of a virtual storage that temporarily isolates the virtual volume when the learning function is applied. In this column 606, the virtual storage number being learned is set. Note that “-” is set in the column 606 before and after learning.
 学習機能適用要否とは、ストレージ機能適用プログラム402で利用する値であり、仮想ボリュームが学習機能を適用するか否かを示す値ある。仮想ボリュームの学習機能は、仮想資源量学習プログラム403により適用される。ストレージ機能適用プログラム402及び仮想資源量学習プログラム403の詳細は、後述する。学習機能及び学習については、後述する。 The learning function application necessity is a value used in the storage function application program 402 and is a value indicating whether or not the virtual volume applies the learning function. The virtual volume learning function is applied by the virtual resource amount learning program 403. Details of the storage function application program 402 and the virtual resource amount learning program 403 will be described later. The learning function and learning will be described later.
 具体例を用いて説明する。この例では、VVOL#000及び#002の所属先は、仮想ストレージ#000であることを示す。VVOL#000及び#002は、共に学習機能が適用されている。さらに、VVOL#002は、学習中であり、仮想ストレージ#100に所属が変更されていることを示す。この場合、物理ボリューム#002との対応付けは、仮想ストレージ#000内のVVOL#002から仮想ストレージ#100のVVOL#002に変更されている。また、VVOL#002の所属が、仮想ストレージ#000から#100に変更さている間(つまり、学習中は)、物理ボリューム#002を担当する各資源(カラム703-706)は、仮想ストレージ#100に割り当てられることとなる。さらに、VVOL#002の所属を仮想ストレージ#000に戻すときに、物理ボリューム#002を担当する各資源(カラム703-706)は、仮想ストレージ#000に再び割り当てられることとなる。 This will be explained using a specific example. In this example, the VVOL # 000 and # 002 belong to the virtual storage # 000. The learning function is applied to both VVOL # 000 and # 002. Furthermore, VVOL # 002 indicates that learning is in progress and the affiliation has been changed to virtual storage # 100. In this case, the association with the physical volume # 002 is changed from VVOL # 002 in the virtual storage # 000 to VVOL # 002 in the virtual storage # 100. Further, while the affiliation of VVOL # 002 is changed from virtual storage # 000 to # 100 (that is, during learning), each resource (columns 703-706) in charge of physical volume # 002 is virtual storage # 100. Will be assigned. Furthermore, when the affiliation of VVOL # 002 is returned to the virtual storage # 000, each resource (columns 703-706) in charge of the physical volume # 002 is reassigned to the virtual storage # 000.
 なお、ホストからI/O要求を受信した場合には、サーバ2501は、仮想ストレージ番号605に設定される仮想ストレージをアクセス先とする。しかし、学習中仮想ストレージ番号606に番号が設定されている場合、サーバ2501は、学習中仮想ストレージ番号606に設定される仮想ストレージをアクセス先とする。 When an I / O request is received from the host, the server 2501 uses the virtual storage set in the virtual storage number 605 as the access destination. However, when a number is set in the learning virtual storage number 606, the server 2501 sets the virtual storage set in the learning virtual storage number 606 as the access destination.
 図7は、物理ボリューム構成管理テーブル413の一例を示す。物理ボリューム構成管理テーブル413は、物理ボリューム301毎に、その処理を担当する物理資源(以下、担当資源と呼ぶ)の情報を管理するテーブルである。物理ボリューム構成管理テーブル413は、例えば、物理ボリューム毎に、物理ボリュームの識別子である物理ボリューム番号701、物理ボリュームのボリュームサイズ702、物理ボリュームを担当するポートの識別子を示す担当ポート番号703、物理ボリュームを担当するプロセッサ141の識別子を示す担当プロセッサ番号704、物理ボリュームを担当するメモリ142の識別子を示す担当メモリ番号705、及び、物理ボリュームの基となるメディア150の識別子を示す担当メディア番号706のカラムを含む。 FIG. 7 shows an example of the physical volume configuration management table 413. The physical volume configuration management table 413 is a table for managing information of physical resources that are in charge of processing (hereinafter referred to as assigned resources) for each physical volume 301. For example, the physical volume configuration management table 413 includes, for each physical volume, a physical volume number 701 that is an identifier of the physical volume, a volume size 702 of the physical volume, an assigned port number 703 that indicates an identifier of a port in charge of the physical volume, and a physical volume. The column of the assigned processor number 704 indicating the identifier of the processor 141 responsible for the physical volume, the assigned memory number 705 indicating the identifier of the memory 142 responsible for the physical volume, and the assigned media number 706 indicating the identifier of the medium 150 that is the basis of the physical volume including.
 なお、担当メディア番号706として、「HDD100」、「SSD100」など、メディア種別ごとに一意な識別子を示したが、格納先メディアが特定できれば、識別子はいずれでも構わない。また、ボリュームサイズ702に「N/A」が格納されている場合は、当該物理ボリュームが定義されていないことを示す。 Although the unique identifier for each media type, such as “HDD100” or “SSD100”, is shown as the assigned media number 706, the identifier may be any as long as the storage medium can be specified. When “N / A” is stored in the volume size 702, it indicates that the physical volume is not defined.
 尚、メモリ142やメディア150に実際にデータを格納する処理では、格納先のメモリアドレスや、メディアアドレスを算出する処理が必要となるが、当該処理は一般的であるため本明細書では省略する。また、各物理ボリュームには、RAID技術を適用することもできる。この場合、物理ボリュームのデータが複数のメディアに分散して格納されるため、担当メディア番号706に複数のメディア識別子が格納される。 In the process of actually storing data in the memory 142 or the medium 150, a process of calculating the memory address of the storage destination or the media address is required. However, since this process is general, it is omitted in this specification. . Further, RAID technology can be applied to each physical volume. In this case, since the data of the physical volume is distributed and stored in a plurality of media, a plurality of media identifiers are stored in the assigned media number 706.
 図8は、仮想ボリュームモニタテーブル414の一例である。仮想ボリュームモニタテーブル414は、仮想ボリューム300毎のモニタ情報を管理するテーブルである。仮想ボリュームモニタテーブル414は、例えば、仮想ボリューム300毎に、仮想ボリュームの識別子である仮想ボリューム番号(VVOL#)801、当該仮想ボリュームのスループット性能を示すスループット性能802、当該仮想ボリュームのレスポンス性能を示すレスポンス性能803、当該仮想ボリュームのリード率を示すRead率804、当該仮想ボリュームのシーケンシャル率を示すSequiencial率805、及び、当該仮想ボリュームのヒット率を示すHit率806のカラムを含む。また、モニタ情報には、他に仮想ボリュームに対するI/Oのサイズ(I/Oサイズ)等を含んでもよい。なお、スループット性能、レスポンス性能、リード率、シーケンシャル率、ヒット率、I/Oサイズについては、自明のため説明を省略する。 FIG. 8 is an example of the virtual volume monitor table 414. The virtual volume monitor table 414 is a table for managing monitor information for each virtual volume 300. For example, the virtual volume monitor table 414 indicates, for each virtual volume 300, a virtual volume number (VVOL #) 801 that is an identifier of the virtual volume, a throughput performance 802 that indicates the throughput performance of the virtual volume, and a response performance of the virtual volume. The column includes a response performance 803, a read rate 804 indicating the read rate of the virtual volume, a sequential rate 805 indicating the sequential rate of the virtual volume, and a hit rate 806 indicating the hit rate of the virtual volume. In addition, the monitor information may include an I / O size (I / O size) for the virtual volume. Note that the throughput performance, response performance, read rate, sequential rate, hit rate, and I / O size are self-explanatory and will not be described.
 カラム802-806の値は、ホストI/Oプログラム401にて測定され、更新される。本明細書中では、これらの値の更新方法の詳細を記載しないが、一般的なモニタリング技術を使用した更新が可能である。例えば、スループット性能の更新は、ホストが受領したI/O数を逐次カウントし、1秒ごとに集計する処理で実現できる。 The values in the columns 802 to 806 are measured by the host I / O program 401 and updated. Although details of how to update these values are not described in this specification, they can be updated using a general monitoring technique. For example, the update of the throughput performance can be realized by a process of sequentially counting the number of I / O received by the host and totaling it every second.
 図9は、ワークロード特性管理テーブル420の一例である。ワークロード特性管理テーブル420は、例えば、ワークロード特性毎の特性情報を管理するテーブルである。ワークロート特性管理テーブル420は、例えば、ワークロード特性毎に、ワークロード特性の識別子であるラベル901、ワークロード特性の各特性情報として、Read率902、Sequencial率903、I/Oサイズ904及びHit率905のカラムを含む。また、他に仮想ボリュームに対するレスポンス性能のカラム等を含んでもよい。 FIG. 9 is an example of the workload characteristic management table 420. The workload characteristic management table 420 is a table for managing characteristic information for each workload characteristic, for example. For example, the workload characteristic management table 420 includes, for each workload characteristic, a label 901 that is an identifier of the workload characteristic, a read rate 902, a sequential rate 903, an I / O size 904, and Hit as each characteristic information of the workload characteristic. A column with a rate of 905 is included. In addition, a response performance column for a virtual volume may be included.
 カラム902-905には、当該ワークロード特性を有する仮想ボリュームを測定した場合の、各特性情報の標準的な値(標準値)が含まれる。例えば、ワークロード特性が「OLTP1」の仮想ボリュームの標準値は、リード率が10%、シーケンシャル率が0%、IOサイズが8KB、ヒット率が0%である。 Columns 902 to 905 include standard values (standard values) of characteristic information when a virtual volume having the workload characteristic is measured. For example, the standard value of a virtual volume with the workload characteristic “OLTP1” has a read rate of 10%, a sequential rate of 0%, an IO size of 8 KB, and a hit rate of 0%.
 図10は、物理資源量管理テーブル415の一例を示す。物理資源量管理テーブル415は、物理ストレージが有する物理資源の資源量(物理資源量)を管理するテーブルである。物理資源量管理テーブル415は、物理資源毎に、例えば、物理資源の資源種別1001、物理資源の資源番号1002、物理資源の限界資源量1003、物理資源の資源割当て率1004、物理資源使用率1005、及び、物理資源使用率の閾値1006のカラムを含む。 FIG. 10 shows an example of the physical resource amount management table 415. The physical resource amount management table 415 is a table for managing the amount of physical resources (physical resource amount) of the physical storage. The physical resource amount management table 415 includes, for example, a physical resource resource type 1001, a physical resource resource number 1002, a physical resource limit resource amount 1003, a physical resource resource allocation rate 1004, and a physical resource usage rate 1005 for each physical resource. , And a physical resource usage rate threshold 1006 column.
 資源種別1001には、当該物理資源の種別が設定される。種別は、例えば、物理ポート、物理プロセッサ、物理メモリ、物理メディアなどである。資源番号1002には、当該物理資源の識別子が設定される。資源種別1001及び資源番号1002に設定される値により、物理資源を一意に特定できる。 In the resource type 1001, the type of the physical resource is set. The type is, for example, a physical port, a physical processor, a physical memory, a physical medium, or the like. In the resource number 1002, an identifier of the physical resource is set. The physical resource can be uniquely specified by the values set in the resource type 1001 and the resource number 1002.
 限界資源量1003には、当該物理資源の最大処理能力が設定される。資源割当て率1004には、当該限界資源量のうち、いずれかの仮想資源が占有する物理資源量の割合が設定される。物理資源使用率1005には、当該限界資源量のうち、いずれかの仮想資源が使用している物理資源量の割合が設定される。資源割り当て率や物理資源使用率は、物理資源の処理性能に基づく値である。尚、本明細書では、便宜上、100%から資源割り当て率1004を差し引いた値を余剰資源率とも表現する。 In the limit resource amount 1003, the maximum processing capacity of the physical resource is set. In the resource allocation rate 1004, the ratio of the physical resource amount occupied by any virtual resource in the limit resource amount is set. In the physical resource usage rate 1005, a ratio of the physical resource amount used by any virtual resource in the limit resource amount is set. The resource allocation rate and physical resource usage rate are values based on the processing performance of physical resources. In this specification, for convenience, a value obtained by subtracting the resource allocation rate 1004 from 100% is also expressed as a surplus resource rate.
 例えば、物理ポート#000の場合、限界資源量が4Gbpsであり、資源割当て率が10%であり、物理資源使用率が1%である。この場合、物理ポート#000の限界資源量4Gbpsのうち、400Mbps分がいずれかの仮想ストレージ200の仮想ポートに占有されており、そのうち40Mbpsを仮想ポートが使用していることを示す。 For example, in the case of physical port # 000, the limit resource amount is 4 Gbps, the resource allocation rate is 10%, and the physical resource usage rate is 1%. In this case, of the limited resource amount 4 Gbps of the physical port # 000, 400 Mbps is occupied by the virtual port of any virtual storage 200, and 40 Mbps is used by the virtual port.
 また、例えば、物理プロセッサ#000の場合、限界資源量が2GHzであり、資源割当て率が50%であり、物理資源使用率が40%である。この場合、物理プロセッサ#000の限界資源量2GHzのうち、1GHz分(または、毎秒500ms)はいずれかの仮想ストレージ200の仮想プロセッサに占有されており、そのうち0.8GHz分(または、毎秒400ms)を仮想プロセッサが使用していることを示す。 Also, for example, in the case of physical processor # 000, the limit resource amount is 2 GHz, the resource allocation rate is 50%, and the physical resource usage rate is 40%. In this case, of the limit resource amount 2 GHz of the physical processor # 000, 1 GHz (or 500 ms per second) is occupied by any virtual processor of the virtual storage 200, of which 0.8 GHz (or 400 ms per second). Indicates that the virtual processor is using.
 また、例えば、物理メモリ#000の場合、限界資源量が100MBであり、資源割当て率が30%であり、物理資源使用率が20%である。この場合、物理メモリ#000の限界資源量100MBのうち、30MB分がいずれかの仮想ストレージ200の仮想メモリに占有されており、そのうち20MB分を仮想メモリが使用そしていることを示す。なお、ここで仮想ストレージ200に使用されている容量は、単位時間当たりにリードキャッシュとして参照されたキャッシュ容量を示してもよい。 Also, for example, in the case of physical memory # 000, the limit resource amount is 100 MB, the resource allocation rate is 30%, and the physical resource usage rate is 20%. In this case, 30 MB of the limit resource amount 100 MB of the physical memory # 000 is occupied by the virtual memory of any one of the virtual storages 200, of which 20 MB is used by the virtual memory. Here, the capacity used for the virtual storage 200 may indicate a cache capacity referred to as a read cache per unit time.
 物理メディア#HDD002の場合、限界資源量が100IOPSであり、資源割当て率が60%であり、物理資源使用率が50%である。この場合、物理メディア#HDD002は、限界資源量100IOPSのうち、60IOPS分がいずれかの仮想ストレージ200の仮想メディアに占有されており、50IOPSMB分が仮想メディアに使用されていることを示す。 In the case of physical media # HDD002, the limit resource amount is 100 IOPS, the resource allocation rate is 60%, and the physical resource usage rate is 50%. In this case, the physical media # HDD002 indicates that 60 IOPS of the limit resource amount 100 IOPS is occupied by any virtual storage 200, and 50 IOPSMB is used for the virtual media.
 以上、各物理資源の資源割当て率と物理資源使用率の計算例を示した。当然ながら各値は、各物理資源の処理性能を対象とした資源量を示す値であれば、異なる計算式で算出することも、異なる単位を用いることも可能である。 The calculation examples of the resource allocation rate and physical resource usage rate of each physical resource have been described above. Of course, as long as each value is a value indicating the amount of resources targeted for the processing performance of each physical resource, it can be calculated by different calculation formulas or different units.
 閾値1006は、当該物理資源を資源逼迫状態と判定する閾値が設定される。サーバ2501は、定期的に又は不定期に資源逼迫改善プログラムを動作する。このプログラムは、例えば、閾値1006を参照し、物理資源使用率が閾値1006を超えた場合に、当該物理資源を資源逼迫状態と判定する。資源逼迫状態にある物理資源は、仮想ストレージ200が目標性能を達成する妨げとなりうる。資源逼迫改善プログラムにより、各物理資源の逼迫状態を改善しうる。 As the threshold 1006, a threshold for determining that the physical resource is in a resource tight state is set. The server 2501 operates the resource tightness improvement program regularly or irregularly. For example, this program refers to the threshold 1006 and determines that the physical resource is in a resource tight state when the physical resource usage rate exceeds the threshold 1006. Physical resources that are in a resource tight state can hinder the virtual storage 200 from achieving the target performance. The resource tightness improvement program can improve the tightness of each physical resource.
 図11は、仮想資源量管理テーブル416の一例を示す。仮想資源量管理テーブル416は、仮想ストレージ200が有する仮想資源の物理資源の割当量等を管理するテーブルである。仮想資源量管理テーブル416は、例えば、仮想ストレージの識別子を示す仮想ストレージ番号(VS#)1101、当該仮想ストレージに属する仮想資源の種別を示す資源種別1102、当該仮想資源に割り当てられる物理資源の識別子を示す資源番号1103、当該物理資源に割り当てられる仮想資源の占有率を示す資源占有率1104、当該物理資源のうち仮想資源に割り当てられていない割合を示す共有資源占有率1105、当該物理資源の仮想資源使用率1106、及びストレージ機能利用率1107のカラムを有する。 FIG. 11 shows an example of the virtual resource amount management table 416. The virtual resource amount management table 416 is a table for managing the allocation amount of physical resources of the virtual resources that the virtual storage 200 has. The virtual resource amount management table 416 includes, for example, a virtual storage number (VS #) 1101 indicating a virtual storage identifier, a resource type 1102 indicating the type of a virtual resource belonging to the virtual storage, and an identifier of a physical resource allocated to the virtual resource. Resource number 1103 indicating resource occupancy rate 1104 indicating the occupancy rate of the virtual resource allocated to the physical resource, shared resource occupancy rate 1105 indicating the proportion of the physical resource not allocated to the virtual resource, and virtual of the physical resource It has columns for a resource usage rate 1106 and a storage function usage rate 1107.
 資源占有率1104には、当該物理資源の限界資源量のうち、仮想資源が割当てられている(占有している)割合が設定される。例えば、VS#000が有する仮想プロセッサは、物理プロセッサ#000の限界資源量の50%、及び、プロセッサ#001の限界資源量の20%の物理資源量を占有している。 In the resource occupancy rate 1104, the ratio of the virtual resources allocated (occupied) is set out of the limit resource amount of the physical resource. For example, the virtual processor included in VS # 000 occupies 50% of the limit resource amount of physical processor # 000 and 20% of the limit resource amount of processor # 001.
 仮想資源使用率1106には、当該仮想ストレージが占有する当該物理資源量(=限界資源量×資源占有率)を100%とした場合の、当該仮想ストレージが実際に使用している当該物理資源量の割合が設定される。例えば、ポート#000の限界資源量が4Gbsであるとすると、VS#000は、ポート#000の限界資源量の10%である0.4Gbpsを占有していることとなる。このとき、VS#000が、占有している0.4Gbpsのうちの0.28Gbps分を実際に使用しているとすると、仮想資源使用率は70%(=0.28Gbps÷0.4Gbps)となる。 The virtual resource usage rate 1106 includes the physical resource amount actually used by the virtual storage when the physical resource amount occupied by the virtual storage (= limit resource amount × resource occupation rate) is 100%. Is set. For example, assuming that the limit resource amount of port # 000 is 4 Gbps, VS # 000 occupies 0.4 Gbps, which is 10% of the limit resource amount of port # 000. At this time, assuming that VS # 000 actually uses 0.28 Gbps of the occupied 0.4 Gbps, the virtual resource usage rate is 70% (= 0.28 Gbps ÷ 0.4 Gbps). Become.
 ストレージ機能利用率1107には、当該仮想ストレージが使用している仮想資源のうち、当該仮想ストレージがストレージ機能に使用している仮想資源の割合が設定される。 In the storage function usage rate 1107, a ratio of virtual resources used by the virtual storage for the storage function among the virtual resources used by the virtual storage is set.
 図12は、資源割当てプログラム400の一例である。サーバ2501は、管理サーバ110から仮想ストレージ設定要求を受信した場合に、資源割当てプログラム400を実行する。このプログラム400は、仮想ストレージが有する仮想資源を、物理ストレージが有するいずれの物理資源に、どの程度の資源量を割当てるかを決定するプログラムである。 FIG. 12 is an example of the resource allocation program 400. The server 2501 executes the resource allocation program 400 when receiving a virtual storage setting request from the management server 110. This program 400 is a program for determining how much resource amount a virtual resource of a virtual storage is allocated to which physical resource of the physical storage.
 プログラム400は、仮想ストレージ設定要求を受領する(S1201)。この要求には、例えば、対象となる仮想ストレージの仮想ストレージ番号、対象仮想ストレージに所属させる仮想ボリュームの仮想ボリューム番号、サイズ、目標性能、及び、対象仮想ストレージが有する仮想資源の構成情報(仮想ストレージ構成管理テーブル411の各値)等が含まれる。また、仮想ストレージ設定要求には、各仮想ボリュームのワークロード特性及び学習のポリシーが含まれてもよい。これらのポリシーについては、後述する。 The program 400 receives a virtual storage setting request (S1201). This request includes, for example, the virtual storage number of the target virtual storage, the virtual volume number of the virtual volume belonging to the target virtual storage, the size, the target performance, and the configuration information of the virtual resources of the target virtual storage (virtual storage Each value of the configuration management table 411) and the like are included. The virtual storage setting request may include the workload characteristics and learning policy of each virtual volume. These policies will be described later.
 プログラム400は、対象仮想ストレージが目標とする仮想資源の使用率(以下、目標資源使用率という)の初期値を設定する(S1202)。 The program 400 sets an initial value of a virtual resource usage rate (hereinafter referred to as a target resource usage rate) targeted by the target virtual storage (S1202).
 目標資源使用率は、資源再割当てプログラム402で使用される値であり、目標性能を達成するために必要な仮想資源量の予備量を制御する値である。例えば、目標資源使用率を10%に設定した場合、サーバ2501が目標性能達成に必要と見積もった仮想資源量の10倍の量を仮想ストレージに占有させることが可能であり、90%に設定した場合に比べて、ワークロードの変化が原因となる目標性能未達リスクを低減させることができる。目標資源使用率は、管理サーバによって指定されることも可能であるが、本実施例では、サーバ2501が自動調整する例を示す。 The target resource usage rate is a value used by the resource reallocation program 402, and is a value that controls the reserve amount of the virtual resource amount necessary to achieve the target performance. For example, if the target resource usage rate is set to 10%, the virtual storage can occupy 10 times the amount of virtual resources that the server 2501 has estimated to be necessary to achieve the target performance, and is set to 90%. Compared to the case, it is possible to reduce the risk of not achieving the target performance due to the change in the workload. The target resource usage rate can be specified by the management server, but in this embodiment, an example in which the server 2501 automatically adjusts is shown.
 本実施例では初期値を20%と設定し、管理サーバが設定した仮想資源量の5倍の物理占有量を確保する動作を例示する。その後、当該目標資源使用率は、資源再割当てプログラム402にて仮想資源使用率を考慮しながら引き上げられ、最終的に必要最小限の仮想資源量となった時点で確定される。 In this embodiment, the initial value is set to 20%, and an operation for securing a physical occupation amount five times the virtual resource amount set by the management server is illustrated. Thereafter, the target resource usage rate is raised in consideration of the virtual resource usage rate by the resource reallocation program 402, and is finally determined when the required minimum virtual resource amount is reached.
 プログラム400は、仮想ボリューム作成プログラムを実行する(S1203)。これにより、仮想ストレージに所属させる1つの仮想ボリュームの作成と仮想資源量の割当てが実行される。仮想ボリューム作成プログラムの詳細は後述する。 The program 400 executes a virtual volume creation program (S1203). Thereby, the creation of one virtual volume belonging to the virtual storage and the allocation of the virtual resource amount are executed. Details of the virtual volume creation program will be described later.
 プログラム400は、仮想ボリュームの作成が成功したか否かを判定する(S1204)。作成が失敗した場合(S1204;No)、プログラム400、当該プログラム400の実行により変更された内容をロールバックし(S1207)、対象仮想ストレージの設定の失敗を管理サーバ110に通知して(S1208)、処理を終了する。 The program 400 determines whether or not the virtual volume has been successfully created (S1204). When the creation fails (S1204; No), the program 400 and the contents changed by the execution of the program 400 are rolled back (S1207), and the management server 110 is notified of the setting failure of the target virtual storage (S1208). The process is terminated.
 一方、作成が成功した場合(S1204;Yes)、プログラム400は、仮想ストレージ設定要求で指定された全ての仮想ボリュームの作成が完了したか否かを判定する(S1205)。 On the other hand, when the creation is successful (S1204; Yes), the program 400 determines whether or not creation of all the virtual volumes specified in the virtual storage setting request is completed (S1205).
 全仮想ボリュームの作成が完了していない場合(S1205;No)、プログラム400は、S1203に処理を戻す。一方、全仮想ボリュームの作成が完了した場合(S1205;Yes)、プログラム400は、対象仮想ストレージの設定の成功を管理サーバ110に通知して(S1206)、処理を終了する。 If the creation of all virtual volumes has not been completed (S1205; No), the program 400 returns the process to S1203. On the other hand, when the creation of all virtual volumes is completed (S1205; Yes), the program 400 notifies the management server 110 of the successful setting of the target virtual storage (S1206), and the process ends.
 上記処理により、管理サーバ110からの要求に応じた仮想ストレージが設定され、それに属する仮想ボリュームが作成される。 Through the above processing, a virtual storage is set according to the request from the management server 110, and a virtual volume belonging to it is created.
 図13は、仮想ボリューム作成プログラムの一例である。このプログラム1202は、資源割当てプログラム400の一部であり、S1203で実行される。 FIG. 13 shows an example of a virtual volume creation program. This program 1202 is a part of the resource allocation program 400 and is executed in S1203.
 このプログラムは、仮想ストレージ設定要求で指定されたうちの1つの仮想ボリューム(以下、この説明では対象仮想ボリュームという)の作成と、対象仮想ボリュームの仮想資源の割当てを行う。 This program creates one of the virtual volumes specified in the virtual storage setting request (hereinafter referred to as the target virtual volume in this description) and allocates virtual resources for the target virtual volume.
 当該プログラムは、物理資源量管理テーブル415を参照し、資源種別1001の1つを選択する(S1301)。以下、S1302-1304について、資源種別としてプロセッサが選択された場合を説明する。他の資源種別についても同様のステップが行われる。 The program refers to the physical resource amount management table 415 and selects one of the resource types 1001 (S1301). Hereinafter, a case where a processor is selected as the resource type will be described with respect to S1302-1304. Similar steps are performed for other resource types.
 当該プログラムは、物理ストレージ内の全てのプロセッサ141から、物理資源使用率1005が最も小さいプロセッサ141を担当資源(担当プロセッサ)として選択する(S1302)。図10の例では「プロセッサ001」が選択される。 The program selects the processor 141 having the smallest physical resource usage rate 1005 as the assigned resource (the assigned processor) from all the processors 141 in the physical storage (S1302). In the example of FIG. 10, “processor 001” is selected.
 当該プログラムは、対象仮想ボリュームのボリュームサイズに応じた資源占有率を算出する(S1303)。対象仮想ボリュームの資源占有率は、例えば、「(対象仮想ストレージが有する仮想プロセッサ総資源量(仮想プロセッサ構成503の値))÷(対象仮想ストレージに所属させる仮想ボリュームのボリュームサイズの総和)×(対象仮想ボリュームのボリュームサイズ)÷(担当プロセッサの限界資源量)」で求まる。 The program calculates the resource occupation rate according to the volume size of the target virtual volume (S1303). The resource occupation rate of the target virtual volume is, for example, “(total virtual processor resource amount of the target virtual storage (value of virtual processor configuration 503)) ÷ (total volume size of virtual volumes belonging to the target virtual storage) × ( (Volume size of target virtual volume) / (limit resource amount of processor in charge) ”
 なお、S1303の目的は、対象仮想ボリュームの資源占有率の初期値として、妥当な値を決定することである。この目的に沿っていれば、対象仮想ボリュームの資源占有率を異なる手段で算出してもよい。例えば簡易的に、「(管理サーバが指定した仮想資源の総資源量)÷(対象仮想ストレージに所属させる仮想ボリュームの総数)÷(担当仮想資源の限界資源量)」で求めてもよい。 Note that the purpose of S1303 is to determine a reasonable value as the initial value of the resource occupation rate of the target virtual volume. If this is the case, the resource occupancy of the target virtual volume may be calculated by different means. For example, it may be calculated simply by “(total amount of virtual resources specified by the management server) ÷ (total number of virtual volumes belonging to the target virtual storage) ÷ (limit resource amount of assigned virtual resource)”.
 当該プログラムは、算出された資源占有率が、担当プロセッサの余剰資源率以下か否かを判定する(S1304)。算出された資源占有率が、担当プロセッサの余剰資源率を超えた場合(S1304;No)、当該プログラムは、資源割当てプログラム400に対し、仮想ボリューム作成の失敗を応答し(1310)、処理を終了する。 The program determines whether the calculated resource occupancy is less than or equal to the surplus resource ratio of the processor in charge (S1304). When the calculated resource occupancy exceeds the surplus resource rate of the processor in charge (S1304; No), the program responds to the resource allocation program 400 with a failure to create a virtual volume (1310) and ends the processing. To do.
 一方、算出された資源占有率が、担当プロセッサの余剰資源率以下の場合(S1304;Yes)、当該プログラムは、全ての資源種別に対し、資源占有率が算出されたか否かを判定する(S1305)。 On the other hand, when the calculated resource occupancy is equal to or less than the surplus resource ration of the processor in charge (S1304; Yes), the program determines whether the resource occupancy is calculated for all resource types (S1305). ).
 資源占有率を算出していない資源種別が存在する場合(S1305;No)、当該プログラムは、S1301に処理を戻し、資源占有率が算出されていない資源種別を1つ選択する。一方、全ての資源種別について資源占有率が算出された場合(S1305;Yes)、当該プログラムは、物理ボリュームを作成し(S1306)、作成した物理ボリュームに各担当資源を関連付ける。具体的には、当該プログラムは、物理ボリューム構成管理テーブル413について、定義されていない物理ボリューム(例えば物理ボリューム#001)を選択し、ボリュームサイズ702に、対象仮想ボリュームのボリュームサイズを設定し、算出した各担当資源の識別子を対応するカラム703-706にそれぞれ設定する。 If there is a resource type for which the resource occupancy rate has not been calculated (S1305; No), the program returns to S1301, and selects one resource type for which the resource occupancy rate has not been calculated. On the other hand, when the resource occupancy rate is calculated for all resource types (S1305; Yes), the program creates a physical volume (S1306) and associates each assigned resource with the created physical volume. Specifically, the program selects a physical volume that is not defined (for example, physical volume # 001) in the physical volume configuration management table 413, sets the volume size of the target virtual volume in the volume size 702, and calculates Each assigned resource identifier is set in the corresponding column 703-706.
 当該プログラムは、各担当資源へ仮想資源量を割当てる(S1307)。具体的には、当該プログラムは、各担当資源の資源割当て率1004及び資源占有率1104に、算出した資源占有率をそれぞれ加算する。 The program allocates a virtual resource amount to each resource in charge (S1307). Specifically, the program adds the calculated resource occupancy rate to the resource allocation rate 1004 and resource occupancy rate 1104 of each assigned resource.
 当該プログラムは、作成した物理ボリュームを、対象仮想ボリュームに関連付ける(S1308)。具体的には、当該プログラムは、仮想ボリューム構成管理テーブル412に対象仮想ボリュームのエントリを作成し、作成した物理ボリュームのボリュームサイズ602、物理ボリューム番号603、仮想ストレージ番頭000を設定する。 The program associates the created physical volume with the target virtual volume (S1308). Specifically, the program creates an entry for the target virtual volume in the virtual volume configuration management table 412 and sets the volume size 602, physical volume number 603, and virtual storage head 000 of the created physical volume.
 次いで、当該プログラムは、資源割当てプログラムに対し仮想ボリューム作成の成功を応答し(S1309)、処理を終了する。 Next, the program responds to the resource allocation program that the virtual volume has been successfully created (S1309) and ends the process.
 当該プログラムによれば、管理サーバ110からの仮想ストレージ設定要求に応じて、対象仮想ストレージに所属させる仮想ボリュームの担当資源を決定し、各担当資源へ適切な仮想資源量を割当てることができる。 According to the program, in response to a virtual storage setting request from the management server 110, it is possible to determine the resource in charge of the virtual volume to belong to the target virtual storage and assign an appropriate amount of virtual resource to each resource in charge.
 図14は、ホストI/Oプログラム401の一例である。ホストI/Oプログラム401は、ホスト100が発行し、サーバ2501が受信した仮想ボリューム300に対するリード又はライトコマンドを処理するプログラムである。尚、サーバ2501がコマンドを受信すると、任意に選択した1つのプロセッサ141が当該コマンドに対するホストI/Oプログラム401を起動する。 FIG. 14 is an example of the host I / O program 401. The host I / O program 401 is a program that processes a read or write command for the virtual volume 300 issued by the host 100 and received by the server 2501. Note that when the server 2501 receives a command, one arbitrarily selected processor 141 activates the host I / O program 401 corresponding to the command.
 プログラム401は、ホスト100からの仮想ボリュームに対するリード又はライトコマンドを受信する(1401)。以下、この説明においては、当該仮想ボリュームを指定仮想ボリュームといい、当該コマンドを対象コマンドという。 The program 401 receives a read or write command for the virtual volume from the host 100 (1401). Hereinafter, in this description, the virtual volume is referred to as a designated virtual volume, and the command is referred to as a target command.
 プログラム401は、仮想ボリューム構成管理テーブル412及び物理ボリューム構成管理テーブル413を参照し、指定仮想ボリュームの担当資源を特定する(S1402)。 The program 401 refers to the virtual volume configuration management table 412 and the physical volume configuration management table 413, and identifies the resource in charge of the designated virtual volume (S1402).
 プログラム401は、対象コマンドに対する処理が担当プロセッサで実行されているか否かを判定する(S1417)。つまり、自身を実行しているプロセッサが担当プロセッサか否かを判定する。担当プロセッサで実行されていない場合(S1417;No)、つまり、プログラム401は、担当プロセッサでプログラム401を再実行させるために、対象コマンドを担当プロセッサに転送し(S1418)、処理を終了する。 The program 401 determines whether or not processing for the target command is being executed by the processor in charge (S1417). That is, it is determined whether or not the processor executing itself is a responsible processor. If not executed by the responsible processor (S1417; No), that is, the program 401 transfers the target command to the responsible processor in order to re-execute the program 401 by the responsible processor (S1418), and the process is terminated.
 担当プロセッサで実行されている場合(S1417;Yes)、プログラム401は、担当ポートが対象コマンドを受信したかを判定する(S1403)。対象コマンドを担当ポート以外のポートが受信した場合(S1403;No)、プログラム401は、ホスト100にエラーを応答し(S1416)、処理を終了する。 If it is executed by the responsible processor (S1417; Yes), the program 401 determines whether the responsible port has received the target command (S1403). When a port other than the port in charge receives the target command (S1403; No), the program 401 returns an error to the host 100 (S1416) and ends the process.
 一方、対象コマンドを担当ポートが受信した場合(S1403;Yes)、プログラム401は、仮想資源量管理テーブル416を参照し、全ての担当資源の仮想資源使用率1106が上限値である100%未満であるか否かを判定する(S1404)。仮想資源使用率1106が100%の場合(S1404;Yes)、プログラム401は、一定時間のスリープ(S1415)を繰り返し、仮想資源使用率が100%未満となるのを待つ。 On the other hand, when the assigned port receives the target command (S1403; Yes), the program 401 refers to the virtual resource amount management table 416, and the virtual resource usage rate 1106 of all the assigned resources is less than the upper limit of 100%. It is determined whether or not there is (S1404). When the virtual resource usage rate 1106 is 100% (S1404; Yes), the program 401 repeats the sleep for a predetermined time (S1415), and waits for the virtual resource usage rate to become less than 100%.
 S1404の判定の結果、全ての担当資源の仮想資源使用率1106が100%未満である場合(S1404;Yes)、プログラム401は、対象コマンドを解析し(S1405)、対象コマンドがリードコマンドであるか否かを判定する(S1406)。 As a result of the determination in S1404, when the virtual resource usage rate 1106 of all the responsible resources is less than 100% (S1404; Yes), the program 401 analyzes the target command (S1405), and whether the target command is a read command. It is determined whether or not (S1406).
 S1406で、対象コマンドがリードコマンドである場合(S1406;Read)、プログラム401は、対象コマンドに基づく対象データ(リードデータ)が、担当メモリに記憶されているか否かを判定する(S1419)。対象データが担当メモリに記憶されている場合(S1419;Yes)、プログラム401は、ホスト100に対し、担当メモリ上の対象データを送信し(S1409)、モニタ情報を更新し(S1413)、処理を終了する。 In S1406, when the target command is a read command (S1406; Read), the program 401 determines whether target data (read data) based on the target command is stored in the responsible memory (S1419). When the target data is stored in the responsible memory (S1419; Yes), the program 401 transmits the target data on the responsible memory to the host 100 (S1409), updates the monitor information (S1413), and performs the processing. finish.
 一方、対象データが担当メモリに記憶されていない場合(S1419;No)、プログラム401は、担当メディアから対象データを読み込み(S1407)、対象データを担当メモリに記憶する(S1408)。次いで、プログラム401は、ホスト100に対し、担当メモリ上の対象データを送信し(S1409)、モニタ情報を更新し(S1413)、処理を終了する。 On the other hand, if the target data is not stored in the responsible memory (S1419; No), the program 401 reads the target data from the responsible medium (S1407) and stores the target data in the responsible memory (S1408). Next, the program 401 transmits the target data in the assigned memory to the host 100 (S1409), updates the monitor information (S1413), and ends the process.
 S1406で、対象コマンドがライトコマンドである場合(S1404;Write)、プログラム401は、担当メモリに対象データ記憶し(S1410)、ホスト100に正常応答を送信する(1411)。プログラム401は、任意のタイミングで、対象データを担当メディアに書き込み(S1412)。モニタ情報を更新し(S1413)、処理を終了する。 In S1406, when the target command is a write command (S1404; Write), the program 401 stores the target data in the responsible memory (S1410), and transmits a normal response to the host 100 (1411). The program 401 writes the target data to the assigned medium at an arbitrary timing (S1412). The monitor information is updated (S1413), and the process ends.
 なお、モニタ情報とは、指定仮想ボリュームに対する、スループット性能802、レスポンス性能803、リード率804、シーケンシャル率805及びヒット率806等である。また、モニタ情報には、プログラム401が使用した各担当資源の物理資源使用率1005及び仮想資源使用率1106も含まれる。仮想資源使用率については、当該仮想ボリュームが所属する仮想ストレージの値を更新する。 The monitor information includes throughput performance 802, response performance 803, read rate 804, sequential rate 805, hit rate 806, and the like for the specified virtual volume. The monitor information also includes a physical resource usage rate 1005 and a virtual resource usage rate 1106 of each responsible resource used by the program 401. As for the virtual resource usage rate, the value of the virtual storage to which the virtual volume belongs is updated.
 ホストI/Oプログラム401により、対象コマンドに基づき、指定仮想ボリュームの担当資源を特定することができ、かつ、それら担当資源の仮想資源使用率が上限値(この例では100%)に達したか否かを判定し、達していない場合にのみ対象コマンドの処理を行うことができる。また、仮想資源使用率が上限値に達した場合には、共有資源の割当てを行うことで、対象コマンドの処理を迅速に実行することができる。 Whether the host I / O program 401 can identify the resource assigned to the specified virtual volume based on the target command, and whether the virtual resource usage rate of the assigned resource has reached the upper limit (100% in this example). It is possible to determine whether or not the target command is processed only when it has not been reached. Further, when the virtual resource usage rate reaches the upper limit value, the processing of the target command can be quickly executed by allocating the shared resource.
 さらに、プログラム401が、対象コマンドに対する処理のモニタ情報を取得することができる。 Furthermore, the program 401 can acquire monitor information of processing for the target command.
 本実施例に係る物理ストレージが有するストレージ機能について説明する。ストレージ機能として、例えば、ボリュームコピー機能、重複排除機能、圧縮機能等がある。 The storage function of the physical storage according to this embodiment will be described. Examples of storage functions include a volume copy function, a deduplication function, and a compression function.
 図15は、ボリュームコピー機能を説明する図である。図15Aは、ボリュームコピー機能の概要を示す図である。図15Bは、ボリュームコピー機能における、状態遷移図である。 FIG. 15 is a diagram for explaining the volume copy function. FIG. 15A is a diagram showing an overview of the volume copy function. FIG. 15B is a state transition diagram in the volume copy function.
 図15Aを説明する。ボリュームコピー機能とは、ある仮想ボリューム300の複製となる仮想ボリュームを生成する機能である。具体的には、複製元の仮想ボリューム内のデータを、複製先の仮想ボリュームにコピーする(ボリュームコピー;1503)。本明細書では、複製元の仮想ボリュームをPrimary Volume(PVOL)1501とし、複製先の仮想ボリュームをSecondary Volume(SVOL)1502とする。 FIG. 15A will be described. The volume copy function is a function for generating a virtual volume that is a copy of a certain virtual volume 300. Specifically, the data in the replication source virtual volume is copied to the replication destination virtual volume (volume copy; 1503). In this specification, the replication source virtual volume is a primary volume (PVOL) 1501, and the replication destination virtual volume is a secondary volume (SVOL) 1502.
 図15Bを参照し、各状態を順次説明する。Init1511は、初期状態を示す。初期状態は、PVOL1502及びSVOL1502間のボリュームコピー1503を実行していない状態である。Init1511からSVOLを作成する操作(図中のcreate)を経て、Copying1502の状態に遷移する。 Referring to FIG. 15B, each state will be described sequentially. Init 1511 indicates an initial state. The initial state is a state in which the volume copy 1503 between the PVOL 1502 and the SVOL 1502 is not executed. The state transits to the state of Copying 1502 through an operation (create in the figure) for creating an SVOL from Init 1511.
 Copying1512は、PVOL1501からSVOL1502へ、ボリュームコピー1503を実行している途中の状態を示す。 Copying 1512 indicates a state in the middle of executing the volume copy 1503 from the PVOL 1501 to the SVOL 1502.
 Paired1513は、PVOL1501及びSVOL1502内のデータの内容が一致している状態である。具体的には、例えば、ボリュームコピー1503が完了した直後の状態、又は、ボリュームコピー1503完了後、PVOL1501にライトデータが書き込まれ、かつSVOL1502に反映された状態等である。 Paired 1513 is a state in which the contents of data in PVOL 1501 and SVOL 1502 match. Specifically, for example, a state immediately after the volume copy 1503 is completed, or a state in which write data is written in the PVOL 1501 and reflected in the SVOL 1502 after the volume copy 1503 is completed.
 Suspended1514は、PVOL1501及びSVOL1502内のデータの内容が不一致の状態である。具体的には、例えば、ライトコマンドに基づくライトデータがPVOL1501のみに書き込まれ、SVOL1502に反映されていない状態等である。この場合、例えば、PVOL1501及びSVOL1502間のデータ差分箇所が、記録されている。PVOLへの書込みにより、Paired1513を一時中断する操作が行われると(図中のSuspend)、Suspended1514の状態に遷移する。また、Suspended1514から、再同期の操作が行われると(図中のResync)、Copying1512の状態に遷移する。 Suspended 1514 is in a state where the contents of the data in PVOL 1501 and SVOL 1502 do not match. Specifically, for example, the write data based on the write command is written only in the PVOL 1501 and is not reflected in the SVOL 1502. In this case, for example, a data difference portion between the PVOL 1501 and the SVOL 1502 is recorded. When an operation to temporarily suspend Paired 1513 is performed by writing to PVOL (Suspend in the figure), the state transits to the state of Suspended 1514. Further, when a resynchronization operation is performed from Suspended 1514 (Resync in the figure), the state transits to Copying 1512.
 Restoreing1515は、PVOL1501及びSVOL1502間のデータ差分箇所が、SVOL1502に反映されている状態である。Suspended1514からSVOL1502へのデータ差分箇所の反映の操作が行われると(図中のRestore)、Restoringの状態に遷移する。そして、反映が完了するとPaired1513の状態に遷移する。 Restoring 1515 is a state in which a data difference portion between the PVOL 1501 and the SVOL 1502 is reflected in the SVOL 1502. When an operation for reflecting the data difference portion from the Suspended 1514 to the SVOL 1502 is performed (Restore in the figure), the state transits to the Restoring state. When the reflection is completed, the state transits to the Paired 1513 state.
 各状態により、PVOL1501及びSVOL1502が必要とする仮想資源量が異なる。例えば、状態がCopying1512の場合、Suspended1514の場合に比べて、SVOL1502にはより多くの量の仮想資源が必要になる。すなわち、Suspended1514から、Copying1511に状態遷移した契機、つまり、Resync操作を行う契機で、SVOL1502に仮想資源を適切な量だけ追加する制御を行う必要がある。 The amount of virtual resources required by PVOL 1501 and SVOL 1502 differs depending on each state. For example, when the status is Copying 1512, the SVOL 1502 requires a larger amount of virtual resources than when the status is Suspended 1514. That is, it is necessary to perform control for adding an appropriate amount of virtual resources to the SVOL 1502 when the state transition is made from the Suspended 1514 to the Copying 1511, that is, when the Resync operation is performed.
 図16は、重複排除機能及び圧縮機能を説明する図である。図16Aは、重複排除機能及び圧縮機能の概要を示す図である。図16Bは、重複排除機能及び圧縮機能における、状態遷移図である。 FIG. 16 is a diagram for explaining the deduplication function and the compression function. FIG. 16A is a diagram illustrating an overview of the deduplication function and the compression function. FIG. 16B is a state transition diagram in the deduplication function and the compression function.
 図16Aを説明する。複数の仮想ボリューム300において同一のデータが格納されている領域1601がある場合、これらの領域1601内のデータは重複する。重複排除機能とは、これらの領域(以下、重複領域という)1601をそれぞれ、1つの物理領域1602に対応づける機能である(重複排除1610)。つまり、重複排除機能は、複数の重複領域1601内のデータをまとめて1つの物理領域1602に格納することで物理ボリューム301の容量効率を向上させる機能である。尚、重複領域1601は、仮想ボリューム300の単位で設定されてもよいし、仮想ボリューム300よりも小さい領域の単位(例えばページ)毎に設定されてよい。 FIG. 16A will be described. When there are areas 1601 where the same data is stored in a plurality of virtual volumes 300, the data in these areas 1601 overlap. The deduplication function is a function for associating each of these areas (hereinafter referred to as duplication areas) 1601 with one physical area 1602 (duplication elimination 1610). In other words, the deduplication function is a function that improves the capacity efficiency of the physical volume 301 by storing data in a plurality of overlapping areas 1601 together in one physical area 1602. Note that the overlapping area 1601 may be set in units of the virtual volume 300, or may be set in units of areas (for example, pages) smaller than the virtual volume 300.
 一方、圧縮機能とは、仮想領域1603内のデータを圧縮1611して、対応する物理領域格納1604に格納することで、容量効率を向上させる機能である。尚、同一のデータが格納される複数の仮想ボリューム300内の仮想領域1601に、重複排除1610とともに圧縮1611の機能を適用することも可能である。 On the other hand, the compression function is a function of improving capacity efficiency by compressing 1611 the data in the virtual area 1603 and storing it in the corresponding physical area storage 1604. It is possible to apply the function of compression 1611 together with deduplication 1610 to virtual areas 1601 in a plurality of virtual volumes 300 in which the same data is stored.
 例えば、圧縮機能が適用される場合、仮想ボリューム300の仮想領域1603に対して圧縮操作や圧縮を解除する操作(伸縮操作)を実施する必要があり、圧縮機能を適用しない場合に比べて仮想ボリューム300が必要とする仮想資源量がより多くなる。すなわち、圧縮操作を実行した契機で仮想ボリューム300に適切な仮想資源量を追加する制御を行う必要がある。 For example, when the compression function is applied, it is necessary to perform a compression operation or an operation for releasing the compression (expansion / contraction operation) on the virtual area 1603 of the virtual volume 300, and the virtual volume compared to the case where the compression function is not applied 300 requires more virtual resources. That is, it is necessary to perform control for adding an appropriate virtual resource amount to the virtual volume 300 when the compression operation is executed.
 図16Bを参照し、各状態を順次説明する。Init1605は、初期状態を示す。初期状態は、重複排除1610又は圧縮1604を実行していない状態である。Deduplicating(Compressing)1606は、重複排除1610(圧縮1611)の操作(Deduplicate(Compress))を実行中の状態である。Deduplicated(Compressed)1608は、重複排除1610(圧縮1611)の処理が完了した状態である。Duplicating(De-Compressing)1606は、重複排除1610(圧縮1611)を解除するための操作(Duplicate(De-Compress))を実行中の状態である。 Referring to FIG. 16B, each state will be described sequentially. Init 1605 indicates an initial state. The initial state is a state where deduplication 1610 or compression 1604 is not executed. Deduplicating (Compressing) 1606 is a state in which an operation (Deduplicate (Compress)) of deduplication 1610 (compression 1611) is being executed. Dedicated (Compressed) 1608 is a state in which the process of deduplication 1610 (compression 1611) is completed. Duplicating (De-Compressing) 1606 is a state in which an operation (Duplicate (De-Compress)) for releasing deduplication 1610 (compression 1611) is being executed.
 図17は、ストレージ機能状態管理テーブル417の一例である。ストレージ機能状態管理テーブル417は、仮想ボリューム300毎のストレージ機能を管理するテーブルである。ストレージ機能状態管理テーブル417は、例えば、仮想ボリューム毎に、仮想ボリュームの仮想ボリューム番号(VVOL#)1701、仮想ボリュームの機能種別1702、及び、仮想ボリュームの状態1703のカラムを含む。 FIG. 17 is an example of the storage function status management table 417. The storage function status management table 417 is a table for managing storage functions for each virtual volume 300. The storage function status management table 417 includes, for example, columns of a virtual volume virtual volume number (VVOL #) 1701, a virtual volume function type 1702, and a virtual volume status 1703 for each virtual volume.
 機能種別1702には、当該仮想ボリュームに適用されているストレージ機能の種別が設定される。具体的には、例えば、機能種別カラム1702には、ストレージ機能として、「ボリュームコピー( )」、「重複排除」、「圧縮」等が設定される。尚、ボリュームコピーの場合、( )内には、当該仮想ボリュームが複製元(PVOL)か複製先(SVOL)のいずれであるかが設定される。 In the function type 1702, the type of storage function applied to the virtual volume is set. Specifically, for example, “volume copy ()”, “deduplication”, “compression”, and the like are set in the function type column 1702 as storage functions. In the case of volume copy, the parenthesis indicates whether the virtual volume is a replication source (PVOL) or a replication destination (SVOL).
 状態1703には、当該仮想ボリュームのストレージ機能に関する現状の状態等が設定される。例えば、ボリュームコピーの場合、状態1703には、図15Bの各状態(Init、Copying等)が設定される。例えば、重複排除の場合、状態1703には、当該仮想ボリューム300の全領域に対する重複領域1601の割合が設定される。例えば、圧縮の場合、状態1703には、当該仮想ボリュームの圧縮状態として、圧縮済み又は未圧縮のいずれかが設定される。 In the status 1703, the current status of the storage function of the virtual volume is set. For example, in the case of volume copy, each state (Init, Copying, etc.) in FIG. For example, in the case of deduplication, the status 1703 is set with the ratio of the overlapping area 1601 to the entire area of the virtual volume 300. For example, in the case of compression, the state 1703 is set to either compressed or uncompressed as the compression state of the virtual volume.
 図18は、デフォルト資源量テーブル418の一例である。デフォルト資源量テーブル418は、ストレージ機能の機能種別毎に、操作が行われた場合の仮想ボリューム300の仮想資源量の補正率を管理するテーブルである。デフォルト資源量テーブル418は、例えば、ストレージ機能毎に、ストレージ機能の種別を示す機能種別カラム1801、ストレージ機能の各状態に遷移させるための操作1802、操作を行った場合のポートの資源量の補正率を示すポート補正率1803、当該操作を行った場合のプロセッサの資源量の補正率を示すプロセッサ1804、操作を行った場合のメモリの資源量の補正率を示すメモリ補正率1805、及び、操作を行った場合のメディアの資源量の補正率を示すメディア補正率1806のカラムを含む。 FIG. 18 is an example of the default resource amount table 418. The default resource amount table 418 is a table for managing the correction rate of the virtual resource amount of the virtual volume 300 when an operation is performed for each function type of the storage function. The default resource amount table 418 includes, for example, a function type column 1801 indicating the type of storage function for each storage function, an operation 1802 for transitioning to each state of the storage function, and correction of the resource amount of the port when the operation is performed. Port correction rate 1803 indicating the rate, processor 1804 indicating the rate of correction of the resource amount of the processor when the operation is performed, memory correction rate 1805 indicating the rate of correction of the resource amount of the memory when the operation is performed, and operation Includes a column of media correction rate 1806 indicating the correction rate of the amount of resource of the media when performing.
 機能種別1801には、ストレージ機能状態管理テーブル417の機能種別1702と同様の種別が設定される。ポート補正率1803、プロセッサ補正率1804、メモリ補正率1805、及びメディア補正率1806には、仮想ボリュームに当初割り当てられる各仮想資源の仮想資源量に対する、当該操作が行われた場合の各仮想資源の増加量の割合が設定されてよい。 In the function type 1801, the same type as the function type 1702 of the storage function state management table 417 is set. The port correction rate 1803, the processor correction rate 1804, the memory correction rate 1805, and the media correction rate 1806 indicate the virtual resource amount when each operation is performed on the virtual resource amount of each virtual resource initially allocated to the virtual volume. A rate of increase may be set.
 図19は、仮想資源量学習テーブル419の一例である。仮想資源量学習テーブル419は、ストレージ機能の各操作を行ったときの、仮想ボリュームの学習結果をワークロード毎に管理するテーブルである。 FIG. 19 is an example of the virtual resource amount learning table 419. The virtual resource amount learning table 419 is a table for managing the learning result of the virtual volume for each workload when each operation of the storage function is performed.
 仮想資源量学習テーブル419は、例えば、仮想ボリュームのワークロード特性における操作毎に、ワークロード特性を示すワークロード1901、ストレージ機能の種別を示す機能種別1902、ストレージ機能の各状態に遷移するための操作を示す操作1903、学習状態1904、学習結果1905、収集データ1906、及び、学習回数1907のカラムを含む。ここで学習とは、学習の対象となる仮想ボリュームを、学習用の仮想ストレージに隔離し、学習用の仮想ストレージに割り当てられた仮想資源量の増加率をモニタすることである。モニタしたデータは、仮想ボリュームのワークロード特性及び仮想ボリュームに適用されるストレージ機能の機能種別及び操作毎に収集データとして算出される。収集データの算出は、仮想資源量学習プログラムを実行することにより行われる。なお、本図のワークロード1901は、図9のラベル901に対応する。また、本図の機能種別1902及び操作1903は、図18の機能種別1801及び操作1802に対応する。 The virtual resource amount learning table 419 includes, for example, a workload 1901 indicating the workload characteristics, a function type 1902 indicating the storage function type, and a storage function status for each operation in the workload characteristics of the virtual volume. The column includes an operation 1903 indicating an operation, a learning state 1904, a learning result 1905, collected data 1906, and a learning count 1907. Here, learning refers to isolating a virtual volume to be learned into a learning virtual storage and monitoring the rate of increase in the amount of virtual resources allocated to the learning virtual storage. The monitored data is calculated as collected data for each workload characteristic of the virtual volume, the function type of the storage function applied to the virtual volume, and each operation. The collection data is calculated by executing the virtual resource amount learning program. The workload 1901 in this figure corresponds to the label 901 in FIG. Further, the function type 1902 and the operation 1903 in this figure correspond to the function type 1801 and the operation 1802 in FIG.
 学習状態1904には、当該エントリが有効か否かを識別する識別子が設定される。具体的には、学習状態1904には、対象となるワークロード特性、機能種別及び操作における、複数の学習状態が設定される。各学習状態は、例えば“未学習”、“学習中”、“学習完了”である。 In the learning state 1904, an identifier for identifying whether or not the entry is valid is set. Specifically, the learning state 1904 is set with a plurality of learning states in the target workload characteristics, function types, and operations. Each learning state is, for example, “not learned”, “learning”, or “learning complete”.
 “未学習”は、未だ測定を開始しておらず、収集データを取得していない状態である。“学習中”は、測定を開始し、収集データを取得中の状態であるが、未だ必要数の収集データが取得されておらず学習結果を利用できないことを示す。“学習完了”は、必要数の収集データの取得が完了した状態であり、学習結果を利用可能であることを示す。 “Unlearned” is a state where measurement has not yet started and collected data has not been acquired. “Learning” indicates that the measurement is started and the collected data is being acquired, but the required number of collected data has not yet been acquired and the learning result cannot be used. “Learning complete” indicates that the necessary number of collected data has been acquired and the learning result can be used.
 学習結果1905には、学習結果が格納される。収集データ1906には、取得された収集データが格納される。学習回数1907には、取得した収集データの数が格納される。なお、学習結果及び収集データは、例えば、図19の下図のように、仮想資源毎の資源量の増加率(仮想資源量増加率)である。また、各仮想資源の収集データは、予め設定された数(規定回数)採取される。学習結果は、規定回数の収集データの平均値である。つまり、各仮想資源の収集データを学習回数で割った値が、各仮想資源の学習結果となる。 The learning result 1905 stores the learning result. The collected data 1906 stores the acquired collected data. The learning count 1907 stores the number of acquired collected data. Note that the learning result and the collected data are, for example, the rate of increase of the resource amount for each virtual resource (virtual resource amount increase rate) as shown in the lower diagram of FIG. The collection data of each virtual resource is collected in a preset number (specified number of times). The learning result is an average value of the collected data of the specified number of times. That is, a value obtained by dividing the collected data of each virtual resource by the number of learnings is a learning result of each virtual resource.
 例えば、ワークロード特性が“OLTP1”であり、ストレージ機能として“ボリュームコピー”機能を有する仮想ボリュームについて、“Restore”操作が行われた場合、学習結果は、CCCとなる。CCCは、各仮想資源の2回の収集データ(CC1及びCC2)の平均値である。 For example, when a “Restore” operation is performed for a virtual volume having a workload characteristic “OLTP1” and having a “volume copy” function as a storage function, the learning result is CCC. CCC is an average value of data collected twice (CC1 and CC2) for each virtual resource.
 想資源量学習テーブル419により、ワークロード特性、ストレージ機能の機能種別及び操作に応じた学習結果を記憶することができ、下記で説明する仮想資源量学習プログラム403において、各仮想ボリュームの適切な学習結果を参照することができる。 The virtual resource amount learning table 419 can store learning results according to workload characteristics, storage function function types, and operations. In the virtual resource amount learning program 403 described below, appropriate learning of each virtual volume can be performed. You can refer to the results.
 本実施例では、仮想ボリュームに対してワークロード特性及び学習のポリシーが設定される。当該ポリシーは、ストレージ機能を適用する仮想ボリュームに対して設定される。なお、当該ポリシーは、仮想ストレージ及び仮想ボリュームを作成する際に設定されてもよいし、いずれのタイミングで設定されてよい。 In this embodiment, workload characteristics and learning policies are set for the virtual volume. This policy is set for the virtual volume to which the storage function is applied. The policy may be set when creating a virtual storage and a virtual volume, or may be set at any timing.
 ポリシーの設定は、管理サーバ110又はサーバ2501に接続されるユーザ計算機ら行われる。そして、サーバ2501は、ポリシーの設定を、ユーザ計算機から受領し、仮想ボリューム構成管理テーブル412のラベル901及び学習機能適用要否607に設定する。なお、管理サーバ110が、ユーザ計算機からのポリシーの設定を受領し、仮想資源量学習テーブル419を設定してもよい。前述の通り、仮想資源量学習テーブル419は、サーバ2501及び管理サーバ110間で同期される。 Policy setting is performed by a user computer connected to the management server 110 or the server 2501. Then, the server 2501 receives the policy setting from the user computer and sets it in the label 901 and the learning function application necessity 607 of the virtual volume configuration management table 412. The management server 110 may receive a policy setting from the user computer and set the virtual resource amount learning table 419. As described above, the virtual resource amount learning table 419 is synchronized between the server 2501 and the management server 110.
 図20に、ユーザ計算機に表示される設定画面2301の一例を示す。ユーザは、設定画面2301により、ストレージ機能を適用する仮想ボリュームの仮想ボリューム番号を選択する。また、ユーザは、ワークロード特性ポリシー2302により、選択した仮想ボリュームのワークロード特性及び学習のポリシーを設定する。ワークロード特性のポリシーは、例えば、ユーザが入力するか、自動識別するかの選択による。学習のポリシーは、指定した仮想ボリュームが学習を要するか否かを指定する。 FIG. 20 shows an example of the setting screen 2301 displayed on the user computer. The user selects the virtual volume number of the virtual volume to which the storage function is applied on the setting screen 2301. Further, the user sets the workload characteristics and learning policy of the selected virtual volume according to the workload characteristics policy 2302. The policy of the workload characteristic depends on, for example, selection of whether the user inputs or automatically identifies. The learning policy specifies whether or not the specified virtual volume requires learning.
 ワークロード特性のポリシー2302として“ラベル指定”もしくは“自動識別”のいずれかを選択可能である。学習のポリシー2302として、“学習要”又は“学習不要”のいずれかを選択可能である。この例では、仮想ボリューム#003が選択され、ラベル指定“OLTP1”及び“学習要“が設定さている。 Either “label designation” or “automatic identification” can be selected as the workload characteristic policy 2302. As the learning policy 2302, either “learning required” or “learning unnecessary” can be selected. In this example, the virtual volume # 003 is selected, and the label designation “OLTP1” and “learning required” are set.
 要求元の計算機は、当該選択を、サーバ2501に送信する。 ポリシー2302が“自動識別”の場合、サーバ2501は、ワークロード判定プログラム405を実行し、選択された仮想ボリュームのワークロード特性を決定する。そして、サーバ2501は、同一ラベルの仮想ボリューム群を、同一ワークロード特性を有するものとして認識する。ポリシー2303が“学習不要”の場合、サーバ2501は、ストレージ機能適用プログラム402において、当該仮想ボリュームに対して学習機能を適用しない。 The requesting computer transmits the selection to the server 2501. When the policy 2302 is “automatic identification”, the server 2501 executes the workload determination program 405 to determine the workload characteristics of the selected virtual volume. Then, the server 2501 recognizes virtual volume groups with the same label as having the same workload characteristics. When the policy 2303 is “no learning required”, the server 2501 does not apply the learning function to the virtual volume in the storage function application program 402.
 図21は、ワークロード判定プログラム405が実行する処理の一例である。なお、以下の説明では、この処理の主体は、サーバ2501(ワークロード判定プログラム405)であるが、これに限られない。この処理の主体は、管理サーバ110(システム管理ソフト)であってもよい。 FIG. 21 shows an example of processing executed by the workload determination program 405. In the following description, the subject of this processing is the server 2501 (workload determination program 405), but is not limited thereto. The subject of this processing may be the management server 110 (system management software).
 ワークロード判定プログラム405は、サーバ2501が、選択された仮想ボリュームのワークロード特性のポリシー2302として、“自動識別”を受領したときに実行される。選択された仮想ボリュームをこの説明では、対象仮想ボリュームという。 The workload determination program 405 is executed when the server 2501 receives “automatic identification” as the workload characteristic policy 2302 of the selected virtual volume. In this description, the selected virtual volume is referred to as a target virtual volume.
 プログラム405は、仮想ボリュームモニタテーブル414を参照し、対象仮想ボリュームのモニタ情報802-806を取得する(S2401)。プログラム405は、取得したモニタ情報802-806に基づき、対象仮想ボリュームのワークロード特性を分類する(S2402)。具体的には、プログラム405は、取得したモニタ情報802-806に対する、仮想ボリュームモニタテーブル414に設定された各ワークロードの各パラメータ902-905との類似度を計算することで、ワークロード特性の分類を行う。類似度の計算には、例えば、最小二乗法を用いる。当該分類は、採取したモニタ情報802-806について、ワークロード特性の各パラメータ902-905との差分をそれぞれ計算し、差分が最も小さいワークロード特性を対象仮想ボリュームのワークロード特性とみなす。プログラム405は、決定したワークロード特性を、仮想ストレージ構成管理テーブル412のラベル604に設定する(S2403)。 The program 405 refers to the virtual volume monitor table 414 and acquires monitor information 802-806 of the target virtual volume (S2401). The program 405 classifies the workload characteristics of the target virtual volume based on the acquired monitor information 802-806 (S2402). Specifically, the program 405 calculates the similarity of the workload characteristics by calculating the similarity between the acquired monitor information 802-806 and each parameter 902-905 of each workload set in the virtual volume monitor table 414. Perform classification. For example, the least square method is used for calculating the similarity. In this classification, the difference between the collected monitor information 802 to 806 and the workload characteristic parameters 902 to 905 is calculated, and the workload characteristic with the smallest difference is regarded as the workload characteristic of the target virtual volume. The program 405 sets the determined workload characteristics in the label 604 of the virtual storage configuration management table 412 (S2403).
 上記処理により、サーバ2501は、仮想ストレージに所属する各仮想ボリュームのワークロード特性を把握することができる。各仮想ボリュームのワークロード特性を把握することにより、仮想ボリュームにストレージ機能を適用した場合のワークロード特性毎の学習結果を取得することができる。 Through the above processing, the server 2501 can grasp the workload characteristics of each virtual volume belonging to the virtual storage. By grasping the workload characteristics of each virtual volume, a learning result for each workload characteristic when the storage function is applied to the virtual volume can be acquired.
 図22は、ストレージ機能適用プログラム402が実行する処理のフローチャートの一例である。サーバ2501は、要求元の計算機からストレージ機能適用要求を受領したときに、プログラム402を実行する。要求元の計算機は、要求の対象となる仮想ボリュームと、当該仮想ボリュームに対するストレージ機能の種別及び操作を指定し、その操作を要求するストレージ機能適用要求をサーバ2501へ送信する。この要求は、ストレージ機能の一つの機能種別の一つの操作と、その操作の対象となる仮想ボリュームの仮想ボリューム番号とを示す。 FIG. 22 is an example of a flowchart of processing executed by the storage function application program 402. The server 2501 executes the program 402 when it receives a storage function application request from the requesting computer. The requesting computer designates the virtual volume to be requested, the type and operation of the storage function for the virtual volume, and transmits a storage function application request for requesting the operation to the server 2501. This request indicates one operation of one function type of the storage function and the virtual volume number of the virtual volume that is the target of the operation.
 以下の説明では、要求の対象となる仮想ボリュームを対象仮想ボリュームとし、対象仮想ボリュームが現在所属している仮想ストレージを対象仮想ストレージとする。なお、ここでいう要求元の計算機とは、ネットワーク131又は130に接続されるユーザ計算機や管理サーバ110であってよい。 In the following description, the virtual volume to be requested is a target virtual volume, and the virtual storage to which the target virtual volume currently belongs is the target virtual storage. Here, the request source computer may be a user computer or the management server 110 connected to the network 131 or 130.
 プログラム402は、ストレージ機能適用要求を受領する(S2001)。プログラム402は、仮想ボリューム構成管理テーブル412を参照し、対象仮想ボリュームに学習機能を適用する必要があるか否かを判定する(S2011)。 The program 402 receives a storage function application request (S2001). The program 402 refers to the virtual volume configuration management table 412 and determines whether or not the learning function needs to be applied to the target virtual volume (S2011).
 対象仮想ボリュームの学習が不要の場合(S2011;不要)、プログラム402は、対象仮想ボリュームに指定されたストレージ機能を適用し(S2009)、要求元の計算機に適用完了を応答し(S2010)、処理を終了する。尚、サーバ2501は、対象ボリュームに対し、適用したストレージ機能の操作を、プログラム402とは非同期に行う(非同期処理)。 When learning of the target virtual volume is unnecessary (S2011; unnecessary), the program 402 applies the storage function specified for the target virtual volume (S2009), responds the completion of application to the requesting computer (S2010), and performs processing. Exit. The server 2501 performs the operation of the applied storage function on the target volume asynchronously with the program 402 (asynchronous processing).
 一方、対象仮想ボリュームの学習が必要な場合(S2011;要)、プログラム402は、対象仮想ボリュームに要求に含まれるストレージ機能の機能種別及び操作を行った場合の、対象仮想ストレージの仮想資源量の見積もりが可能か否かを判定する(S2002)。具体的には、プログラム402は、仮想ボリューム構成管理テーブル412のラベル604を参照し、対象仮想ボリュームのワークロード特性を取得する。次いで、プログラム402は、仮想資源量学習テーブル419を参照し、対象仮想ボリュームのワークロード特性について、要求に含まれるストレージ機能の機能種別及び操作の学習が完了しているか否かを判定する。換言すると、この判定は、学習用の仮想ストレージ装置を生成するかの判定である。 On the other hand, when learning of the target virtual volume is necessary (S2011; required), the program 402 determines the virtual resource amount of the target virtual storage when the function type and operation of the storage function included in the request are performed on the target virtual volume. It is determined whether estimation is possible (S2002). Specifically, the program 402 refers to the label 604 of the virtual volume configuration management table 412 and acquires the workload characteristics of the target virtual volume. Next, the program 402 refers to the virtual resource amount learning table 419 and determines whether the learning of the function type and operation of the storage function included in the request has been completed for the workload characteristics of the target virtual volume. In other words, this determination is a determination as to whether to create a learning virtual storage device.
 見積りが可能な場合は(S2002;可能)、対象仮想ボリュームのワークロード特性に対応する、ストレージ機能の機能種別及び操作の学習が完了している状態である。つまり、仮想資源量学習テーブル419のうち、取得されたワークロード特性と要求された操作との組み合わせに対応する学習状態1904に“学習完”が設定され、学習結果(仮想資源量増加率)が記憶されている状態である。この場合、プログラム402は、学習用の仮想ストレージ装置を生成する必要がないので、学習結果1905に応じた対象仮想ストレージの仮想資源量を取得する(S2007)。 If the estimation is possible (S2002; possible), the learning of the function type and operation of the storage function corresponding to the workload characteristics of the target virtual volume is completed. That is, in the virtual resource amount learning table 419, “learning complete” is set in the learning state 1904 corresponding to the combination of the acquired workload characteristic and the requested operation, and the learning result (virtual resource amount increase rate) is set. It is a memorized state. In this case, since the program 402 does not need to generate a learning virtual storage device, the program 402 acquires the virtual resource amount of the target virtual storage according to the learning result 1905 (S2007).
 具体的には、プログラム402は、学習結果1905に対応する各仮想資源の仮想資源量増加率と、仮想ストレージ構成管理テーブル411の対象仮想ストレージの各仮想資源の構成(仮想資源量)502-505と、を取得する。次いで、プログラム402は、各仮想資源の仮想資源量に仮想資源増加率を乗じ、増加分の仮想資源量を算出する。次いで、プログラム402は、各仮想資源の仮想資源量の増加分の仮想資源量を、対象仮想ストレージの各仮想資源に追加する(S2008)。尚、増加分の仮想資源量を対象仮想ストレージの各仮想資源に追加する手順は、仮想ボリューム作成プログラムで示した手順と同様であるため詳細を省略する。 Specifically, the program 402 increases the virtual resource amount increase rate of each virtual resource corresponding to the learning result 1905 and the configuration (virtual resource amount) 502-505 of each virtual resource of the target virtual storage in the virtual storage configuration management table 411. And get. Next, the program 402 multiplies the virtual resource amount of each virtual resource by the virtual resource increase rate to calculate the increase virtual resource amount. Next, the program 402 adds the virtual resource amount corresponding to the increase in the virtual resource amount of each virtual resource to each virtual resource of the target virtual storage (S2008). Note that the procedure for adding the increased virtual resource amount to each virtual resource of the target virtual storage is the same as the procedure shown in the virtual volume creation program, and therefore the details are omitted.
 S2008の後、プログラム402は、仮想ストレージ構成管理テーブル411の各仮想資源構成のカラム502-505と、物理資源量管理テーブル415の資源割当て率1004と、仮想資源量管理テーブル416の資源占有率1104と、を更新し、S2009に処理を進める。 After S2008, the program 402 executes the virtual resource configuration columns 502-505 of the virtual storage configuration management table 411, the resource allocation rate 1004 of the physical resource amount management table 415, and the resource occupation rate 1104 of the virtual resource amount management table 416. And the process proceeds to S2009.
 プログラム402は、対象仮想ボリュームに指定されたストレージ機能を適用し(S2009)、要求元の計算機に適用完了を応答し(S2010)、処理を終了する。これにより、要求された操作に必要な仮想資源量の各仮想資源が対象仮想ストレージに割り当てられることで、対象仮想ストレージの仮想資源量が拡張される。 The program 402 applies the storage function specified for the target virtual volume (S2009), responds to the requesting computer to the completion of application (S2010), and ends the processing. Thereby, the virtual resources of the target virtual storage are expanded by allocating the virtual resources of the virtual resources required for the requested operation to the target virtual storage.
 一方、見積りが不可能な場合(S2002;不可)、対象ワークロード特性の学習が完了していないことを意味する。つまり、仮想資源量学習テーブル419のうち、取得されたワークロード特性と要求された操作との組み合わせに対応する学習状態1904に、“未学習”又は“学習中”が設定されている。この場合、プログラム402は、対象仮想ボリュームの学習を行うために学習用の仮想ストレージを生成する必要がある。従って、プログラム402は、対象仮想ボリュームの学習時の所属先となる学習用仮想ストレージに必要な、各仮想資源の仮想資源量を取得する(S2003)。学習用仮想ストレージの各仮想資源の仮想資源量を、この説明では学習用仮想資源量という。 On the other hand, when the estimation is impossible (S2002; impossible), it means that the learning of the target workload characteristic is not completed. That is, in the virtual resource amount learning table 419, “unlearned” or “learning” is set in the learning state 1904 corresponding to the combination of the acquired workload characteristic and the requested operation. In this case, the program 402 needs to generate a virtual storage for learning in order to learn the target virtual volume. Accordingly, the program 402 acquires the virtual resource amount of each virtual resource necessary for the learning virtual storage to which the target virtual volume belongs when learning (S2003). In this description, the virtual resource amount of each virtual resource in the learning virtual storage is referred to as a learning virtual resource amount.
 学習用仮想資源量には、対象仮想ボリュームが使用する各仮想資源の仮想資源量(ボリューム資源量;V)と、要求された操作を実行することによる各仮想資源の仮想資源量の補正率1803-1806と、を掛け合わせた量を用いる。学習用仮想資源量がボリューム資源量Vと等しくてもよい。 The learning virtual resource amount includes a virtual resource amount (volume resource amount; V) of each virtual resource used by the target virtual volume, and a correction rate 1803 of the virtual resource amount of each virtual resource by executing the requested operation. Use the amount multiplied by -1806. The learning virtual resource amount may be equal to the volume resource amount V.
 ここで、ボリューム資源量(V)は、対象仮想ストレージの資源利用量Pに、対象仮想ボリュームの資源利用率Mを掛け合わせた値である。資源利用量Pは、仮想資源の資源種別毎に、対応する物理資源の限界資源量1003(物理資源量管理テーブル415)に、当該物理資源に対する仮想資源の資源占有率1104及び仮想資源使用率1106(仮想資源量管理テーブル416)を掛合わせて得られる値である。また、資源利用率Mは、仮想ボリュームモニタテーブル414における、対象仮想ストレージに所属する全ての仮想ボリュームのスループット性能を合計した値に対する、対象仮想ボリュームのスループット性能の比率である。ボリューム資源量(V)により、対象仮想ストレージの資源利用量Pより、対象仮想ボリュームのスループット性能に応じた資源量を推定できる。また、学習用仮想資源量により、操作を適用しない場合の仮想資源量であるボリューム資源量(V)に対して、各操作の実行による仮想資源量の補正値を推定することができる。 Here, the volume resource amount (V) is a value obtained by multiplying the resource usage P of the target virtual storage by the resource usage rate M of the target virtual volume. For each resource type of the virtual resource, the resource usage P is stored in the corresponding physical resource limit resource amount 1003 (physical resource amount management table 415), the virtual resource resource occupation rate 1104 and the virtual resource usage rate 1106 for the physical resource. This is a value obtained by multiplying (virtual resource amount management table 416). The resource utilization rate M is the ratio of the throughput performance of the target virtual volume to the total value of the throughput performance of all virtual volumes belonging to the target virtual storage in the virtual volume monitor table 414. From the volume resource amount (V), the resource amount corresponding to the throughput performance of the target virtual volume can be estimated from the resource usage amount P of the target virtual storage. Further, the correction value of the virtual resource amount by execution of each operation can be estimated from the learning virtual resource amount with respect to the volume resource amount (V) which is the virtual resource amount when the operation is not applied.
 プログラム402は、取得した学習用仮想資源量の物理資源を各仮想資源に割当て、新たに、学習用仮想ストレージを作成(S2004)する。学習用仮想ストレージの作成は、仮想ボリューム作成プログラム1203が行われないことを除き、前述の資源割り当てプログラム400と基本的に同様である。対象仮想ストレージに割り当てられている各仮想資源のうち、学習仮想資源量の、対象仮想ボリュームに対応する物理ボリュームの各担当資源が割り当てられる(仮想ボリューム構成管理テーブル412及び物理ボリューム構成管理テーブル413を参照)。このとき、学習仮想資源量に応じて、各担当資源の各仮想資源への割当量を変更する。担当資源の資源量が不足する場合は、仮想資源の担当資源を追加する。この場合、追加する担当資源は、計算機システム内の物理資源のうち、物理資源使用率が最も小さい物理資源であってよい。 The program 402 allocates a physical resource of the acquired learning virtual resource amount to each virtual resource, and newly creates a learning virtual storage (S2004). Creation of the learning virtual storage is basically the same as the resource allocation program 400 described above except that the virtual volume creation program 1203 is not performed. Of each virtual resource allocated to the target virtual storage, each assigned resource of the physical volume corresponding to the target virtual volume of the learning virtual resource amount is allocated (the virtual volume configuration management table 412 and the physical volume configuration management table 413 are reference). At this time, the allocation amount of each responsible resource to each virtual resource is changed according to the learning virtual resource amount. If the resource amount of the assigned resource is insufficient, the assigned resource of the virtual resource is added. In this case, the assigned resource to be added may be a physical resource having the smallest physical resource usage rate among the physical resources in the computer system.
 プログラム402は、対象仮想ボリュームの所属を、対象仮想ストレージから学習用仮想ストレージに変更する(S2005)。次いで、プログラム402は、対象仮想ストレージの仮想資源量を縮小し(S2006)、S2009に処理を進める。これにより、学習用仮想ストレージには、対象仮想ボリュームのみが所属することになる。
尚、対象仮想ストレージに割り当てられている各仮想資源のうち、対象仮想ボリュームの担当資源が学習用仮想ストレージに割当てられることで、対象仮想ストレージの仮想資源量が縮小することとなる。
The program 402 changes the affiliation of the target virtual volume from the target virtual storage to the learning virtual storage (S2005). Next, the program 402 reduces the virtual resource amount of the target virtual storage (S2006), and advances the process to S2009. As a result, only the target virtual volume belongs to the learning virtual storage.
Of the virtual resources allocated to the target virtual storage, the resource in charge of the target virtual volume is allocated to the learning virtual storage, so that the virtual resource amount of the target virtual storage is reduced.
 尚、対象仮想ボリュームの所属を、対象仮想ストレージから学習用仮想ストレージに変更する場合、例えば、プログラム402は、仮想ボリューム構成管理テーブル412の仮想ストレージ番号605にはそのまま対象仮想ストレージの仮想ストレージ番号を設定した状態で、新たに、学習中仮想ストレージ番号606に学習用仮想ストレージの仮想ストレージ番号を設定する。次いで、プログラム402は、仮想資源量学習テーブル419について、対象ワークロード特性の学習状態1904を“学習中”に変更する。 In addition, when the affiliation of the target virtual volume is changed from the target virtual storage to the learning virtual storage, for example, the program 402 uses the virtual storage number of the target virtual storage as it is in the virtual storage number 605 of the virtual volume configuration management table 412. In the set state, the virtual storage number of the learning virtual storage is newly set in the learning virtual storage number 606. Next, the program 402 changes the learning state 1904 of the target workload characteristic to “under learning” for the virtual resource amount learning table 419.
 プログラム402は、対象仮想ボリュームに、要求で指定されたストレージ機能を適用し(S2009)、適用の完了を要求元の計算機に通知し(S2010)、処理を終了する。尚、サーバ2501は、対象ボリュームに対し、適用したストレージ機能の操作を、プログラム402とは非同期に行う(非同期処理)。 The program 402 applies the storage function specified in the request to the target virtual volume (S2009), notifies the requesting computer of the application completion (S2010), and ends the processing. The server 2501 performs the operation of the applied storage function on the target volume asynchronously with the program 402 (asynchronous processing).
 上記の処理により、対象仮想ボリュームの所属を対象仮想ストレージから学習用仮想ストレージに変更することにより、対象仮想ボリュームに対象操作を行ったことによる他の仮想ボリュームへの性能の影響を低減できる。 Through the above processing, by changing the affiliation of the target virtual volume from the target virtual storage to the learning virtual storage, it is possible to reduce the performance impact on other virtual volumes due to the target operation being performed on the target virtual volume.
 ストレージ機能適用要求に応じて、対象ボリュームの学習が完了しているか否かを判定できる。学習が完了している場合、ストレージ機能の機能種別及び操作に対応する対象仮想ストレージの仮想資源量を、学習結果に基づいて追加することができる。対象仮想ストレージを停止することなく、適切な仮想資源量を追加することができる。これにより、対象仮想ボリュームにストレージ機能を適用した場合の、対象仮想ストレージに属する他の仮想ボリュームへの影響を低減することができる。 In response to the storage function application request, it can be determined whether or not the target volume has been learned. When learning is completed, the virtual resource amount of the target virtual storage corresponding to the function type and operation of the storage function can be added based on the learning result. An appropriate amount of virtual resources can be added without stopping the target virtual storage. Thereby, when the storage function is applied to the target virtual volume, the influence on other virtual volumes belonging to the target virtual storage can be reduced.
 一方、対象の学習が完了していない場合、対象仮想ボリュームの所属を、新規に作成した学習用仮想ストレージに変更する。これにより、要求に含まれる操作を実行したときの、学習を実行することができ、学習により、要求に含まれる操作を実行した場合の、対象仮想ボリュームの仮想資源量の増加分を正確に見積もることができる。 On the other hand, if the target learning has not been completed, the affiliation of the target virtual volume is changed to the newly created virtual storage for learning. As a result, learning can be performed when the operation included in the request is executed, and the increase in the virtual resource amount of the target virtual volume when the operation included in the request is executed is accurately estimated by learning. be able to.
 また、対象仮想ボリュームの所属を学習用仮想ストレージに変更させた後、対象仮想ストレージに割り当てられる仮想資源量を縮小させている。これにより、対象仮想ストレージ及び学習用仮想ストレージ共に、適切な仮想資源量が割当られることとなる。 Also, after changing the affiliation of the target virtual volume to the learning virtual storage, the amount of virtual resources allocated to the target virtual storage is reduced. As a result, an appropriate virtual resource amount is allocated to both the target virtual storage and the learning virtual storage.
 なお、この説明では、この処理の主体は、サーバ2501(ストレージ機能適用プログラム402)であるが、これに限られない。この処理の主体は、管理サーバ110(システム管理ソフト)であってもよい。この場合、上記の説明に関する各ステップの主体を管理サーバ110に置き換えることができる。ただし、以下のステップについては、上記説明と異なる。 In this description, the subject of this processing is the server 2501 (storage function application program 402), but is not limited thereto. The subject of this processing may be the management server 110 (system management software). In this case, the subject of each step relating to the above description can be replaced with the management server 110. However, the following steps are different from the above description.
 管理サーバ110が主体の場合、例えば、S2004-S2005に代えて管理サーバ110は、S2003で取得した学習用仮想資源量を指定した学習用仮想ストレージの作成と、対象仮想ボリュームの所属の変更とを含めた指示を、サーバ2501に送信する。サーバ2501は、指示に基づき、学習用仮想ストレージを作成し、学習用仮想資源量の各仮想資源を割当てる。次いで、サーバ2501は、対象仮想ボリュームの所属を対象仮想ストレージから学習用仮想ストレージに変更し、対象仮想ストレージを縮小する。 When the management server 110 is the main body, for example, instead of S2004-S2005, the management server 110 creates a learning virtual storage that specifies the learning virtual resource amount acquired in S2003, and changes the affiliation of the target virtual volume. The included instruction is transmitted to the server 2501. The server 2501 creates a learning virtual storage based on the instruction, and allocates each virtual resource of the learning virtual resource amount. Next, the server 2501 changes the affiliation of the target virtual volume from the target virtual storage to the learning virtual storage, and reduces the target virtual storage.
 また、S2008で、管理サーバ110は、取得した仮想資源量及び対象仮想ストレージの拡張指示を、サーバ2501に送信する。サーバ2501は、当該仮想資源量の各仮想資源を対象仮想ストレージに追加する。 In S2008, the management server 110 transmits the acquired virtual resource amount and the target virtual storage expansion instruction to the server 2501. The server 2501 adds each virtual resource of the virtual resource amount to the target virtual storage.
 また、S2009で、管理サーバ110は、対象仮想ボリュームに対するストレージ機能適用指示を、コントローラに送信する。次いで、S2010で、管理サーバ110は、ストレージ機能適用要求の応答を、要求元の計算機に送信し、処理を終了する。サーバ2501は、ストレージ機能適用指示に基づき、対象仮想ボリュームに対し指示に基づくストレージ機能を適用する。なお、管理サーバ110は、S2004-S2005による指示を、各ステップで行わずに纏めて行ってもよい。 In S2009, the management server 110 transmits a storage function application instruction for the target virtual volume to the controller. Next, in S2010, the management server 110 transmits a response to the storage function application request to the requesting computer, and ends the process. Based on the storage function application instruction, the server 2501 applies the storage function based on the instruction to the target virtual volume. Note that the management server 110 may collectively issue the instructions in S2004 to S2005 without performing each step.
 図23は、仮想資源量学習プログラム403が実行する処理のフローチャートの一例である。このプログラム403は、ストレージ機能適用プログラム402のステップ2002において、“見積もり不可”と判定された場合に実行されるプログラムである。このプログラム403は、ストレージ機能適用プログラムとは非同期に実行されたストレージ機能の操作(及び当該操作についての学習)が完了した契機、もしくは、当該操作の実行開始後、規定時間が経過した契機で実行されるプログラムである。 FIG. 23 is an example of a flowchart of processing executed by the virtual resource amount learning program 403. This program 403 is a program executed when it is determined that “estimation is impossible” in step 2002 of the storage function application program 402. This program 403 is executed when a storage function operation (and learning about the operation) executed asynchronously with the storage function application program is completed, or when a specified time elapses after the execution of the operation starts. Program.
 プログラム403は、仮想ボリュームモニタテーブル414を参照し、学習用仮想ストレージのモニタ情報から、対象仮想ボリュームの収集データを算出する(S2101)。ここでいうモニタ情報とは、仮想資源量管理テーブル416の学習用仮想ストレージの仮想資源使用率1106及びストレージ機能利用率1107である。具体的には、プログラム403は、モニタ情報を取得し、これらの値を掛け合わせた値を収集データとして算出する。次いで、プログラム403は、対象仮想ボリュームのワークロード(特性)1901、実行された操作1903に対応するエントリの、各仮想資源のカラムに収集データとしての仮想資源量増加率を設定する。 The program 403 refers to the virtual volume monitor table 414 and calculates the collection data of the target virtual volume from the monitoring information of the learning virtual storage (S2101). The monitor information here is the virtual resource usage rate 1106 and the storage function usage rate 1107 of the learning virtual storage in the virtual resource amount management table 416. Specifically, the program 403 acquires monitor information and calculates a value obtained by multiplying these values as collected data. Next, the program 403 sets the virtual resource amount increase rate as the collected data in the column of each virtual resource in the entry corresponding to the workload (characteristic) 1901 of the target virtual volume and the executed operation 1903.
 プログラム403は、予め設定された回数(規定回数)の収集データを採取したか否かを判定する(S2102)。規定回数の収集データが採取されていない場合、プログラム403は、S2104に処理を進める。 The program 403 determines whether or not the collection data of the preset number (specified number) has been collected (S2102). If the specified number of collection data has not been collected, the program 403 advances the process to S2104.
 一方、規定回数の収集データが採取された場合、プログラム403は、これら規定回数の収集データに基づき学習結果を算出し(S2103)、算出した値を、仮想資源量学習テーブル419の、対象仮想ボリュームのワークロード特性、当該ストレージ機能の操作に対応するエントリの学習結果カラム1905に格納する。 On the other hand, when the specified number of collected data is collected, the program 403 calculates a learning result based on the specified number of collected data (S2103), and uses the calculated value as the target virtual volume of the virtual resource amount learning table 419. Are stored in the learning result column 1905 of the entry corresponding to the operation of the storage function.
 次いで、プログラム403は、仮想資源量学習テーブル419の対象仮想ボリュームのワークロード特性、ストレージ機能の操作に対応するエントリの学習状態カラム1904を、学習完了”に変更する(S2106)。 Next, the program 403 changes the learning state column 1904 of the entry corresponding to the workload characteristics and storage function operation of the target virtual volume in the virtual resource amount learning table 419 to “learning complete” (S2106).
 プログラム403は、ストレージ機能適用プログラム(S2006)で縮小した分について、対象仮想ストレージを拡張(復元)し(S2104)対象仮想ボリュームの所属を、学習用仮想ストレージから対象仮想ストレージに変更して(S2105)、処理を終了する。具体的には、プログラム403は、仮想ボリューム構成管理テーブル412の対象仮想ボリュームのエントリについて、学習中仮想ストレージ番号606に設定される学習用仮想ストレージの番号を削除する。尚、S2104では、学習用仮想ストレージに割り当てられている各仮想資源が、再び対象仮想ストレージに割り当てられることとなる(仮想ボリューム構成管理テーブル412及び物理ボリューム構成管理テーブル413を参照)。 The program 403 expands (restores) the target virtual storage for the amount reduced by the storage function application program (S2006) (S2104), and changes the affiliation of the target virtual volume from the learning virtual storage to the target virtual storage (S2105). ), The process is terminated. Specifically, the program 403 deletes the learning virtual storage number set in the learning virtual storage number 606 for the target virtual volume entry in the virtual volume configuration management table 412. In S2104, each virtual resource allocated to the learning virtual storage is again allocated to the target virtual storage (see the virtual volume configuration management table 412 and the physical volume configuration management table 413).
 上記処理により、仮想資源量の見積りが不可能であった対象仮想ボリュームに対し、学習を行い、その学習の収集データを算出することができる。モニタ情報から、収集データを取得することにより、適切な仮想資源量を見積ることができる。 Through the above processing, learning can be performed on the target virtual volume for which the estimation of the virtual resource amount was impossible, and the collected data of the learning can be calculated. By acquiring collected data from the monitor information, an appropriate virtual resource amount can be estimated.
 また、規定回の収集データが得られたことにより、学習が完了した場合は、学習結果に基づき、学習用仮想ストレージに割り当てる仮想資源の仮想資源量を算出することができる。 In addition, when learning is completed because the collected data has been obtained a predetermined number of times, the virtual resource amount of the virtual resource allocated to the learning virtual storage can be calculated based on the learning result.
 さらに、対象仮想ボリュームの学習が終了した後、対象仮想ストレージを拡張し、対象仮想ボリュームの所属を学習用仮想ストレージから対象仮想ストレージに戻すことができる。これにより、対象仮想ボリュームを適切な環境に戻すことができるとともに、対象仮想ボリュームの所属を戻すことで必要となる仮想資源量を対象仮想ストレージに割り当てることができる。 Furthermore, after learning of the target virtual volume is completed, the target virtual storage can be expanded and the affiliation of the target virtual volume can be returned from the learning virtual storage to the target virtual storage. As a result, the target virtual volume can be returned to an appropriate environment, and the required virtual resource amount can be allocated to the target virtual storage by returning the affiliation of the target virtual volume.
 なお、この説明では、この処理の主体は、サーバ2501(仮想資源量学習プログラム403)であるが、これに限られない。この処理の主体は、管理サーバ110(システム管理ソフト)であってもよい。この場合、上記の説明に関する各ステップの主体を管理サーバ110に置き換えることができる。ただし、この場合、サーバ2501は、モニタ情報を管理サーバ110に送信する(サーバ2501及び管理サーバ110間の各テーブルの同期を含む)とする。また、この場合、サーバ2501は、対象操作の完了通知を管理サーバ110に送信する。以下のステップについては、上記説明と異なる。 In this description, the subject of this processing is the server 2501 (virtual resource amount learning program 403), but is not limited thereto. The subject of this processing may be the management server 110 (system management software). In this case, the subject of each step relating to the above description can be replaced with the management server 110. In this case, however, the server 2501 transmits monitor information to the management server 110 (including synchronization of tables between the server 2501 and the management server 110). In this case, the server 2501 transmits a notification of completion of the target operation to the management server 110. The following steps are different from the above description.
 S2104及び2105に代えて、管理サーバ110は、対象仮想ストレージを拡張し、かつ、対象ボリュームの所属を対象仮想ストレージに戻す指示を、サーバ2501に送信する。コントローラは、指示に基づき、対象仮想ストレージを拡張し、対象仮想ボリュームの所属を、学習用仮想ストレージから対象仮想ストレージに戻す。 Instead of S2104 and 2105, the management server 110 transmits to the server 2501 an instruction to expand the target virtual storage and return the affiliation of the target volume to the target virtual storage. Based on the instruction, the controller expands the target virtual storage, and returns the affiliation of the target virtual volume from the learning virtual storage to the target virtual storage.
 図24は、仮想資源再学習プログラム404が実行する処理のフローチャートの一例である。仮想資源再学習プログラム404は、学習結果を用いた仮想資源量見積もりの結果が、その後のモニタ結果と乖離する場合に、再学習を行うプログラムである。このプログラ404ムは、ストレージ機能適用プログラム402のステップ2002において、“見積もり可能“と判定された場合に実行されるプログラムである。このプログラム404は、ストレージ機能適用プログラムとは非同期に実行されたストレージ機能の操作(及び当該操作についての学習)が完了した契機、もしくは、当該操作の実行開始後、規定時間が経過した契機で実行されるプログラムである。 FIG. 24 is an example of a flowchart of processing executed by the virtual resource relearning program 404. The virtual resource relearning program 404 is a program for performing relearning when the result of virtual resource amount estimation using the learning result deviates from the subsequent monitoring result. This program 404 is a program that is executed when it is determined that “estimation is possible” in step 2002 of the storage function application program 402. This program 404 is executed when a storage function operation (and learning about the operation) executed asynchronously with the storage function application program is completed, or when a specified time elapses after the execution of the operation starts. Program.
 プログラム404は、対象仮想ボリュームの各仮想資源の仮想資源量増加率のモニタ情報を収集する(S2201)。ここでいうモニタ情報とは、例えば、対象仮想ストレージの各仮想資源に対応する物理資源の仮想資源使用率1106及びストレージ機能利用率1107(仮想資源量管理テーブル416)に、ストレージ機能適用プログラム402にて示した仮想ボリュームの資源利用率Mを積算した値である。 The program 404 collects monitor information of the virtual resource amount increase rate of each virtual resource of the target virtual volume (S2201). The monitor information here includes, for example, the virtual resource usage rate 1106 and the storage function usage rate 1107 (virtual resource amount management table 416) of the physical resource corresponding to each virtual resource of the target virtual storage, and the storage function application program 402. The resource utilization rate M of the virtual volume shown in FIG.
 プログラム404は、収集したモニタ情報と、仮想資源量学習テーブル419の学習結果1905とが乖離しているか否かの判定を行う(S2202)。 The program 404 determines whether or not the collected monitor information is deviated from the learning result 1905 of the virtual resource amount learning table 419 (S2202).
 モニタ値と学習結果1905との乖離度合いが、予め規定した閾値を超過する場合、プログラム404は、要求元の計算機に対し、アラートを発行し(2203)、学習状態1904を“未学習”に変更する(2204)。 When the degree of divergence between the monitor value and the learning result 1905 exceeds a predetermined threshold, the program 404 issues an alert to the requesting computer (2203) and changes the learning state 1904 to “unlearned”. (2204).
 上記処理により、学習結果とモニタ値が乖離している場合、つまり学習結果を利用すべきではないときには、学習状態を“未学習”に変更することで、次回ストレージ機能を適用する場合に、仮想資源量学習プログラム403が起動するようにすることができる。 When the learning result and the monitor value are different from each other by the above processing, that is, when the learning result should not be used, the virtual state is changed when the storage function is applied next time by changing the learning state to “unlearned”. The resource amount learning program 403 can be activated.
 なお、この説明では、この処理の主体は、サーバ2501(仮想資源再学習プログラム404)であるが、これに限られない。この処理の主体は、管理サーバ110(システム管理ソフト)であってもよい。この場合、サーバ2501及び管理サーバ110間の各テーブルの同期が行われているとする。 In this description, the subject of this processing is the server 2501 (virtual resource relearning program 404), but is not limited thereto. The subject of this processing may be the management server 110 (system management software). In this case, it is assumed that each table is synchronized between the server 2501 and the management server 110.
 なお、上記の計算機システムの構成要素の一つとして、サーバ2501を説明したが、サーバ2501を含むいずれの制御計算機であってもよい。例えば、サーバ2501は、各デバイス(プロセッサ、メモリ、ホストインターフェース、管理インターフェース、メディアインターフェースなど)を有するストレージコントローラに代用できる。また、ストレージコントローラと、ストレージコントローラに接続されたメディア150とにより、ストレージシスステムが構成されてもよい。 Although the server 2501 has been described as one of the components of the computer system, any control computer including the server 2501 may be used. For example, the server 2501 can be replaced with a storage controller having each device (processor, memory, host interface, management interface, media interface, etc.). Further, a storage system may be configured by the storage controller and the medium 150 connected to the storage controller.
 また、上述した例によれば、各処理は、サーバ2501又は管理サーバ110が行っていたが、例えば、サーバ2501に代えてストレージコントローラが各処理を行ってもよい。この例を以下に示す。 Further, according to the above-described example, each process is performed by the server 2501 or the management server 110. However, for example, the storage controller may perform each process instead of the server 2501. An example of this is shown below.
 図25は、本実施例に係る計算機システムの第二の構成図である。第二の構成図が、第一の構成図と異なる点は、計算機システムが、ストレージシステムを有する点である。サーバ2501上ではソフトウェアによって提供される機能と同等の機能が、ストレージコントローラによって提供されてもよい。すなわち、本構成においても、第一の構成図を用いて示した手法を使い、上記で説明した各種機能と同等の機能を提供することが可能である。以下、第二の構成図について、第一の構成図とは異なる点を主に説明する。 FIG. 25 is a second configuration diagram of the computer system according to this embodiment. The second configuration diagram is different from the first configuration diagram in that the computer system has a storage system. Functions equivalent to the functions provided by software on the server 2501 may be provided by the storage controller. That is, also in this configuration, it is possible to provide functions equivalent to the various functions described above using the method shown by using the first configuration diagram. Hereinafter, the difference between the second configuration diagram and the first configuration diagram will be mainly described.
 計算機システムは、1以上の任意の数のホスト100、管理サーバ110及びストレージシステムを有する。 The computer system has an arbitrary number of one or more hosts 100, a management server 110, and a storage system.
 ストレージシステムは、ストレージコントローラ(以下、コントローラという。)120と、1以上のメディア150と、を有する。 The storage system includes a storage controller (hereinafter referred to as a controller) 120 and one or more media 150.
 コントローラ120は、ホスト100とメディア150との間のデータ転送制御などを行う。ホスト100とコントローラ120とは、データネットワーク130で接続されており、互いに通信が可能である。データネットワーク130は、例えば、SAN(Storage Area Network)等のネットワークである。データネットワーク130は、FC(Fibre Channel)や、Ethernet(登録商標)などの一般的な技術が利用される。 The controller 120 performs data transfer control between the host 100 and the medium 150. The host 100 and the controller 120 are connected by a data network 130 and can communicate with each other. The data network 130 is a network such as a SAN (Storage Area Network). The data network 130 uses a general technology such as FC (Fibre Channel) or Ethernet (registered trademark).
 また、コントローラ120は、管理ネットワーク131を介して管理サーバ110に接続される。管理サーバとストレージ装置とは、互いに通信が可能である。管理ネットワーク131も、Ethernet(登録商標)などの一般的な技術が利用される。 The controller 120 is connected to the management server 110 via the management network 131. The management server and the storage device can communicate with each other. The management network 131 also uses a general technique such as Ethernet (registered trademark).
 コントローラ120は、例えば、複数のモジュール140で冗長化されることで、いずれかのモジュール140に不具合が発生しても、稼働可能に構成されている。コントローラ120内のモジュール140は、複数に限られず1つでもよい。1つのモジュール140について簡単に説明する。 The controller 120 is configured to be operable even if a failure occurs in any of the modules 140, for example, by being made redundant by a plurality of modules 140. The number of modules 140 in the controller 120 is not limited to a plurality and may be one. One module 140 will be briefly described.
 モジュール140は、プロセッサ1410、メモリ1420、ホストインターフェース1600、管理インターフェース1610、メディアインターフェース1620などのデバイスを有する。モジュール140は、各デバイスを1以上の任意の数含むことができる。
モジュール140内の各デバイスは、サーバ2501内の各デバイス(プロセッサ141、メモリ142、ホストインターフェース160、管理インターフェース161、メディアインターフェース162)と同様である。また、メモリ1420に記憶される情報(各種テーブル及びプログラム等)についても、サーバ2501と同様であってよい。プロセッサ1410が、メモリ内のプログラムを実行することにより、上述した各処理を実行することができる。
The module 140 includes devices such as a processor 1410, a memory 1420, a host interface 1600, a management interface 1610, and a media interface 1620. Module 140 may include any number of one or more devices.
Each device in the module 140 is the same as each device in the server 2501 (the processor 141, the memory 142, the host interface 160, the management interface 161, and the media interface 162). Also, information (such as various tables and programs) stored in the memory 1420 may be the same as that of the server 2501. The processor 1410 can execute each process described above by executing the program in the memory.
 以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。 As mentioned above, although embodiment of this invention was described, this invention is not limited to said embodiment. A person skilled in the art can easily change, add, and convert each element of the above-described embodiment within the scope of the present invention.
 100…ホスト計算機 110…管理サーバ計算機 120…ストレージコントローラ 
141…プロセッサ 142…メモリ 160…ホストインターフェース 161…管理インターフェース 162…メディアインターフェース 150…メディア 2501…サーバ計算機
 

 
DESCRIPTION OF SYMBOLS 100 ... Host computer 110 ... Management server computer 120 ... Storage controller
DESCRIPTION OF SYMBOLS 141 ... Processor 142 ... Memory 160 ... Host interface 161 ... Management interface 162 ... Media interface 150 ... Media 2501 ... Server computer

Claims (14)

  1.  計算機システムであって、
     記憶デバイスと、
     メモリと
     前記メモリに格納されたプログラムを実行するプロセッサと、
    を備え、
     前記プロセッサは、第1仮想ストレージ装置を生成し、
     前記プロセッサは、前記計算機システム内の物理資源から第1資源を確保し、前記第1資源を前記第1仮想ストレージ装置に割当て、
     前記プロセッサは、前記第1資源を用いて、前記第1仮想ストレージ装置内に複数の仮想ボリュームを生成し、
     前記プロセッサは、前記複数の仮想ボリュームのいずれかに対するI/O要求を受信した場合、前記第1資源を用いて前記I/O要求に係る処理を実行し、
     前記プロセッサは、前記複数の仮想ボリュームのうちの対象仮想ボリュームに対する対象操作の実行要求を受信した場合、前記対象仮想ボリュームに対象操作を実行した場合に使用される前記第1資源の資源量である第1資源量の見積りが可能か否かを判定し、
     前記プロセッサは、前記第1資源量の見積りが不可能と判定した場合、前記対象仮想ボリュームの所属を前記第1仮想ストレージ装置から、前記第1仮想ストレージ装置とは別の第2仮想ストレージ装置に変更し、
     前記プロセッサは、前記対象仮想ボリュームに対して、前記対象操作を実行する、
    計算機システム。
    A computer system,
    A storage device;
    A memory and a processor for executing a program stored in the memory;
    With
    The processor generates a first virtual storage device,
    The processor secures a first resource from physical resources in the computer system, assigns the first resource to the first virtual storage device,
    The processor generates a plurality of virtual volumes in the first virtual storage device using the first resource;
    When the processor receives an I / O request for any of the plurality of virtual volumes, the processor executes a process related to the I / O request using the first resource;
    The processor is a resource amount of the first resource used when a target operation is executed on the target virtual volume when a request for executing the target operation on the target virtual volume among the plurality of virtual volumes is received. Determine whether the first resource amount can be estimated,
    If the processor determines that the first resource amount cannot be estimated, the processor assigns the target virtual volume to the second virtual storage device different from the first virtual storage device. change,
    The processor performs the target operation on the target virtual volume;
    Computer system.
  2.  前記プロセッサは、仮想ストレージ装置における仮想資源の使用状況をモニタし、
     前記仮想資源の使用状況を、仮想ストレージ装置内の仮想ボリュームの状態に対応付けて記憶し、
     前記プロセッサは、前記対象仮想ボリュームの状態に対応する前記第1仮想資源の第1使用状況が記憶されていない場合に、前記第1資源量の見積りが不可能であると判定する、
    請求項1に記載の計算機システム。
    The processor monitors the usage of virtual resources in the virtual storage device,
    Storing the usage status of the virtual resource in association with the status of the virtual volume in the virtual storage device;
    The processor determines that the estimation of the first resource amount is impossible when the first usage status of the first virtual resource corresponding to the state of the target virtual volume is not stored.
    The computer system according to claim 1.
  3.  前記プロセッサは、前記第1資源量の見積りが可能な場合、前記第1使用状況に応じて、前記第1仮想ストレージ装置に割当てる前記第1資源の資源量を決定する、
    請求項2に記載の計算機システム。
    If the first resource amount can be estimated, the processor determines the resource amount of the first resource to be allocated to the first virtual storage device according to the first usage state.
    The computer system according to claim 2.
  4.  前記プロセッサは、前記第1資源量の見積りが不可能と判定した場合、前記第2仮想ストレージ装置を生成し、前記第1資源のうち前記対象仮想ボリュームに使用されている第2資源を特定し、少なくとも前記第2資源を前記第2仮想ストレージ装置に割当て、前記対象仮想ボリュームの所属を前記第1仮想ストレージ装置から前記第2仮想ストレージ装置に変更する、
    請求項3に記載の計算機システム。
    If the processor determines that the estimation of the first resource amount is impossible, the processor generates the second virtual storage device, and identifies a second resource used for the target virtual volume among the first resources. Allocating at least the second resource to the second virtual storage device and changing the affiliation of the target virtual volume from the first virtual storage device to the second virtual storage device,
    The computer system according to claim 3.
  5.  前記プロセッサは、前記対象操作の完了後、前記第2資源を前記第1仮想ストレージ装置に割当て、前記対象仮想ボリュームの所属を前記第2仮想ストレージ装置から前記第1仮想ストレージ装置に変更する、
    請求項4に記載の計算機システム。
    The processor allocates the second resource to the first virtual storage device after completion of the target operation, and changes the affiliation of the target virtual volume from the second virtual storage device to the first virtual storage device.
    The computer system according to claim 4.
  6.  前記仮想ボリュームの状態は、前記仮想ボリュームのワークロード特性と、前記仮想ボリュームに対する操作とを示す、
    請求項5に記載の計算機システム。
    The status of the virtual volume indicates workload characteristics of the virtual volume and operations on the virtual volume.
    The computer system according to claim 5.
  7.  前記プロセッサは、前記複数の仮想ボリュームの処理性能をモニタして記憶し、
     前記プロセッサは、前記複数の仮想ボリュームに対する前記対象仮想ボリュームの処理性能の割合と、前記第1仮想ストレージ装置における第1仮想資源の使用状況とに基づき、前記対象仮想ボリュームの状態に応じた仮想資源の使用状況である第2使用状況を推定し、
     前記プロセッサは、前記第2使用状況と前記第1使用状況とを比較し、前記第2使用状況と前記第1使用状況との乖離度が、予め設定された値を超えた場合、前記第1使用状況を使用しない、
    請求項6に記載の計算機システム。
    The processor monitors and stores processing performance of the plurality of virtual volumes;
    The processor, based on a ratio of processing performance of the target virtual volume to the plurality of virtual volumes and a usage status of the first virtual resource in the first virtual storage device, a virtual resource corresponding to the state of the target virtual volume The second usage status, which is the usage status of
    The processor compares the second usage situation and the first usage situation, and when the degree of deviation between the second usage situation and the first usage situation exceeds a preset value, the first usage situation Do not use usage,
    The computer system according to claim 6.
  8.  前記プロセッサは、前記第1資源量の見積りが不可能と判定した場合、前記第1仮想ストレージ装置が使用する前記第1資源の資源量と、前記複数の仮想ボリュームに対する前記対象仮想ボリュームの処理性能の割合と、に基づき、前記第2仮想ストレージ装置の割当てに必要な仮想資源の資源量を決定する、
    請求項7に記載の計算機システム。
    If the processor determines that the estimation of the first resource amount is impossible, the resource amount of the first resource used by the first virtual storage device and the processing performance of the target virtual volume for the plurality of virtual volumes And determining the amount of virtual resources necessary for the allocation of the second virtual storage device based on the ratio of
    The computer system according to claim 7.
  9.  前記プロセッサは、前記第2仮想ストレージ装置に割当てられた資源の使用率と、前記第2資源の使用率のうち前記対象操作を行ったことによる使用率である対象操作使用率を収集し、
     前記第2資源の資源量、前記使用率及び前記対象操作使用率に基づき、前記第1使用状況を算出する、
    請求項8に記載の計算機システム。
    The processor collects a usage rate of a resource allocated to the second virtual storage device and a target operation usage rate that is a usage rate obtained by performing the target operation among the usage rates of the second resource,
    Calculating the first usage status based on the resource amount of the second resource, the usage rate, and the target operation usage rate;
    The computer system according to claim 8.
  10.  管理計算機と、
     ホスト計算機及び前記管理計算機に接続される制御計算機と、
    を有し、
     前記制御計算機は、第1仮想ストレージ装置を生成し、
     前記制御計算機は、前記制御計算機内の又は前記制御計算機に接続された物理資源から第1資源を確保し、前記第1資源を前記第1仮想ストレージ装置に割当て、
     前記制御計算機は、前記第1資源を用いて、前記第1仮想ストレージ装置内に複数の仮想ボリュームを生成し、
     前記制御計算機は、前記ホスト計算機から、前記複数の仮想ボリュームのいずれかに対するI/O要求を受信した場合、前記第1資源を用いて前記I/O要求に係る処理を実行し、
     前記管理計算機は、前記複数の仮想ボリュームのうちの対象仮想ボリュームに対する対象操作の実行要求を受信し、前記対象仮想ボリュームに対象操作を実行した場合に使用される前記第1資源の資源量である第1資源量の見積りが可能か否かを判定し、
     前記管理計算機は、前記第1資源量の見積りが不可能と判定した場合、前記対象仮想ボリュームの所属を変更する第1変更指示を、前記制御計算機に送信し、前記前記第1資源のうち前記対象仮想ボリュームに用いられている第2資源を特定し、
     前記管理計算機は、前記第2資源を指定した、前記第2仮想ストレージ装置の生成指示を、前記制御計算機に送信し、
     前記制御計算機は、前記第1変更指示に応じて、前記第2仮想ストレージ装置を生成し、前記第2資源を前記第2仮想ストレージ装置に割当て、前記対象仮想ボリュームの所属を前記第1仮想ストレージ装置から、前記第1仮想ストレージ装置とは別の第2仮想ストレージ装置に変更し、
     前記管理計算機は、前記対象仮想ボリュームに対する前記対象操作の実行指示を送信し、
     前記制御計算機は、前記実行指示に応じて、前記対象仮想ボリュームに対して、前記対象操作を実行する、
    計算機システム。
    A management computer,
    A host computer and a control computer connected to the management computer;
    Have
    The control computer generates a first virtual storage device,
    The control computer secures a first resource from physical resources in the control computer or connected to the control computer, and allocates the first resource to the first virtual storage device,
    The control computer generates a plurality of virtual volumes in the first virtual storage device using the first resource,
    When the control computer receives an I / O request for any one of the plurality of virtual volumes from the host computer, the control computer executes processing related to the I / O request using the first resource,
    The management computer is a resource amount of the first resource used when a target operation execution request for the target virtual volume of the plurality of virtual volumes is received and the target operation is executed on the target virtual volume. Determine whether the first resource amount can be estimated,
    If the management computer determines that the estimation of the first resource amount is impossible, the management computer transmits a first change instruction for changing the affiliation of the target virtual volume to the control computer, and among the first resources, the Identify the second resource used for the target virtual volume,
    The management computer sends the generation instruction of the second virtual storage device that designates the second resource to the control computer,
    The control computer generates the second virtual storage device in response to the first change instruction, assigns the second resource to the second virtual storage device, and assigns the target virtual volume to the first virtual storage device Change from a device to a second virtual storage device different from the first virtual storage device,
    The management computer transmits an instruction to execute the target operation on the target virtual volume;
    The control computer executes the target operation on the target virtual volume according to the execution instruction.
    Computer system.
  11.  前記制御計算機は、仮想ストレージ装置における仮想資源の使用状況をモニタし、前記使用状況を前記管理計算機に送信し、
     前記管理計算機は、前記仮想資源の使用状況を、仮想ストレージ装置内の仮想ボリュームの状態に対応付けて記憶し、
     前記管理計算機は、前記第1使用状況が記憶されていない場合に、前記第1資源量の見積りが不可能であると判定する、
    請求項10に記載の計算機システム。
    The control computer monitors the usage status of virtual resources in the virtual storage device, and transmits the usage status to the management computer,
    The management computer stores the usage status of the virtual resource in association with the status of the virtual volume in the virtual storage device,
    The management computer determines that the estimation of the first resource amount is impossible when the first usage status is not stored;
    The computer system according to claim 10.
  12.  前記管理計算機は、前記第1資源量の見積りが可能な場合、前記第1使用状況に応じて、前記第1仮想ストレージ装置に割当てる前記第1資源の資源量を決定し、
     前記ストレージ装置は、前記決定した資源量に応じて、前記第1仮想ストレージ装置に割当てる前記第1資源の資源量を変更する、
    請求項9に記載の計算機システム。
    If the first resource amount can be estimated, the management computer determines the resource amount of the first resource to be allocated to the first virtual storage device according to the first usage state.
    The storage device changes a resource amount of the first resource allocated to the first virtual storage device according to the determined resource amount.
    The computer system according to claim 9.
  13.  前記管理計算機は、前記第1資源量の見積りが不可能と判定した場合、前記前記第1資源のうち前記対象仮想ボリュームに用いられている第2資源を特定し、
     前記第1変更指示には、前記第2資源を指定した前記第2仮想ストレージ装置の生成の指示が含まれ、
     前記制御計算機は、前記第1変更指示に応じて、前記第2仮想ストレージ装置を生成し、前記第2資源を前記第2仮想ストレージ装置に割当て、前記対象仮想ボリュームの所属を前記第1仮想ストレージ装置から前記第2仮想ストレージ装置に変更する、
    計算機システム。
    When the management computer determines that the estimation of the first resource amount is impossible, the management computer specifies a second resource used for the target virtual volume among the first resources,
    The first change instruction includes an instruction to generate the second virtual storage device that specifies the second resource,
    The control computer generates the second virtual storage device in response to the first change instruction, assigns the second resource to the second virtual storage device, and assigns the target virtual volume to the first virtual storage device Changing from a device to the second virtual storage device,
    Computer system.
  14.  前記管理計算機は、前記ストレージ装置から前記操作の完了通知を受信した場合、前記対象仮想ボリュームの所属を前記第2仮想ストレージ装置から前記第1仮想ストレージ装置に変更する第2変更指示を、前記ストレージ装置に送信し、
     前記制御計算機は、前記第2変更指示に応じて、前記第2資源を前記第1ストレージ装置に割当て、前記対象仮想ボリュームの所属を前記第2仮想ストレージ装置から前記第1仮想ストレージ装置に変更する、
    請求項12の記載の計算機システム。

     
    When the management computer receives a notification of completion of the operation from the storage device, the management computer issues a second change instruction to change the affiliation of the target virtual volume from the second virtual storage device to the first virtual storage device. To the device,
    In response to the second change instruction, the control computer assigns the second resource to the first storage device, and changes the affiliation of the target virtual volume from the second virtual storage device to the first virtual storage device. ,
    The computer system according to claim 12.

PCT/JP2015/082729 2015-11-20 2015-11-20 Computer system WO2017085870A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/082729 WO2017085870A1 (en) 2015-11-20 2015-11-20 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/082729 WO2017085870A1 (en) 2015-11-20 2015-11-20 Computer system

Publications (1)

Publication Number Publication Date
WO2017085870A1 true WO2017085870A1 (en) 2017-05-26

Family

ID=58718610

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/082729 WO2017085870A1 (en) 2015-11-20 2015-11-20 Computer system

Country Status (1)

Country Link
WO (1) WO2017085870A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7473522B2 (en) 2021-12-22 2024-04-23 株式会社日立製作所 STORAGE MANAGEMENT SYSTEM AND STORAGE MANAGEMENT METHOD

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122463A (en) * 2005-10-28 2007-05-17 Fujitsu Ltd Virtual storage system controller, virtual storage system control program and virtual storage system control method
JP2013531283A (en) * 2010-12-22 2013-08-01 株式会社日立製作所 Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function
WO2015145664A1 (en) * 2014-03-27 2015-10-01 株式会社日立製作所 Resource management method and resource management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122463A (en) * 2005-10-28 2007-05-17 Fujitsu Ltd Virtual storage system controller, virtual storage system control program and virtual storage system control method
JP2013531283A (en) * 2010-12-22 2013-08-01 株式会社日立製作所 Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function
WO2015145664A1 (en) * 2014-03-27 2015-10-01 株式会社日立製作所 Resource management method and resource management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7473522B2 (en) 2021-12-22 2024-04-23 株式会社日立製作所 STORAGE MANAGEMENT SYSTEM AND STORAGE MANAGEMENT METHOD

Similar Documents

Publication Publication Date Title
US8984221B2 (en) Method for assigning storage area and computer system using the same
US9639277B2 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
JP5438827B2 (en) Storage control device and virtual volume control method
JP5314772B2 (en) Storage system management system and method having a pool composed of real areas with different performance
JP4920976B2 (en) Data movement method and storage system
JP5323982B2 (en) Volume management apparatus and storage system
JP6340439B2 (en) Storage system
CN111488241A (en) Method and system for realizing agent-free backup and recovery operation on container arrangement platform
JP6434131B2 (en) Distributed processing system, task processing method, storage medium
JP2006505052A (en) Method and apparatus for storage resource provisioning
JPWO2010106574A1 (en) Storage control device and virtual volume control method
US20180267713A1 (en) Method and apparatus for defining storage infrastructure
US10884622B2 (en) Storage area network having fabric-attached storage drives, SAN agent-executing client devices, and SAN manager that manages logical volume without handling data transfer between client computing device and storage drive that provides drive volume of the logical volume
JP2021026659A (en) Storage system and resource allocation control method
JP5547814B2 (en) Computer system, volume allocation method to virtual server, and computer-readable storage medium
WO2015063859A1 (en) Computer system and control method
JP5957520B2 (en) Data management system and method
JP2020052919A (en) Storage device, management method and program
WO2012035576A1 (en) Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same
WO2015198441A1 (en) Computer system, management computer, and management method
WO2016006023A1 (en) Storage device, computer system and method
JP2019124983A (en) Storage system and storage control method
WO2017085870A1 (en) Computer system
US9612769B1 (en) Method and apparatus for automated multi site protection and recovery for cloud storage
WO2018055686A1 (en) Information processing system

Legal Events

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

Ref document number: 15908810

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15908810

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP