JP7065928B2 - Storage system and its control method - Google Patents

Storage system and its control method Download PDF

Info

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
Application number
JP2020185556A
Other languages
Japanese (ja)
Other versions
JP2021039771A (en
Inventor
一樹 松上
義裕 吉井
伸光 高岡
智大 川口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020185556A priority Critical patent/JP7065928B2/en
Publication of JP2021039771A publication Critical patent/JP2021039771A/en
Application granted granted Critical
Publication of JP7065928B2 publication Critical patent/JP7065928B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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ボリュームに格納する。 Patent Document 1 discloses an information system capable of compressing data while maintaining the data writing speed from a host computer. According to Patent Document 1, a first volume that accepts data writing from a host computer in a storage device and a second volume that compresses and manages data on the first volume are provided. When the data writing from the host computer to the first volume is completed, the storage device returns a response to the host computer assuming that the writing process is completed. After that, the storage device compresses the data and stores it in the second volume at a timing asynchronous with the data writing from the host computer.

非特許文献1には、ホスト計算機から書き込まれた重複するデータを一つにまとめる重複排除処理について、ストレージ装置の稼働率に応じて処理契機を切り替えることで、レスポンスとスループットを両立させる方法について開示されている。 Non-Patent Document 1 discloses a method of achieving both response and throughput by switching the processing trigger according to the operating rate of the storage device for the deduplication processing that combines the duplicated data written from the host computer into one. Has been done.

例えば、非特許文献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 Document 1 states that "characteristics related to IOPS and latency differ depending on the method, and by using these properly, low latency of the dedup-back method and high IOPS of the dedup-through method can be realized. In this paper, in addition to the conventional dedup-through method that performs deduplication synchronously, the dedup-back method that performs deduplication asynchronously is compared and dedup. The high IOPS performance of the -through method and the high latency due to the overhead of synchronous deduplication processing, the low latency of the dedup-back method and the decrease in IOPS due to the increase in tail latency are clarified, and the combination of these two methods is high. We proposed a hybrid method that aims to achieve both IOPS and low latency. "

すなわち、非特許文献1によれば、ストレージ装置の稼働率が低い場合、ホスト計算機からのデータ書き込みを終えてから重複排除処理を実施することで応答時間を短くし、稼働率が高い場合はデータ書き込みと同時に重複排除処理を実施する。 That is, according to Non-Patent Document 1, when the operating rate of the storage device is low, the response time is shortened by performing the deduplication processing after the data writing from the host computer is completed, and when the operating rate is high, the data is recorded. Deduplication processing is performed at the same time as writing.

米国特許出願公開第2009/0144496号明細書US Patent Application Publication No. 2009/01444996

加藤 純,大辻 弘貴,鈴木 康介,佐藤 充,吉田 英司:「インメモリー重複除去における書き込み高速化」,研究報告コンピュータシステム・シンポジウム,2016年11月28日,p.51-59Jun Kato, Hiroki Otsuji, Kosuke Suzuki, Mitsuru Sato, Eiji Yoshida: "Speeding up writing in in-memory deduplication", Research Report Computer System Symposium, November 28, 2016, p. 51-59

データ書き込みにおいて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のストレージシステムが実行する、データ圧縮処理を伴うデータライト手順を示す説明図である。It is explanatory drawing which shows the data write procedure with data compression processing performed by the storage system of Example 1 of this invention. 本発明の実施例1のストレージ装置の構成を示すブロック図である。It is a block diagram which shows the structure of the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置が保持するVOL管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the configuration example of the VOL management table held by the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置が保持するプール構成管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the configuration example of the pool composition management table held by the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置が保持するRAID構成管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the configuration example of the RAID configuration management table held by the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置が保持するプール割当管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the configuration example of the pool allocation management table held by the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置が保持するドライブ割当管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the configuration example of the drive allocation management table held by the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置によって管理される論理記憶階層の構成例を示す説明図である。It is explanatory drawing which shows the structural example of the logical storage hierarchy managed by the storage apparatus of Embodiment 1 of this invention. 本発明の実施例1のストレージ装置が保持するメモリ割当管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the configuration example of the memory allocation management table held by the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置におけるメモリ割当の構成例を示す図である。It is a figure which shows the configuration example of the memory allocation in the storage apparatus of Example 1 of this invention. 本発明の実施例1のストレージ装置が実行するリード処理を示すフローチャートである。It is a flowchart which shows the read process which the storage apparatus of Embodiment 1 of this invention performs. 本発明の実施例1のストレージ装置が実行するライト処理を示すフローチャートである。It is a flowchart which shows the write process which performs the storage apparatus of Embodiment 1 of this invention. 本発明の実施例1のストレージ装置が実行するデステージ処理を示すフローチャートである。It is a flowchart which shows the destaging process which performs the storage apparatus of Embodiment 1 of this invention. 本発明の実施例1のストレージ装置が実行する、排他手順を変更したデステージ処理を示すフローチャートである。It is a flowchart which shows the destaging process which changed the exclusion procedure, which is executed by the storage apparatus of Embodiment 1 of this invention.

以下の説明では、「インターフェース部」は、ユーザインターフェース部と、通信インターフェース部とのうちの少なくとも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 "storage controller 22", and when each storage controller is distinguished, "storage controller 1-22A" and "storage controller" are used. It is described as "2_22B". Other elements (for example, cache area 203, buffer area 202, addresses 1100, 1101, 1104, etc.) are also described in the same manner.

また、以下の説明では、「ストレージシステム」は、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 storage system 100 of the first embodiment of the present invention.

ストレージシステム100は、ホスト計算機30及びストレージ装置11によって構成される。ホスト計算機30は、ネットワーク31を介してストレージ装置11に接続され、管理計算機(図示せず)によって管理される。ストレージ装置11は、1以上のボリューム(論理的な記憶領域)を有する。ホスト計算機30は、物理的な計算機でもよいし、物理的な計算機で実行される仮想的な計算機でもよい。ホスト計算機30は、ストレージシステムにおいて実行される仮想的な計算機でもよい。 The storage system 100 includes a host computer 30 and a storage device 11. The host computer 30 is connected to the storage device 11 via the network 31 and is managed by a management computer (not shown). The storage device 11 has one or more volumes (logical storage areas). The host computer 30 may be a physical computer or a virtual computer executed by the physical computer. The host computer 30 may be a virtual computer executed in the storage system.

ホスト計算機30からは、ストレージ装置11のストレージコントローラ1_22A又はストレージコントローラ2_22Bに対してデータの書き込みが行われる。このストレージシステム100において、ホスト計算機30からの圧縮処理を伴うデータのライト処理について説明する。 Data is written from the host computer 30 to the storage controller 1_22A or the storage controller 2_22B of the storage device 11. In this storage system 100, a data write process accompanied by a compression process from the host computer 30 will be described.

本実施例では、ホスト計算機30からのライト命令をストレージコントローラ1_22Aが受領した場合について示す。 In this embodiment, the case where the storage controller 1_22A receives the write instruction from the host computer 30 is shown.

具体例は、下記に示す通りである。 Specific examples are as shown below.

(S1)ストレージ装置11は、ホスト計算機30からネットワーク31を介してライト命令を受信する。ライト命令は、データとデータの割当先アドレス1100とを含んでいる。ライト命令を受信した場合に、S2以降のライト処理が開始する。 (S1) The storage device 11 receives a write command from the host computer 30 via the network 31. The write instruction includes the data and the data allocation destination address 1100. When the write command is received, the write process after S2 starts.

(S2)ストレージ装置11は、ライト命令に応答して、割当先アドレス1100が示すスロットの排他を確保する。これによって、そのスロット内のデータが他のライト命令によって更新されることを防ぐ。「スロット」とは、ボリューム(VOL)における領域である。具体的には、本実施例のスロットは、ドライブ29への書き込みが行われたか否か、及び、バッファ領域202への転送が行われたか否か等の管理の単位となる領域である。本実施例ではこの領域を「スロット」と呼ぶが、他の名称で呼ばれてもよい。 (S2) The storage device 11 secures the exclusion of the slot indicated by the allocation destination address 1100 in response to the write command. This prevents the data in that slot from being updated by other write instructions. A "slot" is an area in a volume (VOL). Specifically, the slot of this embodiment is an area that is a unit of management such as whether or not writing to the drive 29 has been performed and whether or not transfer to the buffer area 202 has been performed. In this embodiment, this area is referred to as a "slot", but it may be referred to by another name.

「スロットの排他を確保」とは、ホスト計算機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 host computer 30, and the host computer 30 recognizes that the exclusion has been secured. Information for is managed. The type of this information does not matter as long as it can be identified such as bitmap or time information. Further, in this embodiment, the "slot" is an area in the VOL (for example, TP-VOL which is a VOL according to thin provisioning), whereas the "data area" is an area allocated to the slot (for example, in the pool). The pool area, which is the area of.

(S3)ストレージ装置11のストレージコントローラ1_22A内、キャッシュ領域203Aにおいて、データの割当先アドレス1100に対応するアドレス1100Aにデータを格納する。 (S3) In the cache area 203A in the storage controller 1_22A of the storage device 11, data is stored in the address 1100A corresponding to the data allocation destination address 1100.

(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 address 1100B in the cache area 203B corresponding to the allocation destination address 1100, and returns a response to the storage controller 1_22A to complete the duplication in the storage device 11.

(S5)二重化を完了した後にストレージ装置11からホスト計算機30に対してネットワーク31を介してライト完了を応答する。なお、この時点でホスト計算機30はライトが完了したと認識する。 (S5) After the duplication is completed, the storage device 11 responds to the host computer 30 with the write completion via the network 31. At this point, the host computer 30 recognizes that the write is completed.

(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 address 1101A in the buffer area 202A. This process is executed until the data for the parity cycle is accumulated in the buffer area 202A.

また、後述するように、ストレージコントローラ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 address 1101A without compressing it, or it may perform processing other than compression (for example, deduplication or encryption) after the processing. Data may be stored in the address 1101A.

(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 address 1104A in the buffer area 202A.

(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 storage device 11 according to the first embodiment of the present invention.

ストレージ装置11は、1以上のストレージコントローラ22と、1以上のストレージコントローラ22に接続された複数のドライブ29とを有する。 The storage device 11 has one or more storage controllers 22 and a plurality of drives 29 connected to one or more storage controllers 22.

ストレージコントローラ22は、ホスト計算機30との通信を行うFE_I/F(フロントエンドインターフェースデバイス)23、ストレージ装置間での通信を行うためのストレージI/F(ストレージインターフェースデバイス)28、装置全体を制御するプロセッサ24、プロセッサ24で使用されるプログラム及び情報を格納するメモリ25、ドライブ29との通信を行うBE_I/F(バックエンドインターフェースデバイス)27、及びそれらをつなぐ内部ネットワーク26を備える。 The storage controller 22 controls the FE_I / F (front-end interface device) 23 for communicating with the host computer 30, the storage I / F (storage interface device) 28 for communicating between the storage devices, and the entire device. It includes a processor 24, a memory 25 for storing programs and information used in the processor 24, a BE_I / F (back-end interface device) 27 for communicating with a drive 29, and an internal network 26 for connecting them.

メモリ25は、プログラムを管理するプログラム領域201、データの転送及びコピーの時の一時的な保存領域であるバッファ領域202、ホスト計算機30からのライトデータ(ライト命令に応答して書き込まれるデータ)及びドライブ29からのリードデータ(リード命令に応答して読み出されたデータ)を一時的に格納するキャッシュ領域203、及び、種々のテーブルを格納するテーブル管理領域206を有する。 The memory 25 includes a program area 201 that manages the program, a buffer area 202 that is a temporary storage area at the time of data transfer and copying, write data (data written in response to a write command) from the host computer 30, and data. It has a cache area 203 for temporarily storing read data (data read in response to a read instruction) from the drive 29, and a table management area 206 for storing various tables.

キャッシュ領域203は、ホスト計算機30からのライトデータを一時的に格納する非圧縮データ格納領域204、及び、圧縮したデータを格納する圧縮データ格納領域205を有する。テーブル管理領域206は、VOLに関する情報を保持するVOL管理テーブル207、プールに関する情報を保持するプール構成管理テーブル208、RAID構成に関する情報を保持するRAID構成管理テーブル209、プール割当てに関する情報を保持するプール割当管理テーブル210、ドライブ割当てに関する情報を保持するドライブ割当管理テーブル211、及び、メモリ割当てに関する情報を保持するメモリ割当管理テーブル212を格納する。 The cache area 203 has an uncompressed data storage area 204 for temporarily storing write data from the host computer 30, and a compressed data storage area 205 for storing compressed data. The table management area 206 includes a VOL management table 207 that holds information about VOL, a pool configuration management table 208 that holds information about pools, a RADIUS configuration management table 209 that holds information about RADIUS configuration, and a pool that holds information about pool allocation. It stores the allocation management table 210, the drive allocation management table 211 that holds information about drive allocation, and the memory allocation management table 212 that holds information about memory allocation.

ドライブ29は、不揮発性のデータ記憶媒体を有する装置であり、例えばSSD(Solid State Drive)でもHDD(Hard Disk Drive)でもよい。複数のドライブ29が、複数のRAIDグループ(パリティグループとも呼ばれる)を構成してよい。各RAIDグループは、1以上のドライブ29から構成される。 The drive 29 is a device having a non-volatile data storage medium, and may be, for example, an SSD (Solid State Drive) or an HDD (Hard Disk Drive). A plurality of drives 29 may form a plurality of RAID groups (also referred to as parity groups). Each RAID group is composed of one or more drives 29.

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 memory 25 is an example of the memory unit. The processor 24 is an example of a processor unit.

<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 storage device 11 of the first embodiment of the present invention.

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 attribute 42, VOL capacity 43 and pool ID44. Hereinafter, one VOL (“target VOL” in the description of FIG. 3) will be taken as an example.

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 VOL capacity 43 indicates the capacity of the target VOL. The pool ID 44 is the ID of the pool associated with the target VOL.

プロセッサ24は、デステージ処理において、VOL管理テーブル207のVOL属性42を参照することで、データ圧縮を必要とするVOLか否かを判定できる。例えば、VOL属性42“圧縮有効”ならばデータ圧縮処理を行う。 In the destage processing, the processor 24 can determine whether or not the VOL requires data compression by referring to the VOL attribute 42 of the VOL management table 207. For example, if the VOL attribute 42 “compression is valid”, the data compression process is performed.

<構成管理テーブル>
図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 storage device 11 of the first embodiment of the present invention.

プールは、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 pool ID 51, RAID group ID 52, pool capacity 53, and pool usage capacity 54. Hereinafter, one pool (“target pool” in the description of FIG. 4) will be taken as an example.

プールID51は、対象プールのIDである。RAIDグループID52は、対象プールの基になっている1以上のRAIDグループの各々のIDである。プール容量53は、対象プールの容量を示す。プール使用容量54は、対象プールのプール容量のうちVOLに割り当てられている領域の総量を示す。 The pool ID 51 is the ID of the target pool. The RAID group ID 52 is the ID of each of the one or more RAID groups that are the basis of the target pool. The pool capacity 53 indicates the capacity of the target pool. The pool usage capacity 54 indicates the total amount of the area allocated to the VOL among the pool capacities of the target pool.

図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 storage device 11 of the first embodiment of the present invention.

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 group ID 61, RAID level 62, drive ID 63, drive type 64, capacity 65 and used capacity 66. Hereinafter, one RAID group (“target RAID group” in the description of FIG. 5) will be taken as an example.

RAIDグループID61は、対象RAIDグループのIDである。RAIDレベル62は、対象RAIDグループに適用されるRAIDアルゴリズムの種別を示す。ドライブID63は、対象RAIDグループを構成する1以上のドライブの各々のIDである。ドライブ種別64は、対象RAIDグループを構成するドライブの種別(例えばHDDかSSDか)を示す。容量65は、対象RAIDグループの容量を示す。使用容量66は、対象RAIDグループの容量のうちの使用されている容量を示す。 The RAID group ID 61 is the ID of the target RAID group. The RAID level 62 indicates the type of RAID algorithm applied to the target RAID group. The drive ID 63 is the ID of each of the one or more drives constituting the target RAID group. The drive type 64 indicates the type of drive (for example, HDD or SSD) that constitutes the target RAID group. Capacity 65 indicates the capacity of the target RAID group. The used capacity 66 indicates the used capacity among the capacities of the target RAID group.

<割当管理テーブル>
図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 storage device 11 of the first embodiment of the present invention.

プール割当管理テーブル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 address 72, pool ID73, pool address 74, pre-compression size 75, post-compression size 76, and compression ratio 77. Hereinafter, one VOL address (“target VOL address” in the description of FIG. 6) will be taken as an example.

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 VOL address 72 is a target VOL address. The pool ID 73 is an ID of the pool including the data area assigned to the target VOL address. The pool address 74 is an address (an address belonging to the pool) of the data area assigned to the target VOL address. The pre-compression size 75 indicates the pre-compression size of the data according to the write instruction specifying the target pool address. The compressed size 76 indicates the compressed size of the data according to the write instruction specifying the target pool address. The compression rate 77 is a value of post-compression size 76 / pre-compression size 75.

図7は、本発明の実施例1のストレージ装置11が保持するドライブ割当管理テーブル211の構成例を示す説明図である。 FIG. 7 is an explanatory diagram showing a configuration example of the drive allocation management table 211 held by the storage device 11 of the first embodiment of the present invention.

ドライブ割当管理テーブル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 pool ID 81, pool address 82, RAID group ID 83, drive ID 84 and drive address 85. Hereinafter, one pool address (“target pool address” in the description of FIG. 7) will be taken as an example.

プールID81は、対象プールアドレスが属するプールのIDである。プールアドレス82は、対象プールアドレスである。RAIDグループID83は、対象プールアドレスが示すデータ領域の基になっているRAIDグループのIDである。ドライブID84は、対象プールアドレスが示すデータ領域の基になっているドライブのIDである。ドライブアドレス85は、対象プールアドレスに対応したドライブアドレスである。 The pool ID 81 is the ID of the pool to which the target pool address belongs. The pool address 82 is a target pool address. The RAID group ID 83 is the ID of the RAID group that is the basis of the data area indicated by the target pool address. The drive ID 84 is the ID of the drive that is the basis of the data area indicated by the target pool address. The drive address 85 is a drive address corresponding to the target pool address.

<論理記憶階層>
図8は、本発明の実施例1のストレージ装置11によって管理される論理記憶階層の構成例を示す説明図である。
<Logical storage hierarchy>
FIG. 8 is an explanatory diagram showing a configuration example of a logical storage hierarchy managed by the storage device 11 of the first embodiment of the present invention.

VOL1000は、ホスト計算機30に提供される。また、コピー処理又は重複排除処理によって、VOL1000内の複数のスロットから1つのプールアドレスを指すことがあり、複数のVOLのスロットから一つのプールアドレスを指すこともある。図8の例では、異なる2つのスロット(VOLアドレス)1100及び1103が、同一のプールアドレス1101を指している。なお、VOL1000からプール1001の割当ては、プール割当管理テーブル210を基に管理される。また、プール1001からドライブアドレス空間1003(すなわちRAIDグループ1002を構成する複数のドライブ29が提供する複数のドライブアドレス空間)への割当ては、ドライブ割当管理テーブル211を基に管理される。 The VOL 1000 is provided to the host computer 30. Further, due to the copy process or the deduplication process, one pool address may be pointed to from a plurality of slots in the VOL1000, and one pool address may be pointed to from a plurality of VOL slots. In the example of FIG. 8, two different slots (VOL addresses) 1100 and 1103 point to the same pool address 1101. The allocation of the pool 1001 from the VOL 1000 is managed based on the pool allocation management table 210. Further, the allocation from the pool 1001 to the drive address space 1003 (that is, the plurality of drive address spaces provided by the plurality of drives 29 constituting the RAID group 1002) is managed based on the drive allocation management table 211.

<メモリ割当管理テーブル>
図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 storage device 11 of the first embodiment of the present invention.

メモリ割当管理テーブル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 address 92, buffer (BF) address 93, compressed VOL address 94, queue state 95, and BF transfer state 96. Hereinafter, one VOL address (“target VOL address” in the description of FIG. 9) will be taken as an example.

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 VOL address 92 is a target VOL address. The BF address 93 indicates the transfer destination BF address of the data written by designating the target VOL address. The compressed VOL address 94 indicates the transfer destination VOL address of the data that is not the target of transfer to the BF among the data written by designating the target VOL address. The queue state 95 indicates whether the data storage of the data written by designating the target VOL address in the drive 29 is completed. In FIG. 9, among the values of the queue state 95, “Dirty” indicates that the value has not been stored in the drive 29, and “Clean” indicates that the value has been stored in the drive 29. The BF transfer state 96 indicates whether or not the data written by designating the target VOL address is compressed and transferred to the BF. When the transfer to the BF is completed, the value of the BF transfer status 96 is "transferred", and when the transfer is not performed, the value is "none".

図10は、本発明の実施例1のストレージ装置11におけるメモリ割当の構成例を示す図である。 FIG. 10 is a diagram showing a configuration example of memory allocation in the storage device 11 of the first embodiment of the present invention.

キャッシュ領域203は、VOLに対応した仮想的なアドレス空間である非圧縮データ格納領域204、及び、プールアドレスに対応した圧縮データ格納領域205をストレージコントローラ22へ提供している。ホスト計算機30からストレージコントローラ22へのライト命令によって、VOLアドレスに対応した非圧縮データ格納領域204が割当てられる。ストレージコントローラ22は、ライト命令と非同期でデータを圧縮すると、圧縮したデータを、バッファ領域202、又は、キャッシュ領域203内圧縮データ格納領域205に、プールアドレスに対応させて格納する。 The cache area 203 provides the storage controller 22 with an uncompressed data storage area 204, which is a virtual address space corresponding to the VOL, and a compressed data storage area 205 corresponding to the pool address. The uncompressed data storage area 204 corresponding to the VOL address is allocated by the write command from the host computer 30 to the storage controller 22. When the data is compressed asynchronously with the write instruction, the storage controller 22 stores the compressed data in the buffer area 202 or the compressed data storage area 205 in the cache area 203 corresponding to the pool address.

図10の例では、ライトされたデータが格納されているVOL内のスロット1100が、プールアドレスに対応したバッファ領域202上の領域1101を指している。VOLアドレスとプールアドレスの割当ては、プール割当管理テーブル210で管理される。また、バッファ領域202への割当てはメモリ割当管理テーブル212のBFアドレス93で、圧縮データ格納領域への割当てはメモリ割当管理テーブル212の圧縮後VOLアドレス94で、それぞれ管理される。 In the example of FIG. 10, the slot 1100 in the VOL in which the written data is stored points to the area 1101 on the buffer area 202 corresponding to the pool address. The allocation of the VOL address and the pool address is managed by the pool allocation management table 210. The allocation to the buffer area 202 is managed by the BF address 93 of the memory allocation management table 212, and the allocation to the compressed data storage area is managed by the compressed VOL address 94 of the memory allocation management table 212.

バッファ領域202では、バッファ領域内のデータ量がパリティサイクルのサイズに達すると、プロセッサ24を介して非圧縮データ格納領域204とは対応しないパリティ1104が生成される。 In the buffer area 202, when the amount of data in the buffer area reaches the size of the parity cycle, a parity 1104 that does not correspond to the uncompressed data storage area 204 is generated via the processor 24.

以下、本実施例で行われる処理の例を説明する。 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 storage device 11 of the first embodiment of the present invention.

リード処理は、ホスト計算機30からネットワーク31を介してストレージ装置11がリード命令を受けた場合に開始する。リード命令では、例えば、仮想ID(例えば、仮想VOL_ID)、アドレス、及びデータサイズが指定される。 The read process starts when the storage device 11 receives a read command from the host computer 30 via the network 31. In the read instruction, for example, a virtual ID (for example, virtual VOL_ID), an address, and a data size are specified.

S1201で、プロセッサ24は、リード命令から特定されるスロットの排他を確保する。なお、スロット排他確保時に他の処理がスロットの排他を確保している場合、プロセッサ24は、一定の時間待ってから、S1201を行う。 In S1201, the processor 24 secures the exclusion of the slot specified from the read instruction. When the slot exclusion is secured by another process, the processor 24 waits for a certain period of time before performing S1201.

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 processor 24 determines whether or not the read data exists in the cache area 203. If the determination result of S1202 is true, the process proceeds to S1204. If the determination result of S1202 is false, the processor 24 transfers read data from the RAID group to the buffer area 202 in S1203. At this time, the processor 24 specifies the pool ID 73, the pool address 74, and the compressed size 76 of the pool allocation management table 210 from the VOL_ID and the VOL address specified by the host computer 30, and drives the drive ID 84 from the drive allocation management table 211. And the drive address 85 to specify the data storage location and data size.

S1204で、プロセッサ24はバッファ領域202上のリードデータが圧縮されているか否かを圧縮後サイズ76から判定し、圧縮済みのデータであればS1205において伸長し、圧縮データで無い場合はS1205をスキップする。 In S1204, the processor 24 determines whether or not the read data on the buffer area 202 is compressed from the compressed size 76, decompresses the compressed data in S1205, and skips S1205 if it is not compressed data. do.

S1206で、プロセッサ24はバッファ領域202上のリードデータをホスト計算機30に転送する。ホスト計算機30は、S1206のデータ転送が完了した時点でリード処理が終了したと認識する。 In S1206, the processor 24 transfers the read data on the buffer area 202 to the host computer 30. The host computer 30 recognizes that the read process is completed when the data transfer of S1206 is completed.

その後、プロセッサ24は、S1205で、確保していたスロット排他を解除する。 After that, the processor 24 releases the reserved slot exclusion in S1205.

<ライト処理>
図12は、本発明の実施例1のストレージ装置11が実行するライト処理を示すフローチャートである。
<Light processing>
FIG. 12 is a flowchart showing a write process executed by the storage device 11 of the first embodiment of the present invention.

ライト処理は、ホスト計算機30からストレージ装置11がライト命令を受信した場合に開始する。なお、以下の説明では、例えば、ストレージコントローラ2_22Aのプロセッサ24をプロセッサ24Aと記載するなど、ストレージコントローラ2_22A及びストレージコントローラ2_22Bに属するものをそれぞれ参照符号に付した「A」及び「B」によって区別する。 The write process starts when the storage device 11 receives a write command from the host computer 30. In the following description, for example, the processor 24 of the storage controller 2_22A is described as the processor 24A, and those belonging to the storage controller 2_22A and the storage controller 2_22B are distinguished by "A" and "B" attached to reference numerals, respectively. ..

ホスト計算機30からのライト命令には、割当て先アドレスが付随している。ストレージ装置11は、S1301において割当て先アドレスが示すスロットの排他を確保する。なお、スロット排他確保と同時に、プロセッサ24Aは、データのライト先とするキャッシュ領域203Aのスロット領域を割当てる。 An allocation destination address is attached to the write instruction from the host computer 30. The storage device 11 secures the exclusion of the slot indicated by the allocation destination address in S1301. At the same time as the slot exclusion is secured, the processor 24A allocates the slot area of the cache area 203A to which the data is written.

S1302で、プロセッサ24Aは、ホスト計算機30に対してライト処理の準備ができたことを示す「Ready」を応答する。プロセッサ24Aは、「Ready」を受け取ったホスト計算機30から、ライトデータを受ける。その後、S1303でプロセッサ24はライト命令と同期して圧縮処理を実行する必要があるかを判定する。なお、プロセッサ24Aの負荷、ストレージ装置11に対するライト量、及びライトデータのデータ長から、ストレージシステム100においてレスポンス性能を優先するケース1及びスループット性能を優先するケース2のいずれかへ分岐する。例えば、ストレージ装置11は、以下のような条件を保持し、プロセッサ24Aは、ライト命令を受信すると、保持している条件に基づいてレスポンス性能及びスループット性能のいずれを優先するかを判定してもよい。 In S1302, the processor 24A responds to the host computer 30 with a "Ready" indicating that the write process is ready. The processor 24A receives write data from the host computer 30 that has received "Ready". After that, in S1303, the processor 24 determines whether it is necessary to execute the compression process in synchronization with the write instruction. The load of the processor 24A, the amount of write to the storage device 11, and the data length of the write data are branched into either case 1 in which response performance is prioritized or case 2 in which throughput performance is prioritized in the storage system 100. For example, the storage device 11 holds the following conditions, and when the processor 24A receives a write instruction, it may determine whether to prioritize the response performance or the throughput performance based on the holding conditions. good.

<ケース1>レスポンス優先
レスポンス性能を優先する条件として以下のものがある。例えば、以下の複数の条件のうちいずれか一つのみ、又は、複数の組合せに基づいて、レスポンス性能を優先するか否かが判定されてもよい。後述するスループット性能に関する条件についても同様である。
<Case 1> Response priority There are the following conditions for prioritizing response performance. For example, it may be determined whether or not the response performance is prioritized based on only one of the following plurality of conditions or a plurality of combinations. The same applies to the conditions related to the throughput performance described later.

(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 storage device 11. For example, it may be determined that the load is low when the number of IO instructions per unit time or the amount of data written / read by the IO instruction is less than a predetermined reference.

上記(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 VOL attribute 42 of the VOL management table 207 corresponding to the VOL to which the write data is written is not "compression enabled". good.

例えばプロセッサ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 BF address 93 and the compressed VOL address 94 corresponding to the VOL address of the slot assigned as the data write destination, and the processor 24A updates the queue state 95 to “Dirty”.

次に、S1309において、ストレージ装置11から、ネットワーク31を介してホスト計算機30に対してライト処理が完了したとして完了応答を返却する。完了応答を返却すると、S1310においてストレージ装置11は確保していたスロットの排他を解放してライト処理を終了する。 Next, in S1309, the storage device 11 returns a completion response to the host computer 30 via the network 31 assuming that the write process is completed. When the completion response is returned, the storage device 11 releases the exclusion of the slot reserved in S1310 and ends the write process.

<ケース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 storage device 11 as in the above (1). For example, when the number of IO instructions per unit time is larger than a predetermined standard, it may be determined that the load is high.

上記(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 processor 24 has a high load and priority is given to the throughput performance, it is true in the determination of S1303. In this case, the processor 24A transfers the write data received in S1304 to the buffer area 202A. Next, in S1305, the processor 24A compresses the data in the buffer.

なお、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 processor 24 may perform processing other than compression, for example, deduplication, encryption, redundancy, etc., and store the processed data in the buffer area 202A. The same applies to S1411 in FIG. 14, which will be described later.

次に、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 compressed VOL address 94 corresponding to the VOL address of the slot assigned as the data write destination is updated. Further, there is no value of the BF address 93, and the processor 24A updates the queue state 95 to "Dirty".

次に、S1309において、ストレージ装置11から、ネットワーク31を介してホスト計算機30に対してライト処理が完了したとして完了応答を返却する。完了応答を返却すると、S1310においてストレージ装置11は確保していたスロットの排他を解放してライト処理を終了する。 Next, in S1309, the storage device 11 returns a completion response to the host computer 30 via the network 31 assuming that the write process is completed. When the completion response is returned, the storage device 11 releases the exclusion of the slot reserved in S1310 and ends the write process.

<デステージ処理>
図13は、本発明の実施例1のストレージ装置11が実行するデステージ処理を示すフローチャートである。
<Destage processing>
FIG. 13 is a flowchart showing a destage process executed by the storage device 11 of the first embodiment of the present invention.

デステージ処理は、ホスト計算機30からストレージ装置11へのライト命令が完了した後、非同期的に行われる。なお、デステージは、ライト命令が完了したことを契機として開始されても良いし、周期的に起動しても良いし、キャッシュ領域203の消費量などからライト量を判定して選択しても良い。 The destage processing is performed asynchronously after the write instruction from the host computer 30 to the storage device 11 is completed. The destage may be started when the write command is completed, may be started periodically, or the write amount may be determined and selected from the consumption amount of the cache area 203 or the like. good.

デステージ処理が開始されると、ストレージ装置11は、S1401において、デステージ処理の対象領域がキャッシュ領域上の圧縮データ格納領域205に属しているか否かを判定する。判定が真の場合(すなわち対象領域が圧縮データ格納領域205に属している場合)はケース2-1、判定が偽の場合(すなわち対象領域が非圧縮データ格納領域204に属している場合)はケース1-1の処理が行われる。 When the destage processing is started, the storage device 11 determines in S1401 whether or not the target area of the destage processing belongs to the compressed data storage area 205 on the cache area. Case 2-1 when the determination is true (that is, when the target area belongs to the compressed data storage area 205), and when the determination is false (that is, when the target area belongs to the uncompressed data storage area 204). The processing of case 1-1 is performed.

<ケース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 data storage area 205 in the cache area 203. In S1402, the processor 24A selects data to be destaged from the compressed data storage area 205. Normally, a data string (striped column) in which data for the parity cycle is arranged is selected, and destage is performed for it.

S1403で、プロセッサ24は、デステージするデータが属するスロットの排他を確保する。排他を確保した後、プロセッサ24Aは、S1404で対象のデータ列からパリティデータを生成する。S1405で、プロセッサ24Aは、対象のデータ列及び生成したパリティデータをドライブに書き出す。S1406において、プロセッサ24Aは、メモリ割当管理テーブル212を更新する。なお、本ケースにおいて、キュー状態95が“Clean”に更新される。S1407で、プロセッサ24Aは、デステージされた範囲のスロットの排他を解放し、処理を終了する。 In S1403, the processor 24 ensures the exclusion of the slot to which the destaged data belongs. After ensuring the exclusion, the processor 24A generates parity data from the target data string in S1404. In S1405, the processor 24A writes the target data string and the generated parity data to the drive. In S1406, the processor 24A updates the memory allocation management table 212. In this case, the queue state 95 is updated to "Clean". In S1407, the processor 24A releases the exclusion of the destaged range of slots and ends the process.

<ケース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 data storage area 204 in the cache area 203. In S1408, the processor 24A selects the data to be destaged from the data belonging to the slot whose queue state 95 is “Dirty” among the data stored in the uncompressed data storage area 204. Normally, a data string (striped column) in which data for the parity cycle is arranged is selected, and destage is performed for it.

S1409で、プロセッサ24は、デステージするデータが属するスロットの排他を確保する。なお、図13に示すデステージ処理が、図12に示したライト処理の終了を契機として(すなわちライト処理の直後に)行われる場合には、S1310及びS1409を省略してもよい。 In S1409, the processor 24 ensures the exclusion of the slot to which the destaged data belongs. When the destage process shown in FIG. 13 is performed with the end of the write process shown in FIG. 12 as a trigger (that is, immediately after the write process), S1310 and S1409 may be omitted.

排他を確保した後、プロセッサ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 buffer area 202. At the time of transfer, the processor 24 allocates the BF address 93 of the memory allocation management table 212 and the compressed VOL address 94. Further, the processor 24A updates the BF transfer state 96 to "transferred" after the transfer to the buffer area 202 is completed. Since it is clear that the VOL address 94 after compression is allocated for the parity cycle, the number of times the mapping information is updated can be reduced by allocating the area for the parity cycle in advance.

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 buffer area 202, and the compressed data may be stored in the buffer area 202), and the compressed data may be stored in the buffer area 202 after transfer. You may go.

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 processor 24 returns to S1408 to additionally select data to be destaged. When the data for the parity cycle is accumulated in the buffer area 202, the determination in S1412 is regarded as true and the process proceeds to S1413. Since the compressed data size has a variable length, the data in the buffer area 202 is not always aligned for the parity cycle, so that the processing may proceed to S1413 before the parity cycle is exceeded.

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 buffer area 202. In S1414, the processor 24A writes the target data string and the generated parity data to the drive 29 constituting the RAID group. In S1415, the processor 24A confirms the update of the memory allocation management table 212. In this case, the queue state 95 is updated to "Clean". In S1407, the processor 24A releases the exclusion of the destaged range of slots and ends the process.

上記の例では、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 drive 29 regardless of whether or not the drive 29 constitutes RAID, the processor 24A determines that the amount of compressed data in the buffer in S1412 is the predetermined amount. Determine if the quantity has been reached. The data amount of the parity cycle in S1412 of this embodiment is an example of the above-mentioned predetermined data amount.

なお、プロセッサ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 VOL attribute 42 to which the write data is written is not compressed, the uncompressed data is stored in the cache area 203A. In this case, the determination of S1401 is false, but since the data is not compressed, S1402 to S1406 are executed.

上記の例では、スループット性能が優先される場合に、ライト処理時には圧縮後のデータがキャッシュ領域203で二重化された時点でホスト計算機30に応答が返され、デステージ処理ではデータの圧縮が不要となる。これによって、レスポンス性能は低下するが、デステージ処理の際のキャッシュアクセスが削減されるため、スループット性能が向上する。このような処理は一例であり、スループット性能が優先される場合に、ライト処理の際にさらに多くの処理が行われてもよい。 In the above example, when throughput performance is prioritized, a response is returned to the host computer 30 when the compressed data is duplicated in the cache area 203 during write processing, and data compression is not required in destage processing. Become. As a result, the response performance is lowered, but the cache access during the destage processing is reduced, so that the throughput performance is improved. Such processing is an example, and when throughput performance is prioritized, more processing may be performed during write processing.

例えば、プロセッサ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 drive 29 is completed (S1414) until the mapping information is updated (S1415). , Slot exclusion is ensured (S1407). By ensuring exclusion for a long time in this way, troubles such as the inability to execute necessary IO instructions may occur. In order to avoid such troubles, the following case 1-2 is shown as an example in which the exclusion procedure in case 1-1 is changed.

図14は、本発明の実施例1のストレージ装置11が実行する、排他手順を変更したデステージ処理を示すフローチャートである。 FIG. 14 is a flowchart showing a destage process in which the exclusion procedure is changed, which is executed by the storage device 11 of the first embodiment of the present invention.

<ケース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 storage device 11 makes the same determination as in S1401 of FIG. If the determination in S1501 is true, destage processing (S1502 to S1507) is performed on the compressed data storage area 205 in the cache area 203. Since these processes are the same as those of S1402 to S1407 in FIG. 13, the description thereof will be omitted.

S1501の判定が偽の場合、キャッシュ領域203内の非圧縮データ格納領域204に対してデステージ処理が行われる(S1508~S1519)。S1508では、プロセッサ24は、非圧縮データ格納領域204に格納されているデータのうち、キュー状態95が“Dirty”であるスロットに属するデータからデステージ処理を実行するデータを選択する。通常、パリティサイクル分のデータが並ぶデータ列(ストライプ列)が選択され、それに対してデステージが行われる。 If the determination in S1501 is false, destage processing is performed on the uncompressed data storage area 204 in the cache area 203 (S1508 to S1519). In S1508, the processor 24 selects the data to be destaged from the data belonging to the slot whose queue state 95 is “Dirty” among the data stored in the uncompressed data storage area 204. Normally, a data string (striped column) in which data for the parity cycle is arranged is selected, and destage is performed for it.

先述のケース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 host computer 30 will occur in the exclusion range, resulting in a destage wait. Therefore, the processor 24 secures the exclusion of the slot to which the data to be destaged in S1509 belongs, and then performs the buffer transfer of S1510 and the compression process of S1511. Then, the processor 24 updates the BF transfer state 96 of the memory allocation management table 212 to “transferred” in S1512 after the compression process is completed. When the update is completed, the processor 24 releases the slot exclusion in S1513.

以後、プロセッサ24は、S1514のドライブ転送可否の判定、S1515のパリティ生成、S1516のドライブ転送を、それぞれケース1-1のS1412、S1413及びS1414と同様に行う。 After that, the processor 24 performs the determination of whether or not the drive transfer of S1514 is possible, the parity generation of S1515, and the drive transfer of S1516 in the same manner as in S1412, S1413, and S1414 of Case 1-1, respectively.

S1517において、プロセッサ24は、デステージ範囲のスロット排他を再度確保し、S1518でメモリ割当管理テーブル212のキュー状態95を“Clean”に更新する。 In S1517, the processor 24 secures slot exclusion in the destage range again, and updates the queue state 95 of the memory allocation management table 212 to “Clean” in S1518.

なお、S1517までの間に、上記のデステージ範囲のスロットに対してホスト計算機30からの更新ライトが発生した場合、プロセッサ24は、S1308においてメモリ割当管理テーブル212のBF転送状態96を“無し”に更新する。この場合、S1518でプロセッサ24がキュー状態95を更新する際にBF転送状態96が切り替わったことを判定することによって、更新ライトが発生したことに気づくことが出来る。 If an update write from the host computer 30 occurs for the slot in the destage range up to S1517, the processor 24 sets the BF transfer state 96 of the memory allocation management table 212 to “none” in S1308. Update to. In this case, it is possible to notice that the update write has occurred by determining that the BF transfer state 96 has been switched when the processor 24 updates the queue state 95 in S1518.

なお、更新ライトの発生に気づいた(すなわちS1512で“転送済”に更新したBF転送状態96がS1517の時点で“無し”となっていた)場合、プロセッサ24は、処理をやり直すか又は対象箇所のマッピング情報更新をスキップする。具体的には、プロセッサ24は、S1518に進まずにS1508に戻り、更新ライトが行われたスロットを対象とするデステージ処理をやり直してもよい。あるいは、プロセッサは、そのままS1508に進み、更新ライトが行われたスロットのキュー状態95を“Clean”に更新せずに、S1519に進んでもよい。その場合、当該スロットは次回以降のデステージ処理の対象となる。 If the occurrence of the update write is noticed (that is, the BF transfer state 96 updated to "transferred" in S1512 is "none" at the time of S1517), the processor 24 either redoes the process or the target location. Skip the mapping information update. Specifically, the processor 24 may return to S1508 without proceeding to S1518, and may redo the destage processing for the slot in which the update write is performed. Alternatively, the processor may proceed to S1508 as it is, and proceed to S1519 without updating the queue state 95 of the slot in which the update write is performed to “Clean”. In that case, the slot is subject to destage processing from the next time onward.

最後にS1519で、プロセッサ24は、デステージされた範囲のスロットの排他を解放し、処理を終了する。 Finally, in S1519, the processor 24 releases the exclusion of the destaged range of slots and ends the process.

以上の本発明の実施例によれば、キャッシュ領域に格納されたデータをデステージする際に、圧縮処理から記憶デバイス(ドライブ)への格納までを一括で行うことによって、圧縮データの二重化処理が省略される。キャッシュ領域における圧縮データの二重化が不要になることで、キャッシュアクセス量を削減し、データ書き込みの最大速度が向上できる。 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 Storage system 11 Storage device 22, 22A, 22B Storage controller 202 Buffer area 203, 203A, 203B Cache area 204 Uncompressed data storage area 205 Compressed data storage area 29 Drive 30 Host computer 31 Network

Claims (3)

第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 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に記載のストレージシステムであって、The storage system according to claim 1.
前記第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.
ストレージシステムの制御方法であって、It ’s a storage system control method.
前記ストレージシステムは、第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.
JP2020185556A 2020-11-06 2020-11-06 Storage system and its control method Active JP7065928B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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