JPWO2004027625A1 - Storage control device, storage control program, and storage control method - Google Patents
Storage control device, storage control program, and storage control method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
The
The real
The
Thus, in this storage system, the cache control device is duplicated and the same data is stored in the cache memory of the
For example, in FIG. 1, the data M is data in which the data M ′ on the
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
Next, the configuration of the
The location information table 111 includes a logical location designated by the
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
In this way, the location information table 111 stores the physical position of the data stored in the cache memory included in the two
The
The data read
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
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
When the data requested to be read from the
The
Next, the configuration of the
The
The
The cache read processing
The cache write processing unit 135 is a processing unit that reads data from the buffer of the
The fetch
The flush
Next, a message that the
As shown in FIG. 6A, the data
The
That is, when the data
The
The
As shown in FIG. 5B, the data
The
Next, messages that the
As shown in FIG. 5A, the
As shown in FIG. 5B, the
Further, as shown in FIG. 5C, the data
Next, a message transmitted from the real
As shown in FIG. 5A, the
Further, as shown in FIG. 5B, the data
Next, the processing of the data write processing unit 115 of the
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
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
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
As described above, since the data write processing unit 115 always writes the data requested by the
Next, a method in which the
As shown in the figure, when the
The
The
In this way, the
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
As shown in the figure, when the
On the other hand, the other
The
In this example, when the
Next, the processing procedure of the data read
As shown in the figure, the data read
On the other hand, if the data requested by the
On the other hand, if the data requested by the
As described above, the
Next, the processing procedure of the fetch
As shown in the figure, the fetch
Next, the processing procedure of the
As shown in the figure, the
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
As described above, in the first embodiment, two
When the data stored in the
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
In the normal operation, the
The location information table 1511 includes the logical location specified by the
The update
The backup
The position information table 1521 is a table that stores the same data as the position information table 1511 included in the main
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
Next, a location information update message that the update
The
The
Next, the processing procedure of the location information table update unit 1522 of the backup
As shown in the figure, the location information table update unit 1522 receives a location information update message 1610 transmitted from the update
Then, the
As described above, in the second embodiment, the storage control device is duplicated using the main
In the second embodiment, the update
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
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
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
The
The real
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
The
The
A
The
The input /
A
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】 キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御プログラムであって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御手順と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御手順と、
をコンピュータで実行することを特徴とするストレージ制御プログラム。
【請求項3】 前記書き込み制御手順により前記所定の数のキャッシュ装置に多重化して書き込まれたデータを前記ディスク装置に書き込む際に、該所定の数のキャッシュ装置のうちのあるキャッシュ装置だけが該データを引き続き記憶し、他のキャッシュ装置は該データの記憶領域を開放するように制御するフラッシュ制御手順をさらにコンピュータで実行することを特徴とする請求の範囲第2項に記載のストレージ制御プログラム。
【請求項4】 前記書き込み制御手順は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの2台のキャッシュ装置に二重化して書き込むように制御することを特徴とする請求の範囲第2項または第3項に記載のストレージ制御プログラム。
【請求項5】 前記書き込み制御手順は、前記クライアントが書き込みを要求したデータを前記ネットワークに配置された全てのキャッシュ装置に多重化して書き込むように制御することを特徴とする請求の範囲第2項または第3項に記載のストレージ制御プログラム。
【請求項6】 前記書き込み制御手順は、前記所定の数のキャッシュ装置に対して、該所定の数を前記データの書き込み完了通知とともに前記クライアントに送信するよう指示することを特徴とする請求の範囲第2項または第3項に記載のストレージ制御プログラム。
【請求項7】 前記クライアントがアクセスを要求するデータの格納領域について、該クライアントが指定する論理的位置と、キャッシュ装置における記憶位置と、ディスク装置における格納位置との対応付けを記憶し、記憶した対応付けに対して更新がおこなわれるごとに、該更新に関する情報を前記ネットワーク上に配置された他のコンピュータで実行されるストレージ制御プログラムに送信する更新情報送信手順をさらにコンピュータで実行することを特徴とする請求の範囲第2項または第3項に記載のストレージ制御プログラム。
【請求項8】 キャッシュ装置およびディスク装置をネットワーク上に分散配置したストレージシステムで用いられ、クライアントからのアクセス要求を受け付け、該キャッシュ装置およびディスク装置にアクセス要求に応じた処理を実行させるストレージ制御方法であって、
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御工程と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御工程と、
を含んだことを特徴とするストレージ制御方法。
【発明の詳細な説明】
【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
[0014]
The
[0015]
The real
[0016]
The
[0017]
Thus, in this storage system, the cache control device is duplicated and the same data is stored in the cache memory of the
[0018]
For example, in FIG. 1, the data M is data in which the data M ′ on the
[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
[0020]
Next, the configuration of the
[0021]
The location information table 111 includes a logical location designated by the
[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
[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
[0024]
The
[0025]
The data read
[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
[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
[0028]
When the data requested to be read from the
[0029]
The
[0030]
Next, the configuration of the
[0031]
The
[0032]
The
[0033]
The cache read processing
[0034]
The cache write processing unit 135 is a processing unit that reads data from the buffer of the
[0035]
The fetch
[0036]
The flush
[0037]
Next, a message that the
[0038]
As shown in FIG. 6A, the data
[0039]
The
[0040]
That is, when the data
[0041]
The
[0042]
The
[0043]
As shown in FIG. 5B, the data
[0044]
The
[0045]
Next, messages that the
[0046]
As shown in FIG. 5A, the
[0047]
As shown in FIG. 5B, the
[0048]
Further, as shown in FIG. 5C, the data
[0049]
Next, a message transmitted from the real
[0050]
As shown in FIG. 5A, the
[0051]
Further, as shown in FIG. 5B, the data
[0052]
Next, the processing of the data write processing unit 115 of the
[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
[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
[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
[0057]
As described above, since the data write processing unit 115 always writes the data requested by the
[0058]
Next, a method in which the
[0059]
As shown in the figure, when the
[0060]
The
[0061]
The
[0062]
In this way, the
[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
[0064]
As shown in the figure, when the
[0065]
On the other hand, the other
[0066]
The
[0067]
In this example, when the
[0068]
Next, the processing procedure of the data read
[0069]
As shown in the figure, the data read
[0070]
On the other hand, if the data requested by the
[0071]
On the other hand, if the data requested by the
[0072]
As described above, the
[0073]
Next, the processing procedure of the fetch
[0074]
As shown in the figure, the fetch
[0075]
Next, the processing procedure of the
[0076]
As shown in the figure, the
[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
[0078]
As described above, in the first embodiment, two
[0079]
If the data stored in the
[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
[0086]
In the normal operation, the
[0087]
The location information table 1511 includes the logical location specified by the
[0088]
The update
[0089]
The backup
[0090]
The position information table 1521 is a table that stores the same data as the position information table 1511 included in the main
[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
[0092]
Next, a location information update message that the update
[0093]
The
[0094]
The
[0095]
Next, the processing procedure of the location information table update unit 1522 of the backup
[0096]
As shown in the figure, the location information table update unit 1522 sends a location information update message 1610 transmitted from the update
[0097]
Then, the
[0098]
As described above, in the second embodiment, the storage control device is duplicated using the main
[0099]
In the second embodiment, the update
[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
[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
[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
[0106]
The
[0107]
The real
[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
[0114]
The
[0115]
The
[0116]
A
[0117]
The
[0118]
The input /
[0119]
A
[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項または第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.
前記クライアントが書き込みを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちの所定の数のキャッシュ装置に多重化して書き込むように制御する書き込み制御工程と、
前記クライアントが読み出しを要求したデータを前記ネットワークに配置されたキャッシュ装置のうちのいずれのキャッシュ装置も有しない場合に、前記ディスク装置から該データを読み出し、該読み出したデータをあるキャッシュ装置だけに記憶させるとともに前記クライアントに送信するように制御する読み出し制御工程と、
を含んだことを特徴とするストレージ制御方法。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:
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)
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)
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)
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 |
-
2002
- 2002-09-20 JP JP2004537520A patent/JPWO2004027625A1/en not_active Withdrawn
- 2002-09-20 WO PCT/JP2002/009670 patent/WO2004027625A1/en active Application Filing
Patent Citations (3)
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 |