JP7205090B2 - Control device, control program, and control method - Google Patents
Control device, control program, and control method Download PDFInfo
- Publication number
- JP7205090B2 JP7205090B2 JP2018133588A JP2018133588A JP7205090B2 JP 7205090 B2 JP7205090 B2 JP 7205090B2 JP 2018133588 A JP2018133588 A JP 2018133588A JP 2018133588 A JP2018133588 A JP 2018133588A JP 7205090 B2 JP7205090 B2 JP 7205090B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- free space
- backup
- nonvolatile memory
- written
- 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
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Memory System (AREA)
Description
本発明は、制御装置、制御プログラム、及び制御方法に関する。 The present invention relates to a control device, control program, and control method.
ストレージ装置を制御するストレージ制御装置では、動作中に外部電源が喪失した(停電した)場合に、不揮発性メモリに対して、揮発性メモリのバックアップが行なわれることがある。不揮発性メモリとしては、例えば、SSD(Solid State Drive)等の半導体記憶デバイス等が挙げられる。 2. Description of the Related Art In a storage control device that controls a storage device, volatile memory may be backed up to nonvolatile memory when the external power supply is lost (power failure) during operation. Examples of nonvolatile memories include semiconductor memory devices such as SSDs (Solid State Drives).
バックアップでは、揮発性メモリに格納されたデータ、例えばストレージ制御装置の動作に用いられるデータが、バッテリ等の予備電源を利用して不揮発性メモリのバックアップ領域に書き込まれる。これにより、外部電源の再投入後、ストレージ制御装置は、不揮発性メモリのバックアップ領域から揮発性メモリにバックアップデータを読み出すことで、停電発生前の動作を再開することができる。 In backup, data stored in the volatile memory, such as data used for operation of the storage control device, is written into the backup area of the nonvolatile memory using a backup power source such as a battery. As a result, after the external power is turned on again, the storage control device can resume the operation before the power failure by reading the backup data from the backup area of the nonvolatile memory to the volatile memory.
SSD等の不揮発性メモリは、データの格納領域として複数のブロックを有する。各ブロックは複数のページにより構成される。 A non-volatile memory such as an SSD has a plurality of blocks as data storage areas. Each block consists of multiple pages.
不揮発性メモリでは、ページ又はブロックに対するデータの書き込みや消去が繰り返されると、不揮発性メモリの格納領域には、有効なデータが複数のブロック上で離散して格納された状態になり、全ページが空き状態である空きブロック数が減少することがある。 In nonvolatile memory, when data is repeatedly written and erased to a page or block, the storage area of the nonvolatile memory becomes a state in which valid data is stored discretely in multiple blocks, and all pages are filled. The number of free blocks that are free may decrease.
不揮発性メモリのコントローラは、空きブロックが一定量(一定数)以下になった場合、空きブロックの作成のためにガベージコレクション(GC;garbage collection)動作と呼ばれる自律動作を行なうことがある。GCでは、コントローラは、複数のブロック上で離散している有効なデータを集めて1つの空きブロックに書き込み、これらの有効なデータの格納元である複数のブロックを消去して複数の空きブロックを作成する、という処理を繰り返す。 A non-volatile memory controller may perform an autonomous operation called a garbage collection (GC) operation to create an empty block when the number of empty blocks falls below a certain amount (a fixed number). In GC, the controller collects valid data scattered on multiple blocks and writes them into one free block, erases multiple blocks that are the storage sources of these valid data, and creates multiple free blocks. Repeat the process of creating
ここで、停電時のバックアップでは、不揮発性メモリの格納領域に対して、揮発性メモリ内のデータがブロック単位でシーケンシャルに書き込まれる。このとき、格納領域において、バックアップの書込先となる空きブロックの不足が発生した場合、不揮発性メモリが自律的にGCを実行することがある。 Here, in the backup at power failure, data in the volatile memory is sequentially written in block units to the storage area of the nonvolatile memory. At this time, if there is a shortage of empty blocks that serve as backup write destinations in the storage area, the nonvolatile memory may autonomously execute GC.
停電時のバックアップは予備電源を利用して行なわれるため、バックアップを実行可能な時間は予備電源の電力容量に応じて制限される。 Backup during a power failure is performed using a standby power supply, so the time during which backup can be executed is limited according to the power capacity of the standby power supply.
しかし、停電時のバックアップにおいてGCが発生する場合、バックアップ完了までの平均書込速度が低下するため、バックアップの実行時間が増加し得る。この場合、制限された時間内にメモリのバックアップが完了せず、ストレージ制御装置の外部電源の再投入後に、停電発生前の動作を再開することが困難となる場合がある。 However, if GC occurs during backup during a power failure, the average write speed until the backup is completed decreases, so the backup execution time may increase. In this case, the backup of the memory is not completed within the limited time, and it may be difficult to resume the operation before the power failure occurred after the external power supply of the storage control device is turned on again.
また、バックアップ中にGCが発生した場合にもバックアップを正常に完了させようとすると、性能、コスト、装置規模等の観点でストレージ制御装置の設計自由度が低下する場合がある。 Also, if the backup is to be completed normally even when GC occurs during the backup, the degree of freedom in designing the storage control device may decrease in terms of performance, cost, device scale, and the like.
なお、上述した不都合は、ストレージ制御装置に限らず、種々の制御装置、例えば、装置の停電が発生した場合にSSD等の不揮発性メモリに対して揮発性メモリのバックアップを行なう情報処理装置においても同様に生じ得る。 It should be noted that the above-described inconvenience is not limited to storage control devices, but can also occur in various control devices, such as information processing devices that back up volatile memory to nonvolatile memory such as an SSD when a power failure occurs in the device. can occur as well.
1つの側面では、本発明は、不揮発性メモリに対するバックアップ実行時間の増加を抑制することを目的とする。 In one aspect, an object of the present invention is to suppress an increase in backup execution time for a nonvolatile memory.
1つの態様では、制御装置は、揮発性メモリと、書込部と、判定部と、送信部と、をそなえてよい。前記書込部は、不揮発性メモリに設けられたバックアップ領域に対して、動作中における所定のタイミングでダミーデータの書き込みを行なってよい。前記バックアップ領域は、停電が発生した場合に実行される前記揮発性メモリ内のデータのバックアップの書き込み先であってよい。前記判定部は、前記不揮発性メモリが有するコントローラから得られる割合であって、前記ダミーデータの書き込み後の、前記不揮発性メモリの全体の記憶領域に対する、前記不揮発性メモリにおける制御装置が前記不揮発性メモリの記憶領域として認識しない領域と前記制御装置が前記不揮発性メモリの記憶領域として認識する領域のうちのデータが書き込まれていない空き領域とを含むフリースペースの前記割合に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリのフリースペースが不足するか否かを判定してよい。前記送信部は、前記判定部により前記不揮発性メモリのフリースペースが不足すると判定された場合、前記コントローラに対して、前記不揮発性メモリのフリースペースを増加させる増加処理であって、前記不揮発性メモリに離散して書き込まれたデータを集めてブロック単位で前記フリースペースに書き込み、前記離散して書き込まれたデータの格納元の複数のブロックを解放して前記フリースペースを増加させる前記増加処理を実行させる実行信号を送信してよい。 In one aspect, the controller may include a volatile memory, a writer, a determiner, and a transmitter. The writing unit may write dummy data to a backup area provided in the nonvolatile memory at a predetermined timing during operation. The backup area may be a write destination of a backup of data in the volatile memory that is executed in the event of a power failure. The determination unit is a ratio obtained from a controller of the nonvolatile memory, and the control device in the nonvolatile memory determines the ratio of the entire storage area of the nonvolatile memory after the dummy data is written. the volatile memory based on the ratio of the free space including an area not recognized as a storage area of the memory and an empty area in which data is not written among the areas recognized as the storage area of the nonvolatile memory by the control device ; It may be determined whether or not the free space of the nonvolatile memory is insufficient when the backup of is executed. When the determining unit determines that the free space of the nonvolatile memory is insufficient, the transmitting unit causes the controller to increase the free space of the nonvolatile memory. the increase processing for collecting the data discretely written in the memory and writing it in the free space in units of blocks, and releasing the plurality of blocks that are the storage sources of the discretely written data to increase the free space. may send an execution signal to cause the
1つの側面では、不揮発性メモリに対するバックアップ実行時間の増加を抑制することができる。 In one aspect, it is possible to suppress an increase in backup execution time for the nonvolatile memory.
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the embodiments described below are merely examples, and are not intended to exclude various modifications and application of techniques not explicitly described below. For example, this embodiment can be modified in various ways without departing from the spirit of the embodiment. In the drawings used in the following embodiments, parts with the same reference numerals represent the same or similar parts unless otherwise specified.
〔1〕一実施形態
〔1-1〕一実施形態について
上述したストレージ制御装置においては、DRAM(Dynamic Random Access Memory)の大容量化により、バックアップ対象の揮発性メモリの容量が拡大している。一方、バッテリ等の予備電源の電力容量は、一定に留まっている。このため、ストレージ制御装置の筐体サイズを変えずに、バックアップ対象の容量の拡大に対応するには、SSD等の不揮発性メモリの書込速度を向上させることになる。
[1] One Embodiment [1-1] About One Embodiment In the above-described storage control device, the capacity of the volatile memory to be backed up is increasing due to the increase in capacity of DRAM (Dynamic Random Access Memory). On the other hand, the power capacity of backup power sources such as batteries remains constant. Therefore, in order to cope with the expansion of the capacity of the backup target without changing the housing size of the storage control device, the write speed of the non-volatile memory such as the SSD must be improved.
ストレージ制御装置によるメモリのバックアップ先となるSSDとしては、例えば、NANDフラッシュメモリを利用したSSDが挙げられる。NANDフラッシュメモリはデータの上書き動作に非対応であるため、コントローラは、データの書き換えを行なう際に、事前に既存のデータを消去することになる。しかし、NANDフラッシュメモリにおけるデータの消去は、複数のページにより構成されるブロック単位での実行に制限される。 An example of an SSD used as a memory backup destination by a storage control device is an SSD using a NAND flash memory. Since the NAND flash memory does not support data overwrite operation, the controller erases the existing data in advance when rewriting the data. However, erasing data in a NAND flash memory is limited to execution in units of blocks each composed of a plurality of pages.
(処理1)
このため、コントローラは、1ページの書き換えを行なう場合、REMW(Read-Erase-Modify-Write)を実行する。REMWでは、コントローラは、書込対象のページを含むブロック内の全ページを不揮発性メモリのキャッシュに読み出し、格納領域の当該ブロックを消去する。そして、コントローラは、キャッシュ上のブロックデータに書込対象のデータをマージし、当該ブロックデータを格納領域の消去後のブロックに書き込む。
(Processing 1)
Therefore, when rewriting one page, the controller executes REMW (Read-Erase-Modify-Write). In REMW, the controller reads all pages in the block containing the page to be written to cache in non-volatile memory and erases the block of storage. Then, the controller merges the data to be written into the block data on the cache, and writes the block data to the erased block in the storage area.
(処理2)
上記処理1におけるREMWの動作では、ブロック単位でのデータの読出、消去、変更、及び書込が発生し、データの書込速度の低下を引き起こす。そこで、コントローラは、ブロックの交代処理を行なう。例えば、コントローラは、データの書き込みを行なう際に、消去済みの空きブロックが存在する場合、REMWにおけるブロックの消去を省略とし、変更後のブロックデータを空きブロックに書き込むことで、消去の待ち時間分の時間短縮を図る。なお、コントローラは、所定のタイミングで、消去を省略したブロックを消去し、当該ブロックを次の書き込みのための空きブロックとする。なお、以下の説明において、空きブロックは、予備ブロック又はフリーブロックと称されてもよい。
(Processing 2)
In the REMW operation in
(処理3)
処理1及び処理2におけるデータの書き込みや消去が繰り返されると、SSDの格納領域には、有効なデータが複数のブロック上で離散して格納された状態になり、予備ブロックが減少することがある。そこで、SSDのコントローラは、空きブロックが一定量(一定数)以下になった場合、上述したGC動作を行なう。
(Processing 3)
If the data writing and erasing in
図1は、GCの動作の一例を説明する図である。図1の(1)に示すように、ホスト装置からのライトにより、記憶領域(NANDフラッシュメモリ)が歯抜けにライトされた状態となる。なお、図1の(1)において、各枠はページを示し、白塗りの枠はデータの書き込みが可能なフリーページであり、網掛けの枠はデータが書き込まれているページである。また、8×5の枠の集合はブロックを示す。 FIG. 1 is a diagram illustrating an example of GC operation. As shown in (1) of FIG. 1, the storage area (NAND flash memory) is in a state in which the writing from the host device is completely written. In (1) of FIG. 1, each frame indicates a page, white frames are free pages to which data can be written, and hatched frames are pages in which data is written. A set of 8×5 frames indicates a block.
ホスト装置からのライトにより、SSDのフリースペースの残容量が、例えば“Low_Threshold”(閾値)以下になった場合、SSDのコントローラは、GCが不要となる閾値(例えば、“High_Threshold”になるまでGCを実施する。なお、図1の中段には、SSDのフリースペースの残容量に応じたGCの実施要否と、その閾値とを示す。例えば、フリースペースの残容量が、SSDが主導でGCを行なう範囲“Device Initiated GC”であれば、SSDは、GCが不要の範囲“No GC”、又は、“High_Threshold”と“Low_Threshold”との間の範囲、となるように、GCを実施する。なお、“High_Threshold”と“Low_Threshold”との間の範囲では、GCが実行されてもされなくてもよい。 When the remaining free space of the SSD becomes, for example, "Low_Threshold" (threshold) or less due to a write from the host device, the SSD controller performs GC until it reaches a threshold (for example, "High_Threshold") at which GC becomes unnecessary. 1 shows whether or not GC should be performed according to the remaining capacity of the free space of the SSD and its threshold value.For example, the remaining capacity of the free space is GC led by the SSD If the range is "Device Initiated GC", the SSD performs GC so that the range is "No GC" where GC is unnecessary or the range is between "High_Threshold" and "Low_Threshold". Note that GC may or may not be performed in the range between "High_Threshold" and "Low_Threshold".
SSDは、図1の(2)に示すように、ホストI/O中に、フリースペースの残容量が閾値以下になった場合、能動的にGCを実行する。例えば、SSDは、歯抜けにライトされたブロック内のページを、他のフリーブロックに隙間なく書き込み(図1の(2-1)参照)、歯抜けにライトされたブロックを消去して予備(フリー)ブロックとする(図1の(2-2)参照)。 As shown in (2) of FIG. 1, the SSD actively performs GC when the free space remaining capacity becomes equal to or less than the threshold during host I/O. For example, the SSD writes the pages in the block written incompletely to other free blocks without gaps (see (2-1) in FIG. 1), and erases the block written incompletely into a spare ( free) block (see (2-2) in FIG. 1).
しかし、このようなGCの処理は、ホストI/Oの処理と競合するため、ホストI/Oが待たされることになる。例えば、ホストI/Oの処理中にGCが実行される場合、レスポンス(応答時間)は、GCが実行されない場合のレスポンスの1.5~8倍程度になることがある。 However, since such GC processing competes with host I/O processing, the host I/O has to wait. For example, when GC is executed during host I/O processing, the response (response time) may be about 1.5 to 8 times the response when GC is not executed.
ところで、一実施形態においては、ストレージ制御装置として、コントローラモジュール(CM;Controller Module)を例に挙げて説明する。CMは、例えば、RAID(Redundant Arrays of Inexpensive Disks)システムを構成するストレージ装置を制御するRAIDコントローラであってもよい。 By the way, in one embodiment, a controller module (CM) will be described as an example of a storage control device. The CM may be, for example, a RAID controller that controls storage devices constituting a RAID (Redundant Array of Inexpensive Disks) system.
また、SSDは、バックアップデバイス(BUD;Back Up Device)の一例であってよく、メモリのバックアップ領域を有するとともに、CMの動作を実現するFW(Firmware)の格納領域、及びシステムの動作ログの記憶領域を有するものとする。 Also, an SSD may be an example of a backup device (BUD; Back Up Device), and has a memory backup area, a storage area for FW (Firmware) that implements CM operations, and a storage area for system operation logs. area.
例えば、CMは、BUDの動作ログの記憶領域に対して、ログを不定期にランダム領域に書き込む。 For example, the CM irregularly writes logs to a random area in the operation log storage area of the BUD.
この場合、BUDでは、予備ブロックの枯渇とブロックの交代処理とが不定期に発生する(処理1及び処理2が発生する)。当該ログの書き込み中にストレージ装置の停電が発生した場合、バックアップ書き込み動作では、大容量のデータが連続して書き込まれるため、BUDでは上述した処理1及び処理3が発生し、バックアップ完了までの平均書込速度が低下する。
In this case, in the BUD, depletion of spare blocks and block replacement processing occur irregularly (
また、CMの動作中に停電が発生した場合、CMは、BUDのバックアップ領域に対して、停電時のメモリのバックアップ書き込みとして、連続したLBA(Logical Block Address)のシーケンシャル書き込みを行なう。 Also, when a power failure occurs during operation of the CM, the CM performs sequential LBA (Logical Block Address) sequential writing to the backup area of the BUD as memory backup writing in the event of a power failure.
この場合、BUD内部では、バックアップのデータがページ・ブロックに集中し歯抜けなく書き込まれる。バックアップデータが消去されると、GCの不要なフリーブロックが生成される。しかし、BUDは、指示を受けない限りバックアップデータを書き込み状態(有効なデータ)として保持するため、バックアップデータが書き込まれたブロックは、フリーブロックにはカウントされない。 In this case, inside the BUD, the backup data is concentrated in the page block and written without any gaps. When backup data is erased, unnecessary free blocks of GC are generated. However, since the BUD holds the backup data in a written state (valid data) unless instructed to do so, the blocks in which the backup data are written are not counted as free blocks.
なお、停電時のバックアップ書き込みにおいて、フリーブロックの不足が発生しないように、CMが主導となってBUDのGC動作を行なうことで、書込性能低下の回避を実現することも考えられる。しかし、以下の(i)及び(ii)の理由から、CMが主導でGC動作を実行させるための実行条件は、一意ではない。 Note that it is conceivable that the CM takes the lead in performing the GC operation of the BUD so as not to cause a shortage of free blocks during backup writing during a power failure, thereby avoiding write performance deterioration. However, for the reasons (i) and (ii) below, the execution condition for the CM to take the lead in executing the GC operation is not unique.
(i)バックアップにより使用されるBUDのフリーブロック数の特定が困難である。例えば、メモリのバックアップに利用されるフリーブロックの容量(フリースペース)は、メモリサイズから一意に決まるものではない。また、バックアップ領域が複数回に亘って上書きされるときには、書込済みのブロックの消去(イレーズ)が処理されるが、CMは、これらのブロックをフリーブロックとしては算出しない。さらに、一般的なSSDデバイスのブロックやページサイズは情報開示されないことが多いため、CMは、バックアップを行なったメモリサイズの履歴から使用済みブロック数を算出することは困難である。 (i) It is difficult to specify the number of BUD free blocks used by backup. For example, the free block capacity (free space) used for memory backup is not uniquely determined from the memory size. Also, when the backup area is overwritten a number of times, written blocks are erased, but the CM does not calculate these blocks as free blocks. Furthermore, since block and page sizes of general SSD devices are often not disclosed, it is difficult for the CM to calculate the number of used blocks from the history of memory sizes that have been backed up.
(ii)バックアップが実行されるときにBUDに存在するフリーブロック数の特定が困難である。例えば、ログ書き込みの累積状態によって、BUDのブロックやページの消費状況は異なる。このため、バックアップが実行される時点でのBUDにおけるフリーブロック数は不定となる。 (ii) It is difficult to determine the number of free blocks present in the BUD when the backup is performed. For example, the consumption status of BUD blocks and pages differs depending on the cumulative state of log writes. Therefore, the number of free blocks in the BUD at the time the backup is executed is indefinite.
以上の点に鑑み、一実施形態においては、バックアップ実行時間の増加を抑制する手法について説明する。例えば、一実施形態では、バックアップの実行時に、バックアップ書き込み先の予備ブロックの不足に起因するBUDの自己判断でのGC動作が発生しないように、CMが予備ブロックの枯渇を防ぐためのBUDのGC制御を行なう。 In view of the above points, in one embodiment, a technique for suppressing an increase in backup execution time will be described. For example, in one embodiment, in order to prevent the occurrence of a GC operation based on self-determination of the BUD due to the lack of spare blocks in the backup write destination when performing backup, the CM performs GC of the BUD to prevent exhaustion of spare blocks. Take control.
ここで、一実施形態に係る手法では、SI(Storage Intelligence)を利用するものとする。SIは、GC処理のような、SSDの速度性能に影響を与える内部処理を実行するタイミングをCM等の制御装置側で制御できる技術の総称であり、標準化が進んでいる。 Here, it is assumed that the method according to one embodiment uses SI (Storage Intelligence). SI is a general term for technology that allows a control device such as CM to control the timing of executing internal processing that affects the speed performance of an SSD, such as GC processing, and is being standardized.
SIの代表的な機能として、例えば、GC処理をSSD外部の制御装置側から起動する命令機能がある。制御装置は、当該命令を制御装置側のタイミングでSSDに発行することにより、SSDの自律GCを起動させることができる。また、当該命令では、GCの動作時間や、GCにより作成する予備ブロック容量(数)を指定することも可能である。 A representative function of the SI is, for example, an instruction function for activating GC processing from the control device side outside the SSD. The control device can activate the autonomous GC of the SSD by issuing the command to the SSD at the timing of the control device side. In addition, the instruction can also specify the operating time of GC and the capacity (number) of spare blocks to be created by GC.
〔1-2〕ストレージ装置の構成例
次に、図2を参照して、一実施形態に係るストレージ装置1の機能構成例を説明する。ストレージ装置1は、情報処理装置の一例であり、図2に例示するように、CM2、及び、ストレージ3をそなえてよい。
[1-2] Configuration Example of Storage Apparatus Next, a functional configuration example of the
ストレージ3は、ストレージ装置1により図示しないホスト装置等に対して提供される記憶領域を有する。例えば、ストレージ3は、複数のディスク3aをそなえてよい。例えば、ストレージ3は、複数のディスク3aによりRAID等のディスクアレイを構成してもよい。
The
CM2は、ストレージ制御装置又は制御装置の一例である。CM2は、例えば、ストレージ装置1を制御し、図示しないホスト装置に対して、ストレージ3の記憶領域を提供するための種々の制御を行なってよい。なお、以下の説明において、ホスト装置からストレージ装置1に対して発行されたストレージ3へのアクセス要求に基づき、CM2が実行するストレージ3へのアクセスに係る処理を、「ホストI/O」と表記する場合がある。
CM2 is an example of a storage controller or controller. The
図2に示すように、CM2は、例示的に、保持部10、メモリ20、BUD30、バックアップ処理部41、ダミーデータ書込部42、及びGC実行制御部43をそなえてよい。
As shown in FIG. 2, the
保持部10は、CM2の制御に用いられる種々の情報を記憶するメモリ部の一例であり、例えば、制御情報11を記憶してよい。制御情報11は、例えば、後述するダミーデータ書込部42及びGC実行制御部43の処理に利用される閾値(TH1、TH2)等の種々のパラメータを含んでよい。
The holding
メモリ20は、CM2の動作に用いられる種々の情報を記憶する揮発性メモリの一例である。一実施形態において、メモリ20は、ストレージ装置1(CM2)の停電が発生した際に実行されるバックアップの対象(バックアップ元)である。
The
メモリ20は、例えば、ストレージ装置1(CM2)の停電後、再起動された際に、ストレージ装置1(CM2)の動作を再開するために使用される動作再開情報を記憶してよい。動作再開情報としては、例えば、CM2が停電発生の直前に実行していた処理の制御情報や、ホストI/Oに係るキャッシュの情報等が挙げられる。
The
BUD30は、CM2の動作に用いられる種々の情報を記憶する不揮発性メモリの一例である。一実施形態において、BUD30は、ストレージ装置1(CM2)の停電が発生した際に実行されるバックアップの格納(退避)先(バックアップ先)である。
The
BUD30は、制御部31及び記憶部32をそなえてよい。制御部31は、BUD30のコントローラの一例であり、記憶部32に対して、上述した(処理1)~(処理3)、例えば、REMWの制御、ブロックの交代処理の制御、及び、GC処理の制御、等を行なってよい。GC処理の制御は、記憶部32のフリースペースの残容量に応じて、BUD30が主導で実行されてよい。
The
記憶部32は、BUD30の記憶領域であって、図3に例示するように、論理ブロックとして、FW格納領域32a、ログメタ書込領域32b、バックアップ領域32c、空き領域32d、及び不可視領域32eを有してよい。なお、これらの領域32a~32eは、それぞれ、連続した論理アドレスによる論理アドレス範囲として表されてもよい。
The
FW格納領域32aは、CM2の動作を実現するFWを格納する記憶領域であり、ログメタ書込領域32bは、システムの動作ログ等を格納する記憶領域である。バックアップ領域32cは、CM2の停電が発生した場合にCM2の予備電源を利用して実行されるメモリ20内のデータのバックアップの書き込み先の記憶領域である。不可視領域32eは、BUD30の容量としてCM2からは認識されない領域であり、制御部31により、データが未書き込みである空き領域32dとともに、フリーブロックとして使用されてよい。
The
次に、図4を参照して、記憶部32の論理アドレス、換言すれば、図3に示す領域32a~32eの各々に対応する物理ブロック(物理記憶ブロック)の状態例を説明する。
Next, with reference to FIG. 4, an example of the state of the physical block (physical storage block) corresponding to each of the logical addresses of the
図4は、物理記憶ブロックの状態の一例を示す図である。図4の例では、便宜上、1つの枠がページであり、4つのページの集合がブロックであるものとする。ページの状態としては、白塗りのページは消去済み、網掛けのページは有効なデータが記憶されている記憶有効、斜線のページは無効なデータが記憶されている(消去待ちである)記憶無効、をそれぞれ示す。 FIG. 4 is a diagram showing an example of the state of physical storage blocks. In the example of FIG. 4, for convenience, it is assumed that one frame is a page and a set of four pages is a block. As for the state of the pages, white pages have been erased, shaded pages have valid data and are valid for storage, and hatched pages have invalid data (waiting for erasure) and invalid storage. , respectively.
また、図4の例では、(a)で囲ったブロックはFW格納領域32aとして使用されており、(b)で囲ったブロックはログメタ書込領域32bとして使用されていることを示す。さらに、(c)で囲ったブロックはバックアップ領域32cとして使用されており、(d)で囲ったブロックは空き領域32dとして使用されていることを示す。これらの領域は、記憶部32の記憶容量として算出される可視領域である。一方、(e)で囲ったブロックは、記憶部32の記憶容量として算出されない不可視領域32eであることを示す。
Also, in the example of FIG. 4, the block enclosed by (a) is used as the
なお、図4の例において、全ページが消去状態のブロックは、フリーブロックのカウント対象となる。 In the example of FIG. 4, a block with all pages erased is counted as a free block.
図4に例示するように、BUD30のI/O性能の劣化を低減するため、制御部31は、GC、ブロックの交代処理、消去等をバックグラウンドで処理する。当該処理において、論理アドレスと図4に示す物理ブロックとは、逐次に変換されるため、可視領域及び不可視領域における論理-物理間の割り当てが経時的に変化する。このため、図4に示すように、論理アドレスは、連続した物理ブロックに割り当てられないことがある。
As exemplified in FIG. 4, in order to reduce deterioration of the I/O performance of the
バックアップ処理部41は、CM2に電力を供給する電源(外部電源)の喪失をCM2が検出した(停電を検出した)場合に、バッテリ等の予備電源を利用して、BUD30のバックアップ領域32cに対して、メモリ20のバックアップを行なう。バックアップの対象となるデータは、例えば、停電が検出されたときにメモリ20が記憶する有効なデータであってよい。
When the
なお、バックアップが完了すると、CM2は、例えば「停電」等の動作停止要因(電源切断要因)をBUD30のログメタ書込領域32b、或いは、他の不揮発性メモリ等に格納して、動作を停止してよい。また、外部電源の復旧により、CM2に外部電力が再投入されると、バックアップ処理部41は、前回の動作停止要因を参照し、停電であった場合、BUD30のバックアップ領域32cからデータをメモリ20に書き戻してよい。これにより、CM2は、停電が検出されたときのメモリ20の状態を復元してからシステム動作を再開できる。
Note that when the backup is completed, the
このように、バックアップ処理部41は、CM2の停電が発生した場合に、予備電源を利用して、バックアップ領域32cに対して、メモリ20内のデータのバックアップを実行するバックアップ部の一例である。
In this way, the
ここで、CM2は、CM2における動作ログを定期的にBUD30のログメタ書込領域32bに書き込む。このため、動作ログの書き込み等により、記憶部32は、図4に例示するような歯抜けにライトされた状態になることがある。
Here, CM2 periodically writes the operation log in CM2 to the log
図4に例示する状態において、例えば、停電によりバックアップ処理部41がバックアップ処理を実行している間に、記憶部32のフリースペースの残容量が、“Low_Threshold”(閾値)以下となった場合を想定する(図5参照)。この場合、上述したように、BUD30においては、制御部31による内部制御としてのGCが実行され得るため、バックアップ処理におけるBUD30に対する書き込み性能が低下することになる。
In the state illustrated in FIG. 4, for example, while the
一実施形態においては、以下の手法によって、バックアップ処理の実行中にBUD30による自発的なGC(物理的なGC)の発生を抑制することにより、書き込み性能の低下を抑止する。
In one embodiment, the following method is used to suppress the deterioration of write performance by suppressing the occurrence of spontaneous GC (physical GC) by the
ダミーデータ書込部42は、CM2の動作中、定期的に、BUD30に対して記憶部32のバックアップ領域32cに対するダミーデータの書き込み指示を発行することで、バックアップ領域32cに対してダミーデータの書き込みを行なう。CM2の動作中とは、例えば、停電が発生しておらず、外部電源からCM2に正常に給電が行なわれている状態、換言すれば、CM2の正常稼働中を意味してよい。
The dummy
例えば、ダミーデータ書込部42は、以下のダミーデータ書込処理を行なってよい。ダミーデータ書込処理は、例示的に、バックアップ領域32cに対する一定容量のダミーデータを書き込む書き込み処理、BUD30のフリースペースの残容量に基づきダミー書き込みの終了条件を満たすか否かを判定する判定処理、を含んでよい。
For example, dummy
なお、ダミーデータは、どのようなデータであってもよく、例示的に、実際のメモリ20内のデータ、ランダムデータ、オール“0”又は“1”、等であってよい。また、書き込まれるダミーデータの一定容量としては、例えば、1ブロック~数ブロック又は数十ブロック等のサイズであってよい。
Note that the dummy data may be any data, such as actual data in the
ダミーデータ書込処理の終了条件としては、例えば、以下の(I)及び(II)が挙げられる。ダミーデータ書込部42は、判定により、これらの終了条件のうちの少なくとも1つを満たすと判定するまで、書込処理及び判定処理、の組(セット)を繰り返し実行してよい。なお、当該終了条件を満たすと判定した場合、ダミーデータ書込部42は、ダミーデータ書込処理を打ち切って(停止して)よい。
For example, the following (I) and (II) are given as conditions for terminating the dummy data write process. The dummy
(I)書き込みを行なったダミーデータの総量が、バックアップ対象であるメモリ20の有効データの容量に達したこと。
(I) The total amount of written dummy data has reached the capacity of valid data in the
上記(I)の終了条件を満たす場合、ダミーデータ書込部42は、例えば、現在のメモリ20の有効データの容量に相当する(或いはそれ以上の)サイズのダミーデータを、バックアップ領域32cに対して書き込んだ(ダミーバックアップした)といえる。これにより、停電時に実行されるバックアップ処理によるBUD30のフリー(予備)ブロックの使用状態を疑似的に作り出すことができ、フリーブロックの残容量を予測することができる。
If the termination condition (I) above is satisfied, the dummy
(II)フリースペース(又はフリースペースの残容量)が飽和した。 (II) Free space (or remaining capacity of free space) is saturated.
以下、上記(II)のフリースペースの飽和について説明する。なお、フリースペースは、フリーブロックの合計容量を意味してよく、以下の説明では、便宜上、フリースペース(又はその残容量)を、フリーブロック(又はその残容量)と表記する場合がある。図5は、一実施形態に係るGCの実行条件の一例を示す図である。 The above (II) free space saturation will be described below. Free space may mean the total capacity of free blocks, and in the following description, free space (or its remaining capacity) may be referred to as free block (or its remaining capacity) for convenience. FIG. 5 is a diagram illustrating an example of GC execution conditions according to an embodiment.
一実施形態では、SIによって定義されるGCの実行条件を採用する。GCの実行条件では、例えば、図5に示すように、記憶部32のフリースペースの残容量に応じて、“No GC”、“Host Initiated GC”、“Device Initiated GC”の範囲が定義される。
In one embodiment, the GC execution conditions defined by SI are employed. In the GC execution conditions, for example, as shown in FIG. 5, ranges of "No GC", "Host Initiated GC", and "Device Initiated GC" are defined according to the remaining capacity of the free space in the
“No GC”は、残容量が“High_Threshold”よりも大きい状態の範囲であり、この場合、GCは不要である。 "No GC" is a state range in which the remaining capacity is greater than "High_Threshold", and GC is unnecessary in this case.
“Host Initiated GC”は、残容量が“Low_Threshold”よりも大きく“High_Threshold”以下である状態の範囲であり、この場合、ホストの一例であるCM2が主導でGCの実行をBUD30に対して指示してよい。なお、“Host Initiated GC”において、CM2(GC実行制御部43)は、GCの実行要否の判断を含む制御を行なってよい。 "Host Initiated GC" is a range in which the remaining capacity is greater than "Low_Threshold" and equal to or less than "High_Threshold". you can In addition, in "Host Initiated GC", CM2 (GC execution control unit 43) may perform control including determination of necessity of execution of GC.
“Device Initiated GC”は、残容量が“Low_Threshold”以下である状態の範囲であり、この場合、デバイスの一例であるBUD30が主導でGCを行なってよい。
"Device Initiated GC" is a range in which the remaining capacity is equal to or less than "Low_Threshold", and in this case, the
図6は、ダミーデータの書き込みによるフリースペースの残容量の変化の一例を示す図である。図6の例において、横軸はダミーデータの書き込み実行回数(又は実行時間)、換言すれば、ダミーデータの書き込み総容量(合計容量)を示す。 FIG. 6 is a diagram showing an example of a change in the free space remaining capacity due to the writing of dummy data. In the example of FIG. 6, the horizontal axis indicates the number of dummy data write executions (or execution time), in other words, the total dummy data write capacity (total capacity).
BUD30の制御部31は、ダミーデータ書込部42からの指示に応じて、バックアップ領域32cに対するダミーデータの書き込みを行ないながら、不可視領域32eに対して、ページの結合、GC、ブロック交代等をバックグラウンドで行なう。このように、ダミーデータの書き込みでは、ブロックの消去及び書き込みが繰り返される。
The
このため、記憶部32においては、フリースペースが枯渇せず(残容量が“0”にならず)、最小でも不可視領域32e分のフリースペースが残ることになる。従って、ダミーデータ書込部42による書込処理及び判定処理が繰り返し実行されると、記憶部32では、フリーブロック数が、ダミーデータ以外の記憶部32の空き容量とバックアップ領域32cの空き容量との合計容量に飽和することになる。
Therefore, in the
上記(II)の終了条件を満たす場合、書込処理及び判定処理の組が繰り返し実行されたとしても、これ以上の大幅なフリーブロックの減少は発生しないと考えられる。従って、ダミーデータ書込部42は、上記(I)の終了条件が満たされているか否かに関わらず、上記(II)の終了条件を満たす場合には、ダミーデータ書込処理を停止してよい。
If the termination condition (II) above is satisfied, even if the set of write processing and determination processing is repeatedly executed, it is considered that the number of free blocks will not decrease significantly any more. Therefore, regardless of whether or not the termination condition (I) is satisfied, the dummy
なお、ダミーデータ書込部42は、上記(II)の判定において、例えば、書込処理によるフリーブロックの残容量の変化量(今回の書き込みによる残容量と前回の書き込みによる残容量との差分)が、“0”となった場合に、残容量が飽和したと判定してよい。なお、他の例では、ダミーデータ書込部42は、変化量が飽和閾値以下となった場合に、残容量が飽和したと判定してもよい。飽和閾値としては、一例として、数%未満の値であってよい。
Note that the dummy
また、ダミーデータ書込部42は、停電が発生した場合には、バックアップ処理部41により実行されるバックアップ処理に先立って、ダミーデータの書き込みを停止してよい。これにより、停電時のバックアップ処理中に、ダミーデータ書込部42によるダミーバックアップが実行されることを抑止できる。
Further, when a power failure occurs, the dummy
以上のように、ダミーデータ書込部42は、BUD30に設けられたバックアップ領域32cに対して、動作中における所定のタイミングでダミーデータの書き込みを行なう書込部の一例である。このバックアップ領域32cは、停電が発生した場合に実行される揮発性メモリ内のデータのバックアップの書き込み先であるバックアップ領域である。
As described above, the dummy
GC実行制御部43は、ダミーデータ書込部42によるダミーデータ書込処理の実行結果に基づいて、CM2が主導となるGCの実行制御を行なう。
The GC
例えば、GC実行制御部43は、ダミーデータ書込処理が終了したときのフリースペースに基づき、停電時のバックアップ処理中にBUD30においてフリーブロックの不足によるデバイス自己判断でのGC動作が発生するか否かを判定してよい。
For example, the GC
一例として、GC実行制御部43は、ダミーデータ書込処理の終了後のフリースペースの残容量が、図5に例示する“High_Threshold”以下(“Host Initiated GC”又は“Device Initiated GC”の範囲)であるか否かを判定してよい。
As an example, the GC
残容量が“High_Threshold”以下となる場合、GC実行制御部43は、停電時のバックアップ処理中にフリースペースの残容量が“Host Initiated GC”又は“Device Initiated GC”の範囲になると判断(予測)し、GCを実行するように制御してよい。
When the remaining capacity is equal to or less than "High_Threshold", the GC
一例として、GC実行制御部43は、フリースペースの残容量が“High_Threshold”よりも大きくなる(“No GC”の範囲になる)まで、BUD30に対して、以下のGC実行制御処理を行なってよい。GC実行制御処理は、例えば、BUD30に対するGCの実行時間(例えば一定時間)を指定したGC実行指示の送信処理、及び、GC完了後にBUD30のフリースペースの残容量が“High_Threshold”を超えたか否かを判定する判定処理、を含んでよい。
As an example, the GC
例えば、GC実行制御部43は、GC実行制御処理において、BUD30のフリースペースの残容量(割合)が所定の割合、例えば“High_Threshold”を超えるまで、送信処理及び判定処理の組(セット)を繰り返し実行してよい。
For example, in the GC execution control process, the GC
このように、ダミーデータ書込処理が完了したときに、フリーブロックの残容量が所定の閾値よりも少ない場合、バックアップ処理(書き込み)中に、BUD30においてBUD30主導のGCが発生することが予測される。そこで、GC実行制御部43は、BUD30に対して、強制的にGCを実行させる指示を行なうのである。
In this way, if the free block remaining capacity is less than a predetermined threshold when the dummy data write process is completed, it is predicted that the
このように、ダミーデータ書込部42及びGC実行制御部43によれば、ダミーバックアップによって、停電時のバックアップ処理中に不足するフリーブロック数(総容量)を予測することができる。
As described above, the dummy
なお、上述した説明では、GC実行制御部43によるGC実行制御処理において、所定の閾値として“High_Threshold”が用いられるものとしたが、これに限定されるものではない。例えば、GC実行制御部43は、所定の閾値として、“Low_Threshold”(例えば、“Device Initiated GC”の範囲)、或いは、“Low_Threshold”から“High_Threshold”までの間の値を用いてもよい。
In the above description, it is assumed that "High_Threshold" is used as the predetermined threshold in the GC execution control process by the GC
また、GC実行制御部43は、ダミーデータ書込部42によるダミーデータ書込処理(ダミーバックアップ)によってバックアップ領域32cに書き込まれたブロックを消去する消去処理を行なってよい。消去処理は、GC実行制御処理の前に実行されてもよい。
In addition, the GC
さらに、GC実行制御部43は、停電が発生した場合には、バックアップ処理部41により実行されるバックアップ処理に先立って、BUD30に対して、GC動作を抑止させるGC抑止指示(停止指示)を送信してよい。また、GC実行制御部43は、バックアップ領域32cにおけるダミーデータが書き込まれた記憶領域を空き領域とするための指示(制御信号)を送信してよい。これらの指示により、停電時のバックアップ処理中に、GC実行制御部43からの指示によるGCの実行を抑止でき、また、フリースペースを増加させることができるため、バックアップ処理の書込速度の向上を図ることができる。
Furthermore, when a power failure occurs, the GC
このように、GC実行制御部43は、ダミーデータの書き込み結果に基づき、メモリ20のバックアップが実行される場合にBUD30の空き領域が不足するか否かを判定する判定部の一例である。
As described above, the GC
また、GC実行制御部43は、BUD30の空き領域が不足すると判定した場合、BUD30が有する制御部31に対して、GCを実行させる実行信号を送信する送信部の一例である。なお、一実施形態において、GCは、BUD30の空き領域を増加させる増加処理の一例である。
Also, the GC
以上のように、一実施形態に係る手法によれば、バックアップ先であるBUD30の制御部31ではなく、バックアップを制御するCM2が、BUD30においてGCを実施するか否かを判定する。そして、CM2は、GCを実施すると判断した場合、停電時に制御部31によりGCが実行されることを抑止するために、事前に制御部31にGCを実施させるように制御する。
As described above, according to the method according to one embodiment, the
これにより、停電発生により実行されるメモリバックアップ処理によるBUD30での書き込み処理において、BUD30の自律動作によるGCの実施を回避できるため、バックアップ時間の高速化、及び、予備電源であるバッテリの容量削減を図ることができる。
As a result, it is possible to avoid performing GC by the autonomous operation of the
〔1-3〕動作例
次に、図7~図10を参照して、上述の如く構成されたストレージ装置1(CM2)の動作例の説明を行なう。
[1-3] Operation Example Next, an operation example of the storage apparatus 1 (CM2) configured as described above will be described with reference to FIGS. 7 to 10. FIG.
〔1-3-1〕GC実施判定処理
まず、図7を参照して、CM2によるGC実施判定処理の動作例を説明する。なお、図7に示すGC実施判定処理は、所定のタイミングで、例えば、定期的に実行されてよい。
[1-3-1] GC Implementation Determination Processing First, an operation example of GC implementation determination processing by CM2 will be described with reference to FIG. Note that the GC implementation determination process shown in FIG. 7 may be performed periodically, for example, at a predetermined timing.
図7に例示するように、ダミーデータ書込部42は、ダミーデータ書込処理を実行する。例えば、ダミーデータ書込部42は、メモリ20から、メモリ20内のバックアップ対象のデータサイズ“BU_Size”を取得し(ステップS1)、書込オフセットアドレスNとして、N=0を設定する(ステップS2)。
As illustrated in FIG. 7, the dummy
次いで、ダミーデータ書込部42は、BUD30のバックアップ領域32cのオフセットアドレスNに対して、一定容量(例えばサイズX)のダミーデータを積極的に書き込む(ステップS3)。
Next, the dummy
ダミーデータ書込部42は、BUD30からフリースペースの利用率FS(N)を取得する(ステップS4)。利用率FS(N)は、例えば、オフセットアドレスNに対してダミーデータを書き込んだ後の、記憶部32における(全体の)記憶容量に対するフリースペースの割合を示す値であってよい。
The dummy
ダミーデータ書込部42は、例えば、BUD30に対して、記憶容量やフリースペース数等を取得するためのコマンドを送信し、当該コマンドに対してBUD30から送信された応答に基づき、フリースペースの利用率FS(N)を算出してもよい。なお、BUD30において算出可能であれば、ダミーデータ書込部42は、BUD30から利用率FS(N)そのものを取得してもよい。フリースペースの利用率の取得手法については、以下の説明においても同様である。
も同様である。
The dummy
The same is true for
そして、ダミーデータ書込部42は、直前からのフリースペースの利用率の差分(FS(N)-FS(N-1))が“0”か(或いは飽和閾値以下か)否か、及び/又は、書き込んだダミーデータの合計が“BU_size”以上か否か、を判定する(ステップS5)。書き込んだダミーデータの合計は、例えば、ダミーデータのサイズXと、書込回数(例示的に、オフセットアドレスNに1を加えた値(N+1)と、の乗算により求められてよい。
Then, the dummy
判定の結果、利用率の差分が“0”(或いは飽和閾値以下)ではなく、且つ、書き込んだダミーデータの合計が“BU_size”以上ではない、と判定した場合(ステップS5でNo)、処理がステップS6に移行する。ステップS6では、ダミーデータ書込部42は、オフセットアドレスNに“1”を加算して、処理がステップS3に移行する。
As a result of the determination, if it is determined that the difference in usage rate is not "0" (or less than the saturation threshold) and the sum of the written dummy data is not greater than "BU_size" (No in step S5), the process is executed. Move to step S6. In step S6, the dummy
一方、判定の結果、利用率の差分が“0”(或いは飽和閾値以下)である、又は、書き込んだダミーデータの合計が“BU_size”以上である、と判定した場合(ステップS5でYes)、ダミーデータ書込部42によるダミーデータ書込処理が終了する。そして、処理がステップS7に移行する。
On the other hand, if it is determined as a result of determination that the difference in usage rate is "0" (or less than the saturation threshold), or that the sum of the written dummy data is greater than or equal to "BU_size" (Yes in step S5), The dummy data writing process by the dummy
ダミーデータ書込処理が終了すると、GC実行制御部43は、消去処理及びGC実行制御処理を行なう。例えば、GC実行制御部43は、消去処理として、記憶部32の例えばバックアップ領域32cにおけるダミーデータ書込済みの領域(ブロック)を消去し、当該領域をフリースペース化する(ステップS7)。
After the dummy data writing process is completed, the GC
また、GC実行制御部43は、GC実行制御処理の実行要否の判断として、ステップS4において最後に取得したFS(N)が、閾値TH1以下か否かを判定する(ステップS8)。閾値TH1は、所定の閾値又は第1の閾値の一例であり、例えば、図5に示す“High_Threshold”であってよい。FS(N)が閾値TH1以下ではないと判定した場合(ステップS8でNo)、GC実行制御部43は、CM2による強制的なGCの実行は不要であると判断し、処理が終了する。
In addition, the GC
一方、FS(N)が閾値TH1以下であると判定した場合(ステップS8でYes)、BUD30に対するGC実行処理(GC実行制御処理)を行ない(ステップS9)、処理が終了する。 On the other hand, if it is determined that FS(N) is equal to or less than the threshold TH1 (Yes in step S8), GC execution processing (GC execution control processing) is performed on the BUD 30 (step S9), and the processing ends.
〔1-3-2〕GC実行処理
次に、図8を参照して、図7のステップS9に示すGC実行処理の動作例を説明する。
[1-3-2] GC Execution Processing Next, an operation example of the GC execution processing shown in step S9 of FIG. 7 will be described with reference to FIG.
図8に例示するように、GC実行制御部43は、変数n=0を設定し(ステップS11)、初期値として、BUD30から現在のフリースペース利用率FSを取得する(ステップS12)。
As illustrated in FIG. 8, the GC
次いで、GC実行制御部43は、BUD30に対して、GCの実行指示を発行する(ステップS13)。実行指示では、例えば、実行期間が指定されてよい。制御部31は、指定された実行期間内において、GCを実行してよい。
Next, the GC
次いで、GC実行制御部43は、BUD30からフリースペースFS(n)を取得し(ステップS14)、FS(n)が閾値TH2を超えたか否かを判定する(ステップS15)。閾値TH2は、第2の閾値の一例であり、例えば、図5に示す“High_Threshold”であってよい。なお、閾値TH2は、図7のステップS8における閾値TH1と同一の値であってもよく、この場合、閾値TH2は、所定の閾値の一例である。
Next, the GC
FS(n)が閾値TH2を超えていないと判定した場合(ステップS15でNo)、GC実行制御部43は、変数nに“1”を加算して(ステップS16)、処理がステップS13に移行する。
When it is determined that FS(n) does not exceed the threshold TH2 (No in step S15), the GC
一方、FS(n)が閾値TH2を超えたと判定した場合(ステップS15でYes)、停電時のバックアップ処理中にフリーブロック数が不足する可能性が低減した(GCが不要な量までフリースペースが増加した)ため、処理が終了する。 On the other hand, if it is determined that FS(n) has exceeded the threshold TH2 (Yes in step S15), the possibility that the number of free blocks will be insufficient during the backup process at the time of a power failure is reduced (free space is increased to an amount that does not require GC). increased), the process ends.
このように、GC実行制御部43は、GCの実行単位時間として特定の実行期間を指定し、フリースペースの残容量が閾値TH2を超えるまで、当該単位時間のGCを繰り返し実行することで、フリースペースの容量(フリーブロック数)を増加させる。
In this way, the GC
なお、ステップS13において、GC実行制御部43が指定するGCの実行期間は、一定の期間であってもよいし、現在のFSや不足するフリーブロック数等に応じて可変の期間であってもよい。例えば、GC実行制御部43は、初期値FSからFS(n)までのフリースペースの増加量(差分)と、FS(n)から閾値TH2までの増加予定量(差分)とに基づいて、ステップS13が到来する都度、実行期間を決定してもよい。
In step S13, the GC execution period designated by the GC
〔1-3-3〕停電検出後処理
次に、図9を参照して、ストレージ装置1(CM2)の停電が検出された後の動作例を説明する。なお、以下の処理は、CM2のバッテリ等の予備電源により実行されるものとする。
[1-3-3] Processing after power failure detection Next, an operation example after a power failure of the storage device 1 (CM2) is detected will be described with reference to FIG. It is assumed that the following processing is executed by a backup power source such as a battery of CM2.
図9に例示するように、CM2は、停電を検出すると、ダミーデータ書込部42によるダミーデータ書込処理を強制終了させる(ステップS21)。また、CM2は、GC実行制御部43によるBUD30に対するGC実行指示を強制停止させる(ステップS22)。上記ステップS21及びS22により、図7に示すGC実施判定処理(図8に示すGC実行処理を含む)の実行が終了又は停止させられる。
As illustrated in FIG. 9, CM2 forcibly terminates the dummy data writing process by the dummy
なお、強制終了又は強制停止は、当該処理が実行されている場合に、当該処理の官僚を待たずに、当該処理を強制的に停止させる又は終了させることを含んでよい。また、強制終了又は強制停止は、当該処理の実行が予定されている場合には、当該処理の実行予定を中止(キャンセル)させることを含んでもよい。 It should be noted that forced termination or forced termination may include forcibly stopping or terminating the processing without waiting for the bureaucracy of the processing when the processing is being executed. Further, forced termination or forced stop may include stopping (cancelling) the scheduled execution of the process when the process is scheduled to be executed.
また、GC実行制御部43は、記憶部32の例えばバックアップ領域32cにおけるダミーデータ書込済みの領域(ブロック)を消去し、当該領域をフリースペース化する(ステップS23)。
Also, the GC
そして、CM2は、停電処理、例えば、バックアップ処理部41によるメモリ20のBUD30へのバックアップ処理を実行し(ステップS24)、処理が終了する。なお、CM2は、例えば、電源切断要因(電源OFF要因)として、「停電」による電源切断であることをBUD30、例えばログメタ書込領域32bに設定し、電源を切断(シャットダウン)してよい。
Then, the
〔1-3-4〕復電後処理
次に、図10を参照して、復電後、すなわち、ストレージ装置1(CM2)への電源供給が再開された場合の動作例を説明する。
[1-3-4] Processing after Power Recovery Next, an operation example after power recovery, that is, when the power supply to the storage apparatus 1 (CM2) is restarted, will be described with reference to FIG.
図10に例示するように、CM2は、復電により電源ONになると、システム起動処理を開始する(ステップS31)。システム起動処理では、CM2は、BUD30の例えばログメタ書込領域32bを参照して、直前の電源切断要因が停電か否かを判定する(ステップS32)。
As illustrated in FIG. 10, when CM2 is powered on due to restoration of power, it starts system boot processing (step S31). In the system startup process, the
直前の電源切断要因が停電であると判定した場合(ステップS32でYes)、バックアップ処理部41は、BUD30からメモリ20に対するデータリストアを実行する(ステップS33)。例えば、バックアップ処理部41は、バックアップ領域32cに格納されたバックアップデータ(停電時にバックアップしたメモリ20の有効なデータ)を読み出してメモリ20に書き込んでよい。
If it is determined that the cause of the power cut immediately before is a power failure (Yes in step S32), the
次いで、GC実行制御部43は、記憶部32のバックアップ領域32cに格納されたバックアップ書込済みの領域(ブロック)を消去する(ステップS34)。
Next, the GC
また、GC実行制御部43は、BUD30に対して、GCの実行指示を行なう(ステップS35)。このように、システム起動のための処理が完了した後、CM2は、GC実行指示処理を行ない、記憶部32における全ての記憶領域のGCを実施することで、システム起動時に、最大限のフリースペースを確保することができる。
The GC
以上により、システム起動処理が完了し(ステップS36)、処理が終了する。 As described above, the system activation process is completed (step S36), and the process ends.
一方、ステップS32において、直前の電源切断要因が停電ではないと判定した場合(ステップS32でNo)、CM2は、電源切断要因に応じた処理を行ない(ステップS37)、処理がステップS36に移行する。 On the other hand, when it is determined in step S32 that the cause of power cut immediately before is not a power failure (No in step S32), CM2 performs processing according to the cause of power cut (step S37), and the process proceeds to step S36. .
〔1-4〕ストレージ装置のハードウェア構成例
図11は、一実施形態の一例としてのストレージ装置1のハードウェア構成例を示すブロック図である。図11に示すように、ストレージ装置1は、例示的に、プロセッサ1a、DRAM1b、フラッシュROM(Read Only Memory)1c、SSD1d、NWIF(Network Interface)1e、及び、チャネルIF1fをそなえてよい。また、ストレージ装置1は、例示的に、デバイスIF1g-1及び1g-2、複数のディスク1h、バッテリ1i、I/O(Input / Output)部1j、並びに、読取部1kをそなえてよい。
[1-4] Hardware Configuration Example of Storage Apparatus FIG. 11 is a block diagram showing a hardware configuration example of a
プロセッサ1aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ1aは、各ブロック1b~1kとバス1pで相互に通信可能に接続されてよい。プロセッサ1aとしては、CPU、MPU、DSP、ASIC、PLD(例えばFPGA)等の集積回路(IC;Integrated Circuit)が用いられてもよい。なお、CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称である。また、ASICはApplication Specific Integrated Circuitの略称であり、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
The
DRAM1bは、種々のデータやプログラムを格納する揮発性メモリの一例である。一実施形態において、DRAM1bの少なくとも一部の記憶領域は、例えば、図示しないホスト装置からディスク1hに対するアクセスに係る種々のデータを一時的に格納するキャッシュとして利用されてよい。
フラッシュROM1cは、種々のデータやプログラム等を格納する不揮発性メモリの一例である。例えば、フラッシュROM1cには、OS(Operating System)やFW、アプリケーション等のプログラム、及び各種データが格納されてよい。フラッシュROM1cとしては、種々の不揮発性メモリ、例えば、NANDフラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。 The flash ROM 1c is an example of a nonvolatile memory that stores various data, programs, and the like. For example, the flash ROM 1c may store an OS (Operating System), FW, programs such as applications, and various data. The flash ROM 1c includes various nonvolatile memories such as NAND flash memory, SCM (Storage Class Memory), ROM (Read Only Memory), and the like.
SSD1dは、種々のデータやプログラム等を格納する不揮発性メモリの一例である。SSD1dは、例示的に、記憶領域に対する種々のアクセスの制御を行なうコントローラ1daをそなえてよい。コントローラ1daとしては、プロセッサ及びメモリを含む集積回路(IC)等が挙げられる。プロセッサとしては、種々の演算処理装置が挙げられる。メモリとしては、種々の揮発性メモリ又は不揮発性メモリが挙げられる。
The
例えば、SSD1dには、OSやFW、アプリケーション等のプログラム、及び各種データが格納されてよい。SSD1dとしては、例えば、SATA、SAS、又はNVMe等のIFに対応した、NANDフラッシュメモリを利用したSSDが挙げられる。SATAは、Serial ATA(Advanced Technology Attachment)の略称であり、SASは、Serial Attached SCSI(Small Computer System Interface)の略称である。NVMeは、Non-Volatile Memory Expressの略称である。なお、SSD1dとして、例えば、3D XPoint(登録商標)技術を採用したIntel Optane SSD(登録商標)のような低レイテンシSSDが用いられてもよい。
For example, the
フラッシュROM1c及びSSD1dの少なくとも一方には、CM2の各種機能の全部若しくは一部を実現するプログラム1mが格納されてもよい。例えば、CM2のプロセッサ1aは、フラッシュROM1cに格納されたFWとしてのプログラム1mを読み出し、DRAM1bに展開して実行することにより、CM2としての機能を実現してよい。或いは、CM2のプロセッサ1aは、SSD1dに格納されたFWとしてのプログラム1mを読み出し、DRAM1b又はフラッシュROM1cに展開して実行することにより、CM2としての機能を実現してもよい。CM2としての機能には、上述した、バックアップ処理部41、ダミーデータ書込部42、及びGC実行制御部43の機能が含まれてよい。
At least one of the flash ROM 1c and the
なお、図2に示す保持部10は、例えば、CM2のDRAM1b、フラッシュROM1c、及びSSD1dの少なくとも1つの記憶領域により実現されてよい。また、図2に示すメモリ20は、例えば、CM2のDRAM1bの記憶領域により実現されてよい。さらに、図2に示すBUD30は、例えば、CM2のSSD1dの記憶領域により実現されてよい。
Note that the holding
NWIF1e及びチャネルIF1fは、それぞれ、LAN(Local Area Network)、及び、SAN(Storage Area Network)との間の接続及び通信の制御等を行なう通信IFの一例である。これらの通信IFは、例えば、LANカード等のIFや、ファイバチャネル(FC;Fibre Channel)等に準拠したIFをそなえてよい。
The
なお、CM2は、管理者の管理端末との間の接続及び通信の制御等を行なう通信IFをそなえてもよく、当該通信IFを用いて、図示しないネットワークからプログラム1mをダウンロードしてもよい。
The
デバイスIF1g-1及び1g-2は、それぞれ、複数のディスク1hとの間の接続及び通信の制御等を行なう通信IFの一例である。デバイスIF1g-1及び1g-2としては、例えば、デバイスアダプタ等のIFや、SASエクスパンダ等のスイッチ装置等が挙げられる。
複数のディスク1hは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、ディスク1hは、図示しないホスト装置等にストレージ装置1の記憶領域を提供する記憶装置として使用されてよい。ディスク1hとしては、例えば、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM、ROM等が挙げられる。一実施形態において、複数のディスク1hは、図2に示すストレージ3を構成する複数のディスク3aの一例である。
A plurality of disks 1h is an example of hardware that stores various data, programs, and the like. For example, the disk 1h may be used as a storage device that provides the storage area of the
バッテリ1iは、ストレージ装置1(CM2)に電力を供給する電源が喪失した場合(停電が発生した場合)に、当該ストレージ装置1(CM2)に対して予備電力を供給する予備電源の一例である。バッテリ1iは、例えば、電源が喪失したことを検出し、当該検出に応じて予備電力の供給を制御する制御回路をそなえてもよい。
The
I/O部1jは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力部、及び、ディスプレイやプリンタ等の出力部、の一方又は双方を含んでよい。読取部1kは、記録媒体1nに記録されたデータやプログラムを読み出しプロセッサ1aに出力するリーダの一例である。読取部1kは、記録媒体1nを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部1kとしては、例えばUSB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体1nにはプログラム1mが格納されてもよい。
The I/
記録媒体1nとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。なお、CDとしては、例示的に、CD-ROM、CD-R、CD-RW等が挙げられる。また、DVDとしては、例示的に、DVD-ROM、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等が挙げられる。
Examples of the
上述したストレージ装置1のハードウェア構成は例示である。従って、ストレージ装置1内、又は、CM2でのハードウェアの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
The hardware configuration of the
例えば、ストレージ3を構成するディスク1hは、CM2或いはストレージ装置1とは別のモジュール、例えばデバイスエンクロージャ(DE;Device Enclosure)として構成されてもよい。また、CM2としてのブロック1a~1kは、ストレージ装置1において冗長化(例えば二重化)されてもよい。なお、ストレージ装置1が複数のCM2をそなえる場合、これらのCM2の各々とストレージ3との間のアクセスパスも冗長化されてよい。また、ストレージ装置1は、例えば、カスケード状に接続(縦列接続)した複数のストレージ3をそなえてもよい。
For example, the disk 1h that configures the
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
[2] Others The technique according to the embodiment described above can be modified and changed as follows.
例えば、図2に示すCM2の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。 For example, each functional block of CM2 shown in FIG. 2 may be combined in an arbitrary combination or divided.
また、一実施形態では、制御装置の一例としてCM2を例に挙げたが、これに限定されるものではない。制御装置としては、例えば、SSD等の不揮発性メモリを停電時のメモリバックアップ先としてそなえる種々の情報処理装置が用いられてもよい。 Also, in one embodiment, the CM2 is used as an example of the control device, but the control device is not limited to this. As the control device, for example, various information processing devices having a nonvolatile memory such as an SSD as a memory backup destination in the event of a power failure may be used.
〔3〕付記
以上の実施形態に関し、更に以下の付記を開示する。
[3] Supplementary Note The following Supplementary Note will be disclosed with respect to the above embodiment.
(付記1)
揮発性メモリと、
停電が発生した場合に実行される前記揮発性メモリ内のデータのバックアップの書き込み先であるバックアップ領域であって、不揮発性メモリに設けられた前記バックアップ領域に対して、動作中における所定のタイミングでダミーデータの書き込みを行なう書込部と、
前記ダミーデータの書き込み結果に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリの空き領域が不足するか否かを判定する判定部と、
前記判定部により前記不揮発性メモリの空き領域が不足すると判定された場合、前記不揮発性メモリが有するコントローラに対して、前記不揮発性メモリの空き領域を増加させる増加処理を実行させる実行信号を送信する送信部と、
をそなえる、制御装置。
(Appendix 1)
volatile memory;
A backup area, which is a write destination for backing up data in the volatile memory that is executed in the event of a power failure, and is written to the backup area provided in the nonvolatile memory at a predetermined timing during operation. a writing unit that writes dummy data;
a determination unit that determines whether or not the free space of the nonvolatile memory is insufficient when the backup of the volatile memory is executed based on the result of writing the dummy data;
When the determination unit determines that the free space of the nonvolatile memory is insufficient, an execution signal is transmitted to the controller of the nonvolatile memory to execute an increase process for increasing the free space of the nonvolatile memory. a transmitter;
control device.
(付記2)
前記判定部は、前記コントローラから前記不揮発性メモリにおける空き領域の残容量の割合を取得し、前記残容量の割合が所定の閾値以下である場合、前記不揮発性メモリの空き領域が不足すると判定する、
付記1に記載の制御装置。
(Appendix 2)
The determination unit acquires a remaining capacity ratio of the free space in the nonvolatile memory from the controller, and determines that the free space in the nonvolatile memory is insufficient when the remaining space ratio is equal to or less than a predetermined threshold. ,
1. The control device according to
(付記3)
前記書込部は、前記バックアップ領域に対して、前記ダミーデータをブロック単位で書き込み、前記ダミーデータの一部であるブロックを前記バックアップ領域に書き込むごとに、前記不揮発性メモリの空き領域の残容量が飽和したか否かを判定し、前記空き領域の残容量が飽和したと判定した場合に、前記ダミーデータの書き込みを終了する、
付記1又は付記2に記載の制御装置。
(Appendix 3)
The writing unit writes the dummy data into the backup area in units of blocks, and writes the remaining capacity of the free area of the nonvolatile memory each time a block that is part of the dummy data is written into the backup area. is saturated, and if it is determined that the remaining capacity of the free space is saturated, the writing of the dummy data is terminated;
The control device according to
(付記4)
前記ダミーデータのデータサイズは、前記揮発性メモリ内のデータのデータサイズ以上のサイズである、
付記1~3のいずれか1項に記載の制御装置。
(Appendix 4)
The data size of the dummy data is equal to or larger than the data size of the data in the volatile memory.
The control device according to any one of
(付記5)
前記停電が発生した場合に、予備電源を利用して、前記バックアップ領域に対して、前記揮発性メモリ内のデータのバックアップを実行するバックアップ部、をさらにそなえる
付記1~4のいずれか1項に記載の制御装置。
(Appendix 5)
5. The method according to any one of
(付記6)
前記停電が発生した場合に、前記バックアップ部による前記バックアップの実行前に、
前記書込部は、前記予備電源を利用して、前記バックアップ領域に対する前記ダミーデータの書き込みを停止し、
前記送信部は、前記予備電源を利用して、前記コントローラに対して、前記増加処理の実行を停止する停止信号を送信するとともに、前記バックアップ領域における前記書込部により前記ダミーデータが書き込まれた記憶領域を空き領域とするための制御信号を送信する、
付記5に記載の制御装置。
(Appendix 6)
When the power failure occurs, before the backup unit executes the backup,
The writing unit uses the standby power supply to stop writing the dummy data to the backup area,
The transmission unit uses the standby power supply to transmit a stop signal for stopping execution of the increase processing to the controller, and the write unit in the backup area writes the dummy data. sending a control signal to make the storage area free;
The control device according to appendix 5.
(付記7)
前記バックアップ部は、前記制御装置への電源投入後において、前回の前記制御装置の電源切断の要因が停電であると判定された場合、前記不揮発性メモリの前記バックアップ領域に格納されたデータを前記揮発性メモリに書き込む、
付記5又は付記6に記載の制御装置。
(Appendix 7)
The backup unit restores the data stored in the backup area of the nonvolatile memory when it is determined that the cause of the previous power cutoff of the control device is a power failure after the power is turned on to the control device. write to volatile memory,
The control device according to appendix 5 or appendix 6.
(付記8)
前記実行信号は、前記増加処理の実行時間を含み、
前記送信部は、前記実行信号により前記増加処理が実行された後の前記不揮発性メモリの空き領域の残容量の割合が所定の割合を超えるまで、前記コントローラに対して、前記実行信号を繰り返し送信する、
付記1~7のいずれか1項に記載の制御装置。
(Appendix 8)
The execution signal includes the execution time of the increase process,
The transmission unit repeatedly transmits the execution signal to the controller until a remaining capacity ratio of the free area of the nonvolatile memory after the increase processing is executed by the execution signal exceeds a predetermined ratio. do,
The control device according to any one of
(付記9)
停電が発生した場合に実行される揮発性メモリ内のデータのバックアップの書き込み先であるバックアップ領域であって、不揮発性メモリに設けられた前記バックアップ領域に対して、動作中における所定のタイミングでダミーデータの書き込みを行ない、
前記ダミーデータの書き込み結果に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリの空き領域が不足するか否かを判定し、
前記不揮発性メモリの空き領域が不足すると判定した場合、前記不揮発性メモリが有するコントローラに対して、前記不揮発性メモリの空き領域を増加させる増加処理を実行させる実行信号を送信する、
処理をコンピュータに実行させる、制御プログラム。
(Appendix 9)
A backup area, which is a write destination for backing up data in a volatile memory that is executed in the event of a power failure. write data,
determining whether the free space of the nonvolatile memory is insufficient when the backup of the volatile memory is executed based on the result of writing the dummy data;
When it is determined that the free space of the nonvolatile memory is insufficient, an execution signal is sent to the controller of the nonvolatile memory to execute an increase process for increasing the free space of the nonvolatile memory.
A control program that causes a computer to execute a process.
(付記10)
前記判定は、前記コントローラから前記不揮発性メモリにおける空き領域の残容量の割合を取得し、前記残容量の割合が所定の閾値以下である場合、前記不揮発性メモリの空き領域が不足すると判定する、
付記9に記載の制御プログラム。
(Appendix 10)
The determination acquires the ratio of the remaining capacity of the free space in the nonvolatile memory from the controller, and determines that the free space of the nonvolatile memory is insufficient when the ratio of the remaining capacity is equal to or less than a predetermined threshold.
The control program according to
(付記11)
前記書き込みは、
前記バックアップ領域に対して、前記ダミーデータをブロック単位で書き込み、前記ダミーデータの一部であるブロックを前記バックアップ領域に書き込むごとに、前記不揮発性メモリの空き領域の残容量が飽和したか否かを判定し、
前記空き領域の残容量が飽和したと判定した場合に、前記ダミーデータの書き込みを終了する、
付記9又は付記10に記載の制御プログラム。
(Appendix 11)
The writing
Each time the dummy data is written to the backup area in units of blocks and a block that is part of the dummy data is written to the backup area, whether or not the remaining capacity of the free area of the nonvolatile memory is saturated. to determine
terminating the writing of the dummy data when it is determined that the remaining capacity of the free space is saturated;
The control program according to
(付記12)
前記ダミーデータのデータサイズは、前記揮発性メモリ内のデータのデータサイズ以上のサイズである、
付記9~11のいずれか1項に記載の制御プログラム。
(Appendix 12)
The data size of the dummy data is equal to or larger than the data size of the data in the volatile memory.
The control program according to any one of
(付記13)
前記停電が発生した場合に、予備電源を利用して、前記バックアップ領域に対して、前記揮発性メモリ内のデータのバックアップを実行する、
処理を前記コンピュータに実行させる、付記9~12のいずれか1項に記載の制御プログラム。
(Appendix 13)
backing up the data in the volatile memory to the backup area using a standby power supply when the power failure occurs;
13. The control program according to any one of
(付記14)
前記停電が発生した場合に、前記バックアップの実行前に、
前記予備電源を利用して、前記バックアップ領域に対する前記ダミーデータの書き込みを停止し、
前記予備電源を利用して、前記コントローラに対して、前記増加処理の実行を停止する停止信号を送信し、
前記バックアップ領域における前記書込部により前記ダミーデータが書き込まれた記憶領域を空き領域とするための制御信号を送信する、
処理を前記コンピュータに実行させる、付記13に記載の制御プログラム。
(Appendix 14)
If the power failure occurs, before executing the backup,
stopping the writing of the dummy data to the backup area using the standby power supply;
using the standby power supply to transmit a stop signal to stop execution of the increase process to the controller;
transmitting a control signal for making the storage area in the backup area, in which the dummy data is written by the writing unit, an empty area;
14. The control program according to appendix 13, which causes the computer to execute a process.
(付記15)
前記コンピュータへの電源投入後において、前回の前記コンピュータの電源切断の要因が停電であると判定した場合、前記不揮発性メモリの前記バックアップ領域に格納されたデータを前記揮発性メモリに書き込む、
付記13又は付記14に記載の制御プログラム。
(Appendix 15)
After powering on the computer, if it is determined that the cause of the previous power-off of the computer was a power failure, the data stored in the backup area of the nonvolatile memory is written to the volatile memory;
The control program according to appendix 13 or appendix 14.
(付記16)
前記実行信号は、前記増加処理の実行時間を含み、
前記実行信号の送信は、前記実行信号により前記増加処理が実行された後の前記不揮発性メモリの空き領域の残容量の割合が所定の割合を超えるまで、前記コントローラに対して、前記実行信号を繰り返し送信する、
付記9~15のいずれか1項に記載の制御プログラム。
(Appendix 16)
The execution signal includes the execution time of the increase process,
The execution signal is transmitted to the controller until the ratio of the remaining capacity of the free area of the nonvolatile memory after the increase processing is executed by the execution signal exceeds a predetermined ratio. send repeatedly,
The control program according to any one of
(付記17)
停電が発生した場合に実行される揮発性メモリ内のデータのバックアップの書き込み先であるバックアップ領域であって、不揮発性メモリに設けられた前記バックアップ領域に対して、動作中における所定のタイミングでダミーデータの書き込みを行ない、
前記ダミーデータの書き込み結果に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリの空き領域が不足するか否かを判定し、
前記不揮発性メモリの空き領域が不足すると判定した場合、前記不揮発性メモリが有するコントローラに対して、前記不揮発性メモリの空き領域を増加させる増加処理を実行させる実行信号を送信する、
制御方法。
(Appendix 17)
A backup area, which is a write destination for backing up data in a volatile memory that is executed in the event of a power failure. write data,
determining whether the free space of the nonvolatile memory is insufficient when the backup of the volatile memory is executed based on the result of writing the dummy data;
When it is determined that the free space of the nonvolatile memory is insufficient, an execution signal is sent to the controller of the nonvolatile memory to execute an increase process for increasing the free space of the nonvolatile memory.
control method.
(付記18)
前記判定は、前記コントローラから前記不揮発性メモリにおける空き領域の残容量の割合を取得し、前記残容量の割合が所定の閾値以下である場合、前記不揮発性メモリの空き領域が不足すると判定する、
付記17に記載の制御方法。
(Appendix 18)
The determination acquires the ratio of the remaining capacity of the free space in the nonvolatile memory from the controller, and determines that the free space of the nonvolatile memory is insufficient when the ratio of the remaining capacity is equal to or less than a predetermined threshold.
The control method according to appendix 17.
(付記19)
前記書き込みは、
前記バックアップ領域に対して、前記ダミーデータをブロック単位で書き込み、前記ダミーデータの一部であるブロックを前記バックアップ領域に書き込むごとに、前記不揮発性メモリの空き領域の残容量が飽和したか否かを判定し、
前記空き領域の残容量が飽和したと判定した場合に、前記ダミーデータの書き込みを終了する、
付記17又は付記18に記載の制御方法。
(Appendix 19)
The writing
Each time the dummy data is written to the backup area in units of blocks and a block that is part of the dummy data is written to the backup area, whether or not the remaining capacity of the free area of the nonvolatile memory is saturated. to determine
terminating the writing of the dummy data when it is determined that the remaining capacity of the free space is saturated;
The control method according to appendix 17 or appendix 18.
(付記20)
前記ダミーデータのデータサイズは、前記揮発性メモリ内のデータのデータサイズ以上のサイズである、
付記17~19のいずれか1項に記載の制御方法。
(Appendix 20)
The data size of the dummy data is equal to or larger than the data size of the data in the volatile memory.
The control method according to any one of Appendices 17-19.
1 ストレージ装置
2 CM
3 ストレージ
3a ディスク
10 保持部
11 制御情報
20 メモリ
30 BUD
31 制御部
32 記憶部
41 バックアップ処理部
42 ダミーデータ書込部
43 GC実行制御部
1
3
31
Claims (6)
停電が発生した場合に実行される前記揮発性メモリ内のデータのバックアップの書き込み先であるバックアップ領域であって、不揮発性メモリに設けられた前記バックアップ領域に対して、動作中における所定のタイミングでダミーデータの書き込みを行なう書込部と、
前記不揮発性メモリが有するコントローラから得られる割合であって、前記ダミーデータの書き込み後の、前記不揮発性メモリの全体の記憶領域に対する、前記不揮発性メモリにおける制御装置が前記不揮発性メモリの記憶領域として認識しない領域と前記制御装置が前記不揮発性メモリの記憶領域として認識する領域のうちのデータが書き込まれていない空き領域とを含むフリースペースの前記割合に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリのフリースペースが不足するか否かを判定する判定部と、
前記判定部により前記不揮発性メモリのフリースペースが不足すると判定された場合、前記コントローラに対して、前記不揮発性メモリのフリースペースを増加させる増加処理であって、前記不揮発性メモリに離散して書き込まれたデータを集めてブロック単位で前記フリースペースに書き込み、前記離散して書き込まれたデータの格納元の複数のブロックを解放して前記フリースペースを増加させる前記増加処理を実行させる実行信号を送信する送信部と、
をそなえる、制御装置。 volatile memory;
A backup area, which is a write destination for backing up data in the volatile memory that is executed in the event of a power failure, and is written to the backup area provided in the nonvolatile memory at a predetermined timing during operation. a writing unit that writes dummy data;
A ratio obtained from a controller that the nonvolatile memory has, and the control device in the nonvolatile memory as the storage area of the nonvolatile memory with respect to the entire storage area of the nonvolatile memory after the dummy data is written Backup of the volatile memory is performed based on the ratio of the free space including the unrecognized area and the empty area in which data is not written in the area recognized by the control device as the storage area of the nonvolatile memory. a determination unit that determines whether or not the free space of the nonvolatile memory is insufficient when
When the determining unit determines that the free space of the nonvolatile memory is insufficient, an increasing process for increasing the free space of the nonvolatile memory for the controller , comprising: an execution signal for executing the increasing process of collecting the data written in the above-mentioned manner and writing the data into the free space in units of blocks, releasing the plurality of blocks that are the storage sources of the discretely written data, and increasing the free space. a transmitter that transmits
control device.
請求項1に記載の制御装置。 The determining unit acquires the ratio from the controller, and determines that the free space of the nonvolatile memory is insufficient when the ratio is equal to or less than a predetermined threshold.
A control device according to claim 1 .
請求項1又は請求項2に記載の制御装置。 The data size of the dummy data is equal to or larger than the data size of the data in the volatile memory.
The control device according to claim 1 or 2 .
前記送信部は、前記実行信号により前記増加処理が実行された後の前記割合が所定の割合を超えるまで、前記コントローラに対して、前記実行信号を繰り返し送信する、
請求項1~3のいずれか1項に記載の制御装置。 The execution signal includes the execution time of the increase process,
The transmission unit repeatedly transmits the execution signal to the controller until the ratio after the increase processing is executed by the execution signal exceeds a predetermined ratio.
A control device according to any one of claims 1 to 3 .
前記不揮発性メモリが有するコントローラから得られる割合であって、前記ダミーデータの書き込み後の、前記不揮発性メモリの全体の記憶領域に対する、前記不揮発性メモリにおけるコンピュータが前記不揮発性メモリの記憶領域として認識しない領域と前記コンピュータが前記不揮発性メモリの記憶領域として認識する領域のうちのデータが書き込まれていない空き領域とを含むフリースペースの前記割合に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリのフリースペースが不足するか否かを判定し、
前記不揮発性メモリのフリースペースが不足すると判定した場合、前記コントローラに対して、前記不揮発性メモリのフリースペースを増加させる増加処理であって、前記不揮発性メモリに離散して書き込まれたデータを集めてブロック単位で前記フリースペースに書き込み、前記離散して書き込まれたデータの格納元の複数のブロックを解放して前記フリースペースを増加させる前記増加処理を実行させる実行信号を送信する、
処理を前記コンピュータに実行させる、制御プログラム。 A backup area, which is a write destination for backing up data in a volatile memory that is executed in the event of a power failure. write data,
A ratio obtained from a controller included in the nonvolatile memory, which is recognized as a storage area of the nonvolatile memory by a computer in the nonvolatile memory with respect to the entire storage area of the nonvolatile memory after the dummy data is written. When the backup of the volatile memory is executed based on the ratio of the free space including the free space where no data is written in the area recognized by the computer as the storage area of the non- volatile memory determines whether the free space of the non-volatile memory is insufficient,
When it is determined that the free space of the non-volatile memory is insufficient, increasing processing for increasing the free space of the non-volatile memory for the controller , wherein the data discretely written to the non-volatile memory are collected and written into the free space in units of blocks, and an execution signal is transmitted to execute the increase process of releasing the plurality of blocks that are the storage sources of the discretely written data and increasing the free space .
A control program that causes the computer to execute processing.
前記不揮発性メモリが有するコントローラから得られる割合であって、前記ダミーデータの書き込み後の、前記不揮発性メモリの全体の記憶領域に対する、前記不揮発性メモリにおけるコンピュータが前記不揮発性メモリの記憶領域として認識しない領域と前記コンピュータが前記不揮発性メモリの記憶領域として認識する領域のうちのデータが書き込まれていない空き領域とを含むフリースペースの前記割合に基づき、前記揮発性メモリのバックアップが実行される場合に前記不揮発性メモリのフリースペースが不足するか否かを判定し、
前記不揮発性メモリのフリースペースが不足すると判定した場合、前記コントローラに対して、前記不揮発性メモリのフリースペースを増加させる増加処理であって、前記不揮発性メモリに離散して書き込まれたデータを集めてブロック単位で前記フリースペースに書き込み、前記離散して書き込まれたデータの格納元の複数のブロックを解放して前記フリースペースを増加させる前記増加処理を実行させる実行信号を送信する、
処理を前記コンピュータが実行する、制御方法。 A backup area, which is a write destination for backing up data in a volatile memory that is executed in the event of a power failure. write data,
A ratio obtained from a controller included in the nonvolatile memory, which is recognized as a storage area of the nonvolatile memory by a computer in the nonvolatile memory with respect to the entire storage area of the nonvolatile memory after the dummy data is written. When the backup of the volatile memory is executed based on the ratio of the free space including the free space where no data is written in the area recognized by the computer as the storage area of the non- volatile memory determines whether the free space of the non-volatile memory is insufficient,
When it is determined that the free space of the non-volatile memory is insufficient, increasing processing for increasing the free space of the non-volatile memory for the controller , wherein the data discretely written to the non-volatile memory are collected and written into the free space in units of blocks, and an execution signal is transmitted to execute the increase process of releasing the plurality of blocks that are the storage sources of the discretely written data and increasing the free space .
A control method in which the computer executes the processing .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018133588A JP7205090B2 (en) | 2018-07-13 | 2018-07-13 | Control device, control program, and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018133588A JP7205090B2 (en) | 2018-07-13 | 2018-07-13 | Control device, control program, and control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020013222A JP2020013222A (en) | 2020-01-23 |
JP7205090B2 true JP7205090B2 (en) | 2023-01-17 |
Family
ID=69169236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018133588A Active JP7205090B2 (en) | 2018-07-13 | 2018-07-13 | Control device, control program, and control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7205090B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014106918A (en) | 2012-11-29 | 2014-06-09 | Canon Inc | Information processing apparatus, and control method and program thereof |
US20170177235A1 (en) | 2015-12-18 | 2017-06-22 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
US20170220292A1 (en) | 2016-02-03 | 2017-08-03 | Kabushiki Kaisha Toshiba | Cooperative physical defragmentation by a file system and a storage device |
JP2018022397A (en) | 2016-08-04 | 2018-02-08 | 富士通株式会社 | Storage control apparatus, storage control method, and storage control program |
-
2018
- 2018-07-13 JP JP2018133588A patent/JP7205090B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014106918A (en) | 2012-11-29 | 2014-06-09 | Canon Inc | Information processing apparatus, and control method and program thereof |
US20170177235A1 (en) | 2015-12-18 | 2017-06-22 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
US20170220292A1 (en) | 2016-02-03 | 2017-08-03 | Kabushiki Kaisha Toshiba | Cooperative physical defragmentation by a file system and a storage device |
JP2018022397A (en) | 2016-08-04 | 2018-02-08 | 富士通株式会社 | Storage control apparatus, storage control method, and storage control program |
Also Published As
Publication number | Publication date |
---|---|
JP2020013222A (en) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5437373B2 (en) | Storage system having multiple flash packages | |
EP2165262B1 (en) | Storage subsystem with configurable buffer | |
US8645750B2 (en) | Computer system and control method for allocation of logical resources to virtual storage areas | |
TWI452462B (en) | Method and system for dynamic storage tiering using allocate-on-write snapshots | |
JP5074601B2 (en) | Storage system having volatile memory and nonvolatile memory | |
US20070208921A1 (en) | Storage system and control method for the same | |
JP6097845B2 (en) | Storage system that backs up data to non-volatile cache memory | |
CN113971137A (en) | Garbage recovery method and device | |
JP2016503927A (en) | Storage system and cache control method | |
CN104583930A (en) | Method of data migration, controller and data migration apparatus | |
US20120102242A1 (en) | Controlling data destaging within a multi-tiered storage system | |
CN111984441B (en) | Instant power-off recovery processing method and device and computer readable storage medium | |
JP2019169101A (en) | Electronic apparatus, computer system, and control method | |
JP2018010557A (en) | Storage system and management device | |
JP2008299559A (en) | Storage system and data transfer method for storage system | |
US11288197B2 (en) | Method and apparatus for performing pipeline-based accessing management in a storage server | |
US9047232B2 (en) | Storage apparatus and controlling method for data transmission based on control information | |
JP7205090B2 (en) | Control device, control program, and control method | |
JP5594647B2 (en) | Storage apparatus and control method thereof | |
WO2014147786A1 (en) | Storage system and data management method | |
WO2018142622A1 (en) | Computer | |
JP5768118B2 (en) | Storage system having multiple flash packages | |
US9836359B2 (en) | Storage and control method of the same | |
KR20110041843A (en) | Hybrid storage device and operating method for the same | |
JP6867586B2 (en) | Storage device, storage device control program, and storage device control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20190607 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220517 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220714 |
|
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: 20221129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7205090 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |