JP2000148705A - 共用資源を動的に結合するための方法及びその装置 - Google Patents

共用資源を動的に結合するための方法及びその装置

Info

Publication number
JP2000148705A
JP2000148705A JP11270715A JP27071599A JP2000148705A JP 2000148705 A JP2000148705 A JP 2000148705A JP 11270715 A JP11270715 A JP 11270715A JP 27071599 A JP27071599 A JP 27071599A JP 2000148705 A JP2000148705 A JP 2000148705A
Authority
JP
Japan
Prior art keywords
node
resources
ion
resource
pit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11270715A
Other languages
English (en)
Inventor
Kit M Chow
エム チョウ キット
Niels Haarh Hornekaer
ハー ホーネカー ニールス
Morten Skoien With
スコイエン ウィズ モートン
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.)
NCR International Inc
Original Assignee
NCR International Inc
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 NCR International Inc filed Critical NCR International Inc
Publication of JP2000148705A publication Critical patent/JP2000148705A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Abstract

(57)【要約】 【課題】 I/Oノード間に共用資源を動的に結合する
方法、装置を提供する。 【解決手段】 開始ノードにより要求された資源を応答
ノードから割当解除し、開始ノードにより要求されてお
らず且つ応答ノードにより到達可能な資源を応答ノード
に割り当て、第二のノードに割り当てられた資源を第一
のノードから割当解除し、第一のノードにより到達可能
な未割当の資源を第一のノードに割り当てるステップを
備える。本製造品は、前述の方法ステップを実施すべく
コンピュータにより実行可能なプログラムステップを実
現するプログラム記憶装置を備える。本装置は、複数の
記憶資源と第一のI/Oノードと第二のノードとを有す
るデータ記憶資源を備える。第一及び第二のI/Oノー
ドは、資源所有権交渉メッセージを送受信すると共に資
源所有権交渉メッセージとして受信した情報に表示され
た資源の割当取り消しと割当とを行うI/Oプロセッサ
を有する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、演算システムに関
し、特に、プロセッサ又はメモリキャビネットの境界に
関わりなく、仮想記憶割当ての単一操作ビューを提供す
る方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】技術の
進歩はしばしば、一見無関係に見える技術的な発達に起
因する。かかる無関係な発達は、個別に重要であるが、
組み合わされた場合には、主要な技術的な進歩の基礎を
形成することがある。歴史的に、大型で複雑なコンピュ
ータシステムにおける構成要素には、(1)ディスク入
出力パフォーマンスに関する中央処理装置パフォーマン
スの急速な進歩、(2)内部中央処理装置アーキテクチ
ャの発展および(3)相互接続機構の進歩等を含む、不ぞ
ろいな技術的発達があった。
【0003】過去10年以上の間、ディスク入出力パフ
ォーマンスは、ノードの発達速度に比べてかなり緩慢な
速度で発達してきた。中央処理装置パフォーマンスは、
一年当たり40%から100%の速度で増大したが、デ
ィスクシーク時間は、一年当たり僅か7%しか向上しな
かった。かかる傾向が予測どうり継続する場合には、典
型的なサーバノードが駆動できるディスクドライブ数
は、大部分の大型システムにおいて量と値段の双方でデ
ィスクドライブが支配的な構成要素となるまで増加する
であろう。かかる現象自体、大型システムの導入が存在
することですでに明らかになっている。
【0004】不ぞろいなパフォーマンスの拡張もまた、
中央処理装置内部で起きている。中央処理装置パフォー
マンスを向上させるために、中央処理装置ベンダはクロ
ック速度の増加とアーキテクチャの変更を組み合わせて
いる。かかるアーキテクチャの変更の多くは、並列処理
業界から影響を受けた、実績のある技術である。かかる
変更により、偏ったパフォーマンスを作成することがあ
り、期待したパフォーマンスの向上より下回る結果にな
っている。簡単な例では、1つの中央処理装置がベクト
ル割り込みできる速度は、基本命令と同じ速度で拡張し
ない。従って、割り込みパフォーマンス(入出力等)に
基づくシステム機能は演算能力とともに拡張しない。
【0005】相互接続機構もまた、不ぞろいな技術発達
の特徴を示している。長年の間、相互接続機構は毎秒1
0−20MBのパフォーマンスレベルを前後していた。
過去、帯域幅が毎秒100MB(以上)のレベルまで大
きく向上した。このようにパフォーマンスが大きく向上
することにより、大規模な並列処理装置を経済的に配備
することが可能になる。
【0006】このようにパフォーマンスが不ぞろいであ
るため、アプリケーションアーキテクチャおよびシステ
ムコンフィギュレーションのオプションに好ましくない
影響を与えている。例えば、アプリケーションパフォー
マンスに関して、中央処理装置パフォーマンスを増大さ
せる等、作業負荷を増大させてシステムのある部分での
パフォーマンスの向上を利用しようと試みると、ディス
クサブシステムに同等のパフォーマンス拡張を欠いてい
るためにしばしば妨げられる。中央処理装置は毎秒当た
り2倍のトランザクション数を作成するが、ディスクサ
ブシステムはこの増加のわずかしか処理できない。中央
処理装置は、記憶装置を長い間待ち望んでいる。不ぞろ
いなハードウェアパフォーマンスの発達による全体的な
インパクトとは、アプリケーションパフォーマンスを特
定の作業負荷特性にますます依存しなけらばならなくな
っていることである。
【0007】プラットフォームハードウェア技術におけ
る調和のとれていない発達もまた、別の重大な問題を創
出している。マルチノードシステムをコンフィギュレー
ションするための利用可能なオプション数が減少してい
ることである。良い例としては、TERADATA
Æ(テラデータ)の4ノードクリークのソフトウ
ェアアーキテクチャが、記憶装置の相互接続技術の変化
により影響を受けることがあげられる。TERADAT
Æクリークモデルには、単一のクリークにおけ
るノード間の均一な記憶接続性が期待される。各ディス
クドライブは各ノードからアクセスできる。従って、ノ
ードが故障すると、そのノード専用の記憶は、残余のノ
ードに分割される。記憶とノード技術における調和のと
れない発達により、共用記憶環境での1ノード当たりの
接続可能なディスク数は制約される。入出力チャネルに
接続可能なドライブ数と4ノード共用入出力トポロジー
において接続可能なバスの物理的な数とにより、かかる
制約が生成される。ノードパフォーマンスが連続して向
上するに従って、我々は1ノード当たりに接続するディ
スクスピンドル数を増加させなければならない。
【0008】クラスタの設計と大規模な並列処理(MP
P)の設計は、前述の問題を解決しようとするマルチノ
ードシステム設計の例である。クラスタは、拡張性が限
れているが、MMP装置は、ある十分単純なアプリケー
ションモデル(市販のMMPモデルでは、本ソフトウェ
アは通常、データベース管理システム(DBMS)であ
る)を提供する追加のソフトウェアを必要とする。MM
P装置もまた、非常に高い可用性を提供するための内部
クラスタ化(クリーク)の形式を必要とする。両方の問
題を解決しようとすると、電気機械的な装置であって予
測できる故障率がかなり高いディスクドライブを、場合
によりは数多くの管理するという問題をさらに生成す
る。かかる管理上の問題の1つは、入力/出力ノード間
のディスクドライブで実行される記憶資源の割当と共用
である。数多くのディスクドライブが潜在的に関連し
て、ディスクの故障がいつでも発生しうるので、入力/
出力ノード間で交渉可能な単純な割当計画が必要とされ
る。
【0009】
【課題を解決するための手段】本発明は、かかる必要を
満足させるものである。
【0010】第一の特徴によれば、本発明は、第一のノ
ードと第二のノードとの間で資源を割り当てる方法であ
って、第一のノードにより要求された資源を第二のノー
ドから割当解除し、第一のノードにより要求されておら
ず且つ第二のノードにより到達可能な資源を第二のノー
ドに割り当て、第二のノードに割り当てられた資源を第
一のノードから割当解除し、第一のノードにより到達可
能な未割当の資源を第一のノードに割り当てる、ステッ
プを備えることを特徴とする方法に存する。
【0011】前記第一のノードにより要求された資源を
第二のノードから割当解除するテップは、好ましくは、
第一のノードにより要求された資源を識別し且つ第一の
ノードが所望する資源セットを含む開始メッセージを第
二のノードに送信し、第一のノードが所望する資源セッ
ト内の資源を第二のノードが所望する資源セットから除
去し、第二のノードの資源のワーキングセットを第二の
ノードが所望する資源セットに設定するステップを含
む。
【0012】第二の特徴によれば、本発明は、第一のノ
ードと第二のノードとの間に資源を割り当てる装置であ
って、第一のノードにより要求された資源を第二のノー
ドから割当解除する手段と、第一のノードにより要求さ
れておらず且つ第二ノードにより到達可能な資源を第二
のノードに割り当てる手段と、第二のノードに割り当て
られた資源を第一のノードから割当解除する手段と、第
一のノードにより到達可能であり且つ第一のノード又は
第二のノードに未割当の資源を第一のノードに割り当て
る手段、とを備えることを特徴とする装置に存する。
【0013】前記第一のノードにより要求された資源を
第二のノードから割当解除する手段は、好ましくは第一
のノードにより要求された資源を識別し且つ第一のノー
ドが所望する資源セットを含む開始メッセージを第二の
ノードに送信する手段と、第一のノードが所望する資源
セット内の資源を第二のノードが所望する資源セットか
ら除去する手段と、第二のノードの資源のワーキングセ
ットを第二のノードが所望する資源セットに設定する手
段とを含む。
【0014】第三の特徴によれば、本発明は、第一のノ
ードと第二のノードとの間に資源を割り当てる方法ステ
ップを実施するためにコンピュータにより実行可能な一
以上の命令を実現するコンピュータ読取り可能なプログ
ラム記憶媒体であって、前記方法ステップが、第一のノ
ードにより要求されておらず且つ第二のノードにより到
達可能な資源を第二のノードに割り当て、第二のノード
に割り当てられた資源を第一のノードから割当解除し、
第一のノードにより到達可能な未割当の資源を第一のノ
ードに割り当てる、ステップを備えることを特徴とする
プログラム記憶媒体に存する。
【0015】第四の特徴によれば、本発明は、データ記
憶資源であって、複数の記憶資源と、前記複数の資源の
少なくとも一つに通信自在に接続された第一の入出力ノ
ードにして、資源の所有権交渉メッセージを第二の入出
力ノードと送受信すると共に第二のノードに割り当てら
れた資源を第一のノードから割当解除し且つ第一のノー
ドに通信自在に接続された未割当の資源を第一のノード
に割り当てる第一の入出力ノードプロセッサを有する第
一の入出力ノードと、前記複数の資源の少なくとも一つ
と通信自在に接続された第二の入出力ノードにして、資
源の所有権交渉メッセージを第一の入出力ノードと送受
信すると共に第一のノードにより要求された資源を第二
のノードから割当解除し且つ第一のノードから未要求で
第二のノードと通信自在に接続された資源を第二のノー
ドに割り当てる第二の入出力ノードプロセッサを有する
第二の入出力ノードと、を備えることを特徴とするデー
タ記憶資源に存する。
【0016】
【発明の実施の形態】以下、本発明の実施形態につい
て、添付図面を参照にして例示的に説明する。
【0017】A.概観 図1は、本発明のピア・トゥ・ピア・アーキテクチャで
ある。本アーキテクチャは、1以上の演算資源102
と、1以上の相互接続機構106と通信パス108とを
介して演算資源102と通信自在に接続された、1以上
の記憶資源104とから成る。機構106は、すべての
ノードと記憶間に通信媒体を提供するので、演算資源1
02と記憶資源104との間に一様なピア・アクセスを
実施できる。
【0018】図1に図示のアーキテクチャにおいて、記
憶はもはや、現在のノード中心アーキテクチャにおける
ようなノードの単一のセットに接続しておらず、いずれ
のノードもすべての記憶と通信可能である。物理システ
ムトポロジーが記憶とノードの通信を制限する今日のマ
ルチノードシステムと比較すると、異なる作業負荷をマ
ッチさせるために異なるトポロジーが必要であった。図
1に図示のアーキテクチャは、システムの幅広いスペク
トルをサポートする単一の物理アーキテクチャを提供す
ることにより、アプリケーションソフトウェアの通信パ
ターンにシステムのトポロジーを任意の時間例で確定さ
せて、調和のとれない技術発達を受け入れる。機構10
6による分離により、主要なシステム構成要素各々に対
するきめ細かな拡張が可能になる。
【0019】図2は、本発明のピア・トゥ・ピア・アー
キテクチャのより詳細な説明を表している。演算資源1
02は、1以上の演算ノード200により限定され、各
々、オペレーティングシステム202の制御下で、1以
上のアプリケーション204を実行する1以上のプロセ
ッサ216を有する。演算ノード200と制御自在に接
続されているものは、テープデバイス、プリンタ又は他
のネットワーク等の周辺装置208である。また、演算
ノード200と制御自在に接続されているものは、ハー
ドディスク等のローカル記憶デバイス210、オペレー
ティングシステム202を含む命令等の記憶動作演算ノ
ード200特定の情報、又は他の情報である。アプリケ
ーションの命令は、2つ以上の分散処理式の演算ノード
200に渡り記憶されかつ/また実行される。1実施形
態において、プロセッサ216は、INTEL P6と
対応するメモリ等の既製で市販の多目的プロセッサと、
I/Oエレメントとから成る。
【0020】記憶資源104は、クリーク226により
限定され、各々システムインターコネクト228により
各相互接続機構106に制御可能に接続されている。第
一のION212と第二のION214は、1以上の記
憶ディスク224(“just a bunch of
disks”又はJBODとして知られている)と制
御自在に接続されて、JBOD格納装置222と対応す
る。
【0021】図2は、中型の装置であって、ノード速度
を計算する典型的な2つ1組のION212を有する。
本発明のクリーク226はまた、3以上のION214
を用いて実行することもでき、又は記憶ノードの可用性
の損失がある場合には、単一のION212で実行する
ことができる。クリーク226の個体数は、ION21
2間に共用ハードウェアがないといった、純粋にソフト
ウェアの問題である。対になったION212は「ダイ
ポール」と称されることもある。
【0022】本発明はまた、演算ノード200、ION
212及び相互接続機構106とインターフェースする
管理構成要素すなわちシステムアドミニストレータ23
0を含む。
【0023】ION212とJBOD212間の接続性
を、簡単にした形で示す。実際の接続性は、図示のコン
フィギュレーションにおける記憶ディスク224の各ラ
ンク(列、ここでは4列)に対するファイバチャネルケ
ーブル(Fibre Channel cable)を
使用する。実際には、各ION212が、図示の実施形
態に見られる20の記憶ディスク224よりもむしろ、
40から80の間の記憶ディスク224を管理する。
【0024】 B.ION(記憶ノード)1.内部アーキテクチャ a)ハードウェアアーキテクチャ 図3は、ION212のコンフィギュレーションとJB
OD222とのインターフェースについてより詳細に示
した図である。各ION212は、JBOD相互接続2
16によりJBOD配列内の各記憶ディスク224と通
信自在に連結している入出力接続モジュール302と、
ION212の機能と、ここで説明されるION物理デ
ィスクドライバ500を実行する中央処理装置及びメモ
リ304と、電源を供給してION212のオペレーシ
ョンを保持する電源モジュール306とから成る。
【0025】b)JBOD 図4は、JBOD格納装置222についての詳細をさら
に示した図である。監視又は制御可能なJBOD格納装
置222のすべての構成要素は、エレメント402−4
24と称される。任意の1JBODに対するエレメント
402−424すべてを、コンフィギュレーションペー
ジコードとの「受信診断結果(receive dia
gnostic results)」コマンドを介して
復帰する。ION212は、エレメントの順序づけられ
たリストを使用してエレメントに番号を振る。記載の第
一のエレメント402はエレメント0で、第二のエレメ
ント404はエレメント1、等である。かかるエレメン
トの番号は、ここに記載の管理サービスレイヤ706を
使用して構成要素のアドレス指定をするLUN_Cの番
号を作成する際に使用される。
【表1】 格納装置内部で、上の表1で示されるように、エレメン
トの位置はラック、シャーシ及びエレメント番号により
指定される。「ラック番号(rack numbe
r)」とは、ダイポールに属するラックに割り当てられ
るダイポール内部の番号でる。「シャーシ位置」とは、
キャビネット管理デバイスにより報告される高さをい
う。「エレメント番号」とは、SESコンフィギュレー
ションページにより復帰されるエレメントのリストの索
引である。かかるフィールドは、LUN_Cフォーマッ
トを作成する。
【0026】c)I/Oインターフェースドライバアー
キテクチャ 図5は、ION212のI/Oアーキテクチャを示した
図で、ION212の「SCSIドライバ」として機能
するION物理ディスクドライバ500を含む。ION
物理ディスクドライバ500は、システムアドミニスト
レータ230内部のRAID(redundant a
rray of inexpencive disk
s)ソフトウェアドライバ又は管理ユーティリティから
のI/O要求を取り込む役割をする。
【0027】本発明のION物理ディスクドライバ50
0は、高位ドライバ(HDL)502と低位ドライバ5
06の、3つの主要な構成要素を含む。HLD502
は、共通部分503とデバイス指定の高位部分504、
デバイス指定の低位部分506とから成る。共通及びデ
バイス指定の高位部分502と504は、アダプタ依存
型で、新規のアダプタ型式に対する変更の必要がない。
ファイバチャネルインターフェース(FCI)低位ドラ
イバ506は、ファイバチャネルアダプタをサポート
し、従って、アダプタ指定のというよりもむしろプロト
コル指定である。
【0028】FCI低位ドライバ506は、FCPフレ
ームに対するSCSI要求を変換して、「Login」
及び「Process Login」といったファイバ
チャネル共通サービスを処理する。操作自在に連結され
たFCI低位ドライバ506は、ハードウェアインター
フェースモジュール(HIM)インターフェース508
で、ファイバチャネルプロトコル処理をアダプタ指定の
ルーチンから分割する。前述の構成要素のより詳細な記
載を以下に示す。
【0029】(1)高位ドライバ 高位ドライバ(HLD)502は、アクセスしているデ
バイスの型式に関わらず、ION212に対する要求す
べてのエントリポイントである。デバイスがオープンの
場合、HLD502はコマンドページをそのデバイスに
結びつける。かかるベンダ指定のコマンドページは、指
定のSCSI機能用にSCSIコマンド記述ブロックを
どのように組み立てるか命令する。コマンドページは、
SCSI仕様の指定と異なって、特定のSCSI機能を
処理するドライバデバイスが容易にサポートできるよう
にする。
【0030】(a)共通(非デバイス指定)部分 HLD02の共通部分は、次のエントリポイントを含
む。 ・cs_init −ドライバ構造を初期設定し資源
を割当てる ・cs_open −デバイスを使用可能な状態にす
る ・cs_close −入出力を完了しデバイスをサー
ビスから取り除く ・cs_strategy −デバイス読取り/書込み
エントリ(Buf_tインターフェース)をブロックす
る ・cs_intr −ハードウェア割り込みをサービ
スする かかるルーチンは、すべてのデバイス型式に対し同様の
機能を実行する。かかるルーチンの大部分は、デバイス
指定のルーチンを呼び出してデバイス型式(ディスク、
テープ、WORM,CD ROM等)により索引付けら
れたをスイッチ表を介して、どのようなデバイス指定要
件も処理する。
【0031】「cs_open」機能により、デバイス
の存在と入出力操作がデバイス上で実行される状態にな
ることが保証される。現在のシステムアーキテクチャと
異なり、オペレーティングシステム(OS)が初期設定
される間、共通部分503は既知のデバイスの表を作成
しない。そのかわり、ドライバ共通部分503は、セル
フコンフィギュレーションを行う。つまり、ドライバ共
通部分503は、デバイスの初期動作中にデバイスの状
態を確定する。これにより、ドライバ共通部分503
は、オペレーティングシステム202初期設定段階後、
デバイスがオンラインになっているかどうか調べられる
ようになる。
【0032】初期オープン中に、SCSI照会コマンド
を目的デバイスに出すことにより、SCSIデバイスが
コマンドページと結びつけられる。デバイスが応答する
場合には、応答データ(ベンダID、プロダクトID及
びファームウェアのバージョンレベルを含む)SCSI
構成モジュール516内の既知のデバイスの表と比較さ
れる。マッチする場合には、次にデバイスはその表エン
トリに指定のコマンドページと明確に結びつける。マッ
チしない場合には、応答データ形式に基づいて、次にデ
バイスは汎用CCS(共通コマンドセット)又はSCS
IIIコマンドページと暗黙に結びつける。
【0033】ドライバ共通部分503は、資源を割り当
てる低位ドライバ506とコマンドページ機能により使
用されるルーチンを含み、分散収集オペレーション用の
ダイレクトメモリアクセス(DMA)リストを作成し、
SCSIオペレーションを完了させる。
【0034】FCI低位ドライバ506のルーチンはす
べて、ドライバ共通部分503から呼び出される。この
ドライバ共通部分503は、ハードウェアを設定してオ
ペレーションをスタートさせるハードウェアインターフ
ェースモジュール(HIM)508内の適切な低位ドラ
イバ(LLD)ルーチンを呼び出すことにより、SCS
Iオペレーションを実際に開始する唯一のレイヤであ
る。LLDルーチンはまた、SCSIコンフィギュレー
ションモジュール516によるコンフィギュレーション
中に割り当てられたドライバIDにより索引されたスイ
ッチ表を介してアクセスされる。
【0035】(b)デバイス指定部分 共通部分502とデバイス指定ルーチン504の間のイ
ンターフェースは、共通部分に対するインターフェース
と同様に、csxx_init、csxx_open、
csxx_close及びcsxx_strategy
を含む。「xx」の指定は、記憶デバイスの形式(例え
ば、「dk」はディスク、「tp」はテープである)を
示す。かかるルーチンにより、どのようなデバイス指定
要件でも処理する。例えば、デバイスがディスクとする
ならば、「csdk_open」がディスクの特定区域
からの区分表情報を読み込み、「csdk_strat
egy」が区分表の情報を使用して、ブロックがバウン
ド外かどうか確定するはずである。(区分表は、各指定
物理ディスクの論理対物理ディスクブロックマッピング
を定義する。) (c)高位ドライバエラー/フェールオーバー処理 (i)エラー処理 (a)再試行 HLD502の大抵の共通リカバリ方法は、故障したI
/Oを再試行することである。ある任意のコマンド形式
に対する再試行の数は、コマンドページにより指定され
る。例えば、読取り又は書込みコマンドが非常に重要で
あると考えられるので、関連するコマンドページが3回
までの再試行を設定する。照会コマンドは重要でないと
考えられるが、一日の作業開始(start of d
ay)操作の間の一定の再試行がシステムを遅くさせる
と考えられる場合には、再試行数はゼロになる。
【0036】要求がまず出されて、その再試行数がゼロ
に設定される。要求が受け付けられないときは毎回、再
試行スキームを再試行し、再試行数を増加する。再試行
数がコマンドページにより指定された最大再試行数を越
える場合には、I/Oは受け付けられずに、メッセージ
はリクエスタに送信される。あるいは、再発行される。
このルールに対する唯一の例外は、通常はエラーよりも
むしろ事象通知であるユニットアテンションである。ユ
ニットアテンションがコマンドとして受信されて、最大
再試行がゼロまたは1に設定される場合には、高位ドラ
イバ502はこの指定のI/Oに対する最大再試行を2
に設定する。これにより、ユニットアテンションの条件
により入出力が早期に故障することを防ぐ。再試行が指
定の時間量に対する待ち行列と置換されないことを除い
て、遅れた再試行は、上述の再試行スキームと同様に処
理される。
【0037】(b)受け付けられないScsi_op FCI低位ドライバ506に出されたScsi_op
は、いくつかの状況のため受け付けられないことがあ
る。以下の表IIに、FCIFCI低位ドライバ506
がHLD402に復帰可能である考えられうる障害の形
式を示す。
【表2】 (c)不十分な資源 不十分な資源によるエラーは、ある所望の資源が要求時
に入手できない場合に発生する。典型的には、かかる資
源はシステムメモリとドライバ構造メモリである。
【0038】不十分なシステムメモリ処理は、セマフォ
ーブロッキングにより達成される。メモリ資源をブロッ
クするスレッドは、新しいI/Oが出されることを妨げ
る。かかるスレッドは、I/Oの完了によりメモリを解
放するまでブロックしたままである。
【0039】ドライバ構造資源は、Scsi_opとI
/Oベクトル(IOV)リストプールに関連する。IO
Vリストは、ディスクに送信される又はディスクから送
信されるメモリ開始と長さの値に関するリストである。
同調自在のパラメータを使用してプールのサイズを指定
することにより、かかるメモリプールは一日の作業開始
時に初期設定される。Scsi_op又はIOVプール
が空の場合には、新しいI/Oがかかるプールを大きく
する。メモリのページ(4096バイト)が、いずれか
のプールを大きくする時に割り当てられている。新ペー
ジからのScsi_op又はIOVが開放されて初めて
ページが開放される。Scsi_op又はページに対
し、ION212がページを常に割り当てて、開放して
いる場合には、関連するパラメータを所望の通り同調す
ることがある。
【0040】不十分な資源処理はすべて、事象を通じて
記録される。
【0041】(ii)一日の作業開始時処理 一日の作業開始時に、HLD502は必要な構造とプー
ルを初期設定して、アダプタ指定ドライバ及びハードウ
ェアを初期設定する呼び出しを行う。一日の作業開始時
処理は、「cs_inti()」を呼び出すことで開始
され、cs_inti()は、(1)Scsi_Opプ
ールを割り当てる、(2)IOVプールを割り当てる、
(3)FCIhw_inti()を呼び出してファイバ
チャネル構造とハードウェアを初期設定する、(4)割
り込みサービスルーチンcs_intr()を適切な割
り込みベクトルに結びつける。
【0042】(iii)フェールオーバー処理 ION212ダイポールの2分の1の2つは、ディスク
デバイスの共通セットに接続されている。ダイポール2
26内のION212と214はいずれも、いつでもす
べてのデバイスにアクセスできることになっている。H
DL502の透視から、フェールオーバーに対する特別
な処理がないことがわかる。
【0043】(2)コマンドページ 本発明のION212は、実際に組み込まれたSCSI
コマンドから共通部分とデバイス指定部分を抽象する、
コマンドページ法を使用する。「コマンドページ」と
は、各機能がSCSIコマンド(例えば、SCSI_2
_Test_Unit_Ready)を表す機能に対す
るポインタのリストである。上述のように、指定のコマ
ンドページは、開始オープンのデバイス又はそのデバイ
スのアクセスと結合している。ベンダ指定でかつ非準拠
のSCSIデバイスの癖はすべて、かかるデバイス指定
のコマンドページを介して参照される機能により管理さ
れる。典型的な装置では、コマンドコントロールセット
(CCS)、SCSI IとSCSI IIのページ及
びベンダ指定のページとともに出荷され、非準拠のCS
CIデバイス又はベンダ指定SCSIコマンドの統合が
行われる。
【0044】コマンドページ機能は、「Virtual
DEVice(VDEV)」インターフェースと呼ば
れるインターフェースを通じて、デバイス共通部分50
3、デバイス指定部分504及びFCI低位ドライバ5
06(要求センス)から呼び出される。かかるレベルで
は、ソフトウェアは、どのようなSCSI言語をデバイ
スが使用しているか関心を持たないが、デバイスが意図
の機能を実行することだけに関心を払っている。
【0045】各コマンドページの機能は、SCSIコマ
ンドを組み込み、必要の場合には、メモリをダイレクト
メモリアクセス(DMA)データ送信に割り当てる。機
能は次に、ドライバ共通部分503のコントロールを復
帰する。ドライバ共通部分503は次に、CSCIオペ
レーションを待ち行列に位置づけること(必要な場合に
は、ここで記憶される)と、FFCI低位ドライバ50
6開始ルーチンを呼び出すことにより、コマンドを実行
する。コマンドが実行された後、「コールオン割り込み
(Call On Interrupt、COI)」ル
ーチンがコマンドページ機能に存在する場合には、ドラ
イバのドライバ共通部分503が完了したコマンドデー
タ/情報を調べる前に、COIが呼び出される。復帰し
たデータ/情報を操作することにより、COIは非準拠
のSCSIデータ/情報を標準のSCSIデータ/情報
に変換する。例えば、デバイスの照会データがベンダI
D開始をバイト8ではなくバイト12に含んでいる場合
には、照会コマンドページ機能はベンダIDを復帰した
照会データのバイト8に移動させるCOIを含むことに
なる。ドライバ共通部分503は常に、バイト8スター
ト時にベンダID情報を抽出するので、非準拠のデバイ
スについて知る必要はない。
【0046】(3)JBOD及びSCSIコンフィギュ
レーションモジュール RAIDコントローラのある重要な機能は、データの保
全である。この機能を実行するために、RAIDソフト
ウェアは、ディスクの位置とケーブル接続の状態を物理
的に知っていなければならない。従って、RAIDコン
トローラ技術を実行する重要な要件は、記憶デバイスの
コンフィギュレーションを制御する能力である。JBO
DとSCSIコンフィギュレーションモジュール516
のJBOD部分は、ION212に対する静的JBOD
コンフィギュレーションを限定する役割が課せられてい
る。JBODとSCSIコンフィギュレーションモジュ
ール516により説明されるコンフィギュレーション情
報を、表IIIに示す。
【表3】 アダプタの物理ロケーション情報に加えて、コマンドペ
ージの定義と同様、JBOD格納装置222、記憶ディ
スク224、FCI低位ドライバ506等の他のコンフ
ィギュレーション情報及びドライバデバイス指定部分5
04エントリポイントについても説明する必要がある。
「space.cファイル」は、かかる情報を提供する
ために使用され、ION212は、ION物理ディスク
ドライバ500のコンパイル時にコンフィギュレーショ
ン情報を組み込む。サポートされたION212のコン
フィギュレーションが変更された場合には、新バージョ
ンのION物理ディスクドライバ500がコンパイルさ
れる。
【0047】(4)ファイバチャネルインターフェース
(FCI)低位ドライバ FCI低位ドライバ506は、高位ドライバ502に対
するSCSIインターフェースを管理する。ドライバ共
通部分503とFCI低位ドライバ506の間のインタ
ーフェースは、次のルーチンを含み、「xx」の表示
は、FCI低位ドライバ506を制御するハードウェア
に対する固有の識別子(例えば、FCIhw_ini
t)である。 ・xxhw_init −ハードウェアを初期設定する ・xxhw_open −ホストアダプタの現在の状態
を確定する ・xxhw_config −ホストアダプタのコンフ
ィギュレーション情報(SCSI ID等)を設定する ・xxhw_start −可能ならばSCSIオペレ
ーションを開始する ・xxhw_intr −すべてのSCSI割り込みを
処理する 低位ドライバは、デバイスの特性について知っている又
は関心を払う純粋なSCSIドライバであるが、それよ
りもむしろ上位レベルからのSCSIコマンドの単なる
コンジットである。割り込みサービスルーチン、ハード
ウェアの初期設定、マッピングとアドレス変換及びエラ
ーリカバリルーチンはこのレイヤにある。また、低位ド
ライバの多数の型式は、同じ装置の内部に共存可能であ
る。ハードウェア制御レイヤとドライバの残余との分割
により、同じ高位ドライバを異なる機械上で実行させる
ことができる。
【0048】FCIモジュールの基本的な機能は、
(1)CSCI高位ドライバ(SHLD)とインターフ
ェースしてSCSI OpをFCI作業目的ストラクチ
ャ(I/Oブロック(IOB))に変換する、(2)共
通インターフェースを提供して、異なるHIM508を
介して新しいファイバチャネルアダプタに対するサポー
トを容易にする、(3)いずれかのFC?bSプロトコル
レイヤ(図示の実施形態におけるファイバーチャネルプ
ロトコル(FCP))により使用されうると考えられる
FC−3共通サービスを提供する、(4)HIM508
又はハードウェアが応答しない場合には、タイマサービ
スを提供してHINM(例えば、FCPコマンド、FC
−3コマンド、LIPコマンド)に送信された非同期コ
マンドを保護する、(5)ファイバチャネルドライバ全
体に対する資源を管理する(a)I/O要求ブロック
(IOB)、(b)ベクトル表、(c)HIM508資
源(例えば、ホストアダプタメモリ、DMAチャネル、
入出力ポート、スクラッチメモリ)、(6)ファイバチ
ャネルの任意のループ使用(対ファイバチャネル機構)
である。
【0049】FCI低位ドライバ506の重要なデータ
ストラクチャのリストは、以下の表IVに示される。
【表4】 (a)エラー処理 FCI低位ドライバ506の処理は、ファイバチャネル
及びファイバチャネル及び/又はFCI自体に特定する
エラーになる傾向がある。
【0050】(i)複数のステージエラー処理 FCI低位ドライバ506は、複数のステージ処理を伴
う指定のエラーを処理する。これにより、エラー処理技
術をエラーのタイプに対して最適化する。例えば、より
破壊的でない手順を使用しても動作しない場合には、も
っと思い切ったエラー処理手段がとられる。
【0051】(ii)受け付けられないIOB すべてのI/O要求は、I/O要求ブロックを介してH
IM508に送信される。次は、HIM508が返信す
る、考えられうるエラーである。
【表5】 (iii)不十分な資源 FCI低位ドライバ506は、IOBとベクトル表の資
源プールを管理する。かかるプールの大きさは、ION
212コンフィギュレーションと同調されるので、資源
から出られる可能性はなく、単純なリカバリ手順が実行
される。
【0052】IOB又はベクトルに対する要求がなされ
て、その要求を実行する十分な資源がない場合には、I
/Oは待ち行列に戻されて、タイマが設定されてI/O
を再スタートさせる。不十分な資源オカレンスは記録さ
れる。
【0053】(b)一日の作業開始時処理 一日の作業開始時に、高位ドライバ502は、各サポー
トされた低位ドライバ(FCI低位ドライバ506を含
む)に対する呼び出しを行う。FCI低位ドライバ50
6に一日の作業開始時処理は、次のオペレーションを実
行する「FCIhw_init()」ルーチン呼び出し
で開始する。
【0054】まず、HIM_FindControll
er()機能がPCIバス及びデバイスに対し呼び出さ
れる。これは、「FindController()」
のバージョンを呼び出す。JBODとSCSIコンフィ
ギュレーションモジュール516は、サーチされるPC
Iバストデバイスを指定する。次に、アダプタ(アダプ
テック(ADAPTEC)社より入手のアダプタ等)が
発見される場合、HCBが割り当てられてアダプタ用に
初期設定される。次に、「HIM_GetConfig
uration()」が呼び出されて、スクラッチメモ
リ、メモリマップI/O、ダイレクトメモリアクセスチ
ャネル等のアダプタ指定資源を取得する。次に、資源を
割り当てて、初期設定し、「HIM_Initiali
ze()」を呼び出してADAPTEC HIMとハー
ドウェアとを初期設定する。最後に、IOBとベクトル
テーブルを割り当てて初期設定する。
【0055】(c)フェールオーバー処理 ION212ダイポールの半分を2つ、ディスクデバイ
スの共通セットに接続する。ION212は、いつでも
すべてのデバイスにアクセス可能である。FCI低位ド
ライバ506から見て、フェールオーバーの指定の処理
はない。
【0056】(5)ハードウェアインターフェースモジ
ュール(HIM) ハードウェアインターフェースモジュール(HIM)5
08は、アダプテック社のSlimHIM509とイン
ターフェースするように設計されている。HIMモジュ
ール508は、FCI低位ドライバ506からの要求を
SlimHIM509が理解できてハードウェアに対し
出せる要求に変換する。これは、I/Oブロック(IO
B)の要求の受け取りと、SlimHIM509により
理解される、要求に対応するトランスファー・コントロ
ール・ブロック(Transfer Control
Block(TCB))の要求の変換を含む。
【0057】HIM508の基本的な機能は、(1)I
/Oを「発見(Find)」し、「構成(Config
ure)」し、「初期設定(Initialize)」
してアダプタに「送信(Send)」するハードウェア
指定の機能に対し低位のアプリケーションプログラム・
インタフェース(API)を定義する、(2)FCI低
位ドライバ506とインターフェースして、I/Oブロ
ック(IOB)をSlimHIM/ハードウェアが理解
できるTCBの要求(例えば、基本TCB、FC拡張リ
ンクサービス(Extended Link Serv
ices(ELS))TCB及びSCSI−FCPオペ
レーションTCB)に変換する、(3)SlimHIM
に出されたコマンド(TCB)の転送と完了をトラック
する、(4)SlimHIMからの割り込みと事象情報
を解釈して、FCI低位ドライバ506との理論積内の
適切な割り込み処理及び/又はエラーリカバリ開始する
ことを含む。TCBのデータストラクチャを次の表VI
に示す。
【表6】 (a)一日の作業開始の処理 HIM508は、一日の作業開始中に使用されるエント
リポイントを定義する。最初のエントリポイントは、H
IM_Findアダプタで、FCIh_init()と
呼ばれ、PCI BIOSルーチンを使用して、アダプ
タが指定のPCIバストデバイス上に存在するかどうか
確定する。PCIベンダとアダプタのプロダクトID
は、アダプタの有無を確定する。
【0058】第二のエントリポイントは、HIM_Ge
tコンフィギュレーションで、アダプタがある場合には
FCIhw_init()により呼び出されて、資源要
件を与えられたHCBに設定する。ADAPTECアダ
プタに対しては、資源として介入要求(IRQ:int
ervention required)、スクラッ
チ、TCBメモリ等を含む。この情報は、Slim_H
IM509に対して呼び出しをすることで探索される。
【0059】第三のエントリポイントは、資源が割り当
てられて初期設定された後でFCIhw_init()
により呼び出されるHIM_Initializeで、
Slim_HIMがスクラッチメモリ、TCB及びハー
ドウェアを初期設定するようTCBメモリプールを初期
設定する。
【0060】(b)フェールオーバー処理 IONダイポール226の半分を2つ、ディスクデバイ
スの共通セットに接続する。ION212と214は、
どのような時にもすべてのデバイスとアクセス可能にな
る。HIM509から見て、フェールオーバーに対する
指定の処理はない。
【0061】(6)AIC−1160Slim_HIM Slim_HIM509モジュールは、アダプタ(図示
の実施形態では、ADAPTECAIC−1160)の
ハードウェア抽象化を行うという全体的な目的を有して
いる。Slim_HIM509は、ファイバチャネルの
要求をAIC−1160アダプタに転送して割り込みを
サービスして、Slim_HIM509インターフェー
スを介してHIMモジュールに状態を返信する主要な役
割を有している。
【0062】Slim_HIM509はまた、AIC−
1160ハードウェアのコントロールを仮定して初期設
定し、ファームウェアをロードして、ランタイムオペレ
ーションを開始し、AIC−1160がエラーを起こし
た場合にはAIC−1160ハードウェアを管理する。
【0063】2.外部インターフェースとプロトコル ION物理ディスクドライバサブシステム500の要求
はすべて、共通高位ドライバ502を介してなされる。
【0064】a)初期設定(cs_init) サブシステムへのひとつのコールにより、すべての初期
設定が実行されてデバイスにI/Oが用意される。サブ
システムを初期設定する間、すべてのドライバストラク
チャを割り当ててデバイスやアダプタと同様に初期設定
する。
【0065】b)オープン/クローズ(cs_open
/_close) オープン/クローズインターフェースは、デバイスにア
クセスするために必要なストラクチャを初期設定し、か
つ中断する。インターフェース510が、典型的なオー
プン/クローズルーチンと異なるのは、すべての「オー
プン」と「クローズ」が暗黙に積層されているからであ
る。従って、I/O物理インターフェースドライバ50
0により受信された各「オープン」は皆、受信されかつ
関連する「クローズ」により達成される。「オープン」
又は「クローズ」の復帰が要求の完了を示すという点
で、オープン/クローズインターフェース510は同調
する。
【0066】c)But_t(cs_strateg
y) But_tインターフェース512は、デバイスに対す
る論理ブロック読取り及び書き出し要求の発行ができ
る。要求は、I/Oを記述するBut_tストラクチャ
を渡す。デバイスID、論理ブロックアドレス、データ
アドレス、I/O型式(読取り/書き出し)、コールバ
ックルーチン等の属性は、But_tにより記述され
る。要求の完了時に、リクエスタのコールバックにより
指定されるような機能が呼び出される。But_tイン
ターフェース502は、非同調インターフェースであ
る。リクエスタへの機能の復帰は、要求が完了したこと
を示唆するわけではない。機能が復帰する場合、I/O
がデバイスを実行することもしないこともある。要求
は、実行を待機している待ち行列上にあると考えられ
る。要求は、コールバック機能が呼び出されるまでは完
了しない。
【0067】d)SCSILibSCSILib514
は、デバイスに送信される通常の読み出し及び書込みで
はなく、SCSIコマンド記述ブロック(CDB(co
mmand descriptor block))を
可能にするインターフェースを提供する。このインター
フェースを介して、装置の開始及び停止等の要求を使用
してディスクの回転立上げ回転下げを行い、そして送信
受信診断要求を使用して格納デバイスを監視し制御す
る。SCSILibルーチンはすべて同調である。呼び
出された機能の復帰は、要求が完了したことを示唆する
わけではない。
【0068】e)割り込み(cs_intr) ION物理ディスクドライバ500は、すべてのSCS
Iとファイバチャネルアダプタの割り込みに対する中心
的なディスパッチャでる。1実施形態において、フロン
トエンドバックエンド割り込み方式を利用する。このよ
うな場合、割り込みがサービスされた時、フロントエン
ド割り込みサービスルーチンが呼び出される。フロント
エンドは割り込みスタックから実行し、割り込みソース
をクリアし、アダプタがさらに割り込みを生成できない
ようにし、バックエンド割り込みサービスルーチンをス
ケジュールする。バックエンドは、実際に割り込み(ア
ダプタの割り込みを不能にし、バックエンドタスクを開
始する間に発生する可能性がある別の割り込みにともな
う)を処理する高い優先順位のタスクとして実行する。
バックエンドから出る前に、割り込みはアダプタ上で再
可能になる。
【0069】3.ION機能 ION212は、主に5つの機能を実行する。 かかる機能は:記憶の名前付けと投影 :記憶ディスク224に記憶され
た記憶資源オブジェクトのイメージを演算ノード200
に投影することにより、演算ノード200と作用して一
様で矛盾のない記憶の名前付けを提供する。ディスク管理 :制御自在にION212と接続された記
憶ディスクドライブ224と、データ分配とデータ冗長
性技術を実行する。記憶管理 :記憶のセットアップ、演算ノード200から
のI/O要求処理を含むデータ移動;パフォーマンス計
測及び事象分配の処理をする。キャッシュ管理 :アプリケーションヒント先取り等のキ
ャッシュフルオペレーションを含む、読取り書き出しキ
ャッシュ。相互接続管理 :演算ノードへ、かつ演算ノードからのデ
ータのフローを制御してパフォーマンスを最適化するこ
とと、リウエストのルーチングを制御して、ダイポール
226内の2つのION212間の記憶分配を制御す
る。
【0070】a)記憶の名前付けと投影 ION212は、記憶ディスク224に記憶された記憶
資源対象物のイメージを演算ノード200に投影する。
この機能の重要な部分は、大域で固有の名前である、I
ON212により管理される各記憶資源の機構固有のI
D又はボリュームセット識別子(VSI:volume
set identifier)602の作成と割当
である。
【0071】図6は、VSI602と関連のデータのス
トラクチャと内容とを示す図である。VSI602は固
有で矛盾がないことが重要なので、各ION212は、
ION212により局所的に管理される記憶資源の大域
で固有の名前を作成して割り当てる役割を担っており、
記憶資源対象物を記憶する記憶資源を管理するそのIO
N212のみが、かかる記憶資源のVSI602を割り
当てることができる。常駐の記憶資源をその時管理して
いるION212のみがVSI602を作成し割り当て
ることができるが、他のINO212がその後にかかる
記憶資源の記憶と検索を管理することがある。それは、
IONが割り当てられたVSI602を別のIONによ
り管理される記憶資源に後から移動させても、ある特定
のデータ対象物のVSI602を変更しなくてよいから
である。
【0072】VSI602は、ION識別子604とシ
ーケンス番号506との、2つの部分を含む64ビット
数として実行される。ION識別子604は、各ION
212に割り当てられた、大域で固有の識別番号でる。
大域で固有なION識別子604を得る技術の1つは、
リアルタイムクロックチップにしばしば記憶される、電
子的に読取り可能なマザーボードのシリアル番号を使用
することである。シリアル番号はただ一つのマザーボー
ドに対して割り当てられるので、このシリアル番号は固
有である。ION識別子604は大域で固有の番号なの
で、各ION212は局所的にのみ固有のシーケンス番
号606を割り当てることができ、さらに大域で固有な
VSI602を作成できる。
【0073】VSI602がION212の記憶資源に
結合された後、ION212は、同時通信メッセージを
介して機構上のすべてのノードにVSI602をエクス
ポートして、記憶資源104にアクセスできるようにす
る。この処理について、本IONネームエクスポートの
セクションでさらに説明する。
【0074】エクスポートされたVSI602使用し
て、演算ノード200ソフトウェアは次に、局所的に接
続された他の記憶デバイスすべてと区別できないという
点で意味論的に透過であるその記憶資源のローカルエン
トリポイントを作成する。例えば、演算ノードオペレー
ティングシステム202がUNIXである場合、周辺装
置108又はディスク210等の局所的に接続されたデ
バイスと同様に、ブロックデバイスエントリポイントと
ローデバイスエントリポイントの両方がデバイスディレ
クトリに作成される。他のオペレーティングシステム2
02に対し、同様な意味的等価が続く。別のオペレーテ
ィングシステム202を実行中の演算ノード200の間
で、ルートネームの一貫性が維持され、ヘテロジニアス
計算機環境がもっともよく維持される。演算ノード20
0のローカルエントリポイントは、ION212により
動的にアップデートされエクスポートされた記憶資源1
04の現在の利用可能性をトラックする。VSI602
は、演算ノード200を実行中のOS従属形アルゴリズ
ムにより使用して、インポートされた記憶資源のデバイ
スエントリポイントを作成する。かかるアプローチによ
り、共通オペレーティングシステムを共有するノード間
の名前の一貫性が保証される。これにより、各演算ノー
ド200の大域的に名付けられた記憶資源の局所エント
リポイントを動的(静的にではなく)に作成することに
より、システムがルートネームの一貫性維持してヘテロ
ジニアス計算機環境をサポートできるようにする。
【0075】上述のように、記憶資源104のVSI6
02を作成する詳細は、記憶資源104をエクスポート
するION212により直接コントロールされる。演算
ノード200間での予想されるオペレーティングシステ
ム104の差が原因で、1以上の記述ヘッダが各VSI
602と対応付けられ、ION212のVSI02とと
もに記憶される。各VSI602の記述子608は、そ
の指定のVSI602の、演算ノード200でのデバイ
スエントリポイントを一貫して(名前意味と操作意味は
ともに演算ノード200全体に同様にわたる)作成する
ために必要な、十分なOS202を記憶するためのオペ
レーティングシステム(OS)従属形データセクション
610を含む。かかるOS従属形データ610は例え
ば、データ記述アクセス権612と所有権情報614を
含む。VSI602がION212により設定され、演
算ノード200によりインポートされた後であるがVS
I602に対応する記憶資源104のエントリポイント
が作成される前に、適切なOS指定データ610がIO
N212により演算ノード200に送信される。
【0076】1つのVSI602当たり複数の記述ヘッ
ダが、異なるOS(各OSはは各所有の記述ヘッダを有
する)を実行中の複数の演算ノード200を平行サポー
トすることと、かつ演算ノード200の異なるグループ
間の外されたアクセス権をサポートすることの両方を可
能にする。同じ記述ヘッダを共有する演算ノード200
により、デバイスエントリポイントの共通でかつ一貫し
た作成が共有される。従って、名前意味と操作意味はと
もに、アクセス権の共通セットを共有するすべての演算
ノード200で一貫性が保たれる。
【0077】VSI602の記述子608はまた、演算
ノード200上で人間が読取り可能なSI602の名前
を表示するために使用される、エイリアスフィールド6
16を含む。例えば、VSI1984のエイリアスが
「soma」の場合には、演算ノード200は1984
と「soma」の両方のディレクトリエントリを有す
る。VSI602の記述子608は、ION212でV
SI602とともに記憶されるので、同じエイリアスと
ローカルアクセス権がVSI602をインポートする各
演算ノード200に現れる。
【0078】上述のように、本発明は分散割当方法に適
したネーミングアプローチを使用している。本アプロー
チにおいて、名前は大域で固有性を作成するアルゴリズ
ムに従って局所的に作成される。この変形が、セントラ
ルネームサーバ、可用性及び頑強性の要件が、純粋な分
散アプローチに対し非常に重要視される局所的集中アプ
ローチに続く。前述の方法を使用して、本発明は大域で
の固有性を保証する、局所的に実行されるアルゴリズム
を作成できる。
【0079】大域で一貫性のある記憶システムを作成す
るには、演算ノード200全体にわたって名前の一貫性
を単純に保存すること以上のサポートが必要である。名
前との両立は、本発明では2つの形式をとる安全保護の
問題である。第一は、ION212と演算ノード200
との間のインターフェースの安全保護で、第二は演算ノ
ード200内部からの記憶の安全保護である。
【0080】b)記憶の認証と許可 VSI602資源は、2つの別個の機構である、認証と
許可で保護されている。演算ノード200がION21
2により認証されると、次にVSIネームが演算ノード
200にエクスポートされる。エクスポートされたVS
I602は、演算ノード200上にデバイスネームとし
て現れる。演算ノード200上で実行中のアプリケーシ
ョンスレッドは、このデバイスネームで操作を実行しよ
うとすることができる。デバイスエントリポイントのア
クセス権と演算ノード200のOS意味が、アプリケー
ションスレッドが許可されて任意の認証のどれでも実行
できるかどうかを確定する。
【0081】許可に対する本アプローチは、相互接続機
構106によりアクセス可能な場所ならばどこへでも設
置できる記憶資源104に対する演算ノード200の許
可を拡張する。しかしながら、本発明の記憶資源104
が記憶資源200により直接管理されるのではないとい
う点で、本発明は他のコンピュータアーキテクチャとは
異なる。その代わりに、本発明は演算ノード200の許
可ポリシーをION212のVSI602と結合させ
て、演算ノード200とION212が相互信用レベル
を共有する、2段アプローチを使用する。ION212
は、指定のVSI602に対する各演算ノード200の
アクセスを許可するが、VSIにより割り当てられたデ
ータに対する指定のアプリケーションスレッドの許可の
改良は、演算ノード200が担う役割である。演算ノー
ド200は次に、ION212により記憶された許可メ
タデータに含まれるポリシーを使用することにより、記
憶エンティティ104の許可ポリシーを実行する。従っ
て、記憶リソース200はメタデータを保存するION
212を信用することが要求され、ION212が許可
を実行する記憶リソース200を信用することを必要と
する。本アプローチの長所は、ION212が、どのよ
うにメタデータに割り込むかについて知っている必要が
ないことである。従って、ION212が、演算ノード
200が使用する異なるオペレーションシステム202
により付けられる異なる許可意味論が付ける、指定のの
許可意味を実行することから分離される。
【0082】VSI602に対応するデータ(アクセス
権を含む)はすべて、ION212に記憶されるが、ア
クセス権データの内容を管理する負担を演算ノード20
0にかける。さらに詳細には、ION212によりエク
スポートされているVSI602のリストは、記憶リソ
ース200に送信され、対応する各VSI602は、局
所での許可を実行する演算ノード200が必要とするO
S指定データのすべてである。例えば、UNIXを実行
中の演算ノード200に名前、グループネーム、ユーザ
ID及び方式ビットという、ファイルシステムのデバイ
スエントリノードを作成するのに十分なデータが送信さ
れる。演算ノードオペレーティングシステム202のそ
のクラスに指定のVSI602(あるいはその演算ノー
ド200に特定の)の代替ネームは、各VSI602に
含まれる。記憶デバイスのアクセス権を変更する局所O
S特定コマンドは、演算ノード200のソフトウェアに
より計算され、ION212に送信されるメッセージに
変換される。このメッセージは、OSのバージョンに指
定のVSIアクセス権データをアップデートする。この
変更が完了した時、ION212は、システム内のその
OSを使用して、このアップデートをすべての演算ノー
ド200に送信する。
【0083】ある演算ノード(CN)200がオンライ
ンになる場合、「I‘m here」メッセージを各I
ON212に送信する。このメッセージは、その演算ノ
ード200を識別するデジタル署名を含む。演算ノード
200が、ION212(このION212はその演算
ノード200を認証する)により認識され、このION
212はその演算ノード200がアクセス権を有するV
SIのネームすべてをエクスポートする。その演算ノー
ド200はVSI602のネームリストを使用して、シ
ステム記憶のローカルアクセスエントリポイントをつく
る。演算ノード200を実行中のアプリケーション20
4はまず、ローカルエンドポイントを参照し、演算ノー
ド200は、相互接続機構106を越えてメッセージを
送信することによりそのVSI602のアクセス権記述
データをION212に要求する。要求メッセージは、
要求する演算ノード200のデジタル署名を含む。IO
N212はメッセージを受信し、デジタル署名を使用し
て返信される適切なVSIアクセス権のセットを発見し
て、相互接続機構106を介して要求の演算ノード20
0にそのデータを送信する。演算ノード200ソフトウ
ェアは、このデータを使用して適切なローカルアクセス
権のセットを主体となる記憶対象物のローカルエントリ
ポイントと結合する。
【0084】演算ノード200のセットは、同じデジタ
ル署名を使用するか又はION212に異なる署名を同
じセットのアクセス権と結合させるかのいずれかによ
り、同じアクセス権を共有できる。本発明は、演算ノー
ド200を識別することと、ローカル認証データのセッ
トを使用してローカルエントリポイントの作成を指定す
ることの両方に認証を使用する。VSI602を最初に
アプリケーションが参照する時に、認証データを演算ノ
ードに引き寄せる。このような「必要時に引く」モデル
により、非常に大型の装置の大量のアクセス権メタデー
タを移動させる開始費用の負担が避けられる。
【0085】ある演算ノード200が認証に失敗した場
合、ION212は、VSI602ネームのないメッセ
ージを返信し、認証失敗のフラグが設定される。演算ノ
ード200は、そのION212からのVSIデバイス
ネームなしでで静かに継続し、システムアドミニストレ
ータの要望に従って認証失敗の報告をすることがある。
もちろん、認証に成功して、VSIデバイスネームが演
算ノードに転送されないこともある。
【0086】c)非干渉化の起動 ION212が起動すると、VSI602を相互接続機
構106にエクスポートしようとする。このような場
合、システムのデータの完全性が、新しいION212
による破壊から保護される。これを、達成するため新し
いION212は、記憶のエクスポートが許可される前
にチェックされる。これにより、次のように達成され
る。第一に、ION212が自身のローカル記憶を調べ
てエクスポート可能なVSI602のリストを作成す
る。VSI602のメタデータは、VSIの作成又は突
然変異数を含んでいる。VSI突然変異数を、かかるV
SI602(VSIのネットワークへのエクスポートが
成功した時等)に関係する大きな状態の変化があるとき
にはいつでも増加させる。すべてのノードは、演算ノー
ド200とION212がエクスポートされたVSIの
数と突然変異数のヒストリをメモリに維持することを含
む、VSIの矛盾の検出に参加する。まず、VSI突然
変異数(記憶拡張が最初に作成されたとき)がゼロに設
定される。「真の」VSI602と対応するION21
2がサービスされていない場合であっても、エクスポー
トされた時よりも低い突然変異数とエクスポートされた
VSI602は「詐称者(impostor)」のVS
I602と見なされることがあるという点で、突然変異
数は矛盾のない参照を提供する。I/Oがすでに真のV
SI602上で実行されていないかぎり、「真の」VS
I602突然変異数よりも高い、対応する突然変異数を
持つION212に接続された「詐称者」のVSI60
2は、真のVSI512であると考えられる。相互接続
機構106に新規に導入されたION212は、0から
始まる突然変異数を有することを必要とする。
【0087】ION212がシステムへの参加を希望す
ると告げた後、VSI602と対応する突然変異数のリ
ストを転送する。他のION212と演算ノード200
すべてがこのリストを得て、次にION212がVSI
602のリストをエクスポートする妥当性をチェックす
る。
【0088】現在同じVSI602をエクスポートして
いる他のION212は妥当であると見なされて、新規
のION512に矛盾する指定のVSIのエクスポート
不許可のメッセージを送信する。新規のION512
が、作成又はシステムで現在使用されているものよりも
大きな突然変異数を有している場合、(VSIが大域で
固有であるというような、通常の操作ではあり得ないよ
うな場合)このことに気づいて、必要な場合にはいかな
る手段をもとるシステムアドミニストレータに報告され
る。矛盾がない場合には、各ION212と演算ノード
200は作業を進めるように応答する。ION212と
演算ノード200のすべてからの応答が受信された時、
矛盾のない新規のION212のVSI602はすべ
て、作成番号を増加して、エクスポートのシステムに対
し利用可能となる。
【0089】演算ノード200がアプリケーションの参
照とVSI602に対するアクセスを有している場合、
演算ノード200は現在の作成番号を局所的にトラック
する。新規のION212がVSI602を公示する
(エクスポートしようとする)時にはいつでも、演算ノ
ード200はVSI602が公示する作成をVSI60
2の局所で記憶された作成番号に対してチェックをす
る。作成番号が一致する場合には、演算ノード200は
作業の前進を許可する。作成番号が矛盾している場合に
は(古いバージョンのVSIがオンライン上に持ち込ま
れた場合等)、演算ノード200は、不許可のメッセー
ジを送信する。VSI602の新規のION212が公
示する作成番号よりも古い番号を有する演算ノード20
0が作業の前進を許可する場合には、VSI602のロ
ーカルバージョンの作成番号をアップデートする。演算
ノード200が再ブートと再ブートの間に作成番号を保
存しないのは、相互接続機構106全体にわたる基本設
計が安定しており、演算ノード200とION212を
含む新規参入者のすべてに対して一貫性検査が行われる
からである。最初の電源投入で、VSI602に対する
ネーム空間の安定性が問題になっていると考えられる、
いくつかの状況が生成されることがある。この問題はI
ON212に最初に電源を入れることによりアドレスさ
れ、演算ノード2の参加が許可される前にION212
に名前の矛盾の解決を続けられるようにする。古いバー
ジョンのVSI602(ディスクドライバ上の古いデー
タと他の退化的な条件)は、作成番号を介して解決され
る。いずれの演算ノード200もVSI602を使用し
ないかぎり、高位の作成番号を有する新規参入者により
指定のVSI602の現在のエクスポターを無効にさせ
ることができる。
【0090】(1)ネームサービス (a)IONネームエクスポート ION212は、独占的に所有する、対応する記憶への
アクセスを可能にするVSI602のワーキングセット
をエクスポートする。ION212によりエクスポート
されたVSIのワーキングセットは、同僚(budd
y)ION(214として図示の、ダイポール226内
部のもう1つのION212)との所有権交渉を介して
動的に確定され、相互接続機構106と通信するすべて
のノード内で大域で固有であるとされる。このセット
は、典型的には、ION212に割り当てられたVSI
602の省略時又はPRIMARYのセットである。
「動的ロードバランシング」のためのVSI移行と、同
僚ION212の障害とI/Oパスの障害とを含む例外
条件とにより、エクスポートされたVSI602のセッ
トがPRIMARYセットと異なる結果になることがあ
る。ワーキングセットが変化して演算ノード200に最
新のVSIコンフィギュレーションを提供するときはい
つでも、VSIのワーキングセットは、同時通信メッセ
ージを介してION212によりエクスポートされる。
演算ノード200はまた、ION212にVSI602
のワーキングセットについて問い合わせる。一旦ION
212がエクスポートされたVSI02に対するオンラ
イン状態を入力する又は再入力すれば、VSI602に
対するI/Oアクセスは、演算ノード200により開始
されることが可能である。前述のように、エクスポート
されたVSI602内に何らかの矛盾がある場合には、
ION212はオンライン状態に入ることを許可されな
いことがある。あるまとまった記憶に対応するVSI6
02は、すべて固有であるのが当然とされるが、複数の
まとまった記憶が同じVSIを有するかもしれないとい
った矛盾(例えば、ION212ハードウェアと対応す
る固有のIDからVSIが構成される場合や、ION2
12がハードウェアが物理的に移動させられた場合等)
が生じる偶然がある。
【0091】一旦ワーキングセットがエクスポートされ
たならば、オンライン状態に入ってエクスポートされた
VSI602に対するI/Oアクセスを可能にする前
に、エクスポートするION212は矛盾チェックタイ
マ(2秒間)を設定する。この矛盾チェックタイマは、
インポーターが矛盾のチェック処理をし、エクスポータ
ーに矛盾を知らせるための十分な時間を与えようと試み
るが、タイマが非常に大きい値で設定されないかぎり、
この時間は保証されない。従って、ION212は、公
式にオンラインになっているすべてのノード(演算ノー
ド200とION212)から明瞭な承認が必要であ
る。オンライン同時通信メッセージは、すべてのノード
により同調して応答が返されて、結果が現れて同時通信
が返される。現れた応答がACK(ackowledg
e(肯定応答))の場合には、ION212が公式にオ
ンライン状態に入る。ION212がオンラインになる
ことが許可されない場合には、VSI602の新規にエ
クスポートされたセットにアクセスできない。NAK
(negative acknowledge(否定応
答))を送信したノードはまた、続いてVSI矛盾メッ
セージをエクスポーターに送信して矛盾を解決する。一
旦、矛盾が解決されれば、ION212は調整されたワ
ーキングセットをエクスポートしてもう一度オンライン
に入ろうとする。
【0092】(b)CNネームインポート 演算ノード200は、すべてのION212からエクス
ポートされたVSI504をインポートする手段をとる
役割がある。一日の作業開始処理中に、演算ノード20
0はオンラインのION212すべてに以前にエクスポ
ートされたVSI602を要求するので、ネーム空間に
関する最新のビューを得ることができる。この点から、
演算ノード200はVSI602エクスポートに注意を
払う。
【0093】VSI602に対応する制御情報は、IO
N212により維持されるvsノードに含まれる。vs
ノードの演算ノード200部分は、アプリケーション2
04に与えられたネームの構築と管理に使用される情報
を含んでいる。vsノード情報は、ユーザのアクセス権
とネームエイリアスを含んでいる。
【0094】(i)ネームドメインとエイリアス VSI602は、代替えネームを提供して対応する記憶
にアクセスする、アプリケーション定義のネームエイリ
アスを有するように構成されることもある。このネーム
エイリアスは、論理的にネームのセットをまとめる仮想
記憶領域に付けられる。ネームエイリアスは、仮想記憶
領域内で固有でなければならない。
【0095】(ii)VSノード 演算ノード200によるvsノードに対する修正は、即
時更新と即時処理をするION212に送信される。次
に、変更をエクスポートしてオンライン状態に再度入る
ことにより、vsノードの変更がION212によりす
べてのノードに伝播される。
【0096】d)記憶ディスク管理 JBOD格納装置222は、いくつかのサービスをディ
スクドライブと格納装置管理アプリケーションに対して
提供するとともに、ディスクドライブに物理環境を提供
する役割がある。かかるサービスのいくつかは、(1)
構成要素障害の通知(電源、ファン等);(2)閾い値
通知(温度と電圧);(3)障害と状態のライトを使用
可能と禁止にする;(4)警報音を使用可能と禁止にす
る;(5)ディスクドライブのデバイスIDを設定する
ことを含む。
【0097】過去、管理アプリケーションは通常、バン
ド外接続を介して格納装置とインターフェースしてい
た。シンプル・ネットワーク・マネジメント・プロトコ
ル(SNMP)の様なプロトコルをともに使用する遠隔
格納装置へのシリアルまたはイーサーネット接続によ
り、格納装置の健康状態に関する状態情報の受信が行わ
れた。本発明では、ディスク格納装置がホスト装置から
物理的に離れているので、格納装置のコンフィギュレー
ション及び状態を別のシリアルパス等の直接接続を介し
て監視することは実用的ではない。余計な配線を避ける
ため、格納装置の状態を監視するためと通常に存在する
ファイバチャネルループを覆う格納装置のコンフィギュ
レーションを制御するために、本発明ではバンド内接続
を用いる。
【0098】バンド内接続では、コンフィギュレーショ
ン状態を照会し制御するSCSIデバイスと、この情報
を格納装置自体と通信するデバイスの機構とに送信され
る、ホストが発信するSCSIコマンドのセットを使用
する。ホストとディスクドライブとの間のプロトコルの
部分は、SCSI−3格納装置サービス(SES)の仕
様書に詳述されており、ここに引用されて取り込まれて
いる。 3つのSCSIコマンドが、SESインターフ
ェースを実行するために使用されている。「INQUI
RY」、「SEND DIAGNOSTIC」及び「R
ECEIVEDIAGNOSTIC RESULTS」
である。「INQUIRY」コマンドは、指定のデバイ
スが、格納装置サービスデバイスなのか又はSESコマ
ンドをある格納装置サービスのプロセスに転送するデバ
イスなのかを指定する。「SEND DIAGNOST
ICS」及び「RECEIVE DIAGNOSTIC
RESULTS」は、各々格納装置エレメントからの状
態情報を制御し、かつ受信するために使用される。
【0099】「SEND DIAGNOSTICS」又
は「RECEIVE DIAGNOSTIC RESU
LTS」コマンドを使用する場合には、ページコードが
指定されなければならない。ページコードが、どんな形
式の状態か又はどんな情報が必要とされるのか指定す
る。「SEND DIAGNOSTICS」又は「RE
CEIVE DIAGNOSTIC RESULTS」
コマンドを介して要求されうる定義されたSESページ
の完全なセットについて、以下の表VIIに詳細に記述
する。太字のアイテムはSESイベントモニタが必要と
する。
【表7】 1を越える最小割り当て長を有する格納装置状態ページ
を要求する「READDIAGNOSTICS REU
SLTS」コマンドを実行することにより、アプリケー
ションクライアントが格納装置を定期的にポーリングす
る。1バイトで復帰する情報は、格納装置の状態を要約
する5ビットを含む。かかるビットの1つが設定される
場合、アプリケーションクライアントがより大きい割当
長を有するコマンドを再発行して完全な状態を得る。
【0100】e)ION格納装置管理 図7は、ION格納装置管理モジュールとION物理デ
ィスクドライバアーキテクチャ500との関係を示す。
2つの構成要素、SESイベントモニタ702とSCC
2+対SESガスケット704によりこのサブシステム
は構成される。SESイベントモニタ702は、接続さ
れた格納装置サービスプロセスのすべてを監視し、状態
変化の場合にはイベント記録サブシステムを介して、そ
のことを報告する役割を有している。これは、必要の場
合には管理サービスレイヤ706に報告できる。SCC
2+対SESガスケット構成要素704は、コンフィギ
ュレーションと保守アプリケーションからのSCC2+
コマンドを変換して、かかるコマンドを格納装置サービ
スプロセスに対する1以上のSESコマンドに変換す
る。これにより、アプリケーションクライアントがJB
ODコンフィギュレーションの詳細を知る必要がなくな
る。
【0101】(1)SESイベントモニタ SESイベントモニタ702は、格納装置222のサー
ビスプロセスの状態変更を管理サービスレイヤ706に
報告を返す。状態情報は、イベント記録サブシステムを
介して報告される。格納装置状態ページを要求する「R
EAD DIAGNOSTICS RESULTS」コ
マンドを実行することにより、SESイベントモニタ7
02は、各格納装置プロセスを定期的にポーリングす
る。「READ DIAGNOSTICS RESUL
TS」コマンドは、ION物理ディスクドライバ500
が行ったように、SCSILibインターフェース51
4を介して送信される。報告されると考えれる状態は、
以下の表VIIIにあげられた状態を含む。
【表8】 SESイベントモニタ702が開始する時には、格納装
置に含まれる各要素402−424の状態を読み取る。
この状態は「現在の状態」である。状態変更が検出され
る場合には、「現在の状態」から変更した各状態は管理
サービスレイヤ706に報告が返される。かかる新規の
状態が、今の「現在の状態」である。例えば、ファンエ
レメントの現在の状態がOKで、現在の状態変更がその
エレメントをファン故障と報告する場合、事象をファン
障害に指定する報告がなされる。現在の別の状態変更が
エレメントがインストールされていないと指定する場合
には、その別の事象についてファンが格納装置から取り
除かれたことを指定する報告がなされる。また別の状態
変更がファンエレメントがOKであると指定する場合に
は、この別の事象についてファンが接続されてきちんと
作動していることを指定する報告がなされる。
【0102】(a)一日の作業開始処理 SESイベントモニタ702は、ION物理ディスクド
ライバ500がうまく初期設定された後、開始される。
開始後、SESイベントモニタ602は、JBODとS
CSIコンフィギュレーションモジュール516を読取
り、ディスクデバイスと格納装置サービスデバイスの相
関とデバイスがどのようにアドレスされるか検索する。
次に、各格納装置状態デバイスを読み取る。そして、す
べてのエラー条件とミッシングエレメントに対して事象
が作成される。かかるステップが完了した後、状態が現
在の「現在の状態」となりポーリングが開始される。
【0103】(2)SCC2+対SESガスケット SCC+は、仮想デバイスと物理デバイスを構成して管
理するION212により使用されるプロトコルであ
る。SCC2+中の「+(プラス)」は、ION212デ
バイスと構成要素の完全な管理能力を可能にさせる追加
を表し、SESに対するSCC2定義コマンドの一貫し
たマッピングを行わせる。サービスレイヤ706は、
「SCC2 MAINTENANCE IN」と「MA
INTENANCE OUT」のコマンドを介してJB
OD格納装置要素にアドレスする。次のセクションで、
構成要素の状態を構成し、制御し、報告する機能を提供
するサービス動作について述べる。かかるコマンドは
皆、「SEND DUIAGNOSTICS」と「RE
CEIVE DIAGNOSTIC RESULTS」
の一連のSCSIコマンドで、ION212で実行され
る。
【0104】構成要素のコンフィギュレーションには、
次のサービス動作を使用して実行する。
【0105】「ADD COMPONENT DEVI
CE」−この「ADD COMPONENT DEVI
CE」コマンドは、システムに構成要素デバイスを構成
し、デバイスのLUNアドレスを定義するために使用さ
れる。このLUNアドレスは、SESコンフィギュレー
ションページの構成要素の位置に基づいて、ION21
2により割り当てられる。LUNアドレスの結果を得る
ためのこのコマンドに続いて、「REPORT COM
PONENT DEVICE」サービス動作を実行す
る。
【0106】「REPOTRT COMPONENT
DEVICE」−この「REPOTRT COMPON
ENT DEVICE」サービス動作は、構成要素デバ
イスのついての完全な状態情報を検索しようとする、ベ
ンダ固有のコマンドである。SESは、各要素形式のた
めに4バイトを提供する。この新規のコマンドが必要と
なるのは、「REPORT STATUS」と「RER
PORT COMPONENT DEVICE」サービ
ス動作が状態情報に1バイトのみを割り当てるからで、
定義された状態は、SESの標準により定義された状態
との矛盾をコード化する。
【0107】「ATTACH COMPONENT D
EVICE」−この「ATTACHCOMPONENT
DEVICE」は、1以上の論理単位が指定の構成要
素デバイスに論理的に接続されていることを要求する。
このコマンドは、ボリュームセットと構成要素デバイス
の間に、ファン、電源等の、ボリュームセットと構成要
素デバイスが従属する理論対応を形成するために使用さ
れる。
【0108】「EXCHANGE COMPONENT
DEBVICE」−この「EXCHANGE COM
PONENT DEBVICE」サービス動作は、ある
構成要素デバイスの別のデバイスとの置換を要求する。
【0109】「REMOVE COMPONENT B
DEVICE」−この「REMOVE PERPHER
AL DEVICE/COMPONENT BDEVI
CE」サービス動作は、周辺デバイス又は構成要素デバ
イスをシステムコンフィギュレーションから取り除くこ
とを要求する。理論単位と接続した構成要素デバイスが
取り除かれた場合、このコマンドは「CHECK CO
NDITION」とともに停止される。「REMOVE
OF LOGICAL UNIT FAILED」の
追加のセンス修飾子とともに、センスキーは、「ILL
EGAL REQUEST」である。
【0110】ある構成要素についての状態及び他の情報
は、次のサービス動作を介して得られる。
【0111】「REPORT COMPONENT S
TATUS」−この「REPORTCOMPONENT
DEVICE STATUS」サービス動作は、構成
要素デバイスについての完全な状態情報を検索しようと
するベンダ固有のコマンドである。SESは、各要素形
式のために4バイトを提供する。
【0112】「REPORT STATUS」と「RE
RPORT COMPONENTDEVICE」サービ
ス動作は、状態情報に1バイトのみを割り当てて、定義
された状態は、SESの標準により定義された状態との
矛盾をコード化する。従って、この新規のコマンドが必
要とされる。
【0113】「REPORT STSATUS」−この
「REPORT STSATUS」サービス動作は、選
択された論理単位についての状態情報を要求する。各論
理単位の1以上の状態に関するリストを復帰する。
【0114】「REPPRT COMPONENT D
EVICE」−この「REPPRTCOMPONENT
DEVICE」サービス動作は、JBOD内部の構成
要素デバイスに関する情報を要求する。LUN記述子順
序の付けられたリストを復帰して、LUNアドレス、構
成要素の形式及び全体の状態を報告する。このコマンド
を、初期コンフィギュレーションプロセスとして使用し
て、ADD COMPONENT DEVICEサービ
ス動作により割り当てられたLUNアドレスを確定す
る。
【0115】「REPPRT COMPONENT D
EVICE ATTACHMENTS」−「REPPR
T COMPONENT DEVICE ATTACH
MENTS」サービス動作は、指定の構成要素デバイス
に接続された理論単位に関する情報を要求する。各々L
UN記述子のリストを含有している、構成要素デバイス
記述子のリストを復帰する。LUN記述子は、対応する
構成要素に接続された各理論単位の形式とLUNアドレ
スを指定する。
【0116】「REPORT COMPONENT D
EVICE IDENTIFIER」−この「REPO
RT COMPONENT DEVICE IDENT
IFIER」サービス動作は、指定された構成要素デバ
イスの位置を要求する。この値は、SET COMPO
NENT DEVICE IDENTIFIERサービ
ス動作により以前に設定されたはずの値である。 構成要素の管理は以下により実行される:「INSTR
UCT COMPONENT DEVICE」−この
「INSTRUCT COMPONENT DEVIC
E」コマンドを使用して電源のオン又はオフ等の制御指
示を構成要素デバイスに送信する。指定のデバイスに適
用される動作は、構成要素の形式及びベンダの指定に基
づいて変わる。
【0117】「BREAK COMPONENT DE
VICE」−この「BREAK COMPONENT
DEVICE」サービス動作は、指定の構成要素を故障
(障害)の状態にする。
【0118】C.相互接続機構 1.概観 本発明の記憶モデルに接続された機構は、より多くのデ
ータ転送を可能にするので、データコピーと割り込み処
理のコストによるI/Oパフォーマンスに関する懸念を
アドレスする。方法を独自に結びつけることによる本発
明でのデータコピー、割り込み及びフロー制御問題につ
いて述べる。多くのネットワークで使用される宛先に基
づくアドレッシングモデルと異なり、本発明は、データ
を機構全体に転送する前に送信側が宛先の目的バファを
選択する、送信側に基づくアドレッシングを使用する。
送信者ベースのモデルにおいては、宛先側は、送信側に
対し、メッセージが送信される前にメッセージを送信で
きる行き先アドレスを転送する。メッセージを送信する
ため、送信側はまず、このリストから宛先バファを選択
する。これは、ターゲット側のアプリケーションが、か
かるバファのアドレスを目的のネットワークハードウェ
アにより使用されるOSにすでに送信しているから可能
なのであって、ネットワークのハードウェアに従って、
十分な情報が与えられるので、DMAオペレーションを
介してコピーなしでデータを直接目的バッファに転送す
ることができる。いくつかの点からは恩恵があるが、送
信者ベースのアドレッシングにはいくつかの問題があ
る。第一に、送信者ベースのアドレッシングは、機構を
越えて宛先から受信者までを含む保護領域を拡張するの
で、全般的な分離の欠如を生成し、データの安全保護と
完全性問題が生じる。純粋な送信側ベースのアドレッシ
ングは送信側に対するメモリアドレスを解放し、高度可
用性のシステムでは大きな問題である、宛先側が送信側
を信頼することを必要とする。例えば、宛先側のノード
が宛先アドレスを送信側に与えた場合について考えてみ
よう。送信側がかかるアドレスのすべてを使用する前
に、宛先側のノードが破損して、再ブートする。送信側
は現在、もはや有効でないアドレスバファのセットを有
している。宛先側は、かかるアドレスを別の目的で使用
しているかもしれない。重要なデータが宛先側で破壊さ
れたかもしれないので、いずれかに送信されたメッセー
ジには重要な成り行きがあるかもしれないといったこと
である。
【0119】第二に、送信側ベースのアドレッシングを
実行するには、ネットワークがデータのダイレクトメモ
リアクセス(DMA:direct memory a
ccess)を開始可能になる前に、ネットワークが協
調してメッセージから宛先アドレスを抽出する必要があ
るが、多くのネットワークのインターフェースは、この
ように操作するためには設計されていない。
【0120】何が必要かというと、送信側ベースのモデ
ルの長所を包含するが問題を回避するアドレッシングモ
デルである。本発明は、BYNETに基づく相互接続機
構を使用する固有の“put it there”(P
IT)プロトコルを用いるハイブリッドアドレッシング
によりこの問題を解決する。
【0121】2.BYNET及びBYNETインターフ
ェース BYNETは、本発明を実行する3つの重要な特性を有
している。
【0122】第一に、BYNETは本質的に拡張性があ
る。追加の接続性又は帯域幅を容易に導入でき、システ
ムのすべてのエンティティに対して即時に利用可能であ
る。これは、接続を追加する結果として、帯域幅の追加
が行えない他のバス志向の相互接続技術と対照的であ
る。他の相互接続と比較した場合、BYNETはファン
アウト(fan−out:1つの機構で利用可能なポー
ト数)という意味で拡張するだけでなく、ファンアウト
とともに拡張する二分帯域幅をも有する。
【0123】第二に、BYNETをソフトウェアにより
向上させ、アクティブメッセージ相互接続にできる。つ
まり、BYNETのユーザ(すなわち、演算資源102
と記憶資源104)の指示の元で、ノードの操作に対す
る最小限の記述でノード間にデータを転送できる。BY
NETは、不必要な割り込みと内部でのデータコピーの
発生とを防止して、DMAを使用して所定のメモリアド
レスに直接データを移動する。この基本的な技術を拡大
して、小さなデータブロックを1つの大きな相互接続メ
ッセージに多重化することにより、かかるブロックの転
送を最適化することが可能である。相互接続使用を最適
化し、かつノードの操作上の効率性の長所を保持しなが
ら、各独立したデータブロックを、DMAベースの技術
を変更したものを使用して処理できる。
【0124】第三に、BYNETを構成して複数の機構
を提供できるのは、“TraficShaping”を
使用して相互接続の最適化をさらに提供できるからであ
る。これは、本質的にBYNETソフトウェアが提供す
る機能であり、ある相互接続チャネル(機構)をある種
類のトラフィックに割り当てて、例えば、頻繁に使用さ
れる共有チャネルで長短メッセージのランダムな結合を
生成するといった妨害を減少できる。トラフィックのシ
ェーピングはBYNETにより可能であり、予測できる
トラフィックパターンなので、ユーザによる選択が可能
である。
【0125】図8は、BYNETとそのホスト側インタ
ーフェース802の図を示す。BYNETホスト側イン
ターフェース802は、回線が作成されるときにはいつ
でも「チャネルプログラム」を実行するプロセッサ80
4を含む。チャネルプログラムを、送信側インターフェ
ース806と宛先側インターフェース808との両側で
プロセッサ804により実行する。送信側インターフェ
ース806は、回線の作成、データの転送及び回線の究
極の遮断を制御する、ダウンコールに作成されたチャネ
ルプログラムを実行する。宛先側インターフェース80
8のハードウェアは、チャネルプログラムを実行してデ
ータを宛先側に転送して回線を完了する。
【0126】BYNETは、ネットワーク内でプロセッ
サとして動作する、演算ノード200とION212を
相互接続するネットワークを含む。BYNETは、入出
力ポート814を有する複数のスイッチノード810を
含む。スイッチノード810は、bがスイッチノードの
入出力ポートの全体数で、Nがネットワークの入出力ポ
ート816であって、引数xよりも小さい最小の整数を
与えるg(x)が上限の機能である、g(logN)
個のスイッチノードステージ812より多く配置され
る。スイッチノード810は従って、ネットワーク入力
ポート816及びネットワーク出力ポート816のいず
れにも複数のパスをを提供して、障害耐性を向上させ
て、回線争奪を減少させる。BYNETはまた、ネット
ワークの最も高位のスイッチノードステージに沿って、
バウンスバックプレーン818にネットワーク全体にメ
ッセージ転送を指示する複数のバウンスバックポイント
を含む。バウンスバックポイントは、受信プロセッサへ
のメッセージを管理するスイッチノード810からネッ
トワークを介してバランスメッセージをロードするスイ
ッチノード810の間に、論理的に区別をたてる。
【0127】演算ノード200とION212等のノー
ド内で実行するプロセッサを、独立した定義済のサブセ
ットのプロセッサを含む、1以上のスーパークラスタに
区画できる。プロセッサ間の通信をポイント・ツー・ポ
イント又はマルチキャストにできる。異なるスーパーク
ラスタ内のマルチキャストコマンドを、同時に発生する
ことができる。送信プロセッサは、順方向チャネルを介
してすべてのプロセッサ又はプロセッサ群に伝達するマ
ルチキャストコマンドを転送する。マルチキャストメッ
セージは、スーパークラスタ内のプロセッサに対する次
のルーティングのため、ネットワークのバウンスバック
ポイント818内の指定のバウンスバックポイントに向
けられる。これにより、ネットワークのデッドロックを
防ぐことができるのは、一回にただ1つのマルチキャス
トメッセージを指定のバウンスバックポイントを通過さ
せ、かつ異なるスーパークラスタに対するマルチキャス
トメッセージが次々に妨害しないようにさせるからであ
る。マルチキャストメッセージを受信するプロセッサ
は、バックチャネルを介して、例えば現在の状態を転送
することにより応答する。BYNETは、種々の方法で
応答を組み合わせるよう機能できる。
【0128】BYNETは現在、バンド内メッセージと
バンド外メッセージの2つの形式のメッセージをサポー
トする。BYNETバンド内メッセージは、メッセージ
を宛先側ホストのメモリのカーネルバッファ(又はバッ
ファ)に転送し、回線を完了して、アップコール割り込
みを通知する。BYNETバンド外メッセージととも
に、回線メッセージのヘッダデータがBYNETドライ
バ内で割込みハンドラを生じさせ、受信される残余の回
線データ処理に使用されるチャネルプログラムを作成す
る。両方の形式のメッセージのため、チャネルプログラ
ムの成功又は失敗を、BYNETバックチャネル上の小
型のメッセージを介して送信側に戻す。このバックチャ
ネルメッセージを、送信側のチャネルプログラムにより
回線遮断オペレーションの一部として処理する。(バッ
クチャネルは、BYNET回線内の低帯域幅の復帰パス
である。)回線が遮断された後、アップコール割り込み
を(任意選択で)宛先側に通知して新規メッセージ到着
の信号を送る。
【0129】送信側が、まず始めに作成されて次に実行
されるチャネルプログラムを待っているので、BYNE
Tバンド外メッセージの使用は任意選択のコンフィギュ
レーションではない。BYNETバンド内メッセージ
は、送信側がアプリケーションバッファを直接目的にし
てデータコピーを要求しないようにさせる。この問題を
解決するため、本発明は、BYNETハードウェアを独
自の方法で使用する。インターフェースがデータを処理
しなければならないチャネルプログラムを作成させる代
わりに、宛先側インターフェース808に、送信側イン
ターフェース806側で送信側と宛先側の両方のチャネ
ルプログラム作成することである。
【0130】送信側チャネルプログラムは、宛先側が実
行する非常に小さなチャネルプログラムをメッセージの
一部として転送する。このチャネルプログラムには、宛
先側がデータを目的のアプリケーションスレッドの指定
の宛先バッファにどのように転送するかが記述されてい
る。送信側がこのメッセージが転送される宛先スレッド
を知っているので、この技術により、送信側がいかにメ
ッセージを転送し、かつどこにメッセージを転送するか
をともに可能にして、宛先側での従来のアップコール処
理の後遺症の多くを回避できる。BYNETメッセージ
のこの形式は有向バンドメッセージと呼ばれる。プロセ
ス間通信モデル(データと、宛先側でメッセージを処理
するために使用される小型のメッセージ処理ルーチンを
含む)であるアクティブメッセージで使用される活動状
態のメッセージと異なり、本発明はBYNET有向バン
ドメッセージを使用する。BYNET I/Oプロセッ
サは単純なチャネルプログラムを実行するが、活動状態
のメッセージとともにホストCPUは通常アクティブメ
ッセージハンドラを実行する。
【0131】バックチャネルの使用により、送信側イン
ターフェースに、メッセージ転送完了の信号を送る従来
の方法を抑制させることができる。バンド外メッセージ
はバンド指示メッセージの両方であるため、送信側での
成功完了表示は、メッセージが宛先側メモリに確実に転
送されたことが示されるだけである。
【0132】これにより、宛先側ノードのメモリ空間へ
のメッセージの確実な転送が保証されるが、宛先側のア
プリケーションによるメッセージの処理を保証するもの
ではない。例えば、宛先側ノードが、機能メモリシステ
ムを有しているが、メッセージがさらに処理されないよ
うにする宛先側アプリケーションスレッドに障害がある
というようなことである。本発明において、メッセージ
の確実なプロセッシングを処理するために、いくつかの
方法を個別に使用してメッセージプロセッシング内の障
害の検出と修正との両方を行本発明の通信プロトコルに
おいては、タイムアウトを送信側での紛失したメッセー
ジの検出に使用する。必要に応じて再転送が発生し、ソ
フトウェア又はハードウェアの障害が検出される場合に
は、リカバリ操作のきっかけとなることがある。
【0133】有向バンドメッセージをも有するので、本
発明は、宛先側の指定の目的に対するメッセージ転送を
可能にし、かつ送信側に十分なデータを与える機構に、
メッセージを正しい目的のアプリケーションスレッドバ
ッファに送信させねばならない。本発明により、チケッ
トベースの認証方法でこの偉業を達成できる。チケット
とは、偽造が不可能で、ホルダにに権利を与えるデータ
ストラクチャである。本質において、チケットとは、あ
る資源を使用する一回限りの許可又は権利である。本発
明では、ION212がチケット分配を介して演算ノー
ド200に対するサービスの分配を制御できる。また、
チケットは、送信側ベースのフロー制御モデルを実行す
るために必要な要件である、特定の目的を指定する。
【0134】D.“Put It There”(PI
T)プロトコル 1.概観 PITプロトコルは、チケットベースの認証方法であっ
て、BYNET有向バンドメッセージプロトコルを使用
して、チケットとペイロード(payload)をアク
ティブメッセージ内に転送することである。PITプロ
トコルは、チケットベースの認証、送信側ベースのアド
レッシング、借方/貸方(debit/credit)
フロー制御、ゼロメモリコピー及びアクティブメッセー
ジを独自に組み合わせたものである。
【0135】2.PITメッセージ 図9は、PITメッセージすなわちパケット901の基
本的な特徴を示している。ペイロードデータ904に続
いてPITヘッダ902を含む。PITヘッダ902
は、目的のデータバッファに抽出を表して、指定サイズ
の目的のバッファに対するアクセス権を表す期間限定の
チケットである、PITID906を含む。PITID
906を有するエレメントは、このバファを使用する権
利を有するエレメントであって、PITバッファが使用
される時にはPITID906を放棄しなけらばならな
い。宛先側がPITメッセージを受け取る場合には、P
ITヘッダ内のPITID906は、ペイロードをDM
A操作を介して転送する、BYNETハードウェアに対
する目的のバッファを指定する。
【0136】PITプロトコルのもとでのフロー制御
は、送信側ベースのアドレッシングを使用する借方/貸
方モデルである。PITメッセージが送信される場合に
は、送信側に対するフロー制御の貸方と宛先側に対する
フロー制御の借方を表示する。言い換えれば、デバイス
がPITID906をスレッドに送る場合、アドレス空
間内でPITバッファをスレッドの貸方に記入する。デ
バイスがPITID906をその送信側に戻す場合、デ
バイスはその権利を放棄するか、又はPITID906
により指定されたバッファを解放するかのいずれかを行
う。デバイスがメッセージをPITID906により抽
出された宛先側バッファに送信する場合、デバイスはま
た、PITバッファに対する権利を放棄する。デバイス
がPITID906を受け取る場合、PITID906
は送信側のアドレス空間でPITバッファの貸方である
(PITID906がデバイスの戻されるPITID9
06出ないかぎり)。
【0137】ヘッダ902の一番上は、パケット901
を処理するBYNETチャネルプログラム908(送信
側と宛先側)である。次はPIT貸方フィールド910
と借方フィールド912の、IDチケットを転送する2
つのフィールドである。借方フィールド912は、ペイ
ロードデータをチャネルプログラムを介して宛先側ネッ
トワークインターフェースにより転送するPITID9
06を含む。借方フィールドと呼ばれるのは、PITI
D906が送信アプリケーションスレッドの借方(宛先
側では貸方)であるからである。貸方フィールド910
は、送信スレッドが宛先側スレッドに対するPITバッ
ファを転送する、すなわち借方に記入する場所である。
貸方フィールド910は通常、PITID906を保持
し、送信スレッドが戻りのメッセージを送信されると予
想する場所である。借方PITをこのように使用するこ
とは、SASE(self−addressed st
amped emvelope)PITとも呼ばれる。
コマンドフィールド914は、目的がペイロードデータ
904で実行する操作(例えば、ディスク読取り又は書
き出しコマンド)を記述する。アーギュメントフィール
ド916は、コマンド(例えば、読取り又は書き出し操
作を実行するディスク上のディスク及びブロック番号)
に関するデータである。
【0138】シーケンス番号918は、資源と宛先側ノ
ードのペア各々に固有である、単調に増加する整数であ
る。(ノードの各ペアは、各方向に対し1つのシーケン
ス番号を有している。)長さフィールド922は、PI
Tメッセージのプロセッシングを変更する種々のフラグ
を含む。一例は、重複メッセージフラグである。これを
予想される紛失メッセージの再転送に使用して2回のプ
ロセッシングを防止する。
【0139】システムがまず開始すると、ノードは、他
のノードいずれに対してもPITID906を有してい
ない。PIT1次オープンプロトコルが完了するまで、
BYNETソフトウェアドライバが有向バンドメッセー
ジの転送を防止する。ION212に位置するいずれか
の仮想ディスクデバイスに対し演算ノード200のアプ
リケーションスレッドが1次オープンを行う時に、PI
TID906の分配を開始する。1次オープンの間、I
ON212と演算ノード200は、オペレーティングパ
ラメータを交換する交渉ステージに入る。1次オープン
プロトコルは、PITID906の交換である。インタ
ーフェースサポートが送信側でDMAを収集し、宛先側
でDMAを分散するので、PITID906は、2以上
ののバッファをポイントできる。アプリケーションは、
PITID906を別のノードのどんなアプリケーショ
ンに対して自由に分配できる。
【0140】演算ノード200とION212の間で交
換されるPITバッファのサイズと数は、同調自在の値
である。借方と貸方のPITID906(借方フィール
ド912と貸方フィールド916)の交換は、本システ
ムのフロー制御モデルの基礎を形成する。送信側は、貸
方のPITID906と同じ数だけのメッセージを宛先
側に送信できる。各ノードが各自のPITID906プ
ールを有しているので、各送信側は、多くとも送信側に
割り当てられたPITID906を消費するだけである
という点で、これにより公平さを確実にする。
【0141】ION212は、演算ノード200に発行
されたPITチケットのプールを制御する。演算ノード
200に対するPITID906の初期割り当ては、1
次オープンプロトコル中に発生する。分配されるPIT
ID906の数は、同時にION212とION212
内の記憶資源とを使用する、並行活動中の演算ノード2
00の推定数に基づいている。今の数は単なる推定数な
ので、PITプールのサイズもまた、ION212によ
り操作中に動的に調節可能である。PIT資源の再分配
は、複数の演算ノード200からの要求をこなすことで
公平さを確実にするために必要である。
【0142】活動中の演算ノード200へのPITの再
割り当ては、次のように進められる。活動中の演算ノー
ド212は、常にI/Oを要求するので、完了したI/
OメッセージのPIT貸方のフローを制御することによ
りPIT資源を演算ノード212に再分配する。適切な
レベルに達するまでは、PIT貸方を、ION212の
完了(演算ノード200のPITプールを減少させるこ
と)とともに送信しない。
【0143】PIT割り当てをすでに有している演算ノ
ード200にさらに困難な状況が与えられているが、演
算ノード200は非活動状態である(かつ資源を結合し
ている)という場合には、ION212がメッセージを
送信して各休止中の演算ノード200に対するPIT
(又はPIT IDのリスト)を無効にできる。休止中
の演算ノード200が応答しない場合には、ION21
2がかかるノードに対するPIT IDをすべて無効に
して他の演算ノード200にPIT IDを再分配でき
る。休止中の演算ノード200が再分配されたPITを
使おうとする場合、その演算ノード200は1次オープ
ンプロトコルに強制的に戻される。
【0144】演算ノード200に対するPIT割り当て
を増やすことで、以下の説明が達成される。PIT割り
当てメッセージを使用して、新規に割り当てられたPI
TIDを演算ノードのどれにでも送信できる。代替えの
技術ならば、各I/O完了メッセージ内の2以上のPI
T貸方を送信できるであろう。
【0145】3.動作中のPITプロトコル−ディスク
の読取り及び書き出し PITプロトコルについて説明するため、演算ノード2
00の、ION212からの記憶ディスク224の読取
りオペレーション要求について述べる。ここで、1次オ
ープンがすでに発生して、演算ノード200とION2
12の両方に十分な数の解放のPITバッファがあると
する。アプリケーションスレッドは読取りシステム・コ
ールを実行して、ディスクデータを演算ノード高位SC
SIドライバ(CNシステムドライバ)に転送する場所
である、バッファのアドレスを渡す。CNシステムドラ
イバは、要求(仮想ディスクネーム、ブロック番号及び
データ長を含む)を含有するPITパケットを作成す
る。CNディスクドライバの上半分を、借方/貸方PI
T IDフィールド910、912で満たす。借方PI
Tフィールド912は、読取り要求が送られる宛先側I
ON212のPITID906である。これは読取り要
求なので、ION212はI/O完了パケットを作成す
る時にアプリケーションのバッファ(読取りシステムコ
ールの一部として提供される)を指定する方法が必要と
なる。PITパケットは送信側ベースのアドレッシング
なので、ION212は、PITID906を有してい
る場合にはアプリケーションバッファのアドレスのみが
できる。アプリケーションバッファは、通常のPITプ
ールではないので、このバッファはメモリに置かれてバ
ッファに対しPITID906が作成される。読取り要
求はまた、ディスクオペレーションから復帰状態を必要
とするので、PITの分散バッファを作成して復帰状態
を含む。このSASE PITは、読取りPITパケッ
トの一部として貸方フィールドに送信される。PITパ
ケットは、出力待ち行列に配置される。BYNETイン
ターフェース802がPITパケットを送信する場合に
は、DMA操作を介して送信側からパケットを移動し、
パケットを相互接続機構106を越えて転送する。宛先
側BYNETインターフェース808で、PITパケッ
トが到着した時にパケットがBYNETチャネルプロセ
ッサ804によるPITチャネルプログラムの実行を誘
発する。ホスト側インターフェース802内部のBYN
ETチャネルプロセッサ804は、借方PITID90
6を抽出してION212のエンドポイントを突き止め
る。チャネルプログラムはバッファアドレスを抽出して
インターフェースエンジンをプログラムして、ぺイロー
ドデータをPITバッファへ直接移動して、従ってPI
Tプロトコルにゼロデータコピー意味を提供させること
ができる。BYNETインターフェース802は、IO
N212の受信アプリケーションに対して割り込みを通
知する。演算ノード200に割り込みは発生しない。バ
ックチャネルメッセージが転送の失敗を示す場合には、
失敗の理由に基づいて、I/Oを再試行する。何回か試
行した後、ION212のエラー状態が入力され(本明
細書に記載のION212リカバーとフェールオーバー
オペレーションの詳細を参照のこと)、演算ノード20
0はこの要求をダイポール内の同僚ION214に処理
させようと試みる。メッセージが宛先側ノードメモリに
確実に転送された場合には、ホスト側は次に再転送タイ
ムアウト(I/Oサービスタイムの最悪のケースより長
い)を設定してION212がそのメッセージをうまく
処理することを確実にする。このタイマが過ぎた場合に
は、PITメッセージを演算ノードによりION212
に再送信する。I/Oがまだ処理中である場合には、重
複の要求は中止されるか、さもなければ最新の要求が正
常に処理される。任意の選択として、プロトコルはま
た、最新要求に対する明瞭な肯定応答を必要とし、期限
切れタイマをリセットしてアプリケーションに対するI
/O障害の後遺症を回避する。
【0146】図10は、ION212の機能モジュール
のブロック図である。ION212と214への入力
は、データライン1002と1004、及び制御ライン
1006である。ION212の各モジュールは、制御
ライン1006と通信している制御モジュール1008
を含む。制御モジュール1008は、データライン10
02からのコマンドを受け入れて、モジュール制御機能
を提供する。システム機能モジュール1010は、本件
記載のION機能を実行する。ION212と214
は、機構モジュール1020、キャッシュモジュール1
014,データ復元モジュール1016及び記憶モジュ
ール1018を含む。かかるモジュールは各々、制御モ
ジュール、データを挿入してデータライン1002と1
004からデータを探索するワークロードインジェクタ
1020、データの通過を禁止するデータフェンス10
22から成る。
【0147】PIT読取り要求がION212に送信さ
れた後、その要求はIONキャッシュモジュール101
4のワークロードインジェクタに転送される。ワークロ
ードインジェクタは要求をIONキャッシュモジュール
1014に挿入する。IONキャッシュモジュール10
14は、データのバッファをキャッシュされた、又は割
り当てられた場合にはデータを直接復帰して、データを
ION記憶モジュール1018に渡す。ION記憶シス
テムモジュール1018は、この要求を1(又はそれ以
上)の物理ディスク要求に変換して、この要求を適切な
ディスクドライバ224に送信する。ディスク読取り操
作が完了する場合、ディスクコントローラは割り込みを
通知してディスク読取り完了の信号を送る。借方PIT
ID(借方フィールド912に記憶されている)は、読
取り要求(アプリケーションが設置されたディスクデー
タを必要とする所である)内のSASEPITからの借
方PITID(借方フィールド910に記憶されてい
る)である。借方PITIDは、演算ノード200がこ
の要求を送信する同じPITIDであるか、バッファが
解放でない場合には置き換えのPITIDかである。こ
の貸方PITは、演算ノードにさらに要求(最新のPI
T要求は完了したばかりなので、ION212に対する
この演算ノード200の待ち行列深度を1だけ増やす)
を送信する貸方を付ける。ION212がPIT処理後
にPIT貸方を復帰しない理由が3つある。第一は、I
ON212が、演算ノード200からの待ち行列に入れ
られた未処理の要求数を減らそうとしたいからである。
第二に、ION212が、PIT貸方を別の演算ノード
200に再分配したいからである。第三の理由は、単一
のPITパケット内に密閉された複数の要求があると考
えられるからである。コマンドフィールド914は、読
取り完了メッセージで、引数はディスクドライバ読取り
操作からの復帰コードである。このPITパケットを次
に、BYNETインターフェース702に対する待ち行
列に入れて演算ノード200に返信する。BYNETハ
ードウェアは次に、このPITパケットをDMAを介し
て演算ノード200に移動する。これがきっかけとなっ
て、演算ノード200BYNETチャネルプログラムが
借方PITID912を抽出して、DMAに目的のPI
Tバッファ(この場合では、アプリケーションの設置さ
れたバッファ)を開始させる前に借方PITID912
を無効にする。DMAが完了すると、演算ノードBYN
ETハードウェアは割り込みを誘発して、ディスク読取
りが完了したアプリケーションを表示する。ION21
2で、BYNETドライバはキャッシュシステムに対す
るバッファを復帰する。
【0148】書込み要求に対して実行された操作は、読
取り操作に対して実行された操作と同様である。アプリ
ケーションが演算ノードの高位ドライバを呼び出し、デ
ータ、仮想ディスクネーム、ディスクブロック番号及び
データ長を含むアドレスを渡す。演算ノードの高位ドラ
イバは、宛先側ION212のPITID906を選択
して、このデータを使用してPIT書き出し要求を作成
する。SASEPITは、ION212からの書き出し
操作の復帰状態のみを含むものである。ION212で
は、PITパケットが到着した時に割り込みを通知す
る。
【0149】この要求を、PIT読取り操作と同様に処
理する。書込み要求を、最終的にデスクにデータを書き
込むキャッシュルーチンに渡す。ディスク書込みが完了
する(又はデータがION212と214両方のキャッ
シュ内に安全に記憶される)と、I/O完了メッセージ
を演算ノード200に返信する。ION212が書込み
キャッシュ割り込み可能で実行中である場合、要求が送
られたION212ではなく、ダイポール内のもう1つ
のION214がI/O完了メッセージを復帰する。こ
れについては、バミューダトライアングルプロトコル
(BermudaTriangle Protoco
l)でさらに説明する。
【0150】4.古いPITIDと障害リカバリの問題 1次オープン中のPITIDの交換は、ハードウェア又
はソフトウェアの障害により作成された古いPITID
906を無効にするメカニズムである。ION212と
演算ノード200がPITIDを交換した後I/O21
2が突然故障するという状況を考えてみよう。PITI
D906は無効にされないかぎりメモリに設置された目
的のバッファを表し、再ブートされたばかりのION2
12か演算ノード200のいずれかの未処理のPITI
D906が、PITIDがもはや有効でない、すなわち
古いために、ソフトウェアの保全性に重大な問題を引き
起こす。BYNETハードウェアと有向バンドメッセー
ジサポートが古いPITID906を無効にするために
不可欠なメカニズムを提供する。
【0151】1次オープンプロトコルの終了時に、送信
側と宛先側各々で演算ノード高位SCSIドライバにP
ITID906が分配されるホストのリストを与えなけ
ればならない。別々に開始されるが、ホストは演算ノー
ド高位SCSIドライバにPITパケットを受け取るホ
ストのリストをあたえる。この表により、有向バンドメ
ッセージが互いに送信されるION212の組み合わせ
を指定する。(この表はまた、一方方向のPITメッセ
ージフローも指定できる。)演算ノード高位ドライバは
ホストに関する表を(このドライバ専用のデータとし
て)BYNETコンフィギュレーションプロセスの一部
として、内部に保存する。ホストの追加は可能で、演算
ノード高位ドライバに単純な通知メッセージを出してい
つでもPITプロトコルによるリストから抽出すること
もできる。ノードが故障する、遮断する、又は応答しな
くなる場合には、BYNETハードウェアがこれを検出
して機構上の他のすべてのノードに通知する。各ノード
のBYNETホストドライバがこの通知に応答して有向
バンドホスト表からこのホストに対する参照をすべて抹
消する。この動作により、ホストが他のホストの分配す
るすべてのPITID906を無効にする。これが、以
前に分配されたPITID906からノードを保護する
要点である。このホストの演算ノード高位ドライバを構
成して初めて、BYNETがこのホストに送信されるメ
ッセージをすべて無効にする。1次再コンフィギュレー
ション後であっても、局所のPITプロトコルにより通
知されるまでは、BYNETは、有向バンドメッセージ
が新規に再スタートした、すなわち再構成されたホスト
に送信されないようにする。PITプロトコルが他の1
次オープンプロトコルを介して正常に初期設定されるま
で、これにより、古いPITパケットの転送を防ぐ。
【0152】ホストが有向バンドメッセージを無効のホ
ストに送信しようとする場合には、(新規の無効のPI
TID906)送信側演算ノード高位ドライバは送信側
に対しエラー条件であるメッセージを拒絶する。この拒
絶は、2つのノード間で呼び出される1次オープンハン
ドシェイキングのきっかけとなる。1次オープンハンド
シェイキングの完了の後、いまだに未処理であるION
212に対するI/O操作(演算ノード200から見
て)はどれもリセットされる。
【0153】しかしながら、これがウォーム再スタート
でければ、ION212は長時間ダウンするので、未処
理のI/Oオペレーションはどれも、フェールオーバー
プロセッシングの一部として再スタートしてダイポール
のもう1つのION212に送信されていたはずであ
る。(詳細は、ION障害処理のセクションを参照のこ
と。)破損したノードが演算ノード200である場合に
は、1次オープンをすでに終了した演算ノード200へ
の予期しない1次オープン要求がION212へ到着し
て、PITIDリカバリ操作をトリガする。ION21
2は、演算ノード200への貸方であるPITID90
6をすべて無効にする。(又は本当のところは単に古い
PITID906を再発行するだけと考えられる)。か
かる演算ノード200への未処理のI/Oオペレーショ
ンの完了が許可される(ノードの再スタートの時間が極
端に短くないかぎり考えられないことであるが)。SA
SEPITが古い(かつI/O要求を発行したアプリケ
ーションスレッドがもはや存在しない)場合には、完了
メッセージは取り下げられねばならない。
【0154】5.スーパーPIT(SPIT)−小型の
I/Oパフォーマンスの向上 PITプロトコルは通常のSCSIコマンドに対し利点
がある。本発明の核心は、通信ネットワークであって、
記憶ネットワークではない。システムはネットワークプ
ロトコルを使用して、記憶モデルが持つパフォーマンス
を向上させる。アップコール処理のオーバヘッドのプロ
セッシングは、小型のI/O要求が支配するワークロー
ドに対するパフォーマンスの限界を表す。小型のI/O
パフォーマンスを向上させるアプローチがいくつかあ
る。あるアプローチは、割り込み処理コードのパス長を
向上させることである。二つ目は、デバイスドライバで
用いられている技術と似たような技術を使用して、複数
割り込みの方向づけを割り込みハンドラの単一呼出に変
えることである。三つ目は、独立したI/Oオペレーシ
ョンを減少して単一の要求にまとめることである。入力
データと出力データを再包括するノードは、資源の異な
る磁気テープ装置(MTU:magnetictape
unit)の大きさに基づいて流れ、宛先側の物理リ
ンクはデータを収集する傾向がある。この問題は、送信
側と宛先側のネットワーク間の速度の不一致により悪化
する(特に宛先側ネットワークが遅い場合)。その結果
として、ルータ外を流れるトラフィックがバーストす
る。かかるノードは、宛先側からのフロー制御を受けや
すい。これは、データコンボイング(data con
voying)と呼ばれる。
【0155】本発明は、ION212と演算ノード20
0の両方でアップコール作成割り込み数を減少させる技
術として、データコンボイを利用する。説明のため、I
ON212から演算ノード200へのデータフローにつ
いて考えてみよう。本発明で使用されるフロー制御のた
めの借方/貸方モデルにおいて、I/O要求は演算ノー
ド200とION212の両方で待ち行列に入る。キュ
ーイングは、ION212に記憶されたPITパケット
で開始し、待ち行列が消費された場合には、演算ノード
200に復帰し並び続ける。これは、オーバフロー条件
と呼ばれる。通常、オーバーフローは、ノードが、自分
が有するPITバッファ貸方数以上に要求を有している
場合に発生する。I/Oが完了するごとに、ION21
2は完了メッセージを演算ノード200に返信する。普
通は、この完了メッセージは解放されたばかりのPIT
バッファの貸方を含んでいる。これが借方/貸方フロー
制御の基礎である。システムがI/O要求であふれる場
合には、各I/O完了はION212で新規のI/O要
求と直ちに置換される。従って、負荷が大きい期間で
は、I/O要求はION212へ一回に1つ流れて、不
特定の期間ION212で待ち行列に入る。かかる要求
は各々、アップコール割り込みを作成して、ION21
2の負荷を増加させる。
【0156】かかる二重の待ち行列モデルは多くの利点
を有している。演算ノード212に割り当てられたPI
Tバッファの数は注意を要する交換である。ION21
2に対して局所で待ち行列に入った十分なワークロード
があるので、要求が完了した場合には、新規の作業を速
やかに出すことができる。しかしながら、キャッシュシ
ステムに割り当てられた場合には、ION212の待ち
行列の要求により消費されるメモリ資源を上手に利用す
る。ION212のPIT待ち行列が短いままでメモリ
を保存する場合、ION212がアイドル状態になって
演算ノード200から送られる作業を待たねばならない
場合には、パフォーマンスは悪くなることがある。
【0157】スーパーPITとは、アップコール割り込
みの数を減少させるため、高負荷での借方/貸方システ
ムのフロー制御を利用するよう設計されているPITプ
ロトコルの特徴である。スーパーPITは、直結テスト
実施プログラム(OLPT:online test
executive program)と比較的小型の
I/Oの割合が大きい似たような作業負荷のパフォーマ
ンスを向上させる。一回につき1つの要求を送信する代
わりに、スーパーPITパケットは、単一で、より大型
のスーパーPIT要求に転送されたI/O要求すべてが
収集されたものである。各スーパーPITパケットは、
通常のPITバッファと同じ方法で転送される。スーパ
ーPITパケット内に入れられた個々のI/O要求は次
に抽出されて、ION212資源が利用可能になったと
きにPITワークロードインジェクタにより通常のIO
N212待ち行列メカニズムに挿入される。個々のI/
O要求は読取り又は書込み要求である。
【0158】PITワークロードインジェクタは、IO
N212へ転送されたアプリケーション要求のローカル
プロキシ(ION212で)として作用する。PITワ
ークロードインジェクタはまた、後のセクションで説明
されるRT−PIT及びFRAG−PITプロトコルで
使用される。スーパーPITパケットは個々の要求を消
費して、資源は演算ノードに対して解放され、別のPI
Tパケットを送ってこれと置換できる。1ホスト当たり
に許容されるスーパーPITパケットの数は、1次オー
プン交渉の際に確定される。明らかに、ION212で
待ち行列に入っている作業量は、別のスーパーPITパ
ケットを転送できるまでにION212が作業を継続す
るのに十分な量であるはずである。
【0159】演算ノード200がION212に十分な
作業を待ち行列に入れて演算ノードのPIT貸方を消費
し、要求を局所で待ち行列に入れるという状況を考察す
る。スーパーPIT要求内で待ち行列に入っている要求
の数は、スーパーPITが転送されるバッファの大きさ
までしか跳ね上がらない。スーパーPITパケットは、
通常のPITパケットとは異なる操作を行う。本発明の
制御モデルにおいて、宛先側に貸方を有している場合
は、デバイスはある要求(借方)の送信を行えるだけで
ある。デバイスがION212内部の指定のアプリケー
ションスレッドを目的としていないので、デバイスが使
用する特定のPITパケットは特に関係はない。ION
212に対するPITパケットは単にバッファの利用
(副作用としてのフロー制御)を調整するだけである。
対照的に、PIT要求内のSASEPITは異なってい
る。SASE PITIDは、演算ノード212内のあ
る独立したスレッドのアドレス空間を表している。スー
パーPIT内の各要求はSASE PITを含んでいる
が、完了を表すI/Oの場合には、作成されたI/O完
了メッセージは貸方PITを含まない。スーパーPIT
がすべての要求を消費し終わった場合のみ、そのアドレ
ス空間の貸方PITが発行される。
【0160】1つの演算ノード200で発生するスーパ
ーPITの作成について、次のように説明する。演算ノ
ード200内で待ち行列ができている1つのION21
2に対し少なくとも2つのI/O要求があるときにはい
つでも、スーパーPITを作成できる。その演算ノード
200に対するスーパーPITの限界は、ION212
ですでに達せられている場合には、スーパーPITID
が演算ノード200に戻されるまで、演算ノード200
は要求を待ち行列に入れ続ける。演算ノード200は次
に、別のスーパーPITメッセージを発行する。システ
ムドライバ内で再びキューイングが始まり、1ION当
たりの待ち行列が必要となってスーパーPITパケット
を作成する。
【0161】上述のように、大量の小型のI/O要求で
占められている作業負荷のもとで、スーパーPITメッ
セージはION212のプロセッシング負荷を減少する
ことができる。平均メッセージサイズが増えるので、ス
ーパーPITメッセージは宛先側ノードのパフォーマン
スを向上させ、相互接続106のユーティライゼーショ
ンを向上させる。しかしながら、スーパーPITメッセ
ージのコンセプトをION212に応用して小型のI/
O作業負荷が作成する演算ノード200の負荷を減少す
ることもできる。スーパーPITメッセージをION2
12に作成することは、スーパーPITメッセージを演
算ノード200に作成することとは非常に異なる問題で
ある。演算ノードで、I/O要求を作成するアプリケー
ションスレッドは、ION212が圧倒されないように
防止するフロー制御を受けやすい。
【0162】ディスクサブシステムのサービス率は、残
余のION212より相当低く、常にION212パフ
ォーマンスの究極の限界となる。ION212が待ち行
列を作り終いには要求をサービスする十分な資源を有す
るまで、要求はシステムに入ることをブロックされる。
資源の枯渇は演算ノード200では問題ではない。演算
ノード200のアプリケーションがシステムにI/O要
求をする場合、要求の一部として含まれているものは、
I/O(アプリケーションスレッドバッファ)を完了す
るために必要な演算ノード200のメモリ資源である。
各I/O完了メッセージをION212は演算ノード2
00に送信する必要があるので、各I/O完了メッセー
ジはすでに割り当てられたPITID(SASE PI
TID)を有している。ION212から見て、I/O
完了メッセージはすでに割り当てられた目的のバッファ
を有しているので、データの用意ができればすぐに充填
が行える。I/O完了メッセージは一旦転送されれば成
功である(ION212は、演算ノード側のディスク記
憶システムのサービス時間を待つ必要はない)。従っ
て、ION212は、演算ノードからのフロー制御圧の
ためブロックできない。スーパーPITメッセージを作
成するため、演算ノード200は、ION212が持た
ないオプションである、フロー制御キューイングを利用
した。ION212は、BYNETにアクセスる場合を
除いて、待たねばならない資源を持っていないので、ス
ーパーPITメッセージを作成する機会は非常に少な
い。
【0163】ION212でスーパーPITメッセージ
を作成するためのアプローチを、いくつか用いる。ある
アプローチは、I/O完了メッセージを若干遅延させて
スーパーPITパケットを作成する機会を増加させる。
若干の遅延の後、メッセージは通常のPITメッセージ
として送信される。本技術に伴う問題は、スーパーPI
T作成のために要求を遅延する時間がわずかでもあれ
ば、要求サービス時間全体で対応する増加があることで
ある。実作用は演算ノード200の負荷を軽減すること
であるが、また、アプリケーションを遅くすることがあ
る。適応できる遅延時間があれば、有益である(演算ノ
ード200に対する平均のサービス速度と指定の要求に
より蓄積されたトータルのサービス時間に依存する)。
二番目のアプローチは、最初のアプローチを若干変更し
たものである。演算ノード200が各ION212に、
計算ノード側で増加する小型I/O速度として増加する
遅延時間を供給することが必要となる。要点は、必要の
場合には、指定のION212のスーパーPITメッセ
ージを作成するためのウインドウを増加することであ
る。三番目のアプローチは、キャッシュにより直接サー
ビスされるが、記憶装置224のデスク操作待ちの必要
がない小型の読取り又は書込み等の、特定の形式のトラ
フィックを遅延させることである。キャッシュは、ある
パーセンテージに対するディスクトラフィックを回避す
ることにより平均のI/O待ち時間を減少するが、待ち
時間の分配をキャッシュのヒットにより変更する。キャ
ッシュのヒット要求に対する小型の待ち行列遅延時間
は、デスク操作を含めた時間と比較して、サービス時間
における大きな増加にはならない。サービス時間分配の
影響を受けやすいかかるアプリケーション(一定した応
答時間がパフォーマンスに重要である)にとって、IO
N212でスーパーPITパケットを作成するための小
さな遅延は、システム全体のパフォーマンスを向上させ
るための可能性を有している。
【0164】6.大型のブロックサポートとフラグメン
トになったPITパケット データベースアプリケーションのパフォーマンス必要要
件は、データベースの大きさとは無関係である。データ
ベースの大きさが増大すると、ディスク記憶を調べる速
度もまた比例して増加して、アプリケーションパフォー
マンスの侵食を防止しなければならない。別の言い方を
するなら、利用者のデータベースの大きさが増大して
も、応答時間は任意の照会に対して一定のままでなけれ
ばならない。かかる要件を満たすことの難しさは、ディ
スクドライブ技術の現在の傾向と直接衝突することであ
る。ディスクドライブの性能は向上しているが、ディス
クドライブのランダムI/Oパフォーマンスは一定のま
まである。かかる傾向を軽減するためのあるアプローチ
は、ディスクドライブが増大させる能力として、ディス
クI/O操作の平均サイズを増大することである。記憶
装置の性能とパフォーマンスの要件における現在の傾向
に基づいて、24KBの平均I/Oサイズを非常に近い
将来128KBまで増大できる。さらに積極的なキャッ
シングとディレイドタイム技術により、多くの作業負荷
に有益であることが証明されると考えられる。ディスク
ドライブの調和のとれない技術発達は、ドライバのみが
I/O要求サイズの増大に後れを取っている訳ではな
く、BLOBS(binay large objec
t bad situation)を伴うデータベース
が普及し始めるにつれて、1MB以上に達するサイズの
対象物が当たり前になってきている。特定の原因に関わ
らず、サイズがシステムがディスク記憶の経済面を追い
続ける大型のI/O対象物をサポートする必要があるこ
とが求められている。
【0165】PITプロトコルを使用するION212
と演算ノード200間での大型のデータ対象物の転送に
関する問題がいくつかある。ここに記載されているよう
に、PITプロトコルの長所は、フロー制御とエンドポ
イント位置の問題をアドレスする宛先側バッファを事前
に割り当てることである。しかしながら、アップコール
意味論もまた、メッセージを預ける十分なバッファ空間
の識別(又は割り当て)を必要とする。PITプロトコ
ルは、各メッセージが受信側に預けられる所である目的
のPITID906を送信側に選択させることにより、
この問題をアドレスする。メッセージのサイズが利用可
能なプールから指定のPITID906を選択する基準
になるので、大型のI/O書込みは、プロトコルを明ら
かにに複雑にする。重い負荷がかかっている間は、送信
側が利用可能なPITID906貸方を有しているが、
大型のI/O要求が必要とするバッファサイズの要件に
あわないという状況が潜在的にある。PITプロトコル
では、送信されるデータのサイズが大きい集団である場
合には、送信側は、受信側を使ってPITバッファの数
とサイズの両方を管理しなければならない。このこと
は、PITバッファ割り当てサイズの問題を生起する。
すなわち、PITバッファのプールを作成すると、所定
の作業負荷のもとでは、PITバッファのプールに対す
るバッファサイズの適切な分配とは何かと問い、BYN
ETソフトウェアが書込みに加えて大型のI/O読取り
を完了させる追加の最大転送単位(MTU:maxim
um transfer unit)の限度を課す。B
YNET MTUを越えるI/O要求(読取りと書込み
ともに)を、送信側でソフトウェアプロトコルにより断
片化して宛先側で再組立しなければならない。これは、
メモリの断片化の問題を生起する。手短にいえば、内部
断片化が割り当てられたバッファ内の利用されない空間
である。外部断片化は、小さすぎてどんな要求も満足さ
せない割り当てバッファの外部の利用されない空間であ
る。解決の1つは、大型のPITバッファの一部のみを
使用することであるが、大型のPITバッファを使用す
る場合、このことが不必要な内部断片化の原因になるだ
ろうと考えられる。大形のPITバッファは、コスト又
はパフォーマンスの悪化につながるメモリを浪費させ
る。
【0166】本発明では、BYNET MTUとPIT
バッファサイズ割り当ての問題を、RT−PIT(往復
PIT)とFRAG−PIT(断片化PIT)の、2つ
の形式のPITメッセージをさらに追加することで解決
する。FRAG−PITとRT−PITはともに、PI
Tデータプッシュモデルの代わりにデータプルモデルを
使用する。(データをプッシュするためには、送信側が
宛先側に対してデータをプッシュする。データを引くた
めには、宛先側がデータを資源から引く。)FRAG−
PITメッセージ大形のデータ読取りをサポートするた
めに設計されているが、RT−PITメッセージは大型
データの書込みをサポートする。FRAG−PITとR
T−PITはともに、ION PITワークロードイン
ジェクタを使用してデータオフローを管理するのでスー
パーPITと類似している。
【0167】a)RT−PITメッセージ 演算ノード200がION212に対して大型のディス
ク書込み操作を実行しようとする場合で、かつI/O書
込みのサイズはBYNET MTUと利用可能なION
212PITバッファのいずれよりも大きい場合には、
演算ノード200はRT−PIT作成メッセージを作成
する。RT−PITメッセージは2つの段階で操作す
る。ブースト段階と、続く往復段階である。ブースト段
階では、書き込まれるデータの資源バッファリストに
は、演算ノード200のPITIDが割り当てられる。
資源バッファの断片化サイズは、BYNET MTU
と、ION1次オープンプロトコル中に指定されるサイ
ズの制約により確定される。このPITIDのリストは
(対応するバッファサイズとともに)、単一のRT−P
IT要求メッセージのぺイロードに置かれて宛先側IO
N212のPIT貸方になる。追加のPITバッファを
演算ノードプールから割り当てて、RT−PITプロト
コルが直接使用する。この追加バッファのPITIDを
PITヘッダの貸方フィールドに置く。残余のRT−P
IT要求は、通常のPIT書込みメッセージと同じであ
る。演算ノード200は次に、このRT−PIT要求メ
ッセージをION212に送信(ブースト)する。IO
N212では、PITワークロードインジェクタがRT
−PIT要求メッセージを2段階で処理する。各資源側
PITID906に対し、ワークロードインジェクタは
サイズが合うIONキャッシュからPITバッファを要
求する。(IONバッファキャッシュで利用可能なメモ
リ空間に依存して、これはすべて一斉に、又は一回ごと
に行えることに注意。)PITバッファと一致させるこ
とにより、ION212は資源を動的に割り当てて書込
み要求と一致させる。通常のPIT転送の変更したシー
ケンスを使用してI/Oの進行が行える。RT−PIT
要求メッセージのプロセッシングは往復段階に入り、ワ
ークロードインジェクタが、資源と宛先側PITIDの
一致するペア1つ(又はそれ以上)に対するRT−PI
T開始メッセージを作成する。(1つ又は一致のPIT
IDのサブセットを送信するという任意選択はION2
12の判断による。)1つのRT−PIT開始メッセー
ジ内のPITID906の数が、ION212内のデー
タ転送の細分性を制御する(以下で説明される)。この
RT−PIT開始メッセージを演算ノード200に返信
して、RT−PITメッセージのブースト段階は終了す
る。RT−PIT開始メッセージの受信と同時に、演算
ノード200は、通常のPIT書込みメッセージを使用
して一回に1つのPITのペアで、データをION21
2に転送する。演算ノード200とION212がとも
に無くなったフラグメントを処理するのに十分なデータ
を有しているので、演算ノード200によりフラグメン
トを順序立てて送信する必要はない(一致のPITペア
が再組立された順序を指定する)。ION212がPI
T書込みメッセージをを受け取ると、この書込み要求が
より大型のRT−PITI/O操作の一部であると認識
するワークロードインジェクタに通知される。ワークロ
ードインジェクタは、フラグメントをキャッシュルーチ
ンに送り書込み操作を開始させるか、書込み開始の前に
最後のフラグメントを転送を待つかの、PIT書込みを
処理する2つの任意選択を有している。I/Oを早く開
始することによりキャッシュルーチンにデータフローを
ディスクドライバにパイプライン輸送させることもでき
るが(書込みキャッシュポリシーに依存する)、小型の
I/Oサイズであるためパフォーマンス低下の危険を侵
す。しかしながら、すべてのフラグメントが届くまでI
/Oを保留することは、キャッシュシステムに必要以上
の負担をかけることがある。フラグメント全部のサイズ
と数とが最初からわかっているので、現在の操作条件下
で大型のI/O要求を最適化する必要のあるデータはす
べてキャッシュシステムにより作成される。演算ノード
200側では、各PIT書込み操作転送の成功が、1つ
のRT−PIT開始メッセージ内に複数のフラグメント
が充填された時に始められる、次のフラグメント書込み
を開始させる。RT−PIT開始コマンドの最後のフラ
グメントを受信した時、要求インジェクタは、通常の書
込み要求のと類似のデータを処理するキャッシュシステ
ムにデータを送る。データが無事の場合には、I/O完
了メッセージをキャッシュシステムにより作成して、演
算ノード200に返送してこの位相での処理の完了信号
を出す(RT−PIT開始操作のため)。フラグメント
がさらに残っている場合には、別のRT−PIT開始コ
マンドを作成して演算ノードに送ってすべてのフラグメ
ントが処理されるまで上述のサイクルが繰り返される。
ワークロードインジェクタとキャッシュが最後のフラグ
メントのプロセッシングを完了すると、最終のI/O完
了メッセージを状態とともに演算ノードに戻してRT?
boIT要求のすべてのプロセッシングの終了を同調す
る。
【0168】RT−PITメッセージを、BYNETに
ある変更を加えて最適化できる。ION212がRT−
PIT要求を受信したばかりの状況を考察してみる。I
ON212のワークロードインジェクタ演算ノードのバ
ッファをION212と一致させて大型のI/O要求を
たくさんの通常の書込み要求に変換しているところであ
る。中間RT−PIT開始コマンドを介して同調を実行
する。しかしながら、BYNETが受信チャネルプログ
ラムにデータプルを実行させる場合、RT−PIT開始
コマンドを演算ノードに送信する中間ステップが削除さ
れる。考察のため、我々はBYNET操作のこのモード
をループバンド(loop bnd)メッセージと呼
ぶ。ループバンドメッセージは実は2つの有向バンドメ
ッセージで、1つがもう1つに入れ子になっている。実
施形態により、ワークロードインジェクタがRT−PI
T要求受信した場合、演算ノードに第二のOIT書込み
メッセージを作成する必要のあるデータを含むRT−P
IT開始メッセージを作成することにより各フラグメン
トを処理する。RT−PIT開始メッセージは、フラグ
メントに対するPIT書込み操作のテンプレートを演算
ノード200に転送する。演算ノード200で実行され
るチャネルプログラム(RT−PIT開始メッセージと
ともに送信されたもの)は、計算ノードBYNETドラ
イバの送信待ち行列にぺイロードを預ける。ペイロード
は、初期RT−PIT要求を作成したアプリケーション
スレッドからの待機要求のように見える。このペイロー
ドは、PIT IDのペア、資源及び宛先を使用して、
ワークロードインジェクタにより送られたこのフラグメ
ントへのPIT書込み要求を作成する。PIT書込み
は、ION212にフラグメントを預け、フラグメント
の到着をワークロードインジェクタに通知する。ワーク
ロードインジェクタは、すべて処理されるまで各フラグ
メントにこのサイクルを続行する。ループバンドメッセ
ージのパフォーマンスの向上は、割り込みと各RT−P
IT開始メッセージが必要とする演算ノードプロセッシ
ングを除いたものに由来する。
【0169】FRAG−PITメッセージは、演算ノー
ドからの大型のI/O読取り要求操作をサポートするた
めに設計されている。アプリケーションが大型のI/O
読取り要求を作成する場合、演算ノードは目的バッファ
をピン留めして各フラグメントの目的バッファを表すP
ITIDのリストを作成する。各PITIDは、そのフ
ラグメントの目的バッファと対応の状態バッファからな
る分散リストを記述する。データが送信された時に状態
バッファをアップデートし、各フラグメントが処理され
た際に演算ノードに確定させる。RT−PITメッセー
ジと同じアルゴリズム(上のRT−PITの項を参照)
を使用して、各フラグメントのサイズを確定する。かか
るフィールドを集めてFRAG−PITを作成する。
【0170】演算ノード200は、FRAG−PIT要
求をワークロードインジェクタがFRAG−PIT要求
を処理するところであるION212に送信する。この
要求に含まれているものは、仮想ディスクネーム、開始
ブロック番号及びION212のデータ資源のデータ長
である。ワークロードインジェクタは、RT−PIT要
求と同様の方法でFRAG−PIT要求を操作する。F
RAG−PIT要求内の各フラグメントを、キャッシュ
システムと共同して別々のPIY読取り要求として処理
する。利用可能な場合には、ディスクデータをワークロ
ードインジェクタに戻して、キャッシュシステムは、各
要求を別々に処理するか、それとも単一の読取り要求と
して処理するかを選択できる。データフラグメントをキ
ャッシュにより(別々にか又は単一のI/O操作の一部
として)供給する場合、大型読取り要求のデータは演算
ノードに戻り始める。キャッシュがデータを利用可能に
した各フラグメントのため、ワークロードインジェクタ
は、FRAG−PIT一部完了メッセージ内のこのデー
タを演算ノードに送り返す。FRAG−PIT一部完了
メッセージが、自身が転送された時に演算ノードに割り
込みを作成しないという点を除いて、通常のPIT読取
り要求完了と同様に、各FRAG−PIT一部完了メッ
セージはデータを転送する。最後の完了フラグメントを
FRAG−PIT完全完了メッセージとともに演算ノー
ドに復帰させる。FRAG−PIT完全完了は、FRA
G−PIT完全完了が割り込み(完全アップコール)を
介してFRAG−PIT読取り要求全部が完了したこと
の信号を出す点で、一部完了メッセージと異なってい
る。
【0171】7.他のネットワークデバイス上でのPI
Tプロトコルの実行 記憶装置と接続しているネットワークに対する前述のア
プローチのパフォーマンスの大部分は、PITプロトコ
ルをサポートする相互接続機構106の能力よるもので
ある。BYNETの場合、PITプロトコルに大変よく
合う低位インターフェースを作成した。ファイバチャネ
ル等の他のネットワークインターフェースも同様に、P
ITプロトコルをサポートする能力がある。
【0172】E.バミューダトライアングルプロトコル 本発明は、IONクリーク226とライトバックキャッ
シングを介して、データとI/O冗長を提供する。IO
Nクリーク226は、複数のIONを含む(典型的に
は、主ION212と同僚ION214から成るION
212とION214等のペアで、すなわちダイポール
で配置される)。
【0173】同僚ION214は、主ION212変更
キャッシュページのコピーの一時格納装置として働くの
で、データとI/O冗長を提供する。I/O226(ペ
アのIONすなわちダイポールとして図示)内の各IO
N212は、ボリュームセットのある群に対する主IO
N212と、別の群に対する同僚ION214として機
能する。
【0174】高い可用性とライトバックキャッシングを
提供するため、書込みがアプリケーションに承認される
前に、データを少なくとも2個所で安全に格納しなけれ
ばならない。書込みは承認されたが永久記憶装置に記憶
される前に記憶制御装置が故障した場合、この冗長コピ
ーを用意できないと、データの紛失を導く。
【0175】しかしながら、ION212と214は物
理的に別々のコンピュータから成っているので、相互接
続機構106にわたる通信には、かかるバックアップコ
ピーを保全する必要がある。最適なシステムパフォーマ
ンスのため、ライトバックキャッシングを利用するとは
いえ、BYNET転送と書込みプロトコルに対応する割
り込みの数は最小限にする必要がある。
【0176】ダイポール226におけるディスク224
に対するデータを書き込むための可能なプロトコルと
は、主ION212と同僚ION214とに対する演算
ノード200の書込みを別々に行い、ION212と2
14の両方から書込み要求に対する応答を受信するまで
待ち、次に主ION212が、そのページのコピーをも
う保存する必要がないと指示するパージ要求を同僚IO
N214に送ることである。「送信完了」割り込みを送
信側で抑制すると仮定すれば、送信された各メッセージ
が演算ノード200又はION212と214に割り込
みを作成するので、このプロトコルには、少なくとも5
つの割り込みが必要である。
【0177】もう一つの可能なアプロトコルは、ION
212が書込み要求を同僚ION214に送信し、応答
を待ち、演算ノード200に応答受領を返信することで
ある。このプロトコルもまた、同様に少なくとも5つの
割り込みが必要である。第一の割り込みは、演算ノード
200が書込み要求を主ION212に転送するときに
発生する。第二の割り込みは、主ION212がデータ
を同僚ION214に転送するときに発生する。第三の
割り込みは、同僚ION214がデータの受領を知らせ
るときに発生する。第四の割り込みは、主ION212
が演算ノード200に応答するときに発生して、最後の
割り込みは、データが無事にディスクに転送された後、
主ION212がパージ要求を同僚ION214に送信
するときに発生する。
【0178】図11は、書込み要求の処理に必要な割り
込み数を最小限にする、本発明で使用されたプロトコル
を示す。本プロトコルは、バミューダトライアングルプ
ロトコルと称される。
【0179】まず、演算ノード200が、書込み要求を
主ION212に発行する。2番目に、主ION212
がデータを同僚ION214に送る。3番目に、同僚I
ON214が受領を演算ノード200に送る。最後に、
データが無事ディスクに着いたときに主ION212が
パージ要求を同僚ION214に送る。上述の4つのス
テップは、全部で4つの割り込みが必要である。割り込
みをさらに減らすために、パージ要求(図11のステッ
プ4)を遅延して、ステップ2の後の書込みのデータ転
送と結合して3回割り込みプロトコルをもたらす。本プ
ロトコルの追加の長所は、書込み要求を受け取る際に同
僚ION214が故障する場合、主ION212がライ
トスルーモードで要求を処理し、データがディスクに無
事届けば書込み受領を知らせる。演算ノード200は、
同僚ION214の状態を知る必要はない。
【0180】バミューダトライアングルプロトコルは、
データの可用性を維持しながら、従来のプロトコルより
少ない数の割り込みを用いてライトバックキャッシング
を可能にする。これが可能なのは、同僚ION214
が、主ION212に送られた書込み要求の受領通知を
実行するからである。現在のパイプライン化されたプロ
セッサでは割り込みプロセッシングは費用がかかるとす
れば、各種の分散型記憶システムアーキテクチャで使用
できる本プロトコルは、全体のシステムオーバーヘッド
を減らし、パフォーマンスを向上させる。
【0181】F.演算ノード 1.概観 演算ノード200は、ユーザアプリケーション204を
実行する。先行技術のシステムにおいては、多くの専用
の共有SCSIバスを使用して、クラスタ又はクリーク
内のノードに対する等しい記憶アクセスを可能にしてい
る。本発明では、記憶を、1以上の通信機構106を介
して演算ノード200に接続する。この「ネットワーク
接続記憶」は、演算ノード200全体に分散されたユー
ザアプリケーション204のプロセス間連絡(IPC:
inter−process communicati
on)を有する通信機構106を共有する。ユーザアプ
リケーション204からの記憶要求を、機構/記憶イン
ターフェースによりION212に位置する記憶管理ア
プリケーションに対するIPCメッセージの中にカプセ
ル化する。記憶ノードのかかる専用アプリケーションは
IPCメッセージをローカルキャッシュ又はディスクI
/O操作に変換して、要求があれば結果を演算ノード2
00に返信する。ユーザアプリケーション204にとっ
て、ネットワーク接続記憶とローカル接続記憶は区別不
可能である。
【0182】仮想ディスクブロックへの読取りと書込み
要求は、相互接続機構106を介してION212へ到
着する。要求を、演算ノードでの資源開始選択を介して
指定のION212に送ることがある。各演算ノード2
00は、どのION212がシステム内の各機構の仮想
ディスクへの要求を受け入れるかわかっている。機構の
仮想ディスクは、固有の記憶エクステントを表示する仮
想ディスクモデルを反映しているが、この記憶エクステ
ントはネーム内の物理ディスクの物理位置を暗示しない
し、コード化もしない。
【0183】各演算ノード200は、IONダイポール
226に対する機構の仮想ディスクネームをマップする
リストを維持している。このリストを演算ノード200
とION212との協調を介して動的に作成される。パ
ワーアップと障害リカバリ操作中に、ダイポール226
内のION212は、ION212間の仮想(及び物
理)ディスクを区画し、ION212により所有される
仮想ディスクのリストを作成する。ダイポール226内
のもう一つのION214(仮想ディスクも記憶資源も
持たない)が、障害がある場合には仮想ディスクに対す
る代替えパスを提供する。
【0184】このリストを、他のダイポール226すべ
てと演算ノード200に対する相互接続機構106全体
にわたって定期的にエクスポート又は通知する。演算ノ
ード200はこのデータを使用して、システムの各仮想
ディスクに対する1次及び2次パスのマスター表を作成
する。演算ノード200内の相互接続機構ドライバは次
に、ダイポール226と協調してI/O要求を転送す
る。ダイポール226はこの「自己発見(self d
iscovery)」技術を使用して、ダイポール22
6を稼働中のシステムに加えて、そして取り外す際に発
生することが考えられる仮想ディスクネーミングの不一
致を検出して修正する。
【0185】演算ノード200上で実行中のアプリケー
ションは、演算ノード200にエクスポートされた各機
構の仮想ディスクに対するローカルディスクのようなブ
ロックインターフェースモデルを認識する。始めの方で
記載したように、演算ノード200は、ブート時に各機
構の仮想ディスクに対するエントリポイントを作成し
て、演算ノード200とION212巻に確立されたネ
ーミングプロトコルを使用してかかるエントリポイント
を動的にアップデートとする。
【0186】G.サーバ管理 1.概観 本発明の重要な特徴は、管理であって、システムマネジ
メント又はシステムアドミニストレーションと称される
全体的な管理のサブセットである。利用可能な記憶空間
内のデータエンティティの配置と同様、記憶関連のハー
ドウェアソフトウェア構成要素をかかる機能を介して実
行する。管理動作を管理者により開始できるか、又はシ
ステムで何らかの事象が発生すると直ちに動的に呼び出
すことができる。管理コマンドを入力してほとんど直ち
に受信されるが、信号の結果、単純なコマンドがかなり
の期間大多数のシステム構成要素に対して簡単に影響を
与えることがある。例えば、あるION212から別の
IONへのボリュームセットの移動に何分も、あるいは
何時間もかかって完了して、主体のファイルシステムの
使用を望む複数のION212と演算ノード200が影
響を受けることである。サーバ管理はまた、システムの
ハードウェアとソフトウェアの状態に関する有益なメッ
セージや警告メッセージを有する管理者を提供する役割
がある。
【0187】管理者は、主にスクリーンディスプレイ
「ビュー」を介してシステムについて感知する。システ
ム全体に関するいくつかのビューを示す。主要なビュー
は階層ビューで、一番上にシステム内のすべての演算ノ
ード200、ION212及び機構106が示される。
ドリルダウン技術により、目的アイテムのより詳細なデ
ィスプレイが可能になる。大抵のシステムは大きいの
で、サイズと複雑さを単一のディスプレイページに表現
できない。グラフィカルなビューは、物理(地理的)ビュ
ーでも論理ビューでもどちらも表現する。個々のエンテ
ィティ又はエンティティのグループを、さらに詳細な表
示と管理のために選択でき、要求の結果をユーザ選択フ
ォーマットで表示できる。表による提示方法も備えてい
るので、個別にも、またグループでもこのビューで表示
して管理できる。本管理の重要な特徴は、特定の演算ノ
ード212からデータを包含する物理記憶ディスクまで
のデータの特定の部分のパスの提示である。このパスを
表形式で提示してその障害許容力表示する。すなわち、
データが利用不能になる前に独立した構成要素の障害が
いくつ発生するか、である。
【0188】2.ボリュームセットの作成 ボリュームセット(VS)の作成して、アプリケーショ
ン204をホスト演算ノード200が使用するフリー空
間に割り当てる。ボリュームセットはION212内に
基底があり、ネーム(ここで記載のVSI602)、サ
イズ及びRAID(redundant array
of inexpensive disks)データ保
護レベルを有する。システムアドミニストレータは要件
に基づいたVSを作成し、位置と冗長性特性を指定する
こともある。複数のVSをグループ操作で作成する。
【0189】図12は、指定のVS作成インターフェー
スウィンドウ1100の1実施形態のスナップショット
である。すべてのION212のディスクすべてを単一
の空間として表示する場合、システムアドミニストレー
タは、この単一空間のプールからの割り当て空間につい
てここに記載の自動機能を用いることにより、このイン
ターフェースを使用してボリュームセットを作成でき
る。この場合、アドミニストレータは、ボリュームセッ
トのサイズとRAIDを選択するだけでよい。かかるパ
ラメータの指定がない場合、デフォルトを使用する。
【0190】指定のVS作成ユーザインターフェース
は、VSネームを表示するVSIネームウィンドウと、
VSサイズを表示するVSIダウンボックス1106を
有するVSI特性ウインドウ部1102を含む。VS作
成ユーザインターフェースはまた、ラジオボタンのた
め、システムアドミニストレータはサポートRAIDレ
ベルを選択できるVSI RAIDレベルウインドウ部
1108を含む。OKボタン1112はシステムアドミ
ニストレータが選択したデータを入力して、VS作成ユ
ーザインターフェースウインドウ1110を閉じる。デ
ータを要求の度にION212へ送ってボリュームセッ
トを作成する。一旦VSを作成すると、ION212
は、選択の操作完了を示すことにより応答する。ネー
ム、位置、内部識別番号、何らかのエラーメッセージ及
びユーザに関連するデータを表示して、結果をディスプ
レイできる。キャンセルボタン1114は、VS作成ユ
ーザインターフェースウインドウ1110をなんら変更
せずに閉じ、ヘルプボタン1116は別のウインドウを
開いて必要の場合にはヘルプを提供する。拡張機能は、
拡張ボタン1118を介してアクセスできる。
【0191】図13は、1実施形態、拡張VS作成イン
ターフェースウインドウ1200のスナップショットで
ある。このインターフェースを使用して、ユーザは指定
のION212のボリュームセットとディスクとを設定
してパフォーマンスを最適化できる。拡張VS作成イン
ターフェースウインドウ1200は、インポートVSI
特性ダウンボックス1202を含み、ユーザがシステム
に存在するすべてのボリュームセットの名前と特性を見
ることができる。この機能用に得られたデータは、すべ
てのION212にシステム内のボリュームセットの名
前と特性を照会することにより得られる。拡張VS作成
インターフェースウインドウ1200はまた、アドミニ
ストレータに同じ名前を有する多数のボリュームセット
を作成させるグループ操作ウインドウ部1204と、可
変VSIレイアウトボタン1205を含む。この操作が
完了する前に、必要があれば操作を完了するに十分な仮
想ディスク(vディスク)があることを、システムは保
証する。VS作成が実行中の時に複数の操作が進行中で
ある場合、適切なロッキングと結果報告を実行して、進
行中の操作により操作を行えないようにしたことと、か
つ(補正機能への単純な通知から)応答手段がとられた
ことを表示する。拡張VS作成インターフェースウイン
ドウ1200はまた、読取りキャッシングオプション部
1208と書込みキャッシングオプション部1216を
含むキャッシュオプション部1206を備えている。読
取りキャッシングオプション部1208は、シーケンス
またはキャッシュ最適化を指定するラジオボタン121
0と、キャッシングオプション(図12で後入れ先出し
を示す)を指定するダウンボックス1212と、リード
アヘッド量を示すダウンボックス1214とを含む。書
込みキャッシングオプション部1216は、シーケンス
又はランダム最適化を指定するラジオボタン1218
と、キャッシング方法を指定するダウンボックスを含
む。書込み及び読取りキャッシングに対し、キャッシン
グ機能をIONソフトウェアで確定して、ION212
から照会する。
【0192】拡張VS作成インターフェースウインドウ
はまた、指定のION212内に仮想ディスクエンティ
ティを設定させる位置情報部1222も備えている。位
置情報部1222はIONとIONの特性を指定するI
ON位置ダウンボックス1226を備えている。図示の
実施形態において、ION特性はIONネーム、ION
212内の現在利用されているパーセントと残余のパー
セントを示すIONディスク空間のパーセントを含む。
一連のラジオボタン1224で選択して、このリストを
低下順又は増大順に多数の異なるION特性を表示でき
る。利用情報及び自由空間情報を得るすべてのION2
12の分類された照会を介して、かかる選択の提示を達
成できる。ユーザが所望の場合には、VSを作成する指
定の物理ディスクを選択できる。ボタン1228によ
り、このサービスにアクセスできる。ボタン1230は
上述の情報を入力して、ION212に適切な要求を転
送して、図12で述べたように情報を復帰する。
【0193】図14は、詳細なVS作成ユーザインター
フェースウインドウ1300の1実施形態のスナップシ
ョットである。このウインドウは、利用可能な空間と自
由空間の最大連続ブロックをリストした、該当するIO
N212のビジュアル・プレゼンテーションを示す。F
C−1ループ1304とFC−2ループ1306の物理
ディスク1308(図中で001−040と標識され
る)への接続も表示する。各物理ディスクへの特性の利
用を、凡例1312を含む利用部に表示する。物理ディ
スク1308の画像表示は、選択過程で有益な情報を示
す凡例1312により変わる。図示の実施形態におい
て、凡例は、色又はシェーディングにより物理ディスク
の利用を表示する。ラジオボタン1314は、空間、パ
フォーマンス、最良適合、キャッシング又はかかる測定
を組み合わせた特性利用をディスプレイするかどうか選
択できる。
【0194】アドミニストレータは、ディスクを選択し
て、データウインドウ1316を見てそのディスクの現
在の使用を確定する。図示の実施形態において、データ
ウインドウ1316は、VSIと関連サイズ、利用可能
空間とION1302との関係を表示する。アドミニス
トレータは、適切な内蔵インジケータボックス1318
をディスク上でドラッグすること又は網選択部1320
の網選択ボタンの1つを選択して内蔵インジケータをそ
のディスクまで移動することにより、そのディスクを選
択できる。これを、特定のRAID実行(4つの網ディ
スクと1つのパリティを必要とする、RAID5を例に
示す。)のためのすべてのレベルで達成すると、VSが
構成される。
【0195】図15は、変形のVSIインターフェース
ウインドウ1400の1実施形態を示す。このVSIイ
ンターフェースウインドウ1400は、ユーザが可変V
Sイレイアウトボタン1205を選択した際に現れ、作
成VSIボタン1406を選択することにより、拡張V
S作成インターフェースウインドウ1200を再選択で
きる。インポートVSIボタン1402は、すべてのI
ON212にVSの名前と特性を照会してVSIリスト
ボックスに表示する。ユーザは、リストボックス140
6に表示されているものを選択してAIDラジオボタン
1408に状態を読取ることにより、かかるVSI特性
を見ることができ、あるいはVSIネームをVSイネー
ムボックス1410に入力してRAIDレベルをRAI
Dラジオボタン1408から、VSIサイズダウンボッ
クスからサイズを選択して、入力ボタン1414を選択
してVSIを作成することもできる。図13に図示のか
かるエレメントについて述べた同じ技術を使用して、キ
ャッシュオプション、位置情報及び位置情報を、図示の
適切なウインドウにより選択できる。
【0196】図16は、本発明の1実施形態を実行する
ために使用された操作を描いたフローチャートである。
本プロセスは、1502をION212に照会して、各
ION212内の利用可能な記憶空間ブロックを確定す
ることから始まる。ION212をまた、所望の場合は
ダイポール226として照会することもできる。次に、
利用可能な記憶空間ブロックの識別と記憶空間ブロック
サイズを表示する照会から検索した情報を、1504で
ディスプレイする。次に、最大の記憶空間ブロック以下
のボリュームセットネームとボリュームセットサイズ
を、1506で受け付ける。そして、情報を1508で
走査して、利用可能な記憶ブロックの記憶ブロックサイ
ズが選択のボリュームセットサイズと等しいか確定す
る。利用可能な記憶ブロックのサイズが選択のボリュー
ムセットサイズと等しい場合は、ブロック1510はこ
の論理を、選択のボリュームセットサイズと等しいサイ
ズの記憶空間ブロックを選択する、ブロック1512に
送る。そうでない場合は、パフォーマンスデータを、1
514で選択のボリュームセットサイズより大きいサイ
ズの利用可能な記憶空間ブロックを得て、このデータを
使用して、1516でボリュームセットに対する記憶空
間ブロックを選択する。
【0197】図17は、本発明の1実施形態において、
利用可能な記憶に対するION212の照会を実行する
走査を表すフローチャートである。まず、アドミニスト
レータからメッセージをI/Oノード212に送信する
(1602)。任意選択として、このメッセージはデジ
タル署名を含むので、I/Oノードは、システムアドミ
ニストレータがこのメッセージの要求により情報を閲覧
する権利があることを認識する。次に、I/O212
は、署名を認証する(1604)。署名がリクエスタ
(ここでは、システムアドミニストレータ)にデータの
受け取りを許可すると、I/Oノード内の利用可能な記
憶空間ブロックを記述する情報を受け取る(160
6)。
【0198】H.ボリュームセット所有権交渉 I/Oパス障害は、VSI602が主ION212から
も同僚ION214からもアクセス不能を引き起こすこ
とがある。従って、ION212が所有するVSIのワ
ーキングセットセットを、かかるI/O障害の場合には
変更できるとすることは有利である。各ION212、
214は、VSI602の1次セットのとVSI602
の2次セットを有しており、ION212はVSI60
2の1次セットを直接引き受けて、ノード又はパス障害
の際にはVSI602の2次セットを引き受ける。これ
を達成するため、IONの2次セット内にあるアクセス
不能のVSIを、同僚ION214で「ライトスルー」
とマークする。ION1次セット内のアクセス不能のV
SIを、同僚ION214に移行してアクセスのために
利用可能な対応の記憶を作成する。資源を移行する方法
の一つは、完全移行を使用することである。この場合、
I/Oパス障害を、ION212の障害として処理し、
VSIの完全な1次セットを同僚ION214に移行す
る。これにより簡単に解決するが、発生したことが皆、
パス障害であった場合(ノード障害ではなく)は、停止
したIONのプロセッシングとI/O電源を本質的に失
うという欠点もある。さらに悪い場合は二重のI/Oパ
ス障害で、各IONの1次I/Oパス上の障害が、ダイ
ポール内のVSI602すべてをアクセス不能にする。
【0199】この問題をる防止するため、本発明は、主
ION212がこのVSI602にアクセスできない場
合には、個々のVSI602を同僚ION214に移行
させる、VSI602の部分移行を使用する。従って、
ダイポール226内のION212又は214のいずれ
かがアクセスできる間は、VSI602はアクセス可能
のままになっている。
【0200】VSIの部分移行をサポートするため、ダ
イポール226内のIONは、エクスポートできるVS
Iのワーキングセット(IONが管理を要求する)を調
整する。この協調はまた、使用中のVSIをより負荷の
少ないIONに移行することにより、IONの動的なロ
ードバランシングを可能にする。
【0201】各ION212は、エクスポートに先立ち
その同僚ION214とVSI602のワーキングセッ
トの独占的所有権について交渉して、ダイポール226
内のどのIONが問題のVSI602のI/O操作を実
行するか、その交渉結果を確立する。
【0202】タイムアウト期間後に、同僚ION214
が交渉に参加できない場合(同僚ION214に障害が
ある場合)には、すべてのVSI602の完全移行又は
切り換えが発生する。動的にI/Oパス障害を処理する
ためには、一日の作業開始時を含めてVSI602コン
フィギュレーションが変更するときは常に、ION21
2、214がVSI602所有権交渉を開始する。
【0203】VSI602所有権交渉を、次の情報を含
む主(又は開始)ION212から同僚ION214へ
のメッセージを介して開始する。
【0204】accessible PRIMARY
VSI −PRIM acessible SECONDARY VSI −
SEC current Working Set −WSET desired Working Set −DWSE
T−subse tof PRIM and SEC 「応答」ion(ここでは同僚ION214)は、開始
プログラムの交渉要求とその現在のコンフィギュレーシ
ョンに基づく情報様のものをともに応答する。このメッ
セージ交換と次のサブセクションに示した計算の応用に
基づいて、「ライトスルー」がマークされる必要があっ
て、単一のIONによりアクセス可能なすべてのVSI
の識別と同様、VSI602の可用性を最大にする独占
的所有権を確定できる。
【0205】1.パス障害がない場合のVSI所有権交
渉 VSI所有権交渉要求は、典型的には一日の作業開始中
に開始される。PRIMとSECは、問題のIONが物
理的にアクセス可能なVSI602のセットを含む。V
SI602のワーキングセットが確立されていないの
で、「Wset」をヌルに設定する。「Dwset」
は、通常、IONのPRIMARYセット内に指定され
るものと同じVSI602である、ION212が所有
を希望するVSI602のリストを含んでいる。I/O
パスエラーが発生していない場合、あるIONのPRI
Mセットともう一つのIONのSECセットは同じもの
である。この場合、応答内の「Dwset」は要求IO
NのSECONDARYセットを含む。
【0206】2.パス障害がある場合のVSI所有権交
渉 ダイポール226内にI/Oパス障害がある場合には、
単一のION212がアクセス可能なVSIを識別して
部分移行させる又はWRITE−THRUとマースする
必要がある。
【0207】図18は、VSI602所有権交渉で実行
される操作のフローチャートを示す。プロセスは、開始
ノード212がアクセス可能な資源を確定する(第1
の)ノード212を開始することにより始まる(180
2)。これは、1次1次VSI(PRIMiと記載)及
び2次VSI(SECiと記載)を含む。次に、開始ノ
ード212(DWSETi)の所望のワーキングセット
をアクセス可能な1じVSIに設定する。これは、ブロ
ック1804に記載されている。応答ノード212が現
在作動状態の場合、ブロック1808に示されたよう
に、開始ノード212(WSETi)のワーキングセッ
トをヌルに設定する。応答ノード214が非作動状態の
場合、ブロック1810に示されたように開始ノード2
12(WSETi)のワーキングセットを開始ノード2
12(DWSETi)の所望のワーキングセットに設定
する。タイムアウト後、応答ノードがまだ非作動状態の
場合には、開始ノード212がSECiのVSIの所有
権があると見なす、スイッチオーバーが発生する。次
に、ブロック1812に示されたように、開始メッセー
ジを開始ノード212から応答ノード214に転送す
る。このメッセージは、開始ノードの1次資源(PRI
Mi)、開始ノードの2次資源(SECi)、開始ノー
ド212のワーキングセット及び開始ノード212の所
望のワーキングセットを含む。開始ノード212のワー
キングセットWSETiは開始ノード212に割り当て
られた資源を表し、所望のワーキングセットDWSET
iは開始ノード212が割り当てを所望した資源のセッ
トを表す。次に、開始ノード212が要求した資源を、
応答ノード214から割り当てを取り消す。これを、ブ
ロック1814に記載したように、応答ノード214の
開始メッセージを受け取ることにより達成する。応答ノ
ード214のワーキングセット(DWSETr)を応答
ノード214のワーキングセット(WSETr)に設定
する。応答ノード214(WSETr)のワーキングセ
ットがヌル(空)の場合、応答ノード214(DWSE
Tr)の所望のワーキングセットを1次VSI(PRI
Mr)の応答ノード214セットに設定する。VSI
(図18でFと記載)が開始ノード212の所望のワー
キングセット(DWSETi)内にあって、かつVSI
が応答ノード214の所望のワーキングセット(DWS
ETr)にある場合、VSIFを応答ノード214の所
望のワーキングセット(DWSETr)から取り除く。
これをブロック1822−1826に記載する。
【0208】応答ノード214からは到達可能でかつ開
始ノード212から要求されていない資源を応答ノード
214に割り当てる。これをブロック1822−183
0に記載する。VSIFが開始ノード212の所望のワ
ーキングセット(DWSETi)内と応答ノード214
がアクセス可能のVSIのセット内とにあって、1次資
源(PRIMr)か又は2次資源(SECr)のいずれ
かである場合、VSIFを応答ノード214の所望のワ
ーキングセット(DWSETr)に加える。ブロック1
832に示されたように、SECr又はPRIMr内の
いずれにもないVSIは、応答ノード214に対しアク
セス不能で、交渉応答の開始ノードがアクセス可能の場
合には、開始ノード212により所有権が主張される
(ブロック1914を参照)。前述を、すべてのVSI
に繰り返す(1834)。
【0209】応答ノード214の所望のワーキングセッ
ト(DWSETr)内にあるが開始ノードがアクセスで
きないVSI(開始ノードの2次VSIセットでも1次
VSIのセットでもない)を、応答ノード214により
ライトスルー資源としてマークする。この割り当てをマ
ークすることにより、演算ノード書込み要求の受け取り
に先立って、応答ノード214に十分な情報を用意して
開始ノードに対するバミューダトライアングルを不可能
にして、ディスク記憶にライトスルーを行う。このライ
トスルーマーキング操作を、ブロック1840に示した
ように、DWSETr内のVSIすべてに繰り返す。
【0210】最後に、前述の操作が、応答ノード214
の所望のワーキングセット(DWSETr)を変更しな
ければ、応答ノード214のワーキングセット(WSE
Tr)を応答ノード214の所望のワーキングセット
(DWSETr)に設定し、応答ノード214のワーキ
ングセット(WSETr)を機構106全体にエクスポ
ートする。かかる操作を、ブロック1842−1846
に示す。前述の操作が応答ノード214の所望のワーキ
ングセット(DWSETr)を変更しなければ、所望の
ワーキングセットはワーキングセット(WSETr)と
同様の資源を有していることになる。この場合は、応答
ノード214のワーキングセット(WSETr)をエク
スポートしない。
【0211】図19は、応答ノード214に割り当てら
れた資源を開始ノード212から割り当てを取り消す、
開始ノード側で実行される操作を示すフローチャートで
ある。まず、応答メッセージを応答ノード214から開
始ノード212へ転送する(1902)。このメッセー
ジは、PRIMr、SECr、WSETr、及びDWS
ETrの値を含む。このメッセージを応答ノード214
から受け取り(1904)、開始ノード212のワーキ
ングセット(WSETi)を開始ノード212の所望の
ワーキングセット(DWSETi)に設定する(190
6)。VSIFが応答ノード214の所望のワーキング
セット(DWSETr)内と開始ノード212の所望の
ワーキングセット(DWSETi)内とにある場合は、
F資源を開始ノード212の所望のワーキングセット
(DWSETi)から取り除く。FVSIが応答ノード
214の所望のワーキングセット(DWSETr)内に
あって、かつ開始ノード212の所望のワーキングセッ
ト(DWSETi)にない場合は、開始ノード212の
所望のワーキングセット(DWSETi)を変更しな
い。
【0212】開始ノード212は開始ノード212に対
しアクセス可能である割り当てられていない資源の所有
権があると見なす(PRIMiセットか又はSECiセ
ット内のいずれかにあることにより表示される)。割り
当てられていない資源は、応答ノード214所有の所望
ワーキングセット(DWSETr)内にも開始ノード2
12所有の所望ワーキングセット(DWSETi)内に
もない資源である。これを、ブロック1908、191
4及び1916に示す。前述の操作を、ブロック191
8に示されたようにすべてのVSIに対して繰り返す。
【0213】次に、開始ノード212のワーキングセッ
ト(WSETi)を、ブロック1920に示されたよう
に、開始ノード212の所望のワーキングセット(DW
SETi)に設定する。WSETi内にあって、かつ応
答ノード214が到達可能でないVSI(SECr又は
PRINr内にない)を、ライトスルーというマークを
する。これにより、そのVSI602に対応する資源の
バミューダトライアングルプロトコルを不可能にする。
これは、図19のブロック1922?bP926に表示
されている。最後に、前述の操作が完了した後、ブロッ
ク1928に示されたように、開始ノード212のワー
キングセットを機構106全体に渡りエクスポートす
る。
【0214】3.実施形態 図20は、図示のようにVSI1−6を共有するION
212と214間でのVSI所有権交渉の交換を示す。
ION212を、4−6のSECONDARYセットを
有する1−3のPRIMARYセットと構成する。IO
N214を、1−3のSECONDARYセットを有す
る4−6のPRIMARYセットと構成する。
【0215】ION212は現在ONLINEであっ
て、そのワーキングセットはVSIの1、2及び3であ
る。ION214はまさにONLINEになるところで
あって、エクスポートできるVSI602のワーキング
セットを確定したいので、VSI所有権交渉要求を開始
するところである。ION214はVSI6とVSI1
に対してパス障害がある。
【0216】ION214は、次の情報を含む情報を含
む交渉要求をION212に送る: PRIMi: 4、5 SECi: 2、3 WSETi: DWSETi: 4、5 ION212は、交渉要求を受け取ると、新規のワーキ
ングセットを計算する。VSI6はDWSETiにない
がSECにはあるので、VSI6をDWSETiに加え
る。ION212は、VSI6の部分移行を許可する次
の交渉応答を送り返す。
【0217】PRIMr: 1、2、3 SECr: 4、5、6 WSETr: 1、2、3 DWSETr: 1、2、3、6 ION212はまた、DWSETrのVSI1とVSI
6(PRIMiにもSECiにもない)はION214
によりアクセス不可能なので、ライトスルーというマー
クを付ける(これにより、かかるVSIに対しバミュー
ダトライアングルプロトコルを不可能にする)が、いず
れのUIONからもアクセス可能であるVSI2と3に
対するバミューダトライアングルプロトコルは可能であ
る。
【0218】ION214が応答を受け取ると、自身の
DWSETがION212のDWSETと矛盾しないの
で、ION214のワーキングセットとして所望のワー
キングセットVSI4と5が使用できることを確定す
る。どちらのDWSETにも、アクセス可能なVSIは
すでにない。ION214は従って、ONLINE状態
に入りVSIのワーキングセットをエクスポートする。
I/Oパス障害が修復されてVSI6がアクセス可能に
なる場合、ION214は別のVSI所有権交渉交換を
再び開始して、VSI6を自身の所望のワーキングセッ
トに含めることにより、VSI6の所有権を再要求す
る。これは、SWITCHBACKを実行するために必
要な同じプロセッシングである。
【0219】PRIMi: 4、5、6 SECi: 2、3 WSETi: 4、5 DWSETi: 4、5、6 ION212は、ION214がVSI6の所有権を再
要求従っていることを確定すると、自身のワーキングセ
ットからVSI6を取り除くための動作をとる。ION
212は、交渉の応答を送る前に、再度ONLINE状
態に入って新規のワーキングセットをエクスポートして
VSI6の所有権を放棄しなければならない。
【0220】PRIMr: 1、2、3 SECr: 4、5、6 WSETr: 1、2、3、6 DWSETr: 1、2、3 4.切り換え ダイポール226のコンフィギュレーション内のION
212、214は、物理記憶デバイスの同じセットに接
続して、ION212に障害がある場合には、機構接続
記憶の障害復元性を提供する。ION212に障害が発
生すると、「切り換え」が発生する。ダイポール226
ペアの残余のION214が、VSIの自身のSECO
NDARYセット(又は故障した同僚IONのPRIM
ARYセット)の所有権がある見なす。このIONに障
害のある状況においては、故障したIONのVSIの全
セットを、残余のIONに完全に移行する。同僚ION
214は、バミューダトライアングルアルゴリズムを介
する機構ベースの専用ロギングを行えないので、同僚の
いないIONによりエクスポートされたVSIすべて
に、ライトスルーというマークを付ける。
【0221】本発明の好適な実施の態様に関する前述の
説明について、例示と説明の目的で述べてきた。開示さ
れた厳密な形式が本発明のすべてではなく、これにに限
定するものではない。上記記述の教えるところから見
て、いろいろな改良変更が可能である。本発明の範囲は
この詳細な説明に限定されるものではなく、むしろ前記
特許請求の範囲により限定される。
【図面の簡単な説明】
【図1】キーとなるアーキテクチャエレメントを示す、
本発明の平面ブロック図。
【図2】本発明のシステムのブロック図。
【図3】IONとシステムの相互接続の構造を示すブロ
ック図。
【図4】JBOD格納装置内のエレメントのブロック
図。
【図5】ION物理ディスクドライバの機能ブロック
図。
【図6】機構固有のIDの構造を示す図。
【図7】ION格納管理モジュールとION物理ディス
クドライバとの関係を示す機能ブロック図。
【図8】BYNETホスト側インターフェースの図。
【図9】PITヘッダーの図。
【図10】ION212の機能モジュールのブロック
図。
【図11】IONダイポールのプロトコルを示す図。
【図12】仮想記憶作成ユーザインターフェースの一実
施形態を示す図。
【図13】拡張仮想記憶作成のユーザインターフェース
の一実施形態を示す図。
【図14】詳細な仮想記憶作成のユーザインターフェー
スの一実施形態を示す図。
【図15】変形のVSIユーザインターフェースの一実
施形態を示す図。
【図16】本発明の1実施形態を実行するために用いら
れた命令を表すフローチャート。
【図17】本発明の1実施形態における利用可能な記憶
用のI/Oノードを照会するために実行された命令を表
すフローチャート。
【図18】VSI所有権交渉における照会I/Oノード
において実行された命令を表すフローチャート。
【図19】応答I/Oノードにおいて実行された命令を
表すフローチャート。
【図20】VSI所有権交渉交換を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キット エム チョウ アメリカ合衆国 92009 カリフォルニア 州 カールスバッド コルビダエ ストリ ート 1336 (72)発明者 ニールス ハー ホーネカー デンマーク 1366−K コペンハーゲン ナンセンスゲード 39 (72)発明者 モートン スコイエン ウィズ デンマーク DK−2800 リングビー エ ス ウィルメンス ヴェイ 15

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 第一のノードにより要求された資源を第
    二のノードから割当解除し、 第一のノードにより要求されておらず且つ第二のノード
    により到達可能な資源を第二のノードに割り当て、 第二のノードに割り当てられた資源を第一のノードから
    割当解除し、 第一のノードにより到達可能な未割当の資源を第一のノ
    ードに割り当てる、各ステップを備える、ことを特徴と
    する第一のノードと第二のノードとの間で資源を割り当
    てる方法。
  2. 【請求項2】 前記第一のノードにより要求された資源
    を第二のノードから割当解除するテップが、 第一のノードにより要求された資源を識別し且つ第一の
    ノードが所望する資源セットを含む開始メッセージを第
    二のノードに送信し、 第一のノードが所望する資源セット内の資源を第二のノ
    ードが所望する資源セットから除去し、 第二のノードの資源のワーキングセットを第二のノード
    が所望する資源セットに設定する、 ステップを含むことを特徴とする請求項1に記載の方
    法。
  3. 【請求項3】 第二のノードが所望する資源セット内の
    各資源が第一のノードにより到達不能な場合に、該資源
    にライトスルー資源という標識を付する、 ステップを更に備えることを特徴とする請求項2に記載
    の方法。
  4. 【請求項4】 前記第二のノードに割り当てられた資源
    を第一のノードから割当解除するステップが、 第二のノードが所望する資源セットを含む応答メッセー
    ジを第一のノードに送信し、 第二のノードが所望する資源セット内の資源を第一のノ
    ードが所望するセットから取り除き、 第一のノードの資源のワーキングセットを第一のノード
    が所望する資源セットに設定する、 ステップを含むことを特徴とする請求項1に記載の方
    法。
  5. 【請求項5】 第一のノードが所望する資源セット内の
    各資源が第二のノードにより到達不能な場合に、該資源
    にライトスルー資源という標識を付する、 ステップを更に備えることを特徴とする請求項4に記載
    の方法。
  6. 【請求項6】 第一のノードにより要求された資源を第
    二のノードから割当解除する手段と、 第一のノードにより要求されておらず且つ第二ノードに
    より到達可能な資源を第二のノードに割り当てる手段
    と、 第二のノードに割り当てられた資源を第一のノードから
    割当解除する手段と、 第一のノードにより到達可能であり且つ第一のノード又
    は第二のノードに未割当の資源を第一のノードに割り当
    てる手段、とから構成されることを特徴とする第一のノ
    ードと第二のノードとの間に資源を割り当てる装置。
  7. 【請求項7】 前記第一のノードにより要求された資源
    を第二のノードから割当解除する手段が、 第一のノードにより要求された資源を識別し且つ第一の
    ノードが所望する資源セットを含む開始メッセージを第
    二のノードに送信する手段と、 第一のノードが所望する資源セット内の資源を第二のノ
    ードが所望する資源セットから除去する手段と、 第二のノードの資源のワーキングセットを第二のノード
    が所望する資源セットに設定する手段と、 を含むことを特徴とする請求項6に記載の装置。
  8. 【請求項8】 第二のノードが所望する資源セット内の
    各資源が第一のノードにより到達不能な場合に、該資源
    にライトスルー資源という標識を付する、 ステップを更に備えることを特徴とする請求項7に記載
    の装置。
  9. 【請求項9】 前記第二のノードに割り当てられた資源
    を第一のノードから割当解除する手段が、 第二のノードが所望する資源セットを含む応答メッセー
    ジを第一のノードに送信する手段と、 第二のノードが所望する資源セット内の資源を第一のノ
    ードが所望するセットから取り除く手段と、 第一のノードの資源のワーキングセットを第一のノード
    が所望する資源セットに設定する手段と、 を含むことを特徴とする請求項6に記載の装置。
  10. 【請求項10】 第一のノードが所望する資源セット内
    の各資源が第二のノードにより到達不能な場合に、該資
    源にライトスルー資源という標識を付する、 ステップを更に備えることを特徴とする請求項9に記載
    の装置。
  11. 【請求項11】 第一のノードと第二のノードとの間に
    資源を割り当てる方法を実施するためにコンピュータに
    より実行可能な一以上の命令を実現するコンピュータ読
    取り可能なプログラム記憶媒体であって、 前記方法を構成するステップが、 第一のノードにより要求されておらず且つ第二のノード
    により到達可能な資源を第二のノードに割り当て、 第二のノードに割り当てられた資源を第一のノードから
    割当解除し、 第一のノードにより到達可能な未割当の資源を第一のノ
    ードに割り当てる、各ステップを備えることを特徴とす
    るプログラム記憶媒体。
  12. 【請求項12】 前記第一のノードにより要求された資
    源を第二のノードから割当解除するテップが、 第一のノードにより要求された資源を識別し且つ第一の
    ノードが所望する資源セットを含む開始メッセージを第
    二のノードに送信し、 第一のノードが所望する資源セット内の資源を第二のノ
    ードが所望する資源セットから除去し、 第二のノードの資源のワーキングセットを第二のノード
    が所望する資源セットに設定する、 ステップを含むことを特徴とする請求項11に記載のプ
    ログラム記憶媒体。
  13. 【請求項13】 第二のノードが所望する資源セット内
    の各資源が第一のノードにより到達不能な場合に、該資
    源にライトスルー資源という標識を付する、 ステップを更に備えることを特徴とする請求項12に記
    載のプログラム記憶媒体。
  14. 【請求項14】 前記第二のノードに割り当てられた資
    源を第一のノードから割当解除するステップが、 第二のノードが所望する資源セットを含む応答メッセー
    ジを第一のノードに送信し、 第二のノードが所望する資源セット内の資源を第一のノ
    ードが所望するセットから取り除き、 第一のノードの資源のワーキングセットを第一のノード
    が所望する資源セットに設定する、 ステップを含むことを特徴とする請求項11に記載のプ
    ログラム記憶媒体。
  15. 【請求項15】 第一のノードが所望する資源セット内
    の各資源が第二のノードにより到達不能な場合に、該資
    源にライトスルー資源という標識を付する、 ステップを更に備えることを特徴とする請求項14に記
    載のプログラム記憶媒体。
  16. 【請求項16】 複数の記憶資源と、 前記複数の資源の少なくとも一つに通信自在に接続され
    た第一の入出力ノードにして、資源の所有権交渉メッセ
    ージを第二の入出力ノードと送受信すると共に第二のノ
    ードに割り当てられた資源を第一のノードから割当解除
    し且つ第一のノードに通信自在に接続された未割当の資
    源を第一のノードに割り当てる第一の入出力ノードプロ
    セッサを有する第一の入出力ノードと、 前記複数の資源の少なくとも一つと通信自在に接続され
    た第二の入出力ノードにして、資源の所有権交渉メッセ
    ージを第一の入出力ノードと送受信すると共に第一のノ
    ードにより要求された資源を第二のノードから割当解除
    し且つ第一のノードから未要求で第二のノードと通信自
    在に接続された資源を第二のノードに割り当てる第二の
    入出力ノードプロセッサを有する第二の入出力ノード
    と、を備えることを特徴とするデータ記憶資源。
JP11270715A 1998-09-25 1999-09-24 共用資源を動的に結合するための方法及びその装置 Pending JP2000148705A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/160,826 US6594698B1 (en) 1998-09-25 1998-09-25 Protocol for dynamic binding of shared resources
US09/160826 1998-09-25

Publications (1)

Publication Number Publication Date
JP2000148705A true JP2000148705A (ja) 2000-05-30

Family

ID=22578621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11270715A Pending JP2000148705A (ja) 1998-09-25 1999-09-24 共用資源を動的に結合するための方法及びその装置

Country Status (3)

Country Link
US (1) US6594698B1 (ja)
EP (1) EP0989490A3 (ja)
JP (1) JP2000148705A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004246749A (ja) * 2003-02-17 2004-09-02 Hitachi Ltd 記憶装置システム
JP2005044343A (ja) * 2003-06-21 2005-02-17 Samsung Electronics Co Ltd データバス幅を自在に変更する携帯用保存装置及び方法
WO2007055054A1 (ja) * 2005-11-08 2007-05-18 Sony Computer Entertainment Inc. データ通信方法、コンピュータ及び情報記憶媒体
JP2009251708A (ja) * 2008-04-02 2009-10-29 Nec Corp I/oノード制御方式及び方法
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952827B1 (en) * 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
GB2348303B (en) * 1999-03-23 2003-11-26 Ibm Data processing systems and method for processing work items in such systems
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
JP2000278290A (ja) * 1999-03-29 2000-10-06 Matsushita Electric Ind Co Ltd ネットワーク管理システム
US6832379B1 (en) * 1999-08-17 2004-12-14 Emc Corporation Computer architecture utilizing layered device drivers
US7039922B1 (en) * 1999-11-29 2006-05-02 Intel Corporation Cluster with multiple paths between hosts and I/O controllers
US20020103889A1 (en) * 2000-02-11 2002-08-01 Thomas Markson Virtual storage layer approach for dynamically associating computer storage with processing hosts
US6351831B1 (en) * 2000-05-24 2002-02-26 Mti Technology Corporation Storage network cabling verification system
US6922414B1 (en) * 2000-08-21 2005-07-26 Hewlett-Packard Development Company, L.P. Apparatus and method for dynamic command queue depth adjustment for storage area network nodes
US8990367B2 (en) * 2006-09-29 2015-03-24 Dell Products L.P. Consistent binding of shared storage across clustered servers
US7134138B2 (en) * 2001-02-15 2006-11-07 Emc Corporation Methods and apparatus for providing security for a data storage system
EP1374056B1 (en) * 2001-03-01 2006-06-21 Storeage Networking Technologies Storage area network (san) security
US6792479B2 (en) * 2001-03-15 2004-09-14 International Business Machines Corporation System and method for fibre channel tracking of SCSI identifiers in known configurations
US20020194407A1 (en) * 2001-04-25 2002-12-19 Kim Hyon T. Maintaining fabric device configuration through dynamic reconfiguration
US7171474B2 (en) * 2001-04-25 2007-01-30 Sun Microsystems, Inc. Persistent repository for on-demand node creation for fabric devices
US7200646B2 (en) * 2001-04-25 2007-04-03 Sun Microsystems, Inc. System and method for on-demand node creation for fabric devices
US6920491B2 (en) * 2001-04-25 2005-07-19 Sun Microsystems, Inc. Fabric device configuration interface for onlining fabric devices for use from a host system
JP4746838B2 (ja) * 2001-06-28 2011-08-10 オラクル・インターナショナル・コーポレイション データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
US7343410B2 (en) * 2001-06-28 2008-03-11 Finisar Corporation Automated creation of application data paths in storage area networks
US7343428B2 (en) * 2001-09-19 2008-03-11 International Business Machines Corporation Dynamic, real-time integration of software resources through services of a content framework
US7035944B2 (en) * 2001-09-19 2006-04-25 International Business Machines Corporation Programmatic management of software resources in a content framework environment
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US7886298B2 (en) * 2002-03-26 2011-02-08 Hewlett-Packard Development Company, L.P. Data transfer protocol for data replication between multiple pairs of storage controllers on a san fabric
CA2383825A1 (en) 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system
US6965951B2 (en) * 2002-05-17 2005-11-15 Sun Microsystems, Inc. Device centric discovery and configuration for fabric devices
US20040015611A1 (en) * 2002-06-25 2004-01-22 Kim Hyon T. Interfaces to multiple layers of device properties in a storage network
AU2003298560A1 (en) * 2002-08-23 2004-05-04 Exit-Cube, Inc. Encrypting operating system
US7117481B1 (en) * 2002-11-06 2006-10-03 Vmware, Inc. Composite lock for computer systems with multiple domains
US7373383B2 (en) * 2002-12-06 2008-05-13 International Business Machines Corporation Location messaging method for delivering messages in a global virtual space
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
CA2520498C (en) * 2003-04-03 2012-09-25 Commvault Systems, Inc. System and method for dynamically performing storage operations in a computer network
US7389394B1 (en) 2003-05-02 2008-06-17 Symantec Operating Corporation System and method for performing snapshots in a storage environment employing distributed block virtualization
JP2004341994A (ja) * 2003-05-19 2004-12-02 Hitachi Ltd プログラム、情報処理装置、及び情報処理装置の制御方法
US7546584B2 (en) 2003-06-16 2009-06-09 American Megatrends, Inc. Method and system for remote software testing
US7543277B1 (en) 2003-06-27 2009-06-02 American Megatrends, Inc. Method and system for remote software debugging
US7487235B2 (en) * 2003-09-24 2009-02-03 Dell Products L.P. Dynamically varying a raid cache policy in order to optimize throughput
US20050081086A1 (en) * 2003-10-10 2005-04-14 Xiotech Corporation Method, apparatus and program storage device for optimizing storage device distribution within a RAID to provide fault tolerance for the RAID
JP2005141672A (ja) * 2003-11-10 2005-06-02 Hitachi Ltd 共有リソースの使用の排他制御方式及び方法
US7827258B1 (en) * 2004-03-01 2010-11-02 American Megatrends, Inc. Method, system, and apparatus for communicating with a computer management device
US7865582B2 (en) * 2004-03-24 2011-01-04 Hewlett-Packard Development Company, L.P. System and method for assigning an application component to a computing resource
US7343459B2 (en) 2004-04-30 2008-03-11 Commvault Systems, Inc. Systems and methods for detecting & mitigating storage risks
US7328287B1 (en) 2004-07-26 2008-02-05 Symantec Operating Corporation System and method for managing I/O access policies in a storage environment employing asymmetric distributed block virtualization
US7424592B1 (en) * 2004-07-30 2008-09-09 Symantec Operating Corporation System and method for implementing volume sets in a storage system
US7404192B2 (en) * 2004-08-03 2008-07-22 International Business Machines Corporation Apparatus, system, and method for isolating a storage application from a network interface driver
US7269652B2 (en) * 2004-10-18 2007-09-11 International Business Machines Corporation Algorithm for minimizing rebate value due to SLA breach in a utility computing environment
TWI264658B (en) * 2004-11-04 2006-10-21 Universal Scient Ind Co Ltd Method for universal storage
US7975061B1 (en) 2004-11-05 2011-07-05 Commvault Systems, Inc. System and method for performing multistream storage operations
US7555516B2 (en) * 2004-11-23 2009-06-30 Microsoft Corporation Fast Paxos recovery
US8230068B2 (en) * 2004-12-02 2012-07-24 Netapp, Inc. Dynamic command capacity allocation across multiple sessions and transports
US20060156055A1 (en) * 2005-01-13 2006-07-13 Dell Products L.P. Storage network that includes an arbiter for managing access to storage resources
US8180855B2 (en) 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
US8019842B1 (en) * 2005-01-27 2011-09-13 Netapp, Inc. System and method for distributing enclosure services data to coordinate shared storage
EP1851662A2 (en) * 2005-02-24 2007-11-07 Xeround Systems Ltd. Method and apparatus for distributed data management in a switching network
US7458066B2 (en) * 2005-02-28 2008-11-25 Hewlett-Packard Development Company, L.P. Computer system and method for transferring executables between partitions
US8015568B2 (en) * 2005-02-28 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive/CPU architecture for distributed computing
US8219823B2 (en) 2005-03-04 2012-07-10 Carter Ernst B System for and method of managing access to a system using combinations of user information
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US7822930B1 (en) * 2005-12-01 2010-10-26 Teradata Us, Inc. Balanced allocation of multiple resources, or of multiple resources from multiple providers
US7562195B2 (en) * 2005-12-01 2009-07-14 Teradata Us, Inc. Balanced allocation of multiple resources, or of multiple resources from multiple providers
US8010843B2 (en) 2005-12-14 2011-08-30 American Megatrends, Inc. System and method for debugging a target computer using SMBus
US20110010518A1 (en) * 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US20080052455A1 (en) * 2006-08-28 2008-02-28 Dell Products L.P. Method and System for Mapping Disk Drives in a Shared Disk Cluster
US7774544B1 (en) * 2006-11-15 2010-08-10 Netapp, Inc. Reliable disk ownership changes
US20080270704A1 (en) * 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8166212B2 (en) * 2007-06-26 2012-04-24 Xerox Corporation Predictive DMA data transfer
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8166146B2 (en) * 2008-09-29 2012-04-24 International Business Machines Corporation Providing improved message handling performance in computer systems utilizing shared network devices
US8146092B2 (en) * 2008-10-10 2012-03-27 Hitachi, Ltd. System and method for selecting and executing an optimal load distribution processing in a storage system
US20110047313A1 (en) * 2008-10-23 2011-02-24 Joseph Hui Memory area network for extended computer systems
WO2010075401A2 (en) 2008-12-22 2010-07-01 Google Inc. Asynchronous distributed garbage collection for replicated storage clusters
US8266289B2 (en) * 2009-04-23 2012-09-11 Microsoft Corporation Concurrent data processing in a distributed system
US8458368B2 (en) * 2009-05-26 2013-06-04 Oracle America, Inc. System and method for discovering and protecting shared allocated resources in a shared virtualized I/O device
US9477947B2 (en) 2009-08-24 2016-10-25 International Business Machines Corporation Retrospective changing of previously sent messages
US8490092B2 (en) 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
US8689047B2 (en) * 2011-07-22 2014-04-01 Microsoft Corporation Virtual disk replication using log files
US9047068B2 (en) * 2011-10-31 2015-06-02 Dell Products L.P. Information handling system storage device management information access
US8966211B1 (en) * 2011-12-19 2015-02-24 Emc Corporation Techniques for dynamic binding of device identifiers to data storage devices
US8621074B2 (en) 2012-04-27 2013-12-31 Xerox Business Services, Llc Intelligent work load manager
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US9549037B2 (en) 2012-08-07 2017-01-17 Dell Products L.P. System and method for maintaining solvency within a cache
US9311240B2 (en) 2012-08-07 2016-04-12 Dell Products L.P. Location and relocation of data within a cache
US9852073B2 (en) 2012-08-07 2017-12-26 Dell Products L.P. System and method for data redundancy within a cache
US9367480B2 (en) 2012-08-07 2016-06-14 Dell Products L.P. System and method for updating data in a cache
US9495301B2 (en) 2012-08-07 2016-11-15 Dell Products L.P. System and method for utilizing non-volatile memory in a cache
WO2014054079A1 (en) * 2012-10-05 2014-04-10 Hitachi, Ltd. Job management system and job control method
US9087085B2 (en) * 2012-12-10 2015-07-21 International Business Machines Corporation Pre-assimilation values and post-assimilation values in hardware instance identifiers
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
KR20160004365A (ko) * 2013-06-29 2016-01-12 인텔 코포레이션 크레딧 기반의 중재를 위한 서비스 레이트 재분배
US10152530B1 (en) 2013-07-24 2018-12-11 Symantec Corporation Determining a recommended control point for a file system
US9553822B2 (en) * 2013-11-12 2017-01-24 Microsoft Technology Licensing, Llc Constructing virtual motherboards and virtual storage devices
US9471522B2 (en) 2013-12-04 2016-10-18 International Business Machines Corporation Resource allocation by virtual channel management and bus multiplexing
CN104102543B (zh) * 2014-06-27 2018-09-11 北京奇艺世纪科技有限公司 一种云计算环境中负载调整的方法和装置
US20150378706A1 (en) * 2014-06-30 2015-12-31 Emc Corporation Software overlays for disaggregated components
US10303782B1 (en) 2014-12-29 2019-05-28 Veritas Technologies Llc Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
US9892065B2 (en) * 2015-05-20 2018-02-13 International Business Machines Corporation Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations
US9864716B2 (en) 2015-05-20 2018-01-09 International Business Machines Corporation Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit
US10061734B2 (en) 2015-05-20 2018-08-28 International Business Machines Corporation Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit
US9887978B2 (en) 2015-06-23 2018-02-06 Veritas Technologies Llc System and method for centralized configuration and authentication
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10757104B1 (en) 2015-06-29 2020-08-25 Veritas Technologies Llc System and method for authentication in a computing system
US10176036B2 (en) 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
WO2021126027A1 (en) * 2019-12-18 2021-06-24 Telefonaktiebolaget Lm Ericsson (Publ) First node, second node, and methods performed thereby for handling configuration of resources
US11593223B1 (en) 2021-09-02 2023-02-28 Commvault Systems, Inc. Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
EP0709779B1 (en) * 1994-10-31 2001-05-30 International Business Machines Corporation Virtual shared disks with application-transparent recovery
US5761705A (en) * 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6108654A (en) * 1997-10-31 2000-08-22 Oracle Corporation Method and system for locking resources in a computer system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004246749A (ja) * 2003-02-17 2004-09-02 Hitachi Ltd 記憶装置システム
JP4651913B2 (ja) * 2003-02-17 2011-03-16 株式会社日立製作所 記憶装置システム
JP2005044343A (ja) * 2003-06-21 2005-02-17 Samsung Electronics Co Ltd データバス幅を自在に変更する携帯用保存装置及び方法
JP4579589B2 (ja) * 2003-06-21 2010-11-10 三星電子株式会社 データバス幅を自在に変更する携帯用保存装置及び方法
WO2007055054A1 (ja) * 2005-11-08 2007-05-18 Sony Computer Entertainment Inc. データ通信方法、コンピュータ及び情報記憶媒体
US8732471B2 (en) 2005-11-08 2014-05-20 Sony Corporation Data communication method, computer and information storing medium
JP2009251708A (ja) * 2008-04-02 2009-10-29 Nec Corp I/oノード制御方式及び方法
JP4569846B2 (ja) * 2008-04-02 2010-10-27 日本電気株式会社 I/oノード制御方式及び方法
US8239588B2 (en) 2008-04-02 2012-08-07 Nec Corporation System and method for improved I/O node control in computer system
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification

Also Published As

Publication number Publication date
US6594698B1 (en) 2003-07-15
EP0989490A3 (en) 2004-07-14
EP0989490A2 (en) 2000-03-29

Similar Documents

Publication Publication Date Title
JP2000148705A (ja) 共用資源を動的に結合するための方法及びその装置
JP4615643B2 (ja) データ・ストレージ・システムにおける危険状態データの識別方法
US6078990A (en) Volume set configuration using a single operational view
JP4536840B2 (ja) 並列処理コンピュータ・システムにおけるデータの転送方法
JP4618654B2 (ja) 並列処理コンピュータ・システムにおけるデータ通信方法
US6256740B1 (en) Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric
US6247077B1 (en) Highly-scalable parallel processing computer system architecture
JP4567125B2 (ja) データ・ストレージとデータ処理システムにおける書き込みキャッシュデータの転送方法及びその装置
US8560747B1 (en) Associating heartbeat data with access to shared resources of a computer system
US7013379B1 (en) I/O primitives
US7173929B1 (en) Fast path for performing data operations
US6973549B1 (en) Locking technique for control and synchronization
US6986015B2 (en) Fast path caching
US6959373B2 (en) Dynamic and variable length extents
US20060195663A1 (en) Virtualized I/O adapter for a multi-processor data processing system
US20060209863A1 (en) Virtualized fibre channel adapter for a multi-processor data processing system
JP2005011277A (ja) 外部ストレージに接続されるストレージ装置
JPH0557619B2 (ja)
JP2005055970A (ja) ストレージ装置