JP2010170268A - Storage system control method, storage control device, and program - Google Patents

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

Info

Publication number
JP2010170268A
JP2010170268A JP2009011173A JP2009011173A JP2010170268A JP 2010170268 A JP2010170268 A JP 2010170268A JP 2009011173 A JP2009011173 A JP 2009011173A JP 2009011173 A JP2009011173 A JP 2009011173A JP 2010170268 A JP2010170268 A JP 2010170268A
Authority
JP
Japan
Prior art keywords
storage medium
storage
data
area
temporary storage
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.)
Pending
Application number
JP2009011173A
Other languages
Japanese (ja)
Inventor
Yoshihiro Hasebe
賀洋 長谷部
Masaru Kobayashi
大 小林
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009011173A priority Critical patent/JP2010170268A/en
Publication of JP2010170268A publication Critical patent/JP2010170268A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent deterioration of performance in access to a storage medium by suppressing interference of input access to the storage medium with output access from the storage medium. <P>SOLUTION: Each storage medium 14 is set so as to have redundancy in accordance with the combination with different storage media 14 for each of the divided storage regions, and to have no redundancy with at least one storage medium 14, and in parallel with the writing of data in each storage region having redundancy with the two storage media 14, the readout of the data from the storage region having no redundancy with one storage medium 14 and the perpetuated writing of the data in a perpetuation storage medium 15 are performed. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、例えばランダムアクセスに比してシーケンシャルアクセスが高速な記憶媒体を用いてキャッシュを構成する際に用いて好適なストレージシステムの制御方法、ストレージ制御装置及びプログラムに関する。   The present invention relates to a storage system control method, a storage control device, and a program suitable for use in, for example, a cache configuration using a storage medium that has higher sequential access than random access.

従来のストレージシステムには、ホストコンピューターからのライトデータをキャッシュメモリに一時格納した後、他のストレージに書き込むようにしたものがある。このようなストレージシステムでは、ホストコンピューターから見たデータのライト性能を向上するために、ライトバックキャッシュアルゴリズムと呼ばれる手法が用いられてきた。ライトバックキャッシュアルゴリズムでは、キャッシュメモリにデータを格納した時点でホストコンピューターに対してライトデータがストレージに書き込まれた旨を示す応答が返される。そして、その後に、キャッシュメモリに書き込まれたライトデータが、キャッシュに比して低速ではあるが大容量である記憶媒体(磁気ディスクなど)に書き込まれる。この場合、キャッシュには揮発の半導体メモリ(DRAM(dynamic random access memory)等)が用いられるのが一般的で、これらの揮発メモリは、性能は良いが、ビットあたりの単価が高く大容量のキャッシュを実現は困難であった。   In some conventional storage systems, write data from a host computer is temporarily stored in a cache memory and then written to another storage. In such a storage system, a method called a write-back cache algorithm has been used in order to improve data write performance as viewed from the host computer. In the write back cache algorithm, a response indicating that write data has been written to the storage is returned to the host computer at the time when the data is stored in the cache memory. After that, the write data written to the cache memory is written to a storage medium (such as a magnetic disk) that has a low speed but a large capacity compared to the cache. In this case, a volatile semiconductor memory (DRAM (dynamic random access memory) or the like) is generally used for the cache. These volatile memories have good performance but have a high unit price per bit and a large capacity cache. Realizing was difficult.

一方、磁気ディスクやフラッシュメモリ、フラッシュメモリを用いたシリコンディスク(以下SSD(Solid State Drive))等の不揮発性記憶媒体はDRAMに比べ容易に大容量とすることができる。しかし、シーケンシャルアクセスに比して、ランダムアクセスの性能が悪い。そのため、そのままでは従来のDRAM等を用いたキャッシュの代替としての用をなさない。ただし、これらの記憶媒体のシーケンシャルアクセスはランダムアクセスに比して高速である。そこで、磁気ディスクやフラッシュメモリに対しては、ランダムアクセスをシーケンシャルアクセスに変換することで高速化を図る手法であるログ書き込み方式が用いられてきた。ログ書き込みの技術として非特許文献1、非特許文献2等に記載されているような方式が挙げられる。ログ書き込み方式では、ディスク上の特定箇所に更新内容のログ書き込み用の領域、つまり磁気ディスクにライト専用の領域を確保する。磁気ディスクに対して書き込むデータは全てこのライト専用領域に先頭から順番に追記する。各ライトデータにはライト先のアドレスと、ライトデータのサイズを識別するためのデータが付加される。このようにしてログ書き込み方式では、ランダムライトアクセスがシーケンシャルライトアクセスに変換され、シーケンシャルアクセスがランダムアクセスに比して高速な記憶媒体におけるライト時の性能を向上することができる。   On the other hand, a nonvolatile storage medium such as a magnetic disk, a flash memory, or a silicon disk using a flash memory (hereinafter referred to as SSD (Solid State Drive)) can easily have a large capacity as compared with a DRAM. However, the performance of random access is worse than that of sequential access. Therefore, it is not used as a substitute for a cache using a conventional DRAM or the like as it is. However, sequential access to these storage media is faster than random access. Therefore, a log writing method, which is a technique for increasing the speed by converting random access to sequential access, has been used for magnetic disks and flash memories. Examples of the log writing technique include systems described in Non-Patent Document 1, Non-Patent Document 2, and the like. In the log writing method, an area for writing log of update contents, that is, a write-only area is secured in a specific location on the disk. All data to be written to the magnetic disk is added to the write-only area in order from the top. Each write data is appended with a write destination address and data for identifying the size of the write data. In this manner, in the log writing method, random write access is converted to sequential write access, and the performance at the time of writing in a high-speed storage medium can be improved as compared with random access.

しかし、これらのログ書き込みの方式では連続したアドレスのデータと連続していないアドレスのデータとが混在する形でデータの順次書き込みが行われる。その為、連続したアドレスのデータが異なる位置に分散して記憶される可能性がある。その結果、リード時には、連続したアドレスのデータ読み出しであってもランダムアクセスとなる場合が発生する。   However, in these log writing methods, data is sequentially written in a form in which data at consecutive addresses and data at non-continuous addresses are mixed. For this reason, there is a possibility that data of consecutive addresses are distributed and stored at different positions. As a result, at the time of reading, there is a case where random access is performed even when data is read from consecutive addresses.

また、上述したようなログ書き込み方式の基本的な動作は、上位装置からのライトデータを記憶媒体上に順次記憶していくことである。この動作だけでは、同一アドレスのデータが記憶媒体上に複数存在することになる。このままデータの書き込みを続けると、使用するに従い、不要なデータによって記憶媒体の容量が減ることになる。そして、記憶媒体がいっぱいになった時点でライト不可能となってしまうことになる。この現象を避けるため、同一アドレスのデータのマージ等の処理を行うことになるが、これらの処理が性能上の問題となってきていた。   Further, the basic operation of the log writing method as described above is to sequentially store write data from the host device on the storage medium. With this operation alone, a plurality of data with the same address exist on the storage medium. If data writing is continued as it is, the capacity of the storage medium is reduced by unnecessary data as it is used. Then, when the storage medium is full, writing becomes impossible. In order to avoid this phenomenon, processing such as merging of data at the same address is performed, but such processing has become a problem in performance.

これに対しては、例えば、一度ログ書き込みを行った記憶媒体から順次読み出しを行い、1台、或いは複数台の記憶媒体に通常の書き込みを行うことで、データの永続化を行い、重複するアドレスのデータの排除を行うことが考えられる。また、それと共に、リード時にはこれら永続化されたデータを読み出すようにすることで、ログ書き込みされたデータを順次読み出す時に発生していたランダムアクセスを回避できると考えられる。   In response to this, for example, data is perpetuated by sequentially reading from the storage medium once log-written and performing normal writing to one or a plurality of storage media, thereby overlapping addresses. It is possible to eliminate the data. At the same time, it is considered that by reading these permanent data at the time of reading, it is possible to avoid random access that has occurred when the log-written data is read sequentially.

しかし、この方法では、ログ書き込みを行った記憶媒体からデータの読み出しを行う処理が新たに追加される。すなわち、例えば、ログ書き込みを行うと同時に読み出しを行う為のリードが発生することになる。この場合、ログ書き込みを行う記憶媒体に対してはライトアクセスとリードアクセスとが混在することになり、性能劣化が発生する要因となる。   However, in this method, a process for reading data from the storage medium on which log writing has been performed is newly added. That is, for example, a read for reading at the same time as log writing occurs. In this case, the write access and the read access are mixed for the storage medium to which the log is written, which causes a performance deterioration.

なお、これらストレージに用いる記憶媒体、特にライトデータをキャッシュする記憶媒体に関しては、記憶媒体の故障がデータ喪失に繋がることになる。これに対しては、少なくともライトデータの記録を冗長化することが考えられる。例えば単純に2組の記憶装置に記録を行うミラー(RAID1(Redundant Arrays of Inexpensive Disks 1))などの冗長化手法を用いることが考えられる。   In addition, regarding storage media used for these storages, particularly storage media that cache write data, failure of the storage media leads to data loss. For this, it is conceivable to make at least the recording of the write data redundant. For example, it is conceivable to use a redundancy method such as a mirror (RAID 1 (Redundant Arrays of Inexpensive Disks 1)) that simply records in two sets of storage devices.

Rosenblum, Mendel and Ousterhout, John K. (June 1990) - "The LFS Storage Manager". Proceedings of the 1990 Summer Usenix. pp315-324.Rosenblum, Mendel and Ousterhout, John K. (June 1990)-"The LFS Storage Manager". Proceedings of the 1990 Summer Usenix. Pp315-324. Rosenblum, Mendel and Ousterhout, John K. (February 1992) - "The Design and Implementation of a Log-Structured File System". ACM Transactions on Computer Systems, Vol. 10 Issue 1. pp26-52.Rosenblum, Mendel and Ousterhout, John K. (February 1992)-"The Design and Implementation of a Log-Structured File System". ACM Transactions on Computer Systems, Vol. 10 Issue 1. pp26-52.

上述したように、DRAM等を用いた小容量のキャッシュよりも大容量のキャッシュを磁気ディスクやフラッシュメモリ、SSD等の記憶媒体を用いて実現する場合、ライトデータを記憶媒体に高速に書き込むログ書き込み方式と、ログ書き込みを行った記憶媒体からデータを読み出すことでデータの永続化を行う手法を組み合わせることが考えられる。しかしながら、このような手法を用いた場合、ストレージあるいはストレージシステムにおいて、上位装置からの書き込みのアクセスと、データの永続化を行う為のアクセスが干渉し、性能低下が発生するという課題がある。   As described above, when a large-capacity cache is realized using a storage medium such as a magnetic disk, a flash memory, or an SSD, rather than a small-capacity cache using a DRAM or the like, log writing that writes write data to the storage medium at high speed It is conceivable to combine a method and a method of perpetuating data by reading data from a storage medium on which log writing has been performed. However, when such a method is used, there is a problem that in the storage or storage system, the write access from the host device interferes with the access for making the data persistent, resulting in performance degradation.

本発明の目的は、上記の事情を考慮し、例えば磁気ディスク、フラッシュメモリ等のランダムアクセスに比してシーケンシャルアクセスが高速な記憶媒体を用いてキャッシュを構成する場合に、記憶媒体への入力アクセスと、記憶媒体からの出力アクセスの干渉を抑えて、記憶媒体へのアクセスの性能低下を防止することができるストレージシステムの制御方法、ストレージ制御装置及びプログラムを提供することである。   The object of the present invention is to take account of the above situation, for example, when a cache is configured using a storage medium that has a high-speed sequential access compared to random access such as a magnetic disk or a flash memory. Another object of the present invention is to provide a storage system control method, storage control device, and program capable of preventing output access interference from the storage medium and preventing the performance of access to the storage medium from being degraded.

上記課題を解決するため、本発明は、永続化記憶媒体に記憶するデータを、一旦一時記憶媒体に記憶して、前記一旦記憶したデータを前記一時記憶媒体から読み出して前記永続化記憶媒体へと転送するストレージシステムにおいて、前記一時記憶媒体が、少なくとも3台の一時記憶媒体から構成され、前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで冗長関係を有し且つ少なくとも1台の一時記憶媒体で当該記憶領域との冗長関係が無くなるよう設定された複数の記憶領域をそれぞれ有し、前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込むのと並行して、前記少なくとも1台の一時記憶媒体で当該記憶領域と冗長関係が無い記憶領域からデータを読み出す過程と、前記少なくとも1台の一時記憶媒体から読み出したデータを前記永続化記憶媒体に書き込む過程とを行うことを特徴とするストレージシステムの制御方法である。   In order to solve the above problems, the present invention stores data stored in a permanent storage medium in a temporary storage medium, and reads the temporarily stored data from the temporary storage medium to the permanent storage medium. In the storage system to be transferred, the temporary storage medium is composed of at least three temporary storage media, and each temporary storage medium is a combination of two or more temporary storage media with different temporary storage media for each storage area Each having a plurality of storage areas that have a redundant relationship and at least one temporary storage medium set to eliminate the redundant relationship with the storage area, and at least two of the at least three temporary storage media In parallel with writing data to each storage area having a redundant relationship with one temporary storage medium, the at least one temporary storage medium and the storage area A process of reading data from the long relationship there is no storage area, a control method of the storage system, characterized in that the data read from at least one of the temporary storage medium performs the steps of writing the persistent storage medium.

また、本発明は、永続化記憶媒体に記憶するデータを、一旦一時記憶媒体に記憶して、前記一旦記憶したデータを前記一時記憶媒体から読み出して前記永続化記憶媒体へと転送するストレージシステムの制御装置において、前記一時記憶媒体が、少なくとも3台の一時記憶媒体から構成され、前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで冗長関係を有し且つ少なくとも1台の一時記憶媒体で当該記憶領域との冗長関係が無くなるよう設定された複数の記憶領域をそれぞれ有し、ストレージシステムの制御装置が、前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込むのと並行して、前記少なくとも1台の一時記憶媒体で当該記憶領域と冗長関係が無い記憶領域からデータを読み出す手段と、前記少なくとも1台の一時記憶媒体から読み出したデータを前記永続化記憶媒体に書き込む手段とを備えることを特徴とするストレージ制御装置である。   The present invention also relates to a storage system for temporarily storing data stored in a permanent storage medium in a temporary storage medium, reading the temporarily stored data from the temporary storage medium, and transferring the data to the permanent storage medium. In the control device, the temporary storage medium is composed of at least three temporary storage media, and each of the temporary storage media is redundant in combination with a temporary storage medium different for each storage area between two or more temporary storage media. Each having a plurality of storage areas which are set so that there is no redundant relation with the storage area, and the control device of the storage system has the at least three temporary storage media Of the at least one temporary storage medium in parallel with writing data to each storage area having a redundant relationship. Storage means comprising means for reading data from a storage area having no redundant relationship with the storage area, and means for writing data read from the at least one temporary storage medium to the permanent storage medium It is a control device.

また、本発明は、永続化記憶媒体に記憶するデータを、一旦一時記憶媒体に記憶して、前記一旦記憶したデータを前記一時記憶媒体から読み出して前記永続化記憶媒体へと転送するストレージシステムの制御装置において、前記一時記憶媒体が、少なくとも3台の一時記憶媒体から構成され、前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで冗長関係を有し且つ少なくとも1台の一時記憶媒体で当該記憶領域との冗長関係が無くなるよう設定された複数の記憶領域をそれぞれ有し、ストレージシステムの制御装置が、前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込むのと並行して、前記少なくとも1台の一時記憶媒体で当該記憶領域と冗長関係が無い記憶領域からデータを読み出す過程と、前記少なくとも1台の一時記憶媒体から読み出したデータを前記永続化記憶媒体に書き込む過程とをコンピューターを用いて実行するための指令を含むことを特徴とするストレージ制御装置のプログラムである。   The present invention also relates to a storage system for temporarily storing data stored in a permanent storage medium in a temporary storage medium, reading the temporarily stored data from the temporary storage medium, and transferring the data to the permanent storage medium. In the control device, the temporary storage medium is composed of at least three temporary storage media, and each of the temporary storage media is redundant in combination with a temporary storage medium different for each storage area between two or more temporary storage media. Each having a plurality of storage areas which are set so that there is no redundant relation with the storage area, and the control device of the storage system has the at least three temporary storage media Of the at least one temporary storage medium in parallel with writing data to each storage area having a redundant relationship. To execute a process of reading data from a storage area having no redundant relationship with the storage area and a process of writing data read from the at least one temporary storage medium to the permanent storage medium using a computer This is a storage control apparatus program characterized by including the following command.

本発明によれば、永続化の為の読み出しを、例えば上位装置からの書き込み要求に応じて選択される記憶領域が属する一時記憶媒体とは異なる一時記憶媒体に属する記憶領域を選択して行うことで、上位装置からのシーケンシャルライトを妨げる事無く永続化の為の読み出しを行うことができる。   According to the present invention, reading for persistence is performed by selecting a storage area that belongs to a temporary storage medium different from the temporary storage medium to which the storage area selected in response to a write request from, for example, a host device belongs. Thus, it is possible to perform reading for persistence without interfering with the sequential write from the host device.

本発明を実施するための構成を示すブロック図である。It is a block diagram which shows the structure for implementing this invention. 本発明を実施するための記憶媒体の領域の分割例を示す図である。It is a figure which shows the example of a division | segmentation of the area | region of the storage medium for implementing this invention. 本発明を実施するための管理テーブルの構成を示す図である。It is a figure which shows the structure of the management table for implementing this invention. 本発明を実施するための領域リストの構成を示す図である。It is a figure which shows the structure of the area | region list for implementing this invention. 本発明を実施するための図2とは異なる記憶媒体の構成例と、領域の分割を示す図である。It is a figure which shows the structural example of the storage medium different from FIG. 2 for implementing this invention, and the division | segmentation of an area | region. 図2の記憶媒体を用いて本発明の実施の形態の基本的動作を説明するための図である。It is a figure for demonstrating the basic operation | movement of embodiment of this invention using the storage medium of FIG. 本発明を実施するための書き込み処理フローである。It is a write-in processing flow for implementing this invention. 本発明を実施するための永続化処理フローである。It is a perpetuation processing flow for carrying out the present invention. 本発明を実施するための読み出し処理フローである。It is a read-out processing flow for implementing this invention.

以下、本発明を実施するための形態について図面を参照して詳細に説明する。図1は、本発明によるストレージシステムの構成の一例を示すブロック図である。図1のストレージシステム1は、キャッシュ管理手段11、管理テーブル12、領域リスト13、永続化記憶媒体15及び複数の記憶媒体14、14、14、…、とから構成されている。ただし、本発明によるストレージシステム(あるいはストレージ制御装置)の態様は、図1のストレージシステム1から永続化記憶媒体15を除いた構成や、あるいは永続化記憶媒体15と記憶媒体14、14、14、…とを除いた構成としてとらえることもできる。   Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing an example of the configuration of a storage system according to the present invention. The storage system 1 of FIG. 1 includes a cache management unit 11, a management table 12, an area list 13, a permanent storage medium 15, and a plurality of storage media 14, 14, 14,. However, the aspect of the storage system (or storage control apparatus) according to the present invention is the configuration in which the permanent storage medium 15 is removed from the storage system 1 of FIG. 1 or the permanent storage medium 15 and the storage media 14, 14, 14, It can also be understood as a configuration excluding ....

なお、本実施形態の説明においては、「ストレージシステム」(あるいは「ストレージ」)という語を、上位装置から直接的にアクセス対象となる記憶装置(あるいは記憶手段)を意味するものとして用いている。また、「記憶媒体」という語を、キャッシュ管理手段11を介して上位装置から間接的にアクセス対象となる記憶装置(あるいは記憶手段)に用いている。すなわち、「ストレージシステム」、「ストレージ」あるいは「記憶媒体」は、他に記憶装置と呼んだり、あるいは記憶手段と呼んだりすることもできる。   In the description of the present embodiment, the term “storage system” (or “storage”) is used to mean a storage device (or storage means) that is directly accessed from a host device. Further, the term “storage medium” is used for a storage device (or storage means) that is indirectly accessed from a higher-level device via the cache management means 11. In other words, the “storage system”, “storage”, or “storage medium” can also be called a storage device or a storage means.

図1において、キャッシュ管理手段11は、内部に図示してないCPU(Central processing unit)と、RAM、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable ROM)等の記憶装置と、上位装置や永続化記憶媒体15との間のインターフェース装置などを備えて構成されている。キャッシュ管理手段11は、内部のROMやEEPROMに記憶されているプログラムに従って動作し、記憶媒体14、14、14、…等の各部を制御する。キャッシュ管理手段11に接続される上位装置は、サーバー、パーソナルコンピューター等の装置であり、ストレージシステム1へのデータの書き込み、あるいはデータの読み出しを行う装置である。本実施形態において、キャッシュ管理手段11は、上位装置からの永続化記憶媒体15へのデータの書き込み要求に応じて永続化記憶媒体15に記憶するデータを、一旦記憶媒体14に記憶した後、その一旦記憶したデータを記憶媒体14から読み出して永続化記憶媒体15へと転送するキャッシュ制御を行う装置として機能する。また、キャッシュ管理手段11は、上位装置からの永続化記憶媒体15へのデータの書き込み要求に応じて、記憶媒体14にデータを一旦記憶する際に、その書き込み要求に含まれる書き込みアドレスとデータ長とデータとをひとまとまりにして記憶媒体14へシーケンシャルに書き込むログ書き込み方式を用いてデータの書き込みを行うように構成されている。   In FIG. 1, a cache management means 11 includes a CPU (Central Processing Unit), a storage device such as a RAM, a ROM (Read Only Memory), an EEPROM (Electrically Erasable and Programmable ROM), an upper device, An interface device with the permanent storage medium 15 is provided. The cache management unit 11 operates according to a program stored in an internal ROM or EEPROM, and controls each unit such as the storage medium 14, 14, 14,. The host device connected to the cache management unit 11 is a device such as a server or a personal computer, and is a device that writes data to or reads data from the storage system 1. In the present embodiment, the cache management unit 11 temporarily stores data to be stored in the permanent storage medium 15 in response to a data write request to the permanent storage medium 15 from the host device, and then stores the data in the storage medium 14. It functions as a device that performs cache control for reading data once stored from the storage medium 14 and transferring it to the permanent storage medium 15. In addition, when the cache management unit 11 temporarily stores data in the storage medium 14 in response to a data write request to the permanent storage medium 15 from the host device, the write address and the data length included in the write request are stored. The data is written using a log writing method in which data and data are collectively written to the storage medium 14 together.

また、キャッシュ管理手段11は、記憶媒体14にデータを書き込む際、記憶媒体14全体に対して所定の記憶容量毎に割り当てられている媒体アドレスを用いて記憶媒体14にアクセスする。その際、キャッシュ管理手段11は、記憶媒体14上の分割された複数の記憶領域毎に書き込み処理を管理する。この記憶媒体14上の分割領域は、記憶媒体14の複数の媒体アドレスを単位として設定されている。そして、記憶媒体14における媒体アドレスと複数の分割された記憶領域との関係は、所定の変換表(あるいは対応表)を用いて設定したり、あるいは所定の数式を用いて設定したりすることができる。この変換表や数式は、例えばキャッシュ管理手段11のEEPROM等の記憶装置内に格納されている。   Further, when writing data to the storage medium 14, the cache management unit 11 accesses the storage medium 14 using a medium address assigned to the entire storage medium 14 for each predetermined storage capacity. At that time, the cache management unit 11 manages the writing process for each of the plurality of divided storage areas on the storage medium 14. The divided areas on the storage medium 14 are set in units of a plurality of medium addresses of the storage medium 14. The relationship between the medium address in the storage medium 14 and the plurality of divided storage areas can be set using a predetermined conversion table (or correspondence table), or can be set using a predetermined mathematical expression. it can. The conversion table and the mathematical formula are stored in a storage device such as an EEPROM of the cache management unit 11, for example.

なお、管理テーブル12や領域リスト13は、キャッシュ管理手段11内またはキャッシュ管理手段11外の所定の不揮発性記憶装置内等に格納することができる。ただし、動作時にキャッシュ管理手段11内のRAMなどに不揮発性記憶装置から読み出して参照・更新するようにすることもできる。   The management table 12 and the area list 13 can be stored in the cache management unit 11 or in a predetermined non-volatile storage device outside the cache management unit 11. However, it is also possible to read and refer to / update from the nonvolatile storage device to the RAM or the like in the cache management means 11 during operation.

記憶媒体14、14、14、…は、キャッシュ管理手段11の制御に従い、上位装置から書き込み要求が行われたライトデータを一時的に記憶するためのキャッシュを構成する。記憶媒体14、14、14、…は、磁気ディスク、フラッシュメモリ、SSD等のランダムアクセスに比してシーケンシャルアクセスが高速な不揮発性の記憶媒体である。本実施の形態のストレージシステム1では、3台以上の記憶媒体14、14、14、…が設けられている。   The storage media 14, 14, 14,... Constitute a cache for temporarily storing write data for which a write request has been issued from a higher-level device, under the control of the cache management unit 11. The storage media 14, 14, 14,... Are nonvolatile storage media such as a magnetic disk, a flash memory, an SSD, etc., which are faster in sequential access than random access. In the storage system 1 of the present embodiment, three or more storage media 14, 14, 14,... Are provided.

永続化記憶媒体15は、上位装置から書き込み要求(ライトリクエスト)されたデータを、記憶媒体14に一旦書き込んだ後にそれを読み出して、永続的に記憶するための記憶媒体である。永続化記憶媒体15は、例えば磁気ディスクなどで構成されている。   The permanent storage medium 15 is a storage medium for temporarily writing data that has been requested to be written (write request) from the host device to the storage medium 14 and then reading and storing it permanently. The permanent storage medium 15 is composed of, for example, a magnetic disk.

管理テーブル12は、記憶媒体14、14、14、…に記憶するデータを、記憶媒体14、14、14、…に設定した記憶領域毎に管理するための情報を記憶するテーブルである。領域リスト13は、ライトリクエスト毎のホストアドレスとデータ長とを記憶媒体14の分割された記憶領域毎に管理するための情報を示すリストである。   The management table 12 is a table that stores information for managing the data stored in the storage media 14, 14, 14,... For each storage area set in the storage media 14, 14, 14,. The area list 13 is a list showing information for managing the host address and data length for each write request for each divided storage area of the storage medium 14.

以下、図1〜図4を参照して、図1の各構成について詳細に説明する。なお、図2は図1の記憶媒体14、14、14、…における分割された記憶領域を説明するための模式図である。図3は図1の管理テーブル12の構成例を示す模式図である。そして、図4は図1の領域リスト13の構成例を示す模式図である。   1 will be described in detail below with reference to FIGS. 2 is a schematic diagram for explaining the divided storage areas in the storage media 14, 14, 14,... In FIG. FIG. 3 is a schematic diagram showing a configuration example of the management table 12 of FIG. FIG. 4 is a schematic diagram showing a configuration example of the area list 13 of FIG.

図1、図2、図3および図4を参照すると、本発明の実施の形態のストレージステム1は、複数の記憶媒体14、14、14、…を少なくとも3台備えて構成されている。図2は、ストレージシステム1が3台の記憶媒体14を備える場合の各記憶媒体14の記憶領域の分割例を示している。ここでは3台の記憶媒体14を、記憶媒体1(14−1)、記憶媒体2(14−2)、記憶媒体3(14−3)として示している。ここで、複数の記憶媒体14に割り当てられた番号1、2、3との区別のため、符号14−1、14−2等を括弧で囲んで示している。   1, 2, 3, and 4, the storage stem 1 according to the embodiment of the present invention includes at least three storage media 14, 14, 14,. FIG. 2 shows an example of dividing the storage area of each storage medium 14 when the storage system 1 includes three storage media 14. Here, three storage media 14 are shown as a storage medium 1 (14-1), a storage medium 2 (14-2), and a storage medium 3 (14-3). Here, in order to distinguish from the numbers 1, 2, and 3 assigned to the plurality of storage media 14, reference numerals 14-1, 14-2 and the like are shown in parentheses.

この場合、記憶媒体14−1、14−2、14−3は、それぞれ、図2の様な複数の記憶領域21に分割され、各記憶領域21に記憶されているデータが複数の(この場合、2台の)記憶媒体間で冗長化されている。この場合、各記憶領域21は、複数の媒体アドレスに対応する所定の記憶容量を有している。また、各記憶領域21には、符号22で示される識別符号(図2では識別番号:1、2、3、4、5、6、…、以下では「領域番号」とも呼ぶ。)が割り当てられている。この各記憶領域21の媒体アドレスと識別符号22との関係は、上述したようにキャッシュ管理手段11によって管理されている。なお、上位装置からキャッシュ管理手段11に対して1回のライトリクエストで書き込みが要求されるライトデータのデータ長は、記憶媒体1〜3(14−1〜3)の各記憶領域21のデータ長(すなわち各記憶領域の記憶容量)よりも小さくなるように設定されているものとする。   In this case, the storage media 14-1, 14-2, 14-3 are each divided into a plurality of storage areas 21 as shown in FIG. 2, and a plurality of data stored in each storage area 21 (in this case) Redundant between two storage media. In this case, each storage area 21 has a predetermined storage capacity corresponding to a plurality of medium addresses. Each storage area 21 is assigned an identification code indicated by reference numeral 22 (identification numbers: 1, 2, 3, 4, 5, 6,..., Hereinafter also referred to as “area numbers” in FIG. 2). ing. The relationship between the medium address of each storage area 21 and the identification code 22 is managed by the cache management means 11 as described above. The data length of the write data that is requested to be written in one write request from the host device to the cache management unit 11 is the data length of each storage area 21 of the storage media 1 to 3 (14-1 to 3). It is assumed that it is set to be smaller than (that is, the storage capacity of each storage area).

記憶媒体14間の冗長化については、例えば図2の記憶媒体1(14−1)の記憶領域「1」(この「 」は識別符号22を表す。以下、同様。)は記憶媒体2(14−2)の記憶領域「1」との間で冗長化がなされ、記憶媒体1(14−1)の記憶領域「2」は記憶媒体3(14−3)の記憶領域「2」と冗長化がなされている。すなわち、記憶領域「1」に対するデータの書き込みは、記憶媒体1(14−1)の記憶領域「1」と記憶媒体2(14−2)の記憶領域「1」に対して行われる。また、記憶領域「2」に対するデータの書き込みは、記憶媒体1(14−2)の記憶領域「2」と記憶媒体3(14−3)の記憶領域「2」に対して行われる。なお、図2の例では、記憶媒体1(14−1)に先頭から順に記憶領域「1」、記憶領域「2」、記憶領域「4」、記憶領域「5」が設定されている。記憶媒体2(14−2)に先頭から順に記憶領域「1」、記憶領域「3」、記憶領域「4」、記憶領域「6」が設定されている。記憶媒体3(14−3)に先頭から順に記憶領域「2」、記憶領域「3」、記憶領域「5」、記憶領域「6」が設定されている。   As for redundancy between the storage media 14, for example, the storage area “1” of the storage medium 1 (14-1) shown in FIG. -2) is made redundant with storage area “1”, and storage area “2” of storage medium 1 (14-1) is made redundant with storage area “2” of storage medium 3 (14-3). Has been made. That is, the data writing to the storage area “1” is performed to the storage area “1” of the storage medium 1 (14-1) and the storage area “1” of the storage medium 2 (14-2). Data is written to the storage area “2” in the storage area “2” of the storage medium 1 (14-2) and the storage area “2” of the storage medium 3 (14-3). In the example of FIG. 2, the storage area “1”, the storage area “2”, the storage area “4”, and the storage area “5” are set in order from the top in the storage medium 1 (14-1). A storage area “1”, a storage area “3”, a storage area “4”, and a storage area “6” are set in order from the top in the storage medium 2 (14-2). In the storage medium 3 (14-3), a storage area “2”, a storage area “3”, a storage area “5”, and a storage area “6” are set in order from the top.

すなわち、本実施形態では、記憶媒体14が、少なくとも3台の記憶媒体14−1、14−2、14−3から構成され、各記憶媒体14−1、14−2、14−3が、2台以上の記憶媒体(14−1〜3のいずれか2台)間で記憶領域21毎に異なる記憶媒体(14−1〜3のいずれか2台)との組み合わせで冗長関係を有するように記憶領域21の設定がなされている。それと共に、少なくとも1台の記憶媒体(14−1〜3のいずれか1台)で冗長関係を有する記憶媒体(14−1〜3のいずれか2台)の当該記憶領域21との冗長関係が無くなるよう設定されている。このように設定された複数の記憶領域21をそれぞれの記憶媒体14−1、14−2、14−3が有している。   That is, in the present embodiment, the storage medium 14 includes at least three storage media 14-1, 14-2, 14-3, and each of the storage media 14-1, 14-2, 14-3 includes 2 Store in a redundant relationship in combination with different storage media (any one of 14-1 to 14) for each storage area 21 between two or more storage media (any one of 14-1 to 14) Area 21 is set. At the same time, at least one storage medium (any one of 14-1 to 14-1) has a redundancy relationship with the storage area 21 of the storage medium (any two of 14-1 to 14). It is set to disappear. Each storage medium 14-1, 14-2, 14-3 has a plurality of storage areas 21 set in this way.

図2に示すように3台の記憶媒体14を用いる場合、キャッシュ管理手段11によって、3台の記憶媒体14−1、14−2、14−3のうちの少なくとも2つの記憶媒体14に同一のデータを記憶した記憶領域21が存在するようにデータの書き込みが行われる。この同一のデータが記憶される記憶領域21の配置は、冗長化の配置が記憶媒体1(14−1)、記憶媒体2(14−2)、記憶媒体3(14−3)のそれぞれに分散し、かつ連続した記憶領域21間(例えば記憶領域「1」と記憶領域「2」の間、記憶領域「2」と記憶領域「3」の間等)で1つは異なる記憶媒体14に配置されるようにすればどの様な順番でもかまわない。例えば連続した記憶領域「1」と記憶領域「2」について、記憶領域「1」の冗長化が記憶媒体1(14−1)と記憶媒体2(14−2)で行われた場合、次の記憶領域「2」の冗長化は、記憶媒体1(14−1)と記憶媒体3(14−3)との間または記憶媒体2(14−2)と記憶媒体3(14−3)との間で行われるようにする。   When three storage media 14 are used as shown in FIG. 2, the cache management unit 11 uses the same storage medium 14 as one of at least two storage media 14-1, 14-2, 14-3. Data is written so that the storage area 21 storing the data exists. As for the arrangement of the storage area 21 in which the same data is stored, the redundant arrangement is distributed to each of the storage medium 1 (14-1), the storage medium 2 (14-2), and the storage medium 3 (14-3). In addition, one is arranged on a different storage medium 14 between the continuous storage areas 21 (for example, between the storage area “1” and the storage area “2”, between the storage area “2” and the storage area “3”, etc.). Any order is acceptable as long as it is done. For example, regarding the continuous storage area “1” and storage area “2”, when the storage area “1” is made redundant in the storage medium 1 (14-1) and the storage medium 2 (14-2), the following The storage area “2” is made redundant between the storage medium 1 (14-1) and the storage medium 3 (14-3) or between the storage medium 2 (14-2) and the storage medium 3 (14-3). To be done between.

なお、記憶媒体14上の記憶領域21の領域番号の割当であるが、連続した領域番号の間で、前回書き込み対象として選択された記憶領域21の属する記憶媒体14の内少なくとも1つが、新規に割り当てる記憶領域21の記憶媒体14に存在しないように行うようにする。図2の様に規則性を持たせれば数式にて算出可能であり、別途変換用のテーブルを持たせても良い。この割り当て方法を採用したのは新規の書き込み対象として選択される記憶領域21の記憶媒体14が前回と全く同じ記憶媒体14から選択されると、永続化時の読み出しの選択が出来なくなり、永続化の効率が落ちるからである。   In addition, although it is allocation of the area number of the storage area 21 on the storage medium 14, at least one of the storage mediums 14 to which the storage area 21 selected as the previous write target belongs is newly added between consecutive area numbers. The storage area 21 to be allocated is performed so that it does not exist in the storage medium 14. If regularity is provided as shown in FIG. 2, it can be calculated by a mathematical expression, and a separate conversion table may be provided. This allocation method is adopted because if the storage medium 14 of the storage area 21 selected as a new writing target is selected from the same storage medium 14 as the previous one, the selection of reading at the time of persistence cannot be made, and the persistence This is because the efficiency of the system decreases.

すなわち、本実施の形態では、少なくとも3台の記憶媒体14のうち、少なくとも2台の記憶媒体14で冗長関係を有する各記憶領域21にデータの書き込みが行われる、その際に、所定の順序で(ここでは領域番号1つずつの順序で)書き込みを行う記憶領域21が選択されるようになっている。ここで、各記憶媒体14が、2台以上の記憶媒体14間で記憶領域21毎に異なる記憶媒体14との組み合わせで冗長関係が設定されている。そして、データ書き込みの際に記憶領域14を選択する所定の順序に対応して、ある順序で選択される記憶領域21について冗長関係を有する複数の記憶媒体14の少なくとも1台の記憶媒体14が、次の順序で選択される記憶領域21については同一の複数の記憶媒体14の他の記憶媒体14と冗長関係を有しないように設定されている。このようにして前回書き込み対象として選択された記憶領域21の属する記憶媒体14の内少なくとも1つが新規に割り当てる記憶領域21の記憶媒体14に存在しないようにすれば、永続化の効率の低下を抑えることができる。   In other words, in the present embodiment, data is written to each storage area 21 having a redundancy relationship among at least two storage media 14 out of at least three storage media 14, and at that time, in a predetermined order. The storage area 21 to be written is selected (in this case, in the order of the area numbers one by one). Here, each storage medium 14 is set in a redundant relationship by a combination of two or more storage media 14 and a different storage medium 14 for each storage area 21. Corresponding to a predetermined order of selecting the storage area 14 at the time of data writing, at least one storage medium 14 of the plurality of storage media 14 having a redundant relationship with respect to the storage area 21 selected in a certain order is The storage areas 21 selected in the following order are set so as not to have a redundant relationship with other storage media 14 of the same plurality of storage media 14. In this way, if at least one of the storage mediums 14 to which the storage area 21 selected as the previous writing target belongs does not exist in the storage medium 14 of the newly allocated storage area 21, a decrease in the efficiency of persistence is suppressed. be able to.

上位装置からのライトリクエストが発生した場合、上位装置からのライトリクエストはキャッシュ管理手段11で受信される。ライトリクエストを受信したキャッシュ管理手段11は、管理テーブル12を参照することでどの記憶領域に書き込みを行えば良いか判断する。管理テーブル12は、図3に示されるようにそれぞれのレコードのオフセットを領域番号31(図2の識別符号22に対応)とする形式で構成されている。図3に示す場合、各レコードは、ステータスを示すフィールド32と、媒体アドレスを示すフィールド33と、永続化媒体番号を示すフィールド35と、領域リストポインタを示すフィールド34とから構成されている。   When a write request from a higher-level device is generated, the write request from the higher-level device is received by the cache management unit 11. The cache management unit 11 that has received the write request determines which storage area should be written by referring to the management table 12. As shown in FIG. 3, the management table 12 has a format in which the offset of each record is an area number 31 (corresponding to the identification code 22 in FIG. 2). In the case shown in FIG. 3, each record includes a field 32 indicating a status, a field 33 indicating a medium address, a field 35 indicating a permanent medium number, and a field 34 indicating an area list pointer.

フィールド32が示すステータスには、「書き込み対象領域」、「永続化対象領域」、「無効領域」および「永続化中」の4つがある。ステータスが「書き込み対象領域」であるということは、当該記憶領域21が、上位装置からの1つの前のライトリクエストによってデータ書き込みが行われた領域であって、かつその領域にまだデータを書き込む余裕がある、という状態である。「永続化対象領域」は、領域全てに対して書き込みが終了し、データの永続化対象であることを示す。「無効領域」は、永続化が終了し、キャッシュとしては用をなさなく成ったか(すなわち記憶されているデータが今後使用されないものとなっているか)、或いはシステムの初期化時の無効なデータが格納されていることを示す。「永続化中」は、その領域を対象とする永続化が行われていることを示す。これらのステータスは別途コードを持つことで表されるが、ここではその具体的な実装方法については言及しない。   There are four statuses indicated by the field 32: “write target area”, “permanent target area”, “invalid area”, and “permanent”. The status “write target area” means that the storage area 21 is an area where data has been written by one previous write request from the host device, and there is still room to write data in that area. There is a state that there is. The “permanent target area” indicates that writing to all the areas is completed and the data is to be perpetuated. The “invalid area” indicates that the persistence has ended and the cache is no longer used (that is, the stored data is not used in the future) or invalid data at the time of system initialization Indicates that it is stored. “Permanent” indicates that the area is being persisted. These statuses are expressed by having a separate code, but the specific implementation method is not mentioned here.

フィールド33に設定される媒体アドレスは、記憶媒体14の媒体アドレスであり、ステータス・フィールド32に設定される記憶媒体14の状態に応じて、書き込みが完了している位置や、永続化処理を行っている位置に対応する媒体アドレスが設定される。例えば、ステータス・フィールド32が「書き込み対象領域」となっている場合には、記憶媒体14上のどのアドレスまで書き込みが完了しているのかを示す媒体アドレスが設定される。また、「永続化中」であれば、永続化処理で読み出すべき媒体アドレスが設定される。また、「永続化対象領域」および「無効領域」の場合には、当該記憶領域21の先頭の媒体アドレスが設定される。   The medium address set in the field 33 is the medium address of the storage medium 14, and the position where writing has been completed and the perpetuation process are performed according to the state of the storage medium 14 set in the status field 32. The media address corresponding to the current position is set. For example, when the status field 32 is “write target area”, a medium address indicating which address on the storage medium 14 has been written is set. If “permanent”, the medium address to be read in the perpetuating process is set. In the case of “permanent area” and “invalid area”, the head medium address of the storage area 21 is set.

書き込み処理時には、ライトリクエストを受信したキャッシュ管理手段11が、領域番号を示すオフセット31を持つレコード中のステータス・フィールド32を参照することで、その領域番号(オフセット31)で示される領域のステータスが「書き込み対象領域」であるかどうか判定する。そして、この判定結果に基づいてどの記憶領域21に書き込みを行えば良いか判断する。すなわち、「書き込み対象領域」のステータスを持つ記憶領域21が存在する場合、キャッシュ管理手段11は、上位装置からのアドレス(以降、ホストアドレス)と、データ長と、データとを連続して、「書き込み対象領域」と判断した記憶領域21に書き込む。その際、ホストアドレスと、データ長と、データとからなる一連のデータは、複数の記憶媒体14上で冗長化が指定された同一領域番号の複数の記憶領域21の同じアドレスに対して書き込まれる。書き込み処理の際、キャッシュ管理手段11は、書き込みの最後のデータの次のアドレスを、管理テーブル12の媒体アドレス・フィールド33に書き込む。なお、「書き込み対象領域」のステータスを持つ記憶領域21が存在しない場合、「無効領域」のステータスを持つ記憶領域21のうち、例えば最小の領域番号の記憶領域21を選択して、書き込み処理が行われる。   At the time of write processing, the cache management means 11 that has received the write request refers to the status field 32 in the record having the offset 31 indicating the area number, so that the status of the area indicated by the area number (offset 31) is changed. It is determined whether it is a “write target area”. Based on the determination result, it is determined which storage area 21 should be written. In other words, when there is a storage area 21 having a status of “write target area”, the cache management unit 11 continuously stores an address (hereinafter referred to as a host address), a data length, and data from a higher-level device. The data is written in the storage area 21 determined as “write target area”. At this time, a series of data including the host address, the data length, and the data is written to the same address in the plurality of storage areas 21 having the same area number designated for redundancy on the plurality of storage media 14. . During the writing process, the cache management unit 11 writes the address next to the last data to be written in the medium address field 33 of the management table 12. If there is no storage area 21 having a status of “write target area”, for example, the storage area 21 having the smallest area number is selected from the storage areas 21 having a status of “invalid area” and the write process is performed. Done.

また、管理テーブル12の各レコードにおける永続化媒体番号・フィールド35は、現在永続化を行っている記憶媒体14が何れかを示す。永続化の際には冗長化された記憶媒体14の何れか一つからデータを読み出すだけでよい。そこで、本実施形態では、永続化の際に冗長化された記憶媒体14の何れか一つからデータを読み出すこととしている。その為、同一の番号の記憶領域21を持つ複数の記憶媒体14のうちのどの記憶媒体14に対して永続化処理を行っているかを、この永続化媒体番号・フィールド35で示すようにしている。   The permanent medium number / field 35 in each record of the management table 12 indicates which storage medium 14 is currently permanent. In the case of perpetuation, it is only necessary to read data from any one of the redundant storage media 14. Therefore, in the present embodiment, data is read from any one of the redundant storage media 14 at the time of perpetuation. For this reason, the persistent medium number / field 35 indicates which storage medium 14 of the plurality of storage media 14 having the storage area 21 with the same number is subjected to the persistence process. .

また、本実施形態では、各記憶領域21に格納されたデータのライトリクエスト毎のホストアドレスとデータ長をセットとして領域リスト13で、記憶領域21毎に管理するようにしている。そのため、管理テーブル12の各レコードにおける領域リストポインタ・フィールド34は、領域リスト13の記憶領域21毎のデータへのポインタを保持するようにしている。   Further, in this embodiment, the host address and the data length for each write request of data stored in each storage area 21 are managed as a set for each storage area 21 in the area list 13. Therefore, the area list pointer field 34 in each record of the management table 12 holds a pointer to data for each storage area 21 of the area list 13.

図4(a)は、図1の領域リスト13の構成例を示す模式図である。領域リスト13は、その各要素が、個々のデータを示す複数のメンバと次の要素を示す情報であるリストポインタを示すメンバとから構成されるリスト構造を有している。すなわち、領域リスト13は、それぞれが1または複数の「メンバ」からなる複数の「要素」から構成されている。ただし、「要素」と「メンバ」はいずれもデータ(情報)を表す語であるが、ここで用いる「要素」や「メンバ」の語は一例であり、例えば「要素」の代わりに「レコード」や「セル」を用いたり、「メンバ」の代わりに「データ」を用いたり、さらに他の語を用いることもできる。図4(a)に示す領域リスト13は、空きリストの先頭を示すリストポインタからなる先頭要素41と、先頭要素41のリストポインタで示される要素40aと、最終要素である要素40bとを含んで構成されている。要素40aは、上位装置からの各ライトリクエストに対応した、ホストアドレスを示すメンバ42、データ長を示すメンバ43、領域アドレスを示すメンバ44と、次の要素へのリストポインタを示すメンバ45とから構成されている。このメンバ44には、ライトリクエストによるデータの書き込みを行った際の記憶媒体14上の当該データの先頭アドレスを示す情報である領域アドレスが設定される。ここで、領域アドレスは、記憶領域21毎の相対的な媒体アドレスを示すものであって、記憶領域21毎に例えば0、1、…と割り当てられている。また、領域リスト13の最終要素40bは、リストポインタを表すメンバ45に最終要素であることを示す特別な情報としての「NULL(ヌル)」が設定されている。   FIG. 4A is a schematic diagram illustrating a configuration example of the area list 13 of FIG. The area list 13 has a list structure in which each element includes a plurality of members indicating individual data and a member indicating a list pointer which is information indicating the next element. That is, the area list 13 is composed of a plurality of “elements” each composed of one or a plurality of “members”. However, although “element” and “member” are both words representing data (information), the terms “element” and “member” used here are examples, and for example, “record” instead of “element”. Or “cell”, “data” instead of “member”, or other words. The area list 13 shown in FIG. 4A includes a head element 41 composed of a list pointer indicating the head of the empty list, an element 40a indicated by the list pointer of the head element 41, and an element 40b which is the final element. It is configured. The element 40a includes a member 42 indicating a host address, a member 43 indicating a data length, a member 44 indicating an area address, and a member 45 indicating a list pointer to the next element corresponding to each write request from the host device. It is configured. The member 44 is set with an area address that is information indicating the start address of the data on the storage medium 14 when the data is written by the write request. Here, the area address indicates a relative medium address for each storage area 21, and is assigned, for example, 0, 1,... For each storage area 21. In the final element 40b of the area list 13, "NULL (null)" is set as special information indicating that it is the final element in the member 45 representing the list pointer.

キャッシュ管理手段11は、複数の記憶媒体14に対して一連の情報を書き込む際に、上位装置からのライトリクエスト毎に、領域リスト13を更新する。キャッシュ管理手段11は、まず、ライトリクエスト毎に、ホストアドレス、データ長および領域アドレスを、メンバ42、メンバ43およびメンバ44に設定した要素40aを用意する。次に、この用意した要素40aを挿入する位置を検索する。位置の検索は、まず図4(a)の領域リスト13の先頭要素41を取り出してリンクポインタを参照し、次に各要素40aのメンバ45が示すリンクポインタを辿りながら、リスト上の各要素40aのメンバ42が示すホストアドレスと、受信したライトリクエストのホストアドレスとを比較することで行われる。そして、検索の結果得られたホストアドレスが昇順に並ぶ位置に、当該ライトリクエストに対応して新たに用意した要素40aが挿入される。   When writing a series of information to the plurality of storage media 14, the cache management unit 11 updates the area list 13 for each write request from the host device. First, the cache management unit 11 prepares an element 40a in which the host address, the data length, and the area address are set in the member 42, the member 43, and the member 44 for each write request. Next, a position for inserting the prepared element 40a is searched. In the search for the position, first, the head element 41 of the area list 13 in FIG. 4A is taken out, the link pointer is referred to, and then the link pointer indicated by the member 45 of each element 40a is traced, and then each element 40a on the list This is done by comparing the host address indicated by the member 42 with the host address of the received write request. A newly prepared element 40a corresponding to the write request is inserted at a position where the host addresses obtained as a result of the search are arranged in ascending order.

すなわち、本実施形態では、永続化記憶媒体15へのライトリクエスト(書き込み要求)に応じて各記憶領域21にデータを書き込む際のライトリクエストに含まれるホストアドレス(書き込みアドレス)とライトデータ(書き込みデータ)のデータ長と、そのデータが書き込まれる記憶媒体14の記憶領域21毎の相対的な媒体アドレスである領域アドレスとから構成された要素40aを、記憶領域21毎にリスト構造で、ホストアドレス(書き込みアドレス)の順に並べて保持している。   That is, in the present embodiment, the host address (write address) and write data (write data) included in the write request when writing data to each storage area 21 in response to the write request (write request) to the permanent storage medium 15. ) And an area 40 which is a relative medium address for each storage area 21 of the storage medium 14 in which the data is written, and a host address ( (Write address) in order.

また、キャッシュ管理手段11は、永続化されていない記憶媒体14から永続化のための読み出しを行う際に、領域リスト13のメンバ44の領域アドレスを参照することで、記憶媒体14上のデータの存在する位置を確認することができる。また、キャッシュ管理手段11は、領域リスト13を参照することで、同一ホストアドレスのデータが重複して記憶されている領域を検知することができる。   Further, the cache management unit 11 refers to the area address of the member 44 of the area list 13 when reading for the persistence from the non-permanent storage medium 14, thereby storing the data on the storage medium 14. The existing position can be confirmed. Further, the cache management unit 11 can detect an area in which data of the same host address is stored redundantly by referring to the area list 13.

ここで、図5を参照して、図1の記憶媒体14、14、14、…における図2と異なる他の記憶領域21の分割例について説明する。図5では、3台の記憶媒体14−1、14−2、14−3に加え、4台目の記憶媒体4(14−4)を設ける場合の記憶領域21の分割例を示している。図5の例では、記憶媒体1(14−1)に先頭から順に記憶領域「1」、記憶領域「4」、記憶領域「5」、記憶領域「8」が設定されている。記憶媒体2(14−2)に先頭から順に記憶領域「2」、記憶領域「1」、記憶領域「6」、記憶領域「5」が設定されている。記憶媒体3(14−3)に先頭から順に記憶領域「3」、記憶領域「2」、記憶領域「7」、記憶領域「6」が設定されている。記憶媒体4(14−4)に先頭から順に記憶領域「4」、記憶領域「3」、記憶領域「8」、記憶領域「7」が設定されている。   Here, with reference to FIG. 5, another example of division of the storage area 21 different from FIG. 2 in the storage media 14, 14, 14,. FIG. 5 shows an example of division of the storage area 21 when the fourth storage medium 4 (14-4) is provided in addition to the three storage media 14-1, 14-2, 14-3. In the example of FIG. 5, the storage area “1”, the storage area “4”, the storage area “5”, and the storage area “8” are set in order from the top in the storage medium 1 (14-1). In the storage medium 2 (14-2), a storage area “2”, a storage area “1”, a storage area “6”, and a storage area “5” are set in order from the top. In the storage medium 3 (14-3), a storage area “3”, a storage area “2”, a storage area “7”, and a storage area “6” are set in order from the top. In the storage medium 4 (14-4), a storage area “4”, a storage area “3”, a storage area “8”, and a storage area “7” are set in order from the top.

図5に示すように、記憶媒体14が増えるに従い、書き込み対象となる冗長化された複数の記憶媒体14以外の記憶媒体14の台数を増やすことができる。すなわち、データ書き込みの際に、書き込み対象とはなっておらず、データを読み出すことが可能となる記憶媒体14の台数が増えることになる。これによれば、書き込み対象ではない複数の記憶媒体14からデータを並列的に読み出すことで、永続化時の読み出しの帯域を広げることができる。また4台以上の場合では冗長化を、2台の記憶媒体14間だけでは無く、3台あるいはそれ以上の記憶媒体14間で行うようにすることもできる。   As shown in FIG. 5, as the number of storage media 14 increases, the number of storage media 14 other than the plurality of redundant storage media 14 to be written can be increased. That is, when data is written, the number of storage media 14 that are not targeted for writing and from which data can be read increases. According to this, by reading data in parallel from a plurality of storage media 14 that is not a write target, it is possible to widen the read bandwidth at the time of perpetuation. In the case of four or more units, the redundancy can be performed not only between the two storage media 14 but also between three or more storage media 14.

次に、図6を参照して、図1に示すストレージシステム1の上位装置からのライトリクエストに応じたデータの書き込みと、書き込みが完了した記憶領域21に対する永続化処理の基本的な動作について説明する。図6(a)は、図2と同一の領域分割が行われた記憶媒体14−1〜14−3に対するデータの書き込み動作を示す模式図である。この場合、この書き込みの前に、記憶媒体14−1〜14−3は、キャッシュデータの書き込みがない状態(すべての記憶領域21のステータス(フィールド32)が「無効領域」の状態)であるとする。   Next, with reference to FIG. 6, the basic operation of the data write in response to the write request from the host device of the storage system 1 shown in FIG. 1 and the persistence process for the storage area 21 for which the write has been completed will be described. To do. FIG. 6A is a schematic diagram showing a data writing operation to the storage media 14-1 to 14-3 in which the same area division as that in FIG. 2 is performed. In this case, before this writing, the storage media 14-1 to 14-3 are in a state where no cache data is written (the status (field 32) of all the storage areas 21 is “invalid area”). To do.

ストレージシステム1は、キャッシュ管理手段11によって、上位装置からのライトリクエストに基づくホストアドレスとデータ長とデータとの一連のデータを、最も若い番号の領域番号「1」の記憶領域21に書き込む処理を行う。この場合、領域番号「1」の記憶領域21は、記憶媒体1(14−1)の記憶領域「1」21aと記憶媒体2(14−2)の記憶領域「1」21bである。キャッシュ管理手段11は、記憶領域「1」21aと記憶領域「1」21bの両方にホストアドレスとデータ長とデータとの一連のデータを書き込む。その際、キャッシュ管理手段11は、管理テーブル12と領域リスト13を更新する。すなわち、図3の領域番号「1」をオフセットとするレコードのステータス・フィールド32を「書き込み対象領域」に設定するとともに、媒体アドレス・フィールド33に一連のデータの書き込みを行った最終の媒体アドレスの次の媒体アドレス(すなわち次の書き込みを行う媒体アドレス)を設定する。ただし、この場合、永続化媒体番号・フィールド35に永続化媒体番号は設定されない。   In the storage system 1, the cache management unit 11 writes a series of data including a host address, a data length, and data based on a write request from a higher-level device into the storage area 21 having the smallest area number “1”. Do. In this case, the storage area 21 with the area number “1” is the storage area “1” 21a of the storage medium 1 (14-1) and the storage area “1” 21b of the storage medium 2 (14-2). The cache management unit 11 writes a series of data including a host address, a data length, and data in both the storage area “1” 21a and the storage area “1” 21b. At that time, the cache management unit 11 updates the management table 12 and the area list 13. That is, the status field 32 of the record having the area number “1” in FIG. 3 as an offset is set to “write target area” and the last medium address in which a series of data is written in the medium address field 33 is set. The next medium address (that is, the medium address for the next writing) is set. However, in this case, the permanent medium number is not set in the permanent medium number / field 35.

また、この場合の書き込み対象の記憶領域「1」(21a、21b)に対応する領域リスト13の更新は、当該ライトリクエストのホストアドレスをメンバ42に、データ長をメンバ43に、当該データの記憶領域「1」(21a、21b)における相対的な先頭アドレスをメンバ44に設定した要素40を作成することで行われる。またその要素40の位置を示すリストポインタを管理テーブル12の領域リストポインタ・フィールド34に設定する。この領域リストポインタ・フィールド34を参照することで、当該記憶領域「1」に対応するリスト構造を参照することが可能となる(図4(b)参照)。以降、ライトリクエストを受信すると、記憶領域「1」(21a、21b)にホストアドレスとデータ長とデータとの一連のデータが書き込まれるとともに、管理テーブル12の媒体アドレス・フィールド33の内容が更新され、さらに当該ライトリクエストに対応する新たな要素40が作成されて当該記憶領域「1」に対応するリスト構造に挿入されて領域リスト13が更新される。   In this case, the update of the area list 13 corresponding to the storage area “1” (21a, 21b) to be written is performed by storing the host address of the write request in the member 42 and the data length in the member 43. This is done by creating the element 40 in which the relative head address in the region “1” (21a, 21b) is set to the member 44. A list pointer indicating the position of the element 40 is set in the area list pointer field 34 of the management table 12. By referring to this area list pointer field 34, it is possible to refer to the list structure corresponding to the storage area “1” (see FIG. 4B). Thereafter, when a write request is received, a series of data including the host address, data length, and data is written to the storage area “1” (21a, 21b), and the contents of the medium address field 33 of the management table 12 are updated. Further, a new element 40 corresponding to the write request is created and inserted into the list structure corresponding to the storage area “1”, and the area list 13 is updated.

次に、キャッシュ管理手段11が上位装置から新たなライトリクエストを受けた場合に、記憶媒体1(14−1)の記憶領域「1」21aと記憶媒体2(14−2)の記憶領域「1」21bに当該ライトリクエストのデータ長のデータの書き込みができなかったときについて説明する。この場合、管理テーブル12の領域番号「1」のレコードのステータス・フィールド32が「永続化対象領域」に更新されるとともに、媒体アドレス・フィールド33に当該記憶領域21の先頭アドレスが設定される。一方、次の領域番号「2」のステータス・フィールド32が「書き込み対象領域」され、当該ライトリクエストの一連のデータは、記憶領域「2」21cと記憶領域「2」21dに書き込まれる(図6(b)参照)。   Next, when the cache management unit 11 receives a new write request from the host device, the storage area “1” 21a of the storage medium 1 (14-1) and the storage area “1” of the storage medium 2 (14-2) The case where data having the data length of the write request could not be written in 21b will be described. In this case, the status field 32 of the record with the area number “1” in the management table 12 is updated to “permanent area”, and the head address of the storage area 21 is set in the medium address field 33. On the other hand, the status field 32 of the next area number “2” is set as “write target area”, and a series of data of the write request is written in the storage area “2” 21c and the storage area “2” 21d (FIG. 6). (See (b)).

この場合、記憶領域「2」21cは記憶媒体1(14−1)上の記憶領域であり、記憶領域「2」21dは記憶媒体3(14−3)上の記憶領域である。したがって、記憶媒体2(14−2)に対してはデータの書き込み処理は行われない。また、記憶媒体2(14−2)のステータスは「永続化対象領域」に設定されている。そのため、キャッシュ管理手段11は、記憶媒体2(14−2)の記憶領域「1」21bからデータを読み出して永続化記憶媒体15へ保存する永続化処理を開始する。また、この際、管理テーブル12の記憶領域「1」に対応するレコードの永続化媒体番号・フィールド35に、記憶媒体2(14−2)を識別する情報(例えば番号「2」)が設定される。   In this case, the storage area “2” 21c is a storage area on the storage medium 1 (14-1), and the storage area “2” 21d is a storage area on the storage medium 3 (14-3). Therefore, the data writing process is not performed on the storage medium 2 (14-2). Further, the status of the storage medium 2 (14-2) is set to “permanent target area”. Therefore, the cache management unit 11 starts a persistence process for reading data from the storage area “1” 21 b of the storage medium 2 (14-2) and storing it in the permanent storage medium 15. At this time, information (for example, the number “2”) for identifying the storage medium 2 (14-2) is set in the permanent medium number / field 35 of the record corresponding to the storage area “1” of the management table 12. The

次に、図7を参照して、図1に示すストレージシステム1による書き込み処理フローについて詳細に説明する。なお、管理テーブル12は図3を参照して説明した構成を有しているものとする。領域リスト14は図4(a)を参照して説明した構成を有しているものとする。また、記憶媒体14は、図2に示すように記憶領域が分割された3台の記憶媒体1(14−1)、記憶媒体2(14−2)、記憶媒体3(14−3)が用いられることとする。   Next, the write processing flow by the storage system 1 shown in FIG. 1 will be described in detail with reference to FIG. It is assumed that the management table 12 has the configuration described with reference to FIG. It is assumed that the area list 14 has the configuration described with reference to FIG. Further, as shown in FIG. 2, the storage medium 14 includes three storage media 1 (14-1), a storage medium 2 (14-2), and a storage medium 3 (14-3) that are divided into storage areas. It will be done.

図1〜図4の各図と図6のフローチャートを参照すると、上位装置がライトリクエスト(コマンド)とライトデータを送信すると、ライトリクエストはキャッシュ管理手段11で受信される(ステップ601)。そのライトリクエストを受信したキャッシュ管理手段11は、管理テーブル12を参照し、記憶媒体14中のどの記憶領域21に書き込みを行えば良いか判断する(ステップ602)。ステップ602では、管理テーブル12内の各レコード中の各ステータス・フィールド32を参照することで、その領域番号31で示される記憶領域21のステータスが「書き込み対象領域」であるかどうか判定する。そして、現在どの記憶領域21に書き込みを行えば良いか判断する。そして、書き込み対象の記憶領域21を選択する。   1 to 4 and the flowchart of FIG. 6, when the upper apparatus transmits a write request (command) and write data, the write request is received by the cache management means 11 (step 601). The cache management unit 11 that has received the write request refers to the management table 12 and determines which storage area 21 in the storage medium 14 should be written (step 602). In step 602, by referring to each status field 32 in each record in the management table 12, it is determined whether or not the status of the storage area 21 indicated by the area number 31 is “write target area”. Then, it is determined which storage area 21 should be currently written. Then, the storage area 21 to be written is selected.

次に、キャッシュ管理手段11によって「書き込み対象領域」と判断された記憶領域21に対して書き込み可能かどうかの判定を行う(ステップ603)。具体的には、管理テーブル12の当該記憶領域21のレコードの媒体アドレス・フィールド33を参照することで、記憶媒体14上のどのアドレスまでの書き込みが完了したかを確認する。さらに、記憶媒体14の媒体アドレスと記憶領域の分割との対応を示す変換表などを参照して、上位装置からのライトリクエストで指定されたデータ長に基づき、その記憶領域21の空き領域に当該データを書き込めるかどうかを判定する。   Next, it is determined whether or not writing is possible to the storage area 21 determined as the “write target area” by the cache management unit 11 (step 603). Specifically, by referring to the medium address field 33 of the record in the storage area 21 of the management table 12, it is confirmed to which address on the storage medium 14 the writing has been completed. Further, referring to a conversion table indicating the correspondence between the medium address of the storage medium 14 and the division of the storage area, the free area of the storage area 21 is determined based on the data length specified by the write request from the higher-level device. Determine whether data can be written.

その結果、書き込み可能であれば、そのライトリクエストで指定されたホストアドレスとデータ長及びデータを連続して記憶媒体14上の冗長化の指定された複数の記憶領域21の同一媒体アドレスに対して書き込み処理が行われる(ステップ604)。キャッシュ管理手段11は、書き込みの最後のデータの次のアドレスを、当該記憶領域21に対応するレコードの媒体アドレス・フィールド33に書き込むことで管理テーブル12の更新を終了する(ステップ605)。更に、キャッシュ管理手段11は、上位装置から受信したライトリクエストの内容に基づいて、書き込み指定された管理テーブル12上の領域番号の領域リストポインタ・フィールド34を参照し、記憶領域21毎に設定された領域リスト13の更新を行う(ステップ606)。   As a result, if writing is possible, the host address designated by the write request, the data length, and the data are successively assigned to the same medium address in the plurality of storage areas 21 designated for redundancy on the storage medium 14. Write processing is performed (step 604). The cache management unit 11 ends the update of the management table 12 by writing the next address of the last data to be written in the medium address field 33 of the record corresponding to the storage area 21 (step 605). Further, the cache management unit 11 refers to the area list pointer field 34 of the area number on the management table 12 designated for writing based on the content of the write request received from the host device, and is set for each storage area 21. The area list 13 is updated (step 606).

ステップ606での領域リスト13の更新処理は、まず、図4(a)の空きリスト41の先頭から要素40aを取り出し、あるいは図4(b)の領域リストポインタ・フィールド34に設定されているリストポインタに基づき図4(b)の先頭の要素40を取り出し、領域リスト13上のホストアドレスと受信したライトリクエストのホストアドレスとを比較しながらリンクを辿り、そのホストアドレスの挿入される位置を検索する。そして、検索された位置、即ち領域リスト13の各要素40が昇順に並ぶように、当該ライトリクエストに対応する要素40が挿入される。この挿入される要素40は、ライトリクエストが持つホストアドレスおよびデータ長と、書き込みを行った際の記憶媒体14上の当該記憶領域21内の相対的な先頭アドレスを、それぞれホストアドレス・メンバ42、データ長・メンバ43と、領域アドレス・メンバ44として構成されたものである。   In the update process of the area list 13 in step 606, first, the element 40a is extracted from the head of the empty list 41 in FIG. 4A, or the list set in the area list pointer field 34 in FIG. 4B. Based on the pointer, the head element 40 in FIG. 4B is extracted, and the link is followed while comparing the host address on the area list 13 with the host address of the received write request, and the position where the host address is inserted is searched. To do. Then, the element 40 corresponding to the write request is inserted so that the searched positions, that is, the elements 40 of the area list 13 are arranged in ascending order. The element 40 to be inserted includes the host address and data length of the write request, and the relative head address in the storage area 21 on the storage medium 14 at the time of writing, the host address member 42, The data length / member 43 and the area address / member 44 are configured.

一方、ステップ603にて、上位装置からのライトリクエストのデータ長が、指定された領域の書き込み可能容量を超える場合は、現在選択されている領域のステータスを「永続化対象領域」に、また媒体アドレス・フィールド33を記憶領域21の先頭アドレスに変更する(ステップ607)。そして新たに記憶領域21を確保するとともに、確保した記憶領域21の属する記憶媒体14上の領域のいずれかが「永続化中」になっていないかチェックを行う(ステップ608)。   On the other hand, if the data length of the write request from the host device exceeds the writable capacity of the designated area in step 603, the status of the currently selected area is set to “permanent area” and the medium The address field 33 is changed to the top address of the storage area 21 (step 607). Then, a new storage area 21 is secured, and it is checked whether any of the areas on the storage medium 14 to which the secured storage area 21 belongs is “permanent” (step 608).

新たに記憶領域21を確保する方法であるが、図3を参照して説明すると、現在領域番号「1」が書き込み対象領域であるとすると、領域番号が連続する記憶領域21を確保する。これは永続化処理を行う際にも同様である。ただし、書き込み対象領域の選択順序と永続化対象領域の選択順序が一致していれば良い。選択順序を、一致させることで古いデータから順番に処理を行うことが可能となり、データ一貫性の維持を可能とする。ここでは、領域番号を順番に選択する方法で説明する。   This is a method of newly securing the storage area 21. As will be described with reference to FIG. 3, if the current area number “1” is a write target area, the storage area 21 having consecutive area numbers is secured. The same applies to the persistence process. However, it suffices if the selection order of the write target area matches the selection order of the permanent target area. By matching the selection order, processing can be performed in order from the oldest data, and data consistency can be maintained. Here, a method of selecting region numbers in order will be described.

この場合では領域番号「2」が次の書き込み対象として選択される。図2では記憶媒体1(14−1)の領域番号が「2」で示される記憶領域「2」と、記憶媒体3(14−3)の領域番号「2」で示される記憶領域「2」が書き込み対象となり、記憶媒体1(14−1)と記憶媒体3(14−3)で「永続化中」の領域が無いか判定する。それには管理テーブル12中の各永続化媒体番号・フィールド35を参照し、いずれの記憶媒体14で永続化を行っているか参照することで実現する。   In this case, the area number “2” is selected as the next writing target. In FIG. 2, the storage area “2” indicated by the area number “2” of the storage medium 1 (14-1) and the storage area “2” indicated by the area number “2” of the storage medium 3 (14-3). Are to be written, and it is determined whether there is an area “permanent” in the storage medium 1 (14-1) and the storage medium 3 (14-3). This is realized by referring to each permanent medium number / field 35 in the management table 12 and referring to which storage medium 14 the permanent medium is used for.

ステップ608の判定で「永続化中」が存在すれば(ステップ608で「Yes」)、永続化の処理を行っている記憶媒体14とは異なる冗長化された記憶媒体14が、書き込み対象として選択された記憶領域21の記憶媒体14と重ならないかチェックされる(ステップ611)。例えば図6(b)で、記憶領域「2」21cと記憶領域「2」21dが新たな書き込み対象領域に選択されたとすると、ステップ608では、記憶媒体1(14−1)と記憶媒体3(14−3)で「永続化中」の記憶領域21があるか否かが判定される。ここで記憶領域「1」21aが「永続化中」であったとすると、ステップ608で、新規指定領域が「永続化中」であると判定される(ステップ608で「Yes」)。この場合に、ステップ611では、「永続化中」の記憶領域「1」21aと冗長化されている記憶領域「1」21bの記憶媒体2(14−2)が書き込み対象領域に選択されているか否かが判定される。この場合、記憶媒体1(14−1)と記憶媒体3(14−3)が新たな書き込み対象なので、記憶媒体2(14−2)は書き込み対象ではなく、ステップ611の判定結果は「No」となる。したがって、ステップ612で、書き込み対象の記憶媒体14とは異なる記憶媒体14である記憶媒体2(14−2)で、永続化処理が再開される。   If “permanent” is present in the determination in step 608 (“Yes” in step 608), a redundant storage medium 14 different from the storage medium 14 performing the perpetuation process is selected as the write target. It is checked whether or not it overlaps with the storage medium 14 in the storage area 21 (step 611). For example, in FIG. 6B, if the storage area “2” 21c and the storage area “2” 21d are selected as new write target areas, in step 608, the storage medium 1 (14-1) and the storage medium 3 ( In 14-3), it is determined whether or not there is a storage area 21 “permanent”. If the storage area “1” 21a is “permanent”, it is determined in step 608 that the newly designated area is “permanent” (“Yes” in step 608). In this case, in step 611, is the storage medium 2 (14-2) of the storage area “1” 21a “redundant” and the redundant storage area “1” 21b selected as the write target area? It is determined whether or not. In this case, since the storage medium 1 (14-1) and the storage medium 3 (14-3) are new write targets, the storage medium 2 (14-2) is not a write target, and the determination result in step 611 is “No”. It becomes. Therefore, in step 612, the persistence process is resumed on the storage medium 2 (14-2), which is the storage medium 14 different from the storage medium 14 to be written.

すなわち、ステップ608の判定の結果、冗長化された記憶媒体14上の永続化中の記憶領域21が、書き込み対象として選択された記憶領域21が属する記憶媒体14と重ならないのであれば(ステップ608で「No」)、冗長化された記憶媒体14から永続化の再開を行う(ステップ612)。他方、ステップ611で重なると判定されれば永続化の中断を行う(ステップ613)。   That is, as a result of the determination in step 608, if the storage area 21 being made permanent on the redundant storage medium 14 does not overlap the storage medium 14 to which the storage area 21 selected as the write target belongs (step 608). In step 612, the persistence is resumed from the redundant storage medium 14. On the other hand, if it is determined in step 611 that they overlap, the perpetuation is interrupted (step 613).

ステップ613で、永続化処理の中断を行うには、まず、現在永続化を行っている記憶媒体14への読み出し処理のリクエストの完了を待ち、処理が完了したら、中断を行った記憶領域21のステータス・フィールド32を「永続化中」から「永続化対象領域」に変更する。また、それと共に、その記憶領域21の記憶媒体14上に対して永続化処理を再開する際の媒体アドレスを媒体アドレス。フィールド33に記録する。   In step 613, in order to interrupt the persistence process, first, the completion of the request for the read process to the storage medium 14 that is currently persisted is waited. The status field 32 is changed from “permanent” to “permanent area”. At the same time, the medium address at the time of resuming the permanent processing on the storage medium 14 in the storage area 21 is the medium address. Record in field 33.

ステップ613が終了するとステップ610に進み、ステップS608で選択した記憶領域21を新たな書き込み対象領域として設定する処理を行い、続いて上位装置からの書き込み処理(ステップ604〜)が行われる。   When step 613 is completed, the process proceeds to step 610, where the process of setting the storage area 21 selected in step S608 as a new write target area is performed, followed by the write process (from step 604) from the host device.

一方、ステップ608で書き込み対象領域に選択された記憶領域21の記憶媒体14で永続化処理が行われていなければ(ステップ608で「No」)、永続化処理を起動し、以降上位装置からの書き込み処理(ステップ604〜)と並行して永続化処理が実行される(ステップ609)。書き込み処理と永続化処理を並行して実行するには、OS(オペレーティングシステム)やタスクディスパッチャーなどによるマルチタスク処理やマルチプロセッサなどの複数プログラムの並行処理技術を用いることとし、ここでは詳細に記述しない。   On the other hand, if the persistence process has not been performed on the storage medium 14 in the storage area 21 selected as the write target area in Step 608 (“No” in Step 608), the persistence process is started, and thereafter, from the upper apparatus. In parallel with the writing process (from step 604), a permanent process is executed (step 609). In order to execute the writing process and the persistence process in parallel, multi-task processing using an OS (operating system) or a task dispatcher or a parallel processing technique of a plurality of programs such as a multi-processor is used, which is not described in detail here. .

次に、図8のフローチャートを参照し、永続化の際の処理を説明する。図7のステップ609に於いて、少なくとも1つの領域が永続化対象領域となった時点で、永続化対象の選択を行う(ステップ701)。この選択は、図3の管理テーブル12中の古い領域、即ち現在書き込み対象として選択されている領域番号の1つ後ろ(この場合、領域番号が1つ大きい領域番号を持つ記憶領域21)の領域番号から順に辿り、書き込み対象の領域が発見されるまで、ステータス・フィールド32が「永続化対象領域」である領域番号を探すことで実現する。このようにして最も速く見つかったステータス・フィールド32が「永続化対象領域」である領域番号を永続化対象として選択する。   Next, the process at the time of perpetuation will be described with reference to the flowchart of FIG. In step 609 of FIG. 7, when at least one area becomes a permanent area, a permanent object is selected (step 701). This selection is based on the old area in the management table 12 of FIG. 3, that is, the area one area behind the area number currently selected for writing (in this case, the storage area 21 having an area number one larger in area number). This is realized by tracing in order from the number and searching for the area number whose status field 32 is “permanent area” until the area to be written is found. The area number whose status field 32 found the fastest in this way is “permanent area” is selected as a permanent object.

図3の管理テーブル12は有限長のテーブルの形を取っているが、最後の領域番号(この図では領域番号が「6」)の次が領域番号「1」となるリングバッファで考えるものとする。同様の管理手段が取れれば他の手法を用いても良い。ここで、例えば領域番号「4」が書き込み対象となっていれば、この中で一番古い記憶領域21は領域番号「5」となる。   The management table 12 in FIG. 3 takes the form of a finite length table, but considers a ring buffer in which the area number “1” follows the last area number (the area number is “6” in this figure). To do. Other methods may be used as long as similar management means can be obtained. Here, for example, if the area number “4” is to be written, the oldest storage area 21 among them is the area number “5”.

ステップ701では、管理テーブル12中で、一番古い記憶領域21の領域番号から順に辿り(上の例では、「5」、「6」、「1」、…の順に辿り)、ステータス・フィールド32が「永続化対象領域」であるレコードを探すこととなる。ここで例えば領域番号「2」が「永続化対象領域」であると判定されれば、現在書き込み対象となっている記憶領域21の記憶媒体14を求め、それらとは異なる記憶媒体14の記憶領域21を永続化対象として選択する(ステップ701)。   In step 701, the management table 12 is traced in order from the area number of the oldest storage area 21 (in the above example, traced in the order of “5”, “6”, “1”,...), And the status field 32. Will search for the record that is the “permanent area”. Here, for example, if it is determined that the area number “2” is the “permanent area”, the storage medium 14 of the storage area 21 that is the current write target is obtained, and the storage area 14 of the storage medium 14 that is different from those is obtained. 21 is selected as a permanent object (step 701).

ステップ701で選択された永続化対象の領域番号の記憶領域21を持つ冗長化された記憶媒体14が、書き込み対象となっている記憶媒体14と完全に一致するのであれば、すなわち永続化対象として選択された記憶媒体14のいずれもが書き込み対象の記憶媒体14である場合(ステップ702で「Yes」)、永続化処理の起動が出来なくなる。この場合、次の書き込み対象領域の選択まで永続化処理の起動を停止する。この場合には現段階において永続化処理は起動していない状態なので、単に処理の終了を行うだけである。   If the redundant storage medium 14 having the storage area 21 of the area number to be persisted selected in step 701 completely matches the storage medium 14 to be written, that is, as the persistence target. If any of the selected storage media 14 is the storage media 14 to be written (“Yes” in step 702), the persistence process cannot be activated. In this case, the activation of the persistence process is stopped until the next write target area is selected. In this case, since the persistence process is not activated at this stage, the process is simply terminated.

ステップ702で書き込み対象領域の記憶媒体14と一致しない選択可能な永続化処理対象領域があれば、ステップ703で永続化処理を開始し、ステップ704で管理テーブル12と領域リスト13の更新処理を行う。管理テーブル12の更新処理としては、永続化処理対象の記憶領域21のステータス・フィールド32を「永続化中」に変更する。また、選択された記憶媒体21の番号を永続化媒体番号・フィールド35に記録し、媒体アドレス・フィールド33から読み出すべきライトリクエストに対応するデータが保存されている媒体アドレスを取り出し、そのアドレスから永続化処理が行われる。   If there is a selectable permanent process target area that does not match the storage medium 14 in the write target area in step 702, the permanent process starts in step 703, and the management table 12 and the area list 13 are updated in step 704. . As an update process of the management table 12, the status field 32 of the storage area 21 to be persisted is changed to “permanent”. Further, the number of the selected storage medium 21 is recorded in the permanent medium number / field 35, the medium address where the data corresponding to the write request to be read out is read out from the medium address / field 33, and the permanent address is obtained from the address. Processing is performed.

媒体アドレス・フィールド33には、当該記憶領域21に対する全く新規の永続化処理であれば、当該記憶領域21に対して書き込み処理が完了する際に記憶領域21の先頭アドレスが保存されている。他方、永続化処理が中断されたものであれば、媒体アドレス・フィールド33に中断されたときの再開すべき媒体アドレスが保存されている。そのため、媒体アドレス・フィールド33を参照することで、新規/再開の両方に対処可能である。   In the medium address field 33, if it is a completely new permanent process for the storage area 21, the start address of the storage area 21 is stored when the writing process is completed for the storage area 21. On the other hand, if the persistence process has been interrupted, the media address to be resumed when interrupted is stored in the media address field 33. Therefore, by referring to the medium address field 33, both new / restart can be dealt with.

またステップ704では、該当するライトリクエストの情報を、その領域番号の領域リストポインタ・フィールド34で指定されるリスとポインタで示される領域リスト13から取り除く処理を行う。また、その記憶領域21に対する永続化処理が完了した際には、その記憶領域21のステータス・フィールド32を「無効領域」に変更し、永続化処理を完了とする(ステップ704)。   Further, in step 704, processing for removing the information of the corresponding write request from the list specified by the area list pointer field 34 of the area number and the area list 13 indicated by the pointer is performed. Further, when the permanent processing for the storage area 21 is completed, the status field 32 of the storage area 21 is changed to “invalid area”, and the permanent processing is completed (step 704).

次にステップ701で新たな永続化対象の記憶領域31の選択を行うが、その前にステップ705で前回の記憶領域21の次の記憶領域21のステータス・フィールド32を参照することで、次の記憶領域21が永続化対象であるかの判断を行う。ステップ705で、次の記憶領域21のステータス・フィールド32が「書き込み対象領域」であると確認された場合には、永続化対象の領域は存在しないこと、即ち書き込みに追いついたことになる。この場合、書き込みが完了した領域が少なくとも1つ溜まるまで永続化処理を停止する為に処理を終了する(ステップ705で「No」)。ステップ705で永続化対象の領域が存在すれば、ステップ701に戻り永続化対象領域の選択を行う。   Next, in step 701, a new permanent storage area 31 is selected. Before that, in step 705, by referring to the status field 32 of the storage area 21 next to the previous storage area 21, the next It is determined whether the storage area 21 is a permanent object. If it is confirmed in step 705 that the status field 32 of the next storage area 21 is the “write target area”, it means that there is no permanent area, that is, the write has been caught up. In this case, the process is terminated to stop the perpetuating process until at least one area where writing has been completed is accumulated (“No” in step 705). If there is a permanent area in step 705, the process returns to step 701 to select a permanent area.

次に、図9のフローチャートを参照し、上位装置から読み込みのリクエスト(リードリクエスト)が発生した場合の処理について説明する。なお、本実施形態においいて、上位装置からのリクエストがライトのみ行われる場合は本処理は不要であるが、更新した内容を参照する場合に本処理の実行が行われる。上位装置からリードリクエストが発生すると、キャッシュ管理手段11がそのリクエストを受信する(ステップ801)。キャッシュ管理手段11が受信したリードリクエストはライトリクエストと同様にホストアドレスとデータ長から成る。キャッシュ管理手段11は、管理テーブル15を参照し、リードのデータとしては最新のデータを転送する必要がある為、永続化されていない領域、即ちステータス・フィールド32が「永続化対象領域」、「永続化中」、「書き込み対象領域」となっている記憶領域21を対象とし、そのリードリクエストのホストアドレスで示されるデータが存在しないか検索を行う。   Next, processing when a read request (read request) is generated from the host device will be described with reference to the flowchart of FIG. In the present embodiment, this process is not necessary when the request from the higher-level device is only written, but this process is executed when referring to the updated content. When a read request is generated from the host device, the cache management unit 11 receives the request (step 801). The read request received by the cache management unit 11 is composed of a host address and a data length as in the write request. Since the cache management unit 11 refers to the management table 15 and needs to transfer the latest data as the read data, the non-permanent area, that is, the status field 32 is “permanent area”, “ The storage area 21 that is “permanent” and “write target area” is targeted, and a search is performed for the data indicated by the host address of the read request.

本実施の形態では、領域番号順にデータ書き込み処理と永続化処理が行われる。ここで、最新の更新データは、ステータス・フィールド32が「書き込み対象領域」となっている記憶領域21に存在する。そして、領域番号の逆順に(領域番号の降順に)次第に古いデータとなる。検索もこの順序で行う。すなわち、ステータス・フィールド32が「書き込み対象領域」を最初に検索し、次ぎに1つ領域番号が小さい記憶領域に対する検索を行う。そして、「無効領域」のステータスを示す記憶領域21が出た時点で検索を中止する。   In the present embodiment, data write processing and perpetuation processing are performed in the order of area numbers. Here, the latest update data exists in the storage area 21 in which the status field 32 is “write target area”. The data becomes gradually older in the reverse order of the area numbers (in descending order of the area numbers). Searches are also performed in this order. That is, the status field 32 first searches for “write target area”, and then searches for a storage area with one area number smaller. Then, the search is stopped when the storage area 21 indicating the status of “invalid area” comes out.

該当するホストアドレスとデータ長の範囲で指定されたデータが記憶媒体14内に全く無い場合は、キャッシュ管理手段11は永続化記憶媒体15に対してそのリードリクエストの発行を行う。キャッシュ管理手段11は、永続化記憶媒体15からデータを受信すると、そのデータを上位装置に対して送信し、リードリクエストの処理を完了する。   If there is no data specified in the range of the corresponding host address and data length in the storage medium 14, the cache management unit 11 issues a read request to the permanent storage medium 15. When the cache management unit 11 receives the data from the permanent storage medium 15, the cache management unit 11 transmits the data to the host device and completes the read request processing.

具体的には、キャッシュ管理手段11は、リードリクエストコマンドを受信すると(ステップ801)、管理テーブル12を参照して現在の書き込み対象領域の領域番号を取得する(ステップ802)。次に、管理テーブル12内でその領域番号で指定される領域リストポインタ・フィールド34に設定されているリストポインタで接続される領域リスト13を先頭要素から順番に検索する(ステップ803)。この領域リスト13の検索は、上位装置で指定されたホストアドレスとデータ長の範囲で、全く一致若しくは一部一致するメンバ42とメンバ43の値が無いか、領域リスト13の最後の「NULL」が出現するまでメンバ45のリストポインタを順に辿ることで行われる。   Specifically, when the cache management unit 11 receives the read request command (step 801), the cache management unit 11 refers to the management table 12 and acquires the area number of the current write target area (step 802). Next, the area list 13 connected by the list pointer set in the area list pointer field 34 designated by the area number in the management table 12 is searched in order from the top element (step 803). The search of the area list 13 is performed by checking whether the values of the member 42 and the member 43 which are completely or partially matched within the range of the host address and the data length specified by the upper apparatus are present, or “NULL” at the end of the area list 13. This is done by sequentially tracing the list pointer of the member 45 until appears.

ステップ803での検索処理で、領域リスト13に同一のデータが複数の要素40で表れた場合には、領域アドレス・メンバ44内の領域アドレスの大きな方、即ち更新の時期の新しい方のデータを選択し、記憶媒体14からそのデータを領域アドレス・メンバ44で指定される場所から読み出し、一時的に所定の記憶装置(例えばキャッシュ管理手段11内のRAM)にストアする。読み出しの際には冗長化されている複数の記憶媒体14のどちらから読み出しても構わないが、上位装置から書き込み対象とされている記憶領域21の記憶媒体14とは異なる記憶媒体14に属する記憶領域21であれば、ライトリクエスト処理を妨げないので好都合である。それには、管理テーブル12を参照し、書き込み対象となっている領域番号の情報を参照すれば判定可能である。   If the same data appears in the area list 13 in the area list 13 in the search processing in step 803, the data with the larger area address in the area address member 44, that is, the data with the newest update time is selected. Then, the data is read from the storage medium 14 from the location specified by the area address member 44, and temporarily stored in a predetermined storage device (for example, the RAM in the cache management means 11). At the time of reading, the data may be read from any of the plurality of redundant storage media 14, but the storage belongs to a storage medium 14 different from the storage medium 14 in the storage area 21 to be written from the host device. The area 21 is convenient because it does not hinder the write request process. This can be determined by referring to the management table 12 and referring to the information of the area number to be written.

ステップ804では、上位装置から指定されるリードリクエストのデータが全て揃ったかどうか判定し、全てのデータの読み出しが完了すれば読み出し処理を終了する(ステップ804で「Yes」)。ステップ804で全くデータが読み出せないか、或いは部分的にしか読み出すことが出来なかった場合には、残りのデータに対して次の領域からの読み出しを行う為、現在の次に新しい領域を選択し、無効領域でないか、あるいは管理テーブル12が一巡して書き込み対象領域で無いか判定を行うことで、新たな領域が有効かどうか判定を行う(ステップ805)。ステップ805で新たに検索を行う領域が存在しないと判定されれば(ステップ805で「No」)、全部若しくは部分的に読み出しが出来なかったデータを永続化記憶媒体15に対してリードリクエストを発行し、永続化記憶媒体15からのデータを受信し、データが全て揃った時点で上位装置にリードリクエストに対するデータ転送を行い、処理を完了する。(ステップ806)。一方、ステップ805で新たな領域が存在すれば(ステップ805で「Yes」)、部分的に読み出せた場合には残余のデータの検索を、全く読み出せなかった場合は全てのデータを対象として、ステップ803に戻り、次に新しい記憶領域21にデータが存在しないか検索を行う。更に、ステップ804で全てのデータが揃った場合には(ステップ804で「Yes」)、そのデータを上位装置に転送し、リードリクエストに対する処理を完了する(ステップ807)。   In step 804, it is determined whether all of the read request data designated by the host device is complete. When reading of all the data is completed, the read process is terminated (“Yes” in step 804). If no data can be read or only partially read in step 804, the current next new area is selected to read the remaining data from the next area. Then, it is determined whether or not the new area is valid by determining whether the area is not an invalid area or the management table 12 is not a write target area in a round (step 805). If it is determined in step 805 that there is no new search area (“No” in step 805), a read request is issued to the permanent storage medium 15 for data that could not be read in whole or in part. Then, the data from the permanent storage medium 15 is received, and when all the data is available, the data transfer for the read request is performed to the host device, and the processing is completed. (Step 806). On the other hand, if there is a new area in step 805 (“Yes” in step 805), the search for the remaining data is performed if it is partially read, and all data is targeted if it cannot be read at all. Returning to step 803, the next storage area 21 is searched for data. Further, when all the data is obtained in step 804 (“Yes” in step 804), the data is transferred to the host device, and the processing for the read request is completed (step 807).

上記のように、本実施形態では、キャッシュ管理手段11によって、少なくとも3台の記憶媒体14のうち、少なくとも2台の記憶媒体14で冗長関係を有する各記憶領域21にデータを書き込むのと並行して、少なくとも1台の記憶媒体14で当該記憶領域21と冗長関係が無い記憶領域21から永続化のためのデータが読み出されるようになっている。そしてキャッシュ管理手段11によって、少なくとも1台の記憶媒体14から読み出されたデータは永続化記憶媒体15に対して書き込まれるようになっている。また、キャッシュ管理手段11によって、上位装置からのデータの読み出し要求に応じて、そのリードリクエストに対応するホストアドレス(書き込みアドレス)を持つ要素40が領域リスト13(リスト構造)に複数存在していた場合には、複数の要素40に設定されている記憶媒体14のアドレスの大きさに応じて読み出すデータを選択し、選択したデータが記憶媒体14から読み出されるようになっている。   As described above, in this embodiment, the cache management unit 11 writes data to each storage area 21 having a redundant relationship in at least two storage media 14 out of at least three storage media 14. Thus, at least one storage medium 14 reads data for perpetuation from the storage area 21 that has no redundant relationship with the storage area 21. Data read from at least one storage medium 14 by the cache management means 11 is written to the permanent storage medium 15. In addition, in response to a data read request from the host device by the cache management unit 11, a plurality of elements 40 having a host address (write address) corresponding to the read request exist in the area list 13 (list structure). In this case, data to be read is selected according to the address size of the storage medium 14 set in the plurality of elements 40, and the selected data is read from the storage medium 14.

なお、本発明の実施の形態は上記に限定されず、例えばDRAMなどの揮発性記憶装置(あるいは記憶媒体)と記憶媒体14や記憶媒体15とを組み合わせて、揮発性記憶媒体を一時的な記憶手段として使用したり、上位装置の全部または一部の構成と本発明のストレージシステム1の一部または全部を組み合わせたりする変更が適宜可能である。また、本発明のストレージシステム1あるいはキャッシュ管理手段11は、CPUとそのCPUで実行されるプログラムとを用いて構成することができ、その場合のプログラムは所定の記憶媒体あるいは通信回線を介して提供することが可能である。   The embodiment of the present invention is not limited to the above. For example, a volatile storage medium is temporarily stored by combining a volatile storage device (or storage medium) such as a DRAM and the storage medium 14 or the storage medium 15. It can be used as a means, or can be appropriately changed by combining all or part of the configuration of the host device and part or all of the storage system 1 of the present invention. Further, the storage system 1 or the cache management means 11 of the present invention can be configured using a CPU and a program executed by the CPU, and the program in that case is provided via a predetermined storage medium or a communication line. Is possible.

なお本発明のストレージシステムの一態様は、上位装置からの書き込み時のデータを一時的に高速に記憶するためのディスクキャッシュの構成に特徴を有するものである。ディスクキャッシュは、磁気ディスク装置や、フラッシュメモリ、SSDなどの不揮発性記憶媒体を用いて構成する。そのような不揮発性記憶媒体は、一般的には、順次アクセス(シーケンシャルアクセス)とランダムアクセスで、ランダムアクセスがシーケンシャルアクセスに比して低速な特性を有している。本発明のストレージシステムでは、上位装置からライトリクエストに含まれるホストアドレスに関わらず、ライトデータをシーケンシャルでキャッシュに記憶し、同時にキャッシュから他の永続化記憶を行う記憶媒体に対して読み出しを行うものである。その際、本発明のストレージシステムは、少なくとも3台の複数の記憶媒体でキャッシュを構成し、その記憶媒体はそれぞれ複数の記憶領域に分割される。このキャッシュを複数の記憶媒体から構成するのは、書き込みデータの信頼性保証の為、少なくとも2台の記憶媒体に同一内容を記録する為であり、各記憶媒体は例えば同一容量の領域を保持する。また、上位装置から受信したデータは、受信したデータを少なくとも2台の記憶媒体の同一容量の領域に対して書き込む。そして、その書き込みに参加していない記憶媒体の領域からデータを読み出し、それらの記憶媒体とは異なるストレージやストレージシステムを含む永続化記憶媒体に対してデータの転送を行い、永続化記憶媒体への書き込みを行う。この永続化処理が完了した後、その転送元の記憶媒体の分割された領域の開放を行うことで上位装置からの書き込みと永続化媒体に対するデータ転送の為のリードを異なる記憶媒体に分離することができる。本システムでは、複数の記憶媒体において、データの書き込みとデータの読み出しを異なる記憶媒体に分離することで、キャッシュデータの一時記憶のための書き込みと、永続化処理のための読み出しとを並列して実行することが可能である。   Note that one aspect of the storage system of the present invention is characterized by a configuration of a disk cache for temporarily storing data at the time of writing from a host device at high speed. The disk cache is configured using a non-volatile storage medium such as a magnetic disk device, flash memory, or SSD. Such a non-volatile storage medium generally has sequential access (sequential access) and random access, and random access has characteristics that are slower than sequential access. In the storage system of the present invention, regardless of the host address included in the write request from the host device, the write data is sequentially stored in the cache and simultaneously read from the cache to a storage medium that performs other persistent storage It is. At that time, the storage system of the present invention forms a cache with at least three storage media, and each storage medium is divided into a plurality of storage areas. This cache is composed of a plurality of storage media in order to record the same contents in at least two storage media in order to guarantee the reliability of the write data, and each storage medium holds an area of the same capacity, for example. . In addition, the data received from the host device writes the received data to an area of the same capacity on at least two storage media. Then, the data is read from the area of the storage medium not participating in the writing, the data is transferred to a permanent storage medium including a storage or a storage system different from the storage medium, and the data is transferred to the permanent storage medium. Write. After this persistence processing is completed, the divided area of the transfer source storage medium is released to separate the write from the host device and the read for data transfer to the persistence medium into different storage media. Can do. In this system, in a plurality of storage media, data writing and data reading are separated into different storage media, so that writing for temporary storage of cache data and reading for persistence processing are performed in parallel. It is possible to execute.

具体的には、上位装置からのライトリクエストとライトデータの受信を行うと、前述の異なる記憶媒体の少なくとも2箇所の記憶領域を、書き込みを行う記憶領域として選択し、その記憶領域の最後のライトリクエストで書き込まれた次の場所につづけて、ライトリクエストの内容で示されるデータのアドレス及びデータ長、さらにライトデータを連続して書き込みを行う。この際、ライトリクエストで示されるアドレス、データ長と書き込みを行った記憶媒体のアドレスを記憶領域毎に1つのリスト構造のデータとして記録する。   Specifically, when a write request and write data are received from a higher-level device, at least two storage areas of the different storage medium described above are selected as storage areas to be written, and the last write in the storage area is selected. Following the next location written by the request, the address and data length of the data indicated by the contents of the write request and the write data are continuously written. At this time, the address indicated by the write request, the data length, and the address of the storage medium on which writing is performed are recorded as data of one list structure for each storage area.

リスト構造のデータである領域リストは記憶領域毎に作成し、領域リストはライトリクエストを受信し、記憶媒体に書き込みを行う毎に、ライトリクエストで示されるアドレスによって並び替えを行う。この為、領域リストはリスト構造等の要素単位の順序の入れ換えや挿入を行い易い構造を取り、常に昇順の並び替えを実施するものとする。   An area list, which is data having a list structure, is created for each storage area. The area list is rearranged according to the address indicated by the write request each time a write request is received and written to the storage medium. For this reason, the region list has a structure in which the order of element units such as a list structure can be easily replaced or inserted, and always rearranged in ascending order.

なお、書き込み対象領域の選択には、現在書き込みを行っている複数領域を管理する為の管理テーブルを持ち、何れの領域が書き込み対象として選択されているか(書き込み対象領域)、或いは領域にキャッシュとして有効なデータが存在するか(永続化対象領域)或いは初期の無意味なデータもしくは永続化媒体に対する永続化が全て完了した領域(無効領域)、或いは永続化中であるか示すステータスを持つ。現在書き込み対象の領域がいっぱいになれば、領域のステータスを、書き込み対象を示す状態から、永続化対象領域に変更を行う。   In addition, the selection of the write target area has a management table for managing a plurality of areas where writing is currently performed, which area is selected as a write target (write target area), or the area as a cache It has a status indicating whether valid data exists (persistence target area), initial meaningless data or an area where the persistence of the persistence medium is completely completed (invalid area), or whether the persistence is in progress. If the area to be written becomes full, the status of the area is changed from the state indicating the write target to the permanent area.

そして、新規の領域に書き込むため、前回選択された領域の記憶媒体とは少なくとも1つの異なる記憶媒体から成る記憶媒体中の無効領域の複数を選択し、新たに書き込み対象領域とし、無効領域のフラグを書き込み対象領域に変更し、領域テーブルの初期化を行い、上位装置からのライトリクエストに備える。   Then, in order to write to the new area, a plurality of invalid areas in the storage medium consisting of at least one different storage medium from the previously selected area are selected, and are newly set as write target areas. To the write target area, initialize the area table, and prepare for a write request from the host device.

一方、これらの書き込み動作と並行して永続化記憶媒体への書き込みを行う為の読み出しを行う際に、現在書き込み対象となっている記憶領域の属する記憶媒体とは異なる記憶媒体の永続化対象領域のうち、更新の一番古い記憶領域を対象として選択し、記憶領域の管理テーブルのフラグを永続化中に変更を行い、記憶領域から連続で読み出すことで永続化処理を実現する。こうすることで、上位装置からの書き込み時とは異なる記憶媒体の領域から永続化の為のデータを読み出すことが可能になる。よって、記憶媒体中の新たな記憶領域を選択する時に不連続のアドレスを指定し、ランダムアクセスになるが、それ以外は同じ記憶媒体が選択されるので、殆どの場合に於いてシーケンシャルアクセスを実現することが可能となる。   On the other hand, when performing reading for writing to the permanent storage medium in parallel with these write operations, the permanent area of the storage medium different from the storage medium to which the storage area currently being written belongs Among them, the oldest storage area to be updated is selected as a target, the flag of the management table of the storage area is changed during perpetuation, and the perpetuation processing is realized by continuously reading from the storage area. By doing so, it becomes possible to read data for perpetuation from a storage medium area different from the time of writing from the host device. Therefore, discontinuous addresses are specified when selecting a new storage area in the storage medium, and random access is performed, but since the same storage medium is selected in other cases, sequential access is realized in most cases. It becomes possible to do.

本発明によれば、磁気ディスクやフラッシュメモリ等のランダムアクセスに比してシーケンシャルアクセスが高速な記憶媒体をディスクキャッシュとする場合に、記憶媒体を3台以上で構成し、さらにそれぞれの記憶媒体を複数の領域に分割し、それぞれの記憶媒体の中から少なくとも2台の記憶媒体の記憶領域を選択し、選択の方法として上位装置からの書き込み対象として前回選択された領域とは少なくとも1つの異なる記憶媒体の領域を選択し、該領域に対して上位装置から順次入力されるデータ列をアドレスやデータ長と共にシーケンシャルに記憶するログ書き込みを行うとともに、これと同時に行われる永続化の為の読み出しは、上位装置からのログ書き込みで選択されている領域の記憶媒体とは異なる記憶媒体を選択して読み出すことで、上位装置からのシーケンシャルライトを妨げる事無く永続化の為の読み出しを行うことができる。   According to the present invention, when the disk cache is a storage medium that is faster in sequential access than random access such as a magnetic disk or a flash memory, the storage medium is configured with three or more storage media, and each storage medium is Dividing into a plurality of areas, selecting a storage area of at least two storage media from each storage medium, and selecting at least one different storage from the area previously selected as a write target from the host device as a selection method Select the area of the medium, perform log writing to sequentially store the data string sequentially input from the upper device to the area with the address and data length, and at the same time read for perpetuation, Select and read a storage medium that is different from the storage medium selected in the log write from the host device. That is, it is possible to perform the reading for that without persistence interfere with the sequential write from the host device.

なお、記憶媒体14(あるいは14−1〜4)が特許請求の範囲の記載における「一時記憶媒体」に相当する。また、キャッシュ管理手段11あるいはキャッシュシステム1が特許請求の範囲の記載における「キャッシュ制御装置」に相当する。   The storage medium 14 (or 14-1 to 4) corresponds to a “temporary storage medium” in the claims. Further, the cache management unit 11 or the cache system 1 corresponds to a “cache control device” in the claims.

本発明によれば、ディスクアレイのキャッシュ制御やパーソナルコンピューターやサーバーなどの内部の磁気ディスクのキャッシュ、特にデータロギングなどの大容量の書き込みを主体とするシステムあるいは装置において適用可能である。   INDUSTRIAL APPLICABILITY According to the present invention, the present invention can be applied to disk array cache control and internal magnetic disk caches such as personal computers and servers, particularly systems or apparatuses mainly for large capacity writing such as data logging.

11 キャッシュ管理手段
12 管理テーブル
13 領域リスト
14 記憶媒体
15 永続化記憶媒体
14−1 記憶媒体1
14−2 記憶媒体2
14−3 記憶媒体3
14−4 記憶媒体4
21 記憶領域
22 識別符号(領域番号)
31 領域番号
32 ステータス・フィールド
33 媒体アドレス・フィールド
34 領域リストポインタ・フィールド
35 永続化媒体番号・フィールド
41 空きリスト先頭
42 ホストアドレス・メンバ
43 データ長・メンバ
44 領域アドレス・メンバ
45 リストポインタ・メンバ
11 Cache management means 12 Management table 13 Area list 14 Storage medium 15 Permanent storage medium 14-1 Storage medium 1
14-2 Storage medium 2
14-3 Storage medium 3
14-4 Storage medium 4
21 Storage area 22 Identification code (area number)
31 Area number 32 Status field 33 Media address field 34 Area list pointer field 35 Permanent medium number field 41 Free list head 42 Host address member 43 Data length / member 44 Area address member 45 List pointer member

Claims (6)

永続化記憶媒体に記憶するデータを、一旦一時記憶媒体に記憶して、前記一旦記憶したデータを前記一時記憶媒体から読み出して前記永続化記憶媒体へと転送するストレージシステムにおいて、
前記一時記憶媒体が、少なくとも3台の一時記憶媒体から構成され、
前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで冗長関係を有し且つ少なくとも1台の一時記憶媒体で当該記憶領域との冗長関係が無くなるよう設定された複数の記憶領域をそれぞれ有し、
前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込むのと並行して、前記少なくとも1台の一時記憶媒体で当該記憶領域と冗長関係が無い記憶領域からデータを読み出す過程と、
前記少なくとも1台の一時記憶媒体から読み出したデータを前記永続化記憶媒体に書き込む過程とを行う
ことを特徴とするストレージシステムの制御方法。
In a storage system for temporarily storing data to be stored in a permanent storage medium, temporarily storing the data in the temporary storage medium, reading the temporarily stored data from the temporary storage medium, and transferring the data to the permanent storage medium.
The temporary storage medium is composed of at least three temporary storage media;
Each of the temporary storage media has a redundant relationship in combination with a temporary storage medium that differs for each storage area between two or more temporary storage media, and at least one temporary storage medium has a redundant relationship with the storage area. Each has a plurality of storage areas set to disappear,
Of the at least three temporary storage media, the at least one temporary storage medium is redundant with the storage area in parallel with writing data to each storage area having a redundancy relationship with at least two temporary storage media. Reading data from unrelated storage areas;
A method of controlling a storage system, comprising: writing data read from the at least one temporary storage medium to the permanent storage medium.
前記永続化記憶媒体への書き込み要求に応じて前記各記憶領域にデータを書き込む際、前記書き込み要求に含まれる書き込みアドレスと書き込みデータのデータ長と、前記データが書き込まれる前記一時記憶媒体のアドレスとから構成された要素を、前記記憶領域毎にリスト構造で前記書き込みアドレスの順に並べて保持し、
データの読み出し要求に応じて、前記読み出し要求に対応する書き込みアドレスを持つ要素が前記リスト構造に複数存在していた場合に、前記複数の要素に設定されている前記一時記憶媒体のアドレスの大きさに応じて読み出すデータを選択し、選択したデータを前記一時記憶媒体から読み出す
ことを特徴とする請求項1に記載のストレージシステムの制御方法。
When writing data to each storage area in response to a write request to the permanent storage medium, a write address included in the write request, a data length of the write data, and an address of the temporary storage medium to which the data is written Are arranged in the order of the write address in a list structure for each storage area,
In response to a data read request, when there are a plurality of elements having a write address corresponding to the read request in the list structure, the size of the address of the temporary storage medium set in the plurality of elements The method for controlling a storage system according to claim 1, wherein data to be read is selected according to the data, and the selected data is read from the temporary storage medium.
前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込む際に、所定の順序で書き込みを行う前記記憶領域を選択し、
前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで有する冗長関係が、前記データ書き込みの際に前記記憶領域を選択する前記所定の順序に対応して、ある順序で選択される記憶領域について前記冗長関係を有する複数の一時記憶媒体の少なくとも1台の記憶媒体が、次の順序で選択される記憶領域については前記同一の複数の一時記憶媒体の他の記憶媒体と冗長関係を有しない
ことを特徴とする請求項1又は2に記載のストレージシステムの制御方法。
Of the at least three temporary storage media, when writing data to each storage area having a redundancy relationship with at least two temporary storage media, select the storage area to be written in a predetermined order;
The redundant relationship that each temporary storage medium has in combination with a temporary storage medium different for each storage area between two or more temporary storage media is in the predetermined order for selecting the storage area at the time of data writing. Correspondingly, at least one of the plurality of temporary storage media having the redundancy relationship with respect to the storage area selected in a certain order is the same as the plurality of temporary storages for the storage area selected in the next order. The storage system control method according to claim 1 or 2, wherein the storage system has no redundant relationship with other storage media.
前記永続化記憶媒体への書き込み要求に応じて、書き込みアドレスとデータ長とデータとをひとまとまりにして前記一時記憶媒体へのデータの書き込みが行われる
ことを特徴とする請求項1から3のいずれか1項に記載のストレージシステムの制御方法。
4. The data is written to the temporary storage medium as a set of write address, data length, and data in response to a write request to the permanent storage medium. 5. The storage system control method according to claim 1.
永続化記憶媒体に記憶するデータを、一旦一時記憶媒体に記憶して、前記一旦記憶したデータを前記一時記憶媒体から読み出して前記永続化記憶媒体へと転送するストレージシステムの制御装置において、
前記一時記憶媒体が、少なくとも3台の一時記憶媒体から構成され、
前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで冗長関係を有し且つ少なくとも1台の一時記憶媒体で当該記憶領域との冗長関係が無くなるよう設定された複数の記憶領域をそれぞれ有し、
ストレージシステムの制御装置が、
前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込むのと並行して、前記少なくとも1台の一時記憶媒体で当該記憶領域と冗長関係が無い記憶領域からデータを読み出す手段と、
前記少なくとも1台の一時記憶媒体から読み出したデータを前記永続化記憶媒体に書き込む手段と
を備えることを特徴とするストレージ制御装置。
In a storage system controller for storing data to be stored in a permanent storage medium, temporarily storing the data in a temporary storage medium, reading the temporarily stored data from the temporary storage medium, and transferring the data to the permanent storage medium.
The temporary storage medium is composed of at least three temporary storage media;
Each of the temporary storage media has a redundant relationship in combination with a temporary storage medium that differs for each storage area between two or more temporary storage media, and at least one temporary storage medium has a redundant relationship with the storage area. Each has a plurality of storage areas set to disappear,
The storage system controller
Of the at least three temporary storage media, the at least one temporary storage medium is redundant with the storage area in parallel with writing data to each storage area having a redundancy relationship with at least two temporary storage media. Means for reading data from unrelated storage areas;
Means for writing data read from the at least one temporary storage medium to the permanent storage medium.
永続化記憶媒体に記憶するデータを、一旦一時記憶媒体に記憶して、前記一旦記憶したデータを前記一時記憶媒体から読み出して前記永続化記憶媒体へと転送するストレージシステムの制御装置において、
前記一時記憶媒体が、少なくとも3台の一時記憶媒体から構成され、
前記各一時記憶媒体が、2台以上の一時記憶媒体間で記憶領域毎に異なる一時記憶媒体との組み合わせで冗長関係を有し且つ少なくとも1台の一時記憶媒体で当該記憶領域との冗長関係が無くなるよう設定された複数の記憶領域をそれぞれ有し、
ストレージシステムの制御装置が、
前記少なくとも3台の一時記憶媒体のうち、少なくとも2台の一時記憶媒体で冗長関係を有する各記憶領域にデータを書き込むのと並行して、前記少なくとも1台の一時記憶媒体で当該記憶領域と冗長関係が無い記憶領域からデータを読み出す過程と、
前記少なくとも1台の一時記憶媒体から読み出したデータを前記永続化記憶媒体に書き込む過程と
をコンピューターを用いて実行するための指令を含むことを特徴とするストレージ制御装置のプログラム。
In a storage system controller for storing data to be stored in a permanent storage medium, temporarily storing the data in a temporary storage medium, reading the temporarily stored data from the temporary storage medium, and transferring the data to the permanent storage medium.
The temporary storage medium is composed of at least three temporary storage media;
Each of the temporary storage media has a redundant relationship in combination with a temporary storage medium that differs for each storage area between two or more temporary storage media, and at least one temporary storage medium has a redundant relationship with the storage area. Each has a plurality of storage areas set to disappear,
The storage system controller
Of the at least three temporary storage media, the at least one temporary storage medium is redundant with the storage area in parallel with writing data to each storage area having a redundancy relationship with at least two temporary storage media. Reading data from unrelated storage areas;
A program for a storage control apparatus, comprising: a command for executing, using a computer, a process of writing data read from the at least one temporary storage medium to the permanent storage medium.
JP2009011173A 2009-01-21 2009-01-21 Storage system control method, storage control device, and program Pending JP2010170268A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009011173A JP2010170268A (en) 2009-01-21 2009-01-21 Storage system control method, storage control device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009011173A JP2010170268A (en) 2009-01-21 2009-01-21 Storage system control method, storage control device, and program

Publications (1)

Publication Number Publication Date
JP2010170268A true JP2010170268A (en) 2010-08-05

Family

ID=42702377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009011173A Pending JP2010170268A (en) 2009-01-21 2009-01-21 Storage system control method, storage control device, and program

Country Status (1)

Country Link
JP (1) JP2010170268A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677234A (en) * 2014-11-22 2016-06-15 重庆市上卓信息技术有限公司 Data splicing and merging system and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677234A (en) * 2014-11-22 2016-06-15 重庆市上卓信息技术有限公司 Data splicing and merging system and method thereof

Similar Documents

Publication Publication Date Title
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
KR101086857B1 (en) Control Method of Solid State Storage System for Data Merging
JP6208156B2 (en) Replicating a hybrid storage aggregate
US9323659B2 (en) Cache management including solid state device virtualization
JP5593577B2 (en) Storage system and control method thereof
US9454317B2 (en) Tiered storage system, storage controller and method of substituting data transfer between tiers
US9009396B2 (en) Physically addressed solid state disk employing magnetic random access memory (MRAM)
WO2017216887A1 (en) Information processing system
CN106445405B (en) Data access method and device for flash memory storage
WO2015015550A1 (en) Computer system and control method
US8862819B2 (en) Log structure array
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
JP4561168B2 (en) Data processing system and method, and processing program therefor
JP5944502B2 (en) Computer system and control method
CN108319430B (en) Method and device for processing IO (input/output) request
US20160350003A1 (en) Memory system
JP6011153B2 (en) Storage system, storage control method, and storage control program
JP2012128645A (en) Memory system
JP2006099802A (en) Storage controller, and control method for cache memory
JP4734432B2 (en) Data storage system
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
US10430287B2 (en) Computer
US20180307427A1 (en) Storage control apparatus and storage control method
US11474750B2 (en) Storage control apparatus and storage medium
JP2010170268A (en) Storage system control method, storage control device, and program

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100716