JP2008047029A - Redundancy method and computer program for storage system and cache - Google Patents

Redundancy method and computer program for storage system and cache Download PDF

Info

Publication number
JP2008047029A
JP2008047029A JP2006224181A JP2006224181A JP2008047029A JP 2008047029 A JP2008047029 A JP 2008047029A JP 2006224181 A JP2006224181 A JP 2006224181A JP 2006224181 A JP2006224181 A JP 2006224181A JP 2008047029 A JP2008047029 A JP 2008047029A
Authority
JP
Japan
Prior art keywords
controller
area
cache
cache memory
data
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.)
Withdrawn
Application number
JP2006224181A
Other languages
Japanese (ja)
Inventor
Yoshihiro Hasebe
賀洋 長谷部
Takamasa Kawai
剛巨 河合
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006224181A priority Critical patent/JP2008047029A/en
Publication of JP2008047029A publication Critical patent/JP2008047029A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system of configuration making efficient use of a cache in a controller with a cache memory for storing part of data in a storage device. <P>SOLUTION: Controllers 0, 1 which are connected to a host computer, are accessed by correspondent magnetic disk devices, and are connected to each other in communication includes: cache memories (209a, 209b); cache configuration information (208a, 208b) for managing configuration information of the cache memories; device configuration information (211a, 211b) for storing correspondence between a region of the cache memory and a master controller; and processors (210a, 210b). Since the controllers manage exclusion and region ensuring of the cache memories individually and can arrange write cache data, redundant data of the write cache data, and read cache data in arbitrary regions on the same cache memory, the cache memories can be used effectively. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、ストレージシステムに関し、特に、複数のコントローラで個々にキャッシュメモリを持ち、データの喪失を防ぐため、それぞれのコントローラに同一のデータの保持を行うキャッシュ制御に適用した場合に好適とされるシステム及びキャッシュの冗長化方法並びにコンピュータ・プログラムに関する。   The present invention relates to a storage system, and is particularly suitable when applied to cache control in which each controller has a cache memory and prevents the loss of data in order to retain the same data in each controller. The present invention relates to a system, a cache redundancy method, and a computer program.

ディスクアレイ装置に代表されるストレージシステムでは、物理ディスク装置などのストレージ装置のアクセス速度の遅さを緩衝し、単位時間当りの入出力数やスループットなどの性能向上のために、キャッシュメモリが備えられている。   Storage systems represented by disk array devices are equipped with a cache memory to buffer the slow access speed of storage devices such as physical disk devices and improve performance such as the number of inputs / outputs per unit time and throughput. ing.

一般に、ディスクアレイ装置の全容量の中でアクセス頻度の高い領域は限られていることから、アクセス頻度の高い領域のデータをキャッシュメモリ上に一時保存しておくことにより、ホストコンピュータ等上位装置への応答の高速化を図ることができる。   In general, since the area with high access frequency is limited in the entire capacity of the disk array device, data in the area with high access frequency is temporarily stored in the cache memory, so that it can be transferred to a host computer such as a host computer. Can be speeded up.

ホストコンピュータからのリード要求の場合、キャッシュメモリの該リード要求のデータがキャッシュメモリに存在する(キャッシュヒット)か否か(キャッシュミス)の検索を行い、リード要求のデータがキャッシュメモリ上にあれば、ホストコンピュータにそのデータを返す。一方、リード要求のデータがなければ、磁気ディスク装置から該リード要求に相当するデータを読み込み、キャッシュメモリ上に書き込むと同時に、読み込んだデータをホストコンピュータに返す。   In the case of a read request from the host computer, a search is performed to determine whether or not the read request data in the cache memory exists in the cache memory (cache hit) (cache miss), and if the read request data is in the cache memory Return that data to the host computer. On the other hand, if there is no read request data, the data corresponding to the read request is read from the magnetic disk device, written to the cache memory, and the read data is returned to the host computer.

一方、ホストコンピュータからの要求がライト要求であれば、ホストから受け取ったライトデータを、キャッシュメモリにデータを書き込んだ時点で、ライト処理の完了をホストコンピュータに返し、処理時間を要する磁気ディスク装置への書き込みを、後でまとめて処理することで、ライト要求に対する応答性能を改善する制御が行われる。   On the other hand, if the request from the host computer is a write request, when the write data received from the host is written to the cache memory, the completion of the write processing is returned to the host computer, and the magnetic disk device requiring processing time is returned. Are processed collectively at a later time, whereby control for improving the response performance to the write request is performed.

この場合、キャッシュメモリの故障などにより、キャッシュメモリのデータが破壊されると、該当データの磁気ディスクへの書き込みは行えないことになる。   In this case, if the data in the cache memory is destroyed due to a failure of the cache memory or the like, the corresponding data cannot be written to the magnetic disk.

同様に、ホストコンピュータへはライト処理の終了が既に完了している旨の応答を報告しているため、ライト処理のリトライを行わない。その結果、該当データは失われてしまう。   Similarly, since a response indicating that the end of the write process has already been completed is reported to the host computer, the write process is not retried. As a result, the corresponding data is lost.

そこで、ストレージでは、キャッシュメモリの破壊によるライトデータの喪失を防ぐため、キャッシュメモリの冗長化がなされており、ストレージは、ホストコンピュータからのライト処理を受け取ると、複数のキャッシュメモリに書き込みを行う。キャッシュメモリが1つ故障しても、もう一方のキャッシュメモリからライトデータの書き込みが行われ、データは失われない。   Therefore, in the storage, in order to prevent the loss of write data due to the destruction of the cache memory, the cache memory is made redundant. When the storage receives a write process from the host computer, the storage writes to the plurality of cache memories. Even if one cache memory fails, write data is written from the other cache memory and no data is lost.

なお、冗長化を行うストレージに関する刊行物として、後記特許文献1や特許文献2や特許文献3等の記載が参照される。   In addition, as publications related to storage for redundancy, the descriptions in Patent Document 1, Patent Document 2, Patent Document 3, and the like described below are referred to.

特開2003−167782号公報JP 2003-167782 A 特開平9−146842号公報JP-A-9-146842 特表2004―538532号公報Special table 2004-538532 gazette

近時、磁気ディスク装置の容量の増加に伴い、ストレージに対するアクセスが多く、磁気ディスク装置の性能差を埋めるためのキャッシュの効率化、とりわけ、ストレージへのアクセスの多くを占めるリード要求に対する、キャッシュの有効利用が必要になってきている。   Recently, as the capacity of magnetic disk units has increased, the number of accesses to storage has increased, and the efficiency of caches to fill the performance gap of magnetic disk units has been improved, especially for read requests that account for the majority of accesses to storage units. Effective use is becoming necessary.

また、ストレージに対する要求として、複数のコントローラから、同一領域に対するライトが重なった場合には、いずれかのライトデータがそれぞれのキャッシュメモリ上に書き込まれ、それぞれのキャッシュメモリ上の領域を読み出した時に、同一のデータであることが要求される。これは、「データの一貫性の保証」と呼ばれている。冗長化とデータの一貫性を保証するストレージのキャッシュ制御方式としては、上記特許文献1、特許文献2、特許文献3の記載が参照される。   Also, as a request for storage, when multiple controllers write to the same area overlap, when any one of the write data is written on each cache memory and the area on each cache memory is read, The same data is required. This is called "guarantee of data consistency". Reference is made to the descriptions in Patent Document 1, Patent Document 2, and Patent Document 3 as storage cache control methods for ensuring redundancy and data consistency.

しかしながら、上記特許文献1に開示されるストレージは、リード/ライトのデータに関係なく、冗長化を行ったキャッシュメモリの同一アドレスにデータの冗長化を行うものであり、このため、冗長化の必要のないリードデータであっても、それぞれのキャッシュメモリを消費し、無駄が生じる。   However, the storage disclosed in Patent Document 1 performs data redundancy at the same address of the cache memory that has been made redundant, regardless of read / write data, and therefore requires redundancy. Even read data without data consumes each cache memory and is wasted.

また、上記特許文献2に記載されたシステムでは、各コントローラのプロセッサ毎に冗長先のコントローラにキャッシュの領域を保持し、そのキャッシュの領域に対して、通常は冗長先のコントローラのプロセッサによるキャッシュのアクセスを禁じることで、一貫性を保証するための排他処理を不要にしている。しかしながら、各コントローラは、他のコントローラの冗長化データ領域を保持しなければならない。このため、冗長化データ領域に空きがあっても使用できず、キャッシュメモリを有効に利用することが出来ない。   Further, in the system described in Patent Document 2, a cache area is held in a redundant controller for each processor of each controller, and the cache area by the processor of the redundant controller is usually compared with the cache area. Prohibiting access eliminates the need for exclusive processing to ensure consistency. However, each controller must hold the redundant data area of the other controller. For this reason, even if the redundant data area is empty, it cannot be used and the cache memory cannot be used effectively.

さらに、上記特許文献3に記載されたシステムでは、冗長化と一貫性処理を行うが、それぞれのコントローラに、読み取り用キャッシュ、書き込み用キャッシュ、ミラー用キャッシュを具備することを要する。すなわち、各コントローラにおいて、異なる用途のキャッシュメモリを用意する必要があり、専用のキャッシュメモリを用意しなければならないため、キャッシュメモリの有効利用が出来ない。   Further, in the system described in Patent Document 3, redundancy and consistency processing are performed, but each controller is required to have a read cache, a write cache, and a mirror cache. In other words, each controller needs to prepare a cache memory for a different purpose, and a dedicated cache memory must be prepared. Therefore, the cache memory cannot be effectively used.

したがって、本発明の主たる目的は、ストレージ装置のデータの一部を格納するキャッシュメモリを備えたコントローラにおけるキャッシュメモリの有効利用を図ることを可能とするシステムと方法及びプログラムを提供することにある。   Therefore, a main object of the present invention is to provide a system, a method, and a program that enable effective use of a cache memory in a controller having a cache memory for storing a part of data of a storage apparatus.

本発明の他の目的は、ライトデータの冗長化を行う際に、多重冗長化を実現するシステムと方法及びプログラムを提供することにある。   Another object of the present invention is to provide a system, method, and program for realizing multiple redundancy when write data is made redundant.

本発明のさらに他の目的は、ライトデータの冗長化を行うために転送される制御情報の転送効率を向上するシステムと方法及びプログラムを提供することにある。   Still another object of the present invention is to provide a system, method, and program for improving the transfer efficiency of control information transferred to make write data redundant.

本願で開示される発明は、該略以下の構成とされる。   The invention disclosed in the present application has the following configuration.

本発明の第1のアスペクト(側面)に係るシステムは、それぞれが、対応する上位装置に接続されるとともに、相互に通信接続し、対応するストレージ装置にアクセス自在とされる、複数のコントローラを含むストレージシステムであって、前記複数のコントローラのそれぞれが、前記ストレージ装置のデータの一部を格納するためのキャッシュメモリと、前記キャッシュメモリのアクセス制御を行うキャッシュ処理手段と、を備え、前記複数のコントローラのそれぞれは、さらに、前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、前記装置構成情報は、前記複数のコントローラ間で、同一の内容とされる。本発明において、前記上位装置からのアクセス要求を受けたコントローラにおいて、前記キャッシュ処理手段は、前記コントローラ内の前記装置構成情報を参照して、前記アクセス要求のアドレスに対応するデータを格納する領域に関してマスタとなるコントローラを決定し、前記マスタのコントローラの前記キャッシュ処理手段は、前記マスタのコントローラの前記キャッシュメモリの前記データの格納先の領域の排他処理を行い、前記データに関してこれを冗長化して格納するキャッシュメモリを持つ冗長先のコントローラが存在する場合に、前記冗長先のコントローラでのキャッシュメモリの排他処理に先んじて、前記マスタのコントローラでのキャッシュメモリの排他処理が行われる。前記領域の排他処理において、前記領域が排他されているか否かを確認し、前記領域が既に排他されている場合には、前記領域の排他の解除を待って排他を行い、前記領域が排他されていない場合には前記領域の排他を行う。   The system according to the first aspect (side surface) of the present invention includes a plurality of controllers, each of which is connected to a corresponding higher-level device, and is connected to each other for communication and accessible to the corresponding storage device. In the storage system, each of the plurality of controllers includes a cache memory for storing a part of the data of the storage device, and a cache processing unit that performs access control of the cache memory. Each of the controllers further stores and holds device configuration information that defines the correspondence between the logical address area from the host device and the master controller assigned to the area, and the device configuration information includes: The plurality of controllers have the same contents. In the present invention, in the controller that has received the access request from the host device, the cache processing means refers to the device configuration information in the controller and relates to an area for storing data corresponding to the address of the access request The master controller is determined, and the cache processing means of the master controller performs exclusive processing of the data storage destination area of the cache memory of the master controller, and stores the data in a redundant manner. When there is a redundant controller having a cache memory to be cached, exclusive processing of the cache memory in the master controller is performed prior to exclusive processing of the cache memory in the redundant controller. In the exclusion process of the area, it is confirmed whether or not the area is exclusive. If the area is already exclusive, the exclusion is performed after the exclusion of the area is released, and the area is excluded. If not, the area is exclusive.

本発明においては、前記上位装置からのライト要求を受けたコントローラにおいて、前記キャッシュ処理手段は、前記コントローラ内の前記装置構成情報を参照して、ライトデータを格納する領域に関してマスタとなるコントローラを決定し、前記マスタのコントローラの前記キャッシュ処理手段は、前記マスタのコントローラの前記キャッシュメモリの前記ライトデータの格納先の領域が既に排他されているか否かを確認し、前記領域が排他されている場合には、前記領域の排他が解除されるまで待ってから排他を行い、前記領域が排他されていない場合には、前記領域の排他を行い、前記ライトデータに関してこれを冗長化して格納すべきキャッシュメモリを持つ冗長先のコントローラが存在する場合に、前記冗長先のコントローラでのキャッシュメモリの排他処理に先んじて、前記マスタのコントローラでのキャッシュメモリの排他処理が行われる。   In the present invention, in the controller that has received a write request from the host device, the cache processing means refers to the device configuration information in the controller and determines a controller to be a master with respect to an area for storing write data. The cache processing means of the master controller checks whether the write data storage area of the cache memory of the master controller is already exclusive, and the area is exclusive In this case, after waiting until the exclusion of the area is released, the exclusion is performed, and when the area is not excluded, the area is excluded, and the write data is to be stored redundantly. When there is a redundant controller with memory, the redundant controller Ahead exclusive processing Yasshumemori, exclusive process of the cache memory of the controller of the master is performed.

本発明において、前記上位装置からのライト要求を受けた前記コントローラの前記キャッシュ処理手段は、前記ライト要求に対応するキャッシュメモリの領域に関してマスタとなるコントローラが、自コントローラでない場合には、前記マスタのコントローラに対して、キャッシュサーチを指示し、前記マスタのコントローラからキャッシュサーチの完了を受け取った場合、前記上位装置からのライト要求を受けた前記コントローラの前記キャッシュ処理手段、及び、冗長先の他のコントローラがある場合には、前記冗長先の他のコントローラの前記キャッシュ処理手段にてキャッシュサーチをそれぞれ行い、それぞれの前記コントローラのキャッシュメモリの領域に、ライトデータの書き込みを行う。   In the present invention, the cache processing means of the controller that has received a write request from the host device, if the controller that is the master for the cache memory area corresponding to the write request is not its own controller, When the controller is instructed to perform a cache search and receives the completion of the cache search from the master controller, the cache processing means of the controller that has received a write request from the host device, and other redundant destinations If there is a controller, a cache search is performed by the cache processing means of the other controller at the redundant destination, and write data is written in the cache memory area of each controller.

本発明において、前記複数のコントローラは、それぞれ、前記キャッシュメモリの領域の構成情報を管理するためのキャッシュ構成情報を備え、前記キャッシュ構成情報に関して、前記複数のコントローラは、同一の内容を参照する構成としてもよい。   In the present invention, each of the plurality of controllers includes cache configuration information for managing configuration information of the cache memory area, and the plurality of controllers refer to the same content with respect to the cache configuration information. It is good.

本発明においては、前記上位装置からのライト要求を受けたコントローラの前記キャッシュ処理手段は、前記ライト要求の論理アドレスに基づき、前記装置構成情報を参照して、前記ライト要求のデータの格納用のキャッシュメモリ上での該当領域の排他を行うためのマスタのコントローラを決定し、決定したマスタのコントローラのキャッシュ処理手段に対して、前記領域の排他処理を依頼し、
前記マスタのコントローラのキャッシュ処理手段は、指定された領域が既に自身のキャッシュメモリ上に存在する場合、他のアクセス要求で排他されているか否かを確認し、
前記領域が他のアクセス要求によって排他されている場合には、前記領域の排他処理が終了するまで待ち、
前記領域が他のアクセス要求で排他されていない場合には、前記領域の排他を行い、
一方、前記指定された領域が、前記キャッシュメモリ上になく新たに確保すべきである場合、前記キャッシュメモリ上に新たに領域を確保した後、前記新たに確保した領域の排他を行い、
前記マスタのコントローラでの排他処理が完了したことを、前記上位装置からのライト要求を受けた前記コントローラに通知する、構成としてもよい。
In the present invention, the cache processing means of the controller that has received the write request from the host device refers to the device configuration information based on the logical address of the write request, and stores the write request data. Determine a master controller for performing exclusion of the corresponding area on the cache memory, request the cache processing means of the determined master controller to perform the exclusion processing of the area,
The cache processing means of the master controller checks whether the designated area is already in its own cache memory and is exclusive with other access requests,
If the area is exclusive by another access request, wait until the exclusive processing of the area ends,
If the area is not excluded by another access request, the area is excluded,
On the other hand, if the specified area is not on the cache memory and should be newly secured, after securing a new area on the cache memory, the newly secured area is exclusive,
A configuration may be adopted in which the controller that has received the write request from the higher-level device is notified that the exclusion process in the master controller has been completed.

本発明においては、前記ライト要求を受けたコントローラの前記キャッシュ処理手段は、前記ライト要求に対して冗長化すべきキャッシュメモリを持つ少なくとも1つの冗長先のコントローラを決定し、前記冗長先のコントローラのキャッシュ処理手段に対して、ライト要求で冗長化を行うための領域の排他処理の依頼を行い、
前記冗長先のコントローラのキャッシュ処理手段は、前記冗長化を行うための領域が他で排他されている場合、前記排他が解除されるまで待った後に排他を行い、
他で排他されていない場合、前記冗長化を行うための領域の排他を行い、
前記冗長化を行うための領域が新たなものであれば、前記冗長化を行うための領域を新たに確保して排他を行い、
前記冗長先のコントローラのキャッシュ処理手段は、前記上位装置からのライト要求を受けたコントローラのキャッシュ処理手段に対して排他処理が完了したことを通知し、
前記上位装置からのライト要求を受けたコントローラのキャッシュ処理手段は、
冗長化のための領域の排他処理の依頼を発行したコントローラからの排他完了の応答を待ち合わせ、各コントローラにおいてキャッシュメモリの該当領域の排他処理が完了してから、マスタのコントローラ、および冗長先のコントローラのキャッシュメモリの該当領域に、前記上位装置から受けたライトデータの書き込みを行い、ライトデータに対する複数のコントローラに対する冗長化を実現する構成としてもよい。
In the present invention, the cache processing means of the controller that has received the write request determines at least one redundant destination controller having a cache memory to be made redundant with respect to the write request, and the cache of the redundant destination controller is determined. Request processing means exclusive processing of the area for redundancy by write request,
The cache processing means of the redundant destination controller performs exclusion after waiting until the exclusion is released when the area for performing redundancy is excluded by another,
If it is not excluded by others, exclusive of the area for performing the redundancy,
If the area for performing the redundancy is new, the area for performing the redundancy is newly secured and exclusive,
The cache processing means of the redundant destination controller notifies the controller cache processing means that has received the write request from the higher-level device that the exclusive processing has been completed,
The cache processing means of the controller that has received the write request from the host device,
Wait for the exclusion completion response from the controller that issued the request for exclusive processing of the area for redundancy, and after completing the exclusive processing of the corresponding area of the cache memory in each controller, the master controller and the redundant controller The write data received from the host device may be written into the corresponding area of the cache memory to realize redundancy for a plurality of controllers with respect to the write data.

本発明においては、前記複数コントローラが同一領域へのライト要求を受けた際に、最初に、マスタのコントローラでキャッシュメモリの領域の排他を行うことにより、同一領域に対する他のライト要求は、前記マスタのコントローラのキャッシュ処理手段で待ち、他の冗長化されたコントローラに対する同一の領域に対するライトを行わせないように制御するようにしてもよい。   In the present invention, when the plurality of controllers receive a write request to the same area, first, the master controller performs exclusion of the cache memory area so that another write request for the same area is It is also possible to wait by the controller cache processing means, and to perform control so as not to write to the same area for the other redundant controllers.

本発明においては、前記上位装置からのリード要求を受けたコントローラの前記キャッシュ処理手段は、前記リード要求のデータを格納する領域に対して、自コントローラが、前記領域のマスタ又は冗長先のコントローラであるか否かの判断を行い、
マスタ又は冗長先のコントローラの場合、前記キャッシュメモリに前記リード要求のデータの格納領域が存在するか否かを確認し、
前記キャッシュメモリに前記データを格納した領域が存在する場合には、前記領域が排他されてるか否かを確認し、
前記領域が他の要求によって排他されている場合、前記領域が解放されるまで待った後に排他を行い、
前記領域が他の要求によって排他されていなければ、前記領域の排他を行った上で、前記キャッシュメモリの前記領域のデータを前記上位装置に送信するようにしてもよい。
In the present invention, the cache processing means of the controller that has received the read request from the host device, for the area that stores the data of the read request, the own controller is the master of the area or the redundant destination controller. Make a decision on whether or not
In the case of a master or redundant destination controller, check whether there is a storage area for the read request data in the cache memory,
If there is an area storing the data in the cache memory, check whether the area is exclusive;
If the area is exclusive by another request, do the exclusion after waiting until the area is released,
If the area is not excluded by another request, the area data in the cache memory may be transmitted to the host device after the area is excluded.

本発明においては、リード要求のデータの領域が前記キャッシュメモリ上に存在しない場合には、前記キャッシュメモリ上に新たに領域を確保し、前記新たに確保した領域の排他を行った後に、前記ストレージ装置からデータを読み込み前記新たに確保した領域に格納した上で、前記上位装置にデータを送信する、ようにしてもよい。
前記上位装置よりリード要求を受けたコントローラの前記キャッシュ処理手段は、自身のコントローラが、前記リード要求のデータを格納する領域に関してマスタ又は冗長先のコントローラでない場合には、前記領域に関してマスタ又は冗長先のコントローラのうちのいずれか1つに前記領域の排他処理を依頼し、
前記排他処理の依頼を受けたコントローラのキャッシュ処理手段は、
前記コントローラのキャッシュメモリ上にリード要求のデータを格納する領域が存在するか確認を行い、
前記キャッシュメモリ上に前記リード要求のデータを格納する領域が存在する場合には、前記領域が排他されているか否かを確認し、
前記領域が他の要求によって排他されている場合、前記領域が解放されるまで待った後に排他を行い、
前記領域が他の要求によって排他されていなければ、前記領域の排他を行い、前記領域の排他の完了を、前記上位装置よりリード要求を受けたコントローラに通知し、
前記コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータを読み込み、前記上位装置に送信する、ようにしてもよい。
In the present invention, when the area of the read request data does not exist in the cache memory, a new area is secured on the cache memory, and after the newly secured area is excluded, the storage area Data may be read from the device, stored in the newly secured area, and then transmitted to the host device.
The cache processing means of the controller that has received the read request from the host device, if its own controller is not the master or redundant destination controller for the area storing the read request data, the master or redundant destination for the area. Requesting exclusive processing of the area to any one of the controllers
The cache processing means of the controller that has received the exclusive processing request includes:
Check whether there is an area for storing read request data on the cache memory of the controller,
If there is an area for storing the read request data on the cache memory, check whether the area is exclusive;
If the area is exclusive by another request, do the exclusion after waiting until the area is released,
If the area is not excluded by another request, the area is excluded, the completion of the exclusion of the area is notified to the controller that received the read request from the host device,
The cache processing means of the controller may read data in an area on the cache memory of the controller for which exclusion is performed, and transmit the data to the host device.

本発明においては、前記排他要求を受け取ったコントローラにおいて、前記リード要求のデータがキャッシュメモリ上に存在しない場合には、前記キャッシュメモリ上に新たに領域を確保し、前記新たに確保した領域の排他を行った後に、前記ストレージ装置からデータを読み込んで前記新たに確保した領域に格納し、前記新たに確保した領域の排他の完了を、前記上位装置よりリード要求を受けたコントローラに通知し、
前記コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータを読み込み、前記データを前記上位装置に送信する、ようにしてもよい。
In the present invention, in the controller that has received the exclusion request, if the data of the read request does not exist in the cache memory, a new area is secured on the cache memory and the newly secured area is excluded. After the data is read from the storage device and stored in the newly secured area, the completion of exclusion of the newly secured area is notified to the controller that received the read request from the host device,
The cache processing means of the controller may read data in an area on the cache memory of the controller for which exclusion is performed, and transmit the data to the host device.

本発明においては、前記上位装置よりライト要求を受けたコントローラの前記キャッシュ処理手段は、前記コントローラの内の前記装置構成情報を参照して、ライト要求のライトデータに対応するキャッシュメモリの領域のマスタとなるコントローラを決定し、前記上位装置よりライト要求を受けたコントローラがマスタのコントローラである場合、キャッシュサーチ及びキャッシュメモリにおいてライトデータを格納する領域の排他を行い、
前記上位装置よりアクセス要求を受けたコントローラがマスタでない場合、マスタのコントローラに対してキャッシュサーチ指示を送信し、
前記マスタのコントローラは、キャッシュサーチ及び前記キャッシュメモリにおいてライトデータを格納する領域の排他を行い、
つづいて、冗長先のコントローラがある場合に、前記冗長先のコントローラの前記キャッシュ処理手段は、キャッシュサーチ及び前記キャッシュメモリにおいて、ライトデータを格納する領域の排他を行い、
つづいて、マスタ、及び冗長先のコントローラのそれぞれのキャッシュメモリに、前記上位装置からのライトデータの書き込みが行われ、
その後、前記マスタのコントローラ、冗長先のコントローラの前記キャッシュ処理手段は、前記キャッシュメモリの前記領域の排他を解除する、構成としてもよい。
In the present invention, the cache processing means of the controller that has received the write request from the host device refers to the device configuration information in the controller, and masters the cache memory area corresponding to the write data of the write request. If the controller that has received the write request from the host device is the master controller, the cache search and the cache memory are exclusive for the area where the write data is stored,
If the controller that received the access request from the host device is not the master, send a cache search instruction to the master controller,
The master controller performs a cache search and an exclusive area for storing write data in the cache memory,
Subsequently, when there is a redundant destination controller, the cache processing means of the redundant destination controller performs an exclusion of an area for storing write data in the cache search and the cache memory,
Subsequently, write data is written from the host device to each cache memory of the master and the redundant controller,
Thereafter, the cache processing means of the master controller and redundant controller may release the exclusion of the area of the cache memory.

本発明においては、前記コントローラのキャッシュ処理手段は、前記キャッシュサーチの直前に、前記キャッシュメモリの領域の構成情報を管理するためのキャッシュ構成情報をロックし、前記キャッシュメモリの領域の排他の後、前記キャッシュ構成情報をアンロックする。本発明においては、前記コントローラのキャッシュ処理手段は、前記キャッシュメモリの領域の排他の解除の前に、前記キャッシュメモリの領域の構成情報を管理するためのキャッシュ構成情報をロックし、前記キャッシュメモリの領域の排他の解除の後、前記キャッシュ構成情報をアンロックする。   In the present invention, the cache processing means of the controller locks cache configuration information for managing configuration information of the cache memory area immediately before the cache search, and after exclusion of the cache memory area, The cache configuration information is unlocked. In the present invention, the cache processing means of the controller locks the cache configuration information for managing the configuration information of the cache memory area before releasing the exclusion of the cache memory area, After releasing the exclusion of the area, the cache configuration information is unlocked.

本発明の別のアスペクトに係る方法においては、それぞれが、対応する上位装置に接続されるとともに、相互に通信接続し、対応するストレージ装置の一部のデータを保持するキャッシュメモリを備えた複数のコントローラを含むストレージシステムのキャッシュメモリの制御方法であって、
前記複数のコントローラのそれぞれは、前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、前記装置構成情報は、前記複数のコントローラにおいて同一の内容とされ、前記上位装置からのアクセス要求を受けたコントローラは、前記コントローラ内の前記装置構成情報を参照して、前記アクセス要求のアドレスに対応するデータを格納する領域に関してマスタとなるコントローラを決定し、
前記マスタのコントローラは、前記マスタのコントローラの前記キャッシュメモリの前記データの格納先の領域の排他処理を行い(その際、前記領域が排他されているか否かを確認し、前記領域が既に排他されている場合には、前記領域の排他の解除を待って排他を行い、前記領域が排他されていない場合には、前記領域の排他を行う)、前記データに関してこれを冗長化して格納するキャッシュメモリを持つ冗長先のコントローラが存在する場合に、前記冗長先のコントローラでのキャッシュメモリの排他処理に先んじて、前記マスタのコントローラでのキャッシュメモリの排他処理が行われる、上記工程を含む。
In the method according to another aspect of the present invention, each of a plurality of cache memories each including a cache memory that is connected to a corresponding host device and is connected to each other for communication and holds a part of data of the corresponding storage device A method for controlling cache memory of a storage system including a controller, comprising:
Each of the plurality of controllers stores and holds device configuration information that defines a correspondence relationship between a logical address area from the host device and a master controller assigned to the area, and the device configuration information is The controller having the same contents in the plurality of controllers and receiving the access request from the host device refers to the device configuration information in the controller and stores data corresponding to the address of the access request Determine the master controller for the area,
The master controller performs an exclusion process on the data storage destination area of the cache memory of the master controller (in this case, confirms whether or not the area is exclusive, and the area is already exclusive). Cache memory that waits for the exclusion of the exclusion of the area, and performs exclusion when the area is not exclusive), and stores the data in a redundant manner The above-described steps are included, in which, when there is a redundant destination controller having the above, the cache memory exclusive processing in the master controller is performed prior to the cache memory exclusive processing in the redundant destination controller.

本発明の別のアスペクトに係るプログラムにおいては、
それぞれが、対応する上位装置に接続されるとともに、相互に通信接続し、対応するストレージ装置の一部のデータを保持するキャッシュメモリと、プロセッサを備えた、複数のコントローラを含み、
前記複数のコントローラのそれぞれは、前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、前記装置構成情報は、前記複数のコントローラは、同一の内容とされ、
前記コントローラのプロセッサに、
前記上位装置からのライト要求を受けた際に、前記コントローラ内の前記装置構成情報を参照して、ライト要求のアドレスのデータに関してマスタとなるコントローラを決定する処理と、
前記コントローラがマスタでない場合、前記マスタのコントローラにキャッシュメモリの排他を行うように指示する処理と、
前記マスタのコントローラでキャッシュメモリの領域の排他処理が終わったのち、前記コントローラ内のキャッシュメモリの領域を排他する処理と、
前記上記装置からのライト要求のデータを、前記コントローラ内のキャッシュメモリの領域に書き込むとともに、ライト要求のデータを前記マスタのコントローラに転送する処理と、を実行させるプログラムよりなる。
In a program according to another aspect of the present invention,
Each of them includes a plurality of controllers that are connected to a corresponding host device and that are connected to each other for communication and hold a part of the data in the corresponding storage device and a processor.
Each of the plurality of controllers stores and holds device configuration information that defines a correspondence relationship between a logical address area from the host device and a master controller assigned to the area, and the device configuration information is The plurality of controllers have the same content,
In the processor of the controller,
When receiving a write request from the host device, referring to the device configuration information in the controller, a process for determining a master controller for the data of the address of the write request;
If the controller is not the master, processing to instruct the master controller to perform cache memory exclusion;
After the exclusion process of the cache memory area in the master controller, the process of exclusiveizing the cache memory area in the controller;
The program comprises a program for writing the write request data from the device to a cache memory area in the controller and transferring the write request data to the master controller.

本発明によれば、複数のコントローラのそれぞれがキャッシュ処理手段を具備し、各キャッシュ処理手段で、個別に、キャッシュメモリの排他、領域確保を管理することで、同一キャッシュメモリ上の任意の領域に、ライトデータ、及びライトの冗長化データ、リードデータの配置を可能としており、キャッシュメモリの有効利用を図ることができる。   According to the present invention, each of the plurality of controllers includes a cache processing unit, and each cache processing unit individually manages the exclusion and area reservation of the cache memory, so that any area on the same cache memory can be managed. , Write data, write redundancy data, and read data can be arranged, and the cache memory can be used effectively.

本発明によれば、システムに共通に、マスタのコントローラと、冗長先のコントローラを規定しておき、ライトのデータの冗長化の際は、最初にマスタのコントローラの領域を排他処理することにより、データの一貫性を保証し、その後、冗長先のコントローラにデータを書き込むことで、三重以上の冗長化ができることにある。   According to the present invention, in common with the system, the master controller and the redundant controller are defined, and when the write data is made redundant, first, the master controller area is exclusively processed, By ensuring data consistency and then writing the data to the redundant controller, triple or more redundancy can be achieved.

本発明によれば、マスタでキャッシュサーチとキャッシュ領域の排他を行ったのと、冗長先のコントローラ等でキャッシュサーチとキャッシュ領域の排他を行って、ライトデータのキャッシュ領域への書き込みを行うことで、冗長先のコントローラ間で転送される情報を効率化している。   According to the present invention, the cache search and the cache area are excluded by the master, the cache search and the cache area are excluded by the redundant controller or the like, and the write data is written to the cache area. The information transferred between redundant controllers is made more efficient.

上記した本発明についてさらに詳細に説述する。本発明の1つの側面に係るストレージシステムは、上位装置に接続されるとともに、それぞれがストレージ装置を備え、相互に通信接続する、複数のコントローラを含むストレージシステムであって、前記複数のコントローラのそれぞれが、キャッシュメモリと、プロセッサ(図2の210a、210b)等よりなるキャッシュ処理手段を備え、キャッシュ処理手段は、
・キャッシュメモリの部分領域(例えばページ)の排他処理を行うコントローラ(「マスタのコントローラ」という)を決定する処理、
・各コントローラに備えられるキャッシュメモリの一部の領域の排他処理、及び、該領域がホストコンピュータから要求されるどのデータで相当するかを検索し、該要求対象のデータが存在しない場合、新たに領域を確保する処理、
・該領域が既に排他されていれば、該領域の排他が解除されるまで待つ制御を行う処理、
・キャッシュメモリに格納するデータの冗長化を行う際に、該領域がいずれのコントローラで冗長化されているかを決定する処理、
上記各処理を実行する。
The above-described present invention will be described in further detail. A storage system according to one aspect of the present invention is a storage system that includes a plurality of controllers that are connected to a host device, each of which includes a storage device and is connected to each other for communication, and each of the plurality of controllers Includes cache processing means including a cache memory, a processor (210a and 210b in FIG. 2), and the like.
A process for determining a controller (referred to as “master controller”) that performs exclusive processing of a partial area (for example, a page) of a cache memory,
・ Exclusion processing of a partial area of the cache memory provided in each controller, and what data requested by the host computer is searched, and if the requested data does not exist, it is newly Processing to secure the area,
-If the area is already excluded, a process of performing control to wait until the exclusion of the area is released,
A process for determining which controller the area is made redundant when performing redundancy of data stored in the cache memory;
The above processes are executed.

本発明においては、好ましくは、コントローラの上位装置をなすホストコンピュータからの要求で決定するキャッシュメモリ(図2の209a、209b)の部分領域のマスタのコントローラが何れのコントローラであるか示す情報(図2の211a、211b)と、キャッシュメモリの該領域がどのコントローラで冗長化されているかを示す情報(図2の208a、208b)に関して、各コントローラのキャッシュ処理手段は、同一の内容を参照することができる構成とされている。   In the present invention, it is preferable that information indicating which controller is a master controller in a partial area of a cache memory (209a and 209b in FIG. 2) determined by a request from a host computer that is a host device of the controller (FIG. 2) 211a, 211b) and the information (208a, 208b in FIG. 2) indicating which controller in which the area of the cache memory is made redundant, the cache processing means of each controller refers to the same contents. It can be configured.

ホストコンピュータからのアクセス要求がライトである場合には、キャッシュ処理手段を用いて、ライト要求のデータの格納用のキャッシュメモリ上での該当領域の排他処理を行うためのマスタのコントローラを決定する。   When the access request from the host computer is a write, a cache processing unit is used to determine a master controller for performing exclusive processing of the corresponding area on the cache memory for storing write request data.

その後、該キャッシュ処理手段は、マスタのコントローラのキャッシュ処理手段に対して、該領域の排他処理を依頼する。   Thereafter, the cache processing unit requests the cache processing unit of the master controller to perform exclusive processing of the area.

これを受けたマスタのコントローラのキャッシュ処理手段は、指定された領域が既に自身のキャッシュメモリ上に存在する場合、他のアクセス要求で排他されているか否かを確認する。   Upon receiving this, the cache processing means of the master controller checks whether or not the designated area is already excluded by another access request if it exists in its own cache memory.

確認の結果、該領域が他のアクセス要求によって排他されていれば、該排他が終了するまで待つ。一方、該領域が他のアクセス要求で排他されていなければ、排他処理を行う。   As a result of confirmation, if the area is excluded by another access request, the process waits until the exclusion ends. On the other hand, if the area is not excluded by another access request, an exclusion process is performed.

また、指定された領域が用意されていず、新たに確保すべきである場合、新たに領域を確保して排他処理を行う。   If the designated area is not prepared and should be newly secured, a new area is secured and exclusive processing is performed.

そして、マスタのコントローラでの排他処理が完了したことを、ホストからのライト要求を受けたコントローラに通知する。   Then, the controller that has received the write request from the host notifies the controller that the exclusion process in the master controller has been completed.

ライト要求を受けたコントローラは、キャッシュ処理手段により、該ライト要求で冗長化すべきキャッシュメモリを持つコントローラを決定し、それぞれのコントローラのキャッシュ処理手段に対して、ライト要求で冗長化を行うための領域の排他処理の依頼を行う。   The controller having received the write request determines a controller having a cache memory to be made redundant by the write request by the cache processing means, and performs redundancy for the cache processing means of each controller by the write request. Request exclusive processing of.

それぞれのコントローラのキャッシュ処理手段は、該領域が他で排他されていれば、解除されるまで待った後に排他処理を行い、他で排他されていなければ、排他処理を行う。   The cache processing means of each controller performs an exclusion process after waiting until the area is released if the area is excluded by others, and performs an exclusion process if the area is not excluded by others.

また、該領域が新たなものであれば、新たに確保して排他処理を行う。それぞれのコントローラのキャッシュ処理手段は、排他処理が完了したこと、最初にホストコンピュータからのライト要求を受けたコントローラのキャッシュ処理手段に対して排他処理が完了したことを通知する。   If the area is new, it is newly secured and exclusive processing is performed. The cache processing means of each controller notifies the completion of the exclusion process and the completion of the exclusion process to the cache processing means of the controller that first receives a write request from the host computer.

ホストコンピュータからのライト要求を受けたコントローラのキャッシュ処理手段は、冗長化のための領域の排他処理の依頼を発行したコントローラからの排他完了の応答(報告)を待ち合わせる。   The cache processing means of the controller that has received the write request from the host computer waits for an exclusive completion response (report) from the controller that has issued a request for exclusive processing of the area for redundancy.

そして、すべての領域の排他処理が完了してから、マスタのコントローラおよび冗長先のコントローラのキャッシュメモリの領域に、ホストコンピュータから受けたライトデータの書き込みを行うことで、ライトデータに対する複数のコントローラに対する冗長化を実現する。   After the exclusive processing of all areas is completed, write data received from the host computer is written to the cache memory areas of the master controller and the redundant controller, so that multiple controllers for the write data are written. Realize redundancy.

そして、複数のホストコンピュータからの異なるコントローラへの、同一領域に対するライト要求を受けた際にでも、最初にマスタのコントローラで排他を行うことにより、同領域に対する他のライト要求は、マスタのコントローラのキャッシュ処理手段で待つことになり、他の冗長化されたコントローラに対する、同領域に対するライトを行わせないことで、冗長化されたデータに対する一貫性の保証を実現する。   Even when a write request to the same controller from a plurality of host computers is received, the master controller first performs exclusion so that other write requests to the same controller By waiting for the cache processing means and not writing to the same area for other redundant controllers, the consistency of the redundant data is guaranteed.

さらに、ホストコンピュータからの要求がリードの場合には、該リード要求を受けたコントローラのキャッシュ処理手段は、該リード要求のリードデータを格納するための領域を、どのコントローラで行うか決定する。   Further, when the request from the host computer is a read, the cache processing means of the controller that has received the read request determines which controller performs the area for storing the read data of the read request.

該リード要求を受けたコントローラのキャッシュ処理手段は、まず、自身のコントローラが該領域に対してマスタ又は冗長先のコントローラであるか判断を行う。   Upon receiving the read request, the cache processing means of the controller first determines whether its own controller is a master or a redundant controller for the area.

自身のコントローラがマスタ又は冗長先のコントローラである場合、該リード要求を受けたコントローラのキャッシュ処理手段は、キャッシュメモリの該データの格納領域が存在するか否かの確認を行う。   When its own controller is a master or redundant controller, the cache processing means of the controller that has received the read request checks whether or not the data storage area of the cache memory exists.

その結果、該データの格納領域が存在することが確認されると、該リード要求を受けたコントローラのキャッシュ処理手段は、キャッシュメモリの該領域が排他されているか否かの確認を行う。   As a result, when it is confirmed that the data storage area exists, the cache processing means of the controller that has received the read request checks whether or not the area of the cache memory is exclusive.

キャッシュメモリの該領域が他の要求で排他されている場合には、ライト要求の場合と同様に、該リード要求を受けたコントローラのキャッシュ処理手段は、該領域が解放されるまで待った後に排他を行い、該領域が他の要求で排他されていなければ、そのまま排他を行う。その後、該リード要求を受けたコントローラのキャッシュ処理手段は、該領域のデータをホストコンピュータに送信し、リード要求に対する処理を終える。   When the area of the cache memory is excluded by another request, the cache processing means of the controller that has received the read request waits until the area is released, and then excludes the area, as in the case of the write request. If the area is not excluded by another request, the exclusion is performed as it is. Thereafter, the cache processing means of the controller that has received the read request transmits the data in the area to the host computer, and finishes the processing for the read request.

また、要求されたデータの領域がキャッシュメモリ上に存在しない場合、該リード要求を受けたコントローラのキャッシュ処理手段は、新たに領域を確保し、排他を行った後に、ディスクからデータを読み込み、該領域に格納し、その後、ホストコンピュータにデータを送信し、リード要求の処理を終える。   If the requested data area does not exist in the cache memory, the cache processing means of the controller that has received the read request secures a new area, performs exclusion, and reads the data from the disk. The data is stored in the area, and then data is transmitted to the host computer, and the read request processing is completed.

また、リード要求を受けた際に、自身のコントローラが該領域に対してマスタ又は冗長先のコントローラでない場合には、該リード要求を受けたコントローラのキャッシュ処理手段は、マスタ又は冗長先のコントローラのうちのいずれか1つに、該領域の排他処理を依頼する。   When the read request is received, if the own controller is not the master or redundant destination controller for the area, the cache processing means of the controller that has received the read request is the master or redundant destination controller. One of them is requested to perform exclusive processing of the area.

該排他処理を受けたコントローラのキャッシュ処理手段は、同様に、リード要求のデータの格納領域が存在するか確認を行う。   Similarly, the cache processing means of the controller that has received the exclusive processing checks whether there is a storage area for the read request data.

該排他処理を受けたコントローラのキャッシュ処理手段は、確認の結果、該リード要求のデータの格納領域が存在する場合、排他されているか否かの確認を行う。確認の結果、他の要求で排他されている場合、該排他処理を受けたコントローラのキャッシュ処理手段は、ライト要求の時と同様に、該領域が解放されるまで待った後に排他を行い、他の要求で排他されていなければ、該領域の排他を行う。   The cache processing means of the controller that has received the exclusion process confirms whether or not the storage area for the read request data exists, as a result of the confirmation. As a result of the confirmation, if the request is excluded by another request, the cache processing means of the controller that has received the exclusion process performs the exclusion after waiting until the area is released, as in the case of the write request. If it is not excluded by the request, the area is excluded.

その後、該排他処理を受けたコントローラのキャッシュ処理手段は、該領域の排他の完了を、リード要求を受けたコントローラに通知し、該コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータの読み込みを行い、ホストコンピュータに送信し、リード要求の処理を終える。   Thereafter, the cache processing unit of the controller that has received the exclusion process notifies the controller that has received the read request of completion of exclusion of the area, and the cache processing unit of the controller Data in the area on the memory is read and transmitted to the host computer, and the read request processing is completed.

また、該排他要求を受け取ったコントローラのキャッシュ処理手段は、要求されたデータがキャッシュメモリ上に存在しない場合には、新たに領域を確保し、新たに確保した領域の排他を行った後に、ディスクからデータを読み込み、該領域に格納する。   In addition, the controller cache processing means that has received the exclusion request allocates a new area when the requested data does not exist in the cache memory, and after exchanging the newly allocated area, The data is read from and stored in the area.

その後、該排他要求を受け取ったコントローラのキャッシュ処理手段は、該領域の排他の完了を、リード要求を受けたコントローラに通知し、該コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータの読み込みを行い、該データをホストコンピュータに送信し、リード要求の処理を終える。   Thereafter, the cache processing means of the controller that has received the exclusion request notifies the controller that has received the read request of completion of exclusion of the area, and the cache processing means of the controller Data in the area on the memory is read, the data is transmitted to the host computer, and the read request processing is completed.

本発明によれば、それぞれのコントローラで、キャッシュ処理手段を備え、各キャッシュ処理手段で、個別に、キャッシュメモリの排他、領域確保の管理することで、同一キャッシュメモリ上の任意の領域にライトデータ及びライトの冗長化データ、リードデータの配置が可能となるため、キャッシュメモリの有効利用が可能となり、本発明の目的を達成できる。   According to the present invention, each controller includes a cache processing unit, and each cache processing unit individually manages the exclusion of the cache memory and secures the area so that write data can be written to an arbitrary area on the same cache memory. In addition, since redundant write data and read data can be arranged, the cache memory can be used effectively, and the object of the present invention can be achieved.

また、二重以上のライトデータの冗長化に関しても、システム共通でマスタのコントローラと冗長先のコントローラを設定し、ライトのデータの冗長化の際は、最初に、マスタのコントローラの領域を排他処理することにより、データの一貫性の保証と三重以上の冗長化を実現している。以下、実施例に即して詳細に説明する。   Also, for redundant write data redundancy, a master controller and redundant controller are set in common for the system. When making write data redundant, the master controller area is first excluded. By doing so, data consistency is guaranteed and triple or more redundancy is achieved. Hereinafter, a detailed description will be given in accordance with examples.

図1は、本発明の第1の実施例の構成を示す図である。図1には、ストレージを構成する1つのコントローラ101の構成が示されている。   FIG. 1 is a diagram showing the configuration of the first exemplary embodiment of the present invention. FIG. 1 shows the configuration of one controller 101 constituting the storage.

図1を参照すると、コントローラ101は、プロセッサ110と、ホストコンピュータ(不図示)と接続し、コマンドやデータのやりとりを行うためのホストインターフェイス102と、ホストインターフェイス102に接続され、コマンドの受信とコマンド受信時のプロセッサ110への通知やキャッシュメモリ109のデータをホストインターフェイス102を介してホストコンピュータ間とやりとりを行うコマンド処理部103と、コントローラ101同士を複数相互に接続し、キャッシュデータやコントローラ間の通信を行うためのインターフェイスである接続インターフェイス104と、接続インターフェイス104を通して、通信されるデータやコマンドの制御を行い、プロセッサ110にホストコンピュータからのコマンドの受領の通知等を行う通信制御部105と、磁気ディスク装置(不図示)とコントローラ間を相互に接続するディスクインターフェイス106と、ディスクインターフェイス106を介して磁気ディスク装置へのデータの書き込みや磁気ディスク装置からのデータの読み出し、磁気ディスク装置へ所望のアクセスの要求を行う等の制御を行うディスク制御部107と、磁気ディスク装置からの読み込んだデータや、ホストコンピュータから受け取ったライトデータを一時的に格納するキャッシュメモリ109と、ホストコンピュータからの要求により、該当するデータがキャッシュメモリ109に存在するか否かを検索をするためのキャッシュ構成情報108と、領域情報とマスタコントローラとの対応関係を格納した装置構成情報111を備えている。   Referring to FIG. 1, a controller 101 is connected to a processor 110 and a host computer (not shown), and is connected to a host interface 102 for exchanging commands and data. A command processing unit 103 that exchanges notifications to the processor 110 at the time of reception and data in the cache memory 109 with the host computer via the host interface 102 and a plurality of controllers 101 are connected to each other, and cache data and The connection interface 104, which is an interface for communication, and the data and commands to be communicated are controlled through the connection interface 104, and the command from the host computer is sent to the processor 110. A communication control unit 105 that performs notification of a region, a disk interface 106 that interconnects a magnetic disk device (not shown) and a controller, data writing to the magnetic disk device via the disk interface 106, and a magnetic disk device Disk controller 107 that performs control such as reading data from the disk and requesting a desired access to the magnetic disk device, and temporarily storing the data read from the magnetic disk device and the write data received from the host computer Stored cache memory 109, cache configuration information 108 for searching whether the corresponding data exists in the cache memory 109 in response to a request from the host computer, and correspondence between the area information and the master controller Includes device configuration information 111 To have.

プロセッサ110は、コマンド処理部103がホストコンピュータから受けたコマンドの通知を受け、該コマンドの内容に従い、それがリードである場合、キャッシュ構成情報108を検索する。   The processor 110 receives the notification of the command received from the host computer by the command processing unit 103, and searches the cache configuration information 108 when it is a read according to the contents of the command.

検索の結果、キャッシュメモリ109にデータが存在する場合、キャッシュメモリ109のデータを、コマンド処理部103を介してホストコンピュータに送信し、キャッシュ構成情報108の検索の結果、キャッシュメモリ109にデータが存在しない場合、ディスク制御部107に磁気ディスク装置に存在するデータの読み込みを指示し、磁気ディスクからの読出データをキャッシュメモリ109に格納した後、読出データをコマンド処理部103を介してホストコンピュータに送信する。   If there is data in the cache memory 109 as a result of the search, the data in the cache memory 109 is transmitted to the host computer via the command processing unit 103, and the data in the cache memory 109 is found as a result of the search of the cache configuration information 108. If not, the disk control unit 107 is instructed to read data existing in the magnetic disk device, the read data from the magnetic disk is stored in the cache memory 109, and the read data is transmitted to the host computer via the command processing unit 103. To do.

また、プロセッサ110は、コマンド処理部103がホストコンピュータから受けたコマンドの結果がライトである場合、ホストコンピュータから受信したライトコマンドで示される論理アドレスと装置構成情報111上のテーブルを検索し、該コマンドの論理アドレスで指定されるライトのデータのマスタ、即ち、最初に、キャッシュ構成情報108を検索すべきコントローラが、システム内のどのコントローラであるか決定する。   Further, when the result of the command received from the host computer by the command processing unit 103 is a write, the processor 110 searches the logical address and the table on the device configuration information 111 indicated by the write command received from the host computer, and The master of the write data specified by the logical address of the command, that is, the controller to retrieve the cache configuration information 108 is first determined which controller in the system.

ここで、自コントローラがマスタである場合には、自コントローラのキャッシュ構成情報108の検索を行い、キャッシュメモリ109上に該データが存在するか判定を行う。   Here, when the own controller is the master, the cache configuration information 108 of the own controller is searched to determine whether the data exists in the cache memory 109.

その結果、存在する場合、キャッシュメモリ上の領域の排他を行う。   As a result, if it exists, the area on the cache memory is exclusive.

また、該データがキャッシュメモリ109上に存在しない場合、新たにキャッシュメモリ109上に、領域を確保し、該領域の排他を行う。   If the data does not exist on the cache memory 109, a new area is secured on the cache memory 109 and the area is exclusive.

その後、冗長化を行っている他のコントローラに対して、通信制御部105を通じて、キャッシュ構成情報108の検索を指示する。   After that, the other controller that is redundant is instructed to search the cache configuration information 108 through the communication control unit 105.

冗長化を行っている他のコントローラからの検索が完了し、該データ領域の排他完了、及び、書き込むべきキャッシュメモリ上のアドレスの通知を受け取った後に、コマンド処理部103を介して、ライトデータを、自コントローラ内のキャッシュメモリ109と、他コントローラのキャッシュメモリ上に書き込み、ライトを完了する。   After the search from the other controller performing redundancy is completed and the exclusion of the data area is completed and the notification of the address on the cache memory to be written is received, the write data is transferred via the command processing unit 103. , Writing to the cache memory 109 in the own controller and the cache memory of the other controller is completed.

図3は、図1で示される装置構成情報111の一構成を示す図である。図3を参照すると、装置構成情報111は、ホストコンピュータが指定する論理アドレスから、どのコントローラがキャッシュ構成情報を検索する際に、マスタとなり、最初に検索を行うべきかを示す情報を備えている。装置構成情報111は、領域情報301と、マスタのコントローラ番号302との対応(対)を表形式で備えており、ホストコンピュータが指定する論理アドレスと、装置構成情報111の領域情報301との比較を行い、該論理アドレスが領域情報301の範囲内に含まれれば、該領域情報301に相当するマスタのコントローラ番号302が、最初に検索を行うべきコントローラの番号となる。   FIG. 3 is a diagram showing one configuration of the device configuration information 111 shown in FIG. Referring to FIG. 3, the device configuration information 111 includes information indicating which controller should become the master and search first from the logical address designated by the host computer when searching the cache configuration information. . The device configuration information 111 includes a correspondence (pair) between the area information 301 and the master controller number 302 in a table format, and compares the logical address specified by the host computer with the area information 301 of the device configuration information 111. If the logical address is included in the range of the area information 301, the master controller number 302 corresponding to the area information 301 becomes the number of the controller to be searched first.

図4は、図1のキャッシュ構成情報108の内容の一例を示す図である。図4を参照すると、キャッシュ構成情報108は、キャッシュ構成情報の検索(キャッシュヒット/ミスヒットの判定)時の処理の高速化を図るため、ハッシュテーブル401とハッシュテーブル401からリンク構造で構成されるページタグ402を備えている。   FIG. 4 is a diagram showing an example of the contents of the cache configuration information 108 of FIG. Referring to FIG. 4, the cache configuration information 108 is configured by a link structure from the hash table 401 and the hash table 401 in order to increase the processing speed when searching for the cache configuration information (determination of cache hit / miss hit). A page tag 402 is provided.

ページタグ402はそれぞれ、
ページタグ402同士でリンク構造を構成するためのポインタ403と、
ページタグ402で示されるキャッシュメモリ上の領域(以下、「ページ」という)が、ホストコンピュータから指定されたどの領域であるかを示すページ識別子404と、
キャッシュメモリ(図1のキャッシュメモリ109)上のどのページに存在するかを示すアドレス情報のページアドレス406と、
磁気ディスク装置上へ保存されていない書き込みデータがあるページを示すページ情報405と、を有する。ページ情報405は、空ページ等を示す情報や、当該ページを排他制御するための排他情報(フラグ)等(不図示)も含まれる。
Each page tag 402
A pointer 403 for configuring a link structure between page tags 402;
A page identifier 404 indicating which area on the cache memory indicated by the page tag 402 (hereinafter referred to as “page”) is designated by the host computer;
A page address 406 of address information indicating which page exists in the cache memory (cache memory 109 in FIG. 1);
Page information 405 indicating pages having write data not saved on the magnetic disk device. The page information 405 includes information indicating an empty page and the like, exclusive information (flag) for exclusive control of the page, and the like (not shown).

図2は、本発明の第1の実施例のシステムの全体構成を模式的に示す図である。図2では、簡単のため、図1のコントローラ101を2つ備えたシステムが例示されているが、本発明において、コントローラは2つに制限されるものでないことは勿論である。   FIG. 2 is a diagram schematically illustrating the overall configuration of the system according to the first embodiment of this invention. In FIG. 2, for the sake of simplicity, a system including two controllers 101 in FIG. 1 is illustrated. However, in the present invention, the number of controllers is of course not limited to two.

コントローラ0(201a)、コントローラ1(201b)は、図1に示した構成と同一の要素を備えている。   The controller 0 (201a) and the controller 1 (201b) include the same elements as those shown in FIG.

ホストインターフェイス202a、202bは、図1のホストインターフェイス102に対応し、接続インターフェイス204は、図1の接続インターフェイス104に対応する。ディスクインターフェイス206a、206b、213a、213bは、図1のディスクインターフェイス106に対応する。   The host interfaces 202a and 202b correspond to the host interface 102 in FIG. 1, and the connection interface 204 corresponds to the connection interface 104 in FIG. The disk interfaces 206a, 206b, 213a, and 213b correspond to the disk interface 106 in FIG.

コントローラ201aとコントローラ201b間は、接続インターフェイス204で接続され、双方のコントローラ間でのキャッシュデータ等の通信を行う。   The controller 201a and the controller 201b are connected by a connection interface 204, and perform communication such as cache data between the controllers.

コントローラ201aからディスクインターフェイス206aを介して磁気ディスク装置212a、ディスクインターフェイス213aを介して磁気ディスク装置212bに接続され、コントローラ201bからは、ディスクインターフェイス206bを介して磁気ディスク装置212b、ディスクインターフェイス213bを介して磁気ディスク装置212aに接続される。すなわち、コントローラのディスク制御部は、自コントローラの磁気ディスク装置のみならず、他のコントローラの磁気ディスク装置にも、ディスクインターフェイスを介してアクセスすることができる。   The controller 201a is connected to the magnetic disk device 212a via the disk interface 206a and the magnetic disk device 212b via the disk interface 213a. The controller 201b is connected to the magnetic disk device 212b and the disk interface 213b via the disk interface 206b. It is connected to the magnetic disk device 212a. That is, the disk control unit of the controller can access not only the magnetic disk device of its own controller but also the magnetic disk device of another controller via the disk interface.

こうすることで、コントローラ201aおよびコントローラ201bから、相互に磁気ディスク装置212a、及び、磁気ディスク装置212bにアクセス可能としており、片方のコントローラが使用不能になった時でも、双方のコントローラに冗長化されたデータの磁気ディスク装置への書き込みを可能としている。   By doing so, the controller 201a and the controller 201b can mutually access the magnetic disk device 212a and the magnetic disk device 212b, and even when one of the controllers becomes unusable, both controllers are made redundant. Data can be written to the magnetic disk device.

また、コントローラ201a、201b上の装置構成情報211a、211bには、予め同一の情報が書き込まれており、それぞれのコントローラが他のコントローラに問い合わせることなく、コントローラ201a、201bのプロセッサ210a、210bによる参照を可能としている。コントローラ201aの装置構成情報211aとコントローラ201bの装置構成情報211bとは同一内容でありさえすればよく、その書き込み(更新)形態等は任意である。   In addition, the same information is written in the device configuration information 211a and 211b on the controllers 201a and 201b in advance, and each controller can refer to the controllers 210a and 210b of the controllers 201a and 201b without inquiring other controllers. Is possible. The device configuration information 211a of the controller 201a and the device configuration information 211b of the controller 201b only need to have the same content, and the writing (updating) form and the like are arbitrary.

次に、図5乃至図7のフローチャートと、図2乃至図4を参照して、本実施例の動作の一例を具体的に説明する。図5は、システムの全体の動作、図6、図7は、図5のステップS5、S11の自コントローラのサーチと、ステップS6、S10の他コントローラのサーチの詳細を示すフローチャートである。   Next, an example of the operation of this embodiment will be specifically described with reference to the flowcharts of FIGS. 5 to 7 and FIGS. 2 to 4. FIG. 5 is a flowchart showing the entire operation of the system, and FIGS. 6 and 7 are flowcharts showing details of the search of the own controller in steps S5 and S11 of FIG. 5 and the search of other controllers in steps S6 and S10.

図2のホストインターフェイス202aがホストコンピュータからのコマンドをコマンド処理部203aで受信すると、コマンド処理部203aは、プロセッサ210aに対し、コマンドの受信を行ったことを通知する(図5のステップS1)。   When the host interface 202a in FIG. 2 receives a command from the host computer by the command processing unit 203a, the command processing unit 203a notifies the processor 210a that the command has been received (step S1 in FIG. 5).

プロセッサ210aは、コマンド処理部203aで受け取ったコマンドの内容から、そのコマンドで示される処理を判断する(図5のステップS2)。   The processor 210a determines the process indicated by the command from the contents of the command received by the command processing unit 203a (step S2 in FIG. 5).

受信したコマンドがライト動作であれば、プロセッサ210aは、装置構成情報211aを参照し(図5のステップS3)、ホストコンピュータから受信したコマンドで示される論理アドレスのデータがどのコントローラがマスタになる、即ち、最初にキャッシュ構成情報を検索すべきデータか判定を行う(図5のステップS4)。   If the received command is a write operation, the processor 210a refers to the device configuration information 211a (step S3 in FIG. 5), and which controller is the master of the logical address data indicated by the command received from the host computer. That is, it is first determined whether the cache configuration information should be retrieved (step S4 in FIG. 5).

ここで、ホストコンピュータから指定された論理アドレスが10のライトコマンドである場合には、プロセッサ210aは、装置構成情報211aの検索を行う(図5のステップS5)。装置構成情報211aとしては、コントローラ201bの装置構成情報211bと同じものが用意されている。   Here, if the logical address designated by the host computer is a write command of 10, the processor 210a searches for the device configuration information 211a (step S5 in FIG. 5). As the device configuration information 211a, the same device configuration information 211b as that of the controller 201b is prepared.

装置構成情報211a、211bの内容が、図3で示される内容であるものとして以下説明する。また、図3において、マスタのコントローラ番号302は、それぞれ、マスタとなるコントローラの番号を示しており、番号0がコントローラ201a、番号1がコントローラ201bとする。   In the following description, it is assumed that the contents of the device configuration information 211a and 211b are the contents shown in FIG. In FIG. 3, the controller number 302 of the master indicates the number of the controller that becomes the master, and the number 0 is the controller 201a and the number 1 is the controller 201b.

プロセッサ210aは、論理アドレス10と、装置構成情報211aの領域情報301の項目を比較する。論理アドレス10が0〜99の範囲であるため、領域情報が0〜99に相当するマスタのコントローラ番号302の値を読み出す。マスタのコントローラ番号が0であるため、該コマンドで指定される論理アドレスは、コントローラ201aがマスタであることが判定できる(図6のステップS101)。   The processor 210a compares the logical address 10 with the item of the area information 301 of the device configuration information 211a. Since the logical address 10 is in the range of 0 to 99, the value of the controller number 302 of the master corresponding to the area information of 0 to 99 is read. Since the controller number of the master is 0, it can be determined that the logical address specified by the command is the controller 201a (step S101 in FIG. 6).

プロセッサ210aは、該ライトコマンドのマスタがコントローラ201aであることが判定されたため、マスタのコントローラ201aのキャッシュ構成情報208aの検索を行い、該当するライトコマンドで指定されるページがキャッシュメモリ209aに存在するか否かの判定を行う(図6のステップS102)。なお、マスタのコントローラ201aのキャッシュ構成情報208aを排他処理(LOCK)してから、キャッシュのページサーチを行う。他の要求等により、キャッシュ構成情報208a、キャッシュメモリ209aを更新する場合、キャッシュ構成情報208aの排他が解除(アンロック)されるまで、待ちとされる。通常、キャッシュ構成情報208aの排他の解除は、キャッシュメモリの該当ページがヒットするか、あるいはミスヒットの場合新たに該当ページが確保された状態において、該当ページの排他が行われリード/ライトが行われたのち、該当ページの排他の解除が行われたのち、行われる。   Since it is determined that the master of the write command is the controller 201a, the processor 210a searches the cache configuration information 208a of the master controller 201a, and the page specified by the corresponding write command exists in the cache memory 209a. Is determined (step S102 in FIG. 6). A cache page search is performed after exclusive processing (LOCK) of the cache configuration information 208a of the master controller 201a. When the cache configuration information 208a and the cache memory 209a are updated by another request or the like, the process waits until the exclusion of the cache configuration information 208a is released (unlocked). Normally, the exclusion of the exclusion of the cache configuration information 208a is performed when the corresponding page of the cache memory is hit or when the corresponding page is newly reserved in the state where the corresponding page is secured and read / write is performed. After the cancellation, the exclusion of the corresponding page is performed.

ステップS102で、ライトコマンドで指定されるページがキャッシュメモリ209a上に存在しないと判定されると、プロセッサ210aは、キャッシュ構成情報208aを参照し、新たに確保可能なキャッシュメモリ209a上のページを検索し、該ページを新たに格納するページとして、キャッシュ構成情報208aのページアドレス406にページのアドレスの登録を行うと共に、当該ページの排他処理を行う。この排他処理は、他のコマンドや他のコントローラからページに対する読み込みによるデータ化け防止と、冗長化を行ったライトデータに対する書き込みによる一貫性の崩れを防ぐためのものである。   If it is determined in step S102 that the page specified by the write command does not exist on the cache memory 209a, the processor 210a refers to the cache configuration information 208a and searches for a page on the cache memory 209a that can be newly secured. Then, the page address is registered in the page address 406 of the cache configuration information 208a as a page to be newly stored, and exclusive processing of the page is performed. This exclusive processing is for preventing data corruption due to reading from another command or page from another controller, and preventing consistency from being lost due to writing to redundant write data.

この排他処理は、プロセッサ210aが、キャッシュ構成情報208aにおいて、図4のページ情報405に、該ページが実行中のコマンドにより使用中である旨を示す排他情報を書き込むことで実現する(図6のステップS103)。   This exclusive processing is realized by the processor 210a writing exclusive information indicating that the page is being used by the command being executed in the page information 405 of FIG. 4 in the cache configuration information 208a (FIG. 6). Step S103).

ライトコマンドで指定されるページがキャッシュメモリ209a上に存在する場合には、プロセッサ210aは、他のコマンドや他のコントローラで使用されていないか、排他の確認を行う。   When the page specified by the write command exists in the cache memory 209a, the processor 210a checks whether the other command or another controller is using the exclusive.

より具体的には、プロセッサ210aは、キャッシュ構成情報208aのページ情報405(図4参照)にある排他情報の参照を行い、排他状態の確認を行う(図6のステップS104)。   More specifically, the processor 210a refers to the exclusive information in the page information 405 (see FIG. 4) of the cache configuration information 208a and confirms the exclusive state (step S104 in FIG. 6).

プロセッサ210aは、該ページが排他状態でなければ、キャッシュ構成情報208aのページアドレス406を取得すると共に、該ページの排他処理を行い、次のステップに進む(図6のステップS106)。   If the page is not in the exclusive state, the processor 210a acquires the page address 406 of the cache configuration information 208a, performs the exclusive process on the page, and proceeds to the next step (step S106 in FIG. 6).

該ページが排他状態の場合、該ライトコマンドの処理は、他のコマンドあるいは他のコントローラの処理実行中による該ページの排他が解除されるまで待ち状態に入る。そして排他が解除されれば、排他処理を行い、他のコマンドや他のコントローラが使用できないようにし、次のステップに進む(図6のステップS105)。なお、図6の自コントローラサーチ処理において、キャッシュメモリのページの排他処理の後、キャッシュ構成情報の排他を解除(UNLOCK)する。   When the page is in the exclusive state, the processing of the write command enters a waiting state until the exclusion of the page due to execution of another command or another controller is cancelled. If the exclusion is released, an exclusion process is performed so that other commands and other controllers cannot be used, and the process proceeds to the next step (step S105 in FIG. 6). In the self controller search process of FIG. 6, after the cache memory page exclusion process, the exclusion of the cache configuration information is released (UNLOCK).

次に、冗長化が行われているコントローラ201bに対してキャッシュ構成情報208bの検索を行う(図5のステップS6)。   Next, the cache configuration information 208b is searched for the redundant controller 201b (step S6 in FIG. 5).

まず、プロセッサ210aは、通信制御部205aに対して、マスタであるコントローラ201bに対するキャッシュ制御情報の検索指示を行う。   First, the processor 210a instructs the communication control unit 205a to search for cache control information with respect to the master controller 201b.

通信制御部205aは、接続インターフェイス204を通じて、コントローラ201bの通信制御部205bに対して、コマンドのキャッシュ制御情報の検索指示を伝える(図7のステップS201)。   The communication control unit 205a transmits a command cache search information search instruction to the communication control unit 205b of the controller 201b through the connection interface 204 (step S201 in FIG. 7).

通信制御部205bは、受信した検索指示をプロセッサ210bに伝え、プロセッサ210bは自身のキャッシュ構成情報208bの検索を行う(図7のステップS202)。   The communication control unit 205b transmits the received search instruction to the processor 210b, and the processor 210b searches its own cache configuration information 208b (step S202 in FIG. 7).

検索の結果、該ライトコマンドで示された領域のページが存在しない場合(図7のステップS203のNo分岐)、新たにキャッシュメモリ209b上にページを確保し、ページの排他処理を行い、そのページのアドレス情報を取得しキャッシュ構成情報208bのページアドレス406に登録する(図7のステップS204)。   As a result of the search, if there is no page in the area indicated by the write command (No branch in step S203 in FIG. 7), a new page is secured on the cache memory 209b, the page is exclusive, and the page Is registered in the page address 406 of the cache configuration information 208b (step S204 in FIG. 7).

また、ライトコマンドで指定されるページがキャッシュメモリ209bに存在する場合には(図7のステップS203のYes分岐)、他のコマンドや他のコントローラで使用されていないか、排他の確認を行う。より具体的には、キャッシュ構成情報208bのページ情報405にある排他情報の参照を行い、既に排他状態にあるか否かに確認を行う(図7のステップS206)。   If the page specified by the write command is present in the cache memory 209b (Yes branch in step S203 in FIG. 7), it is confirmed whether or not it is being used by another command or another controller. More specifically, the exclusive information in the page information 405 of the cache configuration information 208b is referred to and it is confirmed whether or not it is already in the exclusive state (step S206 in FIG. 7).

該ページが排他状態でなければ(図7のステップS206のNo分岐)、キャッシュ構成情報208bのページアドレス406(図4参照)を取得すると共に、該ページの排他処理を行い、次のステップに進む(図7のステップS208)。   If the page is not in the exclusive state (No branch in step S206 in FIG. 7), the page address 406 (see FIG. 4) of the cache configuration information 208b is acquired, the page is excluded, and the process proceeds to the next step. (Step S208 in FIG. 7).

該ページが排他状態にある場合(図7のステップS206のYes分岐)、該ライトコマンドの処理は、他のコマンドあるいは他のコントローラの処理実行中による該ページの排他が解除されるまで待ち状態に入る。排他が解除されれば、排他処理を行い、他のコマンドや他のコントローラが使用できないようにし、次のステップに進む(図7のステップS207)。   If the page is in an exclusive state (Yes branch in step S206 in FIG. 7), the write command processing is in a wait state until the exclusion of the page due to execution of another command or other controller processing is released. enter. If the exclusion is released, an exclusion process is performed so that other commands and other controllers cannot be used, and the process proceeds to the next step (step S207 in FIG. 7).

次に、プロセッサ210bは取得したページアドレス406を通信制御部205bに伝え、接続インターフェイス204を通して、コントローラ201aの通信制御部205aにページの確保が出来たことを通知する(図7のステップS205)。   Next, the processor 210b transmits the acquired page address 406 to the communication control unit 205b, and notifies the communication control unit 205a of the controller 201a that the page has been secured through the connection interface 204 (step S205 in FIG. 7).

通信制御部205aは、プロセッサ210aにコントローラ201bからのページを確保した通知を受け取ると、ホストコンピュータからライトデータを、コマンド処理部203aを通じて、コントローラ201aのキャッシュ構成情報208aで示されるページアドレス406(図4参照)のアドレスのキャッシュメモリ209a上のページに書き込む。これと同時に、コントローラ201bのキャッシュメモリ209bに対しても、通信制御部205a、接続インターフェイス204と通信制御部205bを通じて、既に受領しているコントローラ201bのキャッシュメモリ209bのページアドレスにデータの書き込みを行いライトデータのキャッシュへの書き込みと冗長化を行い、コマンド処理部203aを通じてライトコマンドの終了をホストコンピュータに通知する(図5のステップS7)。   When the communication control unit 205a receives the notification that the controller 201b has secured the page from the processor 210a, the communication control unit 205a sends the write data from the host computer through the command processing unit 203a to the page address 406 (see FIG. 4) is written to the page on the cache memory 209a at the address. At the same time, data is written to the cache memory 209b of the controller 201b through the communication control unit 205a, the connection interface 204, and the communication control unit 205b to the page address of the cache memory 209b of the controller 201b that has already been received. The write data is written to the cache and made redundant, and the end of the write command is notified to the host computer through the command processing unit 203a (step S7 in FIG. 5).

その後、プロセッサ210aは、通信制御部205aを通じて、ページの排他解除の指示をコントローラ201bに対して行う。   Thereafter, the processor 210a instructs the controller 201b to cancel the exclusion of the page through the communication control unit 205a.

プロセッサ210bは、該指示を接続インターフェイス204と通信制御部205bを通じて受け取る。   The processor 210b receives the instruction through the connection interface 204 and the communication control unit 205b.

そして、プロセッサ210bは、コントローラ201bのキャッシュ構成情報208bのページ情報の排他の解除を行う。   Then, the processor 210b releases the exclusion of the page information of the cache configuration information 208b of the controller 201b.

プロセッサ210bは、排他の解除(UNLOCK)を完了すると、コントローラ201aに対して、ページの排他完了の通知を、通信制御部205bを通じて行う(図5のステップS8)。   When the exclusion of the exclusion (UNLOCK) is completed, the processor 210b notifies the controller 201a of the completion of the exclusion of the page through the communication control unit 205b (step S8 in FIG. 5).

プロセッサ210aが、コントローラ201bからの排他解除の通知を受け取ると、プロセッサ210aは、コントローラ201aのキャッシュ構成情報208aのページ情報405の排他の解除を行い、ライトコマンドに対する処理を完了する(図5のステップS9)。   When the processor 210a receives the notification of the exclusion release from the controller 201b, the processor 210a releases the exclusion of the page information 405 of the cache configuration information 208a of the controller 201a and completes the processing for the write command (step of FIG. 5). S9).

さらに、該ライトコマンドの論理アドレスが「150」であった場合、コントローラ201bがマスタとなるため、プロセッサ210aは、通信制御部205aに対して、マスタであるコントローラ201bに対するキャッシュ制御情報の検索指示を行う(図5のステップS10)。   Further, when the logical address of the write command is “150”, the controller 201b becomes the master, and therefore the processor 210a instructs the communication control unit 205a to search for the cache control information with respect to the master controller 201b. This is performed (step S10 in FIG. 5).

通信制御部205aは、接続インターフェイス204を通じて、コントローラ201bの通信制御部205bにコマンドのキャッシュ制御情報の検索指示を伝える(図7のステップS201)。   The communication control unit 205a transmits a command cache search information search instruction to the communication control unit 205b of the controller 201b through the connection interface 204 (step S201 in FIG. 7).

通信制御部205bは、受信した検索指示をプロセッサ210bに伝え、プロセッサ210bは自身のキャッシュ構成情報208bの検索を行い(図7のステップS202)、その結果、該ライトコマンドで示された領域のページが存在しない場合(図7のステップS203のNo)、新たにキャッシュメモリ209b上にページを確保し、ページの排他処理を行い、そのページのアドレスをキャッシュ構成情報208b上のページアドレス406に登録する(図7のステップS204)。   The communication control unit 205b transmits the received search instruction to the processor 210b, and the processor 210b searches its own cache configuration information 208b (step S202 in FIG. 7). As a result, the page of the area indicated by the write command Is not present (No in step S203 in FIG. 7), a new page is secured on the cache memory 209b, the page is exclusive, and the page address is registered in the page address 406 on the cache configuration information 208b. (Step S204 in FIG. 7).

また、ライトコマンドで指定されるページがキャッシュメモリ209bに存在する場合には(図7のステップS203のYes)、他のコマンドや他のコントローラで使用されていないか、排他の確認を行う。より具体的には、キャッシュ構成情報208bのページ情報405にある排他情報の参照を行い、排他状態の確認を行う(図7のステップS206)。   If the page specified by the write command is present in the cache memory 209b (Yes in step S203 in FIG. 7), the exclusion is checked to see if it is used by another command or another controller. More specifically, the exclusive information in the page information 405 of the cache configuration information 208b is referred to and the exclusive state is confirmed (step S206 in FIG. 7).

該ページが排他状態でなければ(図7のステップS206のNo)、キャッシュ構成情報208bのページアドレス406を取得すると共に、該ページの排他処理を行い、次のステップに進む(図7のステップS208)。   If the page is not in the exclusive state (No in step S206 in FIG. 7), the page address 406 of the cache configuration information 208b is acquired, the page is excluded, and the process proceeds to the next step (step S208 in FIG. 7). ).

該ページが排他状態の場合(図7のステップS206のYes)、該ライトコマンドの処理は、他のコマンド、あるいは他のコントローラの処理実行中による該ページの排他が解除されるまで待ち状態に入る。該ページの排他が解除されると、排他処理を行い、他のコマンドや他のコントローラが使用できないようにし、次のステップに進む(図7のステップS207)。   If the page is in an exclusive state (Yes in step S206 in FIG. 7), the write command processing enters a wait state until the exclusion of the page due to execution of another command or other controller processing is released. . When the exclusion of the page is released, an exclusion process is performed so that other commands and other controllers cannot be used, and the process proceeds to the next step (step S207 in FIG. 7).

次に、プロセッサ210bは、取得したページアドレス406を通信制御部205bに伝え、接続インターフェイス204を通してコントローラ201aの通信制御部205aにページの確保が出来たことを通知する(図7のステップS205)。   Next, the processor 210b transmits the acquired page address 406 to the communication control unit 205b, and notifies the communication control unit 205a of the controller 201a through the connection interface 204 that the page has been secured (step S205 in FIG. 7).

コントローラ201aの通信制御部205aは、ページ確保の通知をプロセッサ210aに対して行う。   The communication control unit 205a of the controller 201a notifies the processor 210a of page reservation.

次に、コントローラ201aのキャッシュ構成情報208aの検索を行い(図6のステップS101)、該当するライトコマンドで指定されるページが、キャッシュメモリ209aに存在しないか判定を行う(図6のステップS102)。   Next, the cache configuration information 208a of the controller 201a is searched (step S101 in FIG. 6), and it is determined whether or not the page specified by the corresponding write command exists in the cache memory 209a (step S102 in FIG. 6). .

その結果、ライトコマンドで指定されるページがキャッシュメモリ209a上にないと判定されれば、プロセッサ210aは、キャッシュ構成情報208aを参照し、新たに確保可能なキャッシュメモリ209a上のページを検索し、該ページを新たに格納するページとしてキャッシュ構成情報208aのページアドレス406にページのアドレスの登録を行うと共に、排他処理を行う(図6のステップS103)。   As a result, if it is determined that the page specified by the write command is not in the cache memory 209a, the processor 210a refers to the cache configuration information 208a, searches for a page on the cache memory 209a that can be newly secured, The page address is registered at the page address 406 of the cache configuration information 208a as a page to be newly stored, and exclusive processing is performed (step S103 in FIG. 6).

また、ライトコマンドで指定されるページがキャッシュメモリ209aに存在する場合には、他のコマンドや他のコントローラで使用されていないか、排他の確認を行う。より具体的には、キャッシュ構成情報208aのページ情報405にある排他情報の参照を行い、排他状態の確認を行う(図6のステップS104)。   When the page specified by the write command exists in the cache memory 209a, the exclusion is checked to determine whether it is used by another command or another controller. More specifically, the exclusive information in the page information 405 of the cache configuration information 208a is referred to and the exclusive state is confirmed (step S104 in FIG. 6).

該ページが排他状態でない場合(図6のステップS104のNo)、キャッシュ構成情報208aのページアドレス406を取得すると共に、該ページの排他処理を行い、次のステップに進む(図6のステップS106)。   If the page is not in the exclusive state (No in step S104 in FIG. 6), the page address 406 of the cache configuration information 208a is acquired, the page is excluded, and the process proceeds to the next step (step S106 in FIG. 6). .

該ページが排他状態の場合(図6のステップS104のYes)、該ライトコマンドの処理は、他のコマンドあるいは他のコントローラの処理実行中による該ページの排他が解除されるまで待ち状態に入る。該ページの排他が解除されれば、排他処理を行い、他のコマンドや他のコントローラが使用できないようにし、次のステップに進む(図6のステップS105)。   If the page is in an exclusive state (Yes in step S104 in FIG. 6), the write command processing enters a wait state until the exclusion of the page due to execution of another command or another controller is cancelled. If the exclusion of the page is released, an exclusion process is performed so that other commands and other controllers cannot be used, and the process proceeds to the next step (step S105 in FIG. 6).

次に、プロセッサ210aは、ホストコンピュータからライトデータを、コマンド処理部203aを通じて、コントローラ201aのキャッシュ構成情報208aで示されるページアドレス406のページに書き込むと同時に、コントローラ201bのキャッシュメモリ209bに対しても、通信制御部205a、接続インターフェイス204と通信制御部205bを通じて、既に受領しているコントローラ201bのキャッシュメモリ209bのページアドレスにデータの書き込みと、ライトコマンドの終了を、ホストコンピュータに通知する(図5のステップS12)。   Next, the processor 210a writes write data from the host computer to the page at the page address 406 indicated by the cache configuration information 208a of the controller 201a through the command processing unit 203a, and at the same time, writes it to the cache memory 209b of the controller 201b. Through the communication control unit 205a, the connection interface 204, and the communication control unit 205b, the host computer is notified of data write to the page address of the cache memory 209b of the controller 201b that has already been received and the end of the write command (FIG. 5). Step S12).

さらに、プロセッサ210aは、キャッシュ構成情報208aのページの排他解除を行う(図5のステップS13)。   Furthermore, the processor 210a cancels the exclusion of the page of the cache configuration information 208a (step S13 in FIG. 5).

その後、プロセッサ210aは、通信制御部205aを通じて、ページ解放(ページUNLOCK)の指示をコントローラ201bに対して行う。   Thereafter, the processor 210a instructs the controller 201b to release the page (page UNLOCK) through the communication control unit 205a.

プロセッサ210bは、該指示を接続インターフェイス204と通信制御部205bを通じて受け取り、コントローラ201bのキャッシュ構成情報208bのページ情報の排他の解除を行う(図5のステップS14)。   The processor 210b receives the instruction through the connection interface 204 and the communication control unit 205b, and releases the exclusion of the page information of the cache configuration information 208b of the controller 201b (step S14 in FIG. 5).

プロセッサ210bは、排他の解除を完了すると、コントローラ201aに対して、ページの排他解除の通知を、通信制御部205bを通じて行う。   When the exclusion of the exclusion is completed, the processor 210b notifies the controller 201a of the exclusion of the page through the communication control unit 205b.

プロセッサ210aが、コントローラ201bからの排他解除の通知を受け取ると、ライトコマンドに対する処理を完了する。   When the processor 210a receives the notification of exclusion release from the controller 201b, the processing for the write command is completed.

いずれの場合も、キャッシュメモリに書き込まれたデータは、適宜、磁気ディスク装置に書き込まれ、キャッシュメモリと磁気ディスク装置の一致化が行われる。   In any case, the data written in the cache memory is appropriately written in the magnetic disk device, and the cache memory and the magnetic disk device are matched.

ステップS2の判定でホストコンピュータから受信したコマンドがリードの場合は(図5のステップS2のNo)、プロセッサ210aは、装置構成情報211aのマスタのコントローラを示す情報とは関係なく、キャッシュ構成情報208aの検索を行う(図5のステップS15)。   If the command received from the host computer in the determination in step S2 is read (No in step S2 in FIG. 5), the processor 210a determines that the cache configuration information 208a is independent of the information indicating the master controller in the device configuration information 211a. Is searched (step S15 in FIG. 5).

該リードコマンドのデータがキャッシュメモリ209a上に存在するか否かを判定する(図5のステップS16)。   It is determined whether or not the read command data exists on the cache memory 209a (step S16 in FIG. 5).

判定の結果、該リードコマンドのデータに相当するページがキャッシュメモリ209a上に存在する場合(図5のステップS16のYes)、他のコマンドや他のコントローラで使用されていないか否か排他の確認を行う。具体的には、キャッシュ構成情報208aのページ情報405にある排他情報の参照を行い、排他状態の確認を行う(図5のステップS21)。   As a result of the determination, if a page corresponding to the data of the read command exists on the cache memory 209a (Yes in step S16 in FIG. 5), it is confirmed whether or not it is not used by another command or another controller. I do. Specifically, the exclusive information in the page information 405 of the cache configuration information 208a is referred to and the exclusive state is confirmed (step S21 in FIG. 5).

確認の結果、該ページが排他状態でなければ(図5のステップS21のNo)、キャッシュ構成情報208aのページアドレス406を取得すると共に、該ページの排他処理を行い、次のステップに進む(図5のステップS23)。   As a result of the confirmation, if the page is not in the exclusive state (No in step S21 in FIG. 5), the page address 406 of the cache configuration information 208a is acquired, the page is excluded, and the process proceeds to the next step (FIG. 5). 5 step S23).

確認の結果、該ページが排他状態の場合(図5のステップS21のYes)、該リードコマンドの処理は、他のコマンドあるいは他のコントローラの処理実行中による該ページの排他が解除されるまで待ち状態に入る。排他が解除されれば、キャッシュ構成情報208aのページ情報405に排他の情報を書き込み、ページに対する排他処理を行う(図5のステップS22)。   As a result of the confirmation, if the page is in an exclusive state (Yes in step S21 in FIG. 5), the read command processing waits until the exclusion of the page due to execution of another command or other controller processing is released. Enter the state. If the exclusion is released, the exclusion information is written in the page information 405 of the cache configuration information 208a, and the exclusion process for the page is performed (step S22 in FIG. 5).

次に、検索の結果得られたページアドレス406のアドレスで示されるページのデータをキャッシュメモリ209aから読み出し、コマンド処理部203aを通じてホストコンピュータに転送を行う(図5のステップS19)。   Next, the data of the page indicated by the address of the page address 406 obtained as a result of the search is read from the cache memory 209a and transferred to the host computer through the command processing unit 203a (step S19 in FIG. 5).

その後に、ホストコンピュータにリードコマンドの終了を報告すると同時に、該キャッシュ構成情報208aのページ情報405の排他の解除を行いリードコマンドに対する処理を完了する(図5のステップS20)。   Thereafter, the end of the read command is reported to the host computer, and at the same time, the exclusion of the page information 405 of the cache configuration information 208a is canceled to complete the processing for the read command (step S20 in FIG. 5).

該リードコマンドのデータに相当するページがキャッシュメモリ209a上に存在しない場合(図5のステップS16のNo)、プロセッサ210aは、新たに確保可能なキャッシュメモリ209a上のページを検索し、該ページを新たに格納するページとしてキャッシュ構成情報208aのページアドレス406にページのアドレスの登録を行うと共に、ページ情報405に排他の情報を書き込み、排他処理を行う(図5のステップS17)。   When the page corresponding to the read command data does not exist in the cache memory 209a (No in step S16 in FIG. 5), the processor 210a searches for a page on the cache memory 209a that can be newly secured, As a new page to be stored, the page address is registered at the page address 406 of the cache configuration information 208a, and exclusive information is written into the page information 405 to perform exclusion processing (step S17 in FIG. 5).

その後、プロセッサ210aは、ディスク制御部207aに対して、磁気ディスク装置上のデータの読み込みを指示し、ディスク制御部207aは、ディスクインタフェース206aあるいは213aを通じて、磁気ディスク装置212aあるいは磁気ディスク装置212b上のデータを読み込み、キャッシュメモリ209a上のページへの書き込みを行う(図5のステップS18)。   Thereafter, the processor 210a instructs the disk control unit 207a to read data on the magnetic disk device, and the disk control unit 207a operates on the magnetic disk device 212a or the magnetic disk device 212b via the disk interface 206a or 213a. Data is read and written to a page on the cache memory 209a (step S18 in FIG. 5).

キャッシュメモリ209a上への書き込みが完了すると、プロセッサ210aは、キャッシュメモリ209a上のデータをコマンド処理部203aとホストインターフェイス202aを通じてホストコンピュータに転送を行う(図5のステップS19)。   When the writing to the cache memory 209a is completed, the processor 210a transfers the data on the cache memory 209a to the host computer through the command processing unit 203a and the host interface 202a (step S19 in FIG. 5).

その後、プロセッサ210aは、ホストコンピュータにリードコマンドの終了を報告すると同時に、該キャッシュ構成情報208aのページ情報405の排他の解除を行い、リードコマンドに対する処理を完了する(図5のステップS20)。   Thereafter, the processor 210a reports the end of the read command to the host computer, and at the same time, releases the exclusion of the page information 405 of the cache configuration information 208a, and completes the processing for the read command (step S20 in FIG. 5).

次に本実施例の作用効果について説明する。   Next, the function and effect of this embodiment will be described.

キャッシュメモリ上のページへのアクセスの手順として、同一の論理アドレスのリード/ライトであれば、必ずマスタのコントローラで既存のページであれば排他が行われているか否かの判定を行い、その後、ページの排他制御を行い、その後、冗長化が行われているコントローラのキャッシュメモリ上のページにアクセスを行う。   As a procedure for accessing a page on the cache memory, if it is read / write of the same logical address, it is always determined whether or not exclusion is performed if it is an existing page in the master controller. The exclusive page control is performed, and thereafter, the page on the cache memory of the controller that has been made redundant is accessed.

かかる構成により、同一ページにリード/ライトを行う後続のコマンドは、該当ページの排他の解除待ちになり、該当ページのデータに対する一貫性は保証される。   With this configuration, subsequent commands that read / write to the same page wait for cancellation of exclusion of the corresponding page, and consistency with the data of the corresponding page is guaranteed.

また、それぞれのコントローラで、キャッシュメモリの管理、即ち、ページの管理がキャッシュ構成情報によって行われ、リードデータのキャッシュは、それぞれの個別のコントローラのキャッシュメモリのみでのキャッシュが可能となるため、キャッシュメモリの利用効率が高い。   In addition, each controller performs cache memory management, that is, page management based on the cache configuration information, and the read data can be cached only by the cache memory of each individual controller. High memory utilization efficiency.

さらに、キャッシュ構成情報の全体、或いは一部を排他処理する方式に較べて、リードもしくはライトを行うための排他処理がページという最小単位のみで済むため、他のコマンドによるリード/ライトや他のコントローラのリード/ライトの競合が少なく、性能向上を容易化している。   Furthermore, since exclusive processing for performing read or write is only a minimum unit called a page as compared to a method of performing exclusive processing on all or part of cache configuration information, read / write by other commands and other controllers There is little competition of read / write, and performance improvement is facilitated.

本発明によれば、ホストコンピュータから、情報の蓄積を行うストレージの用途や、ホストコンピュータとストレージの中間にネットワークを介して接続されるキャッシュ装置の冗長化による対故障性に対する対策に適用できる。また、本発明の機能をホストコンピュータに内蔵し、ホストコンピュータ間のクラスタ接続の際のデータの冗長化といった用途にも適用可能である。   INDUSTRIAL APPLICABILITY According to the present invention, the present invention can be applied to a countermeasure against failure due to the use of a storage that accumulates information from a host computer and the redundancy of a cache device connected between the host computer and the storage via a network. Further, the function of the present invention is built in a host computer, and the present invention can also be applied to uses such as data redundancy in cluster connection between host computers.

なお、上記図5乃至図7を参照して説明した動作手順は、好ましくはコントローラのプロセッサ上で実行されるコンピュータプログラムによりその処理が実現される。   The operation procedure described with reference to FIGS. 5 to 7 is preferably realized by a computer program executed on the processor of the controller.

図8には、本発明に係るコントローラを4つ備えたシステム(4ノードシステム)が例示されている。コントローラ0−3(501a−501d)は、図1に示した実施例の構成と同一の要素を備えている。   FIG. 8 illustrates a system (four-node system) including four controllers according to the present invention. The controllers 0-3 (501a-501d) have the same elements as those of the embodiment shown in FIG.

ホストインターフェイス502は、図1のホストインターフェイス102に対応し、相互接続網504は、図1の接続インターフェイス104に対応する。ディスク制御部507は、図1のディスク制御部107に対応する。コントローラ0、1は、図2の2ノード構成に対応し、コントローラ0のディスク制御部は、対応するディスクインタフェースを介して磁気ディスク装置512a、512bにそれぞれアクセス自在とされ、コントローラ1のディスク制御部は、対応するディスクインタフェースを介して磁気ディスク装置512b、512aにそれぞれアクセス自在とされる。コントローラ2、3は、図2の2ノード構成に対応し、コントローラ2のディスク制御部は、対応するディスクインタフェースを介して磁気ディスク装置512c、512dにそれぞれアクセス自在とされ、コントローラ3のディスク制御部は、対応するディスクインタフェースを介して磁気ディスク装置512d、512cにそれぞれアクセス自在とされる。   The host interface 502 corresponds to the host interface 102 in FIG. 1, and the interconnection network 504 corresponds to the connection interface 104 in FIG. The disk control unit 507 corresponds to the disk control unit 107 in FIG. The controllers 0 and 1 correspond to the two-node configuration of FIG. 2, and the disk control unit of the controller 0 is accessible to the magnetic disk devices 512a and 512b via the corresponding disk interface. Are accessible to the magnetic disk devices 512b and 512a via the corresponding disk interfaces. The controllers 2 and 3 correspond to the two-node configuration of FIG. 2, and the disk control unit of the controller 2 is accessible to the magnetic disk devices 512c and 512d via the corresponding disk interface. Are accessible to the magnetic disk devices 512d and 512c via the corresponding disk interfaces.

コントローラ0−3は、各コントローラ内の通信制御部と、相互接続網504とを介して相互に接続され、コントローラ間でキャッシュデータ等の転送を行う。コントローラ0と1は、相互接続網504を介してコントローラ2又は3と通信し、そのディスク制御部を介して磁気ディスク装置512c、512dにアクセス自在とされ、コントローラ2と3は、相互接続網504を介して、コントローラ0又は1と通信しそのディスク制御部を介して、磁気ディスク装置512a、512bにアクセス自在とされ、4つのコントローラ0−3の各々から、磁気ディスク装置512a乃至512dにアクセス可能としている。かかる構成により、例えばコントローラ0が使用不能になった時でも、コントローラ1を介して冗長化されたデータの磁気ディスク装置への書き込みを可能としている。また例えばコントローラ2が使用不能になった時でも、コントローラ3を介して冗長化されたデータの磁気ディスク装置への書き込みを可能としている。なお、各コントローラのディスク制御部と、磁気ディスク装置512a乃至512dの接続形態は、図8に示した構成に限定されるものではなく、各コントローラのディスク制御部が、バスを介して磁気ディスク装置512a乃至512dに接続される構成にもしてもよいことは勿論である。   The controllers 0-3 are connected to each other via a communication control unit in each controller and the interconnection network 504, and transfer cache data and the like between the controllers. The controllers 0 and 1 communicate with the controller 2 or 3 via the interconnection network 504 and can access the magnetic disk devices 512c and 512d via the disk control unit. The controllers 2 and 3 communicate with the interconnection network 504. , And communicates with the controller 0 or 1 through the disk control unit to make the magnetic disk devices 512a and 512b accessible, and each of the four controllers 0-3 can access the magnetic disk devices 512a to 512d. It is said. With this configuration, for example, even when the controller 0 becomes unusable, the redundant data can be written to the magnetic disk device via the controller 1. For example, even when the controller 2 becomes unusable, the redundant data can be written to the magnetic disk device via the controller 3. The connection form of the disk control unit of each controller and the magnetic disk devices 512a to 512d is not limited to the configuration shown in FIG. 8, and the disk control unit of each controller is connected to the magnetic disk device via a bus. Of course, it may be configured to be connected to 512a to 512d.

また、コントローラ0−3の各装置構成情報511には、予め同一の情報が書き込まれており、それぞれのコントローラが他のコントローラに問い合わせることなく、コントローラのプロセッサによる参照を可能としている。   Further, the same information is written in advance in each device configuration information 511 of the controller 0-3, and each controller can refer to the controller without querying another controller.

図9は、本発明の比較例として、本発明の構成をとらないコントローラを4台備えた場合のライトアクセス制御の一例を示すシーケンス図である。図9の比較例の場合、キャッシュページを管理するマスタのコントローラは存在しない。図9のコントローラ0−3は、図8のコントローラ0−3において、装置構成情報511を各コントローラが保持しない構成とされる。なお、図9の比較例では、コントローラ0、1、3が、上位装置からのライトデータを、それぞれのキャッシュメモリに冗長に書き込む三重冗長セットを構成しており、例えばコントローラ0へのWriteコマンドに対して、コントローラ0、1、3のキャッシュメモリへライトデータが書き込まれる。   FIG. 9 is a sequence diagram showing an example of write access control when four controllers that do not have the configuration of the present invention are provided as a comparative example of the present invention. In the case of the comparative example in FIG. 9, there is no master controller that manages the cache page. The controller 0-3 in FIG. 9 is configured such that each controller does not hold the device configuration information 511 in the controller 0-3 in FIG. In the comparative example of FIG. 9, the controllers 0, 1, and 3 form a triple redundant set in which write data from the host device is redundantly written to the respective cache memories. For example, in the Write command to the controller 0, On the other hand, write data is written to the cache memories of the controllers 0, 1, and 3.

図9を参照すると、コントローラ0のコマンド処理部は、そのホストインタフェースを介してホスト(不図示)からのライト(Write)コマンドを受信すると、三重冗長セットを構成する他のコントーラ1、3に対して、キャッシュ構成情報の排他処理(LOCK)を指示する。コントローラ0と、コントローラ0からの指示(キャッシュ構成情報の排他指示)を受けたコントローラ1と3は、それぞれのキャッシュ構成情報(図4参照)をロック(LOCK)する。なお、各コントローラにおける、これらの排他処理、及び通信処理は、各コントローラのプロセッサ、通信制御部、相互通信網等を通して行われる。   Referring to FIG. 9, when the command processing unit of the controller 0 receives a write command from the host (not shown) via the host interface, the command processing unit transmits to the other controllers 1 and 3 constituting the triple redundant set. The cache configuration information exclusion process (LOCK) is instructed. The controller 0 and the controllers 1 and 3 that have received an instruction from the controller 0 (cache configuration information exclusion instruction) lock (LOCK) their respective cache configuration information (see FIG. 4). Note that these exclusive processing and communication processing in each controller are performed through the processor, communication control unit, mutual communication network, and the like of each controller.

コントローラ0と、コントローラ1と3におけるキャッシュ構成情報のロックの完了通知を受け、コントローラ0は、他のコントローラ1、3に、キャッシュサーチとページのロックを指示するとともに、自コントローラ内でのキャッシュサーチとページのロックを行う。またコントローラ0からのキャッシュサーチとページのロック指示を受けて、コントローラ1、3も、キャッシュサーチとキャッシュページのロックを行う。なお、前述したように、コントローラ0、1、3は、キャッシュサーチにおいて、ライトコマンドで指定されるページがキャッシュメモリ上に存在しないと判定されると、プロセッサは、キャッシュ構成情報を参照し、新たに確保可能なキャッシュメモリのページを検索し、該ページを新たに格納するページとして、キャッシュ構成情報のページアドレスにページのアドレスの登録を行う。そして、当該ページの排他処理を行う。ページの排他処理は、キャッシュ構成情報のページ情報の排他情報にロックを設定することで行われる。   Upon receiving notification of the completion of the lock of the cache configuration information in the controller 0 and the controllers 1 and 3, the controller 0 instructs the other controllers 1 and 3 to perform cache search and page lock, and performs cache search in its own controller. And lock the page. Upon receiving a cache search and page lock instruction from the controller 0, the controllers 1 and 3 also perform cache search and cache page lock. As described above, when the controller 0, 1, 3 determines that the page specified by the write command does not exist in the cache memory in the cache search, the processor refers to the cache configuration information, and newly A page of the cache memory that can be secured is searched, and the page address is registered in the page address of the cache configuration information as a page for newly storing the page. Then, the exclusion process for the page is performed. The page exclusion process is performed by setting a lock on the page information exclusion information of the cache configuration information.

つづいて、コントローラ0は、コントローラ0、1、3におけるキャッシュサーチとページロックの完了を待って、コントローラ1、3に、キャッシュ構成情報のアンロック(UNLOCK;ロック解除)を指示し、コントローラ0と、コントローラ0からキャッシュ構成情報のUNLOCKの指示を受けたコントローラ1、3は、それぞれのキャッシュ構成情報をアンロックする。   Subsequently, the controller 0 waits for the completion of the cache search and the page lock in the controllers 0, 1 and 3, and instructs the controllers 1 and 3 to unlock (UNLOCK) the cache configuration information. Upon receiving the UNLOCK instruction for the cache configuration information from the controller 0, the controllers 1 and 3 unlock the respective cache configuration information.

コントローラ0のコマンド処理部は、ホストインタフェースからWriteデータを受け取り、コントローラ1、3に対して、Writeデータを転送し、コントローラ0、1、3におけるWriteデータのキャッシュページへの書き込み完了応答を待ち合わせる。   The command processing unit of the controller 0 receives the write data from the host interface, transfers the write data to the controllers 1 and 3, and waits for a write completion response to the cache page of the write data in the controllers 0, 1 and 3.

コントローラ0、1、3のWriteデータのキャッシュメモリの該当ページへの書き込みが完了すると、コントローラ0は、Writeコマンドに対する応答として、書き込みの状態(Write State)を、ホストインターフェースを介してホストに返す。   When the writing of the write data of the controller 0, 1, 3 to the corresponding page in the cache memory is completed, the controller 0 returns the write state (Write State) to the host via the host interface as a response to the Write command.

次に、コントローラ0は、コントーラ1、3に対して、キャッシュ構成情報の排他処理(LOCK)を指示し、各コントローラ0、1、3は、それぞれのキャッシュ構成情報(図4参照)をロック(LOCK)する。   Next, the controller 0 instructs the controllers 1 and 3 to perform cache configuration information exclusion processing (LOCK), and the controllers 0, 1 and 3 lock their cache configuration information (see FIG. 4) ( LOCK).

コントローラ0は、各コントローラ0、1、3におけるキャッシュ構成情報のロックが完了すると、キャッシュサーチとページのアンロックを行い、また、コントローラ0からのアンロックの指示を受けて、コントローラ1、3もキャッシュページのアンロックを行う。   When the cache configuration information is locked in each of the controllers 0, 1, 3, the controller 0 performs cache search and page unlock, and the controllers 1, 3 also receive the unlock instruction from the controller 0. Unlock the cache page.

コントローラ0、1、3におけるキャッシュ構成情報のアンロック後、コントローラ0、1、3はキャッシュ構成情報をアンロック(UNLOCK)する。   After unlocking the cache configuration information in the controllers 0, 1, 3, the controllers 0, 1, 3 unlock the cache configuration information (UNLOCK).

図10は、コントローラ0−3として、図8に示した本実施例のコントローラ0−3を備えた場合のライトアクセスの制御の一例を示すシーケンス図である。なお、各コントローラでは、キャッシュメモリの部分領域のマスタのコントローラが何れのコントローラであるかを示す装置構成情報(図8の511)と、キャッシュメモリの該領域がどのコントローラで冗長化されているかを示すキャッシュ構成情報(図8の508)に関して、各コントローラは、同一の内容を参照することができる構成とされている。なお、図10に示す本実施例では、コントローラ0、1、3は三重冗長セットを構成しており、例えばコントローラ0へライト(Write)コマンドに対して、コントローラ0、1、3のキャッシュメモリへデータの冗長書き込みが行われる。   FIG. 10 is a sequence diagram illustrating an example of write access control when the controller 0-3 includes the controller 0-3 of the present embodiment illustrated in FIG. In each controller, device configuration information (511 in FIG. 8) indicating which controller is the master controller of the partial area of the cache memory, and which controller is used to make the area of the cache memory redundant. Regarding the cache configuration information shown (508 in FIG. 8), each controller is configured to be able to refer to the same content. In the present embodiment shown in FIG. 10, the controllers 0, 1 and 3 constitute a triple redundant set. For example, in response to a write command to the controller 0, the cache memory of the controllers 0, 1 and 3 is transferred. Redundant data writing is performed.

コントローラ0のコマンド処理部は、ホストコンピュータからのライト(Write)コマンドを受信し、装置構成情報(図8の511)から、WriteコマンドのWriteデータの格納用のキャッシュメモリ上での該当領域の排他処理を行うためのマスタのコントローラを決定する。この場合、キャッシュメモリ上での該当ページのマスタはコントローラ1であることが判明する。   The command processing unit of the controller 0 receives the write command from the host computer, and excludes the corresponding area on the cache memory for storing the write data of the write command from the device configuration information (511 in FIG. 8). Determine the master controller for processing. In this case, it becomes clear that the master of the corresponding page on the cache memory is the controller 1.

コントローラ0は、マスタであるコントローラ1に対して、キャッシュサーチ指示を送信し、該ページの排他処理の依頼を送信する。この依頼を受けたコントローラ1のプロセッサは、まず、キャッシュ構成情報をロック(LOCK)し、キャッシュサーチ及びページのロックを行い、つづいて、キャッシュ構成情報をアンロック(UNLOCK)する。その際、キャッシュサーチにおいて、指定されたページ領域が既にマスタコントローラ1のキャッシュメモリ上に存在する場合、他のアクセス要求で排他されているか否かを確認し、確認の結果、該ページ領域が他のアクセス要求によって排他されていれば、該排他が終了するまで待ち、一方、該ページ領域が他のアクセス要求で排他されていなければ、排他処理を行う。また、マスタコントローラ1において、指定されたページ領域がキャッシュメモリ上に用意されていず(ミスヒット)、新たに確保すべきである場合、新たにページ領域を確保してページのロックを行い、キャッシュ構成情報をアンロック(UNLOCK)し、当該ページ領域のマスタであるコントローラ1は、キャッシュサーチが完了したことを、コントローラ0に通知する。なお、各コントローラにおける、これらの排他処理、及び通信処理は、各コントローラのプロセッサ、通信制御部、相互通信網等を通して行われる。   The controller 0 transmits a cache search instruction to the master controller 1, and transmits a request for exclusive processing of the page. Upon receiving this request, the processor of the controller 1 first locks (LOCK) the cache configuration information, performs cache search and page lock, and then unlocks (UNLOCK) the cache configuration information. At this time, in the cache search, if the designated page area already exists in the cache memory of the master controller 1, it is confirmed whether or not the page area is excluded by another access request. If the page area is not excluded by another access request, an exclusion process is performed. Further, in the master controller 1, when the designated page area is not prepared in the cache memory (miss hit) and should be newly reserved, a page area is newly reserved and the page is locked. The configuration information is unlocked (UNLOCK), and the controller 1 that is the master of the page area notifies the controller 0 that the cache search is completed. Note that these exclusive processing and communication processing in each controller are performed through the processor, communication control unit, mutual communication network, and the like of each controller.

次に、コントローラ0は、該ライト要求で冗長化すべきキャッシュメモリを持つ冗長先コントローラ0と3を決定し、この場合、冗長先のコントローラ3に対して、ライト要求で冗長化を行うための領域の排他処理(キャッシュサーチ指示)の依頼を送信する。   Next, the controller 0 determines the redundant destination controllers 0 and 3 having the cache memory to be made redundant by the write request, and in this case, the area for making the redundant controller 3 redundant by the write request. A request for exclusive processing (cache search instruction) is transmitted.

それぞれのコントローラ0、1、3では、キャッシュ構成情報を一旦、排他処理(ロック)を行う。この場合、該ページ領域が他で排他されていれば、解除されるまで待った後に排他処理を行い、他で排他されていなければ、ロックを行い、キャッシュ構成情報のアンロックを行う。また、該ページ領域が新たなものであれば、新たに確保して排他処理を行う。コントローラ1、3は、キャッシュサーチとページのロック、及びキャッシュ構成情報のアンロック(UNLOCK)が完了したことをコントローラ0に通知する。   Each controller 0, 1, 3 once performs an exclusive process (lock) on the cache configuration information. In this case, if the page area is exclusive, the exclusive process is performed after the page area is released. If the page area is not exclusive, the page area is locked and the cache configuration information is unlocked. If the page area is new, the page area is newly secured and exclusive processing is performed. The controllers 1 and 3 notify the controller 0 that the cache search, page lock, and cache configuration information unlock (UNLOCK) have been completed.

コントローラ0は、冗長化のための領域の排他処理の依頼の送信先のコントローラ3からの完了の応答(報告)を待ち合わせる。すなわち、コントローラ0での冗長化のための領域の排他処理が完了しても、冗長先の他のコントローラ3からの排他処理の完了の応答(報告)を受けるまで、次に進まない。   The controller 0 waits for a completion response (report) from the destination controller 3 of the request for exclusive processing of the area for redundancy. That is, even if the exclusive process of the area for redundancy in the controller 0 is completed, the process does not proceed until a response (report) of the exclusive process from the other controller 3 in the redundancy destination is received.

そして、冗長先の他のコントローラ3からの完了の応答を受信すると、コントローラ0は、コントローラ0のキャッシュメモリの該当ページ領域に、ホストから受けたライトデータの書き込みを行う。また、コントローラ0は、通信制御部505、相互接続網504を介して、コントローラ1、3に、ホストから受けたライトデータを転送し、コントローラ1、3のキャッシュメモリの該当ページ領域に、ホストから受けたライトデータの書き込みを行う。ライトデータに対する複数のコントローラに対する冗長化を実現する。なお、冗長化は三重に制限されるものでなく二重化であってもよい。   When receiving a completion response from the other redundant controller 3, the controller 0 writes the write data received from the host into the corresponding page area of the cache memory of the controller 0. Further, the controller 0 transfers the write data received from the host to the controllers 1 and 3 via the communication control unit 505 and the interconnection network 504, and transfers the write data from the host to the corresponding page area of the cache memory of the controllers 1 and 3. Write the received write data. Redundancy for multiple controllers for write data is realized. Redundancy is not limited to triple, and may be duplex.

コントローラ0、1、3のWriteデータの書き込みが完了すると、コントローラ0は、書き込み結果(Write State)をホストに返し、コントローラ0、1、3のそれぞれも、キャッシュ構成情報のロック(LOCK)を行い、当該キャッシュページのロックを解除し(UNLOCK)した後、キャッシュ構成情報をアンロックする。なお、各コントローラのキャッシュメモリに書き込まれたライトデータは、例えばライトバック方式等で、適宜、対応するディスク装置(ストレージ)に書き込まれる。   When writing of the write data of the controllers 0, 1 and 3 is completed, the controller 0 returns a write result (Write State) to the host, and each of the controllers 0, 1 and 3 also locks (LOCK) the cache configuration information. After unlocking the cache page (UNLOCK), the cache configuration information is unlocked. Note that the write data written to the cache memory of each controller is appropriately written to the corresponding disk device (storage) by, for example, a write back method.

本実施例によれば、マスタのコントローラでキャッシュ・ページの排他制御を行い、その後、冗長化が行われているコントローラのキャッシュメモリ上のページにアクセスを行うため、同一ページにリード/ライトを行う後続のコマンドは、該当ページの排他の解除待ちになり、該当ページのデータに対する一貫性が保証される。これに対して、比較例の図9のシーケンス図の場合、かかる制御は行われていない。   According to this embodiment, the master controller performs exclusive control of the cache page, and then accesses the page in the cache memory of the redundant controller, so that the same page is read / written. Subsequent commands wait for cancellation of exclusion of the corresponding page, and the consistency of the data of the corresponding page is guaranteed. On the other hand, in the case of the sequence diagram of FIG. 9 of the comparative example, such control is not performed.

また、図10のシーケンス図と、比較例の図9のシーケンス図とから分かるように、本発明によれば、コントローラ間の指示(コマンド)、応答(報告)のやり取りを大幅に縮減している。   Further, as can be seen from the sequence diagram of FIG. 10 and the sequence diagram of FIG. 9 of the comparative example, according to the present invention, the exchange of instructions (commands) and responses (reports) between the controllers is greatly reduced. .

また上記実施例では、キャッシュメモリの管理単位の領域としてページ単位に管理する例を説明したが、本発明はかかる構成に限定されるものでないことは勿論である。   In the above-described embodiment, an example in which the management unit area of the cache memory is managed in units of pages has been described, but the present invention is of course not limited to such a configuration.

以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみに制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   The present invention has been described with reference to the above-described embodiments. However, the present invention is not limited to the configurations of the above-described embodiments, and various modifications that can be made by those skilled in the art within the scope of the present invention. Of course, it includes deformation and correction.

本発明の一実施例のコントローラの構成を示すブロック図である。It is a block diagram which shows the structure of the controller of one Example of this invention. 本発明の一実施例のシステム構成(コントローラ2台)を示す図である。It is a figure which shows the system configuration | structure (2 controllers) of one Example of this invention. 本発明の一実施例における装置構成情報の内容を示す図である。It is a figure which shows the content of the apparatus structure information in one Example of this invention. 本発明の一実施例におけるキャッシュ構成情報を示す図である。It is a figure which shows the cache structure information in one Example of this invention. 本発明の一実施例の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of one Example of this invention. 本発明の一実施例において自コントローラのサーチ処理を説明するためのフローチャートである。It is a flowchart for demonstrating the search process of a self-controller in one Example of this invention. 本発明の一実施例において他コントローラのサーチ処理を説明するためのフローチャートである。It is a flowchart for demonstrating the search process of another controller in one Example of this invention. 本発明の他の実施例のシステム構成(コントローラ4台)を示す図である。It is a figure which shows the system configuration | structure (4 controllers) of the other Example of this invention. 比較例の動作の一例を説明するシーケンス図である。It is a sequence diagram explaining an example of operation | movement of a comparative example. 本発明の他の実施例の動作の一例を説明するシーケンス図である。It is a sequence diagram explaining an example of operation | movement of the other Example of this invention.

符号の説明Explanation of symbols

101 コントローラ
102 ホストインターフェイス
103 コマンド処理部
104 接続インターフェイス
105 通信制御部
106 ディスクインターフェイス
107 ディスク制御部
108 キャッシュ構成情報
109 キャッシュメモリ
110 プロセッサ
111 装置構成情報
201a、201b、501a、501b、501c、501d コントローラ
202a、202b、502 ホストインターフェイス
203a、203b、503 コマンド処理部
204 接続インターフェイス
205a、205b、505 通信制御部
206a、206b、506 ディスクインターフェイス
207a、207b、507 ディスク制御部
208a、208b、508 キャッシュ構成情報
209a、209b、509 キャッシュメモリ
210a、210b、510 プロセッサ
211a、211b、511 装置構成情報
212a、212b、512a、512b、512c、512d 磁気ディスク装置
213a、213b ディスクインターフェイス
301 領域情報
302 マスタのコントローラ番号
401 ハッシュテーブル
402 ページタグ
403 ポインタ
404 ページ識別子
405 ページ情報
406 ページアドレス
504 相互接続網
101 controller 102 host interface 103 command processing unit 104 connection interface 105 communication control unit 106 disk interface 107 disk control unit 108 cache configuration information 109 cache memory 110 processor 111 device configuration information 201a, 201b, 501a, 501b, 501c, 501d controller 202a, 202b, 502 Host interface 203a, 203b, 503 Command processing unit 204 Connection interface 205a, 205b, 505 Communication control unit 206a, 206b, 506 Disk interface 207a, 207b, 507 Disk control unit 208a, 208b, 508 Cache configuration information 209a, 209b 509 Cache memory 210 a, 210b, 510 Processor 211a, 211b, 511 Device configuration information 212a, 212b, 512a, 512b, 512c, 512d Magnetic disk device 213a, 213b Disk interface 301 Area information 302 Master controller number 401 Hash table 402 Page tag 403 Pointer 404 Page identifier 405 Page information 406 Page address 504 Interconnection network

Claims (16)

それぞれが、対応する上位装置に接続されるとともに、相互に通信接続し、対応するストレージ装置にアクセス自在とされる、複数のコントローラを含むストレージシステムであって、
前記複数のコントローラのそれぞれが、
前記ストレージ装置のデータの一部を格納するためのキャッシュメモリと、
前記キャッシュメモリのアクセス制御を行うキャッシュ処理手段と、
を備え、
前記複数のコントローラのそれぞれは、さらに、
前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、
前記装置構成情報は、前記複数のコントローラ間で、同一の内容とされ、
前記上位装置からのアクセス要求を受けたコントローラにおいて、前記キャッシュ処理手段は、前記コントローラ内の前記装置構成情報を参照して、前記アクセス要求のアドレスに対応するデータを格納する領域に関してマスタとなるコントローラを決定し、
前記マスタのコントローラの前記キャッシュ処理手段は、前記データに関してこれを冗長化して格納するキャッシュメモリを持つ冗長先のコントローラが存在する場合に前記冗長先のコントローラでのキャッシュメモリの排他処理が行われる前に、前記マスタのコントローラのキャッシュメモリの排他処理を行う、ことを特徴とするストレージシステム。
Each of the storage systems includes a plurality of controllers that are connected to a corresponding host device and are connected to each other to communicate with each other to make the corresponding storage device accessible.
Each of the plurality of controllers is
A cache memory for storing a part of the data of the storage device;
Cache processing means for controlling access to the cache memory;
With
Each of the plurality of controllers further includes:
Storing and holding device configuration information that defines the correspondence between the logical address area from the host device and the master controller assigned to the area;
The device configuration information is the same content among the plurality of controllers,
In the controller that has received an access request from the host device, the cache processing means refers to the device configuration information in the controller and serves as a master for an area for storing data corresponding to the address of the access request Decide
The cache processing means of the master controller before the cache memory exclusive processing is performed in the redundant controller when there is a redundant controller having a cache memory for storing the data in a redundant manner In addition, the cache system of the master controller performs exclusive processing.
前記上位装置からのライト要求を受けたコントローラにおいて、前記キャッシュ処理手段は、前記コントローラ内の前記装置構成情報を参照して、ライトデータを格納する領域に関してマスタとなるコントローラを決定し、
前記マスタのコントローラの前記キャッシュ処理手段は、前記マスタのコントローラの前記キャッシュメモリの前記ライトデータの格納先の領域が既に排他されているか否かを確認し、前記領域が排他されている場合には、前記領域の排他が解除されるまで待ってから排他を行い、前記領域が排他されていない場合には、前記領域の排他を行い、
前記ライトデータに関してこれを冗長化して格納すべきキャッシュメモリを持つ冗長先のコントローラが存在する場合には、前記冗長先のコントローラでのキャッシュメモリの排他処理に先んじて、前記マスタのコントローラでのキャッシュメモリの排他処理が行われる、ことを特徴とする請求項1記載のストレージシステム。
In the controller that has received the write request from the host device, the cache processing means refers to the device configuration information in the controller and determines a controller as a master with respect to an area for storing write data.
The cache processing means of the master controller checks whether or not the write data storage destination area of the cache memory of the master controller is already exclusive, and if the area is exclusive , Wait until the exclusion of the area is released and then perform the exclusion, and if the area is not exclusive, perform the exclusion of the area,
When there is a redundant controller having a cache memory to store the write data in a redundant manner, the cache in the master controller is prior to the cache memory exclusive processing in the redundant controller. 2. The storage system according to claim 1, wherein a memory exclusive process is performed.
前記ライトデータに関して前記冗長先のコントローラが存在する場合に、前記マスタのコントローラでの前記キャッシメモリの領域の排他処理の完了に基づき、前記冗長先のコントローラの前記キャッシュ処理手段が、前記冗長先のコントローラの前記キャッシメモリの前記ライトデータの格納領域の排他を行い、
前記冗長先のコントローラでの前記排他処理の完了に基づき、前記マスタのコントローラのキャッシュメモリと、前記冗長先のコントローラのキャッシュメモリへの前記ライトデータの書き込みが行われる、ことを特徴とする請求項2記載のストレージシステム。
When the redundancy destination controller exists for the write data, the cache processing means of the redundancy destination controller is configured to execute the exclusion processing of the cache memory area in the master controller. Exclude the write data storage area of the cache memory of the controller,
The write data is written to a cache memory of the master controller and a cache memory of the redundant controller based on completion of the exclusion process in the redundant controller. 2. The storage system according to 2.
前記上位装置からのライト要求を受けた前記コントローラの前記キャッシュ処理手段は、ライトデータを格納する領域に関して、マスタとなるコントローラが、自コントローラでない場合には、前記マスタのコントローラに対して、キャッシュサーチを指示し、
前記マスタのコントローラからキャッシュサーチの完了を受け取った場合、前記上位装置からのライト要求を受けた前記コントローラの前記キャッシュ処理手段、及び、冗長先の他のコントローラがある場合には、前記冗長先の他のコントローラの前記キャッシュ処理手段にてキャッシュサーチをそれぞれ行い、それぞれの前記コントローラのキャッシュメモリの該当領域に、ライトデータの書き込みを行う、ことを特徴とする請求項1又は2記載のストレージシステム。
In response to a write request from the host device, the cache processing means of the controller performs cache search on the master controller when the master controller is not its own controller with respect to the area for storing write data. Instruct
When a cache search completion is received from the master controller, the cache processing means of the controller that has received a write request from the host device, and when there is another redundant destination controller, the redundancy destination 3. The storage system according to claim 1, wherein cache search is performed by the cache processing means of another controller, and write data is written to a corresponding area of the cache memory of each controller.
前記複数のコントローラは、それぞれ、前記キャッシュメモリの領域の構成情報を管理するためのキャッシュ構成情報を備え、
前記キャッシュ構成情報に関して、前記複数のコントローラは、同一の内容を参照する構成とされてなる、ことを特徴とする請求項1又は2記載のストレージシステム。
Each of the plurality of controllers includes cache configuration information for managing configuration information of the cache memory area,
The storage system according to claim 1 or 2, wherein the plurality of controllers are configured to refer to the same contents with respect to the cache configuration information.
前記上位装置からのライト要求を受けたコントローラの前記キャッシュ処理手段は、前記ライト要求の論理アドレスに基づき、前記装置構成情報を参照して、前記ライト要求のデータの格納用のキャッシュメモリ上での該当領域の排他を行うためのマスタのコントローラを決定し、決定したマスタのコントローラのキャッシュ処理手段に対して、前記領域の排他処理を依頼し、
前記マスタのコントローラのキャッシュ処理手段は、
指定された領域が既に自身のキャッシュメモリ上に存在する場合、他のアクセス要求で排他されているか否かを確認し、
前記領域が他のアクセス要求によって排他されている場合には、前記領域の排他処理が終了するまで待ち、
前記領域が他のアクセス要求で排他されていない場合には、前記領域の排他を行い、
一方、前記指定された領域が、前記キャッシュメモリ上になく新たに確保すべきである場合、前記キャッシュメモリ上に新たに領域を確保した後、前記新たに確保した領域の排他を行い、
前記マスタのコントローラでの排他処理が完了したことを、前記上位装置からのライト要求を受けた前記コントローラに通知する、ことを特徴とする請求項1記載のストレージシステム。
The cache processing means of the controller that has received the write request from the higher-level device refers to the device configuration information based on the logical address of the write request, and stores the write request data on the cache memory. Decide the master controller for exclusion of the corresponding area, request the cache processing means of the determined master controller to exclude the area,
The cache processing means of the master controller is
If the specified area already exists in its own cache memory, check whether it is exclusive by another access request,
If the area is exclusive by another access request, wait until the exclusive processing of the area ends,
If the area is not excluded by another access request, the area is excluded,
On the other hand, if the specified area is not on the cache memory and should be newly secured, after securing a new area on the cache memory, the newly secured area is exclusive,
The storage system according to claim 1, wherein the controller that has received the write request from the higher-level device notifies the controller that the exclusion process in the master controller has been completed.
前記ライト要求を受けたコントローラの前記キャッシュ処理手段は、
前記ライト要求に対して冗長化すべきキャッシュメモリを持つ少なくとも1つの冗長先のコントローラを決定し、
前記冗長先のコントローラのキャッシュ処理手段に対して、ライト要求で冗長化を行うための領域の排他処理の依頼を行い、
前記冗長先のコントローラのキャッシュ処理手段は、
前記冗長化を行うための領域が他で排他されている場合、前記排他が解除されるまで待った後に排他を行い、他で排他されていない場合、前記冗長化を行うための領域の排他を行い、
前記冗長化を行うための領域が新たなものであれば、前記冗長化を行うための領域を新たに確保して排他を行い、
前記冗長先のコントローラのキャッシュ処理手段は、
前記上位装置からのライト要求を受けたコントローラのキャッシュ処理手段に対して排他処理が完了したことを通知し、
前記上位装置からのライト要求を受けたコントローラのキャッシュ処理手段は、
冗長化のための領域の排他処理の依頼を発行したコントローラからの排他完了の応答を待ち合わせ、各コントローラにおいてキャッシュメモリの該当領域の排他処理が完了してから、マスタのコントローラ、および冗長先のコントローラのキャッシュメモリの該当領域に、前記上位装置から受けたライトデータの書き込みを行い、ライトデータに対する複数のコントローラに対する冗長化を実現する、ことを特徴とする請求項1記載のストレージシステム。
The cache processing means of the controller that has received the write request,
Determining at least one redundant controller having a cache memory to be made redundant with respect to the write request;
Request the exclusive processing of the area for redundancy by a write request to the cache processing means of the redundant destination controller,
The cache processing means of the redundant controller is:
If the area for performing redundancy is excluded by another, exclusion is performed after waiting for the exclusion to be canceled, and if not exclusive by other, the area for performing redundancy is excluded. ,
If the area for performing the redundancy is new, the area for performing the redundancy is newly secured and exclusive,
The cache processing means of the redundant controller is:
Notifying that the exclusive processing is completed to the cache processing means of the controller that has received the write request from the host device,
The cache processing means of the controller that has received the write request from the host device,
Wait for the exclusion completion response from the controller that issued the request for exclusive processing of the area for redundancy, and after completing the exclusive processing of the corresponding area of the cache memory in each controller, the master controller and the redundant controller The storage system according to claim 1, wherein write data received from the host device is written in a corresponding area of the cache memory to realize redundancy for a plurality of controllers with respect to the write data.
前記複数コントローラが同一領域へのライト要求を受けた際に、最初に、マスタのコントローラでキャッシュメモリにおけるライトデータを格納する領域の排他を行うことにより、同一領域に対する他のライト要求は、前記マスタのコントローラのキャッシュ処理手段で待ち、他の冗長化されたコントローラに対する同一の領域に対するライトを行わせないように制御する、ことを特徴とする請求項1記載のストレージシステム。   When the plurality of controllers receive a write request to the same area, the master controller first performs exclusion of the area storing the write data in the cache memory, so that other write requests for the same area 2. The storage system according to claim 1, wherein the controller waits at the cache processing means of the controller and controls so as not to write to the same area for the other redundant controllers. 前記上位装置からのリード要求を受けたコントローラの前記キャッシュ処理手段は、前記リード要求のデータを格納する領域に対して、自コントローラが、前記領域のマスタ又は冗長先のコントローラであるか否かの判断を行い、
自コントローラが、マスタ又は冗長先のコントローラの場合、前記キャッシュメモリに前記リード要求のデータの格納領域が存在するか否かを確認し、
前記キャッシュメモリに前記データを格納した領域が存在する場合には、前記領域が排他されてるか否かを確認し、
前記領域が他の要求によって排他されている場合、前記領域が解放されるまで待った後に排他を行い、
前記領域が他の要求によって排他されていなければ、前記領域の排他を行った上で、前記キャッシュメモリの前記領域のデータを前記上位装置に送信し、
リード要求のデータの領域が前記キャッシュメモリ上に存在しない場合には、前記キャッシュメモリ上に新たに領域を確保し、前記新たに確保した領域の排他を行った後に、前記ストレージ装置からデータを読み込み前記新たに確保した領域に格納した上で、前記上位装置にデータを送信する、ことを特徴とする請求項1記載のストレージシステム。
The cache processing means of the controller that has received the read request from the higher-level device determines whether the own controller is the master of the area or the redundant destination controller for the area storing the data of the read request. Make a decision,
If the own controller is a master or redundant controller, check whether there is a storage area for the read request data in the cache memory;
If there is an area storing the data in the cache memory, check whether the area is exclusive;
If the area is exclusive by another request, do the exclusion after waiting until the area is released,
If the area is not excluded by another request, after the exclusion of the area, the data of the area of the cache memory is transmitted to the host device,
If the data area of the read request does not exist in the cache memory, a new area is secured in the cache memory, and after the newly secured area is excluded, the data is read from the storage device. The storage system according to claim 1, wherein the storage system stores data in the newly secured area and then transmits data to the higher-level device.
前記上位装置よりリード要求を受けたコントローラの前記キャッシュ処理手段は、自身のコントローラが、前記リード要求のデータを格納する領域に関してマスタ又は冗長先のコントローラでない場合には、前記領域に関してマスタ又は冗長先のコントローラのうちのいずれか1つに前記領域の排他処理を依頼し、
前記排他処理の依頼を受けたコントローラのキャッシュ処理手段は、
前記コントローラのキャッシュメモリ上にリード要求のデータを格納する領域が存在するか確認を行い、
前記キャッシュメモリ上に前記リード要求のデータを格納する領域が存在する場合には、前記領域が排他されているか否かを確認し、
前記領域が他の要求によって排他されている場合、前記領域が解放されるまで待った後に排他を行い、
前記領域が他の要求によって排他されていなければ、前記領域の排他を行い、前記領域の排他の完了を、前記上位装置よりリード要求を受けたコントローラに通知し、
前記コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータを読み込み、前記上位装置に送信する、ことを特徴とする請求項9記載のストレージシステム。
The cache processing means of the controller that has received the read request from the host device, if its own controller is not the master or redundant destination controller for the area storing the read request data, the master or redundant destination for the area. Requesting exclusive processing of the area to any one of the controllers
The cache processing means of the controller that has received the exclusive processing request includes:
Check whether there is an area for storing read request data on the cache memory of the controller,
If there is an area for storing the read request data on the cache memory, check whether the area is exclusive;
If the area is exclusive by another request, do the exclusion after waiting until the area is released,
If the area is not excluded by another request, the area is excluded, the completion of the exclusion of the area is notified to the controller that received the read request from the host device,
The storage system according to claim 9, wherein the cache processing unit of the controller reads data in an area on the cache memory of the controller for which exclusion is performed, and transmits the data to the host device.
前記排他要求を受け取ったコントローラにおいて、前記リード要求のデータがキャッシュメモリ上に存在しない場合には、前記キャッシュメモリ上に新たに領域を確保し、
前記新たに確保した領域の排他を行った後に、前記ストレージ装置からデータを読み込んで前記新たに確保した領域に格納し、前記新たに確保した領域の排他の完了を、前記上位装置よりリード要求を受けたコントローラに通知し、
前記コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータを読み込み、前記データを前記上位装置に送信する、ことを特徴とする請求項10記載のストレージシステム。
In the controller that has received the exclusion request, if the data of the read request does not exist in the cache memory, a new area is secured on the cache memory,
After exclusion of the newly secured area, data is read from the storage device and stored in the newly secured area, and a read request is issued from the host device to complete the exclusion of the newly secured area. Notify the received controller,
11. The storage system according to claim 10, wherein the cache processing means of the controller reads data in an area on the cache memory of the controller where exclusion is performed, and transmits the data to the host device.
前記上位装置よりライト要求を受けたコントローラの前記キャッシュ処理手段は、
前記コントローラの内の前記装置構成情報を参照して、ライト要求のライトデータに対応するキャッシュメモリの領域のマスタとなるコントローラを決定し、前記上位装置よりライト要求を受けたコントローラがマスタのコントローラである場合、キャッシュサーチ及びキャッシュメモリにおいてライトデータを格納する領域の排他を行い、
前記上位装置よりアクセス要求を受けたコントローラがマスタでない場合、マスタのコントローラに対してキャッシュサーチ指示を送信し、
前記マスタのコントローラは、キャッシュサーチ及び前記キャッシュメモリにおいてライトデータを格納する領域の排他を行い、
つづいて、冗長先のコントローラがある場合に、前記冗長先のコントローラの前記キャッシュ処理手段は、キャッシュサーチ及び前記キャッシュメモリにおいて、ライトデータを格納する領域の排他を行い、
つづいて、マスタ、及び冗長先のコントローラのそれぞれのキャッシュメモリに、前記上位装置からのライトデータの書き込みが行われ、
その後、前記マスタのコントローラ、冗長先のコントローラの前記キャッシュ処理手段は、前記キャッシュメモリの前記領域の排他を解除する、ことを特徴とする請求項1記載のストレージシステム。
The cache processing means of the controller that has received a write request from the host device,
Referring to the device configuration information in the controller, the controller that determines the master of the cache memory area corresponding to the write data of the write request is determined, and the controller that received the write request from the host device is the master controller. If there is, perform the cache search and the exclusion of the area to store the write data in the cache memory,
If the controller that received the access request from the host device is not the master, send a cache search instruction to the master controller,
The master controller performs a cache search and an exclusive area for storing write data in the cache memory,
Subsequently, when there is a redundant destination controller, the cache processing means of the redundant destination controller performs an exclusion of an area for storing write data in the cache search and the cache memory,
Subsequently, write data is written from the host device to each cache memory of the master and the redundant controller,
2. The storage system according to claim 1, wherein the cache processing means of the master controller and the redundant controller releases the exclusion of the area of the cache memory.
前記コントローラのキャッシュ処理手段は、前記キャッシュサーチの直前に、前記キャッシュメモリの領域の構成情報を管理するためのキャッシュ構成情報をロックし、前記キャッシュメモリの前記領域の排他の後に、前記キャッシュ構成情報をアンロックする、ことを特徴とする請求項12に記載のストレージシステム。   The cache processing means of the controller locks cache configuration information for managing configuration information of the cache memory area immediately before the cache search, and after the exclusion of the area of the cache memory, the cache configuration information The storage system according to claim 12, wherein the storage system is unlocked. 前記コントローラのキャッシュ処理手段は、前記キャッシュメモリの前記領域の排他の解除の直前に、前記キャッシュメモリの領域の構成情報を管理するためのキャッシュ構成情報をロックし、前記キャッシュメモリの前記領域の排他の解除の後、前記キャッシュ構成情報をアンロックする、ことを特徴とする請求項13に記載のストレージシステム。   The cache processing means of the controller locks cache configuration information for managing configuration information of the area of the cache memory immediately before releasing the exclusion of the area of the cache memory, and excludes the area of the cache memory. 14. The storage system according to claim 13, wherein the cache configuration information is unlocked after release. それぞれが、対応する上位装置に接続されるとともに、相互に通信接続し、対応するストレージ装置の一部のデータを保持するキャッシュメモリを備えた複数のコントローラを含むストレージシステムのキャッシュ冗長化方法であって、
前記複数のコントローラのそれぞれは、前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、前記装置構成情報は、前記複数のコントローラは、同一の内容とされ、
前記上位装置からのアクセス要求を受けたコントローラは、前記コントローラ内の前記装置構成情報を参照して、前記アクセス要求のアドレスに対応するデータを格納する領域に関してマスタとなるコントローラを決定し、
前記マスタのコントローラは、前記マスタのコントローラの前記キャッシュメモリの前記データの格納先の領域の排他処理を行い、前記データに関してこれを冗長化して格納するキャッシュメモリを持つ冗長先のコントローラが存在する場合に、前記冗長先のコントローラでのキャッシュメモリの排他処理に先んじて、前記マスタのコントローラでのキャッシュメモリの排他処理が行われる、ことを特徴とするキャッシュ冗長化方法。
Each is a cache redundancy method for a storage system that includes a plurality of controllers that are connected to a corresponding host device and are connected to each other for communication and hold a part of the data of the corresponding storage device. And
Each of the plurality of controllers stores and holds device configuration information that defines a correspondence relationship between a logical address area from the host device and a master controller assigned to the area, and the device configuration information is The plurality of controllers have the same content,
The controller that has received the access request from the higher-level device refers to the device configuration information in the controller, determines a controller to be a master with respect to an area for storing data corresponding to the address of the access request,
The master controller performs exclusive processing of the data storage destination area of the cache memory of the master controller, and there is a redundant destination controller having a cache memory for storing the data in a redundant manner In addition, prior to the cache memory exclusion process in the redundant controller, the cache memory exclusion process in the master controller is performed.
それぞれが、対応する上位装置に接続されるとともに、相互に通信接続し、対応するストレージ装置の一部のデータを保持するキャッシュメモリと、プロセッサを備えた、複数のコントローラを含み、
前記複数のコントローラのそれぞれは、前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、前記装置構成情報は、前記複数のコントローラにおいて同一の内容とされ、
前記コントローラのプロセッサに、
前記上位装置からのライト要求を受けた際に、前記コントローラ内の前記装置構成情報を参照して、ライト要求のアドレスのデータに関してマスタとなるコントローラを決定する処理と、
前記コントローラがマスタでない場合、前記マスタのコントローラにキャッシュメモリの排他を行うように指示する処理と、
前記マスタのコントローラでキャッシュメモリの領域の排他処理が終わったのち、前記コントローラ内のキャッシュメモリの領域を排他する処理と、
前記上記装置からのライト要求のデータを、前記コントローラ内のキャッシュメモリの領域に書き込むとともに、ライト要求のデータを前記マスタのコントローラに転送する処理と、
を実行させるプログラム。
Each of them includes a plurality of controllers that are connected to a corresponding host device and that are connected to each other for communication and hold a part of the data in the corresponding storage device and a processor.
Each of the plurality of controllers stores and holds device configuration information that defines a correspondence relationship between a logical address area from the host device and a master controller assigned to the area, and the device configuration information is , The same content in the plurality of controllers,
In the processor of the controller,
When receiving a write request from the host device, referring to the device configuration information in the controller, a process for determining a master controller for the data of the address of the write request;
If the controller is not the master, processing to instruct the master controller to perform cache memory exclusion;
After the exclusion process of the cache memory area in the master controller, the process of exclusiveizing the cache memory area in the controller;
Write the write request data from the device to the cache memory area in the controller, and transfer the write request data to the master controller;
A program that executes
JP2006224181A 2006-08-21 2006-08-21 Redundancy method and computer program for storage system and cache Withdrawn JP2008047029A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006224181A JP2008047029A (en) 2006-08-21 2006-08-21 Redundancy method and computer program for storage system and cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006224181A JP2008047029A (en) 2006-08-21 2006-08-21 Redundancy method and computer program for storage system and cache

Publications (1)

Publication Number Publication Date
JP2008047029A true JP2008047029A (en) 2008-02-28

Family

ID=39180678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006224181A Withdrawn JP2008047029A (en) 2006-08-21 2006-08-21 Redundancy method and computer program for storage system and cache

Country Status (1)

Country Link
JP (1) JP2008047029A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092318A (en) * 2008-10-09 2010-04-22 Nec Corp Disk array subsystem, cache control method for the disk array subsystem, and program
US8762648B2 (en) 2010-08-30 2014-06-24 Fujitsu Limited Storage system, control apparatus and control method therefor
JP2014186599A (en) * 2013-03-25 2014-10-02 Nec Corp Storage device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092318A (en) * 2008-10-09 2010-04-22 Nec Corp Disk array subsystem, cache control method for the disk array subsystem, and program
US8762648B2 (en) 2010-08-30 2014-06-24 Fujitsu Limited Storage system, control apparatus and control method therefor
JP2014186599A (en) * 2013-03-25 2014-10-02 Nec Corp Storage device

Similar Documents

Publication Publication Date Title
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
US6594785B1 (en) System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
JP6314355B2 (en) Memory management method and device
US7269667B2 (en) Disk array system and method for migrating from one storage system to another
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
JP4224077B2 (en) Storage system
US9477591B2 (en) Memory access requests in hybrid memory system
US6587921B2 (en) Method and apparatus for cache synchronization in a clustered environment
US7971011B2 (en) Remote copy method and storage system
US20050132249A1 (en) Apparatus method and system for fault tolerant virtual memory management
US20010002480A1 (en) Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US9367247B2 (en) Memory access requests in hybrid memory system
US20120137096A1 (en) Dual writing device and its control method
EP2075983A2 (en) Storage subsystem
CN102339283A (en) Access control method for cluster file system and cluster node
JPH0962558A (en) Method and system for database management
US7149922B2 (en) Storage system
EP0536375A1 (en) Fault tolerant network file system
US6651157B1 (en) Multi-processor system and method of accessing data therein
JP2746530B2 (en) Shared memory multiprocessor
JP2008047029A (en) Redundancy method and computer program for storage system and cache
US6490662B1 (en) System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module
JP2006164218A (en) Storage system and its cache control method
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
JPH0212361A (en) Parallel computer system using hierarchical bus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090717

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100401