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

ストレージシステム Download PDF

Info

Publication number
WO2017090176A1
WO2017090176A1 PCT/JP2015/083369 JP2015083369W WO2017090176A1 WO 2017090176 A1 WO2017090176 A1 WO 2017090176A1 JP 2015083369 W JP2015083369 W JP 2015083369W WO 2017090176 A1 WO2017090176 A1 WO 2017090176A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
mode
ssd
block
controller
Prior art date
Application number
PCT/JP2015/083369
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 JP2017552630A priority Critical patent/JP6286622B2/ja
Priority to US15/744,671 priority patent/US10387062B2/en
Priority to PCT/JP2015/083369 priority patent/WO2017090176A1/ja
Priority to CN201580081270.2A priority patent/CN107710140B/zh
Publication of WO2017090176A1 publication Critical patent/WO2017090176A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Definitions

  • the present invention relates to a storage system using a nonvolatile semiconductor memory.
  • Nonvolatile semiconductor memory has higher power consumption, higher performance and higher price than magnetic storage devices.
  • Such a nonvolatile semiconductor memory is, for example, a NAND flash memory.
  • the price has been reduced, and it has been attracting attention as a mainstream storage device replacing HDD.
  • the flash memory has a plurality of memory cells (hereinafter abbreviated as “cells”) for storing data.
  • cells capable of storing 1-bit information referred to as SLC
  • MLC cells capable of storing information of 2 bits or more
  • TLC cells capable of storing information of 3 bits or more
  • the bit cost can be reduced as compared with the case where an SLC type cell is used.
  • TLC cell capable of storing information of 3 bits or more
  • the bit cost can be reduced as compared to using a cell capable of storing 2-bit information.
  • Patent Document 1 In recent years, a technique has also appeared that makes it possible to change the amount of information (number of bits) that can be stored in a cell. For example, in Patent Document 1, one area is set to operate in a mode in which 1-bit data can be written to one memory cell transistor, and another area is set to operate in a mode in which multi-bit data can be written. A memory that can be used is disclosed.
  • the erase frequency greatly depends on the operating state (access frequency) of the storage system. Therefore, although the storage device is set so as to include many cells having a large number of bits that can be stored, the access frequency may be higher than initially assumed. In that case, there is a possibility that the storage device cannot be used before the storage device life (lifetime) assumed in advance.
  • the storage device is set so as to include many cells with a small number of bits that can be stored, but the access frequency may be lower than initially assumed. In this case, the life of the storage device is extended, but the storage capacity is small, leading to an increase in the cost of the storage system.
  • a storage system is equipped with a plurality of storage devices that use flash memory as a storage medium.
  • the flash memory used for storage devices is a flash memory that can be operated as either a cell that can store n-bit information or a cell that can store m-bit (n ⁇ m) information. It is memory.
  • the storage system periodically acquires the number of remaining erasable times from the storage device, and predicts the life of the storage device using the acquired number of remaining erasable times and the operating time of the storage device.
  • the predicted lifetime is greater than a predetermined value (lifetime)
  • the predetermined number of cells are changed to cells that can store m-bit information.
  • the nonvolatile semiconductor storage medium used for the storage device is a flash memory (FM).
  • the flash memory is assumed to be a type of flash memory that is read / written in units of pages, typically a NAND flash memory.
  • the flash memory may be another type of flash memory instead of the NAND type.
  • other types of non-volatile semiconductor storage media such as phase change memory may be employed.
  • FIG. 1 is a diagram illustrating a configuration example of a computer system including a storage system 1 (also referred to as “storage device 1”).
  • a storage system 1 also referred to as “storage device 1”.
  • the storage apparatus 1 includes a storage controller 10 and a plurality of storage devices (SSD 21 and HDD 25) connected to the storage controller 10.
  • the SSD 21 is a storage device for storing write data from an external device such as a host (host computer) 2 and is a storage device adopting a nonvolatile semiconductor 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 a transmission line (SAS link) conforming to the SAS (Serial Attached SCSI) standard, a transmission line (PCI link) conforming to the PCI (Peripheral Component Interconnect) standard, or the like.
  • SAS link Serial Attached SCSI
  • PCI link Peripheral Component Interconnect
  • the storage apparatus 1 of this embodiment can use an HDD (Hard Disk Drive) 25 as a storage device in addition to the SSD 21.
  • the HDD 25 is a storage device that uses a magnetic disk as a recording medium.
  • the HDD 25 is also connected to the storage controller 10 like the SSD 21.
  • the HDD 25 is also connected to the storage controller 10 by a SAS link or the like.
  • the configuration in which only the SSD 21 is connected as a storage device to the storage apparatus 1 of the present embodiment will be mainly described.
  • the storage controller 10 is a component that receives a data access request from the host 2 and performs processing (read processing or write processing) on the SSD 21 or the HDD 25 in accordance with the received access request.
  • the storage controller 10 may be abbreviated as DKC10.
  • One or more hosts 2 are connected to the storage controller 10.
  • a management host 5 is connected to the storage controller 10.
  • the storage controller 10 and the host 2 are connected via a SAN (Storage Area Network) 3 formed using a fiber channel as an example.
  • the storage controller 10 and the management host 5 are connected via a LAN (Local Area Network) 6 formed using Ethernet as an example.
  • the storage controller 10 includes at least a processor (CPU) 11, a host interface (denoted as “host I / F” in the figure) 12, a device interface (denoted as “device I / F” in the figure) 13, a memory 14, and a management. I / F 15 for use.
  • the processor 11, host I / F 12, device I / F 13, memory 14, and management I / F 15 are interconnected via an internal switch (internal SW) 16.
  • an internal switch internal SW
  • FIG. 1 a plurality of these components may be mounted in the storage controller 10 in order to ensure high performance and high availability. Further, instead of the internal SW 16, the components may be connected to each other via a common bus.
  • the device I / F 13 has at least an interface controller and a transfer circuit (not shown).
  • the interface controller is a component for converting a protocol (SAS in one example) used by the SSD 21 into a communication protocol (PCI-Express as an example) used in the storage controller 10.
  • the transfer circuit is used when the storage controller 10 transfers data (read, write) to the SSD 21.
  • the host I / F 12 has at least an interface controller and a transfer circuit (not shown), like the device I / F 13.
  • the interface controller included in the host I / F 12 converts a communication protocol (for example, fiber channel) used in the data transfer path between the host 2 and the storage controller 10 and a communication protocol used in the storage controller 10. belongs to.
  • the processor 11 performs various controls of the storage device 1.
  • the memory 14 is used to store programs executed by the processor 11 and various management information of the storage device 1 used by the processor 11.
  • the memory 14 stores a configuration management program 141, a cell mode control program 142, and an I / O program 143. Details of these programs will be described later.
  • 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 is configured by a volatile storage medium such as DRAM or SRAM. However, as another embodiment, the memory 14 may be configured by using a nonvolatile memory.
  • the management host 5 is a computer for performing management operations of the storage apparatus 1.
  • the management host 5 includes input / output devices (not shown) such as a keyboard and a display, and a user (administrator) can issue a setting instruction to the storage apparatus 1 using the input / output devices.
  • the management host 5 can also display information such as the status of the storage apparatus 1 on an output device such as a display.
  • FIG. 2 is a diagram illustrating a configuration example of the SSD 21.
  • the SSD 21 may be a storage device including a plurality of flash memories and a controller that controls them, and the form factor may not be the same as that of a known HDD or the like.
  • the SSD 21 has an SSD controller 200 and a plurality of FM chips 210.
  • the SSD controller 200 includes a processor (CPU) 201, an upstream I / F (upstream I / F) 202, a downstream I / F (downstream I / F) 203, and a memory 204, and these are internal connection switches (internal connection SW). ) 205 to each other.
  • the upstream I / F 202 is an interface controller for performing communication between the SSD 21 and the storage controller 10.
  • the upstream I / F 202 is connected to the device IF 13 of the storage controller 10 via a transmission line (SAS link or PCI link).
  • the downstream I / F 203 is an interface controller for performing communication between the SSD controller 200 and the FM chip 210.
  • 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 stores, for example, a cell mode change program 242 and an FM I / O program 243. Details of these programs will be described later.
  • a part of the memory 204 is also used as a buffer for temporarily storing write data transmitted from the storage controller 10 together with the write command and data read from the FM chip 210.
  • a volatile memory such as a DRAM is used.
  • a nonvolatile memory may be used for the memory 204.
  • FM chip 210 is a non-volatile semiconductor memory chip such as a NAND flash memory.
  • the FM chip 210 has a plurality of dies 213, and each die 213 has a plurality of cells 214.
  • the cell 214 is a memory element including a transistor or the like, and each cell 214 can hold one or a plurality of bits of data.
  • Write data from the SSD controller 200 is stored in the cell 214.
  • the amount of information (number of bits) that can be stored in the cell 214 can be changed by an instruction from the SSD controller 200.
  • reading / writing of data in the flash memory cannot be performed in units of cells 214.
  • a set of a plurality of cells 214 is performed for each area of a predetermined size (for example, 8 KB) called a page. Data erasure is performed for each block 211 that is a set of pages.
  • the SSD 21 manages each FM chip 210 with a unique identification number, and this identification number is called a chip number (chip #).
  • chip # chip number
  • Each die 213 in the FM chip 210 is also given a unique identification number in the FM chip 210, and this identification number is called a die #.
  • each block 211 in the die 213 is assigned an identification number unique within the die 213, and this identification number is referred to as a block #.
  • the SSD controller 200 accesses the block 211 of the FM chip 210, the block 211 in the SSD 21 is uniquely specified by designating the chip #, die #, and block #.
  • the storage address space (referred to as logical address space or LBA space) provided by the SSD 21 (SSD controller 200) according to this embodiment to the initiator such as the DKC 10 is independent of the chip #, die #, and block #. It is space. Therefore, when the DKC 10 issues an access request (read command or write command) to the SSD 21, it is not necessary to specify the FM chip 210, the block 211, or the like.
  • an address is assigned for each predetermined size (for example, 512 bytes), and this address is referred to as “Logical Block Address (LBA)”.
  • the DKC 10 can read data from the SSD 21 or write data to the SSD 21 by issuing a command specifying an area in the logical address space (an area specified by the size of the LBA and the access target area). is there.
  • a write command for an area on the LBA space arrives from the DKC 10
  • the SSD controller 200 allocates a page to the area.
  • Write data is stored in the assigned page (in cell 214).
  • a write request that is, an overwrite request
  • the SSD controller 200 creates a new unused page (a page in which no data has yet been stored) for that area.
  • write data is stored in a newly allocated unused page.
  • the SSD controller 200 has management information (mapping table) for managing the relationship (mapping) between the area on the LBA space and the page assigned to the area on the LBA space. Since this is the same information as that of a known flash memory, the description is omitted in this specification.
  • a mode in which the cell 214 can store n-bit (2 bits) data is called an MLC (Multi-Level Cell) mode, and the cell 214 can store m-bit (3-bit) data. This is called a TLC (Triple-Level Cell) mode.
  • MLC Multiple-Level Cell
  • TLC Triple-Level Cell
  • the MLC mode and the TLC mode are collectively referred to as “cell mode” or “mode”.
  • the cell mode is changed in block 211 units. That is, all the cells 214 included in one block are set to the same mode.
  • the SSD controller 200 instructs the FM chip 210 to change the cell mode for a certain block in the FM chip 210, all the cells 214 in the block 211 are changed to the TLC mode.
  • the mode does not necessarily have to be changed for each block 211.
  • a mode change may be performed for each die 213, or a mode change may be performed for each page and each cell 214.
  • the SSD 21 according to the present embodiment can change the size of the LBA space provided to the DKC 10.
  • the size of the LBA space provided to the DKC 10 is referred to as “logical capacity”.
  • the logical capacity is equal to the total storage capacity of all the cells 214 in the SSD 21.
  • the logical capacity of the SSD 21 is N ⁇ 2 (bit).
  • a part of the cells 214 in the SSD 21 is reserved as a replacement cell (replacement of the cell 214 that cannot be used due to a failure), and the total storage of the cells 214 excluding the replacement cell is stored.
  • the capacity may be defined as a logical capacity.
  • the block management table 1150 managed by the SSD 21 is stored in the memory 204. Information about each block 211 in the SSD 21 is stored in each row (record) of the block management table 1150. Of the columns of the block management table 1150, the chip # 1151, die # 1152, and block # 1153 are columns for storing the chip #, die #, and block # of the block 211. By specifying the chip # 1151, die # 1152, and block # 1153, the block 211 in the SSD 21 is uniquely identified.
  • the mode 1154 is a column for storing information indicating whether the block 211 is the MLC mode or the TLC mode. When 0 is stored in the mode 1154, it means that the block 211 is in the MLC mode, and when 1 is stored in the mode 1154, it means that the block 211 is in the TLC mode.
  • the remaining erasable count 1155 stores information indicating how many times the block 211 may perform erasure processing.
  • the number of times of erasure of the block 211 of the SSD 21 is limited, and if the block 211 is erased a predetermined number of times (this is referred to as “erasable number” here), the block 211 cannot be used.
  • the number of erasable times is a value determined by a flash memory vendor or the like.
  • the remaining number of erasable times is a value obtained by subtracting the number of times the erasing process has actually been performed on the block 211 (referred to as the number of times of erasing) from the erasable number of times for the block 211. For this reason, in the initial state (the state in which the erasing process has never been performed), the remaining erasable number is equal to the erasable number.
  • the number of erasable times (for example, tens of thousands) is stored in the remaining erasable number of times 1155 of each block 211.
  • the number of erasable times of each block in the SSD 21 is equal.
  • the SSD controller 200 performs the erasing process of the block 211 once, the SSD controller 200 decrements the remaining erasable count 1155 of the block 211 by one.
  • the remaining erasable count 1155 of the block 211 becomes 0, writing and erasing to the block 211 are prohibited.
  • the number of erasable times is smaller than that of an MLC flash memory. Therefore, when the mode of the block 211 is changed while the flash memory is in use, the value of the remaining erasable count 1155 is also changed.
  • the remaining erasable count 1155 is n (n is an integer equal to or greater than 0) and the block 211 set in the MLC mode is changed to the TLC mode, the remaining erasable count 1155 of the block 211 is changed.
  • n is an integer equal to or greater than 0
  • the remaining erasable count 1155 of the block 211 is changed.
  • the SSD 21 When allocating a block 211 (internal page) to the LBA space, the SSD 21 refers to the remaining erasable count 1155 in the block management table 1150 to select the block 211 having the largest remaining erasable count 1155, and within the block 211 Are assigned to the LBA space. Since such a selection method of the block 211 is adopted, only the specific block 211 in the SSD 21 is unlikely to have an event in which the number of erasures increases (the number of remaining erasable times decreases). However, since there may still be an imbalance in the number of remaining erasable times of each block 211, the SSD 21 according to this embodiment makes the number of remaining erasable times of each block 21 as uniform as possible, as in a known flash memory. Processing (so-called wear leveling processing) may be performed. Since wear leveling is a known process, description thereof is omitted here.
  • the storage apparatus 1 forms one logical storage space from a plurality of SSDs 21 by using a RAID (Redundant Arrays of Independent / Independent Disks) technology.
  • a set of SSDs 21 used to form one logical storage space by RAID technology is called a RAID group.
  • FIG. 4 is a conceptual diagram for explaining the storage space of the RAID group 30.
  • FIG. 4 shows an example in which the RAID group 30 is composed of four SSDs 21.
  • SSD # 0 (20-0) to SSD # 3 (20-3) represent logical address spaces (LBA spaces) provided by the SSD 21 to the storage controller 10, respectively.
  • FIG. 4 shows an example in which the RAID level of the RAID group 30 (representing the data redundancy method in the RAID technology and generally having RAID levels of RAID1 to RAID6) is RAID5.
  • boxes such as “0”, “1”, and “P” in the RAID group 30 represent stripe blocks, and the size of the stripe block is, for example, 64 KB, 256 KB, 512 KB, or the like.
  • a number such as “1” assigned to each stripe block is referred to as a “stripe block number”.
  • a stripe block described as “P” in the stripe block is a stripe block in which redundant data (parity) is stored, and this is called a “parity stripe”.
  • a stripe block in which numerals (0, 1 etc.) are written is a stripe block in which data written from an external device such as the host 2 (data which is not redundant data) is stored. This stripe block is called “data stripe”.
  • Redundant data stored in the parity stripe is generated using data in the data stripe.
  • a parity stripe and a set of data stripes (for example, the element 300 in FIG. 4) used to generate redundant data stored in the parity stripe are referred to as “strip lines”.
  • each stripe block belonging to one stripe line is represented by SSD # 0 (20-0) to SSD # 3 (20 -3)
  • a stripe line is formed according to the rule that it exists in the same position (LBA).
  • the storage controller 10 manages a plurality of stripe lines continuously arranged in the RAID group in a management unit called “chunk”. As shown in FIG. 4, one chunk 31 has a plurality of stripe lines. Each chunk has the same size. However, one chunk 31 may have only one stripe line.
  • Each chunk is given an identification number that is unique within the RAID group, and this identification number is called a chunk number.
  • the chunk number of the chunk including the first stripe line of the RAID group (the stripe line composed of the stripe block at the head of SSD # 0 (20-0) to SSD # 3 (20-3)) is set to 1, and thereafter Each chunk located at is assigned a continuous integer value.
  • the address (range) of the LBA space of the SSD 21 belonging to the chunk is obtained from the chunk number by a relatively simple calculation. It is done. Conversely, the chunk number of the chunk to which the address belongs is also calculated from the address on the LBA space of the SSD 21.
  • FIG. 5 is a diagram showing the relationship between virtual volumes, RAID groups, and pools.
  • the storage controller 10 provides the host 2 with one or more virtual storage spaces different from the storage area of the RAID group. This virtual storage space is called a “virtual volume”.
  • the storage space of the virtual volume is also divided and managed for each area of a predetermined size. This area of a predetermined size is called a “virtual chunk”.
  • a virtual chunk is an allocation unit of a storage area of a virtual volume.
  • the storage controller 10 has a management table for recording the mapping between virtual chunks and chunks, and uses this management table to manage storage areas (chunks) allocated to virtual chunks.
  • the storage controller 10 determines a storage area (chunk) in the logical address space of the SSD 21 to which data written to the area is to be written only when a write request for the area on the virtual chunk is received from the host 2. To do. As the chunk determined here, one chunk is determined from among chunks not yet assigned to any virtual chunk (unused chunk).
  • a set of RAID groups having storage areas (chunks) that can be allocated (mapped) to virtual chunks is called a pool.
  • the storage apparatus 1 selects one unused chunk from the RAID groups managed by the pool, and assigns the selected chunk to the virtual chunk.
  • FIG. 5 shows an example in which the logical capacity of SSD # 0 is expanded.
  • the number of chunks 31 that can be formed from the RAID group including the SSD 21 increases.
  • the chunk 31 is a storage area composed of one or more stripe columns, the number of chunks 31 does not increase even if only the logical capacity of one SSD 21 in the RAID group increases.
  • the chunk 31 can be increased.
  • management information used in the storage controller 10 will be described. Although the storage controller 10 has a lot of management information, the following description will focus on the management information related to the cell mode change process, which is the main subject of explanation in this embodiment.
  • FIG. 6 is a diagram for explaining the configuration of the RAID group management table.
  • the RAID group management table 650 is a table for managing the RAID group managed by the storage apparatus 1 and the attribute information of the SSD 21 belonging to the RAID group, and is stored in the memory 14. Each row (record) of the RAID group management table 650 stores the attribute information of the management target RAID group or the attribute information of the SSD 21 belonging to the management target RAID group.
  • the RAID group management table 650 includes RG # 651, RAID level 652, drive number 653, logical capacity 654, remaining erasable count 655, start date 656, difference ratio 657, life prediction value 658, Cell 659, last execution date 660, and number of chunks 661 columns.
  • RG # 651 stores a RAID group identification number (RAID group number), and a RAID level 652 indicates the RAID level of the RAID group.
  • the drive number 653 stores an identifier of the SSD 21 belonging to the RAID group.
  • the logical capacity 654 stores the logical capacity of the storage device (SSD 21) specified by the drive number 653.
  • the initial value of the logical capacity of each SSD 21 belonging to each RAID group (the logical capacity at the time of installation in the storage apparatus 1) is assumed to be equal.
  • the SSD 21 having a different logical capacity is used. May be used to form a RAID group.
  • the value of the logical capacity 654 can change over time.
  • the remaining erasable count 655 the remaining erasable count of the storage device (SSD 21) specified by the drive number 653 is stored. As described above, the SSD 21 also manages the number of remaining erasable times inside, but the SSD 21 manages the number of remaining erasable blocks in the SSD 21 for each block. On the other hand, the value stored in the remaining erasable count 655 is the sum of the remaining erasable counts for each block. In the following, the “number of remaining SSDs that can be erased” is used as a word that means the total number of remaining erases that can be performed on all blocks in the SSD 21.
  • the SSD 21 has a function of returning the remaining number of erasable times of the SSD 21 to the initiator when receiving an acquisition request of the number of remaining erasable times from the initiator such as the DKC 10.
  • the DKC 10 issues an acquisition request for the number of remaining erasable times to the SSD 21 to obtain information on the number of remaining erasable times from the SSD 21 and stores the information in the number of remaining erasable times 655.
  • the start date 656 stores the date when the operation of the SSD 21 is started (referred to as the operation start date). Specifically, when the SSD 21 is installed in the storage apparatus 1 and a RAID group including the SSD 21 is defined by the administrator, the DKC 10 stores the date at that time in the start date 656.
  • the difference ratio 657 is an index value used by the DKC 10 in this embodiment to predict a change in the operating status of each SSD 21. A method for calculating the difference ratio will be described later.
  • the DKC 10 calculates the difference ratio of each SSD 21 every predetermined time (for example, one month).
  • the RAID group management table 650 also records the difference ratio 657 calculated in the past. When the DKC 10 calculates the difference ratio, the calculated value is stored in D0 (657-0).
  • the difference ratio calculated one unit time before (for example, one month before) from the time when the value is stored in D0 (657-0) is stored in D1 (657-1).
  • the difference ratio calculated two unit time before the value is stored in D0 (657-0) (for example, two months ago) is stored in D2 (657-2) and D0 (657-0).
  • the difference ratio calculated three units before (for example, three months ago) from the time when the value is stored in is stored in D3 (657-3).
  • T. Cell 659 is information regarding whether or not the cell mode can be changed. T. of record. When “0” is stored in the Cell 659, the DKC 10 does not perform the cell mode change process for the SSD 21 in the RAID group corresponding to the record. On the other hand, when “1” is stored in the Cell 659, the DKC 10 performs the cell mode change process of the SSD 21 in the RAID group corresponding to the record. T.A. A value is stored in Cell 659 when the user (administrator) of the storage apparatus 1 defines the RAID group.
  • the previous implementation date 660 stores the latest date among the dates on which cell mode change processing has been performed on the SSD 21 belonging to the management target RAID group in the past.
  • NULL invalid value, for example, a value that is not used as a date such as 0
  • the life prediction value 658 the life prediction value of the SSD 21 calculated by the DKC 10 based on the change rate of the remaining erasable number of the SSD 21 is stored. This is the definition of the life in the storage system 1 according to the present embodiment, but when the remaining erasable count of the SSD 21 becomes 0, it is defined that the SSD 21 has reached the end of its life. Therefore, the date (time) at which the remaining erasable count of the SSD 21 is predicted to be 0 is the life prediction value.
  • the DKC 10 predicts the time when the remaining erasable number of the SSD 21 becomes 0 based on the change rate of the remaining erasable number of the SSD 21. Details of the method of calculating the predicted life value will be described later.
  • the remaining erasable number of SSDs 21 is less than a predetermined threshold (however, this threshold is 0 or more).
  • the date (time) may be the lifetime.
  • the RAID group management table 650 may include information other than the information described above.
  • the RAID group management table 650 may store the number of chunks that can be defined in each RAID group.
  • the DKC 10 also has management information other than the RAID group management table 650.
  • management information other than the RAID group management table 650 For example, there are a table for managing the mapping relationship between the virtual chunks in each virtual volume defined in the storage apparatus 1 and the chunks, a table for managing the usage status of the chunks in the pool, and the like.
  • a table for managing the mapping relationship between the virtual chunks in each virtual volume defined in the storage apparatus 1 and the chunks a table for managing the usage status of the chunks in the pool, and the like.
  • description thereof is omitted here.
  • a program executed by the storage controller 10 will be described.
  • a configuration management program 141, a cell mode control program 142, and an I / O program 143 are stored in the memory 14 of the storage apparatus 1.
  • various processes described below are executed. However, in order to avoid redundant description, each process may be described with a program as the subject when each process is described below.
  • the configuration management program 141 is a program for managing virtual volumes and RAID groups defined by the storage apparatus 1.
  • the configuration management program 141 is executed in the storage apparatus 1 (CPU 11).
  • the configuration management program 141 stores information (for example, an identifier of the SSD 21 belonging to the RAID group) in the RAID group management table 650 based on an instruction from the user.
  • the configuration management program 141 sets the T.D. of the record for the RAID group to be defined among the records in the RAID group management table 650. “1” is stored in Cell 659; “0” is stored in Cell 659.
  • the I / O program 143 is a program for processing an I / O request (read command or write command) from the host 2. Since the specific processing contents executed by the I / O program 143 are not directly related to the present embodiment, the description thereof is omitted.
  • the cell mode control program 142 is a program that determines whether or not the cell mode needs to be changed based on the operating status of the SSD 21 and causes the SSD 21 to perform a cell mode change process as necessary.
  • Steps 1 and 2 are part of the processing performed when the RAID group is defined, and the configuration management program 141 executes these steps.
  • description of the process which defines a RAID group is abbreviate
  • the user uses the management host 5 to issue an instruction to the storage apparatus 1 to permit the SSD 21 belonging to the RAID group to change the cell mode.
  • the configuration management program 141 receives this instruction.
  • step 2 the configuration management program 141 records the T.D. of the record for the RAID group to be defined. “1” is stored in Cell 659.
  • the configuration management program 141 notifies the user that the definition of the RAID group has been completed, and that if the user has permitted the cell mode change, the cell mode change has been set.
  • the RAID group is accessed (read or written) by the I / O program 143.
  • the I / O program 143 is included in the defined RAID group in response to the host 2 issuing a write command to the virtual volume.
  • I / O processing is performed on the mapped chunks.
  • description thereof will be omitted.
  • the cell mode control program 142 performs processing periodically (for example, once a month) for the RAID group (step 3 to step 6).
  • processing periodically for example, once a month
  • the cell mode control program 142 is executed for each RAID group. However, in the RAID group management table 650, T.M. Only the RAID group in which “1” is set in the Cell 659 is subjected to the processing from Step 3 to Step 6. As an example, an example in which the cell mode control program 142 is executed for RG # n (n is a non-negative integer value) will be described below.
  • the cell mode control program 142 When the cell mode control program 142 is started, the cell mode control program 142 first issues an acquisition request for the number of remaining erasable times to each SSD 21 belonging to RG # n (step 3). Receiving the acquisition request for the remaining erasable number, the SSD 21 returns the remaining erasable number of the SSD 21 to the storage controller 10 (step 4).
  • the cell mode control program 142 determines whether or not it is necessary to change the cell mode by using the remaining erasable number of the SSD 21 received in step 4 (step 5). If it is determined in step 5 that the cell mode needs to be changed, the cell mode control program 142 calculates the remaining erasable number of times that the SSD 21 belonging to RG # n can operate for a predetermined number of years, and changes the cell mode (step 6). To implement. In the present embodiment, an example in which the expected useful life of the SSD 21 is at least 5 years will be described. Details of steps 5 and 6 will be described later. In the present embodiment, the cell mode changing process in step 6 is sometimes called “T. Cell”. If it is determined in step 5 that the cell mode change is not necessary, the cell mode control program 142 does not perform step 6 and ends the process.
  • Step 3 to Step 5 in FIG. 7 Details of the processing of Step 3 to Step 5 in FIG. 7 will be described with reference to FIGS. Note that the processes described in FIGS. 8 and 9 correspond to steps 3 to 5 in FIG. Details of step 6 are shown in FIG.
  • Step 1010 The cell mode control program 142 calculates the operating time of each SSD 21 belonging to RG # n.
  • the operation time of the SSD 21 means an elapsed time since the operation of the SSD 21 was started, and the operation start date of the SSD 21 from the current date (time) (from the start date 656 of the RAID group management table 650). This is a value obtained by subtracting the stored value.
  • the cell mode control program 142 issues a request for acquiring the remaining erasable count to each SSD 21 in order to acquire the remaining erasable count of each SSD 21 belonging to RG # n.
  • the SSD 21 that has received the acquisition request for the number of remaining erasable times refers to the block management table 1150 and calculates the sum of the number of remaining erasable times 1155 of all blocks of the SSD 21. Then, the SSD 21 returns the calculated total value (that is, the remaining erasable number of the SSD 21) to the storage controller 10 (cell mode control program 142).
  • Step 1020 The cell mode control program 142 calculates a life prediction value and a difference ratio of each SSD 21 belonging to RG # n. Below, the definition and calculation method of a lifetime prediction value and a difference ratio are demonstrated.
  • Points (a1) and (a2) in FIG. 10 plot the number of remaining erasable times of a certain SSD 21.
  • the horizontal axis represents time (date and time), and the vertical axis represents the number of remaining erasable times.
  • the point (a2) represents the remaining erasable number (N2) of the SSD 21 at the current time (T2)
  • the point (a1) represents the remaining erasable number (N1) of the SSD 21 when the previous cell mode control program 142 was executed (T1).
  • the current time (date and time) means the time (date and time) at the time (instant) when the current cell mode control program 142 is executed.
  • the (average) change rate of the remaining erasable times of the SSD 21 between times T1 and T2 is equal to the slope of the straight line (A) in FIG. 10 (hereinafter, this slope may be expressed as G).
  • G can be represented by the following formula (1).
  • the calculation is performed under the assumption that the remaining number of erasable times of the SSD 21 decreases at the rate of change obtained by the equation (1).
  • the life expectancy value is the time when the remaining erasable count of the SSD 21 becomes zero. Therefore, the intersection (point (a3) in FIG. 10) of the extension line of the straight line (A) in FIG. 10 and the horizontal axis represents the predicted life value. Assuming that the predicted life value is T3, T3 is expressed by the following equation (2).
  • the cell mode control program 142 obtains the estimated lifetime of the SSD 21 by calculating T3 using Expression (2).
  • the estimated life value of the SSD 21 described above is a value calculated on the assumption that the rate of change of the remaining erasable number of the SSD 21 is constant. However, the rate of change of the remaining erasable number of times may vary. For this reason, the estimated life value derived based on the rate of change of the remaining erasable count can also vary.
  • the difference ratio is an index value representing the fluctuation tendency of the life prediction value.
  • the cell mode control program 142 calculates the difference ratio using the following equation (3).
  • the operation start date (start date 656) of the SSD 21 is L0
  • the latest life prediction value (life prediction value calculated when the current cell mode control program 142 is executed) is L1
  • the previous time The life prediction value calculated when the cell mode control program 142 is executed is expressed as L2
  • the difference ratio is expressed as D.
  • the difference ratio D takes a positive value, it means that the life prediction value (L1) tends to increase (increased from the past life prediction value (L2)). In this case, for example, the write frequency to the SSD 21 may be decreasing. Conversely, when the difference ratio D takes a negative value, it means that the predicted life value (L1) tends to decrease (becomes smaller than the past predicted life value (L2)). In this case, for example, go to the SSD 21. It can be considered that the write frequency is increasing.
  • the difference ratio is 0 or takes a value very close to 0, it means that there is almost no difference between L1 and L2 (there is no change in the predicted life value).
  • the write frequency to the SSD 21 It can be estimated that there is no change in the frequency (a constant write frequency).
  • step 1020 the cell mode control program 142 calculates the life prediction value and the difference ratio of each SSD 21 belonging to RG # n using the equations (2) to (3) described above. Further, the cell mode control program 142 stores the remaining erasable number of times and the estimated life value of each SSD 21 belonging to RG # n in the RAID group management table 650 in the remaining erasable number 655 and the estimated life value 658 after calculating the difference ratio. Therefore, when the execution of step 1020 is started, the remaining erasable number of times 655 and the estimated life value 658 store the remaining erasable number of times and the estimated life value of the SSD 21 when the cell mode control program 142 is executed last time. .
  • the calculation may be performed according to the following procedure.
  • the cell mode control program 142 substitutes the remaining erasable number of SSD # k obtained in step 1010 for N2 in equation (2), and SSD1k among the records in the RAID group management table 650 is assigned to N1. Is assigned the remaining erasable count 655 of the record corresponding to. Further, the cell mode control program 142 substitutes the current time (date and time) for T2, and substitutes the time (date and time) when the previous cell mode control program 142 was executed for T1. The cell mode control program 142 is executed periodically (for example, once a month).
  • the cell mode control program 142 may substitute the date and time one month before the current time (date and time) in T1.
  • the cell mode control program 142 calculates the life prediction value of each SSD 21 by performing this calculation for each SSD 21 belonging to RG # n.
  • the cell mode control program 142 substitutes the life prediction value obtained by using the equation (2) into L1 of the equation (3), and calculates the life prediction value (when the cell mode control program 142 is executed last time ( Of the records in the RAID group management table 650, the life prediction value 658 of the record corresponding to SSD # k is substituted for L2 in the formula (3), and the operation start date (in the RAID group management table 650)
  • the difference ratio D of SSD # k is calculated by substituting (stored on the start date 656 of the record corresponding to SSD # k) in L0 of Equation (3) among the records.
  • the cell mode control program 142 After the calculation of the difference ratio D, the cell mode control program 142, among the records in the RAID group management table 650, records D0 (657-0), D1 (657-1), D2 (657-) corresponding to SSD # k. The values stored in 2) are moved to D1 (657-1), D2 (657-2), and D3 (657-3), respectively. Thereafter, the cell mode control program 142 stores the value of the difference ratio D previously calculated using Expression (3) in D0 (657-0). As a result, D0 (657-0), D1 (657-1), D2 (657-2), and D3 (657-3) have the latest difference ratio D, the difference ratio calculated one month ago, 2 The difference ratio calculated three months ago is stored. The difference ratio calculated three months ago is stored.
  • Step 1030 The cell mode control program 142 determines whether a predetermined period has elapsed since the previous cell mode control program 142 performed the cell mode change process on the SSD 21 belonging to RG # n.
  • the “predetermined period” is a period longer than the cycle in which the cell mode control program 142 is executed for RG # n.
  • the “predetermined period” is 6 months.
  • the “predetermined period” may be a period longer than the cycle in which the cell mode control program 142 is executed.
  • the cell mode control program 142 previously records 660 of records storing information about RG # n (records where RG # 651 is “n”) among the records of the RAID group management table 650. However, it is determined whether it is six months or more before the current time.
  • the cell mode control program 142 determines whether a predetermined period (for example, 6 months) has elapsed from the operation start date (start date 656) of all the SSDs 21 belonging to RG # n.
  • the cell mode control program 142 determines not to change the cell mode of all SSDs 21 belonging to RG # n, and the process Is terminated (step 1150).
  • the cell mode control program 142 stores the remaining erasable number of times for each SSD 21 acquired in step 1010 in the remaining erasable number 655 of the RAID group management table 650, and uses the estimated life value calculated in step 1020. After storing in the life expectancy value 658 of the RAID group management table 650, the process ends.
  • step 1030 determines whether the determination in step 1030 is affirmative.
  • processing in and after step 1060 is performed.
  • the processing after step 1060 is performed for each SSD 21 belonging to RG # n.
  • Steps 1060 to 1270 are performed on one SSD 21 belonging to RG # n (this is called “SSD # k”) will be described.
  • Step 1060 The cell mode control program 142 refers to D0 (657-0) of SSD #k (D0 (657-0) is the difference ratio D calculated in Step 1020). Then, the cell mode control program 142 determines whether D0 (657-0) of SSD #k corresponds to any of the following (a) to (c). (A) Value very close to 0 (b) Negative value (c) Positive value
  • D0 (657-0) is in the range of ⁇ to ⁇
  • the cell mode control program 142 determines that D0 (657-0) is “a value very close to 0” (corresponding to (a)).
  • is a value in a relationship of 0 ⁇ ⁇ 1, and is a value close to 0 (for example, 0.05).
  • 0.05
  • D0 (657-0) is smaller than ⁇ , the cell mode control program 142 determines that D0 (657-0) is a negative value (corresponding to (b)). If D0 (657-0) is greater than ⁇ , the cell mode control program 142 determines that D0 (657-0) is a positive value (corresponding to (c)).
  • step 1060: D0 negative value
  • cell mode control program 142 executes cell mode change processing for all SSDs 21 in RG #n. It is determined not to do so (step 1150), and the process is terminated. In this case, as described above, it is estimated that the write frequency to the SSD 21 tends to increase. When the future write frequency with respect to SSD # k increases, the actual lifetime may be shorter than the lifetime prediction value obtained in step 1020. Therefore, in this case, the cell mode control program 142 determines not to execute the cell mode change process.
  • step 1060: D0 plus value
  • Step 1070 The cell mode control program 142 determines whether the operating time of SSD #k (the value calculated in step 1010) is less than one year. When the operating time of SSD # k is one year or more (step 1070: NO), the cell mode control program 142 determines not to execute the cell mode change process for all SSDs 21 in RG # n (step 1150), and performs the process. finish. When the operating time of SSD #k is less than one year (step 1070: YES), the cell mode control program 142 next executes step 1080. When D0 (657-0) of SSD #k corresponds to (c), it is presumed that the write frequency to SSD #k tends to decrease as described above.
  • the cell mode change process may be performed.
  • the tendency of access to volumes or storage devices read or write frequency by the host etc.
  • the access tendency gradually increases after that. Stabilize.
  • the cell mode control program 142 determines whether or not to execute the cell mode change process in consideration of the operating time of the SSD #k. If the operating time of SSD # k is less than one year and the write frequency is monotonically decreasing, the cell mode control program 142 determines that the access trend of SSD # k has started to stabilize, and the cell It is determined that the mode change process may be performed.
  • the cell mode changing process is performed only when the predicted life value is sufficiently long (for example, more than twice the assumed useful life).
  • the write frequency is decreasing but the operating time of SSD #k is one year or more, it is estimated that the access tendency to SSD #k is different from the general tendency. For example, this is the case when the type of data stored in the SSD #k changes due to an update from the host. In that case, there is a risk that the cell mode changing process is performed (risk of the SSD #k reaching the end of its life without waiting for its useful life). Therefore, in this case, the cell mode control program 142 determines not to execute the cell mode change process.
  • Step 1080 The cell mode control program 142 indicates that the SSD # k life expectancy value is 11 years or more after the operation start date, and the SSD # k difference ratio history (D0 (657-0) to D3 (657-3) )) Is determined to be in a relationship of D0 ⁇ D1 ⁇ D2 ⁇ D3. If the determination in step 1080 is negative (step 1080: NO), that is, the life expectancy value of SSD #k is less than 11 years from the operation start date, or the difference ratio history is D0 ⁇ D1 ⁇ D2 ⁇ D3. If not, the cell mode control program 142 determines not to execute the cell mode change process for all SSDs 21 in RG # n (step 1150), and ends the process. If the determination in step 1080 is affirmative (step 1080: YES), the cell mode control program 142 next executes step 1090.
  • Step 1090 If the determination in Step 1080 is affirmative, the life expectancy value of SSD #k (11 years or more from the operation start date) is longer than the assumed useful life (for example, 5 years) of SSD 21 It is. In addition, it can be said that the write frequency from the DKC 10 to the SSD #k tends to decrease monotonously. In this case, the cell mode control program 142 determines that it is better to increase the logical capacity of the SSD 21 even if the life (predicted life value) of the SSD 21 belonging to RG # n decreases.
  • the cell mode control program 142 estimates the remaining erasable number of times when the life expectancy value of the SSD #k is reduced (it can be rephrased as the remaining erasable number when the logical capacity of the SSD #k is increased).
  • the life expectancy value of the SSD 21 when the logical capacity is increased is referred to as “target life value”
  • target remaining erasable number the remaining erasable number at that time.
  • the cell mode control program 142 obtains the remaining number of erasable times with the target lifetime value of SSD #k as 10 years after the start of operation.
  • the reason why the target life value of SSD # k is set to a long value 10 years after the start of operation, that is, twice the expected service life, is that the operation time of SSD # k is short (1 after the start of operation). This is because the write frequency (update frequency) for SSD #k may change in the future.
  • the cell mode control program 142 makes the change of the cell mode of SSD # k not excessive by increasing the target life value.
  • step 1090 The calculation method of the target remaining erasable number performed in step 1090 (or step 1230, step 1250, and step 1270 described later) will be described.
  • the information used in step 1020 is used again.
  • the current time (when the current cell mode control program 142 is executed) is T2, and the time when the previous cell mode control program 142 is executed is T1.
  • the remaining erasable number of SSD # k at time T2 (current time) used in step 1020 is N2, and the remaining erasable number of SSD # k at time T1 is N1.
  • the target life value is T3 ′ and the target remaining erasable count is N2 ′.
  • the target remaining erasable number of times (N2 ′) is obtained by using the following equation (4).
  • the method for calculating the target remaining erasable count will be described again with reference to FIG.
  • the cell mode control program 142 calculates the target remaining erasable number
  • the remaining erasable number of the SSD 21 changes at the rate of change expressed by the equation (1), similar to the calculation of the predicted lifetime in step 1020. Calculate based on the assumption that In step 1020, the time when the remaining erasable count becomes 0 is calculated, and this is used as a life prediction value.
  • step 1090 it is assumed that the expected life value (that is, the time when the remaining erasable count becomes 0) is a predetermined value (for example, in step 1090, the time 10 years after the operation start date) The minimum value of the current remaining erasable times necessary to satisfy the lifetime prediction value is obtained.
  • the straight line (A) is a straight line used in the calculation of the predicted life value performed in step 1020.
  • the straight line (B) in FIG. 10 is a straight line parallel to the straight line (A) (that is, a straight line whose inclination is equal to the value represented by the expression (1)) and passes through the coordinates (T3 ′, 0) ( However, there is a relationship of T3 ′ ⁇ T3).
  • the coordinate value of the point (b1) on the straight line (B) is T2 on the horizontal axis (time) and N2 'on the vertical axis (number of remaining erasable times).
  • step 1090 the cell mode control program 142 substitutes the same value as the value substituted in step 1020 for N1, N2, T1, and T2 in the equation (4), and for SSD 3 # (target life value), SSD # N2 ′ is obtained by substituting the date 10 years after the operation start date of k.
  • Step 1095 If the cell mode control program 142 has not performed processing (steps 1060 to 1090 or steps 1210 to 1270) for all SSDs 21 belonging to RG # n, The process of step 1060 is executed. If the processing has been completed for all the SSDs 21 belonging to RG # n, the cell mode control program 142 performs step 1100 next.
  • Step 1100 The cell mode control program 142 determines to perform the cell mode changing process of SSD # k using the target remaining erasable number obtained in step 1090 or the like.
  • the cell mode control program 142 stores the remaining erasable number of times for each SSD 21 acquired in step 1010 in the remaining erasable number 655 of the RAID group management table 650, and uses the life expectancy value calculated in step 1020 as the RAID group. This is stored in the life expectancy value 658 of the management table 650. Thereafter, the cell mode control program 142 executes Step 6 (cell mode change process). Details of step 6 will be described later.
  • the cell mode control program 142 determines in principle that the cell mode change process may be performed. Details will be described later.
  • Step 1210 The cell mode control program 142 determines whether the operating time of the SSD #k is less than 1 year, 1 year or more and less than 3 years, or 3 years or more.
  • step 1240 is executed.
  • the cell mode control program 142 determines that the SSD #k life expectancy value is 7 years or more from the operation start date, and the difference ratios (D1, D2, D3) calculated in the past are extremely close to 0 ( -Value in the range of - ⁇ to ⁇ ). If the determination in step 1240 is negative (step 1240: NO), the cell mode control program 142 determines not to execute the cell mode change process for all SSDs 21 in RG # n (step 1150), and ends the process. .
  • the reason why the cell mode control program 142 determines in step 1240 that D1, D2, and D3 are all in the range of - ⁇ to ⁇ is that there is no change in the write frequency to the SSD 21, that is, access to the SSD 21. This is to confirm whether the trend is in a stable state. If the access tendency to the SSD 21 is not stable, there is a risk that the write frequency (erase frequency) will increase in the future, so the cell mode control program 142 does not execute the cell mode change process.
  • step 1240 determines whether the determination in step 1240 is affirmative (step 1240: YES). If the determination in step 1240 is affirmative (step 1240: YES), the cell mode control program 142 performs a remaining erasable number determination process for SSD #k (step 1250).
  • the processing in step 1250 is the same as that in step 1090.
  • the target remaining erasable count is determined when the target life value of SSD #k is 7 years from the operation start date. That is, it differs from step 1090 in that the life expectancy value is calculated by substituting the date 7 years after the operation start date into T3 ′ in the equation (4).
  • step 1275 NO. If the determination in step 1275 is affirmative, step 1100 is subsequently executed.
  • step 1260 is executed.
  • the cell mode control program 142 determines that the SSD # k life expectancy is 6 years or more from the operation start date, and D1, D2, and D3 are all very close to 0 (values in the range of - ⁇ to ⁇ ). ). If the determination in step 1240 is negative (step 1260: NO), the cell mode control program 142 determines not to execute the cell mode change process for all SSDs 21 in RG # n (step 1150), and ends the process. .
  • step 1260 If the determination in step 1260 is affirmative (step 1260: YES), the cell mode control program 142 performs a remaining erasable number determination process for the SSD #k (step 1270).
  • the processing in step 1270 is the same as that in step 1090.
  • the remaining erasable count is determined when the SSD # k target life value is 6 years from the operation start date. That is, it differs from Step 1090 in that the life expectancy value is calculated by substituting the date 6 years after the operation start date into T3 ′ of Expression (4).
  • step 1275 NO. If the determination in step 1275 is affirmative, step 1100 is subsequently executed.
  • step 1220 is executed.
  • the cell mode control program 142 determines that the SSD # k life prediction value is 5.5 years or more from the operation start date, and D1, D2, and D3 are all very close to 0 (in the range of - ⁇ to ⁇ ). Value). If the determination in step 1220 is negative (step 1220: NO), the cell mode control program 142 determines not to execute the cell mode change process for all SSDs 21 in RG # n (step 1150), and ends the process. .
  • step 1220 If the determination in step 1220 is affirmative (step 1220: YES), the cell mode control program 142 performs a remaining erasable number determination process for the SSD #k (step 1230).
  • the processing in step 1230 is the same as that in step 1090.
  • the remaining erasable number is determined when the target life value of SSD #k is 5.5 years from the operation start date. That is, it differs from Step 1090 in that the life expectancy value is calculated by substituting the date 5.5 years after the operation start date into T3 ′ in Expression (4).
  • step 1275 NO. If the determination in step 1275 is affirmative, step 1100 is subsequently executed.
  • FIG. 13 Details of the process (cell mode change process) corresponding to step 6 in FIG. 7 will be described with reference to FIGS. 13, 11, and 12.
  • FIG. 13 Details of the process (cell mode change process) corresponding to step 6 in FIG. 7 will be described with reference to FIGS. 13, 11, and 12.
  • the cell mode control program 142 issues a capacity confirmation command to each SSD 21 belonging to RG # n (step 7).
  • the capacity confirmation command includes information on the number of remaining erasable times.
  • the remaining erasable number information included here is obtained as a result of the cell mode control program 142 executing the processing shown in FIGS. 8 and 9 (processing corresponding to steps 3 to 5 in FIG. 7). This is the target remaining erasable number of times of the SSD 21.
  • the SSD 21 If a part or all of the blocks 211 of the SSD 21 are changed from the MLC mode to the TLC mode, the logical capacity of the SSD 21 increases, but the number of remaining erasable times decreases. Receiving this command, the SSD 21 obtains the number of blocks 211 that can be changed to the TLC mode by using the remaining erasable number information included in the command, and further changes the block 211 to the TLC mode based on that. When the logical capacity is calculated (step 8), the SSD 21 returns the calculated logical capacity to the storage controller 10 (step 9). Details of processing executed by the SSD 21 will be described later.
  • FIG. 11 the flow of processing executed by the SSD 21 in step 8 will be described.
  • the process of FIG. 11 is performed by the cell mode change program 242 included in the SSD 21.
  • Step 2010 When receiving the capacity confirmation command from the DKC 10, the cell mode change program 242 extracts information on the remaining erasable number contained in the capacity confirmation command.
  • Step 2020 The cell mode change program 242 creates a copy of the block management table 1150.
  • a copy of the created block management table 1150 is referred to as a “replication table”.
  • each column of the replication table is referred to as chip # 1151, die # 1152, block # 1153, mode 1154, and remaining erasable count 1155.
  • the cell mode change program 242 sorts the records in the replication table in descending order of the remaining erasable count 1155.
  • Step 2030 The cell mode change program 242 selects one record from the replication table.
  • the record selected here is a record that has not undergone the processing from step 2040 described below and has the largest remaining erasable count 1155.
  • Step 2040 The cell mode change program 242 calculates the remaining erasable count of the SSD 21 based on the contents of the replication table. At this time, the cell mode change program 242 calculates the remaining erasable count of the SSD 21 on the assumption that the block managed by the record selected in step 2030 has been changed from the MLC mode to the TLC mode. Specifically, the calculation is performed according to the following procedure.
  • the cell mode change program 242 calculates the total value of the remaining erasable times 1155 of all records except the record selected in Step 2030 in the replication table. Subsequently, the cell mode changing program 242 calculates a value obtained by multiplying the number of remaining erasable times of the record selected in Step 2030 by 0.1, and the value calculated here is used as the remaining erasable number of times 1155 previously calculated. Add to the total value of.
  • the cell mode change program 242 determines whether or not the remaining erasable count of the SSD 21 calculated here is equal to or less than the remaining erasable count received in step 2010. If the calculated remaining erasable number of the SSD 21 is less than or equal to the remaining erasable number received in step 2010 (step 2040: YES), then step 2050 is performed. If the calculated remaining erasable number of the SSD 21 is larger than the remaining erasable number received in step 2010 (step 2040: NO), the cell mode change program 242 skips the processing of step 2050 to step 2070, and then Step 2080 is performed.
  • step 2040 if the mode 1154 of the record selected in step 2030 is “1” (that is, if the block managed by the selected record is already in the TLC mode), steps 2050 to 2070 are also performed. This process is skipped and step 2080 is performed.
  • Step 2050 The cell mode change program 242 changes the remaining erasable count 1155 of the record selected in Step 2030 (multiplies by 0.1), and changes the mode 1154 of this record to “1”.
  • Step 2070 The cell mode change program 242 determines whether or not there is an unprocessed record (a record for which processing such as Step 2030 and Step 2040 is not performed) in the replication table. When there is an unprocessed record (step 2070: YES), the cell mode change program 242 performs the process of step 2030 again. If there is no unprocessed record (step 2070: NO), then step 2080 is performed.
  • an unprocessed record a record for which processing such as Step 2030 and Step 2040 is not performed
  • Step 2080 The cell mode change program 242 calculates the logical capacity of the SSD 21 when some blocks are changed to the TLC mode. Specifically, the following calculation is performed.
  • the cell mode change program 242 sets the number of records whose mode 1154 is “0” (this is M) and the number of records whose mode 1154 is “1” (this is T) among the records in the replication table. ).
  • the counted values (M, T) respectively correspond to the number of blocks in the MLC mode and the number of blocks in the TLC mode when several blocks 211 in the SSD 21 are changed to the TLC mode.
  • the cell mode change program 242 calculates the logical capacity of the SSD 21 by calculating the size of the block of the M ⁇ MLC mode + the size of the block of the T ⁇ TLC mode. Note that the size of the TLC mode block is 1.5 times the size of the MLC mode block (the number of bits that can be stored in one cell 214 is 1.5 times that of MLC).
  • Step 2090 The cell mode change program 242 notifies the DKC 10 of the logical capacity of the SSD 21 calculated in Step 2080, discards the replication table, and ends the process.
  • the cell mode control program 142 determines the minimum capacity of the SSD 21 belonging to RG # n (step 10). Specifically, the cell mode control program 142 specifies the minimum value of the logical capacity returned from each SSD 21 belonging to RG # n. The specified value is the minimum capacity of the SSD 21 belonging to RG # n. Thereafter, the cell mode control program 142 confirms with the user whether the cell mode can be changed (step 11). As an example, the cell mode control program 142 causes the management host 5 to display a confirmation screen as shown in FIG. 14 on the display of the management host 5 and whether or not to accept the change of the cell mode, and a response from the user. obtain. When the user presses the “Execute” button in the confirmation screen of FIG. 14, the management host 5 returns that fact to the cell mode control program 142 (step 12).
  • the cell mode control program 142 ends the process.
  • the cell mode control program 142 When the user permits the change of the cell mode, that is, when the user presses the “execute” button on the confirmation screen, the cell mode control program 142 issues a cell mode change command to each SSD 21 belonging to RG # n. To do.
  • the cell mode change command includes capacity information.
  • the cell mode control program 142 issues a cell mode change command in which the minimum capacity of the SSD 21 determined in step 10 is set as capacity information to each SSD 21. Receiving this command, the SSD 21 changes the cell mode of some blocks in the SSD 21 from the MLC mode to the TLC mode using the capacity information included in the command (step 14).
  • Step 2510 Upon receiving the cell mode change command from the DKC 10, the cell mode change program 242 extracts the capacity information included in the cell mode change command. As described above, this capacity information is the minimum capacity of the SSD 21 belonging to RG # n determined in Step 10.
  • Step 2520 The cell mode change program 242 selects one record from the block management table 1150.
  • the record selected here is a record that has not undergone the processing from step 2530 described below and has the largest remaining erasable count 1155.
  • Step 2530 The cell mode change program 242 calculates the logical capacity of the SSD 21 on the assumption that the block managed by the record selected in Step 2520 has been changed to the TLC mode.
  • the calculation method is as follows.
  • the cell mode change program 242 calculates a value obtained by subtracting 1 from the number of records in which the mode 1154 is “0” among the records in the block management table 1150. This value is expressed as “m” below.
  • the cell mode change program 242 calculates a value obtained by adding 1 to the number of records in which the mode 1154 is “1” among the records in the block management table 1150. This value is expressed as “m” below.
  • m and t are the number of blocks in the MLC mode in the SSD 21 and the number of blocks in the TLC mode, assuming that the block managed by the record selected in step 2520 (that is, one block) has been changed to the TLC mode. .
  • the cell mode change program 242 The logical capacity of the SSD 21 after the cell mode change is obtained by calculating the block size in the m ⁇ MLC mode + the block size in the t ⁇ TLC mode.
  • Step 2540 is performed next.
  • the cell mode change program 242 skips the processing from step 2540 to step 2550, and then step 2560. I do.
  • Step 2540 The cell mode change program 242 issues an instruction to change the cell mode of the block 211 managed by the record selected in step 2520 to the FM chip 210, and changes the block 211 to the TLC mode. Thereafter, the cell mode change program 242 changes the mode 1154 of the record in the block management table 1150 (the record selected in step 2520) to “1” and changes the remaining erasable count 1155 (multiply by 0.1). .
  • Step 2550 The cell mode change program 242 determines whether or not there is an unprocessed record in the block management table 1150 (a record in which processing such as Step 2520 and Step 2530 is not performed). When there is an unprocessed record (step 2550: YES), the cell mode change program 242 performs the process of step 2520 again. If there is no unprocessed record (step 2550: NO), then step 2560 is performed.
  • Step 2560 The cell mode change program 242 notifies the DKC 10 that the process is completed, and ends the process. At this time, the cell mode change program 242 notifies the DKC 10 of the changed logical capacity of the SSD 21.
  • step 14 the processing of FIG. 12
  • the cell mode control program 142 sets the logical capacity of the SSD 21 returned from the SSD 21 to the RAID group management table 650. (Logical capacity 654) is stored, and the current date (time) is stored in the previous execution date 660, and the process is terminated.
  • the life of the SSD 21 is predicted from the rate of change of the remaining erasable number of the SSD 21, and when the predicted life is greater than a predetermined value (service life), the mode of some blocks (cells) is changed.
  • the storage capacity of the SSD 21 is increased by changing from the MLC mode to the TLC mode.
  • the storage controller calculates the remaining erasable number of times (target remaining erasable number) of the SSD 21 that satisfies the target life.
  • the SSD 21 determines how many blocks can be operated in the TLC mode, and changes the cell mode for the determined number of blocks. As a result, the storage system can provide the user with a larger storage capacity while maintaining the life (lifetime) of the SSD 21.
  • each cell of the SSD 21 can store 2-bit or 3-bit data, but the present invention is not limited to this.
  • each cell of the SSD 21 can be changed from a mode capable of storing n bits (n is an integer of 2 or more) to a mode capable of storing m bits (where m is an integer satisfying n ⁇ m). It is also applicable in some cases.
  • the storage system has been described as an example in which a plurality of SSDs 21 are operated as a RAID group.
  • a configuration in which the SSD 21 is operated as a RAID group is not essential.
  • the storage system may operate by registering the storage address space provided by a single SSD 21 in the pool, or the storage address space provided by the SSD 21 may be provided directly to the host 2.
  • the SSD 21 when the SSD 21 receives the capacity confirmation command from the storage controller 10 and obtains the remaining erasable number of times (target remaining erasable number), the information about the capacity once calculated is stored in the storage controller 10.
  • capacity information included in the cell mode change command
  • the mode of some cells is changed from the MLC mode to the TLC mode based on the capacity information. That is, the command is exchanged twice between the storage controller 10 and the SSD 21 before the cell mode is changed.
  • the SSD 21 may change the cell mode without returning a response to the storage controller 10 once the target remaining erasable number is given from the storage controller 10. Specifically, for example, in the processing up to step 2070 in FIG. 11, blocks that may be changed to the TLC mode are determined. Therefore, the SSD 21 may change the block determined in step 2080 to the TLC mode.
  • the remaining erasable number is used to estimate the remaining lifetime of the cell after changing to the TLC mode, but the remaining lifetime estimation method is not limited to this method.
  • the lifetime of a cell depends not only on the number of erases but also on the erase interval (elapsed time from the previous erase).
  • a point that considers the erasing interval may be managed and the remaining life may be calculated (estimated) based on the rate of change of the point (for example, instead of the number of remaining erasable times).
  • a certain point is given to all blocks, and when the block is erased, a predetermined amount of value is reduced from the block according to the erase interval, but when the erase interval is short, it is reduced. Increase the amount). Thereby, it is considered that the remaining life can be estimated more accurately.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本発明の一観点に係るストレージシステムは、フラッシュメモリを記憶媒体とする記憶デバイスを複数搭載する。また記憶デバイスに用いられるフラッシュメモリは、各セルをn-bitの情報を格納可能なセルまたはm-bit(n<m)の情報を格納可能なセルのいずれかとして運用可能なフラッシュメモリである。ストレージシステムは定期的に記憶デバイスから残消去可能回数を取得し、取得した残消去可能回数と記憶デバイスの稼働時間を用いて記憶デバイスの寿命を予測する。予測した寿命が所定値(耐用年数)より大きい場合、所定数のセルについて、m-bit情報を格納可能なセルに変更する。

Description

ストレージシステム
 本発明は、不揮発性半導体メモリを用いたストレージシステムに関する。
 不揮発性半導体メモリは、磁気記憶デバイスに比べて省電力・高性能であり、高価格であった。このような不揮発性半導体メモリは、例えばNAND型のフラッシュメモリである。近年は半導体技術の進歩に伴って低価格化が進み、HDDに替わるメインストリームの記憶デバイスとして注目されてきている。
 フラッシュメモリは、データを記憶するための複数のメモリセル(以下、「セル」と略記する)を有する。セルには、1ビットの情報を記憶可能なセル(SLCという)の他に、2ビット以上の情報を記憶可能なセル(MLCという。また3ビット以上の情報を記憶可能なセルをTLCと呼ぶこともある)もある。フラッシュメモリにMLC型セルを用いると、SLC型セルを用いる場合よりも、ビットコストを低減させることができる。さらにMLC型セルの中でも、3ビット以上の情報を記憶可能なセル(TLC)を用いれば、2ビット情報を記憶可能なセルを用いるよりも、ビットコストを低減させることができる。
 また近年、セルに格納可能な情報量(ビット数)を変更可能にする技術も現れてきている。たとえば特許文献1には、ある領域は1つのメモリセルトランジスタに1ビットのデータを書き込むことができるモードで運用し、別の領域は多ビットのデータを書き込むことができるモードで運用するように設定することができるメモリが開示されている。
米国特許出願公開第2008/0250220号明細書
 ただし、セルに多くの情報(ビット数)を格納すればするほど、その寿命(耐用年数)が短くなる傾向がある。そのため、信頼性・耐久性を重視する場合には、格納可能なビット数の少ないセル(SLCやMLC)を用い、コスト(価格)を重視する場合には、格納可能なビット数の多いセル(TLC)を用いる等の、使い分けを行う必要がある。
 特許文献1に開示の、格納可能なビット数の少ないセルと格納可能なビット数の多いセルを混在させて運用する技術を用いると、従来のフラッシュメモリよりもコストと耐久性のバランスが良い記憶デバイスを実現することができる可能性がある。ただし、フラッシュメモリ(セル)の寿命は、その消去頻度によって変動するため、格納可能なビット数の少ないセルと格納可能なビット数の多いセルの混在比率をあらかじめ決定することは困難である。
 消去頻度が少ない場合、そのフラッシュメモリは長期間の使用に耐えることができる。ただし消去頻度は、ストレージシステムの稼働状態(アクセス頻度)に大きく依存する。そのため、格納可能なビット数の多いセルを多く含むように記憶デバイスを設定したが、当初想定よりもアクセス頻度が高くなることもあり得る。その場合、あらかじめ想定された記憶デバイスの寿命(耐用年数)が経過する前に、記憶デバイスが使用できなくなる可能性がある。
 逆に、格納可能なビット数の少ないセルを多く含むように記憶デバイスを設定したが、当初想定よりもアクセス頻度が低い場合もあり得る。その場合は記憶デバイスの寿命は長くなるが、記憶容量が少ないため、ストレージシステムのコスト増につながる。
 そのため、ストレージシステムの稼働状態に合わせて、格納可能なビット数の少ないセルと格納可能なビット数の多いセルの混在比率を適切に変更できる技術が求められる。
 本発明の一観点に係るストレージシステムは、フラッシュメモリを記憶媒体とする記憶デバイスを複数搭載する。また記憶デバイスに用いられるフラッシュメモリは、各セルを、n-bitの情報を格納可能なセルまたはm-bit (n<m)の情報を格納可能なセルのいずれかのセルとして運用可能なフラッシュメモリである。
 ストレージシステムは定期的に記憶デバイスから残消去可能回数を取得し、取得した残消去可能回数と記憶デバイスの稼働時間を用いて記憶デバイスの寿命を予測する。予測した寿命が所定値(耐用年数)より大きい場合、所定数のセルについて、m-bit情報を格納可能なセルに変更する。
 本発明によれば、大記憶容量と高い耐久性を両立可能なストレージシステムを実現できる。
実施例に係るストレージシステムの構成例を示す図である。 SSDの構成例を示す図である。 ブロック管理テーブルの構成を説明する図である。 RAIDグループの説明図である。 仮想ボリュームとRAIDグループ、プールの関係を表す図である。 RAIDグループ管理テーブルの構成を説明する図である。 処理の全体の流れを説明する図である。 セルモード変更要否判定処理のフローチャート(1)である。 セルモード変更要否判定処理のフローチャート(2)である。 寿命予測値の算出方法を説明するための図である。 容量確認コマンドを受領したSSDが行う処理のフローチャートである。 セルモード変更コマンドを受領したSSDが行う処理のフローチャートである。 セルモード変更処理のフローチャートである。 確認用画面の一例である。
 以下の実施例では、記憶デバイスに用いられる不揮発半導体記憶媒体は、フラッシュメモリ(FM)であるとする。そのフラッシュメモリは、ページ単位でリード/ライトが行われる種類のフラッシュメモリ、典型的にはNAND型のフラッシュメモリであるとする。しかし、フラッシュメモリは、NAND型に代えて他種のフラッシュメモリでも良い。また、フラッシュメモリに代えて、他種の不揮発半導体記憶媒体、例えば相変化メモリなどが採用されても良い。
 以下、実施例に係るストレージ装置1の構成と動作の詳細を説明していく。図1は、ストレージシステム1(または「ストレージ装置1」とも呼ぶ)を含む計算機システムの構成例を示す図である。
 ストレージ装置1は、ストレージコントローラ10と、ストレージコントローラ10に接続された複数の記憶デバイス(SSD21、HDD25)を有する。
 SSD21は、ホスト(ホスト計算機)2などの外部装置からのライトデータを格納するための記憶デバイスで、フラッシュメモリ等の不揮発性半導体メモリを記憶媒体として採用した記憶デバイスである。SSD21の内部構成は後述する。SSD21は一例として、SAS(Serial Attached SCSI)規格に従う伝送線(SASリンク)や、PCI (Peripheral Component Interconnect)規格に従う伝送線(PCIリンク)などによって、ストレージコントローラ10と接続される。
 また、図1に示されているように、本実施例のストレージ装置1は記憶デバイスとして、SSD21の他にHDD(Hard Disk Drive)25も使用可能である。HDD25は、磁気ディスクを記録媒体とする記憶デバイスである。HDD25もSSD21と同様、ストレージコントローラ10に接続される。またSSD21と同様、HDD25もSASリンクなどによってストレージコントローラ10に接続される。ただし以下では、本実施例のストレージ装置1には、記憶デバイスとしてSSD21のみが接続されている構成について中心に説明する。
 ストレージコントローラ10は、ホスト2からのデータアクセス要求を受け付け、受け付けたアクセス要求に応じて、SSD21やHDD25に対する処理(リード処理やライト処理)を行うコンポーネントである。以下ではストレージコントローラ10は、DKC10と略記されることもある。ストレージコントローラ10には、1以上のホスト2が接続される。またストレージコントローラ10には、管理ホスト5が接続される。ストレージコントローラ10とホスト2とは、一例としてファイバチャネルを用いて形成されるSAN(Storage Area Network)3を介して接続される。ストレージコントローラ10と管理ホスト5とは、一例としてイーサネットを用いて形成されるLAN(Local Area Network)6を介して接続される
 ストレージコントローラ10は少なくとも、プロセッサ(CPU)11、ホストインタフェース(図中では「ホストI/F」と表記)12、デバイスインタフェース(図中では「デバイスI/F」と表記)13、メモリ14、管理用I/F15を有する。そしてプロセッサ11、ホストI/F12、デバイスI/F13、メモリ14、管理用I/F15は、内部スイッチ(内部SW)16を介して相互接続されている。図1ではこれらの構成要素がそれぞれ1つだけ示されているが、高性能化及び高可用性の確保のため、これらの構成要素のそれぞれがストレージコントローラ10内に複数搭載されていてもよい。また内部SW16ではなく、共通バスを介して各構成要素が相互接続された構成にしてもよい。
 デバイスI/F13は少なくとも、インタフェースコントローラと転送回路(非図示)を有する。インタフェースコントローラは、SSD21の用いているプロトコル(一例ではSAS)をストレージコントローラ10内部で用いられている通信プロトコル(一例としてPCI-Express)に変換するためのコンポーネントである。転送回路は、ストレージコントローラ10が、SSD21に対してデータの転送(リード、ライト)を行う際に用いられる。
 ホストI/F12は、デバイスI/F13と同様に、少なくともインタフェースコントローラと転送回路(非図示)を有する。ホストI/F12が有するインタフェースコントローラは、ホスト2とストレージコントローラ10間のデータ転送経路で用いられている通信プロトコル(たとえばファイバチャネル)と、ストレージコントローラ10内部で用いられている通信プロトコルを変換するためのものである。
 プロセッサ11は、ストレージ装置1の各種制御を行う。メモリ14は、プロセッサ11が実行するプログラムや、プロセッサ11が使用するストレージ装置1の各種管理情報を記憶するために用いられる。メモリ14にはたとえば、構成管理プログラム141、セルモード制御プログラム142、I/Oプログラム143が格納される。これらのプログラムの詳細は後述する。またメモリ14は、SSD21に対するI/O対象データを一時的に記憶するためにも用いられる。以下、SSD21に対するI/O対象データを一時的に記憶するために用いられる、メモリ14中の記憶領域を、「キャッシュ」と呼ぶ。メモリ14はDRAM、SRAM等の揮発性記憶媒体で構成されるが、別の実施形態として、不揮発性メモリを用いてメモリ14を構成してもよい。
 管理ホスト5は、ストレージ装置1の管理操作を行うための計算機である。管理ホスト5は、キーボードやディスプレイ等の入出力デバイス(非図示)を備え、ユーザ(管理者)は入出力デバイスを用いてストレージ装置1に対する設定指示を行うことができる。また管理ホスト5は、ストレージ装置1の状態等の情報をディスプレイ等の出力デバイスに表示することもできる。
 図2は、SSD21の構成例を示す図である。なお、SSD21は、複数のフラッシュメモリと、それらを制御するコントローラとを備える記憶デバイスであればよく、フォームファクタ等が公知のHDD等と同等の物でなくてもよい。
 SSD21は、SSDコントローラ200と複数のFMチップ210を有する。SSDコントローラ200は、プロセッサ(CPU)201、上流I/F(upstream I/F)202、下流I/F(downstream I/F)203、メモリ204を有し、これらは内部接続スイッチ(内部接続SW)205を介して相互接続されている。
 上流I/F202は、SSD21とストレージコントローラ10間の通信を行うためのインタフェースコントローラである。上流I/F202は、伝送線(SASリンクや、PCIリンク)を介してストレージコントローラ10のデバイスIF13に接続される。一方下流I/F203は、SSDコントローラ200とFMチップ210間の通信を行うためのインタフェースコントローラである。
 CPU201は、ストレージコントローラ10から到来する各種コマンドに係る処理等を行う。メモリ204は、CPU201が実行するプログラムや、各種管理情報が記憶される。メモリ204にはたとえば、セルモード変更プログラム242、FM I/Oプログラム243が格納される。これらのプログラムの詳細は後述する。またメモリ204の一部の領域は、ストレージコントローラ10からライトコマンドと共に送信されてくるライトデータや、FMチップ210から読み出されたデータを一次的に格納するためのバッファとしても用いられる。メモリ204には、DRAM等の揮発性メモリが用いられる。ただしメモリ204に不揮発性メモリが使用されても良い。
 FMチップ210は、たとえばNAND型フラッシュメモリ等の不揮発性半導体メモリチップである。FMチップ210は複数のダイ213を有し、各ダイ213には複数のセル214が存在する。セル214はトランジスタ等から構成された記憶素子で、各セル214は、1または複数ビットのデータを保持することができる。SSDコントローラ200からのライトデータは、このセル214に格納される。また本実施例におけるFMチップ210が有するセル214は、SSDコントローラ200からの指示によって、セル214に格納可能な情報量(ビット数)が変更可能である。周知の通り、フラッシュメモリのデータの読み出し・書き込みは、セル214単位に行うことはできない。複数のセル214の集合で、ページと呼ばれる所定サイズ(たとえば8KB等)の領域ごとに行われる。またデータ消去は、ページの集合であるブロック211ごとに行われる。
 本実施例に係るSSD21は各FMチップ210にユニークな識別番号を付して管理しており、この識別番号をチップ番号(チップ#)と呼ぶ。またFMチップ210内の各ダイ213にも、FMチップ210内でユニークな識別番号が付されており、この識別番号をダイ#と呼ぶ。さらにダイ213内の各ブロック211には、ダイ213内でユニークな識別番号が付されており、この識別番号をブロック#と呼ぶ。SSDコントローラ200がFMチップ210のブロック211にアクセスする際には、チップ#、ダイ#、ブロック#を指定することで、SSD21内のブロック211を一意に特定する。
 一方、本実施例に係るSSD21(SSDコントローラ200)がDKC10等のイニシエータに対して提供する記憶アドレス空間(論理アドレス空間またはLBA空間と呼ぶ)は、チップ#、ダイ#、ブロック#とは独立した空間である。そのためDKC10がSSD21に対してアクセス要求(リードコマンドやライトコマンド)を発行する際、FMチップ210やブロック211等を指定する必要はない。LBA空間上の領域には、所定サイズ(たとえば512バイト)毎にアドレスがアサインされており、このアドレスのことをLogical Block Address(LBA)と呼ぶ。DKC10は、論理アドレス空間上の領域(LBAとアクセス対象領域のサイズで特定される領域)が指定されたコマンドを発行することで、SSD21からのデータのリード、あるいはSSD21へのデータライトが可能である。LBA空間上の領域に対するライトコマンドがDKC10から到来した時、SSDコントローラ200はその領域に対してページを割り当てる。ライトデータは割り当てられたページ(内のセル214)に格納される。既にページが割り当て済みのLBA空間上領域に対するライト要求(つまり上書き要求)が到来した時は、SSDコントローラ200は、その領域に対して、新たな未使用ページ(まだデータが格納されていないページ)を割り当て、ライトデータを新たに割り当てられた未使用ページに格納する。
 SSDコントローラ200は、LBA空間上領域と、このLBA空間上領域に割り当てられたページとの関係(マッピング)を管理するための管理情報(マッピングテーブル)を有する。これは公知のフラッシュメモリが持つ情報と同じであるため、本明細書では説明を略す。
 先にも述べたが、セル214に格納可能なビット数は可変である。本実施例では、各セル214は、nビットのデータを格納可能なモード、あるいはmビット(ただしn<mの関係にある)のデータを格納可能なモードのいずれかで運用可能という前提で説明する。また、以下では特に断りのない限り、n=2、m=3の場合について説明する。また、セル214がnビット(2ビット)のデータを格納可能なモードのことを、MLC(Multi-Level Cell)モードと呼び、セル214がmビット(3ビット)のデータを格納可能なモードのことを、TLC(Triple-Level Cell)モードと呼ぶ。また、MLCモードとTLCモードを総称して、「セルモード」または「モード」と呼ぶ。
 本実施例では、各SSD21の初期状態(使用開始直後)では、全セル214がMLCモードに設定されている前提で説明する。使用開始後しばらくして、ストレージコントローラ10がSSD21の稼働状況を考慮して、SSD21に幾つかのセル214のモードを変更(MLCモードからTLCモードに変更)させる。
 また、セルモードの変更は、ブロック211単位で行われる前提とする。つまり1ブロックに含まれるセル214はすべて、同じモードに設定される。そしてSSDコントローラ200がFMチップ210に対して、FMチップ210内のあるブロックについてセルモード変更を指示した場合、そのブロック211内の全セル214がTLCモードに変更される。以下では、ブロック211内の全セル214がMLCモードに設定されている場合、「ブロックがMLCモードである」と表現する。同様にブロック211内の全セル214がTLCモードに設定されている場合、「ブロックがTLCモードである」と表現する。ただし、必ずしもブロック211毎にモードが変更されなければならないわけではない。別の実施形態として、ダイ213毎にモード変更が行われてもよいし、あるいはページ毎、セル214毎にモード変更が行われてもよい。
 本実施例に係るSSD21は、DKC10に提供するLBA空間のサイズを変えることができる。DKC10に提供されるLBA空間のサイズのことを「論理容量」と呼ぶ。本実施例に係るSSD21では、論理容量は、SSD21内の全セル214の合計記憶容量と等しい。たとえばSSD21内のセル214の数がN個で、全セル214がMLCモードに設定されている場合、SSD21の論理容量はN×2(bit)である。その後、SSD21内セル214のうち、10%のセル214がTLCモードに変更された場合、SSD21の論理容量は、(0.1×N)×3+(0.9×N)×2=N×2.1(bit)になり、論理容量が増加する。ただし別の実施形態として、SSD21内のセル214のうち、一部を代替セル(障害のために使用できなくなったセル214の代替)として確保しておき、代替セルを除いたセル214の合計記憶容量を、論理容量と定義してもよい。
 図3を用いて、SSD21の管理するブロック管理テーブル1150の内容を説明する。ブロック管理テーブル1150は、メモリ204に格納されている。ブロック管理テーブル1150の各行(レコード)には、SSD21内の各ブロック211についての情報が格納される。ブロック管理テーブル1150のカラムのうち、チップ#1151、ダイ#1152、ブロック#1153は、ブロック211のチップ#、ダイ#、ブロック#を格納するためのカラムである。チップ#1151、ダイ#1152、ブロック#1153が指定されることで、SSD21内のブロック211が一意に特定される。
 モード1154は、ブロック211がMLCモードかTLCモードかを表す情報を格納するためのカラムである。モード1154に0が格納されている時、ブロック211がMLCモードであることを意味し、モード1154に1が格納されている時、ブロック211がTLCモードであることを意味する。
 残消去可能回数1155には、ブロック211があと何回消去処理を行ってもよいかを表す情報が格納される。SSD21のブロック211の消去回数には限りがあり、ブロック211に対して所定回数(ここではこれを「消去可能回数」と呼ぶ)の消去処理を行うと、そのブロック211は使用できなくなる。消去可能回数はフラッシュメモリのベンダ等によって定められた値で、MLC型のフラッシュメモリの場合、数万回程度と言われている。残消去可能回数は、ブロック211の消去可能回数から、実際にそのブロック211に対して消去処理が行われた回数(消去回数と呼ぶ)を減算することで求められる値である。そのため初期状態(一度も消去処理が行われていない状態)では、残消去可能回数と消去可能回数は等しい。
 たとえばブロック211の消去可能回数が30000回と定められている場合、あるブロック211に対して20000回消去処理を行ったとする。その場合、このブロック211の残消去可能回数は10000(30000-20000=10000)である。
 初期状態では、各ブロック211の残消去可能回数1155には、消去可能回数(たとえば数万)が格納されている。なお、SSD21内の各ブロックの消去可能回数は等しい。SSDコントローラ200がブロック211の消去処理を1回行うと、SSDコントローラ200はそのブロック211の残消去可能回数1155を1減算する。ブロック211の残消去可能回数1155が0になると、そのブロック211への書き込み及び消去は禁止される。
 またTLC型フラッシュメモリの場合、消去可能回数はMLC型のフラッシュメモリよりも小さい。そのため、フラッシュメモリの使用中にブロック211のモードが変更された時、残消去可能回数1155の値も変更される。本実施例では、残消去可能回数1155がn(nは0以上の整数)で、かつMLCモードに設定されていたブロック211がTLCモードに変更された時、そのブロック211の残消去可能回数1155はn/cに変更される前提で、以下の説明を行う。なお、cは2以上の値で、以下の説明では特に断りのない限り、c=10である場合について説明する。つまりブロック211のモードがMLCモードからTLCモードに変更されると、そのブロック211の残消去可能回数1155の値は、モード変更前の値の10分の1になる。
 LBA空間にブロック211(内のページ)を割り当てる時、SSD21はブロック管理テーブル1150の残消去可能回数1155を参照することで、残消去可能回数1155の最も大きいブロック211を選択し、そのブロック211内のページをLBA空間に割り当てる。このようなブロック211の選択方法が採用されているので、SSD21内の特定のブロック211だけが消去回数が多くなる(残消去可能回数が少なくなる)事象が発生しにくい。ただしそれでも各ブロック211の残消去可能回数に不均衡が発生することがあるため、本実施例に係るSSD21は、公知のフラッシュメモリと同様に、各ブロック21の残消去可能回数を極力均等にするための処理(いわゆるウェアレベリング処理)を行ってもよい。ウェアレベリングは公知の処理であるから、ここでの説明は略す。
 次に、本実施例に係るストレージ装置1がホスト2に提供するボリューム(仮想ボリューム)と、RAIDグループと、SSD21がDKC10に提供するLBA空間との関係について、図4、図5を用いて説明する。ストレージ装置1は、RAID(Redundant Arrays of Inexpensive/Independent Disks)技術を用いることで、複数のSSD21から論理的な1つの記憶空間を形成する。RAID技術で1つの論理的記憶空間を形成するために用いられるSSD21のセットを、RAIDグループと呼ぶ。
 RAID技術では、RAIDグループにデータを格納する際に、そのデータを用いて冗長情報(パリティ)を生成し、データとパリティとをRAIDグループ内の異なるSSD21に格納する。そのためRAIDグループ内で1つ(あるいは2つ)のSSD21に障害が発生してデータアクセスできなくなった場合に、ストレージ装置1は残りのSSD21内のデータ(及びパリティ)を用いて、障害が発生したSSD21に格納されていたデータを復旧できる。
 図4は、RAIDグループ30の記憶空間を説明するための概念図である。図4では、RAIDグループ30が4台のSSD21から構成される例が示されている。また図4において、SSD#0(20-0)~SSD#3(20-3)はそれぞれ、SSD21がストレージコントローラ10に提供している論理アドレス空間(LBA空間)を表している。SSD#0(20-0)~SSD#3(20-3)の上端が、論理アドレス空間の先頭アドレス(LBA=0)を表し、下端が論理アドレス空間の終端である。
 また図4では、RAIDグループ30のRAIDレベル(RAID技術におけるデータ冗長化方式を表すもので、一般的にはRAID1~RAID6のRAIDレベルがある)がRAID5である場合の例を表している。図4において、RAIDグループ30内の、「0」、「1」、「P」などのボックスがストライプブロックを表しており、ストライプブロックのサイズはたとえば、64KB、256KB、512KBなどである。また、各ストライプブロックに付されている、「1」等の番号のことを、「ストライプブロック番号」と呼ぶ。
 図4で、ストライプブロックのうち、「P」と記載されているストライプブロックは、冗長データ(パリティ)の格納されるストライプブロックであり、これを「パリティストライプ」と呼ぶ。一方、数字(0、1等)が記載されているストライプブロックは、ホスト2などの外部装置から書き込まれるデータ(冗長データではないデータ)が格納されるストライプブロックである。このストライプブロックのことは、「データストライプ」と呼ばれる。
 パリティストライプに格納される冗長データは、データストライプ内のデータを用いて生成される。以下、パリティストライプと、当該パリティストライプに格納される冗長データを生成するために用いられるデータストライプのセット(たとえば図4中の要素300)のことを、「ストライプライン」と呼ぶ。本実施例に係るストレージ装置1の場合、図4に示されているストライプライン300のように、1つのストライプラインに属する各ストライプブロックは、SSD#0(20-0)~SSD#3(20-3)上の同じ位置(LBA)に存在するという規則で、ストライプラインが構成される。
 さらにストレージコントローラ10は、RAIDグループ内に連続配置される複数のストライプラインを「チャンク」と呼ばれる管理単位で管理する。図4に示されているように、1つのチャンク31は、複数のストライプラインを有する。各チャンクのサイズは同一である。ただし1つのチャンク31が1つのストライプラインのみを有する構成でもよい。
 各チャンクには、RAIDグループ内で一意な識別番号が付され、この識別番号はチャンク番号と呼ばれる。RAIDグループの先頭のストライプライン(SSD#0(20-0)~SSD#3(20-3)の先頭にあるストライプブロックから構成されるストライプライン)を含むチャンクのチャンク番号を1とし、それ以降に位置する各チャンクには、連続した整数値が付される。
 各チャンクは上で述べたとおり、RAIDグループ内に規則的に配置されているため、チャンク番号から、そのチャンクに属するSSD21のLBA空間上のアドレス(の範囲)は、比較的単純な計算で求められる。逆にSSD21のLBA空間上アドレスから、そのアドレスが属するチャンクのチャンク番号も計算で求められる。
 図5は、仮想ボリュームとRAIDグループ、プールの関係を表す図である。ストレージコントローラ10は、ホスト2にはRAIDグループの記憶領域とは異なる、1以上の仮想的な記憶空間を提供する。この仮想的な記憶空間を「仮想ボリューム」と呼ぶ。仮想ボリュームの記憶空間も、所定サイズの領域ごとに分割管理される。この所定サイズの領域は「仮想チャンク」と呼ばれる。仮想チャンクとは、仮想ボリュームの記憶領域の割り当て単位である。
 1つの仮想チャンクには1つのチャンクがマップされ、ホスト2から仮想チャンクに対するデータライトがあった時、マップされたチャンクにデータが格納される。ただし、仮想チャンクにチャンクがマップされる時、チャンク内のデータストライプのみがマップされる。そのため、仮想チャンクのサイズは、チャンクに含まれる全データストライプの合計サイズに等しい。ストレージコントローラ10は、仮想チャンクとチャンクのマッピングを記録する管理テーブルを有し、この管理テーブルを用いて、仮想チャンクに割り当てられる記憶領域(チャンク)を管理している
 仮想ボリュームが定義された直後は、仮想ボリュームの各仮想チャンクには、チャンクがマップされていない。ストレージコントローラ10は、ホスト2から仮想チャンク上の領域に対するライト要求を受信した時にはじめて、当該領域に対してライトされたデータの書き込まれるべき、SSD21の論理アドレス空間上の記憶領域(チャンク)を決定する。ここで決定されるチャンクは、まだどの仮想チャンクにも割り当てられていないチャンク(未使用チャンク)のなかから1つのチャンクが決定される。
 本実施例では、仮想チャンクに割り当て(マップ)可能な記憶領域(チャンク)を有するRAIDグループの集合を、プールと呼ぶ。仮想ボリュームの仮想チャンクにチャンクを割り当てる時、ストレージ装置1はプールで管理されているRAIDグループの中から未使用チャンクを1つ選択し、選択されたチャンクを仮想チャンクに割り当てる。
 先にも述べたが、SSD21内のセルのセルモードがMLCモードからTLCモードに変更されると、論理容量が増加する。図5は、SSD#0の論理容量が拡大する場合の例を表している。このように、SSD21の論理容量が増加すると、そのSSD21を含むRAIDグループから形成可能なチャンク31の数も増加する。ただし、チャンク31は1以上のストライプ列から成る記憶領域であるので、RAIDグループ内の1つのSSD21の論理容量だけが増加しても、チャンク31の数は増加しない。RAIDグループ内の各SSD21のうち、論理容量の最も小さかったSSD21の論理容量が増加した場合、チャンク31が増加し得る。
 続いて、ストレージコントローラ10で使用される管理情報について説明を行う。ストレージコントローラ10は多くの管理情報を有するが、以下では、本実施例で主たる説明の対象となる、セルモードの変更処理に関連する管理情報を中心に説明する。
 図6は、RAIDグループ管理テーブルの構成を説明する図である。
 RAIDグループ管理テーブル650は、ストレージ装置1が管理するRAIDグループと、RAIDグループに属するSSD21の属性情報を管理するためのテーブルで、メモリ14に格納されている。RAIDグループ管理テーブル650の各行(レコード)には、管理対象のRAIDグループの属性情報、または管理対象のRAIDグループに属するSSD21の属性情報が格納される。RAIDグループ管理テーブル650は、RG#651、RAIDレベル652、ドライブ番号653、論理容量654、残消去可能回数655、開始日656、差分比率657、寿命予測値658、T.Cell659、前回実施日660、チャンク数661のカラムを有する。
 RG#651にはRAIDグループの識別番号(RAIDグループ番号)が格納され、RAIDレベル652は、RAIDグループのRAIDレベルを示している。ドライブ番号653には、RAIDグループに属するSSD21の識別子が格納される。
 論理容量654には、ドライブ番号653で特定される記憶デバイス(SSD21)の論理容量が格納される。本実施例では、それぞれのRAIDグループに属する各SSD21の論理容量の初期値(ストレージ装置1にインストールされた時点の論理容量)は等しいものとするが、別の実施形態として、異なる論理容量のSSD21を用いてRAIDグループが形成されてもよい。先に述べたとおり、時間経過とともに論理容量654の値は変化し得る。
 残消去可能回数655には、ドライブ番号653で特定される記憶デバイス(SSD21)の残消去可能回数が格納される。先に述べたとおり、SSD21も内部で残消去可能回数を管理しているが、SSD21はSSD21内のブロックの残消去可能回数をブロックごとに管理している。一方、残消去可能回数655に格納される値は、各ブロックの残消去可能回数の総和である。以下では「SSDの残消去可能回数」とは、SSD21内の全ブロックの残消去可能回数の合計値を意味する語として用いられる。本実施例に係るSSD21は、DKC10等のイニシエータから残消去可能回数の取得要求を受領すると、SSD21の残消去可能回数をイニシエータに返却する機能を持つ。DKC10はSSD21に残消去可能回数の取得要求を発行することで、SSD21から残消去可能回数の情報を得て、残消去可能回数655に格納する。
 開始日656には、SSD21の稼働が開始された日(稼働開始日と呼ぶ)が格納される。具体的には、SSD21がストレージ装置1にインストールされ、管理者によってそのSSD21を含むRAIDグループが定義された時、DKC10はその時の日付を開始日656に格納する。
 差分比率657は、本実施例においてDKC10が各SSD21の稼働状況の変化を予測するために用いる指標値である。差分比率の算出方法については後述する。DKC10は所定時間(たとえば1ヶ月等)ごとに、各SSD21の差分比率を算出する。RAIDグループ管理テーブル650には過去に算出された差分比率657も記録される。DKC10が差分比率を算出すると、算出された値はD0(657-0)に格納される。そしてD0(657-0)に値を格納した時点から1単位時間前(たとえば1ヶ月前)に算出された差分比率は、D1(657-1)に格納される。同様に、D0(657-0)に値を格納した時点から2単位時間前(たとえば2ヶ月前)に算出された差分比率は、D2(657-2)に格納され、D0(657-0)に値を格納した時点から3単位時間前(たとえば3ヶ月前)に算出された差分比率は、D3(657-3)に格納される。
 T.Cell659は、セルモード変更の可否に関する情報である。レコードのT.Cell659に“0”が格納されている場合、DKC10はそのレコードに対応するRAIDグループ内のSSD21については、セルモード変更処理を行わない。一方Cell659に“1”が格納されている場合、DKC10はそのレコードに対応するRAIDグループ内のSSD21のセルモード変更処理を行う。T.Cell659には、ストレージ装置1のユーザ(管理者)がRAIDグループの定義時に、値を格納する。
 前回実施日660には、過去に管理対象のRAIDグループに属するSSD21に対してセルモード変更処理が行われた日のうち、最も新しい日が格納される。初期状態(RAIDグループが定義された直後)では、前回実施日660にNULL(無効値、たとえば0等の、日付として用いられない値)が格納される。
 寿命予測値658には、DKC10がSSD21の残消去可能回数の変化率に基づいて算出した、SSD21の寿命の予測値が格納される。本実施例に係るストレージシステム1における寿命の定義であるが、SSD21の残消去可能回数が0になった場合、そのSSD21が寿命を迎えた、と定義している。そのため、SSD21の残消去可能回数が0になると予測される日(時刻)が、寿命予測値である。DKC10はSSD21の残消去可能回数の変化率に基づいて、SSD21の残消去可能回数が0になる時期を予測する。寿命予測値の算出方法の詳細は後述する。なお、SSD21の残消去可能回数が0になる日(時刻)を寿命と定義するかわりに、SSD21の残消去可能回数があらかじめ定められた閾値(ただしこの閾値は0以上の値である)を下回った日(時刻)を寿命としてもよい。
 また、RAIDグループ管理テーブル650には、上で説明した情報以外の情報が含まれていてもよい。たとえばRAIDグループ管理テーブル650に、各RAIDグループ内に定義可能なチャンクの数等が格納されてもよい。
 DKC10はRAIDグループ管理テーブル650以外の管理情報も有する。たとえばストレージ装置1内に定義された各仮想ボリューム内の仮想チャンクと、チャンクとのマッピング関係を管理するためのテーブル、プール内のチャンクの使用状況を管理するテーブルなどである。ただしこれらは、仮想ボリュームをホストに提供する機能を持つ、公知のストレージ装置が通常有している情報と同じであるため、ここでは説明を略す。
 これ以降では、各処理のフローについて説明する。まず、ストレージコントローラ10で実行されるプログラムについて説明する。ストレージ装置1のメモリ14にはたとえば、構成管理プログラム141、セルモード制御プログラム142、I/Oプログラム143が格納される。ストレージコントローラ10のCPU11が、これらのプログラムを実行することで、以下で説明する各種の処理が実行される。ただし説明が冗長になることを避けるために、以下では各処理について説明する際に、プログラムを主語として各処理の説明を行うことがある。
 構成管理プログラム141は、ストレージ装置1が定義する仮想ボリュームやRAIDグループの管理を行うためのプログラムである。ユーザが管理ホスト5を用いてRAIDグループの定義指示をストレージ装置1に発行した時、ストレージ装置1(のCPU11)では構成管理プログラム141が実行される。構成管理プログラム141はユーザからの指示に基づいて、RAIDグループ管理テーブル650に情報(たとえばRAIDグループに属するSSD21の識別子等)を格納する。
 またRAIDグループを定義する際、ユーザはそのRAIDグループに属するSSD21がセルモード変更を行うことを許可するか否か、についても指定を行う。ユーザが、RAIDグループに属するSSD21がセルモード変更を行うことを許可した場合、構成管理プログラム141はRAIDグループ管理テーブル650内のレコードのうち、定義対象のRAIDグループについてのレコードのT.Cell659に“1”を格納し、そうでない場合にはT.Cell659に“0”を格納する。
 I/Oプログラム143は、ホスト2からのI/O要求(リードコマンドやライトコマンド)を処理するためのプログラムである。I/Oプログラム143が実行する具体的な処理の内容は、本実施例とは直接関係しないため、説明を略す。
 セルモード制御プログラム142は、SSD21の稼働状況に基づいて、セルモード変更の要否を判定し、必要に応じてSSD21にセルモード変更処理を行わせるプログラムである。
 図7を用いて、ストレージ装置1で実施されるセルモード変更処理の全体の処理の流れを説明する。なお、図7以降の各図において、参照番号の前に付されているアルファベットの“S”は、「ステップ」を意味する。
 ステップ1、ステップ2は、RAIDグループが定義される時に行われる処理の一部であり、構成管理プログラム141がこれらのステップを実行する。なおここでは、RAIDグループを定義する処理の説明は略す。ステップ1でユーザは管理ホスト5を用いて、RAIDグループに属するSSD21がセルモード変更を行うことを許可する旨の指示をストレージ装置1に発行する。そして構成管理プログラム141はこの指示を受領する。
 続いてステップ2で構成管理プログラム141は、定義対象のRAIDグループについてのレコードのT.Cell659に“1”を格納する。この処理が終わると、構成管理プログラム141はRAIDグループの定義が完了したこと、またユーザがセルモード変更を許可した場合には、セルモード変更の設定が行われたことを、ユーザに通知する。
 RAIDグループは、I/Oプログラム143によってアクセス(リードまたはライト)が行われる。たとえばステップ1、ステップ2で定義されたRAIDグループがプールに登録されると、ホスト2が仮想ボリュームに対してライトコマンドを発行することに応じて、I/Oプログラム143は定義されたRAIDグループ内のチャンクを、仮想ボリュームの仮想チャンクにマップし、マップされたチャンクに対するI/O処理を実行する。ただしI/Oプログラム143の処理の具体的内容は本実施例と直接関係しないため、説明を略す。
 またRAIDグループが定義された後、そのRAIDグループに対してセルモード制御プログラム142が定期的に(たとえば1ヶ月に1回)処理を行う(ステップ3~ステップ6)。ここではストレージコントローラ10とSSD21間で行われるやり取り、またユーザとストレージコントローラ10の間で行われるやり取りを中心に説明する。
 セルモード制御プログラム142はRAIDグループ毎に実行される。ただし、RAIDグループ管理テーブル650のT.Cell659に“1”が設定されたRAIDグループに対してのみ、ステップ3~ステップ6の処理が行われる。以下では一例として、RG#n(nは非負の整数値である)を対象としてセルモード制御プログラム142が実行される例を説明する。セルモード制御プログラム142が開始されると、まずセルモード制御プログラム142はRG#nに属する各SSD21に対し、残消去可能回数の取得要求を発行する(ステップ3)。残消去可能回数の取得要求を受領したSSD21は、SSD21の残消去可能回数をストレージコントローラ10に返却する(ステップ4)。
 その後、セルモード制御プログラム142は、ステップ4で受領したSSD21の残消去可能回数等を用いて、セルモード変更要否の判定を行う(ステップ5)。またステップ5で、セルモード変更要と判定された場合、セルモード制御プログラム142はRG#nに属するSSD21が所定の年数稼働可能な残消去可能回数を算出し、セルモード変更処理(ステップ6)を実施する。なお、本実施例では、期待されているSSD21の耐用年数が、最低5年の例を説明する。ステップ5、6の詳細は後述する。なお、本実施例において、ステップ6のセルモード変更処理は、“T.Cell”と呼ばれることもある。また、ステップ5でセルモード変更不要と判定された場合には、セルモード制御プログラム142はステップ6を行わず、処理を終了する。
 続いて、図7のステップ3~ステップ5の処理の詳細を、図8、図9を用いて説明する。なお、図8、図9に記載の処理は、図7のステップ3~ステップ5に相当する処理である。またステップ6の詳細は図13に記載されている。
 ステップ1010:セルモード制御プログラム142は、RG#nに属する各SSD21の稼働時間を算出する。本実施例において、SSD21の稼働時間とは、SSD21が稼働を開始してからの経過時間を意味し、現在の日付(時刻)からSSD21の稼働開始日(RAIDグループ管理テーブル650の開始日656に格納されている値)を減算することで得られる値である。
 またステップ1010でセルモード制御プログラム142は、RG#nに属する各SSD21の残消去可能回数を取得するために、残消去可能回数の取得要求を各SSD21に発行する。残消去可能回数の取得要求を受領したSSD21はブロック管理テーブル1150を参照し、SSD21が有する全ブロックの残消去可能回数1155の合計を算出する。そしてSSD21は、算出された合計値(つまりSSD21の残消去可能回数)をストレージコントローラ10(セルモード制御プログラム142)に返却する。
 ステップ1020:セルモード制御プログラム142は、RG#nに属する各SSD21の寿命予測値及び差分比率を算出する。以下では寿命予測値及び差分比率の定義及び算出方法について説明する。
 図10を用いて寿命予測値の算出方法の概念について説明する。図10の点(a1)、(a2)は、あるSSD21の残消去可能回数をプロットしたものである。図10に記載の座標系で、横軸は時刻(日時)を表し、縦軸は残消去可能回数を表す。点(a2)は現在時刻(T2)におけるSSD21の残消去可能回数(N2)を表し、点(a1)は前回セルモード制御プログラム142を実行した時(T1)のSSD21の残消去可能回数(N1)を表す。なお、以下のステップ1020の説明において、現在時刻(日時)とは、今回セルモード制御プログラム142を実行している時点(瞬間)の時刻(日時)を意味する。
 この場合、時刻T1からT2の間の、SSD21の残消去可能回数の(平均)変化率は、図10の直線(A)の傾き(以下、この傾きをGと表記することもある)に等しく、Gは以下の式(1)で表すことができる。
Figure JPOXMLDOC01-appb-M000001
 寿命予測値の算出にあたっては、SSD21の残消去可能回数が、式(1)で求めた変化率で減少していくという仮定のもとで、算出が行われる。先に述べたとおり、寿命予測値とはSSD21の残消去可能回数が0になる時刻のことである。そのため、図10の直線(A)の延長線上と横軸との交点(図10中の点(a3))が、寿命予測値を表すことになる。寿命予測値をT3とすると、T3は、以下の式(2)で表される。
Figure JPOXMLDOC01-appb-M000002
セルモード制御プログラム142は、式(2)を用いてT3を算出する事で、SSD21の寿命予測値を得る。
 続いて差分比率について説明する。上で説明したSSD21の寿命予測値は、SSD21の残消去可能回数の変化率が一定という仮定の元で算出された値であるが、残消去可能回数の変化率は変動することもあり得る。そのため、残消去可能回数の変化率をもとに導出される寿命予測値も変動し得る。差分比率は寿命予測値の変動傾向を表す指標値である。
 セルモード制御プログラム142は、以下に示す式(3)を用いて、差分比率を算出する。なお、以下の式(3)では、SSD21の稼働開始日(開始日656)をL0、最新の寿命予測値(今回セルモード制御プログラム142を実行した時に算出された寿命予測値)をL1、前回セルモード制御プログラム142を実行した時に算出された寿命予測値をL2、そして差分比率をDと表記する。
Figure JPOXMLDOC01-appb-M000003
 差分比率Dが正の値をとる場合、寿命予測値(L1)が増加傾向にある(過去の寿命予測値(L2)より増加している)ことを意味する。この場合、たとえばSSD21へのライト頻度が減少傾向にあることが考えられる。逆に差分比率Dが負の値をとる場合、寿命予測値(L1)が減少傾向にある(過去の寿命予測値(L2)より小さくなっている)ことを意味し、この場合はたとえばSSD21へのライト頻度が増加傾向にあることが考えられる。
 また、差分比率が0の場合、または0に極めて近い値をとる場合、L1とL2に殆ど差がない(寿命予測値の変動がない)ことを意味し、この場合にはSSD21へのライト頻度に変化がない(一定のライト頻度である)と推定することができる。
 ステップ1020では、セルモード制御プログラム142は上で述べた式(2)~式(3)を用いて、RG#nに属する各SSD21の寿命予測値と差分比率を算出する。またセルモード制御プログラム142は、差分比率の算出後にRG#nに属する各SSD21の残消去可能回数と寿命予測値をRAIDグループ管理テーブル650の残消去可能回数655、寿命予測値658に格納する。そのため、ステップ1020の実行開始時点では、残消去可能回数655、寿命予測値658には、前回セルモード制御プログラム142が実行された時点のSSD21の残消去可能回数、寿命予測値が格納されている。
 たとえばRG#nに属するあるSSD21(以下ではこれを“SSD#k”と表記する)について寿命予測値、差分比率を計算する場合、以下の手順で計算すればよい。セルモード制御プログラム142は、式(2)のN2に、ステップ1010で得られたSSD#kの残消去可能回数を代入し、またN1にはRAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードの残消去可能回数655を代入する。さらにセルモード制御プログラム142は、T2に現在時刻(日時)を代入し、そしてT1には前回セルモード制御プログラム142が実行された時刻(日時)を代入する。セルモード制御プログラム142は定期的(たとえば1ヶ月に1回)が実行される。そのため、たとえば1ヶ月に1回セルモード制御プログラム142が実行される場合、セルモード制御プログラム142はT1に、現在時刻(日時)から1か月前の日時を代入すればよい。セルモード制御プログラム142は、この計算をRG#nに属する各SSD21について実施することで、各SSD21の寿命予測値を算出する。
 続いてセルモード制御プログラム142は、式(2)を用いて得られた寿命予測値を式(3)のL1に代入し、前回セルモード制御プログラム142を実行した時に算出された寿命予測値(RAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードの寿命予測値658に格納されている)を式(3)のL2に代入し、そして稼働開始日(RAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードの開始日656に格納されている)を式(3)のL0に代入することで、SSD#kの差分比率Dを算出する。
 差分比率Dの算出後、セルモード制御プログラム142は、RAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードのD0(657-0)、D1(657-1)、D2(657-2)に格納されていた値をそれぞれ、D1(657-1)、D2(657-2)、D3(657-3)に移動する。その後セルモード制御プログラム142は、先に式(3)を用いて算出した差分比率Dの値を、D0(657-0)に格納する。これにより、D0(657-0)、D1(657-1)、D2(657-2)、D3(657-3)にはそれぞれ、最新の差分比率D、1ヶ月前に算出した差分比率、2ヶ月前に算出した差分比率、3ヶ月前に算出した差分比率が格納されることになる。
 ステップ1030:セルモード制御プログラム142は、前回セルモード制御プログラム142がRG#nに属するSSD21にセルモード変更処理を行ってから所定の期間が経過したか判定する。ここでの「所定の期間」とは、RG#nを対象としてセルモード制御プログラム142が実行される周期よりも長い期間である。本実施例ではこの「所定の期間」が6ヶ月である例を説明するが、「所定の期間」は必ずしも6ヶ月である必要はない。「所定の期間」は、セルモード制御プログラム142が実行される周期よりも長い期間であればよい。ステップ1030では具体的には、セルモード制御プログラム142はRAIDグループ管理テーブル650のレコードのうち、RG#nについての情報を格納するレコード(RG#651が“n”のレコード)の前回実施日660が、現在時刻よりも6ヶ月以上前であるかを判定する。
 ただし、これまでにRG#nに属するSSD21に対して一度もセルモード変更処理が行われていない場合(たとえばRG#nがストレージシステム1に導入されて間もない場合が該当する)、前回実施日660にはNULLが格納されている。その場合には、セルモード制御プログラム142はRG#nに属する全SSD21の稼働開始日(開始日656)から所定の期間(たとえば6ヶ月)経過したかを判定する。
 前回のセルモード変更処理実行時点から6ヶ月以上経過していない場合(ステップ1030:NO)、セルモード制御プログラム142はRG#nに属する全SSD21のセルモードの変更を行わないと決定し、処理を終了する(ステップ1150)。またステップ1150では、セルモード制御プログラム142は、ステップ1010で取得した各SSD21の残消去可能回数をRAIDグループ管理テーブル650の残消去可能回数655に格納し、ステップ1020で算出された寿命予測値をRAIDグループ管理テーブル650の寿命予測値658に格納した後、処理を終了する。
 一方ステップ1030の判定が肯定的な場合は、ステップ1060以降の処理が行われる。なお、ステップ1060以降の処理は、RG#nに属するSSD21毎に行われる。以下、RG#nに属するある1つのSSD21(仮にこれを“SSD#k”と呼ぶ)についてステップ1060~ステップ1270が行われるケースについて説明する。
 ステップ1060:セルモード制御プログラム142は、SSD#kのD0(657-0)を参照する(D0(657-0)は、ステップ1020で算出された差分比率Dである)。そしてセルモード制御プログラム142は、SSD#kのD0(657-0)が、以下の(a)~(c)のいずれに該当するか判定する。
 (a)0に極めて近い値
 (b)負の値
 (c)正の値
 ここで、D0(657-0)がーα~αの範囲にある場合、セルモード制御プログラム142はD0(657-0)が“0に極めて近い値”((a)に該当する)と判定する。なお、αは0<α<1の関係にある値で、0に近い値(たとえば0.05等)である。以下では特に断りのない限り、α=0.05の場合の例を説明する。
 またD0(657-0)がーαより小さい値だった場合、セルモード制御プログラム142はD0(657-0)が負の値である((b)に該当する)と判定する。そしてD0(657-0)がαより大きい値だった場合、セルモード制御プログラム142はD0(657-0)が正の値である((c)に該当する)と判定する。
 SSD#kのD0(657-0)が、(b)に該当する場合(ステップ1060:D0=マイナス値)、セルモード制御プログラム142は、RG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。この場合は、先に述べたとおりSSD21へのライト頻度が増加傾向にあると推定される。SSD#kに対する今後のライト頻度が増加する場合、実際の寿命がステップ1020で求められた寿命予測値よりも短くなる可能性がある。そのためセルモード制御プログラム142は、この場合にはセルモード変更処理を実行しないと決定する。
 SSD#kのD0(657-0)が(c)に該当する場合(ステップ1060:D0=プラス値)、セルモード制御プログラム142は次にステップ1070を実行する。またSSD#kのD0(657-0)が(a)に該当する場合(ステップ1060:D0=ほぼゼロ値)、セルモード制御プログラム142は次にステップ1210(図9)を実行する。
 ステップ1070:セルモード制御プログラム142はSSD#kの稼働時間(ステップ1010で算出された値である)が1年未満か判定する。SSD#kの稼働時間が1年以上の場合(ステップ1070:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。SSD#kの稼働時間が1年未満の場合(ステップ1070:YES)、セルモード制御プログラム142は次にステップ1080を実行する。SSD#kのD0(657-0)が(c)に該当する場合、先に述べたとおりSSD#kへのライト頻度が減少傾向にあると推定される。そのためSSD#kの実際の寿命がステップ1020で求められた寿命予測値よりも長くなる可能性があるため、セルモード変更処理が行われてもよいかもしれない。ただし一般に、ボリュームあるいは記憶デバイスへのアクセス傾向(ホスト等によるリードまたはライトの頻度)は、運用が開始されてからしばらくの間(たとえば半年)は変動が大きく、それ以上経つと徐々にアクセス傾向が安定する。そのためセルモード制御プログラム142は、SSD#kの稼働時間も考慮して、セルモード変更処理の実行可否を決定する。SSD#kの稼働時間が1年未満で、かつライト頻度が単調減少傾向にある場合、セルモード制御プログラム142は、SSD#kのアクセス傾向が安定し始める時期に入っていると判断し、セルモード変更処理を行って良いと判断する。ただしSSD#kの稼働時間が短いため、寿命予測値が充分長い(たとえば想定される耐用年数の倍以上)場合に限って、セルモード変更処理が行われる。一方、ライト頻度が減少傾向にあるがSSD#kの稼働時間が1年以上の場合、SSD#kへのアクセス傾向が一般的な傾向とは異なる物と推定される。たとえばSSD#kに格納されているデータの種類が、ホストからの更新によって変わった場合などである。その場合にセルモード変更処理が行うことはリスク(耐用年数を待たずにSSD#kが寿命を迎えるリスク)がある。そのためセルモード制御プログラム142は、この場合にはセルモード変更処理を実行しないと決定する。
 ステップ1080:セルモード制御プログラム142はSSD#kの寿命予測値が、稼働開始日から11年後以上で、かつSSD#kの差分比率の履歴(D0(657-0)~D3(657-3))が、D0≦D1≦D2≦D3の関係にあるか判定する。ステップ1080の判定が否定的だった場合(ステップ1080:NO)、つまりSSD#kの寿命予測値が稼働開始日から11年未満である、あるいは差分比率の履歴がD0≦D1≦D2≦D3の関係にない場合、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。ステップ1080の判定が肯定的だった場合(ステップ1080:YES)、セルモード制御プログラム142は次にステップ1090を実行する。
 ステップ1090:ステップ1080の判定が肯定的だった場合は、SSD#kの寿命予測値(稼働開始日から11年以上)が、想定されているSSD21の耐用年数(たとえば5年)よりも長い場合である。またSSD#kへのDKC10からのライト頻度が単調減少傾向にあるといえる。この場合、セルモード制御プログラム142は、RG#nに属するSSD21の寿命(寿命予測値)が減少しても、SSD21の論理容量を増やすほうが良いと判断する。そこでセルモード制御プログラム142は、SSD#kの寿命予測値を削減した場合の残消去可能回数(SSD#kの論理容量を増やした場合の残消去可能回数と言い換えることもできる)を見積もる。以下では、論理容量を増やした場合のSSD21の寿命予測値のことを「目標寿命値」と呼び、またその時の残消去可能回数のことは「目標残消去可能回数」と呼ぶ。なお、ステップ1090では、セルモード制御プログラム142はSSD#kの目標寿命値を稼働開始後から10年後として、残消去可能回数を求める。ここでSSD#kの目標寿命値を稼働開始後から10年後、つまり期待されている耐用年数の倍という長い値に設定される理由は、SSD#kの稼働時間が短く(稼働開始後1年未満)、今後SSD#kに対するライト頻度(更新頻度)が変動する可能性もあるからである。セルモード制御プログラム142は目標寿命値を大きめにすることで、SSD#kのセルモードの変更が過剰に行われないようにしている。
 ステップ1090(あるいは後述するステップ1230、ステップ1250、ステップ1270)で行われる目標残消去可能回数の算出方法を説明する。ここでは、ステップ1020で用いた情報を再び用いる。以下では、現在の時刻(今回セルモード制御プログラム142を実行している時点)をT2、また前回セルモード制御プログラム142を実行した時刻をT1とする。また、ステップ1020において使用した、時刻T2(現在の時刻)におけるSSD#kの残消去可能回数をN2、そして時刻T1におけるSSD#kの残消去可能回数をN1とする。
 ここで、目標寿命値をT3’、目標残消去可能回数をN2’とする。この時、目標残消去可能回数(N2’)は以下の式(4)を用いることで求められる。
Figure JPOXMLDOC01-appb-M000004
 目標残消去可能回数の算出方法について、再び図10を用いて説明する。セルモード制御プログラム142が目標残消去可能回数を算出する際、ステップ1020で寿命予測値を算出した時と同様に、SSD21の残消去可能回数は、式(1)で表される変化率で推移するという仮定に基づいて算出する。ステップ1020では、残消去可能回数が0になる時の時刻を算出し、これを寿命予測値とする処理が行われた。ステップ1090では逆に、寿命予測値(つまり残消去可能回数が0になる時の時刻)が所定の値(たとえばステップ1090では、稼働開始日から10年後の時刻)であると仮定し、その寿命予測値を満たすために必要な、現在の残消去可能回数の最小値を求める。直線(A)は、ステップ1020で行われる寿命予測値の算出で用いた直線である。
 ここでの残消去可能回数の算出においても、ステップ1020における寿命予測値)との算出と同様、SSD21の残消去可能回数が、式(1)で求めた変化率で減少していくという仮定のもとで、算出が行われる。ステップ1080の判定が肯定的だった場合、図10のT3が11年以上と判定された場合である。またこの場合、SSD21の寿命(寿命予測値)が過剰に長いため、寿命がもう少し短くてもよいから論理容量を増加させたいケースである。
 図10の直線(B)は、直線(A)と平行な直線(つまり傾きが式(1)で表される値に等しい直線)で、かつ座標(T3’,0)を通る直線である(ただしT3’<T3の関係にある)。また直線(B)上の点(b1)の座標値は、横軸(時刻)の値がT2、縦軸(残消去可能回数)の値がN2’である。SSD21の残消去可能回数が、式(1)で求めた変化率で減少していくと仮定すると、時刻T2(現在時刻)における残消去可能回数(N2’)が、直線(B)上(図10における点(b1))に存在していれば、寿命予測値(目標寿命値)はT3’になる(時刻T3’の時に残消去可能回数が0になる)。式(4)は、直線(B)の時刻T2における残消去可能回数(つまりN2’)を求めるための式である。
 ステップ1090ではセルモード制御プログラム142は、式(4)のN1,N2,T1,T2にはステップ1020で代入した値と同じ値を代入し、またT3’(目標寿命値)には、SSD#kの稼働開始日から10年後の日付を代入することでN2’を求める。
 ステップ1095:セルモード制御プログラム142はRG#nに属する全てのSSD21について処理(ステップ1060~ステップ1090、あるいはステップ1210~ステップ1270の処理)を行っていない場合には、未処理のSSD21に対してステップ1060の処理を実行する。RG#nに属する全てのSSD21について処理が完了している場合には、セルモード制御プログラム142は次にステップ1100を行う。
 ステップ1100:セルモード制御プログラム142は、ステップ1090等で求められた目標残消去可能回数を用いて、SSD#kのセルモード変更処理を行うことを決定する。またここでセルモード制御プログラム142は、ステップ1010で取得した各SSD21の残消去可能回数をRAIDグループ管理テーブル650の残消去可能回数655に格納し、ステップ1020で算出された寿命予測値をRAIDグループ管理テーブル650の寿命予測値658に格納する。その後セルモード制御プログラム142は、ステップ6(セルモード変更処理)を実行する。ステップ6の詳細は後述する。
 続いてステップ1060の判定において、SSD#kのD0(657-0)が0に極めて近い値だった場合(ステップ1060:D0=ほぼゼロ値)の処理(図9に記載のステップ1210以降の処理)について説明する。この場合、SSD#kへのライト頻度に変化がない(一定のライト頻度である)と推定されるので、セルモード制御プログラム142は原則として、セルモード変更処理を行ってよいと判断する。詳細は後述する。
 ステップ1210:セルモード制御プログラム142は、SSD#kの稼働時間が1年未満か、1年以上3年未満か、3年以上か判定する。
 ステップ1210で稼働時間が1年未満と判定された場合、ステップ1240が実行される。ステップ1240でセルモード制御プログラム142は、SSD#kの寿命予測値が稼働開始日から7年以上で、かつ過去に算出した差分比率(D1,D2,D3)がいずれも0に極めて近い値(-α~αの範囲の値)であるか判定する。ステップ1240の判定が否定的だった場合(ステップ1240:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。ステップ1240でセルモード制御プログラム142が、D1,D2,D3がいずれも-α~αの範囲の値であるか判定する理由は、SSD21へのライト頻度に変化がないこと、つまりSSD21へのアクセス傾向が安定した状態にあるかを確認するためである。SSD21へのアクセス傾向が安定していない状態の場合、今後ライト頻度(消去頻度)が増加する等のリスクがあるため、セルモード制御プログラム142はセルモード変更処理を実行しない。
 ステップ1240の判定が肯定的だった場合(ステップ1240:YES)、セルモード制御プログラム142はSSD#kについて、残消去可能回数決定処理を行う(ステップ1250)。ステップ1250の処理は、ステップ1090と同様である。ただしここでは、SSD#kの目標寿命値を、稼働開始日から7年とした場合の目標残消去可能回数を決定する。つまり式(4)のT3’に稼働開始日から7年後の日付を代入して寿命予測値を算出する点が、ステップ1090と異なる。
 その後セルモード制御プログラム142は、RG#nに属する全てのSSD21について、ステップ1210~ステップ1270の処理が完了していない場合には(ステップ1275:NO)、未処理のSSD21についてステップ1060から処理を繰り返す。ステップ1275の判定が肯定的な場合は、続いてステップ1100が実行される。
 ステップ1210で稼働時間が1年以上3年未満と判定された場合、ステップ1260が実行される。ステップ1260でセルモード制御プログラム142は、SSD#kの寿命予測値が稼働開始日から6年以上で、かつD1,D2,D3がいずれも0に極めて近い値(-α~αの範囲の値)であるか判定する。ステップ1240の判定が否定的だった場合(ステップ1260:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。
 ステップ1260の判定が肯定的だった場合(ステップ1260:YES)、セルモード制御プログラム142はSSD#kについて、残消去可能回数決定処理を行う(ステップ1270)。ステップ1270の処理は、ステップ1090と同様である。ただしここでは、SSD#kの目標寿命値を、稼働開始日から6年とした場合の残消去可能回数を決定する。つまり式(4)のT3’に稼働開始日から6年後の日付を代入して寿命予測値を算出する点が、ステップ1090と異なる。
 その後セルモード制御プログラム142は、RG#nに属する全てのSSD21について、ステップ1210~ステップ1270の処理が完了していない場合には(ステップ1275:NO)、未処理のSSD21についてステップ1060から処理を繰り返す。ステップ1275の判定が肯定的な場合は、続いてステップ1100が実行される。
 ステップ1210で稼働時間が3年以上と判定された場合、ステップ1220が実行される。ステップ1220でセルモード制御プログラム142は、SSD#kの寿命予測値が稼働開始日から5.5年以上で、かつD1,D2,D3がいずれも0に極めて近い値(-α~αの範囲の値)であるか判定する。ステップ1220の判定が否定的だった場合(ステップ1220:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。
 ステップ1220の判定が肯定的だった場合(ステップ1220:YES)、セルモード制御プログラム142はSSD#kについて、残消去可能回数決定処理を行う(ステップ1230)。ステップ1230の処理は、ステップ1090と同様である。ただしここでは、SSD#kの目標寿命値を、稼働開始日から5.5年とした場合の残消去可能回数を決定する。つまり式(4)のT3’に稼働開始日から5.5年後の日付を代入して寿命予測値を算出する点が、ステップ1090と異なる。
 その後セルモード制御プログラム142は、RG#nに属する全てのSSD21について、ステップ1210~ステップ1270の処理が完了していない場合には(ステップ1275:NO)、未処理のSSD21についてステップ1060から処理を繰り返す。ステップ1275の判定が肯定的な場合は、続いてステップ1100が実行される。
 続いて、図7のステップ6に相当する処理(セルモード変更処理)の詳細を、図13、図11、図12を用いて説明する。
 まず、図13を参照しながら、ステップ6の処理の概略を説明する。セルモード制御プログラム142は、RG#nに属する各SSD21に、容量確認コマンドを発行する(ステップ7)。容量確認コマンドには、残消去可能回数の情報が含まれている。ここに含まれる残消去可能回数の情報は、セルモード制御プログラム142が図8、図9に示された処理(図7のステップ3~ステップ5に相当する処理)を実行した結果得られた、SSD21の目標残消去可能回数である。
 SSD21の一部または全部のブロック211をMLCモードからTLCモードに変更すると、SSD21の論理容量が増加するが残消去可能回数が減少する。このコマンドを受領したSSD21は、コマンドに含まれている残消去可能回数の情報を用いてTLCモードに変更可能なブロック211の数を求め、さらにそれをもとに、ブロック211をTLCモードに変更した場合の論理容量を算出する(ステップ8)、SSD21は算出された論理容量をストレージコントローラ10に返却する(ステップ9)。なお、ここでSSD21が実行する処理の詳細は、後述する。
 図11を参照しながら、ステップ8でSSD21が実行する処理の流れを説明する。図11の処理は、SSD21が有するセルモード変更プログラム242により行われる。
 ステップ2010:セルモード変更プログラム242はDKC10から容量確認コマンドを受領すると、容量確認コマンドに含まれている残消去可能回数の情報を抽出する。
 ステップ2020:セルモード変更プログラム242はブロック管理テーブル1150の複製を作成する。ここでは作成されたブロック管理テーブル1150の複製のことを「複製テーブル」と呼ぶ。また複製テーブルの各カラムは、ブロック管理テーブル1150と同様に、チップ#1151、ダイ#1152、ブロック#1153、モード1154、残消去可能回数1155と呼ぶ。そしてセルモード変更プログラム242は複製テーブルの各レコードについて、残消去可能回数1155の大きい順にソートする。
 ステップ2030:セルモード変更プログラム242は、複製テーブルの中から、レコードを1つ選択する。ここで選択されるレコードは、以下で説明するステップ2040以降の処理が行われていないレコードで、かつ残消去可能回数1155が最も大きいレコードである。
 ステップ2040:セルモード変更プログラム242は、複製テーブルの内容を元にSSD21の残消去可能回数を算出する。この時セルモード変更プログラム242は、ステップ2030で選択されたレコードで管理されるブロックが、MLCモードからTLCモードに変更されたという前提で、SSD21の残消去可能回数を算出する。具体的には以下の手順で計算が行われる。
 まずセルモード変更プログラム242は、複製テーブルの中の、ステップ2030で選択されたレコードを除く全てのレコードの残消去可能回数1155の合計値を算出する。続いてセルモード変更プログラム242は、ステップ2030で選択されたレコードの残消去可能回数に0.1を乗じた値を算出し、ここで算出された値を、先に算出した残消去可能回数1155の合計値に加算する。
 そしてセルモード変更プログラム242は、ここで算出されたSSD21の残消去可能回数が、ステップ2010で受領した残消去可能回数以下であるか判定する。算出されたSSD21の残消去可能回数が、ステップ2010で受領した残消去可能回数以下の場合(ステップ2040:YES)、次にステップ2050が行われる。算出されたSSD21の残消去可能回数が、ステップ2010で受領した残消去可能回数よりも大きい場合(ステップ2040:NO)、セルモード変更プログラム242はステップ2050~ステップ2070の処理をスキップし、次にステップ2080を行う。
 また、ステップ2040では、もしステップ2030で選択されたレコードのモード1154が“1”だった場合(つまり選択されたレコードで管理されるブロックが既にTLCモードだった場合)も、ステップ2050~ステップ2070の処理はスキップされ、ステップ2080が行われる。
 ステップ2050:セルモード変更プログラム242は、ステップ2030で選択されたレコードの残消去可能回数1155を変更し(0.1倍する)、またこのレコードのモード1154を“1”に変更する。
 ステップ2070:セルモード変更プログラム242は、複製テーブルの中に未処理のレコード(ステップ2030、ステップ2040等の処理が行われていないレコード)があるか判定する。未処理のレコードがある場合(ステップ2070:YES)、セルモード変更プログラム242は再びステップ2030の処理を行う。未処理のレコードがない場合(ステップ2070:NO)、次にステップ2080が行われる。
 ステップ2080:セルモード変更プログラム242は、幾つかのブロックがTLCモードに変更された場合の、SSD21の論理容量を算出する。具体的には以下の計算を行う。
 セルモード変更プログラム242は、複製テーブルのレコードのうち、モード1154が“0”であるレコードの数(これをMとする)及びモード1154が“1”であるレコードの数(これをTとする)を計数する。計数された値(M,T)はそれぞれ、SSD21内の幾つかのブロック211がTLCモードに変更された場合の、MLCモードのブロック数、TLCモードのブロック数に相当する。そしてセルモード変更プログラム242は、M×MLCモードのブロックのサイズ+T×TLCモードのブロックのサイズを算出することで、SSD21の論理容量を求める。なお、TLCモードのブロックのサイズはMLCモードのブロックのサイズの1.5倍の関係にある(1つのセル214に格納可能なビット数が、TLCはMLCの1.5倍だからである)。
 ステップ2090:セルモード変更プログラム242は、ステップ2080で算出されたSSD21の論理容量をDKC10に通知し、複製テーブルを破棄し、処理を終了する。
 図13の説明、つまりDKC10のセルモード制御プログラム142で実行される処理の説明に戻る。
 各SSD21から論理容量が返却された後、セルモード制御プログラム142はRG#nに属するSSD21の最小容量を決定する(ステップ10)。具体的にはセルモード制御プログラム142は、RG#nに属する各SSD21から返却された論理容量の最小値を特定する。特定された値が、RG#nに属するSSD21の最小容量である。その後セルモード制御プログラム142は、セルモードの変更可否をユーザに確認する(ステップ11)。一例として、セルモード制御プログラム142は管理ホスト5に、図14に示されるような確認用画面を管理ホスト5のディスプレイに表示させ、セルモードの変更を承諾するか否か、ユーザからの返答を得る。図14の確認用画面のうち“実施する”ボタンをユーザが押した場合、管理ホスト5はその旨をセルモード制御プログラム142に返却する(ステップ12)。
 セルモードの変更をユーザが許可しなかった場合、つまり確認用画面の“実施しない”ボタンをユーザが押した場合、セルモード制御プログラム142は処理を終了する。
 セルモードの変更をユーザが許可した場合、つまり確認用画面の“実施する”ボタンをユーザが押した場合、セルモード制御プログラム142は、RG#nに属する各SSD21に、セルモード変更コマンドを発行する。セルモード変更コマンドには、容量情報が含まれている。セルモード制御プログラム142は、ステップ10で決定したSSD21の最小容量が容量情報として設定されたセルモード変更コマンドを、各SSD21に発行する。このコマンドを受領したSSD21は、コマンドに含まれている容量情報を用いて、SSD21内のいくつかのブロックのセルモードを、MLCモードからTLCモードに変更する(ステップ14)。
 図12を用いて、セルモード変更コマンドを受領したSSD21が実施する処理(ステップ14)の詳細を説明する。
 ステップ2510:セルモード変更プログラム242はDKC10からセルモード変更コマンドを受領すると、セルモード変更コマンドに含まれている容量情報を抽出する。先に述べたとおり、この容量情報はステップ10で決定された、RG#nに属するSSD21の最小容量である。
 ステップ2520:セルモード変更プログラム242はブロック管理テーブル1150の中から、レコードを1つ選択する。ここで選択されるレコードは、以下で説明するステップ2530以降の処理が行われていないレコードで、かつ残消去可能回数1155が最も大きいレコードである。
 ステップ2530:セルモード変更プログラム242は、ステップ2520で選択されたレコードで管理されるブロックがTLCモードに変更された想定の元、SSD21の論理容量を算出する。算出方法は以下の通りである。
 セルモード変更プログラム242は、ブロック管理テーブル1150のレコードのうち、モード1154が“0”であるレコードの数から1を減算した値を算出する。この値を以下では“m”と表記する。またセルモード変更プログラム242は、ブロック管理テーブル1150のレコードのうち、モード1154が“1”であるレコードの数に1を加算した値を算出する。この値を以下では“m”と表記する。mとtは、ステップ2520で選択されたレコードで管理されるブロック(つまり1つのブロック)がTLCモードに変更されたと仮定した場合、SSD21内のMLCモードのブロック数、TLCモードのブロック数になる。
 そしてセルモード変更プログラム242は、
m×MLCモードのブロックのサイズ+t×TLCモードのブロックのサイズ
を算出することで、セルモード変更後のSSD21の論理容量を求める。
 ここで求められたセルモード変更後のSSD21の論理容量が、ステップ2510で取得した容量情報以下の場合(ステップ2530:YES)、次にステップ2540が行われる。一方、セルモード変更後のSSD21の論理容量がステップ2510で取得した容量情報より大きい場合(ステップ2530:NO)、セルモード変更プログラム242はステップ2540~ステップ2550の処理をスキップし、次にステップ2560を行う。
 ステップ2540:セルモード変更プログラム242はFMチップ210に、ステップ2520で選択されたレコードで管理されるブロック211のセルモード変更の指示を発行し、そのブロック211をTLCモードに変更させる。その後セルモード変更プログラム242は、ブロック管理テーブル1150のレコード(ステップ2520で選択されたレコード)のモード1154を“1”に変更するとともに、残消去可能回数1155を変更する(0.1倍する)。
 ステップ2550:セルモード変更プログラム242は、ブロック管理テーブル1150の中に未処理のレコード(ステップ2520、ステップ2530等の処理が行われていないレコード)があるか判定する。未処理のレコードがある場合(ステップ2550:YES)、セルモード変更プログラム242は再びステップ2520の処理を行う。未処理のレコードがない場合(ステップ2550:NO)、次にステップ2560が行われる。
 ステップ2560:セルモード変更プログラム242は、処理が完了した旨をDKC10に通知し、処理を終了する。この時セルモード変更プログラム242は、変更後のSSD21の論理容量をDKC10に通知する。
 ステップ14(図12の処理)が終了すると(RG#nに属する全SSD21から処理完了の応答を受領すると)、セルモード制御プログラム142はSSD21から返却されたSSD21の論理容量をRAIDグループ管理テーブル650(論理容量654)に格納し、また前回実施日660に現在の日付(時刻)を格納し、処理を終了する。
 以上が、本実施例に係るストレージシステムで行われる処理である。本実施例に係るストレージシステムでは、SSD21の残消去可能回数の変化率からSSD21の寿命を予測し、予測した寿命が所定値(耐用年数)より大きい場合、一部のブロック(セル)のモードをMLCモードからTLCモードに変更して、SSD21の記憶容量を増加させる。具体的にはストレージコントローラが、目標寿命を満足するSSD21の残消去可能回数(目標残消去可能回数)を算出する。そしてSSD21は、SSD21の残消去可能回数が目標残消去可能回数に変更された場合、何個のブロックをTLCモードで運用可能か決定し、決定された数のブロックについてセルモードを変更する。これによりストレージシステムは、SSD21の寿命(耐用年数)を維持しつつ、より大きな記憶容量をユーザに提供することができる。
 以上、本発明の実施例を説明したが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
 上で説明した実施例では、SSD21の各セルが、2ビットまたは3ビットのデータを格納可能な例を説明したが、本発明はこれに限定されるものではない。たとえばSSD21の各セルが、nビット(nは2以上の整数)のデータを格納可能なモードからmビット(ただしmは、n<mを満たす整数)のデータを格納可能なモードに変更可能である場合にも、適用可能である。また上の実施例では、あるブロックのセルモードがMLCモードからTLCモードに変更されると、そのブロックの残消去可能回数がセルモード変更前の残消去可能回数の1/c(たとえばc=10)に変更される例が説明されたが、これは一例であり、これ以外の例が用いられてもよい
 また、上で説明した実施例では、ストレージシステムは複数のSSD21をRAIDグループとして運用する例が説明されたが、SSD21がRAIDグループとして運用される構成は必須ではない。たとえばストレージシステムは、単一のSSD21が提供する記憶アドレス空間をプールに登録して運用してもよいし、あるいはSSD21が提供する記憶アドレス空間が直接ホスト2に提供されてもよい。
 また上で説明した実施例では、SSD21はストレージコントローラ10から容量確認コマンドを受領することで、残消去可能回数(目標残消去可能回数)を取得すると、一旦算出された容量の情報をストレージコントローラ10に返却する。そしてストレージコントローラ10から容量情報(セルモード変更コマンドに含まれている)を受領すると、その容量情報に基づいて、幾つかのセル(ブロック)のモードをMLCモードからTLCモードに変更する。つまりセルモード変更が行われるまでに、ストレージコントローラ10とSSD21の間で2回のコマンドのやり取りが行われる。ただし別の実施形態として、SSD21はストレージコントローラ10から目標残消去可能回数を与えられた時点で、一旦ストレージコントローラ10に応答を返すことなく、セルモードの変更を行ってもよい。具体的にはたとえば、図11のステップ2070までの処理で、TLCモードに変更されてもよいブロックが決定されるので、SSD21はステップ2080で決定されたブロックをTLCモードに変更するとよい。
 また、上で説明した実施例ではTLCモードに変更後のセルの残寿命を推定するために残消去可能回数を使用したが、残寿命の推定方法はこの方法に限られるものではない。一例を挙げると、セルの寿命は消去回数だけでなく消去間隔(前回消去からの経過時間)にも依存することが知られている。そこで、残消去可能回数に代えて、消去間隔を加味したポイントを管理し、そのポイントの変化率に基づいて残寿命を算出(推定)するようにしてもよい(たとえば残消去可能回数の代わりに、最初は一定のポイントをすべてのブロックに与えておく。そして、ブロックの消去が行われると、消去間隔に応じてブロックから所定量の値を削減するが、消去間隔が短い場合には削減する量を多くするとよい)。これにより、より正確な残寿命の推定が可能になると考えられる。
1:ストレージ装置, 2:ホスト計算機, 3:SAN, 5:管理ホスト, 10:ストレージコントローラ, 11:CPU, 12ホストI/F, 13:デバイスI/F, 14:メモリ, 15:管理用I/F, 21:SSD, 25:HDD, 200:SSDコントローラ, 201:CPU, 202:上流I/F, 203:下流I/F, 204:メモリ, 205:内部接続スイッチ, 210:FMチップ, 211:ブロック, 213:ダイ, 214:セル

Claims (13)

  1.  ストレージコントローラと、前記ストレージコントローラに接続される複数の記憶デバイスとを有するストレージシステムにおいて、
     前記記憶デバイスは、デバイスコントローラと、データの消去単位であるブロックを複数有する不揮発性記憶媒体とを有し、前記ブロックは複数のセルを含み、前記ブロックはそれぞれ、前記ブロック内の前記セルを、nビットの情報を格納可能な第1モードで運用中の状態から、mビット(n<m)の情報を格納可能な第2モードに変更可能であって、
     前記デバイスコントローラは、前記ブロックごとに残消去可能回数を管理しており、
     前記ブロックのモードが前記第1モードから前記第2モードに変更された場合、前記デバイスコントローラは前記ブロックの残消去可能回数を削減するよう構成されており、
     前記ストレージコントローラは、
     前記記憶デバイスから前記記憶デバイスの残消去可能回数を取得して、前記記憶デバイスの残消去可能回数の変化率を算出し、
     前記記憶デバイスの残消去可能回数の変化率を用いて、前記記憶デバイスの寿命予測値を算出し、
     前記寿命予測値が目標寿命より大きい場合、
     前記第1モードで運用中の前記ブロックのうち、所定数の前記ブロックのモードを前記第2モードに変更させることで、前記記憶デバイスの記憶容量を増加させる、
    ことを特徴とする、ストレージシステム。
  2.  前記所定数は、
     前記第1モードで運用中の前記ブロックのうち、前記ブロックのモードが前記第2モードに変更されても前記目標寿命を満足可能な数の前記ブロックの数である、
    ことを特徴とする、請求項1に記載のストレージシステム。
  3.  前記ストレージコントローラは、前記記憶デバイスの残消去可能回数の変化率を用いて、前記目標寿命を満足可能な前記記憶デバイスの残消去回数である、目標残消去可能回数を算出する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  4.  前記ストレージコントローラは、前記記憶デバイスに前記目標残消去可能回数を通知し、
     前記記憶デバイスは、前記目標残消去可能回数を用いて、前記記憶デバイスの増加後の記憶容量を算出する、
    ことを特徴とする、請求項3に記載のストレージシステム。
  5.  前記ストレージシステムは、前記複数の記憶デバイスから複数のRAIDグループを構成しており、
     前記ストレージコントローラは、前記RAIDグループに属する各前記記憶デバイスが算出した、前記記憶デバイスの増加後の記憶容量を取得し、
     前記取得した各前記記憶デバイスの増加後の記憶容量の最小値を、前記RAIDグループに属する各前記記憶デバイスに通知し、
     前記通知を受領した前記記憶デバイスは、前記記憶容量が通知された前記最小値になるまで、前記第1モードで運用中の前記ブロックのモードを前記第2モードに変更する処理を繰り返す、
    ことを特徴とする、請求項4に記載のストレージシステム。
  6.  前記ブロックに格納可能な情報量の変更可否は、前記RAIDグループ毎に設定可能で、
     前記ストレージコントローラは、前記ブロックのモードの変更が可能と設定された前記RAIDグループに属する前記記憶デバイスのみについて、前記記憶デバイスの記憶容量を増加させる、
    ことを特徴とする、請求項5に記載のストレージシステム。
  7.  前記ストレージコントローラは、前記寿命予測値の変動傾向を表す差分比率を算出することで、前記寿命予測値が減少傾向にあるか判定し、
     前記寿命予測値が減少傾向にある場合、前記ブロックのモードの変更を行わせない、
    ことを特徴とする、請求項1に記載のストレージシステム。
  8.  前記ストレージコントローラは定期的に前記差分比率を算出し、過去に算出された前記差分比率を所定個数記録しており、
     前記所定個数の前記差分比率がいずれも所定の範囲内に収まる値の場合、前記ブロックのモードの変更を行わせる、
    ことを特徴とする、請求項7に記載のストレージシステム。
  9.  ストレージコントローラに接続される記憶デバイスであって、
     前記記憶デバイスは、デバイスコントローラと、データの消去単位であるブロックを複数有する不揮発性記憶媒体とを有し、前記ブロックは複数のセルを含み、前記ブロックはそれぞれ、前記ブロック内の前記セルを、nビットの情報を格納可能な第1モードで運用中の状態から、mビット(n<m)の情報を格納可能な第2モードに変更可能であって、
     前記デバイスコントローラは、前記ブロックごとに残消去可能回数を管理しており、
     前記ブロックのモードが前記第1モードから前記第2モードに変更された場合、前記デバイスコントローラは前記ブロックの残消去可能回数を削減するよう構成されており、
     前記デバイスコントローラは、前記ストレージコントローラから目標残消去可能回数を受領すると、
     前記目標残消去可能回数に基づいて、前記ブロックのうち前記第2モードで運用可能なブロックの数を特定し、
     特定された前記ブロックを前記第2モードに変更した場合の、前記記憶デバイスの記憶容量をストレージコントローラに返却する、
    ことを特徴とする記憶デバイス。
  10.  前記デバイスコントローラは、前記記憶デバイスの残消去可能回数が、前記目標残消去可能回数以下という条件を満たす場合の、前記第2モードで運用される前記ブロックの上限数を、前記ブロックのうち前記第2モードで運用可能なブロックの数とする、
    ことを特徴とする、請求項9に記載の記憶デバイス。
  11.  前記デバイスコントローラは、前記ストレージコントローラからセルモード変更コマンドを受領すると、
     前記記憶デバイスの記憶容量が前記セルモード変更コマンドに含まれている容量に達するまで、前記第1モードで運用中の前記ブロックを、前記第2モードに変更する処理を繰り返す、
    ことを特徴とする、請求項9に記載の記憶デバイス。
  12.  前記デバイスコントローラは、前記ストレージコントローラから残消去可能回数の取得要求を受領すると、前記ブロックそれぞれの残消去可能回数の合計を、前記記憶デバイスの残消去可能回数として、前記ストレージコントローラに返却する、
    ことを特徴とする、請求項9に記載の記憶デバイス。
  13.  ストレージコントローラと、前記ストレージコントローラに接続される複数の記憶デバイスとを有するストレージシステムの制御方法であって、
     前記記憶デバイスは、デバイスコントローラと、データの消去単位であるブロックを複数有する不揮発性記憶媒体とを有し、前記ブロックは複数のセルを含み、前記ブロックはそれぞれ、前記ブロック内の前記セルを、nビットの情報を格納可能な第1モードで運用中の状態から、mビット(n<m)の情報を格納可能な第2モードに変更可能であって、
     前記デバイスコントローラは、前記ブロックごとに残消去可能回数を管理しており、
     前記ブロックのモードが前記第1モードから前記第2モードに変更された場合、前記デバイスコントローラは前記ブロックの残消去可能回数を削減するよう構成されており、
     前記ストレージコントローラが、
     1)前記記憶デバイスから前記記憶デバイスの残消去可能回数を
       取得して、前記記憶デバイスの残消去可能回数の変化率を算
       出する工程と、
     2)前記記憶デバイスの残消去可能回数の変化率を用いて、前記
       記憶デバイスの寿命予測値を算出する工程と、
     3)前記寿命予測値が目標寿命より大きい場合、前記第1モード
       で運用中の前記ブロックのうち、所定数の前記ブロックを、
       前記第2モードに変更させることで、前記記憶デバイスの記
       憶容量を増加させる工程と、
    を実行することを特徴とする、ストレージシステムの制御方法。
PCT/JP2015/083369 2015-11-27 2015-11-27 ストレージシステム WO2017090176A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017552630A JP6286622B2 (ja) 2015-11-27 2015-11-27 ストレージシステム
US15/744,671 US10387062B2 (en) 2015-11-27 2015-11-27 Storage system with cells changeable between two different level cell modes based on predicted lifetime
PCT/JP2015/083369 WO2017090176A1 (ja) 2015-11-27 2015-11-27 ストレージシステム
CN201580081270.2A CN107710140B (zh) 2015-11-27 2015-11-27 存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/083369 WO2017090176A1 (ja) 2015-11-27 2015-11-27 ストレージシステム

Publications (1)

Publication Number Publication Date
WO2017090176A1 true WO2017090176A1 (ja) 2017-06-01

Family

ID=58763266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/083369 WO2017090176A1 (ja) 2015-11-27 2015-11-27 ストレージシステム

Country Status (4)

Country Link
US (1) US10387062B2 (ja)
JP (1) JP6286622B2 (ja)
CN (1) CN107710140B (ja)
WO (1) WO2017090176A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057193A (ja) * 2017-09-22 2019-04-11 東芝メモリ株式会社 メモリシステム
JP2019086974A (ja) * 2017-11-06 2019-06-06 株式会社日立製作所 ストレージシステム及びその制御方法
US20220130431A1 (en) * 2019-02-05 2022-04-28 Micron Technology, Inc. Dynamic allocation of a capacitive component in a memory device
JP7451809B2 (ja) 2022-02-17 2024-03-18 キオクシア株式会社 方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6721491B2 (ja) * 2016-11-18 2020-07-15 キオクシア株式会社 記憶システム
WO2018154669A1 (ja) * 2017-02-23 2018-08-30 株式会社日立製作所 ストレージシステム
US11403198B2 (en) * 2017-07-27 2022-08-02 EMC IP Holding Company LLC Managing data within solid state drive storage based on recurring write quotas
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
CN110007857B (zh) * 2019-03-08 2022-08-19 北京星网锐捷网络技术有限公司 一种闪存芯片的寿命预测方法及装置
CN111767006B (zh) 2019-04-02 2021-03-16 英韧科技(上海)有限公司 数据处理方法及装置
JP7248495B2 (ja) * 2019-05-15 2023-03-29 ファナック株式会社 数値制御測装置、数値制御システム、及びプログラム
US10942881B2 (en) * 2019-06-25 2021-03-09 Micron Technology, Inc. Parallel operations in aggregated and virtualized solid state drives
CN111142796A (zh) * 2019-12-20 2020-05-12 北京浪潮数据技术有限公司 一种ssd寿命预测方法、装置、设备及可读存储介质
CN117785072B (zh) * 2024-02-27 2024-05-28 南京扬贺扬微电子科技有限公司 一种基于eMMC协议的存储控制***及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11176178A (ja) * 1997-12-15 1999-07-02 Sony Corp 不揮発性半導体記憶装置およびそれを用いたicメモリカード
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2014203467A (ja) * 2013-04-01 2014-10-27 株式会社東芝 メモリシステム、制御システムおよび寿命予測方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4842593B2 (ja) * 2005-09-05 2011-12-21 株式会社日立製作所 ストレージ仮想化装置のデバイス制御引継ぎ方法
US20080250220A1 (en) * 2007-04-06 2008-10-09 Takafumi Ito Memory system
WO2013094041A1 (ja) * 2011-12-21 2013-06-27 株式会社日立製作所 計算機システム、及び管理システム
JP5977778B2 (ja) * 2014-03-27 2016-08-24 京セラドキュメントソリューションズ株式会社 情報処理装置およびメモリー管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11176178A (ja) * 1997-12-15 1999-07-02 Sony Corp 不揮発性半導体記憶装置およびそれを用いたicメモリカード
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2014203467A (ja) * 2013-04-01 2014-10-27 株式会社東芝 メモリシステム、制御システムおよび寿命予測方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057193A (ja) * 2017-09-22 2019-04-11 東芝メモリ株式会社 メモリシステム
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US11733888B2 (en) 2017-09-22 2023-08-22 Kioxia Corporation Memory system
JP2019086974A (ja) * 2017-11-06 2019-06-06 株式会社日立製作所 ストレージシステム及びその制御方法
US10838628B2 (en) 2017-11-06 2020-11-17 Hitachi, Ltd. Storage system and control method of maintaining reliability of a mounted flash storage
US20220130431A1 (en) * 2019-02-05 2022-04-28 Micron Technology, Inc. Dynamic allocation of a capacitive component in a memory device
US11984187B2 (en) * 2019-02-05 2024-05-14 Micron Technology, Inc. Dynamic allocation of a capacitive component in a memory device
JP7451809B2 (ja) 2022-02-17 2024-03-18 キオクシア株式会社 方法

Also Published As

Publication number Publication date
CN107710140A (zh) 2018-02-16
JP6286622B2 (ja) 2018-02-28
US10387062B2 (en) 2019-08-20
JPWO2017090176A1 (ja) 2018-02-15
US20180203631A1 (en) 2018-07-19
CN107710140B (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
JP6286622B2 (ja) ストレージシステム
JP5844473B2 (ja) 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
US9298534B2 (en) Memory system and constructing method of logical block
JP6073471B2 (ja) ストレージ装置
US8775723B2 (en) Storage system and control method of storage system
JP6381529B2 (ja) ストレージ装置および記憶制御方法
US9582220B2 (en) Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system
WO2014141411A1 (ja) ストレージシステムおよびストレージシステム制御方法
US20170262176A1 (en) Storage system, information processing system and method for controlling nonvolatile memory
JP2017162066A (ja) ストレージシステム、情報処理システムおよび制御方法
US10545684B2 (en) Storage device
WO2017081811A1 (ja) ストレージ装置、記録媒体、および記憶制御方法
JPWO2016117026A1 (ja) ストレージシステム
US10642525B2 (en) Multiple-stage data lifetime management for storage devices
US9519427B2 (en) Triggering, at a host system, a process to reduce declared capacity of a storage device
WO2017022082A1 (ja) フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム
WO2018154669A1 (ja) ストレージシステム
JP2019086974A (ja) ストレージシステム及びその制御方法
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US9582193B2 (en) Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
WO2018167890A1 (ja) 計算機システム及び管理方法
US9582212B2 (en) Notification of trigger condition to reduce declared capacity of a storage device
US9563370B2 (en) Triggering a process to reduce declared capacity of a storage device
JP6721765B2 (ja) メモリシステムおよび制御方法
JP6666405B2 (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: 15909293

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017552630

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15744671

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15909293

Country of ref document: EP

Kind code of ref document: A1