JP6820060B2 - Storage device, control method and program of storage device - Google Patents
Storage device, control method and program of storage device Download PDFInfo
- 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
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.
以下の分析は、本発明の観点からなされたものである。なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。 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
すなわち、ストレージ装置のコントローラは、ホスト端末からメタデータなどのサイズが小さいデータのリード要求を受け付けることがある。この場合には、コントローラは、要求されたデータのサイズに比べて大きいサイズのデータを伸長することになる。その結果、コントローラにかかる負荷が大きくなり、リード要求に対するストレージ装置の応答性能が低下する。 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.
本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。なお、以下の記載に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。 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
処理部200は、ホスト端末(図示せず)とも接続され、I/O(input/output)パターン解析部210と、ブロックサイズ決定部220と、データ圧縮/伸長部230とを有する。なお、I/Oパターン解析部210は入出力パターン解析手段とも称され、ブロックサイズ決定部220はブロックサイズ決定手段とも称される。また、データ圧縮/伸長部230は圧縮手段としての機能の一部を実行する。
The
I/Oパターン解析部210は、ホスト端末から受け付けたライトデータの入出力パターンを解析して、解析結果を管理テーブル120に書き込む。ブロックサイズ決定部220は、管理テーブル120を参照してライトデータを圧縮するブロックのサイズを決定する。データ圧縮/伸長部230は、ブロックサイズ決定部220によって決定されたサイズでライトデータを圧縮する。そして、ストレージ装置10は、圧縮データを物理メモリ21に書き込む。
The I / O
具体的な一例を挙げて説明すると、管理テーブル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
ブロックサイズ決定部220は、管理テーブル120を参照して、例えば、シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、ブロックのサイズを「平均I/Oサイズ*平均シーケンシャルアクセス回数」に決定する。また、ブロックサイズ決定部220は、シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、ブロックのサイズを「平均I/Oサイズ」に決定する。
The block
データ圧縮/伸長部230は、ブロックサイズ決定部220によって決定されたブロックのサイズにライトデータを圧縮する。そして、ストレージ装置10は、圧縮データを物理メモリ21に書き込む。また、ストレージ装置10は、ホスト端末からのリード要求を受け付けた場合に、物理メモリ21から圧縮データを読み出し、データ圧縮/伸長部230によって圧縮データを伸長した後にリードデータとしてホスト端末に対して応答する。
The data compression /
このように、ストレージ装置10は、小さいサイズでリード要求を受ける傾向が高い、言い換えるとランダムアクセス回数が多いライトデータに関しては、小さいサイズのブロックに圧縮して物理メモリ21に書き込む。その一方で、ストレージ装置10は、大きいサイズでリード要求を受ける傾向が高い、言い換えるとシーケンシャルアクセス回数が多いライトデータに関しては、大きいサイズのブロックに圧縮して物理メモリ21に書き込む。
As described above, the
そのため、ストレージ装置10は、サイズが小さいデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置10は、サイズが大きいデータのリード要求に対して応答する際に、物理メモリ21から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮/伸長部230にかかる負担が軽減され、結果的にリード要求に対するストレージ装置10の応答性能が改善される。
Therefore, when the
以下では本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。 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
記憶部100は、ROM(read only memory)、RAM(random access memory)などであり、具体的には、圧縮前データ111及び圧縮後データ112を記憶するキャッシュメモリ110を含む。また、記憶部100は、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブル120、及び論理ボリュームと物理ボリュームのアドレス関連付けを行うためのアドレス変換マップ130も記憶する。なお、管理テーブル120及びアドレス変換マップ130は、キャッシュメモリ110に格納することもできる。
The
管理テーブル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
アドレス変換マップ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
処理部200は、CPU(Central Processing Unit)やチップを含んで構成され、記憶部100及びホスト制御部300と接続され、I/Oパターン解析部210と、ブロックサイズ決定部220と、データ圧縮/伸長部230とを有する。
The
I/Oパターン解析部210は、ホスト端末30から受け付けたライトデータの入出力パターンを解析して、解析結果を管理テーブル120に書き込む。ブロックサイズ決定部220は、管理テーブル120を参照して圧縮データのブロックのサイズを決定する。データ圧縮/伸長部230は、ブロックサイズ決定部220によって決定されたサイズでライトデータを圧縮する。
The I / O
ホスト制御部300は、論理ボリューム管理部310によって管理される論理ボリューム311を複数有する。論理ボリューム311は、ホスト端末30によってI/O対象として認識されるものである。メモリ制御部400は、物理メモリ群20を制御する機能を有し、物理ボリューム管理部410によって管理される物理ボリューム411を複数有する。なお、メモリ制御部400は、圧縮手段としての機能の一部を実行する。
The
以下では、図面を参照しつつ、ストレージ装置10による一連の処理の流れ、及び各機能部による処理を説明する。
Hereinafter, a series of processing flows by the
図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
そして、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
図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
例えば、ブロックサイズ決定部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
一方で、ブロックサイズ決定部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
そして、ブロックサイズ決定部220は、論理ボリュームアドレスと決定したブロックのサイズをメモリ制御部400に対して返信する。メモリ制御部400は、ブロックサイズ決定部220からブロックのサイズを受け付けると、データ圧縮/伸長部230に対して、論理ボリュームアドレスと受け付けたブロックのサイズへの圧縮前データ111の圧縮を指示する。データ圧縮/伸長部230は、メモリ制御部400から指示を受け付けると、キャッシュメモリ110から圧縮前データ111を読み出して指定されたブロックのサイズへ圧縮し、キャッシュメモリ110に圧縮後データ112として格納する(ステップS27)。メモリ制御部400は、圧縮後データ112が格納されると、アドレス変換マップ130を参照して、ブロックサイズ決定部220から受け付けた論理ボリュームアドレスに紐付けられる物理メモリ21のアドレスへ圧縮後データ112を格納する(ステップS28)。
Then, the block
図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
メモリ制御部400は、アドレス変換マップ130を参照して、リード要求に規定された論理ボリュームアドレスに対応する物理メモリ21のアドレスから圧縮データを読み出して、キャッシュメモリ110に圧縮後データ112として格納する(ステップS34)。そして、メモリ制御部400は、データ圧縮/伸長部230に対して圧縮データの伸長を指示する。データ圧縮/伸長部230は、メモリ制御部400から指示を受け付けると、キャッシュメモリ110から圧縮後データ112を読み出して伸長し(ステップS35)、キャッシュメモリ110に圧縮前データ111として格納する。そして、ホスト制御部300はキャッシュメモリ110に格納された圧縮前データ111をホスト端末30に対して送信する(ステップS36)。
The
上記のように、第1の実施形態のストレージ装置10は、サイズが小さいデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置10は、サイズが大きいデータのリード要求に対して応答する際に、物理メモリ21から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮/伸長部230にかかる負担が軽減され、結果的にリード要求に対するストレージ装置10の応答性能が改善される。
As described above, the
[第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
このように、アドレス変換マップ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
I/Oパターン解析部210は、ホスト端末30から受信したライトデータのタイプを解析する。そして、I/Oパターン解析部210は、解析結果をデータのタイプとして管理テーブル120に書き込む。
The I / O
ブロックサイズ決定部220は、ライトデータがメタデータである場合には、ブロックのサイズを、平均入出力サイズに決定する。また、ライトデータがストリーミングデータである場合には、ブロックのサイズを、平均入出力サイズ*平均シーケンシャルアクセス回数に決定する。
When the write data is metadata, the block
図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
ブロックサイズ決定部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
一方で、ブロックサイズ決定部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
このように、ストレージ装置10は、メタデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置10は、ストリーミングデータのリード要求に対して応答する際に、物理メモリ21から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮/伸長部230にかかる負担が軽減され、結果的にリード要求に対するストレージ装置10の応答性能が改善される。
As described above, when the
なお、ストレージ装置10は、例えば、処理モジュールを搭載したコンピュータによって実現される。当該処理モジュールは、例えば、メモリに格納されたプログラムをCPUが実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェア及び/又はソフトウェアにより実現できればよい。
The
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。 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
(付記3)
シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ*平均シーケンシャルアクセス回数に決定する付記2に記載のストレージ装置。
(Appendix 3)
The storage device according to
(付記4)
シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する付記2に記載のストレージ装置。
(Appendix 4)
The storage device according to
(付記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
(付記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
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.
キャッシュメモリに前記ライトデータが格納されていることを検出した場合に、前記ライトデータを圧縮した後の圧縮後データに関するブロックのサイズを、前記管理テーブルを参照して決定するブロックサイズ決定ステップと、
前記キャッシュメモリから前記ライトデータを読み出して、前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮することで圧縮後データを作成し、当該圧縮後データを前記キャッシュメモリに格納する圧縮ステップと、
前記キャッシュメモリに格納された圧縮後データを物理メモリに格納するメモリ制御ステップと、
を含むストレージ装置の制御方法。 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.
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)
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 |
-
2017
- 2017-03-29 JP JP2017066159A patent/JP6820060B2/en active Active
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 |