WO2018150561A1 - ストレージシステム及び記憶制御方法 - Google Patents

ストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
WO2018150561A1
WO2018150561A1 PCT/JP2017/006034 JP2017006034W WO2018150561A1 WO 2018150561 A1 WO2018150561 A1 WO 2018150561A1 JP 2017006034 W JP2017006034 W JP 2017006034W WO 2018150561 A1 WO2018150561 A1 WO 2018150561A1
Authority
WO
WIPO (PCT)
Prior art keywords
capacity
nonvolatile memory
memory devices
user
fmpk
Prior art date
Application number
PCT/JP2017/006034
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 JP2019500143A priority Critical patent/JP6681512B2/ja
Priority to PCT/JP2017/006034 priority patent/WO2018150561A1/ja
Priority to US16/328,145 priority patent/US10838855B2/en
Priority to CN201780071169.8A priority patent/CN109964210B/zh
Publication of WO2018150561A1 publication Critical patent/WO2018150561A1/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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0688Non-volatile semiconductor memory arrays
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • 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/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Definitions

  • the present invention relates generally to storage control, for example, to changing the capacity of a spare area for over-provisioning.
  • the flash memory is generally write-once, that is, in order to rewrite data, it is necessary to erase the data from the area storing the data.
  • a flash memory has an upper limit on the number of data rewrites (in other words, the number of erases). If the flash memory exceeds this upper limit, new data cannot be written or the probability that an error will occur in the written data increases. The period until the number of times the flash memory is rewritten reaches the upper limit is called the “lifetime” of the flash memory. Therefore, FMPK (Flash Memory Package) composed of a plurality of flash memories also has a lifetime.
  • Patent Document 1 discloses a technique in which the total storage capacity of a RAID group is defined as the sum of usable capacity and surplus capacity, and the size of the surplus capacity is changed according to the frequency of rewriting to a logical volume.
  • the storage system has various uses. For example, a storage system that stores data with low rewrite frequency (mainly read) reduces the update area (spare area) and expands the user area (data storage area). Thus, the bit cost can be reduced.
  • the FMPK update area is increased more than necessary, the FMPK user area becomes small, and the amount of data that can be written is small.
  • Such a problem is not limited to a flash memory device such as FMPK, but may also be applied to other write-once nonvolatile memory devices.
  • An object of the present invention is to achieve both maintenance of host I / O performance and reduction of bit cost.
  • the storage system includes one or more nonvolatile memory devices and a processor unit that is one or more processors connected to the one or more nonvolatile memory devices.
  • a processor unit that is one or more processors connected to the one or more nonvolatile memory devices.
  • For each of the one or more nonvolatile memory devices at least a part of the nonvolatile memory includes a user area that is a storage area in which data is written and an update area that is a storage area in which update data of the data is written.
  • the processor unit changes the user capacity, which is the capacity of the user area, for each of the one or more nonvolatile memory devices based on at least one of the one or more resource usage rates of the one or more nonvolatile memory devices.
  • Maintaining a user capacity (in other words, an update capacity that is the capacity of the update area) that is optimal for the operating status of one or more nonvolatile memory devices during operation of the storage system, resulting in maintaining host I / O performance. It can be expected to maintain compatibility with the reduction in bit cost.
  • Example 1 The outline
  • the structural example of a storage system is shown.
  • the structure of FMPK is shown.
  • the structure of an FM chip is shown.
  • 2 shows a memory configuration of a storage controller.
  • the structure of the table stored in the table area of a storage controller is shown.
  • 2 shows a memory configuration of an FMPK controller.
  • region of a FMPK controller is shown. It is a sequence diagram of processing performed in response to a write request. It is a flowchart of the process which FMPK which receives a write command performs. It is a flowchart of the process which FMPK which receives a regular process command performs.
  • FIG. 11 is a sequence diagram of processing performed in response to the storage controller receiving an alert.
  • the structure of an expansion / reduction determination table is shown. An example of the relationship between the performance of write processing and the performance of asynchronous processing is shown. An example of a setting screen is shown. An example of a prediction screen is shown. An example of the relationship between the user capacity transition and performance transition in Example 2 is shown.
  • each table may be described using the expression “abc table”, but the information may be expressed using a data configuration other than the table.
  • At least one of the “abc tables” can be referred to as “abc information” to indicate that it does not depend on the data configuration.
  • the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
  • the “interface unit” includes one or more interfaces.
  • the one or more interfaces may be one or more similar interface devices (for example, one or more NIC (Network Interface Card)) or two or more different interface devices (for example, NIC and HBA (Host Bus Adapter)). There may be.
  • NIC Network Interface Card
  • HBA Home Bus Adapter
  • the “storage unit” includes one or more memories.
  • the at least one memory for the storage unit may be a volatile memory.
  • the storage unit is mainly used during processing by the processor unit.
  • the “processor unit” includes one or more processors.
  • the at least one processor is typically a microprocessor such as a CPU (Central Processing Unit).
  • Each of the one or more processors may be a single core or a multi-core.
  • the processor may include a hardware circuit that performs part or all of the processing.
  • the process may be described using “program” as a subject.
  • the program is executed by the processor unit, so that the determined process is appropriately performed by a storage unit (for example, a memory) and / or Alternatively, since the processing is performed using an interface unit (for example, a communication port), the subject of processing may be a processor.
  • the processing described with the program as the subject may be processing performed by the processor unit or a device having the processor unit.
  • the processor unit may include a hardware circuit (for example, FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit)) that performs part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a recording medium (for example, a non-transitory recording medium) that can be read by a program distribution server or a computer.
  • a recording medium for example, a non-transitory recording medium
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • the “storage system” may be one or more storage devices.
  • the “storage device” may be any device having a function of storing data in the storage device.
  • the storage device may be a computer (for example, a general-purpose computer) such as a file server.
  • at least one physical storage device may execute a virtual computer (for example, VM (Virtual Machine)), or may execute SDx (Software-Defined anything).
  • SDx for example, SDS (Software Defined Storage) (an example of a virtual storage device) or SDDC (Software-defined Datacenter) can be adopted.
  • at least one storage device (computer) may have a hypervisor.
  • the hypervisor may generate a server VM (Virtual Machine) that operates as a server and a storage VM that operates as a storage.
  • the server VM may operate as a host computer that issues an I / O request
  • the storage VM may operate as a storage controller that performs I / O for FMPK in response to an I / O request from the server VM.
  • time is expressed in units of year / month / day / hour / hour / minute / second, but the time unit may be coarser or finer than that, or may be a different unit.
  • FIG. 1 shows an outline of the first embodiment.
  • the storage system 104 includes a parity group (hereinafter referred to as PG) 810 and a storage controller 111 that controls I / O (Input / Output) for the PG 810.
  • PG parity group
  • I / O Input / Output
  • the PG 810 is composed of a plurality of FMPK (Flash Memory Package) 131, and is also called a RAID (Redundant Array Of Data Independent (or Inexpensive) Disks) group.
  • FMPK Flash Memory Package
  • RAID Redundant Array Of Data Independent (or Inexpensive) Disks
  • Each FMPK 131 has FM (flash memory) and a plurality of resources including a plurality of types of resources (for example, a processor and a memory).
  • FM resources for each FMPK 131, resources other than FM are collectively referred to as “FM resources”.
  • the FM has a user area 801U and an update area 801P.
  • the user area 801U is a storage area in which data (for example, new file data) is written.
  • the update area 801P is a storage area in which update data of the data (for example, file update data) is written.
  • the capacity of the user area 801U is referred to as “user capacity”
  • the capacity of the update area 801P is referred to as “update capacity”.
  • the FM may include an area other than the user area 801U and the update area 801P.
  • each FMPK 131 the total of the user capacity and the update capacity is constant. For this reason, if the user capacity increases, the update capacity decreases, and if the user capacity decreases, the update capacity increases.
  • the update area 801P of the FMPK 131 is reduced more than necessary, the execution frequency of asynchronous processing increases depending on the total amount of update data written to the FMPK 131. For this reason, the host I / O performance of the storage system 104 (the performance of processing for performing I / O to the FMPK 131 in response to an I / O request from the host computer 101) is degraded. On the other hand, if the update area 801P of the FMPK 131 is increased more than necessary, the user area 801U of the FMPK 131 becomes small, so that the amount of data that can be written is small.
  • the storage controller 111 identifies at least one of the plurality of FM resource usage rates of the plurality of FMPKs 131 configuring the PG 810, and determines the user capacity for each of the plurality of FMPKs 131 based on the identified FM resource usage rate. To change.
  • the change of the user capacity is either expansion (increase) of the user capacity or reduction (decrease) of the user capacity.
  • the change in user capacity is a change in OP (Over provisioning) rate.
  • the OP rate is a ratio determined based on at least two of the user capacity, the update capacity, and the physical capacity (the total of the user capacity and the update capacity), and becomes a smaller value as the user capacity is larger.
  • OP rate (update capacity) / (user capacity) is employed as a calculation formula for the OP rate. Therefore, the expansion of the user capacity is to reduce the OP rate, and the reduction of the user capacity is to increase the OP rate.
  • OP rate ((physical capacity) / (user capacity)) ⁇ 1 may be adopted.
  • the appropriate update capacity for each FMPK 131 in the PG 810 may change depending on the I / O status of the PG 810.
  • the OP rate of each FMPK131 is the same.
  • At least a part of the logical storage space based on the PG user area (a set of a plurality of user areas 801U included in the plurality of FMPKs 131 in PG 810) is used as a logical volume.
  • the storage controller 111 changes the OP rate of each FMPK 131 in units of PG.
  • FIG. 2 shows the configuration of the storage system 104.
  • a request from the host computer 101 to the storage system 104 is referred to as “request”, and a request from the storage controller 111 to the FMPK 131 is referred to as “command”.
  • the host computer 101 and the management computer 102 are connected to the storage system 104.
  • the host computer 101 is connected to the storage system 104 through a communication network such as a SAN (Storage Area Network) 103, for example.
  • the management computer 102 is connected to the storage system 104 through, for example, a predetermined communication line 15 (or a communication network such as a LAN (Local Area Network)).
  • the host computer 101 writes data to the storage system 104 by sending a write request to the storage system 104.
  • the host computer 101 reads data from the storage system 104 by transmitting a read request to the storage system 104.
  • the host computer 101 may be an example of an issuer of an I / O request (write request or read request).
  • the issuer of the I / O request may be, for example, a server VM in a storage system that executes the above-described server VM and storage VM.
  • the management computer 102 is a device for the user to manage and control the storage system 104.
  • the management computer 102 may include an input device such as a keyboard and a mouse and an output device such as a display device.
  • the storage system 104 includes a storage controller 111 and a drive box 112.
  • the drive box 112 includes a plurality of FMPKs 131.
  • the storage controller 111 includes an HI / F (interface) 121, a processor 123, a memory 124, a DI / F 122, and an MI / F 125. These elements 121 to 125 can transmit and receive data. Are connected by an internal network 126.
  • the HI / F 121, the DI / F 122, and the MI / F 125 are examples of the interface unit.
  • the memory 124 is an example of a storage unit.
  • the processor 123 is an example of a processor unit.
  • the HI / F 121 is an I / F for connecting the host computer 101 to the storage controller 111.
  • the M-I / F 125 is an I / F for connecting the management computer 102 to the storage controller 111.
  • the DI / F 126 is an I / F for connecting the FMPK 131 to the storage controller 111.
  • the processor 123 executes a computer program (hereinafter referred to as a program) and the like.
  • a program a computer program
  • Various functions of the storage system 104 are realized by the processor executing the program.
  • the memory 124 stores data.
  • the memory 124 is a volatile semiconductor memory such as a DRAM (Dynamic Random Access Memory), but may be a non-volatile semiconductor memory such as a flash memory. Programs and data stored in the memory 124 are accessed from the processor 123, the HI / F 121, the DI / F 122, and the like.
  • FIG. 3 shows the configuration of the FMPK 131.
  • the FMPK 131 includes an FM 220 and an FMPK controller 50 connected to the FM 220.
  • the FM 220 includes a plurality of FM (flash memory) chips 202.
  • the FMPK controller 50 includes a processor 214, a memory 212, an FMPK I / F 211, and an FM chip I / F 213. These elements 211 to 214 are connected by an internal network 215 capable of transmitting and receiving data, and can transmit and receive data bidirectionally.
  • the bus 58 connecting the memory 212 to the internal network 215 will be referred to as a “cache bus 58”.
  • the processor 214 executes a program and the like. Various functions provided in the FMPK 131 are realized by the processor 214 executing the program.
  • the memory 212 stores data.
  • the memory is, for example, a volatile semiconductor memory such as a DRAM, but may be a non-volatile semiconductor memory such as a flash memory.
  • Programs and data stored in the memory 212 are accessed from the processor 214, the FMPK I / F 211, the FM chip I / F 213, and the like.
  • the FMPK I / F 211 is an I / F for connecting the FMPK 131 to the storage controller 111.
  • the FM chip I / F 213 is an I / F for connecting the FM chip 202 to the FMPK controller 50 (processor).
  • the bus 59 for connecting the FM chip 202 to the FM chip I / F 213 will be referred to as an “FM bus 59”.
  • the above-described elements 211 to 215, 58 and 59 are a plurality of FM resources, respectively.
  • FIG. 4 shows the configuration of the FM chip 202.
  • the FM chip 202 is, for example, a NAND type FM chip, and includes an FM controller 301 and a plurality of blocks (physical blocks) 302.
  • the block 302 is composed of a plurality of pages (physical pages) 303.
  • the FM chip 202 needs to read and write data in units of pages because of its characteristics.
  • the FM chip 202 needs to erase data in units of blocks due to its characteristics.
  • the FM chip 202 cannot overwrite data on a write-once type, that is, a written page 303. Therefore, when the FMPK controller 50 receives a write command with the logical address to which the physical address of the written page 303 is assigned as the write destination, the FMPK controller 50 uses the update data (overwrite data) according to the write command as an unused page. Then, the physical address of the page 303 is assigned to the logical address of the write destination instead of the physical address of the written page 303.
  • the host system of the FMPK 131 is the storage controller 111 in this embodiment, but is not limited thereto. That is, the host system may be a computer with the FMPK 131 externally attached in the storage system, or a processor in the computer having the FMPK 131 built therein.
  • the FMPK controller 50 provides a logical storage space (for example, a continuous logical address space) to the host system.
  • the logical storage space may be divided into a plurality of logical areas.
  • the logical storage space may be composed of a plurality of logical blocks, and each logical block may be composed of a plurality of logical pages.
  • a logical block or logical page may be an example of a logical area.
  • the logical area may be rephrased as a logical address range (for example, one or more consecutive logical addresses).
  • the FMPK controller 50 manages the correspondence between logical addresses and physical addresses.
  • the FMPK controller 50 identifies the physical area to which the physical address corresponding to the logical address specified by the I / O command from the higher system belongs, and performs I / O on the identified physical area.
  • the logical address is, for example, LBA (Logical Block Address), but may be a logical area ID (for example, a logical page number) instead of or in addition to the LBA.
  • the physical address is, for example, PBA (Physical Block Address), but may be a physical area ID (for example, physical page number) instead of or in addition to PBA.
  • Update data is written to the allocated page 303.
  • the data written in the recently allocated page 303 (that is, the latest data) is “valid data”, and the page 303 in which valid data is written is “valid page”.
  • the data stored in the allocated page 303 is “invalid data”, and the page 303 in which invalid data is written is “invalid page”.
  • a page that can store new data without being a valid page or an invalid page is an “empty page”.
  • non-FM non-volatile memory such as PRAM (Phase-change Random Access Memory), MRAM (Magnetoresistive Random Access Memory), ReRAM (Resistive Random Access Memory) or FeRAM (Ferroelectric Random Access Memory) is adopted. May be.
  • PRAM Phase-change Random Access Memory
  • MRAM Magneticoresistive Random Access Memory
  • ReRAM Resistive Random Access Memory
  • FeRAM Feroelectric Random Access Memory
  • FIG. 5 shows the configuration of the memory 124 of the storage controller 111.
  • the memory 124 includes a program area 401, a table area 402, and a data cache area 403.
  • the program area 401 stores a program, for example, a storage control program 411 that controls the operation of the storage controller 111.
  • the program is executed by the processor 123.
  • the storage control program 411 executes processing for writing data to the FMPK 131 in accordance with a write request from the host computer 101.
  • the storage control program 411 executes a process of reading data from the FMPK 131 and returning it to the host computer 101 in accordance with a read request from the host computer 101.
  • the table area 402 stores tables, for example, a drive management table 421, a pool management table 422, a virtual volume management table 423, a PG management table 424, an individual drive management table 425, and an expansion / reduction determination table 426. To do. These tables will be described in detail later.
  • the data cache area 403 temporarily stores user data 431.
  • the user data 431 is data according to the I / O request (specifically, data to be written or read).
  • FIG. 6 shows a configuration of a table stored in the table area 402 of the storage controller 111. As shown in FIG. 6, the configuration of the expansion / reduction determination table 426 is shown in FIG.
  • the drive management table 421 holds information related to the drive (FMPK 131 in this embodiment).
  • the drive management table 421 has an entry for each drive. Each entry holds information such as a drive number 501, a drive type 502, and a physical capacity 503.
  • the drive number 501 is a drive identification number.
  • the drive type 502 indicates the type of drive.
  • a physical capacity 503 indicates the physical capacity of the drive.
  • the pool management table 422 holds information regarding the pool.
  • the pool management table 422 has an entry for each pool. Each entry holds information such as a pool number 511 and a PG number 512.
  • the pool number 511 is a pool identification number.
  • the PG number 512 is an identification number of a PG that provides a pool volume in the pool.
  • the pool is a storage space composed of logical volumes based on the PG user area of PG 810.
  • a logical volume constituting a pool is called a “pool volume”.
  • the pool (pool volume) is divided into a plurality of segments (hereinafter, physical segments). A physical segment is allocated from the pool associated with the virtual volume to the write destination virtual segment in the virtual volume (for example, a virtual logical volume according to Thin Provisioning).
  • the PG management table 424 holds information related to PG.
  • the PG management table 424 has an entry for each PG. Each entry holds information such as a PG number 521, a RAID level 522, a RAID configuration 523, a drive list 524, a policy 525, an OP rate 526, and a PG capacity 527.
  • the PG number 521 is a PG identification number.
  • the RAID level 522 indicates a RAID level.
  • a RAID configuration 523 indicates a RAID configuration.
  • the RAID type is defined by the RAID level and the RAID configuration.
  • the drive list 524 is a list of identification numbers of drives constituting the PG.
  • a policy 525 indicates a policy associated with the PG. Policies include capacity priority and performance priority.
  • the OP rate 526 indicates the OP rate adopted for PG.
  • the PG capacity 527 is a total of a plurality of physical capacities respectively corresponding to the plurality of FMPKs 131 constituting the PG. From the PG capacity 527 and the OP rate 526, the capacity of the PG user area is calculated.
  • the drive individual management table 425 exists for each drive.
  • the individual drive management table 425 holds information such as a drive number 531, an LBA (Logical Block Address) 532, and a length 533 for each drive area.
  • the drive number 531 is an identification number of a drive having a drive area.
  • LBA 532 indicates the top LBA of the drive area.
  • the length 533 indicates the size of the drive area.
  • the virtual volume management table 423 holds information regarding virtual volumes.
  • the virtual volume management table 423 has an entry for each virtual volume. Each entry holds information such as a volume number 541, a pool number 542, and a capacity 543.
  • the volume number 541 is a virtual volume identification number.
  • the pool number 542 is an identification number of the pool associated with the virtual volume.
  • the capacity 543 indicates the capacity of the virtual volume.
  • the expansion / reduction determination table 426 shows the relationship between the FM resource usage rate, the asynchronous processing performance, and the result of expansion / reduction determination as described later. That is, in this embodiment, the change in the OP rate is based on the asynchronous processing performance in addition to the FM resource usage rate.
  • the OP rate (the size of the update capacity) affects the frequency of asynchronous processing. For this reason, by changing the OP rate based on the asynchronous processing performance in addition to the FM resource usage rate, it can be further expected that the optimum OP rate is maintained during the operation of the storage system 104.
  • An example of the relationship between the performance of write processing (processing performed in response to a write command) and the performance of asynchronous processing is as shown in FIG.
  • the write processing will be performed even if the performance (load) of asynchronous processing increases. The performance does not decrease. However, if there is no margin in the performance of the FMPK 131, the performance of the write processing decreases when the performance of asynchronous processing increases.
  • N usage rate ranges as FM resource usage rate ranges (hereinafter referred to as usage rate ranges), and there are M performance ranges as asynchronous processing performance ranges (hereinafter referred to as performance ranges).
  • the first usage rate range (less than the usage rate X (X is, for example, 10%)
  • the second usage rate range (more than the usage rate X, and less than the usage rate Y (Y is, for example, 50%))
  • the usage rate range is compared with the highest (worst) FM resource usage rate among a plurality of types of FM resource usage rates (memory 723 to cache bandwidth 727).
  • the highest (worst) FM resource usage rate is considered to be a bottleneck in the FMPK 131, and such FM resource usage rate is taken into consideration, so that the possibility of optimizing the OP rate in PG units can be increased.
  • the performance range includes a first performance range (less than performance A), a second performance range (performance A or more and less than performance B), and a third performance range (performance B or more).
  • H, M, and L mean high, medium, and low, respectively.
  • the result of the expansion / reduction possibility determination tends to be “expandable”.
  • the FM resource usage rate and the asynchronous processing performance are sufficient, if the user area becomes large, further reduction in bit cost can be expected, and the frequency of asynchronous processing may increase. It is expected.
  • the FM resource usage rate is high and the asynchronous processing performance is low, the result of the expansion / reduction determination is likely to be “reducible”. That is, when there is no room for both the FM resource usage rate and the asynchronous processing performance, if the update area becomes large, the occurrence frequency of asynchronous processing is expected to decrease.
  • the expansion / reduction determination is performed.
  • the result is extensible.
  • the FM resource usage rate is equal to or higher than the usage rate Y (an example of the second usage rate) and the asynchronous processing performance is equal to or higher than the performance B (an example of the second processing performance)
  • the result of the expansion / reduction determination is It can be reduced.
  • determination result includes “impossible” (both expansion and reduction are not possible) in addition to “expandable” and “reducible”.
  • the boundary value of at least one performance range that is, at least one of the performances A and B differs depending on the policy, that is, whether capacity priority or performance priority is adopted.
  • Capacity priority means giving priority to a large user capacity over a high write processing performance.
  • Perfectance priority means that priority is given to high performance of write processing over large user capacity. At least one of the performances A and B is higher when capacity priority is adopted than when performance priority is adopted. For this reason, even if the asynchronous processing performance is the same, the result of the extension / reduction determination may be different depending on the policy.
  • asynchronous processing performance is 30 KIOPS
  • degeneration is possible with performance priority (that is, improvement of write processing performance is prioritized by lowering asynchronous processing performance), and expansion is possible with capacity priority (that is, Even if asynchronous processing performance is high, priority is given to a large user capacity).
  • FIG. 7 shows the configuration of the memory 212 of the FMPK controller 50.
  • the memory 212 includes a program area 601, a table area 602, and a data cache area 603.
  • the program area 601 stores a program, for example, an FMPK control program 611 that controls the operation of the FMPK controller 50.
  • the program is executed by the processor 214.
  • the FMPK control program 611 specifies a write destination physical page based on the logical-physical conversion table 621, and stores data in the FM chip 202 having the specified write destination physical page.
  • the FMPK control program 611 specifies a read source physical page based on the logical-physical conversion table 621 in response to a read command from the storage controller 111, and the FM chip 202 having the specified read source physical page. Read data from.
  • the table area 602 stores tables such as a logical physical conversion table 621, an FM resource management table 622, a page management table 623, an OP rate management table 624, and an asynchronous performance management table 625. These tables will be described in detail later.
  • the data cache area 603 temporarily stores user data 631.
  • User data 631 is data (data to be written or read) in accordance with an I / O command from the storage controller 111.
  • FIG. 8 shows a configuration of a table stored in the table area 602 of the FMPK controller 50.
  • the FMPK 131 having the table area 602 shown in FIG. 8 is referred to as “target FMPK 131”.
  • the OP rate management table 624 holds information regarding the OP rate of the target FMPK 131, specifically, the OP rate 701 and the user capacity 702.
  • the OP rate 701 indicates the determined OP rate.
  • a user capacity 702 indicates the user capacity of the target FMPK 131.
  • the user capacity 702 is calculated based on the physical capacity and the OP rate of the target FMPK 131.
  • the FM resource management table 622 holds information related to the FM resource usage rate of the target FMPK 131.
  • the FM resource management table 622 has an entry for each period. Each entry holds information such as ID 721, time 722, memory 723, CPU 724, bus bandwidth 725, cache usage rate 726, and cache bandwidth 727.
  • ID 721 is a period ID.
  • Time 722 represents the start time of the period.
  • the memory 723 indicates the memory usage rate (usage rate of the memory 212) specified in the period.
  • the CPU 724 indicates the processor usage rate (usage rate of the processor 214) specified in the period.
  • the bus band 725 indicates the bus band specified in the period (the band of the FM bus 59).
  • the cache usage rate 726 indicates the cache usage rate specified during the period (the usage rate of the data cache area 403).
  • the cache bandwidth 727 indicates the cache bandwidth specified in the period (the bandwidth of the cache bus 58).
  • the period is a certain period (for example, 30 minutes).
  • Each of the memory 723 to the cache bandwidth 727 is an example of an FM resource rate.
  • the value registered in the table 622 is a value according to at least one of the specified FM resource rates, for example, an average value, or The highest (worst) FM resource rate. Further, the FM resource usage rate registered in the table 624 may be one type.
  • the asynchronous performance management table 625 holds information related to the performance of asynchronous processing of the target FMPK 131 (for example, the number of I / Os per unit time or the data transfer size per unit time).
  • the asynchronous performance management table 625 has an entry for each period. Each entry holds information such as ID 711, time 712, reclamation 713, and refresh 714.
  • ID 711 is a period ID.
  • Time 712 represents the start time of the period.
  • Reclamation 713 indicates the reclamation processing performance specified in the period.
  • the refresh 714 indicates the performance of the refresh process specified in the period.
  • Each of the reclamation process and the refresh process is an example of an asynchronous process.
  • the value registered in the table 625 is a value according to at least one of the specified asynchronous processing performances, for example, the average value, the lowest (Worst) performance or highest (best) performance.
  • the “asynchronous process” is a process performed by the FMPK 131 asynchronously with the write process performed by the FMPK 131 in response to a write command for writing data such as update data. As in the reclamation process and the refresh process, data writing to the FM 220 occurs.
  • Reclamation process refers to reading valid data from each of one or more physical blocks, moving the read data to a physical block (for example, a physical block having a smaller erase count than the source physical block), This is a process for executing an erasing process on a physical block. Free physical blocks can be increased by the reclamation process.
  • “refresh processing” means that data (especially valid data) is read from a physical block, error-corrected, and the error-corrected data is transferred to another physical block (for example, a physical block having a smaller PE count than the source physical block). ).
  • the migration destination physical block is allocated instead of the migration source physical block to the logical area (for example, logical block) to which the migration source physical block has been allocated.
  • the logical / physical conversion table 621 holds information regarding the correspondence between logical addresses and physical addresses.
  • the logical-physical conversion table 621 has an entry for each logical page (an example of a logical area). Each entry holds information such as a logical page number 731, an LBA 732, a logical page size 733, a status 734, a physical page number 735, and a block number 736.
  • the logical page number 731 is a logical page identification number.
  • LBA 732 indicates the first LBA of the logical page.
  • the logical page size 733 indicates the size of the logical page.
  • the status 734 indicates the status of the logical page.
  • the status 734 includes “valid” (a logical page based on the user area and the logical page is allocated as a part of the pool), and “invalid” (a logical page based on the user area but the logical page Page is not allocated as part of the pool) and "unusable" (logical page based on update area).
  • the physical page number 735 is an identification number of the physical page assigned to the logical page.
  • the block number 736 is an identification number of the physical block including the physical page assigned to the logical page.
  • the page management table 623 holds information related to physical pages.
  • the page management table 623 has an entry for each physical page. Each entry holds information such as a physical page number 741 and a status 742.
  • the physical page number 741 is a physical page identification number.
  • the status 742 indicates the status of the physical page.
  • FIG. 9 shows the flow of processing performed in response to a write request.
  • FIG. 10 shows the flow of processing performed by the FMPK 131 that receives a write command.
  • the storage controller 111 receives a write request from the host computer 101 (S900).
  • the storage controller 111 (storage control program 411) transmits a write command to at least one FMPK 131 in the PG 810 based on the write request.
  • one FMPK 131 is taken as an example. 9 and 10, the FMPK 131 is referred to as “target FMPK 131”.
  • the FMPK controller 50 (processor 214) of the target FMPK 131 receives the write command (S901). In accordance with the write command, the processor 214 (FMPK control program 611) writes the write target data in accordance with the write command into the FM 220 (S902).
  • the FMPK control program 611 acquires a plurality of types of FM resource usage rates (memory 723 to cache bandwidth 727) of the target FMPK 131 from the FM resource management table 622 (S903). Note that the plurality of types of FM resource usage rates may be periodically measured and registered in the FM resource management table 622, or may be measured in S903.
  • the FMPK control program 611 determines whether or not asynchronous processing is necessary (S904). As for processing performed in response to a write command, asynchronous processing is typically reclamation processing. For example, when the number of free blocks with respect to the total number of physical blocks is less than the threshold (that is, when there are few free blocks), it is determined that reclamation processing is necessary.
  • the FMPK control program 611 executes asynchronous processing (S905). Then, the FMPK control program 611 registers the FM resource rate after the change accompanying the asynchronous processing in the FM resource management table 622 (S906).
  • the FMPK control program 611 determines whether or not a failure has occurred in the target FMPK 131 (S907).
  • the “failure” here means that the free capacity of the user capacity of the target FMPK 131 is less than a predetermined capacity (for example, the number of logical pages “invalid” with respect to the total number of logical pages constituting the user area 801U). Or the write processing performance of the target FMPK 131 is less than the predetermined performance.
  • a response 950 is returned to the write to the FM 220, a response 960 to the write command is returned, and a response 970 to the write request is returned.
  • Each FMPK 131 may periodically determine whether asynchronous processing is necessary. For example, the storage controller 111 may periodically send a periodic processing command to the FMPK 131.
  • FIG. 11 shows the flow of processing performed by the FMPK 131 that receives a periodic processing command.
  • the FMPK 131 is referred to as “target FMPK 131”.
  • the FMPK controller 50 receives the periodic processing command (S1101).
  • the processor 214 acquires a plurality of types of FM resource usage rates (memory 723 to cache bandwidth 727) of the target FMPK 131 from the FM resource management table 622 (S1102).
  • the FMPK control program 611 determines whether or not asynchronous processing is necessary (S1103).
  • the asynchronous processing here is not limited to reclamation processing.
  • the FMPK control program 611 executes asynchronous processing (S1104). Then, the FMPK control program 611 registers the FM resource rate after the change accompanying the asynchronous processing in the FM resource management table 622 (S1105).
  • the FMPK control program 611 determines whether or not the above-described failure has occurred in the target FMPK 131 (S1106).
  • FIG. 12 shows the flow of processing performed in response to the storage controller 111 receiving an alert.
  • FIG. 13 shows a processing flow including expansion / reduction determination. Since the user capacity is expanded or contracted when an alert is generated due to user capacity depletion or performance degradation, optimizing the user capacity also eliminates the cause of the alert.
  • the processor 123 (storage control program 411) receives an alert from the FMPK 131
  • the processor 123 (the storage control program 411) specifies the PG 810 including the FMPK 131 based on the PG management table 424, and executes expansion or reduction of the user capacity for the specified PG 810.
  • the expansion / reduction determination which is a determination as to whether or not to perform, is executed (S1201).
  • the PG 810 including the alert issuer FMPK 131 is hereinafter referred to as a “target PG 810”.
  • the storage control program 411 selects any FMPK 131 in which S1201-1 and S1201-2 are not yet selected from the target PG 810.
  • the FMPK 131 selected here is referred to as “selected FMPK 131”.
  • the storage control program 411 specifies the FM resource usage rate and the asynchronous processing performance from the selected FMPK 131 (S1201-1). Specifically, the storage control program 411 transmits an acquisition command to the selected FMPK 131.
  • the processor 214 (FMPK control program 611) of the selected FMPK 131 acquires a plurality of types of FM resource usage rates (memory 723 to cache bandwidth 727) from the FM resource management table 622 in response to the acquisition command, and performs asynchronous performance.
  • the latest asynchronous processing performance (reclamation 713 and refresh 714) is acquired from the management table 625 (S1201-1-1), and the response (response to the acquisition command) including the acquired FM resource usage rate and asynchronous processing performance is obtained.
  • the storage controller 111 specifies the FM resource usage rate and the asynchronous processing performance from the selected FMPK 131 (S1201-1). Specifically, the storage control program 411 transmits an acquisition command to the selected FMPK 131.
  • the storage control program 411 specifies a result corresponding to the highest FM resource usage rate and the highest asynchronous processing performance of the selected FMPK 131 from the expansion / reduction determination table 426 (S1201-2).
  • the storage control program 411 sets the determination result of S1201 to false (S1201: N) for the target PG 810.
  • the storage control program 411 if there is an FMPK 131 in which S1201-1 and S1201-2 are not yet present in the target PG 810, S1201-1 and S1201 for that FMPK 131 -2.
  • the storage control program 411 is the same for all the FMPKs 131 of the target PG 810 if the target PG 810 does not have the FMPK 131 for which S1201-1 and S1201-2 are not yet performed. It is determined whether the result is obtained (that is, whether it is all “expandable” or all “reducible”) (S1201-3). When the determination result in S1201-3 is true (S1201-3: Y), the determination result in S1201 is true (S1201: Y). If the determination result in S1201-3 is false (S1201-3: N), the determination result in S1201 is false (S1201: N). As a result, the target PG 810 can be expanded or reduced in PG units. The storage control program 411 may set the determination result of S1201 to S1201: N as soon as a different result is obtained for the target PG 810.
  • S1202-1 is executed for each FMPK 131 constituting the target PG 810. That is, when the determination result in S1201 is “extension possible”, the storage control program 411 transmits an extension command to each FMPK 131 configuring the target PG 810. On the other hand, when the determination result in S1201 is “reduction possible”, the storage control program 411 transmits a reduction command to each FMPK 131 configuring the target PG 810.
  • S1202-2 is executed. That is, the storage control program 411 registers the OP rate after change according to the expansion command or the reduction command for the target PG 810 as the OP rate 526 in the PG management table 424.
  • the OP rate change amount according to the extension command and the OP rate change amount according to the reduction command are constant. However, the OP rate change amount according to the extension command and the OP rate change amount according to the reduction command may be the same or different.
  • the user capacity change amount may be constant instead of the OP rate change amount.
  • the change amount at the time of expansion and the change amount at the time of reduction may be the same or different.
  • S1201 may be executed periodically.
  • FIG. 16 shows the flow of processing performed by the FMPK 131 for expansion.
  • the FMPK 131 receives the extension command (S1201-1-A1) and extends the user capacity (S1201-1-A2). Specifically, for example, the FMPK control program 611 secures a free area (one or more free blocks (blocks as a set of free pages)) corresponding to the OP rate change amount from the update area. If there is no free area for the OP rate change amount, free blocks may be increased by the reclamation process.
  • the FMPK control program 611 changes the status 734 of each logical page corresponding to the OP rate change amount from “unusable” to “invalid”, and changes the OP rate 701 to the expanded OP rate. (S1201-1-A3).
  • the FMPK control program 611 returns a completion response to the extended command to the storage controller 111.
  • FIG. 17 shows a flow of processing performed by the FMPK 131 regarding reduction.
  • the FMPK 131 (FMPK control program 611) receives the reduction command (S1201-1-B1), changes the status 734 of each logical page corresponding to the OP rate change amount from “invalid” to “unusable”, and The rate 701 is changed to the reduced OP rate (S1201-1-B2).
  • the FMPK control program 611 returns a completion response to the reduction command to the storage controller 111. Since reduction is possible because there is a free area in the user area, it is not necessary to secure a free area corresponding to the OP rate change amount from the user area.
  • various settings may be performed via a setting screen 2000 illustrated in FIG. 20 (for example, GUI (Graphical User Interface)).
  • the screen 2000 may be displayed on the management computer 102, for example.
  • the screen 2000 includes, for example, a PG designation UI (user interface) 2003, a user capacity change setting UI 2004, a policy setting UI 2005, a setting change button 2001, and an OP rate manual change button 2002.
  • a PG to which settings are associated can be designated by a PG designation UI 2003.
  • the user capacity change setting UI 2004, it is possible to specify whether or not the user capacity has been changed (OP rate change) and whether the change should be performed automatically or manually.
  • With the policy setting UI 2005 it is possible to designate which one of performance priority and capacity priority is adopted.
  • the designation (setting) via the UI 2003, 2004, and 2005 is reflected in the table 424 (whether the OP rate change is valid (automatic or manual) in the table 424). ) May be provided).
  • the OP rate manual change button 2002 is pressed, the OP rate is manually changed.
  • the prediction screen 2100 (eg, GUI) illustrated in FIG. 21 may be displayed by, for example, the storage control program 411.
  • the storage control program 411 changes the current rate 2014 including the highest FM resource usage rate (including the type of FM resource usage rate) and the OP rate (user capacity), and the OP rate for the FMPK 131 of the alert issue source (
  • a prediction situation 2015 including an FM resource usage rate and an OP rate (user capacity) when it is assumed that expansion or reduction may be performed may be displayed on the screen 2100.
  • the screen 2100 includes an OP rate change button 2101 and a cancel button 2102.
  • the storage control program 411 may execute the OP rate change for the PG 810 including the alert issuing source FMPK 131. Thereby, it is possible to determine to change the OP rate after confirming the predicted state after the OP rate is changed.
  • the storage control program 411 may skip the OP rate change for the PG 810 including the FMPK 131 that is the alert issuing source.
  • the user capacity changes while the storage system 104 is operating, but the host computer 101 cannot see the user capacity change. This is because the volume provided to the host computer 101 is a virtual volume and the capacity of the pool changes, but the capacity of the virtual volume itself does not change.
  • Example 2 will be described. At that time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
  • the change amount of the user capacity is variable.
  • one of the storage control program 411 and the FMPK control program 611 determines the user capacity change amount based on the FM resource usage rate and the asynchronous processing performance.
  • one of the storage control program 411 and the FMPK control program 611 can change the maximum user capacity for each FMPK 131 based on the maximum FM resource usage rate and the maximum asynchronous processing performance of the FMPK 131. Determine the amount.
  • the storage control program 411 determines the maximum change amount (for example, the minimum value of the plurality of maximum change amounts) based on a plurality of maximum change amounts respectively corresponding to the plurality of FMPKs 131 constituting the PG 810.
  • the storage control program 411 determines a change amount obtained by reducing a predetermined margin from the determined maximum change amount as a user capacity change amount.
  • the change amount of the user capacity is not a fixed value but based on the maximum change amount according to the FM resource usage rate and the asynchronous processing performance. Thereby, it can be expected to shorten the time until the OP rate becomes the optimum value.
  • the change amount of the user capacity is an amount obtained by reducing a predetermined margin from the maximum change amount. As a result, the possibility that the performance of the storage system 104 will be adversely affected can be reduced.
  • FIG. 22 shows the user capacity transition
  • the right side of FIG. 22 shows the performance transition accompanying the transition.
  • the storage control program 411 determines an amount P obtained by reducing a predetermined margin from the maximum expansion amount as the expansion amount.
  • the update capacity by the expansion amount P is reduced, so that the frequency of asynchronous processing increases, and as a result, the asynchronous processing performance increases by the performance R.
  • the storage control program 411 (or the FMPK control program 611) has a low asynchronous processing performance as the maximum expansion amount according to the FM resource usage rate and the asynchronous processing performance. In addition, an amount smaller than the maximum expansion amount when the FM resource usage rate is also low is determined. Then, the storage control program 411 determines, as the expansion amount, an amount Q obtained by reducing a predetermined margin from the determined maximum expansion amount (the margin may be a fixed size, but may be variable like the maximum expansion amount). .
  • the margin may be a fixed size, but may be variable like the maximum expansion amount.
  • the user capacity can be expanded as much as possible while avoiding a decrease in write processing performance.
  • the user capacity can be expanded as much as possible while avoiding a decrease in write processing performance.
  • the optimum user capacity (the optimum OP rate) is realized in a shorter time than that in the first embodiment.
  • FMPK may execute the expansion / reduction determination.
  • the FMPK control program may issue an alert internally (the alert issuance destination is the FMPK control program), and may execute expansion / reduction determination in response to the alert.
  • the FMPK control program of FMPK can change the user capacity to the user capacity according to the determination based on at least one of the one or more resource usage rates of the FMPK.
  • Changing the user capacity to a user capacity according to a determination based on at least one of the one or more resource usage rates of the FMPK is performed in response to a change command from a higher system of the FMPK.
  • the FMPK control program may change the user capacity based on at least one of the one or more resource usage rates of the FMPK.

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

ストレージシステムは、1以上の不揮発メモリデバイスと、その1以上の不揮発メモリデバイスに接続された1以上のプロセッサであるプロセッサ部とを有する。1以上の不揮発メモリデバイスの各々について、不揮発メモリのうちの少なくとも一部が、データが書き込まれる記憶領域であるユーザ領域と、そのデータの更新データが書き込まれる記憶領域である更新領域とで構成されている。プロセッサ部は、1以上の不揮発メモリデバイスの1以上のリソース使用率のうちの少なくとも1つに基づき、1以上の不揮発メモリデバイスの各々について、ユーザ領域の容量であるユーザ容量を変更する。

Description

ストレージシステム及び記憶制御方法
 本発明は、概して、記憶制御に関し、例えば、オーバープロビジョニングのための予備領域の容量の変更に関する。
 フラッシュメモリは、一般に、追記型、すなわち、データを書き換えるためには、そのデータを記憶している領域からデータを消去する必要がある。フラッシュメモリは、データの書換回数(言い換えれば消去回数)に上限がある。この上限を超えたフラッシュメモリは、新たにデータを書き込めなかったり、書き込まれたデータにエラーが発生する確率が高くなったりする。フラッシュメモリの書換回数がその上限に達するまでの期間を、フラッシュメモリの「寿命」という。したがって、複数のフラッシュメモリによって構成されるFMPK(Flash Memory Package)にも寿命が存在する。
 特許文献1には、RAIDグループの総記憶容量を使用可能容量と余剰容量の和とし、論理ボリュームへの書換頻度に応じて、余剰容量のサイズを変更する技術が開示されている。
WO2015/052811
 ストレージシステムの用途は様々であり、例えば、書換頻度の低い(リードがメインの)データを格納するストレージシステムは、更新領域(予備領域)を削減し、ユーザ領域(データ格納領域)を拡大することで、ビットコストを低減することが可能である。
 しかしながら、FMPKの更新領域を必要以上に削減してしまうと、そのFMPKに書き込まれる更新データ(上書きされるデータ)の総量に依っては、非同期処理の実行頻度が高くなる。このため、ストレージシステムのI/O性能(I/O要求に応答してFMPKに対してI/Oを行う処理の性能)が低下してしまう(なお、非同期処理とは、更新データのようなデータをライト対象としたライトコマンドに応答してFMPKにより行われるライト処理とは非同期にFMPKにより行われる処理であって、典型的には、リクラメーション処理及びリフレッシュ処理のように、FM(フラッシュメモリ)に対するデータのライトが発生する処理である)。
 一方、FMPKの更新領域を必要以上に増やしてしまうと、FMPKのユーザ領域が小さくなってしまうので、書き込むことができるデータの量は少ない。
 このような課題は、FMPKのようなフラッシュメモリデバイスに限らず、他の追記型の不揮発メモリデバイスについても、あり得る。
 本発明は、ホストI/O性能の維持とビットコストの低減とを両立することを目的とする。
 ストレージシステムは、1以上の不揮発メモリデバイスと、その1以上の不揮発メモリデバイスに接続された1以上のプロセッサであるプロセッサ部とを有する。1以上の不揮発メモリデバイスの各々について、不揮発メモリのうちの少なくとも一部が、データが書き込まれる記憶領域であるユーザ領域と、そのデータの更新データが書き込まれる記憶領域である更新領域とで構成されている。プロセッサ部は、1以上の不揮発メモリデバイスの1以上のリソース使用率のうちの少なくとも1つに基づき、1以上の不揮発メモリデバイスの各々について、ユーザ領域の容量であるユーザ容量を変更する。
 ストレージシステムの稼働中に、1以上の不揮発メモリデバイスの動作状況に最適なユーザ容量(言い換えれば、更新領域の容量である更新容量)を維持すること、結果として、ホストI/O性能の維持とビットコストの低減との両立を維持することが期待できる。
実施例1の概要を示す。 ストレージシステムの構成例を示す。 FMPKの構成を示す。 FMチップの構成を示す。 ストレージコントローラのメモリの構成を示す。 ストレージコントローラのテーブル領域に格納されるテーブルの構成を示す。 FMPKコントローラのメモリの構成を示す。 FMPKコントローラのテーブル領域に格納されるテーブルの構成を示す。 ライト要求に応答して行われる処理のシーケンス図である。 ライトコマンドを受けるFMPKが行う処理のフローチャートである。 定期処理コマンドを受けるFMPKが行う処理のフローチャートである。 ストレージコントローラがアラートを受けたことに応答して行われる処理のシーケンス図である。 拡張/縮小判定を含む処理のフローチャートである。 拡張/縮小判定の詳細を示すフローチャートである。 S1202に関してストレージコントローラが行う処理の詳細を示すフローチャートである。 拡張に関してFMPKが行う処理のフローチャートである。 縮小に関してFMPKが行う処理のフローチャートである。 拡張/縮小判定テーブルの構成を示す。 ライト処理の性能と非同期処理の性能との関係の一例を示す。 設定画面の一例を示す。 予測画面の一例を示す。 実施例2におけるユーザ容量遷移と性能遷移との関係の一例を示す。
 以下の説明では、「abcテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外のデータ構成で表現されていてもよい。データ構成に依存しないことを示すために「abcテーブル」のうちの少なくとも1つを「abc情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
 また、以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
 また、以下の説明では、「記憶部」は、1以上のメモリを含む。記憶部に関して少なくとも1つのメモリは、揮発性メモリでよい。記憶部は、主に、プロセッサ部による処理の際に使用される。
 また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部(例えばメモリ)及び/又はインターフェース部(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としてもよい。また、プロセッサ部は、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
 また、以下の説明では、「ストレージシステム」は、1以上のストレージ装置でよい。「ストレージ装置」は、記憶デバイスにデータを格納する機能を有する装置であればよい。このため、ストレージ装置は、ファイルサーバのような計算機(例えば汎用計算機)であってもよい。例えば、少なくとも1つの物理的なストレージ装置が、仮想的な計算機(例えばVM(Virtual Machine))を実行してもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。また、例えば、少なくとも1つのストレージ装置(計算機)は、ハイパーバイザを有していてよい。ハイパーバイザが、サーバとして動作するサーバVM(Virtual Machine)と、ストレージとして動作するストレージVMとを生成してよい。サーバVMが、I/O要求を発行するホスト計算機として動作し、ストレージVMが、サーバVMからのI/O要求に応答してFMPKに対するI/Oを行うストレージコントローラとして動作してよい。
 また、以下の説明では、「時刻」は、年月日時分秒の単位で表現されるが、時刻の単位は、それよりも粗くても細かくてもよいし、また異なる単位でもよい。
 図1は、実施例1の概要を示す。
 ストレージシステム104は、パリティグループ(以下、PG)810と、PG810に対するI/O(Input/Output)を制御するストレージコントローラ111とを有する。
 PG810は、複数のFMPK(Flash Memory Package)131で構成されており、RAID(Redundant Array of Independent (or Inexpensive) Disks)グループとも呼ばれる。
 各FMPK131は、FM(フラッシュメモリ)と、複数種類のリソース(例えばプロセッサ及びメモリ)を含んだ複数のリソースとを有する。以下、各FMPK131について、FM以外のリソースを、「FMリソース」と総称する。
 各FMPK131において、FMは、ユーザ領域801Uと、更新領域801Pとを有する。ユーザ領域801Uは、データ(例えば新規のファイルのデータ)が書き込まれる記憶領域である。更新領域801Pは、そのデータの更新データ(例えば、ファイルの更新データ)が書き込まれる記憶領域である。以下、各FMPK131について、ユーザ領域801Uの容量を「ユーザ容量」と呼び、更新領域801Pの容量を「更新容量」と呼ぶ。なお、FMは、ユーザ領域801U及び更新領域801P以外の領域を含んでもよい。
 各FMPK131において、ユーザ容量と更新容量の合計は一定である。このため、ユーザ容量が大きくなれば、更新容量が小さくなり、ユーザ容量が小さくなれば、更新容量が大きくなる。
 FMPK131の更新領域801Pを必要以上に削減してしまうと、そのFMPK131に書き込まれる更新データの総量に依っては、非同期処理の実行頻度が高くなる。このため、ストレージシステム104のホストI/O性能(ホスト計算機101からのI/O要求に応答してFMPK131に対してI/Oを行う処理の性能)が低下してしまう。一方、FMPK131の更新領域801Pを必要以上に増やしてしまうと、FMPK131のユーザ領域801Uが小さくなってしまうので、書き込むことができるデータの量は少ない。
 そこで、ストレージコントローラ111は、PG810を構成する複数のFMPK131の複数のFMリソース使用率のうちの少なくとも1つを特定し、特定したFMリソース使用率に基づき、その複数のFMPK131の各々について、ユーザ容量を変更する。ユーザ容量の変更は、ユーザ容量を拡張する(大きくする)ことと、ユーザ容量を縮小する(小さくする)ことのいずれかである。
 本実施例では、ユーザ容量の変更は、OP(Over Provisioning)率の変更である。OP率は、ユーザ容量、更新容量及び物理容量(ユーザ容量と更新容量の合計)のうちの少なくとも2つに基づいて決定された比率であって、ユーザ容量が大きい程に小さい値となる。本実施例では、OP率の計算式として、OP率=(更新容量)/(ユーザ容量)が採用される。このため、ユーザ容量の拡張とは、OP率を下げることであり、ユーザ容量の縮小とは、OP率を上げることである。OP率の計算式として、他の計算式、例えば、OP率=((物理容量)/(ユーザ容量))-1が採用されてもよい。
 ストレージシステム104の稼働中、PG810に対するI/Oの状況によって、PG810における各FMPK131にとって適切な更新容量は変わり得る。一方、PG810において、各FMPK131のOP率は同一である。PGユーザ領域(PG810における複数のFMPK131がそれぞれ有する複数のユーザ領域801Uの集合)に基づく論理記憶空間の少なくとも一部が、論理ボリュームとして使用される。
 そこで、ストレージコントローラ111は、PG単位で、各FMPK131のOP率を変更する。
 以下、本実施例を詳細に説明する。
 図2は、ストレージシステム104の構成を示す。なお、以下の説明では、混同を避けるため、ホスト計算機101からストレージシステム104への要求を「要求」と言い、ストレージコントローラ111からFMPK131への要求を「コマンド」と言うことにする。
 ストレージシステム104に、ホスト計算機101と、管理計算機102とが接続されている。ホスト計算機101は、例えば、SAN(Storage Area Network)103のような通信ネットワークを通じてストレージシステム104に接続されている。管理計算機102は、例えば、所定の通信線15(又はLAN(Local Area Network)のような通信ネットワーク)を通じてストレージシステム104に接続されている。
 ホスト計算機101は、ストレージシステム104に対してライト要求を送信することで、ストレージシステム104にデータをライトする。ホスト計算機101は、ストレージシステム104に対してリード要求を送信することで、ストレージシステム104からデータをリードする。ホスト計算機101は、I/O要求(ライト要求又はリード要求)の発行元の一例でよい。I/O要求の発行元としては、例えば、上述のサーバVM及びストレージVMを実行するストレージシステムにおいてはサーバVMでもよい。
 管理計算機102は、ユーザがストレージシステム104を管理及び制御ための装置である。管理計算機102は、キーボード及びマウスのような入力デバイスと、表示デバイスのような出力デバイスを備えてもよい。
 ストレージシステム104は、ストレージコントローラ111と、ドライブボックス112とを備える。ドライブボックス112は、複数のFMPK131を備える。
 ストレージコントローラ111は、H-I/F(インターフェース)121と、プロセッサ123と、メモリ124と、D-I/F122、M-I/F125とを備え、それら要素121~125は、データ送受信が可能な内部ネットワーク126で接続されている。H-I/F121、D-I/F122、M-I/F125が、インターフェース部の一例である。メモリ124が、記憶部の一例である。プロセッサ123が、プロセッサ部の一例である。
 H-I/F121は、ストレージコントローラ111にホスト計算機101を接続するためのI/Fである。M-I/F125は、ストレージコントローラ111に管理計算機102を接続するためのI/Fである。D-I/F126は、ストレージコントローラ111にFMPK131を接続するためのI/Fである。
 プロセッサ123は、コンピュータプログラム(以下、プログラム)等を実行する。プロセッサがプログラムを実行することにより、ストレージシステム104の備える様々な機能が実現される。
 メモリ124は、データを記憶する。メモリ124は、例えば、DRAM(Dynamic Random Access Memory)のような揮発性半導体メモリであるが、フラッシュメモリのような不揮発性半導体メモリでもよい。メモリ124に記憶されたプログラム及びデータは、プロセッサ123、H-I/F121及びD-I/F122等からアクセスされる。
 図3は、FMPK131の構成を示す。
 FMPK131は、FM220と、FM220に接続されたFMPKコントローラ50とを備える。FM220は、複数のFM(フラッシュメモリ)チップ202で構成されている。
 FMPKコントローラ50は、プロセッサ214と、メモリ212と、FMPK I/F211と、FMチップI/F213とを有する。これらの要素211~214は、データ送受信可能な内部ネットワーク215で接続されており、双方向にデータを送受信できる。なお、以下、特に、内部ネットワーク215にメモリ212を接続するバス58を、「キャッシュバス58」と呼ぶことにする。
 プロセッサ214は、プログラム等を実行する。プロセッサ214がプログラムを実行することにより、FMPK131の備える様々な機能が実現される。
 メモリ212は、データを記憶する。メモリは、例えば、DRAMのような揮発性半導体メモリであるが、フラッシュメモリのような不揮発性半導体メモリでもよい。メモリ212に記憶されたプログラム及びデータは、プロセッサ214、FMPK I/F211及びFMチップI/F213等からアクセスされる。
 FMPK I/F211は、FMPK131をストレージコントローラ111に接続するためのI/Fである。FMチップI/F213は、FMPKコントローラ50(プロセッサ)にFMチップ202を接続するためのI/Fである。なお、以下、特に、FMチップI/F213にFMチップ202を接続するバス59を、「FMバス59」と呼ぶことにする。
 上述した要素211~215、58及び59が、それぞれ、複数のFMリソースである。
 図4は、FMチップ202の構成を示す。
 FMチップ202は、例えばNAND型のFMチップであり、FMコントローラ301と、複数のブロック(物理ブロック)302とを有する。そして、ブロック302は、複数のページ(物理ページ)303で構成されている。FMチップ202は、その特性上、ページ単位でデータのリードおよびライトを行う必要がある。そして、FMチップ202は、その特性上、ブロック単位でデータの消去を行う必要がある。
 また、FMチップ202は、追記型、すなわち、ライト済みのページ303に対してデータをオーバーライトすることができない。従って、FMPKコントローラ50は、ライト済みページ303の物理アドレスが割り当てられている論理アドレスをライト先としたライトコマンドを受信した場合、そのライトコマンドに従う更新データ(オーバーライトのデータ)を未使用のページ303にライトし、そのページ303の物理アドレスを、ライト済みページ303の物理アドレスに代えて、ライト先の論理アドレスに割り当てる。
 FMPK131の上位システムは、本実施例ではストレージコントローラ111であるが、限定されないでよい。すなわち、上位システムは、ストレージシステムにおいて、FMPK131が外部付けされた計算機であってもよいし、FMPK131を内蔵した計算機内のプロセッサであってもよい。
 FMPKコントローラ50は、論理記憶空間(例えば、連続した論理アドレス空間)を上位システムに提供する。論理記憶空間は、複数の論理領域に区切られてよい。例えば、論理記憶空間が、複数の論理ブロックで構成され、各論理ブロックが、複数の論理ページで構成されていてもよい。論理ブロック又は論理ページが論理領域の一例でよい。論理領域は、論理アドレス範囲(例えば、連続した1以上の論理アドレス)と言い換えられてもよい。FMPKコントローラ50は、論理アドレスと物理アドレスの対応関係を管理している。FMPKコントローラ50は、上位システムからのI/Oコマンドで指定されている論理アドレスに対応した物理アドレスが属する物理領域を特定し、特定した物理領域に対してI/Oを行う。論理アドレスは、例えば、LBA(Logical Block Address)であるが、LBAに代えて又は加えて、論理領域ID(例えば論理ページ番号)でよい。物理アドレスは、例えば、PBA(Physical Block Address)であるが、PBAに代えて又は加えて、物理領域ID(例えば物理ページ番号)でよい。ユーザ領域801U内のページ303が割り当てられている論理領域がライト先の場合、ライト先論理領域に、割当て済のページ303に代えて新たに更新領域801P内の空きページ303が割り当てられ、新たに割り当てられたページ303に更新データが書き込まれる。各論理領域について、最近割り当てられたページ303に書き込まれているデータ(つまり最新のデータ)は「有効データ」であり、有効データが書き込まれているページ303は「有効ページ」であり、過去に割り当てられていたページ303に格納されているデータは「無効データ」であり、無効データが書き込まれているページ303は「無効ページ」である。また、有効ページでも無効ページでも無く新たにデータを格納可能なページが、「空きページ」である。
 また、FM220に代えて、FM以外の不揮発メモリ、例えばPRAM(Phase-change Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistive Random Access Memory)又はFeRAM(Ferroelectric Random Access Memory)が採用されてもよい。
 図5は、ストレージコントローラ111のメモリ124の構成を示す。
 メモリ124は、プログラム領域401、テーブル領域402及びデータキャッシュ領域403を有する。
 プログラム領域401は、プログラム、例えば、ストレージコントローラ111の動作を制御するストレージ制御プログラム411を格納する。プログラムは、プロセッサ123により実行される。例えば、ストレージ制御プログラム411は、ホスト計算機101からのライト要求に従って、FMPK131にデータをライトする処理を実行する。また、例えば、ストレージ制御プログラム411は、ホスト計算機101からのリード要求に従って、FMPK131からデータをリードして、ホスト計算機101に返す処理を実行する。
 テーブル領域402は、テーブル、例えば、ドライブ管理テーブル421と、プール管理テーブル422と、仮想ボリューム管理テーブル423と、PG管理テーブル424と、ドライブ個別管理テーブル425と、拡張/縮小判定テーブル426とを格納する。これらのテーブルについては後に詳述する。
 データキャッシュ領域403は、ユーザデータ431を一時的に格納する。ユーザデータ431は、I/O要求に従うデータ(具体的には、ライト対象又はリード対象のデータ)である。
 図6は、ストレージコントローラ111のテーブル領域402に格納されるテーブルの構成を示す。図6に示すように、拡張/縮小判定テーブル426の構成は、図18に示す。
 ドライブ管理テーブル421は、ドライブ(本実施例ではFMPK131)に関する情報を保持する。ドライブ管理テーブル421は、ドライブ毎にエントリを有する。各エントリは、ドライブ番号501、ドライブ種別502及び物理容量503といった情報を保持する。ドライブ番号501は、ドライブの識別番号である。ドライブ種別502は、ドライブの種別を示す。物理容量503は、ドライブの物理容量を示す。
 プール管理テーブル422は、プールに関する情報を保持する。プール管理テーブル422は、プール毎にエントリを有する。各エントリは、プール番号511及びPG番号512といった情報を保持する。プール番号511は、プールの識別番号である。PG番号512は、プールにおけるプールボリュームを提供するPGの識別番号である。なお、本実施例では、プールは、PG810のPGユーザ領域に基づく論理ボリュームで構成された記憶空間である。プールを構成する論理ボリュームを「プールボリューム」と呼ぶ。プール(プールボリューム)は、複数のセグメント(以下、物理セグメント)に分割されている。仮想ボリューム(例えば、Thin Provisioningに従う仮想的な論理ボリューム)におけるライト先仮想セグメントに、その仮想ボリュームが関連付けられているプールから、物理セグメントが割り当てられる。
 PG管理テーブル424は、PGに関する情報を保持する。PG管理テーブル424は、PG毎にエントリを有する。各エントリは、PG番号521、RAIDレベル522、RAID構成523、ドライブリスト524、ポリシー525、OP率526及びPG容量527といった情報を保持する。PG番号521は、PGの識別番号である。RAIDレベル522は、RAIDレベルを示す。RAID構成523は、RAID構成を示す。RAIDレベル及びRAID構成によりRAID種別が定義されている。ドライブリスト524は、PGを構成するドライブの識別番号のリストである。ポリシー525は、PGに関連付けられているポリシーを示す。ポリシーとしては、容量優先と性能優先とがある。各ポリシーについては後述する。OP率526は、PGについて採用されているOP率を示す。PG容量527は、PGを構成する複数のFMPK131にそれぞれ対応した複数の物理容量の合計である。PG容量527とOP率526から、PGユーザ領域の容量が算出される。
 ドライブ個別管理テーブル425は、ドライブ毎に存在する。ドライブ個別管理テーブル425は、ドライブ領域毎に、ドライブ番号531、LBA(Logical Block Address)532及びレングス533といった情報を保持する。ドライブ番号531は、ドライブ領域を有するドライブの識別番号である。LBA532は、ドライブ領域の先頭のLBAを示す。レングス533は、ドライブ領域のサイズを示す。
 仮想ボリューム管理テーブル423は、仮想ボリュームに関する情報を保持する。仮想ボリューム管理テーブル423は、仮想ボリューム毎にエントリを有する。各エントリは、ボリューム番号541、プール番号542及び容量543といった情報を保持する。ボリューム番号541は、仮想ボリュームの識別番号である。プール番号542は、仮想ボリュームに関連付けられているプールの識別番号である。容量543は、仮想ボリュームの容量を示す。
 拡張/縮小判定テーブル426は、図18に示すように、FMリソース使用率と、非同期処理性能と、後述の拡張/縮小可否判定の結果との関係を示す。つまり、本実施例では、OP率の変更は、FMリソース使用率の他に、非同期処理性能に基づく。OP率(更新容量の大きさ)は、非同期処理の発生頻度に影響する。このため、OP率の変更を、FMリソース使用率の他に、非同期処理性能を基に、行うことで、ストレージシステム104の稼働中に最適なOP率を維持することが一層期待できる。なお、ライト処理(ライトコマンドに応答して行われる処理)の性能と、非同期処理の性能との関係の一例は、図19に示す通りである。すなわち、FMPK131の性能に余裕があれば(ライト処理性能と非同期処理性能の合計と、FMPKの限界性能との差が十分にあれば)、非同期処理の性能(負荷)が高くなってもライト処理の性能は下がらない。しかし、FMPK131の性能に余裕が無ければ、非同期処理の性能が高くなると、ライト処理の性能が下がる。
 FMリソース使用率範囲(以下、使用率範囲)として、N個の使用率範囲があり、非同期処理性能範囲(以下、性能範囲)として、M個の性能範囲がある。N及びMは、いずれも2以上の整数であればよく、且つ、NとMは同じ値でも異なる値でもよい。本実施例では、N=3及びM=3である。
 使用率範囲として、第1の使用率範囲(使用率X未満(Xは例えば10%))、第2の使用率範囲(使用率X以上使用率Y未満(Yは例えば50%))及び第3の使用率範囲(使用率Y以上)がある。使用率範囲は、複数種類のFMリソース使用率(メモリ723~キャッシュ帯域727)のうち最も高い(最も悪い)FMリソース使用率と比較される。最も高い(最も悪い)FMリソース使用率が、FMPK131においてネックと考えられ、そのようなFMリソース使用率が参酌されるので、PG単位のOP率を最適値にする可能性を高めることができる。
 性能範囲として、第1の性能範囲(性能A未満)、第2の性能範囲(性能A以上性能B未満)及び第3の性能範囲(性能B以上)がある。なお、図示のH、M及びLは、高、中及び低をそれぞれ意味する。
 図18によれば、FMリソース使用率が低く、且つ、非同期処理性能が低いと、拡張/縮小可否判定の結果は、「拡張可」となる傾向である。すなわち、FMリソース使用率及び非同期処理性能のいずれについても余裕がある場合、ユーザ領域が大きくなれば、ビットコストの一層の低減が期待され、且つ、非同期処理の発生頻度が高くなっても差し支えないことが期待される。一方、FMリソース使用率が高く、且つ、非同期処理性能が低いと、拡張/縮小可否判定の結果は、「縮小可」となる傾向である。すなわち、FMリソース使用率及び非同期処理性能のいずれについても余裕が無い場合、更新領域が大きくなれば、非同期処理の発生頻度の低下が期待される。具体的には、FMリソース使用率が使用率X(第1の使用率の一例)未満、且つ、非同期処理性能が性能A(第1の処理性能の一例)未満の場合、拡張/縮小判定の結果は、拡張可である。一方、FMリソース使用率が使用率Y(第2の使用率の一例)以上、且つ、非同期処理性能が性能B(第2の処理性能の一例)以上の場合、拡張/縮小判定の結果は、縮小可である。
 なお、判定結果として、「拡張可」及び「縮小可」の他に、「不可」(拡張及び縮小のいずれも不可)がある。
 また、少なくとも1つの性能範囲の境界値、すなわち、性能A及びBのうちの少なくとも1つは、ポリシー、すなわち、容量優先と性能優先とのいずれが採用されているかによって異なる。「容量優先」とは、ライト処理の性能が高いことよりもユーザ容量が大きいことを優先することである。「性能優先」とは、ユーザ容量が大きいことよりもライト処理の性能が高いことを優先することである。性能A及びBのうちの少なくとも1つは、容量優先が採用されている場合、性能優先が採用されている場合に比して高い。このため、非同期処理性能が同じであっても、ポリシーによって、拡張/縮小可否判定の結果が異なり得る。例えば、非同期処理性能が30KIOPSの場合、性能優先では、縮退可が得られ(すなわち、非同期処理性能を下げることでライト処理性能の向上が優先され)、容量優先では、拡張可が得られる(すなわち、非同期処理性能が高くなってもユーザ容量が大きいことが優先される)。
 図7は、FMPKコントローラ50のメモリ212の構成を示す。
 メモリ212は、プログラム領域601、テーブル領域602及びデータキャッシュ領域603を有する。
 プログラム領域601は、プログラム、例えば、FMPKコントローラ50の動作を制御するFMPK制御プログラム611を格納する。プログラムは、プロセッサ214により実行される。例えば、FMPK制御プログラム611は、ストレージコントローラ111からのライトコマンドに応答して、論理物理変換テーブル621を基にライト先の物理ページを特定し、特定したライト先物理ページを有するFMチップ202にデータをライトする。また、例えば、FMPK制御プログラム611は、ストレージコントローラ111からのリードコマンドに応答して、論理物理変換テーブル621を基にリード元の物理ページを特定し、特定したリード元物理ページを有するFMチップ202からデータをリードする。
 テーブル領域602は、テーブル、例えば、論理物理変換テーブル621、FMリソース管理テーブル622、ページ管理テーブル623、OP率管理テーブル624及び非同期性能管理テーブル625を格納する。これらのテーブルについては後に詳述する。
 データキャッシュ領域603は、ユーザデータ631を一時的に格納する。ユーザデータ631は、ストレージコントローラ111からのI/Oコマンドに従うデータ(ライト対象又はリード対象のデータ)である。
 図8は、FMPKコントローラ50のテーブル領域602に格納されるテーブルの構成を示す。なお、図8の説明では、図8に示すテーブル領域602を有するFMPK131を「対象FMPK131」と呼ぶことにする。
 OP率管理テーブル624は、対象FMPK131のOP率に関する情報、具体的には、OP率701及びユーザ容量702を保持する。OP率701は、決定されたOP率を示す。ユーザ容量702は、対象FMPK131のユーザ容量を示す。ユーザ容量702は、対象FMPK131の物理容量及びOP率に基づき算出される。
 FMリソース管理テーブル622は、対象FMPK131のFMリソース使用率に関する情報を保持する。FMリソース管理テーブル622は、期間毎にエントリを有する。各エントリは、ID721、時刻722、メモリ723、CPU724、バス帯域725、キャッシュ使用率726及びキャッシュ帯域727といった情報を保持する。ID721は、期間のIDである。時刻722は、期間の開始時刻を表す。メモリ723は、期間において特定されたメモリ使用率(メモリ212の使用率)を示す。CPU724は、期間において特定されたプロセッサ使用率(プロセッサ214の使用率)を示す。バス帯域725は、期間において特定されたバス帯域(FMバス59の帯域)を示す。キャッシュ使用率726は、期間において特定されたキャッシュ使用率(データキャッシュ領域403の使用率)を示す。キャッシュ帯域727は、期間において特定されたキャッシュ帯域(キャッシュバス58の帯域)を示す。期間は、一定期間(例えば30分)である。メモリ723~キャッシュ帯域727の各々は、FMリソース率の一例である。同一期間中に、同一種類のFMリソース率が複数回特定された場合、テーブル622に登録される値は、特定されたFMリソース率のうちの少なくとも1つに従う値、例えば、平均値、又は、最も高い(最も悪い)FMリソース率である。また、テーブル624に登録されるFMリソース使用率は1種類でもよい。
 非同期性能管理テーブル625は、対象FMPK131の非同期処理の性能(例えば、単位時間当たりのI/O数、又は、単位時間当たりのデータ転送サイズ)に関する情報を保持する。非同期性能管理テーブル625は、期間毎にエントリを有する。各エントリは、ID711、時刻712、リクラメーション713及びリフレッシュ714といった情報を保持する。ID711は、期間のIDである。時刻712は、期間の開始時刻を表す。リクラメーション713は、期間において特定されたリクラメーション処理性能を示す。リフレッシュ714は、期間において特定されたリフレッシュ処理の性能を示す。リクラメーション処理及びリフレッシュ処理は、それぞれ、非同期処理の一例である。同一期間中に、同一種類の非同期処理性能が複数回特定された場合、テーブル625に登録される値は、特定された非同期処理性能のうちの少なくとも1つに従う値、例えば、平均値、最も低い(最も悪い)性能、又は、最も高い(最も良い)性能である。
 なお、「非同期処理」とは、更新データのようなデータをライト対象としたライトコマンドに応答してFMPK131により行われるライト処理とは非同期にFMPK131により行われる処理であって、典型的には、リクラメーション処理及びリフレッシュ処理のように、FM220に対するデータのライトが発生する処理である。
 「リクラメーション処理」とは、1以上の物理ブロックの各々から有効データを読み出し、読み出したデータを物理ブロック(例えば、移動元の物理ブロックよりも消去回数の少ない物理ブロック)へ移動し、移動元物理ブロックに対して消去処理を実行する処理である。リクラメーション処理により、空きの物理ブロックを増やすことができる。
 また、「リフレッシュ処理」とは、物理ブロックからデータ(特に有効データ)を読み出してエラー訂正し、エラー訂正したデータを別の物理ブロック(例えば、移動元の物理ブロックよりもPE回数の少ない物理ブロック)へ移動する処理である。リフレッシュ処理により、移動元物理ブロックが割り当てられていた論理領域(例えば論理ブロック)には、移動元物理ブロックに代えて移動先物理ブロックが割り当てられる。
 論理物理変換テーブル621は、論理アドレスと物理アドレスの対応関係に関する情報を保持する。論理物理変換テーブル621は、論理ページ(論理領域の一例)毎にエントリを有する。各エントリは、論理ページ番号731、LBA732、論理ページサイズ733、ステータス734、物理ページ番号735及びブロック番号736といった情報を保持する。論理ページ番号731は、論理ページの識別番号である。LBA732は、論理ページの先頭LBAを示す。論理ページサイズ733は、論理ページのサイズを示す。ステータス734は、論理ページのステータスを示す。例えば、ステータス734としては、“有効”(ユーザ領域に基づく論理ページであってその論理ページがプールの一部として割り当てられている)、“無効”(ユーザ領域に基づく論理ページであるがその論理ページがプールの一部として割り当てられていない)、及び、“使用不可”(更新領域に基づく論理ページ)がある。物理ページ番号735は、論理ページに割り当てられた物理ページの識別番号である。ブロック番号736は、論理ページに割り当てられた物理ページを含む物理ブロックの識別番号である。
 ページ管理テーブル623は、物理ページに関する情報を保持する。ページ管理テーブル623は、物理ページ毎にエントリを有する。各エントリは、物理ページ番号741及びステータス742といった情報を保持する。物理ページ番号741は、物理ページの識別番号である。ステータス742は、物理ページのステータスを示す。
 以下、本実施例で行われる処理を説明する。
 図9は、ライト要求に応答して行われる処理の流れを示す。図10は、ライトコマンドを受けるFMPK131が行う処理の流れを示す。
 ストレージコントローラ111が、ホスト計算機101からライト要求を受信する(S900)。ストレージコントローラ111(ストレージ制御プログラム411)が、そのライト要求に基づき、ライトコマンドを、PG810における少なくとも1つのFMPK131に送信する。以下、図9及び図10の説明において、1つのFMPK131を例に取る。図9及び図10の説明において、そのFMPK131を「対象FMPK131」と呼ぶ。
 対象FMPK131のFMPKコントローラ50(プロセッサ214)が、ライトコマンドを受信する(S901)。プロセッサ214(FMPK制御プログラム611)は、そのライトコマンドに従い、そのライトコマンドに従うライト対象のデータをFM220に書き込む(S902)。
 FMPK制御プログラム611は、対象FMPK131の複数種類のFMリソース使用率(メモリ723~キャッシュ帯域727)をFMリソース管理テーブル622から取得する(S903)。なお、複数種類のFMリソース使用率は、それぞれ、定期的に計測されてFMリソース管理テーブル622に登録されてもよいし、このS903において計測されてもよい。
 FMPK制御プログラム611は、非同期処理の要否を判定する(S904)。ライトコマンドに応答して行われる処理に関し、非同期処理は、典型的には、リクラメーション処理である。例えば、物理ブロック総数に対する空きブロック数が閾値未満の場合(つまり空きブロックが少ない場合)、リクラメーション処理が要と判定される。
 S904の判定結果が真の場合(S904:Y)、FMPK制御プログラム611は、非同期処理を実行する(S905)。そして、FMPK制御プログラム611は、その非同期処理に伴う変更後のFMリソース率をFMリソース管理テーブル622に登録する(S906)。
 FMPK制御プログラム611は、対象FMPK131に障害が生じたか否かを判定する(S907)。ここで言う「障害」とは、対象FMPK131のユーザ容量のうちの空き容量が所定の容量未満になった(例えば、ユーザ領域801Uを構成する論理ページの総数に対し、論理ページ“無効”の数の比率が所定の値未満になった)、又は、対象FMPK131のライト処理の性能が所定の性能未満になった、である。
 S907の判定結果が真の場合(S907:Y)、FMPK制御プログラム611は、アラートを発行する(S908)。
 以上が、ライト要求に応答して行われる処理である。なお、この処理において、FM220に対するライトに対して応答950が返り、ライトコマンドに対する応答960が返り、ライト要求に対する応答970が返る。
 各FMPK131は、定期的に、非同期処理要否を判定してもよい。例えば、ストレージコントローラ111は、定期的に、定期処理コマンドを、FMPK131に送信してもよい。
 図11は、定期処理コマンドを受けるFMPK131が行う処理の流れを示す。図11の説明では、そのFMPK131を「対象FMPK131」と呼ぶ。
 FMPKコントローラ50(プロセッサ214)が、定期処理コマンドを受信する(S1101)。
 プロセッサ214(FMPK制御プログラム611)は、対象FMPK131の複数種類のFMリソース使用率(メモリ723~キャッシュ帯域727)をFMリソース管理テーブル622から取得する(S1102)。
 FMPK制御プログラム611は、非同期処理の要否を判定する(S1103)。ここでの非同期処理は、リクラメーション処理に限られない。
 S1103の判定結果が真の場合(S1103:Y)、FMPK制御プログラム611は、非同期処理を実行する(S1104)。そして、FMPK制御プログラム611は、その非同期処理に伴う変更後のFMリソース率をFMリソース管理テーブル622に登録する(S1105)。
 FMPK制御プログラム611は、対象FMPK131に上述の障害が生じたか否かを判定する(S1106)。
 S1106の判定結果が真の場合(S1106:Y)、FMPK制御プログラム611は、アラートを発行する(S1107)。
 図12は、ストレージコントローラ111がアラートを受けたことに応答して行われる処理の流れを示す。図13は、拡張/縮小判定を含む処理の流れを示す。ユーザ容量枯渇又は性能低下によるアラートが生じたことを契機にユーザ容量の拡張又は縮小が行われるので、ユーザ容量を最適にすることが、アラートの原因を解消することにもなる。
 プロセッサ123(ストレージ制御プログラム411)は、FMPK131からアラートを受けた場合、そのFMPK131を含んだPG810を、PG管理テーブル424を基に特定し、その特定したPG810について、ユーザ容量の拡張又は縮小を実行するか否かの判定である拡張/縮小判定を実行する(S1201)。
 S1201の判定結果が真の場合(S1201:Y)、ストレージ制御プログラム411は、その特定したPG810について、ユーザ容量の拡張又は縮小を実行する(S1202)。
 以下、図12及び図14を参照して、拡張/縮小判定の詳細を説明する。なお、アラートの発行元のFMPK131を含んだPG810を、以下、「対象PG810」と呼ぶ。
 ストレージ制御プログラム411は、対象PG810のうち、S1201-1及びS1201-2が未だされていないいずれかのFMPK131を選択する。ここで選択されたFMPK131を、「選択FMPK131」と呼ぶ。
 ストレージ制御プログラム411は、選択FMPK131からFMリソース使用率及び非同期処理性能を特定する(S1201-1)。具体的には、ストレージ制御プログラム411は、選択FMPK131に対し、取得コマンドを送信する。選択FMPK131のプロセッサ214(FMPK制御プログラム611)は、その取得コマンドに応答して、FMリソース管理テーブル622から複数種類のFMリソース使用率(メモリ723~キャッシュ帯域727)を取得し、且つ、非同期性能管理テーブル625から最新の非同期処理性能(リクラメーション713及びリフレッシュ714)を取得し(S1201-1-1)、取得したFMリソース使用率及び非同期処理性能を含んだ応答(取得コマンドに対する応答)を、ストレージコントローラ111に返す。
 ストレージ制御プログラム411は、選択FMPK131の最高FMリソース使用率及び最高非同期処理性能に対応した結果を、拡張/縮小判定テーブル426から特定する(S1201-2)。
 結果が「不可」の場合、ストレージ制御プログラム411は、対象PG810について、S1201の判定結果を偽(S1201:N)とする。
 結果が「拡張可」又は「縮小可」の場合、ストレージ制御プログラム411は、対象PG810に、S1201-1及びS1201-2が未だされていないFMPK131があれば、そのFMPK131について、S1201-1及びS1201-2を実行する。
 結果が「拡張可」又は「縮小可」の場合、ストレージ制御プログラム411は、対象PG810に、S1201-1及びS1201-2が未だされていないFMPK131が無ければ、対象PG810の全てのFMPK131について、同じ結果が得られたか(すなわち、全て「拡張可」であるか、又は、全て「縮小可」であるか)を、判定する(S1201-3)。S1201-3の判定結果が真の場合(S1201-3:Y)、S1201の判定結果が真(S1201:Y)となる。S1201-3の判定結果が偽の場合(S1201-3:N)、S1201の判定結果が偽(S1201:N)となる。これにより、対象PG810について、PG単位での拡張又は縮小を行うことができる。なお、ストレージ制御プログラム411は、対象PG810について、異なる結果が得られ次第、S1201の判定結果をS1201:Nとしてもよい。
 以下、図12及び図15を参照して、S1202に関してストレージコントローラ111が行う処理の詳細を説明する。
 対象PG810を構成する各FMPK131について、S1202-1が実行される。すなわち、S1201の判定結果が、「拡張可」の場合、ストレージ制御プログラム411は、対象PG810を構成する各FMPK131に、拡張コマンドを送信する。一方、S1201の判定結果が、「縮小可」の場合、ストレージ制御プログラム411は、対象PG810を構成する各FMPK131に、縮小コマンドを送信する。
 その後、S1202-2が実行される。すなわち、ストレージ制御プログラム411は、対象PG810について、拡張コマンド又は縮小コマンドに従う変更後のOP率を、OP率526として、PG管理テーブル424に登録する。なお、本実施例では、拡張コマンドに従うOP率変化量、及び、縮小コマンドに従うOP率変化量は、一定である。但し、拡張コマンドに従うOP率変化量と、縮小コマンドに従うOP率変化量は、同じであっても異なっていてもよい。
 なお、OP率変化量に代えて、ユーザ容量変化量が、一定でもよい。また、ユーザ容量変化量に関し、拡張の際の変化量と、縮小の際の変化量は、同じであっても異なっていてもよい。
 また、いずれかのFMPK131からアラートが発生したときに代えて、例えば定期的に、S1201が実行されてもよい。
 以上のように、アラートが発生する都度に、又は、定期的に、拡張/縮小可否判定が実行されて、判定結果に応じて、PG単位でOP率が変更される。つまり、ストレージシステム104の稼働中にFMリソース使用率と非同期処理性能とに基づくOP率変更が繰り返されることになる。結果として、ストレージシステム104の稼働中に最適なOP率を維持することが期待できる。
 図16は、拡張に関してFMPK131が行う処理の流れを示す。
 FMPK131(FMPK制御プログラム611)が、拡張コマンドを受信し(S1201-1-A1)、ユーザ容量を拡張する(S1201-1-A2)。具体的には、例えば、FMPK制御プログラム611は、更新領域からOP率変化量分の空き領域(1以上の空きブロック(空きページの集合としてブロック))を確保する。なお、OP率変化量分の空き領域が無い場合、リクラメーション処理により、空きブロックが増やされてよい。
 その後、FMPK制御プログラム611が、OP率変化量分の論理ページの各々のステータス734を、“使用不可”から“無効”に変更し、且つ、OP率701を、拡張後のOP率に変更する(S1201-1-A3)。FMPK制御プログラム611は、拡張コマンドに対する完了応答をストレージコントローラ111に返す。
 図17は、縮小に関してFMPK131が行う処理の流れを示す。
 FMPK131(FMPK制御プログラム611)が、縮小コマンドを受信し(S1201-1-B1)、OP率変化量分の論理ページの各々のステータス734を、“無効”から“使用不可”に変更し、OP率701を、縮小後のOP率に変更する(S1201-1-B2)。FMPK制御プログラム611は、縮小コマンドに対する完了応答をストレージコントローラ111に返す。縮小は、ユーザ領域に空き領域があるために可能なので、ユーザ領域からOP率変化量分の空き領域の確保は不要である。
 以上が、実施例1の説明である。
 なお、本実施例では、図20に例示する設定画面2000(例えばGUI(Graphical User Interface))経由で、種々の設定が行われてもよい。画面2000は、例えば、管理計算機102に表示されてよい。画面2000は、例えば、PG指定UI(ユーザインターフェース)2003と、ユーザ容量変更設定UI2004と、ポリシー設定UI2005と、設定変更ボタン2001と、OP率手動変更ボタン2002とを有する。PG指定UI2003により、設定が関連付けられるPGを指定することができる。ユーザ容量変更設定UI2004により、ユーザ容量の変更(OP率の変更)の有無や、その変更を自動で行うか手動で行うかを指定することができる。ポリシー設定UI2005により、性能優先と容量優先のいずれを採用するのかを指定することができる。設定変更ボタン2001が押された場合に、UI2003、2004及び2005経由での指定(設定)が、テーブル424に反映される(テーブル424には、OP率変更が有効か否か(自動か手動か)を表すカラムが設けられていてもよい)。OP率手動変更ボタン2002が押された場合に、手動で、OP率が変更される。
 また、本実施例では、図21に例示する予測画面2100(例えばGUI)が、例えばストレージ制御プログラム411により表示されてもよい。例えば、ストレージ制御プログラム411は、アラート発行元のFMPK131について、最高FMリソース使用率(FMリソース使用率の種別も含む)とOP率(ユーザ容量)とを含む現在状況2014と、OP率を変更(拡張又は縮小)したと仮定した場合のFMリソース使用率とOP率(ユーザ容量)とを含む予測状況2015とを画面2100に表示してよい。画面2100は、OP率変更ボタン2101とキャンセルボタン2102とを有する。OP率変更ボタン2101が押された場合、ストレージ制御プログラム411が、アラート発行元のFMPK131を含むPG810について、OP率変更を実行してもよい。これにより、OP率変更後の予測状況を確認した上で、OP率を変更することを決定することができる。なお、キャンセルボタン2102が押された場合、ストレージ制御プログラム411が、アラート発行元のFMPK131を含むPG810について、OP率変更をスキップしてよい。
 また、本実施例では、ストレージシステム104の稼働中、ユーザ容量が変わるが、ホスト計算機101からは、ユーザ容量の変更は見えない。なぜなら、ホスト計算機101に提供されているボリュームは、仮想ボリュームであり、プールの容量が変わるものの、仮想ボリュームそれ自体の容量は変更しないためである。
 実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。
 本実施例では、ユーザ容量の変更量は可変である。例えば、ストレージ制御プログラム411及びFMPK制御プログラム611のうちのいずれかが、FMリソース使用率と非同期処理性能とに基づいて、ユーザ容量の変更量を決定する。具体的には、例えば、ストレージ制御プログラム411及びFMPK制御プログラム611のうちのいずれかが、FMPK131毎に、そのFMPK131の最高FMリソース使用率と最高非同期処理性能とを基に、ユーザ容量の最大変更量を決定する。PG810について、ストレージ制御プログラム411が、PG810を構成する複数のFMPK131にそれぞれ対応した複数の最大変更量に基づく最大変更量(例えば、複数の最大変更量のうちの最小値)を決定する。ストレージ制御プログラム411が、決定した最大変更量から所定のマージンを削減した変更量を、ユーザ容量の変更量として決定する。
 実施例2によれば、ユーザ容量の変更量は、固定値ではなく、FMリソース使用率と非同期処理性能とに従う最大変更量がベースとなる。これにより、OP率を最適値とするまでの時間を短縮することが期待できる。
 また、実施例2によれば、ユーザ容量の変化量は、最大変更量から所定のマージンが削減された量である。これにより、ストレージシステム104の性能に悪影響が生じる可能性を軽減することができる。
 以下、拡張を例に取り、実施例2の一例を、図22を参照して、説明する。図22の左側が、ユーザ容量遷移を示し、図22の右側が、その遷移に伴う性能遷移を示す。
 非同期処理性能が低く、且つ、FMリソース使用率も低い場合、ライト処理性能と非同期処理性能の合計とFMPKの限界性能との差が十分にある。この場合、FMリソース使用率と非同期処理性能とに従う最大拡張量は、比較的大きい。ストレージ制御プログラム411(又はFMPK制御プログラム611)が、その最大拡張量から所定のマージンを削減した量Pを、拡張量として決定する。ユーザ容量を拡張量P分拡張すると、拡張量P分更新容量が減るため、非同期処理の発生頻度が増え、結果として、非同期処理性能が性能R分増える。
 非同期処理性能が増え、FMリソース使用率が高くなった場合、FMリソース使用率と非同期処理性能とに従う最大拡張量として、ストレージ制御プログラム411(又はFMPK制御プログラム611)は、非同期処理性能が低く、且つ、FMリソース使用率も低い場合の最大拡張量に比べて小さい量を決定する。そして、ストレージ制御プログラム411は、その決定した最大拡張量から所定のマージンを削減した量Qを、拡張量として決定する(マージンは、固定サイズでよいが、最大拡張量と同様、可変でもよい)。ユーザ容量を更に拡張量Q分拡張すると、拡張量Q分更新容量が減るため、非同期処理の発生頻度が更に増え、結果として、非同期処理性能が更に性能S分増える。
 このようにして、ライト処理性能の低下を避けながら、ユーザ容量をできるだけ拡張していくことができるが、ユーザ容量の変更量を、FMリソース使用率と非同期処理性能とに従う可変量とすることで、最適なユーザ容量とすること(最適なOP率とすること)を、実施例1よりも短い時間で実現することが、期待できる。
 以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、PGが採用されないストレージシステムにおいては、FMPKが、拡張/縮小可否判定を実行してもよい。例えば、FMPK制御プログラムは、内部的にアラート発行し(アラートの発行先がFMPK制御プログラムであり)、そのアラートを受けて、拡張/縮小可否判定を実行してもよい。そして、FMPKのFMPK制御プログラムは、ユーザ容量を、そのFMPKの1以上のリソース使用率のうちの少なくとも1つに基づく決定に従うユーザ容量に変更することができる。「ユーザ容量を、そのFMPKの1以上のリソース使用率のうちの少なくとも1つに基づく決定に従うユーザ容量に変更する」とは、FMPKの上位システムからの変更コマンドに応答して行われることであってもよいし、FMPK制御プログラムが、そのFMPKの1以上のリソース使用率のうちの少なくとも1つに基づいて、ユーザ容量を変更することであってもよい。
104:ストレージシステム

Claims (14)

  1.  それぞれが、不揮発メモリと、複数種類のリソースを含む複数のリソースとを有する、1以上の不揮発メモリデバイスと、
     前記1以上の不揮発メモリデバイスに接続された1以上のプロセッサであるプロセッサ部と
    を有し、
     前記1以上の不揮発メモリデバイスの各々について、前記不揮発メモリのうちの少なくとも一部が、データが書き込まれる記憶領域であるユーザ領域と、そのデータの更新データが書き込まれる記憶領域である更新領域とで構成されており、
     前記プロセッサ部は、前記1以上の不揮発メモリデバイスの1以上のリソース使用率のうちの少なくとも1つに基づき、前記1以上の不揮発メモリデバイスの各々について、ユーザ領域の容量であるユーザ容量を変更する、
    ストレージシステム。
  2.  前記1以上の不揮発メモリデバイスの各々は、
      ライトコマンドに応答してそのライトコマンドに従うライト対象データをその不揮発メモリデバイスの不揮発メモリに書き込む処理であるライト処理と、
      前記ライト処理とは非同期に行われる処理である非同期処理と
    を実行するようになっており、
     前記1以上の不揮発メモリデバイスの各々について、ユーザ容量の変更は、更に、前記1以上の不揮発メモリデバイスの各々についての非同期処理性能に基づく、
    請求項1記載のストレージシステム。
  3.  前記1以上の不揮発メモリデバイスの少なくとも1つについて、その不揮発メモリデバイスと前記プロセッサ部とのうちのいずれかがが、その不揮発メモリデバイスのリソース使用率と、その不揮発メモリデバイスの非同期処理性能とに基づいて、その不揮発メモリデバイスのユーザ容量を拡張可、縮小可及び変更不可のいずれであるかの判定である拡張/縮小可否判定を実行し、
     前記1以上の不揮発メモリデバイスの各々について、ユーザ容量の変更は、前記1以上の不揮発メモリデバイスの少なくとも1つについての拡張/縮小判定の結果に基づいている、
    請求項2記載のストレージシステム。
  4.  前記1以上の不揮発メモリデバイスの少なくとも1つについて、
      その不揮発メモリデバイスのリソース使用率が第1の使用率未満、且つ、その不揮発メモリデバイスの非同期処理性能が第1の処理性能未満の場合、拡張/縮小判定の結果は、拡張可であり、
      その不揮発メモリデバイスのリソース使用率が第2の使用率以上、且つ、その不揮発メモリデバイスの非同期処理性能が第2の処理性能以上の場合、拡張/縮小判定の結果は、縮小可であり、
     前記第2の使用率は、前記第1の使用率以上であり、
     前記第2の処理性能は、前記第1の処理性能以上である、
    請求項3記載のストレージシステム。
  5.  前記1以上の不揮発メモリデバイスの少なくとも1つについて、前記第1及び前記第2の処理性能の各々は、前記ライト処理の性能が高いことよりも前記ユーザ容量が大きいことを優先することである容量優先というポリシーが採用されている場合、前記ユーザ容量が大きいことよりも前記ライト処理の性能が高いことを優先することである性能優先というポリシーが採用されている場合に比して、高い、
    請求項4記載のストレージシステム。
  6.  前記1以上の不揮発メモリデバイスは、パリティグループを構成する複数の不揮発メモリデバイスであり、
     前記複数の不揮発メモリデバイスの各々について、ユーザ容量の変更は、前記複数の不揮発メモリデバイスの拡張/縮小判定の結果が同じ場合に実行される、
    請求項3記載のストレージシステム。
  7.  前記1以上の不揮発メモリデバイスの少なくとも1つについて、その不揮発メモリデバイスのユーザ容量のうちの空き容量が所定の容量未満になった、又は、その不揮発メモリデバイスのライト処理の性能が所定の性能未満になった場合、その不揮発メモリデバイスと前記プロセッサ部とのうちのいずれかがが、前記拡張/縮小可否判定を実行する、
    請求項3記載のストレージシステム。
  8.  前記1以上の不揮発メモリデバイスの各々について、ユーザ容量の変更のために参酌されるリソース使用率は、その不揮発メモリデバイスの複数のリソース使用率のうち最も高いリソース使用率である、
    請求項1記載のストレージシステム。
  9.  前記1以上の不揮発メモリデバイスの各々について、ユーザ容量に関する変更量は一定である、
    請求項1記載のストレージシステム。
  10.  前記1以上の不揮発メモリデバイスの各々について、ユーザ容量に関する変更量は、リソース使用率と非同期処理性能とに従う最大変更量よりも所定のマージン量を削減した量である、
    請求項2記載のストレージシステム。
  11.  前記1以上の不揮発メモリデバイスの各々について、ユーザ容量の変更とは、OP(Over Provisioning)率の変更であり、
     前記1以上の不揮発メモリデバイスの各々について、OP率は、下記の(a)、(b)及び(c)のうちの少なくとも2つに基づいて決定された比率であって、ユーザ容量が大きい程に小さい値となる、
    (a)ユーザ容量、
    (b)更新領域の容量である更新容量、及び、
    (c)前記ユーザ領域と前記更新領域とで構成された記憶領域の容量である物理容量、
    請求項1記載のストレージシステム。
  12.  前記プロセッサ部は、前記1以上の不揮発メモリデバイスの少なくとも1つについて、リソース使用率とユーザ容量とを含む現在状況と、ユーザ容量を変更したと仮定した場合のリソース使用率とユーザ容量とを含む予測状況とを表す情報の表示を実行し、
     前記プロセッサ部は、その表示に対して変更の指示を受けた場合に、前記1以上の不揮発メモリデバイスの各々について、ユーザ容量を変更する、
    請求項1記載のストレージシステム。
  13.  それぞれが、不揮発メモリと、複数種類のリソースを含む複数のリソースとを有する、1以上の不揮発メモリデバイスの1以上のリソース使用率を取得し、
      前記1以上の不揮発メモリデバイスの各々について、前記不揮発メモリのうちの少なくとも一部が、データが書き込まれる記憶領域であるユーザ領域と、そのデータの更新データが書き込まれる記憶領域である更新領域とで構成されており、
     前記取得した1以上のリソース使用率のうちの少なくとも1つに基づき、前記1以上の不揮発メモリデバイスの各々について、ユーザ領域の容量であるユーザ容量を変更する、
    記憶制御方法。
  14.  不揮発メモリと、
     複数種類のリソースを含み、前記不揮発メモリに接続された複数のリソースと
    を有し、
     前記複数のリソースは、1以上のプロセッサを含むプロセッサ部を含み、
     前記不揮発メモリのうちの少なくとも一部が、データが書き込まれる記憶領域であるユーザ領域と、そのデータの更新データが書き込まれる記憶領域である更新領域とで構成されており、
     前記プロセッサ部は、前記ユーザ領域の容量であるユーザ容量を、1以上のリソース使用率のうちの少なくとも1つに基づく決定に従うユーザ容量に変更する、
    不揮発メモリデバイス。
PCT/JP2017/006034 2017-02-20 2017-02-20 ストレージシステム及び記憶制御方法 WO2018150561A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019500143A JP6681512B2 (ja) 2017-02-20 2017-02-20 ストレージシステム及び記憶制御方法
PCT/JP2017/006034 WO2018150561A1 (ja) 2017-02-20 2017-02-20 ストレージシステム及び記憶制御方法
US16/328,145 US10838855B2 (en) 2017-02-20 2017-02-20 Storage system and storage control method
CN201780071169.8A CN109964210B (zh) 2017-02-20 2017-02-20 存储系统和存储控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/006034 WO2018150561A1 (ja) 2017-02-20 2017-02-20 ストレージシステム及び記憶制御方法

Publications (1)

Publication Number Publication Date
WO2018150561A1 true WO2018150561A1 (ja) 2018-08-23

Family

ID=63170141

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/006034 WO2018150561A1 (ja) 2017-02-20 2017-02-20 ストレージシステム及び記憶制御方法

Country Status (4)

Country Link
US (1) US10838855B2 (ja)
JP (1) JP6681512B2 (ja)
CN (1) CN109964210B (ja)
WO (1) WO2018150561A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6878369B2 (ja) * 2018-09-03 2021-05-26 株式会社日立製作所 ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102900A (ja) * 2006-10-19 2008-05-01 Samsung Electronics Co Ltd メモリ装置内のアドレッシング可能な空間を再配置させる方法及び装置
JP2011505046A (ja) * 2007-11-28 2011-02-17 サンドフォース インコーポレイテッド メモリの寿命を延長するためにメモリ内のスペア領域を増加させること
JP2014513356A (ja) * 2011-04-26 2014-05-29 エルエスアイ コーポレーション 不揮発性記憶のための可変オーバープロビジョニング
JP2016162397A (ja) * 2015-03-05 2016-09-05 富士通株式会社 ストレージ制御装置、制御システム及び制御プログラム
WO2016181528A1 (ja) * 2015-05-13 2016-11-17 株式会社日立製作所 ストレージ装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4083997B2 (ja) * 2001-04-16 2008-04-30 株式会社日立製作所 レンタルストレージのサービス方法、および、レンタルストレージシステム
US8214580B2 (en) * 2009-10-23 2012-07-03 International Business Machines Corporation Solid state drive with adjustable drive life and capacity
CN102081575A (zh) * 2011-01-27 2011-06-01 北京深思洛克软件技术股份有限公司 虚拟磁盘存储空间的动态分配方法和装置
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9817768B2 (en) 2013-10-10 2017-11-14 Hitachi, Ltd. Storage system and data storing method
JP6444917B2 (ja) * 2016-03-08 2018-12-26 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102900A (ja) * 2006-10-19 2008-05-01 Samsung Electronics Co Ltd メモリ装置内のアドレッシング可能な空間を再配置させる方法及び装置
JP2011505046A (ja) * 2007-11-28 2011-02-17 サンドフォース インコーポレイテッド メモリの寿命を延長するためにメモリ内のスペア領域を増加させること
JP2014513356A (ja) * 2011-04-26 2014-05-29 エルエスアイ コーポレーション 不揮発性記憶のための可変オーバープロビジョニング
JP2016162397A (ja) * 2015-03-05 2016-09-05 富士通株式会社 ストレージ制御装置、制御システム及び制御プログラム
WO2016181528A1 (ja) * 2015-05-13 2016-11-17 株式会社日立製作所 ストレージ装置

Also Published As

Publication number Publication date
JP6681512B2 (ja) 2020-04-15
JPWO2018150561A1 (ja) 2019-04-25
CN109964210A (zh) 2019-07-02
US10838855B2 (en) 2020-11-17
CN109964210B (zh) 2023-05-30
US20190196962A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
JP6802209B2 (ja) ストレージシステム
JP6006431B2 (ja) ストレージシステムおよびデータ記憶方法
US10802733B2 (en) Methods and apparatus for configuring storage tiers within SSDs
JP6527961B2 (ja) 計算機システム
JP6062060B2 (ja) ストレージ装置、ストレージシステム、及びストレージ装置制御方法
JP6007332B2 (ja) ストレージシステム及びデータライト方法
US20190361611A1 (en) Storage system
WO2016135954A1 (ja) ストレージ装置および不揮発メモリデバイス
WO2016067328A1 (ja) 不揮発メモリデバイスを有するストレージ装置、及び、不揮発メモリデバイス
KR20120079026A (ko) 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리
US10049042B2 (en) Storage device, semiconductor memory device, and method for controlling same
CN110928487A (zh) 存储装置和存储装置的操作方法
WO2017077624A1 (ja) 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置
TW201915754A (zh) 資料儲存裝置及其操作方法
JP2017174387A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
CN112286838A (zh) 存储设备可配置的映射粒度系统
JP2018160189A (ja) メモリシステム
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2010237907A (ja) ストレージ装置および記録方法
WO2018150561A1 (ja) ストレージシステム及び記憶制御方法
US10713163B2 (en) Set aware system data and mapping tables
US10915441B2 (en) Storage system having non-volatile memory device
JP6696052B2 (ja) ストレージ装置及び記憶領域管理方法
WO2018167890A1 (ja) 計算機システム及び管理方法
WO2018142622A1 (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: 17896592

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019500143

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: 17896592

Country of ref document: EP

Kind code of ref document: A1