JP2008097527A - ストレージシステム及びその制御方法 - Google Patents
ストレージシステム及びその制御方法 Download PDFInfo
- Publication number
- JP2008097527A JP2008097527A JP2006281691A JP2006281691A JP2008097527A JP 2008097527 A JP2008097527 A JP 2008097527A JP 2006281691 A JP2006281691 A JP 2006281691A JP 2006281691 A JP2006281691 A JP 2006281691A JP 2008097527 A JP2008097527 A JP 2008097527A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- data
- memory
- storage system
- storage device
- 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
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/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
- G06F11/2053—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 where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
-
- 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
- G06F11/2002—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 where interconnections or communication control functionality are redundant
- G06F11/2007—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 where interconnections or communication control functionality are redundant using redundant communication media
- G06F11/201—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 where interconnections or communication control functionality are redundant using redundant communication media between storage system components
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】耐障害性に優れたストレージシステムを提供する。
【解決手段】ストレージシステム100は、二重化されたコントローラ10,20を備える。コントローラ10は、ストレージデバイス51に読み書きされるデータと、ストレージデバイス51へのデータの読み書きに関する制御情報とを格納するメモリ17を有する。コントローラ20は、ストレージデバイス51に読み書きされるデータとストレージデバイス51へのデータの読み書きに関する制御情報とを格納するメモリ27を有する。メモリ17は、コントローラ20からアクセス可能に構成されている。メモリ27は、コントローラ10からアクセス可能に構成されている。
【選択図】図1
【解決手段】ストレージシステム100は、二重化されたコントローラ10,20を備える。コントローラ10は、ストレージデバイス51に読み書きされるデータと、ストレージデバイス51へのデータの読み書きに関する制御情報とを格納するメモリ17を有する。コントローラ20は、ストレージデバイス51に読み書きされるデータとストレージデバイス51へのデータの読み書きに関する制御情報とを格納するメモリ27を有する。メモリ17は、コントローラ20からアクセス可能に構成されている。メモリ27は、コントローラ10からアクセス可能に構成されている。
【選択図】図1
Description
本発明はホスト計算機からの要求に応答してストレージデバイスへのデータの読み書きを制御するストレージシステム及びその制御方法に関する。
近年、コンピュータシステムで扱われるデータ量が急激に増加している。このようなデータを管理するためのストレージシステムとして、最近では、ミッドレンジクラスやエンタープライズクラスと呼ばれるような巨大な記憶資源を提供するRAID(Redundant Arrays of Inexpensive Disks)方式で管理された大規模なストレージシステムが注目されている。
このような大規模なストレージシステムでは、ホスト計算機からの要求に応答してストレージデバイスへの読み書きを制御するディスクアレイコントローラにおけるデータ転送速度の高速化が必要不可欠である。例えば、特開2005−157576号公報には、データの種別に応じてセレクタが優先的なパス切り替えを行うデータ処理装置が提案されている。
またこのような大規模なストレージシステムでは、ストレージデバイスに読み書きされるデータを一時的に格納するキャッシュメモリへのアクセス集中を抑制し、性能低下を回避することが求められる。例えば、特開2004−110503号公報には、ストレージシステムとホスト計算機との間の通信を制御する二つのチャネル制御部のそれぞれにキャッシュメモリを搭載し、それぞれのチャネル制御部内のキャッシュメモリを専用のデータ転送路で接続するストレージシステムが提案されている。
特開2005−157576号公報
特開2004−110503号公報
しかし、従来のストレージシステムには、以下のような問題がある。
第一に、コントローラ内のローカルメモリの制御情報を他のコントローラからもアクセスできるように共有化するためには、それぞれのコントローラが正常に機能していることが前提であり、仮に何れかのコントローラに障害が発生すると、制御情報の共有化を実現することはできない。
また、制御情報の共有化といっても、従来では、共有化しているのは、制御情報の一部に過ぎない。制御情報の全てを共有化することができれば、共有している情報が増えることから更に複雑な動作が可能で、その結果、従来のシステムより高機能のストレージシステムを提供できる。そこで、制御情報をキャッシュメモリ内で完全に共有化する技術が考えられる。
しかし、制御情報を異なるシステム間で完全に共有化しようとすると、従来、共有化されていなかった情報分のメモリ容量が必要であり、このような大容量の制御情報を保存するための大容量のキャッシュメモリが必要になるだけでなく、従来のシステムで共有化を実現するための他系コントローラ間パスにおけるDMA転送において転送容量が増大してしまうので、システム性能が低下してしまうという問題がある。
また、従来、ローカルメモリに保存していた制御情報をキャッシュメモリに保存するとなると、CPUとキャッシュメモリとの間の物理的距離が長くなることに加え、データコントローラのレイテンシによって、CPUとキャッシュメモリとの間のデータ送信に時間を費やしてしまうという問題も生じる。
第二に、コントローラの高速化に関して、現在はLSIの製造プロセスの微細化によって、ゲート遅延に比べ、配線遅延の影響がより大きくなっている。また、LSIの高機能化、大規模化によって内部ブロックが増加し、その内部ブロック間を内部バスで接続する場合には、ファンアウト数と配線長も同様に増加してしまう。以上の理由に律束されて、LSIの動作速度を上げるにも限界があり、更に実装レイアウトも困難になってしまうという問題がある。特開2005−157576号公報では、内部のセレクタ間のデータパスにおける配線制約に触れていないため、これらの問題点を根本的に解決する技術とは言えない。
第三に、システムの信頼性に関して、CPUユニットにデータ保護機能のあるシステムにおいては、CPUユニットで障害が発生した場合でも、障害発生をコントローラへ通知し、コントローラが誤動作しないようにその動作を停止することで、システムの信頼性を確保できる。
しかし、この方式では、LSI内部にパリティ等のデータ保護機能用に配線を追加する必要や、データ正当性の検証のために処理が複雑になるというデメリットもある。かかる事情に鑑み、現状のストレージシステムでは、データ保護をもたないものも存在する。このようなストレージシステムにおいて、障害が発生すると、コントローラに誤ったデータを書き込んでしまい、それによって、キャッシュメモリやストレージデバイス等の予期しない記憶領域に書き込みが発生してしまう。更に、このエラーが他系のコントローラにも伝播してしまい、高信頼化のために冗長化しているコントローラをも誤作動させ、ストレージシステム全体に重大な障害を発生させてしまうという問題がある。
そこで、本発明はこのような問題を解決し、高機能で耐障害性に優れたストレージシステム及びその制御方法を提供することを課題とする。
上記の課題を解決するため、本発明に係わるストレージシステムは、ホスト計算機からの要求に応じてストレージデバイスへのデータの読み書き制御する第一及び第二のコントローラを備える。第一のコントローラは、ストレージデバイスに読み書きされるデータとストレージデバイスへのデータの読み書きに関する制御情報とを格納する第一のメモリを有する。第二のコントローラは、ストレージデバイスに読み書きされるデータと、ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第二のメモリを有する。第一のメモリは、第二のコントローラからアクセス可能に構成される。第二のメモリは、第一のコントローラからアクセス可能に構成される。
かかる構成により、仮に第一のコントローラに障害が発生すると、第二のコントローラは、第一のメモリにアクセスし、第一のコントローラが処理していたタスクを替わりに処理できるので、耐障害性を向上できる。また、従来では、制御情報を複数のコントローラ間で共有するため、制御情報の一部をキャッシュメモリに格納していたが、本発明によればその必要がなくなり、メモリ容量を有効に利用できる。
第一及び第二のメモリのそれぞれは、デイジーチェーン接続されてなる複数のDIMMを備える。
かかる構成により、他系コントローラからのメモリアクセスを可能にできる。
第一のメモリは、第一のコントローラの障害発生の有無に応じて第一のコントローラ又は第二のコントローラの中から第一のメモリにアクセスできるコントローラを選択する第一のセレクタを有し、第二のメモリは、第二のコントローラの障害発生の有無に応じて第一のコントローラ又は第二のコントローラの中から第二のメモリにアクセスできるコントローラを選択する第二のセレクタを有する。
かかる構成により、仮に第一のコントローラに障害が発生すると、第二のコントローラは、第一のセレクタを介して第一のメモリにアクセスできるので耐障害性を向上できる。
第一のコントローラは、第一のコントローラ内の複数の第一の周辺デバイス(例えば、CPU、ブリッジ、メモリ、ホストインタフェースコントローラ、ドライブインタフェースコントローラなど)間のデータ転送を制御する第一のデータコントローラを有する。第一のデータコントローラは、複数の第一の周辺デバイスと第一のデータコントローラとの間のインタフェースを制御する複数の第一の論理ブロックを有する。複数の第一の論理ブロックのそれぞれは、隣接する第一の論理ブロック同士がポイント・ツー・ポイント接続されることにより、データ転送用の第一のリングパスを形成する。
第二のコントローラは、第二のコントローラ内の複数の第二の周辺デバイス(例えば、CPU、ブリッジ、メモリ、ホストインタフェースコントローラ、ドライブインタフェースコントローラなど)間のデータ転送を制御する第二のデータコントローラを有する。第二のデータコントローラは、複数の第二の周辺デバイスと第二のデータコントローラとの間のインタフェースを制御する複数の第二の論理ブロックを有する。複数の第二の論理ブロックのそれぞれは、隣接する第二の論理ブロック同士がポイント・ツー・ポイント接続されることにより、データ転送用の第二のリングパスを形成する。
データ転送元の論理ブロックとデータ転送先の論理ブロックとを直接接続すると、配線遅延の影響が大きく現れてしまい、動作周波数の高速化が律速されてしまう。これに対し本発明によれば、論理ブロック間をポイント・ツー・ポイント接続することで、論理ブロック間は物理的に短距離で接続されるので、高速な内部動作周波数でも配線遅延の影響を最小限度に抑制することが可能となり、高速なデータ転送を行うことができる。それ故、全体の転送距離が長くても、データ転送に要する全体の時間を短縮できる。
第一のデータコントローラは、第一のリングパスをショートカットする第一のパスを有する。第二のデータコントローラは、第二のリングパスをショートカットする第二のパスを有する。
かかる構成により、リングパスの負荷が大きい場合には、リングパスをショートカットすることによって、データ転送効率を向上できる。
第一のデータコントローラは、データ転送方向が相互に異なる複数の第一のリングパスを有する。第二のデータコントローラは、データ転送方向が相互に異なる複数の第二のリングパスを有する。
かかる構成により、例えば、右回りのリングパスが占有されている場合には、左回りのリングパスを使用することにより、データ転送効率を向上できる。また、例えば、転送元論理ブロックから転送先論理ブロックへデータを転送するときに、左回りのリングパスで転送するよりも右回りのリングパスを使用した方が、パス長が短い場合には、データ転送時にリングパスの占有権の確保と同時に、転送元論理ブロックと転送先論理ブロックとの位置関係を解析して、効率的に転送できるリングパスを選択することも可能である。
第一のコントローラは、ホスト計算機からの要求に応答してストレージデバイスへのデータの読み書きを制御する第一のCPUとその周辺デバイス(例えば、CPU、ブリッジ、メモリ、ホストインタフェースコントローラ、ドライブインタフェースコントローラなど)を第一のモジュールに実装してなる構成を有している。第一のコントローラ障害時には、第一のモジュールを取り外した状態で、第二のコントローラから第一のメモリへのアクセスを可能とする。
第二のコントローラは、ホスト計算機からの要求に応答してストレージデバイスへのデータの読み書きを制御する第二のCPUとその周辺デバイス(例えば、CPU、ブリッジ、メモリ、ホストインタフェースコントローラ、ドライブインタフェースコントローラなど)を第二のモジュールに実装してなる構成を有している。第二のコントローラ障害時には、第二のモジュールを取り外した状態で、第一のコントローラから第二のメモリへのアクセスを可能とする。
かかる構成により、仮に第一のコントローラに障害が発生すると、第一のコントローラ内の第一のモジュールを取り外した状態で、第二のコントローラは、第一のメモリにアクセスし、第一のコントローラが処理していたタスクを替わりに処理できるので、ストレージシステムの保守管理が容易となる。
第一のコントローラは、ホスト計算機からの要求に応答してストレージデバイスへのデータの読み書きを制御する第一のCPUと、第一のコントローラ内の複数の第一の周辺デバイス(例えば、CPU、ブリッジ、メモリ、ホストインタフェースコントローラ、ドライブインタフェースコントローラなど)間のデータ転送を制御する第一のデータコントローラを有する。第一のデータコントローラは、第一のCPUから第一のデータコントローラに転送されるデータがデータ化けしているか否かをチェックする第一のチェック回路を有する。
第二のコントローラは、ホスト計算機からの要求に応答してストレージデバイスへのデータの読み書きを制御する第二のCPUと、第二のコントローラ内の複数の第二の周辺デバイス(例えば、CPU、ブリッジ、メモリ、ホストインタフェースコントローラ、ドライブインタフェースコントローラなど)間のデータ転送を制御する第二のデータコントローラを有する。第二のデータコントローラは、第二のCPUから第二のデータコントローラに転送されるデータがデータ化けしているか否かをチェックする第二のチェック回路を有する。
かかる構成により、CPUからデータコントローラへ転送されるデータがデータ化けしているか否かをデータコントローラがチェックするので、ストレージシステムの信頼性を高めることができる。
本発明に係わるストレージシステムの制御方法は、ホスト計算機からの要求に応じてストレージデバイスへのデータの読み書き制御する第一のコントローラであって、ストレージデバイスに読み書きされるデータと、ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第一のメモリを有する第一のコントローラと、ホスト計算機からの要求に応じてストレージデバイスへのデータの読み書き制御する第二のコントローラであって、ストレージデバイスに読み書きされるデータと、ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第二のメモリを有する第二のコントローラと、を有するストレージシステムの制御方法であって、第一のコントローラの障害発生を検出するステップと、第二のコントローラが第一のメモリにアクセスし、第一のコントローラが処理していたタスクを替わりに処理するステップと、を備える。
かかる方法により、仮に第一のコントローラに障害が発生すると、第二のコントローラは、第一のメモリにアクセスし、第一のコントローラが処理していたタスクを替わりに処理できるので、耐障害性を向上できる。
本発明によれば、ストレージシステムの高機能化及び耐障害性を向上できる。
以下、各図を参照しながら本発明の実施形態について説明する。以下の実施形態は、特許請求の範囲に係わる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は本実施形態に係わるストレージシステム100のハードウェア構成を示す。ストレージシステム100は、通信ネットワーク61を介して一つ以上のホスト計算機60に接続している。ホスト計算機60は、パーソナルコンピュータ、ワークステーション、メインフレーム等である。ホスト計算機60には、例えば、Webアプリケーションソフトウェア、ストリーミングアプリケーションソフトウェア、eビジネスアプリケーションソフトウェア等が搭載されている。
通信ネットワーク61としては、例えば、SAN(Storage Area Network)、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、専用回線、公衆回線等を挙げることができる。ホスト計算機60がSANを介してストレージシステム10に接続する場合、ホスト計算機60は、ファイバチャネルプロトコル又はiSCSI(internet Small Computer System Interface)等のプロトコルにより、ストレージシステム10の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。ホスト計算機60がLANを介してストレージシステム10に接続する場合、ホスト計算機60は、NFS(Network File System)やCIFS(Common Interface File System)等のプロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。ストレージシステム10がホスト計算機60からのファイルアクセス要求を受け付けるためには、NAS(Network Attached Storage)機能を搭載する必要がある。
ストレージシステム100は、二重化されたコントローラ10,20と、記憶装置50とを備える。
記憶装置50は、複数のストレージデバイス51を有する。ストレージデバイス51はハードディスクドライブ、フレキシブルディスクドライブ、磁気テープ、半導体メモリ、フラッシュメモリ、光ディスクドライブなどの物理デバイスである。ストレージデバイス51がハードディスクドライブである場合、FC(Fibre Channel)ディスクドライブ、SATA(Serial Advanced Technology Attachment)ディスクドライブ、PATA(Parallel Advanced Technology Attachment)ディスクドライブ、FATA(Fibre Attached Technology Adapted)ディスクドライブ、SCSI(Small Computer System Interface)ディスクドライブ、SAS(Serial Attached SCSI)ディスクドライブなどの各種ディスクドライブを適用できる。
コントローラ10又は20は、複数のストレージデバイス51をいわゆるRAID方式に規定されるRAIDレベル(例えば、0,1,5)で制御することができる。RAIDグループには、ホスト計算機60からのアクセス単位である一つ以上の論理ユニットが定義される。論理ユニットには、LUN(Logical Unit Number)がアサインされる。
コントローラ10は、CPUユニット13、データコントローラ14、ホストインタフェースコントローラ15A,15B,ドライブインタフェースコントローラ16A,16B,メモリ17、及びチェック回路600を備える。
CPUユニット13は、CPU11とブリッジ12とを備える。CPU11は、ホスト計算機60からのデータ入出力要求に応答して記憶装置50へのI/O処理(ライトアクセス、又はリードアクセス)を制御するプロセッサである。ブリッジ12は、CPU11とデータコントローラ14とを接続する。
データコントローラ14は、CPUユニット13、ホストインタフェースコントローラ15A,15B、ドライブインタフェースコントローラ16A,16B、及びメモリ17を相互に接続し、ホスト計算機60と記憶装置50との間のデータ転送を制御する。具体的には、ホスト計算機60からライトアクセスが行われると、データコントローラ14は、まず、ホストインタフェースコントローラ15A,15Bを介してホスト計算機60から受け取ったライトデータをメモリ17に書き込む。次に、ドライブインタフェースコントローラ16A,16Bは、メモリ17に書き込まれたライトデータを記憶装置50に書き込む。一方、ホスト計算機60からリードアクセスが行われると、データコントローラ14は、ドライブインタフェースコントローラ16a,16Bを介して記憶装置50から読みとったリードデータをメモリ17に書き込むとともに、これをホストインタフェースコントローラ15A,15Bに転送する。
尚、記憶装置50がRAIDレベル5で管理される場合には、データコントローラ14は、パリティデータを演算する機能を有する。
ホストインタフェースコントローラ15A,15Bは、ホスト計算機60とコントローラ10との間のインタフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルに基づくホスト計算機60からのブロックアクセス要求や、ファイル転送プロトコルに基づくホスト計算機60からのファイルアクセス要求を受信する機能を有する。ドライブインタフェースコントローラ16A,16Bは、コントローラ10と記憶装置50との間のインタフェースを制御するコントローラであり、例えば、記憶装置50を制御するプロトコルに基づいて記憶装置50へのデータ入出力要求を制御する機能を有する。
メモリ17は、ストレージデバイス51へのデータの読み書きに関する制御情報(RAID機能によりデータを複数のストレージデバイス51に分散するときに、分散されたそれぞれのデータをどのストレージデバイス51に書き込んだかを示す情報や、分散されたデータをどこまで書いたかを示す情報など)、及び記憶装置50に読み書きされるデータを格納する。
尚、チェック回路600の詳細については、後述する。
コントローラ20は、CPUユニット23、データコントローラ24、ホストインタフェースコントローラ25A,25B、ドライブインタフェースコントローラ26A,26B、メモリ27、及びチェック回路700を備えており、コントローラ10と同様の構成を有しているので、各部の詳細な説明を省略する。CPUユニット23は、CPU21とブリッジ22とを備える。
データコントローラ14及び24は、パス30を介して接続されており、ホスト計算機60がストレージデバイス51に読み書きするデータは、パス30を介して両方のメモリ17,27に書き込まれる。
メモリ17及び27は、パス40を介して接続されており、自系コントローラ及び他系コントローラからのアクセスを可能とする。例えば、メモリ17に格納されている情報はCPU11(自系コントローラ)からアクセスできるだけでなく、パス40を介してCPU21(他系コントローラ)からもアクセスできる。同様に、メモリ27に格納されている情報はCPU21(自系コントローラ)からアクセスできるだけでなく、パス40を介してCPU11(他系コントローラ)からもアクセスできる。
メモリ17,27に格納される制御情報は、従来、ローカルメモリに格納されていたものと同じである。従来では、CPU11,21のローカルメモリに格納されていた制御情報をキャッシュメモリへコピーしていたのであるが、本実施形態では、制御情報をメモリ17,27に格納することで、ローカルメモリからキャッシュメモリへの制御情報のコピーが不要となる。更に、従来では、ローカルメモリに格納されている制御情報をパス30経由で他系コントローラ内のキャッシュメモリに転送していたので、ホスト計算機60から記憶装置50へのアクセスに伴うパス30のデータ転送の効率を低下させる要因にもなっていたが、本実施形態によれば、メモリ17,27に格納されている制御情報へのアクセスは、パス40を利用して行うことができるので、パス30の帯域を効率よく使用することが可能となる。
次に、図2を参照しながらメモリ17,27の詳細構成について説明を加える。
メモリ17には、複数のメモリモジュール(例えば、DIMM:Dual Inline Memory Module)170−0,…,170−nが実装されている。それぞれのメモリモジュール170−0,…,170−nは、メモリチップ(例えば、DRAM:Dynamic Random Access Memory)171−0,…,171−nと、メモリチップ171−0,…,171−nへのデータの読み書きを制御するメモリコントローラ172−0,…,172−nと、を備える。それぞれのメモリコントローラ172−0,…,172−nは、2入力2出力のI/Oインタフェースを有しており、隣り合うメモリモジュールのメモリコントローラ同士をデイジーチェーン接続する。
メモリ17には、複数のメモリモジュール(例えば、DIMM:Dual Inline Memory Module)170−0,…,170−nが実装されている。それぞれのメモリモジュール170−0,…,170−nは、メモリチップ(例えば、DRAM:Dynamic Random Access Memory)171−0,…,171−nと、メモリチップ171−0,…,171−nへのデータの読み書きを制御するメモリコントローラ172−0,…,172−nと、を備える。それぞれのメモリコントローラ172−0,…,172−nは、2入力2出力のI/Oインタフェースを有しており、隣り合うメモリモジュールのメモリコントローラ同士をデイジーチェーン接続する。
同様に、メモリ27には、複数のメモリモジュール(例えば、DIMM)270−0,…,270−nが実装されている。それぞれのメモリモジュール270−0,…,270−nは、メモリチップ(例えば、DRAM)271−0,…,271−nと、メモリチップ271−0,…,271−nへのデータの読み書きを制御するメモリコントローラ272−0,…,272−nと、を備える。それぞれのメモリコントローラ272−0,…,272−nは、2入力2出力のI/Oインタフェースを有しており、隣り合うメモリモジュールのメモリコントローラ同士をデイジーチェーン接続する。
メモリ17とメモリ27は、パス40a,40bを介して接続されている。データコントローラ14とメモリ17とは、パス41a,41bを介して接続されており、データコントローラ24とメモリ27とは、パス42a,42bを介して接続されている。
ここで、データコントローラ14がメモリ17にアクセスする場合を例に、自系コントローラ内におけるメモリアクセスの動作について説明する。
メモリ17へデータが書き込まれる場合には、ライトデータがライトコマンドと共に、データコントローラ14からパス41aを介してメモリコントローラ172−0に伝送される。メモリコントローラ172−0は、ライトデータを受信し、書き込み先のアドレスが自分の管理するメモリチップ171−0のアドレス範囲内のものであれば、そのライトデータをメモリチップ171−0に書き込み、メモリチップ171−0のアドレス範囲外のものであれば、そのライトデータをライトコマンドとともに隣のメモリコントローラに転送する。このようにして、書き込み先アドレスを管理するメモリコントローラに至るまでメモリコントローラ間をライトデータが転送される。
メモリ17からデータが読み出される場合には、リードコマンドがデータコントローラ14からパス41aを介してメモリコントローラ172−0に伝送される。メモリコントローラ172−0は、ライトコマンドを受信し、読み出し先のアドレスが自分の管理するメモリチップ171−0のアドレス範囲内のものであれば、メモリチップ171−0からデータを読み出し、メモリチップ171−0のアドレス範囲外のものであれば、そのリードコマンドを隣のメモリコントローラに転送する。このようにして、読み出し先アドレスを管理するメモリコントローラに至るまでメモリコントローラ間をライトコマンドが転送される。メモリコントローラから読み出されたリードデータは、リードコマンドが転送されてきた経路を逆方向に辿りながら転送されていき、バス41bを介してデータコントローラ14へ転送される。
次に、データコントローラ14がメモリ27にアクセスする場合を例に、他系コントローラへのメモリアクセスの動作について説明する。
メモリ27にデータが書き込まれる場合には、ライトデータがライトコマンドと共に、データコントローラ14からパス41aを介してメモリ17に伝送される。メモリ17内のメモリコントローラ間を転送されてきたライトデータは、パス40aを介してメモリ27内のメモリコントローラ272−nに転送される。メモリコントローラ272−nは、ライトデータを受信し、書き込み先のアドレスが自分の管理するメモリチップ271−nのアドレス範囲内のものであれば、そのライトデータをメモリチップ271−nに書き込み、メモリチップ271−nのアドレス範囲外のものであれば、そのライトデータをライトコマンドとともに隣のメモリコントローラに転送する。このようにして、書き込み先アドレスを管理するメモリコントローラに至るまでメモリコントローラ間をライトデータが転送される。
メモリ27からデータが読み出される場合には、リードコマンドがデータコントローラ14からパス41aを介してメモリ17に伝送される。メモリ17内のメモリコントローラ間を転送されてきたリードコマンドは、パス40aを介してメモリ27内のメモリコントローラ272−nに転送される。メモリコントローラ272−nは、リードコマンドを受信し、読み出し先のアドレスが自分の管理するメモリチップ271−nのアドレス範囲内のものであれば、メモリチップ271−nからデータを読み出し、メモリチップ271−nのアドレス範囲外のものであれば、リードコマンドを隣のメモリコントローラに転送する。このようにして、読み出し先アドレスを管理するメモリコントローラに至るまでメモリコントローラ間をリードコマンドが転送される。メモリコントローラから読み出されたリードデータは、パス40bを介してコントローラ10へ転送されていき、パス41bを介してデータコントローラ14へ転送される。
次に、データコントローラ14,24が有するアドレス変換機能140,240について、図3を参照しながら説明を加える。
コントローラ10からコントローラ20へコマンドが転送されていくメモリチップの順番と、コントローラ20からコントローラ10へコマンドが転送されていくメモリチップの順番とは異なるので、コントローラ10から見たメモリ17,27のアドレス空間と、コントローラ20から見たメモリ17,27のアドレス空間は異なる。メモリチップ171−0,…,171−nのアドレス空間をそれぞれA0,…,Anとし、メモリチップ271−0,…,271−nのアドレス空間をそれぞれB0,…,Bnとすると、コントローラ10から見たアドレス空間は、コントローラ10からコントローラ20へコマンドが転送されていくメモリチップの順番に並べたアドレス空間1のように見える。一方、コントローラ20から見たアドレス空間は、コントローラ20からコントローラ10へコマンドが転送されていくメモリチップの順番に並べたアドレス空間2のように見える。
データコントローラ14内のアドレス変換機能140は、アドレス空間1をアドレス空間2にマッピングする機能を有する。データコントローラ24内のアドレス変換機能240は、アドレス空間3をアドレス空間2にマッピングする機能を有する。かかるアドレス変換機能140,240により、それぞれのコントローラ10,20から見たアドレス空間は同一のものとなり、メモリアクセス制御に必要なマイクロプログラムとして、それぞれのコントローラ10,20に共通のものを使用できる。コントローラによってアドレス空間が異なると、それに対応したマイクロプログラムをそれぞれのコントローラに実装しなければならないが、本実施形態によれば、そのような不都合を解消できる。
次に、図4を参照しながらメモリ17,27間を接続するパスのもう一つの接続構成について説明する。
コントローラ10は、セレクタ19及びスイッチ18を備えており、コントローラ20は、セレクタ29及びスイッチ28を備えている点が図2の構成とは異なる。セレクタ19スイッチ18は、コントローラ10の障害発生を示すエラー信号に基づいて出力信号を切り替える機能を有する。同様に、セレクタ29スイッチ28は、コントローラ20の障害発生を示すエラー信号に基づいて出力信号を切り替える機能を有する。データコントローラ14がメモリ17から、データコントローラ24がメモリ27からデータを読み書きする基本的な手順は、図2の構成における、データコントローラ14がメモリ17から、データコントローラ24がメモリ27からデータを読み書きする基本的な手順と同じである。
コントローラ20に障害が発生したときにおいて、データコントローラ14がメモリ27にアクセスする場合を例に、障害発生時における他系コントローラへのメモリアクセスの動作について説明する。
まず、コントローラ10がメモリ27にデータを書き込む場合について説明する。コントローラ10は、正常に動作しているので、セレクタ19は、データコントローラ14から出力されるライトコマンドをそのまま自系のメモリ17に出力する。リードコマンドはメモリ17内のメモリコントローラ間を転送されていき、パス41を介してコントローラ20へ転送される。
コントローラ20では、障害が発生しているので、エラー信号がパス210に出力される。すると、パス210に接続するセレクタ29及びスイッチ28に障害発生が通知される。セレクタ29は、通常時(エラー信号を受信しないとき)には、データコントローラ24から入力される信号をメモリ27に出力するのであるが、障害発生時(エラー信号を受信したとき)には、パス41から入力される信号をメモリ27に出力する。スイッチ28は、通常時(エラー信号を受信しないとき)には、スイッチオフになっているのであるが、障害発生時(エラー信号を受信したとき)には、スイッチオンになり、メモリ27から入力される信号をパス43に出力する。
データコントローラ14からのリードコマンドは、セレクタ29を介してメモリ27に転送される。そこからは、読み出し先アドレスを管理するメモリコントローラに至るまで、メモリ27内をリードコマンドが転送されていく。読み出し先アドレスを管理するメモリコントローラは、メモリチップからデータを読み出し、これまでリードコマンドが転送されてきた経路を逆方向に辿るように、リードデータを転送する。スイッチ28は、エラー信号を受信することにより、スイッチオンになっているので、メモリコントローラ272−0からスイッチ28に入力されたリードデータは、パス43を介してコントローラ10へ転送される。
コントローラ10内のメモリ17では、リードデータは、メモリコントローラ間を転送されていく。コントローラ10では、障害は発生してないので、スイッチ18はスイッチオフのままであり、メモリ17からスイッチ18に入力されたリードデータは、そのままデータコントローラ14へ出力される。
コントローラ10に障害発生し、コントローラ20がメモリ17にデータを読み書きする場合も同様の手順を経て行われる。
次に、図5を参照しながらデータコントローラ14の詳細構成について説明する。
データコントローラ14は、ブリッジ12、ホストインタフェースコントローラ15A,15B、メモリ17、データコントローラ24、ドライブインタフェースコントローラ16B,16Aのそれぞれに対応する論理ブロック120,150A,150B,170,240,160B,160Aを有する。
データコントローラ14は、ブリッジ12、ホストインタフェースコントローラ15A,15B、メモリ17、データコントローラ24、ドライブインタフェースコントローラ16B,16Aのそれぞれに対応する論理ブロック120,150A,150B,170,240,160B,160Aを有する。
また、それぞれの論理ブロック120,150A,150B,170,240,160B,160Aは、データコントローラ14の内部パスに接続する内部インタフェース120−1,120−2,150A−1,150A−2,150B−1,150B−2,170−1,170−2,240−1,240−2,160B−1,160B−2,160A−1,160A−2を有する。内部インタフェース120−1,150A−1,150B−1,170−1,240−1,160B−1,160A−1は、左回りにポイント・ツー・ポイント接続している。内部インタフェース120−2,150A−2,150B−2,170−2,240−2,160B−2,160A−2は、右回りにポイント・ツー・ポイント接続している。このように内部インタフェースをポイント・ツー・ポイント接続すると、データコントローラ14内のリングパス(論理ブロック間を接続するリング状のパス)を二重化することができる。
尚、説明の便宜上、論理ブロック内に含まれる内部インタフェースの個数を二つとしたが、内部インタフェースの個数は3以上であってもよい。また、データコントローラ14内のリングパスの個数は3以上であってもよい。
データコントローラ14内では、リングパスに沿ってデータが転送される。ホスト計算機60がストレージデバイス51にデータを書き込む場合を例に、データコントローラ14内のデータ転送経路について説明する。データコントローラ14は、ホストインタフェースコントローラ15Bを介してホスト計算機60からライトデータを受領する。ライトデータは、内部インタフェース150B−2から内部インタフェース170−2に転送され、一旦、メモリ17に書き込まれる。その後、ライトデータは、メモリ17から読み出され、内部インタフェース170−2から内部インタフェース240−2へ右回りに転送される。内部インタフェース240−2は、そのライトデータが自分宛のものでないと解釈し、隣の内部インタフェース160B−2へ右回りに転送する。内部インタフェース160B−2は、そのライトデータが自分宛のものであると解釈し、そのライトデータをドライブインタフェースコントローラ16Bに転送する。ドライブインタフェース16Bは、そのライトデータをストレージデバイス51に書き込む。
次に、CPU11からのコマンドをホストインタフェースコントローラ15A経由でホスト計算機60に送信する場合を例に、データコントローラ14内におけるアービトレーション機能について説明する。論理ブロック120と論理ブロック150Aとの位置関係を考慮すると、論理ブロック120から左回りのリングパスを経由して論理ブロック150Aにコマンドを転送するよりも、論理ブロック120から右回りのリングパスを経由して論理ブロック150Aにコマンドを転送する方が経路長は短いので、転送時間を短縮できる。データコントローラ14は、転送元の論理ブロックと転送先の論理ブロックとの間の物理的配線距離を考慮して、転送時間がより少なくなるリングパスを選択してデータ転送するアービトレーション機能を有する。
但し、転送元の論理ブロックと転送先の論理ブロックとの間の物理的配線距離を考慮したアービトレーションを行っても、データ転送に使用すべきリングパスが既に何らかのデータ転送に使用されている場合には、リングパスが開放されるのを一律に待つのではなく、データの優先度に応じて、最短経路ではないリングパスを経由してデータ転送を行うことも可能である。
データコントローラ14は、上記の構成に加えて、RAIDコントローラ440と、内部インタフェース150−1,150−2,160−1,160−2を有する。リングパスの占有度が高く、データ転送待ちになっているコマンドやデータが多い場合には、RAIDコントローラ440が内部インタフェース150−1,160−1を使用して、左回りのリングパスをショートカットしたり、或いは内部インタフェース150−2,160−2を使用して、右回りのリングパスをショートカットしたりする。かかるショートカット機能により、データ転送効率を向上させることができる。
次に、図6を参照しながら、内部インタフェース120−1の詳細構成について説明する。説明の便宜上、内部インタフェース120−1を例に内部インタフェースの詳細構成について説明するが、他の内部インタフェースの構成も同様である。内部インタフェース120−1は、内部インタフェース150A−1と内部インタフェース160A−1との間に接続されている。
内部インタフェース相互間で送受信される信号として、イネーブル信号300、コマンド310、及びデータ320がある。イネーブル信号300は、イネーブル信号300を受信する内部インタフェースが最終的な送信先である場合にハイレベルになる。コマンド310には、ライトコマンドとリードコマンドとが含まれる。データ320には、ライトデータとリードデータとが含まれる。
内部インタフェース120−1は、デコーダ500、フリップフロップ510、インバータ520、ANDゲート530、セレクタ540、セレクタ550、インバータ560、ANDゲート570、及びORゲート580を備えており、内部インタフェース150A−1から受信したデータ及び/又はコマンドが自分宛のものであるか否かを判定し、自分宛のライトコマンドであれば、ライトイネーブル信号360をハイレベルにし、自分宛のリードコマンドであれば、リードイネーブル信号370をハイレベルにし、受信したライトコマンド又はリードコマンドをコマンド380として、論理ブロック120内に出力するとともに、受信したデータをデータ390として、論理ブロック120内に出力する。一方、内部インタフェース120−1は、内部インタフェース150A−1から受信したデータ及び/又はコマンドが自分宛のものでないと判定すると、そのデータ及び/又はコマンドを隣の内部インタフェース160A−1に転送する。
また、内部インタフェース120−1が自発的に他の内部インタフェースにデータ及び/又はコマンドを転送したいときは、コマンド330、リクエスト340、及びデータ350を使用して、リングパスにデータ及び/コマンドを転送する。
尚、内部インタフェース相互間で送受信される、イネーブル信号300、コマンド310、及びデータ320のそれぞれは、図7に示すような信号となる。
データ転送元の論理ブロックとデータ転送先の論理ブロックとを直接接続すると、配線遅延の影響が大きく現れてしまい、動作周波数の高速化が律速されてしまうので好ましくない。これに対し、本実施形態によれば、論理ブロック間をポイント・ツー・ポイント接続することで、論理ブロック間は物理的に短距離で接続されるので、高速な内部動作周波数でも配線遅延の影響を最小限度に抑制することが可能となり、高速なデータ転送を行うことができる。それ故、全体の転送距離が長くても、データ転送に要する全体の時間を短縮できる。
次に、図9を参照しながらチェック回路600の詳細構成について説明する。
チェック回路600は、CPU11からデータコントローラ14に転送されるデータ(制御コード、アドレスコード、DMAパラメータ)がデータ化けしているか否かをチェックする。
チェック回路600は、CPU11からデータコントローラ14に転送されるデータ(制御コード、アドレスコード、DMAパラメータ)がデータ化けしているか否かをチェックする。
チェック回路600は、制御コードチェック回路610、アドレスコードチェック回路620、DMAパラメータチェック回路630、バッファ640、アドレスデコーダ650、及び制御ユニット660を備える。CPU11からデータコントローラ14に転送されるデータには、32ビットの制御コード、48ビットのアドレスコード(ストレージデバイス51のアクセス先アドレス)、64ビット幅を有するDMAパラメータ(トータルサイズは不定)が含まれる。これらのデータは、制御コードチェック回路610、アドレスコードチェック回路620、又はDMAパラメータチェック回路630の何れかに格納され、データ化けの有無がチェックされるとともに、更にバッファ640にも格納され、データ化けがないと判定されると、バッファ640に格納されたデータが読み出される。
制御コードをCPU11からデータコントローラ14に転送する場合、CPU11は制御コードの論理値を反転してなる反転コードを生成し、制御コードにその反転コードを付加し(図8(A)参照)、合計64ビットの制御コードとして、パス800上に出力する。制御コードチェック回路610は、反転コード付の64ビットの制御コードをパス800から受け取り、32ビットの制御コードをレジスタ610Aに格納するとともに、32ビットの反転コードをレジスタ610Bに格納する。
アドレスデコーダ650は、パス810上に出力されるアドレス(アドレスレジスタのアドレス)をデコードした結果、パス800上に出力されるデータの種別(制御コード、アドレスコード、DMAパラメータの区別)を判定する。制御コードチェック回路610は、レジスタ610Aに格納されている制御コードと、レジスタ610Bに格納されている反転コードとの排他的論理輪を演算することにより、制御コードがパス800を通過するときにデータ化けしているか否かをチェックする。
制御コードチェック回路610は、データ化けしてないことを確認すると、その旨をパス820経由で制御ユニット660に通知する。制御ユニット660は、データ化けしてない旨の通知を受信すると、バッファ640に格納されている制御コードをデータコントローラ14内の内部バス850に出力する。
一方、制御コードチェック回路610は、データ化けしていることを確認すると、その旨をパス820経由で制御ユニット660に通知する。制御ユニット660は、データ化けしている旨の通知を受信すると、データコントローラ14内部に接続するパス860にエラー信号を出力し、バッファ640に格納されている制御コードを破棄する。
アドレスコードをCPU11からデータコントローラ14に転送する場合、CPU11は、48ビットのアドレスコードに16ビットのSUMチェックコードを付加し(図8(B)参照)、合計64ビットのアドレスコードとしてパス800上に出力する。アドレスコードチェック回路620は、反転コード付の64ビットの制御コードをパス800から受け取り、16ビットのレジスタ620A、620B、及び620Cにアドレスコードを格納し、16ビットのレジスタ620DにSUMチェックコードを格納する。
アドレスデコーダ650は、パス810上に出力されるアドレス(アドレスレジスタのアドレス)をデコードした結果、パス800上に出力されるデータの種別(制御コード、アドレスコード、DMAパラメータの区別)を判定する。アドレスコードチェック回路620は、SUMチェックコードをチェックすることにより、アドレスコードがパス800を通過するときにデータ化けしているか否かをチェックする。
アドレスコードチェック回路620は、データ化けしてないことを確認すると、その旨をパス830経由で制御ユニット660に通知する。制御ユニット660は、データ化けしてない旨の通知を受信すると、バッファ640に格納されているアドレスコードをデータコントローラ14内の内部バス850に出力する。
一方、アドレスコードチェック回路620は、データ化けしていることを確認すると、その旨をパス830経由で制御ユニット660に通知する。制御ユニット660は、データ化けしている旨の通知を受信すると、データコントローラ14内部に接続するパス860にエラー信号を出力し、バッファ640に格納されているアドレスコードを破棄する。
DMAパラメータをCPU11からデータコントローラ14に転送する場合、CPU11は、48ビットのDMAパラメータに16ビットのSUMチェックコード又はCRCコードを付加し(図8(C)参照)、合計64ビットのDMAパラメータとして、パス800上に出力する。DMAパラメータチェック回路630は、SUMチェックコード又はCRCコード付のDMAパラメータをパス800から受け取り、64ビットのレジスタ630−0,…,630−nにDMAパラメータを格納し、64ビットのレジスタ631にSUMチェックコード又はCRCコードを格納する。
アドレスデコーダ650は、パス810上に出力されるアドレス(アドレスレジスタのアドレス)をデコードした結果、パス800上に出力されるデータの種別(制御コード、アドレスコード、DMAパラメータの区別)を判定する。DMAパラメータチェック回路630は、SUMチェックコード又はCRCコードをチェックすることにより、DMAパラメータがパス800を通過するときにデータ化けしているか否かをチェックする。
DMAパラメータチェック回路630は、データ化けしてないことを確認すると、その旨をパス840経由で制御ユニット660に通知する。制御ユニット660は、データ化けしてない旨の通知を受信すると、バッファ640に格納されているDMAパラメータをデータコントローラ14内の内部バス850に出力する。
一方、DMAパラメータチェック回路630は、データ化けしていることを確認すると、その旨をパス840経由で制御ユニット660に通知する。制御ユニット660は、データ化けしている旨の通知を受信すると、データコントローラ14内部に接続するパス860にエラー信号を出力しバッファ640に格納されているDMAパラメータを破棄する。
次に、図10乃至図12を参照しながら、ストレージシステムの変形例について説明する。図1に示す符号と同一符号の回路は同一の回路を示すものとして、その詳細な説明を省略する。
図10に示すストレージシステム101は、CPUユニット13,23内にそれぞれローカルメモリ1000,1100を有し、データコントローラ14,24内にそれぞれチェック回路600,700と、リングパス900,910を有する。ローカルメモリ1000,1100には、制御情報が格納される。かかる構成は、従来のローカルメモリ1000,1100における制御情報の管理方式を維持しつつ、メモリ17,27間のパス40を介してコントローラ10,20間で相互に制御情報の送受信を可能とすることで、より機能性に優れたシステムを構築できる。
図11に示すストレージシステム102は、図1に示すストレージシステム100からブリッジ12,22を削除してなる構成を有する。かかる構成により、CPUユニットの占有面積を縮小し、ボードの省スペース化が可能となる。
図12に示すストレージシステム103は、データコントローラ14にCPU11とローカルメモリ1000とがそれぞれ直接接続する構成を有している。データコントローラ14には、チェック回路600A,600Bが搭載されている。チェック回路600AはCPU11からの制御コードとアドレスコードとがデータ化けしているか否かをチェックする。チェック回路600Bは、ローカルメモリ1000からのDMAパラメータがデータ化けしているか否かチェックする。
ストレージシステム103は、更にデータコントローラ24にCPU21とローカルメモリ1100とがそれぞれ直接接続する構成を有している。データコントローラ24にはチェック回路700A,700Bが搭載されている。チェック回路700Aは、CPU21からの制御コードとアドレスコードとがデータ化けしているか否かをチェックする。チェック回路600Bは、ローカルメモリ1000からのDMAパラメータがデータ化けしているか否かをチェックする。
チェック回路600A,700Aにおけるチェック方法は、制御コードチェック回路610、アドレスコードチェック回路620におけるチェック方法と同様であり、チェック回路600B,700Bにおけるチェック方法は、DMAパラメータチェック回路630におけるチェック方法と同様である。
次に、図13乃至図14を参照しながらストレージシステムの保守管理について説明する。本実施形態に係わるストレージシステムにおいては、例えば、図13に示すように、CPU11、ブリッジ12、及びデータコントローラ14を一つのマルチチップモジュール2000内にモジュール化し、或いは図14に示すように、CPU11及びブリッジ12を一つのマルチチップモジュール3000内にモジュール化する。
ここで、コントローラ10に障害が発生し、データコントローラ14が動作不能になった場合を考察する。障害が発生すると、マルチチップモジュール2000,3000はパッケージから外され、正常なマルチチップモジュール2000,3000に交換される。このとき、コントローラ20は、パス40を介してメモリ17にアクセスし、メモリ17内の制御情報を読み出すことができるので、障害発生時にコントローラ10が処理していたタスクを、コントローラ20が替わりにフェールオーバー処理することができる。これにより、ストレージシステムは、コントローラ10に障害が発生しても、その運用を停止することなく、稼動し続けることができる。
発明の実施形態を通じて説明された実施例や応用例は、用途に応じて適宜に組み合わせて、又は変更若しくは改良を加えて用いることができ、本発明は上述した実施形態の記載の記載に限定されるものではない。そのような組み合わせ又は変更若しくは改良を加えた形態も本発明の技術的範囲に含まれ得ることが特許請求の範囲から明らかであろう。
10,20…コントローラ
14,24…データコントローラ
17,27…メモリ
30,40…パス
600,700…チェック回路
14,24…データコントローラ
17,27…メモリ
30,40…パス
600,700…チェック回路
Claims (9)
- ホスト計算機からの要求に応じてストレージデバイスへのデータの読み書き制御する第一及び第二のコントローラを備えるストレージシステムであって、
前記第一のコントローラは、前記ストレージデバイスに読み書きされるデータと、前記ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第一のメモリを有し、
前記第二のコントローラは、前記ストレージデバイスに読み書きされるデータと、前記ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第二のメモリを有し、
前記第一のメモリは、前記第二のコントローラからアクセス可能に構成され、
前記第二のメモリは、前記第一のコントローラからアクセス可能に構成されている、ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記第一及び第二のメモリのそれぞれは、デイジーチェーン接続されてなる複数のDIMMを備える、ストレージシステム。 - 請求項2に記載のストレージシステムであって、
前記第一のメモリは、前記第一のコントローラの障害発生の有無に応じて、前記第一のコントローラ又は前記第二のコントローラの中から前記第一のメモリにアクセスできるコントローラを選択する第一のセレクタを有し、
前記第二のメモリは、前記第二のコントローラの障害発生の有無に応じて、前記第一のコントローラ又は前記第二のコントローラの中から前記第二のメモリにアクセスできるコントローラを選択する第二のセレクタを有する、ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記第一のコントローラは、前記第一のコントローラ内の複数の第一の周辺デバイス間のデータ転送を制御する第一のデータコントローラを有し、
前記第一のデータコントローラは、前記複数の第一の周辺デバイスと前記第一のデータコントローラとの間のインタフェースを制御する複数の第一の論理ブロックを有し、
前記複数の第一の論理ブロックのそれぞれは、隣接する第一の論理ブロック同士がポイント・ツー・ポイント接続されることにより、データ転送用の第一のリングパスを形成しており、
前記第二のコントローラは、前記第二のコントローラ内の複数の第二の周辺デバイス間のデータ転送を制御する第二のデータコントローラを有し、
前記第二のデータコントローラは、前記複数の第二の周辺デバイスと前記第二のデータコントローラとの間のインタフェースを制御する複数の第二の論理ブロックを有し、
前記複数の第二の論理ブロックのそれぞれは、隣接する第二の論理ブロック同士がポイント・ツー・ポイント接続されることにより、データ転送用の第二のリングパスを形成している、ストレージシステム。 - 請求項4に記載のストレージシステムであって、
前記第一のデータコントローラは、前記第一のリングパスをショートカットする第一のパスを有し、
前記第二のデータコントローラは、前記第二のリングパスをショートカットする第二のパスを有する、ストレージシステム。 - 請求項4に記載のストレージシステムであって、
前記第一のデータコントローラは、データ転送方向が相互に異なる複数の第一のリングパスを有し、
前記第二のデータコントローラは、データ転送方向が相互に異なる複数の第二のリングパスを有する、ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記第一のコントローラは、前記ホスト計算機からの要求に応答して前記ストレージデバイスへのデータの読み書きを制御する第一のCPUとその周辺デバイスを第一のモジュールに実装してなる構成を有しており、前記第一のコントローラ障害時には、前記第一のモジュールを取り外した状態で、前記第二のコントローラから前記第一のメモリへのアクセスを可能とし、
前記第二のコントローラは、前記ホスト計算機からの要求に応答して前記ストレージデバイスへのデータの読み書きを制御する第二のCPUとその周辺デバイスを第二のモジュールに実装してなる構成を有しており、前記第二のコントローラ障害時には、前記第二のモジュールを取り外した状態で、前記第一のコントローラから前記第二のメモリへのアクセスを可能とする、ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記第一のコントローラは、前記ホスト計算機からの要求に応答して前記ストレージデバイスへのデータの読み書きを制御する第一のCPUと、前記第一のコントローラ内の複数の第一の周辺デバイス間のデータ転送を制御する第一のデータコントローラを有し、
前記第一のデータコントローラは、前記第一のCPUから前記第一のデータコントローラに転送されるデータがデータ化けしているか否かをチェックする第一のチェック回路を有し、
前記第二のコントローラは、前記ホスト計算機からの要求に応答して前記ストレージデバイスへのデータの読み書きを制御する第二のCPUと、前記第二のコントローラ内の複数の第二の周辺デバイス間のデータ転送を制御する第二のデータコントローラを有し、
前記第二のデータコントローラは、前記第二のCPUから前記第二のデータコントローラに転送されるデータがデータ化けしているか否かをチェックする第二のチェック回路を有する、ストレージシステム。 - ホスト計算機からの要求に応じてストレージデバイスへのデータの読み書き制御する第一のコントローラであって、前記ストレージデバイスに読み書きされるデータと、前記ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第一のメモリを有する第一のコントローラと、
前記ホスト計算機からの要求に応じて前記ストレージデバイスへのデータの読み書き制御する第二のコントローラであって、前記ストレージデバイスに読み書きされるデータと、前記ストレージデバイスへのデータの読み書きに関する制御情報とを格納する第二のメモリを有する第二のコントローラと、
を有するストレージシステムの制御方法であって、
前記第一のコントローラの障害発生を検出するステップと、
前記第二のコントローラが前記第一のメモリにアクセスし、前記第一のコントローラが処理していたタスクを替わりに処理するステップと、
を備えるストレージシステムの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006281691A JP2008097527A (ja) | 2006-10-16 | 2006-10-16 | ストレージシステム及びその制御方法 |
US11/604,683 US7493432B2 (en) | 2006-10-16 | 2006-11-28 | Storage system with memories each having DIMMs daisy-chain connected to one another and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006281691A JP2008097527A (ja) | 2006-10-16 | 2006-10-16 | ストレージシステム及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008097527A true JP2008097527A (ja) | 2008-04-24 |
Family
ID=39380279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006281691A Pending JP2008097527A (ja) | 2006-10-16 | 2006-10-16 | ストレージシステム及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7493432B2 (ja) |
JP (1) | JP2008097527A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010231723A (ja) * | 2009-03-30 | 2010-10-14 | Nec Computertechno Ltd | マルチプロセッサシステム、ノードコントローラ、障害回復方式 |
US7987387B2 (en) | 2008-07-17 | 2011-07-26 | Hitachi, Ltd. | File sharing system and method for storing and managing failure information based on statuses of a main control and a power supply |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009266119A (ja) * | 2008-04-28 | 2009-11-12 | Hitachi Ltd | ストレージ装置及びデータ転送方法 |
US20090300411A1 (en) * | 2008-06-03 | 2009-12-03 | Gerald Keith Bartley | Implementing Redundant Memory Access Using Multiple Controllers for Memory System |
US20090300291A1 (en) * | 2008-06-03 | 2009-12-03 | Gerald Keith Bartley | Implementing Cache Coherency and Reduced Latency Using Multiple Controllers for Memory System |
WO2010116538A1 (en) * | 2009-04-06 | 2010-10-14 | Hitachi, Ltd. | Storage apparatus and data transfer method |
JP2011170589A (ja) * | 2010-02-18 | 2011-09-01 | Nec Corp | ストレージ制御装置、ストレージ装置およびストレージ制御方法 |
US9015519B2 (en) * | 2012-01-31 | 2015-04-21 | Symantec Corporation | Method and system for cluster wide adaptive I/O scheduling by a multipathing driver |
US11080192B2 (en) * | 2015-05-14 | 2021-08-03 | Hitachi, Ltd. | Storage system and storage control method |
US9786389B2 (en) * | 2015-10-16 | 2017-10-10 | SK Hynix Inc. | Memory system |
GB2553102B (en) * | 2016-08-19 | 2020-05-20 | Advanced Risc Mach Ltd | A memory unit and method of operation of a memory unit to handle operation requests |
IT201700050153A1 (it) | 2017-05-09 | 2018-11-09 | St Microelectronics Srl | Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo |
US10216685B1 (en) * | 2017-07-19 | 2019-02-26 | Agiga Tech Inc. | Memory modules with nonvolatile storage and rapid, sustained transfer rates |
US10846175B2 (en) * | 2018-04-10 | 2020-11-24 | Micron Technology, Inc. | High throughput bit correction of data inside a word buffer for a product code decoder |
KR20200036461A (ko) | 2018-09-28 | 2020-04-07 | 삼성전자주식회사 | 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230240B1 (en) * | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
US6681339B2 (en) * | 2001-01-16 | 2004-01-20 | International Business Machines Corporation | System and method for efficient failover/failback techniques for fault-tolerant data storage system |
JP2004110503A (ja) | 2002-09-19 | 2004-04-08 | Hitachi Ltd | 記憶制御装置、記憶システム、記憶制御装置の制御方法、チャネル制御部、及びプログラム |
JP2005157576A (ja) | 2003-11-21 | 2005-06-16 | Sony Corp | データ処理装置及びデータ処理方法 |
-
2006
- 2006-10-16 JP JP2006281691A patent/JP2008097527A/ja active Pending
- 2006-11-28 US US11/604,683 patent/US7493432B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7987387B2 (en) | 2008-07-17 | 2011-07-26 | Hitachi, Ltd. | File sharing system and method for storing and managing failure information based on statuses of a main control and a power supply |
JP2010231723A (ja) * | 2009-03-30 | 2010-10-14 | Nec Computertechno Ltd | マルチプロセッサシステム、ノードコントローラ、障害回復方式 |
Also Published As
Publication number | Publication date |
---|---|
US7493432B2 (en) | 2009-02-17 |
US20080147932A1 (en) | 2008-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008097527A (ja) | ストレージシステム及びその制御方法 | |
US8140936B2 (en) | System for a combined error correction code and cyclic redundancy check code for a memory channel | |
US7353316B2 (en) | System and method for re-routing signals between memory system components | |
US10031820B2 (en) | Mirroring high performance and high availablity applications across server computers | |
KR102350538B1 (ko) | Ddr 메모리 에러 복구 | |
US6886048B2 (en) | Techniques for processing out-of-order requests in a processor-based system | |
JP5032027B2 (ja) | 半導体ディスク制御装置 | |
US6505305B1 (en) | Fail-over of multiple memory blocks in multiple memory modules in computer system | |
EP0907917B1 (en) | Cache memory controller in a raid interface | |
KR100640037B1 (ko) | 파일 제어 시스템 및 파일 제어 장치 | |
US20070076321A1 (en) | Data storage system, data storage control device, and failure location diagnosis method thereof | |
US7321986B2 (en) | Configuring cache memory from a storage controller | |
US11372552B2 (en) | Storage device | |
US9141485B2 (en) | Storage device, control device and data protection method | |
US20220147476A1 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
JP2009053946A (ja) | 二重化コントーラ構成ブロックデバイス制御装置 | |
JP3434735B2 (ja) | 情報処理システム及びそれに用いる障害処理方式 | |
US10719391B2 (en) | Storage system and storage control apparatus | |
WO2016122602A1 (en) | Systems and methods for sharing non-volatile memory between multiple access models | |
US7343522B2 (en) | Apparatus having a transfer mode abnormality detecting function, storage controlling apparatus, and interface module for the storage controlling apparatus | |
Bai et al. | An Analysis on Compute Express Link with Rich Protocols and Use Cases for Data Centers | |
JP2011232962A (ja) | ディスクアレイ装置およびミラードキャッシュ制御方法 | |
JP2011076528A (ja) | Raidカードの冗長化方法及びraidカードの冗長化装置 | |
JP2004164171A (ja) | パス冗長化装置及び方法 | |
JP2023047277A (ja) | 相互接続にまたがるメモリミラーリングのための技術 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090220 |