JP3719976B2 - 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム - Google Patents
二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム Download PDFInfo
- Publication number
- JP3719976B2 JP3719976B2 JP2001367252A JP2001367252A JP3719976B2 JP 3719976 B2 JP3719976 B2 JP 3719976B2 JP 2001367252 A JP2001367252 A JP 2001367252A JP 2001367252 A JP2001367252 A JP 2001367252A JP 3719976 B2 JP3719976 B2 JP 3719976B2
- Authority
- JP
- Japan
- Prior art keywords
- memory area
- controller
- disk
- status
- input
- 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 - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、論理ディスクへのアクセスを制御する、二重化して用いられるコントローラに係り、特に、二重化されたコントローラ(に接続されたホストコンピュータ)間における同一論理ディスクの同一ディスク領域へのアクセスの排他制御、並びにディスクキャッシュデータの一致化制御に好適な、二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システムに関する。
【0002】
【従来の技術】
近年、1つまたは複数のディスク装置をホストコンピュータからみて1つの論理ディスクとして扱うことができるディスク記憶システムが開発されている。このシステムは、1つまたは複数の論理ディスクを備えている。この種のディスク記憶システムとして、例えば特開平9−146842号公報に記載されているような、論理ディスクへのアクセスを制御するコントローラが二重化されたディスク記憶システム(記憶サブシステム)が知られている。
【0003】
二重化コントローラ構成を適用するディスク記憶システムは、各コントローラ毎に異なるホストコンピュータを接続可能なことから、複数のホストコンピュータからのディスクアクセスのためのIO(入出力)要求(リード/ライト要求)を高速で処理することができる。この種のディスク記憶システムにおいて、各コントローラは、ホストコンピュータと論理ディスクとの間で転送されるデータを一時格納するキャッシュメモリ(以下、ディスクキャッシュと称する)を備えている。
【0004】
ここで、ディスク記憶システム中の二重化コントローラが、第1及び第2のコントローラから構成されているものとする。また、第1及び第2のコントローラは、それぞれ第1及び第2のディスクキャッシュを備え、それぞれ第1及び第2のホストコンピュータと接続されているものとする。このようなディスク記憶システムにおいて、第1のコントローラは、第1のホストコンピュータからのライト要求の実行時には、当該ライト要求で指定されたデータを第1のディスクキャッシュに書き終えた段階で、要求元の第1のホストコンピュータに要求実行終了を通知する。第1のディスクキャッシュに書き込まれたデータは、適当なタイミングで、第1のコントローラにより上記ライト要求で指定された論理ディスクのディスク領域に書き込まれる、つまりライトバックされる。
【0005】
さて、このライトバックが行われる前に、第2のホストコンピュータから第2のコントローラに、上記第1のホストコンピュータからのライト要求の場合とアクセス先が同一のライト要求、即ち同一論理ディスクの同一ディスク領域(同一論理ディスク領域)へのライト要求が与えられたものとする。もし、第2のコントローラが、そのまま第2のホストコンピュータからのライト要求を実行して、当該ライト要求で指定されたデータを第2のディスクキャッシュに書き込んだ場合、第1及び第2のディスクキャッシュ上で、同一論理ディスクの同一ディスク領域に対応するデータが異なってしまう。したがって、この状態で、第1のホストコンピュータから第1のコントローラに対して上記ディスク領域からのデータ読み出しを指示するリード要求が与えられた場合、第1のコントローラは、第2のホストコンピュータからのライト要求で指定された最新のデータとは異なるデータを、第1のディスクキャッシュから読み出して要求元の第1のホストコンピュータに転送することになる。
【0006】
このため、上記ディスク記憶システムにおいて、ホストコンピュータからのライト要求に応じて、対応するコントローラが当該要求で指定されたデータをディスクキャッシュに書き込んだ際に、当該ディスクキャッシュと他のコントローラのディスクキャッシュとの間でデータが一致しなくなる不具合を解消するためには、各コントローラのディスクキャッシュ相互間でデータの一致化を図る一致化制御(ディスクキャッシュデータ一致化制御)と、その間は他のコントローラにおける同一論理ディスクの同一ディスク領域へのライト要求の実行を待たせる、いわゆる排他制御(ホストコンピュータからアクセスされる論理ディスク領域の排他制御)とが必要となる。
【0007】
ここで、従来のディスク記憶システムにおけるディスクキャッシュデータ一致化制御とホストコンピュータからアクセスされる論理ディスク領域の排他制御とについて説明する。
【0008】
まず、従来のディスク記憶システムでは、上記一致化制御と排他制御とに必要な情報を当該コントローラ間で授受するために、第1及び第2のコントローラにそれぞれ第1及び第2の通信制御部並びに第1及び第2のディスクキャッシュ制御回路を設けると共に、各通信制御部間を接続する第1の専用バスと各ディスクキャッシュ制御回路間を接続する第2の専用バスとを設けている。
【0009】
このようなディスク記憶システムにおいて、例えば第1のホストコンピュータから第1のコントローラにIO要求(リード/ライト要求)が与えられた場合、第1のコントローラは当該IO要求を解釈し、第2のコントローラとの通信制御部を介しての通信制御によりコントローラ間で当該IO要求で指定された論理ディスクのディスク領域(論理ディスク領域)の排他制御を行い、当該ディスク領域のアクセス権を獲得する。この排他制御の後、第1のコントローラは、上記IO要求で指定されたデータ転送を行うのに必要な第1のディスクキャッシュ上のメモリ領域を確保する。一方、第2のコントローラは、第1のコントローラによるIO要求の実行により転送されるデータの写しを格納するためのメモリ領域を確保する。その後、第1のコントローラは、上記IO要求に従い、第1のディスクキャッシュを介してデータ転送を行う。
【0010】
第1のディスクキャッシュに格納されたデータは、第1のディスクキャッシュ制御回路のデータ転送機能により、第2の専用バスを介して第2のコントローラに転送され、第2のディスクキャッシュに確保されたメモリ領域に第2のディスクキャッシュ制御回路により格納される。このディスクキャッシュ間のデータ転送により、コントローラ間でディスクキャッシュデータの一致化が行われる。
【0011】
上記した従来のディスク記憶システムでは、第1及び第2のホストコンピュータからそれぞれ同一論理ディスクの同一ディスク領域(論理ディスク領域)に対するIO要求が対応する第1及び第2のコントローラに与えられた場合、当該両コントローラによる通信制御にて、どちらか一方のコントローラのみが論理ディスク領域に対するアクセス権を獲得し、IO要求を実行する。ここでは、第1のコントローラがアクセス権を獲得してIO要求を実行するものとする。第2のコントローラは、第1のコントローラのIO処理が終了するまで第2のホストコンピュータからのIO要求の実行を待たなければならない。
【0012】
第1のホストコンピュータからのIO要求で指定されたディスク領域に対するアクセス権を獲得した第1のコントローラは、当該IO要求を実行し、第1のディスクキャッシュ上に確保したメモリ領域に格納したデータを第2のコントローラに転送する。このデータは、先のコントローラ間の通信により第2のディスクキャッシュ上に確保されたメモリ領域に格納される。これにより、コントローラ間でディスクキャッシュデータの一致化が図られる。
【0013】
第1のコントローラは、第1のホストコンピュータからのIO要求で指定されたデータを全て第1のディスクキャッシュ上のメモリ領域に格納し終えると、当該第1のホストコンピュータにIO要求実行終了を通知すると共に、第2のコントローラとの間の第1の専用バスを介しての通信により当該第2のコントローラにもIO要求実行終了を通知する。すると待ち状態にある第2のコントローラは、一致化されている第2のディスクキャッシュのメモリ領域上のデータを使用して、第2のホストコンピュータからのIO要求を続けて実行する。
【0014】
【発明が解決しようとする課題】
上記したように、二重化コントローラ構成を適用する従来のディスク記憶システムでは、各コントローラに対応するホストコンピュータからそれぞれ同一論理ディスク領域に対するIO要求が発行された場合、各コントローラでは、それぞれ対応するホストコンピュータと論理ディスク領域とのデータ転送を行うために必要なメモリ領域が自コントローラ内のディスクキャッシュ上に確保される。このディスクキャッシュ上のメモリ領域は、対応するホストコンピュータから同一論理ディスク領域をアクセスするために確保されたものであるだけでなく、ディスクキャッシュデータの一致化を行うためのメモリ領域として各コントローラ間での同期(整合性)が保障されたものである。これは、各コントローラ間の通信制御による同一論理ディスク領域へのアクセスに対する排他制御(IO排他制御)が行われた後にメモリ領域が確保されているためである。
【0015】
このように二重化コントローラ構成を適用した従来のディスク記憶システムでは、コントローラ間の通信制御により同一論理ディスク領域へのアクセスに対する排他制御を行い、しかる後に各コントローラにおいてディスクキャッシュ上にメモリ領域を確保することにより、ディスクキャッシュデータの一致化を行うための、各コントローラ(に対応するホストコンピュータ)間での同期が保障されたメモリ領域とすることができる。
【0016】
しかしながら、そのためにはコントローラ間の通信制御によるIO排他制御が必要となり、ホストコンピュータからのIO要求を高速に処理できないという問題がある。
【0017】
さて、通信制御によるIO排他制御を行った後、同一論理ディスク領域(同一論理ディスクの同一ディスク領域)をアクセスするために各コントローラのディスクキャッシュ上に確保されたメモリ領域は、同時に排他されたメモリ領域といえる。逆に、ディスクキャッシュ上にメモリ領域を確保した時点でアクセスを排他することができれば、同時に同一論理ディスク領域へのアクセスを排他することが可能となると考えられる。したがって、各コントローラのディスクキャッシュ上のメモリ領域を同時に確保して排他することができれば、通信制御によるIO排他制御は不要なものとすることができると考えられる。
【0018】
そこで本発明は上記事情を考慮してなされたものでその目的は、同一論理ディスクの同一ディスク領域へのアクセスに対する排他制御と、ディスクキャッシュ上のメモリ確保とを別々に行わずに、ディスクキャッシュ上のメモリ領域を確保したときに、同時に当該メモリ領域を排他的に使用して対応するディスク領域にアクセスする権利を得ることができ、これにより排他制御を円滑に行い、高速にIO要求を処理することができる二重化コントローラ構成を適用するディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システムを提供することにある。
【0019】
【課題を解決するための手段】
本発明の1つの観点によれば、少なくとも1台のディスク装置から構成される論理ディスクを少なくとも1つ備えた、二重化コントローラ構成を適用するディスク記憶システムに用いられ、ホストコンピュータからの入出力要求に応じて当該ホストコンピュータと対応する論理ディスクとの間のデータ転送を制御する二重化コントローラ構成ディスク記憶システム向けコントローラが提供される。このコントローラは、ホストコンピュータからの入出力要求を受け付けて、当該要求の実行を制御するマイクロプロセッサと、ホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、このディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御するディスクキャッシュ制御回路とを備えている。このディスクキャッシュ制御回路は、ホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を確保するための当該メモリ領域を示すメモリ領域情報の設定が上記マイクロプロセッサから実行可能なように構成されており、この設定に応じて、ディスク記憶システム内の他のコントローラのディスクキャッシュ制御回路に当該メモリ領域情報を専用バスを介して設定する。ここで、上記ディスクキャッシュ制御回路に、以下の機能、即ちホストコンピュータからの入出力要求がライト要求の場合には、マイクロプロセッサから設定されたメモリ領域情報の示すメモリ領域が確保されたことをもって、当該入出力要求で指定されたデータを当該確保されたメモリ領域に書き込むと同時に、当該データを他のコントローラのディスクキャッシュ制御回路に上記専用バスを介して転送することで、当該データを上記他のコントローラのディスクキャッシュ制御回路により上記他のコントローラのディスクキャッシュ上に確保された対応するメモリ領域に書き込ませる機能を持たせるとよい。
【0020】
このような構成のコントローラにおいては、ホストコンピュータからの入出力(IO)要求に応じて、当該入出力要求の指定する論理アドレス領域(論理ディスクのディスク領域)に固有のディスクキャッシュメモリ上のメモリ領域を示すメモリ領域情報を自コントローラ内のディスクキャッシュ制御回路に設定し、同時に当該メモリ領域情報を専用バスを介して他のコントローラのディスクキャッシュ制御回路に設定することにより、当該メモリ領域情報の示すメモリ領域を自コントローラ内のディスクキャッシュメモリ上に確保できた場合には、同時に他コントローラでも当該メモリ領域情報の示すメモリ領域を当該他コントローラ内のディスクキャッシュメモリ上に確保できる。これにより、ホストコンピュータからアクセスされる論理ディスク領域の排他制御が、通信制御等による特別の手順を必要とせずに自動的に行われることになる。つまり、各コントローラで当該コントローラ内のディスクキャッシュメモリ上の同一位置のメモリ領域を同時に確保できる構成とすることにより、各コントローラで同一論理ディスクの同一ディスク領域をアクセスするための排他制御を必要とせずに、高速なディスクキャッシュデータの一致化と入出力要求の処理をすることができる。
【0021】
ここで、上記マイクロプロセッサに以下の機能、即ち他のコントローラに対するホストコンピュータからの入出力要求に応じて当該他のコントローラ内のディスクキャッシュ制御回路により上記専用バスを介して設定されたメモリ領域情報の示すメモリ領域が確保されている状態で、ホストコンピュータからの入出力要求を受け付け、且つ当該受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域の少なくとも一部が上記確保されているメモリ領域と共通している場合に、上記他のコントローラに対するホストコンピュータからの入出力要求がライト要求であるならば、上記受け付けた入出力要求がライト要求またはリード要求のいずれであるかに無関係に、上記確保されているメモリ領域が開放されるまで、上記受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域を確保するのを待つ機能(排他機能)と、上記他のコントローラに対するホストコンピュータからの入出力要求がリード要求であるならば、上記受け付けた入出力要求がライト要求である場合だけ、上記確保されているメモリ領域が開放されるまで、上記受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域を確保するのを待つ機能、言い替えれば、受け付けた入出力要求がリード要求の場合のみ当該メモリ領域を確保できる(共有機能)を持たせるとよい。
【0022】
このように、ディスクキャッシュメモリ上のメモリ領域の確保を、ホストコンピュータからの入出力要求の種類(リード/ライトの種類)によって制御し、その領域を他からリード/ライトできないようにする排他機能に加え、その領域のリードのみ可能とする共有機能を備えることにより、つまりホストコンピュータからの入出力要求の種類に応じてディスクキャッシュメモリ上のメモリ領域を排他/共有に分類し確保する機能によりホストコンピュータからアクセスされる論理ディスク領域の排他制御を行うことにより、各コントローラに要求される入出力処理を更に高速に実行することが可能となる。
【0023】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るディスク記憶システムを備えたコンピュータシステムの構成を示すブロック図である。
【0024】
図1において、ディスク記憶システム10は、少なくとも1つ、例えばn個(nは2以上の整数)の論理ディスク11-1,11-2,…11-nと、各論理ディスク11-1,11-2,…11-nと接続された、例えば2つのコントローラ12-1,12-2とから構成される。論理ディスク11-i(i=1〜n)は後述するホストコンピュータ20-1,20-2からは1つのディスク装置に見えるものであり、複数のディスク装置(例えばハードディスクドライブ)から構成されるディスクアレイである。なお、論理ディスク11-iが1つのディスク装置から構成されるものであっても構わない。
【0025】
コントローラ12-1,12-2は、それぞれディスク記憶システム10を利用するホストコンピュータ20-1,20-2と接続されている。コントローラ12-1,12-2は、ホストコンピュータ20-1,20-2からのIO(入出力)要求(リード/ライト要求)に応じて当該ホストコンピュータ20-1,20-2と論理ディスク11-iとの間のデータ転送を制御する。つまりディスク記憶システム10は、コントローラ12-1,12-2による二重化コントローラ構成を適用している。コントローラ12-1,12-2は、それぞれ、マイクロプロセッサ121-1,121-2と、ホスト入出力部122-1,122-2と、ディスク入出力部123-1,123-2と、ディスクキャッシュ(ディスクキャッシュメモリ)124-1,124-2と、ディスクキャッシュ制御回路125-1,125-2と、PCIバス(Peripheral Component Interconnect Bus)に代表される内部バス126-1,126-2とを備えている。この内部バス126-1,126-2には、マイクロプロセッサ121-1,121-2と、ホスト入出力部122-1,122-2と、ディスク入出力部123-1,123-2と、ディスクキャッシュ制御回路125-1,125-2とが接続されている。
【0026】
マイクロプロセッサ121-1,121-2は、コントローラ12-1,12-2の中枢をなしており、ホストコンピュータ20-1,20-2からのIO要求の実行をROM(図示せず)等の不揮発性メモリに格納されている制御プログラムに従って制御する。特にマイクロプロセッサ121-1,121-2は、ホストコンピュータ20-1,20-2からのIO要求を受けた場合に、当該IO要求で指定される論理ディスク11-iのディスク領域(ここでは、説明の都合上、ホストコンピュータ20-1,20-2から見える論理的なディスク領域、つまり論理ディスク領域を指すものとする)に対応するメモリ領域がディスクキャッシュ124-1,124-2上に確保されていないならば、そのメモリ領域をディスクキャッシュ制御回路125-1,125-2を介してディスクキャッシュ124-1,124-2上に確保する制御を行い、このメモリ領域を確保できたことをもって対応するディスク領域に対するアクセス権を取得する。
【0027】
ホスト入出力部122-1,122-2は、ディスク記憶システム10を利用するホストコンピュータとコントローラ12-1,12-2との間の入出力インタフェースをなす。ここでは、ホスト入出力部122-1,122-2は、それぞれホストコンピュータ20-1,20-2との入出力インタフェースとして用いられている。
【0028】
ディスク入出力部123-1,123-2は、論理ディスク11-1〜11-n(を構成する各ディスク装置)とコントローラ12-1,12-2との接続インタフェースをなす。
【0029】
ディスクキャッシュ124-1,124-2は、ホストコンピュータ20-1と論理ディスク11-iとの間で転送されるデータを一時格納するのに用いられるメモリである。本実施形態において、ホストコンピュータ20-1,20-2からコントローラ12-1,12-2に与えられるIO要求(入出力要求)は、論理アドレス(開始論理アドレス)とデータサイズの情報を含んでいる。データサイズは、基本のブロックサイズBSを最小単位として設定される。つまり、データサイズは、ブロックサイズBSの整数倍である。今、データサイズがブロックサイズBSのm倍(mは1以上の整数)であるとすると、論理アドレスは、論理アドレス空間上で連続するm個の論理ブロックの先頭ブロックの論理アドレスを示す。ディスクキャッシュ124-1,124-2の領域は、図2に示すように、ブロックサイズBSに一致するブロックBを単位に管理される。したがって、IO要求で指定される論理ディスク11-iのディスク領域に対応するメモリ領域には、当該ディスク領域のサイズがブロックサイズBSのm倍の場合であれば、ディスクキャッシュ124-1,124-2上の連続するm個のブロックが割り当てられる。ここで、論理アドレスにより指定される論理ブロックとディスクキャッシュ124-1,124-2上のブロックとは予め対応している。
【0030】
ディスクキャッシュ制御回路125-1,125-2は、マイクロプロセッサ121-1,121-2により設定された、ディスクキャッシュ124-1,124-2上のメモリ領域へのアクセスを制御する。ディスクキャッシュ制御回路125-1,125-2間は専用バス13により相互接続されている。
【0031】
ディスクキャッシュ制御回路125-1,125-2は、図3に示すように、送信側のアドレスレジスタ31、サイズレジスタ32及びステータスレジスタ33と、受信側のアドレスレジスタ34、サイズレジスタ35及びステータスレジスタ36とを複数組備えている。アドレスレジスタ31,34には、ディスクキャッシュ124-1,124-2上に確保されるメモリ領域の開始アドレス(先頭ブロックのアドレス)が設定される。サイズレジスタ32,35には、ディスクキャッシュ124-1,124-2上に確保されるメモリ領域のサイズ、つまりブロック数が設定される。ステータスレジスタ33,36には、アドレスレジスタ31,34とサイズレジスタ32,35とで示されるディスクキャッシュ124-1,124-2上のメモリ領域のステータスが設定される。このステータスの種類には、対応するメモリ領域が、ライト要求で使用(排他使用、確保)されていることを示すライト使用中ステータス、リード要求で使用(確保)されていることを示すリード使用中ステータス、ライト要求での使用待ち状態にあることを示すライト使用待ちステータス、リード要求での使用待ち状態にあることを示すリード使用待ちステータス、ライト要求での使用完了を示すライト使用完了ステータス、リード要求での使用完了を示すリード使用完了ステータスが含まれている。ディスクキャッシュ制御回路125-1内の各アドレスレジスタ31、サイズレジスタ32及びステータスレジスタ33の組は、それぞれディスクキャッシュ制御回路125-2内の各アドレスレジスタ34、サイズレジスタ35及びステータスレジスタ36の組と対応している。
【0032】
ディスクキャッシュ制御回路125-1,125-2内の各アドレスレジスタ31及びサイズレジスタ32には、ホストコンピュータ20-1,20-2からのIO要求に応じて対応するメモリ領域を示す(メモリ領域情報としての)、それぞれアドレス及びサイズがマイクロプロセッサ121-1,121-2により設定される。一方、ディスクキャッシュ制御回路125-1,125-2内のアドレスレジスタ34及びサイズレジスタ35には、ディスクキャッシュ制御回路125-2,125-1内の対応するアドレスレジスタ31及びサイズレジスタ32の内容が、マイクロプロセッサ121-2,121-1による当該内容の設定時に、専用バス13を介して設定される。
【0033】
次に本実施形態の動作を、図4乃至図6を参照して説明する。なお、図4はホストコンピュータ20-1,20-2からディスク記憶システム10に対してライト動作を指定するIO要求(ホストIO要求)41-1,41-2が与えられた場合の動作説明図、図5はディスクキャッシュ制御回路125-1内のアドレスレジスタ31及びサイズレジスタ32へのアドレス及びサイズの設定により、そのアドレス及びサイズが、専用バス13を介してディスクキャッシュ制御回路125-2内のアドレスレジスタ34及びサイズレジスタ35に設定される様子を説明するための図、図6はライト動作を指定するIOライト要求を受け取った際のマイクロプロセッサ121-1,121-2の処理手順を説明するためのフローチャートである。
【0034】
今、ホストコンピュータ20-1,20-2からディスク記憶システム10内のコントローラ12-1,12-2に対して、論理ディスク11-iのディスク領域40へのライト動作を指定するホストIO要求41-1,41-2が与えられたものとする。
【0035】
コントローラ12-1内のマイクロプロセッサ121-1は、ホストコンピュータ20-1からのホストIO要求41-1を受け取ると、当該ホストIO要求41-1で指定されたアクセス対象とする論理ディスク11-iのディスク領域(アクセス領域)40に対応するディスクキャッシュ124-1上のメモリ領域を指定するアドレス及びサイズを、内部バス126-1を介して図5において矢印51及び52に示すように、ディスクキャッシュ制御回路125-1内の送信側アドレスレジスタ31及びサイズレジスタ32に設定する(ステップS1)。ここで、メモリ領域を指定するアドレスは、ホストIO要求に含まれる論理アドレスから計算により一意に決定される。
【0036】
ディスクキャッシュ制御回路125-1は、マイクロプロセッサ121-1により送信側アドレスレジスタ31及びサイズレジスタ32にアドレス及びデータが設定されると、その設定されたアドレス及びデータを、図5において矢印53及び54に示すように、専用バス13を介してディスクキャッシュ制御回路125-2に転送し、上記送信側アドレスレジスタ31及びサイズレジスタ32に対応する受信側アドレスレジスタ34及びサイズレジスタ35に設定させる(ステップS11)。つまり、送信側アドレスレジスタ31及びサイズレジスタ32にアドレス及びサイズが設定されると、これに同期して対応する受信側アドレスレジスタ34及びサイズレジスタ35にも同一のアドレス及びサイズが設定される。
【0037】
同様の動作がコントローラ12-2でも行われる。即ち、ホストIO要求41-2で指定された論理ディスク11-iのディスク領域(論理ディスク領域)40に対応するディスクキャッシュ124-2上のメモリ領域を指定するアドレス及びサイズが、ディスクキャッシュ制御回路125-2内の送信側アドレスレジスタ31及びサイズレジスタ32に設定される。同時に、この送信側アドレスレジスタ31及びサイズレジスタ32に設定されたアドレス及びサイズが、ディスクキャッシュ制御回路125-1内の対応する受信側アドレスレジスタ34及びサイズレジスタ35に専用バス13を介して設定される。
【0038】
マイクロプロセッサ121-1,121-2は、ディスクキャッシュ制御回路125-1,125-2内の送信側アドレスレジスタ31及びサイズレジスタ32にアドレス及びサイズを設定すると、当該レジスタ31及び32と組をなすステータスレジスタ33に“ライト使用待ち”を示すステータスを設定する(ステップS2)。つまりマイクロプロセッサ121-1,121-2は、ホストコンピュータ20-1,20-2からのホストIO要求41-1,41-2の指定するデータ転送に関し、送信側ステータスを“ライト使用待ち”に設定する。するとディスクキャッシュ制御回路125-1,125-2は、送信側ステータスレジスタ33に設定されたステータスを、それぞれ、もう一方のディスクキャッシュ制御回路125-2,125-1に専用バス13を介して転送し、上記送信側ステータスレジスタ33に対応する受信側ステータスレジスタ36に設定させる(ステップS12)。つまり、送信側ステータスが“ライト使用待ち”に設定されると、これに同期して受信側ステータスも“ライト使用待ち”に自動設定される。
【0039】
マイクロプロセッサ121-j(j=1,2)は、送信側ステータスを“ライト使用待ち”に設定するとステップS3に進む。マイクロプロセッサ121-jはステップS3において、ステップS1で設定したアドレス及びサイズ(からなるメモリ領域情報)で示されるのと同一のメモリ領域を指定する受信側アドレスレジスタ34及びサイズレジスタ35の対を検索する(ステップS3)。ここでは、複雑な表現を避けるために、便宜的に“ステップS1で設定したアドレス及びサイズで示されるのと同一のメモリ領域”と表現しているが、この“同一のメモリ領域”とは、(ディスクキャッシュ124-1,124-2上の位置が)完全に同一のメモリ領域の他に、一部領域(一部ブロック領域)が共通のメモリ領域も含むものとする。
【0040】
もし、検索できなかったならば、マイクロプロセッサ121-jは、ステップS1で設定したアドレス及びサイズで示されるのと同一のメモリ領域を用いたデータ転送が、他のコントローラ側で実行されていないと判断する。つまりマイクロプロセッサ121-jは、ホストIO要求41-jの指定する論理ディスク11-iのディスク領域と(少なくとも一部が)同一の論理ディスク11-iのディスク領域へのライトを指定するホストIO要求が、他のコントローラ側で実行されていないと判断する。この場合、マイクロプロセッサ121-jはホストIO要求41-jを実行するためにディスクキャッシュ制御回路125-jを起動して当該ホストIO要求41-jで指定されたデータ転送を行わせる(ステップS5)。これにより、ディスクキャッシュ制御回路125-jは、当該回路125-j内の対応する送信側ステータスレジスタ33に設定されているステータスを“ライト使用待ち”から“ライト使用中”に切り替える。このことは、“ライト使用中”ステータスに切り替えられたステータスレジスタ33と組をなす送信側アドレスレジスタ31及びサイズレジスタ32により指定されるメモリ領域が確保されたことを意味する。同時に、詳細を後述するように、“ライト使用中”ステータスに切り替えられた送信側ステータスレジスタ33に対応する他のコントローラのディスクキャッシュ制御回路内の受信側ステータスレジスタ36に設定されていたステータスも“ライト使用待ち”から“ライト使用中”に切り替えられる(ステップS13)。このことは、“ライト使用中”ステータスに切り替えられたステータスレジスタ36と組をなす受信側アドレスレジスタ34及びサイズレジスタ35により指定されるメモリ領域が確保されたことを意味する。
【0041】
これに対し、ステップS3で目的の受信側アドレスレジスタ34及びサイズレジスタ35の対が検索できたならば、マイクロプロセッサ121-jは、当該アドレスレジスタ34及びサイズレジスタ35と組をなす受信側ステータスレジスタ36に“ライト使用中”ステータスが設定されているか否かを判定する(ステップS6)。もし、受信側ステータスレジスタ36に“ライト使用中”ステータスが設定されているならば、つまり受信側ステータスが“ライト使用中”ならば、マイクロプロセッサ121-jは当該受信側ステータスが“ライト使用完了”となるまで、ホストIO要求41-jの実行を待つ。
【0042】
一方、受信側ステータスが“ライト使用中”でない場合には、マイクロプロセッサ121-jは受信側ステータスが“ライト使用待ち”であるか否か(ライト使用完了)であるかを判定する(ステップS7)。もし、受信側ステータスが“ライト使用待ち”でないならば、つまり“ライト使用完了”であるならば、マイクロプロセッサ121-jは上記ステップS5に進んでホストIO要求41-jを実行する。また、受信側ステータスが“ライト使用待ち”であるならば、マイクロプロセッサ121-jは、他コントローラが、ホストIO要求41-jの指定する論理ディスク11-iのディスク領域と(少なくとも一部が)同一のディスク領域へのライトを指定するホストIO要求の実行待ち状態にあると判断する。この場合、マイクロプロセッサ121-jは、自身の方が高優先度に設定されているか否かを判定し(ステップS8)、高優先度に設定されているならば、上記ステップS5に進んでホストIO要求41-jを実行する。これに対し、自身の方が低優先度であるならば、マイクロプロセッサ121-jは、受信側ステータスが“ライト使用完了”となるまで、ホストIO要求41-jの実行を待つ。
【0043】
さて、ホストコンピュータ20-1,20-2からディスク記憶システム10のコントローラ12-1,12-2に対して、論理ディスク11-iのディスク領域40へのライト動作を指定するホストIO要求41-1,41-2が与えられた図4の例では、コントローラ12-1,12-2のマイクロプロセッサ121-1,121-2の両方で、それぞれディスクキャッシュ制御回路125-1,125-2内の送信側アドレスレジスタ31及びサイズレジスタ32に、論理ディスク11-iのディスク領域40に対応するディスクキャッシュ124-1,124-2上のメモリ領域42-1,42-2を指定する同一のアドレス及びサイズが設定される(ステップS1)。当然、メモリ領域42-1,42-2は、ディスクキャッシュ124-1,124-2上の位置が同一である。また、マイクロプロセッサ121-1,121-2の両方で、ディスクキャッシュ124-1,124-2上の位置が同一の上記メモリ領域42-1,42-2を指定する受信側アドレスレジスタ34及びサイズレジスタ35の対が検索される(ステップS3,S4)。このとき、アドレスレジスタ34及びサイズレジスタ35の対に対応するステータスレジスタ36の示す受信側ステータスは、ディスクキャッシュ制御回路125-1,125-2のいずれにおいても、“ライト使用待ち”を示している。
【0044】
ここで、コントローラ12-1の方がコントローラ12-2より予め高優先度に設定されているものとすると、コントローラ12-1のマイクロプロセッサ121-1が先にステップS5に進んでホストIO要求41-1の実行を開始する。このときマイクロプロセッサ121-1によりディスクキャッシュ制御回路125-1が起動される。
【0045】
すると、(ホストIO要求41-1の指定する)論理ディスク11-iのディスク領域40に対応するディスクキャッシュ124-1上のメモリ領域42-1を指定する、当該回路125-1内の送信側アドレスレジスタ31及びサイズレジスタ32と組をなすステータスレジスタ33の示すステータスが“ライト使用待ち”から“ライト使用中”に切り替えられる。これにより、ディスクキャッシュ124-1上にメモリ領域42-1が確保され、ホストIO要求41-1の指定するデータ(ライトデータ)を当該メモリ領域42-1にディスクキャッシュ制御回路125-1の制御によって書き込むことが可能となる。
【0046】
このことは、ディスクキャッシュ124-1がライトバックキャッシュとして用いられる場合であれば、ディスクキャッシュ124-1上のメモリ領域42-1に書き込まれたデータを、ホストIO要求41-1で指定された論理ディスク11-i上のディスク領域40に適当なタイミングで書き込むライトバックのためのディスクIO要求43-1を実行する権利(つまり論理ディスク11-i上のディスク領域40のアクセス権を)をコントローラ12-1が獲得したのと等価である。また、ディスクキャッシュ124-1がライトスルーキャッシュとして用いられる場合であれば、ディスクキャッシュ124-1上のメモリ領域42-1へのライトデータ書き込み時に、そのライトデータをホストIO要求41-1で指定された論理ディスク11-i上のディスク領域40に書き込む、ライトスルーのためのディスクIO要求43-1を実行する権利(論理ディスク11-i上のディスク領域40のアクセス権)をコントローラ12-1が獲得したことになる。
【0047】
さて、ディスクキャッシュ制御回路125-1内の送信側アドレスレジスタ31及びサイズレジスタ32と組をなすステータスレジスタ33の示すステータスが“ライト使用待ち”から“ライト使用中”に切り替えられて、ディスクキャッシュ124-1上にメモリ領域42-1が確保されると、ディスクキャッシュ制御回路125-1内の送信側ステータスレジスタ33に対応するディスクキャッシュ制御回路125-2内の受信側ステータスレジスタ36の示すステータスも“ライト使用待ち”から“ライト使用中”に切り替えられる。これにより、ディスクキャッシュ124-2上にメモリ領域42-2が確保されたことになる。
【0048】
一方、コントローラ12-2のマイクロプロセッサ121-2は、ディスクキャッシュ制御回路125-2内の受信側ステータスレジスタ36により“ライト使用完了”ステータスが示されまで、ホストコンピュータ20-2からのホストIO要求41-2の実行の待ち状態となる。
【0049】
このように本実施形態では、ホストIO要求で指定された論理ディスク11-i上のディスク領域に対応するディスクキャッシュ上のメモリ領域を確保したと同時に、当該ホストIO要求で指定されたディスク領域にアクセスする権利を排他的に得ることができる。したがって、通信制御等によるIO排他制御を不要とすることができ、IO排他制御の高速化が可能となる。この高速IO排他制御により、各ホストコンピュータ20-1,20-2からコントローラ12-1,12-2にそれぞれ与えられるIO要求を(アクセスすべきディスク領域が異なるならば)複数同時に処理することが可能となり、ディスク記憶システム10の性能向上に寄与できる。そのため本実施形態では、ディスクキャッシュ制御回路125-1,125-2内に、送信側のアドレスレジスタ31、サイズレジスタ32及びステータスレジスタ33と受信側アドレスレジスタ34、サイズレジスタ35及びステータスレジスタ36とを、それぞれ複数組備えている。
【0050】
上述の状態で、ホストコンピュータ20-1からのホストIO要求41-1が実行され、ホストコンピュータ20-1からディスク記憶システム10のコントローラ12-1に転送されたデータが、ディスクキャッシュ124-1上に確保されたメモリ領域42-1に、ディスクキャッシュ制御回路125-1の制御によって書き込まれる。また、このメモリ領域42-1へのデータ書き込みと並行して、当該メモリ領域42-1に書き込まれるデータがディスクキャッシュ制御回路125-1により専用バス13を介してコントローラ12-2のディスクキャッシュ制御回路125-2に転送され、ディスクキャッシュ124-2上に確保されたメモリ領域42-2に書き込まれる。これにより、ディスクキャッシュ124-1及び124-2間のディスクキャッシュデータの一致化が図られる。
【0051】
また、ディスクキャッシュ124-1上のメモリ領域42-1に書き込まれたデータを、ホストコンピュータ20-1からのホストIO要求41-1で指定された論理ディスク11-i上のディスク領域40に書き込むためのディスクIO要求43-1が実行される。このとき、コントローラ12-2側では、論理ディスク11-iのディスク領域40に対応するディスクキャッシュ124-2上のメモリ領域42-2が、ディスクキャッシュ124-1上でのメモリ領域42-1の確保に同期して既に確保されているため、そのメモリ領域42-2を必要とするホストIO要求41-2を実行することはできない。
【0052】
やがて、コントローラ12-1側でのホストIO要求41-1の処理(ステップS5)が終了すると、メモリ領域42-1を指定するディスクキャッシュ制御回路125-1内の送信側アドレスレジスタ31及びサイズレジスタ32と対をなす送信側ステータスレジスタ33の示すステータスが“ライト使用完了”に切り替えられる。同時に、ディスクキャッシュ制御回路125-1内の送信側ステータスレジスタ33に対応するディスクキャッシュ制御回路125-2内の受信側ステータスレジスタ36の示すステータスも“ライト使用完了”に切り替えられる(ステップS14)。これにより、ホストIO要求41-1の実行のためにディスクキャッシュ124-1,124-2上に確保されたメモリ領域42-1,42-2は開放される。
【0053】
ディスクキャッシュ制御回路125-2内の受信側ステータスレジスタ36の示すステータスが“ライト使用完了”に切り替えられると、そのことがホストIO要求41-2の実行の待ち状態にあるコントローラ12-2のマイクロプロセッサ121-2により検出される(ステップS6,S7)。するとマイクロプロセッサ121-2は、ディスクキャッシュ制御回路125-2を制御してホストIO要求41-2の実行のためにディスクキャッシュ124-1上にメモリ領域42-2を確保する。これは、先のホストIO要求41-1の実行時から明らかなように、メモリ領域42-2を指定するディスクキャッシュ制御回路125-2内の送信側アドレスレジスタ31及びサイズレジスタ32と組をなす送信側ステータスレジスタ33に設定されているステータスを、“ライト使用待ち”から“ライト使用中”に切り替えることで実現される。この切り替えにより、送信側ステータスレジスタ33に対応するディスクキャッシュ制御回路125-1内の受信側ステータスレジスタ36に設定されているステータスも、“ライト使用待ち”から“ライト使用中”に切り替えられる。これにより、ディスクキャッシュ124-1上にメモリ領域42-1が改めて確保される。
【0054】
この状態で、ホストコンピュータ20-2からのホストIO要求41-2が実行され、ホストコンピュータ20-2からディスク記憶システム10のコントローラ12-2に転送されたデータが、ディスクキャッシュ124-2上に確保されたメモリ領域42-2に、ディスクキャッシュ制御回路125-2の制御によって書き込まれる。また、メモリ領域42-2へのデータ書き込みと並行して、当該メモリ領域42-2に書き込まれるデータがディスクキャッシュ制御回路125-2により専用バス13を介してコントローラ12-1のディスクキャッシュ制御回路125-1に転送され、ディスクキャッシュ124-1上に確保されたメモリ領域42-1に書き込まれる。これにより、ディスクキャッシュ124-2及び124-1間のディスクキャッシュデータの一致化が図られる。
【0055】
また、ディスクキャッシュ124-2上のメモリ領域42-2に書き込まれたデータを、ホストコンピュータ20-2からのホストIO要求41-2で指定された論理ディスク11-i上のディスク領域40に書き込むためのディスクIO要求43-2が実行される。
【0056】
以上、ホストコンピュータ20-1,20-2からの同一のディスク領域40に対するホストIO要求41-1,41-2がいずれもライト要求である場合における、ディスクキャッシュ124-1,124上のメモリ領域確保を中心に説明した。しかし、IO要求の種類の組み合わせによっては、上述の説明とは異なるメモリ領域確保が可能である。
【0057】
即ち本実施形態では、ディスクキャッシュ124-1,124上のメモリ領域確保を、ホストコンピュータ20-1,20-2からのIO要求の種類により、次の2種類で制御するようにしている。この2種類の制御機能を、(i)排他機能、(ii)共有機能と呼ぶ。この排他機能と共有機能とについて、ホストコンピュータ20-1からのIO要求に応じてディスクキャッシュ124-1,124-2上にメモリ領域が確保されている状態で、ホストコンピュータ20-2から当該IO要求と同一ディスク領域へのアクセスを指定するIO要求がディスク記憶システム10のコントローラ12-2に与えられた場合を例に、図7のフローチャートを参照して順に説明する。
【0058】
(i)排他機能
今、ホストコンピュータ20-1からディスク記憶システム10のコントローラ12-1へのライト要求に応じてディスクキャッシュ124-1,124-2上にメモリ領域が確保されているものとする。ここでは、ディスクキャッシュ制御回路125-1,125-2内のアドレスレジスタ31,34及びサイズレジスタ32,35に、上記メモリ領域を指定するアドレス及びサイズが設定され、ステータスレジスタ33,36には“ライト使用中”ステータスが設定されている。
【0059】
この状態で、ホストコンピュータ20-2からディスク記憶システム10のコントローラ12-2に対し、上記ライト要求と(少なくとも一部が)同一のディスク領域へのアクセスを指定するリードまたはライト要求が与えられたものとする。この場合(ステップS21〜S23)、コントローラ12-2では排他機能が働き、ホストコンピュータ20-2からのコントローラ12-2への如何なるリード/ライト要求であっても、ホストコンピュータ20-1からコントローラ12-1へのライト要求によって確保されているメモリ領域と(少なくとも一部が)同一のメモリ領域をディスクキャッシュ124-2(及び124-1)上に確保することはできない(ステップS24)。つまり、ホストコンピュータ20-2からのコントローラ12-2へのリードまたはライト要求の実行は、ホストコンピュータ20-1からコントローラ12-1へのライト要求によって確保されているメモリ領域が開放されるまで、即ち当該領域のステータスが“ライト使用中”から“ライト使用完了”に切り替えられるまで待たされる。
【0060】
(ii)共有機能
今、ホストコンピュータ20-1からディスク記憶システム10のコントローラ12-1へのリード要求に応じてディスクキャッシュ124-1,124-2上にメモリ領域が確保されているものとする。ここでは、ディスクキャッシュ制御回路125-1,125-2内のアドレスレジスタ31,34及びサイズレジスタ32,35に、上記メモリ領域を指定するアドレス及びサイズが設定され、ステータスレジスタ33,36には“リード使用中”ステータスが設定されている。但し、コントローラ12-1へのリード要求に応じてディスクキャッシュ124-1,124-2上にメモリ領域が確保されている場合、ディスクキャッシュ124-2上のメモリ領域は実際には(当該領域からのデータ読み出しに)使用されない。
【0061】
この状態で、ホストコンピュータ20-2からディスク記憶システム10のコントローラ12-2に対し、上記リード要求と(少なくとも一部が)同一のディスク領域へのアクセスを指定するIO要求が与えられたものとする。この場合(ステップS21〜S23)、コントローラ12-2では共有機能が働き、ホストコンピュータ20-2からのコントローラ12-2へのIO要求がリード要求であるならば(ステップS25)、ホストコンピュータ20-1からコントローラ12-1へのリード要求によって確保されている(ステータスが“リード使用中”の)メモリ領域と(少なくとも一部が)同一のメモリ領域をディスクキャッシュ124-2(及び124-1)上に直ちに確保することができる(ステップS26)。これに対し、ホストコンピュータ20-2からのコントローラ12-2へのIO要求がライト要求であるならば(ステップS25)、ホストコンピュータ20-1からコントローラ12-1へのリード要求によって確保されている(ステータスが“リード使用中”の)メモリ領域と(少なくとも一部が)同一のメモリ領域をディスクキャッシュ124-2(及び124-1)上に確保することはできない(ステップS24)。つまり、ホストコンピュータ20-2からのコントローラ12-2へのライト要求の実行は、ホストコンピュータ20-1からコントローラ12-1へのリード要求によって確保されているメモリ領域が開放されるまで、即ち当該領域のステータスが“リード使用中”から“リード使用完了”に切り替えられるまで待たされる。
【0062】
以上に述べた実施形態では、ディスク記憶システム10の各コントローラ12-1,12-2には、それぞれ1台のホストコンピュータ20-1,20-2が接続されているものとした。しかし本発明は、各コントローラ12-1,12-2に、それぞれ複数のホストコンピュータが接続された構成であっても同様に適用可能である。但し、同一コントローラに接続された複数のホストコンピュータから(少なくとも一部が)同一のディスク領域へのアクセスを指定するIO要求が与えられる可能性もあることから、この同一コントローラに接続された複数のホストコンピュータ間でもアクセスの排他を制御する必要がある。そのためには、ステップS3で送信側のアドレスレジスタ31及びサイズレジスタ32も検索の対象とすればよい。また、各ホストコンピュータがコントローラ12-1及び12-2のいずれに対してもIO要求が与えられる接続構成を適用することも可能である。このような接続構成は、例えばディスク記憶システム10のコントローラ12-1,12-2と各ホストコンピュータとをLAN等のネットワークで接続することで実現される。また、コントローラが多重化された構成であっても構わない。
【0063】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0064】
【発明の効果】
以上詳述したように本発明によれば、ディスクキャッシュ上のメモリ領域の確保によって、同時に論理ディスクのアクセス領域を排他することができるため、通信制御等によるIO排他制御を不要とすることができる。よって、排他制御を円滑に行って、IO要求を高速に処理できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るディスク記憶システムを備えたコンピュータシステムの構成を示すブロック図。
【図2】図1中のディスクキャッシュ124-1,124-2の領域が、一定サイズのブロックBを単位に管理されることを説明するための図。
【図3】図1中のディスクキャッシュ制御回路125-1,125-2に設けられたレジスタ群を示す図。
【図4】同実施形態において、ホストコンピュータ20-1,20-2からディスク記憶システム10に対してライト動作を指定するIO要求41-1,41-2が与えられた場合の動作説明図。
【図5】同実施形態において、ディスクキャッシュ制御回路125-1内のアドレスレジスタ31及びサイズレジスタ32へのアドレス及びサイズの設定により、そのアドレス及びサイズが、専用バス13を介してディスクキャッシュ制御回路125-2内のアドレスレジスタ34及びサイズレジスタ35に設定される様子を説明するための図
【図6】同実施形態において、ライト動作を指定するIOライト要求を受け取った際のマイクロプロセッサ121-1,121-2の処理手順を説明するためのフローチャート。
【図7】ディスクキャッシュ124-1,124上のメモリ領域確保を、ホストコンピュータ20-1,20-2からのIO要求の種類により制御する手順を説明するためのフローチャート。
【符号の説明】
10…ディスク記憶システム
11-1〜11-n,11-i…論理ディスク
12-1,12-2…コントローラ
13…専用バス
20-1,20-2…ホストコンピュータ
31…送信側アドレスレジスタ
32…送信側サイズレジスタ
33…送信側ステータスレジスタ
34…受信側アドレスレジスタ
35…受信側サイズレジスタ
36…受信側ステータスレジスタ
42-1,42-2…メモリ領域
121-1,121-2…マイクロプロセッサ
124-1,124-2…ディスクキャッシュ
125-1,125-2…ディスクキャッシュ制御回路
Claims (7)
- 少なくとも1台のディスク装置から構成される論理ディスクを少なくとも1つ備えたディスク記憶システムに用いられ、前記ディスク記憶システムを利用する第1のホストコンピュータと接続して用いられる二重化コントローラ構成ディスク記憶システム向けコントローラであって、前記第1のホストコンピュータ以外の他の第2のホストコンピュータと接続して用いられる当該コントローラとは異なる他のコントローラと共に二重化コントローラを構成することが可能であり、前記第1のホストコンピュータからの入出力要求に応じて当該第1のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する二重化コントローラ構成ディスク記憶システム向けコントローラにおいて、
前記第1のホストコンピュータからの入出力要求を受け付けて、当該要求の実行を制御するマイクロプロセッサと、
前記第1のホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、
前記ディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御するディスクキャッシュ制御回路であって、前記二重化コントローラ構成ディスク記憶システム向けコントローラと共に前記2重化コントローラを構成する前記他のコントローラのディスクキャッシュ制御回路と専用バスを介して接続され、前記第1のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を前記ディスクキャッシュメモリ上に確保するための当該メモリ領域を示す、前記マイクロプロセッサによって設定されるメモリ領域情報を保持する少なくとも1つの送信側メモリ領域情報保持手段と、前記他のコントローラのディスクキャッシュ制御回路によって前記専用バスを介して設定される、前記第2のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を確保するためのメモリ領域情報を保持する少なくとも1つの受信側メモリ領域情報保持手段とを含むディスクキャッシュ制御回路とを具備し、
前記マイクロプロセッサは、前記第1のホストコンピュータからのライト指定の入出力要求を受け付けた場合、当該入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報を前記ディスクキャッシュ制御回路の前記送信側メモリ領域情報保持手段に設定し、しかる後に当該メモリ領域情報の示すメモリ領域と少なくとも一部が共通のメモリ領域を示す前記受信側メモリ領域情報保持手段が前記ディスクキャッシュ制御回路内に存在するかを検索し、該当する前記受信側メモリ領域情報保持手段が存在しないならば、前記メモリ領域情報の示すメモリ領域は前記他のコントローラによって確保されていないとして当該メモリ領域を確保し、
前記ディスクキャッシュ制御回路は、前記マイクロプロセッサによる前記送信側メモリ領域情報保持手段へのメモリ領域情報の設定に応じて、当該メモリ領域情報を前記他のコントローラのディスクキャッシュ制御回路の受信側メモリ領域情報保持手段に前記専用バスを介して設定させ、前記ライト指定の入出力要求で指定されたデータを前記ディスクキャッシュ上の前記確保されたメモリ領域に書き込むと同時に、当該データを前記他のコントローラのディスクキャッシュ制御回路に前記専用バスを介して転送することで、当該データを前記他のコントローラのディスクキャッシュ制御回路により前記他のコントローラのディスクキャッシュ上の前記確保されたメモリ領域に対応するメモリ領域に書き込ませる
ことを特徴とする二重化コントローラ構成ディスク記憶システム向けコントローラ。 - 前記ディスクキャッシュ制御回路は、前記送信側メモリ領域情報保持手段と組をなし、当該送信側メモリ領域情報保持手段の指定するメモリ領域のステータスを保持する送信側ステータス保持手段と、前記受信側メモリ領域情報保持手段と組をなし、当該受信側メモリ領域情報保持手段の指定するメモリ領域のステータスを保持する受信側ステータス保持手段とを更に含んでおり、前記ディスク制御回路は、前記送信側ステータス保持手段の示すステータスの更新時に、その更新後のステータスを前記他のコントローラのディスク制御回路に前記専用バスで転送することで当該他のコントローラのディスク制御回路に含まれている受信側ステータス保持手段の示すステータスを当該更新後のステータスに更新させることを特徴とする請求項1記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。
- 前記送信側ステータス保持手段には、当該送信側ステータス保持手段と組をなす前記送信側メモリ領域情報保持手段の指定するメモリ領域のステータスであって当該メモリ領域が確保されて当該メモリ領域が排他使用されていることを示す使用中ステータス及び当該メモリ領域の排他使用が完了したことを示す使用完了ステータスを含むステータスの1つが保持されることを特徴とする請求項2記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。
- 前記マイクロプロセッサは、
前記第1のホストコンピュータからのライト指定の入出力要求に応じて当該入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報を前記ディスクキャッシュ制御回路内の前記送信側メモリ領域情報保持手段に設定した場合、
当該メモリ領域と少なくとも一部が共通のメモリ領域を示す前記受信側メモリ領域情報保持手段が前記ディスクキャッシュ制御回路内に存在しないならば直ちに、
存在するならば、当該受信側メモリ領域情報保持手段と組をなす前記受信側ステータス保持手段の示すステータスを参照して、当該ステータスが使用完了を示しているならば直ちに、そうでないならば当該ステータスが使用完了ステータスに切り替わるのを待って、
前記送信側メモリ領域情報保持手段と組をなす前記送信側ステータス保持手段の示すステータスを使用中を示すように更新する
ことを特徴とする請求項3記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。 - 前記マイクロプロセッサは、
前記他のコントローラに対する前記第2のホストコンピュータからの入出力要求に応じて当該他のコントローラ内のディスクキャッシュ制御回路により前記専用バスを介して前記受信側メモリ領域情報保持手段にメモリ領域情報が設定され、且つ当該前記受信側メモリ領域情報保持手段と組をなす前記受信側ステータス保持手段に使用中ステータスが設定されている状態で、前記第1のホストコンピュータからの入出力要求を受け付け、且つ当該受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域の少なくとも一部が、前記使用中ステータスが設定されている前記受信側ステータス保持手段と組をなす前記受信側メモリ領域情報保持手段に設定されているメモリ領域情報の示す現在確保されて排他使用されているメモリ領域と共通している場合、
前記他のコントローラに対する前記第2のホストコンピュータからの入出力要求がライト要求であるならば、前記受け付けた入出力要求がライト要求またはリード要求のいずれであるかに無関係に、
前記他のコントローラに対する前記第2のホストコンピュータからの入出力要求がリード要求であるならば、前記受け付けた入出力要求がライト要求である場合だけ、
前記受信側ステータス保持手段に設定されているステータスが前記使用中ステータスから前記使用完了ステータスに切り替わるまで、前記受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報が設定されている前記送信側メモリ領域情報保持手段と組をなす前記送信側ステータス保持手段に設定されているステータスを前記使用中ステータスに切り替えるのを待つ
ことを特徴とする請求項4記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。 - 少なくとも1台のディスク装置から構成される少なくとも1つの論理ディスクと、
第1のホストコンピュータと接続して用いられ、当該第1のホストコンピュータからの入出力要求に応じて当該第1のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第1のコントローラと、
第2のホストコンピュータと接続して用いられ、当該第2のホストコンピュータからの入出力要求に応じて当該第2のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第2のコントローラであって、前記第1のコントローラと共に2重化コントローラを構成する第2のコントローラと、
前記第1及び第2のコントローラを接続する専用バスとを具備し、
前記第1及び第2のコントローラは、それぞれ、
前記第1及び第2のホストコンピュータからの入出力要求を受け付けて、当該要求の実行を制御するマイクロプロセッサと、
前記第1及び第2のホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、
前記ディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御する前記専用バスによって相互接続されるディスクキャッシュ制御回路であって、前記第1及び第2のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を前記ディスクキャッシュメモリ上に確保するための当該メモリ領域を示す、前記マイクロプロセッサによって設定されるメモリ領域情報を保持する少なくとも1つの送信側メモリ領域情報保持手段と、前記第2及び第1のコントローラのディスクキャッシュ制御回路によって前記専用バスを介して設定される、前記第2及び第1のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を確保するためのメモリ領域情報を保持する少なくとも1つの受信側メモリ領域情報保持手段とを含むディスクキャッシュ制御回路とを有し、
前記第1及び第2のコントローラの前記マイクロプロセッサは、それぞれ、前記第1及び第2のホストコンピュータからのライト指定の入出力要求を受け付けた場合、当該入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報を前記ディスクキャッシュ制御回路の前記送信側メモリ領域情報保持手段に設定し、しかる後に当該メモリ領域情報の示すメモリ領域と少なくとも一部が共通のメモリ領域を示す前記受信側メモリ領域情報保持手段が前記ディスクキャッシュ制御回路内に存在するかを検索し、該当する前記受信側メモリ領域情報保持手段が存在しないならば、前記メモリ領域情報の示すメモリ領域は前記第2及び第1のコントローラによって確保されていないとして当該メモリ領域を確保し、
前記第1及び第2のコントローラの前記ディスクキャッシュ制御回路は、前記マイクロプロセッサによる前記送信側メモリ領域情報保持手段へのメモリ領域情報の設定に応じて、当該メモリ領域情報を前記他のコントローラのディスクキャッシュ制御回路の受信側メモリ領域情報保持手段に前記専用バスを介して設定させ、前記ライト指定の入出力要求で指定されたデータを前記ディスクキャッシュ上の前記確保されたメモリ領域に書き込むと同時に、当該データを前記第2及び第1のコントローラのディスクキャッシュ制御回路に前記専用バスを介して転送することで、当該データを前記第2及び第1のコントローラのディスクキャッシュ制御回路により前記第2及び第1のコントローラのディスクキャッシュ上の前記確保されたメモリ領域に対応するメモリ領域に書き込ませる
ことを特徴とするディスク記憶システム。 - 少なくとも1台のディスク装置から構成される少なくとも1つの論理ディスクと、第1のホストコンピュータと接続して用いられ、当該第1のホストコンピュータからの入出力要求に応じて当該第1のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第1のコントローラと、第2のホストコンピュータと接続して用いられ、当該第2のホストコンピュータからの入出力要求に応じて当該第2のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第2のコントローラであって、前記第1のコントローラと共に2重化コントローラを構成する第2のコントローラと、前記第1及び第2のコントローラを接続する専用バスとを備え、前記第1及び第1のコントローラは、それぞれ、前記第1及び第2のホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、前記ディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御する前記専用バスによって相互接続されるディスクキャッシュ制御回路とを有するディスク記憶システムにおける入出力要求排他制御方法であって、
前記第1及び第2のコントローラのうちのいずれか一方のコントローラに前記第1及び第2のホストコンピュータのうち当該一方のコントローラに接続されたホストコンピュータからライト指定の入出力要求が与えられた場合、当該一方のコントローラにおいて、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域を当該一方のコントローラの前記ディスクキャッシュメモリ上に確保するためのメモリ領域情報を当該一方のコントローラ内に設定するステップと、
前記一方のコントローラ内に設定されたメモリ領域情報を当該一方のコントローラによって前記第1及び第2のコントローラのうちの他方のコントローラに前記専用バスを介して当該他方のコントローラ内に設定させるステップと、
前記一方のコントローラによって前記メモリ領域情報を前記一方のコントローラ内に設定した後、当該メモリ領域情報の示す当該一方のコントローラの前記ディスクキャッシュ上のメモリ領域と少なくとも一部が共通のメモリ領域を示すメモリ領域情報が当該一方のコントローラ内に前記他方のコントローラによって既に設定されているかを判別するステップと、
前記共通のメモリ領域を示すメモリ領域情報が前記他方のコントローラによって設定されていない場合、前記一方のコントローラによって設定された前記メモリ領域情報の示す当該一方のコントローラの前記ディスクキャッシュ上のメモリ領域は前記他のコントローラによって確保されていないとして当該メモリ領域を確保して、前記ライト指定の入出力要求で指定されたデータを当該一方のコントローラの前記ディスクキャッシュ上の前記確保されたメモリ領域に書き込むと同時に、当該データを前記他のコントローラに前記専用バスを介して転送することで、当該データを前記他のコントローラの前記ディスクキャッシュ上の前記確保されたメモリ領域に対応するメモリ領域に書き込ませるステップと
を具備することを特徴とするディスク記憶システムにおける入出力要求排他制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001367252A JP3719976B2 (ja) | 2001-11-30 | 2001-11-30 | 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001367252A JP3719976B2 (ja) | 2001-11-30 | 2001-11-30 | 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003167782A JP2003167782A (ja) | 2003-06-13 |
JP3719976B2 true JP3719976B2 (ja) | 2005-11-24 |
Family
ID=19177030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001367252A Expired - Lifetime JP3719976B2 (ja) | 2001-11-30 | 2001-11-30 | 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3719976B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296516B2 (en) | 2009-10-20 | 2012-10-23 | Hitachi, Ltd. | Storage controller for mirroring data written to cache memory area |
WO2013171809A1 (en) | 2012-05-18 | 2013-11-21 | Hitachi, Ltd. | Computer system and control method thereof |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4506292B2 (ja) * | 2004-06-10 | 2010-07-21 | 株式会社日立製作所 | キャッシュ制御方法およびデータ処理システム並びにその処理プログラム |
JP7028902B2 (ja) * | 2020-02-07 | 2022-03-02 | 株式会社日立製作所 | ストレージシステム及び入出力制御方法 |
-
2001
- 2001-11-30 JP JP2001367252A patent/JP3719976B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296516B2 (en) | 2009-10-20 | 2012-10-23 | Hitachi, Ltd. | Storage controller for mirroring data written to cache memory area |
WO2013171809A1 (en) | 2012-05-18 | 2013-11-21 | Hitachi, Ltd. | Computer system and control method thereof |
US9003081B2 (en) | 2012-05-18 | 2015-04-07 | Hitachi, Ltd. | Computer system and control method thereof |
US9535864B2 (en) | 2012-05-18 | 2017-01-03 | Hitachi, Ltd. | Computer system and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2003167782A (ja) | 2003-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7500059B2 (en) | Inter-processor communication method using a shared cache memory in a storage system | |
US20110167189A1 (en) | Storage apparatus and its data transfer method | |
KR100192529B1 (ko) | 원격버스상의 중재를 고정시키는 방법 및 장치 | |
US20050114592A1 (en) | Storage system and data caching method in the system | |
WO1991020034A1 (en) | Data storage system for providing redundant copies of data on different disk drives | |
JPH11312126A (ja) | 記憶制御装置 | |
US9244877B2 (en) | Link layer virtualization in SATA controller | |
JP2006018689A (ja) | ストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラム | |
JP3690295B2 (ja) | ディスクアレイ制御装置 | |
JP4451687B2 (ja) | ストレージシステム | |
JP3705522B2 (ja) | 双方向通信を確立する方法およびシステム | |
JP2007310448A (ja) | 計算機システム、管理計算機、および、ストレージシステム管理方法 | |
JP2004302556A (ja) | 複数の計算機システム間でのデータ共有方法およびディスク制御装置 | |
CN107533475B (zh) | 用于在共享存储设备中协调读取和写入过程的方法和系统 | |
US7441009B2 (en) | Computer system and storage virtualizer | |
JP3719976B2 (ja) | 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム | |
JPH08106399A (ja) | マルチプロセッサシステム | |
EP2093656B1 (en) | Storage system and access instruction sending method | |
JP2723022B2 (ja) | ディスク装置のインタフェース及びその制御方法 | |
JP2006072634A (ja) | ディスク装置 | |
JP2004185610A (ja) | メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構 | |
JP4979206B2 (ja) | 情報処理方法および情報処理装置 | |
JP2001236335A (ja) | 分散メモリ型並列計算機及びそのデータ転送終了確認方法 | |
JP2011192053A (ja) | ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法 | |
JP2664827B2 (ja) | 実時間情報転送制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050725 |
|
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: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050906 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080916 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |