JP4808747B2 - Storage subsystem - Google Patents

Storage subsystem Download PDF

Info

Publication number
JP4808747B2
JP4808747B2 JP2008145288A JP2008145288A JP4808747B2 JP 4808747 B2 JP4808747 B2 JP 4808747B2 JP 2008145288 A JP2008145288 A JP 2008145288A JP 2008145288 A JP2008145288 A JP 2008145288A JP 4808747 B2 JP4808747 B2 JP 4808747B2
Authority
JP
Japan
Prior art keywords
cache
queue
clean
counter
clpr
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.)
Expired - Fee Related
Application number
JP2008145288A
Other languages
Japanese (ja)
Other versions
JP2008269636A (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 JP2008145288A priority Critical patent/JP4808747B2/en
Publication of JP2008269636A publication Critical patent/JP2008269636A/en
Application granted granted Critical
Publication of JP4808747B2 publication Critical patent/JP4808747B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ストレージサブシステム及びストレージサブシステムの制御方法に関する。   The present invention relates to a storage subsystem and a storage subsystem control method.

ストレージサブシステムは、ホストコンピュータに対して大容量かつ高性能のストレージサービスを提供可能である。ストレージサブシステムでは、例えば、多数のディスクドライブをアレイ状に配設し、RAID(Redundant Array of Independent Inexpensive Disks)に基づく記憶領域を構築している。各ディスクドライブが有する物理的な記憶領域上には、論理的な記憶領域である論理ボリュームが形成されている。論理ボリュームには、LUN(Logical Unit Number)が予め対応付けられている。ホストコンピュータは、LUNやブロックアドレス等を特定することにより、ストレージサブシステムに対して所定形式の書込みコマンド又は読出しコマンドを発行する。これにより、ホストコンピュータは、ストレージサブシステムに対して所望のデータの読み書きを行うことができる。   The storage subsystem can provide a large capacity and high performance storage service to the host computer. In the storage subsystem, for example, a large number of disk drives are arranged in an array, and a storage area based on RAID (Redundant Array of Independent Inexpensive Disks) is constructed. A logical volume, which is a logical storage area, is formed on the physical storage area of each disk drive. A LUN (Logical Unit Number) is associated with a logical volume in advance. The host computer issues a predetermined format write command or read command to the storage subsystem by specifying the LUN, block address, and the like. As a result, the host computer can read / write desired data from / to the storage subsystem.

ストレージサブシステムには複数のホストコンピュータを接続可能である。あるホストコンピュータまたはアプリケーションプログラムが管理するデータ群を、他のホストコンピュータまたはアプリケーションプログラムから読み書き可能である場合、不都合を生じることがある。そこで、例えば、ゾーニングやLUNマスキング等のようなアクセス制御技術が用いられる。ゾーニングとは、ストレージサブシステムに1つまたは複数のゾーンを設定し、ゾーンに属する特定の通信ポートやWWN(World Wide Name)のみにデータ転送を許可する技術である。LUNマスキングとは、特定のホストコンピュータに対して特定のLUNへのアクセスを許可する技術である。   A plurality of host computers can be connected to the storage subsystem. When a group of data managed by a certain host computer or application program can be read and written from another host computer or application program, inconvenience may occur. Therefore, for example, an access control technique such as zoning or LUN masking is used. Zoning is a technology in which one or a plurality of zones are set in the storage subsystem, and data transfer is permitted only to specific communication ports and WWNs (World Wide Names) belonging to the zones. LUN masking is a technology that allows a specific host computer to access a specific LUN.

ところで、ホストコンピュータとディスクドライブとの間のデータ授受は、キャッシュメモリを介して行われる。ホストコンピュータからライトコマンドが出力されると、例えば、データはいったんキャッシュメモリに保存された後で、ディスクドライブに書き込まれる。また、ホストコンピュータからリードコマンドが出力されると、例えば、ディスクドライブから読み出されたデータは、キャッシュメモリを介してホストコンピュータに提供される。そこで、ディスクドライブへのキャッシュメモリ割当量を適切に配分させる技術も知られている(特許文献1)。
特開平4−264940号公報
Incidentally, data exchange between the host computer and the disk drive is performed via a cache memory. When a write command is output from the host computer, for example, data is once stored in a cache memory and then written to a disk drive. When a read command is output from the host computer, for example, data read from the disk drive is provided to the host computer via the cache memory. Therefore, a technique for appropriately allocating the cache memory allocation amount to the disk drive is also known (Patent Document 1).
JP-A-4-264940

従来のゾーニングやLUNマスキングにより、ホストコンピュータからストレージサブシステムへのアクセス制限を設定することができる。しかし、従来技術では、論理ボリュームへの単純なアクセス制限が可能となるだけで、ストレージサブシステムが有する資源の分割管理を実現するものではないから、使い勝手が悪い。複数ユーザによってストレージサブシステムが共同で使用されている場合に、例えば、あるユーザが多量の入出力要求(IO要求)を出すと、キャッシュメモリの多くの領域がこの要求の処理のために使用される。従って、他のユーザからの入出力処理に十分なキャッシュメモリを使用することができなくなり、サブシステム全体としてのサービス性能が低下する。つまり、あるユーザへのサービスのために、他のユーザへのサービスに影響が及ぶ。   Access restrictions from the host computer to the storage subsystem can be set by conventional zoning or LUN masking. However, the conventional technology only allows simple access restriction to the logical volume, and does not realize the division management of the resources of the storage subsystem. When the storage subsystem is used jointly by multiple users, for example, if a user issues a large number of I / O requests (IO requests), many areas of cache memory are used to process this request. The Therefore, it becomes impossible to use a cache memory sufficient for input / output processing from other users, and the service performance of the entire subsystem is lowered. In other words, the service to one user affects the service to another user.

なお、上記特許文献では、各記憶装置にそれぞれキャッシュメモリを割り当てているが、これはキャッシュメモリに記憶されたデータを効率的に記憶装置に書き込むためのものであり、複数ユーザに提供するために資源(キャッシュメモリ)の分割管理を行うものではない。   In the above patent document, a cache memory is allocated to each storage device, but this is for efficiently writing data stored in the cache memory to the storage device, and for providing it to a plurality of users. It does not perform resource (cache memory) division management.

そこで、本発明の一つの目的は、複数のユーザにそれぞれキャッシュ領域を割り当てて共同で使用させることができ、あるユーザへ提供するサービスのために他のユーザへ影響が及ぶのを低減させることができるストレージサブシステム及びストレージサブシステムの制御方法を提供することにある。本発明の一つの目的は、複数ユーザに資源を柔軟に割り当てることができ、かつ、より少ない情報量で、各ユーザの管理範囲が互いに影響しないように管理可能なストレージサブシステム及びストレージサブシステムの制御方法を提供することにある。本発明の一つの目的は、キャッシュメモリの管理単位に応じて管理情報を構成することにより、キャッシュ資源を論理的に分割して使用可能なストレージサブシステム及びストレージサブシステムの制御方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。   Accordingly, one object of the present invention is to allocate a cache area to each of a plurality of users so that they can be used together, and to reduce the influence on other users due to the service provided to a certain user. It is an object of the present invention to provide a storage subsystem and a storage subsystem control method that can be used. One object of the present invention is to provide a storage subsystem and a storage subsystem that can flexibly allocate resources to a plurality of users and that can be managed so that the management range of each user does not affect each other with a smaller amount of information. It is to provide a control method. One object of the present invention is to provide a storage subsystem that can logically divide and use cache resources by configuring management information according to the management unit of the cache memory, and a storage subsystem control method. It is in. Other objects of the present invention will become clear from the description of the embodiments described later.

上記課題を解決すべく、本発明に従うストレージサブシステムは、上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、各チャネルアダプタ及び各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、キャッシュメモリを論理的に分割して構成される複数のキャッシュ分割領域と、各キャッシュ分割領域を管理するための管理情報を記憶する制御メモリと、を備えている。そして、管理情報は、各キャッシュ分割領域毎にそれぞれ設けられる分割管理情報と、各キャッシュ分割領域の全体に適用される共通管理情報とから構成される。   In order to solve the above problems, a storage subsystem according to the present invention includes a plurality of channel adapters that respectively control data exchange with a host device, a plurality of storage device groups that respectively provide logical storage areas, and each storage device A plurality of disk adapters that respectively control data exchange with the group, a cache memory that is used by each channel adapter and each disk adapter, a plurality of cache division regions that are configured by logically dividing the cache memory, And a control memory for storing management information for managing each cache division area. The management information includes partition management information provided for each cache partition area and common management information applied to the entire cache partition area.

キャッシュメモリと制御メモリとは、それぞれ別々のメモリ基板として実装することもできるし、両者を混載したメモリ基板を用いてもよい。また、メモリのある領域をキャッシュメモリとして使用し、他の領域を制御メモリとして使用してもよい。キャッシュメモリは、上位装置と記憶デバイス群との間で授受されるデータを一時的に(あるいは長期間にわたって)記憶するために用いられる。キャッシュメモリは、複数のキャッシュ分割領域に論理的に分割される。各キャッシュ分割領域は、管理情報によってそれぞれ独立して管理される。各キャッシュ分割領域は、例えば、各チャネルアダプタ毎にそれぞれ設ける(割り当てる)ことができる。そして、各キャッシュ分割領域は、例えば、それぞれ異なるユーザにより使用可能である。管理情報は、分割管理情報と共通管理情報とから構成される。分割管理情報は、各キャッシュ分割領域毎にそれぞれ設けられる情報である。共通管理情報は、全てのキャッシュ分割領域に適用される情報である。分割管理情報と共通管理情報とから管理情報を構成することにより、制御メモリの記憶資源を効率的に使用して、複数のキャッシュ分割領域をそれぞれ個別に使用可能である。   The cache memory and the control memory can be mounted as separate memory substrates, respectively, or a memory substrate in which both are mounted may be used. Further, an area with a memory may be used as a cache memory, and another area may be used as a control memory. The cache memory is used for temporarily (or over a long period of time) storing data exchanged between the host device and the storage device group. The cache memory is logically divided into a plurality of cache divided areas. Each cache division area is managed independently by management information. Each cache division area can be provided (assigned) for each channel adapter, for example. Each cache division area can be used by different users, for example. The management information is composed of divided management information and common management information. The partition management information is information provided for each cache partition area. The common management information is information applied to all cache division areas. By configuring the management information from the divided management information and the common management information, it is possible to use the plurality of cache divided areas individually by efficiently using the storage resources of the control memory.

各分割管理情報及び共通管理情報は、キャッシュ管理単位の属性に基づいて設定可能である。キャッシュ管理単位としては、例えば、スロットやセグメント等を挙げることができる。1つのスロットは、少なくとも1つ以上のセグメントから構成可能であり、1つのセグメントは、例えば、16KB程度のデータサイズを有する。キャッシュ管理単位の属性としては、例えば、フリー状態、ダーティ状態、クリーン状態を挙げることができる。フリー状態とは、キャッシュ管理単位が未使用である状態を示す。ダーティ状態とは、キャッシュ管理単位に格納されているデータが記憶デバイスに書き込まれていない状態を示す。クリーン状態とは、キャッシュ管理単位に格納されているデータが記憶デバイスに書込み済である状態を示す。キャッシュ管理単位の属性によっては、各キャッシュ分割領域毎にそれぞれ個別の管理情報を設ける方が好ましい場合がある。逆に、キャッシュ管理単位の属性によっては、全てのキャッシュ分割領域に適用可能な管理情報もある。   Each division management information and common management information can be set based on an attribute of a cache management unit. Examples of the cache management unit include a slot and a segment. One slot can be composed of at least one segment, and one segment has a data size of about 16 KB, for example. Examples of the attribute of the cache management unit include a free state, a dirty state, and a clean state. The free state indicates a state where the cache management unit is unused. The dirty state indicates a state in which data stored in the cache management unit is not written to the storage device. The clean state indicates a state in which data stored in the cache management unit has been written to the storage device. Depending on the attribute of the cache management unit, it may be preferable to provide individual management information for each cache division area. On the contrary, depending on the attribute of the cache management unit, there is also management information applicable to all cache division areas.

例えば、管理情報が、複数種類のサブ管理情報から構成される場合は、一部のサブ管理情報を各キャッシュ分割領域にそれぞれ分割して設け、残りのサブ管理情報を全てのキャッシュ分割領域に適用させることができる。この場合、サブ管理情報のうちいずれを分割管理情報として使用し、いずれを共通管理情報として使用するかは、キャッシュ管理単位の属性に基づいて決定することができる。   For example, if the management information is composed of multiple types of sub-management information, a part of the sub-management information is divided into each cache partition area, and the remaining sub-management information is applied to all cache partition areas. Can be made. In this case, which of the sub management information is used as the divided management information and which is used as the common management information can be determined based on the attribute of the cache management unit.

例えば、管理情報は、複数種類のキューと、これら各キューにそれぞれ関連付けられたカウンタとを含んで構成可能である。この場合、キャッシュ管理単位の属性に基づいて、各キュー及び各カウンタの一部を各キャッシュ分割領域毎にそれぞれ設けることにより各分割管理情報を構成することができる。そして、各キューの残り及び各カウンタの残りを共通管理情報として使用可能である。「キャッシュ管理単位の属性に基づいて」とは、「キュー(及びカウンタ)の属性に基づいて」と言い換えることも可能である。   For example, the management information can be configured to include a plurality of types of queues and counters associated with the respective queues. In this case, each division management information can be configured by providing a part of each queue and each counter for each cache division area based on the attribute of the cache management unit. The remainder of each queue and the remainder of each counter can be used as common management information. “Based on the attribute of the cache management unit” can be rephrased as “based on the attribute of the queue (and counter)”.

ここで、互いに関連付けられているキューとカウンタのうち、一方は分割管理情報を構成し、他方は共通管理情報として使用することもできる。即ち、例えば、互いに関連付けられているキューとカウンタのうち、カウンタのみを分割して各キャッシュ分割領域にそれぞれ割り当てることができる。   Here, one of the queues and the counters associated with each other can constitute division management information, and the other can be used as common management information. That is, for example, among the queues and counters associated with each other, only the counter can be divided and assigned to each cache division area.

さらに、各キューにはそれぞれキュー管理テーブルを関連付けることができる。そして、分割管理情報を構成するキューに関連付けられるキュー管理テーブルは、各キャッシュ分割領域毎にそれぞれ設けることができる。即ち、キューとキュー管理テーブルとは常に一体的に使用されるもので、キューが各キャッシュ分割領域毎にそれぞれ設けられる場合は、キュー管理テーブルも各キャッシュ分割領域にそれぞれ設けられる。   Furthermore, a queue management table can be associated with each queue. A queue management table associated with the queues constituting the partition management information can be provided for each cache partition area. That is, the queue and the queue management table are always used integrally, and when a queue is provided for each cache partition area, the queue management table is also provided for each cache partition area.

管理情報は、未使用状態のキャッシュ管理単位が接続されるフリーキュー及びこのフリーキューに関連付けられるフリーキューカウンタと、記憶デバイス群に反映前のダーティ状態のデータを格納するキャッシュ管理単位が接続されるダーティキュー及びこのダーティキューに関連付けられるダーティキューカウンタと、記憶デバイス群に反映済のクリーン状態のデータを格納するキャッシュ管理単位が接続されるクリーンキュー及びこのクリーンキューに関連付けられるクリーンキューカウンタと、使用中のキャッシュ管理単位の総量をカウントする使用中カウンタとを含んで構成可能である。そして、フリーキューカウンタと、クリーンキューと、クリーンキューカウンタ及び使用中カウンタは、分割管理情報として、各キャッシュ分割領域毎にそれぞれ設けることができる。また、フリーキューと、ダーティキュー及びダーティキューカウンタは、共通管理情報として使用することができる。   Management information is connected to a free queue to which an unused cache management unit is connected, a free queue counter associated with the free queue, and a cache management unit for storing dirty state data before reflection in the storage device group. Use of a dirty queue and a dirty queue counter associated with the dirty queue, a clean queue to which a cache management unit for storing clean data reflected in the storage device group is connected, and a clean queue counter associated with the clean queue And a busy counter that counts the total amount of the cache management unit. A free queue counter, a clean queue, a clean queue counter, and a busy counter can be provided for each cache partition area as partition management information. Further, the free queue, the dirty queue, and the dirty queue counter can be used as common management information.

各キャッシュ分割領域のうち1つのキャッシュ分割領域を共用領域として設定し、この共用領域に属する資源を割り当てることにより、新たなキャッシュ分割領域を設定することもできる。例えば、初期状態では、全てのキャッシュ領域を共用領域として使用する。そして、新たにキャッシュ分割領域を生成する場合は、共用領域から一部のキャッシュ領域を切り取って、新しいキャッシュ分割領域に割り当てる。なお、キャッシュ分割領域を削除する場合は、このキャッシュ分割領域に割り当てられていたキャッシュ領域を、共用領域に戻せばよい。   It is also possible to set a new cache partition area by setting one cache partition area among the cache partition areas as a shared area and allocating resources belonging to this shared area. For example, in the initial state, all cache areas are used as shared areas. When a new cache partition area is generated, a part of the cache area is cut out from the shared area and assigned to the new cache partition area. When deleting a cache partition area, the cache area allocated to the cache partition area may be returned to the shared area.

以下、図1〜図18に基づき、本発明の実施の形態を説明する。本実施形態では、上位装置とのデータ授受をそれぞれ制御する複数の上位インターフェース制御部と、論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、各記憶デバイス群とのデータ授受をそれぞれ制御する複数の下位インターフェース制御部と、各上位インターフェース制御部及び各下位インターフェース制御部によりそれぞれ使用されるメモリ部と、を備えたストレージサブシステムが開示される。そして、本実施例では、メモリ部が提供するキャッシュ領域を複数のキャッシュ分割領域に分割する。さらに、本実施例では、メモリ部でデータを管理するためのキャッシュ管理単位の属性に応じて、管理情報を各キャッシュ分割領域毎にそれぞれ分割し、各管理情報に基づいて、各キャッシュ分割領域毎にそれぞれデータを管理させる。   Hereinafter, embodiments of the present invention will be described with reference to FIGS. In the present embodiment, a plurality of host interface control units that respectively control data exchange with a host device, a plurality of storage device groups that respectively provide logical storage areas, and a data transfer between each storage device group are controlled. A storage subsystem is disclosed that includes a plurality of lower-level interface controllers, and memory units used by the upper-level interface controllers and the lower-level interface controllers. In this embodiment, the cache area provided by the memory unit is divided into a plurality of cache division areas. Furthermore, in this embodiment, the management information is divided for each cache division area according to the attribute of the cache management unit for managing data in the memory unit, and each cache division area is divided based on each management information. Let each manage the data.

図1は、ストレージサブシステム10の外観構成を示す概略斜視図である。ストレージサブシステム10は、例えば、基本筐体11と複数の増設筐体12とから構成することができる。基本筐体11は、ストレージサブシステム10の最小構成単位であり、記憶機能及び制御機能の両方を備えている。増設筐体12は、ストレージサブシステム10のオプションであり、基本筐体11の有する制御機能により制御される。例えば、最大4個の増設筐体12を基本筐体11に接続可能である。   FIG. 1 is a schematic perspective view showing an external configuration of the storage subsystem 10. The storage subsystem 10 can be composed of a basic enclosure 11 and a plurality of additional enclosures 12, for example. The basic chassis 11 is a minimum configuration unit of the storage subsystem 10 and has both a storage function and a control function. The additional chassis 12 is an option of the storage subsystem 10 and is controlled by the control function of the basic chassis 11. For example, a maximum of four additional enclosures 12 can be connected to the basic enclosure 11.

基本筐体11には、複数の制御パッケージ13と、複数の電源ユニット14と、複数のバッテリユニット15と、複数のディスクドライブ80とがそれぞれ着脱可能に設けられている。増設筐体12には、複数のディスクドライブ80と、複数の電源ユニット14及び複数のバッテリユニット15が着脱可能に設けられている。また、基本筐体11及び各増設筐体12には、複数の冷却ファン16がそれぞれ設けられている。   A plurality of control packages 13, a plurality of power supply units 14, a plurality of battery units 15, and a plurality of disk drives 80 are detachably provided on the basic casing 11. A plurality of disk drives 80, a plurality of power supply units 14, and a plurality of battery units 15 are detachably provided in the additional enclosure 12. The basic chassis 11 and each additional chassis 12 are provided with a plurality of cooling fans 16, respectively.

制御パッケージ13は、後述するチャネルアダプタ20、ディスクアダプタ30及びキャッシュメモリ40等をそれぞれ実現するためのモジュールである。即ち、基本筐体11には、複数のチャネルアダプタパッケージ、複数のディスクアダプタパッケージ及び1つ以上のメモリパッケージがそれぞれ着脱可能に設けられ、パッケージ単位で交換可能となっている。   The control package 13 is a module for realizing a channel adapter 20, a disk adapter 30, a cache memory 40, and the like, which will be described later. That is, a plurality of channel adapter packages, a plurality of disk adapter packages, and one or more memory packages are detachably provided in the basic casing 11 and can be replaced in units of packages.

図2は、ストレージサブシステム10を含む記憶システムの全体概要を示すブロック図である。ストレージサブシステム10は、通信ネットワークCN1を介して、複数のホストコンピュータ1A〜1C(以下、特に区別しない場合は、「ホストコンピュータ1」と呼ぶ)と双方向通信可能にそれぞれ接続されている。ここで、通信ネットワークCN1は、例えば、LAN(Local Area Network)、SAN(Storage Area Network)、インターネットあるいは専用回線等である。LANを用いる場合、ホストコンピュータ1とストレージサブシステム10との間のデータ転送は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。SANを用いる場合、ホストコンピュータ1とストレージサブシステム10とは、ファイバチャネルプロトコルに従ってデータ転送を行う。また、ホストコンピュータ1がメインフレームの場合は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従ってデータ転送が行われる。   FIG. 2 is a block diagram showing an overall outline of the storage system including the storage subsystem 10. The storage subsystem 10 is connected to a plurality of host computers 1A to 1C (hereinafter referred to as “host computer 1” unless otherwise specified) via a communication network CN1 so as to be capable of bidirectional communication. Here, the communication network CN1 is, for example, a LAN (Local Area Network), a SAN (Storage Area Network), the Internet, a dedicated line, or the like. When the LAN is used, data transfer between the host computer 1 and the storage subsystem 10 is performed according to a TCP / IP (Transmission Control Protocol / Internet Protocol) protocol. When using a SAN, the host computer 1 and the storage subsystem 10 perform data transfer according to the fiber channel protocol. When the host computer 1 is a mainframe, for example, FICON (Fibre Connection: registered trademark), ESCON (Enterprise System Connection: registered trademark), ACONARC (Advanced Connection Architecture: registered trademark), and FIBARC (Fibre Connection Architecture: registered trademark). Data transfer is performed according to a communication protocol such as a trademark.

各ホストコンピュータ1は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、メインフレーム等として実現されるものである。例えば、各ホストコンピュータ1は、図外に位置する複数のクライアント端末と別の通信ネットワークを介して接続されている。各ホストコンピュータ1は、例えば、各クライアント端末からの要求に応じて、ストレージサブシステム10にデータの読み書きを行うことにより、各クライアント端末へのサービスを提供する。図中では、1つのみ図示してあるが、ストレージサブシステム10内には、複数の仮想筐体(SLPR:Storage Logical Partition)を設定可能である。   Each host computer 1 is realized as, for example, a server, a personal computer, a workstation, a main frame, or the like. For example, each host computer 1 is connected to a plurality of client terminals located outside the figure via another communication network. Each host computer 1 provides a service to each client terminal by, for example, reading / writing data from / to the storage subsystem 10 in response to a request from each client terminal. Although only one is shown in the figure, a plurality of virtual enclosures (SLPR: Storage Logical Partition) can be set in the storage subsystem 10.

SLPRとは、ストレージサブシステム10内の各種物理的資源及び論理的資源を各ユーザ毎に(あるいは各アプリケーションプログラム毎に)分割して割り当てることにより構成された領域である。即ち、例えば、SLPRには、それぞれ専用のチャネルアダプタ20と、それぞれ専用のキャッシュ領域40と、それぞれ専用の仮想的な論理デバイス(VDEV)70等とを備えている。即ち、SLPRは、仮想的な小型のストレージサブシステムであるかのように振る舞う。   SLPR is an area configured by dividing and allocating various physical resources and logical resources in the storage subsystem 10 for each user (or for each application program). That is, for example, the SLPR includes a dedicated channel adapter 20, a dedicated cache area 40, a dedicated virtual logical device (VDEV) 70, and the like. That is, SLPR behaves as if it is a virtual small storage subsystem.

SLPRには、少なくとも1つ以上のキャッシュ分割領域(CLPR:Cache Logical Partiton)を設けることができる。図2中では、左側にSLPRを1つだけ示してあるが、複数のSLPRを設けることができる。そして、1つのSLPR内には、1つまたは複数のCLPRを設定することができる。   In SLPR, at least one cache partition area (CLPR) can be provided. Although only one SLPR is shown on the left side in FIG. 2, a plurality of SLPRs can be provided. One or a plurality of CLPRs can be set in one SLPR.

CLPRとは、キャッシュメモリ40を論理的に複数の領域に分割したものである。CLPRは、各チャネルアダプタ20毎にそれぞれ設定可能である。例えば、チャネルアダプタ20をn個実装する場合は、n個のCLPRを設けることができる。例えば、n=32に設定可能であるが、本発明はこれに限定されない。各CLPR0〜CLPRnは、それぞれ互いに独立して使用されるものであり、各ホストコンピュータ1は、それぞれが利用可能なCLPRのみを独占的に使用することができる。そして、あるCLPRに対するホストコンピュータ1からの操作は、他のCLPRにできるだけ影響を与えないように構成されている。即ち、特定のホストコンピュータ1からのアクセスが集中した場合でも、そのホストコンピュータ1が利用可能なCLPRのみで必要なキャッシュ容量が確保され、他のCLPRの資源(キャッシュ領域)を奪うことがないように構成されている。   CLPR is a logical division of the cache memory 40 into a plurality of areas. CLPR can be set for each channel adapter 20. For example, when n channel adapters 20 are mounted, n CLPRs can be provided. For example, although n = 32 can be set, the present invention is not limited to this. Each of the CLPR0 to CLPRn is used independently of each other, and each host computer 1 can exclusively use only the CLPR that can be used. An operation from a host computer 1 with respect to a certain CLPR is configured so as not to affect other CLPR as much as possible. That is, even when accesses from a specific host computer 1 are concentrated, a necessary cache capacity is secured only by CLPR that can be used by the host computer 1, and other CLPR resources (cache areas) are not taken away. It is configured.

なお、図中右側に示すCLPR0は、SLPRが定義されていない共用領域であり、この共用領域CLPR0には、ストレージサブシステム10全体で使用される各種の情報が記憶される。また、後述のように、初期状態では、キャッシュメモリ40の全領域が共用領域CLPR0に割り当てられている。そして、共用領域CLPR0からキャッシュ領域を所定量だけ切り出すことにより、新たなCLPRを設定するようになっている。   Note that CLPR0 shown on the right side of the figure is a shared area where SLPR is not defined, and various information used in the entire storage subsystem 10 is stored in this shared area CLPR0. As will be described later, in the initial state, the entire area of the cache memory 40 is assigned to the shared area CLPR0. A new CLPR is set by cutting out a predetermined amount of the cache area from the shared area CLPR0.

図2に示す例では、ホストコンピュータ1Aは、共用領域CLPR0のみにアクセスして、データの入出力を行うことができる。ホストコンピュータ1BはCLPR1のみに、ホストコンピュータ1CはCLPR2のみに、ホストコンピュータ1NはCLPRnのみに、それぞれアクセス可能であり、他のCLPRの利用や参照等を行うことはできない。   In the example shown in FIG. 2, the host computer 1A can access only the shared area CLPR0 and input / output data. The host computer 1B can access only CLPR1, the host computer 1C can access only CLPR2, and the host computer 1N can access only CLPRn, and cannot use or reference other CLPRs.

SVP(Service Processor)90は、ストレージサブシステム10の管理や監視を行うためのコンピュータ装置であり、管理用のサーバ機能を提供する。SVP90は、例えば、ストレージサブシステム10内に設けられたLAN等の内部ネットワークCN3(図3参照)を介して、各チャネルアダプタ20や各ディスクアダプタ30等から各種の環境情報や性能情報等を収集する。SVP90が収集する情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度(IOPS)等が挙げられる。SVP90と各管理端末2A〜2N,3とは、例えば、LAN等の通信ネットワークCN2を介して接続されている。管理者は、管理端末を介してSVP90にログインすることにより、権限のある範囲内において、例えば、RAID構成の設定、各種パッケージ(チャネルアダプタパッケージ、ディスクアダプタパッケージ、メモリパッケージ、ディスクドライブ等)の閉塞処理や各種設定変更等を行うことができる。   The SVP (Service Processor) 90 is a computer device for managing and monitoring the storage subsystem 10 and provides a management server function. For example, the SVP 90 collects various environmental information and performance information from each channel adapter 20 and each disk adapter 30 via the internal network CN3 such as a LAN provided in the storage subsystem 10 (see FIG. 3). To do. Examples of information collected by the SVP 90 include device configuration, power supply alarm, temperature alarm, input / output speed (IOPS), and the like. The SVP 90 and each of the management terminals 2A to 2N, 3 are connected via a communication network CN2 such as a LAN, for example. By logging in to the SVP 90 via the management terminal, the administrator can set, for example, a RAID configuration and block various packages (channel adapter package, disk adapter package, memory package, disk drive, etc.) within an authorized range. Processing and various setting changes can be performed.

SVP90には、複数の管理端末2A〜2N,3を接続可能である。ここで、管理端末2A〜2Nは、各SLPR毎に設けられる端末であり、管理端末3は、ストレージサブシステム10の全体を管理するために設けられる端末である。以下の説明では、1つのSLPRに1つのCLPRを設ける場合を例に挙げて説明する。従って、管理端末2A〜2Nは、各CLPRをそれぞれ管理する管理者(以下、分割管理者と呼ぶ)によりそれぞれ操作されるサブ端末である。管理端末3は、ストレージサブシステム10の全体を管理するシステム管理者(あるいは全体管理者と呼ぶこともできる)により操作される全体端末である。   A plurality of management terminals 2A to 2N, 3 can be connected to the SVP 90. Here, the management terminals 2 </ b> A to 2 </ b> N are terminals provided for each SLPR, and the management terminal 3 is a terminal provided for managing the entire storage subsystem 10. In the following description, a case where one CLPR is provided for one SLPR will be described as an example. Accordingly, the management terminals 2A to 2N are sub-terminals operated respectively by managers (hereinafter referred to as division managers) that manage each CLPR. The management terminal 3 is an overall terminal operated by a system administrator (or may be referred to as an overall administrator) that manages the entire storage subsystem 10.

各サブ端末2A〜2Nの分割管理者は、自己が管理権限を有するCLPRについてのみ各種設定変更等を行うことができ、他のCLPRの構成等を参照したり変更することは許可されない。これに対し、システム管理者は、各CLPRを含めてストレージサブシステム10の全体の各種設定変更等を行うことができる。   The division manager of each of the sub-terminals 2A to 2N can change various settings only for the CLPR for which he / she has management authority, and is not permitted to refer to or change other CLPR configurations or the like. On the other hand, the system administrator can change various settings of the entire storage subsystem 10 including each CLPR.

システム管理者は、全体端末3を介してSVP90にログインし、ストレージサブシステム10の有する物理的資源及び論理的資源を適宜分割することにより、各ユーザ毎にSLPR(CLPR)を設定することができる。また、システム管理者は、各分割管理者に対して、ユーザID等を発行することもできる。分割管理者は、システム管理者から発行された専用のユーザIDを用いてSVP90にログインすることができる。分割管理者は、サブ端末2を操作することにより、自己の管理下にあるCLPR内の設定を変更することができる。   The system administrator can set SLPR (CLPR) for each user by logging into the SVP 90 via the overall terminal 3 and appropriately dividing the physical resources and logical resources of the storage subsystem 10. . The system administrator can also issue a user ID and the like to each division manager. The division administrator can log in to the SVP 90 using a dedicated user ID issued by the system administrator. The division manager can change the setting in the CLPR under his / her management by operating the sub-terminal 2.

図3は、ストレージサブシステム10の論理的構成に着目したブロック図である。ストレージサブシステム10は、複数のチャネルアダプタ(以下、CHA)20と、複数のディスクアダプタ(以下、DKA)30と、少なくとも1つ以上のキャッシュメモリ40及び共有メモリ50と、スイッチ部60と、複数の仮想的論理デバイス(VDEV)70と、複数のディスクドライブ80と、SVP90とを備えている。   FIG. 3 is a block diagram focusing on the logical configuration of the storage subsystem 10. The storage subsystem 10 includes a plurality of channel adapters (hereinafter referred to as CHAs) 20, a plurality of disk adapters (hereinafter referred to as DKAs) 30, at least one cache memory 40 and shared memory 50, a switch unit 60, and a plurality of switches. Virtual logical device (VDEV) 70, a plurality of disk drives 80, and an SVP 90.

各CHA20は、各ホストコンピュータ1との間のデータ転送を制御するもので、通信ポート21を備えている。ストレージサブシステム10には、例えば32個のCHA20を設けることができる。CHA20は、例えば、オープン系用CHA、メインフレーム系用CHA等のように、ホストコンピュータ1の種類に応じて用意される。   Each CHA 20 controls data transfer with each host computer 1 and includes a communication port 21. For example, 32 CHAs 20 can be provided in the storage subsystem 10. The CHA 20 is prepared according to the type of the host computer 1 such as an open system CHA, a mainframe system CHA, and the like.

各CHA20は、それぞれに接続されたホストコンピュータ1から、データの読み書きを要求するコマンド及びデータを受信し、ホストコンピュータ1から受信したコマンドに従って動作する。DKA30の動作も含めて先に説明すると、例えば、CHA20は、ホストコンピュータ1からデータの読出し要求を受信すると、読出しコマンドを共有メモリ50に記憶させる。DKA30は、共有メモリ50を随時参照しており、未処理の読出しコマンドを発見すると、ディスクドライブ80からデータを読み出して、キャッシュメモリ40に記憶させる。CHA20は、キャッシュメモリ40に移されたデータを読み出し、コマンド発行元のホストコンピュータ1に送信する。   Each CHA 20 receives a command and data for requesting reading / writing of data from the host computer 1 connected thereto, and operates according to the command received from the host computer 1. For example, when the CHA 20 receives a data read request from the host computer 1, the read command is stored in the shared memory 50. The DKA 30 refers to the shared memory 50 at any time. When an unprocessed read command is found, the DKA 30 reads data from the disk drive 80 and stores it in the cache memory 40. The CHA 20 reads the data transferred to the cache memory 40 and transmits it to the host computer 1 that issued the command.

CHA20は、ホストコンピュータ1からデータの書込み要求を受信すると、書込みコマンドを共有メモリ50に記憶させる。また、CHA20は、受信したデータ(ユーザデータ)をキャッシュメモリ40に記憶させる。ここで、ホストコンピュータ1から書込みを要求されたデータは、ディスクドライブ80に書き込まれていない「ダーティデータ」であるため、例えば複数箇所にそれぞれ記憶されて多重化される。   When the CHA 20 receives a data write request from the host computer 1, the CHA 20 stores the write command in the shared memory 50. Further, the CHA 20 stores the received data (user data) in the cache memory 40. Here, since the data requested to be written by the host computer 1 is “dirty data” that has not been written to the disk drive 80, it is stored and multiplexed, for example, at a plurality of locations.

CHA20は、キャッシュメモリ40にデータを記憶した後、ホストコンピュータ1に対して書込み完了を報告する。そして、DKA30は、共有メモリ50に記憶された書込みコマンドに従って、キャッシュメモリ40に記憶されたデータを読出し、所定のディスクドライブ80に記憶させる。ディスクドライブ80に書き込まれたデータは、「ダーティデータ」から「グリーンデータ」に属性が変化し、キャッシュメモリ40による多重管理から解放される。なお、本明細書において、「ダーティデータ」とは、ディスクドライブ80に書き込まれていない状態のデータを意味する。また、「クリーンデータ」とは、ディスクドライブ80に書き込み済のデータを意味する。   The CHA 20 stores the data in the cache memory 40 and then reports the completion of writing to the host computer 1. Then, the DKA 30 reads the data stored in the cache memory 40 according to the write command stored in the shared memory 50 and stores it in a predetermined disk drive 80. The attribute of the data written in the disk drive 80 changes from “dirty data” to “green data” and is released from multiple management by the cache memory 40. In this specification, “dirty data” means data that is not written in the disk drive 80. “Clean data” means data already written in the disk drive 80.

各DKA30は、ストレージサブシステム10内に例えば4個や8個等のように複数個設けることができる。各DKA30は、各ディスクドライブ80との間のデータ通信を制御する。各DKA30と各ディスクドライブ80とは、例えば、SAN等の通信ネットワークCN4を介して接続されており、ファイバチャネルプロトコルに従ってブロック単位のデータ転送を行う。各DKA30は、ディスクドライブ80の状態を随時監視しており、この監視結果は内部ネットワークCN3を介してSVP90に送信される。各CHA20及び各DKA30は、例えば、プロセッサやメモリ等が実装されたプリント基板と、メモリに格納された制御プログラム(いずれも不図示)とをそれぞれ備えており、これらのハードウェアとソフトウェアとの協働作業によって、それぞれ所定の機能を実現するようになっている。   A plurality of DKAs 30 can be provided in the storage subsystem 10 such as four or eight. Each DKA 30 controls data communication with each disk drive 80. Each DKA 30 and each disk drive 80 are connected via a communication network CN4 such as a SAN, for example, and perform block-unit data transfer according to a fiber channel protocol. Each DKA 30 monitors the state of the disk drive 80 as needed, and the monitoring result is transmitted to the SVP 90 via the internal network CN3. Each CHA 20 and each DKA 30 include, for example, a printed circuit board on which a processor, a memory, and the like are mounted, and a control program (not shown) stored in the memory, and cooperation between these hardware and software. A predetermined function is realized by each work.

キャッシュメモリ40は、例えば、ユーザデータ等を記憶するものである。キャッシュメモリ40は、例えば不揮発メモリから構成される。キャッシュメモリ40は、複数のメモリから構成することができ、ダーティデータを多重管理することができる。本実施例では、キャッシュメモリ40が有する全キャッシュ領域を複数個に分割することにより、各CLPR0〜nを設定している。   The cache memory 40 stores, for example, user data. The cache memory 40 is composed of, for example, a nonvolatile memory. The cache memory 40 can be composed of a plurality of memories, and can manage multiple dirty data. In this embodiment, each of the CLPR0 to CLPRn is set by dividing the entire cache area of the cache memory 40 into a plurality of parts.

共有メモリ(あるいは制御メモリ)50は、例えば不揮発メモリから構成される。共有メモリ50には、例えば、制御情報や管理情報等が記憶される。これらの制御情報等の情報は、複数の共有メモリ50により多重管理することができる。共有メモリ50及びキャッシュメモリ40は、それぞれ複数個設けることができる。また、同一のメモリ基板にキャッシュメモリ40と共有メモリ50とを混在させて実装することもできる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。   The shared memory (or control memory) 50 is composed of, for example, a nonvolatile memory. For example, control information and management information are stored in the shared memory 50. Information such as control information can be multiplexed and managed by a plurality of shared memories 50. A plurality of shared memories 50 and cache memories 40 can be provided. Further, the cache memory 40 and the shared memory 50 can be mixed and mounted on the same memory board. Alternatively, a part of the memory can be used as a cache area and the other part can be used as a control area.

スイッチ部60は、各CHA20と、各DKA30と、キャッシュメモリ40と、共有メモリ50とをそれぞれ接続するものである。これにより、全てのCHA20,DKA30は、キャッシュメモリ40及び共有メモリ50にそれぞれアクセス可能である。スイッチ部60は、例えば超高速クロスバスイッチ等として構成することができる。   The switch unit 60 connects each CHA 20, each DKA 30, the cache memory 40, and the shared memory 50. Thereby, all the CHAs 20 and DKAs 30 can access the cache memory 40 and the shared memory 50, respectively. The switch unit 60 can be configured as, for example, an ultrahigh-speed crossbar switch or the like.

ストレージサブシステム10は、多数のディスクドライブ80を実装可能である。各ディスクドライブ80は、例えば、ハードディスクドライブ(HDD)や半導体メモリ装置等として実現可能である。ディスクドライブ80は、物理的な記憶デバイス(PDEV)である。そして、RAID構成等によっても相違するが、例えば、4個1組のディスクドライブ80が提供する物理的な記憶領域上には、仮想的な論理デバイス(VDEV)70が構築される。なお、VDEV70上にさらに仮想的な論理デバイスを設定可能である。また、ストレージサブシステム10により使用される記憶資源は、全てストレージサブシステム10内に設ける必要はなく、ストレージサブシステム10の外部に存在する記憶資源を利用することもできる。例えば、外部の他社製ストレージサブシステムが有する記憶デバイスを特定のVDEV70に割り付け、他社製記憶デバイスへのアクセスパス等を管理することにより、他社の記憶デバイスをあたかも自己の記憶デバイスであるかのように使用可能である。   The storage subsystem 10 can mount a large number of disk drives 80. Each disk drive 80 can be realized as, for example, a hard disk drive (HDD) or a semiconductor memory device. The disk drive 80 is a physical storage device (PDEV). For example, a virtual logical device (VDEV) 70 is constructed on a physical storage area provided by a set of four disk drives 80, although it differs depending on the RAID configuration or the like. Further, a virtual logical device can be set on the VDEV 70. Further, it is not necessary to provide all storage resources used by the storage subsystem 10 in the storage subsystem 10, and storage resources existing outside the storage subsystem 10 can be used. For example, by assigning a storage device of an external third-party storage subsystem to a specific VDEV 70 and managing an access path to the third-party storage device, the third-party storage device is as if it were its own storage device. Can be used.

図4は、各CLPRが資源を分割して利用する様子を模式的に示す説明図である。図中では、共用領域CLPR0と2個の専用CLPR1,2とによって、キャッシュメモリ40を分割して使用する場合を示してある。各CLPRには、それぞれキャッシュ領域が割り当てられている。各CLPRがそれぞれ使用可能なキャッシュ領域の最大値(最大割当量)は、システム管理者により設定される。各CLPRにそれぞれ割り当てられたキャッシュ領域には、各CLPRを利用するホストコンピュータ1により使用されるデータ(ライトデータ、リードデータ)が格納される。図4中では、データが格納された領域に斜線を付し、「使用中」と表記してある。各CLPRは、それぞれが使用可能な最大割当量までのキャッシュ領域を使用可能であり、他のCLPRのキャッシュ領域を使用することはできない。   FIG. 4 is an explanatory diagram schematically showing how each CLPR divides and uses resources. In the figure, a case where the cache memory 40 is divided and used by the shared area CLPR0 and the two dedicated CLPR1 and 2 is shown. Each CLPR is assigned a cache area. The maximum value (maximum allocation amount) of the cache area that can be used by each CLPR is set by the system administrator. Data (write data, read data) used by the host computer 1 using each CLPR is stored in the cache area allocated to each CLPR. In FIG. 4, the area in which the data is stored is shaded and indicated as “in use”. Each CLPR can use a cache area up to the maximum allocation amount that can be used by each CLPR, and cannot use a cache area of another CLPR.

さらに、各CLPRは、それぞれのキャッシュ領域に加えて、他のキャッシュ関連データを管理している。キャッシュ関連データとしては、例えば、DCR(F1)と、サイドファイルF2と、PCR(F3)とを挙げることができる。   Further, each CLPR manages other cache related data in addition to the respective cache areas. Examples of the cache-related data include DCR (F1), side file F2, and PCR (F3).

DCR(Dynamic Cache Residency)100とは、キャッシュ常駐化機能であり、VDEV70の特定の領域に存在するデータをキャッシュ領域に常駐化させるものである。これにより、重要なデータ群に対するアクセス性能を高めることができる。   The DCR (Dynamic Cache Residency) 100 is a cache resident function, and makes data existing in a specific area of the VDEV 70 resident in the cache area. Thereby, the access performance with respect to an important data group can be improved.

サイドファイルF2とは、図外のリモートサイトにデータを転送してコピーさせるためのデータを記憶するファイルである。例えば、リモートコピー対象のデータがサイドファイルF2に所定量以上蓄積された場合は、通信ネットワークを介して、距離的に離れた場所にある別のストレージサブシステムにデータが転送され、保持される。リモートコピーの初期コピーでは、指定されたデータ群を丸ごとリモートサイトにコピーし、それ以後に更新されたデータは、差分ファイルとしてリモートコピーされる。   The side file F2 is a file that stores data for transferring and copying data to a remote site (not shown). For example, when a predetermined amount or more of remote copy target data is accumulated in the side file F2, the data is transferred and held via a communication network to another storage subsystem located at a distance. In the initial copy of remote copy, the entire designated data group is copied to the remote site, and the data updated thereafter is remotely copied as a differential file.

PCR(Partical Cache Residence)102とは、例えば、ストレージサブシステム10にNAS(Network Attached Storage)機能を設ける場合に使用されるもので、データの種別毎にキャッシュ領域に常駐化させる機能である。DCR(F1)は、特定の記憶空間に存在するデータを常駐化させるものであるのに対し、PCR(F3)は、特定種類のデータを常駐化させるものである。なお、これらキャッシュ関連データDCR(F1)、サイドファイルF2及びPCR(F3)は、それを必要とするCLPRのみに設けられる。即ち、常駐化機能が設定されていないCLPRには、キャッシュ常駐化に関するデータは記憶されない。同様に、リモートコピーが設定されていないCLPRには、サイドファイルF2は記憶されない。   The PCR (Partical Cache Residence) 102 is used when, for example, a NAS (Network Attached Storage) function is provided in the storage subsystem 10, and is a function that makes the data resident in the cache area for each type of data. DCR (F1) makes data existing in a specific storage space resident, while PCR (F3) makes data of a specific type resident. The cache-related data DCR (F1), the side file F2, and the PCR (F3) are provided only in the CLPR that requires them. That is, the data regarding the cache residency is not stored in the CLPR in which the residency function is not set. Similarly, the side file F2 is not stored in the CLPR for which remote copy is not set.

そして、図4に示すように、各CLPRには、少なくとも1つ以上のVDEV70がそれぞれ割り当てられている。各CLPRのキャッシュ領域に書き込まれたデータは、それぞれに割り当てられたVDEV70の所定領域に書き込まれる。また、VDEV70から読み出されたデータは、対応するCLPRのキャッシュ領域に保持される。   As shown in FIG. 4, at least one VDEV 70 is assigned to each CLPR. Data written to the cache area of each CLPR is written to a predetermined area of the VDEV 70 assigned to each CLPR. The data read from the VDEV 70 is held in the corresponding CLPR cache area.

図5は、キャッシュ領域に記憶されているデータを管理するための方法を示す説明図である。ストレージサブシステム10では、キャッシュメモリ40に記憶されているデータを効率的に検索するために、以下のような階層構造で管理している。   FIG. 5 is an explanatory diagram showing a method for managing data stored in the cache area. The storage subsystem 10 manages the data stored in the cache memory 40 in the following hierarchical structure in order to efficiently search the data.

まず、ホストコンピュータ1からデータの入出力要求があると、この入出力要求に含まれるLBA(Logical Block Address)に基づいて、VDEVSLOT番号(VDEVSLOT#)を求める。そして、VDEVSLOT番号に基づいて、VDSLOT−PAGEテーブルT1を参照することにより、次の階層へのポインタを取得する。VDSLOT−PAGEテーブルT1には、PAGE−DIRテーブルT2へのポインタが含まれている。PAGE−DIRテーブルT2には、PAGE−GRPPテーブルT3へのポインタが含まれている。さらに、PAGE−GRPPテーブルT3には、GRPT1テーブルT4へのポインタが含まれている。GRPT1テーブルT4には、GRPT2テーブルT5へのポインタが含まれている。GRPT2テーブルT5には、SLCB(スロット制御テーブル)T6へのポインタが含まれている。   First, when there is a data input / output request from the host computer 1, a VDEVSLOT number (VDEVSLOT #) is obtained based on an LBA (Logical Block Address) included in the input / output request. Then, based on the VDEVSLOT number, a pointer to the next hierarchy is obtained by referring to the VDSLOT-PAGE table T1. The VDSLOT-PAGE table T1 includes a pointer to the PAGE-DIR table T2. The PAGE-DIR table T2 includes a pointer to the PAGE-GRPP table T3. Further, the PAGE-GRPP table T3 includes a pointer to the GRPT1 table T4. The GRPT1 table T4 includes a pointer to the GRPT2 table T5. The GRPT2 table T5 includes a pointer to an SLCB (slot control table) T6.

このように、LBAに基づいて、各テーブルT1〜T5を順番に参照していくことにより、SLCBテーブルT6に到達する。SLCBテーブルT6には、少なくとも1つ以上のSGCB(セグメント制御ブロック)テーブルT7が関連付けられている。SGCBテーブルT7は、キャッシュ管理の最小単位であるセグメントに関する制御情報を格納している。1つのスロットには、1〜4個のセグメントを関連付けることができる。1つのセグメントには、例えば、48KBまたは64KBのデータを格納することができる。   In this manner, the SLCB table T6 is reached by sequentially referring to the tables T1 to T5 based on the LBA. At least one SGCB (segment control block) table T7 is associated with the SLCB table T6. The SGCB table T7 stores control information related to a segment that is a minimum unit of cache management. One to four segments can be associated with one slot. One segment can store, for example, 48 KB or 64 KB of data.

キャッシュ管理の最小単位はセグメントであるが、ダーティデータ(物理ディスクへの書込み前の状態)と、クリーンデータ(物理ディスクへの書込み後の状態)の各状態間の遷移は、スロット単位で行われる。また、キャッシュ領域の確保(リザーブ)及び解放(リリース)も、スロット単位またはセグメント単位で行われる。   The smallest unit of cache management is a segment, but the transition between each state of dirty data (the state before writing to the physical disk) and clean data (the state after writing to the physical disk) is performed in units of slots. . Further, securing (reserving) and releasing (releasing) the cache area is also performed in slot units or segment units.

SLCBテーブルT6には、図8に示すように、後方ポインタと、前方ポインタと、キューステータスと、VDSLOT#と、スロットステータスと、CLPR情報と、少なくとも1つ以上のSGCBポインタとを含めて構成することができる。キューステータスは、そのSLCBテーブルT6に関連付けられているキューの種別やキュー番号を含む。スロットステータスは、そのSLCBテーブルT6に対応するスロットの状態を含む。CLPR情報は、そのSLCBテーブルT6が属するCLPRに関する情報(CLPR番号等)を含む。SGCBポインタは、そのSLCBテーブルT6に関連付けられているSGCBテーブルT7を特定するためのポインタが含まれている。   As shown in FIG. 8, the SLCB table T6 includes a backward pointer, a forward pointer, a queue status, VDSLOT #, slot status, CLPR information, and at least one SGCB pointer. be able to. The queue status includes a queue type and a queue number associated with the SLCB table T6. The slot status includes the status of the slot corresponding to the SLCB table T6. The CLPR information includes information (CLPR number and the like) related to the CLPR to which the SLCB table T6 belongs. The SGCB pointer includes a pointer for specifying the SGCB table T7 associated with the SLCB table T6.

なお、SLCBテーブルT6及びSGCBテーブルT7は、例えば、ポインタ変更等の競合が発生して整合性が失われないように、VDEV70単位で排他制御が行われる。即ち、SLCBテーブルT6またはSGCBテーブルT7が属するVDEV70について、ロックを取得した場合にのみ、SLCBテーブルT6またはSGCBテーブルT7を操作できるようになっている。本明細書では、このVDEV単位の排他制御を「VDEVロック」と呼ぶ。VDEVロックは、論理ボリューム単位の排他制御であると言い換えることもできる。   The SLCB table T6 and the SGCB table T7 are exclusively controlled in units of VDEV 70 so that, for example, a conflict such as a pointer change occurs and the consistency is not lost. That is, the SLCB table T6 or the SGCB table T7 can be operated only when the lock is acquired for the VDEV 70 to which the SLCB table T6 or the SGCB table T7 belongs. In this specification, this VDEV exclusive control is referred to as “VDEV lock”. In other words, VDEV lock is exclusive control in units of logical volumes.

図6は、SLCBテーブルT6の状態遷移を示す説明図である。SLCBテーブルT6は、例えば、未使用状態ST1、デバイス反映済み状態ST2、パリティ無し&デバイス反映前状態ST3、パリティ生成中状態ST4及びパリティ有り&ドライブ反映前状態ST5の5つのステータスを取ることができる。   FIG. 6 is an explanatory diagram showing state transition of the SLCB table T6. The SLCB table T6 can take, for example, five statuses: an unused state ST1, a device reflected state ST2, no parity & pre-device reflection state ST3, a parity generating state ST4, and a parity present & drive pre-reflection state ST5. .

未使用状態ST1とは、そのスロットが未使用であることを示す状態である。未使用状態にあるスロット(SLCB)は、フリーSGCBキュー(以下、フリーキューと略記)により管理される。デバイス反映済み状態ST2とは、そのスロットに格納されているデータが物理デバイス(ディスクドライブ80)に書込み済みであることを示す状態である。デバイス反映済み状態ST2にあるスロットは、クリーンキューにより管理される。   The unused state ST1 is a state indicating that the slot is unused. The unused slot (SLCB) is managed by a free SGCB queue (hereinafter abbreviated as free queue). The device reflected state ST2 is a state indicating that the data stored in the slot has been written to the physical device (disk drive 80). The slots in the device reflected state ST2 are managed by a clean queue.

パリティ無し&デバイス反映前状態ST3とは、例えばRAID5等のようにパリティデータを必要とする場合において、そのスロットに格納されているデータについて、未だパリティデータが生成されていないことを示す状態である。パリティ無し&デバイス反映前状態ST3にあるスロットは、中間ダーティキューにより管理される。パリティ生成中状態ST4とは、そのスロットに格納されているデータについて、パリティデータを生成している最中であることを示す状態である。パリティ生成中状態ST4にあるスロットは、ホストダーティキューにより管理される。   No parity & pre-device reflection state ST3 is a state indicating that parity data has not been generated for data stored in the slot when parity data is required, such as RAID5. . The slots in the state ST3 with no parity and before device reflection are managed by the intermediate dirty queue. The parity generation state ST4 is a state indicating that parity data is being generated for the data stored in the slot. Slots in the parity generation state ST4 are managed by the host dirty queue.

パリティ有り&ドライブ反映前状態状態ST5とは、そのスロットに格納されているデータについて、パリティデータが生成されているが、物理デバイスに未だ書き込まれていないことを示す状態である。パリティ有り&ドライブ反映前状態ST5にあるスロットは、物理ダーティキュー(以下、ダーティキューと略記)により管理される。   The parity state & drive pre-reflection state state ST5 is a state indicating that parity data has been generated for data stored in the slot but has not yet been written to the physical device. A slot in the state ST5 with parity & before drive reflection is managed by a physical dirty queue (hereinafter abbreviated as a dirty queue).

ホストコンピュータ1からライトアクセスがあった場合、ST1からST2を経てST3に状態が遷移し、パリティデータの生成が開始される。そして、書込みを要求されたデータについてパリティデータが生成されると、状態はST3からST4を経てST5に変化する。ホストコンピュータ1からCLPRのキャッシュ領域の1つまたは複数のスロットにデータが書き込まれた時点で、ホストコンピュータ1に対して書込み完了報告が送信される。この時点では、書込みを要求されたデータは、キャッシュ領域上にのみ存在するので、ダーティ状態(ST5)となっている。   When there is a write access from the host computer 1, the state transitions from ST1 to ST3 to ST3, and generation of parity data is started. When parity data is generated for the data requested to be written, the state changes from ST3 to ST4 to ST5. When data is written from the host computer 1 to one or more slots in the CLPR cache area, a write completion report is transmitted to the host computer 1. At this time, since the data requested to be written exists only in the cache area, it is in a dirty state (ST5).

そして、ダーティ状態にあるスロットのデータが所定の物理デバイスに書き込まれると(デステージ)、そのスロットは、ダーティ状態からクリーン状態に変化する(ST5→ST2)。クリーン状態にあるデータは、物理デバイスに書き込まれているので、もしも必要ならばキャッシュ領域から消去しても構わない。クリーン状態にあるスロットに格納されているデータをキャッシュ上から消去すると、そのスロットは、クリーン状態から未使用状態へ戻る(ST2→ST1)。   When the data of the slot in the dirty state is written to the predetermined physical device (destage), the slot changes from the dirty state to the clean state (ST5 → ST2). Since the data in the clean state is written in the physical device, it may be erased from the cache area if necessary. When the data stored in the slot in the clean state is erased from the cache, the slot returns from the clean state to the unused state (ST2 → ST1).

ホストコンピュータ1からリードアクセスがあった場合は、図5と共に述べた各階層テーブルT1〜T6を順番に辿ることにより、要求されたデータが特定される。そして、ホストコンピュータ1が要求しているデータを物理デバイスから読み出して、キャッシュ領域の1つまたは複数のスロットに格納させる。物理デバイスから読み出されたデータを格納するスロットは、クリーン状態を有する。   When there is a read access from the host computer 1, the requested data is specified by sequentially tracing the hierarchical tables T1 to T6 described with reference to FIG. Then, the data requested by the host computer 1 is read from the physical device and stored in one or more slots of the cache area. A slot for storing data read from the physical device has a clean state.

図7は、キュー構造を示す説明図である。キュー100は、同一状態にあるSLCBテーブルT6を一方向または双方向につなげる待ち行列として構成される。SLCBテーブルT6の状態が変化すると、例えば、FIFO(First-In First-Out:先入れ先出し)やLRU(Least Recently Used:最長未使用時間)等のような予め設定されたアルゴリズムに基づいて、キュー100の構成は変化する。   FIG. 7 is an explanatory diagram showing a queue structure. The queue 100 is configured as a queue that connects the SLCB table T6 in the same state in one direction or in both directions. When the state of the SLCB table T6 is changed, for example, based on a preset algorithm such as FIFO (First-In First-Out), LRU (Least Recently Used), etc. Configuration changes.

SLCBテーブルT6への操作が競合して整合性が失われるのを防止するために、各キュー100毎に排他制御を行う。即ち、操作対象のキューのロックを取得した場合にのみ、そのキューへの操作を行うことができる。本明細書では、このキュー単位の排他制御を「キューロック」と呼ぶ。従って、上述したVDEVロックとキューロックとの2段階の排他制御の下で、SLCBテーブルT6は操作可能となっている。つまり、操作しようとするSLCBテーブルT6が属するVDEV70のロックと、そのSLCBテーブルT6が接続されているキューのロックとの2つのロックを取得した場合のみ、そのSLCBテーブルT6の内容を変更することができる。   Exclusive control is performed for each queue 100 in order to prevent a loss of consistency due to conflicting operations on the SLCB table T6. That is, an operation on the queue can be performed only when the lock of the queue to be operated is acquired. In this specification, this exclusive control for each queue is referred to as “queue lock”. Accordingly, the SLCB table T6 can be operated under the above-described two-stage exclusive control of the VDEV lock and the queue lock. That is, the contents of the SLCB table T6 can be changed only when two locks are acquired: the lock of the VDEV 70 to which the SLCB table T6 to be operated belongs and the lock of the queue to which the SLCB table T6 is connected. it can.

このように、キュー100への操作は排他制御されるため、ロック取得時のオーバーヘッドを考慮して、同一種類のキューを複数本設けている。クリーンキュー、ダーティキュー、フリーキュー等は、それぞれ複数本のキューから構成される。   As described above, since operations on the queue 100 are exclusively controlled, a plurality of queues of the same type are provided in consideration of overhead at the time of acquiring a lock. Each of the clean queue, the dirty queue, the free queue, and the like includes a plurality of queues.

キューセットを構成する個々のキューには、それぞれカウンタ200が関連付けられている。カウンタ200は、そのキューに属するSLCBテーブルT6及びSGCBテーブルT7の数を管理するものである。カウンタ200に管理されているSLCB数等に基づいて、後述の過負荷制御等を行うことができる。   A counter 200 is associated with each queue constituting the queue set. The counter 200 manages the number of SLCB tables T6 and SGCB tables T7 belonging to the queue. Based on the number of SLCBs managed by the counter 200, overload control described later can be performed.

また、キューセットを構成する個々のキュー100には、キュー管理テーブル300も関連付けられる。キュー管理テーブル300は、キュー100の構造等を管理するものである。キュー100、カウンタ200及びキュー管理テーブル300は、それぞれ共有メモリ50に記憶される。   In addition, a queue management table 300 is also associated with each queue 100 constituting the queue set. The queue management table 300 manages the structure of the queue 100 and the like. The queue 100, the counter 200, and the queue management table 300 are stored in the shared memory 50, respectively.

図9は、各CLPRのキャッシュ領域の使用状態と各キューとの関係を模式的に示す説明図である。各CLPRのキャッシュ領域は、その使用状態に応じて、「使用中領域」と「未使用領域」とに分けることができる。使用中領域とは、データを格納しているスロット群(セグメント群)を意味する。未使用領域とは、空いているスロット群(セグメント群)を意味する。   FIG. 9 is an explanatory diagram schematically showing the relationship between the usage state of the cache area of each CLPR and each queue. The cache area of each CLPR can be divided into “in-use area” and “unused area” according to the use state. The in-use area means a slot group (segment group) storing data. An unused area means an empty slot group (segment group).

使用されているセグメントの総数と1つのセグメントあたりのデータサイズとを乗算したものが、そのCLPRにおける使用中領域のサイズとなる。使用されているセグメントには、クリーン状態にあるセグメントとダーティ状態にあるセグメントとが含まれる。従って、そのCLPRに割り当てられているキャッシュ領域のうち現在使用されている領域のサイズは、(クリーン状態のセグメント数+ダーティ状態のセグメント数)で表すことができる。未使用領域のサイズは、フリー状態にあるセグメント数で表すことができる。   The product of the total number of segments used and the data size per segment is the size of the area in use in the CLPR. The segments that are used include segments that are in a clean state and segments that are in a dirty state. Therefore, the size of the currently used area among the cache areas allocated to the CLPR can be expressed as (number of clean segments + number of dirty segments). The size of the unused area can be represented by the number of segments in the free state.

フリーキュー101は、フリー状態(未使用状態)にあるSLCBテーブルT6を管理するものである。フリーキュー101に接続されているSLCBテーブルT6(及びSGCBテーブルT7)の数は、フリーキュー101に関連付けられているフリーカウンタ201により把握されている。フリーキュー101の制御単位はVDEVであり、キューロックの単位もVDEV単位である。そして、フリーキュー101は、例えば、FIFOに従って使用される。フリーキュー101は、例えば、VDEV70の実装数の2倍設けている。従って、実装可能なVDEV70の最大数を512とすると、フリーキュー101の総数は1024となる。   The free queue 101 manages the SLCB table T6 in a free state (unused state). The number of SLCB tables T6 (and SGCB table T7) connected to the free queue 101 is grasped by the free counter 201 associated with the free queue 101. The control unit of the free queue 101 is a VDEV, and the queue lock unit is also a VDEV unit. The free queue 101 is used according to, for example, a FIFO. The free queue 101 is provided twice as many as the number of mounted VDEVs 70, for example. Accordingly, if the maximum number of mountable VDEVs 70 is 512, the total number of free queues 101 is 1024.

クリーンキュー102は、クリーン状態にあるSLCB管理テーブルT6を管理するものである。クリーンキュー102に接続されているSLCBテーブルT6(及びSGCBテーブルT7)の数は、クリーンキュー102に関連付けられているクリーンカウンタ202によって把握されている。クリーンキュー102の制御単位はVDEVであり、キューロックの単位もVDEV単位である。クリーンキュー102は、例えば、LRUに従って使用される。クリーンキュー102は、例えば、VDEV70の実装数の4倍設けている(512×4=2048)。   The clean queue 102 manages the SLCB management table T6 in the clean state. The number of SLCB tables T6 (and SGCB table T7) connected to the clean queue 102 is grasped by the clean counter 202 associated with the clean queue 102. The control unit of the clean queue 102 is a VDEV, and the queue lock unit is also a VDEV unit. The clean queue 102 is used according to, for example, LRU. The clean queue 102 is provided, for example, four times as many as the number of mounted VDEVs (512 × 4 = 2048).

ダーティキュー103は、ダーティ状態にあるSLCB管理テーブルT6を管理するものである。ダーティキュー103に接続されているSLCBテーブルT6(及びSGCBテーブルT7)の数は、ダーティキュー103に関連付けられているダーティカウンタ203によって把握されている。ダーティキュー103の制御単位は物理ドライブである。ダーティキュー103は、例えば、ディスクドライブ80の実装数の32倍設けている。ディスクドライブ80を2048個実装する場合、ダーティキュー103は65536個設けることができる。ダーティキュー103は、物理デバイスに書込み前のデータ(セグメント)を管理するためのものである。従って、論理デバイス(VDEV70)よりも物理デバイス(ディスクドライブ80)の方に関連が深い。そこで、ダーティキュー103は、物理デバイスの数に依存して設定するようになっている。   The dirty queue 103 manages the SLCB management table T6 in the dirty state. The number of SLCB tables T6 (and SGCB table T7) connected to the dirty queue 103 is known by the dirty counter 203 associated with the dirty queue 103. The control unit of the dirty queue 103 is a physical drive. The dirty queue 103 is provided, for example, 32 times the number of disk drives 80 mounted. When 2048 disk drives 80 are mounted, 65536 dirty queues 103 can be provided. The dirty queue 103 is for managing data (segments) before being written to the physical device. Therefore, the physical device (disk drive 80) is more relevant than the logical device (VDEV 70). Therefore, the dirty queue 103 is set depending on the number of physical devices.

使用中カウンタ206は、各CLPRにおける使用中のセグメント数(ダーティ状態のセグメント数+クリーン状態のセグメント数)をカウントするものである。   The in-use counter 206 counts the number of segments in use in each CLPR (the number of dirty segments + the number of clean segments).

図10は、各CLPRと各キュー及びカウンタ等の関係を示す説明図である。上述した各キュー、カウンタ及び管理テーブルは、キャッシュ管理単位(セグメントまたはスロット)を管理するための管理情報を構成する。本実施例では、セグメントまたはスロットの性質(ステータス)に応じて、各CLPR毎にそれぞれ設ける管理情報(分割管理情報)と、全CLPRに適用する共通管理情報とに区別する。   FIG. 10 is an explanatory diagram showing the relationship between each CLPR and each queue and counter. Each queue, counter, and management table described above constitute management information for managing a cache management unit (segment or slot). In this embodiment, the management information (divided management information) provided for each CLPR and the common management information applied to all CLPRs are distinguished according to the nature (status) of the segment or slot.

図10に示すように、各CLPRには、クリーンキュー102と、クリーンカウンタ(正確にはクリーンキューカウンタ)202と、フリーキューカウンタ201と、色分けキューカウンタ204と、使用中カウンタ206と、BINDキューカウンタ205とが、それぞれ設けられている。また、図示を省略しているが、クリーンキュー102の構成を管理するためのクリーンキュー管理テーブルも各CLPR毎にそれぞれ設けられている。以上のように、各CLPR毎にそれぞれ設けられる管理用の情報が分割管理情報を構成する。   As shown in FIG. 10, each CLPR includes a clean queue 102, a clean counter (more precisely, a clean queue counter) 202, a free queue counter 201, a color-coded queue counter 204, a busy counter 206, and a BIND queue. A counter 205 is provided. Although not shown, a clean queue management table for managing the configuration of the clean queue 102 is also provided for each CLPR. As described above, the management information provided for each CLPR constitutes the divided management information.

これに対し、フリーキュー101と、ダーティキュー103と、ダーティカウンタ(正確にはダーティキューカウンタ)203と、色分けキュー104と、BINDキュー105と、これら各キュー101,103〜105を管理するためのキュー管理テーブル301とは、全てのCLPRに共通に適用される共通管理情報を構成する。   On the other hand, the free queue 101, the dirty queue 103, the dirty counter (exactly the dirty queue counter) 203, the color coding queue 104, the BIND queue 105, and the queues 101 and 103 to 105 are managed. The queue management table 301 constitutes common management information that is commonly applied to all CLPRs.

色分けキュー104とは、PCR機能によってキャッシュ領域に常駐化されるデータを管理するためのキューである。色分けキューカウンタ204は、PCRにより常駐化されているセグメント数をカウントする。   The color classification queue 104 is a queue for managing data that is made resident in the cache area by the PCR function. The color coding queue counter 204 counts the number of segments that are made resident by PCR.

BINDキュー105とは、DCR機能によってキャッシュ領域に常駐化されるデータを管理するためのキューである。BINDキューカウンタ205は、DCRにより常駐化されているセグメント数(またはスロット数)をカウントする。   The BIND queue 105 is a queue for managing data that is resident in the cache area by the DCR function. The BIND queue counter 205 counts the number of segments (or the number of slots) resident by the DCR.

常駐化されるデータを格納するセグメントを管理するための色分けキュー104及びBINDキュー105をそれぞれ設けることにより、各CLPR内において、常駐化すべきデータを格納するセグメントがフリー状態に変更されるのを防止することができる。   By providing the color coding queue 104 and the BIND queue 105 for managing the segments for storing the data to be resident, the segments for storing the data to be resident in each CLPR can be prevented from being changed to the free state. can do.

次に、管理情報を構成する各サブ管理情報(キュー、カウンタ、キュー管理テーブル)のうち、いずれを各CLPR毎にそれぞれ設け、いずれを全CLPRに適用するのかの理由を説明する。   Next, the reason why each sub management information (queue, counter, queue management table) constituting the management information is provided for each CLPR and which is applied to all CLPR will be described.

クリーンキュー102と、クリーンカウンタ202及びクリーンキュー管理テーブルは、それぞれ各CLPR毎に設けられている。フリー状態のセグメントが枯渇すると、クリーン状態のスロットが解放されてフリースロット化される。従って、クリーンキュー102は、最も使用頻度の高いキューである。もしも、全てのCLPRにおいて、1セットのクリーンキューを用いる場合は、あるCLPRにおいてフリーセグメントの枯渇が生じると、他のCLPRで利用されているデータを格納するクリーン状態のスロットが解放されてしまう可能性がある。即ち、一方のCLPRにおけるキャッシュ利用状態が他方のCLPRにおけるキャッシュ利用状態に影響を与えることになる。そこで、本実施例では、クリーンキュー102と、クリーンカウンタ202とを各CLPR毎にそれぞれ設けることができるようにしている。なお、キュー管理テーブルは、キューと一体的に取り扱われるものである。従って、クリーンキュー102を各CLPR毎にそれぞれ設ける場合、クリーンキュー管理テーブルも各CLPR毎にそれぞれ設けられる。   The clean queue 102, the clean counter 202, and the clean queue management table are provided for each CLPR. When free segments are depleted, clean slots are freed to become free slots. Therefore, the clean queue 102 is the most frequently used queue. If a set of clean queues is used for all CLPR, if a free segment is depleted in one CLPR, a clean slot for storing data used by other CLPR may be released. There is sex. That is, the cache usage state in one CLPR affects the cache usage state in the other CLPR. Therefore, in this embodiment, a clean queue 102 and a clean counter 202 can be provided for each CLPR. The queue management table is handled integrally with the queue. Therefore, when the clean queue 102 is provided for each CLPR, a clean queue management table is also provided for each CLPR.

使用中カウンタ206は、各CLPR毎にそれぞれ設けられる。使用中カウンタ206は、クリーン状態のセグメント数とダーティ状態のセグメント数とを加算した値をカウントするものである。従って、使用中カウンタ206のカウント値からクリーンカウンタ202のカウント値を減算して得られる値は、そのCLPRにおけるダーティ状態のセグメント数に他ならない。従って、クリーンカウンタ202及び使用中カウンタ206が各CLPR毎にそれぞれ設けられていれば、ダーティカウンタ203を各CLPR毎にそれぞれ設ける必要はない。   A busy counter 206 is provided for each CLPR. The busy counter 206 counts a value obtained by adding the number of clean segments and the number of dirty segments. Therefore, the value obtained by subtracting the count value of the clean counter 202 from the count value of the in-use counter 206 is nothing but the number of dirty segments in the CLPR. Therefore, if the clean counter 202 and the in-use counter 206 are provided for each CLPR, it is not necessary to provide the dirty counter 203 for each CLPR.

ダーティキュー103は、物理デバイスに関連するキューであり、制御単位も物理デバイス単位となっている。従って、もしも、ダーティキュー103を各CLPR毎にそれぞれ設ける場合は、ダーティキュー管理テーブルを記憶するための記憶容量が増大し、共有メモリ50の記憶領域を圧迫する。例えば、キュー1本あたりに必要となる情報量は、キュー管理テーブルが16バイト、カウンタが4バイトである。キューの分割はキュー管理テーブルの分割を意味するため、共有メモリ50の多くの記憶領域が分割管理情報の記憶のために消費される。そこで、本実施例では、共有メモリ50の記憶資源を効率的に使用するために、ダーティキュー103及びダーティカウンタ203は、各CLPR毎に設けるのではなく、全てのCLPRについて適用することとした。   The dirty queue 103 is a queue related to a physical device, and the control unit is also a physical device unit. Therefore, if the dirty queue 103 is provided for each CLPR, the storage capacity for storing the dirty queue management table increases and the storage area of the shared memory 50 is compressed. For example, the amount of information required per queue is 16 bytes for the queue management table and 4 bytes for the counter. Since the division of the queue means the division of the queue management table, many storage areas of the shared memory 50 are consumed for storing the division management information. Therefore, in this embodiment, in order to efficiently use the storage resources of the shared memory 50, the dirty queue 103 and the dirty counter 203 are not provided for each CLPR, but are applied to all the CLPRs.

また、共有メモリ50の記憶資源を有効利用する観点から、フリーキュー101も各CLPR毎にそれぞれ設けることなく、バイト数の少ないフリーカウンタ201のみを各CLPR毎にそれぞれ設けることとした。   Further, from the viewpoint of effectively using the storage resources of the shared memory 50, the free queue 101 is not provided for each CLPR, and only the free counter 201 having a small number of bytes is provided for each CLPR.

フリーキュー101と同様の理由により、色分けキュー104,BINDキュー105も、それぞれのカウンタ204,205のみを各CLPR毎にそれぞれ設け、キュー自体は全てのCLPRに適用することとした。   For the same reason as the free queue 101, the color classification queue 104 and the BIND queue 105 are also provided with only the respective counters 204 and 205 for each CLPR, and the queue itself is applied to all the CLPR.

このように、本実施例では、サブ管理情報の属性に応じて、即ち、サブ管理情報により管理されるキャッシュ管理単位の属性に応じて、サブ管理情報を分配する。従って、共有メモリ50の記憶資源を効率的に使用し、各CLPR間の独立性を担保できる。   Thus, in this embodiment, the sub management information is distributed according to the attribute of the sub management information, that is, according to the attribute of the cache management unit managed by the sub management information. Therefore, it is possible to efficiently use the storage resources of the shared memory 50 and ensure independence between the CLPRs.

図11は、キャッシュ管理構造と排他制御の関係を示す説明図である。図11では、図10と共に述べた管理情報の一部のみが示されている。図11中の「VDEVロックGr」とは、VDEVロックのグループを示す。ディレクトリを操作するためにはVDEVロックの取得が必要となり、キューを操作するためにはキューロックの操作が必要となる。つまり、CLPRに管理されているデータを移動させるためには、そのデータを格納するセグメントを管理するキューへの操作権限と、そのセグメントが属するディレクトリへの操作権限との両方が必要となる。   FIG. 11 is an explanatory diagram showing the relationship between the cache management structure and exclusive control. In FIG. 11, only a part of the management information described with FIG. 10 is shown. “VDEV lock Gr” in FIG. 11 indicates a group of VDEV locks. In order to operate the directory, it is necessary to acquire a VDEV lock, and in order to operate the queue, it is necessary to operate the queue lock. In other words, in order to move the data managed by the CLPR, both the operation authority to the queue that manages the segment storing the data and the operation authority to the directory to which the segment belongs are required.

図11の右側に示すように、各CLPRには、1つまたは複数のVDEV70を関連付けることができる。あるCLPRに関連付けられているVDEV70を、別のCLPRに関連付けることもできる。図12は、CLPR0に関連付けられているVDEV#1をCLPR1へ付け替える様子を示す説明図である。   As shown on the right side of FIG. 11, one or more VDEVs 70 can be associated with each CLPR. A VDEV 70 associated with one CLPR can also be associated with another CLPR. FIG. 12 is an explanatory diagram showing how VDEV # 1 associated with CLPR0 is replaced with CLPR1.

VDEV70の所属先CLPRを変更する場合は、VDEV70とCLPRとの関連付けを変更し、さらに、移動対象のVDEV70に属するデータ群を新たなCLPRに関連付ける必要がある。即ち、移動対象のセグメント(またはスロット)を、移動元CLPRに関連付けられたキューから外し、移動先CLPRに関連付けられたキューに接続する。この操作に際して、VDEVロックとキューロックの両方が必要とされる。   When changing the affiliation CLPR to which the VDEV 70 belongs, it is necessary to change the association between the VDEV 70 and the CLPR, and further associate the data group belonging to the migration target VDEV 70 with the new CLPR. That is, the segment (or slot) to be moved is removed from the queue associated with the source CLPR and connected to the queue associated with the destination CLPR. For this operation, both VDEV lock and queue lock are required.

図13は、CLPRの構成を変更する場合の処理の一例を示す。図13には、移動元CLPRに関連付けられているVDEV70を、移動先CLPRに移動させる場合の概略が示されている。   FIG. 13 shows an example of processing when the CLPR configuration is changed. FIG. 13 shows an outline in the case where the VDEV 70 associated with the source CLPR is moved to the destination CLPR.

まず、管理端末3を介して、システム管理者がVDEV70の移動を要求すると(S1:YES)、CHA20やDKA30の代表プロセッサは、移動対象として指定されたVDEV70の固有情報を変更する(S2)。即ち、そのVDEV70が所属するCLPRに関する情報(帰属先CLPR情報)が、移動先のCLPRに関する情報に書き換えられる。   First, when the system administrator requests the migration of the VDEV 70 via the management terminal 3 (S1: YES), the representative processor of the CHA 20 or DKA 30 changes the unique information of the VDEV 70 designated as the migration target (S2). That is, the information regarding the CLPR to which the VDEV 70 belongs (affiliation destination CLPR information) is rewritten with the information regarding the CLPR of the movement destination.

次に、代表プロセッサは、移動対象のVDEV70に対応するSLCBテーブルT6を検索して抽出し、この移動対象となるSLCBテーブルT6について、CLPR情報を変更する(S3)。即ち、図8と共に上述したように、移動対象となっている各SLCBテーブルT6について、その所属先CLPRに関する情報を移動先CLPRに関する情報に変更する。   Next, the representative processor searches and extracts the SLCB table T6 corresponding to the migration target VDEV 70, and changes the CLPR information for the migration target SLCB table T6 (S3). That is, as described above with reference to FIG. 8, for each SLCB table T6 that is a movement target, the information regarding the affiliation destination CLPR is changed to the information regarding the movement destination CLPR.

そして、代表プロセッサは、移動対象のSLCBテーブルT6のスロットステータスがクリーン状態であるか否かを検査する(S4)。クリーン状態のスロットである場合(S4:YES)、即ち、移動対象のSLCBテーブルT6がクリーンキュー102に接続されている場合、代表プロセッサは、そのSLCBテーブルT6のキューステータスを、移動先CLPRに合わせて変更する(S5)。つまり、移動先CLPRに設けられているの何番目のクリーンキュー102に接続するか等の情報を書き換える。   Then, the representative processor checks whether or not the slot status of the SLCB table T6 to be moved is a clean state (S4). If the slot is in the clean state (S4: YES), that is, if the SLCB table T6 to be moved is connected to the clean queue 102, the representative processor matches the queue status of the SLCB table T6 with the destination CLPR. (S5). That is, information such as the number of clean queues 102 provided in the movement destination CLPR is rewritten.

代表プロセッサは、キューステータスを変更後、移動対象のSLCBテーブルT6を現在のクリーンキュー102から外す(S6)。そして、代表プロセッサは、移動させるクリーンスロットの数に応じて、移動元CLPRに設けられている使用中カウンタ206及びクリーンカウンタ202のカウント値をそれぞれ減じさせる(S7)。次に、代表プロセッサは、移動対象のSLCBテーブルT6を、移動先CLPRのクリーンキュー102に接続する(S8)。そして、代表プロセッサは、移動先CLPRにおける使用中カウンタ206及びクリーンカウンタ202のカウント値をそれぞれ増加させて(S9)、本処理を終了する。   After changing the queue status, the representative processor removes the SLCB table T6 to be moved from the current clean queue 102 (S6). Then, the representative processor decrements the count values of the in-use counter 206 and the clean counter 202 provided in the movement source CLPR according to the number of clean slots to be moved (S7). Next, the representative processor connects the SLCB table T6 to be moved to the clean queue 102 of the movement destination CLPR (S8). Then, the representative processor increases the count values of the in-use counter 206 and the clean counter 202 in the destination CLPR (S9), and ends this processing.

一方、移動対象のVDEV70に対応するSLCBテーブルT6がクリーン状態ではない場合(S4:NO)、代表プロセッサは、その移動対象のSLCBテーブルT6がフリー状態であるか否かを検査する(S10)。移動対象のSLCBテーブルT6がフリー状態の場合(S10:YES)、代表プロセッサは、移動元及び移動先のフリーカウンタ201をそれぞれ変更する(S11)。即ち、移動させるフリースロットの数に応じて、移動元のフリーカウンタ201を減算し、移動先のフリーカウンタ201を加算し、処理を終了する。移動対象のSLCBテーブルT6がダーティ状態の場合(S10:NO)、何もせずに処理を終了する。ダーティキュー103及びダーティカウンタ203は、全CLPRについて共通に適用されるので、キュー移動やカウンタの増減を行う必要はない。   On the other hand, when the SLCB table T6 corresponding to the movement target VDEV 70 is not in the clean state (S4: NO), the representative processor checks whether or not the movement target SLCB table T6 is in the free state (S10). When the SLCB table T6 to be moved is in a free state (S10: YES), the representative processor changes the free counter 201 of the movement source and the movement destination, respectively (S11). That is, in accordance with the number of free slots to be moved, the movement source free counter 201 is subtracted, the movement destination free counter 201 is added, and the process is terminated. If the SLCB table T6 to be moved is in a dirty state (S10: NO), the process is terminated without doing anything. Since the dirty queue 103 and the dirty counter 203 are commonly applied to all CLPRs, there is no need to perform queue movement or increase / decrease of the counter.

なお、図13中では省略しているが、色分けキュー104及びBINDキュー105に接続されるSLCBテーブルT6は、それぞれフリーキュー101と同様に処理される。色分けキュー104及びBINDキュー105は、各CLPR毎にそれぞれ分割して設けるのではなく、そのカウンタ204,205のみを各CLPRに設けるようになっている。従って、キュー間の移動は生じず、移動元と移動先でのカウンタ値の変更のみが発生する。   Although omitted in FIG. 13, the SLCB table T6 connected to the color classification queue 104 and the BIND queue 105 is processed in the same manner as the free queue 101. The color separation queue 104 and the BIND queue 105 are not provided separately for each CLPR, but only the counters 204 and 205 are provided for each CLPR. Therefore, there is no movement between the queues, and only a change of the counter value at the movement source and the movement destination occurs.

図14は、CLPRのキャッシュ割当量を変更する場合の概略処理を示すフローチャートである。システム管理者によるキャッシュ割当処理の変更操作が行われると(S31:YES)、代表プロセッサは、キャッシュ割当の変更に関連するSLCBテーブルT6を検出する(S32)。そして、代表プロセッサは、変更に関連するSLCBテーブルT6のCLPR情報を、キャッシュ割当の変更に応じて、変更させる(S33)。   FIG. 14 is a flowchart showing a schematic process for changing the CLPR cache allocation amount. When a change operation of the cache allocation process is performed by the system administrator (S31: YES), the representative processor detects the SLCB table T6 related to the change of the cache allocation (S32). Then, the representative processor changes the CLPR information of the SLCB table T6 related to the change according to the change of the cache allocation (S33).

例えば、CLPR1のキャッシュ割当量を減らして、その分だけCLPR2のキャッシュ割当量を増加させる場合、この変動領域に位置するSLCBテーブルT6の帰属先CLPRは、CLPR1からCLPR2に変更される。そして、キャッシュ領域の割当変更に応じて、クリーンカウンタ202等の値を増減させて処理を終了する(S34)。   For example, when the cache allocation amount of CLPR1 is decreased and the cache allocation amount of CLPR2 is increased by that amount, the attribution destination CLPR of the SLCB table T6 located in this variable region is changed from CLPR1 to CLPR2. Then, according to the cache area allocation change, the value of the clean counter 202 or the like is increased or decreased, and the process is terminated (S34).

図15は、フリーセグメントを確保するためのフリーセグメント収集処理の概略を示すフローチャートである。ここで、フリーセグメントとは、フリー状態にあるセグメントを意味する。本処理は、定期的に、あるいは、フリーセグメントの不足時(過負荷時)に、行うことができる。   FIG. 15 is a flowchart showing an outline of a free segment collection process for securing a free segment. Here, the free segment means a segment in a free state. This processing can be performed periodically or when the free segment is insufficient (overload).

まず、クリーン状態のSLCBテーブルT6のうち最も使用頻度の低いものを検出し(S41)、検出されたSLCBテーブルT6のステータスを、クリーン状態からフリー状態に変更する(S42)。このステータス変更に伴って、SLCBテーブルT6は、クリーンキュー102からフリーキュー101に付け替えられる。また、クリーンカウンタ202及びフリーカウンタ201のカウント値もそれぞれ変更される。S41及びS42の処理は、所定量のフリーセグメントが確保されるまで、繰り返し行われる(S43)。   First, the least frequently used SLCB table T6 in the clean state is detected (S41), and the status of the detected SLCB table T6 is changed from the clean state to the free state (S42). Along with this status change, the SLCB table T6 is changed from the clean queue 102 to the free queue 101. Further, the count values of the clean counter 202 and the free counter 201 are also changed. The processes of S41 and S42 are repeated until a predetermined amount of free segments are secured (S43).

図16は、CLPRを定義する様子を示す模式図である。本実施例では、CLPR0を共用のプール領域として使用する。CLPR0には、ストレージサブシステム10内で共通に使用される各種情報が記憶される。なお、上述のように、各種の管理情報は共有メモリ50に記憶されている。   FIG. 16 is a schematic diagram showing how CLPR is defined. In this embodiment, CLPR0 is used as a shared pool area. In CLPR0, various types of information commonly used in the storage subsystem 10 are stored. As described above, various types of management information are stored in the shared memory 50.

図16(a)に示すように、ユーザ専用のCLPRを1つも設定していない初期状態では、キャッシュメモリ40の有する全てのキャッシュ領域は、CLPR0に所属する。図16(b)に示すように、CLPR0に割り当てられたキャッシュ領域は、共通の諸情報等を記憶する「使用中領域」と「未使用領域」とに区別することができる。ユーザ専用のCLPR1を新たに設定する場合は、図16(c)に示すように、プール領域であるCLPR0から必要なだけのキャッシュ領域を切り取って、CLPR1に割り当てる。さらに、別のユーザ用にCLPR2を新たに設定する場合は、図16(d)に示すように、プール領域として使用されるCLPR0から必要な量だけキャッシュ領域を切り取り、新たに生成するCLPR2に割り当てる。ユーザ専用のCLPR1またはCLPR2を削除する場合は、削除されるCLPRに割り当てられているキャッシュ領域は、CLPR0に戻される。   As shown in FIG. 16A, in the initial state where no user-specific CLPR is set, all the cache areas of the cache memory 40 belong to CLPR0. As shown in FIG. 16B, the cache area allocated to CLPR0 can be distinguished into “in-use area” and “unused area” that store common information and the like. When a user-specific CLPR1 is newly set, as shown in FIG. 16C, as many cache areas as necessary are cut from the pool area CLPR0 and allocated to CLPR1. Further, when a new CLPR2 is set for another user, as shown in FIG. 16D, the cache area is cut out from the CLPR0 used as a pool area by a necessary amount and assigned to the newly generated CLPR2. . When deleting the user-specific CLPR1 or CLPR2, the cache area assigned to the CLPR to be deleted is returned to CLPR0.

図17は、上述した処理を示すフローチャートである。初期状態では、キャッシュメモリ40の有する全てのキャッシュ領域が、プール領域として使用される共用領域CLPR0に割り当てられる(S51)。ストレージサブシステム10全体で使用する諸情報は、CLPR0に記憶され、運用が開始される(S52)。   FIG. 17 is a flowchart showing the above-described processing. In the initial state, all cache areas of the cache memory 40 are allocated to the shared area CLPR0 used as a pool area (S51). Various information used in the entire storage subsystem 10 is stored in the CLPR0 and the operation is started (S52).

CLPRを新たに追加する場合は(S53:YES)、CLPRの構成変更を行う(S54)。このCLPR構成変更処理では、CLPR0からキャッシュ領域を切り取り、新たなCLPRに割り当てる等の処理を行う。一方、既に生成されたCLPRを削除する場合(S53:NO、S55:YES)、削除するCLPRに割り当てられていたキャッシュ領域をCLPR0に戻す等の処理を行う(S56)。なお、原則として、CLPR0を削除することはできない。   When a new CLPR is added (S53: YES), the CLPR configuration is changed (S54). In this CLPR configuration change processing, processing such as cutting a cache area from CLPR0 and assigning it to a new CLPR is performed. On the other hand, when deleting the already generated CLPR (S53: NO, S55: YES), processing such as returning the cache area assigned to the CLPR to be deleted to CLPR0 is performed (S56). In principle, CLPR0 cannot be deleted.

図18は、各サブ端末2毎に、それぞれのサブ端末2が管理するCLPRに関する情報を表示等する様子を示す説明図である。   FIG. 18 is an explanatory diagram showing a state in which, for each sub-terminal 2, information related to CLPR managed by each sub-terminal 2 is displayed.

SVP90は、認証部91と、構成管理部92とを備えている。各CLPRの管理者は、サブ端末2を介してSVP90にアクセスし、ユーザID等を入力する。認証部91によるユーザ認証の結果、正当なユーザであると認められた場合、CLPRの管理者は、自己の管理下にあるCLPRについて構成変更を行うことができる。この構成変更の操作は、構成管理部92によって各CLPRに反映される。また、構成管理部92から取得されたCLPRに関する構成情報は、サブ端末2に表示させることができる。   The SVP 90 includes an authentication unit 91 and a configuration management unit 92. Each CLPR administrator accesses the SVP 90 via the sub-terminal 2 and inputs a user ID and the like. As a result of user authentication by the authentication unit 91, if it is recognized that the user is a valid user, the CLPR administrator can change the configuration of the CLPR under his / her management. This configuration change operation is reflected on each CLPR by the configuration management unit 92. Further, the configuration information regarding the CLPR acquired from the configuration management unit 92 can be displayed on the sub-terminal 2.

サブ端末2に表示可能な情報としては、例えば、CLPRに割り当てられている最大キャッシュ量、CLPRに割り当てられているVDEVに関する情報(VDEV番号やボリュームサイズ等)、使用中のキャッシュサイズ、未使用のキャッシュサイズ、CLPRへのIO頻度等を挙げることができる。なお、ストレージサブシステム10の全体を管理するシステム管理者は、全体端末3を介して、全てのCLPRに関する情報を取得することができ、各CLPRの構成変更等を行うことができる。   Information that can be displayed on the sub-terminal 2 includes, for example, the maximum cache amount allocated to the CLPR, information on the VDEV allocated to the CLPR (VDEV number, volume size, etc.), the cache size in use, and unused You can list cache size, IO frequency to CLPR, etc. Note that a system administrator who manages the entire storage subsystem 10 can obtain information on all the CLPRs via the entire terminal 3, and can change the configuration of each CLPR.

このように、本実施例によれば、ストレージサブシステム10内に設定した各CLPR毎に、それぞれ管理用の情報を分割する構成とした。従って、各CLPR間の干渉を抑制することができ、使い勝手を高めることができる。即ち、一方のCLPRに対するアクセスが増大した場合でも、他のCLPRに影響が及ぶのを極力防止することができる。   As described above, according to this embodiment, the management information is divided for each CLPR set in the storage subsystem 10. Therefore, interference between CLPRs can be suppressed, and usability can be improved. That is, even when access to one CLPR increases, it is possible to prevent the other CLPR from being affected as much as possible.

また、本実施例では、セグメントまたはスロットの属性に基づいて、管理情報を分配する構成とした。従って、全ての管理情報を単純に各CLPRにそれぞれ設ける構成と比較して、管理情報全体のデータサイズを低減することができ、共有メモリ50を効率的に使用することができる。   In this embodiment, the management information is distributed based on the segment or slot attributes. Therefore, the data size of the entire management information can be reduced and the shared memory 50 can be used efficiently compared to a configuration in which all management information is simply provided in each CLPR.

なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。   The present invention is not limited to the above-described embodiment. A person skilled in the art can make various additions and changes within the scope of the present invention.

本発明の実施例に係わるストレージサブシステムの外観図である。1 is an external view of a storage subsystem according to an embodiment of the present invention. ストレージサブシステムの論理的な概略構成を示すブロック図である。It is a block diagram which shows the logical schematic structure of a storage subsystem. ストレージサブシステムのより詳細なブロック図である。FIG. 3 is a more detailed block diagram of the storage subsystem. CLPR毎に割り当てられるキャッシュ領域とVDEVの関係を示す説明図である。It is explanatory drawing which shows the relationship between the cache area allocated for every CLPR, and VDEV. 階層構造を有するキャッシュ管理方法を示す説明図である。It is explanatory drawing which shows the cache management method which has a hierarchical structure. SLCBテーブルの状態遷移図である。It is a state transition diagram of a SLCB table. キュー、カウンタ及びキュー管理テーブルの関係を示す説明図である。It is explanatory drawing which shows the relationship between a queue, a counter, and a queue management table. SLCBテーブルの概略構造を示す説明図である。It is explanatory drawing which shows schematic structure of a SLCB table. キャッシュ領域と各キュー及びカウンタとの関係を示す説明図である。It is explanatory drawing which shows the relationship between a cache area | region, each queue, and a counter. CLPRの管理情報を分配する様子を示す模式図である。It is a schematic diagram which shows a mode that the management information of CLPR is distributed. VDEVロック及びキューロックによってデータ移動が可能となる様子を示す説明図である。It is explanatory drawing which shows a mode that data movement is attained by VDEV lock and queue lock. CLPR0からCLPR1にVDEVを移動させる様子を示す説明図である。It is explanatory drawing which shows a mode that a VDEV is moved from CLPR0 to CLPR1. VDEVを移動させる場合の処理を示すフローチャートである。It is a flowchart which shows the process in the case of moving VDEV. CLPRへのキャッシュ割当を変更する場合のフローチャートである。It is a flowchart in the case of changing the cache allocation to CLPR. フリーセグメントの収集処理を示すフローチャートである。It is a flowchart which shows the collection process of a free segment. プール領域として用いられるCLPR0からキャッシュ領域を切り取って、新たなCLPRを設定する様子を示す説明図である。It is explanatory drawing which shows a mode that a cache area | region is cut out from CLPR0 used as a pool area | region, and a new CLPR is set. CLPRを定義する場合の処理を示すフローチャートである。It is a flowchart which shows the process in the case of defining CLPR. 各CLPRに関する情報をサブ管理端末に表示させる様子を示す説明図である。It is explanatory drawing which shows a mode that the information regarding each CLPR is displayed on a sub management terminal.

符号の説明Explanation of symbols

1…ホストコンピュータ、2…サブ端末、3…全体端末、10…ストレージサブシステム、11…基本筐体、12…増設筐体、13…制御パッケージ、14…電源ユニット、15…バッテリユニット、16…冷却ファン、20…チャネルアダプタ、21…通信ポート、30…ディスクアダプタ、40…キャッシュメモリ、50…共有メモリ、60…スイッチ部、70…論理デバイス、80…ディスクドライブ、90…サービスプロセッサ、91…認証部、92…構成管理部、100…キュー、101…フリーキュー、102…クリーンキュー、103…ダーティキュー、104…色分けキュー、105…BINDキュー、200…カウンタ、201…フリーキューカウンタ、202…クリーンキューカウンタ、203…ダーティキューカウンタ、204…色分けキューカウンタ、205…BINDキューカウンタ、206…使用中カウンタ、300…キュー管理テーブル、CLPR…論理的キャッシュ分割領域、SLPR…仮想筐体、SLCB…スロット制御テーブル、SGCB…セグメント制御ブロック、F1…DCR、F2…サイドファイル、F3…PCR、CN…通信ネットワーク、ST…ステータス、T1〜T7…テーブル   DESCRIPTION OF SYMBOLS 1 ... Host computer, 2 ... Sub-terminal, 3 ... Whole terminal, 10 ... Storage subsystem, 11 ... Basic enclosure, 12 ... Expansion enclosure, 13 ... Control package, 14 ... Power supply unit, 15 ... Battery unit, 16 ... Cooling fan, 20 ... channel adapter, 21 ... communication port, 30 ... disk adapter, 40 ... cache memory, 50 ... shared memory, 60 ... switch unit, 70 ... logical device, 80 ... disk drive, 90 ... service processor, 91 ... Authentication unit, 92 ... Configuration management unit, 100 ... Queue, 101 ... Free queue, 102 ... Clean queue, 103 ... Dirty queue, 104 ... Color-coded queue, 105 ... BIND queue, 200 ... Counter, 201 ... Free queue counter, 202 ... Clean queue counter, 203 ... Dirty queue counter, 2 04 ... Color-coded queue counter, 205 ... BIND queue counter, 206 ... In-use counter, 300 ... Queue management table, CLPR ... Logical cache partition area, SLPR ... Virtual enclosure, SLCB ... Slot control table, SGCB ... Segment control block, F1 ... DCR, F2 ... side file, F3 ... PCR, CN ... communication network, ST ... status, T1-T7 ... table

Claims (2)

上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、
論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、
前記各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、
前記各チャネルアダプタ及び前記各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、
前記キャッシュメモリを論理的に分割して構成される複数のキャッシュ分割領域と、
前記各キャッシュ分割領域にそれぞれ記憶されるデータを前記各キャッシュ分割領域毎に管理するための管理情報を記憶する制御メモリと、
前記各記憶デバイス群の有する物理的記憶領域上に設けられ、前記各キャッシュ分割領域に割り当てられる論理デバイスと、
を備え、
前記管理情報は、前記各キャッシュ分割領域毎にそれぞれ設けられる分割管理情報と、前記各キャッシュ分割領域の全体に適用される共通管理情報とから構成されており、さらに、
前記管理情報は、
未使用状態のキャッシュ管理単位が接続されるフリーキューと、
前記フリーキューに関連付けられ、前記フリーキューに接続される前記未使用状態のキャッシュ管理単位の数をカウントするフリーキューカウンタと、
前記記憶デバイス群に反映前のダーティ状態のデータを格納するキャッシュ管理単位が接続されるダーティキューと、
前記ダーティキューに関連付けられ、前記ダーティキューに接続される前記ダーティ状態のデータを格納する前記キャッシュ管理単位の数をカウントするダーティキューカウンタと、
前記記憶デバイス群に反映済のクリーン状態のデータを格納するキャッシュ管理単位が接続されるクリーンキューと、
前記クリーンキューに関連付けられ、前記クリーンキューに接続される前記クリーン状態のデータを格納する前記キャッシュ管理単位の数をカウントするクリーンキューカウンタと、
使用中のキャッシュ管理単位の総量をカウントする使用中カウンタとを含んで構成され、
前記フリーキューカウンタと、前記クリーンキューと、前記クリーンキューカウンタ及び前記使用中カウンタは、前記各キャッシュ分割領域毎にそれぞれ設けられて、前記分割管理情報をそれぞれ構成し、
前記フリーキューと、前記ダーティキュー及び前記ダーティキューカウンタは、前記共通管理情報として使用され、
前記各キャッシュ分割領域のうち移動元のキャッシュ分割領域に割り当てられている移動対象の論理デバイスの割当先を、前記各キャッシュ分割領域のうち移動先のキャッシュ分割領域に変更する場合において、
前記移動対象の論理デバイスに対応する移動対象のキャッシュ管理単位が前記クリーン状態のデータを格納する場合、
前記移動元のキャッシュ分割領域に設けられている、前記移動対象のキャッシュ管理単位に対応する前記クリーンキューから前記移動対象のキャッシュ管理単位を外し、
前記移動元のキャッシュ分割領域に設けられている前記クリーンキューに関連付けられている前記クリーンキューカウンタと、前記移動元のキャッシュ分割領域に設けられている前記使用中カウンタとを、前記移動対象のキャッシュ管理単位の数だけそれぞれ減算し、
前記クリーン状態のデータを格納する前記移動対象のキャッシュ管理単位を、前記移動先のキャッシュ分割領域に設けられている、前記移動対象のキャッシュ管理単位に対応する前記クリーンキューに接続し、
前記移動先のキャッシュ分割領域に設けられている前記クリーンキューに関連付けられている前記クリーンキューカウンタと、前記移動先のキャッシュ分割領域に設けられている前記使用中カウンタとを、前記移動対象のキャッシュ管理単位の数だけそれぞれ加算し、
前記移動対象のキャッシュ管理単位が前記未使用状態である場合、
前記移動元のキャッシュ分割領域に設けられている前記フリーキューカウンタを、前記移動対象のキャッシュ管理単位の数だけ減算し、
前記移動先のキャッシュ分割領域に設けられている前記フリーキューカウンタを、前記移動対象のキャッシュ管理単位の数だけ加算する、
ストレージサブシステム。
A plurality of channel adapters each controlling data exchange with the host device;
A plurality of storage devices each providing a logical storage area;
A plurality of disk adapters for controlling data exchange with each storage device group;
Cache memory respectively used by each channel adapter and each disk adapter;
A plurality of cache division regions configured by logically dividing the cache memory;
A control memory for storing management information for managing the data stored in each cache partition area for each cache partition area ;
A logical device provided on a physical storage area of each storage device group and assigned to each cache partition area;
With
The management information is composed of partition management information provided for each cache partition area, and common management information applied to the entire cache partition area , and
The management information is
A free queue to which an unused cache management unit is connected;
A free queue counter that is associated with the free queue and counts the number of unused cache management units connected to the free queue;
A dirty queue to which a cache management unit for storing dirty state data before reflection in the storage device group is connected;
A dirty queue counter that is associated with the dirty queue and counts the number of cache management units that store the dirty data connected to the dirty queue;
A clean queue to which a cache management unit for storing clean data reflected in the storage device group is connected;
A clean queue counter that counts the number of the cache management units that are associated with the clean queue and store the clean data connected to the clean queue;
And a busy counter that counts the total amount of cache management units in use,
The free queue counter, the clean queue, the clean queue counter, and the in-use counter are provided for each cache partition area, respectively, and configure the partition management information, respectively.
The free queue, the dirty queue and the dirty queue counter are used as the common management information,
In the case of changing the allocation destination of the migration target logical device assigned to the migration source cache division area among the cache division areas to the migration destination cache division area of the cache division areas,
When the migration target cache management unit corresponding to the migration target logical device stores the clean state data,
Removing the migration target cache management unit from the clean queue corresponding to the migration target cache management unit provided in the migration source cache partition area;
The clean queue counter associated with the clean queue provided in the migration source cache partition area and the in-use counter provided in the migration source cache partition area are transferred to the migration target cache. Subtract by the number of administrative units,
The cache management unit to be moved that stores the data in the clean state is connected to the clean queue corresponding to the cache management unit to be moved, provided in the cache partition area of the move destination,
The clean queue counter associated with the clean queue provided in the migration-destination cache partition area and the in-use counter provided in the migration-destination cache partition area are converted into the cache to be moved. Add the number of management units,
When the cache management unit to be moved is in the unused state,
Subtract the free queue counter provided in the migration source cache partition area by the number of cache management units to be migrated,
The free queue counter provided in the cache partition area of the transfer destination is added by the number of cache management units to be moved,
Storage subsystem.
前記各チャネルアダプタ毎に前記各キャッシュ分割領域をそれぞれ設定可能な請求項1に記載のストレージサブシステム。
The storage subsystem according to claim 1, wherein each cache partition area can be set for each channel adapter.
JP2008145288A 2008-06-03 2008-06-03 Storage subsystem Expired - Fee Related JP4808747B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008145288A JP4808747B2 (en) 2008-06-03 2008-06-03 Storage subsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008145288A JP4808747B2 (en) 2008-06-03 2008-06-03 Storage subsystem

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004029028A Division JP4141391B2 (en) 2004-02-05 2004-02-05 Storage subsystem

Publications (2)

Publication Number Publication Date
JP2008269636A JP2008269636A (en) 2008-11-06
JP4808747B2 true JP4808747B2 (en) 2011-11-02

Family

ID=40048958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008145288A Expired - Fee Related JP4808747B2 (en) 2008-06-03 2008-06-03 Storage subsystem

Country Status (1)

Country Link
JP (1) JP4808747B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496444B2 (en) 2015-10-02 2019-12-03 Hitachi, Ltd. Computer and control method for computer

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160544A (en) * 2009-01-06 2010-07-22 Core Micro Systems Inc Cache memory system and method for controlling cache memory
JP5801189B2 (en) 2009-04-23 2015-10-28 株式会社日立製作所 Computer system and control method thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128002A (en) * 1991-11-01 1993-05-25 Fujitsu Ltd Cache memory division control system
JPH07129470A (en) * 1993-11-09 1995-05-19 Hitachi Ltd Disk control method
JP3772369B2 (en) * 1995-11-20 2006-05-10 株式会社日立製作所 Storage subsystem
JPH09319655A (en) * 1996-05-29 1997-12-12 Hitachi Ltd Cache managing method and storage device system
JPH10124388A (en) * 1996-10-15 1998-05-15 Hitachi Ltd Storage control unit
JP2001184242A (en) * 1999-12-24 2001-07-06 Hitachi Ltd Cache control method and computer system
JP2003131946A (en) * 2001-10-19 2003-05-09 Nec Corp Method and device for controlling cache memory
JP3933027B2 (en) * 2002-10-17 2007-06-20 日本電気株式会社 Cache memory partition management method in disk array system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496444B2 (en) 2015-10-02 2019-12-03 Hitachi, Ltd. Computer and control method for computer

Also Published As

Publication number Publication date
JP2008269636A (en) 2008-11-06

Similar Documents

Publication Publication Date Title
JP4141391B2 (en) Storage subsystem
US8683171B2 (en) Data management method in storage pool and virtual volume in DKC
US7594071B2 (en) Storage system employing a hierarchical directory section and a cache directory section
US7152149B2 (en) Disk array apparatus and control method for disk array apparatus
US7587553B2 (en) Storage controller, and logical volume formation method for the storage controller
JP5073259B2 (en) Virtualization system and area allocation control method
US20070043919A1 (en) Information processing method and system
US8291163B2 (en) Storage apparatus and configuration setting method
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
US7937553B2 (en) Controlling virtual memory in a storage controller
JP2007072519A (en) Storage system and control method of storage system
US8745326B2 (en) Request priority seek manager
US8954666B2 (en) Storage subsystem
JP2005190057A (en) Disk array device and remote copy control method for disk array device
JP4808747B2 (en) Storage subsystem
US9329800B2 (en) Preferred zone scheduling
JP2003296154A (en) Volume integrated management method and integrated management system
JP2023000777A (en) Storage system and control method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101203

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: 20110816

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110817

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees