WO2015029249A1 - ストレージ装置及びそのデータ処理方法 - Google Patents

ストレージ装置及びそのデータ処理方法 Download PDF

Info

Publication number
WO2015029249A1
WO2015029249A1 PCT/JP2013/073539 JP2013073539W WO2015029249A1 WO 2015029249 A1 WO2015029249 A1 WO 2015029249A1 JP 2013073539 W JP2013073539 W JP 2013073539W WO 2015029249 A1 WO2015029249 A1 WO 2015029249A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage device
write
mode
storage
Prior art date
Application number
PCT/JP2013/073539
Other languages
English (en)
French (fr)
Inventor
裕理 野崎
雅信 池田
等支 福口
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US14/352,486 priority Critical patent/US8990523B1/en
Priority to PCT/JP2013/073539 priority patent/WO2015029249A1/ja
Publication of WO2015029249A1 publication Critical patent/WO2015029249A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Definitions

  • the present invention relates to a storage apparatus for controlling input / output of data to / from a storage device using a flash memory as a storage medium, and a data processing method thereof.
  • Patent Document 1 discloses a technique for suppressing a plurality of storage media from simultaneously reaching the upper limit of the number of times of writing by appropriately exchanging a spare disk and a normal disk.
  • the present invention has been made in view of the above-mentioned problems of the prior art, and its purpose is to distribute the writing of data to each storage device, while maintaining a long life of each storage device, and a plurality of It is an object of the present invention to provide a storage apparatus and a data processing method for the storage apparatus that can prevent the storage devices from reaching the end of their lives at the same time.
  • the present invention includes a plurality of storage devices configured by flash memory, and a controller that controls input / output of data to / from the plurality of storage devices based on access from an access request source. And when the controller receives the write command from the access request source, the write mode of the data to be processed by the write command is for executing control to distribute and write data to each storage device. It is determined whether it is a normal mode or a centralized mode for executing a control for concentrating and writing data to a specific storage device among the plurality of storage devices, and the data writing mode is the centralized mode. If it is determined that the storage device is a mode, the storage device to be processed in the centralized mode is identified. Select a storage device from among the plurality of storage devices, for a particular storage device said selected, and writes to concentrate the data to be processed by the write command.
  • FIG. 1 is an overall configuration diagram for explaining an overall configuration of a storage system.
  • FIG. (A) is a block diagram of a local memory
  • (b) is a block diagram of a shared memory.
  • It is a block diagram of a drive management table.
  • (A) is a block diagram of a drive type management table
  • (b) is a block diagram of a centralized mode management table.
  • It is a block diagram of a setting management table.
  • It is a flow chart for explaining processing of the whole storage system. It is a flowchart for demonstrating the process of the switching program to concentration mode. It is a flowchart for demonstrating the process of the writing program at the time of concentration mode. It is a flowchart for demonstrating the process of the operation program after drive replacement.
  • FIG. 1 is a conceptual diagram for explaining the concept of the present invention.
  • a storage apparatus 14 that exchanges information with a host (host computer) 10 via a network includes a plurality of storage devices composed of flash memory, such as a flash SSD (Solid State Drive: hereinafter referred to as a flash drive).
  • FD1, FD2, FD3, and FD4 and a controller 20 that controls data input / output with respect to the flash drives FD1 to FD4.
  • the controller 20 receives a write command from the host 10 that is the access request source, the controller 20 executes a control in which the write mode of data to be processed by this write command is distributed and written to the flash drives FD1 to FD4. Whether it is a normal mode for executing the control for writing data by concentrating data in a specific flash drive among the plurality of flash drives FD1 to FD4.
  • the controller 20 determines that the data to be processed by the write command received from the host 10 is “A”, “B”, “C”, “ In the case of “D”, “E”, and “F”, the write data “A”, “B”, and “C” are distributed and written in the data blocks of the flash drives FD1, FD2, and FD3, respectively, and the parity data “P” Is written to the data block of the flash drive FD4. Further, the controller 20 writes the write data “D” to the data block of the flash drive FD4, writes the parity data “P” to the data block of the flash drive FD3, and writes the write data “E” to the data block of the flash drive FD1. Write data “F” is distributed and written in the data block of the flash drive FD2.
  • the controller determines that the write count of the flash drive FD1 exceeds a threshold value (determination value for switching the write mode) and the write mode is the centralized mode. 20 selects the flash drive FD1 as a flash drive to be processed in the centralized mode, and write data “G”, “H” among the data to be processed by the received write command for the selected flash drive FD1. ”And“ I ”are concentrated and written in the data block of the flash drive FD1. In this case, the parity data is written into the data blocks of the flash drives FD2, FD4, and FD3 for the write data “G”, “H”, and “I”, respectively. That is, even in the centralized mode, the controller 20 writes the parity data “P” in a distributed manner in the data blocks of the flash drives FD1 to FD4 in order.
  • a threshold value determination value for switching the write mode
  • the controller 20 concentrates and executes the writing of the write data to the flash drive FD1.
  • the write data is distributed and written in the data blocks of the flash devices FD1 to FD4, and in the concentrated mode, the write data is concentrated and written in the data block of the specific flash drive FD1. Therefore, it is possible to prevent the plurality of flash drives from reaching the end of their lives simultaneously while keeping the entire life of the storage device 14 long.
  • the dynamic sparing processing (the error count for the storage device is the threshold value) for the flash drive FD1.
  • the number of writes exceeds the threshold, or when the number of writes to the storage device reaches a threshold value, a process of saving data stored in the storage device to a spare storage device is executed before the storage device is blocked.
  • the data stored in the flash drive FD1 is saved in the spare drive SD. Thereafter, the flash drive FD1 is replaced with a new flash drive (new storage device).
  • the new flash drive For new flash drives, the new flash drive should be selected as the flash drive to be processed in the centralized mode on the condition that the number of writes exceeds the threshold, and the selected new flash drive should be processed by write access Write data can be concentrated and written.
  • the new flash drive After the drive is replaced, the new flash drive is selected as the flash drive to be processed in the centralized mode, and the write data of the data to be processed by write access is selected for the selected new flash drive. I can concentrate on writing.
  • FIG. 2 is an overall configuration diagram of the storage system.
  • the storage system includes a plurality of hosts 10, a network 12, and a storage device 14, and each host 10 is connected to the storage device 14 via the network 12.
  • the storage device 14 includes a controller housing 16 and a drive housing 18.
  • the controller housing 16 stores controllers 20 and 22 and a shared memory 24.
  • the drive housing 18 stores, for example, a plurality of flash drives FD1 to FDn as storage devices.
  • Each host 10 is a computer device including information processing resources such as a CPU (Central Processing Unit), a memory, and an input / output interface, and is configured as a personal computer, a workstation, and a mainframe.
  • information processing resources such as a CPU (Central Processing Unit), a memory, and an input / output interface
  • Each host 10 issues an access request (command) specifying a logical volume provided from the storage device 14, for example, a write request (write command) or a read request (read command) to the storage device 14, thereby specifying The logical volume can be accessed.
  • access request command
  • LUN Logical Unit Number
  • LBA Logical Block Address
  • the network 12 for example, a SAN (Storage Area Network), a LAN (Local Area Network), the Internet, a dedicated line, a public line, or the like can be used.
  • the network 12 may be connected to an operation terminal or a management server configured by a computer device having information processing resources such as a CPU, a memory, and an input / output interface.
  • the controller 20 includes a plurality of front ends (FE) 26 and 28, a CPU 30, a connection unit 32, a cache memory 34, a local memory 36, and a plurality of back ends (BE) 38 and 40.
  • FE front ends
  • BE back ends
  • 26 is connected to the network 12
  • the back end 38 is connected to each of the flash drives FD1 to FDn.
  • the controller 20 analyzes the contents of the received write command or read command, and inputs data to each flash drive FD1 to FDn based on the analysis result. It functions as a control unit that controls the output.
  • the write mode of data to be processed by the write command is a normal mode for executing control to distribute and write data to each of the flash drives FD1 to FDn.
  • the centralized mode for executing the control to write data concentrated on a specific flash drive among the plurality of flash drives FD1 to FDn. If it is determined that there is a flash drive to be processed in the centralized mode, select the flash drive as a specific flash drive from multiple flash drives FD1 to FDn, and use the write command for the selected specific flash drive. Write data centrally.
  • the controller 20 manages the number of times data is written to each of the flash drives FD1 to FDn for each flash drive FD1 to FDn, and when the write command is received, the data is written into any of the flash drives. If there is a flash drive whose number of times exceeds a preset threshold, it is determined that the data write mode is the centralized mode, and the flash drive whose number of data writes exceeds the preset threshold is specified. Select as a flash drive.
  • the controller 20 manages the number of times data is written to each flash drive FD1 to FDn for each flash drive FD1 to FDn, and free space (data block) of each flash drive FD1 to FDn is assigned to each flash drive FD1 to FDn.
  • the data write mode is set to the centralized mode.
  • the flash drive whose data write count exceeds a preset threshold is selected as a specific flash drive, and free space of the selected specific flash drive is searched. Write data to be processed by the write command in the free space And writing.
  • the controller 20 determines that the data to be processed by the write command includes a plurality of write data and parity data and the data write mode is the centralized mode, the controller 20 transfers the write data to a specific flash drive. Write in a concentrated manner and write parity data distributed to each of the flash drives FD1 to FDn.
  • the controller 22 includes a plurality of front ends (FE) 26 and 28, a CPU 30, a connection unit 32, a cache memory 34, a local memory 36, and a plurality of back ends (BE) 38.
  • FE front ends
  • BE back ends
  • the shared memory 24 functions as a storage unit that stores information such as programs shared by the controllers 20 and 22.
  • the front end 26 is configured as an interface unit that exchanges information with each host 10 via the network 12.
  • the CPU 30 functions as a processor that performs overall control of the entire controller 20.
  • the CPU 30 executes data input / output processing based on the received write command or read command, and writes data.
  • a conversion process of the frame added to the command or the read command is executed.
  • connection unit 32 is connected to each front end 26, 28 and each back end 38, 40, is connected to the CPU 30 and the cache memory 34, and is connected to the connection unit 32 of the controller 22 via the shared memory 24. At this time, the connection unit 32 functions as a switch that connects the units to each other.
  • the cache memory 34 functions as a data storage unit that temporarily stores data to be processed by the CPU 30.
  • the local memory 36 functions as a storage unit that stores information such as a program for starting the CPU 30.
  • the back end 38 is configured as an interface unit that exchanges data with each of the flash drives FD1 to FDn via an internal network (not shown).
  • each flash drive FD1 to FDn can form a RAID (Redundant Array of Inexpensive Disks) group such as RAID4, RAID5, RAID6, etc., or each flash drive FD1 to FDn can be divided into multiple RAID groups. it can.
  • RAID Redundant Array of Inexpensive Disks
  • each flash drive FD1 to FDn can be divided into multiple RAID groups. it can.
  • a plurality of logical units hereinafter also referred to as LU (Logical Unit)
  • LU Logical Unit
  • FIG. 3 is a configuration diagram of the local memory and the shared memory.
  • the local memory 36 stores a central mode switching program 100, a central mode writing program 102, and an operation program 104 after drive replacement as programs executed by the CPU 30. .
  • the switching program 100 for switching to the centralized mode is a program that the CPU 30 uses when switching from the normal mode to the centralized mode.
  • the writing program 102 in the concentrated mode is a program for the CPU 30 to write the write data in a specific flash drive in the concentrated mode.
  • the operation program 104 after drive replacement is a program for the CPU 30 to perform operation policy determination and mode switching after drive replacement after a flash drive is replaced with a new flash drive.
  • the shared memory 24 stores a drive management table 200, a drive type management table 300, a centralized mode management table 400, and a setting management table 500 as tables to be managed by the CPU 30. .
  • FIG. 4 is a configuration diagram of the drive management table.
  • a drive management table 200 is a table for the CPU 30 to manage the flash drives FD1 to FDn.
  • the drive number is a number for identifying one flash drive among the flash drives FD1 to FDn.
  • information “0”,..., “N” is stored as a number for identifying one flash drive among the flash drives FD1 to FDn.
  • the number of times of writing is information indicating the number of times data is written in each of the flash drives FD1 to FDn. For example, when the write count of the flash drive FD with the drive number “0” is “9200”, information of “9200” is stored in the entry of the write count field 200B.
  • the drive type is information regarding the type when the flash drives FD1 to FDn are classified into a plurality of types of drives. For example, when the type of the flash drive FD with the drive number “0” is “drive 1”, the information of “drive 1” is stored in the entry of the drive type field 200C.
  • the write ratio is information indicating the ratio of the number of write times to the upper limit value of the number of write times of each flash drive FD1 to FDn. For example, when the upper limit of the number of writes of the flash drive FD with the drive number “0” is “10000” and the number of writes is “9200”, the entry of the write ratio field 200D includes “92%”. Information is stored.
  • the parity group number is information indicating a group number when each flash drive FD1 to FDn is classified into a plurality of parity groups. For example, when flash drives with drive numbers “0” to “3” belong to the parity group # 1, information of “1” is stored in the entry of the parity group number field 200E as the parity group number for these flash drives. Is done.
  • the free area block address is information indicating the head address of the free area block of each flash drive FD1 to FDn. For example, when the head address of the free area block of the flash drive with the drive number “0” is “0x0AAA”, information of “0x0AAA” is stored in the entry of the free area block address field 200F.
  • the write count counter is information indicating the write count (data write count) set in each of the flash drives FD1 to FDn. For example, the number of writes set to each flash drive (drive number “0” to “3”) belonging to the parity group # 1 in one data write process is “2”, “1”, “1”. , “2”, “1”, “1”, and “1” are stored in the entry of the write count counter field 200G.
  • FIG. 5 is a configuration diagram of a drive type management table and a centralized mode management table.
  • the drive type management table 300 is a table for the CPU 30 to manage the type of each flash drive FD1 to FDn and the upper limit value of the number of write times, the drive type field 300A and the number of write times. It consists of an upper limit field 300B.
  • the upper limit of the number of times of writing is information indicating the upper limit of the number of times of writing data set for each drive type for the flash drives FD1 to FDn. For example, information of “10000” is stored in the entry of the write count upper limit field 300B for a flash drive whose drive type is “drive 1”.
  • the centralized mode management table 400 is a table for the CPU 30 to manage the mode and counter of each parity group in the centralized mode, and includes a parity group number field 400A, a parity group centralized mode flag. It consists of a field 400B and a parity group counter field 400C.
  • the parity group concentration mode flag is information indicating whether or not to execute the concentration mode processing for the flash drives belonging to the parity group.
  • the parity group concentration mode flag field 400B for example, when the processing in the concentration mode is executed for the flash drives belonging to the parity group “1”, information of “1” is stored and the parity group “2” is stored.
  • information of “0” is stored.
  • the parity group counter is information indicating the number of writes of the entire flash drive belonging to the parity group in one data write process. In the entry of the parity group counter field 400C, for example, if the total number of data writes to the flash drives belonging to the parity group “1” is 5, information “5” is stored.
  • FIG. 6 is a configuration diagram of the setting management table.
  • a setting management table 500 is a table managed by a management server (not shown) connected to the host 10 or the network 12 and stored in the shared memory 24.
  • the setting management table 500 includes an item field 500A and a setting value field. It is composed of 500B. Items include a concentration switching threshold 510, a concentration ratio pattern 520, a concentrated drive ratio 530, a non-concentrated drive ratio 540, and an operation policy 550 after drive replacement.
  • the concentration switching threshold 510 is a threshold (determination value) for the CPU 30 to switch the data writing mode from the normal mode to the concentration mode, and is a threshold set in association with the data writing ratio to the flash drive. For example, when the data writing ratio to the flash drive exceeds “90%”, when the data writing mode is switched from the normal mode to the centralized mode, the entry of the setting value 500B corresponding to the centralized switching threshold 510 is entered. Stores information of “90 percent” as a threshold value.
  • Concentration ratio pattern 520 indicates the number of times data is written to a centralized flash drive to which data is concentrated by CPU 30 in the centralized mode, and a flash drive that does not concentrate data writing (flash drives other than the centralized flash drive). This is information obtained by patterning the ratio with the number of times data is written. For example, information of “a” or “b” is stored in the entry of the setting value 500B corresponding to the concentration ratio pattern 520.
  • “a” in the setting value 500B corresponding to the concentration ratio pattern 520 indicates that the flash drives belonging to the parity group are composed of four flash drives, and the data to be processed by the write command is stored in the data block of each flash drive. If it is necessary to write five times in five data blocks, the number of data writes to one centralized flash drive (specific flash drive for which data writing is to be concentrated) is “2”. This means that the number of data writes to the other three flash drives is “1”. In this case, the ratio of the number of data writes to the four flash drives is 2: 1: 1: 1.
  • “b” of the setting value 500B corresponding to the concentration ratio pattern 520 is, for example, that the flash drives belonging to the parity group are composed of four flash drives, and the data to be processed by the write command is the data of each flash drive.
  • the number of data writes to one centralized flash drive (a specific flash drive to which data writing is concentrated) is “3”. ", Which means that the number of data writes to the other three flash drives is" 1 "when three. In this case, the ratio of the number of data writes to one centralized flash drive and the number of data writes to the other three flash drives is 3: 1.
  • the centralized drive ratio 530 is the number of times data is written to the centralized flash drive to which the CPU 30 concentrates data writing in the centralized mode and the flash drive (flash drives other than the centralized flash drive) that does not concentrate data writing.
  • this is information indicating the number of data writes to the centralized flash drive. For example, when “a” is stored in the entry of the setting value 500B corresponding to the concentration ratio pattern 520 and the ratio of the number of times data is written to the four flash drives is “2: 1: 1: 1”, the concentration Information of “2” is stored in the entry of the setting value 500B of the drive ratio 530.
  • the non-concentrated drive ratio 540 indicates the number of times data is written to the centralized flash drive to which the CPU 30 concentrates data writing in the centralized mode and a flash drive that does not concentrate data writing (flash drives other than the centralized flash drive). ) Is the information indicating the number of data writes to flash drives other than the centralized flash drive. For example, when “a” is stored in the entry of the setting value 500B corresponding to the concentration ratio pattern 520 and the ratio of the number of times data is written to the four flash drives is “2: 1: 1: 1”, the concentration Information of “1” is stored in the entry of the setting value 500B of the drive ratio 540 other than the above.
  • the operation policy 550 after the drive replacement is information indicating an operation policy after any one of the flash drives FD1 to FDn is replaced with a new flash drive.
  • Information of “A” or “B” is stored in the entry of the setting value 500B of the operation policy 550 after the drive replacement.
  • A indicates that when any of the flash drives FD1 to FDn is replaced with a new flash drive, the CPU 30 exceeds the threshold for the number of times data is written to the replaced new flash drive. Up to, this means that the data writing process in the normal mode is executed, and when the number of times of data writing to the new flash drive exceeds the threshold, the data writing is concentrated on the new flash drive. Information.
  • “B” indicates that when any one of the flash drives FD1 to FDn is replaced with a new flash drive, the CPU 30 starts a new flash drive in the centralized mode after replacing the drive. This is information that means writing data to the flash drive.
  • FIG. 7 is a flowchart for explaining processing of the entire storage system.
  • a threshold setting process (S1) for setting a threshold for switching the data writing mode from the normal mode to the centralized mode, and writing between flash drives in the centralized mode
  • a setting process (S2) for setting the ratio of the number of times and a selection process (S3) for selecting an operation policy after the flash drive is replaced with a new flash drive are executed.
  • a value corresponding to the data write ratio to each flash drive for example, “90%” is set as a threshold for switching the data write mode from the normal mode to the concentrated mode.
  • “90 percent” is registered as the threshold value in the entry of the setting value 500B corresponding to the concentration switching threshold value 510 of the setting management table 500.
  • the threshold value can be set to an arbitrary value based on the write capacity and usage.
  • the number of times data is written to each flash drive is preferably lower than the upper limit value indicating the life of each flash drive and less than “99 percent”.
  • the setting management table 500 includes an entry for each setting value 500B of the concentrated ratio pattern 520, the concentrated drive ratio 530, and the non-concentrated drive ratio 540. For example, information of “a”, “2”, and “1” is registered.
  • information of “A” or “B” is entered in the entry of the setting value 500B corresponding to the operation policy 550 after drive replacement in the setting management table 500. Is registered.
  • a program for switching to the centralized mode is executed (S4), and then a dynamic sparing process is executed (S5).
  • a process for replacing the drive with a new flash drive is performed (S6), and then an operation program after the drive replacement is executed as a program for operating the new flash drive (S7).
  • step S5 the controller 20 executes a process for saving the data stored in the flash drive whose data has been written to the end of its life to the spare drive. In the meantime, the responsiveness to access from each host 10 decreases. That is, the performance of the storage system is temporarily reduced.
  • FIG. 8 is a flowchart for explaining the processing of the switching program to the concentrated mode.
  • this process is the specific content of step S4 of FIG. 7, and is started when the CPU 30 starts the switching program 100 to the centralized mode.
  • the CPU 30 When the CPU 30 receives a write command by write access from the host 10 while the data is being written in the normal mode, the CPU 30 analyzes the write command and analyzes the parity group to be written. It is determined whether the concentration mode flag of (PG) is 1 (S12). At this time, the CPU 30 refers to the centralized mode management table 400 and determines whether or not the centralized mode flag of the parity group to be written is “1”.
  • the parity group concentrated mode flag is “0”. Refers to the free area of the flash drive belonging to the parity group to be written, and writes the data to be processed by the write command in the normal mode to the free area of the flash drive belonging to the parity group to be written based on the reference result ( S13).
  • the CPU 30 increases the write count of the flash drive belonging to the parity group to be written by 1 (S14), and calculates the write ratio of the flash drive belonging to the parity group to be written (S15). That is, the CPU 30 calculates the ratio between the upper limit value of the number of writing times of the flash drive and the number of writing times, and registers the calculation result in the drive management table 200 as the writing ratio. Thereafter, the CPU 30 shifts the free area address of the flash drive belonging to the parity group to be written to the next free area address (S16), and then proceeds to the processing of step 17.
  • the CPU 30 determines whether or not the write ratio of the flash drives belonging to the parity group to be written has exceeded a threshold value (S17).
  • step S17 When the CPU 30 obtains a negative determination result in step S17 in the normal mode, that is, when it is determined that the write ratio of the flash drive does not exceed the threshold value, the CPU 30 ends the processing in this routine.
  • step S17 when the CPU 30 obtains a positive determination result in step S17 during the normal mode, for example, among the flash drives belonging to the parity group to be written, there is a flash drive whose write ratio exceeds the threshold value. In this case, the concentration mode flag of the parity group to be written is set to “1”, and the information in the concentration mode management table 400 is updated (S18).
  • the CPU 30 fetches the value of the write count counter of each flash drive belonging to the parity group to be written from the write count counter field 200G of the drive management table 200, and the total of the fetched values is the value of the parity group counter. Is registered in the centralized mode management table 400 (S19), and the processing in this routine is terminated.
  • step S12 if a positive determination result is obtained in step S12, that is, if the concentration mode flag of the parity group to be written is determined to be 1, the CPU 30 sets the concentration mode flag to “1” in step S18.
  • the write mode is switched from the normal mode to the concentrated mode, the write program 102 in the concentrated mode is started, and the process of the write program 102 in the concentrated mode is executed. (S20) After that, the processing in this routine is terminated.
  • FIG. 9 is a flowchart for explaining the processing of the writing program in the concentrated mode.
  • this process is the specific content of step S ⁇ b> 20 in FIG. 8, and is started when the CPU 30 starts the writing program 102 in the concentrated mode stored in the local memory 36.
  • the CPU 30 When the data write mode is switched from the normal mode to the centralized mode, the CPU 30 refers to the drive management table 200 and determines whether the value of the write count counter of the flash drive to be processed in the centralized mode is zero. It is determined whether or not (S31).
  • step S31 When a positive determination result is obtained in step S31, that is, when it is determined that the write count counter value of the flash drive to be processed in the centralized mode is 0, the CPU 30 determines that the write count counter value is 0.
  • the flash drive that is not is switched as the data write destination by round robin (S32), and the process proceeds to step S33.
  • the parity group to be processed in the centralized mode is the parity group of # 1, and among the flash drives belonging to this parity group, data is written to the flash drive with the drive number “0”.
  • the flash drive write count counter is updated from “2” to “0”, and the other three flash drives (flash drives with drive numbers “1” to “3”) are updated.
  • the CPU 30 selects a data write destination from the flash drives having the drive numbers “1” to “3”.
  • step S31 When a negative determination result is obtained in step S31, that is, when it is determined that the write count counter value of the flash drive to be processed in the centralized mode is not 0, the CPU 30 determines that the write count counter value is 0.
  • a flash drive that is not a data (a flash drive in which data writing has not been completed in one data writing process) or a flash drive selected in step 32 as a data write destination, and a free flash drive that is a data write destination The area is referred to, and data to be processed by the write command is written into the empty area obtained by this reference (S33).
  • the CPU 30 refers to the drive management table 200, decrements the value of the write count counter of the flash drive that is the data write destination, updates the information in the drive management table 200 (S34), and then concentrates it.
  • the value of the parity group counter of the parity group to which the flash drive that is the data write destination belongs is decremented by 1, and the information in the centralized mode management table 400 is updated (S35).
  • the CPU 30 refers to the centralized mode management table 400 to determine whether or not the value of the parity group counter of the parity group to which the flash drive that is the data write destination belongs is 0 (S36).
  • the CPU 30 uses the value of the write count counter in the drive management table 200 as a source. (Eg, “2”, “1”, “1”, “1”) (S37), and the parity group counter value of the centralized mode management table 400 is restored to the original value, eg, “5” (S37).
  • S38 the process proceeds to step S39.
  • step S36 when the CPU 30 obtains a negative determination result in step S36 or when the process of step S38 is performed, the CPU 30 increases the value of the number of times of writing to the flash drive that is the data writing destination, and the result is stored in the drive management table. 200 (S39), the write ratio of the flash drive that is the data write destination is calculated, and the calculation result is registered in the drive management table 200 (S40), and the free area address of the flash drive that is the data write destination Is shifted to the next free area address (S41), and the processing in this routine is terminated.
  • the parity group to be processed in the centralized mode is the parity group # 1, and among the flash drives belonging to this parity group, the flash drive with the drive number “0” (
  • the CPU 30 writes the drive management table 200 in the process of executing the processes in steps S31 to S41.
  • the value of the number counter (the value of the write number counter of the flash drive with the drive number “0”) is updated from “2” to “1”, and the value of the parity group counter in the centralized mode management table 400 is changed from “5”. It is updated to “4”.
  • the value of the write count counter (drive numbers “0” to “3” of the drive numbers “0” to “3”) is stored.
  • the value of the write count counter is updated to “0”
  • the value of the parity group counter of the centralized mode management table 400 is updated to “0”
  • the value of the write count counter of the drive management table 200 is updated.
  • the value of the parity group counter in the centralized mode management table 400 is returned to the original value (the value set in step S2).
  • FIG. 10 is a flowchart for explaining processing of the operation program after drive replacement. This process is the specific content of step S7 in FIG. 7, and is started when the CPU 30 starts the operation program 104 after the drive replacement stored in the local memory 36.
  • the CPU 30 refers to the setting management table 500 stored in the shared memory 24 and operates after the drive replacement. It is determined whether or not the policy of the policy 550 is “B” (S51).
  • step S51 the CPU 30 obtains a positive determination result in step S51, that is, if the operation policy after replacement is “B”
  • the CPU 30 continues the processing in the centralized mode (S52) and ends the processing in this routine.
  • the new flash drive after replacing the drive, the new flash drive is selected as the flash drive to be processed in the centralized mode, and the data to be processed by write access is written to the selected new flash drive. It is possible to execute a process of writing data in a concentrated manner. When this process is selected, write data is concentrated and written to a new flash drive after replacement, so that the lifetime of the entire flash drive can be extended and the cost of the entire flash drive can be reduced.
  • step S51 if it is determined in step S51 that the operation policy after replacement is “A”, the CPU 30 switches the data writing mode from the centralized mode to the normal mode (S53), and ends the processing in this routine.
  • the new flash drive in the process of writing data in the normal mode for the new flash drive, the new flash drive is set as the flash drive to be processed in the centralized mode, provided that the number of writes exceeds the threshold. It is possible to execute a process of concentrating and writing the write data among the data to be processed by the write command to the selected new flash drive. When this process is selected, the time during which the performance is reduced can be suppressed, and the performance efficiency of the entire system can be improved.
  • step S2 of FIG. 7 when setting the ratio in the concentration mode, “c” can be selected as the setting value 500B corresponding to the concentration ratio pattern 520.
  • the flash drives belonging to the parity group are composed of four flash drives, the number of times data is written to one centralized flash drive (a specific flash drive to which data writing is concentrated) is set. “1” can be set, and the number of data writes to the other three flash drives can be set to “0”. In this case, the ratio of the number of times data is written to the four flash drives is 1: 0: 0: 0. That is, write data other than parity data among data to be processed by a write command can be written only in a specific flash drive.
  • the controller 20 when the controller 20 receives a write command from the host 10, it selects an unallocated logical volume from a plurality of logical volumes stored in the pool, and selects the selected logical volume. Then, the data is assigned to a virtual volume to be accessed by the host 10 and data is written to the logical volume assigned to the virtual volume.
  • the plurality of logical volumes stored in the pool are configured by a plurality of flash drives that form a RAID group or a parity group, and the controller 20 allocates free areas (data blocks) of the plurality of flash drives to the RAID group or
  • the controller 20 performs data (processing with a write command) only on a specific flash drive (single flash drive) among the flash drives belonging to the RAID group or parity group in the centralized mode.
  • write data other than parity data cannot be written. That is, when free areas of a plurality of flash drives are managed in units of RAID groups or parity groups, the controller 20 selects a free area of only a specific flash drive from the free areas of the plurality of flash drives. It is not possible.
  • the controller 20 includes a plurality of logical volumes stored in the pool even if the plurality of logical volumes stored in the pool are configured by a plurality of flash drives that configure a RAID group or a parity group.
  • the free space of the logical volume is managed for each flash drive, and in the centralized mode, data (write command should be processed only for a specific flash drive (single flash drive) among the flash drives belonging to the RAID group or parity group)
  • a logical volume composed of free areas (data blocks) of a specific flash drive is assigned to a virtual volume.
  • the controller 20 should process data (write command) only on a specific flash drive (single flash drive) among the flash drives belonging to the RAID group or parity group in the centralized mode.
  • data write data other than parity data
  • write data in the normal mode, write data is distributed and written to each of the flash devices FD1 to FD4, and in the concentrated mode, the write data is concentrated and written to the specific flash drive FD1. It is possible to prevent a plurality of flash drives from reaching the end of their lives simultaneously while keeping the entire life of the drive long.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • each of the above-described configurations, functions, etc. may be realized by hardware by designing a part or all of them, for example, by an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files that realize each function is stored in memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC (Integrated Circuit) card, an SD (Secure Digital) memory card, a DVD ( It can be recorded on a recording medium such as Digital Versatile Disc).

Landscapes

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

Abstract

 フラッシュメモリで構成される複数の記憶デバイスに対するデータの入出力を制御するコントローラを有し、コントローラは、各記憶デバイスに対するデータの書き込み回数を記憶デバイス毎に管理し、アクセス要求元からライトコマンドを受信した際に、いずれかの記憶デバイスの中に、データの書き込み回数が閾値を超えた記憶デバイスが存在する場合、データの書き込みモードが、集中モードであると判定し、データの書き込み回数が閾値を超えた記憶デバイスを特定の記憶デバイスとして選択し、選択した特定の記憶デバイスに対して、ライトコマンドで処理すべきデータを集中させて書き込む。

Description

ストレージ装置及びそのデータ処理方法
 本発明は、記憶媒体に、フラッシュメモリを用いた記憶デバイスに対するデータの入出力を制御するストレージ装置及びそのデータ処理方法に関する。
 ストレージ装置における記憶媒体として、フラッシュメモリを用いた記憶デバイス(例えば、フラッシュドライブ)を用いた場合、データの書き込み回数が上限値を超えると、記憶デバイスが正しく動作しなくなり、記憶デバイスの寿命として、記憶デバイスを交換する必要がある。そのため、データを複数の記憶デバイスに分散させて書き込み、記憶デバイス単体および記憶デバイスを含むストレージシステム全体の寿命を長くすることが行われている。
 しかし、複数の記憶デバイスにデータの書き込みを分散させると、各記憶デバイスの寿命が均一化され、複数の記憶デバイスを同時に交換する事態が生じ、交換の対象となる各記憶デバイスに格納されているデータを予備の記憶デバイスに退避させるための処理として、複数のダイナミックスペアリングの処理が発生するため、ストレージシステムの性能が低下する。
 なお、特許文献1には、予備ディスクと通常ディスクを適宜交換することにより、複数の記憶媒体が同時に書き込み回数の上限に達することを抑制する技術が開示されている。
特開2013-41394号公報
 特許文献1に記載された技術では、各記憶デバイスにデータの書き込みを分散させることについては想定されていないため、各記憶デバイスの寿命が短くなるという課題があり、従来技術では、各記憶デバイスにデータの書き込みを分散しても、各記憶デバイスの寿命を伸ばしつつ、複数の記憶デバイスが同時に寿命を迎えることを回避することはできない。
 本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、各記憶デバイスにデータの書き込みを分散させることを基本として、各記憶デバイスの寿命を長く保ちつつ、複数の記憶デバイスが同時に寿命を迎えることを抑制することができるストレージ装置及びそのデータ処理方法を提供することにある。
 前記課題を解決するために、本発明は、フラッシュメモリで構成される複数の記憶デバイスと、アクセス要求元からのアクセスを基に前記複数の記憶デバイスに対するデータの入出力を制御するコントローラと、を有し、前記コントローラは、前記アクセス要求元からライトコマンドを受信した際に、前記ライトコマンドで処理すべきデータの書き込みモードが、前記各記憶デバイスにデータを分散させて書き込む制御を実行するための通常モードであるか、或いは前記複数の記憶デバイスの中の特定の記憶デバイスにデータを集中させて書き込む制御を実行するための集中モードであるかを判定し、前記データの書き込みモードが、前記集中モードであると判定した場合、前記集中モードにおける処理対象となる記憶デバイスを前記特定の記憶デバイスとして前記複数の記憶デバイスの中から選択し、前記選択した特定の記憶デバイスに対して、前記ライトコマンドで処理すべきデータを集中させて書き込むことを特徴とする。
 本発明によれば、各記憶デバイスの寿命を長く保ちつつ、複数の記憶デバイスが同時に寿命を迎えることを抑制することができる。
本発明の概念を説明するための概念図である。 ストレージシステムの全体構成を説明するための全体構成図である。 (a)は、ローカルメモリの構成図、(b)は、共有メモリの構成図である。 ドライブ管理テーブルの構成図である。 (a)は、ドライブ種別管理テーブルの構成図、(b)は、集中モード管理テーブルの構成図である。 設定管理テーブルの構成図である。 ストレージシステム全体の処理を説明するためのフローチャートである。 集中モードへの切り替えプログラムの処理を説明するためのフローチャートである。 集中モード時の書き込みプログラムの処理を説明するためのフローチャートである。 ドライブ交換後の運用プログラムの処理を説明するためのフローチャートである。
 図1は、本発明の概念を説明するための概念図である。図1において、ホスト(ホスト計算機)10とネットワークを介して情報の授受を行うストレージ装置14は、フラッシュメモリで構成される複数の記憶デバイス、例えば、フラッシュSSD(Solid State Drive:以下、フラッシュドライブと称する。)FD1、FD2、FD3、FD4と、各フラッシュドライブFD1~FD4に対するデータの入出力を制御するコントローラ20から構成される。コントローラ20は、アクセス要求元となるホスト10からライトコマンドを受信した際に、このライトコマンドで処理すべきデータの書き込みモードが、各フラッシュドライブFD1~FD4にデータを分散させて書き込む制御を実行するための通常モードであるか、あるいは、複数のフラッシュドライブFD1~FD4の中の特定のフラッシュドライブにデータを集中させて書き込む制御を実行するための集中モードであるかを判定する。
 ここで、データの書き込みモードが通常モードであると判定した場合、コントローラ20は、例えば、ホスト10から受信したライトコマンドで処理すべきデータが、「A」、「B」、「C」、「D」、「E」、「F」である場合、ライトデータ「A」、「B」、「C」をそれぞれフラッシュドライブFD1、FD2、FD3のデータブロックに分散させて書き込むとともに、パリティデータ「P」をフラッシュドライブFD4のデータブロックに書き込む。さらに、コントローラ20は、ライトデータ「D」をフラッシュドライブFD4のデータブロックに書き込み、パリティデータ「P」をフラッシュドライブFD3のデータブロックに書き込み、ライトデータ「E」をフラッシュドライブFD1のデータブロックに、ライトデータ「F」をフラッシュドライブFD2のデータブロックに分散させて書き込む。
 一方、ホスト10からライトコマンドを受信した際に、例えば、フラッシュドライブFD1の書き込み回数が、閾値(書き込みモードを切り替えるための判定値)を超え、書き込みモードが集中モードであると判定した場合、コントローラ20は、フラッシュドライブFD1を、集中モードにおける処理対象となるフラッシュドライブとして選択し、選択したフラッシュドライブFD1に対して、受信したライトコマンドで処理すべきデータのうち、ライトデータ「G」、「H」、「I」をフラッシュドライブFD1のデータブロックに集中して書き込む。なお、この場合、パリティデータについては、ライトデータ「G」、「H」、「I」に対して、それぞれフラッシュドライブFD2、FD4、FD3のデータブロックに書き込む。すなわち、集中モードであっても、コントローラ20は、パリティデータ「P」については、各フラッシュドライブFD1~FD4のデータブロックに順番に分散させて書き込む。
 この後、データの書き込みモードが、集中モードである場合、コントローラ20は、フラッシュドライブFD1に対して、ライトデータの書き込みを集中して実行する。このように、通常モードでは、各フラッシュデバイスFD1~FD4のデータブロックにライトデータが分散して書き込まれ、集中モードでは、特定のフラッシュドライブFD1のデータブロックに対してライトデータが集中して書き込まれるため、ストレージ装置14全体の寿命を長く保ちつつ、複数のフラッシュドライブが同時に寿命を迎えるのを抑制することができる。
 また、フラッシュドライブFD1の書き込み回数が、書き込みモードを切り替えるための閾値を超えて、寿命を示す値になった場合は、フラッシュドライブFD1に対してダイナミックスペアリングの処理(記憶デバイスに対するエラー回数が閾値を超えたとき、あるいは記憶デバイスに対する書き込み回数が閾値に達したときに、当該記憶デバイスが閉塞する前に、当該記憶デバイスに格納されていたデータを予備の記憶デバイスに退避させる処理)が実行され、フラッシュドライブFD1に格納されたデータがスペアドライブSDに退避される。この後、フラッシュドライブFD1は、新規フラッシュドライブ(新規記憶デバイス)と交換される。
 新規フラッシュドライブに対しては、書き込み回数が閾値を超えたことを条件に、新規フラッシュドライブを集中モードにおける処理対象となるフラッシュドライブとして選択し、選択した新規フラッシュドライブに、ライトアクセスで処理すべきデータのうちライトデータを集中して書き込むことがきる。また、新規フラッシュドライブに対しては、ドライブ交換後から、新規フラッシュドライブを集中モードにおける処理対象となるフラッシュドライブとして選択し、選択した新規フラッシュドライブに、ライトアクセスで処理すべきデータのうちライトデータを集中して書き込むことがきる。
 「実施例」
 図2は、ストレージシステムの全体構成図である。図2において、ストレージシステムは、複数のホスト10と、ネットワーク12と、ストレージ装置14から構成され、各ホスト10がネットワーク12を介してストレージ装置14に接続される。
 ストレージ装置14は、コントローラ筺体16と、ドライブ筺体18から構成される。コントローラ筺体16には、コントローラ20、22が収納されるとともに、共有メモリ24が収納される。ドライブ筺体18には、記憶デバイスとして、例えば、複数のフラッシュドライブFD1~FDnが収納される。
 各ホスト10は、例えば、CPU(Central Processing Unit)、メモリ、入出力インタフェース等の情報処理資源を備えたコンピュータ装置であり、パーソナルコンピュータ、ワークステーション、メインフレームとして構成される。
 各ホスト10は、ストレージ装置14から提供される論理ボリュームを指定したアクセス要求(コマンド)、例えば、書き込み要求(ライトコマンド)あるいは読み出し要求(リードコマンド)をストレージ装置14に発行することで、指定の論理ボリュームにアクセスすることができる。この際、アクセス要求に、論理ボリュームを特定するための情報として、LUN(Logical Unit Number)とLBA(Logical Block Address)を付加することができる。
 ネットワーク12としては、例えば、SAN(Storage Area Network)、LAN(Local Area Network)、インターネット、専用回線、公衆回線などを用いることができる。なお、ネットワーク12には、例えば、CPU、メモリ、入出力インタフェース等の情報処理資源を備えたコンピュータ装置で構成される操作端末や管理サーバが接続されることもある。
 コントローラ20は、複数のフロントエンド(FE)26、28と、CPU30と、接続部32と、キャッシュメモリ34と、ローカルメモリ36と、複数のバックエンド(BE)38、40から構成され、フロントエンド26がネットワーク12に接続され、バックエンド38が各フラッシュドライブFD1~FDnに接続される。この際、コントローラ20は、各ホスト10からライトコマンドまたはリードコマンドを受信した際に、受信したライトコマンドまたはリードコマンドの内容を解析し、解析結果を基に各フラッシュドライブFD1~FDnに対するデータの入出力を制御する制御部として機能する。
 例えば、コントローラ20は、ホスト10からライトコマンドを受信した際に、ライトコマンドで処理すべきデータの書き込みモードが、各フラッシュドライブFD1~FDnにデータを分散させて書き込む制御を実行するための通常モードであるか、或いは複数のフラッシュドライブFD1~FDnの中の特定のフラッシュドライブにデータを集中させて書き込む制御を実行するための集中モードであるかを判定し、データの書き込みモードが、集中モードであると判定した場合、集中モードにおける処理対象となるフラッシュドライブを特定のフラッシュドライブとして複数のフラッシュドライブFD1~FDnの中から選択し、選択した特定のフラッシュドライブに対して、ライトコマンドで処理すべきデータを集中させて書き込む。
 この際、コントローラ20は、各フラッシュドライブFD1~FDnに対するデータの書き込み回数を、フラッシュドライブFD1~FDn毎に管理し、ライトコマンドを受信した際に、いずれかのフラッシュドライブの中に、データの書き込み回数が、予め設定された閾値を超えたフラッシュドライブが存在する場合、データの書き込みモードが、集中モードであると判定し、データの書き込み回数が、予め設定された閾値を超えたフラッシュドライブを特定のフラッシュドライブとして選択する。
 また、コントローラ20は、各フラッシュドライブFD1~FDnに対するデータの書き込み回数を、フラッシュドライブFD1~FDn毎に管理すると共に、各フラッシュドライブFD1~FDnの空き領域(データブロック)をフラッシュドライブFD1~FDn毎に管理し、ライトコマンドを受信した際に、いずれかのフラッシュドライブの中に、データの書き込み回数が、予め設定された閾値を超えたフラッシュドライブが存在する場合、データの書き込みモードが、集中モードであると判定し、且つデータの書き込み回数が、予め設定された閾値を超えたフラッシュドライブを特定のフラッシュドライブとして選択し、選択した特定のフラッシュドライブの空き領域を探索し、この探索で得られた空き領域に、ライトコマンドで処理すべきライトデータを集中して書き込む。
 さらに、コントローラ20は、ライトコマンドで処理すべきデータとして、複数のライトデータと、パリティデータが存在し、データの書き込みモードが、集中モードであると判定した場合、ライトデータを特定のフラッシュドライブに集中して書き込み、パリティデータを各フラッシュドライブFD1~FDnに分散させて書き込む。
 なお、コントローラ22は、コントローラ20と同様に、複数のフロントエンド(FE)26、28と、CPU30と、接続部32と、キャッシュメモリ34と、ローカルメモリ36と、複数のバックエンド(BE)38、40から構成され、各ホスト10からライトコマンドまたはリードコマンドを受信した際に、受信したライトコマンドまたはリードコマンドの内容を解析し、解析結果を基に各フラッシュドライブFD1~FDnに対するデータの入出力を制御する制御部として機能する。
 共有メモリ24は、コントローラ20、22が共有するプログラム等の情報を格納する記憶部として機能する。フロントエンド26は、ネットワーク12を介して各ホスト10と情報の授受を行うインタフェース部として構成される。
 CPU30は、コントローラ20全体を統括制御するプロセッサとして機能し、ホスト10からライトコマンドまたはリードコマンドを受信した際に、受信したライトコマンドまたはリードコマンドを基にデータの入出力処理を実行すると共に、ライトコマンドまたはリードコマンドに付加されたフレームの変換処理等を実行する。
 接続部32は、各フロントエンド26、28と各バックエンド38、40に接続されるとともにCPU30およびキャッシュメモリ34に接続され、且つ共有メモリ24を介してコントローラ22の接続部32に接続される。この際、接続部32は、各部を相互に接続するスイッチとして機能する。
 キャッシュメモリ34は、CPU30の処理対象となるデータを一時的に格納するデータ記憶部として機能する。ローカルメモリ36は、CPU30が起動するためのプログラム等の情報を格納する記憶部として機能する。バックエンド38は、内部ネットワーク(図示せず)を介して各フラッシュドライブFD1~FDnとデータの授受を行うインタフェース部として構成される。
 また、各フラッシュドライブFD1~FDnでRAID(Redundant Array of Inexpensive Disks)グループ、例えば、RAID4、RAID5、RAID6等を構成したり、各フラッシュドライブFD1~FDnを複数のRAIDグループに分割したりすることもできる。この際、各フラッシュドライブFD1~FDnの物理的記憶領域上に複数の論理ユニット(以下、LU(Logical Unit)と称することがある。)や複数の論理ボリュームを形成することもできる。
 図3は、ローカルメモリと共有メモリの構成図である。図3(a)において、ローカルメモリ36には、CPU30によって実行されるプログラムとして、集中モードへの切り替えプログラム100と、集中モード時の書き込みプログラム102と、ドライブ交換後の運用プログラム104が格納される。
 集中モードへの切り替えプログラム100は、CPU30が、通常モードから集中モードへ切り替えるときに用いるためのプログラムである。集中モード時の書き込みプログラム102は、CPU30が、集中モード時に、特定のフラッシュドライブにライトデータを集中して書き込むためのプログラムである。ドライブ交換後の運用プログラム104は、フラッシュドライブが新規のフラッシュドライブに交換された後、CPU30が、ドライブ交換後の運用ポリシー判定とモードの切り替えを行うためのプログラムである。
 図3(b)において、共有メモリ24には、CPU30が管理するためのテーブルとして、ドライブ管理テーブル200と、ドライブ種別管理テーブル300と、集中モード管理テーブル400と、設定管理テーブル500が格納される。
 図4は、ドライブ管理テーブルの構成図である。図4において、ドライブ管理テーブル200は、CPU30が、各フラッシュドライブFD1~FDnを管理するためのテーブルであって、ドライブ番号フィールド200Aと、書き込み回数フィールド200Bと、ドライブ種別フィールド200Cと、書き込み割合フィールド200Dと、パリティグループ番号フィールド200Eと、空き領域ブロックアドレスフィールド200Fと、書き込み回数カウンターフィールド200Gから構成される。
 ドライブ番号は、フラッシュドライブFD1~FDnの中の一つのフラッシュドライブを特定するための番号である。ドライブ番号フィールド200Aのエントリには、フラッシュドライブFD1~FDnの中の一つのフラッシュドライブを特定する番号として、例えば、「0」、・・・、「n」の情報が格納される。書き込み回数は、各フラッシュドライブFD1~FDnにデータが書き込まれた回数を示す情報である。例えば、ドライブ番号「0」のフラッシュドライブFDの書き込み回数が、「9200」である場合、書き込み回数フィールド200Bのエントリには、「9200」の情報が格納される。
 ドライブ種別は、フラッシュドライブFD1~FDnを複数種類のドライブに分類した際の種別に関する情報である。例えば、ドライブ番号「0」のフラッシュドライブFDの種別が「ドライブ1」である場合、ドライブ種別フィールド200Cのエントリには、「ドライブ1」の情報が格納される。
 書き込み割合は、各フラッシュドライブFD1~FDnの書き込み回数の上限値に対する書き込み回数の割合を示す情報である。例えば、ドライブ番号「0」のフラッシュドライブFDの書き込み回数上限値が、「10000」であって、書き込み回数が、「9200」である場合、書き込み割合フィールド200Dのエントリには、「92パーセント」の情報が格納される。
 パリティグループ番号は、各フラッシュドライブFD1~FDnを複数のパリティグループに分類した際のグループ番号を示す情報である。例えば、ドライブ番号「0」~「3」のフラッシュドライブが#1のパリティグループに属する場合、これらフラッシュドライブに対するパリティグループ番号として、パリティグループ番号フィールド200Eのエントリには、「1」の情報が格納される。
 空き領域ブロックアドレスは、各フラッシュドライブFD1~FDnの空き領域ブロックの先頭アドレスを示す情報である。例えば、ドライブ番号「0」のフラッシュドライブの空き領域ブロックの先頭アドレスが、「0x0AAA」である場合、空き領域ブロックアドレスフィールド200Fのエントリには、「0x0AAA」の情報が格納される。
 書き込み回数カウンターは、各フラッシュドライブFD1~FDnに設定された書き込み回数(データの書き込み回数)を示す情報である。例えば、1回のデータ書き込み処理で、#1のパリティグループに属する各フラッシュドライブ(ドライブ番号「0」~「3」)に設定された書き込み回数が、「2」、「1」、「1」、「1」である場合、書き込み回数カウンターフィールド200Gのエントリには、「2」、「1」、「1」、「1」の情報が格納される。
 図5は、ドライブ種別管理テーブルと集中モード管理テーブルの構成図である。図5(a)において、ドライブ種別管理テーブル300は、CPU30が、各フラッシュドライブFD1~FDnの種別と書き込み回数の上限値とを管理するためのテーブルであって、ドライブ種別フィールド300Aと、書き込み回数上限値フィールド300Bから構成される。
 ドライブ種別フィールド300Aのエントリには、ドライブ管理テーブル200のドライブ種別フィールド200Cに格納された情報と同様の情報が格納される。書き込み回数上限値は、フラッシュドライブFD1~FDnに対して、ドライブ種別毎に設定される、データの書き込み回数の上限値を示す情報である。書き込み回数上限値フィールド300Bのエントリには、例えば、ドライブ種別が、「ドライブ1」のフラッシュドライブに対しては、「10000」の情報が格納される。
 図5(b)において、集中モード管理テーブル400は、CPU30が、集中モード時に、各パリティグループのモードやカウンターを管理するためのテーブルであって、パリティグループ番号フィールド400Aと、パリティグループ集中モードフラグフィールド400Bと、パリティグループカウンターフィールド400Cから構成される。
 パリティグループ番号フィールド400Aのエントリには、ドライブ管理テーブル200のパリティグループ番号フィールド200Eの情報と同様の情報が格納される。
 パリティグループ集中モードフラグは、パリティグループに属するフラッシュドライブに対して、集中モードの処理を実行するか否かを示す情報である。パリティグループ集中モードフラグフィールド400Bのエントリには、例えば、パリティグループ「1」に属するフラッシュドライブに対して、集中モードによる処理を実行する場合、「1」の情報が格納され、パリティグループ「2」に属するフラッシュドライブに対して、集中モードによる処理が実行されていない場合には、「0」の情報が格納される。
 パリティグループカウンターは、1回のデータ書き込み処理において、パリティグループに属するフラッシュドライブ全体の書き込み回数を示す情報である。パリティグループカウンターフィールド400Cのエントリには、例えば、パリティグループ「1」に属するフラッシュドライブに対する、データの書き込み回数の総計が5回である場合、「5」の情報が格納される。
 図6は、設定管理テーブルの構成図である。図6において、設定管理テーブル500は、ホスト10またはネットワーク12に接続される管理サーバ(図示せず)によって管理され、共有メモリ24に格納されるテーブルであって、項目フィールド500Aと、設定値フィールド500Bから構成される。項目は、集中切替閾値510と、集中比率パターン520と、集中ドライブ比率530と、集中以外のドライブ比率540と、ドライブ交換後の運用ポリシー550から構成される。
 集中切替閾値510は、CPU30が、データの書き込みモードを通常モードから集中モードへ切り替えるための閾値(判定値)であって、フラッシュドライブに対するデータの書き込み割合に関連づけて設定された閾値である。例えば、フラッシュドライブに対するデータの書き込み割合が、「90パーセント」を超えた場合に、データの書き込みモードを通常モードから集中モードへ切り替える際には、この集中切替閾値510に対応する設定値500Bのエントリには、閾値として、「90パーセント」の情報が格納される。
 集中比率パターン520は、CPU30が、集中モード時に、データの書き込みを集中させる対象となる集中フラッシュドライブに対するデータの書き込み回数と、データの書き込みを集中させないフラッシュドライブ(集中フラッシュドライブ以外のフラッシュドライブ)に対するデータの書き込み回数との比率をパターン化した情報である。集中比率パターン520に対応する設定値500Bのエントリには、例えば、「a」または「b」の情報が格納される。
 集中比率パターン520に対応する設定値500Bの「a」は、例えば、パリティグループに属するフラッシュドライブが4個のフラッシュドライブで構成され、ライトコマンドで処理すべきデータを、各フラッシュドライブのデータブロックの中の5個のデータブロックに分けて、5回書き込む必要がある場合、1個の集中フラッシュドライブ(データの書き込みを集中させる対象となる特定のフラッシュドライブ)に対するデータの書き込み回数が「2」となり、それ以外の3個のフラッシュドライブに対するデータの書き込み回数が「1」となることを意味する。この場合、4つのフラッシュドライブに対するデータの書き込み回数の比率は、2:1:1:1となる。
 また、集中比率パターン520に対応する設定値500Bの「b」は、例えば、パリティグループに属するフラッシュドライブが4個のフラッシュドライブで構成され、ライトコマンドで処理すべきデータを、各フラッシュドライブのデータブロックの中の4個のデータブロックに分けて、4回書き込む必要がある場合、1個の集中フラッシュドライブ(データの書き込みを集中させる対象となる特定のフラッシュドライブ)に対するデータの書き込み回数が「3」となり、それ以外の3個のフラッシュドライブに対するデータの書き込み回数が3個で「1」となることを意味する。この場合、1個の集中フラッシュドライブに対するデータの書き込み回数と、それ以外の3個のフラッシュドライブに対するデータの書き込み回数の比率は、3:1となる。
 集中ドライブ比率530は、CPU30が、集中モード時に、データの書き込みを集中させる対象となる集中フラッシュドライブに対するデータの書き込み回数と、データの書き込みを集中させないフラッシュドライブ(集中フラッシュドライブ以外のフラッシュドライブ)に対するデータの書き込み回数との比率を示す情報のうち、集中フラッシュドライブに対するデータの書き込み回数を示す情報である。集中比率パターン520に対応する設定値500Bのエントリに、例えば、「a」が格納され、4つのフラッシュドライブに対するデータの書き込み回数の比率が、「2:1:1:1」である場合、集中ドライブ比率530の設定値500Bのエントリには、「2」の情報が格納される。
 集中以外のドライブ比率540は、CPU30が、集中モード時に、データの書き込みを集中させる対象となる集中フラッシュドライブに対するデータの書き込み回数と、データの書き込みを集中させないフラッシュドライブ(集中フラッシュドライブ以外のフラッシュドライブ)に対するデータの書き込み回数との比率を示す情報のうち、集中フラッシュドライブ以外のフラッシュドライブに対するデータの書き込み回数を示す情報である。集中比率パターン520に対応する設定値500Bのエントリに、例えば、「a」が格納され、4つのフラッシュドライブに対するデータの書き込み回数の比率が、「2:1:1:1」である場合、集中以外のドライブ比率540の設定値500Bのエントリには、「1」の情報が格納される。
 ドライブ交換後の運用ポリシー550は、フラッシュドライブFD1~FDnのうちいずれかのフラッシュドライブが新規のフラッシュドライブに交換された後の運用ポリシーを示す情報である。ドライブ交換後の運用ポリシー550の設定値500Bのエントリには、「A」または「B」の情報が格納される。
 「A」は、フラッシュドライブFD1~FDnのうちいずれかのフラッシュドライブが新規のフラッシュドライブに交換された場合、CPU30が、交換された新規フラッシュドライブに対しても、データの書き込み回数が閾値を超えるまでは、通常モードによるデータの書き込み処理を実行し、新規のフラッシュドライブに対するデータの書き込み回数が閾値を超えた場合、新規のフラッシュドライブに対してデータの書き込みを集中して実行することを意味する情報である。
 一方、「B」は、フラッシュドライブFD1~FDnのうちいずれかのフラッシュドライブが新規のフラッシュドライブに交換された場合、CPU30が、新規フラッシュドライブに対して、ドライブ交換後から、集中モードで新規のフラッシュドライブにデータの書き込みを実行することを意味する情報である。
 図7は、ストレージシステム全体の処理を説明するためのフローチャートである。図7において、ホスト10または管理サーバによる初期設定処理として、データの書き込みモードを通常モードから集中モードに切り替えるための閾値を設定する閾値設定処理(S1)と、集中モード時におけるフラッシュドライブ間の書き込み回数の比率を設定するための設定処理(S2)と、フラッシュドライブが新規のフラッシュドライブに交換された後の運用ポリシーを選択するための選択処理(S3)が実行される。
 ステップS1では、データの書き込みモードを通常モードから集中モードに切り替えるための閾値として、各フラッシュドライブに対するデータの書き込み割合に対応する値、例えば、「90パーセント」が設定される。この場合、設定管理テーブル500の集中切替閾値510に対応する設定値500Bのエントリに、閾値として、「90パーセント」が登録される。なお、閾値は、書き込み容量や使い方を基に任意の値に設定することができる。この際、閾値としては、各フラッシュドライブに対するデータの書き込み回数が、各フラッシュドライブの寿命を示す上限値よりも低い値であって、「99パーセント」未満が望ましい。
 ステップS2で、集中モード時の比率に関する情報が設定されると、設定管理テーブル500のうち、集中比率パターン520と、集中ドライブ比率530と、集中以外のドライブ比率540の各設定値500Bのエントリには、例えば、「a」、「2」、「1」の情報がそれぞれ登録される。また、ステップS3で、交換後の運用ポリシーが選択されると、設定管理テーブル500のうち、ドライブ交換後の運用ポリシー550に対応する設定値500Bのエントリに、「A」または「B」の情報が登録される。
 次に、ストレージ装置14における保守処理として、集中モードへの切り替えプログラムが実行され(S4)、その後ダイナミックスペアリングの処理が実行され(S5)、次に、データの書き込み回数が寿命になったフラッシュドライブを新規のフラッシュドライブに交換するための処理が行われ(S6)、その後、新規のフラッシュドライブを運用するためのプログラムとして、ドライブ交換後の運用プログラムが実行される(S7)。
 ステップS5で、ダイナミックスペアリングの処理が実行されると、コントローラ20は、データの書き込み回数が寿命になったフラッシュドライブに格納されているデータを、スペアドライブに退避するための処理を実行するので、その間、各ホスト10からのアクセスに対する応答性が低下する。即ち、ストレージシステムの性能が一時低下する。
 図8は、集中モードへの切り替えプログラムの処理を説明するためのフローチャートである。図8において、この処理は、図7のステップS4の具体的な内容であって、CPU30が、集中モードへの切替プログラム100を起動することによって開始される。
 CPU30は、データの書き込みモードが通常モードでデータの書き込みを行っている過程で、ホスト10からライトアクセスでライトコマンドを受信した場合(S11)、ライトコマンドを解析して、書き込み対象となるパリティグループ(PG)の集中モードフラグが1であるか否かを判定する(S12)。この際、CPU30は、集中モード管理テーブル400を参照し、書き込み対象となるパリティグループの集中モードフラグが1であるか否かを判定する。
 CPU30は、ステップS12で否定の判定結果を得た場合、即ち、書き込み対象となるパリティグループに対して集中モードによる処理が実行されていない場合、パリティグループ集中モードフラグは「0」であるので、書き込み対象となるパリティグループに属するフラッシュドライブの空き領域を参照し、参照結果を基に書き込み対象となるパリティグループに属するフラッシュドライブの空き領域に、ライトコマンドで処理すべきデータを通常モードで書き込む(S13)。
 次に、CPU30は、書き込み対象となるパリティグループに属するフラッシュドライブの書き込み回数を1増やし(S14)、書き込み対象となるパリティグループに属するフラッシュドライブの書き込み割合を計算する(S15)。即ち、CPU30は、フラッシュドライブの書き込み回数上限値と書き込み回数との割合を計算し、計算結果を書き込み割合としてドライブ管理テーブル200に登録する。この後、CPU30は、書き込み対象となるパリティグループに属するフラッシュドライブの空き領域アドレスを次の空き領域アドレスにずらし(S16)、その後、ステップ17の処理に移行する。
 次に、CPU30は、通常モード時に、書き込み対象となるパリティグループに属するフラッシュドライブの書き込み割合が閾値を超えたか否かを判定する(S17)。
 CPU30は、通常モード時に、ステップS17で否定の判定結果を得た場合、即ち、フラッシュドライブの書き込み割合が閾値を超えていないと判定した場合、このルーチンでの処理を終了する。
 一方、CPU30は、通常モード時に、ステップS17で肯定の判定結果を得た場合、例えば、書き込み対象となるパリティグループに属する各フラッシュドライブの中に、書き込み割合が閾値を超えたフラッシュドライブが存在する場合、書き込み対象となるパリティグループの集中モードフラグを「1」にセットし、集中モード管理テーブル400の情報を更新する(S18)。
 次に、CPU30は、書き込み対象となるパリティグループに属する各フラッシュドライブの書き込み回数カウンターの値を、ドライブ管理テーブル200の書き込み回数カウンターフィールド200Gから取り込み、各取り込んだ値の合計をパリティグループカウンターの値として、集中モード管理テーブル400に登録し(S19)、このルーチンでの処理を終了する。
 この際、CPU30は、例えば、#1のパリティグループに属するフラッシュドライブを書き込み対象とした場合、書き込み対象となるパリティグループに属する各フラッシュドライブの書き込み回数カウンターの値として、「2」、「1」、「1」、「1」を、ドライブ管理テーブル200の書き込み回数カウンターフィールド200Gから取り込み、取り込んだ値の合計=「5」をパリティグループカウンターの値として、集中モード管理テーブル400のパリティグループカウンターフィールド400Cに登録する。
 一方、ステップS12で肯定の判定結果を得た場合、即ち、書き込み対象となるパリティグループの集中モードフラグが1であると判定した場合、CPU30は、ステップS18で、集中モードフラグが「1」にセットされたパリティグループに対して、データの書き込みを行うに際して、書き込みモードを通常モードから集中モードに切り替えて、集中モード時の書き込みプログラム102を起動し、集中モード時の書き込みプログラム102の処理を実行し(S20)、その後、このルーチンでの処理を終了する。
 図9は、集中モード時の書き込みプログラムの処理を説明するためのフローチャートである。図9において、この処理は、図8のステップS20の具体的な内容であって、CPU30が、ローカルメモリ36に格納された集中モード時の書き込みプログラム102を起動することによって開始される。
 CPU30は、データの書き込みモードが、通常モードから集中モードに切り替わった際に、ドライブ管理テーブル200を参照し、集中モード時の処理の対象となるフラッシュドライブの書き込み回数カウンターの値が0であるか否かを判定する(S31)。
 ステップS31で肯定の判定結果を得た場合、即ち、集中モード時の処理の対象となるフラッシュドライブの書き込み回数カウンターの値が0であると判定した場合、CPU30は、書き込み回数カウンターの値が0ではないフラッシュドライブを、データの書き込み先としてラウンドロビンで切り替え(S32)、ステップS33の処理に移行する。
 この際、例えば、集中モード時の処理の対象となるパリティグループが#1のパリティグループであって、このパリティグループに属するフラッシュドライブのうちドライブ番号「0」のフラッシュドライブについて、データの書き込みを2回実行し、このフラッシュドライブの書き込み回数カウンターの値が「2」から「0」に更新され、他の3個のフラッシュドライブ(ドライブ番号「1」~「3」のフラッシュドライブ)の書き込み回数カウンターの値がそれぞれ「1」である場合、CPU30は、ドライブ番号「1」~「3」のフラッシュドライブの中からデータの書き込み先を選択する。
 ステップS31で否定の判定結果を得た場合、即ち、集中モード時の処理の対象となるフラッシュドライブの書き込み回数カウンターの値が0ではないと判定した場合、CPU30は、書き込み回数カウンターの値が0ではないフラッシュドライブ(1回のデータ書き込み処理においてデータの書き込みが完了していないフラッシュドライブ)又は、ステップ32で選択されたフラッシュドライブをデータの書き込み先とし、データの書き込み先となるフラッシュドライブの空き領域を参照し、この参照で得られた空き領域に、ライトコマンドで処理すべきデータを書き込む(S33)。
 この後、CPU30は、ドライブ管理テーブル200を参照し、データの書き込み先となるフラッシュドライブの書き込み回数カウンターの値を1減らして、ドライブ管理テーブル200の情報を更新し(S34)、次に、集中モード管理テーブル400を参照し、データの書き込み先となるフラッシュドライブが属するパリティグループのパリティグループカウンターの値を1減らし、集中モード管理テーブル400の情報を更新する(S35)。
 次に、CPU30は、集中モード管理テーブル400を参照し、データの書き込み先となるフラッシュドライブが属するパリティグループのパリティグループカウンターの値が0であるか否かを判定する(S36)。ステップS36で肯定の判定結果を得た場合、即ち、データの書き込み先となるフラッシュドライブが属するパリティグループに対するデータの書き込みが終了した場合、CPU30は、ドライブ管理テーブル200の書き込み回数カウンターの値を元の値、例えば、「2」、「1」、「1」、「1」に戻し(S37)、集中モード管理テーブル400のパリティグループカウンターの値を元の値、例えば、「5」に戻し(S38)、ステップS39の処理に移行する。
 一方、CPU30は、ステップS36で否定の判定結果を得た場合、あるいはステップS38の処理を行った場合、データの書き込み先となるフラッシュドライブの書き込み回数の値を1増やし、その結果をドライブ管理テーブル200に登録し(S39)、データの書き込み先となるフラッシュドライブの書き込み割合を計算し、この計算結果をドライブ管理テーブル200に登録し(S40)、データの書き込み先となるフラッシュドライブの空き領域アドレスを次の空き領域アドレスにずらし(S41)、このルーチンでの処理を終了する。
 この際、1回目の処理で、例えば、集中モード時の処理の対象となるパリティグループが#1のパリティグループであって、このパリティグループに属するフラッシュドライブのうちドライブ番号「0」のフラッシュドライブ(書き込み回数カウンターの値が「2」であるフラッシュドライブ)がデータの書き込み先として、ステップS31で選択された場合、CPU30が、ステップS31~S41の処理を実行する過程で、ドライブ管理テーブル200の書き込み回数カウンターの値(ドライブ番号「0」のフラッシュドライブの書き込み回数カウンターの値)が、「2」から「1」に更新され、集中モード管理テーブル400のパリティグループカウンターの値が、「5」から「4」に更新される。
 その後、#1のパリティグループに属する全てのフラッシュドライブに対して、データの書き込みが実行されると、ドライブ管理テーブル200の書き込み回数カウンターの値(ドライブ番号「0」~「3」のフラッシュドライブの書き込み回数カウンターの値)が、それそれ「0」に更新され、集中モード管理テーブル400のパリティグループカウンターの値が、「0」に更新され、その後、ドライブ管理テーブル200の書き込み回数カウンターの値が元の値(ステップS2で設定された値)に戻されると共に、集中モード管理テーブル400のパリティグループカウンターの値が元の値(ステップS2で設定された値)に戻される。
 図10は、ドライブ交換後の運用プログラムの処理を説明するためのフローチャートである。この処理は、図7のステップS7の具体的な内容であって、CPU30が、ローカルメモリ36に格納されたドライブ交換後の運用プログラム104を起動することによって開始される。
 図10において、CPU30は、フラッシュドライブFD1~FDnのうちいずれかのフラッシュドライブが新規のフラッシュドライブに交換された場合、共有メモリ24に格納された設定管理テーブル500を参照し、ドライブ交換後の運用ポリシー550のポリシーが「B」であるか否かを判定する(S51)。
 CPU30は、ステップS51で肯定の判定結果を得た場合、即ち、交換後の運用ポリシーが「B」である場合、集中モードによる処理を継続し(S52)、このルーチンでの処理を終了する。この場合、新規フラッシュドライブに対しては、ドライブ交換後から、新規フラッシュドライブを集中モードにおける処理対象となるフラッシュドライブとして選択し、選択した新規フラッシュドライブに、ライトアクセスで処理すべきデータのうちライトデータを集中して書き込む処理を実行することができる。この処理を選択した場合、交換後から、新規フラッシュドライブにライトデータを集中して書き込まれるので、フラッシュドライブ全体の寿命を長くすることができ、フラッシュドライブ全体のコストを軽減することができる。
 一方、ステップS51で交換後の運用ポリシーが「A」であると判定した場合、CPU30は、データの書き込みモードを集中モードから通常モードに切り替え(S53)、このルーチンでの処理を終了する。この場合、新規フラッシュドライブに対しては、通常モードでデータの書き込みを行っている過程で、書き込み回数が閾値を超えたことを条件に、新規フラッシュドライブを集中モードにおける処理対象となるフラッシュドライブとして選択し、選択した新規フラッシュドライブに、ライトコマンドで処理すべきデータのうちライトデータを集中して書き込む処理を実行することがきる。この処理を選択した場合、性能が低下する時間を抑えることができ、システム全体としての性能効率を良くすることができる。
 本実施例では、図7のステップS2で、集中モード時の比率を設定する際に、集中比率パターン520に対応する設定値500Bとして、「a」または「b」を選択する場合について説明したが、図7のステップS2で、集中モード時の比率を設定する際に、集中比率パターン520に対応する設定値500Bとして、「c」を選択することもできる。この際、例えば、パリティグループに属するフラッシュドライブが4個のフラッシュドライブで構成される場合、1個の集中フラッシュドライブ(データの書き込みを集中させる対象となる特定のフラッシュドライブ)に対するデータの書き込み回数を「1」とし、それ以外の3個のフラッシュドライブに対するデータの書き込み回数を「0」とすることができる。この場合、4つのフラッシュドライブに対するデータの書き込み回数の比率は、1:0:0:0となる。即ち、ライトコマンドで処理すべきデータのうち、パリティデータ以外のライトデータを、特定のフラッシュドライブのみに集中させて書き込むこともできる。
 また、Thin provisioningの環境下では、コントローラ20は、ホスト10からライトコマンドを受信した際に、プールに格納された複数の論理ボリュームの中から未割当の論理ボリュームを選択し、選択した論理ボリュームを、ホスト10のアクセス対象となる仮想ボリュームに割当て、仮想ボリュームに割当てられた論理ボリュームにデータを書き込む。
 この際、プールに格納される複数の論理ボリュームが、RAIDグループ又はパリティグループを構成する複数のフラッシュドライブで構成され、コントローラ20が、複数のフラッシュドライブの空き領域(データブロック)を、RAIDグループ又はパリティグループ単位で管理している場合には、コントローラ20は、集中モードで、RAIDグループ又はパリティグループに属するフラッシュドライブのうち特定のフラッシュドライブ(単一のフラッシュドライブ)のみにデータ(ライトコマンドで処理すべきデータのうち、パリティデータ以外のライトデータ)を書き込むことはできない。即ち、複数のフラッシュドライブの空き領域が、RAIDグループ又はパリティグループ単位で管理されている場合、コントローラ20は、複数のフラッシュドライブの空き領域の中から、特定のフラッシュドライブのみの空き領域を選択することはできない。
 そこで、本実施例では、コントローラ20は、プールに格納される複数の論理ボリュームが、RAIDグループ又はパリティグループを構成する複数のフラッシュドライブで構成される場合であっても、プールに格納される複数の論理ボリュームの空き領域をフラッシュドライブ毎に管理し、集中モードで、RAIDグループ又はパリティグループに属するフラッシュドライブのうち特定のフラッシュドライブ(単一のフラッシュドライブ)のみにデータ(ライトコマンドで処理すべきデータのうち、パリティデータ以外のライトデータ)を書き込む必要がある場合には、特定のフラッシュドライブの空き領域(データブロック)で構成される論理ボリュームを仮想ボリュームに割当てることとしている。
 これにより、Thin provisioningの環境下でも、コントローラ20は、集中モード時に、RAIDグループ又はパリティグループに属するフラッシュドライブのうち特定のフラッシュドライブ(単一のフラッシュドライブ)のみにデータ(ライトコマンドで処理すべきデータのうち、パリティデータ以外のライトデータ)を書き込むことができる。
 本実施例によれば、通常モードでは、各フラッシュデバイスFD1~FD4にライトデータが分散して書き込まれ、集中モードでは、特定のフラッシュドライブFD1に対してライトデータが集中して書き込まれるため、フラッシュドライブ全体の寿命を長く保ちつつ、複数のフラッシュドライブが同時に寿命を迎えるのを抑制することができる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)メモリカード、DVD(Digital Versatile Disc)等の記録媒体に記録しておくことができる。
 10 ホスト、12 ネットワーク、14 ストレージ装置、20、22 コントローラ、24 共有メモリ、26、28 フロントエンド、30 CPU、32 接続部、34 キャッシュメモリ、36 ローカルメモリ、38、40 バックエンド、FD1~FDn フラッシュドライブ。

Claims (14)

  1.  フラッシュメモリで構成される複数の記憶デバイスと、
     アクセス要求元からのアクセスを基に前記複数の記憶デバイスに対するデータの入出力を制御するコントローラと、を有し、
     前記コントローラは、
     前記アクセス要求元からライトコマンドを受信した際に、前記ライトコマンドで処理すべきデータの書き込みモードが、前記各記憶デバイスにデータを分散させて書き込む制御を実行するための通常モードであるか、或いは前記複数の記憶デバイスの中の特定の記憶デバイスにデータを集中させて書き込む制御を実行するための集中モードであるかを判定し、前記データの書き込みモードが、前記集中モードであると判定した場合、前記集中モードにおける処理対象となる記憶デバイスを前記特定の記憶デバイスとして前記複数の記憶デバイスの中から選択し、前記選択した特定の記憶デバイスに対して、前記ライトコマンドで処理すべきデータを集中させて書き込むことを特徴とするストレージ装置。
  2.  請求項1に記載のストレージ装置において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理し、前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、データの書き込み回数が、予め設定された閾値を超えた記憶デバイスが存在する場合、前記データの書き込みモードが、前記集中モードであると判定し、前記データの書き込み回数が前記閾値を超えた記憶デバイスを前記特定の記憶デバイスとして選択することを特徴とするストレージ装置。
  3.  請求項2に記載のストレージ装置において、
     前記閾値は、前記各記憶デバイスに対するデータの書き込み回数が、前記各記憶デバイスの寿命を示す上限値よりも低い値に設定されることを特徴とするストレージ装置。
  4.  請求項1に記載のストレージ装置において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理し、前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、前記新規記憶デバイスが存在する場合、前記データの書き込みモードが、前記通常モードであることを条件に、前記新規記憶デバイスに前記ライトコマンドで処理すべきデータを分散させて書き込み、
     前記新規記憶デバイスに対するデータの書き込み回数が、予め設定された閾値を超えたことを条件に、前記データの書き込みモードが、前記集中モードであると判定し、前記新規記憶デバイスを前記特定の記憶デバイスとして選択することを特徴とするストレージ装置。
  5.  請求項1に記載のストレージ装置において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理し、前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、前記新規記憶デバイスが存在する場合、前記データの書き込みモードが、前記集中モードであることを条件に、前記新規記憶デバイスを前記特定の記憶デバイスとして選択することを特徴とするストレージ装置。
  6.  請求項1に記載のストレージ装置において、
     前記コントローラは、
     前記ライトコマンドで処理すべきデータとして、複数のライトデータと、パリティデータが存在し、前記データの書き込みモードが、前記集中モードであると判定した場合、前記ライトデータを前記特定の記憶デバイスに集中して書き込み、前記パリティデータを前記各記憶デバイスに分散させて書き込むことを特徴とするストレージ装置。
  7.  請求項1に記載のストレージ装置において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理すると共に、前記各記憶デバイスの空き領域を前記記憶デバイス毎に管理し、前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、データの書き込み回数が、予め設定された閾値を超えた記憶デバイスが存在する場合、前記データの書き込みモードが、前記集中モードであると判定し、且つ前記データの書き込み回数が前記閾値を超えた記憶デバイスを前記特定の記憶デバイスとして選択し、前記選択した特定の記憶デバイスの空き領域を探索し、前記探索で得られた空き領域に、前記ライトコマンドで処理すべきライトデータを集中して書き込むことを特徴とするストレージ装置。
  8.  フラッシュメモリで構成される複数の記憶デバイスと、
     アクセス要求元からのアクセスを基に前記複数の記憶デバイスに対するデータの入出力を制御するコントローラと、を有するストレージ装置のデータ処理方法であって、
     前記コントローラは、
     前記アクセス要求元からライトコマンドを受信した際に、前記ライトコマンドで処理すべきデータの書き込みモードが、前記各記憶デバイスにデータを分散させて書き込む制御を実行するための通常モードであるか、或いは前記複数の記憶デバイスの中の特定の記憶デバイスにデータを集中させて書き込む制御を実行するための集中モードであるかを判定するステップと、
     前記データの書き込みモードが、前記集中モードであると判定した場合、前記集中モードにおける処理対象となる記憶デバイスを前記特定の記憶デバイスとして前記複数の記憶デバイスの中から選択するステップと、
     前記選択した特定の記憶デバイスに対して、前記ライトコマンドで処理すべきデータを集中させて書き込むステップと、を実行することを特徴とするストレージ装置のデータ処理方法。
  9.  請求項8に記載のストレージ装置のデータ処理方法において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理するステップと、
     前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、データの書き込み回数が、予め設定された閾値を超えた記憶デバイスが存在する場合、前記データの書き込みモードが、前記集中モードであると判定するステップと、
     前記データの書き込み回数が前記閾値を超えた記憶デバイスを前記特定の記憶デバイスとして選択するステップと、を実行することを特徴とするストレージ装置のデータ処理方法。
  10.  請求項9に記載のストレージ装置のデータ処理方法において、
     前記閾値は、前記各記憶デバイスに対するデータの書き込み回数が、前記各記憶デバイスの寿命を示す上限値よりも低い値に設定されることを特徴とするストレージ装置のデータ処理方法。
  11.  請求項8に記載のストレージ装置のデータ処理方法において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理するステップと、
     前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、前記新規記憶デバイスが存在する場合、前記データの書き込みモードが、前記通常モードであることを条件に、前記新規記憶デバイスに前記ライトコマンドで処理すべきデータを分散させて書き込むステップと、
     前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、前記新規記憶デバイスが存在する場合、前記新規記憶デバイスに対するデータの書き込み回数が、予め設定された閾値を超えたことを条件に、前記データの書き込みモードが、前記集中モードであると判定すると共に、前記新規記憶デバイスを前記特定の記憶デバイスとして選択するステップと、を実行することを特徴とするストレージ装置のデータ処理方法。
  12.  請求項8に記載のストレージ装置のデータ処理方法において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理するステップと、
     前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、前記新規記憶デバイスが存在する場合、前記データの書き込みモードが、前記集中モードであると判定すると共に、前記新規記憶デバイスを前記特定の記憶デバイスとして選択するステップと、を実行することを特徴とするストレージ装置のデータ処理方法。
  13.  請求項8に記載のストレージ装置のデータ処理方法において、
     前記コントローラは、
     前記ライトコマンドで処理すべきデータとして、複数のライトデータと、パリティデータが存在し、前記データの書き込みモードが、前記集中モードであると判定した場合、前記ライトデータを前記特定の記憶デバイスに集中して書き込み、前記パリティデータを前記各記憶デバイスに分散させて書き込むステップを実行することを特徴とするストレージ装置のデータ処理方法。
  14.  請求項8に記載のストレージ装置のデータ処理方法において、
     前記コントローラは、
     前記各記憶デバイスに対するデータの書き込み回数を前記記憶デバイス毎に管理すると共に、前記各記憶デバイスの空き領域を前記記憶デバイス毎に管理するステップと、
     前記ライトコマンドを受信した際に、前記いずれかの記憶デバイスの中に、データの書き込み回数が、予め設定された閾値を超えた記憶デバイスが存在する場合、前記データの書き込みモードが、前記集中モードであると判定し、且つ前記データの書き込み回数が前記閾値を超えた記憶デバイスを前記特定の記憶デバイスとして選択するステップと、
     前記選択した特定の記憶デバイスの空き領域を探索するステップと、
     前記探索で得られた空き領域に、前記ライトコマンドで処理すべきライトデータを集中して書き込むステップと、を実行することを特徴とするストレージ装置のデータ処理方法。
PCT/JP2013/073539 2013-09-02 2013-09-02 ストレージ装置及びそのデータ処理方法 WO2015029249A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/352,486 US8990523B1 (en) 2013-09-02 2013-09-02 Storage apparatus and its data processing method
PCT/JP2013/073539 WO2015029249A1 (ja) 2013-09-02 2013-09-02 ストレージ装置及びそのデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/073539 WO2015029249A1 (ja) 2013-09-02 2013-09-02 ストレージ装置及びそのデータ処理方法

Publications (1)

Publication Number Publication Date
WO2015029249A1 true WO2015029249A1 (ja) 2015-03-05

Family

ID=52584896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/073539 WO2015029249A1 (ja) 2013-09-02 2013-09-02 ストレージ装置及びそのデータ処理方法

Country Status (2)

Country Link
US (1) US8990523B1 (ja)
WO (1) WO2015029249A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149526A (ja) * 2019-03-15 2020-09-17 株式会社東芝 処理装置、処理方法及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104047B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1125574A (ja) * 1997-07-02 1999-01-29 Hitachi Ltd 並列書き込みまたは並列読み出し可能な記録再生制御装置
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2010015516A (ja) * 2008-07-07 2010-01-21 Toshiba Corp データ制御装置、ストレージシステムおよびプログラム
WO2012132408A1 (ja) * 2011-03-31 2012-10-04 パナソニック株式会社 アレイ管理装置、アレイ管理方法、コンピュータプログラム、集積回路
JP2012243018A (ja) * 2011-05-18 2012-12-10 Toshiba Corp 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110072192A1 (en) * 2009-09-24 2011-03-24 Agiga Tech Inc. Solid state memory wear concentration
JP5754292B2 (ja) 2011-08-15 2015-07-29 富士通株式会社 ストレージ装置、およびストレージ装置制御方法
US9154441B2 (en) * 2013-01-25 2015-10-06 Broadcom Corporation Adaptive buffer allocation management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1125574A (ja) * 1997-07-02 1999-01-29 Hitachi Ltd 並列書き込みまたは並列読み出し可能な記録再生制御装置
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2010015516A (ja) * 2008-07-07 2010-01-21 Toshiba Corp データ制御装置、ストレージシステムおよびプログラム
WO2012132408A1 (ja) * 2011-03-31 2012-10-04 パナソニック株式会社 アレイ管理装置、アレイ管理方法、コンピュータプログラム、集積回路
JP2012243018A (ja) * 2011-05-18 2012-12-10 Toshiba Corp 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149526A (ja) * 2019-03-15 2020-09-17 株式会社東芝 処理装置、処理方法及びプログラム
US11693681B2 (en) 2019-03-15 2023-07-04 Kabushiki Kaisha Toshiba Processing apparatus, processing method, and computer program product for controlling timing of data accessing to a memory

Also Published As

Publication number Publication date
US8990523B1 (en) 2015-03-24
US20150067240A1 (en) 2015-03-05

Similar Documents

Publication Publication Date Title
US8775731B2 (en) Write spike performance enhancement in hybrid storage systems
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US8850152B2 (en) Method of data migration and information storage system
WO2013072978A1 (ja) 計算機、仮想マシン配備方法及びプログラム
US8495295B2 (en) Mass storage system and method of operating thereof
US20090300283A1 (en) Method and apparatus for dissolving hot spots in storage systems
JP2008217216A (ja) 負荷分散方法及び計算機システム
US20110258379A1 (en) Method and apparatus to manage tier information
JP2010097372A (ja) ボリューム管理方式
JP2007066259A (ja) 計算機システムとストレージシステム並びにボリューム容量拡張方法
US9747040B1 (en) Method and system for machine learning for write command selection based on technology feedback
US8447947B2 (en) Method and interface for allocating storage capacities to plural pools
JP2011070345A (ja) 計算機システム、計算機システムの管理装置、計算機システムの管理方法
JP2016118821A (ja) ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
US20180107409A1 (en) Storage area network having fabric-attached storage drives, san agent-executing client devices, and san manager
JP6522168B2 (ja) ストレージデバイスを管理するための方法および装置
US10223016B2 (en) Power management for distributed storage systems
JP5962621B2 (ja) ストレージ装置及びその制御方法、並びにストレージ制御プログラム
US9069471B2 (en) Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access
WO2015029249A1 (ja) ストレージ装置及びそのデータ処理方法
US8468303B2 (en) Method and apparatus to allocate area to virtual volume based on object access type
JP4616899B2 (ja) 管理サーバ、プール増設方法および計算機システム
JP2011070464A (ja) 計算機システム及び計算機システムの性能管理方法
US20130151808A1 (en) Allocation device, allocation method and storage device
US11722564B1 (en) Dynamic command feedback to limit impact of host-copy migration background copy load

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14352486

Country of ref document: US

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

Ref document number: 13892606

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP