JP4207520B2 - 排他制御装置及び排他制御方法 - Google Patents
排他制御装置及び排他制御方法 Download PDFInfo
- Publication number
- JP4207520B2 JP4207520B2 JP2002289376A JP2002289376A JP4207520B2 JP 4207520 B2 JP4207520 B2 JP 4207520B2 JP 2002289376 A JP2002289376 A JP 2002289376A JP 2002289376 A JP2002289376 A JP 2002289376A JP 4207520 B2 JP4207520 B2 JP 4207520B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- exclusive
- computer
- area
- storage area
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、各々独立に演算処理を実行する複数の計算機と、複数の計算機からアクセスされる共有データが格納された外部記憶装置と、複数の計算機各々から外部記憶装置に格納されているデータへのアクセス要求を受信して、アクセス要求を外部記憶装置に中継する中継装置を有する計算機システムに関する。
【0002】
【従来の技術】
計算機で利用されるデータの量の増加に伴い、計算機の外部にネットワークを介して複数の記憶装置を接続させる技術が利用されている。この技術によれば、ネットワークに接続された複数の計算機間でネットワークに接続される記憶装置に格納されているデータを共有して利用することができる。複数の計算機間で記憶装置に格納されているデータを共有する場合、ある計算機がデータにアクセスしている間は他の計算機からのそのデータに対するアクセスを制限する排他制御等の技術により、データの一貫性を保障する必要がある。排他制御を可能にする技術の1つとして非特許文献1に記載されているSCSIプロトコルのReserve/Releaseコマンドを用いた排他制御がある。この技術では論理ブロックアドレス単位での排他制御が可能である。
【0003】
【非特許文献1】
“スカジ-3 プライマリコマンド(SCSI-3 Primary Commands)”、[online]、1997年3月28日、アメリカンナショナルスタンダードインスティテュート(American National Standards Institute)、p.70-72 p.88-93、[検索日2002年9月20日]、インターネット<URL:ftp://ftp.t10.org/t10/drafts/spc/spc-r11a.pdf>
【0004】
【発明が解決しようとする課題】
排他制御は、記憶装置によって実行されている。複数の計算機間で共有されるデータ(以下、共有データと呼ぶ。)が格納されている記憶装置の記憶領域(以下、共有領域と呼ぶ。)へ排他的にアクセスする権利(以下排他アクセス権、と呼ぶ)を取得している計算機が存在する場合、他の計算機が排他アクセス権の対象となっている共有領域(以下、排他アクセス領域と呼ぶ。)に対してアクセス要求を発行すると、このアクセス要求は拒否される。この際、記憶装置から計算機に対してアクセス拒否応答が送信される。アクセス拒否応答を受信した計算機がアクセス要求を再発行すると、アクセス拒否応答とアクセス要求とが記憶装置と計算機の間で頻繁に発生し、記憶装置が接続されるネットワークの帯域が消費され、ネットワーク性能が低下する。この結果、排他アクセス権を取得している計算機と記憶装置間のネットワークの性能が低下するだけでなく、排他アクセス領域以外をアクセスする他の計算機と記憶装置間のネットワークの性能も低下する。
【0005】
また非特許文献1に記載されている排他制御はSCSIプロトコルの必須機能に指定されていない。従って、記憶装置の中には排他制御機能を実装していない記憶装置も存在し、計算機システムにおいて排他制御を実行できない場合がある。
【0006】
更に、複数の記憶装置がネットワークに接続された計算機システムでは、排他制御機能を有する記憶装置と、有さない記憶装置とが計算機システム内に混在する可能性がある。この場合、計算機システムにおいて排他制御を実行するためには、排他制御機能を有する記憶装置を選別する必要があるが、選別は困難である。
【0007】
計算機に対し仮想的な記憶領域(以下、仮想ボリュームと呼ぶ)を提供する仮想化機能を持った計算機システムでは、記憶装置の記憶領域が仮想化されるため、記憶装置や記憶領域が有する特徴が隠蔽される。従って、排他制御機能を備えた記憶装置の記憶領域のみから仮想ボリュームを構成し、これを計算機に提供するのは困難である。
【0008】
本発明の目的は、排他制御によるネットワーク性能の低下を防止し、記憶装置が排他制御機能を有しているか否かに関わらず計算機が記憶領域へ排他的にアクセスすることができる計算機システム、排他制御方法を提供することである。
【0009】
【課題を解決するための手段】
本発明では、排他制御機能を記憶装置以外の装置で実現する。具体的には、通信路を介して複数の計算機および記憶装置と接続される中継装置に、排他制御を実行させる。このために、中継装置は記憶装置上の記憶領域が排他アクセス領域であるか否かを示す情報を有しており、この情報に基づいて中継装置は、計算機から受け付けた記憶領域へのアクセス要求が排他アクセス領域へのアクセス要求か否かを判断する。そして、排他アクセス領域へのアクセス要求である場合には、計算機に対してアクセス拒否応答を送信する。
【0010】
【発明の実施の形態】
図面を参照しながら本発明の実施形態を説明する。尚、これにより本発明が限定されるものではない。図1は本発明における、計算機システムの一例を示す。計算機システムは、複数の計算機1000、一又は複数の記憶装置1800、複数の計算機1000及び一又は複数の記憶装置1800と各々と通信路1110及び通信路1130を介して接続される中継装置1100、及び中継装置1100と通信路を介して接続されるリモート操作用の端末装置1900を有する。
【0011】
中継装置1100は計算機と接続するためのポート1110、記憶装置と接続するためのポート1130、ポート1110に接続されるI/O処理装置1200、ポート1130に接続されるI/O処理装置1400、中継装置1100を制御する制御装置1600、I/O処理装置間の経路切替えを行う切替え装置1700を有する。
【0012】
I/O処理装置1200及び1400は、ポート1110又はポート1130と接続されポートから受信するデータやポートから送信するデータを一時的に格納するポートバッファ1210、I/O処理装置1200を制御するI/Oプロセッサ1220、I/O処理装置によって受信された要求が排他制御に関する要求か否かを判定する排他制御部1230、後述する仮想情報テーブル1247や排他情報テーブル1245を格納するメモリであるI/O情報記憶部1240、I/O処理装置によって受信されたデータを一時的に格納するデータ一時保存用メモリ1270、制御装置1600と通信するための通信I/F部1250、経路切り替え装置1700と接続するための経路選択部1260、及び計算機から受信したアクセス要求を、仮想化処理が必要な記憶領域へのアクセス要求と仮想化処理が不要な記憶領域へのアクセス要求とに分ける振り分け部1280とを有し、これらが内部バス等(図示せず)の通信路によって相互に接続された構成を有している。尚、本実施例では振り分け部1280及び排他判定部1230はハードウェアによって実現される例を示したが、I/O情報記憶部1240に記憶されているプログラムをI/Oプロセッサ1220が実行することによって振り分け部1280及び判定部1230が実現される構成であっても良い。
【0013】
制御装置1600は、後述する詳細排他情報1612やアクセス履歴テーブル1614や全仮想構成情報テーブル1616を格納するメモリである制御情報記憶部1610と、制御装置1600を制御する制御プロセッサ1620と、I/O処理装置1200、1400と接続するための通信I/F部1630とを有し、これらが内部バス等(図示せず)の内部通信路で相互に接続された構成を有している。
【0014】
経路切替え装置1700は、スイッチ等で構成される。
【0015】
計算機1000は、プロセッサ(図示せず)、主記憶装置(図示せず)、及び通信路1115を介して送受信されるデータを一時的に格納するためのキャッシュメモリ1005を有し、これらが内部バス等(図示せず)の内部通信路で相互に接続された構成を有している。
【0016】
1.中継装置における仮想化の設定方法
まず図1及び図11を参照しながら、中継装置1100における仮想化の設定方法を説明する。中継装置における仮想化の設定とは、仮想化処理を行うために事前に行う仮想ボリュームの構成の設定を意味する。また、仮想化処理とは、指定された容量・及び機能を有する仮想ボリュームを指定された数分、計算機に提供するための処理を意味する。
【0017】
仮想化の設定は、2つの処理工程からなる。記憶装置の管理者が中継装置に対し端末装置1900を介して設定内容を登録する工程と、設定内容を有効にする工程である。
【0018】
設定内容を登録する工程では、まず管理者から端末装置1900に入力される指示に従って、仮想ボリュームの容量、仮想ボリュームと記憶装置内の実際の記憶領域(以下、実ボリュームと呼ぶ)との対応関係、及び仮想ボリュームが有する機能が図11に示す全仮想構成情報テーブル1616に登録される。次に、端末装置1900に入力される指示に従って、仮想ボリュームに仮想的な入出力ポート(以下、仮想ポートとよぶ)が割り当てられ、割り当てられた入出力ポートの識別情報が全仮想構成情報テーブル1616に登録される。ここで全仮想構成情報テーブル1616は3つの情報部で構成される。図11に示す仮想ポート部2310、仮想LUN部2320、及び実記憶装置情報部2330である。仮想ポート部は仮想ポートのポートアドレスと仮想LUN部へのアドレスなどを保持する。仮想LUN部では仮想LUNの容量、機能情報、仮想テーブル情報といったヘッダ情報、及び特定の論理ブロックアドレス(LBA)毎の実記憶装置情報部2330へのアドレスを保持する。仮想テーブル情報には当該仮想LUN部をローカルに持っているI/O処理装置をビットマップ情報として保持する。実記憶装置情報部は実記憶装置のアクセス先記述子(実ポートアドレス、LUN番号により構成)、機能、および特性情報などを保持する。
【0019】
次に中継装置は、仮想ボリュームを構成する実ボリュームが存在する記憶装置の機能及び特性を調査し、記憶装置の属性として調査結果を全仮想構成情報テーブル1616に登録する。尚、記憶装置の機能及び特性は、管理者から端末装置に入力される情報に基づいて、全仮想構成情報テーブル1616に登録されるようにしても良い。ここで、記憶装置の機能には例えば記憶装置の排他制御機能の有無などがあり、記憶装置の特性には記憶装置内の実ボリュームの容量などがある。次に中継装置は、計算機から仮想ポートへのアクセスを可能にするため、仮想ポートに対する仮想的なアドレスの割り当てを行い、また計算機から仮想ポートに割り当てられた仮想ボリュームへのアクセスを可能にするため、仮想ボリュームに対して仮想的な論理ユニット番号(以下、仮想LUNと呼ぶ)の割り当てを行って、仮想ポートの仮想的なアドレス及び仮想LUNを全仮想構成情報テーブル1616に登録する。
【0020】
計算機システムの管理者が、端末装置1900を介して全仮想構成情報テーブル1616に登録されている任意の仮想ポートごとに、登録内容の有効化を指示すると、計算機では仮想ボリュームの存在を確認することが可能となる。
【0021】
2.中継装置の動作
次に図1を参照しながら、中継装置が記憶装置内の記憶領域へのアクセス要求を計算機1000から受信した場合に、中継装置1100が実行する処理の概要を説明する。
【0022】
計算機1000は記憶装置1800に格納された共有データへアクセスするため、アクセス要求フレームを中継装置1100に発行する。中継装置1100は、計算機から送信されたアクセス要求フレームをポート1110を介して受信し、I/O処理装置1200内のポートバッファ1210にアクセス要求フレームを格納する。
【0023】
振り分け部1280はポートバッファ1210にアクセス要求フレームが格納されたことを検知し、アクセス要求フレーム内のヘッダを取り出す。ヘッダには、アクセス要求フレーム発行元のID、アクセス先のID(仮想ポートのアドレス)、フレームの種類を示す情報、シーケンシャル番号等が含まれる。ここで、フレームの種類としては、記憶装置の操作記述ブロックを有するフレーム、記憶装置からの応答フレーム、記憶装置からの書き込み許可応答フレーム等がある。振り分け部1280では抽出したヘッダのフレームの種類を示す情報を調査することにより、フレームの解析を行う。解析の結果、アクセス要求フレームが操作記述ブロックを有することが検出されると、振り分け部1280は操作記述ブロック及び仮想LUNを取り出す。ここで、操作記述ブロックとは、記憶装置を操作するコマンドのことであり、記憶装置からデータを読み出すための読み出し系コマンド、記憶装置へデータを書き込むための書き込み系コマンド、記憶装置の構成を参照するための状態構成参照系コマンド、及び排他制御を要求するための排他制御系コマンドがある。排他制御系コマンドには、排他アクセス領域設定要求と,排他アクセス領域解除要求とがある。振り分け部1280は操作記述ブロック及び仮想LUNを取り出した後、ヘッダ情報、操作記述ブロック、仮想LUN、及び中継装置内部の情報を有する内部メッセージを作成する。
【0024】
次に振り分け部1280は、仮想化処理の必要性を調査する。仮想化処理の必要性は、アクセス要求フレームのヘッダに含まれるアクセス先ID及び仮想LUN(以下、アクセス先IDと仮想LUNを組み合わせたものをアクセス先記述子と呼ぶ)と仮想構成情報テーブル1247に登録されたアクセス先記述子とを振り分け部が比較することにより判断される。ここで、仮想構成情報テーブル1247はI/O処理装置のI/O情報記憶部1240に格納されている。仮想構成情報テーブル1247には、端末装置1900を介して計算機システムの管理者から入力された情報に従ってあらかじめ設定された構成情報のサブセットが記憶されており、フルセットの仮想化構成情報は図11に示す制御装置内の全仮想構成情報テーブル1616に記憶されている。
【0025】
アクセス先記述子が仮想構成情報テーブルに登録された仮想ポートアドレスおよび仮想LUNと一致する場合は、振り分け部1280が仮想化構成情報テーブルからこの仮想ポートアドレスおよび仮想LUNと対応付けられている記憶装置の実ボリュームのアクセス先記述子(以降、実アクセス先記述子と呼ぶ)を取得し、この実アクセス先記述子を前述の内部メッセージに挿入する。そして振り分け部1280は、I/Oプロセッサ1220及び排他判定部1230にこの内部メッセージを送信する。
【0026】
一方、アクセス先記述子が仮想構成情報テーブルに登録された仮想ポートアドレスおよび仮想LUNと一致しない場合は、振り分け部1280はアクセス先記述子が一致しないことを前述の内部メッセージに明記し、アクセス先記述子を内部メッセージに挿入して、I/Oプロセッサにこの内部メッセージを送信する。
【0027】
アクセス先記述子が一致しない旨が明記されている内部メッセージを受信したI/Oプロセッサは、アクセス先記述子が全仮想構成情報テーブル1616に登録されている仮想ポートアドレス及び仮想LUNと一致するか否かの調査要求を制御装置1600に内部メッセージとして送信する。制御装置では制御プロセッサ1620が全仮想構成情報テーブル1616を検索し、受信した内部メッセージ内に格納されているアクセス先記述子と一致する仮想ポートアドレス及び仮想LUNの登録有無を調査する。
【0028】
全仮想構成情報テーブルにアクセス先記述子と一致する仮想ポートアドレス及び仮想LUNが登録されている場合は、このアクセス記述子に関する全仮想構成情報テーブル1616内の仮想構成情報を制御プロセッサ1620が読み出し、問い合わせ元のI/O処理装置に送信する。また、制御プロセッサはこの仮想ポートアドレス及び仮想LUNに関する全仮想構成情報テーブル1616内の仮想構成情報に、問い合わせ元のI/O処理装置のIDを関連情報として追加する。制御プロセッサ1620から仮想構成情報を受信したI/O処理装置は、I/Oプロセッサ1220の制御により、受信した仮想構成情報を仮想構成情報テーブル1247に登録する。その後、振り分け部1280は、上述のアクセス要求に含まれるアクセス先記述子が仮想構成情報テーブル1247に登録された仮想ポートアドレスおよび仮想LUNと一致する場合の処理と同様の処理を実行する。
【0029】
一方、全仮想構成情報テーブルにアクセス先記述子と一致する仮想ポートアドレスおよび仮想LUNが登録されていない場合、制御プロセッサ1620はこのアクセス先記述子が未登録であることを問い合わせ元のI/O処理装置に通知する。この通知を受信したI/O処理装置では、上述の操作記述ブロックを有する内部メッセージに変更を加えることなく、振り分け部1280がこの内部メッセージを経路選択部1260に送信する。
【0030】
内部メッセージの送信後、振り分け部1280は計算機から受信したアクセス要求フレームをデータ一時保存用メモリ1270に格納する。
【0031】
内部メッセージを受信したI/Oプロセッサ1220は、仮想化処理を開始する。I/Oプロセッサ1220は計算機1000に提供する仮想ボリュームと実際の記憶装置1800との対応関係を仮想構成情報テーブル1247を用いて管理する。I/Oプロセッサ1220は計算機から受信したアクセス要求フレーム中のアクセス先記述子を、受信した内部メッセージに格納されている実アクセス先記述子に変換する。また、計算機から受信したアクセス要求フレーム中のアクセス先記述子が示す仮想ボリュームが、2以上の記憶装置内の実ボリュームから構成されている場合には、当該アクセス要求フレームに基づいて、これら2以上の記憶装置に対するアクセス要求フレームを作成する。I/Oプロセッサ1220はこれらの処理の結果を、振り分け部1280から受信した内部メッセージにも反映させる。すなわち、アクセス先記述子の変換を行った場合は内部メッセージに変換後のアクセス先記述子を書き込み、アクセス要求フレームを作成した場合は作成したアクセス要求フレームの個数分内部メッセージを作成する。内部メッセージへ処理結果を反映した後は、I/Oプロセッサ1220は排他判定部1230から特定の信号を受信するまで仮想化処理を続行しない。当該信号を受信すると、I/Oプロセッサ1220は受信した信号の種類に応じて、計算機1000に応答を返す処理、内部メッセージに格納されている操作記述ブロックに基づいた応答を計算機1000に返す処理、若しくは記憶装置に内部メッセージを送信する処理を行う。尚記憶装置に内部メッセージを送信する場合には、I/Oプロセッサ1220はその内部メッセージを経路選択部1260に送信する。
【0032】
排他判定部1230は振り分け部1280から受信した内部メッセージを基に後述の排他判定を行う。判定の結果、計算機から受信したアクセス要求が排他制御を要しない場合は、排他判定部1230は排他制御を要しないことを示す信号をI/Oプロセッサ1220に送信する。アクセス要求が排他制御を要する場合は更に詳細な排他判定を行うため、排他判定部は、排他制御を要する旨の情報を振り分け部1280から受信した内部メッセージに付加して、これを通信I/F部を介して制御装置1600に送信する。制御装置1600では後述するデッドロックを考慮した詳細な排他判定を行い、内部メッセージに格納されている実アクセス先記述子と関連付けて全仮想構成情報テーブル1612に登録されているI/O処理装置に対して判定結果を送信する。
【0033】
経路選択部1260では、受信した内部メッセージ及びデータ一時記憶用メモリ1270に格納されたアクセス要求フレームを、経路切替え装置1700を介して,当該内部メッセージの実アクセス先記述子の記述に基づいて記憶装置側のI/O処理装置1400に送信する。内部メッセージ及びアクセス要求を受信したI/O処理装置では、内部メッセージを取り除き、アクセス要求フレームに格納されているアクセス要求フレーム発行元のIDを中継装置のIDに変更し、ポートから記憶装置に対してアクセス要求フレームを送信する。
【0034】
3.排他アクセス制御の概要
次に図6、図7及び図8を用いて、排他アクセス制御の概要を説明する。
【0035】
図8は、排他アクセス領域設定要求500、データの読み書きのために発行される記憶領域へのアクセス要求510、および排他アクセス領域解除要求520が時系列的に処理される様子を示す図である。ある計算機から排他アクセス領域設定要求500が発行されると、当該排他アクセス領域設定要求500が示す記憶領域が排他アクセス領域530として設定され、中継装置にもその旨が登録される。従って、他の計算機から排他アクセス領域530を含む記憶領域に対してアクセス要求510が発行されると、このアクセス要求510は中継装置1100によって抑止される。この様に、ある計算機からの要求によって排他アクセス領域に設定されている記憶領域に対して他の計算機がアクセス要求を発行する事象を排他ヒットとよぶ。一旦抑止されたアクセス要求510は、計算機から再発行される。アクセス要求510が再発行された時に、既に排他アクセス領域設定要求500を発行した計算機によって排他アクセス領域解除要求520が発行されており、排他アクセス領域530の排他制御が解除されていれば、アクセス要求510は抑止されることなく、処理される。このような排他アクセス制御によって、排他アクセス領域設定要求500を発行した計算機は、排他アクセス領域解除要求520を発行するまでの間、排他アクセス領域へ排他的にアクセスすることができる。尚上述の例では、アクセス要求510と排他アクセス領域設定要求500の開始アドレス及びアクセス幅は同じである。
【0036】
図7は、排他アクセス領域設定要求410よりアクセス要求420の方が大きなアクセス幅を有する場合の例を示す。第一の計算機が排他アクセス領域設定要求410を発行すると、当該排他アクセス領域設定要求410が示す記憶領域が排他アクセス領域411として設定され、中継装置にもその旨が登録される。次に第二の計算機が排他アクセス領域411を含む記憶領域に対するアクセス要求420を発行すると、このアクセス要求420は排他アクセス領域441に対して排他ヒットとなるため、中継装置によって抑止される。次に第三の計算機が排他アクセス領域411を含まない他の記憶領域441に対して排他アクセス領域設定要求440を発行する。すると、当該記憶領域411は第三の計算機についての排他アクセス領域441として設定され、その旨が中継装置に登録される。その後、第二の計算機がアクセス要求420を再発行したとき、既に第一の計算機が排他アクセス領域411について排他アクセス領域解除要求430を発行していたとしても、再発行されたアクセス要求420は今度は第三の計算機の排他アクセス領域441に対して排他ヒットとなるので、再び中継装置によって抑止される。この様にアクセス要求が指定するアクセス幅が排他アクセス領域の幅より大きい場合には、アクセス要求が繰り返し発生しうる。このような現象をデッドロックという。
【0037】
デッドロックの発生を回避するために本発明では、図6に示す排他アクセス制御を実行する。第一の計算機が排他アクセス領域設定要求300を発行した後に、第二の計算機が排他アクセス領域設定要求300によって設定された排他アクセス領域を含み、当該排他アクセス領域より広い記憶領域に対するアクセス要求310を発行した場合、アクセス要求310は第一の計算機の排他アクセス領域に対して排他ヒットとなるので、中継装置によって抑止される。この場合中継装置1100は、排他ヒットになった時点で排他アクセス領域を、第二の計算機から受信したアクセス要求310のアクセス幅にまで拡大する。排他アクセス領域の拡大によって、その後第三の計算機から拡大された排他アクセス領域に含まれる記憶領域についての排他アクセス領域設定要求340が発行された場合には、この排他アクセス領域設定要求340は拡大された排他アクセス領域への排他アクセス領域設定要求であるため中継装置によって抑止される。第一の計算機が排他アクセス領域解除要求320を発行すると、拡大された排他アクセス領域に対する排他制御は解除される。従ってその後に第二の計算機がアクセス要求310を再発行すれば、このアクセス要求は中継装置によって抑止されることなく処理される。尚アクセス要求310の再発行は、中継装置が拡大された排他アクセス領域に対する排他制御を解除した後に、中継装置自身によって実行することとしても良い。
【0038】
4.排他アクセス制御の処理動作
図2はI/O処理装置に格納される排他情報テーブル1245の一例を示す図である。排他情報テーブルはI/O処理装置に接続された計算機に見せる仮想ボリュームごとに存在し、エントリには各計算機についてアドレス2000、領域長2010、I/O属性2020が記憶される。アドレスとは排他アクセス領域の開始アドレスのことであり、領域長とは排他アクセス領域内の論理ブロック数を意味し、I/O属性とは排他制御の種類(読み込み共有、排他書き込み、排他読み込み、読み書き排他)及び排他制御の識別番号(リザベーションID)を意味する。
【0039】
図3は、制御装置1600に格納される詳細排他情報テーブル1612の一例を示す図である。詳細排他情報テーブル1612は中継装置中のI/O処理装置各々に接続される計算機に見せる仮想ボリュームごとに存在し、エントリには各計算機について排他情報テーブルで管理する情報と同じ情報(アドレス2110、領域長2120、I/O属性2150)に加え、排他アクセス領域を拡大して排他制御を実行する場合の拡大された排他アクセス領域の開始アドレス(拡大アドレス2130)及び拡大された排他アクセス領域内の論理ブロック数(拡大領域長2140)が記憶される。
【0040】
次に図4を用いて、中継装置1100において実行される、デッドロック発生回避を考慮した排他制御の処理手順を説明する。排他制御処理は、中継装置1100ですべての排他制御処理を行う場合(以下、全処理ケースとよぶ)と、排他制御機能を有さない記憶装置には中継装置が排他制御機能を提供し、記憶装置が排他制御機能を有す場合には記憶装置が排他制御を実行する場合(以下、選択処理ケースとよぶ)とで、一部処理手順が異なる。そこで以下にそれぞれのケースに分けて、処理手順を説明する。
【0041】
4−1.全処理ケース
はじめに、全処理ケースについて述べる。排他制御は、(1)排他アクセス領域の設定及び解除、(2)アクセス要求受付時の排他アクセス領域の拡大及び抑止判定制御、の2種類の処理または制御からなる。
【0042】
(1)排他アクセス領域の設定及び解除
I/O処理装置1200内の排他判定部1230は振り分け部1280から内部メッセージを受け取ると、内部メッセージに含まれる操作記述ブロックを参照して計算機から受信したアクセス要求フレームの種類を判定する。
【0043】
アクセス要求フレームの種類が、排他アクセス領域解除要求である場合(ステップ105YES)には、当該アクセス要求フレームが示す排他アクセス領域について排他制御の解除処理を行う(ステップ155)。この場合、排他アクセス領域解除要求は、I/O処理装置1200から制御装置1600へ内部メッセージによって送られる。制御装置1600では制御プロセッサ1620が制御情報記憶部1610に格納されている詳細排他情報テーブル1612から、要求元の計算機についての(排他アクセス領域解除要求フレームに含まれる発行元IDが詳細排他情報テーブルに登録されている要求元IDと一致する)テーブルを検索し、検索して得られたテーブルの属性部2150に記憶されている識別番号が排他アクセス領域解除要求フレームの識別番号と一致する場合には、当該エントリ(すなわちアドレス部、領域長、属性、拡大アドレス、拡大領域長)を0にリセットする。詳細排他情報テーブル1612が更新された後、もしくは詳細排他情報テーブル1612から要求元計算機についてのテーブルが抽出できなかった場合又は属性部に記載されている識別番号と排他アクセス領域解除フレームの識別番号が一致しなかった場合には、制御装置1600は排他アクセス領域解除要求フレームに含まれるアクセス先記述子に対応付けられたI/O処理装置を、全仮想構成情報テーブル1616から抽出し、このI/O処理装置に宛てて排他情報テーブル1245の変更要求を内部メッセージにより送信する。内部メッセージを受信したI/O処理装置では、I/Oプロセッサ1220が排他情報テーブル1245から排他アクセス領域解除要求フレームに含まれる発行元IDが排他情報テーブル1245に登録されている要求元IDと一致するテーブルを検索し、該当するテーブルの属性部2020に登録されている識別番号が排他アクセス領域解除要求フレームが有する識別番号と一致する場合には当該エントリ(すなわちアドレス部、領域長、属性)を0にする。そして、排他アクセス領域解除要求フレームを受信したI/O処理装置のI/Oプロセッサが、排他アクセス領域解除処理の完了を示す応答メッセージを作成し、排他アクセス領域解除要求フレームの送信元計算機に送信する。以上の処理によって、排他アクセス領域解除処理が終了する。
【0044】
アクセス要求フレームが、構成情報やセンス情報の取得といった記憶装置への読み書きを伴わない処理を要求する排他アクセス制御対象外のフレームである場合(ステップ110NO)、排他判定部1230は排他アクセス制御に関する処理を終了し、排他制御を要さないことを示す信号をI/Oプロセッサ1220に送信する。
【0045】
アクセス要求フレームが、排他制御対象のフレームであり、かつ排他アクセス領域の設定を要求するアクセス要求フレーム(排他アクセス領域設定要求フレーム)である場合(ステップ120YES)、排他判定部1230は制御装置1600に対して判定要求を内部メッセージにより送信する。
【0046】
制御装置1600内では、制御プロセッサ1620が、排他判定部1230から受信した判定要求に係る排他アクセス領域設定要求フレームが、既に設定されている排他アクセス領域(拡大された排他アクセス領域を含む)へのアクセス要求を伴うフレームであるか否かを、詳細排他情報テーブル1612を基に判定する。排他アクセス領域設定要求フレームが詳細排他情報テーブル1612に登録されているアドレス若しくは拡大アドレス及び領域長若しくは拡大領域長が示す記憶領域への排他アクセス領域設定要求を伴うものでない場合には(ステップ145NO)、制御プロセッサがこの排他アクセス領域設定要求フレームが有する情報を詳細排他情報テーブル1612に登録する。また、排他アクセス領域設定要求フレームが詳細排他情報テーブル1612に登録されているアドレス2110及び領域長2120、若しくは拡大アドレス2130及び拡大領域長2140が示す記憶領域への排他アクセス領域の設定要求を伴うものであっても、設定を要求している排他アクセス領域の属性と、詳細排他情報テーブルの属性部2150に登録されている属性(読み込み共有、排他書き込み、排他読み込み、読み書き排他)とを制御プロセッサ1620が比較した結果、排他的なアクセスを排他アクセス領域設定要求フレームの発行元の計算機に許可できると制御プロセッサが判断した場合には(ステップ145NO)、排他アクセス領域設定要求フレームが有する情報を詳細排他情報テーブル1612に登録する(ステップ150)。
【0047】
ここで、排他アクセス領域設定要求フレームが有する属性情報と、詳細排他情報テーブルの属性部2150に登録されている属性とが、いかなる組み合わせであれば、当該排他アクセス領域設定要求フレームの送信元計算機に排他的なアクセスが許可されるかを図5に示す。例えば、排他アクセス領域設定要求フレームが有する属性情報が排他読み込みである場合、詳細排他情報テーブル1612の属性部2150に登録されている属性情報が排他書き込みであれば排他アクセス領域設定要求フレームの発行元計算機に対して排他的なアクセスが許可されるが、詳細情報テーブル1612の属性部2150に登録されている属性情報が排他読み込みであれば排他アクセス領域設定要求フレームの発行元計算機に対して排他的なアクセスを許可することはできない。
【0048】
制御プロセッサが詳細排他情報テーブル1612に登録する情報は、排他アクセス領域設定要求フレーム中の排他アクセス領域の開始アドレス、領域長、I/O属性である。テーブル更新後制御プロセッサは、排他アクセス領域設定要求フレームが示すアクセス先記述子に対応付けられたI/O処理装置を全仮想構成情報テーブル1616から検索し、このI/O処理装置に排他情報テーブルの変更要求を送信する。I/O処理装置ではI/OプロセッサがI/O情報記憶部に格納されている排他情報テーブル1245の該当するエントリに、詳細排他情報テーブルに登録された値と同様の値(開始アドレス、領域長、I/O属性)を登録する。そして、排他アクセス領域設定要求フレームを受信したI/O処理装置のI/Oプロセッサが、排他アクセス領域設定処理の完了を示す応答メッセージを作成し、排他アクセス領域設定要求フレームの送信元計算機に応答メッセージを送信し、処理を終了する。
【0049】
(2)排他アクセス領域の拡大及び抑止制御
計算機から受信したアクセス要求フレームが、排他制御対象のフレームであり(ステップ110YES)かつ排他アクセス領域設定要求フレームではない場合(ステップ120NO)、排他情報テーブル1245を基に排他判定部1230は、排他アクセス領域設定要求フレーム受信時に設定した排他アクセス領域(拡大前の排他アクセス領域)を含む記憶領域へのアクセス要求を伴うアクセス要求フレームであるか否か、及び拡大前の排他アクセス領域を含む記憶領域へのアクセス要求を伴う場合には当該排他アクセス領域が図5に示したテーブルに基づきアクセス許可が可能な排他アクセス領域であるか否かを判定する(ステップ125)。
【0050】
判定の結果、拡大前の排他アクセス領域へのアクセス要求を含まないアクセス要求フレームである場合、若しくは拡大前の排他アクセス領域へのアクセス要求を含むアクセス要求フレームであっても当該排他アクセス領域が図5のテーブルに基づいてアクセスが可能な排他アクセス領域である場合(ステップ125NO)は、排他判定部1230は排他制御を要しないことを示す信号をI/Oプロセッサ1220に送信し、処理を終了する。
【0051】
判定の結果、拡大前の排他アクセス領域へのアクセス要求を含むアクセス要求フレームであって、かつ当該排他アクセス領域が図5のテーブルに基づきアクセスが不可能な排他アクセス領域であると判断された場合には、計算機から受信したアクセス要求フレームが示すアクセス領域が排他アクセス領域を跨ぐか否か(排他アクセス領域を含み更に他の記憶領域を含むか否か)の判定を行うよう要求する内部メッセージが、排他判定部1230から制御装置1600へ送信される。そして、計算機から受信したアクセス要求フレームが示すアクセス領域が判定時に既に設定されている排他アクセス領域を跨ぐか否かを、制御装置1600の制御プロセッサ1620が詳細排他情報テーブル1612に基づいて判定する(ステップ130)。尚ステップ145において、計算機から受信された排他アクセス領域設定要求フレームが、既に設定されている排他アクセス領域についての排他アクセス領域設定要求を含み、かつ図5に基づいて排他的なアクセスを許可できないと判断される排他アクセス領域についての排他アクセス領域設定要求を含む排他アクセス設定要求フレームであると判断された場合にも、上述のステップ130に示す処理が実行される。
【0052】
排他アクセス領域を跨ぐ場合(ステップ130YES)、制御プロセッサ1600は計算機から受信したアクセス要求フレームが示すアクセス領域を包含するように排他アクセス領域の開始アドレス及び排他領域長を算出する。そして制御プロセッサ1600は算出結果を詳細排他情報テーブル1612に反映させるため、当該テーブル内の該当エントリの拡大アドレス部2130及び拡大領域長2140を更新する(ステップ135)。
【0053】
詳細排他情報テーブルの更新後、若しくはステップ130にて排他アクセス領域を跨がないと判断された場合(ステップ130NO)、制御プロセッサ1600は内部メッセージの発行元I/O処理装置に当該内部メッセージを返送し、これを受信したI/O処理装置は計算機から受信したアクセス要求の抑止処理を行う。抑止処理は、排他ヒットによりアクセス要求が抑止されたことを明示する応答を当該I/O処理装置内のI/Oプロセッサ1220が作成し、アクセス要求フレームの送信元計算機に返送することにより実行される(ステップ140)。
【0054】
4−2.選択処理ケース
次に選択処理ケースについて、図4を参照しながら説明する。
(1)排他アクセス領域の設定及び解除
I/O処理装置1200内の排他判定部1230は振り分け部1280から内部メッセージを受け取ると、内部メッセージに含まれる操作記述ブロックを参照して計算機から受信したアクセス要求フレームの種類を判定する。
【0055】
アクセス要求フレームが排他アクセス領域解除要求フレームである場合(ステップ105YES)には、該当する排他アクセス領域への排他制御解除の処理を行う(ステップ155)。この場合、排他アクセス領域解除要求は、I/O処理装置1200から制御装置1600へ内部メッセージによって送られる。制御装置1600では制御プロセッサ1620が、制御情報記憶部1610に格納されている詳細排他情報テーブル1612から要求元の計算機についての(排他アクセス領域解除要求フレームに含まれる発行元IDが詳細排他情報テーブルに登録されている要求元IDと一致する)テーブルを検索し、検索して得られたテーブルの属性部2150に記憶されている識別番号が排他アクセス領域解除要求フレームの識別番号と一致する場合には、当該エントリ(すなわちアドレス部、領域長、属性、拡大アドレス、拡大アドレス長)を0にリセットする。また、制御プロセッサ1620は、要求元計算機のIDが登録されていない詳細排他情報テーブル上の全エントリを0にリセットする。詳細排他情報テーブル1612が更新された後、もしくは詳細排他情報テーブル1612から要求元計算機についてのテーブルが抽出できなかった場合又は属性部に記憶されている識別番号と排他アクセス領域解除フレームの識別番号が一致しなかった場合には、制御装置1600は排他アクセス領域解除要求フレームに含まれるアクセス先記述子に対応付けられたI/O処理装置を、全仮想構成情報テーブル1616から抽出し、このI/O処理装置に宛てて排他情報テーブル1245の変更要求を内部メッセージにより送信する。内部メッセージを受信したI/O処理装置では、I/Oプロセッサ1220が排他情報テーブル1245から、排他アクセス領域解除要求フレームに含まれる発行元IDが排他情報テーブル1245に登録されている要求元IDと一致するテーブルを検索し、該当するテーブルの属性部2020に登録されている識別番号が排他アクセス領域解除要求フレームが有する識別番号と一致する場合には当該エントリ(すなわちアドレス部、領域長、属性)を0にする。
【0056】
I/O処理装置へ内部メッセージ送信した後、制御プロセッサは、排他アクセス領域解除要求フレームが示すアクセス先記述子と対応付けて登録されている実アクセス先記述子を全仮想構成情報テーブル1616から取得し、当該実アクセス先記述子が示す実記憶装置に宛ててアクセス領域解除要求を送信するよう、当該記憶装置に接続されたI/O処理装置に内部メッセージを送信する。この内部メッセージを受信したI/O処理装置は、排他アクセス領域解除要求を記憶装置に送信する。I/O処理装置から送信した排他アクセス領域解除要求の送信先記憶装置全てから応答を受信した時点で、制御プロセッサは、排他アクセス領域解除要求フレームの送信元計算機と接続されるI/Oプロセッサ1220に対し、内部メッセージを送信する。この内部メッセージを受信したI/Oプロセッサは、排他アクセス領域解除処理の完了を示す応答メッセージを作成し、これを排他アクセス領域解除要求フレームの送信元計算機に送信し、排他アクセス領域解除要求の処理を終了する。
【0057】
アクセス要求フレームが、構成情報やセンス情報の取得といった記憶装置への読み書きが発生しない排他アクセス制御対象外のフレームである場合(ステップ110NO)、排他判定部1230は排他アクセス制御に関する処理を終了し、排他制御を要しないことを示す信号をI/Oプロセッサ1220に送信する。
【0058】
アクセス要求フレームが排他制御対象のフレームであり、かつ排他アクセス領域設定要求である場合(ステップ120YES)、排他判定部1230は制御装置1600に判定要求を内部メッセージにより送信する。
【0059】
制御装置1600内では、制御プロセッサ1620が、排他判定部1230から受信した判定要求に係る排他アクセス領域設定要求フレームが、既に設定されている排他アクセス領域(拡大された排他アクセス領域を含む)へのアクセス要求を伴うフレームであるか否かを、詳細排他情報テーブル1612を基に判定する。排他アクセス領域設定要求フレームが、既に設定されている排他アクセス領域(拡大された排他アクセス領域を含む)へのアクセス要求を伴い、かつ図5に基づいて排他的なアクセスを許可できないと判断される排他アクセス領域についての排他アクセス領域設定要求を含む排他アクセス領域設定要求フレームである場合には(ステップ145YES)、ステップ130に示す処理が実行される。排他アクセス領域設定要求フレームが詳細排他情報テーブル1612に登録されているアドレス及び領域長若しくは拡大アドレス及び拡大領域長が示す記憶領域への排他アクセス領域設定要求を伴うものでない場合、若しくは排他アクセス領域設定要求フレームが詳細排他情報テーブル1612に登録されているアドレス2110及び領域長若しくは拡大アドレス2130及び拡大領域長が示す記憶領域への排他アクセス領域の設定要求を伴うものであっても、設定を要求している排他アクセス領域の属性と、詳細排他情報テーブルの属性部2150に登録されている属性とを図5に基づき制御プロセッサ1620が比較した結果、排他的なアクセスを排他アクセス領域設定要求フレームの発行元の計算機に許可できると制御プロセッサが判断した場合には、制御プロセッサは以下の処理を実行する。
【0060】
制御プロセッサは、排他アクセス領域設定要求フレームが有するアクセス先記述子と対応付けられている実アクセス先記述子と、この実アクセス記述子が示す実ボリュームが存在する記憶装置が排他制御機能を有するか否かを示す記憶装置の属性情報を、全仮想構成情報テーブル1630から取得する。制御プロセッサは、取得した属性情報を参照し、排他制御機能を有する記憶装置が存在する場合は、この排他制御機能を有する記憶装置に接続されたI/O処理装置に対して内部メッセージを送信して、排他アクセス領域設定要求フレームを複製し、これを記憶装置へ送信するよう指示する。内部メッセージを受信したI/O処理装置では,I/Oプロセッサが排他アクセス領域設定要求フレームのコピーを生成し、これを記憶装置に対して送信し、記憶装置からの応答を待つ。I/O処理装置が応答を受信すると、当該応答は制御装置に送信され、制御プロセッサ1620は応答の内容を解析する。
【0061】
既に他の計算機からの要求により排他アクセス領域が設定済みであることを示す応答が存在する場合(以下、装置ヒットとよぶ)は、ステップ145の判断結果がYESである場合に該当する。この場合、制御プロセッサは排他アクセス領域設定要求フレームの送信先記憶装置と接続されるI/O処理装置に対して内部メッセージを送信し、排他アクセス領域設定要求フレームが有する排他制御の識別番号と同一の識別番号を持った排他アクセス領域解除要求を生成し、これを当該記憶装置に送信するよう指示する。内部メッセージを受信したI/O処理装置では、内部メッセージに基づいて排他アクセス領域解除要求を作成し、これを記憶装置に送信して、当該記憶装置からの応答を待つ。I/O処理装置が排他アクセス領域解除要求の送信先記憶装置すべてから応答を受信した後、ステップ130に示す処理が実行される。
【0062】
記憶装置から受信した応答が全て、排他アクセス領域の設定完了を示している(装置ヒットではない)場合、もしくは制御プロセッサが全仮想構成情報テーブル1616から取得した属性情報を参照した結果、排他制御機能を有する記憶装置が存在しないことが判明した場合は、計算機から受信した排他アクセス領域設定要求フレームが有する情報を制御プロセッサが詳細排他情報テーブル1612に登録する。登録される情報は排他領域の開始アドレス、領域長、I/O属性である。詳細テーブル更新後制御プロセッサは、排他アクセス領域設定要求フレームが有するアクセス先記述子に対応付けられたI/O処理装置を全仮想構成情報テーブルから検索し、このI/O処理装置に排他情報テーブル変更要求を送信する。変更要求を受信したI/O処理装置では、I/OプロセッサがI/O情報記憶部に記載されている排他情報テーブル1245の該当するエントリに、詳細排他情報テーブルに登録した値と同様の値(開始アドレス、領域長、I/O属性)を登録する。そして、I/Oプロセッサは排他アクセス領域設定処理の完了を示す応答メッセージを作成し、この応答メッセージを排他アクセス領域設定要求フレームの送信元計算機に送信して、処理を終了する。
(2)アクセス要求の排他領域拡大及び抑止制御
計算機から受信したアクセス要求フレームが、排他制御対象のフレームであり(ステップ110YES)かつ排他アクセス領域設定要求フレームではない場合(ステップ120NO)、受信したアクセス要求フレームが、排他アクセス領域設定拡大前の排他アクセス領域を含む記憶領域へのアクセス要求を伴うアクセス要求フレームであるか否か、及び拡大前の排他アクセス領域を含む記憶領域へのアクセス要求を伴う場合には当該排他アクセス領域が図5に示したテーブルに基づきアクセス許可が可能な排他アクセス領域であるか否かを、排他情報テーブル1245を基に排他判定部1230が判定する(ステップ125)。
【0063】
判定の結果、拡大前の排他アクセス領域へのアクセス要求を含まないアクセス要求フレームである場合、若しくは拡大前の排他アクセス領域へのアクセス要求を含むアクセス要求フレームであっても、当該排他アクセス領域が図5のテーブルに基づいてアクセスが可能な排他アクセス領域である場合(ステップ125NO)は、排他判定部1230は排他制御を要しないことを示す信号をI/Oプロセッサ1220に送信し、処理を終了する。
【0064】
判定の結果、拡大前の排他アクセス領域へのアクセス要求を含むアクセス要求フレームであって、かつ当該排他アクセス領域が図5のテーブルに基づきアクセスが不可能な排他アクセス領域である場合、排他判定部1230は制御装置1600に内部メッセージを送信し、計算機から受信したアクセス要求フレームが示すアクセス領域が排他アクセス領域を跨ぐか否かの判定を行うよう指示する。内部メッセージを受信した制御装置の制御プロセッサ1620は、詳細排他情報テーブル1612に基づいて、アクセス要求フレームが示すアクセス領域が排他アクセス領域を跨ぐか否かを判定する(ステップ130)。
【0065】
排他アクセス領域を跨ぐ場合(ステップ130YES)、制御プロセッサ1600は計算機から受信したアクセス要求フレームが示すアクセス領域を包含するように、排他アクセス領域の開始アドレス及び排他領域長を算出する。そして制御プロセッサ1600は、算出結果を詳細排他情報テーブル1612に反映させるため、当該テーブル内の該当エントリの拡大アドレス部2130及び拡大領域長2140を更新する(ステップ135)。
【0066】
尚、ステップ135においては、排他アクセス領域を跨がない場合でも、ステップ145において装置ヒットが生じていると判断された場合は、特別な領域拡大処理が実行されるものとする。すなわち制御プロセッサは、要求元計算機が存在しない(要求元IDが存在しない)詳細排他情報エントリを作成し、当該エントリに対して計算機から受信した排他アクセス領域設定要求フレームが有する開始アドレス、領域長それぞれを拡大アドレス部2130、及び拡大領域長2140に登録する。また制御プロセッサは詳細排他情報テーブルのI/O属性2150には、排他の種類として読み書き排他を登録し、排他制御の識別番号として0を登録する。
【0067】
詳細排他情報テーブルの更新後、若しくはステップ130において排他アクセス領域を跨がないと判断され詳細排他情報テーブルの更新を要さない場合(ステップ130NO)、制御プロセッサ1600はアクセス要求フレームの送信元の計算機と接続されるI/O処理装置に対して内部メッセージを送信し、アクセス要求抑止処理を行うよう指示する。内部メッセージを受信したI/O処理装置のI/Oプロセッサ1220は、抑止されたアクセス要求の内容を明示する応答を作成し、アクセス要求フレームの送信元計算機に送信する。
【0068】
以上のように、仮想化処理が可能な中継装置1100は、仮想化処理対象となっているアクセス要求のみを排他制御対象とし、また中継装置内のI/O処理装置では排他制御を要するアクセス要求のみを検出し、制御装置1600ではI/O処理装置で選別したアクセス要求のみについて詳細な排他制御判定を行う。この結果排他制御判定の負荷を分散させ、効率的に排他制御を実現することが出来る。
【0069】
また、計算機1000が発行するアクセス要求の内、排他制御判定の結果アクセスの抑止が必要な要求に対しては、計算機1000と中継装置1100の間でアクセス抑止処理が実行される。従って、排他制御によって生じるアクセス拒否応答及び再発行されるアクセス要求は中継装置とアクセス要求の再発行元の計算機との間で送受信されることになるので、中継装置と記憶装置間の通信線1135の性能には影響を与えない。従って、排他的アクセス権を取得している計算機が排他アクセス領域にアクセスする場合や、他の計算機が排他アクセス領域以外の記憶領域にアクセスする場合に、アクセス拒否応答やアクセスを拒否された計算機によって再発行されるアクセス要求の影響を受けることはない。
【0070】
更に、記憶装置が排他制御機能を実装していな場合にも、中継装置が記憶装置が有する記憶容量と同容量の仮想ボリュームをこの記憶装置に割り当て、仮想ボリュームに対して排他制御機能を提供することにより、排他制御を実行することができる。また、ネットワークに接続される複数の記憶装置中に排他制御機能を有する記憶装置と排他制御機能を具備しない記憶装置とが混在する場合には、排他制御機能を有する記憶装置に対しては排他制御を実行するよう中継装置が指示し、排他制御機能を具備しない記憶装置に対しては中継装置が上述のように仮想ボリュームに対して排他制御機能を実行することにより、排他制御機能を提供することができる。また、記憶装置が排他制御機能を具備するか否かに関わらず、全ての記憶装置に対して中継装置が排他制御機能を提供することもできる。
【0071】
中継装置が仮想化機能を有する場合には、1)全ての仮想ボリュームに対して一様に中継装置が排他制御機能を提供するか、もしくは2)仮想ボリュームと関連付けられている記憶装置の内、排他制御機能を有しない記憶装置を予め中継装置に登録しておき、排他制御機能を有しない記憶装置の仮想ボリュームに対して中継装置が排他制御機能を提供することにより、計算機に対しては一様に排他制御機能を具備したボリュームが存在するように見せることが可能となる。
【0072】
次に本発明の他の実施形態について説明する。本実施形態においては、記憶装置上のデータを一時的に保管することを目的として計算機が有しているローカルキャッシュメモリ(ライトスルー形式)に対し、記憶装置上のデータとローカルキャッシュメモリ上のデータとの間の整合性を維持するよう、中継装置が指示する方法について説明する。具体的には、中継装置1100が、計算機から受信した読み込みアクセス要求の履歴を保存するアクセス履歴テーブルを有し、中継装置は計算機上のキャッシュに格納されているデータのうち無効にすべきデータをアクセス履歴テーブルに基づいて特定し、このキャッシュを有する計算機に対して定められた事象を契機として無効化要求メッセージを送信する。
【0073】
システム構成は図1に示すシステム構成とほぼ同様であるが、中継装置1100の制御情報記憶部1610は、アクセス要求の履歴を保管するアクセス履歴テーブル1614を有している。図9はアクセス履歴テーブルの一例を示している。アクセス履歴テーブルは計算機に提供するボリュームごとに設けられる。アクセス履歴テーブルは各計算機について、論理ブロックアドレスごと、若しくは一定数のブロックのまとまりごとにエントリ2200を有する。エントリでとる数値は0か1の2値であり、1の場合は過去に当該エントリに対応する計算機から当該エントリに対応する論理ブロックの該当アドレスに読み込みアクセス要求があったことを示す。
【0074】
中継装置の制御プロセッサは振り分け部1280で生成される内部メッセージを利用して、計算機から受信したアクセス要求フレームが読み込みアクセス要求に関するものであるかを判断し、アクセス履歴テーブルの更新を行う。具体的には、計算機1000から読み込みアクセス要求フレームを中継装置1100が受信すると、振り分け部1210が内部メッセージを生成する。この内部メッセージは通信I/F部1250から制御装置1600に送信される。制御装置1600では制御プロセッサ1620が、内部メッセージが有する操作記述ブロック及び実アクセス先記述子を解析し、計算機から受信したアクセス要求フレームが読み込みアクセス要求に関するものであると判断した場合には、当該アクセス先記述子及びアクセス要求フレーム送信元計算機に対応するアクセス履歴テーブル1614のエントリに1を登録する。尚、制御装置が受信した内部メッセージは一旦I/O処理装置内のI/O情報記憶部1610にバッファリングされ、特定の契機でアクセス履歴テーブルの更新処理を実行することとしても良い。この場合は、バッファリングされている内部メッセージの内容を特定の契機が訪れる前に制御装置1600が特定することはできない。従って、I/O処理装置に障害が生じた場合には、当該I/O処理装置と接続していた計算機のローカルメモリ全体について無効化処理を実行する必要がある。
【0075】
無効化要求メッセージは、中継装置1100が書き込みアクセス要求もしくは排他アクセス領域設定要求を受信したときを契機として、生成される。具体的には中継装置が書き込みアクセス要求フレーム若しくは排他アクセス領域設定要求フレームを計算機から受信した場合に、振り分け部1280が内部メッセージを生成して制御装置1600に送信する。制御プロセッサ1620は当該内部メッセージを解析し、内部メッセージが有するアクセス先記述子が示すアクセス領域に対応するアクセス履歴テーブルのエントリから、アクセス履歴を取得する。そして制御装置は、取得したアクセス履歴から無効化の対象となる(1が登録されているエントリに対応する)計算機及び記憶領域を特定し、無効化の対象となる計算機と通信するI/O処理装置に対して、無効化すべき記憶領域を示す情報を挿入した内部メッセージを送信する。内部メッセージ送信後制御プロセッサ1630は、アクセス履歴を取得したエントリを0にリセットする。
【0076】
I/O処理装置ではI/Oプロセッサが計算機に送信する無効化要求メッセージを制御装置から受信した内部メッセージを用いて作成する。無効化要求メッセージは非同期で計算機に送信されるイベント通知として送信される。計算機は無効化要求メッセージを受信すると、ネットワークドライバもしくはOSが無効化要求メッセージに基づいてキャッシュ1005の無効化処理を実行する。
【0077】
以上に説明したように、中継装置1100では、読み込み系アクセス要求の受信をI/O処理装置で検出し、検出結果を基に制御装置1600がアクセス履歴テーブル1614を更新することで、アクセス履歴を保持する。また、予め定められた種類のアクセス要求をI/O処理装置が受信した際に、制御装置がアクセス履歴テーブルを参照し、I/O処理装置に無効化要求メッセージの作成を指示する。I/O処理装置は制御装置からの指示に基づいて無効化メッセージを作成し、これを計算機に送信する。この結果、計算機においてキャッシュの無効化処理が実行される。
【0078】
上述のデッドロック発生を回避するための処理を有する排他制御方法は、複数のプロセッサが接続される主記憶装置を有するメモリシステムにおいても実行され得る。図10はメモリシステムの一例を示す。メモリシステムは、複数のプロセッサ(IP)10、主記憶装置60、及び複数のプロセッサと主記憶装置60とを接続する中間記憶装置30を有する。中間記憶装置30はキャッシュメモリ装置50、排他制御装置45及び抑止要求管理装置55を有する。更に排他制御装置45は排他情報記憶部35と排他判定部40を有する。排他制御は主に排他制御装置45により実行される。排他制御装置45では、排他制御に必要な情報を排他情報記憶部35に格納しており、排他制御処理において実行される図4に示す判定を排他判定部40で行う。判定の結果メモリリクエストの抑止が必要な場合は抑止要求管理装置55が抑止処理を実行する。
【0079】
図10のメモリシステム以外でも、ファイルシステムを自装置内に備えた記憶装置(NAS:Network Attached Storage)においても、上述のデッドロック発生を回避するための処理を有する排他制御方法は実行可能である。
【0080】
【発明の効果】
本発明により、排他制御によるネットワーク性能の低下を防止し、記憶装置が排他制御機能を有しているか否かに関わらず計算機は記憶領域へ排他的にアクセスすることができる。
【図面の簡単な説明】
【図1】計算機システムの構成例を示す図である。
【図2】I/O処理装置内の排他情報テーブルの一例を示す図である。
【図3】制御装置内の詳細排他情報テーブルの一例を示す図である。
【図4】排他アクセス制御の処理手順の一例を示すフローチャートである。
【図5】排他アクセス領域の種類の違いによるアクセス可否を示す図である。
【図6】排他制御方法の一例を示す図である。
【図7】排他アクセス領域の拡大処理を行わない排他制御方法の一例を示す図である。
【図8】排他制御方法の他の一例を示す図である。
【図9】アクセス履歴テーブルの一例を示す図である。
【図10】メモリシステムの構成例を示す図である。
【図11】全仮想構成情報テーブルの一例を示す図である。
【符号の説明】
1000…計算機
1100…中継装置
1200…I/O処理装置
1400…I/O処理装置
1600…制御装置
1700…経路切替え装置
1800…記憶装置
1900…端末装置
Claims (6)
- 複数の計算機と、一又は複数の記憶装置と、前記複数の計算機及び前記一又は複数の記憶装置と接続される中継装置とを有する計算機システムであって、
第一の計算機が前記一又は複数の記憶装置内の第一の記憶領域への排他的なアクセスを要求する第一のアクセス要求を送信し、
前記中継装置が、前記第一のアクセス要求に基づいて前記第一の記憶領域を排他的なアクセス領域に指定し、
前記中継装置は、第二の計算機から、前記第一の記憶領域を含み、かつ、前記第一の記憶領域より広い第二の記憶領域へのアクセスを要求する、第二のアクセス要求を受信した場合に、前記指定した排他的なアクセス領域を、前記第一の記憶領域から前記第二の記憶領域に拡張し、また、前記第二の計算機に前記第二の記憶領域への前記第二のアクセス要求を拒絶し、
前記第一の計算機が、前記第一のアクセス要求に関する前記排他的なアクセス領域の指定の解除を要求する解除要求を送信し、
前記中継装置が前記解除要求に基づいて、前記拡張した排他的なアクセス領域の指定を解除することを特徴とする計算機システム。 - 複数の計算機及び一又は複数の記憶装置と接続される中継装置であって、
前記複数の計算機と接続するための計算機側ポートと、
前記一又は複数の記憶装置と接続するための記憶装置側ポートと、
プロセッサと、
メモリとを有し、
前記計算機側ポートを介して、中継装置が、第一の計算機から前記一又は複数の記憶装置内の第一の記憶領域への排他的なアクセスを要求する、第一のアクセス要求を受信した場合に、前記プロセッサは前記第一の記憶領域が排他的なアクセス領域であることを示す第一の情報を前記メモリに格納し、
前記計算機側ポートを介して、中継装置が、第二の計算機から前記第一の記憶領域を含み、かつ、前記第一の記憶領域より広い第二の記憶領域へのアクセスを要求する第二のアクセス要求を受信した場合に、前記プロセッサは、前記第二の記憶領域が排他的なアクセス領域であることを示す第二の情報を前記メモリに格納し、かつ、前記第一の情報に基づいて、前記第二の計算機にアクセス拒否応答を送信するよう制御し、
前記計算機側ポートを介して、中継装置が、前記第一の計算機から排他的なアクセス領域の開放を要求する解除要求を受信した場合に、前記プロセッサは前記メモリから前記第一の情報および前記第二の情報を消去するよう制御することを特徴とする中継装置。 - 請求項2記載の中継装置において、
前記計算機側ポートを介して、中継装置が、前記第一の計算機から排他的なアクセス領域の開放を要求する解除要求を受信する前に、第三の計算機から前記第二の記憶領域へのアクセスを要求する第三のアクセス要求を受信した場合に、 前記プロセッサは、前記第二の情報に基づいて、前記第三の計算機にアクセス拒否応答を送信するよう制御することを特徴とする中継装置。 - 請求項2記載の中継装置において、
前記計算機側ポートを介して、中継装置が、第一の計算機から前記一又は複数の記憶装置上の記憶領域からのデータの読み出しを要求する、アクセス要求を受信した場合に、前記プロセッサは、前記第一の計算機が前記記憶領域にアクセスしたことを示す第三の情報を前記メモリに格納し、
前記計算機側ポートを介して、中継装置が、第二の計算機から前記記憶領域へのデータの書き込みを要求するアクセス要求を受信した場合に、前記プロセッサは、前記第三の情報に基づいて、前記第一の計算機が有するキャッシュメモリに格納されているデータを使用しないよう通知するための無効化メッセージを、該第一の計算機に送信することを特徴とする中継装置。 - 複数の計算機と、一又は複数の記憶装置とに接続される中継装置が、該複数の計算機各々から該一又は複数の記憶装置内の記憶領域へのアクセスを制御するアクセス制御方法であって、
第一の計算機から、前記一又は複数の記憶装置内の第一の記憶領域に対する排他的なアクセスを要求する第一のアクセス要求を受信するステップと、
前記第一の記憶領域を排他的なアクセス領域に指定するステップと、
第二の計算機から、第二の記憶領域に対するアクセスを要求する第二のアクセス要求を受信するステップと、
前記第二の記憶領域が、前記第一の記憶領域を含み、かつ、前記第一の記憶領域より広い記憶領域である場合に、前記第二の記憶領域を排他的なアクセス領域に指定するステップと、
前記第二の計算機に、前記第二のアクセス要求に対する応答として、アクセス拒否応答を送信するステップと、
前記第一の計算機から排他的なアクセス領域の指定の解除を要求する解除要求を受信するステップと、および
前記解除要求に基づいて、前記第二の記憶領域に対する排他的なアクセス領域の指定を解除するステップとを有することを特徴とするアクセス制御方法。 - 請求項5記載のアクセス制御方法において、
更に第三の計算機から前記第二の記憶領域に含まれる記憶領域へのアクセスを要求する第三のアクセス要求を受信するステップと、
前記第三の計算機に、第三のアクセス要求の応答として、アクセス拒否応答を送信するステップを有することを特徴とするアクセス制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002289376A JP4207520B2 (ja) | 2001-10-02 | 2002-10-02 | 排他制御装置及び排他制御方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001-306176 | 2001-10-02 | ||
JP2001306176 | 2001-10-02 | ||
JP2002289376A JP4207520B2 (ja) | 2001-10-02 | 2002-10-02 | 排他制御装置及び排他制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003196140A JP2003196140A (ja) | 2003-07-11 |
JP4207520B2 true JP4207520B2 (ja) | 2009-01-14 |
Family
ID=27615230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002289376A Expired - Fee Related JP4207520B2 (ja) | 2001-10-02 | 2002-10-02 | 排他制御装置及び排他制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4207520B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7627578B2 (en) * | 2004-09-01 | 2009-12-01 | International Business Machines Corporation | Apparatus, system, and method for file system serialization reinitialization |
US7457914B2 (en) * | 2005-03-25 | 2008-11-25 | Emc Corporation | Asynchronous event notification |
JP5087249B2 (ja) * | 2006-09-06 | 2012-12-05 | 株式会社日立製作所 | ストレージシステムおよびストレージシステムの制御方法 |
GB2455347B (en) * | 2007-12-07 | 2012-04-11 | Virtensys Ltd | Control path I/O virtualisation |
JP2011248551A (ja) * | 2010-05-26 | 2011-12-08 | Nec Corp | アクセス制御装置 |
JPWO2015170702A1 (ja) * | 2014-05-09 | 2017-04-20 | 日本電気株式会社 | ストレージ装置と情報処理システム及びストレージ制御方法とプログラム |
-
2002
- 2002-10-02 JP JP2002289376A patent/JP4207520B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003196140A (ja) | 2003-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7243229B2 (en) | Exclusive access control apparatus and method | |
JP4405533B2 (ja) | キャッシュ方法及びキャッシュ装置 | |
US7890669B2 (en) | Computer system for sharing I/O device | |
US7861095B2 (en) | Data processing apparatus security | |
JP4521865B2 (ja) | ストレージシステム、計算機システムまたは記憶領域の属性設定方法 | |
JP2005010969A (ja) | ネットワークシステム及びスイッチ | |
JP2005190106A (ja) | 論理ボリュームを管理する記憶制御サブシステム | |
JP2008225753A (ja) | 計算機システム、アクセス制御方法及び管理計算機 | |
US20040158764A1 (en) | Storage system | |
JP4207520B2 (ja) | 排他制御装置及び排他制御方法 | |
JPWO2009066611A1 (ja) | 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム | |
US6952761B2 (en) | Bus interface selection by page table attributes | |
JP5673396B2 (ja) | 情報処理システム、情報処理プログラム、情報処理方法 | |
JP4580693B2 (ja) | 共有排他制御方法 | |
US20030126341A1 (en) | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain | |
JP4684605B2 (ja) | 情報伝達方法及びホスト装置 | |
JP2009110407A (ja) | キャッシュ方法及びキャッシュ装置 | |
JP2006164218A (ja) | ストレージシステム及びそのキャッシュ制御方法 | |
JP4461777B2 (ja) | トランザクション処理システムおよび方法ならびにプログラム | |
JP4439798B2 (ja) | ディスクアレイ装置の制御方法、及びディスクアレイ装置 | |
JP2002278905A (ja) | ストレージ装置及び計算機ネットワークシステム | |
US8108618B2 (en) | Method and apparatus for maintaining memory data integrity in an information handling system using cache coherency protocols | |
JP6365718B1 (ja) | コンピュータシステム、及びメモリコピー方法 | |
JP6369069B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US20160253094A1 (en) | Information processing device, data cache device, information processing method, and data caching method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050119 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080304 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080728 |
|
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: 20080930 |
|
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: 20081013 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |