JP7205090B2 - Control device, control program, and control method - Google Patents

Control device, control program, and control method Download PDF

Info

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
Application number
JP2018133588A
Other languages
Japanese (ja)
Other versions
JP2020013222A (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 JP2018133588A priority Critical patent/JP7205090B2/en
Publication of JP2020013222A publication Critical patent/JP2020013222A/en
Application granted granted Critical
Publication of JP7205090B2 publication Critical patent/JP7205090B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

特開2013-200726号公報JP 2013-200726 A 特開2016-192025号公報JP 2016-192025 A 特開2013-61799号公報JP 2013-61799 A

ここで、停電時のバックアップでは、不揮発性メモリの格納領域に対して、揮発性メモリ内のデータがブロック単位でシーケンシャルに書き込まれる。このとき、格納領域において、バックアップの書込先となる空きブロックの不足が発生した場合、不揮発性メモリが自律的に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.

GCの動作の一例を説明する図である。It is a figure explaining an example of operation|movement of GC. 一実施形態の一例としてのストレージ装置の機能構成例を示すブロック図である。1 is a block diagram showing a functional configuration example of a storage device as one example of an embodiment; FIG. 図2に示す記憶部のデータ構成例を示す図である。3 is a diagram showing a data configuration example of a storage unit shown in FIG. 2; FIG. 図2に示す記憶部における物理記憶ブロックの状態の一例を示す図である。3 is a diagram showing an example of the state of physical storage blocks in the storage unit shown in FIG. 2; FIG. 一実施形態に係るGCの実行条件の一例を示す図である。FIG. 4 is a diagram illustrating an example of GC execution conditions according to an embodiment; ダミーデータの書き込みによるフリースペースの残容量の変化の一例を示す図である。FIG. 10 is a diagram showing an example of change in free space remaining capacity due to writing of dummy data; 一実施形態に係るCM(Controller Module)によるGC実施判定処理の動作例を示すフローチャートである。7 is a flowchart showing an operation example of GC execution determination processing by a CM (Controller Module) according to one embodiment; 図7に示すGC実行処理の動作例を示すフローチャートである。FIG. 8 is a flowchart showing an operation example of the GC execution process shown in FIG. 7; FIG. 一実施形態に係るCMによる停電検出後処理の動作例を示すフローチャートである。6 is a flow chart showing an operation example of post-power failure detection processing by CM according to one embodiment. 一実施形態に係るCMによる復電後処理の動作例を示すフローチャートである。7 is a flowchart showing an operation example of post-power-recovery processing by a CM according to one embodiment; 一実施形態に係るストレージ装置のハードウェア構成例を示すブロック図である。2 is a block diagram showing a hardware configuration example of a storage device according to one embodiment; FIG.

以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。 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 process 1, data is read, erased, changed, and written in block units, which causes a decrease in data writing speed. Therefore, the controller performs block alternation processing. For example, when writing data, if there is an erased empty block, the controller omits erasing of the block in REMW and writes the changed block data to the empty block so that the waiting time for erasing is reduced. to reduce the time required for It should be noted that the controller erases the blocks for which erasing is omitted at a predetermined timing, and uses the blocks as empty blocks for the next writing. In the following description, empty blocks may also be referred to as spare blocks or free blocks.

(処理3)
処理1及び処理2におけるデータの書き込みや消去が繰り返されると、SSDの格納領域には、有効なデータが複数のブロック上で離散して格納された状態になり、予備ブロックが減少することがある。そこで、SSDのコントローラは、空きブロックが一定量(一定数)以下になった場合、上述したGC動作を行なう。
(Processing 3)
If the data writing and erasing in process 1 and process 2 are repeated, the storage area of the SSD will be in a state where valid data is stored discretely in multiple blocks, and the number of spare blocks may decrease. . Therefore, the controller of the SSD performs the above-described GC operation when the number of empty blocks becomes equal to or less than a certain amount (fixed number).

図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 (processing 1 and processing 2 occur). If a power outage occurs in the storage device during the writing of the log, a large amount of data is written continuously in the backup write operation. Write speed slows down.

また、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 storage apparatus 1 according to one embodiment will be described with reference to FIG. The storage device 1 is an example of an information processing device, and may include a CM 2 and a storage 3 as illustrated in FIG.

ストレージ3は、ストレージ装置1により図示しないホスト装置等に対して提供される記憶領域を有する。例えば、ストレージ3は、複数のディスク3aをそなえてよい。例えば、ストレージ3は、複数のディスク3aによりRAID等のディスクアレイを構成してもよい。 The storage 3 has a storage area provided by the storage device 1 to a host device or the like (not shown). For example, the storage 3 may have multiple disks 3a. For example, the storage 3 may configure a disk array such as RAID with a plurality of disks 3a.

CM2は、ストレージ制御装置又は制御装置の一例である。CM2は、例えば、ストレージ装置1を制御し、図示しないホスト装置に対して、ストレージ3の記憶領域を提供するための種々の制御を行なってよい。なお、以下の説明において、ホスト装置からストレージ装置1に対して発行されたストレージ3へのアクセス要求に基づき、CM2が実行するストレージ3へのアクセスに係る処理を、「ホストI/O」と表記する場合がある。 CM2 is an example of a storage controller or controller. The CM 2 may, for example, control the storage device 1 and perform various controls for providing storage areas of the storage 3 to a host device (not shown). In the following description, processing related to access to the storage 3 executed by the CM 2 based on an access request to the storage 3 issued from the host device to the storage device 1 is referred to as "host I/O". sometimes.

図2に示すように、CM2は、例示的に、保持部10、メモリ20、BUD30、バックアップ処理部41、ダミーデータ書込部42、及びGC実行制御部43をそなえてよい。 As shown in FIG. 2, the CM 2 may exemplarily include a holding unit 10, a memory 20, a BUD 30, a backup processing unit 41, a dummy data writing unit 42, and a GC execution control unit 43.

保持部10は、CM2の制御に用いられる種々の情報を記憶するメモリ部の一例であり、例えば、制御情報11を記憶してよい。制御情報11は、例えば、後述するダミーデータ書込部42及びGC実行制御部43の処理に利用される閾値(TH1、TH2)等の種々のパラメータを含んでよい。 The holding unit 10 is an example of a memory unit that stores various information used for controlling the CM 2, and may store control information 11, for example. The control information 11 may include, for example, various parameters such as threshold values (TH1, TH2) that are used in processing of the dummy data writing unit 42 and the GC execution control unit 43, which will be described later.

メモリ20は、CM2の動作に用いられる種々の情報を記憶する揮発性メモリの一例である。一実施形態において、メモリ20は、ストレージ装置1(CM2)の停電が発生した際に実行されるバックアップの対象(バックアップ元)である。 The memory 20 is an example of a volatile memory that stores various information used for the operation of CM2. In one embodiment, the memory 20 is a backup target (backup source) that is executed when a power failure occurs in the storage device 1 (CM2).

メモリ20は、例えば、ストレージ装置1(CM2)の停電後、再起動された際に、ストレージ装置1(CM2)の動作を再開するために使用される動作再開情報を記憶してよい。動作再開情報としては、例えば、CM2が停電発生の直前に実行していた処理の制御情報や、ホストI/Oに係るキャッシュの情報等が挙げられる。 The memory 20 may store operation restart information used for restarting the operation of the storage device 1 (CM2), for example, when the storage device 1 (CM2) is restarted after a power failure. The operation restart information includes, for example, control information of the process that the CM 2 was executing immediately before the power failure occurred, cache information related to host I/O, and the like.

BUD30は、CM2の動作に用いられる種々の情報を記憶する不揮発性メモリの一例である。一実施形態において、BUD30は、ストレージ装置1(CM2)の停電が発生した際に実行されるバックアップの格納(退避)先(バックアップ先)である。 The BUD 30 is an example of non-volatile memory that stores various information used for the CM 2 operation. In one embodiment, the BUD 30 is a storage (saving) destination (backup destination) for backup executed when a power failure occurs in the storage device 1 (CM2).

BUD30は、制御部31及び記憶部32をそなえてよい。制御部31は、BUD30のコントローラの一例であり、記憶部32に対して、上述した(処理1)~(処理3)、例えば、REMWの制御、ブロックの交代処理の制御、及び、GC処理の制御、等を行なってよい。GC処理の制御は、記憶部32のフリースペースの残容量に応じて、BUD30が主導で実行されてよい。 The BUD 30 may have a control section 31 and a storage section 32 . The control unit 31 is an example of a controller for the BUD 30, and controls the storage unit 32 to perform the above-described (processing 1) to (processing 3), for example, control of REMW, control of block replacement processing, and control of GC processing. control, etc. Control of GC processing may be executed under the leadership of the BUD 30 according to the remaining capacity of the free space in the storage unit 32 .

記憶部32は、BUD30の記憶領域であって、図3に例示するように、論理ブロックとして、FW格納領域32a、ログメタ書込領域32b、バックアップ領域32c、空き領域32d、及び不可視領域32eを有してよい。なお、これらの領域32a~32eは、それぞれ、連続した論理アドレスによる論理アドレス範囲として表されてもよい。 The storage unit 32 is a storage area of the BUD 30, and has a FW storage area 32a, a log meta write area 32b, a backup area 32c, an empty area 32d, and an invisible area 32e as logical blocks, as illustrated in FIG. You can Each of these areas 32a to 32e may be represented as a logical address range by consecutive logical addresses.

FW格納領域32aは、CM2の動作を実現するFWを格納する記憶領域であり、ログメタ書込領域32bは、システムの動作ログ等を格納する記憶領域である。バックアップ領域32cは、CM2の停電が発生した場合にCM2の予備電源を利用して実行されるメモリ20内のデータのバックアップの書き込み先の記憶領域である。不可視領域32eは、BUD30の容量としてCM2からは認識されない領域であり、制御部31により、データが未書き込みである空き領域32dとともに、フリーブロックとして使用されてよい。 The FW storage area 32a is a storage area for storing FW that implements the operation of the CM 2, and the log meta writing area 32b is a storage area for storing system operation logs and the like. The backup area 32c is a storage area for writing a backup of data in the memory 20 that is executed using the standby power supply of the CM2 in the event of a power failure of the CM2. The invisible area 32e is an area that is not recognized by the CM 2 as the capacity of the BUD 30, and may be used by the control unit 31 as a free block together with the empty area 32d in which data has not yet been written.

次に、図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 storage unit 32, in other words, the areas 32a to 32e shown in FIG. 3 will be described.

図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 FW storage area 32a, and the block enclosed by (b) is used as the log meta writing area 32b. Furthermore, the blocks enclosed by (c) are used as the backup area 32c, and the blocks enclosed by (d) are used as the free area 32d. These areas are visible areas calculated as the storage capacity of the storage unit 32 . On the other hand, a block enclosed by (e) indicates an invisible area 32e that is not calculated as the storage capacity of the storage unit 32. FIG.

なお、図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 BUD 30, the control unit 31 processes GC, block alternation processing, erasure, etc. in the background. In this process, the logical addresses and the physical blocks shown in FIG. 4 are converted sequentially, so the logical-physical allocation in the visible area and the invisible area changes over time. Therefore, as shown in FIG. 4, logical addresses may not be assigned to consecutive physical blocks.

バックアップ処理部41は、CM2に電力を供給する電源(外部電源)の喪失をCM2が検出した(停電を検出した)場合に、バッテリ等の予備電源を利用して、BUD30のバックアップ領域32cに対して、メモリ20のバックアップを行なう。バックアップの対象となるデータは、例えば、停電が検出されたときにメモリ20が記憶する有効なデータであってよい。 When the CM 2 detects loss of the power supply (external power supply) that supplies power to the CM 2 (detects a power failure), the backup processing unit 41 uses a backup power supply such as a battery to restore the backup area 32c of the BUD 30. Then, the memory 20 is backed up. The data to be backed up may be, for example, valid data stored by the memory 20 when a power failure is detected.

なお、バックアップが完了すると、CM2は、例えば「停電」等の動作停止要因(電源切断要因)をBUD30のログメタ書込領域32b、或いは、他の不揮発性メモリ等に格納して、動作を停止してよい。また、外部電源の復旧により、CM2に外部電力が再投入されると、バックアップ処理部41は、前回の動作停止要因を参照し、停電であった場合、BUD30のバックアップ領域32cからデータをメモリ20に書き戻してよい。これにより、CM2は、停電が検出されたときのメモリ20の状態を復元してからシステム動作を再開できる。 Note that when the backup is completed, the CM 2 stores an operation stop factor (power-off factor) such as "power failure" in the log meta write area 32b of the BUD 30 or other non-volatile memory, etc., and stops the operation. you can When external power is restored to the CM 2 and external power is restored, the backup processing unit 41 refers to the cause of the previous operation stoppage. can be written back to As a result, the CM 2 can resume system operation after restoring the state of the memory 20 when the power failure was detected.

このように、バックアップ処理部41は、CM2の停電が発生した場合に、予備電源を利用して、バックアップ領域32cに対して、メモリ20内のデータのバックアップを実行するバックアップ部の一例である。 In this way, the backup processing unit 41 is an example of a backup unit that backs up data in the memory 20 to the backup area 32c using the standby power supply when a power failure occurs in CM2.

ここで、CM2は、CM2における動作ログを定期的にBUD30のログメタ書込領域32bに書き込む。このため、動作ログの書き込み等により、記憶部32は、図4に例示するような歯抜けにライトされた状態になることがある。 Here, CM2 periodically writes the operation log in CM2 to the log meta write area 32b of the BUD30. For this reason, due to the writing of the operation log, etc., the storage unit 32 may be in a state in which the data is written to the memory unit 32 as shown in FIG.

図4に例示する状態において、例えば、停電によりバックアップ処理部41がバックアップ処理を実行している間に、記憶部32のフリースペースの残容量が、“Low_Threshold”(閾値)以下となった場合を想定する(図5参照)。この場合、上述したように、BUD30においては、制御部31による内部制御としてのGCが実行され得るため、バックアップ処理におけるBUD30に対する書き込み性能が低下することになる。 In the state illustrated in FIG. 4, for example, while the backup processing unit 41 is performing backup processing due to a power failure, the remaining capacity of the free space in the storage unit 32 becomes equal to or less than "Low_Threshold" (threshold). Suppose (see FIG. 5). In this case, as described above, in the BUD 30, the GC as internal control by the control unit 31 can be executed, so the performance of writing to the BUD 30 in the backup process is degraded.

一実施形態においては、以下の手法によって、バックアップ処理の実行中に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 BUD 30 during backup processing.

ダミーデータ書込部42は、CM2の動作中、定期的に、BUD30に対して記憶部32のバックアップ領域32cに対するダミーデータの書き込み指示を発行することで、バックアップ領域32cに対してダミーデータの書き込みを行なう。CM2の動作中とは、例えば、停電が発生しておらず、外部電源からCM2に正常に給電が行なわれている状態、換言すれば、CM2の正常稼働中を意味してよい。 The dummy data writing unit 42 periodically issues an instruction to write dummy data to the backup area 32c of the storage unit 32 to the BUD 30 during operation of the CM 2, thereby writing dummy data to the backup area 32c. do The state in which CM2 is operating may mean, for example, a state in which no power failure has occurred and power is being supplied to CM2 normally from an external power source, in other words, the state in which CM2 is operating normally.

例えば、ダミーデータ書込部42は、以下のダミーデータ書込処理を行なってよい。ダミーデータ書込処理は、例示的に、バックアップ領域32cに対する一定容量のダミーデータを書き込む書き込み処理、BUD30のフリースペースの残容量に基づきダミー書き込みの終了条件を満たすか否かを判定する判定処理、を含んでよい。 For example, dummy data writing unit 42 may perform the following dummy data writing process. The dummy data write process includes, for example, a write process of writing a certain amount of dummy data to the backup area 32c, a determination process of determining whether or not the dummy write end condition is satisfied based on the remaining capacity of the free space of the BUD 30, may contain

なお、ダミーデータは、どのようなデータであってもよく、例示的に、実際のメモリ20内のデータ、ランダムデータ、オール“0”又は“1”、等であってよい。また、書き込まれるダミーデータの一定容量としては、例えば、1ブロック~数ブロック又は数十ブロック等のサイズであってよい。 Note that the dummy data may be any data, such as actual data in the memory 20, random data, all "0" or "1", and the like. Also, the fixed capacity of dummy data to be written may be, for example, a size of one block to several blocks or several tens of blocks.

ダミーデータ書込処理の終了条件としては、例えば、以下の(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 data writing unit 42 may repeatedly execute a set of writing processing and determination processing until it is determined that at least one of these end conditions is satisfied. Incidentally, when it is determined that the termination condition is satisfied, the dummy data writing unit 42 may terminate (stop) the dummy data writing process.

(I)書き込みを行なったダミーデータの総量が、バックアップ対象であるメモリ20の有効データの容量に達したこと。 (I) The total amount of written dummy data has reached the capacity of valid data in the memory 20 to be backed up.

上記(I)の終了条件を満たす場合、ダミーデータ書込部42は、例えば、現在のメモリ20の有効データの容量に相当する(或いはそれ以上の)サイズのダミーデータを、バックアップ領域32cに対して書き込んだ(ダミーバックアップした)といえる。これにより、停電時に実行されるバックアップ処理によるBUD30のフリー(予備)ブロックの使用状態を疑似的に作り出すことができ、フリーブロックの残容量を予測することができる。 If the termination condition (I) above is satisfied, the dummy data writing unit 42 writes dummy data of a size equivalent to (or larger than) the current capacity of valid data in the memory 20 to the backup area 32c, for example. It can be said that the data was written (dummy backup). As a result, it is possible to create a pseudo state of use of the free (backup) blocks of the BUD 30 due to backup processing executed at the time of a power failure, and to predict the remaining capacity of the free blocks.

(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 storage unit 32. .

“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 BUD 30, which is an example of a device, may take the lead in performing GC.

図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 control unit 31 of the BUD 30 writes dummy data to the backup area 32c in response to an instruction from the dummy data writing unit 42, and backs up page combination, GC, block replacement, etc. to the invisible area 32e. Do it on the ground. Thus, in writing dummy data, erasing and writing of blocks are repeated.

このため、記憶部32においては、フリースペースが枯渇せず(残容量が“0”にならず)、最小でも不可視領域32e分のフリースペースが残ることになる。従って、ダミーデータ書込部42による書込処理及び判定処理が繰り返し実行されると、記憶部32では、フリーブロック数が、ダミーデータ以外の記憶部32の空き容量とバックアップ領域32cの空き容量との合計容量に飽和することになる。 Therefore, in the storage unit 32, the free space is not exhausted (the remaining capacity does not become "0"), and at least the free space for the invisible region 32e remains. Therefore, when the writing process and the determination process by the dummy data writing unit 42 are repeatedly executed, in the storage unit 32, the number of free blocks is equal to the free space of the storage unit 32 other than the dummy data and the free space of the backup area 32c. will saturate the total capacity of

上記(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 data writing unit 42 stops the dummy data writing process when the termination condition (II) is satisfied. good.

なお、ダミーデータ書込部42は、上記(II)の判定において、例えば、書込処理によるフリーブロックの残容量の変化量(今回の書き込みによる残容量と前回の書き込みによる残容量との差分)が、“0”となった場合に、残容量が飽和したと判定してよい。なお、他の例では、ダミーデータ書込部42は、変化量が飽和閾値以下となった場合に、残容量が飽和したと判定してもよい。飽和閾値としては、一例として、数%未満の値であってよい。 Note that the dummy data writing unit 42 determines, for example, the amount of change in the remaining capacity of the free block due to the writing process (difference between the remaining capacity due to the current writing and the remaining capacity due to the previous writing) in the determination of (II) above. becomes "0", it may be determined that the remaining capacity is saturated. Note that, in another example, the dummy data writing unit 42 may determine that the remaining capacity is saturated when the amount of change is equal to or less than the saturation threshold. As an example, the saturation threshold may be a value less than several percent.

また、ダミーデータ書込部42は、停電が発生した場合には、バックアップ処理部41により実行されるバックアップ処理に先立って、ダミーデータの書き込みを停止してよい。これにより、停電時のバックアップ処理中に、ダミーデータ書込部42によるダミーバックアップが実行されることを抑止できる。 Further, when a power failure occurs, the dummy data writing unit 42 may stop writing dummy data prior to the backup processing executed by the backup processing unit 41 . As a result, it is possible to prevent the dummy data writing unit 42 from executing the dummy backup during the backup process at the time of power failure.

以上のように、ダミーデータ書込部42は、BUD30に設けられたバックアップ領域32cに対して、動作中における所定のタイミングでダミーデータの書き込みを行なう書込部の一例である。このバックアップ領域32cは、停電が発生した場合に実行される揮発性メモリ内のデータのバックアップの書き込み先であるバックアップ領域である。 As described above, the dummy data writing unit 42 is an example of a writing unit that writes dummy data to the backup area 32c provided in the BUD 30 at a predetermined timing during operation. This backup area 32c is a backup area to which backup of data in the volatile memory is written when a power failure occurs.

GC実行制御部43は、ダミーデータ書込部42によるダミーデータ書込処理の実行結果に基づいて、CM2が主導となるGCの実行制御を行なう。 The GC execution control unit 43 performs GC execution control led by the CM 2 based on the execution result of the dummy data writing process by the dummy data writing unit 42 .

例えば、GC実行制御部43は、ダミーデータ書込処理が終了したときのフリースペースに基づき、停電時のバックアップ処理中にBUD30においてフリーブロックの不足によるデバイス自己判断でのGC動作が発生するか否かを判定してよい。 For example, the GC execution control unit 43 determines whether or not the GC operation will occur based on the device's own judgment due to the lack of free blocks in the BUD 30 during the backup process at the time of a power failure, based on the free space when the dummy data write process is completed. You can judge whether

一例として、GC実行制御部43は、ダミーデータ書込処理の終了後のフリースペースの残容量が、図5に例示する“High_Threshold”以下(“Host Initiated GC”又は“Device Initiated GC”の範囲)であるか否かを判定してよい。 As an example, the GC execution control unit 43 determines that the remaining capacity of the free space after completion of the dummy data write process is equal to or lower than the "High_Threshold" illustrated in FIG. 5 (range of "Host Initiated GC" or "Device Initiated GC"). It may be determined whether or not

残容量が“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 execution control unit 43 determines (predicts) that the remaining capacity of the free space is in the range of "Host Initiated GC" or "Device Initiated GC" during backup processing at power failure. and may be controlled to perform GC.

一例として、GC実行制御部43は、フリースペースの残容量が“High_Threshold”よりも大きくなる(“No GC”の範囲になる)まで、BUD30に対して、以下のGC実行制御処理を行なってよい。GC実行制御処理は、例えば、BUD30に対するGCの実行時間(例えば一定時間)を指定したGC実行指示の送信処理、及び、GC完了後にBUD30のフリースペースの残容量が“High_Threshold”を超えたか否かを判定する判定処理、を含んでよい。 As an example, the GC execution control unit 43 may perform the following GC execution control processing on the BUD 30 until the free space remaining capacity becomes greater than the "High_Threshold" (becomes the range of "No GC"). . GC execution control processing includes, for example, processing for transmitting a GC execution instruction specifying a GC execution time (for example, a fixed time) to the BUD 30, and whether or not the remaining free space of the BUD 30 exceeds the "High_Threshold" after GC is completed. may include determination processing for determining the

例えば、GC実行制御部43は、GC実行制御処理において、BUD30のフリースペースの残容量(割合)が所定の割合、例えば“High_Threshold”を超えるまで、送信処理及び判定処理の組(セット)を繰り返し実行してよい。 For example, in the GC execution control process, the GC execution control unit 43 repeats a set of transmission processing and determination processing until the remaining capacity (ratio) of the free space of the BUD 30 exceeds a predetermined ratio, for example, "High_Threshold". can be executed.

このように、ダミーデータ書込処理が完了したときに、フリーブロックの残容量が所定の閾値よりも少ない場合、バックアップ処理(書き込み)中に、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 BUD 30 will initiate GC in the BUD 30 during the backup process (write). be. Therefore, the GC execution control unit 43 instructs the BUD 30 to forcibly execute GC.

このように、ダミーデータ書込部42及びGC実行制御部43によれば、ダミーバックアップによって、停電時のバックアップ処理中に不足するフリーブロック数(総容量)を予測することができる。 As described above, the dummy data writing unit 42 and the GC execution control unit 43 can predict the number of free blocks (total capacity) that will be insufficient during the backup process at the time of a power failure.

なお、上述した説明では、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 execution control unit 43, but it is not limited to this. For example, the GC execution control unit 43 may use "Low_Threshold" (for example, the range of "Device Initiated GC") or a value between "Low_Threshold" and "High_Threshold" as the predetermined threshold.

また、GC実行制御部43は、ダミーデータ書込部42によるダミーデータ書込処理(ダミーバックアップ)によってバックアップ領域32cに書き込まれたブロックを消去する消去処理を行なってよい。消去処理は、GC実行制御処理の前に実行されてもよい。 In addition, the GC execution control unit 43 may perform erasing processing for erasing blocks written in the backup area 32c by dummy data writing processing (dummy backup) by the dummy data writing unit 42 . The deletion process may be executed before the GC execution control process.

さらに、GC実行制御部43は、停電が発生した場合には、バックアップ処理部41により実行されるバックアップ処理に先立って、BUD30に対して、GC動作を抑止させるGC抑止指示(停止指示)を送信してよい。また、GC実行制御部43は、バックアップ領域32cにおけるダミーデータが書き込まれた記憶領域を空き領域とするための指示(制御信号)を送信してよい。これらの指示により、停電時のバックアップ処理中に、GC実行制御部43からの指示によるGCの実行を抑止でき、また、フリースペースを増加させることができるため、バックアップ処理の書込速度の向上を図ることができる。 Furthermore, when a power failure occurs, the GC execution control unit 43 transmits a GC inhibition instruction (stop instruction) to the BUD 30 to inhibit the GC operation prior to the backup processing executed by the backup processing unit 41. You can Further, the GC execution control unit 43 may transmit an instruction (control signal) to make the storage area in which the dummy data is written in the backup area 32c an empty area. By these instructions, it is possible to suppress the execution of GC according to the instruction from the GC execution control unit 43 during the backup process at the time of power failure, and to increase the free space, so that the writing speed of the backup process can be improved. can be planned.

このように、GC実行制御部43は、ダミーデータの書き込み結果に基づき、メモリ20のバックアップが実行される場合にBUD30の空き領域が不足するか否かを判定する判定部の一例である。 As described above, the GC execution control unit 43 is an example of a determination unit that determines whether or not the free space of the BUD 30 is insufficient when the memory 20 is backed up based on the result of writing dummy data.

また、GC実行制御部43は、BUD30の空き領域が不足すると判定した場合、BUD30が有する制御部31に対して、GCを実行させる実行信号を送信する送信部の一例である。なお、一実施形態において、GCは、BUD30の空き領域を増加させる増加処理の一例である。 Also, the GC execution control unit 43 is an example of a transmission unit that transmits an execution signal for executing GC to the control unit 31 of the BUD 30 when it is determined that the BUD 30 has insufficient free space. Note that in one embodiment, GC is an example of an increase process for increasing the free space of the BUD 30 .

以上のように、一実施形態に係る手法によれば、バックアップ先であるBUD30の制御部31ではなく、バックアップを制御するCM2が、BUD30においてGCを実施するか否かを判定する。そして、CM2は、GCを実施すると判断した場合、停電時に制御部31によりGCが実行されることを抑止するために、事前に制御部31にGCを実施させるように制御する。 As described above, according to the method according to one embodiment, the CM 2 that controls the backup, not the control unit 31 of the BUD 30 that is the backup destination, determines whether or not to perform GC in the BUD 30 . Then, when the CM 2 determines to perform GC, it controls the control unit 31 to perform GC in advance in order to prevent the control unit 31 from performing GC during a power failure.

これにより、停電発生により実行されるメモリバックアップ処理によるBUD30での書き込み処理において、BUD30の自律動作によるGCの実施を回避できるため、バックアップ時間の高速化、及び、予備電源であるバッテリの容量削減を図ることができる。 As a result, it is possible to avoid performing GC by the autonomous operation of the BUD 30 in the write processing in the BUD 30 by the memory backup processing that is executed when a power failure occurs. can be planned.

〔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 data writing unit 42 executes dummy data writing processing. For example, the dummy data writing unit 42 acquires the data size "BU_Size" to be backed up in the memory 20 from the memory 20 (step S1), and sets N=0 as the write offset address N (step S2). ).

次いで、ダミーデータ書込部42は、BUD30のバックアップ領域32cのオフセットアドレスNに対して、一定容量(例えばサイズX)のダミーデータを積極的に書き込む(ステップS3)。 Next, the dummy data writing unit 42 positively writes dummy data of a certain capacity (for example, size X) to the offset address N of the backup area 32c of the BUD 30 (step S3).

ダミーデータ書込部42は、BUD30からフリースペースの利用率FS(N)を取得する(ステップS4)。利用率FS(N)は、例えば、オフセットアドレスNに対してダミーデータを書き込んだ後の、記憶部32における(全体の)記憶容量に対するフリースペースの割合を示す値であってよい。 The dummy data writing unit 42 acquires the free space utilization rate FS(N) from the BUD 30 (step S4). The utilization rate FS(N) may be, for example, a value indicating the ratio of the free space to the (total) storage capacity in the storage unit 32 after dummy data is written to the offset address N.

ダミーデータ書込部42は、例えば、BUD30に対して、記憶容量やフリースペース数等を取得するためのコマンドを送信し、当該コマンドに対してBUD30から送信された応答に基づき、フリースペースの利用率FS(N)を算出してもよい。なお、BUD30において算出可能であれば、ダミーデータ書込部42は、BUD30から利用率FS(N)そのものを取得してもよい。フリースペースの利用率の取得手法については、以下の説明においても同様である。
も同様である。
The dummy data writing unit 42, for example, transmits a command for acquiring the storage capacity, the number of free spaces, etc. to the BUD 30, and uses the free space based on the response transmitted from the BUD 30 in response to the command. A rate FS(N) may be calculated. Note that the dummy data writing unit 42 may acquire the utilization rate FS(N) itself from the BUD 30 if it can be calculated in the BUD 30 . The method of obtaining the free space utilization rate is the same in the following description.
The same is true for

そして、ダミーデータ書込部42は、直前からのフリースペースの利用率の差分(FS(N)-FS(N-1))が“0”か(或いは飽和閾値以下か)否か、及び/又は、書き込んだダミーデータの合計が“BU_size”以上か否か、を判定する(ステップS5)。書き込んだダミーデータの合計は、例えば、ダミーデータのサイズXと、書込回数(例示的に、オフセットアドレスNに1を加えた値(N+1)と、の乗算により求められてよい。 Then, the dummy data writing unit 42 determines whether or not the difference (FS(N)-FS(N-1)) in the utilization rate of the free space from immediately before is "0" (or is equal to or less than the saturation threshold), and/or Alternatively, it is determined whether or not the sum of the written dummy data is equal to or greater than "BU_size" (step S5). The total amount of written dummy data may be obtained, for example, by multiplying the dummy data size X by the number of times of writing (for example, a value (N+1) obtained by adding 1 to the offset address N).

判定の結果、利用率の差分が“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 data writing unit 42 adds "1" to the offset address N, and the process proceeds to step S3.

一方、判定の結果、利用率の差分が“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 data writing unit 42 ends. Then, the process moves to step S7.

ダミーデータ書込処理が終了すると、GC実行制御部43は、消去処理及びGC実行制御処理を行なう。例えば、GC実行制御部43は、消去処理として、記憶部32の例えばバックアップ領域32cにおけるダミーデータ書込済みの領域(ブロック)を消去し、当該領域をフリースペース化する(ステップS7)。 After the dummy data writing process is completed, the GC execution control unit 43 performs the erasing process and the GC execution control process. For example, as the erasing process, the GC execution control unit 43 erases an area (block) in which dummy data has been written in, for example, the backup area 32c of the storage unit 32 to make the area free space (step S7).

また、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 execution control unit 43 determines whether or not FS(N) finally obtained in step S4 is equal to or less than the threshold TH1 as a determination of necessity of execution of the GC execution control process (step S8). The threshold TH1 is an example of a predetermined threshold or a first threshold, and may be "High_Threshold" shown in FIG. 5, for example. If it is determined that FS(N) is not equal to or less than the threshold TH1 (No in step S8), the GC execution control unit 43 determines that CM2 does not need to perform compulsory GC, and the process ends.

一方、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 execution control unit 43 sets a variable n=0 (step S11), and acquires the current free space utilization rate FS from the BUD 30 as an initial value (step S12).

次いで、GC実行制御部43は、BUD30に対して、GCの実行指示を発行する(ステップS13)。実行指示では、例えば、実行期間が指定されてよい。制御部31は、指定された実行期間内において、GCを実行してよい。 Next, the GC execution control unit 43 issues a GC execution instruction to the BUD 30 (step S13). The execution instruction may specify, for example, an execution period. The control unit 31 may execute GC within the designated execution period.

次いで、GC実行制御部43は、BUD30からフリースペースFS(n)を取得し(ステップS14)、FS(n)が閾値TH2を超えたか否かを判定する(ステップS15)。閾値TH2は、第2の閾値の一例であり、例えば、図5に示す“High_Threshold”であってよい。なお、閾値TH2は、図7のステップS8における閾値TH1と同一の値であってもよく、この場合、閾値TH2は、所定の閾値の一例である。 Next, the GC execution control unit 43 acquires the free space FS(n) from the BUD 30 (step S14), and determines whether or not FS(n) exceeds the threshold TH2 (step S15). The threshold TH2 is an example of a second threshold, and may be "High_Threshold" shown in FIG. 5, for example. Note that the threshold TH2 may be the same value as the threshold TH1 in step S8 of FIG. 7, and in this case, the threshold TH2 is an example of a predetermined threshold.

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 execution control unit 43 adds "1" to the variable n (step S16), and the process proceeds to step S13. do.

一方、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 execution control unit 43 designates a specific execution period as the GC execution unit time, and repeatedly executes the GC for that unit time until the remaining capacity of the free space exceeds the threshold TH2. Increase the capacity of space (number of free blocks).

なお、ステップ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 execution control unit 43 may be a fixed period, or may be a variable period depending on the current FS, the number of insufficient free blocks, etc. good. For example, the GC execution control unit 43 performs step The execution period may be determined each time S13 arrives.

〔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 data writing unit 42 when detecting a power failure (step S21). Also, the CM 2 forcibly stops the GC execution instruction to the BUD 30 by the GC execution control unit 43 (step S22). Through steps S21 and S22, execution of the GC execution determination process shown in FIG. 7 (including the GC execution process shown in FIG. 8) is terminated or stopped.

なお、強制終了又は強制停止は、当該処理が実行されている場合に、当該処理の官僚を待たずに、当該処理を強制的に停止させる又は終了させることを含んでよい。また、強制終了又は強制停止は、当該処理の実行が予定されている場合には、当該処理の実行予定を中止(キャンセル)させることを含んでもよい。 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 execution control unit 43 erases the area (block) in which the dummy data has been written in the backup area 32c of the storage unit 32, and makes the area free space (step S23).

そして、CM2は、停電処理、例えば、バックアップ処理部41によるメモリ20のBUD30へのバックアップ処理を実行し(ステップS24)、処理が終了する。なお、CM2は、例えば、電源切断要因(電源OFF要因)として、「停電」による電源切断であることをBUD30、例えばログメタ書込領域32bに設定し、電源を切断(シャットダウン)してよい。 Then, the CM 2 executes power failure processing, for example, backup processing of the memory 20 to the BUD 30 by the backup processing unit 41 (step S24), and the processing ends. Note that the CM 2 may, for example, set the fact that the power is cut off due to a "power failure" in the BUD 30, for example, the log meta write area 32b, as a power cut-off factor (power-off factor), and turn off the power (shut down).

〔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 CM 2 refers to, for example, the log meta writing area 32b of the BUD 30, and determines whether or not the cause of the previous power cut was a power failure (step S32).

直前の電源切断要因が停電であると判定した場合(ステップ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 backup processing unit 41 restores data from the BUD 30 to the memory 20 (step S33). For example, the backup processing unit 41 may read the backup data stored in the backup area 32 c (effective data in the memory 20 backed up at the time of power failure) and write it to the memory 20 .

次いで、GC実行制御部43は、記憶部32のバックアップ領域32cに格納されたバックアップ書込済みの領域(ブロック)を消去する(ステップS34)。 Next, the GC execution control unit 43 erases the backup-written area (block) stored in the backup area 32c of the storage unit 32 (step S34).

また、GC実行制御部43は、BUD30に対して、GCの実行指示を行なう(ステップS35)。このように、システム起動のための処理が完了した後、CM2は、GC実行指示処理を行ない、記憶部32における全ての記憶領域のGCを実施することで、システム起動時に、最大限のフリースペースを確保することができる。 The GC execution control unit 43 also instructs the BUD 30 to execute GC (step S35). In this way, after completing the processing for system startup, the CM 2 performs GC execution instruction processing and executes GC of all storage areas in the storage unit 32, thereby maximizing free space at the time of system startup. can be ensured.

以上により、システム起動処理が完了し(ステップ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 storage apparatus 1 as an example of an embodiment. As shown in FIG. 11, the storage apparatus 1 illustratively includes a processor 1a, a DRAM 1b, a flash ROM (Read Only Memory) 1c, an SSD 1d, a NWIF (Network Interface) 1e, and a channel IF 1f. Further, the storage device 1 may illustratively include device IFs 1g-1 and 1g-2, a plurality of disks 1h, a battery 1i, an I/O (Input/Output) section 1j, and a reading section 1k.

プロセッサ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 processor 1a is an example of an arithmetic processing device that performs various controls and operations. The processor 1a may be communicably connected to each of the blocks 1b to 1k via a bus 1p. As the processor 1a, an integrated circuit (IC) such as a CPU, MPU, DSP, ASIC, PLD (for example, FPGA) may be used. Note that CPU is an abbreviation for Central Processing Unit, MPU is an abbreviation for Micro Processing Unit, and DSP is an abbreviation for Digital Signal Processor. ASIC is an abbreviation for Application Specific Integrated Circuit, PLD is an abbreviation for Programmable Logic Device, and FPGA is an abbreviation for Field Programmable Gate Array.

DRAM1bは、種々のデータやプログラムを格納する揮発性メモリの一例である。一実施形態において、DRAM1bの少なくとも一部の記憶領域は、例えば、図示しないホスト装置からディスク1hに対するアクセスに係る種々のデータを一時的に格納するキャッシュとして利用されてよい。 DRAM 1b is an example of a volatile memory that stores various data and programs. In one embodiment, at least a partial storage area of the DRAM 1b may be used as a cache for temporarily storing various data related to access to the disk 1h from a host device (not shown), for example.

フラッシュ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 SSD 1d is an example of nonvolatile memory that stores various data, programs, and the like. The SSD 1d may, for example, have a controller 1da that controls various accesses to the storage area. The controller 1da includes an integrated circuit (IC) including a processor and memory. Processors include various arithmetic processing units. Memory includes various volatile or non-volatile memories.

例えば、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 SSD 1d may store an OS, FW, programs such as applications, and various data. The SSD 1d includes, for example, an SSD using a NAND flash memory that supports an IF such as SATA, SAS, or NVMe. SATA is an abbreviation for Serial ATA (Advanced Technology Attachment), and SAS is an abbreviation for Serial Attached SCSI (Small Computer System Interface). NVMe is an abbreviation for Non-Volatile Memory Express. As the SSD 1d, for example, a low-latency SSD such as Intel Optane SSD (registered trademark) employing 3D XPoint (registered trademark) technology may be used.

フラッシュ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 SSD 1d may store a program 1m that implements all or part of various functions of the CM2. For example, the processor 1a of CM2 may implement the function of CM2 by reading out the program 1m as FW stored in the flash ROM 1c, developing it in the DRAM 1b, and executing it. Alternatively, the processor 1a of the CM 2 may read the program 1m as the FW stored in the SSD 1d, develop it in the DRAM 1b or the flash ROM 1c, and execute it, thereby realizing the function of the CM 2. The functions of the CM 2 may include the functions of the backup processing unit 41, the dummy data writing unit 42, and the GC execution control unit 43 described above.

なお、図2に示す保持部10は、例えば、CM2のDRAM1b、フラッシュROM1c、及びSSD1dの少なくとも1つの記憶領域により実現されてよい。また、図2に示すメモリ20は、例えば、CM2のDRAM1bの記憶領域により実現されてよい。さらに、図2に示すBUD30は、例えば、CM2のSSD1dの記憶領域により実現されてよい。 Note that the holding unit 10 shown in FIG. 2 may be realized by, for example, at least one storage area of the DRAM 1b, the flash ROM 1c, and the SSD 1d of the CM2. Also, the memory 20 shown in FIG. 2 may be implemented by, for example, a storage area of the DRAM 1b of the CM2. Furthermore, the BUD 30 shown in FIG. 2 may be implemented by, for example, the storage area of the SSD 1d of CM2.

NWIF1e及びチャネルIF1fは、それぞれ、LAN(Local Area Network)、及び、SAN(Storage Area Network)との間の接続及び通信の制御等を行なう通信IFの一例である。これらの通信IFは、例えば、LANカード等のIFや、ファイバチャネル(FC;Fibre Channel)等に準拠したIFをそなえてよい。 The NWIF 1e and the channel IF 1f are examples of communication IFs that control connection and communication with LANs (Local Area Networks) and SANs (Storage Area Networks), respectively. These communication IFs may include, for example, an IF such as a LAN card or an IF conforming to Fiber Channel (FC) or the like.

なお、CM2は、管理者の管理端末との間の接続及び通信の制御等を行なう通信IFをそなえてもよく、当該通信IFを用いて、図示しないネットワークからプログラム1mをダウンロードしてもよい。 The CM 2 may have a communication IF for controlling connection and communication with the management terminal of the administrator, and may use the communication IF to download the program 1m from a network (not shown).

デバイスIF1g-1及び1g-2は、それぞれ、複数のディスク1hとの間の接続及び通信の制御等を行なう通信IFの一例である。デバイスIF1g-1及び1g-2としては、例えば、デバイスアダプタ等のIFや、SASエクスパンダ等のスイッチ装置等が挙げられる。 Device IFs 1g-1 and 1g-2 are examples of communication IFs that control connections and communications with a plurality of disks 1h, respectively. Device IFs 1g-1 and 1g-2 include, for example, IFs such as device adapters and switch devices such as SAS expanders.

複数のディスク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 storage device 1 to a host device or the like (not shown). Examples of the disk 1h include magnetic disk devices such as HDDs (Hard Disk Drives), semiconductor drive devices such as SSDs, and various storage devices such as nonvolatile memories. Examples of nonvolatile memory include flash memory, SCM, ROM, and the like. In one embodiment, the plurality of disks 1h is an example of the plurality of disks 3a forming the storage 3 shown in FIG.

バッテリ1iは、ストレージ装置1(CM2)に電力を供給する電源が喪失した場合(停電が発生した場合)に、当該ストレージ装置1(CM2)に対して予備電力を供給する予備電源の一例である。バッテリ1iは、例えば、電源が喪失したことを検出し、当該検出に応じて予備電力の供給を制御する制御回路をそなえてもよい。 The battery 1i is an example of a standby power source that supplies standby power to the storage device 1 (CM2) when the power source that supplies power to the storage device 1 (CM2) is lost (when a power failure occurs). . The battery 1i may, for example, include control circuitry for detecting loss of power and controlling the supply of reserve power in response to such detection.

I/O部1jは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力部、及び、ディスプレイやプリンタ等の出力部、の一方又は双方を含んでよい。読取部1kは、記録媒体1nに記録されたデータやプログラムを読み出しプロセッサ1aに出力するリーダの一例である。読取部1kは、記録媒体1nを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部1kとしては、例えばUSB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体1nにはプログラム1mが格納されてもよい。 The I/O unit 1j may include, for example, one or both of an input unit such as a mouse, keyboard, touch panel, and operation buttons, and an output unit such as a display and printer. The reading unit 1k is an example of a reader that reads data and programs recorded on the recording medium 1n and outputs them to the processor 1a. The reading unit 1k may include a connection terminal or device to which the recording medium 1n can be connected or inserted. Examples of the reading unit 1k include an adapter conforming to USB (Universal Serial Bus), a drive device for accessing a recording disk, and a card reader for accessing flash memory such as an SD card. Note that the program 1m may be stored in the recording medium 1n.

記録媒体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 recording medium 1n include non-temporary computer-readable recording media such as magnetic/optical discs and flash memories. Examples of magnetic/optical discs include flexible discs, CDs (Compact Discs), DVDs (Digital Versatile Discs), Blu-ray discs, and HVDs (Holographic Versatile Discs). Examples of flash memories include semiconductor memories such as USB memories and SD cards. Examples of CD include CD-ROM, CD-R, CD-RW, and the like. Examples of DVD include DVD-ROM, DVD-RAM, DVD-R, DVD-RW, DVD+R, and DVD+RW.

上述したストレージ装置1のハードウェア構成は例示である。従って、ストレージ装置1内、又は、CM2でのハードウェアの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。 The hardware configuration of the storage device 1 described above is an example. Therefore, the hardware in the storage device 1 or in the CM 2 may be increased or decreased (for example, addition or deletion of arbitrary blocks), division, integration in arbitrary combinations, addition or omission of buses, etc. may be performed as appropriate.

例えば、ストレージ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 storage 3 may be configured as a module separate from the CM 2 or the storage device 1, such as a device enclosure (DE). Further, the blocks 1a to 1k as CM2 may be made redundant (for example, duplicated) in the storage device 1. FIG. If the storage device 1 has a plurality of CMs 2, the access paths between each of these CMs 2 and the storage 3 may also be made redundant. In addition, the storage device 1 may have, for example, a plurality of storages 3 connected in cascade (connected in series).

〔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 appendix 1.

(付記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 appendix 1 or appendix 2.

(付記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 Appendices 1 to 3.

(付記5)
前記停電が発生した場合に、予備電源を利用して、前記バックアップ領域に対して、前記揮発性メモリ内のデータのバックアップを実行するバックアップ部、をさらにそなえる
付記1~4のいずれか1項に記載の制御装置。
(Appendix 5)
5. The method according to any one of appendices 1 to 4, further comprising a backup unit that backs up the data in the volatile memory in the backup area using a standby power supply in the event of a power failure. Control device as described.

(付記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 Appendices 1 to 7.

(付記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 appendix 9.

(付記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 appendix 9 or appendix 10.

(付記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 Appendices 9 to 11.

(付記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 appendices 9 to 12, which causes the computer to execute processing.

(付記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 Appendices 9 to 15.

(付記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 storage device 2 CM
3 storage 3a disk 10 holding unit 11 control information 20 memory 30 BUD
31 control unit 32 storage unit 41 backup processing unit 42 dummy data writing unit 43 GC execution control unit

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~のいずれか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 .
JP2018133588A 2018-07-13 2018-07-13 Control device, control program, and control method Active JP7205090B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
JP4961319B2 (en) A storage system that dynamically allocates real areas to virtual areas in virtual volumes
US20070208921A1 (en) Storage system and control method for the same
JP6097845B2 (en) Storage system that backs up data to non-volatile cache memory
JP2016503927A (en) Storage system and cache control method
CN111984441B (en) Instant power-off recovery processing method and device and computer readable storage medium
CN104583930A (en) Method of data migration, controller and data migration apparatus
US20120102242A1 (en) Controlling data destaging within a multi-tiered storage system
JP2019169101A (en) Electronic apparatus, computer system, and control method
JP2018010557A (en) Storage system and management device
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
WO2018142622A1 (en) Computer
JP7205090B2 (en) Control device, control program, and control method
WO2014147786A1 (en) Storage system and data management method
JP5594647B2 (en) Storage apparatus and control method thereof
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
JP2012203437A (en) Storage device, method and program
JP6138318B2 (en) Storage system having multiple flash packages

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