JP2000259502A - Method and device for transferring write cache data for data storage and data processing system - Google Patents
Method and device for transferring write cache data for data storage and data processing systemInfo
- Publication number
- JP2000259502A JP2000259502A JP11257732A JP25773299A JP2000259502A JP 2000259502 A JP2000259502 A JP 2000259502A JP 11257732 A JP11257732 A JP 11257732A JP 25773299 A JP25773299 A JP 25773299A JP 2000259502 A JP2000259502 A JP 2000259502A
- Authority
- JP
- Japan
- Prior art keywords
- node
- ion
- pit
- data
- request
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【発明が属する技術分野】本発明は、一般に計算システ
ムに関し、特にデータ・ストレージとデータ処理システ
ムにおける書き込みキャッシュデータの転送方法及び装
置に関する。これは、プロセッサやメモリキャビネット
の境界に関係なく、運用上において、仮想ストレージ割
り当ての単一の視点を提供する。The present invention relates generally to computing systems, and more particularly, to a method and apparatus for transferring write cache data in a data storage and data processing system. This provides a single point of view of virtual storage allocation in operation, regardless of processor or memory cabinet boundaries.
【0002】[0002]
【従来の技術】テクノロジの進化は、無関係に見える一
連の技術開発の成果であることが多い。こうした無関係
の開発はそれぞれ意義深いものかもしれないが、これら
が結合することで、大きなテクノロジの進化の基盤を形
成することができる。歴史的に見て、大きく複雑なコン
ピュータシステムの構成要素では、不均一な技術的成長
がなされてきた。これには例えば、(1)ディスクI/
O性能に比較して急速なCPU性能の進歩、(2)進化
する内部CPUアーキテクチャ、(3)インターコネク
ト・ファブリックが含まれる。BACKGROUND OF THE INVENTION Technology evolution is often the result of a series of seemingly unrelated technological developments. Each of these unrelated developments may be significant, but when combined, they can form the basis for a major technology evolution. Historically, components of large and complex computer systems have experienced uneven technological growth. This includes, for example, (1) disk I /
It includes rapid CPU performance advances compared to O performance, (2) evolving internal CPU architecture, and (3) interconnect fabric.
【0003】過去10年間に渡り、ディスクI/O性能
が向上する割合は、ノードのそれに比べ、かなり遅かっ
た。CPU性能は1年に40%〜100%の割合で増加
してきたが、ディスクのシークタイムが改善される割合
は1年にわずか7%だった。この傾向が予測通りに継続
すれば、代表的なサーバノードが動かすことのできるデ
ィスクドライブの数は、ほとんどの大規模システムの量
と価値の両方において、ディスクドライブが最も影響の
大きな構成要素となるほどに上昇する。この現象はすで
に既存の大規模システムの導入において現実のものにな
っている。Over the past decade, the rate at which disk I / O performance has improved has been much slower than that of nodes. While CPU performance has increased at a rate of 40% to 100% per year, only 7% per year has improved disk seek time. If this trend continues as expected, the number of disk drives a typical server node can run will be such that disk drives will be the most influential component in both the volume and value of most large systems. To rise. This phenomenon has already become a reality in the introduction of existing large-scale systems.
【0004】不均一な性能の向上はCPUの中でも発生
している。CPU性能を改善するために、CPUベンダ
はクロック速度の増加とアーキテクチャの変更を組み合
わせて利用している。こうしたアーキテクチャ変更の多
くは、並行処理コミュニティの影響による証明されたテ
クノロジである。こうした変更はアンバランスな性能を
生み出し、期待されるほどの性能の向上につながらない
可能性もある。単純な例としては、CPUが割込みを処
理できる割合は、基本命令のそれと同じ速度で向上して
はいない。したがって、割込み性能に依存するシステム
機能(I/Oなど)は計算能力と一緒に向上してはいな
い。[0004] Non-uniform performance improvements also occur in CPUs. To improve CPU performance, CPU vendors have used a combination of increasing clock speeds and architectural changes. Many of these architectural changes are proven technologies influenced by the concurrency community. These changes may result in unbalanced performance and may not be as good as expected. As a simple example, the rate at which a CPU can handle an interrupt has not increased at the same rate as that of a basic instruction. Therefore, system functions (such as I / O) that depend on interrupt performance have not improved with computing power.
【0005】インターコネクト・ファブリックも不均一
なテクノロジ成長の特徴を示している。これは長年に渡
り、10〜20MB/秒ほどの性能レベルにあったが、
過去1年間に、帯域幅において100MB/秒(以上)
レベルの大きな飛躍も起こっている。[0005] Interconnect fabrics have also been characterized by uneven technology growth. This has been at a performance level of about 10-20 MB / sec for many years,
100MB / s (or more) in bandwidth over the past year
A major leap in levels has also taken place.
【0006】この大きな性能の向上により、大規模並行
処理システムの経済的な配置が可能になった。[0006] This significant performance improvement has made it possible to economically deploy large scale parallel processing systems.
【0007】この不均一な性能はアプリケーション・ア
ーキテクチャ及びシステム構成のオプションに悪い影響
を与える。例えば、アプリケーション性能に関して言え
ば、CPU性能の増加といった、システムのいくつかの
部分における性能改善を利用するために仕事量を増やす
試みは、ディスク・サブシステムにおいて同等の性能改
善がなされていないために阻害されることが多い。CP
Uが1秒間に行うデータ処理の数を2倍にできたとして
も、ディスク・サブシステムはその増加分の一部しか扱
うことができない。不均一なハードウェア性能の成長に
よる全体的な影響は、アプリケーション性能が特定の仕
事の特徴に依存する度合いが高まっていることにある。[0007] This uneven performance adversely affects application architecture and system configuration options. For example, in terms of application performance, attempts to increase the amount of work to take advantage of performance improvements in some parts of the system, such as increasing CPU performance, are due to the lack of comparable performance improvements in the disk subsystem. Often inhibited. CP
Even if U can double the number of data operations performed per second, the disk subsystem can handle only a part of the increase. The overall effect of uneven hardware performance growth is that application performance is increasingly dependent on specific job characteristics.
【0008】プラットフォーム・ハードウェア・テクノ
ロジの不均一な成長は別の深刻な問題も生み出してい
る。マルチノードシステムの構成に利用できるオプショ
ンの数の減少である。この良い例は、ストレージ・イン
ターコネクト・テクノロジの変化によってTERADA
TE4ノード・クリークのソフトウェア・アーキテクチ
ャが受けた影響である。TERADATEのクリークモ
デルでは、シングル・クリークのノード間での均一なス
トレージ接続を期待していた。この場合、すべてのノー
ドから各ディスクドライブにアクセスすることが可能で
ある。したがって、一つのノードが止まった場合、その
ノード用のストレージは残りのノードが分割できる。ス
トレージ及びノードテクノロジの不均一な成長により、
ストレージ共有環境において、一つのノードに接続でき
るディスクの数は制限されている。この制限は、一つの
I/Oチャンネルに接続できるドライブの数及び4ノー
ド共有I/Oトポロジにおいて接続可能なバスの物理的
な数によって生じている。ノード性能の改善が続くにつ
れ、私たちは性能向上を実現するために、一つのノード
に接続するディスクスピンドルの数を増加させなくては
いけない。[0008] The uneven growth of platform hardware technology has also created another serious problem. A reduction in the number of options available for configuring a multi-node system. A good example of this is the change in storage interconnect technology due to TERADA
This is the effect on the software architecture of TE4 Node Creek. The TERADATE creek model expected uniform storage connections between nodes in a single creek. In this case, it is possible to access each disk drive from all nodes. Therefore, when one node stops, the storage for that node can be divided by the remaining nodes. Due to the uneven growth of storage and node technology,
In a storage sharing environment, the number of disks that can be connected to one node is limited. This limitation is caused by the number of drives that can be connected to one I / O channel and the physical number of buses that can be connected in a four-node shared I / O topology. As node performance continues to improve, we must increase the number of disk spindles connected to a node in order to achieve performance improvements.
【0009】クラスタ及び大規模並行処理(MPP)の
設計は、上述の問題の解決を試みたマルチノードシステ
ム設計の例である。クラスタは限られた拡張性が欠点で
あり、MPPシステムには、十分にシンプルなアプリケ
ーションモデルを提供するための追加ソフトウェアが必
要である(市販のMPPシステムでは、このソフトウェ
アは通常DBMS)。MPPシステムでは、非常に高い
可用性を提供するために、内部クラスタリングの形式
(クリーク)も必要になる。どちらのソリューションに
おいても、いまだにディスクドライブの多数化の可能性
を管理する上で課題が生じている。こうしたディスクド
ライブは、電気機械装置であり、十分に予測可能なほど
の故障率を有している。MPPシステムでは、通常ノー
ド数が大きいため、ノードのインターコネクトの問題は
より悪化することになる。また、どちらのアプローチに
おいても、ディスク接続性の課題が生じており、これも
非常に大きなデータベースを保存するのに必要なドライ
ブの数の多さが原因となっている。The design of clusters and massively parallel processing (MPP) is an example of a multi-node system design that attempts to solve the above-mentioned problems. Clusters suffer from limited scalability, and MPP systems require additional software to provide a sufficiently simple application model (in commercial MPP systems, this software is usually DBMS). MPP systems also require a form of internal clustering (clique) to provide very high availability. Both solutions still face challenges in managing the potential for a proliferation of disk drives. Such disk drives are electromechanical devices and have a sufficiently predictable failure rate. In the MPP system, since the number of nodes is usually large, the problem of the interconnection of the nodes is further exacerbated. Both approaches also suffer from disk connectivity issues, again due to the large number of drives required to store very large databases.
【0010】上述の問題は、ストレージ装置と計算装置
が、高性能の接続ファブリックで計算を行い、アーキテ
クチャ上の同等の存在として働くアーキテクチャでは改
善される。このアーキテクチャでは、ストレージ及び計
算リソースの管理における柔軟性を増加させることがで
きる。しかし、この柔軟性により、いくつかの独特な問
題が現れる。こうした問題の一つは、このアーキテクチ
ャが提供する速度と柔軟性を維持しながら、安全なデー
タ・ストレージを確保することである。[0010] The above problems are ameliorated in an architecture in which the storage device and the computing device perform calculations in a high performance connection fabric and act as architectural equivalents. This architecture allows for increased flexibility in managing storage and computing resources. However, this flexibility presents some unique problems. One of these issues is ensuring secure data storage while maintaining the speed and flexibility provided by this architecture.
【0011】従来のアーキテクチャでは、書き込みキャ
ッシュのテクニックにより効率的なデータ・ストレージ
が可能となる。CPUによって通常はディスクに書き込
まれるデータは、まず書き込みキャッシュに書き込まれ
る。そして、このデータはCPUのアイドル・サイクル
中にディスクに書き込まれる。書き込みキャッシュへの
書き込みはディスクやRAMへの書き込みよりも速いた
め、このテクニックによって性能が向上する。In conventional architectures, write cache techniques allow for efficient data storage. Data normally written to disk by the CPU is first written to the write cache. This data is then written to disk during the CPU idle cycle. This technique improves performance because writing to the write cache is faster than writing to disk or RAM.
【0012】ディスクのために書き込みキャッシュを使
用するのには一定のリスクも伴う。ディスクメディアに
書き込まれる前に、データがディスク装置の揮発性メモ
リに長い時間とどまることになるからである。これに要
する時間は、普通は長くとも数秒だが、データが不揮発
性のストレージに書き込まれる前にクラッシュやシステ
ム不良が起これば、そのデータは失われる可能性があ
る。There are certain risks associated with using a write cache for a disk. This is because data will remain in the volatile memory of the disk device for a long time before being written to the disk medium. This typically takes at most a few seconds, but if the crash or system failure occurs before the data is written to non-volatile storage, the data can be lost.
【0013】書き込みキャッシュは高度な分散アーキテ
クチャでも使用することができる。しかし、こうしたア
ーキテクチャに書き込みキャッシュ・プロトコルを導入
した場合、計算ノードとストレージ・メディアの間で通
信及び処理に関する大量のオーバーヘッドが必要にな
り、システムの速度と効率が減少してしまう。[0013] The write cache can also be used in highly distributed architectures. However, introducing a write cache protocol in such an architecture requires a large amount of communication and processing overhead between the compute nodes and the storage media, reducing the speed and efficiency of the system.
【0014】[0014]
【発明が解決しようとする課題】本発明の目的は、分散
アーキテクチャにおける効率的なデータ書き込みキャッ
シュのプロトコルを提供して、上述の欠点を改善するこ
とである。SUMMARY OF THE INVENTION It is an object of the present invention to provide an efficient data write cache protocol in a distributed architecture to remedy the above-mentioned disadvantages.
【0015】[0015]
【課題を解決するための手段】第一の観点によれば、本
発明は、データ・ストレージとデータ処理システムにお
ける書き込みキャッシュデータの転送方法であって、第
一のI/Oノードにおいて、書き込みデータを含む書き
込み要求を計算ノードから受領するステップと、書き込
みデータを第一のI/Oノードから第二のI/Oノード
に転送するステップと、確認メッセージを第二のI/O
ノードから計算ノードに送信するステップと、を含むこ
とを特徴とする方法に存する。According to a first aspect, the present invention is a method for transferring write cache data in a data storage and data processing system, comprising the steps of: Receiving a write request from a computing node, transferring write data from a first I / O node to a second I / O node, and transmitting a confirmation message to the second I / O node.
Transmitting from the node to the computing node.
【0016】データが第一のI/Oノードの不揮発性ス
トレージに書き込まれた後、第二のI/Oノードの揮発
性メモリから書き込みデータを排除するために、第二の
I/Oノードに排除要求又はコマンドが送られる。実施
形態によっては、排除要求は第一のI/Oノードが第二
の書き込み要求を受け取るまで送られず、この場合、排
除要求は第二の書き込み要求の書き込みデータと同じ割
込みの中で送られる。このデータ処理システムは第一の
及び第二のI/Oノードで構成され、各ノードは計算ノ
ードからの書き込み要求を受領し、別のI/Oノードへ
書き込みノードを転送するための手段を有している。ま
た、各I/Oノードには、書き込みデータを送ったI/
Oノードを介して確認メッセージを送信するのではな
く、計算ノードに直接確認メッセージを送る手段も有し
ている。この成果が、データ保存に要する割込み回数を
減らしながら、書き込みキャッシュを導入してストレー
ジ速度及びターンアラウンドを改善するI/Oプロトコ
ルである。After the data has been written to the non-volatile storage of the first I / O node, the data is written to the second I / O node to remove the write data from the volatile memory of the second I / O node. An exclusion request or command is sent. In some embodiments, the eviction request is not sent until the first I / O node receives the second write request, in which case the eviction request is sent in the same interrupt as the write data of the second write request. . The data processing system comprises first and second I / O nodes, each node having a means for receiving a write request from a compute node and transferring the write node to another I / O node. are doing. In addition, each I / O node is provided with an I / O
Instead of sending the confirmation message via the O-node, there is also a means for sending the confirmation message directly to the computing node. The result is an I / O protocol that improves storage speed and turnaround by introducing a write cache while reducing the number of interrupts required to store data.
【0017】第二のの観点によれば、本発明は、データ
・ストレージとデータ処理システムにおける書き込みキ
ャッシュデータの転送装置であって、第一のI/Oノー
ドにおいて書き込みデータを含む書き込み要求を計算ノ
ードから受領する手段と、書き込みデータを第一のI/
Oノードから第二のI/Oノードに転送する手段と、確
認メッセージを第二のI/Oノードから計算ノードに送
信する手段と、を備えたことを特徴とする装置に存す
る。According to a second aspect, the present invention is an apparatus for transferring write cache data in a data storage and data processing system, wherein the first I / O node calculates a write request including the write data. Means for receiving from the node, and writing data to the first I / O
An apparatus comprises: means for transferring an O node to a second I / O node; and means for transmitting a confirmation message from the second I / O node to a computation node.
【0018】更に、別の観点によれば、本発明は、コン
ピュータによる読み出しが可能で、請求項1乃至7に係
るデータ・ストレージ・システムにおける書き込みキャ
ッシュデータの転送を行うステップを遂行するために、
コンピュータにより実行可能な一つ以上の命令プログラ
ムを確実に具現するプログラム・ストレージ・デバイス
に存する。According to yet another aspect, the present invention provides a method for performing a step of transferring write cache data in a data storage system readable by a computer and according to claims 1 to 7,
The present invention resides in a program storage device that reliably implements one or more instruction programs executable by a computer.
【0019】[0019]
【発明の実施の形態】以下、本発明の一実施形態につい
て、添付図面を利用して例示的に説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below with reference to the accompanying drawings.
【0020】A. 概要 図1は、本発明の同列間データ処理アーキテクチャの概
観である。このアーキテクチャ100は1つ以上の計算
リソース102及び一つ以上のストレージリソース10
4で構成され、ストレージリソース104は1つ以上の
インターコネクト・ファブリック106及び通信パス1
08を介して計算リソース102と通信上で対になって
いる。ファブリック106はすべてのノードとストレー
ジに通信媒体を与えているため、計算リソース102と
ストレージ・リソース104間の均一な同列アクセスを
可能にしている。A. Overview FIG. 1 is an overview of the same-row data processing architecture of the present invention. The architecture 100 includes one or more compute resources 102 and one or more storage resources 10
4, the storage resource 104 includes one or more interconnect fabrics 106 and a communication path 1
08 and a communication pair with the computational resource 102. The fabric 106 provides a communication medium for all nodes and storage, thus allowing for uniform, equal access between the computing resources 102 and the storage resources 104.
【0021】図1のアーキテクチャでは、ストレージは
最新のノード中心アーキテクチャ内にあるため、単一の
ノードセットに限定されてはおらず、各ノードがすべて
のストレージと通信することができる。これは、物理シ
ステムトポロジがストレージとノードの通信を制限し、
仕事量に応じて異なるトポロジが必要になることの多
い、今日のマルチノード・システムとは対照的である。
図1のアーキテクチャでは、広範囲のシステム・トポロ
ジをサポートする単一の物理アーキテクチャを提供して
いるため、アプリケーション・ソフトウェアの通信パタ
ーンは、あらゆる時期においてシステムのトポロジを決
定し、不均一なテクノロジの成長を受け入れることが可
能である。ファブリック106が与える分離によって、
各主要システム・コンポーネントのための詳細なスケー
リングが可能である。In the architecture of FIG. 1, since the storage is in a modern node-centric architecture, it is not limited to a single set of nodes, but each node can communicate with all storage. This is because the physical system topology limits storage and node communication,
In contrast to today's multi-node systems, where different topologies are often required depending on the workload.
Because the architecture of FIG. 1 provides a single physical architecture that supports a wide range of system topologies, the communication patterns of the application software determine the topology of the system at any time, resulting in uneven technology growth. It is possible to accept. Due to the separation provided by fabric 106,
Detailed scaling for each major system component is possible.
【0022】図2は、本発明の同列アーキテクチャの詳
細な説明を表している。計算リソースは、1つ以上の計
算ノード200で定義され、それぞれがOS202の管
理下にある1つ以上のアプリケーション204を実行す
る1つ以上のプロセッサ216を有している。テープド
ライブ、プリンタその他のネットワークといった周辺機
器208は計算ノード200と運用上で対になってい
る。さらに、OS202、アプリケーション204その
他の情報を構成する命令といった、計算ノード200固
有の情報を保存するハードディスクなどのローカルスト
レージ装置210も、計算ノード200と運用上で対に
なっている。アプリケーション命令は、分散処理の形式
で、1つ以上の計算ノード200で保存や実行が行われ
る。実施形態では、プロセッサ206はINTEL P
6のような既製の市販多目的プロセッサと、付随するメ
モリやI/O要素で構成される。FIG. 2 shows a detailed description of the parallel architecture of the present invention. Computational resources are defined by one or more compute nodes 200, each having one or more processors 216 executing one or more applications 204 under the control of an OS 202. Peripheral devices 208 such as tape drives, printers, and other networks are operationally paired with the computing node 200. Furthermore, a local storage device 210 such as a hard disk for storing information unique to the computing node 200, such as the OS 202, the application 204, and other commands constituting information, is operationally paired with the computing node 200. Application instructions are stored and executed on one or more compute nodes 200 in the form of distributed processing. In an embodiment, the processor 206 includes the INTEL P
6 and an off-the-shelf off-the-shelf general-purpose processor and associated memory and I / O elements.
【0023】ストレージ・リソース104は、クリーク
226で定義され、このそれぞれには第一のI/Oノー
ド又はION212と第二のI/Oノード又はION2
14が含まれ、そのそれぞれがシステム・インターコネ
クト228によってインターコネクト・ファブリック1
05と運用上で対になっている。第一のION212及
び第二のION214は運用上、1つ以上のストレージ
ディスク224(「一群のディスク」又はJBODとし
て知られる)と対になっており、これにはIBODエン
クロージャ222が付随している。Storage resources 104 are defined at cliques 226, each of which has a first I / O node or ION 212 and a second I / O node or ION2.
14, each of which is interconnected by the system interconnect 228 in the interconnect fabric 1.
05 in operation. The first ION 212 and the second ION 214 are operationally paired with one or more storage disks 224 (also known as a "group of disks" or JBOD), which is accompanied by an IBOD enclosure 222. .
【0024】図2は、中規模システムを表しており、I
ON212と計算ノードは代表的な2対1の割合になっ
ている。本発明のクリーク226には、3つ以上のIO
N214を導入したり、ストレージ・ノードの可用性が
不足している場合は、単一のION212を導入するこ
ともできる。クリーク226内の数は、ION212内
で共有されるハードウェアは無いため、純粋にソフトウ
ェアの問題である。ペアになったION212は「ダイ
ポール」と呼ばれることもある。FIG. 2 shows a medium-sized system,
The ON 212 and the computation nodes have a typical ratio of 2: 1. The clique 226 of the present invention has three or more IOs.
A single ION 212 may be installed if the N214 is installed or if the availability of the storage node is insufficient. The number in creek 226 is purely a software problem, since no hardware is shared within ION 212. The paired IONs 212 are sometimes called “dipoles”.
【0025】本発明の構成要素には、計算ノード20
0、ION212、インターコネクト・ファブリック1
06を接続する管理コンポーネント又はシステム管理者
230も含まれる。The components of the present invention include a computing node 20
0, ION212, interconnect fabric 1
06 is also included.
【0026】ION212とJBOD222の接続は、
ここでは簡単な形式で示してある。実際の接続では、図
の構成にあるストレージ・ディスク224のそれぞれの
階層(列、ここでは4列)にファイバ・チャンネル・ケ
ーブルを使用する。実際には、各ION212が管理す
るストレージ・ディスクの数は、図の実施形態のように
20ではなく、40〜80になると思われる。The connection between the ION 212 and the JBOD 222 is as follows.
Here, it is shown in a simple format. The actual connection uses Fiber Channel cables for each tier (row, here four rows) of storage disks 224 in the configuration shown. In practice, it is expected that the number of storage disks managed by each ION 212 will be 40-80 instead of 20, as in the illustrated embodiment.
【0027】B. ION(ストレージ・ノード) 1. 内部アーキテクチャ a) ハードウェア・アーキテクチャ 図3は、ION212の構成とJBOD222とのイン
ターフェースに関する詳細な図である。各ION212
は、JBODインターコネクト216を介してJBOD
222アレイ内のストレージ・ディスク224との通信
接続を行うI/O接続モジュール302、ION212
の機能を実行し、本文書で説明するION物理ディスク
ドライバ500の導入を行うCPU及びメモリ304、
ION212の動作をサポートする電力を供給する電源
モジュール306で構成される。B. ION (storage node) Internal Architecture a) Hardware Architecture FIG. 3 is a detailed diagram of the configuration of the ION 212 and the interface with the JBOD 222. Each ION 212
Is JBOD via JBOD Interconnect 216
I / O connection module 302 for making communication connection with storage disk 224 in the array 222, ION 212
CPU and memory 304, which perform the functions of the ION physical disk driver 500 described in this document.
The power supply module 306 supplies power to support the operation of the ION 212.
【0028】b) JBOD 図4は、JBODエンクロージャ222の詳細を示す図
である。モニター又はコントロールの可能なJBODエ
ンクロージャ222のすべての構成要素はエレメント4
02〜424と呼ばれる。任意のJBODエンクロージ
ャのあらゆるエレメント402〜424は、受領診断結
果コマンドを通じて、構成ページコードと共に返送され
る。ION212はこのエレメントの順序リストを利用
して、エレメントに番号を付ける。図の第一のエレメン
ト402はエレメント0、二番目のエレメント404は
エレメント1等となる。こうしたエレメント番号は、本
文書で説明する管理サービスレイヤ706がコンポーネ
ントのアドレスに使用するLUN_Cを作成する際に使
用される。B) JBOD FIG. 4 is a diagram showing details of the JBOD enclosure 222. All components of the monitor or controllable JBOD enclosure 222 are element 4
02-424. All elements 402-424 of any JBOD enclosure are returned with the configuration page code via the Receive Diagnostic Result command. The ION 212 uses the ordered list of the elements to number the elements. The first element 402 in the figure is element 0, the second element 404 is element 1, and so on. These element numbers are used when the management service layer 706 described in this document creates a LUN_C used for the address of the component.
【0029】[0029]
【表1】 [Table 1]
【0030】エンクロージャ内では、エレメントの位置
は、上の表Iにあるように、ラック、シャシ、エレメン
トの番号で特定される。ラック番号は、ダイポールに属
するラックに割り当てられたダイポール内部の番号であ
る。シャシ位置は、キャビネット管理デバイスが報告し
た高さを表す。エレメント番号は、SES構成ページが
返送したエレメント・リストのインデックスである。こ
れらのフィールドはLUN_Cフォーマットを形成す
る。Within the enclosure, element locations are identified by rack, chassis, and element numbers, as shown in Table I above. The rack number is a number inside the dipole assigned to the rack belonging to the dipole. The chassis position represents the height reported by the cabinet management device. The element number is the index of the element list returned by the SES configuration page. These fields form the LUN_C format.
【0031】c)I/Oインターフェース・ドライバ・
アーキテクチャ 図5は、ION212の「SCSIドライバ」として働
くION物理ディスクドライバ500を含めた、ION
212のI/Oアーキテクチャを示す図である。ION
物理ディスクドライバ500は、RAID(安価ディス
クのリダンダント・アレイ)ソフトウェアドライバやシ
ステム管理者230の管理ユーティリティからのI/O
要求の取り込みを管理し、JBODインターコネクト2
16のデバイス側にあるデバイスで要求を実行する。C) I / O interface driver
Architecture FIG. 5 shows an ION including an ION physical disk driver 500 that acts as a “SCSI driver” for the ION 212.
FIG. 2 illustrates an I / O architecture of an I / O module 212. ION
The physical disk driver 500 is an I / O from a RAID (redundant disk redundant array) software driver or a management utility of the system administrator 230.
Manages fetching of requests, and JBOD Interconnect 2
The request is executed on the device on the side of the 16 devices.
【0032】本発明の物理ディスクドライバ500には
3つの主要なコンポーネントが含まれる。これは、高レ
ベルドライバ(HDL)502、デバイス固有高レベル
ドライバ504、低レベルドライバ506である。HL
D502は、共通部分503とデバイス固有高レベル部
分504、及び低レベルドライバ506で構成される。
共通及びデバイス固有高レベルドライバ502及び50
4は、アダプタに依存せず、新しいアダプタ・タイプの
ための修正は必要ない。ファイバ・チャンネル・インタ
ーフェース(FCI)低レベルドライバ506は、ファ
イバ・チャンネル・アダプタをサポートしており、その
ためアダプタ固有ではなくプロトコル固有である。The physical disk driver 500 of the present invention includes three major components. These are a high-level driver (HDL) 502, a device-specific high-level driver 504, and a low-level driver 506. HL
D502 includes a common part 503, a device-specific high-level part 504, and a low-level driver 506.
Common and device specific high level drivers 502 and 50
4 is adapter independent and requires no modification for new adapter types. The Fiber Channel Interface (FCI) low level driver 506 supports Fiber Channel adapters and is therefore protocol-specific rather than adapter-specific.
【0033】FCI低レベルドライバ506はSCSI
要求をFCPフレームにトランスレートし、Login
やProcess Loginといったファイバ・チャ
ンネル共通サービスを扱う。FCI低レベルドライバ5
06が運用上で対になっているのは、ハードウェア・イ
ンターフェース・モジュール(HIM)インターフェー
ス508で、これはファイバ・チャンネル・プロトコル
操作とアダプタ固有ルーチンを分離する。上述のコンポ
ーネントの詳しい説明は以下に記述する。The FCI low level driver 506 is a SCSI
Translates the request into an FCP frame, Login
And common services such as Process Login. FCI low level driver 5
Operationally paired with 06 is a hardware interface module (HIM) interface 508, which separates Fiber Channel protocol operations from adapter-specific routines. A detailed description of the above components is provided below.
【0034】(1) 高レベルドライバ 高レベルドライバ(HLD)502は、アクセスしてい
るデバイスのタイプに関係なく、ION212に対する
すべての要求の入口点である。デバイスがオープンにな
ると、HLD502はそのデバイスにコマンドページを
結びつける。こうしたベンダ固有のコマンドページは、
特定のSCSI機能に対して、どのようにSCSIコマ
ンド記述子ブロックを形成するかを指示する。コマンド
ページにより、ドライバは、特定のSCSI機能を異な
る方法で扱うデバイスを、SCSI仕様による指定より
も容易にサポートすることができる。(1) High Level Driver The High Level Driver (HLD) 502 is the entry point for all requests to the ION 212, regardless of the type of device being accessed. When a device is opened, HLD 502 binds a command page to the device. These vendor-specific command pages are:
Indicate how to form a SCSI command descriptor block for a particular SCSI function. The command page allows the driver to more easily support devices that handle a particular SCSI function differently than specified by the SCSI specification.
【0035】(a) 共通(非デバイス固有)部分 HLD502の共通部分には以下の入口点が含まれる。(A) Common (Non-Device Specific) Portion The common portion of the HLD 502 includes the following entry points.
【0036】・ cs_init ドライバ構造を初期
化し、リソースを割り当てる。Cs_init Initializes the driver structure and allocates resources.
【0037】・ cs_open デバイス使用の準備
をする。Cs_open Prepare to use the device.
【0038】・ cs_close I/Oを完了し、
サービスからデバイスを除去する。Completion of cs_close I / O,
Remove a device from service.
【0039】・ cs_strategy デバイスの
読み出し/書き込みエントリをブロックする(Buf_
tインターフェース)。Cs_strategy Block device read / write entries (Buf_strategy)
t interface).
【0040】・ cs_intr ハードウェアの割込
みを支援する。Cs_intr Supports hardware interrupts.
【0041】これらのルーチンはあらゆるデバイスのタ
イプで同じ機能を実行する。こうしたルーチンのほとん
どでは、デバイスのタイプ(ディスク、テープ、WOR
M、CD−ROMなど)によって示されるスイッチテー
ブルを利用し、デバイス固有のルーチンを呼び出して、
デバイス固有の要件を取り扱う。These routines perform the same function on any device type. For most of these routines, the type of device (disk, tape, WOR
M, CD-ROM, etc.) and calls device specific routines,
Handles device-specific requirements.
【0042】cs_open機能はデバイスが存在して
おり、そこでI/O作業を行う準備ができていることを
保証する。現行のシステムアーキテクチャとは違い、こ
の共通部分503は、オペレーティング・システム(O
S)の初期化中に既知デバイスの表を作成しない。代わ
りに、ドライバ共通部分503は自己構成を行う。ドラ
イバ共通部分503は、デバイスが最初にオープンにな
る間に、そのデバイスの状態を判断する。これにより、
ドライバ共通部分503では、OS202の初期化段階
の後でオンラインに存在するであろうデバイスを「確
認」することが可能になる。The cs_open function ensures that the device is present and ready for I / O work there. Unlike current system architectures, this intersection 503 is based on the operating system (O
Do not create a table of known devices during initialization in S). Instead, the driver common part 503 performs self-configuration. The driver common part 503 determines the state of the device while the device is first opened. This allows
The driver common part 503 allows to "verify" devices that will be online after the OS 202 initialization phase.
【0043】最初にオープンになる間、SCSIデバイ
スは、ターゲットデバイスに対するSCSI問合わせコ
マンドの発行によって、コマンドページと結びつけられ
る。デバイスが肯定の反応を示した場合、SCSI構成
モジュール516内で、応答データ(ベンダID、製品
ID、ファームウェア改訂レベルなどの情報を含む)が
既知デバイスの表と比較される。一致が見つかった場
合、デバイスは、その表エントリが指定するコマンドペ
ージと明確に結びつけられる。一致が見つからなかった
場合、デバイスは、応答データのフォーマットに基づい
て、一般的なCCS(共通コマンドセット)又はSCS
I IIコマンドページに不明確に結びつけられる。ド
ライバ共通部分503には、リソースの割り当て、分散
収集作業用のDMAリストの作成、SCSI作業の完了
のために、低レベルドライバ506が使用するルーチン
とコマンドページ機能が含まれる。During the initial open, the SCSI device is associated with a command page by issuing a SCSI inquiry command to the target device. If the device responds positively, the response data (including information such as vendor ID, product ID, firmware revision level, etc.) is compared in the SCSI configuration module 516 to a table of known devices. If a match is found, the device is specifically tied to the command page specified by the table entry. If no match is found, the device will send a generic CCS (Common Command Set) or SCS based on the format of the response data.
Unclearly tied to the II command page. The driver common part 503 includes routines and command page functions used by the low-level driver 506 to allocate resources, create a DMA list for distributed collection work, and complete SCSI work.
【0044】すべてのFCI低レベルドライバ506ル
ーチンは、ドライバ共通部分503から呼び出される。
ドライバ共通部分503は、ハードウェアをセットアッ
プして作業を開始するハードウェア・インターフェース
・モジュール(HIM)内の適切な低レベルドライバ
(LLD)ルーチンを呼び出すことで、SCSI作業を
開始する唯一のレイヤである。また、LLDルーチン
は、SCSI構成モジュール516から構成中に割り当
てられるドライバIDが示すスイッチ表によってもアク
セスされる。All FCI low level driver 506 routines are called from the driver common part 503.
Driver common part 503 is the only layer that initiates SCSI work by calling the appropriate low-level driver (LLD) routines in the Hardware Interface Module (HIM) to set up the hardware and begin work. is there. The LLD routine is also accessed by the SCSI configuration module 516 via the switch table indicated by the driver ID assigned during configuration.
【0045】(b) デバイス固有部分 共通部分502とデバイス固有ルーチン504のインタ
ーフェースは、共通部分とのインターフェースと同様
で、csxx_intt、csxx_open、csxx
_close、csxx_strategyのコマンドが
含まれる。「xx」の指定箇所はストレージ・デバイス
のタイプ(ディスクの「dk」やテープの「tp」)を
示す。これらのルーチンはあらゆるデバイス固有要件を
扱う。例えば、デバイスがディスクの場合、csdk_
openはディスクの特定のエリアからパーティション
・テーブルの情報を読み出し、csdk_strate
gyはパーティション・テーブルの情報を利用してブロ
ックが境界外にあるかどうかを判断することになる。
(パーティション・テーブルは、特定の物理ディスクご
とに、論理ディスクから物理ディスクのブロックマッピ
ングを定義する) (c) 高レベルドライバのエラー/フェールオーバの
処理 (i) エラーの処理 (a) 再試行 HLD502の最も一般的な復旧措置では、失敗したI
/Oの再試行を利用する。特定のコマンド・タイプの再
試行の回数は、コマンドページによって指定されてい
る。例えば、読み出しや書き込みコマンドは非常に重要
とみなされるため、これに関連するコマンドページでは
再試行回数を3に設定する場合もある。問合わせコマン
ドはそれほど重要ではなく、その日の第一の作業中に継
続的に再試行を行うとシステムがスローダウンする可能
性があるため、再試行回数を0に設定する場合もある。(B) Device-specific part The interface between the common part 502 and the device-specific routine 504 is the same as the interface with the common part, and is csxx_intt, csxx_open, csxx.
_close, csxx_strategy commands are included. The designated location of “xx” indicates the type of the storage device (“dk” for disk or “tp” for tape). These routines handle any device-specific requirements. For example, if the device is a disk, csdk_
open reads the information of the partition table from a specific area of the disk, and reads csdk_state.
gy will use the information in the partition table to determine whether the block is outside the boundary.
(The partition table defines the block mapping from logical disk to physical disk for each specific physical disk.) (C) High-level driver error / failover processing (i) Error processing (a) Retry HLD502 The most common rehabilitation measures include failed I
Utilize / O retry. The number of retries for a particular command type is specified by the command page. For example, read and write commands are considered very important, so the associated command page may set the retry count to three. The retry count may be set to zero because the query command is not critical and continual retries during the first task of the day can slow down the system.
【0046】要求が初めて発行されるとき、その再試行
回数は0に設定される。要求が失敗し、復旧スキムが繰
り返される度に、再試行の回数は増えていく。再試行の
回数が、コマンドページで指定された最大再試行回数を
上回ると、I/Oは失敗に終わり、要求者にメッセージ
が返信される。これがない場合は、要求の再発行が行わ
れる。このルールの唯一の例外は、ユニット・アテンシ
ョンに関するもので、通常はエラーではなくイベントの
通知である。ユニット・アテンションをコマンドとして
受け取り、その最大再試行回数が0又は1に設定されて
いた場合、高レベルドライバ502は、このI/Oに関
する最大再試行回数を2に設定する。こうして、ユニッ
ト・アテンション状態の影響でI/Oの失敗が早くなる
のを防止する。When a request is issued for the first time, its retry count is set to zero. Each time the request fails and the recovery scheme is repeated, the number of retries increases. If the number of retries exceeds the maximum number of retries specified on the command page, the I / O will fail and a message will be returned to the requestor. If not, a request is reissued. The only exception to this rule is for unit attention, which is usually an event notification rather than an error. If a unit attention is received as a command and its maximum number of retries is set to 0 or 1, high-level driver 502 sets the maximum number of retries for this I / O to two. In this way, it is possible to prevent the I / O failure from being accelerated due to the influence of the unit attention state.
【0047】遅延再試行も、一定の時間、待ち行列上で
再試行の置き換えが行われない点を除き、上述の再試行
スキムと同様に扱われる。Delayed retries are treated similarly to the retry scheme described above, except that retries are not replaced on the queue for a fixed amount of time.
【0048】(b) 失敗したScsi_op FCI低レベルドライバ506に対して発行されたSc
si_opは、いくつかの状況により失敗することがあ
る。表IIは、FCI低レベルドライバ506がHLD
502に戻すことのできる失敗のタイプを示している。(B) Sc issued from the failed Scsi_op FCI low-level driver 506
si_op may fail under some circumstances. Table II shows that the FCI low level driver 506 is HLD
502 indicates the type of failure that can be returned.
【0049】[0049]
【表2】 [Table 2]
【0050】(c) リソース不足 リソース不足のエラーは、いくつかの希望するリソース
が要求時に利用できなかった際に起こる。普通、こうし
たリソースはシステムメモリ及びドライバ構造メモリで
ある。(C) Resource Shortage Resource shortage errors occur when some desired resources are not available at the time of the request. Typically, such resources are system memory and driver structure memory.
【0051】システムメモリ不足の処理は、セマフォ・
ブロックによって行われる。メモリリソースをブロック
するスレッドは、すべての新しいI/Oの発行を妨げ
る。このスレッドは、I/Oが完了してメモリがフリー
になるまでブロックを続ける。The processing for the system memory shortage is performed by using a semaphore
Done by blocks. Threads that block memory resources prevent all new I / Os from being issued. This thread continues to block until the I / O has completed and the memory is free.
【0052】ドライバ構造リソースは、Scsi_op
及びI/Oベクトル(IOV)リストプールに関連して
いる。IOVリストは、ディスクが送受信するメモリの
開始値及び長さの値のリストである。このメモリプール
は、プールのサイズを指定する調整可能なパラメータを
利用して、その日の最初に初期化される。Scsi_o
p又はIOVプールが空の場合、新しいI/Oによっ
て、これらのプールが増加する。どちらかのプールを増
加させるために、一度に1ページ(4096バイト)のメモ
リが割り当てられる。新しいページのすべてのScsi
_op又はIOVプールがフリーになるまで、このペー
ジはフリーにならない。ION212が、Scsi_o
pのページの割り当てとフリー化を行っている場合やペ
ージの割り当てとフリー化を絶えず行っている場合は、
関連するパラメータの調整が望ましい。The driver structure resource is Scsi_op
And an I / O vector (IOV) list pool. The IOV list is a list of values of the start value and the length of the memory transmitted and received by the disk. This memory pool is initialized at the beginning of the day with adjustable parameters that specify the size of the pool. Scsi_o
If p or IOV pools are empty, new I / Os will increase these pools. One page (4096 bytes) of memory is allocated at a time to increase either pool. All Scsi on new page
This page will not be free until the _op or IOV pool is free. ION 212 is Scsi_o
If you are allocating and freeing pages from p, or if you are constantly allocating and freeing pages,
Adjustment of the relevant parameters is desirable.
【0053】リソース不足の処置はすべてイベントを通
じて記録される。All resource shortage actions are recorded through events.
【0054】(ii) その日の第一の処理 その日の最初に、HLD502は必要な構造とプールを
初期化し、アダプタ固有のドライバ及びハードウェアを
初期化するために呼び出しを行う。その日の第一の処理
は、cs_init()の呼び出しによって始まり、こ
れは(1)Scsi_Opプールの割り当て、(2)I
OVプールの割り当て、(3)ファイバ・チャンネル構
造及びハードウェアの初期化を行うFCIhw_int
()の呼び出し、(4)割込みサービスルーチンcs_
intr()と該当する割込みベクトルとの結びつけを
行う。(Ii) First Processing of the Day At the beginning of the day, the HLD 502 initializes the necessary structures and pools and makes calls to initialize adapter-specific drivers and hardware. The first processing of the day begins with a call to cs_init (), which consists of (1) Scsi_Op pool allocation, (2) I
FCIhw_int for allocating the OV pool and (3) initializing the Fiber Channel structure and hardware
(4) Interrupt service routine cs_
Intr () is linked with the corresponding interrupt vector.
【0055】(iii) フェールオーバ処理 ION212のダイポールの半分はどちらも共通のディ
スクデバイスセットに接続されている。ダイポール22
6のION212及び214は常にすべてのデバイスに
アクセスできなくてはいけない。HLD502から見
て、特別なフェールオーバの処理は存在しない。(Iii) Failover Processing Both dipole halves of the ION 212 are connected to a common disk device set. Dipole 22
6 IONs 212 and 214 must always be able to access all devices. From the perspective of the HLD 502, there is no special failover process.
【0056】(2)コマンドページ 本発明のION212は、SCSIコマンドの実際の組
立から、共通部分とデバイス固有部分を抽象化するコマ
ンドページ法を使用する。コマンドページは機能のポイ
ンタのリストで、各機能はSCSIコマンド(SCSI
_2_Test_UnitReadyなど)を意味する。上
述のように、デバイスには、第一のオープン時又はその
デバイスのアクセス時に特定のコマンドページが結びつ
けられる。ベンダー独自や非対応の特殊なSCSIデバ
イスは、そのデバイスの固有コマンドページで参照され
る機能によって管理する。通常のシステムは、出荷時
に、コマンドコントロールセット(CCS)、SCSI
I及びSCSI IIページ、ベンダー独自のページが
入っており、非対応SCSIデバイス又はベンダ独自の
SCSIコマンドの統合を可能にしている。(2) Command Page The ION 212 of the present invention uses a command page method that abstracts a common part and a device-specific part from the actual assembly of SCSI commands. The command page is a list of pointers to functions, and each function is a SCSI command (SCSI
_2_Test_UnitReady). As described above, a device is associated with a specific command page upon first opening or upon accessing the device. Vendor-specific or non-compliant special SCSI devices are managed by functions referenced on the device specific command page. Normal systems are shipped with Command Control Set (CCS), SCSI
Contains I and SCSI II pages, and vendor-specific pages, allowing integration of non-compliant SCSI devices or vendor-specific SCSI commands.
【0057】コマンドページ機能は、デバイス共通部分
503、デバイス固有部分504、FCI低レベルドラ
イバ506(Request Sense)から、仮想
デバイス(VDEV)インターフェースと呼ばれるイン
ターフェースを通じて実施される。このレベルでは、ソ
フトウェアは、デバイスがどのSCSI言語を使用して
いるかではなく、デバイスが意図した機能を実施してい
るかどうかのみを問題にする。The command page function is implemented from the device common part 503, the device specific part 504, and the FCI low level driver 506 (Request Sense) through an interface called a virtual device (VDEV) interface. At this level, the software only matters whether the device is performing its intended function, not what SCSI language the device uses.
【0058】各コマンドページ機能はSCSIコマンド
を組み立て、必要があればダイレクト・メモリ・アクセ
ス(DMA)データの転送にメモリを割り当てる。次に
この機能はドライバ共通部分503にコントロールを戻
す。ドライバ共通部分503は、SCSI作業を待ち行
列に加え(必要であればここでソートする)、FCI低
レベルドライバ506の開始ルーチンを呼び出して、こ
のコマンドを実施する。コマンドが実行された後、「コ
ール・オン・インタラプト」(COI)ルーチンがコマ
ンドページ機能に存在していたら、ドライバのドライバ
共通部分503が完了したコマンドのデータ/情報を検
査する前にCOIが呼び出される。返信データ/情報を
操作することで、COIは一致しないSCSIデータ/
情報を標準のSCSIデータ/情報に変換できる。例え
ば、デバイスの問合わせデータに、バイト8ではなくバ
イト12で始まるベンダIDが含まれる場合、問い合わ
せのコマンドページ機能には、返信の問合わせデータの
ベンダIDをバイト8に変えるCOIが含まれる。ドラ
イバ共通部分503は常にバイト8で始まるベンダID
情報を抽出するため、一致しないデバイスについて知る
必要はなくなる。Each command page function assembles SCSI commands and allocates memory for direct memory access (DMA) data transfers, if necessary. This function then returns control to the driver common part 503. Driver common part 503 queues the SCSI work (sort here if necessary) and invokes the start routine of FCI low level driver 506 to implement this command. After the command has been executed, if a "call on interrupt" (COI) routine is present in the command page function, the COI is called before the driver common part 503 of the driver checks the data / information of the completed command. It is. By manipulating the reply data / information, the COI does not match the SCSI data /
The information can be converted to standard SCSI data / information. For example, if the device query data includes a vendor ID that starts with byte 12 instead of byte 8, the query command page function includes a COI that changes the reply query data vendor ID to byte 8. Driver common part 503 is always the vendor ID starting with byte 8
Extracting information eliminates the need to know about unmatched devices.
【0059】(3) IBODとSCSI構成モジュー
ル RAIDコントローラの重要な機能はデータを損失から
守ることである。この機能を実行するために、RAID
ソフトウェアはディスクデバイスがどこにあり、そのケ
ーブルがどのように接続されているかを、物理的に知ら
なくてはいけない。したがって、RAIDコントローラ
のテクニックを実施する上での重要な要件は、ストレー
ジ・デバイスの構成をコントロールする能力である。(3) IBOD and SCSI Configuration Module An important function of a RAID controller is to protect data from loss. To perform this function, RAID
Software must physically know where the disk devices are and how their cables are connected. Therefore, an important requirement in implementing RAID controller techniques is the ability to control the configuration of the storage device.
【0060】JBOD及びSCSI構成モジュール51
6のJBOD部分にはION212のスタティックIB
OD構成の定義のタスクがある。JBOD及びSCSI
構成モジュール516が記述する構成情報を表IIIに
示す。JBOD and SCSI configuration module 51
6 JBOD part is ION212 static IB
There is a task of defining the OD configuration. JBOD and SCSI
The configuration information described by the configuration module 516 is shown in Table III.
【0061】[0061]
【表3】 [Table 3]
【0062】アダプタ、JBODエンクロージャ22
2、ストレージディスク224の物理的な位置情報に加
え、FCI低レベルドライバ506及びドライバデバイ
ス固有部分504の入口点といったその他の構成情報や
コマンドページの定義も記述しなくてはいけない。この
情報の提供にはspace.cファイルが使用され、I
ON212はION物理ディスクドライバ500のコン
パイル時に構成情報を組み立てる。サポートするION
212の構成が変化した場合は、新しいバージョンのI
ON物理ディスクドライバ500をコンパイルしなくて
はいけない。Adapter, JBOD enclosure 22
2. In addition to the physical location information of the storage disk 224, other configuration information such as the entry point of the FCI low-level driver 506 and the driver device specific part 504 and the definition of the command page must be described. To provide this information, use space. c file is used and I
The ON 212 assembles the configuration information when compiling the ION physical disk driver 500. Supported ION
If the configuration of 212 changes, a new version of I
The ON physical disk driver 500 must be compiled.
【0063】(4) ファイバ・チャンネル・インター
フェース(FCI)低レベルドライバ FCI低レベルドライバ506は高レベルドライバ50
2のためにSCSIインターフェースを管理する。ドラ
イバ共通部分503とFCI低レベルドライバ506の
インターフェースには、以下のルーチンが含まれる。な
お「xx」の指定箇所には、FCI低レベルドライバ5
06がコントロールするハードウェア固有の識別子が入
る(FCIhw_initなど)。(4) Fiber Channel Interface (FCI) Low Level Driver The FCI low level driver 506 is a high level driver 50
2 for managing the SCSI interface. The interface between the driver common part 503 and the FCI low-level driver 506 includes the following routines. In addition, the FCI low-level driver 5
06 contains an identifier unique to the hardware controlled (eg, FCIhw_init).
【0064】・ xxhw_init ハードウェアを
初期化する。Xxhw_init Initializes the hardware.
【0065】・ xxhw_open ホストアダプタ
の現在の状況を判断する。Xxhw_open Determines the current status of the host adapter.
【0066】・ xxhw_config ホストアダ
プタの構成情報をセットアップする(SCSI IDな
ど)。Xxhw_config Set up host adapter configuration information (SCSI ID, etc.).
【0067】・ xxhw_start 可能ならば、
SCSI作業を開始する。Xxhw_start If possible,
Start SCSI work.
【0068】・ xxhw_intr すべてのSCS
I割込みを処理する。Xxhw_intr All SCSs
Handle the I interrupt.
【0069】低レベルドライバは、デバイスの仕様を認
識したり問題にしたりせず、単純に上のレベルからのS
CSIコマンドの経路となっている点では、純粋なSC
SIドライバである。このレイヤには割込みサービスル
ーチン、ハードウェアの初期化、マッピング、アドレス
・トランスレート、エラー復旧ルーチンがある。加え
て、同じシステムに複数タイプの低レベルドライバが共
存できる。こうした、ドライバのハードウェア管理レイ
ヤとその他の分割により、同じ高レベルドライバを異な
るマシンで実行することが可能になる。The low-level driver does not recognize or make a problem with the specification of the device, and simply executes S from the upper level.
In that it is a path for CSI commands, pure SC
It is an SI driver. This layer includes interrupt service routines, hardware initialization, mapping, address translation, and error recovery routines. In addition, multiple types of low-level drivers can coexist in the same system. Such a driver hardware management layer and other divisions allow the same high-level driver to run on different machines.
【0070】FCIモジュールの基本機能は(1)SC
SI OpをFCI作業オブジェクト構造(I/Oブロ
ック(IOB))にトランスレートするためのSCSI
高レベルドライバ(SHLD)とのインターフェース、
(2)異なるHIM508を通じた新しいファイバ・チ
ャンネル・アダプタのサポートを容易にする共通インタ
ーフェースの提供、(3)いずれかのFC−4プロトコ
ルレイヤ(図のファイバ・チャンネル・プロトコル(F
CP))が使用するFC−3共通サービスの提供、
(4)HIM508又はハードウェアが応答しない場合に
HIMに送る非同期コマンド(FCPコマンド、FC−
3コマンド、LIPコマンド)を保護するためのタイマ
ーサービスの提供、(5)(a)I/O要求ブロック
(IOB)、(b)ベクトル表、(c)HIM508リ
ソース(ホストアダプタメモリ、DMAチャンネル、I
/Oポート、スクラッチメモリなど)を含むファイバ・
チャンネル・ドライバ全体(FCI及びHIM)のリソ
ース管理、(6)ファイバ・チャンネルの(ファイバ・
チャンネル・ファブリックに対する)アービトレイト・
ループ使用の最適化 FCI低レベルドライバ506の重要なデータ構造のリ
ストを下の表IVに示す。The basic function of the FCI module is (1) SC
SCSI to translate SI Op into FCI work object structure (I / O block (IOB))
Interface with high level driver (SHLD)
(2) providing a common interface to facilitate support of new Fiber Channel adapters through different HIMs 508; (3) any FC-4 protocol layer (Fibre Channel Protocol (F
Provision of FC-3 common services used by CP)),
(4) Asynchronous command (FCP command, FC-
3 commands, LIP commands), (5) (a) I / O request block (IOB), (b) vector table, (c) HIM508 resource (host adapter memory, DMA channel, I
/ O port, scratch memory, etc.)
(6) Resource management of the entire channel driver (FCI and HIM)
Arbitrate (for channel fabric)
Optimization of Loop Use A list of important data structures of the FCI low level driver 506 is shown in Table IV below.
【0071】[0071]
【表4】 [Table 4]
【0072】(a) エラー処理 FCI低レベルドライバ506が扱うエラーは、ファイ
バチャンネルやFCI自身に固有のエラーとなる傾向が
ある。(A) Error Processing Errors handled by the FCI low-level driver 506 tend to be errors specific to the Fiber Channel or FCI itself.
【0073】(i) 複数段階のエラー処理 FCI低レベルドライバ506は特定のエラーを複数ステ
ージ処理で扱う。これにより、エラーのタイプによって
エラー処理テクニックを最適化することができる。例え
ば、破壊的でない手順を使用して効果がない場合は、さ
らに抜本的なエラー処理テクニックを行ったりする。(I) Multi-Step Error Processing The FCI low-level driver 506 handles a specific error in a multi-stage processing. This allows optimizing error handling techniques depending on the type of error. For example, if a non-destructive procedure is not effective, more radical error handling techniques may be used.
【0074】(ii) 失敗したIOB すべてのI/O要求は、I/O要求ブロックを通じて、
HIM508へ送られる。以下は、HIM508が返信
する可能性のあるエラーである。(Ii) Failed IOBs All I / O requests are passed through the I / O request block
Sent to HIM 508. The following are the errors that HIM 508 may return.
【0075】[0075]
【表5】 [Table 5]
【0076】(iii) リソース不足 FCI低レベルドライバ506はIOBのリソースプー
ルとベクトル表を管理する。こうしたプールのサイズは
ION212の構成に同調するため、こうしたリソース
が足りなくなる可能性はないはずであるため、簡単な復
旧手順が実施される。(Iii) Resource Shortage The FCI low-level driver 506 manages the IOB resource pool and vector table. Since the size of such a pool is tuned to the configuration of the ION 212, there should not be a possibility of running out of such resources, so a simple recovery procedure is performed.
【0077】IOBやベクトル表の要求が行われ、この
要求を満たすのに十分なリソースがない場合は、I/O
を待ち行列に戻し、I/Oを再試行するためのタイマー
を設定する。リソース不足の発生は記録される。If an IOB or vector table request is made and there are not enough resources to satisfy this request, the I / O
Back to the queue and set a timer to retry the I / O. The occurrence of resource shortage is recorded.
【0078】(b)その日の第一の処理 その日の最初に、高レベルドライは502は、サポート
するそれぞれの低レベルドライバ(FCI低レベルドラ
イバ506を含む)に対して呼び出しを行う。FCIの
低レベルドライバ506のその日の第一の処理は、FC
Ihw_int()ルーチンの呼び出しで始まり、これ
は以下の作業を行う。まず、指定されたPCIバスとデ
バイスのために、HIM_FindControlle
r()関数が呼び出される。これはFindContr
oller()のバージョンを呼び出す。JBOD及び
SCSI構成モジュール516は、探索のためにPCI
バスとデバイスを指定する。次に、アダプタ(ADAP
TECから¥利用できるものなど)が見つかった場合
は、HCBを割り当て、アダプタ用に初期化する。そし
て、スクラッチメモリ、メモリマップI/O、DMAチ
ャンネルといったアダプタ固有リソースを得るために、
HIM_GetConfiguratION()を呼び
出す。次に、リソースを割り当てて初期化し、ADAP
TEC HIMとハードウェアを初期化するために、H
IM_Initialize()を呼び出す。最後に、
IOBとベクトル表を割り当てて初期化する。(B) First Processing of the Day At the beginning of the day, the high-level driver 502 makes a call to each of the low-level drivers it supports (including the FCI low-level driver 506). The first process of the day for the FCI low level driver 506 is the FC
Beginning with a call to the Ihw_int () routine, which does the following: First, for the specified PCI bus and device, HIM_FindControlle
The r () function is called. This is FindContr
Call the version of urller (). The JBOD and SCSI configuration module 516 uses the PCI
Specify bus and device. Next, the adapter (ADAP
If found (such as available from the TEC), allocate the HCB and initialize it for the adapter. Then, in order to obtain adapter-specific resources such as a scratch memory, a memory map I / O, and a DMA channel,
Call HIM_GetConfigurationION (). Next, resources are allocated and initialized, and ADAP
H to initialize TEC HIM and hardware
Call IM_Initialize (). Finally,
Initialize by allocating IOB and vector table.
【0079】(c) フェールオーバ処理 ION212のダイポールの半分はどちらも共通のディ
スクデバイスセットに接続されている。両方のION2
12は常にすべてのデバイスにアクセスできなくてはい
けない。FCI低レベルドライバ506から見て、特別
なフェールオーバの処理は存在しない。(C) Failover Process Both dipole halves of the ION 212 are connected to a common disk device set. Both ION2
12 must always be able to access all devices. From the perspective of the FCI low-level driver 506, there is no special failover process.
【0080】(5) ハードウェア・インターフェース
・モジュール(HIM) ハードウェア・インターフェース・モジュール(HI
M)508はADAPTECのSlimHIM509と
インターフェースするように設計されている。HIM5
08モジュールは、FCI低レベルドライバ506から
の要求を、SlimHIM509が理解してハードウェ
アに発行できる要求にトランスレートすることに主な責
任を有している。これには、I/Oブロック(IOB)
要求の取り込みと、SlimHIM509が理解可能
な、対応する転送コントロールブロック(TCB)要求
へのトランスレートが含まれる。(5) Hardware Interface Module (HIM) Hardware Interface Module (HIM)
M) 508 is designed to interface with ADAPTEC's SlimHIM 509. HIM5
The 08 module is primarily responsible for translating requests from the FCI low level driver 506 into requests that the SlimHIM 509 can understand and issue to hardware. This includes I / O blocks (IOB)
Includes request capture and translation to the corresponding Transfer Control Block (TCB) request that the SlimHIM 509 can understand.
【0081】HIM508の基本機能に含まれるのは
(1)検索、構成、初期化、アダプタへのI/Oの送信
を行うハードウェア固有関数に対する、低レベル・アプ
リケーション・プログラム・インターフェース(AP
I)の定義、(2)I/OブロックをSlimHIM/
ハードウェアが理解できるTCB要求(FCプリミティ
ブTCB、FC拡張リンクサービス(ELS)TCB、
SCSI−FCP作業TCBなど)にトランスレートす
るためのFCI低レベルドライバ506とのインターフ
ェース、(3)SlimHIMに対して発行されたコマ
ンド(TCB)の配信と完了の追跡、(4)SlimH
IM509からの割り込みやイベント情報の解釈やFC
I低レベルドライバ506に関する適切な割り込み処理
やエラー復旧の実行である。TCBのデータ構造を下の
表VIに示す。The basic functions of the HIM 508 include (1) a low-level application program interface (AP) for hardware-specific functions for searching, configuring, initializing, and sending I / O to the adapter.
Definition of I), (2) I / O block is SlimHIM /
Hardware understandable TCB requests (FC primitive TCB, FC extended link service (ELS) TCB,
(3) Interface with FCI low-level driver 506 for translation to SCSI-FCP work TCB, etc., (3) Track delivery and completion of commands (TCB) issued to SlimHIM, (4) SlimH
Interpretation of interrupt and event information from IM509 and FC
This is to execute appropriate interrupt processing and error recovery for the low-level driver 506. The data structure of the TCB is shown in Table VI below.
【0082】[0082]
【表6】 [Table 6]
【0083】(a) その日の第一の処理 HIM508は、その日の第一の処理中に使用する3つ
の入口点を定義する。第一の入口点はHIM_Find
Adapterで、これはFCIhw_int()によ
って呼び出され、PCI BIOSルーチンを使用し
て、与えられたPCIバス及びデバイス上にアダプタが
あるかどうかを判断する。アダプタの存在の判断には、
アダプタのPCIベンダ及び製品IDを使用する。(A) First Process of the Day HIM 508 defines three entry points to use during the first process of the day. The first entry point is HIM_Find
In Adapter, this is called by FCIhw_int () and uses the PCI BIOS routine to determine if there is an adapter on a given PCI bus and device. To determine if an adapter is present,
Use the adapter's PCI vendor and product ID.
【0084】二番目の入口点はHIM_GetConf
iguratIONで、これはアダプタが存在する場合
にFCIhw_init()によって呼び出され、提供
されたHCBにリソース要件を加える。ADAPTEC
の場合、このリソースにはIRQ、スクラッチ、TCB
メモリが含まれる。この情報はSlimHIM509へ
の呼び出しを行うことで見つかる。The second entry point is HIM_GetConf
iguratION, which is called by FCIhw_init () if an adapter is present, adding resource requirements to the provided HCB. ADAPTEC
, This resource contains IRQ, scratch, TCB
Includes memory. This information can be found by making a call to SlimHIM509.
【0085】三番目の入口点はHIM_Initial
izeで、これはリソースの割り当てと初期化が終わっ
た後でFCihw_int()によって呼び出され、ス
クラッチメモリ、TCB、ハードウェアの初期化を行う
ためにSlimHIMへの呼び出しを行うTCBメモリ
プールを初期化する。The third entry point is HIM_Initial
In ize, this is called by FCihw_int () after allocating and initializing resources and initializes the TCB memory pool that makes calls to SlimHIM to perform scratch memory, TCB, and hardware initialization. .
【0086】(b) フェールオーバ処理 ION212のダイポールの半分はどちらも共通のディ
スクデバイスセットに接続されている。ION212、
214の両方は常にすべてのデバイスにアクセスできな
くてはいけない。HIM509から見て、特別なフェー
ルオーバの処理は存在しない。(B) Failover Processing Both dipole halves of the ION 212 are connected to a common disk device set. ION212,
Both 214 must always have access to all devices. From the viewpoint of the HIM 509, there is no special failover process.
【0087】(6) AIC−1160 SlimHI
M SlimHIM509モジュールの最終的な目的は、ア
ダプタ(図ではADAPTEC AIC−1160)の
ハードウェア抽象を提供することである。SlimHI
M509の主な役割には、AIC−1160アダプタへ
のファイバ・チャンネル要求の転送、割り込みのサービ
ス、SlimHIM509インターフェースを通じての
HIMモジュールへのステータス報告の返信がある。(6) AIC-1160 SlimHI
The ultimate purpose of the M SlimHIM 509 module is to provide a hardware abstraction of the adapter (ADAPTEC AIC-1160 in the figure). SlimHI
The primary role of the M509 is to forward Fiber Channel requests to the AIC-1160 adapter, service interrupts, and return status reports to the HIM module via the SlimHIM509 interface.
【0088】さらに、SlimHIM509は、AIC
−1160ハードウェアの管理と初期化、ファームウェ
アのロード、ランタイム作業の実行を行い、AIC−1
160のエラーの際にはAIC−1160ハードウェア
をコントロールする。Further, SlimHIM 509 has an AIC
AIC-1160 manages and initializes hardware, loads firmware, and performs runtime work.
In the event of a 160 error, the AIC-1160 hardware is controlled.
【0089】2. 外部インターフェースとプロトコル ION物理ディスクドライバ・サブシステム500のす
べての要求は、共通高レベルドライバ502を通じて行
われる。2. External Interfaces and Protocols All requests for the ION physical disk driver subsystem 500 are made through a common high level driver 502.
【0090】a) 初期化(cs_init) サブシステムへの単一呼び出しにより、デバイスがI/
Oの準備をするのに必要なすべての初期化が行われる。
サブシステムの初期化中には、すべてのドライバ構造と
デバイス又はアダプタ・ハードウェアの割り当てと初期
化が行われる。A) Initialization (cs_init) A single call to the subsystem causes the device to
All initialization necessary to prepare O is performed.
During initialization of the subsystem, all driver structures and device or adapter hardware allocation and initialization are performed.
【0091】b) オープン/クローズ(cs_ope
n/cs_close) オープン/クローズ・インターフェース510は、デバ
イスにアクセスするのに必要な構造の初期化と分類を行
う。インターフェース510は一般的なオープン/クロ
ーズ・ルーチンと異なり、すべての「オープン」と「ク
ローズ」が明確に階層化されている。したがって、I/
O物理インターフェースドライバ500が受領したすべ
ての「オープン」には、受領した関連する「クローズ」
が伴わなくてはならず、デバイス関連構造はすべての
「オープン」が「クローズ」するまではフリーにならな
い。オープン/クローズ・インターフェース510は、
要求の完了を示す「オープン」又は「クローズ」の返信
については同期式である。B) Open / Close (cs_ope)
n / cs_close) The open / close interface 510 performs initialization and classification of a structure required to access the device. The interface 510 differs from a general open / close routine in that all “open” and “close” are clearly layered. Therefore, I /
O All “opens” received by the physical interface driver 500 include the associated “closed” received.
Must be accompanied, and the device-related structure is not free until all "opens" are "closed". The open / close interface 510
The response of "open" or "close" indicating the completion of the request is synchronous.
【0092】c) Buf_t(cs_strateg
y) Buf_tインターフェース512はデバイスに対する
論理ブロックの読み出し及び書き込み要求の発行を可能
にする。要求者は、そのI/Oを記述したBuf_t構
造を伝える。デバイスID、論理ブロックアドレス、デ
ータアドレス、I/Oタイプ(読み出し/書き込み)、
コールバック・ルーチンといった属性はBuf_tによ
って記述される。要求が完了すると、要求者がコールバ
ックで指定した関数が呼び出される。Buf_tンター
フェース512は非同期インターフェースである。要求
者への関数の返信は要求の完了を示すものではない。関
数が戻された時には、I/Oがデバイスで実行中の可能
性もあり、そうではない可能性もある。その要求は待ち
行列上で実行されるのを待っている可能性もある。その
要求は、コールバック関数が呼び出されるまでは完了し
ない。C) Buf_t (cs_strateg)
y) The Buf_t interface 512 enables issuing logical block read and write requests to the device. The requester transmits a Buf_t structure describing the I / O. Device ID, logical block address, data address, I / O type (read / write),
Attributes such as callback routines are described by Buf_t. When the request is completed, the function specified by the requester in the callback is called. The Buf_t interface 512 is an asynchronous interface. Returning the function to the requestor does not indicate that the request has been completed. When the function returns, the I / O may or may not be running on the device. The request may be waiting to be executed on the queue. The request is not completed until the callback function is called.
【0093】d) SCSILib SCSILib514は、通常の読み出し及び書き込み
を除くSCSIコマンド記述子ブロック(CDB)のデ
バイスへの送信を可能にするインターフェースを提供す
る。このインターフェースを通じて、ディスクのスピン
やスピンダウンのためにユニットの開始及び停止といっ
た要求が利用されたり、エンクロージャ・デバイスのモ
ニタや管理のために診断の送信又は受領といった要求が
利用される。すべてのSCSILibルーチンは同期式
である。呼び出した関数の返信が要求の完了を意味す
る。D) SCSILib SCSILib 514 provides an interface that allows the transmission of SCSI Command Descriptor Blocks (CDBs) to the device except for normal reads and writes. Through this interface, requests such as starting and stopping units are used to spin and spin down disks, and requests to send or receive diagnostics to monitor and manage enclosure devices. All SCSILib routines are synchronous. The return of the called function indicates the completion of the request.
【0094】e) 割り込み(cs_intr) ION物理ディスクドライバ500は、すべてのSCS
I及びファイバ・チャンネル・アダプタの割り込みの中
心的なディスパッチャである。実施形態では、フロント
エンド/バックエンド割り込みスキムが利用されてい
る。この場合、割り込みがサービスされると、フロント
エンド割り込みサービスルーチンが呼び出される。フロ
ントエンドは割り込みスタックから実行され、割り込み
のソースのクリア、アダプタによる更なる割り込み生成
の無効化、バックエンド割り込みサービスルーチンのス
ケジュールに責任を有する。バックエンドは、(アダプ
タの割り込み無効化とバックエンド・タスク開始の間に
発生した他の割り込みと共に)実際に割り込みを扱う優
先度の高いタスクとして実行される。E) Interruption (cs_intr) The ION physical disk driver 500 checks all SCS
It is the central dispatcher for I and Fiber Channel adapter interrupts. In the embodiment, a front-end / back-end interrupt scheme is used. In this case, when the interrupt is serviced, the front-end interrupt service routine is called. The front end is executed from the interrupt stack and is responsible for clearing the source of the interrupt, disabling further interrupt generation by the adapter, and scheduling the back-end interrupt service routine. The backend is executed as a high priority task that actually handles the interrupt (along with any other interrupts that occur between the interrupt disablement of the adapter and the start of the backend task).
【0095】3. IONの機能 ION212は主に5つの機能を果たす。この機能は以
下の通りである。3. Functions of ION The ION 212 mainly performs five functions. This function is as follows.
【0096】ストレージのネーミングと射影:ストレー
ジディスク224に保存されるストレージ・リソース・
オブジェクトのイメージを計算ノード200に射影し
て、一貫したストレージのネーミングを行うために、計
算ノード200と協力する。Storage naming and projection: storage resources and resources stored in the storage disk 224
Work with the compute node 200 to project the image of the object to the compute node 200 and provide consistent storage naming.
【0097】ディスク管理:ION212と運用上で対
になっているストレージディスクドライブ224にデー
タ分配及びデータ冗長テクニックを実施する。Disk management: Performs data distribution and data redundancy techniques on the storage disk drives 224 that are operationally paired with the ION 212.
【0098】ストレージ管理:ストレージのセットアッ
プ、計算ノード200からのI/O要求の処理を含むデ
ータ移動、性能の計測、イベント分配を取り扱う。Storage management: Handles storage setup, data movement including processing of I / O requests from the computing nodes 200, performance measurement, and event distribution.
【0099】キャッシュ管理:アプリケーション・ヒン
ト・プレフェッチのようなキャッシュ充足作業を含むキ
ャッシュデータの読み出しと書き込み。Cache management: read and write of cache data including cache sufficiency operations such as application hint prefetch.
【0100】インターコネクト管理:性能の最適化のた
めの計算ノード200のデータフローの制御及び要求の
経路選択の制御と、それに伴うダイポール226の2つ
のION212の間のストレージ分配の制御。Interconnect management: control of the data flow of the compute node 200 for performance optimization and control of the routing of requests, and consequently control of the storage distribution between the two IONs 212 of the dipole 226.
【0101】a)ストレージのネーミングと射影 ION212はストレージディスク224に保存される
ストレージ・リソース・オブジェクトを計算ノード20
0に射影する。この機能の重要な部分は、ION212
が管理する各ストレージリソース(仮想ファブリックデ
ィスクを含む)に、大域的にユニークな名前、ファブリ
ックでユニークなID、ボリュームセット識別子(VS
I)のいずれかの作成と割り当てである。A) Storage Naming and Projection The ION 212 stores the storage resource object stored in the storage disk 224 in the computing node 20.
Project to 0. An important part of this function is the ION212
Globally unique names, fabric unique IDs, and volume set identifiers (VS
The creation and assignment of any of I).
【0102】図6は、VSI602と関連データの構造
と内容を示す図である。VSI602がユニークで競合
がないことが重要であるため、各ION212は、その
ION212がローカルで管理するストレージリソース
のために、大域的にユニークな名前を作成し割り当てる
ことに責任を有する。また、ストレージ・リソース・オ
ブジェクトを保存しているストレージリソースを管理す
るION212のみが、そのストレージリソースにVS
I602を割り当てることができる。VSI602の作成
と割り当てができるのは常駐するストレージリソースを
管理するIONのみだが、他のION212もその後の
ストレージリソースの保存と検索の管理をすることがあ
る。これは、IONが割り当てたVSI602が、他の
IONによって管理されるストレージリソースに移動し
たとしても、特定のデータオブジェクトのVSI602
を変更する必要がないためである。FIG. 6 is a diagram showing the structure and contents of the VSI 602 and related data. Because it is important that the VSI 602 be unique and contention free, each ION 212 is responsible for creating and assigning a globally unique name for storage resources that the ION 212 manages locally. Further, only the ION 212 that manages the storage resource storing the storage resource object has the VS 212
I602 can be assigned. Only the ION that manages the resident storage resource can create and assign the VSI 602, but other IONs 212 may also manage storage and retrieval of the storage resource thereafter. This is because even if the VSI 602 assigned by the ION is moved to a storage resource managed by another ION, the VSI 602
This is because there is no need to change.
【0103】VSI602は、ION識別子604とシ
ーケンス番号506の2つの部分を含む64ビットの数字
として導入される。ION識別子は各ION212に割
り当てられた、大域的にユニークなID番号である。大
域的にユニークなION識別子604を入手するテクニ
ックの1つでは、実時間時計チップにストアされること
の多い電子的に読み出し可能なマザーボードのシリアル
番号を使う。唯一のマザーボードに割り当てられるた
め、シリアル番号はユニークである。ION識別子60
4は大域的にユニークな番号であるため、各ION21
2は、ローカルでのみユニークなシーケンス番号606
を割り当てることで、大域的にユニークなVSI602
を作成できる。The VSI 602 is introduced as a 64-bit number including two parts, an ION identifier 604 and a sequence number 506. The ION identifier is a globally unique ID number assigned to each ION 212. One technique for obtaining a globally unique ION identifier 604 uses an electronically readable motherboard serial number that is often stored on a real-time clock chip. The serial number is unique because it is assigned to only one motherboard. ION identifier 60
4 is a globally unique number, so each ION 21
2 is a sequence number 606 that is unique only locally
By assigning a globally unique VSI 602
Can be created.
【0104】VSI602をION212上のストレー
ジリソースに結びつけた後、ION212はストレージ
リソース104へのアクセスを可能にするために、同報
メッセージを通じて、ファブリックのすべてのノードに
VSI602をエキスポートする。このプロセスは、本
文書のION名のエキスポートのセクションで詳しく論
じる。After binding the VSI 602 to storage resources on the ION 212, the ION 212 exports the VSI 602 to all nodes of the fabric via broadcast messages to enable access to the storage resource 104. This process is discussed in detail in the ION Name Export section of this document.
【0105】エキスポートしたVSI602を使用し
て、計算ノード200のソフトウェアは、ローカル接続
された他のすべてのストレージデバイスからは区別でき
ないという点で意味的に透過なストレージリソースのた
めに、ローカル入口点を作成する。例えば、計算ノード
のOS202がUNIXであれば、周辺機器108やデ
ィスク210といったローカル接続デバイスと同様に、
ブロックデバイスと未使用デバイスの入口がデバイスデ
ィレクトリに作成される。その他のOS202でも、同
様の意味的な同値性が守られる。異なるOS202を実
行する計算ノード200間でも、この複合コンピューテ
ィング環境での最善のサポートを行うために、ルート名
の一貫性が維持される。計算ノード200のローカル入
口点は、エキスポートしたストレージリソース104の
現在の可用性を追跡するために、動的に更新される。計
算ノード200で稼働するOS依存のアルゴリズムはV
SI602を使用して、インポートしたストレージリソ
ースのデバイス入口点名を作成する。この方法により、
共通のOSを共有するノード間での名前の一貫性が保証
される。これによりシステムは、各計算ノード200上
の大域的な名前の付いたストレージリソースのローカル
入口点を(静的ではなく)動的に作成することで、複合
コンピューティング環境をサポートするルート名の一貫
性を維持できる。Using the exported VSI 602, the software on the compute node 200 can use the local entry point for storage resources that are semantically transparent in that they are indistinguishable from all other locally connected storage devices. Create For example, if the OS 202 of the computing node is UNIX, like the locally connected devices such as the peripheral device 108 and the disk 210,
Entries for block devices and unused devices are created in the device directory. Similar semantic equivalence is maintained in other OS 202 as well. Root names are also kept consistent between compute nodes 200 running different OSs 202 to provide the best support in this complex computing environment. The local entry point of the compute node 200 is dynamically updated to track the current availability of the exported storage resource 104. The OS-dependent algorithm running on the computing node 200 is V
Using the SI 602, a device entry point name of the imported storage resource is created. In this way,
Name consistency is guaranteed between nodes sharing a common OS. This allows the system to dynamically (rather than statically) create local (not static) entry points for globally named storage resources on each compute node 200 to provide consistent root names to support complex computing environments. Can maintain sex.
【0106】上述のように、ストレージリソース104
のVSI602作成の詳細は、ストレージリソース10
4をエキスポートしているION212が直接コントロ
ールしている。計算ノード200内でのOS104の相
違の可能性を考慮して、各VSI602には1つ又は複
数の記述ヘッダが結びついており、ION212上のV
SI602と共にストアされている。各VSI602記
述子608にはオペレーティングシステム(OS)従属
データセクション610が含まれており、これは特定の
VSI602のために計算ノード200上でデバイス入
口点の作成を一貫して(名前と運用上の意味を計算ノー
ド200全体で同じにして)行う上で必要になる、十分
なOS202従属データをストアするためである。この
OS従属データ610に含まれるのは、例えば、データ
記述ローカルアクセス権612や所有者情報614であ
る。VSI602がION212によって確立され、計
算ノード200によってインポートされた後で、VSI
602に結びつくストレージリソース104の入口点が
作成される前に、ION212は該当するOS固有デー
タ610を計算ノード200に送る。VSI602の複
数の記述ヘッダは、異なるOS(各OSは独自の記述ヘ
ッダを持つ)を使用する複合計算ノード200の同時サ
ポートと、異なる計算ノード200グループ内の分離ア
クセス権のサポートを可能にする。同じ記述ヘッダを共
有する計算ノード200は、デバイス入口点の作成を共
通する一貫した方法で行う。そのため、共通のアクセス
権を共有するすべての計算ノード200において、名前
と運用上の意味の一貫性が守られる。As described above, the storage resource 104
For details of VSI 602 creation, see Storage Resource 10
4 is directly controlled by the ION 212 that is exporting 4. Each VSI 602 is associated with one or more description headers, taking into account the possibility of OS 104 differences within the
Stored together with SI 602. Each VSI 602 descriptor 608 includes an operating system (OS) dependent data section 610 that consistently creates device entry points (name and operational) on the compute node 200 for a particular VSI 602. This is to store sufficient OS 202 dependent data, which is necessary for performing the meaning (the same is applied to the entire computation node 200). Included in the OS dependent data 610 are, for example, a data description local access right 612 and owner information 614. After VSI 602 is established by ION 212 and imported by compute node 200, VSI
Before the entry point of the storage resource 104 linked to 602 is created, the ION 212 sends the corresponding OS-specific data 610 to the computing node 200. The multiple description headers of the VSI 602 allow for simultaneous support of multiple compute nodes 200 using different OSs (each OS has its own description header) and support for separate access rights within different groups of compute nodes 200. Compute nodes 200 sharing the same description header create device entry points in a common and consistent manner. Therefore, in all the computing nodes 200 sharing the common access right, consistency between the name and the operational meaning is maintained.
【0107】VSI記述子608にはエイリアス・フィ
ールド616が含まれ、これは人間が読めるVSI60
2名を計算ノードに表示するのに使用される。例えば、
VSI1984のエイリアスが「soma」の場合、計
算ノード200は1984と「soma」の両方のディ
レクトリ・エントリを持つことになる。VSI記述子6
08はVSI602と一緒にION上でストアされるた
め、同じエイリアス及びローカルアクセス権が、VSI
602をインポートする各計算ノード上に現れる。The VSI descriptor 608 includes an alias field 616, which is a human-readable VSI 60
Used to display two people on a compute node. For example,
If the alias for VSI 1984 is "soma", then compute node 200 will have both 1984 and "soma" directory entries. VSI descriptor 6
08 is stored on the ION together with the VSI 602, so that the same alias and local access rights
602 appears on each import node that imports.
【0108】上述のように、本発明では分散割り当てス
キムに適したネーミング方法を使用する。この方法で
は、大域的なユニーク性を保証するアルゴリズムに従っ
て、名前をローカルで生成する。これのバリエーション
として、中央ネームサーバが各システムに存在する、ロ
ーカルな中央化の方法があるが、純粋な分散式の方法に
比べて可用性と堅牢性の要件が大きくなる。上述の方法
により、本発明では、大域的なユニーク性を保証するロ
ーカル実行のアルゴリズムを作成できる。As described above, the present invention uses a naming method suitable for the distributed allocation scheme. In this method, names are generated locally according to an algorithm that guarantees global uniqueness. A variation on this is a local centralization method, where a central name server exists on each system, but with greater availability and robustness requirements than a purely distributed method. According to the method described above, the present invention can create a locally executed algorithm that guarantees global uniqueness.
【0109】大域的に一貫したストレージシステムの作
成には、単に計算ノード200での名前の一貫性を維持
する以上のサポートが必要である。名前と密接な関係に
あるのはセキュリティの問題であり、本発明では二つの
形をとる。一つはION212と計算ノード200間の
インターフェースのセキュリティであり、二つ目は計算
ノード200内からのストレージのセキュリティであ
る。The creation of a globally consistent storage system requires more support than simply maintaining the consistency of names on compute node 200. Closely related to names is a security issue, and the present invention takes two forms. One is the security of the interface between the ION 212 and the computing node 200, and the second is the security of the storage from within the computing node 200.
【0110】b)ストレージの認証と許可 VSI602リソースは2種類のメカニズム、認証、許
可によって保護される。ION212が計算ノード20
0を認証した場合、VSI名は計算ノード200にエキ
スポートされる。エキスポートしたVSI602は計算
ノード200上でデバイス名となる。計算ノード上のア
プリケーション・スレッドは、このデバイス名で作業を
試みることができる。デバイス入口点のアクセス権と計
算ノード200のOS意味は、アプリケーション・スレ
ッドが特定の許可の実施を許可されているかどうかを判
断する。B) Storage Authentication and Authorization VSI 602 resources are protected by two types of mechanisms: authentication and authorization. ION 212 is a compute node 20
If 0 is authenticated, the VSI name is exported to the compute node 200. The exported VSI 602 becomes a device name on the computing node 200. Application threads on compute nodes can attempt to work with this device name. The access rights of the device entry point and the OS meaning of the compute node 200 determine whether the application thread is authorized to perform a particular permission.
【0111】この許可の方法は、インターコネクト・フ
ァブリック106がアクセスできる位置にあるストレー
ジリソース104の、計算ノード200による許可を拡
大する。しかし、本発明は、計算ノード200が本発明
のストレージリソース104を直接管理しない点におい
て、他のコンピュータアーキテクチャとは異なってい
る。この違いにより、ローカルの許可データを単純にフ
ァイルシステムと結びつけるのは実用的ではなくなる。
代わりに、本発明では、計算ノード200の許可方針デ
ータをION212のVSI602と結びつけ、計算ノ
ード200とION212が相互信頼のレベルを共有す
る2段階のアプローチを使用する。ION212は各計
算ノード200による特定のVSI602へのアクセス
を許可するが、VSIが指定するデータへの特定のアプ
リケーション・スレッドの許可の詳細化は計算ノード2
00の責任である。計算ノード200は、ION212
にストアされた許可メタデータに含まれる方針を使用し
て、ストレージ104に許可方針を強制する。したがっ
て、計算ノード200はION212によるメタデータ
の維持を信頼する必要があり、ION212に計算ノー
ド200による許可の強制を信頼させる必要がある。こ
の方法の利点の一つは、ION212がメタデータの解
釈方法に関する知識を持つ必要がないことである。その
ため、ION212は、計算ノード200が使用する異
なるOS202がインポーズする異なる許可の意味によ
ってインポーズされる特定の許可の意味の強制から分離
される。This permission method extends the permission by the compute node 200 of the storage resource 104 at a location accessible by the interconnect fabric 106. However, the present invention differs from other computer architectures in that the compute node 200 does not directly manage the storage resources 104 of the present invention. This difference makes it impractical to simply tie local permissions data to the file system.
Instead, the present invention ties the authorization policy data of the compute node 200 with the VSI 602 of the ION 212 and uses a two-stage approach where the compute node 200 and the ION 212 share a level of mutual trust. The ION 212 allows each compute node 200 to access a particular VSI 602, but the refinement of granting a particular application thread to data specified by the VSI is
00 responsibility. The calculation node 200 is an ION 212
To enforce the authorization policy on the storage 104 using the policy contained in the authorization metadata stored in the storage 104. Therefore, the compute node 200 needs to trust the maintenance of the metadata by the ION 212 and the ION 212 to trust the enforcement of the permission by the compute node 200. One advantage of this method is that the ION 212 does not need to have knowledge of how to interpret the metadata. As such, the ION 212 is decoupled from the enforcement of specific permission semantics that are imposed by the different permission semantics imposed by the different OSs 202 used by the compute nodes 200.
【0112】VSI602に関連するすべてのデータ
(アクセス権を含む)はION212にストアされる
が、アクセス権データの内容を管理する責務は計算ノー
ド200にある。さらに詳しく言えば、ION212が
エキスポートしているVSI602のリストを計算ノー
ド200に送る時、各VSI602に結びつくのは、計
算ノード200がローカルでの許可を強制するのに必要
なすべてのOS指定データである。例えば、UNIXを
動かす計算ノード200は名前、グループ名、ユーザI
D、つまりファイルシステムにデバイス・エントリ・ノ
ードを作成するのに十分なデータを送信される。計算ノ
ードOS202に固有の(又は計算ノード200に固有
の)VSI602の代替名は、各VSI602に含まれ
る。ストレージデバイスのアクセス権を変更するローカ
ルOS固有コマンドは、計算ノード200のソフトウェ
アが捕獲し、ION212へ送るメッセージに変換され
る。このメッセージは、そのOSバージョン固有のVS
Iアクセス権をアップデートする。この変更が完了する
と、ION212は、システムのOSを使用するすべて
の計算ノード200に、アップデートを送信する。All data (including the access right) related to the VSI 602 is stored in the ION 212, but the responsibility for managing the contents of the access right data lies with the computing node 200. More specifically, when the ION 212 sends a list of exported VSIs 602 to the compute nodes 200, each VSI 602 is tied to all OS-specific data required by the compute nodes 200 to enforce local permissions. It is. For example, the computing node 200 that runs UNIX has a name, group name,
D, that is, enough data to create a device entry node in the file system. An alternative name of the VSI 602 unique to the computing node OS 202 (or unique to the computing node 200) is included in each VSI 602. The local OS specific command for changing the access right of the storage device is converted into a message captured by the software of the computing node 200 and sent to the ION 212. This message is the OS version specific VS
Update I access rights. When this change is completed, the ION 212 sends an update to all the compute nodes 200 that use the OS of the system.
【0113】計算ノード(CN)200は、オンライン
になると、「自分はここにいる」というメッセージを各
IONに送信する。このメッセージは計算ノード200
を識別するデジタル署名を含んでいる。ION212が
計算ノード200を認識すると(ION212が計算ノ
ード200を承認すると)、ION212は計算ノード
200がアクセス権を持っているすべてのVSI名をエ
キスポートする。計算ノード200は、このVSI60
2名のリストを使用して、システムストレージのローカ
ルアクセス入口点を組み立てる。計算ノード200内の
アプリケーション204が最初にローカル端点を参照し
た時、計算ノード200はインターコネクト・ファブリ
ック106を通じて、そのVSI602のアクセス権記
述データをION212に要求する。この要求メッセー
ジには、要求している計算ノード200のデジタル署名
が含まれる。ION212はメッセージを受領し、デジ
タル署名を使用して返信すべき該当VSIアクセス権の
セットを見つけて、インターコネクト・ファブリック1
06を介して、要求した計算ノード200にそのデータ
を送信する。しかし、ION212は計算ノード200
に送信するアクセス権を解釈せず、データの送信のみを
行う。計算ノード200のソフトウェアは、このデータ
を利用して、該当するローカルアクセス権のセットを、
この対象ストレージ・オブジェクトのローカル入口点に
結びつける。When the computing node (CN) 200 goes online, it sends a message “I am here” to each ION. This message is sent to compute node 200
Includes a digital signature that identifies If the ION 212 recognizes the compute node 200 (if the ION 212 approves the compute node 200), the ION 212 exports all VSI names to which the compute node 200 has access. The calculation node 200 uses the VSI 60
Assemble the local access entry point for system storage using the two-person list. When the application 204 in the computing node 200 first refers to the local endpoint, the computing node 200 requests the ION 212 for the access right description data of the VSI 602 through the interconnect fabric 106. This request message includes the digital signature of the requesting compute node 200. The ION 212 receives the message, finds the appropriate set of VSI permissions to return using the digital signature, and
The data is transmitted to the requesting computing node 200 via 06. However, the ION 212 is
It does not interpret the access right to send to, but only sends data. The software of the computing node 200 uses this data to generate a corresponding set of local access rights,
Bind to the local entry point of this target storage object.
【0114】計算ノード200のセットは、同じデジタ
ル署名の使用、又はION212に複数の異なる署名を
同じアクセス権のセットに結びつけさせることで、同じ
アクセス権のセットを共有することができる。本発明で
は、認証を使用して、計算ノード200の確認と、ロー
カル入口点の作成にどのローカル許可データを使用する
かの指定の両方を行う。計算ノードが許可データを引き
出すのは、アプリケーションが最初にVSI602を参
照した時のみである。この「必要時に引き出す」モデル
は、非常に大きなシステムの大量のアクセス権メタデー
タの移動によるスタートアップ・コストを回避すること
になる。The set of compute nodes 200 can share the same set of access rights by using the same digital signature or by having the ION 212 tie multiple different signatures to the same set of access rights. In the present invention, authentication is used to both identify the compute node 200 and specify which local authorization data is used to create a local entry point. The computation node retrieves the permission data only when the application first references the VSI 602. This “pull on demand” model avoids the startup costs of moving large amounts of access rights metadata for very large systems.
【0115】計算ノード200が認証に失敗した場合、
ION212はVSI602名を含まないメッセージを
返信し、認証失敗フラグが設定される。計算ノード20
0はION212からのVSIデバイス名なしでそのま
ま継続することが可能で、システム管理者の希望に応じ
て失敗した認証の報告をすることができる。もちろん、
認証が成功した場合でも、計算ノードへのVSIデバイ
ス名の送信は行われない。When the computation node 200 fails in the authentication,
The ION 212 returns a message not including the VSI 602 name, and an authentication failure flag is set. Compute node 20
0 can be continued without the VSI device name from the ION 212, and a failed authentication can be reported according to the request of the system administrator. of course,
Even if the authentication is successful, the transmission of the VSI device name to the computing node is not performed.
【0116】c) 立ち上げ時の競合解消 立ち上げ時、ION212はインターコネクト・ファブ
リック106にVSI602をエキスポートしようとす
る。この場合、新しいION212によるあらゆる中断
からシステムのデータ完全性を守らなくてはいけない。
これを実現するために、新しいION212は、ストレ
ージのエキスポートが可能になる前にチェックされる。
これは次のように行われる。まず、ION212はロー
カルストレージを検査して、エキスポート可能なVSI
602のリストを作成する。VSI602メタデータに
はVSI生成又は変異番号が含まれる。VSI変異番号
は、そのVSI602の状態に大きな変化があったとき
に増加する(VSIのネットワークへのエキスポートが
成功した時など)。VSIの競合検知に関与するすべて
のノードは、計算ノード200及びION212を含
め、メモリにエキスポートされたVSIの履歴と変異番
号を保持する。インターコネクト・ファブリック上のす
べてのノードは、エキスポートされたVSI602のV
SI競合を常にモニターする必要がある。最初(ストレ
ージ拡張した最初に作成された時)、VSI変異番号は
ゼロに設定されている。エキスポートされたVSI60
2に前回エキスポートされた時よりも小さな変異番号が
ついている場合、たとえ実VSI602に結びつくIO
N212がサービス外だったとしも、そのVSIは詐称
VSIだと推定できる点では、変異番号は競合解消の基
準を提供する。実VSI602の変異番号より大きな変
異番号を持つION212に付随する詐称VSI602
は、I/Oがすでに実VSI上で実施されていない限
り、実VSI512とみなされる。新たにインターコネ
クト・ファブリックに導入されたION212は、変異
番号0から開始する必要がある。C) Conflict Resolution at Startup At startup, the ION 212 attempts to export the VSI 602 to the interconnect fabric 106. In this case, the data integrity of the system must be protected from any interruption by the new ION 212.
To accomplish this, the new ION 212 is checked before the storage can be exported.
This is performed as follows. First, the ION 212 checks the local storage and exports the VSI
A list 602 is created. VSI 602 metadata includes VSI generation or mutation number. The VSI mutation number increases when there is a major change in the state of the VSI 602 (such as when the VSI is successfully exported to the network). All nodes involved in the VSI conflict detection, including the compute node 200 and the ION 212, maintain the VSI history and mutation number exported to memory. All nodes on the interconnect fabric have the VSI of the exported VSI 602
SI contention must be monitored constantly. Initially (when initially created for storage expansion), the VSI variant number is set to zero. VSI60 exported
2 has a smaller mutation number than when it was last exported, even if the IO associated with the real VSI 602
Even if N212 is out of service, the variant number provides a criterion for conflict resolution in that its VSI can be presumed to be spoofed VSI. False VSI 602 associated with ION 212 having a mutation number larger than the mutation number of actual VSI 602
Is considered a real VSI 512 unless the I / O has already been implemented on the real VSI. IONs 212 that are newly introduced into the interconnect fabric need to start with mutation number 0.
【0117】システムへの加入希望を通知した後、IO
N212はVSI602のリストと関連する変異番号を
送信する。他のすべてのION212と計算ノード20
0はこのリストを入手し、ION212がVSI602
のリストをエキスポートする妥当性をチェックする。After notifying the request to join the system, the IO
N212 sends the VSI 602 list and the associated mutation number. All other IONs 212 and compute nodes 20
0 obtains this list, and the ION 212
Check the validity of exporting a list of.
【0118】現在同じVSI602をエキスポートして
いる他のIONは有効であると仮定され、新しいION
に対して、競合している特定のVSIのエキスポートを
認めないメッセージを送付する。新しいION512が
現在システムで使用されているものよりも大きな生成又
は変異番号を持っている場合は(VSIは大域的にユニ
ークであるため、通常の運用では発生しないイベン
ト)、必要な行動を行うシステム管理者に対してこれを
通知及び報告する。競合がない場合、各ION212と
計算ノードは続行投票により反応する。すべてのION
212と計算ノード200からの反応を受領すると、競
合していない新しいION212のすべてのVSI60
2では生成番号が増加し、システムへのエキスポートが
できるようになる。The other IONs currently exporting the same VSI 602 are assumed to be valid, and
, A message that does not allow the export of the competing specific VSI is sent. If the new ION 512 has a larger generation or mutation number than what is currently used in the system (an event that does not occur in normal operation because VSI is globally unique), the system that takes the necessary action Notify and report this to the administrator. If there is no conflict, each ION 212 and compute node respond with a continue vote. All ION
Upon receiving a response from the compute node 200 and the VSI 60 of the new ION 212 that is not competing,
In 2, the generation number increases, and it becomes possible to export to the system.
【0119】計算ノード200がVSI602のアプリ
ケーション基準とアクセスを持つと、その計算ノード2
00は生成番号をローカルで追跡する。ION212が
VSI602を公表した時(エキスポートを試みた時)
は常に、計算ノード200はVSI602が公表した生
成番号をVSI602に関してローカルでストアしてい
る生成番号と比較する。生成番号が符号した場合、計算
ノード200は続行の投票を行う。生成番号が競合する
場合(古いバージョンのVSIがオンラインになった場
合など)、計算ノード200は拒否のメッセージを送
る。新しいIONがVSIに関して公表した生成番号よ
り古い生成番号を持っている計算ノード200は続行を
投票し、そのVSI602のローカルバージョンの生成
番号を更新する。計算ノード200はリブートまでの間
に生成番号を保存しない。これは基本設計において、イ
ンターコネクト・ファブリック106全体のシステムが
安定し、計算ノード200及びION212を含むすべ
ての新規参入者を絶えずチェックするからである。When the computing node 200 has the application reference and access of the VSI 602, the computing node 2
00 tracks the generation number locally. When ION212 publishes VSI602 (when trying to export)
Always, the compute node 200 compares the generation number published by the VSI 602 with the generation number stored locally for the VSI 602. If the generation number is coded, the computation node 200 votes to continue. If the generation numbers conflict (such as when an older version of the VSI goes online), the compute node 200 sends a reject message. Compute nodes 200 that have a generation number older than the new ION has published for the VSI vote for continuation and update the generation number of the local version of that VSI 602. The computing node 200 does not save the generation number until the reboot. This is because, in the basic design, the system throughout the interconnect fabric 106 is stable and constantly checks all new entrants, including the compute nodes 200 and IONs 212.
【0120】第一の電源投入時、VSI602のネーム
スペースの安定性が問題になる状況が起こり得る。この
問題には、先にION212の電源を入れ、名前の競合
を継続的に解消できるようにしてから、計算ノード20
0の加入を認める形で対処する。これにより、期限切れ
バージョンのVSI602(ディスクドライブの古いデ
ータその他の変質条件による)を生成番号によって解消
できる。計算ノード200がそのVSI602を使用し
ていない限り、より大きな生成番号を持つ新規参入者
は、特定のVSI602を現在エキスポートしているも
のを無効化できる。At the first power-on, a situation may arise in which the stability of the namespace of the VSI 602 becomes a problem. To solve this problem, first turn on the ION 212 so that name conflicts can be continuously resolved,
We will deal with it by accepting the participation of 0. As a result, the expired version of the VSI 602 (due to old data in the disk drive or other deterioration conditions) can be eliminated by the generation number. As long as the compute node 200 is not using its VSI 602, a new entrant with a higher generation number can override what is currently exporting a particular VSI 602.
【0121】(1) ネーム・サービス (a) IONの名前のエキスポート ION212は、独占的に所有するVSI602の作業
セットをエキスポートして、関連するストレージへのア
クセスを可能にする。ION212がエキスポートする
VSIの作業セットは、バディION(ダイポール21
6内の他のION212、214で表される)とのVS
I所有権の交渉を通じて動的に決定され、インターコネ
クト・ファブリック106で通信するすべてのノード内
で大域的にユニークになる。このセットは普通は、IO
N212に割り当てられたVSI602のデフォルト又
はプライマリセットである。ダイナミック・ロード・バ
ランシングのためのVSIマイグレーションや、バディ
ION214の異常及びI/Oパスの異常を含む例外的
状況によって、エキスポートされるVSI602セット
がプライマリセット以外に変更される場合もある。(1) Name Service (a) Export of ION Name The ION 212 exports a working set of the exclusively owned VSI 602 to allow access to associated storage. The working set of the VSI exported by the ION 212 is a buddy ION (Dipole 21
6 (represented by other IONs 212, 214)
Determined dynamically through I ownership negotiations, it becomes globally unique among all nodes communicating with the interconnect fabric 106. This set is usually IO
The default or primary set of the VSI 602 assigned to N212. The VSI 602 set to be exported may be changed to a primary set other than the primary set due to VSI migration for dynamic load balancing, or exceptional situations including abnormalities of the buddy ION 214 and abnormalities of the I / O path.
【0122】VSIの作業セットは、作業セットが変更
になると常に、同報メッセージを利用してION212
によってエキスポートされ、最新のVSI構成を計算ノ
ード200に提供する。計算ノード200も、ION2
12に対して、VSI602の作業セットについて質問
を行うことがある。エキスポートしたVSI602のた
めにION212がオンラインに加入又は再加入する
と、計算ノード200によってVSI602へのI/O
アクセスが開始される。上述のように、エキスポートし
たVSI602に何らかの競合があれば、ION212
はオンラインへの加入を許可されない。ストレージの集
合に付随するVSI602はすべてユニークであるはず
だが、ストレージの複数の集合が同じVSIを持つ競合
状態が発生する可能性もある(例えば、VSIがION
212ハードウェアに付随するユニークなIDとION
212が管理するシーケンス番号から形成され、そのI
ON212ハードウェアが物理的に移動された場合)。Whenever the working set of the VSI is changed, the ION 212 using the broadcast message is used.
And provides the latest VSI configuration to the compute node 200. Compute node 200 is also ION2
12 may be asked about the working set of the VSI 602. When the ION 212 subscribes or re-subscribes online for the exported VSI 602, I / O to the VSI 602 by the compute node 200
Access is started. As described above, if there is any conflict in the exported VSI 602, the ION 212
Is not allowed to join online. Although all VSIs 602 associated with a storage set should be unique, a race condition may occur where multiple sets of storage have the same VSI (e.g., VSI is an ION).
Unique ID and ION attached to 212 hardware
212 is formed from the sequence number managed by
ON 212 hardware is physically moved).
【0123】作業セットをエキスポートすると、エキス
ポートしたION212は、オンライン状態に入って、
エキスポートされたVSI602へのI/Oアクセスを
可能にする前に、競合チェックタイマ(2秒)を設定す
る。競合チェックタイマは、インポートするものが競合
チェック処理を行い、エキスポートしたものに競合を知
らせるのに十分な時間を与えようとするが、タイマーを
非常に大きな値に設定しない限り、これは保証できな
い。そのため、ION212はすべてのノード(計算ノ
ード及びION212)から、オンライン加入を正式に
認める明確な承認が必要である。すべてのノードは、オ
ンライン同報メッセージに同時に反応し、結果はまとめ
られ、返送される。まとめた結果がACKであればIO
N212は正式にオンラインに加入する。ION212
がオンライン加入を認められなかった場合は、新しくエ
キスポートされたVSI602のセットにアクセスはで
きない。NAKを送ったノードは、その後VSI競合メ
ッセージをエキスポートしたものに送り、競合を解消さ
せる。競合が解消すると、ION212は調整した作業
セットをエキスポートし、再度オンラインに加入を試み
る。When the working set is exported, the exported ION 212 enters an online state,
Before enabling I / O access to the exported VSI 602, a contention check timer (2 seconds) is set. The conflict check timer attempts to give the importer enough time to perform the conflict check process and notify the exporter of the conflict, but this cannot be guaranteed unless the timer is set to a very large value. . Therefore, the ION 212 requires explicit approval from all nodes (computing node and ION 212) to formally authorize online subscription. All nodes respond simultaneously to the online broadcast message, and the results are compiled and returned. If the summarized result is ACK, IO
N212 officially subscribes online. ION212
If he is not authorized to join online, he cannot access the newly exported set of VSIs 602. The node that sent the NAK then sends a VSI conflict message to the exported one to resolve the conflict. When the conflict is resolved, the ION 212 exports the adjusted working set and attempts to join online again.
【0124】(b) CNの名前のインポート 計算ノード200には、ION212がエキスポートし
たすべてのVSI504をインポートするために行動す
る責任がある。その日の第一の処理中、計算ノード20
0はオンライン上のすべてのION212に、前回エキ
スポートしたVSI602を要求し、ネームスペースの
新しい状態を入手する。これ以降、計算ノード200は
VSI602のエキスポートに注意を払う。(B) Importing CN Name The compute node 200 is responsible for acting to import all VSIs 504 exported by the ION 212. During the first processing of the day, compute node 20
0 requests all IONs 212 on-line for the previously exported VSI 602 to get the new state of the namespace. Thereafter, the compute node 200 pays attention to the export of the VSI 602.
【0125】VSI602に関する制御情報は、ION
212が管理するvsノードに含まれる。vsノードの
計算ノード200部分には、アプリケーション204に
例示するネームの構築及び管理に使用される情報が含ま
れる。vsノード情報にはユーザアクセス権及びネーム
・エイリアスが含まれる。The control information on the VSI 602 is ION
212 is included in the vs node managed. The computation node 200 portion of the vs node includes information used for construction and management of names exemplified in the application 204. The vs node information includes a user access right and a name alias.
【0126】(i) ネーム・ドメイン及びエイリアス VSI602はアプリケーションが定義するネーム・エ
イリアスを持つ構成になる場合があり、これは関連する
ストレージにアクセスする代替名を提供する。ネーム・
エイリアスは、ネームのセットを論理的にまとめるため
に仮想ストレージドメインに属すことができる。ネーム
・エイリアスは仮想ストレージドメイン内でユニークで
なければいけない。(I) Name Domain and Alias VSI 602 may be configured with an application-defined name alias, which provides an alternative name for accessing the associated storage. name·
Aliases can belong to a virtual storage domain to logically organize a set of names. Name aliases must be unique within the virtual storage domain.
【0127】(ii) vsノード 計算ノード200によるvsノードの修正は、所有する
IONに送られ、すぐに更新と処理が行われる。次に、
vsノードの変更は、ION212が変更のエキスポー
トとオンライン状態への再加入を行い、すべてのノード
に伝達する。(Ii) vs node The modification of the vs node by the computing node 200 is sent to the owning ION, and is immediately updated and processed. next,
The change of the node is transmitted to all the nodes by the ION 212 exporting the change and rejoining the online state.
【0128】d) ストレージディスク管理 JBODエンクロージャ222は、ディスクデバイスの
ための物理環境の提供と、ディスクデバイス及びエンク
ロージャ管理アプリケーションへのいくつかのサービス
の提供に責任を有する。こうしたサービスの中に含まれ
るのは(1)コンポーネント異常の通知(電源、ファン
など)、(2)しきい値の通知(温度や電圧)、(3)
故障及びステータスライトの可能化と不能化、(4)音
声警告の可能化と不能化、(5)ディスクデバイスのデ
バイスIDの設定である。D) Storage Disk Management The JBOD enclosure 222 is responsible for providing a physical environment for disk devices and for providing some services to disk device and enclosure management applications. These services include (1) component error notification (power supply, fan, etc.), (2) threshold notification (temperature and voltage), (3)
(4) enabling and disabling a sound warning; and (5) setting a device ID of a disk device.
【0129】以前は、管理アプリケーションは一般に、
帯域外の接続によってエンクロージャとのインターフェ
ースを行った。単一ネットワーク管理プロトコル(SN
MP)のようなプロトコルを使用したリモート・エンク
ロージャへのシリアル又はイーサネット接続では、エン
クロージャの状態に関するステータス情報を受領でき
た。本発明では、ディスクエンクロージャは物理的にホ
ストシステムと離れている可能性があり、エンクロージ
ャの構成やステータスを、分離したシリアル・パスのよ
うな直接的な接続によってモニターするのは実用的では
ない。余分なケーブルを避けるために、本発明では、既
存のノーマルなファイバ・チャンネル・ループによって
エンクロージャのステータスをモニターし、エンクロー
ジャの構成をコントロールできる帯域内接続を使用す
る。Previously, management applications were generally
An out-of-band connection interfaced with the enclosure. Single Network Management Protocol (SN
A serial or Ethernet connection to a remote enclosure using a protocol such as MP) could receive status information about the state of the enclosure. In the present invention, the disk enclosure may be physically separated from the host system, and it is not practical to monitor the configuration or status of the enclosure by a direct connection such as a separate serial path. To avoid extra cabling, the present invention uses an in-band connection that can monitor the status of the enclosure and control the configuration of the enclosure over existing normal Fiber Channel loops.
【0130】この帯域内接続では、構成情報の問い合わ
せや制御のためにホストからSCSIデバイスへ送信さ
れるSCSIコマンドセットと、デバイスがこの情報を
エンクロージャ自身に通信するメカニズムを使用する。
ホストとディスクデバイスのプロトコルの部分は、SC
SI−3エンクロージャサービス(SES)の仕様に詳
述されており、これは本文書の参照事項に含まれる。The in-band connection uses a SCSI command set transmitted from the host to the SCSI device for inquiring and controlling configuration information, and a mechanism by which the device communicates this information to the enclosure itself.
The protocol part of the host and disk device is SC
It is detailed in the SI-3 Enclosure Services (SES) specification, which is included in the references of this document.
【0131】SESインターフェースの導入には、問い
合わせ、診断送信、診断結果受領の3つのSCSIコマ
ンドが使用される。問い合わせコマンドは、特定のデバ
イスがエンクロージャデバイスか、SESコマンドをエ
ンクロージャ・サービス・プロセスに転送できるデバイ
スかを指定する。診断送信、診断結果受領はそれぞれ、
エンクロージャ要素からのステータス情報を管理、受領
するために使用される。To introduce the SES interface, three SCSI commands of inquiry, transmission of a diagnosis, and reception of a diagnosis result are used. The query command specifies whether the particular device is an enclosure device or a device that can forward SES commands to the enclosure service process. Sending the diagnosis and receiving the diagnosis result respectively
Used to manage and receive status information from enclosure elements.
【0132】診断送信又は診断結果受領コマンドを使用
する時は、ページコードを指定しなくてはいけない。ペ
ージコードは要求されているステータスや情報のタイプ
を指定する。診断送信及び診断結果受領コマンドによっ
て要求できる既定SESページのすべてのセットは下の
表VIIに記載されている。太字の項目はSESイベン
トモニタが必要とするものである。When using the diagnosis transmission or diagnosis result reception command, a page code must be specified. The page code specifies the status or type of information being requested. All sets of default SES pages that can be requested by the Send Diagnostic and Receive Diagnostic Results commands are listed in Table VII below. Items in bold are those required by the SES event monitor.
【0133】[0133]
【表7】 [Table 7]
【0134】アプリケーション・クライアントは、診断
結果読み出しコマンドを実行して断続的にエンクロージ
ャをポーリングし、1より大きな最少割り当て長さのエ
ンクロージャ・ステータス・ページを要求することがあ
る。情報は、エンクロージャのステータスを要約した5
ビットを含む1バイトによって戻される。これらのビッ
トの一つが設定されている場合、アプリケーション・ク
ライアントは、完全なステータスを入手するために、こ
のコマンドを長い割り当て長さで再発行できる。The application client may execute the read diagnostics command intermittently to poll the enclosure and request a minimum allocated length greater than one enclosure status page. Information summarizes the status of the enclosure5
Returned by one byte containing the bits. If one of these bits is set, the application client can reissue this command with a long assigned length to get the complete status.
【0135】e)IONエンクロージャ管理 図7は、IONエンクロージャ管理モジュールとION
物理ディスクドライバ・アーキテクチャ500の関係を
示している。このサブシステムは、SESイベントモニ
タ702とSCC2+to SESガスケット704の
2つのコンポーネントで構成されている。SESイベン
トモニタ702は、接続するすべてのエンクロージャの
サービス・プロセスのモニタと、ステータスが変化した
場合のイベント記録サブシステムによる報告に責任を有
している。この報告は、必要があれば管理サービスレイ
ヤ706に転送される。SCC2+to SESガスケ
ット704は、構成及び維持アプリケーションからのS
CC2+コマンドのトランスレートと、エンクロージャ
・サービスプロセスに対応する1つ以上のSESコマン
ドへのこれのトランスレートに責任を有する。これによ
り、アプリケーション・クライアントはJBOD構成の
仕様を知る必要がなくなる。E) ION Enclosure Management FIG. 7 shows the ION enclosure management module and the ION
The relationship of the physical disk driver architecture 500 is shown. This subsystem is composed of two components: SES event monitor 702 and SCC2 + to SES gasket 704. The SES event monitor 702 is responsible for monitoring the service processes of all connected enclosures and for reporting by the event recording subsystem when status changes. This report is forwarded to the management service layer 706 if necessary. The SCC2 + to SES gasket 704 provides S
Responsible for translating CC2 + commands and translating them to one or more SES commands corresponding to the enclosure service process. This eliminates the need for the application client to know the specifications of the JBOD configuration.
【0136】(1)SESイベントモニタ SESイベントモニタ702は、エンクロージャ222
のサービスプロセス・ステータスの変化に関する報告
を、管理サービスレイヤ706に戻す。ステータス情報
はイベント記録サブシステムによって報告される。SE
Sイベントモニタ702は、エンクロージャ・ステータ
ス・ページを要求する診断結果読み出しコマンドを実行
して、各エンクロージャプロセスを断続的にポーリング
する。診断結果読み出しコマンドは、ION物理デバイ
スディスクドライバ500が提供するSCSLibイン
ターフェース514を介して送信される。報告されるス
テータスには、下の表VIIIのステータス項目が含ま
れる。(1) SES Event Monitor The SES event monitor 702
To the management service layer 706. Status information is reported by the event recording subsystem. SE
The S event monitor 702 executes a diagnostic result read command requesting an enclosure status page to intermittently poll each enclosure process. The diagnosis result read command is transmitted via the SCSLib interface 514 provided by the ION physical device disk driver 500. The reported status includes the status items in Table VIII below.
【0137】[0137]
【表8】 [Table 8]
【0138】SESイベントモニタ702は、起動する
と、エンクロージャに含まれる各要素402−424の
ステータスを読み出す。このステータスは現在のステー
タスである。ステータスの変化を検知すると、現在のス
テータスから変化した各ステータスの報告が管理サービ
スレイヤ706に戻される。そして今度は、この新しい
ステータスが現在のステータスになる。例えば、ファン
要素の現在のステータスがOKで、ステータス変化によ
りエレメントの状態がファン障害になった場合、このイ
ベントはファンの故障を示すものとして報告される。別
のステータス変化がエレメントの未インストールを示す
場合、このイベントはファンがエンクロージャから取り
外されたことを示すものとして報告される。さらに別の
ステータス変化がファン要素のOKであることを示す場
合、このイベントは、ファンがホットプラグされ、正常
に動いていることを示すものとして生成される。When the SES event monitor 702 starts, it reads the status of each element 402-424 included in the enclosure. This status is the current status. Upon detecting a change in status, a report of each status that has changed from the current status is returned to the management service layer 706. This time, this new status becomes the current status. For example, if the current status of the fan element is OK and the status change causes the element to be in a fan failure state, this event is reported as indicating a fan failure. If another status change indicates that the element has not been installed, this event is reported as an indication that the fan has been removed from the enclosure. If yet another status change indicates that the fan element is OK, this event is generated as an indication that the fan has been hot-plugged and is operating normally.
【0139】(a) その日の第一の処理 SESイベントモニタ702は、ION物理ディスクド
ライバ500の初期化成功の後で起動する。起動後、S
ESイベントモニタ602は、JBOD及びSCSI構
成モジュール516を読み出して、ディスクデバイスと
エンクロージャサービスデバイスの相互関係、デバイス
のアドレスを確認する。次に、各エンクロージャ・ステ
ータス・デバイスのステータスを読む。そして、すべて
のエラー状態及び失われている要素に関してイベントを
生成する。これらのステップが終了すると、そのステー
タスが現在のステータスになり、ポーリングが開始され
る。(A) First Processing of the Day The SES event monitor 702 starts after the ION physical disk driver 500 has been successfully initialized. After startup, S
The ES event monitor 602 reads the JBOD and SCSI configuration module 516 to check the mutual relationship between the disk device and the enclosure service device and the address of the device. Next, the status of each enclosure status device is read. It then generates events for all error conditions and missing elements. When these steps are completed, the status becomes the current status and polling starts.
【0140】(2) SCC2+to SESガスケッ
ト SCC2+は、ION212が仮想及び物理デバイスの
構成と管理に使用するプロトコルである。SCC2+の
プラス(+)は、SCC2によるION212デバイス
及びコンポーネントの完全な管理と、SCC2が定義す
るコマンドのSESに対する一貫したマッピングを可能
にするための追加を意味する。(2) SCC2 + to SES Gasket SCC2 + is a protocol used by the ION 212 for configuration and management of virtual and physical devices. The plus (+) of SCC2 + means the addition of SCC2 to allow complete management of ION 212 devices and components and the consistent mapping of SCC2 defined commands to SES.
【0141】サービスレイヤ706は、SCC2メンテ
ナンス・イン及びメンテナンス・アウトのコマンドを通
じて、JBODエンクロージャ222要素をアドレスす
る。以下のセクションでは、コンポーネントのステータ
スの構成、制御、報告に関するメカニズムを提供するサ
ービス・アクションについて説明する。これらのコマン
ドはそれぞれ、一連の診断送信及び診断結果受領のSC
SIコマンドとしてION212に導入される。The service layer 706 addresses the JBOD enclosure 222 elements through SCC2 maintenance in and maintenance out commands. The following sections describe service actions that provide mechanisms for configuring, controlling, and reporting the status of components. These commands are a series of SCs for transmitting a series of diagnostics and receiving diagnostic results, respectively.
It is introduced into the ION 212 as an SI command.
【0142】コンポーネントの構成は以下のサービス・
アクションを使用して実行される。The components are composed of the following services.
Performed using actions.
【0143】コンポーネント・デバイス追加−コンポー
ネント・デバイス追加コマンドはシステム内でのコンポ
ーネント・デバイスの構成と、LUNアドレスの定義に
使用する。LUNアドレスは、SES構成ページのコン
ポーネントの位置に基づいて、ION212が割り当て
る。このコマンドに続いて、LUN割り当ての結果を入
手するために、コンポーネント・デバイス報告サービス
・アクションが実行される。Component / Device Addition--The component / device addition command is used for configuring a component / device in the system and defining a LUN address. The LUN address is assigned by the ION 212 based on the location of the component on the SES configuration page. Following this command, a component device reporting service action is performed to obtain the result of the LUN assignment.
【0144】コンポーネント・デバイス報告−コンポー
ネント・デバイス・ステータス報告サービス・アクショ
ンは、コンポーネント・デバイスに関する完全なステー
タスをレトリーブするためのベンダー固有コマンドであ
る。SESは、各要素タイプのステータスを4バイトで
提供する。この新しいコマンドが必要なのは、ステータ
ス報告及びコンポーネント・デバイス報告サービス・ア
クションがステータス情報に1バイトしか割り当てず、
既定のステータスコードがSES標準で定義されるもの
と競合するからである。Component Device Report-A component device status report service action is a vendor specific command to retrieve the complete status for a component device. SES provides the status of each element type in 4 bytes. This new command is needed because the status report and component device report service actions only allocate one byte for status information,
This is because the default status codes conflict with those defined in the SES standard.
【0145】コンポーネント・デバイス接続−コンポー
ネント・デバイス接続は、一つ以上のユニットを論理的
に特定のコンポーネント・デバイスに接続することを要
求する。このコマンドは、ボリュームセットと、ファ
ン、電源など、それに従属するコンポーネント・デバイ
スの論理関係を形成するのに使われることがある。Component Device Connection-A component device connection requires that one or more units be logically connected to a particular component device. This command may be used to form a logical relationship between a volume set and its dependent component devices such as fans and power supplies.
【0146】コンポーネント・デバイス交換−コンポー
ネント・デバイス交換サービス・アクションは、あるコ
ンポーネント・デバイスの他のものとの交換を要求す
る。Component Device Replacement-A component device replacement service action requires the replacement of one component device with another.
【0147】コンポーネント・デバイス除去−周辺機器
デバイス/コンポーネント・デバイス除去サービス・ア
クションは、システム構成からの周辺機器又はコンポー
ネント・デバイスの除去を要求する。論理ユニットを接
続しているコンポーネント・デバイスを除去する場合、
このコマンドは状況チェックで終了する。感知キーは不
当な要求で、追加感知修飾子の障害論理ユニットの除去
がついている。Remove Component Device-Peripheral Device / Remove Component Device service action requests the removal of a peripheral or component device from the system configuration. When removing a component device connecting a logical unit,
This command ends with a status check. The sensing key is an unreasonable request, with the removal of the faulty logic unit of an additional sensing qualifier.
【0148】コンポーネントのステータスその他の情報
は以下のサービス・アクションによって入手する。The status of a component and other information are obtained by the following service actions.
【0149】コンポーネント・ステータス報告−コンポ
ーネント・デバイス・ステータス報告サービス・アクシ
ョンは、コンポーネント・デバイスに関する完全なステ
ータス情報をレトリーブするためのベンダー固有コマン
ドである。SESは各要素タイプのステータスを4バイ
トで提供する。ステータス報告及びコンポーネント・デ
バイス報告サービス・アクションはステータス情報に1
バイトしか割り当てず、既定のステータスコードはSE
S標準で定義されるものと競合する。そのため、この新
しいコマンドが必要になる。Component Status Report-The component device status report service action is a vendor specific command to retrieve complete status information about the component device. SES provides the status of each element type in 4 bytes. The status report and component device report service action include 1 in the status information.
Allocate only bytes, default status code is SE
Conflicts with those defined in the S standard. So this new command is needed.
【0150】ステータス報告−ステータス報告サービス
・アクションは、選択した論理ユニットのステータス情
報を要求する。各論理ユニットの一つ以上のステータス
が戻される。Status Report-The status report service action requests status information for the selected logical unit. One or more statuses for each logical unit are returned.
【0151】コンポーネント・デバイス報告−コンポー
ネント・デバイス報告サービス・アクションは、JBO
D内のコンポーネント・デバイスに関する情報を要求す
る。LUN記述子の順序リストが戻され、LUNアドレ
ス、コンポーネントタイプ、全体のステータスの報告が
行われる。このコマンドは、コンポーネント・デバイス
追加サービス・アクションが割り当てるLUNアドレス
を判断する初期構成プロセスの一部として利用される。Component Device Report-The component device report service action is a JBO
Request information about the component devices in D. An ordered list of LUN descriptors is returned, reporting the LUN address, component type, and overall status. This command is used as part of the initial configuration process to determine the LUN address assigned by the add component device service action.
【0152】コンポーネント・デバイス接続報告−コン
ポーネント・デバイス接続報告サービス・アクション
は、特定のコンポーネント・デバイスに接続している論
理ユニットに関する情報を要求する。コンポーネント・
デバイス記述子のリストが戻され、それぞれにLUN記
述子のリストが含まれる。LUN記述子は、対応するコ
ンポーネントに接続する各論理ユニットのタイプ及びL
UNアドレスを特定する。Component Device Connection Report-The Component Device Connection Report service action requests information about the logical unit that is connected to a particular component device. component·
A list of device descriptors is returned, each containing a list of LUN descriptors. The LUN descriptor contains the type and L of each logical unit that connects to the corresponding component.
Specify the UN address.
【0153】コンポーネント・デバイス識別子報告−コ
ンポーネント・デバイス識別子報告サービス・アクショ
ンは、特定のコンポーネント・デバイスの位置を要求す
る。コンポーネントの位置を示すASCII値が戻され
る。この値は、コンポーネント・デバイス識別子設定サ
ービス・アクションによって事前に設定されている必要
がある。Component Device Identifier Report-The Component Device Identifier Report service action requests the location of a specific component device. An ASCII value indicating the location of the component is returned. This value must have been previously set by the component device identifier setting service action.
【0154】コンポーネントの管理は以下によって実行
される。The management of components is performed as follows.
【0155】コンポーネント・デバイス命令−コンポー
ネント・デバイス命令は、電源のオンオフといった制御
命令をコンポーネント・デバイスに送るのに使用する。
特定のデバイスに適用されるアクションは、コンポーネ
ントタイプによって異なり、ベンダーに固有である。Component Device Command-The component device command is used to send a control command such as power on / off to the component device.
The actions that apply to a particular device depend on the component type and are vendor specific.
【0156】コンポーネント・デバイス中断−コンポー
ネント・デバイス中断サービス・アクションは、特定の
コンポーネントを中断(無作動)状態にする。Suspend Component Device-The Suspend Component Device service action places a particular component in a suspended (inactive) state.
【0157】C. インターコネクト・ファブリック 1. 概要 大量のデータ移動を可能にするために、本発明のファブ
リックに接続するストレージモデルは、データのコピー
及び割り込み処理コストに関するI/O性能問題に取り
組まなくてはならない。本発明では、データのコピー、
割り込み、フロー制御問題について、手法を独自に組み
合わせて取り組んでいる。ほとんどのネットワークで使
用されている目的地ベースのアドレス・モデルとは異な
り、本発明では送信者ベースのアドレスモデルを使用し
ており、ここでは送信者が、データをファブリックに送
信する前に、目的地のターゲット・バッファを選択す
る。送信者ベース・モデルでは、目的地は送信者に対し
て、メッセージの送信前に、メッセージを送信できる目
的地アドレスのリストを発信する。メッセージを送るた
めに、送信者はまずリストから目的地バッファを選択す
る。これが可能なのは、ターゲット側アプリケーション
がこれらのバッファのアドレスを先にOSに与え、ター
ゲットのネットワーク・ハードウェアが使用できるよう
にしており、そのため、ネットワーク・ハードウェア
は、DNA作業によって、コピーせずにデータを正しい
ターゲットバッファに転送するための十分な情報を持っ
ているからである。C. Interconnect Fabric 1. Overview To enable mass data movement, the storage model attached to the fabric of the present invention must address I / O performance issues related to data copy and interrupt handling costs. In the present invention, data copy,
He works on interrupts and flow control issues by combining methods. Unlike the destination-based address model used in most networks, the present invention uses a sender-based address model, in which a sender sends a destination-based address model before sending data to the fabric. Select a local target buffer. In the sender-based model, the destination sends the sender a list of destination addresses to which the message can be sent before sending the message. To send a message, the sender first selects a destination buffer from a list. This is possible because the target application first gives the address of these buffers to the OS, making it available to the target network hardware, so that the network hardware can use DNA work without copying. This is because it has enough information to transfer the data to the correct target buffer.
【0158】有益な点はあるものの、送信者ベースのア
ドレスにはいくつかの問題も存在する。まず、送信者ベ
ースのアドレスでは、ファブリック全体の保護領域が目
的地から送信者を含むまでに拡大し、全般的な分離が失
われ、データのセキュリティと完全性の問題が持ち上が
る。純粋な送信者ベースのアドレスでは、メモリアドレ
スを送信者に解放し、目的地は送信者を信頼する必要が
あり、これは高可用性システムにおける大きな問題であ
る。例えば、目的地ノードが目的地アドレスのリストを
送信者に与えたとする。送信者がこのすべてのアドレス
を使用する前に、目的地ノードがクラッシュし、リブー
トを行う。すると送信側は、すでに有効ではなくなった
アドレスバッファのセットを持つことになる。目的地で
は、このアドレスが別の目的で使用されているかもしれ
ない。これのいずれかにメッセージを送信すると、目的
地で重要なデータが破壊されるという深刻な結果につな
がる可能性がある。[0158] Despite the benefits, there are also some problems with sender-based addresses. First, with sender-based addresses, the protected area of the entire fabric extends from the destination to include the sender, losing overall separation and raising data security and integrity issues. With pure sender-based addresses, memory addresses are released to the sender and the destination must trust the sender, which is a major problem in high availability systems. For example, assume that a destination node has provided a list of destination addresses to a sender. Before the sender uses all these addresses, the destination node crashes and performs a reboot. The sender then has a set of address buffers that are no longer valid. At the destination, this address may be used for another purpose. Sending a message to any of these can have serious consequences, as important data will be destroyed at the destination.
【0159】二番目に、送信者ベースのアドレスの導入
には、ネットワークが協力して、データのDMAを開始
する前にメッセージから目的地アドレスの抽出を行う必
要があるが、ほとんどのネットワーク・インターフェー
スでは、こういった作業を行うように設計されていな
い。Second, the introduction of sender-based addresses requires that the network cooperate to extract the destination address from the message before initiating the DMA of the data, but most network interfaces So it's not designed to do this.
【0160】必要なアドレスモデルは、送信者ベースモ
デルの利点を含み、問題点を回避するものである。本発
明では、BYNETに基づくインターコネクト・ファブ
リックを使用する独自の「プット・イット・ゼア」(P
IT)プロトコルを利用したハイブリッド・アドレスモ
デルによって、この問題を解決している。The required address model includes the advantages of the sender-based model and avoids problems. The present invention uses a proprietary “Put It There” (P) that uses an interconnect fabric based on BYNET.
This problem is solved by a hybrid address model using the (IT) protocol.
【0161】2. BYNETとBYNETインターフ
ェース BYNETには、本発明の導入に役立つ三つの重要な属
性がある。[0161] 2. BYNET and the BYNET Interface BYNET has three important attributes that help to implement the present invention.
【0162】まず、BYNETは本質的にスケーラブル
である−追加接続や帯域幅の追加を容易に実施でき、シ
ステム内のすべての存在をすぐに利用できる。これは、
追加接続を行っても帯域幅を追加できない他のバス指向
のインターコネクト技術とは対照的である。他のインタ
ーコネクトと比較すると、BYNETはファン・アウト
(単一のファブリックで利用できるポート数)を増加で
きるだけでなく、ファン・アウトによって増加する二分
帯域幅も有している。First, BYNET is inherently scalable-it can easily implement additional connections and additional bandwidth, and can immediately take advantage of everything in the system. this is,
In contrast to other bus-oriented interconnect technologies, where additional connections do not add bandwidth. Compared to other interconnects, BYNET not only can increase fan out (the number of ports available in a single fabric), but also has a dichotomous bandwidth that increases with fan out.
【0163】二番目に、BYNETはソフトウェアによ
って、アクティブ・メッセージ・インターコネクトに拡
張できる−ユーザ(計算リソース102及びストレージ
リソース104)の指示の下で、BYNETは作業の中
断を最低限に抑えながら、ノード間でデータを移動でき
る。DMAを使用して、データを既定のメモリアドレス
に直接移動し、必要のない割り込みや内部でのデータコ
ピーを回避する。この基本テクニックは、より小さなデ
ータブロックを大きなインターコネクト・メッセージに
多重化することで、こうしたデータブロックの移動に最
適な形に拡張できる。それぞれのデータブロックは、修
正したDMAベースのテクニックを使って処理すること
が可能で、ノードの運用上の有効性を失わずにインター
コネクトの利用法を最適化できる。Second, BYNET can be extended by software to an active message interconnect-under the direction of the user (computation resource 102 and storage resource 104), BYNET allows the You can move data between them. DMA is used to move data directly to predefined memory addresses, avoiding unnecessary interrupts and internal data copying. This basic technique can be extended to optimally move such data blocks by multiplexing smaller data blocks into larger interconnect messages. Each data block can be processed using a modified DMA-based technique to optimize the use of the interconnect without losing the operational effectiveness of the node.
【0164】三番目に、BYNETは複数のファブリッ
クを提供する構成にできるため、トラフィック整形を利
用して、さらにインターコネクトを最適化できる。これ
は基本的にはBYNETソフトウェアが提供するメカニ
ズムで、特定のインターコネクトチャンネル(ファブリ
ック)を特定の種類のトラフィックに割り当てて、例え
ば、使用者の非常に多い共有チャンネルにおいて、長い
メッセージと短いメッセージのランダムな組み合わせに
よって生じる干渉の減少などを行う。トラフィック整形
はBYNETによって可能になるもので、予測されるト
ラフィックパターンのためにユーザが選択することもで
きる。Third, since BYNET can be configured to provide a plurality of fabrics, the traffic shaping can be used to further optimize the interconnect. This is basically a mechanism provided by BYNET software that assigns a specific interconnect channel (fabric) to a specific type of traffic, for example, the randomization of long and short messages on shared channels with a large number of users. To reduce interference caused by various combinations. Traffic shaping is enabled by BYNET and can also be selected by the user for expected traffic patterns.
【0165】図8は、BYNETとホスト側インターフ
ェース802の図である。BYNETホスト側インター
フェース802には、回線が作成されたときに常にチャ
ンネルプログラムを実行するプロセッサ804が含まれ
る。チャンネルプログラムは、各ノードの送信側インタ
ーフェース806と目的地インターフェース808の両
方で、このプロセッサ804が実行する。送信側インタ
ーフェース806ハードウェアは、回線の作成を制御す
るダウン・コールに従って作成されたチャンネルプログ
ラムを実行し、データを送信し、その後この回線をシャ
ットダウンする。目的地側インターフェース808ハー
ドウェアはは、データを目的地のメモリに伝達するため
にチャンネルプログラムを実行し、回線を完成させる。FIG. 8 is a diagram of the BYNET and the host-side interface 802. The BYNET host-side interface 802 includes a processor 804 that executes a channel program whenever a line is created. The channel program is executed by the processor 804 at both the transmitting interface 806 and the destination interface 808 of each node. The sending interface 806 hardware executes the channel program created according to the down call that controls the creation of the line, sends the data, and then shuts down the line. The destination interface 808 hardware executes the channel program to transfer the data to the destination memory and completes the line.
【0166】BYNETは、ネットワーク内のプロセッ
サとして稼働する計算ノード200とION212をイ
ンターコネクトするネットワークで構成される。またB
YNETは、入出力ポート814を持つ複数のスイッチ
ノード810で構成される。スイッチノード810は、
g(logbN)以上のスイッチノードステージ812
に配列される。bはスイッチノードの入出力ポートの合
計数、Nはネットワーク入出力ポート816の合計数
で、g(x)は引数xより大きな最少の整数を得るため
の切り上げ関数である。したがって、スイッチノード8
10は、任意のネットワーク入力ポート816とネット
ワーク出力ポート816の間に複数のパスを提供して、
誤り許容を拡張し、競合を減少する。さらにBYNET
は、ネットワーク全体のメッセージ伝送管理のために、
ネットワークの最高スイッチノードステージに沿った跳
ね返り面818にある複数の跳ね返り点で構成される。
跳ね返り点は、ネットワークを通じてバランスメッセー
ジをロードするスイッチノード810と、受領するプロ
セッサへメッセージを方向付けするスイッチノード81
0を、論理的に区別する。[0166] BYNET is composed of a network that interconnects the ION 212 with the computing node 200 operating as a processor in the network. Also B
The YNET includes a plurality of switch nodes 810 having input / output ports 814. The switch node 810
g (logbN) or more switch node stage 812
It is arranged in. b is the total number of input / output ports of the switch node, N is the total number of network input / output ports 816, and g (x) is a round-up function for obtaining a minimum integer larger than the argument x. Therefore, switch node 8
10 provides multiple paths between any network input port 816 and network output port 816,
Extend error tolerance and reduce contention. In addition, BYNET
Is used to manage message transmission throughout the network.
It consists of a plurality of bounce points on a bounce surface 818 along the highest switch node stage of the network.
The bounce points are switch node 810, which loads the balance message through the network, and switch node 81, which directs the message to the receiving processor.
0 is logically distinguished.
【0167】計算ノード200やION212などのプ
ロセッサは、論理的に独立した既定のプロセッサのサブ
セットで構成される1つ以上のスーパークラスタに区分
できる。プロセッサ間の通信は2地点間方式又はマルチ
キャストで行われる。マルチキャストモードの通信で
は、単一のプロセッサは他のすべてのプロセッサ又はス
ーパークラスタにメッセージを同報できる。マルチキャ
スト・コマンドは異なるスーパークラスタ内で同時に発
生できる。送信プロセッサは、転送チャンネルを通じて
すべてのプロセッサ又はプロセッサの集団に伝達される
マルチキャスト・コマンドを発信する。マルチキャスト
・メッセージは、跳ね返り面818の特定の跳ね返り点
に向けられ、スーパークラスタ内のプロセッサへの経路
が定まる。特定の跳ね返り点を通過するマルチキャスト
・メッセージを一度に一つだけにするため、これはネッ
トワークのデッドロックを防ぎ、異なるスーパークラス
タへのマルチキャスト・メッセージがお互いに干渉する
のを防止する。マルチキャスト・メッセージを受領した
プロセッサは、例えば、返信チャンネルを通じた現在の
ステータスの伝送などによって返答する。BYNETは
返答を様々な形で組み合わせる役割を果たす。Processors, such as compute node 200 and ION 212, can be partitioned into one or more superclusters that comprise a subset of predefined processors that are logically independent. Communication between the processors is performed by a point-to-point method or a multicast. In multicast mode communication, a single processor can broadcast a message to all other processors or superclusters. Multicast commands can occur simultaneously in different superclusters. The sending processor issues a multicast command that is communicated to all processors or groups of processors over the transport channel. The multicast message is directed to a specific bounce point on bounce surface 818 and is routed to the processors in the supercluster. This prevents network deadlocks and prevents multicast messages to different superclusters from interfering with each other, since only one multicast message passes through a particular bounce point at a time. The processor receiving the multicast message replies, for example, by transmitting the current status over a return channel. BYNET plays a role in combining responses in various ways.
【0168】BYNETは現在、バンド内メッセージと
バンド外メッセージという二つの基本タイプのメッセー
ジをサポートしている。BYNETバンド内メッセージ
は、目的地ホストのメモリのカーネルバッファ(又はバ
ッファ)にメッセージを伝達し、回線を完成させ、アッ
プ・コール割り込みを通知する。BYNETバンド外メ
ッセージでは、回線メッセージのヘッダ・データが、B
YNETドライバの割り込み操作子に、受領中の残りの
回線データ処理に使用するチャンネルプログラムを作成
させる。どちらのタイプのメッセージにおいても、チャ
ンネルプログラムの成功又は失敗は、BYNET返信チ
ャンネル上の小さなメッセージによって送信者に戻され
る。この返信チャンネル・メッセージは、送信者のチャ
ンネルプログラムによる回線シャットダウン作業の一部
として処理される(返信チャンネルは、BYNET回線
の定帯域幅の返信パスである)。回線がシャットダウン
された後、目的地でアップ・コール割り込みが(選択的
に)通知され、新しいメッセージの到着を知らせる。BYNET currently supports two basic types of messages: in-band messages and out-of-band messages. The BYNET in-band message conveys the message to a kernel buffer (or buffer) in the memory of the destination host, completes the line, and signals an up-call interrupt. In a BYNET out-of-band message, the header data of the line message is
Causes the interrupt operator of the YNET driver to create a channel program to be used for processing the remaining line data being received. For either type of message, the success or failure of the channel program is returned to the sender by a small message on the BYNET reply channel. This return channel message is processed as part of the line shut down operation by the sender's channel program (the return channel is the constant bandwidth return path of the BYNET line). After the line is shut down, an up call interrupt is (optionally) signaled at the destination, signaling the arrival of a new message.
【0169】BYNETバンド外メッセージの利用は、
チャンネルプログラムがまず作成され、次に実行される
のを送信側が待つため、最も望ましい構成ではない。B
YNETバンド内メッセージでは、送信者がアプリケー
ション・バッファを直接ターゲットにすることができな
いため、データのコピーが必要になる。この問題を解決
するために、本発明ではBYNETハードウェアを独自
の方法で利用している。目的地側インターフェース80
8にデータ処理に必要なチャンネルプログラムを作成さ
せる代わりに、送信インターフェース806側が送信側
と目的地側の両方のチャンネルプログラムを作成する。
送信側チャンネルプログラムは、メッセージの一部とし
て、目的地側が実行できる非常に小さなチャンネルプロ
グラムを転送する。このチャンネルプログラムには、目
的地側がターゲット・アプリケーション・スレッドの特
定の目的地バッファにデータをどのように移動するかが
記述されている。このメッセージを伝達すべき目的地の
スレッドを送信者が知っているため、このテクニックで
は、送信側がメッセージを伝達する方法と場所の両方を
制御可能で、目的地側の従来のアップ・コール処理の損
傷をほとんど避けることができる。このBYNETメッ
セージの形式は有向バンドメッセージと呼ばれる。アク
ティブメッセージ・プロセス間通信モデルで使用される
アクティブメッセージ(データと、目的地でのメッセー
ジ処理に使用する小さなメッセージ処理ルーチンを含
む)とは異なり、本発明では、BYNET I/Oプロ
セッサが単純なチャンネルプログラムを実行するBYN
ET有向バンドメッセージを使用する。アクティブメッ
セージでは普通はホストCPUがアクティブメッセージ
操作子を実行する。The use of the BYNET out-of-band message is as follows.
This is not the most desirable configuration because the sender waits for the channel program to be created first and then executed. B
For YNET in-band messages, a copy of the data is required because the sender cannot directly target the application buffer. In order to solve this problem, the present invention utilizes BYNET hardware in a unique way. Destination side interface 80
8, the transmission interface 806 creates channel programs on both the transmission side and the destination side instead of causing the transmission interface 806 to create channel programs necessary for data processing.
The transmitting channel program transmits, as part of the message, a very small channel program that can be executed by the destination. The channel program describes how the destination moves data to a specific destination buffer of the target application thread. Because the sender knows the destination thread to which this message should be delivered, this technique allows the sender to control both how and where the message is delivered, and the traditional up-call handling of the destination. Damage can be almost avoided. This format of the BYNET message is called a directed band message. Unlike the active message used in the active message-interprocess communication model (which includes data and small message processing routines used to process messages at the destination), the present invention uses a BYNET I / O processor to provide a simple channel. BYN to run the program
Use the ET directed band message. In an active message, the host CPU normally executes an active message operator.
【0170】返信チャンネルの利用により、送信側イン
ターフェースは、メッセージ伝達完了を知らせるための
従来の割り込み方法を抑止できる。バンド外及び有向バ
ンドメッセージの両方において、送信側の成功の表示は
メッセージが目的地のメモリに確かに伝達されたことの
みを示す。By using the reply channel, the transmitting interface can suppress the conventional interrupt method for notifying the completion of message transmission. In both out-of-band and directed-band messages, the sender's indication of success only indicates that the message was successfully delivered to the destination memory.
【0171】これは目的地ノードのメモリスペースにメ
ッセージが確かに移動したことを保証するが、目的地ア
プリケーションによるメッセージの処理は保証しない。
例えば、目的地のノードが機能のあるメモリシステムを
持っていても、目的地のアプリケーション・スレッドが
メッセージの処理を恒久的に妨げる可能性のある異常を
持っているかもしれない。本発明では、メッセージの確
実な処理を行うために、メッセージ処理の異常を検知し
修正する、独立したいくつかの方法を採用している。本
発明の通信プロトコルに関して、送信側でのメッセージ
消失の検知には時間切れが利用されている。必要に応じ
て再送信が行われ、ソフトウェアやハードウェアの異常
が検知された場合は復旧作業が開始される。This guarantees that the message has certainly moved to the memory space of the destination node, but does not guarantee the processing of the message by the destination application.
For example, even though the destination node has a functional memory system, the destination application thread may have an anomaly that can permanently prevent the processing of the message. The present invention employs several independent methods for detecting and correcting message processing anomalies to ensure message processing. Regarding the communication protocol of the present invention, time-out is used for detecting message loss on the transmission side. Retransmission is performed as necessary, and when an abnormality in software or hardware is detected, recovery work is started.
【0172】本発明では、有向バンドメッセージを利用
しながら、目的地の特定のターゲットへのメッセージ伝
達を可能にし、正しいターゲット・アプリケーション・
スレッド・バッファにメッセージを送信するために十分
なデータを送信側に与えるメカニズムを可能にしなくて
はいけない。本発明では、チケット・ベース認証スキム
によって、これを実現している。チケットは偽造できな
いデータ構造で、所有者に権利を与える。本質的には、
チケットは特定のリソースを使用する一度限りの許可又
は権利である。本発明では、ION212は、チケット
の分配によって、計算ノード200へのサービスの分配
を制御できる。加えて、チケットは、送信者ベースのフ
ロー制御モデルを導入するための必要条件である特定の
ターゲットの指定を行う。According to the present invention, it is possible to transmit a message to a specific target at a destination while using a directed band message, so that a correct target application
A mechanism must be provided to give the sender enough data to send the message to the thread buffer. In the present invention, this is achieved by a ticket-based authentication scheme. A ticket is a data structure that cannot be forged and grants rights to the owner. In essence,
A ticket is a one-time permission or right to use a particular resource. In the present invention, the ION 212 can control the distribution of services to the computing nodes 200 by the distribution of tickets. In addition, tickets provide for the specification of specific targets that are a prerequisite for implementing a sender-based flow control model.
【0173】D. 「プット・イット・ゼア」(PI
T)プロトコル 1. 概要 PITプロトコルは、BYNET有向バンドメッセージ
・プロトコルを使用したアクティブメッセージによって
チケットとデータ・ペイロードを送信するチケット・ベ
ース認証スキムである。PITプロトコルは、チケット
・ベース認証、送信者ベース・アドレス、デビット/ク
レジット・フロー制御、ゼロメモリコピー、アクティブ
メッセージを独自に組み合わせたものである。D. "Put It There" (PI
T) Protocol Overview The PIT protocol is a ticket-based authentication scheme that sends tickets and data payloads through active messages using the BYNET directed band message protocol. The PIT protocol is a unique combination of ticket-based authentication, sender-based address, debit / credit flow control, zero memory copy, and active messages.
【0174】2. PITメッセージ 図9は、PITヘッダ902とそれに続くペイロード・
データ904を含む、PITメッセージ又はパケット9
01の基本的な特徴を示す図である。PITヘッダ90
2は、PIT IDで構成されており、これは抽象化し
たターゲット・データバッファを表し、指定された特定
のサイズのバッファにアクセスする権利を意味する期限
付きチケットである。PIT IDを所有する要素は、
特定のバッファを使用する権利を持つ要素であり、PI
T ID906はPITバッファを使用したときに放棄
されなくてはいけない。目的地がPITメッセージを受
領すると、PITヘッダのPIT ID906は、DM
A作業によってペイロードが運ばれるBYNETハード
ウェアに対して、ターゲットバッファの指定を行う。[0174] 2. PIT Message FIG. 9 shows a PIT header 902 followed by a payload
PIT message or packet 9 containing data 904
It is a figure showing the basic feature of No. 01. PIT header 90
2 is a PIT ID, which represents an abstracted target data buffer, and is a time-limited ticket indicating a right to access a buffer of a specified specific size. The element that owns the PIT ID is
An element that has the right to use a particular buffer, PI
T ID 906 must be discarded when using the PIT buffer. When the destination receives the PIT message, the PIT ID 906 of the PIT header indicates the DM
The target buffer is specified for the BYNET hardware to which the payload is carried by the operation A.
【0175】PITプロトコルでのフロー制御は、送信
者ベース・アドレスを使用したデビット/クレジット・
モデルである。PITメッセージの送信は、送信者のフ
ロー制御デビットと目的地のフロー制御クレジットを意
味する。別の言い方をすれば、デバイスがPIT ID
906をスレッドに送信した場合、スレッドにはそのア
ドレススペースのPITバッファがクレジットされる。
デバイスがPIT ID906を送信者に返信した場
合、デバイスは権利の放棄又はPIT ID906が指
定するバッファの解放を行っている。デバイスがPIT
ID906によって抽象化された目的地のバッファに
メッセージを送ると、デバイスはPITバッファに対す
る権利も放棄する。デバイスがPIT ID906を受
領すると、(そのPIT ID906が、デバイスの返
信しているPIT ID906ではない限り)それは送
信者のアドレススペースにあるPITバッファのクレジ
ットになる。[0175] Flow control in the PIT protocol is based on debit / credit credit using the sender base address.
Model. The transmission of the PIT message implies the flow control debit of the sender and the flow control credit of the destination. In other words, the device has a PIT ID
If 906 is sent to the thread, the thread will be credited with the PIT buffer for that address space.
If the device returns a PIT ID 906 to the sender, the device has either relinquished the right or released the buffer specified by the PIT ID 906. Device is PIT
Upon sending a message to the destination buffer abstracted by ID 906, the device also relinquishes its rights to the PIT buffer. When the device receives the PIT ID 906, it becomes a credit in the PIT buffer in the sender's address space (unless that PIT ID 906 is the device's returning PIT ID 906).
【0176】ヘッダ902の最上部は、PITパケット
901を処理するBYNETチャンネルプログラム90
8(送信者側と目的地側)である。その下は、PIT
IDチケットを伝送するための二つのフィールド、つま
りクレジット・フィールド910とデビット・フィール
ド912である。デビット・フィールド912は、チャ
ンネルプログラムを介して目的地ネットワークインター
フェースによりペイロード・データが転送されるPIT
ID906を含んでいる。これがデビット・フィール
ドと呼ばれるのは、PIT ID906は送信者のアプ
リケーション・スレッドにとって借りになるからである
(目的地のスレッドでは貸し)。クレジット・フィール
ド910は、送信者スレッドが目的地スレッドに対して
PITバッファを転送する、又は貸す場所である。クレ
ジット・フィールド910は通常、送信者スレッドが返
信メッセージの送信を期待するPIT ID906を有
している。このクレジットPITの利用法は、SASE
(自己アドレス・スタンプ・エンベロープ)PITと呼
ばれる。コマンド・フィールド914は、ターゲットが
ペイロード・データに実行する作業を記述している(例
えば、ディスク読み出し又は書き込みコマンド)。引数
フィールド916は、コマンドに関するデータである
(例えば、読み出し又は書き込み作業を行うディスクの
ディスク及びブロック番号)。シーケンス番号918
は、各ソース及び目的地ノードのペアに固有の単調増加
整数である(ノードの各ペアは、方向ごとに一つのシー
ケンス番号を持っている。)。長さフィールド920は
PITペイロード・データの長さをバイトで特定する。
フラグ・フィールド922は、PITメッセージの処理
を修正する様々なフラグを含んでいる。一例として、メ
ッセージ複製フラグがある。これは、失われた可能性の
あるメッセージの再送信を行い、イベントの二回以上の
処理を防ぐときに使用される。At the top of the header 902 is a BYNET channel program 90 for processing the PIT packet 901.
8 (sender side and destination side). Below that is PIT
There are two fields for transmitting an ID ticket, a credit field 910 and a debit field 912. Debit field 912 contains the PIT where the payload data is transferred by the destination network interface via the channel program.
ID 906 is included. This is called a debit field because the PIT ID 906 is borrowed by the sender's application thread (lent to the destination thread). Credit field 910 is where the sender thread transfers or lends the PIT buffer to the destination thread. The credit field 910 typically has a PIT ID 906 that the sender thread expects to send a reply message. The usage of this credit PIT is SASE
(Self address stamp envelope) called PIT. Command field 914 describes the work that the target performs on the payload data (eg, a disk read or write command). The argument field 916 is data related to the command (for example, the disk and block number of the disk that performs the read or write operation). Sequence number 918
Is a monotonically increasing integer that is unique to each source and destination node pair (each pair of nodes has one sequence number for each direction). Length field 920 specifies the length of the PIT payload data in bytes.
Flags field 922 contains various flags that modify the processing of the PIT message. One example is a message duplication flag. This is used to retransmit potentially lost messages and prevent more than one processing of the event.
【0177】システムが最初に起動されたとき、どのノ
ードも他のノードのためのPITID906を持ってい
ない。BYNETソフトウェアドライバは、PITの第
一のオープン・プロトコルが完了するまで、すべての有
向バンドメッセージの伝達を防止する。PIT ID9
06の分配は、計算ノード200のアプリケーション・
スレッドが、ION212上の任意の仮想ディスクデバ
イスを最初にオープンにした際に開始される。第一のオ
ープン中、ION212と計算ノード200は交渉の段
階に入り、ここで作業パラメータの交換が行われる。第
一のオープン・プロトコルの一部はPIT ID906
の交換である。PIT ID906は、二つ以上のバッ
ファを、送信者の収集DMA及び目的地の分散DMAの
両方をサポートするインターフェースとして指定でき
る。このアプリケーションは、他のすべてのノードにあ
る任意のアプリケーションに対して、PIT ID90
6の配布を自由に行える。When the system is first started, no node has a PITID 906 for another node. The BYNET software driver prevents the transmission of all directed band messages until the PIT's first open protocol is completed. PIT ID9
06 is distributed to the application
The thread is started when a virtual disk device on the ION 212 is first opened. During the first opening, the ION 212 and the compute node 200 enter a negotiation phase, where the exchange of work parameters takes place. Part of the first open protocol is PIT ID906
Is an exchange. The PIT ID 906 can specify two or more buffers as an interface that supports both the sender's collection DMA and the destination's distributed DMA. This application provides a PIT ID 90 for any application on all other nodes.
6 can be freely distributed.
【0178】この計算ノード200とION212が交
換するPITバッファのサイズと数は、調整可能な値で
ある。デビット及びクレジットPIT ID906(デ
ビット・フィールド912とクレジット・フィールド9
10にあるもの)は、システムのフロー制御モデルの基
盤を形成する。送信者は目的地に対して、クレジットさ
れたPIT ID906と同じ数しかメッセージを送信
できない。これによって、特定のホストが送信できるメ
ッセージの数は制限される。また、各ノードは自分のP
IT ID906プールを持っており、各送信者が消費
できるのは多くとも割り当てられたPIT ID906
のみであるという点で公平性を確保できる。The size and number of the PIT buffers exchanged between the computation node 200 and the ION 212 are adjustable values. Debit and Credit PIT ID 906 (Debit field 912 and Credit field 9
10) form the basis of a flow control model of the system. The sender can send only as many messages to the destination as the number of credited PIT IDs 906. This limits the number of messages that a particular host can send. Each node has its own P
It has an IT ID 906 pool and each sender can consume at most the assigned PIT ID 906
Only in that it is fair.
【0179】ION212は計算ノード202に対して
発行したPITチケットのプールを管理する。計算ノー
ド202に対するPIT ID906の初期割り当て
は、第一のオープン・プロトコル中に行われる。分配さ
れるPIT ID906の数は、ION212を同じ時
期に利用する同時稼働の計算ノード200の数の予測と
ION212内のメモリリソースに基づいている。これ
は予測に過ぎないため、PITプールのサイズも稼働中
にION212によって動的に調整される。このPIT
リソースの再配布は、複数の計算ノード200からの要
求に対する公平な対応を確保するのに必要である。The ION 212 manages a pool of PIT tickets issued to the computing node 202. The initial assignment of PIT ID 906 to compute node 202 occurs during a first open protocol. The number of distributed PIT IDs 906 is based on a prediction of the number of concurrently running compute nodes 200 that will use the ION 212 at the same time and the memory resources in the ION 212. Since this is only a prediction, the size of the PIT pool is also dynamically adjusted by the ION 212 during operation. This PIT
The redistribution of resources is necessary to ensure a fair response to requests from a plurality of computing nodes 200.
【0180】稼働計算ノード200へのPIT再割り当
ては以下のように行われる。計算ノード200は絶えず
I/O要求を行っているため、完了したI/Oメッセー
ジのPITクレジットのフローを制御することで、PI
Tリソースが再配布される。適切なレベルになるまで、
ION212の完了によるPITクレジットは送られな
い(計算ノード200のPITプールが減る)。すでに
PIT割り当てを持っているが計算ノード200が稼働
していない(そしてリソースが動かない)場合、状況は
より複雑になる。この場合、ION212は稼働してい
ない計算ノード200それぞれにPIT(又はPIT
IDのリスト)を無効にするメッセージを送ることがで
きる。稼働していない計算ノード200が反応しない場
合、ION212はそのノードのPIT IDをすべて
無効にすることができ、その後で他の計算ノード200
にPIT IDを再分配できる。稼働していない計算ノ
ード200が再割り当てされたPITを使おうとする
と、その計算ノード200は第一のオープン・プロトコ
ルに強制的に戻される。The PIT reassignment to the operation calculation node 200 is performed as follows. Since the computing node 200 is constantly making I / O requests, by controlling the flow of PIT credits for completed I / O messages,
T resources are redistributed. Until you reach the right level
No PIT credit is sent due to the completion of the ION 212 (the PIT pool of the compute node 200 is reduced). The situation is more complicated if you already have a PIT assignment but the compute node 200 is not running (and the resources are not moving). In this case, the ION 212 assigns a PIT (or PIT) to each of the inactive compute nodes 200.
ID list) can be sent. If an inactive compute node 200 does not respond, the ION 212 can invalidate all of its PIT IDs before the other compute nodes 200
PIT ID can be redistributed. If a non-working compute node 200 attempts to use the reassigned PIT, that compute node 200 is forced back to the first open protocol.
【0181】計算ノード200へのPIT割り当ての増
加は以下のように行われる。PIT割り当てメッセージ
を使用して、新しく割り当てられたPIT IDを任意
の計算ノードに送ることができる。代わりのテクニック
では、I/O完了メッセージごとに二つ以上のPITク
レジットを送信する。The increase in PIT allocation to the computing node 200 is performed as follows. The PIT Assignment message can be used to send the newly assigned PIT ID to any compute node. An alternative technique sends more than one PIT credit per I / O completion message.
【0182】3. PITプロトコルの働き−ディスク
の読み出しと書き込みPITプロトコルを説明するため
に、計算ノード200がストレージディスク224のI
ON212からの読み出し作業を要求した場合ついて論
じる。ここでは、第一のオープンはすでに行われ、計算
ノード200及びION212の両方に十分な数の自由
なPITバッファが存在すると仮定する。アプリケーシ
ョン・スレッドは読み出しシステムコールを行い、ディ
スクデータを転送するバッファのアドレスを、計算ノー
ドの高レベルSCSIドライバ(CNシステムドライ
バ)に渡す。CNシステムドライバは、この要求を含む
PITパケットを作成する(仮想ディスク名、ブロック
番号、データの長さが含まれる)。CNシステムドライ
バの上半分が、デビット及びクレジットPIT IDフ
ィールド910、912に情報を与える。このデビット
PITフィールド912は、この読み出し要求が送られ
る目的地ION212のPIT ID906である。こ
れは読み出し要求であるため、ION212は、I/O
完了パケットを作成する時に、アプリケーションのバッ
ファ(読み出しシステムコールの一部として提供された
もの)を指定する方法が必要になる。PITパケットは
送信者ベース・アドレスを利用しているため、PIT
ID906を持っているならば、ION212だけがこ
のアプリケーション・バッファをアドレスできる。アプ
リケーション・バッファは通常のPITプールの一部で
はないため、バッファはメモリに固定され、バッファの
ためにPIT ID906が作成される。読み出し要求
には、ディスク作業からの返信ステータスも必要なた
め、返信ステータスを含むためにPITの分散バッファ
が作成される。読み出しPITパケットの一部として、
SASE PITがクレジット・フィールドに送られ
る。PITパケットは出力待ち行列に置かれる。PIT
パケットを送るときに、BYNETインターフェース8
02は、これをDMA作業によって送信者側から移動し、
インターコネクト・ファブリック106を通じて転送す
る。目的地側のBYNETインターフェース808で
は、PITパケットが到着すると、BYNETチャンネ
ルプロセッサ804によるPITチャンネルプログラム
の実行が開始される。ホスト側インターフェース802
のBYNETチャンネルプロセッサ804は、デビット
PIT ID906を抽出し、ION212上に端点を
置く。チャンネルプログラムはバッファ・アドレスを抽
出し、インターフェースDMAエンジンがペイロード・
データをPITバッファに直接移動するのをプログラム
する−こうして、PITプロトコルがゼロデータ・コピ
ーの意味を提供できるようにする。BYNETインター
フェース802はION212上の受領アプリケーショ
ンに割り込みを通知する。計算ノード200では割り込
みは起こらない。返信チャンネルメッセージが転送の失
敗を示すと、失敗の理由に応じて、I/Oが再試行され
る。数回の試行後、IONエラー状況が入力され(本文
書中のION212復旧及びフェールオーバ作業の詳細
を参照)、計算ノード200はダイポールのバディIO
N214に要求を処理させようと試みる。メッセージが
確実に目的地ノードのメモリに伝達されると、ホスト側
は再送信期限を(I/Oサービス時間の最悪のケースよ
り長く)設定し、ION212のメッセージ処理成功を
確実にする。このタイマが時間切れになると、計算ノー
ド200はION212にPITメッセージを再送信す
る。I/Oがまだ進行中の場合は、複製した要求は単純
に却下され、そうでない場合は再送信した要求は通常通
り処理される。選択的に、プロトコルは、期限切れタイ
マをリセットし、I/Oの失敗によるアプリケーション
の被害を避けるために、再送信した要求の明確な通知を
求めることもできる。[0182] 3. How the PIT Protocol Works-Read and Write Disks To illustrate the PIT protocol, the compute node 200
The case where a read operation from ON 212 is requested will be discussed. Here, it is assumed that the first open has already been performed and that there is a sufficient number of free PIT buffers in both compute node 200 and ION 212. The application thread makes a read system call and passes the address of the buffer for transferring disk data to the high-level SCSI driver (CN system driver) of the compute node. The CN system driver creates a PIT packet containing this request (including the virtual disk name, block number, and data length). The upper half of the CN system driver provides information in the debit and credit PIT ID fields 910, 912. This debit PIT field 912 is the PIT ID 906 of the destination ION 212 to which this read request is sent. Since this is a read request, the ION 212
When creating the completion packet, you need a way to specify the application's buffer (provided as part of the read system call). Because PIT packets use the sender base address, PIT
If it has the ID 906, only the ION 212 can address this application buffer. Since the application buffer is not part of the normal PIT pool, the buffer is fixed in memory and a PIT ID 906 is created for the buffer. Since a read request also requires a reply status from the disk operation, a PIT distributed buffer is created to include the reply status. As part of the read PIT packet,
SASE PIT is sent to the credit field. PIT packets are placed in an output queue. PIT
When sending a packet, the BYNET interface 8
02 moves this from the sender side by DMA work,
Transfer through interconnect fabric 106. When the PIT packet arrives at the BYNET interface 808 on the destination side, the execution of the PIT channel program by the BYNET channel processor 804 is started. Host side interface 802
The BYNET channel processor 804 extracts the debit PIT ID 906 and places the endpoint on the ION 212. The channel program extracts the buffer address and the interface DMA engine
Program moving data directly to the PIT buffer-thus enabling the PIT protocol to provide zero data copy semantics. The BYNET interface 802 notifies the receiving application on the ION 212 of the interruption. No interruption occurs in the computing node 200. If the reply channel message indicates a transfer failure, the I / O will be retried depending on the reason for the failure. After several attempts, an ION error status is entered (see ION 212 Recovery and Failover Work Details in this document) and compute node 200 enters the dipole buddy IO.
Attempt to have N214 handle the request. When the message is reliably delivered to the destination node's memory, the host sets a retransmission deadline (longer than the worst case I / O service time) to ensure that the ION 212 has successfully processed the message. When this timer expires, compute node 200 retransmits the PIT message to ION 212. If the I / O is still in progress, the duplicated request is simply rejected; otherwise, the retransmitted request is processed normally. Optionally, the protocol may reset the expiration timer and require explicit notification of the retransmitted request to avoid application damage due to I / O failure.
【0183】図10は、ION212機能モジュールの
ブロック図である。ION212及び214への入力
は、データライン1002及び1004と制御ライン1
006である。ION212の各モジュールは、制御ラ
イン1006と連絡する制御モジュール1008で構成
される。制御モジュール1008はデータライン100
2からコマンドを受け取り、モジュール制御機能を提供
する。システム機能モジュール1010は本文書で説明
するION機能を実施する。ION212及び214
は、ファブリックモジュール1020、キャッシュモジ
ュール1014、データ復元モジュール1016、スト
レージモジュール1018で構成される。これら各モジ
ュールは、制御モジュール、データライン1002及び
1004でのデータの挿入とレトリーブを行う仕事イン
ジェクタ1020、データの通過を禁止するデータフェ
ンス1022で構成される。FIG. 10 is a block diagram of the ION 212 function module. The inputs to the IONs 212 and 214 are data lines 1002 and 1004 and control line 1
006. Each module of the ION 212 comprises a control module 1008 that communicates with a control line 1006. The control module 1008 includes the data line 100
2 and provides a module control function. System function module 1010 implements the ION functions described in this document. ION 212 and 214
Is composed of a fabric module 1020, a cache module 1014, a data restoration module 1016, and a storage module 1018. Each of these modules comprises a control module, a work injector 1020 for inserting and retrieving data on the data lines 1002 and 1004, and a data fence 1022 for inhibiting the passage of data.
【0184】PIT読み出し要求は、ION212に送
られた後、IONキャッシュモジュール1014の仕事
インジェクタに転送される。仕事インジェクタは要求を
IONキャッシュモジュール1014に挿入し、ION
キャッシュモジュールはデータがキャッシュされるかデ
ータのバッファが割り当てられた場合、データを直接戻
し、要求をIONストレージモジュール1018に渡
す。IONストレージモジュール1018は、この要求
を一つ(又は複数)の物理ディスク要求にトランスレー
トし、要求を該当するディスクドライバ224に送る。
ディスク読み出し作業が完了すると、ディスクコントロ
ーラは割り込みを通知し、ディスク読み出しの完了を知
らせる。ION仕事インジェクタはI/O完了PITパ
ケットを作成する。デビットPIT ID(デビット・
フィールド912に格納)は、読み出し要求のSASE
PIT(アプリケーションがディスクデータを置きた
い場所)からのクレジットPIT ID(クレジット・
フィールド910に格納)である。クレジットPIT
IDは、計算ノード200がこの要求を送ったPITI
Dと同じか、バッファがフリーでない場合は置き換えた
PIT IDである。このクレジットPITは計算ノー
ドに、未来の要求を送るためのクレジットを渡す(この
現在のPIT要求が完了したばかりなので、計算ノード
200のION212に対する待ち行列は深さが1つ増
える)。PITを処理した後、ION212がPITク
レジットを戻さない理由は三つある。一つは、ION2
12が計算ノード200からの未処理待ち行列の数を減
らしたい。二つ目の理由は、ION212がPITクレ
ジットを別の計算ノード200に再分配したい。三つ目
の理由は、単一のPITパケットに複数の要求が含まれ
ている(本文書のスーパーPITパケットの解説を参
照)。コマンドフィールド914は読み出し完了メッセ
ージで、引数はディスクドライブ読み出し作業からの返
信コードである。このPITパケットはBYNETイン
ターフェース702への待ち行列に入れられ、計算ノー
ド200に送り返される。このときBYNETハードウ
ェアは、このPITパケットをDMAによって計算ノー
ド200に移動する。これにより、計算ノード200B
YNETチャンネルプログラムによるデビットPIT
ID912の抽出が始まり、ターゲットPITバッファ
(ここではアプリケーションの固定されたバッファ)へ
のDMAが開始する前にこれを確認する。DMAが完了する
と、計算ノードBYNETハードウェアは割り込みを開
始し、アプリケーションにディスク読み出しが完了した
ことを知らせる。ION212では、BYNETドライ
バがバッファをキャッシュシステムに戻す。After the PIT read request is sent to the ION 212, it is transferred to the work injector of the ION cache module 1014. The work injector inserts the request into the ION cache module 1014 and
If the data is cached or a buffer of data is allocated, the cache module returns the data directly and passes the request to the ION storage module 1018. The ION storage module 1018 translates this request into one (or more) physical disk requests and sends the requests to the appropriate disk driver 224.
When the disk reading operation is completed, the disk controller notifies the interruption and notifies the completion of the disk reading. The ION work injector creates an I / O completion PIT packet. Debit PIT ID (Debit
Field 912) is the read request SASE
Credit from PIT (where the application wants to put the disk data) PIT ID (credit
(Stored in field 910). Credit PIT
ID is the PITI from which the compute node 200 sent this request.
Same as D, or replaced PIT ID if the buffer is not free. The credit PIT passes the credit to the compute node to send future requests (the queue for compute node 200 to ION 212 is increased by one since the current PIT request has just been completed). After processing a PIT, the ION 212 does not return PIT credits for three reasons. One is ION2
12 wants to reduce the number of outstanding queues from compute node 200. The second reason is that the ION 212 wants to redistribute the PIT credit to another compute node 200. The third reason is that a single PIT packet contains multiple requests (see the description of the super PIT packet in this document). The command field 914 is a read completion message, and the argument is a return code from the disk drive read operation. This PIT packet is queued to the BYNET interface 702 and sent back to the compute node 200. At this time, the BYNET hardware moves the PIT packet to the computing node 200 by DMA. Thereby, the calculation node 200B
Debit PIT by YNET channel program
Extraction of ID 912 begins and confirms this before DMA to the target PIT buffer (here, the application's fixed buffer) starts. When the DMA is complete, the compute node BYNET hardware initiates an interrupt to notify the application that the disk read is complete. In the ION 212, the BYNET driver returns the buffer to the cache system.
【0185】書き込み要求の作業も、読み出し作業と同
じように行われる。アプリケーションが計算ノードの高
レベルドライバを呼び出し、データ、仮想ディスク名、
ディスクブロック番号、データの長さを含むアドレスを
渡す。計算ノードの高レベルドライバは、目的地ION
212のPIT ID906を選択し、このデータを使
ってPIT書き込み要求を作成する。SASE PIT
には、ION212からの書き込み作業の返信ステータ
スのみが含まれる。ION212では、PITパケット
が到着すると割り込みが通知される。この要求は、PI
T読み出し作業と同じ形で処理される。書き込み要求は
キャッシュルーチンに渡され、これがその後データをデ
ィスクに書き込む。ディスク書き込みが完了すると(又
はデータがIONノード212及び214の書き込みキ
ャッシュに安全にストアされると)、I/O完了メッセ
ージが計算ノード200に送り返される。ION212
が作動中の書き込みキャッシュを動かしているときは、
要求の送られたION212ではなく、ダイポールのも
う一方のION214が、I/O完了メッセージを戻
す。これについては、本文書のバミューダトライアング
ルプロトコルに関する場所でさらに説明する。The operation of the write request is performed in the same manner as the read operation. The application calls the compute node's high-level driver and retrieves data, virtual disk names,
Pass the address including the disk block number and data length. The high-level driver of the compute node is the destination ION
The PIT ID 906 of 212 is selected, and a PIT write request is created using this data. SASE PIT
Contains only the return status of the write operation from the ION 212. The ION 212 is notified of the interruption when the PIT packet arrives. This request is
It is processed in the same manner as the T read operation. The write request is passed to a cache routine, which then writes the data to disk. Upon completion of the disk write (or when the data is securely stored in the write caches of ION nodes 212 and 214), an I / O completion message is sent back to compute node 200. ION212
Is running a working write cache,
The other ION 214 of the dipole, not the ION 212 to which the request was sent, returns an I / O completion message. This is further explained in this document at the location of the Bermuda Triangle Protocol.
【0186】4. 失効PIT IDと復旧問題 第一のオープン中のPIT IDの交換は、ハードウェ
ア又はソフトウェアの以上によって生じた失効PIT
ID906を無効にするメカニズムである。ION21
2と計算ノード200がPIT IDを交換し、突然I
ON212がクラッシュした状況を考える。PIT I
D906はメモリに固定されたターゲットバッファを意
味しており、無効化しない限り、リブートしたION2
12又は計算ノード200の未処理PIT ID906
は、有効でなくなった又は失効したPIT IDの影響
で、ソフトウェアの完全性に大きな問題を引き起こす可
能性がある。BYNETハードウェアと有向バンドメッ
セージは、失効PIT ID906を無効化する基本メ
カニズムの提供をサポートする。[0186] 4. Revoked PIT ID and Recovery Issues The first open PIT ID exchange is the revoked PIT caused by hardware or software above.
This is a mechanism for invalidating the ID 906. ION21
2 and compute node 200 exchange PIT IDs,
Consider a situation in which ON 212 has crashed. PIT I
D906 means a target buffer fixed in the memory, and unless invalidated, ION2 that has been rebooted
12 or the unprocessed PIT ID 906 of the compute node 200
Can cause major problems with software integrity due to invalid or expired PIT IDs. BYNET hardware and directed band messages support providing a basic mechanism for revoking the expired PIT ID 906.
【0187】第一のオープンプロトコルの終わりに、両
者は計算ノード高レベルSCSIドライバに、PIT
ID906が分配されるホストのリストを渡さなくては
いけない。別の言い方をすれば、ホストは計算ノード高
レベルSCSIドライバに、PITパケットを受け取る
ホストのリストを渡している。計算ノード高レベルドラ
イバは、このリストを利用して、有向バンドメッセージ
の配布を管理する表を作成する。この表では、有向バン
ドメッセージを相互に送ることのできるION212ペ
アを指定する(この表では片道PITメッセージフロー
も指定する)。計算ノード高レベルドライバは、この表
をBYNET構成プロセスの一部として、ホスト内部で
(ドライバ専用データとして)保存する。このリストか
らのホストの追加や減少は、計算ノード高レベルドライ
バへの簡単な通知メッセージにより、PITプロトコル
が常に行える。ノードの故障、シャットダウン、無応答
が生じた場合、BYNETハードウェアはこれを検知
し、ファブリック上の他のすべてのノードに通知する。
キャッシュノード上のBYNETホストドライバはこの
通知に反応し、有向バンドホスト表から、このホストへ
の参照をすべて削除する。このアクションによって、そ
のホストが他のホストに分配したPIT ID906を
すべて無効化する。これは、以前に配布されたPITパ
ケットからノードを保護する鍵である。そのホスト上の
計算ノード高レベルドライバが再構成されるまで、BY
NETはそのホストにすべてのメッセージを届けない。
第一の再構成が行われた後も、ローカルPITプロトコ
ルが知らせるまで、BYNETはこの新たに再起動又は
再構成されたホストへの有向バンドメッセージの送信を
まったく認めない。これにより、第一のオープン・プロ
トコルによって適切なPITプロトコルの初期化が行わ
れるまで、失効PITパケットの配布から保護すること
ができる。At the end of the first open protocol, both have added the PIT to the compute node high-level SCSI driver.
A list of hosts to which ID 906 is to be distributed must be passed. Stated another way, the host has passed to the compute node high level SCSI driver a list of hosts that will receive the PIT packet. The compute node high-level driver uses this list to create a table that manages the distribution of directed band messages. This table specifies ION 212 pairs that can send directed band messages to each other (this table also specifies one-way PIT message flows). The compute node high level driver stores this table inside the host (as driver specific data) as part of the BYNET configuration process. Adding or removing hosts from this list is always done by the PIT protocol with a simple notification message to the compute node high level driver. If a node fails, shuts down, or becomes unresponsive, BYNET hardware detects this and notifies all other nodes on the fabric.
The BYNET host driver on the cache node responds to this notification and removes all references to this host from the directed band host table. This action invalidates all PIT IDs 906 that the host has distributed to other hosts. This is the key that protects the node from previously distributed PIT packets. BY until the compute node high-level driver on that host is reconfigured.
NET does not deliver all messages to the host.
After the first reconfiguration has taken place, BYNET will not allow any directed band messages to be sent to this newly restarted or reconfigured host until the local PIT protocol signals. As a result, the distribution of the invalid PIT packet can be protected until the appropriate PIT protocol is initialized by the first open protocol.
【0188】ホストが有向バンドメッセージを(無効化
されたPIT ID906を使用する)無効ホストに送
ろうとすると、送信側の計算ノード高レベルドライバ
は、送信者へのエラー状態と共にこのメッセージを拒否
する。この拒否により、二つのノード間で第一のオープ
ン・ハンドシェークが開始される。第一のオープン・ハ
ンドシェークが完了した後で、(計算ノード200から
見て)未処理になっているION212のI/O作業が
再送信されることになる。しかし、これがウォーム・リ
スタートでない限り、ION212は長い間ダウンして
いる可能性が高く、未処理のI/O作業はフェールオー
バ処理の一部として再起動され、ダイポール内の他のI
ON212に送られると思われる(詳細はION失敗処
理のセクションを参照)。クラッシュしたノードが計算
ノード200の場合、第一のオープンをすでに行った計
算ノード200の第一のオープン要求がION212に
予期せず到着すると、これにより、PIT ID復旧作
業が開始される。ION212は計算ノード200にク
レジットされたPIT ID906をすべて無効化する
(又は実際は古いものの再発行のみを行う)。計算ノー
ド200の未処理のI/O作業はすべて完了できる(た
だしノードを再起動する時間が極度に短くない限り、こ
のイベントが起こる可能性は低い)。使用しているSA
SE PITは失効し、完了メッセージは拒否されるこ
とになる(そして、I/O要求を発行したアプリケーシ
ョンスレッドは存在しなくなる)。If the host attempts to send a directed band message to an invalid host (using invalidated PIT ID 906), the sending compute node high level driver will reject this message with an error condition to the sender. . This rejection initiates a first open handshake between the two nodes. After the first open handshake is completed, any outstanding ION 212 I / O work (as viewed from compute node 200) will be retransmitted. However, unless this is a warm restart, the ION 212 is likely to be down for a long time, and outstanding I / O work will be restarted as part of the failover process and other I / Os in the dipole will be restarted.
It will be sent to ON 212 (see ION failure handling section for details). When the crashed node is the computation node 200, when the first open request of the computation node 200 that has already performed the first open arrives at the ION 212 unexpectedly, the PIT ID recovery operation is started. The ION 212 invalidates all PIT IDs 906 credited to the computing node 200 (or actually only reissues old ones). All outstanding I / O work for compute node 200 can be completed (unless the time to restart the node is extremely short, so this event is unlikely to occur). SA used
The SE PIT expires and the completion message will be rejected (and no application thread will have issued the I / O request).
【0189】5. スーパーPIT(SPIT)−小I
/O性能の改善 PITプロトコルは通常のSCSIコマンドを利用する
ことができる。本発明の中核は通信ネットワークであ
り、ストレージ・ネットワークではないため、システム
はネットワーク・プロトコルを使用して、ストレージ・
モデルが可能にする性能を改善する。アップ・コールを
扱う際のオーバーヘッド処理は、小I/O要求に支配さ
れる仕事量にとって性能の壁を意味する。小I/O性能
を改善する方法はいくつか存在している。一つは、割り
込み処理コードのパスの長さを改善することである。二
つ目は、デバイスドライバで採用されているものと同様
のテクニックを利用して、複数の割り込みのベクトルを
単一の割り込み操作子の呼び出しに縮小することであ
る。三つ目は、個々のI/O作業の数を減らし、単一の
要求にクラスタ化する(コンボイする)ことである。ソ
ース及び目的地の物理リンクのMTUサイズの違いの影
響で、出入りするデータフローを再パッケージ化する必
要のあるノードには、データが集まる傾向がある。この
問題は、送信側と目的地側ネットワークの速度の不一致
(特に目的地ネットワークが遅くなる)により、さらに
悪化する。こうしたノードは、絶えず目的地からのフロ
ー制御の対象になる。その結果、バーストによりルータ
から流出するデータが生じる。これはデータ・コンボイ
と呼ばれる。[0189] 5. Super PIT (SPIT)-Small I
Improving I / O performance The PIT protocol can use normal SCSI commands. Since the core of the present invention is the communication network, not the storage network, the system uses a network protocol to
Improve the performance that the model allows. The overhead processing when handling up calls represents a performance barrier for workloads dominated by small I / O requests. There are several ways to improve small I / O performance. One is to improve the path length of the interrupt handling code. The second is to use a technique similar to that employed in device drivers to reduce the vector of multiple interrupts into a single call to an interrupt manipulator. Third, reduce the number of individual I / O operations and cluster (convoy) into a single request. Due to the difference in MTU size of the source and destination physical links, nodes that need to repackage incoming and outgoing data flows tend to collect data. This problem is further exacerbated by a mismatch between the speeds of the transmitting side and the destination side network (particularly the destination network becomes slower). These nodes are constantly subject to flow control from the destination. As a result, data flowing out of the router due to the burst is generated. This is called a data convoy.
【0190】本発明では、データ・コンボイを、ION
212及び計算ノード200においてアップ・コールが
生成した割り込みの数を減らすテクニックとして利用す
る。説明のために、ION212から計算ノード200
へのデータフローを考える。本発明で使用するフロー制
御のデビット/クレジット・モデルでは、I/O要求は
計算ノード200とION212の両方で待ち行列に加
わる。待ち行列はION212にストアされるPITパ
ケットで始まり、これをすべて使うと、計算ノード20
0に戻って継続する。これはオーバーフロー状態と呼ば
れる。通常、オーバーフローは、ノードが自分のPIT
バッファ・クレジットより多くの要求を持つときに生じ
る。I/Oが完了する度に、ION212は完了メッセ
ージを計算ノード200に戻す。通常、この完了メッセ
ージには、解放されたPITバッファ・リソースのクレ
ジットが含まれる。これはデビット/クレジット・フロ
ー制御の基盤である。システムにI/O要求が殺到する
と、いおん212ではI/Oが完了する度に新しいI/
O要求と置き換えられる。そのため、負荷が大きい時期
には、I/O要求は一度に一つずつION212に流れ
込み、不特定の期間、ION212の待ち行列に加えら
れる。こうしたそれぞれの要求によってアップ・コール
割り込みが生じ、ION212の負荷が増加する。In the present invention, the data convoy is stored in the ION
This is used as a technique for reducing the number of interrupts generated by the up call in the 212 and the compute node 200. For the sake of explanation, the calculation node 200
Consider the data flow to In the flow control debit / credit model used in the present invention, I / O requests are queued at both the compute node 200 and the ION 212. The queue starts with a PIT packet stored in the ION 212 and when all of this is used, the compute node 20
Return to 0 and continue. This is called an overflow condition. Normally, an overflow indicates that a node has its own PIT.
Occurs when you have more requests than buffer credits. Each time the I / O is completed, the ION 212 returns a completion message to the compute node 200. Typically, this completion message includes credits for the released PIT buffer resources. This is the basis for debit / credit flow control. When the system is flooded with I / O requests, the Ion 212 receives a new I / O each time the I / O is completed.
Replaced by O request. Therefore, during periods of heavy load, I / O requests flow into the ION 212 one at a time and are added to the ION 212 queue for an unspecified period. Each of these requests causes an up-call interrupt and increases the load on the ION 212.
【0191】この二重待ち行列モデルは数多くの利点を
持つ。計算ノード200に割り当てるPITバッファの
かずに関しては綿密な相殺取引が行われる。十分な仕事
量をION212のローカルの待ち行列に入れ、要求が
完了したときに、即座に新しい仕事をディスパッチでき
るようにするべきである。しかし、キャッシュシステム
に割り当てれば、ION212上の待ち行列にある要求
が消費するメモリリソースをさらに効率的に利用でき
る。ION212のPIT待ち行列がメモリを維持する
のに足りない状態にあるとき、ION212の仕事が無
くなり、計算ノード200から仕事が送られるのを待た
ざるを得なくなれば性能は低下する。This double queuing model has a number of advantages. A close offset transaction is performed on the PIT buffer allocated to the computing node 200. Sufficient work should be queued locally at the ION 212 so that new work can be dispatched as soon as the request is completed. However, by allocating to the cache system, the memory resources consumed by requests in the queue on the ION 212 can be used more efficiently. When the ION 212's PIT queue is in a state of insufficient memory to maintain memory, performance degrades if the ION 212 runs out of work and has to wait for work to be sent from the compute node 200.
【0192】スーパーPITは、高負荷時にデビット/
クレジット・システムのフロー制御を利用して、アップ
・コール割り込みの数を減らすために設計された、PI
Tプロトコルの特徴である。スーパーPITは、OLT
Pや大量の比較的小さなI/Oに支配される同様の仕事
の性能を改善する。一度に一つの要求を送るのではな
く、スーパーPITパケットは、単一の大きなスーパー
PIT要求によってすべてが運ばれるI/O要求の集合
である。それぞれのスーパーPITパケットは、通常の
PITバッファと同じ方法で転送される。スーパーPI
Tパケットに含まれる個々のI/O要求は、ION21
2リソースが利用可能になったときに、PIT仕事イン
ジェクタによって抽出され、通常のいおん212待ち行
列メカニズムに挿入される。この個々のI/O要求は、
読み出し、書き込み、どちらの要求でもかまわない。The super PIT has a debit / high
A PI designed to reduce the number of up-call interrupts using the flow control of the credit system
This is a feature of the T protocol. Super PIT is OLT
Improves the performance of P and similar tasks dominated by large amounts of relatively small I / O. Rather than sending one request at a time, a super PIT packet is a collection of I / O requests all carried by a single large super PIT request. Each super PIT packet is transferred in the same way as a normal PIT buffer. Super PI
Each I / O request included in the T packet is transmitted to the ION 21
When two resources become available, they are extracted by the PIT work injector and inserted into the regular Onion 212 queuing mechanism. This individual I / O request is
Either read or write request may be used.
【0193】PIT仕事インジェクタは、ION212
に転送されたアプリケーション要求のローカルでの(I
ON212上の)代理の役割を果たす。PIT仕事イン
ジェクタは、後のセクションで述べるRT−PIT及び
FRAG−PITプロトコルとしても使われる。スーパ
ーPITの個々の要求が空になると、このリソースは計
算ノードに開放され、別のスーパーPITパケットを送
って置き換えることが可能になる。一つのホストに認め
られるスーパーPITパケットの数は、第一のオープン
交渉で決定する。当然、ION212の待ち行列にある
仕事量は、別のスーパーPITパケットが運ばれるまで
ION212が仕事を続けるのに十分な量でなければい
けない。The PIT work injector is an ION212
(I) of the application request forwarded to
Acts as a proxy (on ON 212). PIT work injectors are also used as the RT-PIT and FRAG-PIT protocols described in later sections. As each super PIT request becomes empty, this resource is released to the compute node so that another super PIT packet can be sent and replaced. The number of super PIT packets allowed for one host is determined in the first open negotiation. Of course, the amount of work in the ION 212 queue must be sufficient to keep the ION 212 working until another super PIT packet is carried.
【0194】計算ノード200によって、ION212
が自分のPITクレジットを使い果たすのに十分な仕事
が待ち行列に加えられ、要求の待ち行列への追加がロー
カルで始まった状況を考える。スーパーPIT要求の待
ち行列に加えられる要求の数は、スーパーPITが転送
されるバッファのサイズによってのみ制限される。スー
パーPITパケットは通常のPITパケットとは異なる
働きをする。本発明の制御モデルでは、目的地へのクレ
ジットを持っている場合に限り、デバイスは要求(デビ
ット)を送ることができる。デバイスがION212内
の特定のアプリケーション・スレッドをターゲットにし
ているわけではないので、デバイスがどのPITパケッ
トを使用するかは、特に関係ない。ION212へのP
ITパケットはバッファの利用を制限するだけである
(そして副作用としてフロー制御をする)。対照的に、
PIT要求内のSASE PITは異なっている。SA
SEPIT IDは計算ノード212内の特定のスレッ
ドのアドレススペースを意味している。スーパーPIT
の各要求はSASE PITを含んでいるが、この要求
のI/Oが完了したとき、作成されるI/O完了メッセ
ージにはクレジットPITは含まれない。スーパーPI
T内のすべての要求が無くなったときだけ、そのアドレ
ススペースにクレジットPITが発行される。The ION 212 is calculated by the calculation node 200.
Consider the situation where enough work has been added to the queue to deplete its PIT credits and the addition of requests to the queue has started locally. The number of requests that can be enqueued in the super PIT request queue is limited only by the size of the buffer to which the super PIT is transferred. A super PIT packet works differently from a normal PIT packet. With the control model of the present invention, a device can send a request (debit) only if it has credit to the destination. It does not matter what PIT packet the device uses, as the device is not targeting a particular application thread within the ION 212. P to ION212
IT packets only limit the use of buffers (and have flow control as a side effect). In contrast,
The SASE PIT in the PIT request is different. SA
The SEPIT ID means an address space of a specific thread in the computing node 212. Super PIT
Includes a SASE PIT, but when the I / O for this request is completed, the created I / O completion message does not include the credit PIT. Super PI
Only when all requests in T are exhausted will a credit PIT be issued to that address space.
【0195】計算ノード200でのスーパーPITの作
成は以下のように行われる。スーパーPITは、単一の
ION212へのI/O要求が、計算ノード200の待
ち行列に最低2つあれば、常に作成できる。このION
212に関して、計算ノード200のスーパーPITパ
ケットがすでに限界に達している場合、計算ノード20
0はスーパーPITが戻るまで、要求を待ち行列に加え
続ける。この計算ノードはその後、別のスーパーPIT
メッセージを発行する。このシステムドライバ内では、
待ち行列が発生した場合、スーパーPITパケットを作
成するためには、IONごとの待ち行列が必要になる。The creation of the super PIT in the computing node 200 is performed as follows. A super PIT can always be created if there are at least two I / O requests to a single ION 212 in the queue of the compute node 200. This ION
Regarding 212, if the super PIT packet of the compute node 200 has already reached the limit,
0 keeps adding requests to the queue until the super PIT returns. This compute node is then replaced by another super PIT
Issue a message. Within this system driver,
When a queue occurs, a queue for each ION is required to create a super PIT packet.
【0196】上述の通り、スーパーPITメッセージ
は、大量の小I/O要求に支配された仕事によるION
212の処理負荷を減らすことができる。スーパーPI
Tメッセージは、メッセージの平均サイズを増やすこと
で、目的地ノードの性能とインターコネクト・ファブリ
ックの利用性を改善する。しかし、スーパーPITメッ
セージの概念は、ION212が、小I/O作業によっ
て生じる計算ノード200の負荷を減少させる場合にも
適用できる。ION212でのスーパーPITメッセー
ジの作成では、計算ノード200での作成とはまったく
異なる問題が生じる。計算ノード200では、I/O要
求を作成するアプリケーション・スレッドは、ION2
12の過負荷を防止するためのフロー制御の対象とな
る。ディスクサブシステムのサービス速度は、残りのI
ON212よりはるかに低いため、ION212の性能
にとって常に最終的な制限となる。要求は、ION21
2がそれを待ち行列に加え、サービスを行うために十分
なリソースを持つまで、システムに入ることをブロック
される。重要なのは、ION212上でリソースが利用
可能になるまで、要求が計算ノードで待ち行列に加えら
れる(又はアプリケーションがブロックされる)という
点である。リソース不足は計算ノード200での問題で
はない。計算ノード200のアプリケーションがシステ
ムに対してI/Oの要求を発信するとき、要求の一部に
はI/Oを完了するのに必要な計算ノード200のメモ
リリソース(アプリケーション・スレッド・バッファ)
が含まれる。ION212が計算ノード200に送る必
要のあるI/O完了メッセージには、すでにPIT I
D(SASE PIT ID)が割り当てられている。
ION212から見ると、I/O完了メッセージはすで
にターゲットバッファが割り当てられており、データの
準備が終わり次第、実行することができる。I/O完了
メッセージは、伝達すれば成功する(ION212は計
算ノードのディスクストレージシステムのサービス時間
を持つ必要はない)。そのため、ION212は、計算
ノードからのフロー制御の圧力によるブロックができな
い。スーパーPITメッセージを作成するために、計算
ノードはフロー制御待ち行列を利用するが、ION21
2はこのオプションを持っていない。ION212は、
BYNETへのアクセスを除き、待つ必要のあるリソー
スをまったく持っていないため、スーパーPITメッセ
ージを作成する機会ははるかに少なくなる。As described above, the super PIT message is an ION by a task dominated by a large number of small I / O requests.
212 can be reduced. Super PI
T messages improve the performance of the destination node and the availability of the interconnect fabric by increasing the average size of the messages. However, the concept of a super PIT message is also applicable when the ION 212 reduces the load on the compute node 200 caused by small I / O work. Creation of a super PIT message in the ION 212 has a completely different problem from creation in the compute node 200. In the computing node 200, the application thread that creates the I / O request is ION2
12 is subject to flow control for preventing overload. The service speed of the disk subsystem is
Because it is much lower than the ON 212, it is always the final limit on the performance of the ION 212. Request is for ION21
2 is blocked from entering the system until it has added it to the queue and has enough resources to perform the service. Importantly, requests are queued at the compute nodes (or applications are blocked) until resources are available on the ION 212. Insufficient resources are not a problem at the compute node 200. When an application of the computing node 200 issues an I / O request to the system, a part of the request includes a memory resource (application thread buffer) of the computing node 200 required to complete the I / O.
Is included. The I / O completion message that the ION 212 needs to send to the compute node 200 includes the PIT I
D (SASE PIT ID) is assigned.
From the perspective of the ION 212, the I / O completion message has already been allocated a target buffer and can be executed as soon as the data is ready. The I / O completion message is successful if delivered (ION 212 need not have the service time of the disk storage system of the compute node). Therefore, the ION 212 cannot block by the pressure of the flow control from the calculation node. To create a super PIT message, the compute node uses a flow control queue, but the ION 21
2 does not have this option. ION212,
Except for access to BYNET, there is much less opportunity to create a super PIT message since it has no resources to wait for.
【0197】ION212でスーパーPITメッセージ
を作成するために、いくつかの方法が利用できる。一つ
は、I/O完了要求をわずかに遅らせて、スーパーPI
Tパケット作成の機会を増やすことである。わずかな遅
れの後、同じノードのために新しい完了メッセージが準
備されていなければ、そのメッセージは通常のPITメ
ッセージとして送られる。このテクニックの問題は、
(計算ノードのアップ・コール・オーバーヘッドを減ら
すために)スーパーPIT作成を期待して要求を遅らせ
る時間を取れば、それに対応して要求サービス時間の合
計が増加することである。最終的には計算ノード200
の負荷を減らすことになるが、アプリケーションの速度
も遅くなってしまう。適応性のある遅延時間が有効であ
る(計算ノード200に対する平均サービス時間と特定
の要求にかかった合計サービス時間によって決定)。二
つ目の方法は、一つ目をわずかに変化させたものであ
る。この場合、それぞれの計算ノード200は、計算ノ
ードでの小I/Oの割合が上昇するにしたがって増加す
る遅延時間を、それぞれのION212に提供する必要
がある。これにより、必要な時に特定のION212が
スーパーPITメッセージを作成する機会を増やすこと
になる。三つ目の方法は、特定のトラフィックのタイ
プ、例えばキャッシュが直接サービスを行い、ストレー
ジ224のディスク作業を待たなくていい小さな読み出
し又は書き込みなどを遅らせることである。キャッシュ
は要求の一部に関して、ディスク・トラフィックを回避
して、平均I/O待ち時間を減らすが、待ち時間の配分
はキャッシュのヒットによって変化する。キャッシュの
ヒット要求における短い待ち行列遅延時間は、ディスク
作業を含むものに比べ、サービス時間の大きな増加には
つながらない。サービス時間の配分に敏感なアプリケー
ション(均一な反応時間が性能にとって重要なもの)で
は、ION212でのスーパーPITパケット作成のた
めのわずかな遅延によって、全体的なシステム性能が改
善される可能性がある。 6. 大型ブロックのサポートと断片PITパケット データベース・アプリケーションの性能要件は、データ
ベースのサイズに関係しない場合が多い。データベース
のサイズが大きくすれば、アプリケーション性能の浸食
を防ぐために、ディスクストレージを調べる速度も比例
して大きくしなくてはいけない。別の言い方をすれば、
サイズが大きくなるカスタマ・データベースにおいて、
一定の問い合わせに対する反応時間は一定に保たなくて
はいけない。この要件を満たす上で問題は、これが現在
のディスクドライブ・テクノロジの傾向と直接対立する
点にある。ディスクドライブの容量が増加する一方で、
ランダムI/O性能は変化していない。この傾向を緩和
する方法の一つは、ディスクデバイスの容量増加にした
がって、ディスクI/O作業の平均サイズを増加させる
ことである。ストレージ容量と性能要件の現在の傾向か
ら言って、平均I/Oサイズである24KBは、非常に
近い将来に128KBに増加する可能性がある。より積
極的なキャッシュ使用と遅延書き込みテクニックが、多
くの仕事にとって有効になるかもしれない。ディスクド
ライブにおける不均一なテクノロジの成長だけが、I/
O要求サイズの増加を生み出しているわけではない。B
LOBS(バイナリ大型オブジェクト)を利用するデー
タベースが普及するにつれ、1MB以上のサイズに達す
るオブジェクトが一般的になりつつある。特定の原因と
は関係なく、システムには大きなI/Oオブジェクトを
サポートする必要が生じ、そのサイズはディスクストレ
ージの経済学に従っていくことになる。Several methods are available for creating a super PIT message at the ION 212. One is to slightly delay the I / O completion request and
This is to increase the chances of creating a T packet. After a slight delay, if no new completion message has been prepared for the same node, it is sent as a normal PIT message. The problem with this technique is
Taking the time to delay the request in anticipation of creating a super PIT (to reduce the up-call overhead of the compute node) is to increase the total required service time correspondingly. Eventually compute node 200
But it also slows down the application. An adaptive delay time is valid (determined by the average service time for the compute node 200 and the total service time for a particular request). The second method is a slight modification of the first. In this case, each computing node 200 needs to provide each ION 212 with a delay time that increases as the ratio of small I / O at the computing node increases. This will increase the opportunity for a particular ION 212 to create a super PIT message when needed. A third approach is to delay certain types of traffic, such as small reads or writes, where the cache services directly and does not have to wait for storage 224 disk activity. The cache avoids disk traffic and reduces average I / O latency for some requests, but the distribution of latency varies with cache hits. Short queuing delays in cache hit requests do not result in a significant increase in service time compared to those involving disk work. In applications that are sensitive to service time allocation (uniform response time is critical for performance), small delays for super-PIT packet creation in ION 212 may improve overall system performance. . 6. Large Block Support and Fragmented PIT Packets Database application performance requirements are often independent of database size. As the size of the database grows, the speed at which disk storage is probed must be increased proportionally to prevent erosion of application performance. In other words,
In a growing customer database,
The response time for certain inquiries must be kept constant. The challenge in meeting this requirement is that it directly conflicts with current trends in disk drive technology. As disk drive capacity increases,
The random I / O performance has not changed. One way to alleviate this tendency is to increase the average size of disk I / O work as the capacity of disk devices increases. Given the current trends in storage capacity and performance requirements, the average I / O size of 24 KB may increase to 128 KB in the very near future. More aggressive cache usage and lazy write techniques may be useful for many jobs. The only non-uniform technology growth in disk drives is
It does not create an increase in O request size. B
With the spread of databases using LOBS (binary large objects), objects reaching the size of 1 MB or more are becoming common. Regardless of the particular cause, the system will need to support large I / O objects, the size of which will follow the economics of disk storage.
【0198】PITプロトコルを使用したION212
と計算ノード200による大型データオブジェクトの送
信に関しては、いくつかの問題がある。本文書で述べた
通り、PITプロトコルの利点は、目的地バッファを先
に割り当て、フロー制御と端点決定の問題に対処するこ
とにある。しかし、アップ・コール意味もメッセージを
保管する十分なバッファスペースを確認(又は割り当
て)する必要がある。PITプロトコルでは、送信側で
各メッセージを保管するターゲットPIT ID906
を送信側に選択させることで、この問題に対処する。大
きなI/O書き込みは、メッセージのサイズが利用でき
るプールから特定のPIT ID906を選択する際の
基準になるため、確実にプロトコルが複雑になる。負荷
が大きい時期には、送信者が利用できるPIT ID9
06クレジットを持っているにも関わらず、そのすべて
が大型I/O要求のバッファサイズ条件に合わない状況
が生じる可能性がある。PITプロトコルでは、送信す
るデータサイズの幅が広い場合、送信側は受信側と協力
してPITバッファの数とサイズの両方を管理しなくて
はいけない。これによりPITバッファ割り当てサイズ
の問題が生じる。つまり、PITバッファのプールを作
成する時に、特定の仕事のPITバッファのプールにと
って、バッファサイズの適切な配分とは何か、である。
BYNETソフトウェアは、書き込みだけでなく大型I
/O読み出しも複雑にする追加最大転送単位(MTU)
を強制する。BYNET MTUを超えるI/O要求
(読み出しと書き込みの両方)は、ソフトエアのプロト
コル(この場合はPITプロトコル)によって、送信側
で断片化し、受信側で組み立て直す必要がある。これに
よってメモリ断片化の問題が生じる。簡単に言えば、内
部断片化は割り当てられたバッファ内部の無駄なスペー
スであり、外部断片化は割り当てられたバッファ外部
の、小さすぎてまったく要求を満たすことができない無
駄なスペースである。解決策の一つは、大型PITバッ
ファの一部のみを使用することだが、大きなPITバッ
ファを使用した場合に不必要な内部断片化が生じること
になる。大型PITバッファはメモリを無駄にし、コス
ト/性能を悪化させる。ION 212 Using PIT Protocol
And the transmission of large data objects by the compute node 200 have several problems. As mentioned in this document, the advantage of the PIT protocol is that it allocates the destination buffer first and addresses the issues of flow control and endpoint determination. However, up call semantics also need to ensure (or allocate) enough buffer space to store the message. In the PIT protocol, a target PIT ID 906 for storing each message on the transmission side.
This problem is addressed by having the sender select. Large I / O writes certainly complicate the protocol because the size of the message is a criterion in selecting a particular PIT ID 906 from the available pool. During periods of heavy load, PIT ID9 available to the sender
There may be situations where despite having 06 credits, not all of them meet the buffer size requirements for large I / O requests. In the PIT protocol, when the data size to be transmitted is wide, the transmitting side must cooperate with the receiving side to manage both the number and the size of the PIT buffer. This raises the problem of PIT buffer allocation size. That is, when creating a pool of PIT buffers, what is the proper allocation of buffer size for a pool of PIT buffers for a particular job?
BYNET software is not only for writing
Additional maximum transfer unit (MTU) that also complicates / O read
To force. I / O requests (both read and write) that exceed the BYNET MTU need to be fragmented on the transmitting side and reassembled on the receiving side by a software protocol (in this case, the PIT protocol). This creates a problem of memory fragmentation. Simply put, internal fragmentation is wasted space inside the allocated buffer, and external fragmentation is wasted space outside the allocated buffer that is too small to satisfy any demand. One solution is to use only a portion of the large PIT buffer, but using a large PIT buffer will result in unnecessary internal fragmentation. Large PIT buffers waste memory and degrade cost / performance.
【0199】本発明では、BYNET MTU及びPI
Tバッファ割り当ての問題は、PITメッセージのタイ
プを2つ追加することで解決している。これはRT−P
IT(ラウンド・トリップPIT)とFRAG−PIT
(断片PIT)である。FRAG−PITとRT−PI
Tはどちらも、PITデータ・プッシュ・モデルではな
く、データ・プル・モデルを利用している(プッシュ・
データでは、送信側がデータを目的地にプッシュする。
プル・データでは、目的地がデータをソースからプルす
る)。FRAG−PITメッセージは大型データ読み出
しをサポートする設計になっており、RT−PITメッ
セージは大型データ書き込みをサポートしている。FR
AG−PITとRT−PITはどちらもスーパーPIT
と同じように、ION PIT仕事インジェクタを使用
してデータ・フローを管理する。In the present invention, BYNET MTU and PI
The problem of T-buffer allocation has been solved by adding two PIT message types. This is RT-P
IT (Round Trip PIT) and FRAG-PIT
(Fragment PIT). FRAG-PIT and RT-PI
T both use a data pull model instead of a PIT data push model (push
For data, the sender pushes the data to the destination.
In pull data, the destination pulls the data from the source). The FRAG-PIT message is designed to support reading large data, and the RT-PIT message supports writing large data. FR
AG-PIT and RT-PIT are both super PIT
Like, manage data flow using ION PIT work injectors.
【0200】a) RT−PITメッセージ 計算ノード200がION212に対して大きなディス
ク書き込み作業の実行を求め、そのI/O書き込みがB
YNET MTU又は利用できる任意のION212P
ITバッファのどちらかより大きいとき、計算ノード2
00はRT−PIT作成メッセージを作成する。RT−
PITメッセージは二つの段階で働く。ブースト段階と
ラウンド・トリップ段階である。ブースト段階では、書
き込まれるデータのためのソース・バッファのリストが
計算ノード200一連のPITIDに割り当てられる。
ソース・バッファの断片化サイズがBYNET MTU
とION初期オープンプロトコルで指定されたサイズ制
約によって決定する。このPIT ID(及び地合おう
するバッファサイズ)のリストは、単一のRT−PIT
要求メッセージのペイロードに置かれ、目的地ION2
12に対するPITクレジットになる。RT−PITプ
ロトコルが直接使用するために、追加PITバッファが
計算ノードプールから割り当てられる。この追加バッフ
ァのPITIDは、PITヘッダのクレジット・フィー
ルドに置かれる。残りのRT−PIT要求は、通常のP
IT書き込みメッセージと同じである。次に計算ノード
200は、このRT−PIT要求メッセージをION2
12に送る(ブーストする)。A) RT-PIT message The computing node 200 requests the ION 212 to execute a large disk write operation, and the I / O write
YNET MTU or any available ION212P
When either of the IT buffers is larger, computation node 2
00 creates an RT-PIT creation message. RT-
PIT messages work in two stages. The boost phase and the round trip phase. In the boost phase, a list of source buffers for the data to be written is assigned to the compute node 200 series of PITIDs.
The fragmentation size of the source buffer is BYNET MTU
And the size constraint specified in the ION initial open protocol. This list of PIT IDs (and buffer sizes to be formed) is a single RT-PIT
Placed in the payload of the request message, the destination ION2
12 PIT credits. Additional PIT buffers are allocated from the compute node pool for direct use by the RT-PIT protocol. The PITID of this additional buffer is placed in the credit field of the PIT header. The remaining RT-PIT requests are
Same as the IT write message. Next, the computing node 200 transmits this RT-PIT request message to ION2.
Send to 12 (boost).
【0201】ION212では、PIT仕事インジェク
タがRT−PIT要求メッセージを二つのステップで処
理する。それそれのソース側PIT ID906に関し
て、仕事インジェクタはサイズの一致するPITバッフ
ァをIONキャッシュから要求しなくてはいけない(I
ONバッファキャッシュで利用できるスペースに応じ
て、これがすべて一緒に又は一度に一つずつ行われ
る)。PITバッファを一致させることで、ION21
2は動的にリソースを割り当て、書き込み要求に組み合
わせる。これで、通常のPIT転送を修正したシーケン
スを利用して、I/Oを進めることができるようにな
る。ここでRT−PITメッセージの処理はラウンド・
トリップ段階に入り、仕事インジェクタはソースと目的
地PIT IDの一致した一つ(以上)のペアのため
に、RT−PIT開始メッセージを作成する(ION2
12には、一致したPIT IDの一つ又は一部を送信
するオプションも残されている)。単一のRT−PIT
開始メッセージに含まれるPIT ID906の数は、
ION212内のデータ転送の細かさをコントロールす
る(以下で解説)。In the ION 212, the PIT work injector processes the RT-PIT request message in two steps. For each source-side PIT ID 906, the work injector must request a matching PIT buffer from the ION cache (I
This is all done together or one at a time, depending on the space available in the ON buffer cache). By matching PIT buffers, ION21
2 dynamically allocates resources and combines them with write requests. As a result, I / O can be advanced using the sequence obtained by modifying the normal PIT transfer. Here, the processing of the RT-PIT message is a round
Entering the trip phase, the work injector creates an RT-PIT start message for one (or more) matched pairs of source and destination PIT IDs (ION2).
12 also has the option to send one or a portion of the matching PIT ID). Single RT-PIT
The number of PIT IDs 906 included in the start message is
It controls the fineness of data transfer within the ION 212 (described below).
【0202】このRT−PIT開始メッセージは計算ノ
ード200に送り返され、RT−PITメッセージのブ
ースト段階が終了する。RT−PIT開始メッセージを
受領すると、計算ノード200は、通常PIT書き込み
メッセージを使用して、一度に一つのPITペアずつ、
ION212にデータを転送する。計算ノード200と
ION212の両方が失われた断片を処理するのに十分
なデータを持っているので、計算ノード200は断片を
順番に送る必要はない(一致したPITペアが再組立の
順番を指定する)。ION212がPIT書き込みメッ
セージを受領すると、仕事インジェクタは通知を受け、
この書き込み要求がもっと大きなRT−PIT I/O
作業の一部であることを認識する。仕事インジェクタに
はPIT書き込み処理に関して二つの選択肢があり、断
片をキャッシュ・ルーチンに渡して書き込み作業を開始
させる、又は書き込みを開始する前に最後の断片の送信
を待つ。さきにI/Oを開始すると、キャッシュがパイ
プライン式にディスクドライブへデータフローを送るこ
とができるが(書き込みキャッシュの方針による)、小
さなI/Oサイズによる性能低下のリスクがある。しか
し、すべての断片が到着するまでI/Oを保持すると、
キャッシュシステムに過度の負荷がかかる可能性があ
る。断片の合計サイズと数量は最初から分かっているの
で、現在の稼働状況で大型I/O要求を最適化するのに
必要なすべてのデータは、キャッシュシステムによって
作られる。計算ノード200側では、PIT書き込み作
業の送信が成功する度に、単一のRT−PIT開始メッ
セージに複数の断片が含まれるときには、次の断片書き
出しの開始が起こる。単一のRT−PIT開始コマンド
内の最後の断片が受領されると、要求インジェクタは、
通常の書き込み要求と同様の処理のために、データをキ
ャッシュシステムに渡す。データが安全であれば、キャ
ッシュシステムはI/O完了メッセージを作成し、計算
ノード200に送り返して、(RT−PIT開始作業
の)処理のこの段階が完了したことを知らせる。断片が
まだ残っている場合は、RT−PIT開始コマンドが作
成され、計算ノードに送られ、すべての断片が処理され
るまで上述のサイクルが繰り返される。作業インジェク
タとキャッシュが最後の断片の処理を完了すると、最終
I/O完了メッセージがステータスと共に計算ノードに
戻され、RT−PIT要求の処理の終了を同期させる。This RT-PIT start message is sent back to the compute node 200, and the boost phase of the RT-PIT message ends. Upon receiving the RT-PIT start message, the compute node 200 uses the normal PIT write message, one PIT pair at a time,
The data is transferred to the ION 212. Since both compute node 200 and ION 212 have enough data to handle the lost fragment, compute node 200 need not send the fragments in order (the matched PIT pair specifies the reassembly order). Do). When the ION 212 receives the PIT write message, the work injector is notified and
This write request is a larger RT-PIT I / O
Recognize that it is part of the task. The work injector has two options for the PIT write process: pass the fragment to the cache routine to start the write operation, or wait for the transmission of the last fragment before starting the write. Starting I / O earlier allows the cache to send data flow to the disk drive in a pipelined fashion (depending on write cache policy), but there is a risk of performance degradation due to small I / O size. However, if I / O is held until all fragments arrive,
The cache system may be overloaded. Since the total size and quantity of the fragments are known from the start, all data needed to optimize large I / O requests in current operating conditions is created by the cache system. On the computing node 200 side, whenever a single RT-PIT start message includes a plurality of fragments each time the transmission of a PIT write operation is successful, the start of writing the next fragment occurs. When the last fragment in a single RT-PIT start command is received, the request injector will:
The data is passed to the cache system for the same processing as a normal write request. If the data is secure, the cache system creates an I / O completion message and sends it back to compute node 200 to indicate that this stage of the process (of the RT-PIT start operation) has been completed. If fragments remain, an RT-PIT start command is created and sent to the compute node, and the above cycle is repeated until all fragments have been processed. When the work injector and cache have completed processing the last fragment, a final I / O completion message is returned to the compute node with status, synchronizing the end of processing of the RT-PIT request.
【0203】RT−PITメッセージはいくつかの変更
でBYNETに最適化できる。ION212がRT−P
IT要求を受領した直後の状況を考える。ION212
の仕事インジェクタは、計算ノードのバッファとION
212を一致させ、大型I/O要求をたくさんの小さな
通常書き込み要求にトランスレートしようとしている。
同期は中間RT−PIT開始コマンドによって行われ
る。しかし、BYNETによって、受領したチャンネル
プログラムのデータ引き出しが可能になれば、RT−P
IT開始コマンド送信の中間のステップが排除できる。
説明のために、このBYNET作業のモードをループ・
バンド・メッセージと呼ぶことにする。ループ・バンド
・メッセージは実際は二つの有向バンド・メッセージ
で、片方が他方に組み込まれている。例えば、RT−P
IT要求を受領した仕事インジェクタは、計算ノードで
二番目のPIT書き込みメッセージを作成するのに必要
なデータを含んだRT−PIT開始メッセージを作成す
ることで、それぞれの断片を処理することになる。RT
−PIT開始メッセージはPIT書き込み作業の断片化
のテンプレートを計算ノード200に転送する。計算ノ
ード200で実行されるチャンネルプログラム(RT−
PIT開始メッセージと一緒に送られる)は、計算ノー
ドBYNETドライバの送信待ち行列上にペイロードを
保管する。このペイロードは、第一のRT−PIT要求
をするアプリケーションスレッドからの要求待ち行列に
似ている。このペイロードは、ソースと目的地のPIT
IDのペアを使って、仕事インジェクタが送信するこ
の断片のために、PIT書き込み要求を作成する。PI
T書き込みは断片をION212で保管し、仕事インジ
ェクタに到着を知らせる。仕事インジェクタは、それぞ
れの断片についてこのサイクルを繰り返して、すべてを
処理する。ループ・バンド・メッセージによる性能改善
は、それぞれのRT−PIT開始メッセージに必要な割
り込みと計算ノードの処理の排除に由来する。The RT-PIT message can be optimized for BYNET with some changes. ION212 is RT-P
Consider the situation immediately after receiving an IT request. ION212
Work injectors have compute node buffers and IONs
212, trying to translate a large I / O request into many small regular write requests.
Synchronization is performed by an intermediate RT-PIT start command. However, if BYNET makes it possible to extract the data of the received channel program, RT-P
Intermediate steps of sending the IT start command can be eliminated.
For the purpose of explanation, this mode of BYNET operation is looped.
Let's call it a band message. A loop band message is actually two directed band messages, one embedded in the other. For example, RT-P
The work injector that has received the IT request will process each fragment by creating an RT-PIT start message that contains the data needed to create the second PIT write message at the compute node. RT
The PIT start message transfers the fragmentation template of the PIT write operation to the compute node 200. A channel program (RT-
Sent together with the PIT start message) stores the payload on the transmit queue of the compute node BYNET driver. This payload is similar to a request queue from the application thread making the first RT-PIT request. This payload contains the source and destination PIT
Using the ID pair, create a PIT write request for this fragment sent by the work injector. PI
The T write stores the fragment in the ION 212 and signals the work injector of arrival. The work injector repeats this cycle for each fragment and processes everything. The performance improvement due to the loop band message comes from the elimination of the interrupt and compute node processing required for each RT-PIT start message.
【0204】FRAG−PITメッセージは、計算ノー
ドからの大型I/O読み出し要求の作業をサポートする
ように設計されている。アプリケーションが大型I/O
読み出しを要求すると、計算ノードはターゲットバッフ
ァを固定し、各断片のターゲットバッファを意味するP
IT IDのリストを作成する。それぞれのPITID
は、断片のターゲットバッファと関連するステータスバ
ッファで構成される分散リストを記述する。ステータス
バッファはデータ送信時に更新され、これにより計算ノ
ードは各断片がいつ処理されたかを判断できる。各断片
のサイズは、RT−PITメッセージと同じアルゴリズ
ムで決定する(上のRT−PITのセクションを参
照)。これらのフィールドを組み合わせてFRAG−P
ITを作成する。[0204] The FRAG-PIT message is designed to support the work of large I / O read requests from compute nodes. Application is large I / O
When a read is requested, the compute node fixes the target buffer and sets P to mean the target buffer for each fragment.
Create a list of IT IDs. Each PITID
Describes a scatter list consisting of a fragment target buffer and an associated status buffer. The status buffer is updated upon data transmission so that the compute nodes can determine when each fragment has been processed. The size of each fragment is determined by the same algorithm as the RT-PIT message (see RT-PIT section above). By combining these fields, FRAG-P
Create IT.
【0205】FRAG−PIT要求は計算ノード200
によってION212に送信され、ここで仕事インジェ
クタによって処理される。この要求には、仮想ディスク
名、開始ブロック番号、ION212上のデータソース
のデータの長さが含まれる。仕事インジェクタはRT−
PIT要求と同様の形でFRAG−PIT要求について
の作業を行う。FRAG−PIT要求内の各断片は、別
々のPIT読み出し要求として、キャッシュシステムと
の協力によって処理される。キャッシュシステムは、各
断片を個別に扱うか、又は単一の読み出し要求として扱
うかを選択でき、可能になったときにディスクデータを
仕事インジェクタに供給する。キャッシュがデータ断片
を(個別に又は単一のI/O作業の一部として)供給す
ると、大型読み出し要求のデータが計算ノードにフロー
バックし始める。キャッシュがデータを利用可能にした
各断片ごとに、仕事インジェクタはデータ断片をFRA
G−PIT部分完了メッセージに入れて計算ノードに送
り返す。それぞれのFRAG−PIT部分完了メッセー
ジは、通常のPIT読み出し要求完了と同様にデータを
伝送するが、FRAG−PIT部分完了メッセージは伝
達されたときに計算ノードで割り込みを生成しない。最
後の完了断片は、FRAG−PIT完全完了メッセージ
と一緒に計算ノードへ戻される。FRAG−PIT完全
完了メッセージと部分完了メッセージの違いは、割り込
みによってFRAG−PIT読み出し要求全体の完了を
知らせる点にある(フル・アップ・コール)。The FRAG-PIT request is sent to the computation node 200
To the ION 212 where it is processed by the work injector. This request includes the virtual disk name, the starting block number, and the data length of the data source on the ION 212. Work injector is RT-
Work on FRAG-PIT requests in the same way as PIT requests. Each fragment in the FRAG-PIT request is processed as a separate PIT read request in cooperation with the cache system. The cache system can choose to treat each fragment individually or as a single read request and supply disk data to the work injector when available. As the cache supplies the data fragments (individually or as part of a single I / O operation), the data of the large read request begins to flow back to the compute nodes. For each fragment for which the cache made the data available, the work injector fetched the data fragment
Send it back to the compute node in a G-PIT partial completion message. Each FRAG-PIT partial completion message carries data in the same manner as a normal PIT read request completion, but the FRAG-PIT partial completion message does not generate an interrupt at the compute node when delivered. The last completed fragment is returned to the compute node along with the FRAG-PIT complete completion message. The difference between the FRAG-PIT complete completion message and the partial completion message is that an interrupt signals the completion of the entire FRAG-PIT read request (full up call).
【0206】7. 他のネットワークデバイスへのPI
Tプロトコルの導入 ネットワーク接続ストレージに対する上述のアプローチ
による性能の大部分は、インターコネクト・ファブリッ
ク106がPITプロトコルをサポートする能力に依存
している。BYNETの場合、低レベルインターフェー
スが作成され、これはPITプロトコルと密接に調和し
ている。ファイバ・チャンネル等の他のネットワーク・
インターフェースにも、同様にPITプロトコルをサポ
ートする能力がある。7. PI to other network devices
Introduction of the T Protocol Most of the performance of the above described approach to network attached storage depends on the interconnect fabric 106's ability to support the PIT protocol. In the case of BYNET, a low-level interface is created, which is closely aligned with the PIT protocol. Other networks such as Fiber Channel
The interface has the ability to support the PIT protocol as well.
【0207】E. バミューダ・トライアングル・プロ
トコル 本発明では、IONクリーク226と書き込みキャッシ
ュを使用して、データとI/O冗長を提供している。I
ONクリーク226を構成するのは複数のION(通常
はペア又はダイポールとして設置)、例えばプライマリ
ION212及びバディION214から成るION2
12及び214である。E. Bermuda Triangle Protocol The present invention uses ION cliques 226 and write caches to provide data and I / O redundancy. I
The ON clique 226 comprises a plurality of IONs (usually installed as pairs or dipoles), for example, an ION 2 comprising a primary ION 212 and a buddy ION 214.
12 and 214.
【0208】バディION214は、プライマリION
212が修正したキャッシュページのコピーの一時格納
場所として働き、データとI/O冗長を提供する。IO
Nクリーク226(図のIONのペア又はダイポール)
内のそれぞれのION212は、ボリューム・セットの
一つのグループにとってのプライマリION212とし
て機能し、他にとってのバディION214として機能
する。The buddy ION 214 is a primary ION
212 serves as a temporary storage location for a copy of the modified cache page, providing data and I / O redundancy. IO
N Creek 226 (pair or dipole of ION in the figure)
Each ION 212 functions as a primary ION 212 for one group of volume sets and a buddy ION 214 for the other.
【0209】高い可用性と書き込みキャッシュを提供す
るためには、アプリケーションが書き込みを確認できる
までの間、最低2カ所にデータを安全に格納する必要が
ある。これは、キャッシュメモリのバックアップコピー
や高速度シーケンシャルディスク用ログを使用して行う
こともある。書き込みが確認された後、データが恒久ス
トレージに記録される前に、ストレージ・コントローラ
が働かなくなった場合、この冗長コピー供給の失敗はデ
ータの損失につながる可能性がある。In order to provide high availability and a write cache, it is necessary to securely store data in at least two places until an application can confirm a write. This may be performed using a backup copy of a cache memory or a log for a high-speed sequential disk. If the storage controller fails after the write is confirmed and before the data is recorded to permanent storage, this failure of the redundant copy supply can lead to data loss.
【0210】しかし、ION212とION214は物
理的に分離したコンピュータで構成されるため、インタ
ーコネクト・ファブリック106上の通信には、こうし
たバックアップコピーを維持する必要がある。最高のシ
ステム性能のためには、書き込みキャッシュを利用しな
がら、BYNET送信と書き込みプロトコルに伴う割り
込みを最小化する必要がある。However, since the ION 212 and the ION 214 are constituted by physically separated computers, it is necessary to maintain such a backup copy for communication on the interconnect fabric 106. For best system performance, it is necessary to minimize interrupts associated with BYNET transmission and write protocols while utilizing the write cache.
【0211】図11は、ダイポール226におけるディ
スク224へのデータ書き込みのために可能なプロトコ
ルの一つを示している。ステップ1及び3では、計算ノ
ード200は要求をプライマリION212とバディI
ON214に送る。ステップ2及び4では、IONが書
き込み要求に応答する。計算ノード200がION21
2と214の両方から応答を受領すると、書き込みが完
了したとみなされる。データがその後ディスクに書き込
まれるとき、プライマリION212はバディION2
14に排除要求を送り、書き込みデータのページのコピ
ーを保存しておく必要がないことを知らせる。「送信完
了」割り込みを送信側で抑制すると仮定すると、それぞ
れの送信メッセージが計算ノード又はION212及び
ION214で割り込みを生成するため、このプロトコ
ルでは最低5回の割り込みが必要になる。また、このプ
ロトコルのもう一つの欠点は、書き込みが開始になった
時に片方のIONがダウンした場合に二つ目の応答を永
遠に待つのを避けるために、計算ノード200がプライ
マリION212及びバディION214の状況を知っ
ておく必要があることである。FIG. 11 shows one possible protocol for writing data to the disk 224 in the dipole 226. In steps 1 and 3, the compute node 200 sends the request to the primary ION 212 and the buddy I
Send to ON214. In steps 2 and 4, the ION responds to the write request. Compute node 200 is ION 21
Upon receipt of a response from both 2 and 214, the write is considered complete. When data is subsequently written to the disk, the primary ION 212 receives the buddy ION2
Send a rejection request to 14 indicating that it is not necessary to keep a copy of the page of write data. Assuming that the "transmission complete" interrupt is suppressed on the transmitting side, this protocol requires a minimum of five interrupts because each transmitted message generates an interrupt at the compute node or ION 212 and ION 214. Another drawback of this protocol is that when the write starts, one of the IONs goes down forever to avoid waiting forever for the second response if one computes the primary ION 212 and the buddy ION 214 It is necessary to know the situation.
【0212】図12は、考えられる別のプロトコルを表
している。このプロトコルでは、プライマリION21
2に対して、書き込み要求をバディION214へ送
り、応答を待ち、計算ノード200へ確認を送り返すよ
うに指示する。このプロトコルでも最低5回の割り込み
が必要になる。第一の割り込みは、ステップ1で示され
るように、計算ノード200がプライマリION212
に書き込み要求を送るときに発生する。第二の割り込み
はステップ2で、プライマリION212がデータをバ
ディION214に送るときに発生する。3回目の割り
込みはステップ3で、バディION214がデータの受
領を知らせるときに発生する。4回目の割り込みはステ
ップ4で、プライマリION212が計算ノード200
に応答するときに発生し、最後の割り込みはステップ5
で、データが安全にディスクに転送された後、プライマ
リION212が排除要求をバディION214に送る
ときに発生する。FIG. 12 illustrates another possible protocol. In this protocol, the primary ION 21
2 sends a write request to the buddy ION 214, waits for a response, and instructs the compute node 200 to send back a confirmation. This protocol also requires at least five interrupts. The first interrupt is as shown in step 1 where the compute node 200 is the primary ION 212
Occurs when sending a write request to The second interrupt occurs in step 2 when primary ION 212 sends data to buddy ION 214. The third interrupt occurs at step 3 when buddy ION 214 signals receipt of data. The fourth interruption is step 4, in which the primary ION 212
Occurs when responding to, and the last interrupt is
Occurs when the primary ION 212 sends an exclusion request to the buddy ION 214 after the data has been safely transferred to the disk.
【0213】図13は、書き込み要求処理に必要な割り
込み回数を最小化する、本発明で使用されているプロト
コルを表している。このプロトコルをバミューダ・トラ
イアングル・プロトコルと呼ぶ。まず、計算ノード20
0が書き込みデータと共に書き込み要求をプライマリI
ON212に対して発行する。この書き込み要求は、イ
ンターコネクト・ファブリック106を介して、プライ
マリION212に伝送される。これはステップ1で表
される。プライマリION212はメモリ304に位置
する書き込みキャッシュに書き込みデータを格納し、こ
の書き込みデータをバディION214に送る。これは
ステップ2で表される。次に、バディION214は確
認メッセージを計算ノード200に送り、書き込み要求
を確認する。最後に、データが安全にディスクに保存さ
れると、プライマリION212は排除要求をION2
14に送る。この排除ステップは図13のステップ3で
示している。図11及び図12で示した方法では5つの
ステップが必要なのに対して、上述のプロトコルで必要
なのは4つのプロセスであるため、これはデータ処理ア
ーキテクチャ100の通信要件を減少し、処理能力を増
加させる。FIG. 13 shows a protocol used in the present invention for minimizing the number of interrupts required for processing a write request. This protocol is called the Bermuda Triangle Protocol. First, the calculation node 20
0 is a write request along with write data to the primary I
Issued to ON212. This write request is transmitted to the primary ION 212 via the interconnect fabric 106. This is represented in step 1. The primary ION 212 stores the write data in a write cache located in the memory 304 and sends the write data to the buddy ION 214. This is represented in step 2. Next, the buddy ION 214 sends a confirmation message to the compute node 200 to confirm the write request. Finally, when the data is securely stored on disk, the primary ION 212 issues an eviction request to ION2.
Send to 14. This exclusion step is shown as step 3 in FIG. This reduces the communication requirements of the data processing architecture 100 and increases the processing power, since the methods shown in FIGS. 11 and 12 require five steps, whereas the above protocol requires four processes. .
【0214】図14は、上述の作業をフローチャートの
形で示した図である。まず、プライマリION212が
計算ノード200から書き込み要求を受領する140
2。次に、プライマリION212からバディION2
14に書き込み要求の書き込みデータが転送される14
04。バディION214から計算ノード200に確認
メッセージが伝送され1406、排除論理を実行して1
408、バディION214に格納された書き込みデー
タを排除する。FIG. 14 is a diagram showing the above operation in the form of a flowchart. First, the primary ION 212 receives a write request from the compute node 200 140
2. Next, from the primary ION 212 to the buddy ION2
The write data of the write request is transferred to 14
04. A confirmation message is transmitted from the buddy ION 214 to the computing node 200 1406, executing exclusion logic and
408, the write data stored in the buddy ION 214 is excluded.
【0215】図15は、排除論理の実施形態を示してい
る。この実施形態では、プライマリION212の不揮
発性ストレージに書き込みデータが格納されたときに、
プライマリION212からバディIONに排除コマン
ドが送られる1502。通常、これはデータがメディア
に書き込まれたときに発生する。図16は、排除論理の
もう一つの実施形態を示している。この実施形態は、不
揮発性メモリに書き込みデータが格納されるまで160
2、排除コマンドが送信されない点では、図15の実施
形態と同じである。しかし、この実施形態では、排除コ
マンドを送信する前に、プライマリION212が二番
目の書き込み要求を受領するのも待つ1604。したが
って、排除要求を遅らせ、3回の割り込みプロトコルを
発生させる次の書き込みデータ送信と組み合わせること
で、さらに割り込みが減少する。このプロトコルのもう
一つの利点は、書き込み要求を受領したときにバディI
ON214がダウンした場合でも、プライマリION2
12がライト・バック・モードで要求を処理し、データ
が安全にディスクに保存された後、書き込みを知らせる
ことができる点にある。計算ノード200はバディIO
N214のステータスを知る必要はない。実施形態で
は、プライマリION212の受領する書き込み要求が
なくなった場合でも、最後の排除命令の送信を確実に行
うために、ソフトウェア・タイマ又はその他のデバイス
を導入することもできる。FIG. 15 shows an embodiment of the exclusion logic. In this embodiment, when the write data is stored in the non-volatile storage of the primary ION 212,
An exclusion command is sent 1502 from the primary ION 212 to the buddy ION. Typically, this occurs when data is written to media. FIG. 16 shows another embodiment of the exclusion logic. In this embodiment, the write data is stored in the nonvolatile memory until the write data is stored.
2. The point that the exclusion command is not transmitted is the same as the embodiment of FIG. However, in this embodiment, it also waits 1604 for primary ION 212 to receive the second write request before sending the exclusion command. Therefore, interrupts are further reduced by delaying the exclusion request and combining it with the next write data transmission that generates three interrupt protocols. Another advantage of this protocol is that the buddy I
Even if ON 214 goes down, primary ION2
12 can process the request in write-back mode and signal the write after the data has been securely stored on disk. Compute node 200 is a buddy IO
There is no need to know the status of N214. In embodiments, a software timer or other device may be introduced to ensure that the last eviction command is sent even if there are no more write requests to be received by the primary ION 212.
【0216】バミューダ・トライアングル・プロトコル
では、従来のプロトコルよりも少ない割り込みによって
書き込みキャッシュを利用でき、同時にデータの可用性
を維持できる。これが可能なのは、バディION214
がプライマリION212に送られた書き込み要求の確
認を行うからである。現代のパイプライン式プロセッサ
において割り込み処理のコストが高いことを考えれば、
このプロトコルは、幅広い分散ストレージシステム・ア
ーキテクチャでの使用が可能であり、システム全体のオ
ーバーヘッド低下と性能の向上を生み出すことになる。In the Bermuda Triangle protocol, the write cache can be used with fewer interrupts than the conventional protocol, and at the same time, data availability can be maintained. This is possible because Buddy ION 214
Is to confirm the write request sent to the primary ION 212. Given the high cost of interrupt handling in modern pipelined processors,
The protocol can be used in a wide variety of distributed storage system architectures, resulting in lower overall system overhead and increased performance.
【0217】F. 計算ノード 1. 概要 計算ノード200はユーザアプリケーション204を動
かす。従来のシステムでは、使用される専用共通SCS
Iバスの数と、クラスタ又はクリーク内のノードにアク
セスできるストレージの数は同じだった。本発明では、
ストレージは一つ以上の通信ファブリック106を通じ
て計算ノード200に接続している。このネットワーク
接続ストレージは、計算ノード200間に分散するユー
ザアプリケーション204内のプロセス間通信(IP
C)トラフィックと、通信ファブリック106を共有し
ている。ユーザアプリケーション204からのストレー
ジ要求は、ファブリック/ストレージ・インターフェー
スによって、ION212に位置するストレージ管理ア
プリケーションに対するIPCメッセージに入れられ
る。こうしたストレージ・ノードの専用アプリケーショ
ンは、このIPCメッセージをローカル・キャッシュ又
はI/O作業に変換し、必要に応じて結果を計算ノード
200に送り返す。ユーザアプリケーション204にと
って、ネットワーク接続ストレージとローカル接続スト
レージは区別が付かない。F. Compute node Overview The computing node 200 runs a user application 204. In conventional systems, the dedicated common SCS used
The number of I-buses was the same as the number of storage accessible to nodes in the cluster or clique. In the present invention,
The storage is connected to the compute nodes 200 through one or more communication fabrics 106. This network-attached storage is used for inter-process communication (IP) in the user application 204 distributed between the computing nodes 200.
C) The communication fabric 106 is shared with traffic. Storage requests from the user application 204 are put by the fabric / storage interface into IPC messages for the storage management application located at the ION 212. The dedicated application on such a storage node translates this IPC message into a local cache or I / O work and sends the result back to the compute node 200 as needed. For the user application 204, network-connected storage and local-connected storage are indistinguishable.
【0218】仮想ディスクブロックの読み出し及び書き
込み要求は、インターコネクト・ファブリック106を
介してION212に到着する。特定のION212へ
の要求の経路は、計算ノード200においてソースが行
った選択によって決定できる。すべての計算ノード20
0は、システムのそれぞれのファブリック仮想ディスク
への要求を、どのION212が受け取るのかを知って
いる。ファブリック仮想ディスクは独自のストレージ拡
張子が記述される仮想ディスクモデルを反映している
が、このストレージ拡張子は、その名前によって物理デ
ィスクの物理的な位置を意味したり記号化するものでは
ない。The read and write requests for the virtual disk block arrive at the ION 212 via the interconnect fabric 106. The route of the request to a particular ION 212 can be determined by the choices made by the source at the compute node 200. All compute nodes 20
0 knows which ION 212 will receive requests for each fabric virtual disk in the system. Fabric virtual disks reflect a virtual disk model in which a unique storage extension is described, but the storage extension does not imply or symbolize the physical location of the physical disk by its name.
【0219】それぞれの計算ノード200は、ファブリ
ック仮想ディスク名をIONダイポール226にマップ
するリストを持っている。このリストは、計算ノード2
00とION212との調整により、動的に作成され
る。電源投入及び失敗復旧作業時、ダイポール226内
のION212は、仮想(及び物理)ディスク同士を区
分し、どのION212がどの仮想ディスクを所有して
いるかについてのリストを作成する。ダイポール226
の他のION214(仮想ディスク又はストレージリソ
ースを所有していない)は、異常に備えて仮想ディスク
に代替経路を提供する。Each compute node 200 has a list that maps fabric virtual disk names to ION dipoles 226. This list is for compute node 2
It is created dynamically by adjusting 00 and the ION 212. At power-on and failure recovery operations, the IONs 212 in the dipole 226 partition virtual (and physical) disks and create a list of which IONs 212 own which virtual disks. Dipole 226
The other ION 214 (which does not own the virtual disk or storage resources) provides an alternate path to the virtual disk in case of anomalies.
【0220】このリストは、インターコネクト・ファブ
リック106を通して、他のすべてのダイポール226
と計算ノード200に、定期的にエキスポート又は同報
される。計算ノード200は、このデータを使って、シ
ステム内の各仮想ディスクへの第一の及び第二のパスの
マスタ・テーブルを作成する。その後、計算ノード20
0内のインターコネクト・ファブリック・ドライバは、
ダイポール226と調整し、I/O要求の経路を決め
る。ダイポール226は、この「自己発見」テクニック
を使用して、稼働システムにおいてダイポール226が
追加・除去されたときに発生する可能性のある仮想ディ
スク名の不一致を検知し、訂正する。This list is passed through the interconnect fabric 106 to all other dipoles 226.
Is periodically exported or broadcast to the computing node 200. Compute node 200 uses this data to create a master table of the first and second paths to each virtual disk in the system. Then, the calculation node 20
The interconnect fabric driver in 0 is
Coordinate with the dipole 226 to determine the path of the I / O request. The dipole 226 uses this "self-discovery" technique to detect and correct virtual disk name mismatches that can occur when dipoles 226 are added or removed in a running system.
【0221】計算ノード200上で動くアプリケーショ
ンは、ブロック・インターフェース・モデルを、計算ノ
ード200にエキスポートされた各ファブリック仮想デ
ィスクのローカルディスクのように見る。本文書で前に
述べたように、計算ノード200はブート時に各ファブ
リック仮想ディスクの入口点を作成し、計算ノード20
0とION212の間で確立したネーミング・プロトコ
ルを使って、こうした入口点を動的に更新する。An application running on a compute node 200 views the block interface model as a local disk for each fabric virtual disk exported to the compute node 200. As mentioned earlier in this document, compute node 200 creates an entry point for each fabric virtual disk at boot time and compute node 20
These entry points are dynamically updated using the naming protocol established between ION 212 and ION 212.
【0222】この文書では、データ・ストレージとデー
タ処理システムにおける書き込みキャッシュデータの転
送方法及び装置について説明した。この方法は、計算ノ
ードからの書き込みデータを含む書き込み要求を第一の
I/Oノードで受領し、この書き込みデータを第一のI
/Oノードから第二のI/Oノードに転送し、第二のI
/Oノードが書き込みデータを受領した後で、確認メッ
セージを第二のI/Oノードから計算ノードへ送るステ
ップで構成されている。第一のI/Oノードの不揮発性
ストレージにデータを書き込んだ後、排除要求又はコマ
ンドを第二のI/Oノードに送り、第二のI/Oノード
の揮発性メモリから書き込みデータを排除する。実施形
態によっては、排除要求は第一のI/Oノードが第二の
書き込み要求を受領するまで送信されず、この場合、排
除要求は第二の書き込み要求の書き込みデータと同じ割
り込みにおいて送信される。このデータ処理システム
は、第一の及び第二のI/Oノードで構成され、各ノー
ドは計算ノードからの書き込み要求を受領し、別のI/
Oノードへ書き込みノードを転送するための手段を有し
ている。また、各I/Oノードには、書き込みデータを
送ったI/Oノードを介して確認メッセージを送信する
のではなく、計算ノードに直接確認メッセージを送る手
段も有している。この成果が、データ保存に要する割込
み回数を減らしながら、書き込みキャッシュを導入して
ストレージ速度及びターンアラウンドを改善するI/O
プロトコルである。本発明は、本発明を実施すべき命令
を遂行するために保存された命令を確実に具現するハー
ドディスク、フロッピーディスク、CDといったプログ
ラム・ストレージ・デバイスの見地から説明することも
可能である。This document has described a method and apparatus for transferring write cache data in a data storage and data processing system. In this method, a write request including write data from a computing node is received by a first I / O node, and the write data is received by a first I / O node.
/ O node to the second I / O node,
Sending a confirmation message from the second I / O node to the compute node after the / O node receives the write data. After writing data to the non-volatile storage of the first I / O node, an exclusion request or command is sent to the second I / O node to eliminate the write data from the volatile memory of the second I / O node. . In some embodiments, the eviction request is not sent until the first I / O node receives the second write request, in which case the eviction request is sent in the same interrupt as the write data of the second write request. . The data processing system comprises a first and a second I / O node, each node receiving a write request from a compute node and providing another I / O node.
There is means for transferring the write node to the O node. Also, each I / O node has means for sending a confirmation message directly to the computation node instead of sending a confirmation message via the I / O node that sent the write data. The result is an I / O that introduces a write cache to improve storage speed and turnaround while reducing the number of interrupts required for data storage.
Protocol. The present invention may be described in terms of a program storage device such as a hard disk, a floppy disk, and a CD that reliably implements instructions stored in order to perform an instruction to implement the present invention.
【図1】本発明の主要なアーキテクチャ要素を示す最上
部のブロック図。FIG. 1 is a top block diagram showing the main architectural elements of the present invention.
【図2】本発明のシステム・ブロック図。FIG. 2 is a system block diagram of the present invention.
【図3】ION及びシステムのインターコネクト構造を
示すブロック図。FIG. 3 is a block diagram showing an ION and an interconnect structure of the system.
【図4】JBODエンクロージャの要素のブロック図。FIG. 4 is a block diagram of elements of a JBOD enclosure.
【図5】ION物理ディスクドライバの機能ブロック
図。FIG. 5 is a functional block diagram of an ION physical disk driver.
【図6】ファブリック固有IDの構造を示す図。FIG. 6 is a diagram showing a structure of a fabric unique ID.
【図7】IONエンクロージャ管理モジュールとION
物理ディスクドライバの関係を示す機能ブロック図。FIG. 7: ION enclosure management module and ION
FIG. 3 is a functional block diagram showing a relationship between physical disk drivers.
【図8】BYNETホスト側のインターフェースの図。FIG. 8 is a diagram of an interface on the BYNET host side.
【図9】PITヘッダの図。FIG. 9 is a diagram of a PIT header.
【図10】ION212機能モジュールのブロック図。FIG. 10 is a block diagram of an ION212 function module.
【図11】ダイポールのディスクにデータを書き込むた
めのプロトコルを示す図。FIG. 11 is a diagram showing a protocol for writing data to a dipole disk.
【図12】ダイポールのディスクにデータを書き込むた
めの第二のプロトコルを示す図。FIG. 12 is a diagram showing a second protocol for writing data to a dipole disk.
【図13】IONダイポールのディスクにデータを書き
込むための効率的なプロトコルを示す図。FIG. 13 is a diagram showing an efficient protocol for writing data to an ION dipole disk.
【図14】本発明の書き込みキャッシュ・プロトコルの
実施形態を実行する際に利用する動作を示すフローチャ
ート。FIG. 14 is a flowchart illustrating operations utilized in executing an embodiment of the write cache protocol of the present invention.
【図15】第一のIONの不揮発性ストレージにデータ
が書き込まれた後、他方のIONのメモリを排除する際
に利用する動作を示すフローチャート。FIG. 15 is a flowchart showing an operation used when data is written to the nonvolatile storage of the first ION and then the memory of the other ION is excluded.
【図16】第一のIONの不揮発性ストレージにデータ
が書き込まれた後、他方のIONのメモリを排除する際
に利用する代替動作を示すフローチャート。FIG. 16 is a flowchart showing an alternative operation used when data is written to the nonvolatile storage of the first ION and then the memory of the other ION is excluded.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キット エム チョウ アメリカ合衆国 カリフォルニア州 92009 カールスバッド コルビダエ ス トリート 1336 (72)発明者 ピー キース ミュラー アメリカ合衆国 カリフォルニア州 92103 サン ディエゴ マリルイス ウ ェイ 2440 (72)発明者 マイケル ダブリュー メイヤー アメリカ合衆国 カリフォルニア州 92024 エンシニタス サマーヒル ドラ イブ 2323 (72)発明者 ギャリー エル ボッグス アメリカ合衆国 カリフォルニア州 92064 ポウェイ シカモア ツリー レ ーン 13743 ────────────────────────────────────────────────── ─── Continuing on the front page (72) Inventor Kit Em Chou United States of America 92009 Carlsbad Corvidae's Treat 1336 (72) Inventor Peeks Muller United States of America 92103 San Diego Marilouis Way 2440 (72) Inventor Michael W. Meyer United States 92024 California Encinitas Summerhill Driving 2323 (72) Inventor Gary El Boggs United States 92064 Poway Sycamore Tree Lane 13743
Claims (14)
ムにおける書き込みキャッシュデータの転送方法であっ
て、 第一のI/Oノードにおいて、書き込みデータを含む書
き込み要求を計算ノードから受領するステップと、 書き込みデータを第一のI/Oノードから第二のI/O
ノードに転送するステップと、 確認メッセージを第二のI/Oノードから計算ノードに
送信するステップと、を含むことを特徴とする方法。1. A method for transferring write cache data in a data storage and data processing system, comprising: at a first I / O node, receiving a write request including write data from a computing node; From the first I / O node to the second I / O
Forwarding to the node; and transmitting a confirmation message from the second I / O node to the computing node.
ら第二のI/Oノードに送信するステップを含むことを
特徴とする、請求項1記載の方法。2. The method of claim 1, further comprising the step of transmitting an eviction request from the first I / O node to the second I / O node.
不揮発性ストレージに書き込みデータが保存された時に
送信されることを特徴とする、請求項2記載の方法。3. The method according to claim 2, wherein the exclusion request is transmitted when the write data is stored in the nonvolatile storage of the first I / O node.
第一の書き込み要求に続く第二の書き込み要求を受領し
た後で送信されることを特徴とする、請求項2記載の方
法。4. The method of claim 2, wherein the eviction request is sent after a first I / O node receives a second write request following a first write request. .
みデータを含み、前記方法が、更に、第二の書き込みデ
ータと排除要求を単一のデータ割り込みによって第二の
I/Oノードに送信するステップを含むことを特徴とす
る、請求項3記載の方法。5. The method of claim 2, wherein the second write request includes second write data, and the method further includes transmitting the second write data and an eviction request to the second I / O node with a single data interrupt. 4. The method according to claim 3, comprising the step of:
び第二のI/Oノードが、インターコネクト・ファブリ
ックを介して通信上で結合されていることを特徴とす
る、請求項1記載の方法。6. The method of claim 1, wherein the computing node, the first I / O node, and the second I / O node are communicatively coupled via an interconnect fabric. Method.
び第二のI/Oノードにインターコネクト・ファブリッ
クを介して結合されており、 前記インターコネクト・ファブリックが、 前記計算ノードとI/Oノードを複数のネットワーク入
力ポート及び複数のネットワーク出力ポートを介して接
続するネットワークであって、 bをスイッチノードの
入出力ポートの合計数、Nをネットワーク入出力ポート
の合計数、g(x)を引数xより大きな最少の整数を得
るための切り上げ関数としたとき、g(logbN)以
上のスイッチノードステージに配列された複数のスイッ
チノードで構成されるネットワークにおいて、スイッチ
ノードステージがこれによって任意のネットワーク入力
ポートとネットワーク出力ポート間に複数のパスを提供
し、スイッチノードステージがネットワークの最高スイ
ッチノードステージに複数の跳ね返り点を提供し、跳ね
返り点が、ネットワークを通じてバランスメッセージを
ロードするスイッチノードとネットワーク内でメッセー
ジを方向付けするスイッチノードとを論理的に区別す
る、ネットワークを備えたことを特徴とする、請求項1
記載の方法。7. The computing node is coupled to a first I / O node and a second I / O node via an interconnect fabric, wherein the interconnect fabric comprises the computing node and an I / O node. Is a network connected via a plurality of network input ports and a plurality of network output ports, where b is the total number of input / output ports of the switch node, N is the total number of network input / output ports, and g (x) is an argument Given a round-up function to obtain the smallest integer greater than x, in a network composed of a plurality of switch nodes arranged in switch node stages equal to or more than g (log b N), the switch node stage can be any arbitrary Provide multiple paths between network input port and network output port The switch node stage provides a plurality of bounce points to the highest switch node stage of the network, and the bounce points logically distinguish switch nodes that load balanced messages through the network from those that direct messages in the network. And a network.
The described method.
ムにおける書き込みキャッシュデータの転送装置であっ
て、 第一のI/Oノードにおいて、書き込みデータを含む書
き込み要求を計算ノードから受領する手段と、 書き込みデータを第一のI/Oノードから第二のI/O
ノードに転送する手段と、 確認メッセージを第二のI/Oノードから計算ノードに
送信する手段と、を備えたことを特徴とする装置。8. An apparatus for transferring write cache data in a data storage and data processing system, comprising: a first I / O node receiving a write request including write data from a calculation node; From the first I / O node to the second I / O
An apparatus comprising: means for forwarding to a node; and means for transmitting a confirmation message from a second I / O node to a computing node.
ら第二のI/Oノードに送信する手段を備えたことを特
徴とする、請求項8記載の装置。9. The apparatus according to claim 8, further comprising means for transmitting an exclusion request from the first I / O node to the second I / O node.
ストレージで書き込みデータを保存する時期を判断する
手段と、 不揮発性ストレージに書き込みデータが保存されたとき
に排除要求を送信する手段と、を備えたことを特徴とす
る請求項8記載の装置。10. A means for judging when to store write data in the nonvolatile storage of the first I / O node, and a means for transmitting an exclusion request when the write data is stored in the nonvolatile storage. 9. The apparatus according to claim 8, comprising:
時期を判断する手段と、 第二の書き込み要求と一緒に第二のI/Oノードへ排除
要求を送信する手段と、を備えたことを特徴とする請求
項9記載の装置。11. A device for determining when to receive a second write request, and a unit for transmitting an exclusion request to a second I / O node together with the second write request. The device according to claim 9, characterized in that:
及び第二のI/Oノードが、インターコネクト・ファブ
リックを介して通信上で結合されていることを特徴とす
る、請求項8記載の装置。12. The method of claim 8, wherein the computing node, the first I / O node, and the second I / O node are communicatively coupled via an interconnect fabric. apparatus.
及び第二のI/Oノードが、インターコネクト・ファブ
リックを介して結合されており、 前記インターコネクト・ファブリックが、 前記計算ノードとI/Oノードを複数のネットワーク入
力ポート及び複数のネットワーク出力ポートを介して接
続するネットワークであって、 bをスイッチノードの
入出力ポートの合計数、Nをネットワーク入出力ポート
の合計数、g(x)を引数xより大きな最少の整数を得
るための切り上げ関数としたとき、g(logbN)以
上のスイッチノードステージに配列された複数のスイッ
チノードで構成されるネットワークにおいて、スイッチ
ノードステージがこれによって任意のネットワーク入力
ポートとネットワーク出力ポート間に複数のパスを提供
し、スイッチノードステージがネットワークの最高スイ
ッチノードステージに複数の跳ね返り点を提供し、跳ね
返り点が、ネットワークを通じてバランスメッセージを
ロードするスイッチノードとネットワーク内でメッセー
ジを方向付けするスイッチノードとを論理的に区別す
る、ネットワークを備えたことを特徴とする、請求項8
記載の装置。13. The computing node, a first I / O node, and a second I / O node are connected via an interconnect fabric, wherein the interconnect fabric comprises an I / O and the computing node. A network connecting nodes via a plurality of network input ports and a plurality of network output ports, where b is the total number of input / output ports of the switch node, N is the total number of network input / output ports, and g (x) is When a round-up function for obtaining a minimum integer larger than the argument x is used, in a network including a plurality of switch nodes arranged in switch node stages equal to or more than g (log b N), the switch node stage can be arbitrarily set. Multiple paths between network input ports and network output ports And the switch node stage provides a plurality of bounce points to the highest switch node stage of the network, wherein the bounce point logically connects the switch node loading the balanced messages through the network and the switch node directing the messages in the network. 9. The network according to claim 8, further comprising a network for distinguishing.
The described device.
で、請求項1乃至7に係るデータ・ストレージ・システ
ムにおける書き込みキャッシュデータの転送を行うステ
ップを遂行するために、コンピュータにより実行可能な
一つ以上の命令プログラムを確実に具現するプログラム
・ストレージ・デバイス。14. One or more computer-readable instruction programs readable by a computer and executable by a computer to perform the steps of transferring write cache data in a data storage system according to claims 1 to 7. A program storage device that reliably implements
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/132,441 US6711632B1 (en) | 1998-08-11 | 1998-08-11 | Method and apparatus for write-back caching with minimal interrupts |
US09/132441 | 1998-08-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000259502A true JP2000259502A (en) | 2000-09-22 |
JP4567125B2 JP4567125B2 (en) | 2010-10-20 |
Family
ID=22454067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25773299A Expired - Fee Related JP4567125B2 (en) | 1998-08-11 | 1999-08-10 | Method and apparatus for transferring write cache data in data storage and data processing system |
Country Status (3)
Country | Link |
---|---|
US (1) | US6711632B1 (en) |
EP (1) | EP0980041A3 (en) |
JP (1) | JP4567125B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005010767A1 (en) * | 2003-07-24 | 2005-02-03 | Fujitsu Limited | Data storage system |
JP2016018384A (en) * | 2014-07-08 | 2016-02-01 | 富士通株式会社 | Storage control device, storage system, and program |
Families Citing this family (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542961B1 (en) | 1998-12-22 | 2003-04-01 | Hitachi, Ltd. | Disk storage system including a switch |
US8225002B2 (en) * | 1999-01-22 | 2012-07-17 | Network Disk, Inc. | Data storage and data sharing in a network of heterogeneous computers |
US6785742B1 (en) * | 1999-02-24 | 2004-08-31 | Brocade Communications Systems, Inc. | SCSI enclosure services |
US7454457B1 (en) * | 2000-02-07 | 2008-11-18 | Parallel Networks, Llc | Method and apparatus for dynamic data flow control using prioritization of data requests |
US7194764B2 (en) * | 2000-07-10 | 2007-03-20 | Oracle International Corporation | User authentication |
US7249369B2 (en) * | 2000-07-10 | 2007-07-24 | Oracle International Corporation | Post data processing |
US7124203B2 (en) * | 2000-07-10 | 2006-10-17 | Oracle International Corporation | Selective cache flushing in identity and access management systems |
US7464162B2 (en) * | 2000-07-10 | 2008-12-09 | Oracle International Corporation | Systems and methods for testing whether access to a resource is authorized based on access information |
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 |
US6907474B2 (en) * | 2000-09-15 | 2005-06-14 | Microsoft Corporation | System and method for adding hardware registers to a power management and configuration system |
US6894970B1 (en) * | 2000-10-31 | 2005-05-17 | Chiaro Networks, Ltd. | Router switch fabric protection using forward error correction |
US6953392B2 (en) * | 2001-01-05 | 2005-10-11 | Asm Nutool, Inc. | Integrated system for processing semiconductor wafers |
US7185364B2 (en) * | 2001-03-21 | 2007-02-27 | Oracle International Corporation | Access system interface |
US6895453B2 (en) * | 2001-03-15 | 2005-05-17 | International Business Machines Corporation | System and method for improved handling of fiber channel remote devices |
US20020161852A1 (en) * | 2001-03-15 | 2002-10-31 | International Business Machines Corporation | System and method for fibre channel tracking of SCSI identifiers in unknown configurations |
US20020194407A1 (en) * | 2001-04-25 | 2002-12-19 | Kim Hyon T. | Maintaining fabric device configuration through dynamic reconfiguration |
US9836424B2 (en) | 2001-08-24 | 2017-12-05 | Intel Corporation | General input/output architecture, protocol and related methods to implement flow control |
CN100409606C (en) | 2001-08-24 | 2008-08-06 | 英特尔公司 | Enhanced general input/output architecture and related methods for establishing virtual channels therein |
US7225256B2 (en) * | 2001-11-30 | 2007-05-29 | Oracle International Corporation | Impersonation in an access system |
US20040044776A1 (en) * | 2002-03-22 | 2004-03-04 | International Business Machines Corporation | Peer to peer file sharing system using common protocols |
US7385971B1 (en) * | 2002-05-09 | 2008-06-10 | Cisco Technology, Inc. | Latency reduction in network data transfer operations |
JP4452438B2 (en) * | 2002-11-11 | 2010-04-21 | 株式会社日立製作所 | Storage system |
US7373383B2 (en) * | 2002-12-06 | 2008-05-13 | International Business Machines Corporation | Location messaging method for delivering messages in a global virtual space |
US7624112B2 (en) * | 2003-04-03 | 2009-11-24 | Oracle International Corporation | Asynchronously storing transaction information from memory to a persistent storage |
WO2004090788A2 (en) | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | System and method for dynamically performing storage operations in a computer network |
US8301809B2 (en) | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
US7904487B2 (en) * | 2003-10-09 | 2011-03-08 | Oracle International Corporation | Translating data access requests |
US7882132B2 (en) * | 2003-10-09 | 2011-02-01 | Oracle International Corporation | Support for RDBMS in LDAP system |
US7467238B2 (en) * | 2004-02-10 | 2008-12-16 | Hitachi, Ltd. | Disk controller and storage system |
JP4405277B2 (en) | 2004-02-16 | 2010-01-27 | 株式会社日立製作所 | Disk controller |
JP4441286B2 (en) * | 2004-02-10 | 2010-03-31 | 株式会社日立製作所 | Storage system |
US7146484B2 (en) * | 2004-06-15 | 2006-12-05 | Hitachi, Ltd. | Method and apparatus for caching storage system |
US20060224846A1 (en) | 2004-11-05 | 2006-10-05 | Amarendran Arun P | System and method to support single instance storage operations |
US20060129673A1 (en) * | 2004-12-01 | 2006-06-15 | Motorola, Inc. | Method and system for providing entity status information in a communication network |
US8250163B2 (en) * | 2005-06-09 | 2012-08-21 | Whirlpool Corporation | Smart coupling device |
US8676656B2 (en) * | 2005-06-09 | 2014-03-18 | Whirlpool Corporation | Method for product demonstration |
US8027752B2 (en) * | 2005-06-09 | 2011-09-27 | Whirlpool Corporation | Network for changing resource consumption in 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 |
US9009811B2 (en) * | 2005-06-09 | 2015-04-14 | Whirlpool Corporation | Network system with electronic credentials and authentication for appliances |
US20080137670A1 (en) * | 2005-06-09 | 2008-06-12 | Whirlpool Corporation | Network System with Message Binding for Appliances |
US20070288331A1 (en) * | 2006-06-08 | 2007-12-13 | Whirlpool Corporation | Product demonstration system and method |
US8816828B2 (en) * | 2005-06-09 | 2014-08-26 | Whirlpool Corporation | Recipe wand and recipe book for use with a networked appliance |
US8856036B2 (en) * | 2005-06-09 | 2014-10-07 | Whirlpool Corporation | Method of providing product demonstrations |
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 |
US9164867B2 (en) * | 2005-06-09 | 2015-10-20 | Whirlpool Corporation | Network for communicating information related to a consumable to an appliance |
BRPI0611726A2 (en) * | 2005-06-09 | 2010-11-09 | Whirlpool Co | apparatus for performing a useful duty cycle on a physical article |
US9122788B2 (en) * | 2005-06-09 | 2015-09-01 | Whirlpool Corporation | Appliance network for a networked appliance with a network binder accessory |
US7831321B2 (en) | 2005-06-09 | 2010-11-09 | Whirlpool Corporation | Appliance and accessory for controlling a cycle of operation |
US8571942B2 (en) * | 2005-06-09 | 2013-10-29 | Whirlpool Corporation | Method of product demonstration |
US8615332B2 (en) | 2005-06-09 | 2013-12-24 | Whirlpool Corporation | Smart current attenuator for energy conservation in appliances |
US8688813B2 (en) * | 2006-01-11 | 2014-04-01 | Oracle International Corporation | Using identity/resource profile and directory enablers to support identity management |
US8682733B2 (en) * | 2006-06-08 | 2014-03-25 | Whirlpool Corporation | System for product demonstration |
US7425810B2 (en) * | 2006-06-30 | 2008-09-16 | Lenovo (Singapore) Pte., Ltd. | Disk drive management |
US7747634B2 (en) * | 2007-03-08 | 2010-06-29 | Microsoft Corporation | Rich data tunneling |
US8325633B2 (en) * | 2007-04-26 | 2012-12-04 | International Business Machines Corporation | Remote direct memory access |
US7948999B2 (en) * | 2007-05-04 | 2011-05-24 | International Business Machines Corporation | Signaling completion of a message transfer from an origin compute node to a target compute node |
US7889657B2 (en) * | 2007-05-04 | 2011-02-15 | International Business Machines Corporation | Signaling completion of a message transfer from an origin compute node to a target compute node |
US7890670B2 (en) * | 2007-05-09 | 2011-02-15 | International Business Machines Corporation | Direct memory access transfer completion notification |
US8037213B2 (en) | 2007-05-30 | 2011-10-11 | International Business Machines Corporation | Replenishing data descriptors in a DMA injection FIFO buffer |
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 |
US7890597B2 (en) * | 2007-07-27 | 2011-02-15 | International Business Machines Corporation | Direct memory access transfer completion notification |
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 |
US20090055234A1 (en) * | 2007-08-22 | 2009-02-26 | International Business Machines Corporation | System and methods for scheduling meetings by matching a meeting profile with virtual resources |
US9009350B2 (en) * | 2008-04-01 | 2015-04-14 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US9225545B2 (en) * | 2008-04-01 | 2015-12-29 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US20100064072A1 (en) * | 2008-09-09 | 2010-03-11 | Emulex Design & Manufacturing Corporation | Dynamically Adjustable Arbitration Scheme |
US9223787B2 (en) * | 2008-09-26 | 2015-12-29 | Apple Inc. | Systems and methods for sideband communication between device and host to minimize file corruption |
US8166146B2 (en) * | 2008-09-29 | 2012-04-24 | International Business Machines Corporation | Providing improved message handling performance in computer systems utilizing shared network devices |
US8566286B1 (en) | 2009-05-15 | 2013-10-22 | Idera, Inc. | System and method for high speed database backup using rapidly adjusted dynamic compression ratios controlled by a feedback loop |
US8250283B1 (en) * | 2009-05-22 | 2012-08-21 | Google Inc. | Write-distribute command for RAID mirroring |
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 |
US8306950B2 (en) * | 2010-08-26 | 2012-11-06 | International Business Machines Corporation | Managing data access requests after persistent snapshots |
US8949453B2 (en) | 2010-11-30 | 2015-02-03 | International Business Machines Corporation | Data communications in a parallel active messaging interface of a parallel computer |
US8490092B2 (en) | 2011-07-06 | 2013-07-16 | Microsoft Corporation | Combined live migration and storage migration using file shares and mirroring |
US8949328B2 (en) | 2011-07-13 | 2015-02-03 | International Business Machines Corporation | Performing collective operations in a distributed processing system |
US8689047B2 (en) * | 2011-07-22 | 2014-04-01 | Microsoft Corporation | Virtual disk replication using log files |
US8930962B2 (en) | 2012-02-22 | 2015-01-06 | International Business Machines Corporation | Processing unexpected messages at a compute node of a parallel computer |
US8621074B2 (en) | 2012-04-27 | 2013-12-31 | Xerox Business Services, Llc | Intelligent work load manager |
US8996783B2 (en) | 2012-04-29 | 2015-03-31 | Hewlett-Packard Development Company, L.P. | Managing nodes in a storage system |
US8832325B1 (en) * | 2012-06-28 | 2014-09-09 | Emc Corporation | Transfer between storage devices |
US9600206B2 (en) | 2012-08-01 | 2017-03-21 | Microsoft Technology Licensing, Llc | Request ordering support when switching virtual disk replication logs |
US9549040B2 (en) | 2014-03-12 | 2017-01-17 | Instart Logic, Inc. | First cache purge optimization handling of unavailable nodes |
US9002990B1 (en) | 2014-03-12 | 2015-04-07 | Instart Logic, Inc. | Fast cache purge in content delivery network |
JP6307962B2 (en) * | 2014-03-19 | 2018-04-11 | 日本電気株式会社 | Information processing system, information processing method, and information processing program |
US9304865B2 (en) | 2014-03-26 | 2016-04-05 | International Business Machines Corporation | Efficient handing of semi-asynchronous raid write failures |
US20150378706A1 (en) * | 2014-06-30 | 2015-12-31 | Emc Corporation | Software overlays for disaggregated components |
US9892041B1 (en) * | 2014-09-30 | 2018-02-13 | Veritas Technologies Llc | Cache consistency optimization |
US10866768B2 (en) * | 2014-12-12 | 2020-12-15 | Advanced Micro Devices, Inc. | Storage location assignment at a cluster compute server |
US9864716B2 (en) * | 2015-05-20 | 2018-01-09 | International Business Machines Corporation | Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit |
US10061734B2 (en) | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit |
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 |
US10248565B2 (en) | 2016-09-19 | 2019-04-02 | Qualcomm Incorporated | Hybrid input/output coherent write |
US11349912B2 (en) * | 2016-11-29 | 2022-05-31 | Level 3 Communications, Llc | Cross-cluster direct server return in a content delivery network (CDN) |
US20180308214A1 (en) * | 2017-04-21 | 2018-10-25 | Intel Corporation | Data scrambling mechanism |
CN108052435A (en) * | 2017-12-13 | 2018-05-18 | 郑州云海信息技术有限公司 | A kind of control SES ends method, system, equipment and computer storage media |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014192A (en) | 1985-05-06 | 1991-05-07 | Motorola Computer X, Inc. | System for locating a file in a logical ring by sequentially forwarding access request with file system name and file name |
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
JP3237736B2 (en) * | 1993-09-07 | 2001-12-10 | ヒュンダイ エレクトロニクス アメリカ | Matrix structure of data storage device |
US5764903A (en) * | 1994-09-26 | 1998-06-09 | Acer America Corporation | High availability network disk mirroring system |
US5917723A (en) * | 1995-05-22 | 1999-06-29 | Lsi Logic Corporation | Method and apparatus for transferring data between two devices with reduced microprocessor overhead |
GB9601584D0 (en) * | 1996-01-26 | 1996-03-27 | Hewlett Packard Co | Fault-tolerant processing method |
US5802561A (en) * | 1996-06-28 | 1998-09-01 | Digital Equipment Corporation | Simultaneous, mirror write cache |
US6044367A (en) * | 1996-08-02 | 2000-03-28 | Hewlett-Packard Company | Distributed I/O store |
US6185601B1 (en) * | 1996-08-02 | 2001-02-06 | Hewlett-Packard Company | Dynamic load balancing of a network of client and server computers |
US6065102A (en) * | 1997-09-12 | 2000-05-16 | Adaptec, Inc. | Fault tolerant multiple client memory arbitration system capable of operating multiple configuration types |
US6192408B1 (en) * | 1997-09-26 | 2001-02-20 | Emc Corporation | Network file server sharing local caches of file access information in data processors assigned to respective file systems |
US6078990A (en) * | 1998-02-06 | 2000-06-20 | Ncr Corporation | Volume set configuration using a single operational view |
US6247099B1 (en) * | 1999-06-03 | 2001-06-12 | International Business Machines Corporation | System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers |
US6601187B1 (en) * | 2000-03-31 | 2003-07-29 | Hewlett-Packard Development Company, L. P. | System for data replication using redundant pairs of storage controllers, fibre channel fabrics and links therebetween |
-
1998
- 1998-08-11 US US09/132,441 patent/US6711632B1/en not_active Expired - Lifetime
-
1999
- 1999-08-10 EP EP99306310A patent/EP0980041A3/en not_active Withdrawn
- 1999-08-10 JP JP25773299A patent/JP4567125B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005010767A1 (en) * | 2003-07-24 | 2005-02-03 | Fujitsu Limited | Data storage system |
JP2016018384A (en) * | 2014-07-08 | 2016-02-01 | 富士通株式会社 | Storage control device, storage system, and program |
Also Published As
Publication number | Publication date |
---|---|
EP0980041A2 (en) | 2000-02-16 |
US6711632B1 (en) | 2004-03-23 |
JP4567125B2 (en) | 2010-10-20 |
EP0980041A3 (en) | 2008-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4567125B2 (en) | Method and apparatus for transferring write cache data in data storage and data processing system | |
US6078990A (en) | Volume set configuration using a single operational view | |
US6256740B1 (en) | Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric | |
US6105122A (en) | I/O protocol for highly configurable multi-node processing system | |
US6247077B1 (en) | Highly-scalable parallel processing computer system architecture | |
US6594698B1 (en) | Protocol for dynamic binding of shared resources | |
US6148349A (en) | Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification | |
JP4615643B2 (en) | Method for identifying hazardous condition data in a data storage system | |
CN110710168B (en) | Intelligent thread management across isolated network stacks | |
US7937437B2 (en) | Method and apparatus for processing a request using proxy servers | |
US8443376B2 (en) | Hypervisor scheduler | |
US8677034B2 (en) | System for controlling I/O devices in a multi-partition computer system | |
US8635318B1 (en) | Message broadcast protocol which handles configuration changes in a cluster of virtual servers | |
JPH09237226A (en) | Method for highly reliable disk fencing in multi-computer system and device therefor | |
JP2002222110A (en) | Storage system and virtual private volume controlling method | |
JPH08255122A (en) | Method for recovery from fault in disk access path of clustering computing system and related apparatus | |
EP2092425A2 (en) | Methods and systems for load balancing of virtual machines in clustered processors using storage related load information | |
US6742072B1 (en) | Method and apparatus for supporting concurrent system area network inter-process communication and I/O |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060710 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100312 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100401 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100701 |
|
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: 20100716 |
|
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: 20100805 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |