JPH11510631A - Advanced data server with I / O ring coupled to disk array ring - Google Patents

Advanced data server with I / O ring coupled to disk array ring

Info

Publication number
JPH11510631A
JPH11510631A JP9538696A JP53869697A JPH11510631A JP H11510631 A JPH11510631 A JP H11510631A JP 9538696 A JP9538696 A JP 9538696A JP 53869697 A JP53869697 A JP 53869697A JP H11510631 A JPH11510631 A JP H11510631A
Authority
JP
Japan
Prior art keywords
ring
data
disk
controller
server
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.)
Ceased
Application number
JP9538696A
Other languages
Japanese (ja)
Inventor
エドワード エフロン
ハルク レオン オストルンド
Original Assignee
フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フィリップス エレクトロニクス ネムローゼ フェンノートシャップ filed Critical フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
Publication of JPH11510631A publication Critical patent/JPH11510631A/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 高度データ・サーバーが1個の入出力リングを含み、この入出力リングは少なくとも1個の入出力アクセス・チャネルに結合し、このチャネルはデータを上記入出力リングに供給するか又はデータを上記入出力リングから読み取る;また、該高度データ・サーバーは1個のディスク・アレイ・リングを含み、このディスク・アレイ・リングは少なくとも2個のディスク・アレイに結合し、これらアレイは、上記ディスク・アレイ・リングから受信したデータをその中に蓄積するか、又はそこからデータを検索(retrieve)して上記ディスク・アレイ・リングに受信させる。またこのディスク・アレイ・リングは、上記入出力リングとも結合しているため、データはこれらリングの間を流れることができる;更に、該高度データ・サーバーは1個のサーバー制御装置を含み、この装置は、上記入出力リング及び上記ディスク・アレイ・リングに結合してそれらの諸動作を制御する。 An advanced data server includes an I / O ring that couples to at least one I / O access channel that supplies data to said I / O ring. Or reading data from said I / O ring; and said advanced data server includes one disk array ring, said disk array ring coupled to at least two disk arrays, and Stores the data received from the disk array ring therein, or retrieves the data therefrom and causes the disk array ring to receive it. The disk array ring is also coupled to the I / O ring so that data can flow between the rings; further, the advanced data server includes one server controller, A device couples to the I / O ring and the disk array ring to control their operations.

Description

【発明の詳細な説明】 ディスク・アレイ・リングと結合した入出力リング を有する高度データ・サーバー 本発明は、1個の高度データ・サーバー及び複数のその種サーバーを含む1個 のサーバー・システムに関連する。更に特定すれば、本発明は、データ(音声、 ビデオ、文章、及び/又はコンピュータ・データ)を受信し蓄積する能力、及び /又は一旦蓄積されたこの種データを検索し読出す能力のある1個の高度データ ・サーバーに関連する。このサーバーは拡張が容易であり、またこの種サーバー を含むサーバー・システムも同様に拡張容易である。 情報時代が進展を続け、また情報スーパー・ハイウェイが具体化を始めるにつ れて、従来よりも一層大容量の情報を一層高速で蓄積し検索できるような高度デ ータ・サーバー(例えばビデオ・サーバー)及びサーバー・システムへの要求が 増大を続けることになる。従って、この種サーバー及びサーバー・システムが容 易に拡張できることとなれば便利であり極めて有利である。換言すれば、この種 サーバーは、蓄積要素(storage components)及び/又は入出力(I/O)アクセス・ チャネルを追加して拡張でき、またこの種サーバー・システムはサーバーを追加 して拡張できるようにすべきであり、しかもそうした拡張が、この種サーバー又 はサーバー・システムの機能に影響を及ぼさないで拡張中及び拡張後も通常の動 作を継続できるようにすべきである。 フィリップス社の子会社/事業部(Philips subsidiary/division)が1990年代 初期に導入したメディア・プール型ビデオ・サーバー(Media Pool video server )により、大容量の音声、ビデオ、文章、及び/又は関連データが、単数または 複数のユーザーによって迅速に蓄積し検索できるようになった。このことはビデ オ・サーバー市場に革命を起こした。上記ビデオ・サーバーは複数の入出力アク セス・チャネルと複数のディスク・アレイを用い、両者は1個のコミュテータ(c ommutator)により互いに結合している。映画や番組又はこれらに類似のもの(以 下一括して「番組(program)」と呼ぶ)に関連する音声、ビデオ、文書及び/又 は関連データ(又はコンピュータ・データ又はそれらの任意の組合せ)は、入出 力アクセス・チャネルから受信し、複数のディスク・アレイの中に蓄積される。 この場合コミュテータが、上記データの異なる部分(portion)を、ディスク・ア レイの中の異なるディスクに供給するため、データは、アレイを横断してストラ イプされる(striped across the arrays)すなわち動画データを分割して複数の ディスクに分散させる。更に各ディスク・アレイに供給されるデータは、上記デ ィスク・アレイの中の(複数の)ディスク・ドライブ(それぞれ少なくとも1個 のディスクを含む)を横断してスカジー(SCSI)インターフェイスに従って蓄積さ れる。このようにデータを分布させるため、特定の番組に関連するデータがコミ ュテータにより検索され、1個またはそれ以上の入出力アクセス・チャネルを介 して1人または複数のユーザーに(逐次または同時に)供給されるにあたり、そ れが迅速かつ高効率で行なわれ、ディスクの待時間による遅延は減少し広い帯域 幅が維持される。 上記メディア・プール型ビデオ・サーバーに関するそれ以上の議論は、米国特 許出願第08/125,996号(1993年9月23日出願)、及び米国特許出願第08/389,672 号(1995年2月16日出願)に記載され、その内容は本出願で参照される。ディス ク・アレイ及びディスク・アレイ内のディスク・ドライブを共に横断するストラ イピング(この組合せは以下「階層/二重ストライピング」と呼ぶ)に関するそ れ以上の議論は、米国特許出願第08/530,041号(1995年9月19日出願)に記載さ れ、その内容は本出願で参照される。 メディア・プール型ビデオ・サーバーの1つの問題点は、容易に拡張できない ことである。メディア・プール型ビデオ・サーバーに、ディスク・ドライブ及び /又はディスク・アレイが追加されると、「再立上げ(rebuild)」動作を行なう 必要がある。言い換えると、メディア・プール型ビデオ・サーバーに蓄積された データを読み出して、拡張した各蓄積構成要素の間に階層/二重ストライピング によって再蓄積(restore)せねばならない。もっと具体的にいえば、元のディス ク・アレイ及びその中のディスク・ドライブに収容されていたデータはストライ プし直して、階層/二重ストライピング技術により、新旧ディスク・アレイ及び その中の新旧ディスク・ドライブの双方の間に再ストライプ(re-striped)せねば ならない。この再ストライプ動作の結果、メディア・プール型ビデオ・サーバー は拡張作業の間はオフラインにせざるを得ない。更に、メディア・プール型ビデ オ・サーバーに入出力アクセス・チャネルが追加されると、やはりそのための再 構成に伴いオフラインにせざるを得ない。その上、入出力アクセス・チャネルの 追加はメディア・プール型ビデオ・サーバーの帯域にも影響を及ぼす可能性があ る。 本発明によれば、上述のような現行メディア・プール型ビデオ・サーバーの諸 問題を解消でき、その一方で引き続き階層二重ストライピングを利用して、ディ スクの待時間を短縮し広い帯域幅を維持できる。本発明では、そのためにそれぞ れ入出力アクセス・チャネル及びディスク・アレイに結合した1個またはそれ以 上の分離したリングを含む高速リング・アーキテクチャを使用する。このアーキ テクチャでは、各リングごとに1個の知的リング制御装置を使用する。その目的 は: (a) リングによる受信及び/又は受信したデータの分配を制御すること;及び (b) 下記の2つの情報: (i) そのリングには常に幾つの、及び/又はどのアクセス・チャネル又はディ スク・アレイ(及びそれぞれに含まれるディスク・ドライブの数量)が結合され 利用可能なのか、及び/又は (ii)受信及び(又は)分配をそのように制御した結果、データはどこに蓄積さ れているか、 を利用すること; である。このアーキテクチャには更に、入出力アクセス・チャネルとともに用い る1個またはそれ以上のリングを、ディスク・アレイとともに用いる1個または それ以上のリングに結合する手段を含む。これらの特徴によって、本発明に基づ くサーバーは拡張が容易になる。同様に、その種サーバーを1個またはそれ以上 含むサーバーも拡張が容易になる。 本発明に基づく高度データ・サーバーは: (a) 少なくとも1個の入出力アクセス・チャネルと結合した1個の入出力リング であって、該チャネルはデータを該入出力リングに供給し又はデータを該入出力 リングから読出す機能があるところの1個の入出力リング; (b) 少なくとも2個のディスク・アレイに結合した1個のディスク・アレイ・リ ングであって、これらのアレイは上記ディスク・アレイ・リングから受信したデ ータをその中に蓄積するか、又はその中から検索したデータをデイスク・アレイ ・リングに渡す機能があり、且つ該ディスク・アレイ・リングは、入出力リング にも結合しているため、データはこれらリングの間を流れるところのディスク・ アレイ・リング;及び (c) 入出力リング及びディスク・アレイ・リングに結合した1個のサーバー制御 装置であって、入出力リング及びディスク・アレイ・リングを制御してそれらに よるデータの受信・蓄積又はデータの検索・読出しを行なわせるところの制御装 置; の各装置を含む。更に本発明に基づいて、入出力リングは第1のリング制御装置 を含み、この制御装置は: (a) 少なくとも1個の入出力アクセス・チャネルからのデータの受信及びそのデ ータのディスク・アレイ・リングへの転送;又は (b) ディスク・アレイ・リングからのデータの受信及びそのデータの少なくとも 1個の入出力アクセス・チャネルへの転送; を制御し、且つ、ディスク・アレイ・リングは第2のリング制御装置を含み、こ の制御装置は: (a) 入出力リングからのデータ受信とそのデータの少なくとも2個のディスク・ アレイにわたる蓄積;又は (b) 少なくとも2個のディスク・アレイからのデータの検索及びそのデータの入 出力リングへの転送; を制御する。(両リング制御装置がこのように動作すると、サーバー制御装置が 必ずしも必要なくなることを注記しておく。) 本発明の1つの態様によれば、第2のリング制御装置は: (a) デイスク・アレイ・リングが1パケットのデータを受信すると、この制御装 置は、デイスク・アレイ・リングに幾つのデイスク・アレイが結合し、そのうち どれが活きていて利用できるかを評価し、少なくとも2個のディスク・アレイが 常に活きていて利用可能であるので、それを根拠に、上記データを活きていて利 用可能な(複数の)ディスク・アレイを横断してストライプし、上記データ・パ ケットの異なるデータ部分(data portion)が、それぞれこれらディスク・アレイ の異なる1個に受信・蓄積されるように(リングを制御)すること;及び (b) どのデータ部分がどのディスク・アレイに蓄積されているかを示す情報を蓄 積すること; という動作ができる。更に加えて、活きていて利用可能なディスク・アレイの少 なくとも1個は、1個のアレイ制御装置及び少なくとも2個のディスク・ドライ ブを含み、上記アレイ制御装置は: (a) そのディスク・アレイが1個のデータ部分を受信すると、この制御装置は、 活きていて利用可能なディスク・アレイに幾つのディスク・ドライブが含まれる か、及びそれらのうちどのディスク・ドライブが活きていて利用可能かを評価し 、少なくとも2個のディスク・ドライブが常に活きていて利用可能なので、それ を根拠に、そのデータ部分を活きていて利用可能な(複数の)ディスク・ドライ ブを横断してストライプし、その結果上記データ部分の異なるデータ細分(data sub-portion)が、それぞれこれらディスク・ドライブの異なる1個に受信・蓄積 されるように(アレイを制御)すること;及び (b) どのデータ細分がどのディスク・ドライブに蓄積されているかを示す情報を 蓄積すること; という動作ができる。 本発明の今一つの態様によれば、データの、異なるデータ部分が少なくとも2 個のディスク・アレイの中の異なるアレイに蓄積され、そして第2のリング制御 装置は、そのデータのどのデータ部分が少なくとも2個のディスク・アレイのど れに蓄積されているかを示す情報を蓄積できる。更に加えて、少なくとも2個の ディスク・アレイのうち少なくとも1個は、少なくとも2個のデイスク・ドライ ブを含み、それらドライブの中には少なくとも1個のディスク・アレイに蓄積さ れているデータ部分に関する異なる細分が蓄積されていて、更に少なくとも1個 のディスク・アレイは、どのデータ細分が少なくとも2個のデイスク・ドライブ のどれに蓄積されているかを示す情報を蓄積している。 本発明によるサーバー・システムは:(a)1個の上記型のサーバー;及び(b)そ のサーバー制御装置に結合した1個のサーバー動作制御装置;を含み、該サーバ ー動作制御装置の動作によって、サーバーは、ユーザー側の要求がデータを受信 ・蓄積したいか検索・読出したいかに基づいて、データを受信・蓄積するか、又 は検索・読出する。上記システムは、更にサーバー動作制御装置に結合した少な くとも1個のユーザー・インタフェイス装置を含むことがある。この装置はユー ザーの要求を発生させる。 本発明(及び関連する追加の態様)は、以下付図を引用して詳細に説明する。 付図は下記3点である: 図1は、本発明に基づく高度データ・サーバーの1実施例のブロック図を示す 図であり; 図2は、図1のサーバーを含むところの本発明に基づくサーバー・システムの ブロック図であり、;また 図3は、本発明に基づく高度データ・サーバーの別の1実施例を示すブロック 図である。 (図中の同一番号は同一要素を示す。) 図1は本発明に基づく1個の高度データ・サーバー(サーバー10)のブロック 図である。サーバー10は、1個の入出力リング11、1個のディスク・アレイ・リ ング12、及び1個のサーバー制御装置13を含む。入出力リング11とディスク・ア レイ・リング12は如何なる型でもよく(例えばトークン・リング、LANなど)、 これに沿ってデータを循環させるが、望ましいのは光ファイバー型である。入出 力リング11とディスク・アレイ・リング12は、高速カップリング16で互いに結合 し、また通信線114と115を介してサーバー制御装置13に結合する。 入出力リング11は、リング制御装置14及び複数のリング・インタフェイス装置 (ring interface devices- RID)50-59を含む。図1の例では、リング・インタフ ェイス装置50-55は入出力インタフェイス装置(I/O D)60-65と結合する。入出力 インタフェイス装置60-65は、更にそれぞれ入出力アクセス・チャネルに結合す る。入出力アクセス・チャネルは同一の型でも異なる型でもよい。例えば、入出 力アクセス・チャネルの一部または全部がATMの入出力アクセス・チャネルでも よいし、D1の入出力アクセス・チャネル、又は他の型のデータ・チャネルで適当 な同型のデータ・チャネルに結合できるものでもよい。リング制御装置14は、入 出力リング11を通信線114を介してサーバー制御装置13に直接結合する。 ディスク・アレイ・リング12は、1個のリング制御装置15、及び複数のリング ・インタフェイス装置(RID)70-79を含む。図1の例では、リング・インタフェイ ス装置70-75がそれぞれディスク・アレイ180-185と結合している。ディスク・ア レイ180-185は、それぞれ1個のアレイ制御装置と、それに結合した複数のディ スク・ドライブ(例えば光学、磁気光学、位相変化、磁気型など)を含む。図1 の例では、ディスク・アレイ180-185は、アレイ制御装置(array controllers-AC )80-85を含む。アレイ制御装置80はリング・インタフェイス装置70に結合する; アレイ制御装置81はリング・インタフェイス装置71に結合する:以下同様である 。リング制御装置15は、ディスク・アレイ・リング12を、通信線115を介してサ ーバー制御装置13に直接結合する。 図1において、入出力リング11とディスク・アレイ・リング12は、それぞれ同 数のリング・インタフェイス装置を含んでいる。これは本発明に基づく入出力リ ングとディスク・アレイ・リングの単なる1例に過ぎない。各リングのインタフ ェイス装置数はこれより多くても少なくてもよい。数も両リング同一の必要はな い。 サーバー10の動作の仕方を理解するためには、サーバー10がデータをどのよう に受信・蓄積し、それを検索・読出するかを論じるのが役立つ。先ずデータの受 信・蓄積から議論を始める。 サーバー制御装置13は高水準の一般的な動作制御器として動作する。サーバー 10がデータを受信蓄積するには、受信すべきデータは何か、どこで受信すべきか 、いつ受信すべきか、に関する情報が、サーバー動作制御装置(図示せず)によ って、サーバー制御装置13に通信線17を介して伝えられる。(上記サーバー動作 制御装置は、ユーザーの操作するコンピュータやマイクロプロセッサか、又はシ ステム・コンピュータが動かすコンピュータやマイクロプロセッサの何れかであ る。)例えば、もしサーバー10が、ある特定時刻に始まる特定の番組に関するデ ータを、入出力アクセス・チャネルの1つから受信しようとしているなら、サー バー制御装置13は、その番組の名前、関連するデータをどのリング・インタフェ イス装置から受信すべきか、受信はいつ開始すべきかの情報を受信する。 サーバー動作制御装置は、リング・インタフェイス装置50-59のうちのどの装 置から特定番組に関するデータを受信すべきかをサーバー制御装置13に対して伝 えるに先立ち、上記リング・インタフェイス装置が1個の入出力アクセス・チャ ネルに結合していることを確かめる。この動作は入出力リング11とサーバー制御 装置13の協力で可能になる。もっと具体的にいえば、リング・インタフェイス装 置50-59は、入出力リング11を介して、これらリング・インタフェイス装置のど れが入出力アクセス・チャネルに結合しているかの情報をリング制御装置14に対 して供給する。その結果として、サーバー制御装置13は、その情報を確認情報し て、それをサーバー動作制御装置に伝える。 サーバー10が特定番組に関するデータを受信するに先立ち、サーバー制御装置 13は、(a)リング制御装置14に対して、上記番組及びその関連データに対応(asso ciated)すべきID符号を供給する。更にサーバー制御装置13は、(b)リング制御装 置14に対して、リング・インタフェイス装置のどれが上記データを受信するかを 伝える。サーバー制御装置13は、サーバー動作制御装置によって示される、サー バー10が受信すべき番組のそれぞれに対して異なるID符号を選び、(この)ID情 報を記憶部(図示せず)に蓄積する。このID情報は、サーバー10が既に受信して そこに蓄積した番組に対応するID符号を指定するものである。リング制御装置14 は、どのリング・インタフェイス装置が特定番組関連のデータを受信するかにつ いての情報を受信すると、これに応答して、読込みコマンド(read in command) をそのリング・インタフェイス装置に送り、それにより、それに結合した入出力 インタフェイス装置と上記リング・インタフェイス装置が読込み(read in)モー ドで動作する。これらリング・インタフェイス装置の与える情報によって、リン グ制御装置14は、リング・インタフェイス装置50-59のどれとどれが入出力アク セス・チャネルに結合しているかが分かる。 リング・インタフェイス装置50-55の受信するデータは、データ・パケットの 形態が望ましい。この形態を使用した望ましい実施例においては、入出力インタ フェイス装置60-65を経由してリング・インタフェイス装置50-55に結合する入 出力アクセス・チャネルは、ATM方式の入出力アクセス・データ・チャネルであ り、これらチャネルはパケット形態でデータを受信する。しかしながら、サーバ ー10の設計によって、パケット化していない入出力インタフェイス装置60-65か ら受信したデータを、その入出力インタフェイス装置で受信してからパケット化 データに変換するようにも設計できる。(こうした場合、入出力インタフェイス 装置の設計により、読出しモードで使う場合に限り、パケット化データを入出力 アクセス・チャネルの正しいフォーマットに変換するようにもできる。)更に、 リング・インタフェイス装置50-55はパケット化したデータを受信するのが望ま しいとはいえ、それは必要条件ではなく、本発明は非パケット・データとともに 用いてもよいことを注意しておく。 例えば、リング・インタフェイス装置50が(それに結合した入出力アクセス・ チャネルから入出力インタフェイス装置60を経由して)特定番組関連のデータ・ パケットを連続して受信するとすれば、リング・インタフェイス装置50は、その 番組に関する第1のデータ・パケットを受信した場合直ちに、受信コマンド(rec eipt command)をリング制御装置14に対して、入出力リング11経由で送出する。 この受信コマンドは、特定番組に関連するデータ・パケットの受信が始まったこ とを示す。その番組に関連する各データ・パケットを受信するごとに、リング・ インタフェイス装置50は、それに受信符号(receipt code)を付加し、そのデータ ・パケットがリング・インタフェイス装置50によって受信されたことを示す。そ れが終わると、リング・インタフェイス装置50はそのデータ・パケットを入出力 リング11に乗せる。入出力リング11を回るデータの流れは矢印900で示す。 リング制御装置14が、入出力リング11を経由して、特定番組に関するデータ・ パケット(受信符号とサーバー制御装置13の受信した他のデータにより分かる) を受け取る都度、リング制御装置14は、受信符号を、そのデータ・パケットの属 する番組に対してサーバー制御装置13が選んだ専用の(appropriate)ID符号に置 き換える。望ましい実施例においては、リング制御装置14は、特定番組の各デー タ・パケットに対して通し番号(sequence order number)を付与し、その番組に 属するデータ・パケットの系列の中でそのデータ・パケットがどこに位置するか を示す。それが終わると、リング制御装置14は、リング制御装置15と通信し、こ れらのデータ・パケットをリング制御装置14からリング制御装置15へ転送する準 備が、双方ともできたかどうかを決定する。 もし、リング制御装置14が特定番組に属するデータ・パケットの転送準備を終 え、リング制御装置15が同じく受信準備を終えているなら、リング制御装置14は これらのデータ・パケットを、カップリング16経由でリング制御装置15に転送す る。しかし、リング制御装置14又はリング制御装置15の何れかがこれらデータ・ パケットの送受準備を終えていないとすれば、上記データ・パケットは双方の準 備が終わるまで入出力リング11を環流する。データ・パケットの、リング制御装 置14からリング制御装置15への転送順序は受信順序と同一であるのが望ましい。 望ましい実施例では、データ・パケットに付与された通し番号に基づいて、そう なるようリング制御装置14が保証できる。各データ・パケットがリング制御装置 14からリング制御装置15に送られると、そのパケットはリング制御装置14によっ て入出力リング11から排除される。 特定番組に属するデータ・パケットの受信に先立ち、サーバー制御装置13は、 リング制御装置15に対して信号を送り、1個の特定ID符号をもつデータ・パケッ トを受信する予定であることを通知する。そのID符号をもつ(つまりその番組に 属する)各データ・パケットをリング制御装置15が受信するごとに、リング制御 装置15は、リング・インタフェイス装置70-79のうちどれとどれがディスク・ア レイと結合しており、またこれらディスク・アレイのうちどれとどれが活きてい てそのデータ蓄積に利用可能かを評価する。評価に必要な情報は、リング・イン タフェイス装置70-79によって、リング制御装置15に対して、ディスク・アレイ ・リング12を経由して与えられる。この場合、リング制御装置15の行なう評価内 容には、活きていてデータ蓄積に利用可能なかつリング・インタフェイス装置に 結合したディスク・アレイの数に、変化が起こっていないことの確認を含めるの が望ましい。 この評価に基づいて、リング制御装置15は、データ・パケットのパケットを解 除して、その各部分(今後この種各部分を「データ部分(data portion)」と呼ぶ )に対して割当て符号(assignment code)を付与する。この符号は、リング・イ ンタフェイス装置70-79のどれが、上記データ部分を受信してそれを所属ディス ク・アレイに蓄積すべきかを示すものである。更に、リング制御装置15はまた、 参照順序番号〈reference order number〉(ID符号を含む可能性がある)をデー タ部分のそれぞれに付与するので、これらデータ部分の参照が可能である。 サーバー10、及び特にリング制御装置15の動作方式は、ディスク待時間を短縮 するためアレイを横断してストライピングを行なうという、メディア・プール型 ビデオ・サーバーで導入された原理に、忠実に従っている。もっと具体的にいえ ば、リング制御装置15の働きにより、特定番組に属するデータ(同一ID符号を付 与されたデータ)を含むデータ・パケットの各データ部分は、活きていて利用可 能なディスク・アレイの上に横断的にストライプされる。これを達成するため、 リング制御装置15は、特定番組に属するデータ(同一ID符号を付与されている) を含む連続した(successive)データ・パケットの各連続したデータ部分を、それ ぞれ、活きていてデータ蓄積に利用できるディスク・アレイを有する、複数の連 続したリング・インタフェイス装置の1つに割当てるよう動作するのが望ましい 。 リング制御装置15には記憶部(図示せず)があり、特定番組に属する各データ 部分に対して割当てられた(a)参照順序番号、及び(b)リング・インタフェイス装 置はどれか、を示す情報を蓄積する。(従って、リング制御装置15は、参照番号 のどれとどれが特定ID符号に対応するかを決定できる。更に、リング制御装置15 の記憶部には、どのデータ・パケット、特にどの通し番号のパケットから、特定 番組に属するデータ部分が元来含まれていたかを示すパケット情報が蓄積される のが望ましい。(特定番組に属する連続したデータ・パケットの連続したデータ 部分の参照順序番号が特定の順序(particular sequence)に並んでいるのであれ ば、リング制御装置15の記憶部には、特定番組に属するデータ・パケットの通し 番号を蓄積する必要はないことを注意しておく。) 図1において、次のように仮定する:すなわち図に示すディスク・アレイ180- 185が何れも活きていてデータ蓄積に利用可能であり、最初の2個の連続するデ ータ・パケットのそれぞれに含まれるデータが、それぞれ6個の連続するデータ 部分に分割される、すなわち第1データ・パケットは連続するデータ部分A,B,C, D,E,Fに分割され、第2データ・パケットは連続するデータ部分G,H,I,J,K,Lに 分割された;とする。このように仮定すれば、望ましい実施例に基づいて、リン グ制御装置15は、これらのデータ部分に下記の表1に示すように参照順序番号を 割当て、(下表右の)リング・インタフェイス装置で受信できるようにする。 この例によれば、リング制御装置15は、例えば各データ部分(上表に示す)に 対して、リング・インタフェイス装置70-75のうちどれがそのデータ部分を受信 すべきかを示すように、割当て符号を付与することもできる筈である。例えば、 部分AとGには割当て符号70を付与し、部分BとHには割当て符号71を与える、 という具合である。 各データ部分がそれぞれの参照順序番号と割当て符号を受取ると、リング制御 装置15は、それらデータ部分をディスク・アレイ・リング12の上に乗せる。ディ スク・アレイ・リング12を環流するデータの流れは矢印901で示す。環流が始ま ると、割当てられたリング・インタフェイス装置70-75は、それぞれ、ディスク ・アレイ・リング12上を環流中のどのデータ部分が割当て符号を含んでいるかを 検出し、それらデータ部分を自己に属するディスク・アレイに供給して蓄積させ る。 更に上記の例によれば、リング・インタフェイス装置70が、ディスク・アレイ ・リング12上で、割当て符号70を付与された1個のデータ部分(例えば部分A)を 検出すると、リング・インタフェイス装置70は、そのデータ部分をディスク・ア レイ180に供給する。これと同様、リング・インタフェイス装置71が、ディスク ・アレイ・リング12上で、割当て符号71を付与された1個のデータ部分(例えば 部分B)を検出すると、リング・インタフェイス装置71は、そのデータ部分をディ スク・アレイ181に供給する。その他のリング・インタフェイス装置72-75も同様 に動作する。 リング・インタフェイス装置は、1個のデータ部分を検出し受信すると、リン グ制御装置15に対して、そのデータ部分に対応する参照順序番号を示す1個の信 号を送り、受信を完了した旨を通知する。それが終わると、リング制御装置15は そのデータ部分が次回リング上に環流してきた際、これをディスク・アレイ・リ ング12から排除する。 各ディスク・アレイ180-185に供給されるデータは、アレイに含まれるディス ク・ドライブの中に、SCSI技術に従って、それらを横断してストライプされる形 で蓄積される。本発明に基づいて、このストライピング(ディスク・ドライブ横 断ストライピング)を達成する過程は、データ部分をディスク・アレイにストラ イプする過程におけると同様、活きている利用可能な蓄積要素の評価、及びこの 評価に基づいて引き続き行なわれる、そのデータのそれら蓄積要素への割当てと 横断的ストライピングを含む。 ディスク・アレイ180-185に含まれるアレイ制御装置80-85の各々は、それぞれ 1個のデータ部分を受信した際、そのディスク・アレイにディスク・ドライブが 幾つ含まれるか、及びそのどれとどれが活きていてデータの蓄積に利用できるか について評価を行なう。アレイ制御装置80-85には、上記評価をするために十分 な情報が与えられる。リング・制御装置15の場合同様、アレイ制御装置の評価動 作には、活きていてデータ蓄積に利用可能な所属ディスク・ドライブの数に変化 が起こっていないことを確認する過程を含むのが望ましい。 上記評価に基づき、アレイ制御装置(例えばアレイ制御装置80)は、そのデー タ部分のデータ、すなわちその連続するそのデータ細分を、活きていてデータ蓄 積に利用可能な所属ディスク・ドライブのすべてについて、異なるドライブを横 断するようにストライプする。ディスク・アレイ制御装置80-85のそれぞれは、 記憶部を含み、その中の情報は、受信したデータ部分の各データ細分が、どこに 、すなわちどのディスク・ドライブに蓄積されているかを、対応する参照順序番 号とともに示す。 特定番組に属するデータがサーバー10に受信され蓄積されてしまうと、そのデ ータは検索・読出による利用が可能になる。以下はその動作の議論であるが、検 索・読出動作は、受信・蓄積動作とほぼ同様で順序が逆であることは理解できよ う。 特定番組に属するデータをサーバー10から検索し読み出そうというとき、サー バー制御装置13は、通信線17経由で、サーバー動作制御装置(図示せず)から、 情報を受信する。その情報内容は、検索すべき番組名、読み出すべきデータの供 給元(すなわち、1つまたはそれ以上の入出力アクセス・チャネルに結合された 1つまたはそれ以上のリング・インタフェイス装置のどれか)、及び読出しを開 始すべき時刻である。リング制御装置14に対して、1つの番組に属するデータを 、1つまたはそれ以上のリング・インタフェイス装置のどれに供給すべきかを通 知するに先立ち、サーバー動作制御装置は、それらのリング・インタフェイス装 置が入出力アクセス・チャネルに結合されていることを確認する。すなわち、リ ング・インタフェイス装置50-59は、リング制御装置14に対して、入出力リング1 1経由で、それらのうちどれとどれが入出力アクセス・チャネルに結合されてい るかを通知し、その結果サーバー制御装置13は確認情報を得てそれをサーバー動 作制御装置に供給することができる。 サーバー制御装置13は、何を、どこで、いつ(読み出すべきか)に関する情報 を受信すると直ちに、自己の記憶部から、検索・読出を要求されている特定番組 (以下「選択された番組」と呼ぶ)に対応するID符号を決定する。それが終わる と、リング制御装置15と14は、サーバー制御装置13と協力して、選択された番組 に属するデータはそれを蓄積するディスク・アレイからいつ検索する必要がある か、そのデータはリング制御装置15からリング制御装置14にいつ供給すべきか、 及び正しい時刻に読出を始めるためには、そのデータを読み出すべき1つ又はそ れ以上のアクセス・チャネルに結合した1つ又はそれ以上のリング・インタフェ イス装置は、そのデータをいつ受信すべきか、を決定する。次いでサーバー制御 装置13は、リング制御装置14及び15とともにこの情報を使い、リング制御装置14 及び15が正しい時刻に適切な機能を果たすよう保証する。 選択された番組に属するデータの検索は、リング制御装置15が検索コマンドを ディスク・アレイ・リング12に送って、そのデータを蓄積するディスク・アレイ (複数)にそれを受信させることから始まる。これらの検索コマンドは、ディス ク・アレイ180-185のどれとどれを検索すべきかを指定し、それにより対象とな るデータ部分がディスク・アレイ・リング12上に供給される。 リング制御装置15がどんな検索コマンドを送るかは:(a)参照順序番号と関連パ ケット情報(後者は利用できる場合のみ)、及び選択された番組対応のID符号; 更に(b)記憶部に蓄積された関連する割当て符号(assognment codes);に基づい て決定される。典型的な検索コマンドには、どのデータ部分を検索すべきかが参 照順序番号を介して、及びどのディスク・アレイから検索すべきかが割当て符号 を介して、それぞれ示される。 1個のリング・インタフェイス装置(例えば70)が、それと結合したディスク ・アレイ(例えば180)に対する検索コマンド(例えば割当て符号70をもつコマン ド)を受信すると、このリング・インタフェイス装置はその検索コマンドをその ディスク・アレイに転送する。すると、そのディスク・アレイに結合したアレイ 制御装置(例えば80)の働きで、その検索コマンドが検索を要求するデータ部分 (例えば部分A,参照順序No.1で示す、前述)が検索されてそれに結合したリン グ・インタフェイス装置(例えば70)に供給される。それが終わると、そのリン グ・インタフェイス装置は、そのデータをディスク・アレイ・リング12の上に乗 せる。 要求されたデータ部分を獲得し検索するため、アレイ制御装置(例えば80)は 自己の記憶部を探して、どのデータ細分が、どんな順序で、そのデータ部分を構 成しているか、及びどのディスク・ドライブにそれらが蓄積されているかを決定 する。それが終わると、その情報に基づいて、そのアレイ制御装置は、それらの 細分を正しい順序で検索し、それら細分の属するデータ部分に対応する参照順序 番号を付与し、それら細分を1個のデータ部分として、結合するリング・インタ フェイス装置(例えば70)に供給する。 いま述べた過程は、リング制御装置15,リング・インタフェイス装置70-75,及 びディスク・アレイ180-185により行なわれ、その結果、選択された番組に属す るデータ部分は、それらのデータ部分が蓄積されたディスク・アレイ180-185(及 びそれらに含まれるディスク・ドライブ)から検索され、ディスク・アレイ・リ ング12に供給される。この場合、リング制御装置15の発するコマンドは、選択さ れた番組に属するデータ部分がディスク・アレイ180-185から元の正しい順序で 検索されるような検索コマンドであることが望ましい。 選択された番組に属するデータ部分がディスク・アレイ・リング12に現われ始 めると、リング制御装置15は、これらのデータ部分を再度パケット化し、各デー タ・パケットに、これらデータ部分の属する番組対応のID符号を付加する。これ らデータ部分は、元の形(サーバー10で受信したときこれらデータ部分を含んで いたのと同一のデータ・パケット)に再パケット化してもよいし、新しい形でも よい。 選択された番組に属するデータ部分の再パケット化が、その元の形でなされよ うと、新しい形でなされようと、重要なことはその番組に属するデータ部分が元 の順序で再パケット化されることである。リング制御装置15の記憶部は、参照順 序番号のほか、多分、パケットの通し番号をも含み、それらの情報によりこのこ とが十分可能である。そうであるとすれば、仮に選択された番組に属するデータ 部分がディスク・アレイ180-185から元の順序で検索されない場合でも、ディス ク・アレイ・リング12は、先行するデータ部分がリング制御装置によって受信さ れるまで、1つ又はこれに続くデータ部分をディスク・アレイ・リング12上に環 流させ、それによってリング制御装置15にそれらデータ部分の再パケット化を元 の順序で行なわせることができる。 望ましい実施例では、選択された番組に属するデータ部分はその元の形に従っ て再パケット化される。リング制御装置15は、望ましい実施例では、その番組に 対応するID符号を含んだこれらデータ・パケットのみならず、その中の各データ ・パケットに付けられた元の通し番号をも含んでいる。 リング制御装置15は、それらのデータ部分を再パケット化してデータ・パケッ トに戻すと、それらを(参照順序番号をも含んで)ディスク・アレイ・リング12 から排除する。選択された番組に属する再パケット化されたデータ・パケットに 対して、リング制御装置15が転送準備を終わり、かつリング制御装置14が受信準 備を終われば、リング制御装置15はそれらのデータ・パケットをリング制御装置 14に転送する。準備がまだ終わらない場合は、それらデータ・パケットはディス ク・アレイ・リング12の上にあり、リング制御装置15がその転送準備を終わり、 かつリング制御装置14がその受信準備を終わるまで環流する。 リング制御装置15は、選択された番組に属するデータ・パケットを元の連続順 序でリング制御装置14に供給するのが望ましい。望ましい実施例では、リング制 御装置15は、再パケット化したデータ・パケットに含まれる通し番号を使ってこ のことを実現する。しかしながら、再パケット化したデータ・パケットは、望ま しい実施例では通し番号を含んでいるため、選択された番組に属するデータ・パ ケットを元の順序で転送する必要はない。 リング制御装置14が、選択された番組に属するデータ・パケットをリング制御 装置15から受信するに先立ち、サーバー制御装置13は、リング制御装置14に対し て(a)リング制御装置14は、その番組対応の特定ID符号をもつデータ・パケット をリング制御装置15から受信すべきこと、及び(b)1つまたはそれ以上のリング ・インタフェイス装置50-55のどれがその番組を受信してそれに結合した1つま たはそれ以上の入出力アクセス・チャネルに読み出させるすべきか、の2点を通 知する。リング制御装置14は、選択された番組を1つまたはそれ以上のリング・ インタフェイス装置のどれに供給すべきかの情報を受信すると、読出コマンドを それらのリング・インタフェイス装置に送出して、それら装置及びそれに結合し た1つまたはそれ以上の入出力インタフェイス装置が読出モードで動作できるよ うにする。 選択された番組に属する各データ・パケットをリング制御装置15から受取るご とに、リング制御装置14は(a)それに付与されたID符号を、1つ又はそれ以上の 位置符号(location code)に置き換える。この位置符号は、その番組の各データ ・パケットを1つまたはそれ以上のインタフェイス装置50-55のうちどれに供給 すれば、そのデータ・パケットが、それ(インタフェイス装置)に結合した1つ 又はそれ以上の入出力アクセス・チャネルに転送され読み出されるかを指定する 。次いでリング制御装置14は(b)そのデータ・パケットを入出力リング11に乗せ る。例えば、選択された番組の各データ・パケットがリング・インタフェイス装 置50及び51に供給すべきものであるなら、リング制御装置14は、それぞれに付与 されたID符号を位置符号50及び51に置き換える。それ以降は、それらデータ・パ ケットをリング・インタフェイス装置50及び51が受信すると、装置50及び51はそ れぞれの位置符号を認識し(すなわちリング・インタフェイス装置50は位置符号 50を、リング・インタフェイス装置51は位置符号51を認識し)、それらのデータ ・パケットを自己の結合する入出力アクセス・チャネルに(それぞれ入出力イン タフェイス装置60及び61を経由して)転送する。適切なリング・インタフェイス 装置の受信した1個のデータ・パケットが結合する入出力アクセス・チャネルに 転送され読み出される前に、そのリング・インタフェイス装置は、そのデータ・ パケットに付加された通し番号を消去する。 リング・インタフェイス装置は、受信すべきデータ・パケットを検出し受信す ると、リング制御装置14に対して、そのデータ・パケットに対応する通し番号を 示す信号を送って、そのパケットの受信完了を通知する。その後、そのデータ・ パケットを受信すべきすべてのインタフェイス装置が、そのデータ・パケット受 信完了を示した段階で、リング制御装置14は、そのデータ・パケットが次回リン グに環流してきた際、それを入出力リング11から排除する。 望ましい実施例においては、選択された番組に属するデータ・パケットは、通 し番号を付加されているので、リング制御装置14は、それらのデータ・パケット が元の順序で受信されているかどうか決定できるし、そうでない場合にも、それ らデータ・パケットが適切な1個又はそれ以上のリング・インタフェイス装置に 対して、元の順序で供給されるよう依然保証できる。選択された番組に属するデ ータ・パケットが元の順序で受信されないときには、リング制御装置14が次のよ うな動作をするよう設計できる。すなわち、リング制御装置14は、先行のデータ ・パケットが受信されていない場合には、そのデータ・パケットに付加されたID 符号の置き換えを遅らせるのである。こうしたリング制御装置14の設計によって 、先行のデータ・パケットが受信されてそれに付加されたID符号が適切な位置符 号に置き換えられるまで、それに続くデータ・パケットを入出力リング11の上に 環流させるのである。別の方法として、リング・インタフェイス装置50-55の設 計により、選択された番組に属する受信すべきデータ・パケットが入出力リング 11の上を環流しているとき、リング・インタフェイス装置は、それらを元の順序 で(それらデータ・パケットに付加した通し番号に基づいて)選択することもで きる。 上記の議論は、主として単一番組の受信・蓄積及び検索・読出に焦点をあてて きた。しかしながら、サーバー10は、数個の番組を同時に、受信・蓄積及び検索 ・読出できるよう設計されている。例えば、リング・インタフェイス装置50が1 個の番組を受信中に、リング・インタフェイス装置51及び52は、他の2個の他の 番組のそれぞれを受信し、更にリング・インタフェイス装置53-55は、他の3個 の番組のそれぞれを自己に結合した入出力アクセス・チャネルに供給することも 可能である。リング制御装置14と15は、サーバー制御装置13の制御の下で、この 数個の番組の同時受信・蓄積、及び検索・読出を調整しながら動作する。 サーバー10は、その動作方式によって、ディスク・アレイとディスク・ドライ ブの追加による拡張が容易にできる。もっと具体的に説明すれば、(a)ディスク ・アレイの追加が容易になるなるのは、リング制御装置15が、リング・インタフ ェイス装置70-79のどれに1個のデータ・パケットのデータ部分(portion)を受信 するように割当てる動作方式に基づく。また(b)ディスク・ドライブの追加が容 易になるのは、アレイ制御装置80-85が、所属ディスク・ドライブのどれに1個 のデータ部分のどの細分(sub-portion)を受信させるか割当てる動作及びその情 報の記録方式に基づく。 上述のように、リング制御装置15は、1個のデータ・パケットを受信するごと に、(a)リング・インタフェイス装置70-79のどれとどれが活きていてデータ蓄積 に利用できるかを評価し、及び(b)それに基づいて:(i)そのデータ部分のそれぞ れをこれらリング・インタフェイス装置のそれぞれに割当て(結果としてこれら データ部分は各装置に結合したディスク・アレイを横断してストライプされる ):そして(ii)そのデータ・パケットのどのデータ部分がどのディスク・アレイに 蓄積されたかを示す情報を蓄積する。この動作方式によって、新しいディスク・ アレイが、利用できるリング・インタフェイス装置(リング・インタフェイス装 置76-79)を介してサーバー10に追加でき、その拡張作業の最中もその後も、サー バー10の動作には影響がない。 例えば、ある時点t1にリング制御装置15がデータ・パケットXを受信したと仮 定する。更に、リング制御装置15は、そのデータ・パケットを受信すると、リン グ・インタフェイス装置76-79のどれが活きていて利用可能かの評価結果に基づ いて、リング・インタフェイス装置70-75だけが活きていて利用可能なディスク ・アレイに結合している旨判定したものと仮定する。結果として、リング制御装 置15は、そのデータを次の6個のデータ部分:X1,X2,X3,X4,X5,及びX6に 分割し、そしてこれらデータ部分をリング・インタフェイス装置70-75に割当て 、それらに結合したディスク・アレイ上に蓄積させることもできよう。この様子 を下記表2に示す: それ以降、リング制御装置15はこの情報を自己の記憶部に蓄積する。 さて、リング制御装置15がデータ・パケットXについて評価を行なったのに続 いて、2個の新たなディスク・アレイ186及び187がサーバー10に追加され、これ らをそれぞれリング・インタフェイス装置76及び77に結合させたと仮定する。( これら追加ディスク・アレイ186及び187は、データ・パケットXについて評価が 済んだ後なので、データ・パケットXの蓄積過程には影響を及ぼさない。) その後、時刻t2において、新たなデータ・パケットYをリング制御装置15が受信 したと仮定する。リング制御装置15が、活きていて利用可能なディスク・アレイ に結合しているのはリング・インタフェイス装置70-79のうちどれかを評価する と、今度は、その答はリング・インタフェイス装置70-77となる。その結果、本 発明に基づけば、リング制御装置15は、そのデータ・パケットを以下の8個のデ ータ部分:すなわちY1,Y2,Y3,Y4,Y5,Y6,Y7,及びY8に分割し、これらデ ータ部分をリング・インタフェイス装置70-77に割当てて各結合したディスク・ アレイに蓄積してもよい。この様子は下記の表3に示す: それ以降、リング制御装置15はこの情報を自己の記憶部に蓄積する。 上記の例から、追加ディスク・アレイの追加は受信・蓄積過程に影響を及ぼさ ない(すなわち、データ・パケットX及びYの蓄積に用いた(処理)過程は同一 で追加の影響を受けない)ことが明らかである。同じことが検索と読出過程につ いても成り立つ。 上記例によれば、データ・パケットXの検索が要求されると、リング制御装置 15は、自己の記憶部から、そのデータ部分がディスク・アレイ180-185に蓄積さ れていることを判定し、次いでリング・インタフェイス装置70-75に対して、デ ィスク・アレイ・リング12経由で適切な検索コマンドを送出し、こうすることに より、そのデータ部分が、確実に検索されて、ディスク・アレイ・リング12経由 で、リング制御装置15に供給されて再パケット化されるようにする。データ・パ ケットYの検索が要求されたときも一般的な処理過程は同じであるが、違う点は 、今度はリング制御装置15が検索コマンドをリング・インタフェイス装置70-77 に送出し、それに結合したディスク・アレイ180-186に蓄積された信号部分を検 索することである。 1個のデータ部分を1個のディスク・アレイの中のディスク・ドライブに蓄積 するのとそれから検索するのとは本質的に同じ動作である。1個のデータ部分を 受信すると、1個のアレイ制御装置は、活きていて利用できるディスク・ドライ ブはそのディスク・アレイの中に幾つあるかを評価し、それに基づいて、そのデ ータ部分のどの細分をどのディスク・ドライブに蓄積すれば、それら各細分が、 活きていて利用できるディスク・ドライブを横断してストライプされるかを判定 する。その後、そのデータ部分のどの細分がどのディスク・ドライブに蓄積され ているかを示す情報が、そのアレイ制御装置の記憶部に蓄積される。アレイ制御 装置は、その情報を使ってデータ部分を検索する。ディスク・ドライブが追加さ れる場合には、蓄積・検索の処理過程は全く同一で、ただ関連するディスク・ド ライブの数だけが異なる。 上記議論から明らかになることは、サーバー10は、活きていて利用できるディ スク・アレイ及びディスク・ドライブの変化を勘案して動作できるので、データ 要素が追加され、撤去され、又は追加データの蓄積に利用不可能になっても、そ れら作業(又は事象)の最中もその後も、サーバー10の動作は継続し中断するこ とがない。その結果、メディア・プール型ビデオ・サーバーとは違って、ディス ク・アレイ及びその含むディスク・ドライブに予め蓄積されていたデータは、1 個又はそれ以上のディスク・アレイ及び/又はディスク・ドライブの追加があっ ても再ストライプする必要はない。 上記パラグラフで暗示されるように、サーバー10の蓄積要素の一部は、時間が 経つと追加データの蓄積に利用できなくなる可能性もある。その1つの理由は、 時間が経つとディスク・アレイ及びその含むディスク・ドライブはデータで満杯 になるからである。これを常に管理するため、サーバー制御装置13は、アレイ制 御装置80-85及びリング制御装置15からの情報を介して、各時点でどれだけの量 の蓄積容量があるかを常に監視している。この情報に基づいて、サーバー制御装 置13は、サーバー動作制御装置に対して、追加のディスク・アレイ及び/又はデ ィスク・ドライブが必要かどうか、及び/又はサーバー10はもはやデータ蓄積で きる能力がないかどうか、を常に通知する。 入出力リング11の動作の仕方は、ディスク・アレイ・リング12のそれと本質的 に独立なので、サーバー10に入出力アクセス・チャネルが追加して拡張すること は容易である(拡張作業中及び終了後において、サーバー10の動作に影響を与え ることはない)。(入出力アクセス・チャネルの追加は、利用できるリング・イ ンタフェイス装置56-59に入出力インタフェイス装置を加えるという方法で行な える。)もっと具体的にいえば、入出力リング11のリング構成は、このリングに 新しい入出力アクセス・チャネルを加えても、データの受信蓄積及び蓄積された データの読出しに関する動作が同一方式(fashion)で継続でき、異なるのは、追 加した入出力アクセス・チャネルがそうしたデータの受信及び/又は読出に利用 可能になることだけである。更に、入出力リング11及び関連するリング制御装置 14は、入出力アクセス・チャネルの追加に伴う追加データ流を扱うのに十分な容 量と能力があり、サーバー10の帯域には影響しない。 図2は本発明に基づく1個のサーバー・システム50のブロック図である。サー バー・システム50には、サーバー10(図1)のほか、20及び22を含む。サーバー 20及び22は実体はサーバー10と同一で、同一方式で動作する。サーバー・システ ム50にはまた、サーバー動作制御装置30(先に議論したサーバー動作制御装置と 考えてよい)、及び複数のユーザー・インタフェイス装置40,41及び42を含む。 サーバー動作制御装置30は、通信線17,21及び23をそれぞれ経由してサーバー10 ,20及び22と結合している。サーバー動作制御装置30はまた、ユーザー・インタ フェイス装置40,41及び42とも結合する。 サーバー・システム50の動作により、多数の異なる場所(例えばインターネッ ト上の異なる場所)にいるユーザーたちが、異なるサーバー10,20及び22に蓄積 された異なる番組を要求し受信することができる。またサーバー・システム50の 動作により、異なる場所にいる異なるユーザーたちがサーバー10,20及び22の上 に蓄積することができる。(しかし、注意しておくが、もしシステム50を、例え ばインターネット上のウェブ・サイトとして用いる場合には、サーバー10,20及 び22の上に番組を蓄積する能力をもつのは1ユーザーだけとし、すべての他のユ ーザーはそこに蓄積された番組を読み出すことだけできるのが望ましい。) 前のパラグラフに示したように、サーバー・システム50は多数の異なる番組を サーバー10,20及び22の上に蓄積する。サーバー動作制御装置30はデータベース 31を含むか結合するかしていて(図2に示すように)、このデータベースはどの 番組がどのサーバーに蓄積されているかを示す。 もし、あるユーザー・インタフェイス装置(例えばユーザー・インタフェイス 装置40)に接続されたユーザーが特定の番組を受信したいと要求した場合(こう した番組を以下「要求された番組」と呼ぶ)、その要求はこのユーザー・インタ フェイス装置によってサーバー動作制御装置30に伝えられ、続いてこのサーバー 動作制御装置30は、サーバー10,20及び22のうちどのサーバーの上に選択された 番組が蓄積されているかを判定する。(もし、その番組がサーバー10,20及び22 のうちどれにも蓄積されていない場合、サーバー動作制御装置30は、その情報を 、該当するユーザー・インタフェイス装置を経由してその番組を要求しているユ ーザーに伝える。)要求された番組が、例えばサーバー10に蓄積されていた場合 、サーバー動作制御装置30は、その番組を要求しているユーザーにその番組を受 信させるため、サーバー10に結合した入出力アクセス・チャネルのどれに対して 、選択された番組を供給すべきかを決定する。それに加えて、サーバー動作制御 装置30は、選択された番組をいつ送信すべきかを決定する。その情報に基づいて 、サーバー動作制御装置30は、適切な情報を上述のようにサーバー10に供給し、 こうして、要求された番組が該当する入出力アクセス・チャネルに対して正しい 時刻に供給される。 サーバー・システム50上での番組の蓄積は、同様の方式で行なわれる。ユーザ ー・インタフェイス装置(例えばユーザー・インタフェイス装置42)に接続され たユーザーは、そのユーザー・インタフェイス装置を経由してコマンドをサーバ ー動作制御装置30に送り、そのユーザーがサーバー・システム50上に1個の番組 を蓄積したいことを伝える(この番組を今後「蓄積番組(storage program)」と 呼ぶ)。このコマンド(蓄積番組のサイズに関する情報を含む)を受信すると、 サーバー動作制御装置30は、サーバー10,20及び22のうちどのサーバーが利用で き且つその番組を蓄積するのに必要な容量をもっているかを、関連サーバー制御 装置の救けを得て決定する。(もし、サーバー10,20及び22のどれにもその番組 を蓄積するに十分な容量がない場合、サーバー動作制御装置30は、その情報を、 該当するユーザー・インタフェイス装置を経由して、その蓄積番組を蓄積したい と望むユーザーに伝える。これは、サーバー・システム50に、ディスク・アレイ 、ディスク・ドライブ、及び/又はサーバーを追加すべきことを示す。)もし、 サーバー動作制御装置30が、例えば、その蓄積番組を蓄積するのに適当なサーバ ーはサーバー10である旨を決定すると、サーバー動作制御装置30は、サーバー10 に結合した入出力アクセス・チャネルのどれから、その番組が蓄積のため供給さ れるかを決定する。更に、サーバー動作制御装置30は、その蓄積番組がいつ受信 されるかを決定する。その情報に基づいて、サーバー動作制御装置30は、適切な 情報を既に議論したようにサーバー10に供給し、こうしてこの蓄積番組はその中 に蓄積される。その後、サーバー動作制御装置30は、その蓄積番組がサーバー10 への蓄積を完了した旨の情報をデータ・ベース31に蓄積する。 サーバー・システム50の拡張は容易である。もっと具体的にいえば、追加サー バーは、サーバー10,20及び22と同様に、サーバー動作制御装置30に結合すれば 、サーバー・システム50に追加できる。この場合、そうした拡張作業中又は作業 後サーバー・システム50の動作への影響はない。 図3には、本発明に基づくもう1つの高度データ・サーバー200のブロック図 を示す。サーバー200は、複数の入出力リング90-94,及び複数のディスク・アレ イ・リング130-134を含み、これらは互いにコミュテータ125によって結合してい る。 入出力リング90-94は、それぞれ本質的に図1に示した入出力リング11と同一 で、図1に関連して既述したのと本質的に同一方式で動作する。入出力リング90 -94は、それぞれ1個のリング制御装置(リング制御装置100-104)を含み、また、 それぞれ複数のリング・インタフェイス装置(リング・インタフェイス装置110a -eないし114a-e)を含んでいる。更にリング・インタフェイス装置110a-eないし 114a-eのうち複数の一部は、対応する複数の入出力インタフェイス装置に結合 している。すなわちリング・インタフェイス装置110a-cはそれぞれ入出力インタ フェイス装置120a-cと、またリング・インタフェイス装置111a-cは入出力インタ フェイス装置121a-cと結合するなどである。リング制御装置100-104はコミュテ ータ125と結合する。 ディスク・アレイ・リング130-134は、それぞれ本質的に図1に示したディス ク・アレイ・リング12と同一で、図1に関連して既述したのと本質的に同一方式 で動作する。ディスク・アレイ・リング130-134は、それぞれ1個のリング制御 装置(リング制御装置140-144)、及び複数のリング・インタフェイス装置(リン グ・インタフェイス装置150a-eないし154a-e)を含む。更に、リング・インタフ ェイス装置150a-eないし154a-eのうち複数の一部は、対応する複数のディスク・ アレイに結合する。すなわち、リング・インタフェイス装置150a-cはそれぞれデ ィスク・アレイ160a-cに、リング・インタフェイス装置151a-cはそれぞれディス ク・アレイ161a-cに、などである。リング制御装置140-144はコミュテータ125と 結合する。 図3においては、入出力リング120-124,及びディスク・アレイ・リング130-13 4は、それぞれ同一数のリング・インタフェイス装置を含み、またそれらには同 一数の入出力インタフェイス装置及びディスク・アレイが結合している。各入出 力リングとディスク・アレイ・リングの有するリング・インタフェイス装置の数 は(図3より)多くても少なくてもよく、それらに結合した入出力インタフェイ ス装置及びディスク・アレイの数も同様である。それぞれの数は同一であること を要しない。 サーバー200の構成が上記のようになっているため、メディア・プール型サー バーの拡張に関する前記の難点は、メディア・プール型サーバーの中心的特徴で あるコミュテータの利用を損なうことなく解決される。このことは、上述の型の 入出力リングとディスク・アレイ・リングを、コミュテータ(コミュテータ125) と組み合わせて使うことにより達成される。図1に関連した上述の議論に基づい て、サーバー200は、拡張作業中及び拡張後の動作に影響を与えることなく下記 の手段により拡張が可能である。すなわち、1つの手段は、リング・インタフェ イス装置150d-154d及び150e-154eにディスク・アレイを、及び/又はデイスク ・アレイ160a-cないし164a-cにディスク・ドライブを、それぞれ追加することで ある。今一つは、上記手段とともに又はその代わりに、リング・インタフェイス 装置110d-114d及び110e-114eに同種の入出力インタフェイス装置を結合すること により、追加入出力アクセス・チャネルにアクセス機能を付与することである。 コミュテータ125の動作は、現行のメディア・プール型サーバーの動作(米国 特許出願第08/125,996号,第08/389,672号,及び第08/530,041号参照のこと)と 同様である。相違点は、本発明に基づいて、コミュテータ125は、データを入出 力リング90-94から受信し、そのデータをディスク・アレイ・リング130-134を横 断する形でストライプしてそれに結合したディスク・アレイに蓄積すること、及 びそのデータを反対の動作によりこれらディスク・アレイ・リングから検索して それをこれら入出力リングに供給することである。データがディスク・アレイ・ リング間を横断してストライプされるので、ディスク・アレイ間のストライピン グの重要性は遥かに少なくなる。従ってディスク・アレイ・リングに渡される特 定番組に属するデータ・パケットのデータ部分は、すべて同一ディスク・アレイ に蓄積されるのが望ましいかも知れない。というのは、こうするとそのリングの リング制御装置に蓄積を要する情報量が減少するからである。しかしながら、1 個のディスク・アレイに供給される1個のデータ部分の各細分は、そのアレイの 中の活きていて利用可能なディスク・ドライブを横断してストライプするのが依 然望ましい。というのは、このストライプとディスク・アレイ・リングを横断す るストライプの組合せによって、階層/二重ストライピングが実現し、従ってデ ィスクの待時間が短縮し高い帯域幅は維持できるからである。 本発明に基づくもう1つのシステムとして図3に示す型のサーバーを複数含む ものがあり得る。その種のシステムは図2のサーバー・システムにおいて、サー バー10,20及び22を図3の型のサーバーで置き換えるかそれらを追加した形態と 見てよい。DETAILED DESCRIPTION OF THE INVENTION An Advanced Data Server with an I / O Ring Combined with a Disk Array Ring The present invention provides an advanced data server and a server system including multiple such servers. Related. More specifically, the present invention provides a device capable of receiving and storing data (voice, video, text, and / or computer data) and / or retrieving and reading such data once stored. Related to advanced data servers. The server is scalable, and server systems including such servers are also scalable. As the information age continues to evolve and the information superhighway begins to take shape, advanced data servers (eg, video servers) and server servers that can store and retrieve larger volumes of information faster than ever before. The demands on the system will continue to grow. Therefore, it would be convenient and very advantageous if such servers and server systems could be easily expanded. In other words, such a server can be expanded by adding storage components and / or input / output (I / O) access channels, and such a server system can be expanded by adding more servers. And should allow such expansions to continue normal operation during and after expansion without affecting the functionality of such servers or server systems. Media Pool video server, introduced by the Philips subsidiary / division in the early 1990s, allows large volumes of audio, video, text, and / or related data to be transferred. , And can be quickly stored and searched by one or more users. This has revolutionized the video server market. The video server uses a plurality of input / output access channels and a plurality of disk arrays, which are connected to each other by a single commutator. Audio, video, documents and / or related data (or computer data or any combination thereof) associated with a movie or program or the like (hereinafter collectively referred to as a "program") Received from an I / O access channel and stored in a plurality of disk arrays. In this case, the commutator feeds different portions of the data to different disks in the disk array, so that the data is striped across the arrays, i.e., splits the video data. And spread them over multiple disks. Further, the data provided to each disk array is accumulated according to a scuzzy (SCSI) interface across the disk drives (each including at least one disk) in the disk array. To distribute the data in this manner, data relating to a particular program is retrieved by the commutator and provided (sequentially or simultaneously) to one or more users via one or more input / output access channels. In doing so, it is done quickly and efficiently, delays due to disk latency are reduced, and wide bandwidth is maintained. For further discussion of the above media pool video server, see US patent application Ser. No. 08 / 125,996 (filed Sep. 23, 1993) and US patent application Ser. No. 08 / 389,672 (filed Feb. 16, 1995). ), The contents of which are referenced in this application. Further discussion of striping across a disk array and disk drives within the disk array (this combination is hereinafter referred to as "hierarchical / duplex striping") is discussed in U.S. patent application Ser. No. 08 / 530,041 (1995). (Filed on September 19), the contents of which are incorporated herein by reference. One problem with media pooled video servers is that they are not easily scalable. When disk drives and / or disk arrays are added to a media pool video server, a "rebuild" operation must be performed. In other words, the data stored in the media pool video server must be read and restored between each expanded storage component by hierarchical / double striping. More specifically, the data contained in the original disk array and the disk drives therein is re-striped, and the old / new disk array and the old and new disk arrays therein are re-striped by hierarchical / duplex striping technology. Must be re-striped between both sides of the drive. As a result of this restriping operation, the media pool video server must be offline during the expansion operation. Further, when an I / O access channel is added to the media pool type video server, it must be taken offline again due to the reconfiguration for that purpose. In addition, the addition of I / O access channels can affect the bandwidth of the media pool video server. According to the present invention, the above-mentioned problems of the current media pool type video server can be solved, while still using the hierarchical double striping to reduce the disk waiting time and maintain the wide bandwidth. it can. The present invention uses a high speed ring architecture that includes one or more separate rings coupled to the I / O access channel and the disk array, respectively. This architecture uses one intelligent ring controller for each ring. Its purpose is: (a) to control the reception and / or distribution of the received data by the ring; and (b) two pieces of information: (i) how many and / or which access Whether the channels or disk arrays (and the number of disk drives included in each) are combined and available, and / or (ii) where data is stored as a result of such control of reception and / or distribution. Or use; The architecture further includes means for coupling one or more rings for use with the I / O access channel to one or more rings for use with the disk array. These features make the server according to the invention easy to expand. Similarly, servers that include one or more such servers are also easily scalable. An advanced data server according to the present invention includes: (a) an input / output ring coupled to at least one input / output access channel, the channel supplying data to the input / output ring or transmitting data to the input / output ring; One input / output ring having the function of reading from said input / output ring; (b) one disk array ring coupled to at least two disk arrays, wherein said array is a disk array; A function to store data received from the array ring therein or to pass data retrieved therefrom to the disk array ring, and the disk array ring is also coupled to the I / O ring Data is flowing between these rings; and (c) coupled to the I / O ring and the disk array ring. A single server controller, the controller where to control the output ring and disk array ring made the search and reading of the received and stored or data of data by thereof; including each device. Further in accordance with the present invention, the I / O ring includes a first ring controller, the controller comprising: (a) receiving data from at least one I / O access channel and disk array of the data; And (b) receiving data from the disk array ring and transferring the data to at least one I / O access channel, and the disk array ring is controlled by a second The controller includes: (a) receiving data from the I / O ring and storing the data over at least two disk arrays; or (b) data from at least two disk arrays. And transfer of that data to the I / O ring. (Note that when both ring controllers operate in this manner, a server controller is not required.) According to one aspect of the invention, the second ring controller comprises: (a) a disk controller; When the array ring receives one packet of data, the controller evaluates how many disk arrays are coupled to the disk array ring, which are alive and available, and at least two disks are used. The array is always alive and available, and on that basis the data is striped across the live and available disk array (s) and the different data portions of the data packet ( data portions) to be received and stored (controlling the ring) on different ones of these disk arrays, respectively; and (b) which data portions By storing information indicating whether the disk array is accumulation; it can operate as. In addition, at least one of the live and available disk arrays includes an array controller and at least two disk drives, the array controller comprising: (a) Upon receiving one data portion, the controller determines how many disk drives are included in the live and available disk array and which of those are active and available. Assess that at least two disk drives are always alive and available, so that the data portion can be striped across the live and available disk drive (s), resulting in Different data sub-portions of the data portion are received and stored on different ones of these disk drives, respectively. It the array control) to; and (b) how the data subdivided to store information indicating whether stored in which disc drives; that it is operating. According to another aspect of the invention, different data portions of the data are stored in different arrays of the at least two disk arrays, and the second ring controller determines which data portions of the data are at least Information indicating which of the two disk arrays is stored can be stored. In addition, at least one of the at least two disk arrays includes at least two disk drives, some of which have different data portions stored on the at least one disk array. Subdivisions are stored, and at least one disk array stores information indicating which data subdivision is stored on which of the at least two disk drives. A server system according to the present invention includes: (a) a server of the above type; and (b) a server operation controller coupled to the server controller, wherein the operation of the server operation controller comprises: The server receives / stores or retrieves / reads data based on whether the user requests to receive / store or retrieve / read data. The system may further include at least one user interface device coupled to the server operation controller. This device generates a user request. The present invention (and related additional aspects) will be described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of one embodiment of an advanced data server according to the present invention; FIG. 2 is a server according to the present invention that includes the server of FIG. FIG. 3 is a block diagram of the system, and FIG. 3 is a block diagram showing another embodiment of the advanced data server according to the present invention. (The same numbers in the figures indicate the same elements.) FIG. 1 is a block diagram of one advanced data server (server 10) according to the present invention. The server 10 includes one I / O ring 11, one disk array ring 12, and one server controller 13. The I / O ring 11 and the disk array ring 12 may be of any type (eg, token ring, LAN, etc.) along which data is circulated, preferably of the fiber optic type. The I / O ring 11 and the disk array ring 12 are coupled to each other by a high-speed coupling 16 and to the server controller 13 via communication lines 114 and 115. The input / output ring 11 includes a ring controller 14 and a plurality of ring interface devices (RID) 50-59. In the example of FIG. 1, the ring interface devices 50-55 are coupled to input / output interface devices (I / OD) 60-65. I / O interface devices 60-65 are further coupled to respective I / O access channels. The input / output access channels can be of the same type or different types. For example, some or all of the I / O access channels may be ATM I / O access channels, D1 I / O access channels, or any other type of data channel coupled to the appropriate type of data channel. Anything that can be done. The ring controller 14 couples the input / output ring 11 directly to the server controller 13 via a communication line 114. The disk array ring 12 includes one ring controller 15 and a plurality of ring interface devices (RIDs) 70-79. In the example of FIG. 1, ring interface devices 70-75 are coupled to disk arrays 180-185, respectively. Disk arrays 180-185 each include an array controller and a plurality of disk drives (e.g., optical, magneto-optical, phase change, magnetic type, etc.) coupled thereto. In the example of FIG. 1, disk arrays 180-185 include array controllers-ACs 80-85. Array controller 80 couples to ring interface device 70; array controller 81 couples to ring interface device 71: and so on. Ring controller 15 couples disk array ring 12 directly to server controller 13 via communication line 115. In FIG. 1, the input / output ring 11 and the disk array ring 12 each include the same number of ring interface devices. This is just one example of an I / O ring and a disk array ring according to the present invention. The number of interface devices in each ring may be more or less. The numbers need not be the same for both rings. To understand how the server 10 operates, it is helpful to discuss how the server 10 receives and stores data and retrieves and retrieves it. First, the discussion begins with the reception and accumulation of data. The server controller 13 operates as a high-level general operation controller. In order for the server 10 to receive and store data, information about what data to receive, where to receive it, and when to receive it is communicated to the server controller 13 by a server operation controller (not shown). Communicated via line 17. (The server operation control device is either a computer or a microprocessor operated by a user or a computer or a microprocessor operated by a system computer.) For example, if the server 10 is a specific program starting at a specific time If data is to be received from one of the I / O access channels, the server controller 13 determines the name of the program, from which ring interface device the relevant data should be received, and when the reception should begin. Receive information about Kino. Before informing the server control device 13 of which of the ring interface devices 50-59 the data relating to the specific program should be received, the server operation control device sets one of the ring interface devices 50-59. Make sure you are tied to the I / O access channel. This operation is enabled by cooperation between the input / output ring 11 and the server control device 13. More specifically, the ring interface devices 50-59 communicate via the I / O ring 11 information about which of these ring interface devices are coupled to the I / O access channel to the ring controller. Supply for 14. As a result, the server control device 13 confirms the information and transmits it to the server operation control device. Before the server 10 receives data relating to a specific program, the server control device 13 supplies (a) an ID code to be associated with the program and its associated data to the ring control device 14. Further, the server control device 13 informs (b) the ring control device 14 which of the ring interface devices receives the data. The server control device 13 selects a different ID code for each program to be received by the server 10 indicated by the server operation control device, and stores (this) ID information in a storage unit (not shown). This ID information designates an ID code corresponding to the program which the server 10 has already received and stored therein. When the ring controller 14 receives information about which ring interface device receives data related to a specific program, the ring controller 14 responds by sending a read command to the ring interface device. The input / output interface device coupled thereto and the ring interface device operate in a read in mode. From the information provided by these ring interface devices, the ring controller 14 knows which of the ring interface devices 50-59 and which are coupled to the I / O access channel. The data received by the ring interface devices 50-55 is preferably in the form of a data packet. In a preferred embodiment using this configuration, the I / O access channels coupled to the ring interface devices 50-55 via the I / O interface devices 60-65 are ATM-based I / O access data data. Channels, which receive data in packet form. However, the design of the server 10 can also be designed so that data received from the non-packetized input / output interface devices 60-65 is converted into packetized data after being received by the input / output interface device. (In such a case, the design of the input / output interface device allows the packetized data to be converted to the correct format of the input / output access channel only when used in the read mode.) Further, the ring interface device 50 Note that although it is desirable for the -55 to receive packetized data, it is not a requirement and that the present invention may be used with non-packet data. For example, if the ring interface device 50 continuously receives data packets associated with a particular program (via the input / output access channel coupled thereto via the input / output interface device 60), the ring interface device 50 Upon receiving the first data packet relating to the program, the device 50 sends a receive command to the ring control device 14 via the input / output ring 11 immediately. This reception command indicates that reception of a data packet related to a specific program has started. Each time a data packet associated with the program is received, the ring interface device 50 adds a receipt code to it and confirms that the data packet was received by the ring interface device 50. Is shown. When that is completed, the ring interface device 50 puts the data packet on the input / output ring 11. The flow of data around the input / output ring 11 is indicated by an arrow 900. Each time the ring control device 14 receives a data packet (identified by the received code and other data received by the server control device 13) via the input / output ring 11, the ring control device 14 Is replaced with the (appropriate) ID code selected by the server control device 13 for the program to which the data packet belongs. In a preferred embodiment, the ring controller 14 assigns a sequence order number to each data packet of a specific program, and indicates where the data packet is located in the sequence of data packets belonging to the program. Indicates whether it is located. At the end, the ring controller 14 communicates with the ring controller 15 to determine if both are ready to transfer these data packets from the ring controller 14 to the ring controller 15. If the ring controller 14 is ready to transfer data packets belonging to a particular program and the ring controller 15 is also ready to receive, the ring controller 14 passes these data packets through the coupling 16. To the ring controller 15. However, assuming that either the ring controller 14 or the ring controller 15 has not completed preparations for transmitting and receiving these data packets, the data packets circulate on the I / O ring 11 until both preparations are completed. It is desirable that the transfer order of the data packets from the ring control device 14 to the ring control device 15 be the same as the reception order. In the preferred embodiment, the ring controller 14 can ensure this based on the serial number assigned to the data packet. As each data packet is sent from the ring controller 14 to the ring controller 15, the packet is removed from the I / O ring 11 by the ring controller 14. Prior to receiving a data packet belonging to a specific program, the server control device 13 sends a signal to the ring control device 15 to notify that a data packet having one specific ID code is to be received. . Each time the ring controller 15 receives each data packet having that ID code (ie, belonging to the program), the ring controller 15 determines which of the ring interface devices 70-79 and which disk array And evaluate which and which of these disk arrays are active and available for their data storage. The information necessary for the evaluation is provided by the ring interface devices 70-79 to the ring controller 15 via the disk array ring 12. In this case, the evaluation performed by the ring controller 15 should include confirmation that no change has occurred in the number of disk arrays that are alive and available for data storage and are coupled to the ring interface device. desirable. Based on this evaluation, ring controller 15 depackets the data packet and assigns an assignment code to each portion (hereinafter, such portions will be referred to as "data portions"). code). This code indicates which of the ring interface devices 70-79 should receive the data portion and store it in the associated disk array. Further, the ring controller 15 also assigns a reference order number (which may include an ID code) to each of the data parts, so that these data parts can be referred to. The mode of operation of the server 10, and particularly the ring controller 15, closely adheres to the principle introduced in media pool video servers of striping across arrays to reduce disk latency. More specifically, due to the operation of the ring control device 15, each data portion of a data packet including data belonging to a specific program (data with the same ID code) is stored in a live and available disk array. Striped across the top. To achieve this, the ring controller 15 utilizes each successive data portion of successive data packets containing data belonging to a particular program (with the same ID code). It is desirable to operate to assign one of a plurality of contiguous ring interface devices having a disk array available for data storage. The ring control device 15 has a storage unit (not shown) that stores (a) a reference sequence number assigned to each data portion belonging to a specific program, and (b) which ring interface device is used. The information shown is stored. (Thus, the ring controller 15 can determine which of the reference numbers and which correspond to the specific ID code. Further, the storage unit of the ring controller 15 stores which data packet, especially which serial number packet, It is preferable that packet information indicating whether the data portion belonging to the specific program was originally included is stored (the reference sequence number of the continuous data portion of the consecutive data packets belonging to the specific program is in a specific order ( Note that if they are arranged in a particular sequence, it is not necessary to store the serial numbers of the data packets belonging to the specific program in the storage unit of the ring control device 15.) In FIG. Assume that the disk arrays 180-185 shown are both alive and available for data storage and that of the first two consecutive data packets. The data contained therein are each divided into six consecutive data parts, ie the first data packet is divided into consecutive data parts A, B, C, D, E, F and the second data packet Assuming that the packet has been divided into successive data portions G, H, I, J, K, L. According to the preferred embodiment, the ring controller 15 then assigns these data portions A reference sequence number is assigned as shown in Table 1 below so that it can be received by the ring interface device (right of the table below). According to this example, the ring controller 15 may, for example, indicate, for each data portion (shown in the table above), which of the ring interface devices 70-75 indicates which data portion should receive that data portion. It should be possible to assign an assignment code. For example, parts A and G are assigned an assignment code 70, and parts B and H are assigned an assignment code 71, and so on. As each data portion receives its respective reference sequence number and assignment code, ring controller 15 places the data portions on disk array ring 12. The flow of data circulating around the disk array ring 12 is indicated by arrow 901. When the reflux begins, the assigned ring interface devices 70-75 each detect which data portion in the reflux on the disk array ring 12 contains the assigned code, and relocate those data portions to themselves. Is supplied to the disk array belonging to and stored. Further, according to the above example, when the ring interface device 70 detects one data portion (for example, portion A) assigned the assigned code 70 on the disk array ring 12, the ring interface device 70 Device 70 supplies the data portion to disk array 180. Similarly, when the ring interface device 71 detects one data portion (for example, portion B) to which the assignment code 71 is assigned on the disk array ring 12, the ring interface device 71 The data portion is supplied to the disk array 181. Other ring interface devices 72-75 operate similarly. Upon detecting and receiving one data portion, the ring interface device sends one signal indicating the reference sequence number corresponding to the data portion to the ring control device 15 to indicate that the reception has been completed. Notice. After that, the ring controller 15 removes the data portion from the disk array ring 12 the next time the data portion recirculates on the ring. The data provided to each disk array 180-185 is stored in the disk drives included in the array, striped across them according to SCSI technology. In accordance with the present invention, the process of accomplishing this striping (transverse disk drive striping) is similar to the process of striping a data portion into a disk array, by assessing the available available storage elements and by evaluating this. Subsequent allocation of the data to those storage elements and traversal striping. Each of the array controllers 80-85 included in the disk arrays 180-185, upon receiving a single data portion, determines how many disk drives are included in the disk array, and which and which Evaluate whether they are alive and can be used for data storage. The array controllers 80-85 are given sufficient information to make the above evaluation. As in the case of the ring / control device 15, it is desirable that the evaluation operation of the array control device includes a step of confirming that the number of disk drives belonging to the disk drive that is alive and available for data storage has not changed. Based on the above evaluation, the array controller (e.g., array controller 80) uses the data in the data portion, i.e., the contiguous data subdivision, for all of the associated disk drives that are active and available for data storage. Stripe across the drive. Each of the disk array controllers 80-85 includes a storage unit, wherein the information therein is a corresponding reference to where, ie, which disk drive, each data subdivision of the received data portion is stored. Shown together with the sequence number. When data belonging to a specific program is received and stored in the server 10, the data can be used by searching and reading. The following is a discussion of the operation, but it can be understood that the search / read operation is almost the same as the reception / storage operation and the order is reversed. When trying to retrieve and read data belonging to a specific program from the server 10, the server control device 13 receives information from a server operation control device (not shown) via the communication line 17. The information content includes the name of the program to be searched, the source of the data to be read (ie, any of one or more ring interface devices coupled to one or more I / O access channels). , And the time to start reading. Prior to notifying ring controller 14 of which of the one or more ring interface devices data belonging to a program should be supplied to, the server operation control device must provide those ring interfaces. Make sure that the face device is coupled to the I / O access channel. That is, the ring interface devices 50-59 notify the ring controller 14 via the I / O ring 11 of which and which are coupled to the I / O access channel, and As a result, the server controller 13 can obtain the confirmation information and supply it to the server operation controller. Upon receiving the information about what, where, and when (to be read), the server control device 13 reads the specific program (hereinafter referred to as “selected program”) requested to be searched / read from its own storage unit. ) Is determined. At the end, the ring controllers 15 and 14 work with the server controller 13 to determine when the data belonging to the selected program needs to be retrieved from the disk array that stores it, and When to provide the ring controller 14 from the controller 15 and to begin reading at the correct time, one or more ring channels coupled to one or more access channels from which to read the data. The interface device determines when to receive the data. Server controller 13 then uses this information in conjunction with ring controllers 14 and 15 to ensure that ring controllers 14 and 15 perform their proper functions at the correct time. The search for data belonging to the selected program begins with the ring controller 15 sending a search command to the disk array ring 12 to cause the disk array (s) storing that data to receive it. These search commands specify which of the disk arrays 180-185 and which to search, so that the data portion of interest is provided on the disk array ring 12. What search command is sent by the ring controller 15 is: (a) the reference sequence number and related packet information (the latter is only available if available), and the ID code corresponding to the selected program; and (b) storage in the storage unit Based on the associated associated codes. A typical search command indicates which data portion to search through the reference sequence number and from which disk array to search through the assignment code, respectively. When one ring interface device (e.g., 70) receives a search command (e.g., a command having an assigned code of 70) for its associated disk array (e.g., 180), the ring interface device receives the search command. To the disk array. Then, by the operation of the array controller (for example, 80) coupled to the disk array, the search command searches for a data portion (for example, portion A, indicated by reference order No. 1 described above) requested to be searched, and adds it to it. The combined ring interface device (eg, 70) is provided. When that is done, the ring interface device places the data on the disk array ring 12. To obtain and retrieve the requested data portion, the array controller (e.g., 80) searches its storage to determine which data subdivisions make up that data portion, in what order, and which disk Determine if they are stored on the drive. When that is done, based on the information, the array controller retrieves the subdivisions in the correct order, assigns a reference sequence number corresponding to the data portion to which the subdivisions belong, and assigns the subdivisions to one data set. As a part, it is fed to a mating ring interface device (eg 70). The process just described is performed by the ring control device 15, the ring interface devices 70-75, and the disk array 180-185, so that the data portions belonging to the selected program are stored in those data portions. The retrieved disk arrays 180-185 (and the disk drives included therein) are retrieved and supplied to the disk array ring 12. In this case, it is desirable that the command issued by the ring control device 15 is a search command such that the data portion belonging to the selected program is searched from the disk array 180-185 in the original correct order. When data portions belonging to the selected program begin to appear on the disk array ring 12, the ring controller 15 packetizes these data portions again, and in each data packet, an ID corresponding to the program to which these data portions belong. Add a sign. These data portions may be repacketized in their original form (the same data packet that contained these data portions when received at server 10) or in a new form. Significantly, whether the data portion belonging to the selected program is repacketized in its original form or in a new form, it is important that the data portion belonging to the program be repacketized in its original order. That is. The storage unit of the ring control device 15 contains not only the reference sequence number but also possibly the serial number of the packet, and this information is sufficiently possible based on such information. If so, even if the data portion belonging to the selected program is not retrieved from disk array 180-185 in its original order, disk array ring 12 causes the preceding data portion to be retrieved by the ring controller. Until received, one or more subsequent data portions may be circulated over the disk array ring 12, thereby causing the ring controller 15 to repacketize those data portions in their original order. In the preferred embodiment, the data portion belonging to the selected program is repacketized according to its original form. In a preferred embodiment, ring controller 15 includes not only those data packets containing the ID code corresponding to the program, but also the original serial number assigned to each data packet therein. Ring controller 15 repackets those data portions back into data packets and removes them from disk array ring 12 (including the reference sequence number). If the ring controller 15 is ready for transfer and the ring controller 14 is ready for reception for the repacketized data packets belonging to the selected program, the ring controller 15 Is transferred to the ring control device 14. If not, the data packets are on the disk array ring 12 and recirculate until the ring controller 15 is ready to transfer it and the ring controller 14 is ready to receive it. Preferably, the ring controller 15 supplies the data packets belonging to the selected program to the ring controller 14 in the original continuous order. In the preferred embodiment, ring controller 15 accomplishes this using serial numbers included in the repacketized data packets. However, since the repacketized data packets include serial numbers in the preferred embodiment, it is not necessary to transfer the data packets belonging to the selected program in their original order. Before the ring controller 14 receives a data packet belonging to the selected program from the ring controller 15, the server controller 13 makes a request to the ring controller 14 for (a) the ring controller 14 That a data packet having a corresponding specific ID code should be received from the ring controller 15; and (b) which one or more of the ring interface devices 50-55 will receive and couple the program to it. One or more I / O access channels should be read. When ring controller 14 receives information on which of the one or more ring interface devices the selected program is to be supplied to, it sends a read command to those ring interface devices to send the read command to those ring interface devices. The device and one or more input / output interface devices coupled thereto can be operated in a read mode. Each time each data packet belonging to the selected program is received from the ring controller 15, the ring controller 14 (a) replaces the ID code assigned to it with one or more location codes. . The position code indicates that each data packet of the program is to be supplied to one or more of the interface devices 50-55 so that the data packet is associated with one of the associated interface devices. Or, specify whether the data is transferred to and read from an input / output access channel of a higher number. Next, the ring controller 14 puts the data packet on the input / output ring 11 (b). For example, if each data packet of the selected program is to be supplied to the ring interface devices 50 and 51, the ring control device 14 replaces the ID code assigned to each with the position codes 50 and 51. Thereafter, when these data packets are received by the ring interface devices 50 and 51, the devices 50 and 51 recognize the respective position codes (ie, the ring interface device 50 recognizes the position code 50 and the ring interface). The face device 51 recognizes the position code 51) and forwards those data packets (via the I / O interface devices 60 and 61, respectively) to its associated I / O access channel. Before a single data packet received by an appropriate ring interface device is transferred and read to the associated I / O access channel, the ring interface device assigns a serial number added to the data packet. to erase. Upon detecting and receiving the data packet to be received, the ring interface device sends a signal indicating a serial number corresponding to the data packet to the ring control device 14 to notify the reception completion of the packet. . Thereafter, when all the interface devices that should receive the data packet indicate that the data packet has been received, the ring control device 14 determines when the data packet has been recirculated to the ring next time. Removed from I / O ring 11. In the preferred embodiment, the data packets belonging to the selected program are serialized so that ring controller 14 can determine whether those data packets have been received in their original order; If this is not the case, it can still be ensured that the data packets are provided to the appropriate one or more ring interface devices in their original order. When the data packets belonging to the selected program are not received in the original order, the ring controller 14 can be designed to operate as follows. That is, when the preceding data packet has not been received, the ring control device 14 delays the replacement of the ID code added to the data packet. This design of the ring controller 14 allows subsequent data packets to circulate on the I / O ring 11 until the preceding data packet is received and the ID code added to it is replaced with the appropriate position code. is there. Alternatively, due to the design of the ring interface devices 50-55, when data packets belonging to the selected program to be received are circulating on the input / output ring 11, the ring interface device They can also be selected in their original order (based on the serial numbers added to the data packets). The above discussion has mainly focused on receiving and storing and retrieving and retrieving a single program. However, the server 10 is designed so that several programs can be simultaneously received, stored, searched, and read. For example, while the ring interface device 50 is receiving one program, the ring interface devices 51 and 52 receive each of the other two other programs and further receive the ring interface device 53-. 55 can also supply each of the other three programs to its own coupled I / O access channel. The ring control devices 14 and 15 operate under the control of the server control device 13 while adjusting the simultaneous reception / storage and search / readout of these several programs. The server 10 can be easily expanded by adding a disk array and a disk drive depending on the operation mode. More specifically, (a) the addition of the disk array is facilitated by the fact that the ring control unit 15 is configured so that any one of the ring interface units 70-79 has a data portion of one data packet. (portion) based on the mode of operation assigned to receive. (B) The addition of a disk drive is facilitated by an operation in which the array controller 80-85 assigns which sub-portion of one data portion to which of the associated disk drives. And the recording method of the information. As described above, each time one ring packet is received, the ring control unit 15 evaluates (a) which of the ring interface units 70-79 are active and which can be used for data storage. And (b) based thereon: (i) assigning each of the data portions to each of these ring interface devices (these data portions are then striped across the disk array associated with each device). :) and (ii) storing information indicating which data portion of the data packet is stored in which disk array. This mode of operation allows a new disk array to be added to the server 10 via the available ring interface devices (ring interface devices 76-79), and during the expansion process and thereafter. Has no effect on operation. For example, at some point t 1 Assume that ring controller 15 has received data packet X. Further, when the ring controller 15 receives the data packet, based on the evaluation result of which of the ring interface devices 76-79 is alive and available, only the ring interface device 70-75 Assume that you have determined that you have joined a live and available disk array. As a result, the ring controller 15 splits the data into the following six data parts: X1, X2, X3, X4, X5, and X6, and divides these data parts into ring interface units 70-75. Could be allocated and stored on a disk array associated with them. This is shown in Table 2 below: Thereafter, the ring control device 15 stores this information in its own storage unit. Now, after the ring controller 15 has evaluated the data packet X, two new disk arrays 186 and 187 are added to the server 10 and these are added to the ring interface units 76 and 77, respectively. Suppose that the (Since these additional disk arrays 186 and 187 have been evaluated for the data packet X, they do not affect the accumulation process of the data packet X.) Thereafter, at time t Two , Assume that a new data packet Y has been received by the ring controller 15. When the ring controller 15 evaluates which of the ring interface devices 70-79 is coupled to the live and available disk array, the answer is now the ring interface device 70-79. -77. As a result, in accordance with the present invention, ring controller 15 divides the data packet into the following eight data portions: Y1, Y2, Y3, Y4, Y5, Y6, Y7, and Y8, and The data portion may be assigned to the ring interface devices 70-77 and stored in each associated disk array. This is shown in Table 3 below: Thereafter, the ring control device 15 stores this information in its own storage unit. From the above example, the addition of the additional disk array does not affect the receiving and storing process (that is, the (processing) process used for storing the data packets X and Y is the same and is not affected by the additional). Is evident. The same holds for the search and readout process. According to the above example, when a search for the data packet X is requested, the ring controller 15 determines from its storage unit that the data portion is stored in the disk array 180-185, Then, an appropriate search command is sent to the ring interface device 70-75 via the disk array ring 12, whereby the data portion is reliably searched and the disk array ring Via 12, the packet is supplied to the ring control device 15 to be repacketized. The general process is the same when a search for data packet Y is requested, except that this time the ring controller 15 sends a search command to the ring interface devices 70-77, and The search is for the signal portion stored in the combined disk array 180-186. Storing and retrieving a data portion on a disk drive in a disk array is essentially the same operation. Upon receiving one data portion, one array controller evaluates how many live and available disk drives are in the disk array, and based on which subdivision of that data portion. On which disk drives will each of these subdivisions be striped across the live and available disk drives. Thereafter, information indicating which subdivision of the data portion is stored in which disk drive is stored in the storage unit of the array control device. The array controller uses that information to retrieve the data portion. When additional disk drives are added, the storage and retrieval process is exactly the same, only the number of associated disk drives differs. It becomes clear from the above discussion that the server 10 can operate taking into account changes in live and available disk arrays and disk drives, so that data elements can be added, removed, or accumulated additional data. Even when the server 10 becomes unavailable, the operation of the server 10 continues and does not stop during or after the work (or event). As a result, unlike a media pool video server, the data previously stored on the disk array and its containing disk drives can be added to one or more additional disk arrays and / or disk drives. There is no need to re-stripe. As implied in the above paragraph, some of the storage elements of server 10 may become unavailable for storage of additional data over time. One reason is that over time, the disk array and its containing disk drives become full of data. In order to constantly manage this, the server controller 13 constantly monitors the amount of storage capacity at each point in time via information from the array controllers 80-85 and the ring controller 15. . Based on this information, the server controller 13 tells the server operation controller if additional disk arrays and / or disk drives are needed and / or if the server 10 is no longer capable of storing data. Please inform me always. Because the manner of operation of the I / O ring 11 is essentially independent of that of the disk array ring 12, it is easy to add and expand I / O access channels to the server 10 (during expansion and after Does not affect the operation of the server 10). (I / O access channels can be added by adding an I / O interface device to the available ring interface devices 56-59.) More specifically, the ring configuration of the I / O ring 11 is as follows. Even if a new I / O access channel is added to this ring, the operations related to data reception and storage and reading of the stored data can be continued in the same fashion (fashion). It only becomes available for receiving and / or reading such data. Further, the I / O ring 11 and associated ring controller 14 are of sufficient capacity and capacity to handle the additional data flow associated with the addition of the I / O access channel, and do not affect the bandwidth of the server 10. FIG. 2 is a block diagram of one server system 50 according to the present invention. The server system 50 includes the server 10 (FIG. 1), as well as 20 and 22. The servers 20 and 22 are identical to the server 10 and operate in the same manner. The server system 50 also includes a server operation controller 30 (which may be considered the server operation controller discussed above), and a plurality of user interface devices 40, 41 and 42. The server operation control device 30 is connected to the servers 10, 20, and 22 via communication lines 17, 21, and 23, respectively. Server operation controller 30 is also coupled to user interface devices 40, 41 and 42. The operation of server system 50 allows users at many different locations (eg, different locations on the Internet) to request and receive different programs stored on different servers 10, 20, and 22. Also, the operation of server system 50 allows different users at different locations to accumulate on servers 10, 20, and 22. (But note, if the system 50 is to be used, for example, as a web site on the Internet, only one user will have the ability to store programs on the servers 10, 20 and 22; Preferably, all other users can only read the programs stored there.) As indicated in the previous paragraph, the server system 50 stores a number of different programs on the servers 10, 20 and 22. accumulate. The server operation controller 30 includes or combines a database 31 (as shown in FIG. 2), which indicates which programs are stored on which servers. If a user connected to a user interface device (e.g., user interface device 40) requests to receive a particular program (such a program is hereinafter referred to as a "requested program"), the request Is transmitted to the server operation control device 30 by the user interface device, and the server operation control device 30 subsequently determines on which of the servers 10, 20 and 22 the selected program is stored. judge. (If the program is not stored on any of the servers 10, 20 and 22, the server operation controller 30 requests the information via the corresponding user interface device to request the program. If the requested program is stored in, for example, the server 10, the server operation control device 30 couples to the server 10 so that the user requesting the program can receive the program. To which of the selected I / O access channels the selected program should be supplied. In addition, the server operation control device 30 determines when to transmit the selected program. Based on that information, the server operation controller 30 supplies the appropriate information to the server 10 as described above, so that the requested program is supplied to the corresponding input / output access channel at the correct time. . The accumulation of programs on the server system 50 is performed in a similar manner. A user connected to a user interface device (eg, user interface device 42) sends a command to the server operation controller 30 via the user interface device, and the user Inform that one program is to be stored (this program will be referred to as a "storage program" in the future). Upon receiving this command (including information on the size of the stored program), the server operation control device 30 determines which of the servers 10, 20 and 22 is available and has the capacity necessary to store the program. , To get the help of the relevant server control unit to make the decision. (If none of the servers 10, 20, and 22 has sufficient capacity to store the program, the server operation control unit 30 transmits the information to the server via the corresponding user interface device. Tell the user who wants to store the stored program, indicating that a disk array, disk drive, and / or server should be added to the server system 50.) For example, if it is determined that the server suitable for storing the stored program is the server 10, the server operation control device 30 will use one of the input / output access channels coupled to the server 10 to store the program for storing. Determine what will be supplied. Further, the server operation control device 30 determines when the stored program is received. Based on that information, the server operation controller 30 supplies the appropriate information to the server 10 as discussed above, and thus this stored program is stored therein. After that, the server operation control device 30 stores information indicating that the stored program has been stored in the server 10 in the database 31. Expansion of the server system 50 is easy. More specifically, additional servers, like servers 10, 20, and 22, can be added to server system 50 by coupling to server operation controller 30. In this case, there is no effect on the operation of the server system 50 during or after such extension work. FIG. 3 shows a block diagram of another advanced data server 200 according to the present invention. Server 200 includes a plurality of input / output rings 90-94 and a plurality of disk array rings 130-134, which are coupled to each other by a commutator 125. The input / output rings 90-94 are each essentially the same as the input / output ring 11 shown in FIG. 1 and operate in essentially the same manner as described above in connection with FIG. The input / output rings 90-94 each include one ring controller (ring controllers 100-104), and each include a plurality of ring interface devices (ring interface devices 110a-e through 114a-e). Contains. Further, some of the ring interface devices 110a-e through 114a-e are coupled to a corresponding plurality of input / output interface devices. That is, the ring interface devices 110a-c are respectively coupled to the input / output interface devices 120a-c, and the ring interface devices 111a-c are coupled to the input / output interface devices 121a-c. Ring controllers 100-104 couple to commutator 125. Disk array rings 130-134 are each essentially the same as disk array ring 12 shown in FIG. 1 and operate in essentially the same manner as described above in connection with FIG. The disk array rings 130-134 each include one ring controller (ring controllers 140-144) and a plurality of ring interface devices (ring interface devices 150a-e through 154a-e). . Further, some of the ring interface devices 150a-e through 154a-e couple to a corresponding plurality of disk arrays. That is, the ring interface devices 150a-c correspond to the disk arrays 160a-c, the ring interface devices 151a-c correspond to the disk arrays 161a-c, and so on. Ring controllers 140-144 couple to commutator 125. In FIG. 3, I / O rings 120-124 and disk array rings 130-134 each include the same number of ring interface devices, and they have the same number of I / O interface devices and disk drives. -The array is connected. Each I / O ring and disk array ring may have more or fewer ring interface devices (from FIG. 3), as may the number of I / O interface devices and disk arrays coupled to them. It is. Each number need not be the same. Since the configuration of the server 200 is as described above, the above-mentioned difficulty relating to the expansion of the media pool type server is solved without impairing the use of the commutator which is a central feature of the media pool type server. This is accomplished by using an input / output ring and a disk array ring of the type described above in combination with a commutator (commutator 125). Based on the above discussion in connection with FIG. 1, the server 200 can be expanded by the following means without affecting the operation during and after the expansion operation. That is, one means is to add disk arrays to the ring interface devices 150d-154d and 150e-154e and / or disk drives to the disk arrays 160a-c through 164a-c, respectively. . Another is to provide additional I / O access channels with access functions by coupling the same type of I / O interface devices to the ring interface devices 110d-114d and 110e-114e with or instead of the above means. It is. The operation of the commutator 125 is similar to the operation of current media pool servers (see U.S. patent applications Ser. Nos. 08 / 125,996, 08 / 389,672, and 08 / 530,041). The difference is that, in accordance with the present invention, commutator 125 receives data from I / O rings 90-94 and stripes the data across disk array rings 130-134 and couples it to the disk array. Storing it in the array and retrieving its data from these disk array rings and supplying it to these I / O rings by the opposite operation. As data is striped across the disk array rings, striping between disk arrays is much less important. Thus, it may be desirable that all data portions of data packets belonging to a particular program passed to the disk array ring be stored on the same disk array. This is because this reduces the amount of information that needs to be stored in the ring controller for that ring. However, it is still desirable that each subdivision of a single data portion provided to a single disk array be striped across the live and available disk drives in the array. This is because the combination of this stripe and the stripe across the disk array ring provides hierarchical / double striping, thus reducing disk latency and maintaining high bandwidth. Another system according to the present invention may include a plurality of servers of the type shown in FIG. Such a system may be viewed as the server system of FIG. 2 in which servers 10, 20, and 22 are replaced or added with servers of the type of FIG.

Claims (1)

【特許請求の範囲】 1.1個の高度データ・サーバーにおいて、該サーバーは: 1個の入出力リングを含んで成り、それに結合した少なくとも1個の入出力 アクセス・チャネルはデータをその入出力リングに供給し又はその入出力リング から読出す機能をもち; 1個のディスク・アレイ・リングを含んで成り、それに結合した少なくとも 2個のディスク・アレイはそのディスク・アレイ・リングから受信したデータを その中に蓄積するか、又はその中から検索したデータをそのデイスク・アレイ・ リングに渡す機能をもち、上記ディスク・アレイ・リングは上記入出力リングに も結合していて、データはこれら両リングの間に流れることができ; 1個のサーバー制御装置を含んで成り、それが上記入出力リング及びディス ク・アレイ・リングに結合しており、上記サーバー制御装置は入出力リング及び ディスク・アレイ・リングを制御してそれらのリングにデータの受信・蓄積又は データの検索・読出しを行なわせる; ことを特徴とする高度データ・サーバー。 2.請求項1に記載の高度データ・サーバーにおいて、 上記入出力リングは第1のリング制御装置を含んで成り、このリング制御装 置は(a)少なくとも1個の入出力アクセス・チャネルからのデータの受信及びそ のデータのディスク・アレイ・リングへの転送、又は(b)ディスク・アレイ・リ ングからのデータの受信及びそのデータの少なくとも1個の入出力アクセス・チ ャネルへの転送を制御し;及び 上記ディスク・アレイ・リングは第2のリング制御装置を含んで成り、この リング制御装置は(a)入出力リングからのデータ受信と、そのデータの少なくと も2個のディスク・アレイにわたる蓄積、又は(b)少なくとも2個のディスク・ アレイからのデータの検索と、そのデータの入出力リングへの転送を制御する; ことを特徴とする高度データ・サーバー。 3.請求項2に記載の高度データ・サーバーにおいて、上記第1のリング制御装 置及び第2のリング制御装置はサーバー制御装置に結合され、該サーバー制御装 置は、第1のリング制御装置を介して入出力リングを、また第2のリング制御装 置を介してディスク・アレイ・リングをそれぞれ制御し、この制御により、これ らリングにデータを受信し蓄積させるか、又はデータを検索し読出を行なわせる ことを特徴とする高度データ・サーバー。 4.請求項2に記載の高度データ・サーバーにおいて、第1のリング制御装置が 第2のリング制御装置に結合されて成り、それにより第1のリング制御装置は、 第2のリング制御装置経由で、入出力リングからディスク・アレイ・リングへ又 はディスク・アレイ・リングから入出力リングへそれぞれデータを供給し、更に また、第2のリング制御装置は、第1のリング制御装置経由で、ディスク・アレ イ・リングから入出力リングへ又は入出力リングからディスク・アレイ・リング へそれぞれデータを供給することを特徴とする高度データ・サーバー。 5.請求項2に記載の高度データ・サーバーにおいて、上記第2のリング制御装 置は、ディスク・アレイ・リングにより受信されるデータが少なくとも2個のデ ィスク・アレイを横断してストライプされるようにさせるやり方で動作し、それ により異なるデータ部分が、これらのディスク・アレイのうちの異なる1個によ り受信され蓄積されることを特徴とする高度データ・サーバー。 6.請求項5に記載の高度データ・サーバーにおいて、上記データ部分のどれが 、上記少なくとも2個のディスク・アレイのうちのどれに蓄積されているかを示 す情報を、上記第2のリング制御装置は蓄積していることを特徴とする高度デー タ・サーバー。 7.請求項5に記載の高度データ・サーバーにおいて、上記少なくとも2個のデ ィスク・アレイのうち少なくとも1個は、1個のアレイ制御装置と少なくとも2 個のディスク・ドライブを含み、上記アレイ制御装置の動作によって、その含ま れるディスク・アレイの受信したデータ部分は少なくとも2個のディスク・ドラ イブを横断してストライプされ、それにより上記データ部分の異なるデータ細分 が異なるディスク・ドライブに蓄積されることを特徴とする高度データ・サーバ ー。 8.請求項7に記載の高度データ・サーバーにおいて、上記データ細分のどれが 、上記少なくとも2個のディスク・ドライブのうちのどれに蓄積されているかを 示す情報を、上記アレイ制御装置は蓄積していることを特徴とする高度データ・ サーバー。 9.請求項2に記載の高度データ・サーバーにおいて、第2のリング制御装置は 、 (a)ディスク・アレイ・リングが1個のデータ・パケットを受信すると、上記 ディスク・アレイ・リングにはディスク・アレイが幾つ結合され、それらアレイ のうちどれが活きていて利用可能かを評価し、更に、任意の所与の時点で少なく とも2個のディスク・アレイが活きていて利用可能であることを根拠に、上記デ ータを活きていて利用可能な複数のディスク・アレイを横断してストライプし、 それにより上記データ・パケットの異なるデータ部分がそれぞれ上記ディスク・ アレイの異なる1つに受信・蓄積されるようなやり方で動作すること、及び (b)どのデータ部分がどのディスク・アレイに蓄積されているかを示す情報を 蓄積すること を特徴とする高度データ・サーバー。 10.請求項9に記載の高度データ・サーバーにおいて、上記活きていて利用可能 なディスク・アレイのうちの少なくとも1個が1個のアレイ制御装置と少なくと も2個のディスク・ドライブを含んで成り、上記アレイ制御装置は、 (a)1個のデータ部分を受信すると、上記活きていて利用可能なディスク・ア レイの中に幾つのディスク・ドライブを含み、それらディスク・ドライブのうち どれが上記活きていて利用可能かを評価し、更に任意の所与の時点で少なくとも 2個のディスク・アレイが活きていて利用可能となっていることを根拠に、その データ部分を活きていて利用可能な複数のディスク・ドライブを横断してストラ イプし、それによりそのデータ部分の異なるデータ細分が、それぞれそれらディ スク・ドライブのうち異なる1個に蓄積されるようなやり方で動作すること、及 び (b)どのデータ細分がどのディスク・ドライブに蓄積されているかを示す情報 を蓄積すること を特徴とする高度データ・サーバー。[Claims] 1. For one advanced data server, the server:     At least one I / O comprising one I / O ring and coupled thereto An access channel supplies data to or from the I / O ring Has the function of reading from     Comprising at least one disk array ring coupled thereto. The two disk arrays receive the data received from the disk array ring. The data stored in or retrieved from the disk array The disk array ring has the function of passing it to the I / O ring. And data can flow between these two rings;     It comprises one server controller, which is the input / output ring and the disk. The server controller is connected to the I / O ring and Control the disk array rings to receive and store data on those rings or To search and read data;   Advanced data server characterized by the following. 2. The advanced data server according to claim 1,     The input / output ring includes a first ring control device. (A) receive and receive data from at least one I / O access channel; Data to the disk array ring, or (b) the disk array Receiving data from the host and at least one I / O access channel for the data. Control transfer to the channel; and     The disk array ring comprises a second ring controller. The ring controller (a) receives data from the input / output ring and at least Storage over two disk arrays, or (b) at least two disk Controls the retrieval of data from the array and the transfer of that data to the I / O ring;   Advanced data server characterized by the following. 3. 3. The altitude data server according to claim 2, wherein said first ring control device is provided. The second ring controller and the second ring controller are coupled to the server controller and the server controller. The input / output ring via the first ring controller and the second ring controller. Each of the disk array rings is controlled via a device, and this control The ring to receive and store the data, or search and read the data Advanced data server characterized by the following. 4. 3. The altitude data server according to claim 2, wherein the first ring controller is Coupled to the second ring controller, whereby the first ring controller comprises: Via the second ring controller from the I / O ring to the disk array ring or Supplies data from the disk array ring to the I / O ring, respectively. Further, the second ring control device controls the disk array via the first ring control device. I-ring to I / O ring or I / O ring to disk array ring Advanced data server characterized by supplying data to each of the following. 5. 3. The altitude data server according to claim 2, wherein said second ring control device is provided. The data received by the disk array ring contains at least two data. It operates in a manner that causes it to be striped across the disk array, Different data portions are due to different ones of these disk arrays. Advanced data server characterized by being received and stored. 6. 6. The advanced data server according to claim 5, wherein any of said data portions is Indicates which of the at least two disk arrays is stored. Characterized in that the second ring control device accumulates the Data server. 7. 6. The advanced data server of claim 5, wherein the at least two data At least one of the disk arrays has at least one array controller and at least two Disk drives, the operation of the array controller The received data portion of the disk array to be read contains at least two disk drives. Different data subdivisions of the data portion Data server characterized in that data is stored on different disk drives - 8. 8. The advanced data server of claim 7, wherein: Which of the at least two disk drives is stored The array controller stores the information indicating the altitude data. server. 9. 3. The altitude data server according to claim 2, wherein the second ring controller is ,   (a) When the disk array ring receives one data packet, How many disk arrays are connected to the disk array ring Of which are alive and available, and at least at any given time Based on the fact that both disk arrays are alive and available, Data, striping across multiple available disk arrays, This allows the different data portions of the data packet to be Operating in such a way that it is received and stored in a different one of the arrays; and   (b) Information indicating which data portion is stored in which disk array Accumulate   Advanced data server characterized by: Ten. 10. The advanced data server according to claim 9, wherein said live and usable At least one of the hard disk arrays has one array controller and at least Also comprises two disk drives, the array controller comprising:   (a) When one data portion is received, the live and available disk Contains a number of disk drives in the Assess which is alive and available above and at least at any given time Based on the fact that the two disk arrays are alive and available, Stretches across multiple available disk drives utilizing the data portion Different data subdivisions of that data portion Operating in such a way as to be stored on a different one of the disk drives, and And   (b) Information indicating which data subdivision is stored on which disk drive Accumulate   Advanced data server characterized by:
JP9538696A 1996-04-29 1997-04-14 Advanced data server with I / O ring coupled to disk array ring Ceased JPH11510631A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/641,153 US5732211A (en) 1996-04-29 1996-04-29 Advanced data server having a plurality of rings connected to a server controller which controls the rings to cause them to receive and store data and/or retrieve and read out data
US08/641,153 1996-04-29
PCT/IB1997/000398 WO1997041515A2 (en) 1996-04-29 1997-04-14 An advanced data server with an i/o ring coupled to a disc array ring

Publications (1)

Publication Number Publication Date
JPH11510631A true JPH11510631A (en) 1999-09-14

Family

ID=24571162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9538696A Ceased JPH11510631A (en) 1996-04-29 1997-04-14 Advanced data server with I / O ring coupled to disk array ring

Country Status (5)

Country Link
US (1) US5732211A (en)
EP (1) EP0843855B1 (en)
JP (1) JPH11510631A (en)
DE (1) DE69723533T2 (en)
WO (1) WO1997041515A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185621B1 (en) * 1997-03-25 2001-02-06 Philips Electronics N.A. Corp. Direct copying between disk blocks in memory onto a network as sequential access files
US6504817B2 (en) * 1997-03-31 2003-01-07 Hewlett-Packard Company Fiber channel arbitrated loop dynamic loop sizing
JP3512329B2 (en) * 1998-03-05 2004-03-29 富士通株式会社 Collective monitoring and control system for multiple networks
US7043697B1 (en) * 2000-05-15 2006-05-09 Intel Corporation Virtual display driver
US9442671B1 (en) * 2010-12-23 2016-09-13 Emc Corporation Distributed consumer cloud storage system
US20190007292A1 (en) * 2017-06-28 2019-01-03 Cpacket Networks Inc. Apparatus and method for monitoring network performance of virtualized resources

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262965A (en) * 1988-10-31 1993-11-16 Bts-Broadcast Television Systems, Inc. System and method for high speed computer graphics image computation using a parallel connected, asynchronous multiprocessor ring coupled to a synchronous special purpose video processing ring
US5041963A (en) * 1988-12-29 1991-08-20 Intel Corporation Local area network with an active star topology comprising ring controllers having ring monitor logic function
US5365518A (en) * 1992-03-02 1994-11-15 Alcatel Network Systems, Inc. Sonet overhead server
US5251213A (en) * 1992-05-12 1993-10-05 Microcom Systems, Inc. Multiport source routing token ring bridge apparatus
US5388097A (en) * 1993-06-29 1995-02-07 International Business Machines Corporation System and method for bandwidth reservation for multimedia traffic in communication networks
US5539660A (en) * 1993-09-23 1996-07-23 Philips Electronics North America Corporation Multi-channel common-pool distributed data storage and retrieval system
US5642151A (en) * 1993-11-12 1997-06-24 International Business Machines Corporation Distribution of television signals to workstations
CA2138301C (en) * 1994-01-21 1998-12-15 Hal Hjalmar Ottesen Apparatus and method for providing multimedia data
US5438614A (en) * 1994-05-25 1995-08-01 U.S. Robotics, Inc. Modem management techniques
EP0695061A1 (en) * 1994-07-28 1996-01-31 International Business Machines Corporation Channel allocation method for a ring network
DE69521374T2 (en) * 1994-08-24 2001-10-11 Hyundai Electronics America Video server and system using it

Also Published As

Publication number Publication date
DE69723533D1 (en) 2003-08-21
WO1997041515A3 (en) 1997-12-24
EP0843855B1 (en) 2003-07-16
WO1997041515A2 (en) 1997-11-06
US5732211A (en) 1998-03-24
DE69723533T2 (en) 2004-05-27
EP0843855A2 (en) 1998-05-27

Similar Documents

Publication Publication Date Title
US6813698B2 (en) Concurrent configuration of drives of a data storage library
US7565503B2 (en) Method and apparatus implementing virtualization for data migration with volume mapping based on configuration information and with efficient use of old assets
US7650477B2 (en) Method for changing a remote copy pair
JP3117390B2 (en) Method of distributing a data set among a plurality of disks and related apparatus and method
US7506008B2 (en) Storage apparatus, storage control method, and computer product
JP3190813B2 (en) Delivery system
US5894585A (en) System for recording processing operations of one processing apparatus and reflecting contents of the operations which have not been reflected since the previous reflecting
US7089386B2 (en) Method for controlling storage device controller, storage device controller, and program
US20020165927A1 (en) Image processing
JP4626395B2 (en) Center server and its operation method
US20030154246A1 (en) Server for storing files
US7143176B2 (en) Data communication with a protocol that supports a given logical address range
JP2845162B2 (en) Data transfer device
US20040172628A1 (en) Method and system for installing program in parallel computer system
JPH11510631A (en) Advanced data server with I / O ring coupled to disk array ring
WO2005010766A1 (en) Data storage system
JPH06301594A (en) Equipment and method for managing memory in copying machine
US20020165930A1 (en) Data storage with stored location data to facilitate disk swapping
US20020073175A1 (en) Updating world wide web pages in a storage area network environment
US6766393B2 (en) Method and apparatus for transferring data between independent fiber channel arbitrated loops in an interactive information distribution system
JPH0991186A (en) Information distribution system
CN100474275C (en) Efficient data transfer to/from storage medium of computing device
JP3674226B2 (en) Backup method for portable recording media
US20030126224A1 (en) Giving access to networked storage dependent upon local demand
JPH08227371A (en) Method for managing data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060508

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070423

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070611

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20070905

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071016