JP4901316B2 - ストレージシステム及び記憶制御装置 - Google Patents

ストレージシステム及び記憶制御装置 Download PDF

Info

Publication number
JP4901316B2
JP4901316B2 JP2006157256A JP2006157256A JP4901316B2 JP 4901316 B2 JP4901316 B2 JP 4901316B2 JP 2006157256 A JP2006157256 A JP 2006157256A JP 2006157256 A JP2006157256 A JP 2006157256A JP 4901316 B2 JP4901316 B2 JP 4901316B2
Authority
JP
Japan
Prior art keywords
controller
storage
inter
write
host
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.)
Expired - Fee Related
Application number
JP2006157256A
Other languages
English (en)
Other versions
JP2007328408A (ja
Inventor
碧 黒川
東 加納
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006157256A priority Critical patent/JP4901316B2/ja
Priority to US11/515,734 priority patent/US7594083B2/en
Priority to EP07250024A priority patent/EP1868074A3/en
Publication of JP2007328408A publication Critical patent/JP2007328408A/ja
Application granted granted Critical
Publication of JP4901316B2 publication Critical patent/JP4901316B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージシステム及び記憶制御装置に関する。
例えば、企業や病院、政府機関等の各種組織で管理される各種のデータは、記憶制御装置によって管理される。記憶制御装置は、例えば、多数のハードディスクを備えており、ホストコンピュータ(以下、ホスト)にRAID(Redundant Array of Independent Disks)に基づく記憶容量を提供する。企業等の各種組織で管理されるデータの量は、日々増大するため、記憶制御装置の記憶容量が不足する場合もある。記憶容量が不足した場合は、新たなハードディスクを記憶制御装置に追加して記憶容量を増加させたり、または、古いデータを記憶制御装置内からテープデバイス等に移し替えることにより、対処することができる。
一方、記憶制御装置を利用するホストの数が増加する場合もある。記憶制御装置に接続可能なホストの数には、記憶制御装置の仕様上の制限があるため、仕様を超えた数のホストを接続することは一般的に難しい。従って、この場合は、例えば、ホスト接続数の少ない既存の記憶制御装置を、ホスト接続数の多い別の記憶制御装置に置き換えるか、または、記憶制御装置の数を増加させることが考えられる。
記憶制御装置の数を増加させる場合、新たに追加された記憶制御装置に、既存の記憶制御装置からデータを移行させる。そして、ホストに設けられたパス切替ソフトウェアやスイッチ等を用いることにより、ホストは、所望のデータの存在する記憶制御装置にアクセスする(特許文献1)。
特開2005−353035号公報
前記文献に記載の従来技術では、複数の記憶制御装置のいずれの記憶制御装置にアクセスするかを、各ホストがその都度それぞれ判断しなければならない。従って、各ホストのそれぞれにおいて、アクセスパスの切替設定等を行う必要があり、ストレージシステムを管理するための手間がかかる。また、各ホストに、アクセスパスの切替を行うためのソフトウェアを搭載する必要があり、ストレージシステムのコストも増加する。
本発明は、上記の問題点に鑑みてなされたもので、その目的は、上位装置に意識させることなく、記憶制御装置側で処理経路を切り替えることができるようにしたストレージシステム及び記憶制御装置を提供することにある。本発明の他の目的は、対等の立場にある複数の記憶制御装置を連結させることにより、接続可能な上位装置の数を簡単に増加させることができるストレージシステム及び記憶制御装置を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明に従うストレージシステムは、上位装置に接続される記憶制御装置を複数備えたストレージシステムであって、各記憶制御装置は、上位装置及び記憶デバイスとの通信をそれぞれ制御するコントローラをそれぞれ備えており、各記憶制御装置内の各コントローラ同士を接続する装置間通信経路を設け、各コントローラは、装置間通信経路を介して接続されている接続先コントローラの有するメモリに、上位装置を介さずにアクセス可能となっている。
本発明の一態様では、各コントローラは、上位装置との間で通信を行うための上位通信制御部と、記憶デバイスとの間で通信を行うための下位通信制御部と、上位通信制御部及び下位通信制御部により利用されるメモリと、上位通信制御部及び下位通信制御部とメモリとの間のデータ転送を制御するデータ転送制御部と、コントローラの動作を制御するプロセッサと、をそれぞれ備え、かつ、データ転送制御部は、装置間通信経路に接続するための装置間インターフェース部を備えている。
本発明の一態様では、各コントローラは、上位装置からアクセスを要求された記憶デバイスが接続先コントローラの管理下にある場合、装置間通信経路を介して、接続先コントローラの有するメモリにアクセスする。
本発明の一態様では、各コントローラは、上位装置からアクセスを要求された記憶デバイスが接続先コントローラの管理下にある場合、上位装置から受信したコマンド及び/またはデータを、装置間通信経路を介して、接続先コントローラに転送する。
本発明の一態様では、各コントローラ内の上位通信制御部は、上位装置から受信したコマンドを所定の転送先に転送するためのコマンド転送機能をそれぞれ備えており、上位装置からアクセスを要求された記憶デバイスが接続先コントローラの管理下にある場合、上位通信制御部は、上位装置から受信したコマンド及び/またはデータを、装置間インターフェース部及び装置間通信経路を介して、接続先コントローラに転送する。
本発明の一態様では、各コントローラは、上位装置からライトコマンド受信した場合、このライトコマンドに係るライトデータをメモリにそれぞれ記憶させ、かつ、ライトコマンドに係るライトデータを接続先コントローラのメモリにも記憶させる。
本発明の一態様では、各コントローラは、上位装置からライトコマンドを受領した場合、このライトコマンドの書込み対象が自己の管理下にある記憶デバイスであるか接続先コントローラの管理下にある記憶デバイスであるかを問わずに、ライトコマンドに係るライトデータをメモリにそれぞれ記憶させ、かつ、ライトコマンドの書込み対象が接続先コントローラの管理下にある記憶デバイスである場合は、ライトコマンドに係るライトデータを接続先コントローラのメモリに転送して記憶させる。
本発明の一態様では、各コントローラは、ライトデータを接続先コントローラのメモリに転送して記憶させた後、メモリに記憶させたライトデータを消去させる。
本発明の一態様では、上位装置から受信したライトコマンドを処理するための第1書込みモード及び第2書込みモードが予め用意されており、かつ、記憶デバイス毎に、第1書込みモードまたは第2書込みモードのいずれか一つを予め設定可能となっており、
(1)ライトコマンドの書込み対象の記憶デバイスに第1書込みモードが設定されている場合には、ライトコマンドを受信した接続元コントローラが有するメモリ及び接続元コントローラに装置間通信経路を介して接続されている接続先コントローラが有するメモリに、ライトコマンドに係るライトデータをそれぞれ記憶させ、(2)ライトコマンドの書込み対象の記憶デバイスに第2書込みモードが設定されている場合には、接続元コントローラの有するメモリにライトコマンドに係るライトデータを記憶させた後、書込み対象の記憶デバイスが接続先コントローラの管理下にある記憶デバイスであるか否かを判定し、書込み対象の記憶デバイスが接続先コントローラの管理下にある記憶デバイスであると判定されたときは、ライトデータを接続先コントローラの有するメモリに転送して記憶させるようになっている。
本発明の一態様では、第2書込みモードが設定された場合には、さらに、接続元コントローラの有するメモリに記憶されたライトデータを消去させるデータ消去モードを設定可能となっており、データ消去モードが設定されている場合には、ライトデータを接続先コントローラの有するメモリに転送して記憶させた後、接続元コントローラの有するメモリに記憶されたライトデータを消去させる。
本発明の一態様では、各記憶制御装置は、コントローラ間通信経路によって互いに接続された第1コントローラ及び第2コントローラをそれぞれ備えており、第1コントローラと第2コントローラとは互いに相手をバックアップ可能となっている。
本発明の一態様では、装置間通信経路は複数ずつ設けられており、いずれか一方の装置間通信経路を利用できない場合には、他方の装置間通信経路が使用される。
本発明の一態様では、各コントローラは、自分の管理下にある記憶デバイスの負荷をそれぞれ監視しており、予め設定された閾値以上の負荷を有する高負荷記憶デバイスが検出された場合、装置間通信経路を介して接続された接続先コントローラに、高負荷記憶デバイスの管理を委ねる。
本発明の一態様では、装置間インターフェース部には、装置間通信経路に代えて、上位通信制御部とは別の上位通信制御部を接続可能である。
本発明の他の観点に従う記憶制御装置は、筐体と、筐体に設けられる第1コントローラ及び第2コントローラと、を備える記憶制御装置であって、第1コントローラ及び第2コントローラは、上位装置との間で通信を行うための上位通信制御部と、記憶デバイスとの間で通信を行うための下位通信制御部と、上位通信制御部及び下位通信制御部により利用されるメモリと、上位通信制御部及び下位通信制御部とメモリとの間のデータ転送を制御するデータ転送制御部と、コントローラの動作を制御するプロセッサと、をそれぞれ備え、かつ、データ転送制御部は、第1コントローラと第2コントローラとを接続するコントローラ間通信経路に接続するためのコントローラ間インターフェース部と、他の記憶制御装置内の対応するコントローラに接続される装置間通信経路に接続するための装置間インターフェース部と、を備えている。
本発明の各構成要素の少なくとも一部は、コンピュータプログラムによって実行可能な場合がある。そして、このコンピュータプログラムは、各種記録媒体に固定された状態で配布したり、あるいは、通信媒体を介して送信することができる。
以下、図面に基づき、本発明の実施形態を説明する。本実施形態では、図1に示すように、例えば、互いに対等の関係に立つ複数の記憶制御装置10,20を装置間通信経路NPA,NPBを介して相互に連結し、ホスト1からのアクセス要求をいずれの記憶制御装置10,20が担当するのかを、記憶制御装置10,20側で判断する。これにより、ホスト1から記憶制御装置10,20へアクセスするためのパスを制御するソフトウェア等をホスト1に搭載することなく、比較的簡易な方法で、ストレージシステムの構成を拡張することができ、ホスト1の接続数を増加させることができる。
図1は、本実施例に係るストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、複数のホスト1にそれぞれ接続可能な複数の記憶制御装置10,20を備えている。以下の説明では、各記憶制御装置10,20が同種類の記憶制御装置である場合を例に挙げて説明する。しかし、これに限らず、各記憶制御装置10,20の種類が異なってもよい。また、別の実施例で述べるように、3台以上の記憶制御装置からストレージシステムを構成することもできる。
以下の説明では、記憶制御装置10を第1記憶制御装置10または一方の記憶制御装置10と、記憶制御装置20を第2記憶制御装置20または他方の記憶制御装置20と、それぞれ呼ぶ場合がある。
ホスト1は、例えば、パーソナルコンピュータ、サーバコンピュータ、メインフレーム、エンジニアリングワークステーション等のようなコンピュータ装置である。ホスト1は、例えば、SAN(Storage Area Network)やLAN(Local Area Network)等のような通信経路CNを介して、記憶制御装置10,20に接続されている。
各ホスト1のうちいずれか一つまたは複数のホスト1に、記憶制御装置10,20の構成等を管理するためのストレージ管理ソフトウェアを設けることもできる。この場合、ストレージシステムのユーザは、ホスト1上のストレージ管理ソフトウェアを用いて、論理ボリューム130の生成やアクセスパスの設定等を行うことができる。なお、ホスト1とは別の管理用コンピュータ装置を用いて、記憶制御装置10,20の構成等を管理する構成でもよい。
記憶制御装置10は、例えば、筐体内に収容された第1コントローラ100A及び第2コントローラ100Bと、各コントローラ100A,100Bに通信経路140A,140Bを介して接続された論理ボリューム130とを備えて構成される。記憶制御装置10は、制御機能(コントローラ100A,100B)及び記憶機能(130)の両方を備えている基本的な装置であり、基本筐体と呼ぶこともできる。
記憶制御装置10の記憶容量を増加させる場合は、記憶制御装置10に拡張筐体11が接続される。拡張筐体11は、論理ボリューム130のみを備えており、制御機能を備えない。拡張筐体11内の論理ボリューム130は、コントローラ100A,100Bによって管理される。なお、本実施例では記憶制御装置10内に2個のコントローラ100A,100Bを設ける場合を例示するが、これに限らず、1台または3台以上のコントローラを設ける構成でもよい。
記憶制御装置10は、上述のように、複数のコントローラ100A,100Bを備えている。ここで、図中では、第1コントローラ100Aの属する系統を「A系統」とし、第2コントローラ100Bの属する系統を「B系統」として表示する。図中の表示要素に付されている符号「1A」は、第1記憶制御装置10内のA系統に属する要素であることを、符号「1B」は、第1記憶制御装置10内のB系統に属する要素であることを、それぞれ示している。第2記憶制御装置20についても同様であり、符号「2A」は、第2記憶制御装置20内のA系統に属する要素であることを、符号「2B」は、第2記憶制御装置20内のB系統に属する要素であることを、それぞれ示している。
上述の通り、各コントローラ100A,100Bには、通信経路CNを介して、それぞれホスト1が接続されている。図中では、説明の便宜上、各コントローラ100A,100Bにそれぞれ一つずつのホスト1を接続している。しかし、実際には、各コントローラ100A,100Bにそれぞれ複数ずつのホスト1を接続することができる。コントローラ100A,100Bに接続可能なホスト1の数は、各コントローラ100A,100Bの有する通信ポート(図3中のホスト側プロトコルチップ101)の数により定まる。
各コントローラ100A,100Bは、例えば、ファイバチャネル等の通信経路140A,140Bを介して、各論理ボリューム130にそれぞれ接続されている。即ち、第1コントローラ100Aは、一方の通信経路140Aを介して、各論理ボリューム130にそれぞれ接続されている。第2コントローラ100Bは、他方の通信経路140Bを介して、各論理ボリューム130にそれぞれ接続されている。また、第1コントローラ100Aは、交代経路141Aを介して、他方の通信経路140Bにも接続されており、これと同様に、第2コントローラ100Bは、交代経路141Bを介して、一方の通信経路140Aに接続されている。
第1コントローラ100Aは、通常の場合、通信経路140Aを介して、論理ボリューム130にアクセスする。通信経路140Aに障害が発生した場合、コントローラ100Aは、交代経路141A及び通信経路140Bを介して、論理ボリューム130にアクセス可能である。同様に、第2コントローラ100Bは、通常の場合、通信経路140Bを介して、論理ボリューム130にアクセスする。通信経路140Bに障害が発生した場合、コントローラ100Bは、交代経路141B及び通信経路140Aを介して、論理ボリューム130にアクセス可能である。
もっとも、本実施例では、後述のように、各コントローラ100A,100B間を接続するためのコントローラ間通信経路P1と、一方の記憶制御装置10内のコントローラ100A,100Bと他方の記憶制御装置20内のコントローラ200A,200Bとを接続するためのノード間通信経路NPA,NPBとを備えている。
従って、例えば、コントローラ100Aは、通信経路P1を介して、コントローラ100Bにコマンド及びデータを渡すことにより、論理ボリューム130へのアクセスをコントローラ100Bに行わせることもできる。また、コントローラ100Aは、装置間通信経路NPAを介して、他方の記憶制御装置20内のコントローラ200Aにコマンド及びデータを渡すことにより、論理ボリューム230へのアクセスをコントローラ200Aに行わせることもできる。
同様に、コントローラ100Bは、通信経路P1を介してコントローラ100Aにコマンド及びデータを渡すことにより、コントローラ100Aに論理ボリューム130へのアクセスを行わせることができる。また、コントローラ100Bは、装置間通信経路NPBを介して、コントローラ200Bにコマンド及びデータを渡すことにより、論理ボリューム230へのアクセスをコントローラ200Bに行わせることもできる。
さらに、後述のように、場合によっては、コントローラ間通信経路P1,P2と装置間通信経路NPA,NPBを適宜組み合わせて用いることもできる。例えば、コントローラ100Aは、通信経路P1とコントローラ100B及び装置間通信経路NPBを介して、コントローラ200Bにコマンド及びデータを転送することもできる。装置間通信経路NPA,NPBは、ノード間通信経路と呼ぶこともできる。
コントローラ間通信経路P1,P2と装置間通信経路NPA,NPBとは、例えば、PCI(Peripheral Component Interconnect)Expressのようなシリアルインターフェースとして、それぞれ構成可能である。これにより、ホスト側プロトコルチップの備えるコマンド転送機能を有効に利用することができ、転送時のオーバーヘッドを低減することができる。
このように、本実施例では、コントローラ100Aが、コントローラ100Aの管理下にある論理ボリューム130にアクセスする場合は、通信経路140A、または、交代経路141A及び通信経路140Bのいずれかを使用する。即ち、コントローラ100Aは、コントローラ100Aが処理すべきコマンドをホスト1から受信した場合、通信経路140Aや交代経路141Aを用いて、目的の論理ボリューム130にアクセスする。
これに対し、コントローラ100Aは、他のコントローラ(100B,200A,200B)の管理下にある論理ボリュームに関するコマンドを受信した場合、このコマンドを、そのコマンドを処理すべきコントローラ(担当コントローラ)に転送する。これにより、そのコマンドを処理すべき担当コントローラによって、そのコマンドを処理させるようになっている。以上、コントローラ100Aを例に挙げて説明したが、コントローラ100B,200A,200Bについても同様である。
第2記憶制御装置20は、本実施例では、第1記憶制御装置10と同様の構成を備えている。即ち、第2記憶制御装置20は、第1記憶制御装置10の筐体とは別の筐体内に収容された第1コントローラ200A及び第2コントローラ200Bと、各コントローラ200A,200Bに通信経路240A,240Bを介して接続された論理ボリューム230とを備えて構成される。第2記憶制御装置20には、論理ボリューム230を備えた拡張筐体21を接続することができる。なお、第1記憶制御装置10により管理される論理ボリューム130の総数と、第2記憶制御装置20により管理される論理ボリューム230の総数とは、それぞれ異なっていてもよい。ユーザは、必要に応じて、拡張筐体11,21を適宜増設することができる。
図2を参照して、論理ボリューム130,230を説明する。以下、論理ボリューム130を中心に説明する。論理ボリューム130(230)は、一つまたは複数の記憶ドライブ110(210)の有する物理的な記憶領域上に設けられる論理的な記憶デバイスである。
図2(a)に示すように、複数の記憶ドライブ110(210)がそれぞれ有する物理的な記憶領域をRAIDグループ(パリティグループ)120(220)としてグループ化することができる。そして、このRAIDグループ120(220)に、複数の論理ボリューム130(230)を設定することができる。図2(b)に示すように、一つの記憶ドライブ110(210)に一つまたは複数の論理ボリューム130(230)を設けることもできる。
記憶ドライブ110(210)としては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用することができる。ハードディスクデバイスを用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を利用可能である。半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々のメモリデバイスを利用可能である。
なお、異なる種類の記憶ドライブを混在させてもよい。例えば、第1記憶制御装置10の管理下にある記憶ドライブ110を第1種類の記憶ドライブから構成し、第2記憶制御装置20の管理下にある記憶ドライブ210を第2種類の記憶ドライブから構成することができる。または、基本筐体10,20内の記憶ドライブ(例えば、半導体メモリ)と拡張筐体11,21内の記憶ドライブ(例えば、ハードディスク)との種類を変えることもできる。さらに、基本筐体10,20または拡張筐体11,21の少なくともいずれか一方において、異なる種類の記憶ドライブを混在させる構成でもよい。
図3を参照して、各コントローラ100A,100B,200A,200Bの構成を説明する。本実施例では、各コントローラ100A,100B,200A,200Bは、それぞれ同一の構成を備えているため、コントローラ100Aを中心に説明する。なお、以下の説明では、特に区別する必要が無い場合、コントローラ100A,100Bをコントローラ100と、コントローラ200A,200Bをコントローラ200と略称することがある。
コントローラ100Aは、例えば、ホスト側プロトコルチップ101と、ドライブ側プロトコルチップ102と、データ転送制御回路103と、キャッシュメモリ104と、プロセッサ(図中「MPU」)105と、メモリ106とを備えて構成される。
ホスト側プロトコルチップ101は、ホスト1の有するインターフェースと通信経路CNを介して接続されており、ホスト1との間の通信を担当する。後述のように、ホスト側プロトコルチップ101は、ホスト1から受信したコマンドを解析し、そのコマンドを処理すべきコントローラ(プロセッサ)に、コマンドを転送する機能を備えている。この機能を、例えば、コマンド転送機能、コマンド分配機能、コマンド振り分け機能等と呼ぶこともできる。
ドライブ側プロトコルチップ102は、通信経路140Aを介して、各記憶ドライブ110にそれぞれ接続されており、記憶ドライブ110との間の通信を担当する。データ転送制御回路103については、後述する。
キャッシュメモリ104は、ホスト1から受信されたライトデータや、論理ボリューム130から読み出されたリードデータ等を記憶する。キャッシュメモリ104に、後述するテーブルT1〜T4のような制御情報や管理情報を記憶させることもできる。また、本実施例では、後述のように、同一筐体内に存在するコントローラ間で、あるいは別々の筐体に存在するコントローラ間で、キャッシュメモリ104に記憶されているデータを多重管理することができるようになっている。なお、キャッシュメモリ104を揮発性メモリから構成する場合、バッテリ電源や電池によって、キャッシュメモリ104の記憶内容を保持する。
プロセッサ105は、コントローラ100Aの全体動作を制御する。プロセッサ105は、メモリ106に記憶されたプログラムを読み込んで実行することにより、例えば、ホスト1から発行されたアクセス要求等を処理する。
データ転送制御回路103は、例えば、ホストDMA(Direct Memory Access)回路103Aと、ドライブDMA回路103Bと、キャッシュ側データ転送回路103Cと、プロセッサ側データ転送回路103Dと、コントローラ間通信回路103Eと、装置間通信回路103Fとを備えて構成することができる。
ホストDMA回路103Aは、ホスト側プロトコルチップ101とキャッシュメモリ104との間のデータ転送(DMA転送)を行う。ドライブDMA回路103Bは、ドライブ側プロトコルチップ102とキャッシュメモリ104との間のデータ転送(DMA転送)を行う。
キャッシュ側データ転送回路103Cは、キャッシュメモリ104へのデータ入出力を担当する。この回路103Cは、例えば、所定サイズのデータ毎にチェックコードを算出して付加したり、既に付加されたチェックコードの検査を行うこともできる。プロセッサ側データ転送回路103Dは、プロセッサ105からのデータ入出力を担当する。
コントローラ間通信回路103Eは、コントローラ間通信経路P1を介して、同一筐体内に設けられている他のコントローラ100Bとの間の通信を行う。装置間通信回路103Fは、装置間通信経路NPAを介して、他の筐体内のコントローラ200Aとの間の通信を行う。本実施例では、第1記憶制御装置10内のコントローラ100Aと第2記憶制御装置20内のコントローラ200Aとが対応し、第1記憶制御装置10内のコントローラ100Bと第2記憶制御装置20内のコントローラ200Bとが対応している。装置間通信経路NPA,NPBは、別々の筐体(記憶制御装置)に属している対応するコントローラ間を接続するための通信経路である。
第1記憶制御装置10内のコントローラ100Bは、コントローラ100Aと同様に構成されているので、説明を省略する。第2記憶制御装置20のコントローラ200Aも、コントローラ100Aと同様に構成されている。即ち、コントローラ200Aは、例えば、ホスト側プロトコルチップ201と、ドライブ側プロトコルチップ202と、データ転送制御回路203と、キャッシュメモリ204と、プロセッサ205と、メモリ206とを備えて構成される。
データ転送制御回路203は、例えば、ホストDMA回路203Aと、ドライブDMA回路203Bと、キャッシュ側データ転送回路203Cと、プロセッサ側データ転送回路203Dと、コントローラ間通信回路203Eと、装置間通信回路203Fとを備えて構成することができる。
コントローラ間通信回路203Eは、コントローラ間通信経路P2を介して、コントローラ200B内のコントローラ間通信回路に接続されている。装置間通信回路203Fは、装置間通信経路NPAを介して、コントローラ100Aの装置間通信回路103Fに接続されている。第2記憶制御装置20内のコントローラ200Bは、コントローラ200Aと同様の構成であるため、説明を省略する。
図4〜図7を参照して、記憶制御装置10,20を制御するためのテーブル構造を説明する。以下に説明する各テーブルT1〜T4は、例えば、キャッシュメモリ104,204に記憶させることができる。
図4は、各記憶制御装置10,20の筐体を管理するための管理テーブルT1の構成例を示す。この筐体管理テーブルT1は、例えば、各基本筐体をそれぞれ管理するための基本筐体管理テーブルT11,T12,...T12Mを含んで構成される。
各基本筐体テーブルT11等は、例えば、筐体識別番号と、基本筐体番号及び拡張筐体番号を対応付けることにより構成される。筐体識別番号とは、ストレージシステム内において各筐体を一意に特定するための情報である。例えば、各筐体にディップスイッチやロータリースイッチ等を設けておけば、このスイッチを用いて各筐体毎に筐体識別番号を設定することができる。
基本筐体番号とは、その筐体の属する基本筐体を特定するための情報である。例えば、第1記憶制御装置10に属する筐体には基本筐体番号として「1」が設定され、第2記憶制御装置20に属する筐体には基本筐体番号として「2」が設定される。拡張筐体番号とは、同一の基本筐体に連結された拡張筐体を識別するための情報である。図4に示すような筐体管理テーブルT1を用いることにより、ストレージシステム内の各筐体をそれぞれ識別して、管理することができる。
図5は、ドライブ110,210を管理するためのテーブルT2の一例を示す。このドライブ管理テーブルT2は、例えば、RAIDグループ番号と、RAIDレベルと、筐体識別番号と、ドライブ番号リストとを対応付けて構成される。
RAIDグループ番号とは、ストレージシステム内に設けられている各RAIDグループ120,220を、ストレージシステム内で一意に特定するための情報である。RAIDレベルとは、そのRAIDグループのRAID構成を示す情報である。筐体識別番号とは、そのRAIDグループが設けられている筐体を識別するための情報である。ドライブ番号リストとは、そのRAIDグループを構成する記憶ドライブ110,210を示す情報である。このようなテーブルT2を用いることにより、ストレージシステム内の各RAIDグループ120,220が、どの筐体に設けられており、どの記憶ドライブ110,210から構成されているのか等を管理することができる。
図6は、ストレージシステム内の各コントローラ100A,100B,200A,200Bを管理するためのテーブルT3の一例を示す。このコントローラ管理テーブルT3は、例えば、コントローラ識別番号と、基本筐体番号と、コントローラ種別とを対応付けることにより構成される。
コントローラ識別番号とは、各コントローラ100A,100B等をストレージシステム内で一意に識別するための情報である。基本筐体番号は、そのコントローラが設けられている基本筐体を特定するための情報である。コントローラ種別とは、そのコントローラの属する制御系統(本実施例では、A系統かB系統化の区別)を示す情報である。このようなテーブルT3を用いることにより、コントローラがいずれの基本筐体に設けられており、いずれの制御系統に属するのかを管理することができる。
図7は、ストレージシステム内の各論理ボリューム130,230を管理するためのテーブルT4の一例を示す。このボリューム管理テーブルT4は、例えば、論理ボリューム番号(図中「LU番号」)と、コントローラ識別番号と、RAIDグループ番号と、RAIDグループ開始位置と、記憶容量とを対応付けることにより構成される。論理ボリューム番号とは、ストレージシステム内において各論理ボリューム130,230を一意に特定するための情報である。コントローラ識別番号とは、その論理ボリュームへのデータ入出力を担当しているコントローラを特定するための情報である。RAIDグループ番号とは、その論理ボリュームが設けられているRAIDグループを特定するための情報である。RAIDグループ開始位置とは、RAIDグループ内において、その論理ボリュームが開始される位置を示すアドレス情報である。即ち、RAIDグループ開始位置は、RAIDグループ内における論理ボリュームの先頭アドレスを意味する。記憶容量とは、その論理ボリュームの記憶容量を示す情報である。
なお、図7では、ボリューム管理テーブルT4の基本構造を示している。実際には、書込みモードの設定内容等を管理するための情報もテーブルT4に含まれる。書込みモードの設定内容等まで管理可能なボリューム管理テーブルT4Aについては、図を改めて後述する。
図8〜図11に基づいて、本実施例によるストレージシステムの動作を述べる。図8は、ホスト1を介さずに、ホスト1から受信したコマンドやデータを記憶制御装置10,20間で転送する様子を示す説明図である。
図8では、説明の便宜上、構成の一部や符号を省略して示す。ホスト1から発行されたライトコマンドをコントローラ100Aが受信し、コントローラ100Aからコントローラ200Aにライトコマンドを転送する様子を説明する。
ホスト1から発行されたライトコマンドは、コントローラ100Aのホスト側プロトコルチップ101によって受信される。ライトコマンド及びライトデータは、ホストDMA回路103A及びキャッシュ側データ転送回路103Cを介して、コントローラ100A内のキャッシュメモリ104に記憶される。
また、キャッシュメモリ104に記憶されたライトデータは、キャッシュ側データ転送回路103Cから装置間通信回路103Fに転送され、装置間通信経路NPAを介して、対応するコントローラ200A内に転送される。
コントローラ200Aは、装置間通信経路NPAを介してコントローラ100Aに接続されている。コントローラ100Aからコントローラ200Aを見た場合、コントローラ100Aが接続元コントローラ(または転送元コントローラ)となり、コントローラ200Aが接続先コントローラ(または転送先コントローラ)となる。
コントローラ200A内の装置間通信回路203Fは、コントローラ100Aから送信されたライトデータを受信する。このライトデータは、回路203Fから回路203Cを介して、コントローラ200A内のキャッシュメモリ204に記憶される。このように、本実施例では、装置間通信経路NPAを介して、コントローラ100A,200A間で、コマンドやデータを転送することができるようになっている。なお、コントローラ100B,200B間においても、装置間通信経路NPBを介して、コマンドやデータを転送可能となっている。
図9は、第1記憶制御装置10内の各コントローラ100A,100Bが備えるキャッシュメモリ104,104と、第2記憶制御装置20内の各コントローラ200A,200Bが備えるキャッシュメモリ204,204との関係を模式的に示す。
本実施例では、ホスト1から受信したライトデータを、合計4個のキャッシュメモリ104,204にそれぞれ書き込む。この書込みモードは、例えば、第1書込みモード、または、4重書きモード、あるいは、装置間多重書込みモードと呼ぶことができる。
図9において、例えば、ホスト1から、第1記憶制御装置10の管理下にあるA系統の論理ボリューム130に向けて、ライトコマンドが発行されたものとする。このライトコマンドをコントローラ100Aが受信すると、コントローラ100Aは、ライトデータをコントローラ100A内のキャッシュメモリ104に記憶させる。
コントローラ100Aは、キャッシュメモリ104に記憶させたライトデータを、コントローラ間通信経路P1を介してコントローラ100Bに転送する。コントローラ100Bは、コントローラ100Aから受信したライトデータを、コントローラ100B内のキャッシュメモリ104に記憶させる。
さらに、コントローラ100Aは、キャッシュメモリ104に記憶させたライトデータを、装置間通信経路NPAを介して、別の記憶制御装置20内のコントローラ200Aに向けて転送する。コントローラ200Aは、コントローラ100Aから受信したライトデータを、コントローラ200A内のキャッシュメモリ204に記憶させる。また、コントローラ200Aは、キャッシュメモリ204に記憶させたライトデータを、コントローラ間通信経路P2を介してコントローラ200Bに転送する。コントローラ200Bは、コントローラ200Aから受信したライトデータを、コントローラ200B内のキャッシュメモリ204に記憶させる。このように、本実施例では、ホスト1から受信したライトデータを4個のキャッシュメモリ104,204でそれぞれ保持する。
図10は、上述のライト処理を示すフローチャートである。なお、以下に述べる各フローチャートは、本発明の理解及び実施に必要な範囲内で処理の概要を示しており、実際のプログラムと相違する場合がある。以下の説明では、ステップを「S」と略記する。また、以下に述べる各処理は、各コントローラ100A,100B,200A,200Bによってそれぞれ実行することができるが、理解を容易にするために、コントローラ100Aを動作の主体とする場合を中心に説明する。
コントローラ100Aは、ホスト1からライトコマンドを受信すると(S11)、ホスト1から受信したライトデータにチェックコードを付加する(S12)。ここで、チェックコードとは、ライトデータの内容を保証するための情報である。例えば、512バイトのライトデータ毎にそれぞれ8バイトのチェックコードが生成され、ライトデータに付加される。
コントローラ100Aは、自分の存在する筐体内(この場合は、第1記憶制御装置10内)において、ライトデータを多重管理させる(S13)。即ち、コントローラ100Aは、コントローラ間通信経路P1を介して、同一基本筐体(記憶制御装置10)に属する他のコントローラ100Bにライトデータを転送し、コントローラ100B内のキャッシュメモリ104にライトデータを記憶させる。
また、コントローラ100Aは、装置間通信経路NPAを介して、他の基本筐体(記憶制御装置20)に設けられているコントローラ200Aにライトデータを転送し、他の基本筐体内においてもライトデータを多重管理させる(S14)。即ち、コントローラ200Aは、コントローラ100Aから受信したライトデータをコントローラ200A内のキャッシュメモリ204に記憶させると共に、コントローラ100Aから受信したライトデータを、コントローラ間通信経路P2を介してコントローラ200Bに転送する。これにより、コントローラ200Bは、コントローラ200Aから受信したライトデータを、コントローラ200B内のキャッシュメモリ204に記憶させる。
このようにして、それぞれ異なる筐体で同一のライトデータを多重管理させた後、コントローラ100Aは、ライトコマンドで指定された書込み先の論理ボリューム130がコントローラ100Aの管理下にあるか否かを判定する(S15)。
コントローラ100Aの管理下にある論理ボリューム130についてのライトコマンドである場合(S15:YES)、コントローラ100Aは、所定の記憶ドライブ110にライトデータを書き込む(S16)。所定の記憶ドライブ110とは、書込み先の論理ボリューム130を構成する記憶ドライブである。
コントローラ100Aは、記憶ドライブ110にライトデータを書き込む際に、チェックコードを改めて算出し、この算出されたチェックコードとS12で付加されたチェックコードとを比較する(S17)。コントローラ100Aは、両チェックコードが一致するか否かを判定する(S18)。
両チェックコードが一致する場合(S18:YES)、コントローラ100Aは、ホスト1にライトコマンドが正常に処理された旨を通知する(S19)。これに対し、両チェックコードが不一致の場合(S18:NO)、コントローラ100Aは、ホスト1にライトコマンドの処理が異常終了した旨を通知する(S20)。
このように、ライトデータを所定サイズに区切ってチェックコードをそれぞれ付加し、記憶ドライブ110に対してデータを読み書きする際に、チェックコードを検査することにより、データの読み書きが正常に行われたことを保証できる。従って、記憶制御装置10,20の信頼性を高めることができる。しかし、それほどの信頼性が必要とされていない場合等には、チェックコードの付加及び検査に関する構成を除いてもよい。
また、図10では、コントローラ100Aは、記憶ドライブ110にライトデータを書き込んだ後で、ホスト1に書込み完了を報告する場合を述べた。しかし、これに限らず、ホスト1から受信したライトデータを、コントローラ100A,100B内の各キャッシュメモリ104にそれぞれ記憶させた時点で、ホスト1に書込み完了を報告する構成としてもよい。即ち、記憶ドライブ110へライトデータを書き込む前に、ホスト1にライトコマンドの処理が完了した旨を通知することもできる。
なお、コントローラ100B,200A,200B内のキャッシュメモリ104,204,204にそれぞれ記憶されたライトデータは、適切なタイミングで消去することができる。例えば、キャッシュメモリの空き容量が所定値以下に低下した場合、他のコントローラが管理責任を負うライトデータについては、消去させることができる。例えば、コントローラ200Aは、コントローラ100Aの管理下にある論理ボリューム130へのライトデータを、所定の場合に、キャッシュメモリ204から消去可能である。
図11は、リード処理を示すフローチャートである。コントローラ100Aは、ホスト1からリードコマンドを受信すると(S31)、リードコマンドで要求されたデータを所定の記憶ドライブ110から読み出す(S32)。即ち、コントローラ100Aは、リードコマンドで指定された論理アドレスに対応する記憶デバイス110の記憶領域から、リードコマンドで指定されたサイズのデータを読出す。このデータには、図10中のS12で算出されたチェックコードが付加されている。コントローラ100Aは、チェックコードを含めてデータを読み出す。
コントローラ100Aは、記憶ドライブ110から読み出されたデータについて、チェックコードを改めて算出し、この算出されたチェックコードと記憶ドライブ110から読み出されたデータに付加されているチェックコードとを比較する(S33)。
両チェックコードが一致する場合(S33:YES)、コントローラ100Aは、記憶ドライブ110から読み出されたデータからチェックコードを削除する(S34)。コントローラ100Aは、チェックコードの除去されたデータをホスト1に送信し、リードコマンドが正常に終了した旨を報告する(S35)。
これに対し、両チェックコードが不一致の場合(S33:NO)、コントローラ100Aは、リードコマンドが異常終了した旨をホスト1に通知する(S36)。なお、コマンドが異常終了した場合、例えば、ホスト1は、再びコマンドを発行することができる。
図12は、第2の書込みモードが設定された場合の様子を示す説明図である。図12には、担当外のコマンドをホスト1から受信した場合に、そのコマンドを担当するべきコントローラに転送させる様子が模式的に示されている。
例えば、コントローラ100Aが、コントローラ200Aの管理下にある論理ボリューム230に関するライトコマンドをホスト1から受信した場合、コントローラ100Aは、このライトコマンド及びライトデータを、担当コントローラであるコントローラ200Aに装置間通信経路NPAを介して転送する。
コントローラ200Aは、コントローラ100Aから受信したライトデータをコントローラ200A内のキャッシュメモリ204に記憶させる。また、コントローラ200Aは、同一筐体内の他のコントローラ200Bにライトデータを転送し、コントローラ200B内のキャッシュメモリ204にも記憶させる。
即ち、図12に示すように、本実施例では、第2の書込みモードが設定された場合、コマンド受信元のコントローラ(この例では、コントローラ100A)は、受信したコマンドが対象とする論理ボリュームがコマンド受信元コントローラの設けられている基本筐体の管理下にあるか否かを判定する。そのコマンドの対象となる論理ボリュームがコマンド受信元コントローラの設けられている基本筐体の管理下に無い場合、受信元コントローラは、そのコマンドを処理すべきコントローラに、そのコマンドを転送する。そのコマンドを処理すべきコントローラとは、そのコマンドの処理対象となっている論理ボリュームを管理するコントローラであり、担当コントローラとも呼ぶ。
コマンド受信元コントローラ(図12の例では、100A)と、担当コントローラ(図12の例では、200A)とは、それぞれ別々の基本筐体に設けられており、両コントローラは装置間通信経路NPAを介して接続されている。従って、コマンドやデータの転送に着目すると、コマンド受信元コントローラは接続元コントローラとなり、担当コントローラは接続先コントローラとなる。コマンド受信元のコントローラは、ライトデータを担当コントローラに転送した後、コマンド受信元コントローラ内のキャッシュメモリに記憶されているライトデータを消去することができる。なお、上述の第2書込みモードは、例えば、2重書きモード、または、装置内多重書込みモードと呼ぶことができる。
図13は、第2書込みモードによるライト処理を示すフローチャートである。理解のために、コントローラ100Aを動作の主体として述べる。コントローラ100Aは、ホスト1からライトコマンドを受信すると(S41)、このライトデータにチェックコードを付加する(S42)。
コントローラ100Aは、ライトコマンドを受信した筐体内において、ホスト1から受信したライトデータを多重管理する(S43)。即ち、コントローラ100Aは、ホスト1から受信したライトデータをコントローラ100A内のキャッシュメモリ104に記憶させると共に、このライトデータを同一筐体内の他のコントローラ100Bに転送し、コントローラ100B内のキャッシュメモリ104にも記憶させる。
コントローラ100Aは、S41で受信したライトコマンドの書込み先論理ボリュームが、コントローラ100Aの設けられている基本筐体の管理下にあるか否かを判定する(S44)。
ライトコマンドの書込み対象の論理ボリュームが別の基本筐体の管理下にある場合(S44:NO)、即ち、この例では、第2記憶制御装置20の管理下にある論理ボリューム230に関するライトコマンドである場合、コントローラ100Aは、担当コントローラ200Aのキャッシュメモリ204に、ライトデータを転送する(S45)。つまり、コントローラ100Aは、書込み対象の論理ボリューム230の記憶領域に対応するキャッシュメモリ204に、ライトデータを転送する。コントローラ200A内のデータ転送制御回路203は、コントローラ100Aから受信したライトデータについてチェックコードを生成する。
ライトデータの転送元であるコントローラ100Aは、転送前のチェックコードと転送後のチェックコードとを比較し(S46)、両チェックコードが一致するか否かを判定する(S47)。両チェックコードが不一致の場合(S47:NO)、コントローラ100Aは、コントローラ200Aにライトデータを再送する(S45)。
両チェックコードが一致する場合(S47:YES)、コントローラ100Aは、削除モードが設定されているか否かを判定する(S48)。削除モードとは、ライトデータ転送元のコントローラ100Aのキャッシュメモリ104に記憶されたライトデータを削除させるためのモードである。後述のように、書込みモードや削除モードは、ユーザが、各論理ボリューム130,230毎に個別に設定可能となっている。
削除モードが設定されている場合(S48:YES)、コントローラ100Aは、コントローラ100A内のキャッシュメモリ104に記憶されているライトデータを、消去させる(S49)。これにより、担当外の論理ボリュームに関するライトデータによって、キャッシュメモリが使用されるのを抑制することができる。
S41で受信したライトコマンドの書込み対象となっている論理ボリュームが、コマンド受信元であるコントローラ100Aの属する基本筐体の管理下にある場合(S44:YES)、コントローラ100Aは、ライトコマンドの書込み対象となっている論理ボリューム130が、コントローラ100Aの管理下にあるか否かを判定する(S50)。
コントローラ100Aの管理下にある論理ボリューム130に関するライトコマンドである場合(S50:YES)、コントローラ100Aは、所定の記憶ドライブ110にライトデータを書込み(S51)、上述のようにチェックコードを比較する(S52)。S42で付加したチェックコードと記憶ドライブ110にライトデータを書き込む際に算出したチェックコードとが一致する場合(S53:YES)、コントローラ100Aは、ホスト1に書込みが正常に終了した旨を通知する(S54)。前記各チェックコードが不一致の場合(S53:NO)、コントローラ100Aは、ホスト1にライトコマンドの処理が異常終了した旨を通知する(S55)。
一方、コントローラ100Bの管理下にある論理ボリューム130に関するライトコマンドである場合(S50:NO)、コントローラ100Aは、ホスト1から受信したライトデータを、コントローラ間通信経路P1を介してコントローラ100Bに転送し、コントローラ100B内のキャッシュメモリ104に記憶させる(S56)。
図14は、上述の第1書込みモード及び第2書込みモードを論理ボリューム毎に設定するための処理を示すフローチャートである。ユーザは、例えば、ホスト1に設けられたストレージ管理ソフトウェア等を介して、モード設定処理を行うためのユーザインターフェースを利用することができる。
まず、ユーザは、論理ボリュームを選択し(S61)、次に、選択した論理ボリュームに適用する書込みモードを選択する(S62)。ユーザの選択した書込みモードが2重書きモードの場合、S61で選択された論理ボリュームには2重書きモードが設定される(S63)。ユーザの選択した書込みモードが4重書きモードの場合、S61で選択された論理ボリュームには4重書きモードが設定される(S64)。
2重書きモードが選択された場合、ユーザは、削除モードをオンに設定するか否かを決定することができる(S65)。ユーザが削除モードの利用を望む場合(S65:YES)、S61で選択された論理ボリュームに削除モードが適用される(S66)。ユーザによって選択された設定内容は、ボリューム管理テーブルT4Aに登録される(S67)。
図14に示すボリューム管理テーブルT4Aは、図7に示すテーブルT4に比べて、書込みモードの種別を特定するための情報と、削除モードのオンオフを判別するための情報とが含まれている。従って、各コントローラは、このボリューム管理テーブルT4Aを用いることにより、キャッシュメモリへのデータ転送等を制御することができる。
このように構成される本実施例では、ホスト1から受信したコマンドの実行先(担当コントローラ)を、記憶制御装置10,20側で判別し、そのコマンドを処理すべきコントローラに転送することができる。これにより、複数の記憶制御装置10,20を連結した場合でも、ホスト1に経路切替ソフトウェア等のような特別なソフトウェアを設ける必要がなく、ホスト1に全く意識させずに、記憶制御装置10,20側で処理経路を切り替えることができる。従って、複数の記憶制御装置10,20を容易かつ低コストに連結して運用することができ、接続可能なホスト1の数を増加させて、使い勝手を高めることができる。
本実施例では、複数種類の書込みモードをユーザが自由に選択可能であり、別々の筐体内のキャッシュメモリ104,204を用いて同一のライトデータを多重管理することができる。つまり、記憶制御装置10,20を結合させることにより、全体としての信頼性を高めることができる。
本実施例では、論理ボリューム毎に書込みモードや削除モードを設定可能である。これにより、論理ボリューム単位で信頼性レベル等を適宜設定することができ、使い勝手が向上する。
図15〜図17に基づいて第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例である。従って、重複する説明を割愛し、各実施例に特徴的な部分を中心に述べる。
図15は、記憶制御装置10,20を連結された場合の障害回避方法(経路変更方法)を模式的に示す説明図である。図15(a)は障害発生前の通常状態を示す。コントローラ100Aが、コントローラ200Aの管理下にある論理ボリューム230を書込み対象とするライトコマンドを受信した場合を例に挙げて説明する。
図15(a)に点線で示すように、通常時においては、コントローラ100Aは、装置間通信経路NPAを介して、担当コントローラであるコントローラ200A内のキャッシュメモリ204にライトデータを転送する。コントローラ200Aは、キャッシュメモリ204に書き込まれたライトデータを、通信経路240Aを介して、書込み対象の論理ボリューム230に記憶させる。
図15(b)は、装置間通信経路NPAに通信障害が生じた場合を示す。障害が発生した場合、図中に点線で示すように、コントローラ100Aは、同一基本筐体内の他のコントローラ100Bを介して、担当コントローラであるコントローラ200Aにライトデータを転送し、コントローラ200A内のキャッシュメモリ204に記憶させる。即ち、コントローラ100A→コントローラ100B→装置間通信経路NPB→コントローラ200B→コントローラ200Aの経路を通って、ライトデータは転送される。
図16は、障害回避を行う場合の処理を示すフローチャートである。ここでは、コントローラ100Aが2重書きモードを行う場合を例に挙げて説明する。まず、コントローラ100Aは、ホスト1からライトコマンドを受信すると(S71)、ライトデータにチェックコードを付加し(S72)、次に、同一基本筐体内の各キャッシュメモリ104,104にそれぞれ保持させる(S73)。
コントローラ100Aは、書込み先の論理ボリュームがコントローラ100Aの設けられている基本筐体の管理下にあるか否かを判定する(S74)。書込み先の論理ボリュームがコントローラ100Aの設けられている基本筐体の管理下に無い場合(S74:NO)、コントローラ100Aは、装置間通信経路NPAが正常か否かを判定する(S75)。
装置間通信経路NPAが正常である場合(S75:YES)、コントローラ100Aは、装置間通信経路NPAを介して、担当コントローラであるコントローラ200A内のキャッシュメモリ204にライトデータを転送する(S76)。そして、コントローラ100Aは、転送前後のチェックコードを比較し(S77)、両チェックコードが一致するか否かを判定する(S78)。両チェックコードが不一致の場合(S78:NO)、S76に戻る。両チェックコードが一致する場合(S78:YES)、コントローラ100Aは、書込み対象の論理ボリュームについて削除モードがオンに設定されているか否かを判定する(S79)。削除モードがオンに設定されている場合(S79:YES)、コントローラ100Aは、コントローラ100A内のキャッシュメモリ104からライトデータを消去させる(S80)。
一方、接続元(転送元)のコントローラ100Aと接続先(転送先)のコントローラ200Aとを接続する装置間通信経路NPAに障害が発生している場合(S75:NO)、コントローラ100Aは、障害を迂回するための経路を探索する。
コントローラ100Aは、同一基本筐体に設けられている他のコントローラ100Bに接続するためのコントローラ間通信経路P1が正常か否かを判定する(S81)。コントローラ間通信経路P1が正常な場合(S81:YES)、コントローラ100Aは、コントローラ100Bのキャッシュメモリ104にライトデータを転送して記憶させる(S82)。
コントローラ100Aは、コントローラ100Bとコントローラ200Bとを接続する装置間通信経路NPBが正常であるか否かを判定する(S83)。装置間通信経路NPBが正常な場合(S83:YES)、コントローラ100Aは、コントローラ100Bのキャッシュメモリ104に記憶されたライトデータを、コントローラ200A内のキャッシュメモリ204に転送して記憶させる(S84)。即ち、ライトデータは、装置間通信経路NPB→コントローラ200B→コントローラ間通信経路P2→コントローラ200Aという経路を通って、コントローラ200A内のキャッシュメモリ204に記憶される。
コントローラ100Aは、転送前後のチェックコードを検査し、チェックコードが一致する場合は、削除モードが設定されているか否かを確認し、削除モードが設定されている場合にはコントローラ100A及びコントローラ100B内のキャッシュメモリ104,104に記憶されているライトデータを消去させる(S85)。
一方、コントローラ100A,100B間の通信経路P1に障害が発生している場合(S81:NO)、または、コントローラ100B,コントローラ200B間の通信経路NPBに障害が発生している場合(S83:NO)には、担当コントローラであるコントローラ200Aにライトデータを転送することができない。そこで、コントローラ100Aは、ホスト1にライトコマンドを正常に終了できなかった旨を通知する(S86)。
図17は、図16に続くフローチャートである。図16中のS74で「NO」と判定された場合、つまり、書込み対象の論理ボリュームがコントローラ100Aの属する基本筐体の管理下にある場合、コントローラ100Aは、書込み対象の論理ボリュームがコントローラ100Aの管理下にあるか否かを判定する(S91)。
書込み対象の論理ボリュームがコントローラ100Aの管理下にある場合(S91:YES)、コントローラ100Aは、記憶ドライブ110にアクセスするための通信経路140Aが正常であるか否かを判定する(S92)。通信経路140Aが正常に機能している場合(S92:YES)、コントローラ100Aは、所定の記憶ドライブ110にライトデータを書込む(S93)。そして、コントローラ100Aは、コントローラ100A内のキャッシュメモリ104に記憶されているライトデータのチェックコードと記憶ドライブ110に書き込まれたライトデータのチェックコードとを比較し(S94)、両チェックコードが一致するか否かを判定する(S95)。
両チェックコードが一致する場合(S95:YES)、コントローラ100Aは、ホスト1にライトコマンドが正常に終了した旨を報告する(S96)。両チェックコードが不一致の場合(S95:NO)、コントローラ100Aは、ホスト1にライトコマンドの処理に失敗した旨を報告する(S97)。
記憶ドライブ110へアクセスするための通信経路140Aに障害が発生している場合(S92:NO)、コントローラ100Aは、書込み対象の論理ボリュームを担当するコントローラをコントローラ100Aからコントローラ100Bに変更し、S99に移る。
書込み対象の論理ボリュームがコントローラ100Aの管理下になく、同一基本筐体に属する他のコントローラ100Bの管理下にある場合(S91:NO)、即ち、そのライトコマンドを処理すべき担当コントローラがコントローラ100Bの場合、コントローラ100Aは、コントローラ間通信経路P1が正常であるか否かを判定する(S99)。
コントローラ間通信経路P1が正常である場合(S99:YES)、コントローラ100Aは、コントローラ100B内のキャッシュメモリ104にライトデータを転送して記憶させる(S100)。コントローラ間通信経路P1に障害が発生している場合(S99:NO)、迂回経路を発見することができないため、コントローラ100Aは、ホスト1にライトコマンドの異常終了を報告する(S101)。なお、S99で「NO」と判定された場合であっても、装置間通信経路NPA,NPBが正常である場合には、コントローラ100A→NPA→コントローラ200A→P2→コントローラ200B→NPB→コントローラ100Bの経路を通って、コントローラ100Aからコントローラ100B内のキャッシュメモリ104にライトデータを転送させることもできる。
また、S92で「NO」と判定された場合に、コントローラ100Aは、交代経路141Aを利用して記憶ドライブ110にアクセスすることもできる。交代経路141Aに障害が発生している場合、コントローラ100Aは、担当コントローラをコントローラ100Bに変更すればよい。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、通信経路に障害が発生した場合に、各記憶制御装置10,20内の通信経路P1,P2及び各記憶制御装置10,20間の通信経路NPA,NPBを利用して、有効な迂回経路を自動的に探索する。これにより、記憶制御装置10,20を連結した場合の耐障害性を高めることができ、信頼性も向上する。
図18〜図20に基づいて第3実施例を説明する。本実施例では、記憶制御装置10,20内で負荷を分散させるようになっている。図18は、モード設定処理を示すフローチャートである。図18のフローチャートは、図14中に示す各ステップに加えて、新規なステップS68,S69を備えている。
ユーザは、S61で選択した論理ボリュームについて、負荷分散モードをオンに設定するか否かを選択することができる(S68)。ユーザが負荷分散モードの利用を希望する場合(S68:YES)、選択された論理ボリュームについて負荷分散モードがオンに設定される(S69)。また、ユーザは、負荷分散モードを実行させるための閾値を適宜設定することもできる(S69)。
図18中のボリューム管理テーブルT4Bに示すように、本実施例では、テーブルT4Bに負荷分散モードの設定状態を示す情報及び負荷分散モードで使用される閾値を示す情報が登録される。
図19は、各プロセッサ105,205の使用率(負荷)を監視するための処理を示すフローチャートである。各コントローラ100,200は、自分の管理下にある各論理ボリューム130,230毎に、プロセッサの使用率を監視する。以下、コントローラ100Aの場合を例に挙げて説明する。
まず、コントローラ100Aは、最初の論理ボリューム130を選択し(S110)、この選択された論理ボリューム130に関して、プロセッサ105の使用率を取得する(S111)。例えば、選択された論理ボリューム130へのアクセス要求(ライトコマンドやリードコマンド)が多い場合、その論理ボリューム130に関するプロセッサ使用率は高くなる。
コントローラ100Aは、取得したプロセッサ使用率を記憶する(S112)。コントローラ100Aは、未だ負荷を調査していない論理ボリューム130が存在するか否かを判定する(S113)。未調査の論理ボリューム130が存在する場合(S113:NO)、コントローラ100Aは、次の論理ボリューム130を選択し(S114)、その論理ボリューム130に関するプロセッサ使用率を取得して記憶する(S111,S112)。このようにして、コントローラ100Aは、自己の管理下にある各論理ボリューム130について、プロセッサ使用率を定期的にまたは不定期に調査し、監視する。
図20は、負荷分散処理を示すフローチャートである。コントローラ100Aが実行する場合を例に挙げて説明する。コントローラ100Aは、ホスト1からコマンドを受信すると、そのコマンドの処理対象である論理ボリューム130について負荷分散モードがオンに設定されているか否かを判定する(S120)。
負荷分散モードがオンに設定されている場合(S120:YES)、コントローラ100Aは、図19に示す処理で収集されたプロセッサ使用率を参照する(S121)。コントローラ100Aは、コマンドの処理対象である論理ボリューム130に関するプロセッサ使用率が閾値よりも低いか否かを判定する(S122)。
プロセッサ使用率が閾値よりも低い場合(S122:YES)、高負荷状態が発生していないため、コントローラ100Aは、負荷分散を行うことなく本処理を正常に終了する。これに対し、プロセッサ使用率が閾値以上の場合(S122:NO)、コマンドの処理対象の論理ボリューム130について高負荷状態が発生している。そこで、コントローラ100Aは、その高負荷の論理ボリューム130について、担当コントローラを同一基本筐体内の他のコントローラ100Bに一時的に変更させる(S123)。
コントローラ100Aは、コントローラ間通信経路P1が正常であり(S124:YES)、かつ、一時的に変更された担当コントローラ100Bから記憶ドライブ110へアクセスするための通信経路140Bが正常であり(S125:YES)、かつ、コントローラ100Bのプロセッサ使用率が閾値よりも低い場合に(S126:YES)、高負荷の論理ボリューム130を担当するコントローラの変更を確定させる(S127)。
これにより、高負荷の論理ボリューム130へのデータ読み書きを担当するコントローラは、同一の基本筐体内において、コントローラ100Aからコントローラ100Bに変更される。そして、コントローラ100Aは、高負荷の論理ボリューム130について、コントローラ100A内のホスト側プロトコルチップ101の有するコマンド転送機能の設定を変更する(S128)。これ以後、高負荷の論理ボリューム130を対象とするコマンドを受信した場合、そのコマンドは、コントローラ100Aのホスト側プロトコルチップ101からコントローラ100Bのデータ転送制御回路103に転送される。
一方、通信経路P1に障害が発生している場合(S124:NO)、通信経路140Bに障害が発生している場合(S125:NO)、または、コントローラ100Bのプロセッサ使用率が閾値以上の場合(S126:NO)、高負荷の論理ボリューム130を担当するコントローラとしてコントローラ100Bを用いることはできない。
そこで、コントローラ100Aは、別の基本筐体に属するコントローラ200Aを、高負荷の論理ボリューム130を担当するコントローラとして一時的に選択する(S129)。即ち、高負荷の論理ボリューム130へのデータ読み書きを担当するコントローラは、コントローラ100Aからコントローラ200Aに一時的に変更される。
そして、コントローラ100Aは、装置間通信経路NPAが正常であり(S130:YES)、かつ、コントローラ200Aから記憶ドライブ210へアクセスするための通信経路240Aが正常であり(S131:YES)、かつ、コントローラ200Aのプロセッサ使用率が閾値よりも低い場合(S132:YES)、高負荷の論理ボリューム130に関する担当コントローラを、コントローラ100Aからコントローラ200Aに正式に変更させる(S133)。
装置間通信経路NPAに障害が発生しているか(S130:NO)、または、記憶ドライブ210へアクセスするための通信経路240Aに障害が発生しているか(S131:NO)、または、コントローラ200Aのプロセッサ使用率が閾値以上である場合(S132:NO)、コントローラ100Aは、高負荷の論理ボリューム130を担当するコントローラを元のコントローラ(この場合、コントローラ100A)に戻す(S135)。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、互いに接続された記憶制御装置10,20において、高負荷の論理ボリュームを担当するプロセッサを自動的に変更することができる。これにより、記憶制御装置10,20のプロセッサを有効に利用することができ、応答性能が低下するのを抑制することができる。
図21に基づいて第4実施例を説明する。前記各実施例では、2台の記憶制御装置10,20を接続する場合を例に挙げたが、図21の構成説明図に示すように、3台以上の記憶制御装置10,20,30を接続することもできる。
図21に示すストレージシステムでは、第1記憶制御装置10、第2記憶制御装置20及び第3記憶制御装置30が互いに接続されている。各記憶制御装置10,20,30の各コントローラ100A,100B,200A,200B,300A,300Bは、それぞれ複数の装置間通信回路を備えている。そして、各コントローラは、複数の装置間通信回路及び装置間通信経路を介して、他の基本筐体内のコントローラとそれぞれ接続されている。
図中の符号「NPA1-2」は、第1記憶制御装置10内のA系統のコントローラ100Aと第2記憶制御装置20内のA系統のコントローラ200Aとを接続する装置間通信経路であることを示す。同様に、「NPB2-3」は、第2記憶制御装置20内のB系統のコントローラ200Bと第3記憶制御装置30内のB系統のコントローラ300Bとを接続する装置間通信経路であることを示す。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では3台以上の記憶制御装置10,20,30を接続可能であるため、より多くのホスト1と接続可能である。
図22に基づいて第5実施例を説明する。本実施例では、図22の構成説明図に示すように、スイッチ40A,40Bを用いることにより、3台以上の記憶制御装置10,20,30を互いに接続している。
各スイッチ40A,40Bは、いずれかの基本筐体内に設けることができる。一方のスイッチ40Aは、A系統に属する各コントローラ100A,200A,300Aを互いに接続する。他方のスイッチ40Bは、B系統に属する各コントローラ100B,200B,300Bを互いに接続する。このように、制御系統毎にスイッチを設けることにより、3台以上の記憶制御装置10,20,30を連結してストレージシステムを構成することもできる。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、第1実施例に比べてホスト接続数を増加させることができる。また、本実施例では、スイッチ40A,40Bを用いるため、前記第4実施例に比べて各コントローラの構成を簡素化することができる。
図23に基づいて第6実施例を説明する。図23は、本実施例による記憶制御装置10のコントローラ100Aを示すブロック図である。本実施例では、装置間通信回路103Fに、ホスト側プロトコルチップ101を接続する。
これにより、本実施例では、記憶制御装置10を単独で運用する場合でも、ホスト接続数を増加させることができる。そして、ホスト接続数のさらなる増加をユーザが希望する場合、第1実施例で述べたように、記憶制御装置20を追加し、記憶制御装置10と記憶制御装置20とを接続することも可能である。この場合は、コントローラ100A,100Bを第1実施例で述べた構成を有するコントローラに交換すればよい。
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
本発明の実施形態に係るストレージシステムの全体構成を示す説明図である。 記憶ドライブ、RAIDグループ及び論理ボリュームの関係を示す説明図である。 コントローラの構成を示すブロック図である。 筐体を管理するためのテーブルを示す説明図である。 記憶ドライブを管理するためのテーブルを示す説明図である。 コントローラを管理するためのテーブルを示す説明図である。 ボリュームを管理するためのテーブルを示す説明図である。 筐体を跨るコントローラ間でコマンド等を転送する様子を示す説明図である。 各コントローラの有するキャッシュメモリの記憶状態を示す説明図である。 第1書込みモードによるライト処理を示すフローチャートである。 リード処理を示すフローチャートである。 第2書込みモードの場合の各キャッシュメモリの記憶状態を示す説明図である。 第2書込みモードによるライト処理を示すフローチャートである。 モード設定処理を示すフローチャートである。 第2実施例に係るストレージシステムの構成を模式的に示す説明図であって、(a)は通信経路が正常な場合を、(b)は異常の生じた通信経路を迂回する場合を、それぞれ示す。 第2書込みモードによるライト処理を示すフローチャートである。 図16に続くフローチャートである。 第3実施例に係るストレージシステムで使用されるモード設定処理を示すフローチャートである。 プロセッサの使用率を監視する処理を示すフローチャートである。 負荷分散処理を示すフローチャートである。 第4実施例に係るストレージシステムの構成を模式的に示す説明図である。 第5実施例に係るストレージシステムの構成を模式的に示す説明図である。 第6実施例に係る記憶制御装置のコントローラのブロック図である。
符号の説明
1…ホスト、10,20,30…記憶制御装置、11,21…拡張筐体、40A,40B…スイッチ、100A,100B,200A,200B,300A,300B…コントローラ、101,201…ホスト側プロトコルチップ、102,202…ドライブ側プロトコルチップ、103,203…データ転送制御回路、103A,203A…ホストDMA回路、103B,203B…ドライブDMA回路、103C,203C…キャッシュ側データ転送回路、103D,203D…プロセッサ側データ転送回路、103E,203E…コントローラ間通信回路、103F,203F…装置間通信回路、104、204…キャッシュメモリ、105…プロセッサ、106…メモリ、110,210…記憶ドライブ、120,220…RAIDグループ、130,230…論理ボリューム、140A,140B,240A,240B…通信経路、141A,141B,241A,241B…交代経路、P1,P2…コントローラ間通信経路、NPA,NPB…装置間通信経路。

Claims (4)

  1. 上位装置に接続される記憶制御装置を複数備えたストレージシステムであって、
    前記各記憶制御装置は、前記上位装置及び記憶デバイスとの通信をそれぞれ制御するコントローラをそれぞれ備えており、
    前記各記憶制御装置内の前記各コントローラ同士を接続する装置間通信経路を設け、
    前記各コントローラは、前記装置間通信経路を介して接続されている接続先コントローラの有するメモリに、前記上位装置を介さずにアクセス可能となっており、
    前記各コントローラは、
    前記上位装置との間で通信を行うための上位通信制御部と、
    前記記憶デバイスとの間で通信を行うための下位通信制御部と、
    前記上位通信制御部及び前記下位通信制御部により利用される前記メモリと、
    前記上位通信制御部及び前記下位通信制御部と前記メモリとの間のデータ転送を制御するデータ転送制御部と、
    前記コントローラの動作を制御するプロセッサと、をそれぞれ備え、かつ、
    前記データ転送制御部は、前記装置間通信経路に接続するための装置間インターフェース部を備えており、かつ、
    前記上位装置から受信したライトコマンドを処理するための第1書込みモード及び第2書込みモードが予め用意されており、かつ、前記記憶デバイス毎に、前記第1書込みモードまたは前記第2書込みモードのいずれか一つを予め設定可能となっており、
    (1)前記ライトコマンドの書込み対象の記憶デバイスに前記第1書込みモードが設定されている場合には、前記ライトコマンドを受信した接続元コントローラが有する前記メモリ及び前記接続元コントローラに前記装置間通信経路を介して接続されている接続先コントローラが有する前記メモリに、前記ライトコマンドに係るライトデータをそれぞれ記憶させ、
    (2)前記ライトコマンドの書込み対象の記憶デバイスに前記第2書込みモードが設定されている場合には、前記接続元コントローラの有する前記メモリに前記ライトコマンドに係るライトデータを記憶させた後、前記書込み対象の記憶デバイスが前記接続先コントローラの管理下にある記憶デバイスであるか否かを判定し、前記書込み対象の記憶デバイスが前記接続先コントローラの管理下にある記憶デバイスであると判定されたときは、前記ライトデータを前記接続先コントローラの有する前記メモリに転送して記憶させ、前記接続元コントローラの有する前記メモリから前記ライトデータを消去し、
    前記装置間インターフェース部には、前記装置間通信経路に代えて、前記上位通信制御部とは別の上位通信制御部を接続可能である、
    ストレージシステム。
  2. 前記各記憶制御装置は、コントローラ間通信経路によって互いに接続された第1コントローラ及び第2コントローラをそれぞれ備えており、前記第1コントローラと前記第2コントローラとは互いに相手をバックアップ可能となっている請求項1に記載のストレージシステム。
  3. 前記装置間通信経路は複数設けられており、いずれか一方の装置間通信経路を利用できない場合には、他方の装置間通信経路が使用される請求項1に記載のストレージシステム。
  4. 前記各コントローラは、自分の管理下にある記憶デバイスの負荷をそれぞれ監視しており、予め設定された閾値以上の負荷を有する高負荷記憶デバイスが検出された場合、前記装置間通信経路を介して接続された前記接続先コントローラに、前記高負荷記憶デバイスの管理を委ねる請求項1に記載のストレージシステム。
JP2006157256A 2006-06-06 2006-06-06 ストレージシステム及び記憶制御装置 Expired - Fee Related JP4901316B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006157256A JP4901316B2 (ja) 2006-06-06 2006-06-06 ストレージシステム及び記憶制御装置
US11/515,734 US7594083B2 (en) 2006-06-06 2006-09-06 Storage system and storage control device
EP07250024A EP1868074A3 (en) 2006-06-06 2007-01-04 Storage system and storage control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006157256A JP4901316B2 (ja) 2006-06-06 2006-06-06 ストレージシステム及び記憶制御装置

Publications (2)

Publication Number Publication Date
JP2007328408A JP2007328408A (ja) 2007-12-20
JP4901316B2 true JP4901316B2 (ja) 2012-03-21

Family

ID=38508822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006157256A Expired - Fee Related JP4901316B2 (ja) 2006-06-06 2006-06-06 ストレージシステム及び記憶制御装置

Country Status (3)

Country Link
US (1) US7594083B2 (ja)
EP (1) EP1868074A3 (ja)
JP (1) JP4901316B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI382795B (zh) 2005-03-04 2013-01-11 日立比亞機械股份有限公司 A method of opening a printed circuit board and an opening device for a printed circuit board
JP5330702B2 (ja) * 2008-01-31 2013-10-30 株式会社日立製作所 複数のコントローラモジュールを備えた記憶装置システム
JP5111204B2 (ja) * 2008-03-31 2013-01-09 株式会社日立製作所 ストレージシステム及びストレージシステムの管理方法
JP2010044494A (ja) 2008-08-11 2010-02-25 Fuji Xerox Co Ltd 記憶装置、記憶装置アレイ及びデータ処理システム
US7870300B2 (en) * 2008-08-15 2011-01-11 International Business Machines Corporation Remote management of storage controllers
JP4881938B2 (ja) 2008-11-12 2012-02-22 株式会社日立製作所 記憶制御装置
US20100312964A1 (en) * 2009-06-09 2010-12-09 Dekoning Rodney A Embedded private scale out network
US8762589B2 (en) * 2010-01-22 2014-06-24 National Instruments Corporation Data transfer between devices maintaining state data
US8972667B2 (en) 2011-06-28 2015-03-03 International Business Machines Corporation Exchanging data between memory controllers
JP5602169B2 (ja) * 2012-03-01 2014-10-08 株式会社東芝 通信管理装置、通信管理方法、及びプログラム
US8924351B2 (en) * 2012-12-14 2014-12-30 Lsi Corporation Method and apparatus to share a single storage drive across a large number of unique systems when data is highly redundant
JP6255895B2 (ja) * 2013-10-24 2018-01-10 富士通株式会社 ストレージ制御装置、およびプログラム
JP6229733B2 (ja) * 2013-11-21 2017-11-15 富士通株式会社 情報処理装置、方法、プログラム及び記録媒体
JP2016018384A (ja) * 2014-07-08 2016-02-01 富士通株式会社 ストレージ制御装置、ストレージシステム、及びプログラム
US10296429B2 (en) * 2014-07-25 2019-05-21 Hitachi, Ltd. Storage device
AU2014403332B2 (en) * 2014-09-15 2017-04-20 Huawei Technologies Co., Ltd. Data deduplication method and storage array
JP6555029B2 (ja) * 2015-09-08 2019-08-07 富士通株式会社 ストレージシステム、ストレージ装置および通信方法
US9910753B1 (en) * 2015-12-18 2018-03-06 EMC IP Holding Company LLC Switchless fabric based atomics via partial-proxy
CN107678689A (zh) * 2017-09-27 2018-02-09 郑州云海信息技术有限公司 一种数据写入的方法及装置
CN111290702B (zh) * 2018-12-07 2022-04-05 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储系统
CN111324294B (zh) * 2018-12-17 2023-11-07 地平线(上海)人工智能技术有限公司 存取张量数据的方法和装置
US10789015B2 (en) * 2019-03-01 2020-09-29 Micron Technology, Inc. Background operations in memory
US10901734B2 (en) 2019-03-01 2021-01-26 Micron Technology, Inc. Memory mapping using commands to transfer data and/or perform logic operations
US11122121B2 (en) * 2019-11-22 2021-09-14 EMC IP Holding Company LLC Storage system having storage engines with multi-initiator host adapter and fabric chaining

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3732869B2 (ja) * 1995-06-07 2006-01-11 株式会社日立製作所 外部記憶装置
JP3726484B2 (ja) * 1998-04-10 2005-12-14 株式会社日立製作所 記憶サブシステム
JP4188602B2 (ja) * 2002-01-10 2008-11-26 株式会社日立製作所 クラスタ型ディスク制御装置及びその制御方法
US6901477B2 (en) * 2002-04-01 2005-05-31 Emc Corporation Provision of a victim cache within a storage cache hierarchy
JP2003296039A (ja) * 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法
JP4014923B2 (ja) * 2002-04-30 2007-11-28 株式会社日立製作所 共有メモリ制御方法および制御システム
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
US20050063216A1 (en) * 2003-09-24 2005-03-24 Wilkins Virgil V. System and method for providing efficient redundancy mirroring communications in an n-way scalable network storage system
US7266653B2 (en) * 2003-09-29 2007-09-04 International Business Machines Corporation Remote data mirroring with acknowledgment upon writing copied data to volatile cache memory
JP4518541B2 (ja) * 2004-01-16 2010-08-04 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
US7305520B2 (en) * 2004-01-30 2007-12-04 Hewlett-Packard Development Company, L.P. Storage system with capability to allocate virtual storage segments among a plurality of controllers
JP4718851B2 (ja) * 2004-05-10 2011-07-06 株式会社日立製作所 ストレージシステムにおけるデータ移行
JP2006079380A (ja) * 2004-09-10 2006-03-23 Hitachi Ltd ディスクアレイ装置
JP4612373B2 (ja) * 2004-09-13 2011-01-12 株式会社日立製作所 記憶装置及び記憶装置を用いた情報システム
JP2006107080A (ja) * 2004-10-05 2006-04-20 Hitachi Ltd ストレージ装置システム
US20060083102A1 (en) * 2004-10-20 2006-04-20 Seagate Technology Llc Failover control of dual controllers in a redundant data storage system
JP4993913B2 (ja) * 2006-01-13 2012-08-08 株式会社日立製作所 記憶制御装置及びそのデータ管理方法

Also Published As

Publication number Publication date
EP1868074A2 (en) 2007-12-19
US7594083B2 (en) 2009-09-22
EP1868074A3 (en) 2010-01-20
US20080005514A1 (en) 2008-01-03
JP2007328408A (ja) 2007-12-20

Similar Documents

Publication Publication Date Title
JP4901316B2 (ja) ストレージシステム及び記憶制御装置
US7707456B2 (en) Storage system
JP4958739B2 (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
JP4990322B2 (ja) データ移動管理装置及び情報処理システム
US8909848B2 (en) Method for managing storage system using flash memory, and computer
US20120023287A1 (en) Storage apparatus and control method thereof
WO2012114378A1 (en) Data storage system and management method of the data storage system
JP6097845B2 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP2006178811A (ja) ストレージシステム及びストレージシステムのパス制御方法
JP2008276626A (ja) 記憶制御装置及び記憶制御装置の制御方法
JP2007265403A (ja) 階層型ストレージシステム間でのリモートミラー方式
JP4911198B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP4454299B2 (ja) ディスクアレイ装置及びディスクアレイ装置の保守方法
JP2002049511A (ja) アドレスの割付変更方法及びこれを用いた外部記憶サブシステム
JP5031392B2 (ja) 記憶制御装置及びストレージシステム
JP2010055210A (ja) ストレージシステム及びデータ保証方法
US9990134B2 (en) Command tunneling in a hybrid data storage device
JP6005446B2 (ja) ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法
US10824566B2 (en) Storage device, controlling method of storage device, and storage device controller having predetermined management information including face attribute information, a controller number, and transition method information
JP4813264B2 (ja) ストレージシステム
CN106610788A (zh) 硬盘阵列控制方法及装置
JP2004127275A (ja) データ記憶アレイを管理する方法およびraidコントローラを備えたコンピュータシステム
JP2008176526A (ja) 記憶制御装置及び記憶制御装置の制御方法
US11775175B2 (en) Storage system, storage management method, and storage management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111226

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111227

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees