JP2006114064A - Storage subsystem - Google Patents
Storage subsystem Download PDFInfo
- Publication number
- JP2006114064A JP2006114064A JP2005376967A JP2005376967A JP2006114064A JP 2006114064 A JP2006114064 A JP 2006114064A JP 2005376967 A JP2005376967 A JP 2005376967A JP 2005376967 A JP2005376967 A JP 2005376967A JP 2006114064 A JP2006114064 A JP 2006114064A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- storage
- storage subsystem
- host computer
- processor
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、上位装置からの情報の入出力要求を制御する制御装置を有する記憶サブシステムに関し、特に、制御装置内のコントローラ及びキャッシュメモリを冗長構成とする記憶サブシステムに関する。 The present invention relates to a storage subsystem having a control device that controls information input / output requests from a host device, and more particularly to a storage subsystem having a controller and a cache memory in the control device as a redundant configuration.
コントローラ及びディスク等の記憶装置に冗長性を持たせた記憶サブシステムとして、一方の系が現用系として、他方の系が予備系として稼働する2重の系で構成される記憶サブシステムがある。 As a storage subsystem in which storage devices such as a controller and a disk are made redundant, there is a storage subsystem configured by a double system in which one system is used as a working system and the other system is used as a standby system.
特開平4−215142に記載されている記憶サブシステムは、現用系のディスク装置の記憶情報を両系からアクセス可能な共用ディスク装置を介して予備系のディスク装置に複写すること、あるいは、現用系コントローラ障害時は、予備系のコントローラによって、現用系のディスク装置の記憶情報を抽出可能とすることによって、コントローラ及びディスク装置障害時のデータ保全性の向上を計っている。 The storage subsystem described in Japanese Patent Laid-Open No. 4-215142 copies the storage information of the active disk device to the standby disk device via a shared disk device accessible from both systems, or the active system In the event of a controller failure, the storage information of the active disk device can be extracted by the standby controller, thereby improving data integrity when the controller and the disk device fail.
最近の市場動向として、記憶装置の高性能化、大容量化、低価格化の要求が高まっており、RAIDの技術が重視されている。RAIDの技術を適用した記憶サブシステムにおいては、複数のディスク装置をアレイ状に構成する。そして、データ書き込み時には、書き込みデータに加えて冗長データを書き込みデータを格納したディスク装置とは異なるディスク装置へ書き込む。アレイ構成内の任意のディスク装置の故障に対しは、他のディスク装置のデータと前記冗長データから障害ディスク装置上のデータを修復可能とすることによって、ディスク装置のデータの保全性の向上を計っている。 As recent market trends, demands for higher performance, larger capacity, and lower price of storage devices are increasing, and RAID technology is emphasized. In a storage subsystem to which RAID technology is applied, a plurality of disk devices are configured in an array. When data is written, redundant data is written to a disk device different from the disk device storing the write data in addition to the write data. For the failure of any disk unit in the array configuration, the data integrity of the disk unit is improved by making it possible to recover the data on the failed disk unit from the data of other disk units and the redundant data. ing.
しかし、RAIDの技術を適用した記憶サブシステムは、データの保全性が向上する反面、上述した冗長データ生成/書き込みのために処理時間が増大するため、ホストからのI/O処理と同期して冗長データの生成/書き込みまでを行うと、ホストからのライト性能が大幅に劣化する。従って、RAIDの技術を適用した記憶サブシステムのコントローラには、ライトキャッシュが不可欠となっている。 However, in the storage subsystem to which the RAID technology is applied, the data integrity is improved, but the processing time increases due to the above-mentioned redundant data generation / writing, so that it is synchronized with the I / O processing from the host. If redundant data is generated / written, the write performance from the host is greatly degraded. Therefore, a write cache is indispensable for a controller of a storage subsystem to which RAID technology is applied.
ライトキャッシュとは、コントローラ内に搭載された、データを一時的に書き込むキャッシュであり、ホストからのライト要求では、このキャッシュに書き込みを行った時点で、ホストに終了報告を返す。そして、ホストのI/O処理とは非同期に冗長データの生成、ライトデータ及び冗長データのディスク装置への格納を行うことにより書き込み処理時の性能低下を防ぐ。しかし、ライトキャッシュを用いると、データをキャッシュ上に書き込んだ時点でホストに終了報告をするため、キャッシュ上にディスク装置未反映のホストデータが存在する。従って、キャッシュに冗長性がなければ、キャッシュ障害時に、ユーザデータロストとなる。したがって、特にデータの高信頼性が強く求められる記憶サブシステムに用いる制御装置では、従来のコントローラ、記憶装置の冗長構成に加え、一般的にキャッシュにも冗長性を持たせることが行われている。 The write cache is a cache that is mounted in the controller and temporarily writes data. In a write request from the host, an end report is returned to the host when the cache is written. Then, generation of redundant data and storage of write data and redundant data in a disk device are performed asynchronously with host I / O processing, thereby preventing performance degradation during write processing. However, when the write cache is used, since the end report is sent to the host when the data is written on the cache, there is host data that is not reflected in the disk device on the cache. Therefore, if there is no redundancy in the cache, user data is lost when the cache fails. Therefore, in particular, in a control device used in a storage subsystem in which high reliability of data is strongly required, in addition to the conventional redundant configuration of the controller and storage device, the cache is generally made redundant. .
コントローラを多重化した記憶サブシステムにおいて、単にキャッシュを多重化すると、キャッシュ上のデータを複数の制御装置から同時にアクセスすることによるデータ整合性矛盾を防ぐためにキャッシュアクセス時に複数の制御装置からの排他制御が必要になる。そして、コントローラを多重化した記憶サブシステムでは、この排他制御により、シングルコントローラの記憶サブシステムに比べて性能が低下する。 In a storage subsystem with multiple controllers, if the cache is simply multiplexed, exclusive control from multiple controllers during cache access to prevent data consistency inconsistency due to simultaneous access of data on the cache from multiple controllers Is required. In the storage subsystem in which the controllers are multiplexed, the performance is lowered by this exclusive control as compared with the storage subsystem of the single controller.
本発明の目的は、コントローラの多重化及びキャッシュの多重化に伴う、プロセッサ間のキャッシュの排他制御を無くし、性能を落とすことなく信頼性を上げることにある。 An object of the present invention is to eliminate the exclusive control of the cache between the processors accompanying the multiplexing of the controller and the multiplexing of the cache, and to improve the reliability without degrading the performance.
上記の目的を達成するため、本発明による記憶サブシステムは、各プロセッサ毎に処理担当の論理ボリュームを排他的に決める手段と、あるプロセッサが受領したホストコンピュータからの要求が、担当外であった場合は、担当プロセッサに処理要求を通信する手段と、上記通信を受領したプロセッサは、処理結果を要求元プロセッサに通信する手段と、各プロセッサ毎に、ディレクトリ/データセグメント等のキャッシュ構成要素を持つ手段と、上記構成要素の状態をプロセッサの負荷に応じてダイナミックに変更する手段と、ホストコンピュータからのライトデータを複数のコントローラ上のキャッシュへ多重書きする手段と、コントローラ障害時には、障害コントローラ内プロセッサの持つキャッシュ構成要素の制御権を正常系コントローラ内のプロセッサに切り替える手段と、コントローラ復旧時には、該制御権を復旧プロセッサに戻す手段と、ディスク装置への書き込み時にキャッシュメモリ障害が発生した際は、多重書きしている他キャッシュからディスク装置に書き込みを行う手段とを有する。 In order to achieve the above object, in the storage subsystem according to the present invention, the means for exclusively determining the logical volume in charge of processing for each processor and the request from the host computer received by a certain processor are out of charge. In this case, the means for communicating the processing request to the processor in charge, the processor receiving the communication has means for communicating the processing result to the requesting processor, and each processor has a cache component such as a directory / data segment. Means for dynamically changing the state of the component according to the load of the processor, means for multiple writing of write data from the host computer to caches on a plurality of controllers, and a processor in the fault controller in the event of a controller failure The right to control the cache components of Means for switching to the processor in the controller, means for returning the control right to the restoration processor when the controller is restored, and if a cache memory failure occurs when writing to the disk device, the disk device from other caches that have been overwritten And means for writing.
上述した手段により、複数のプロセッサ間で、キャッシュを排他制御することなく複数のコントローラ上のキャッシュへ多重書きを行うことができ、複数プロセッサ化に伴う性能低下の発生を防ぎ、性能を落とすことなく信頼性の向上を計ることができる。 By the means described above, multiple writes can be performed to caches on a plurality of controllers without exclusive control of the caches between a plurality of processors, preventing the occurrence of performance degradation due to the use of multiple processors, and without reducing the performance. Reliability can be improved.
また、上述の手段により、キャッシュメモリ障害時には、多重書きしている他キャッシュからディスク装置への書き込みを行い、データロストを防止できる。
さらに、上記手段により、コントローラ障害時には、自動的に、正常系に切り替えて処理続行が可能であり、また、コントローラ復旧時には、自動的に、復旧系に処理を戻すことが可能となり、システムの無停止運用を実現できる。
Further, by the above-described means, when the cache memory fails, the data can be prevented from being lost by writing to the disk device from another cache in which multiple writing is performed.
Furthermore, by the above means, when the controller fails, it is possible to automatically switch to the normal system and continue the process, and when the controller is restored, the process can be automatically returned to the recovery system. Stop operation can be realized.
本発明によれば、コントローラ及びキャッシュメモリを2重化した記憶サブシステムにおいて、各コントローラにキャッシュメモリの一部及び論理ボリュームを割り当てることによりキャッシュメモリに対するコントローラ内のプロセッサ間の排他制御が無くなるため、複数プロセッサ化による応答性能劣化を防ぐことができる。 According to the present invention, in the storage subsystem in which the controller and the cache memory are duplicated, by allocating a part of the cache memory and the logical volume to each controller, the exclusive control between the processors in the controller with respect to the cache memory is eliminated. It is possible to prevent response performance deterioration due to the use of multiple processors.
また、複数のキャッシュへ多重書きすることにより、キャッシュ障害時には、多重書きしている他キャッシュからディスクに書き込むことができるため、データロストを防ぐことができる。さらに、コントローラ障害時にキャッシュメモリの制御を正常なコントローラに切り替える手段とコントローラ障害から復旧する手段を設けることにより、システムを無停止で運用することができる。 Further, by performing multiple writing to a plurality of caches, data can be prevented from being lost because, in the event of a cache failure, data can be written to the disk from another cache in which multiple writing is performed. Furthermore, by providing means for switching the cache memory control to a normal controller in the event of a controller failure and means for recovering from the controller failure, the system can be operated without interruption.
図1は、本発明の概念図である。 FIG. 1 is a conceptual diagram of the present invention.
図1において、10、11はホストコンピュータ、20はデュアルコントローラ構成をとる制御装置、50はディスク装置であり、ディスク装置50は、論理ボリューム0と論理ボリューム1の2つの論理ボリュームに分割されている。
In FIG. 1, 10 and 11 are host computers, 20 is a control device having a dual controller configuration, 50 is a disk device, and the
ホストA10は、制御装置20内のコントローラA30を介して、論理ボリューム0の処理を行っており、ホストB11は、制御装置20内のコントローラB40を介して、論理ボリューム1の処理を行っている。
The
ここで、コントローラA30には論理ボリューム0が、コントローラB40には論理ボリューム1が処理担当論理ボリュームとして割当てられている。又、コントローラ内のキャッシュの領域は、それぞれ、コントローラA用キャッシュ31、41、コントローラB用キャッシュ32、42に2分割されている。そして、コントローラA用キャッシュ31と41の間で2重書きを行い、又、コントローラB用キャッシュ32と42の間でも2重書きを行う。
Here, the
コントローラA30は、通常、コントローラA用キャッシュ31と41を用いて、I/O処理を行い、同様に、コントローラB40は、コントローラB用キャッシュ32と42を用いて、I/O処理を行う。このように、コントローラ毎に使用するキャッシュ領域を個別に割り当てることにより、コントローラ間の排他制御を無くし、コントローラ台数増加に伴う性能劣化を防ぐことができる。
The
また、コントローラB40障害時には、コントローラB用キャッシュ32、42をコントローラA30が使用することにより、ホストA10からコントローラA30を介して、コントローラB40の処理担当であった論理ボリューム1への処理を続行させることができる。
Further, when the controller B40 fails, the controller A30 uses the
以下、本発明によるマルチコントローラ構成の制御装置の1実施例を図面を用いて説明する。 Hereinafter, an embodiment of a control device having a multi-controller configuration according to the present invention will be described with reference to the drawings.
図2は、本発明をマルチコントローラ構成の磁気ディスクアレイサブシステムに適用した場合の構成図である。 FIG. 2 is a configuration diagram when the present invention is applied to a magnetic disk array subsystem having a multi-controller configuration.
図2において、1000、1100、1200、1300はデータ処理を行う中央処理装置であるホストコンピュータ、2000はマルチコントローラ構成をとりディスク装置の制御を行う制御装置、7000,7100はホストコンピュータのデータを格納するディスク装置である。ここで、制御装置2000は、ホストバスに直結したスロットに差し込みホスト筐体内に組み込む場合もあるし、制御装置として独立した筐体に組み込む場合もあるし、ディスク装置を組み込んだ筐体として実現する場合もある。また、ディスク装置群7000及び7100は、データディスクとパリティディスクからなるパリティグループを含んでいる。さらに、ディスク装置群7000は、論理ボリューム0と論理ボリューム1と
に、ディスク装置群7100は論理ボリューム2と論理ボリューム3とに分割されている。
In FIG. 2,
制御装置2000は、ホストコンピュータ1000、1100とディスク装置7000間のデータ転送を制御するコントローラ3000、4000及びホストコンピュータ1200、1300とディスク装置7100間のデータ転送を制御するコントローラ5000、6000より構成される。
The
コントローラ3000は、ホストコンピュータ1000とのプロトコル制御を行うホストI/F制御部3100、コントローラ全体を制御するマイクロプロセッサ(以下「プロセッサ」という。)3200、データの転送を実行するデータ転送制御部3300、ホストコンピュータ1000とディスク装置7000のデータ転送時及びプロセッサ間通信時に用いられるキャッシュ3400、各ディスク装置7000とのプロトコル制御を行うDRVI/F制御部3500より構成される。コントローラ4000、5000、6000はコントローラ3000と同一の構成である。
The
プロセッサ3200は、後述の手段により、あらかじめプロセッサ毎に排他的に割り当てた担当論理ボリュームの処理を行う。このプロセッサ毎の担当論理ボリュームの指定は、ホストコンピュータから論理ボリューム毎の担当プロセッサ指定コマンドを受け取ることにより、ダイナミックに設定可能である。このプロセッサと担当論理ボリュームとの対応情報は、後述のキャッシュ上の共通メモリ領域3410、4410に格納する。
The
データ転送制御部3300はプロセッサ3200からの指示により、ホストコンピュータ1000からのライトデータを指定キャッシュに多重書きする機能を備えている。この実施例の構成では、キャッシュ3400とキャッシュ4400の間で2重書きを行い、また、キャッシュ5400とキャッシュ6400の間でも2重書きを行う。以下、キャッシュ3400とキャッシュ4400の2面に2重書きする方式について説明する。
The data
キャッシュ3400とキャッシュ4400の内容について図3を用いて説明する。尚キャッシュ3400とキャッシュ4400は内部構成が同一であるため、キャッシュ3400を例に説明する。キャッシュ3400は、プロセッサ間通信に用いる制御情報を格納している共通メモリ領域3410、プロセッサ3200用領域3480、プロセッサ4200用領域3490より構成される。
The contents of the
プロセッサ3200用領域3480は、ホストコンピュータとディスク装置間のデータ転送時、データを1次的に格納するデータ格納エリア3482、データ格納エリア3482を管理するデータ管理情報3481より構成され、データ格納エリア3482に格納するライトデータと、このライトデータの管理情報は、キャッシュ4400内のプロセッサ3200用領域4480に2重書きを行う。同様に、プロセッサ4200用領域3490は、プロセッサ4200により、キャッシュ4400内のプロセッサ4200用領域4490のライトデータとライトデータの管理情報が2重書きされている。
The
共通メモリ領域3410は、論理ボリューム担当プロセッサ情報3420、プロセッサ負荷情報3430、多重書き情報3450、プロセッサ間コミュニケーションメモリ3460より構成され、これらの情報は全て、データ転送制御部3300、4300によって、キャッシュ3400と4400に2重書きされている。
The
図3(c)にプロセッサ間コミュニケーションメモリの構成を示す。プロセッサ間コミュニケーションメモリ3460は、プロセッサ3200、4200、5200、6200毎の書き込み用メモり3461、3462、3463、3464より構成される。図3(d)にプロセッサ書き込み用メモリの構成を示す。プロセッサ3200書き込み用メモリ3461は、自プロセッサ以外のプロセッサ4200、5200、6200への要求用エリア3471、3472、3473と自プロセッサ以外のプロセッサ4200、5200、6200からの要求に対する応答用エリア3474、3475、3476より構成される。プロセッサ4200、5200、6200書き込み用メモリ3462、3463、3464の内部構成は、プロセッサ3200書き込み用メモリ3461と同一構成である。
FIG. 3C shows the configuration of the interprocessor communication memory. The inter-processor communication memory 3460 includes write
キャッシュ5400とキャッシュ6400との間も、共通メモリ領域を除いて、キャッシュ3400とキャッシュ4400との間と同様に2重化が行われている。共通メモリ領域は、キャッシュ3400、4400に2重書きされている情報を制御装置内の全プロセッサで共有するため、キャッシュ5400、6400には存在しない。
Duplication is performed between the
本発明を実施する制御装置では、コントローラの増設はコントローラ2台単位で行い、対になったコントローラのキャッシュ間のみで2重書きを行うとともに、ドライブ側のデータバスについても、それぞれのディスク装置は対になったコントローラにのみ接続することによりハードウェア構成を簡略化し、ドライブ側データバス上の競合を回避することが可能となる。 In the control apparatus embodying the present invention, the number of controllers is increased in units of two controllers, and the dual writing is performed only between the caches of the paired controllers, and each disk device is also used for the data bus on the drive side. By connecting only to the paired controllers, the hardware configuration can be simplified, and contention on the drive-side data bus can be avoided.
次に本実施例における、磁気ディスクサブシステムでの、ホストコンピュータ1000からのI/O処理について図4、図5、図6を用いて説明する。まず最初に、プロセッサ3200担当論理ボリュームへのI/O処理について説明する。
図4は、ホストからのI/O処理を示すフローチャートである。ホストコンピュータ1000からの書き込み要求時、プロセッサ3200は、まず、共通メモリ領域3410内の論理ボリューム担当プロセッサ情報3420によって、処理要求論理ボリュームの担当プロセッサ情報を取得し、自処理担当論理ボリューム(LUN)への処理かの判定を行い(ステップ902)、自プロセッサ処理担当論理ボリュームへの処理であることを認識する。次に、処理種別の判定を行い(ステップ903)、書き込み処理であることを認識する。ホストI/F制御部3100により、書き込み論理データを受領し、データ転送制御部3300によってキャッシュ3400のコントローラ3000用領域3480とキャッシュ4400のコントローラ3000用領域4480とにその管理情報とともに2重に格納する(ステップ904)。そして、この時点でホストコンピュータ1000に終了を報告する(ステップ905)。
Next, I / O processing from the host computer 1000 in the magnetic disk subsystem in this embodiment will be described with reference to FIGS. 4, 5, and 6. FIG. First, I / O processing to the logical volume in charge of the
FIG. 4 is a flowchart showing I / O processing from the host. At the time of a write request from the host computer 1000, the
図5は、キャッシュ内のデータをディスク装置に格納する処理を示すフローチャートである。プロセッサ3200は、ホストコンピュータ1000からのI/O処理とは非同期にプロセッサ3200用領域3480上のライトデータをデータ転送制御部3300とDRV I/F制御部3500によりディスク装置群7000に格納する(ステップ922)。この際、キャッシュのメモリ障害により読み込みエラーが発生した場合(ステップ923)は、2重化しているプロセッサ3200用領域4480からディスク装置7000へ格納する(ステップ924)ことによりデータ損失を防止することができる。
FIG. 5 is a flowchart showing processing for storing data in the cache in the disk device. The
ホストコンピュータ1000からの読み込み要求時は、プロセッサ3200は、上記書き込み処理同様、自プロセッサ処理担当論理ボリューム(LUN)への処理であることを認識(ステップ902)した後、処理種別の判定を行う(ステップ903)。I/O処理が読み込み処理であることを認識すると、データ転送制御部3300とDRV I/F制御部3500によりデータをディスク装置群7000からキャッシュ3400のコントローラ3000用領域3480に格納し(ステップ906)、ホストコンピュータに転送する(ステップ907)。
At the time of a read request from the host computer 1000, the
次にホストコンピュータ1000からコントローラ4000担当論理ボリュームへのI/O処理について説明する。 Next, I / O processing from the host computer 1000 to the logical volume in charge of the controller 4000 will be described.
ホストコンピュータ1000からの書き込み要求時、プロセッサ3200は、まず、共通メモリ領域3410内の論理ボリューム担当プロセッサ情報3420によって、処理要求論理ボリュームの担当プロセッサ情報を取得し、自処理担当論理ボリュームへの処理かの判定を行い(ステップ902)、処理担当外論理ボリュームへの処理であることを認識する。次に、処理種別の判定を行い(ステップ908)、書き込み処理であることを認識する。そして、ホストコンピュータ1000からの書き込み論理データをキャッシュメモリのコントローラ3000用領域3480に格納し、書き込み処理をこの論理ボリュームの担当であるコントローラ4000へ要求する(ステップ909)。
At the time of a write request from the host computer 1000, the
プロセッサ3200は、プロセッサ4200に書き込み処理を要求するために、書き込みデータ論理アドレス、書き込みデータのキャッシュ上の格納アドレス、データ長及び処理種別情報をデータ転送制御部3300により共通メモリ領域3410、4410内のプロセッサ3200書き込み用メモリ内のプロセッサ4200への要求用エリアに2重に格納する。ここで、処理種別情報とは、書き込み処理か読み込み処理かを判断する情報である。プロセッサ4200は、例えば10msといった一定時間で、共通メモリ領域3410、4410の自プロセッサへの要求用エリアを参照にいき、他プロセッサからの要求を認識する。
In order to request the
図6は、プロセッサ3200からの処理要求を受信したときのプロセッサ4200の処理を示すフローチャートである。前述の方法により、プロセッサ3200からの要求を認識(ステップ931)したプロセッサ4200は、プロセッサ3200書き込み用メモリ内のプロセッサ4200への要求用エリア内の処理種別を参照し、書き込み処理要求であることを認識する(ステップ932)。そして、プロセッサ4200は、プロセッサ3200書き込み用メモリ内のプロセッサ4200への要求用エリア内の書き込み論理アドレス、書き込みデータのキャッシュ上の格納アドレス、データ長を取得し(ステップ933)、キャッシュ3400内の該格納アドレスからデータ長分の書き込みデータをプロセッサ4200用領域3490と4490に、その管理情報である書き込み論理アドレスとデータ長と共に、2重に格納する(ステップ934)。そして、終了情報を共通メモリ領域3410、4410内のプロセッサ4200書き込み用メモリ内のプロセッサ3200からの要求に対する応答用エリアに設定することにより、プロセッサ3200に処理終了を通信する(ステップ935)。
FIG. 6 is a flowchart showing processing of the
プロセッサ3200は、プロセッサ4200に対する処理要求後は、プロセッサ4200書き込み用メモリ内のプロセッサ3200からの要求に対する応答用エリアを参照することにより、プロセッサ4200の処理の終了を監視(ステップ910)しており(図4参照)、この処理終了の通信を受けて、ホストコンピュータ1000に終了を報告する(ステップ905)。プロセッサ4200は、この後、図5に従ってホストI/O処理とは非同期に、この書き込みデータのディスク装置7000への書き込み処理を行う。
After the processing request to the
図4において、ホストコンピュータ1000から読み込み要求があったときは、プロセッサ3200は、上記書き込み要求受領時同様、処理担当外論理ボリューム(LUN)への処理であることを認識した(ステップ902)後、処理種別の判定を行う(ステップ908)。読み込み処理であることを認識すると、プロセッサ3200は読み込み要求論理アドレス、読み込みデータのキャッシュ上の格納許可アドレス、データ長、処理種別情報を共通メモリ領域3410、4410内のプロセッサ3200書き込み用メモリ内のプロセッサ4200への要求用エリアに格納することにより、該LUN処理担当であるプロセッサ4200に読み込み要求を通信する(ステップ911)。
In FIG. 4, when there is a read request from the host computer 1000, the
図6において、プロセッサ3200からの要求を認識(ステップ931)したプロセッサ4200は、共通メモリ領域内の情報により、読み込み処理であることを認識する(ステップ932)。そして、共通メモリ領域から読み込み要求論理アドレス、読み込みデータのキャッシュ上の格納許可アドレス、データ長を取得する(ステップ936)。次に、データをディスク装置7000からプロセッサ4200用領域4490に格納し、このデータをキャッシュ3400上の格納許可アドレスに格納する(ステップ937)。さらに、共通メモリ領域3410、4410内のプロセッサ4200書き込み用メモリ内のプロセッサ3200からの要求に対する応答用エリアに終了情報を設定することにより、プロセッサ3200に読み込み終了を通信する(ステップ935)。
In FIG. 6, the
図4において、プロセッサ4200の処理終了を監視(ステップ912)していたプロセッサ3200は、この読み込み終了報告を受けて、データをホストコンピュータに転送する(ステップ913)。
In FIG. 4, the
このように、プロセッサ3200は、通常、プロセッサ3200用領域3480と4480を用いて、I/O処理を行う。同様に、プロセッサ4200は、通常、プロセッサ4200用領域3490と4490を用いて、I/O処理を行う。
As described above, the
このように、プロセッサ毎に使用するキャッシュ領域を固定化することにより、プロセッサ間の排他制御を無くし、プロセッサ台数増加に伴う性能劣化を防ぐことができる。特にホストコンピュータ間でファイル(論理ボリューム)をシェアしないシステムにおいては、接続しているコントローラ内のプロセッサにこの論理ボリュームを割り当てておくことにより、I/O処理のときのプロセッサ間の通信制御を不要とし、さらなる性能向上を可能とする。 In this way, by fixing the cache area to be used for each processor, it is possible to eliminate exclusive control between processors and prevent performance deterioration due to an increase in the number of processors. Especially in a system that does not share files (logical volumes) between host computers, this logical volume is assigned to the processor in the connected controller, eliminating communication control between processors during I / O processing. And further performance improvement is possible.
次にコントローラ4000の障害時の自動切り替え/復旧方式について図7、図8を用いて説明する。I/O処理実行中、コントローラ4000の障害を検知したプロセッサは、共通メモリ領域3410を用いて、残りの全プロセッサにコントローラ4000の障害を通信する。この際、コントローラ4000とキャッシュを2重書きしているコントローラ3000内のプロセッサ3200には、処理の引継要求も通信する。本実施例では、プロセッサ3200が障害を検知した場合について説明する。
Next, an automatic switching / restoring method at the time of failure of the controller 4000 will be described with reference to FIGS. During the execution of the I / O process, the processor that has detected the failure of the controller 4000 uses the
図7は、プロセッサ3200がコントローラ4000の障害を検知した場合のプロセッサ3200の処理を示すフローチャートである。プロセッサ3200はI/O処理実行中(ステップ950)、コントローラ4000の障害を検知(ステップ951)すると、前述の方法により、プロセッサ5200、6200にコントローラ4000の障害を通信する。そして、障害コントローラをシステムから切り放すため、キャッシュ3400と4400へ2重書きされているホストコンピュータからの書き込みデータ及び共通メモリ領域のデータを、キャッシュ3400への1重書きに変更することをデータ転送制御部3300に指示する(ステップ952)。また、プロセッサ3200からの要求を認識したプロセッサ5200、6200は、共通メモリ領域をキャッシュ3400への1重書きに変更する。次に、プロセッサ3200は、プロセッサ4200の処理を引き継ぐ為に、プロセッサ4200用領域の制御権をプロセッサ3200に切り替える(ステップ953)。これらの処理により、制御権の切り替えが完了し、プロセッサ3200は通常のI/O処理を再開する(ステップ954)。
FIG. 7 is a flowchart showing processing of the
図8は、障害が発生したコントローラ4000の復旧処理を示すフローチャートである。コントローラ4000の障害部位が交換(ステップ971)されると、プロセッサ4200は、共通メモリ領域3410を用いて全プロセッサに復旧開始を伝達する(ステップ972)。プロセッサ3200、5200、6200は、この復旧開始の伝達を受けて(ステップ955)、それぞれのコントローラのデータ転送制御部にキャッシュ3400と4400への2重書きを指示すると共に、共通メモリ領域3410、4410を用いて、処理終了の応答をプロセッサ4200に通信する(ステップ956)。この終了報告を全プロセッサから受領(ステップ973)したプロセッサ4200は、キャッシュ4400のデータ回復を行う(ステップ974)。データ回復が完了すると、共通メモリ領域3410、4410を用いて、プロセッサ3200に復旧完了を伝達する(ステップ975)。
FIG. 8 is a flowchart showing a recovery process of the controller 4000 in which a failure has occurred. When the faulty part of the controller 4000 is replaced (step 971), the
図7において、この完了通知を受けた(ステップ958)プロセッサ3200は、プロセッサ4200用領域の制御権をプロセッサ4200に復旧(ステップ959)させ、共通メモリ領域を用いて、制御権の復旧をプロセッサ4200に伝達する(ステップ960)。図8において、この伝達を受けた(ステップ976)プロセッサ4200は、I/O処理を再開させる(ステップ977)。
In FIG. 7, upon receiving this completion notification (step 958), the
尚、以上の実施例においては、コントローラ毎にプロセッサ、ホストI/F制御部を1つ持った例を示したが、これらの数は任意でも、ホストコンピュータからのコマンドを受け取ったプロセッサが、担当プロセッサに処理要求を伝達することにより、同様に実現できる。 In the above embodiment, an example in which each controller has one processor and one host I / F control unit is shown. However, the processor that receives the command from the host computer is in charge of any number of these controllers. The same can be realized by transmitting a processing request to the processor.
また、キャッシュの分割方式は、プロセッサ毎に均等ではなく、ユーザの指定により設定/変更可能である。特に、特定プロセッサをホットスタンバイで動作させる場合には、キャッシュ領域をホットスタンバイのプロセッサには割り当てないことにより、キャッシュを有効に利用することができる。又、プロセッサの負荷に応じてダイナミックに変更することも可能である。ユーザの指定により分割を行うか、プロセッサの負荷に応じて変更を行うかの指示は、本実施例では、ホストコマンドにより行うが、パネルといった装置を接続し、そこから入力する形を取っても、むろん良い。 Further, the cache division method is not uniform for each processor, and can be set / changed by user designation. In particular, when a specific processor is operated in hot standby, the cache can be used effectively by not allocating the cache area to the hot standby processor. It is also possible to change dynamically according to the load of the processor. In this embodiment, an instruction to perform division according to user designation or change according to the processor load is performed by a host command. However, a device such as a panel may be connected and input from there. Of course good.
つぎに、コントローラのキャッシュの動的割当の実現方式について、以下、説明する。 Next, a method for realizing dynamic allocation of the controller cache will be described below.
まず、キャッシュの管理方式について、図9を用いて説明する。
プロセッサ毎に持つデータ格納エリアは、セグメント983と呼ばれる管理単位に分割されている。セグメントは、セグメント毎にセグメント管理ブロック981(以下SGCBという。)をデータ管理情報内に持ち、セグメントを管理する情報とセグメントアドレスが格納されている。又、これらのSGCBは、そのセグメントの属性によって、ダーティキュー980とクリーンキュー982という2つキューに分けられて接続されている。ダーティキュー980には、ディスク未反映のライトデータを格納しているセグメントのSGCBが接続されており、それ以外のSGCBは、クリーンキュー982に接続されている。
First, a cache management method will be described with reference to FIG.
The data storage area for each processor is divided into management units called
キャッシュの動的割当を実現するために、プロセッサ毎の負荷情報を共通メモリ領域に持つ。この負荷情報として、例えば、キャッシュ内のクリーンSGCB量を用いる。各プロセッサは、SGCBのクリーン、ダーティ間のキュー遷移契機に、この情報を更新する。プロセッサは、例えば、1分といった一定周期でこの情報を参照にいき、キャッシュを共有しているプロセッサ内で最も負荷の低いプロセッサのクリーンキューから最も負荷の高いプロセッサのクリーンキューへ、その負荷が同じになるまでSGCBと管理セグメントを移行させる。この際、使用中のSGCBは、移行対象外とする。移行の際は、SGCBの格納データ情報はクリアする。この移行の間は、プロセッサ通信を用いて、移行を行うプロセッサのI/O処理はとめる。 In order to realize dynamic cache allocation, load information for each processor is stored in a common memory area. As the load information, for example, the amount of clean SGCB in the cache is used. Each processor updates this information in response to the queue transition between SGCB clean and dirty. The processor refers to this information at regular intervals such as 1 minute, and the load is the same from the clean queue of the processor with the lowest load to the clean queue of the processor with the highest load among the processors sharing the cache. SGCB and management segment are migrated until. At this time, the SGCB in use is not subject to migration. At the time of migration, the SGCB storage data information is cleared. During this transition, I / O processing of the processor performing the transition is stopped using processor communication.
また、以上の実施例においては、2台のコントローラ間でキャッシュを共有し、各々、対コントローラのキャッシュに2重書きする例を示したが、キャッシュ領域がプロセッサ毎に分割されていれば、そのキャッシュの共有化方式、多重書き方式は、任意の方式でも、同様に実現できる。 In the above embodiment, the cache is shared between the two controllers, and each of them is written twice in the cache of the controller. However, if the cache area is divided for each processor, The cache sharing method and the multiple writing method can be similarly realized by any method.
キャッシュ多重書きの例を図10に示す。 An example of cache multiple writing is shown in FIG.
(1)は、装置全体でキャッシュを共有しあい、2重書きする方式である。つまり、プロセッサ3200はキャッシュ3400、4400を用いて、プロセッサ4200はキャッシュ4400、5400を用いて、プロセッサ5200はキャッシュ5400、6400を用いて、プロセッサ6200はキャッシュ6400、3400を用いて2重書きを行っている。
(1) is a method in which the cache is shared by the entire apparatus and is written twice. That is, the
(2)は、装置全体でキャッシュを共有しあい、全キャッシュに多重書きする方式である。つまり、プロセッサ3200、4200、5200、6200は、それぞれキャッシュ3400、4400、5400、6400を用いて、多重書きを行っている。このケースにおいて、コントローラが障害となった場合は、キャッシュを共有しているプロセッサ間でもっとも負荷の低いプロセッサが、障害コントローラ担当論理ボリュームの処理を引き継ぐ。これらのケースにおいては、任意のプロセッサが障害コントローラ担当論理ボリュームの処理を引き継げるように、ディスク側のデータバスを、装置内の全ディスク装置、全コントローラで共通のバスに接続しておく。もちろん、これらの多重書き方式を装置内で混在させることも可能である。これらの多重書き方式の指定は、共通メモリ領域3410、4410に多重書き情報を持ち、各々のプロセッサ3200、4200、5200、6200が、この情報を元に、書き込みデータの転送方式をデータ転送制御部3300、4300、5300、6300に指示することにより実現できる。
(2) is a system in which the cache is shared by the entire apparatus, and multiple writing is performed in all caches. That is, the
10/11:ホストコンピュータ
20:制御装置
30/40:コントローラ
31/41:コントローラA用キャッシュメモリ
32/42:コントローラB用キャッシュメモリ
33/43:キャッシュメモリ
50:ディスク装置
1000/1100/1200/1300:ホストコンピュータ
2000:制御装置
3000/4000/5000/6000:コントローラ
3100/4100/5100/6100:ホストI/F制御部
3200/4200/5200/6200:マイクロプロセッサ
3300/4300/5300/6300:データ転送制御部
3400/4400/5400/6400:キャッシュ
3500/4500/5500/6500:DRVI/F制御部
7000/7100:ディスク装置群
10/11: Host computer 20:
Claims (19)
該ホストコンピュータの指示に基づいて該記憶装置の制御を行い、該ホストコンピュータと該ディスク装置との間のデータ転送を制御し、該ホストコンピュータと該記憶装置との間を転送されるデータを一時的に保持する複数の領域を有するキャッシュメモリを有する複数のコントローラと前記複数のコントローラ間を接続するパスとを具備する制御装置とを有する記憶サブシステムであって、
前記コントローラには、前記記憶装置の複数の記憶領域のうち少なくとも1つと該コントローラのキャッシュメモリの複数の領域のうち少なくとも1つと前記パスにより接続される他のコントローラのキャッシュメモリの複数の領域のうち少なくとも一つが割当てられることを特徴とする記憶サブシステム。 A storage device for storing data of the host computer and having a plurality of storage areas;
The storage device is controlled based on an instruction from the host computer, data transfer between the host computer and the disk device is controlled, and data transferred between the host computer and the storage device is temporarily stored. A storage subsystem comprising a controller having a plurality of cache memory having a plurality of areas to be held and a controller comprising a path connecting the plurality of controllers,
The controller includes at least one of a plurality of storage areas of the storage device and at least one of a plurality of areas of the cache memory of the controller and a plurality of areas of a cache memory of another controller connected by the path A storage subsystem characterized in that at least one is allocated.
該ホストコンピュータと該ディスク装置との間を転送されるデータを一時的に保持する複数の領域を有するキャッシュメモリと、前記キャッシュメモリとが接続され、該データのデータ転送を制御するデータ転送制御部とを有する複数のコントローラと、複数のコントローラ間を接続するパスとを有し、該ホストコンピュータの指示に基づいて該磁気ディスク装置の制御を行う制御装置とを有する記憶サブシステムであって、
前記コントローラには、前記磁気ディスク装置の複数の論理ボリュームのうち少なくとも1つと該コントローラのキャッシュメモリの複数の領域のうち少なくとも1つと、他のコントローラのキャッシュメモリの複数の領域のうち少なくとも1つとが割当てられることを特徴とする記憶サブシステム。 A magnetic disk having a plurality of logical volumes for storing host computer data;
A cache memory having a plurality of areas for temporarily holding data transferred between the host computer and the disk device, and a data transfer control unit for connecting the cache memory and controlling data transfer of the data A storage subsystem having a controller for controlling the magnetic disk device based on an instruction from the host computer, and a controller for controlling the magnetic disk device based on an instruction from the host computer.
The controller includes at least one of a plurality of logical volumes of the magnetic disk device, at least one of a plurality of areas of a cache memory of the controller, and at least one of a plurality of areas of a cache memory of another controller. A storage subsystem characterized by being assigned.
該ホストコンピュータの指示に基づいて該記憶装置の制御を行い、該ホストコンピュータと該記憶装置との間のデータ転送を制御し、該ホストコンピュータと該記憶装置との間を転送されるデータを一時的に保持する複数の領域を有するキャッシュメモリを有する複数のコントローラと前記複数のコントローラ間を接続するパスとを具備する制御装置とを有する記憶サブシステムであって、
前記コントローラには、前記記憶装置の複数の記憶領域のうち少なくとも1つと該コントローラのキャッシュメモリの複数の領域のうち少なくとも1つと前記パスにより接続される他のコントローラのキャッシュメモリの複数の領域のうち少なくとも一つが割当てられ、
前記ホストコンピュータから転送されるデータは、該コントローラに割当てられている該コントローラのキャッシュメモリの領域と、該コントローラに割当てられている他のコントローラのキャッシュメモリの領域に書込まれることを特徴とする記憶サブシステム。 A storage device for storing data of the host computer and having a plurality of storage areas;
The storage device is controlled based on an instruction from the host computer, data transfer between the host computer and the storage device is controlled, and data transferred between the host computer and the storage device is temporarily stored. A storage subsystem comprising a controller having a plurality of cache memory having a plurality of areas to be held and a controller comprising a path connecting the plurality of controllers,
The controller includes at least one of a plurality of storage areas of the storage device and at least one of a plurality of areas of the cache memory of the controller and a plurality of areas of a cache memory of another controller connected by the path At least one is assigned,
The data transferred from the host computer is written in the cache memory area of the controller allocated to the controller and the cache memory area of another controller allocated to the controller. Storage subsystem.
16. The storage subsystem according to claim 15, wherein the division of the cache area is changed according to a load on the controller.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005376967A JP2006114064A (en) | 2005-12-28 | 2005-12-28 | Storage subsystem |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005376967A JP2006114064A (en) | 2005-12-28 | 2005-12-28 | Storage subsystem |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30096795A Division JP3772369B2 (en) | 1995-11-20 | 1995-11-20 | Storage subsystem |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006114064A true JP2006114064A (en) | 2006-04-27 |
Family
ID=36382476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005376967A Pending JP2006114064A (en) | 2005-12-28 | 2005-12-28 | Storage subsystem |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006114064A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012533100A (en) * | 2009-10-27 | 2012-12-20 | 株式会社日立製作所 | Storage control device and storage control method for dynamically allocating part of pool area as data storage area |
WO2013014699A1 (en) | 2011-07-22 | 2013-01-31 | Hitachi, Ltd. | Storage system and its logical unit management method |
JP2013114671A (en) * | 2011-11-30 | 2013-06-10 | Hitachi Ltd | Load distribution system |
WO2015052798A1 (en) * | 2013-10-09 | 2015-04-16 | 株式会社日立製作所 | Storage system and storage control method |
JP2017016691A (en) * | 2012-03-23 | 2017-01-19 | ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. | System and methods for storing data using table of contents entries |
-
2005
- 2005-12-28 JP JP2005376967A patent/JP2006114064A/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012533100A (en) * | 2009-10-27 | 2012-12-20 | 株式会社日立製作所 | Storage control device and storage control method for dynamically allocating part of pool area as data storage area |
WO2013014699A1 (en) | 2011-07-22 | 2013-01-31 | Hitachi, Ltd. | Storage system and its logical unit management method |
US8799573B2 (en) | 2011-07-22 | 2014-08-05 | Hitachi, Ltd. | Storage system and its logical unit management method |
JP2013114671A (en) * | 2011-11-30 | 2013-06-10 | Hitachi Ltd | Load distribution system |
JP2017016691A (en) * | 2012-03-23 | 2017-01-19 | ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. | System and methods for storing data using table of contents entries |
WO2015052798A1 (en) * | 2013-10-09 | 2015-04-16 | 株式会社日立製作所 | Storage system and storage control method |
GB2534956A (en) * | 2013-10-09 | 2016-08-10 | Hitachi Ltd | Storage system and storage control method |
JP6009095B2 (en) * | 2013-10-09 | 2016-10-19 | 株式会社日立製作所 | Storage system and storage control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3772369B2 (en) | Storage subsystem | |
JP3732869B2 (en) | External storage device | |
US9182918B2 (en) | Network storage systems having clustered raids for improved redundancy and load balancing | |
JP4480756B2 (en) | Storage management device, storage system control device, storage management program, data storage system, and data storage method | |
US6408400B2 (en) | Disk array device | |
US8089487B2 (en) | Storage control device and storage system | |
US11573737B2 (en) | Method and apparatus for performing disk management of all flash array server | |
GB2368161A (en) | Method and apparatus for providing battery-backed immediate write back cashe for an arrayof disk drives in a computor system | |
JP3681766B2 (en) | Disk array device | |
JP4462697B2 (en) | Storage controller | |
JP2005196490A (en) | System and method for data duplication | |
US11409471B2 (en) | Method and apparatus for performing data access management of all flash array server | |
JPH09269871A (en) | Data re-redundancy making system in disk array device | |
JP2006114064A (en) | Storage subsystem | |
JP3776438B2 (en) | Storage device | |
CN110674539B (en) | Hard disk protection device, method and system | |
JP2006260141A (en) | Control method for storage system, storage system, storage control device, control program for storage system, and information processing system | |
CN112445652A (en) | Remote copy system | |
JP2004171373A (en) | Disk array device | |
US11366618B2 (en) | All flash array server and control method thereof | |
US11809293B2 (en) | Storage node failure detection based on register values for an all flash array server | |
US11789613B2 (en) | Storage system and data processing method | |
CN113849126A (en) | Log storage method and device | |
JP2023096958A (en) | Storage system and storage system control method | |
JP2010033379A (en) | Virtualization system and restoration method for virtualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060127 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060127 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081031 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090901 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100105 |