JPWO2004027625A1 - Storage control device, storage control program, and storage control method - Google Patents

Storage control device, storage control program, and storage control method Download PDF

Info

Publication number
JPWO2004027625A1
JPWO2004027625A1 JP2004537520A JP2004537520A JPWO2004027625A1 JP WO2004027625 A1 JPWO2004027625 A1 JP WO2004027625A1 JP 2004537520 A JP2004537520 A JP 2004537520A JP 2004537520 A JP2004537520 A JP 2004537520A JP WO2004027625 A1 JPWO2004027625 A1 JP WO2004027625A1
Authority
JP
Japan
Prior art keywords
data
cache
control device
storage
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004537520A
Other languages
Japanese (ja)
Inventor
渡辺 高志
高志 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004027625A1 publication Critical patent/JPWO2004027625A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Abstract

キャッシュ装置およびディスク装置とともにネットワーク上に分散配置されてストレージシステムを形成し、クライアントからのアクセス要求を受け付け、キャッシュ制御装置および実ディスク制御装置にアクセス要求に応じた処理を実行させるストレージ制御装置であって、クライアントが書き込みを要求したデータを2台のキャッシュ制御装置のキャッシュメモリに書き込むように制御するデータ書き込み処理部と、クライアントが読み出しを要求したデータが2台のキャッシュ制御装置のどちらにもない場合に、ディスク制御装置からデータを読み出し、読み出したデータを1台のキャッシュ制御装置だけに記憶させるように制御するデータ読み出し処理部とを備える。A storage control device that is distributed over a network together with a cache device and a disk device to form a storage system, accepts access requests from clients, and causes the cache control device and real disk control device to execute processing according to the access request. Thus, neither the data write processing unit for controlling the data requested by the client to write to the cache memory of the two cache control devices nor the data requested by the client for the two cache control devices. A data read processing unit that reads data from the disk control device and controls the read data to be stored in only one cache control device.

Description

この発明は、キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関し、特に、個々の装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、もって信頼性の高いストレージシステムを構築することができるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関するものである。  The present invention is used in a storage system in which a cache device and a disk device are distributed on a network, receives a request for access from a client, and causes the cache device and the disk device to execute processing according to the access request. The present invention relates to a control program and a storage control method, and in particular, a storage control device, a storage control program, and a storage control capable of preventing the entire storage system from being stopped due to a failure of an individual device and constructing a reliable storage system It is about the method.

近年、マルチメディアデータの利用などによる処理データ量の急増にともない、ネットワークに接続された大容量ディスクを利用して大規模なデータを統合運用管理するストレージシステムが急速に普及している。このストレージシステムでは、ネットワークのデータ転送速度と比較してディスクのアクセス速度が遅いことから、ディスクのアクセス性能が、システム全体のボトルネックとなっている。このため、ストレージシステムでは、高速アクセスが可能なキャッシュメモリを使用し、ディスクへのアクセス回数を減らすことによって、ディスクのアクセス性能の改善を図っている。
通常、キャッシュメモリを用いる場合には、アクセス要求のあったデータがキャッシュメモリに存在する率を示すキャッシュヒット率がシステム性能に大きく影響することから、できるだけ大きなキャッシュメモリを用いる必要がある。しかし、従来のストレージ装置では、ストレージシステム全体の制御、ディスクの制御、キャッシュメモリの制御などを一つの装置として実現しているため、キャッシュメモリの容量を拡張することが容易でなく、ストレージシステムの増強によってディスクの容量が拡張されると、キャッシュメモリの相対的容量が少なくなり、キャッシュヒット率が低下するという事態が発生していた。
このようなことから、キャッシュメモリの容量の拡張を容易にするために、ストレージシステム全体の制御、ディスクの制御、キャッシュメモリの制御をそれぞれ別の装置として実現し、これらの装置をネットワークに接続して分散配置した分散型ストレージシステムが利用されるようになった。この分散型ストレージシステムでは、キャッシュメモリおよびその制御だけを独立のキャッシュ装置としているため、キャッシュ装置を追加することによってキャッシュメモリの容量を容易に拡張することができる。
しかしながら、この分散型ストレージシステムには、各装置が独立して配置されることから、各装置が別々に故障するという問題点がある。また、各装置が独立にネットワークに接続されるため、各装置を接続する個別ネットワークに故障が発生し、個々の装置が利用できなくなるという問題点がある。
すなわち、従来の一体型ストレージ装置では、ストレージ装置全体として故障が発生するため、ストレージ装置全体の故障を考慮したRAID(Redundant Array of Independent Disks)制御などをおこなえば十分であったが、分散型ストレージシステムでは、分散配置された個別の装置ごとに故障を考慮することが必要となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、個々の装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、もって信頼性の高いストレージシステムを構築することができるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法を提供することを目的としている。
In recent years, with the rapid increase in the amount of processing data due to the use of multimedia data and the like, storage systems that integrate and manage large-scale data using a large-capacity disk connected to a network are rapidly spreading. In this storage system, the disk access speed is slower than the network data transfer speed, so the disk access performance is the bottleneck of the entire system. For this reason, the storage system uses a cache memory that can be accessed at high speed, and reduces the number of accesses to the disk, thereby improving the access performance of the disk.
Normally, when a cache memory is used, the cache hit rate, which indicates the rate at which requested data is present in the cache memory, greatly affects the system performance. Therefore, it is necessary to use as large a cache memory as possible. However, in the conventional storage device, since the entire storage system control, disk control, cache memory control, etc. are realized as one device, it is not easy to expand the capacity of the cache memory. When the capacity of the disk is expanded by the increase, the relative capacity of the cache memory is reduced, and the cache hit rate is reduced.
For this reason, in order to facilitate the expansion of the cache memory capacity, the entire storage system control, disk control, and cache memory control are implemented as separate devices, and these devices are connected to the network. Distributed storage systems that have been distributed in a distributed manner have come to be used. In this distributed storage system, since only the cache memory and its control are independent cache devices, the capacity of the cache memory can be easily expanded by adding a cache device.
However, this distributed storage system has a problem in that each device fails separately because each device is arranged independently. Further, since each device is independently connected to the network, there is a problem that a failure occurs in the individual network connecting each device, and the individual device cannot be used.
That is, in the conventional integrated storage apparatus, a failure occurs in the entire storage apparatus. Therefore, it is sufficient to perform RAID (Redundant Array of Independent Disks) control considering the failure of the entire storage apparatus. In the system, it is necessary to consider a failure for each individual device arranged in a distributed manner.
The present invention has been made to solve the above-described problems caused by the prior art, and prevents the entire storage system from being stopped due to a failure of an individual device, thereby constructing a highly reliable storage system. An object of the present invention is to provide a storage control device, a storage control program, and a storage control method.

上述した課題を解決し、目的を達成するため、本発明は、キャッシュ装置およびディスク装置とともにネットワーク上に分散配置されてストレージシステムを形成し、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御装置であって、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手段と、前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手段と、を備えたことを特徴とする。
また、本発明は、キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御プログラムであって、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手順と、前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手順と、をコンピュータで実行することを特徴とする。
また、本発明は、キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御方法であって、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御工程と、前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御工程と、を含んだことを特徴とする。
かかる発明によれば、クライアントが書き込みを要求したデータをネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御し、クライアントが読み出しを要求したデータをネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、ディスク装置からデータを読み出し、読み出したデータをあるキャッシュ装置だけに記憶させるとともにクライアントに送信するように制御することとしたので、キャッシュメモリを効率よく使用するとともに、いずれかのキャッシュ装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、信頼性の高いストレージシステムを構築することができる。
In order to solve the above-described problems and achieve the object, the present invention forms a storage system in a distributed arrangement on a network together with a cache device and a disk device, receives an access request from a client, and receives the cache device and the disk device. A storage control device that executes processing according to an access request, wherein the data requested by the client to be written is multiplexed and written to a predetermined number of cache devices among the cache devices arranged in the network. The write control means for controlling and the data requested to be read by the client when none of the cache devices arranged in the network has the cache device, the data is read from the disk device, and the read data A certain Characterized by comprising a reading control means for controlling to transmit to said client causes only the storage shoe device.
In addition, the present invention is used in a storage system in which a cache device and a disk device are distributed on a network, and receives storage access requests from a client and causes the cache devices and disk devices to execute processing according to the access request. A write control procedure for controlling to multiplex and write the data requested by the client to be written to a predetermined number of cache devices arranged in the network; When none of the cache devices arranged in the network has the requested data, the data is read from the disk device, and the read data is stored only in a certain cache device and And executes a read control step of controlling to transmit to the client, with the computer.
In addition, the present invention is used in a storage system in which a cache device and a disk device are distributed on a network, and receives storage access requests from a client and causes the cache devices and disk devices to execute processing according to the access request. A write control step for controlling to multiplex and write data requested by the client for writing to a predetermined number of cache devices arranged in the network; When none of the cache devices arranged in the network has the requested data, the data is read from the disk device, the read data is stored only in a certain cache device, and the cluster is stored. Characterized in that it includes a reading control step of controlling to transmit the Ant, the.
According to this invention, control is performed so that the data requested by the client to be written is multiplexed and written in a predetermined number of cache devices arranged in the network, and the data requested by the client is read to the network. When there is no cache device among the arranged cache devices, the data is read from the disk device, and the read data is stored only in a certain cache device and controlled to be transmitted to the client. While using the cache memory efficiently, it is possible to prevent the entire storage system from being stopped due to a failure of one of the cache devices and to construct a highly reliable storage system.

第1図は、本実施の形態1に係るストレージシステムのシステム構成を示すブロック図であり、第2図は、第1図に示したストレージ制御装置の構成を示す機能ブロック図であり、第3図は、位置情報テーブルの一例を示す図であり、第4図は、第1図に示したキャッシュ制御装置の構成を示す機能ブロック図であり、第5図は、ストレージ制御装置が送信するメッセージの一例を示す図であり、第6図は、キャッシュ制御装置が送信するメッセージの一例を示す図であり、第7図は、実ディスク制御装置が送信するメッセージの一例を示す図であり、第8図は、第2図に示したデータ書き込み処理部の処理手順を示すフローチャートであり、第9図は、クライアントがストレージシステムへのデータ書き込み完了を判定する手法を説明するための説明図であり、第10図は、本実施の形態1に係るキャッシュメモリへのデータ書き込み処理手順を示すフローチャートであり、第11図は、第2図に示したデータ読み出し処理部の処理手順を示すフローチャートであり、第12図は、第2図に示したFetch処理部の処理手順を示すフローチャートであり、第13図は、第2図に示したFlush処理部の処理手順を示すフローチャートであり、第14図は、本実施の形態2に係るストレージ制御装置の二重化の概念を説明するための説明図であり、第15図は、本実施の形態2に係るストレージシステムのシステム構成を示すブロック図であり、第16図は、位置情報更新メッセージの一例を示す図であり、第17図は、第15図に示した位置情報テーブル更新部の処理手順を示すフローチャートであり、第18図は、本実施の形態2に係るストレージ制御装置の二重化の変形例を説明するための説明図であり、第19図は、本実施の形態3に係るストレージシステムのシステム構成を示すブロック図であり、第20図は、ストレージ制御プログラムおよびキャッシュ制御プログラムを実行するコンピュータシステムの一例を示す図である。  FIG. 1 is a block diagram showing the system configuration of the storage system according to the first embodiment, and FIG. 2 is a functional block diagram showing the configuration of the storage control device shown in FIG. FIG. 4 is a diagram showing an example of the location information table, FIG. 4 is a functional block diagram showing the configuration of the cache control device shown in FIG. 1, and FIG. 5 is a message transmitted by the storage control device. FIG. 6 is a diagram illustrating an example of a message transmitted by the cache control device, and FIG. 7 is a diagram illustrating an example of a message transmitted by the real disk control device. FIG. 8 is a flowchart showing a processing procedure of the data write processing unit shown in FIG. 2, and FIG. 9 explains a method in which the client determines completion of data writing to the storage system. FIG. 10 is a flowchart showing a data write processing procedure to the cache memory according to the first embodiment, and FIG. 11 is a process of the data read processing unit shown in FIG. FIG. 12 is a flowchart showing a processing procedure of the Fetch processing unit shown in FIG. 2, and FIG. 13 is a flowchart showing a processing procedure of the Flush processing unit shown in FIG. FIG. 14 is an explanatory diagram for explaining the concept of duplication of the storage control apparatus according to the second embodiment, and FIG. 15 shows the system configuration of the storage system according to the second embodiment. FIG. 16 is a diagram showing an example of the location information update message, and FIG. 17 shows the processing procedure of the location information table update unit shown in FIG. FIG. 18 is an explanatory diagram for explaining a modification of duplication of the storage control device according to the second embodiment, and FIG. 19 is a diagram of the storage system according to the third embodiment. FIG. 20 is a block diagram illustrating a system configuration, and FIG. 20 is a diagram illustrating an example of a computer system that executes a storage control program and a cache control program.

以下、添付図面を参照して、この発明に係るストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法の好適な実施の形態を詳細に説明する。
実施の形態1.
まず、本実施の形態1に係るストレージシステムのシステム構成について説明する。第1図は、本実施の形態1に係るストレージシステムのシステム構成を示すブロック図である。同図に示すように、このストレージシステムは、ストレージ制御装置110、実ディスク制御装置120、二重化されたキャッシュ制御装置130および140がネットワーク40上に分散配置されて構成され、ネットワーク40を介してクライアント10〜30から利用される。なお、ここでは説明の便宜上、3台のクライアント10〜30のみを示したが、このストレージシステムは、ネットワーク40を介して任意の台数のクライアントから利用される。また、ここでは、クライアント10がこのストレージシステムを利用する場合について説明するが、他のクライアント20および30も同様にこのストレージシステムを利用することができる。
ストレージ制御装置110は、ネットワーク40を介してクライアント10からのアクセス要求を受け付け、実ディスク制御装置120、キャッシュ制御装置130および140に、アクセス要求に応じた処理を実行させる装置である。また、このストレージ制御装置110は、キャッシュ制御装置130および140が有するキャッシュメモリに記憶されるデータを管理する。
実ディスク制御装置120は、大容量記憶媒体としてのディスク121を有し、ストレージ制御装置110の指示に基づいてディスク121からのデータの読み出しおよびディスク121へのデータの書き込みをおこなう装置である。なお、ここでは説明の便宜上、1台の実ディスク制御装置120のみを示したが、このストレージシステムでは、格納するデータの規模に応じて、複数の実ディスク制御装置をネットワーク40上に配置することができる。また、1台の実ディスク制御装置には、複数台のディスクを接続することができる。
キャッシュ制御装置130および140は、高速アクセス記録媒体としてのキャッシュメモリを有し、ストレージ制御装置110の指示に基づいてキャッシュメモリからのデータの読み出しおよびキャッシュメモリへのデータの書き込みをおこなう装置である。
このように、このストレージシステムでは、キャッシュ制御装置を二重化し、同一のデータをキャッシュ制御装置130および140が有するキャッシュメモリに記憶することとしている。ただし、全てのデータを二重化するのではなく、ディスク121に格納されたデータとキャッシュメモリに記憶されたデータが一致する場合、すなわちデータがcoherentな状態にある場合には、そのデータはいずれかのキャッシュメモリのみに記憶され、ディスク121に格納されたデータとキャッシュメモリに記憶されたデータが異なる場合、すなわちデータがdirtyな状態にある場合には、そのデータは両方のキャッシュメモリに記憶される。
たとえば、第1図において、データMは、ディスク121上のデータM’が書き換えられたデータであり、dirtyな状態にあるので、キャッシュ制御装置130およびキャッシュ制御装置140が有する二つのキャッシュメモリに記憶されている。また、データNは、同一データがディスク121上に存在するので、キャッシュ制御装置130が有するキャッシュメモリのみに記憶されている。
このように、このストレージシステムでは、キャッシュ制御装置を二重化し、同一のデータを二つのキャッシュメモリに記憶することとしたので、キャッシュ制御装置130または140のいずれかが故障した場合にも、他のキャッシュ制御装置を用いてストレージシステムを稼動させることができ、信頼性の高いストレージシステムを実現することができる。また、このストレージシステムでは、ディスク121とキャシュメモリに記憶されたデータが同一である場合には、片方のキャッシュメモリのみにデータを記憶することとしたので、キャッシュメモリを有効に使うことができ、キャッシュヒット率を向上させることができる。
次に、第1図に示したストレージ制御装置110の構成について説明する。第2図は、第1図に示したストレージ制御装置110の構成を示す機能ブロック図である。同図に示すように、このストレージ制御装置110は、位置情報テーブル111と、制御部112と、ネットワークインタフェース部113と、データ読み出し処理部114と、データ書き込み処理部115と、Fetch処理部116と、Flush処理部117とを有する。
位置情報テーブル111は、クライアント10がストレージシステムにアクセスを要求するデータについて、クライアント10が指定する論理位置と、実際にデータが格納されたディスク121の物理位置およびキャッシュメモリの物理位置と、そのデータの状態(すなわちデータがcoherentであるかdirtyであるかの区別)とを対応させて記憶した表である。
第3図は、位置情報テーブル111の一例を示す図である。同図は、論理位置が装置番号0番のストレージの0〜7であるデータは、装置番号0番のディスク121の0〜7および装置番号0番のキャッシュ制御装置130が有するキャッシュメモリの0〜7に記憶され、coherentな状態にあることを示している。また、論理位置が装置番号1番のストレージの8〜15であるデータは、装置番号0番のディスク121の8〜15、装置番号0番のキャッシュ制御装置130が有するキャッシュメモリの8〜15および装置番号1番のキャッシュ制御装置140が有するキャッシュメモリの0〜7に記憶され、dirtyな状態にあることを示している。
このように、この位置情報テーブル111が2台のキャッシュ制御装置130および140が有するキャッシュメモリに記憶されているデータの物理位置をそのデータの論理位置と対応させて記憶することにより、ストレージ制御装置110がキャッシュ制御装置の二重化に対応した処理をおこなうことができる。
制御部112は、ストレージ制御装置110全体を制御する処理部であり、また、ネットワークインタフェース部113は、所定の通信プロトコルを用いてクライアント10、実ディスク制御装置120、キャッシュ制御装置130および140と通信をおこなう処理部である。
データ読み出し処理部114は、クライアント10からのデータ読み出し要求に応答してストレージシステムからデータの読み出しをおこなう処理部であり、位置情報テーブル111を用いてデータの論理位置から物理位置を求め、データがキャッシュメモリに記憶されている場合には、データを記憶したキャシュメモリを有するキャッシュ制御装置に対してクライアント10へのデータ転送を指示する。一方、データがキャッシュメモリに記憶されていない場合には、Fetch処理部116に実ディスク制御装置120からキャッシュ制御装置へのデータ転送を依頼する。そして、実ディスク制御装置120からキャッシュ制御装置にデータが転送された後、データが転送されたキャッシュ制御装置に対してクライアント10へのデータ転送を指示する。
データ書き込み処理部115は、クライアント10からのデータ書き込み要求に応答してストレージシステムへのデータの書き込みをおこなう処理部であり、位置情報テーブル111に基づいて必ず両方のキャッシュ制御装置130および140に対してキャッシュメモリへのデータの書き込みを指示する。すなわち、位置情報テーブル111にキャッシュメモリでのデータの記憶位置が登録されている場合には、その記憶位置にデータの書き込みを指示し、位置情報テーブル111にキャッシュメモリでのデータの記憶位置が登録されていない場合には、新たにキャッシュメモリを割り当て、割り当てたキャッシュメモリの位置にデータの書き込みを指示する。
このように、このデータ書き込み処理部115が、クライアント10からのデータ書き込み要求に対して、両方のキャッシュメモリに同じデータを書き込むこととしたので、いずれかのキャッシュ制御装置が故障した場合にも、ストレージシステムの稼動停止を防ぐことができ、ストレージシステムの信頼性を向上することができる。
Fetch処理部116は、クライアント10から読み出し要求のあったデータがキャッシュメモリに記憶されていない場合に、新たにデータを記憶させるキャッシュ制御装置を選択し、実ディスク制御装置120に対して、選択したキャッシュ制御装置へのデータの転送を指示する処理部である。
Flush処理部117は、キャッシュメモリに記憶されたデータのうちdirtyな状態にあるデータをディスク121に書き込む処理部であり、キャッシュメモリにデータを書き込む際に、空領域が不足した場合、あるいは、キャッシュメモリの使用領域が所定の割合を超えた場合に、キャッシュメモリに空領域を作るために使用される。キャッシュメモリに空領域を作る場合に、どのデータをキャッシュメモリから削除するかの選択は、LRU(Least Recently Used)などの手法を用いて決定し、キャッシュメモリから削除することが決定されたデータがdirtyな状態である場合に、このFlush処理部117が使用される。
次に、第1図に示したキャッシュ制御装置130および140の構成について説明する。なお、キャシュ制御装置130および140は、同一の構成を有するので、ここでは、キャッシュ制御装置130を例にとって説明する。第4図は、第1図に示したキャッシュ制御装置130の構成を示す機能ブロック図である。同図に示すように、このキャッシュ制御装置130は、キャッシュメモリ131と、制御部132と、ネットワークインタフェース部133と、キャッシュ読み出し処理部134と、キャッシュ書き込み処理部135と、Fetch対応部136と、Flush対応部137とを有する。
キャッシュメモリ131は、ストレージシステムへのアクセスを高速化するために、ディスク121に格納されたデータの一部およびディスク121に格納されるデータを記憶した記憶部であり、ディスク121と比較して、アクセス時間が短く、容量が小さいという特徴を有する。このキャッシュメモリ131に記憶されるデータおよびその記憶位置は、ストレージ制御装置110が有する位置情報テーブル111に記憶される。
制御部132は、キャッシュ制御装置130全体を制御する処理部であり、また、ネットワークインタフェース部133は、所定の通信プロトコルを用いてクライアント10、ストレージ制御装置110および実ディスク制御装置120と通信をおこなう処理部である。
キャッシュ読み出し処理部134は、ストレージ制御装置110からのデータ読み出し指示に基づいてキャッシュメモリ131からデータを読み出し、読み出したデータをクライアント10へ転送する処理部である。
キャッシュ書き込み処理部135は、ストレージ制御装置110からのデータ書き込み指示に基づいてクライアント10のバッファからデータを読み出し、読み出したデータをキャッシュメモリ131に書き込む処理部である。また、このキャッシュ書き込み処理部135は、キャッシュメモリ131へのデータの書き込みが完了すると、クライアント10にデータ書き込み完了を通知する。そして、この完了通知は、キャッシュ制御装置の二重化に対応したものとなっており、その詳細については後述する。
Fetch対応部136は、ストレージ制御装置110のFetch処理部116の指示に基づいて実ディスク制御装置120がキャッシュ制御装置130に転送するデータをキャッシュメモリ131に書き込む処理部である。
Flush対応部137は、ストレージ制御装置110のFlush処理部117の指示に基づいてキャッシュメモリ131からデータを読み出し、実ディスク制御装置120に転送する処理部である。
次に、ストレージ制御装置110がキャッシュ制御装置130および140ならびに実ディスク制御装置120に対して処理を指示するために送信するメッセージについて説明する。第5図は、ストレージ制御装置110が送信するメッセージの一例を示す図である。同図(a)は、ストレージ制御装置110がキャッシュ制御装置130および140に送信するキャッシュメモリへのデータアクセス指示メッセージを示し、同図(b)は、ストレージ制御装置110が実ディスク制御装置120に送信するデータ転送指示メッセージを示している。
同図(a)に示すように、ストレージ制御装置110がキャッシュ制御装置130および140に送信するキャッシュメモリへのデータアクセス指示メッセージ510は、内部ヘッダ511と、応答ヘッダ512とデータ位置513とを有する。
内部ヘッダ511には、キャッシュ制御装置130および140がデータ送受信をおこなうクライアント10または実ディスク制御装置120のアドレスと、キャッシュメモリからのデータ読み出し指示(「読み出し」)であるか、キャッシュメモリへのデータ書き込み指示(「書き込み」)であるかの区別を示すコマンド種別が含まれる。
すなわち、データアクセス指示メッセージ510がキャッシュメモリへのデータ書き込み指示である場合には、アドレスはデータ書き込み要求をおこなったクライアント10のアドレスであり、コマンド種別は「書き込み」である。また、データアクセス指示メッセージ510がキャッシュメモリからのデータ読み出し指示である場合には、アドレスはデータ読み出し要求をおこなったクライアント10のアドレスであり、コマンド種別は「読み出し」である。その他、データアクセス指示メッセージ510がキャッシュメモリからディスク121へのデータ転送指示である場合には、アドレスはデータ転送先の実ディスク制御装置120のアドレスであり、コマンド種別は「読み出し」である。
応答ヘッダ512は、キャッシュ制御装置130および140がストレージ制御装置110に指示された処理を実行した結果をクライアント10またはストレージ制御装置110へ伝えるためのヘッダフォーマットであり、この応答ヘッダ512には、クライアント10からの要求などを識別するコマンドIDおよび実行が成功したか失敗したかを示す実行結果が含まれる。なお、キャッシュメモリへのデータ書き込みを指示するデータアクセス指示メッセージ510の応答ヘッダ512に含まれるデータについては後述する。
データ位置513には、データを記憶するディスク121ならびにキャッシュメモリの物理位置が含まれる。ただし、データがキャッシュメモリに記憶されていない場合には、ディスク121の物理位置だけが含まれる。
また、第5図(b)に示すように、ストレージ制御装置110が実ディスク制御装置120に送信するデータ転送指示メッセージ520も、内部ヘッダ521と、応答ヘッダ522とデータ位置523とを有する。
内部ヘッダ521には、データの転送先であるキャッシュ制御装置130または140のアドレスと、コマンド種別として「読み出し」が含まれる。応答ヘッダ522は、実ディスク制御装置120がデータ転送の結果(成功または失敗)をストレージ制御装置110に伝えるためのヘッダフォーマットである。また、データ位置523には、転送するデータを格納したディスク121でのデータの位置を指定する物理位置およびデータの書き込み先であるキャッシュメモリでのデータの記憶位置が含まれる。
次に、キャッシュ制御装置130および140がストレージ制御装置110からの指示に応答して、クライアント10、ストレージ制御装置110および実ディスク制御装置120に送信するメッセージについて説明する。第6図は、キャッシュ制御装置130および140が送信するメッセージの一例を示す図である。同図(a)は、クライアント10の要求に基づいてキャッシュメモリからのデータの読み出し処理またはキャッシュメモリへのデータの書き込み処理を実行した結果をクライアント10に送信する応答メッセージ610を示し、同図(b)は、Flush処理に基づいてキャッシュメモリのデータを実ディスク制御装置120に転送するデータ転送メッセージ620を示し、同図(c)は、実ディスク制御装置120へのデータの転送が完了した場合に、ストレージ制御装置110に送信するデータ転送完了メッセージを示している。
同図(a)に示すように、キャッシュ制御装置130および140がクライアント10に送信する応答メッセージ610は、応答ヘッダ611と応答データ612とを有する。応答ヘッダ611には、クライアント10からの要求を識別するコマンドIDおよび指示された処理の実行結果が含まれる。また、クライアント10からの要求がデータの読み出しである場合には、キャッシュメモリから読み出されたデータが応答データ612となる。一方、クライアントからの要求がデータの書き込みである場合には、応答データ612はない。
また、同図(b)に示すように、キャッシュ制御装置130および140が実ディスク制御装置120に送信するデータ転送メッセージ620は、応答ヘッダ621と、データ位置622と、応答データ623とを有する。応答ヘッダ621には、このデータ転送メッセージ620がFlush処理に基づくデータ転送であることを識別するためのコマンドIDが含まれ、データ位置622には、送信するデータのディスク121での書き込み位置を指定する物理位置が含まれ、応答データ623は、キャッシュメモリから読み出され、ディスク121に格納されるFlushデータである。
また、同図(c)に示すように、キャッシュ制御装置130および140がストレージ制御装置110に送信するデータ転送完了メッセージ630は、応答ヘッダ631を有する。この応答ヘッダ631には、この応答に対応するストレージ制御装置110からの指示メッセージに含まれたコマンドIDおよび指示された処理の実行結果が含まれる。
次に、実ディスク制御装置120がストレージ制御装置110からの指示に応答して、キャッシュ制御装置130および140ならびにストレージ制御装置110に送信するメッセージについて説明する。第7図は、実ディスク制御装置120が送信するメッセージの一例を示す図である。同図(a)は、Fetch処理に基づいて実ディスク制御装置120がディスク121に格納されたデータをキャッシュ制御装置130または140に転送するデータ転送メッセージ710を示し、同図(b)は、キャッシュ制御装置130または140へのデータの転送が完了した場合に、実ディスク制御装置120がストレージ制御装置110に送信するデータ転送完了メッセージ720を示している。
同図(a)に示すように、実ディスク制御装置120がキャッシュ制御装置130または140に送信するデータ転送メッセージ710は、応答ヘッダ711と、データ位置712と、応答データ713とを有する。応答ヘッダ711には、このデータ転送メッセージ710がFetch処理に基づくデータ転送であることを識別するためのコマンドIDが含まれ、データ位置712には、転送するデータのキャッシュメモリでの書き込み位置を指定する物理位置が含まれ、応答データ713は、ディスク121から読み出され、キャッシュメモリに書き込まれるFetchデータである。
また、同図(b)に示すように、ストレージ制御装置110に送信するデータ転送完了メッセージ720は、応答ヘッダ721を有する。この応答ヘッダ721には、この応答に対応するストレージ制御装置110からの指示メッセージに含まれたコマンドIDおよび指示された処理の実行結果が含まれる。
次に、第2図に示したストレージ制御装置110のデータ書き込み処理部115の処理について説明する。第8図は、第2図に示したストレージ制御装置110のデータ書き込み処理部115の処理手順を示すフローチャートである。
同図に示すように、このデータ書き込み処理部115は、クライアント10が指定した書き込みデータの論理位置を用いて位置情報テーブル111を検索し(ステップS801)、キャッシュメモリにデータが有りその状態がdirtyであるか、キャッシュメモリにデータが有りその状態がcoherentであるか、またはキャッシュメモリにデータがないかを調べる(ステップS802)。
そして、両方のキャッシュメモリにデータが有り、そのデータの状態がdirtyである場合には、両方のキャッシュ制御装置130および140に対して、コマンド種別を「書き込み」としてデータアクセス指示メッセージ510を送信し、クライアント10の指定するデータをキャッシュメモリへ書き込む指示をおこなう(ステップS803)。
また、キャッシュメモリのいずれかにデータが有り、そのデータの状態がcoherentである場合には、データのないキャッシュメモリにデータを記憶するための領域を確保し、両方のキャッシュ制御装置130および140に対して、コマンド種別を「書き込み」としてデータアクセス指示メッセージ510を送信する(ステップS806)。そして、新たに確保したキャッシュメモリの領域について位置情報テーブル111を更新する(ステップS807)。
また、両方のキャッシュメモリにデータがない場合には、両方のキャッシュメモリにデータを記憶するための領域を確保し(ステップS805)、両方のキャッシュ制御装置130および140に対して、コマンド種別を「書き込み」としてデータアクセス指示メッセージ510を送信する(ステップS806)。そして、新たに確保したキャッシュメモリの領域について位置情報テーブル111を更新する(ステップS807)。
このように、このデータ書き込み処理部115が、クライアント10が書き込みを要求したデータを常に両方のキャッシュメモリに書き込むこととしたので、いずれかのキャッシュ制御装置が故障した場合にも、データの消失を防ぐことができる。
次に、クライアント10がストレージシステムへのデータ書き込み完了を判定する手法について説明する。このストレージシステムでは、2台のキャッシュ制御装置130および140を使用しており、データの書き込みは、2台のキャッシュ制御装置130および140が有するキャッシュメモリに対しておこなう必要がある。したがって、データの書き込み完了は、両方のキャッシュ制御装置130および140がキャッシュメモリへのデータの書き込みを完了した時点となる。第9図は、クライアント10がストレージシステムへのデータ書き込み完了を判定する手法を説明するための説明図である。
同図に示すように、ストレージ制御装置110は、クライアント10からのデータ書き込み要求(コマンドIDを「コマンド1」とする)を受け付けると、両方のキャッシュ制御装置130および140に対して、データアクセス指示メッセージ510を送信する。なお、このデータアクセス指示メッセージ510では、内部ヘッダ511にデータ書き込み要求元であるクライアント10のアドレスおよびコマンド種別である「書き込み」が含まれ、応答ヘッダ512に「コマンド1」への応答は2個であることを指定するデータ(応答1:2個)が含まれ、データ位置513にキャッシュメモリでのデータ書き込み位置であるデータ位置Pおよびデータ位置Qが含まれる。
データ書き込みメッセージ510を受信したキャッシュ制御装置130および140は、クライアント10のバッファからデータを読み出し、キャッシュ制御装置130はキャッシュメモリのデータ位置Pに、キャッシュ制御装置140はキャッシュメモリのデータ位置Qにそれぞれデータを書き込む。そして、データの書き込みが完了すると、応答ヘッダ512をもとにして作成した応答メッセージ610をクライアント10へ送信する。この応答メッセージ610には、「コマンド1」への応答は2個であることを指定するデータ(応答1:2個)が含まれる。
キャッシュ制御装置130または140からの応答メッセージ610を受信したクライアント10は、「コマンド1」への応答は2個であることを確認し、他のキャッシュ制御装置からの応答メッセージ610を待ち、他のキャッシュ制御装置からの応答メッセージ610を受信すると、ストレージシステムへのデータの書き込みが完了したと判定する。
このように、ストレージ制御装置110が応答ヘッダ512を用いて、データの書き込み要求に対する応答メッセージ610が2個であることを指定し、クライアント10がキャッシュ制御装置からの応答メッセージ610の数を数え、応答メッセージ610を2個受信した時点で始めてストレージシステムへのデータの書き込みが完了したと判定することとしたので、2台のキャッシュ制御装置130および140が有するキャッシュメモリに同一のデータが書き込まれることを保障することができる。
次に、本実施の形態1に係るキャッシュメモリへのデータ書き込み手順について説明する。第10図は、本実施の形態1に係るキャッシュメモリへのデータ書き込み手順を示すフローチャートである。なお、ここでは、キャッシュ制御装置130がキャッシュ制御装置140より先にキャッシュメモリへのデータの書き込みを完了するものとする。
同図に示すように、キャッシュ制御装置130は、ストレージ制御装置110が送信したデータアクセス指示メッセージ510を受信すると(ステップS1001)、クライアント10のバッファからデータを読み込み(ステップS1002)、読み込んだデータをキャッシュメモリに書き込む。キャッシュメモリでのデータの書き込み位置は、データアクセス指示メッセージ510が有するデータ位置513で指定される。そして、キャッシュメモリへのデータの書き込みが完了すると、応答メッセージ610をクライアント10に送信する(ステップS1003)。
一方、他のキャッシュ制御装置140も同様に、ストレージ制御装置110が送信したデータアクセス指示メッセージ510を受信し(ステップS1005)、クライアント10のバッファからデータを読み込み(ステップS1006)、読み込んだデータをキャッシュメモリに書き込む。そして、キャッシュメモリへのデータの書き込みが完了すると、応答メッセージ610をクライアント10に送信する(ステップS1007)。
また、クライアント10は、まず、キャッシュ制御装置130が送信した応答メッセージ610を受信し(ステップS1004)、応答ヘッダ611を解読して応答メッセージ610を2個受信する必要があることを認識し、次の応答メッセージ610を待つ。そして、キャシュ制御装置140からの応答メッセージ610を受信すると(ステップS1008)、両方のキャッシュ制御装置130および140でデータの書き込み処理が完了したと判定する。
なお、ここでは、キャッシュ制御装置130および140がキャッシュメモリへのデータの書き込みを完了すると、クライアント10に応答メッセージ610を送信することとしたが、キャッシュ制御装置130および140は、キャッシュメモリへの書き込みが完了した場合に、クライアント10のかわりにストレージ制御装置110にデータの書き込み完了を通知することもできる。この場合、ストレージ制御装置110は、2台のキャッシュ制御装置130および140にデータ書き込み指示をおこなっているので、指示をおこなったキャッシュ制御装置130および140からのデータ書き込み完了通知を受け取った後に、クライアント10に対してデータ書き込み完了を通知することができる。
次に、第2図に示したストレージ制御装置110のデータ読み出し処理部114の処理手順について説明する。第11図は、第2図に示したストレージ制御装置110のデータ読み出し処理部114の処理手順を示すフローチャートである。
同図に示すように、このデータ読み出し処理部114は、位置情報テーブル111を用いて、クライアント10が読み出しを要求したデータが0番のキャッシュ制御装置130に有るか否かを調べる(ステップS1101)。そして、0番のキャッシュ制御装置130にデータが有る場合には、0番のキャッシュ制御装置130に対して、コマンド種別を「読み出し」としてデータアクセス指示メッセージ510を送信し(ステップS1102)、キャッシュメモリに記憶されたデータのクライアント10への送信を指示する。
一方、クライアント10が読み出しを要求したデータが0番のキャッシュ制御装置130にない場合には、そのデータが1番のキャッシュ制御装置140に有るか否かを調べる(ステップS1103)。また、0番のキャッシュ制御装置130に、クライアント10が読み出しを要求した全てのデータがなかった場合にも、残りのデータが1番のキャッシュ制御装置140に有るか否かを調べる(ステップS1103)。そして、1番のキャッシュ制御装置140に求めるデータが有る場合には、1番のキャッシュ制御装置140に対して、コマンド種別を「読み出し」としてデータアクセス指示メッセージ510を送信し(ステップS1104)、キャッシュメモリに記憶されたデータのクライアント10への送信を指示する。
一方、クライアント10が読み出しを要求したデータが1番のキャッシュ制御装置140にない場合には、データがディスク121に有るか否かを調べる(ステップS1105)。また、0番および1番のキャッシュ制御装置140に、クライアント10が読み出しを要求した全てのデータがない場合にも、残りのデータがディスク121に有るか否かを調べる(ステップS1105)。そして、求めるデータがディスク121にある場合には、Fetch処理を用いてディスク121からデータを読み出し、キャッシュメモリに書き込む(ステップS1106)。そして、データを書き込んだキャッシュメモリを有するキャッシュ制御装置に対して、コマンド種別を「読み出し」としてデータアクセス指示メッセージ510を送信し(ステップS1107)、キャッシュメモリに記憶されたデータのクライアント10への送信を指示する。
このように、この読み出し処理部114は、クライアント10が読み出しを要求したデータの記憶位置を、位置情報テーブル111を用いて調べ、そのデータが2台のキャッシュ制御装置130および140のいずれかに有る場合には、そのデータをクライアント10に送信するように指示を出すことによって、キャッシュの二重化に対応したデータ読み出しをおこなっている。
次に、第2図に示したストレージ制御装置110のFetch処理部116の処理手順について説明する。なお、このFetch処理部116の処理は、第11図に示したFetch処理(ステップS1106)に対応した処理となっている。第12図は、第2図に示したストレージ制御装置110のFetch処理部116の処理手順を示すフローチャートである。
同図に示すように、このFetch処理部116は、データを記憶するキャッシュメモリ領域を、位置情報テーブル111を用いて確保し(ステップS1201)、データ転送指示メッセージ520を用いて、確保したキャッシュメモリ領域を有するキャッシュ制御装置へのデータ転送を実ディスク制御装置120に対して指示する(ステップS1202)。そして、実ディスク制御装置120からキャッシュ制御装置へのデータ転送の完了を待ち(ステップS1203)、実ディスク制御装置120からデータ転送完了メッセージ720を受信すると(ステップS1204)、新たに確保したキャッシュメモリ領域について位置情報テーブル111を更新する(ステップS1205)。
次に、第2図に示したストレージ制御装置110のFlush処理部117の処理手順について説明する。第13図は、第2図に示したストレージ制御装置110のFlush処理部117の処理手順を示すフローチャートである。
同図に示すように、このFlush処理部117は、ディスク121に転送するデータを記憶したキャッシュ制御装置に対して、実ディスク制御装置120へのデータ転送を指示するメッセージを送信する。すなわち、内部ヘッダ511のアドレスを実ディスク制御装置120のアドレスとし、コマンド種別を「読み出し」として、データアクセス指示メッセージ510を送信し、実ディスク制御装置120へのデータ転送を指示する(ステップS1301)。
そして、キャッシュ制御装置から実ディスク制御装置120へのデータ転送の完了を待ち(ステップS1302)、キャッシュ制御装置からデータ転送完了メッセージ630を受信すると(ステップS1303)、転送したデータを記憶していたキャッシュメモリ領域を開放し、開放されたキャッシュメモリ領域について位置情報テーブル111を更新する(ステップS1304)。
上述したように、本実施の形態1では、ストレージシステムに2台のキャッシュ制御装置130および140を設け、両方のキャッシュ制御装置130および140に同一のデータを記憶することとしたので、いずれかのキャッシュ制御装置が故障した場合にも、他のキャッシュ制御装置を用いてストレージシステムを稼動することができ、信頼性の高いストレージシステムを実現することができる。
また、ディスク121に格納されたデータとキャッシュ制御装置130および140に記憶されたデータが同一である(coherent)場合には、いずれかのキャッシュ制御装置のキャッシュメモリを開放し、ディスク121に記憶されたデータとキャッシュ制御装置に記憶されたデータが異なる(dirty)場合にだけ、両方のキャッシュ制御装置130および140に同一データを記憶することとしたので、キャッシュメモリを効率よく使用することができ、キャッシュヒット率を向上することができる。
実施の形態2.
ところで、上記実施の形態1では、キャッシュ制御装置を二重化することによって、ストレージシステムの信頼性を向上させる場合について説明したが、キャッシュ制御装置を二重化することに加えて、ストレージ制御装置も二重化することによって、さらにストレージシステムの信頼性を向上させることができる。そこで、本実施の形態2では、キャッシュ制御装置の二重化に加えて、ストレージ制御装置を二重化したストレージシステムについて説明する。
まず、本実施の形態2に係るストレージ制御装置の二重化の概念について説明する。第14図は、本実施の形態2に係るストレージ制御装置の二重化の概念について説明するための説明図である。同図に示すように、このストレージシステムは、メイン系ストレージ制御装置とバックアップ系ストレージ制御装置の2台のストレージ制御装置を有する。
そして、通常の運用では、これらの2台のストレージ制御装置のうちメイン系ストレージ制御装置がストレージシステムのストレージ制御装置として機能する。ただし、メイン系ストレージ制御装置およびバックアップ系ストレージ制御装置の両方が位置情報テーブルを有し、メイン系ストレージ制御装置は、位置情報テーブルを更新するごとに、その更新情報をバックアップストレージ制御装置に送信する。そして、この更新情報を受信したバックアプ系ストレージ制御装置は、自分が有する位置情報テーブルを更新し、位置情報テーブルを常に最新の状態に保つこととしている。
このように、本実施の形態2に係るストレージシステムでは、メイン系ストレージ制御装置が有する位置情報テーブルとバックアップ系ストレージ制御装置が有する位置情報テーブルを常に同じ状態に保つことにより、メイン系ストレージ制御装置が故障した場合にも、バックアップ系ストレージ制御装置を用いてストレージシステムを稼動することができ、信頼性の高いストレージシステムを実現することができる。
次に、本実施の形態2に係るストレージシステムのシステム構成について説明する。第15図は、本実施の形態2に係るストレージシステムのシステム構成を示すブロック図である。なお、ここでは説明の便宜上、第1図に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
同図に示すように、このストレージシステムでは、ネットワーク40上にメイン系ストレージ制御装置1510と、バックアップ系ストレージ制御装置1520と、実ディスク制御装置120と、2台のキャッシュ制御装置130および140が分散配置される。
メイン系ストレージ制御装置1510は、通常の運用において、ネットワーク40を介してクライアント10からのアクセス要求を受け付け、実ディスク制御装置120、キャシュ制御装置130および140に対して、アクセス要求に応じた処理を実行させる装置である。このメイン系ストレージ制御装置1510は、位置情報テーブル1511と、更新情報送信部1512とを有する。
位置情報テーブル1511は、クライアント10がストレージシステムにアクセスを要求するデータについて、クライアント10が指定する論理位置と、実際にデータが格納されたディスク121の物理位置およびキャッシュメモリの物理位置と、そのデータの状態すなわちデータがcoherentであるかdirtyであるかの区別を対応させて記憶した表である。
更新情報送信部1512は、位置情報テーブル1511が更新されるごとに、更新情報をバックアップ系ストレージ制御装置1520に送信する処理部である。位置情報テーブル1511の更新は、Flush処理によってキャッシュメモリに記憶されたデータが不要になった場合、Fetch処理によって新たなキャッシュメモリが割り当てられた場合およびデータ書き込み処理において新たなキャッシュメモリが割り当てられた場合などにおこなわれる。
バックアップ系ストレージ制御装置1520は、メイン系ストレージ制御装置1510が故障した場合に、その処理を引き継いで実行する装置であり、位置情報テーブル1521と位置情報テーブル更新部1522とを有する。
位置情報テーブル1521は、メイン系ストレージ制御装置1510が有する位置情報テーブル1511と同一のデータを記憶する表である。この位置情報テーブル1521が位置情報テーブル1511と同一のデータを記憶することにより、メイン系ストレージ制御装置1510が故障した場合に、その処理をバックアップ系ストレージ制御装置1520が引き継いで実行することが可能となる。
位置情報テーブル更新部1522は、メイン系ストレージ制御装置1510の更新情報送信部1512が送信する位置情報テーブル1511の更新情報を受け取り、バックアップ系ストレージ制御装置1520の位置情報テーブル1521を更新する処理部である。この位置情報テーブル更新部1522が位置情報テーブル1521を更新することによって、位置情報テーブル1521を常に最新の状態に保つことができ、メイン系ストレージ制御装置1510が故障した場合に、その処理をバックアップ系ストレージ制御装置1520が引き継いで実行することを可能としている。
次に、メイン系ストレージ制御装置1510の更新情報送信部1512がバックアップ系ストレージ制御装置1520に更新情報として送信する位置情報更新メッセージについて説明する。第16図は、位置情報更新メッセージの一例を示す図である。同図に示すように、この位置情報更新メッセージ1610は、種類1611と、論理位置情報1612と、物理位置情報1613と、状態1614とを有する。
種類1611は、位置情報テーブルの更新の種別を示し、キャッシュメモリの新規割当(alloc)、二重化されているキャッシュメモリの一部開放(freel)またはキャッシュメモリの全部開放(free)のいずれかである。
また、論理位置情報1612、物理位置情報1613および状態1614は、位置情報テーブルの論理位置、物理位置および状態にそれぞれ対応する情報である。すなわち、論理位置情報1612は、クライアント10がストレージシステムのアクセスに利用するデータ格納位置である論理位置に関する情報であり、物理位置情報1613は、データを記憶するディスク121およびキャッシュメモリでのデータ記憶位置である物理位置に関する情報であり、状態1614は、ディスク121に格納されたデータとキャッシュメモリに記憶されたデータが同一であるか否かを示す情報である。
次に、第15図に示したバックアップ系ストレージ制御装置1520の位置情報テーブル更新部1522の処理手順について説明する。第17図は、第15図に示したバックアップ系ストレージ制御装置1520の位置情報テーブル更新部1522の処理手順を示すフローチャートである。
同図に示すように、この位置情報テーブル更新部1522は、メイン系ストレージ制御装置1510の更新情報送信部1512がバックアップ系ストレージ制御装置1520に送信する位置情報更新メッセージ1610をネットワーク40を介して受け取る(ステップS1701)。
そして、この位置情報更新メッセージ1610が有する種類1611を調べ(ステップS1702)、種類1611が「free」である場合には、開放されたキャッシュメモリの領域に対応する情報を位置情報テーブル1521から削除し(ステップS1703)、種類1611が「freel」である場合には、一部開放されたキャッシュメモリの領域に対応する位置情報テーブル1521の情報を更新する(ステップS1704)。また、位置情報更新メッセージ1610の有する種類1611が「alloc」である場合には、新規に割り当てられたキャッシュメモリの領域に対応する情報が位置情報テーブル1521にあれば、その情報を更新し、新規に割り当てられたキャッシュメモリの領域に対応する情報が位置情報テーブル1521になければ、新たな対応情報を作成し、位置情報テーブル1521に追加する(ステップS1705)。
上述したように、本実施の形態2では、メイン系ストレージ制御装置1510およびバックアップ系ストレージ制御装置1520を用いてストレージ制御装置を二重化し、両方のストレージ制御装置1510および1520に位置情報テーブル1511および1521を備え、メイン系ストレージ制御装置1510の更新情報送信部1512が位置情報テーブル1511が更新されるごとに、位置情報更新メッセージ1610をバックアップ系ストレージ制御装置1520に送信し、バックアップ系ストレージ制御装置1520の位置情報テーブル更新部1522が位置情報テーブル1521を直ちに更新することとしたので、メイン系ストレージ制御装置1510が故障した場合にも、バックアップ系ストレージ制御装置1520がその処理を引き継いでストレージシステムを稼動させることができ、信頼性の高いストレージシステムを実現することができる。
ところで、上記実施の形態2では、メイン系ストレージ制御装置1510の更新情報送信部1512がバックアップ系ストレージ制御装置1520に位置情報更新メッセージ1610を送信し、バックアップ系ストレージ制御装置1520が位置情報更新メッセージ1610を用いて位置情報テーブル1521を直ちに更新する場合について説明したが、バックアップ系ストレージ制御装置1520は、位置情報テーブル1521を直ちに更新することなく、位置情報更新メッセージ1610を更新ログとして保存し、メイン系ストレージ制御装置1510が故障してその処理を引き継いだ時点で位置情報テーブル1521を更新することもできる。
そこで、位置情報更新メッセージ1610を更新ログとして保存し、メイン系ストレージ制御装置1510が故障してその処理を引き継いだ時点で位置情報テーブル1521を更新するバックアップ系ストレージ制御装置について説明する。
第18図は、本実施の形態2に係るストレージ制御装置の二重化の変形例の概念について説明するための説明図である。同図に示すように、このストレージ制御装置の二重化の変形例では、メイン系ストレージ制御装置は、位置情報テーブルを更新するごとに、更新情報をバックアップ系ストレージ制御装置に送信する。また、更新情報を受信したバックアプ系ストレージ制御装置は、位置情報テーブルを直ちに更新するかわりに、更新情報を更新ログとして保存する。そして、バックアップ系ストレージ制御装置は、メイン系ストレージ制御装置が故障してその処理を引き継いだ時に、保存した更新ログを用いて位置情報テーブルを更新する。
このように、この変形例では、バックアップ系ストレージ制御装置が更新情報を受け取った時点で直ちに位置情報テーブルを更新するかわりに、更新情報を更新ログとして保存することとしたので、バックアップ系ストレージ制御装置の処理負荷を低減することができ、バックアップ系ストレージ制御装置を他の処理に有効に使うことができる。
実施の形態3.
上記の実施の形態1および2では、2台のキャッシュ制御装置を用いた場合について説明したが、キャッシュ制御装置の台数は、ディスク121の増強などにともなうキャッシュヒット率の低下を避けるために、順次増やしていく必要がある。そこで、本実施の形態3では、n台のキャッシュ制御装置を用いたストレージシステムについて説明する。
第19図は、本実施の形態3に係るストレージシステムのシステム構成を示すブロック図である。なお、ここでは説明の便宜上、第1図に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
同図に示すように、このストレージシステムでは、ネットワーク40上にストレージ制御装置1910と、実ディスク制御装置120および1920と、キャッシュ制御装置130、140および1930が分散配置される。なお、ここでは、説明の便宜上、2台の実ディスク制御装置120および1920ならびに3台のキャッシュ制御装置130、140および1930を示したが、このストレージシステムは、m台の実ディスク制御装置とn台のキャッシュ制御装置とを有する。
ストレージ制御装置1910は、dirtyな状態にあるデータをn台のキャッシュ制御装置のうちの2台が記憶するように制御する。すなわち、このストレージ制御装置1910は、n台のキャッシュ制御装置のうち1台のキャッシュ制御装置が故障した場合にも、故障したキャッシュ制御装置のデータは、他のキャッシュ制御装置かディスクに必ず存在するようにキャッシュ制御装置を制御することにより、効率の良いキャッシュメモリの利用と信頼性の高いストレージシステムを実現している。
実ディスク制御装置1920およびキャッシュ制御装置1930は、より大規模なデータを扱うために、新たにストレージシステムに追加した装置である。ただし、このキャッシュ制御装置1930は、たとえば、第19図において、dirtyな状態にあるデータMを記憶する必要はない。その理由は、2台のキャッシュ制御装置130および140がデータMを記憶しており、3台以上のキャッシュ制御装置が同一データを記憶する必要はないためである。
上述したように、本実施の形態3では、ストレージシステムにn台のキャッシュ制御装置を設け、ディスクに格納されていないdirtyな状態のデータについては、n台のキャッシュ制御装置のうち2台のキャッシュ制御装置に同一データを記憶することとしたので、キャッシュメモリを効率的に使用するとともに、n台のキャッシュ制御装置のうち1台のキャッシュ制御装置が故障した場合にも、残りのキャッシュ制御装置を用いてストレージシステムを稼動することができ、信頼性の高いストレージシステムを実現することができる。
なお、上記実施の形態3では、n台のキャッシュ制御装置のうち2台のキャッシュ制御装置に同一データを記憶する場合について説明したが、本発明はこれに限定されるものではなく、さらに信頼性の高いストレージシステムを得るために、同一データを記憶するキャッシュ制御装置の台数を3台以上に増や場合にも同様に適用することができる。したがって、同一のデータを記憶するキャッシュ制御装置の台数は、システムの運用環境、キャッシュメモリのヒット率、データのアクセス性能、システムの信頼性に対する要求度などに基づいて決定することができる。
さらに、本発明は、ストレージステムの運用環境の変化などにともなって、同一のデータを記憶するキャッシュ制御装置の台数を随時変更することによって、より柔軟なストレージシステムとする場合にも適用することができる。
また、上記実施の形態3では、同一のデータを任意の2台のキャッシュ制御装置に記憶する場合について説明したが、本発明はこれに限定されるものではなく、各キャッシュ制御装置に対して同一のデータを記憶するキャッシュ制御装置を定め、各キャッシュ制御装置のバックアップおこなうストレージシステムにも同様に適用することができる。
また、上記実施の形態1、2および3では、ストレージ制御装置およびキャッシュ制御装置について説明したが、これらの装置が有する構成をソフトウェアによって実現することで、同様の機能を有するストレージ制御プログラムおよびキャッシュ制御プログラムを得ることができる。そこで、これらのストレージ制御プログラムおよびキャッシュ制御プログラムを実行するコンピュータシステムについて説明する。
第20図は、ストレージ制御プログラムおよびキャッシュ制御プログラムを実行するコンピュータシステム2000の一例を示す図である。同図に示すように、このコンピュータシステム2000は、MPU(Micro Processing Unit)2001と、ROM(Read Only Memory)2002と、RAM(Random Access Memory)2003と、NIC(Network Interface Card)2004と、入出力装置2005と、PCインタフェース2006とを有する。
MPU2001は、プログラムを実行する演算装置であり、ここでは、ROM2002に記憶されたストレージ制御プログラムおよびキャッシュ制御プログラムを実行する。
ROM2002は、読み出し専用のプログラムおよびデータを記憶したメモリであり、プログラムの実行に先立って、ストレージ制御プログラムおよびキャッシュ制御プログラムを記憶する。
RAM2003は、データの書き込みが可能なメモリであり、MPU2001がプログラムの実行にともなって作成する一時的なデータ等を記憶する。また、このRAM2003には、位置情報テーブルが記憶される。
NIC2004は、所定の通信プロトコルを用いてクライアント等と通信をおこなう装置であり、第2図に示したネットワークインタフェース部113および第4図に示したネットワークインタフェース部133の処理を実行する。
入出力装置2005は、キーボード、マウスおよびディスプレイなどの装置であり、キーボードおよびマウスは、コンピュータシステム2000への指示およびデータの入力に使用され、ディスプレイはコンピュータの実行状態の表示等に使用される。
PCインタフェース2006は、プログラムの開発等に使用するパーソナルコンピュータとのインタフェースであり、パーソナルコンピュータで開発したプログラムのローディングや、パーソナルコンピュータとのデバッグ情報の授受などに使用される。
以上説明したように、本発明によれば、クライアントが書き込みを要求したデータをネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御し、クライアントが読み出しを要求したデータをネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、ディスク装置からデータを読み出し、読み出したデータをあるキャッシュ装置だけに記憶させるとともにクライアントに送信するように制御することとしたので、キャッシュメモリを効率よく使用するとともに、いずれかのキャッシュ装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、信頼性の高いストレージシステムを構築することができるという効果を奏する。
Exemplary embodiments of a storage control device, a storage control program, and a storage control method according to the present invention will be explained below in detail with reference to the accompanying drawings.
Embodiment 1 FIG.
First, the system configuration of the storage system according to the first embodiment will be described. FIG. 1 is a block diagram showing a system configuration of the storage system according to the first embodiment. As shown in the figure, this storage system is configured with a storage control device 110, a real disk control device 120, and duplicated cache control devices 130 and 140 distributed on a network 40, and a client via the network 40. 10 to 30 are used. Although only three clients 10 to 30 are shown here for convenience of explanation, this storage system is used by an arbitrary number of clients via the network 40. Although the case where the client 10 uses this storage system will be described here, the other clients 20 and 30 can also use this storage system.
The storage control device 110 is a device that accepts an access request from the client 10 via the network 40 and causes the real disk control device 120 and the cache control devices 130 and 140 to execute processing according to the access request. The storage control device 110 manages data stored in the cache memory included in the cache control devices 130 and 140.
The real disk control device 120 has a disk 121 as a large-capacity storage medium, and reads data from the disk 121 and writes data to the disk 121 based on instructions from the storage control device 110. Although only one real disk control device 120 is shown here for convenience of explanation, in this storage system, a plurality of real disk control devices are arranged on the network 40 according to the scale of data to be stored. Can do. A plurality of disks can be connected to one real disk control device.
The cache control devices 130 and 140 have a cache memory as a high-speed access recording medium, and read data from the cache memory and write data to the cache memory based on instructions from the storage control device 110.
Thus, in this storage system, the cache control device is duplicated and the same data is stored in the cache memory of the cache control devices 130 and 140. However, if not all data is duplicated, but the data stored in the disk 121 matches the data stored in the cache memory, that is, if the data is in a coherent state, the data is either If the data stored only in the cache memory and the data stored in the disk 121 and the data stored in the cache memory are different, that is, if the data is in a dirty state, the data is stored in both cache memories.
For example, in FIG. 1, the data M is data in which the data M ′ on the disk 121 has been rewritten and is in a dirty state, so it is stored in two cache memories of the cache control device 130 and the cache control device 140. Has been. The data N is stored only in the cache memory of the cache control device 130 because the same data exists on the disk 121.
In this way, in this storage system, the cache control device is duplicated and the same data is stored in two cache memories. Therefore, even if one of the cache control devices 130 or 140 fails, the other data The storage system can be operated using the cache control device, and a highly reliable storage system can be realized. Further, in this storage system, when the data stored in the disk 121 and the cache memory are the same, the data is stored only in one cache memory, so that the cache memory can be used effectively. The cache hit rate can be improved.
Next, the configuration of the storage control device 110 shown in FIG. 1 will be described. FIG. 2 is a functional block diagram showing the configuration of the storage control device 110 shown in FIG. As shown in the figure, the storage control device 110 includes a location information table 111, a control unit 112, a network interface unit 113, a data read processing unit 114, a data write processing unit 115, and a fetch processing unit 116. , And a flush processing unit 117.
The location information table 111 includes a logical location designated by the client 10 for data that the client 10 requests access to the storage system, a physical location of the disk 121 where the data is actually stored, a physical location of the cache memory, and the data. (Ie, whether the data is coherent or dirty) is stored in association with each other.
FIG. 3 is a diagram illustrating an example of the position information table 111. In the figure, data whose logical positions are 0 to 7 of the storage with the device number 0 are the 0 to 7 of the disk 121 with the device number 0 and 0 to 0 of the cache memory of the cache control device 130 with the device number 0. 7 indicates a coherent state. Further, the data whose logical positions are 8 to 15 of the storage of the device number 1 are the 8 to 15 of the disk 121 of the device number 0, the cache memories 8 to 15 of the cache control device 130 of the device number 0, and It is stored in 0 to 7 of the cache memory of the cache control device 140 having the device number 1, indicating that it is in a dirty state.
In this way, the location information table 111 stores the physical position of the data stored in the cache memory included in the two cache control devices 130 and 140 in correspondence with the logical position of the data, so that the storage control device 110 can perform processing corresponding to the duplication of the cache control device.
The control unit 112 is a processing unit that controls the entire storage control device 110, and the network interface unit 113 communicates with the client 10, the real disk control device 120, and the cache control devices 130 and 140 using a predetermined communication protocol. It is a processing unit that performs.
The data read processing unit 114 is a processing unit that reads data from the storage system in response to a data read request from the client 10, obtains a physical position from the logical position of the data using the position information table 111, and stores the data If it is stored in the cache memory, it instructs the cache control device having the cache memory storing the data to transfer data to the client 10. On the other hand, if the data is not stored in the cache memory, the Fetch processing unit 116 is requested to transfer data from the real disk control device 120 to the cache control device. Then, after the data is transferred from the real disk control device 120 to the cache control device, the cache control device to which the data has been transferred is instructed to transfer data to the client 10.
The data write processing unit 115 is a processing unit that writes data to the storage system in response to a data write request from the client 10, and is always provided to both cache control devices 130 and 140 based on the location information table 111. To write data to the cache memory. That is, when the data storage position in the cache memory is registered in the position information table 111, the data write instruction is issued to the storage position, and the data storage position in the cache memory is registered in the position information table 111. If not, a new cache memory is allocated and data writing is instructed to the allocated cache memory position.
As described above, since the data write processing unit 115 writes the same data in both cache memories in response to the data write request from the client 10, even when one of the cache control devices fails, The operation stop of the storage system can be prevented, and the reliability of the storage system can be improved.
When the data requested to be read from the client 10 is not stored in the cache memory, the fetch processing unit 116 selects a cache control device that newly stores the data and selects the real disk control device 120. A processing unit for instructing transfer of data to the cache control device.
The flush processing unit 117 is a processing unit that writes dirty data out of data stored in the cache memory to the disk 121. When data is written to the cache memory, an empty area is insufficient, or the cache It is used to create an empty area in the cache memory when the used area of the memory exceeds a predetermined ratio. When creating an empty area in the cache memory, selection of which data is deleted from the cache memory is determined using a method such as LRU (Least Recently Used), and the data determined to be deleted from the cache memory This flush processing unit 117 is used when the state is dirty.
Next, the configuration of the cache control devices 130 and 140 shown in FIG. 1 will be described. Since the cache control devices 130 and 140 have the same configuration, the cache control device 130 will be described as an example here. FIG. 4 is a functional block diagram showing the configuration of the cache control device 130 shown in FIG. As shown in the figure, the cache control device 130 includes a cache memory 131, a control unit 132, a network interface unit 133, a cache read processing unit 134, a cache write processing unit 135, a fetch correspondence unit 136, And a flush corresponding part 137.
The cache memory 131 is a storage unit that stores a part of data stored in the disk 121 and data stored in the disk 121 in order to speed up access to the storage system. It is characterized by short access time and small capacity. The data stored in the cache memory 131 and its storage location are stored in the location information table 111 of the storage control device 110.
The control unit 132 is a processing unit that controls the entire cache control device 130, and the network interface unit 133 communicates with the client 10, the storage control device 110, and the real disk control device 120 using a predetermined communication protocol. It is a processing unit.
The cache read processing unit 134 is a processing unit that reads data from the cache memory 131 based on a data read instruction from the storage control device 110 and transfers the read data to the client 10.
The cache write processing unit 135 is a processing unit that reads data from the buffer of the client 10 based on a data write instruction from the storage control device 110 and writes the read data to the cache memory 131. In addition, when the writing of data to the cache memory 131 is completed, the cache writing processing unit 135 notifies the client 10 of the completion of data writing. This completion notification corresponds to the duplication of the cache control device, and details thereof will be described later.
The fetch correspondence unit 136 is a processing unit that writes data to the cache memory 131 that is transferred from the real disk control device 120 to the cache control device 130 based on an instruction from the fetch processing unit 116 of the storage control device 110.
The flush corresponding unit 137 is a processing unit that reads data from the cache memory 131 based on an instruction from the flush processing unit 117 of the storage control device 110 and transfers the data to the real disk control device 120.
Next, a message that the storage control device 110 transmits to instruct the cache control devices 130 and 140 and the real disk control device 120 to perform processing will be described. FIG. 5 is a diagram showing an example of a message transmitted by the storage control device 110. 2A shows a data access instruction message to the cache memory transmitted from the storage control device 110 to the cache control devices 130 and 140. FIG. 2B shows the storage control device 110 informing the real disk control device 120. A data transfer instruction message to be transmitted is shown.
As shown in FIG. 6A, the data access instruction message 510 to the cache memory transmitted from the storage controller 110 to the cache controllers 130 and 140 has an internal header 511, a response header 512, and a data location 513. .
The internal header 511 includes an address of the client 10 or the real disk control device 120 to which the cache control devices 130 and 140 perform data transmission / reception, a data read instruction (“read”) from the cache memory, or data to the cache memory A command type indicating whether the instruction is a write instruction (“write”) is included.
That is, when the data access instruction message 510 is an instruction to write data to the cache memory, the address is the address of the client 10 that has made a data write request, and the command type is “write”. When the data access instruction message 510 is an instruction to read data from the cache memory, the address is the address of the client 10 that has made a data read request, and the command type is “read”. In addition, when the data access instruction message 510 is an instruction to transfer data from the cache memory to the disk 121, the address is the address of the real disk controller 120 as the data transfer destination, and the command type is “read”.
The response header 512 is a header format for transmitting the result of execution of the processing instructed by the storage control device 110 by the cache control devices 130 and 140 to the client 10 or the storage control device 110. The response header 512 includes the response header 512. A command ID for identifying a request from 10 and an execution result indicating whether the execution has succeeded or failed are included. The data included in the response header 512 of the data access instruction message 510 instructing data writing to the cache memory will be described later.
The data location 513 includes the physical location of the disk 121 storing data and the cache memory. However, if the data is not stored in the cache memory, only the physical location of the disk 121 is included.
As shown in FIG. 5B, the data transfer instruction message 520 transmitted from the storage controller 110 to the real disk controller 120 also has an internal header 521, a response header 522, and a data location 523.
The internal header 521 includes the address of the cache control device 130 or 140 that is the data transfer destination and “read” as the command type. The response header 522 is a header format for the real disk control device 120 to transmit the data transfer result (success or failure) to the storage control device 110. The data location 523 includes a physical location that specifies the location of the data on the disk 121 that stores the data to be transferred, and a data storage location in the cache memory that is the data write destination.
Next, messages that the cache control devices 130 and 140 transmit to the client 10, the storage control device 110, and the real disk control device 120 in response to instructions from the storage control device 110 will be described. FIG. 6 is a diagram illustrating an example of a message transmitted by the cache control devices 130 and 140. FIG. 11A shows a response message 610 for transmitting the result of executing the data read process from the cache memory or the data write process to the cache memory based on the request of the client 10 to the client 10. b) shows a data transfer message 620 for transferring the data in the cache memory to the real disk control device 120 based on the flush processing, and FIG. 10C shows the case where the data transfer to the real disk control device 120 is completed. Shows a data transfer completion message to be transmitted to the storage controller 110.
As shown in FIG. 5A, the response message 610 transmitted from the cache control devices 130 and 140 to the client 10 includes a response header 611 and response data 612. The response header 611 includes a command ID for identifying a request from the client 10 and an execution result of the instructed process. When the request from the client 10 is data read, the data read from the cache memory becomes the response data 612. On the other hand, when the request from the client is data writing, there is no response data 612.
As shown in FIG. 5B, the data transfer message 620 transmitted from the cache control devices 130 and 140 to the real disk control device 120 includes a response header 621, a data location 622, and response data 623. The response header 621 includes a command ID for identifying that the data transfer message 620 is data transfer based on the flush process, and the data position 622 specifies the write position on the disk 121 of the data to be transmitted. The response data 623 is flush data that is read from the cache memory and stored in the disk 121.
Further, as shown in FIG. 5C, the data transfer completion message 630 transmitted from the cache control apparatuses 130 and 140 to the storage control apparatus 110 has a response header 631. The response header 631 includes the command ID included in the instruction message from the storage controller 110 corresponding to this response and the execution result of the instructed process.
Next, a message transmitted from the real disk control device 120 to the cache control devices 130 and 140 and the storage control device 110 in response to an instruction from the storage control device 110 will be described. FIG. 7 is a diagram showing an example of a message transmitted by the real disk control device 120. FIG. 11A shows a data transfer message 710 in which the real disk control device 120 transfers the data stored in the disk 121 to the cache control device 130 or 140 based on the Fetch process, and FIG. A data transfer completion message 720 transmitted from the real disk control device 120 to the storage control device 110 when the data transfer to the control device 130 or 140 is completed is shown.
As shown in FIG. 5A, the data transfer message 710 transmitted from the real disk control device 120 to the cache control device 130 or 140 has a response header 711, a data location 712, and response data 713. The response header 711 includes a command ID for identifying that the data transfer message 710 is data transfer based on the Fetch process, and the data position 712 specifies the write position of the data to be transferred in the cache memory. The response data 713 is fetch data that is read from the disk 121 and written to the cache memory.
Further, as shown in FIG. 5B, the data transfer completion message 720 transmitted to the storage control device 110 has a response header 721. The response header 721 includes the command ID included in the instruction message from the storage controller 110 corresponding to this response and the execution result of the instructed process.
Next, the processing of the data write processing unit 115 of the storage control device 110 shown in FIG. 2 will be described. FIG. 8 is a flowchart showing a processing procedure of the data write processing unit 115 of the storage control apparatus 110 shown in FIG.
As shown in the figure, the data write processing unit 115 searches the position information table 111 using the logical position of the write data designated by the client 10 (step S801), and there is data in the cache memory, and the state is dirty. Whether there is data in the cache memory and the state is coherent, or there is no data in the cache memory (step S802).
If there is data in both cache memories and the data state is dirty, a data access instruction message 510 is transmitted with a command type of “write” to both cache control devices 130 and 140. Then, an instruction to write data designated by the client 10 to the cache memory is issued (step S803).
If there is data in one of the cache memories and the state of the data is coherent, an area for storing the data is secured in the cache memory without data, and both the cache control devices 130 and 140 are provided. On the other hand, the data access instruction message 510 is transmitted with the command type as “write” (step S806). Then, the location information table 111 is updated for the newly secured cache memory area (step S807).
If there is no data in both cache memories, an area for storing data in both cache memories is secured (step S805), and the command type for both cache control devices 130 and 140 is set to “ The data access instruction message 510 is transmitted as “write” (step S806). Then, the location information table 111 is updated for the newly secured cache memory area (step S807).
As described above, since the data write processing unit 115 always writes the data requested by the client 10 to both cache memories, even if one of the cache control devices fails, the data is lost. Can be prevented.
Next, a method in which the client 10 determines completion of data writing to the storage system will be described. In this storage system, two cache control devices 130 and 140 are used, and it is necessary to write data to the cache memory included in the two cache control devices 130 and 140. Therefore, the completion of data writing is the time when both cache control devices 130 and 140 have completed writing data to the cache memory. FIG. 9 is an explanatory diagram for explaining a method in which the client 10 determines completion of data writing to the storage system.
As shown in the figure, when the storage controller 110 receives a data write request from the client 10 (command ID is “command 1”), the storage controller 110 instructs both cache controllers 130 and 140 to access data. A message 510 is transmitted. In this data access instruction message 510, the internal header 511 includes the address of the client 10 that is the data write request source and “write” that is the command type, and the response header 512 includes two responses to “command 1”. The data position 513 includes data position P and data position Q which are data write positions in the cache memory.
The cache controllers 130 and 140 having received the data write message 510 read the data from the buffer of the client 10, the cache controller 130 is in the data position P of the cache memory, and the cache controller 140 is in the data position Q of the cache memory. Write data. When the data writing is completed, a response message 610 created based on the response header 512 is transmitted to the client 10. This response message 610 includes data (two responses) specifying that there are two responses to “command 1”.
The client 10 that has received the response message 610 from the cache control device 130 or 140 confirms that there are two responses to “command 1”, waits for a response message 610 from another cache control device, When the response message 610 from the cache control device is received, it is determined that the data writing to the storage system is completed.
In this way, the storage controller 110 uses the response header 512 to specify that there are two response messages 610 for the data write request, and the client 10 counts the number of response messages 610 from the cache controller, Since it is determined that the writing of data to the storage system is completed only when two response messages 610 are received, the same data is written to the cache memories of the two cache control devices 130 and 140. Can be ensured.
Next, a procedure for writing data into the cache memory according to the first embodiment will be described. FIG. 10 is a flowchart showing a procedure for writing data to the cache memory according to the first embodiment. Here, it is assumed that the cache control device 130 completes writing of data to the cache memory before the cache control device 140.
As shown in the figure, when the cache control device 130 receives the data access instruction message 510 transmitted from the storage control device 110 (step S1001), the cache control device 130 reads data from the buffer of the client 10 (step S1002), and reads the read data. Write to cache memory. A data write position in the cache memory is designated by a data position 513 included in the data access instruction message 510. When the writing of data to the cache memory is completed, a response message 610 is transmitted to the client 10 (step S1003).
On the other hand, the other cache control devices 140 similarly receive the data access instruction message 510 transmitted by the storage control device 110 (step S1005), read the data from the buffer of the client 10 (step S1006), and cache the read data. Write to memory. When the writing of data to the cache memory is completed, a response message 610 is transmitted to the client 10 (step S1007).
The client 10 first receives the response message 610 transmitted by the cache control device 130 (step S1004), recognizes that it is necessary to decode the response header 611 and receive two response messages 610, and then The response message 610 is waited for. When the response message 610 from the cache control device 140 is received (step S1008), it is determined that the data write processing is completed in both the cache control devices 130 and 140.
In this example, when the cache control devices 130 and 140 complete the writing of data to the cache memory, the response message 610 is transmitted to the client 10. However, the cache control devices 130 and 140 write to the cache memory. Can be notified to the storage controller 110 instead of the client 10 when the data write is completed. In this case, since the storage control device 110 issues a data write instruction to the two cache control devices 130 and 140, the client control unit 110 receives the data write completion notification from the cache control devices 130 and 140 that issued the instruction, and then 10 can be notified of the completion of data writing.
Next, the processing procedure of the data read processing unit 114 of the storage control device 110 shown in FIG. 2 will be described. FIG. 11 is a flowchart showing a processing procedure of the data read processing unit 114 of the storage control device 110 shown in FIG.
As shown in the figure, the data read processing unit 114 uses the position information table 111 to check whether or not the data requested by the client 10 to be read exists in the 0th cache control device 130 (step S1101). . If there is data in the 0th cache control device 130, a data access instruction message 510 is transmitted to the 0th cache control device 130 with the command type “read” (step S1102), and the cache memory Is instructed to transmit data stored in the client 10 to the client 10.
On the other hand, if the data requested by the client 10 to be read is not in the number 0 cache control device 130, it is checked whether or not the data is in the number 1 cache control device 140 (step S1103). Further, even when all the data requested by the client 10 to be read out are not in the 0th cache control device 130, it is checked whether or not the remaining data is in the 1st cache control device 140 (step S1103). . When there is data to be requested from the first cache control device 140, the data access instruction message 510 is transmitted to the first cache control device 140 with the command type “read” (step S1104). An instruction to transmit the data stored in the memory to the client 10 is given.
On the other hand, if the data requested by the client 10 is not in the first cache control device 140, it is checked whether or not the data is in the disk 121 (step S1105). Further, even if the 0th and 1st cache control devices 140 do not have all the data that the client 10 requested to read, it is checked whether or not the remaining data exists in the disk 121 (step S1105). If the data to be sought is on the disk 121, the data is read from the disk 121 using the Fetch process and written to the cache memory (step S1106). Then, a data access instruction message 510 is transmitted with the command type “read” to the cache control apparatus having the cache memory in which the data has been written (step S1107), and the data stored in the cache memory is transmitted to the client 10. Instruct.
As described above, the read processing unit 114 checks the storage location of the data requested to be read by the client 10 using the location information table 111, and the data is in one of the two cache control devices 130 and 140. In such a case, by issuing an instruction to transmit the data to the client 10, data reading corresponding to the duplication of the cache is performed.
Next, the processing procedure of the fetch processing unit 116 of the storage control device 110 shown in FIG. 2 will be described. Note that the process of the fetch processing unit 116 is a process corresponding to the fetch process (step S1106) shown in FIG. FIG. 12 is a flowchart showing a processing procedure of the fetch processing unit 116 of the storage control apparatus 110 shown in FIG.
As shown in the figure, the fetch processing unit 116 secures a cache memory area for storing data using the position information table 111 (step S1201), and uses the data transfer instruction message 520 to secure the secured cache memory area. The real disk controller 120 is instructed to transfer data to the cache controller having the area (step S1202). Then, it waits for the completion of data transfer from the real disk control device 120 to the cache control device (step S1203), and receives a data transfer completion message 720 from the real disk control device 120 (step S1204). The position information table 111 is updated for (Step S1205).
Next, the processing procedure of the flash processing unit 117 of the storage control apparatus 110 shown in FIG. 2 will be described. FIG. 13 is a flowchart showing the processing procedure of the flash processing unit 117 of the storage control apparatus 110 shown in FIG.
As shown in the figure, the flush processing unit 117 transmits a message instructing data transfer to the real disk control device 120 to the cache control device storing the data to be transferred to the disk 121. That is, the address of the internal header 511 is used as the address of the real disk control device 120, the command type is “read”, the data access instruction message 510 is transmitted, and data transfer to the real disk control device 120 is instructed (step S1301). .
Then, it waits for the completion of data transfer from the cache control device to the real disk control device 120 (step S1302). When the data transfer completion message 630 is received from the cache control device (step S1303), the cache storing the transferred data is stored. The memory area is released, and the position information table 111 is updated for the released cache memory area (step S1304).
As described above, in the first embodiment, two cache control devices 130 and 140 are provided in the storage system, and the same data is stored in both cache control devices 130 and 140. Even when the cache control device fails, the storage system can be operated using another cache control device, and a highly reliable storage system can be realized.
When the data stored in the disk 121 and the data stored in the cache control devices 130 and 140 are the same (coherent), the cache memory of one of the cache control devices is released and stored in the disk 121. Since the same data is stored in both the cache control devices 130 and 140 only when the stored data and the data stored in the cache control device are different (dirty), the cache memory can be used efficiently, The cache hit rate can be improved.
Embodiment 2. FIG.
In the first embodiment, the case where the reliability of the storage system is improved by duplicating the cache control apparatus has been described. However, in addition to the duplication of the cache control apparatus, the storage control apparatus is also duplexed. Thus, the reliability of the storage system can be further improved. Therefore, in the second embodiment, a storage system in which the storage control device is duplicated in addition to the duplication of the cache control device will be described.
First, the concept of duplication of the storage control device according to the second embodiment will be described. FIG. 14 is an explanatory diagram for explaining the concept of duplication of the storage control apparatus according to the second embodiment. As shown in the figure, this storage system has two storage control devices, a main storage control device and a backup storage control device.
In normal operation, the main storage control device of these two storage control devices functions as a storage control device of the storage system. However, both the main storage control device and the backup storage control device have a location information table, and the main storage control device sends the update information to the backup storage control device every time the location information table is updated. . Then, the backup storage control device that has received this update information updates its own location information table and always keeps the location information table up-to-date.
As described above, in the storage system according to the second embodiment, the main storage control device is always kept in the same state by keeping the position information table of the main storage control device and the position information table of the backup storage control device. Even if a failure occurs, the storage system can be operated using the backup storage control device, and a highly reliable storage system can be realized.
Next, the system configuration of the storage system according to the second embodiment will be described. FIG. 15 is a block diagram showing a system configuration of the storage system according to the second embodiment. Here, for convenience of explanation, functional units that play the same functions as the respective units shown in FIG. 1 are given the same reference numerals, and detailed descriptions thereof are omitted.
As shown in the figure, in this storage system, a main storage control device 1510, a backup storage control device 1520, a real disk control device 120, and two cache control devices 130 and 140 are distributed on a network 40. Be placed.
In the normal operation, the main storage controller 1510 receives an access request from the client 10 via the network 40, and performs processing according to the access request to the real disk controller 120 and the cache controllers 130 and 140. It is a device to be executed. The main storage control device 1510 includes a location information table 1511 and an update information transmission unit 1512.
The location information table 1511 includes the logical location specified by the client 10 for the data that the client 10 requests to access the storage system, the physical location of the disk 121 where the data is actually stored, the physical location of the cache memory, and the data. In other words, the table is stored in association with the distinction of whether the data is coherent or dirty.
The update information transmission unit 1512 is a processing unit that transmits update information to the backup storage control device 1520 each time the location information table 1511 is updated. The location information table 1511 is updated when the data stored in the cache memory by the flush process becomes unnecessary, when a new cache memory is allocated by the fetch process, and when a new cache memory is allocated by the data write process. This is done in some cases.
The backup storage control device 1520 is a device that takes over the processing when the main storage control device 1510 fails, and includes a location information table 1521 and a location information table update unit 1522.
The position information table 1521 is a table that stores the same data as the position information table 1511 included in the main storage control device 1510. The location information table 1521 stores the same data as the location information table 1511, so that when the main storage control device 1510 fails, the backup storage control device 1520 can take over and execute the processing. Become.
The location information table update unit 1522 is a processing unit that receives the update information of the location information table 1511 transmitted by the update information transmission unit 1512 of the main storage control device 1510 and updates the location information table 1521 of the backup storage control device 1520. is there. The location information table update unit 1522 updates the location information table 1521 so that the location information table 1521 can always be kept up-to-date, and when the main storage control device 1510 fails, the processing is performed in the backup system. The storage control device 1520 can take over and execute.
Next, a location information update message that the update information transmission unit 1512 of the main storage control device 1510 transmits to the backup storage control device 1520 as update information will be described. FIG. 16 is a diagram showing an example of the location information update message. As shown in the figure, this location information update message 1610 has a type 1611, logical location information 1612, physical location information 1613, and a status 1614.
The type 1611 indicates the type of update of the position information table, and is either a new allocation (alloc) of the cache memory, a partial release of the redundant cache memory (free), or a full release of the cache memory (free). .
The logical position information 1612, the physical position information 1613, and the state 1614 are information corresponding to the logical position, the physical position, and the state of the position information table, respectively. In other words, the logical position information 1612 is information regarding a logical position that is a data storage position used by the client 10 to access the storage system, and the physical position information 1613 is a data storage position in the disk 121 and the cache memory for storing data. The state 1614 is information indicating whether the data stored in the disk 121 is the same as the data stored in the cache memory.
Next, the processing procedure of the location information table update unit 1522 of the backup storage control device 1520 shown in FIG. 15 will be described. FIG. 17 is a flowchart showing a processing procedure of the location information table update unit 1522 of the backup storage control device 1520 shown in FIG.
As shown in the figure, the location information table update unit 1522 receives a location information update message 1610 transmitted from the update information transmission unit 1512 of the main storage control device 1510 to the backup storage control device 1520 via the network 40. (Step S1701).
Then, the type 1611 included in the location information update message 1610 is checked (step S1702). If the type 1611 is “free”, the information corresponding to the released cache memory area is deleted from the location information table 1521. (Step S1703) If the type 1611 is “free”, the information in the location information table 1521 corresponding to the partially released cache memory area is updated (Step S1704). Also, if the type 1611 of the location information update message 1610 is “alloc”, if the location information table 1521 has information corresponding to the newly allocated cache memory area, the information is updated, and the new If there is no information corresponding to the cache memory area allocated to the location information table 1521, new correspondence information is created and added to the location information table 1521 (step S1705).
As described above, in the second embodiment, the storage control device is duplicated using the main storage control device 1510 and the backup storage control device 1520, and the location information tables 1511 and 1521 are stored in both storage control devices 1510 and 1520. The update information transmission unit 1512 of the main storage control device 1510 transmits a location information update message 1610 to the backup storage control device 1520 each time the location information table 1511 is updated, and the backup storage control device 1520 Since the location information table update unit 1522 immediately updates the location information table 1521, even when the main storage control device 1510 fails, the backup storage control device 1520 does not Taking over can be operated storage system, it is possible to realize a highly reliable storage system.
In the second embodiment, the update information transmitting unit 1512 of the main storage control device 1510 transmits a location information update message 1610 to the backup storage control device 1520, and the backup storage control device 1520 receives the location information update message 1610. However, the backup storage control device 1520 saves the location information update message 1610 as an update log without immediately updating the location information table 1521, and the main system The location information table 1521 can be updated when the storage control device 1510 fails and takes over the processing.
Therefore, a backup storage control device that stores the location information update message 1610 as an update log and updates the location information table 1521 when the main storage control device 1510 fails and takes over the processing will be described.
FIG. 18 is an explanatory diagram for explaining the concept of a modification example of duplication of the storage control apparatus according to the second embodiment. As shown in the figure, in this redundant modification of the storage control device, the main storage control device sends update information to the backup storage control device every time the location information table is updated. Further, the backup storage control apparatus that has received the update information saves the update information as an update log instead of immediately updating the position information table. Then, when the main storage control device fails and takes over the processing, the backup storage control device updates the location information table using the saved update log.
Thus, in this modification, instead of immediately updating the location information table when the backup storage control device receives the update information, the update information is stored as an update log, so the backup storage control device And the backup storage control apparatus can be used effectively for other processes.
Embodiment 3 FIG.
In the first and second embodiments described above, the case where two cache control devices are used has been described. However, the number of cache control devices is sequentially increased in order to avoid a decrease in the cache hit rate due to the increase in the number of disks 121 or the like. It is necessary to increase it. In the third embodiment, a storage system using n cache control devices will be described.
FIG. 19 is a block diagram showing a system configuration of the storage system according to the third embodiment. Here, for convenience of explanation, functional units that play the same functions as the respective units shown in FIG. 1 are given the same reference numerals, and detailed descriptions thereof are omitted.
As shown in the figure, in this storage system, a storage control device 1910, real disk control devices 120 and 1920, and cache control devices 130, 140, and 1930 are distributed on the network 40. Here, for convenience of explanation, two real disk control devices 120 and 1920 and three cache control devices 130, 140, and 1930 are shown, but this storage system includes m real disk control devices and n. Cache controller.
The storage control device 1910 performs control so that two of the n cache control devices store data in a dirty state. That is, in the storage control device 1910, even when one of the n cache control devices fails, the data of the failed cache control device always exists in another cache control device or disk. By controlling the cache control device in this way, an efficient use of cache memory and a highly reliable storage system are realized.
The real disk control device 1920 and the cache control device 1930 are devices newly added to the storage system in order to handle larger-scale data. However, the cache control device 1930 need not store the data M in the dirty state in FIG. 19, for example. The reason is that two cache control devices 130 and 140 store data M, and three or more cache control devices do not need to store the same data.
As described above, in the third embodiment, n cache control devices are provided in the storage system, and for dirty data that is not stored in the disk, two cache control devices among the n cache control devices are used. Since the same data is stored in the control device, the cache memory is used efficiently, and even if one of the n cache control devices fails, the remaining cache control devices The storage system can be operated by using it, and a highly reliable storage system can be realized.
In the third embodiment, the case where the same data is stored in two of the n cache control devices has been described. However, the present invention is not limited to this, and the reliability is further improved. In order to obtain a high storage system, the present invention can be similarly applied to the case where the number of cache control devices storing the same data is increased to three or more. Therefore, the number of cache control devices that store the same data can be determined based on the operating environment of the system, the hit rate of the cache memory, the data access performance, the degree of demand for system reliability, and the like.
Furthermore, the present invention can also be applied to a more flexible storage system by changing the number of cache control devices that store the same data as needed due to changes in the operating environment of the storage system. it can.
In the third embodiment, the case where the same data is stored in any two cache control devices has been described. However, the present invention is not limited to this and is the same for each cache control device. The present invention can be similarly applied to a storage system that defines a cache control device for storing the data and performs backup of each cache control device.
In the first, second, and third embodiments, the storage control device and the cache control device have been described. However, the storage control program and the cache control having the same function can be realized by realizing the configuration of these devices by software. You can get a program. Thus, a computer system that executes these storage control program and cache control program will be described.
FIG. 20 is a diagram illustrating an example of a computer system 2000 that executes a storage control program and a cache control program. As shown in the figure, the computer system 2000 includes an MPU (Micro Processing Unit) 2001, a ROM (Read Only Memory) 2002, a RAM (Random Access Memory) 2003, a NIC (Network Interface Card) 2004, and an input. An output device 2005 and a PC interface 2006 are included.
The MPU 2001 is an arithmetic device that executes a program. Here, the MPU 2001 executes a storage control program and a cache control program stored in the ROM 2002.
The ROM 2002 is a memory that stores a read-only program and data, and stores a storage control program and a cache control program prior to execution of the program.
A RAM 2003 is a memory in which data can be written, and stores temporary data and the like created by the MPU 2001 in accordance with execution of a program. The RAM 2003 stores a position information table.
The NIC 2004 is a device that communicates with a client or the like using a predetermined communication protocol, and executes processing of the network interface unit 113 shown in FIG. 2 and the network interface unit 133 shown in FIG.
The input / output device 2005 is a device such as a keyboard, a mouse, and a display. The keyboard and mouse are used for inputting instructions and data to the computer system 2000, and the display is used for displaying an execution state of the computer.
A PC interface 2006 is an interface with a personal computer used for program development and the like, and is used for loading of a program developed by the personal computer, exchange of debug information with the personal computer, and the like.
As described above, according to the present invention, control is performed so that the data requested by the client to be written is multiplexed and written to a predetermined number of cache devices arranged in the network, and the client performs reading. Controls that the requested data is read from the disk device and stored only in a certain cache device and sent to the client when none of the cache devices on the network has the requested data As a result, it is possible to efficiently use the cache memory, prevent the entire storage system from being stopped due to a failure of one of the cache devices, and build a highly reliable storage system. .

以上のように、本発明に係るストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法およびストレージシステムは、一部の装置が故障した場合にもシステムの稼動を停止することなくサービスを提供する必要がある高信頼性ストレージシステムに適している。  As described above, the storage control device, the storage control program, the storage control method, and the storage system according to the present invention need to provide services without stopping the operation of the system even when some device fails. Suitable for highly reliable storage systems.

【書類名】 明細書
【特許請求の範囲】
【請求項1】 キャッシュ装置およびディスク装置とともにネットワーク上に分散配置されてストレージシステムを形成し、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御装置であって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手段と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手段と、
を備えたことを特徴とするストレージ制御装置。
【請求項】 キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御プログラムであって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手順と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手順と、
をコンピュータで実行することを特徴とするストレージ制御プログラム。
【請求項】 前記書き込み制御手順により前記所定の数のキャッシュ装置に多重化して書き込まれたデータを前記ディスク装置に書き込む際に、該所定の数のキャッシュ装置のうちのあるキャッシュ装置だけが該データを引き続き記憶し、他のキャッシュ装置は該データの記憶領域を開放するように制御するフラッシュ制御手順をさらにコンピュータで実行することを特徴とする請求の範囲第項に記載のストレージ制御プログラム。
【請求項】 前記書き込み制御手順は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの2台のキャッシュ装置に二重化して書き込むように制御することを特徴とする請求の範囲第項または第項に記載のストレージ制御プログラム。
【請求項】 前記書き込み制御手順は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置された全てのキャッシュ装置に多重化して書き込むように制御することを特徴とする請求の範囲第項または第項に記載のストレージ制御プログラム。
【請求項】 前記書き込み制御手順は、前記所定の数のキャッシュ装置に対して、該所定の数を前記データの書き込み完了通知とともに前記クライアントに送信するよう指示することを特徴とする請求の範囲第項または第項に記載のストレージ制御プログラム。
【請求項】 前記クライアントがアクセスを要求するデータの格納領域について、該クライアントが指定する論理的位置と、キャッシュ装置における記憶位置と、ディスク装置における格納位置との対応付けを記憶し、記憶した対応付けに対して更新がおこなわれるごとに、該更新に関する情報を前記ネットワーク上に配置された他のコンピュータで実行されるストレージ制御プログラムに送信する更新情報送信手順をさらにコンピュータで実行することを特徴とする請求の範囲第項または第項に記載のストレージ制御プログラム。
【請求項】 キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御方法であって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御工程と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御工程と、
を含んだことを特徴とするストレージ制御方法。
【発明の詳細な説明】
【0001】
【技術分野】
この発明は、キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関し、特に、個々の装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、もって信頼性の高いストレージシステムを構築することができるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関するものである。
【0002】
【背景技術】
近年、マルチメディアデータの利用などによる処理データ量の急増にともない、ネットワークに接続された大容量ディスクを利用して大規模なデータを統合運用管理するストレージシステムが急速に普及している。このストレージシステムでは、ネットワークのデータ転送速度と比較してディスクのアクセス速度が遅いことから、ディスクのアクセス性能が、システム全体のボトルネックとなっている。このため、ストレージシステムでは、高速アクセスが可能なキャッシュメモリを使用し、ディスクへのアクセス回数を減らすことによって、ディスクのアクセス性能の改善を図っている。
【0003】
通常、キャッシュメモリを用いる場合には、アクセス要求のあったデータがキャッシュメモリに存在する率を示すキャッシュヒット率がシステム性能に大きく影響することから、できるだけ大きなキャッシュメモリを用いる必要がある。しかし、従来のストレージ装置では、ストレージシステム全体の制御、ディスクの制御、キャッシュメモリの制御などを一つの装置として実現しているため、キャッシュメモリの容量を拡張することが容易でなく、ストレージシステムの増強によってディスクの容量が拡張されると、キャッシュメモリの相対的容量が少なくなり、キャッシュヒット率が低下するという事態が発生していた。
【0004】
このようなことから、キャッシュメモリの容量の拡張を容易にするために、ストレージシステム全体の制御、ディスクの制御、キャッシュメモリの制御をそれぞれ別の装置として実現し、これらの装置をネットワークに接続して分散配置した分散型ストレージシステムが利用されるようになった。この分散型ストレージシステムでは、キャッシュメモリおよびその制御だけを独立のキャッシュ装置としているため、キャッシュ装置を追加することによってキャッシュメモリの容量を容易に拡張することができる。
【0005】
しかしながら、この分散型ストレージシステムには、各装置が独立して配置されることから、各装置が別々に故障するという問題点がある。また、各装置が独立にネットワークに接続されるため、各装置を接続する個別ネットワークに故障が発生し、個々の装置が利用できなくなるという問題点がある。
【0006】
すなわち、従来の一体型ストレージ装置では、ストレージ装置全体として故障が発生するため、ストレージ装置全体の故障を考慮したRAID(Redundant Array of Independent Disks)制御などをおこなえば十分であったが、分散型ストレージシステムでは、分散配置された個別の装置ごとに故障を考慮することが必要となっている。
【0007】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、個々の装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、もって信頼性の高いストレージシステムを構築することができるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法を提供することを目的としている。
【0008】
【発明の開示】
上述した課題を解決し、目的を達成するため、本発明は、キャッシュ装置およびディスク装置とともにネットワーク上に分散配置されてストレージシステムを形成し、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御装置であって、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手段と、前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手段と、を備えたことを特徴とする。
【0009】
また、本発明は、キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御プログラムであって、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手順と、前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手順と、をコンピュータで実行することを特徴とする。
【0010】
また、本発明は、キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御方法であって、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御工程と、前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御工程と、を含んだことを特徴とする。
【0011】
かかる発明によれば、クライアントが書き込みを要求したデータをネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御し、クライアントが読み出しを要求したデータをネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、ディスク装置からデータを読み出し、読み出したデータをあるキャッシュ装置だけに記憶させるとともにクライアントに送信するように制御することとしたので、キャッシュメモリを効率よく使用するとともに、いずれかのキャッシュ装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、信頼性の高いストレージシステムを構築することができる。
【0012】
【発明を実施するための最良の形態】
以下、添付図面を参照して、この発明に係るストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法の好適な実施の形態を詳細に説明する。
【0013】
実施の形態1.
まず、本実施の形態1に係るストレージシステムのシステム構成について説明する。第1図は、本実施の形態1に係るストレージシステムのシステム構成を示すブロック図である。同図に示すように、このストレージシステムは、ストレージ制御装置110、実ディスク制御装置120、二重化されたキャッシュ制御装置130および140がネットワーク40上に分散配置されて構成され、ネットワーク40を介してクライアント10〜30から利用される。なお、ここでは説明の便宜上、3台のクライアント10〜30のみを示したが、このストレージシステムは、ネットワーク40を介して任意の台数のクライアントから利用される。また、ここでは、クライアント10がこのストレージシステムを利用する場合について説明するが、他のクライアント20および30も同様にこのストレージシステムを利用することができる。
【0014】
ストレージ制御装置110は、ネットワーク40を介してクライアント10からのアクセス要求を受け付け、実ディスク制御装置120、キャッシュ制御装置130および140に、アクセス要求に応じた処理を実行させる装置である。また、このストレージ制御装置110は、キャッシュ制御装置130および140が有するキャッシュメモリに記憶されるデータを管理する。
【0015】
実ディスク制御装置120は、大容量記憶媒体としてのディスク121を有し、ストレージ制御装置110の指示に基づいてディスク121からのデータの読み出しおよびディスク121へのデータの書き込みをおこなう装置である。なお、ここでは説明の便宜上、1台の実ディスク制御装置120のみを示したが、このストレージシステムでは、格納するデータの規模に応じて、複数の実ディスク制御装置をネットワーク40上に配置することができる。また、1台の実ディスク制御装置には、複数台のディスクを接続することができる。
【0016】
キャッシュ制御装置130および140は、高速アクセス記録媒体としてのキャッシュメモリを有し、ストレージ制御装置110の指示に基づいてキャッシュメモリからのデータの読み出しおよびキャッシュメモリへのデータの書き込みをおこなう装置である。
【0017】
このように、このストレージシステムでは、キャッシュ制御装置を二重化し、同一のデータをキャッシュ制御装置130および140が有するキャッシュメモリに記憶することとしている。ただし、全てのデータを二重化するのではなく、ディスク121に格納されたデータとキャッシュメモリに記憶されたデータが一致する場合、すなわちデータがcoherentな状態にある場合には、そのデータはいずれかのキャッシュメモリのみに記憶され、ディスク121に格納されたデータとキャッシュメモリに記憶されたデータが異なる場合、すなわちデータがdirtyな状態にある場合には、そのデータは両方のキャッシュメモリに記憶される。
【0018】
たとえば、第1図において、データMは、ディスク121上のデータM'が書き換えられたデータであり、dirtyな状態にあるので、キャッシュ制御装置130およびキャッシュ制御装置140が有する二つのキャッシュメモリに記憶されている。また、データNは、同一データがディスク121上に存在するので、キャッシュ制御装置130が有するキャッシュメモリのみに記憶されている。
【0019】
このように、このストレージシステムでは、キャッシュ制御装置を二重化し、同一のデータを二つのキャッシュメモリに記憶することとしたので、キャッシュ制御装置130または140のいずれかが故障した場合にも、他のキャッシュ制御装置を用いてストレージシステムを稼動させることができ、信頼性の高いストレージシステムを実現することができる。また、このストレージシステムでは、ディスク121とキャシュメモリに記憶されたデータが同一である場合には、片方のキャッシュメモリのみにデータを記憶することとしたので、キャッシュメモリを有効に使うことができ、キャッシュヒット率を向上させることができる。
【0020】
次に、第1図に示したストレージ制御装置110の構成について説明する。第2図は、第1図に示したストレージ制御装置110の構成を示す機能ブロック図である。同図に示すように、このストレージ制御装置110は、位置情報テーブル111と、制御部112と、ネットワークインタフェース部113と、データ読み出し処理部114と、データ書き込み処理部115と、Fetch処理部116と、Flush処理部117とを有する。
【0021】
位置情報テーブル111は、クライアント10がストレージシステムにアクセスを要求するデータについて、クライアント10が指定する論理位置と、実際にデータが格納されたディスク121の物理位置およびキャッシュメモリの物理位置と、そのデータの状態(すなわちデータがcoherentであるかdirtyであるかの区別)とを対応させて記憶した表である。
【0022】
第3図は、位置情報テーブル111の一例を示す図である。同図は、論理位置が装置番号0番のストレージの0〜7であるデータは、装置番号0番のディスク121の0〜7および装置番号0番のキャッシュ制御装置130が有するキャッシュメモリの0〜7に記憶され、coherentな状態にあることを示している。また、論理位置が装置番号1番のストレージの8〜15であるデータは、装置番号0番のディスク121の8〜15、装置番号0番のキャッシュ制御装置130が有するキャッシュメモリの8〜15および装置番号1番のキャッシュ制御装置140が有するキャッシュメモリの0〜7に記憶され、dirtyな状態にあることを示している。
【0023】
このように、この位置情報テーブル111が2台のキャッシュ制御装置130および140が有するキャッシュメモリに記憶されているデータの物理位置をそのデータの論理位置と対応させて記憶することにより、ストレージ制御装置110がキャッシュ制御装置の二重化に対応した処理をおこなうことができる。
【0024】
制御部112は、ストレージ制御装置110全体を制御する処理部であり、また、ネットワークインタフェース部113は、所定の通信プロトコルを用いてクライアント10、実ディスク制御装置120、キャッシュ制御装置130および140と通信をおこなう処理部である。
【0025】
データ読み出し処理部114は、クライアント10からのデータ読み出し要求に応答してストレージシステムからデータの読み出しをおこなう処理部であり、位置情報テーブル111を用いてデータの論理位置から物理位置を求め、データがキャッシュメモリに記憶されている場合には、データを記憶したキャシュメモリを有するキャッシュ制御装置に対してクライアント10へのデータ転送を指示する。一方、データがキャッシュメモリに記憶されていない場合には、Fetch処理部116に実ディスク制御装置120からキャッシュ制御装置へのデータ転送を依頼する。そして、実ディスク制御装置120からキャッシュ制御装置にデータが転送された後、データが転送されたキャッシュ制御装置に対してクライアント10へのデータ転送を指示する。
【0026】
データ書き込み処理部115は、クライアント10からのデータ書き込み要求に応答してストレージシステムへのデータの書き込みをおこなう処理部であり、位置情報テーブル111に基づいて必ず両方のキャッシュ制御装置130および140に対してキャッシュメモリへのデータの書き込みを指示する。すなわち、位置情報テーブル111にキャッシュメモリでのデータの記憶位置が登録されている場合には、その記憶位置にデータの書き込みを指示し、位置情報テーブル111にキャッシュメモリでのデータの記憶位置が登録されていない場合には、新たにキャッシュメモリを割り当て、割り当てたキャッシュメモリの位置にデータの書き込みを指示する。
【0027】
このように、このデータ書き込み処理部115が、クライアント10からのデータ書き込み要求に対して、両方のキャッシュメモリに同じデータを書き込むこととしたので、いずれかのキャッシュ制御装置が故障した場合にも、ストレージシステムの稼動停止を防ぐことができ、ストレージシステムの信頼性を向上することができる。
【0028】
Fetch処理部116は、クライアント10から読み出し要求のあったデータがキャッシュメモリに記憶されていない場合に、新たにデータを記憶させるキャッシュ制御装置を選択し、実ディスク制御装置120に対して、選択したキャッシュ制御装置へのデータの転送を指示する処理部である。
【0029】
Flush処理部117は、キャッシュメモリに記憶されたデータのうちdirtyな状態にあるデータをディスク121に書き込む処理部であり、キャッシュメモリにデータを書き込む際に、空領域が不足した場合、あるいは、キャッシュメモリの使用領域が所定の割合を超えた場合に、キャッシュメモリに空領域を作るために使用される。キャッシュメモリに空領域を作る場合に、どのデータをキャッシュメモリから削除するかの選択は、LRU(Least Recently Used)などの手法を用いて決定し、キャッシュメモリから削除することが決定されたデータがdirtyな状態である場合に、このFlush処理部117が使用される。
【0030】
次に、第1図に示したキャッシュ制御装置130および140の構成について説明する。なお、キャシュ制御装置130および140は、同一の構成を有するので、ここでは、キャッシュ制御装置130を例にとって説明する。第4図は、第1図に示したキャッシュ制御装置130の構成を示す機能ブロック図である。同図に示すように、このキャッシュ制御装置130は、キャッシュメモリ131と、制御部132と、ネットワークインタフェース部133と、キャッシュ読み出し処理部134と、キャッシュ書き込み処理部135と、Fetch対応部136と、Flush対応部137とを有する。
【0031】
キャッシュメモリ131は、ストレージシステムへのアクセスを高速化するために、ディスク121に格納されたデータの一部およびディスク121に格納されるデータを記憶した記憶部であり、ディスク121と比較して、アクセス時間が短く、容量が小さいという特徴を有する。このキャッシュメモリ131に記憶されるデータおよびその記憶位置は、ストレージ制御装置110が有する位置情報テーブル111に記憶される。
【0032】
制御部132は、キャッシュ制御装置130全体を制御する処理部であり、また、ネットワークインタフェース部133は、所定の通信プロトコルを用いてクライアント10、ストレージ制御装置110および実ディスク制御装置120と通信をおこなう処理部である。
【0033】
キャッシュ読み出し処理部134は、ストレージ制御装置110からのデータ読み出し指示に基づいてキャッシュメモリ131からデータを読み出し、読み出したデータをクライアント10へ転送する処理部である。
【0034】
キャッシュ書き込み処理部135は、ストレージ制御装置110からのデータ書き込み指示に基づいてクライアント10のバッファからデータを読み出し、読み出したデータをキャッシュメモリ131に書き込む処理部である。また、このキャッシュ書き込み処理部135は、キャッシュメモリ131へのデータの書き込みが完了すると、クライアント10にデータ書き込み完了を通知する。そして、この完了通知は、キャッシュ制御装置の二重化に対応したものとなっており、その詳細については後述する。
【0035】
Fetch対応部136は、ストレージ制御装置110のFetch処理部116の指示に基づいて実ディスク制御装置120がキャッシュ制御装置130に転送するデータをキャッシュメモリ131に書き込む処理部である。
【0036】
Flush対応部137は、ストレージ制御装置110のFlush処理部117の指示に基づいてキャッシュメモリ131からデータを読み出し、実ディスク制御装置120に転送する処理部である。
【0037】
次に、ストレージ制御装置110がキャッシュ制御装置130および140ならびに実ディスク制御装置120に対して処理を指示するために送信するメッセージについて説明する。第5図は、ストレージ制御装置110が送信するメッセージの一例を示す図である。同図(a)は、ストレージ制御装置110がキャッシュ制御装置130および140に送信するキャッシュメモリへのデータアクセス指示メッセージを示し、同図(b)は、ストレージ制御装置110が実ディスク制御装置120に送信するデータ転送指示メッセージを示している。
【0038】
同図(a)に示すように、ストレージ制御装置110がキャッシュ制御装置130および140に送信するキャッシュメモリへのデータアクセス指示メッセージ510は、内部ヘッダ511と、応答ヘッダ512とデータ位置513とを有する。
【0039】
内部ヘッダ511には、キャッシュ制御装置130および140がデータ送受信をおこなうクライアント10または実ディスク制御装置120のアドレスと、キャッシュメモリからのデータ読み出し指示(「読み出し」)であるか、キャッシュメモリへのデータ書き込み指示(「書き込み」)であるかの区別を示すコマンド種別が含まれる。
【0040】
すなわち、データアクセス指示メッセージ510がキャッシュメモリへのデータ書き込み指示である場合には、アドレスはデータ書き込み要求をおこなったクライアント10のアドレスであり、コマンド種別は「書き込み」である。また、データアクセス指示メッセージ510がキャッシュメモリからのデータ読み出し指示である場合には、アドレスはデータ読み出し要求をおこなったクライアント10のアドレスであり、コマンド種別は「読み出し」である。その他、データアクセス指示メッセージ510がキャッシュメモリからディスク121へのデータ転送指示である場合には、アドレスはデータ転送先の実ディスク制御装置120のアドレスであり、コマンド種別は「読み出し」である。
【0041】
応答ヘッダ512は、キャッシュ制御装置130および140がストレージ制御装置110に指示された処理を実行した結果をクライアント10またはストレージ制御装置110へ伝えるためのヘッダフォーマットであり、この応答ヘッダ512には、クライアント10からの要求などを識別するコマンドIDおよび実行が成功したか失敗したかを示す実行結果が含まれる。なお、キャッシュメモリへのデータ書き込みを指示するデータアクセス指示メッセージ510の応答ヘッダ512に含まれるデータについては後述する。
【0042】
データ位置513には、データを記憶するディスク121ならびにキャッシュメモリの物理位置が含まれる。ただし、データがキャッシュメモリに記憶されていない場合には、ディスク121の物理位置だけが含まれる。
【0043】
また、第5図(b)に示すように、ストレージ制御装置110が実ディスク制御装置120に送信するデータ転送指示メッセージ520も、内部ヘッダ521と、応答ヘッダ522とデータ位置523とを有する。
【0044】
内部ヘッダ521には、データの転送先であるキャッシュ制御装置130または140のアドレスと、コマンド種別として「読み出し」が含まれる。応答ヘッダ522は、実ディスク制御装置120がデータ転送の結果(成功または失敗)をストレージ制御装置110に伝えるためのヘッダフォーマットである。また、データ位置523には、転送するデータを格納したディスク121でのデータの位置を指定する物理位置およびデータの書き込み先であるキャッシュメモリでのデータの記憶位置が含まれる。
【0045】
次に、キャッシュ制御装置130および140がストレージ制御装置110からの指示に応答して、クライアント10、ストレージ制御装置110および実ディスク制御装置120に送信するメッセージについて説明する。第6図は、キャッシュ制御装置130および140が送信するメッセージの一例を示す図である。同図(a)は、クライアント10の要求に基づいてキャッシュメモリからのデータの読み出し処理またはキャッシュメモリへのデータの書き込み処理を実行した結果をクライアント10に送信する応答メッセージ610を示し、同図(b)は、Flush処理に基づいてキャッシュメモリのデータを実ディスク制御装置120に転送するデータ転送メッセージ620を示し、同図(c)は、実ディスク制御装置120へのデータの転送が完了した場合に、ストレージ制御装置110に送信するデータ転送完了メッセージを示している。
【0046】
同図(a)に示すように、キャッシュ制御装置130および140がクライアント10に送信する応答メッセージ610は、応答ヘッダ611と応答データ612とを有する。応答ヘッダ611には、クライアント10からの要求を識別するコマンドIDおよび指示された処理の実行結果が含まれる。また、クライアント10からの要求がデータの読み出しである場合には、キャッシュメモリから読み出されたデータが応答データ612となる。一方、クライアントからの要求がデータの書き込みである場合には、応答データ612はない。
【0047】
また、同図(b)に示すように、キャッシュ制御装置130および140が実ディスク制御装置120に送信するデータ転送メッセージ620は、応答ヘッダ621と、データ位置622と、応答データ623とを有する。応答ヘッダ621には、このデータ転送メッセージ620がFlush処理に基づくデータ転送であることを識別するためのコマンドIDが含まれ、データ位置622には、送信するデータのディスク121での書き込み位置を指定する物理位置が含まれ、応答データ623は、キャッシュメモリから読み出され、ディスク121に格納されるFlushデータである。
【0048】
また、同図(c)に示すように、キャッシュ制御装置130および140がストレージ制御装置110に送信するデータ転送完了メッセージ630は、応答ヘッダ631を有する。この応答ヘッダ631には、この応答に対応するストレージ制御装置110からの指示メッセージに含まれたコマンドIDおよび指示された処理の実行結果が含まれる。
【0049】
次に、実ディスク制御装置120がストレージ制御装置110からの指示に応答して、キャッシュ制御装置130および140ならびにストレージ制御装置110に送信するメッセージについて説明する。第7図は、実ディスク制御装置120が送信するメッセージの一例を示す図である。同図(a)は、Fetch処理に基づいて実ディスク制御装置120がディスク121に格納されたデータをキャッシュ制御装置130または140に転送するデータ転送メッセージ710を示し、同図(b)は、キャッシュ制御装置130または140へのデータの転送が完了した場合に、実ディスク制御装置120がストレージ制御装置110に送信するデータ転送完了メッセージ720を示している。
【0050】
同図(a)に示すように、実ディスク制御装置120がキャッシュ制御装置130または140に送信するデータ転送メッセージ710は、応答ヘッダ711と、データ位置712と、応答データ713とを有する。応答ヘッダ711には、このデータ転送メッセージ710がFetch処理に基づくデータ転送であることを識別するためのコマンドIDが含まれ、データ位置712には、転送するデータのキャッシュメモリでの書き込み位置を指定する物理位置が含まれ、応答データ713は、ディスク121から読み出され、キャッシュメモリに書き込まれるFetchデータである。
【0051】
また、同図(b)に示すように、ストレージ制御装置110に送信するデータ転送完了メッセージ720は、応答ヘッダ721を有する。この応答ヘッダ721には、この応答に対応するストレージ制御装置110からの指示メッセージに含まれたコマンドIDおよび指示された処理の実行結果が含まれる。
【0052】
次に、第2図に示したストレージ制御装置110のデータ書き込み処理部115の処理について説明する。第8図は、第2図に示したストレージ制御装置110のデータ書き込み処理部115の処理手順を示すフローチャートである。
【0053】
同図に示すように、このデータ書き込み処理部115は、クライアント10が指定した書き込みデータの論理位置を用いて位置情報テーブル111を検索し(ステップS801)、キャッシュメモリにデータが有りその状態がdirtyであるか、キャッシュメモリにデータが有りその状態がcoherentであるか、またはキャッシュメモリにデータがないかを調べる(ステップS802)。
【0054】
そして、両方のキャッシュメモリにデータが有り、そのデータの状態がdirtyである場合には、両方のキャッシュ制御装置130および140に対して、コマンド種別を「書き込み」としてデータアクセス指示メッセージ510を送信し、クライアント10の指定するデータをキャッシュメモリへ書き込む指示をおこなう(ステップS803)。
【0055】
また、キャッシュメモリのいずれかにデータが有り、そのデータの状態がcoherentである場合には、データのないキャッシュメモリにデータを記憶するための領域を確保し、両方のキャッシュ制御装置130および140に対して、コマンド種別を「書き込み」としてデータアクセス指示メッセージ510を送信する(ステップS806)。そして、新たに確保したキャッシュメモリの領域について位置情報テーブル111を更新する(ステップS807)。
【0056】
また、両方のキャッシュメモリにデータがない場合には、両方のキャッシュメモリにデータを記憶するための領域を確保し(ステップS805)、両方のキャッシュ制御装置130および140に対して、コマンド種別を「書き込み」としてデータアクセス指示メッセージ510を送信する(ステップS806)。そして、新たに確保したキャッシュメモリの領域について位置情報テーブル111を更新する(ステップS807)。
【0057】
このように、このデータ書き込み処理部115が、クライアント10が書き込みを要求したデータを常に両方のキャッシュメモリに書き込むこととしたので、いずれかのキャッシュ制御装置が故障した場合にも、データの消失を防ぐことができる。
【0058】
次に、クライアント10がストレージシステムへのデータ書き込み完了を判定する手法について説明する。このストレージシステムでは、2台のキャッシュ制御装置130および140を使用しており、データの書き込みは、2台のキャッシュ制御装置130および140が有するキャッシュメモリに対しておこなう必要がある。したがって、データの書き込み完了は、両方のキャッシュ制御装置130および140がキャッシュメモリへのデータの書き込みを完了した時点となる。第9図は、クライアント10がストレージシステムへのデータ書き込み完了を判定する手法を説明するための説明図である。
【0059】
同図に示すように、ストレージ制御装置110は、クライアント10からのデータ書き込み要求(コマンドIDを「コマンド1」とする)を受け付けると、両方のキャッシュ制御装置130および140に対して、データアクセス指示メッセージ510を送信する。なお、このデータアクセス指示メッセージ510では、内部ヘッダ511にデータ書き込み要求元であるクライアント10のアドレスおよびコマンド種別である「書き込み」が含まれ、応答ヘッダ512に「コマンド1」への応答は2個であることを指定するデータ(応答1:2個)が含まれ、データ位置513にキャッシュメモリでのデータ書き込み位置であるデータ位置Pおよびデータ位置Qが含まれる。
【0060】
データ書き込みメッセージ510を受信したキャッシュ制御装置130および140は、クライアント10のバッファからデータを読み出し、キャッシュ制御装置130はキャッシュメモリのデータ位置Pに、キャッシュ制御装置140はキャッシュメモリのデータ位置Qにそれぞれデータを書き込む。そして、データの書き込みが完了すると、応答ヘッダ512をもとにして作成した応答メッセージ610をクライアント10へ送信する。この応答メッセージ610には、「コマンド1」への応答は2個であることを指定するデータ(応答1:2個)が含まれる。
【0061】
キャッシュ制御装置130または140からの応答メッセージ610を受信したクライアント10は、「コマンド1」への応答は2個であることを確認し、他のキャッシュ制御装置からの応答メッセージ610を待ち、他のキャッシュ制御装置からの応答メッセージ610を受信すると、ストレージシステムへのデータの書き込みが完了したと判定する。
【0062】
このように、ストレージ制御装置110が応答ヘッダ512を用いて、データの書き込み要求に対する応答メッセージ610が2個であることを指定し、クライアント10がキャッシュ制御装置からの応答メッセージ610の数を数え、応答メッセージ610を2個受信した時点で始めてストレージシステムへのデータの書き込みが完了したと判定することとしたので、2台のキャッシュ制御装置130および140が有するキャッシュメモリに同一のデータが書き込まれることを保障することができる。
【0063】
次に、本実施の形態1に係るキャッシュメモリへのデータ書き込み手順について説明する。第10図は、本実施の形態1に係るキャッシュメモリへのデータ書き込み手順を示すフローチャートである。なお、ここでは、キャッシュ制御装置130がキャッシュ制御装置140より先にキャッシュメモリへのデータの書き込みを完了するものとする。
【0064】
同図に示すように、キャッシュ制御装置130は、ストレージ制御装置110が送信したデータアクセス指示メッセージ510を受信すると(ステップS1001)、クライアント10のバッファからデータを読み込み(ステップS1002)、読み込んだデータをキャッシュメモリに書き込む。キャッシュメモリでのデータの書き込み位置は、データアクセス指示メッセージ510が有するデータ位置513で指定される。そして、キャッシュメモリへのデータの書き込みが完了すると、応答メッセージ610をクライアント10に送信する(ステップS1003)。
【0065】
一方、他のキャッシュ制御装置140も同様に、ストレージ制御装置110が送信したデータアクセス指示メッセージ510を受信し(ステップS1005)、クライアント10のバッファからデータを読み込み(ステップS1006)、読み込んだデータをキャッシュメモリに書き込む。そして、キャッシュメモリへのデータの書き込みが完了すると、応答メッセージ610をクライアント10に送信する(ステップS1007)。
【0066】
また、クライアント10は、まず、キャッシュ制御装置130が送信した応答メッセージ610を受信し(ステップS1004)、応答ヘッダ611を解読して応答メッセージ610を2個受信する必要があることを認識し、次の応答メッセージ610を待つ。そして、キャシュ制御装置140からの応答メッセージ610を受信すると(ステップS1008)、両方のキャッシュ制御装置130および140でデータの書き込み処理が完了したと判定する。
【0067】
なお、ここでは、キャッシュ制御装置130および140がキャッシュメモリへのデータの書き込みを完了すると、クライアント10に応答メッセージ610を送信することとしたが、キャッシュ制御装置130および140は、キャッシュメモリへの書き込みが完了した場合に、クライアント10のかわりにストレージ制御装置110にデータの書き込み完了を通知することもできる。この場合、ストレージ制御装置110は、2台のキャッシュ制御装置130および140にデータ書き込み指示をおこなっているので、指示をおこなったキャッシュ制御装置130および140からのデータ書き込み完了通知を受け取った後に、クライアント10に対してデータ書き込み完了を通知することができる。
【0068】
次に、第2図に示したストレージ制御装置110のデータ読み出し処理部114の処理手順について説明する。第11図は、第2図に示したストレージ制御装置110のデータ読み出し処理部114の処理手順を示すフローチャートである。
【0069】
同図に示すように、このデータ読み出し処理部114は、位置情報テーブル111を用いて、クライアント10が読み出しを要求したデータが0番のキャッシュ制御装置130に有るか否かを調べる(ステップS1101)。そして、0番のキャッシュ制御装置130にデータが有る場合には、0番のキャッシュ制御装置130に対して、コマンド種別を「読み出し」としてデータアクセス指示メッセージ510を送信し(ステップS1102)、キャッシュメモリに記憶されたデータのクライアント10への送信を指示する。
【0070】
一方、クライアント10が読み出しを要求したデータが0番のキャッシュ制御装置130にない場合には、そのデータが1番のキャッシュ制御装置140に有るか否かを調べる(ステップS1103)。また、0番のキャッシュ制御装置130に、クライアント10が読み出しを要求した全てのデータがなかった場合にも、残りのデータが1番のキャッシュ制御装置140に有るか否かを調べる(ステップS1103)。そして、1番のキャッシュ制御装置140に求めるデータが有る場合には、1番のキャッシュ制御装置140に対して、コマンド種別を「読み出し」としてデータアクセス指示メッセージ510を送信し(ステップS1104)、キャッシュメモリに記憶されたデータのクライアント10への送信を指示する。
【0071】
一方、クライアント10が読み出しを要求したデータが1番のキャッシュ制御装置140にない場合には、データがディスク121に有るか否かを調べる(ステップS1105)。また、0番および1番のキャッシュ制御装置140に、クライアント10が読み出しを要求した全てのデータがない場合にも、残りのデータがディスク121に有るか否かを調べる(ステップS1105)。そして、求めるデータがディスク121にある場合には、Fetch処理を用いてディスク121からデータを読み出し、キャッシュメモリに書き込む(ステップS1106)。そして、データを書き込んだキャッシュメモリを有するキャッシュ制御装置に対して、コマンド種別を「読み出し」としてデータアクセス指示メッセージ510を送信し(ステップS1107)、キャッシュメモリに記憶されたデータのクライアント10への送信を指示する。
【0072】
このように、この読み出し処理部114は、クライアント10が読み出しを要求したデータの記憶位置を、位置情報テーブル111を用いて調べ、そのデータが2台のキャッシュ制御装置130および140のいずれかに有る場合には、そのデータをクライアント10に送信するように指示を出すことによって、キャッシュの二重化に対応したデータ読み出しをおこなっている。
【0073】
次に、第2図に示したストレージ制御装置110のFetch処理部116の処理手順について説明する。なお、このFetch処理部116の処理は、第11図に示したFetch処理(ステップS1106)に対応した処理となっている。第12図は、第2図に示したストレージ制御装置110のFetch処理部116の処理手順を示すフローチャートである。
【0074】
同図に示すように、このFetch処理部116は、データを記憶するキャッシュメモリ領域を、位置情報テーブル111を用いて確保し(ステップS1201)、データ転送指示メッセージ520を用いて、確保したキャッシュメモリ領域を有するキャッシュ制御装置へのデータ転送を実ディスク制御装置120に対して指示する(ステップS1202)。そして、実ディスク制御装置120からキャッシュ制御装置へのデータ転送の完了を待ち(ステップS1203)、実ディスク制御装置120からデータ転送完了メッセージ720を受信すると(ステップS1204)、新たに確保したキャッシュメモリ領域について位置情報テーブル111を更新する(ステップS1205)。
【0075】
次に、第2図に示したストレージ制御装置110のFlush処理部117の処理手順について説明する。第13図は、第2図に示したストレージ制御装置110のFlush処理部117の処理手順を示すフローチャートである。
【0076】
同図に示すように、このFlush処理部117は、ディスク121に転送するデータを記憶したキャッシュ制御装置に対して、実ディスク制御装置120へのデータ転送を指示するメッセージを送信する。すなわち、内部ヘッダ511のアドレスを実ディスク制御装置120のアドレスとし、コマンド種別を「読み出し」として、データアクセス指示メッセージ510を送信し、実ディスク制御装置120へのデータ転送を指示する(ステップS1301)。
【0077】
そして、キャッシュ制御装置から実ディスク制御装置120へのデータ転送の完了を待ち(ステップS1302)、キャッシュ制御装置からデータ転送完了メッセージ630を受信すると(ステップS1303)、転送したデータを記憶していたキャッシュメモリ領域を開放し、開放されたキャッシュメモリ領域について位置情報テーブル111を更新する(ステップS1304)。
【0078】
上述したように、本実施の形態1では、ストレージシステムに2台のキャッシュ制御装置130および140を設け、両方のキャッシュ制御装置130および140に同一のデータを記憶することとしたので、いずれかのキャッシュ制御装置が故障した場合にも、他のキャッシュ制御装置を用いてストレージシステムを稼動することができ、信頼性の高いストレージシステムを実現することができる。
【0079】
また、ディスク121に格納されたデータとキャッシュ制御装置130および140に記憶されたデータが同一である(coherent)場合には、いずれかのキャッシュ制御装置のキャッシュメモリを開放し、ディスク121に記憶されたデータとキャッシュ制御装置に記憶されたデータが異なる(dirty)場合にだけ、両方のキャッシュ制御装置130および140に同一データを記憶することとしたので、キャッシュメモリを効率よく使用することができ、キャッシュヒット率を向上することができる。
【0080】
実施の形態2.
ところで、上記実施の形態1では、キャッシュ制御装置を二重化することによって、ストレージシステムの信頼性を向上させる場合について説明したが、キャッシュ制御装置を二重化することに加えて、ストレージ制御装置も二重化することによって、さらにストレージシステムの信頼性を向上させることができる。そこで、本実施の形態2では、キャッシュ制御装置の二重化に加えて、ストレージ制御装置を二重化したストレージシステムについて説明する。
【0081】
まず、本実施の形態2に係るストレージ制御装置の二重化の概念について説明する。第14図は、本実施の形態2に係るストレージ制御装置の二重化の概念について説明するための説明図である。同図に示すように、このストレージシステムは、メイン系ストレージ制御装置とバックアップ系ストレージ制御装置の2台のストレージ制御装置を有する。
【0082】
そして、通常の運用では、これらの2台のストレージ制御装置のうちメイン系ストレージ制御装置がストレージシステムのストレージ制御装置として機能する。ただし、メイン系ストレージ制御装置およびバックアップ系ストレージ制御装置の両方が位置情報テーブルを有し、メイン系ストレージ制御装置は、位置情報テーブルを更新するごとに、その更新情報をバックアップストレージ制御装置に送信する。そして、この更新情報を受信したバックアプ系ストレージ制御装置は、自分が有する位置情報テーブルを更新し、位置情報テーブルを常に最新の状態に保つこととしている。
【0083】
このように、本実施の形態2に係るストレージシステムでは、メイン系ストレージ制御装置が有する位置情報テーブルとバックアップ系ストレージ制御装置が有する位置情報テーブルを常に同じ状態に保つことにより、メイン系ストレージ制御装置が故障した場合にも、バックアップ系ストレージ制御装置を用いてストレージシステムを稼動することができ、信頼性の高いストレージシステムを実現することができる。
【0084】
次に、本実施の形態2に係るストレージシステムのシステム構成について説明する。第15図は、本実施の形態2に係るストレージシステムのシステム構成を示すブロック図である。なお、ここでは説明の便宜上、第1図に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【0085】
同図に示すように、このストレージシステムでは、ネットワーク40上にメイン系ストレージ制御装置1510と、バックアップ系ストレージ制御装置1520と、実ディスク制御装置120と、2台のキャッシュ制御装置130および140が分散配置される。
【0086】
メイン系ストレージ制御装置1510は、通常の運用において、ネットワーク40を介してクライアント10からのアクセス要求を受け付け、実ディスク制御装置120、キャシュ制御装置130および140に対して、アクセス要求に応じた処理を実行させる装置である。このメイン系ストレージ制御装置1510は、位置情報テーブル1511と、更新情報送信部1512とを有する。
【0087】
位置情報テーブル1511は、クライアント10がストレージシステムにアクセスを要求するデータについて、クライアント10が指定する論理位置と、実際にデータが格納されたディスク121の物理位置およびキャッシュメモリの物理位置と、そのデータの状態すなわちデータがcoherentであるかdirtyであるかの区別を対応させて記憶した表である。
【0088】
更新情報送信部1512は、位置情報テーブル1511が更新されるごとに、更新情報をバックアップ系ストレージ制御装置1520に送信する処理部である。位置情報テーブル1511の更新は、Flush処理によってキャッシュメモリに記憶されたデータが不要になった場合、Fetch処理によって新たなキャッシュメモリが割り当てられた場合およびデータ書き込み処理において新たなキャッシュメモリが割り当てられた場合などにおこなわれる。
【0089】
バックアップ系ストレージ制御装置1520は、メイン系ストレージ制御装置1510が故障した場合に、その処理を引き継いで実行する装置であり、位置情報テーブル1521と位置情報テーブル更新部1522とを有する。
【0090】
位置情報テーブル1521は、メイン系ストレージ制御装置1510が有する位置情報テーブル1511と同一のデータを記憶する表である。この位置情報テーブル1521が位置情報テーブル1511と同一のデータを記憶することにより、メイン系ストレージ制御装置1510が故障した場合に、その処理をバックアップ系ストレージ制御装置1520が引き継いで実行することが可能となる。
【0091】
位置情報テーブル更新部1522は、メイン系ストレージ制御装置1510の更新情報送信部1512が送信する位置情報テーブル1511の更新情報を受け取り、バックアップ系ストレージ制御装置1520の位置情報テーブル1521を更新する処理部である。この位置情報テーブル更新部1522が位置情報テーブル1521を更新することによって、位置情報テーブル1521を常に最新の状態に保つことができ、メイン系ストレージ制御装置1510が故障した場合に、その処理をバックアップ系ストレージ制御装置1520が引き継いで実行することを可能としている。
【0092】
次に、メイン系ストレージ制御装置1510の更新情報送信部1512がバックアップ系ストレージ制御装置1520に更新情報として送信する位置情報更新メッセージについて説明する。第16図は、位置情報更新メッセージの一例を示す図である。同図に示すように、この位置情報更新メッセージ1610は、種類1611と、論理位置情報1612と、物理位置情報1613と、状態1614とを有する。
【0093】
種類1611は、位置情報テーブルの更新の種別を示し、キャッシュメモリの新規割当(alloc)、二重化されているキャッシュメモリの一部開放(free1)またはキャッシュメモリの全部開放(free)のいずれかである。
【0094】
また、論理位置情報1612、物理位置情報1613および状態1614は、位置情報テーブルの論理位置、物理位置および状態にそれぞれ対応する情報である。すなわち、論理位置情報1612は、クライアント10がストレージシステムのアクセスに利用するデータ格納位置である論理位置に関する情報であり、物理位置情報1613は、データを記憶するディスク121およびキャッシュメモリでのデータ記憶位置である物理位置に関する情報であり、状態1614は、ディスク121に格納されたデータとキャッシュメモリに記憶されたデータが同一であるか否かを示す情報である。
【0095】
次に、第15図に示したバックアップ系ストレージ制御装置1520の位置情報テーブル更新部1522の処理手順について説明する。第17図は、第15図に示したバックアップ系ストレージ制御装置1520の位置情報テーブル更新部1522の処理手順を示すフローチャートである。
【0096】
同図に示すように、この位置情報テーブル更新部1522は、メイン系ストレージ制御装置1510の更新情報送信部1512がバックアップ系ストレージ制御装置1520に送信する位置情報更新メッセージ1610をネットワ−ク40を介して受け取る(ステップS1701)。
【0097】
そして、この位置情報更新メッセージ1610が有する種類1611を調べ(ステップS1702)、種類1611が「free」である場合には、開放されたキャッシュメモリの領域に対応する情報を位置情報テーブル1521から削除し(ステップS1703)、種類1611が「free1」である場合には、一部開放されたキャッシュメモリの領域に対応する位置情報テーブル1521の情報を更新する(ステップS1704)。また、位置情報更新メッセージ1610の有する種類1611が「alloc」である場合には、新規に割り当てられたキャッシュメモリの領域に対応する情報が位置情報テーブル1521にあれば、その情報を更新し、新規に割り当てられたキャッシュメモリの領域に対応する情報が位置情報テーブル1521になければ、新たな対応情報を作成し、位置情報テーブル1521に追加する(ステップS1705)。
【0098】
上述したように、本実施の形態2では、メイン系ストレージ制御装置1510およびバックアップ系ストレージ制御装置1520を用いてストレージ制御装置を二重化し、両方のストレージ制御装置1510および1520に位置情報テーブル1511および1521を備え、メイン系ストレージ制御装置1510の更新情報送信部1512が位置情報テーブル1511が更新されるごとに、位置情報更新メッセージ1610をバックアップ系ストレージ制御装置1520に送信し、バックアップ系ストレージ制御装置1520の位置情報テーブル更新部1522が位置情報テーブル1521を直ちに更新することとしたので、メイン系ストレージ制御装置1510が故障した場合にも、バックアップ系ストレージ制御装置1520がその処理を引き継いでストレージシステムを稼動させることができ、信頼性の高いストレージシステムを実現することができる。
【0099】
ところで、上記実施の形態2では、メイン系ストレージ制御装置1510の更新情報送信部1512がバックアップ系ストレージ制御装置1520に位置情報更新メッセージ1610を送信し、バックアップ系ストレージ制御装置1520が位置情報更新メッセージ1610を用いて位置情報テーブル1521を直ちに更新する場合について説明したが、バックアップ系ストレージ制御装置1520は、位置情報テーブル1521を直ちに更新することなく、位置情報更新メッセージ1610を更新ログとして保存し、メイン系ストレージ制御装置1510が故障してその処理を引き継いだ時点で位置情報テーブル1521を更新することもできる。
【0100】
そこで、位置情報更新メッセージ1610を更新ログとして保存し、メイン系ストレージ制御装置1510が故障してその処理を引き継いだ時点で位置情報テーブル1521を更新するバックアップ系ストレージ制御装置について説明する。
【0101】
第18図は、本実施の形態2に係るストレージ制御装置の二重化の変形例の概念について説明するための説明図である。同図に示すように、このストレージ制御装置の二重化の変形例では、メイン系ストレージ制御装置は、位置情報テーブルを更新するごとに、更新情報をバックアップ系ストレージ制御装置に送信する。また、更新情報を受信したバックアプ系ストレージ制御装置は、位置情報テーブルを直ちに更新するかわりに、更新情報を更新ログとして保存する。そして、バックアップ系ストレージ制御装置は、メイン系ストレージ制御装置が故障してその処理を引き継いだ時に、保存した更新ログを用いて位置情報テーブルを更新する。
【0102】
このように、この変形例では、バックアップ系ストレージ制御装置が更新情報を受け取った時点で直ちに位置情報テーブルを更新するかわりに、更新情報を更新ログとして保存することとしたので、バックアップ系ストレージ制御装置の処理負荷を低減することができ、バックアップ系ストレージ制御装置を他の処理に有効に使うことができる。
【0103】
実施の形態3.
上記の実施の形態1および2では、2台のキャッシュ制御装置を用いた場合について説明したが、キャッシュ制御装置の台数は、ディスク121の増強などにともなうキャッシュヒット率の低下を避けるために、順次増やしていく必要がある。そこで、本実施の形態3では、n台のキャッシュ制御装置を用いたストレージシステムについて説明する。
【0104】
第19図は、本実施の形態3に係るストレージシステムのシステム構成を示すブロック図である。なお、ここでは説明の便宜上、第1図に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【0105】
同図に示すように、このストレージシステムでは、ネットワーク40上にストレージ制御装置1910と、実ディスク制御装置120および1920と、キャッシュ制御装置130、140および1930が分散配置される。なお、ここでは、説明の便宜上、2台の実ディスク制御装置120および1920ならびに3台のキャッシュ制御装置130、140および1930を示したが、このストレージシステムは、m台の実ディスク制御装置とn台のキャッシュ制御装置とを有する。
【0106】
ストレージ制御装置1910は、dirtyな状態にあるデータをn台のキャッシュ制御装置のうちの2台が記憶するように制御する。すなわち、このストレージ制御装置1910は、n台のキャッシュ制御装置のうち1台のキャッシュ制御装置が故障した場合にも、故障したキャッシュ制御装置のデータは、他のキャッシュ制御装置かディスクに必ず存在するようにキャッシュ制御装置を制御することにより、効率の良いキャッシュメモリの利用と信頼性の高いストレージシステムを実現している。
【0107】
実ディスク制御装置1920およびキャッシュ制御装置1930は、より大規模なデータを扱うために、新たにストレージシステムに追加した装置である。ただし、このキャッシュ制御装置1930は、たとえば、第19図において、dirtyな状態にあるデータMを記憶する必要はない。その理由は、2台のキャッシュ制御装置130および140がデータMを記憶しており、3台以上のキャッシュ制御装置が同一データを記憶する必要はないためである。
【0108】
上述したように、本実施の形態3では、ストレージシステムにn台のキャッシュ制御装置を設け、ディスクに格納されていないdirtyな状態のデータについては、n台のキャッシュ制御装置のうち2台のキャッシュ制御装置に同一データを記憶することとしたので、キャッシュメモリを効率的に使用するとともに、n台のキャッシュ制御装置のうち1台のキャッシュ制御装置が故障した場合にも、残りのキャッシュ制御装置を用いてストレージシステムを稼動することができ、信頼性の高いストレージシステムを実現することができる。
【0109】
なお、上記実施の形態3では、n台のキャッシュ制御装置のうち2台のキャッシュ制御装置に同一データを記憶する場合について説明したが、本発明はこれに限定されるものではなく、さらに信頼性の高いストレージシステムを得るために、同一データを記憶するキャッシュ制御装置の台数を3台以上に増や場合にも同様に適用することができる。したがって、同一のデータを記憶するキャッシュ制御装置の台数は、システムの運用環境、キャッシュメモリのヒット率、データのアクセス性能、システムの信頼性に対する要求度などに基づいて決定することができる。
【0110】
さらに、本発明は、ストレージステムの運用環境の変化などにともなって、同一のデータを記憶するキャッシュ制御装置の台数を随時変更することによって、より柔軟なストレージシステムとする場合にも適用することができる。
【0111】
また、上記実施の形態3では、同一のデータを任意の2台のキャッシュ制御装置に記憶する場合について説明したが、本発明はこれに限定されるものではなく、各キャッシュ制御装置に対して同一のデータを記憶するキャッシュ制御装置を定め、各キャッシュ制御装置のバックアップおこなうストレージシステムにも同様に適用することができる。
【0112】
また、上記実施の形態1、2および3では、ストレージ制御装置およびキャッシュ制御装置について説明したが、これらの装置が有する構成をソフトウェアによって実現することで、同様の機能を有するストレージ制御プログラムおよびキャッシュ制御プログラムを得ることができる。そこで、これらのストレージ制御プログラムおよびキャッシュ制御プログラムを実行するコンピュータシステムについて説明する。
【0113】
第20図は、ストレージ制御プログラムおよびキャッシュ制御プログラムを実行するコンピュータシステム2000の一例を示す図である。同図に示すように、このコンピュータシステム2000は、MPU(Micro Processing Unit)2001と、ROM(Read Only Memory)2002と、RAM(Random Access Memory)2003と、NIC(Network Interface Card)2004と、入出力装置2005と、PCインタフェース2006とを有する。
【0114】
MPU2001は、プログラムを実行する演算装置であり、ここでは、ROM2002に記憶されたストレージ制御プログラムおよびキャッシュ制御プログラムを実行する。
【0115】
ROM2002は、読み出し専用のプログラムおよびデータを記憶したメモリであり、プログラムの実行に先立って、ストレージ制御プログラムおよびキャッシュ制御プログラムを記憶する。
【0116】
RAM2003は、データの書き込みが可能なメモリであり、MPU2001がプログラムの実行にともなって作成する一時的なデータ等を記憶する。また、このRAM2003には、位置情報テーブルが記憶される。
【0117】
NIC2004は、所定の通信プロトコルを用いてクライアント等と通信をおこなう装置であり、第2図に示したネットワークインタフェース部113および第4図に示したネットワークインタフェース部133の処理を実行する。
【0118】
入出力装置2005は、キーボード、マウスおよびディスプレイなどの装置であり、キーボードおよびマウスは、コンピュータシステム2000への指示およびデータの入力に使用され、ディスプレイはコンピュータの実行状態の表示等に使用される。
【0119】
PCインタフェース2006は、プログラムの開発等に使用するパーソナルコンピュータとのインタフェースであり、パーソナルコンピュータで開発したプログラムのローディングや、パーソナルコンピュータとのデバッグ情報の授受などに使用される。
【0120】
以上説明したように、本発明によれば、クライアントが書き込みを要求したデータをネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御し、クライアントが読み出しを要求したデータをネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、ディスク装置からデータを読み出し、読み出したデータをあるキャッシュ装置だけに記憶させるとともにクライアントに送信するように制御することとしたので、キャッシュメモリを効率よく使用するとともに、いずれかのキャッシュ装置の故障に起因するストレージシステム全体の稼動停止を防ぎ、信頼性の高いストレージシステムを構築することができるという効果を奏する。
【0121】
【産業上の利用可能性】
以上のように、本発明に係るストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法およびストレージシステムは、一部の装置が故障した場合にもシステムの稼動を停止することなくサービスを提供する必要がある高信頼性ストレージシステムに適している。
【図面の簡単な説明】
【図1】
第1図は、本実施の形態1に係るストレージシステムのシステム構成を示すブロック図である。
【図2】
第2図は、第1図に示したストレージ制御装置の構成を示す機能ブロック図である。
【図3】
第3図は、位置情報テーブルの一例を示す図である。
【図4】
第4図は、第1図に示したキャッシュ制御装置の構成を示す機能ブロック図である。
【図5】
第5図は、ストレージ制御装置が送信するメッセージの一例を示す図である。
【図6】
第6図は、キャッシュ制御装置が送信するメッセージの一例を示す図である。
【図7】
第7図は、実ディスク制御装置が送信するメッセージの一例を示す図である。
【図8】
第8図は、第2図に示したデータ書き込み処理部の処理手順を示すフローチャートである。
【図9】
第9図は、クライアントがストレージシステムへのデータ書き込み完了を判定する手法を説明するための説明図である。
【図10】
第10図は、本実施の形態1に係るキャッシュメモリへのデータ書き込み処理手順を示すフローチャートである。
【図11】
第11図は、第2図に示したデータ読み出し処理部の処理手順を示すフローチャートである。
【図12】
第12図は、第2図に示したFetch処理部の処理手順を示すフローチャートである。
【図13】
第13図は、第2図に示したFlush処理部の処理手順を示すフローチャートである。
【図14】
第14図は、本実施の形態2に係るストレージ制御装置の二重化の概念を説明するための説明図である。
【図15】
第15図は、本実施の形態2に係るストレージシステムのシステム構成を示すブロック図である。
【図16】
第16図は、位置情報更新メッセージの一例を示す図である。
【図17】
第17図は、第15図に示した位置情報テーブル更新部の処理手順を示すフローチャートである。
【図18】
第18図は、本実施の形態2に係るストレージ制御装置の二重化の変形例を説明するための説明図である。
【図19】
第19図は、本実施の形態3に係るストレージシステムのシステム構成を示すブロック図である。
【図20】
第20図は、ストレージ制御プログラムおよびキャッシュ制御プログラムを実行するコンピュータシステムの一例を示す図である。
[Document Name] Description [Claims]
1. A storage control that is distributed and arranged on a network together with a cache device and a disk device to form a storage system, receives an access request from a client, and causes the cache device and the disk device to execute processing according to the access request A device,
Write control means for controlling the client to write the data requested to be written to a predetermined number of cache devices arranged in the network.
When none of the cache devices arranged in the network has the data requested by the client, the data is read from the disk device, and the read data is stored only in a certain cache device. And read control means for controlling to transmit to the client,
A storage control device comprising:
2. A storage control program used in a storage system in which a cache device and a disk device are distributed on a network, accepting an access request from a client, and causing the cache device and the disk device to execute processing according to the access request Because
A write control procedure for controlling to multiplex and write the data requested by the client to be written to a predetermined number of cache devices arranged in the network;
When none of the cache devices arranged in the network has the data requested by the client, the data is read from the disk device, and the read data is stored only in a certain cache device. And a read control procedure for controlling to transmit to the client,
Is executed by a computer.
3. When writing data that has been multiplexed and written to the predetermined number of cache devices by the write control procedure to the disk device, only a certain cache device of the predetermined number of cache devices is the data storage device. 3. The storage control program according to claim 2, wherein the computer further executes a flash control procedure in which data is continuously stored, and other cache devices are controlled to release the data storage area.
Wherein said write control procedure, characterized in that the client is controlled to write duplicated data requested to write to two cache apparatus of the arrangement cache device to the network The storage control program according to claim 2 or claim 3 .
Wherein said write control procedure, scope second preceding claims, wherein the client is controlled to write and multiplexes all the cache apparatus the requested data is arranged in the network to write Or the storage control program according to item 3 .
Wherein said write control procedure, the claims the for a given number of cache apparatus, characterized in that an instruction to transmit the predetermined number to the client along with the write completion notice of the data The storage control program according to item 2 or item 3 .
7. A storage area of data for which the client requests access is stored by storing a correspondence between a logical position designated by the client, a storage position in a cache device, and a storage location in a disk device. Each time an update is performed on the association, the computer further executes an update information transmission procedure for transmitting information related to the update to a storage control program executed by another computer arranged on the network. The storage control program according to claim 2 or claim 3 .
8. A storage control method used in a storage system in which a cache device and a disk device are distributed on a network, accepting an access request from a client, and causing the cache device and the disk device to execute processing according to the access request Because
A write control step of controlling the client to write the data requested to be written to a predetermined number of cache devices arranged in the network.
When none of the cache devices arranged in the network has the data requested by the client, the data is read from the disk device, and the read data is stored only in a certain cache device. And a read control step for controlling to transmit to the client;
A storage control method comprising:
DETAILED DESCRIPTION OF THE INVENTION
[0001]
【Technical field】
The present invention is used in a storage system in which a cache device and a disk device are distributed on a network, receives a request for access from a client, and causes the cache device and the disk device to execute processing according to the access request. The present invention relates to a control program and a storage control method, and in particular, a storage control device, a storage control program, and a storage control capable of preventing the entire storage system from being stopped due to a failure of an individual device and constructing a highly reliable storage system. It is about the method.
[0002]
[Background]
In recent years, with the rapid increase in the amount of processing data due to the use of multimedia data and the like, storage systems that integrate and manage large-scale data using a large-capacity disk connected to a network are rapidly spreading. In this storage system, the disk access speed is slower than the network data transfer speed, so the disk access performance is the bottleneck of the entire system. For this reason, the storage system uses a cache memory that can be accessed at high speed, and reduces the number of accesses to the disk, thereby improving the access performance of the disk.
[0003]
Normally, when a cache memory is used, the cache hit rate, which indicates the rate at which requested data is present in the cache memory, greatly affects the system performance. Therefore, it is necessary to use as large a cache memory as possible. However, in the conventional storage device, since the entire storage system control, disk control, cache memory control, etc. are realized as one device, it is not easy to expand the capacity of the cache memory. When the capacity of the disk is expanded by the increase, the relative capacity of the cache memory is reduced, and the cache hit rate is reduced.
[0004]
For this reason, in order to facilitate the expansion of the cache memory capacity, the entire storage system control, disk control, and cache memory control are implemented as separate devices, and these devices are connected to the network. Distributed storage systems that have been distributed in a distributed manner have come to be used. In this distributed storage system, since only the cache memory and its control are independent cache devices, the capacity of the cache memory can be easily expanded by adding a cache device.
[0005]
However, this distributed storage system has a problem in that each device fails separately because each device is arranged independently. Further, since each device is independently connected to the network, there is a problem that a failure occurs in the individual network connecting each device, and the individual device cannot be used.
[0006]
That is, in the conventional integrated storage apparatus, a failure occurs in the entire storage apparatus. Therefore, it is sufficient to perform Redundant Array of Independent Disks (RAID) control considering the failure of the entire storage apparatus. In the system, it is necessary to consider a failure for each individual device arranged in a distributed manner.
[0007]
The present invention has been made to solve the above-described problems caused by the prior art, and prevents the entire storage system from being stopped due to a failure of an individual device, thereby constructing a highly reliable storage system. An object of the present invention is to provide a storage control device, a storage control program, and a storage control method.
[0008]
DISCLOSURE OF THE INVENTION
In order to solve the above-described problems and achieve the object, the present invention forms a storage system in a distributed arrangement on a network together with a cache device and a disk device, receives an access request from a client, and receives the cache device and the disk device. A storage control device that executes processing according to an access request, wherein the data requested by the client to be written is multiplexed and written to a predetermined number of cache devices among the cache devices arranged in the network. The write control means for controlling and the data requested to be read by the client when none of the cache devices arranged in the network has the cache device, the data is read from the disk device, and the read data A certain Characterized by comprising a reading control means for controlling to transmit to said client causes only the storage shoe device.
[0009]
In addition, the present invention is used in a storage system in which a cache device and a disk device are distributed on a network, and receives storage access requests from a client and causes the cache devices and disk devices to execute processing according to the access request. A write control procedure for controlling to multiplex and write the data requested by the client to be written to a predetermined number of cache devices arranged in the network; When none of the cache devices arranged in the network has the requested data, the data is read from the disk device, and the read data is stored only in a certain cache device and And executes a read control step of controlling to transmit to the client, with the computer.
[0010]
In addition, the present invention is used in a storage system in which a cache device and a disk device are distributed on a network, and receives storage access requests from a client and causes the cache devices and disk devices to execute processing according to the access request. A write control step for controlling to multiplex and write data requested by the client for writing to a predetermined number of cache devices arranged in the network; When none of the cache devices arranged in the network has the requested data, the data is read from the disk device, the read data is stored only in a certain cache device, and the cluster is stored. Characterized in that it includes a reading control step of controlling to transmit the Ant, the.
[0011]
According to this invention, control is performed so that the data requested by the client to be written is multiplexed and written in a predetermined number of cache devices arranged in the network, and the data requested by the client is read to the network. When there is no cache device among the arranged cache devices, the data is read from the disk device, and the read data is stored only in a certain cache device and controlled to be transmitted to the client. While using the cache memory efficiently, it is possible to prevent the entire storage system from being stopped due to a failure of one of the cache devices and to construct a highly reliable storage system.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
Exemplary embodiments of a storage control device, a storage control program, and a storage control method according to the present invention will be explained below in detail with reference to the accompanying drawings.
[0013]
Embodiment 1 FIG.
First, the system configuration of the storage system according to the first embodiment will be described. FIG. 1 is a block diagram showing a system configuration of the storage system according to the first embodiment. As shown in the figure, this storage system is configured with a storage control device 110, a real disk control device 120, and duplicated cache control devices 130 and 140 distributed on a network 40, and a client via the network 40. 10 to 30 are used. Although only three clients 10 to 30 are shown here for convenience of explanation, this storage system is used by an arbitrary number of clients via the network 40. Although the case where the client 10 uses this storage system will be described here, the other clients 20 and 30 can also use this storage system.
[0014]
The storage control device 110 is a device that accepts an access request from the client 10 via the network 40 and causes the real disk control device 120 and the cache control devices 130 and 140 to execute processing according to the access request. The storage control device 110 manages data stored in the cache memory included in the cache control devices 130 and 140.
[0015]
The real disk control device 120 has a disk 121 as a large-capacity storage medium, and reads data from the disk 121 and writes data to the disk 121 based on instructions from the storage control device 110. Although only one real disk control device 120 is shown here for convenience of explanation, in this storage system, a plurality of real disk control devices are arranged on the network 40 according to the scale of data to be stored. Can do. A plurality of disks can be connected to one real disk control device.
[0016]
The cache control devices 130 and 140 have a cache memory as a high-speed access recording medium, and read data from the cache memory and write data to the cache memory based on instructions from the storage control device 110.
[0017]
Thus, in this storage system, the cache control device is duplicated and the same data is stored in the cache memory of the cache control devices 130 and 140. However, if not all data is duplicated but the data stored in the disk 121 matches the data stored in the cache memory, that is, if the data is in a coherent state, the data is either When the data stored in the cache memory only and the data stored in the disk 121 are different from the data stored in the cache memory, that is, when the data is in a dirty state, the data is stored in both cache memories.
[0018]
For example, in FIG. 1, the data M is data in which the data M ′ on the disk 121 is rewritten and is in a dirty state, and therefore is stored in two cache memories of the cache control device 130 and the cache control device 140. Has been. The data N is stored only in the cache memory of the cache control device 130 because the same data exists on the disk 121.
[0019]
In this way, in this storage system, the cache control device is duplicated and the same data is stored in two cache memories. Therefore, even if one of the cache control devices 130 or 140 fails, the other data The storage system can be operated using the cache control device, and a highly reliable storage system can be realized. Further, in this storage system, when the data stored in the disk 121 and the cache memory are the same, the data is stored only in one cache memory, so that the cache memory can be used effectively. The cache hit rate can be improved.
[0020]
Next, the configuration of the storage control device 110 shown in FIG. 1 will be described. FIG. 2 is a functional block diagram showing the configuration of the storage control device 110 shown in FIG. As shown in the figure, the storage control device 110 includes a location information table 111, a control unit 112, a network interface unit 113, a data read processing unit 114, a data write processing unit 115, and a fetch processing unit 116. , And a flush processing unit 117.
[0021]
The location information table 111 includes a logical location designated by the client 10 for data that the client 10 requests access to the storage system, a physical location of the disk 121 where the data is actually stored, a physical location of the cache memory, and the data. (Ie, whether the data is coherent or dirty) is stored in association with each other.
[0022]
FIG. 3 is a diagram illustrating an example of the position information table 111. In the figure, data whose logical positions are 0 to 7 of the storage with the device number 0 are the 0 to 7 of the disk 121 with the device number 0 and 0 to 0 of the cache memory of the cache control device 130 with the device number 0. 7 indicates a coherent state. Further, the data whose logical positions are 8 to 15 of the storage of the device number 1 are the 8 to 15 of the disk 121 of the device number 0, the cache memories 8 to 15 of the cache control device 130 of the device number 0, and It is stored in 0-7 of the cache memory of the cache control device 140 having the device number 1 and indicates that it is in a dirty state.
[0023]
In this way, the location information table 111 stores the physical position of the data stored in the cache memory included in the two cache control devices 130 and 140 in correspondence with the logical position of the data, so that the storage control device 110 can perform processing corresponding to the duplication of the cache control device.
[0024]
The control unit 112 is a processing unit that controls the entire storage control device 110, and the network interface unit 113 communicates with the client 10, the real disk control device 120, and the cache control devices 130 and 140 using a predetermined communication protocol. It is a processing unit that performs.
[0025]
The data read processing unit 114 is a processing unit that reads data from the storage system in response to a data read request from the client 10, obtains a physical position from the logical position of the data using the position information table 111, and stores the data If it is stored in the cache memory, it instructs the cache control device having the cache memory storing the data to transfer data to the client 10. On the other hand, if the data is not stored in the cache memory, the Fetch processing unit 116 is requested to transfer data from the real disk control device 120 to the cache control device. Then, after the data is transferred from the real disk control device 120 to the cache control device, the cache control device to which the data has been transferred is instructed to transfer data to the client 10.
[0026]
The data write processing unit 115 is a processing unit that writes data to the storage system in response to a data write request from the client 10, and is always provided to both cache control devices 130 and 140 based on the location information table 111. To write data to the cache memory. That is, when the data storage position in the cache memory is registered in the position information table 111, the data write instruction is issued to the storage position, and the data storage position in the cache memory is registered in the position information table 111. If not, a new cache memory is allocated and data writing is instructed to the allocated cache memory position.
[0027]
As described above, since the data write processing unit 115 writes the same data in both cache memories in response to the data write request from the client 10, even when one of the cache control devices fails, The operation stop of the storage system can be prevented, and the reliability of the storage system can be improved.
[0028]
When the data requested to be read from the client 10 is not stored in the cache memory, the fetch processing unit 116 selects a cache control device that newly stores the data and selects the real disk control device 120. A processing unit for instructing transfer of data to the cache control device.
[0029]
The flush processing unit 117 is a processing unit that writes dirty data among data stored in the cache memory to the disk 121. When data is written to the cache memory, an empty area is insufficient, or a cache It is used to create an empty area in the cache memory when the used area of the memory exceeds a predetermined ratio. When creating an empty area in the cache memory, selection of which data is deleted from the cache memory is determined using a technique such as LRU (Least Recently Used), and the data determined to be deleted from the cache memory When the state is dirty, the flush processing unit 117 is used.
[0030]
Next, the configuration of the cache control devices 130 and 140 shown in FIG. 1 will be described. Since the cache control devices 130 and 140 have the same configuration, the cache control device 130 will be described as an example here. FIG. 4 is a functional block diagram showing the configuration of the cache control device 130 shown in FIG. As shown in the figure, the cache control device 130 includes a cache memory 131, a control unit 132, a network interface unit 133, a cache read processing unit 134, a cache write processing unit 135, a fetch correspondence unit 136, And a flush corresponding part 137.
[0031]
The cache memory 131 is a storage unit that stores a part of data stored in the disk 121 and data stored in the disk 121 in order to speed up access to the storage system. It is characterized by short access time and small capacity. The data stored in the cache memory 131 and its storage location are stored in the location information table 111 of the storage control device 110.
[0032]
The control unit 132 is a processing unit that controls the entire cache control device 130, and the network interface unit 133 communicates with the client 10, the storage control device 110, and the real disk control device 120 using a predetermined communication protocol. It is a processing unit.
[0033]
The cache read processing unit 134 is a processing unit that reads data from the cache memory 131 based on a data read instruction from the storage control device 110 and transfers the read data to the client 10.
[0034]
The cache write processing unit 135 is a processing unit that reads data from the buffer of the client 10 based on a data write instruction from the storage control device 110 and writes the read data to the cache memory 131. In addition, when the writing of data to the cache memory 131 is completed, the cache writing processing unit 135 notifies the client 10 of the completion of data writing. This completion notification corresponds to the duplication of the cache control device, and details thereof will be described later.
[0035]
The fetch correspondence unit 136 is a processing unit that writes data to the cache memory 131 that is transferred from the real disk control device 120 to the cache control device 130 based on an instruction from the fetch processing unit 116 of the storage control device 110.
[0036]
The flush corresponding unit 137 is a processing unit that reads data from the cache memory 131 based on an instruction from the flush processing unit 117 of the storage control device 110 and transfers the data to the real disk control device 120.
[0037]
Next, a message that the storage control device 110 transmits to instruct the cache control devices 130 and 140 and the real disk control device 120 to perform processing will be described. FIG. 5 is a diagram showing an example of a message transmitted by the storage control device 110. 2A shows a data access instruction message to the cache memory transmitted from the storage control device 110 to the cache control devices 130 and 140. FIG. 2B shows the storage control device 110 informing the real disk control device 120. A data transfer instruction message to be transmitted is shown.
[0038]
As shown in FIG. 6A, the data access instruction message 510 to the cache memory transmitted from the storage controller 110 to the cache controllers 130 and 140 has an internal header 511, a response header 512, and a data location 513. .
[0039]
The internal header 511 includes an address of the client 10 or the real disk control device 120 to which the cache control devices 130 and 140 perform data transmission / reception, a data read instruction (“read”) from the cache memory, or data to the cache memory A command type indicating whether the instruction is a write instruction (“write”) is included.
[0040]
That is, when the data access instruction message 510 is an instruction to write data to the cache memory, the address is the address of the client 10 that has made a data write request, and the command type is “write”. When the data access instruction message 510 is an instruction to read data from the cache memory, the address is the address of the client 10 that has made a data read request, and the command type is “read”. In addition, when the data access instruction message 510 is an instruction to transfer data from the cache memory to the disk 121, the address is the address of the real disk controller 120 as the data transfer destination, and the command type is “read”.
[0041]
The response header 512 is a header format for transmitting the result of execution of the processing instructed by the storage control device 110 by the cache control devices 130 and 140 to the client 10 or the storage control device 110. The response header 512 includes the response header 512. A command ID for identifying a request from 10 and an execution result indicating whether the execution has succeeded or failed are included. The data included in the response header 512 of the data access instruction message 510 instructing data writing to the cache memory will be described later.
[0042]
The data location 513 includes the physical location of the disk 121 storing data and the cache memory. However, if the data is not stored in the cache memory, only the physical location of the disk 121 is included.
[0043]
As shown in FIG. 5B, the data transfer instruction message 520 transmitted from the storage controller 110 to the real disk controller 120 also has an internal header 521, a response header 522, and a data location 523.
[0044]
The internal header 521 includes the address of the cache control device 130 or 140 that is the data transfer destination and “read” as the command type. The response header 522 is a header format for the real disk control device 120 to transmit the data transfer result (success or failure) to the storage control device 110. The data location 523 includes a physical location that specifies the location of the data on the disk 121 that stores the data to be transferred, and a data storage location in the cache memory that is the data write destination.
[0045]
Next, messages that the cache control devices 130 and 140 transmit to the client 10, the storage control device 110, and the real disk control device 120 in response to instructions from the storage control device 110 will be described. FIG. 6 is a diagram illustrating an example of a message transmitted by the cache control devices 130 and 140. FIG. 11A shows a response message 610 for transmitting the result of executing the data read process from the cache memory or the data write process to the cache memory based on the request of the client 10 to the client 10. b) shows a data transfer message 620 for transferring the data in the cache memory to the real disk control device 120 based on the flush processing, and FIG. 10C shows the case where the data transfer to the real disk control device 120 is completed. Shows a data transfer completion message to be transmitted to the storage controller 110.
[0046]
As shown in FIG. 5A, the response message 610 transmitted from the cache control devices 130 and 140 to the client 10 includes a response header 611 and response data 612. The response header 611 includes a command ID for identifying a request from the client 10 and an execution result of the instructed process. When the request from the client 10 is data read, the data read from the cache memory becomes the response data 612. On the other hand, when the request from the client is data writing, there is no response data 612.
[0047]
As shown in FIG. 5B, the data transfer message 620 transmitted from the cache control devices 130 and 140 to the real disk control device 120 includes a response header 621, a data location 622, and response data 623. The response header 621 includes a command ID for identifying that the data transfer message 620 is data transfer based on the flush process, and the data position 622 specifies the write position on the disk 121 of the data to be transmitted. The response data 623 is flush data that is read from the cache memory and stored in the disk 121.
[0048]
Further, as shown in FIG. 5C, the data transfer completion message 630 transmitted from the cache control apparatuses 130 and 140 to the storage control apparatus 110 has a response header 631. The response header 631 includes the command ID included in the instruction message from the storage controller 110 corresponding to this response and the execution result of the instructed process.
[0049]
Next, a message transmitted from the real disk control device 120 to the cache control devices 130 and 140 and the storage control device 110 in response to an instruction from the storage control device 110 will be described. FIG. 7 is a diagram showing an example of a message transmitted by the real disk control device 120. FIG. 11A shows a data transfer message 710 in which the real disk control device 120 transfers the data stored in the disk 121 to the cache control device 130 or 140 based on the Fetch process, and FIG. A data transfer completion message 720 transmitted from the real disk control device 120 to the storage control device 110 when the data transfer to the control device 130 or 140 is completed is shown.
[0050]
As shown in FIG. 5A, the data transfer message 710 transmitted from the real disk control device 120 to the cache control device 130 or 140 has a response header 711, a data location 712, and response data 713. The response header 711 includes a command ID for identifying that the data transfer message 710 is data transfer based on the Fetch process, and the data position 712 specifies the write position of the data to be transferred in the cache memory. The response data 713 is fetch data that is read from the disk 121 and written to the cache memory.
[0051]
Further, as shown in FIG. 5B, the data transfer completion message 720 transmitted to the storage control device 110 has a response header 721. The response header 721 includes the command ID included in the instruction message from the storage controller 110 corresponding to this response and the execution result of the instructed process.
[0052]
Next, the processing of the data write processing unit 115 of the storage control device 110 shown in FIG. 2 will be described. FIG. 8 is a flowchart showing a processing procedure of the data write processing unit 115 of the storage control apparatus 110 shown in FIG.
[0053]
As shown in the figure, the data write processing unit 115 searches the position information table 111 using the logical position of the write data designated by the client 10 (step S801), and there is data in the cache memory and its state is dirty. Whether there is data in the cache memory and the state is coherent or there is no data in the cache memory (step S802).
[0054]
If both cache memories have data and the status of the data is dirty, a data access instruction message 510 is transmitted to both cache control devices 130 and 140 with the command type “write”. Then, an instruction to write data designated by the client 10 to the cache memory is issued (step S803).
[0055]
If there is data in one of the cache memories and the state of the data is coherent, an area for storing the data is secured in the cache memory having no data, and both cache control devices 130 and 140 are provided. On the other hand, the data access instruction message 510 is transmitted with the command type as “write” (step S806). Then, the location information table 111 is updated for the newly secured cache memory area (step S807).
[0056]
If there is no data in both cache memories, an area for storing data in both cache memories is secured (step S805), and the command type for both cache control devices 130 and 140 is set to “ The data access instruction message 510 is transmitted as “write” (step S806). Then, the location information table 111 is updated for the newly secured cache memory area (step S807).
[0057]
As described above, since the data write processing unit 115 always writes the data requested by the client 10 to both cache memories, even if one of the cache control devices fails, the data is lost. Can be prevented.
[0058]
Next, a method in which the client 10 determines completion of data writing to the storage system will be described. In this storage system, two cache control devices 130 and 140 are used, and it is necessary to write data to the cache memory included in the two cache control devices 130 and 140. Therefore, the completion of data writing is the time when both cache control devices 130 and 140 have completed writing data to the cache memory. FIG. 9 is an explanatory diagram for explaining a method in which the client 10 determines completion of data writing to the storage system.
[0059]
As shown in the figure, when the storage controller 110 receives a data write request from the client 10 (command ID is “command 1”), the storage controller 110 instructs both cache controllers 130 and 140 to access data. A message 510 is transmitted. In this data access instruction message 510, the internal header 511 includes the address of the client 10 that is the data write request source and “write” that is the command type, and the response header 512 includes two responses to “command 1”. The data position 513 includes data position P and data position Q which are data write positions in the cache memory.
[0060]
The cache controllers 130 and 140 having received the data write message 510 read the data from the buffer of the client 10, the cache controller 130 is in the data position P of the cache memory, and the cache controller 140 is in the data position Q of the cache memory. Write data. When the data writing is completed, a response message 610 created based on the response header 512 is transmitted to the client 10. This response message 610 includes data (two responses) specifying that there are two responses to “command 1”.
[0061]
The client 10 that has received the response message 610 from the cache control device 130 or 140 confirms that there are two responses to “command 1”, waits for a response message 610 from another cache control device, When the response message 610 from the cache control device is received, it is determined that the data writing to the storage system is completed.
[0062]
In this way, the storage controller 110 uses the response header 512 to specify that there are two response messages 610 for the data write request, and the client 10 counts the number of response messages 610 from the cache controller, Since it is determined that the writing of data to the storage system is completed only when two response messages 610 are received, the same data is written to the cache memories of the two cache control devices 130 and 140. Can be ensured.
[0063]
Next, a procedure for writing data into the cache memory according to the first embodiment will be described. FIG. 10 is a flowchart showing a procedure for writing data to the cache memory according to the first embodiment. Here, it is assumed that the cache control device 130 completes writing of data to the cache memory before the cache control device 140.
[0064]
As shown in the figure, when the cache control device 130 receives the data access instruction message 510 transmitted from the storage control device 110 (step S1001), the cache control device 130 reads data from the buffer of the client 10 (step S1002), and reads the read data. Write to cache memory. A data write position in the cache memory is designated by a data position 513 included in the data access instruction message 510. When the writing of data to the cache memory is completed, a response message 610 is transmitted to the client 10 (step S1003).
[0065]
On the other hand, the other cache control devices 140 similarly receive the data access instruction message 510 transmitted by the storage control device 110 (step S1005), read the data from the buffer of the client 10 (step S1006), and cache the read data. Write to memory. When the writing of data to the cache memory is completed, a response message 610 is transmitted to the client 10 (step S1007).
[0066]
The client 10 first receives the response message 610 transmitted from the cache control device 130 (step S1004), recognizes that it is necessary to decode the response header 611 and receive two response messages 610, and then The response message 610 is waited for. When the response message 610 from the cache control device 140 is received (step S1008), it is determined that the data write processing is completed in both the cache control devices 130 and 140.
[0067]
In this example, when the cache control devices 130 and 140 complete the writing of data to the cache memory, the response message 610 is transmitted to the client 10. However, the cache control devices 130 and 140 write to the cache memory. Can be notified to the storage controller 110 instead of the client 10 when the data write is completed. In this case, since the storage control device 110 issues a data write instruction to the two cache control devices 130 and 140, the client control unit 110 receives the data write completion notification from the cache control devices 130 and 140 that issued the instruction, and then 10 can be notified of the completion of data writing.
[0068]
Next, the processing procedure of the data read processing unit 114 of the storage control device 110 shown in FIG. 2 will be described. FIG. 11 is a flowchart showing a processing procedure of the data read processing unit 114 of the storage control device 110 shown in FIG.
[0069]
As shown in the figure, the data read processing unit 114 uses the position information table 111 to check whether or not the data requested by the client 10 to be read exists in the 0th cache control device 130 (step S1101). . If there is data in the 0th cache control device 130, a data access instruction message 510 is transmitted to the 0th cache control device 130 with the command type “read” (step S1102), and the cache memory Is instructed to transmit data stored in the client 10 to the client 10.
[0070]
On the other hand, if the data requested by the client 10 to be read is not in the number 0 cache control device 130, it is checked whether or not the data is in the number 1 cache control device 140 (step S1103). Further, even when all the data requested by the client 10 to be read out are not in the 0th cache control device 130, it is checked whether or not the remaining data is in the 1st cache control device 140 (step S1103). . When there is data to be requested from the first cache control device 140, the data access instruction message 510 is transmitted to the first cache control device 140 with the command type “read” (step S1104). An instruction to transmit the data stored in the memory to the client 10 is given.
[0071]
On the other hand, if the data requested by the client 10 is not in the first cache control device 140, it is checked whether or not the data is in the disk 121 (step S1105). Further, even if the 0th and 1st cache control devices 140 do not have all the data that the client 10 requested to read, it is checked whether or not the remaining data exists in the disk 121 (step S1105). If the data to be sought is on the disk 121, the data is read from the disk 121 using the Fetch process and written to the cache memory (step S1106). Then, a data access instruction message 510 is transmitted with the command type “read” to the cache control apparatus having the cache memory in which the data has been written (step S1107), and the data stored in the cache memory is transmitted to the client 10. Instruct.
[0072]
As described above, the read processing unit 114 checks the storage location of the data requested to be read by the client 10 using the location information table 111, and the data is in one of the two cache control devices 130 and 140. In such a case, by issuing an instruction to transmit the data to the client 10, data reading corresponding to the duplication of the cache is performed.
[0073]
Next, the processing procedure of the fetch processing unit 116 of the storage control device 110 shown in FIG. 2 will be described. Note that the process of the fetch processing unit 116 is a process corresponding to the fetch process (step S1106) shown in FIG. FIG. 12 is a flowchart showing a processing procedure of the fetch processing unit 116 of the storage control apparatus 110 shown in FIG.
[0074]
As shown in the figure, the fetch processing unit 116 secures a cache memory area for storing data using the position information table 111 (step S1201), and uses the data transfer instruction message 520 to secure the secured cache memory area. The real disk controller 120 is instructed to transfer data to the cache controller having the area (step S1202). Then, it waits for the completion of data transfer from the real disk control device 120 to the cache control device (step S1203), and receives a data transfer completion message 720 from the real disk control device 120 (step S1204). The position information table 111 is updated for (Step S1205).
[0075]
Next, the processing procedure of the flash processing unit 117 of the storage control apparatus 110 shown in FIG. 2 will be described. FIG. 13 is a flowchart showing the processing procedure of the flash processing unit 117 of the storage control apparatus 110 shown in FIG.
[0076]
As shown in the figure, the flush processing unit 117 transmits a message instructing data transfer to the real disk control device 120 to the cache control device storing the data to be transferred to the disk 121. That is, the address of the internal header 511 is used as the address of the real disk control device 120, the command type is “read”, the data access instruction message 510 is transmitted, and data transfer to the real disk control device 120 is instructed (step S1301). .
[0077]
Then, it waits for the completion of data transfer from the cache control device to the real disk control device 120 (step S1302). When the data transfer completion message 630 is received from the cache control device (step S1303), the cache storing the transferred data is stored. The memory area is released, and the position information table 111 is updated for the released cache memory area (step S1304).
[0078]
As described above, in the first embodiment, two cache control devices 130 and 140 are provided in the storage system, and the same data is stored in both cache control devices 130 and 140. Even when the cache control device fails, the storage system can be operated using another cache control device, and a highly reliable storage system can be realized.
[0079]
If the data stored in the disk 121 and the data stored in the cache control devices 130 and 140 are the same (coherent), the cache memory of one of the cache control devices is released and stored in the disk 121. Since the same data is stored in both cache control devices 130 and 140 only when the stored data and the data stored in the cache control device are different (dirty), the cache memory can be used efficiently, The cache hit rate can be improved.
[0080]
Embodiment 2. FIG.
In the first embodiment, the case where the reliability of the storage system is improved by duplicating the cache control apparatus has been described. However, in addition to the duplication of the cache control apparatus, the storage control apparatus is also duplexed. Thus, the reliability of the storage system can be further improved. Therefore, in the second embodiment, a storage system in which the storage control device is duplicated in addition to the duplication of the cache control device will be described.
[0081]
First, the concept of duplication of the storage control device according to the second embodiment will be described. FIG. 14 is an explanatory diagram for explaining the concept of duplication of the storage control apparatus according to the second embodiment. As shown in the figure, this storage system has two storage control devices, a main storage control device and a backup storage control device.
[0082]
In normal operation, the main storage control device of these two storage control devices functions as a storage control device of the storage system. However, both the main storage control device and the backup storage control device have a location information table, and the main storage control device sends the update information to the backup storage control device every time the location information table is updated. . Then, the backup storage control device that has received this update information updates its own location information table and always keeps the location information table up-to-date.
[0083]
As described above, in the storage system according to the second embodiment, the main storage control device is always kept in the same state by keeping the position information table of the main storage control device and the position information table of the backup storage control device. Even if a failure occurs, the storage system can be operated using the backup storage control device, and a highly reliable storage system can be realized.
[0084]
Next, the system configuration of the storage system according to the second embodiment will be described. FIG. 15 is a block diagram showing a system configuration of the storage system according to the second embodiment. Here, for convenience of explanation, functional units that play the same functions as the respective units shown in FIG. 1 are given the same reference numerals, and detailed descriptions thereof are omitted.
[0085]
As shown in the figure, in this storage system, a main storage control device 1510, a backup storage control device 1520, a real disk control device 120, and two cache control devices 130 and 140 are distributed on a network 40. Be placed.
[0086]
In the normal operation, the main storage controller 1510 receives an access request from the client 10 via the network 40, and performs processing according to the access request to the real disk controller 120 and the cache controllers 130 and 140. It is a device to be executed. The main storage control device 1510 includes a location information table 1511 and an update information transmission unit 1512.
[0087]
The location information table 1511 includes the logical location specified by the client 10 for the data that the client 10 requests to access the storage system, the physical location of the disk 121 where the data is actually stored, the physical location of the cache memory, and the data. This is a table in which the state of data, that is, the distinction of whether the data is coherent or dirty is stored in correspondence.
[0088]
The update information transmission unit 1512 is a processing unit that transmits update information to the backup storage control device 1520 each time the location information table 1511 is updated. The location information table 1511 is updated when the data stored in the cache memory by the flush process becomes unnecessary, when a new cache memory is allocated by the fetch process, and when a new cache memory is allocated by the data write process. This is done in some cases.
[0089]
The backup storage control device 1520 is a device that takes over the processing when the main storage control device 1510 fails, and includes a location information table 1521 and a location information table update unit 1522.
[0090]
The position information table 1521 is a table that stores the same data as the position information table 1511 included in the main storage control device 1510. The location information table 1521 stores the same data as the location information table 1511, so that when the main storage control device 1510 fails, the backup storage control device 1520 can take over and execute the processing. Become.
[0091]
The location information table update unit 1522 is a processing unit that receives the update information of the location information table 1511 transmitted by the update information transmission unit 1512 of the main storage control device 1510 and updates the location information table 1521 of the backup storage control device 1520. is there. The location information table update unit 1522 updates the location information table 1521 so that the location information table 1521 can always be kept up-to-date, and when the main storage control device 1510 fails, the processing is performed in the backup system. The storage control device 1520 can take over and execute.
[0092]
Next, a location information update message that the update information transmission unit 1512 of the main storage control device 1510 transmits to the backup storage control device 1520 as update information will be described. FIG. 16 is a diagram showing an example of the location information update message. As shown in the figure, this location information update message 1610 has a type 1611, logical location information 1612, physical location information 1613, and a status 1614.
[0093]
The type 1611 indicates the type of update of the location information table, and is either new allocation (alloc) of cache memory, partial release of a duplicated cache memory (free1), or full release of a cache memory (free). .
[0094]
The logical position information 1612, the physical position information 1613, and the state 1614 are information corresponding to the logical position, the physical position, and the state of the position information table, respectively. In other words, the logical position information 1612 is information regarding a logical position that is a data storage position used by the client 10 to access the storage system, and the physical position information 1613 is a data storage position in the disk 121 and the cache memory for storing data. The state 1614 is information indicating whether the data stored in the disk 121 is the same as the data stored in the cache memory.
[0095]
Next, the processing procedure of the location information table update unit 1522 of the backup storage control device 1520 shown in FIG. 15 will be described. FIG. 17 is a flowchart showing a processing procedure of the location information table update unit 1522 of the backup storage control device 1520 shown in FIG.
[0096]
As shown in the figure, the location information table update unit 1522 sends a location information update message 1610 transmitted from the update information transmission unit 1512 of the main storage control device 1510 to the backup storage control device 1520 via the network 40. (Step S1701).
[0097]
Then, the type 1611 included in the location information update message 1610 is checked (step S1702). If the type 1611 is “free”, the information corresponding to the released cache memory area is deleted from the location information table 1521. (Step S1703) If the type 1611 is “free1”, the information in the location information table 1521 corresponding to the partially freed cache memory area is updated (Step S1704). If the type 1611 included in the location information update message 1610 is “alloc”, if there is information in the location information table 1521 corresponding to the newly allocated cache memory area, the information is updated. If there is no information corresponding to the cache memory area allocated to the location information table 1521, new correspondence information is created and added to the location information table 1521 (step S1705).
[0098]
As described above, in the second embodiment, the storage control device is duplicated using the main storage control device 1510 and the backup storage control device 1520, and the location information tables 1511 and 1521 are stored in both storage control devices 1510 and 1520. The update information transmission unit 1512 of the main storage control device 1510 transmits a location information update message 1610 to the backup storage control device 1520 each time the location information table 1511 is updated, and the backup storage control device 1520 Since the location information table update unit 1522 immediately updates the location information table 1521, even when the main storage control device 1510 fails, the backup storage control device 1520 does not Taking over can be operated storage system, it is possible to realize a highly reliable storage system.
[0099]
In the second embodiment, the update information transmitting unit 1512 of the main storage control device 1510 transmits a location information update message 1610 to the backup storage control device 1520, and the backup storage control device 1520 receives the location information update message 1610. However, the backup storage control device 1520 saves the location information update message 1610 as an update log without immediately updating the location information table 1521, and the main system The location information table 1521 can be updated when the storage control device 1510 fails and takes over the processing.
[0100]
Therefore, a backup storage control device that stores the location information update message 1610 as an update log and updates the location information table 1521 when the main storage control device 1510 fails and takes over the processing will be described.
[0101]
FIG. 18 is an explanatory diagram for explaining the concept of a modification example of duplication of the storage control apparatus according to the second embodiment. As shown in the figure, in this redundant modification of the storage control device, the main storage control device sends update information to the backup storage control device every time the location information table is updated. Further, the backup storage control apparatus that has received the update information saves the update information as an update log instead of immediately updating the position information table. Then, when the main storage control device fails and takes over the processing, the backup storage control device updates the location information table using the saved update log.
[0102]
Thus, in this modification, instead of immediately updating the location information table when the backup storage control device receives the update information, the update information is stored as an update log, so the backup storage control device And the backup storage control apparatus can be used effectively for other processes.
[0103]
Embodiment 3 FIG.
In the first and second embodiments described above, the case where two cache control devices are used has been described. However, the number of cache control devices is sequentially increased in order to avoid a decrease in the cache hit rate due to the increase in the number of disks 121 or the like. It is necessary to increase it. In the third embodiment, a storage system using n cache control devices will be described.
[0104]
FIG. 19 is a block diagram showing a system configuration of the storage system according to the third embodiment. Here, for convenience of explanation, functional units that play the same functions as the respective units shown in FIG. 1 are given the same reference numerals, and detailed descriptions thereof are omitted.
[0105]
As shown in the figure, in this storage system, a storage control device 1910, real disk control devices 120 and 1920, and cache control devices 130, 140, and 1930 are distributed on the network 40. Here, for convenience of explanation, two real disk control devices 120 and 1920 and three cache control devices 130, 140, and 1930 are shown, but this storage system includes m real disk control devices and n. Cache controller.
[0106]
The storage control device 1910 performs control such that two of the n cache control devices store data in a dirty state. That is, in the storage control device 1910, even when one of the n cache control devices fails, the data of the failed cache control device always exists in another cache control device or disk. By controlling the cache control device in this way, an efficient use of cache memory and a highly reliable storage system are realized.
[0107]
The real disk control device 1920 and the cache control device 1930 are devices newly added to the storage system in order to handle larger-scale data. However, the cache control device 1930 need not store the data M in the dirty state in FIG. 19, for example. The reason is that two cache control devices 130 and 140 store data M, and three or more cache control devices do not need to store the same data.
[0108]
As described above, in the third embodiment, n cache control devices are provided in the storage system, and for the dirty data that is not stored in the disk, two cache control devices among the n cache control devices are used. Since the same data is stored in the control device, the cache memory is used efficiently, and even if one of the n cache control devices fails, the remaining cache control devices The storage system can be operated by using it, and a highly reliable storage system can be realized.
[0109]
In the third embodiment, the case where the same data is stored in two of the n cache control devices has been described. However, the present invention is not limited to this, and the reliability is further improved. In order to obtain a high storage system, the present invention can be similarly applied to the case where the number of cache control devices storing the same data is increased to three or more. Therefore, the number of cache control devices that store the same data can be determined based on the operating environment of the system, the hit rate of the cache memory, the data access performance, the degree of demand for system reliability, and the like.
[0110]
Furthermore, the present invention can also be applied to a more flexible storage system by changing the number of cache control devices that store the same data as needed due to changes in the operating environment of the storage system. it can.
[0111]
In the third embodiment, the case where the same data is stored in any two cache control devices has been described. However, the present invention is not limited to this and is the same for each cache control device. The present invention can be similarly applied to a storage system that defines a cache control device for storing the data and performs backup of each cache control device.
[0112]
In the first, second, and third embodiments, the storage control device and the cache control device have been described. However, the storage control program and the cache control having the same function can be realized by realizing the configuration of these devices by software. You can get a program. Thus, a computer system that executes these storage control program and cache control program will be described.
[0113]
FIG. 20 is a diagram illustrating an example of a computer system 2000 that executes a storage control program and a cache control program. As shown in the figure, the computer system 2000 includes an MPU (Micro Processing Unit) 2001, a ROM (Read Only Memory) 2002, a RAM (Random Access Memory) 2003, a NIC (Network Interface Card) 2004, and an input. An output device 2005 and a PC interface 2006 are included.
[0114]
The MPU 2001 is an arithmetic device that executes a program. Here, the MPU 2001 executes a storage control program and a cache control program stored in the ROM 2002.
[0115]
The ROM 2002 is a memory that stores a read-only program and data, and stores a storage control program and a cache control program prior to execution of the program.
[0116]
A RAM 2003 is a memory in which data can be written, and stores temporary data and the like created by the MPU 2001 in accordance with execution of a program. The RAM 2003 stores a position information table.
[0117]
The NIC 2004 is a device that communicates with a client or the like using a predetermined communication protocol, and executes processing of the network interface unit 113 shown in FIG. 2 and the network interface unit 133 shown in FIG.
[0118]
The input / output device 2005 is a device such as a keyboard, a mouse, and a display. The keyboard and mouse are used for inputting instructions and data to the computer system 2000, and the display is used for displaying an execution state of the computer.
[0119]
A PC interface 2006 is an interface with a personal computer used for program development and the like, and is used for loading of a program developed by the personal computer, exchange of debug information with the personal computer, and the like.
[0120]
As described above, according to the present invention, control is performed so that the data requested by the client to be written is multiplexed and written to a predetermined number of cache devices arranged in the network, and the client performs reading. Controls that the requested data is read from the disk device and stored only in a certain cache device and sent to the client when none of the cache devices on the network has the requested data As a result, it is possible to efficiently use the cache memory, prevent the entire storage system from being stopped due to a failure of one of the cache devices, and build a highly reliable storage system. .
[0121]
[Industrial applicability]
As described above, the storage control device, the storage control program, the storage control method, and the storage system according to the present invention need to provide services without stopping the operation of the system even when some device fails. Suitable for highly reliable storage systems.
[Brief description of the drawings]
[Figure 1]
FIG. 1 is a block diagram showing a system configuration of the storage system according to the first embodiment.
[Figure 2]
FIG. 2 is a functional block diagram showing the configuration of the storage control apparatus shown in FIG.
[Fig. 3]
FIG. 3 is a diagram showing an example of a position information table.
[Fig. 4]
FIG. 4 is a functional block diagram showing the configuration of the cache control device shown in FIG.
[Figure 5]
FIG. 5 is a diagram showing an example of a message transmitted by the storage control apparatus.
[Fig. 6]
FIG. 6 is a diagram showing an example of a message transmitted by the cache control device.
[Fig. 7]
FIG. 7 is a diagram showing an example of a message transmitted by the real disk control device.
[Fig. 8]
FIG. 8 is a flowchart showing a processing procedure of the data write processing unit shown in FIG.
FIG. 9
FIG. 9 is an explanatory diagram for explaining a method in which the client determines completion of data writing to the storage system.
FIG. 10
FIG. 10 is a flowchart showing a data write processing procedure to the cache memory according to the first embodiment.
FIG. 11
FIG. 11 is a flowchart showing a processing procedure of the data read processing unit shown in FIG.
FIG.
FIG. 12 is a flowchart showing a processing procedure of the Fetch processing section shown in FIG.
FIG. 13
FIG. 13 is a flowchart showing a processing procedure of the flush processing unit shown in FIG.
FIG. 14
FIG. 14 is an explanatory diagram for explaining the concept of duplication of the storage control apparatus according to the second embodiment.
FIG. 15
FIG. 15 is a block diagram showing a system configuration of the storage system according to the second embodiment.
FIG. 16
FIG. 16 is a diagram showing an example of the location information update message.
FIG. 17
FIG. 17 is a flowchart showing a processing procedure of the position information table update unit shown in FIG.
FIG. 18
FIG. 18 is an explanatory diagram for explaining a modification of duplication of the storage control apparatus according to the second embodiment.
FIG. 19
FIG. 19 is a block diagram showing a system configuration of the storage system according to the third embodiment.
FIG. 20
FIG. 20 is a diagram illustrating an example of a computer system that executes a storage control program and a cache control program.

Claims (17)

キャッシュ装置およびディスク装置とともにネットワーク上に分散配置されてストレージシステムを形成し、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御装置であって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手段と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手段と、
を備えたことを特徴とするストレージ制御装置。
A storage control device that is distributed and arranged on a network together with a cache device and a disk device to form a storage system, accepts an access request from a client, and causes the cache device and the disk device to execute processing according to the access request,
Write control means for controlling the client to write the data requested to be written to a predetermined number of cache devices arranged in the network.
When none of the cache devices arranged in the network has the data requested by the client, the data is read from the disk device, and the read data is stored only in a certain cache device. And read control means for controlling to transmit to the client,
A storage control device comprising:
前記書き込み制御手段により前記所定の数のキャッシュ装置に多重化して書き込まれたデータを前記ディスク装置に書き込む際に、該所定の数のキャッシュ装置のうちのあるキャッシュ装置だけが該データを引き続き記憶し、他のキャッシュ装置は該データの記憶領域を開放するように制御するフラッシュ制御手段をさらに備えたことを特徴とする請求の範囲第1項に記載のストレージ制御装置。When writing the data multiplexed and written in the predetermined number of cache devices by the write control means to the disk device, only a certain cache device of the predetermined number of cache devices continues to store the data. 2. The storage control apparatus according to claim 1, further comprising a flash control unit for controlling the other cache apparatus to release the data storage area. 前記書き込み制御手段は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの2台のキャッシュ装置に二重化して書き込むように制御することを特徴とする請求の範囲第1項または第2項に記載のストレージ制御装置。2. The write control unit according to claim 1, wherein the write control unit performs control so that data requested by the client to be written is duplicated and written to two of the cache devices arranged in the network. Or the storage control device according to item 2. 前記書き込み制御手段は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置された全てのキャッシュ装置に多重化して書き込むように制御することを特徴とする請求の範囲第1項または第2項に記載のストレージ制御装置。3. The write control unit according to claim 1, wherein the write control unit performs control so that the data requested by the client to be written is multiplexed and written in all the cache devices arranged in the network. The storage control device described. 前記書き込み制御手段は、前記所定の数のキャッシュ装置に対して、該所定の数を前記データの書き込み完了通知とともに前記クライアントに送信するよう指示することを特徴とする請求の範囲第1項または第2項に記載のストレージ制御装置。2. The write control unit according to claim 1, wherein the write control unit instructs the predetermined number of cache devices to transmit the predetermined number together with the data write completion notification to the client. Item 3. The storage control device according to item 2. 前記クライアントがアクセスを要求するデータの格納領域について、該クライアントが指定する論理的位置と、キャッシュ装置における記憶位置と、ディスク装置における格納位置との対応付けを記憶した位置情報記憶手段と、
前記位置情報記憶手段に記憶された対応付けに対して更新がおこなわれるごとに、該更新に関する情報を前記ネットワーク上に配置された他のストレージ制御装置に送信する更新情報送信手段と、
をさらに備えたことを特徴とする請求の範囲第1項または第2項に記載のストレージ制御装置。
A location information storage means for storing a correspondence between a logical location designated by the client, a storage location in the cache device, and a storage location in the disk device with respect to a storage area of data that the client requests access to;
Update information transmitting means for transmitting information relating to the update to another storage control device arranged on the network each time an update is performed on the association stored in the position information storage means;
The storage control device according to claim 1 or 2, further comprising:
キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御プログラムであって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手順と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手順と、
をコンピュータで実行することを特徴とするストレージ制御プログラム。
A storage control program that is used in a storage system in which a cache device and a disk device are distributed on a network, receives an access request from a client, and causes the cache device and the disk device to execute processing according to the access request,
A write control procedure for controlling to multiplex and write the data requested by the client to be written to a predetermined number of cache devices arranged in the network;
When none of the cache devices arranged in the network has the data requested by the client, the data is read from the disk device, and the read data is stored only in a certain cache device. And a read control procedure for controlling to transmit to the client,
Is executed by a computer.
前記書き込み制御手順により前記所定の数のキャッシュ装置に多重化して書き込まれたデータを前記ディスク装置に書き込む際に、該所定の数のキャッシュ装置のうちのあるキャッシュ装置だけが該データを引き続き記憶し、他のキャッシュ装置は該データの記憶領域を開放するように制御するフラッシュ制御手順をさらにコンピュータで実行することを特徴とする請求の範囲第7項に記載のストレージ制御プログラム。When writing the data multiplexed and written in the predetermined number of cache devices by the write control procedure to the disk device, only a certain cache device of the predetermined number of cache devices continuously stores the data. The storage control program according to claim 7, wherein the other cache device further executes a flash control procedure for controlling the data storage area to be released by the computer. 前記書き込み制御手順は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの2台のキャッシュ装置に二重化して書き込むように制御することを特徴とする請求の範囲第7項または第8項に記載のストレージ制御プログラム。8. The write control procedure according to claim 7, wherein the data requested by the client to be written is controlled so as to be duplicated and written in two of the cache devices arranged in the network. Item 9. or storage control program according to item 8. 前記書き込み制御手順は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置された全てのキャッシュ装置に多重化して書き込むように制御することを特徴とする請求の範囲第7項または第8項に記載のストレージ制御プログラム。9. The write control procedure according to claim 7, wherein the write control procedure performs control so that the data requested by the client to be written is multiplexed and written to all the cache devices arranged in the network. The storage control program described. 前記書き込み制御手順は、前記所定の数のキャッシュ装置に対して、該所定の数を前記データの書き込み完了通知とともに前記クライアントに送信するよう指示することを特徴とする請求の範囲第7項または第8項に記載のストレージ制御プログラム。8. The write control procedure according to claim 7, wherein the write control procedure instructs the predetermined number of cache devices to transmit the predetermined number together with the data write completion notification to the client. 9. The storage control program according to item 8. 前記クライアントがアクセスを要求するデータの格納領域について、該クライアントが指定する論理的位置と、キャッシュ装置における記憶位置と、ディスク装置における格納位置との対応付けを記憶し、記憶した対応付けに対して更新がおこなわれるごとに、該更新に関する情報を前記ネットワーク上に配置された他のコンピュータで実行されるストレージ制御プログラムに送信する更新情報送信手順をさらにコンピュータで実行することを特徴とする請求の範囲第7項または第8項に記載のストレージ制御プログラム。For the storage area of the data requested to be accessed by the client, a correspondence between a logical position designated by the client, a storage position in the cache device, and a storage position in the disk device is stored, and the stored correspondence is stored. The update information transmission procedure for transmitting information related to the update to a storage control program executed by another computer arranged on the network each time an update is performed is further executed by the computer. The storage control program according to item 7 or 8. キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御方法であって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御工程と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御工程と、
を含んだことを特徴とするストレージ制御方法。
A storage control method used in a storage system in which a cache device and a disk device are distributed on a network, accepts an access request from a client, and causes the cache device and the disk device to execute processing according to the access request.
A write control step of controlling the client to write the data requested to be written to a predetermined number of cache devices arranged in the network.
When none of the cache devices arranged in the network has the data requested by the client, the data is read from the disk device, and the read data is stored only in a certain cache device. And a read control step for controlling to transmit to the client;
A storage control method comprising:
前記書き込み制御工程により前記所定の数のキャッシュ装置に多重化して書き込まれたデータを前記ディスク装置に書き込む際に、該所定の数のキャッシュ装置のうちのあるキャッシュ装置だけが該データを引き続き記憶し、他のキャッシュ装置は該データの記憶領域を開放するように制御するフラッシュ制御工程をさらに含んだことを特徴とする請求の範囲第13項に記載のストレージ制御方法。When writing the data multiplexed and written in the predetermined number of cache devices by the write control step to the disk device, only one of the predetermined number of cache devices continues to store the data. 14. The storage control method according to claim 13, further comprising a flush control step of controlling the other cache device to release the data storage area. 前記書き込み制御工程は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの2台のキャッシュ装置に二重化して書き込むように制御することを特徴とする請求の範囲第13項または第14項に記載のストレージ制御方法。The write control step controls to write the data requested by the client to be written in duplicate in two of the cache devices arranged in the network. 15. The storage control method according to item 14 or 14. 前記書き込み制御工程は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置された全てのキャッシュ装置に多重化して書き込むように制御することを特徴とする請求の範囲第13項または第14項に記載のストレージ制御方法。15. The write control process according to claim 13, wherein the write control step performs control so that the data requested by the client to be written is multiplexed and written in all the cache devices arranged in the network. The storage control method described. 前記書き込み制御工程は、前記所定の数のキャッシュ装置に対して、該所定の数をデータの書き込み完了通知とともに前記クライアントに送信するよう指示することを特徴とする請求の範囲第13項または第14項に記載のストレージ制御方法。15. The write control step of instructing the predetermined number of cache devices to transmit the predetermined number to the client together with a data write completion notification. The storage control method according to item.
JP2004537520A 2002-09-20 2002-09-20 Storage control device, storage control program, and storage control method Withdrawn JPWO2004027625A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/009670 WO2004027625A1 (en) 2002-09-20 2002-09-20 Storage control apparatus, storage control program, and storage control method

Publications (1)

Publication Number Publication Date
JPWO2004027625A1 true JPWO2004027625A1 (en) 2006-01-19

Family

ID=32012231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004537520A Withdrawn JPWO2004027625A1 (en) 2002-09-20 2002-09-20 Storage control device, storage control program, and storage control method

Country Status (2)

Country Link
JP (1) JPWO2004027625A1 (en)
WO (1) WO2004027625A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009829A (en) 2006-06-30 2008-01-17 Fujitsu Ltd Storage control program, storage control device, and storage control method
JP4480756B2 (en) * 2007-12-05 2010-06-16 富士通株式会社 Storage management device, storage system control device, storage management program, data storage system, and data storage method
US9323463B2 (en) 2014-08-05 2016-04-26 Hitachi, Ltd. Storage system and cache control method
JP6696315B2 (en) * 2016-06-17 2020-05-20 富士通株式会社 Parallel processing device and memory cache control method
JP6898393B2 (en) * 2019-03-22 2021-07-07 株式会社日立製作所 Storage system and data transfer method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887450A (en) * 1994-09-16 1996-04-02 Toshiba Corp Information storage device
JP2000339098A (en) * 1999-03-25 2000-12-08 Dell Usa Lp Storage domain management system
JP2002132455A (en) * 2000-10-25 2002-05-10 Hitachi Ltd Cache manager and computer system including it

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520196A (en) * 1991-07-09 1993-01-29 Mitsubishi Electric Corp Disk cache controller
US6718404B2 (en) * 2000-06-02 2004-04-06 Hewlett-Packard Development Company, L.P. Data migration using parallel, distributed table driven I/O mapping

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887450A (en) * 1994-09-16 1996-04-02 Toshiba Corp Information storage device
JP2000339098A (en) * 1999-03-25 2000-12-08 Dell Usa Lp Storage domain management system
JP2002132455A (en) * 2000-10-25 2002-05-10 Hitachi Ltd Cache manager and computer system including it

Also Published As

Publication number Publication date
WO2004027625A1 (en) 2004-04-01

Similar Documents

Publication Publication Date Title
US20050166086A1 (en) Storage control apparatus, storage control method, and computer product
JP4355674B2 (en) Remote copy method and storage system
US8028139B2 (en) Remote copy method and remote copy system
JP3694273B2 (en) Data processing system having multipath I / O request mechanism
JP4021823B2 (en) Remote copy system and remote copy method
JP4412989B2 (en) Data processing system having a plurality of storage systems
US6862632B1 (en) Dynamic RDF system for transferring initial data between source and destination volume wherein data maybe restored to either volume at same time other data is written
US7707377B2 (en) Remote storage disk control device and method for controlling the same
US7111192B2 (en) Method for operating storage system including a main site and a backup
US7634616B2 (en) Remote disk control apparatus, and remote disk control method
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
JP2005258918A (en) Storage system, and cache memory control method for storage system
CN101571815A (en) Information system and I/O processing method
JP2006331158A (en) Storage system
JP2010271808A (en) Storage device and data copying method
JP2009026091A (en) Connection management program, connection management method, and information processing device
JP4738069B2 (en) Data storage system and method for managing logical paths in a data storage system
JP4719801B2 (en) Device management apparatus, device initialization method, device initialization program, and device system
JPH11338647A (en) Method for generating duplexed data
JPWO2004027625A1 (en) Storage control device, storage control program, and storage control method
JP2000181634A (en) Mirroring device
JP2011238038A (en) Disk array device, disk array device control system, and disk array device control program
JP2003131818A (en) Configuration of raid among clusters in cluster configuring storage
JPH0667811A (en) Multiplexed disk control device
JP3122295B2 (en) Redundant method of magnetic disk controller

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080724

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080822