WO2018167890A1 - 計算機システム及び管理方法 - Google Patents

計算機システム及び管理方法 Download PDF

Info

Publication number
WO2018167890A1
WO2018167890A1 PCT/JP2017/010501 JP2017010501W WO2018167890A1 WO 2018167890 A1 WO2018167890 A1 WO 2018167890A1 JP 2017010501 W JP2017010501 W JP 2017010501W WO 2018167890 A1 WO2018167890 A1 WO 2018167890A1
Authority
WO
WIPO (PCT)
Prior art keywords
total
capacity
rate
amount
write
Prior art date
Application number
PCT/JP2017/010501
Other languages
English (en)
French (fr)
Inventor
英通 小関
彬史 鈴木
昌弘 鶴谷
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2017/010501 priority Critical patent/WO2018167890A1/ja
Publication of WO2018167890A1 publication Critical patent/WO2018167890A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Definitions

  • the present invention generally relates to managing a plurality of non-volatile memory devices.
  • a storage apparatus has a plurality of storage devices that store data and a storage controller that controls the plurality of storage devices.
  • the storage controller provides a large capacity data storage space to the computer.
  • HDD Hard Disk Drive
  • HDD Hard Disk Drive
  • the data stored in the storage device increases as time elapses from the start of use, and in some cases, a new HDD must be added to the storage device.
  • Patent Document 1 stores a history of physical disk expansion time and the number of expansions included in the storage device, and the number of physical disks added is determined from the history and the scheduled use period of the storage device.
  • a technique for calculating and outputting is disclosed.
  • nonvolatile memory device for example, SSD: Solid State Drive
  • FM flash memory
  • the SSD is generally mounted with a NAND type FM, typically a plurality of FM chips.
  • Each FM chip has a plurality of blocks (physical blocks), and each block has a plurality of pages (physical pages).
  • the SSD reads and writes data in units of pages.
  • Each FM chip is a write-once type. That is, when the logical area to which the page is allocated is the write destination, a new empty page is allocated to the write destination logical area instead of the allocated page, and data is written to the newly allocated page. For each logical area, the data written to the recently allocated page (that is, the latest data) is “valid data”, and the page to which valid data is written is “valid page”. The data stored in the previous page is “invalid data”, and the page 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”. Since each FM chip is a write-once type, the data stored in the page cannot be overwritten in principle. Therefore, in order to store new data, it is necessary to erase the data from the page once in the reclamation process. Data is erased in units of blocks. In the following description, erasing data from a block may be hereinafter referred to as “erasing a block”.
  • the “reclamation process” is a process for generating a reusable block by erasing each of one or more blocks.
  • valid data in the block to be erased must be moved to another block.
  • the SSD requires one or more spare blocks (spare blocks).
  • the total capacity of all spare blocks is called “reserve capacity”.
  • the capacity that can be used by the user for storing data (referred to as “user capacity”) is determined from the physical capacity of the SSD (the total capacity of all blocks of the SSD) to the spare capacity. Will be subtracted.
  • the ratio of the reserve capacity to the user capacity in the SSD is referred to as “over-provisioning rate (OP rate)”. By reducing the OP rate, the user capacity increases, and by increasing the OP rate, the user capacity decreases.
  • the logical capacity of the SSD is based on the user capacity of the SSD.
  • the SSD having the FM chip Since the FM chip has a finite number of erasures due to its configuration, there is an upper limit (that is, life) of the total write amount (total amount of data to be written). Therefore, the SSD having the FM chip has a lifetime.
  • the SSD OP rate affects SSD life and logical capacity (user capacity). For example, an SSD with a large OP rate has a large reserve capacity, so the number of data movements that occur during reclamation processing can be suppressed, and the consumption of life due to data movement is reduced. For this reason, there is a merit that the rewrite durability is improved (long life), but since the reserve capacity is large, there is a demerit that the user capacity is small. On the other hand, since the reserve capacity is small in an SSD with a small OP rate, the number of times of data movement during reclamation processing increases, and the life consumption due to data movement increases. For this reason, there is a demerit that the rewriting durability is reduced (short life), but there is an advantage that the user capacity can be increased. That is, the user capacity and the SSD lifetime have a trade-off relationship, and the value varies depending on the OP rate.
  • Patent Document 2 discloses a function that allows the user to change the SSD OP rate in accordance with the operation mode.
  • the function for changing the OP rate is hereinafter referred to as “variable OP function” for convenience.
  • the techniques disclosed in Patent Documents 3 and 4 are also known.
  • JP 2016-009433 A US Patent Publication No. 2011/0099320 International Publication No. 2012/168962 Pamphlet US Patent Application Publication No. 2008/0250220
  • the SSD is provided with a variable OP function
  • the user can obtain a degree of freedom in configuration setting for the SSD, so that flexible operation in terms of capacity and life is possible.
  • the number of options for selecting the OP rate has increased, it becomes difficult for the user to determine what the OP rate value should be.
  • the user has to determine the OP rate and the number of SSDs to be added, but this determination is difficult for the user. For example, if the optimum OP rate can be selected, it can be expected that the additional number of SSDs will be the optimum number. On the other hand, if the OP rate is selected incorrectly, the additional number of SSDs may exceed the required number.
  • Such a problem may also occur for non-volatile memory devices other than SSDs.
  • the computer system has at least one of a target additional logical capacity based on the required total logical capacity and an upper limit of the current total logical capacity, and a target additional light total quantity based on the required total light total amount and the upper limit of the current total total light capacity.
  • One target additional amount is calculated.
  • the total logical capacity is the total logical capacity provided by all the nonvolatile memory devices.
  • the total write total amount is the sum of the total write amounts corresponding to all the nonvolatile memory devices. For each nonvolatile memory device, the total write amount is the total amount of data written to the nonvolatile memory of the nonvolatile memory device.
  • the computer system has the following relationship (b1) and (b2): (B1) Target additional amount, (B2) The number of additional nonvolatile memory devices and the OP rate of the added nonvolatile memory devices, Displays additional proposal information that is information including information about
  • the user can easily grasp the relationship between the target added amount, the added number of units, and the OP rate.
  • FIG. 10 is a schematic diagram illustrating an outline of calculating at least one of a total additional logical usage capacity and a total additional write total amount based on a transition of capacity usage in Example 1. It is a schematic diagram which shows the outline
  • FIG. 10 is a schematic diagram illustrating a relationship between a logical capacity and a physical capacity of an SSD according to a second embodiment. It is a schematic diagram which shows an example of the relationship between a SLC ratio, OP rate, and a capacity
  • FIG. 10 is a configuration diagram of a write total amount expected value calculation table according to Embodiment 2.
  • FIG. 12 is a part of a flowchart of determination of necessity for addition according to Embodiment 2.
  • FIG. 12 is a part of a flowchart of additional SSD determination according to the second embodiment.
  • the “interface part” 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 section” 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 unit may include a hardware circuit that performs part or all of the processing.
  • the processing executed by the processor unit can also be called processing executed by the storage controller or the management system.
  • each table may be described using an expression such as “aaa table”, but the information may be expressed in any data structure. That is, in order to indicate that the information does not depend on the data structure, the “aaa table” can be referred to as “aaa information”.
  • 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 “computer system” includes at least one of a storage system and a management system.
  • the storage system includes one or more storage devices.
  • the storage device is a device that stores data.
  • the 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.
  • RAID is an abbreviation for Redundant “Array” of “Independent” (or “Inexpensive)” Disks.
  • the RAID group is composed of a plurality of PDEVs (typically the same kind of PDEVs), and stores data according to the RAID level associated with the RAID group.
  • the RAID group may be referred to as a parity group.
  • the parity group may be, for example, a RAID group that stores parity.
  • Example 1 will be described.
  • the storage device has a plurality (or 1) of SSDs (and a storage controller connected to the plurality of SSDs).
  • the storage controller manages the total use logical capacity and the total use write total amount as the capacity use results at each time of the storage apparatus.
  • the “total used logical capacity” is a total of a plurality of used logical capacities respectively corresponding to a plurality of SSDs included in the storage apparatus.
  • the “used logical capacity” is the used logical capacity (total of the address space portion to which data is written) of the logical capacity (logical address space) provided by the SSD.
  • the horizontal axis in FIG. 1 indicates the total used logical capacity.
  • “a plurality of SSDs” is an example of all SSDs based on a predetermined logical space managed by the storage apparatus.
  • An example of the “predetermined logical space” is a pool described later. All SSDs may be all SSDs in the storage apparatus.
  • the “total amount of write used” is the total of a plurality of actual write total amounts respectively corresponding to a plurality of SSDs included in the storage device. For each SSD, the “total amount of write” is the total amount of data written to the SSD.
  • the storage controller estimates the capacity usage record at a future time (for example, the fifth year) based on the transition of the capacity usage record (for example, the first to third year capacity use record 3000A to 3000C).
  • the estimated result 2005 is calculated. Specifically, for example, the storage controller performs linear approximation or the like to specify the slope of the graph of the capacity usage record 3000, and estimates the capacity use record after five years (calculates the estimated record 2005).
  • the total used logical capacity as the estimated performance 2005 is referred to as “estimated total logical capacity”
  • the total light total amount as the estimated performance 2005 is referred to as “estimated total light total amount”.
  • the estimated total logical capacity is an example of a necessary total logical capacity.
  • the total light total amount is an example of a necessary total light total amount.
  • the storage controller grasps the current configuration 2000 of the storage device, specifically, the total logical capacity upper limit and the total write total amount upper limit.
  • the “overall logical capacity upper limit” corresponds to the total of a plurality of logical capacities (for example, an effective capacity (usable part of the logical capacity) described later) respectively corresponding to a plurality of SSDs included in the storage apparatus.
  • the “total write total amount upper limit” corresponds to the sum of a plurality of write total amount upper limits respectively corresponding to the plurality of SSDs.
  • the “total write amount upper limit” corresponds to an expected write total limit value 518 (617), which will be described later.
  • the storage controller determines whether the estimated performance 2005 exceeds the current configuration 2000. Specifically, the storage controller determines whether at least one of the following (a) and (b) is established.
  • the storage controller calculates the target additional amount.
  • the “target additional amount” is a target value for the additional amount.
  • the “additional amount” is at least one of the additional write total amount and the additional logical capacity.
  • the storage controller calculates a target additional amount that is at least one of the following (x) and (y).
  • (x) is calculated.
  • (y) is calculated.
  • (X) target additional light total amount 3003 estimated total light total amount ⁇ total total light amount upper limit
  • target additional logical capacity 3004 estimated total logical capacity ⁇ total logical capacity upper limit
  • the target additional light total amount 3003 is typically the difference between the estimated total light total amount and the total light total amount upper limit, but other values based on the estimated total light total amount and the total light total amount upper limit (for example, It may be a value larger than the difference by a predetermined value).
  • the target additional logical capacity 3004 is typically the difference between the estimated overall logical capacity and the overall logical capacity upper limit, but other values (for example, from the difference) based on the estimated overall logical capacity and the overall logical capacity upper limit. It may be a value that is larger by a predetermined value).
  • the storage controller displays additional proposal information, which is information according to the relationship between the calculated target additional amount, the OP rate of the SSD, and the added number (for example, displayed on a management system connected to the storage device).
  • the additional proposal information may include information indicating at least one of the following.
  • the optimal OP rate and optimal additional number determined based on the target additional amount.
  • the “optimal OP rate” is an OP rate corresponding to the minimum additional number of additional units that can realize an additional amount that is equal to or greater than the target additional amount.
  • the “optimum additional number” is the minimum additional number.
  • the storage controller displays all or part of the information shown in FIG. 2 as additional proposal information.
  • the horizontal axis indicates the additional logical capacity
  • the vertical axis indicates the additional write total amount.
  • Solid lines 2001H, 2001M, and 2001L have capacity characteristics corresponding to high OP rate (for example, 50% or more), medium OP rate (for example, greater than 20% and less than 50%), and low OP rate (for example, 20% or less), respectively (additional) The relationship between the logical capacity and the total amount of additional writes).
  • high OP rate for example, 50% or more
  • medium OP rate for example, greater than 20% and less than 50%
  • low OP rate for example, 20% or less
  • the expected value of the capacity characteristic (slope of the solid line 2001) at each OP rate is held by, for example, the SSD, and the storage controller can acquire and use the information from the SSD as necessary.
  • the stage of OP rate may be smaller or larger than the three stages of high, medium and low.
  • N 4, 8, 12 or 20
  • a broken line corresponding to the additional number N is obtained.
  • a 3D + 1P RAID group (a RAID group including four SSDs) is an additional minimum unit.
  • Each broken line follows the predicted logical capacity (for example, an expected value of effective capacity described later) and the expected total write amount obtained based on the physical capacity and the OP rate (and the expected value of the compression rate) for each SSD.
  • the storage controller Based on the target additional amount 3005 and the additional amount per additional SSD unit for each OP rate (for example, the predicted value (expected value) of each of the logical capacity and the total write amount), the storage controller Specify the rate and the optimal additional number. Specifically, for example, the storage controller corresponds to the additional amount 2007A having the shortest distance from the target additional amount 3005 among the additional amounts 2007A to 2007C exceeding both the target additional write total amount 3003 and the target additional logical capacity 3004.
  • the OP rate “medium” and the additional number “8” are specified as the optimal OP rate and the optimal additional number.
  • the additional proposal information displayed by the storage controller may include information indicating the identified optimum configuration (for example, a message proposing to add eight medium OP rate SSDs).
  • FIG. 3 is a configuration diagram of the information system according to the first embodiment.
  • the computer system 10000 includes a storage device 1 (an example of a storage system) and a management system 5.
  • a storage device 1 an example of a storage system
  • a management system 5 One or more host computers (hereinafter referred to as hosts) 2 are connected to the storage apparatus 1 via a SAN (Storage Area Network) 3.
  • a management system 5 is connected to the storage apparatus 1 via a LAN (Local Area Network) 6 formed using Ethernet (registered trademark). At least one of the SAN 3 and the LAN 6 may be another type of communication network. Further, the storage apparatus 1, the host 2, and the management system 5 may be connected to the same communication network.
  • the storage device 1 includes a storage controller 10, a plurality of SSDs 21 and a plurality of HDDs 25 connected to the storage controller 10.
  • the SSD 21 is a storage device for storing write data from a host device such as the host 2, and is a storage device (nonvolatile memory device) adopting a nonvolatile memory such as a flash memory as a storage medium.
  • the internal configuration of the SSD 21 will be described later.
  • the SSD 21 is connected to the storage controller 10 by, for example, a transmission line (SAS link) conforming to the SAS (Serial Attached SCSI) standard or a transmission line (PCI link) conforming to the PCI (Peripheral Component Interconnect) standard.
  • SAS link Serial Attached SCSI
  • PCI link transmission line conforming to the PCI (Peripheral Component Interconnect) standard.
  • the HDD 25 is a storage device that uses a magnetic disk as a recording medium. Similarly to the SSD 21, the HDD 25 is also connected to the storage controller 10 by a SAS link or the like.
  • the storage device 1 may be configured such that only the SSD 21 is connected without the HDD 25 being connected. In the following description, the storage apparatus 1 will be described as a configuration in which only the SSD 21 is connected as a storage device.
  • the storage controller 10 includes a central processing unit (CPU) 11, a front end interface (FE-I / F) 12, a back end interface (BE-I / F) 13, a memory 14, and a management interface (MI / F). ) 15.
  • the CPU 11, FE-I / F 12, BE-I / F 13, memory 14, and MI / F 15 are interconnected via an internal switch (internal SW) 16.
  • the I / Fs 12, 13, and 15 are examples of the interface unit.
  • the memory 14 is an example of a storage unit.
  • the CPU 11 is an example of a processor unit. In FIG. 3, only one component of the storage controller 10 is shown. However, in order to ensure high performance and high availability, at least one of these components is provided in the storage controller 10. May be. Further, the storage controller 10 may have a configuration in which each component is interconnected via a common bus instead of the internal SW 16.
  • the BE-I / F 13 has an interface controller and a transfer circuit (not shown).
  • the interface controller performs protocol conversion between a protocol used by the SSD 21 (for example, SAS) and a communication protocol used by the storage controller 10 (for example, PCI-Express).
  • the transfer circuit performs processing for transferring data (reading and writing) to and from the SSD 21.
  • the FE-I / F 12 includes an interface controller and a transfer circuit (not shown), similar to the BE-I / F 13.
  • the interface controller of the FE-I / F 12 performs protocol conversion between a communication protocol (for example, fiber channel) used in a data transfer path between the host 2 and the storage controller 10 and a communication protocol used in the storage controller 10. Do.
  • the CPU 11 performs various controls of the storage device 1.
  • the memory 14 stores a program executed by the CPU 11 and management information of the storage device 1 used by the CPU 11.
  • the memory 14 is also used for temporarily storing I / O target data for the SSD 21.
  • the storage area in the memory 14 used for temporarily storing the I / O target data for the SSD 21 is referred to as “cache”.
  • the memory 14 may be composed of a volatile storage medium such as DRAM or SRAM, or may be composed of a nonvolatile memory.
  • the memory 14 stores a program executed by the CPU 11 in order to execute processing to be described later by the storage controller 10.
  • the management information in the memory 14 includes, for example, a VVOL management table 500, a pool management table 550, an RG management table 560, a drive management table 510, a usage record management table 520, and an OP rate selection table 530, which will be described later.
  • the management system 5 may be composed of one or more computers. Specifically, for example, when the management computer has a display device and the management computer displays information on its own display device, the management computer 5 may be the management computer 5. For example, when a management computer (for example, a server) transmits display information to a remote display computer (for example, a client) and the display computer displays the information (when the management computer displays information on the display computer) ), A system including at least the management computer among the management computer and the display computer may be the management system 5.
  • the management system 5 may include an interface unit 61, a storage unit 62, and a processor unit 63 connected to them.
  • the interface unit 61 may include at least one of a user interface unit and a communication interface unit.
  • the user interface unit includes at least one I / O device of one or more I / O devices (for example, an input device (for example, a keyboard and a pointing device), an output device (for example, a display device)), and a display computer.
  • the communication interface unit may include one or more communication interface devices. That the computer in the management system 5 “displays display information” may be that display information is displayed on a display device included in the computer, or the computer transmits display information to the display computer. (In the latter case, display information is displayed by a display computer).
  • the storage unit 62 stores information accessed by the processor unit 63 and programs executed by the processor unit 63.
  • the processor unit 63 reads the program from the storage unit 62 and executes it, thereby managing the storage apparatus 1 with reference to the information in the storage unit 62.
  • FIG. 4 is a configuration diagram of the SSD 21.
  • the SSD 21 includes an SSD controller 200 and FM (a plurality of FM chips 210).
  • the SSD controller 200 includes a CPU 201, an FE-I / F 202, a BE-I / F 203, a memory 204, and a compression / expansion circuit 207, which are interconnected via an internal switch (internal SW) 205.
  • the FE-I / F 202 is an interface controller for performing communication between the SSD 21 and the storage controller 10.
  • the FE-I / F 202 is connected to the BE-I / F 13 of the storage controller 10 via a transmission line (SAS link or PCI link).
  • the BE-I / F 203 is an interface controller for performing communication between the SSD controller 200 and the FM chip 210.
  • the BE-I / F 203 is connected to the FM chip 210 via a transmission line.
  • the CPU 201 performs processing related to various commands coming from the storage controller 10.
  • the memory 204 stores programs executed by the CPU 201 and various management information.
  • the memory 204 may be configured by a volatile storage medium such as DRAM or SRAM, or may be configured by a nonvolatile memory.
  • the memory 204 stores an OP rate basic management table 600, an SSD internal management table 610, and a write total expected value calculation table 620, which will be described later.
  • the compression / decompression circuit 207 is a circuit that performs data compression processing and decompression processing.
  • the FM chip 210 is a non-volatile semiconductor memory chip such as a NAND flash memory, for example.
  • the FM chip 210 has a plurality of dies 213.
  • Each die 213 has a plurality of blocks (physical blocks) 211.
  • Each block 211 has a plurality of pages (physical pages) 214. Reading and writing are performed in units of pages, and erasing of data is performed in units of blocks.
  • Each page 214 has a plurality of cells 215.
  • Each cell 215 is a memory element composed of a transistor or the like, and can hold 1-bit or multiple-bit data.
  • the SSD 21 is a storage medium that includes a plurality of FM chips and an SSD controller that controls them, and the external shape and the like are not limited to form factors.
  • FM non-FM non-volatile memories such as PRAM (Phase-change Random Access Memory), MRAM (Magnetoresistive Random Access Memory), ReRAM (Resistive Random Access Memory) or FeRAM (Ferroelectric Random Access Memory) are adopted. Also good.
  • FIG. 5 is a schematic diagram for explaining the relationship between the breakdown of the physical capacity of the SSD 21 and the OP rate.
  • the physical capacity of the SSD 21 means the physical capacity of the FM chip 210 included in the SSD 21, and the value is equal to the total capacity of all the FM chips 210 of the SSD 21.
  • the physical capacity of the SSD 21 is used for the user capacity 2100 that is the capacity of the physical area (user area) used for storing user data (at least a part of the data from the host 2), execution of reclamation, and the like.
  • To the spare capacity 2101 which is the capacity of the physical area (spare area).
  • the ratio of the spare capacity 2101 to the user capacity 2100 is the “OP rate”.
  • the OP rate may be calculated by the formula of spare capacity 2101 ⁇ user capacity 2100, or may be calculated by the formula of (physical capacity ⁇ user capacity) ⁇ user capacity, or the calculation of physical capacity ⁇ user capacity ⁇ 1. It may be calculated by a formula, and in short, any formula that can calculate the ratio of the reserve capacity 2101 to the user capacity 2100 may be used.
  • the SSD 21 has a variable OP function that can change the OP rate.
  • the SSD 21 is provided with an interface that allows the user to change the capacities of the user capacity 2100 and the spare capacity 2101.
  • the OP rate is set high, the reserve capacity 2101 increases, and thus the user capacity 2100 decreases.
  • the OP rate is set low, the reserve capacity 2101 becomes small and the user capacity 2100 becomes large.
  • FIG. 6 is a diagram for explaining the relationship between the physical capacity and the logical capacity of the SSD 21.
  • the SSD 21 provides a logical area (logical address space) based on its own physical area to the connected storage controller 10. This logical area is managed in association with the user's physical area, and the logical / physical address conversion function of the SSD 21 enables address conversion between the logical area and the physical area.
  • the SSD 21 has a data compression function by the compression / decompression circuit 207. Further, the SSD 21 has a function of expanding the logical capacity according to the data compression rate as described in Patent Document 3 (International Publication No. 2012/168962). For this reason, in the SSD 21, the logical capacity can be made larger than the physical capacity. This is because the data actually stored in the SSD 21 is compressed inside the SSD 21 to reduce the size.
  • the SSD 21 provides the storage controller 10 with a logical capacity that is eight times the user capacity 2100 in advance.
  • the logical capacity that the SSD 21 can provide is smaller than eight times the user capacity 2100, and a capacity that cannot be used is generated. Accordingly, the logical capacity of the SSD 21 is an effective capacity 2102 that is a logical capacity part that can be used by the storage controller 10 (can store user data) and a logical capacity that cannot be used by the storage controller 10 (cannot store user data). And an invalid capacity 2103 which is a part.
  • the size of the effective capacity 2102 is a value obtained by user capacity / a. Note that the total value of the effective capacity 2102 and the invalid capacity 2103 is, for example, eight times the user capacity 2100 of the SSD 21.
  • the SSD 21 includes an interface for notifying the storage controller 10 of internal information such as logical capacity and average compression rate.
  • the storage controller 10 executes processing such as pool capacity management, which will be described later, based on internal information acquired from the SSD 21 via this interface.
  • FIG. 7 is a diagram for explaining the volume configuration of the storage apparatus.
  • the storage controller 10 has a capacity virtualization function.
  • the capacity virtualization function is a technology that provides a virtual capacity larger than the physical capacity of the storage apparatus 1 to the host 2 as a VVOL.
  • the storage controller 10 constitutes a plurality of logical RGs 30 respectively corresponding to a plurality of physical RGs (four SSDs 21).
  • the plurality of RGs 30 include RGs 30A and 30B.
  • the storage controller 10 combines two RGs 30A and 30B to form a pool 40 as an example of a storage area set.
  • the RG 30A includes three logical SSDs 20A to 20C excluding one SSD 21 for parity.
  • the logical capacity of each SSD 20 is the logical capacity of the SSD 21.
  • the capacity of each SSD 20 may be divided into an effective capacity 2102 and an invalid capacity 2103.
  • the storage controller 10 manages the pool 40 by dividing it into sections of a predetermined size. This partition is called “chunk”. Chunk 31A is created in RG30A, and chunk 31B is created in RG30B.
  • the storage controller 10 provides the VVOL 50 to the host 2.
  • the VVOL 50 is, for example, a virtual volume that follows thin provisioning.
  • the storage controller 10 receives a write request for the VVOL 50 from the host 2, the storage controller 10 assigns an arbitrary chunk 31 in the pool 40 to the virtual chunk 51 of the VVOL 50 (the address range to which the logical address specified by the write request belongs), and the write request The data associated with is written to the chunk 31.
  • the SSD 20 is the total of the effective capacity 2102 and the invalid capacity 2103, and is a value eight times the physical capacity of the SSD 21. However, since each of the effective capacity 2102 and the invalid capacity 2103 changes according to the data compression rate, the storage controller 10 periodically acquires internal information such as a logical capacity, a physical capacity, and a compression rate from the SSD 21, The capacity of the RG 30 and the pool 40 is managed.
  • the storage controller 10 can absorb the change in the logical capacity of the SSD 21 by changing the attribute of the chunk.
  • the storage controller 10 has a data movement function for moving chunk data between RGs 30.
  • the data movement function uses the capacity (data storage capacity) between the existing SSD 21 and the additional SSD 21 when leveling the write load of the SSD 21 between the RGs 30 or when a new SSD 21 is additionally installed. Used for the purpose of leveling.
  • FIG. 7 shows an example in which the data of the chunk 31A is moved to the chunk 31B.
  • the storage controller 10 internally changes the allocation destination of the virtual chunk 51 from the chunk 31A to the chunk 31B, but the correspondence between the host 2 and the virtual chunk 51 is maintained as it is. Therefore, the storage controller 10 can conceal the influence of data movement from the host 2.
  • FIG. 8 is a configuration diagram of the VVOL management table 500.
  • the VVOL management table 500 is a table for managing the mapping relationship between the virtual chunks in each VVOL 50 defined in the storage apparatus 1 and the chunks in the pool 40.
  • the VVOL management table 500 has a record for each virtual chunk. Each record holds information such as VVOL # (number) 501, pool # 503, LBA range 504, virtual chunk # 505, RG # 506, and chunk # 507.
  • VVOL # 501 is an identification number of the VVOL including the virtual chunk.
  • Pool # 503 is an identification number of a pool 40 (pool to which a chunk is assigned to the VVOL) 40 with which the VVOL including the virtual chunk is associated.
  • the LBA range 504 indicates an LBA (Logical Block Address) range of the virtual chunk.
  • Virtual chunk # 505 is an identification number of the virtual chunk.
  • RG # 506 is an identification number of an RG having a chunk assigned to the virtual chunk.
  • Chunk # 507 is the identification number of the chunk assigned to the virtual chunk.
  • FIG. 9 is a configuration diagram of the pool management table 550.
  • the pool management table 550 is a table for managing the pool 40, and may be a table for each pool 40.
  • the pool management table 550 has a record for each chunk in the pool. Each record holds information such as pool # 551, RG # 552, chunk # 553, LBA range 554, status 555, write amount 556, read amount 557, operation start date 558, and target operation period 559.
  • Pool # 551 is an identification number of a pool including chunks.
  • RG # 552 is an identification number of the RG including the chunk.
  • Chunk # 553 is a chunk identification number.
  • the LBA range 55 indicates the LBA range of the chunk.
  • Status 555 indicates a status of the chunk, for example, a status relating to whether or not the virtual chunk is allocated. “Allocated” means that the chunk is allocated to the virtual chunk. “Unallocated” means that the chunk is not allocated to a virtual chunk. “Unassignable” means that a chunk cannot be assigned to a virtual chunk.
  • the status 555 of the chunk having an invalid capacity of 2103 that has become unusable due to a decrease in the compression rate is set to “unassignable”. Note that the chunk corresponding to the status 555 “allocated” or “unallocated” is a chunk belonging to the effective capacity 2102. The pool usage at some point is equal to the total capacity of chunks with status 555 “allocated”, and the remaining capacity of the pool is equal to the total capacity of chunks with status 555 “unallocated”.
  • the write amount 556 indicates the total amount of data written in the chunk during a specific period.
  • the read amount 557 indicates the total amount of data read from the chunk during a specific period.
  • the operation start date 558 indicates the date when the pool was created.
  • a target operation period 559 indicates a target period for operating the pool (target operation period). This target operation period 559 corresponds to the target operation years shown in FIG.
  • FIG. 10 is a configuration diagram of the RG management table 560.
  • RG management table 560 is a table for managing RG.
  • the RG management table 560 has a record for each drive (SSD or HDD in this embodiment). Each record holds information such as RG # 561, RAID level 562, drive # 563, and LBA range 564.
  • RG # 561 is an identification number of the RG including the drive.
  • the RAID level 562 indicates the RAID level of the RG including the drive.
  • Drive # 563 is a drive identification number.
  • the LBA range 564 indicates the LBA range of the logical address space provided by the drive.
  • FIG. 11 is a configuration diagram of the drive management table 510.
  • the drive management table 510 is a table for managing drives.
  • the drive management table 510 has a record for each drive.
  • Each record includes information such as drive # 511, type 512, physical capacity 513, OP rate 514, logical capacity 515, current write total amount 516, lifetime consumption rate 517, expected total write amount limit value 518, and average compression rate 519. Hold.
  • Drive # 511 is a drive identification number.
  • the type 512 indicates the type of drive (for example, “SSD” or “HDD”).
  • the physical capacity 513 indicates the physical capacity of the drive.
  • the OP rate 514 indicates the OP rate set for the drive.
  • the logical capacity 515 indicates the logical capacity of the drive (for example, user capacity ⁇ maximum compression rate), in other words, the maximum value of the effective capacity 2102.
  • the current total write amount 516 indicates the total amount of data written to the drive.
  • the life consumption rate 517 indicates the rate at which the drive life is consumed.
  • the expected limit value 518 of the total write amount corresponds to the upper limit of the total write amount, and specifically indicates the total write amount expected to be reached when the drive reaches the end of its life. For example, according to SSD “0” (drive # 511 “0” and type 512 “SSD” drive), the current write total amount 516 is “5PB” and the lifetime consumption rate 517 is “50%”. When the SSD “0” reaches the end of life (that is, when the life consumption rate 517 reaches “100%”), the total write amount (that is, the expected limit value 518 of the total write amount) is “10 PB”. is there. Note that the expected total value 518 of the total write amount may be calculated from the user capacity and the number of erasable times, and the life consumption rate 517 may be calculated as a ratio of the current total write amount 516 to the expected limit value 518.
  • the average compression rate 519 indicates the average compression rate of data written to the drive.
  • the storage controller 10 can execute these from the SSD 21. Is stored, and the lifetime consumption rate 517, the expected limit value 518 of the total light amount, and the average compression rate 519 are stored.
  • the predicted limit value 518 of the total write amount may be predicted (calculated) by the storage controller 10 based on the lifetime consumption rate 517 acquired from the SSD 21 and the current total write amount 516 managed by the storage controller 10.
  • the logical capacity (effective capacity of the SSD 21) reflecting the actual compression ratio is logical capacity 515 ⁇ maximum compression ratio (for example, 12.5%) ⁇ average compression ratio 519.
  • FIG. 12 is a configuration diagram of the usage record management table 520.
  • the usage record management table 520 is a table for managing the history of the used logical capacity and the total amount of data write in the storage apparatus 1. Based on the use record management table 520, the storage controller 10 can grasp the capacity use record (changes in total use logical capacity and total write total amount).
  • the usage record management table 520 has a record for each pool 40 for each time point. Each record holds information such as pool # 521, time stamp 522, used logical capacity 523, total write amount 524, and average compression rate 525.
  • Pool # 521 is a pool identification number.
  • the time stamp 522 indicates a time stamp corresponding to the time point (in this embodiment, an elapsed time (elapsed year) from the start of the pool operation).
  • the used logical capacity 523 indicates the used logical capacity at the time (specifically, the total capacity of the allocated chunk at the time (chunk of status 555 “allocated”)).
  • the used logical capacity 523 corresponds to the above-described overall used logical capacity (horizontal axis of the graph of FIG. 1) for the pool.
  • the total write amount 524 indicates the total write amount at the time (specifically, the total amount of data written to the pool up to the time). Specifically, the total write amount 524 is the total of the total write amount 516 corresponding to all the drives belonging to the pool. The total write amount 524 corresponds to the above-described total write total amount (vertical axis of the graph of FIG. 1) for the pool.
  • the average compression rate 525 indicates the average compression rate of the pool at the time point, specifically, for example, the average value of the average compression rate 519 respectively corresponding to all the drives belonging to the pool at the time point.
  • FIG. 13 is a configuration diagram of the OP rate selection table 530.
  • the OP rate selection table 530 is a table used for obtaining (selecting) the OP rate and the required additional number of SSDs to be added. Based on the OP rate selection table 530, the storage controller 10 can obtain the optimum OP rate and the required additional number of additional SSDs.
  • the OP rate selection table 530 includes an additional logical capacity 531, an additional write total amount 532, an assumed compression rate 533, a physical capacity 534, an OP rate 535, an expected effective capacity 536, an expected write total amount 537, an additional number 538 according to capacity requirements, and a write total amount. Information such as the additional number 539 in the requirement and the necessary additional number 540 is held.
  • the additional logical capacity 531 indicates a logical capacity to be added (for example, to be added to the pool 40), specifically, the above-described target additional logical capacity 3004 (see FIGS. 1 and 2).
  • the additional light total amount 532 indicates the total light amount to be added (for example, to be added to the pool 40), specifically, the above-mentioned additional light total amount 3003 (see FIGS. 1 and 2).
  • the assumed compression rate 533 indicates an expected value of the data compression rate.
  • the assumed compression rate 533 is, for example, the latest value or the average value of a plurality of average compression rates 525 in the usage record management table 520.
  • the physical capacity 534 indicates the physical capacity of one SSD 21.
  • Each of the plurality of OP rates 535 indicates an OP rate set in the SSD.
  • the OP rate selection table 530 includes a plurality of OP rates 535 (for example, a plurality of different OP rates 535 (for example, a plurality of different 10% units) for a set of the additional logical capacity 531, the additional write total amount 532, the assumed compression rate 533, and the physical capacity 534.
  • OP rate 535) is associated.
  • Information 536 to 540 is associated with each OP rate 535.
  • the expected effective capacity 536 is the effective capacity (usable part of the logical capacity) according to the user capacity (the user capacity calculated from the OP rate 535 and the physical capacity 534) and the assumed compression ratio 533. Show.
  • the expected write total amount 537 indicates the upper limit of the total write amount based on the user capacity corresponding to the OP rate 535.
  • the expected effective capacity 536 and the expected total write amount 537 may be acquired from the SSD 21 by the storage controller 10.
  • the additional number 538 in the capacity requirement indicates the additional number of SSDs necessary to satisfy the additional logical capacity 531.
  • This additional number 538 is the additional logical capacity 531 ⁇ expected effective capacity 536 (the remainder is rounded up).
  • the minimum number that is equal to or more than the calculated additional number and is necessary for configuring the RG may be the additional number 538 in the capacity requirement. In this way, an additional number satisfying the additional logical capacity 531 and a minimum additional number suitable for adding the SSD 21 in units of RG can be obtained.
  • the additional number of SSDs necessary to satisfy the additional light total amount 532 is shown in the additional number 539 in the total light amount requirement.
  • the additional number 539 is the total amount of additional writes 532 ⁇ the total number of expected writes 537 (the remainder is rounded up).
  • the minimum number that is equal to or greater than the calculated additional number and that is necessary for configuring the RG may be the additional number 539 in the write total amount requirement. In this way, it is possible to obtain an additional minimum number that satisfies the total additional write amount 532 and that is appropriate when the SSD 21 is added in units of RG.
  • the necessary additional number 54 indicates the additional number necessary to satisfy the requirements of both the additional logical capacity 531 and the additional write total amount 532.
  • the necessary additional number 540 is the larger of the additional number 538 in the capacity requirement and the additional number 539 in the total write amount requirement.
  • the storage controller 10 sets the OP rate 535 corresponding to the smallest necessary additional number 540 among the plurality of necessary additional numbers 540 in the OP rate selection table 530, This is determined as the optimum OP rate to be set for the additional SSD. As a result, an OP rate with the smallest number of additional SSDs (that is, the smallest additional cost) can be proposed. If there are a plurality of minimum required additional numbers 540, the storage controller 10 sets the optimum OP to be set as an additional SSD for each of the plurality of OP rates 535 respectively corresponding to the plurality of minimum required additional numbers 540. It may be determined as a rate.
  • FIG. 14 is a configuration diagram of the OP rate basic management table 600.
  • the SSD 21 has a variable OP function, a data compression function, and a capacity expansion function.
  • the OP rate basic management table 600 manages, as basic information, a logical capacity and a write total amount guide value for each set of OP rate and compression rate.
  • the SSD 21 can output information held in the OP rate basic management table 600.
  • the OP rate basic management table 600 has a record for each set of OP rate and compression rate. Each record holds information such as a physical capacity 601, an OP rate 602, a compression rate 603, an effective capacity 604, and a write total amount guide value 605.
  • the physical capacity 601 indicates the physical capacity of the SSD 21.
  • the OP rate 602 indicates the OP rate.
  • the OP rate 602 is prepared in increments of a predetermined% (for example, 10%), and these OP rates are prepared for each of the plurality of compression rates 603.
  • the compression ratio 603 is a representative value of an expected compression ratio, for example, a maximum compression ratio (for example, 12.5%), a typical compression ratio (for example, 50%), or a minimum compression ratio (for example, 100%). The expected value of the compression ratio is acceptable.
  • Effective capacity 604 indicates an expected value of an effective capacity (a usable part of the logical capacity) according to the OP rate 602 and the compression rate 603.
  • the write total amount reference value 605 is a predetermined condition such as a predetermined I / O pattern (for example, completely random write), a predetermined I / O length (for example, 4 KB length), etc., for the SSD 21 with the OP rate 602 and the compression rate 603. Shows the standard value of the total amount of light.
  • the actual total write amount under actual operation may be larger or smaller than the total write amount reference value 605.
  • other types of SSD life determination parameters such as DWPD (Drive WritePDPerday) and WA (Write Amplification) are managed based on the OP rate. It may be stored in the table 600.
  • FIG. 15 is a configuration diagram of the SSD internal management table 610.
  • the SSD internal management table 610 includes a physical capacity 611, a set OP rate 612, an average compression rate 613, a write total amount guide value 614, a current write total amount 615, a life consumption rate 616, a write limit expected value 617, and a write total amount correction. Information such as value 618 is held.
  • the physical capacity 611 indicates the physical capacity of the SSD 21 (the SSD 21 that stores the SSD internal management table 610).
  • the set OP rate 612 indicates the OP rate set in the SSD 21.
  • the average compression rate 613 indicates the average compression rate of the data stored in the SSD 21.
  • the light total amount guide value 614 indicates the light total amount guide value under the current use conditions.
  • the write total amount guide value 614 may be the same as the write total amount guide value 605 obtained by searching the OP rate basic management table 600 using the set OP rate 612 and average compression rate 613 as a key.
  • the current total write amount 615 indicates the total amount of data written to the SSD 21.
  • the lifetime consumption rate 616 indicates the ratio of consuming the lifetime of the SSD 21 (for example, the ratio of the number of erases to the present with respect to the number of erasable times of the SSD 21).
  • the predicted limit value 617 of the total amount of light indicates the total amount of light that is predicted to be reached when the lifetime consumption rate 616 reaches 100% (that is, the current total amount of light 615 ⁇ (lifetime consumption rate 616 ⁇ 100)).
  • the write total amount correction value 618 is a value (correction value) indicating the degree of deviation between the actual write total amount and the write total amount guide value 614. Specifically, the write total amount expected limit value 617 ⁇ write total amount guide value 614. .
  • FIG. 16 is a configuration diagram of the write total amount expected value calculation table 620.
  • the write total expected value calculation table 620 is a table used for predicting the upper limit of the total write amount under actual operation conditions for each OP rate.
  • the write total amount expected value calculation table 620 has a record for each OP rate. Each record holds information such as physical capacity 621, OP rate 622, compression rate 623, expected effective capacity 624, write total amount guide value 625, write total amount correction value 626, and write total amount expected value 627.
  • the physical capacity 621 indicates the physical capacity of the SSD 21 (the SSD 21 that stores the write total amount expected value calculation table 620).
  • the OP rate 622 indicates an OP rate that can be set in the SSD 21.
  • the compression rate 623 indicates the actual compression rate of the SSD 21 (for example, the same value as the average compression rate 613 in the SSD internal management table 610).
  • the expected effective capacity value 624 indicates the expected value of the effective capacity (usable part of the logical capacity) according to the OP rate 622 and the compression rate 623.
  • the write total amount guide value 625 indicates the same value as the write total amount guide value 605 in a record obtained by searching the OP rate basic management table 600 using the set of the OP rate 622 and the compression rate 623 as a key.
  • the total write amount correction value 626 is a correction value (for example, an SSD internal management table) indicating how much the write total amount expected value, which is the upper limit value of the total write amount of the SSD 21 under actual operation, can change with respect to the reference value. 610 is the same value as the write total amount correction value 618).
  • the write total amount expectation value 627 indicates a write total amount expectation value (for example, write total amount guide value 625 ⁇ write total amount correction value 626) that is an upper limit value of the total write amount of the SSD 21 under actual operation.
  • FIG. 17 is a flowchart of storage control. Storage control is executed periodically, for example. Moreover, at least one of S60, S70, S80, and S100 among the steps shown in FIG. 17 may be executed by the management system 5 (processor unit 53) instead of or in addition to the storage controller 10 (CPU 11). Good. In this case, the information acquisition in S50 may be performed by the management system 5 via the storage controller 10. Further, the CPU 11 and the processor unit 53 may be an example of a processor unit included in the computer system.
  • the storage controller 10 determines whether a read request or write request (I / O request) has been received from the host 2 (S10).
  • the storage controller 10 performs I / O processing corresponding to the received I / O request (S20), and the pool is based on the result of the I / O processing.
  • the management table 550 is updated (S30). Specifically, when the I / O processing is read processing, in S30, the storage controller 10 adds the data amount of the read target data to the read amount 557 corresponding to the read source chunk. If the I / O process is a write process, in S30, the storage controller 10 adds the data amount of the write target data to the write amount 556 corresponding to the write destination chunk. When a chunk is allocated to the write destination virtual chunk 41, the storage controller 10 updates the status 555 of the allocated chunk to “allocated”.
  • the storage controller 10 determines whether or not a certain period has elapsed since the previous storage control process (S40).
  • the storage controller 10 acquires internal information from the SSD 21 (S50). In S50, the storage controller 10 requests each SSD 21 to transmit internal information. In response to this, each SSD 21 transmits information held in the SSD internal management table 610 to the storage controller 10. Specifically, the storage controller 10 acquires the average compression rate 613, the life consumption rate 616, and the expected limit value 617 of the total write amount for each SSD 21. For each SSD 21, the storage controller 10 uses the acquired average compression rate, lifetime consumption rate, and expected total write limit value as the average compression rate 519, lifetime consumption rate 517, and expected total write limit value 518 corresponding to the SSD 21. And stored in the drive management table 510.
  • the storage controller 10 updates the pool capacity (S60).
  • the storage controller 10 adjusts the pool capacity based on the average compression rate 519 of the drive management table 510. Specifically, when the pool average compression ratio (average compression ratio according to the plurality of average compression ratios 519 corresponding to the plurality of SSDs 21 that are the basis of the pool) deteriorates, the storage controller 10 determines the pool average compression ratio. The status 555 of the unallocated chunks (status 555 “unallocated” chunks) corresponding to the effective capacity reduced due to deterioration is changed to “unallocated”.
  • the storage controller 10 sets the status 555 of the unallocated chunk (status 555 “unallocated” chunk) for the effective capacity increased by the improvement of the pool average compression ratio to “unallocated”.
  • Change to The pool average compression rate may be equal to the average compression rate 525 illustrated in FIG. 12, for example.
  • the storage controller 10 updates the capacity usage record (S70).
  • S ⁇ b> 70 when it is a preset usage record acquisition timing, the storage controller 10 updates the use record management table 520.
  • the preset usage record acquisition timing may be, for example, every time the elapsed time from the start of pool operation increases by 0.5 years (six months).
  • the storage controller 10 adds a new record to the usage record management table 520, and adds a time stamp 522 (elapsed time since the start of the pool operation at that time) and a used logical capacity 523 to the added record.
  • the logical capacity used at that time the total write amount 524 (the total write amount at that time), and the average compression rate 525 (the average value of the average compression rate 519 respectively corresponding to all SSDs 21 belonging to the pool, that is, as described above Store pool average compression ratio).
  • the storage controller 10 determines whether or not addition is necessary (S80).
  • the storage controller 10 determines whether or not the SSD 21 is newly added to the storage device 1 (S90).
  • the storage controller 10 performs data movement for leveling the load between the RG of the existing SSD 21 and the RG of the additional SSD 21 (S100).
  • the storage controller 10 determines whether or not a stop request for the storage device 1 has been received (S110). When the determination result of S100 is true (S110: Yes), the storage controller 10 executes a stop process of the storage apparatus 1. If the determination result in S110 is false (S110: No), the process returns to S10.
  • FIG. 18 is a flowchart for determining whether or not to add. In addition, taking one pool as an example, the necessity determination for addition will be described. In the description of FIGS. 18 to 20, the pool is referred to as a “target pool”.
  • the storage controller 10 determines whether the operation up to the target period (target operation period) can be achieved with the current configuration (the total write total amount upper limit and the entire logical capacity upper limit described with reference to FIG. 1) for the target pool ( S81).
  • the storage controller 10 estimates the estimated result when the target period has elapsed (see FIG. 1) based on the transition of the capacity use result specified from the use result management table 520 and the target operation period 559 of the pool management table 550.
  • the estimated total light total amount and the estimated overall logical capacity) described above are calculated, and it is determined whether or not the current configuration exceeds the estimated performance.
  • the total write total amount upper limit is the sum of the predicted limit values 518 of the total write amount respectively corresponding to all SSDs belonging to the target pool.
  • the total logical capacity upper limit is the sum of the logical capacities 515 respectively corresponding to all SSDs belonging to the target pool. If the determination result in S81 is false (S81: Yes), the determination of necessity for addition ends.
  • the storage controller 10 calculates the additional amount of the SSD 21 (S82). Specifically, in S82, the storage controller 10 calculates the target additional logical capacity 3004 and the target additional write total amount 3003, and adds the additional logical capacity 531 (target additional logical capacity 3004) and the additional write total amount to the OP rate selection table 530. 532 (target added light total amount 3003) is stored.
  • the storage controller 10 acquires the logical capacity (predicted value) and the total write amount (predicted value) for each OP rate from at least one of all the SSDs 21 belonging to the target pool (S83). Specifically, for example, in S83, the storage controller 10 uses the average compression ratio of all the average compression ratios 525 corresponding to the target pool (may be the maximum value or the minimum value instead of the average) as the assumed compression ratio 533. Determine as. The storage controller 10 requests the SSD 21 corresponding to the average compression rate 519 closest to the determined assumed compression rate 533 to send the logical capacity (predicted value) and the total write amount (predicted value) for each OP rate.
  • the SSD 21 that has received this request refers to the write total amount expected value calculation table 620 and stores each OP rate 622, the effective capacity expected value 624 and the write total amount expected value 627 for each OP rate 622 to the storage controller 10. return.
  • the storage controller 10 obtains information from the SSD 21, that is, each OP rate 622, the expected effective capacity value 624 and the expected total write amount 627 for each OP rate 622, and the expected effective value for each OP rate 535 and OP rate 535.
  • the capacity 536 and the expected write total amount 537 are stored in the OP rate selection table 530.
  • the storage controller 10 determines the request destination SSD 21 for the logical capacity (predicted value) and the total write amount (predicted value) based on the average compression rate 525 of the usage record management table 520. For this reason, it can be expected that the logical capacity (predicted value) and the total write amount (predicted value) considered to be close to the assumed situation are appropriately acquired.
  • the storage controller 10 determines the additional SSD, specifically, the OP rate of the additional SSD and the required additional number (S84).
  • the storage controller 10 displays additional proposal information including the optimum OP rate determined in S84 and the required additional number (for example, displayed on the screen of the management system 5) (S85). This display corresponds to prompting the user (administrator) to add the SSD 21.
  • FIG. 19 is a flowchart for determining an additional SSD.
  • the storage controller 10 calculates and stores the additional number 538 of the capacity requirement from the additional logical capacity 531 and the predicted effective capacity 536 for each OP rate 535 (S841). For each OP rate 535, the additional number 538 in the capacity requirement is, as described above, additional logical capacity 531 ⁇ expected effective capacity 536 (however, the remainder is rounded up).
  • the storage controller 10 calculates and stores the additional number 539 in the total write amount requirement from the total additional write amount 532 and the predicted total write amount 537 for each OP rate 535 (S842). As described above, the additional number 539 in the total write amount requirement is the total additional light amount 532 ⁇ the expected total write amount 537 (however, the remainder is rounded up).
  • the storage controller 10 determines and stores the larger of the additional number 538 in the capacity requirement and the additional number 539 in the write total amount requirement as the required additional number 540 for each OP rate 535 (S843).
  • the storage controller 10 specifies the minimum required additional number 540 among the plurality of required additional numbers 540 respectively corresponding to the plurality of OP rates 535, and sets the OP rate 535 corresponding to the specified minimum required additional number 540,
  • the optimum OP rate is determined (S844).
  • FIG. 20 is a flowchart of data movement. It is assumed that the optimum OP rate determined in S844 of FIG. 19 is set in the added SSD 21. In the data movement, the movement source and the movement destination are assumed to be chunks in the target pool.
  • the storage controller 10 compares the OP rate (hereinafter, new OP rate) of the added SSD 21 with the OP rate (old OP rate) of the existing SSD 21 (S101).
  • An SSD with a large OP rate has lower characteristics in terms of lifetime and performance than an SSD with a small OP rate, and thus has superior characteristics in terms of life and performance, that is, a large total write amount and high performance.
  • the “high load chunk” may be a chunk in which at least one of the write amount 556 and the read amount 557 of the pool management table 550 is relatively large in the target pool.
  • the storage controller 10 moves the low-load chunk data from the RG of the existing SSD to the RG of the additional SSD (S105). Thereby, it can be expected to extend the period until the additional SSD reaches the end of its life and increase the free capacity of the existing SSD.
  • the “low load chunk” may be a chunk in which at least one of the write amount 556 and the read amount 557 of the pool management table 550 is relatively small in the target pool.
  • the storage controller 10 determines whether the added remaining capacity of the SSD 21 (hereinafter, new remaining amount) and the existing The remaining amount of the writeable amount of the SSD 21 (hereinafter referred to as the old remaining amount) is compared (S102).
  • the “writable remaining amount” is the amount of data that can be written before the end of the life, specifically, the difference between the predicted total write amount limit 518 and the current total write amount 516 for each SSD 21.
  • the storage controller 10 moves the data of the high-load chunk from the RG of the existing SSD to the RG of the additional SSD (S103).
  • the storage controller 10 moves the data of the low-load chunk from the RG of the existing SSD to the RG of the additional SSD (S105).
  • the storage controller 10 stores the chunk data regardless of whether the chunk has a high load or a low load. Then, the RG of the existing SSD is moved to the RG of the additional SSD (S104).
  • FIG. 21 is a flowchart of the SSD control.
  • the SSD control is executed periodically, for example.
  • the SSD controller 200 determines whether a read request or a write request has been received from the storage controller 10 (S200).
  • the SSD controller 200 executes I / O processing (read / write processing) corresponding to the received request (S210), and updates the SSD internal management table 610. (S220).
  • I / O processing read / write processing
  • S220 the SSD controller 200 adds the data amount of the written data to the current write total amount 615 of the SSD internal management table 610.
  • the SSD controller 200 compresses data by the compression / decompression circuit 207 and writes the compressed data to the FM chip 210.
  • the SSD controller 200 sets the lifetime consumption rate 616 of the SSD internal management table 610 in S220. Update based on the number of erases performed.
  • the SSD controller 200 sends a request for sending the logical capacity (predicted value) and the total write amount (predicted value) for each OP rate from the storage controller 10. It is determined whether or not (the sending request in S83 of FIG. 18) has been received (S230).
  • the SSD controller 200 calculates a logical capacity predicted value (effective capacity expected value 624) and a write total amount predicted value (write total amount expected value 627) for each OP rate 622.
  • a logical capacity predicted value (effective capacity expected value 624)
  • a write total amount predicted value (write total amount expected value 627) for each OP rate 622.
  • the storage controller 10 (S240).
  • the predicted total write amount (expected write total value 627) is the write total amount guide value 625 ⁇ the write total amount correction value 626.
  • the SSD controller 200 determines whether or not the stop request for the SSD 21 has been received (S250). When the determination result of S250 is true (S250: Yes), the SSD controller 200 executes the stop process of the SSD 21. On the other hand, when the determination result of S250 is false (S250: No), the process returns to S200.
  • the optimum OP rate and the optimum additional number of SSDs to be added can be presented to the user.
  • 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 SSD 21 in addition to the variable OP function, has a cell mode change function that can change the amount of information (number of bits) that can be stored in the cell (flash memory cell) 215.
  • the FM chip 210 has a plurality of cells 215 for storing data, as shown in FIG.
  • a cell SLC (Single-Level Cell) that can store 1-bit information
  • a cell MLC (Multiple-Level Cell) or TLC (Triple) -Level Cell)
  • the SSD controller 200 (cell mode changing function) can change the number of bits that can be stored in the cell 215, for example, in units of blocks.
  • the technique described in Patent Document 4 US Patent Application Publication No. 2008/0250220 can be used.
  • a mode in which a cell can store 1-bit information is called “SLC mode”, a mode in which 2-bit data can be stored is called “MLC mode”, and a mode in which 3-bit data can be stored is called “TLC mode”.
  • SLC mode a mode in which 2-bit data can be stored
  • MLC mode a mode in which 2-bit data can be stored
  • TLC mode a mode in which 3-bit data can be stored
  • the capacity is SLC mode ⁇ MLC mode ⁇ TLC mode.
  • the lifetime (limit value of the total amount of data write) that is rewrite endurance is TLC mode ⁇ MLC mode ⁇ SLC mode. That is, when the cell is set to the SLC mode, the block has a small capacity but a long life. If the cell is in TLC mode, the block has a large capacity but a short life.
  • description will be made on the assumption that each block 211 of the FM chip 210 is set to either the SLC mode or the TLC mode.
  • FIG. 22 is a schematic diagram illustrating the relationship between the logical capacity and the physical capacity of the SSD according to the second embodiment.
  • the lower part shows the relationship between the logical capacity and the physical capacity when all the blocks 211 of the SSD 21 are set to the TLC mode
  • the upper part shows the block 211 set to the SLC mode
  • the relationship between the logical capacity and the physical capacity in the state where the blocks 211 set in the TLC mode are mixed is shown.
  • the user capacity 2100c and the spare capacity 2101c of the SSD 21 are all configured by blocks in the TLC mode.
  • the user capacity is configured by a first user capacity 2100a set to the SLC mode and a second user capacity 2100b set to the TLC mode.
  • the spare capacity 2101a is set to the TLC mode.
  • the total physical capacity (2100a, 2100b, 2101a) in the SSD 21 in which the SLC mode is mixed is smaller than the total physical capacity (2100c, 2101c) of the SSD 21 that is all in the TCL mode. Accordingly, the sum of the logical capacities (2102a, 2102b, 2103a) in the SSD 21 in which the SLC mode is mixed is smaller than the sum of the logical capacities (2102c, 2103c) of the SSD 21 all in the TCL mode.
  • the logical capacity of the SSD 21 becomes smaller than when all the blocks are set to the TLC mode.
  • the lifetime of the entire SSD 21 is greater when the SLC mode is mixed than when all the blocks are set to the TLC mode.
  • Example 2 The outline of Example 2 will be described.
  • FIG. 23 is a schematic diagram showing an outline of the second embodiment.
  • the SSD 21 has a function capable of setting the OP rate and the ratio of SLC and TLC to arbitrary values. For this reason, the additional logical capacity and the additional write total amount change depending on the OP rate and the SLC ratio (the ratio of SLC to the user capacity) set in the SSD 21, respectively.
  • a solid line 2001L1 and a solid line 2001L2 indicate capacity characteristics (relationship between the additional logical capacity and the additional write total amount) for SSDs with a low OP rate (for example, 20% or less). Specifically, a solid line 2001L2 indicates the capacity characteristic of the SSD when all the blocks of the user capacity are set to the TLC mode (SLC ratio 0%).
  • a solid line 2001H1 indicates the capacity characteristic of the SSD when all the blocks of the user capacity are set to the SLC mode (SLC ratio 100%).
  • the solid line 2001M1 and the solid line 2001M2 indicate the capacity characteristics of the SSD having a medium OP rate (for example, greater than 20% and less than 50%), respectively.
  • a solid line 2001M2 indicates the capacity characteristic of the SSD when the SLC ratio is set to 0%.
  • a solid line 2001M1 indicates the capacity characteristic of the SSD when the SLC ratio is set to 100%.
  • solid line 2001H1 and the solid line 2001H2 indicate the capacity characteristics of the SSD in the case of a high OP rate (for example, 50% or more), respectively.
  • a solid line 2001H2 indicates the capacity characteristic of the SSD when the SLC ratio is set to 0%.
  • a solid line 2001H1 indicates the capacity characteristic of the SSD when the SLC ratio is set to 100%.
  • the additional logical capacity and the additional write total amount vary depending on the ratio of SLC and TLC.
  • the storage controller 10 indicates the added number, the optimum OP rate, and the optimum SLC ratio determined by determining both the optimum OP rate and the optimum SLC ratio at which the added number of SSDs 21 is minimized.
  • Display additional proposal information including information.
  • FIG. 24 is a configuration diagram of an OP rate selection table according to the second embodiment.
  • Each record of the OP rate selection table 530a further holds an SLC ratio 541.
  • the SLC ratio 541 indicates the ratio of SLC mode blocks (SLC ratio) set in the added SSD. Although not shown, a plurality of SLC ratios 541 are prepared for each OP rate 535.
  • FIG. 25 is a configuration diagram of an OP rate basic management table according to the second embodiment.
  • Each record of the OP rate basic management table 600a further holds an SLC ratio 606.
  • the SLC ratio 606 indicates the ratio of the SLC mode set for the added SSD. Although not shown, a plurality of SLC ratios 606 are prepared for each OP ratio 602.
  • FIG. 26 is a configuration diagram of an SSD internal management table according to the second embodiment.
  • Each record of the SSD internal management table 610a holds a set SLC ratio 619.
  • the set SLC ratio 619 indicates the ratio of the SLC mode currently set in the SSD 21.
  • FIG. 27 is a configuration diagram of a write total expected value calculation table according to the second embodiment.
  • Each record of the write total amount expected value calculation table 620a further holds a set SLC ratio 628.
  • the SLC ratio 628 indicates the ratio of the SLC mode set in the SSD. Although not shown, a plurality of SLC ratios 628 are prepared for each OP rate 622.
  • FIG. 28 is a part of a flowchart of the necessity determination for addition according to the second embodiment.
  • S84a is performed instead of S84.
  • the storage controller 10 executes an additional SSD determination that determines the SLC mode ratio in addition to the optimum OP rate and the number of additional SSDs.
  • FIG. 29 is a part of a flowchart for determining an additional SSD according to the second embodiment.
  • S844a is performed instead of S844.
  • the storage controller 10 specifies the minimum required additional number 540 among the plurality of required additional numbers 540, and sets the OP rate 535 and the SLC ratio 541 corresponding to the specified minimum required additional number 540, respectively, as the optimum OP rate. And determined as the optimal SLC ratio.
  • a plurality of OP rates and a plurality of SLC ratios respectively corresponding to all the minimum required additional numbers 540 are determined as the optimal OP rate and the optimal SLC ratio, respectively.
  • the highest SLC ratio and the OP ratio corresponding to the highest SLC ratio may be determined as the optimum SLC ratio and the optimum OP ratio, respectively. If the highest SLC ratio and the corresponding OP ratio are the optimum SLC ratio and the optimum OP ratio, respectively, a configuration with a large total write amount can be recommended.
  • the optimum SLC ratio can be presented to the user in addition to the optimum additional number and the optimum OP rate.
  • the example in which the data compression processing using the lossless compression algorithm is performed as an example of the function of the SSD 21 that reduces the amount of data stored in the FM chip 210 has been described, but instead of using the lossless compression algorithm,
  • the amount of data stored in the FM chip 210 may be reduced by performing data deduplication processing.
  • deduplication is a technique for reducing and saving the capacity by searching for the same data in the entire storage area, and deleting other data while leaving one place, and can be said to be a data compression process in a broad sense.
  • the data compression rate in the first embodiment may be read as the deduplication rate.
  • the SSD 21 may execute both functions of the deduplication processing and the compression processing using the lossless compression algorithm, and in this way, the amount of data stored in the FM chip 210 is effectively reduced. be able to.
  • the storage controller 10 may perform compression processing and deduplication processing instead of the SSD 21.
  • the SSD 21 calculates the write total amount expected value 627 in consideration of the write total amount correction value 626 and notifies the storage controller 10 of the write amount.
  • the present invention is not limited to this, and the OP rate basic management table The storage controller 10 is notified of the record information for each OP rate of 600 and the correction value of the write total amount correction value 626 of the write total amount expected value calculation table 620 so that the storage controller 10 calculates the write total amount expected value. It may be.
  • the additional number 538 in the capacity requirement may be calculated based on the logical capacity guide value for each OP rate.
  • the additional number 540 in the total write amount requirement may be calculated based on the total write amount standard value for each OP rate.
  • the storage controller 10 displays the additional proposal information including the information indicating the added number and the OP rate when the number of added SSDs 21 is the smallest. For example, for each OP rate, additional proposal information including information indicating the additional number of SSDs 21 that satisfy the requirement may be displayed. That is, the additional information may include information indicating a plurality of combinations of combinations of the additional number and the OP rate that satisfy the requirement.
  • the storage controller 10 calculates the estimated result from the transition of the capacity use result.
  • the present invention is not limited to this.
  • the use result specified by the user from the management system 5 is used. By receiving it, you may obtain the use results in the future time.
  • the case where the block 211 is set to either the SLC mode or the TLC mode has been described as an example. However, for example, any combination of a plurality of modes may be used. Further, in the case where a mode capable of storing information of 4 bits or more is provided in the cell 215, a plurality of modes including or set to the mode may be used.
  • the write total amount expected value calculation table 620 stores a plurality of OP rates 622, an effective capacity expected value 624 and a write total amount expected value 627 for each OP rate 622, but the OP rate 622,
  • the relationship between the effective capacity expected value 624 and the write total amount expected value 627 may be expressed in other types such as a calculation formula.
  • the OP rate selection table 530 stores a plurality of OP rates 535, the expected effective capacity 536 and the expected write total amount 537 for each OP rate 535, but the OP rate 535, the expected effective capacity 536 and the expected write total amount.
  • the relationship with 537 may be expressed in other types such as a calculation formula.
  • the write total expected value calculation table 620a stores a plurality of SLC ratios 628, an effective capacity expected value 624 and a write total expected value 627 for each SLC ratio 628 for each of the plurality of OP rates 622.
  • the relationship between the OP rate 622 and the SLC ratio 628, the effective capacity expected value 624, and the write total amount expected value 627 may be expressed in other types such as a calculation formula.
  • the OP rate selection table 530a for each of the plurality of OP rates 535, a plurality of SLC ratios 541, an expected effective capacity 536 and an expected total write amount 537 for each SLC ratio 541 are stored.
  • the relationship between the SLC ratio 541, the expected effective capacity 536, and the expected write total amount 537 may be expressed in another type such as a calculation formula.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

計算機システムが、必要な全体論理容量と現状の全体論理容量の上限とに基づく目標追加論理容量と、必要全体ライト総量と現状の全体ライト総量の上限とに基づく目標追加ライト総量とのうちの少なくとも1つである目標追加量を算出する。全体論理容量は、全ての不揮発メモリデバイスがそれぞれ提供する論理容量の合計である。全体ライト総量は、全ての不揮発メモリデバイスにそれぞれ対応したライト総量の合計である。各不揮発メモリデバイスについて、ライト総量は、その不揮発メモリデバイスの不揮発メモリに書き込まれるデータの総量である。計算機システムが、下記(b1)と(b2)との関係、 (b1)目標追加量、 (b2)不揮発メモリデバイスの追加台数と、追加される不揮発メモリデバイスのOP率、 に関する情報を含んだ情報である追加提案情報を表示する。

Description

計算機システム及び管理方法
 本発明は、概して、複数の不揮発性メモリデバイスの管理に関する。
 一般的に、ストレージ装置は、データを格納する複数の記憶デバイスと、その複数の記憶デバイスを制御するストレージコントローラとを有している。ストレージコントローラが、計算機に大容量のデータ格納空間を提供する。
 ストレージ装置に搭載される記憶デバイスとしては、一般に、HDD(Hard Disk Drive)が使用される。
 ストレージ装置に格納されるデータは、使用を開始してから時間が経過するにしたがって増加し、場合によっては、ストレージ装置に新たなHDDを追加しなくてはならない状況が発生する。
 このような状況に対する技術として、特許文献1には、ストレージ装置が備える物理ディスクの増設の時期及び増設台数の履歴を記憶し、履歴とストレージ装置の使用予定期間とから、物理ディスクの増設台数を算出して出力する技術が開示されている。
 近年、ストレージ装置に搭載される記憶デバイスとして、HDDに加えて又は代えて、不揮発性メモリ(例えば、FM:フラッシュメモリ)を有する不揮発メモリデバイス(例えばSSD:Solid State Drive)が使用されるようになってきている。
 SSDは、一般的にNAND型のFM、典型的には複数のFMチップを搭載している。各FMチップは、複数のブロック(物理ブロック)を有し、各ブロックは、複数のページ(物理ページ)を有する。SSDは、ページ単位でデータのリードやライトを行う。各FMチップは、追記型である。すなわち、ページが割り当てられている論理領域がライト先の場合、ライト先論理領域に、割当て済のページに代えて新たに空きページが割り当てられ、新たに割り当てられたページにデータが書き込まれる。各論理領域について、最近割り当てられたページに書き込まれているデータ(つまり最新のデータ)は「有効データ」であり、有効データが書き込まれているページは「有効ページ」であり、過去に割り当てられていたページに格納されているデータは「無効データ」であり、無効データが書き込まれているページは「無効ページ」である。また、有効ページでも無効ページでも無く新たにデータを格納可能なページが、「空きページ」である。各FMチップは、追記型であるため、ページに格納したデータを上書きすることが原理的に出来ない。故に、新たなデータを格納するには、リクラメーション処理にて、ページからデータを一度消去する必要がある。データの消去はブロック単位で行われる。なお、以下の説明では、ブロックからデータを消去することを、以下、「ブロックを消去する」ということがある。
 ここで、「リクラメーション処理」とは、1以上のブロックの各々を消去することで、再度利用可能なブロックを生成する処理である。リクラメーション処理においてブロックを消去する際には、消去対象のブロック中の有効データを、別のブロックへ移動しなければならない。このため、SSDは、1以上の予備のブロック(予備ブロック)を必要とする。全予備ブロックの総容量を、「予備容量」という。このようにSSDにおいては予備容量が必要であるため、ユーザがデータの格納に利用可能な容量(「ユーザ容量」という)は、SSDの物理容量(SSDが有する全ブロックの総容量)から予備容量を差し引いたものになる。なお、SSDにおけるユーザ容量に対する予備容量の比率を、「オーバープロビジョニング率(OP率)」という。OP率を下げることで、ユーザ容量が増え、OP率を上げることで、ユーザ容量が減る。また、SSDの論理容量は、そのSSDのユーザ容量に基づく。
 FMチップは、その構成上、有限の消去回数を持つため、ライト総量(ライトされるデータの総量)の上限値(すなわち寿命)が存在する。したがって、FMチップを搭載しているSSDにも寿命が存在することとなる。
 SSDのOP率は、SSDの寿命や論理容量(ユーザ容量)に影響を与える。例えば、OP率が大きなSSDでは、予備容量が大きいので、リクラメーション処理中に発生するデータの移動回数が抑えられ、データの移動による寿命の消費量が小さくなる。このため、書き換え耐性が向上(長寿命化)するメリットがあるが、予備容量が大きくなるので、ユーザ容量が小さくなるというデメリットがある。一方、OP率が小さなSSDでは、予備容量が小さいので、リクラメーション処理中のデータの移動回数が増加し、データの移動による寿命の消費量が大きくなる。このため、書き換え耐性が低下(短寿命化)するデメリットがあるが、ユーザ容量を大きくできるというメリットがある。すなわち、ユーザ容量と、SSDの寿命とは、トレードオフの関係をもっており、その値はOP率によって変化する。
 一般的なSSDのOP率は固定であるが、特許文献2には、ユーザが運用形態にあわせて、SSDのOP率を変更することのできる機能が開示されている。OP率を変更する機能を、以下、便宜上、「可変OP機能」ということとする。なお、SSDに関して、特許文献3及び4に開示の技術も知られている。
特開2016-009433号公報 米国特許公開第2011/0099320号明細書 国際公開第2012/168962号パンフレット 米国特許出願公開第2008/0250220号明細書
 SSDが可変OP機能を備えると、ユーザはSSDに対する構成設定の自由度を得ることができるため、容量面や寿命面での柔軟な運用が可能となる。その反面、OP率の選択という選択肢が増えたことで、ユーザはOP率の値をどのようにすべきか判定することが難しくなる。
 例えば、ストレージ装置において、搭載したSSDの容量又は寿命に枯渇が迫ってきた場合においては、ストレージ装置に新たなSSDを追加搭載する必要が生じる。このような状況において、ユーザは追加するSSDのOP率と台数を決定しなければならないが、ユーザにとってこの判定は困難である。例えば、最適なOP率を選択することができれば、SSDの追加台数を最適な台数にすることが期待できる。一方、OP率の選択を誤ると、SSDの追加台数が必要台数を超えてしまうおそれがある。
 このような課題は、SSD以外の不揮発メモリデバイスについてもあり得る。
 計算機システムが、必要な全体論理容量と現状の全体論理容量の上限とに基づく目標追加論理容量と、必要全体ライト総量と現状の全体ライト総量の上限とに基づく目標追加ライト総量とのうちの少なくとも1つである目標追加量を算出する。全体論理容量は、全ての不揮発メモリデバイスがそれぞれ提供する論理容量の合計である。全体ライト総量は、全ての不揮発メモリデバイスにそれぞれ対応したライト総量の合計である。各不揮発メモリデバイスについて、ライト総量は、その不揮発メモリデバイスの不揮発メモリに書き込まれるデータの総量である。計算機システムが、下記(b1)と(b2)との関係、
(b1)目標追加量、
(b2)不揮発メモリデバイスの追加台数と、追加される不揮発メモリデバイスのOP率、
に関する情報を含んだ情報である追加提案情報を表示する。
 目標追加量と追加台数及びOP率との関係をユーザが容易に把握できる。
実施例1において容量使用実績の推移に基づいて追加論理使用容量合計及び追加ライト総量合計の少なくとも1つを算出することの概要を示す模式図である。 算出された目標追加論理容量及び目標追加ライト総量の少なくとも1つに基づき最適OP率を決定することの概要を示す模式図である。 情報システムの構成を示すブロック図である。 SSDの構成を示すブロック図である。 SSDの物理容量の内訳とOP率との関係を説明する模式図である。 SSDの物理容量と論理容量との関係を説明する模式図である。 ストレージ装置のボリュームの構成を説明する模式図である。 仮想ボリューム管理テーブルの構成図である。 プール管理テーブルの構成図である。 RAIDグループ管理テーブルの構成図である。 ドライブ管理テーブルの構成図である。 使用実績管理テーブルの構成図である。 OP率選択テーブルの構成図である。 OP率基礎管理テーブルの構成図である。 SSD内部管理テーブルの構成図である。 ライト総量期待値算出テーブルの構成図である。 ストレージ制御のフローチャートである。 追加要否判定のフローチャートである。 追加SSD決定のフローチャートである。 データ移動のフローチャートである。 SSD制御のフローチャートである。 実施例2に係るSSDの論理容量と物理容量との関係を説明する模式図である。 SLC比率及びOP率と容量特性との関係の一例を示す模式図である。 実施例2に係るOP率選択テーブルの構成図である。 実施例2に係るOP率基礎管理テーブルの構成図である。 実施例2に係るSSD内部管理テーブルの構成図である。 実施例2に係るライト総量期待値算出テーブルの構成図である。 実施例2に係る追加要否判定のフローチャートの一部である。 実施例2に係る追加SSD決定のフローチャートの一部である。
 幾つかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
 また、以下の説明では、「記憶部」は、1以上のメモリを含む。記憶部に関して少なくとも1つのメモリは、揮発性メモリでよい。記憶部は、主に、プロセッサ部による処理の際に使用される。
 以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサ部は、処理の一部又は全部を行うハードウェア回路を含んでもよい。また、プロセッサ部が実行する処理は、ストレージコントローラ又は管理システムが実行する処理ということもできる。
 また、以下の説明では、「aaaテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「aaaテーブル」を「aaa情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
 また、以下の説明では、「計算機システム」は、ストレージシステム及び管理システムのうちの少なくとも1つを含む。ストレージシステムは、1以上のストレージ装置を含む。ストレージ装置は、データを格納する装置である。ストレージ装置は、仮想的な計算機(例えばVM(Virtual Machine))を実行してもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。
 また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数のPDEV(典型的には同種のPDEV)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号における共通部分を使用し、同種の要素を区別して説明する場合は、参照符号を使用することがある。
 以下、実施例1について説明する。
 まず、実施例1の概要について説明する。
 ストレージ装置が、複数(又は1)のSSD(と、複数のSSDに接続されたストレージコントローラとを有する。
 図1に示すように、ストレージコントローラが、ストレージ装置の各時点での容量使用実績として全体使用論理容量及び全体使用ライト総量を管理する。
 「全体使用論理容量」とは、ストレージ装置が有する複数のSSDにそれぞれ対応した複数の使用論理容量の合計である。各SSDについて、「使用論理容量」とは、そのSSDが提供した論理容量(論理アドレス空間)のうち使用されている論理容量(データの書き込み先とされたアドレス空間部分の合計)である。図1の横軸が、全体使用論理容量を示す。なお、ここで、「複数のSSD」は、ストレージ装置が管理する所定の論理空間に基づく全SSDの一例である。「所定の論理空間」の一例が、後述のプールである。全SSDは、ストレージ装置内の全SSDであってもよい。
 「全体使用ライト総量」とは、ストレージ装置が有する複数のSSDにそれぞれ対応した複数の実際のライト総量の合計である。各SSDについて、「ライト総量」とは、そのSSDに書き込まれたデータの量の総量である。図1の縦軸が、全体ライト総量を示す。
 ストレージコントローラは、容量使用実績の推移(例えば、1年目~3年目の容量使用実績3000A~3000C)に基づいて、将来のある時点(例えば5年目)における容量使用実績を推定する、つまり、推定実績2005を算出する。具体的には、例えば、ストレージコントローラは、直線近似等を行って、容量使用実績3000のグラフの傾きを特定し、5年後における容量使用実績を推定する(推定実績2005を算出する)。以下、推定実績2005としての全体使用論理容量を、「推定全体論理容量」と言い、推定実績2005としての全体ライト総量を、「推定全体ライト総量」と言う。推定全体論理容量は、必要な全体論理容量の一例である。全体ライト総量は、必要な全体ライト総量の一例である。
 一方、ストレージコントローラは、ストレージ装置の現状構成2000、具体的には、全体論理容量上限と、全体ライト総量上限とを把握している。「全体論理容量上限」は、ストレージ装置が有する複数のSSDにそれぞれ対応した複数の論理容量(例えば後述の有効容量(論理容量のうちの使用可能な部分))の合計に相当する。「全体ライト総量上限」は、その複数のSSDにそれぞれ対応した複数のライト総量上限の合計に相当する。各SSDについて、「ライト総量上限」は、後述のライト総量の予想限界値518(617)に相当し、例えば、そのSSDのユーザ容量と、そのSSDのユーザ容量分のブロックの消去可能回数とに基づく。
 ストレージコントローラは、推定実績2005が現状構成2000を上回るか否かを判定する。具体的には、ストレージコントローラは、下記(a)及び(b)のうちの少なくとも1つが成立するか否かを判定する。
(a)推定全体論理容量>全体論理容量上限
(b)推定全体ライト総量>全体ライト総量上限
 この判定の結果が真であれば、SSDの追加が必要ということである。この場合、ストレージコントローラは、目標追加量を算出する。「目標追加量」とは、追加量の目標値である。「追加量」は、追加ライト総量及び追加論理容量のうちの少なくとも1つである。具体的には、ストレージコントローラは、下記(x)及び(y)のうちの少なくとも1つである目標追加量を算出する。(a)が成立した場合、(x)が算出される。(b)が成立した場合、(y)が算出される。
(x)目標追加ライト総量3003=推定全体ライト総量-全体ライト総量上限
(y)目標追加論理容量3004=推定全体論理容量-全体論理容量上限
 上記のように、目標追加ライト総量3003は、典型的には、推定全体ライト総量と全体ライト総量上限との差分であるが、推定全体ライト総量と全体ライト総量上限とに基づく他の値(例えば差分より所定値分大きい値)であってもよい。同様に、目標追加論理容量3004は、典型的には、推定全体論理容量と全体論理容量上限との差分であるが、推定全体論理容量と全体論理容量上限とに基づく他の値(例えば差分より所定値分大きい値)であってもよい。
 ストレージコントローラは、算出された目標追加量と、SSDのOP率及び追加台数との関係に従う情報である追加提案情報を表示する(例えば、ストレージ装置に接続された管理システムに表示する)。追加提案情報は、下記のうちの少なくとも1つを示す情報を含んでよい。
・目標追加量と、OP率に従う容量特性(追加論理容量と追加ライト総量との関係)と、SSDの追加台数との関係。
・目標追加量に基づき決定された最適OP率及び最適追加台数。「最適OP率」とは、目標追加量以上の追加量を実現できる追加台数のうち最小の追加台数に対応したOP率である。「最適追加台数」は、その最小の追加台数である。
 図1の例では、(a)及び(b)の両方が成立したとし、故に、(x)及び(y)の両方が算出されたとする。この場合、ストレージコントローラは、追加提案情報として、図2に示す情報の全部又は一部を表示する。図2において、横軸は、追加論理容量を示し、縦軸は、追加ライト総量を示している。
 実線2001H、2001M及び2001Lは、高OP率(例えば50%以上)、中OP率(例えば20%より大きく50%より小さい)及び低OP率(例えば20%以下)にそれぞれ対応した容量特性(追加論理容量と追加ライト総量との関係)を示している。実線2001Lによれば、追加されるSSDが、低OP率のSSDであれば、SSD1台当たりの追加論理容量が大きいものの追加ライト総量が小さい。一方、実線2001Hによれば、追加されるSSDが、高OP率のSSDであれば、SSD1台当たりの追加論理容量が小さいものの追加ライト総量が大きい。なお、各OP率における容量特性(実線2001の傾き)の期待値は、例えば、SSDが保持しており、ストレージコントローラが必要に応じてその情報をSSDから取得し使用することができる。OP率の段階は、高、中及び低の3段階よりも小さくても大きくてもよい。
 図2における各破線は、SSDの追加台数N(ここでは、N=4、8、12又は20)に対応している。言い換えれば、複数の実線2001の各々に、追加台数Nに対応した追加量をプロットし、複数の実線2001にそれぞれプロットされた複数の点を結ぶと、追加台数Nに対応した破線が得られる。なお、図2においては、3D+1PのRAIDグループ(4台のSSDで構成されたRAIDグループ)が追加の最小単位であると仮定する。また、各破線は、各SSDについて、物理容量及びOP率(及び圧縮率の期待値)に基づいて得られる予想論理容量(例えば後述の有効容量の予想値)及び予想ライト総量に従う。
 ストレージコントローラは、目標追加量3005と、各OP率についてのSSD単位追加台数当たりの追加量(例えば論理容量及びライト総量の各々の予想値(期待値))とに基づき、最適構成としての最適OP率及び最適追加台数を特定する。具体的には、例えば、ストレージコントローラは、目標追加ライト総量3003及び目標追加論理容量3004のいずれも超える追加量2007A~2007Cのうち、目標追加量3005からの距離が最短の追加量2007Aに対応したOP率「中」及び追加台数「8」を、最適OP率及び最適追加台数として特定する。ストレージコントローラが表示する追加提案情報は、特定された最適構成を示す情報(例えば、中OP率のSSDを8台追加することを提案するメッセージ)を含んでよい。
 次に、実施例1を詳細に説明する。
 図3は、実施例1に係る情報システムの構成図である。
 計算機システム10000は、ストレージ装置1(ストレージシステムの一例)と、管理システム5とを含む。ストレージ装置1に、SAN(Storage Area Network)3を介して、1以上のホスト計算機(以下ホストという)2が接続される。ストレージ装置1に、イーサネット(登録商標)を用いて形成されるLAN(Local Area Network)6を介して管理システム5が接続される。SAN3及びLAN6のうちの少なくとも1つは別種の通信ネットワークでもよい。また、ストレージ装置1、ホスト2及び管理システム5は同一の通信ネットワークに接続されてもよい。
 ストレージ装置1は、ストレージコントローラ10と、ストレージコントローラ10に接続された複数のSSD21及び複数のHDD25を有する。
 SSD21は、ホスト2などの上位装置からのライトデータを格納するための記憶デバイスであり、フラッシュメモリ等の不揮発性メモリを記憶媒体として採用した記憶デバイス(不揮発性メモリデバイス)である。SSD21の内部構成は後述する。SSD21は、例えば、SAS(Serial Attached SCSI)規格に従う伝送線(SASリンク)や、PCI(Peripheral Component Interconnect)規格に従う伝送線(PCIリンク)などによって、ストレージコントローラ10と接続されている。
 HDD25は、磁気ディスクを記録媒体とする記憶デバイスである。HDD25もSSD21と同様に、SASリンクなどによってストレージコントローラ10に接続されている。なお、ストレージ装置1を、HDD25が接続されず、SSD21のみが接続された構成としてもよい。以下の説明においては、ストレージ装置1には、記憶デバイスとしてSSD21のみが接続されている構成として説明する。
 ストレージコントローラ10は、CPU(Central Processing Unit)11、フロントエンドインターフェース(FE-I/F)12、バックエンドインターフェース(BE-I/F)13、メモリ14、及び管理用インターフェース(M-I/F)15を有する。CPU11、FE-I/F12、BE-I/F13、メモリ14、及びM-I/F15は、内部スイッチ(内部SW)16を介して相互接続されている。I/F12、13及び15が、インターフェース部の一例である。メモリ14が、記憶部の一例である。CPU11が、プロセッサ部の一例である。図3においては、ストレージコントローラ10の各構成要素がそれぞれ1つだけ示されているが、高性能化及び高可用性の確保のため、これらの構成要素の少なくとも1つがストレージコントローラ10内に複数備えられてもよい。また、ストレージコントローラ10は、内部SW16ではなく、共通バスを介して各構成要素が相互接続された構成にしてもよい。
 BE-I/F13は、図示しないインターフェースコントローラと転送回路とを有する。インターフェースコントローラは、SSD21が用いるプロトコル(例えば、SAS)と、ストレージコントローラ10内部で用いられる通信プロトコル(例えば、PCI-Express)とのプロトコル変換を行う。転送回路は、SSD21との間のデータの転送(リード、ライト)を行う処理を行う。
 FE-I/F12は、BE-I/F13と同様に、図示しないインターフェースコントローラと転送回路とを有する。FE-I/F12のインターフェースコントローラは、ホスト2とストレージコントローラ10との間のデータ転送経路で用いられる通信プロトコル(例えば、ファイバチャネル)と、ストレージコントローラ10内部で用いられる通信プロトコルとのプロトコル変換を行う。
 CPU11は、ストレージ装置1の各種制御を行う。メモリ14は、CPU11が実行するプログラムや、CPU11が使用するストレージ装置1の管理情報を記憶する。また、メモリ14は、SSD21に対するI/O対象データを一時的に記憶するためにも用いられる。以下、SSD21に対するI/O対象データを一時的に記憶するために用いられる、メモリ14中の記憶領域を、「キャッシュ」という。メモリ14は、例えば、DRAM、SRAM等の揮発性記憶媒体で構成されてもよく、不揮発性メモリで構成されてもよい。本実施例では、メモリ14は、ストレージコントローラ10による後述する処理を実行するためにCPU11が実行するプログラムを記憶している。また、メモリ14内の管理情報は、例えば、後述するVVOL管理テーブル500、プール管理テーブル550、RG管理テーブル560、ドライブ管理テーブル510、使用実績管理テーブル520、及びOP率選択テーブル530を含む。
 管理システム5は、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が表示デバイスを有していて管理計算機が自分の表示デバイスに情報を表示する場合、管理計算機が管理システム5でよい。また、例えば、管理計算機(例えばサーバ)が表示用情報を遠隔の表示用計算機(例えばクライアント)に送信し表示用計算機がその情報を表示する場合(管理計算機が表示用計算機に情報を表示する場合)、管理計算機と表示用計算機とのうちの少なくとも管理計算機を含んだシステムが管理システム5でよい。管理システム5は、インターフェース部61、記憶部62及びそれらに接続されたプロセッサ部63を有してよい。インターフェース部61は、ユーザインターフェース部と、通信インターフェース部とのうちの少なくとも1つを含んでよい。ユーザインターフェース部は、1以上のI/Oデバイス(例えば入力デバイス(例えばキーボード及びポインティングデバイス)と出力デバイス(例えば表示デバイス))と表示用計算機とのうちの少なくとも1つのI/Oデバイスを含んでよい。通信インターフェース部は、1以上の通信インターフェースデバイスを含んでよい。管理システム5における計算機が「表示用情報を表示する」ことは、計算機が有する表示デバイスに表示用情報を表示することであってもよいし、計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。記憶部62は、プロセッサ部63によりアクセスされる情報やプロセッサ部63により実行されるプログラムを記憶する。プロセッサ部63は、記憶部62からプログラムを読み出して実行することにより、記憶部62内の情報を参照してストレージ装置1の管理を行う。
 次に、SSD21の構成について説明する。
 図4は、SSD21の構成図である。
 SSD21は、SSDコントローラ200とFM(複数のFMチップ210)とを備える。SSDコントローラ200は、CPU201、FE-I/F202、BE-I/F203、メモリ204、圧縮・伸張回路207を有し、これらは内部スイッチ(内部SW)205を介して相互接続されている。
 FE-I/F202は、SSD21とストレージコントローラ10との間の通信を行うためのインターフェースコントローラである。FE-I/F202は、伝送線(SASリンクや、PCIリンク)を介してストレージコントローラ10のBE-I/F13と接続される。
 BE-I/F203は、SSDコントローラ200とFMチップ210と間の通信を行うためのインターフェースコントローラである。BE-I/F203は、伝送線を介してFMチップ210と接続される。
 CPU201は、ストレージコントローラ10から到来する各種コマンドに係る処理等を行う。メモリ204は、CPU201が実行するプログラムや、各種管理情報を記憶する。メモリ204は、DRAM、SRAM等の揮発性記憶媒体で構成されてもよく、不揮発性メモリで構成されてもよい。メモリ204には、後述する、OP率基礎管理テーブル600、SSD内部管理テーブル610、ライト総量期待値算出テーブル620が格納される。
 圧縮・伸張回路207は、データの圧縮処理や伸張処理を行う回路である。FMチップ210は、例えば、NAND型フラッシュメモリ等の不揮発性半導体メモリチップである。FMチップ210は、複数のダイ213を有する。各ダイ213は、複数のブロック(物理ブロック)211を有する。各ブロック211は、複数のページ(物理ページ)214を有する。リード及びライトはページ単位で実施され、データの消去はブロック単位で実施される。各ページ214は、複数のセル215を有する。各セル215は、トランジスタ等から構成された記憶素子であり、1ビット又は複数ビットのデータを保持することができる。
 本実施例において、SSD21は、複数のFMチップと、それらを制御するSSDコントローラとを備える記憶媒体であり、外観形状等がフォームファクタに限定されるものではない。FMに代えて、FM以外の不揮発性メモリ、例えばPRAM(Phase-change Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistive Random Access Memory)又はFeRAM(Ferroelectric Random Access Memory)が採用されてもよい。
 次に、SSD21の物理容量の内訳とOP率との関係について説明する。
 図5は、SSD21の物理容量の内訳とOP率との関係を説明する模式図である。
 SSD21の物理容量とは、SSD21が備えるFMチップ210の物理的な容量を意味し、その値はSSD21の全FMチップ210の合計容量に等しい。
 SSD21の物理容量は、ユーザデータ(ホスト2からのデータの少なくとも一部)を格納するために利用される物理領域(ユーザ領域)の容量であるユーザ容量2100と、リクラメーションの実行等に利用される物理領域(予備領域)の容量である予備容量2101とに分配される。ユーザ容量2100に対する予備容量2101の割合が「OP率」である。OP率は、予備容量2101÷ユーザ容量2100の計算式で算出してもよく、(物理容量-ユーザ容量)÷ユーザ容量の計算式で算出してもよく、物理容量÷ユーザ容量-1の計算式で算出してもよく、要は、ユーザ容量2100に対する予備容量2101の割合を算出できる式であればよい。
 SSD21は、OP率を変えることのできる可変OP機能を備えている。この可変OP機能を実現するために、SSD21には、ユーザ容量2100と予備容量2101との容量をユーザが変更可能なインターフェースが設けられている。SSD21において、OP率を高く設定すると、予備容量2101が大きくなるため、ユーザ容量2100は小さくなる。一方、OP率を低く設定すると、予備容量2101が小さくなるため、ユーザ容量2100が大きくなる。
 次に、SSD21の物理容量と論理容量との関係を説明する。
 図6は、SSD21の物理容量と論理容量との関係を説明する図である。
 SSD21は、接続先のストレージコントローラ10に対して、自身の物理領域に基づく論理領域(論理アドレス空間)を提供している。この論理領域は、ユーザの物理領域と関連づけられて管理されており、SSD21の論物アドレス変換機能により、論理領域と物理領域とのアドレス変換が可能となっている。
 SSD21は、圧縮・伸張回路207によるデータの圧縮機能を持っている。また、SSD21は、特許文献3(国際公開第2012/168962号)に記載されているような、データの圧縮率に応じて論理容量を拡張する機能を有している。このため、SSD21においては、論理容量を物理容量よりも大きくすることができる。なぜならSSD21に実際に格納されるデータは、SSD21の内部で圧縮されてサイズが小さくされるからである。
 例えば、SSD21における、データの最大圧縮率が12.5%(すなわち、データサイズが1/8の大きさになる)であって、実際のデータの圧縮率が12.5%である場合には、SSD21の論理容量は、ユーザ容量2100の8倍に拡張することができる。そこで、本実施例では、SSD21は、ストレージコントローラ10に対して、予めユーザ容量2100の8倍の論理容量を提供している。
 ここで、実際のデータの圧縮率が最大圧縮率に満たない場合には、SSD21が提供可能な論理容量はユーザ容量2100の8倍よりも小さくなり、使用不可能となる容量が発生する。従って、SSD21の論理容量は、ストレージコントローラ10が使用可能(ユーザデータを格納可能)な論理容量部分である有効容量2102と、ストレージコントローラ10が使用不可能(ユーザデータを格納不可能)な論理容量部分である無効容量2103とを含む。SSD21におけるデータの平均圧縮率をa%とすると、有効容量2102のサイズは、ユーザ容量/aで求められる値となる。なお、有効容量2102と無効容量2103との合計値は、例えば、SSD21のユーザ容量2100の8倍となっている。
 SSD21におけるデータの圧縮率は動的に変化し得るため、有効容量2102と無効容量2103との値も、運用中に動的に変化し得る。そのため、SSD21は、ストレージコントローラ10に対して、論理容量や平均圧縮率などの内部情報を通知するインターフェースを備えている。ストレージコントローラ10は、このインターフェースを介してSSD21から取得した内部情報に基づいて、後述するプール容量の管理等の処理を実行する。
 次に、ストレージ装置1のボリュームの構成を説明する。
 図7は、ストレージ装置のボリューム構成を説明する図である。
 ストレージコントローラ10は、容量仮想化機能を有している。容量仮想化機能とは、ストレージ装置1の物理容量よりも大きな仮想容量を、VVOLとしてホスト2に提供する技術である。
 ストレージコントローラ10は、複数の物理的なRG(4台のSSD21)にそれぞれ対応した複数の論理的なRG30を構成している。複数のRG30は、RG30A及び30Bを含む。ストレージコントローラ10は、2つのRG30A及び30Bをまとめて、記憶領域集合の一例としてのプール40を構成している。
 RG30Aを例に取る。RG30Aは、例えば、物理的なRG(3D+1P)に対応しているため、パリティ分の1台のSSD21を除く3台の論理的なSSD20A~20Cで構成されている。各SSD20の論理容量は、SSD21の論理容量分である。各SSD20の容量は、有効容量2102と無効容量2103に分割されていてよい。
 ストレージコントローラ10は、プール40を所定サイズの区画に分割して管理している。この区画を「チャンク」と呼ぶ。RG30Aにはチャンク31Aが作成され、RG30Bにはチャンク31Bが作成されている。
 ストレージコントローラ10は、ホスト2に対してVVOL50を提供する。VVOL50は、例えば、シンプロビジョニングに従う仮想的なボ論理リュームである。ストレージコントローラ10は、ホスト2からVVOL50に対するライト要求を受信すると、プール40内の任意のチャンク31を、VVOL50の仮想チャンク51(ライト要求で指定された論理アドレスが属するアドレス範囲)に割り当て、ライト要求に伴うデータをチャンク31に書き込む。
 SSD20は、有効容量2102と無効容量2103の合計であり、SSD21の物理容量の8倍の数値となっている。ただし、有効容量2102及び無効容量2103の各々は、データの圧縮率に応じて変化するため、ストレージコントローラ10は、SSD21から論理容量、物理容量及び圧縮率などの内部情報を定期的に取得し、RG30やプール40などの容量の管理などを行う。
 ストレージコントローラ10は、図9を参照して後述するように、SSD21の論理容量の変動を、チャンクの属性を変更することで吸収することができる。
 ストレージコントローラ10は、チャンクのデータをRG30間で移動するデータ移動機能を有する。データ移動機能は、RG30間で、SSD21のライト負荷の平準化を図る場合や、新たなSSD21が追加搭載された際に、既存のSSD21と追加SSD21との間で、使用容量(データ格納容量)の平準化を図る目的で使用される。なお、図7は、チャンク31Aのデータをチャンク31Bに移動する例を示している。このとき、ストレージコントローラ10は、仮想チャンク51の割当先をチャンク31Aからチャンク31Bへと内部的に変更するが、ホスト2と仮想チャンク51の対応関係はそのまま維持される。そのため、ストレージコントローラ10は、データ移動の影響をホスト2に対して隠蔽することができる。
 次に、ストレージコントローラ10のメモリ14に格納されている各種テーブルの構成について説明する。
 まず、VVOL管理テーブル500の構成について説明する。
 図8は、VVOL管理テーブル500の構成図である。
 VVOL管理テーブル500は、ストレージ装置1内に定義された各VVOL50内の仮想チャンクと、プール40のチャンクとのマッピング関係を管理するためのテーブルである。VVOL管理テーブル500は、仮想チャンク毎にレコードを有する。各レコードは、VVOL#(番号)501、プール#503、LBA範囲504、仮想チャンク#505、RG#506及びチャンク#507といった情報を保持する。
 VVOL#501は、仮想チャンクを含むVVOLの識別番号である。プール#503は、仮想チャンクを含むVVOLが関連付けられているプール(そのVVOLに対するチャンクの割当て元となるプール)40の識別番号である。LBA範囲504は、仮想チャンクのLBA(Logical Block Address)範囲を示す。仮想チャンク#505は、仮想チャンクの識別番号である。RG#506は、仮想チャンクに割り当てられているチャンクを有するRGの識別番号である。チャンク#507は、仮想チャンクに割り当てられているチャンクの識別番号である。
 次に、プール管理テーブル550の構成について説明する。
 図9は、プール管理テーブル550の構成図である。
 プール管理テーブル550は、プール40を管理するテーブルであり、プール40毎のテーブルでよい。プール管理テーブル550は、プールにおけるチャンク毎にレコードを有する。各レコードは、プール#551、RG#552、チャンク#553、LBA範囲554、ステータス555、ライト量556、リード量557、運用開始日558及び目標運用期間559といった情報を保持する。
 プール#551は、チャンクを含んだプールの識別番号である。RG#552は、チャンクを含んだRGの識別番号である。チャンク#553は、チャンクの識別番号である。LBA範囲55には、チャンクのLBA範囲を示す。
 ステータス555は、チャンクのステータス、例えば、仮想チャンクに割り当てられているか否かに関するステータスを示す。“割当済”は、チャンクが仮想チャンクに割り当てられていることを意味する。“未割当”は、チャンクが仮想チャンクに割り当てられていないことを意味する。“割当不可”は、チャンクを仮想チャンクに割り当てることができないことを意味する。圧縮率の低下によって使用不可となった無効容量2103分のチャンクのステータス555が、“割当不可”とされる。なお、ステータス555“割当済”又は“未割当”に対応したチャンクは、有効容量2102に属するチャンクである。或る時点におけるプールの使用量は、ステータス555“割当済”のチャンクの容量の合計に等しく、プールの残量は、ステータス555“未割当”のチャンクの容量の合計に等しい。
 ライト量556は、特定の期間にチャンクに書き込まれたデータの総量を示す。リード量557は、特定の期間にチャンクから読み出されたデータの総量を示す。運用開始日558は、プールが作成された日付を示す。目標運用期間559は、プールを運用する目標の期間(目標運用期間)を示す。この目標運用期間559は、図1に示す目標運用年数に対応する。
 次に、RG管理テーブル560の構成について説明する。
 図10は、RG管理テーブル560の構成図である。
 RG管理テーブル560は、RGを管理するテーブルである。RG管理テーブル560は、ドライブ(本実施例ではSSD又はHDD)毎にレコードを有する。各レコードは、RG#561、RAIDレベル562、ドライブ#563及びLBA範囲564といった情報を保持する。
 RG#561は、ドライブを含むRGの識別番号である。RAIDレベル562は、ドライブを含むRGのRAIDレベルを示す。ドライブ#563は、ドライブの識別番号である。LBA範囲564は、ドライブが提供する論理アドレス空間のLBA範囲を示す。
 次に、ドライブ管理テーブル510の構成について説明する。
 図11は、ドライブ管理テーブル510の構成図である。
 ドライブ管理テーブル510は、ドライブを管理するテーブルである。ドライブ管理テーブル510は、ドライブ毎にレコードを有する。各レコードは、ドライブ#511、種別512、物理容量513、OP率514、論理容量515、現在のライト総量516、寿命消費率517、ライト総量の予想限界値518、及び平均圧縮率519といった情報を保持する。
 ドライブ#511は、ドライブの識別番号である。種別512は、ドライブの種別(例えば“SSD”又は“HDD”)を示す。物理容量513は、ドライブの物理容量を示す。OP率514は、ドライブに設定されているOP率を示す。論理容量515は、ドライブの論理容量(例えばユーザ容量×最大圧縮率)、言い換えれば、有効容量2102の最大値を示す。
 現在のライト総量516は、ドライブに書き込まれたデータの総量を示す。寿命消費率517は、ドライブの寿命を消費した割合を示す。ライト総量の予想限界値518は、ライト総量上限に相当し、具体的には、ドライブが寿命に到達した際に到達すると予想されるライト総量を示す。例えば、SSD“0”(ドライブ#511“0”且つ種別512“SSD”のドライブ)によれば、現在のライト総量516が“5PB”で寿命消費率517が“50%”であるので、そのSSD“0”が寿命に到達した場合(すなわち、寿命消費率517が“100%”になった場合)に予想されるライト総量(つまり、ライト総量の予想限界値518)は、“10PB”である。なお、ライト総量の予想限界値518は、ユーザ容量と消去可能回数とから算出されて、寿命消費率517が、その予想限界値518に対する現在のライト総量516の割合として算出されてもよい。
 平均圧縮率519には、ドライブに書き込まれたデータの平均の圧縮率を示す。
 ここで、本実施例では、寿命消費率517、ライト総量の予想限界値518及び平均圧縮率519は、ドライブ(具体的にはSSD21)が管理しているので、ストレージコントローラ10は、SSD21からこれらの値(情報)を取得して、寿命消費率517、ライト総量の予想限界値518及び平均圧縮率519を格納する。なお、ライト総量の予想限界値518は、SSD21から取得した寿命消費率517と、ストレージコントローラ10が管理する現在のライト総量516とに基づいて、ストレージコントローラ10が予想(算出)してもよい。なお、本実施例では、実際の圧縮率が反映された論理容量(SSD21の有効容量)は、論理容量515×最大圧縮率(例えば12.5%)÷平均圧縮率519である。
 次に、使用実績管理テーブル520の構成について説明する。
 図12は、使用実績管理テーブル520の構成図である。
 使用実績管理テーブル520は、ストレージ装置1における使用論理容量と、データライト総量との履歴を管理するテーブルである。使用実績管理テーブル520に基づいて、ストレージコントローラ10は、容量使用実績(全体使用論理容量及び全体ライト総量の推移)を把握することができる。
 使用実績管理テーブル520は、各プール40について時点毎にレコードを有する。各レコードは、プール#521、タイムスタンプ522、使用論理容量523、ライト総量524、及び平均圧縮率525といった情報を保持する。
 プール#521は、プールの識別番号である。タイムスタンプ522は、時点に対応したタイムスタンプ(本実施例では、プールの運用を開始してからの経過時間(経過年))を示す。
 使用論理容量523は、時点での使用論理容量(具体的には、当該時点における割当済チャンクの総容量(ステータス555“割当済”のチャンク))を示す。使用論理容量523が、プールについて上述の全体使用論理容量(図1のグラフの横軸)に対応する。
 ライト総量524は、時点でのライト総量(具体的には、当該時点までにプールに書き込まれたデータの総量)を示す。具体的には、ライト総量524は、プールに所属する全てのドライブにそれぞれ対応したライト総量516の合計である。ライト総量524が、プールについて上述の全体ライト総量(図1のグラフの縦軸)に対応する。
 平均圧縮率525は、時点でのプールについての平均圧縮率、具体的には、例えば、当該時点でのプールに所属する全てのドライブにそれぞれ対応した平均圧縮率519の平均値を示す。
 次に、OP率選択テーブル530の構成について説明する。
 図13は、OP率選択テーブル530の構成図である。
 OP率選択テーブル530は、追加するSSDのOP率と必要追加台数を求める(選択する)ために利用するテーブルである。ストレージコントローラ10は、OP率選択テーブル530を基に、追加SSDの最適なOP率と必要追加台数とを求めることができる。
 OP率選択テーブル530は、追加論理容量531、追加ライト総量532、想定圧縮率533、物理容量534、OP率535、予想有効容量536、予想ライト総量537、容量要件での追加台数538、ライト総量要件での追加台数539、及び必要追加台数540といった情報を保持する。
 追加論理容量531は、追加すべき(例えばプール40に追加すべき)論理容量、具体的には、上述の目標追加論理容量3004(図1及び図2参照)を示す。追加ライト総量532は、追加すべき(例えばプール40に追加すべき)ライト総量、具体的には、上述の追加ライト総量3003(図1及び図2参照)を示す。
 想定圧縮率533は、データ圧縮率の期待値を示す。想定圧縮率533は、例えば、使用実績管理テーブル520における複数の平均圧縮率525の最新値又は平均値である。
 物理容量534は、一台のSSD21の物理容量を示す。
 複数のOP率535の各々は、SSDに設定されるOP率を示す。なお、本実施例では、OP率選択テーブル530は、追加論理容量531、追加ライト総量532、想定圧縮率533及び物理容量534の組について、複数のOP率535(例えば10%単位で異なる複数のOP率535)が関連付けられている。OP率535毎に、情報536~540が関連付けられている。具体的には、予想有効容量536は、ユーザ容量(OP率535と物理容量534とから算出されたユーザ容量)と想定圧縮率533とに従う有効容量(論理容量のうちの使用可能な部分)を示す。予想ライト総量537は、OP率535に対応したユーザ容量に基づくライト総量上限を示す。なお、本実施例では、予想有効容量536及び予想ライト総量537は、ストレージコントローラ10によりSSD21から取得されてよい。
 容量要件での追加台数538は、追加論理容量531を満たすために必要なSSDの追加台数を示す。この追加台数538は、追加論理容量531÷予想有効容量536である(余りは切り上げ)。また、RG単位でSSD21を追加する場合には、算出された追加台数以上であって、RGを構成するために必要な最小の台数が、容量要件での追加台数538でよい。このようにすると、追加論理容量531を満たす追加台数であって、RG単位でSSD21を追加する場合に適切な最小追加台数が、得られる。
 ライト総量要件での追加台数539に、追加ライト総量532を満たすために必要なSSDの追加台数を示す。この追加台数539は、追加ライト総量532÷予想ライト総量537である(余りは切り上げ)。また、RG単位でSSD21を追加する場合には、算出された追加台数以上であって、RGを構成するために必要な最小の台数が、ライト総量要件での追加台数539でよい。このようにすると、追加ライト総量532を満たす追加台数であって、RG単位でSSD21を追加する場合に適切な最小追加台数が得られる。
 必要追加台数54には、追加論理容量531及び追加ライト総量532の両方の要件を満たすために必要な追加台数を示す。具体的には、必要追加台数540は、容量要件での追加台数538とライト総量要件での追加台数539とのうちの大きい方である。
 追加するSSDの台数が最も少なくなる場合を提案する場合には、ストレージコントローラ10は、OP率選択テーブル530の複数の必要追加台数540のうち最も小さい必要追加台数540に対応したOP率535を、追加SSDに設定すべき最適なOP率として決定する。これにより、最もSSDの追加台数が少なくなる(つまり最も追加コストが小さくなる)OP率を提案できる。なお、複数の最小の必要追加台数540がある場合、その複数の最小の必要追加台数540にそれぞれ対応した複数のOP率535の各々を、ストレージコントローラ10は、追加SSDに設定すべき最適なOP率として決定してもよい。
 次に、SSD21のメモリ204に格納されている各種テーブルについて説明する。
 まず、OP率基礎管理テーブル600の構成について説明する。
 図14は、OP率基礎管理テーブル600の構成図である。
 SSD21は、可変OP機能、データ圧縮機能、容量拡張機能を備えており、OP率を変化させた場合には、ユーザ容量が変化するため、論理容量やライト総量上限が変化する。OP率基礎管理テーブル600は、OP率と圧縮率との組毎の論理容量とライト総量目安値を基本情報として管理する。例えば、SSD21は、OP率基礎管理テーブル600が保持する情報を出力できる。OP率基礎管理テーブル600は、OP率及び圧縮率の組毎にレコードを有する。各レコードは、物理容量601、OP率602、圧縮率603、有効容量604及びライト総量目安値605といった情報を保持する。
 物理容量601は、SSD21の物理容量を示す。
 OP率602は、OP率を示す。本実施例では、OP率602は、所定%(例えば10%)刻みで用意されており、それらのOP率は、複数の圧縮率603の各々について用意されている。圧縮率603は、圧縮率の期待値、例えば、最大圧縮率(例えば、12.5%)、典型的な圧縮率(例えば、50%)、又は最低圧縮率(例えば、100%)等の代表的な圧縮率の期待値でよい。
 有効容量604は、OP率602及び圧縮率603に従う有効容量(論理容量のうちの使用可能な部分)の期待値を示す。
 ライト総量目安値605は、OP率602及び圧縮率603のSSD21について、所定のI/Oパタン(例えば、完全ランダムライト)、所定のI/Oレングス(例えば、4KBレングス)などの所定の条件下における、ライト総量の目安値を示す。
 なお、実運用下のパラメータが想定した条件と一致しなければ、実際のライト総量とライト総量目安値605との間には乖離が生じる。すなわち、実運用下での実際のライト総量は、ライト総量目安値605よりも大きくなったり小さくなったりする可能性がある。なお、ライト総量目安値605に代えて又は加えて、DWPD(Drive Write Per Day)やWA(Write Amplification)のような他種のSSD寿命決定パラメータ(SSDの寿命を決定づけるパラメータ)がOP率基礎管理テーブル600に格納されてもよい。
 次に、SSD内部管理テーブル610の構成について説明する。
 図15は、SSD内部管理テーブル610の構成図である。
 SSD内部管理テーブル610は、物理容量611、設定OP率612、平均圧縮率613、ライト総量目安値614、現在のライト総量615、寿命消費率616、ライト総量の予想限界値617、及びライト総量補正値618といった情報を保持する。
 物理容量611は、このSSD21(このSSD内部管理テーブル610を格納するSSD21)が有する物理容量を示す。設定OP率612には、このSSD21に設定されているOP率を示す。平均圧縮率613には、このSSD21に格納されたデータの平均圧縮率を示す。
 ライト総量目安値614は、現時点の使用条件下におけるライト総量の目安値を示す。例えば、ライト総量目安値614は、設定OP率612及び平均圧縮率613の組をキーにしてOP率基礎管理テーブル600を検索して得られるライト総量目安値605と同じでよい。
 現在のライト総量615は、このSSD21に書き込まれたデータの総量を示す。寿命消費率616は、このSSD21の寿命を消費した割合(例えば、このSSD21の消去可能回数に対する、現在までの消去回数の割合)を示す。
 ライト総量の予想限界値617は、寿命消費率616が100%に到達した場合に到達すると予測されるライト総量(すなわち、現在のライト総量615÷(寿命消費率616÷100))を示す。
 ライト総量補正値618は、実際のライト総量とライト総量目安値614との乖離の程度を示す値(補正値)、具体的には、ライト総量の予想限界値617÷ライト総量目安値614である。
 次に、ライト総量期待値算出テーブル620の構成について説明する。
 図16は、ライト総量期待値算出テーブル620の構成図である。
 ライト総量期待値算出テーブル620は、実運用の条件下でのライト総量上限をOP率毎に予想するために使用するテーブルである。ライト総量期待値算出テーブル620は、OP率毎にレコードを有する。各レコードは、物理容量621、OP率622、圧縮率623、有効容量期待値624、ライト総量目安値625、ライト総量補正値626及びライト総量期待値627といった情報を保持する。
 物理容量621は、このSSD21(このライト総量期待値算出テーブル620を格納するSSD21)の物理容量を示す。OP率622は、このSSD21において設定可能なOP率を示す。圧縮率623は、このSSD21の実際の圧縮率(例えば、SSD内部管理テーブル610における平均圧縮率613と同じ値)を示す。
 有効容量期待値624は、OP率622及び圧縮率623に従う有効容量(論理容量のうちの使用可能な部分)の期待値を示す。
 ライト総量目安値625は、OP率622及び圧縮率623の組をキーにしてOP率基礎管理テーブル600を検索して得られるレコードにおけるライト総量目安値605と同じ値を示す。
 ライト総量補正値626は、実運用下でのこのSSD21のライト総量の上限値であるライト総量期待値が、目安値に対してどれだけ変化しえるかを示す補正値(例えば、SSD内部管理テーブル610のライト総量補正値618と同じ値)を示す。
 ライト総量期待値627は、実運用下でのこのSSD21のライト総量の上限値であるライト総量期待値(例えば、ライト総量目安値625×ライト総量補正値626)を示す。
 次に、本実施例において行われる幾つかの処理について説明する。
 まず、ストレージコントローラ10が行うストレージ制御について説明する。
 図17は、ストレージ制御のフローチャートである。ストレージ制御は、例えば定期的に実行される。また、図17に示すステップのうち、S60、S70、S80及びS100のうちの少なくとも1つは、ストレージコントローラ10(CPU11)に代えて又は加えて管理システム5(プロセッサ部53)により実行されてもよい。この場合、S50の情報取得は、管理システム5がストレージコントローラ10経由で行ってよい。また、CPU11及びプロセッサ部53が、計算機システムが有するプロセッサ部の一例でよい。
 ストレージコントローラ10は、ホスト2からリード要求又はライト要求(I/O要求)を受信済みであるか否かを判定する(S10)。
 S10の判定結果が真の場合(S10:Yes)、ストレージコントローラ10は、受信済みのI/O要求に対応するI/O処理を行い(S20)、I/O処理の結果に基づいて、プール管理テーブル550を更新する(S30)。具体的には、I/O処理がリード処理の場合、S30で、ストレージコントローラ10は、リード元チャンクに対応したリード量557に、リード対象データのデータ量を加算する。I/O処理がライト処理の場合、S30で、ストレージコントローラ10は、ライト先チャンクに対応するライト量556に、ライト対象データのデータ量を加算する。また、ライト先仮想チャンク41に対してチャンクを割り当てた場合、ストレージコントローラ10は、割り当てられたチャンクのステータス555を“割当済”へ更新する。
 S10の判定結果が偽の場合(S10:No)、又は、S30の後、ストレージコントローラ10は、前回のストレージ制御処理から一定の期間が経過したか否かを判定する(S40)。
 S40の判定結果が真の場合(S40:Yes)、ストレージコントローラ10は、SSD21から内部情報を取得する(S50)。S50では、ストレージコントローラ10は、各SSD21に対して内部情報の送信を依頼する。これに対して、各SSD21は、SSD内部管理テーブル610に保持されている情報を、ストレージコントローラ10に対して送信する。具体的には、ストレージコントローラ10は、各SSD21について、平均圧縮率613、寿命消費率616及びライト総量の予想限界値617を取得する。ストレージコントローラ10は、各SSD21について、取得した平均圧縮率、寿命消費率及びライト総量の予想限界値を、そのSSD21に対応する平均圧縮率519、寿命消費率517及びライト総量の予想限界値518として、ドライブ管理テーブル510に格納する。
 S50の後、ストレージコントローラ10は、プール容量を更新する(S60)。S60では、ストレージコントローラ10は、ドライブ管理テーブル510の平均圧縮率519に基づいて、プール容量の調整を行う。具体的には、ストレージコントローラ10は、プール平均圧縮率(プールの基になっている複数のSSD21にそれぞれ対応した複数の平均圧縮率519に従う平均圧縮率)が悪化した場合、プール平均圧縮率の悪化により減少した有効容量分の未割当チャンク(ステータス555“未割当”のチャンク)のステータス555を“割当不可”に変更する。一方、プール平均圧縮率が改善した場合、ストレージコントローラ10は、プール平均圧縮率の改善により増加した有効容量分の割当不可チャンク(ステータス555“割当不可”のチャンク)のステータス555を“未割当”に変更する。なお、プール平均圧縮率は、例えば、図12に示した平均圧縮率525と同等でよい。
 S60の後、ストレージコントローラ10は、容量使用実績を更新する(S70)。S70では、予め設定された使用実績取得タイミングである場合、ストレージコントローラ10は、使用実績管理テーブル520を更新する。予め設定された使用実績取得タイミングは、例えば、プールの運用を開始してからの経過時間が、0.5年(6か月)増加する毎としてもよい。S70では、ストレージコントローラ10は、使用実績管理テーブル520に新しいレコードを追加し、その追加したレコードに、タイムスタンプ522(その時点のプールの運用を開始してからの経過時間)、使用論理容量523(その時点における使用論理容量)、ライト総量524(その時点におけるライト総量)、及び、平均圧縮率525(プールに所属する全てのSSD21にそれぞれ対応した平均圧縮率519の平均値、つまり、上述したプール平均圧縮率)を格納する。
 S70の後、ストレージコントローラ10は、追加要否判定を行う(S80)。
 S40の判定結果が偽の場合(S40:No)、又は、S80の後、ストレージコントローラ10は、ストレージ装置1に新たにSSD21が追加されたか否かを判定する(S90)。
 S90の判定結果が真の場合(S90:Yes)、ストレージコントローラ10は、既存SSD21のRGと、追加SSD21のRGとの間で、負荷を平準化するためのデータ移動を行う(S100)。
 S90の判定結果が偽の場合(S90:No)、又は、S100の後、ストレージコントローラ10は、ストレージ装置1の停止要求を受信済みか否か判定する(S110)。S100の判定結果が真の場合(S110:Yes)、ストレージコントローラ10は、ストレージ装置1の停止処理を実行する。S110の判定結果が偽の場合(S110:No)、処理がS10に戻る。
 次に、追加要否判定(S80)について説明する。
 図18は、追加要否判定のフローチャートである。なお、1つのプールを例に取り、追加要否判定を説明する。図18~図20の説明では、そのプールを「対象プール」と呼ぶ。
 ストレージコントローラ10は、対象プールについて現状構成(図1を参照して説明した全体ライト総量上限及び全体論理容量上限)で、目標期間(目標運用期間)までの運用を達成できる否かを判定する(S81)。S81では、ストレージコントローラ10は、使用実績管理テーブル520から特定される容量使用実績の推移と、プール管理テーブル550の目標運用期間559とに基づいて、目標期間経過時の推定実績(図1を参照して説明した推定全体ライト総量及び推定全体論理容量)を算出し、現状構成が推定実績を上回るか否かを判定する。対象プールについて、全体ライト総量上限は、対象プールに属する全てSSDにそれぞれ対応したライト総量の予想限界値518の合計である。対象プールについて、全体論理容量上限は、対象プールに属する全てSSDにそれぞれ対応した論理容量515の合計である。S81の判定結果が偽の場合(S81:Yes)、追加要否判定が終了する。
 S81の判定結果が真の場合(S81:No)、ストレージコントローラ10は、SSD21の追加量を算出する(S82)。具体的には、S82では、ストレージコントローラ10は、目標追加論理容量3004と目標追加ライト総量3003を算出し、OP率選択テーブル530に、追加論理容量531(目標追加論理容量3004)及び追加ライト総量532(目標追加ライト総量3003)を格納する。
 S82の後、ストレージコントローラ10は、対象プールに属する全SSD21の少なくとも1つから、OP率毎の論理容量(予測値)とライト総量(予測値)を取得する(S83)。具体的には、例えば、S83では、ストレージコントローラ10は、対象プールに対応した全ての平均圧縮率525の平均圧縮率(平均に代えて最大値又は最小値等でもよい)を、想定圧縮率533として決定する。ストレージコントローラ10は、決定した想定圧縮率533に最も近い平均圧縮率519に対応したSSD21に対して、OP率毎の論理容量(予測値)とライト総量(予測値)の送付を依頼する。この送付の依頼を受けたSSD21は、ライト総量期待値算出テーブル620を参照し、各OP率622と、OP率622毎の有効容量期待値624及びライト総量期待値627とを、ストレージコントローラ10に返す。ストレージコントローラ10は、SSD21からの情報、すなわち、各OP率622と、OP率622毎の有効容量期待値624及びライト総量期待値627とを、各OP率535と、OP率535毎の予想有効容量536及び予想ライト総量537として、OP率選択テーブル530に格納する。このように、ストレージコントローラ10は、使用実績管理テーブル520の平均圧縮率525に基づいて、論理容量(予測値)とライト総量(予測値)の依頼先SSD21を決定する。このため、想定する状況に近いと考えられる論理容量(予測値)とライト総量(予測値)とを適切に取得することが期待できる。
 S83の後、ストレージコントローラ10は、追加SSD決定、具体的には、追加SSDのOP率と必要追加台数とを決定する(S84)。
 S84の後、ストレージコントローラ10は、S84で決定した最適OP率と必要追加台数とを含んだ追加提案情報を表示する(例えば管理システム5の画面に表示する)(S85)。この表示は、ユーザ(管理者)に対して、SSD21の追加の促しに相当する。
 次に、追加SSD決定(S84)について説明する。
 図19は、追加SSD決定のフローチャートである。
 ストレージコントローラ10は、各OP率535について、追加論理容量531と予想有効容量536から、容量要件での追加台数538を算出し格納する(S841)。各OP率535について、容量要件での追加台数538は、上述したように、追加論理容量531÷予想有効容量536である(ただし、余りは切り上げ)。
 また、ストレージコントローラ10は、各OP率535について、追加ライト総量532と予想ライト総量537から、ライト総量要件での追加台数539を算出し格納する(S842)。ライト総量要件での追加台数539は、上述したように、追加ライト総量532÷予想ライト総量537である(ただし、余りは切り上げ)。
 ストレージコントローラ10は、各OP率535について、容量要件での追加台数538とライト総量要件での追加台数539とのうちの大きい方を、必要追加台数540として決定し格納する(S843)。
 ストレージコントローラ10は、複数のOP率535にそれぞれ対応した複数の必要追加台数540のうちの最小の必要追加台数540を特定し、その特定した最小の必要追加台数540に対応したOP率535を、最適OP率として決定する(S844)。なお、SSDの追加を、RG単位で行う場合、既存のSSDと、追加SSDとが、同一のRGに所属することはないものとする。
 次に、データ移動(S100)について説明する。
 図20は、データ移動のフローチャートである。なお、追加されたSSD21には、図19のS844で決定された最適OP率が設定されているものとする。また、データ移動では、移動元と移動先は、対象プール内のチャンクであるとする。
 ストレージコントローラ10は、追加されたSSD21のOP率(以下、新OP率)と、既存のSSD21のOP率(旧OP率)とを比較する(S101)。OP率が大きいSSDは、OP率が小さいSSDに比べて、リクラメーション処理の発生頻度が低いため、寿命や性能面で特性が優れる、すなわち、ライト総量が大きく、かつ、高性能である。
 そこで、新OP率が旧OP率より大きい場合(S101:大きい)、ストレージコントローラ10は、高負荷なチャンクのデータを、既存SSDのRGから、追加SSDのRGへと移動する(S103)。これにより、既存のSSDが寿命に到達するまでの期間を延長すること、及び、ストレージ装置100の全体としての性能を長期間維持することが期待できる。なお、「高負荷なチャンク」とは、プール管理テーブル550のライト量556及びリード量557のうちの少なくとも1つが対象プールにおいて相対的に大きいチャンクでよい。
 新OP率が旧OP率より小さい場合(S101:小さい)、ストレージコントローラ10は、低負荷なチャンクのデータを、既存SSDのRGから、追加SSDのRGへと移動する(S105)。これにより、追加SSDが寿命に到達するまでの期間を延長すること、且つ、既存SSDの空き容量を増加させることが期待できる。なお、「低負荷なチャンク」とは、プール管理テーブル550のライト量556及びリード量557のうちの少なくとも1つが対象プールにおいて相対的に小さいチャンクでよい。
 新OP率が旧OP率と同等(例えば差が所定値未満)の場合(S101:同等)、ストレージコントローラ10は、追加されたSSD21のライト可能残量(以下、新残量)と、既存のSSD21のライト可能量の残量(以下、旧残量)とを比較する(S102)。ここで、「ライト可能残量」は、寿命到達までにライト可能なデータの量、具体的には、各SSD21について、ライト総量の予想限界値518と現在のライト総量516との差である。
 新残量が旧残量より多い場合(S102:多い)、ストレージコントローラ10は、高負荷なチャンクのデータを、既存SSDのRGから、追加SSDのRGへと移動する(S103)する。新残量が旧残量より少ない場合(S102:少ない)、ストレージコントローラ10は、低負荷なチャンクのデータを、既存SSDのRGから、追加SSDのRGへと移動する(S105)。新残量が旧残量と同等(例えば差が所定値未満)の場合(S102:同等)、ストレージコントローラ10は、チャンクが高負荷であるか低負荷であるかに関わらず、チャンクのデータを、既存SSDのRGから、追加SSDのRGへと移動する(S104)。これにより、S102~S105によれば、追加SSDと既存SSDとを平均的に(同程度の時点で)寿命に到達させること、且つ、ストレージ装置100の全体としての性能を長時間維持することが期待できる。
 次に、SSD21のSSDコントローラ200によるSSD制御について説明する。
 図21は、SSD制御のフローチャートである。SSD制御は、例えば定期的に実行される。
 SSDコントローラ200は、ストレージコントローラ10からリード要求又はライト要求を受信済みであるか否かを判定する(S200)。
 S200の判定結果が真の場合(S200:Yes)、SSDコントローラ200は、受信済みの要求に対応するI/O処理(リード/ライト処理)を実行し(S210)、SSD内部管理テーブル610を更新する(S220)。I/O処理がライト処理の場合、S220では、SSDコントローラ200は、SSD内部管理テーブル610の現在のライト総量615に、ライトしたデータのデータ量を加算する。ライト処理において、SSDコントローラ200は、圧縮・伸張回路207によりデータを圧縮し、圧縮データをFMチップ210に書き込む。また、ライト処理に付随して、リクラメーション処理も実施した場合、FMチップ210の消去回数が消費されているため、SSDコントローラ200は、S220において、SSD内部管理テーブル610の寿命消費率616を、実施した消去回数に基づいて更新する。
 S200の判定結果が偽の場合(S200:No)、又は、S220の後、SSDコントローラ200は、ストレージコントローラ10から、OP率毎の論理容量(予測値)とライト総量(予測値)の送付依頼(図18のS83の送付依頼)を受信済みであるか否かを判定する(S230)。
 S230の判定結果が真の場合(S230:Yes)、SSDコントローラ200は、OP率622毎の論理容量予測値(有効容量期待値624)とライト総量予測値(ライト総量期待値627)を算出してライト総量期待値算出テーブル620に格納し、OP率622毎の論理容量予測値とライト総量予測値とをストレージコントローラ10に送付する(S240)。例えば、ライト総量予測値(ライト総量期待値627)は、ライト総量目安値625×ライト総量補正値626である。これにより、SSD21の実際の使用状況に則したライト総量予測値が算出される。
 S230の判定結果が偽の場合(S230:No)、又は、S240の後、SSDコントローラ200は、SSD21の停止要求を受信済みであるか否かを判定する(S250)。S250の判定結果が真の場合(S250:Yes)、SSDコントローラ200は、SSD21の停止処理を実行する。一方、S250の判定結果が偽の場合(S250:No)、処理がS200に戻る。
 以上、実施例1によれば、ユーザに対して、追加するSSDの最適OP率と最適追加台数とを提示することができる。
 実施例2について説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略又は簡略する。
 実施例2では、SSD21が、可変OP機能に加えて、セル(フラッシュメモリセル)215に格納可能な情報量(ビット数)を変更可能なセルモード変更機能を備えている。
 FMチップ210は、図4に示すように、データを記憶するための複数のセル215を有する。一般に、セルには、1ビットの情報を格納可能なセル(SLC(Single-Level Cell))の他に、2ビット以上の情報を格納可能なセル(MLC(Multiple-Level Cell)又はTLC(Triple-Level Cell))もある。
 実施例2では、SSDコントローラ200(セルモード変更機能)は、セル215に格納可能なビット数を、例えばブロック単位で変更できる。セルに格納可能な情報(ビット数)を変更可能にする技術としては、例えば、特許文献4(米国特許出願公開第2008/0250220号明細書)に記載されている技術を用いることができる。
 なお、セルが1ビットの情報を格納可能なモードを「SLCモード」、2ビットのデータを格納可能なモードを「MLCモード」、3ビットのデータを格納可能なモードを「TLCモード」と呼ぶ。ここで、セルのモードを変更すると、容量と寿命が変化する。容量は、SLCモード<MLCモード<TLCモードとなる。一方、書き換え耐性である寿命(データライト総量の限界値)は、TLCモード<MLCモード<SLCモードとなる。すなわち、セルをSLCモードとすると、そのブロックは小容量だが長寿命となる。セルをTLCモードとすると、そのブロックは大容量だが短寿命となる。なお、実施例2では、FMチップ210のそれぞれのブロック211は、SLCモードとTLCモードとのいずれかに設定されることを前提として説明する。
 図22は、実施例2に係るSSDの論理容量と物理容量との関係を説明する模式図である。図22において、下段には、SSD21の全てのブロック211がTLCモードに設定されている状態における論理容量と物理容量との関係を示し、上段には、SLCモードに設定されているブロック211と、TLCモードに設定されているブロック211とが混在している状態における論理容量と物理容量との関係を示している。
 下段に示す状態においては、SSD21のユーザ容量2100cと、予備容量2101cとが、すべてTLCモードのブロックにより構成される。
 一方、上段に示す状態では、ユーザ容量がSLCモードに設定された第1ユーザ容量2100aと、TLCモードに設定された第2ユーザ容量2100bとから構成される。なお、予備容量2101aはTLCモードに設定されている。
 このような構成により、SLCモードが混在しているSSD21における物理容量(2100a、2100b、2101a)の合計は、全てがTCLモードであるSSD21の物理容量(2100c、2101c)の合計よりも小さくなる。それに伴って、SLCモードが混在しているSSD21における論理容量(2102a、2102b、2103a)の合計は、全てがTCLモードであるSSD21の論理容量(2102c、2103c)の合計よりも小さい。
 このように、一部のブロック211をSLCモードに設定することで、SSD21の論理容量は、すべてのブロックをTLCモードに設定した場合よりも小さくなる。一方、SSD21全体の寿命は、SLCモードを混在させた場合の方が、すべてのブロックをTLCモードに設定した場合よりも大きくなる。
 実施例2の概要について説明する。
 図23は、実施例2の概要を示す模式図である。
 SSD21は、OP率と、SLCとTLCとの比率とを任意の値に設定できる機能を持っている。このため、追加論理容量と、追加ライト総量とは、SSD21に設定するOP率とSLC比率(ユーザ容量に占めるSLCの比率)とにより、それぞれ変化する。実線2001L1と実線2001L2は、それぞれ、低OP率(例えば20%以下)のSSDについての容量特性(追加論理容量及び追加ライト総量との関係)を示す。具体的には、実線2001L2は、ユーザ容量のすべてのブロックがTLCモード(SLC比率0%)に設定されている場合におけるSSDの容量特性を示す。実線2001H1は、ユーザ容量のすべてのブロックがSLCモード(SLC比率100%)に設定されている場合におけるSSDの容量特性を示す。
 同様に、実線2001M1と実線2001M2は、それぞれ、中OP率(例えば20%より大きく50%未満)のSSDの容量特性を示す。実線2001M2は、SLC比率が0%に設定されている場合におけるSSDの容量特性を示す。実線2001M1は、SLC比率が100%に設定されている場合におけるSSDの容量特性を示す。
 また、実線2001H1と実線2001H2は、それぞれ、高OP率(例えば50%以上)の場合におけるSSDの容量特性を示す。実線2001H2は、SLC比率が0%に設定されている場合におけるSSDの容量特性を示す。実線2001H1は、SLC比率が100%に設定されている場合におけるSSDの容量特性を示す。
 図23に例示するように、SSD21のOP率が同じでも、SLCとTLCとの比率により、追加論理容量と追加ライト総量とに幅が生じることとなる。
 実施例2では、例えば、ストレージコントローラ10が、SSD21の追加台数が最小となる最適OP率と最適SLC比率との両方を決定して決定された追加台数、最適OP率、及び最適SLC比率を示す情報を含んだ追加提案情報を表示する。
 以下、実施例2を詳細に説明する。
 図24は、実施例2に係るOP率選択テーブルの構成図である。
 OP率選択テーブル530aの各レコードは、更に、SLC比率541を保持する。SLC比率541は、追加するSSDに設定する、SLCモードのブロックの比率(SLC比率)を示す。なお、図示は省略されているが、複数のSLC比率541が、OP率535毎に用意される。
 図25は、実施例2に係るOP率基礎管理テーブルの構成図である。
 OP率基礎管理テーブル600aの各レコードは、更に、SLC比率606を保持する。SLC比率606は、追加するSSDに設定する、SLCモードの比率を示す。なお、図示は省略されているが、複数のSLC比率606が、OP率602毎に用意される。
 図26は、実施例2に係るSSD内部管理テーブルの構成図である。
 SSD内部管理テーブル610aの各レコードは、設定SLC比率619を保持する。設定SLC比率619は、SSD21に現在設定されているSLCモードの比率を示す。
 図27は、実施例2に係るライト総量期待値算出テーブルの構成図である。
 ライト総量期待値算出テーブル620aの各レコードは、更に、設定SLC比率628を保持する。SLC比率628は、SSDに設定するSLCモードの比率を示す。なお、図示は省略されているが、複数のSLC比率628が、OP率622毎に用意される。
 図28は、実施例2に係る追加要否判定のフローチャートの一部である。
 追加要否判定では、S84に代えて、S84aが行われる。S84aでは、ストレージコントローラ10は、追加SSDの最適OP率及び追加台数に加えてSLCモード比率を決定する追加SSD決定を実行する。
 図29は、実施例2に係る追加SSD決定のフローチャートの一部である。
 実施例2に係る追加SSD決定処理では、S844に代えてS844aが行われる。S844aでは、ストレージコントローラ10は、複数の必要追加台数540のうち最小の必要追加台数540を特定し、特定した最小の必要追加台数540に対応したOP率535及びSLC比率541を、それぞれ最適OP率及び最適SLC比率として決定する。なお、複数の最小の必要追加台数540が複数存在する場合、それら全ての最小必要追加台数540にそれぞれ対応した複数のOP率及び複数のSLC比率が、それぞれ、最適OP率及び最適SLC比率として決定されてもよいし、そのうちの最も高いSLC比率とその最も高いSLC比率に対応したOP率が、それぞれ最適SLC比率と最適OP率として決定されてよい。最も高いSLC比率とそれに対応したOP率とがそれぞれ最適SLC比率及び最適OP率であると、ライト総量が大きい構成を推奨することができる。
 実施例2によれば、ユーザに対して、最適な追加台数と最適なOP率に加えて最適なSLC比率を提示することができる。
 なお、本発明は、上述の実施例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
 例えば、実施例1では、SSD21がFMチップ210に格納するデータ量を削減する機能の一例として、可逆圧縮アルゴリズムを用いたデータ圧縮処理を行う例を説明したが、可逆圧縮アルゴリズムを用いる代わりに、例えば、データの重複排除処理を行うことで、FMチップ210に格納するデータ量を削減してもよい。ここで、重複排除とは、記憶領域全体の中から同じデータを探し出し、一ヵ所を残して他を削除することで容量を削減・節約する手法であり、広義のデータ圧縮処理と言える。この場合には、上記実施例1におけるデータ圧縮率を、重複排除率と読み替えれば良い。また、SSD21が重複排除処理と可逆圧縮アルゴリズムと用いた圧縮処理との両方の機能を実行するようにしてもよく、このようにすると、FMチップ210に格納されるデータ量を効果的に低減することができる。また、実施例1において、SSD21に代わってストレージコントローラ10が、圧縮処理や重複排除処理を行うようにしてもよい。
 また、実施例1では、SSD21がライト総量補正値626を考慮してライト総量期待値627算出しストレージコントローラ10に通知する例を示したが、本発明はこれに限られず、OP率基礎管理テーブル600のOP率毎のレコードの情報と、ライト総量期待値算出テーブル620のライト総量補正値626の補正値とをストレージコントローラ10に通知するようにし、ストレージコントローラ10がライト総量期待値を算出するようにしてもよい。
 また、実施例1では、SSD21において予測されたOP率毎の論理容量の期待値に対応する予想論理容量(OP率選択テーブル530の予想有効容量536)に基づいて、容量要件での追加台数538を算出するようにしていたが、本発明はこれに限られず、OP率毎の論理容量目安値に基づいて、容量要件での追加台数538を算出するようにしてもよい。
 また、実施例1では、SSD21において予測されたOP率毎のライト総量期待値に対応する予想ライト容量(OP率選択テーブル530の予想ライト総量537)に基づいて、ライト総量要件での追加台数540を算出するようにしていたが、本発明はこれに限られず、OP率毎のライト総量目安値に基づいて、ライト総量要件での追加台数540を算出するようにしてもよい。
 また、実施例1では、ストレージコントローラ10は、追加するSSD21の台数が最も少なくなる場合における追加台数とOP率とを示す情報を含んだ追加提案情報を表示するようにしていたが、本発明はこれに限られず、例えば、OP率毎に、要件を満たすSSD21の追加台数を示す情報を含んだ追加提案情報を表示するようにしてもよい。すなわち、追加情報は、要件を満たす追加台数とOP率との組合せの候補を複数示す情報を含んでもよい。
 また、実施例1では、ストレージコントローラ10は、容量使用実績の推移から推定実績を算出するようにしていたが、本発明はこれに限られず、例えば、管理システム5からユーザが指定する使用実績を受け取ることにより、将来の時点での使用実績を得てもよい。
 また、実施例2では、ブロック211をSLCモードとTLCモードとのいずれかに設定される場合を例に示していたが、例えば、任意の複数モードを組み合わせて使用してもよい。また、セル215に対して4ビット以上の情報を格納可能なモードを備えている場合においては、そのモードに設定される、又は、そのモードを含む複数のモードを使用するようにしてもよい。
 また、実施例1では、ライト総量期待値算出テーブル620に、複数のOP率622と、OP率622毎の有効容量期待値624及びライト総量期待値627が格納されるが、OP率622と、有効容量期待値624及びライト総量期待値627との関係は、計算式のような他種の形式で表現されてもよい。同様に、OP率選択テーブル530に、複数のOP率535と、OP率535毎の予想有効容量536及び予想ライト総量537が格納されるが、OP率535と、予想有効容量536及び予想ライト総量537との関係は、計算式のような他種の形式で表現されてもよい。
 また、実施例2では、ライト総量期待値算出テーブル620aに、複数のOP率622の各々について、複数のSLC比率628と、SLC比率628毎の有効容量期待値624及びライト総量期待値627が格納されるが、OP率622及びSLC比率628と、有効容量期待値624及びライト総量期待値627との関係は、計算式のような他種の形式で表現されてもよい。同様に、OP率選択テーブル530aに、複数のOP率535の各々について、複数のSLC比率541と、SLC比率541毎の予想有効容量536及び予想ライト総量537が格納されるが、OP率535及びSLC比率541と、予想有効容量536及び予想ライト総量537との関係は、計算式のような他種の形式で表現されてもよい。
1:ストレージ装置

Claims (15)

  1.  それぞれが不揮発性メモリを有する1以上の不揮発性メモリデバイスと、
     前記1以上の不揮発性メモリデバイスを管理する1以上のプロセッサであるプロセッサ部と
    を有し、
     前記プロセッサ部は、
      (A)下記(a1)を含む処理を実行し、
        (a1)必要な全体論理容量と現状の全体論理容量の上限とに基づく目標追加論理容量と、必要全体ライト総量と現状の全体ライト総量の上限とに基づく目標追加ライト総量とのうちの少なくとも1つである目標追加量を算出する、
          前記全体論理容量は、全ての不揮発メモリデバイスがそれぞれ提供する論理容量の合計であり、
          前記全体ライト総量は、前記全ての不揮発メモリデバイスにそれぞれ対応したライト総量の合計であり、
          各不揮発メモリデバイスについて、ライト総量は、その不揮発メモリデバイスの不揮発メモリに書き込まれるデータの総量であり、
      (B)下記(b1)と(b2)との関係に関する情報を含んだ情報である追加提案情報を表示する、
        (b1)前記目標追加量、
        (b2)不揮発メモリデバイスの追加台数と、追加される不揮発メモリデバイスのOP(Over Provisioning)率、
    計算機システム。
  2.  (A)の処理は、更に、下記(a2)を含み、
      (a2)前記目標追加量を上回る追加量を実現するOP率及び追加台数のうち、最小の追加台数である最適追加台数と、その最適追加台数に対応するOP率である最適OP率とを特定とを特定する、
     前記追加提案情報は、特定された最適追加台数及び最適OP率を示す情報を含む、
    請求項1に記載の計算機システム。
  3.  前記プロセッサ部は、
      (X)容量使用実績の推移から前記必要全体論理容量及び前記必要全体ライト総量を推定する、
        前記容量使用実績は、全体使用論理容量と全体使用ライト総量であり、
        前記全体使用論理容量は、前記全ての不揮発メモリデバイスにそれぞれ対応した使用論理容量の合計であり、
        各不揮発メモリデバイスについて、前記使用論理容量とは、その不揮発メモリデバイスが提供した論理容量のうち使用されている論理容量であり、
        前記全体使用ライト総量は、全ての不揮発メモリデバイスにそれぞれ対応した実際のライト総量の合計であり、
        前記必要全体論理容量は、将来の或る時点で必要な全体論理容量であり、
        前記必要全体ライト総量は、前記将来の或る時点で必要な全体ライト総量である、
    請求項1記載の計算機システム。
  4.  前記プロセッサ部は、
      (Y)前記必要全体論理容量が前記現状の全体論理容量の上限を上回る、及び、前記必要全体ライト総量が前記現状の全体ライト総量の上限を上回る、のうちの少なくとも1つが成立するか否かを判断し、
      (Y)の判定結果が真の場合、(A)の処理を行う、
    請求項3記載の計算機システム。
  5.  (A)の処理は、更に、下記(a3)を含む、
      (a3)前記全ての不揮発性メモリデバイスのうちの少なくとも1つから、OP率毎の論理容量予測値を含んだ情報であるデバイス情報を取得する、
     前記追加提案情報に含まれる情報が示す追加量は、前記取得された、OP率毎の論理容量予測値に基づいている、
    請求項1記載の計算機システム。
  6.  前記デバイス情報は、更に、OP率毎のライト総量予測値を含み、
     前記追加提案情報に含まれる情報が示す追加量は、更に、前記取得された、OP率毎のライト総量予測値に基づいている、
    請求項5記載の計算機システム。
  7.  前記全ての不揮発メモリデバイスの各々は、その不揮発メモリデバイスにデータを圧縮して書き込むようになっており、
     前記プロセッサ部は、定期的に、前記全ての不揮発メモリデバイスの各々から、圧縮率を示す内部情報を取得するようになっており、
     前記デバイス情報の取得元の不揮発メモリデバイスは、前記全ての不揮発メモリデバイスにそれぞれ対応した圧縮率から得られた圧縮率を提供した不揮発性メモリデバイスである、
    請求項6記載の計算機システム。
  8.  前記デバイス情報におけるOP率毎のライト総量予測値は、そのデバイス情報を送信した不揮発メモリデバイスでの実際のライト総量と、その不揮発性メモリデバイスでの消去処理の実行回数に基づく寿命消費率とに基づいている、
    請求項6記載の計算機システム。
  9.  前記追加台数の単位は、RAIDグループを構成する不揮発メモリデバイスの台数である、
    請求項1記載の計算機システム。
  10.  前記プロセッサ部は、更に、
      (C)新たに不揮発性メモリデバイスが追加された場合、下記(c1)及び(c2)を含んだデータ移動を行う、
        (c1)その新たに追加された不揮発メモリデバイスに設定されたOP率が、既存の不揮発性メモリデバイスに設定されているOP率よりも大きい場合、前記既存の不揮発メモリデバイスのうち相対的に高負荷の領域内のデータを前記新たに追加された不揮発性メモリデバイスにデータを移動させる、
        (c2)その新たに追加された不揮発メモリデバイスに設定されたOP率が、既存の不揮発性メモリデバイスに設定されているOP率よりも小さい場合、前記既存の不揮発メモリデバイスのうち相対的に低負荷の領域内のデータを前記新たに追加された不揮発性メモリデバイスにデータを移動させる、
    請求項1記載の計算機システム。
  11.  前記追加される不揮発性メモリデバイスは、その不揮発メモリデバイス内の不揮発性メモリについて、1ビットのデータを格納する第1モードを採用する領域の容量と、複数ビットのデータを格納する第2モードを採用する領域の容量との比率であるモード比率を調整可能であり、
     (b2)は、追加台数及びOP率の他にモード比率を含む、
    請求項1記載の計算機システム。
  12.  前記追加される不揮発性メモリデバイスは、その不揮発メモリデバイス内の不揮発性メモリについて、1ビットのデータを格納する第1モードを採用する領域の容量と、複数ビットのデータを格納する第2モードを採用する領域の容量との比率であるモード比率を調整可能であり、
     (a2)は、前記目標追加量を上回る追加量を実現するOP率、モード比率及び追加台数のうち、最小の追加台数である最適追加台数と、その最適追加台数に対応するOP率である最適OP率とを特定と、その最適追加台数に対応するモード比率である最適モード比率とを特定することであり、
     前記追加提案情報は、特定された最適追加台数、最適OP率及び最適モード比率を示す情報を含む、
    請求項2記載の計算機システム。
  13.  前記最適モード比率は、前記最適追加台数及び前記最適OP率に対応したモード比率のうちの最大のモード比率である、
    請求項12記載の計算機システム。
  14.  それぞれが不揮発性メモリを有する1以上の不揮発性メモリデバイスと、
     前記1以上の不揮発性メモリデバイスに接続された1以上のプロセッサを有するストレージコントローラと
    を有し、
     前記ストレージコントローラは、
      (A)下記(a1)を含む処理を実行し、
        (a1)必要な全体論理容量と現状の全体論理容量の上限とに基づく目標追加論理容量と、必要全体ライト総量と現状の全体ライト総量の上限とに基づく目標追加ライト総量とのうちの少なくとも1つである目標追加量を算出する、
          前記全体論理容量は、全ての不揮発メモリデバイスがそれぞれ提供する論理容量の合計であり、
          前記全体ライト総量は、前記全ての不揮発メモリデバイスにそれぞれ対応したライト総量の合計であり、
          各不揮発メモリデバイスについて、ライト総量は、その不揮発メモリデバイスの不揮発メモリに書き込まれるデータの総量であり、
      (B)下記(b1)と(b2)との関係に関する情報を含んだ情報である追加提案情報を表示する、
        (b1)前記目標追加量、
        (b2)不揮発メモリデバイスの追加台数と、追加される不揮発メモリデバイスのOP率、
    ストレージシステム。
  15.  (A)下記(a1)を含む処理を実行し、
      (a1)必要な全体論理容量と現状の全体論理容量の上限とに基づく目標追加論理容量と、必要全体ライト総量と現状の全体ライト総量の上限とに基づく目標追加ライト総量とのうちの少なくとも1つである目標追加量を算出する、
        前記全体論理容量は、全ての不揮発メモリデバイスがそれぞれ提供する論理容量の合計であり、
        前記全体ライト総量は、前記全ての不揮発メモリデバイスにそれぞれ対応したライト総量の合計であり、
        各不揮発メモリデバイスについて、ライト総量は、その不揮発メモリデバイスの不揮発メモリに書き込まれるデータの総量であり、
     (B)下記(b1)と(b2)との関係に関する情報を含んだ情報である追加提案情報を表示する、
      (b1)前記目標追加量、
      (b2)(b2)不揮発メモリデバイスの追加台数と、追加される不揮発メモリデバイスのOP率、
    管理方法。
PCT/JP2017/010501 2017-03-15 2017-03-15 計算機システム及び管理方法 WO2018167890A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/010501 WO2018167890A1 (ja) 2017-03-15 2017-03-15 計算機システム及び管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/010501 WO2018167890A1 (ja) 2017-03-15 2017-03-15 計算機システム及び管理方法

Publications (1)

Publication Number Publication Date
WO2018167890A1 true WO2018167890A1 (ja) 2018-09-20

Family

ID=63521863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/010501 WO2018167890A1 (ja) 2017-03-15 2017-03-15 計算機システム及び管理方法

Country Status (1)

Country Link
WO (1) WO2018167890A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200074844A (ko) * 2018-12-17 2020-06-25 웨스턴 디지털 테크놀로지스, 인코포레이티드 데이터 저장 시스템 및 데이터 저장 시스템 성능, 용량 및/또는 동작 요건을 자율적으로 적응시키기 위한 방법
CN113360080A (zh) * 2020-03-06 2021-09-07 瑞昱半导体股份有限公司 存储空间管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303054A (ja) * 2002-04-08 2003-10-24 Hitachi Ltd 計算機システム、記憶装置及び記憶装置運用監視方法
JP2003345632A (ja) * 2002-05-23 2003-12-05 Hitachi Ltd ストレージ機器管理方法、システム、およびプログラム
JP2014513356A (ja) * 2011-04-26 2014-05-29 エルエスアイ コーポレーション 不揮発性記憶のための可変オーバープロビジョニング
JP2017037501A (ja) * 2015-08-11 2017-02-16 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303054A (ja) * 2002-04-08 2003-10-24 Hitachi Ltd 計算機システム、記憶装置及び記憶装置運用監視方法
JP2003345632A (ja) * 2002-05-23 2003-12-05 Hitachi Ltd ストレージ機器管理方法、システム、およびプログラム
JP2014513356A (ja) * 2011-04-26 2014-05-29 エルエスアイ コーポレーション 不揮発性記憶のための可変オーバープロビジョニング
JP2017037501A (ja) * 2015-08-11 2017-02-16 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200074844A (ko) * 2018-12-17 2020-06-25 웨스턴 디지털 테크놀로지스, 인코포레이티드 데이터 저장 시스템 및 데이터 저장 시스템 성능, 용량 및/또는 동작 요건을 자율적으로 적응시키기 위한 방법
KR102321947B1 (ko) 2018-12-17 2021-11-03 웨스턴 디지털 테크놀로지스, 인코포레이티드 데이터 저장 시스템 및 데이터 저장 시스템 성능, 용량 및/또는 동작 요건을 자율적으로 적응시키기 위한 방법
US11500714B2 (en) 2018-12-17 2022-11-15 Western Digital Technologies, Inc. Apparatus and method for regulating available storage of a data storage system
CN113360080A (zh) * 2020-03-06 2021-09-07 瑞昱半导体股份有限公司 存储空间管理方法

Similar Documents

Publication Publication Date Title
US12019872B2 (en) Storage device that writes data from a host during garbage collection
US20240045619A1 (en) Storage system, information processing system and method for controlling nonvolatile memory
US12038834B2 (en) Memory system and method for controlling nonvolatile memory during command processing without replacing defective blocks
US20200218655A1 (en) Storage system and information processing system for controlling nonvolatile memory
JP6414852B2 (ja) メモリシステムおよび制御方法
CN110321247B (zh) 内存***
US20180341407A1 (en) Storage system, information processing system and method for controlling nonvolatile memory
US9529535B2 (en) Storage system and method of control for storage system
US10241909B2 (en) Non-volatile memory device
US9298534B2 (en) Memory system and constructing method of logical block
JP6286622B2 (ja) ストレージシステム
JP2018120439A (ja) メモリシステムおよび制御方法
WO2015008375A1 (ja) ストレージ装置および記憶制御方法
JP2018049523A (ja) メモリシステムおよび制御方法
JP2017027388A (ja) メモリシステムおよび不揮発性メモリの制御方法
KR20210111527A (ko) 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법
JP6716757B2 (ja) メモリシステムおよび制御方法
JP6805110B2 (ja) ストレージシステム及びその制御方法
US10684785B2 (en) Storage system
WO2018167890A1 (ja) 計算機システム及び管理方法
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
JP6721765B2 (ja) メモリシステムおよび制御方法
JP6666405B2 (ja) メモリシステムおよび制御方法
JP2019016386A (ja) メモリシステムおよび制御方法
JP2018200720A (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: 17900615

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17900615

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP