JP6867586B2 - Storage device, storage device control program, and storage device control method - Google Patents

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

Info

Publication number
JP6867586B2
JP6867586B2 JP2017085537A JP2017085537A JP6867586B2 JP 6867586 B2 JP6867586 B2 JP 6867586B2 JP 2017085537 A JP2017085537 A JP 2017085537A JP 2017085537 A JP2017085537 A JP 2017085537A JP 6867586 B2 JP6867586 B2 JP 6867586B2
Authority
JP
Japan
Prior art keywords
storage device
storage
data
ssd
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.)
Active
Application number
JP2017085537A
Other languages
Japanese (ja)
Other versions
JP2018185584A (en
Inventor
遼 窪田
遼 窪田
慎一 小林
慎一 小林
一郎 佐久間
一郎 佐久間
謙一 小倉
謙一 小倉
泰宏 村松
泰宏 村松
金弥 齊藤
金弥 齊藤
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

Description

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

現在、データの保存にストレージ装置が利用されている。ストレージ装置は、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 an HDD (Hard Disk Drive) and an SSD (Solid State Drive), and provides a large-capacity storage area. The storage device may provide a logical storage area by using the storage area of each of the plurality of storage devices by the RAID (Redundant Arrays of Independent Disks) technology. By using RAID, it is possible to speed up data access and improve the reliability of data storage. Further, in the storage device, a plurality of logical storage areas may be provided to improve the reliability for data access and to improve the efficiency of using the storage capacity by the thin provisioning technology.

ところで、ストレージ装置の運用では、ストレージ装置の制御に用いられる制御プログラムであるファームウェアの更新が行われることがある。例えば、複数のディスク装置と、ディスク装置へのアクセス制御を行うコントローラモジュールとを有するストレージシステムにおいてファームウェアの更新を行う方法が提案されている(特許文献1)。この提案では、ストレージシステムは、コントローラモジュールの入出力制御チップのファームウェアのダウンロード処理を、ディスク装置に対する入出力処理と並行して実行しても、入出力処理が滞ることを防止することができる。 By the way, in the operation of the storage device, the firmware, which is a control program used for controlling the storage device, may be updated. For example, a method of updating firmware in a storage system having a plurality of disk devices and a controller module that controls 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 download process of the firmware 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 flash memory, the number of valid pages of the block to which the page to be invalidated due to the data writing belongs is counted, and the block with the number of valid pages or less is targeted for compaction processing. There is a proposal for a controller to be used (Patent Document 2).

特開2013−134689号公報Japanese Unexamined Patent Publication No. 2013-134689 特開2011−159044号公報Japanese Unexamined Patent Publication No. 2011-159044

記憶装置には、内蔵の不揮発性メモリに制御プログラム(例えば、ファームウェア)を記憶し、制御プログラムにより自装置の動作を制御するものがある。例えば、SSDではウェアレベリングやエラー訂正などの管理機能が制御プログラムによって実現されることもある。一方、記憶装置の制御プログラムは、不具合の解消やアルゴリズムの改善などのために、制御プログラムの配信元によって更新されることがある。制御プログラムが更新されると、更新後の制御プログラムを記憶装置に適用する(記憶装置上の制御プログラムを更新する)ことになる。 Some storage devices store a control program (for example, firmware) in a built-in non-volatile memory, and control the operation of the own 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 of 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. Therefore, if the control program of the storage device is updated at an arbitrary timing, if it collides with the update period of the control program, the data access to the corresponding storage device may be delayed, which may affect the performance. There is a problem.

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

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

1つの側面では、制御プログラムの更新に伴う性能への影響を抑えることができる。 On one side, the effect on performance due to the update of the control program can be suppressed.

第1の実施の形態のストレージ装置を示す図である。It is a figure which shows the storage device of 1st Embodiment. 第2の実施の形態の情報処理システムの例を示す図である。It is a figure which shows the example of the information processing system of the 2nd Embodiment. ストレージ装置のハードウェア例を示す図である。It is a figure which shows the hardware example of the storage device. 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 functional example of CM. チャンクの例を示す図である。It is a figure which shows the example of a chunk. チャンク割り当て管理テーブルの例を示す図である。It is a figure which shows the example of the chunk allocation management table. サーバのIO数の監視例を示す図である。It is a figure which shows the example of monitoring the number of IOs of a server. SSDに対するアクセス待ちコマンドの監視例を示す図である。It is a figure which shows the monitoring example of the access waiting command for SSD. ファームウェア更新例を示すフローチャートである。It is a flowchart which shows the firmware update example. ファームウェア更新中の書き込み処理例を示すフローチャートである。It is a flowchart which shows the writing process example during firmware update. ファームウェア更新中の書き込みの具体例を示す図である。It is a figure which shows the specific example of writing during firmware update. ファームウェア更新中の読み出し処理例を示すフローチャートである。It is a flowchart which shows the reading process example during firmware update. ファームウェア更新中の読み出しの具体例を示す図である。It is a figure which shows the specific example of 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 is a diagram showing a storage device according to the first embodiment. The storage device 1 has 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 the 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 by using the storage areas of the storage devices 1c, 1d, 1e, and 1f, respectively, and is controlled by the firmware which is a control program. For example, the storage device 1 constructs a first RAID group (RAID1) by the storage devices 1c and 1d, and a second RAID group (RAID1) by the storage devices 1e and 1f. Then, for example, the storage device 1 is a logic that can be accessed by the information processing device 2 by combining the first storage area belonging to the first RAID group and the second storage area belonging to the second RAID group. Storage area. Alternatively, the storage device 1 creates a plurality of RAID groups (for example, RAID 5) by three or more storage devices, combines the storage areas of each RAID group, and provides a logical storage area accessible by the information processing device 2. You can also do it.

記憶部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. A "processor" may also include a set of multiple processors (multiprocessors).

記憶装置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 non-volatile 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 and executes the firmware stored in the non-volatile memory into the RAM of the storage device 1c, and controls the operation of the storage device 1c. Similar to the storage device 1c, the storage devices 1d, 1e, and 1f also incorporate a storage device for storing business data, a non-volatile 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 the 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 the data stored in the storage device group A1 from the information processing device 2. The processing unit 1b determines the storage device of the access destination in response to the received access request (for example, a data write request), generates an access command (command corresponding to the access request) to 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-waiting (or execution-waiting) command, and is called an access-waiting command (or execution-waiting command).

ここで、記憶部1aは、記憶装置1c,1d,1e,1fごとにアクセスコマンドを保持するキューを備える。例えば、記憶装置1cのキューは、キュー番号“1”のキューである。ここで、キュー番号“1”を、“#1”のように表記することがある。記憶装置1dのキューは、“#2”のキューである。記憶装置1eのキューは、“#3”のキューである。記憶装置1fのキューは、“#4”のキューである。 Here, the storage unit 1a includes a queue for holding an access command for each of the storage devices 1c, 1d, 1e, and 1f. For example, the queue of the storage device 1c is the queue of the queue number “1”. Here, the queue number "1" may be expressed as "# 1". The queue of the storage device 1d is the queue of "# 2". The queue of the storage device 1e is the queue of "# 3". The queue of the storage device 1f is the 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 the write command for the storage device 1c in the "# 1" queue. The processing unit 1b stores the write command for the storage device 1d in the "# 2" queue. The processing unit 1b stores the write command for the storage device 1e in the "# 3" queue. The processing unit 1b stores the write command for the storage device 1f in the "# 4" queue. In this way, the processing unit 1b uses the storage unit 1a as a cache, temporarily stores the data in the storage unit 1a, makes a response to the information processing device 2, and then performs the storage devices 1c, 1d, asynchronously with the access request. Writing to 1e and 1f (called writeback). As a result, the processing unit 1b can respond to the information processing device 2 when the data is stored in the storage unit 1a, so that the response to the 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 the firmware update instruction of the storage devices 1c, 1d, 1e, and 1f, the processing unit 1b monitors the number of access waiting commands for each of the storage devices 1c, 1d, 1e, and 1f stored in the storage device 1a. For example, the processing unit 1b may receive the firmware update instruction from the information processing device 2, or may accept the operation input of the firmware update instruction by 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 device 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 or not each of the storage devices 1c, 1d, 1e, and 1f is executing garbage collection based on the number of access waiting commands.
Here, garbage collection is an unnecessary area opening 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 duplicated in a second unit area, and the first unit area is duplicated. Erase all the data in bulk. It should be noted that "erasing data" can also be said to be "releasing the storage area in which the data is stored".

ガベージコレクションは、記憶装置1c,1d,1e,1fそれぞれにより自律的に実行される。ガベージコレクションは、各記憶装置が独自に実行する処理であり、例えば、数時間から数日に一回程度の頻度で発生する。ただし、前述のように、ガベージコレクションは、記憶装置1c,1d,1e,1fにより自律的に実行されるため、処理部1bにより、各記憶装置でガベージコレクションが発生するタイミングを予測することは困難である。 Garbage collection is autonomously executed by the storage devices 1c, 1d, 1e, and 1f, respectively. Garbage collection is a process that each storage device executes independently, and occurs, for example, once every few 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. Is.

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

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

例えば、図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 access waiting commands (access waiting commands) for each of the storage devices 1c, 1d, 1e, and 1f at a certain time after the processing unit 1b receives the firmware update instruction. The number of commands waiting for access to the storage device 1c exceeds the threshold value. The number of access waiting commands for the storage devices 1d, 1e, and 1f does not exceed the threshold value. 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 certain 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 the storage device 1c with the firmware program to be applied. On the other hand, the processing unit 1b does not instruct the storage devices 1d, 1e, and 1f to update the firmware at this stage.

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

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

記憶装置におけるファームウェアの更新中は、当該記憶装置に対するデータアクセスを行えなくなる。このため、任意のタイミングで記憶装置のファームウェアの更新を行うと、該当の記憶装置に対するデータアクセスに遅延が発生し、性能に影響を及ぼす可能性があるという問題がある。 During the firmware update of 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 storage device, which may affect the performance.

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

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

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

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

第3に、処理部1bは、ファームウェア更新中の記憶装置が属するRAIDグループに格納された既存データの読み出し要求に対し、ファームウェア更新中の記憶装置以外の他の記憶装置により当該既存データを構築し、応答する。例えば、処理部1bは、RAID1であれば、ミラーとなる他の記憶装置から既存データを取得し、応答する。あるいは、処理部1bは、RAID5であれば、パリティなどを記憶する複数の他の記憶装置から既存データを取得し、応答する。 Thirdly, the processing unit 1b constructs the existing data by a storage device other than the storage device during the firmware update in response to the read request of the existing data stored in the RAID group to which the storage device under firmware update belongs. ,respond. For example, if it is RAID1, the processing unit 1b acquires existing data from another storage device that serves as a mirror and responds. Alternatively, if it is RAID 5, the processing unit 1b acquires existing data from a plurality of other storage devices that store parity and the like, 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 due to 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 showing an example of the information processing system of the second embodiment. The information processing system of the second embodiment includes the storage device 10 and the server 20. The storage device 10 and the server 20 are connected via a network such as a SAN (Storage Area Network). The storage device 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 device 10 provides the server 20 with a large-capacity storage area by means of a plurality of SSDs. The storage device 10 has two or more SSDs as one group (RAID group). The storage device 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 multiple RAID groups are the same.

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

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

図3は、ストレージ装置のハードウェア例を示す図である。ストレージ装置10は、コントローラモジュール(CM:Controller Module)100およびドライブ収納部200を有する。 FIG. 3 is a diagram showing a hardware example of the storage device. The storage device 10 has a controller module (CM: Controller Module) 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 CM100 may also be referred to as a RAID controller or simply a controller. The storage device 10 may include a plurality of CMs. By making the data access function redundant by using 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 SSDs 50, 50a, 50b, .... The drive storage unit 200 is sometimes called a drive enclosure. SSDs 50, 50a, 50b, ... Are storage devices including a flash memory.

ここで、サーバ20により発行された新規データの書き込みのアクセス要求や、既存データの更新のアクセス要求は、CM100のキャッシュメモリを用いたライトバック方式で処理される。具体的には次の通りである。 Here, the access request for writing new data and the access request for updating existing data issued by the server 20 are processed by the 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 the data to be written. (2) The CM 100 writes data to be written into the cache memory of the CM 100. (3) The CM 100 transmits a notification to the server 20 that the writing is completed. (4) The CM 100 writes the data to be written stored in the cache memory to the SSDs 50, 50a, 50b, ..., Asynchronously with the access request by 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 the series of procedures. As a result, 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 writing speed from the CM 100 to the SSDs 50, 50a, 50b, ... Is reduced.

図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 showing 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 CM100 bus.

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

RAM102は、CM100の主記憶装置である。RAM102は、プロセッサ101に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。 The RAM 102 is the main storage device of the CM 100. The RAM 102 temporarily stores at least a part of the firmware program to be executed by the processor 101. Further, 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 an SSD by a 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 programs and data recorded on the recording medium 11. As the recording medium 11, for example, a non-volatile semiconductor memory such as a flash memory card can be used. The medium reader 104 stores, for example, a program or data read from the recording medium 11 in the RAM 101 or 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 the firmware used for controlling the operation of the CM 100. The processor 101 exerts various functions by loading the 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 connecting to the drive storage unit 200. As the DI 106, for example, an interface such as SAS (Serial Attached SCSI (SCSI is an abbreviation for Small Computer System Interface)) or Fiber Channel (FC) can be used.

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

NA108は、LAN30aを介してサーバ20や、LAN30aを介してアクセス可能な他のサーバコンピュータと通信する通信インタフェースである。NA108として、例えば、イーサネット(登録商標)のインタフェースを用いることができる。 The NA 108 is a communication interface that communicates with the server 20 via the LAN 30a and another server computer accessible via the LAN 30a. As NA108, 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 showing an example of SSD hardware. The SSD 50 includes a controller 51, an NVRAM 52, a connection IF (InterFace) 53, and a flash memory 54. Each hardware is connected to the bus of SSD50. SSDs 50a, 50b, ... Are also realized by the same hardware as SSD50.

コントローラ51は、フラッシュメモリ54に対するデータの書き込みや読み出しなどのアクセス制御を行う。コントローラ51は、プロセッサおよびRAM(図5では図示を省略している)を内蔵し、当該RAMにロードされたファームウェアf1を、プロセッサにより実行することで、所定の機能を実現する。ファームウェアf1により実現される機能としては、例えば、エラー訂正、ウェアレベリング、エラーブロックの管理およびガベージコレクションなどが挙げられる。 The controller 51 performs access control such as writing and reading data to the flash memory 54. The controller 51 incorporates a processor and a RAM (not shown in FIG. 5), and realizes a predetermined function by executing the firmware f1 loaded in the RAM by the processor. Functions realized by firmware f1 include, for example, 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 the instruction of the CM100 to update the firmware f1. Specifically, the controller 51 acquires the revised firmware from the CM100 and writes it to the NVRAM 52. The controller 51 may write the revised firmware to the NVRAM 52 while leaving the firmware f1 of the previous generation 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 non-volatile memory that stores the 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 IF53, for example, a SAS interface can be used.
The flash memory 54 stores various data used for the user's business processing. The flash memory 54 electrically writes data to the 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. The block contains multiple pages. A page is a unit of storage area in which data is read or written. On the other hand, in the flash memory 54, data is erased in block units. Therefore, in order to make the page containing the invalid data in the block reusable, the invalid data must be deleted, but in this case, only the invalid data cannot be deleted and the invalid data in the block cannot be deleted. The data on all pages of will be erased. The controller 51 erases data in block units by a process called garbage collection. In the following description, the 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 showing an example of garbage collection. 6 (A), 6 (B), and 6 (C) illustrate blocks 54a, 54b, 54c, and 54d in the flash memory 54. Block 54a includes pages P11, P12, P13, P14. Block 54b includes pages P21, P22, P23, P24. Block 54c includes pages P31, P32, P33, P34. Block 54d includes pages P41, P42, P43, 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). Further, page P22 is a page that stores invalid data (invalid data). Further, 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 duplicates the valid data stored in the pages P21, P23, and P24 belonging to the block 54b to an empty page in order to make the page P22 reusable. Specifically, the controller 51 duplicates the valid data stored on the page P21 and stores the duplicated valid data on the page P32. The controller 51 duplicates the valid data stored on the page P23, and stores the duplicated valid data on the page P43. The controller 51 duplicates the valid data stored on the page P24, and stores the duplicated valid data on the page P34.

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

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

図6(C)は、コントローラ51によるブロック54bに格納されているデータの消去後のブロック54a,54b,54c,54dを示している。こうして、コントローラ51は、ページP22の無効データを消去する場合でも、ガベージコレクションにより、ブロック54bの単位でデータを消去し、ブロック54b全体を再利用可能にする。 FIG. 6C shows blocks 54a, 54b, 54c, 54d after the data stored in the block 54b by the controller 51 is erased. In this way, even when the invalid data on page P22 is erased, the controller 51 erases the data in units of blocks 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 at a frequency of, for example, once for several hours to several days. During the execution of garbage collection, the access performance of the SSD concerned deteriorates. The time required for garbage collection is about several minutes (for example, 5 minutes). Since the garbage collection is autonomously executed by the controller 51 in the SSD 50, it is difficult to predict the timing at which the garbage collection will occur on the CM100 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 showing a functional example of the CM. The CM 100 has 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, for example, by executing the 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 hard-wired logic such as FPGA or ASIC.

ファームウェア更新制御部110は、キャッシュメモリ103に記憶される情報に基づいて、SSD50,50a,50b,・・・によるファームウェアの更新のタイミングを制御する。具体的には、ファームウェア更新制御部110は、SSD50,50a,50b,・・・のファームウェアの更新指示の入力を受け付ける。当該更新指示は、管理者によりCM100に入力されてもよいし、サーバ20または他のサーバコンピュータによりLAN30aを介して、CM100に入力されてもよい。更新指示が管理者によりCM100に入力される場合、記録媒体11を用いて、更新後のファームウェアのプログラムが、CM100に提供される。あるいは、更新指示がサーバ20または他のサーバコンピュータによりCM100に入力される場合、サーバ20または他のサーバコンピュータによりLAN30aを介して、更新後のファームウェアのプログラムが、CM100に提供される。 The firmware update control unit 110 controls the timing of updating the firmware by the SSDs 50, 50a, 50b, ... Based on the information stored in the cache memory 103. Specifically, the firmware update control unit 110 receives input of firmware update instructions for 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 the 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 the update instruction is input to the CM100 by the server 20 or another server computer, the updated firmware program is provided to the CM100 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 storage device 10 by the server 20 and the access waiting commands for the SSDs 50, 50a, 50b, and so on. 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 decides to update the firmware on a certain SSD, the firmware update control unit 110 provides the updated firmware to the SSD and instructs the SSD to update the firmware. 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 to update 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を特定する。 The IO control unit 120 controls the IO for the SSD during firmware update based on the information stored in the cache memory 103. 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 whose firmware is being updated by referring to the identification information of the SSD whose firmware is being updated 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 showing 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, e (the SSD 50 may include more chunks). Here, the chunk represented by the identification information “a” is expressed as “chunk a”.

図9は、チャンク割り当て管理テーブルの例を示す図である。チャンク割り当て管理テーブル111は、キャッシュメモリ103に記憶される。チャンク割り当て管理テーブル111は、Writeデータ(書き込み対象のデータ)と、チャンクとの対応関係を管理するためのテーブルである。チャンク割り当て管理テーブル111は、Writeデータおよびチャンクの項目を含む。 FIG. 9 is a diagram showing an example of a 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 the Write data (data to be written) and the 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 identification information of the Write data 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 the Write data is “1” and the chunk is “a, b” is registered. This indicates that the write destinations of the Write data corresponding to the identification information “1” are chunks a and b. Similarly, the chunk allocation management table 111 is associated with the identification information of the chunk of the writing destination for other Write data.

ここで、チャンク割り当て管理テーブル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). When the power of the storage device 10 is turned off (immediately before the power is turned off), the chunk allocation management table of each SSD is stored in a predetermined storage area (nonvolatile) of the SSDs 50, 50a, 50b, ... By the processor 101. It is stored in the sexual storage area). Further, when the storage device 10 is turned on (for example, during the process for turning on the power), the chunk allocation management table of each SSD is used by the processor 101 to use the SSDs 50, 50a, 50b, ... Is read from the predetermined storage area of the above 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 showing 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 by the server 20 to the storage device 10. The number of IOs by the server 20 is the number of write and 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 access requests by the server 20 is more than the specified number or less than the specified number by obtaining the number of IOs received from the server 20 per unit time. .. When the number of access requests by the server 20 is larger than the specified number, it is estimated that the business processing of the user is actively performed on the server 20. Further, when the number of access requests by the server 20 is less than or equal to the specified number, it is presumed that the execution of the user's business process is inactive on the server 20. 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-mentioned 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 showing a monitoring example of an access waiting 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 the access commands for the SSDs 50, 50a, 50b, ... 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. Therefore, the access command stored in the cache memory 103 is referred to as an access waiting command.

キャッシュメモリ103には、SSD50,50a,50b,・・・それぞれのキューが設けられ、各キューにアクセス待ちコマンドが格納される。例えば、SSD50(図中“SSDx”と表記)に対応するキューに、SSD50に対する複数のアクセス待ちコマンド(アクセス待ちコマンド群)が格納される。また、SSD50a(図中“SSDy”と表記)に対応するキューに、SSD50aに対する複数のアクセス待ちコマンド(アクセス待ちコマンド群)が格納される。 The cache memory 103 is provided with queues for SSDs 50, 50a, 50b, ..., And an access waiting command is stored in each queue. For example, a plurality of access waiting commands (access waiting command group) for the SSD 50 are stored in the queue corresponding to the SSD 50 (denoted as "SSDx" in the figure). In addition, a plurality of access waiting commands (access waiting command group) for the SSD 50a are stored in the queue corresponding to the SSD 50a (denoted 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 access waiting commands for the SSD 50 by obtaining the number of access waiting commands stored in the queue corresponding to the SSD 50. Similarly, the firmware update control unit 110 obtains the number of access waiting commands for the SSD 50a by obtaining the number of access waiting commands stored in the queue corresponding to the SSD 50a. The firmware update control unit 110 can obtain the number of access waiting commands for other SSDs in the same manner.

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

(S11)ファームウェア更新制御部110は、SSD50,50a,50b,・・・のファームウェア更新の指示(更新指示)を受け付ける。前述のように、ファームウェア更新制御部110は、記録媒体11やLAN30aを介して、更新後のファームウェアのプログラムを取得し、RAM102またはキャッシュメモリ103に格納する。 (S11) The firmware update control unit 110 receives instructions (update instructions) for updating the firmware of 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 30a 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 equal to or less than 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 or not the frequency of the number of IOs is equal to or less than the specified number (specified frequency). Judgment is made for each RAID group. When the number of IOs (frequency of the number of IOs) is equal to or less than the specified number for a certain RAID group, the firmware update control unit 110 proceeds to step S13. If the number of IOs (frequency of the number of IOs) is larger than the specified number for any of the RAID groups, the firmware update control unit 110 proceeds to step S14. Here, the specified number used for the determination in step S12 is predetermined according to the operation, and is preset 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 relevant 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 each SSD to update the firmware in order. 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 the operation with the updated firmware, and completes the update. It responds to the firmware update control unit 110. Then, the firmware update control unit 110 proceeds to the process in step S16.

(S14)ファームウェア更新制御部110は、キャッシュメモリ103に格納されたSSD毎のアクセス待ちコマンドの数に基づいて、何れかのSSDにおいてガベージコレクション(GC)を検出したか否かを判定する。何れかのSSDにおいてガベージコレクションを検出した場合、ファームウェア更新制御部110は、ステップS15に処理を進める。ガベージコレクションを検出していない場合、ファームウェア更新制御部110は、ステップS12に処理を進める。 (S14) The firmware update control unit 110 determines whether or not garbage collection (GC) has been detected in any SSD based on the number of access waiting commands for each SSD stored in the cache memory 103. When garbage collection is detected in any of the SSDs, the firmware update control unit 110 proceeds to step S15. If garbage collection is not detected, the firmware update control unit 110 proceeds 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 when the number of access waiting commands exceeds a predetermined threshold value in a certain SSD, the garbage in the corresponding SSD Detect collections. On the other hand, the firmware update control unit 110 does not detect garbage collection for each SSD when the number of access waiting commands is less than a predetermined threshold value. The threshold value used for the determination in step S14 is predetermined according to the operation and is preset 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 SSD to update the firmware 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 controller of the SSD restarts the suspended garbage collection after starting the operation with the updated firmware. Further, the controller of the corresponding SSD responds to the firmware update control unit 110 that the firmware update is completed.

(S16)ファームウェア更新制御部110は、全SSDのファームウェアの更新を完了したか否かを判定する。全SSDのファームウェアの更新を完了した場合、ファームウェア更新制御部110は、ステップS17に処理を進める。全SSDのファームウェアの更新を完了していない場合、ファームウェア更新制御部110は、ステップS12に処理を進める。 (S16) The firmware update control unit 110 determines whether or not the firmware update of all SSDs has been completed. When the firmware update of all SSDs is completed, the firmware update control unit 110 proceeds to step S17. If the firmware update of all SSDs has not been completed, the firmware update control unit 110 proceeds 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 of each SSD. Specifically, the firmware update control unit 110 may send a message indicating the completion of the firmware update to the server 20 or another server computer that has given the update instruction. Alternatively, the firmware update control unit 110 may display a message indicating the completion of the firmware update on the display device connected to the storage device 10. Then, the firmware update control unit 110 ends the firmware update process (CM100 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つとする。 In this way, when the firmware update control unit 110 receives the firmware update instruction of each SSD, the firmware update control unit 110 monitors the frequency of access requests (frequency of the number of IOs) received from the server 20. Then, when the frequency of the access request is less than or equal to the specified number, the firmware update control unit 110 instructs each SSD to update the firmware regardless of the number of access waiting commands. In this case, for example, the firmware update control unit 110 instructs each SSD to update the firmware one by one. For example, in one RAID group, there is only one SSD that updates the firmware at one time. Further, when the frequency of access requests is higher than the specified number, the firmware update control unit 110 instructs the SSD to update the firmware according to the number of access waiting commands. In this case as well, one SSD is used to update the firmware 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, the firmware update control unit 110 collects garbage in the SSD when the increment of the number of access waiting commands in a unit time exceeds a predetermined threshold value (the number of access waiting commands suddenly increases in a relatively short period of time). May be detected. At this time, the firmware update control unit 110 does not detect garbage collection for each SSD when the increment of the number of access waiting commands in a unit time is less than a predetermined threshold value.

こうして、ファームウェア更新制御部110は、SSD50,50a,50b,・・・それぞれに対して、ファームウェアの更新を順次行う。これにより、ファームウェアの更新に伴う性能への影響を抑えることができる。具体的には次の通りである。 In this way, the firmware update control unit 110 sequentially updates the firmware for each of the SSDs 50, 50a, 50b, .... As a result, 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 the firmware update on the SSD, data access to the SSD cannot be performed. Therefore, if the SSD firmware is updated at an arbitrary timing, there is a problem that data access to the SSD may be delayed, which may affect the performance.

そこで、ファームウェア更新制御部110は、SSDによりガベージコレクションが実行中である期間を利用して、該当のSSDによるファームウェアの更新も実行させる。ガベージコレクション中は、そもそもSSDのアクセス性能が低下する期間であるため、ファームウェアの更新も当該期間において実行してしまう方が、業務運用への影響を低減できる。なぜなら、ガベージコレクション中でない通常運用中にファームウェア更新を行うと、ガベージコレクションとは別に、SSDへのアクセスを行えない時間帯が発生することになるからである。ガベージコレクションの期間中にファームウェア更新も併せて行うことで、SSDへのアクセスを行えない時間帯が余計に発生することを抑えられ、性能への影響を抑えられる。 Therefore, the firmware update control unit 110 also executes the firmware update by the SSD by using the period during which the garbage collection is being executed by the SSD. During garbage collection, the access performance of the SSD deteriorates in the first place, so it is better to update the firmware during that period to reduce the impact on business operations. This is because if the firmware is updated during normal operation, which is not during garbage collection, there will be a time zone during which the SSD cannot be accessed, apart from garbage collection. By updating the firmware at the same time during the garbage collection period, it is possible to suppress the occurrence of an extra time zone during which the SSD cannot be accessed, and the influence on the 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 in progress even when the number of IOs from the server 20 is relatively large as described above. As a result, it is not necessary to wait for the time zone when the number of IOs by the server 20 becomes relatively small, and the updated firmware can be applied at an early timing. Further, the burden of operation management of the administrator 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, the garbage collection is autonomously executed by each SSD, and it is difficult for the CM100 side to predict the timing at which the garbage collection by each SSD is executed. Therefore, the firmware update control unit 110 can appropriately determine whether or not garbage collection is being executed by each SSD by monitoring the number of access waiting commands in the cache memory 103. This is because while garbage collection is being performed by the SSD, the access performance to the SSD is likely to deteriorate, and the number of access-waiting commands held in the queue corresponding to the SSD is likely to be excessive. is there.

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

図13は、ファームウェア更新中の書き込み処理例を示すフローチャートである。以下、図13に示す手順をステップ番号に沿って説明する。
(S21)IO制御部120は、ファームウェア更新中のSSDに対するWriteアクセス(データの書き込みコマンド)の発生を検出する。例えば、IO制御部120は、ファームウェア更新中のSSDについて、キャッシュメモリ103におけるキューからデータの書き込みに相当するアクセス待ちコマンドを取得することで、当該Writeアクセスの発生を検出する。
FIG. 13 is a flowchart showing an example of writing processing during firmware update. Hereinafter, the procedure shown in FIG. 13 will be described along with the step numbers.
(S21) The IO control unit 120 detects the occurrence of Write access (data write command) to the SSD during firmware update. For example, the IO control unit 120 detects the occurrence of the Write access by acquiring an access waiting command corresponding to writing data 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 or not 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 relevant SSD belongs. When the data to be written is new data, the IO control unit 120 proceeds to step S23. If the data to be written is not new data, the IO control unit 120 proceeds to step S24.

(S23)IO制御部120は、今回の書き込み対象である新規データについて、対象SSD(すなわち、ファームウェア更新中のSSD)を含まない別のRAIDグループへチャンクを割り当てる。IO制御部120は、チャンクの割り当て変更に応じて、キャッシュメモリ103に記憶されたチャンク割り当て管理テーブル111を更新する。そして、IO制御部120は、ステップS25に処理を進める。 (S23) The IO control unit 120 allocates chunks 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 response to the change in chunk allocation. Then, the IO control unit 120 proceeds to the process in 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). Then, the IO control unit 120 allocates chunks to the other RAID group for the data to be written this time (data after update) (assigns chunks to which the existing data is transferred). The IO control unit 120 updates the chunk allocation management table 111 stored in the cache memory 103 in response to the change in chunk allocation. 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, a mirror for RAID 1 and parity for RAID 5). To get 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 showing a specific example of writing during firmware update. For example, in the storage device 10, RAID groups G1 and G2 exist. SSDs 50 and 50a belong to RAID group G1. SSDs 50b and 50c belong to RAID group G2. The RAID level in each of the RAID groups G1 and G2 is, for example, RAID1. Then, 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 Write access to the SSD 50b. For example, it is assumed that the detected Write access requests the writing of update data to the 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 rearranges the data in (1) 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 (changes the chunk allocation for the 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 Write access occurs to the SSD during firmware update, the write delay associated with the firmware update is reduced by transferring the access destination to a RAID group different from the RAID group to which the SSD belongs. it can.

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

(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 during firmware update. For example, the IO control unit 120 detects the occurrence of the Read access by acquiring an access waiting command corresponding to reading data 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 SSD in the RAID group to which the SSD (SSD whose firmware is being updated) belongs. For example, when the RAID level of the RAID group is RAID1, the SSD other than the SSD is the SSD of the mirror with respect to the SSD. Alternatively, when the RAID level of the RAID group is RAID 5, there will be a plurality of SSDs (SSDs that store fragments or parity of data to be read) other than the corresponding SSD.

(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 RAID 1, the IO control unit 120 can acquire the data to be read by accessing the SSD of the mirror. Alternatively, with RAID 5, for example, the IO control unit 120 can restore the data stored in the SSD by parity acquired from another SSD or the like. Further, the IO control unit 120 can acquire the data to be read by using the data acquired from another SSD and the restored data. Alternatively, when the parity is stored in the SSD during firmware update, the IO control unit 120 can acquire the data to be read by 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, which is constructed in step S33.
FIG. 16 is a diagram showing a specific example of reading during firmware update. FIG. 16A shows a processing example of Read access to the RAID group G1 whose RAID level is RAID1. SSDs 50 and 50a belong to 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 acquires the data to be read from the SSD 50a, which is a mirror of the SSD 50, and responds to the server 20.
FIG. 16B shows a processing example of Read access to the RAID group G3 whose RAID level is RAID5. SSDs 50d, 50e, 50f, 50g belong to RAID group G3. And SSD50d 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 the data to be read by using the data (parity or the like) stored in the SSDs 50e, 50f, 50g (remaining SSDs) other than the SSD50d belonging to the RAID group G3, and causes the server 20 to read the data. respond.

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

なお、第1の実施の形態の情報処理は、処理部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。CM100は、プロセッサ101とRAM102(メモリ)とを含むコンピュータであると考えることもできる。プログラムは、コンピュータ読み取り可能な記録媒体11に記録できる。 The information processing of the first embodiment can be realized by causing the processing unit 1b to execute the program. Further, the information processing of the second embodiment can be realized by causing the processor 101 to execute the program. The CM 100 can also be thought of as a computer that includes 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 the distribution of the program, a medium other than the semiconductor memory such as the above-mentioned flash memory card can also be used. For example, as the recording medium 11, an optical disk (FD: Flexible Disk), an optical disk such as a CD (Compact Disc) or a DVD (Digital Versatile Disc), or a magneto-optical disk (MO: Magneto-Optical disk) may be used. Alternatively, the program may be stored in another computer and distributed via the network. For example, the computer may store (install) a program recorded on the recording medium 11 or a program received from another computer in a storage device such as RAM 102 or NVRAM 105, read the program from the storage device, and execute the program. Good.

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

Claims (10)

複数の記憶装置を有するストレージ装置において、
記憶装置に対するコマンドを記憶する記憶部と、
前記記憶装置を制御する制御プログラムの更新指示を受信すると、前記記憶部が記憶するコマンドの数に基づいて、前記記憶装置が不要な領域を開放するガベージコレクションを実行中であると判定した場合、前記制御プログラムの更新を前記記憶装置に指示する処理部と、
を有するストレージ装置。
In a storage device having multiple storage devices,
A storage unit that stores commands for the storage device,
When the update instruction of the control program for controlling the storage device is received, it is determined that the storage device is executing garbage collection for releasing an unnecessary area based on the number of commands stored in the storage unit. A processing unit that instructs the storage device to update the control program, and
Storage device with.
前記複数の記憶装置は、各々が記憶装置を含む複数のグループに分けられており、
前記処理部は、前記複数のグループのうち、第1のグループに属するとともに前記制御プログラムを更新中である記憶装置に対する書き込みコマンドを受け付けた場合、前記複数のグループのうち第2のグループに属する他の記憶装置に対して前記書き込みコマンドに応じたデータの書き込みを実行する、
請求項1記載のストレージ装置。
Each of the plurality of storage devices is divided into a plurality of groups including the storage device.
When the processing unit receives a write command to a storage device that belongs to the first group among the plurality of groups and is updating the control program, the processing unit belongs to the second group among the plurality of groups. Writes data to the storage device according to the write command.
The storage device according to claim 1.
前記処理部は、前記書き込みコマンドが前記第1のグループに記憶された既存データの更新を示す場合、前記既存データの格納先の記憶領域の割り当てを前記第1のグループから前記第2のグループに変更した後、前記第2のグループに属する前記他の記憶装置に対して前記書き込みコマンドに応じたデータの書き込みを実行する、
請求項2記載のストレージ装置。
When the write command indicates an update of existing data stored in the first group, the processing unit allocates a storage area for storing the existing data from the first group to the second group. After the change, data is written in response to the write command to the other storage device belonging to the second group.
The storage device according to claim 2.
前記処理部は、前記複数の記憶装置のうち、前記制御プログラムを更新中である記憶装置に対する読み出しコマンドを受け付けた場合、前記第1のグループに属する記憶装置以外の記憶装置から前記読み出しコマンドに応じたデータの読み出しを実行する、
請求項2または3記載のストレージ装置。
When the processing unit receives a read command for a storage device whose control program is being updated among the plurality of storage devices, the processing unit responds to the read command from a storage device other than the storage device belonging to the first group. Read the data
The storage device according to claim 2 or 3.
前記処理部は、前記記憶部が記憶するコマンドの数が閾値以上である場合に前記記憶装置が前記ガベージコレクションを実行中であると判定し、前記記憶部が記憶するコマンドの数が前記閾値未満である場合に前記記憶装置が前記ガベージコレクションを実行中でないと判定する、
請求項1乃至4の何れか一項に記載のストレージ装置。
When the number of commands stored in the storage unit is equal to or greater than the threshold value, the processing unit determines that the storage device is executing the garbage collection, and the number of commands stored in the storage unit is less than the threshold value. If, it is determined that the storage device is not executing the garbage collection.
The storage device according to any one of claims 1 to 4.
前記処理部は、前記更新指示を受信すると、情報処理装置から受信するアクセス要求の頻度を監視し、前記アクセス要求の頻度が規定数以下の場合、前記記憶部が記憶するコマンドの数に拘わらず、前記制御プログラムの更新を前記記憶装置に指示し、前記アクセス要求の頻度が前記規定数よりも大きい場合、前記記憶部が記憶するコマンドの数に応じて、前記制御プログラムの更新を前記記憶装置に指示する、
請求項1乃至5の何れか一項に記載のストレージ装置。
Upon receiving the update instruction, the processing unit monitors the frequency of access requests received from the information processing apparatus, and when the frequency of the access requests is less than or equal to a specified number, regardless of the number of commands stored in the storage unit. When the storage device is instructed to update the control program and the frequency of the access request is higher than the specified number, the storage device updates the control program according to the number of commands stored in the storage unit. To 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 having 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 has a flash memory and performs the garbage collection on the flash memory.
The storage device according to any one of claims 1 to 7.
複数の記憶装置と記憶装置に対するコマンドを記憶する記憶部とを有するストレージ装置の制御プログラムにおいて、
前記ストレージ装置が有する処理部に、
前記記憶装置を制御する第1の制御プログラムの更新指示を受信すると、前記記憶部が記憶するコマンドの数に基づいて、前記記憶装置が不要な領域を開放するガベージコレクションを実行中であるかを判定させ、
前記ガベージコレクションを実行中であると判定した場合、前記第1の制御プログラムの更新を前記記憶装置に指示させるストレージ装置の制御プログラム。
In a control program of a storage device 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,
Upon receiving the update instruction of the first control program that controls the storage device, it is determined whether the storage device is executing garbage collection that releases an unnecessary area based on the number of commands stored by the storage unit. Let me judge
A control program for a storage device that causes the storage device to instruct the update of the first control program when it is determined that 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 of the storage device
Upon receiving the update instruction of the control program that controls the storage device, it is determined whether the storage device is executing garbage collection that releases an unnecessary area based on the number of commands stored in the storage unit.
A method for controlling a storage device that instructs the storage device to update the control program when it is determined that 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 JP2018185584A (en) 2018-11-22
JP6867586B2 true 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)

Family Cites Families (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
JP5102918B2 (en) * 2008-09-02 2012-12-19 株式会社日立製作所 Storage apparatus and firmware update instruction method
JP2015111334A (en) * 2013-12-06 2015-06-18 富士通株式会社 Storage controller, storage control program and storage control method
JP2017199043A (en) * 2014-07-25 2017-11-02 日本電気株式会社 Storage device, system, method and program

Also Published As

Publication number Publication date
JP2018185584A (en) 2018-11-22

Similar Documents

Publication Publication Date Title
US9569130B2 (en) Storage system having a plurality of flash packages
JP5937697B2 (en) Storage system
US7975168B2 (en) Storage system executing parallel correction write
KR101055918B1 (en) Preservation of Cache Data Following Failover
JP4961319B2 (en) A storage system that dynamically allocates real areas to virtual areas in virtual volumes
US20140122818A1 (en) Storage apparatus and method for controlling storage apparatus
JP5028381B2 (en) Storage apparatus and cache control method
JP2008276646A (en) Storage device and data management method for storage device
JP2015518987A (en) Specialization of I / O access patterns for flash storage
US7984260B2 (en) Storage system provided with a plurality of controller modules
US20140195722A1 (en) Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof
US20160357672A1 (en) Methods and apparatus for atomic write processing
JP2011209892A (en) Storage system, control method of the same, switch device and storage device
US9047232B2 (en) Storage apparatus and controlling method for data transmission based on control information
WO2014147786A1 (en) Storage system and data management method
JP6867586B2 (en) Storage device, storage device control program, and storage device control method
JP2021114264A (en) Storage control device and storage control program
US11966590B2 (en) Persistent memory with cache coherent interconnect interface
JP7288191B2 (en) Storage controller and storage control program
JP7205090B2 (en) Control device, control program, and control method
CN116662217A (en) Persistent memory device and method for applying same
JP2023110180A (en) Storage apparatus and control method

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