WO2019021415A1 - Storage system and data storing control method - Google Patents

Storage system and data storing control method Download PDF

Info

Publication number
WO2019021415A1
WO2019021415A1 PCT/JP2017/027193 JP2017027193W WO2019021415A1 WO 2019021415 A1 WO2019021415 A1 WO 2019021415A1 JP 2017027193 W JP2017027193 W JP 2017027193W WO 2019021415 A1 WO2019021415 A1 WO 2019021415A1
Authority
WO
WIPO (PCT)
Prior art keywords
interface
write
protocol
data
volatile memory
Prior art date
Application number
PCT/JP2017/027193
Other languages
French (fr)
Japanese (ja)
Inventor
誠司 鳥越
繁雄 本間
浩幸 三留
Original Assignee
株式会社日立製作所
株式会社日立情報通信エンジニアリング
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所, 株式会社日立情報通信エンジニアリング filed Critical 株式会社日立製作所
Priority to PCT/JP2017/027193 priority Critical patent/WO2019021415A1/en
Publication of WO2019021415A1 publication Critical patent/WO2019021415A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Definitions

  • the present invention relates to a storage system or the like that stores write data corresponding to a write request.
  • a storage system has a plurality of storage devices for storing data, and a disk controller for controlling the plurality of storage devices.
  • a disk controller provides a host computer with a large capacity data storage space.
  • a non-volatile memory device for example, an SSD: Solid State Drive
  • a non-volatile memory for example, an FM: flash memory
  • the number of times data can be written is limited due to the configuration thereof, and therefore, in a non-volatile memory device having the flash memory, there is a write endurance.
  • the write life is different depending on the type of nonvolatile memory to be used.
  • Non-volatile memory devices In storage systems, multiple types of non-volatile memory devices with different write lives may be provided. Non-volatile memory devices vary in cost depending on their performance, such as write lifetime. Therefore, in a storage system, controlling how data is stored in a non-volatile memory device is important in reducing the bit cost in the storage system.
  • control technique for storing data text data is stored in a flash memory having a low read error rate, and image data is stored in a flash memory having a high read error rate in a storage provided with a plurality of nonvolatile memories.
  • a technique to do this is known (see, for example, Patent Document 1).
  • Storage systems include block storage that handles data in units of predetermined blocks with a host, and object storage that handles data in units of objects.
  • the storage system Since the processing of the disk controller differs depending on whether the storage system is block storage or object storage, the storage system is generally used as any storage. However, it is also conceivable to use the storage system as block storage and object storage.
  • the disk controller performs I / O processing of data in block units and data in object units. It is necessary to correspond to a plurality of protocols for performing the above, and to have a function of managing data in units of blocks and data in units of objects.
  • the present invention has been made in view of the above circumstances, and an object thereof is to provide a technology capable of appropriately storing data stored according to a plurality of protocols and reducing bit cost.
  • a storage system includes a plurality of non-volatile memory devices each having a non-volatile memory, and a processor unit that is one or more processors managing the plurality of non-volatile memory devices.
  • the plurality of non-volatile memory devices of the storage system includes a first non-volatile memory device having a first non-volatile memory having a short initial write life and a second non-volatile memory having a high initial write life. And a non-volatile memory device.
  • the processor unit is a first protocol interface which is highly likely to be used when storing data with a low update possibility, the interface of the protocol to which the write request for the predetermined write data received from the host apparatus is compatible. It is determined whether the second protocol interface is highly likely to be used when storing data that is likely to be updated.
  • the processor unit allocates a storage area to which write data corresponding to the write request is to be written, when the interface of the protocol corresponding to the write request is the first protocol interface, the processor unit A second non-volatile memory device is allocated when a storage area is allocated and a storage area to which write data corresponding to the write request is to be written is allocated when the interface of the protocol corresponding to the write request is the second protocol interface. Allocating the storage area of and writing the write data to the allocated storage area.
  • data stored according to a plurality of protocols can be stored properly, and bit cost can be reduced.
  • FIG. 1 is a diagram for explaining the outline of the first embodiment.
  • FIG. 2 is an overall configuration diagram of a computer system according to the first embodiment.
  • FIG. 3 is a block diagram of the FMPK according to the first embodiment.
  • FIG. 4 is a configuration diagram of a data control table according to the first embodiment.
  • FIG. 5 is a configuration diagram of a RAID group management table according to the first embodiment.
  • FIG. 6 is a configuration diagram of a drive management table according to the first embodiment.
  • FIG. 7 is a configuration diagram of a write destination management table according to the first embodiment.
  • FIG. 8 is a configuration diagram of an object data management table according to the first embodiment.
  • FIG. 9 is a configuration diagram of an object data write destination management table according to the first embodiment.
  • FIG. 1 is a diagram for explaining the outline of the first embodiment.
  • FIG. 2 is an overall configuration diagram of a computer system according to the first embodiment.
  • FIG. 3 is a block diagram of the FMPK according to the first embodiment.
  • FIG. 10 is a diagram for explaining the mapping between logical pages and physical pages in the FMPK.
  • FIG. 11 is a configuration diagram of the mapping table according to the first embodiment.
  • FIG. 12 is a flowchart of input / output processing by the disk controller according to the first embodiment.
  • FIG. 13 is a flowchart of data write processing by the FMPK controller according to the first embodiment.
  • FIG. 14 is a configuration diagram of a RAID group management table according to the second embodiment.
  • information may be described by the expression “AAA table”, but the information may be expressed by any data structure. That is, the "AAA table” can be called “AAA information” to indicate that the information does not depend on the data structure.
  • the “processor unit” includes one or more processors. At least one processor is typically a microprocessor, such as a CPU (Central Processing Unit). Each of the one or more processors may be single core or multi-core.
  • the processor may include hardware circuitry that performs some or all of the processing.
  • processing performed by the functional unit configured by the processor executing a program may be processing performed by the processor or processing performed by a computer including the processor.
  • the program executed by the processor may be installed from a program source.
  • the program source may be a program distribution server or storage medium (eg, portable storage medium).
  • RAID is an abbreviation of Redundant Array of Independent (or Inexpensive) Disks.
  • a RAID group is composed of a plurality of physical devices (typically physical devices of the same type), and stores data according to the RAID level associated with the RAID group.
  • RAID groups may be referred to as parity groups.
  • the parity group may be, for example, a RAID group that stores parity.
  • FIG. 1 is a diagram for explaining the outline of the first embodiment.
  • a host computer transmits a write request (Write request) to the storage system 3 via a SAN (Storage Area Network) 4.
  • a write request transmitted by the host 2 a write request according to an interface (first protocol interface) of HTTP (Hypertext Transfer Protocol), which is a protocol for writing data in object units, and data in block units are performed.
  • HTTP Hypertext Transfer Protocol
  • SCSI Small Computer System Interface: second protocol interface
  • the write request according to HTTP includes, for example, a command (for example, Put) requesting a write, a unique ID (object ID) of an object to be written, and data to be written (write data).
  • a command for example, Write
  • a write request according to SCSI for example, a command (for example, Write) for requesting a write, a LUN (Logical Unit Number) indicating a write destination volume of the storage system 3, and a logic indicating an address of a write destination in the volume It includes a block address (LBA: Logical Block Address) and data to be written (write data).
  • LBA Logical Block Address
  • the write request is referred to the application layer header of the Open Systems Interconnection (OSI) reference model in the write request. It is determined whether the protocol interface (I / F) of the protocol is a protocol I / F (ID I / F) according to HTTP or a protocol I / F (SCSI I / F) according to SCSI ((2 in FIG. 1). )).
  • OSI Open Systems Interconnection
  • FMPK flash memory package
  • FM chip NAND flash memory chip
  • QLC Quadrature Level Cell
  • an FMPK 20 including a NAND flash memory chip with a long write life here, for example, an MLC (Multiple Level Cell) method capable of storing three or more values in one memory cell.
  • the memory area of the FMPK 20 C including the FM chip of F, and the FMPK 20 C including the FM chip of the Triple Level Cell (TLC) method capable of storing 3-bit data in one memory cell is allocated as a storage area for storing write data. Write data to storage area It is paid (in FIG. 1 (6)).
  • object data is basically not likely to be updated, and even if an update occurs, the entire new data is written instead of overwriting the data. Therefore, the number of rewrites to the same storage area can be suppressed. Therefore, even if the object data is stored in the FMPK including the FM chip having a short writing lifetime, the decrease in the writing lifetime of the FMPK can be suppressed. From this, it can be said that the HTTP interface is a protocol interface that tends to be used when storing data with low updateability.
  • SCSI can be said to be a protocol interface that is likely to be used when storing data that is likely to be updated.
  • FIG. 2 is an overall configuration diagram of a computer system according to the first embodiment.
  • the computer system 1 includes a host 2 as an example of one or more upper-level devices, one or more storage systems 3, and a SAN 4 that connects the host 2 and the storage system 3.
  • the SAN 4 may be another type of communication network.
  • the host 2 performs an I / O request to the storage system 3, that is, a read request to read data stored in the storage system 3 (Read request), and a write request to write data to the storage system 3 (Write request) Send to 3
  • a write request the host 2 writes a write request according to the SCSI, which is an interface of a protocol for writing data in block units, and a write request according to an HTTP interface, which is a protocol for writing data in object units. Can be sent.
  • the storage system 3 has a disk controller 10 and a plurality of FMPKs 20.
  • the FMPK 20 is a storage device for storing write data from a host apparatus such as the host 2 and is a storage device (nonvolatile memory device) adopting a nonvolatile memory such as a flash memory as a storage medium.
  • a plurality of types of FMPKs having different rewrite lifetimes and input / output performances exist in the plurality of FMPKs 20 depending on the type and performance of the non-volatile memory used.
  • the FMPK 20 is connected to the disk controller 10 by, for example, 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 transmission line conforming to the PCI (Peripheral Component Interconnect) standard
  • the disk controller 10 includes a central processing unit (CPU) 11 as an example of a processor unit, a host interface (host I / F) 12, a disk interface (disk I / F) 13, a memory 14, and an internal bus 15.
  • the internal bus 15 mutually connects the CPU 11, the host I / F 12, the disk I / F 13 and the memory 14.
  • FIG. 2 Only one component of the disk controller 10 is shown in FIG. 2, at least one of these components is provided in the disk controller 10 in order to achieve high performance and high availability. May be Further, in the disk controller 10, each component may be interconnected via an internal switch instead of the internal bus 15.
  • the host I / F 12 converts the protocol between the communication protocol (for example, fiber channel) used in the data transfer path between the host 2 and the disk controller 10 and the communication protocol used inside the disk controller 10, host 2 and disk Processing of data transfer with the controller 10 is performed.
  • the host I / F 12 uses an object ID protocol (first protocol) used to store data in object units and a SCSI protocol (second protocol) used to store data in predetermined blocks. Communication can be performed according to the protocol.
  • the disk I / F 13 performs protocol conversion between a protocol (for example, SAS) used by the FMPK 20 and a communication protocol (for example, PCI-Express) used inside the disk controller 10, and data between the disk controller 10 and the FMPK 20. Perform transfer (read, write) processing.
  • a protocol for example, SAS
  • a communication protocol for example, PCI-Express
  • the CPU 11 performs various controls of the storage system 3.
  • the memory 14 may be configured by, for example, a volatile storage medium such as a DRAM or an SRAM, or may be configured by a non-volatile memory.
  • the memory 14 stores programs executed by the CPU 11 and management information of the storage system 3 used by the CPU 11.
  • the memory 14 is also used to temporarily store data (write data, read data) to be subjected to I / O to the FMPK 20.
  • the memory 14 stores a program executed by the CPU 11 in order to execute processing to be described later by the disk controller 10.
  • management information stored in the memory 14 for example, a data control table 100 (see FIG. 4), a RAID group management table 200 (see FIG. 5), a drive management table 300 (see FIG. 6), and a write destination management table 400 described later.
  • An object data management table 500 (see FIG. 8) and an object data write destination management table 600 (see FIG. 9) are included (see FIG. 7).
  • FIG. 3 is a block diagram of the FMPK according to the first embodiment.
  • the FMPK 20 includes an FMPK controller 30 and a plurality of FM chips 40.
  • the FMPK controller 30 has a CPU 31 as an example of a processor, a disk I / F 32, an FM chip I / F 33, and a memory 34, which are interconnected via an internal bus 35.
  • the disk I / F 32 is an interface controller for performing communication between the FMPK 20 and the disk controller 10.
  • the disk I / F 32 is connected to the disk I / F 13 of the disk controller 10 via a transmission line (SAS link or PCI link).
  • the FM chip I / F 33 is an interface controller for communicating between the FMPK controller 30 and the FM chip 40.
  • the FM chip I / F 33 is connected to the FM chip 40 via a transmission line.
  • the CPU 31 performs processing and the like related to various commands received from the disk controller 10.
  • the memory 34 stores programs executed by the CPU 31 and various management information.
  • the memory 34 may be configured by a volatile storage medium such as a DRAM, an SRAM, or the like, and may be configured by a non-volatile memory.
  • the memory 34 stores a logical / physical mapping table 500 (see FIG. 11), which will be described later.
  • the FM chip 40 is, for example, a nonvolatile semiconductor memory chip such as a NAND flash memory.
  • Examples of the FM chip 40 include a QLC FM chip, a TLC FM chip, and a SLC (Single Level Cell) FM chip.
  • the FM chip 40 of the same system is mounted in the same FMPK 20, the FM chip 40 of the same system is mounted.
  • the writing life of the FM chip 40 at the initial stage is in the order of the SLC method, the MLC method, the TLC method, and the QLC method, in descending order.
  • the QLC FM chip 40 corresponds to the first non-volatile memory
  • the MLC and TLC FM chips 40 correspond to the second non-volatile memory. Therefore, the FMPK 20 including the QLC FM chip 40 corresponds to the first non-volatile memory device, and the FMPK 20 including the MLC or TLC FM chip 40 corresponds to the second non-volatile memory device.
  • FIG. 4 is a configuration diagram of a data control table according to the first embodiment.
  • the data control table 100 stores a corresponding entry for each I / O request received from the host 2.
  • the entries of the data control table 100 include fields of an entry number 101, a time stamp 102, a direction 103, an I / F 104, a command 105, and data 106.
  • the entry number 101 stores a number for identifying an entry.
  • the time stamp 102 stores the date and time when the I / O request corresponding to the entry is received.
  • the direction 103 stores the direction of the I / O request, that is, whether it is a write (Write) to the storage system 3 or a read (Read) from the storage system 3.
  • the I / F 104 stores the type of interface in the I / O request. In the present embodiment, if the I / O request is an interface conforming to the object ID protocol, an ID is stored in the I / F 104, and if it is an interface conforming to the SCSI, SCSI is stored.
  • the command 105 stores a command corresponding to the I / O request.
  • Put is stored
  • Get is stored
  • write request using an interface according to the SCSI protocol If there is, Write is stored, and if it is a read request using an interface conforming to the SCSI protocol, Read is stored.
  • the data 106 stores read data and write data corresponding to the I / O request.
  • FIG. 5 is a configuration diagram of a RAID group management table according to the first embodiment.
  • the RAID group management table 200 stores an entry for managing information on RAID groups managed by the storage system 3.
  • the entries in the RAID group management table 200 are: write endurance 201, RAID group number 202, RAID configuration 203, drive number 204, flash memory type (FM Type) 205, use 206, RAID group It includes fields with the logical address 207.
  • the write life 201 stores information on the extent of the initial write life for the FMPKs that make up the RAID group corresponding to the entry. In this embodiment, “many” is set when the initial write life of the FMPK 20 configuring the RAID group is long, and “low” is set when the initial write life is short.
  • the RAID group number 202 stores a number (RAID group number) for identifying the RAID group corresponding to the entry.
  • the RAID configuration 203 stores the configuration of the RAID group corresponding to the entry. For example, one of RAIDs 0 to 6 is set as the configuration of the RAID group.
  • the drive number 204 stores the number of the drive (here, the FMPK 20) that configures the RAID group corresponding to the entry.
  • the flash memory type 205 stores the type of the FM chip 40 of the FMPK 20 that configures the RAID group corresponding to the entry. Examples of the type of the FM chip 40 include QLC, TLC, and SLC.
  • the application 206 stores the application of data stored in the FMPK 20 of the RAID group corresponding to the entry. The application of data is, for example, for object data or block data.
  • the RAID group logical address 207 stores a logical address (RAID group logical address) in the RAID group for the storage area of the drive corresponding to the entry.
  • FIG. 6 is a configuration diagram of a drive management table according to the first embodiment.
  • the drive management table 300 is a table for managing the correspondence between the RAID group logical address in the FMPK 20 and the logical address of the FMPK 20.
  • the entries of the drive management table 300 include fields of a drive number 301, a RAID group logical address 302, and an FMPK logical address 303.
  • the drive number 301 stores a number (drive number, FMPK number) for identifying the FMPK 20.
  • the RAID group logical address 302 stores a logical address (RAID group logical address) in the RAID group.
  • the FMPK logical address 303 stores the logical address (FMPK logical address) of the FMPK 20 corresponding to the RAID group logical address.
  • FIG. 7 is a configuration diagram of a write destination management table according to the first embodiment.
  • the write destination management table 400 is a table for managing a write destination of write data to a certain virtual volume (for example, virtual volume according to Thin Provisioning: target volume).
  • the entry of the write destination management table 400 includes fields of a target volume address 401, a RAID group number 402, and a RAID group logical address 403.
  • the target volume address 401 stores each address in the target volume.
  • the RAID group number 402 stores the number of the RAID group that stores the write data.
  • the RAID group logical address 403 stores the logical address (RAID group logical address) of the RAID group in which the write data is stored.
  • write destinations related to a plurality of volumes may be managed.
  • the entry may further include a field for storing identification information of volumes.
  • the drive number of the FMPK 20 in which the data of a certain address of the target volume is stored can be identified using the identified drive number and the RAID group logical address, and the drive management table 300 It can be identified by reference.
  • FIG. 8 is a configuration diagram of an object data management table according to the first embodiment.
  • the object data management table 500 is a table for managing objects stored in the storage system 3, and stores entries corresponding to each object.
  • An entry of the object data management table 500 includes fields of an object ID 501, an object name 502, a length 503, and a type 504.
  • the object ID 501 stores information (object ID) for identifying an object corresponding to the entry.
  • the object name 502 stores the name of the object corresponding to the entry.
  • the length 503 the length (data length) of the object corresponding to the entry is stored.
  • the type 504 stores the type of object.
  • FIG. 9 is a configuration diagram of an object data write destination management table according to the first embodiment.
  • the object data write destination management table 600 is a table for managing the write destination of object data (object data), and stores an entry corresponding to each object.
  • the entries of the object data write destination management table 600 include fields of an object ID 601, a RAID group number 602, and a RAID group logical address 603.
  • the object ID 601 stores an object ID for identifying an object.
  • the RAID group number 602 stores the number of the RAID group storing the object data.
  • the RAID group logical address 603 stores the logical address (RAID group logical address) of the RAID group in which the object data is stored.
  • the drive number of the FMPK 20 in which data of a certain object is stored is referred to the RAID group management table 200 using the RAID group number of the object data write destination management table 600 and the RAID group logical address.
  • the address of the FMPK 20 (FMPK logical address) in which data of a certain object can be identified is stored by referring to the drive management table 300 using the identified drive number and the RAID group logical address. It can be identified.
  • mapping between logical addresses and physical addresses in the FMPK 20 will be described.
  • FIG. 10 is a diagram for explaining the mapping between logical pages and physical pages in the FMPK.
  • the logical recording area 50 in the FMPK 20 is managed by a logical address (FMPK logical address).
  • FMPK logical address the logical storage area 50 is managed in units of logical pages 51 of a predetermined size.
  • the logical page 51 is mapped to the physical page 53 in the physical block 52 of the FMPK 20.
  • the logical address of the FMPK 20 and the physical address are managed by the logical-physical mapping table 700.
  • FIG. 11 is a configuration diagram of a logical / physical mapping table according to the first embodiment.
  • the logical / physical mapping table 700 stores an entry indicating the correspondence between the logical address in the FMPK 20 and the physical address.
  • the entry stores fields of a logical address 701 and a physical address 702.
  • the logical address 701 stores the logical address (FMPK logical address) in the FMPK 20.
  • the physical address 702 stores the physical address corresponding to the FMPK logical address stored in the logical address 701 of the entry.
  • FIG. 12 is a flowchart of input / output processing by the disk controller according to the first embodiment.
  • the input / output process is performed when the disk controller 10 receives an I / O request via the SAN 4.
  • the CPU 11 of the disk controller 10 receives an I / O request via the host I / F 12, the CPU 11 determines whether the received I / O request is a write request (write request) (step S11).
  • step S11 if the received I / O request is not a write request (step S11: No), that is, if it is a read request, the CPU 11 executes read processing according to the I / O request (step S12), End input / output processing.
  • step S11 determines whether the storage system 3 has an FMPK 20 having a different write life (step S13).
  • step S 13 when there is no FMPK 20 having a different write life (step S 13: No), it means that the write life does not greatly change even if data is written to any FMPK 20.
  • the I / F of the write request When the storage area of the FMPK 20 for storing the write data is not allocated to the address of the volume corresponding to the write request and the storage area needs to be newly allocated, the CPU 11 allocates the storage area.
  • the FMPK 20 number (FMPK number) is determined, the RAID group logical address to be assigned corresponding to the storage area of this FMPK 20 is determined, and the entry of the address of the volume corresponding to the write request of the write destination management table 400 is decided.
  • FMPK number of MPK20 is a RAID group number belonging stores the RAID group logical address (step S14). Whether or not the storage area of the FMPK 20 for storing write data is allocated to the address of the volume corresponding to the write request is determined by the RAID group logical address 403 of the entry of the write destination management table 400 corresponding to the address of the volume. It can be determined by reference.
  • the CPU 11 registers the object data corresponding to the write request in the object data management table 500, and assigns the storage area to the FMPK 20.
  • the RAID group logical address to be assigned corresponding to the storage area of is determined, the entry corresponding to this object data is added to the object data write destination management table 600, and the RAID group number to which the determined FMPK 20 belongs and the RAID The group logical address is stored (step S14).
  • the CPU 11 specifies the FMPK logical address corresponding to the allocated RAID group logical address based on the drive management table 300, and writes the write data specifying the specified FMPK logical address to the determined FMPK 20.
  • a request is issued (step S15), and the input / output processing ends.
  • the write data is to be written.
  • step S13 when there is an FMPK 20 having a different write life (step S13: Yes), the write life of the entire storage system 3 changes greatly depending on which FMPK 20 the data is written to.
  • the write request is referred to, and it is confirmed what the I / F of the write request is (step S16).
  • the I / F of the write request can be confirmed by referring only to the information of the application layer header of the Open Systems Interconnection (OSI) reference model in the write request, and the write data itself It is not necessary to refer to the contents.
  • OSI Open Systems Interconnection
  • the write data corresponding to the write request may be data with low update possibility. Since this means high, the CPU 11 determines the number of the FMPK 20 storing the write data from the FMPK 20 having a short write life, and further assigns the RAID group logical address corresponding to the storage area of this FMPK 20.
  • the object data entry corresponding to the write request is registered in the object data management table 500, an entry corresponding to the object data is added to the object data write destination management table 600, and the RAI of the determined FMPK 20 is added to this entry. Storing a group number, the RAID group the logical address, the (step S17).
  • the FMPK 20 having a short write life may be specified by referring to the write life 201 of the RAID management group management table 200 or may be specified based on the type of flash memory type 205.
  • the CPU 11 issues a write request for write data to the determined FMPK 20 (step S18), and ends the input / output processing.
  • the FMPK 20 that has received a write request from the CPU 11, write data is written by a data write process described later. For this reason, write data having a low update possibility is appropriately stored in the FMPK 20 having a short write life.
  • the write data corresponding to the write request is highly likely to be data with high update possibility.
  • the CPU 11 stores the write data from among the FMPK 20 having a long write life. And the assigned RAID group logical address corresponding to the storage area of this FMPK 20, and the determined RAID group number of FMPK 20 in the entry of the address of the volume corresponding to the write request of the write destination management table 400. And RAID Storing a loop logical address (step S19).
  • the FMPK 20 having a long write life may be specified by referring to the write life 201 of the RAID management group management table 200, or may be specified based on the type of flash memory type 205.
  • the CPU 11 specifies the FMPK logical address corresponding to the allocated RAID group logical address based on the drive management table 300, and writes the write data specifying the specified FMPK logical address to the determined FMPK 20.
  • a request is issued (step S20), and the input / output processing ends.
  • the FMPK 20 that has received the write request from the CPU 11, the data write process described later is performed and the write data is written. For this reason, write data with high update possibility is appropriately stored in the FMPK 20 having a long write life.
  • the CPU 11 issues a write data write request to the FMPK 20 already assigned. It becomes.
  • FIG. 13 is a flowchart of data write processing by the FMPK controller according to the first embodiment.
  • the data write process is executed when the CPU 31 of the FMPK controller 30 receives a write request from the disk controller 10.
  • the CPU 31 of the FMPK controller 30 calculates a logical page from the FMPK logical address assigned to the write target data in the write request (step S21).
  • the logical page can be calculated based on the logical address and the size of the logical page set in advance.
  • the CPU 31 refers to the logical / physical mapping table 700 to specify a physical page corresponding to the calculated logical page (step S22).
  • the CPU 31 stores write data corresponding to the write request for the identified physical page (step S23), and ends the data write process.
  • the write data is properly stored in the FMPK 20 requested to be written by the disk controller 10.
  • the data characteristic of data with high update possibility or low data is judged and the FMPK 20 to be written is determined according to the characteristic, the data is appropriately stored according to the characteristics of each FMPK 20
  • the life of the storage system 3 can be extended, and the bit cost can be reduced.
  • the storage system 3 according to the second embodiment will be described in terms of differences from the storage system according to the first embodiment.
  • the storage system 3 according to the first embodiment determines the FMPK 20 of the write data write destination according to the write life at the initial point, that is, the initial performance of the FMPK 20.
  • the FMPK 20 to which the write data is to be written is determined based on the actual lifetime of each FMPK 20.
  • the storage system 3 according to the second embodiment includes a RAID group management table 210 (see FIG. 14) instead of the RAID group management table 200 shown in FIG.
  • FIG. 14 is a configuration diagram of a RAID group management table according to the second embodiment.
  • the RAID group management table 210 further includes a field of status (lifetime) 208 in the entry.
  • the status (lifetime) 208 stores the lifetime of the FMPK 20 corresponding to the entry (available days: equivalent to remaining life information).
  • the usable days of the state (lifetime) 208 are successively updated, for example, when the CPU 11 detects that writing to the FMPK 20 has occurred.
  • the CPU 11 refers to the value of the state (lifetime) 208 in step S17 shown in FIG. 12, and determines the number of the FMPK 20 for storing the write data from the FMPK 20 having a small value. Further, in step S19 in FIG. 12, the CPU 11 refers to the value of the state (lifetime) 208 and determines the number of the FMPK 20 for storing the write data out of the FMPK 20 having many values.
  • the FMPK 20 as the storage destination of the write data is determined based on the lifetime updated according to the actual writing, so the storage system It is possible to determine the storage destination of data appropriately according to the actual state of 3.
  • the remaining life information is managed as shown in the RAID group management table 210, and when the protocol interface corresponding to the write request is the object ID interface, the write request is supported.
  • the remaining life information in the FMPK 20 corresponding to the second nonvolatile memory device indicates When allocating the FMPK 20 with a low remaining life, and allocating the storage area for writing the data corresponding to the write request when the protocol interface is SCSI, it is sufficient for the storage area of the FMPK 20 corresponding to the second nonvolatile memory device Empty Without amount, it may be assigned FMPK20 remaining life often show remaining life information of the FMPK20 corresponding to the first non-volatile memory device.
  • the QLC FM chip 40 is used as the first nonvolatile memory, and the MLC and TLC FM chips 40 are used as the second nonvolatile memory.
  • the QLC and TLC FM chips are used.
  • the first nonvolatile memory 40 may be used as the first nonvolatile memory 40, and the MLC and SLC FM chips 40 may be used as the second nonvolatile memory.
  • the FM chip 40 may be distinguished according to the initial writing life.
  • a part or all of the processing performed by the CPU 11 or the CPU 31 may be performed by a hardware circuit.
  • the program in the above embodiment may be installed from a program source.
  • the program source may be a program distribution server or storage medium (eg, portable storage medium).

Abstract

A storage system 3 has a plurality of flash memory packages (FMPKs) 20 and a CPU 11. The plurality of FMPKs 20 include an FMPK 20 having a flash memory with a short write endurance and an FMPK 20 having a flash memory with a long write endurance. The CPU 11 determines whether an interface for a protocol of a write request is an object ID interface used when storing data with a low update probability or an SCSI interface used when storing data with a high update probability. If the interface is the object ID interface, the CPU 11 allocates, as a storing area to which write data is to be written, a storing area of the FMPK 20 of the flash memory with the short write endurance. If the interface is the SCSI interface, the CPU 11 allocates a storing area of the FMPK 20 of the flash memory with the long write endurance.

Description

ストレージシステム及びデータ格納制御方法Storage system and data storage control method
 本発明は、書き込み要求に対応する書き込みデータを格納するストレージシステム等に関する。 The present invention relates to a storage system or the like that stores write data corresponding to a write request.
 一般的に、ストレージシステムは、データを格納する複数の記憶デバイスと、その複数の記憶デバイスを制御するディスクコントローラとを有している。ディスクコントローラが、ホスト計算機に対して大容量のデータ格納空間を提供する。 Generally, a storage system has a plurality of storage devices for storing data, and a disk controller for controlling the plurality of storage devices. A disk controller provides a host computer with a large capacity data storage space.
 ストレージシステムに搭載される記憶デバイスとしては、近年では、不揮発性メモリ(例えば、FM:フラッシュメモリ)を有する不揮発性メモリデバイス(例えば、SSD:Solid State Drive)が使用されるようになってきている。 In recent years, as a storage device mounted on a storage system, a non-volatile memory device (for example, an SSD: Solid State Drive) having a non-volatile memory (for example, an FM: flash memory) has come to be used .
 例えば、NAND型のフラッシュメモリにおいては、その構成に起因して、データを書き込める回数に制限があるので、フラッシュメモリを有する不揮発性メモリデバイスにおいては書き込み寿命(Write Endurance)が存在する。この書き込み寿命は、使用する不揮発性メモリの種類等に応じて異なっている。 For example, in the NAND type flash memory, the number of times data can be written is limited due to the configuration thereof, and therefore, in a non-volatile memory device having the flash memory, there is a write endurance. The write life is different depending on the type of nonvolatile memory to be used.
 ストレージシステムにおいては、書き込み寿命の異なる複数の種類の不揮発性メモリデバイスが備えられる場合がある。不揮発性メモリデバイスは、書き込み寿命等の性能に応じてコストが異なる。このため、ストレージシステムでは、どのようにデータを不揮発性メモリデバイスに格納させるかを制御することが、ストレージシステムにおけるビットコストを低減する上で重要となっている。 In storage systems, multiple types of non-volatile memory devices with different write lives may be provided. Non-volatile memory devices vary in cost depending on their performance, such as write lifetime. Therefore, in a storage system, controlling how data is stored in a non-volatile memory device is important in reducing the bit cost in the storage system.
 例えば、データを格納する制御技術としては、複数の種類の不揮発性メモリを備えるストレージにおいて、テキストデータをリードエラー率が低いフラッシュメモリに格納し、イメージデータをリードエラー率が高いフラッシュメモリに格納するようにする技術が知られている(例えば、特許文献1参照)。 For example, as a control technique for storing data, text data is stored in a flash memory having a low read error rate, and image data is stored in a flash memory having a high read error rate in a storage provided with a plurality of nonvolatile memories. A technique to do this is known (see, for example, Patent Document 1).
 ストレージシステムとしては、ホストとの間で所定のブロックを単位としてデータを扱うブロックストレージと、オブジェクトを単位としてデータを扱うオブジェクトストレージとがある。 Storage systems include block storage that handles data in units of predetermined blocks with a host, and object storage that handles data in units of objects.
米国特許第8874835号明細書U.S. Pat. No. 8,874,835
 ストレージシステムをブロックストレージとするか、オブジェクトストレージとするかにより、ディスクコントローラの処理が異なるので、一般的には、ストレージシステムは、いずれかのストレージとして使用される。しかしながら、ストレージシステムを、ブロックストレージ及びオブジェクトストレージとして使用されることも考えられる。 Since the processing of the disk controller differs depending on whether the storage system is block storage or object storage, the storage system is generally used as any storage. However, it is also conceivable to use the storage system as block storage and object storage.
 ここで、ストレージシステムを、ブロックストレージ及びオブジェクトストレージとして使用されることを想定すると、両方のストレージとして動作するためにディスクコントローラは、ブロック単位のデータと、オブジェクト単位のデータとのそれぞれの入出力処理を行うための複数のプロトコルに対応する必要があるとともに、ブロック単位のデータと、オブジェクト単位のデータとを管理する機能が必要となる。 Here, assuming that the storage system is used as block storage and object storage, in order to operate as both storages, the disk controller performs I / O processing of data in block units and data in object units. It is necessary to correspond to a plurality of protocols for performing the above, and to have a function of managing data in units of blocks and data in units of objects.
 また、ストレージシステムにおいて、書き込み寿命の異なる複数の種類の不揮発性メモリデバイスを備えている場合には、ビットコストを低減するために、ブロック単位のデータと、オブジェクト単位のデータとの格納制御をどのように行うかが非常に重要となる。 In addition, when the storage system is provided with a plurality of types of nonvolatile memory devices having different write lives, which storage control of block unit data and object unit data is performed in order to reduce bit cost It will be very important how to do it.
 本発明は、上記事情に鑑みなされたものであり、その目的は、複数のプロトコルに従って格納されるデータを適切に格納でき、ビットコストを低減することのできる技術を提供することにある。 The present invention has been made in view of the above circumstances, and an object thereof is to provide a technology capable of appropriately storing data stored according to a plurality of protocols and reducing bit cost.
 上記目的を達成するため、一の観点に係るストレージシステムは、それぞれが不揮発性メモリを有する複数の不揮発性メモリデバイスと、複数の不揮発性メモリデバイスを管理する1以上のプロセッサであるプロセッサ部と、を有する。ストレージシステムの複数の不揮発性メモリデバイスには、初期時の書き込み寿命が少ない第1不揮発性メモリを有する第1不揮発性メモリデバイスと、初期時の書き込み寿命が多い第2不揮発性メモリを有する第2不揮発性メモリデバイスとが含まれる。 In order to achieve the above object, a storage system according to one aspect includes a plurality of non-volatile memory devices each having a non-volatile memory, and a processor unit that is one or more processors managing the plurality of non-volatile memory devices. Have. The plurality of non-volatile memory devices of the storage system includes a first non-volatile memory device having a first non-volatile memory having a short initial write life and a second non-volatile memory having a high initial write life. And a non-volatile memory device.
 プロセッサ部は、上位装置から受信した、所定の書き込みデータについての書き込み要求が対応しているプロトコルのインターフェースが、更新可能性が低いデータを格納する際に使用される傾向が高い第1プロトコルインターフェースであるか、更新可能性が高いデータを格納する際に使用される傾向が高い第2プロトコルインターフェースであるかを判定する。また、プロセッサ部は、書き込み要求が対応しているプロトコルのインターフェースが、第1プロトコルインターフェースである場合に、書き込み要求に対応する書き込みデータを書き込む記憶領域を割り当てる際に、第1不揮発性メモリデバイスの記憶領域を割り当てるようにし、書き込み要求が対応しているプロトコルのインターフェースが、第2プロトコルインターフェースである場合に、書き込み要求に対応する書き込みデータを書き込む記憶領域を割り当てる際に、第2不揮発性メモリデバイスの記憶領域を割り当てるようにし、割り当てた記憶領域に書き込みデータを書き込む。 The processor unit is a first protocol interface which is highly likely to be used when storing data with a low update possibility, the interface of the protocol to which the write request for the predetermined write data received from the host apparatus is compatible. It is determined whether the second protocol interface is highly likely to be used when storing data that is likely to be updated. When the processor unit allocates a storage area to which write data corresponding to the write request is to be written, when the interface of the protocol corresponding to the write request is the first protocol interface, the processor unit A second non-volatile memory device is allocated when a storage area is allocated and a storage area to which write data corresponding to the write request is to be written is allocated when the interface of the protocol corresponding to the write request is the second protocol interface. Allocating the storage area of and writing the write data to the allocated storage area.
 本発明によれば、複数のプロトコルに従って格納されるデータを適切に格納でき、ビットコストを低減することができる。 According to the present invention, data stored according to a plurality of protocols can be stored properly, and bit cost can be reduced.
図1は、第1実施形態の概要を説明する図である。FIG. 1 is a diagram for explaining the outline of the first embodiment. 図2は、第1実施形態に係る計算機システムの全体構成図である。FIG. 2 is an overall configuration diagram of a computer system according to the first embodiment. 図3は、第1実施形態に係るFMPKの構成図である。FIG. 3 is a block diagram of the FMPK according to the first embodiment. 図4は、第1実施形態に係るデータ制御テーブルの構成図である。FIG. 4 is a configuration diagram of a data control table according to the first embodiment. 図5は、第1実施形態に係るRAIDグループ管理テーブルの構成図である。FIG. 5 is a configuration diagram of a RAID group management table according to the first embodiment. 図6は、第1実施形態に係るドライブ管理テーブルの構成図である。FIG. 6 is a configuration diagram of a drive management table according to the first embodiment. 図7は、第1実施形態に係る書き込み先管理テーブルの構成図である。FIG. 7 is a configuration diagram of a write destination management table according to the first embodiment. 図8は、第1実施形態に係るオブジェクトデータ管理テーブルの構成図である。FIG. 8 is a configuration diagram of an object data management table according to the first embodiment. 図9は、第1実施形態に係るオブジェクトデータ書き込み先管理テーブルの構成図である。FIG. 9 is a configuration diagram of an object data write destination management table according to the first embodiment. 図10は、FMPKにおける論理ページと物理ページとのマッピングを説明する図である。FIG. 10 is a diagram for explaining the mapping between logical pages and physical pages in the FMPK. 図11は、第1実施形態に係るマッピングテーブルの構成図である。FIG. 11 is a configuration diagram of the mapping table according to the first embodiment. 図12は、第1実施形態に係るディスクコントローラによる入出力処理のフローチャートである。FIG. 12 is a flowchart of input / output processing by the disk controller according to the first embodiment. 図13は、第1実施形態に係るFMPKコントローラによるデータ書き込み処理のフローチャートである。FIG. 13 is a flowchart of data write processing by the FMPK controller according to the first embodiment. 図14は、第2実施形態に係るRAIDグループ管理テーブルの構成図である。FIG. 14 is a configuration diagram of a RAID group management table according to the second embodiment.
 いくつかの実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。 Several embodiments will be described with reference to the drawings. Note that the embodiments described below do not limit the invention according to the claims, and all of the elements described in the embodiments and the combinations thereof are limited to the essential means of the invention. Absent.
 以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。 In the following description, information may be described by the expression “AAA table”, but the information may be expressed by any data structure. That is, the "AAA table" can be called "AAA information" to indicate that the information does not depend on the data structure.
 また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。 Further, in the following description, the “processor unit” includes one or more processors. At least one processor is typically a microprocessor, such as a CPU (Central Processing Unit). Each of the one or more processors may be single core or multi-core. The processor may include hardware circuitry that performs some or all of the processing.
 また、プロセッサがプログラムを実行することにより構成される機能部による処理は、プロセッサが行う処理としてもよく、プロセッサを含む計算機が行う処理としてもよい。 Further, the processing performed by the functional unit configured by the processor executing a program may be processing performed by the processor or processing performed by a computer including the processor.
 また、プロセッサが行う処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。プロセッサが実行するプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。 Further, part or all of the processing performed by the processor may be performed by a hardware circuit. The program executed by the processor may be installed from a program source. The program source may be a program distribution server or storage medium (eg, portable storage medium).
 また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数の物理デバイス(典型的には同種の物理デバイス)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。 Also, in the following description, “RAID” is an abbreviation of Redundant Array of Independent (or Inexpensive) Disks. A RAID group is composed of a plurality of physical devices (typically physical devices of the same type), and stores data according to the RAID level associated with the RAID group. RAID groups may be referred to as parity groups. The parity group may be, for example, a RAID group that stores parity.
 まず、第1実施形態の概要について説明する。 First, an outline of the first embodiment will be described.
 図1は、第1実施形態の概要を説明する図である。 FIG. 1 is a diagram for explaining the outline of the first embodiment.
 計算機システム1において、ホスト計算機(ホストという)2がSAN(Storage Area Network)4を介して、ストレージシステム3に書き込み要求(Write要求)を送信する。ホスト2が送信する書き込み要求としては、オブジェクト単位でのデータの書き込みを行うプロトコルであるHTTP(Hypertext Transfer Protocol)のインターフェース(第1プロトコルインターフェース)に従う書き込み要求と、ブロック単位でのデータの書き込みを行うプロトコルのインターフェースであるSCSI(Small Computer System Interface:第2プロトコルインターフェース)に従う書き込み要求とがある。 In the computer system 1, a host computer (referred to as a host) 2 transmits a write request (Write request) to the storage system 3 via a SAN (Storage Area Network) 4. As a write request transmitted by the host 2, a write request according to an interface (first protocol interface) of HTTP (Hypertext Transfer Protocol), which is a protocol for writing data in object units, and data in block units are performed. There is a write request according to SCSI (Small Computer System Interface: second protocol interface) which is an interface of the protocol.
 HTTPに従う書き込み要求には、例えば、書き込みを要求するコマンド(例えば、Put)と、書き込むオブジェクトの固有のID(オブジェクトID)と、書き込み対象のデータ(書き込みデータ)とを含む。また、SCSIに従う書き込み要求には、例えば、書き込みを要求するコマンド(例えば、Write)と、ストレージシステム3の書き込み先のボリュームを示すLUN(Logical Unit Number)と、ボリュームにおける書き込み先のアドレスを示す論理ブロックアドレス(LBA:Logical Block Address)と、書き込み対象のデータ(書き込みデータ)とを含む。 The write request according to HTTP includes, for example, a command (for example, Put) requesting a write, a unique ID (object ID) of an object to be written, and data to be written (write data). In addition, for a write request according to SCSI, for example, a command (for example, Write) for requesting a write, a LUN (Logical Unit Number) indicating a write destination volume of the storage system 3, and a logic indicating an address of a write destination in the volume It includes a block address (LBA: Logical Block Address) and data to be written (write data).
 ストレージシステム3では、ディスクコントローラ10が、SAN4を介して書き込み要求を受領すると(図1の(1))、書き込み要求におけるOSI(Open Systems Interconnection)参照モデルのアプリケーション層のヘッダを参照し、書き込み要求のプロトコルインターフェース(I/F)が、HTTPに従うプロトコルI/F(ID I/F)であるか、SCSIに従うプロトコルI/F(SCSI I/F)であるかを判定する(図1の(2))。 In the storage system 3, when the disk controller 10 receives a write request via the SAN 4 ((1) in FIG. 1), the write request is referred to the application layer header of the Open Systems Interconnection (OSI) reference model in the write request. It is determined whether the protocol interface (I / F) of the protocol is a protocol I / F (ID I / F) according to HTTP or a protocol I / F (SCSI I / F) according to SCSI ((2 in FIG. 1). )).
 この結果、プロトコルI/Fが、ID I/Fである場合には、書き込みデータがオブジェクトデータであると判断できるので(図1の(3))、ディスクコントローラ10は、書き込み寿命(Write Endurance)が少ないNAND型フラッシュメモリチップ(FMチップ)を含むFMPK(フラッシュメモリパッケージ)20、例えば、1つのメモリセルに4ビットのデータを格納可能なQLC(Quad Level cell)方式のFMチップを含むFMPK20Aの記憶領域を、書き込みデータを格納する記憶領域として割り当て、この記憶領域に書き込みデータを格納させる(図1の(4))。 As a result, when the protocol I / F is the ID I / F, it can be determined that the write data is the object data ((3) in FIG. 1), so that the disk controller 10 has a write endurance. FMPK (flash memory package) 20 including a NAND flash memory chip (FM chip) having a small amount of memory, for example, an FMPK 20A including a QLC (Quad Level Cell) FM chip capable of storing 4-bit data in one memory cell. A storage area is assigned as a storage area for storing write data, and the write data is stored in this storage area ((4) in FIG. 1).
 一方、プロトコルI/Fが、SCSI I/Fである場合には、書き込みデータがブロック単位のデータ(ブロックデータ)であると判断できるので(図1の(5))、ディスクコントローラ10は、書き込み先の記憶領域を割り当てる必要がある場合には、書き込み寿命が多いNAND型フラッシュメモリチップを含むFMPK20、ここでは、例えば、1つのメモリセルに3値以上を格納可能なMLC(Multiple Level Cell)方式のFMチップを含むFMPK20Bや、1つのメモリセルに3ビットのデータを格納可能なTLC(Triple Level Cell)方式のFMチップを含むFMPK20Cの記憶領域を書き込みデータを格納する記憶領域として割り当てて、この記憶領域に書き込みデータを格納させる(図1の(6))。 On the other hand, if the protocol I / F is SCSI I / F, it can be determined that the write data is block unit data (block data) ((5) in FIG. 1), so the disk controller 10 writes When it is necessary to allocate the previous storage area, an FMPK 20 including a NAND flash memory chip with a long write life, here, for example, an MLC (Multiple Level Cell) method capable of storing three or more values in one memory cell. The memory area of the FMPK 20 C including the FM chip of F, and the FMPK 20 C including the FM chip of the Triple Level Cell (TLC) method capable of storing 3-bit data in one memory cell is allocated as a storage area for storing write data. Write data to storage area It is paid (in FIG. 1 (6)).
 このように、プロトコルI/Fに基づいて、書き込みデータを格納する記憶領域に割り当てるFMPK20の種類を変えるのは、各プロトコルが対象とするオブジェクトデータとブロックデータとの使用状況の違いによる。 As described above, changing the type of FMPK 20 allocated to the storage area for storing the write data based on the protocol I / F is due to the difference in the usage status of the object data and the block data targeted by each protocol.
 すなわち、オブジェクトデータは、基本的には更新が発生しない傾向が高く、もし、更新が発生した場合であっても、データを上書きするのではなく、新たなデータの全体を書き込むこととなる。このため、同一の記憶領域に対する書き換え回数が抑えられる。したがって、オブジェクトデータを、書き込み寿命が少ないFMチップを含むFMPKに格納しても、FMPKの書き込み寿命の減少を抑えることができる。このことから、HTTPのインターフェースは、更新可能性が低いデータを格納する際に使用される傾向が高いプロトコルインターフェースといえる。 That is, object data is basically not likely to be updated, and even if an update occurs, the entire new data is written instead of overwriting the data. Therefore, the number of rewrites to the same storage area can be suppressed. Therefore, even if the object data is stored in the FMPK including the FM chip having a short writing lifetime, the decrease in the writing lifetime of the FMPK can be suppressed. From this, it can be said that the HTTP interface is a protocol interface that tends to be used when storing data with low updateability.
 一方、ブロックデータは、頻繁に更新が発生する傾向が高く、記憶領域に対する書き換え回数が増加する。このため、ブロックデータを書き込み寿命の少ないFMチップを含むFMPKに格納してしまうと、FMPKの書き込み寿命の減少を引き起こしてしまうので、ブロックデータは、書き込み寿命の多いFMチップを含むFMPKに格納することが好ましい。このことから、SCSIは、更新可能性が高いデータを格納する際に使用される傾向が高いプロトコルインターフェースといえる。 On the other hand, block data is likely to be frequently updated, and the number of rewrites to the storage area increases. For this reason, storing block data in the FMPK including the FM chip having a short writing life causes a decrease in the writing life of the FMPK, so the block data is stored in the FMPK including the FM chip having a long writing life. Is preferred. From this, SCSI can be said to be a protocol interface that is likely to be used when storing data that is likely to be updated.
 次に、第1実施形態について詳細に説明する。 Next, the first embodiment will be described in detail.
 図2は、第1実施形態に係る計算機システムの全体構成図である。 FIG. 2 is an overall configuration diagram of a computer system according to the first embodiment.
 計算機システム1は、1以上の上位装置の一例としてのホスト2と、1以上のストレージシステム3と、ホスト2とストレージシステム3とを接続するSAN4とを備える。SAN4を別の種類の通信ネットワークとしてもよい。 The computer system 1 includes a host 2 as an example of one or more upper-level devices, one or more storage systems 3, and a SAN 4 that connects the host 2 and the storage system 3. The SAN 4 may be another type of communication network.
 ホスト2は、ストレージシステム3に対するI/O要求、すなわち、ストレージシステム3に格納されているデータを読み出す読み出し要求(Read要求)や、ストレージシステム3にデータを書き込む書き込み要求(Write要求)をストレージシステム3に送信する。ここで、ホスト2は、書き込み要求として、ブロック単位でのデータの書き込みを行うプロトコルのインターフェースであるSCSIに従う書き込み要求と、オブジェクト単位でのデータの書き込みを行うプロトコルであるHTTPのインターフェースに従う書き込み要求とを送信することができる。 The host 2 performs an I / O request to the storage system 3, that is, a read request to read data stored in the storage system 3 (Read request), and a write request to write data to the storage system 3 (Write request) Send to 3 Here, as a write request, the host 2 writes a write request according to the SCSI, which is an interface of a protocol for writing data in block units, and a write request according to an HTTP interface, which is a protocol for writing data in object units. Can be sent.
 ストレージシステム3は、ディスクコントローラ10と、複数のFMPK20とを有する。 The storage system 3 has a disk controller 10 and a plurality of FMPKs 20.
 FMPK20は、ホスト2などの上位装置からの書き込みデータを格納するための記憶デバイスであり、フラッシュメモリ等の不揮発性メモリを記憶媒体として採用した記憶デバイス(不揮発性メモリデバイス)である。本実施形態では、複数のFMPK20には、使用する不揮発性メモリの種類や性能等により、書き換え寿命や、入出力性能の異なる複数の種類のFMPKが存在している。 The FMPK 20 is a storage device for storing write data from a host apparatus such as the host 2 and is a storage device (nonvolatile memory device) adopting a nonvolatile memory such as a flash memory as a storage medium. In the present embodiment, a plurality of types of FMPKs having different rewrite lifetimes and input / output performances exist in the plurality of FMPKs 20 depending on the type and performance of the non-volatile memory used.
 FMPK20の内部構成は後述する。FMPK20は、例えば、SAS(Serial Attached SCSI)規格に従う伝送線(SASリンク)や、PCI(Peripheral Component Interconnect)規格に従う伝送線(PCIリンク)などによって、ディスクコントローラ10と接続されている。 The internal configuration of the FMPK 20 will be described later. The FMPK 20 is connected to the disk controller 10 by, for example, 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.
 ディスクコントローラ10は、プロセッサ部の一例としてのCPU(Central Processing Unit)11、ホストインターフェース(ホストI/F)12、ディスクインターフェース(ディスクI/F)13、メモリ14、及び内部バス15を有する。内部バス15は、CPU11、ホストI/F12、ディスクI/F13、及びメモリ14を相互に接続する。図2においては、ディスクコントローラ10の各構成要素がそれぞれ1つだけ示されているが、高性能化及び高可用性の確保のため、これらの構成要素の少なくとも1つがディスクコントローラ10内に複数備えられてもよい。また、ディスクコントローラ10は、内部バス15ではなく、内部スイッチを介して各構成要素が相互接続されるようにしてもよい。 The disk controller 10 includes a central processing unit (CPU) 11 as an example of a processor unit, a host interface (host I / F) 12, a disk interface (disk I / F) 13, a memory 14, and an internal bus 15. The internal bus 15 mutually connects the CPU 11, the host I / F 12, the disk I / F 13 and the memory 14. Although only one component of the disk controller 10 is shown in FIG. 2, at least one of these components is provided in the disk controller 10 in order to achieve high performance and high availability. May be Further, in the disk controller 10, each component may be interconnected via an internal switch instead of the internal bus 15.
 ホストI/F12は、ホスト2とディスクコントローラ10との間のデータ転送経路で用いられる通信プロトコル(例えば、ファイバチャネル)と、ディスクコントローラ10内部で用いられる通信プロトコルとのプロトコル変換、ホスト2とディスクコントローラ10との間のデータの転送の処理を行う。本実施形態では、ホストI/F12は、データをオブジェクト単位で格納するために使用するオブジェクトIDプロトコル(第1プロトコル)と、データを所定のブロック単位で格納するために使用するSCSIプロトコル(第2プロトコル)と、に従って通信を行うことができる。 The host I / F 12 converts the protocol between the communication protocol (for example, fiber channel) used in the data transfer path between the host 2 and the disk controller 10 and the communication protocol used inside the disk controller 10, host 2 and disk Processing of data transfer with the controller 10 is performed. In this embodiment, the host I / F 12 uses an object ID protocol (first protocol) used to store data in object units and a SCSI protocol (second protocol) used to store data in predetermined blocks. Communication can be performed according to the protocol.
 ディスクI/F13は、FMPK20が用いるプロトコル(例えば、SAS)と、ディスクコントローラ10内部で用いられる通信プロトコル(例えば、PCI-Express)とのプロトコル変換と、ディスクコントローラ10とFMPK20との間のデータの転送(リード、ライト)の処理を行う。 The disk I / F 13 performs protocol conversion between a protocol (for example, SAS) used by the FMPK 20 and a communication protocol (for example, PCI-Express) used inside the disk controller 10, and data between the disk controller 10 and the FMPK 20. Perform transfer (read, write) processing.
 CPU11は、ストレージシステム3の各種制御を行う。メモリ14は、例えば、DRAM、SRAM等の揮発性記憶媒体で構成されてもよく、不揮発性メモリで構成されてもよい。メモリ14は、CPU11が実行するプログラムや、CPU11が使用するストレージシステム3の管理情報を記憶する。また、メモリ14は、FMPK20に対するI/O対象のデータ(書き込みデータ、読み出しデータ)を一時的に記憶するためにも用いられる。本実施形態では、メモリ14は、ディスクコントローラ10による後述する処理を実行するためにCPU11が実行するプログラムを記憶している。メモリ14が記憶する管理情報としては、例えば、後述するデータ制御テーブル100(図4参照)、RAIDグループ管理テーブル200(図5参照)、ドライブ管理テーブル300(図6参照)、書き込み先管理テーブル400(図7参照)、オブジェクトデータ管理テーブル500(図8参照)、及びオブジェクトデータ書き込み先管理テーブル600(図9参照)を含む。 The CPU 11 performs various controls of the storage system 3. The memory 14 may be configured by, for example, a volatile storage medium such as a DRAM or an SRAM, or may be configured by a non-volatile memory. The memory 14 stores programs executed by the CPU 11 and management information of the storage system 3 used by the CPU 11. The memory 14 is also used to temporarily store data (write data, read data) to be subjected to I / O to the FMPK 20. In the present embodiment, the memory 14 stores a program executed by the CPU 11 in order to execute processing to be described later by the disk controller 10. As management information stored in the memory 14, for example, a data control table 100 (see FIG. 4), a RAID group management table 200 (see FIG. 5), a drive management table 300 (see FIG. 6), and a write destination management table 400 described later. An object data management table 500 (see FIG. 8) and an object data write destination management table 600 (see FIG. 9) are included (see FIG. 7).
 次に、FMPK20について詳細に説明する。 Next, the FMPK 20 will be described in detail.
 図3は、第1実施形態に係るFMPKの構成図である。 FIG. 3 is a block diagram of the FMPK according to the first embodiment.
 FMPK20は、FMPKコントローラ30と、複数のFMチップ40とを備える。FMPKコントローラ30は、プロセッサの一例としてのCPU31、ディスクI/F32、FMチップI/F33、及びメモリ34を有し、これらは内部バス35を介して相互接続されている。 The FMPK 20 includes an FMPK controller 30 and a plurality of FM chips 40. The FMPK controller 30 has a CPU 31 as an example of a processor, a disk I / F 32, an FM chip I / F 33, and a memory 34, which are interconnected via an internal bus 35.
 ディスクI/F32は、FMPK20とディスクコントローラ10との間の通信を行うためのインタフェースコントローラである。ディスクI/F32は、伝送線(SASリンクや、PCIリンク)を介してディスクコントローラ10のディスクI/F13と接続される。 The disk I / F 32 is an interface controller for performing communication between the FMPK 20 and the disk controller 10. The disk I / F 32 is connected to the disk I / F 13 of the disk controller 10 via a transmission line (SAS link or PCI link).
 FMチップI/F33は、FMPKコントローラ30とFMチップ40と間の通信を行うためのインタフェースコントローラである。FMチップI/F33は、伝送線を介してFMチップ40と接続される。 The FM chip I / F 33 is an interface controller for communicating between the FMPK controller 30 and the FM chip 40. The FM chip I / F 33 is connected to the FM chip 40 via a transmission line.
 CPU31は、ディスクコントローラ10から到来する各種コマンドに係る処理等を行う。メモリ34は、CPU31が実行するプログラムや、各種管理情報を記憶する。メモリ34は、DRAM、SRAM等の揮発性記憶媒体で構成されてもよく、不揮発性メモリで構成されてもよい。メモリ34には、後述する、論理・物理マッピングテーブル500(図11参照)が格納される。 The CPU 31 performs processing and the like related to various commands received from the disk controller 10. The memory 34 stores programs executed by the CPU 31 and various management information. The memory 34 may be configured by a volatile storage medium such as a DRAM, an SRAM, or the like, and may be configured by a non-volatile memory. The memory 34 stores a logical / physical mapping table 500 (see FIG. 11), which will be described later.
 FMチップ40は、例えば、NAND型フラッシュメモリ等の不揮発性半導体メモリチップである。FMチップ40としては、例えば、QLC方式のFMチップや、TLC方式のFMチップや、SLC(Single Level Cell)方式のFMチップなどがある。本実施形態では、同一のFMPK20においては、同一の方式のFMチップ40が搭載されている。FMチップ40の初期時における書き込み寿命は、多い方から、一般的には、SLC方式、MLC方式、TLC方式、QLC方式の順番となっている。本実施形態では、例えば、QLC方式のFMチップ40が第1不揮発性メモリに相当し、MLC方式及びTLC方式のFMチップ40が、第2不揮発性メモリに相当する。したがって、QLC方式のFMチップ40を備えるFMPK20が第1不揮発性メモリデバイスに相当し、MLC方式、又はTLC方式のFMチップ40を備えるFMPK20が、第2不揮発性メモリデバイスに相当する。 The FM chip 40 is, for example, a nonvolatile semiconductor memory chip such as a NAND flash memory. Examples of the FM chip 40 include a QLC FM chip, a TLC FM chip, and a SLC (Single Level Cell) FM chip. In the present embodiment, in the same FMPK 20, the FM chip 40 of the same system is mounted. Generally, the writing life of the FM chip 40 at the initial stage is in the order of the SLC method, the MLC method, the TLC method, and the QLC method, in descending order. In the present embodiment, for example, the QLC FM chip 40 corresponds to the first non-volatile memory, and the MLC and TLC FM chips 40 correspond to the second non-volatile memory. Therefore, the FMPK 20 including the QLC FM chip 40 corresponds to the first non-volatile memory device, and the FMPK 20 including the MLC or TLC FM chip 40 corresponds to the second non-volatile memory device.
 次に、ディスクコントローラ10のメモリ14に管理されている管理情報について詳細に説明する。 Next, the management information managed in the memory 14 of the disk controller 10 will be described in detail.
 まず、データ制御テーブル100について説明する。 First, the data control table 100 will be described.
 図4は、第1実施形態に係るデータ制御テーブルの構成図である。 FIG. 4 is a configuration diagram of a data control table according to the first embodiment.
 データ制御テーブル100は、ホスト2から受け取ったI/O要求毎に、対応するエントリを格納する。データ制御テーブル100のエントリは、エントリ番号101と、タイムスタンプ102と、方向103と、I/F104と、コマンド105と、データ106とのフィールドを含む。 The data control table 100 stores a corresponding entry for each I / O request received from the host 2. The entries of the data control table 100 include fields of an entry number 101, a time stamp 102, a direction 103, an I / F 104, a command 105, and data 106.
 エントリ番号101には、エントリを識別する番号が格納される。タイムスタンプ102には、エントリに対応するI/O要求が受信された日時が格納される。方向103には、I/O要求の方向、すなわち、ストレージシステム3への書き込み(Write)なのか、ストレージシステム3からの読出し(Read)なのかが格納される。I/F104には、I/O要求におけるインターフェースの種類が格納される。本実施形態では、I/F104には、I/O要求がオブジェクトIDプロトコルに従うインターフェースであれば、IDが格納され、SCSIに従うインターフェースであれば、SCSIが格納される。コマンド105には、I/O要求に対応するコマンドが格納される。例えば、オブジェクトIDプロトコルに従うインターフェースを用いた書き込み要求であれば、Putが格納され、オブジェクトIDプロトコルに従うインターフェースを用いた読み出し要求であれば、Getが格納され、SCSIプロトコルに従うインターフェースを用いた書き込み要求であれば、Writeが格納され、SCSIプロトコルに従うインターフェースを用いた読み出し要求であれば、Readが格納される。データ106には、I/O要求に対応する読み出しデータ、書き込みデータが格納される。 The entry number 101 stores a number for identifying an entry. The time stamp 102 stores the date and time when the I / O request corresponding to the entry is received. The direction 103 stores the direction of the I / O request, that is, whether it is a write (Write) to the storage system 3 or a read (Read) from the storage system 3. The I / F 104 stores the type of interface in the I / O request. In the present embodiment, if the I / O request is an interface conforming to the object ID protocol, an ID is stored in the I / F 104, and if it is an interface conforming to the SCSI, SCSI is stored. The command 105 stores a command corresponding to the I / O request. For example, in the case of a write request using an interface according to the object ID protocol, Put is stored, and in the case of a read request using an interface according to the object ID protocol, Get is stored, and in a write request using an interface according to the SCSI protocol. If there is, Write is stored, and if it is a read request using an interface conforming to the SCSI protocol, Read is stored. The data 106 stores read data and write data corresponding to the I / O request.
 次に、RAIDグループ管理テーブル200について説明する。 Next, the RAID group management table 200 will be described.
 図5は、第1実施形態に係るRAIDグループ管理テーブルの構成図である。 FIG. 5 is a configuration diagram of a RAID group management table according to the first embodiment.
 RAIDグループ管理テーブル200は、ストレージシステム3で管理されているRAIDグループの情報を管理するエントリを格納する。RAIDグループ管理テーブル200のエントリは、書き込み寿命(Write Endurance)201と、RAIDグループ番号202と、RAID構成203と、ドライブ番号204と、フラッシュメモリ種類(FM Type)205と、用途206と、RAIDグループ論理アドレス207とのフィールドを含む。 The RAID group management table 200 stores an entry for managing information on RAID groups managed by the storage system 3. The entries in the RAID group management table 200 are: write endurance 201, RAID group number 202, RAID configuration 203, drive number 204, flash memory type (FM Type) 205, use 206, RAID group It includes fields with the logical address 207.
 書き込み寿命201には、エントリに対応するRAIDグループを構成するFMPKについての初期の書き込み寿命の多少に関する情報が格納される。本実施形態では、RAIDグループを構成するFMPK20の初期の書き込み寿命が多い場合には、「多」が設定され、初期の書き込み寿命が少ない場合には、「少」が設定される。RAIDグループ番号202には、エントリに対応するRAIDグループを識別する番号(RAIDグループ番号)が格納される。RAID構成203には、エントリに対応するRAIDグループの構成が格納される。RAIDグループの構成としては、例えば、RAID0~6のいずれかが設定される。ドライブ番号204には、エントリに対応するRAIDグループを構成するドライブ(ここでは、FMPK20)の番号が格納される。フラッシュメモリ種類205には、エントリに対応するRAIDグループを構成するFMPK20のFMチップ40の種類が格納される。FMチップ40の種類としては、例えば、QLC,TLC,SLC等がある。用途206には、エントリに対応するRAIDグループのFMPK20に格納させるデータの用途が格納される。データの用途としては、例えば、オブジェクトデータ用や、ブロックデータ用等がある。RAIDグループ論理アドレス207には、エントリに対応するドライブの記憶領域についてのRAIDグループにおける論理アドレス(RAIDグループ論理アドレス)が格納される。 The write life 201 stores information on the extent of the initial write life for the FMPKs that make up the RAID group corresponding to the entry. In this embodiment, “many” is set when the initial write life of the FMPK 20 configuring the RAID group is long, and “low” is set when the initial write life is short. The RAID group number 202 stores a number (RAID group number) for identifying the RAID group corresponding to the entry. The RAID configuration 203 stores the configuration of the RAID group corresponding to the entry. For example, one of RAIDs 0 to 6 is set as the configuration of the RAID group. The drive number 204 stores the number of the drive (here, the FMPK 20) that configures the RAID group corresponding to the entry. The flash memory type 205 stores the type of the FM chip 40 of the FMPK 20 that configures the RAID group corresponding to the entry. Examples of the type of the FM chip 40 include QLC, TLC, and SLC. The application 206 stores the application of data stored in the FMPK 20 of the RAID group corresponding to the entry. The application of data is, for example, for object data or block data. The RAID group logical address 207 stores a logical address (RAID group logical address) in the RAID group for the storage area of the drive corresponding to the entry.
 次に、ドライブ管理テーブル300について説明する。 Next, the drive management table 300 will be described.
 図6は、第1実施形態に係るドライブ管理テーブルの構成図である。 FIG. 6 is a configuration diagram of a drive management table according to the first embodiment.
 ドライブ管理テーブル300は、FMPK20におけるRAIDグループ論理アドレスと、FMPK20の論理アドレスとの対応関係を管理するテーブルである。ドライブ管理テーブル300のエントリは、ドライブ番号301と、RAIDグループ論理アドレス302と、FMPK論理アドレス303とのフィールドを含む。 The drive management table 300 is a table for managing the correspondence between the RAID group logical address in the FMPK 20 and the logical address of the FMPK 20. The entries of the drive management table 300 include fields of a drive number 301, a RAID group logical address 302, and an FMPK logical address 303.
 ドライブ番号301には、FMPK20を識別する番号(ドライブ番号、FMPK番号)が格納される。RAIDグループ論理アドレス302には、RAIDグループにおける論理アドレス(RAIDグループ論理アドレス)が格納される。FMPK論理アドレス303には、RAIDグループ論理アドレスに対応するFMPK20の論理アドレス(FMPK論理アドレス)が格納される。 The drive number 301 stores a number (drive number, FMPK number) for identifying the FMPK 20. The RAID group logical address 302 stores a logical address (RAID group logical address) in the RAID group. The FMPK logical address 303 stores the logical address (FMPK logical address) of the FMPK 20 corresponding to the RAID group logical address.
 次に、書き込み先管理テーブル400について説明する。 Next, the write destination management table 400 will be described.
 図7は、第1実施形態に係る書き込み先管理テーブルの構成図である。 FIG. 7 is a configuration diagram of a write destination management table according to the first embodiment.
 書き込み先管理テーブル400は、或る仮想ボリューム(例えば、Thin Provisioningに従う仮想ボリューム:対象ボリューム)に対する書き込みデータの書き込み先を管理するテーブルである。書き込み先管理テーブル400のエントリは、対象ボリュームアドレス401と、RAIDグループ番号402と、RAIDグループ論理アドレス403とのフィールドを含む。対象ボリュームアドレス401には、対象ボリュームにおける各アドレスが格納される。RAIDグループ番号402には、書き込みデータを格納するRAIDグループの番号が格納される。RAIDグループ論理アドレス403には、書き込みデータが格納されるRAIDグループの論理アドレス(RAIDグループ論理アドレス)が格納される。なお、対象ボリュームのアドレスに対して、RAIDグループの記憶領域が割り当てられていない場合には、対象ボリュームのアドレスに対応するエントリの、RAIDグループ番号402及びRAIDグループ論理アドレス403には、何も設定されていない。この書き込み先管理テーブル400において、複数のボリュームに関する書き込み先を管理するようにしてもよく、この場合には、エントリに、ボリュームの識別情報を格納するフィールドをさらに備えるようにすればよい。 The write destination management table 400 is a table for managing a write destination of write data to a certain virtual volume (for example, virtual volume according to Thin Provisioning: target volume). The entry of the write destination management table 400 includes fields of a target volume address 401, a RAID group number 402, and a RAID group logical address 403. The target volume address 401 stores each address in the target volume. The RAID group number 402 stores the number of the RAID group that stores the write data. The RAID group logical address 403 stores the logical address (RAID group logical address) of the RAID group in which the write data is stored. If no RAID group storage area is allocated to the target volume address, nothing is set in the RAID group number 402 and the RAID group logical address 403 of the entry corresponding to the target volume address. It has not been. In the write destination management table 400, write destinations related to a plurality of volumes may be managed. In this case, the entry may further include a field for storing identification information of volumes.
 ここで、対象ボリュームの或るアドレスのデータが格納されているFMPK20のドライブ番号は、書き込み先管理テーブル400のRAIDグループ番号及びRAIDグループ論理アドレスを用いて、RAIDグループ管理テーブル200を参照することにより、特定することができ、対象ボリュームの或るアドレスのデータが格納されているFMPK20のアドレス(FMPK論理アドレス)は、特定したドライブ番号と、RAIDグループ論理アドレスとを用いて、ドライブ管理テーブル300を参照することにより特定することができる。 Here, by referring to the RAID group management table 200 using the RAID group number of the write destination management table 400 and the RAID group logical address, the drive number of the FMPK 20 in which the data of a certain address of the target volume is stored. The address of the FMPK 20 (FMPK logical address) in which data of a certain address of the target volume can be identified can be identified using the identified drive number and the RAID group logical address, and the drive management table 300 It can be identified by reference.
 次に、オブジェクトデータ管理テーブル500について説明する。 Next, the object data management table 500 will be described.
 図8は、第1実施形態に係るオブジェクトデータ管理テーブルの構成図である。 FIG. 8 is a configuration diagram of an object data management table according to the first embodiment.
 オブジェクトデータ管理テーブル500は、ストレージシステム3に格納したオブジェクトを管理するテーブルであり、オブジェクト毎に対応するエントリが格納される。オブジェクトデータ管理テーブル500のエントリは、オブジェクトID501と、オブジェクト名502と、長さ503と、種類504とのフィールドを含む。 The object data management table 500 is a table for managing objects stored in the storage system 3, and stores entries corresponding to each object. An entry of the object data management table 500 includes fields of an object ID 501, an object name 502, a length 503, and a type 504.
 オブジェクトID501には、エントリに対応するオブジェクトを識別する情報(オブジェクトID)が格納される。オブジェクト名502には、エントリに対応するオブジェクトの名前が格納される。長さ503には、エントリに対応するオブジェクトの長さ(データ長)が格納される。種類504には、オブジェクトの種類が格納される。 The object ID 501 stores information (object ID) for identifying an object corresponding to the entry. The object name 502 stores the name of the object corresponding to the entry. In the length 503, the length (data length) of the object corresponding to the entry is stored. The type 504 stores the type of object.
 次に、オブジェクトデータ書き込み先管理テーブル600について説明する。 Next, the object data write destination management table 600 will be described.
 図9は、第1実施形態に係るオブジェクトデータ書き込み先管理テーブルの構成図である。 FIG. 9 is a configuration diagram of an object data write destination management table according to the first embodiment.
 オブジェクトデータ書き込み先管理テーブル600は、オブジェクトのデータ(オブジェクトデータ)の書き込み先を管理するテーブルであり、オブジェクト毎に対応するエントリが格納される。オブジェクトデータ書き込み先管理テーブル600のエントリは、オブジェクトID601と、RAIDグループ番号602と、RAIDグループ論理アドレス603とのフィールドを含む。 The object data write destination management table 600 is a table for managing the write destination of object data (object data), and stores an entry corresponding to each object. The entries of the object data write destination management table 600 include fields of an object ID 601, a RAID group number 602, and a RAID group logical address 603.
 オブジェクトID601には、オブジェクトを識別するオブジェクトIDが格納される。RAIDグループ番号602には、オブジェクトデータを格納するRAIDグループの番号が格納される。RAIDグループ論理アドレス603には、オブジェクトデータが格納されるRAIDグループの論理アドレス(RAIDグループ論理アドレス)が格納される。 The object ID 601 stores an object ID for identifying an object. The RAID group number 602 stores the number of the RAID group storing the object data. The RAID group logical address 603 stores the logical address (RAID group logical address) of the RAID group in which the object data is stored.
 ここで、或るオブジェクトのデータが格納されているFMPK20のドライブ番号は、オブジェクトデータ書き込み先管理テーブル600のRAIDグループ番号及びRAIDグループ論理アドレスを用いて、RAIDグループ管理テーブル200を参照することにより、特定することができ、或るオブジェクトのデータが格納されているFMPK20のアドレス(FMPK論理アドレス)は、特定したドライブ番号と、RAIDグループ論理アドレスとを用いて、ドライブ管理テーブル300を参照することにより特定することができる。 Here, the drive number of the FMPK 20 in which data of a certain object is stored is referred to the RAID group management table 200 using the RAID group number of the object data write destination management table 600 and the RAID group logical address. The address of the FMPK 20 (FMPK logical address) in which data of a certain object can be identified is stored by referring to the drive management table 300 using the identified drive number and the RAID group logical address. It can be identified.
 次に、FMPK20における論理アドレスと、物理アドレスとのマッピングについて説明する。 Next, mapping between logical addresses and physical addresses in the FMPK 20 will be described.
 図10は、FMPKにおける論理ページと物理ページとのマッピングを説明する図である。 FIG. 10 is a diagram for explaining the mapping between logical pages and physical pages in the FMPK.
 ディスクコントローラ10では、FMPK20における論理的な記録領域50が論理アドレス(FMPK論理アドレス)で管理されている。FMPK20では、論理的な記憶領域50は、所定の大きさの論理ページ51を単位として管理されている。論理ページ51は、FMPK20の物理ブロック52内の物理ページ53にマッピングされる。 In the disk controller 10, the logical recording area 50 in the FMPK 20 is managed by a logical address (FMPK logical address). In the FMPK 20, the logical storage area 50 is managed in units of logical pages 51 of a predetermined size. The logical page 51 is mapped to the physical page 53 in the physical block 52 of the FMPK 20.
 FMPK20の論理アドレスと、物理アドレスとは、論理・物理マッピングテーブル700で管理される。 The logical address of the FMPK 20 and the physical address are managed by the logical-physical mapping table 700.
 図11は、第1実施形態に係る論理・物理マッピングテーブルの構成図である。 FIG. 11 is a configuration diagram of a logical / physical mapping table according to the first embodiment.
 論理・物理マッピングテーブル700は、FMPK20における論理アドレスと、物理アドレスとの対応関係を示すエントリを格納する。 The logical / physical mapping table 700 stores an entry indicating the correspondence between the logical address in the FMPK 20 and the physical address.
 エントリは、論理アドレス701と、物理アドレス702とのフィールドを格納する。論理アドレス701には、FMPK20における論理アドレス(FMPK論理アドレス)が格納される。物理アドレス702には、エントリの論理アドレス701に格納されたFMPK論理アドレスに対応する物理アドレスが格納される。 The entry stores fields of a logical address 701 and a physical address 702. The logical address 701 stores the logical address (FMPK logical address) in the FMPK 20. The physical address 702 stores the physical address corresponding to the FMPK logical address stored in the logical address 701 of the entry.
 次に、本実施形態に係るストレージシステム3の処理動作について説明する。 Next, the processing operation of the storage system 3 according to the present embodiment will be described.
 図12は、第1実施形態に係るディスクコントローラによる入出力処理のフローチャートである。 FIG. 12 is a flowchart of input / output processing by the disk controller according to the first embodiment.
 入出力処理は、ディスクコントローラ10がSAN4を介して、I/O要求を受領した場合に実行される。 The input / output process is performed when the disk controller 10 receives an I / O request via the SAN 4.
 ディスクコントローラ10のCPU11は、ホストI/F12を介してI/O要求を受領すると、受領したI/O要求がWrite要求(書き込み要求)か否かを判定する(ステップS11)。 When the CPU 11 of the disk controller 10 receives an I / O request via the host I / F 12, the CPU 11 determines whether the received I / O request is a write request (write request) (step S11).
 この結果、受領したI/O要求がWrite要求でない場合(ステップS11:No)、すなわち、Read要求である場合には、CPU11は、I/O要求に従って、Read処理を実行し(ステップS12)、入出力処理を終了する。 As a result, if the received I / O request is not a write request (step S11: No), that is, if it is a read request, the CPU 11 executes read processing according to the I / O request (step S12), End input / output processing.
 一方、受領したI/O要求がWrite要求である場合(ステップS11:Yes)には、CPU11は、ストレージシステム3に、書き込み寿命の異なるFMPK20があるか否かを判定する(ステップS13)。 On the other hand, if the received I / O request is a write request (step S11: Yes), the CPU 11 determines whether the storage system 3 has an FMPK 20 having a different write life (step S13).
 この結果、書き込み寿命が異なるFMPK20がない場合(ステップS13:No)には、どのFMPK20にデータを書き込んでも書き込み寿命は大きく変わらないことを意味しているので、例えば、書き込み要求のI/FがSCSIであって、書き込み要求に対応するボリュームのアドレスに書き込みデータを格納するFMPK20の記憶領域が割り当てられておらず、新たに記憶領域を割り当てる必要がある場合には、CPU11は、記憶領域を割り当てるFMPK20の番号(FMPK番号)を決定するとともに、このFMPK20の記憶領域に対応する、割り当てるRAIDグループ論理アドレスを決定し、書き込み先管理テーブル400の書き込み要求に対応するボリュームのアドレスのエントリに、決定したFMPK番号のFMPK20が属するRAIDグループ番号と、RAIDグループ論理アドレスとを格納する(ステップS14)。なお、書き込み要求に対応するボリュームのアドレスに書き込みデータを格納するFMPK20の記憶領域が割り当てられているか否かは、そのボリュームのアドレスに対応する書き込み先管理テーブル400のエントリのRAIDグループ論理アドレス403を参照することにより判定することができる。 As a result, when there is no FMPK 20 having a different write life (step S 13: No), it means that the write life does not greatly change even if data is written to any FMPK 20. For example, the I / F of the write request When the storage area of the FMPK 20 for storing the write data is not allocated to the address of the volume corresponding to the write request and the storage area needs to be newly allocated, the CPU 11 allocates the storage area. The FMPK 20 number (FMPK number) is determined, the RAID group logical address to be assigned corresponding to the storage area of this FMPK 20 is determined, and the entry of the address of the volume corresponding to the write request of the write destination management table 400 is decided. FMPK number of MPK20 is a RAID group number belonging stores the RAID group logical address (step S14). Whether or not the storage area of the FMPK 20 for storing write data is allocated to the address of the volume corresponding to the write request is determined by the RAID group logical address 403 of the entry of the write destination management table 400 corresponding to the address of the volume. It can be determined by reference.
 また、例えば、書き込み要求のI/FがIDである場合には、CPU11は、書き込み要求に対応するオブジェクトデータについてオブジェクトデータ管理テーブル500に登録し、記憶領域を割り当てるFMPK20のFMPK番号と、このFMPK20の記憶領域に対応する、割り当てるRAIDグループ論理アドレスを決定し、オブジェクトデータ書き込み先管理テーブル600にこのオブジェクトデータに対応するエントリを追加し、このエントリに、決定したFMPK20が属するRAIDグループ番号と、RAIDグループ論理アドレスと、を格納する(ステップS14)。 Further, for example, when the I / F of the write request is an ID, the CPU 11 registers the object data corresponding to the write request in the object data management table 500, and assigns the storage area to the FMPK 20. The RAID group logical address to be assigned corresponding to the storage area of is determined, the entry corresponding to this object data is added to the object data write destination management table 600, and the RAID group number to which the determined FMPK 20 belongs and the RAID The group logical address is stored (step S14).
 次いで、CPU11は、ドライブ管理テーブル300に基づいて、割り当てられたRAIDグループ論理アドレスに対応するFMPK論理アドレスを特定し、決定したFMPK20に対して、特定したFMPK論理アドレスを指定した、書き込みデータの書き込み要求を発行し(ステップS15)、入出力処理を終了する。なお、CPU11から書き込み要求を受け取ったFMPK20では、書き込みデータが書き込まれることとなる。 Next, the CPU 11 specifies the FMPK logical address corresponding to the allocated RAID group logical address based on the drive management table 300, and writes the write data specifying the specified FMPK logical address to the determined FMPK 20. A request is issued (step S15), and the input / output processing ends. In the FMPK 20 that has received the write request from the CPU 11, the write data is to be written.
 一方、書き込み寿命が異なるFMPK20がある場合(ステップS13:Yes)には、どのFMPK20にデータを書き込むかによって、ストレージシステム3の全体における書き込み寿命が大きく変わってくることとなるので、CPU11は、受領した書き込み要求を参照し、この書き込み要求のI/Fが何であるかを確認する(ステップS16)。ここで、書き込み要求のI/Fが何であるかについては、書き込み要求におけるOSI(Open Systems Interconnection)参照モデルのアプリケーション層のヘッダの情報のみを参照することにより確認することができ、書き込みデータ自体の内容を参照しなくても済む。 On the other hand, when there is an FMPK 20 having a different write life (step S13: Yes), the write life of the entire storage system 3 changes greatly depending on which FMPK 20 the data is written to. The write request is referred to, and it is confirmed what the I / F of the write request is (step S16). Here, the I / F of the write request can be confirmed by referring only to the information of the application layer header of the Open Systems Interconnection (OSI) reference model in the write request, and the write data itself It is not necessary to refer to the contents.
 この結果、書き込み要求のI/FがオブジェクトIDのインターフェースであると確認された場合(ステップS16:ID)には、書き込み要求に対応する書き込みデータは、更新可能性が低いデータである可能性が高いことを意味しているので、CPU11は、書き込み寿命が少ないFMPK20の中から、書き込みデータを格納するFMPK20の番号を決定し、さらに、このFMPK20の記憶領域に対応する、割り当てるRAIDグループ論理アドレスを決定し、書き込み要求に対応するオブジェクトデータのエントリをオブジェクトデータ管理テーブル500に登録し、オブジェクトデータ書き込み先管理テーブル600にこのオブジェクトデータに対応するエントリを追加し、このエントリに、決定したFMPK20のRAIDグループ番号と、RAIDグループ論理アドレスと、を格納する(ステップS17)。ここで、書き込み寿命が少ないFMPK20は、RAID管理グループ管理テーブル200の書き込み寿命201を参照することにより特定してもよいし、フラッシュメモリ種類205の種類に基づいて特定するようにしてもよい。 As a result, when the I / F of the write request is confirmed to be the interface of the object ID (step S16: ID), the write data corresponding to the write request may be data with low update possibility. Since this means high, the CPU 11 determines the number of the FMPK 20 storing the write data from the FMPK 20 having a short write life, and further assigns the RAID group logical address corresponding to the storage area of this FMPK 20. The object data entry corresponding to the write request is registered in the object data management table 500, an entry corresponding to the object data is added to the object data write destination management table 600, and the RAI of the determined FMPK 20 is added to this entry. Storing a group number, the RAID group the logical address, the (step S17). Here, the FMPK 20 having a short write life may be specified by referring to the write life 201 of the RAID management group management table 200 or may be specified based on the type of flash memory type 205.
 次いで、CPU11は、決定したFMPK20に対して、書き込みデータの書き込み要求を発行し(ステップS18)、入出力処理を終了する。なお、CPU11から書き込み要求を受け取ったFMPK20では、後述するデータ書き込み処理により、書き込みデータが書き込まれることとなる。このため、更新可能性が低い書き込みデータは、書き込み寿命が少ないFMPK20に適切に格納されることとなる。 Next, the CPU 11 issues a write request for write data to the determined FMPK 20 (step S18), and ends the input / output processing. In the FMPK 20 that has received a write request from the CPU 11, write data is written by a data write process described later. For this reason, write data having a low update possibility is appropriately stored in the FMPK 20 having a short write life.
 一方、書き込み要求のI/FがSCSIのインターフェースであると確認された場合(ステップS16:SCSI)には、書き込み要求に対応する書き込みデータは、更新可能性が高いデータである可能性が高いことを意味しているので、書き込み要求に対応するボリュームのアドレスに書き込みデータを格納する記憶領域が割り当てられていない場合には、CPU11は、書き込み寿命が多いFMPK20の中から、書き込みデータを格納するFMPK20の番号を決定するとともに、このFMPK20の記憶領域に対応する、割り当てるRAIDグループ論理アドレスを決定し、書き込み先管理テーブル400の書き込み要求に対応するボリュームのアドレスのエントリに、決定したFMPK20のRAIDグループ番号と、RAIDグループ論理アドレスとを格納する(ステップS19)。ここで、書き込み寿命が多いFMPK20は、RAID管理グループ管理テーブル200の書き込み寿命201を参照することにより特定してもよいし、フラッシュメモリ種類205の種類に基づいて特定するようにしてもよい。 On the other hand, when the I / F of the write request is confirmed to be an interface of SCSI (step S16: SCSI), the write data corresponding to the write request is highly likely to be data with high update possibility. In the case where the storage area for storing the write data is not allocated to the address of the volume corresponding to the write request, the CPU 11 stores the write data from among the FMPK 20 having a long write life. And the assigned RAID group logical address corresponding to the storage area of this FMPK 20, and the determined RAID group number of FMPK 20 in the entry of the address of the volume corresponding to the write request of the write destination management table 400. And RAID Storing a loop logical address (step S19). Here, the FMPK 20 having a long write life may be specified by referring to the write life 201 of the RAID management group management table 200, or may be specified based on the type of flash memory type 205.
 次いで、CPU11は、ドライブ管理テーブル300に基づいて、割り当てられたRAIDグループ論理アドレスに対応するFMPK論理アドレスを特定し、決定したFMPK20に対して、特定したFMPK論理アドレスを指定した、書き込みデータの書き込み要求を発行し(ステップS20)、入出力処理を終了する。なお、CPU11から書き込み要求を受け取ったFMPK20では、後述するデータ書き込み処理が行われて書き込みデータが書き込まれることとなる。このため、更新可能性が高い書き込みデータは、書き込み寿命が多いFMPK20に適切に格納されることとなる。 Next, the CPU 11 specifies the FMPK logical address corresponding to the allocated RAID group logical address based on the drive management table 300, and writes the write data specifying the specified FMPK logical address to the determined FMPK 20. A request is issued (step S20), and the input / output processing ends. In the FMPK 20 that has received the write request from the CPU 11, the data write process described later is performed and the write data is written. For this reason, write data with high update possibility is appropriately stored in the FMPK 20 having a long write life.
 なお、書き込み要求に対応するボリュームのアドレスに、書き込みデータを格納するFMPK20が既に割り当てられている場合には、CPU11は、既に割り当てられているFMPK20に対して、書き込みデータの書き込み要求を発行することとなる。 When the FMPK 20 storing write data is already assigned to the address of the volume corresponding to the write request, the CPU 11 issues a write data write request to the FMPK 20 already assigned. It becomes.
 次に、FMPK20におけるデータ書き込み処理について説明する。 Next, data write processing in the FMPK 20 will be described.
 図13は、第1実施形態に係るFMPKコントローラによるデータ書き込み処理のフローチャートである。 FIG. 13 is a flowchart of data write processing by the FMPK controller according to the first embodiment.
 データ書き込み処理は、FMPKコントローラ30のCPU31が、ディスクコントローラ10から書き込み要求を受領した場合に実行される。 The data write process is executed when the CPU 31 of the FMPK controller 30 receives a write request from the disk controller 10.
 FMPKコントローラ30のCPU31は、ディスクコントローラ10から書き込み要求を受領すると、書き込み要求中の書き込み対象データに割り当てられたFMPK論理アドレスから論理ページを算出する(ステップS21)。なお、論理ページについては、論理アドレスと、予め設定されている論理ページのサイズとに基づいて算出することができる。 When receiving the write request from the disk controller 10, the CPU 31 of the FMPK controller 30 calculates a logical page from the FMPK logical address assigned to the write target data in the write request (step S21). The logical page can be calculated based on the logical address and the size of the logical page set in advance.
 次いで、CPU31は、論理・物理マッピングテーブル700を参照して、算出した論理ページに対応する物理ページを特定する(ステップS22)。次いで、CPU31は、特定した物理ページに対して、書き込み要求に対応する書き込みデータを格納し(ステップS23)、データ書き込み処理を終了する。 Next, the CPU 31 refers to the logical / physical mapping table 700 to specify a physical page corresponding to the calculated logical page (step S22). Next, the CPU 31 stores write data corresponding to the write request for the identified physical page (step S23), and ends the data write process.
 この処理により、ディスクコントローラ10から書き込みを要求されたFMPK20において、書き込みデータが適切に格納される。 By this processing, the write data is properly stored in the FMPK 20 requested to be written by the disk controller 10.
 上記した実施形態によると、書き込み要求のプロトコルのインターフェースに基づいて、
更新可能性が高いデータか、低いデータかのデータの特徴を判断して、その特徴に応じて書き込むFMPK20を決定するようにしているので、各FMPK20の特性に応じて適切にデータを格納することができ、ストレージシステム3としての寿命の長期化を図ることができ、ビットコストを低減することができる。
According to the embodiment described above, based on the interface of the protocol of the write request:
Since the data characteristic of data with high update possibility or low data is judged and the FMPK 20 to be written is determined according to the characteristic, the data is appropriately stored according to the characteristics of each FMPK 20 Thus, the life of the storage system 3 can be extended, and the bit cost can be reduced.
 次に、第2実施形態に係るストレージシステム3について説明する。なお、第2実施形態に係るストレージシステム3においては、第1実施形態に係るストレージシステムと異なる点について説明する。 Next, a storage system 3 according to the second embodiment will be described. The storage system 3 according to the second embodiment will be described in terms of differences from the storage system according to the first embodiment.
 第2実施形態に係るストレージシステム3は、第1実施形態に係るストレージシステム3では、初期時点の書き込み寿命、すなわち、FMPK20の当初の性能に応じて、書き込みデータの書き込み先のFMPK20を決定するようにしていたものを、各FMPK20の実際の寿命に基づいて、書き込みデータの書き込み先のFMPK20を決定するようにしたものである。 In the storage system 3 according to the second embodiment, the storage system 3 according to the first embodiment determines the FMPK 20 of the write data write destination according to the write life at the initial point, that is, the initial performance of the FMPK 20. The FMPK 20 to which the write data is to be written is determined based on the actual lifetime of each FMPK 20.
 第2実施形態に係るストレージシステム3は、図5に示すRAIDグループ管理テーブル200に代えて、RAIDグループ管理テーブル210(図14参照)を備える。 The storage system 3 according to the second embodiment includes a RAID group management table 210 (see FIG. 14) instead of the RAID group management table 200 shown in FIG.
 図14は、第2実施形態に係るRAIDグループ管理テーブルの構成図である。 FIG. 14 is a configuration diagram of a RAID group management table according to the second embodiment.
 RAIDグループ管理テーブル210は、エントリに、さらに、状態(寿命)208のフィールドを備えるようにしている。状態(寿命)208には、エントリに対応するFMPK20の寿命(使用可能日数:残寿命情報に相当)が格納される。状態(寿命)208の使用可能日数は、例えば、CPU11が、FMPK20への書き込みが発生したことを検出した場合に、逐次更新している。 The RAID group management table 210 further includes a field of status (lifetime) 208 in the entry. The status (lifetime) 208 stores the lifetime of the FMPK 20 corresponding to the entry (available days: equivalent to remaining life information). The usable days of the state (lifetime) 208 are successively updated, for example, when the CPU 11 detects that writing to the FMPK 20 has occurred.
 第2実施形態に係るCPU11は、図12に示すステップS17において、状態(寿命)208の値を参照し、この値が少ないFMPK20の中から、書き込みデータを格納するFMPK20の番号を決定する。また、CPU11は、図12のステップS19において、状態(寿命)208の値を参照し、この値が多いFMPK20の中から、書き込みデータを格納するFMPK20の番号を決定する。 The CPU 11 according to the second embodiment refers to the value of the state (lifetime) 208 in step S17 shown in FIG. 12, and determines the number of the FMPK 20 for storing the write data from the FMPK 20 having a small value. Further, in step S19 in FIG. 12, the CPU 11 refers to the value of the state (lifetime) 208 and determines the number of the FMPK 20 for storing the write data out of the FMPK 20 having many values.
 以上説明したように、第2実施形態に係るストレージシステム3においては、実際の書き込みに応じて更新される寿命に基づいて、書き込みデータの格納先のFMPK20を決定するようにしているので、ストレージシステム3の実際の状態に応じて適切にデータの格納先を決定することができる。 As described above, in the storage system 3 according to the second embodiment, the FMPK 20 as the storage destination of the write data is determined based on the lifetime updated according to the actual writing, so the storage system It is possible to determine the storage destination of data appropriately according to the actual state of 3.
 なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。 The present invention is not limited to the embodiments described above, and can be appropriately modified and implemented without departing from the spirit of the present invention.
 例えば、上記第1実施形態において、RAIDグループ管理テーブル210に示すように残寿命情報を管理するようにし、書き込み要求が対応しているプロトコルインターフェースが、オブジェクトIDインターフェースである場合に、書き込み要求に対応するデータを書き込む記憶領域を割り当てる際に、第1不揮発性メモリデバイスに相当するFMPK20の記憶領域に十分な空き容量がなければ、第2不揮発メモリデバイスに相当するFMPK20の内の残寿命情報が示す残寿命が少ないFMPK20を割り当てるようにし、プロトコルインターフェースが、SCSIである場合に、書き込み要求に対応するデータを書き込む記憶領域を割り当てる際に、第2不揮発性メモリデバイスに相当するFMPK20の記憶領域に十分な空き容量がなければ、第1不揮発メモリデバイスに相当するFMPK20の内の残寿命情報が示す残寿命が多いFMPK20を割り当てるようにしてもよい。 For example, in the first embodiment, the remaining life information is managed as shown in the RAID group management table 210, and when the protocol interface corresponding to the write request is the object ID interface, the write request is supported. When allocating a storage area for writing data, if there is not enough free space in the storage area of the FMPK 20 corresponding to the first nonvolatile memory device, the remaining life information in the FMPK 20 corresponding to the second nonvolatile memory device indicates When allocating the FMPK 20 with a low remaining life, and allocating the storage area for writing the data corresponding to the write request when the protocol interface is SCSI, it is sufficient for the storage area of the FMPK 20 corresponding to the second nonvolatile memory device Empty Without amount, it may be assigned FMPK20 remaining life often show remaining life information of the FMPK20 corresponding to the first non-volatile memory device.
 また、上記実施形態では、QLC方式のFMチップ40を第1不揮発性メモリとし、MLC方式及びTLC方式のFMチップ40を第2不揮発性メモリとしていたが、例えば、QLC方式及びTLC方式のFMチップ40を第1不揮発性メモリとし、MLC方式及びSLC方式のFMチップ40を第2不揮発性メモリとするようにしてもよく、要は、初期の書き込み寿命に応じて区別するようにすればよい。 In the above embodiment, the QLC FM chip 40 is used as the first nonvolatile memory, and the MLC and TLC FM chips 40 are used as the second nonvolatile memory. For example, the QLC and TLC FM chips are used. The first nonvolatile memory 40 may be used as the first nonvolatile memory 40, and the MLC and SLC FM chips 40 may be used as the second nonvolatile memory. In short, the FM chip 40 may be distinguished according to the initial writing life.
 また、上記実施形態において、CPU11、又はCPU31が行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。 Further, in the above embodiment, a part or all of the processing performed by the CPU 11 or the CPU 31 may be performed by a hardware circuit. Also, the program in the above embodiment may be installed from a program source. The program source may be a program distribution server or storage medium (eg, portable storage medium).
 1…計算機システム、2…ホスト、3…ストレージシステム、10…ディスクコントローラ、20…FMPK、40…FMチップ

 
1 ... computer system, 2 ... host, 3 ... storage system, 10 ... disk controller, 20 ... FMPK, 40 ... FM chip

Claims (10)

  1.  それぞれが不揮発性メモリを有する複数の不揮発性メモリデバイスと、
     前記複数の不揮発性メモリデバイスを管理する1以上のプロセッサであるプロセッサ部と、を有するストレージシステムであって、
     前記複数の不揮発性メモリデバイスには、初期時の書き込み寿命が少ない第1不揮発性メモリを有する第1不揮発性メモリデバイスと、初期時の書き込み寿命が多い第2不揮発性メモリを有する第2不揮発性メモリデバイスとが含まれ、
     前記プロセッサ部は、
     上位装置から受信した、所定の書き込みデータについての書き込み要求が対応しているプロトコルのインターフェースが、更新可能性が低いデータを格納する際に使用される傾向が高い第1プロトコルインターフェースであるか、更新可能性が高いデータを格納する際に使用される傾向が高い第2プロトコルインターフェースであるかを判定し、
     前記書き込み要求が対応しているプロトコルのインターフェースが、前記第1プロトコルインターフェースである場合に、前記書き込み要求に対応する前記書き込みデータを書き込む記憶領域を割り当てる際に、前記第1不揮発性メモリデバイスの記憶領域を割り当てるようにし、前記書き込み要求が対応しているプロトコルのインターフェースが、前記第2プロトコルインターフェースである場合に、前記書き込み要求に対応する前記書き込みデータを書き込む記憶領域を割り当てる際に、前記第2不揮発性メモリデバイスの記憶領域を割り当てるようにし、
     割り当てた前記記憶領域に前記書き込みデータを書き込む
    ストレージシステム。
    A plurality of non-volatile memory devices, each having a non-volatile memory;
    A processor unit, which is one or more processors for managing the plurality of nonvolatile memory devices;
    The plurality of nonvolatile memory devices include a first nonvolatile memory device having a first nonvolatile memory having a short initial writing life and a second nonvolatile memory having a second non-volatile memory having a long initial writing life. Memory device and included
    The processor unit is
    The interface of the protocol to which the write request for the predetermined write data received from the upper level device is compatible is the first protocol interface which is highly likely to be used when storing data with low update possibility, or updated Determine if it is a second protocol interface that is likely to be used when storing data that is likely
    When the storage area to which the write data corresponding to the write request is to be written is allocated when the interface of the protocol corresponding to the write request is the first protocol interface, the storage of the first non-volatile memory device An area is allocated, and when the interface of the protocol to which the write request corresponds is the second protocol interface, when the storage area to which the write data corresponding to the write request is allocated is allocated, Allocate storage area of non-volatile memory device,
    A storage system that writes the write data to the allocated storage area.
  2.  前記第1プロトコルインターフェースは、データをオブジェクト単位で格納するために使用するプロトコルのインターフェースであり、前記第2プロトコルインターフェースは、データを所定のブロック単位で格納するために使用するプロトコルのインターフェースである
    請求項1に記載のストレージシステム。
    The first protocol interface is an interface of a protocol used to store data in object units, and the second protocol interface is an interface of a protocol used to store data in predetermined blocks. A storage system according to item 1.
  3.  前記第1不揮発性メモリは、1つの記憶素子に4ビットの値を書き込み可能な不揮発性メモリであり、第2不揮発性メモリは、1つの記憶素子に3ビット以下の値を書き込み可能な不揮発性メモリである
    請求項1又は請求項2に記載のストレージシステム。
    The first non-volatile memory is a non-volatile memory capable of writing a 4-bit value to one storage element, and the second non-volatile memory is a non-volatile capable of writing a 3-bit value or less to one storage element The storage system according to claim 1, which is a memory.
  4.  前記プロセッサ部は、
     前記書き込み要求におけるOSI(Open Systems Interconnection)参照モデルのアプリケーション層のヘッダの情報に基づいて、前記書き込み要求が対応しているプロトコルのインターフェースが、前記第1プロトコルインターフェースであるか、前記第2プロトコルインターフェースであるかを判定する
    請求項1に記載のストレージシステム。
    The processor unit is
    The interface of the protocol to which the write request corresponds is the first protocol interface or the second protocol interface based on the information of the application layer header of the OSI (Open Systems Interconnection) reference model in the write request The storage system according to claim 1, which determines whether
  5.  前記プロセッサ部は、
     前記書き込み要求に対応する前記書き込みデータの内容を参照せずに、前記書き込み要求が対応しているプロトコルのインターフェースが、前記第1プロトコルインターフェースであるか、前記第2プロトコルインターフェースであるかを判定する
    請求項4に記載のストレージシステム。
    The processor unit is
    It is determined whether the interface of the protocol to which the write request corresponds is the first protocol interface or the second protocol interface without referring to the content of the write data corresponding to the write request. The storage system according to claim 4.
  6.  前記プロセッサ部は、
     前記不揮発性メモリデバイスに対するデータの書込み状況に基づいて、前記不揮発性メモリデバイスにおける残りの書き込み寿命に関する残寿命情報を管理し、
     前記書き込み要求が対応しているプロトコルのインターフェースが、前記第1プロトコルインターフェースである場合に、前記書き込み要求に対応する前記書き込みデータを書き込む記憶領域を割り当てる際に、前記残寿命情報に基づいて、前記書き込み寿命の残りが少ない不揮発性メモリデバイスの記憶領域を割り当てるようにし、前記書き込み要求が対応しているプロトコルのインターフェースが、前記第2プロトコルインターフェースである場合に、前記書き込み要求に対応する前記書き込みデータを書き込む記憶領域を割り当てる際に、前記残寿命情報に基づいて、前記書き込み寿命の残りが多い不揮発性メモリデバイスの記憶領域を割り当てるようにする
    請求項1に記載のストレージシステム。
    The processor unit is
    Managing remaining life information on remaining write life in the non-volatile memory device based on a write status of data to the non-volatile memory device;
    When the interface of the protocol to which the write request corresponds corresponds to the first protocol interface, when allocating a storage area to which the write data corresponding to the write request is to be allocated, the remaining lifetime information is used to The storage area of a non-volatile memory device with a small remaining of the write life is allocated, and the write data corresponding to the write request when the interface of the protocol to which the write request corresponds is the second protocol interface The storage system according to claim 1, wherein when allocating a storage area for writing, the storage area of a non-volatile memory device having a large remaining of the write life is allocated based on the remaining life information.
  7.  前記プロセッサ部は、
     前記不揮発性メモリデバイスに対するデータの書込み状況に基づいて、前記不揮発性メモリデバイスにおける残りの書き込み寿命に関する残寿命情報を管理し、
     前記書き込み要求が対応しているプロトコルのインターフェースが、前記第1プロトコルインターフェースである場合に、前記書き込み要求に対応するデータを書き込む記憶領域を割り当てる際に、前記第1不揮発性メモリデバイスの記憶領域に十分な空き容量がなければ、前記第2不揮発メモリデバイスの内の前記残寿命情報が示す残寿命が少ない不揮発性メモリデバイスを割り当てるようにし、前記第2プロトコルインターフェースである場合に、前記書き込み要求に対応するデータを書き込む記憶領域を割り当てる際に、前記第2不揮発性メモリデバイスの記憶領域に十分な空き容量がなければ、前記第1不揮発性メモリデバイスの内の前記残寿命情報が示す残寿命が多い不揮発性メモリデバイスを割り当てるようにする
    請求項1に記載のストレージシステム。
    The processor unit is
    Managing remaining life information on remaining write life in the non-volatile memory device based on a write status of data to the non-volatile memory device;
    When the interface of the protocol to which the write request corresponds corresponds to the first protocol interface, when allocating a storage area for writing data corresponding to the write request, the storage area of the first non-volatile memory device is allocated If there is not enough free space, a non-volatile memory device with a small remaining life indicated by the remaining life information in the second non-volatile memory device is allocated, and in the case of the second protocol interface, the write request is made. When allocating a storage area for writing corresponding data, if there is not enough free space in the storage area of the second non-volatile memory device, the remaining life indicated by the remaining life information in the first non-volatile memory device is The method according to claim 1, wherein a large number of non-volatile memory devices are allocated. Storage system.
  8.  前記第1プロトコルインターフェースは、データをオブジェクト単位で格納するために使用するHTTP(Hypertext Transfer Protocol)のインターフェースであり、前記第2プロトコルインターフェースは、データを所定のブロック単位で格納するために使用するSCSI(Small Computer System Interface)である
    請求項2に記載のストレージシステム。
    The first protocol interface is an interface of HTTP (Hypertext Transfer Protocol) used to store data in object units, and the second protocol interface is a SCSI used to store data in predetermined blocks. The storage system according to claim 2, which is a Small Computer System Interface.
  9.  それぞれが不揮発性メモリを有する複数の不揮発性メモリデバイスと、前記複数の不揮発性メモリデバイスを管理する1以上のプロセッサであるプロセッサ部と、を有するストレージシステムによる、書き込み要求に対応する書き込みデータに記憶領域を割り当てて格納するデータ格納制御方法であって、
     前記複数の不揮発性メモリデバイスには、初期時の書き込み寿命が少ない第1不揮発性メモリを有する第1不揮発性メモリデバイスと、初期時の書き込み寿命が多い第2不揮発性メモリを有する第2不揮発性メモリデバイスとが含まれ、
     上位装置から受信した、所定の書き込みデータについての書き込み要求が対応しているプロトコルのインターフェースが、更新可能性が低いデータを格納する際に使用される傾向が高い第1プロトコルインターフェースであるか、更新可能性が高いデータを格納する際に使用される傾向が高い第2プロトコルインターフェースであるかを判定し、
     前記書き込み要求が対応しているプロトコルのインターフェースが、前記第1プロトコルインターフェースである場合に、前記書き込み要求に対応する前記書き込みデータを書き込む記憶領域を割り当てる際に、前記第1不揮発性メモリの記憶領域を割り当てるようにし、前記書き込み要求が対応しているプロトコルのインターフェースが、前記第2プロトコルインターフェースである場合に、前記書き込み要求に対応する前記書き込みデータを書き込む記憶領域を割り当てる際に、前記第2不揮発性メモリの記憶領域を割り当てるようにし、
     割り当てた前記記憶領域に前記書き込みデータを書き込む
    データ格納制御方法。
    Storage of write data corresponding to a write request by a storage system having a plurality of non-volatile memory devices each having a non-volatile memory, and a processor unit which is one or more processors managing the plurality of non-volatile memory devices A data storage control method for allocating and storing an area, comprising:
    The plurality of nonvolatile memory devices include a first nonvolatile memory device having a first nonvolatile memory having a short initial writing life and a second nonvolatile memory having a second non-volatile memory having a long initial writing life. Memory device and included
    The interface of the protocol to which the write request for the predetermined write data received from the upper level device is compatible is the first protocol interface which is highly likely to be used when storing data with low update possibility, or updated Determine if it is a second protocol interface that is likely to be used when storing data that is likely
    A storage area of the first non-volatile memory when allocating a storage area for writing the write data corresponding to the write request, when the interface of the protocol corresponding to the write request is the first protocol interface Is assigned, and when the interface of the protocol to which the write request corresponds is the second protocol interface, the second non-volatile memory is assigned when a storage area for writing the write data corresponding to the write request is assigned. Allocate memory area of memory
    A data storage control method for writing the write data in the allocated storage area.
  10.  前記第1プロトコルインターフェースは、データをオブジェクト単位で格納するために使用するプロトコルのインターフェースであり、前記第2プロトコルインターフェースは、データを所定のブロック単位で格納するために使用するプロトコルのインターフェースである
    請求項9に記載のデータ格納制御方法。

     
    The first protocol interface is an interface of a protocol used to store data in object units, and the second protocol interface is an interface of a protocol used to store data in predetermined blocks. The data storage control method according to Item 9.

PCT/JP2017/027193 2017-07-27 2017-07-27 Storage system and data storing control method WO2019021415A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/027193 WO2019021415A1 (en) 2017-07-27 2017-07-27 Storage system and data storing control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/027193 WO2019021415A1 (en) 2017-07-27 2017-07-27 Storage system and data storing control method

Publications (1)

Publication Number Publication Date
WO2019021415A1 true WO2019021415A1 (en) 2019-01-31

Family

ID=65040120

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/027193 WO2019021415A1 (en) 2017-07-27 2017-07-27 Storage system and data storing control method

Country Status (1)

Country Link
WO (1) WO2019021415A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022246A (en) * 2001-04-09 2003-01-24 Hitachi Ltd Direct access storage system
WO2015114829A1 (en) * 2014-02-03 2015-08-06 株式会社日立製作所 Information processing device
JP2015204118A (en) * 2014-04-15 2015-11-16 三星電子株式会社Samsung Electronics Co.,Ltd. Storage controller and storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022246A (en) * 2001-04-09 2003-01-24 Hitachi Ltd Direct access storage system
WO2015114829A1 (en) * 2014-02-03 2015-08-06 株式会社日立製作所 Information processing device
JP2015204118A (en) * 2014-04-15 2015-11-16 三星電子株式会社Samsung Electronics Co.,Ltd. Storage controller and storage device

Similar Documents

Publication Publication Date Title
US10996863B1 (en) Nonvolatile memory with configurable zone/namespace parameters and host-directed copying of data across zones/namespaces
US9009397B1 (en) Storage processor managing solid state disk array
US11726948B2 (en) System and method for storing data using ethernet drives and ethernet open-channel drives
JP6000376B2 (en) Information processing apparatus having a plurality of types of cache memories having different characteristics
JP2019008730A (en) Memory system
US9792073B2 (en) Method of LUN management in a solid state disk array
US11740801B1 (en) Cooperative flash management of storage device subdivisions
KR20210111527A (en) Apparatus and method for performing garbage collection in a memory system
WO2015162758A1 (en) Storage system
JP7353934B2 (en) Memory system and control method
US20190205053A1 (en) Storage apparatus and distributed storage system
US11409467B2 (en) Memory system and method of controlling nonvolatile memory and for reducing a buffer size
US10365827B1 (en) Spread space tracking
KR102398181B1 (en) Storage device previously managing physical address to be allocated for write data
JP7381678B2 (en) memory system
KR20200065489A (en) Apparatus and method for daynamically allocating data paths in response to resource usage in data processing system
KR20210112548A (en) Apparatus and method for controlling map data in a memory system
US10310758B2 (en) Storage system and storage control method
KR20210124705A (en) Apparatus and method for controlling map data in a memory system
KR20220165855A (en) Storage device and operating method thereof
TWI782847B (en) Method and apparatus for performing pipeline-based accessing management in a storage server
US20230280917A1 (en) Storage system and method of operating the same
US11768628B2 (en) Information processing apparatus
US20220004333A1 (en) Operation method of storage device
WO2019021415A1 (en) Storage system and data storing control method

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17919173

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP