JP2008047029A - Redundancy method and computer program for storage system and cache - Google Patents
Redundancy method and computer program for storage system and cache Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
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
近時、磁気ディスク装置の容量の増加に伴い、ストレージに対するアクセスが多く、磁気ディスク装置の性能差を埋めるためのキャッシュの効率化、とりわけ、ストレージへのアクセスの多くを占めるリード要求に対する、キャッシュの有効利用が必要になってきている。 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
しかしながら、上記特許文献1に開示されるストレージは、リード/ライトのデータに関係なく、冗長化を行ったキャッシュメモリの同一アドレスにデータの冗長化を行うものであり、このため、冗長化の必要のないリードデータであっても、それぞれのキャッシュメモリを消費し、無駄が生じる。
However, the storage disclosed in
また、上記特許文献2に記載されたシステムでは、各コントローラのプロセッサ毎に冗長先のコントローラにキャッシュの領域を保持し、そのキャッシュの領域に対して、通常は冗長先のコントローラのプロセッサによるキャッシュのアクセスを禁じることで、一貫性を保証するための排他処理を不要にしている。しかしながら、各コントローラは、他のコントローラの冗長化データ領域を保持しなければならない。このため、冗長化データ領域に空きがあっても使用できず、キャッシュメモリを有効に利用することが出来ない。
Further, in the system described in
さらに、上記特許文献3に記載されたシステムでは、冗長化と一貫性処理を行うが、それぞれのコントローラに、読み取り用キャッシュ、書き込み用キャッシュ、ミラー用キャッシュを具備することを要する。すなわち、各コントローラにおいて、異なる用途のキャッシュメモリを用意する必要があり、専用のキャッシュメモリを用意しなければならないため、キャッシュメモリの有効利用が出来ない。
Further, in the system described in
したがって、本発明の主たる目的は、ストレージ装置のデータの一部を格納するキャッシュメモリを備えたコントローラにおけるキャッシュメモリの有効利用を図ることを可能とするシステムと方法及びプログラムを提供することにある。 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
図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
プロセッサ110は、コマンド処理部103がホストコンピュータから受けたコマンドの通知を受け、該コマンドの内容に従い、それがリードである場合、キャッシュ構成情報108を検索する。
The
検索の結果、キャッシュメモリ109にデータが存在する場合、キャッシュメモリ109のデータを、コマンド処理部103を介してホストコンピュータに送信し、キャッシュ構成情報108の検索の結果、キャッシュメモリ109にデータが存在しない場合、ディスク制御部107に磁気ディスク装置に存在するデータの読み込みを指示し、磁気ディスクからの読出データをキャッシュメモリ109に格納した後、読出データをコマンド処理部103を介してホストコンピュータに送信する。
If there is data in the
また、プロセッサ110は、コマンド処理部103がホストコンピュータから受けたコマンドの結果がライトである場合、ホストコンピュータから受信したライトコマンドで示される論理アドレスと装置構成情報111上のテーブルを検索し、該コマンドの論理アドレスで指定されるライトのデータのマスタ、即ち、最初に、キャッシュ構成情報108を検索すべきコントローラが、システム内のどのコントローラであるか決定する。
Further, when the result of the command received from the host computer by the
ここで、自コントローラがマスタである場合には、自コントローラのキャッシュ構成情報108の検索を行い、キャッシュメモリ109上に該データが存在するか判定を行う。
Here, when the own controller is the master, the
その結果、存在する場合、キャッシュメモリ上の領域の排他を行う。 As a result, if it exists, the area on the cache memory is exclusive.
また、該データがキャッシュメモリ109上に存在しない場合、新たにキャッシュメモリ109上に、領域を確保し、該領域の排他を行う。
If the data does not exist on the
その後、冗長化を行っている他のコントローラに対して、通信制御部105を通じて、キャッシュ構成情報108の検索を指示する。
After that, the other controller that is redundant is instructed to search the
冗長化を行っている他のコントローラからの検索が完了し、該データ領域の排他完了、及び、書き込むべきキャッシュメモリ上のアドレスの通知を受け取った後に、コマンド処理部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
図3は、図1で示される装置構成情報111の一構成を示す図である。図3を参照すると、装置構成情報111は、ホストコンピュータが指定する論理アドレスから、どのコントローラがキャッシュ構成情報を検索する際に、マスタとなり、最初に検索を行うべきかを示す情報を備えている。装置構成情報111は、領域情報301と、マスタのコントローラ番号302との対応(対)を表形式で備えており、ホストコンピュータが指定する論理アドレスと、装置構成情報111の領域情報301との比較を行い、該論理アドレスが領域情報301の範囲内に含まれれば、該領域情報301に相当するマスタのコントローラ番号302が、最初に検索を行うべきコントローラの番号となる。
FIG. 3 is a diagram showing one configuration of the
図4は、図1のキャッシュ構成情報108の内容の一例を示す図である。図4を参照すると、キャッシュ構成情報108は、キャッシュ構成情報の検索(キャッシュヒット/ミスヒットの判定)時の処理の高速化を図るため、ハッシュテーブル401とハッシュテーブル401からリンク構造で構成されるページタグ402を備えている。
FIG. 4 is a diagram showing an example of the contents of the
ページタグ402はそれぞれ、
ページタグ402同士でリンク構造を構成するためのポインタ403と、
ページタグ402で示されるキャッシュメモリ上の領域(以下、「ページ」という)が、ホストコンピュータから指定されたどの領域であるかを示すページ識別子404と、
キャッシュメモリ(図1のキャッシュメモリ109)上のどのページに存在するかを示すアドレス情報のページアドレス406と、
磁気ディスク装置上へ保存されていない書き込みデータがあるページを示すページ情報405と、を有する。ページ情報405は、空ページ等を示す情報や、当該ページを排他制御するための排他情報(フラグ)等(不図示)も含まれる。
Each
A
A
A
図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
コントローラ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
コントローラ201aとコントローラ201b間は、接続インターフェイス204で接続され、双方のコントローラ間でのキャッシュデータ等の通信を行う。
The controller 201a and the controller 201b are connected by a
コントローラ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
プロセッサ210aは、論理アドレス10と、装置構成情報211aの領域情報301の項目を比較する。論理アドレス10が0〜99の範囲であるため、領域情報が0〜99に相当するマスタのコントローラ番号302の値を読み出す。マスタのコントローラ番号が0であるため、該コマンドで指定される論理アドレスは、コントローラ201aがマスタであることが判定できる(図6のステップS101)。
The processor 210a compares the
プロセッサ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
この排他処理は、プロセッサ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
ライトコマンドで指定されるページがキャッシュメモリ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
該ページが排他状態の場合、該ライトコマンドの処理は、他のコマンドあるいは他のコントローラの処理実行中による該ページの排他が解除されるまで待ち状態に入る。そして排他が解除されれば、排他処理を行い、他のコマンドや他のコントローラが使用できないようにし、次のステップに進む(図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
また、ライトコマンドで指定されるページがキャッシュメモリ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
該ページが排他状態でなければ(図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
通信制御部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
その後、プロセッサ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
そして、プロセッサ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
さらに、該ライトコマンドの論理アドレスが「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
また、ライトコマンドで指定されるページがキャッシュメモリ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
該ページが排他状態でなければ(図7のステップS206のNo)、キャッシュ構成情報208bのページアドレス406を取得すると共に、該ページの排他処理を行い、次のステップに進む(図7のステップS208)。
If the page is not in the exclusive state (No in step S206 in FIG. 7), the
該ページが排他状態の場合(図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
コントローラ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
また、ライトコマンドで指定されるページがキャッシュメモリ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
該ページが排他状態でない場合(図6のステップS104のNo)、キャッシュ構成情報208aのページアドレス406を取得すると共に、該ページの排他処理を行い、次のステップに進む(図6のステップS106)。
If the page is not in the exclusive state (No in step S104 in FIG. 6), the
該ページが排他状態の場合(図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
さらに、プロセッサ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
プロセッサ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
確認の結果、該ページが排他状態でなければ(図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
確認の結果、該ページが排他状態の場合(図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
次に、検索の結果得られたページアドレス406のアドレスで示されるページのデータをキャッシュメモリ209aから読み出し、コマンド処理部203aを通じてホストコンピュータに転送を行う(図5のステップS19)。
Next, the data of the page indicated by the address of the
その後に、ホストコンピュータにリードコマンドの終了を報告すると同時に、該キャッシュ構成情報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
該リードコマンドのデータに相当するページがキャッシュメモリ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
その後、プロセッサ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
次に本実施例の作用効果について説明する。 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
コントローラ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
また、コントローラ0−3の各装置構成情報511には、予め同一の情報が書き込まれており、それぞれのコントローラが他のコントローラに問い合わせることなく、コントローラのプロセッサによる参照を可能としている。
Further, the same information is written in advance in each
図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
図9を参照すると、コントローラ0のコマンド処理部は、そのホストインタフェースを介してホスト(不図示)からのライト(Write)コマンドを受信すると、三重冗長セットを構成する他のコントーラ1、3に対して、キャッシュ構成情報の排他処理(LOCK)を指示する。コントローラ0と、コントローラ0からの指示(キャッシュ構成情報の排他指示)を受けたコントローラ1と3は、それぞれのキャッシュ構成情報(図4参照)をロック(LOCK)する。なお、各コントローラにおける、これらの排他処理、及び通信処理は、各コントローラのプロセッサ、通信制御部、相互通信網等を通して行われる。
Referring to FIG. 9, when the command processing unit of the
コントローラ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
つづいて、コントローラ0は、コントローラ0、1、3におけるキャッシュサーチとページロックの完了を待って、コントローラ1、3に、キャッシュ構成情報のアンロック(UNLOCK;ロック解除)を指示し、コントローラ0と、コントローラ0からキャッシュ構成情報のUNLOCKの指示を受けたコントローラ1、3は、それぞれのキャッシュ構成情報をアンロックする。
Subsequently, the
コントローラ0のコマンド処理部は、ホストインタフェースからWriteデータを受け取り、コントローラ1、3に対して、Writeデータを転送し、コントローラ0、1、3におけるWriteデータのキャッシュページへの書き込み完了応答を待ち合わせる。
The command processing unit of the
コントローラ0、1、3のWriteデータのキャッシュメモリの該当ページへの書き込みが完了すると、コントローラ0は、Writeコマンドに対する応答として、書き込みの状態(Write State)を、ホストインターフェースを介してホストに返す。
When the writing of the write data of the
次に、コントローラ0は、コントーラ1、3に対して、キャッシュ構成情報の排他処理(LOCK)を指示し、各コントローラ0、1、3は、それぞれのキャッシュ構成情報(図4参照)をロック(LOCK)する。
Next, the
コントローラ0は、各コントローラ0、1、3におけるキャッシュ構成情報のロックが完了すると、キャッシュサーチとページのアンロックを行い、また、コントローラ0からのアンロックの指示を受けて、コントローラ1、3もキャッシュページのアンロックを行う。
When the cache configuration information is locked in each of the
コントローラ0、1、3におけるキャッシュ構成情報のアンロック後、コントローラ0、1、3はキャッシュ構成情報をアンロック(UNLOCK)する。
After unlocking the cache configuration information in the
図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
コントローラ0のコマンド処理部は、ホストコンピュータからのライト(Write)コマンドを受信し、装置構成情報(図8の511)から、WriteコマンドのWriteデータの格納用のキャッシュメモリ上での該当領域の排他処理を行うためのマスタのコントローラを決定する。この場合、キャッシュメモリ上での該当ページのマスタはコントローラ1であることが判明する。
The command processing unit of the
コントローラ0は、マスタであるコントローラ1に対して、キャッシュサーチ指示を送信し、該ページの排他処理の依頼を送信する。この依頼を受けたコントローラ1のプロセッサは、まず、キャッシュ構成情報をロック(LOCK)し、キャッシュサーチ及びページのロックを行い、つづいて、キャッシュ構成情報をアンロック(UNLOCK)する。その際、キャッシュサーチにおいて、指定されたページ領域が既にマスタコントローラ1のキャッシュメモリ上に存在する場合、他のアクセス要求で排他されているか否かを確認し、確認の結果、該ページ領域が他のアクセス要求によって排他されていれば、該排他が終了するまで待ち、一方、該ページ領域が他のアクセス要求で排他されていなければ、排他処理を行う。また、マスタコントローラ1において、指定されたページ領域がキャッシュメモリ上に用意されていず(ミスヒット)、新たに確保すべきである場合、新たにページ領域を確保してページのロックを行い、キャッシュ構成情報をアンロック(UNLOCK)し、当該ページ領域のマスタであるコントローラ1は、キャッシュサーチが完了したことを、コントローラ0に通知する。なお、各コントローラにおける、これらの排他処理、及び通信処理は、各コントローラのプロセッサ、通信制御部、相互通信網等を通して行われる。
The
次に、コントローラ0は、該ライト要求で冗長化すべきキャッシュメモリを持つ冗長先コントローラ0と3を決定し、この場合、冗長先のコントローラ3に対して、ライト要求で冗長化を行うための領域の排他処理(キャッシュサーチ指示)の依頼を送信する。
Next, the
それぞれのコントローラ0、1、3では、キャッシュ構成情報を一旦、排他処理(ロック)を行う。この場合、該ページ領域が他で排他されていれば、解除されるまで待った後に排他処理を行い、他で排他されていなければ、ロックを行い、キャッシュ構成情報のアンロックを行う。また、該ページ領域が新たなものであれば、新たに確保して排他処理を行う。コントローラ1、3は、キャッシュサーチとページのロック、及びキャッシュ構成情報のアンロック(UNLOCK)が完了したことをコントローラ0に通知する。
Each
コントローラ0は、冗長化のための領域の排他処理の依頼の送信先のコントローラ3からの完了の応答(報告)を待ち合わせる。すなわち、コントローラ0での冗長化のための領域の排他処理が完了しても、冗長先の他のコントローラ3からの排他処理の完了の応答(報告)を受けるまで、次に進まない。
The
そして、冗長先の他のコントローラ3からの完了の応答を受信すると、コントローラ0は、コントローラ0のキャッシュメモリの該当ページ領域に、ホストから受けたライトデータの書き込みを行う。また、コントローラ0は、通信制御部505、相互接続網504を介して、コントローラ1、3に、ホストから受けたライトデータを転送し、コントローラ1、3のキャッシュメモリの該当ページ領域に、ホストから受けたライトデータの書き込みを行う。ライトデータに対する複数のコントローラに対する冗長化を実現する。なお、冗長化は三重に制限されるものでなく二重化であってもよい。
When receiving a completion response from the other
コントローラ0、1、3のWriteデータの書き込みが完了すると、コントローラ0は、書き込み結果(Write State)をホストに返し、コントローラ0、1、3のそれぞれも、キャッシュ構成情報のロック(LOCK)を行い、当該キャッシュページのロックを解除し(UNLOCK)した後、キャッシュ構成情報をアンロックする。なお、各コントローラのキャッシュメモリに書き込まれたライトデータは、例えばライトバック方式等で、適宜、対応するディスク装置(ストレージ)に書き込まれる。
When writing of the write data of the
本実施例によれば、マスタのコントローラでキャッシュ・ページの排他制御を行い、その後、冗長化が行われているコントローラのキャッシュメモリ上のページにアクセスを行うため、同一ページにリード/ライトを行う後続のコマンドは、該当ページの排他の解除待ちになり、該当ページのデータに対する一貫性が保証される。これに対して、比較例の図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.
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
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記載のストレージシステム。 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.
前記排他処理の依頼を受けたコントローラのキャッシュ処理手段は、
前記コントローラのキャッシュメモリ上にリード要求のデータを格納する領域が存在するか確認を行い、
前記キャッシュメモリ上に前記リード要求のデータを格納する領域が存在する場合には、前記領域が排他されているか否かを確認し、
前記領域が他の要求によって排他されている場合、前記領域が解放されるまで待った後に排他を行い、
前記領域が他の要求によって排他されていなければ、前記領域の排他を行い、前記領域の排他の完了を、前記上位装置よりリード要求を受けたコントローラに通知し、
前記コントローラのキャッシュ処理手段は、排他が行われているコントローラのキャッシュメモリ上の領域のデータを読み込み、前記上位装置に送信する、ことを特徴とする請求項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.
前記複数のコントローラのそれぞれは、前記上位装置からの論理アドレスの領域と、該領域に対して割り付けられたマスタのコントローラとの対応関係を規定する装置構成情報を記憶保持し、前記装置構成情報は、前記複数のコントローラは、同一の内容とされ、
前記上位装置からのアクセス要求を受けたコントローラは、前記コントローラ内の前記装置構成情報を参照して、前記アクセス要求のアドレスに対応するデータを格納する領域に関してマスタとなるコントローラを決定し、
前記マスタのコントローラは、前記マスタのコントローラの前記キャッシュメモリの前記データの格納先の領域の排他処理を行い、前記データに関してこれを冗長化して格納するキャッシュメモリを持つ冗長先のコントローラが存在する場合に、前記冗長先のコントローラでのキャッシュメモリの排他処理に先んじて、前記マスタのコントローラでのキャッシュメモリの排他処理が行われる、ことを特徴とするキャッシュ冗長化方法。 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
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)
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 |
-
2006
- 2006-08-21 JP JP2006224181A patent/JP2008047029A/en not_active Withdrawn
Cited By (3)
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 |