JP2005258789A - Storage device, storage controller, and write back cache control method - Google Patents

Storage device, storage controller, and write back cache control method Download PDF

Info

Publication number
JP2005258789A
JP2005258789A JP2004069217A JP2004069217A JP2005258789A JP 2005258789 A JP2005258789 A JP 2005258789A JP 2004069217 A JP2004069217 A JP 2004069217A JP 2004069217 A JP2004069217 A JP 2004069217A JP 2005258789 A JP2005258789 A JP 2005258789A
Authority
JP
Japan
Prior art keywords
cache
write
destage
data
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004069217A
Other languages
Japanese (ja)
Other versions
JP4189342B2 (en
Inventor
Kuniyasu Shimizu
邦保 清水
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2004069217A priority Critical patent/JP4189342B2/en
Publication of JP2005258789A publication Critical patent/JP2005258789A/en
Application granted granted Critical
Publication of JP4189342B2 publication Critical patent/JP4189342B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To inhibit the frequent occurrence of competition between a host I/O and destage on a cache block. <P>SOLUTION: A cache management module 33 receives a writing request accompanied with start of commit processing or check point processing from an NAS (Network Attached Storage) controller 10 and stores requested data on the cache block of a cache memory 32. The cache management module 33 inhibits the cache block (namely, the cache block equivalent to a log region) storing data forming the log region 311 to an inherent writing destination so that the cache block becomes the object of a destage operation when implementing the destage operation for writing data on the updated cache block on the cache memory 32 into an inherent writing destination on a disk 31 keeping the log region 311. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、ログ領域が確保される2次記憶領域と、当該2次記憶領域に書き込むべきデータを一時格納するライトバックキャッシュとを備えたストレージ装置に係り、当該ライトバックキャッシュに記憶されているデータブロックを上記2次記憶領域に書き込むデステージ操作を含むキャッシュ制御に好適なストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法に関する。   The present invention relates to a storage device that includes a secondary storage area in which a log area is secured and a write-back cache that temporarily stores data to be written to the secondary storage area, and is stored in the write-back cache. The present invention relates to a storage apparatus, a storage controller, and a write-back cache control method suitable for cache control including a destage operation for writing a data block to the secondary storage area.

2次記憶領域を備えたストレージ装置のホスト(上位装置)として、ネットワーク・アタッチド・ストレージ(Network Attached Storage)コントローラ(以下、NASコントローラと称する)が知られている。このNASコントローラとストレージ装置とから構成される装置はNAS装置と呼ばれる。NASコントローラは、ファイルサーバ、或いはデータベースサーバに代表されるサーバとして機能する。NASコントローラは、当該コントローラを介してストレージ装置を利用するクライアントマシン(クライアントコンピュータ)とLAN(ローカル・エリアネット・ワーク)等のネットワークを介して接続される。   2. Description of the Related Art A network attached storage controller (hereinafter referred to as NAS controller) is known as a host (higher level apparatus) of a storage apparatus having a secondary storage area. A device composed of this NAS controller and storage device is called a NAS device. The NAS controller functions as a server represented by a file server or a database server. The NAS controller is connected to a client machine (client computer) that uses the storage device via the controller via a network such as a LAN (local area network).

NASコントローラは、一般にライトバックキャッシュを持つ。しかし、クライアントマシンからのネットワーク・ファイル・システム(Network File System)オペレーション、いわゆるNFSオペレーションなどによるストレージ装置へのアクセスの際には、NASコントローラは単純なライトバック動作を行うことができない。即ち、NASコントローラは、クライアントマシンから送信されたデータを受け取ると、そのデータがストレージ装置(の2次記憶領域)に書き込まれたことを保障した上でクライアントマシンに受信完了を返す必要がある。その理由は、NASコントローラがクライアントマシンから受け取ったデータを、当該コントローラ内のライトバックキャッシュに一時記憶しただけで、クライアントマシンに受信完了を返すと、次のような不具合が発生する可能性があるためである。つまり、NASコントローラが実際にストレージ装置にデータを書き込む前にシステムダウンした場合には、受信完了したはずのデータが失われてしまうためである。   A NAS controller generally has a write-back cache. However, the NAS controller cannot perform a simple write-back operation when accessing the storage apparatus by a network file system operation from a client machine, such as a so-called NFS operation. That is, when the NAS controller receives data transmitted from the client machine, it needs to return reception completion to the client machine after ensuring that the data has been written to the storage device (secondary storage area). The reason is that if the data received by the NAS controller from the client machine is temporarily stored in the write-back cache in the controller and the reception completion is returned to the client machine, the following problems may occur. Because. In other words, if the system goes down before the NAS controller actually writes data to the storage device, the data that should have been received is lost.

ところで、システムのファイルシステムレベルでの無矛盾性を保障し、且つストレージ装置に対する入出力(I/O)性能を向上する技術として、ジャーナルファイルシステムが知られている。ジャーナルファイルシステムは、クライアントマシンからのデータ書き込み(データ更新)要求により、ストレージ装置の2次記憶領域内のデータイメージを変更するような操作を行う必要がある場合、次の動作を行う。まずジャーナルファイルシステムは、要求されたデータを、NASコントローラのライトバックキャッシュを介して、ログ領域と呼ばれる2次記憶領域内の特定の領域に一時保存して、クライアントマシンに書き込み完了を返す。その後の適切なタイミングで、ジャーナルファイルシステムは、上記書き込み要求で要求されたデータを2次記憶領域内の本来更新すべき箇所に実際に書き込む。この本来更新すべき箇所のデータを実データと呼び、この箇所へのデータ書き込みを、実データの書き込みまたは実データの更新と呼ぶ。この更新には、処理の高速化のために、ログ領域に保存されたデータではなくて、NASコントローラのライトバックキャッシュに記憶されたデータが用いられる。   Incidentally, a journal file system is known as a technique for ensuring consistency at the file system level of a system and improving input / output (I / O) performance with respect to a storage apparatus. The journal file system performs the following operation when it is necessary to perform an operation to change the data image in the secondary storage area of the storage device in response to a data write (data update) request from the client machine. First, the journal file system temporarily stores the requested data in a specific area in the secondary storage area called a log area via the write-back cache of the NAS controller, and returns a write completion to the client machine. At an appropriate timing thereafter, the journal file system actually writes the data requested by the write request in the location that should be updated in the secondary storage area. The data at the location that should be updated is called actual data, and the data writing at this location is called actual data writing or actual data updating. For this update, data stored in the write-back cache of the NAS controller is used instead of data stored in the log area in order to speed up processing.

ログ領域は連続する論理アドレスの領域に割り当てられており、データ(データ更新の履歴)を時系列順に保存するためのリングバッファとして用いられる。ログ領域に保存されたデータの集合はジャーナルファイルと呼ばれる。ログ領域にデータを保存することは「コミット処理」と呼ばれる。また、実データの更新を行うことは「チェックポイント処理」と呼ばれる。   The log area is allocated to areas of continuous logical addresses, and is used as a ring buffer for storing data (data update history) in chronological order. A collection of data stored in the log area is called a journal file. Saving data in the log area is called “commit processing”. Also, updating the actual data is called “checkpoint processing”.

一旦コミット処理を経たオペレーションでは、いずれ対応する実データの更新が行われることが保障される。これに対し、コミットを完了していないオペレーションでは、実データの更新が行われることはない。特にコミット処理はファイルシステム的に意味のあるオペレーションの集合としてまとめられており、複数のI/Oを伴う処理をまとめて1つのコミット単位として扱うことが多い。このため、もし不慮のシステムダウンが発生した場合でも、コミット単位で、オペレーションと2次記憶領域内のデータイメージとの一貫性が保障できる。   In an operation that has undergone a commit process, it is guaranteed that the corresponding actual data will be updated. On the other hand, actual data is not updated in an operation that has not yet been committed. In particular, commit processing is collected as a set of operations that are meaningful in the file system, and processing involving a plurality of I / Os is often handled as one commit unit. Therefore, even if an unexpected system failure occurs, it is possible to guarantee the consistency between the operation and the data image in the secondary storage area in units of commits.

コミット処理中は、対応するオペレーションに関して実データの更新は行われておらず、また上位装置への書き込み完了も返されていない。このため、コミット処理完了以前にシステムダウンが発生した場合は、上記オペレーションは行われなかったことと等価になる。コミット処理を完了すれば、チェックポイントを経なくても上位装置へ書き込み完了を返すことができる。但し、これを可能にするためには、一旦コミット処理を完了したデータはいずれ必ず実データに反映されることを保障しなければならない。そこでジャーナルファイルシステムには、システムダウン等により、コミット処理は終わっているもののチェックポイント処理が未完のデータが存在する場合に、当該データがシステムリブート時に実データに反映されることを保障する機能が要求される。   During the commit process, the actual data is not updated for the corresponding operation, and the completion of writing to the host device is not returned. For this reason, if the system goes down before the commit process is completed, it is equivalent to the above operation not being performed. If the commit process is completed, the completion of writing can be returned to the host device without passing through the checkpoint. However, in order to make this possible, it must be ensured that the data once the commit process is completed will be reflected in the actual data. Therefore, the journal file system has a function that guarantees that when there is data that has been committed but the checkpoint process is incomplete due to a system down, the data is reflected in the actual data when the system is rebooted. Required.

最近のNASコントローラは、上述の機能を持つジャーナルファイルシステムを適用するようになっている。この種のNASコントローラは、データをストレージ装置のログ領域に保存完了した時点でクライアントマシンに受信完了を返すことができる。したがって、この種のNASコントローラは、コミット処理以降は性能的に有利なライトバック動作を行うことが可能であり、ファイルシステムレベルでの無矛盾性も保障することができる。   Recent NAS controllers apply a journal file system having the above-described functions. This type of NAS controller can return a reception completion to the client machine when the data is completely stored in the log area of the storage apparatus. Therefore, this type of NAS controller can perform a write-back operation that is advantageous in terms of performance after the commit process, and can guarantee consistency at the file system level.

クライアントマシンからのデータ書き込み要求に対するストレージ装置へのI/O性能を決める重要なポイントは、コミット処理、即ちログ領域への書き込み(ログ書き込み)の応答性である。コミット処理が遅い場合には、それだけクライアントマシンへの処理完了通知も遅くなる。   An important point that determines the I / O performance to the storage apparatus in response to a data write request from a client machine is the responsiveness of commit processing, that is, writing to a log area (log writing). If the commit process is slow, the process completion notification to the client machine is delayed accordingly.

ところで、最近のストレージ装置は、ライトバックキャッシュ(ライトバック方式を適用するディスクキャッシュ)を備えているのが一般的である(例えば、特許文献1参照)。このストレージ装置のライトバックキャッシュは、バッテリバックアップ等により、不慮のシステムダウンの際にも当該キャッシュ上のデータが保護されるように設計されている。したがって、一旦ストレージ装置のライトバックキャッシュに保存されたデータは、いずれストレージ装置の2次記憶領域に書き込まれることが保障される。   Incidentally, recent storage apparatuses generally have a write-back cache (a disk cache to which a write-back method is applied) (see, for example, Patent Document 1). The write-back cache of this storage device is designed so that the data on the cache is protected even when the system is down unexpectedly by battery backup or the like. Therefore, it is guaranteed that data once stored in the write-back cache of the storage apparatus will be written to the secondary storage area of the storage apparatus.

そこで最近は、ログ書き込みの際に、ログ領域に書き込むべきデータを、その書き込み先に対応する、ストレージ装置のライトバックキャッシュ内の箇所に一時保存して、コミット処理を完了させることで、一層の性能向上が図られている。このストレージ装置のライトバックキャッシュを利用すると、チェックポイント処理も、NASコントローラのライトバックキャッシュ上のデータを、2次記憶領域内の本来更新すべき箇所に対応する、ストレージ装置のライトバックキャッシュの箇所に一時保存するだけで、完了させることができる。
特開平10−293717(段落0003乃至0005)
Therefore, recently, at the time of log writing, the data to be written to the log area is temporarily stored in the location in the write-back cache of the storage device corresponding to the write destination, and the commit process is completed. The performance is improved. When this storage device write-back cache is used, the checkpoint processing also uses the storage device write-back cache location corresponding to the location in the secondary storage area where the data on the write-back cache of the NAS controller should be updated. You can complete it by simply saving it in
JP-A-10-293717 (paragraphs 0003 to 0005)

上記した従来技術においては、ストレージ装置を利用するホスト(例えばNASコントローラ)が、当該ストレージ装置が有するライトバックキャッシュを利用してコミット処理及びチェックポイント処理を行うことにより、当該コミット処理及びチェックポイント処理の高速化が図られている。   In the above-described conventional technology, a host (for example, NAS controller) that uses a storage device performs commit processing and checkpoint processing by using the write-back cache of the storage device, thereby performing the commit processing and checkpoint processing. Speeding up.

ストレージ装置のライトバックキャッシュに保存されたデータは、当該ストレージ装置自身によって、ホストによるストレージ装置に対するI/O動作(以下、ホストI/Oと称する)とは非同期に、ストレージ装置の2次記憶領域に書き込まれる。この書き込みを、デステージまたはデステージ操作と呼ぶ。   The data stored in the write-back cache of the storage device is stored in the secondary storage area of the storage device by the storage device itself asynchronously with the host I / O operation (hereinafter referred to as host I / O). Is written to. This writing is called destage or destage operation.

さて、デステージ操作の対象となっているライトバックキャッシュ上のデータブロック(つまりキャッシュブロック)はリザーブ状態となり、ホストI/Oによるデータの更新を行うことはできない。したがって、ある論理アドレスに割り当てられたキャッシュブロックがデステージ中の場合、同じ論理アドレスに対するホストI/Oは、デステージ操作が完了してキャッシュブロックのリザーブ状態が解除されるまで待たされる。つまり、ライトバックキャッシュを備えたストレージ装置では、ホストI/Oとデステージとのキャッシュブロック上での競合が発生する。この競合の発生は、ストレージ装置としての性能に大きく影響を与える。特に、ホストがジャーナルファイルシステムを採用している場合には、この競合が頻繁に発生するため問題である。本発明者は、この競合が頻繁に発生する原因が、ホストI/Oによるログ書き込み(ストレージ装置の2次記憶領域に確保されているログ領域に対応する論理アドレスに対する書き込み)が繰り返し行われることにあると認識するに至った。   Now, the data block (that is, cache block) on the write-back cache that is the target of the destage operation is in a reserved state, and data cannot be updated by the host I / O. Therefore, when a cache block assigned to a certain logical address is being destaged, the host I / O for the same logical address is waited until the destage operation is completed and the reserved state of the cache block is released. That is, in a storage apparatus equipped with a write-back cache, contention on the cache block between the host I / O and the destage occurs. The occurrence of this competition greatly affects the performance of the storage apparatus. In particular, when the host employs a journal file system, this contention occurs frequently, which is a problem. The inventor of the present invention repeatedly causes log writing by the host I / O (writing to a logical address corresponding to the log area secured in the secondary storage area of the storage device) as a cause of the frequent occurrence of this contention. It came to recognize that there is.

本発明は上記事情を考慮してなされたものでその目的は、ホストI/Oとデステージとのキャッシュブロック上での競合が頻繁に発生するのを抑制することができるストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法を提供することにある。   The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a storage apparatus, a storage controller, and a storage device capable of suppressing frequent occurrence of competition between the host I / O and the destage on the cache block. The object is to provide a write-back cache control method.

本発明の1つの観点によれば、ホストからのデータ更新の履歴を時系列順に保存するための、論理アドレスが連続するログ領域が確保される2次記憶領域と、前記2次記憶領域に書き込むべきデータを一時格納するための、キャッシュブロック単位で管理されるライトバックキャッシュとを備えたストレージ装置が提供される。このストレージ装置は、上記ホストのコミット処理またはチェックポイント処理の開始に伴う書き込み要求を受けて、要求されたデータを上記ライトバックキャッシュ上の上記キャッシュブロックに格納するデータ格納手段と、上記ライトバックキャッシュ上の更新されたキャッシュブロックのデータを上記2次記憶上の本来の書き込み先に書き込むためのデステージ操作を制御するデステージ制御手段であって、上記ログ領域内を本来の書き込み先とする上記ライトバックキャッシュ上のデータが格納された、ログ領域相当のキャッシュブロックが上記デステージ操作の対象となるのを抑制するデステージ制御手段とを具備する。   According to one aspect of the present invention, a secondary storage area in which a log area with continuous logical addresses is secured for storing a history of data updates from a host in time series, and writing to the secondary storage area is performed. There is provided a storage apparatus including a write-back cache managed in units of cache blocks for temporarily storing data to be stored. The storage device receives a write request accompanying the start of commit processing or checkpoint processing of the host, and stores data requested in the cache block on the write-back cache, and the write-back cache Destage control means for controlling a destage operation for writing the updated cache block data to the original write destination on the secondary storage, wherein the log area is the original write destination. Destaging control means for suppressing a cache block corresponding to a log area in which data on the write-back cache is stored as a target of the destage operation.

上記の構成において、ホストからストレージ装置に対して、コミット処理の開始またはチェックポイント処理の開始に伴う書き込み要求が送られた場合、当該ストレージ装置では、当該書き込み要求に従って2次記憶領域にデータを書き込む代わりに、その2次記憶領域内の本来の書き込み先に対応する、ライトバックキャッシュ上のキャッシュブロックにデータを書き込む(格納する)動作(ホストI/O)が行われる。ここで、ホストからの書き込み要求で指定される2次記憶領域の書き込み先は、上記ログ領域内またはログ領域外(つまり実データ領域内)のいずれかである。   In the above configuration, when a write request accompanying the start of commit processing or checkpoint processing is sent from the host to the storage device, the storage device writes data to the secondary storage area according to the write request. Instead, an operation (host I / O) for writing (storing) data in a cache block on the write-back cache corresponding to the original write destination in the secondary storage area is performed. Here, the write destination of the secondary storage area specified by the write request from the host is either in the log area or outside the log area (that is, in the actual data area).

デステージ制御手段は、上記のデータ書き込み(ホストI/O)によって更新されたライトバックキャッシュ上のキャッシュブロックのデータを、上記2次記憶領域内の本来の書き込み先に書き込むためのデステージ操作の実行に際し、上記ログ領域内を本来の書き込み先とする上記ライトバックキャッシュ上のデータが格納されたキャッシュブロックが上記デステージ操作の対象となるのを抑制する。   The destage control means performs a destage operation for writing the cache block data on the write-back cache updated by the data write (host I / O) to the original write destination in the secondary storage area. During execution, the cache block storing the data on the write-back cache whose original write destination is in the log area is prevented from being the target of the destage operation.

一般に、ログ領域が上記2次記憶領域内に占める割合は極めて小さい。また、ログ領域はリング状に使用される。したがって、ログ領域内の各ブロックが使用される頻度は、ログ領域外(つまり実データ領域内)の各ブロックが使用される頻度に比べて著しく高い。そこで、上記の構成において、ログ領域内を本来の書き込み先とするライトバックキャッシュ上のデータが格納されたキャッシュブロック、つまりログ領域相当のキャッシュブロックが、上記デステージ操作の対象となるのを抑制することにより、当該キャッシュブロックが頻繁にリザーブ状態となるのを極力避けることができる。これにより、ホストI/Oとデステージとのキャッシュブロック上での競合が頻繁に発生するのを抑制でき、ログ書き込みのレスポンスタイムの遅延を抑止して、ストレージ装置としての性能を向上できる。   In general, the ratio of the log area to the secondary storage area is very small. The log area is used in a ring shape. Therefore, the frequency at which each block in the log area is used is significantly higher than the frequency at which each block outside the log area (that is, in the actual data area) is used. Therefore, in the above configuration, the cache block storing the data on the write-back cache whose original write destination is the log area, that is, the cache block corresponding to the log area, is prevented from being the target of the destage operation. By doing so, it is possible to avoid as much as possible that the cache block is frequently reserved. As a result, it is possible to suppress frequent occurrence of contention between the host I / O and the destage on the cache block, and it is possible to suppress delay in response time of log writing and improve the performance as a storage device.

ここで、ログ領域相当のキャッシュブロックが、上記デステージ操作の対象となるのを抑制するためには、デステージ制御手段が、ライトバックキャッシュ上の各キャッシュブロックを、ログ領域相当のキャッシュブロックであるかそれ以外のキャッシュブロック(実データ領域相当のキャッシュブロック)であるかを判定または推定できれば良い。例えば、ホストからストレージ装置に対して、ログ領域が割り当てられる論理アドレス範囲が通知されるならば、上記判定が可能である。しかし、ログ領域内の各ブロックが使用される頻度が、実データ領域内の各ブロックが使用される頻度に比べて著しく高いことを利用するならば、使用される頻度が高いキャッシュブロックをログ領域相当のキャッシュブロックと推定しても、誤って推定される確率は極めて低く、したがってホストI/Oとデステージとのキャッシュブロック上での競合が頻繁に発生するのを効果的に抑制できる。   Here, in order to prevent the cache block corresponding to the log area from being the target of the destage operation, the destage control means uses each cache block on the write-back cache as a cache block corresponding to the log area. It is only necessary to be able to determine or estimate whether there is a cache block other than that (a cache block corresponding to the actual data area). For example, if the host notifies the storage apparatus of the logical address range to which the log area is allocated, the above determination is possible. However, if the frequency that each block in the log area is used is significantly higher than the frequency that each block in the actual data area is used, the cache block that is used frequently is used Even if the cache block is estimated to be a considerable cache block, the probability that it is erroneously estimated is extremely low. Therefore, it is possible to effectively suppress frequent occurrence of competition between the host I / O and the destage on the cache block.

本発明によれば、ログ領域内を本来の書き込み先とするライトバックキャッシュ上のデータが格納されたキャッシュブロックがデステージ操作の対象となるのを抑制することにより、ホストI/Oとデステージとのキャッシュブロック上での競合が頻繁に発生するのを抑制でき、ログ書き込みのレスポンスタイムの遅延を抑止して、ストレージ装置としての性能を向上できる。   According to the present invention, the host I / O and the destage are suppressed by suppressing the cache block storing the data on the write-back cache whose original write destination is the log area from being subject to the destage operation. Thus, frequent occurrence of contention on the cache block can be suppressed, and a delay in response time of log writing can be suppressed to improve performance as a storage apparatus.

以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るストレージシステムの構成を示すブロック図である。図1において、NASコントローラ10は例えばSCSI(Small Computer System Interface)バス20を介してストレージ装置30と接続されている。SCSIバス20に代えてFC(Fibre Channel)バスを用いることも可能である。NASコントローラ10はまた、ネットワーク40を介してクライアントマシン(以下、クライアントと称する)41-1〜41-Nと接続されている。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a storage system according to an embodiment of the present invention. In FIG. 1, the NAS controller 10 is connected to the storage device 30 via, for example, a SCSI (Small Computer System Interface) bus 20. It is also possible to use an FC (Fibre Channel) bus instead of the SCSI bus 20. The NAS controller 10 is also connected to client machines (hereinafter referred to as clients) 41-1 to 41-N via the network 40.

NASコントローラ10は、例えば、ジャーナルファイルシステムを実現するためのファイルサーバとして機能し、クライアント41-1〜41-Nに対してネットワーク40を介してストレージ装置30のストレージ領域を提供する。NASコントローラ10は、ストレージ装置30を管理するためのストレージ管理モジュール11と、ライトバック方式を適用するキャッシュ(つまりライトバックキャッシュ)として用いられるキャッシュメモリ12とを備えている。ストレージ管理モジュール11は、ジャーナルファイルを含むファイルを管理するファイルシステム(図示せず)を含む。   The NAS controller 10 functions as a file server for realizing a journal file system, for example, and provides the storage area of the storage device 30 to the clients 41-1 to 41-N via the network 40. The NAS controller 10 includes a storage management module 11 for managing the storage device 30 and a cache memory 12 used as a cache (that is, a write-back cache) to which a write-back method is applied. The storage management module 11 includes a file system (not shown) that manages files including journal files.

ストレージ装置30は、2次記憶領域を実現するためのディスク31と、当該ディスク31へのアクセスを制御するストレージコントローラSCとを備えている。ストレージコントローラSCは、ライトバックキャッシュ(ライトバック方式を適用するディスクキャッシュ)として用いられるキャッシュメモリ32と、当該キャッシュメモリ32を管理するキャッシュ管理モジュール33とを備えている。キャッシュ管理モジュール33は、ストレージ装置30にインストールされた特定のソフトウェアプログラムを当該ストレージ装置30が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体、例えばフロッピー(登録商標)ディスクに代表される磁気ディスク、CD−ROM、DVDに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等の記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード(頒布)されても構わない。   The storage device 30 includes a disk 31 for realizing a secondary storage area and a storage controller SC for controlling access to the disk 31. The storage controller SC includes a cache memory 32 that is used as a write-back cache (disk cache to which a write-back method is applied), and a cache management module 33 that manages the cache memory 32. The cache management module 33 is realized by the storage device 30 reading and executing a specific software program installed in the storage device 30. This program is stored in a computer-readable storage medium such as a magnetic disk represented by a floppy (registered trademark) disk, an optical disk represented by a CD-ROM or a DVD, or a semiconductor memory represented by a flash memory. It can be stored in advance and distributed. Further, this program may be downloaded (distributed) via a network.

ディスク31は、物理ディスク、或いは当該物理ディスクの集合体としての論理ディスクのいずれであっても構わない。ディスク31の領域(2次記憶領域)には、ログ領域311と実データ領域312とが確保されている。ログ領域311と実データ領域312とに割り当てられるディスク31上の領域は、NASコントローラ10のストレージ管理モジュール11によって指定される。ログ領域311は連続する論理アドレスの領域に割り当てられている。ログ領域311は、データ更新の履歴を時系列順に保存するための、論理アドレスが連続するリングバッファとして用いられる。   The disk 31 may be a physical disk or a logical disk as an aggregate of the physical disks. In the area (secondary storage area) of the disk 31, a log area 311 and an actual data area 312 are secured. The areas on the disk 31 allocated to the log area 311 and the actual data area 312 are specified by the storage management module 11 of the NAS controller 10. The log area 311 is assigned to a continuous logical address area. The log area 311 is used as a ring buffer in which logical addresses are continuous for storing a history of data update in chronological order.

キャッシュメモリ32は、バッテリバックアップ等によりシステムダウンの際にも当該キャッシュ上のデータが保護されるように構成されている。したがって、たとえキャッシュメモリ32自体に揮発性メモリが用いられているとしても、当該キャッシュメモリ32は機能的には一種の書き換え可能な不揮発性メモリである。キャッシュメモリ32は、例えばmウェイセットアソシアティブ方式(mは2以上の整数)のキャッシュである。   The cache memory 32 is configured such that data on the cache is protected even when the system is down due to battery backup or the like. Therefore, even if a volatile memory is used for the cache memory 32 itself, the cache memory 32 is functionally a kind of rewritable nonvolatile memory. The cache memory 32 is, for example, an m-way set associative cache (m is an integer of 2 or more).

図2は、キャッシュメモリ32の構成(キャッシュ構成)を示す。同図に示すように、キャッシュメモリ32の領域は、m行(ロウ)n桁(カラム)に分割して、つまりn×m個のキャッシュブロックに分割して用いられる。本実施形態では、キャッシュメモリ32の一部の領域、例えば第0行乃至第k−1行(つまりセット0乃至k−1)のk行(kセット)は、ディスク31のログ領域311に相当する特定領域(以下、ログ相当領域と称する)321に割り当てられる。キャッシュメモリ32の残りの領域、つまり第k行乃至第m−1行(つまりセットk乃至m−1)のm−k行(m−kセット)は、ディスク31の実データ領域312に相当する特定領域(以下、実データ相当領域と称する)322に割り当てられる。   FIG. 2 shows a configuration (cache configuration) of the cache memory 32. As shown in the figure, the area of the cache memory 32 is divided into m rows (rows) and n digits (columns), that is, divided into n × m cache blocks. In this embodiment, a partial area of the cache memory 32, for example, k lines (k sets) of the 0th to k−1th lines (that is, the set 0 to k−1) correspond to the log area 311 of the disk 31. Assigned to a specific area (hereinafter referred to as a log equivalent area) 321. The remaining area of the cache memory 32, that is, mk lines (mk sets) of the kth to m−1th lines (that is, the sets k to m−1) correspond to the actual data area 312 of the disk 31. It is assigned to a specific area (hereinafter referred to as actual data equivalent area) 322.

次に、図1のシステムの動作を説明する。
まず、NASコントローラ10のシステムブート時の動作について、図3のシーケンスチャートを参照して説明する。
Next, the operation of the system of FIG. 1 will be described.
First, the operation at the time of system boot of the NAS controller 10 will be described with reference to the sequence chart of FIG.

NASコントローラ10のストレージ管理モジュール11は、システムブート時に、ストレージ装置30のキャッシュ管理モジュール33に対し、ディスク31上でログ領域311として使用するディスク31上の領域の論理アドレスを通知する(ステップS1)。すると、キャッシュ管理モジュール33はログ相当領域割り当て手段として機能して、ストレージ管理モジュール11によって通知されたログ領域311の論理アドレスに相当するキャッシュメモリ32上の領域を、ログ相当領域321として割り当てる(ステップS2)。この場合、キャッシュメモリ32上のログ相当領域321以外の領域は、ディスク31上の実データ領域312に相当する実データのためのキャッシュ領域、即ち実データ相当領域322として使用することができる。   The storage management module 11 of the NAS controller 10 notifies the logical address of the area on the disk 31 used as the log area 311 on the disk 31 to the cache management module 33 of the storage apparatus 30 at the time of system boot (step S1). . Then, the cache management module 33 functions as a log equivalent area allocation unit, and allocates an area on the cache memory 32 corresponding to the logical address of the log area 311 notified by the storage management module 11 as a log equivalent area 321 (step S2). In this case, an area other than the log equivalent area 321 on the cache memory 32 can be used as a cache area for actual data corresponding to the actual data area 312 on the disk 31, that is, an actual data equivalent area 322.

次に、クライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合の動作について、図4のシーケンスチャートを参照して説明する。
今、クライアント41-1からNASコントローラ10に対して、データ書き込み要求が送信されたものとする(ステップS11)。NASコントローラ10のストレージ管理モジュール11は、クライアント41-1からのデータ書き込み要求に応じて、要求された書き込みデータを受け取り、コミット処理を開始する(ステップS12)。
Next, an operation when a data write request from the client 41-1 to the NAS controller 10 occurs will be described with reference to the sequence chart of FIG.
Assume that a data write request is transmitted from the client 41-1 to the NAS controller 10 (step S11). The storage management module 11 of the NAS controller 10 receives the requested write data in response to a data write request from the client 41-1, and starts a commit process (step S12).

ストレージ管理モジュール11はまず、受け取ったデータをキャッシュメモリ12に格納すると共に、ストレージ装置30に対して書き込み要求(ここではログ書き込み要求)を送出する(ステップS13)。この場合の書き込み要求(ログ書き込み要求)で指定される書き込み先(ログ書き込み先)の論理アドレスは、システムブート時にNASコントローラ10のストレージ管理モジュール11から通知されたログ領域の論理アドレスの範囲内、つまりディスク31上に確保されるログ領域311の論理アドレスの範囲に入っている。   The storage management module 11 first stores the received data in the cache memory 12 and sends a write request (here, log write request) to the storage device 30 (step S13). In this case, the logical address of the write destination (log write destination) specified by the write request (log write request) is within the range of the logical address of the log area notified from the storage management module 11 of the NAS controller 10 at the time of system boot. In other words, the log area 311 secured on the disk 31 falls within the logical address range.

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求を受け取ると、当該要求で指定される書き込み先の論理アドレスがログ領域311の論理アドレス範囲に入っているか否かを判定する。この例のように、、ストレージ管理モジュール11から要求された書き込み先の論理アドレスがログ領域311の論理アドレス範囲に入っている場合、キャッシュ管理モジュール33は当該書き込み要求がログ書き込み要求であると判定する。この場合、キャッシュ管理モジュール33はデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上のログ相当領域321に保存する(ステップS14)。ここでは、要求されたデータは、ブロック単位で、ログ相当領域321内の第i(iは0〜k−1のいずれか)行(セットi)のうちの対応するカラムのキャッシュブロックに保存される。キャッシュ管理モジュール33はステップS14の後、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS15)。   When the cache management module 33 of the storage device 30 receives a write request from the storage management module 11 of the NAS controller 10, whether or not the logical address of the write destination specified by the request is within the logical address range of the log area 311. Determine whether. As in this example, when the logical address of the write destination requested from the storage management module 11 is within the logical address range of the log area 311, the cache management module 33 determines that the write request is a log write request. To do. In this case, the cache management module 33 functions as a data storage unit and stores the requested data in the log equivalent area 321 on the cache memory 32 (step S14). Here, the requested data is stored in the cache block of the corresponding column in the i-th (i is one of 0 to k−1) row (set i) in the log equivalent area 321 in units of blocks. The After step S14, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S15).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここではログ書き込み完了)が通知されると、コミット処理を完了し、クライアント41-1に書き込み完了を通知する(ステップS16,S17)。   When the write completion (here, log write completion) is notified from the cache management module 33 of the storage apparatus 30, the storage management module 11 completes the commit process and notifies the client 41-1 of the write completion (step S16, S17).

その後、NASコントローラ10のストレージ管理モジュール11はチェックポイント処理を開始する(ステップS18)。ストレージ管理モジュール11はまず、キャッシュメモリ12上で更新されたデータ(つまり、キャッシュメモリ12上での更新がストレージ装置30に反映されていないダーティなデータ)を当該ストレージ装置30の実データ領域312に書き込ませるために、ストレージ装置30のキャッシュ管理モジュール33に書き込み要求(実データ書き込み要求)を発行する(ステップS19)。この場合の書き込み要求で指定される書き込み先(実データ書き込み先)の論理アドレスは、ログ領域311の論理アドレスの範囲から外れている。   Thereafter, the storage management module 11 of the NAS controller 10 starts checkpoint processing (step S18). First, the storage management module 11 stores the data updated in the cache memory 12 (that is, dirty data in which the update on the cache memory 12 is not reflected in the storage device 30) in the actual data area 312 of the storage device 30. In order to write data, a write request (actual data write request) is issued to the cache management module 33 of the storage device 30 (step S19). In this case, the logical address of the write destination (actual data write destination) specified by the write request is out of the logical address range of the log area 311.

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求を受け取ると、当該要求で指定される書き込み先の論理アドレスがログ領域311の論理アドレス範囲に入っているか否かを判定する。この例のように、ストレージ管理モジュール11から要求された書き込み先の論理アドレスがログ領域311の論理アドレス範囲から外れている場合、キャッシュ管理モジュール33は当該書き込み要求がログ書き込み要求でない、つまり実データ書き込み要求であると判定する。この場合、キャッシュ管理モジュール33はデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上の実データ相当領域322に保存する(ステップS20)。ここでは、要求されたデータは、ブロック単位で、実データ相当領域322内の第j(jはk〜m−1のいずれか)行(セットj)のうちの対応するカラムのキャッシュブロックに保存される。キャッシュ管理モジュール33はステップS20の後、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS21)。   When the cache management module 33 of the storage device 30 receives a write request from the storage management module 11 of the NAS controller 10, whether or not the logical address of the write destination specified by the request is within the logical address range of the log area 311. Determine whether. When the logical address of the write destination requested from the storage management module 11 is out of the logical address range of the log area 311 as in this example, the cache management module 33 indicates that the write request is not a log write request, that is, real data It is determined that it is a write request. In this case, the cache management module 33 functions as a data storage unit and stores the requested data in the real data equivalent area 322 on the cache memory 32 (step S20). Here, the requested data is stored in the cache block of the corresponding column in the jth (j is any one of k to m−1) row (set j) in the actual data equivalent area 322 in units of blocks. Is done. After step S20, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S21).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここでは実データ書き込み完了)が通知されると、書き込みを完了した実データに対応して自身が管理しているログ上のデータを破棄して、チェックポイント処理を完了する(ステップS22)。   When the storage management module 11 is notified of the writing completion (actual data writing completion in this case) from the cache management module 33 of the storage device 30, the storage management module 11 corresponds to the actual data for which writing has been completed. The data is discarded and the checkpoint process is completed (step S22).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10からのストレージ装置30に対するI/O(ホストI/O)とは非同期にデステージ制御手段として機能して、予め定められたタイミングでデステージ操作を行う。本実施形態の特徴は、このデステージ操作が、キャッシュメモリ32の実データ相当領域322上で更新されたデータ(つまり、キャッシュメモリ32の実データ相当領域322上での更新がストレージ装置30に反映されていないダーティなデータ)のみを対象に行われる点にある(ステップS23)。換言すれば、本実施形態の特徴は、キャッシュメモリ32のログ相当領域321のデータブロックをデステージの対象としない点にある。上記の予め定められたタイミングとは、定期的なタイミングであるものとする。この他に、上記ステップS20でキャッシュメモリ12の実データ相当領域322にデータを格納しようとした際に、当該実データ相当領域322内の対応するカラムのキャッシュブロックが全てダーティブロックとなっている場合、つまり対応するカラムに空きブロックがない場合を、上記の予め定められたタイミングとしても良い。   The cache management module 33 of the storage device 30 functions as a destage control means asynchronously with the I / O (host I / O) from the NAS controller 10 to the storage device 30, and performs a destage operation at a predetermined timing. I do. The feature of this embodiment is that this destage operation is reflected in the storage device 30 by the data updated in the real data equivalent area 322 of the cache memory 32 (that is, the update in the real data equivalent area 322 of the cache memory 32 is reflected in the storage device 30). (Dirty data that has not been performed) is performed only on the target (step S23). In other words, the feature of this embodiment is that the data block in the log equivalent area 321 of the cache memory 32 is not subject to destage. The predetermined timing is assumed to be a regular timing. In addition, when attempting to store data in the actual data equivalent area 322 of the cache memory 12 in step S20, all the cache blocks of the corresponding columns in the actual data equivalent area 322 are dirty blocks. That is, the case where there is no empty block in the corresponding column may be set as the above-described predetermined timing.

以上の処理により、通常のNASコントローラ10とクライアント41-1〜41-Nとの間のデータの受け渡しの途中で、ストレージ装置30のキャッシュメモリ32のログ相当領域321を対象とするデステージが発生するのを抑制することができる。つまり、ホストI/Oとデステージとのキャッシュブロック上での競合が頻繁に発生するのを抑制できる。この結果、たとえログ書き込みが頻繁に行われても、キャッシュメモリ32上の対応するキャッシュブロックがリザーブ状態となることを抑止して、ログ書き込みの遅延を小さくすることが可能になり、ストレージ装置30としての性能を向上できる。   As a result of the above processing, a destage for the log equivalent area 321 of the cache memory 32 of the storage device 30 occurs during the data transfer between the normal NAS controller 10 and the clients 41-1 to 41-N. Can be suppressed. That is, it is possible to suppress frequent occurrence of contention between the host I / O and the destage on the cache block. As a result, even if log writing is frequently performed, it is possible to suppress the corresponding cache block on the cache memory 32 from being reserved, and to reduce the log writing delay. Performance can be improved.

なお、NASコントローラ10のシャットダウン処理、或いはNASコントローラ10から要求されるキャッシュシンク処理(つまりキャッシュメモリ32の内容をディスク31に反映させるための処理)の場合は、キャッシュ管理モジュール33は、ログ相当領域321と実データ相当領域322とに無関係に、キャッシュメモリ32上の全ての更新されたデータをディスク31に書き出す。   In the case of the shutdown process of the NAS controller 10 or the cache sync process requested from the NAS controller 10 (that is, the process for reflecting the contents of the cache memory 32 on the disk 31), the cache management module 33 stores the log equivalent area. All the updated data on the cache memory 32 is written to the disk 31 regardless of the actual data equivalent area 322 and 321.

[第1の変形例]
次に、上記実施形態の第1の変形例について説明する。第1の変形例では、上記実施形態と異なって、NASコントローラ10のストレージ管理モジュール11からストレージ装置30のキャッシュ管理モジュール33に対して、ディスク31上でログ領域311として使用するディスク31上の領域の論理アドレスは通知されない。このため、キャッシュ管理モジュール33は、キャッシュメモリ32のキャッシュメモリ領域を、ログ相当領域321と実データ相当領域322とに区分して用いることはできない。そこで第1の変形例では、キャッシュメモリ32の各キャッシュブロックのうち、ログ領域311内のブロックが割り当てられるキャッシュブロック(以下、ログ領域相当のブロックまたはログ領域相当のキャッシュブロックと称する)のデータ(つまりログデータ)は頻繁に更新されることを利用して、キャッシュメモリ32上のログデータを対象とするデステージの発生を抑制可能としている。つまり第1の変形例の特徴は、キャッシュメモリ32の各キャッシュブロックのうちデステージの対象とするブロックを、アクセス頻度に応じて選択するようにした点にある。
[First Modification]
Next, a first modification of the above embodiment will be described. In the first modification, unlike the above embodiment, the area on the disk 31 used as the log area 311 on the disk 31 from the storage management module 11 of the NAS controller 10 to the cache management module 33 of the storage apparatus 30. The logical address of is not notified. For this reason, the cache management module 33 cannot divide and use the cache memory area of the cache memory 32 into the log equivalent area 321 and the actual data equivalent area 322. Therefore, in the first modified example, among the cache blocks of the cache memory 32, data of a cache block (hereinafter referred to as a log area equivalent block or a log area equivalent cache block) to which a block in the log area 311 is allocated (hereinafter referred to as a log area equivalent block or a log area equivalent cache block). That is, log data) is frequently updated, so that it is possible to suppress the occurrence of destage for the log data on the cache memory 32. That is, the feature of the first modification is that a block to be destaged among the cache blocks of the cache memory 32 is selected according to the access frequency.

そこで、ストレージ装置30のキャッシュ管理モジュール33は、キャッシュメモリ32の各キャッシュブロックのアクセス頻度を管理するために、図5に示すアクセス頻度管理テーブル331を有する。このアクセス頻度管理テーブル331の各エントリは、キャッシュメモリ32の各キャッシュブロックBij(i=0〜m−1,j=0〜n−1)に対応付けられており、当該ブロックBijのアクセス頻度を管理するためのアクセス頻度情報Fijを保持する。アクセス頻度情報Fijは、対応するブロックが一定時間にアクセス(更新)された回数を示す。但し、キャッシュブロックのデータがデステージされた場合には、アクセス頻度情報Fijは初期化され、当該アクセス頻度情報Fijの示すアクセス頻度は0となる。   Therefore, the cache management module 33 of the storage apparatus 30 has an access frequency management table 331 shown in FIG. 5 in order to manage the access frequency of each cache block in the cache memory 32. Each entry of the access frequency management table 331 is associated with each cache block Bij (i = 0 to m−1, j = 0 to n−1) of the cache memory 32, and the access frequency of the block Bij is set. Access frequency information Fij for management is held. The access frequency information Fij indicates the number of times the corresponding block has been accessed (updated) in a certain time. However, when the cache block data is destaged, the access frequency information Fij is initialized, and the access frequency indicated by the access frequency information Fij is zero.

次に、上記実施形態の第1の変形例の動作を、上記実施形態と同様に、クライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合を例に、図6のシーケンスチャートを参照して説明する。。   Next, referring to the sequence chart of FIG. 6 for the operation of the first modification of the above embodiment, taking the case where a data write request from the client 41-1 to the NAS controller 10 is generated as in the above embodiment. To explain. .

NASコントローラ10のストレージ管理モジュール11は、クライアント41-1からのデータ書き込み要求に応じて(ステップS31)、要求された書き込みデータを受け取り、コミット処理を開始する(ステップS32)。ストレージ管理モジュール11は、受け取ったデータをキャッシュメモリ12に格納すると共に、ストレージ装置30に対して書き込み要求(ここではログ書き込み要求)を送出する(ステップS33)。   In response to the data write request from the client 41-1 (step S31), the storage management module 11 of the NAS controller 10 receives the requested write data and starts the commit process (step S32). The storage management module 11 stores the received data in the cache memory 12 and sends a write request (here, a log write request) to the storage device 30 (step S33).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求を受け取るとデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上のキャッシュブロックに保存する(ステップS34a)。同時にキャッシュ管理モジュール33はアクセス頻度管理手段として機能して、要求されたデータが保存されたキャッシュブロックに対応するアクセス頻度管理テーブル331のエントリに保持されているアクセス頻度情報を更新する(ステップS34b)。その後、キャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS35)。   When the cache management module 33 of the storage device 30 receives a write request from the storage management module 11 of the NAS controller 10, it functions as a data storage unit and stores the requested data in a cache block on the cache memory 32 ( Step S34a). At the same time, the cache management module 33 functions as an access frequency management means, and updates the access frequency information held in the entry of the access frequency management table 331 corresponding to the cache block in which the requested data is stored (step S34b). . Thereafter, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S35).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここではログ書き込み完了)が通知されると、コミット処理を完了し、クライアント41-1に書き込み完了を通知する(ステップS36,S37)。   When the write completion (here, log write completion) is notified from the cache management module 33 of the storage apparatus 30, the storage management module 11 completes the commit process and notifies the client 41-1 of the write completion (step S36, S37).

その後、NASコントローラ10のストレージ管理モジュール11はチェックポイント処理を開始する(ステップS38)。ストレージ管理モジュール11はまず、キャッシュメモリ12上で更新されたデータをディスク31の実データ領域312に書き込ませるために、ストレージ装置30のキャッシュ管理モジュール33に書き込み要求(実データ書き込み要求)を発行する(ステップS39)。   Thereafter, the storage management module 11 of the NAS controller 10 starts checkpoint processing (step S38). The storage management module 11 first issues a write request (actual data write request) to the cache management module 33 of the storage apparatus 30 in order to write the data updated on the cache memory 12 to the real data area 312 of the disk 31. (Step S39).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求(実データ書き込み要求)を受け取るとデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上の対応するキャッシュブロックに保存する(ステップS40a)。同時にキャッシュ管理モジュール33はアクセス頻度管理手段として機能して、要求されたデータが保存されたキャッシュブロックに対応するアクセス頻度管理テーブル331のエントリに保持されているアクセス頻度情報を更新する(ステップS40b)。その後、キャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS41)。   When the cache management module 33 of the storage device 30 receives a write request (actual data write request) from the storage management module 11 of the NAS controller 10, it functions as a data storage unit, and the requested data is stored in the cache memory 32. The data is stored in the corresponding cache block (step S40a). At the same time, the cache management module 33 functions as an access frequency management means to update the access frequency information held in the entry of the access frequency management table 331 corresponding to the cache block in which the requested data is stored (step S40b). . Thereafter, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S41).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここでは実データ書き込み完了)が通知されると、書き込みを完了したログ上のデータを破棄して、チェックポイント処理を完了する(ステップS42)。   When the storage management module 11 is notified from the cache management module 33 of the storage device 30 that the writing is completed (here, the actual data writing is completed), the storage management module 11 discards the data on the log that has been written and completes the checkpoint process. (Step S42).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10からのストレージ装置30に対するI/O(ホストI/O)とは非同期にデステージ制御手段として機能して、上記実施形態と同様のタイミングでデステージ処理(ステップS43)を行う。このデステージ処理(ステップS43)の具体的な手順について、図7のフローチャートを参照して説明する。   The cache management module 33 of the storage device 30 functions as a destage control means asynchronously with the I / O (host I / O) from the NAS controller 10 to the storage device 30, and performs de-decoding at the same timing as in the above embodiment. Stage processing (step S43) is performed. A specific procedure of the destage processing (step S43) will be described with reference to the flowchart of FIG.

まずキャッシュ管理モジュール33は、アクセス頻度管理テーブル331の各エントリに保持されているアクセス頻度情報Fijを参照する(ステップS43a)。次にキャッシュ管理モジュール33は、各アクセス頻度情報Fijによって示される、キャッシュメモリ32の各キャッシュブロックBijのアクセス頻度をもとに、当該各キャッシュブロックのうち、アクセス頻度が一定レベルよりも低いキャッシュブロックを、実データ領域312内のブロックが割り当てられるキャッシュブロック(以下、実データ領域相当のブロックまたは実データ領域相当のキャッシュブロックと称する)であると推定して選択する(ステップS43b)。キャッシュ管理モジュール33は、この選択されたキャッシュブロック、即ちアクセス頻度が一定レベルよりも低い、実データ領域相当のキャッシュブロックであると推定されたキャッシュブロックだけを対象にデステージ操作を行う(ステップS43c)。デステージされたキャッシュブロックのアクセス頻度情報は初期化される。ここでは、アクセス頻度が一定レベルを超えているキャッシュブロックは、ログ領域相当のキャッシュブロックと推定されて、デステージの対象から外される。   First, the cache management module 33 refers to the access frequency information Fij held in each entry of the access frequency management table 331 (step S43a). Next, based on the access frequency of each cache block Bij in the cache memory 32 indicated by each access frequency information Fij, the cache management module 33 selects a cache block whose access frequency is lower than a certain level among the cache blocks. Is selected on the assumption that it is a cache block to which a block in the actual data area 312 is allocated (hereinafter referred to as a block corresponding to the actual data area or a cache block corresponding to the actual data area) (step S43b). The cache management module 33 performs a destage operation only on the selected cache block, that is, a cache block whose access frequency is lower than a certain level and estimated to be a cache block corresponding to the actual data area (step S43c). ). The access frequency information of the destaged cache block is initialized. Here, a cache block whose access frequency exceeds a certain level is estimated as a cache block corresponding to the log area, and is excluded from the destage target.

以上の処理により、アクセス頻度が一定レベルを超えているキャッシュブロックはデステージの対象とはならない。ここで、ディスク31の記憶領域(2次記憶領域)のうち、ログ領域311の占める割合は実データ領域312に比較して著しく小さい。しかし、ログ書き込み要求と実データ書き込み要求とは同一回数発生する。このことは、ログ領域311内の各ブロックのアクセス頻度をF1、実データ領域312内の各ブロックのアクセス頻度をF2で表すと、F1≫F2となることを意味する。したがって、ストレージ装置30のキャッシュメモリ32の各キャッシュブロックのうちアクセス頻度が高いブロックは、ログ領域311に対応するキャッシュブロック(ログ領域相当のキャッシュブロック)である確率が高い。同様に、キャッシュメモリ32の各キャッシュブロックのうちアクセス頻度が低いブロックは、実データ領域312に対応するキャッシュブロック(実データ領域相当のキャッシュブロック)である確率が高い。したがって第1の変形例においては、キャッシュメモリ32のキャッシュブロックのうち、実データ領域相当のキャッシュブロックがデステージの対象となる確率が高い。よって第1の変形例によれば、通常のNASコントローラ10とクライアント41-1〜41-Nとの間のデータの受け渡しの途中で、キャッシュメモリ32上のログ領域相当のブロックを対象とするデステージ(つまりログデータのデステージ)が発生するのを抑制することができる。この結果、たとえログ書き込みが頻繁に行われても、キャッシュメモリ32上の対応するキャッシュブロックがリザーブ状態となることを抑止して、ログ書き込みの遅延を小さくすることが可能になる。   As a result of the above processing, a cache block whose access frequency exceeds a certain level is not a destage target. Here, the proportion of the log area 311 in the storage area (secondary storage area) of the disk 31 is significantly smaller than the actual data area 312. However, the log write request and the actual data write request are generated the same number of times. This means that if the access frequency of each block in the log area 311 is represented by F1, and the access frequency of each block in the actual data area 312 is represented by F2, F1 >> F2. Therefore, a block having a high access frequency among the cache blocks of the cache memory 32 of the storage apparatus 30 has a high probability of being a cache block corresponding to the log area 311 (a cache block corresponding to the log area). Similarly, a block with low access frequency among the cache blocks of the cache memory 32 has a high probability of being a cache block corresponding to the real data area 312 (a cache block corresponding to the real data area). Therefore, in the first modified example, among the cache blocks of the cache memory 32, there is a high probability that a cache block corresponding to the actual data area is a destage target. Therefore, according to the first modification, the data corresponding to the block corresponding to the log area on the cache memory 32 during the data transfer between the normal NAS controller 10 and the clients 41-1 to 41-N is processed. It is possible to suppress the occurrence of a stage (that is, log data destage). As a result, even if log writing is frequently performed, it is possible to suppress the corresponding cache block on the cache memory 32 from being reserved and to reduce the log writing delay.

なお、NASコントローラ10のシャットダウン処理、或いはNASコントローラ10から要求されるキャッシュシンク処理の場合は、キャッシュ管理モジュール33は、アクセス頻度に無関係に、キャッシュメモリ32上の全ての更新されたデータをディスク31に書き出す。   In the case of the shutdown process of the NAS controller 10 or the cache sync process requested by the NAS controller 10, the cache management module 33 stores all the updated data on the cache memory 32 regardless of the access frequency. Export to

[第2の変形例]
次に、上記実施形態の第2の変形例について説明する。第2の変形例の特徴は、キャッシュメモリ32の各キャッシュブロックのアクセス頻度を管理する代わりに、デステージの対象となるキャッシュブロックの順番を、LRU(Least Recently Used)ルールに従って管理するようにした点にある。
[Second Modification]
Next, a second modification of the above embodiment will be described. The feature of the second modification is that instead of managing the access frequency of each cache block of the cache memory 32, the order of the cache blocks to be destaged is managed according to the LRU (Least Recently Used) rule. In the point.

そこで、ストレージ装置30のキャッシュ管理モジュール33は、キャッシュメモリ32上のデステージの対象となるキャッシュブロック(つまりダーティブロック)の順番を管理するためのデステージ待ちブロック管理テーブルとしての、図8に示すデステージ待ち行列(デステージキュー)332を有する。このデステージ待ち行列332は、キャッシュメモリ32上の各ダーティブロックBijの識別子(ブロックID)の列であり、デステージの対象となるダーティブロックの列を表す。デステージ待ち行列332におけるブロックIDの並び順、つまりダーティブロックの並び順はLRUルールに従って管理される。   Therefore, the cache management module 33 of the storage device 30 is shown in FIG. 8 as a destage waiting block management table for managing the order of cache blocks (that is, dirty blocks) to be destaged on the cache memory 32. It has a destage queue (destage queue) 332. The destage queue 332 is a column of identifiers (block IDs) of each dirty block Bij on the cache memory 32, and represents a column of dirty blocks to be destaged. The arrangement order of block IDs in the destage queue 332, that is, the arrangement order of dirty blocks is managed according to the LRU rule.

次に、第2の変形例の動作の概要について説明する。まず、NASコントローラ10のストレージ管理モジュール11は、システムブート時に、ストレージ装置30のキャッシュ管理モジュール33に対し、ディスク31上でログ領域311として使用するディスク31上の領域のサイズ(つまりログサイズ)を通知する。ここでは、キャッシュメモリ32のキャッシュメモリ領域は、ログ相当領域321と実データ相当領域322とに区分されない。   Next, an outline of the operation of the second modification will be described. First, the storage management module 11 of the NAS controller 10 determines the size (that is, log size) of the area on the disk 31 to be used as the log area 311 on the disk 31 with respect to the cache management module 33 of the storage apparatus 30 at the time of system boot. Notice. Here, the cache memory area of the cache memory 32 is not divided into a log equivalent area 321 and a real data equivalent area 322.

ストレージ装置30のキャッシュ管理モジュール33は、キャッシュメモリ32内のデステージ操作の対象となるダーティブロックの順番を、LRUルールに従って更新されるデステージ待ち行列332により管理する。つまりキャッシュ管理モジュール33は、ダーティブロックであっても使用頻度の高いキャッシュブロックは、デステージ対象としての優先度を低くする。このため、ログ領域相当のキャッシュブロックのように、使用頻度の高いキャッシュブロックは他のダーティブロックよりもデステージの優先度が低くなる。更にキャッシュ管理モジュール33は、キャッシュメモリ32内のダーティブロックの総容量が、NASコントローラ10のストレージ管理モジュール11から通知されたログサイズ以下の状態では、キャッシュメモリ32内のダーティブロックは全てログ領域相当のキャッシュブロックである可能性が高いとして、デステージを行わない。以上の仕組みにより、使用頻度の高いログ領域相当のキャッシュブロックがデステージ対象として選択されることを避けることができる。   The cache management module 33 of the storage apparatus 30 manages the order of dirty blocks that are targets of the destage operation in the cache memory 32 using the destage queue 332 that is updated according to the LRU rule. That is, the cache management module 33 lowers the priority as a destage target for a cache block that is frequently used even if it is a dirty block. For this reason, a cache block with high use frequency, such as a cache block corresponding to a log area, has a lower destaging priority than other dirty blocks. Further, when the total capacity of dirty blocks in the cache memory 32 is equal to or smaller than the log size notified from the storage management module 11 of the NAS controller 10, the cache management module 33 is equivalent to all log blocks in the cache memory 32. Destage is not performed because there is a high possibility that this is a cache block. With the above mechanism, it is possible to avoid selecting a cache block corresponding to a log area with high use frequency as a destage target.

次に、第2の変形例の動作の詳細について、クライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合を例に、図9のシーケンスチャートを参照して説明する。   Next, details of the operation of the second modification will be described with reference to the sequence chart of FIG. 9, taking as an example the case where a data write request from the client 41-1 to the NAS controller 10 is generated.

NASコントローラ10のストレージ管理モジュール11は、クライアント41-1からのデータ書き込み要求に応じて(ステップS51)、要求された書き込みデータを受け取り、コミット処理を開始する(ステップS52)。ストレージ管理モジュール11は、受け取ったデータをキャッシュメモリ12に格納すると共に、ストレージ装置30に対して書き込み要求(ここではログ書き込み要求)を送出する(ステップS53)。   In response to a data write request from the client 41-1 (step S51), the storage management module 11 of the NAS controller 10 receives the requested write data and starts commit processing (step S52). The storage management module 11 stores the received data in the cache memory 12 and sends a write request (here, a log write request) to the storage device 30 (step S53).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求を受け取るとデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上のキャッシュブロックに保存する(ステップS54a)。同時にキャッシュ管理モジュール33はデステージ待ちブロック管理手段として機能して、要求されたデータが保存されたキャッシュブロック(つまりダーティブロック)のIDを、デステージ待ち行列332の最後尾につなぐ(ステップS54b)。以下の説明では、説明を簡略化するために、デステージ待ち行列332がキャッシュブロック(ダーティブロック)の列であるとして扱う。その後、キャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS55)。   When the cache management module 33 of the storage device 30 receives a write request from the storage management module 11 of the NAS controller 10, it functions as a data storage unit and stores the requested data in a cache block on the cache memory 32 ( Step S54a). At the same time, the cache management module 33 functions as a destage wait block management means, and connects the ID of the cache block (that is, dirty block) in which the requested data is stored to the end of the destage queue 332 (step S54b). . In the following description, in order to simplify the description, the destage queue 332 is treated as a column of cache blocks (dirty blocks). Thereafter, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S55).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここではログ書き込み完了)が通知されると、コミット処理を完了し、クライアント41-1に書き込み完了を通知する(ステップS56,S57)。   When the write completion (here, log write completion) is notified from the cache management module 33 of the storage device 30, the storage management module 11 completes the commit process and notifies the client 41-1 of the write completion (step S56, S57).

その後、NASコントローラ10のストレージ管理モジュール11はチェックポイント処理を開始する(ステップS58)。ストレージ管理モジュール11はまず、キャッシュメモリ12上で更新されたデータをディスク31の実データ領域312に書き込ませるために、ストレージ装置30のキャッシュ管理モジュール33に書き込み要求(実データ書き込み要求)を発行する(ステップS59)。   Thereafter, the storage management module 11 of the NAS controller 10 starts checkpoint processing (step S58). The storage management module 11 first issues a write request (actual data write request) to the cache management module 33 of the storage apparatus 30 in order to write the data updated on the cache memory 12 to the real data area 312 of the disk 31. (Step S59).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求(実データ書き込み要求)を受け取るとデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上の対応するキャッシュブロックに保存する(ステップS60a)。同時にキャッシュ管理モジュール33はデステージ待ちブロック管理手段として機能して、要求されたデータが保存されたキャッシュブロックを、デステージ待ち行列332の最後尾につなぐ(ステップS60b)。その後、キャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS61)。   When the cache management module 33 of the storage device 30 receives a write request (actual data write request) from the storage management module 11 of the NAS controller 10, it functions as a data storage unit, and the requested data is stored in the cache memory 32. The data is stored in the corresponding cache block (step S60a). At the same time, the cache management module 33 functions as a destage wait block management means, and connects the cache block storing the requested data to the end of the destage queue 332 (step S60b). Thereafter, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S61).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここでは実データ書き込み完了)が通知されると、書き込みを完了したログ上のデータを破棄して、チェックポイント処理を完了する(ステップS62)。   When the storage management module 11 is notified from the cache management module 33 of the storage device 30 that the writing is completed (here, the actual data writing is completed), the storage management module 11 discards the data on the log that has been written and completes the checkpoint process. (Step S62).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10からのストレージ装置30に対するI/O(ホストI/O)とは非同期にデステージ制御手段として機能して、予め定められたタイミングで(例えば定期的に)デステージ処理(ステップS63)を行う。このデステージ処理(ステップS63)の具体的な手順について、図10のフローチャートを参照して説明する。   The cache management module 33 of the storage device 30 functions as a destage control means asynchronously with the I / O (host I / O) from the NAS controller 10 to the storage device 30, and at a predetermined timing (for example, periodically) The destage processing (step S63) is performed. A specific procedure of this destage processing (step S63) will be described with reference to the flowchart of FIG.

まずキャッシュ管理モジュール33は、キャッシュメモリ32内のダーティブロックの数をカウントして、当該ダーティブロックの数からダーティブロックの総容量を算出する(ステップS63a,S63b)。次にキャッシュ管理モジュール33は、ダーティブロックの総容量が、NASコントローラ10のストレージ管理モジュール11から通知されたログサイズを超えているかを判定する(ステップS63c)。キャッシュ管理モジュール33は、ダーティブロックの総容量が、ログサイズを超えている場合に限り、キャッシュメモリ32内のダーティブロックが、実データ領域相当のキャッシュブロックを含んでいるとして、デステージの対象となるキャッシュブロックを選択する(ステップS63d)。ここでは、ステージ待ち行列332によって管理されているダーティブロックのうち、ログサイズを超えた分の先頭側のダーティブロック、つまり最後にアクセスがあってからの時間経過がより大きいダーティブロックが、実データ領域相当のキャッシュブロックであると推定されて選択される。これに対し、ステージ待ち行列332の後尾側のダーティブロック、即ち頻繁にアクセスされるダーティブロックは、ログ領域相当のキャッシュブロックであると推定されて、デステージの対象から外される。キャッシュ管理モジュール33は、ステップS63cで選択されたダーティブロックを対象にデステージ操作を行う(ステップS63e)。デステージされたブロックは、デステージ待ち行列332から外される。   First, the cache management module 33 counts the number of dirty blocks in the cache memory 32, and calculates the total capacity of the dirty blocks from the number of dirty blocks (steps S63a and S63b). Next, the cache management module 33 determines whether the total capacity of the dirty block exceeds the log size notified from the storage management module 11 of the NAS controller 10 (step S63c). The cache management module 33 determines that the dirty block in the cache memory 32 includes a cache block equivalent to the actual data area only when the total capacity of the dirty block exceeds the log size. A cache block is selected (step S63d). Here, among the dirty blocks managed by the stage queue 332, the first dirty block that exceeds the log size, that is, the dirty block whose time has elapsed since the last access is the actual data The cache block corresponding to the area is estimated and selected. On the other hand, the dirty block on the tail side of the stage queue 332, that is, the dirty block that is frequently accessed, is estimated to be a cache block corresponding to the log area and is excluded from the destage target. The cache management module 33 performs a destage operation on the dirty block selected in step S63c (step S63e). The destaged block is removed from the destage queue 332.

以上の処理により、キャッシュメモリ32上の使用頻度の高いログ領域相当のキャッシュブロックがデステージ対象として選択されるのを抑制できる。よって第2の変形例によれば、通常のNASコントローラ10とクライアント41-1〜41-Nとの間のデータの受け渡しの途中で、ログデータのデステージが発生するのを抑制することができる。この結果、たとえログ書き込みが頻繁に行われても、キャッシュメモリ32上の対応するキャッシュブロックがリザーブ状態となることを抑止して、ログ書き込みの遅延を小さくすることが可能になる。   With the above processing, it is possible to suppress selection of a cache block corresponding to a log area with high use frequency on the cache memory 32 as a destage target. Therefore, according to the second modification, it is possible to suppress the occurrence of log data destage during the data transfer between the normal NAS controller 10 and the clients 41-1 to 41-N. . As a result, even if log writing is frequently performed, it is possible to suppress the corresponding cache block on the cache memory 32 from being reserved and to reduce the log writing delay.

なお、NASコントローラ10のシャットダウン処理、或いはNASコントローラ10から要求されるキャッシュシンク処理の場合は、キャッシュ管理モジュール33は、デステージ待ち行列332の状態に無関係に、キャッシュメモリ32上の全ての更新されたデータをディスク31に書き出す。   In the case of the shutdown process of the NAS controller 10 or the cache sync process requested from the NAS controller 10, the cache management module 33 updates all the cache memory 32 regardless of the state of the destage queue 332. The recorded data is written to the disk 31.

[第3の変形例]
次に、上記実施形態の第3の変形例について説明する。第3の変形例の特徴は、デステージの対象となるキャッシュブロック(ダーティブロック)の順番を、キャッシュメモリ32のカラム(キャッシュカラム)毎に、LRUルールに従って管理するようにした点にある。
[Third Modification]
Next, a third modification of the above embodiment will be described. The feature of the third modification is that the order of cache blocks (dirty blocks) to be destaged is managed according to the LRU rule for each column (cache column) of the cache memory 32.

そこで、ストレージ装置30のキャッシュ管理モジュール33は、キャッシュメモリ32のカラム0〜n−1に対応して、図11に示すデステージ待ち行列(デステージキュー)332-0〜332-(n-1)を有する。デステージ待ち行列332-j(j=0〜n−1)は、キャッシュメモリ32のカラムjに属する各ダーティブロックBijのブロックIDの列であり、カラムjにおいてデステージの対象となるダーティブロックの列を表す。デステージ待ち行列332-jにおけるブロックIDの並び順、つまりダーティブロックの並び順はLRUルールに従って管理される。   Therefore, the cache management module 33 of the storage apparatus 30 corresponds to the columns 0 to n−1 of the cache memory 32 and corresponds to the destage queues (destage queues) 332-0 to 332- (n−1) shown in FIG. ). The destage queue 332-j (j = 0 to n-1) is a column of the block IDs of the dirty blocks Bij belonging to the column j of the cache memory 32, and the dirty block to be destaged in the column j Represents a column. The arrangement order of block IDs in the destage queue 332-j, that is, the arrangement order of dirty blocks is managed according to the LRU rule.

次に、第3の変形例の動作の概要について説明する。まず、NASコントローラ10のストレージ管理モジュール11は、システムブート時に、ストレージ装置30のキャッシュ管理モジュール33に対し、ディスク31上でログ領域311として使用するディスク31上の領域の、ストレージ装置30のキャッシュメモリ32の総容量に対する割合Rを通知する。ここでは、キャッシュメモリ32のキャッシュメモリ領域は、ログ相当領域321と実データ相当領域322とに区分されない。   Next, an outline of the operation of the third modification will be described. First, the storage management module 11 of the NAS controller 10 sends the cache memory of the storage device 30 in the area on the disk 31 used as the log area 311 on the disk 31 to the cache management module 33 of the storage apparatus 30 at the time of system boot. The ratio R to the total capacity of 32 is notified. Here, the cache memory area of the cache memory 32 is not divided into a log equivalent area 321 and a real data equivalent area 322.

キャッシュメモリ32は、図2に示されているように、mウェイセットアソシアティブ方式のキャッシュである。キャッシュメモリ32の各カラム(キャッシュカラム)jには、論理アドレスに対して同一のハッシュ値を持つキャッシュブロックが割り当てられる。このため、ログ領域311のように論理アドレス上で連続する領域に相当するキャッシュブロックは、各カラムに一様に分散して割り当てられることになる。なお、上記実施形態、第1の変形例及び第2の変形例では、キャッシュメモリ32は必ずしもmウェイセットアソシアティブ方式のキャッシュである必要はない。   As shown in FIG. 2, the cache memory 32 is an m-way set associative cache. A cache block having the same hash value for a logical address is assigned to each column (cache column) j of the cache memory 32. For this reason, cache blocks corresponding to areas continuous on logical addresses, such as the log area 311, are uniformly distributed and allocated to each column. In the above embodiment, the first modification, and the second modification, the cache memory 32 does not necessarily have to be an m-way set associative cache.

ストレージ装置30のキャッシュ管理モジュール33は、キャッシュメモリ32内のデステージ操作の対象となるキャッシュブロックの順番を、カラムj毎にLRUルールに従って更新されるデステージ待ち行列332-jにより管理する。つまりキャッシュ管理モジュール33は、カラムjに属するキャッシュブロックのうち、使用頻度の高いキャッシュブロックはダーティブロックであってもデステージ対象としての優先度を低くする。このため、ログ領域相当のキャッシュブロックのように、使用頻度の高いキャッシュブロックは他のダーティブロックよりもデステージの優先度が低くなる。更にキャッシュ管理モジュール33は、カラムjに属するキャッシュブロックの数に対するダーティブロックの数の割合Rjが、NASコントローラ10のストレージ管理モジュール11から通知された割合R以下の状態では、カラムjに属するダーティブロックは全てログ領域相当のキャッシュブロックである可能性が高いとして、デステージを行わない。以上の仕組みにより、使用頻度の高いログ領域に相当するキャッシュブロックがデステージ対象として選択されることを避けることができる。   The cache management module 33 of the storage apparatus 30 manages the order of cache blocks to be destaged in the cache memory 32 by using a destage queue 332-j that is updated according to the LRU rule for each column j. In other words, the cache management module 33 lowers the priority as a destage target even if a cache block having a high use frequency among the cache blocks belonging to the column j is a dirty block. For this reason, a cache block with high use frequency, such as a cache block corresponding to a log area, has a lower destaging priority than other dirty blocks. Furthermore, the cache management module 33 determines that the dirty block belonging to column j is in a state where the ratio Rj of the number of dirty blocks to the number of cache blocks belonging to column j is equal to or less than the ratio R notified from the storage management module 11 of the NAS controller 10. Are not likely to be cache blocks corresponding to the log area, and destage is not performed. With the above mechanism, it is possible to avoid selecting a cache block corresponding to a frequently used log area as a destage target.

次に、第3の変形例の動作の詳細について、クライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合を例に、図12のシーケンスチャートを参照して説明する。   Next, details of the operation of the third modification will be described with reference to the sequence chart of FIG. 12, taking as an example a case where a data write request from the client 41-1 to the NAS controller 10 is generated.

NASコントローラ10のストレージ管理モジュール11は、クライアント41-1からのデータ書き込み要求に応じて(ステップS71)、要求された書き込みデータを受け取り、コミット処理を開始する(ステップS72)。ストレージ管理モジュール11は、受け取ったデータをキャッシュメモリ12に格納すると共に、ストレージ装置30に対して書き込み要求(ここではログ書き込み要求)を送出する(ステップS73)。   In response to the data write request from the client 41-1 (step S71), the storage management module 11 of the NAS controller 10 receives the requested write data and starts the commit process (step S72). The storage management module 11 stores the received data in the cache memory 12 and sends a write request (here, a log write request) to the storage device 30 (step S73).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求を受け取るとデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上のキャッシュブロックに保存する(ステップS74a)。このキャッシュブロックは、書き込み要求で指定された論理アドレスで決まるキャッシュメモリ32上のカラムjに属するクリーンなキャッシュブロック(つまり、データ更新がディスク31に既に反映されているキャッシュブロック)の中から選択される。同時にキャッシュ管理モジュール33はデステージ待ちブロック管理手段として機能して、要求されたデータが保存されたキャッシュブロック(のID)を、デステージ待ち行列332-jの最後尾につなぐ(ステップS74b)。その後、キャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS75)。   When the cache management module 33 of the storage device 30 receives a write request from the storage management module 11 of the NAS controller 10, it functions as a data storage unit and stores the requested data in a cache block on the cache memory 32 ( Step S74a). This cache block is selected from clean cache blocks belonging to the column j on the cache memory 32 determined by the logical address specified by the write request (that is, the cache block whose data update has already been reflected in the disk 31). The At the same time, the cache management module 33 functions as a destage wait block management means, and connects the cache block (ID) in which the requested data is stored to the end of the destage queue 332-j (step S74b). Thereafter, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S75).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここではログ書き込み完了)が通知されると、コミット処理を完了し、クライアント41-1に書き込み完了を通知する(ステップS76,S77)。   When the write completion (here, log write completion) is notified from the cache management module 33 of the storage device 30, the storage management module 11 completes the commit process and notifies the client 41-1 of the write completion (Step S76, S77).

その後、NASコントローラ10のストレージ管理モジュール11はチェックポイント処理を開始する(ステップS78)。ストレージ管理モジュール11はまず、キャッシュメモリ12上で更新されたデータをディスク31の実データ領域312に書き込ませるために、ストレージ装置30のキャッシュ管理モジュール33に書き込み要求(実データ書き込み要求)を発行する(ステップS79)。   Thereafter, the storage management module 11 of the NAS controller 10 starts checkpoint processing (step S78). The storage management module 11 first issues a write request (actual data write request) to the cache management module 33 of the storage apparatus 30 in order to write the data updated on the cache memory 12 to the real data area 312 of the disk 31. (Step S79).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11からの書き込み要求(実データ書き込み要求)を受け取るとデータ格納手段として機能して、要求されたデータを、キャッシュメモリ32上の対応するカラムに属するキャッシュブロックに保存する(ステップS80a)。同時にキャッシュ管理モジュール33はデステージ待ちブロック管理手段として機能して、要求されたデータが保存されたキャッシュブロックを、デステージ待ち行列332-0〜332-(n-1)のうちの対応するデステージ待ち行列の最後尾につなぐ(ステップS80b)。その後、キャッシュ管理モジュール33は、NASコントローラ10のストレージ管理モジュール11に対して書き込み完了を通知する(ステップS81)。   When the cache management module 33 of the storage device 30 receives a write request (actual data write request) from the storage management module 11 of the NAS controller 10, it functions as a data storage unit, and the requested data is stored in the cache memory 32. It is stored in the cache block belonging to the corresponding column (step S80a). At the same time, the cache management module 33 functions as a destage wait block management means, and stores the cache block storing the requested data into the corresponding destage queues 332-0 to 332- (n-1). Connect to the end of the stage queue (step S80b). Thereafter, the cache management module 33 notifies the storage management module 11 of the NAS controller 10 of the completion of writing (step S81).

ストレージ管理モジュール11は、ストレージ装置30のキャッシュ管理モジュール33から書き込み完了(ここでは実データ書き込み完了)が通知されると、書き込みを完了したログ上のデータを破棄して、チェックポイント処理を完了する(ステップS82)。   When the storage management module 11 is notified from the cache management module 33 of the storage device 30 that the writing is completed (here, the actual data writing is completed), the storage management module 11 discards the data on the log that has been written and completes the checkpoint process. (Step S82).

ストレージ装置30のキャッシュ管理モジュール33は、NASコントローラ10からのストレージ装置30に対するI/O(ホストI/O)とは非同期にデステージ制御手段として機能して、予め定められたタイミングで(例えば定期的に)デステージ処理(ステップS83)を行う。このデステージ処理(ステップS83)の具体的な手順について、図13のフローチャートを参照して説明する。   The cache management module 33 of the storage device 30 functions as a destage control means asynchronously with the I / O (host I / O) from the NAS controller 10 to the storage device 30, and at a predetermined timing (for example, periodically) Destage processing (step S83) is performed. A specific procedure of this destage processing (step S83) will be described with reference to the flowchart of FIG.

まずキャッシュ管理モジュール33は、キャッシュメモリ32のカラムj毎にダーティブロック数をカウントして、当該カラムjに属するキャッシュブロックの数に対するダーティブロックの数の割合Rjを算出する(ステップS83a,S83b,S83c,S83g,S83h)。次にキャッシュ管理モジュール33は、カラムj毎に、ダーティブロックの数の割合Rjが、NASコントローラ10のストレージ管理モジュール11から通知された割合Rを超えているかを判定する(ステップS83d)。キャッシュ管理モジュール33は、RjがRを超えているカラムjに限り、当該カラムjのダーティブロックが、実データ領域相当のキャッシュブロックを含んでいるとして、デステージの対象となるキャッシュブロックを選択する(ステップS83e)。ここでは、デステージ待ち行列332-jによって管理されているダーティブロックのうち、割合Rを超えた分の先頭側のダーティブロック、つまり最後にアクセスがあってから時間経過がより大きいダーティブロックが、実データ領域相当のキャッシュブロックであると推定されて選択される。これに対し、ステージ待ち行列332-jの後尾側のダーティブロック、即ち頻繁にアクセスされるダーティブロックは、ログ領域相当のキャッシュブロックであると推定されて、デステージの対象から外される。キャッシュ管理モジュール33は、ステップS83cで選択されたダーティブロックを対象にデステージ操作を行う(ステップS83f)。デステージされたキャッシュブロックは、デステージ待ち行列332-jから外される。   First, the cache management module 33 counts the number of dirty blocks for each column j of the cache memory 32, and calculates the ratio Rj of the number of dirty blocks to the number of cache blocks belonging to the column j (steps S83a, S83b, S83c). , S83g, S83h). Next, the cache management module 33 determines, for each column j, whether the ratio Rj of the number of dirty blocks exceeds the ratio R notified from the storage management module 11 of the NAS controller 10 (step S83d). The cache management module 33 selects a cache block to be destaged on the assumption that the dirty block in the column j includes a cache block corresponding to the actual data area only for the column j in which Rj exceeds R. (Step S83e). Here, of the dirty blocks managed by the destage queue 332-j, the first dirty block that exceeds the ratio R, that is, the dirty block whose time has elapsed since the last access, The cache block corresponding to the actual data area is estimated and selected. On the other hand, the dirty block on the tail side of the stage queue 332-j, that is, the frequently accessed dirty block, is estimated to be a cache block corresponding to the log area and is excluded from the destage target. The cache management module 33 performs a destage operation on the dirty block selected in step S83c (step S83f). The destaged cache block is removed from the destage queue 332-j.

以上の処理により、キャッシュメモリ32上の使用頻度の高いログ領域相当のキャッシュブロックがデステージ対象として選択されるのを、カラム単位で抑制できる。よって第2の変形例によれば、通常のNASコントローラ10とクライアント41-1〜41-Nとの間のデータの受け渡しの途中で、ログデータのデステージが発生するのを抑制することができる。この結果、たとえログ書き込みが頻繁に行われても、キャッシュメモリ32上の対応するキャッシュブロックがリザーブ状態となることを抑止して、ログ書き込みの遅延を小さくすることが可能になる。   By the above processing, it is possible to suppress the cache block corresponding to the log area with high use frequency on the cache memory 32 from being selected as a destage target in units of columns. Therefore, according to the second modification, it is possible to suppress the occurrence of log data destage during the data transfer between the normal NAS controller 10 and the clients 41-1 to 41-N. . As a result, even if log writing is frequently performed, it is possible to suppress the corresponding cache block on the cache memory 32 from being reserved and to reduce the log writing delay.

なお、ストレージ装置30のシャットダウン処理、或いはNASコントローラ10から要求されるキャッシュシンク処理の場合は、キャッシュ管理モジュール33は、デステージ待ち行列332-0〜332-(n-1)の状態に無関係に、キャッシュメモリ32上の全ての更新されたデータをディスク31に書き出す。   In the case of the shutdown process of the storage apparatus 30 or the cache sync process requested from the NAS controller 10, the cache management module 33 does not depend on the state of the destage queues 332-0 to 332- (n-1). All the updated data on the cache memory 32 is written to the disk 31.

本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態または変形例に亘る構成要素を適宜組み合せてもよい。   The present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Further, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering different embodiment or a modification.

本発明の一実施形態に係るストレージシステムの構成を示すブロック図。1 is a block diagram showing a configuration of a storage system according to an embodiment of the present invention. 図1中のキャッシュメモリ32の構成を示すブロック図。The block diagram which shows the structure of the cache memory 32 in FIG. 同実施形態におけるNASコントローラ10のシステムブート時の動作手順を示すシーケンスチャート。The sequence chart which shows the operation | movement procedure at the time of system boot of the NAS controller 10 in the embodiment. 同実施形態においてクライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合の動作手順を示すシーケンスチャート。6 is a sequence chart showing an operation procedure when a data write request from the client 41-1 to the NAS controller 10 is generated in the embodiment. 同実施形態の第1の変形例で適用されるアクセス頻度管理テーブル331のデータ構造例を示す図。The figure which shows the data structure example of the access frequency management table 331 applied in the 1st modification of the embodiment. 同第1の変形例においてクライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合の動作手順を示すシーケンスチャート。9 is a sequence chart showing an operation procedure when a data write request is issued from the client 41-1 to the NAS controller 10 in the first modification. 図6中のデステージ処理(ステップS43)の具体的な手順を示すフローチャート。The flowchart which shows the specific procedure of the destage process (step S43) in FIG. 同実施形態の第2の変形例で適用されるデステージ待ち行列332のデータ構造例を示す図。The figure which shows the example of a data structure of the destage queue 332 applied in the 2nd modification of the embodiment. 同第2の変形例においてクライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合の動作手順を示すシーケンスチャート。11 is a sequence chart showing an operation procedure when a data write request is issued from the client 41-1 to the NAS controller 10 in the second modified example. 図9中のデステージ処理(ステップS63)の具体的な手順を示すフローチャート。10 is a flowchart showing a specific procedure of destage processing (step S63) in FIG. 同実施形態の第3の変形例で適用されるデステージ待ち行列332-0〜332-(n-1)のデータ構造例を示す図。The figure which shows the data structure example of the destage queue 332-0-332- (n-1) applied in the 3rd modification of the embodiment. 同第3の変形例においてクライアント41-1からNASコントローラ10に対するデータ書き込み要求が発生した場合の動作手順を示すシーケンスチャート。11 is a sequence chart showing an operation procedure when a data write request is issued from the client 41-1 to the NAS controller 10 in the third modified example. 図12中のデステージ処理(ステップS83)の具体的な手順を示すフローチャート。The flowchart which shows the specific procedure of the destage process (step S83) in FIG.

符号の説明Explanation of symbols

10…NASコントローラ(ホスト)、11…ストレージ管理モジュール、12…キャッシュメモリ、30…ストレージ装置、31…ディスク(2次記憶領域)、32…キャッシュメモリ(ライトバックキャッシュ)、33…キャッシュ管理モジュール、40…ネットワーク、41-1〜41-N…クライアント、311…ログ領域、312…実データ領域、321…ログ相当領域、322…実データ相当領域、331…アクセス頻度管理テーブル、332,332-0〜332-(n-1)…デステージ待ち行列、SC…ストレージコントローラ。   DESCRIPTION OF SYMBOLS 10 ... NAS controller (host), 11 ... Storage management module, 12 ... Cache memory, 30 ... Storage apparatus, 31 ... Disk (secondary storage area), 32 ... Cache memory (write-back cache), 33 ... Cache management module, 40 ... Network, 41-1 to 41-N ... Client, 311 ... Log area, 312 ... Real data area, 321 ... Log equivalent area, 322 ... Real data equivalent area, 331 ... Access frequency management table, 332, 332-0 332- (n-1) ... Destage queue, SC ... Storage controller.

Claims (9)

ホストからのデータ更新の履歴を時系列順に保存するための、論理アドレスが連続するログ領域が確保される2次記憶領域と、前記2次記憶領域に書き込むべきデータを一時格納するための、キャッシュブロック単位で管理されるライトバックキャッシュとを備えたストレージ装置において、
前記ホストのコミット処理またはチェックポイント処理の開始に伴う書き込み要求を受けて、要求されたデータを前記ライトバックキャッシュ上の前記キャッシュブロックに格納するデータ格納手段と、
前記ライトバックキャッシュ上の更新されたキャッシュブロックのデータを前記2次記憶上の本来の書き込み先に書き込むためのデステージ操作を制御するデステージ制御手段であって、前記ログ領域内を本来の書き込み先とする前記ライトバックキャッシュ上のデータが格納された、ログ領域相当のキャッシュブロックが前記デステージ操作の対象となるのを抑制するデステージ制御手段と
を具備することを特徴とするストレージ装置。
A secondary storage area that secures a log area with continuous logical addresses for storing the history of data update from the host in time series order, and a cache for temporarily storing data to be written to the secondary storage area In a storage device with a write-back cache managed in block units,
Data storage means for receiving a write request accompanying the start of the commit process or checkpoint process of the host and storing the requested data in the cache block on the write-back cache;
Destage control means for controlling a destage operation for writing the updated cache block data on the write-back cache to the original write destination on the secondary storage, and the original write in the log area And a destage control unit that suppresses a cache block corresponding to a log area in which data on the write-back cache is stored as a target of the destage operation.
前記ライトバックキャッシュはロウとカラムとによって管理されるセットアソシアティブ方式のキャッシュであり、
前記ストレージ装置は、前記ライトバックキャッシュ上の前記デステージ操作の対象となるダーティなキャッシュブロックの順番を、前記カラム毎にLRUルールに従って更新される前記カラム毎のデステージ待ち行列により管理するデステージ待ちブロック管理手段を更に具備し、
前記デステージ制御手段は、前記カラム毎の前記デステージ待ち行列の後尾側のキャッシュブロックを前記ログ領域相当のキャッシュブロックであると推定し、当該デステージ待ち行列の最後尾に近いほどデステージ対象としての優先度を低くする
ことを特徴とする請求項1記載のストレージ装置。
The write-back cache is a set associative cache managed by rows and columns,
The storage device manages the order of dirty cache blocks that are the target of the destage operation on the write-back cache by using a destage queue for each column that is updated according to an LRU rule for each column. A waiting block management means;
The destage control means estimates that the cache block on the tail side of the destage queue for each column is a cache block corresponding to the log area, and the closer to the tail of the destage queue, the destage target The storage apparatus according to claim 1, wherein the priority is reduced.
前記デステージ制御手段は、前記ライトバックキャッシュの前記各カラムにおいて、前記デステージの対象とすべきダーティなキャッシュブロックの占める割合が、前記ホストから予め通知される前記ログ領域の前記ライトバックキャッシュの容量に対する割合よりも大きい場合に、当該カラムに対応する前記デステージ待ち行列の先頭側のキャッシュブロックから前記デステージ操作の対象として選択する
ことを特徴とする請求項2記載のストレージ装置。
The destaging control means is configured so that the proportion of dirty cache blocks to be destaged in each column of the write-back cache is notified in advance by the host of the write-back cache in the log area. The storage apparatus according to claim 2, wherein when the ratio is larger than the ratio to the capacity, the destage operation target is selected from the cache block on the head side of the destage queue corresponding to the column.
前記ライトバックキャッシュ上の前記デステージ操作の対象となるダーティなキャッシュブロックの順番を、LRUルールに従って更新されるデステージ待ち行列により管理するデステージ待ちブロック管理手段を更に具備し、
前記デステージ制御手段は、前記デステージ待ち行列の後尾側のキャッシュブロックを前記ログ領域相当のキャッシュブロックであると推定し、当該デステージ待ち行列の最後尾に近いほどデステージ対象としての優先度を低くする
ことを特徴とする請求項1記載のストレージ装置。
Further comprising destage wait block management means for managing the order of dirty cache blocks to be subjected to the destage operation on the write-back cache by a destage queue updated according to LRU rules;
The destage control means estimates that the cache block on the tail side of the destage queue is a cache block corresponding to the log area, and the closer to the end of the destage queue, the priority as the destage target The storage device according to claim 1, wherein the storage device is lowered.
前記デステージ制御手段は、前記ライトバックキャッシュにおいて、前記デステージの対象とすべきダーティなキャッシュブロックの占める総容量が、前記ホストから予め通知される前記ログ領域の容量よりも大きい場合に、前記デステージ待ち行列の先頭側のキャッシュブロックから前記デステージ操作の対象として選択する
ことを特徴とする請求項4記載のストレージ装置。
The destage control means, in the write back cache, when the total capacity occupied by the dirty cache block to be destaged is larger than the capacity of the log area notified in advance from the host, The storage apparatus according to claim 4, wherein the destage operation target is selected from a cache block on a head side of the destage queue.
前記ホストから予め通知される前記ログ領域の論理アドレスをもとに、前記ライトバックキャッシュ上の、前記ログ領域の論理アドレスに対応する領域を、ログ相当領域として割り当てるログ相当領域割り当て手段を更に具備し、
前記データ格納手段は、前記書き込み要求で指定される論理アドレスが前記ログ領域の論理アドレス範囲内であるか否かにより、前記要求されたデータを前記ライトバックキャッシュ上の前記ログ相当領域内または前記ログ相当領域外のキャッシュブロックに格納し、
前記デステージ制御手段は、前記ライトバックキャッシュ上の前記ログ相当領域に含まれるキャッシュブロックを前記ログ領域相当のキャッシュブロックであると推定して前記デステージ操作の対象外とする
ことを特徴とする請求項1記載のストレージ装置。
Log equivalent area allocating means for allocating an area corresponding to the logical address of the log area on the write-back cache as a log equivalent area based on the logical address of the log area notified in advance from the host; And
The data storage means stores the requested data in the log-corresponding area on the write-back cache or on the write-back cache depending on whether the logical address specified in the write request is within the logical address range of the log area. Store in a cache block outside the log equivalent area,
The destage control means estimates that a cache block included in the log-corresponding area on the write-back cache is a cache block corresponding to the log area, and excludes it from the destage operation target. The storage apparatus according to claim 1.
前記ライトバックキャッシュの前記キャッシュブロック毎に当該ブロックのアクセス頻度を管理するためのアクセス頻度管理手段を更に具備し、
前記デステージ制御手段は、前記アクセス頻度管理手段によって管理されている前記キャッシュブロック毎のアクセス頻度をもとに、当該アクセス頻度が一定レベルを超えるキャッシュブロックを前記ログ領域相当のキャッシュブロックである推定して前記デステージ操作の対象外とする
ことを特徴とする請求項1記載のストレージ装置。
An access frequency management means for managing the access frequency of the block for each cache block of the write-back cache;
The destage control unit estimates a cache block whose access frequency exceeds a certain level as a cache block corresponding to the log area based on the access frequency for each cache block managed by the access frequency management unit. The storage apparatus according to claim 1, wherein the storage apparatus is excluded from the destage operation target.
ホストからのデータ更新の履歴を時系列順に保存するための、論理アドレスが連続するログ領域が確保される2次記憶領域へのアクセスを制御するストレージコントローラにおいて、
前記2次記憶領域に書き込むべきデータを一時格納するための、キャッシュブロック単位で管理されるライトバックキャッシュと、
前記ホストのコミット処理またはチェックポイント処理の開始に伴う書き込み要求を受けて、要求されたデータを前記ライトバックキャッシュ上の前記キャッシュブロックに格納するデータ格納手段と、
前記ライトバックキャッシュ上の更新されたキャッシュブロックのデータを前記2次記憶上の本来の書き込み先に書き込むためのデステージ操作を制御するデステージ制御手段であって、前記ログ領域内を本来の書き込み先とする前記ライトバックキャッシュ上のデータが格納された、ログ領域相当のキャッシュブロックが前記デステージ操作の対象となるのを抑制するデステージ制御手段と
を具備することを特徴とするストレージコントローラ。
In a storage controller for controlling access to a secondary storage area in which a log area with continuous logical addresses is secured for storing a history of data update from a host in chronological order,
A write-back cache managed in units of cache blocks for temporarily storing data to be written to the secondary storage area;
Data storage means for receiving a write request accompanying the start of the commit process or checkpoint process of the host and storing the requested data in the cache block on the write-back cache;
Destage control means for controlling a destage operation for writing the updated cache block data on the write-back cache to the original write destination on the secondary storage, and the original write in the log area A storage controller comprising: a destage control unit that suppresses a cache block corresponding to a log area in which data on the write-back cache is stored as a target of the destage operation.
ホストからのデータ更新の履歴を時系列順に保存するための、論理アドレスが連続するログ領域が確保される2次記憶領域と、当該2次記憶領域に書き込むべきデータを一時格納するための、キャッシュブロック単位で管理されるライトバックキャッシュとを備えたストレージ装置に適用される、前記ライトバックキャッシュを制御するためのライトバックキャッシュ制御方法であって、
前記ホストのコミット処理の開始に伴う書き込み要求を受けて、要求されたデータを前記ライトバックキャッシュ上の前記キャッシュブロックに格納するステップと、
前記ホストのチェックポイント処理の開始に伴う書き込み要求を受けて、要求されたデータを前記ライトバックキャッシュ上の前記キャッシュブロックに格納するステップと、
前記ライトバックキャッシュ上の更新されたキャッシュブロックのデータを前記2次記憶領域内の本来の書き込み先に書き込むためのデステージ操作を制御するステップであって、前記ログ領域内を本来の書き込み先とする前記ライトバックキャッシュ上のデータが格納された、ログ領域相当のキャッシュブロックが前記デステージ操作の対象となるのを抑制するステップと
を具備することを特徴とするライトバックキャッシュ制御方法。
A secondary storage area in which a log area with continuous logical addresses is secured to store a history of data updates from the host in chronological order, and a cache for temporarily storing data to be written in the secondary storage area A write back cache control method for controlling the write back cache, which is applied to a storage apparatus including a write back cache managed in units of blocks,
Receiving a write request accompanying the start of commit processing of the host and storing the requested data in the cache block on the write-back cache;
Receiving a write request associated with the start of the host checkpoint process and storing the requested data in the cache block on the write-back cache;
A step of controlling a destaging operation for writing the updated cache block data on the write-back cache to the original write destination in the secondary storage area, wherein the log area includes the original write destination A cache block corresponding to a log area in which data on the write-back cache is stored is suppressed from being a target of the destage operation.
JP2004069217A 2004-03-11 2004-03-11 Storage apparatus, storage controller, and write-back cache control method Expired - Fee Related JP4189342B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004069217A JP4189342B2 (en) 2004-03-11 2004-03-11 Storage apparatus, storage controller, and write-back cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004069217A JP4189342B2 (en) 2004-03-11 2004-03-11 Storage apparatus, storage controller, and write-back cache control method

Publications (2)

Publication Number Publication Date
JP2005258789A true JP2005258789A (en) 2005-09-22
JP4189342B2 JP4189342B2 (en) 2008-12-03

Family

ID=35084444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004069217A Expired - Fee Related JP4189342B2 (en) 2004-03-11 2004-03-11 Storage apparatus, storage controller, and write-back cache control method

Country Status (1)

Country Link
JP (1) JP4189342B2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009252149A (en) * 2008-04-10 2009-10-29 Nippon Telegr & Teleph Corp <Ntt> Database replication method, and database management system, and program
JP2010002942A (en) * 2008-06-18 2010-01-07 Fujitsu Ltd Distributed disk cache system and distributed disk cache method
JP2010257330A (en) * 2009-04-27 2010-11-11 Nec System Technologies Ltd System and method for managing log file, and program
JP2012168722A (en) * 2011-02-14 2012-09-06 Toshiba Corp Arbitration device, storage device, information processor and program
JP2012194881A (en) * 2011-03-17 2012-10-11 Sony Corp Memory control device, memory device, memory control method and program
WO2014041664A1 (en) * 2012-09-13 2014-03-20 富士通株式会社 Information processing system, information processing device, transition control program and transition control method
KR20140042518A (en) * 2012-09-28 2014-04-07 삼성전자주식회사 Segment cleaning apparatus and method thereof
KR101450157B1 (en) 2013-08-19 2014-10-13 이화여자대학교 산학협력단 Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage
WO2014208863A1 (en) * 2013-06-27 2014-12-31 이화여자대학교 산학협력단 Integrated data management apparatus and method for non-volatile buffer cache and non-volatile storage
US10528468B2 (en) 2015-09-03 2020-01-07 Fujitsu Limited Storage controlling apparatus, computer-readable recording medium having storage controlling program stored therein, and storage controlling method
US10565121B2 (en) 2016-12-16 2020-02-18 Alibaba Group Holding Limited Method and apparatus for reducing read/write contention to a cache

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02163851A (en) * 1988-12-16 1990-06-25 Nec Corp Synchronizing process system for disk cache
JPH05303528A (en) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd Write-back disk cache device
JPH0644139A (en) * 1992-07-22 1994-02-18 Ricoh Co Ltd Disk cache system and its page rewrite control method
JPH06124239A (en) * 1992-10-13 1994-05-06 Kawasaki Steel Corp Resident data controller for cache memory
JPH07334425A (en) * 1994-06-14 1995-12-22 Mitsubishi Electric Corp Disk cache control system
JPH08115264A (en) * 1994-10-18 1996-05-07 Fuji Xerox Co Ltd Disk cache device
JPH08263380A (en) * 1995-03-22 1996-10-11 Mitsubishi Electric Corp Disk cache control system
JPH08328959A (en) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp Disk cache controller
JPH096636A (en) * 1995-06-19 1997-01-10 Toshiba Corp Check point acquisition system
JPH096546A (en) * 1995-06-19 1997-01-10 Toshiba Corp Disk control system
JPH10293717A (en) * 1997-04-18 1998-11-04 Nec Corp Writeback data selection method, and machine readable recording medium recorded with program
JP2001027967A (en) * 1999-07-14 2001-01-30 Hitachi Ltd External storage device and information processing system
JP2002091811A (en) * 2000-09-12 2002-03-29 Toshiba Corp File system and file caching method
JP2002132552A (en) * 2000-10-20 2002-05-10 Hitachi Ltd Information processing system
JP2003330792A (en) * 2002-05-10 2003-11-21 Hitachi Ltd Disc system and cache control method

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02163851A (en) * 1988-12-16 1990-06-25 Nec Corp Synchronizing process system for disk cache
JPH05303528A (en) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd Write-back disk cache device
JPH0644139A (en) * 1992-07-22 1994-02-18 Ricoh Co Ltd Disk cache system and its page rewrite control method
JPH06124239A (en) * 1992-10-13 1994-05-06 Kawasaki Steel Corp Resident data controller for cache memory
JPH07334425A (en) * 1994-06-14 1995-12-22 Mitsubishi Electric Corp Disk cache control system
JPH08115264A (en) * 1994-10-18 1996-05-07 Fuji Xerox Co Ltd Disk cache device
JPH08263380A (en) * 1995-03-22 1996-10-11 Mitsubishi Electric Corp Disk cache control system
JPH08328959A (en) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp Disk cache controller
JPH096636A (en) * 1995-06-19 1997-01-10 Toshiba Corp Check point acquisition system
JPH096546A (en) * 1995-06-19 1997-01-10 Toshiba Corp Disk control system
JPH10293717A (en) * 1997-04-18 1998-11-04 Nec Corp Writeback data selection method, and machine readable recording medium recorded with program
JP2001027967A (en) * 1999-07-14 2001-01-30 Hitachi Ltd External storage device and information processing system
JP2002091811A (en) * 2000-09-12 2002-03-29 Toshiba Corp File system and file caching method
JP2002132552A (en) * 2000-10-20 2002-05-10 Hitachi Ltd Information processing system
JP2003330792A (en) * 2002-05-10 2003-11-21 Hitachi Ltd Disc system and cache control method

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009252149A (en) * 2008-04-10 2009-10-29 Nippon Telegr & Teleph Corp <Ntt> Database replication method, and database management system, and program
JP2010002942A (en) * 2008-06-18 2010-01-07 Fujitsu Ltd Distributed disk cache system and distributed disk cache method
JP2010257330A (en) * 2009-04-27 2010-11-11 Nec System Technologies Ltd System and method for managing log file, and program
JP2012168722A (en) * 2011-02-14 2012-09-06 Toshiba Corp Arbitration device, storage device, information processor and program
JP2012194881A (en) * 2011-03-17 2012-10-11 Sony Corp Memory control device, memory device, memory control method and program
WO2014041664A1 (en) * 2012-09-13 2014-03-20 富士通株式会社 Information processing system, information processing device, transition control program and transition control method
KR20140042518A (en) * 2012-09-28 2014-04-07 삼성전자주식회사 Segment cleaning apparatus and method thereof
KR102002830B1 (en) 2012-09-28 2019-07-23 삼성전자 주식회사 Segment cleaning apparatus and method thereof
WO2014208863A1 (en) * 2013-06-27 2014-12-31 이화여자대학교 산학협력단 Integrated data management apparatus and method for non-volatile buffer cache and non-volatile storage
KR101450157B1 (en) 2013-08-19 2014-10-13 이화여자대학교 산학협력단 Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage
US10528468B2 (en) 2015-09-03 2020-01-07 Fujitsu Limited Storage controlling apparatus, computer-readable recording medium having storage controlling program stored therein, and storage controlling method
US10565121B2 (en) 2016-12-16 2020-02-18 Alibaba Group Holding Limited Method and apparatus for reducing read/write contention to a cache

Also Published As

Publication number Publication date
JP4189342B2 (en) 2008-12-03

Similar Documents

Publication Publication Date Title
US10725878B2 (en) Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused
KR102093523B1 (en) Working set swapping using a sequentially ordered swap file
US8074035B1 (en) System and method for using multivolume snapshots for online data backup
KR101717644B1 (en) Apparatus, system, and method for caching data on a solid-state storage device
JP2505939B2 (en) How to control data castout
JP5142995B2 (en) Memory page management
US9063945B2 (en) Apparatus and method to copy data
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
US20160364142A1 (en) Memory system
US20060129763A1 (en) Virtual cache for disk cache insertion and eviction policies and recovery from device errors
US7251716B2 (en) Method and system for data processing with recovery capability
US10048866B2 (en) Storage control apparatus and storage control method
US11880318B2 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
CN105376269B (en) Virtual machine storage system and its implementation and device
JP4189342B2 (en) Storage apparatus, storage controller, and write-back cache control method
US20060069888A1 (en) Method, system and program for managing asynchronous cache scans
US9262088B2 (en) Use of flash cache to improve tiered migration performance
US7908434B2 (en) Raid apparatus, cache management method, and computer program product
KR101153688B1 (en) Nand flash memory system and method for providing invalidation chance to data pages
CN110109954B (en) Data processing method, system, electronic device and storage medium
KR101295210B1 (en) Method and device for managing database
JP3730609B2 (en) Write-through processing method, write-through processing program and disk controller for redundant logical disk
JP2010160544A (en) Cache memory system and method for controlling cache memory
JP2003263276A (en) Disk system and disk access method
JP4371043B2 (en) Storage system, snapshot control method and program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080811

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080912

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees