JP7065928B2 - Storage system and its control method - Google Patents
Storage system and its control method Download PDFInfo
- Publication number
- JP7065928B2 JP7065928B2 JP2020185556A JP2020185556A JP7065928B2 JP 7065928 B2 JP7065928 B2 JP 7065928B2 JP 2020185556 A JP2020185556 A JP 2020185556A JP 2020185556 A JP2020185556 A JP 2020185556A JP 7065928 B2 JP7065928 B2 JP 7065928B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- control unit
- area
- stored
- 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
- 238000000034 method Methods 0.000 title claims description 67
- 238000012545 processing Methods 0.000 claims description 67
- 238000007906 compression Methods 0.000 claims description 56
- 230000006835 compression Effects 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 39
- 238000007726 management method Methods 0.000 description 75
- 230000007717 exclusion Effects 0.000 description 42
- 230000008569 process Effects 0.000 description 41
- 230000015654 memory Effects 0.000 description 35
- 238000012546 transfer Methods 0.000 description 35
- 238000013500 data storage Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013144 data compression Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明はストレージシステムに関する。 The present invention relates to a storage system.
ストレージシステムは、一般的に、1以上のストレージ装置を備える。1以上のストレージ装置の各々は、一般的に、記憶デバイスとして、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)を備える。ストレージシステムが、SAN(Storage Area Network)又はLAN(Local Area Network)といったネットワーク経由で、1又は複数の上位装置(例えば、ホスト計算機)からアクセスされる。一般的に、ストレージ装置は、RAID(Redundant Array of Independent (or Inexpensive) Disks)技術に従う高信頼化方法を用いることで信頼性を向上している。 A storage system generally comprises one or more storage devices. Each of the one or more storage devices generally includes, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive) as a storage device. The storage system is accessed from one or more higher-level devices (for example, a host computer) via a network such as a SAN (Storage Area Network) or a LAN (Local Area Network). In general, a storage device has improved reliability by using a high reliability method according to a RAID (Redundant Array of Independent (or Inexpensive) Disks) technique.
特許文献1には、ホスト計算機からのデータ書き込み速度を維持しながら、データを圧縮させることが出来る情報システムが開示されている。特許文献1によれば、ストレージ装置においてホスト計算機からのデータ書き込みを受け付ける第1ボリュームと、第1ボリューム上のデータを圧縮して管理する第2ボリュームを提供する。ホスト計算機から第1ボリュームに対するデータ書き込みを終えると、ストレージ装置はホスト計算機に対して書き込み処理が完了したとして応答を返す。その後ストレージ装置は、ホスト計算機からのデータ書き込みとは非同期的な契機にデータを圧縮して第2ボリュームに格納する。
非特許文献1には、ホスト計算機から書き込まれた重複するデータを一つにまとめる重複排除処理について、ストレージ装置の稼働率に応じて処理契機を切り替えることで、レスポンスとスループットを両立させる方法について開示されている。
Non-Patent
例えば、非特許文献1には、「方式の違いによってIOPSやレイテンシーに関する特性が異なっており、これらを使い分けることでdedup-back方式の低レイテンシー、dedup-through方式の高IOPSを実現するのが本稿で提案するハイブリッド方式である。」及び「本稿では、従来の同期的に重複除去を行うdedup-through方式に加えて、非同期に重複除去を行うdedup-back方式の2つを比較して、dedup-through方式の高いIOPS性能と同期的な重複除去処理のオーバーヘッドによる高レイテンシー、dedup-back方式の低レイテンシーとtail latencyの増加に伴うIOPS低下を明らかにして、この2つの方式を組み合わせることで高IOPSと低レイテンシーの両立を目指すハイブリッド方式を提案した。」と記載されている。
For example, Non-Patent
すなわち、非特許文献1によれば、ストレージ装置の稼働率が低い場合、ホスト計算機からのデータ書き込みを終えてから重複排除処理を実施することで応答時間を短くし、稼働率が高い場合はデータ書き込みと同時に重複排除処理を実施する。
That is, according to Non-Patent
データ書き込みにおいてRAID技術に従ったデータ保護を行うには、冗長化に必要なデータ量(パリティサイクル)を集める必要がある。パリティサイクル分のデータが集まるまでキャッシュメモリ上でのデータ保護が必要なため、キャッシュメモリ上のデータは二重化される。これは、ホスト計算機から書き込まれたデータ及び圧縮されたデータについても同様に行われる。このような場合、データ書き込みの最大速度は、データの読み出し及び二重化によるキャッシュアクセス量によって制限される。 In order to protect data according to the RAID technique in data writing, it is necessary to collect the amount of data (parity cycle) required for redundancy. Since it is necessary to protect the data on the cache memory until the data for the parity cycle is collected, the data on the cache memory is duplicated. This is also done for the data written from the host computer and the compressed data. In such a case, the maximum speed of data writing is limited by the amount of cache access due to data reading and duplication.
キャッシュアクセス量を低減する方法として、書き込みと同期してデータを圧縮することによって圧縮前のデータを二重化する処理を省略する方法が考えられる。しかし、ホスト計算機に対しての処理完了の応答を返すには、圧縮データを二重化する必要があるため、圧縮処理の時間だけ応答速度が遅くなる。 As a method of reducing the amount of cache access, a method of omitting the process of duplicating the data before compression by compressing the data in synchronization with the writing can be considered. However, in order to return the processing completion response to the host computer, it is necessary to duplicate the compressed data, so the response speed slows down by the time of the compression processing.
このような課題は、圧縮機能を有するストレージシステムに限らず、重複排除などの他のデータ量削減機能を有するストレージシステム、及び、暗号化又は冗長化などを行うストレージシステムについてもあり得る。 Such a problem is not limited to the storage system having a compression function, but may also be a storage system having another data amount reduction function such as deduplication, and a storage system performing encryption or redundancy.
上記の課題の少なくとも一つを解決するための本発明の代表的な一例を示せば、次の通りである。すなわち、第1のストレージ制御部と、第2のストレージ制御部と、少なくとも前記第1のストレージ制御部に接続され、不揮発性の記憶媒体を有するストレージドライブと、を有するストレージシステムであって、前記第1のストレージ制御部は、データを格納する第1のキャッシュ領域と、データを格納する第1のバッファ領域と、を有しており、前記第2のストレージ制御部は、それぞれ、データを格納する第2のキャッシュ領域と、データを格納する第2のバッファ領域と、を有しており、前記第1のストレージ制御部は、前記第1のキャッシュ領域に格納されたデータを前記第2のキャッシュ領域にも格納して二重化を行うようになっており、前記第1のストレージ制御部は、ホスト計算機からデータの書き込み命令を受信すると、前記書き込み命令の対象のデータを、前記第1のストレージ制御部の前記第1のキャッシュ領域に格納するとともに、前記第1のキャッシュ領域に格納したデータを前記第2のストレージ制御部の前記第2のキャッシュ領域に格納して二重化を行い、前記二重化が完了したら、前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信し、前記第1のストレージ制御部は、前記書き込み命令の対象であるいずれかの前記キャッシュ領域に格納された二重化されたデータのうち前記ストレージドライブに格納されるデータについては、前記キャッシュ領域から読み出した前記書き込み命令の対象のデータに圧縮処理を行って前記第1のキャッシュ領域に格納せずに前記第1のバッファ領域に格納し、前記第1のバッファ領域に前記圧縮処理して格納されたデータに基づいてパリティを生成して前記第1のバッファ領域に格納し、前記第1のバッファ領域に格納したデータ及びパリティを読み出して前記ストレージドライブに送信して格納させることを特徴とする。 A typical example of the present invention for solving at least one of the above problems is as follows. That is, a storage system including a first storage control unit, a second storage control unit, and a storage drive connected to at least the first storage control unit and having a non-volatile storage medium. The first storage control unit has a first cache area for storing data and a first buffer area for storing data, and the second storage control unit stores data, respectively. It has a second cache area and a second buffer area for storing data, and the first storage control unit uses the data stored in the first cache area as the second data. It is also stored in the cache area to perform duplication, and when the first storage control unit receives a data write command from the host computer, the data subject to the write command is stored in the first storage. The data stored in the first cache area of the control unit is stored in the first cache area, and the data stored in the first cache area is stored in the second cache area of the second storage control unit to perform duplication. When completed, a response indicating the end of writing the data is transmitted to the host computer, and the first storage control unit is duplicated stored in any of the cache areas subject to the write command. Of the data, the data stored in the storage drive is not stored in the first cache area by performing compression processing on the data subject to the write instruction read from the cache area, but the first buffer. The data stored in the area, the parity is generated based on the data stored in the first buffer area by the compression process, and the data is stored in the first buffer area, and the data stored in the first buffer area. It is characterized in that the parity is read out and transmitted to the storage drive for storage.
本発明の一態様によれば、圧縮処理から記憶デバイスへの格納までを一括で行うことによって、圧縮データの二重化処理が省略される。圧縮データの二重化が不要になることで、キャッシュアクセス量を削減し、データ書き込みの最大速度が向上できる。また、記憶デバイスへの圧縮データの格納が完了するまでキャッシュメモリ上に圧縮前のデータを保持することによって、圧縮処理や記憶デバイスへの格納などの処理中に装置障害が発生してもデータを保護することが出来る。 According to one aspect of the present invention, the duplication process of the compressed data is omitted by collectively performing the process from the compression process to the storage in the storage device. By eliminating the need for duplication of compressed data, the amount of cache access can be reduced and the maximum speed of data writing can be improved. In addition, by retaining the uncompressed data in the cache memory until the storage of the compressed data in the storage device is completed, the data can be stored even if a device failure occurs during processing such as compression processing or storage in the storage device. Can be protected.
上記した以外の課題、構成及び効果は、以下の実施形態の説明によって明らかにされる。 Issues, configurations and effects other than those described above will be clarified by the description of the following embodiments.
以下の説明では、「インターフェース部」は、ユーザインターフェース部と、通信インターフェース部とのうちの少なくとも1つを含んでよい。ユーザインターフェース部は、1以上のI/Oデバイス(例えば入力デバイス(例えばキーボード及びポインティングデバイス)と出力デバイス(例えば表示デバイス))と表示用計算機とのうちの少なくとも1つのI/Oデバイスを含んでよい。通信インターフェース部は、1以上の通信インターフェースデバイスを含んでよい。1以上の通信インターフェースデバイスは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。 In the following description, the "interface unit" may include at least one of a user interface unit and a communication interface unit. The user interface unit includes at least one I / O device of one or more I / O devices (for example, an input device (for example, a keyboard and a pointing device) and an output device (for example, a display device)) and a display computer. good. The communication interface unit may include one or more communication interface devices. One or more communication interface devices may be one or more communication interface devices of the same type (for example, one or more NICs (Network Interface Cards)) or two or more different types of communication interface devices (for example, NIC and HBA (Host Bus)). Adapter)) may be used.
また、以下の説明では、「メモリ部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。メモリ部は、主に、プロセッサ部による処理の際に使用される。 Further, in the following description, the "memory unit" includes one or more memories. The at least one memory may be a volatile memory or a non-volatile memory. The memory unit is mainly used during processing by the processor unit.
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部又は全部を行うハードウェア回路を含んでもよい。 Further, in the following description, the "processor unit" includes one or more processors. The at least one processor is typically a CPU (Central Processing Unit). The processor may include hardware circuits that perform some or all of the processing.
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。 Further, in the following description, the information may be described by an expression such as "xxx table", but the information may be expressed by any data structure. That is, the "xxx table" can be referred to as "xxx information" in order to show that the information does not depend on the data structure. Further, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or a part of two or more tables may be one table. good.
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号(又は要素のID(例えば識別番号)を使用することがある。例えば、複数のストレージコントローラを区別しない場合には、「ストレージコントローラ22」と記載し、各ストレージコントローラを区別する場合には、「ストレージコントローラ1_22A」、「ストレージコントローラ2_22B」のように記載する。他の要素(例えばキャッシュ領域203、バッファ領域202、アドレス1100、1101、1104等)も同様である。
Further, in the following description, when the same type of element is not distinguished, the common code among the reference codes is used, and when the same type of element is distinguished, the reference code (or the element ID (for example, identification) is used. (Number) may be used. For example, when a plurality of storage controllers are not distinguished, it is described as "
また、以下の説明では、「ストレージシステム」は、1以上のストレージ装置を含む。少なくとも1つのストレージ装置は、汎用的な物理計算機であってもよい。また、少なくとも1つのストレージ装置が、仮想的なストレージ装置であってもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。 Further, in the following description, the "storage system" includes one or more storage devices. The at least one storage device may be a general-purpose physical calculator. Further, at least one storage device may be a virtual storage device, or SDx (Software-Defined anything) may be executed. As SDx, for example, SDS (Software Defined Storage) (an example of a virtual storage device) or SDDC (Software-defined Datacenter) can be adopted.
以下、本発明の実施例を図面に基づいて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
以下、本発明の実施例1を説明する。 Hereinafter, Example 1 of the present invention will be described.
<記憶デバイスへの圧縮データの格納手順>
図1は、本発明の実施例1のストレージシステム100が実行する、データ圧縮処理を伴うデータライト手順を示す説明図である。
<Procedure for storing compressed data in a storage device>
FIG. 1 is an explanatory diagram showing a data writing procedure accompanied by a data compression process executed by the
ストレージシステム100は、ホスト計算機30及びストレージ装置11によって構成される。ホスト計算機30は、ネットワーク31を介してストレージ装置11に接続され、管理計算機(図示せず)によって管理される。ストレージ装置11は、1以上のボリューム(論理的な記憶領域)を有する。ホスト計算機30は、物理的な計算機でもよいし、物理的な計算機で実行される仮想的な計算機でもよい。ホスト計算機30は、ストレージシステムにおいて実行される仮想的な計算機でもよい。
The
ホスト計算機30からは、ストレージ装置11のストレージコントローラ1_22A又はストレージコントローラ2_22Bに対してデータの書き込みが行われる。このストレージシステム100において、ホスト計算機30からの圧縮処理を伴うデータのライト処理について説明する。
Data is written from the
本実施例では、ホスト計算機30からのライト命令をストレージコントローラ1_22Aが受領した場合について示す。
In this embodiment, the case where the storage controller 1_22A receives the write instruction from the
具体例は、下記に示す通りである。 Specific examples are as shown below.
(S1)ストレージ装置11は、ホスト計算機30からネットワーク31を介してライト命令を受信する。ライト命令は、データとデータの割当先アドレス1100とを含んでいる。ライト命令を受信した場合に、S2以降のライト処理が開始する。
(S1) The
(S2)ストレージ装置11は、ライト命令に応答して、割当先アドレス1100が示すスロットの排他を確保する。これによって、そのスロット内のデータが他のライト命令によって更新されることを防ぐ。「スロット」とは、ボリューム(VOL)における領域である。具体的には、本実施例のスロットは、ドライブ29への書き込みが行われたか否か、及び、バッファ領域202への転送が行われたか否か等の管理の単位となる領域である。本実施例ではこの領域を「スロット」と呼ぶが、他の名称で呼ばれてもよい。
(S2) The
「スロットの排他を確保」とは、ホスト計算機30からのリード命令及びライト命令で指定されたアドレスが示すスロットに対するリード及びライトを防ぐ操作であり、排他を確保したことをホスト計算機30が認識するための情報が管理される。なお、この情報はビットマップ又は時間情報など識別できるものであれば種別は問わない。また、本実施例において、「スロット」が、VOL(例えば、シンプロビジョニングに従うVOLであるTP-VOL)における領域であるのに対し、「データ領域」は、スロットに割り当てられる領域(例えば、プール内の領域であるプール領域)である。
"Securing slot exclusion" is an operation of preventing read and write to the slot indicated by the address specified by the read command and write command from the
(S3)ストレージ装置11のストレージコントローラ1_22A内、キャッシュ領域203Aにおいて、データの割当先アドレス1100に対応するアドレス1100Aにデータを格納する。
(S3) In the cache area 203A in the storage controller 1_22A of the
(S4)ストレージコントローラ1_22Aは、キャッシュ領域203A内に格納されたデータをストレージコントローラ2_22Bに転送する。ストレージコントローラ2_22Bは、割当先アドレス1100に対応するキャッシュ領域203B内のアドレス1100Bに受領したデータを格納して、ストレージコントローラ1_22Aへ応答を返すことでストレージ装置11内での二重化を完了する。
(S4) The storage controller 1_22A transfers the data stored in the cache area 203A to the storage controller 2_22B. The storage controller 2_22B stores the received data in the
(S5)二重化を完了した後にストレージ装置11からホスト計算機30に対してネットワーク31を介してライト完了を応答する。なお、この時点でホスト計算機30はライトが完了したと認識する。
(S5) After the duplication is completed, the
(S6)ストレージコントローラ1_22Aは、キャッシュ領域203Aからドライブへ書き出すデータを選択し、選択したデータを圧縮してバッファ領域202A内のアドレス1101Aに格納する。なお、この処理はバッファ領域202A内にパリティサイクル分のデータが溜まるまで実施される。
(S6) The storage controller 1_22A selects data to be written from the cache area 203A to the drive, compresses the selected data, and stores the selected data at the
また、後述するように、ストレージコントローラ1_22Aは、選択したデータを圧縮せずにそのままアドレス1101Aに格納してもよいし、圧縮以外の処理(例えば重複排除又は暗号化等)を行って、処理後のデータをアドレス1101Aに格納してもよい。
Further, as will be described later, the storage controller 1_22A may store the selected data as it is at the
(S7)ストレージコントローラ1_22Aは、バッファ領域202A内のデータ量がパリティサイクル分に達すると、格納したデータからパリティデータを生成し、バッファ領域202A内のアドレス1104Aへ格納する。
(S7) When the amount of data in the buffer area 202A reaches the parity cycle, the storage controller 1_22A generates parity data from the stored data and stores it at the
(S8)ストレージコントローラ1_22Aは、バッファ領域202A内の圧縮データ及びパリティデータをドライブ29へ書き出す(デステージ処理)。 (S8) The storage controller 1_22A writes the compressed data and the parity data in the buffer area 202A to the drive 29 (destage processing).
(S9)ストレージコントローラ1_22Aは、デステージ処理が完了すると、(S2)において確保したスロットの排他を解放する。 (S9) When the destage processing is completed, the storage controller 1_22A releases the exclusion of the slot secured in (S2).
以上が、ライト処理の一例である。 The above is an example of light processing.
<ストレージ装置>
図2は、本発明の実施例1のストレージ装置11の構成を示すブロック図である。
<Storage device>
FIG. 2 is a block diagram showing the configuration of the
ストレージ装置11は、1以上のストレージコントローラ22と、1以上のストレージコントローラ22に接続された複数のドライブ29とを有する。
The
ストレージコントローラ22は、ホスト計算機30との通信を行うFE_I/F(フロントエンドインターフェースデバイス)23、ストレージ装置間での通信を行うためのストレージI/F(ストレージインターフェースデバイス)28、装置全体を制御するプロセッサ24、プロセッサ24で使用されるプログラム及び情報を格納するメモリ25、ドライブ29との通信を行うBE_I/F(バックエンドインターフェースデバイス)27、及びそれらをつなぐ内部ネットワーク26を備える。
The
メモリ25は、プログラムを管理するプログラム領域201、データの転送及びコピーの時の一時的な保存領域であるバッファ領域202、ホスト計算機30からのライトデータ(ライト命令に応答して書き込まれるデータ)及びドライブ29からのリードデータ(リード命令に応答して読み出されたデータ)を一時的に格納するキャッシュ領域203、及び、種々のテーブルを格納するテーブル管理領域206を有する。
The
キャッシュ領域203は、ホスト計算機30からのライトデータを一時的に格納する非圧縮データ格納領域204、及び、圧縮したデータを格納する圧縮データ格納領域205を有する。テーブル管理領域206は、VOLに関する情報を保持するVOL管理テーブル207、プールに関する情報を保持するプール構成管理テーブル208、RAID構成に関する情報を保持するRAID構成管理テーブル209、プール割当てに関する情報を保持するプール割当管理テーブル210、ドライブ割当てに関する情報を保持するドライブ割当管理テーブル211、及び、メモリ割当てに関する情報を保持するメモリ割当管理テーブル212を格納する。
The
ドライブ29は、不揮発性のデータ記憶媒体を有する装置であり、例えばSSD(Solid State Drive)でもHDD(Hard Disk Drive)でもよい。複数のドライブ29が、複数のRAIDグループ(パリティグループとも呼ばれる)を構成してよい。各RAIDグループは、1以上のドライブ29から構成される。
The
FE_I/F23、BE_I/F27及びストレージI/F28が、インターフェース部の一例である。メモリ25が、メモリ部の一例である。プロセッサ24が、プロセッサ部の一例である。
FE_I / F23, BE_I / F27 and storage I / F28 are examples of the interface unit. The
<VOL管理テーブル>
図3は、本発明の実施例1のストレージ装置11が保持するVOL管理テーブル207の構成例を示す説明図である。
<VOL management table>
FIG. 3 is an explanatory diagram showing a configuration example of the VOL management table 207 held by the
VOL管理テーブル207は、VOL毎にエントリを有する。各エントリは、VOL_ID41、VOL属性42、VOL容量43及びプールID44といった情報を格納する。以下、1つのVOL(図3の説明において「対象VOL」)を例に取る。
The VOL management table 207 has an entry for each VOL. Each entry stores information such as VOL_ID41,
VOL_ID41は、対象VOLのIDである。VOL属性42は、対象VOLの属性(例えば、対象VOLがシンプロビジョニングを適用されるVOLであるか、通常のVOLであるか、また、圧縮が有効であるか否かなど)を示す。VOL容量43は、対象VOLの容量を示す。プールID44は、対象VOLに関連付けられているプールのIDである。
VOL_ID41 is the ID of the target VOL. The VOL attribute 42 indicates the attribute of the target VOL (for example, whether the target VOL is a VOL to which thin provisioning is applied, whether it is a normal VOL, whether compression is effective, and the like). The
プロセッサ24は、デステージ処理において、VOL管理テーブル207のVOL属性42を参照することで、データ圧縮を必要とするVOLか否かを判定できる。例えば、VOL属性42“圧縮有効”ならばデータ圧縮処理を行う。
In the destage processing, the
<構成管理テーブル>
図4は、本発明の実施例1のストレージ装置11が保持するプール構成管理テーブル208の構成例を示す説明図である。
<Configuration management table>
FIG. 4 is an explanatory diagram showing a configuration example of the pool configuration management table 208 held by the
プールは、1以上のRAIDグループを基に構成された論理記憶領域である。プール構成管理テーブル208は、プール毎にエントリを有する。各エントリは、プールID51、RAIDグループID52、プール容量53及びプール使用容量54といった情報を格納する。以下、1つのプール(図4の説明において「対象プール」)を例に取る。
A pool is a logical storage area constructed based on one or more RAID groups. The pool configuration management table 208 has an entry for each pool. Each entry stores information such as
プールID51は、対象プールのIDである。RAIDグループID52は、対象プールの基になっている1以上のRAIDグループの各々のIDである。プール容量53は、対象プールの容量を示す。プール使用容量54は、対象プールのプール容量のうちVOLに割り当てられている領域の総量を示す。
The
図5は、本発明の実施例1のストレージ装置11が保持するRAID構成管理テーブル209の構成例を示す説明図である。
FIG. 5 is an explanatory diagram showing a configuration example of the RAID configuration management table 209 held by the
RAID構成管理テーブル209は、RAIDグループ毎にエントリを有する。各エントリは、RAIDグループID61、RAIDレベル62、ドライブID63、ドライブ種別64、容量65及び使用容量66といった情報を格納する。以下、1つのRAIDグループ(図5の説明において「対象RAIDグループ」)を例に取る。
The RAID configuration management table 209 has an entry for each RAID group. Each entry stores information such as
RAIDグループID61は、対象RAIDグループのIDである。RAIDレベル62は、対象RAIDグループに適用されるRAIDアルゴリズムの種別を示す。ドライブID63は、対象RAIDグループを構成する1以上のドライブの各々のIDである。ドライブ種別64は、対象RAIDグループを構成するドライブの種別(例えばHDDかSSDか)を示す。容量65は、対象RAIDグループの容量を示す。使用容量66は、対象RAIDグループの容量のうちの使用されている容量を示す。
The
<割当管理テーブル>
図6は、本発明の実施例1のストレージ装置11が保持するプール割当管理テーブル210の構成例を示す説明図である。
<Assignment management table>
FIG. 6 is an explanatory diagram showing a configuration example of the pool allocation management table 210 held by the
プール割当管理テーブル210は、VOLアドレス(VOL内のスロットを示すアドレス)毎にエントリを有する。各エントリは、VOL_ID71、VOLアドレス72、プールID73、プールアドレス74、圧縮前サイズ75、圧縮後サイズ76、及び圧縮率77といった情報を格納する。以下、1つのVOLアドレス(図6の説明において「対象VOLアドレス」)を例に取る。
The pool allocation management table 210 has an entry for each VOL address (an address indicating a slot in the VOL). Each entry stores information such as VOL_ID71,
VOL_ID71は、対象VOLアドレスによって識別されるスロットが属するVOLのIDである。VOLアドレス72は、対象VOLアドレスである。プールID73は、対象VOLアドレスに割り当てられているデータ領域を含むプールのIDである。プールアドレス74は、対象VOLアドレスに割り当てられているデータ領域のアドレス(プールに属するアドレス)である。圧縮前サイズ75は、対象プールアドレスを指定したライト命令に従うデータの圧縮前サイズを示す。圧縮後サイズ76は、対象プールアドレスを指定したライト命令に従うデータの圧縮後のサイズを示す。圧縮率77は、圧縮後サイズ76/圧縮前サイズ75の値である。
VOL_ID71 is the ID of the VOL to which the slot identified by the target VOL address belongs. The
図7は、本発明の実施例1のストレージ装置11が保持するドライブ割当管理テーブル211の構成例を示す説明図である。
FIG. 7 is an explanatory diagram showing a configuration example of the drive allocation management table 211 held by the
ドライブ割当管理テーブル211は、プールアドレス毎にエントリを有する。各エントリは、プールID81、プールアドレス82、RAIDグループID83、ドライブID84及びドライブアドレス85といった情報を格納する。以下、1つのプールアドレス(図7の説明において「対象プールアドレス」)を例に取る。
The drive allocation management table 211 has an entry for each pool address. Each entry stores information such as
プールID81は、対象プールアドレスが属するプールのIDである。プールアドレス82は、対象プールアドレスである。RAIDグループID83は、対象プールアドレスが示すデータ領域の基になっているRAIDグループのIDである。ドライブID84は、対象プールアドレスが示すデータ領域の基になっているドライブのIDである。ドライブアドレス85は、対象プールアドレスに対応したドライブアドレスである。
The
<論理記憶階層>
図8は、本発明の実施例1のストレージ装置11によって管理される論理記憶階層の構成例を示す説明図である。
<Logical storage hierarchy>
FIG. 8 is an explanatory diagram showing a configuration example of a logical storage hierarchy managed by the
VOL1000は、ホスト計算機30に提供される。また、コピー処理又は重複排除処理によって、VOL1000内の複数のスロットから1つのプールアドレスを指すことがあり、複数のVOLのスロットから一つのプールアドレスを指すこともある。図8の例では、異なる2つのスロット(VOLアドレス)1100及び1103が、同一のプールアドレス1101を指している。なお、VOL1000からプール1001の割当ては、プール割当管理テーブル210を基に管理される。また、プール1001からドライブアドレス空間1003(すなわちRAIDグループ1002を構成する複数のドライブ29が提供する複数のドライブアドレス空間)への割当ては、ドライブ割当管理テーブル211を基に管理される。
The
<メモリ割当管理テーブル>
図9は、本発明の実施例1のストレージ装置11が保持するメモリ割当管理テーブル212の構成例を示す説明図である。
<Memory allocation management table>
FIG. 9 is an explanatory diagram showing a configuration example of the memory allocation management table 212 held by the
メモリ割当管理テーブル212は、VOLアドレス(スロットを示すアドレス)毎にエントリを有する。各エントリは、VOL_ID91、VOLアドレス92、バッファ(BF)アドレス93、圧縮後VOLアドレス94、キュー状態95及びBF転送状態96といった情報を格納する。以下、1つのVOLアドレス(図9の説明において「対象VOLアドレス」)を例に取る。
The memory allocation management table 212 has an entry for each VOL address (address indicating a slot). Each entry stores information such as VOL_ID91,
VOL_ID91は、対象VOLアドレスによって識別されるスロットが属するVOLのIDである。VOLアドレス92は、対象VOLアドレスである。BFアドレス93は、対象VOLアドレスを指定してライトされたデータの転送先BFアドレスを示す。圧縮後VOLアドレス94は、対象VOLアドレスを指定してライトされたデータの内、BFへの転送の対象外となったデータの転送先VOLアドレスを示す。キュー状態95は、対象VOLアドレスを指定してライトされたデータのドライブ29へのデータ格納が完了しているかを示す。図9では、キュー状態95の値のうち“Dirty”はドライブ29への格納が出来ていないことを、“Clean”はドライブ29への格納が済んでいることを表す。BF転送状態96は、対象VOLアドレスを指定してライトされたデータが圧縮されてBFへ転送されているか否かを示す。BFへの転送が完了している場合、BF転送状態96の値は“転送済み”となり、転送が行われていない場合は“無し”となる。
VOL_ID91 is the ID of the VOL to which the slot identified by the target VOL address belongs. The
図10は、本発明の実施例1のストレージ装置11におけるメモリ割当の構成例を示す図である。
FIG. 10 is a diagram showing a configuration example of memory allocation in the
キャッシュ領域203は、VOLに対応した仮想的なアドレス空間である非圧縮データ格納領域204、及び、プールアドレスに対応した圧縮データ格納領域205をストレージコントローラ22へ提供している。ホスト計算機30からストレージコントローラ22へのライト命令によって、VOLアドレスに対応した非圧縮データ格納領域204が割当てられる。ストレージコントローラ22は、ライト命令と非同期でデータを圧縮すると、圧縮したデータを、バッファ領域202、又は、キャッシュ領域203内圧縮データ格納領域205に、プールアドレスに対応させて格納する。
The
図10の例では、ライトされたデータが格納されているVOL内のスロット1100が、プールアドレスに対応したバッファ領域202上の領域1101を指している。VOLアドレスとプールアドレスの割当ては、プール割当管理テーブル210で管理される。また、バッファ領域202への割当てはメモリ割当管理テーブル212のBFアドレス93で、圧縮データ格納領域への割当てはメモリ割当管理テーブル212の圧縮後VOLアドレス94で、それぞれ管理される。
In the example of FIG. 10, the
バッファ領域202では、バッファ領域内のデータ量がパリティサイクルのサイズに達すると、プロセッサ24を介して非圧縮データ格納領域204とは対応しないパリティ1104が生成される。
In the
以下、本実施例で行われる処理の例を説明する。 Hereinafter, an example of the processing performed in this embodiment will be described.
<リード処理>
図11は、本発明の実施例1のストレージ装置11が実行するリード処理を示すフローチャートである。
<Lead processing>
FIG. 11 is a flowchart showing a read process executed by the
リード処理は、ホスト計算機30からネットワーク31を介してストレージ装置11がリード命令を受けた場合に開始する。リード命令では、例えば、仮想ID(例えば、仮想VOL_ID)、アドレス、及びデータサイズが指定される。
The read process starts when the
S1201で、プロセッサ24は、リード命令から特定されるスロットの排他を確保する。なお、スロット排他確保時に他の処理がスロットの排他を確保している場合、プロセッサ24は、一定の時間待ってから、S1201を行う。
In S1201, the
S1202で、プロセッサ24は、リードデータがキャッシュ領域203に存在するか否かを判定する。S1202の判定結果が真の場合、S1204に進む。S1202の判定結果が偽の場合、プロセッサ24は、S1203で、RAIDグループからリードデータをバッファ領域202に転送する。なお、この際、プロセッサ24は、ホスト計算機30が指定したVOL_IDとVOLアドレスから、プール割当管理テーブル210のプールID73、プールアドレス74及び圧縮後サイズ76を特定し、ドライブ割当管理テーブル211からドライブID84及びドライブアドレス85を参照し、データの格納場所及びデータサイズを特定する。
In S1202, the
S1204で、プロセッサ24はバッファ領域202上のリードデータが圧縮されているか否かを圧縮後サイズ76から判定し、圧縮済みのデータであればS1205において伸長し、圧縮データで無い場合はS1205をスキップする。
In S1204, the
S1206で、プロセッサ24はバッファ領域202上のリードデータをホスト計算機30に転送する。ホスト計算機30は、S1206のデータ転送が完了した時点でリード処理が終了したと認識する。
In S1206, the
その後、プロセッサ24は、S1205で、確保していたスロット排他を解除する。
After that, the
<ライト処理>
図12は、本発明の実施例1のストレージ装置11が実行するライト処理を示すフローチャートである。
<Light processing>
FIG. 12 is a flowchart showing a write process executed by the
ライト処理は、ホスト計算機30からストレージ装置11がライト命令を受信した場合に開始する。なお、以下の説明では、例えば、ストレージコントローラ2_22Aのプロセッサ24をプロセッサ24Aと記載するなど、ストレージコントローラ2_22A及びストレージコントローラ2_22Bに属するものをそれぞれ参照符号に付した「A」及び「B」によって区別する。
The write process starts when the
ホスト計算機30からのライト命令には、割当て先アドレスが付随している。ストレージ装置11は、S1301において割当て先アドレスが示すスロットの排他を確保する。なお、スロット排他確保と同時に、プロセッサ24Aは、データのライト先とするキャッシュ領域203Aのスロット領域を割当てる。
An allocation destination address is attached to the write instruction from the
S1302で、プロセッサ24Aは、ホスト計算機30に対してライト処理の準備ができたことを示す「Ready」を応答する。プロセッサ24Aは、「Ready」を受け取ったホスト計算機30から、ライトデータを受ける。その後、S1303でプロセッサ24はライト命令と同期して圧縮処理を実行する必要があるかを判定する。なお、プロセッサ24Aの負荷、ストレージ装置11に対するライト量、及びライトデータのデータ長から、ストレージシステム100においてレスポンス性能を優先するケース1及びスループット性能を優先するケース2のいずれかへ分岐する。例えば、ストレージ装置11は、以下のような条件を保持し、プロセッサ24Aは、ライト命令を受信すると、保持している条件に基づいてレスポンス性能及びスループット性能のいずれを優先するかを判定してもよい。
In S1302, the processor 24A responds to the
<ケース1>レスポンス優先
レスポンス性能を優先する条件として以下のものがある。例えば、以下の複数の条件のうちいずれか一つのみ、又は、複数の組合せに基づいて、レスポンス性能を優先するか否かが判定されてもよい。後述するスループット性能に関する条件についても同様である。
<
(1)ストレージコントローラ22の(すなわちプロセッサ24の)負荷が所定の基準より低い (1) The load of the storage controller 22 (that is, the processor 24) is lower than the predetermined reference.
(2)ライトデータを圧縮した場合の圧縮率が所定の基準より低くなることが予想される (2) It is expected that the compression rate when the write data is compressed will be lower than the predetermined standard.
(3)書き込み先のボリュームに圧縮データを格納できない (3) Compressed data cannot be stored in the write destination volume
ここで、上記(1)は、所定の基準近傍で判定結果が頻繁に切り替わると負荷の変動が不安定になるため、これを防ぐために多段階で基準を変動させてもよい。また、上記(1)は、例えばストレージ装置11に対するIO命令の量に基づいて判定されてもよい。例えば、単位時間当たりのIO命令の回数、又は、IO命令によって書き込み/読み出しが行われるデータ量が所定の基準より少ない場合に、負荷が低いと判定されてもよい。
Here, in the above (1), since the fluctuation of the load becomes unstable when the determination result is frequently switched in the vicinity of the predetermined reference, the reference may be changed in multiple steps in order to prevent this. Further, the above (1) may be determined based on, for example, the amount of IO instructions for the
上記(2)は、例えば、ライトデータのサイズが所定の基準より小さい場合に、ライトデータの圧縮率が低い、すなわち圧縮によるデータ削減が見込めないと判定されてもよい。上記(3)は、例えば、ライトデータの書き込み先のVOLに対応するVOL管理テーブル207のVOL属性42が“圧縮有効”でない場合に、書き込み先のボリュームに圧縮データを格納できないと判定されてもよい。
In the above (2), for example, when the size of the write data is smaller than a predetermined reference, it may be determined that the compression rate of the write data is low, that is, data reduction by compression cannot be expected. In the above (3), for example, even if it is determined that the compressed data cannot be stored in the write destination volume when the
例えばプロセッサ24Aが低負荷であり、レスポンス性能を優先する場合、S1303の判定において偽となる。この場合、プロセッサ24Aは、S1306において受け取ったライトデータを割当てたキャッシュ領域203Aへ格納する。S1307において、ストレージコントローラ1_22Aからストレージコントローラ2_22Bに対してキャッシュ領域203Aに格納したライトデータを転送し、キャッシュ領域203Bに格納することで二重化を行う。 For example, when the processor 24A has a low load and priority is given to response performance, the determination in S1303 is false. In this case, the processor 24A stores the write data received in S1306 in the cache area 203A to which the write data is allocated. In S1307, the write data stored in the cache area 203A is transferred from the storage controller 1_22A to the storage controller 2_22B, and the write data is stored in the cache area 203B to perform duplication.
S1308において、プロセッサ24Aは、メモリ割当管理テーブル212を更新する。なお、本ケースにおいてライトデータは未だ圧縮されていない。このため、データのライト先として割当てられたスロットのVOLアドレスに対応するBFアドレス93及び圧縮後VOLアドレス94の値は無く、プロセッサ24Aは、キュー状態95を“Dirty”に更新する。
In S1308, the processor 24A updates the memory allocation management table 212. In this case, the write data has not been compressed yet. Therefore, there is no value of the
次に、S1309において、ストレージ装置11から、ネットワーク31を介してホスト計算機30に対してライト処理が完了したとして完了応答を返却する。完了応答を返却すると、S1310においてストレージ装置11は確保していたスロットの排他を解放してライト処理を終了する。
Next, in S1309, the
<ケース2>スループット優先
スループット性能を優先する条件として以下のものがある。
<Case 2> Priority for throughput There are the following conditions for prioritizing throughput performance.
(4)ストレージコントローラ22の(すなわちプロセッサ24の)負荷が所定の基準より高い (4) The load of the storage controller 22 (that is, the processor 24) is higher than the predetermined reference.
(5)ライトデータを圧縮した場合の圧縮率が所定の基準より高くなることが予想される (5) It is expected that the compression rate when the write data is compressed will be higher than the predetermined standard.
ここで、上記(4)は、上記(1)と同様に、例えばストレージ装置11に対するIO命令の量に基づいて判定することができる。例えば、単位時間当たりのIO命令の回数等が所定の基準より多い場合に、負荷が高いと判定されてもよい。
Here, the above (4) can be determined based on, for example, the amount of IO instructions for the
上記(5)は、例えば、ライトデータのサイズが所定の基準より大きい場合に、ライトデータの圧縮率が高い、すなわち圧縮によるデータ削減が見込まれると判定されてもよい。 In the above (5), for example, when the size of the write data is larger than a predetermined reference, it may be determined that the compression rate of the write data is high, that is, data reduction by compression is expected.
例えばプロセッサ24が高負荷であり、スループット性能を優先する場合、S1303の判定において真となる。この場合、プロセッサ24Aは、S1304において受け取ったライトデータをバッファ領域202Aへ転送する。次に、S1305で、プロセッサ24Aは、バッファ内のデータを圧縮する。
For example, when the
なお、S1304及びS1305において、ライトデータのバッファ領域202Aへの格納時に圧縮が行われても良い(すなわち、バッファ領域202Aへの格納前に圧縮が行われ、圧縮されたデータがバッファ領域202Aへ格納されても良い)し、バッファ領域202Aへの格納後にバッファ領域202A内で圧縮が行われても良い。いずれの場合も、最終的には、圧縮後のデータがバッファ領域202Aに格納される。 In S1304 and S1305, compression may be performed when the write data is stored in the buffer area 202A (that is, compression is performed before storage in the buffer area 202A, and the compressed data is stored in the buffer area 202A. It may be performed), and compression may be performed in the buffer area 202A after storage in the buffer area 202A. In either case, the compressed data is finally stored in the buffer area 202A.
また、この圧縮は、バッファ領域202A以外の記憶領域(例えばプロセッサ24A内のメモリ)において行われてもよい。 Further, this compression may be performed in a storage area other than the buffer area 202A (for example, a memory in the processor 24A).
ここで、圧縮は、ライトデータに対して行われる所定の処理の一例である。プロセッサ24は、圧縮以外の処理、例えば、重複排除、暗号化又は冗長化等を行い、処理後のデータをバッファ領域202Aに格納してもよい。後述する図14のS1411についても同様である。
Here, compression is an example of predetermined processing performed on write data. The
次に、S1306において、プロセッサ24Aは、バッファ領域202A内の圧縮データを、割当てたキャッシュ領域203Aへ格納する。S1307において、ストレージコントローラ1_22Aからストレージコントローラ2_22Bに対してキャッシュ領域203Aに格納したライトデータを転送し、キャッシュ領域203Bに格納することで圧縮データの二重化を行う。 Next, in S1306, the processor 24A stores the compressed data in the buffer area 202A in the allocated cache area 203A. In S1307, the write data stored in the cache area 203A is transferred from the storage controller 1_22A to the storage controller 2_22B, and the compressed data is duplicated by storing the write data in the cache area 203B.
S1308において、プロセッサ24Aは、メモリ割当管理テーブル212を更新する。なお、本ケースにおいてライトデータは圧縮されており、圧縮データに対してアドレスが割当てられる。このため、データのライト先として割当てられたスロットのVOLアドレスに対応する圧縮後VOLアドレス94が更新される。また、BFアドレス93の値は無く、プロセッサ24Aは、キュー状態95を“Dirty”に更新する。
In S1308, the processor 24A updates the memory allocation management table 212. In this case, the write data is compressed, and an address is assigned to the compressed data. Therefore, the
次に、S1309において、ストレージ装置11から、ネットワーク31を介してホスト計算機30に対してライト処理が完了したとして完了応答を返却する。完了応答を返却すると、S1310においてストレージ装置11は確保していたスロットの排他を解放してライト処理を終了する。
Next, in S1309, the
<デステージ処理>
図13は、本発明の実施例1のストレージ装置11が実行するデステージ処理を示すフローチャートである。
<Destage processing>
FIG. 13 is a flowchart showing a destage process executed by the
デステージ処理は、ホスト計算機30からストレージ装置11へのライト命令が完了した後、非同期的に行われる。なお、デステージは、ライト命令が完了したことを契機として開始されても良いし、周期的に起動しても良いし、キャッシュ領域203の消費量などからライト量を判定して選択しても良い。
The destage processing is performed asynchronously after the write instruction from the
デステージ処理が開始されると、ストレージ装置11は、S1401において、デステージ処理の対象領域がキャッシュ領域上の圧縮データ格納領域205に属しているか否かを判定する。判定が真の場合(すなわち対象領域が圧縮データ格納領域205に属している場合)はケース2-1、判定が偽の場合(すなわち対象領域が非圧縮データ格納領域204に属している場合)はケース1-1の処理が行われる。
When the destage processing is started, the
<ケース2-1>圧縮済データのデステージ
S1401の判定が真の場合、キャッシュ領域203内の圧縮データ格納領域205に対してデステージ処理(S1402~S1406)が行われる。S1402では、プロセッサ24Aは、圧縮データ格納領域205からデステージ処理を実行するデータを選択する。通常、パリティサイクル分のデータが並ぶデータ列(ストライプ列)が選択され、それに対してデステージが行われる。
<Case 2-1> Destage of compressed data When the determination of S1401 is true, destage processing (S1402 to S1406) is performed on the compressed
S1403で、プロセッサ24は、デステージするデータが属するスロットの排他を確保する。排他を確保した後、プロセッサ24Aは、S1404で対象のデータ列からパリティデータを生成する。S1405で、プロセッサ24Aは、対象のデータ列及び生成したパリティデータをドライブに書き出す。S1406において、プロセッサ24Aは、メモリ割当管理テーブル212を更新する。なお、本ケースにおいて、キュー状態95が“Clean”に更新される。S1407で、プロセッサ24Aは、デステージされた範囲のスロットの排他を解放し、処理を終了する。
In S1403, the
<ケース1-1>圧縮及びデステージ一括処理(デステージ中排他保持)
S1401の判定が偽の場合、キャッシュ領域203内の非圧縮データ格納領域204に対してデステージ処理(S1408~S1415)が行われる。S1408では、プロセッサ24Aは、非圧縮データ格納領域204に格納されているデータのうち、キュー状態95が“Dirty”であるスロットに属するデータから、デステージ処理を実行するデータを選択する。通常、パリティサイクル分のデータが並ぶデータ列(ストライプ列)が選択され、それに対してデステージが行われる。
<Case 1-1> Compression and destage batch processing (exclusive holding during destage)
If the determination in S1401 is false, destage processing (S1408 to S1415) is performed on the uncompressed
S1409で、プロセッサ24は、デステージするデータが属するスロットの排他を確保する。なお、図13に示すデステージ処理が、図12に示したライト処理の終了を契機として(すなわちライト処理の直後に)行われる場合には、S1310及びS1409を省略してもよい。
In S1409, the
排他を確保した後、プロセッサ24Aは、S1410で対象のデータを読み出して、バッファ領域202へ転送する。なお転送の際、プロセッサ24は、メモリ割当管理テーブル212のBFアドレス93及び圧縮後VOLアドレス94を割当てる。また、プロセッサ24Aは、バッファ領域202への転送完了後、BF転送状態96を“転送済”に更新する。なお、圧縮後VOLアドレス94の割当ては、パリティサイクル分を割当てることが明らかなため、あらかじめパリティサイクル分の領域を割当てることで、マッピング情報の更新回数を削減できる。
After ensuring the exclusion, the processor 24A reads the target data in S1410 and transfers it to the
S1411で、プロセッサ24Aは、転送したデータを圧縮する。なお、圧縮処理はバッファ転送時に行っても良い(すなわち、バッファ領域202への格納前に圧縮が行われ、圧縮されたデータがバッファ領域202へ格納されても良い)し、転送後バッファ内で行っても良い。
In S1411, the processor 24A compresses the transferred data. The compression process may be performed at the time of buffer transfer (that is, compression may be performed before storage in the
S1412において、プロセッサ24Aは、バッファ内の圧縮データの量を判定する。圧縮データ量がパリティサイクル分よりも小さい場合、プロセッサ24は、S1408に戻ってデステージするデータを追加で選択する。パリティサイクル分のデータがバッファ領域202内に溜まった場合、S1412の判定を真としてS1413に進む。なお、圧縮データサイズは可変長であるため、バッファ領域202内のデータが必ずしもパリティサイクル分揃うとは限らないことから、パリティサイクルを超える前にS1413へ処理を進めることもありえる。
In S1412, the processor 24A determines the amount of compressed data in the buffer. If the amount of compressed data is less than the parity cycle, the
S1413において、プロセッサ24Aは、バッファ領域202内の圧縮データからパリティデータを生成する。S1414で、プロセッサ24Aは、対象のデータ列及び生成したパリティデータを、RAIDグループを構成するドライブ29に書き出す。S1415において、プロセッサ24Aは、メモリ割当管理テーブル212の更新を確定する。なお、本ケースにおいて、キュー状態95が“Clean”に更新される。S1407で、プロセッサ24Aは、デステージされた範囲のスロットの排他を解放し、処理を終了する。
In S1413, the processor 24A generates parity data from the compressed data in the
上記の例では、S1412において、バッファ内の圧縮データの量がパリティサイクルのデータ量に達したか否かが判定されている。しかし、ドライブ29がRAIDを構成するか否かにかかわらず、所定の量のデータをまとめてドライブ29に格納する場合には、プロセッサ24Aは、S1412においてバッファ内の圧縮データの量が当該所定の量に達したか否かを判定する。本実施例のS1412におけるパリティサイクルのデータ量は、上記の所定のデータ量の一例である。
In the above example, in S1412, it is determined whether or not the amount of compressed data in the buffer has reached the data amount of the parity cycle. However, when a predetermined amount of data is collectively stored in the
なお、プロセッサ24Aは、S1401の判定が偽の場合であっても、S1408~S1415ではなく、S1402~S1406を実行する場合がある。例えば、ライトデータの書き込み先のVOL属性42が圧縮有効でないために、図12のS1303の判定が偽であった場合、非圧縮データがキャッシュ領域203Aに格納されている。この場合、S1401の判定は偽となるが、データの圧縮は行わないため、S1402~S1406が実行される。
Note that the processor 24A may execute S1402 to S1406 instead of S1408 to S1415 even if the determination of S1401 is false. For example, if the determination in S1303 in FIG. 12 is false because the
上記の例では、スループット性能が優先される場合に、ライト処理時には圧縮後のデータがキャッシュ領域203で二重化された時点でホスト計算機30に応答が返され、デステージ処理ではデータの圧縮が不要となる。これによって、レスポンス性能は低下するが、デステージ処理の際のキャッシュアクセスが削減されるため、スループット性能が向上する。このような処理は一例であり、スループット性能が優先される場合に、ライト処理の際にさらに多くの処理が行われてもよい。
In the above example, when throughput performance is prioritized, a response is returned to the
例えば、プロセッサ24Aは、S1303(図12)の判定が真である場合に、S1304~S1308を実行し、続いて、S1412、S1404~S1406(図13)と同様の処理を実行し、その後にS1309、S1310を実行してもよい。すなわち、ライト命令に対して圧縮処理及びデステージまで一括して行われるため、レスポンス性能はさらに低下するが、スループット性能は向上する。 For example, the processor 24A executes S1304 to S1308 when the determination of S1303 (FIG. 12) is true, and subsequently executes the same processing as S1412 and S1404 to S1406 (FIG. 13), and then S1309. , S1310 may be executed. That is, since the compression process and the destage are collectively performed for the write instruction, the response performance is further lowered, but the throughput performance is improved.
この場合も、S1303(図12)の判定が偽であるときの処理は、上記の図12及び図13を示して説明した通りである。すなわち、プロセッサ24Aは、S1304~S1305を実行せずに、S1306~S1310を実行する。さらに、プロセッサ24Aは、S1408~S1415及びS1407を実行する。 Also in this case, the processing when the determination in S1303 (FIG. 12) is false is as described with reference to FIGS. 12 and 13 above. That is, the processor 24A executes S1306 to S1310 without executing S1304 to S1305. Further, the processor 24A executes S1408 to S1415 and S1407.
上記の例によれば、デステージが開始されるとスロットの排他が確保され(S1409)、その後、データのドライブ29への転送が終了して(S1414)マッピング情報が更新される(S1415)まで、スロットの排他が確保される(S1407)。このように長時間排他を確保することによって、必要なIO命令が実行できないといったトラブルが発生する場合がある。このようなトラブルを回避するために、ケース1-1における排他手順を変更した実施例として、以下のケース1-2を示す。
According to the above example, when destage is started, slot exclusion is secured (S1409), and then the transfer of data to the
図14は、本発明の実施例1のストレージ装置11が実行する、排他手順を変更したデステージ処理を示すフローチャートである。
FIG. 14 is a flowchart showing a destage process in which the exclusion procedure is changed, which is executed by the
<ケース1-2>圧縮及びデステージ一括処理(デステージ中排他解放)
S1501において、ストレージ装置11は、図13のS1401と同様の判定を行う。S1501の判定が真の場合、キャッシュ領域203内の圧縮データ格納領域205に対してデステージ処理(S1502~S1507)が行われる。これらの処理は、図13のS1402~S1407と同様であるため、説明を省略する。
<Case 1-2> Compression and destage batch processing (exclusive release during destage)
In S1501, the
S1501の判定が偽の場合、キャッシュ領域203内の非圧縮データ格納領域204に対してデステージ処理が行われる(S1508~S1519)。S1508では、プロセッサ24は、非圧縮データ格納領域204に格納されているデータのうち、キュー状態95が“Dirty”であるスロットに属するデータからデステージ処理を実行するデータを選択する。通常、パリティサイクル分のデータが並ぶデータ列(ストライプ列)が選択され、それに対してデステージが行われる。
If the determination in S1501 is false, destage processing is performed on the uncompressed
先述のケース1-1ではデステージ処理が完了するまでデステージ対象となるスロット範囲が保持されている。しかし、圧縮後のデータサイズがパリティサイクル分に達する広範囲の排他を保持し続けると、ホスト計算機30からのライト命令が排他範囲に生じることによってデステージ待ちを生じる可能性が高くなる。そこで、プロセッサ24は、S1509でデステージするデータが属するスロットの排他を確保した後、S1510のバッファ転送及びS1511の圧縮処理を行う。そして、プロセッサ24は、圧縮処理が完了した後のS1512でメモリ割当管理テーブル212のBF転送状態96を“転送済”に更新する。更新が完了すると、プロセッサ24は、S1513においてスロット排他を解放する。
In case 1-1 described above, the slot range to be destaged is held until the destage processing is completed. However, if the compressed data size continues to hold a wide range of exclusions that reach the parity cycle, there is a high possibility that a write instruction from the
以後、プロセッサ24は、S1514のドライブ転送可否の判定、S1515のパリティ生成、S1516のドライブ転送を、それぞれケース1-1のS1412、S1413及びS1414と同様に行う。
After that, the
S1517において、プロセッサ24は、デステージ範囲のスロット排他を再度確保し、S1518でメモリ割当管理テーブル212のキュー状態95を“Clean”に更新する。
In S1517, the
なお、S1517までの間に、上記のデステージ範囲のスロットに対してホスト計算機30からの更新ライトが発生した場合、プロセッサ24は、S1308においてメモリ割当管理テーブル212のBF転送状態96を“無し”に更新する。この場合、S1518でプロセッサ24がキュー状態95を更新する際にBF転送状態96が切り替わったことを判定することによって、更新ライトが発生したことに気づくことが出来る。
If an update write from the
なお、更新ライトの発生に気づいた(すなわちS1512で“転送済”に更新したBF転送状態96がS1517の時点で“無し”となっていた)場合、プロセッサ24は、処理をやり直すか又は対象箇所のマッピング情報更新をスキップする。具体的には、プロセッサ24は、S1518に進まずにS1508に戻り、更新ライトが行われたスロットを対象とするデステージ処理をやり直してもよい。あるいは、プロセッサは、そのままS1508に進み、更新ライトが行われたスロットのキュー状態95を“Clean”に更新せずに、S1519に進んでもよい。その場合、当該スロットは次回以降のデステージ処理の対象となる。
If the occurrence of the update write is noticed (that is, the
最後にS1519で、プロセッサ24は、デステージされた範囲のスロットの排他を解放し、処理を終了する。
Finally, in S1519, the
以上の本発明の実施例によれば、キャッシュ領域に格納されたデータをデステージする際に、圧縮処理から記憶デバイス(ドライブ)への格納までを一括で行うことによって、圧縮データの二重化処理が省略される。キャッシュ領域における圧縮データの二重化が不要になることで、キャッシュアクセス量を削減し、データ書き込みの最大速度が向上できる。 According to the above embodiment of the present invention, when the data stored in the cache area is destaged, the compression process to the storage in the storage device (drive) are collectively performed, so that the compression data duplication process can be performed. Omitted. By eliminating the need for duplication of compressed data in the cache area, the amount of cache access can be reduced and the maximum speed of data writing can be improved.
また、記憶デバイスへの圧縮データの格納が完了するまでキャッシュメモリ上に圧縮前のデータを二重化して保持することによって、圧縮処理及び記憶デバイスへの格納などの処理中に装置障害が発生してもデータを保護することができる。ストレージ装置が圧縮以外の処理(例えば重複排除、暗号化又は冗長化等)を行う場合にも、同様の効果が得られる。 In addition, by duplicating and holding the uncompressed data in the cache memory until the storage of the compressed data in the storage device is completed, a device failure occurs during processing such as compression processing and storage in the storage device. Can also protect your data. Similar effects can be obtained when the storage device performs processing other than compression (for example, deduplication, encryption, redundancy, etc.).
また、デステージの際に圧縮処理を行う場合、例えばパリティサイクル等の所定の大きさの領域を予め割り当てることができるため、マッピング情報の更新回数を削減することができる。 Further, when the compression process is performed at the time of destage, a region having a predetermined size such as a parity cycle can be allocated in advance, so that the number of times the mapping information is updated can be reduced.
また、本発明の実施例によれば、ストレージ装置は、所定の条件に基づいてレスポンス性能及びスループット性能のいずれを優先するかを判定する。そして、レスポンス性能を優先する場合にはキャッシュメモリ上に圧縮前のデータを二重化して保持したところでホストに応答する。これによって、レスポンス性能が向上する。一方、スループット性能を優先する場合には圧縮を行い、圧縮後のデータを二重化して保持したところでホストに応答する。これによってレスポンス性能は低下するが、デステージの際のキャッシュアクセス量が削減されるため、スループット性能は向上する。 Further, according to the embodiment of the present invention, the storage device determines which of the response performance and the throughput performance is prioritized based on a predetermined condition. Then, when the response performance is prioritized, the data before compression is duplicated and held in the cache memory before responding to the host. This improves the response performance. On the other hand, if priority is given to throughput performance, compression is performed, and the compressed data is duplicated and retained before responding to the host. As a result, the response performance is reduced, but the cache access amount at the time of destage is reduced, so that the throughput performance is improved.
例えば、IO命令の量、予想される圧縮率又は書き込み先のボリュームの属性などに基づいてレスポンス性能又はスループット性能のいずれを優先するかを判定することによって、状況に応じて最適な性能を実現することができる。 For example, by determining whether to prioritize response performance or throughput performance based on the amount of IO instructions, expected compression rate, attributes of the volume to be written, etc., the optimum performance is realized according to the situation. be able to.
また、キャッシュ領域に格納された圧縮前のデータをデステージする場合に、当該データをキャッシュ領域から読み出すときから記憶デバイスへの圧縮後のデータの格納が完了し、キュー状態を“Clean”に変更するまで(S1409~S1415、S1407)、当該データの領域の排他を確保してもよい。これによって、まだデステージされていないデータがデステージされたと誤って判定することが防止される。 In addition, when destage the uncompressed data stored in the cache area, the storage of the compressed data in the storage device is completed from the time when the data is read from the cache area, and the queue state is changed to "Clean". (S1409 to S1415, S1407), the exclusion of the data area may be secured. This prevents erroneous determination that data that has not yet been destaged has been destaged.
あるいは、当該データを読み出して、圧縮を行い、バッファ領域に転送した時点で排他を一旦解除してもよい(S1513)。これによって、排他が確保される時間が短縮し、必要なIOが実行できないというトラブルが軽減される。この場合、排他を一旦解除(S1513)してから当該データの記憶デバイスへの転送が終了(S1516)するまでの間に新たな書き込みが行われると、そのことが記録される(すなわちBF転送状態が“転送済み”から“なし”に更新される)。これによって、まだデステージされていないデータがデステージされたと誤って判定することが防止される。 Alternatively, the exclusive data may be temporarily released when the data is read, compressed, and transferred to the buffer area (S1513). As a result, the time for ensuring exclusion is shortened, and the trouble that the required IO cannot be executed is reduced. In this case, if new writing is performed between the time when the exclusion is temporarily released (S1513) and the time when the transfer of the data to the storage device is completed (S1516), that is recorded (that is, the BF transfer state). Is updated from "transferred" to "none"). This prevents erroneous determination that data that has not yet been destaged has been destaged.
特許請求の範囲に記載したもののほか、本発明の観点の代表的なものとして、次のものが挙げられる。
(1)第1のストレージ制御部と、第2のストレージ制御部と、少なくとも前記第1のストレージ制御部に接続され、不揮発性の記憶媒体を有するストレージドライブと、を有するストレージシステムであって、
前記第1のストレージ制御部と前記第2のストレージ制御部とは、それぞれ、データを格納するキャッシュ領域と、データを格納するバッファ領域と、を有しており、前記キャッシュ領域に格納されたデータを互いのキャッシュ領域にも格納して二重化を行い、
前記第1のストレージ制御部は、ホスト計算機からデータの書き込み命令を受信すると、前記書き込み命令の対象のデータを、前記第1のストレージ制御部の前記キャッシュ領域である第1のキャッシュ領域に格納するとともに、前記データを前記第2のストレージ制御部の前記キャッシュ領域である第2のキャッシュ領域に格納して二重化を行い、前記二重化が完了したら、前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信し、
前記書き込み命令の対象のデータに所定の処理を行い前記バッファ領域に格納し、
前記バッファ領域に格納したデータを読み出して前記ストレージドライブに送信することを特徴とするストレージシステム。
(2)上記(1)に記載のストレージシステムであって、
前記第1のストレージ制御部は、前記第1のキャッシュ領域から読み出したデータに前記所定の処理を行い、前記所定の処理後のデータを前記バッファ領域に格納することを特徴とするストレージシステム。
(3)上記(1)に記載のストレージシステムであって、
前記所定の処理は、前記第1のキャッシュ領域から読み出したデータの圧縮、重複排除、暗号化又は冗長化のいずれかであることを特徴とするストレージシステム。
(4)上記(1)に記載のストレージシステムであって、
前記第1のストレージ制御部に接続された複数の前記ストレージドライブを有し、
前記第1のストレージ制御部は、前記バッファ領域に格納したデータの量がパリティを生成するための所定のデータ量に達した場合、前記バッファ領域から読み出したデータに基づいてパリティを作成し、前記バッファ領域から読み出したデータ及び前記パリティを前記複数のストレージドライブに送信することを特徴とするストレージシステム。
(5)上記(2)に記載のストレージシステムであって、
前記第1のストレージ制御部は、
前記ストレージシステムにおいてレスポンス性能及びスループット性能のいずれが優先されるかを判定するための所定の条件を保持して、前記所定の条件に基づいて、レスポンス性能及びスループット性能のいずれが優先されるかを判定し、
レスポンス性能が優先される場合、前記データを前記第1及び第2のキャッシュ領域に格納してから、前記所定の処理を行い、
スループット性能が優先される場合、前記所定の処理を行ったデータを前記第1及び第2のキャッシュ領域に格納することを特徴とするストレージシステム。
(6)上記(5)に記載のストレージシステムであって、
前記第1のストレージ制御部は、前記第1のストレージ制御部の処理の負荷が所定の基準より低い場合に、レスポンス性能が優先されると判定することを特徴とするストレージシステム。
(7)上記(5)に記載のストレージシステムであって、
前記所定の処理は、前記データの圧縮であり、
前記第1のストレージ制御部は、前記データの圧縮率が所定の基準より低くなることが予測される場合、又は、前記データの書き込み対象として指定されたボリュームに圧縮データを格納することができない場合に、レスポンス性能が優先されると判定することを特徴とするストレージシステム。
(8)上記(5)に記載のストレージシステムであって、
前記第1のストレージ制御部は、
前記データが書き込まれるボリュームの管理単位領域ごとに、当該管理単位領域に書き込まれたデータが前記ストレージドライブに格納されたかを示すキュー状態を保持し、
前記ホスト計算機から前記データの書き込み命令を受信すると、前記データの書き込み対象である前記管理単位領域の排他を確保した後に、前記第1のキャッシュ領域に前記データを格納し、
前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信した後に、前記データの書き込み対象である前記管理単位領域の排他を解除し、
前記管理単位領域のうち、前記キュー状態が、書き込まれたデータが前記ストレージドライブに格納されていないことを示す前記管理単位領域の排他を確保した後に、当該管理単位領域に書き込まれたデータを前記第1のキャッシュ領域から読み出して、前記所定の処理後のデータを前記バッファ領域に格納し、
前記バッファ領域から読み出した前記所定の処理後のデータの前記ストレージドライブへの格納が終了すると、前記キュー状態を、書き込まれたデータが前記ストレージドライブに格納されたことを示す値に更新し、その後、当該管理単位領域の排他を解除することを特徴とするストレージシステム。
(9)上記(5)に記載のストレージシステムであって、
前記第1のストレージ制御部は、
前記データが書き込まれるボリュームの管理単位領域ごとに、当該管理単位領域に書き込まれたデータが前記ストレージドライブに格納されたかを示すキュー状態、及び、当該管理単位領域に書き込まれたデータが前記バッファ領域に格納されたかを示すバッファ転送状態を保持し、
前記ホスト計算機から前記データの書き込み命令を受信すると、前記データの書き込み対象である前記管理単位領域の排他を確保した後に、前記第1のキャッシュ領域に前記データを格納し、
前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信した後に、前記データの書き込み対象である前記管理単位領域の排他を解除し、
前記管理単位領域のうち、前記キュー状態が、書き込まれたデータが前記ストレージドライブに格納されていないことを示す前記管理単位領域の排他を確保した後に、当該管理単位領域に書き込まれたデータを前記第1のキャッシュ領域から読み出して、前記所定の処理後のデータを前記バッファ領域に格納し、
当該管理単位領域の前記バッファ転送状態を、格納されたデータが前記バッファ領域に格納されたことを示す値に更新した後に、当該管理単位領域の排他を解除し、
当該管理単位領域の排他が解除されている間に、当該管理単位領域に対するデータの書き込みを行った場合、当該管理単位領域の前記バッファ転送状態を、書き込まれたデータが前記バッファ領域に格納されていないことを示す値に更新し、
前記バッファ領域から読み出した前記所定の処理後のデータが前記ストレージドライブに格納された後に、当該管理単位領域の排他を確保し、
当該管理単位領域の前記バッファ転送状態が、書き込まれたデータが前記バッファ領域に格納されていることを示す場合、前記キュー状態を、書き込まれたデータが前記ストレージドライブに格納されたことを示す値に更新した後に、当該管理単位領域の排他を解除することを特徴とするストレージシステム。
(10)上記(2)に記載のストレージシステムであって、
前記第1のストレージ制御部は、データを格納する第3のキャッシュ領域をさらに有し、
前記第2のストレージ制御部は、データを格納する第4のキャッシュ領域をさらに有し、
前記第1のストレージ制御部は、前記所定の条件に基づいて、スループット性能が優先されると判定した場合、前記データに前記所定の処理を行い、前記所定の処理後のデータを前記第3のキャッシュ領域に格納して、前記所定の処理後のデータを前記第2のストレージ制御部に送信し、
前記第2のストレージ制御部は、前記第1のストレージ制御部から受信した前記所定の処理後のデータを前記第4のキャッシュ領域に格納して二重化を行い、
前記第1のストレージ制御部は、
前記第2のストレージ制御部による前記第4のキャッシュ領域への前記所定の処理後のデータの格納が終了すると、前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信し、
前記第3のキャッシュ領域に格納したデータを読み出して前記ストレージドライブに送信することを特徴とするストレージシステム。
In addition to those described in the claims, the following are typical examples of the viewpoint of the present invention.
(1) A storage system including a first storage control unit, a second storage control unit, and a storage drive connected to at least the first storage control unit and having a non-volatile storage medium.
The first storage control unit and the second storage control unit each have a cache area for storing data and a buffer area for storing data, and the data stored in the cache area. Is also stored in each other's cache area and duplicated,
When the first storage control unit receives a data write command from the host computer, the first storage control unit stores the data subject to the write command in the first cache area, which is the cache area of the first storage control unit. At the same time, the data is stored in the second cache area, which is the cache area of the second storage control unit, and duplication is performed. When the duplication is completed, the host computer is informed that the writing of the data is completed. Send a response,
The data to be written is subjected to predetermined processing and stored in the buffer area.
A storage system characterized in that data stored in the buffer area is read out and transmitted to the storage drive.
(2) The storage system according to (1) above.
The storage system is characterized in that the first storage control unit performs the predetermined processing on the data read from the first cache area, and stores the data after the predetermined processing in the buffer area.
(3) The storage system according to (1) above.
The storage system, wherein the predetermined process is any one of compression, deduplication, encryption, and redundancy of data read from the first cache area.
(4) The storage system according to (1) above.
It has a plurality of the storage drives connected to the first storage control unit, and has a plurality of the storage drives.
When the amount of data stored in the buffer area reaches a predetermined amount of data for generating parity, the first storage control unit creates parity based on the data read from the buffer area, and the first storage control unit creates parity. A storage system characterized in that data read from a buffer area and the parity are transmitted to the plurality of storage drives.
(5) The storage system according to (2) above.
The first storage control unit is
It holds a predetermined condition for determining which of the response performance and the throughput performance is prioritized in the storage system, and based on the predetermined condition, which of the response performance and the throughput performance is prioritized is determined. Judgment,
When the response performance is prioritized, the data is stored in the first and second cache areas, and then the predetermined processing is performed.
A storage system characterized in that when the throughput performance is prioritized, the data subjected to the predetermined processing is stored in the first and second cache areas.
(6) The storage system according to (5) above.
The storage system is characterized in that the first storage control unit determines that response performance is prioritized when the processing load of the first storage control unit is lower than a predetermined reference.
(7) The storage system according to (5) above.
The predetermined process is compression of the data.
The first storage control unit predicts that the compression rate of the data will be lower than a predetermined reference, or cannot store the compressed data in the volume designated as the write target of the data. In addition, a storage system characterized in that it is determined that response performance is prioritized.
(8) The storage system according to (5) above.
The first storage control unit is
For each management unit area of the volume to which the data is written, a queue state indicating whether the data written in the management unit area is stored in the storage drive is maintained.
When the data write command is received from the host computer, the data is stored in the first cache area after ensuring the exclusion of the management unit area to which the data is written.
After sending a response indicating the end of writing the data to the host computer, the exclusion of the management unit area to which the data is written is released.
Among the management unit areas, the data written in the management unit area is transferred to the management unit area after the queue state secures the exclusion of the management unit area indicating that the written data is not stored in the storage drive. Read from the first cache area, store the data after the predetermined processing in the buffer area, and store the data in the buffer area.
When the storage of the predetermined processed data read from the buffer area in the storage drive is completed, the queue state is updated to a value indicating that the written data is stored in the storage drive, and then the queue state is updated. , A storage system characterized by releasing the exclusion of the management unit area.
(9) The storage system according to (5) above.
The first storage control unit is
For each management unit area of the volume to which the data is written, a queue state indicating whether the data written in the management unit area is stored in the storage drive, and the data written in the management unit area is the buffer area. Holds the buffer transfer state indicating whether it was stored in
When the data write command is received from the host computer, the data is stored in the first cache area after ensuring the exclusion of the management unit area to which the data is written.
After sending a response indicating the end of writing the data to the host computer, the exclusion of the management unit area to which the data is written is released.
Among the management unit areas, the data written in the management unit area is transferred to the management unit area after the queue state secures the exclusion of the management unit area indicating that the written data is not stored in the storage drive. Read from the first cache area, store the data after the predetermined processing in the buffer area, and store the data in the buffer area.
After updating the buffer transfer state of the management unit area to a value indicating that the stored data is stored in the buffer area, the exclusion of the management unit area is released.
If data is written to the management unit area while the exclusion of the management unit area is released, the buffer transfer state of the management unit area and the written data are stored in the buffer area. Update to a value that indicates no,
After the predetermined processed data read from the buffer area is stored in the storage drive, the exclusive control of the management unit area is secured.
When the buffer transfer state of the management unit area indicates that the written data is stored in the buffer area, the queue state is a value indicating that the written data is stored in the storage drive. A storage system characterized in that the exclusion of the management unit area is released after updating to.
(10) The storage system according to (2) above.
The first storage control unit further has a third cache area for storing data.
The second storage control unit further has a fourth cache area for storing data.
When the first storage control unit determines that the throughput performance is prioritized based on the predetermined condition, the first storage control unit performs the predetermined processing on the data, and the data after the predetermined processing is the third. It is stored in the cache area, and the data after the predetermined processing is transmitted to the second storage control unit.
The second storage control unit stores the predetermined processed data received from the first storage control unit in the fourth cache area and performs duplication.
The first storage control unit is
When the storage of the data after the predetermined processing in the fourth cache area by the second storage control unit is completed, a response indicating the end of writing the data is transmitted to the host computer.
A storage system characterized in that data stored in the third cache area is read out and transmitted to the storage drive.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。 The present invention is not limited to the above-described embodiment, and includes various modifications. For example, the above-mentioned examples have been described in detail for a better understanding of the present invention, and are not necessarily limited to those having all the configurations of the description.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。 Further, each of the above configurations, functions, processing units, processing means and the like may be realized by hardware by designing a part or all of them by, for example, an integrated circuit. Further, each of the above configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function. Information such as programs, tables, and files that realize each function can be stored in non-volatile semiconductor memories, hard disk drives, storage devices such as SSDs (Solid State Drives), or computer-readable non-readable devices such as IC cards, SD cards, and DVDs. It can be stored in a temporary data storage medium.
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。 In addition, the control lines and information lines indicate what is considered necessary for explanation, and do not necessarily indicate all the control lines and information lines in the product. In practice, it can be considered that almost all configurations are interconnected.
100 ストレージシステム
11 ストレージ装置
22、22A、22B ストレージコントローラ
202 バッファ領域
203、203A、203B キャッシュ領域
204 非圧縮データ格納領域
205 圧縮データ格納領域
29 ドライブ
30 ホスト計算機
31 ネットワーク
100
Claims (3)
前記第1のストレージ制御部は、データを格納する第1のキャッシュ領域と、データを格納する第1のバッファ領域と、を有しており、
前記第2のストレージ制御部は、それぞれ、データを格納する第2のキャッシュ領域と、データを格納する第2のバッファ領域と、を有しており、
前記第1のストレージ制御部は、前記第1のキャッシュ領域に格納されたデータを前記第2のキャッシュ領域にも格納して二重化を行うようになっており、
前記第1のストレージ制御部は、ホスト計算機からデータの書き込み命令を受信すると、前記書き込み命令の対象のデータを、前記第1のストレージ制御部の前記第1のキャッシュ領域に格納するとともに、前記第1のキャッシュ領域に格納したデータを前記第2のストレージ制御部の前記第2のキャッシュ領域に格納して二重化を行い、前記二重化が完了したら、前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信し、
前記第1のストレージ制御部は、前記書き込み命令の対象であるいずれかの前記キャッシュ領域に格納された二重化されたデータのうち前記ストレージドライブに格納されるデータについては、前記キャッシュ領域から読み出した前記書き込み命令の対象のデータに圧縮処理を行って前記第1のキャッシュ領域に格納せずに前記第1のバッファ領域に格納し、前記第1のバッファ領域に前記圧縮処理して格納されたデータに基づいてパリティを生成して前記第1のバッファ領域に格納し、前記第1のバッファ領域に格納したデータ及びパリティを読み出して前記ストレージドライブに送信して格納させることを特徴とするストレージシステム。 A storage system including a first storage control unit, a second storage control unit, and a storage drive connected to at least the first storage control unit and having a non-volatile storage medium.
The first storage control unit has a first cache area for storing data and a first buffer area for storing data.
The second storage control unit has a second cache area for storing data and a second buffer area for storing data, respectively.
The first storage control unit also stores the data stored in the first cache area in the second cache area to perform duplication.
When the first storage control unit receives a data write command from the host computer, the first storage control unit stores the data subject to the write command in the first cache area of the first storage control unit, and at the same time, the first storage control unit receives the data write command. The data stored in the cache area of 1 is stored in the second cache area of the second storage control unit to perform duplication, and when the duplication is completed, the host computer indicates the end of writing the data. Send a response,
The first storage control unit reads the data stored in the storage drive among the duplicated data stored in the cache area, which is the target of the write command, from the cache area. The data to be written command is compressed and stored in the first buffer area without being stored in the first cache area, and the data stored in the first buffer area by the compression process. A storage system characterized in that parity is generated based on the above and stored in the first buffer area, and data and parity stored in the first buffer area are read out and transmitted to the storage drive for storage.
前記第1のストレージ制御部に接続された複数の前記ストレージドライブを有し、 It has a plurality of the storage drives connected to the first storage control unit, and has a plurality of the storage drives.
前記第1のストレージ制御部は、前記第1のバッファ領域に前記圧縮処理して格納したデータの量がパリティを生成するための所定のデータ量に達した場合、前記第1のバッファ領域から読み出したデータに基づいてパリティを作成し、前記第1のバッファ領域から読み出したデータ及び前記パリティを前記複数のストレージドライブに送信することを特徴とするストレージシステム。 When the amount of data stored in the first buffer area by the compression process reaches a predetermined amount of data for generating parity, the first storage control unit reads out from the first buffer area. A storage system characterized in that a parity is created based on the data and the data read from the first buffer area and the parity are transmitted to the plurality of storage drives.
前記ストレージシステムは、第1のストレージ制御部と、第2のストレージ制御部と、少なくとも前記第1のストレージ制御部に接続され、不揮発性の記憶媒体を有するストレージドライブと、を有し、 The storage system includes a first storage control unit, a second storage control unit, and a storage drive connected to at least the first storage control unit and having a non-volatile storage medium.
前記第1のストレージ制御部は、データを格納する第1のキャッシュ領域と、データを格納する第1のバッファ領域と、を有しており、前記第2のストレージ制御部は、それぞれ、データを格納する第2のキャッシュ領域と、データを格納する第2のバッファ領域と、を有しており、前記第1のストレージ制御部は、前記第1のキャッシュ領域に格納されたデータを前記第2のキャッシュ領域にも格納して二重化を行うようになっており、 The first storage control unit has a first cache area for storing data and a first buffer area for storing data, and the second storage control unit stores data, respectively. It has a second cache area for storing data and a second buffer area for storing data, and the first storage control unit uses the data stored in the first cache area as the second cache area. It is designed to be stored in the cache area of and duplicated.
前記ストレージシステムの制御方法は、 The control method of the storage system is
前記第1のストレージ制御部が、ホスト計算機からデータの書き込み命令を受信すると、前記書き込み命令の対象のデータを、前記第1のストレージ制御部の前記第1のキャッシュ領域に格納するとともに、前記第1のキャッシュ領域に格納したデータを前記第2のストレージ制御部の前記第2のキャッシュ領域に格納して二重化を行い、前記二重化が完了したら、前記ホスト計算機に、前記データの書き込みの終了を示す応答を送信する手順と、 When the first storage control unit receives a data write command from the host computer, the data subject to the write command is stored in the first cache area of the first storage control unit, and the first cache area is stored. The data stored in the cache area 1 is stored in the second cache area of the second storage control unit to perform duplication, and when the duplication is completed, the host computer indicates the end of writing the data. The procedure for sending a response and
前記第1のストレージ制御部が、前記書き込み命令の対象であるいずれかの前記キャッシュ領域に格納された二重化されたデータのうち前記ストレージドライブに格納されるデータについては、前記キャッシュ領域から読み出した前記書き込み命令の対象のデータに圧縮処理を行って前記第1のキャッシュ領域に格納せずに前記第1のバッファ領域に格納し、前記第1のバッファ領域に前記圧縮処理して格納されたデータに基づいてパリティを生成して前記第1のバッファ領域に格納し、前記第1のバッファ領域に格納したデータ及びパリティを読み出して前記ストレージドライブに送信して格納させる手順と、を含むことを特徴とするストレージシステムの制御方法。 The data stored in the storage drive among the duplicated data stored in the cache area, which is the target of the write command, is read from the cache area by the first storage control unit. The data to be written is not stored in the first cache area by compression processing, but is stored in the first buffer area, and the data stored in the first buffer area by compression processing is used. It is characterized by including a procedure of generating a parity based on the above and storing it in the first buffer area, reading out the data and the parity stored in the first buffer area, transmitting the parity to the storage drive, and storing the data. How to control the storage system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020185556A JP7065928B2 (en) | 2020-11-06 | 2020-11-06 | Storage system and its control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020185556A JP7065928B2 (en) | 2020-11-06 | 2020-11-06 | Storage system and its control method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018060662A Division JP6802209B2 (en) | 2018-03-27 | 2018-03-27 | Storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021039771A JP2021039771A (en) | 2021-03-11 |
JP7065928B2 true JP7065928B2 (en) | 2022-05-12 |
Family
ID=74848691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020185556A Active JP7065928B2 (en) | 2020-11-06 | 2020-11-06 | Storage system and its control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7065928B2 (en) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004318484A (en) | 2003-04-16 | 2004-11-11 | Hitachi Ltd | Storage device controller, and method for controlling storage device controller |
JP2005157815A (en) | 2003-11-26 | 2005-06-16 | Hitachi Ltd | Storage system and data caching method therefor |
JP2007293651A (en) | 2006-04-26 | 2007-11-08 | Hitachi Ltd | Storage system, remote copying, and management method for the same |
JP2009048497A (en) | 2007-08-21 | 2009-03-05 | Hitachi Ltd | Storage system having function of changing data storage method using a pair of logical volumes |
JP2010224845A (en) | 2009-03-24 | 2010-10-07 | Nec Corp | Storage device |
JP2015517697A (en) | 2012-05-23 | 2015-06-22 | 株式会社日立製作所 | Storage system and storage control method using storage area based on secondary storage as cache area |
WO2015181902A1 (en) | 2014-05-28 | 2015-12-03 | 株式会社日立製作所 | Computer system and computer system control method |
JP2016510440A (en) | 2013-03-18 | 2016-04-07 | 株式会社日立製作所 | Hybrid storage system and storage control method |
WO2017056219A1 (en) | 2015-09-30 | 2017-04-06 | 株式会社日立製作所 | Storage device, and method for controlling storage device |
-
2020
- 2020-11-06 JP JP2020185556A patent/JP7065928B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004318484A (en) | 2003-04-16 | 2004-11-11 | Hitachi Ltd | Storage device controller, and method for controlling storage device controller |
JP2005157815A (en) | 2003-11-26 | 2005-06-16 | Hitachi Ltd | Storage system and data caching method therefor |
JP2007293651A (en) | 2006-04-26 | 2007-11-08 | Hitachi Ltd | Storage system, remote copying, and management method for the same |
JP2009048497A (en) | 2007-08-21 | 2009-03-05 | Hitachi Ltd | Storage system having function of changing data storage method using a pair of logical volumes |
JP2010224845A (en) | 2009-03-24 | 2010-10-07 | Nec Corp | Storage device |
JP2015517697A (en) | 2012-05-23 | 2015-06-22 | 株式会社日立製作所 | Storage system and storage control method using storage area based on secondary storage as cache area |
JP2016510440A (en) | 2013-03-18 | 2016-04-07 | 株式会社日立製作所 | Hybrid storage system and storage control method |
WO2015181902A1 (en) | 2014-05-28 | 2015-12-03 | 株式会社日立製作所 | Computer system and computer system control method |
WO2017056219A1 (en) | 2015-09-30 | 2017-04-06 | 株式会社日立製作所 | Storage device, and method for controlling storage device |
Also Published As
Publication number | Publication date |
---|---|
JP2021039771A (en) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6802209B2 (en) | Storage system | |
JP5792313B2 (en) | Storage system | |
US7574577B2 (en) | Storage system, storage extent release method and storage apparatus | |
US8924659B2 (en) | Performance improvement in flash memory accesses | |
JP5816303B2 (en) | Storage system including flash memory and storage control method | |
EP2413245A1 (en) | Storage system provided with a plurality of flash packages | |
US11321229B2 (en) | System controller and system garbage collection method | |
JP5826949B2 (en) | Storage apparatus and data management method | |
CN110968262B (en) | Storage device and data storage method | |
US20210278989A1 (en) | Storage system and control method thereof | |
US20190243758A1 (en) | Storage control device and storage control method | |
EP3798852B1 (en) | System controller and system garbage recovery method | |
WO2015068208A1 (en) | System and method for controlling same | |
JP7065928B2 (en) | Storage system and its control method | |
JPWO2018235149A1 (en) | Storage apparatus and storage area management method | |
JP6643524B2 (en) | Storage system and storage control method | |
US8850087B2 (en) | Storage device and method for controlling the same | |
CN116483263A (en) | Storage device of storage system and storage system | |
WO2018150561A1 (en) | Storage system and storage control method | |
WO2018167950A1 (en) | Storage system and copying control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210525 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20210720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211019 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20211220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220204 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220426 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7065928 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |