JP2018185584A - Storage device, control program of storage device, and control method of storage device - Google Patents

Storage device, control program of storage device, and control method of storage device Download PDF

Info

Publication number
JP2018185584A
JP2018185584A JP2017085537A JP2017085537A JP2018185584A JP 2018185584 A JP2018185584 A JP 2018185584A JP 2017085537 A JP2017085537 A JP 2017085537A JP 2017085537 A JP2017085537 A JP 2017085537A JP 2018185584 A JP2018185584 A JP 2018185584A
Authority
JP
Japan
Prior art keywords
storage device
storage
ssd
data
firmware
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017085537A
Other languages
Japanese (ja)
Other versions
JP6867586B2 (en
Inventor
遼 窪田
Ryo Kubota
遼 窪田
慎一 小林
Shinichi Kobayashi
慎一 小林
一郎 佐久間
Ichiro Sakuma
一郎 佐久間
謙一 小倉
Kenichi Ogura
謙一 小倉
泰宏 村松
Yasuhiro Muramatsu
泰宏 村松
金弥 齊藤
Kinya Saito
金弥 齊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017085537A priority Critical patent/JP6867586B2/en
Publication of JP2018185584A publication Critical patent/JP2018185584A/en
Application granted granted Critical
Publication of JP6867586B2 publication Critical patent/JP6867586B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a storage device capable of preventing influences on the performance accompanying update of control program.SOLUTION: A storage device 1 has a storage part 1a and a processing part 1b. The storage part 1a stores commands for storage units 1c, 1d, 1e, 1f. The processing part 1b is configured so as to issue, when receiving an update instruction of a control program of a storage unit 1c and when determining that the storage unit 1c is executing a garbage collection for clearing an unnecessary area on the basis of the number of commands stored in the storage part 1a, an instruction to update of the control program to the storage unit 1c.SELECTED DRAWING: Figure 1

Description

本発明はストレージ装置、ストレージ装置の制御プログラムおよびストレージ装置の制御方法に関する。   The present invention relates to a storage apparatus, a storage apparatus control program, and a storage apparatus control method.

現在、データの保存にストレージ装置が利用されている。ストレージ装置は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置を複数有し、大容量の記憶領域を提供する。ストレージ装置は、RAID(Redundant Arrays of Independent Disks)技術により、複数の記憶装置それぞれの記憶領域を用いて論理的な記憶領域を提供することもある。RAIDを用いることで、データアクセスの高速化やデータ記憶の高信頼化を図れる。また、ストレージ装置では、論理的な記憶領域を複数設け、データアクセスに対する信頼性の向上や、シンプロビジョニング(Thin Provisioning)の技術による記憶容量の利用の効率化を図ることもある。   Currently, storage devices are used to store data. The storage device has a plurality of storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive), and provides a large-capacity storage area. The storage apparatus may provide a logical storage area by using the storage areas of each of the plurality of storage apparatuses by RAID (Redundant Arrays of Independent Disks) technology. By using RAID, the speed of data access and the high reliability of data storage can be achieved. In addition, in a storage apparatus, a plurality of logical storage areas may be provided to improve the reliability of data access and to make efficient use of storage capacity by thin provisioning technology.

ところで、ストレージ装置の運用では、ストレージ装置の制御に用いられる制御プログラムであるファームウェアの更新が行われることがある。例えば、複数のディスク装置と、ディスク装置へのアクセス制御を行うコントローラモジュールとを有するストレージシステムにおいてファームウェアの更新を行う方法が提案されている(特許文献1)。この提案では、ストレージシステムは、コントローラモジュールの入出力制御チップのファームウェアのダウンロード処理を、ディスク装置に対する入出力処理と並行して実行しても、入出力処理が滞ることを防止することができる。   By the way, in the operation of the storage apparatus, firmware that is a control program used to control the storage apparatus may be updated. For example, a method for updating firmware in a storage system having a plurality of disk devices and a controller module for controlling access to the disk devices has been proposed (Patent Document 1). In this proposal, the storage system can prevent the input / output process from being delayed even if the firmware download process of the input / output control chip of the controller module is executed in parallel with the input / output process for the disk device.

なお、フラッシュメモリなどの不揮発性メモリへのデータ書き込み時に、データ書き込みに伴い無効にすべきページが属するブロックの有効ページ数をカウントし、有効ページ数が所定数以下のブロックをコンパクション処理の対象とするコントローラの提案がある(特許文献2)。   When writing data to a non-volatile memory such as a flash memory, the number of valid pages of the block to which the page to be invalidated along with the data writing belongs is counted, and blocks with the number of valid pages equal to or less than a predetermined number are targeted for compaction processing There is a proposal of a controller to perform (Patent Document 2).

特開2013−134689号公報JP2013-13489A 特開2011−159044号公報JP 2011-159044 A

記憶装置には、内蔵の不揮発性メモリに制御プログラム(例えば、ファームウェア)を記憶し、制御プログラムにより自装置の動作を制御するものがある。例えば、SSDではウェアレベリングやエラー訂正などの管理機能が制御プログラムによって実現されることもある。一方、記憶装置の制御プログラムは、不具合の解消やアルゴリズムの改善などのために、制御プログラムの配信元によって更新されることがある。制御プログラムが更新されると、更新後の制御プログラムを記憶装置に適用する(記憶装置上の制御プログラムを更新する)ことになる。   Some storage devices store a control program (for example, firmware) in a built-in nonvolatile memory, and control the operation of the device by the control program. For example, in SSD, management functions such as wear leveling and error correction may be realized by a control program. On the other hand, the control program for the storage device may be updated by the distribution source of the control program in order to solve the problem or improve the algorithm. When the control program is updated, the updated control program is applied to the storage device (the control program on the storage device is updated).

しかし、記憶装置における制御プログラムの更新中は、当該記憶装置に対するデータアクセスを行えなくなる。このため、任意のタイミングで記憶装置の制御プログラムの更新を行うと、制御プログラムの更新期間と衝突した場合、該当の記憶装置に対するデータアクセスに遅延が発生し、性能に影響を及ぼす可能性があるという問題がある。   However, while the control program in the storage device is being updated, data access to the storage device cannot be performed. For this reason, if the control program of the storage device is updated at an arbitrary timing, if there is a collision with the update period of the control program, a data access to the corresponding storage device may be delayed, which may affect performance. There is a problem.

1つの側面では、本発明は、制御プログラムの更新に伴う性能への影響を抑えることを目的とする。   In one aspect, an object of the present invention is to suppress an influence on performance associated with updating a control program.

1つの態様では、複数の記憶装置を有するストレージ装置が提供される。ストレージ装置は、記憶部と処理部とを有する。記憶部は、記憶装置に対するコマンドを記憶する。処理部は、記憶装置を制御する制御プログラムの更新指示を受信すると、記憶部が記憶するコマンドの数に基づいて、記憶装置が不要な領域を開放するガベージコレクションを実行中であると判定した場合、制御プログラムの更新を記憶装置に指示する。   In one aspect, a storage device having a plurality of storage devices is provided. The storage device includes a storage unit and a processing unit. The storage unit stores a command for the storage device. When the processing unit receives an update instruction for a control program that controls the storage device, the processing unit determines that the storage device is executing garbage collection to release an unnecessary area based on the number of commands stored in the storage unit Instruct the storage device to update the control program.

1つの側面では、制御プログラムの更新に伴う性能への影響を抑えることができる。   In one aspect, it is possible to suppress the influence on performance associated with the update of the control program.

第1の実施の形態のストレージ装置を示す図である。It is a figure which shows the storage apparatus of 1st Embodiment. 第2の実施の形態の情報処理システムの例を示す図である。It is a figure which shows the example of the information processing system of 2nd Embodiment. ストレージ装置のハードウェア例を示す図である。It is a figure which shows the hardware example of a storage apparatus. CMのハードウェア例を示す図である。It is a figure which shows the hardware example of CM. SSDのハードウェア例を示す図である。It is a figure which shows the hardware example of SSD. ガベージコレクションの例を示す図である。It is a figure which shows the example of garbage collection. CMの機能例を示す図である。It is a figure which shows the function example of CM. チャンクの例を示す図である。It is a figure which shows the example of a chunk. チャンク割り当て管理テーブルの例を示す図である。It is a figure which shows the example of a chunk allocation management table. サーバのIO数の監視例を示す図である。It is a figure which shows the example of monitoring of the IO number of a server. SSDに対するアクセス待ちコマンドの監視例を示す図である。It is a figure which shows the example of monitoring of the access waiting command with respect to SSD. ファームウェア更新例を示すフローチャートである。It is a flowchart which shows the example of firmware update. ファームウェア更新中の書き込み処理例を示すフローチャートである。It is a flowchart which shows the example of a writing process during firmware update. ファームウェア更新中の書き込みの具体例を示す図である。It is a figure which shows the specific example of the writing during firmware update. ファームウェア更新中の読み出し処理例を示すフローチャートである。It is a flowchart which shows the example of a read-out process during firmware update. ファームウェア更新中の読み出しの具体例を示す図である。It is a figure which shows the specific example of the reading during firmware update.

以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ装置を示す図である。ストレージ装置1は、記憶部1a、処理部1bおよび記憶装置1c,1d,1e,1fを有する。記憶装置1c,1d,1e,1fをまとめて、記憶装置群A1と称する。ストレージ装置1は、情報処理装置2に接続される。ストレージ装置1および情報処理装置2は、所定のケーブルによって直接接続されてもよいし、ネットワークを介して接続されてもよい。ストレージ装置1は、情報処理装置2の業務処理により用いられる各種のデータ(業務データ)を記憶する。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 illustrates a storage apparatus according to the first embodiment. The storage device 1 includes a storage unit 1a, a processing unit 1b, and storage devices 1c, 1d, 1e, and 1f. The storage devices 1c, 1d, 1e, and 1f are collectively referred to as a storage device group A1. The storage device 1 is connected to the information processing device 2. The storage device 1 and the information processing device 2 may be directly connected by a predetermined cable or may be connected via a network. The storage device 1 stores various data (business data) used in business processing of the information processing device 2.

ストレージ装置1は、記憶装置1c,1d,1e,1fそれぞれの記憶領域を用いて論理的な記憶領域を提供可能であり、制御プログラムであるファームウェアにより制御される。例えば、ストレージ装置1は、記憶装置1c,1dにより第1のRAIDグループ(RAID1)を構築し、記憶装置1e,1fにより第2のRAIDグループ(RAID1)を構築する。そして、例えば、ストレージ装置1は、第1のRAIDグループに属する第1の記憶領域、および、第2のRAIDグループに属する第2の記憶領域を組み合わせることで、情報処理装置2によりアクセス可能な論理的な記憶領域を提供する。あるいは、ストレージ装置1は、3以上の記憶装置によるRAIDグループ(例えば、RAID5)を複数作成し、各RAIDグループの記憶領域を組み合わせて、情報処理装置2によりアクセス可能な論理的な記憶領域を提供することもできる。   The storage device 1 can provide a logical storage area using the storage areas of the storage devices 1c, 1d, 1e, and 1f, and is controlled by firmware that is a control program. For example, the storage device 1 constructs a first RAID group (RAID1) with the storage devices 1c and 1d, and constructs a second RAID group (RAID1) with the storage devices 1e and 1f. For example, the storage apparatus 1 combines the first storage area belonging to the first RAID group and the second storage area belonging to the second RAID group, so that the logical information accessible by the information processing apparatus 2 is obtained. Provide a storage area. Alternatively, the storage apparatus 1 provides a logical storage area that can be accessed by the information processing apparatus 2 by creating a plurality of RAID groups (for example, RAID 5) with three or more storage apparatuses and combining the storage areas of each RAID group. You can also

記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、フラッシュメモリなどの不揮発性記憶装置でもよい。処理部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部1bはプログラムを実行するプロセッサでもよい。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。   The storage unit 1a may be a volatile storage device such as a RAM (Random Access Memory) or a non-volatile storage device such as a flash memory. The processing unit 1b may include a CPU (Central Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), and the like. The processing unit 1b may be a processor that executes a program. The “processor” may include a set of multiple processors (multiprocessor).

記憶装置1c,1d,1e,1fは、例えばSSDである。SSDは、フラッシュメモリを内蔵し、フラッシュメモリに業務データを格納する。記憶装置1cは、フラッシュメモリなどの業務データの格納用の記憶デバイスの他にも、ファームウェア保存用の不揮発性メモリ、ファームウェア実行用のRAMおよびプロセッサを内蔵する(図1では図示を省略している)。記憶装置1cのプロセッサは、当該不揮発性メモリに記憶されたファームウェアを記憶装置1cのRAMにロードして実行し、記憶装置1cの動作を制御する。記憶装置1d,1e,1fも記憶装置1cと同様に、業務データの格納用の記憶デバイス、ファームウェア保存用の不揮発性メモリ、ファームウェア実行用のRAMおよびプロセッサを内蔵する。   The storage devices 1c, 1d, 1e, and 1f are, for example, SSDs. The SSD has a built-in flash memory and stores business data in the flash memory. The storage device 1c incorporates a nonvolatile memory for storing firmware, a RAM for executing firmware, and a processor in addition to a storage device for storing business data such as a flash memory (not shown in FIG. 1). ). The processor of the storage device 1c loads the firmware stored in the nonvolatile memory into the RAM of the storage device 1c and executes it, and controls the operation of the storage device 1c. Similarly to the storage device 1c, the storage devices 1d, 1e, and 1f also include a storage device for storing business data, a nonvolatile memory for storing firmware, a RAM for executing firmware, and a processor.

処理部1bは、記憶装置1c,1d,1e,1fのファームウェアの更新を制御する。具体的には、次の通りである。
処理部1bは、記憶装置群A1に記憶されたデータに対するアクセス要求を情報処理装置2から受信する。処理部1bは、受信したアクセス要求(例えば、データの書き込み要求)に応じてアクセス先の記憶装置を決定し、該当の記憶装置に対するアクセスコマンド(アクセス要求に応じたコマンド)を生成し、記憶部1aに格納する。記憶部1aは、各記憶装置に対するアクセスコマンドを記憶する。記憶部1aに格納されるアクセスコマンドは、アクセス待ち(または実行待ち)のコマンドであり、アクセス待ちコマンド(または実行待ちコマンド)と呼ばれる。
The processing unit 1b controls firmware update of the storage devices 1c, 1d, 1e, and 1f. Specifically, it is as follows.
The processing unit 1b receives an access request for data stored in the storage device group A1 from the information processing device 2. The processing unit 1b determines an access destination storage device according to the received access request (for example, a data write request), generates an access command (command corresponding to the access request) for the corresponding storage device, and stores the storage unit Store in 1a. The storage unit 1a stores an access command for each storage device. The access command stored in the storage unit 1a is an access wait (or execution wait) command, and is called an access wait command (or execution wait command).

ここで、記憶部1aは、記憶装置1c,1d,1e,1fごとにアクセスコマンドを保持するキューを備える。例えば、記憶装置1cのキューは、キュー番号“1”のキューである。ここで、キュー番号“1”を、“#1”のように表記することがある。記憶装置1dのキューは、“#2”のキューである。記憶装置1eのキューは、“#3”のキューである。記憶装置1fのキューは、“#4”のキューである。   Here, the storage unit 1a includes a queue that holds an access command for each of the storage devices 1c, 1d, 1e, and 1f. For example, the queue of the storage device 1c is a queue with the queue number “1”. Here, the queue number “1” may be expressed as “# 1”. The queue of the storage device 1d is the “# 2” queue. The queue of the storage device 1e is the “# 3” queue. The queue of the storage device 1f is a queue of “# 4”.

例えば、処理部1bは、記憶装置1cに対する書き込みコマンドを“#1”のキューに格納する。処理部1bは、記憶装置1dに対する書き込みコマンドを“#2”のキューに格納する。処理部1bは、記憶装置1eに対する書き込みコマンドを“#3”のキューに格納する。処理部1bは、記憶装置1fに対する書き込みコマンドを“#4”のキューに格納する。こうして、処理部1bは、記憶部1aをキャッシュとして利用し、一端、記憶部1aにデータを格納し、情報処理装置2に対する応答を行ってから、アクセス要求とは非同期に記憶装置1c,1d,1e,1fへの書き込みを行う(ライトバックと呼ばれる)。これにより、処理部1bは、記憶部1aにデータを格納した時点で情報処理装置2に対する応答を行えるので、書き込みなどのアクセス要求に対する応答を早めることができる。   For example, the processing unit 1b stores a write command for the storage device 1c in the queue “# 1”. The processing unit 1b stores the write command for the storage device 1d in the queue “# 2”. The processing unit 1b stores the write command for the storage device 1e in the queue "# 3". The processing unit 1b stores the write command for the storage device 1f in the queue "# 4". Thus, the processing unit 1b uses the storage unit 1a as a cache, stores data in the storage unit 1a at one end, makes a response to the information processing device 2, and then stores the storage devices 1c, 1d, Writing to 1e and 1f is performed (referred to as write back). As a result, the processing unit 1b can make a response to the information processing apparatus 2 at the time when data is stored in the storage unit 1a, so that a response to an access request such as writing can be accelerated.

処理部1bは、記憶装置1c,1d,1e,1fのファームウェアの更新指示を受信すると、記憶部1aに記憶された記憶装置1c,1d,1e,1fそれぞれに対するアクセス待ちコマンドの数を監視する。例えば、処理部1bは、情報処理装置2からファームウェアの更新指示を受信してもよいし、ユーザによるファームウェアの更新指示の操作入力を受け付けてもよい。記憶装置に適用する更新後のファームウェアのプログラムは、情報処理装置2によりストレージ装置1に提供されてもよい。あるいは、当該ファームウェアのプログラムは、所定の記録媒体を用いて、ストレージ装置1に提供されてもよい。処理部1bは、提供されたファームウェアのプログラムを記憶部1aに格納しておいてもよい。   When the processing unit 1b receives a firmware update instruction for the storage devices 1c, 1d, 1e, and 1f, the processing unit 1b monitors the number of commands waiting for access to the storage devices 1c, 1d, 1e, and 1f stored in the storage unit 1a. For example, the processing unit 1b may receive a firmware update instruction from the information processing apparatus 2, or may accept an operation input of a firmware update instruction from the user. The updated firmware program applied to the storage device may be provided to the storage device 1 by the information processing device 2. Alternatively, the firmware program may be provided to the storage apparatus 1 using a predetermined recording medium. The processing unit 1b may store the provided firmware program in the storage unit 1a.

処理部1bは、アクセス待ちコマンドの数に基づいて、記憶装置1c,1d,1e,1fそれぞれがガベージコレクションを実行中であるか否かを判定する。
ここで、ガベージコレクションは、データの消去が可能な単位領域におけるデータを消去して、当該単位領域を再利用可能にする不要領域開放機能である。具体的には、ガベージコレクションでは、フラッシュメモリなどにおいて有効データおよび無効データが混在する第1の単位領域(例えば、ブロック)における有効データを、第2の単位領域に複製し、第1の単位領域のデータを一括して消去する。なお、「データの消去」は、「当該データが格納された記憶領域の解放」ともいえる。
The processing unit 1b determines whether each of the storage devices 1c, 1d, 1e, and 1f is executing garbage collection based on the number of commands waiting for access.
Here, the garbage collection is an unnecessary area releasing function that erases data in a unit area where data can be erased, and makes the unit area reusable. Specifically, in garbage collection, valid data in a first unit area (for example, a block) in which valid data and invalid data are mixed in a flash memory or the like is copied to the second unit area, and the first unit area Erase all data at once. Note that “erasing data” can also be said to “release the storage area in which the data is stored”.

ガベージコレクションは、記憶装置1c,1d,1e,1fそれぞれにより自律的に実行される。ガベージコレクションは、各記憶装置が独自に実行する処理であり、例えば、数時間から数日に一回程度の頻度で発生する。ただし、前述のように、ガベージコレクションは、記憶装置1c,1d,1e,1fにより自律的に実行されるため、処理部1bにより、各記憶装置でガベージコレクションが発生するタイミングを予測することは困難である。   Garbage collection is autonomously executed by each of the storage devices 1c, 1d, 1e, and 1f. Garbage collection is a process executed independently by each storage device and occurs, for example, at a frequency of about once every several hours to several days. However, as described above, since garbage collection is autonomously executed by the storage devices 1c, 1d, 1e, and 1f, it is difficult for the processing unit 1b to predict the timing at which garbage collection occurs in each storage device. It is.

一方、記憶装置によりガベージコレクションが実行されている間は、該当の記憶装置に対するアクセス性能が低下する。すなわち、記憶装置がガベージコレクションを行っている間は、該当の記憶装置に対するアクセスコマンドによるアクセスが遅延する。このため、該当の記憶装置に対応するキューに保持されているアクセス待ちコマンドが処理されずに、キューに残存する。したがって、ガベージコレクションの実行中は、該当の記憶装置に対応するキューに保持されるアクセス待ちコマンドの数が過大になる可能性が高い。   On the other hand, while the garbage collection is being executed by the storage device, the access performance to the corresponding storage device is degraded. That is, while the storage device is performing garbage collection, access by the access command to the corresponding storage device is delayed. For this reason, the access waiting command held in the queue corresponding to the relevant storage device remains in the queue without being processed. Therefore, during the execution of garbage collection, there is a high possibility that the number of commands waiting for access held in the queue corresponding to the relevant storage device becomes excessive.

そこで、処理部1bは、例えば、アクセス待ちコマンドの数が、所定の閾値を超えた記憶装置について、ガベージコレクションを実行中であると判定する。一方、処理部1bは、例えば、アクセス待ちコマンドの数が所定の閾値以下の記憶装置について、ガベージコレクションを実行中でないと判定する。   Therefore, for example, the processing unit 1b determines that garbage collection is being performed for a storage device in which the number of commands waiting for access exceeds a predetermined threshold. On the other hand, for example, the processing unit 1b determines that the garbage collection is not being executed for a storage device in which the number of commands waiting for access is equal to or less than a predetermined threshold.

例えば、図1のグラフは、処理部1bがファームウェアの更新指示を受け付けた後のある時点における、記憶装置1c,1d,1e,1fそれぞれに対するアクセス待ちコマンドの数(アクセス待ちコマンド数)を示す。記憶装置1cに対するアクセス待ちコマンド数は、閾値を超過している。記憶装置1d,1e,1fに対するアクセス待ちコマンド数は閾値を超過していない。この場合、処理部1bは、記憶装置1cがガベージコレクションを実行中であると判定する。一方、処理部1bは、記憶装置1d,1e,1fがガベージコレクションを実行中でないと判定する。   For example, the graph of FIG. 1 shows the number of commands waiting for access (number of commands waiting for access) for each of the storage devices 1c, 1d, 1e, and 1f at a certain point after the processing unit 1b receives a firmware update instruction. The number of commands waiting for access to the storage device 1c exceeds the threshold. The number of commands waiting for access to the storage devices 1d, 1e, and 1f does not exceed the threshold. In this case, the processing unit 1b determines that the storage device 1c is executing garbage collection. On the other hand, the processing unit 1b determines that the storage devices 1d, 1e, and 1f are not executing garbage collection.

処理部1bは、ある記憶装置についてガベージコレクションを実行中であると判定された場合に、ファームウェアの更新を当該記憶装置に指示する。上記の例でいえば、処理部1bは、ガベージコレクションを実行中であると判定された記憶装置1cに対してファームウェアの更新を指示する。このとき、処理部1bは、適用すべきファームウェアのプログラムを記憶装置1cに提供する。一方、処理部1bは、この段階では、記憶装置1d,1e,1fに対してファームウェアの更新を指示しない。   When it is determined that garbage collection is being executed for a storage device, the processing unit 1b instructs the storage device to update the firmware. In the above example, the processing unit 1b instructs the storage device 1c determined to be executing garbage collection to update the firmware. At this time, the processing unit 1b provides a firmware program to be applied to the storage device 1c. On the other hand, at this stage, the processing unit 1b does not instruct the storage devices 1d, 1e, and 1f to update the firmware.

例えば、ファームウェアの更新の指示を受け付けた記憶装置1cは、ガベージコレクションの実行を一時中断して、記憶装置1cにより保持されるファームウェアの更新を行い、更新完了後にガベージコレクションの実行を再開する。   For example, the storage device 1c that has received a firmware update instruction temporarily suspends execution of garbage collection, updates the firmware held by the storage device 1c, and resumes execution of garbage collection after the update is completed.

こうして、処理部1bは、記憶装置1c,1d,1e,1fに対して、ファームウェアの更新を順次行う。
これにより、ファームウェアの更新に伴う性能への影響を抑えることができる。具体的には次の通りである。
Thus, the processing unit 1b sequentially updates the firmware for the storage devices 1c, 1d, 1e, and 1f.
Thereby, it is possible to suppress the influence on the performance due to the firmware update. Specifically, it is as follows.

記憶装置におけるファームウェアの更新中は、当該記憶装置に対するデータアクセスを行えなくなる。このため、任意のタイミングで記憶装置のファームウェアの更新を行うと、該当の記憶装置に対するデータアクセスに遅延が発生し、性能に影響を及ぼす可能性があるという問題がある。   During the firmware update in the storage device, data access to the storage device cannot be performed. Therefore, if the firmware of the storage device is updated at an arbitrary timing, there is a problem that a delay occurs in data access to the corresponding storage device, which may affect the performance.

そこで、処理部1bは、記憶装置によりガベージコレクションが実行中である期間を利用して、該当の記憶装置によるファームウェアの更新も実行させる。ガベージコレクション中は、そもそも記憶装置のアクセス性能が低下する期間であるため、ファームウェアの更新も当該期間において実行してしまう方が、業務運用への影響を低減できる。なぜなら、ガベージコレクション中でない通常運用中にファームウェア更新を行うと、ガベージコレクションとは別に、記憶装置へのアクセスを行えない時間帯が発生することになるからである。ガベージコレクションの期間中にファームウェア更新も併せて行うことで、記憶装置へのアクセスを行えない時間帯が余計に発生することを抑えられ、性能への影響を抑えられる。   Therefore, the processing unit 1b also uses the period during which garbage collection is being executed by the storage device to update the firmware by the corresponding storage device. Since garbage collection is a period in which the access performance of the storage device is deteriorated in the first place, it is possible to reduce the influence on business operations if firmware is also updated during this period. This is because if the firmware is updated during normal operation that is not in garbage collection, a time zone during which access to the storage device cannot be performed occurs separately from garbage collection. By also performing firmware update during the garbage collection period, it is possible to suppress the occurrence of an extra time zone during which access to the storage device cannot be performed, and the influence on performance can be suppressed.

また、複数のRAIDグループを用いて、シンプロビジョニングにより論理的な記憶領域をユーザに割り当てる場合に、ファームウェア更新中の記憶装置を避けたアクセス制御を実現できる。具体的には次の制御が考えられる。   In addition, when a logical storage area is allocated to a user by thin provisioning using a plurality of RAID groups, it is possible to realize access control that avoids a storage device during firmware update. Specifically, the following control can be considered.

第1に、処理部1bは、ファームウェア更新中の記憶装置が属する第1のRAIDグループへの新規データの書き込み要求に対して、第1のRAIDグループ以外の第2のRAIDグループの記憶領域を当該新規データの書き込み先に割り当てる。   First, in response to a request for writing new data to the first RAID group to which the storage device whose firmware is being updated belongs, the processing unit 1b allocates the storage area of the second RAID group other than the first RAID group. Assign to the new data write destination.

第2に、処理部1bは、ファームウェア更新中の記憶装置が属する第1のRAIDグループに格納された既存データの更新要求に対し、既存データの格納先の記憶領域の割り当てを第1のRAIDグループから第2のRAIDグループに変更する。処理部1bは、その上で、第2のRAIDグループに属する他の記憶装置に対して書き込み(既存データに対する更新後のデータの書き込み)を実行する。   Second, in response to an update request for existing data stored in the first RAID group to which the storage device whose firmware is being updated belongs, the processing unit 1b assigns a storage area for storing the existing data to the first RAID group. To the second RAID group. Then, the processing unit 1b executes writing (writing of updated data with respect to existing data) to another storage device belonging to the second RAID group.

第3に、処理部1bは、ファームウェア更新中の記憶装置が属するRAIDグループに格納された既存データの読み出し要求に対し、ファームウェア更新中の記憶装置以外の他の記憶装置により当該既存データを構築し、応答する。例えば、処理部1bは、RAID1であれば、ミラーとなる他の記憶装置から既存データを取得し、応答する。あるいは、処理部1bは、RAID5であれば、パリティなどを記憶する複数の他の記憶装置から既存データを取得し、応答する。   Third, in response to a request to read existing data stored in the RAID group to which the storage device whose firmware is being updated belongs, the processing unit 1b constructs the existing data using a storage device other than the storage device whose firmware is being updated. ,respond. For example, if the processing unit 1b is RAID1, the processing unit 1b obtains existing data from another storage device serving as a mirror and responds. Alternatively, if the processing unit 1b is RAID 5, the processing unit 1b obtains existing data from a plurality of other storage devices that store parity and responds.

このようにして、処理部1bは、ファームウェア(制御プログラム)の更新に伴う性能への影響を抑えて、記憶装置群A1に記憶されたデータに対するアクセスを行うことができる。   In this way, the processing unit 1b can access the data stored in the storage device group A1 while suppressing the influence on the performance associated with the update of the firmware (control program).

[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムの例を示す図である。第2の実施の形態の情報処理システムは、ストレージ装置10およびサーバ20を含む。ストレージ装置10およびサーバ20は、例えば、SAN(Storage Area Network)などのネットワークを介して接続される。ストレージ装置10およびサーバ20は、所定のケーブルによって直接接続されてもよい。
[Second Embodiment]
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment. The information processing system according to the second embodiment includes a storage device 10 and a server 20. The storage apparatus 10 and the server 20 are connected via a network such as a SAN (Storage Area Network). The storage apparatus 10 and the server 20 may be directly connected by a predetermined cable.

ストレージ装置10は、複数のSSD(複数の記憶装置の一例)を備える。ストレージ装置10は、複数のSSDにより、大容量の記憶領域をサーバ20に提供する。ストレージ装置10は、2以上のSSDを1つのグループ(RAIDグループ)とする。ストレージ装置10は、1つのRAIDグループに属する2以上のSSDを用いて、RAID(RAIDレベルは1以上であるとする)を構築する。複数のRAIDグループのRAIDレベルは同じである。   The storage device 10 includes a plurality of SSDs (an example of a plurality of storage devices). The storage apparatus 10 provides a large-capacity storage area to the server 20 using a plurality of SSDs. The storage apparatus 10 sets two or more SSDs as one group (RAID group). The storage apparatus 10 constructs a RAID (assuming that the RAID level is 1 or more) using two or more SSDs belonging to one RAID group. The RAID levels of the plurality of RAID groups are the same.

ストレージ装置10は、複数のRAIDグループにおける記憶領域を組み合わせることで、サーバ20によりアクセス可能な仮想的なボリューム(仮想ボリューム)を提供する。仮想ボリュームに対する実容量は、シンプロビジョニングの技術により割り当てられる。これにより、ストレージ装置10における記憶容量の効率的な利用が図られる。   The storage apparatus 10 provides a virtual volume (virtual volume) accessible by the server 20 by combining storage areas in a plurality of RAID groups. The real capacity for the virtual volume is allocated by the thin provisioning technology. Thereby, efficient use of the storage capacity in the storage apparatus 10 is achieved.

ストレージ装置10は、第1の実施の形態のストレージ装置1の一例である。
サーバ20は、ユーザの業務処理を行う業務アプリケーションを実行するサーバコンピュータである。サーバ20は、ストレージ装置10に記憶されたデータを用いて業務処理を行う。サーバ20は、新たなデータをストレージ装置10に書き込むことがある。サーバ20は、ストレージ装置10に記憶されているデータを更新することもある。また、サーバ20は、ストレージ装置10に記憶されているデータを読み出すこともある。更に、サーバ20は、ストレージ装置10に記憶されているデータを削除することもある。
The storage apparatus 10 is an example of the storage apparatus 1 according to the first embodiment.
The server 20 is a server computer that executes a business application that performs a user's business process. The server 20 performs business processing using the data stored in the storage device 10. The server 20 may write new data to the storage device 10. The server 20 may update data stored in the storage device 10. Further, the server 20 may read data stored in the storage device 10. Further, the server 20 may delete data stored in the storage device 10.

図3は、ストレージ装置のハードウェア例を示す図である。ストレージ装置10は、コントローラモジュール(CM:Controller Module)100およびドライブ収納部200を有する。   FIG. 3 is a diagram illustrating a hardware example of the storage apparatus. The storage device 10 includes a controller module (CM) 100 and a drive storage unit 200.

CM100は、ドライブ収納部200に収納されている各SSDに対するデータアクセスを制御するストレージ制御装置である。CM100は、RAIDコントローラ、または、単にコントローラと呼ばれることもある。ストレージ装置10は、複数のCMを備えてもよい。複数のCMによりデータアクセス機能を冗長化させることで、データアクセス機能の可用性の向上やデータアクセス性能の向上を図ることもある。   The CM 100 is a storage control device that controls data access to each SSD stored in the drive storage unit 200. The CM 100 is sometimes called a RAID controller or simply a controller. The storage device 10 may include a plurality of CMs. By making the data access function redundant with a plurality of CMs, the availability of the data access function and the data access performance may be improved.

ドライブ収納部200は、SSD50,50a,50b,・・・を収納する収納装置である。ドライブ収納部200は、ドライブエンクロージャと呼ばれることもある。SSD50,50a,50b,・・・は、フラッシュメモリを備える記憶装置である。   The drive storage unit 200 is a storage device that stores the SSDs 50, 50a, 50b,. The drive storage unit 200 is sometimes called a drive enclosure. The SSDs 50, 50a, 50b,... Are storage devices that include a flash memory.

ここで、サーバ20により発行された新規データの書き込みのアクセス要求や、既存データの更新のアクセス要求は、CM100のキャッシュメモリを用いたライトバック方式で処理される。具体的には次の通りである。   Here, an access request for writing new data or an access request for updating existing data issued by the server 20 is processed by a write-back method using the cache memory of the CM 100. Specifically, it is as follows.

(1)CM100は、サーバ20から書き込みのアクセス要求を受信する。書き込みのアクセス要求は、書き込み対象のデータを含む。(2)CM100は、CM100のキャッシュメモリに、書き込み対象のデータを書き込む。(3)CM100は、書き込みが完了した旨の通知をサーバ20に送信する。(4)CM100は、キャッシュメモリに蓄積された書き込み対象のデータを、サーバ20によるアクセス要求とは非同期に、SSD50,50a,50b,・・・に書き込む。   (1) The CM 100 receives a write access request from the server 20. The write access request includes data to be written. (2) The CM 100 writes data to be written into the CM 100 cache memory. (3) The CM 100 transmits a notification that the writing has been completed to the server 20. (4) The CM 100 writes the write target data stored in the cache memory to the SSDs 50, 50a, 50b,... Asynchronously with the access request from the server 20.

このように、ライトバック方式では、一連の手順の中にキャッシュメモリを介在させる。これにより、サーバ20およびCM100の間のデータの転送速度と、CM100からSSD50,50a,50b,・・・へのデータの書き込み速度との差によるCM100からサーバ20への応答遅延を低減する。   As described above, in the write back method, the cache memory is interposed in a series of procedures. This reduces the response delay from the CM 100 to the server 20 due to the difference between the data transfer speed between the server 20 and the CM 100 and the data write speed from the CM 100 to the SSDs 50, 50a, 50b,.

図4は、CMのハードウェア例を示す図である。CM100は、プロセッサ101、RAM102、キャッシュメモリ103、媒体リーダ104、NVRAM(Non-Volatile RAM)105、DI(Drive Interface)106、CA(Channel Adaptor)107、NA(Network Adaptor)108を有する。各ハードウェアはCM100のバスに接続されている。   FIG. 4 is a diagram illustrating an example of CM hardware. The CM 100 includes a processor 101, a RAM 102, a cache memory 103, a medium reader 104, an NVRAM (Non-Volatile RAM) 105, a DI (Drive Interface) 106, a CA (Channel Adapter) 107, and an NA (Network Adapter) 108. Each hardware is connected to the CM 100 bus.

プロセッサ101は、CM100の情報処理を制御するハードウェアである。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。   The processor 101 is hardware that controls information processing of the CM 100. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU, DSP, ASIC, or FPGA. The processor 101 may be a combination of two or more elements of CPU, DSP, ASIC, FPGA, and the like.

RAM102は、CM100の主記憶装置である。RAM102は、プロセッサ101に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。   The RAM 102 is a main storage device of the CM 100. The RAM 102 temporarily stores at least a part of a firmware program to be executed by the processor 101. The RAM 102 stores various data used for processing by the processor 101.

キャッシュメモリ103は、ライトバック方式によるSSDへのデータ書き込みに用いられる揮発性の半導体メモリである。キャッシュメモリ103は、ライトバックの処理に用いられるため、ライトバックキャッシュと呼ばれてもよい。キャッシュメモリ103は、プロセッサ101による書き込み制御に用いられる各種データも記憶する。   The cache memory 103 is a volatile semiconductor memory used for writing data to the SSD by the write back method. Since the cache memory 103 is used for write back processing, it may be called a write back cache. The cache memory 103 also stores various data used for write control by the processor 101.

媒体リーダ104は、記録媒体11に記録されたプログラムやデータを読み取る装置である。記録媒体11として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用できる。媒体リーダ104は、例えば、プロセッサ101からの命令に従って、記録媒体11から読み取ったプログラムやデータをRAM101またはNVRAM105に格納する。   The medium reader 104 is a device that reads a program and data recorded on the recording medium 11. As the recording medium 11, for example, a nonvolatile semiconductor memory such as a flash memory card can be used. For example, the medium reader 104 stores the program and data read from the recording medium 11 in the RAM 101 or the NVRAM 105 in accordance with an instruction from the processor 101.

NVRAM105は、CM100の動作制御に用いられるファームウェアを記憶する不揮発性メモリである。プロセッサ101は、NVRAM105に記憶されたファームウェアのプログラムをRAM102にロードすることで、各種の機能を発揮する。   The NVRAM 105 is a non-volatile memory that stores firmware used for operation control of the CM 100. The processor 101 exhibits various functions by loading a firmware program stored in the NVRAM 105 into the RAM 102.

DI106は、ドライブ収納部200との接続に用いられるインタフェースである。DI106としては、例えば、SAS(Serial Attached SCSI(SCSIはSmall Computer System Interfaceの略))やファイバチャネル(FC:Fibre Channel)などのインタフェースを用いることができる。   The DI 106 is an interface used for connection with the drive storage unit 200. As the DI 106, for example, an interface such as SAS (Serial Attached SCSI (SCSI is an abbreviation of Small Computer System Interface)) or Fiber Channel (FC) can be used.

CA107は、SAN30を介してサーバ20と通信する通信インタフェースである。CA107として、例えばFCのインタフェースを用いることができる。CA107として、FC以外のインタフェース(例えば、iSCSI(Internet Small Computer System Interface)など)が用いられることもある。   The CA 107 is a communication interface that communicates with the server 20 via the SAN 30. As the CA 107, for example, an FC interface can be used. An interface other than FC (for example, iSCSI (Internet Small Computer System Interface)) may be used as the CA 107.

NA108は、LAN30aを介してサーバ20や、LAN30aを介してアクセス可能な他のサーバコンピュータと通信する通信インタフェースである。NA108として、例えば、イーサネット(登録商標)のインタフェースを用いることができる。   The NA 108 is a communication interface that communicates with the server 20 via the LAN 30a and other server computers accessible via the LAN 30a. As the NA 108, for example, an Ethernet (registered trademark) interface can be used.

図5は、SSDのハードウェア例を示す図である。SSD50は、コントローラ51、NVRAM52、接続IF(InterFace)53およびフラッシュメモリ54を有する。各ハードウェアは、SSD50のバスに接続されている。SSD50a,50b,・・・もSSD50と同様のハードウェアにより実現される。   FIG. 5 is a diagram illustrating an example of SSD hardware. The SSD 50 includes a controller 51, NVRAM 52, connection IF (InterFace) 53, and flash memory 54. Each hardware is connected to the SSD 50 bus. The SSDs 50a, 50b,... Are also realized by the same hardware as the SSD 50.

コントローラ51は、フラッシュメモリ54に対するデータの書き込みや読み出しなどのアクセス制御を行う。コントローラ51は、プロセッサおよびRAM(図5では図示を省略している)を内蔵し、当該RAMにロードされたファームウェアf1を、プロセッサにより実行することで、所定の機能を実現する。ファームウェアf1により実現される機能としては、例えば、エラー訂正、ウェアレベリング、エラーブロックの管理およびガベージコレクションなどが挙げられる。   The controller 51 performs access control such as data writing and reading with respect to the flash memory 54. The controller 51 incorporates a processor and a RAM (not shown in FIG. 5), and implements a predetermined function by executing the firmware f1 loaded in the RAM by the processor. Examples of functions realized by the firmware f1 include error correction, wear leveling, error block management, and garbage collection.

また、コントローラ51は、CM100によるファームウェアf1の更新の指示に応じて、NVRAM52に記憶されているファームウェアf1を更新する。具体的には、コントローラ51は、改版後のファームウェアをCM100から取得して、NVRAM52に書き込む。コントローラ51は、1世代前のファームウェアf1をNVRAM52に残した状態で、改版後のファームウェアをNVRAM52に書き込んでもよい。あるいは、コントローラ51は、ファームウェアf1を改版後のファームウェアにより上書きしてもよい。   Further, the controller 51 updates the firmware f1 stored in the NVRAM 52 in response to an instruction to update the firmware f1 by the CM 100. Specifically, the controller 51 acquires the revised firmware from the CM 100 and writes it in the NVRAM 52. The controller 51 may write the revised firmware into the NVRAM 52 with the firmware f1 of the previous generation remaining in the NVRAM 52. Alternatively, the controller 51 may overwrite the firmware f1 with the revised firmware.

NVRAM52は、ファームウェアf1を記憶する不揮発性メモリである。前述のように、NVRAM52により記憶されるファームウェアは、コントローラ51により更新される。NVRAM52は、コントローラ51に内蔵されてもよい。   The NVRAM 52 is a nonvolatile memory that stores firmware f1. As described above, the firmware stored in the NVRAM 52 is updated by the controller 51. The NVRAM 52 may be built in the controller 51.

接続IF53は、ドライブ収納部200に接続するためのインタフェースである。接続IF53としては、例えば、SASのインタフェースを用いることができる。
フラッシュメモリ54は、ユーザの業務処理に用いられる各種のデータを記憶する。フラッシュメモリ54は、コントローラ51の制御により、フラッシュメモリ54に内蔵される記憶素子に対して電気的にデータの書き込みを行う。
The connection IF 53 is an interface for connecting to the drive storage unit 200. As the connection IF 53, for example, a SAS interface can be used.
The flash memory 54 stores various data used for user business processing. The flash memory 54 electrically writes data to a storage element built in the flash memory 54 under the control of the controller 51.

ここで、フラッシュメモリ54の記憶領域は、複数のブロックに区分される。ブロックは複数のページを含む。ページは、データの読み出しや書き込みが行われる記憶領域の単位である。一方、フラッシュメモリ54では、ブロック単位でデータが消去される。したがって、ブロック内の無効データが格納されたページを再利用可能にするためには当該無効データを消去することになるが、この場合、無効データのみを消去することはできず、該当のブロック内の全てのページのデータを消去することになる。コントローラ51は、ガベージコレクションと呼ばれる処理により、ブロック単位のデータの消去を行う。以下の説明では、ガベージコレクションを、GC(Garbage Collection)と略記することがある。   Here, the storage area of the flash memory 54 is divided into a plurality of blocks. A block includes a plurality of pages. A page is a unit of a storage area where data is read or written. On the other hand, in the flash memory 54, data is erased in units of blocks. Therefore, in order to make a page storing invalid data in a block reusable, the invalid data is erased. In this case, however, only invalid data cannot be erased, and the corresponding block cannot be erased. The data of all the pages will be deleted. The controller 51 erases data in units of blocks by a process called garbage collection. In the following description, garbage collection may be abbreviated as GC (Garbage Collection).

図6は、ガベージコレクションの例を示す図である。図6(A)、図6(B)、図6(C)は、フラッシュメモリ54におけるブロック54a,54b,54c,54dを例示している。ブロック54aは、ページP11,P12,P13,P14を含む。ブロック54bは、ページP21,P22,P23,P24を含む。ブロック54cは、ページP31,P32,P33,P34を含む。ブロック54dは、ページP41,P42,P43,P44を含む。   FIG. 6 is a diagram illustrating an example of garbage collection. FIGS. 6A, 6B, and 6C illustrate blocks 54a, 54b, 54c, and 54d in the flash memory 54. FIG. The block 54a includes pages P11, P12, P13, and P14. The block 54b includes pages P21, P22, P23, and P24. The block 54c includes pages P31, P32, P33, and P34. The block 54d includes pages P41, P42, P43, and P44.

図6(A)において、ページP11,P12,P13,P14,P21,P23,P24,P31,P33,P41,P44は、有効なデータ(有効データ)を記憶しているページである。また、ページP22は、無効なデータ(無効データ)を記憶しているページである。更に、ページP32,P34,P42,P43は、データを記憶していない空きページである。   In FIG. 6A, pages P11, P12, P13, P14, P21, P23, P24, P31, P33, P41, and P44 are pages that store valid data (valid data). The page P22 is a page that stores invalid data (invalid data). Furthermore, pages P32, P34, P42, and P43 are empty pages that do not store data.

例えば、コントローラ51は、ページP22を再利用可能にするために、ブロック54bに属するページP21,P23,P24に記憶されている有効データを空きページに複製する。具体的には、コントローラ51は、ページP21に記憶されている有効データを複製し、複製された有効データをページP32に格納する。コントローラ51は、ページP23に記憶されている有効データを複製し、複製された有効データをページP43に格納する。コントローラ51は、ページP24に記憶されている有効データを複製し、複製された有効データをページP34に格納する。   For example, the controller 51 copies valid data stored in the pages P21, P23, and P24 belonging to the block 54b to an empty page so that the page P22 can be reused. Specifically, the controller 51 duplicates the valid data stored in the page P21 and stores the duplicated valid data in the page P32. The controller 51 duplicates the valid data stored in the page P23 and stores the duplicated valid data in the page P43. The controller 51 duplicates the valid data stored in the page P24 and stores the duplicated valid data in the page P34.

図6(B)は、コントローラ51による上記の有効データの複製後のブロック54a,54b,54c,54dを示している。具体的には、空きページであったページP32に、ページP21の有効データの複製が格納されている。また、空きページであったページP34に、ページP24の有効データの複製が格納されている。更に、空きページであったページP43に、ページP23の有効データの複製が格納されている。   FIG. 6B shows the blocks 54a, 54b, 54c and 54d after the valid data is copied by the controller 51. Specifically, a copy of the valid data of page P21 is stored in page P32, which is a free page. In addition, a copy of the valid data of the page P24 is stored in the page P34 that was an empty page. Further, a copy of the valid data of page P23 is stored in page P43, which is a free page.

コントローラ51は、ブロック54bに格納されているデータ(すなわち、ページP21,P22,P23,P24に記憶されているデータ)を消去する(あるいは、「ブロック54bを解放する」といってもよい)。   The controller 51 deletes the data stored in the block 54b (that is, data stored in the pages P21, P22, P23, and P24) (or may be referred to as “release the block 54b”).

図6(C)は、コントローラ51によるブロック54bに格納されているデータの消去後のブロック54a,54b,54c,54dを示している。こうして、コントローラ51は、ページP22の無効データを消去する場合でも、ガベージコレクションにより、ブロック54bの単位でデータを消去し、ブロック54b全体を再利用可能にする。   FIG. 6C shows the blocks 54a, 54b, 54c and 54d after the data stored in the block 54b by the controller 51 is erased. In this way, even when erasing invalid data of page P22, the controller 51 erases the data in units of the block 54b by garbage collection, and makes the entire block 54b reusable.

ここで、ガベージコレクションは、コントローラ51により、例えば、数時間から数日に一回程度の頻度で実行される。ガベージコレクションの実行中には、該当のSSDのアクセス性能が低下する。ガベージコレクションの所要時間は、数分(例えば、5分)程度である。ガベージコレクションは、SSD50においてコントローラ51により自律的に実行されるため、CM100側でガベージコレクションが発生するタイミングを予測することは困難である。   Here, the garbage collection is executed by the controller 51 with a frequency of about once every several hours to several days, for example. During the execution of garbage collection, the access performance of the corresponding SSD is degraded. The time required for garbage collection is about several minutes (for example, 5 minutes). Since garbage collection is autonomously executed by the controller 51 in the SSD 50, it is difficult to predict when garbage collection occurs on the CM 100 side.

図7は、CMの機能例を示す図である。CM100は、ファームウェア更新制御部110およびIO(Input / Output)制御部120を有する。ファームウェア更新制御部110およびIO制御部120は、例えば、RAM102に記憶されたプログラムを、プロセッサ101により実行することで、プロセッサ101により発揮される機能である。ただし、ファームウェア更新制御部110およびIO制御部120は、FPGAやASICなどのハードワイヤードロジックにより実現されてもよい。   FIG. 7 is a diagram illustrating an example of CM functions. The CM 100 includes a firmware update control unit 110 and an IO (Input / Output) control unit 120. The firmware update control unit 110 and the IO control unit 120 are functions exhibited by the processor 101 by, for example, executing a program stored in the RAM 102 by the processor 101. However, the firmware update control unit 110 and the IO control unit 120 may be realized by a hard wired logic such as an FPGA or an ASIC.

ファームウェア更新制御部110は、キャッシュメモリ103に記憶される情報に基づいて、SSD50,50a,50b,・・・によるファームウェアの更新のタイミングを制御する。具体的には、ファームウェア更新制御部110は、SSD50,50a,50b,・・・のファームウェアの更新指示の入力を受け付ける。当該更新指示は、管理者によりCM100に入力されてもよいし、サーバ20または他のサーバコンピュータによりLAN30aを介して、CM100に入力されてもよい。更新指示が管理者によりCM100に入力される場合、記録媒体11を用いて、更新後のファームウェアのプログラムが、CM100に提供される。あるいは、更新指示がサーバ20または他のサーバコンピュータによりCM100に入力される場合、サーバ20または他のサーバコンピュータによりLAN30aを介して、更新後のファームウェアのプログラムが、CM100に提供される。   Based on information stored in the cache memory 103, the firmware update control unit 110 controls firmware update timing by the SSDs 50, 50a, 50b,. Specifically, the firmware update control unit 110 accepts input of firmware update instructions for the SSDs 50, 50a, 50b,. The update instruction may be input to the CM 100 by the administrator, or may be input to the CM 100 by the server 20 or another server computer via the LAN 30a. When an update instruction is input to the CM 100 by the administrator, the updated firmware program is provided to the CM 100 using the recording medium 11. Alternatively, when an update instruction is input to the CM 100 by the server 20 or another server computer, an updated firmware program is provided to the CM 100 by the server 20 or another server computer via the LAN 30a.

そして、ファームウェア更新制御部110は、サーバ20によるストレージ装置10へのアクセス状況や、SSD50,50a,50b,・・・それぞれに対するアクセス待ちコマンドを監視する。ファームウェア更新制御部110は、当該監視に応じて、SSD毎に、ファームウェアの更新のタイミングを決定する。ファームウェア更新制御部110は、あるSSDにおいてファームウェアの更新を行うと決定すると、該当のSSDに対して更新後のファームウェアを提供し、ファームウェアの更新を指示する。ファームウェア更新制御部110は、ファームウェアを更新中であるSSDの識別情報を、キャッシュメモリ103に格納する。なお、SSDによるファームウェアの更新の所要時間は、数秒(例えば、5秒)程度である。   Then, the firmware update control unit 110 monitors the access status of the server 20 to the storage apparatus 10 and the access waiting commands for the SSDs 50, 50a, 50b,. The firmware update control unit 110 determines the firmware update timing for each SSD according to the monitoring. When the firmware update control unit 110 determines to update the firmware in a certain SSD, the firmware update control unit 110 provides the updated firmware to the corresponding SSD and instructs the firmware to be updated. The firmware update control unit 110 stores the identification information of the SSD whose firmware is being updated in the cache memory 103. The time required for updating the firmware by SSD is about several seconds (for example, 5 seconds).

IO制御部120は、キャッシュメモリ103に記憶される情報に基づいて、ファームウェア更新中のSSDに対するIOを制御する。具体的には、ファームウェア更新中のSSDに対するIOを、別のSSDに振り替えたり、ファームウェア更新中のSSDが属するRAIDグループにおける他のSSDを用いて処理したりする。例えば、IO制御部120は、ファームウェア更新制御部110によりキャッシュメモリ103に格納されたファームウェアを更新中であるSSDの識別情報を参照することで、ファームウェア更新中のSSDを特定する。   Based on information stored in the cache memory 103, the I / O control unit 120 controls the I / O for the SSD whose firmware is being updated. Specifically, the IO for the SSD whose firmware is being updated is transferred to another SSD, or processing is performed using another SSD in the RAID group to which the SSD whose firmware is being updated belongs. For example, the IO control unit 120 identifies the SSD being updated by referring to the identification information of the SSD that is updating the firmware stored in the cache memory 103 by the firmware update control unit 110.

図8は、チャンクの例を示す図である。RAIDグループにおける各SSDの記憶領域はチャンクと呼ばれる単位で管理される。例えば、SSD50は、チャンクa,b,c,d,eを含む(SSD50には更に多くのチャンクが含まれ得る)。ここで、識別情報“a”で表されるチャンクを、“チャンクa”のように表記している。   FIG. 8 is a diagram illustrating an example of chunks. The storage area of each SSD in the RAID group is managed in units called chunks. For example, the SSD 50 includes chunks a, b, c, d, and e (the SSD 50 can include more chunks). Here, the chunk represented by the identification information “a” is written as “chunk a”.

図9は、チャンク割り当て管理テーブルの例を示す図である。チャンク割り当て管理テーブル111は、キャッシュメモリ103に記憶される。チャンク割り当て管理テーブル111は、Writeデータ(書き込み対象のデータ)と、チャンクとの対応関係を管理するためのテーブルである。チャンク割り当て管理テーブル111は、Writeデータおよびチャンクの項目を含む。   FIG. 9 is a diagram illustrating an example of the chunk allocation management table. The chunk allocation management table 111 is stored in the cache memory 103. The chunk allocation management table 111 is a table for managing the correspondence between write data (data to be written) and chunks. The chunk allocation management table 111 includes write data and chunk items.

Writeデータの項目には、Writeデータの識別情報が登録される。チャンクの項目には、当該Writeデータの書き込み先のチャンクの識別情報が登録される。例えば、チャンク割り当て管理テーブル111には、Writeデータが“1”、チャンクが“a,b”というレコードが登録されている。これは、識別情報“1”に対応するWriteデータの書き込み先が、チャンクa,bであることを示す。チャンク割り当て管理テーブル111には、他のWriteデータに対しても同様に、書き込み先のチャンクの識別情報が対応付けられている。   The write data identification information is registered in the write data item. In the chunk item, the identification information of the chunk to which the write data is written is registered. For example, in the chunk allocation management table 111, a record in which Write data is “1” and chunks are “a, b” is registered. This indicates that the write data write destination corresponding to the identification information “1” is chunks a and b. In the chunk allocation management table 111, similarly to other write data, identification information of the write destination chunk is associated.

ここで、チャンク割り当て管理テーブル111は、キャッシュメモリ103に、SSD毎に格納される(チャンク割り当てテーブルは、該当のSSDの識別情報と対応付けられてキャッシュメモリ103に格納される)。各SSDのチャンク割り当て管理テーブルは、ストレージ装置10の電源をオフにする際(当該電源がオフになる直前)に、プロセッサ101により、SSD50,50a,50b,・・・の所定の記憶領域(不揮発性の記憶領域)に格納される。また、各SSDのチャンク割り当て管理テーブルは、ストレージ装置10の電源をオンにする際(例えば、当該電源のオンのための処理の間)に、プロセッサ101により、SSD50,50a,50b,・・・の所定の記憶領域から読み出されて、キャッシュメモリ103に格納される。   Here, the chunk allocation management table 111 is stored in the cache memory 103 for each SSD (the chunk allocation table is stored in the cache memory 103 in association with the identification information of the corresponding SSD). The chunk allocation management table of each SSD is stored in a predetermined storage area (non-volatile) of the SSDs 50, 50a, 50b,... By the processor 101 when the power of the storage apparatus 10 is turned off (immediately before the power is turned off). Sex storage area). Further, the chunk allocation management table for each SSD is stored in the SSD 50, 50a, 50b,... By the processor 101 when the storage apparatus 10 is turned on (for example, during the process for turning on the power). Are read from the predetermined storage area and stored in the cache memory 103.

図10は、サーバのIO数の監視例を示す図である。ファームウェア更新制御部110は、サーバ20によるストレージ装置10へのIO数を監視することで、サーバ20によるアクセス状況を監視する。サーバ20によるIO数は、プロセッサ101が受け付けたサーバ20による書き込みや読み出しのアクセス要求の数である。例えば、ファームウェア更新制御部110は、サーバ20から単位時間当たりに受け付けたIO数を得ることで、現在、サーバ20によるアクセス要求が規定数よりも多いか、または、規定数以下かを判定し得る。サーバ20によるアクセス要求が規定数よりも多い場合、サーバ20では、ユーザの業務処理が活発に行われていると推定される。また、サーバ20によるアクセス要求が規定数以下の場合、サーバ20では、ユーザの業務処理の実行が不活発であると推定される。ファームウェア更新制御部110は、RAIDグループ毎に、IO数を監視してもよい。   FIG. 10 is a diagram illustrating an example of monitoring the number of IOs of the server. The firmware update control unit 110 monitors the access status by the server 20 by monitoring the number of IOs to the storage apparatus 10 by the server 20. The number of IOs by the server 20 is the number of write / read access requests by the server 20 received by the processor 101. For example, the firmware update control unit 110 can determine whether the number of I / O requests received from the server 20 per unit time is currently greater than the specified number or less than the specified number. . If the number of access requests by the server 20 is greater than the specified number, it is estimated that the server 20 is actively performing user business processing. If the number of access requests by the server 20 is equal to or less than the specified number, it is estimated that the server 20 is inactive in executing the business process of the user. The firmware update control unit 110 may monitor the number of IOs for each RAID group.

なお、アクセス要求は、前述のライトバックの方法により、キャッシュメモリ103に保持される(具体的な保持方法は、図11において説明される)。そして、プロセッサ101は、キャッシュメモリ103に保持された当該アクセス要求に応じて、所定のRAIDグループ(例えば、SSD50,50aが属するRAIDグループG1)に対するアクセスを行う。   The access request is held in the cache memory 103 by the above-described write back method (a specific holding method will be described with reference to FIG. 11). Then, the processor 101 accesses a predetermined RAID group (for example, the RAID group G1 to which the SSDs 50 and 50a belong) in response to the access request held in the cache memory 103.

図11は、SSDに対するアクセス待ちコマンドの監視例を示す図である。前述のように、プロセッサ101は、ライトバック方式によって、サーバ20からのアクセス要求を処理する。このため、ファームウェア更新制御部110は、サーバ20から受け付けたアクセス要求に基づいて、SSD50,50a,50b,・・・それぞれに対するアクセスコマンドをキャッシュメモリ103に格納する。キャッシュメモリ103に格納された各SSDに対するアクセスコマンドは、アクセス待ちとなっているコマンドである。このため、キャッシュメモリ103に格納されたアクセスコマンドを、アクセス待ちコマンドと称する。   FIG. 11 is a diagram illustrating an example of monitoring an access wait command for the SSD. As described above, the processor 101 processes the access request from the server 20 by the write back method. Therefore, the firmware update control unit 110 stores access commands for the SSDs 50, 50 a, 50 b,... In the cache memory 103 based on the access request received from the server 20. The access command for each SSD stored in the cache memory 103 is a command waiting for access. For this reason, the access command stored in the cache memory 103 is referred to as an access wait command.

キャッシュメモリ103には、SSD50,50a,50b,・・・それぞれのキューが設けられ、各キューにアクセス待ちコマンドが格納される。例えば、SSD50(図中“SSDx”と表記)に対応するキューに、SSD50に対する複数のアクセス待ちコマンド(アクセス待ちコマンド群)が格納される。また、SSD50a(図中“SSDy”と表記)に対応するキューに、SSD50aに対する複数のアクセス待ちコマンド(アクセス待ちコマンド群)が格納される。   The cache memory 103 is provided with respective queues for the SSDs 50, 50a, 50b,..., And an access waiting command is stored in each queue. For example, a plurality of access wait commands (access wait command group) for the SSD 50 are stored in a queue corresponding to the SSD 50 (denoted as “SSDx” in the figure). In addition, a plurality of access wait commands (access wait command group) for the SSD 50a are stored in a queue corresponding to the SSD 50a (indicated as “SSDy” in the figure).

例えば、ファームウェア更新制御部110は、SSD50に対応するキューに格納されたアクセス待ちコマンドの数を求めることで、SSD50に対するアクセス待ちコマンドの数を得る。同様に、ファームウェア更新制御部110は、SSD50aに対応するキューに格納されたアクセス待ちコマンドの数を求めることで、SSD50aに対するアクセス待ちコマンドの数を得る。ファームウェア更新制御部110は、他のSSDに対しても同様にして、アクセス待ちコマンドの数を求めることができる。   For example, the firmware update control unit 110 obtains the number of commands waiting for access to the SSD 50 by obtaining the number of commands waiting for access stored in the queue corresponding to the SSD 50. Similarly, the firmware update control unit 110 obtains the number of commands waiting for access to the SSD 50a by obtaining the number of commands waiting for access stored in the queue corresponding to the SSD 50a. The firmware update control unit 110 can determine the number of access waiting commands in the same manner for other SSDs.

次に、CM100によるSSDのファームウェア更新の処理手順を説明する。
図12は、ファームウェア更新例を示すフローチャートである。以下、図12に示す手順をステップ番号に沿って説明する。
Next, an SSD firmware update processing procedure by the CM 100 will be described.
FIG. 12 is a flowchart illustrating an example of firmware update. In the following, the procedure illustrated in FIG. 12 will be described in order of step number.

(S11)ファームウェア更新制御部110は、SSD50,50a,50b,・・・のファームウェア更新の指示(更新指示)を受け付ける。前述のように、ファームウェア更新制御部110は、記録媒体11やLAN30aを介して、更新後のファームウェアのプログラムを取得し、RAM102またはキャッシュメモリ103に格納する。   (S11) The firmware update control unit 110 receives a firmware update instruction (update instruction) for the SSDs 50, 50a, 50b,. As described above, the firmware update control unit 110 acquires the updated firmware program via the recording medium 11 or the LAN 30 a and stores it in the RAM 102 or the cache memory 103.

(S12)ファームウェア更新制御部110は、IO数を監視し、各SSDについてIO数が規定数以下であるか否かを判定する。ファームウェア更新制御部110によるIO数の監視方法は、図10で例示した通りである。例えば、ファームウェア更新制御部110は、サーバ20から受け付けるIO数の頻度(単位時間当たりのIO数)を取得し、IO数の頻度を、規定数(規定の頻度)以下であるか否かを、RAIDグループ単位に判定する。あるRAIDグループについてIO数(IO数の頻度)が規定数以下である場合、ファームウェア更新制御部110は、ステップS13に処理を進める。何れのRAIDグループについてもIO数(IO数の頻度)が規定数よりも大きい場合、ファームウェア更新制御部110は、ステップS14に処理を進める。ここで、ステップS12の判定に用いられる規定数は、運用に応じて予め定められ、ファームウェア更新制御部110に対して予め設定される。   (S12) The firmware update control unit 110 monitors the number of IOs and determines whether or not the number of IOs is less than or equal to the specified number for each SSD. The method of monitoring the number of IOs by the firmware update control unit 110 is as illustrated in FIG. For example, the firmware update control unit 110 acquires the frequency of the number of IOs received from the server 20 (the number of IOs per unit time), and determines whether the frequency of the IOs is equal to or less than a specified number (specified frequency). The determination is made in units of RAID groups. When the number of IOs (frequency of the number of IOs) is less than or equal to the specified number for a certain RAID group, the firmware update control unit 110 advances the process to step S13. When the number of IOs (frequency of the number of IOs) is greater than the specified number for any RAID group, the firmware update control unit 110 advances the process to step S14. Here, the specified number used for the determination in step S12 is determined in advance according to the operation, and is set in advance for the firmware update control unit 110.

(S13)ファームウェア更新制御部110は、IO数(IO数の頻度)が規定数以下のRAIDグループに属するSSDのファームウェア更新を実施するように、該当のSSDに対して指示する。例えば、ファームウェア更新制御部110は、1つのSSDずつ順番にファームウェア更新を行うよう指示する。このとき、ファームウェア更新制御部110は、更新後のファームウェアのプログラムを該当のSSDに対して提供する。該当のSSDのコントローラは、当該指示に応じて、更新後のファームウェアのプログラムを該当のSSDのNVRAMに格納し、自SSDを再起動させ、更新後のファームウェアでの動作を開始し、更新完了をファームウェア更新制御部110に応答する。そして、ファームウェア更新制御部110は、ステップS16に処理を進める。   (S13) The firmware update control unit 110 instructs the corresponding SSD to update the firmware of the SSD belonging to the RAID group whose number of IOs (frequency of the number of IOs) is equal to or less than the specified number. For example, the firmware update control unit 110 instructs to update the firmware one SSD at a time. At this time, the firmware update control unit 110 provides the updated firmware program to the corresponding SSD. In response to the instruction, the controller of the relevant SSD stores the updated firmware program in the NVRAM of the relevant SSD, restarts its own SSD, starts operation with the updated firmware, and completes the update. Responds to the firmware update control unit 110. Then, the firmware update control unit 110 advances the process to step S16.

(S14)ファームウェア更新制御部110は、キャッシュメモリ103に格納されたSSD毎のアクセス待ちコマンドの数に基づいて、何れかのSSDにおいてガベージコレクション(GC)を検出したか否かを判定する。何れかのSSDにおいてガベージコレクションを検出した場合、ファームウェア更新制御部110は、ステップS15に処理を進める。ガベージコレクションを検出していない場合、ファームウェア更新制御部110は、ステップS12に処理を進める。   (S14) The firmware update control unit 110 determines whether garbage collection (GC) has been detected in any SSD based on the number of access wait commands for each SSD stored in the cache memory 103. When garbage collection is detected in any SSD, the firmware update control unit 110 advances the process to step S15. If no garbage collection is detected, the firmware update control unit 110 advances the process to step S12.

ここで、図11で例示したように、ファームウェア更新制御部110は、キャッシュメモリ103を参照し、あるSSDにおいて、アクセス待ちコマンドの数が所定の閾値以上になった場合に、該当のSSDにおけるガベージコレクションを検出する。一方、ファームウェア更新制御部110は、各SSDについて、アクセス待ちコマンドの数が所定の閾値未満である場合に、ガベージコレクションを検出しない。ステップS14の判定に用いられる閾値は、運用に応じて予め定められ、ファームウェア更新制御部110に対して予め設定される。   Here, as illustrated in FIG. 11, the firmware update control unit 110 refers to the cache memory 103, and in a certain SSD, when the number of commands waiting for access exceeds a predetermined threshold, the firmware update in the corresponding SSD is performed. Detect collections. On the other hand, the firmware update control unit 110 does not detect garbage collection when the number of commands waiting for access is less than a predetermined threshold for each SSD. The threshold used for the determination in step S14 is determined in advance according to the operation, and is set in advance for the firmware update control unit 110.

(S15)ファームウェア更新制御部110は、ガベージコレクションが検出されたSSDのファームウェア更新を実施するように、該当のSSDに対して指示する。このとき、ファームウェア更新制御部110は、更新後のファームウェアのプログラムを該当のSSDに対して提供する。該当のSSDのコントローラは、当該指示に応じて、更新後のファームウェアのプログラムを該当のSSDのNVRAMに格納し、ガベージコレクションを一時中断し、自SSDを再起動させ、更新後のファームウェアでの動作を開始する。該当のSSDのコントローラは、更新後のファームウェアでの動作開始後に、一時中断したガベージコレクションを再開する。また、該当のSSDのコントローラは、ファームウェアの更新完了を、ファームウェア更新制御部110に応答する。   (S15) The firmware update control unit 110 instructs the corresponding SSD to perform firmware update of the SSD in which garbage collection is detected. At this time, the firmware update control unit 110 provides the updated firmware program to the corresponding SSD. In response to the instruction, the controller of the relevant SSD stores the updated firmware program in the NVRAM of the relevant SSD, suspends garbage collection, restarts its own SSD, and operates with the updated firmware. To start. The corresponding SSD controller resumes the temporarily suspended garbage collection after the operation with the updated firmware is started. Further, the controller of the corresponding SSD responds to the firmware update control unit 110 with the completion of the firmware update.

(S16)ファームウェア更新制御部110は、全SSDのファームウェアの更新を完了したか否かを判定する。全SSDのファームウェアの更新を完了した場合、ファームウェア更新制御部110は、ステップS17に処理を進める。全SSDのファームウェアの更新を完了していない場合、ファームウェア更新制御部110は、ステップS12に処理を進める。   (S16) The firmware update control unit 110 determines whether or not the firmware update for all SSDs has been completed. When the update of the firmware of all the SSDs is completed, the firmware update control unit 110 advances the process to step S17. If the update of all the SSD firmware has not been completed, the firmware update control unit 110 advances the process to step S12.

(S17)ファームウェア更新制御部110は、各SSDのファームウェア更新の完了を通知する。具体的には、ファームウェア更新制御部110は、ファームウェア更新の完了を示すメッセージを、更新指示を行ったサーバ20または他のサーバコンピュータに送信してもよい。あるいは、ファームウェア更新制御部110は、ストレージ装置10に接続された表示装置に、ファームウェア更新の完了を示すメッセージを表示させてもよい。そして、ファームウェア更新制御部110は、ファームウェア更新処理を終了する(CM100は通常時の処理に復帰する)。   (S17) The firmware update control unit 110 notifies the completion of the firmware update for each SSD. Specifically, the firmware update control unit 110 may transmit a message indicating the completion of firmware update to the server 20 or another server computer that issued the update instruction. Alternatively, the firmware update control unit 110 may display a message indicating the completion of firmware update on a display device connected to the storage apparatus 10. Then, the firmware update control unit 110 ends the firmware update process (the CM 100 returns to the normal process).

このように、ファームウェア更新制御部110は、各SSDのファームウェアの更新指示を受信すると、サーバ20から受信するアクセス要求の頻度(IO数の頻度)を監視する。そして、ファームウェア更新制御部110は、当該アクセス要求の頻度が規定数以下の場合に、アクセス待ちコマンドの数に拘わらずにファームウェアの更新を各SSDに指示する。この場合、例えば、ファームウェア更新制御部110は、各SSDに対して1つずつ順番にファームウェアの更新を指示する。例えば、1つのRAIDグループにおいて、1回にファームウェア更新を行うSSDは1つとする。また、ファームウェア更新制御部110は、アクセス要求の頻度が規定数よりも大きい場合に、アクセス待ちコマンドの数に応じて、ファームウェアの更新をSSDに指示する。この場合も、1つのRAIDグループにおいて1回にファームウェア更新を行うSSDは1つとする。   As described above, when the firmware update control unit 110 receives a firmware update instruction of each SSD, the firmware update control unit 110 monitors the frequency of access requests (IO frequency) received from the server 20. Then, the firmware update control unit 110 instructs each SSD to update the firmware regardless of the number of access waiting commands when the frequency of the access request is equal to or less than the specified number. In this case, for example, the firmware update control unit 110 instructs to update the firmware one by one for each SSD. For example, in one RAID group, there is one SSD that performs firmware update at a time. In addition, when the frequency of access requests is greater than the specified number, the firmware update control unit 110 instructs the SSD to update the firmware according to the number of commands waiting for access. Also in this case, it is assumed that one SSD performs firmware update at one time in one RAID group.

なお、ステップS14の判定では、他の方法によりガベージコレクションを検出してもよい。例えば、ファームウェア更新制御部110は、単位時間におけるアクセス待ちコマンドの数の増分が所定の閾値以上になった(比較的短期間にアクセス待ちコマンド数が急増した)場合に、該当のSSDにおけるガベージコレクションを検出してもよい。このとき、ファームウェア更新制御部110は、各SSDについて、単位時間におけるアクセス待ちコマンドの数の増分が所定の閾値未満の場合に、ガベージコレクションを検出しないことになる。   In the determination in step S14, garbage collection may be detected by another method. For example, when the increment of the number of commands waiting for access in a unit time exceeds a predetermined threshold (the number of commands waiting for access increases rapidly in a relatively short time), the firmware update control unit 110 performs garbage collection in the corresponding SSD. May be detected. At this time, the firmware update control unit 110 does not detect garbage collection when the increment in the number of access waiting commands per unit time is less than a predetermined threshold for each SSD.

こうして、ファームウェア更新制御部110は、SSD50,50a,50b,・・・それぞれに対して、ファームウェアの更新を順次行う。これにより、ファームウェアの更新に伴う性能への影響を抑えることができる。具体的には次の通りである。   Thus, the firmware update control unit 110 sequentially updates the firmware for each of the SSDs 50, 50a, 50b,. Thereby, it is possible to suppress the influence on the performance due to the firmware update. Specifically, it is as follows.

SSDにおけるファームウェアの更新中は、当該SSDに対するデータアクセスを行えなくなる。このため、任意のタイミングでSSDのファームウェアの更新を行うと、該当のSSDに対するデータアクセスに遅延が発生し、性能に影響を及ぼす可能性があるという問題がある。   During firmware update in the SSD, data access to the SSD cannot be performed. For this reason, if the firmware of the SSD is updated at an arbitrary timing, there is a problem that a delay occurs in data access to the corresponding SSD, which may affect the performance.

そこで、ファームウェア更新制御部110は、SSDによりガベージコレクションが実行中である期間を利用して、該当のSSDによるファームウェアの更新も実行させる。ガベージコレクション中は、そもそもSSDのアクセス性能が低下する期間であるため、ファームウェアの更新も当該期間において実行してしまう方が、業務運用への影響を低減できる。なぜなら、ガベージコレクション中でない通常運用中にファームウェア更新を行うと、ガベージコレクションとは別に、SSDへのアクセスを行えない時間帯が発生することになるからである。ガベージコレクションの期間中にファームウェア更新も併せて行うことで、SSDへのアクセスを行えない時間帯が余計に発生することを抑えられ、性能への影響を抑えられる。   Therefore, the firmware update control unit 110 also uses the period during which garbage collection is being executed by the SSD to update the firmware by the corresponding SSD. Since garbage collection is a period in which SSD access performance deteriorates in the first place, it is possible to reduce the impact on business operations if firmware is also updated during that period. This is because, if firmware is updated during normal operation that is not in garbage collection, a time zone during which access to the SSD cannot be performed occurs separately from garbage collection. By performing the firmware update during the garbage collection period, it is possible to suppress the occurrence of an extra time zone during which access to the SSD cannot be performed, and the influence on performance can be suppressed.

特に、ファームウェア更新制御部110は、上記のように、サーバ20からのIO数が比較的多い場合でも、ガベージコレクション中と判断された場合には、該当のSSDのファームウェア更新を行う。これにより、サーバ20によるIO数が比較的少なくなる時間帯を待たなくてもよく、早いタイミングで更新後のファームウェアを適用することができる。更に、管理者が、サーバ20によるIO数を監視して、ファームウェア更新のタイミングを決定する場合よりも、管理者の運用管理の負担を低減できる。   In particular, the firmware update control unit 110 updates the firmware of the corresponding SSD when it is determined that garbage collection is being performed even when the number of IOs from the server 20 is relatively large as described above. Thereby, it is not necessary to wait for a time period when the number of IOs by the server 20 is relatively small, and the updated firmware can be applied at an early timing. Furthermore, the administrator's operation management burden can be reduced as compared with the case where the administrator monitors the number of IOs by the server 20 and determines the timing of firmware update.

また、ガベージコレクションは、各SSDによって自律的に実行され、CM100側で各SSDによるガベージコレクションが実行されるタイミングを予測することは困難である。そこで、ファームウェア更新制御部110は、キャッシュメモリ103におけるアクセス待ちコマンドの数を監視することで、各SSDによりガベージコレクションが実行されているか否かを適切に判定可能となる。なぜなら、SSDによりガベージコレクションが実行されている間は、該当のSSDに対するアクセス性能が低下し、該当のSSDに対応するキューに保持されるアクセス待ちコマンドの数が過大になる可能性が高いからである。   Further, garbage collection is autonomously executed by each SSD, and it is difficult to predict the timing at which garbage collection by each SSD is executed on the CM 100 side. Therefore, the firmware update control unit 110 can appropriately determine whether or not garbage collection is executed by each SSD by monitoring the number of commands waiting for access in the cache memory 103. This is because while the garbage collection is being executed by the SSD, the access performance to the corresponding SSD is reduced, and the number of commands waiting for access held in the queue corresponding to the corresponding SSD is likely to be excessive. is there.

また、複数のRAIDグループを用いて、シンプロビジョニングにより論理的な記憶領域をユーザに割り当てる場合に、ファームウェア更新およびガベージコレクションを行っているSSDを避けたアクセス制御を実現できる。具体的には以下に示す制御が考えられる。まず、CM100によるファームウェア更新中の書き込み処理の手順を説明する。   In addition, when a logical storage area is allocated to a user by thin provisioning using a plurality of RAID groups, it is possible to realize access control that avoids SSDs performing firmware update and garbage collection. Specifically, the following control can be considered. First, the procedure of the writing process during firmware update by the CM 100 will be described.

図13は、ファームウェア更新中の書き込み処理例を示すフローチャートである。以下、図13に示す手順をステップ番号に沿って説明する。
(S21)IO制御部120は、ファームウェア更新中のSSDに対するWriteアクセス(データの書き込みコマンド)の発生を検出する。例えば、IO制御部120は、ファームウェア更新中のSSDについて、キャッシュメモリ103におけるキューからデータの書き込みに相当するアクセス待ちコマンドを取得することで、当該Writeアクセスの発生を検出する。
FIG. 13 is a flowchart illustrating an example of a writing process during firmware update. Hereinafter, the procedure illustrated in FIG. 13 will be described in order of step number.
(S21) The IO control unit 120 detects the occurrence of a write access (data write command) to the SSD whose firmware is being updated. For example, the IO control unit 120 detects the occurrence of the write access by acquiring an access wait command corresponding to data writing from the queue in the cache memory 103 for the SSD whose firmware is being updated.

(S22)IO制御部120は、書き込み対象のデータが新規データであるか否かを判定する。新規データとは、該当のSSDが属するRAIDグループに既に格納されている既存データに対する更新後のデータ以外のデータである。書き込み対象のデータが新規データである場合、IO制御部120は、ステップS23に処理を進める。書き込み対象のデータが新規データでない場合、IO制御部120は、ステップS24に処理を進める。   (S22) The IO control unit 120 determines whether the data to be written is new data. The new data is data other than the updated data for the existing data already stored in the RAID group to which the corresponding SSD belongs. If the data to be written is new data, the IO control unit 120 advances the process to step S23. If the data to be written is not new data, the IO control unit 120 advances the processing to step S24.

(S23)IO制御部120は、今回の書き込み対象である新規データについて、対象SSD(すなわち、ファームウェア更新中のSSD)を含まない別のRAIDグループへチャンクを割り当てる。IO制御部120は、チャンクの割り当て変更に応じて、キャッシュメモリ103に記憶されたチャンク割り当て管理テーブル111を更新する。そして、IO制御部120は、ステップS25に処理を進める。   (S23) The IO control unit 120 allocates a chunk to another RAID group that does not include the target SSD (that is, the SSD whose firmware is being updated) for the new data to be written this time. The IO control unit 120 updates the chunk allocation management table 111 stored in the cache memory 103 in accordance with the chunk allocation change. Then, the IO control unit 120 proceeds with the process to step S25.

(S24)IO制御部120は、対象SSD(すなわち、ファームウェア更新中のSSD)を含まない別のRAIDグループへ既存データを移す。その上で、IO制御部120は、今回の書き込み対象のデータ(更新後のデータ)について、当該別のRAIDグループへチャンクを割り当てる(既存データの移行先のチャンクを割り当てる)。IO制御部120は、チャンクの割り当て変更に応じて、キャッシュメモリ103に記憶されたチャンク割り当て管理テーブル111を更新する。なお、既存データを取得する際、IO制御部120は、対象SSDが属するRAIDグループにおける対象SSD以外のSSDから既存データを取得する(例えば、RAID1であればミラー、RAID5であればパリティなどを用いて既存データを取得する)。   (S24) The IO control unit 120 transfers the existing data to another RAID group that does not include the target SSD (that is, the SSD whose firmware is being updated). After that, the IO control unit 120 allocates a chunk to the other RAID group for the current write target data (updated data) (allocates a chunk to which the existing data is migrated). The IO control unit 120 updates the chunk allocation management table 111 stored in the cache memory 103 in accordance with the chunk allocation change. When acquiring the existing data, the IO control unit 120 acquires the existing data from the SSD other than the target SSD in the RAID group to which the target SSD belongs (for example, if RAID 1 is used, a mirror is used, and if RAID 5 is used, parity is used). To obtain existing data).

(S25)IO制御部120は、割り当てたRAIDグループ(ステップS23またはステップS24における別のRAIDグループ)に属するSSDに対して書き込みを実行する。   (S25) The IO control unit 120 executes writing to the SSD belonging to the assigned RAID group (another RAID group in step S23 or step S24).

図14は、ファームウェア更新中の書き込みの具体例を示す図である。例えば、ストレージ装置10において、RAIDグループG1,G2が存在している。SSD50,50aは、RAIDグループG1に属する。SSD50b,50cは、RAIDグループG2に属する。RAIDグループG1,G2それぞれにおけるRAIDレベルは、例えば、RAID1である。そして、RAIDグループG2に属するSSD50bは、ファームウェアを更新中である。このとき、IO制御部120(プロセッサ101)が、SSD50bに対するWriteアクセスの発生を検出したとする。例えば、検出されたWriteアクセスは、既存データに対する更新データの書き込みを要求するものであるとする。   FIG. 14 is a diagram illustrating a specific example of writing during firmware update. For example, in the storage apparatus 10, RAID groups G1 and G2 exist. The SSDs 50 and 50a belong to the RAID group G1. The SSDs 50b and 50c belong to the RAID group G2. The RAID level in each of the RAID groups G1 and G2 is, for example, RAID1. The SSD 50b belonging to the RAID group G2 is updating the firmware. At this time, it is assumed that the IO control unit 120 (processor 101) detects the occurrence of a write access to the SSD 50b. For example, it is assumed that the detected write access is a request for writing update data to existing data.

この場合、まず、IO制御部120は、(1)別RAIDにデータを再配置する。別RAIDとは、RAIDグループG2とは異なるRAIDグループG1を意味する。すなわち、IO制御部120は、RAIDグループG2に記憶された該当の既存データを、RAIDグループG1に格納する(該当の既存データに対するチャンクの割り当て変更を行う)。そして、IO制御部120は、(2)別RAIDに対して、該当の更新データを書き込む。すなわち、IO制御部120は、RAIDグループG1に再配置した既存データを、更新データにより更新する。   In this case, first, the IO control unit 120 (1) rearranges the data in another RAID. Another RAID means a RAID group G1 different from the RAID group G2. That is, the IO control unit 120 stores the corresponding existing data stored in the RAID group G2 in the RAID group G1 (performs chunk allocation change for the corresponding existing data). Then, the IO control unit 120 writes the corresponding update data to (2) another RAID. That is, the IO control unit 120 updates the existing data rearranged in the RAID group G1 with the update data.

このように、ファームウェア更新中のSSDに対してWriteアクセスが発生した場合には、該当のSSDが属するRAIDグループとは別のRAIDグループにアクセス先を振り替えることで、ファームウェア更新に伴う書き込み遅延を低減できる。   In this way, when a write access occurs to an SSD whose firmware is being updated, the write destination associated with the firmware update is reduced by transferring the access destination to a RAID group different from the RAID group to which the relevant SSD belongs. it can.

次に、CM100によるファームウェア更新中の読み出し処理の手順を説明する。
図15は、ファームウェア更新中の読み出し処理例を示すフローチャートである。以下、図15に示す手順をステップ番号に沿って説明する。
Next, a procedure of a read process during firmware update by the CM 100 will be described.
FIG. 15 is a flowchart illustrating an example of read processing during firmware update. Hereinafter, the procedure illustrated in FIG. 15 will be described in order of step number.

(S31)IO制御部120は、ファームウェア更新中のSSDに対するReadアクセス(データの読み出しコマンド)の発生を検出する。例えば、IO制御部120は、ファームウェア更新中のSSDについて、キャッシュメモリ103におけるキューからデータの読み出しに相当するアクセス待ちコマンドを取得することで、当該Readアクセスの発生を検出する。   (S31) The IO control unit 120 detects the occurrence of Read access (data read command) to the SSD whose firmware is being updated. For example, the IO control unit 120 detects the occurrence of the Read access by acquiring an access wait command corresponding to data reading from the queue in the cache memory 103 for the SSD whose firmware is being updated.

(S32)IO制御部120は、該当のSSD(ファームウェア更新中のSSD)が属するRAIDグループ内の該当のSSD以外のSSDにアクセスする。例えば、RAIDグループのRAIDレベルがRAID1の場合、該当のSSD以外のSSDは、該当のSSDに対するミラーのSSDである。あるいは、RAIDグループのRAIDレベルがRAID5の場合、該当のSSD以外のSSD(読み出し対象のデータの断片またはパリティを記憶するSSD)は、複数存在することになる。   (S32) The IO control unit 120 accesses an SSD other than the corresponding SSD in the RAID group to which the corresponding SSD (SSD whose firmware is being updated) belongs. For example, when the RAID level of the RAID group is RAID 1, the SSD other than the corresponding SSD is a mirror SSD for the corresponding SSD. Alternatively, when the RAID level of the RAID group is RAID 5, there are a plurality of SSDs other than the corresponding SSD (SSD that stores a fragment or parity of data to be read).

(S33)IO制御部120は、ステップS32のアクセス結果により、読み出し対象のデータを構築する。例えば、RAID1であれば、IO制御部120は、ミラーのSSDにアクセスすることで、読み出し対象のデータを取得できる。あるいは、RAID5であれば、例えば、IO制御部120は、他のSSDから取得したパリティなどにより該当のSSDに記憶されたデータを復元できる。また、IO制御部120は、他のSSDから取得したデータと復元したデータとを用いて、読み出し対象のデータを取得できる。あるいは、ファームウェア更新中のSSDにパリティが記憶されている場合、IO制御部120は、他のSSDに記憶されたデータ(データの断片)を用いて、読み出し対象のデータを取得できる。   (S33) The IO control unit 120 constructs data to be read based on the access result in step S32. For example, in the case of RAID1, the IO control unit 120 can acquire data to be read by accessing the SSD of the mirror. Alternatively, in the case of RAID 5, for example, the IO control unit 120 can restore the data stored in the corresponding SSD by using the parity acquired from the other SSD. In addition, the IO control unit 120 can acquire data to be read using data acquired from another SSD and restored data. Alternatively, when the parity is stored in the SSD whose firmware is being updated, the IO control unit 120 can acquire the data to be read using the data (data fragment) stored in the other SSD.

(S34)IO制御部120は、ステップS33において構築した読み出し対象のデータをサーバ20に応答する。
図16は、ファームウェア更新中の読み出しの具体例を示す図である。図16(A)は、RAIDレベルがRAID1であるRAIDグループG1に対するReadアクセスの処理例を示している。SSD50,50aは、RAIDグループG1に属する。そして、SSD50は、ファームウェアを更新中である。このとき、IO制御部120(プロセッサ101)が、SSD50に対するReadアクセスの発生を検出したとする。
(S34) The IO control unit 120 responds to the server 20 with the data to be read that has been constructed in step S33.
FIG. 16 is a diagram illustrating a specific example of reading during firmware update. FIG. 16A shows a read access processing example for the RAID group G1 whose RAID level is RAID1. The SSDs 50 and 50a belong to the RAID group G1. Then, the SSD 50 is updating the firmware. At this time, it is assumed that the IO control unit 120 (processor 101) detects the occurrence of Read access to the SSD 50.

この場合、IO制御部120は、SSD50のミラーであるSSD50aから、読み出し対象のデータを取得し、サーバ20に応答する。
図16(B)は、RAIDレベルがRAID5であるRAIDグループG3に対するReadアクセスの処理例を示している。SSD50d,50e,50f,50gは、RAIDグループG3に属する。そして、SSD50dは、ファームウェアを更新中である。このとき、IO制御部120(プロセッサ101)が、SSD50dに対するReadアクセスの発生を検出したとする。
In this case, the IO control unit 120 obtains data to be read from the SSD 50 a that is a mirror of the SSD 50 and responds to the server 20.
FIG. 16B shows an example of read access processing for the RAID group G3 whose RAID level is RAID5. The SSDs 50d, 50e, 50f, and 50g belong to the RAID group G3. Then, the SSD 50d is updating the firmware. At this time, it is assumed that the IO control unit 120 (processor 101) detects the occurrence of Read access to the SSD 50d.

この場合、IO制御部120は、RAIDグループG3に属するSSD50d以外のSSD50e,50f,50g(残りのSSD)に格納されたデータ(パリティなど)を用いて読み出し対象のデータを構築し、サーバ20に応答する。   In this case, the IO control unit 120 constructs data to be read using data (parity, etc.) stored in the SSDs 50e, 50f, 50g (remaining SSDs) other than the SSD 50d belonging to the RAID group G3, and stores them in the server 20. respond.

このように、ファームウェア更新中のSSDに対してReadアクセスが発生した場合には、該当のSSDが属するRAIDグループにおける他のSSDを用いて、読み出し対象のデータを取得することで、ファームウェア更新に伴う読み出し遅延を低減できる。   As described above, when a Read access occurs to the SSD whose firmware is being updated, the data to be read is acquired by using another SSD in the RAID group to which the corresponding SSD belongs, thereby accompanying the firmware update. Read delay can be reduced.

なお、第1の実施の形態の情報処理は、処理部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。CM100は、プロセッサ101とRAM102(メモリ)とを含むコンピュータであると考えることもできる。プログラムは、コンピュータ読み取り可能な記録媒体11に記録できる。   The information processing according to the first embodiment can be realized by causing the processing unit 1b to execute a program. The information processing according to the second embodiment can be realized by causing the processor 101 to execute a program. The CM 100 can also be considered as a computer including a processor 101 and a RAM 102 (memory). The program can be recorded on a computer-readable recording medium 11.

例えば、プログラムを記録した記録媒体11を配布することで、プログラムを流通させることができる。プログラムの流通に利用可能な記録媒体11としては、前述のフラッシュメモリカードなどの半導体メモリ以外のものを用いることもできる。例えば、記録媒体11として、フレキシブルディスク(FD:Flexible Disk)、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用してもよい。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体11に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やNVRAM105などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。   For example, the program can be distributed by distributing the recording medium 11 on which the program is recorded. As the recording medium 11 that can be used for program distribution, it is possible to use a recording medium other than the above-described semiconductor memory such as a flash memory card. For example, as the recording medium 11, an optical disk such as a flexible disk (FD), a CD (Compact Disc) or a DVD (Digital Versatile Disc), or a magneto-optical disk (MO) may be used. Alternatively, the program may be stored in another computer and distributed via a network. For example, the computer stores (installs) a program recorded in the recording medium 11 or a program received from another computer in a storage device such as the RAM 102 or the NVRAM 105, and reads and executes the program from the storage device. Good.

1 ストレージ装置
1a 記憶部
1b 処理部
1c,1d,1e,1f 記憶装置
2 情報処理装置
A1 記憶装置群
DESCRIPTION OF SYMBOLS 1 Storage apparatus 1a Storage part 1b Processing part 1c, 1d, 1e, 1f Storage apparatus 2 Information processing apparatus A1 Storage apparatus group

Claims (10)

複数の記憶装置を有するストレージ装置において、
記憶装置に対するコマンドを記憶する記憶部と、
前記記憶装置を制御する制御プログラムの更新指示を受信すると、前記記憶部が記憶するコマンドの数に基づいて、前記記憶装置が不要な領域を開放するガベージコレクションを実行中であると判定した場合、前記制御プログラムの更新を前記記憶装置に指示する処理部と、
を有するストレージ装置。
In a storage device having a plurality of storage devices,
A storage unit for storing commands for the storage device;
When receiving an update instruction of a control program for controlling the storage device, based on the number of commands stored in the storage unit, if it is determined that the storage device is executing garbage collection to release an unnecessary area, A processing unit that instructs the storage device to update the control program;
A storage device.
前記複数の記憶装置は、各々が記憶装置を含む複数のグループに分けられており、
前記処理部は、前記複数のグループのうち、第1のグループに属するとともに前記制御プログラムを更新中である記憶装置に対する書き込みコマンドを受け付けた場合、前記複数のグループのうち第2のグループに属する他の記憶装置に対して前記書き込みコマンドに応じたデータの書き込みを実行する、
請求項1記載のストレージ装置。
The plurality of storage devices are divided into a plurality of groups each including a storage device,
When the processing unit accepts a write command to the storage device belonging to the first group and updating the control program among the plurality of groups, the processing unit may belong to the second group among the plurality of groups. Writing data to the storage device according to the write command,
The storage apparatus according to claim 1.
前記処理部は、前記書き込みコマンドが前記第1のグループに記憶された既存データの更新を示す場合、前記既存データの格納先の記憶領域の割り当てを前記第1のグループから前記第2のグループに変更した後、前記第2のグループに属する前記他の記憶装置に対して前記書き込みコマンドに応じたデータの書き込みを実行する、
請求項2記載のストレージ装置。
When the write command indicates update of existing data stored in the first group, the processing unit allocates the storage area of the storage destination of the existing data from the first group to the second group. After the change, write data according to the write command to the other storage device belonging to the second group,
The storage apparatus according to claim 2.
前記処理部は、前記複数の記憶装置のうち、前記制御プログラムを更新中である記憶装置に対する読み出しコマンドを受け付けた場合、前記第1のグループに属する記憶装置以外の記憶装置から前記読み出しコマンドに応じたデータの読み出しを実行する、
請求項2または3記載のストレージ装置。
When the processing unit receives a read command for a storage device that is updating the control program among the plurality of storage devices, the processing unit responds to the read command from a storage device other than the storage devices belonging to the first group. Read the data
The storage apparatus according to claim 2 or 3.
前記処理部は、前記記憶部が記憶するコマンドの数が閾値以上である場合に前記記憶装置が前記ガベージコレクションを実行中であると判定し、前記記憶部が記憶するコマンドの数が前記閾値未満である場合に前記記憶装置が前記ガベージコレクションを実行中でないと判定する、
請求項1乃至4の何れか一項に記載のストレージ装置。
The processing unit determines that the storage device is executing the garbage collection when the number of commands stored in the storage unit is greater than or equal to a threshold, and the number of commands stored in the storage unit is less than the threshold And determining that the storage device is not performing the garbage collection.
The storage device according to any one of claims 1 to 4.
前記処理部は、前記更新指示を受信すると、情報処理装置から受信するアクセス要求の頻度を監視し、前記アクセス要求の頻度が規定数以下の場合、前記記憶部が記憶するコマンドの数に拘わらず、前記制御プログラムの更新を前記記憶装置に指示し、前記アクセス要求の頻度が前記規定数よりも大きい場合、前記記憶部が記憶するコマンドの数に応じて、前記制御プログラムの更新を前記記憶装置に指示する、
請求項1乃至5の何れか一項に記載のストレージ装置。
When the processing unit receives the update instruction, the processing unit monitors the frequency of access requests received from the information processing apparatus. When the frequency of the access requests is equal to or less than a predetermined number, the processing unit stores the number of commands stored in the storage unit. Instructing the storage device to update the control program, and if the frequency of the access request is greater than the specified number, the storage device updates the control program according to the number of commands stored in the storage unit. Instruct
The storage device according to any one of claims 1 to 5.
前記複数のグループそれぞれは、同じRAID(Redundant Arrays of Independent Disks)レベルのRAIDグループである、
請求項2乃至4の何れか一項に記載のストレージ装置。
Each of the plurality of groups is a RAID group of the same RAID (Redundant Arrays of Independent Disks) level.
The storage device according to any one of claims 2 to 4.
前記記憶装置は、フラッシュメモリを有し、前記フラッシュメモリに対して前記ガベージコレクションを実行する、
請求項1乃至7の何れか一項に記載のストレージ装置。
The storage device includes a flash memory, and performs the garbage collection on the flash memory.
The storage apparatus according to any one of claims 1 to 7.
複数の記憶装置と記憶装置に対するコマンドを記憶する記憶部とを有するストレージ装置の制御プログラムにおいて、
前記ストレージ装置が有する処理部に、
前記記憶装置を制御する第1の制御プログラムの更新指示を受信すると、前記記憶部が記憶するコマンドの数に基づいて、前記記憶装置が不要な領域を開放するガベージコレクションを実行中であるかを判定させ、
前記ガベージコレクションを実行中であると判定した場合、前記第1の制御プログラムの更新を前記記憶装置に指示させるストレージ装置の制御プログラム。
In a storage device control program having a plurality of storage devices and a storage unit for storing commands for the storage devices,
In the processing unit of the storage device,
When receiving an update instruction of the first control program for controlling the storage device, based on the number of commands stored in the storage unit, it is determined whether the storage device is executing garbage collection for releasing an unnecessary area. Let me judge
A storage apparatus control program that instructs the storage apparatus to update the first control program when it is determined that the garbage collection is being executed.
複数の記憶装置と記憶装置に対するコマンドを記憶する記憶部とを有するストレージ装置の制御方法において、
前記ストレージ装置が有する処理部が、
前記記憶装置を制御する制御プログラムの更新指示を受信すると、前記記憶部が記憶するコマンドの数に基づいて、前記記憶装置が不要な領域を開放するガベージコレクションを実行中であるかを判定し、
前記ガベージコレクションを実行中であると判定した場合、前記制御プログラムの更新を前記記憶装置に指示するストレージ装置の制御方法。
In a control method of a storage device having a plurality of storage devices and a storage unit for storing commands for the storage devices,
The processing unit included in the storage device
When receiving an update instruction of a control program for controlling the storage device, based on the number of commands stored in the storage unit, it is determined whether the storage device is executing garbage collection to release an unnecessary area,
A storage apparatus control method for instructing the storage apparatus to update the control program when it is determined that the garbage collection is being executed.
JP2017085537A 2017-04-24 2017-04-24 Storage device, storage device control program, and storage device control method Active JP6867586B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017085537A JP6867586B2 (en) 2017-04-24 2017-04-24 Storage device, storage device control program, and storage device control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017085537A JP6867586B2 (en) 2017-04-24 2017-04-24 Storage device, storage device control program, and storage device control method

Publications (2)

Publication Number Publication Date
JP2018185584A true JP2018185584A (en) 2018-11-22
JP6867586B2 JP6867586B2 (en) 2021-04-28

Family

ID=64356029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017085537A Active JP6867586B2 (en) 2017-04-24 2017-04-24 Storage device, storage device control program, and storage device control method

Country Status (1)

Country Link
JP (1) JP6867586B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046791A (en) * 2006-08-14 2008-02-28 Fujitsu Ltd Storage device, firmware update method and control device
JP2010061288A (en) * 2008-09-02 2010-03-18 Hitachi Ltd Storage device and method of instructing to update firmware
JP2015111334A (en) * 2013-12-06 2015-06-18 富士通株式会社 Storage controller, storage control program and storage control method
WO2016013202A1 (en) * 2014-07-25 2016-01-28 日本電気株式会社 Storage device, computer system, access control method, and recording medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046791A (en) * 2006-08-14 2008-02-28 Fujitsu Ltd Storage device, firmware update method and control device
JP2010061288A (en) * 2008-09-02 2010-03-18 Hitachi Ltd Storage device and method of instructing to update firmware
JP2015111334A (en) * 2013-12-06 2015-06-18 富士通株式会社 Storage controller, storage control program and storage control method
WO2016013202A1 (en) * 2014-07-25 2016-01-28 日本電気株式会社 Storage device, computer system, access control method, and recording medium

Also Published As

Publication number Publication date
JP6867586B2 (en) 2021-04-28

Similar Documents

Publication Publication Date Title
US10019364B2 (en) Access-based eviction of blocks from solid state drive cache memory
JP6517684B2 (en) Memory system and control method
US9430161B2 (en) Storage control device and control method
JP5937697B2 (en) Storage system
JP4961319B2 (en) A storage system that dynamically allocates real areas to virtual areas in virtual volumes
US7975168B2 (en) Storage system executing parallel correction write
EP2557494B1 (en) Storage apparatus and data copy method between thin-provisioning virtual volumes
US20150286439A1 (en) Computer system and method of controlling computer system
US20140122818A1 (en) Storage apparatus and method for controlling storage apparatus
US20080120459A1 (en) Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US9658796B2 (en) Storage control device and storage system
JP2008015768A (en) Storage system and data management method using the same
JP2008276646A (en) Storage device and data management method for storage device
US20120011326A1 (en) Storage system and method for changing configuration of cache memory for storage system
US20180307426A1 (en) Storage apparatus and storage control method
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
JP2011209892A (en) Storage system, control method of the same, switch device and storage device
US20110022889A1 (en) Disk array apparatus and physical disk restoration method
US8938596B2 (en) Storage apparatus, control apparatus, and storage apparatus control method
JP2021114264A (en) Storage control device and storage control program
JP5712535B2 (en) Storage device, control unit, and storage device control method
US20180307427A1 (en) Storage control apparatus and storage control method
JP6867586B2 (en) Storage device, storage device control program, and storage device control method
JP6976237B2 (en) Storage system, data management method, and data management program
US11966590B2 (en) Persistent memory with cache coherent interconnect interface

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200225

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210322

R150 Certificate of patent or registration of utility model

Ref document number: 6867586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150