WO2016121066A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2016121066A1
WO2016121066A1 PCT/JP2015/052568 JP2015052568W WO2016121066A1 WO 2016121066 A1 WO2016121066 A1 WO 2016121066A1 JP 2015052568 W JP2015052568 W JP 2015052568W WO 2016121066 A1 WO2016121066 A1 WO 2016121066A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
resource
volume
resources
amount
Prior art date
Application number
PCT/JP2015/052568
Other languages
English (en)
French (fr)
Inventor
良徳 大平
晋広 牧
渡 岡田
理 竹内
幸恵 田島
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2016571608A priority Critical patent/JP6340439B2/ja
Priority to PCT/JP2015/052568 priority patent/WO2016121066A1/ja
Priority to US15/543,308 priority patent/US10664182B2/en
Publication of WO2016121066A1 publication Critical patent/WO2016121066A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Definitions

  • the present invention relates to a storage system performance management technology.
  • storage system performance management technology there is a technology that prevents the performance impact between applications by allowing the user to set the resource occupancy for each physical resource (port, cache, etc.) of the storage 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 is that the user decides which physical resource requires how much resource occupancy when performing performance management by setting the resource occupancy That is difficult. That is, it is difficult for the user to set the minimum necessary resource occupation amount for achieving the target performance.
  • Another issue with performance management technology for virtual storage is that if the virtual storage consists of multiple physical resources, the minimum required resource occupancy can be set for each physical resource. However, when the bias of the processing load on each physical resource changes, the resource occupation amount of a specific physical resource may be insufficient and the target performance may not be achieved.
  • the storage system in the present invention has a storage controller having a plurality of types of physical resources used for processing an I / O request from a host, and a media resource for storing data.
  • the types of physical studies include at least processor resources, memory resources, and port resources connected to the host.
  • the storage system can form one or more virtual storage apparatuses to which virtual resources obtained by logically dividing the processing capacity of physical resources are allocated, and creates a virtual volume that accepts I / O requests from the host in the virtual storage apparatus When a virtual resource is allocated to the virtual volume and an I / O request for the virtual volume is received from the host, the process related to the I / O request is performed using the allocated virtual resource.
  • the storage system also increases the usage rate of the virtual resource allocated to the virtual volume in a stepwise manner after allocating the virtual resource to the virtual volume.
  • Performance management for virtual storage becomes easy and performance management costs can be reduced.
  • the system block diagram in this invention is shown. It is a block diagram of the virtual storage in this invention. It is a block diagram of the virtual volume in a 1st Example. It is a figure which shows the example of a control program and the example of a control table in this invention. It is a block diagram of the virtual storage setting management table in a 1st Example. It is a block diagram of the virtual storage configuration management table in the first embodiment. It is a block diagram of the virtual volume structure management table in a 1st Example. It is a block diagram of the physical volume structure management table in a 1st Example. It is a block diagram of the virtual volume monitor table in a 1st Example. It is a block diagram of the physical resource amount management table in a 1st Example.
  • FIG. 1 is a block diagram schematically illustrating a schematic configuration of a computer system according to the first embodiment.
  • the computer system includes a host 100, a management server 110, and a storage system 120.
  • the number of hosts, management servers, and storage systems that can be included in the computer system is an arbitrary number of 1 or more.
  • the host is a computer that performs business using data stored in the storage system.
  • the host and the storage system are connected by a data network 130 and can communicate with each other.
  • the data network is also called a SAN (Storage Area Network), and is configured using a general technology such as FC (Fibre Channel) or Ethernet.
  • the management server is a computer that manages the storage system, such as setting various functions provided by the storage system.
  • the management server and the storage system are connected by a management network 131 and can communicate with each other.
  • the management network is also configured using a general technique such as Ethernet.
  • the storage system includes one or more media 150 that store data read and written by the host, and one or more storage controllers 140 that perform data transfer control between the host and the media.
  • media general technologies such as SSD (Solid State Drive) 151 and HDD (Hard Disk Drive) 152 can be used.
  • the storage controller includes devices such as a processor 141, a memory 142, a host interface 160 (sometimes simply referred to as a port), a management interface 161, and a media interface 162.
  • the storage controller can include any number of one or more devices.
  • the devices in the storage controller are connected to each other via an internal network and can communicate.
  • the storage controllers in the storage system are also connected to each other via an internal network and can communicate with each other.
  • the processor can execute a program that realizes various functions of the storage controller, such as a program that processes a command received from the host. However, at least a part of the functions of the storage controller may be executed by a device (dedicated hardware or the like) other than the processor.
  • the host interface and the management interface are devices connected to the host and the management server, respectively, for communication.
  • Each of the host interface and the management interface is implemented with a communication protocol used for the data network and the management network, and can communicate data and commands with the host and the management server.
  • Media interface is a device connected to media and communicating with each other.
  • Standard communication protocols such as FC, Serial Attached SCSI (SAS), and Serial Advanced Technology Attachment (SATA) are implemented in the media interface, and data and commands can be communicated with the media.
  • SAS Serial Attached SCSI
  • SATA Serial Advanced Technology Attachment
  • each device used to process an I / O request from the host such as a processor, memory, media, and host interface, included in the storage controller is referred to as a “physical resource”.
  • a device type such as a processor or a memory is called a “resource type”.
  • the storage controller according to the present embodiment generates a plurality of virtual resources (virtual processors, virtual ports, etc.) by logically dividing one physical resource (processing capacity) using so-called virtual computer technology. be able to.
  • 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.
  • Each physical resource has a maximum processing capacity.
  • the maximum processing capacity of each physical resource is referred to as “limit resource amount”.
  • the resource is consumed by executing processing such as I / O processing.
  • configurations having different limit resource amounts are allowed even for the same resource type.
  • FIG. 2 is a diagram showing a configuration example of the virtual storage.
  • the virtual storage 200 has a logical resource (virtual processor 201, virtual memory 201, virtual media 203, virtual port 204) obtained by virtualizing the physical resources (processor 141, memory 142, medium 150, port 160) of the storage system 120.
  • Storage can constitute a plurality of virtual storages. Each virtual resource corresponds to a processor, memory, media, and port that the storage system has.
  • FIG. 3 is a diagram showing a configuration example of a virtual volume in the first embodiment.
  • the virtual volume 300 is a virtual logical volume provided by the virtual storage 200 and includes a physical volume 301.
  • the virtual volume is created by the resource allocation program 400.
  • the physical volume is a logical volume that directly corresponds to the medium 150.
  • FIG. 4 is a block diagram illustrating an example of a storage control program and a storage control table stored in the memory 142.
  • the storage control program includes at least a resource allocation program 400, a host I / O program 401, a resource reallocation program 402, a resource tightness improvement program 403, a shared resource release program 404, and a storage function status change program 405. Details of each program will be described later.
  • the storage control table includes at least 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, and a storage function state correction table 418 are included. Details of each control table will be described later.
  • the storage control program shown in FIG. 4 controls the operation of the storage system 120 with reference to the storage control table shown in FIG.
  • various types of management information are called “tables”, but the data structure of these management information is not limited to tables.
  • Each management information does not depend on the data structure, and can be expressed by an appropriate data structure such as a list or a queue.
  • FIG. 5 is an example of the virtual storage setting management table 410.
  • the virtual storage setting management table is a table for managing the configuration information of the virtual storage 200 designated by the management server 110, and a plurality of virtual storage setting management tables may exist per storage system 120.
  • the virtual storage setting management table includes at least a virtual storage number (hereinafter also abbreviated as VS #) column 501, a virtual volume number (hereinafter also abbreviated as VVOL #) column 502, and a target resource usage rate column 504. , And a priority column 505.
  • the virtual storage number column 501 stores virtual storage identifiers provided by the storage system.
  • the virtual volume number column 502 stores the identifier of the virtual volume 300 belonging to the virtual storage. There may be a plurality of virtual volume numbers stored in this column.
  • the target resource usage rate column 504 stores the resource usage rate targeted by the virtual storage.
  • the target resource usage rate is a value used by the resource reallocation program 402, and is a setting value that controls the reserve amount of the virtual resource amount necessary to achieve the target performance.
  • the virtual storage can occupy 10 times the amount of virtual resources estimated by the storage system 120 to be necessary to achieve the target performance. Compared to the case of setting, it is possible to reduce the risk that the target performance will not be reached due to the change in the workload.
  • the target resource usage rate 504 can be specified by the management server, but in this embodiment, an example in which the storage system 120 automatically adjusts is shown. The definition of the virtual resource amount in this embodiment will be described later.
  • the priority order column 505 stores a value indicating the priority order between the virtual storages regarding the performance guarantee level.
  • the priority 505 is a value used in the resource tightness improvement program 403, and means that the priority is higher as the priority 505 approaches 1. Then, the virtual storage with higher priority 505 is preferentially processed by the resource tightness improvement program 403. By executing the resource tightness improvement program 403, it is possible to reduce the risk of not reaching the target performance due to the change of the resource in charge.
  • FIG. 6 is an example of the virtual storage configuration management table 411.
  • the virtual storage configuration management table is a table indicating the configuration information of each virtual resource configuring each virtual storage 200, and includes at least a VS # column 601, a virtual port configuration column 602, a virtual processor configuration column 603, a virtual memory configuration 604, A virtual media configuration column 605.
  • the virtual port configuration column 602 indicates the virtual resource amount of the virtual port 204 configured from a plurality of ports 160.
  • the virtual resource amount of the virtual port 204 is expressed by, for example, port performance (Gbps) and the number of ports (number).
  • the virtual processor configuration column 603 indicates the virtual resource amount of the virtual processor 201 configured by a plurality of processors 141.
  • the virtual resource amount of the virtual processor 201 is expressed by, for example, processor performance (GHz) and the number of processors (pieces).
  • the virtual memory configuration column 604 indicates the virtual resource amount of the virtual memory 202 configured from a plurality of memories 142.
  • the virtual resource amount of the virtual memory 202 is expressed by, for example, a memory amount (Byte).
  • the virtual media configuration column 605 indicates the virtual resource amount of the virtual media 203 configured from a plurality of media 150.
  • the virtual resource amount of the virtual medium 203 is expressed by, for example, a media type (SSD 151 or HDD 152) and the number of media (pieces). Note that it is assumed that a unique resource value for each media type (media type resource amount) is determined in advance by the system, such as 100 IOPS for HDD and 10000 IOPS for SSD. Of course, media types with different media type resource amounts may be added.
  • the values in columns 602 to 605 are hereinafter also referred to as virtual total resource amount.
  • the total virtual port resource amount (virtual port configuration 602) of VS # 001 is 8 Gbps
  • the virtual processor total resource amount (virtual processor configuration 603) is 2.3 GHz
  • the total virtual memory resource amount (virtual memory configuration) 604) is 200 GB
  • the total resource amount of the virtual media (virtual media configuration 605) is 30000 IOPS.
  • a part (eg, several tens of percent) of one specific physical resource allocated to the virtual storage is called a virtual resource amount. For example, when 10% of a physical processor with a performance of 2 GHz (that is, 0.2 GHz) is allocated to a certain virtual storage, the virtual resource amount of the processor allocated to the virtual storage is expressed as 0.2 GHz.
  • each virtual total resource amount stored in the virtual storage configuration management table 411 is an example, and a general unit indicating the resource amount related to processing performance can be used.
  • a column of the virtual storage configuration management table 411 it is also possible to define the virtual total resource amount of virtual resources configured with other resource types that the storage system 120 has.
  • FIG. 7 is an example of the virtual volume configuration management table 412.
  • the virtual volume configuration management table 412 is information indicating the correspondence between each virtual volume 300 and the physical volume 301.
  • the virtual volume configuration management table 412 includes at least a VVOL # column 701, a volume size column 702, a physical volume number column 703, and a target performance column 704.
  • “N / A” stored in the physical volume number column 703 indicates that the virtual volume is unused.
  • the target performance column 704 stores the target performance of the virtual volume.
  • throughput performance IOPS or the like
  • response performance ms or the like
  • Throughput and response can be specified as a range. That is, it can be specified by “100 IOPS or more”, “200 IOPS or less”, or a combination thereof.
  • FIG. 7 shows an example in which the lower limit value of the throughput performance is designated.
  • throughput performance when set as the target performance, it is applied to all virtual volumes belonging to the virtual storage. For example, when 100 IOPS is set as the target performance, it indicates that the total of each virtual volume is 100 IOPS.
  • a performance management method when response performance is set as the target performance is shown in the third embodiment.
  • the unit of the target performance is not limited to the above, and may be a unit that can specify the throughput performance and the response performance.
  • FIG. 8 shows an example of the physical volume configuration management table 413.
  • the physical volume configuration management table 413 is a table that holds, for each physical volume 301 included in the storage system 120, information on a physical resource in charge of processing the physical volume (hereinafter referred to as a responsible resource).
  • the physical volume configuration management table 413 includes at least information of a physical volume number column 801, a volume size column 802, a responsible port number column 803, a responsible processor number column 804, a responsible memory number column 805, and a responsible media number column 806.
  • identifiers of resources in charge of physical volumes are stored.
  • a unique identifier such as “HDD100” or “SSD100” is shown for each media type.
  • the identifier may be any as long as the storage medium can be specified. If “N / A” is stored in the volume size column 802, this indicates that the physical volume number is undefined.
  • FIG. 9 is an example of the virtual volume monitor table 414.
  • the virtual volume monitor table 414 is a table that stores monitoring information of each virtual volume 300, and includes at least a VVOL # column 901, a throughput performance column 902, and a response performance column 903. Detailed description of each column is omitted for the sake of clarity.
  • the values in the columns 902 and 903 are updated by the host I / O program 401. 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. 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 resource amount of each physical resource included in the storage system 120.
  • the physical resource amount management table 415 includes at least a resource type column 1001, a resource number column 1002, a limit resource amount column 1003, a resource allocation rate column 1004, a physical resource usage rate column 1005, and a usage rate threshold value column 1006.
  • the resource type column 1001 stores resource types such as the port 160, the processor 140, the memory 142, and the medium 150, and uniquely identifies each physical resource in the storage system 120 together with an identifier for each resource type stored in the resource number column 1002. It becomes information to identify.
  • the limit resource amount column 1003 stores a value indicating the processing capability of each physical resource.
  • the resource allocation rate column 1004 indicates the ratio of the total resource amount occupied by all virtual storages 200 that use the physical resource in the limit resource amount 1003 of the physical resource.
  • the physical resource usage rate column 1005 indicates the amount of resources used by all the virtual storages 200 that use the physical resource that occupy the limit resource amount 1003 of the physical resource for executing the I / O processing. Shows the total percentage.
  • the resource allocation rate 1004 and the physical resource usage rate 1005 in the table are values based on the processing performance of physical resources. In this specification, for the sake of convenience, “100% ⁇ (resource allocation rate 1004)” is also expressed as a surplus resource rate.
  • “resource allocation rate 10%” is occupied (allocated) by 400 Mbps by the virtual storage 200
  • “physical resource usage rate 1%” is 40 Mbps by the virtual storage 200.
  • the limit resource amount 1003 is a processor of 2 GHz
  • “resource allocation rate 50%” is occupied by 1 GHz (or 500 ms per second) by the virtual storage 200
  • “physical resource usage rate 40%” is 0.8 GHz.
  • the minutes (or 400 ms per second) indicate that the virtual storage 200 is used (operated) to perform I / O processing.
  • the limit resource amount 1003 is a 4 GB memory
  • “resource allocation rate 50%” is occupied by 2 GB of virtual storage 200
  • “physical resource usage rate 40%” is referred to as read cache per unit time by virtual storage 200 Indicates that the cache capacity is 1.6 GB.
  • the limit resource amount 1003 is 100 IOPS
  • the “resource allocation rate 50%” is occupied by 50 IOPS by the virtual storage 200
  • the “physical resource usage rate 10%” is 10 IOPS by the I / O of the virtual storage 200. Indicates that it is being used in processing.
  • 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.
  • the usage rate threshold column 1006 indicates thresholds for determining that the physical resource is in a resource tight state. For example, when the usage rate threshold is 80% and the physical resource usage rate 1005 exceeds 80%, the physical resource is determined to be in a resource tight state. A physical resource that is in a resource tight state can be hindered from achieving the target performance of the virtual storage 200, and is improved by the resource tightness improvement program 403.
  • 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 virtual resource amount of each resource allocated to the virtual storage 200.
  • the virtual resource amount management table 416 includes at least a VS # column 1100, a VVOL # column 1101, a resource type column 1102, a resource number column 1103, a resource occupancy rate column 1104, a shared resource occupancy rate column 1105, and a virtual resource usage rate column 1106. Have.
  • the resource occupancy column 1104 indicates the configuration of each virtual resource allocated to the virtual volume in the virtual storage. As an example, it is shown that a virtual resource (virtual processor) allocated to VVOL # 000 in VS # 000 is configured by occupying 50% of the limit resource amount 1003 of the processor 000.
  • the shared resource occupation rate 1105 stores the surplus resource amount that the virtual storage has. Details of the shared resource will be described later.
  • FIG. 12 is an example of the resource allocation program 400.
  • the resource allocation program 400 is a program that is executed in response to a virtual storage setting request from the management server 110, and is executed by any one of the plurality of processors 141. Further, the resource allocation program 400 sets the virtual total resource amount (602 to 605) in the virtual storage 200, and which physical resource among the physical resources of the storage system 120 is allocated to the virtual storage 200. And a program for determining how much resource amount is allocated to the allocated physical resource.
  • the program receives a virtual storage setting request (1201).
  • the virtual storage number, the virtual volume number, the virtual volume size, the target performance of the virtual volume, and the virtual storage configuration table 410 and the virtual storage configuration table 411 should be stored.
  • Each value is included.
  • a virtual volume creation program is executed (1203), and creation of each virtual volume belonging to the virtual storage and allocation of a virtual resource amount are started. Details of the virtual volume creation program will be described later.
  • the program after executing the virtual volume creation program for all virtual volumes belonging to the virtual storage (1205), responds to the management server with a successful setting and ends (1206). If the virtual volume creation has failed (1204: No), all the changes executed in the program are rolled back (1207), and then the management server 110 is responded with a setting failure and terminated (1208).
  • the initial value of the target resource usage rate 504 is set.
  • the initial value of the target resource usage rate 504 is arbitrary, but may be set to a low value (for example, 20%).
  • the target resource usage rate 504 is raised stepwise in consideration of the virtual resource usage rate 1106 in the resource reallocation program 402, and finally the minimum necessary virtual resource amount is allocated. It is because it is decided by.
  • FIG. 13 is an example of the virtual volume creation program 1203.
  • the virtual volume creation program creates a virtual volume and allocates a virtual resource amount for the virtual volume.
  • the program selects one of the resource types (1301), and executes the processing of steps 1302 to 1304 for the selected resource type.
  • a processor is selected as the resource type, and the processing from steps 1302 to 1304 will be described.
  • the virtual volume creation program 1203 selects the physical processor 141 having the smallest physical resource usage rate 1005 as the assigned resource from all the physical processors 141 of the selected resource type (1302). In the example of FIG. 10, “processor 001” is selected.
  • the virtual volume creation program 1203 calculates a resource occupancy 1104 for the virtual volume (1303).
  • An example of a method for calculating the resource occupancy 1104 of a certain virtual volume is “(virtual total resource amount of the processor (that is, the value of the virtual processor configuration 603)) ⁇ (total volume size of virtual volumes belonging to the virtual storage) ⁇ (Volume size of the virtual volume) ⁇ (limit resource amount of the processor in charge) ”.
  • the limit resource amount of the processor in charge is the limit resource amount 1003 of the physical processor 141 selected in step 1302.
  • the purpose of step 1303 is to determine a reasonable resource occupancy as an initial value of the resource occupancy for the virtual volume. If the purpose is met, the resource occupancy may be calculated by different means. For example, it may be calculated simply by “(total virtual resource amount specified by the management server) ⁇ (total number of virtual volumes belonging to the virtual storage) ⁇ (limit resource amount of assigned resource)”.
  • step 1301 to step 1304 the virtual volume creation program 1203 responds with a virtual volume creation failure and ends (1310). The processing from step 1301 to step 1304 is repeated for all resource types (1305).
  • the virtual volume creation program 1203 For each resource type, after determining the resource occupancy rate for the virtual volume, the virtual volume creation program 1203 creates a physical volume (1306) and associates the determined responsible resource with the physical volume. Specifically, the virtual volume creation program 1203 selects a physical volume number for which the physical volume is undefined in the physical volume configuration management table 413, stores the volume size of the virtual volume in the volume size 802, and then determines the assigned Resource identifiers are stored in the corresponding columns 803 to 806 for each resource type.
  • the virtual volume creation program 1203 adds the resource occupancy rate determined in step 1303 to the resource allocation rate 1004 and the resource occupancy rate 1104 of each associated resource, and allocates the virtual resource amount (1307). Finally, the virtual volume creation program 1203 associates the physical volume with the virtual volume (1308). Specifically, the VVOL # of the created virtual volume is stored in the VVOL # 701 with respect to the virtual volume configuration management table 412. The physical volume number of the physical volume created in step 1306 is stored in the physical volume number 703 of this row, and the physical volume number of the physical volume created in step 1306 is stored in the volume size 702. Finally, a virtual volume creation success response is returned (1309), and the process is terminated.
  • the program in response to a virtual storage setting request from the management server, it is possible to determine a resource in charge of each virtual volume belonging to the virtual storage and allocate 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 is a program that processes a Read / Write command for the virtual volume 200 issued by the host 100 and received by the storage system 120.
  • execution of the host I / O program 401 for the command is started in one physical processor 141 arbitrarily selected by the storage system 120.
  • the storage system 120 uses the virtual volume configuration management table 412 and the physical volume configuration management table 413 to identify the resource in charge of the virtual volume (1402).
  • the host I / O program 401 determines whether or not the own processor is a responsible processor (1417). If it is not the responsible processor, the responsible processor starts execution of the host I / O program 401 corresponding to the command (1418), and ends the processing in the own processor.
  • the host I / O program 401 checks whether the request is for the responsible port of the virtual volume (1403). If it is not a request for the assigned port, an error response is sent to the host (1416), and the process is terminated.
  • the host I / O program 401 uses the virtual resource amount management table 416 to check whether the virtual resource usage rate 1106 of each responsible resource is less than 100% (1404). If the virtual resource usage rate 1106 of any assigned resource is 100%, it is determined that the amount of virtual resources for processing the virtual volume is insufficient, and the virtual resource usage rate of all the assigned resources is less than 100%. Wait until.
  • the storage system 120 shown in the present embodiment has a function of temporarily allocating shared resources in order to eliminate the risk of target performance not being achieved due to standby.
  • the shared resource is a resource amount of each physical resource that is not allocated to any virtual storage. Since shared resources cannot always be allocated, the risk that the target performance is not achieved cannot be completely eliminated, which is a difference from the allocation of the virtual resource amount in the virtual volume creation program.
  • the program determines whether or not there is a shared resource for a resource of the resource type whose virtual resource usage rate 1106 is 100% based on whether or not the resource occupancy rate 1104 is less than 100% (1414). If the shared resource exists, the shared resource is allocated to the virtual storage (1415). In the present embodiment, the resource amount of the shared resource to be assigned is a predetermined fixed amount.
  • the allocation of shared resources is performed by adding a certain ratio (a ratio corresponding to the above-mentioned fixed amount) to the physical resource usage rate 1005 and the shared resource occupation rate 1105 of the assigned resource, and then the virtual resource usage rate 1106 is restored. Is to calculate.
  • a certain ratio a ratio corresponding to the above-mentioned fixed amount
  • the program analyzes the command request by the processor in charge (1405) and confirms the request type (Read or Write) (1406). If it is a Read request, it is determined whether the request data is stored in the responsible memory (1419). If it is stored, the data stored in the memory in charge is returned to the host, and a response is sent to the host that the processing has been completed normally (1409). If it is not stored, the request data is read from the responsible medium (1407), stored in the responsible memory (1408), then the data on the responsible memory is sent to the host, and a response indicating that the processing has been completed normally is sent to the host. (1409).
  • the request is a write request
  • the received data is stored in the responsible memory (1410)
  • a normal response is returned to the host (1411)
  • the requested data is written to the responsible medium (1412).
  • the monitoring information is updated (1413), and the process ends.
  • the monitoring information updated in this step specifically includes the throughput performance 902 and response performance 903 of the virtual volume, the physical resource usage rate 1005 of the responsible resource used in the program, and the virtual resource usage rate 1106. It is.
  • FIG. 15 is a diagram for explaining the processing outline of the resource reallocation program 402.
  • the resource reallocation program performs resource reallocation for two purposes.
  • One of the purposes of the resource reallocation program is to change the resource occupancy 1104 so that the virtual resource usage 1106 of each responsible resource in the virtual storage 200 is leveled, thereby changing the virtual resource usage of any physical resource. Is to eliminate the risk that the target performance will not be achieved.
  • Another purpose of the resource reallocation program is to control the virtual resource usage rate so that the target resource usage rate 504 is gradually increased, thereby reducing the amount of virtual resources necessary to achieve the target performance. It is to limit.
  • the virtual storage has two virtual volumes 200 (# 1 and # 2). Further, the target throughput performance 704 of each virtual volume is 100 IOPS and 300 IOPS, respectively, and the responsible processors 804 are (physical) processor # 1 and (physical) processor # 2, respectively.
  • the responsible processors 804 are (physical) processor # 1 and (physical) processor # 2, respectively.
  • the virtual resource usage rate of the processor assigned to each virtual volume is 40% and 60%, respectively.
  • the program sets the resource occupancy rate of the processor # 1 to 40% so that the virtual resource usage rate of each assigned resource is made uniform (for example, all virtual resource usage rates are 50%).
  • the resource occupancy of processor # 2 is changed to 60% (1501). Details of this process will be described when the process of FIG. 16 is described.
  • the virtual resource usage of resources (such as processors) allocated to each virtual volume is adjusted so as not to fluctuate. Therefore, when the virtual resource usage rate is raised, the resource occupancy rate decreases, and when the virtual resource usage rate is lowered, the resource occupancy rate increases.
  • the storage system 120 next increases the target resource usage rate 504 of the virtual processor (virtual storage) from 50% to 60% (1502), and reduces the estimate of the amount of virtual resources necessary to achieve the target performance. That is, by changing the resource occupancy rate of processor # 1 to 33% and the resource occupancy rate of processor # 2 to 50%, the virtual resource usage rate of the virtual processor is set to 60% (1503). Details of this processing will also be described when the processing of FIG. 16 is described. This process is repeated, and when shared resources are finally allocated to the virtual storage, it is determined that no further increase is possible (the amount of virtual resources is the minimum necessary), and the target resource usage rate is determined. To do.
  • FIG. 16 is an example of the resource reallocation program 402.
  • the resource reallocation program 402 is executed for each virtual storage 200.
  • the resource reallocation program 402 uses the values of the virtual volume monitor table 414 and the virtual resource amount management table 416 for each virtual volume 300 belonging to the virtual storage 200, so that the performance value of each virtual volume, The virtual resource usage rate 1106 of the resource in charge of the volume is specified (1601). Subsequently, the resource reallocation program 402 calculates the average value of the virtual resource usage rate 1106 of the resource in charge of each virtual volume for each resource type.
  • FIG. 15 An explanation will be given by taking FIG. 15 as an example.
  • the resource reallocation program 402 calculates a virtual resource amount to be allocated for each assigned resource of the virtual volume.
  • the storage system 120 has a function of calculating the virtual resource amount necessary to achieve the target performance 704 based on the virtual resource amount currently used for the virtual volume and the performance ratio. is doing. For example, by giving the resource reallocation program 402 a function that takes the virtual resource amount and performance ratio currently used as input values and outputs the virtual resource amount necessary to achieve the target performance 704, This function can be realized.
  • the amount of virtual resources currently used for virtual volumes is (Limit resource amount of assigned resource 1003 ⁇ resource occupation rate 1104 ⁇ virtual resource usage rate 1106) Is obtained by calculating.
  • the storage system 120 has this function for each resource type (processor, port, memory, medium).
  • the resource reallocation program 401 uses this function to calculate the amount of virtual resources to be allocated to each assigned resource.
  • the performance value of the virtual volume identified in step 1601, the target performance 704, and the amount of virtual resources currently used are used as input values to achieve the target performance 704. It is also possible to use a function that outputs the amount of virtual resources required to do this.
  • the resource reallocation program 401 uses the resource amount calculated in step 1604, the average value of the virtual resource usage rate calculated in step 1602, and the limit resource amount 1003 of the assigned resource to determine the resource of each assigned resource.
  • the occupation ratio 1104 is calculated and set in the virtual resource amount management table 416. A specific example of a method for calculating the resource occupancy 1104 will be described in the case where the resource type is a processor.
  • the virtual resource amount of the processor in charge of a certain virtual volume (for example, virtual volume # 1) calculated in step 1604 (this is the processor resource amount necessary to achieve the target performance) is 0.4 GHz, Assume that the average value of the virtual resource usage rate calculated in step 1602 is 50%, and the limit resource amount of the processor in charge of virtual volume # 1 is 2 GHz.
  • the resource reallocation program 401 determines whether or not there is a shared resource by determining whether or not the shared resource occupation ratio 1104 of the virtual storage is 0% (1607). When there is a shared resource (the shared resource occupancy 1104 is not 0%), the resource reallocation program 401 determines that there is a target performance unachieved risk due to an increase in the target resource usage rate, determines the target resource usage rate, and performs processing. Exit. On the other hand, if there is no shared resource, it is determined that there is no risk of not reaching the target performance due to the increase in the target resource usage rate, and the resource reallocation program 401 increases the target resource usage rate 504 by a certain amount (for example, 10%) (1608). ).
  • the resource reallocation program 401 calculates the resource occupancy rate 1104 of each responsible resource so that the virtual resource usage rate 1106 of each responsible resource is equal to the value of the target resource usage rate 504, and stores it in the virtual resource amount management table 416. Then, the processing is terminated (1609).
  • the resource occupation rate 1104 of each responsible resource here will be described below.
  • step 1605 the resource occupancy rate allocation method of the processor resources allocated to the virtual volume # 1 has been described.
  • the virtual resource occupancy of the processor (the processor in charge) assigned to the virtual volume # 1 is 50%
  • the resource occupancy 1104 is 40%.
  • the limit resource amount of the processor in charge is 2 GHz
  • the processor resource amount required by the virtual volume # 1 is 0.4 GHz.
  • the resource occupancy 1104 is adjusted so that this resource amount (the amount of processor resources required for the virtual volume # 1 to achieve the target performance) does not fluctuate.
  • the resource occupancy 1104 is calculated using the same calculation formula as in Step 1605, that is, (virtual resource amount required for the virtual volume # 1 to achieve the target performance / target resource usage rate 504) / limit resource amount 1003. It is calculated by the following formula.
  • the risk of failure to achieve target performance due to changes in workload can be eliminated by dynamically adjusting the resource occupancy of each assigned resource using monitoring information.
  • the virtual resource amount for achieving the target performance can be minimized by raising the target resource usage rate step by step while referring to the virtual resource usage rate.
  • a part of the program may be executed by the management server 110.
  • FIG. 17 is an example of the resource tightness improvement program 403.
  • the resource tightness improvement program detects that a certain physical resource has changed to a resource tight state, changes the resource in charge of the virtual storage 200 that uses the physical resource, improves the resource tightness state, and It is a program that eliminates the risk that the virtual storage that uses is not achieving the target performance.
  • the resource tightness improvement program selects one physical resource belonging to the storage system 120 (1701), and uses the physical resource amount management table 415 to determine whether the physical resource usage rate exceeds the usage rate threshold 1006. Determination is made (1702). When the usage rate threshold value 1006 is exceeded, the resource tightness state is improved by changing the assigned resource.
  • the program selects a target resource change target so as not to affect the performance of the host 100 as much as possible. Therefore, the program selects the virtual storage with the highest priority 505 among the virtual storages using the physical resource (1703), and selects the virtual volume with the smallest volume size 702 belonging to the virtual storage. (1704). If the purpose of reducing the performance impact on the host is the same, the method for selecting the assigned resource change target may be different.
  • the program selects a new resource in charge of the virtual volume selected in step 1704.
  • a physical resource that is not in a resource tight state and has the smallest physical resource usage rate is selected as a new candidate resource candidate (1705). If there is a new assigned resource candidate (step 1705: No), the assigned resource of the virtual volume is changed to the assigned resource selected in step 1705 (1707). Thereafter, the processing from Steps 1702 to 1707 is repeatedly executed until the resource tightness state is improved.
  • the method of changing the resource in charge differs depending on the resource type.
  • the following describes how to change the resource in charge for the resource types targeted by this specification.
  • the processor in charge can be changed by interrupting the processing of the virtual volume being executed on the migration source physical processor and restarting the processing on the migration destination physical processor.
  • the memory in charge can be changed by purging the data cache of the virtual volume stored on the migration source physical memory and switching the subsequent data storage destination to the migration destination physical memory.
  • the assigned media can be changed by reading all the data of the virtual volume stored on the migration source physical media, writing it to the migration destination physical media, and then changing the data access destination to the migration destination physical media. it can.
  • to change the assigned port permit access from the destination physical port, manually change the setting of the host 100 to switch the destination to the destination port, confirm the access to the destination port, This can be achieved by prohibiting access to the source physical port.
  • the method for changing the resource in charge is not limited to the above, and a general method can be used.
  • a general method can be used.
  • a general method of automatically switching to a physical port can be used.
  • the management server If there is no candidate resource in charge (1706), the management server is notified of the impossibility of improvement (1709), and requests the management server to improve the resource tightness state. Thereafter, after confirming all physical resources in the storage system (1708), the program is terminated.
  • the program it is possible to eliminate the risk that the target performance of the virtual storage will not be achieved by detecting the resource tightness status of the physical resource and improving the resource tightness status by changing the assigned resource.
  • resource reallocation is not limited to the method described above. Various methods other than those described above can be adopted as long as the method can increase the virtual resource usage rate comfortably.
  • FIG. 35 shows another example of the resource reallocation program.
  • the program described in FIG. 35 is referred to as a resource reallocation program 402 '.
  • step 1601 ′ the resource reallocation program 402 ′ uses the value of the virtual resource amount management table 416 for each virtual volume 300 belonging to the virtual storage 200 to set the virtual resource usage rate 1106 of the resource in charge of each virtual volume. Identify. Subsequently, the resource reallocation program 402 calculates the average value of the virtual resource usage rate 1106 of the resource in charge of each virtual volume for each resource type (1602 '). This process is the same as step 1602 in FIG.
  • the resource reallocation program 402 ′ calculates the currently used virtual resource amount for each resource in charge of the virtual volume. This can be calculated from the resource occupancy rate 1104 and the virtual resource usage rate 1106 managed by the limit resource amount 1003 and the virtual resource amount management table 416.
  • Step 1605 ′ the resource reallocation program 402 ′ uses the virtual resource amount calculated in Step 1604 ′, the average value of the virtual resource usage rate calculated in Step 1602, and the limit resource amount 1003 of the assigned resource,
  • the resource occupancy 1104 of the assigned resource is calculated and set in the virtual resource amount management table 416.
  • the resource reallocation program 402 ′ (Virtual resource amount calculated in step 1604 ′ ⁇ average value of virtual resource usage rate) ⁇ limit resource amount 1003 of the assigned resource Calculate
  • Steps 1606 'to 1608' are the same as steps 1606 to 1608 in FIG.
  • step 1609 ′ the resource reallocation program 402 ′, like step 1609 in FIG. 16, makes the resource occupancy rate of each responsible resource so that the virtual resource usage rate 1106 of each responsible resource is equal to the target resource usage rate 504. 1104 is adjusted and set in the virtual resource amount management table 416, and the process ends. (1609).
  • the calculation formula of the adjustment method here is as follows. (Virtual resource amount calculated in step 1604 ′ ⁇ target resource usage rate 504) ⁇ limit resource amount
  • step 1609 of FIG. 16 the virtual resource amount required for the virtual volume to achieve the target performance is used.
  • step 1609 ′ instead of this, the calculation is performed in step 1604 ′.
  • the amount of virtual resources used that is, the amount of virtual resources currently used is used.
  • the resource occupancy rate can be adjusted in the same manner as the resource reallocation program 402 even if the resource reallocation program 402 ′ is used.
  • the second embodiment a method for managing the performance of the virtual storage in a configuration in which a responsible resource exists for each divided area in the virtual volume belonging to the virtual storage will be described.
  • FIG. 18 is a schematic diagram showing the correspondence between the virtual volume 300 and the physical volume 301 in the second embodiment.
  • the correspondence between the virtual volume and the physical volume is managed in units of fixed length that are finer than the volume.
  • a unit obtained by dividing a virtual volume into fixed lengths is called a divided area 1901
  • a unit obtained by dividing a physical volume into fixed lengths is called a page 1902.
  • Some divided areas and pages are not related to each other (1904 and 1905).
  • FIG. 19 shows an example of the virtual volume configuration management table 413.
  • the virtual volume configuration management table of this embodiment newly manages the correspondence relationship between the virtual volume divided areas and the physical volume pages.
  • the virtual volume configuration management table manages a virtual LBA column 2203 indicating the LBA range of each divided area and a physical LBA column 2205 indicating the LBA range of each page. Description of other columns is omitted.
  • the thin provisioning technique is a technique for associating a page with a divided area only after receiving a write request to a specific divided area from the host 100. By applying this technology, the capacity efficiency of the storage system can be increased.
  • pages may not correspond to divided areas.
  • Such a divided area is expressed by storing “N / A” in the physical LBA column in the virtual volume management table.
  • the description of the present embodiment will be described in the case where the thin provisioning technology is applied.
  • FIG. 20 is an example of the physical volume configuration management table 414.
  • a physical LBA column 2103 is added, and the assigned resource can be managed for each page. Description of other columns is omitted.
  • the required number of physical volumes is created in advance.
  • FIG. 21 is an example of the virtual volume monitor table 415. Similarly, a virtual LBA column 2202 is added to the virtual volume monitor table of this embodiment, and the performance value for each divided area can be managed. Description of other columns is omitted.
  • FIG. 22 is an example of the virtual volume creation program 1202.
  • the processing from step 2302 to step 2308 is changed so that a resource in charge is determined for each divided area and a virtual resource is allocated to the resource in charge.
  • the virtual resource allocation method varies depending on whether or not a corresponding page exists for each divided area in the virtual volume. This is to determine a more appropriate resource in charge by determining the resource in each divided area when the corresponding page is determined.
  • the program first, it is determined whether or not a corresponding page exists in each divided area (2303). If the corresponding page exists, the resource in charge is determined by the same method as in FIG. 13 (2304), and the resource occupation rate 1104 is calculated (2305). In this embodiment, the size of each divided area is a fixed length, and the resource occupancy rate is “(virtual total resource amount) / (total number of divided areas of virtual volumes belonging to the virtual storage) / (resource resource Limit resource amount) ”. Thereafter, the virtual resource amount is assigned to the assigned resource in the same manner as in FIG. 13 (2306, 2307).
  • the divided area is once counted as the number of unallocated areas (2314).
  • the resource occupancy ratio for the number of unallocated areas is expressed as “(virtual total resource amount) ⁇ (virtual volume divided areas belonging to the virtual storage” (Total number) ⁇ (number of unallocated areas) ⁇ (limit resource amount of assigned resource) ”(2309), and then temporarily equalized for all physical resources belonging to the resource type selected in step 2301
  • the resource occupancy rate is allocated to the number of unallocated areas (2311).
  • FIG. 23 is an example of the host I / O program 401. Similarly, the processing of the host I / O program in this embodiment is changed so as to identify the resource in charge for each divided area (2402). In addition, with the application of the thin provisioning technology, processing is added so that pages are associated with the divided areas only when a write request to the divided areas is received (steps 2417 and 2418).
  • Step 2418 includes a responsible resource determination process for the divided area and a resource occupancy setting process for the responsible resource. Since these details are the same as the processing from steps 2304 to 2307 in FIG. 22, detailed description thereof is omitted.
  • FIG. 24 is an example of the resource reallocation program 402. Similarly, in the resource reallocation program in this embodiment, the processing is changed so as to determine the virtual resource amount of the assigned resource for each divided area (steps 2502 to 2506).
  • the performance of virtual storage can be managed even when thin provisioning technology is applied in a configuration in which a virtual volume is managed in units of divided areas.
  • the third embodiment a method for managing the performance of the virtual storage in a configuration in which the tearing technology is applied to each virtual volume in addition to the configuration of the second embodiment will be described.
  • Tearing technology is a technology that associates each divided area of a virtual volume with a physical volume page configured with different media types. Further, by automatically rearranging divided areas with high throughput performance to high-speed media types, it is possible to improve the performance of the virtual volume.
  • the high-speed media type indicates the SSD 151.
  • FIG. 25 is an example of a virtual storage configuration management table.
  • the virtual storage configuration management table in this embodiment can specify a media type in which HDD 151 and SSD are mixed as virtual media 2705.
  • the storage system dynamically adjusts the resource occupancy of the HDD and the resource occupancy of the SSD using a tearing technique, and minimizes the resource occupancy of the SSD for achieving the target performance. Description of other columns is omitted.
  • 26 and 27 are process outline diagrams of the resource reallocation program 203 in this embodiment.
  • the virtual storage 200 has one virtual volume 300.
  • the target performance of the virtual storage is set to “less than 5 ms”.
  • the assigned medium 2107 of each divided area 1901 included in the virtual volume is either SSD # 1 or HDD # 1, and the divided area having SSD # 1 as the assigned resource.
  • the sum total of the throughput performance 2203 is 100 IOPS, and the sum of the throughput performances of the divided areas having HDD # 1 as the resource in charge is 200 IOPS.
  • the response performance of the virtual storage can be calculated as approximately 4.3 ms.
  • the sum of the throughput performances 2203 of the divided areas having SSD # 1 as the resource in charge is 60IPS, and the divided areas having HDD # 1 as the resource in charge are divided.
  • the total throughput performance may be 240 IOPS.
  • the program selects the 40 IOPS in descending order of the throughput performance in the divided area where the assigned resource is SSD # 1, and changes the assigned resource to the HDD, thereby reducing the SSD resource allocation minimum. Limit.
  • the reason why the low throughput performance is selected is to effectively use the capacity resource of the SSD, and different selection criteria may be used as long as it is 40 IOPS.
  • FIG. 28 is an example of the resource reallocation program 402.
  • the resource reallocation program in this embodiment shows a resource reallocation method when response performance is set.
  • the program calculates the target throughput performance of the SSD that is the minimum necessary to achieve the target performance (2801).
  • An example of the calculation method of the processing is as shown in FIG. After that, based on the current target resource usage rate, “target throughput performance ⁇ SSD target throughput performance” is calculated and calculated as the required virtual resource amount (2802).
  • the program needs to be moved to the HDD by summing up the throughput performance (2803) and calculating the difference from the calculated virtual resource amount for the divided areas whose media type is SSD.
  • a throughput performance amount (scheduled performance amount) is calculated (2804).
  • the resource in charge is changed from the SSD to the HDD is shown, but the same calculation can be made when the resource in charge is changed from the HDD to the SSD.
  • the divided areas whose media type is SSD are sorted in ascending order of throughput performance (2805), and the assigned medium is changed from SSD to HDD by the scheduled performance amount in order from the first divided area (2806). 2807).
  • the method shown in FIG. 17 can be applied as an example of a method for changing the assigned media.
  • the program adds the throughput performance of the divided area where the assigned medium is changed as the moved performance amount (2808), and terminates the processing when the moved performance amount exceeds the scheduled performance amount (2809).
  • the program adjusts the target resource usage rate in accordance with the presence / absence of shared resources (step 2810 to step 2812), as in FIG. As described above, according to the program, the amount of SSD resources necessary to achieve the target performance can be minimized.
  • the fourth embodiment shows a method for managing the performance of the virtual storage in a configuration in which the storage function is applied to the virtual volume belonging to the virtual storage.
  • various storage functions can be applied to each virtual volume constituting the virtual storage.
  • the storage function indicates a volume copy function, a deduplication function, a compression function, or the like.
  • the amount of virtual resources that achieves the target performance varies depending on the function state of the storage function, and thus the amount of virtual resources must be adjusted according to the function state.
  • FIG. 29 shows an overview of the volume copy function targeted by this embodiment.
  • the volume copy function is a function for copying a copy of data stored in a certain virtual volume 300 to another virtual volume.
  • the replication source virtual volume is distinguished as the Primary Volume 2901 and the replication destination virtual volume is identified as the Secondary Volume 2902.
  • the volume copy function has a function state indicating a copy creation status between the primary volume and the secondary volume.
  • FIG. 30 is an example of a state transition diagram of the functional state. “Init” indicates an initial state in which no copy is created (2911), and “Copying” indicates a state in the middle of copying data from the primary volume to the secondary volume (2912).
  • “Paired” indicates a state in which the write request is written to both the primary volume and the secondary volume and the copy is maintained after the data replication is completed once (2913), and “Suspended” indicates that the write request is a primary volume. This is a state in which the data difference portion from the Secondary Volume is recorded (2914). “Restoring” indicates a state in which the data of the data difference portion is copied from the Secondary Volume to the Primary Volume (2915).
  • the amount of virtual resources for the Secondary Volume to achieve the target performance is larger than that of Suspended. That is, the amount of virtual resources can be minimized by performing control to add an appropriate amount of virtual resources to the Secondary Volume when the state is changed from Suspended to Copying.
  • FIG. 31 shows an overview of the deduplication function and the compression function targeted by this embodiment.
  • the deduplication function is a function for improving capacity efficiency by associating a common page 1902 with a divided area 1901 having the same stored data (deduplicating).
  • the compression function is a function for improving the capacity efficiency by storing data obtained by compressing divided areas in a page. It should be noted that both deduplication and compression can be applied to the same divided area.
  • the compression function when the compression function is applied, it is necessary to perform compression processing and decompression processing for I / O for the data, and the amount of virtual resources for achieving the target performance is increased. That is, by performing control to add an appropriate virtual resource amount to the virtual volume when compression is executed, the physical resource amount allocated to the virtual volume can be minimized.
  • FIG. 32 is an example of the storage function status management table 417.
  • the function status management table is a table for managing the function type applied to each virtual volume 300 and its function status.
  • the function status management table includes at least a virtual volume number column 3101, a function type column 3102, and a function status column 3103.
  • the function type column the function type applied to the virtual volume is stored.
  • values such as “Volume Copy (Primary Volume)”, “Volume Copy (Secondary Volume)”, “Deduplication”, “Compression” are stored.
  • the function status column stores the function status of the function provided by each function type.
  • volume copy the statuses such as Init and Copying shown in FIG. 30 are stored.
  • deduplication the ratio of the pages that have been deduplicated in the divided areas included in the virtual volume is stored, and in the compression, the state of “compressed” or “uncompressed” is stored. .
  • FIG. 33 is an example of the storage function state correction table 418.
  • the storage function state correction table is a table for managing the correction rate of the virtual resource amount when the storage function applied to the virtual volume 300 transitions to a specific function state.
  • the table includes at least a function type column 3201, a function state column 3202, a port correction rate column 3203, a processor correction rate column 3204, a memory correction rate column 3205, and a media correction rate column 3206.
  • the storage system 120 adjusts the virtual resource amount occupied by the virtual storage 200 with the correction rate indicated by the columns 3203 to 3006. For example, when a volume copy (Primary Volume) is applied to a certain virtual volume belonging to the virtual storage and the storage function status transitions to Copying, the resource occupancy calculated in step 1605 of the resource reallocation program 402 is obtained. Correct by adding the correction factor. For example, when the processor correction rate 3204 is 10%, after the resource occupancy rate of the processor is calculated in step 1605, correction is performed by multiplying the calculated resource occupancy rate by 1.1.
  • FIG. 34 shows an example of the storage function status change program 406.
  • the storage function status change program is executed every time the storage function status of the virtual volume is changed, and is a program that corrects the resource occupancy according to the changed storage function status.
  • the storage function state change program detects a change in the function state of the virtual volume (3301), and updates the storage function state (3302).
  • the change of the function state generally occurs in response to a request from the management server 110. However, depending on the function type, the state change may occur due to a command reception trigger or a failure trigger from the host 100. .
  • the program selects one of the function types applied to the virtual volume (3303), and each resource corresponding to the updated function status is based on the function status correction table 418.
  • a correction factor is calculated (3304).
  • all the calculated resource correction rates are added up and calculated as the total correction rate (3306).
  • the physical resource is corrected for the virtual storage (3307).
  • the correction described in the description of FIG. 33 is performed.
  • the above-described configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them, for example, with an integrated circuit.
  • Information such as programs, tables, and files that realize each function is stored in a non-volatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), or a computer-readable information such as an IC card, SD card, or DVD. It can be stored on a temporary data storage medium.

Landscapes

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

Abstract

 本発明におけるストレージシステムは、ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有する。物理資源の種類には少なくとも、プロセッサ資源、メモリ資源、ホストと接続されるポート資源とが含まれる。ストレージシステムは、物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能で、仮想ストレージ装置内にホストからのI/O要求を受け付ける仮想ボリュームを作成する際、仮想資源を仮想ボリュームに割り当て、仮想ボリュームに対するI/O要求をホストから受け付けると、割り当てられた仮想資源を用いて前記I/O要求に係る処理を実施する。ストレージシステムはまた、仮想資源を仮想ボリュームに割り当てた後、仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる。

Description

ストレージシステム
 本発明は、ストレージシステムの性能管理技術に関する。
 クラウド環境では、テナントを単位とした性能管理技術が重要となってきており、テナントを構成するストレージの性能管理技術も、ますます重要になってきている。一方で近年、ストレージ仮想化技術により、ストレージに関する専門知識を持たない管理者でも容易にストレージ管理ができるようになってきている。以上の背景から、ストレージ仮想化技術を適用した仮想ストレージの性能管理技術が重要となってきている。
 ストレージシステムの性能管理技術として、ストレージシステムが持つ各物理資源(ポートやキャッシュなど)について、ユーザによる資源占有量を設定可能にすることで、アプリケーション間の性能影響を防止する技術がある。一方、ストレージ仮想化技術として、シンプロビジョニング技術やティアリング技術など、データを格納する適切なメディアをストレージシステムが自動決定することで、専門知識を持たないユーザでも、ストレージシステムを管理可能にする技術がある。
 仮想ストレージを対象とした性能管理技術の課題の1つは、資源占有量の設定によって性能管理を行う時、どの物理資源が、どの程度の資源占有量を必要とするかを、ユーザが判断することが難しいことである。すなわち、目標性能を達成するための必要最小限の資源占有量を、ユーザが設定することが難しいことである。
 また、仮想ストレージを対象とした性能管理技術の課題のもう1つは、仮想ストレージが複数の物理資源で構成される場合に、仮に各物理資源に必要最小限の資源占有量を設定できた場合でも、各物理資源への処理負荷の偏りが変化することによって、特定の物理資源の資源占有量が不足し、目標性能を達成できない可能性があることである。
 本発明におけるストレージシステムは、ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有する。物理修験の種類には少なくとも、プロセッサ資源、メモリ資源、ホストと接続されるポート資源とが含まれる。ストレージシステムは、物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能で、仮想ストレージ装置内にホストからのI/O要求を受け付ける仮想ボリュームを作成する際、仮想資源を仮想ボリュームに割り当て、仮想ボリュームに対するI/O要求をホストから受け付けると、割り当てられた仮想資源を用いて前記I/O要求に係る処理を実施する。ストレージシステムはまた、仮想資源を仮想ボリュームに割り当てた後、仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる。
 仮想ストレージを対象とした性能管理が容易となり、性能管理コストの低減が可能となる。
本発明におけるシステム構成図を示す。 本発明における仮想ストレージの構成図である。 第一の実施例における仮想ボリュームの構成図である。 本発明における制御プログラム例と制御テーブル例とを示す図である。 第一の実施例における仮想ストレージ設定管理テーブルの構成図である。 第一の実施例における仮想ストレージ構成管理テーブルの構成図である。 第一の実施例における仮想ボリューム構成管理テーブルの構成図である。 第一の実施例における物理ボリューム構成管理テーブルの構成図である。 第一の実施例における仮想ボリュームモニタテーブルの構成図である。 第一の実施例における物理資源量管理テーブルの構成図である。 第一の実施例における仮想資源量管理テーブルの構成図である。 第一の実施例における資源割当てプログラムの構成図である。 第一の実施例における仮想ボリューム作成プログラムの構成図である。 第一の実施例におけるホストI/Oプログラムの構成図である。 第一の実施例における資源再割当てプログラムの処理概要図である。 第一の実施例における資源再割当てプログラムの構成図である。 第一の実施例における資源逼迫改善プログラムの構成図である。 第二の実施例における仮想ボリュームの構成図を示す。 第二の実施例における仮想ボリューム構成管理テーブルの構成図である。 第二の実施例における物理ボリューム構成管理テーブルの構成図である。 第二の実施例における仮想ボリュームモニタテーブルの構成図である。 第二の実施例における仮想ボリューム作成プログラムの構成図である。 第二の実施例におけるホストI/Oプログラムの構成図である。 第二の実施例における資源再割当てプログラムの構成図である。 第三の実施例における仮想ストレージ構成管理テーブルの構成図である。 第三の実施例における資源再割当てプログラムの処理概要図である。 第三の実施例における資源再割当てプログラムの処理概要図(2)である。 第三の実施例における資源再割当てプログラムの構成図である。 第四の実施例におけるボリュームコピー機能の概要図である。 第四の実施例におけるボリュームコピー機能の状態遷移図である。 第四の実施例における重複排除機能と圧縮機能の概要図である。 第四の実施例におけるストレージ機能状態管理テーブルの構成図である。 第四の実施例におけるストレージ機能状態補正テーブルの構成図である。 第四の実施例におけるストレージ機能状態変更プログラムの構成図である。 資源再割当てプログラムの変形例である。
 図1は、実施例1に係る計算機システムの概略構成を模式的に示すブロック図である。本計算機システムは、ホスト100、管理サーバ110、ストレージシステム120を含む。計算機システムが含みえるホスト、管理サーバ、ストレージシステムのそれぞれの数は、1以上の任意の数である。
 ホストは、ストレージシステムに格納されたデータを使って業務などを行う計算機である。ホストとストレージシステムとは、データネットワーク130で接続されており、互いに通信が可能である。データネットワークは、SAN(Storage Area Network)とも呼ばれ、FC(Fibre Channel)や、Eathernetなどの一般的な技術を使って構成される。
 管理サーバは、ストレージシステムが提供する各種機能の設定など、ストレージシステムの管理を行う計算機である。管理サーバとストレージシステムとは、管理ネットワーク131で接続されており、互いに通信が可能である。管理ネットワークも、Eathernetなどの一般的な技術を使って構成される。
 ストレージシステムは、ホストが読み書きするデータを格納する1以上のメディア150と、ホストとメディアとの間のデータ転送制御などを行う1以上のストレージコントローラ140とで構成される。メディアには、SSD(Solid State Drive)151やHDD(Hard Disk Drive)152などの一般的な技術が利用できる。
 ストレージコントローラは、プロセッサ141、メモリ142、ホストインターフェース160(単にポートと呼ぶこともある)、管理インターフェース161、メディアインターフェース162などのデバイスで構成される。ストレージコントローラは、各デバイスを1以上の任意の数含むことができる。
 ストレージコントローラ内の各デバイスは互いに内部ネットワークで接続されており、通信が可能である。同様に、ストレージシステム内の各ストレージコントローラも互いに内部ネットワークで接続されており、通信が可能である。
 プロセッサは、ホストから受領するコマンドを処理するプログラムなど、ストレージコントローラが備える各種機能を実現するプログラムを実行できる。ただし、ストレージコントローラが備える機能の少なくとも一部は、プロセッサ以外のデバイス(専用ハードウェアなど)で実行されてもよい。
 ホストインターフェースと管理インターフェースはそれぞれ、ホストと管理サーバに接続され、通信を行うデバイスである。ホストインターフェースと管理インターフェースにはそれぞれ、データネットワークや管理ネットワークに使われている通信プロトコルが実装され、ホストや管理サーバと、データやコマンドを通信することができる。
 メディアインターフェースは、メディアに接続され、互いに通信を行うデバイスである。メディアインターフェースには、FC、Serial Attached SCSI(SAS)、Serial Advanced Technology Attachment(SATA)などの標準的な通信プロトコルが実装され、メディアと、データやコマンドを通信することができる。
 以降、ストレージコントローラが含む、プロセッサ、メモリ、メディア、ホストインターフェース等の、ホストからのI/O要求を処理するために用いられる各デバイスを「物理資源」と呼ぶ。また、プロセッサやメモリ等のデバイス種別は「資源種別」と呼ぶ。また本実施例に係るストレージコントローラは、いわゆる仮想計算機技術を用いて、1つの物理資源(の処理能力)を論理的に分割することで複数の仮想資源(仮想プロセッサ、仮想ポート等)を生成することができる。具体的には、たとえば物理資源の処理能力を時分割で複数の仮想資源に割り当てることにより、1つの物理資源を論理的に分割する。各物理資源には、最大処理能力が定められている。本明細書では各物理資源の最大処理能力のことを、「限界資源量」と呼ぶ。当該資源はI/O処理など処理を実行することで消費される。尚、本明細書では、同一の資源種別であっても、限界資源量が異なる構成を許容する。
 図2は、仮想ストレージの構成例を示す図である。仮想ストレージ200は、ストレージシステム120の物理資源(プロセッサ141、メモリ142、メディア150、ポート160)を仮想化した仮想資源(仮想プロセッサ201、仮想メモリ201、仮想メディア203、仮想ポート204)を有する論理的なストレージである。ストレージシステムは、複数個の仮想ストレージを構成できる。各仮想資源は、ストレージシステムが有するプロセッサ、メモリ、メディア、ポートにそれぞれ対応する。
 図3は、第一の実施例における、仮想ボリュームの構成例を示す図である。仮想ボリューム300は、仮想ストレージ200が提供する仮想的な論理ボリュームであり、物理ボリューム301で構成される。仮想ボリュームは、資源割当てプログラム400にて作成される。物理ボリュームは、メディア150に直接対応づいた論理ボリュームである。
 本実施例では、便宜上、仮想ボリュームと物理ボリュームとの対応関係が1:1であり、かつボリュームサイズが同じである構成について示す。しかしながら、ボリュームサイズが半分である2個の物理ボリュームを組合せて、1個の仮想ボリュームを作成しても、1個の物理ボリュームを複数の仮想ボリュームに関連付けても構わない。
 図4は、メモリ142に格納されるストレージ制御プログラム、およびストレージ制御テーブルの一例を示すブロック図である。ストレージ制御プログラムには、少なくとも、資源割当てプログラム400、ホストI/Oプログラム401、資源再割当てプログラム402、資源逼迫改善プログラム403、共有資源解放プログラム404、ストレージ機能状態変更プログラム405が含まれる。各プログラムの詳細は後述する。
 ストレージ制御テーブルは、少なくとも、仮想ストレージ設定管理テーブル410、仮想ストレージ構成管理テーブル411、仮想ボリューム構成管理テーブル412、物理ボリューム構成管理テーブル413、仮想ボリュームモニタテーブル414、物理資源量管理テーブル415、仮想資源量管理テーブル416、ストレージ機能状態管理テーブル417、ストレージ機能状態補正テーブル418を含む。各制御テーブルの詳細は後述する。
 図4で示すストレージ制御プログラムは、同じく図4で示すストレージ制御テーブルを参照して、ストレージシステム120の動作を制御する。尚、上では、各種管理情報を「テーブル」と呼んでいるが、これら管理情報のデータ構造がテーブルに限定されるわけではない。各管理情報はデータ構造に依存せず、リストやキューなど、適切なデータ構造で表現することができる。
 図5は、仮想ストレージ設定管理テーブル410の一例である。仮想ストレージ設定管理テーブルとは管理サーバ110が指定する仮想ストレージ200の構成情報を管理するテーブルであり、ストレージシステム120当り複数個存在しうる。仮想ストレージ設定管理テーブルは、少なくとも、仮想ストレージ番号(以下、VS#と略す場合もある)カラム501と、仮想ボリューム番号(以下、VVOL#と略す場合もある)カラム502、目標資源使用率カラム504、優先順位カラム505とを含む。
 仮想ストレージ番号カラム501には、当該ストレージシステムが提供する仮想ストレージの識別子を格納する。仮想ボリューム番号カラム502には、当該仮想ストレージに所属する仮想ボリューム300の識別子を格納する。当カラムに格納する仮想ボリューム番号は、複数個存在してよい。
 目標資源使用率カラム504には、当該仮想ストレージが目標とする資源使用率を格納する。目標資源使用率は、資源再割当てプログラム402で使用される値であり、目標性能を達成するために必要な仮想資源量の予備量を制御する設定値である。
 例えば、目標資源使用率504を10%に設定した場合、ストレージシステム120が目標性能達成に必要と見積もった仮想資源量の10倍の量を仮想ストレージに占有させることが可能であり、90%に設定した場合に比べて、ワークロードの変化が原因となる目標性能未達リスクを低減させることができる。目標資源使用率504は、管理サーバによって指定されることも可能であるが、本実施例では、ストレージシステム120が自動調整する例を示す。また、本実施例における仮想資源量の定義は後述する。
 優先順位カラム505には、性能保証度合いに関する、仮想ストレージ間の優先順位を示す値を格納する。優先順位505は、資源逼迫改善プログラム403で使用される値であり、優先順位505が1に近づくにつれ、優先順位が高いことを意味する。そして優先順位505が高い仮想ストレージから優先的に資源逼迫改善プログラム403の処理対象とされる。資源逼迫改善プログラム403が実行されることにより、担当資源変更が原因となる目標性能未達リスクを低減させることができる。
 図6は、仮想ストレージ構成管理テーブル411の一例である。仮想ストレージ構成管理テーブルは、各仮想ストレージ200を構成する各仮想資源の構成情報を示すテーブルであり、少なくとも、VS#カラム601、仮想ポート構成カラム602、仮想プロセッサ構成カラム603、仮想メモリ構成604、仮想メディア構成カラム605、を含む。
 仮想ポート構成カラム602は、複数のポート160より構成される仮想ポート204の仮想資源量を示す。仮想ポート204の仮想資源量は、例えば、ポート性能(Gbps)とポート数(個)で表現される。仮想プロセッサ構成カラム603は、複数のプロセッサ141より構成される仮想プロセッサ201の仮想資源量を示す。仮想プロセッサ201の仮想資源量は、例えば、プロセッサ性能(GHz)とプロセッサ数(個)とで表現される。
 仮想メモリ構成カラム604は、複数のメモリ142より構成される仮想メモリ202の仮想資源量を示す。仮想メモリ202の仮想資源量は、例えば、メモリ量(Byte)で表現される。仮想メディア構成カラム605は、複数のメディア150より構成される仮想メディア203の仮想資源量を示す。仮想メディア203の仮想資源量は、例えば、メディア種別(SSD151またはHDD152)やメディア台数(個)で表現される。尚、各メディア種別の1台当りの資源量(メディア種別資源量)は、HDDは100IOPS、SSDは10000IOPSのように、事前にシステムで一意の値が決定されていると仮定する。当然、メディア種別資源量が異なるメディア種別を追加しても構わない。
 カラム602から605の値は、以降、仮想総資源量とも呼ばれる。例えば、VS#001の仮想ポート総資源量(仮想ポート構成602)は8Gbpsであり、仮想プロセッサ総資源量(仮想プロセッサ構成603)は2.3GHzであり、仮想メモリの総資源量(仮想メモリ構成604)は200GBであり、仮想メディアの総資源量(仮想メディア構成605)は30000IOPSである。一方、仮想ストレージに割り当てられた、特定の1つの物理資源の一部(数十%など)のことは、仮想資源量と呼ばれる。たとえば性能が2GHzの物理プロセッサの10%(つまり0.2GHz)をある仮想ストレージに割り当てた時、仮想ストレージに割り当てられたプロセッサの仮想資源量は0.2GHzである、と表現する。
 尚、仮想ストレージ構成管理テーブル411に格納される各仮想総資源量の指定方法は一例であり、処理性能に関する資源量を示す一般的な単位を使用することができる。また、仮想ストレージ構成管理テーブル411のカラムとして、ストレージシステム120が有する他の資源種別で構成した仮想資源の仮想総資源量を定義することも可能である。
 図7は、仮想ボリューム構成管理テーブル412の一例である。仮想ボリューム構成管理テーブル412は、各仮想ボリューム300と物理ボリューム301との対応関係を示す情報である。仮想ボリューム構成管理テーブル412は、少なくとも、VVOL#カラム701、ボリュームサイズカラム702、物理ボリューム番号カラム703、目標性能カラム704を含む。特に、物理ボリューム番号カラム703に「N/A」が格納されている場合は、当該仮想ボリュームが未使用であることを示す。
 目標性能カラム704には、仮想ボリュームの目標性能を格納する。目標性能として、スループット性能(IOPSなど)やレスポンス性能(msなど)、またはその組合せを指定できる。スループットやレスポンスは、範囲で指定することができる。すなわち、「100IOPS以上」や「200IOPS以下」、または、その組合せで指定することができる。但し、本実施例では、便宜上、スループット性能の下限値、および、レスポンス性能の上限値のみ指定可能にする。図7ではスループット性能の下限値が指定されている例が示されている。
 特に、目標性能にスループット性能が設定される場合は、当該仮想ストレージに所属する全仮想ボリュームに対して適用される。例えば、目標性能に100IOPSを設定した場合、各仮想ボリュームの合計が100IOPSであることを示す。また、目標性能にレスポンス性能が設定される場合の性能管理方法は、第三の実施例で示す。尚、目標性能の単位は、上記の限りではなく、スループット性能やレスポンス性能を指定可能な単位であれば良い。
 図8は、物理ボリューム構成管理テーブル413の一例を示す。物理ボリューム構成管理テーブル413とは、ストレージシステム120が有する各物理ボリューム301について、当該物理ボリュームの処理を担当する物理資源(以下、担当資源と呼ぶ)の情報を保持するテーブルである。物理ボリューム構成管理テーブル413は、少なくとも、物理ボリューム番号カラム801、ボリュームサイズカラム802、担当ポート番号カラム803、担当プロセッサ番号カラム804、担当メモリ番号カラム805、担当メディア番号カラム806の情報を含む。
 カラム803からカラム806には、物理ボリュームの各担当資源の識別子を格納する。特に、担当メディア番号として、「HDD100」、「SSD100」など、メディア種別ごとに一意な識別子を示したが、格納先メディアが特定できれば、識別子はいずれでも構わない。また、ボリュームサイズカラム802に「N/A」が格納されている場合は、当該物理ボリューム番号が未定義であることを示す。
 尚、メモリ142やメディア150に実際にデータを格納する処理では、格納先のメモリアドレスや、メディアアドレスを算出する処理が必要となるが、当該処理は一般的であるため本明細書では省略する。また、各物理ボリュームには、RAID(Redundant Arrays of Inexpensive Disks)技術を適用することもできる。この場合、物理ボリュームのデータが複数のメディア150に分散して格納されるため、担当メディア番号806に複数のメディア識別子が格納される。
 図9は、仮想ボリュームモニタテーブル414の一例である。仮想ボリュームモニタテーブル414は、各仮想ボリューム300のモニタリング情報を格納するテーブルであり、少なくとも、VVOL#カラム901、スループット性能カラム902、レスポンス性能カラム903を含む。各カラムの詳細な説明は自明のため省略する。
 カラム902とカラム903の値は、ホストI/Oプログラム401にて更新される。本明細書中では、これらの値の更新方法の詳細を記載しないが、一般的なモニタリング技術を使用した更新が可能である。例えば、スループット性能の更新は、ホストが受領したI/O数を逐次カウントし、1秒ごとに集計する処理で実現できる。
 図10は、物理資源量管理テーブル415の一例を示す。物理資源量管理テーブル415は、ストレージシステム120が備える各物理資源の資源量を管理するテーブルである。物理資源量管理テーブル415は、少なくとも、資源種別カラム1001、資源番号カラム1002、限界資源量カラム1003、資源割当て率カラム1004、物理資源使用率カラム1005、使用率閾値カラム1006を有する。
 資源種別カラム1001は、ポート160、プロセッサ140、メモリ142、メディア150などの資源種別を格納し、資源番号カラム1002に格納する資源種別ごとの識別子とともに、ストレージシステム120内の各物理資源を一意に特定する情報となる。限界資源量カラム1003は、各物理資源の処理能力を示す値を格納する。
 資源割当て率カラム1004は、当該物理資源の限界資源量1003に占める、当該物理資源を使用する全ての仮想ストレージ200が占有する資源量合計の割合を示す。同様に、物理資源使用率カラム1005は、当該物理資源の限界資源量1003に占める、当該物理資源を使用する全ての仮想ストレージ200が、I/O処理の実行のために使用している資源量合計の割合を示す。前述の通り、当該テーブルの資源割当て率1004や物理資源使用率1005は、物理資源の処理性能に基づく値である。尚本明細書では、便宜上、「100%-(資源割当て率1004)」を余剰資源率とも表現する。
 例えば、限界資源量1003が4Gbpsであるポートの場合、「資源割当て率10%」は400Mbpsが仮想ストレージ200により占有され(割り当てられ)、「物理資源使用率1%」は40Mbpsが仮想ストレージ200でI/O処理を行うために使用されている(稼働している)ことを示す。同様に、限界資源量1003が2GHzのプロセッサの場合、「資源割当て率50%」は1GHz分(または、毎秒500ms)が仮想ストレージ200により占有され、「物理資源使用率40%」は0.8GHz分(または、毎秒400ms)が仮想ストレージ200でI/O処理を行うために使用されている(稼働している)ことを示す。
 限界資源量1003が4GBのメモリの場合、「資源割当て率50%」は2GB分が仮想ストレージ200により占有され、「物理資源使用率40%」は仮想ストレージ200により単位時間当たりにリードキャッシュとして参照されたキャッシュ容量が1.6GB分であることを示す。同様に、限界資源量1003が100IOPSのメディアの場合、「資源割当て率50%」は50IOPS分が仮想ストレージ200により占有され、「物理資源使用率10%」は10IOPSが仮想ストレージ200のI/O処理で使用されていることを示す。
 以上、各資源の資源割当て率1004と物理資源使用率1005の計算例を示した。当然ながら各値は、各物理資源の処理性能を対象とした資源量を示す値であれば、異なる計算式で算出することも、異なる単位を用いることも可能である。
 使用率閾値カラム1006は、当該物理資源を資源逼迫状態と判定する閾値を示す。例えば、使用率閾値が80%である場合、物理資源使用率1005が80%を超えた場合に、当該物理資源を資源逼迫状態と判定する。資源逼迫状態にある物理資源は、仮想ストレージ200が目標性能を達成する妨げとなりうるため、資源逼迫改善プログラム403で改善する。
 図11は、仮想資源量管理テーブル416の一例を示す。仮想資源量管理テーブル416は、仮想ストレージ200に割り当てられている各資源の仮想資源量を管理するテーブルである。仮想資源量管理テーブル416は、少なくとも、VS#カラム1100、VVOL#カラム1101、資源種別カラム1102、資源番号カラム1103、資源占有率カラム1104、共有資源占有率カラム1105、仮想資源使用率カラム1106を有する。
 カラム1100から1103は自明のため記載を省略する。資源占有率カラム1104は、仮想ストレージ内仮想ボリュームに割り当てられている各仮想資源の構成を示す。一例として、VS#000内のVVOL#000に割り当てられている仮想資源(仮想プロセッサ)は、プロセッサ000の限界資源量1003の50%を占有することで構成していることが示されている。
 共有資源占有率1105には、仮想ストレージが有する余剰資源量を格納する。共有資源の詳細は後述する。仮想資源使用率カラム1106に格納する値は、仮想ストレージ内仮想ボリュームに割り当てられている仮想資源量(=限界資源量1003×資源占有率1104)に対する、当該仮想ボリュームの資源使用率を格納する。例えば、VS#000のVVOL#000が、限界資源量1003が4Gbpsであるポート000の資源量の10%である0.4Gbpsを占有しており、かつ0.28Gbps分を使用している場合を想定する。この場合、仮想資源利用率1106は70%(=0.28÷0.4)と計算される。
 図12は、資源割当てプログラム400の一例である。資源割当てプログラム400は、管理サーバ110からの仮想ストレージ設定要求に応じて実行するプログラムであり、複数のプロセッサ141のうちいずれか1つのプロセッサ141で実行される。また資源割当てプログラム400は、仮想ストレージ200に仮想総資源量(602~605)を設定するとともに、仮想ストレージ200に対して、ストレージシステム120が有する物理資源の中の、いずれの物理資源を割り当てるか、また割り当てられた物理資源についてどの程度の資源量を割当てるかを決定するプログラムである。
 まず、当該プログラムは仮想ストレージ設定要求を受領する(1201)。当該設定要求には、設定対象となる仮想ストレージ200の仮想ストレージ番号、仮想ボリューム番号、仮想ボリュームのサイズ、仮想ボリュームの目標性能、そして仮想ストレージ設定テーブル410や、仮想ストレージ構成テーブル411へ格納すべき各値が含まれている。次に、仮想ボリューム作成プログラムを実行し(1203)、当該仮想ストレージに所属させる各仮想ボリュームの作成と仮想資源量の割当てを開始する。仮想ボリューム作成プログラムの詳細は後述する。
 当該プログラムは、当該仮想ストレージに所属させる全仮想ボリュームに対して仮想ボリューム作成プログラムを実行した後(1205)、管理サーバに設定成功を応答して終了する(1206)。仮想ボリューム作成が失敗した場合は(1204:No)、当該プログラム内で実行した変更内容を全てロールバックした後(1207)、管理サーバ110に対して設定失敗を応答して終了する(1208)。
 尚、当該プログラムのステップ1202にて、目標資源使用率504の初期値を設定する。目標資源使用率504の初期値は任意であるが、低い値(たとえば20%等)と設定するとよい。その後、当該目標資源使用率504は、資源再割当てプログラム402にて仮想資源使用率1106を考慮しながら段階的に引き上げられ、最終的に必要最小限の仮想資源量が割り当てられるようになった時点で確定されるからである。
 図13は、仮想ボリューム作成プログラム1203の一例である。仮想ボリューム作成プログラムでは、仮想ボリュームの作成と、当該仮想ボリューム分の仮想資源量の割当てを行う。まず、当該プログラムは、資源種別の1つを選択し(1301)、選択した資源種別に対して、ステップ1302から1304の処理を実行する。以降、資源種別として、プロセッサが選択されたと仮定し、ステップ1302から1304の処理を説明する。
 仮想ボリューム作成プログラム1203は、選択した資源種別である全ての物理プロセッサ141の中から、物理資源使用率1005が最も小さい物理プロセッサ141を担当資源として選択する(1302)。図10の例では「プロセッサ001」が選択される。
 次に仮想ボリューム作成プログラム1203は、仮想ボリューム分の資源占有率1104を計算する(1303)。ある仮想ボリュームの資源占有率1104の計算方法の一例は、「(プロセッサの仮想総資源量(つまり仮想プロセッサ構成603の値))÷(当該仮想ストレージに所属させる仮想ボリュームのボリュームサイズの総和)×(当該仮想ボリュームのボリュームサイズ)÷(担当プロセッサの限界資源量)」で求まる。ここで、担当プロセッサの限界資源量とは、ステップ1302で選択された物理プロセッサ141の限界資源量1003である。
 ここでステップ1303の目的は、当該仮想ボリューム用の資源占有率の初期値として、妥当な資源占有率を決定することである。当該目的に沿っていれば、資源占有率を異なる手段で算出してもよい。例えば簡易的に、「(管理サーバが指定した仮想総資源量)÷(当該仮想ストレージに所属させる仮想ボリュームの総数)÷(担当資源の限界資源量)」で求めてもよい。
 決定した資源占有率が、担当プロセッサの余剰資源率より多い場合(1304)、仮想ボリューム作成プログラム1203は、仮想ボリューム作成失敗を応答して終了する(1310)。ステップ1301からステップ1304までの処理は、全ての資源種別に対して繰り返される(1305)。
 各資源種別について、当該仮想ボリューム分の資源占有率を決定した後、仮想ボリューム作成プログラム1203は、物理ボリュームを作成し(1306)、当該物理ボリュームに対して、決定した担当資源を関連付ける。具体的に仮想ボリューム作成プログラム1203は、物理ボリューム構成管理テーブル413について、物理ボリュームが未定義である物理ボリューム番号を選択し、ボリュームサイズ802に、仮想ボリュームのボリュームサイズを格納した後、決定した担当資源の識別子を対応するカラム803から806に資源種別ごとに格納する。
 次に仮想ボリューム作成プログラム1203は、関連付けた各担当資源の資源割当て率1004および資源占有率1104について、ステップ1303で決定した資源占有率を加算し、仮想資源量の割当てを行う(1307)。最後に仮想ボリューム作成プログラム1203は、物理ボリュームと仮想ボリュームとを関連付ける(1308)。具体的には仮想ボリューム構成管理テーブル412に対し、作成した仮想ボリュームのVVOL#をVVOL#701に格納する。そしてこの行の物理ボリューム番号703に、ステップ1306で作成した物理ボリュームの物理ボリューム番号を格納し、ボリュームサイズ702にはステップ1306で作成した物理ボリュームの物理ボリューム番号を格納する。最後に仮想ボリューム作成成功を応答し(1309)、処理を終了する。
 当該プログラムによると、管理サーバからの仮想ストレージ設定要求に応じて、当該仮想ストレージに所属させる各仮想ボリュームの担当資源を決定し、各担当資源へ適切な仮想資源量を割当てることが可能となる。
 図14は、ホストI/Oプログラム401の一例である。ホストI/Oプログラムは、ホスト100が発行し、ストレージシステム120が受領した仮想ボリューム200に対するRead/Writeコマンドを処理するプログラムである。尚、コマンドを受領すると、ストレージシステム120が任意に選択した1つの物理プロセッサ141において、当該コマンドに対するホストI/Oプログラム401の実行が開始される。
 仮想ボリュームに対するI/O要求を受領すると(1401)、ストレージシステム120は、仮想ボリューム構成管理テーブル412や物理ボリューム構成管理テーブル413を使って、当該仮想ボリュームの担当資源を特定する(1402)。次に、ホストI/Oプログラム401は、自プロセッサが担当プロセッサであるかを判定する(1417)。担当プロセッサでない場合、担当プロセッサにて当該コマンドに対応するホストI/Oプログラム401の実行を開始させ(1418)、自プロセッサでの処理を終了する。
 担当プロセッサである場合、ホストI/Oプログラム401は、当該仮想ボリュームの担当ポートに対する要求であるかどうか確認する(1403)。担当ポートに対する要求でない場合、ホストにエラー応答し(1416)、処理を終了する。
 担当ポートに対する要求である場合、ホストI/Oプログラム401は、仮想資源量管理テーブル416を使って、各担当資源の仮想資源使用率1106が全て100%未満であるか確認する(1404)。いずれかの担当資源の仮想資源使用率1106が100%の場合、当該仮想ボリュームを処理する仮想資源量が不足していると判断し、全ての担当資源の仮想資源使用率が100%未満になるまで待機する。
 尚、本実施例が示すストレージシステム120は、待機によって生じる目標性能未達のリスクを排除するため、一時的に共有資源を割当てる機能を有する。共有資源とは、いずれの仮想ストレージにも割当てられていない、各物理資源の資源量である。共有資源は必ず割当てできるとは限らないため、目標性能未達のリスクを完全に排除できない点が、仮想ボリューム作成プログラムにおける仮想資源量の割当てとの違いである。
 当該プログラムは、仮想資源使用率1106が100%である資源種別の担当資源について、共有資源が存在するか否かを資源占有率1104が100%未満であるか否かで判定する(1414)。共有資源が存在する場合、当該仮想ストレージ向けに共有資源の割当てを行う(1415)。本実施例では、割当てる共有資源の資源量は、予め決められた一定量とする。
 共有資源の割当てとは具体的に、担当資源の物理資源使用率1005および共有資源占有率1105に一定比率(前述の一定量に相当する比率)を加算し、その後に仮想資源使用率1106を再計算することである。共有資源占有率1105に値を加算する際、I/O対象の仮想ストレージ、仮想ボリュームの識別子がそれぞれ、000、000の場合、仮想資源量管理テーブル416のVS#1101が“000”、VVOL#1101が “000”の行の、共有資源占有率1105の値を更新する。共有資源の割当てにより、全ての仮想資源使用率が100%未満となり、待機せずとも、ステップ1405以下の処理を実行することが可能となる。
 全ての仮想資源利用率が100%未満の場合(1404:Yes)、当該プログラムは、担当プロセッサでコマンドの要求を解析し(1405)、要求種別(ReadまたはWrite)を確認する(1406)。Read要求である場合、要求データが担当メモリ上に格納されているかを判定する(1419)。格納されている場合、担当メモリ上に格納されているデータをホストに返送し、ホストに処理が正常に終了した旨を応答する(1409)。格納されていない場合は、担当メディアから要求データを読み込み(1407)、担当メモリに格納(1408)したあと、担当メモリ上のデータをホストに送付し、ホストに処理が正常終了した旨を応答する(1409)。
 一方、Write要求である場合、担当メモリに受領データ格納後(1410)、ホストに正常応答を返し(1411)、担当メディアに要求データを書き込む(1412)。最後に、モニタリング情報を更新し(1413)、処理を終了する。
 当該ステップで更新するモニタリング情報は、具体的に、当該仮想ボリュームのスループット性能902とレスポンス性能903、および、当該プログラムで使用した担当資源の物理資源使用率1005、および、仮想資源使用率1106が対象である。仮想資源使用率1106については、当該仮想ボリュームが所属する仮想ストレージの値を更新する。尚、各モニタリング情報の更新方法は、各カラムを有する各テーブルにて説明済みである。
 図15は、資源再割当てプログラム402の処理概要を説明する図である。資源再割当てプログラムでは、2つの目的で資源再割当てを行う。資源再割当てプログラムの目的の1つは、仮想ストレージ200の各担当資源の仮想資源使用率1106を平準化するように資源占有率1104を変更することにより、いずれかの物理資源の仮想資源使用率が100%となって、目標性能未達となるリスクを排除することである。
 また、資源再割当てプログラムの目的のもう1つは、仮想資源使用率を考慮して、目標資源使用率504を次第に引き上げる制御を行うことで、目標性能を達成するための仮想資源量を必要最小限にすることである。
 図15の例では、仮想ストレージが、2つの仮想ボリューム200(#1と#2)を有している。また、各仮想ボリュームの目標スループット性能704はそれぞれ100IOPSと300IOPSであり、担当プロセッサ804はそれぞれ(物理)プロセッサ#1と(物理)プロセッサ#2である。またここでは、各仮想ボリュームの性能は目標スループット性能704に到達できている例を説明する。
 ここで、各仮想ボリュームに割り当てられているプロセッサの仮想資源使用率が、それぞれ40%、60%であったとする。この状態では、担当資源間で処理負荷の偏りがあるため、負荷が上昇した場合、プロセッサ#2のみが仮想資源使用率100%となって、目標性能未達となるリスクがある。このため、当該プログラムは、各担当資源の仮想資源使用率が均一化されるように(たとえばいずれの仮想資源使用率も50%になるようにする)、プロセッサ#1の資源占有率を40%に、プロセッサ#2の資源占有率を60%に変更する(1501)。この処理の詳細は、図16の処理の説明を行う際に述べるが、ここでは、各仮想ボリュームに割り当てられている資源(プロセッサ等)の仮想資源使用量は変動しないように調整する。そのため、仮想資源使用率を引き上げる場合には、資源占有率は減少し、仮想資源使用率を引き下げる場合には、資源占有率は増加する。
 仮想資源使用率が50%の場合、まだ使用率が向上しても、資源に余裕がある。そのためストレージシステム120は次に、仮想プロセッサ(仮想ストレージ)の目標資源使用率504を50%から、60%に引き上げ(1502)、目標性能達成に必要な仮想資源量の見積もりを小さくする。すなわち、プロセッサ#1の資源占有率を33%に、プロセッサ#2の資源占有率を50%に変更することで、仮想プロセッサの仮想資源使用率が60%となるようにする(1503)。この処理の詳細も、図16の処理の説明を行う際に述べる。この処理を繰り返し、最終的に当該仮想ストレージに対して共有資源が割り当てられた時点で、これ以上の引き上げができない(仮想資源量が必要最小限である)と判断し、目標資源使用率を確定する。
 図16は、資源再割当てプログラム402の一例である。資源再割当てプログラム402は、仮想ストレージ200毎に実行される。
 まず、資源再割当てプログラム402は、仮想ストレージ200に所属する各仮想ボリューム300について、仮想ボリュームモニタテーブル414と仮想資源量管理テーブル416の値を用いることで、各仮想ボリュームの性能値と、各仮想ボリュームの担当資源の仮想資源使用率1106を特定する(1601)。続いて資源再割当てプログラム402は、資源種別ごとに、各仮想ボリュームの担当資源の仮想資源使用率1106の平均値を算出する。図15を例にとって説明する。図15では仮想ボリューム#1、#2の担当資源(担当プロセッサ)、つまりプロセッサ#1、#2の仮想資源使用率がそれぞれ、40%と60%である。ステップ1602ではこの平均値、つまり(40+60)÷2=50%を算出する。
 次に資源再割当てプログラム402は、各仮想ボリュームについて、
 (ステップ1601で特定した仮想ボリュームの性能値÷目標性能704)
を計算する(1603)。本明細書ではこの値を「性能比率」と呼ぶ。
 その後資源再割当てプログラム402は、当該仮想ボリュームの各担当資源について、割り当てるべき仮想資源量を算出する。
 本実施例に係るストレージシステム120では、現時点で仮想ボリュームに使用されている仮想資源量と性能比率とに基づいて、目標性能704を達成するために必要となる仮想資源量を算出する機能を有している。たとえば資源再割当てプログラム402に、現時点で使用されている仮想資源量と性能比率を入力値とし、目標性能704を達成するために必要となる仮想資源量を出力とする関数を持たせることで、この機能を実現できる。また現時点で仮想ボリュームに使用されている仮想資源量は、
 (担当資源の限界資源量1003×資源占有率1104×仮想資源使用率1106)
を計算することで求められる。
 本実施例に係るストレージシステム120ではこの関数を、資源種別(プロセッサ、ポート、メモリ、メディア)ごとに有している。ステップ1604では、資源再割り当てプログラム401はこの関数を用いて、各担当資源に割り当てるべき仮想資源量を算出する。また別の実施形態として、性能比率を計算する代わりに、ステップ1601で特定した仮想ボリュームの性能値と目標性能704と、現時点で使用されている仮想資源量を入力値とし、目標性能704を達成するために必要となる仮想資源量を出力とする関数を用いるようにしてもよい。
 続いてステップ1605では、資源再割り当てプログラム401はステップ1604で算出した資源量、ステップ1602で算出した仮想資源使用率の平均値、そして担当資源の限界資源量1003を用いて、各担当資源の資源占有率1104を算出し、仮想資源量管理テーブル416に設定する。資源種別がプロセッサの場合について、資源占有率1104の算出方法の具体例を説明する。ステップ1604で算出された、ある仮想ボリューム(たとえば仮想ボリューム#1)の担当プロセッサの仮想資源量(これは目標性能を達成するために必要となるプロセッサ資源量である)が0.4GHzであり、ステップ1602で算出された仮想資源使用率の平均値が50%、そして仮想ボリューム#1の担当プロセッサの限界資源量が2GHzであったとする。
 この場合、仮想ボリューム#1には0.8GHz分のプロセッサ資源を割り当てる必要がある(仮想資源使用率が50%のため、ステップ1604で算出された資源量の倍の資源量を割り当てる必要がある)。そして、限界資源量が2GHzであるから、仮想ボリューム#1の資源占有率1104は、0.8÷2=0.4(つまり40%)と計算される。つまりステップ1605では、仮想ボリュームに割り当てられている各担当資源の資源占有率1104は、各担当資源について、
(仮想ボリュームが目標性能を達成するために必要となる仮想資源量÷仮想資源使用率の平均値)÷担当資源の限界資源量1003
を計算することで求められる。
 以下、全仮想ボリュームについて、各資源の資源占有率1104の算出が完了するまで、1603から1606の処理を実行する。以上が、図15の1501に相当する処理である。
 次に、資源再割り当てプログラム401は、当該仮想ストレージの共有資源占有率1104が0%か否かを判定することで、共有資源の有無を判定する(1607)。共有資源有り(共有資源占有率1104が0%でない)の場合、資源再割り当てプログラム401は目標資源使用率の引上げによる目標性能未達リスクがあると判断し、目標資源使用率を確定させ、処理を終了する。一方、共有資源無しの場合は、目標資源使用率の引上げによる目標性能未達リスクがないと判断し、資源再割り当てプログラム401は目標資源使用率504を一定量(たとえば10%)引上げる(1608)。
 その後資源再割り当てプログラム401は、各担当資源の仮想資源使用率1106が目標資源使用率504の値に等しくなるように、各担当資源の資源占有率1104を算出し、仮想資源量管理テーブル416に設定し、処理を終了する(1609)。ここでの各担当資源の資源占有率1104の算出方法について、以下で具体例を説明する。
 ステップ1605では、仮想ボリューム#1に割り当てられるプロセッサ資源の資源占有率の割り当て方法を説明した。ここではそれと同じ例を用いて説明を行う。ステップ1605の完了時点では、仮想ボリューム#1に割り当てられているプロセッサ(担当プロセッサ)の仮想資源占有率が50%、資源占有率1104は40%である。そして担当プロセッサの限界資源量は2GHz、仮想ボリューム#1が必要とするプロセッサ資源量は0.4GHzである。ステップ1609ではこの資源量(仮想ボリューム#1が目標性能を達成するために必要とするプロセッサ資源量)は変動しないように、資源占有率1104を調節する。具体的には資源占有率1104は、ステップ1605と同様の計算式、つまり
(仮想ボリューム#1が目標性能を達成するために必要とする仮想資源量÷目標資源使用率504)÷限界資源量1003
の計算式によって算出される。上で説明した例では、資源占有率1104は
(0.4[GHz]÷60%)÷2[GHz]=33.3...%
と算出される。以上が、図15の1503に相当する処理である。
 当該プログラムによると、モニタリング情報を使って、各担当資源の資源占有量を動的に調整することで、ワークロードの変化による目標性能未達リスクを排除することができる。また、仮想資源使用率を参照しながら、目標資源使用率を段階的に引き上げることで、目標性能達成のための仮想資源量を必要最小限にすることができる。尚、当該プログラムの一部は、管理サーバ110で実行しても構わない。
 図17は、資源逼迫改善プログラム403の一例である。資源逼迫改善プログラムとは、ある物理資源が資源逼迫状態に変化したことを検知し、当該物理資源を使用する仮想ストレージ200の担当資源を変更することで、資源逼迫状態を改善し、当該物理資源を使用する仮想ストレージが目標性能未達となるリスクを排除するプログラムである。
 まず資源逼迫改善プログラムは、ストレージシステム120に属する物理資源を1つ選択し(1701)、物理資源量管理テーブル415を使って、物理資源使用率が使用率閾値1006を超過しているか否かを判定する(1702)。使用率閾値1006を超過している場合、担当資源変更による資源逼迫状態の改善を行う。
 資源逼迫状態を改善するに当り、当該プログラムは、可能な限りホスト100に性能影響を与えないよう、担当資源変更対象を選択する。そのために、当該プログラムは、当該物理資源を使用する仮想ストレージの中で最も優先順位505が高い仮想ストレージを選択し(1703)、当該仮想ストレージに所属する最もボリュームサイズ702が小さい仮想ボリュームを選択する(1704)。尚、ホストへの性能影響を小さくする目的が同一であれば、担当資源変更対象を選択する方法が異なっていても構わない。
 次に当該プログラムは、ステップ1704で選択された仮想ボリュームの新たな担当資源を選択する。本実施例では、資源逼迫状態でなく、かつ物理資源使用率が最も小さい物理資源を新たな担当資源の候補として選択する(1705)。新たな担当資源の候補が存在する場合には(ステップ1705:No)、仮想ボリュームの担当資源を、ステップ1705で選択された担当資源に変更する(1707)。以下、ステップ1702から1707の処理を、資源逼迫状態が改善されるまで繰り返し実行する。
 担当資源の変更方法は、資源種別に異なる。以下、本明細書が対象とする資源種別について、担当資源の変更方法を記載する。例えば、担当プロセッサの変更は、移動元の物理プロセッサで実行中の当該仮想ボリュームの処理を中断し、移動先の物理プロセッサで処理を再開することで実現できる。同様に、担当メモリの変更は、移動元の物理メモリ上に格納されている当該仮想ボリュームのデータキャッシュを全てパージしたのち、その後のデータ格納先を移動先の物理メモリに切り替えることで実現できる。
 担当メディアの変更は、移動元の物理メディア上に格納されている仮想ボリュームのデータを全て読み出し、移動先の物理メディアに書き込んだあと、データアクセス先を移動先の物理メディアに変更することで実現できる。また、担当ポートの変更は、移動先の物理ポートからのアクセスを許可し、ホスト100の設定を手動で変更することでアクセス先を移動先ポートに切り替え、移動先ポートへのアクセスを確認し、移動元の物理ポートに対するアクセスを禁止することで実現できる。
 尚、担当資源の変更方法は、上記の限りではなく、一般的な方法を使用することができる。例えば、担当ポートの変更は、ホストに交替パスソフトをインストールし、ストレージシステムの全ての物理ポートのアクセス可否情報を交替パスソフトへ通知することで、移動元の物理ポートへのアクセスを移動先の物理ポートへ自動で切り替える一般的な方法を使用することができる。
 仮に、担当資源候補が存在しない場合(1706)、管理サーバに対して改善不可通知を行い(1709)、管理サーバによる資源逼迫状態の改善を依頼する。以下、ストレージシステム内の全ての物理資源について確認を行ったあと(1708)、当該プログラムを終了する。
 当該プログラムによると、物理資源の資源逼迫状態を検知し、担当資源の変更によって資源逼迫状態を改善することで、仮想ストレージの目標性能未達となるリスクを排除することができる。
 以上で説明した実施例によれば、仮想ストレージに対して性能管理が容易になる。
 また、資源の再割り当ては上で説明した方法に限定されない。ダイン快適に仮想資源使用率を上昇させることができるような方法であれば、上で説明した以外にも様々な方法を採用可能である。
 図35は、資源再割当てプログラムの別の例である。図16で説明した資源再割当てプログラム402と区別するため、図35で説明するプログラムのことを、資源再割り当てプログラム402’と表記する。
 ステップ1601’で資源再割当てプログラム402’は、仮想ストレージ200に所属する各仮想ボリューム300について、仮想資源量管理テーブル416の値を用いることで、各仮想ボリュームの担当資源の仮想資源使用率1106を特定する。続いて資源再割当てプログラム402は、資源種別ごとに、各仮想ボリュームの担当資源の仮想資源使用率1106の平均値を算出する(1602’)。この処理は図16のステップ1602と同じである。
 ステップ1604’で資源再割当てプログラム402’は、当該仮想ボリュームの各担当資源について、現在使用されている仮想資源量を算出する。これは限界資源量1003、そして仮想資源量管理テーブル416で管理されている資源占有率1104と仮想資源使用率1106から算出できる。
 続いてステップ1605’では、資源再割り当てプログラム402’はステップ1604’で算出した仮想資源量、ステップ1602で算出した仮想資源使用率の平均値、そして担当資源の限界資源量1003を用いて、各担当資源の資源占有率1104を算出し、仮想資源量管理テーブル416に設定する。具体的には資源再割り当てプログラム402’は各担当資源について、
(ステップ1604’で算出した仮想資源量÷仮想資源使用率の平均値)÷担当資源の限界資源量1003
を計算する。
 ステップ1606’~ステップ1608’は、図16のステップ1606~ステップ1608と同じであるため、説明を省略する。
 ステップ1609’では資源再割当てプログラム402’は図16のステップ1609と同様に、各担当資源の仮想資源使用率1106が目標資源使用率504の値に等しくなるように、各担当資源の資源占有率1104を調整し、仮想資源量管理テーブル416に設定し、処理を終了する。(1609)。ここでの調整方法の計算式は、以下の通りである。
(ステップ1604’で算出した仮想資源量÷目標資源使用率504)÷限界資源量
 つまり、図16のステップ1609で用いられた計算式では、仮想ボリュームが目標性能を達成するために必要とする仮想資源量が用いられたが、ステップ1609’ではこの代わりに、ステップ1604’で算出した仮想資源量、つまり現時点で使用されている仮想資源量が用いられる点のみが異なる。
 資源再割り当てプログラム402’では、仮想ボリュームの性能についての情報が用いられていない。ただし各仮想ボリュームについて、おおむね目標性能に近い性能で稼働している場合、資源再割り当てプログラム402’を用いても、資源再割り当てプログラム402と同じように資源占有率の調整が可能である。
 以下、第二の実施例について示す。第二の実施例では、仮想ストレージに所属する仮想ボリューム内の分割領域ごとに担当資源が存在する構成にて、当該仮想ストレージの性能管理を行う方法について述べる。
 図18は、第二の実施例における仮想ボリューム300と物理ボリューム301の対応関係を示す概要図である。本実施例における、仮想ボリュームと物理ボリュームの対応関係は、ボリュームより細かな固定長単位で管理される。便宜上、仮想ボリュームを固定長に分割した単位を分割領域1901と呼び、物理ボリュームを固定長に分割した単位をページ1902と呼ぶ。分割領域やページの中には、お互いに関連づいていないものもある(1904や1905)。
 図19は、仮想ボリューム構成管理テーブル413の一例を示す。本実施例の仮想ボリューム構成管理テーブルは、仮想ボリュームの分割領域と、物理ボリュームのページとの対応関係を新たに管理する。分割領域とページとの対応関係を管理するために、仮想ボリューム構成管理テーブルは、各分割領域のLBA範囲を示す仮想LBAカラム2203と各ページのLBA範囲を示す物理LBAカラム2205とを管理する。その他のカラムの説明は省略する。
 尚、本実施例では、シンプロビジョニング技術を適用することが可能である。シンプロビジョニング技術とは、ホスト100から特定の分割領域へのWrite要求を受領して初めて、当該分割領域にページを対応づける技術である。当該技術を適用することで、ストレージシステムの容量効率を高めることができる。
 仮想ボリュームにシンプロビジョニング技術を適用する場合、分割領域にページが対応づいていない場合がある。このような分割領域について、仮想ボリューム管理テーブルでは、物理LBAカラムに「N/A」を格納することで表現する。以下、本実施例の説明は、シンプロビジョニング技術が適用されている場合について示す。
 図20は、物理ボリューム構成管理テーブル414の一例である。本実施例の物理ボリューム構成管理テーブルは、物理LBAカラム2103が追加され、ページごとに担当資源を管理することが可能である。その他のカラムの説明は省略する。尚、当該実施例では、第一の実施例と異なり、必要数の物理ボリュームが事前に作成されていることとする。
 図21は、仮想ボリュームモニタテーブル415の一例である。本実施例の仮想ボリュームモニタテーブルも同様に、仮想LBAカラム2202が追加され、分割領域ごとの性能値を管理することが可能である。その他のカラムの説明は省略する。
 図22は、仮想ボリューム作成プログラム1202の一例である。当該実施例では、まず、分割領域ごとに担当資源を決定し、当該担当資源へ仮想資源を割当てるようステップ2302からステップ2308の処理が変更される。
 特に、当該実施例では、仮想ボリューム内の各分割領域について、対応ページが存在するか否かに応じて、仮想資源の割当て方法が変わる。これは、対応ページを決定する契機で各分割領域の担当資源を決定することにより、より適切な担当資源を決定するためである。
 このため、当該プログラムでは、まず各分割領域に対応ページが存在するかどうかを判定する(2303)。対応ページが存在する場合、図13と同様の方法で担当資源を決定し(2304)、資源占有率1104を算出する(2305)。当該実施例では、各分割領域のサイズは固定長であり、資源占有率は、「(仮想総資源量)÷(当該仮想ストレージに所属させる仮想ボリュームの分割領域数の総和)÷(担当資源の限界資源量)」で求まる。その後も、図13と同様の方法で担当資源へ仮想資源量の割当てを行う(2306、2307)。
 一方担当ページが存在しない場合、一旦、当該分割領域を未割当て領域数としてカウントする(2314)。そして、全ての分割領域に対する判定が完了したことを確認した後(2308)、未割当て領域数分の資源占有率を「(仮想総資源量)÷(当該仮想ストレージに所属させる仮想ボリュームの分割領域数の総和)×(未割当て領域数)÷(担当資源の限界資源量)」で算出したのち(2309)、ステップ2301にて選択した資源種別に属する全ての物理資源に対し、一時的に均等に、未割当て領域数分の資源占有率を割当てる(2311)。
 図23は、ホストI/Oプログラム401の一例である。本実施例における、ホストI/Oプログラムも同様に、分割領域ごとに担当資源を特定するよう処理が変更される(2402)。また、シンプロビジョニング技術の適用に伴い、分割領域へのWrite要求を受領して初めて、当該分割領域にページを対応づけるように処理を追加する(ステップ2417、ステップ2418)。
 前述した通り、各分割領域は、ページを対応づけた契機で担当資源を決定する。このため、ステップ2418には、当該分割領域に対する担当資源決定処理、および当該担当資源に対する資源占有量設定処理が含まれる。これらの詳細は、図22のステップ2304から2307までの処理と同じであるため、詳細な記載は省略する。
 図24は、資源再割当てプログラム402の一例である。本実施例における、資源再割当てプログラムも同様に、分割領域ごとに担当資源の仮想資源量を決定するよう処理が変更される(ステップ2502から2506)。
 また、図22同様、各分割領域に対応ページが存在するかどうかを判定し(2503)、存在しない場合は、当該分割領域を未割当て領域数としてカウントする(2516)。そして、全ての分割領域に対する判定が完了したことを確認した後(2506)、未割当て領域数分の資源占有量を算出し(2507)、一時的に全ての物理資源に均等に資源占有量を割り振る(2508)。
 以上で説明したストレージ制御プログラムやストレージ管理テーブルによると、仮想ボリューム内を分割領域単位で管理する構成で、シンプロビジョニング技術が適用されている場合でも、仮想ストレージの性能管理が可能である。
 以下、第三の実施例について示す。第三の実施例では、第二の実施例の構成に加え、各仮想ボリュームにティアリング技術が適用されている構成にて、当該仮想ストレージの性能管理を行う方法について述べる。
 ティアリング技術とは、ある仮想ボリュームの各分割領域に、異なるメディア種別で構成した物理ボリュームのページを対応づける技術である。また、スループット性能が大きい分割領域を高速なメディア種別へ自動再配置することで、当該仮想ボリュームの性能向上を可能にする。本明細書において、高速なメディア種別とはSSD151を指す。
 図25は、仮想ストレージ構成管理テーブルの一例である。本実施例における仮想ストレージ構成管理テーブルは、仮想メディア2705として、HDD151とSSDとを混在させたメディア種別を指定できる。ストレージシステムは、HDDの資源占有量とSSDの資源占有量とをティアリング技術によって動的に調整し、目標性能を達成するためのSSDの資源占有量を必要最小限にする。その他のカラムの説明は省略する。
 図26、図27は、本実施例における、資源再割当てプログラム203の処理概要図である。図26の例では、仮想ストレージ200が、1つの仮想ボリューム300を有している。当該仮想ストレージの目標性能は「5ms未満」に設定されている。また図27に示されているとおり、仮想ボリュームに含まれる各分割領域1901の担当メディア2107は、SSD#1とHDD#1とのいずれかであり、SSD#1を担当資源とする分割領域のスループット性能2203の総和は100IOPS、HDD#1を担当資源とする分割領域のスループット性能の総和は200IOPSである。
 ここで、SSDの平均レスポンス性能を1ms、HDDの平均レスポンス性能を6msと仮定すると、当該仮想ストレージのレスポンス性能は、概ね4.3msと計算できる。一方、目標性能である5ms未満を達成するための必要最小限の構成では、SSD#1を担当資源とする分割領域のスループット性能2203の総和が60IPS、HDD#1を担当資源とする分割領域のスループット性能の総和が240IOPSであればよい。
 このため、当該プログラムは、担当資源がSSD#1である分割領域の中でスループット性能が小さいものから順に40IOPS分を選択し、担当資源をHDDに変更することでSSDの資源割当て量を必要最小限にする。ここで、スループット性能が小さいものを選んだ理由は、SSDの容量資源を有効活用するためであり、40IOPS分であれば異なる選択基準でも構わない。
 図28は、資源再割当てプログラム402の一例である。本実施例における、資源再割当てプログラムは、レスポンス性能が設定されている場合の、資源再割当て方法について示す。
 まず、当該プログラムは、目標性能を達成するために最低限必要な、SSDの目標スループット性能を計算する(2801)。当該処理の計算方法の一例は、図27で示した通りである。その後、現在の目標資源使用率を基に、「目標スループット性能÷SSDの目標スループット性能」を計算し、必要な仮想資源量として算出する(2802)。次に、当該プログラムは、担当メディアのメディア種別がSSDである分割領域について、スループット性能を集計し(2803)、算出した仮想資源量との差を計算することで、HDDへ移動する必要があるスループット性能量(移動予定性能量)を算出する(2804)。
 尚、本実施例では、SSDからHDDに担当資源を変更する場合の例のみ示すが、HDDからSSDへ担当資源を変更する場合も、同様に計算できる。次に、担当メディアのメディア種別がSSDである分割領域をスループット性能が低い順にソートし(2805)、先頭の分割領域から順に、移動予定性能量分、担当メディアをSSDからHDDへ変更する(2806、2807)。担当メディアの変更方法の一例は、図17にて示した方法を適用できる。
 尚当該プログラムは、担当メディアを変更した分割領域のスループット性能を移動済性能量として加算し(2808)、移動済性能量が移動予定性能量を超過した時点で処理を終了する(2809)。
 また、当該プログラムは、図16と同様に、共有資源の有無に応じて、目標資源使用率の調整を行う(ステップ2810からステップ2812)。以上、当該プログラムによると、目標性能を達成するために必要なSSDの資源量を必要最小限にすることができる。
 以上で説明したストレージ制御プログラムやストレージ管理テーブルによると、仮想ボリューム内を分割領域単位で管理する構成で、ティアリング技術が適用されている場合でも、仮想ストレージの性能管理が可能である。
 以下、第四の実施例について示す。第四の実施例では、仮想ストレージに所属する仮想ボリュームに対してストレージ機能を適用されている構成において、当該仮想ストレージの性能管理を行う方法について示す。
 本実施例では、仮想ストレージを構成する各仮想ボリュームに対して、さまざまなストレージ機能を適用することができる。ストレージ機能とは、具体的には、ボリュームコピー機能や重複排除機能、圧縮機能などを指す。仮想ボリュームにストレージ機能を適用する場合、そのストレージ機能の機能状態によって、目標性能を達成する仮想資源量が異なるため、機能状態に応じた仮想資源量調整が必要となる。
 図29は、本実施例が対象とするボリュームコピー機能の概要を示す。ボリュームコピー機能とは、ある仮想ボリューム300に格納したデータの複製を、別の仮想ボリュームに複製する機能である。本明細書では、複製元の仮想ボリュームをPrimary Volume2901、複製先の仮想ボリュームをSecondary Volume2902として区別する。
 ボリュームコピー機能は、Primary VolumeとSecondary Volumeとの間の複製作成状況を示す機能状態を有する。図30は、当該機能状態の状態遷移図の一例である。「Init」は複製を作成していない初期状態を示し(2911)、「Copying」はPrimary VolumeからSecondary Volumeへデータを複製している途中状態を示す(2912)。
 「Paired」は、一旦データの複製を完了した後、Write要求をPrimary VolumeとSecondary Volumeの両方に書き込んで複製を維持している状態を示し(2913)、「Suspended」は、Write要求がPrimary Volumeのみに書き込まれ、かつSecondary Volumeとのデータ差分箇所を記録している状態を示す(2914)。「Restoreing」は、前記データ差分箇所のデータをSecondary VolumeからPrimary Volumeに複製している状態を示す(2915)。
 ここで例えば、機能状態がCopyingの場合、Suspendedに比べてSecondary Volumeが目標性能を達成するための仮想資源量がより多くなる。すなわち、SuspendedからCopyingに状態変更した契機でSecondary Volumeに適切な仮想資源量を追加する制御を行うことで、仮想資源量を必要最小限にできる。
 図31は、本実施例が対象とする重複排除機能と圧縮機能との概要を示す。重複排除機能とは、格納データが同一である分割領域1901に共通のページ1902を対応付ける(重複排除する)ことで、容量効率向上を図る機能である。一方、圧縮機能とは、分割領域を圧縮したデータをページに格納することで、容量効率向上を図る機能である。尚、同一の分割領域に、重複排除、圧縮の両方を適用することも可能である。
 ここで例えば、圧縮機能が適用されている場合、当該データに対するI/Oについて圧縮処理や伸張処理を実施する必要があり、目標性能を達成するための仮想資源量がより多くなる。すなわち、圧縮を実行した契機で仮想ボリュームに適切な仮想資源量を追加する制御を行うことで、仮想ボリュームに割当てる物理資源量を必要最小限にできる。
 図32は、ストレージ機能状態管理テーブル417の一例である。機能状態管理テーブルは、各仮想ボリューム300に適用されている機能種別と、その機能状態とを管理するテーブルである。機能状態管理テーブルは少なくとも、仮想ボリューム番号カラム3101、機能種別カラム3102、機能状態カラム3103を含む。
 機能種別カラムには、仮想ボリュームに適用されている機能種別を格納する。本実施例では、「ボリュームコピー(Primary Volume)」、「ボリュームコピー(Secondary Volume)」、「重複排除」、「圧縮」などの値を格納する。
 機能状態カラムには、各機能種別が提供する機能の機能状態を格納する。ボリュームコピーでは、図30で示したInit、Copying、などの状態を格納する。同様に、重複排除では、仮想ボリュームに含まれる分割領域の中で、重複排除されているページの割合を格納し、圧縮では、「圧縮済」、「未圧縮」のいずれかの状態を格納する。
 図33は、ストレージ機能状態補正テーブル418の一例である。ストレージ機能状態補正テーブルは、仮想ボリューム300に適用されているストレージ機能が、特定の機能状態に遷移した場合の、仮想資源量の補正率を管理するテーブルである。当該テーブルは、少なくとも、機能種別カラム3201、機能状態カラム3202、ポート補正率カラム3203、プロセッサ補正率カラム3204、メモリ補正率カラム3205、メディア補正率カラム3206を含む。
 ストレージシステム120は、仮想ストレージ200が占有する仮想資源量を、カラム3203から3006で示す補正率で調整する。例えば、仮想ストレージに所属する、ある仮想ボリュームにボリュームコピー(Primary Volume)が適用されており、ストレージ機能状態がCopyingに遷移した場合、資源再割当てプログラム402のステップ1605で算出される資源占有率に補正率を加算して補正する。たとえばプロセッサ補正率3204が10%の時、ステップ1605で、プロセッサの資源占有率が算出された後、算出された資源占有率に1.1を乗じることで、補正が行われる。
 図34は、ストレージ機能状態変更プログラム406の一例である。ストレージ機能状態変更プログラムとは、仮想ボリュームのストレージ機能状態を変更されるたびに実行され、変更後のストレージ機能状態に応じて、資源占有率を補正するプログラムである。
 まず、ストレージ機能状態変更プログラムは、仮想ボリュームの機能状態変更を検知し(3301)、ストレージ機能状態を更新する(3302)。機能状態の変更は、管理サーバ110からの要求に伴って発生することが一般的であるが、機能種別によっては、ホスト100からのコマンド受領契機や障害契機などで状態変更が発生する場合もある。
 ストレージ機能状態変更を検知すると、当該プログラムは、当該仮想ボリュームに適用されている機能種別の1つを選択し(3303)、機能状態補正テーブル418を基に、更新した機能状態に応じた各資源補正率を算出する(3304)。仮想ボリュームに適用されている全ての機能種別について、資源補正率を算出した後(3305)、算出した資源補正率を全て足し合わせ、総補正率として計算する(3306)。最後に、仮想ストレージに対して、物理資源を補正する(3307)。ステップ3307の補正では、図33の説明の際に述べた補正が行われる。
 以上により、仮想ストレージに所属する各仮想ボリュームにストレージ機能が適用する場合でも、その機能状態に応じて資源割当て量を変更することで必要最小限の物理資源量を割当てることが可能となる。
 以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
 上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
100…ホスト、110・・・管理サーバ、120・・ストレージシステム、130・・データねtt-ワーク、140・・ストレージコントローラ、150・・メディア

Claims (10)

  1.  ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムにおいて、
    前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、
     前記ストレージ装置は、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能に構成されており、
     前記仮想ストレージ装置は、前記仮想ストレージ装置内に前記ホストからのI/O要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するI/O要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記I/O要求に係る処理を実施し、
     前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、
    ことを特徴とする、ストレージシステム。
  2.  前記ストレージシステムは、前記仮想ボリュームのボリュームサイズと前記仮想ストレージ装置の全ボリュームのサイズの合計値との比に基づいて、前記仮想資源を前記仮想ボリュームに割り当てる、
    ことを特徴とする、請求項1に記載のストレージシステム。
  3.  前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
     A) 前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
     B) 前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、
     C) 前記目標性能を達成するために必要とされる仮想資源量÷前記仮想資源使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  4.  前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
     D) 前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、
     E) 前記目標性能を達成するために必要とされる仮想資源量÷前記目標資源使用率÷前記物理の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項3に記載のストレージシステム。
  5.  前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
     A) 前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
     B) 現時点で使用されている前記仮想資源の資源量÷前記仮想資源使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  6.  前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
     C) 前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、
     D) 現時点で使用されている前記仮想資源の資源量÷前記目標資源使用率÷前記物理の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項5に記載のストレージシステム。
  7.  ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムの制御方法であって、
    前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、
     前記ストレージ装置は、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能なストレージ装置であって、
     前記ストレージシステムは、
     1) 前記仮想ストレージ装置内に前記ホストからのI/O要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するI/O要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記I/O要求に係る処理を実施し、
     2) 前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、
    ことを特徴とする、ストレージシステムの制御方法。
  8.  前記ストレージシステムは、前記仮想ボリュームのボリュームサイズと前記仮想ストレージ装置の全ボリュームのサイズの合計値との比に基づいて、前記仮想資源を前記仮想ボリュームに割り当てる、
    ことを特徴とする、請求項7に記載のストレージシステムの制御方法。
  9.  前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
     A) 前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
     B) 前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、
     C) 前記目標性能を達成するために必要とされる仮想資源量÷前記仮想資源使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項8に記載のストレージシステムの制御方法。
  10.  前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
     D) 前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、
     E) 前記目標性能を達成するために必要とされる仮想資源量÷前記目標資源使用率÷前記物理の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項9に記載のストレージシステムの制御方法。
PCT/JP2015/052568 2015-01-29 2015-01-29 ストレージシステム WO2016121066A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016571608A JP6340439B2 (ja) 2015-01-29 2015-01-29 ストレージシステム
PCT/JP2015/052568 WO2016121066A1 (ja) 2015-01-29 2015-01-29 ストレージシステム
US15/543,308 US10664182B2 (en) 2015-01-29 2015-01-29 Storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052568 WO2016121066A1 (ja) 2015-01-29 2015-01-29 ストレージシステム

Publications (1)

Publication Number Publication Date
WO2016121066A1 true WO2016121066A1 (ja) 2016-08-04

Family

ID=56542717

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/052568 WO2016121066A1 (ja) 2015-01-29 2015-01-29 ストレージシステム

Country Status (3)

Country Link
US (1) US10664182B2 (ja)
JP (1) JP6340439B2 (ja)
WO (1) WO2016121066A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022541261A (ja) * 2019-07-17 2022-09-22 華為技術有限公司 リソース割振り方法、記憶デバイス、および記憶システム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9971548B1 (en) * 2017-03-06 2018-05-15 Nutanix, Inc. Storage resource management employing performance analytics
US10853307B2 (en) * 2017-07-28 2020-12-01 Dell Products, L.P. System and method for a host application to access and verify contents within non-volatile storage of an information handling system
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
WO2022105473A1 (en) * 2020-11-17 2022-05-27 Zhejiang Dahua Technology Co., Ltd. Systems and methods for data storage and computing
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008257572A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
JP2011128706A (ja) * 2009-12-15 2011-06-30 Fujitsu Ltd 仮想計算機割当資源管理プログラム、仮想計算機割当資源管理装置および仮想計算機割当資源管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194251A1 (en) * 2000-03-03 2002-12-19 Richter Roger K. Systems and methods for resource usage accounting in information management environments
JP4847272B2 (ja) * 2006-10-18 2011-12-28 株式会社日立製作所 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
US20100030877A1 (en) * 2007-02-23 2010-02-04 Mitsuru Yanagisawa Virtual server system and physical server selecting method
US8185909B2 (en) * 2007-03-06 2012-05-22 Sap Ag Predictive database resource utilization and load balancing using neural network model
US8190844B2 (en) * 2008-12-02 2012-05-29 Lsi Corporation Efficient alert mechanism for overutilization of storage resources
WO2011069705A1 (en) * 2009-12-10 2011-06-16 International Business Machines Corporation Data storage system and method
US9047135B2 (en) * 2010-01-22 2015-06-02 International Business Machines Corporation Qualitative assignment of resources to a logical partition in a multipartitioned computer system
JP5544967B2 (ja) * 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
US8612989B1 (en) * 2010-10-04 2013-12-17 Teradata Us, Inc. Assigning resources among multiple groups of workloads in a database system
US9038068B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
KR101540631B1 (ko) * 2012-12-28 2015-07-30 삼성에스디에스 주식회사 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008257572A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
JP2011128706A (ja) * 2009-12-15 2011-06-30 Fujitsu Ltd 仮想計算機割当資源管理プログラム、仮想計算機割当資源管理装置および仮想計算機割当資源管理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022541261A (ja) * 2019-07-17 2022-09-22 華為技術有限公司 リソース割振り方法、記憶デバイス、および記憶システム
US11861196B2 (en) 2019-07-17 2024-01-02 Huawei Technologies Co., Ltd. Resource allocation method, storage device, and storage system
JP7467593B2 (ja) 2019-07-17 2024-04-15 華為技術有限公司 リソース割振り方法、記憶デバイス、および記憶システム

Also Published As

Publication number Publication date
US20180004447A1 (en) 2018-01-04
JPWO2016121066A1 (ja) 2017-11-30
US10664182B2 (en) 2020-05-26
JP6340439B2 (ja) 2018-06-06

Similar Documents

Publication Publication Date Title
JP6340439B2 (ja) ストレージシステム
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
JP4684864B2 (ja) 記憶装置システム及び記憶制御方法
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
US8612704B2 (en) Storage system with virtual areas and method for managing storage system
JP5973089B2 (ja) ストレージシステムの移行方式および移行方法
US20150095555A1 (en) Method of thin provisioning in a solid state disk array
WO2011042940A1 (en) Storage system and control method thereof, implementing data reallocation in case of load bias
WO2011135635A1 (ja) 計算機システム及びその記憶制御方法
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
US20120297156A1 (en) Storage system and controlling method of the same
US20150006722A1 (en) Computing device system and information managing method for rearrangement of data based on access characteristic related to a task
US20110283078A1 (en) Storage apparatus to which thin provisioning is applied
US20150089129A1 (en) Computer system and storage management method
JP6234557B2 (ja) ストレージシステム
WO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
US9690693B2 (en) Storage system, storage apparatus, and computer product
JP4871758B2 (ja) ボリューム割当方式
WO2017085870A1 (ja) 計算機システム
US20150363128A1 (en) Computer system and management system and management method of storage system
WO2018116392A1 (ja) 情報処理システム、及び、情報処理方法

Legal Events

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

Ref document number: 15879963

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15543308

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2016571608

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15879963

Country of ref document: EP

Kind code of ref document: A1