JP4219602B2 - Storage control device and control method of storage control device - Google Patents

Storage control device and control method of storage control device Download PDF

Info

Publication number
JP4219602B2
JP4219602B2 JP2002056374A JP2002056374A JP4219602B2 JP 4219602 B2 JP4219602 B2 JP 4219602B2 JP 2002056374 A JP2002056374 A JP 2002056374A JP 2002056374 A JP2002056374 A JP 2002056374A JP 4219602 B2 JP4219602 B2 JP 4219602B2
Authority
JP
Japan
Prior art keywords
data
controller
processing
storage
read
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
JP2002056374A
Other languages
Japanese (ja)
Other versions
JP2003256150A (en
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 JP2002056374A priority Critical patent/JP4219602B2/en
Priority to US10/377,848 priority patent/US6985997B2/en
Publication of JP2003256150A publication Critical patent/JP2003256150A/en
Priority to US11/234,554 priority patent/US7181571B2/en
Priority to US11/654,064 priority patent/US7596660B2/en
Application granted granted Critical
Publication of JP4219602B2 publication Critical patent/JP4219602B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、ディスクアレイ装置などの記憶制御装置に関し、とくに、データ入出力要求を効率よく処理することができるようにする技術に関する。
【0002】
【従来の技術】
近年、IT技術の急速な進展によりディスクアレイ装置などの記憶制御装置の需要が増大している。このようなディスクアレイ装置の中には、信頼性向上や高性能化を目的として、内部装置を冗長に構成していることも多く、例えば、特開平8−328758号公報にも開示されているように、ディスクドライブなどの記憶資源に対するデータの入出力処理を行うデータコントローラが複数実装されているものがある。
【0003】
【発明が解決しようとする課題】
ところで、このように冗長にデータコントローラを有するディスクアレイ装置においては、一方のデータコントローラが受け付けたデータ入出力処理は、基本的にそのデータコントローラ自身が受け持つ。
【0004】
このため、外部から一方のデータコントローラに対してデータ入出力要求が入力され、その際、たとえその時に他のデータコントローラの処理に余裕がある場合でも、前記データ入出力要求についての処理を他のデータコントローラに分担させるようなことは無く、基本的に入力のあった側のディスクアレイコントローラ自身がその処理を担当することになる。
【0005】
この発明は、このような点に着目してなされたもので、データ入出力要求を効率よく処理することができる記憶制御装置およびその制御方法を提供することを目的とする。
【0006】
【課題を解決するための手段】
この目的を達成するための本発明の主たる発明は、外部通信路から入力されるデータ入出力要求を受信して、前記データ入出力要求に対応して記憶資源に対するデータ入出力処理を行う、データ通信路により通信可能に接続された第1及び第2のデータコントローラを備え、
前記第1のデータコントローラは
前記データ入出力要求としてデータ書き込み要求および書き込み対象データ受信すると、受信した前記書き込み対象データを、前記第1及び第2のデータコントローラの処理負荷に応じて複数のデータブロックに分割し、分割した各データブロックの前記記憶資源への書き込み処理を担当する前記データコントローラを決定し、自身の処理担当の前記データブロックを前記記憶資源に書き込む一方、前記第2のデータコントローラの処理担当の前記データブロックについてのデータ書き込み要求を前記データ通信路を通じて前記第2のデータコントローラに送信し、
前記第2のデータコントローラは
前記第1のデータコントローラから前記データ書き込み要求を受信すると、自身の処理担当の前記データブロックを前記記憶資源に書き込むこと
を特徴とする。
【0007】
【発明の実施の形態】
===開示の概要===
以下の開示により、少なくとも次のことが明らかにされる。
外部通信路から入力されるデータ入出力要求を受信して、この要求に対応して記憶資源に対するデータ入出力処理を行う、データ通信路により互いに通信可能に接続された複数のデータコントローラを備える記憶制御装置であって、
前記データコントローラの一つに前記データ入出力要求が入力された場合に、前記データ通信路を通じた通信により前記データ入出力処理を複数の前記データコントローラが分担して実行することを特徴とする記憶制御装置。
【0008】
この記憶制御装置においては、外部通信路から入力されるデータ入出力要求を受信した場合に、記憶資源に対するデータ入出力処理が複数のデータコントローラによって分担して実行されるため、複数のデータコントローラ間で負荷の分散が図られ、記憶制御装置を効率よく動作させることができ、記憶制御装置の処理速度の向上が図られる。
【0009】
具体的には、例えば、前記データコントローラのうち一のデータコントローラAが、前記データ入出力要求としてデータ書き込み要求を受信した場合に、データコントローラAは、書き込み対象となるデータの一部を前記記憶資源に書き込む一方、前記データ通信路を通じて前記書き込み対象となる前記データの他の部分についてのデータ書き込み要求を他のデータコントローラに送信し、他のデータコントローラは、前記データ書き込み要求を受信した場合にそのデータ書き込み要求についての処理を実行する。
【0010】
また、前記データコントローラは、RAID3〜6のいずれかの方式で前記記憶資源を管理し、前記データコントローラAは、前記データ入出力としてデータ書き込み要求を受信した場合に、書き込み対象のデータを前記RAID3〜6のいずれか方式における書き込み単位で分割し、その分割単位ごとにそれぞれの書き込み処理を担当する前記データコントローラを割り当てる。
【0011】
従って、記憶制御装置の記憶資源がRAID方式で運用されている場合には、RAIDの仕組みを利用して本発明の仕組みを容易に実現することができる。
【0012】
また、パリティ計算を担当する前記データコントローラを選出し、そのデータコントローラによりパリティ計算を実行するようにすることもできる。また、RAID方式の運用において編成されるストライプごとに各ストライプについてのパリティ計算を担当するデータコントローラの割り当てを記憶し、前記記憶資源へのデータの書き込みに際し、その書き込み対象となるストライプの計算を担当するデータコントローラがそのストライプについての前記パリティ計算を実行するようにすることもできる。また、パリティ計算を担当するデータコントローラの前記割り当ては動的に変化させてもよい。さらに、RAID方式の運用において編成される1のストライプとして書き込まれるデータについての記憶資源への書き込みを、複数の前記データコントローラが分担して実行するようにしてもよい。
【0013】
===記憶制御装置の構成===
図1は本発明の一実施例として説明する記憶制御装置10の概略構成である。記憶制御装置10は、LAN(Local Area Network)やSAN(Storage Area Network)などの外部通信路12を通じてホストコンピュータなどの外部装置14と接続する。記憶制御装置10の具体例としては、例えば、ディスクアレイ装置があげられる。
【0014】
図1に示す記憶制御装置10は、2つの制御部20,30と、ディスクドライブなどの記憶デバイスにより構成される記憶資源40とを備えるが、記憶資源40については適宜なインタフェースを介して外部接続する構成となっていることもある。
【0015】
制御部20,30は、各種制御情報や設定情報などが記憶される制御メモリ21、31、外部通信路12と接続するためのホストインタフェース(ホストI/F)22,32、外部通信路12を通じてホストインタフェース22,32に入力されるデータ入出力コマンドに従い、記憶資源40に対するデータ入出力処理を制御・実行するデータコントローラ23,33(以下、「CTL」と表記する)、キャッシュメモリ24,34、SCSIなどの所定の通信規格に従って動作しデータコントローラ23,33と記憶資源40との間の入出力インタフェースであるディスクインタフェース(ディスクI/F)25,35などを備える。
【0016】
制御部20と制御部30との間は、データ通信路である制御バス50により接続されている。データコントローラ23,33は、ホストインタフェース22,32を通じて入力されるデータ入出力命令を受信して、記憶資源40に対するデータ入出力に関する処理を実行する機能を備えるほか、制御バス50を介して他方のデータコントローラにデータ入出力命令やデータを送信する機能を備えている。
【0017】
===書き込み処理===
図2は、制御部20が、外部装置14から出力され外部通信路12を通じて入力されるデータ書き込みコマンド(以下、「WRコマンド」と称する)を受信した場合に、記憶制御装置10において行われる処理の流れを説明するフローチャートである。
【0018】
記憶制御装置10が受信したWRコマンドは、ホストインタフェース22に入力された後、CPUにより解釈され、CPUは対応するコマンドをCTL23に入力する(S210)。CTL23は、WRコマンドとともに外部通信路12を通じて入力される書き込み対象データ(以下、「WRデータ」と称する)をキャッシュメモリ24に書き込むとともに、このWRコマンドに付与したWRコマンドIDを、制御メモリ21上に記憶している図3に示すWRデータ管理テーブルに登録する(S211)。WRデータ管理テーブルは、制御部30の制御メモリ31にも記憶され、制御バス50を通じた制御部20,30間の通信により双方のWRデータ管理テーブルの内容はリアルタイムに同期更新される。
【0019】
なお、制御メモリ21,31の一方のみにWRデータ管理テーブルを記憶するようにし、記憶していない側の制御部が、制御バス50を通じて前記テーブルを記憶している側に問い合わせる構成としてもよい。
【0020】
前記の登録完了後、記憶制御装置10は、外部通信路12を通じて、外部アドレス(外部装置14が記憶制御装置10にデータ入出力要求を行う際に記憶制御装置10の管理下にあるデータを特定する情報であり、例えば、UNIX(登録商標)系のシステムでは、外部装置14から送られてくるコマンドに付帯していたID番号(タグ)である)を付帯させた書き込み完了通知を外部装置14に送信する(S212)。
【0021】
つぎに、CTL23は、キャッシュメモリ24に記憶されているWRデータを複数のデータブロックに分割し、分割したデータブロックごとにその記憶資源40への書き込み処理を担当するCTL23,33を割り当てる(S213)。ここでWRデータをどのように分割するか(データブロックの数や各データブロックのサイズなど)を決定するアルゴリズムは、例えば、各データブロックのサイズを固定したもの、CTL23,33のリアルタイムな処理負荷などをパラメータとするものなどがある。また、各データブロックの処理を担当するCTLを割り当てるアルゴリズムは、例えば、処理すべきデータ量がほぼ均等になるように割り当てるようにしたもの、各CTL23,33の負荷状態に応じて動的に割り当てるようにしたものなどがある。
【0022】
CTL23は、WRデータの分割により生成された各データブロックのキャッシュメモリ24上の先頭アドレス、および各データブロックの処理担当となるCTLを示す識別子を、WRコマンドIDに対応づけてWRデータ管理テーブルに登録する(S214)。
【0023】
つぎに、CTL23は、各データブロックのデータが記憶される記憶資源40上の領域を確保する。ここでこの領域確保は、制御メモリ21もしくはキャッシュメモリ24などに管理されている記憶資源40の使用状況を示す資源管理テーブルを参照して行われる。
【0024】
確保される前記の領域は、例えば、記憶資源40を構成するディスクドライブのドライブ番号や各ディスクドライブ上の記憶位置を特定する物理アドレスなどを用いて指定される。また、記憶資源40が、例えば、RAID(Redundant Array of Inexpensive Disks)3〜6の方式で運用されている場合には、前記領域は、複数のディスクドライブ上に編成されるストライプを指定するIDと、ストライプ上の記憶位置を特定する論理アドレスとで指定される。なお、必ずしもRAID3〜6の方式に限定されず、ストライプを編成する方式であれば、他の方式でも同様である。
【0025】
前記のストライプとは、よく知られているように、例えば、1のデータを複数のディスクドライブにバイト単位、ワード単位、ブロック単位(通所はセクタの倍数)などの単位(以下、「書き込み単位」と称する)に分割して書き込む際に編成される、分割される1のデータに対応するグループであり、パリティ計算を行う方式の場合にはこのグループを単位としてパリティ計算が行われる。RAIDグループと呼ばれることもある。
【0026】
CTL23は、各データブロックについて確保した領域を特定する情報を、各データブロックに対応づけてWRデータ管理テーブルに登録する。
【0027】
領域を確保すると、つぎにCTL23は自分の処理担当のデータブロックについての書き込みコマンドを、制御メモリ21に記憶しているWR処理キューに登録する(S215)。また、CTL23は、CTL33の処理担当であるデータブロックについての記憶資源40への書き込み依頼コマンドを、制御バス50を通じてCTL33に送信する(S216)。
【0028】
CTL33は、前記書き込み依頼コマンドを受信すると、制御メモリ31上のWRデータ管理テーブルを参照し、自身の書き込み担当であるデータブロックについての書き込みコマンドを、制御メモリ31上に記憶しているWR処理キュー(不図示)に登録する(S217)。
【0029】
CTL23は、制御メモリ21のWR処理キューに登録されている前記WRコマンドIDについての記憶資源40へのデータ書き込み処理を、適宜なタイミングで実行する(S218)。そして、CTL23は、制御メモリ21上に記憶しているWRデータ管理テーブルの書き込みが終了したデータブロックに対応する「完了フラグ」の欄に、書き込みが完了した旨を示すフラグをセットする(S219)。
【0030】
一方、CTL33も、制御メモリ31のWR処理キューに登録されている前記WRコマンドIDについての記憶資源40へのデータ書き込み処理を適宜なタイミングで実行する(S220)。
【0031】
なお、書き込み対象となるデータブロックのデータは、書き込み処理実行時にCTL33が制御バス50を通じてCTL23に要求するか、もしくは、CTL33が事前に制御バス50を通じてCTL23から受信してキャッシュメモリ34に記憶しておく。また、CTL23,33が双方のキャッシュメモリ24,34に同時に書き込む機能を備えている場合には、CTL23がキャッシュメモリ23にデータを書き込む際にそのデータを制御バス50介してCTL33側にも送信し、CTL33においてもCTL23と同時並行的にキャッシュメモリ34への前記データの書き込みが行われるようにしてもよい。
【0032】
CTL33は、書き込み処理が終了したデータブロックに対応する前記WRデータ管理テーブルの「完了フラグ」の欄に、書き込みが完了したことを示すフラグをセットする(S221)。CTL23は、自身の書き込み担当となっているデータブロックと合わせて、当該WRコマンドに対応づけられている全てのデータブロックについての完了フラグが書き込み完了になっているかどうかを監視し(S222)、これを確認すると、当該テーブルの当該WRコマンドの「全完了フラグ」の欄に、当該WRコマンドについてのWRデータの書き込みが完了したことを示すフラグをセットする(S223)。
【0033】
以上のようにして、外部装置14から受信した前記WRコマンドについての処理が完了する。このように以上の処理では、1つのWRデータについての書き込み処理が2つのデータコントローラにより行われる。このため、とくに一方のコントローラの処理負荷が大きく、他方の処理負荷が小さい場合には、負荷分散が図られ、各種資源の有効利用が図られる。
【0034】
また、このようにしてCTL間で負荷分散が図られることで、記憶制御装置10の処理性能が向上する。とくに、高速のホストインタフェースがつぎつぎに登場する昨今では、ディスクインタフェースの処理速度の低さがボトルネックとなり、記憶制御装置10の処理速度に影響を与えることが多いが、このような場合に本発明の仕組みは有効である。
【0035】
ところで、RAID3〜6の方式では、データはバイト単位、ワード単位、ブロック単位(通所はセクタの倍数)などの書き込み単位に分割され、データはこの単位で複数のディスクドライブに分散書き込みされる。そこで、記憶資源40がRAID方式で運用されている場合には、前述したデータブロックを、その記憶資源40の運用に採用されているRAID方式に対応させた、バイト単位やワード単位、もしくは、ブロック単位としてもよい。
【0036】
また、RAID方式の運用において編成される1のストライプとして書き込まれるデータの記憶資源40への書き込み処理に際し、この書き込み対象となる各ディスクドライブについての書き込みを、複数のCTLで分担して実行するようにしてもよい。
【0037】
また、RAID3〜6の方式での記憶資源40の管理においては、パリティ計算が必要であり、このパリティ計算は通常はCTL23,33が担当している。そこで、例えば、パリティ計算に際し、各CTLの負荷状態を調べ、その結果に応じてパリティ計算を実行するCTLを決定するなど、パリティ計算を担当するCTL23,33を動的に割り当てるようにしてもよい。
【0038】
また、RAID方式で記憶資源40を運用する記憶制御装置10の中には、負荷分散などを目的として、書き込み対象となるストライプの各パリティディスクドライブの処理を担当するCTLが割り当てられている場合もある。そこで、このような記憶制御装置10においては、いずれかのCTLが外部装置14からWRコマンドを受信した場合、そのWRコマンドについての書き込み対象となるストライプのパリティディスクドライブについてのパリティ計算を担当するCTLにパリティ計算を実行させるようにしてもよい。
【0039】
具体的には、例えば、WRコマンドを受信した側のCTLが、そのWRコマンドに対応するデータを記憶資源40に書き込もうとする際に、その書き込み対象となるストライプにおけるパリティドライブについてのパリティ計算を担当するCTLを調べ、その結果自身の担当であればそのCTLがパリティ計算を行い、自身の担当でなければ、制御バス50を介してパリティ計算を依頼する命令や必要な情報を担当のCTLに送信し、担当のCTLにてパリティ計算を実行するようにする。このような仕組みにより、負荷分散がより一層徹底して行われ、記憶制御装置10をより一層効率よく運用することができる。
【0040】
なお、例えば、RAID5のようにパリティ格納用ディスクを固定的に定めない方式では、書き込み対象となるストライプのパリティディスクドライブが、動的に変化する(例えば、1つのデータを書き込むたびに)が、この場合、各パリティディスクドライブの処理を担当するCTLも動的に変化していくことになる。
【0041】
ところで、前記の説明では、WRデータ管理テーブルを、CTL23の制御メモリ21に記憶しているが、CTL23,24の双方の制御メモリ21,31に記憶し、それぞれのテーブルを、制御バス50を介してリアルタイムに更新するようにしてもよい。
【0042】
===読み出し処理===
図4は、制御部20が、外部装置14から出力され外部通信路12を通じて入力されるデータ読み出しコマンド(以下、「RDコマンド」と称する)を受信した場合に、記憶制御装置10において行われる処理の流れを説明するフローチャートである。
【0043】
記憶制御装置10が受信したRDコマンドは、ホストインタフェース22に入力された後、CPUにより解釈され、CPUは対応するコマンドをCTL23に入力する(S410)。CTL23は、RDコマンドに固有のRDコマンドIDを付与し、このRDコマンドIDに付帯させて、RDコマンドに付帯して送られてくる外部アドレスと読み出し対象となるデータ(以下、「RDデータ」と称する)のデータ長とを、制御メモリ21に記憶している図5に示すRDデータ管理テーブルに登録する。
【0044】
RDデータ管理テーブルは、制御部30の制御メモリ31にも記憶され、制御バス50を通じた制御部20,30間の通信により双方のRDデータ管理テーブルの内容はリアルタイムに同期更新される。なお、制御メモリ21,31の一方のみにRDデータ管理テーブルを記憶するようにし、記憶していない側の制御部が、制御バス50を通じて前記テーブルを記憶している側に問い合わせる構成としてもよい。
【0045】
つぎに、CTL23は、制御メモリ21上に記憶され、外部アドレス(例えば、論理LBA(Logical Block Address))と記憶資源40上の記憶位置指定情報(ディスクドライブ番号(もしくはストライプID)と物理アドレス(もしくはストライプ上の論理アドレス))との対応づけが記録された、制御メモリ21上に記憶されている変換テーブル(不図示)を参照し、前記RDコマンドに付帯して送られてくる外部アドレスとデータ長とから、RDデータが記憶されている記憶資源40上の記憶領域を調べる(S411)。なお、変換テーブルは、前述した資源管理テーブルと同じものであってもよい。
【0046】
つぎに、CTL23は、RDデータの前記記憶領域を、複数のデータブロックに分割し、各データブロックについてのデータ読み出し処理を担当するCTLを決定する(S412)。担当のCTLを決定する方法としては、あらかじめ定められた比率で各CTLに処理を振り分ける方法、CTL23,33の負荷状態に応じて決定する方法、所定のアルゴリズムに従って割り当てる方法などがある。CTL23は、生成された各データブロックの記憶位置(例えば、ディスクドライブ上の先頭アドレスもしくはストライプ上の論理アドレス)とデータ長、およびそのデータブロックの処理担当となるCTLを示す識別子とを、RDデータ管理テーブルに登録する(S413)。
【0047】
つぎに、CTL23は、自身の読み出し担当となるデータブロックについてのデータ読み出しコマンドを、制御メモリ21上に記憶されているRD処理キュー(不図示)に登録する(S414)。また、CTL23は、制御バス50を通じてCTL33が担当するデータブロックについての読み出し依頼コマンドを送信する(S415)。この読み出し指示コマンドには、各データブロックが記憶されている記憶資源40上の記憶領域を特定する情報(例えば、読み出し開始位置とそのデータブロックのデータ長)が含まれる。CTL33は、読み出し依頼コマンドを受信すると、これを制御メモリ31に記憶しているRD処理キューに登録する(S416)。
【0048】
CTL23は、適宜なタイミングでRD処理キューにセットされているRDコマンドを実行し(S417)、対応するデータブロックから読み出したデータをキャッシュメモリ24に記憶する。なお、この際、CTL23は、各データブロックから読み出したデータが記憶されているキャッシュメモリ24上の先頭アドレスを、制御メモリ24上のRDデータ管理テーブルに登録する。また、RDデータ管理テーブルの該当のデータブロックについての「完了フラグ」の欄に、該当データブロックについての読み出しを完了した旨を示すフラグをセットする。
【0049】
一方、CTL33は、RD処理キューに登録されているRDコマンドを順に実行し(S418)、読み出したデータをキャッシュメモリ34に記憶する。また、CTL33は、キャッシュメモリ34に記憶されているデータを、制御バス50を介してCTL23に送信する(S419)。なお、ここで送信されるデータには、そのデータが前記のどのデータブロックに対応するデータであるかを特定する情報(例えば、データブロックごとに付与したID)が付帯する。
【0050】
CTL23は、CTL33から送られてくる前記データをキャッシュメモリ24に記憶する(S420)。一方、CTL23は、RDデータ管理テーブルを参照することで、前記RDコマンドについての全ての前記データブロックに対応するデータの読み出しが完了したかどうかを監視する(S421)。そして、全ての前記データブロックに対応するデータの読み出しが完了した場合、CTL23は、キャッシュメモリ24に書き込まれている各データブロックに対応するデータを外部通信路12を通じて外部装置14に送信する(S422)。なお、このデータには、必要に応じて前記外部アドレス等を付帯させる。
【0051】
また、RDデータ管理テーブルの該当RDコマンドの「全完了フラグ」の欄に当該RDコマンドについての読み出しを完了した旨を示すフラグをセットする(S423)。以上のようにして、読み出し処理が完了する。
【0052】
ところで、書き込み処理のところで説明したように、読み出し処理の場合も同様に、データブロックの単位を、その記憶資源40の運用に採用されているRAID方式に対応させたバイト単位やワード単位、もしくは、ブロック単位で分割するようにしてもよい。
【0053】
また、以上に説明したデータ読み出し処理において、キャッシュメモリ24,34上に読み出そうとするデータが残存している場合には、記憶資源40からの読み出すのではなく、キャッシュメモリ24,34上のデータを用いてRDデータを編成するようにしてもよい。
【0054】
===その他===
以上では、記憶制御装置10が、2つのデータコントローラを備える場合について説明したが、本発明はデータコントローラが3つ以上の場合にも拡張することができる。
【0055】
なお、CTL23は、他の処理に並行して、WR処理キューやRD処理キューにセットされている読み出しコマンドを実行することができ、例えば、CTL33に書き込み依頼コマンドや読み出し依頼コマンドを送信するのに並行して、WR処理キューやRD処理キューにセットされているコマンドを実行することもできる。
【0056】
【発明の効果】
本発明によれば、複数のデータコントローラを有する記憶制御装置において、データ入出力要求を効率よく処理することができる。
【図面の簡単な説明】
【図1】本発明の一実施例による、記憶制御装置の構成を示す図である。
【図2】本発明の一実施例による、データ書き込み処理の流れを説明するフローチャートである。
【図3】本発明の一実施例による、WRデータ管理テーブルを示す図である。
【図4】本発明の一実施例による、データ読み出し処理を説明するフローチャートである。
【図5】本発明の一実施例による、RDデータ管理テーブルを示す図である。
【符号の説明】
12 外部通信路
20,30 制御部
21,31 制御メモリ
23,33 データコントローラ(CTL)
24,34 キャッシュメモリ
40 記憶資源
50 制御バス
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a storage control device such as a disk array device, and more particularly to a technique for efficiently processing a data input / output request.
[0002]
[Prior art]
In recent years, with the rapid development of IT technology, the demand for storage control devices such as disk array devices is increasing. Among such disk array devices, the internal device is often configured redundantly for the purpose of improving reliability and performance, and is also disclosed, for example, in JP-A-8-328758. As described above, there are some in which a plurality of data controllers that perform input / output processing of data with respect to storage resources such as disk drives are mounted.
[0003]
[Problems to be solved by the invention]
By the way, in such a disk array apparatus having redundant data controllers, data input / output processing accepted by one data controller is basically handled by the data controller itself.
[0004]
For this reason, a data input / output request is input from the outside to one data controller, and at this time, even if there is room in processing of the other data controller, the processing for the data input / output request is not processed. There is no sharing with the data controller, and the disk array controller on the input side itself is basically responsible for the processing.
[0005]
The present invention has been made paying attention to such points, and it is an object of the present invention to provide a storage control device and a control method thereof that can efficiently process data input / output requests.
[0006]
[Means for Solving the Problems]
The main invention of the present invention to achieve this object is to receive data input / output requests input from an external communication path and perform data input / output processing for storage resources in response to the data input / output requests. Comprising first and second data controllers communicably connected via a communication path;
The first data controller includes :
Upon receiving a data write request and write target data as the data output request, the Kisho can lump pair Zode over data before the received plurality of data blocks according to the processing load of the first and second data controller And determining the data controller in charge of writing the divided data blocks to the storage resource, and writing the data block in charge of the processing to the storage resource, while the second data controller A data write request for the data block in charge of processing is transmitted to the second data controller through the data communication path;
The second data controller,
When the data write request is received from the first data controller, the data block in charge of processing is written to the storage resource .
[0007]
DETAILED DESCRIPTION OF THE INVENTION
=== Summary of disclosure ===
The following disclosure will reveal at least the following.
A memory comprising a plurality of data controllers connected to each other via a data communication path for receiving a data input / output request input from an external communication path and performing data input / output processing for a storage resource in response to the request A control device,
A storage characterized in that when the data input / output request is input to one of the data controllers, the data input / output processing is shared and executed by a plurality of the data controllers by communication through the data communication path. Control device.
[0008]
In this storage control device, when a data input / output request input from an external communication path is received, data input / output processing for the storage resource is executed in a shared manner by a plurality of data controllers. Thus, the load can be distributed, the storage control device can be operated efficiently, and the processing speed of the storage control device can be improved.
[0009]
Specifically, for example, when one data controller A among the data controllers receives a data write request as the data input / output request, the data controller A stores a part of data to be written in the memory When writing to a resource, a data write request for another part of the data to be written is transmitted to another data controller through the data communication path, and the other data controller receives the data write request. Processing for the data write request is executed.
[0010]
Further, the data controller manages the storage resource by any one of RAID 3 to 6, and when the data controller A receives a data write request as the data input / output, the data controller A determines the write target data as the RAID 3 The data controller in charge of each writing process is assigned to each division unit.
[0011]
Therefore, when the storage resource of the storage control device is operated by the RAID system, the mechanism of the present invention can be easily realized by using the RAID mechanism.
[0012]
It is also possible to select the data controller in charge of parity calculation and execute the parity calculation by the data controller. In addition, for each stripe organized in the operation of the RAID system, the allocation of the data controller responsible for the parity calculation for each stripe is stored, and in writing the data to the storage resource, responsible for the calculation of the stripe to be written It is also possible for the data controller to perform the parity calculation for the stripe. The assignment of the data controller in charge of parity calculation may be changed dynamically. Furthermore, a plurality of the data controllers may share and execute the writing to the storage resource for the data written as one stripe organized in the RAID system operation.
[0013]
=== Configuration of Storage Controller ===
FIG. 1 is a schematic configuration of a storage control apparatus 10 described as an embodiment of the present invention. The storage control device 10 is connected to an external device 14 such as a host computer through an external communication path 12 such as a LAN (Local Area Network) or a SAN (Storage Area Network). A specific example of the storage control device 10 is a disk array device, for example.
[0014]
The storage control device 10 shown in FIG. 1 includes two control units 20 and 30 and a storage resource 40 configured by a storage device such as a disk drive. The storage resource 40 is externally connected through an appropriate interface. It may become the composition to do.
[0015]
The control units 20 and 30 are connected through control memories 21 and 31 in which various control information and setting information are stored, host interfaces (host I / F) 22 and 32 for connection to the external communication path 12, and the external communication path 12. In accordance with data input / output commands input to the host interfaces 22 and 32, data controllers 23 and 33 (hereinafter referred to as “CTL”) for controlling and executing data input / output processing for the storage resource 40, cache memories 24 and 34, It includes disk interfaces (disk I / F) 25 and 35 that operate according to a predetermined communication standard such as SCSI and are input / output interfaces between the data controllers 23 and 33 and the storage resource 40.
[0016]
The control unit 20 and the control unit 30 are connected by a control bus 50 that is a data communication path. Each of the data controllers 23 and 33 has a function of receiving a data input / output command input through the host interfaces 22 and 32 and executing a process related to data input / output with respect to the storage resource 40, and the other one via the control bus 50. It has a function to send data input / output commands and data to the data controller.
[0017]
=== Write processing ===
FIG. 2 shows processing performed in the storage control device 10 when the control unit 20 receives a data write command (hereinafter referred to as “WR command”) output from the external device 14 and input through the external communication path 12. It is a flowchart explaining the flow of.
[0018]
The WR command received by the storage controller 10 is input to the host interface 22 and then interpreted by the CPU, and the CPU inputs the corresponding command to the CTL 23 (S210). The CTL 23 writes data to be written (hereinafter referred to as “WR data”) input through the external communication path 12 together with the WR command to the cache memory 24, and the WR command ID assigned to the WR command is stored in the control memory 21. Is registered in the WR data management table shown in FIG. 3 stored in (S211). The WR data management table is also stored in the control memory 31 of the control unit 30, and the contents of both WR data management tables are synchronously updated in real time by communication between the control units 20 and 30 through the control bus 50.
[0019]
Note that the WR data management table may be stored in only one of the control memories 21 and 31, and the control unit on the side that is not stored may inquire the side storing the table through the control bus 50.
[0020]
After the completion of the registration, the storage control device 10 specifies the data under the management of the storage control device 10 when the external device 14 makes a data input / output request to the storage control device 10 through the external communication path 12. For example, in a UNIX (registered trademark) system, an external device 14 sends a write completion notification accompanied by an ID number (tag) attached to a command sent from the external device 14. (S212).
[0021]
Next, the CTL 23 divides the WR data stored in the cache memory 24 into a plurality of data blocks, and assigns CTLs 23 and 33 in charge of writing processing to the storage resource 40 for each divided data block (S213). . Here, an algorithm for determining how to divide the WR data (the number of data blocks, the size of each data block, etc.) is, for example, the fixed size of each data block, the real-time processing load of CTLs 23 and 33 There are things that use as parameters. The algorithm for assigning the CTL in charge of the processing of each data block is, for example, one assigned so that the amount of data to be processed is substantially equal, and dynamically assigned according to the load state of each CTL 23, 33 There is something like that.
[0022]
The CTL 23 associates the start address on the cache memory 24 of each data block generated by dividing the WR data and the identifier indicating the CTL in charge of processing each data block in the WR data management table in association with the WR command ID. Register (S214).
[0023]
Next, the CTL 23 secures an area on the storage resource 40 in which data of each data block is stored. Here, this area reservation is performed with reference to a resource management table indicating the use status of the storage resource 40 managed in the control memory 21 or the cache memory 24.
[0024]
The area to be secured is specified by using, for example, the drive number of the disk drive constituting the storage resource 40 or a physical address specifying the storage position on each disk drive. In addition, when the storage resource 40 is operated by, for example, RAID (Redundant Array of Inexpensive Disks) 3 to 6, the area is an ID that designates stripes organized on a plurality of disk drives. , And a logical address specifying a storage location on the stripe. Note that the method is not necessarily limited to the methods of RAID 3 to 6, and the same applies to other methods as long as the method of knitting stripes.
[0025]
As is well known, the stripe is, for example, a unit of data such as a byte unit, a word unit, or a block unit (usually a multiple of a sector) in a plurality of disk drives (hereinafter referred to as “write unit”). The group corresponding to one piece of data to be divided, which is organized when divided and written, and in the case of a method for performing parity calculation, parity calculation is performed in units of this group. Sometimes called a RAID group.
[0026]
The CTL 23 registers information specifying the area reserved for each data block in the WR data management table in association with each data block.
[0027]
After securing the area, the CTL 23 registers a write command for the data block in charge of its own processing in the WR processing queue stored in the control memory 21 (S215). In addition, the CTL 23 transmits a write request command to the storage resource 40 for the data block in charge of processing of the CTL 33 to the CTL 33 through the control bus 50 (S216).
[0028]
When the CTL 33 receives the write request command, the CTL 33 refers to the WR data management table on the control memory 31 and stores the write command for the data block in charge of the WR processing queue stored on the control memory 31. (S217).
[0029]
The CTL 23 executes data write processing to the storage resource 40 for the WR command ID registered in the WR process queue of the control memory 21 at an appropriate timing (S218). Then, the CTL 23 sets a flag indicating that writing has been completed in the “completion flag” column corresponding to the data block for which writing of the WR data management table stored in the control memory 21 has been completed (S219). .
[0030]
On the other hand, the CTL 33 also executes data write processing to the storage resource 40 for the WR command ID registered in the WR process queue of the control memory 31 at an appropriate timing (S220).
[0031]
The data of the data block to be written is requested by the CTL 33 to the CTL 23 through the control bus 50 when the write process is executed, or the CTL 33 is previously received from the CTL 23 through the control bus 50 and stored in the cache memory 34. deep. Further, when the CTL23,33 has a function of simultaneously write to both the cache memory 24 and 34, CTL 23 is also transmitted to CTL33 side through the control bus 50 to the data when writing data in the cache memory 23 In the CTL 33, the data may be written into the cache memory 34 in parallel with the CTL 23.
[0032]
The CTL 33 sets a flag indicating that the writing is completed in the “completion flag” column of the WR data management table corresponding to the data block for which the writing process has been completed (S221). The CTL 23 monitors whether or not the completion flag for all the data blocks associated with the WR command has been written together with the data block that is responsible for writing (S222). Is confirmed, a flag indicating that writing of WR data for the WR command is completed is set in the “all completion flag” column of the WR command of the table (S223).
[0033]
As described above, the processing for the WR command received from the external device 14 is completed. In this way, in the above processing, writing processing for one WR data is performed by two data controllers. For this reason, especially when the processing load of one controller is large and the other processing load is small, load distribution is achieved and effective use of various resources is achieved.
[0034]
Further, the load distribution among the CTLs is achieved in this way, so that the processing performance of the storage control device 10 is improved. In particular, in recent years when high-speed host interfaces appear one after another, the low processing speed of the disk interface becomes a bottleneck and often affects the processing speed of the storage control device 10. In such a case, the present invention This mechanism is effective.
[0035]
By the way, in the RAID 3 to 6 system, data is divided into write units such as byte units, word units, block units (usually multiples of sectors), and data is distributedly written to a plurality of disk drives in this unit. Therefore, when the storage resource 40 is operated in the RAID system, the above-described data block is associated with the RAID system employed for the operation of the storage resource 40, in units of bytes, words, or blocks. It is good also as a unit.
[0036]
In addition, when writing data to the storage resource 40 written as one stripe organized in the RAID system operation, writing to each disk drive to be written is shared by a plurality of CTLs. It may be.
[0037]
In addition, in the management of the storage resource 40 in the RAID 3 to 6 system, a parity calculation is required, and this parity calculation is usually handled by the CTLs 23 and 33. Therefore, for example, when performing the parity calculation, the CTLs 23 and 33 in charge of the parity calculation may be dynamically assigned by checking the load state of each CTL and determining the CTL for executing the parity calculation according to the result. .
[0038]
In addition, in the storage control device 10 that operates the storage resource 40 in the RAID system, there is a case in which a CTL responsible for processing of each parity disk drive of the stripe to be written is allocated for the purpose of load distribution or the like. is there. Therefore, in such a storage controller 10, when any CTL receives a WR command from the external device 14, the CTL in charge of parity calculation for the parity disk drive of the stripe to be written with respect to the WR command. May perform parity calculation.
[0039]
Specifically, for example, when the CTL receiving the WR command attempts to write data corresponding to the WR command to the storage resource 40, it is responsible for parity calculation for the parity drive in the stripe to be written. If the CTL is in charge of the result, the CTL performs the parity calculation. If not, the CTL sends a command for requesting parity calculation or necessary information to the CTL through the control bus 50. The parity calculation is executed by the responsible CTL. With such a mechanism, load distribution is more thoroughly performed, and the storage controller 10 can be operated more efficiently.
[0040]
For example, in a method in which a parity storage disk is not fixedly determined as in RAID 5, the stripe parity disk drive to be written changes dynamically (for example, every time one piece of data is written) In this case, the CTL in charge of processing of each parity disk drive also changes dynamically.
[0041]
In the above description, the WR data management table is stored in the control memory 21 of the CTL 23. However, the WR data management table is stored in both the control memories 21 and 31 of the CTL 23 and 24, and the respective tables are stored via the control bus 50. May be updated in real time.
[0042]
=== Reading process ===
FIG. 4 illustrates processing performed in the storage control device 10 when the control unit 20 receives a data read command (hereinafter referred to as “RD command”) output from the external device 14 and input through the external communication path 12. It is a flowchart explaining the flow of.
[0043]
The RD command received by the storage controller 10 is input to the host interface 22 and then interpreted by the CPU, and the CPU inputs the corresponding command to the CTL 23 (S410). The CTL 23 assigns a unique RD command ID to the RD command, attaches it to the RD command ID, sends the external address attached to the RD command and data to be read (hereinafter referred to as “RD data”). Data length) is registered in the RD data management table shown in FIG.
[0044]
The RD data management table is also stored in the control memory 31 of the control unit 30, and the contents of both RD data management tables are synchronously updated in real time by communication between the control units 20 and 30 through the control bus 50. Note that the RD data management table may be stored only in one of the control memories 21 and 31, and the control unit on the non-stored side may make an inquiry to the side storing the table through the control bus 50.
[0045]
Next, the CTL 23 is stored in the control memory 21, and is stored with an external address (for example, logical LBA (Logical Block Address)), storage location designation information on the storage resource 40 (disk drive number (or stripe ID), and physical address ( Or, referring to a conversion table (not shown) stored in the control memory 21 in which the correspondence with the logical address on the stripe) is recorded, the external address sent along with the RD command and From the data length, the storage area on the storage resource 40 in which the RD data is stored is checked (S411). Note that the conversion table may be the same as the resource management table described above.
[0046]
Next, the CTL 23 divides the storage area of the RD data into a plurality of data blocks, and determines a CTL in charge of data read processing for each data block (S412). As a method of determining the CTL in charge, there are a method of assigning processing to each CTL at a predetermined ratio, a method of determining according to the load state of the CTLs 23 and 33, a method of assigning according to a predetermined algorithm, and the like. The CTL 23 stores the storage location (for example, the top address on the disk drive or the logical address on the stripe) and the data length of each generated data block, and an identifier indicating the CTL that is in charge of processing the data block, as RD data. Register in the management table (S413).
[0047]
Next, the CTL 23 registers a data read command for the data block to be read by itself in an RD processing queue (not shown) stored in the control memory 21 (S414). In addition, the CTL 23 transmits a read request command for the data block handled by the CTL 33 through the control bus 50 (S415). This read instruction command includes information for specifying a storage area on the storage resource 40 in which each data block is stored (for example, a read start position and the data length of the data block). When receiving the read request command, the CTL 33 registers it in the RD processing queue stored in the control memory 31 (S416).
[0048]
The CTL 23 executes the RD command set in the RD processing queue at an appropriate timing (S417), and stores the data read from the corresponding data block in the cache memory 24. At this time, the CTL 23 registers the head address on the cache memory 24 storing the data read from each data block in the RD data management table on the control memory 24. In addition, a flag indicating that reading of the corresponding data block is completed is set in the “completion flag” column for the corresponding data block of the RD data management table.
[0049]
On the other hand, the CTL 33 sequentially executes the RD commands registered in the RD processing queue (S418), and stores the read data in the cache memory 34. The CTL 33 transmits the data stored in the cache memory 34 to the CTL 23 via the control bus 50 (S419). Note that the data transmitted here is accompanied by information (for example, an ID assigned to each data block) specifying which data block the data corresponds to.
[0050]
The CTL 23 stores the data sent from the CTL 33 in the cache memory 24 (S420). On the other hand, the CTL 23 refers to the RD data management table to monitor whether reading of data corresponding to all the data blocks for the RD command has been completed (S421). When the reading of data corresponding to all the data blocks is completed, the CTL 23 transmits the data corresponding to each data block written in the cache memory 24 to the external device 14 through the external communication path 12 (S422). ). This data is accompanied by the external address or the like as necessary.
[0051]
In addition, a flag indicating that reading of the RD command is completed is set in the “all completion flag” column of the corresponding RD command in the RD data management table (S423). As described above, the reading process is completed.
[0052]
By the way, as described in the writing process, similarly, in the case of the reading process, the unit of the data block is a byte unit or a word unit corresponding to the RAID system adopted for the operation of the storage resource 40, or You may make it divide | segment into a block unit.
[0053]
Further, in the data reading process described above, when data to be read remains on the cache memories 24 and 34, the data on the cache memories 24 and 34 is not read out from the storage resource 40. RD data may be organized using data.
[0054]
=== Others ===
The case where the storage control device 10 includes two data controllers has been described above, but the present invention can be extended to a case where there are three or more data controllers.
[0055]
The CTL 23 can execute a read command set in the WR process queue or the RD process queue in parallel with other processes. For example, the CTL 23 transmits a write request command or a read request command to the CTL 33. In parallel, commands set in the WR processing queue and RD processing queue can be executed.
[0056]
【The invention's effect】
According to the present invention, a data input / output request can be efficiently processed in a storage control device having a plurality of data controllers.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a storage control device according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a flow of data write processing according to an embodiment of the present invention.
FIG. 3 is a diagram showing a WR data management table according to an embodiment of the present invention.
FIG. 4 is a flowchart illustrating data read processing according to an embodiment of the present invention.
FIG. 5 is a diagram showing an RD data management table according to an embodiment of the present invention.
[Explanation of symbols]
12 External communication path 20, 30 Control unit 21, 31 Control memory 23, 33 Data controller (CTL)
24, 34 Cache memory 40 Storage resource 50 Control bus

Claims (7)

外部通信路から入力されるデータ入出力要求を受信して、前記データ入出力要求に対応して記憶資源に対するデータ入出力処理を行う、データ通信路により通信可能に接続された第1及び第2のデータコントローラを備え、
前記第1のデータコントローラは
前記データ入出力要求としてデータ書き込み要求および書き込み対象データ受信すると、受信した前記書き込み対象データを、前記第1及び第2のデータコントローラの処理負荷に応じて複数のデータブロックに分割し、分割した各データブロックの前記記憶資源への書き込み処理を担当する前記データコントローラを決定し、自身の処理担当の前記データブロックを前記記憶資源に書き込む一方、前記第2のデータコントローラの処理担当の前記データブロックについてのデータ書き込み要求を前記データ通信路を通じて前記第2のデータコントローラに送信し、
前記第2のデータコントローラは
前記第1のデータコントローラから前記データ書き込み要求を受信すると、自身の処理担当の前記データブロックを前記記憶資源に書き込むこと
を特徴とする記憶制御装置。
First and second connected to be communicable via a data communication path, which receives a data input / output request input from an external communication path and performs data input / output processing for a storage resource in response to the data input / output request. With a data controller
The first data controller includes :
Upon receiving a data write request and write target data as the data output request, the Kisho can lump pair Zode over data before the received plurality of data blocks according to the processing load of the first and second data controller And determining the data controller in charge of writing the divided data blocks to the storage resource, and writing the data block in charge of the processing to the storage resource, while the second data controller A data write request for the data block in charge of processing is transmitted to the second data controller through the data communication path;
The second data controller,
When the data write request is received from the first data controller , the storage control device writes the data block in charge of processing to the storage resource .
請求項1に記載の記憶制御装置であって、
前記第1及び第2のデータコントローラはRAID3〜6の方式で前記記憶資源を管理し、
前記第1のデータコントローラは、前記書き込み対象データを前記複数のデータブロックに分割するに際し、前記書き込み対象のデータをRAID3〜6における書き込み単位のデータブロックに分割することを特徴とする記憶制御装置。
The storage control device according to claim 1,
The first and second data controllers manage the storage resources in a RAID 3-6 manner;
The first data controller, when dividing the write target data into the plurality of data blocks, divides the write target data into write-unit data blocks in RAID 3-6 .
請求項に記載の記憶制御装置であって、
前記第1及び第2のデータコントローラはRAID3〜6の方式で前記記憶資源を管理し、
前記第1及び第2のデータコントローラの処理負荷に応じて、前記RAID3〜6の方式におけるパリティ計算を担当するデータコントローラを決定することを特徴とする記憶制御装置。
The storage controller according to claim 1,
The first and second data controllers manage the storage resources in a RAID 3-6 manner;
A storage controller that determines a data controller responsible for parity calculation in the RAID 3 to 6 schemes according to the processing load of the first and second data controllers .
外部通信路から入力されるデータ入出力要求を受信して、前記データ入出力要求に対応して記憶資源に対するデータ入出力処理を行う、データ通信路により通信可能に接続された第1及び第2のデータコントローラを備え、
前記第1のデータコントローラは
前記データ入出力要求としてデータ読み出し要求を受信すると、受信した前記データ読み出し要求についての読み出し対象データの前記記憶資源における記憶領域を複数のデータブロックに分割し、第1及び第2のデータコントローラの処理負荷に応じて、分割した各データブロックの前記記憶資源からの読み出し処理を担当する前記データコントローラを決定し、自身の処理担当の前記データブロックからデータを読み出す一方、前記第2のデータコントローラの処理担当の前記データブロックからのデータ読み出し要求を前記データ通信路を通じて前記第2のデータコントローラに送信し、
前記第2のデータコントローラは
前記第1のデータコントローラから前記データ読み出し要求を受信すると、受信した前記データ読み出し要求についての前記記憶資源からのデータの読み出しを行い、読み出した前記データを前記第1のデータコントローラに送信し、
前記第1のデータコントローラは
自身が読み出したデータと前記第2のデータコントローラから送られてくるデータとを前記外部通信路に送信すること
を特徴とする記憶制御装置。
First and second connected to be communicable via a data communication path, which receives a data input / output request input from an external communication path and performs data input / output processing for a storage resource in response to the data input / output request. With a data controller
The first data controller includes :
When a data read request is received as the data input / output request, the storage area of the storage resource of the read target data for the received data read request is divided into a plurality of data blocks, and the processing of the first and second data controllers According to the load, the data controller responsible for the read processing of each divided data block from the storage resource is determined and data is read from the data block responsible for its own processing, while the processing of the second data controller Sending a data read request from the data block in charge to the second data controller through the data communication path,
The second data controller,
When the data read request is received from the first data controller, data is read from the storage resource for the received data read request, and the read data is transmitted to the first data controller,
The first data controller includes :
A storage control device characterized by transmitting data read by itself and data sent from the second data controller to the external communication path.
請求項に記載の記憶制御装置であって、
前記第1及び第2のデータコントローラはRAID3〜6の方式で前記記憶資源を管理し、
前記第1のデータコントローラは、前記読み出し対象データの前記記憶資源における記憶領域を前記複数のデータブロックに分割するに際し、前記記憶領域をRAID3〜6における書き込み単位のデータブロックに分割することを特徴とする記憶制御装置。
The storage control device according to claim 4 ,
The first and second data controllers manage the storage resources in a RAID 3-6 manner;
The first data controller divides the storage area into write-unit data blocks in RAID 3 to 6 when the storage area of the storage resource of the read target data is divided into the plurality of data blocks. Storage controller.
外部通信路から入力されるデータ入出力要求を受信して、前記データ入出力要求に対応して記憶資源に対するデータ入出力処理を行う、データ通信路により通信可能に接続された第1及び第2のデータコントローラを備える記憶制御装置の制御方法であって、
前記第1のデータコントローラは
前記データ入出力要求としてデータ書き込み要求および書き込み対象データ受信すると、受信した前記書き込み対象データを、前記第1及び第2のデータコントローラの処理負荷に応じて複数のデータブロックに分割し、分割した各データブロックの前記記憶資源への書き込み処理を担当する前記データコントローラを決定し、自身の処理担当の前記データブロックを前記記憶資源に書き込む一方、前記第2のデータコントローラの処理担当の前記データブロックについてのデータ書き込み要求を前記データ通信路を通じて前記第2のデータコントローラに送信し、
前記第2のデータコントローラは
前記第1のデータコントローラから前記データ書き込み要求を受信すると、自身の処理担当のデータブロックを前記記憶資源に書き込むこと
を特徴とする記憶制御装置の制御方法。
First and second connected to be communicable via a data communication path, which receives a data input / output request input from an external communication path and performs data input / output processing for a storage resource in response to the data input / output request. A storage control device comprising a data controller of
The first data controller includes :
Upon receiving a data write request and write target data as the data output request, the Kisho can lump pair Zode over data before the received plurality of data blocks according to the processing load of the first and second data controller And determining the data controller in charge of writing the divided data blocks to the storage resource, and writing the data block in charge of the processing to the storage resource, while the second data controller A data write request for the data block in charge of processing is transmitted to the second data controller through the data communication path;
The second data controller,
When the data write request is received from the first data controller, the data block in charge of its processing is written into the storage resource .
外部通信路から入力されるデータ入出力要求を受信して、前記データ入出力要求に対応して記憶資源に対するデータ入出力処理を行う、データ通信路により通信可能に接続された第1及び第2のデータコントローラを備える記憶制御装置の制御方法であって、
前記第1のデータコントローラは
前記データ入出力要求としてデータ読み出し要求を受信すると、受信した前記データ読み出し要求についての読み出し対象データの前記記憶資源における記憶領域を複数のデータブロックに分割し、第1及び第2のデータコントローラの処理負荷に応じて、分割した各データブロックの前記記憶資源からの読み出し処理を担当する前記データコントローラを決定し、自身の処理担当の前記データブロックからデータを読み出す一方、前記第2のデータコントローラの処理担当の前記データブロックからのデータ読み出し要求を前記データ通信路を通じて前記第2のデータコントローラに送信し、
前記第2のデータコントローラは
前記第1のデータコントローラから前記データ読み出し要求を受信すると、受信した前記データ読み出し要求についての前記記憶資源からのデータの読み出しを行い、読み出した前記データを前記第1のデータコントローラに送信し、
前記第1のデータコントローラは
自身が読み出したデータと前記第2のデータコントローラから送られてくるデータとを前記外部通信路に送信すること
を特徴とする記憶制御装置の制御方法。
First and second connected to be communicable via a data communication path, which receives a data input / output request input from an external communication path and performs data input / output processing for a storage resource in response to the data input / output request. A storage control device comprising a data controller of
The first data controller includes :
When a data read request is received as the data input / output request, the storage area of the storage resource of the read target data for the received data read request is divided into a plurality of data blocks, and the processing of the first and second data controllers According to the load, the data controller responsible for the read processing of each divided data block from the storage resource is determined and data is read from the data block responsible for its own processing, while the processing of the second data controller Sending a data read request from the data block in charge to the second data controller through the data communication path,
The second data controller,
When the data read request is received from the first data controller, data is read from the storage resource for the received data read request, and the read data is transmitted to the first data controller,
The first data controller includes :
A control method for a storage control device, comprising: transmitting data read by itself and data transmitted from the second data controller to the external communication path.
JP2002056374A 2002-03-01 2002-03-01 Storage control device and control method of storage control device Expired - Fee Related JP4219602B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2002056374A JP4219602B2 (en) 2002-03-01 2002-03-01 Storage control device and control method of storage control device
US10/377,848 US6985997B2 (en) 2002-03-01 2003-02-28 System and method for storage system
US11/234,554 US7181571B2 (en) 2002-03-01 2005-09-23 System and method for storage system
US11/654,064 US7596660B2 (en) 2002-03-01 2007-01-16 System and method for storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002056374A JP4219602B2 (en) 2002-03-01 2002-03-01 Storage control device and control method of storage control device

Publications (2)

Publication Number Publication Date
JP2003256150A JP2003256150A (en) 2003-09-10
JP4219602B2 true JP4219602B2 (en) 2009-02-04

Family

ID=28666968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002056374A Expired - Fee Related JP4219602B2 (en) 2002-03-01 2002-03-01 Storage control device and control method of storage control device

Country Status (2)

Country Link
US (3) US6985997B2 (en)
JP (1) JP4219602B2 (en)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4704659B2 (en) 2002-04-26 2011-06-15 株式会社日立製作所 Storage system control method and storage control device
JP4014923B2 (en) 2002-04-30 2007-11-28 株式会社日立製作所 Shared memory control method and control system
JP2004110367A (en) * 2002-09-18 2004-04-08 Hitachi Ltd Storage system control method, storage control device, and storage system
JP4439798B2 (en) * 2002-10-17 2010-03-24 株式会社日立製作所 Disk array device control method and disk array device
US7263593B2 (en) 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
US20070248393A1 (en) * 2002-12-20 2007-10-25 Transact Technologies Incorporated Method and apparatus for driving a printer
US7346805B1 (en) * 2003-09-29 2008-03-18 Emc Corporation Protection of mirrored data
JP4307964B2 (en) 2003-11-26 2009-08-05 株式会社日立製作所 Access restriction information setting method and apparatus
JP4391265B2 (en) 2004-02-26 2009-12-24 株式会社日立製作所 Storage subsystem and performance tuning method
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US8335842B2 (en) 2004-03-16 2012-12-18 Icontrol Networks, Inc. Premises management networking
JP4646574B2 (en) 2004-08-30 2011-03-09 株式会社日立製作所 Data processing system
JP2006127028A (en) 2004-10-27 2006-05-18 Hitachi Ltd Memory system and storage controller
US7337350B2 (en) * 2005-02-09 2008-02-26 Hitachi, Ltd. Clustered storage system with external storage systems
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
JP2006293863A (en) * 2005-04-13 2006-10-26 Hitachi Ltd Disk array device and control method thereof
JP4634268B2 (en) * 2005-10-03 2011-02-16 株式会社日立製作所 Storage system power saving method and storage system
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
JP4679609B2 (en) * 2008-06-05 2011-04-27 株式会社東芝 Video recording / reproducing apparatus, video recording method and video reproducing method
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
JP5725374B2 (en) * 2012-03-01 2015-05-27 日本電気株式会社 Disk array device and power consumption reduction method thereof
US9639457B1 (en) * 2012-12-20 2017-05-02 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability
TWI559133B (en) * 2013-05-22 2016-11-21 祥碩科技股份有限公司 Disk array system and data processing method
JP5976937B2 (en) * 2013-07-26 2016-08-24 株式会社日立製作所 Computer system
US9239681B2 (en) 2013-10-17 2016-01-19 Hitachi, Ltd. Storage subsystem and method for controlling the storage subsystem
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
JP6307962B2 (en) * 2014-03-19 2018-04-11 日本電気株式会社 Information processing system, information processing method, and information processing program
JP6365557B2 (en) * 2016-01-26 2018-08-01 日本電気株式会社 Control circuit and control method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328758A (en) 1995-06-02 1996-12-13 Hitachi Ltd Disk array device
JP3732869B2 (en) 1995-06-07 2006-01-11 株式会社日立製作所 External storage device
US5712970A (en) * 1995-09-28 1998-01-27 Emc Corporation Method and apparatus for reliably storing data to be written to a peripheral device subsystem using plural controllers
US5720027A (en) * 1996-05-21 1998-02-17 Storage Computer Corporation Redundant disc computer having targeted data broadcast
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6108684A (en) * 1996-12-23 2000-08-22 Lsi Logic Corporation Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers
JP3726484B2 (en) * 1998-04-10 2005-12-14 株式会社日立製作所 Storage subsystem
US6138247A (en) * 1998-05-14 2000-10-24 Motorola, Inc. Method for switching between multiple system processors
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
US6457098B1 (en) * 1998-12-23 2002-09-24 Lsi Logic Corporation Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6349357B1 (en) * 1999-03-04 2002-02-19 Sun Microsystems, Inc. Storage architecture providing scalable performance through independent control and data transfer paths
US6195727B1 (en) * 1999-03-31 2001-02-27 International Business Machines Corporation Coalescing raid commands accessing contiguous data in write-through mode
US6247099B1 (en) * 1999-06-03 2001-06-12 International Business Machines Corporation System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers
US6330642B1 (en) * 2000-06-29 2001-12-11 Bull Hn Informatin Systems Inc. Three interconnected raid disk controller data processing system architecture
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
US7155569B2 (en) * 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list
US6708285B2 (en) * 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6766491B2 (en) * 2001-05-09 2004-07-20 Dot Hill Systems Corp. Parity mirroring between controllers in an active-active controller pair
US6842829B1 (en) * 2001-12-06 2005-01-11 Lsi Logic Corporation Method and apparatus to manage independent memory systems as a shared volume

Also Published As

Publication number Publication date
US20030212860A1 (en) 2003-11-13
US20060020755A1 (en) 2006-01-26
US6985997B2 (en) 2006-01-10
US7596660B2 (en) 2009-09-29
US7181571B2 (en) 2007-02-20
JP2003256150A (en) 2003-09-10
US20070136527A1 (en) 2007-06-14

Similar Documents

Publication Publication Date Title
JP4219602B2 (en) Storage control device and control method of storage control device
US8762682B1 (en) Data storage apparatus providing host full duplex operations using half duplex storage devices
US6170023B1 (en) System for accessing an input/output device using multiple addresses
US7536505B2 (en) Storage system and method for controlling block rearrangement
JP3201219B2 (en) I / O processing system
JP4818395B2 (en) Storage apparatus and data copy method
KR20200017363A (en) MANAGED SWITCHING BETWEEN ONE OR MORE HOSTS AND SOLID STATE DRIVES (SSDs) BASED ON THE NVMe PROTOCOL TO PROVIDE HOST STORAGE SERVICES
JP4464378B2 (en) Computer system, storage system and control method for saving storage area by collecting the same data
US7849260B2 (en) Storage controller and control method thereof
JPH0683708A (en) Method and device for storing data
US6954839B2 (en) Computer system
JP2013531283A (en) Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function
JP2004213064A (en) Raid device and logic device expansion method therefor
JPH06131259A (en) Method of data transfer between memory and auxiliary memory
US9582214B2 (en) Data access method and data access apparatus for managing initialization of storage areas
JP2003131816A5 (en) Storage device and its control method
JPH09231015A (en) Storage device and its system
JPH05265661A (en) Disk processor
WO2018158808A1 (en) Information system, management program, and program exchanging method for information system
WO2019080150A1 (en) Dual active storage system and address allocation method
JP2001337850A (en) Storage and method for controlling the same
EP2093656B1 (en) Storage system and access instruction sending method
JPH0773090A (en) Computer system and secondary storage device
JP2003131818A (en) Configuration of raid among clusters in cluster configuring storage
JPH07200187A (en) Disk array device

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050128

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080417

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: 20081111

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: 20081112

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees