JP6820060B2 - Storage device, control method and program of storage device - Google Patents

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

Info

Publication number
JP6820060B2
JP6820060B2 JP2017066159A JP2017066159A JP6820060B2 JP 6820060 B2 JP6820060 B2 JP 6820060B2 JP 2017066159 A JP2017066159 A JP 2017066159A JP 2017066159 A JP2017066159 A JP 2017066159A JP 6820060 B2 JP6820060 B2 JP 6820060B2
Authority
JP
Japan
Prior art keywords
write data
block size
data
input
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017066159A
Other languages
Japanese (ja)
Other versions
JP2018169773A (en
Inventor
智一 稲垣
智一 稲垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2017066159A priority Critical patent/JP6820060B2/en
Publication of JP2018169773A publication Critical patent/JP2018169773A/en
Application granted granted Critical
Publication of JP6820060B2 publication Critical patent/JP6820060B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ストレージ装置、ストレージ装置の制御方法及びプログラムに関する。特に、データ圧縮機能を備えたストレージ装置、ストレージ装置の制御方法及びプログラムに関する。 The present invention relates to a storage device, a control method and a program of the storage device. In particular, the present invention relates to a storage device having a data compression function, a control method and a program of the storage device.

近年、データ記憶容量の増大に伴い、データ圧縮機能を備えたストレージ装置が利用されている(特許文献1参照)。このようなストレージ装置では、コントローラがホスト端末から受け取ったライトデータを一定サイズのブロックへ圧縮し、圧縮データを記録媒体である物理メモリに書き込む。また、ホスト端末からのリード要求に対しては、コントローラが、物理メモリからブロック単位の圧縮データを読み出し、伸長した後にリードデータとしてホスト端末に対して応答する。 In recent years, with the increase in data storage capacity, a storage device having a data compression function has been used (see Patent Document 1). In such a storage device, the controller compresses the write data received from the host terminal into blocks of a certain size, and writes the compressed data to the physical memory which is a recording medium. Further, in response to a read request from the host terminal, the controller reads the compressed data in block units from the physical memory, decompresses it, and then responds to the host terminal as read data.

特表2015−518586号公報Special Table 2015-518586

以下の分析は、本発明の観点からなされたものである。なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。 The following analysis was made from the point of view of the present invention. The disclosure of the above prior art documents shall be incorporated into this document by citation.

特許文献1に開示のストレージ装置では、リード要求に対するストレージ装置の応答性能が低下するという問題点がある。 The storage device disclosed in Patent Document 1 has a problem that the response performance of the storage device to a read request is lowered.

すなわち、ストレージ装置のコントローラは、ホスト端末からメタデータなどのサイズが小さいデータのリード要求を受け付けることがある。この場合には、コントローラは、要求されたデータのサイズに比べて大きいサイズのデータを伸長することになる。その結果、コントローラにかかる負荷が大きくなり、リード要求に対するストレージ装置の応答性能が低下する。 That is, the controller of the storage device may receive a read request for small-sized data such as metadata from the host terminal. In this case, the controller will decompress a size of data that is larger than the size of the requested data. As a result, the load on the controller increases, and the response performance of the storage device to the read request deteriorates.

一方で、ストレージ装置のコントローラは、ホスト端末から、シーケンシャルデータなどのサイズが大きいデータのリード要求を受け付けることがある。この場合には、コントローラは、多数のブロックに分かれた圧縮データをブロック単位で読み出し、各データブロックを各々伸長する必要がある。その結果、コントローラにかかる負荷が大きくなり、ストレージ装置の応答性能が低下する。 On the other hand, the controller of the storage device may receive a read request for large-sized data such as sequential data from the host terminal. In this case, the controller needs to read the compressed data divided into a large number of blocks in block units and decompress each data block. As a result, the load on the controller becomes large, and the response performance of the storage device deteriorates.

そこで、本発明では、リード要求に対する応答性能を改善したストレージ装置、ストレージ装置の制御方法及びプログラムを提供することを目的とする。 Therefore, an object of the present invention is to provide a storage device having improved response performance to a read request, a control method and a program of the storage device.

本発明の第1の視点によれば、
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルと、
前記ライトデータの入出力パターンを解析して、解析結果を前記管理テーブルに書き込む入出力パターン解析手段と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定手段と、
前記ブロックサイズ決定手段によって決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮手段と、
を備えたストレージ装置が提供される。
According to the first aspect of the present invention
A management table for managing the input / output patterns of write data received from the host terminal,
An input / output pattern analysis means that analyzes the input / output pattern of the write data and writes the analysis result to the management table.
A block size determining means for determining the size of the block for compressing the write data with reference to the management table, and
A compression means that compresses the write data to the block size determined by the block size determining means and writes the compressed data to the physical memory.
A storage device is provided.

本発明の第2の視点によれば、
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して解析結果を書き込む入出力パターン解析ステップと、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定ステップと、
前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮ステップと、
を含むストレージ装置の制御方法が提供される。
According to the second aspect of the present invention
An input / output pattern analysis step that analyzes the input / output pattern of write data and writes the analysis result to the management table for managing the input / output pattern of the write data received from the host terminal.
A block size determination step for determining the size of the block for compressing the write data with reference to the management table, and
A compression step of compressing the write data to the block size determined in the block size determination step and writing the compressed data to the physical memory.
A method of controlling a storage device including is provided.

本発明の第3の視点によれば、
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して、解析結果を書き込む入出力パターン解析処理と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定処理と、
前記ブロックサイズ決定処理において決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮処理と、
をコンピュータに実行させるプログラムが提供される。
According to the third aspect of the present invention
Input / output pattern analysis processing that analyzes the input / output pattern of write data and writes the analysis result to the management table for managing the input / output pattern of write data received from the host terminal.
The block size determination process for determining the size of the block for compressing the write data with reference to the management table,
A compression process in which the write data is compressed to the block size determined in the block size determination process and the compressed data is written to the physical memory.
Is provided with a program that causes the computer to execute.

本発明の各視点によれば、リード要求に対する応答性能を改善したストレージ装置、ストレージ装置の制御方法及びプログラムが提供される。 According to each viewpoint of the present invention, a storage device having improved response performance to a read request, a storage device control method, and a program are provided.

一実施形態の概要を説明するための図である。It is a figure for demonstrating the outline of one Embodiment. 第1の実施形態のストレージ装置の一構成を示すブロック図である。It is a block diagram which shows one configuration of the storage device of 1st Embodiment. 管理テーブル120に記憶される情報の一例を示した図である。It is a figure which showed an example of the information stored in the management table 120. アドレス変換マップ130に記憶される情報の一例を示した図である。It is a figure which showed an example of the information stored in the address translation map 130. ホスト端末30からライトデータを受信した場合のストレージ装置10による処理フローを示す図である。It is a figure which shows the processing flow by the storage apparatus 10 when the write data is received from the host terminal 30. ストレージ装置10によるライトデータの圧縮及び格納に関する処理フローを示す図である。It is a figure which shows the processing flow about compression and storage of write data by a storage apparatus 10. ホスト端末30からリード要求を受信した場合のストレージ装置10による処理フローを示す図である。It is a figure which shows the processing flow by the storage apparatus 10 when the read request is received from the host terminal 30. 第2の実施形態のアドレス変換マップ130の作成及び更新に関する処理フローを示す図である。It is a figure which shows the process flow about the creation and update of the address translation map 130 of the 2nd Embodiment. 第3の実施形態の管理テーブル120に記憶される情報の一例を示した図である。It is a figure which showed an example of the information stored in the management table 120 of the 3rd Embodiment. 第3の実施形態のストレージ装置10によるライトデータの圧縮及び格納に関する処理フローを示す図である。It is a figure which shows the processing flow about compression and storage of write data by the storage apparatus 10 of 3rd Embodiment.

本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。なお、以下の記載に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。 Preferred embodiments of the present invention will be described in detail with reference to the drawings. It should be noted that the drawing reference reference numerals added to the following description are added to each element for convenience as an example for assisting understanding, and the present invention is not intended to be limited to the illustrated embodiment. Further, the connecting line between the blocks in each figure includes both bidirectional and unidirectional.

図1に示すように、ストレージ装置10は、物理メモリ群20と接続され、情報処理に必要なデータを記憶する記憶部100と、情報処理を行う処理部200とを有する。物理メモリ群20は圧縮データを記憶する物理メモリ21を複数有し、各物理メモリ21は、バスなどを介してストレージ装置10と接続される。記憶部100は、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブル120を含む。 As shown in FIG. 1, the storage device 10 is connected to the physical memory group 20 and has a storage unit 100 that stores data necessary for information processing and a processing unit 200 that performs information processing. The physical memory group 20 has a plurality of physical memories 21 for storing compressed data, and each physical memory 21 is connected to the storage device 10 via a bus or the like. The storage unit 100 includes a management table 120 for managing input / output patterns of write data received from the host terminal.

処理部200は、ホスト端末(図示せず)とも接続され、I/O(input/output)パターン解析部210と、ブロックサイズ決定部220と、データ圧縮/伸長部230とを有する。なお、I/Oパターン解析部210は入出力パターン解析手段とも称され、ブロックサイズ決定部220はブロックサイズ決定手段とも称される。また、データ圧縮/伸長部230は圧縮手段としての機能の一部を実行する。 The processing unit 200 is also connected to a host terminal (not shown) and has an I / O (input / output) pattern analysis unit 210, a block size determination unit 220, and a data compression / decompression unit 230. The I / O pattern analysis unit 210 is also referred to as an input / output pattern analysis means, and the block size determination unit 220 is also referred to as a block size determination means. Further, the data compression / decompression unit 230 executes a part of the function as the compression means.

I/Oパターン解析部210は、ホスト端末から受け付けたライトデータの入出力パターンを解析して、解析結果を管理テーブル120に書き込む。ブロックサイズ決定部220は、管理テーブル120を参照してライトデータを圧縮するブロックのサイズを決定する。データ圧縮/伸長部230は、ブロックサイズ決定部220によって決定されたサイズでライトデータを圧縮する。そして、ストレージ装置10は、圧縮データを物理メモリ21に書き込む。 The I / O pattern analysis unit 210 analyzes the input / output pattern of the write data received from the host terminal and writes the analysis result in the management table 120. The block size determination unit 220 determines the size of the block for compressing the write data with reference to the management table 120. The data compression / decompression unit 230 compresses the write data to a size determined by the block size determination unit 220. Then, the storage device 10 writes the compressed data to the physical memory 21.

具体的な一例を挙げて説明すると、管理テーブル120は、ホスト端末から受け付けたライトデータに対するホスト端末からのアクセスパターン(シーケンシャルアクセス回数、ランダムアクセス回数、平均I/Oサイズ)を記憶する。I/Oパターン解析部210は、ホスト端末から受け付けたライトデータに対するホスト端末からのアクセスパターンを解析して、解析結果を管理テーブル120に書き込む。 To give a specific example, the management table 120 stores the access pattern (sequential access count, random access count, average I / O size) from the host terminal for the write data received from the host terminal. The I / O pattern analysis unit 210 analyzes the access pattern from the host terminal for the write data received from the host terminal, and writes the analysis result in the management table 120.

ブロックサイズ決定部220は、管理テーブル120を参照して、例えば、シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、ブロックのサイズを「平均I/Oサイズ*平均シーケンシャルアクセス回数」に決定する。また、ブロックサイズ決定部220は、シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、ブロックのサイズを「平均I/Oサイズ」に決定する。 The block size determination unit 220 refers to the management table 120, and determines, for example, the block size as "average I / O size * average sequential access count" for write data whose sequential access count is larger than the random access count. To do. Further, the block size determination unit 220 determines the block size to be "average I / O size" for write data whose sequential access count is less than the random access count.

データ圧縮/伸長部230は、ブロックサイズ決定部220によって決定されたブロックのサイズにライトデータを圧縮する。そして、ストレージ装置10は、圧縮データを物理メモリ21に書き込む。また、ストレージ装置10は、ホスト端末からのリード要求を受け付けた場合に、物理メモリ21から圧縮データを読み出し、データ圧縮/伸長部230によって圧縮データを伸長した後にリードデータとしてホスト端末に対して応答する。 The data compression / decompression unit 230 compresses the write data to the block size determined by the block size determination unit 220. Then, the storage device 10 writes the compressed data to the physical memory 21. Further, when the storage device 10 receives a read request from the host terminal, the storage device 10 reads the compressed data from the physical memory 21, decompresses the compressed data by the data compression / decompression unit 230, and then responds to the host terminal as read data. To do.

このように、ストレージ装置10は、小さいサイズでリード要求を受ける傾向が高い、言い換えるとランダムアクセス回数が多いライトデータに関しては、小さいサイズのブロックに圧縮して物理メモリ21に書き込む。その一方で、ストレージ装置10は、大きいサイズでリード要求を受ける傾向が高い、言い換えるとシーケンシャルアクセス回数が多いライトデータに関しては、大きいサイズのブロックに圧縮して物理メモリ21に書き込む。 As described above, the storage device 10 tends to receive a read request with a small size, in other words, the write data having a large number of random accesses is compressed into a small size block and written to the physical memory 21. On the other hand, the storage device 10 tends to receive a read request with a large size, in other words, the write data having a large number of sequential accesses is compressed into a large size block and written to the physical memory 21.

そのため、ストレージ装置10は、サイズが小さいデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置10は、サイズが大きいデータのリード要求に対して応答する際に、物理メモリ21から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮/伸長部230にかかる負担が軽減され、結果的にリード要求に対するストレージ装置10の応答性能が改善される。 Therefore, when the storage device 10 responds to a read request for data having a small size, the storage device 10 has a high tendency to decompress data having a size as required. Further, when the storage device 10 responds to a read request for large-sized data, the number of blocks of compressed data read from the physical memory 21 can be reduced. Therefore, the load on the data compression / decompression unit 230 is reduced, and as a result, the response performance of the storage device 10 to the read request is improved.

以下では本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.

[第1の実施形態]
図2に示すように、ストレージ装置10は、物理メモリ群20及びホスト端末30と接続され、記憶部100と、処理部200と、ホスト制御部300と、メモリ制御部400とを有する。物理メモリ群20は、圧縮データを記憶するHDD(hard disk drive)、SDD(solid state drive)などの物理メモリ21を複数有し、各物理メモリ21は、バスなどを介してストレージ装置10と接続される。なお、物理メモリ21はストレージ装置10の内部に搭載することもできる。ホスト端末30は、ネットワークを介して接続されるコンピュータなどであり、ストレージ装置10に対してライトデータ、リード要求などを送信する。
[First Embodiment]
As shown in FIG. 2, the storage device 10 is connected to the physical memory group 20 and the host terminal 30, and has a storage unit 100, a processing unit 200, a host control unit 300, and a memory control unit 400. The physical memory group 20 has a plurality of physical memories 21 such as an HDD (hard disk drive) and an SDD (solid state drive) for storing compressed data, and each physical memory 21 is connected to a storage device 10 via a bus or the like. Will be done. The physical memory 21 can also be mounted inside the storage device 10. The host terminal 30 is a computer or the like connected via a network, and transmits write data, a read request, and the like to the storage device 10.

記憶部100は、ROM(read only memory)、RAM(random access memory)などであり、具体的には、圧縮前データ111及び圧縮後データ112を記憶するキャッシュメモリ110を含む。また、記憶部100は、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブル120、及び論理ボリュームと物理ボリュームのアドレス関連付けを行うためのアドレス変換マップ130も記憶する。なお、管理テーブル120及びアドレス変換マップ130は、キャッシュメモリ110に格納することもできる。 The storage unit 100 is a ROM (read only memory), a RAM (random access memory), or the like, and specifically includes a cache memory 110 that stores pre-compressed data 111 and post-compressed data 112. The storage unit 100 also stores a management table 120 for managing the input / output patterns of write data received from the host terminal, and an address translation map 130 for associating the addresses of the logical volume and the physical volume. The management table 120 and the address translation map 130 can also be stored in the cache memory 110.

管理テーブル120は、図3に示すように、各論理ボリューム311の領域ごとに、シーケンシャルアクセスの回数、ランダムアクセスの回数及び平均I/Oサイズを記憶する。なお、シーケンシャルアクセスの回数及びランダムアクセスの回数は、アクセスパターンとも称される。また、平均I/Oサイズは平均入出力サイズとも称される。 As shown in FIG. 3, the management table 120 stores the number of sequential accesses, the number of random accesses, and the average I / O size for each area of each logical volume 311. The number of sequential accesses and the number of random accessess are also referred to as access patterns. The average I / O size is also referred to as an average input / output size.

アドレス変換マップ130は、論理ボリュームマップ(図4A)と、物理ボリュームマップ(図4B)とで構成される。論理ボリュームマップは、論理ボリュームのアドレスと物理ボリュームのアドレスとを対応付けて記憶し、物理ボリュームマップは、物理ボリュームのアドレスと、その物理ボリュームを構成する物理メモリ21のアドレスとを対応付けて記憶する。なお、図4Cは、論理ボリュームマップと物理ボリュームマップに記憶される情報を概念的に示した図である。 The address translation map 130 is composed of a logical volume map (FIG. 4A) and a physical volume map (FIG. 4B). The logical volume map stores the address of the logical volume and the address of the physical volume in association with each other, and the physical volume map stores the address of the physical volume and the address of the physical memory 21 constituting the physical volume in association with each other. To do. Note that FIG. 4C is a diagram conceptually showing the information stored in the logical volume map and the physical volume map.

処理部200は、CPU(Central Processing Unit)やチップを含んで構成され、記憶部100及びホスト制御部300と接続され、I/Oパターン解析部210と、ブロックサイズ決定部220と、データ圧縮/伸長部230とを有する。 The processing unit 200 includes a CPU (Central Processing Unit) and a chip, is connected to a storage unit 100 and a host control unit 300, and has an I / O pattern analysis unit 210, a block size determination unit 220, and data compression / It has an extension portion 230.

I/Oパターン解析部210は、ホスト端末30から受け付けたライトデータの入出力パターンを解析して、解析結果を管理テーブル120に書き込む。ブロックサイズ決定部220は、管理テーブル120を参照して圧縮データのブロックのサイズを決定する。データ圧縮/伸長部230は、ブロックサイズ決定部220によって決定されたサイズでライトデータを圧縮する。 The I / O pattern analysis unit 210 analyzes the input / output pattern of the write data received from the host terminal 30, and writes the analysis result in the management table 120. The block size determination unit 220 determines the size of the compressed data block with reference to the management table 120. The data compression / decompression unit 230 compresses the write data to a size determined by the block size determination unit 220.

ホスト制御部300は、論理ボリューム管理部310によって管理される論理ボリューム311を複数有する。論理ボリューム311は、ホスト端末30によってI/O対象として認識されるものである。メモリ制御部400は、物理メモリ群20を制御する機能を有し、物理ボリューム管理部410によって管理される物理ボリューム411を複数有する。なお、メモリ制御部400は、圧縮手段としての機能の一部を実行する。 The host control unit 300 has a plurality of logical volumes 311 managed by the logical volume management unit 310. The logical volume 311 is recognized as an I / O target by the host terminal 30. The memory control unit 400 has a function of controlling the physical memory group 20, and has a plurality of physical volumes 411 managed by the physical volume management unit 410. The memory control unit 400 executes a part of the function as the compression means.

以下では、図面を参照しつつ、ストレージ装置10による一連の処理の流れ、及び各機能部による処理を説明する。 Hereinafter, a series of processing flows by the storage device 10 and processing by each functional unit will be described with reference to the drawings.

図5は、ホスト端末30からライトデータを受信した場合のストレージ装置10による処理フローを示す図である。ホスト制御部300はホスト端末30からライトコマンド及びライトデータを受信する(ステップS11)。例えば、ホスト制御部300はホスト端末30から論理ボリューム311(#0)の領域3に、4KB(キロバイト)のライトデータを書き込む旨のライトコマンドを受け付ける。ホスト制御部300がライトデータを受信すると、I/Oパターン解析部210は受信した受信したライトデータのI/Oパターンを解析する(ステップS12)。具体的には、I/Oパターン解析部210は、I/Oパターンとして、シーケンシャルアクセスの回数、ランダムアクセスの回数と平均I/Oサイズを解析する。例えば、I/Oパターン解析部210は、ホスト端末30からライトデータを受信した時に、同一の送信元から前回受信したライトデータと比較して、アドレスに連続性がある場合にはシーケンシャルアクセスであると判定する。一方で、I/Oパターン解析部210は、アドレスに連続性がない場合にはランダムアクセスであると判定する。 FIG. 5 is a diagram showing a processing flow by the storage device 10 when write data is received from the host terminal 30. The host control unit 300 receives a write command and write data from the host terminal 30 (step S11). For example, the host control unit 300 receives a write command from the host terminal 30 to write 4KB (kilobytes) of write data to the area 3 of the logical volume 311 (# 0). When the host control unit 300 receives the write data, the I / O pattern analysis unit 210 analyzes the I / O pattern of the received received light data (step S12). Specifically, the I / O pattern analysis unit 210 analyzes the number of sequential accesses, the number of random accesses, and the average I / O size as the I / O pattern. For example, when the I / O pattern analysis unit 210 receives the write data from the host terminal 30, it is a sequential access when the address has continuity as compared with the write data previously received from the same source. Is determined. On the other hand, the I / O pattern analysis unit 210 determines that the access is random when the addresses are not continuous.

そして、I/Oパターン解析部210は、各論理ボリューム311の領域ごとに、I/Oパターンを管理テーブル120に格納する(ステップS13)。具体的には、I/Oパターン解析部210は、上記の判定結果を管理テーブル120に反映する。そしてI/Oパターン解析部210は、論理ボリュームアドレスと対応付けて、ライトデータをキャッシュメモリ110に圧縮前データ111として格納する(ステップS14)。その後I/Oパターン解析部210は、ホスト端末30に対して、書き込み処理の正常終了を応答する(ステップS15)。 Then, the I / O pattern analysis unit 210 stores the I / O pattern in the management table 120 for each area of each logical volume 311 (step S13). Specifically, the I / O pattern analysis unit 210 reflects the above determination result in the management table 120. Then, the I / O pattern analysis unit 210 stores the write data in the cache memory 110 as uncompressed data 111 in association with the logical volume address (step S14). After that, the I / O pattern analysis unit 210 responds to the host terminal 30 with the normal end of the writing process (step S15).

図6は、ストレージ装置10によるライトデータの圧縮及び格納に関する処理フローを示す図である。メモリ制御部400は、キャッシュメモリ110に圧縮前データが格納されていることを検出すると(ステップS21、YES)、ブロックサイズ決定部220に対してブロックサイズの決定を指示する。ブロックサイズ決定部220は、メモリ制御部400から指示を受けると、圧縮前データ111に対応付けられた論理ボリュームアドレスを取得する(ステップS22)。そして、ブロックサイズ決定部220は、管理テーブル120を参照して(ステップS23)、圧縮データのブロックのサイズを決定する(ステップS24〜26)。 FIG. 6 is a diagram showing a processing flow related to compression and storage of write data by the storage device 10. When the memory control unit 400 detects that the uncompressed data is stored in the cache memory 110 (step S21, YES), the memory control unit 400 instructs the block size determination unit 220 to determine the block size. Upon receiving an instruction from the memory control unit 400, the block size determination unit 220 acquires the logical volume address associated with the uncompressed data 111 (step S22). Then, the block size determination unit 220 determines the size of the compressed data block (steps S24 to 26) with reference to the management table 120 (step S23).

例えば、ブロックサイズ決定部220は、図2に示す管理テーブル120では、論理ボリューム311(#0)の領域3に関しては、シーケンシャルアクセス回数がランダムアクセス回数よりも少ないと判断する(ステップS24、YES)。ここで、ブロックサイズ決定部220は、ブロックのサイズを論理ボリューム311(#0)の領域3の平均I/Oサイズである4KBに決定する(ステップS25)。 For example, in the management table 120 shown in FIG. 2, the block size determination unit 220 determines that the number of sequential accesses is less than the number of random accesses for the area 3 of the logical volume 311 (# 0) (step S24, YES). .. Here, the block size determination unit 220 determines the block size to 4KB, which is the average I / O size of the region 3 of the logical volume 311 (# 0) (step S25).

一方で、ブロックサイズ決定部220は、図2に示す管理テーブル120では、論理ボリューム311(#0)の領域2に関しては、シーケンシャルアクセス回数がランダムアクセス回数よりも多いと判断する(ステップS24、NO)。ここで、ブロックサイズ決定部220は、ブロックのサイズを論理ボリューム311(#0)の領域2の「平均I/Oサイズ*平均シーケンシャルアクセス回数」に決定する(ステップS26)。ここで、平均シーケンシャルアクセス回数とは、1回のシーケンシャルアクセスにおいて生じるコマンドの発行回数の平均値に相当する。例えば、論理ボリューム311(#0)の領域2には100MB又は200MBのファイルが格納されており、1回のコマンドを発行する毎に1MBのデータが読み出されるものとする。このとき、100MBのファイルの読み出しには100回のコマンドの発行が必要であり、200MBのファイルの読み出しには200回のコマンドの発行が必要である。これらのコマンドの発行回数の平均値が平均シーケンシャルアクセス回数に相当し、ブロックサイズ決定部220は、論理ボリューム311(#0)の領域2のブロックのサイズを、512KB*150≒75MBに決定する。 On the other hand, in the management table 120 shown in FIG. 2, the block size determination unit 220 determines that the number of sequential accesses is larger than the number of random accesses for the area 2 of the logical volume 311 (# 0) (step S24, NO). ). Here, the block size determination unit 220 determines the block size to be the “average I / O size * average number of sequential accesses” of the area 2 of the logical volume 311 (# 0) (step S26). Here, the average number of sequential accesses corresponds to the average value of the number of command issuances that occur in one sequential access. For example, it is assumed that a file of 100 MB or 200 MB is stored in the area 2 of the logical volume 311 (# 0), and 1 MB of data is read each time a command is issued. At this time, reading a 100 MB file requires issuing 100 commands, and reading a 200 MB file requires issuing 200 commands. The average value of the number of issuances of these commands corresponds to the average number of sequential accesses, and the block size determination unit 220 determines the block size of the area 2 of the logical volume 311 (# 0) to 512KB * 150≈75MB.

そして、ブロックサイズ決定部220は、論理ボリュームアドレスと決定したブロックのサイズをメモリ制御部400に対して返信する。メモリ制御部400は、ブロックサイズ決定部220からブロックのサイズを受け付けると、データ圧縮/伸長部230に対して、論理ボリュームアドレスと受け付けたブロックのサイズへの圧縮前データ111の圧縮を指示する。データ圧縮/伸長部230は、メモリ制御部400から指示を受け付けると、キャッシュメモリ110から圧縮前データ111を読み出して指定されたブロックのサイズへ圧縮し、キャッシュメモリ110に圧縮後データ112として格納する(ステップS27)。メモリ制御部400は、圧縮後データ112が格納されると、アドレス変換マップ130を参照して、ブロックサイズ決定部220から受け付けた論理ボリュームアドレスに紐付けられる物理メモリ21のアドレスへ圧縮後データ112を格納する(ステップS28)。 Then, the block size determination unit 220 returns the size of the block determined as the logical volume address to the memory control unit 400. When the memory control unit 400 receives the block size from the block size determination unit 220, the memory control unit 400 instructs the data compression / decompression unit 230 to compress the uncompressed data 111 to the logical volume address and the size of the received block. When the data compression / decompression unit 230 receives an instruction from the memory control unit 400, the data compression / decompression unit 230 reads the uncompressed data 111 from the cache memory 110, compresses the data 111 to a specified block size, and stores the compressed data 112 in the cache memory 110. (Step S27). When the compressed data 112 is stored, the memory control unit 400 refers to the address conversion map 130 to the compressed data 112 to the address of the physical memory 21 associated with the logical volume address received from the block size determining unit 220. Is stored (step S28).

図7は、ホスト端末30からリード要求を受信した場合のストレージ装置10による処理フローを示す図である。ホスト制御部300はホスト端末30からリード要求を受信する(ステップS31)。例えば、ホスト制御部300はホスト端末30から論理ボリューム311(#0)の領域3に格納されたデータを読み出す旨のリード要求を受信する。ホスト制御部300がリード要求を受信すると、I/Oパターン解析部210は、要求されたデータのI/Oパターンを解析し(ステップS32)、管理テーブル120を更新する(ステップS33)。具体的には、I/Oパターン解析部210は、リード要求がシーケンシャルアクセス又はランダムアクセスのいずれであるかを解析し、管理テーブル120のアクセスパターンを更新する。また、I/Oパターン解析部210は、リード要求されたデータのサイズを解析して管理テーブル120の平均I/Oサイズを更新する。 FIG. 7 is a diagram showing a processing flow by the storage device 10 when a read request is received from the host terminal 30. The host control unit 300 receives a read request from the host terminal 30 (step S31). For example, the host control unit 300 receives a read request from the host terminal 30 to read the data stored in the area 3 of the logical volume 311 (# 0). When the host control unit 300 receives the read request, the I / O pattern analysis unit 210 analyzes the I / O pattern of the requested data (step S32) and updates the management table 120 (step S33). Specifically, the I / O pattern analysis unit 210 analyzes whether the read request is sequential access or random access, and updates the access pattern of the management table 120. Further, the I / O pattern analysis unit 210 analyzes the size of the read-requested data and updates the average I / O size of the management table 120.

メモリ制御部400は、アドレス変換マップ130を参照して、リード要求に規定された論理ボリュームアドレスに対応する物理メモリ21のアドレスから圧縮データを読み出して、キャッシュメモリ110に圧縮後データ112として格納する(ステップS34)。そして、メモリ制御部400は、データ圧縮/伸長部230に対して圧縮データの伸長を指示する。データ圧縮/伸長部230は、メモリ制御部400から指示を受け付けると、キャッシュメモリ110から圧縮後データ112を読み出して伸長し(ステップS35)、キャッシュメモリ110に圧縮前データ111として格納する。そして、ホスト制御部300はキャッシュメモリ110に格納された圧縮前データ111をホスト端末30に対して送信する(ステップS36)。 The memory control unit 400 reads the compressed data from the address of the physical memory 21 corresponding to the logical volume address specified in the read request with reference to the address conversion map 130, and stores the compressed data in the cache memory 110 as the compressed data 112. (Step S34). Then, the memory control unit 400 instructs the data compression / decompression unit 230 to decompress the compressed data. When the data compression / decompression unit 230 receives an instruction from the memory control unit 400, the data compression / decompression unit 230 reads the compressed data 112 from the cache memory 110 and decompresses it (step S35), and stores the data in the cache memory 110 as pre-compression data 111. Then, the host control unit 300 transmits the uncompressed data 111 stored in the cache memory 110 to the host terminal 30 (step S36).

上記のように、第1の実施形態のストレージ装置10は、サイズが小さいデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置10は、サイズが大きいデータのリード要求に対して応答する際に、物理メモリ21から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮/伸長部230にかかる負担が軽減され、結果的にリード要求に対するストレージ装置10の応答性能が改善される。 As described above, the storage device 10 of the first embodiment has a high tendency to decompress data of a size as needed when responding to a read request for data having a small size. Further, when the storage device 10 responds to a read request for large-sized data, the number of blocks of compressed data read from the physical memory 21 can be reduced. Therefore, the load on the data compression / decompression unit 230 is reduced, and as a result, the response performance of the storage device 10 to the read request is improved.

[第2の実施形態]
第1の実施形態においてアドレス変換マップ130は適宜作成及び更新されるものである。そこで、第2の実施形態として、アドレス変換マップ130の作成及び更新処理について詳しく説明する。図8に示すように、メモリ制御部400は、ライトデータに関して、圧縮前データ111の論理ボリュームアドレスに関するエントリがアドレス変換マップ130に存在しない場合には(ステップS41、NO)、新たなエントリを作成する(ステップS42)。また、メモリ制御部400は、アドレス変換マップ130にエントリが存在する場合には(ステップS41、YES)、該当する物理メモリ21のアドレスが、ライトデータの圧縮データを格納できる容量を有するものか否かを判定する(ステップS43)。容量が無いと判定した場合には(ステップS43、NO)、メモリ制御部400は、新たな物理メモリ21のアドレスを割り当てて、アドレス変換マップ130を更新する(ステップS44)。容量が有ると判定した場合には(ステップS43、YES)、メモリ制御部400は、既存の物理メモリ21のアドレスを、ライトデータの圧縮データを格納できる容量のアドレスに更新する(ステップS45)。
[Second Embodiment]
In the first embodiment, the address translation map 130 is created and updated as appropriate. Therefore, as the second embodiment, the creation and update processing of the address translation map 130 will be described in detail. As shown in FIG. 8, the memory control unit 400 creates a new entry for the write data when the entry regarding the logical volume address of the uncompressed data 111 does not exist in the address translation map 130 (step S41, NO). (Step S42). Further, when the entry exists in the address translation map 130 (step S41, YES), the memory control unit 400 determines whether or not the address of the corresponding physical memory 21 has a capacity for storing the compressed data of the write data. (Step S43). If it is determined that there is no capacity (step S43, NO), the memory control unit 400 allocates a new address of the physical memory 21 and updates the address translation map 130 (step S44). When it is determined that there is a capacity (step S43, YES), the memory control unit 400 updates the address of the existing physical memory 21 to an address having a capacity that can store the compressed data of the write data (step S45).

このように、アドレス変換マップ130は適宜作成及び更新される。 In this way, the address translation map 130 is appropriately created and updated.

[第3の実施形態]
圧縮データのブロックのサイズは、ライトデータのタイプに基づいて決定しても良い。この実施形態では、管理テーブル120は、入出力パターンに対応付けて、ライトデータのタイプを記憶する。具体的には、管理テーブル120は、図9に示すように、各論理ボリューム311の領域ごとに、シーケンシャルアクセスの回数、ランダムアクセスの回数、平均I/Oサイズ及びデータのタイプを記憶する。データのタイプとは、ライトデータのタイプを示す情報であり、例えば、「メタデータ」、「ストリーミングデータ」などである。
[Third Embodiment]
The size of the compressed data block may be determined based on the type of write data. In this embodiment, the management table 120 stores the type of write data in association with the input / output pattern. Specifically, as shown in FIG. 9, the management table 120 stores the number of sequential accesses, the number of random accesses, the average I / O size, and the data type for each area of each logical volume 311. The data type is information indicating the type of write data, such as "metadata" and "streaming data".

I/Oパターン解析部210は、ホスト端末30から受信したライトデータのタイプを解析する。そして、I/Oパターン解析部210は、解析結果をデータのタイプとして管理テーブル120に書き込む。 The I / O pattern analysis unit 210 analyzes the type of write data received from the host terminal 30. Then, the I / O pattern analysis unit 210 writes the analysis result as a data type in the management table 120.

ブロックサイズ決定部220は、ライトデータがメタデータである場合には、ブロックのサイズを、平均入出力サイズに決定する。また、ライトデータがストリーミングデータである場合には、ブロックのサイズを、平均入出力サイズ*平均シーケンシャルアクセス回数に決定する。 When the write data is metadata, the block size determination unit 220 determines the block size to the average input / output size. If the write data is streaming data, the block size is determined by the average input / output size * average number of sequential accesses.

図10は、第3の実施形態のストレージ装置10によるライトデータの圧縮及び格納に関する処理フローを示す図である。なお、第3の実施形態のストレージ装置10によるライトデータの圧縮及び格納に関する処理は、圧縮データのブロックのサイズをライトデータのタイプに基づいて決定することを除いて図6に示す処理フローと同様であり、以下では相違点について説明する。 FIG. 10 is a diagram showing a processing flow relating to compression and storage of write data by the storage device 10 of the third embodiment. The processing related to the compression and storage of the write data by the storage device 10 of the third embodiment is the same as the processing flow shown in FIG. 6 except that the size of the compressed data block is determined based on the type of the write data. The differences will be described below.

ブロックサイズ決定部220は、例えば、図9に示す管理テーブル120では、論理ボリューム311(#0)の領域3に関しては、ライトデータのタイプがメタデータであると判断する(ステップS54、YES)。ここで、ブロックサイズ決定部220は、ブロックのサイズを論理ボリューム311(#0)の領域3の平均I/Oサイズである4KBに決定する(ステップS55)。 For example, in the management table 120 shown in FIG. 9, the block size determination unit 220 determines that the write data type is metadata for the area 3 of the logical volume 311 (# 0) (steps S54, YES). Here, the block size determination unit 220 determines the size of the block to be 4 KB, which is the average I / O size of the region 3 of the logical volume 311 (# 0) (step S55).

一方で、ブロックサイズ決定部220は、図9に示す管理テーブル120では、論理ボリューム311(#0)の領域2に関しては、ライトデータのタイプがストリーミングデータであると判断する(ステップS54、NO)。ここで、ブロックサイズ決定部220は、ブロックのサイズを論理ボリューム311(#0)の領域2の「平均I/Oサイズ*平均シーケンシャルアクセス回数」に決定する(ステップS56)。 On the other hand, in the management table 120 shown in FIG. 9, the block size determination unit 220 determines that the write data type is streaming data for the area 2 of the logical volume 311 (# 0) (steps S54, NO). .. Here, the block size determination unit 220 determines the size of the block to be the “average I / O size * average number of sequential accesses” of the area 2 of the logical volume 311 (# 0) (step S56).

このように、ストレージ装置10は、メタデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置10は、ストリーミングデータのリード要求に対して応答する際に、物理メモリ21から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮/伸長部230にかかる負担が軽減され、結果的にリード要求に対するストレージ装置10の応答性能が改善される。 As described above, when the storage device 10 responds to the read request for metadata, the storage device 10 has a high tendency to decompress data having a size as required. Further, when the storage device 10 responds to a read request for streaming data, the number of blocks of compressed data read from the physical memory 21 can be reduced. Therefore, the load on the data compression / decompression unit 230 is reduced, and as a result, the response performance of the storage device 10 to the read request is improved.

なお、ストレージ装置10は、例えば、処理モジュールを搭載したコンピュータによって実現される。当該処理モジュールは、例えば、メモリに格納されたプログラムをCPUが実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェア及び/又はソフトウェアにより実現できればよい。 The storage device 10 is realized by, for example, a computer equipped with a processing module. The processing module is realized, for example, by the CPU executing a program stored in the memory. In addition, the program can be downloaded via a network or updated using a storage medium in which the program is stored. Further, the processing module may be realized by a semiconductor chip. That is, the function performed by the processing module may be realized by some hardware and / or software.

上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。 Some or all of the above embodiments may also be described, but not limited to:

(付記1)
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルと、
前記ライトデータの入出力パターンを解析して、解析結果を前記管理テーブルに書き込む入出力パターン解析手段と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定手段と、
前記ブロックサイズ決定手段によって決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮手段と、
を備えたストレージ装置。
(Appendix 1)
A management table for managing the input / output patterns of write data received from the host terminal,
An input / output pattern analysis means that analyzes the input / output pattern of the write data and writes the analysis result to the management table.
A block size determining means for determining the size of the block for compressing the write data with reference to the management table, and
A compression means that compresses the write data to the block size determined by the block size determining means and writes the compressed data to the physical memory.
Storage device with.

(付記2)
前記管理テーブルが、シーケンシャルアクセスの回数、ランダムアクセスの回数及び平均入出力サイズを含む入出力パターンを記憶する付記1に記載のストレージ装置。
(Appendix 2)
The storage device according to Appendix 1, wherein the management table stores an input / output pattern including the number of sequential accesses, the number of random accesses, and the average input / output size.

(付記3)
シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ*平均シーケンシャルアクセス回数に決定する付記2に記載のストレージ装置。
(Appendix 3)
The storage device according to Appendix 2, wherein for write data in which the number of sequential accesses is larger than the number of random accesses, the block size determining means determines the block size as the average input / output size * the average number of sequential accesses.

(付記4)
シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する付記2に記載のストレージ装置。
(Appendix 4)
The storage device according to Appendix 2, wherein the block size determining means determines the block size to the average input / output size for write data in which the number of sequential accesses is less than the number of random accesses.

(付記5)
前記管理テーブルが、前記入出力パターンに対応付けて、ライトデータのタイプを記憶し、
前記入出力パターン解析手段がライトデータのタイプを解析して、解析結果を前記管理テーブルに書き込む付記2に記載のストレージ装置。
(Appendix 5)
The management table stores the type of write data in association with the input / output pattern.
The storage device according to Appendix 2, wherein the input / output pattern analysis means analyzes the type of write data and writes the analysis result in the management table.

(付記6)
ライトデータがメタデータである場合には、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する付記5に記載のストレージ装置。
(Appendix 6)
The storage device according to Appendix 5, wherein when the write data is metadata, the block size determining means determines the block size as the average input / output size.

(付記7)
ライトデータがストリーミングデータである場合には、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ*平均シーケンシャルアクセス回数に決定する付記5に記載のストレージ装置。
(Appendix 7)
The storage device according to Appendix 5, wherein when the write data is streaming data, the block size determining means determines the block size by the average input / output size * the average number of sequential accesses.

(付記8)
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して解析結果を書き込む入出力パターン解析ステップと、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定ステップと、
前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮ステップと、
を含むストレージ装置の制御方法。
(Appendix 8)
An input / output pattern analysis step that analyzes the input / output pattern of write data and writes the analysis result to the management table for managing the input / output pattern of the write data received from the host terminal.
A block size determination step for determining the size of the block for compressing the write data with reference to the management table, and
A compression step of compressing the write data to the block size determined in the block size determination step and writing the compressed data to the physical memory.
How to control storage devices, including.

(付記9)
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して、解析結果を書き込む入出力パターン解析処理と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定処理と、
前記ブロックサイズ決定処理において決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮処理と、
をコンピュータに実行させるプログラム。
(Appendix 9)
Input / output pattern analysis processing that analyzes the input / output pattern of write data and writes the analysis result to the management table for managing the input / output pattern of write data received from the host terminal.
The block size determination process for determining the size of the block for compressing the write data with reference to the management table,
A compression process in which the write data is compressed to the block size determined in the block size determination process and the compressed data is written to the physical memory.
A program that causes a computer to run.

なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 The disclosure of the above patent documents shall be incorporated into this document by citation. Within the framework of the entire disclosure (including the scope of claims) of the present invention, it is possible to change or adjust the embodiments or examples based on the basic technical idea thereof. Further, various combinations or selections of various disclosure elements (including each element of each claim, each element of each embodiment or embodiment, each element of each drawing, etc.) within the scope of the claims of the present invention. Is possible. That is, it goes without saying that the present invention includes all disclosure including claims, and various modifications and modifications that can be made by those skilled in the art in accordance with the technical idea.

10 ストレージ装置
20 物理メモリ群
21 物理メモリ
30 ホスト端末
100 記憶部
110 キャッシュメモリ
111 圧縮前データ
112 圧縮後データ
120 管理テーブル
130 アドレス変換マップ
200 処理部
210 I/Oパターン解析部
220 ブロックサイズ決定部
230 データ圧縮/伸長部
300 ホスト制御部
310 論理ボリューム管理部
311 論理ボリューム
400 メモリ制御部
410 物理ボリューム管理部
411 物理ボリューム
10 Storage device 20 Physical memory group 21 Physical memory 30 Host terminal 100 Storage unit 110 Cache memory 111 Pre-compressed data 112 Post-compressed data 120 Management table 130 Address conversion map 200 Processing unit 210 I / O pattern analysis unit 220 Block size determination unit 230 Data compression / decompression unit 300 Host control unit 310 Logical volume management unit 311 Logical volume 400 Memory control unit 410 Physical volume management unit 411 Physical volume

Claims (6)

ホスト端末から受け付けたライトデータ及び当該ライトデータを圧縮した後の圧縮後データを記憶するキャッシュメモリを備えるとともに、前記ライトデータの入出力パターンを管理するための管理テーブルを記憶する記憶部と、
前記ライトデータの入出力パターンを解析して、解析結果を前記管理テーブルに書き込む入出力パターン解析と、
前記管理テーブルを参照して前記圧縮後データに関するブロックのサイズを決定するブロックサイズ決定と、
前記キャッシュメモリから前記ライトデータを読み出して圧縮し、作成した圧縮後データを前記キャッシュメモリに格納する圧縮部と
前記キャッシュメモリに前記ライトデータが格納されていることを検出した場合に、前記ブロックサイズ決定部に対して圧縮後データに関するブロックサイズの決定を指示し、前記圧縮部に対して前記ブロックサイズ決定部によって決定されたブロックのサイズを指示して、指示されたブロックのサイズの圧縮後データを作成させ、その後に圧縮後データがキャッシュメモリに格納されると、当該圧縮後データを物理メモリに格納するメモリ制御部と、
を備えたストレージ装置。
A cache memory for storing the write data received from the host terminal and the compressed data after the write data is compressed, and a storage unit for storing a management table for managing the input / output pattern of the write data .
An input / output pattern analysis unit that analyzes the input / output pattern of the write data and writes the analysis result to the management table.
A block size determination unit that determines the size of the block related to the compressed data with reference to the management table,
A compression unit that reads the write data from the cache memory, compresses the data, and stores the created compressed data in the cache memory .
When it is detected that the write data is stored in the cache memory, the block size determination unit is instructed to determine the block size for the compressed data, and the compression unit is instructed to determine the block size. The size of the block determined by is specified to create the compressed data of the specified block size, and when the compressed data is subsequently stored in the cache memory, the compressed data is stored in the physical memory. Memory control unit and
Storage device with.
前記管理テーブルが、シーケンシャルアクセスの回数、ランダムアクセスの回数及び平均入出力サイズを含む入出力パターンを記憶する請求項1に記載のストレージ装置。 The storage device according to claim 1, wherein the management table stores an input / output pattern including the number of sequential accesses, the number of random accesses, and the average input / output size. シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、前記ブロックサイズ決定がブロックのサイズを、平均入出力サイズ*平均シーケンシャルアクセス回数に決定する請求項2に記載のストレージ装置。 The storage device according to claim 2, wherein for write data in which the number of sequential accesses is larger than the number of random accesses, the block size determining unit determines the block size as the average input / output size * the average number of sequential accesses. シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、前記ブロックサイズ決定がブロックのサイズを、平均入出力サイズに決定する請求項2に記載のストレージ装置。 The storage device according to claim 2, wherein for write data in which the number of sequential accesses is less than the number of random accesses, the block size determining unit determines the block size to be the average input / output size. ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して解析結果を書き込む入出力パターン解析ステップと、
キャッシュメモリに前記ライトデータが格納されていることを検出した場合に、前記ライトデータを圧縮した後の圧縮後データに関するブロックのサイズを、前記管理テーブルを参照して決定するブロックサイズ決定ステップと、
前記キャッシュメモリから前記ライトデータを読み出して、前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮することで圧縮後データを作成し、当該圧縮後データを前記キャッシュメモリに格納する圧縮ステップと、
前記キャッシュメモリに格納された圧縮後データを物理メモリに格納するメモリ制御ステップと、
を含むストレージ装置の制御方法。
An input / output pattern analysis step that analyzes the input / output pattern of write data and writes the analysis result to the management table for managing the input / output pattern of the write data received from the host terminal.
When it is detected that the write data is stored in the cache memory, the block size determination step of determining the block size of the compressed data after compressing the write data with reference to the management table, and
The write data is read from the cache memory, and the write data is compressed to the block size determined in the block size determination step to create compressed data, and the compressed data is stored in the cache memory. With compression steps
A memory control step for storing the compressed data stored in the cache memory in the physical memory, and
How to control storage devices, including.
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して、解析結果を書き込む入出力パターン解析処理と、
キャッシュメモリに前記ライトデータが格納されていることを検出した場合に、前記ライトデータを圧縮した後の圧縮後データに関するブロックのサイズを、前記管理テーブルを参照して決定するブロックサイズ決定処理と、
前記キャッシュメモリから前記ライトデータを読み出して、前記ブロックサイズ決定処理において決定されたブロックのサイズへ前記ライトデータを圧縮することで圧縮後データを作成し、当該圧縮後データを前記キャッシュメモリに格納する圧縮処理と、
前記キャッシュメモリに格納された圧縮後データを物理メモリに格納するメモリ制御処理と、
をストレージ装置を制御するコンピュータに実行させるプログラム。
Input / output pattern analysis processing that analyzes the input / output pattern of write data and writes the analysis result to the management table for managing the input / output pattern of write data received from the host terminal.
When it is detected that the write data is stored in the cache memory, the block size determination process of determining the block size of the compressed data after compressing the write data with reference to the management table, and
The write data is read from the cache memory and the write data is compressed to the block size determined in the block size determination process to create compressed data, and the compressed data is stored in the cache memory. Compression processing and
Memory control processing that stores the compressed data stored in the cache memory in the physical memory, and
A program that causes the computer that controls the storage device to execute.
JP2017066159A 2017-03-29 2017-03-29 Storage device, control method and program of storage device Active JP6820060B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017066159A JP6820060B2 (en) 2017-03-29 2017-03-29 Storage device, control method and program of storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017066159A JP6820060B2 (en) 2017-03-29 2017-03-29 Storage device, control method and program of storage device

Publications (2)

Publication Number Publication Date
JP2018169773A JP2018169773A (en) 2018-11-01
JP6820060B2 true JP6820060B2 (en) 2021-01-27

Family

ID=64018775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017066159A Active JP6820060B2 (en) 2017-03-29 2017-03-29 Storage device, control method and program of storage device

Country Status (1)

Country Link
JP (1) JP6820060B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020095583A1 (en) * 2018-11-09 2020-05-14 パナソニックIpマネジメント株式会社 Storage device
KR102202107B1 (en) * 2018-12-28 2021-01-12 (주)글루시스 Storage contrl method and storage controller for individual service environment
US11137921B2 (en) 2019-03-05 2021-10-05 Samsung Electronics Co., Ltd. Data storage device and system
KR102509987B1 (en) * 2021-01-13 2023-03-15 삼성전자주식회사 Computing system including host and storage system
US11875036B2 (en) 2021-01-13 2024-01-16 Samsung Electronics Co., Ltd. Computing system including host and storage system and having increased write performance

Also Published As

Publication number Publication date
JP2018169773A (en) 2018-11-01

Similar Documents

Publication Publication Date Title
JP6820060B2 (en) Storage device, control method and program of storage device
US9343153B2 (en) De-duplication in flash memory module
EP3103009B1 (en) Flash memory compression
US7346732B2 (en) Storage system
WO2017219364A1 (en) Method for processing data, storage apparatus, solid state disk and storage system
US10866743B2 (en) Storage control device using index indicating order of additional writing of data, storage control method using index indicating order of additional writing of data, and recording medium recording program using index indicating order of additional writing of data
JP5944502B2 (en) Computer system and control method
JPWO2016175028A1 (en) Information processing system, storage control device, storage control method, and storage control program
US10019398B2 (en) System with solid state drive and control method thereof
US20180307440A1 (en) Storage control apparatus and storage control method
JP2020112972A (en) Storage control device and storage control program
WO2015162755A1 (en) Storage device for compressing and storing data
JP5594647B2 (en) Storage apparatus and control method thereof
JP2014225297A (en) Flash memory module and storage device
WO2016194979A1 (en) Storage system, storage control device, storage control method, and program
JP6760916B2 (en) Storage controller, storage array device, data storage method, and program
JP6318769B2 (en) Storage control device, control program, and control method
WO2018061161A1 (en) Storage apparatus and method for controlling same
KR20190061473A (en) NVMe-SSD BASED STORAGE SYSTEM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190722

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200108

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200108

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200117

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200121

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20200403

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20200407

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200811

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20201006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201014

C302 Record of communication

Free format text: JAPANESE INTERMEDIATE CODE: C302

Effective date: 20201014

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20201027

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20201201

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201224

R150 Certificate of patent or registration of utility model

Ref document number: 6820060

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150