JPH11316748A - 並列処理コンピュ―タ・システムにおけるデ―タの転送方法 - Google Patents

並列処理コンピュ―タ・システムにおけるデ―タの転送方法

Info

Publication number
JPH11316748A
JPH11316748A JP11063744A JP6374499A JPH11316748A JP H11316748 A JPH11316748 A JP H11316748A JP 11063744 A JP11063744 A JP 11063744A JP 6374499 A JP6374499 A JP 6374499A JP H11316748 A JPH11316748 A JP H11316748A
Authority
JP
Japan
Prior art keywords
node
data
request
pit
ion
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.)
Granted
Application number
JP11063744A
Other languages
English (en)
Other versions
JP4536840B2 (ja
Inventor
Kit M Chow
エム チョウ キット
Keith P Muller
キース ミュラー ピー
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 JPH11316748A publication Critical patent/JPH11316748A/ja
Application granted granted Critical
Publication of JP4536840B2 publication Critical patent/JP4536840B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 マルチプロセッサ・システムにおいて第1の
ノードから第2のノードにデータを転送する方法を提供
する。 【解決手段】 システムには、相互接続ファブリック・
インタフェースを介して相互接続ファブリックに連結さ
れたコンピューティング・ノードと入出力ノードとをも
った複数のノードを有しており、この入出力ノードは、
複数のデータ記憶装置に連結されていて、第1のノード
内で実行しているアプリケーションからの入出力要求に
応じて第1のノード内で入出力要求パケットを生成する
ステップ1102と、相互接続ファブリックを介して第
2のノードにデータ要求パケットを送信するステップ1
104と、データ要求を第2のノード・バッファに転送
するためにデビットIDを抽出する宛て先相互接続チャ
ネル・プログラムを実行するステップ1106とを含
む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にはコンピュー
ティング・システムに関し、特にはストアノードとコン
ピューティングノードがネットワークを構成する高度に
拡張可能な並列処理コンピュータシステムのためのI/
Oプロトコルに関する
【0002】
【従来の技術】技術的発展はしばしば、見たところ関係
のない一連の技術開発の結果からもたらされる。これら
の無関係の開発は個々には重要であるかもしれないが、
これらが組み合わされると大きな技術的発展の基礎をな
すことがある。歴史的に見れば大規模で複雑なコンピュ
ータシステムにおけるコンポーネントの間の技術成長は
不均一であったが、これには例えば、(1)ディスク入
出力性能に比べてCPU性能の急速な進歩、(2)内部
的なCPUアーキテクチャの発達、(3)相互接続ファ
ブリックが挙げられる。
【0003】過去10年以上に亘って、ディスク入出力
性能は全体として、ノードの性能よりも全体的に遙かに
遅い速度で成長してきた。CPU性能は年間で40%か
ら100%の割合で増加してきたのに、ディスクのシー
ク時間は年率で僅かに7%改善されてきたにすぎない。
もし予想されるようにこの傾向が続けば、典型的なサー
バ・ノードが駆動できるディスク駆動機構の数は、最も
大きな規模のシステムでは数量的価格的両面でディスク
駆動機構が支配的なコンポーネントとなる点に達するで
あろう。この現象は既に、既存の大規模システムの施設
で明らかになっている。
【0004】不均一な性能の拡大は、CPU内部でも起
こりつつある。CPU性能を改善するためにCPU業者
は、クロック速度の増加とアーキテクチャの変更との組
合せを採用しつつある。これらのアーキテクチャ変更の
多くは、並列処理グループから影響を受けた技術である
ことが分かっている。これらの変更は、不均衡な性能を
作りだし、予想よりも少ない性能改善をもたらしてい
る。簡単な例として、CPUが割込みを指示できる速度
は、基本命令と同じ速度で拡大していない。こうして割
込み性能に依存するシステム機能(入出力といった)
は、コンピューティング・パワーと一緒には拡大してい
ない。
【0005】相互接続ファブリックもまた不均一な技術
成長特性を示している。数年の間、これらは10〜20
MB/secの性能レベルの辺りに停滞している。過去
の年には100MB/sec(以上の)レベルにまで帯
域幅の大きな飛躍も起こっている。この大きな性能改善
は、大量に並列処理を行うシステムの経済的な配備を可
能にしている。
【0006】この不均一な性能は、アプリケーションの
アーキテクチャとシステム構成の選択とに対してマイナ
スに働く。例えばアプリケーション性能に関して、改善
されたCPU性能といったシステムのある部分における
性能改善を利用して作業負荷を増やそうとする試みはし
ばしば、ディスク・サブシステムに同等の性能改善がな
いことによって妨げられる。CPUが毎秒のトランザク
ション数の生成を2倍にできても、ディスク・サブシス
テムはその増加分の何分の一かしか処理できない。CP
Uは、絶えず記憶システムを待っていることになる。不
均一なハードウエア性能の成長の全体的な影響は、アプ
リケーション性能が所定の作業負荷の特性に対する依存
度の増大を経験しつつあるということになる。
【0007】プラットフォーム・ハードウエア技術にお
ける不均一な成長もまた、マルチノード・システムを構
成するために利用可能なオプションの数が減少するなど
といった、他の重大な問題を引き起こす。良い例は、T
ERADATA・4ノード・クリークのソフトウエア・
アーキテクチャが記憶装置の相互接続技術の変化によっ
て影響されるということである。TERADATAクリ
ーク・モデルは、単一のクリーク内のノード間で一様な
記憶装置間接続を想定している。各ディスク駆動機構
は、すべてのノードからアクセス可能である。ここであ
るノードが故障すると、そのノード専用であった記憶装
置は、残りのノード間で分割できる。記憶技術とノード
技術とにおける不均一な成長は、共用記憶装置環境にお
いて1ノード当たりに接続できるディスクの数を制約す
ることになる。この制約は、入出力チャネルに接続でき
る駆動機構の数と、4ノード共用入出力トポロジーで接
続できるバスの物理数とによって作られる。ノード性能
の改善が続けられるにつれて、われわれは性能の利点を
実現するために1ノード当たりに接続されるディスク・
スピンドルの数を増加させなければならない。
【0008】
【発明が解決しようとする課題】クラスタ型大規模並列
処理(MMP)の設計は、前述の問題を解決しようとす
るマルチノード・システムの設計の例である。クラスタ
型は、拡張性に制約を受けるが、MMPシステムは、追
加ソフトウエアに十分に単純なアプリケーション・モデ
ルを提示することを要求する(商業的なMMPシステム
で、このソフトウエアは通常、DBMS(データベース
管理システム)である)。MMPはまた、非常に高い可
用性を備えたある形式の内部クラスタリング(クリー
ク)を必要とする。両者の解は未だ、潜在的に大きな数
のディスク駆動機構の管理に難題を作りだしており、ま
た電気機械的装置であるこれらのディスク駆動機構はか
なり予測可能な故障率を持っている。ノード相互接続の
問題は、MMPシステムではノード数が通常はるかに大
きいので更に悪化する。これら両手法も、非常に大きな
データベースを格納刷るために必要とされる駆動機構の
多数さによって再び刺激されて、ディスク接続に難問を
作りだす。
【0009】上述の問題は、記憶装置エンティティと、
高性能接続ファブリックに亘って計算するコンピューテ
ィング・エンティティとがアーキテクチャ的同位エンテ
ィティとして機能するアーキテクチャにおいて改善され
る。このアーキテクチャは、記憶資源とコンピューティ
ング資源とを管理する際の柔軟性を増加させることがで
きる。しかしながら、この柔軟性はいくつか特有のシス
テム管理上の問題を提示している。データ・コピーと割
込み処理コストが、この問題のうちの2つである。この
問題は、送信側ベースのアドレス指定に伴い改善できる
が、送信側ベースの技術にいくつかの問題がある。第一
に、通常の絶縁不足をうみだし、データ・セキュリティ
と完全性を高めながら、送信側ベースのアドレス指定に
よって、送信側を含む宛て先からファブリックに亘り保
護ドメインが拡張する。純粋な送信側ベースのアドレス
指定は、送信側へのメモリ・アドレスに関し、送信側を
信頼するための宛て先を必要とし、高い利便性を持つシ
ステムにおける重要な問題である。例えば、宛て先ノー
ドが宛て先アドレスのリストを送信側に与えている時の
ケースを考える。送信側がこのアドレスすべてを使用す
る前に、宛て先ノードが壊れ、再ブートする。送信側
は、いまもはや有効でないアドレス・バッファのセット
を所有することになる。宛て先は、異なる目的のためこ
のアドレスを使ってもよい。誰かに送信されたメッセー
ジが、危ないデータは宛て先で破壊される可能性のある
という深刻なことになるかもしれない。
【0010】第二に、送信側ベースのアドレス指定の実
現は、データのDMAを初期化可能以前に、メッセージ
からの宛て先アドレスを抽出するネットワークの協力を
必要とする。大部分のネットワーク・インターフェース
は、この方法を動作するよう設計されている。送信側ベ
ースのモデルの長所を含み、問題を回避するアドレス指
定モデルが、必要である。本発明は、特有の「PUT
IT THERE:そこに置く」(PIT)プロトコル
を使用するハイブリッド・アドレス指定モデルに伴うこ
の問題を解決する。既知技術の短所を改善するのが、本
発明の目的である。
【0011】本発明は、添付クレーム1に述べる伝送デ
ータ方法、添付クレーム6に述べる伝送データ装置、添
付クレーム11に述べるプログラム記憶装置、添付クレ
ーム16に述べるデータ構造を提供する。
【0012】
【課題を解決するための手段】マルチプロセッサ・シス
テムにおいて第1のノードから第2のノードにデータを
転送する方法を提供する。本マルチプロセッサ・システ
ムは、相互接続ファブリック・インタフェースを介して
相互接続ファブリックに連結された複数のノードを含ん
でおり、これらのノードは、コンピューティング・ノー
ドと入出力ノードとを含んでおり、この入出力ノード
は、複数のデータ記憶装置に連結されている。本方法
は、第1のノード内で実行しているアプリケーションか
らの入出力要求に応じて第1のノード内で入出力要求パ
ケットを生成するステップと、相互接続ファブリックを
介して第2のノードにデータ要求パケットを送信するス
テップと、データ要求を第2のノード・バッファに転送
するためにデビットIDを抽出する宛て先相互接続チャ
ネル・プログラムを実行するステップとを含む。一実施
例では、入出力パケットは、データ転送要求と、相互接
続宛て先チャネル・プログラムと、データ要求が伝送さ
れるであろう第2のノード・バッファを指示する第1の
デビットIDと、入出力要求に応答するデータが伝送さ
れるであろう第1のノード・バッファを指示する第1の
クレジットIDとを含む。
【0013】以下、当業者が理解しやすいように説明と
図面により本発明の好適な実施の形態を述べる。
【0014】
【発明の実施の形態】概要 図1は、本発明の同位アーキテクチャの概要である。こ
のアーキテクチャは、一つ以上のコンピューティング資
源102と、一つ以上の相互接続ファブリック106と
通信路108とを介してコンピューティング資源102
に通信可能に連結された一つ以上の記憶資源104とを
含む。ファブリック106は、すべてのノードと記憶装
置との間の通信手段を提供し、こうしてコンピューティ
ング資源102と記憶資源104との間の一様な同位ア
クセスを実現する。
【0015】図1に示すアーキテクチャでは、記憶装置
はもはや、現在のノード中心のアーキテクチャのように
単一のセットのノードに縛られることはなく、またどの
ノードもすべての記憶装置と通信できる。これは、物理
的システム・トポロジーが記憶装置とノード間の通信を
制限していて、異なる仕事負荷に対応するためにはしば
しば異なるトポロジーが必要になった今日のマルチノー
ド・システムとは対照的である。図1に示すアーキテク
チャは、システム・トポロジーの広いスペクトルをサポ
ートする単一の物理アーキテクチャを提供することによ
って、アプリケーション・ソフトウエアの通信パターン
がいかなる時点でもシステムのトポロジーを決定できる
ようにしており、技術進歩の不均一さに対応している。
ファブリック106によって与えられる分離は、主要な
システム・コンポーネントの各々について極めて僅かず
つの拡張を可能にする。
【0016】図2は、本発明の同位アーキテクチャの更
に詳細な説明を示す。コンピューティング資源102
は、一つ以上のコンピューティング・ノード200によ
って定義されており、一つ以上のプロセッサを有する各
々のコンピューティング・ノードはオペレーティング・
システム202の制御下で一つ以上のアプリケーション
204を実現している。コンピューティング・ノード2
00には、テープ駆動機構、プリンタ、その他のネット
ワークといった周辺装置208が機能的に連結されてい
る。またコンピューティング・ノード200には、オペ
レーティング・システム202を含む命令とか、アプリ
ケーション204、その他の情報といったコンピューテ
ィング・ノード固有の情報を記憶するハードディスクと
いったローカルの記憶装置210が機能的に連結されて
いる。アプリケーションの命令は、分散処理方式で、二
つ以上のコンピューティング・ノード200に亘って格
納、および/または実行できるようになっている。一実
施例では、プロセッサ216は、INTEL P6とい
った既製品で商業的に入手可能な多目的プロセッサと、
関連のメモリと入出力エレメントとを含む。
【0017】記憶資源104は、クリーク226によっ
て画定されており、これらクリークの各々は、第1の入
出力ノードあるいはION212と第2の入出力ノード
あるいはION214とを含み、その各々はシステム相
互接続部228によって相互接続ファブリック106の
各々と機能的に連結されている。第1のION212と
第2のION214は、JBOD筐体222に関連する
一つ以上の記憶ディスク224(「just a bu
nch disksほんの一束のディスク)」あるいは
JBODとして知られている)に機能的に連結されてい
る。
【0018】図2は、典型的な2対1のION212対
コンピューティング・ノード比を持つ中規模システムを
示す。本発明のクリーク226は、三つ以上のION2
14を用いて、あるいは記憶ノードの可用性に幾分かの
損失はあるが単一のION212を用いて実現すること
もできる。クリーク226の個数は、複数のION21
2の間で共用ハードウエアが存在しないので、純粋にソ
フトウエアの問題である。対になったION212は、
「ダイポール」と呼ばれることもある。
【0019】本発明はまた、コンピューティング・ノー
ド200とION212と相互接続ファブリック106
とにインタフェース接続する管理コンポーネントまたは
システム管理ソフトウエア230も含む。
【0020】ION212とJBOD212との間の接
続は、ここでは単純化された形で示してある。実際の接
続は、図示の構成における記憶ディスク224の各ラン
ク(行、ここでは4行)に対してファイバ・チャネル・
ケーブルを使っている。実際には、各ION212は、
図示の実施例に示す20個よりもむしろ40個と80個
の間の記憶ディスク224を管理することになるであろ
う。
【0021】ION(記憶ノード) 内部アーキテクチャ ハードウエア・アーキテクチャ 図3は、ION212の構成と、JBOD222に対す
るそのインタフェースとに関して更に詳細を示す図であ
る。各ION212は、JBOD相互接続部216を介
してJBOD222アレー内の各記憶ディスク224に
通信可能に連結するための入出力接続モジュール302
と、ION212機能を実行してここに述べるION物
理ディスク・ドライバ500を実現するCPUおよびメ
モリ304と、ION212操作をサポートするために
電力を供給する電力モジュール306とを含む。
【0022】JBOD図4は、JBOD筐体222に関
して更に詳細を示す図である。監視あるいは制御が可能
であるJBOD筐体222内のすべてのコンポーネント
は、エレメント402〜424と呼ばれる。所定のJB
OD筐体のためのすべてのエレメント402〜424
は、構成ページ符号を持った受信診断結果コマンドを介
して返される。ION212は、これらのエレメントを
番号付けしているこのエレメント順序付けリストを使用
する。記載の第1のエレメント402はエレメント0で
あり、第2のエレメント404はエレメント1であり、
以下同様である。これらのエレメント番号は、コンポー
ネントをアドレス指定するためにここに記載の管理サー
ビス層706によって使われるLUN−Cを作成すると
きに使われる。
【0023】
【表1】 筐体の内部では、上の表1に示すようにエレメント位置
は、ラック番号とシャシ番号とエレメント番号とによっ
て指定される。ラック番号は、あるダイポールに属する
ラックに割り当てられたそのダイポールに対する内部番
号である。シャシ位置は、キャビネット管理装置によっ
て通知される高さを指す。エレメント番号は、SES構
成ページによって返されるエレメント・リストへの指標
である。これらのフィールドがLUN−Cフォーマット
を構成している。
【0024】入出力インタフェース・ドライバ・アーキ
テクチャ 図5は、ION212のための「SCSIドライバ」と
して機能するION物理ディスク・ドライバ500を含
めて、ION212入出力アーキテクチャを示す図であ
る。ION物理ディスク・ドライバ500は、RAID
(redumdant array of inexp
ensive disks:低価格ディスクの冗長アレ
ー)ソフトウエア・ドライバまたはシステム管理ソフト
ウエア230内の管理ユーティリティからの入出力要求
を取り入れる責任を持っており、そしてJBOD相互接
続部216の装置側の装置上でその要求を実行する。
【0025】本発明の物理ディスク・ドライバ500
は、三つの主要コンポーネント:ハイレベル・ドライバ
(HLD)502とローレベル・ドライバ506とを含
む。HLD502は、共通部503と装置固有のハイレ
ベル部504とローレベル・ドライバ506とを含む。
共通部502と装置固有ハイレベル・ドライバ504
は、アダプタ独立であって、新しいアダプタ型のために
修正を必要としない。ファイバ・チャネル・インタフェ
ース(FCI)ローレベル・ドライバ506は、ファイ
バ・チャネル・アダプタをサポートしており、したがっ
てアダプタ固有よりもむしろプロトコル固有である。
【0026】FCIローレベル・ドライバ506は、S
CSI要求をFCPフレームに変換し、またログイン
(Login)と処理ログイン(Process Lo
gin)のようなファイバ・チャネル共通サービスを取
り扱う。FCIローレベル・ドライバ506には、ファ
イバ・チャネル・プロトコル処理をアダプタ固有ルーチ
ンから分割するハードウエア・インタフェース・モジュ
ール(HIM)インタフェース508が機能的に連結さ
れている。上述のコンポーネントの更に詳細な説明は、
以下に示す。
【0027】ハイレベル・ドライバ ハイレベル・ドライバ(HLD)502は、どのような
型の装置がアクセスされている場合でも、ION212
に対するすべての要求についての入口点である。ある装
置が開かれると、HLD502はコマンド・ページをそ
の装置に結び付ける。これらの業者固有のコマンド・ペ
ージは、固有のSCSI機能のためにSCSIコマンド
記述子ブロックがどのように構築されるべきかを指示す
る。コマンド・ページは、あるSCSI機能をSCSI
仕様の指定とは異なるように取り扱う装置をドライバが
容易にサポートできるようにする。
【0028】共通(装置固有でない)部 HLD502の共通部は、下記の入口点を含む。 ・cs−init :ドライバ構造を初期化して資源を
割り当てる。 ・cs−open :装置を使用可能にする。 ・cs−close:入出力を完了して装置をサービス
から削除する。 ・cs−strategy:装置の読み/書き入力を阻
止する(Buf−t interface)。 ・cs−intr :ハードウエア割込みをサービス
する。
【0029】これらのルーチンは、すべての装置の型に
ついて同じ機能を実行する。これらのルーチンの大部分
は、装置の型(ディスク、テープ、worm(追記
型)、CD ROM等)によって指標付けされたスイッ
チ(切替え)表によっていかなる装置固有の要件でも取
り扱う装置固有ルーチンを呼び出す。
【0030】この cs−open機能は、その装置が
存在しており、そこで実行されるべき入出力操作の準備
ができていることを保証する。現在のシステム・アーキ
テクチャとは異なり、共通部503は、オペレーティン
グ・システム(OS)の初期化期間中に既知の装置の表
を作成することはない。その代わりにドライバ共通部5
03は自己構成を行う。すなわちドライバ共通部503
は、その装置の初期オープン時に装置の状態を決定す
る。これは、ドライバ共通部503がOS202の初期
化段階後にオンラインになった可能性のある装置を「見
る」ことができるようにする。
【0031】初期オープン期間中、SCSI装置は、目
標装置にSCSI問合せコマンドを発行することによっ
てコマンド・ページに結合される。もし装置が肯定的に
応答すれば、その応答データ(業者ID、製品ID、フ
ァームウエア改訂レベルといった情報を含む)がSCS
I構成モジュール516内の既知装置表と比較される。
もし一致があれば、その装置は、その表の項目に指定さ
れたコマンド・ページに明示的に結合される。もし一致
がなければ、その装置は、一般CCS(Common
Comand Set:共通コマンド・セット)または
その応答データ・フォーマットに基づくSCSI・II
コマンド・ページに暗示的に結合される。
【0032】ドライバ共通部503は、ローレベル・ド
ライバ506によって使われるルーチンと、資源を割り
当て、分散・収集操作のためのDMAリストを作成し、
SCSI操作を完了させるコマンド・ページ機能とを含
む。
【0033】すべてのFCIローレベル・ドライバ50
6ルーチンは、ドライバ共通部503から呼び出され
る。ドライバ共通部503は、ハードウエアを設定して
動作を開始させるためにハードウエア・インタフェース
・モジュール(HIM)508内の適当なローレベル・
ドライバ(LLD)ルーチンを呼び出すことによってS
CSI動作を実際に起動する唯一の層である。LLDル
ーチンはまた、SCSI構成モジュール516から構成
時に割り当てられた、ドライバIDによって指標付けさ
れたスイッチ表を介してアクセスされる。
【0034】装置固有部 共通部502と装置固有ルーチン504との間のインタ
フェースは、共通部へのインタフェースと似ており、ま
た csxx−init、csxx−open、csx
x−close、csxx−strategyというコ
マンドを含んでいる。“xx” という記号は、記憶装
置の型(例えばディスクについては“dk”あるいはテ
ープについては“tp”)を示す。これらのルーチン
は、いかなる装置固有要件でも取り扱う。例えばもし装
置がディスクであったとすれば、csdk−openは
そのディスクの固有領域から区分表情報を読み取らなけ
ればならず、またcsdk−strategyはその区
分表情報を使って、ブロックが禁止区域にあるかどうか
を判定しなければならない。(区分表は各固有の物理デ
ィスク毎に論理ディスクから物理ディスクへのディスク
・ブロックのマッピングを定義している。)
【0035】ハイレベル・ドライバの誤り/失敗の処理 誤り処理 再試行 HLD502の最も一般的な回復方法は、失敗した入出
力操作を再試行することによっている。所定のコマンド
型に関する再試行の回数は、コマンド・ページによって
指定される。例えば読取りあるいは書込みコマンドは非
常に重要であると見なされるので、それらに関連のコマ
ンド・ページは、再試行回数を3と設定することもでき
る。問合せコマンドは重要とは見なされないが、一日の
初めの操作の時に、一定の再試行回数ではシステムの性
能低下を招くので、その試行回数はゼロにされることも
ある。
【0036】初めに要求が発行されると、その再試行回
数はゼロに設定される。要求が失敗して回復手順が再試
行されることになる度ごとに、再試行回数は増やされ
る。もし再試行回数がコマンド・ページで指定された最
大試行回数より大きくなれば、その入出力操作は失敗と
なり、要求者にはメッセージが返送される。そうでなけ
れば、それは再発行される。このルールの唯一の例外
は、ユニット・アテンションに関するものであって、こ
れは一般には誤りというよりはイベント通知である。も
しあるコマンドに関してユニット・アテンションが受け
取られ、その最大再試行回数がゼロか1に設定されてい
れば、ハイレベル・ドライバ502は、この特定の入出
力のための最大再試行を2に設定する。これは、ユニッ
ト・アテンション状態のために早まって失敗と送り返さ
れる入出力を防止することになる。
【0037】遅延された再試行は、その再試行が所定の
時間の間は、待ち行列に再配置されないということを除
いて、上述の再試行手順と同じに扱われる。
【0038】失敗したScsi−ops FCIローレベル・ドライバ506に発行されるScs
i−opは、幾つかの状況によって失敗することがあ
る。表2は、FCIローレベル・ドライバ506がHL
D402に返すことのできる、起こり得る失敗の型を下
に示す。
【0039】
【表2】 ローレベル・ドライバの誤り条件 資源不足 資源不足誤りは、要求時に所望の資源が利用可能でない
ときに発生する。一般にこれらの資源は、システム・メ
モリとドライバ構成メモリである。
【0040】システム・メモリ不足処理は、セマフォ・
ブロッキング(信号阻止)によって遂行される。メモリ
資源をブロックするスレッド(プロセスの集まり)は、
新しい入出力が発行されるのを防止するであろう。この
スレッドは、入出力完了がメモリを解放するまでブロッ
クされたままになっているであろう。
【0041】ドライバ構成資源は、Scsi−opおよ
び入出力ベクトル(IOV)リスト・プールに関連して
いる。IOVリストは、ディスクとの間でやり取りされ
るメモリの開始値と長さ値のリストである。これらのメ
モリ・プールは、プールのサイズを指定するために調整
可能なパラメータを使うことによって一日の初めに初期
化される。もしScsi−opまたはIOVプールが空
であれば、新しい入出力が入ってこれらのプールを大き
くする結果になるであろう。いずれかのプールを大きく
するために一時に1ページ(4096バイト)のメモリ
が割り当てられる。その新しいページからすべてのSc
si−opsまたはIOVが解放されるまで、そのペー
ジは解放されない。もしION212がScsi−op
sに関するページまたはページを絶えず割り当てたり解
放したりしているならば、関連するパラメータを調整す
ることが望ましいかもしれない。
【0042】すべての資源不足処理はイベントを通じて
ログ(記録)される。
【0043】一日の初めの処理 一日の初めにHLD502は、その必要な構成とプール
とを初期化し、そしてアダプタ固有のドライバとハード
ウエアとを初期化するための呼出しを行う。一日の初め
処理は、(1)Scsi−Opプールを割り当てること
と、(2)IOVプールを割り当てることと、(3)フ
ァイバ・チャネル構成とハードウエアとを初期化するた
めにFCIhw−init()への呼出しを行うこと
と、(4)割込みサービス・ルーチンcs−initr
()を適当な割込みベクトルに結合することとを行うc
s−init()への呼出しによって開始される。
【0044】失敗の処理 ION212ダイポールの二つの半分は、共通セットの
ディスク装置に付加される。ダイポール226内のIO
N212、214は両者とも何時でも所定のときにすべ
ての装置にアクセスできなくてはならない。HLD50
2から見て、失敗のために特別の処理はない。
【0045】コマンド・ページ 本発明のION212は、SCSIコマンドの実際のビ
ルディングから共通部と装置固有部とを抽出するコマン
ド・ページ方式を使用する。コマンド・ページは、各関
数がSCSIコマンド(例えばSCSI−2−Test
−Unit−Ready)を表す関数へのポインタのリ
ストである。上述のように、ある特定のコマンド・ペー
ジは、ある装置の初期オープンまたはアクセス時にその
装置に結合される。すべての業者独自のそして柔軟性の
ないSCSI装置の癖は、その装置固有のコマンド・ペ
ージを介して参照される関数によって管理される。一般
的なシステムは、柔軟性のないSCSI装置あるいは業
者独自のSCSIコマンドの統合を可能にするために、
コマンド・コントロール・セット(CCS)と、SCS
I・IおよびSCSI・IIページと、業者独自ページ
とを一緒に付けて出荷される。
【0046】コマンド・ページ関数は、装置共通部50
3と装置固有部504とFCIローレベル・ドライバ5
06(要求センス)とから仮想装置(Virtual
DEVice(VDEV))インタフェースと呼ばれる
インタフェースを介して呼び出される。これらのレベル
では、ソフトウエアは、装置がどのSCSI方言を使う
かを気にせずに、単に意図した関数を装置が実行するこ
とを気にかける。
【0047】各コマンド・ページ関数は、SCSIコマ
ンドを構築して、必要ならば、直接メモリ・アクセス
(DMA)データ転送のためにメモリを割り当てる。そ
れからこの関数は、ドライバ共通部503に制御を返
す。その後、ドライバ共通部503は、待ち行列上にS
CSI操作を配置し(必要であればここで分類が行われ
る)、FCIローレベル・ドライバ506の起動ルーチ
ンを呼び出すことによってそのSCSIコマンドを実行
する。そのコマンドが実行されたのち、もしそのコマン
ド・ページ関数のなかに「割込み時呼出し:Call
On Interrupt(COI)」ルーチンが存在
すれば、完了後のコマンドのデータ/情報をそのドライ
バのドライバ共通部503が吟味する前に、COIが呼
び出されるであろう。
【0048】返されたデータ/情報をマッサージするこ
とによってCOIは、非標準のSCSIデータ/情報を
標準のSCSIデータ/情報に変換することができる。
例えばもし装置の問合せデータがバイト8の代わりにバ
イト12で始まる業者IDを含んでいるならば、問合せ
に関するコマンド・ページ関数は、業者IDを、返却さ
れた問合せデータのバイト8にシフトするCOIを含む
ことになるであろう。ドライバ共通部503は常に、バ
イト8で始まる業者ID情報を抽出するであろうから非
標準装置について知る必要がなくなる。
【0049】JBODおよびSCSI構成モジュール RAID制御部の重要な機能は、損失しないようにデー
タを確保することである。この機能を実行するためにR
AIDソフトウエアは、ディスク装置が何処に常駐して
いてその配線がそれをどのように接続しているかを物理
的に知らなくてはならない。それ故、RAID制御部技
術実現の重要な要件は、記憶装置の構成を制御する能力
である。JBODおよびSCSI構成モジュール516
のJBOD部には、ION212のための静的なJBO
D構成を定義することが課せられている。JBODおよ
びSCSI構成モジュール516によって記述される構
成情報は、表3に示す。
【0050】
【表3】 アダプタとJBOD筐体222と記憶ディスク224と
の物理的位置情報に加えて、FCIローレベル・ドライ
バ506とドライバ装置固有部504入口点ならびにコ
マンド・ページ定義のような他の構成情報も記述しなく
てはならない。この情報を与えるためにspace.c
ファイルが使われ、またION212がION物理ディ
スク・ドライバ500のコンパイル時に構成情報を構築
する。サポートされているION212構成が変更され
る場合には、新しいバージョンのION物理ディスク・
ドライバ500がコンパイルされなくてはならない。
【0051】ファイバ・チャネル・インタフェース(F
CI)ローレベル・ドライバFCIローレベル・ドライ
バ506は、ハイレベル・ドライバ502用のSCSI
インタフェースを管理する。ドライバ共通部503とF
CIローレベル・ドライバ506との間のインタフェー
スは、下記のルーチンを含んでおり、ここで“xx”
の表示はFCIローレベル・ドライバ506が制御する
ハードウエアに関する一意の識別子である(例えばFC
Ihw−init)。 ・xxhw−init ハードウエアを初期化する。 ・xxhw−open ホスト・アダプタの現在状態を決定する。 ・xxhw−config ホスト・アダプタの構成情報(SCSI ID等 )を設定する。 ・xxhw−start 可能であれば、SCSI操作を起動する。 ・xxhw−intr すべてのSCSI割込みを処理する。
【0052】ローレベル・ドライバは、装置の仕様につ
いて知ることも気にかけることもない純粋なSCSIド
ライバであるが、その代わりに単に上位レベルからのS
CSIコマンドの導管である。この層には、割込みサー
ビス・ルーチンとハードウエア初期化ルーチンとマッピ
ングおよびアドレス変換ルーチンと誤り回復ルーチンと
が常駐している。更に同じシステム内に複数の型のロー
レベル・ドライバが共存できる。ハードウエア制御層と
ドライバの残りの部分との間のこの分割は、同じハイレ
ベル・ドライバが異なるマシン上で走行することを可能
にしている。
【0053】FCIモジュールの基本機能は、(1)S
CSIハイレベル・ドライバ(SHLD)にインタフェ
ース接続してSCSI OpをFCI作業オブジェクト
構成(入出力ブロック(IOB))に変換することと、
(2)異なるHIM508を介して新しいファイバ・チ
ャネル・アダプタのサポートを容易にするために共通イ
ンタフェースを提供することと、(3)いかなるFC−
4プロトコル層(図示の実施例のファイバ・チャネル・
プロトコル(FCP))によって使うことのできるFC
−3共通サービスを提供することと、(4)HIM50
8またはハードウエアが応答しない場合にHIMに送ら
れた非同期コマンド(例えばFCPコマンド、FC−3
コマンド、LIPコマンド)を保護するタイマー・サー
ビスを提供することと、(5)(a)入出力要求ブロッ
ク(IOB)と(b)ベクトル表と(c)HIM508
資源(例えばホスト・アダプタ・メモリ、DMAチャネ
ル、入出力ポート、スクラッチ・メモリ)とを含むファ
イバ・チャネル・ドライバ全体(FCIとHIM)のた
めの資源を管理することと、(6)ファイバ・チャネル
調停ループ使用(対ファイバ・チャネル・ファブリッ
ク)を最適化することとである。
【0054】FCIローレベル・ドライバ506用の重
要なデータ構造のリストを下記の表4に示す。
【0055】
【表4】 FC基本データ構造
【0056】誤り処理 FCIローレベル・ドライバ506が処理する誤りは、
ファイバ・チャネルおよび/またはFCI自身に固有の
誤りである傾向がある。
【0057】多段階誤り処理 FCIローレベル・ドライバ506は、ある幾つかの誤
りを多段階誤り処理によって処理する。これは、誤り処
理手法が誤りの型にとって最適化されることを可能にす
る。例えば、もしより危険の少ない手順が使われて、効
果がない場合には、更に激しい誤り処理対策がとられる
ことがある。
【0058】失敗したIOB すべての入出力要求は、入出力要求ブロックを介してH
IM508に送られる。下記は、HIM508が送り返
すことのできる、起こり得る誤りである。
【0059】
【表5】 HIM誤り条件
【0060】資源不足 FCIローレベル・ドライバ506は、IOB用の資源
プールとベクトル表とを管理する。これらのプールのサ
イズはION212構成向けに調整されるであろうか
ら、これらの資源が枯渇することはなく、単純な回復手
順が実現される。
【0061】もしIOBまたはベクトル表を求める要求
が行われてその要求を満足させるために十分な資源がな
い場合には、その入出力は待ち行列に戻されて入出力を
再起動させるためのタイマーがセットされる。資源不足
の発生はログに記録される。
【0062】一日の初め処理 一日の初めにハイレベル・ドライバ502は、サポート
されている各ローレベル・ドライバ(FCIローレベル
・ドライバ506を含む)に呼出しを行う。FCIロー
レベル・ドライバ506の一日の初め処理は、下記の操
作を実行するFCIhw−init()ルーチンを呼び
出すことから始まる。
【0063】先ず、特定のPCIバスと装置のためにH
IM−FindController()関数が呼び出
される。これは、あるバージョンのFindContr
oller()を呼び出す。JBODおよびSCSI構
成モジュール516は、探索すべきPCIバスと装置と
を指定する。次ぎに、もしアダプタ(ADAPTECか
ら使用可能なアダプタのような)が見つかれば、そのア
ダプタにHCBが割り当てられて初期化される。それか
らスクラッチ・メモリ、メモリ・マップされた入出力、
DMAチャネルといったそのアダプタ固有の資源を取得
するために、HIM−GetConfiguratio
n()が呼び出される。次ぎに、資源が割り当てられて
初期化され、ADAPTEC HIMとハードウエアと
を初期化するために HIM−Initializ
e()が呼び出される。最後にIOBとベクトル表とが
割り当てられて初期化される。
【0064】失敗処理 ION212ダイポールの二つの半分は、共通セットの
ディスク装置に取り付けられる。両方のION212
は、何時でも所定のときにすべての装置にアクセスでき
なくてはならない。FCIローレベル・ドライバ506
から見て、失敗に関する特別の処理はない。
【0065】ハードウエア・インタフェース・モジュー
ル(HIM) ハードウエア・インタフェース・モジュール(HIM)
508は、ADAPTECのSlimHIM509にイ
ンタフェース接続するように設計されている。HIMモ
ジュール508は、FCIローレベル・ドライバ506
からの要求をSlimHIM509が理解できてハード
ウエアに発行できる要求に変換するという主要な責任を
持っている。これは、入出力ブロック(IOB)要求を
取り入れることと、そのIOB要求をSlimHIM5
09によって理解される、それに対応する転送制御ブロ
ック(TCB)要求に変換することとを含んでいる。
【0066】HIM508の基本機能は、(1)アダプ
タに対して、Find(見つける)、Configur
e(構成する)、Initialize(初期化す
る)、SendI/O(入出力を送る)を行うハードウ
エア固有の関数へのローレベル・アプリケーション・プ
ログラム・インタフェース(API)を定義すること
と、(2)入出力ブロック(IOB)をSlimHIM
/ハードウエアが理解できるTCB要求(例えばFCプ
リミティブTCB、FC拡張リンク・サービス(EL
S)TCB、SCSI−FCP操作TCB)に変換する
ためにFCIローレベル・ドライバ506にインタフェ
ース接続することと、(3)SlimHIMに発行され
たコマンドの引渡しと完了とを追跡することと、(4)
SlimHIMからの割込みとイベント情報とを解釈し
て、FCIローレベル・ドライバ506と共同で適当な
割込み処理および/または誤り回復を起動することとで
ある。TCBのデータ構造は下記の表6に示す。
【0067】
【表6】 基本的なHIM構造
【0068】一日の初め処理 HIM508は、一日の初めに使われる3個の入口点を
定義する。第1の入口点は、HIM−FindAdap
terであって、これはFCIhw−init()によ
って呼び出され、PCI BIOSルーチンを使って所
定のPCIバスおよび装置上にアダプタが常駐している
かどうかを決定する。そのアダプタについてのPCI業
者・製品IDは、そのアダプタが存在するかどうかを決
定するために使われる。
【0069】第2の入口点は、HIM−GetConf
igurationであって、これはアダプタが存在す
る場合にFCIhw−init()によって呼び出さ
れ、与えられたHCBの中に資源要件を入れる。ADA
PTECアダプタについてこれらの資源は、IRQとス
クラッチとTCBメモリとを含む。この情報は、Sli
mHIM509に呼出しを行うことによって求められ
る。
【0070】第3の入口点は、HIM−Initial
izeであって、これは資源が割り当てられて初期化さ
れた後にFCIhw−init()によって呼び出さ
れ、TCBメモリ・プールを初期化し、SlimHIM
を呼出してスクラッチ・メモリとTCBとハードウエア
とを初期化する。
【0071】失敗処理 ION216ダイポールの二つの半分は、共通セットの
ディスク装置に取り付けられる。ION212、214
の両者は、何時でも所定のときにすべての装置にアクセ
スできなくてはならない。HIM509から見て、失敗
に関する特別の処理はない。
【0072】AIC−1160 SlimHIM SlimHIM509モジュールは、アダプタのハード
ウエア概念を与えるという全体的な目的を持っている
(図示の実施例ではADAPTEC AIC−116
0)。このSlimHIM509は、ファイバ・チャネ
ル要求をAIC−1160アダプタに移送し、割込みを
サービスし、SlimHIM509インタフェースを介
してHIMモジュールに状態を報告するという主要な役
割を持っている。
【0073】SlimHIM509はまた、AIC−1
160ハードウエアの制御を担っており、これを初期化
し、ファームウエアをロードし、実行時動作を起動し、
AIC−1160の誤りの場合にAIC−1160ハー
ドウエアの制御を行う。
【0074】外部インタフェースとプロトコル ION物理ディスク・ドライバ・サブシステム500の
すべての要求は、共通のハイレベル・ドライバ502を
介して行われる。
【0075】Initialization(cs−i
nit) このサブシステムへの単一の呼出しは、入出力用に装置
を準備するために必要となるすべての初期化を実行す
る。サブシステム初期化期間中にすべての装置あるいは
アダプタハードウエアと同じく、すべてのドライバ構造
が割り当てられて初期化される。
【0076】Open/Close(cs−open/
cs−close) オープン/クローズ(Open/Close)インタフ
ェース510は、装置へのアクセスに必要な構造を初期
化して分解する。このインタフェース510は、すべて
の「オープン」と「クローズ」とが暗示的に層状にされ
ているという理由から一般のオープン/クローズ・ルー
チンとは異なっている。したがって入出力物理インタフ
ェース・ドライバ500が受け取るすべての「オープ
ン」は、受信されて関連付けられた「クローズ」を伴っ
ていなければならず、また装置関連構造は、すべての
「オープン」が「クローズ」されるまで解放されない。
オープン/クローズ・インタフェース510は、「オー
プン」または「クローズ」の返却がその要求の完了を示
すと言うことにおいて同期している。
【0077】Buf−t(cs−strategy) Buf−tインタフェース512は、装置への論理ブロ
ック読取り・書込み要求の発行を可能にする。要求者
は、入出力を記述するBuf−t構造を伝える。装置I
D、論理ブロック・アドレス、データ・アドレス、入出
力の型(読取り/書込み)、呼戻しルーチンといった属
性は、Buf−tによって記述される。要求が完了する
と、要求者による呼戻しによって指定された関数が呼び
出される。Buf−tインタフェース512は、非同期
インタフェースである。要求者への関数の返却は、その
要求が完了したことを示すわけではない。関数が返され
るとき、入出力はその装置上で実行中であってもなくて
もよい。要求は、実行されるのを待つ待ち行列上にあっ
てもよい。この要求は、呼戻し関数が呼び出されるまで
は完了しない。
【0078】SCSILib SCSILib514は、装置に送るべき通常の読取り
・書込み以外のSCSIコマンド記述子ブロック(CD
B)を可能にするインタフェースを提供する。このイン
タフェースによって、ディスクを回転させたり停止させ
るために装置起動・停止といった要求が使われ、また密
閉装置を監視したり制御するためにSend、Rece
ive(送信、受信)診断が使われるであろう。すべて
のSCSILibルーチンは、同期している。呼び出さ
れた関数の返却は、要求の完了を示す。
【0079】Interrupts(cs−intr) ION物理ディスク・ドライバ500は、すべてのSC
SIおよびファイバ・チャネル・アダプタの割込みのた
めの中心的なディスパッチャである。一実施例ではフロ
ントエンド/バックエンド割込み方式が利用される。こ
のような場合に割込みが行われると、フロントエンド割
込みサービス・ルーチンが呼び出される。フロントエン
ドは、割込みスタックから実行し、また割込み源を除去
することと、更に割込みを発生させないようにアダプタ
を切り離すことと、バックエンド割込みサービス・ルー
チンをスケジューリングすることとに責任を持ってい
る。バックエンドは、実際に割込み(アダプタ割込みの
切り離しとバックエンド・タスクの開始との間に発生し
たかもしれなかった他のいかなる割込みとも一緒に)を
処理する優先度の高いタスクとして実行する。
【0080】ION機能 ION212は、5個の主要な機能を実行する。これら
の機能には下記のものが含まれる。
【0081】記憶装置の命名と投影:記憶ディスク22
4上に記憶された記憶資源オブジェクトのイメージをコ
ンピューティング・ノード200に投影することによっ
て、一様で一貫性のある記憶装置の命名を提供するため
にコンピューティング・ノード200と調和的動作をす
る。
【0082】ディスク管理:ION212と機能的に連
結された記憶ディスク駆動機構224を用いてデータ分
散およびデータ冗長の技術を実現する。
【0083】記憶装置管理:コンピューティング・ノー
ド200からの入出力要求の処理、性能上の機器構成お
よびイベント分散を含めて記憶装置の設定、データ移動
などを処理するためのもの。
【0084】キャッシュ管理:アプリケーション・ヒン
ト・プリフェッチといったキャッシュ・フル操作を含む
読み・書きデータのキャッシングのためのもの。
【0085】相互接続管理:性能を最適化するためにコ
ンピューティング・ノード200との間のデータの流れ
を制御し、要求の経路指定を制御し、またしたがってダ
イポール226内の二つのION212の間での記憶の
分配を制御する。
【0086】記憶装置の命名および投影 ION212は、記憶ディスク224上に記憶された記
憶資源オブジェクトのイメージをコンピューティング・
ノード200に投影する。この機能の重要な役割は、I
ON212によって管理される各記憶資源(仮想ファブ
リック・ディスクを含む)に関して、グローバルに一意
の名前、ファブリック独自のID、あるいはボリューム
・セット識別子(VSI)602の作成と割り当てであ
る。
【0087】図6は、VSIの構造と内容および関連デ
ータを示す図である。VSI602が一意であって競合
しないことは重要であるから、各ION212は、その
ION212によってローカルに管理される記憶資源に
関してグローバルに一意の名前を作成して割り当てるこ
とに責任があり、また記憶資源オブジェクトを記憶する
記憶資源を管理するそのION212だけがその記憶資
源に関してVSI602を割り当てることが許される。
常駐記憶資源を現に管理しているION212だけはV
SI602を作成して割り当てることができるが、他の
ION212は、その後にそれらの記憶資源の記憶と検
索とを管理することができる。これは、もしION割り
当てのVSI602が他のIONによって管理される記
憶資源に後で移されても、ある特定のデータ・オブジェ
クトについてのVSI602は変更する必要がないから
である。
【0088】VSI602は、ION識別子604とシ
ーケンス番号506という二つの部分を含む64ビット
の数として実現される。ION識別子604は、各IO
N212に割り当てられるグローバルに一意の識別番号
である。グローバルに一意のION識別子604を得る
一つの手法は、しばしばリアルタイム・クロック・チッ
プに格納される電子的に読取り可能なマザーボード通し
番号を使うことである。この通し番号は、ただ一つのマ
ザーボードに割り当てられるだけであるから一意であ
る。ION識別子604がグローバルに一意の番号であ
るから、各ION212は、ローカルにだけ一意である
シーケンス番号を割り当てることができ、また更にグロ
ーバルに一意のVSI602を作成することができる。
【0089】VSI602がION212上の記憶資源
に結合されたのちに、そのION212は、その記憶資
源104へのアクセスを可能にするファブリック上のす
べてのノードに対して同報メッセージを介してVSI6
02を移出する。この処理は、本書のION名前移出セ
クションで更に論ずる。
【0090】それからコンピューティング・ノード20
0ソフトウエアは、移出されたVSI602を使って、
他のいかなるローカルに付加された記憶装置とは区別が
つかないということにおいて意味的にトランスペアレン
トであるその記憶資源についてのローカルの入口点を作
成する。例えばもしコンピューティング・ノードのオペ
レーティング・システム202がUNIXであったとす
ると、ブロック装置入口点と裸装置入口点の両者とも、
周辺装置108またはディスク210といったローカル
に付加された装置に類似の装置ディレクトリ内に作成さ
れる。他のオペレーティング・システム202について
も同様な意味的に同等なものがついてくる。異なるオペ
レーティング・システム202を走行させるコンピュー
ティング・ノード200の間では、異種コンピューティ
ング環境を最も良くサポートするためにルート名の整合
性が維持される。
【0091】コンピューティング・ノード200内のロ
ーカルの入口点は、移出された記憶資源104の現在の
可用性を追跡するためにION212によって動的に更
新される。VSI602は、移入された記憶資源につい
て装置入口点名を作成するためにコンピューティング・
ノード200上で走行するOS依存のアルゴリズムによ
って使われる。この手法は、共通のオペレーティング・
システムを共用するノード間での名前の整合性を保証す
る。これは、各コンピューティング・ノード200上の
グローバルに命名された記憶資源のためのローカルな入
口点を動的に(静的の代わりに)作成することによって
異種コンピューティング環境をサポートするために、シ
ステムがルート名の整合性を維持することを可能にして
いる。
【0092】上述のように記憶資源104に関するVS
I604の作成の詳細は、記憶資源104を移出してい
るION212によって直接制御される。コンピューテ
ィング・ノード200間の潜在的なオペレーティング・
システム104の違いを説明するために、1個以上の記
述的ヘッダが各VSI602に結合されて、ION21
2上のVSI602と一緒に格納される。各々のVSI
602記述子608は、特定のVSI602に関するコ
ンピューティング・ノード200上の装置入口点の矛盾
のない(名前と動作上の意味の両者がコンピューティン
グ・ノード200全体に亘って同じである)作成のため
に必要な十分なOS202依存性のデータを格納するた
めのオペレーティング・システム(OS)依存データ・
セクション610を含んでいる。
【0093】このOS依存データ610は、例えばロー
カルなアクセス権612を記述するデータと所有権情報
614とを含んでいる。VSI602がION212に
よって確立され、コンピューティング・ノード200に
よって移出された後で、しかしVSI602に関連した
その記憶資源104のための入口点が作成されるよりは
前に、適当なOS固有データ610は、ION212に
よってコンピューティング・ノード200に送られる。
一つのVSI602当たり多数の記述的ヘッダは、異な
るOS(各OSはそれ自身の記述子ヘッダーを持ってい
る)を走らせる多数のコンピューティング・ノード20
0のサポートと、異なるコンピューティング・ノード2
00グループ間でのばらばらのアクセス権のサポートと
の両方を同時に可能にする。同じ記述子ヘッダを共用す
るコンピューティング・ノード200は、装置入口点の
共通で矛盾のない作成を共用する。このようにして名前
と動作上の意味の両者とも、共通セットのアクセス権を
共有するすべてのコンピューティング・ノード200上
で整合性を維持することができる。
【0094】VSI記述子608はまた、別名フィール
ド616を含んでおり、これは人間が読取れるVSI6
02名をコンピューティング・ノード200上に表示す
るために使用できる。例えばもしVSI1984の別名
が「soma」であれば、コンピューティング・ノード
200は、1984と「soma」の両方に関するディ
レクトリ・エントリを持つことになるであろう。VSI
記述子608はION212上のVSI602と一緒に
格納されるので、VSI602を移入する各コンピュー
ティング・ノード200上には同じ別名とローカル・ア
クセス権とが現れるであろう。
【0095】前述のように本発明は、分散型割当て方式
に適する命名手法を使用している。この手法では、名前
はグローバルな一意性を保証するアルゴリズムにしたが
ってローカルに作成される。これの変形は、各システム
ごとに中心的な命名サーバが存在する、ローカルに集中
化する手法を追求することもできようが、可用性と頑丈
さとの要件からは純粋な分散型手法を重く見ている。上
述のことを使って、本発明はグローバルな一意性を保証
するローカルに実行可能なアルゴリズムを作成すること
ができる。
【0096】グローバルに整合性のある記憶システムを
作成することは、コンピューティング・ノード200全
体に亘って名前の整合性を保存するだけでなくサポート
することを更に必要とする。名前の整合性は、安全保護
の問題であって、これは本発明では二つの形式を採る。
第一は、ION212とコンピューティング・ノード2
00との間のインタフェースの安全保護であり、第二
は、コンピューティング・ノード200内からの記憶の
安全保護である。
【0097】記憶の認証と認可 VSI602資源は、認証と認可という二つの異なる機
構で保護されている。もしコンピューティング・ノード
200がION212によって認証されれば、VSI名
がそのコンピューティング・ノード200に移出され
る。移出されたVSI602は、コンピューティング・
ノード200上に装置名として現れる。コンピューティ
ング・ノード200上で走行するアプリケーション・ス
レッドは、この装置名で操作の実行を試みることができ
る。装置入口点のアクセス権とコンピューティング・ノ
ード200のOS意味論とは、アプリケーション・スレ
ッドがいかなる所定の認可でも実行するように権限付与
されているかどうかを決定する。
【0098】この認可の手法は、コンピューティング・
ノード200の認可を、相互接続ファブリック106に
よってアクセス可能な何処にでも配置される記憶資源に
まで拡張する。しかしながら本発明は、本発明において
は記憶資源104がコンピューティング・ノード200
によって直接的に管理されないということで、他のコン
ピュータ・アーキテクチャとは異なっている。この相違
は、ローカルの認可データを単にファイル・システム・
エンティティに結合することを実行できなくする。その
代わりに本発明は、コンピューティング・ノード200
認可方針データをION212のVSI602と結合さ
せて、コンピューティング・ノード200とION21
2とがあるレベルの相互信頼を共有する二段階手法を用
いる。ION212は、ある所定のVSI602への各
コンピューティング・ノード200アクセスを認可する
が、VSIによって指示されたデータに対する特定のア
プリケーション・スレッドの認可の更なる改良は、この
コンピューティング・ノード200の責任である。それ
からコンピューティング・ノード200は、ION21
2によって記憶された認可メタデータ内に含まれる方針
を使って、記憶エンティティ104に関する認可方針を
実行する。
【0099】したがってコンピューティング・ノード2
00は、ION212を信頼してメタデータを保存する
ことを要求され、またION212に対してはコンピュ
ーティング・ノード200を信頼してその認可を実行す
ることを要求する。この手法の一つの利点は、ION2
12に対してメタデータを解釈する方法に関する知識を
持つことを要求しないということである。したがってI
ON212は、コンピューティング・ノード200によ
って使われている異なるオペレーティング・システム2
02によって課せられた異なる認可意味論によって課せ
られた特定の認可意味論を実行することから分離され
る。
【0100】VSI602に関連するすべてのデータ
(アクセス権を含めて)は、ION212に格納される
が、アクセス権データの内容を管理する責任はコンピュ
ーティング・ノード200に置かれている。特にION
212によって移出されるVSI602のリストがコン
ピューティング・ノード200に送られると、ローカル
な認可を実行するようにそのコンピューティング・ノー
ド200によって要求されるOS固有データのすべては
各VSI602に結合される。例えばUNIXを走行さ
せるコンピューティング・ノード200は、名前とグル
ープ名とユーザIDとモード・ビットとを、すなわちフ
ァイル・システムに装置入口ノードを作るために十分な
データを送られるであろう。
【0101】コンピューティング・ノードのオペレーテ
ィング・システム202のそのクラスにとって固有の
(あるいは正にそのコンピューティング・ノード200
にとって固有の)VSI602の別の名前は、各VSI
602と一緒に含まれる。記憶装置のアクセス権を変更
するローカルのOS固有コマンドは、コンピューティン
グ・ノード200ソフトウエアによって捕捉されてIO
N212に送られるメッセージに変換される。このメッ
セージは、OSバージョンに固有のVSIアクセス権デ
ータを更新する。この変更が完了したときION212
は、システム内でそのOSを使っているすべてのコンピ
ューティング・ノード200にこの更新を送信する。
【0102】コンピューティング・ノード(CN)20
0がオンラインになるとそれは、「自分はここにいま
す」というメッセージを各ION212に送信する。こ
のメッセージは、このコンピューティング・ノード20
0を識別するディジタル署名を含んでいる。もしこのコ
ンピューティング・ノード200がION212によっ
て知られれば(ION212がコンピューティング・ノ
ード200を認証すれば)、ION212は、そのコン
ピューティング・ノード200がアクセス権を有するす
べてのVSI名を移出する。コンピューティング・ノー
ド200は、VSI名のこれらのリストを使ってシステ
ム記憶用のローカル・アクセス入口点を構築する。この
コンピューティング・ノード200内で走行するアプリ
ケーション204がローカル端点を参照すると、コンピ
ューティング・ノード200はそのVSI602用のア
クセス権記述データに関するあるメッセージを相互接続
ファブリック106に亘って送信することによってIO
N212に対して要求を行う。
【0103】この要求メッセージは、要求しているコン
ピューティング・ノード200に関するディジタル署名
を含んでいる。ION212は、このメッセージを受け
取り、ディジタル署名を使って、応答時に送るべきVS
Iアクセス権の適当なセットを突き止め、要求中のコン
ピューティング・ノード200にそのデータを相互接続
ファブリック106を介して送信する。ION212は
コンピューティング・ノード200に送られたアクセス
権を解釈しないで単にそのデータを送るだけである。コ
ンピューティング・ノード200ソフトウエアは、この
データを使って、この主題の記憶オブジェクトのための
ローカル入口点にローカルアクセス権の適当なセットを
結合する。
【0104】一セットのコンピューティング・ノード2
00は、同じディジタル署名を使うか、多数の異なる署
名を同じセットのアクセス権に結合するかいずれかによ
ってこの同じセットのアクセス権を共有できる。本発明
は、コンピューティング・ノード200を識別するため
と、どのセットのローカル認可データを使ってローカル
入口点を作成するかを指定するためとの両方に認証を使
う。認可データは、VSI602が最初にアプリケーシ
ョンによって参照されるときにコンピューティング・ノ
ードに引き出されるだけである。この「必要時に引く」
モデルは、非常に大きなシステム上で大量のアクセス権
メタデータを移動させることの運転開始コストを回避す
る。
【0105】もしコンピューティング・ノード200が
認証に失敗するならば、ION212はVSI602名
を持たないメッセージを送り返し、そして認証失敗フラ
グがセットされる。コンピューティング・ノード200
は、そのION212からのVSI装置名なしで黙って
続行することができ、またシステム管理者の希望によっ
てその認証失敗を報告することもできる。もちろん認証
に成功してもVSI装置名をコンピューティング・ノー
ドに送らないことにしてもよい。
【0106】起動時の競合解消 ION212は起動するとき、VSI602を相互接続
ファブリック106に移出しようとする。このような場
合、システムのデータ完全性は新しいION212によ
る破壊から保護されなくてはならない。これを達成する
ために新しいION212は、記憶の移出が許される前
に検査される。これは次のように遂行される。最初にI
ON212は、そのローカル記憶を調べて、移出可能な
VSI602のリストを作成する。VSI602メタデ
ータは、VSIの世代番号または変更番号を含む。この
VSI変更番号は、そのVSI602に関連した主な状
態変更があるときは何時でも(VSIが、あるネットワ
ークにうまく移出されたときなど)増やされる。コンピ
ューティング・ノード200とION212とを含め
て、VSI競合検出に関与するすべてのノードは、移出
されたVSIの履歴とそれらの変更番号とをメモリ内に
保持する。
【0107】相互接続ファブリック106上のすべての
ノードは、移出されたVSI602をVSI競合に関し
て絶えず監視することが必要とされる。最初にVSI変
更番号は(記憶領域が最初に生成されたとき)ゼロにセ
ットされる。変更番号は、移出された前回よりも低い変
更番号を持った移出VSI602は、真のVSI602
に関連したION212が使われなくなった場合でも偽
のVSIであると想定されることがあり得るると言うこ
とにおいて、競合解消基準を提供する。真のVSI60
2に関連した変更番号よりも高い変更番号を有するIO
N212に付加された偽のVSI602は、真のVSI
602上で既に入出力が実行されてしまったのでなけれ
ば、真のVSI512と見なされる。相互接続ファブリ
ック106に新たに導入されたION212は、0から
始まるその変更番号を持つ必要がある。
【0108】ION212は、システムに入りたいと公
表したのちに、VSI602とそれ関連の変更番号との
そのリストを送信する。その他のすべてのION212
とコンピューティング・ノード200は、このリストを
取得してから、VSI602リストを移出するためにI
ON212の妥当性を検査する。
【0109】同じVSI602を現在移出中の他のIO
Nは、妥当であると想定され、競合している特定のVS
Iの移出を許可しないというメッセージを新しいION
512に送る。もし新しいION512がシステム内で
現に使われている番号よりも大きい世代番号または変更
番号を持っているならば(VSIはグローバルに一意で
あるから、通常の運用では起こるはずのないケース)、
このことは記録され、必要な処置は何でも取るシステム
管理者に報告される。もし競合が存在しなければ、各I
ON212とコンピューティング・ノード200は、進
行票で応答する。すべてのION212とコンピューテ
ィング・ノード200とからの応答が受信されると、競
合していない新しいION212VSI602のすべて
は自分の世代番号を増加させて、移出に関してシステム
に利用可能となる。
【0110】コンピューティング・ノード200がVS
I602へのアプリケーション参照とアクセスとを持っ
ているとき、そのコンピューティング・ノード200は
現在の世代番号をローカルに追跡するであろう。新しい
ION212がVSI602を公表する(移出しようと
する)ときは何時でも、コンピューティング・ノード2
00は、VSI602によって公表された世代を、その
VSI602に関してローカルに記憶されている世代番
号に対して検査する。もし世代番号が一致すれば、コン
ピューティング・ノード200は進行することに票を投
じるであろう。
【0111】もし世代番号が競合していれば(旧いバー
ジョンのVSIがオンラインにされた場合にあり得るよ
うに)、コンピューティング・ノード200は不許可メ
ッセージを送るであろう。そのVSI602に関して新
しいION212によって公表された世代番号よりも旧
い世代番号を持っているコンピューティング・ノード2
00は、進行に票を投じて、そのVSI602に関する
世代番号のローカル・バージョンを更新するであろう。
コンピューティング・ノード200は再ブートの間で世
代番号を保存しないが、これは、基本設計が、相互接続
ファブリック106に亘るシステムが安定であること
と、コンピューティング・ノード200とION212
とを含めてすべての新規参入者が整合性について検査さ
れることとになっているからである。
【0112】最初の電源投入は、VSI602に関する
名前領域の安定性が問題になる状況を作りだすことがあ
る。この問題は、先ずION212に電源投入して、そ
れからコンピューティング・ノード200が参入を許さ
れる前にこれらのION212が名前競合の解消を続行
することを可能にすることとによって、対処される。そ
れから古くなったVSI602のバージョン(ディスク
駆動機構上の旧いデータと他の世代を遡る条件から)
は、その世代番号を介して解決される。コンピューティ
ング・ノード200がVSI602を使っていないかぎ
り、より高い世代番号を有する新規参入者は、特定のV
SI602の現行移出者を無効にすることができる。
【0113】名前サービス ION名の移出 ION212は、関連する記憶装置へのアクセスを可能
にすることを排他的に所有するVSI602のワーキン
グ・セットを移出する。ION212によって移出され
るVSIのワーキング・セットは、兄弟ION(ダイポ
ール226内の他方のION212で、214として示
される)とのVSI所有権折衝を通じて動的に決定さ
れ、またこれは相互接続ファブリック106との通信を
行うすべてのノード内でグローバルに一意であるべきで
ある。このセットは、一般的にはION212に割り当
てられたVSI602の省略時セットまたはPRIMA
RY(主)セットである。動的負荷最適配分のためのV
SI移動と、兄弟ION214障害と入出力経路障害と
を含む例外条件とは、移出VSI602がPRIMAR
Yセットと異なるようにセットされる結果をもたらすこ
とがある。
【0114】VSIのワーキング・セットは、このワー
キング・セットがコンピューティング・ノード200に
最新のVSI602構成を供給するために変わるときは
何時でも、同報メッセージを介してION212によっ
て移出される。コンピューティング・ノード200はま
た、VSI602のそのワーキング・セットについてI
ON212に問い合わせることもできる。VSI602
への入出力アクセスは、一旦ION212が移出VSI
602に関してオンライン状態に入るか、再び入るかす
ると、コンピューティング・ノード200によって初期
化できる。前に述べたようにION212は、移出VS
I602内にいかなる競合でも存在する場合には、オン
ラインに入ることが許されない。一塊の記憶装置に関連
のVSI602は、すべて一意的であるべきであるが、
多数の塊の記憶装置が同じVSIを持っている場合には
競合が発生する機会がある(例えばもしVSIがION
212ハードウエアとION212管理のシーケンス番
号とに関連した一意のIDから構成されていて、そのI
ON212ハードウエアが物理的に移された場合)。
【0115】一旦ワーキング・セットが移出されると、
移出しているION212は、移出されたVSI602
への入出力アクセスを可能にするためにオンラインに入
る前に、競合検査タイマー(2秒)をセットする。競合
検査タイマーは、移入者が競合検査処理を行うために十
分な時間を与えようとしまた、移出者に競合を知らせよ
うとするが、タイマーが非常に大きな値にセットされて
いなければこれは保証できない。したがってION21
2は、公式にオンラインに入るすべてのノード(コンピ
ューティング・ノード200とION212)からの明
示的な承認を必要とする。オンライン同報メッセージは
すべてのノードによって同時に応答され、またその結果
は併合されて同報で返される。ION212は、もし併
合された応答がACK(肯定応答)であれば公式にオン
ライン状態に入る。もしION212がオンラインに入
ることを許されなければ、新たに移出されたVSI60
2のセットはアクセスできない。NAK(否定応答)を
送ったノードは、競合を解消するために移出者に、続い
てVSI競合メッセージを送る。一旦この競合が解消さ
れれば、ION212は調整済みのワーキング・セット
を移出して再びオンラインに入ろうとする。
【0116】CN名の移入 コンピューティング・ノード200は、すべてのION
212によって移出されたすべてのVSI504を移入
するための処置をとる責任がある。一日の初め処理の時
に、コンピューティング・ノード200は、名前領域の
最新のビューを取得できるように、前に移出されたVS
I602についてのすべてのオンラインION212か
ら依頼する。その時点からコンピューティング・ノード
200は、VSI602の移出に関して耳をそば立て
る。
【0117】VSI602に関連する制御情報はION
212によって維持させるvsnode(VSノード)
に入っている。VSノードのコンピューティング・ノー
ド200部は、アプリケーション204に提示される名
前の構成と管理のために使われる情報を含んでいる。V
Sノード情報は、ユーザ・アクセス権と名前の別名とを
含んでいる。
【0118】名前領域と別名 VSI602は、関連の記憶装置にアクセスするための
代替の名前を与える、アプリケーション定義の名前別名
を持つように構成できる。名前別名は、1セットの名前
を論理的にグループ化するために仮想記憶領域に付加す
ることができる。名前別名は仮想記憶領域内で一意でな
ければならない。
【0119】VSNODE コンピューティング・ノード200によってVSノード
に加えられる修正は、即座の更新と処理のためにそれを
所有しているION212に送られる。それからこのV
Sノード変更は、変更を移出してオンライン状態に再び
入ることによってION212からすべてのノードに伝
えられる。
【0120】記憶ディスクの管理 JBOD筐体222は、ディスク装置のために物理的環
境を提供することと、ディスク装置と筐体の管理アプリ
ケーションに幾つかのサービスを提供することとに責任
を持っている。これらのサービスの一部には、(1)コ
ンポーネント障害の通知(電源、ファン等)と、(2)
しきい値の通知(温度と電圧)と、(3)故障ランプと
状態ランプの点灯・消灯と、(4)可聴警報の鳴動・停
止と、(5)ディスク装置の装置IDの設定とが含まれ
る。
【0121】従来は管理アプリケーションは、一般に帯
域外接続によって筐体にインタフェース接続していた。
単純なネットワーク管理プロトコル(SNMP)のよう
なプロトコルを使うことに加えて遠隔の筐体へのシリア
ル・アタッチメントまたはイーサーネット・アタッチメ
ントが筐体の健康に関する状態情報の受信を可能にして
いた。本発明ではディスク筐体はホスト・システムから
物理的に離れていることがあるので、別の直列の経路と
いった直接接続によって筐体の構成と状態を監視するこ
とは実用的ではない。余分の配線を避けるために本発明
は、筐体状態を監視することと、通常の既存のファイバ
・チャネル・ループ全体に亘る筐体構成を制御すること
とを備える帯域内接続を使用する。
【0122】帯域内接続は、構成状態を問い合わせて制
御するためにSCSI装置に送られる、ホストから発信
される1セットのコマンドと、筐体との間でこの情報を
通信する装置のための機構とを使用する。ホストとディ
スク駆動機構との間のプロトコルの一部は、SCSI−
3エンクロージャ・サービス(SES)仕様に詳述され
ており、これは参考のためにここに組み入れてある。
【0123】SESインタフェースを実現するために、
三つのSCSIコマンド、INQUIRYとSEND
DIAGNOSTICとRECEIVE DIAGNO
STIC RESULTSとが使われる。INQUIR
Yコマンドは、所定の装置がエンクロージャ・サービス
装置であるか、エンクロージャ・サービス処理にSES
コマンドを移送することのできる装置であるかどうかを
指定する。SENDDIAGNOSTICとRECEI
VE DIAGNOSTIC RESULTSとは、そ
れぞれ筐体エレメントからの状態情報を制御し、受信す
るために使われる。
【0124】SEND DIAGNOSTICコマンド
またはRECEIVE DIAGNOSTIC RES
ULTSコマンドを使うときには、ページ・コードを指
定しなくてはならない。ページ・コードは、何という型
の状態または情報が要求されているかを指定する。
【0125】SEND DIAGNOSTICコマンド
とRECEIVE DIAGNOSTICRESULT
Sコマンドとによって要求できる定義されたSESペー
ジのフルセットは下記の表7に詳しく示す。太字の項目
は、SESイベント・モニターによって要求される。
【0126】
【表7】
【0127】ESアレー状態 アプリケーション・クライアントは、1よりも大きい最
小割当て長さを有する筐体状態ページを要求するREA
D DIAGNOTIC RESULTSコマンドを実
行することによって定期的にその筐体にポーリングを行
うことができる。1バイトで返される情報は、筐体の状
態を要約した5ビットを含んでいる。これらのビットの
一つがセットされれば、アプリケーション・クライアン
トは、状態全部を取得するためにより大きな割当て長さ
を持つコマンドを再発行することができる。
【0128】ION筐体管理 図7は、ION筐体管理モジュールとION物理ディス
ク・ドライバ・アーキテクチャ500との間の関係を示
す。二つのコンポーネントがこのサブシステム−SES
イベント・モニター702とSCC2+〜SESガスケ
ット704とを構成する。SESイベント・モニター7
02は、付加されたエンクロジャ・サービス処理をすべ
て監視することと、状態変更の場合にそれをイベント・
ロギング・サブシステム経由で報告することとに責任を
持っている。この報告は、必要ならば管理サービス層7
06に転送できる。SCC2+〜SESガスケット・コ
ンポーネント704は、構成・保守アプリケーションか
らくるSCC2+コマンドを一つ以上のSESコマンド
に変換してエンクロージャ・サービス処理に送ることに
責任を持っている。これは、アプリケーション・クライ
アントがJBOD構成の仕様を知る必要をなくしてい
る。
【0129】SESイベント・モニター SESイベント・モニター702は、エンクロージャ2
22サービス処理状態の変化を管理サービス層706に
報告する。状態情報は、イベント・ロギング・サブシス
テムを介して報告される。SESイベント・モニター7
02は、筐体情報ページを要求するREAD DIAG
NOSTIC RESULTSコマンドを実行すること
によって各筐体処理を定期的にポーリングする。REA
D DIAGNOSTIC RESULTSコマンド
は、ION物理装置ディスク・ドライバ500によって
与えられるように、SCSILibインタフェース51
4を介して送られるであろう。報告できる状態は、下記
の表8にリスト化されている状態項目を含んでいる。
【0130】
【表8】 筐体状態値
【0131】SESイベント・モニター702が起動す
ると、筐体内に含まれている各エレメント402〜42
4に関する状態を読み取る。この状態は、現在状態であ
る。状態変化が検出されると、現在状態から変化した各
状態は、管理サービス層706に報告される。今度はこ
の新しい状態が現在状態となる。例えばもしファン・エ
レメントの現在状態がOKであって、ある状態変化がフ
ァン障害としてこのエレメントを報告するとすれば、フ
ァン障害を特定するイベントが報告されるであろう。こ
んどは別の状態変化がエレメントが設置されていないこ
とを特定すれば、ファンが筐体から除去されたことを特
定する別のイベントが報告されるであろう。もし別の状
態変化がファン・エレメントがOKであることを特定す
れば、ファンがホット・プラグインされて正しく動作し
ていることを特定する別のイベントが生成されるであろ
う。
【0132】一日の初め処理 SESイベント・モニター702は、ION物理ディス
ク・ドライバ500の初期化が成功した後に起動され
る。起動の後、SESイベント・モニター602は、J
BODおよびSCSI構成モジュール516を読み取っ
て、ディスク装置とエンクロージャ・サービス装置との
相関と、装置がどのようにアドレス指定されるかとを見
つける。次ぎに各筐体状態装置の状態が読み取られる。
それから誤り条件と紛失エレメントすべてについてイベ
ントが生成される。これらのステップが完了した後で
は、今度の状態は現在状態であり、ポーリングが始ま
る。
【0133】SCC2+〜SESガスケット SCC2+は、仮想装置と物理装置とを構成して管理す
るためにION212によって使われるプロトコルであ
る。SCC2+の中のプラス“+”は、ION212の
装置とコンポーネントとを十分に管理し易くし、またS
CC2定義のコマンドのSESへの矛盾のないマッピン
グを可能にするSCC2への追加部分を表す。
【0134】サービス層706は、SCC2 MAIN
TENANCE INコマンドとSCC2 MAINTENANCE OUTコマンドとによってJ
BOD筐体222エレメントを取り扱う。次のセクショ
ンでは、コンポーネントの状態を構成し、制御し、報告
するための機構を提供するサービス動作について説明す
る。これらのコマンドの各々は、SEND DIAGN
OSTICコマンドとRECEIVE DIAGNOS
TIC RESULTSコマンドという一連のコマンド
としてION212上で実現されるであろう。
【0135】コンポーネントの構成は下記のサービス機
能を用いて実行される。
【0136】ADD COMPONENT DEVIC
E(コンポーネント装置を追加する)−このADD C
OMPONENT DEVICEコマンドは、コンポー
ネント装置をシステム内に構成するためと、それらのL
UNアドレスを定義するためとに使われる。LUNアド
レスは、SES構成ページ内のコンポーネント位置に基
づいてION212によって割り当てられる。REPO
RT COMPONENT DEVICEサービス機能
は、LUN割当ての結果を取得するためにこのコマンド
に続いて実行される。
【0137】REPORT COMPONENT DE
VICE(コンポーネント装置を報告する)−このRE
PORT COMPONENT DEVICE STA
TUSサービス機能は、コンポーネント装置に関する十
分な状態情報を検索することを意図した業者独自のコマ
ンドである。SESは、各エレメント型ごとに4バイト
の状態を与える。この新しいコマンドは、REPORT
STATESおよびREPORT COMPONEN
T DEVICEサービス機能が状態情報のために1バ
イトだけを割り当てていて、定義された状態符号はSE
S規格によって定義された状態符号と競合するという理
由から必要となる。
【0138】ATTACH COMPONENT DE
VICE(コンポーネント装置を付加する)−このAT
TACH COMPONENT DEVICEは、一つ
以上の論理装置が所定のコンポーネント装置に論理的に
付加されることを要求する。このコマンドは、ボリュー
ム・セットと、ファン、電源等といった、ボリューム・
セットが依存するコンポーネント装置との間に論理的結
合を形成するために使うことができる。
【0139】EXCHANGE COMPONENT
DEVICE(コンポーネント装置を交換する)−EX
CHANGE COMPONENT DEVICE機能
は、一つのコンポーネント装置が他の装置に交換される
ことを要求する。
【0140】REMOVE COMPONENT DE
VICE(コンポーネント装置を削除する)−REMO
VE PERIPHERAL DEVICE/COMP
ONENT DEVICEサービス機能は、周辺装置ま
たはコンポーネント装置がシステム構成から削除される
ことを要求する。もし論理装置を取り付けたコンポーネ
ント装置が削除されつつあるならば、このコマンドはC
HECK CONDITIONで終了させられるであろ
う。センス・キーは、REMOVE OF LOGIC
AL UNIT FAILEDという追加のセンス修飾
子を持ったILLEGAL REQUESTとなるであ
ろう。
【0141】あるコンポーネントに関する状態その他の
情報は、下記のサービス機能によって取得できる。
【0142】REPORT COMPONENT ST
ATUS(コンポーネントの状態を報告する)−REP
ORT COMPONENT DEVICE STAT
USサービス機能は、コンポーネント装置に関する全部
の状態情報を検索することを意図した業者独自のコマン
ドである。SESは、各エレメント型ごとに4バイトの
状態を与える。これらREPORT STATESおよ
びREPORT COMPONENT DEVICEサ
ービス機能は、状態情報のために1バイトだけ割り当て
ており、定義された状態符号はSES規格によって定義
された状態符号と競合する。したがってこの新しいコマ
ンドが必要となる。
【0143】REPORT STATES(状態を報告
する)−REPORT STATESサービス機能は、
選択された論理装置に関する状態情報を要求する。各論
理装置ごとに一つ以上の状態のリストが返される。
【0144】REPORT COMPONENT DE
VICE(コンポーネント装置を報告する)−REPO
RT COMPONENT DEVICEサービス機能
は、JBOD内のコンポーネント装置に関する情報を要
求する。LUN記述子の順序付けリストが返され、LU
Nアドレスとコンポーネント型と全体の状態とを報告す
る。このコマンドは、ADD COMPONENT D
EVICEサービス機能によって割り当てられたLUN
アドレスを決定するために初期構成処理の一部として使
われる。
【0145】REPORT COMPONENT DE
VICE ATTACHMENTS(コンポーネント装
置アタッチメントを報告する)−REPORT COM
PONENT DEVICE ATTACHMENTS
サービス機能は、所定のコンポーネント装置に取り付け
られた論理装置に関する情報を要求する。各々がLUN
記述子のリストを含んでいるコンポーネント装置記述子
のリストが返される。LUN記述子は、対応するコンポ
ーネントに取り付けられた各論理装置ごとに型とLUN
アドレスとを指定する。
【0146】REPORT COMPONENT DE
VICE IDENTIFIER(コンポーネント装置
識別子を報告する)−REPORT COMPONEN
TDEVICEIDENTIFIERサービス機能は、
所定のコンポーネント装置の位置を要求する。コンポー
ネントの位置を示すASCII値が返される。この値
は、SETCOMPONENT DEVICE IDE
NTIFIERサービス機能によって前もって設定して
おかなくてはならない。
【0147】コンポーネントの管理は、下記によって行
われる。
【0148】INSTRUCT COMPONENT
DEVICE(コンポーネント装置に命令する)−IN
STRUCT COMPONENT DEVICEコマ
ンドは、電源の投入・切断といった制御命令をコンポー
ネント装置に送るために使われる。ある特定の装置に与
えられる機能は、コンポーネントの型によって変わり、
また業者固有である。
【0149】BREAK COMPONENT DEV
ICE(コンポーネント装置を故障とする)−BREA
K COMPONENT DEVICEサービス機能
は、指定されたコンポーネントを故障状態にする。
【0150】相互接続ファブリック 概要 これは、より多くのデータの移動を可能にするので、本
発明のファブリック取付け記憶装置モデルは、データ・
コピーと割込み処理コストによる入出力性能問題に取り
組まなくてはならない。データ・コピーと割込みと流れ
制御の問題は、独自の組合せの方法によって本発明で取
り扱われる。大抵のネットワークによって使われている
宛て先ベースのアドレス指定モデルとは異なり、本発明
は、データがファブリック上を伝送される前に送信側が
宛て先側の目標バッファを選択する送信側ベースのアド
レス指定モデルを使う。送信側ベースのモデルでは、宛
て先側は、メッセージが送られる前にそのメッセージを
送くることのできる宛て先アドレスのリストを送信側に
送る。メッセージを送るために送信側は先ず、このリス
トから宛て先側バッファを選択する。これが可能である
のは、目標側アプリケーションは既に目標ネットワーク
・ハードウエアによって使われるこれらのバッファのア
ドレスをOSに与えており、またしたがってネットワー
ク・ハードウエアはコピーなしでDMA操作を介してデ
ータを直接正しい目標バッファに送り込むために十分な
情報を与えられているという理由からである。
【0151】幾つかの点では有益であるが、送信側ベー
スのアドレス指定には幾つかの問題がある。第一に、送
信側ベースのアドレス指定は、送信側を含めて宛て先か
らファブリックに亘る保護領域を拡大することになり、
一般的な分離の不足を作りだし、データの安全保護と完
全性の問題を引き起こすことになる。純粋な送信側ベー
スのアドレス指定は、メモリ・アドレスを送信側に解放
し、宛て先側が送信側を信頼することを要求しており、
可用性の高いシステムにおける主要な問題となる。例え
ば宛て先ノードが宛て先アドレスのリストを送信側に与
えた場合を考えてみる。送信側がこれらのアドレスをす
べて使う前に、宛て先ノードがクラッシュし、それから
再ブートする。さて送信側は、もはや有効でなくなった
アドレス・バッファのセットを持っている。宛て先側は
それらのアドレスを別の目的に使っているかもしれな
い。それらのアドレスのどれかに送られたメッセージ
は、重要なデータが宛て先側で破壊されるといった重大
な結果をもたらすかもしれない。
【0152】第二に、送信側ベースのアドレス指定の実
現は、データのDMAを起動できる前にメッセージから
宛て先アドレスを抽出するようにネットワークの協力を
必要とするが、大抵のネットワーク・インタフェースは
このような動作をするようには設計されていない。
【0153】必要とされるのは、送信側ベースのアドレ
ス指定の利点を取り込んでこれらの問題を回避するアド
レス指定モデルである。本発明は、BYNETに基づい
て相互接続ファブリックを使う独自の「put it
there:そこに置く」(PIT)プロトコルを使用
するハイブリッド・アドレス指定モデルによってこの問
題を解決する。
【0154】BYNETおよびBYNETインタフェー
ス BYNETは、本発明を実現するために有用な三つの重
要な属性を持っている。
【0155】第一に、BYNETは本来、拡張可能であ
る−接続の追加や帯域幅の追加が容易に導入でき、シス
テム内のすべてのエンティティに直ちに利用可能であ
る。これは、接続の追加の結果として帯域幅を追加しな
い他のバス指向の相互接続技術とは対照的である。他の
相互接続に比較すると、BYNETは、末広がり(単一
のファブリックに接続可能なポートの数)による拡張だ
けでなく、末広がりで拡張する二分割帯域幅も持ってい
る。
【0156】第二に、BYNETは、アクティブ・メッ
セージ相互接続であるようにソフトウエアによって改良
できる−そのユーザ(すなわちコンピューティング資源
102と記憶資源104)の指示の下でそれらの動作の
混乱を最小限にしてノード間でデータを移動させること
ができる。これは、不必要な割込みと内部的なデータの
コピーとを回避しながら、あらかじめ決められたメモリ
・アドレスに直接データを移動させるためにDMAを使
用する。この基本的な手法は、データ・ブロックを更に
大きな一つの相互接続メッセージ内に多重化することに
よって、より小さなデータ・ブロックの移動を最適化す
るように拡張することができる。個別のデータ・ブロッ
クの各々は、相互接続利用を最適化する一方、ノードの
動作効率の利点を保持しながら、DMAベースの手法の
修正を使って処理することができる。
【0157】第三に、BYNETは複数のファブリック
を備えるように構成できるので、トラヒック整形を使っ
て更に相互接続を最適化することができる。これは本質
的に、例えば長短のメッセージのランダムな組合せが使
用頻度の高い共用チャネルで引き起こすことのある干渉
を減らして、ある幾つかの相互接続チャネル(ファブリ
ック)をある幾つかの種類のトラヒックに割り当てる、
BYNETソフトウエアによって提供される機構であ
る。トラヒック整形は、BYNETによって可能にさ
れ、予測可能なトラヒック・パターンをユーザが選択で
きるようになる。
【0158】図8は、BYNETとそのホスト側インタ
フェース802の図を示す。BYNETのホスト側イン
タフェース802は、回線が生成されたときは何時でも
チャネル・プログラムを実行するプロセッサ804を含
んでいる。チャネル・プログラムは、各ノードごとに送
信側806インタフェースと宛て先側808インタフェ
ースの両方においてこのプロセッサ804によって実行
される。送信側インタフェース806ハードウエアは、
回線の生成とデータの伝送と最終的な回線の機能停止と
を制御するダウンコール時に生成されるチャネル・プロ
グラムを実行する。宛て先側インタフェース808ハー
ドウエアは、宛て先側のメモリにデータを送付しから回
線を完了させるチャネル・プログラムを実行する。
【0159】BYNETは、コンピューティング・ノー
ド200とION212とを相互接続するネットワーク
を含んでおり、これらのノードはそのネットワーク内で
プロセッサとして機能する。BYNETは、入出力ポー
ト814を持った複数のスイッチ・ノード810を含ん
でいる。スイッチ・ノード810は、g(logbN)
個よりも多いスイッチ・ノード・ステージ812に配列
されており、ここでbはスイッチ・ノード入出力ポート
の総数であり、Nはネットワーク入出力ポート816の
総数であり、またg(x)は引き数xよりも大きくない
最小の整数を与えるシーリング(最高限度)関数であ
る。したがってスイッチ・ノード810は、障害許容力
を高め、競合を減らすために、いかなるネットワーク入
力ポート816とネットワーク出力ポート816との間
にも複数の経路を備えている。BYNETはまた、メッ
セージの伝送を全ネットワーク中に向けるために、ネッ
トワークの最も高いスイッチ・ノード・ステージに沿っ
てバウンスバック面818内に複数のバウンスバック点
を含んでいる。バウンスバック点は、メッセージを受信
プロセッサに向けるスイッチ・ノード810からネット
ワークを介して平衡メッセージをロードするスイッチ・
ノード810間を論理的に区別する。
【0160】コンピューティング・ノード200、IO
N212といった、ノード内に実現されたプロセッサ
は、論理的に独立した、あらかじめ定義されたサブセッ
トのプロセッサからなる一つ以上のスーパークラスタに
分割できる。プロセッサ間の通信は、ポイントツーポイ
ントでもマルチキャストでも可能である。マルチキャス
ト・モードの通信では単一のプロセッサが他のすべての
プロセッサまたはスーパークラスタに対してメッセージ
を同報することができる。異なるスーパークラスタ内の
マルチキャスト・コマンドは、同時に発生し得る。送信
側プロセッサは、順方向通信路を介して伝搬するそのマ
ルチキャスト・コマンドをすべてのプロセッサあるいは
すべてのプロセッサ・グループに送信する。マルチキャ
スト・メッセージは、引き続いてスーパークラスタ内の
プロセッサに経路指定するためにネットワーク内のバウ
ンスバック面のある特定のバウンスバック点に向けられ
る。これは、一度に特定のバウンスバック点を通るマル
チキャスト・メッセージを一つだけ許し、異なるスーパ
ークラスタに向かうマルチキャスト・メッセージが互い
に干渉するのを防止するので、ネットワークのデッドロ
ックを防止する。マルチキャスト・メッセージを受信し
たプロセッサは、例えば逆方向通信路を介して自分の現
在状態を送信することによってそのメッセージに応答す
る。BYNETは、種々の仕方でこれらの応答を結合す
るように機能することができる。
【0161】BYNETは現在、帯域内メッセージと帯
域外メッセージという二つの基本的な型のメッセージを
サポートしている。BYNET帯域内メッセージは、宛
て先側ホストのメモリにあるカーネル・バッファ(一つ
または複数)内にメッセージを送付し、回線を完了し、
アップコール割込みを通知する。BYNET帯域外メッ
セージによって回線メッセージ内のヘッダ・データは、
BYNETドライバ内の割込みハンドラに、受信してい
る回線データの残り分を処理するために使われるチャネ
ル・プログラムを生成させる。これら両方の型のメッセ
ージに関して、チャネル・プログラムの成功あるいは失
敗は、BYNET逆方向通信路上の小さなメッセージを
介して送信側に返される。この逆方向通信路メッセージ
は、送信側のチャネル・プログラムによる回線の機能停
止操作の一部として処理される。(逆方向通信路は、B
YNET回線内の低帯域幅帰路である)。回線が機能停
止した後に、新しいメッセージの到着を知らせるために
宛て先側にアップコール割込みが(オプションで)通知
される。
【0162】BYNET帯域外メッセージの使用は、初
めにチャネル・プログラムが生成され、それから実行さ
れるのを送信側が待つことになるので、最適な構成では
ない。BYNET帯域内メッセージは、送信側がアプリ
ケーション・バッファを直接的に目標とすることを許さ
ず、したがってデータ・コピーを必要とする。この問題
を解決するために本発明は、独自の仕方でBYNETハ
ードウエアを使う。データを処理するために必要とする
チャネル・プログラムを宛て先側インタフェース808
に生成させる代わりに、送信側インタフェース806が
送信側と宛て先側両者のチャネル・プログラムを生成す
る。送信側チャネル・プログラムは宛て先側が実行する
であろう非常に小さなチャネル・プログラムをメッセー
ジの一部として転送する。このチャネル・プログラム
は、宛て先側が目標アプリケーション・スレッドの所定
の宛て先バッファの中にデータをどのようしてに移動さ
せるべきかを記述している。
【0163】送信側はこのメッセージが送付されること
になっている宛て先スレッドを知っているので、この手
法は宛て先側での従来型のアップコール処理の欠点の大
部分を回避して、送信側がメッセージを送付すべき方法
と場所の両方を制御するのを可能にする。この形式のB
YNETメッセージは、有向帯域メッセージと呼ばれ
る。アクティブ・メッセージ・プロセス間通信モデルで
使われるアクティブ・メッセージ(これは、宛て先側で
メッセージを処理するために使われるデータと小さなメ
ッセージ・ハンドラを含む)とは異なり、本発明は、B
YNET入出力プロセッサが単純なチャネル・プログラ
ムを実行する一方、通常ホストCPUがアクティブ・メ
ッセージでアクティブ・メッセージ・ハンドラを実行す
るBYNET有向帯域メッセージを使用する。
【0164】逆方向通信路の使用は、メッセージ送達完
了を知らせる従来型割込み方法を送信側インタフェース
が抑制することを可能にしている。帯域外メッセージと
有向帯域メッセージの両者に関して、送信側での完了成
功の表示は、メッセージが宛て先側メモリ内に確かに送
付されたことを示すだけである。
【0165】これは、宛て先ノードのメモリ空間内にメ
ッセージが確かに移動したことを保証するが、宛て先側
アプリケーションによるメッセージの処理を保証するも
のではない。例えば宛て先ノードは、機能的なメモリ・
システムを持っているかもしれないが、宛て先側アプリ
ケーション・スレッドにはメッセージの処理を妨げる障
害があるかもしれない。本発明ではメッセージの信頼で
きる処理を取り扱うために、メッセージ処理の障害の検
出と訂正の両方のために幾つかの方法を独立に採用して
いる。本発明に関する通信プロトコルによれば、紛失メ
ッセージを検出するために送信側でタイムアウトが使わ
れる。再送信は、必要により発生しまた、ソフトウエア
障害かハードウエア障害が検出された場合に回復動作を
誘発することもできる。
【0166】有向帯域メッセージによっても本発明は、
宛て先側の所定の目標と、メッセージを正しい目標アプ
リケーション・スレッド・バッファに送るために十分な
データを送信側に与える機構とに対するメッセージ送付
を可能にしなくてはならない。本発明は、チケット・ベ
ースの認証方式によってこの芸当を達成している。チケ
ットは、偽造できないデータ構造であって、持ち主に権
利を与えるものである。本質的にチケットは、ある資源
を一回使う許可または権利である。本発明ではION2
12は、チケットの分配によってコンピューティング・
ノード200に対するサービスの分配を制御できる。更
にチケットは、所定の目標、送信側ベースの流れ制御モ
デルを実現するための必要な要件を指定する。
【0167】「Put it There:そこに置
く」(PIT)プロトコル 概要 PITプロトコルは、BYNET有向帯域メッセージ・
プロトコルを使ってアクティブ・メッセージにチケット
とデータ・ペイロードとを送るチケット・ベースの認証
方式である。PITプロトコルは、チケット・ベースの
認証と送信側ベースのアドレス指定とクレジット/デビ
ット(借方/貸方)流れ制御とゼロ・メモリ・コピーと
アクティブ・メッセージとの一意的混合である。
【0168】PITメッセージ 図9は、PITメッセージまたはパケット901の基本
的特徴を示しており、これはペイロード・データ904
を伴うPITヘッダ902を含んでいる。PITヘッダ
902は、目標データ・バッファの要約を表すPIT
ID906を含んでおり、また所定のサイズのピン留め
されたバッファへのアクセス権を表す寿命の限られたチ
ケットである。PIT ID906を所有するエレメン
トは、そのバッファを使う権利を有するエレメントであ
り、PITバッファが使われたときにPIT ID90
6は廃棄されなくてはならない。宛て先側がPITメッ
セージを受け取ると、PITヘッダ内のPITID90
6は、DMA操作によってペイロードが移されるべきB
YNETハードウエアに対して目標バッファを指定す
る。
【0169】PITプロトコル下での流れ制御は、送信
側ベースのアドレス指定を使うクレジット/デビット
(借方/貸方)モデルである。PITメッセージが送ら
れると、これは送信側に対する流れ制御デビットと宛て
先側に対する流れ制御クレジットとを表す。言い換えれ
ばもしある装置がPIT ID906をあるスレッドに
送ったとすると、そのスレッドはアドレス空間内のPI
Tバッファをクレジット(信用貸し)される。もしその
装置がPIT ID906をそのその送信側に返却すれ
ば、装置はその権利を放棄するか、PIT ID906
によって指定されたバッファを解放するかどちらかをす
ることになる。ある装置がPIT ID906によって
抽出された宛て先バッファにメッセージを送ると、その
装置はまたPITバッファに対するその権利を放棄す
る。装置がPIT ID906を受信すると、それは送
信側のアドレス空間内のPITバッファのためのクレジ
ット(貸方)となる(そのPIT ID906が、返却
されている装置のPIT ID906でなければ)。
【0170】ヘッダ902の最上部には、PITパケッ
ト901を処理するであろうBYNETチャネル・プロ
グラム908(送信側と宛て先側)がある。次ぎに、ク
レジット(貸方)フィールド910とデビット(借方)
フィールド912というPIT IDを送るための二つ
のフィールドがある。デビット・フィールド912は、
ペイロード・データがチャネル・プログラムを介して宛
て先側ネットワーク・インタフェースによって転送され
るであろうPIT ID906を含んでいる。PIT
ID906が送信側アプリケーション・スレッドのため
のデビット(宛て先側スレッドにおけるクレジット)で
あるから、これはデビット・フィールドと呼ばれる。ク
レジット・フィールド910は、送信側スレッドがPI
Tバッファを宛て先側スレッドに転送するあるいはクレ
ジット(信用貸し)するところである。クレジット・フ
ィールド910は一般に、送信側スレッドが返却メッセ
ージを送られると期待しているPIT ID906を保
持している。クレジットPITのこの使用法はまた、S
ASE(self−addressed stampe
d envelope:自動アドレス指定型切手付き封
筒)PITとも呼ばれる。
【0171】コマンド・フィールド914は、目標がペ
イロード・データ904について実行すべき操作(例え
ばディスク読取りまたは書込みコマンド)を記述してい
る。引き数フィールド916は、このコマンドに関連す
るデータである(例えば読取りまたは書込み操作を実行
すべきディスク上のディスクおよびブロック番号)。シ
ーケンス番号918は、発信元ノードと宛て先ノードと
の対の各々に関して一意である、単調に増加する整数で
ある。(各ノード対は、各方向ごとに一つのシーケンス
番号を持つ)。長さフィールド920は、PITペイロ
ード・データの長さをバイトで指定する。フラグ・フィ
ールド922は、PITメッセージの処理を修正する種
々のフラグを含んでいる。一例は、複製メッセージ・フ
ラグである。これは、一つのイベントの2回以上の処理
を防止するために潜在的な紛失メッセージの再送信時に
使われる。
【0172】最初にシステムが起動するとき、ノード
は、他のノードに関するPIT ID906を持ってい
ない。BYNETソフトウエア・ドライバは、PIT最
初オープン・プロトコルが完了するまでは、いかなる有
向帯域メッセージの送付も防止する。PIT ID90
6の分配は、コンピューティング・ノード200上のア
プリケーション・スレッドがION212上に配置され
た何らかの仮想ディスク装置のために最初オープンを行
うときに開始される。最初オープンの期間中、ION2
12とコンピューティング・ノード200とは、操作パ
ラメータが交換される折衝の段階に入る。最初オープン
・プロトコルの一部は、PIT ID906の交換であ
る。PIT ID906は、インタフェースが送信側で
のDMA収集と宛て先側でのDMA分散の両方をサポー
トするので、二つ以上のバッファを指示できる。このア
プリケーションは、他のいかなるノード上のいかなるア
プリケーションへもPIT ID906を自由に配布す
ることができる。
【0173】このコンピューティング・ノード200と
ION212との間で交換されるべきPITバッファの
サイズと数は、調整可能な値である。デビット(借方)
およびクレジット(貸方)PIT ID906(デビッ
ト・フィールド912とクレジット・フィールド910
内のPIT ID906)の交換は、システムに関する
流れ制御モデルの基礎を形成する。送信側は、クレジッ
ト(信用貸し)されたPIT ID906が存在するだ
け多くのメッセージを宛て先側に送ることができる。こ
れは、所定のホストが送ることのできるメッセージの数
を制限する。これはまた、各ノードがそれ自身のPIT
ID906のプールを持っているので、各送信側はそ
れに割り当てられたPIT ID906をせいぜい使い
切ることができると言うことにおいて公平さを保証して
いる。
【0174】ION212は、それがコンピューティン
グ・ノード200に発行したPITチケットのプールを
制御する。コンピューティング・ノード200に対する
PIT ID906の初期割当ては、最初オープン・プ
ロトコルの時に発生する。配布されるPIT ID90
6の数は、一時にION212とION212内のメモ
リ資源とを使う同時にアクティブなコンピューティング
・ノード200の数の推定値に基づいている。これは単
に推定値であるから、PITプールのサイズは、動作中
にION212によって動的に調整することもできる。
PIT資源のこの再配分は、多数のコンピューティング
・ノード200からの要求をサービスする際の公平さを
保証するために必要である。
【0175】アクティブなコンピューティング・ノード
200のためのPIT再割当ては、下記のように進めら
れる。アクティブなコンピューティング・ノード200
は絶えず入出力要求を行っているから、PIT資源は完
了した入出力要求内のPITクレジットの流れを制御す
ることによってアクティブなコンピューティング・ノー
ド200に再配分される。適当なレベルに達するまでは
PITクレジットはION212完了によって送られる
ことはない(そのコンピューティング・ノード200に
関するPITプールを減らして)。既にPIT割当てを
持っているがアクティブでない(そして資源を拘束して
いる)コンピューティング・ノード200に関しては、
更に困難な状況が示される。
【0176】このような場合にION212は、PIT
(またはPIT IDのリスト)を無効にするメッセー
ジを各遊休コンピューティング・ノード200に送るこ
とができる。もし遊休コンピューティング・ノード20
0が応答しなければ、ION212はそのノードに関す
るPIT IDをすべて無効にして、それらのPITI
Dを他のコンピューティング・ノード200に再配分す
ることができる。遊休コンピューティング・ノード20
0が再割当てされたPITを使おうとすると、そのコン
ピューティング・ノード200は、最初オープン・プロ
トコルに強制的に戻される。
【0177】コンピューティング・ノード200へのP
IT割当てを増やすことは、下記のようにして達成され
る。新たに割り当てられたPIT IDを何処かのコン
ピューティング・ノードに送るために、PIT割当てメ
ッセージを使うことができる。代替手法は、各入出力完
了メッセージ内に二つ以上のPITクレジットを送るこ
とであろう。
【0178】動作時のPITプロトコル−ディスクの読
取りと書込み PITプロトコルを説明するために、ION212から
の記憶ディスク224読取り操作に関するコンピューテ
ィング・ノード200要求の論議を示す。ここでは、最
初オープンは既に行われていて、コンピューティング・
ノード200とION212の両者には十分な数の空き
PITバッファが存在していると仮定する。アプリケー
ション・スレッドは、ディスクのデータがコンピューテ
ィング・ノードのハイレベルSCSIドライバ(CNシ
ステム・ドライバ)に転送されることになっているバッ
ファのアドレスを渡す、読取りシステム呼出しを実行す
る。
【0179】CNシステム・ドライバは、この要求を含
むPITパケット(仮想ディスク名とブロック番号とデ
ータ長とを含む)を作成する。それからCNシステム・
ドライバの上半分は、デビットおよびクレジットPIT
IDフィールド910、912に記入する。デビット
PITフィールド912は、この読取り要求が送られつ
つある宛て先側ION212上のPIT ID906で
ある。これは読取り要求であるから、ION212は、
入出力完了パケットを作成するときにアプリケーション
のバッファ(読取りシステム呼出しの一部として提供さ
れるもの)を指定する方法を必要とする。
【0180】PITパケットは送信ベースのアドレス指
定を使うので、ION212は、PIT ID906を
持っている場合だけアプリケーション・バッファをアド
レス指定できる。アプリケーション・バッファは通常の
PITプールの一部ではないので、このバッファはメモ
リ内にピン留めされ、このバッファのためにPITID
906が生成される。読取り要求もまたディスク操作か
ら返却状態を要求するので、返却状態を含むためのPI
T用の分散バッファが生成される。このSASE PI
Tは、読み取られたPITパケットの一部としてクレジ
ット・フィールド内に送られる。それからこのPITパ
ケットは、送出待ち行列の上に置かれる。BYNETイ
ンタフェース802がこのPITパケットを送出する
と、これはDMA操作によって送信側からこのPITパ
ケット移動させ、それから相互接続ファブリック106
に亘って転送する。
【0181】宛て先側BYNETインタフェース808
では、このPITパケットが到着すると、これがBYN
ETチャネル・プロセッサ804によるPITチャネル
・プログラムの実行を誘発する。ホスト側インタフェー
ス802のBYNETチャネル・プロセッサ804は、
ION212上の端点を突き止めるためにデビットPI
T ID906を抽出する。チャネル・プログラムは、
バッファ・アドレスを抽出し、ペイロード・データを直
接PITバッファ内に移動させるようにインタフェース
DMAエンジンをプログラムする−こうしてPITプロ
トコルがゼロ・コピー意味論を備えることを可能にす
る。BYNETインタフェース802は、ION212
上の受信アプリケーションに割込みを通知する。
【0182】コンピューティング・ノード200には、
割込みは発生しない。逆方向通信路メッセージが転送の
失敗を示すときは、その失敗の理由によって入出力が再
試行される。何回かの試みの後でION212誤り状態
になり(詳細には本書のION212の回復操作と失敗
操作を参照のこと)、またコンピューティング・ノード
200は、ダイポールの一方の兄弟ION214によっ
てその要求を処理してもらうことができる。もしメッセ
ージが確かに宛て先ノードのメモリ内に送り込まれたの
であれば、ホスト側ではION212がそのメッセージ
を首尾よく処理することを保証するために再送信タイム
アウト(最悪ケースの入出力サービス時間よりも長い)
を設定する。このタイマーが終了すると、PITメッセ
ージはコンピューティング・ノードによってION21
2に再送される。もし入出力が未だ進行中であれば、複
製の要求は単に打ち切られるが、そうでなければ再送さ
れた要求は正常に処理される。
【0183】図10は、ION212の機能モジュール
のブロック図である。ION212、214への入力は
データ線1002、1004と制御線1006である。
ION212内の各モジュールは、制御線1006と接
続されている制御モジュール1008を含んでいる。制
御モジュール1008は、データ線1002からコマン
ドを受け入れ、またモジュール制御機能を備える。シス
テム機能モジュール1010は、ここに述べたION機
能を実現している。ION212、214は、ファブリ
ック・モジュール1020とキャッシュ・モジュール1
014とデータ障害許容力モジュール1016と記憶モ
ジュール1018とを含んでいる。これらのモジュール
の各々は、制御モジュールと、データ線1002、10
04からのデータを挿入し、検索するための作業負荷イ
ンジェクタ(注入器)1020と、データの通過を禁止
するデータ・フェンス1022とを含んでいる。
【0184】PIT読取り要求がION212に送られ
ると、IONキャッシュ・モジュール1014の作業負
荷インジェクタに転送される。作業負荷インジェクタ
は、その要求がキャッシュされていれば、直接そのデー
タを返すことのできるIONキャッシュ・モジュール1
014に要求を挿入し、あるいはそのデータ用のバッフ
ァを割り当ててそれをION記憶モジュール1018に
渡す。ION記憶システム・モジュール1018は、こ
の要求を一つ(以上)の物理ディスク要求に変換して、
その要求を適当なディスク駆動機構224に送る。ディ
スク読取り動作が完了すると、ディスク制御部はディス
ク読取りの完了を知らせるために割込みを通知する。I
ON作業負荷インジェクタは、入出力完了PTパケット
を生成する。
【0185】デビットPIT ID(デビット・フィー
ルド912内に格納されている)は、読取り要求内のS
ASE PIT(これはアプリケーションがディスクの
データを置きたいと思っている場所である)からのクレ
ジットPIT ID(クレジット・フィールド910内
に格納されている)である。クレジットPIT ID
は、コンピューティング・ノード200がこの要求を送
った同じPIT IDであるか、そのバッファが空いて
いなければ交替のPIT IDであるかのいずれかであ
る。このクレジットPITは、将来の要求を送るための
コンピューティング・ノード・クレジットを与えるであ
ろう(この現在のPIT要求は、ちょうど完了したとこ
ろなので、このION212に対するこのコンピューテ
ィング・ノード200のための待ち行列の深さを1だけ
増加させる)。
【0186】PITを処理した後でION212がPI
Tクレジットを返さない理由は三つある。第一は、IO
N212はそのコンピューティング・ノード200から
の待ち行列に入れられている未解決の要求の数を減らし
たいと思っていることである。第二の理由は、ION2
12はそのPITクレジットを他のコンピューティング
・ノード200に再配分したいと思っていることであ
る。第三の理由は、単一のPITパケットに入れられた
多数の要求があるかもしれないと言うことである(本書
のスーパーPITパケットの論議を参照のこと)。
【0187】コマンド・フィールド914は、読取り完
了メッセージであって、引き数は、ディスク駆動機構読
取り操作からの返却コードである。それからこのPIT
パケットは、コンピューティング・ノード200に送り
返されるためにBYNETインタフェース702への待
ち行列に入れられる。それからBYNETハードウエア
は、このPITパケットをDMAを介してコンピューテ
ィング・ノード200に移動させる。これは、目標PI
Tバッファ(この場合はアプリケーションのピン留めさ
れたバッファ)へのDMAを起動する前にコンピューテ
ィング・ノード200BYNETチャネル・プログラム
がデビットPIT ID912を抽出して検証すること
を誘発する。DMAが完了すると、コンピューティング
・ノード200BYNETハードウエアは、ディスク読
取りが完了したことをアプリケーションに知らせる割込
みを誘発する。ION212上でBYNETドライバ
は、バッファをキャッシュ・システムに返却する。
【0188】図11は、上記に論述したPITプロトコ
ルに伴うデータ伝送においてなされる操作の要約を示す
フローチャートである。まず、第一ノードでおこなうア
プリケーションからの入出力要求に応答し、入出力要求
パケットあるいはPIT 906が、第一ノードで生成
される。入出力要求パケットは、データ伝送要求、相互
接続送り先チャンネルプログラム、データ要求が送られ
る第二ノードバッファを指定する第一デビット(借方)
ID(デビット・フィールド912に記憶される)、入
出力要求に応答するデータが送られる第一ノードバッフ
ァを指定する第一クレジット(貸方)ID(クレジット
・フィールド910に記憶される)からなる。これは、
ブロック1102に記載されている。次に、データ要求
パケットは、相互接続ファブリック106を通じ、第二
ノードに送信される。、相互接続送り先チャンネル・プ
ログラムは、デビット(借方)IDを抽出し、データ要
求を第二ノードバッファに伝送するよう1106で行わ
れる。第二ノードに取り付けられたデータ記憶装置から
の入出力要求のメッセージ信号化完了が第一ノードの1
108に受信される。第一ノードは、ブロック1110
に示されるように、入出力完了パケットを生成するメッ
セージを使用する。この入出力完了パケットは、ブロッ
ク1112に示すように、相互接続ファブリック106
を通じ、第一ノードに送信する。送信側内部連絡チャン
ネルプログラムは第二クレジット(貸方)IDを抽出す
るよう、1114にて行われる。第二クレジット(貸
方)IDは1116にて有効になり、データ伝送要求に
応じるデータは第一ノードに1118により送信され
る。
【0189】書込み要求のために行われた操作は、読取
り操作のために行われた操作と類似している。アプリケ
ーションは、コンピューティング・ノード・ハイレベル
・ドライバを呼出し、データと仮想ディスク名とディス
ク・ブロック番号とデータ長とを含むアドレスを渡す。
コンピューティング・ノード・ハイレベル・ドライバ
は、宛て先ION212上のPIT ID906を選択
して、このデータを使ってPIT書込み要求を生成す
る。SASE PITは、ION212からの書込み操
作の返却状態のみを含むであろう。ION212では、
PITパケットが到着したとき割込みが通知される。
【0190】この要求は、PIT読取り動作と同じよう
に処理される。書込み要求は、最終的にデータをディス
クに書き込むキャッシュ・ルーチンに渡される。ディス
ク書込みが完了すると(あるいはデータがION21
2、214の両者の書込みキャッシュ内に安全に記憶さ
れると)、入出力完了メッセージがコンピューティング
・ノード200に送り返される。ION212が書込み
キャッシュ動作可能状態で走行しているとき、その要求
が送られたそのION212よりもむしろ、ダイポール
内のもう一方のION214が、入出力完了メッセージ
を返す。これは、バーミューダ・トライアングル・プロ
トコルに関して本書で更に詳しく説明する。
【0191】古くなったPIT IDと障害回復問題 最初オープン時のPIT IDの交換は、ハードウエア
障害またはソフトウエア障害のいずれかによって生成さ
れた、古くなったPIT ID906を無効にする機構
である。ION212とコンピューティング・ノード2
00がPIT IDを交換して、突然そのION212
がクラッシュした状況を考えてみる。PIT ID90
6は、メモリ内にピン留めされた目標バッファを表して
おり、無効にされなければ、再ブートしたばかりのIO
N212かコンピューティング・ノード200かいずれ
かに関する未解決PIT ID906は、もはや有効で
ないあるいは古くなったPIT IDのせいで重大なソ
フトウエア完全性問題を引き起こすであろう。BYNE
Tハードウエアと有向帯域メッセージ・サポートとは、
古くなったPIT ID906を無効にするための重要
な機構を提供する。
【0192】最初オープン・プロトコルの終わりで、各
側は、PIT IDが配布されるホストのリストをコン
ピューティング・ノード・ハイレベルSCSIドライバ
に与えなくてはならない。言い換えればホストは、それ
がPITパケットを受け入れるであろうホストのリスト
をコンピューティング・ノード・ハイレベルSCSIド
ライバに与えている。それからコンピューティング・ノ
ード・ハイレベル・ドライバは、このリストを使って、
有向帯域メッセージの送達を制御する表を作成する。こ
の表は、有向帯域メッセージが互いに送られることを可
能にするION212対の組合せを指定する。(この表
は、一方向PITメッセージ流れを指定することもでき
る。)
【0193】このコンピューティング・ノード・ハイレ
ベル・ドライバは、BYNET構成処理の一部として
(ドライバに専用のデータとして)ホスト上で内部的に
この表を保持する。ホストは、コンピューティング・ノ
ード・ハイレベル・ドライバへの簡単な通知メッセージ
によって、何時でもPITプロトコルによってこのリス
トに追加または削除することができる。ノードが故障、
停止、あるいは応答停止のとき、BYNETハードウエ
アは、これを検出してファブリック上の他のすべてのノ
ードに通知するであろう。
【0194】各ノード上のBYNETホスト・ドライバ
は、この通知に応答して、有向帯域ホスト・テーブルか
らそのホストに関するすべての参照事項を削除する。こ
の動作は、そのホストが他のホストに配布した可能性の
あるすべてのPIT ID906を無効にする。これ
は、前に配布されたPITパケットからノードを保護す
るために基本的なことである。そのホスト上のコンピュ
ーティング・ノード・ハイレベル・ドライバが再構成さ
れるまで、BYNETは、そのホストに送られるすべて
のメッセージを放棄するであろう。再構成の後でもロー
カルPITプロトコルによって知らされるまではBYN
ETは、いかなる有向帯域メッセージもこの新たに再起
動または再構成されたホストに送ることを許さないであ
ろう。これは、PITプロトコルが最初オープン・プロ
トコルによって適切に初期化されるまでは、いかなる古
くなったPITパケットの送付も行われないように保護
することになる。
【0195】あるホストが有向帯域メッセージを無効な
ホスト(いま無効にされたPITID906を使ってい
る)に送ろうとすると、送信側のコンピューティング・
ノード・ハイレベル・ドライバは、送信側に対する誤り
条件によってそのメッセージを拒否する。この拒否は、
最初オープンのハンドシェーキングが二つのノード間で
呼び出されることを誘発する。最初オープン・ハンドシ
ェーキングが完了した後、未だ保留になっている(コン
ピューティング・ノード200の見込みから)ION2
12に関するいかなる入出力操作も再送しなくてはなら
ないであろう。
【0196】しかしながらこれがウォーム再起動でなか
ったとすれば、ION212は長時間ダウンしていたこ
とになりそうであり、したがっていかなる保留中の入出
力操作も失敗回復処理の一部として再起動されて、ダイ
ポール内のもう一方のION212に送られたであろ
う。(更に詳しくは、ION障害回復のセクションを参
照のこと)。
【0197】もしクラッシュしたノードがコンピューテ
ィング・ノード200であったならば、最初オープンを
既に行ったコンピューティング・ノード200に関する
ION212における最初オープン要求の予期しない到
着は、PIT ID回復操作を誘発するであろう。IO
N212は、コンピューティング・ノード200にクレ
ジット(信用貸し)されたすべてのPIT ID906
を無効にするであろう(あるいは実際には多分、旧いも
のを再発行するだけであろう)。
【0198】そのコンピューティング・ノード200に
関するいかなる保留入出力操作も完了することが許され
る(これは、ノードの再起動の時間が極端に速くなけれ
ばありそうもないケースであるが)。完了メッセージ
は、それが使っているSASEPITが古くなっている
であろうから放棄されなくてはならないであろう(そし
て入出力要求を発行したアプリケーション・スレッド
は、もはや存在しないであろう)。
【0199】スーパーPIT(SPIT)−小さな入出
力性能の改善 PITプロトコルは、通常のSCSIコマンドよりも優
れた点を持っている。本発明の核心は、記憶装置ネット
ワークではなく通信ネットワークであるから、記憶装置
モデルが許すものに対する性能改善のためにネットワー
ク・プロトコルを使うことができる。アップコール処理
のオーバーヘッドの処理は、小さな入出力要求が優位を
占めている作業負荷に関して性能の壁を表している。小
さな入出力の性能を改善するための手法は、幾つかあ
る。
【0200】一つの手法は、割込み処理符号の経路長を
改善することである。第二は、デバイス・ドライバに採
用されている手法に類似の手法を使って、多数の割込み
の方向指示を割込みハンドラーの単一の呼出しの中に折
り込むことである。第三は、個別の入出力操作の回数を
減らしてそれらを単一の要求にクラスター化する(ある
いはコンボイする)ことである。
【0201】発信元と宛て先との物理リンク上の異なる
MTUサイズのために着信と送出のデータの流れを再パ
ッケージングしなければならないノードは、データを集
める傾向がある。この問題は、送信側ネットワークと宛
て先側ネットワークとの間の速度の不整合によって(特
に宛て先側ネットワークの方が遅い場合)、更に悪くな
る。これらのノードは、宛て先側からの流れ制御を絶え
ず受けている。その結果、トラヒックはルーターからバ
ーストになって流れ出ることになる。これは、データ・
コンボイと呼ばれる。
【0202】本発明は、ION212とコンピューティ
ング・ノード200の両者におけるアップコール発生に
よる割込みの回数を減らすための手法としてデータ・コ
ンボイを利用している。説明のために、ION212か
らコンピューティング・ノード200へのデータ流れを
考える。本発明によって使われる流れ制御に関するデビ
ット/クレジット・モデルでは入出力要求は、コンピュ
ーティング・ノード200とION212の両者におい
て待ち行列に入る。待機は、ION212に格納された
PITパケットで始まり、それが枯渇すると待機はコン
ピューティング・ノード200に戻って続けられる。こ
れは、オーバーフロー状態と呼ばれる。
【0203】通常、オーバーフローは、ノードがPIT
バッファ・クレジットよりも多くの要求を持っていると
きに発生する。入出力が完了する度毎にION212は
完了メッセージをコンピューティング・ノード200に
送り返す。通常この完了メッセージは、いま解放された
ばかりのPITバッファ資源に関するクレジットを含ん
でいる。これは、デビット/クレジット流れ制御の基礎
である。システムが入出力要求で渋滞すると、各入出力
完了は直ちに、ION212における新しい入出力要求
に置き換えられる。したがって負荷の大きいときには、
入出力要求は一度の一つずつION212に流れて、指
定されていない期間、ION212内で待機する。これ
らの要求の各々は、ION212の負荷を増加させるア
ップコール割込みを発生させる。
【0204】この二重待ち行列モデルは、多くの利点を
持っている。コンピューティング・ノード212に割り
当てられたPITバッファの数は、慎重なトレードオフ
である。要求が完了したとき新しい仕事を素早くディス
パッチできるように、ION212にはローカルに待機
している十分な仕事負荷が存在がしているべきである。
しかしながらION212上に待機している要求によっ
て消費されるメモリ資源は、キャッシュ・システムに割
り当てられれば更によく利用できる。ION212上の
PIT待ち行列がメモリを節約するために短時間だけ保
持されるとき、ION212が遊休状態になると性能は
低下して、仕事がコンピューティング・ノード200か
ら送られてくるのを待たなくてはならない。
【0205】スーパーPITは、アップコール割込みの
回数を減らすために高い負荷のデビット/クレジット・
システムの流れ制御を利用するように設計されたPIT
プロトコルの一形態である。スーパーPITは、OLT
Pの性能を改善し、また比較的小さな入出力の高い割合
によって支配される同様な仕事負荷を改善する。一度に
一つずつ要求を送る代わりに、スーパーPITパケット
は、単一の、大きなスーパーPIT要求ですべて送付さ
れる入出力要求の集まりである。各スーパーPITパケ
ットは、通常のPITバッファと同じように搬送され
る。それから、スーパーPITパケット内に含まれる個
別の入出力要求は、抽出されて、ION212資源が利
用可能になると、PIT仕事負荷インジェクタによって
通常のION212待ち行列機構の中に挿入される。こ
れら個別の入出力要求は、読取り要求か書込み要求かど
ちらでもよい。
【0206】PIT仕事負荷インジェクタは、ION2
12に送られたアプリケーション要求のローカルな代理
として(ION212上で)動作する。PIT仕事負荷
インジェクタは、後のセクションで論じられるRT−P
ITプロトコルとFRAG−PITプロトコルとによっ
ても使われる。スーパーPITが個別の要求を使い切る
と、資源はコンピューティング・ノードに解放され、そ
れと交換するために別のスーパーPITパケットを送る
ことができる。1ホスト当たりに許されるスーパーPI
Tパケットの数は、最初オープン折衝で決定されるであ
ろう。ION212上で待機する仕事の量は、別のスー
パーPITパケットが送付できるまでそのION212
を動作中にしておくのに十分でなければならないことは
明らかである。
【0207】コンピューティング・ノード200がIO
N212内の十分な仕事がPITクレジットを使い切る
のを待っていて、ローカルに要求を待ちはじめたと言う
状況を考えてみる。スーパーPIT要求内で待機してい
る要求の数は、そのスーパーPITが送られるバッファ
のサイズによってだけ制限される。スーパーPITパケ
ットは、通常のPITパケットとは異なる動作をする。
本発明の制御モデルでは、もしユーザが宛て先に関する
クレジットを持っている場合、装置は要求(デビット)
だけを送ることができる。装置はION212内の特定
のアプリケーション・スレッドを目標にしているわけで
はないので、その装置によって使われた特定のPITパ
ケットは、特に重要ではない。ION212に対するP
ITパケットは、単にバッファ利用(および副作用とし
て流れ制御)を規制するだけである。これに対してPI
T要求内のSASE PITは異なる。
【0208】SASE PIT IDは、コンピューテ
ィング・ノード212内の個別スレッドのアドレス空間
を表す。スーパーPIT内の各要求は、SASE PI
Tを含んでいるが、それらが表す入出力が完了すると、
作成された入出力完了メッセージはクレジットPITを
含まない。スーパーPITがすべての要求を使い切った
ときだけそのアドレス空間にクレジットPITが発行さ
れる。
【0209】コンピューティング・ノード200上での
スーパーPITの生成は、下記に述べるように行われ
る。単一のION212に対する入出力要求がコンピュ
ーティング・ノード200内に二つ以上待機していると
きは何時でも、スーパーPITを生成することができ
る。もしそのコンピューティング・ノード200に関す
るスーパーPITパケットの限界が既にこのION21
2上で到達されていた場合、コンピューティング・ノー
ド200は、スーパーPIT IDが返却されるまで要
求を待ち行列に入れつづけるであろう。それからこのコ
ンピューティング・ノード200は別のスーパーPIT
メッセージを発行する。システム・ドライバ内では、一
旦待機が始まるとIONごとの待ち行列がスーパーPI
Tパケットを生成するように要求されるであろう。
【0210】前に論じたように、スーパーPITメッセ
ージは、大量の小さな入出力要求によって占められてい
る仕事負荷の下でION212上の処理負荷を減らすこ
とができる。スーパーPITメッセージは、宛て先ノー
ドの性能を改善し、また平均メッセージ・サイズの増加
によって相互接続ファブリック106の利用を改善す
る。しかしながらスーパーPITメッセージのコンセプ
トは同様に、小さな入出力仕事負荷によって作り出され
るコンピューティング・ノード200上の負荷を減らす
ためにION212で応用することもできる。ION2
12上にスーパーPITメッセージを作成することは、
コンピューティング・ノード200上にそれらを作成す
ることとは全く異なる問題である。
【0211】コンピューティング・ノード200上で
は、入出力要求を作成するアプリケーション・スレッド
は、ION212が圧倒されるのを防止するために流れ
制御を受けている。ディスク・サブシステムのサービス
速度は、ION212のそれ以外のものよりも遙かに遅
く、常にION212性能の究極の限界になるであろ
う。要求は、要求を待ち行列にいれて最後にはその要求
に応えるために十分な資源をION212が持つまで
は、システムに入らないように阻止される。
【0212】要点は、資源がION212上で利用可能
になるまで要求はコンピューティング・ノード上で待機
するであろう(あるいはアプリケーションは阻止される
であろう)と言うことである。資源不足は、コンピュー
ティング・ノード200上では問題にはならない。コン
ピューティング・ノード200アプリケーションが入出
力要求をシステムに出すとき、その要求の一部として、
入出力を完了させるために必要とされるコンピューティ
ング・ノード200メモリ資源(アプリケーション・ス
レッド・バッファ)が含まれている。ION212がコ
ンピューティング・ノード200に送るために必要とす
るすべての入出力完了メッセージに関して、このノード
は既に割り当てられたPIT ID(SASE PIT
ID)を持っている。
【0213】ION212の観点から見れば、入出力完
了メッセージは既に割り当てられた目標バッファを持っ
ており、データが準備され次第すぐに満たすことができ
る。入出力完了メッセージは、一旦送付されれば成功で
ある(ION212は、コンピューティング・ノードで
のディスク記憶システムのサービス時間を待つ必要はな
い)。したがってION212は、コンピューティング
・ノードからの流れ制御圧力によって阻止できない。ス
ーパーPITメッセージを作成するためにコンピューテ
ィング・ノードは、ION212が持っていないオプシ
ョンである流れ制御待機を利用した。ION212はB
YNETへのアクセス以外に待つべき資源を持たないの
で、スーパーPITメッセージを作成する機会は、遙か
に小さくなる。
【0214】ION212上にスーパーPITメッセー
ジを作成するために幾つかの手法が採用できる。一つの
手法は、スーパーPITパケットを作成する機会を増や
すために入出力完了要求を僅かに遅らせることである。
もし僅かの遅延の後に同一ノードのための新しい完了メ
ッセージが用意されなければ、そのメッセージは正常な
PITメッセージとして送られる。この手法の問題は、
スーパーPITを作成すること(コンピューティング・
ノード上でのアップコール・オーバーヘッドを減らすこ
と)を期待して要求を遅らせた時間の量が幾らであって
も、それに対応する全体の要求サービス時間の増加があ
ると言うことである。
【0215】正味の効果は、コンピューティング・ノー
ド200の負荷の減少分であるが、アプリケーションを
遅くする可能性もある。適応的な遅延時間が有益であろ
う(コンピューティング・ノード200に対する平均サ
ービス速度と所定の要求によって累積される総サービス
時間とによって)。第二の手法は、第一の僅かな変形で
ある。これは、各コンピューティング・ノード200が
そのコンピューティング・ノードにおける小さな入出力
の速度が増加するに従って増加する遅延時間を各ION
212に与えることを要求するであろう。
【0216】要点は、必要な場合に特定のION212
に関するスーパーPITメッセージを作成するためのウ
ィンドウを大きくすることである。第三の手法は、キャ
ッシュによって直接サービスされて記憶224ディスク
操作を待つことに関係しない小さな読取りまたは書込み
といった、ある幾つかの型のトラヒックを遅延させるこ
とであろう。キャッシュは、あるパーセンテージの要求
のためのディスク・トラヒックを回避することによって
平均入出力待ち時間を減らすが、待ち時間の分布はキャ
ッシュ・ヒットによって変わる。
【0217】キャッシュ・ヒット要求のための僅かな待
機遅延時間は、ディスク操作を含む遅延時間と比較して
サービス時間の主要な増加とはならないであろう。サー
ビス時間の分布に敏感なアプリケーションに関しては
(均一な応答時間が性能にとって重要である場合)、I
ON212上でスーパーPITパケットを作成するため
の僅かな遅延は、全体的なシステム性能を改善する可能
性を持っている。
【0218】大ブロック・サポートと断片化PITパケ
ット データベース・アプリケーションに関する性能要件は、
データベースの大きさとは無関係であることが多い。デ
ータベースのサイズが大きくなるにしたがって、ディス
ク記憶装置が調べられる速度もまた、アプリケーション
性能の劣化を防止するために比例的に増加しなくてはな
らない。言い換えればサイズの成長する顧客データベー
スに関しては、応答時間は所定の問合せについて一定に
留まらなくてはならない。これらの要件を満たすことの
困難さは、ディスク駆動技術の現在の傾向と直接矛盾し
ていることである。
【0219】ディスク駆動機構は、容量は増加しつつあ
るが、ランダムな入出力性能は一定のままに留まってい
る。この傾向を緩和する一つの手法は、ディスク駆動機
構の容量の増加につれてディスク入出力操作の平均サイ
ズを大きくすることである。記憶容量の現在の傾向と性
能要件とに基づいて、24KBという平均入出力サイズ
は、極く近い将来に128KBに増えるかも知れない。
更に積極的なキャッシング手法と遅延書込み手法も、多
くの仕事負荷にとって有益であることが分かるかもしれ
ない。ディスク駆動機構における不均一な技術進歩が、
入出力要求サイズの増大の蔭の唯一の推進要因ではな
い。BLOBS(binary large obje
cts:大きな2進オブジェクト)を有するデータベー
スがポピュラーになり始めるにつれて、1MB以上に達
するサイズのオブジェクトが更に一般的になりつつあ
る。この特定の原因とは無関係に、システムはディスク
記憶装置の経済性の追求を続けさせるサイズの大きな入
出力オブジェクトをサポートする必要があるであろうと
いうことが予想される。
【0220】PITプロトコルを使用するION212
とコンピューティング・ノード200との間の大きなデ
ータ・オブジェクトの伝送に関連して、幾つかの問題が
ある。ここに述べたように、PITプロトコルの利点
は、流れ制御と端点探索の問題に取り組むための宛て先
側バッファの事前割当てである。しかしながらアップコ
ール意味論もまた、メッセージを置く十分なバッファ領
域の識別(または割当て)を必要とする。PITプロト
コルは、受信側で各メッセージが置かれるべき目標PI
T ID906を送信側に選択させることによってこの
問題に対処している。
【0221】メッセージ・サイズは、利用可能プールか
ら所定のPIT ID906を選択するための基準にな
るであろうから、大きな入出力書込みがプロトコルを複
雑にすることは明らかである。負荷の大きい間は、送信
側は利用可能なPIT ID906クレジットを所有し
ているが、そのうちのどれも大きな入出力要求に関する
バッファ・サイズ要件を満たしていないといった状況の
可能性が存在する。PITプロトコルの下では、もし送
るべきデータ・サイズの幅広い母集団が存在する場合、
送信側はPITバッファの数とサイズの両方を管理する
ために受信側と一緒に働かなければならない。
【0222】これは、PITバッファ割当てサイズ問題
を作りだす。すなわちPITバッファのプールを作成す
るときに、所定の仕事負荷の下でのPITバッファのプ
ールに関するバッファ・サイズの適切な配分とはいかな
るものであるか?BYNETソフトウエアは、書込みに
加えて大きな入出力読取りを複雑にする限界を追加の最
大トランスファ・ユニット(MTU)に賦課する。BY
NET MTUを超える入出力要求(読取りと書込みの
両方)は、送信側でソフトウエア・プロトコル(この場
合はPITプロトコル)によって断片化され、宛て先側
で再組立てされなくてはならない。これは、メモリ断片
化の問題を作りだす。
【0223】つまり内部的断片化は、割り当てられたバ
ッファ内の領域を浪費することになる。外部的断片化
は、どんな要求でも満足させるというには小さすぎる割
当て済みのバッファの外側の領域を浪費する。一つの解
は、大きなPITバッファの一部だけを使うことであろ
うが、これはもし大きなPITバッファが使われると、
不必要な内部的断片化を引き起こすことになる。大きな
PITバッファは、コスト・パフォーマンスを悪くする
メモリを浪費する。
【0224】本発明ではBYNET MTUおよびPI
Tバッファ・サイズ割当て問題は、二つ以上の型のPI
Tメッセージ、すなわちRT−PIT(往復旅行PI
T)とFRAG−PIT(断片化PIT)とを追加する
ことによって解決される。RT−PITとFRAG−P
ITの両者は、PITデータ・プッシュ・モデルの代わ
りにデータ・プル・モデルを使う。(データを押すため
には、送信側がデータを宛て先側に押す。データを引く
ためには、宛て先側が送信元からデータを引く)。FR
AG−PITメッセージは、大きなデータ読取りをサポ
ートするように設計されているが、RT−PITメッセ
ージは大きなデータ書込みをサポートする。FRAG−
PITとRT−PITは両者とも、ION PIT仕事
負荷インジェクタを使ってデータの流れを管理するので
スーパーPITに似ている。
【0225】RT−PITメッセージ コンピューティング・ノード200がION212に対
して大きなディスク書込み操作を行いたいと思い、そし
てその入出力書込みがBYNET MTUあるいは利用
可能なION212PITバッファのどちらよりも大き
い場合は、このコンピューティング・ノード200はR
T−PIT作成メッセージを作成するであろう。RT−
PITメッセージは、ブースト・フェーズとそれに続く
往復旅行フェーズという二つの段階で動作する。
【0226】ブースト・フェーズでは、書き込むべきデ
ータのためのソース・バッファのリストが、コンピュー
ティング・ノード200上の一連のPIT IDに割り
当てられる。ソース・バッファの断片化サイズは、BY
NET MTUとION最初オープン・プロトコル時に
指定されたサイズ制限とによって決定される。PITI
Dのこのリスト(対応するバッファ・サイズを有する)
は、単一のRT−PIT要求メッセージのペイロード内
に置かれて、宛て先ION212へのPITクレジット
になるであろう。
【0227】追加のPITバッファは、RT−PITプ
ロトコルによって直接使われるコンピューティング・ノ
ード・プールから割り当てられる。この追加バッファの
PIT IDは、PITヘッダのクレジット・フィール
ド内に入れられる。RT−PIT要求の残余分は、正常
なPIT書込みメッセージと同じである。それからコン
ピューティング・ノード200は、このRT−PIT要
求メッセージをION212に送る(ブーストする)。
【0228】ION212では、PIT仕事負荷インジ
ェクタが二段階でRT−PIT要求メッセージを処理す
る。各送信側PIT ID906ごとに、仕事負荷イン
ジェクタは、サイズの一致する、IONキャッシュから
PITバッファを要求しなくてはならない。(これは、
IONバッファ・キャッシュ内の利用可能メモリ領域に
依存して、直ちにすべてか、あるいは一度に一つずつか
実行することができる)。PITバッファを整合させる
ことによって、ION212は、書込み要求に合った資
源を動的に割り当てるであろう。これで入出力は、修正
された一連の正常なPIT転送を使って進行することが
できる。
【0229】これでRT−PITメッセージの処理は往
復旅行フェーズに入るが、ここでは仕事負荷インジェク
タが送信側と宛て先側のPIT IDの一つ(以上)の
整合している対に関してRT−PIT開始メッセージを
作成する。(整合PIT IDの1個あるいは1サブセ
ットを送るオプションは、ION212の自由裁量に任
されている)。単一のRT−PIT開始メッセージ内の
PIT ID906の数は、ION212内部のデータ
転送の粒度(実行単位)を制御する(以下に述べる)。
【0230】このRT−PIT開始メッセージは、コン
ピューティング・ノード200に返送されてRT−PI
Tメッセージのブースト・フェーズを終了する。RT−
PIT開始メッセージを受信するとコンピューティング
・ノード200は、通常のPIT書込みメッセージを使
って、一時にPIT対を1対ずつ、ION212にデー
タを転送しはじめる。コンピューティング・ノード20
0とION212は両者とも紛失断片を処理するために
十分なデータを持っているので、これら断片はコンピュ
ーティング・ノード200によって順序よく送る必要は
ない(整合PIT対が再組立ての順序を指定する)。
【0231】ION212がPIT書込みメッセージを
受信すると、仕事負荷インジェクタは、この書込み要求
が大きなRT−PIT入出力操作の一部であることをど
ちらが認識したのかを知らされる。仕事負荷インジェク
タは、PIT書込みを処理するための二つオプションを
持っている。すなわち断片をキャッシュ・ルーチンに渡
して書き込み操作を開始するか、書込みを開始する前に
最後の断片の伝送を待つかのどちらかである。入出力を
早く開始することは、キャッシュ・ルーチンがディスク
駆動機構へのデータ流れをパイプライン処理することを
可能にする(書込みキャッシュ方針による)が、より小
さな入出力サイズに起因する性能損失の危険がある。し
かしながらすべての断片が到着するまで入出力を保留し
ていることは、キャッシュ・システムに不当な負荷を掛
ける可能性がある。
【0232】断片の全体の大きさと数は初めから分かっ
ているので、現在の動作条件下でこの大きな入出力要求
を最適化するために必要とされるすべてのデータは、キ
ャッシュ・システムによって作られる。コンピューティ
ング・ノード200では、多数の断片が単一のRT−P
IT開始メッセージ内に含まれる場合には各PIT書込
み動作の伝送の成功は、次の断片書込みを開始させる。
単一のRT−PIT開始コマンド内の最後の断片が受信
されると、要求インジェクタ(注入器)は、通常の書込
み要求の処理に類似の処理のためにそのデータをキャッ
シュ・システムに渡す。データが安全であるときは、入
出力完了メッセージはキャッシュ・システムによって作
成されて、(RT−PIT開始動作のための)処理のこ
の段階の完了を知らせるためにコンピューティング・ノ
ード200に返送される。
【0233】更に多くの断片が残っている場合は、別の
RT−PIT開始コマンドが生成されてコンピューティ
ング・ノードに送られ、すべての断片を処理し終わるま
で、こうして上述のサイクルを繰り返す。仕事負荷イン
ジェクタとキャッシュが最後の断片の処理を完了する
と、RT−PIT要求に関するすべての処理の終了を同
期させるために、状態を有する最後の入出力完了メッセ
ージがコンピューティング・ノードに返される。
【0234】RT−PITメッセージは、BYNETに
幾つかの変更を行うことによって最適化できる。ION
212がちょうどRT−PIT要求を受信したばかりと
いう状況を考えてみる。ION212上の仕事負荷イン
ジェクタは、大きな入出力要求を多数の小さな通常の書
込み要求に変換するためにコンピューティング・ノード
上のバッファをION212に整合させている。中間の
RT−PIT開始コマンドによって同期化が行われる。
しかしながらもしBYNETが受信チャネル・プログラ
ムにデータ・プルの実行を許したとすれば、RT−PI
T開始コマンドをコンピューティング・ノードに送ると
いう中間ステップは除くことができるであろう。
【0235】論議のためにBYNET操作のこのモード
をループバンド・メッセージと呼ぶことにする。ループ
バンド・メッセージは実は、一方が他方のなかに入れ子
になっている二つの有向帯域メッセージである。例とし
て、仕事負荷インジェクタは、RT−PIT要求を受け
取ると、コンピューティング・ノード上で第二のPIT
書込みメッセージを作成するために必要とされるデータ
を含むRT−PIT開始メッセージを作成することによ
って各断片を処理するであろう。RT−PIT開始メッ
セージは、ある断片に関するPIT書込み操作のための
テンプレートをコンピューティング・ノード200に転
送する。コンピューティング・ノード200上で実行さ
れるチャネル・プログラム(RT−PIT開始メッセー
ジと一緒に送られる)は、コンピューティング・ノード
BYNETドライバ上の送信待ち行列にそのペイロード
を入れる。
【0236】このペイロードは、初期RT−PIT要求
を行ったアプリケーション・スレッドからの待機してい
る要求のように見える。このペイロードは、仕事負荷イ
ンジェクタによって送られたこの断片のために送信元の
PIT IDと宛て先のPIT IDとの対を使ってP
IT書込み要求を作成するであろう。PIT書込みは、
ION212上にこの断片を置き、それが到着したこと
を仕事負荷インジェクタに通知するであろう。仕事負荷
インジェクタは、すべてが処理し終わるまで各断片につ
いてこのサイクルを続けるであろう。ループバンド・メ
ッセージの性能改善は、各RT−PIT開始メッセージ
のために必要とされる割込みとコンピューティング・ノ
ード処理とを除去することから得られる。
【0237】FRAG−PITメッセージは、コンピュ
ーティング・ノードからの大きな入出力読取り要求の操
作をサポートするように設計されている。アプリケーシ
ョンが大きな入出力読取り要求を行うと、コンピューテ
ィング・ノードは、目標バッファをピン留めして、各断
片の目標バッファを表すPIT IDのリストを作成す
る。各PIT IDは、その断片に関する目標バッファ
とそれに関連する状態バッファとからなる分散リストを
記述している。状態バッファは、データが送られると更
新され、各断片が何時処理されたかをコンピューティン
グ・ノードが決めることを可能にしている。各断片のサ
イズは、RT−PITメッセージと同じアルゴリズムを
使って決定される(前述のRT−PITについてのセク
ションを参照のこと)。これらのフィールドは、FRA
G−PITを生成するために組み立てられる。
【0238】コンピューティング・ノード200は、仕
事負荷インジェクタによってFRAG−PITが処理さ
れるION212にそのFRAG−PITを送る。この
要求には、ION212上の仮想ディスク名と開始ブロ
ック番号とデータ源のデータ長とが含まれる。仕事負荷
インジェクタは、RT−PIT要求と同様の方法でFR
AG−PIT要求に作用する。FRAG−PIT要求内
の各断片は、キャッシュ・システムの協同の下で別々の
PIT読取り要求として処理される。キャッシュ・シス
テムは、各断片を独立に処理するか単一の読取り要求と
して処理するかを選択することができ、利用可能なとき
にはディスク・データを仕事負荷インジェクタに送り返
す。
【0239】データ断片がキャッシュによって供給され
ると(個別にか、単一の入出力操作の一部としてかのど
ちらかで)、大きな読取り要求のためのデータは、コン
ピューティング・ノードに流れはじめるであろう。キャ
ッシュがデータを利用可能にした各断片ごとに、仕事負
荷インジェクタは、FRAG−PIT部分完了メッセー
ジ内のそのデータ断片をコンピューティング・ノードに
送り返す。各FRAG−PIT部分完了メッセージは、
それが送付されたときにコンピューティング・ノードで
割込みを発生させないということを除いて、正常なPI
T読取り要求完了に似たデータを送信する。最後に完了
した断片は、FRAG−PIT完全完了メッセージと一
緒にコンピューティング・ノードに返される。FRAG
−PIT完全完了メッセージは、それがFRAG−PI
T読取り要求全体の完了を割込みを介して知らせる(フ
ル・アップコール)と言うことにおいて、部分完了メッ
セージとは異なっている。
【0240】他のネットワーク装置上でのPITプロト
コルの実現 ネットワークに付加された記憶装置に対する前述の手法
の性能の多くは、PITプロトコルをサポートする相互
接続ファブリック106の能力に依存している。BYN
ETの場合には、PITプロトコルに良く整合したロー
レベル・インタフェースが作成された。ファイバ・チャ
ネルといった他のネットワーク・インタフェースも同様
に、PITプロトコルをサポートすることができる。
【0241】バーミューダ・トライアングル・プロトコ
ル 本発明は、IONクリーク226と書戻しキャッシング
とを使うことによってデータと入出力の冗長性を提供す
る。IONクリーク226は、主ION212と兄弟I
ON214とからなるION212、214といった
(一般には対またはダイポール単位で配置される)複数
のIONを含んでいる。
【0242】兄弟ION214 は、主ION212の修
正キャッシュ・ページのコピーのための一時記憶として
働くことによって、データおよび入出力の冗長性に備え
ている。IONクリーク226内の各ION212(1
対のIONあるいは1個のダイポールとして示される)
は、一つのグループのボリューム・セット用の主ION
212と、もう一つのグループのボリューム・セット用
の兄弟ION214として機能する。
【0243】高い可用性と書戻しキャッシングとを備え
るために、データは、書込みがアプリケーションに肯定
応答される前に少なくとも二つの場所で安全に格納され
なければならない。この冗長コピーを与えることに対す
る障害は、書込みが肯定応答された後ではあるがそのデ
ータが永久記憶装置に記録される前に記憶装置制御部が
故障した場合に、データ損失を引き起こす可能性があ
る。
【0244】しかしながらION212、214は物理
的に別個のコンピュータを持っているので、これらのバ
ックアップ・コピーを保持するためには相互接続ファブ
リック106上での通信が必要である。最適のシステム
性能のためには、なお書戻しキャッシングを利用しなが
ら、BYNET伝送と書込みプロトコルに関連の割込み
との回数を最小にすることが必要である。
【0245】ダイポール226内のディスク224にデ
ータを書き込むための一つの可能なプロトコルは、コン
ピューティング・ノード200が主ION212と兄弟
ION214とに別々に書込み、両ION212、21
4からの書込み要求に対する応答が受信されるまで待機
し、それから主ION212が兄弟ION214に、も
はやそのページのコピーを保存する必要がないことを示
すパージ要求を送ることであろう。「送信完了」割込み
が送信側で抑制されると仮定すると、送られた各メッセ
ージはコンピューティング・ノード200あるいはIO
N212、214上で割込みを発生させるので、このプ
ロトコルは、少なくとも5回の割込みを必要とする。
【0246】もう一つの可能なプロトコルは、書込み要
求を兄弟ION214に送り、応答を待ち、そして肯定
応答をコンピューティング・ノード200に送り返すと
いうことを主ION212に指示する。このプロトコル
も同様に、少なくとも5回の割込みを必要とする。第1
の割込みはコンピューティング・ノード200が書込み
要求を主ION212に送信するときに発生する。第2
の割込みは、主ION212がデータを兄弟ION21
4に送信するときに発生する。第3の割込みは、兄弟I
ON214がそのデータの受信を肯定応答するときに発
生する。第4の割込みは、主ION212がコンピュー
ティング・ノード200に応答するときに発生し、そし
て最後の割込みは、データがディスクに安全に転送され
て、主ION214がパージ要求を兄弟ION214に
送るときに発生する。
【0247】図12は、書込み要求を処理するために必
要とされる割込みの回数を最小にする、本発明で使われ
るプロトコルを示す。このプロトコルは、バーミューダ
・トライアングル・プロトコルと呼ばれる。
【0248】第一に、コンピューティング・ノード20
0は、書込み要求を主ION212に発行する。第二
に、主ION212は、そのデータを兄弟ION214
に送る。第三に、兄弟ION214は、肯定応答をコン
ピューティング・ノード200に送る。最後に、データ
が安全にディスク上にあるときに、主ION212は、
パージ要求を兄弟ION214に送る。
【0249】上記の4個のステップは、全部で4回の割
込みを必要とする。更に割込みを減らすためには、パー
ジ要求(図12のステップ4)を遅らせて、ステップ2
で後続の書込みのデータ伝送と結合させ、3回割込みプ
ロトコルを作るようにできる。このプロトコルの更なる
利点は、書込み要求が受信されたときに、もし兄弟IO
N214がダウンしても、主ION212はライト・ス
ルー(書込み遂行)モードでその要求を処理して、一旦
そのデータがディスク上に置かれれば、その書込みに対
して肯定応答することができると言うことである。コン
ピューティング・ノード200は、兄弟ION214の
状態を知る必要がない。
【0250】バーミューダ・トライアングル・プロトコ
ルは、データの可用性を維持しながら、従来型プロトコ
ルよりも少ない回数の割込みを使って書戻しキャッシン
グを可能にしている。これは、主ION212に送られ
た書込み要求の肯定応答を兄弟ION214が行うから
である。現代のパイプライン化されたプロセッサ上では
割込み処理は不経済になり得るとすれば、幅広い種々の
分散型記憶システム・アーキテクチャで使用できるこの
プロトコルは、全体的なシステム・オーバーヘッドを削
減して、性能を改善する結果をもたらす。
【0251】コンピューティング・ノード 概要 コンピューティング・ノード200は、ユーザのアプリ
ケーション204を実行する。従来技術のシステムで
は、クラスタあるいはクリーク内のノードに対して等し
い記憶装置アクセス可能にするために多数の専用・共用
のSCSIバスが使われている。本発明では、記憶装置
は一つ以上の通信ファブリック106を介してコンピュ
ーティング・ノード200に取り付けられる。このネッ
トワーク付加の記憶装置は、コンピューティング・ノー
ド200に亘って配布されるユーザ・アプリケーション
間で処理間通信(IPC)トラヒックを有する通信ファ
ブリック106を共用する。ユーザ・アプリケーション
204からの記憶要求は、ファブリック/記憶装置イン
タフェースによってION212上に配置された記憶装
置管理アプリケーションへのIPCメッセージの中に入
れられる。記憶装置ノード上のこれらの専用アプリケー
ションは、IPCメッセージをローカル・キャッシュ操
作またはディスク入出力操作に変換して、その結果を必
要に応じてコンピューティング・ノード200に送り返
す。ユーザ・アプリケーション204にとってネットワ
ーク取付け記憶装置とローカル取付け記憶装置とは区別
がつかない。
【0252】仮想ディスク・ブロックに関する読取り要
求と書込み要求は、相互接続ファブリック106を介し
てION212に到着する。要求は、コンピューティン
グ・ノード200における発信元起動の選択を介して所
定のION212に経路指定することができる。すべて
のコンピューティング・ノード200は、どのION2
12がシステム内の各ファブリック仮想ディスクに関す
る要求を受け入れているかを知っている。ファブリック
仮想ディスクは、一意の記憶領域が表される仮想ディス
ク・モデルを反映するが、その記憶領域は、名前の中の
物理ディスクの各物理位置を意味することも符号化する
こともない。
【0253】各コンピューティング・ノード200は、
ファブリック仮想ディスク名をIONダイポール226
に写像するリストを保持している。このリストは、コン
ピューティング・ノード200とION212との間の
協調によって動的に作成される。電源投入と障害回復操
作の時にダイポール内のION212は、これらION
212の間で仮想(および物理)ディスクを分割して、
どの仮想ディスクがどちらの一方のION212によっ
て所有されているかという、仮想ディスクのリストを作
成する。ダイポール226内の他方のION214(仮
想ディスクも記憶資源も所有しない)は、障害の場合の
仮想ディスクへの代替経路を提供する。
【0254】このリストは、この他のダイポール226
とコンピューティング・ノード200とのすべてに対し
て相互接続ファブリック106の全域で定期的に移出ま
たは公示される。コンピューティング・ノード200
は、このデータを使って、システム内の各仮想ディスク
への一次経路と二次経路の基本表を作成する。それから
コンピューティング・ノード200内の相互接続ファブ
リック・ドライバは、入出力要求を経路指定するために
ダイポール226との協調を行う。ダイポール226
は、この「自己発見」手法を使って、ダイポール226
がアクティブなシステムに追加されたり、そこから削除
されたときに起こる可能性のある仮想ディスクの命名不
一致を検出して訂正する。
【0255】コンピューティング・ノード200上で走
行するアプリケーションは、ブロック・インタフェース
・モデルを、コンピューティング・ノード200に移出
された各ファブリック仮想ディスクに関するローカル・
ディスクのように見る。本書で前に述べたように、コン
ピューティング・ノード200は、ブート時に各ファブ
リック仮想ディスクへの入口点を生成し、またコンピュ
ーティング・ノード200とION212との間に確立
された命名プロトコルを使ってこれらの入口点を動的に
更新する。
【0256】サーバ管理 概要 本発明の重要な一面は、その管理であって、これはシス
テム管理あるいはシステムズ管理と呼ばれる全体的管理
のサブセットである。このサブセットは、記憶装置に関
するサーバ管理(SMS)と呼ばれる。記憶装置関連の
ハードウエア・コンポーネントとソフトウエア・コンポ
ーネントとの管理ならびに利用可能な記憶領域内のデー
タ・エンティティの配置は、この機構によって実現され
る。管理動作は、管理者によって初期化でき、あるいは
システム内でのある事象の発生時に動的に呼び出され
る。管理コマンドは、入力されて、殆ど瞬時に肯定応答
され得るが、単一の簡単なコマンドの結果は、かなり長
時間に亘って多数のシステム・コンポーネントに容易に
影響を与える可能性がある。例えば、ボリューム・セッ
トを一方のION212から他方のIONに移動させる
ことは、完了までに何分も、いや何時間も要することが
あり、主題のファイル・システムを使いたがっている多
数のION212とコンピューティング・ノード200
とに影響を与えることになる。サーバ管理はまた、シス
テムのハードウエアとソフトウエアの状態に関する情報
メッセージと警告メッセージとを管理者に提供する責任
も持っている。
【0257】管理者は、主として一連の画面表示「ビュ
ー」を通してシステムを感知している。システム全体の
幾つかのビューが提示されることもある。主要ビュー
は、最上位レベルにシステム内のすべてのコンピューテ
ィング・ノード200とION212とファブリック1
06とが表示される、階層的ビューである。ドリルダウ
ン手法によって関心のある項目の更に詳しい表示が得ら
れる。大抵のシステムはサイズが大きくて非常に複雑な
ので、単一の表示ページ上では表現しきれない。図形的
ビューは、物理的(機器構成的)ビューまたは論理ビュ
ーのどちらかを表示して表現される。更に詳細なビュー
化と管理とのために個別エンティティあるいはエンティ
ティのグループが選択され、要求の結果はユーザ選択の
フォーマットで表示できる。
【0258】表による表現方法も用意されており、個体
でもグループでも、このビューで見て管理することがで
きる。この管理の重要な一面は、特定のコンピューティ
ング・ノード212から、特定のデータ片の、そのデー
タ片を持っている物理記憶ディスク224への経路の表
現である。この経路は、その障害許容力を、すなわち、
どれだけ多くの個別コンポーネントが障害を起こしたら
データが利用不能になるかを表示する表形式で表現され
る。
【0259】ボリューム・セットの作成 ボリューム・セット(VS)の作成は、ホストのコンピ
ューティング・ノード200アプリケーション204に
よって使われる空き領域を割り当てる。ボリューム・セ
ットは、ION212内に基礎を置いており、名前(こ
こで述べたVSI602)と、サイズと、RAID(r
edundant array of inexpen
sivedisks:低価格ディスクの冗長配列)デー
タ保護レベルとを持っている。システム管理者は、要件
に基づいてVSを作成し、位置と冗長性特性とを指定で
きる。多数のVSがグループ操作で作成できる。
【0260】
【発明の効果】要約すれば、マルチプロセッサ・システ
ムにおいて第1のノードから第2のノードにデータを転
送する方法が記述されている。本マルチプロセッサ・シ
ステムは、相互接続ファブリック・インタフェースを介
して相互接続ファブリックに連結された複数のノードを
含んでおり、これらのノードは、コンピューティング・
ノードと入出力ノードとを含んでおり、この入出力ノー
ドは、複数のデータ記憶装置に連結されている。本方法
は、第1のノード内で実行しているアプリケーションか
らの入出力要求に応じて第1のノード内で入出力要求パ
ケットを生成するステップ(1102)と、相互接続フ
ァブリックを介して第2のノードにデータ要求パケット
を送信するステップ(1104)と、データ要求を第2
のノード・バッファに転送するためにデビットIDを抽
出する宛て先相互接続チャネル・プログラムを実行する
ステップ(1106)とを含む。一実施例では、入出力
パケットは、データ転送要求と、相互接続宛て先チャネ
ル・プログラムと、データ要求が伝送されるであろう第
2のノード・バッファを指示する第1のデビットID
と、入出力要求に応答するデータが伝送されるであろう
第1のノード・バッファを指示する第1のクレジットI
Dとを含む。
【0261】本発明の好適な実施例の前述の説明は、例
示と説明のために、提示されている。本発明は、開示さ
れた通りの形式だけに限定することも、それですべて網
羅することも意図していない。上述の教えるところに照
らせば、多くの修正、変形が可能である。本発明の範囲
は、この詳細な説明によって限定されるのではなく、こ
こに添付の特許請求範囲によって限定されることが意図
されている。
【図面の簡単な説明】
【図1】 基本的構成エレメントを示す本発明の一実施
例の最上位レベルのブロック図である。
【図2】 本発明の一実施例のシステム・ブロック図で
ある。
【図3】 IONの構造とシステム相互接続部とを示す
ブロック図である。
【図4】 JBOD筐体内のエレメントのブロック図で
ある。
【図5】 ION物理ディスク・ドライバの機能ブロッ
ク図である。
【図6】 ファブリックの一意的IDの構造を示す図で
ある。
【図7】 ION筐体管理モジュールと物理ディスク・
ドライバとの間の関係を示す機能ブロック図である。
【図8】 BYNETホスト側インタフェースの図であ
る。
【図9】 PITヘッダの図である。
【図10】 ION212機能モジュールのブロック図
である。
【図11】 PITプロトコルに伴うデータ伝送におい
てなされる操作の要約を示すフローチャートである。
【図12】 書込み要求を処理するために必要とされる
割込みの回数を最小にする、本発明で使われるプロトコ
ルを示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピー キース ミュラー アメリカ合衆国 カリフォルニア州 92102 サンディエゴ マリルイス ウェ イ 2440

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 複数のコンピューティング・ノードと、
    各入出力ノードが複数のデータ記憶装置に連結されてい
    る複数の入出力ノードとを含んでいて、相互接続ファブ
    リック・インタフェースを介して相互接続ファブリック
    に連結されている複数のノードを含むマルチプロセッサ
    ・システムにおいて第1のノードから第2のノードにデ
    ータを転送する方法であって、 第1のノードで実行しているアプリケーションからの入
    出力要求に応じて第1のノード内で入出力要求パケット
    を生成するステップであって、前記入出力要求パケット
    が、 データ転送要求と相互接続宛て先チャネル・プログラム
    と前記データ要求が送信されるであろう第2のノード・
    バッファを指示する第1のデビット(借方)識別情報
    (ID)と前記入出力要求に応答するデータが伝送され
    るであろう第1のノード・バッファを指示する第1のク
    レジット(貸方)識別情報(ID)とを有する前記入出
    力要求パケットを生成するステップと、 前記相互接続ファブリックを介して前記第2のノードに
    前記データ要求パケットを送信するステップと、 前記データ要求を前記第2のノード・バッファに転送す
    るために前記デビットIDを抽出する前記宛て先相互接
    続チャネル・プログラムを実行するステップとを含むこ
    とを特徴とする並列処理コンピュータ・システムにおけ
    るデータの転送方法。
  2. 【請求項2】 前記第2のノード内のデータ記憶装置か
    らの入出力要求の完了を知らせるメッセージを受信する
    ステップと、 前記第1のクレジットIDに対応する第2のデビットI
    Dと前記データ転送要求に応答するデータとを含む入出
    力完了パケットを生成するステップと、 前記相互接続ファブリックを介して前記入出力完了パケ
    ットを前記第1のノードに送信するステップとを含むこ
    とを特徴とする請求項1に記載の並列処理コンピュータ
    ・システムにおけるデータの転送方法。
  3. 【請求項3】 前記入出力完了パケットは更に、前記第
    1のクレジットIDに対応する第2のデビットIDを含
    むことを特徴とする請求項2に記載の並列処理コンピュ
    ータ・システムにおけるデータの転送方法。
  4. 【請求項4】 前記入出力完了パケットは更に、前記第
    2のノード内の第2のバッファを指示する第2のクレジ
    ットIDを含むことを特徴とする請求項2に記載の並列
    処理コンピュータ・システムにおけるデータの転送方
    法。
  5. 【請求項5】 前記入出力パケットは更に、送信側相互
    接続チャネル・プログラムを含んでいて、且つ前記方法
    は、 前記第2のデビットIDを抽出するために前記送信側相
    互接続チャネル・プログラムを実行するステップと、 前記第2のデビットIDの妥当性を検査するステップ
    と、 前記第2のデビットIDの妥当性が検査されたときに、
    前記データ転送要求に応答するデータを前記第1のノー
    ド・バッファに転送するステップとを含むことを特徴と
    する請求項2に記載の並列処理コンピュータ・システム
    におけるデータの転送方法。
  6. 【請求項6】 複数のコンピューティング・ノードと、
    各入出力ノードが複数のデータ記憶装置に連結されてい
    る複数の入出力ノードとを含んでいて、相互接続ファブ
    リック・インタフェースを介して相互接続ファブリック
    に連結されている複数のノードを含むマルチプロセッサ
    ・システムにおいて第1のノードからデータを転送する
    装置であって、 第1のノードで実行しているアプリケーションからの入
    出力要求に応じて第1のノード内で入出力要求パケット
    を生成する手段であって、前記入出力パケットがデータ
    転送要求と相互接続宛て先チャネル・プログラムと前記
    データ要求が送信されるであろう第2のノード・バッフ
    ァを指示する第1のデビットIDと前記入出力要求に応
    答するデータが伝送されるであろう第1のノード・バッ
    ファを指示する第1のクレジットIDとを有する前記入
    出力要求パケットを生成する手段と、 前記相互接続ファブリックを介して前記第2のノードに
    前記データ要求パケットを送信する手段と、 前記データ要求を前記第2のノード・バッファに転送す
    るために前記デビットIDを抽出する前記宛て先相互接
    続チャネル・プログラムを実行する手段とを含むことを
    特徴とする装置。
  7. 【請求項7】 前記第2のノード内のデータ記憶装置か
    らの入出力要求の完了を知らせるメッセージを受信する
    手段と、 前記第1のクレジットIDに対応する第2のデビットI
    Dと前記データ転送要求に応答するデータとを含む入出
    力完了パケットを生成する手段と、 前記相互接続ファブリックを介して前記入出力完了パケ
    ットを前記第1のノードに送信する手段とを含むことを
    特徴とする請求項6に記載の装置。
  8. 【請求項8】 前記入出力完了パケットは更に、前記第
    1のクレジットIDに対応する第2のデビットIDを含
    むことを特徴とする請求項7に記載の装置。
  9. 【請求項9】 前記入出力完了パケットは更に、前記第
    2のノード内の第2のバッファを指示する第2のクレジ
    ットIDを含むことを特徴とする請求項7に記載の装
    置。
  10. 【請求項10】 前記入出力パケットは更に、送信側相
    互接続チャネル・プログラムを含んでいて、且つ前記装
    置は更に、 前記第2のデビットIDを抽出するために前記送信側相
    互接続チャネル・プログラムを実行する手段と、 前記第2のデビットIDの妥当性を検査する手段と、 前記第2のデビットIDの妥当性が検査されたときに、
    前記データ転送要求に応答するデータを前記第1のノー
    ド・バッファに転送する手段とを含むことを特徴とする
    請求項7に記載の装置。
  11. 【請求項11】 複数のコンピューティング・ノード
    と、各々が複数のデータ記憶装置に連結された複数の入
    出力ノードとを含むノードであって、相互接続ファブリ
    ック・インタフェースを介して相互接続ファブリックに
    連結されている複数のノードを含むマルチプロセッサ・
    システムにおいてデータを第1のノードから第2のノー
    ドに転送する方法のステップを実行する、コンピュータ
    によって実行可能な命令の一つ以上のプログラムを具体
    的に実現する、前記コンピュータによって読取り可能な
    プログラム記憶装置において、前記方法は、 第1のノードで実行しているアプリケーションからの入
    出力要求に応じて第1のノード内で入出力要求パケット
    を生成するステップであって、前記入出力パケットが、 データ転送要求と相互接続宛て先チャネル・プログラム
    と前記データ要求が伝送されるであろう第2のノード・
    バッファを指示する第1のデビットIDと前記入出力要
    求に応答するデータが伝送されるであろう第1のノード
    ・バッファを指示する第1のクレジットIDとを有する
    前記入出力要求パケットを生成するステップと、 前記相互接続ファブリックを介して前記第2のノードに
    前記データ要求パケットを送信するステップと、 前記データ要求を前記第2のノード・バッファに転送す
    るために前記デビットIDを抽出する前記宛て先相互接
    続チャネル・プログラムを実行するステップとを含むこ
    とを特徴とするプログラム記憶装置。
  12. 【請求項12】 前記方法は更に、前記第2のノード内
    のデータ記憶装置からの入出力要求の完了を知らせるメ
    ッセージを受信するステップと、 前記第1のクレジットに対応する第2のデビットと前記
    データ転送要求に応答するデータとを含む前記入出力完
    了パケットを生成するステップと、 前記相互接続ファブリックを介して前記入出力完了パケ
    ットを前記第1のノードに送信するステップとを含むこ
    とを特徴とする請求項11に記載のプログラム記憶装
    置。
  13. 【請求項13】 前記入出力完了パケットは更に、前記
    第1のクレジットIDに対応する第2のデビットIDを
    含むことを特徴とする請求項12に記載のプログラム記
    憶装置。
  14. 【請求項14】 前記入出力完了パケットは更に、前記
    第2のノード内の第2のバッファを指示する第2のクレ
    ジットIDを含むことを特徴とする請求項12に記載の
    プログラム記憶装置。
  15. 【請求項15】 前記入出力パケットは更に、送信側相
    互接続チャネル・プログラムを含んでいて、且つ前記方
    法は、 前記第2のデビットIDを抽出するために前記送信側相
    互接続チャネル・プログラムを実行するステップと、 前記第2のデビットIDの妥当性を検査するステップ
    と、 前記第2のデビットIDの妥当性が検査されたときに、
    前記データ転送要求に応答するデータを前記第1のノー
    ド・バッファに転送するステップとを含むことを特徴と
    する請求項12に記載のプログラム記憶装置。
  16. 【請求項16】 マルチプロセッサ・システムにおいて
    第1のノードから第2のノードにペイロード・データを
    送受信するためのデータ構造であって、 ペイロード・データを有するペイロード部と、 第2のノード・バッファを有する第2のノード・インタ
    フェースにおいてデータ・パケットを処理するための相
    互接続チャネル・プログラムと入出力要求が伝送される
    であろう前記第2のノード内の位置を指示する第1のI
    Dを記憶するためのデビット・フィールドと前記入出力
    要求に応答するデータが伝送されるであろう第1のノー
    ド・バッファ内の位置を指示する第2のIDを記憶する
    ためのクレジット・フィールドとを持っているヘッダ部
    とを含むことを特徴とするデータ構造。
  17. 【請求項17】 更に前記第1のノード・バッファに連
    結された第1のノード・インタフェースにおいて入出力
    完了パケットを処理するための第2の側の相互接続チャ
    ネル・プログラムを含むことを特徴とする請求項16に
    記載のデータ構造。
  18. 【請求項18】 前記第1のIDは、前記第1のノード
    に前記第2のノード・バッファを使う権利を与え、ある
    いは前記第2のIDは第2のノードに与えることを特徴
    とする請求項16に記載のデータ構造。
JP06374499A 1998-02-06 1999-02-04 並列処理コンピュータ・システムにおけるデータの転送方法 Expired - Fee Related JP4536840B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/020,199 US6105122A (en) 1998-02-06 1998-02-06 I/O protocol for highly configurable multi-node processing system
US09/020199 1998-02-06

Publications (2)

Publication Number Publication Date
JPH11316748A true JPH11316748A (ja) 1999-11-16
JP4536840B2 JP4536840B2 (ja) 2010-09-01

Family

ID=21797275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06374499A Expired - Fee Related JP4536840B2 (ja) 1998-02-06 1999-02-04 並列処理コンピュータ・システムにおけるデータの転送方法

Country Status (3)

Country Link
US (1) US6105122A (ja)
EP (1) EP0935201A1 (ja)
JP (1) JP4536840B2 (ja)

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314100B1 (en) * 1998-03-26 2001-11-06 Emulex Corporation Method of validation and host buffer allocation for unmapped fibre channel frames
SE520101C2 (sv) * 1998-05-13 2003-05-27 Axis Ab Integrerad krets och metod för att förmå en intgrerad krets att exekvera instruktioner
JPH11345175A (ja) * 1998-06-02 1999-12-14 Nec Kofu Ltd 代替パス制御システム及び方法
US6587857B1 (en) * 1998-06-30 2003-07-01 Citicorp Development Center, Inc. System and method for warehousing and retrieving data
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US6401128B1 (en) * 1998-08-07 2002-06-04 Brocade Communiations Systems, Inc. System and method for sending and receiving frames between a public device and a private device
US6266785B1 (en) * 1998-09-01 2001-07-24 Ncr Corporation File system filter driver apparatus and method
US6546429B1 (en) * 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6778545B1 (en) * 1998-09-24 2004-08-17 Cisco Technology, Inc. DSP voice buffersize negotiation between DSPs for voice packet end devices
US6961748B2 (en) 1998-10-27 2005-11-01 Murrell Stephen J Uniform network access
US6519625B1 (en) * 1998-10-27 2003-02-11 Sociocybernetics Uniform network access
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US7480242B2 (en) * 1998-11-24 2009-01-20 Pluris, Inc. Pass/drop apparatus and method for network switching node
US6473827B2 (en) * 1998-12-22 2002-10-29 Ncr Corporation Distributed multi-fabric interconnect
US6542961B1 (en) * 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
US6434626B1 (en) * 1999-01-14 2002-08-13 Compaq Information Technologies Group, L.P. Method and apparatus for low latency network performance monitoring
US6785742B1 (en) * 1999-02-24 2004-08-31 Brocade Communications Systems, Inc. SCSI enclosure services
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US6618373B1 (en) 1999-11-10 2003-09-09 Cisco Technology, Inc. Method and system for reliable in-order distribution of events
US6640206B1 (en) * 1999-12-17 2003-10-28 Omnicluster Technologies Inc. Peer networking in concentrated computer clusters
US6738818B1 (en) * 1999-12-27 2004-05-18 Intel Corporation Centralized technique for assigning I/O controllers to hosts in a cluster
US6766397B2 (en) * 2000-02-07 2004-07-20 Emc Corporation Controlling access to a storage device
US20020105972A1 (en) * 2000-03-03 2002-08-08 Richter Roger K. Interprocess communications within a network node using switch fabric
US6973473B1 (en) * 2000-05-31 2005-12-06 International Business Machines Corporation Method, system and program products for managing identifiers of components of a clustered environment
US6751746B1 (en) * 2000-07-31 2004-06-15 Cisco Technology, Inc. Method and apparatus for uninterrupted packet transfer using replication over disjoint paths
JP3992427B2 (ja) 2000-08-01 2007-10-17 株式会社日立製作所 ファイルシステム
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
US6816980B1 (en) 2000-09-15 2004-11-09 Zeronines Technology, Inc. Fault tolerant, state-compatible computer system and method
US6804819B1 (en) * 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
WO2002027438A2 (en) 2000-09-28 2002-04-04 Vigilos, Inc. Method and process for configuring a premises for monitoring
WO2002027518A1 (en) * 2000-09-28 2002-04-04 Vigilos, Inc. System and method for providing configurable security monitoring utilizing an integrated information system
US6760861B2 (en) * 2000-09-29 2004-07-06 Zeronines Technology, Inc. System, method and apparatus for data processing and storage to provide continuous operations independent of device failure or disaster
US6675254B1 (en) * 2000-09-29 2004-01-06 Intel Corporation System and method for mid-plane interconnect using switched technology
US6907597B1 (en) * 2000-10-13 2005-06-14 Ati International Srl Method and apparatus for constructing an executable program in memory
US6938071B1 (en) * 2000-10-31 2005-08-30 Hewlett-Packard Development Company, L.P. Fault tolerant storage system having an interconnection fabric that also carries network traffic
JP3377994B2 (ja) * 2000-11-14 2003-02-17 三菱電機株式会社 データ配信管理装置およびデータ配信管理方法
US7551554B2 (en) * 2000-11-29 2009-06-23 Intel Corporation Fragmenting a packet
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US6912608B2 (en) * 2001-04-27 2005-06-28 Pts Corporation Methods and apparatus for pipelined bus
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US20030088658A1 (en) * 2001-11-08 2003-05-08 Davies Ian R. Obtaining information to facilitate system usage
US7349961B2 (en) * 2001-12-07 2008-03-25 Hitachi, Ltd. Detecting configuration inconsistency in storage networks
US6918001B2 (en) * 2002-01-02 2005-07-12 Intel Corporation Point-to-point busing and arrangement
US6988268B2 (en) * 2002-04-30 2006-01-17 Microsoft Corporation IO completion architecture for user-mode networking
US7328284B2 (en) * 2002-05-06 2008-02-05 Qlogic, Corporation Dynamic configuration of network data flow using a shared I/O subsystem
US7447778B2 (en) * 2002-05-06 2008-11-04 Qlogic, Corporation System and method for a shared I/O subsystem
US7356608B2 (en) * 2002-05-06 2008-04-08 Qlogic, Corporation System and method for implementing LAN within shared I/O subsystem
US7404012B2 (en) * 2002-05-06 2008-07-22 Qlogic, Corporation System and method for dynamic link aggregation in a shared I/O subsystem
US7171495B2 (en) * 2002-05-06 2007-01-30 Silverstorm Technologies, Inc. System and method for implementing virtual adapters and virtual interfaces in a network system
US20030220987A1 (en) * 2002-05-21 2003-11-27 Aviation Communication & Surveillance Systems, Llc System and method with environment memory for input/output configuration
US7024591B2 (en) * 2002-07-12 2006-04-04 Crossroads Systems, Inc. Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
JP3996010B2 (ja) 2002-08-01 2007-10-24 株式会社日立製作所 ストレージネットワークシステム、管理装置、管理方法及びプログラム
US7742473B2 (en) * 2002-11-12 2010-06-22 Mark Adams Accelerator module
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
EP1561306B1 (en) * 2002-11-12 2007-03-07 Zetera Corporation Communication protocols, systems and methods
US7319669B1 (en) 2002-11-22 2008-01-15 Qlogic, Corporation Method and system for controlling packet flow in networks
JP2004192105A (ja) * 2002-12-09 2004-07-08 Hitachi Ltd 記憶装置の接続装置およびそれを含むコンピュータシステム
US20040117522A1 (en) * 2002-12-11 2004-06-17 Dell Products L.P. System and method for addressing protocol translation in a storage environment
JP4252301B2 (ja) * 2002-12-26 2009-04-08 株式会社日立製作所 記憶システム及びそのデータバックアップ方法
US20040160975A1 (en) * 2003-01-21 2004-08-19 Charles Frank Multicast communication protocols, systems and methods
JP4274523B2 (ja) * 2003-01-24 2009-06-10 株式会社日立製作所 記憶装置システム、及び記憶装置システムの起動方法
US8015266B1 (en) * 2003-02-07 2011-09-06 Netapp, Inc. System and method for providing persistent node names
CA2520498C (en) * 2003-04-03 2012-09-25 Commvault Systems, Inc. System and method for dynamically performing storage operations in a computer network
US7293152B1 (en) * 2003-04-23 2007-11-06 Network Appliance, Inc. Consistent logical naming of initiator groups
US7353299B2 (en) 2003-05-29 2008-04-01 International Business Machines Corporation Method and apparatus for managing autonomous third party data transfers
US7356622B2 (en) * 2003-05-29 2008-04-08 International Business Machines Corporation Method and apparatus for managing and formatting metadata in an autonomous operation conducted by a third party
US7487235B2 (en) * 2003-09-24 2009-02-03 Dell Products L.P. Dynamically varying a raid cache policy in order to optimize throughput
US7155466B2 (en) * 2003-10-27 2006-12-26 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US20050114465A1 (en) * 2003-11-20 2005-05-26 International Business Machines Corporation Apparatus and method to control access to logical volumes using one or more copy services
JP4516306B2 (ja) 2003-11-28 2010-08-04 株式会社日立製作所 ストレージネットワークの性能情報を収集する方法
US7296079B2 (en) * 2004-01-27 2007-11-13 Ricoh Company, Ltd. Method and system for initializing protocol information used to extract status information from networked devices
US8214473B1 (en) * 2004-04-16 2012-07-03 Emc Corporation Apparatus, system, and method for communicating with a device within a computer system
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US20070266388A1 (en) * 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US7380030B2 (en) 2004-10-01 2008-05-27 Qlogic, Corp. Method and system for using an in-line credit extender with a host bus adapter
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
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
US7392437B2 (en) 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7774471B2 (en) 2006-06-15 2010-08-10 Adaptive Computing Enterprises, Inc. Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US7620981B2 (en) * 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US8676656B2 (en) * 2005-06-09 2014-03-18 Whirlpool Corporation Method for product demonstration
US8615332B2 (en) 2005-06-09 2013-12-24 Whirlpool Corporation Smart current attenuator for energy conservation in appliances
US9122788B2 (en) * 2005-06-09 2015-09-01 Whirlpool Corporation Appliance network for a networked appliance with a network binder accessory
US10333731B2 (en) 2005-06-09 2019-06-25 Whirlpool Corporation Methods and apparatus for communicatively coupling internal components within appliances, and appliances with external components and accessories
US20070288331A1 (en) * 2006-06-08 2007-12-13 Whirlpool Corporation Product demonstration system and method
US8250163B2 (en) 2005-06-09 2012-08-21 Whirlpool Corporation Smart coupling device
US8856036B2 (en) * 2005-06-09 2014-10-07 Whirlpool Corporation Method of providing product demonstrations
US8571942B2 (en) * 2005-06-09 2013-10-29 Whirlpool Corporation Method of product demonstration
US9164867B2 (en) * 2005-06-09 2015-10-20 Whirlpool Corporation Network for communicating information related to a consumable to an appliance
US8155120B2 (en) * 2005-06-09 2012-04-10 Whirlpool Corporation Software architecture system and method for discovering components within an appliance using fuctionality identifiers
US7831321B2 (en) * 2005-06-09 2010-11-09 Whirlpool Corporation Appliance and accessory for controlling a cycle of operation
CN101305350A (zh) * 2005-06-09 2008-11-12 惠而浦公司 与家用电器内的至少一个部件通信以及对其进行管理的软件体系系统和方法
US9009811B2 (en) * 2005-06-09 2015-04-14 Whirlpool Corporation Network system with electronic credentials and authentication for appliances
US8816828B2 (en) * 2005-06-09 2014-08-26 Whirlpool Corporation Recipe wand and recipe book for use with a networked appliance
US8027752B2 (en) * 2005-06-09 2011-09-27 Whirlpool Corporation Network for changing resource consumption in an appliance
US20080137670A1 (en) * 2005-06-09 2008-06-12 Whirlpool Corporation Network System with Message Binding for Appliances
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US7363399B2 (en) * 2005-08-17 2008-04-22 International Business Machines Corporation Method, apparatus and computer program product providing storage network dynamic tuning of I/O flow with Queue Depth
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7778960B1 (en) 2005-10-20 2010-08-17 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US7996608B1 (en) 2005-10-20 2011-08-09 American Megatrends, Inc. Providing redundancy in a storage system
US8010829B1 (en) * 2005-10-20 2011-08-30 American Megatrends, Inc. Distributed hot-spare storage in a storage cluster
US8010485B1 (en) 2005-10-20 2011-08-30 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US8631114B1 (en) * 2006-01-03 2014-01-14 Emc Corporation Information roll-up in distributed environments
US7809892B1 (en) 2006-04-03 2010-10-05 American Megatrends Inc. Asynchronous data replication
US7924881B2 (en) 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US8682733B2 (en) * 2006-06-08 2014-03-25 Whirlpool Corporation System for product demonstration
US7933875B2 (en) * 2006-08-24 2011-04-26 Sun Microsystems, Inc. File system with distributed components
US8498967B1 (en) 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US8046548B1 (en) 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US7908448B1 (en) 2007-01-30 2011-03-15 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems with write-back cache
US7747634B2 (en) * 2007-03-08 2010-06-29 Microsoft Corporation Rich data tunneling
US8108580B1 (en) 2007-04-17 2012-01-31 American Megatrends, Inc. Low latency synchronous replication using an N-way router
US7836143B2 (en) * 2007-04-25 2010-11-16 International Business Machines Corporation Message communications of particular message types between compute nodes using DMA shadow buffers
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7827024B2 (en) * 2007-05-09 2010-11-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8024426B2 (en) * 2007-05-11 2011-09-20 Texas Memory Systems, Inc. Non-disruptive data path upgrade using target mobility
US7966618B2 (en) * 2007-05-29 2011-06-21 International Business Machines Corporation Controlling data transfers from an origin compute node to a target compute node
US8037213B2 (en) * 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US20080307149A1 (en) * 2007-06-08 2008-12-11 Tomonori Hirai Clustering System and Flexible Interconnection Architecture Thereof
US7921428B2 (en) * 2007-06-18 2011-04-05 International Business Machines Corporation Multi-registration of software library resources
US7925802B2 (en) * 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
US8018951B2 (en) * 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7805546B2 (en) * 2007-07-27 2010-09-28 International Business Machines Corporation Chaining direct memory access data transfer operations for compute nodes in a parallel computer
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
US7904602B2 (en) * 2008-02-05 2011-03-08 Raptor Networks Technology, Inc. Distributed computing bus
US8862706B2 (en) 2007-12-14 2014-10-14 Nant Holdings Ip, Llc Hybrid transport—application network fabric apparatus
JP5307796B2 (ja) * 2008-03-19 2013-10-02 パナソニック株式会社 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US7904749B2 (en) 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US9154942B2 (en) * 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US8332549B2 (en) * 2009-03-31 2012-12-11 Lsi Corporation Method and system for implementing parallelism with SCSI I/O referrals
US9477947B2 (en) 2009-08-24 2016-10-25 International Business Machines Corporation Retrospective changing of previously sent messages
US8544026B2 (en) 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
US8478877B2 (en) * 2010-02-24 2013-07-02 Oracle International Corporation Architecture-aware allocation of network buffers
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8868700B2 (en) 2010-12-28 2014-10-21 Nant Holdings Ip, Llc Distributed network interfaces for application cloaking and spoofing
US20120331153A1 (en) * 2011-06-22 2012-12-27 International Business Machines Corporation Establishing A Data Communications Connection Between A Lightweight Kernel In A Compute Node Of A Parallel Computer And An Input-Output ('I/O') Node Of The Parallel Computer
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US9152603B1 (en) * 2011-12-31 2015-10-06 Albert J Kelly, III System and method for increasing application compute client data I/O bandwidth performance from data file systems and/or data object storage systems by hosting/bundling all of the data file system storage servers and/or data object storage system servers in the same common global shared memory compute system as the application compute clients
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
CN104160379B (zh) 2012-02-27 2016-08-31 松下电器产业株式会社 访问装置、通信设备、通信系统以及数据访问方法
US8621074B2 (en) 2012-04-27 2013-12-31 Xerox Business Services, Llc Intelligent work load manager
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US10361967B2 (en) * 2014-09-17 2019-07-23 GM Global Technology Operations LLC Communication system using audio video bridging
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
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
US10425503B2 (en) * 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10133617B2 (en) * 2016-07-01 2018-11-20 Hewlett Packard Enterprise Development Lp Failure notifications in multi-node clusters
FR3071119B1 (fr) * 2017-09-11 2019-09-13 Thales Reseau de communication, systeme de mesure, moyen de transport et procede de construction d'un reseau de communication associes
CN112699573B (zh) * 2021-01-20 2023-04-07 新拓三维技术(深圳)有限公司 一种虚拟管路模型的逆向建模方法、系统及电子设备
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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334266A (ja) * 1992-06-01 1993-12-17 Fujitsu Ltd サーバ・クライアントモデルの処理装置
JPH07244642A (ja) * 1994-03-04 1995-09-19 Sanyo Electric Co Ltd 並列処理計算機
JPH09269936A (ja) * 1996-03-30 1997-10-14 Nec Corp リモートリード処理方法およびその装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
US4982187A (en) * 1989-11-28 1991-01-01 International Business Machines Corporation Low-end high-performance switch subsystem architecture
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
US5907684A (en) * 1994-06-17 1999-05-25 International Business Machines Corporation Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image
JPH0981508A (ja) * 1995-08-31 1997-03-28 Internatl Business Mach Corp <Ibm> 通信方法及び装置
KR0152228B1 (ko) * 1995-12-23 1998-11-02 양승택 데이타 교환 시스템에 있어서 분산 경로 제어를 이용한 데이타 송수신 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334266A (ja) * 1992-06-01 1993-12-17 Fujitsu Ltd サーバ・クライアントモデルの処理装置
JPH07244642A (ja) * 1994-03-04 1995-09-19 Sanyo Electric Co Ltd 並列処理計算機
JPH09269936A (ja) * 1996-03-30 1997-10-14 Nec Corp リモートリード処理方法およびその装置

Also Published As

Publication number Publication date
JP4536840B2 (ja) 2010-09-01
US6105122A (en) 2000-08-15
EP0935201A1 (en) 1999-08-11

Similar Documents

Publication Publication Date Title
JP4536840B2 (ja) 並列処理コンピュータ・システムにおけるデータの転送方法
JP4618654B2 (ja) 並列処理コンピュータ・システムにおけるデータ通信方法
JP4615642B2 (ja) 拡張可能な並列処理コンピュータ・システムにおけるデータ通信方法
JP4615643B2 (ja) データ・ストレージ・システムにおける危険状態データの識別方法
JP4868630B2 (ja) メモリ・システムの構成方法及びメモリ・システムの構成装置
JPH11328135A (ja) 並列処理コンピュ―タ・システム
US6594698B1 (en) Protocol for dynamic binding of shared resources
US6711632B1 (en) Method and apparatus for write-back caching with minimal interrupts
Kronenberg et al. VAXcluster: A closely-coupled distributed system
US6718392B1 (en) Queue pair partitioning in distributed computer system
US6081883A (en) Processing system with dynamically allocatable buffer memory
US7103626B1 (en) Partitioning in distributed computer system
US5485579A (en) Multiple facility operating system architecture
US20060195663A1 (en) Virtualized I/O adapter for a multi-processor data processing system
US20070022314A1 (en) Architecture and method for configuring a simplified cluster over a network with fencing and quorum
JPH09237226A (ja) マルチコンピュータ・システムにおける信頼性の高いディスク・フェンシングのための方法および装置
JP2006508470A (ja) クラスタシステムのためのハートビート機構
JP4653490B2 (ja) 相互接続を有するクラスタリングシステムおよび方法
Farazdel et al. Understanding and using the SP Switch
Shaw et al. Linux Installation and Configuration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060118

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080611

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080910

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080916

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081010

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081016

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081111

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081211

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100201

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100604

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100617

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

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees