JP2007524877A - データ記憶システム - Google Patents

データ記憶システム Download PDF

Info

Publication number
JP2007524877A
JP2007524877A JP2006501049A JP2006501049A JP2007524877A JP 2007524877 A JP2007524877 A JP 2007524877A JP 2006501049 A JP2006501049 A JP 2006501049A JP 2006501049 A JP2006501049 A JP 2006501049A JP 2007524877 A JP2007524877 A JP 2007524877A
Authority
JP
Japan
Prior art keywords
server
data
request
storage
servers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006501049A
Other languages
English (en)
Other versions
JP4640335B2 (ja
Inventor
ポール, ジー. コーニング,
ピーター, シー. ヘイデン,
ポーラ ロング,
カートリー, シー. ギルム,
ダニエル, イー. スマン,
エリック, アール. ショット,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EqualLogic Inc
Original Assignee
EqualLogic Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/347,901 external-priority patent/US7627650B2/en
Priority claimed from US10/347,898 external-priority patent/US7461146B2/en
Application filed by EqualLogic Inc filed Critical EqualLogic Inc
Publication of JP2007524877A publication Critical patent/JP2007524877A/ja
Application granted granted Critical
Publication of JP4640335B2 publication Critical patent/JP4640335B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ記憶システムを効率的にマッピングするためのシステム及び方法を記載する。一実現例では、区分リソースサーバは複数の個別サーバを含み、これら個別サーバはクライアントには同等に見える。個別サーバそれぞれは、区分リソースサーバに維持されている各リソースへの参照を備えた経路指定テーブルを含むことができる。クライアントからの要求は、対象となるリソースを維持するか或いは管理しているサーバにそうした要求を経路指定する経路指定テーブルの関数として処理される。サーバは、論理ブロック・ネームにより編成された分化した記憶クラスを提供できる。更に、サーバが、クライアントからのリソースに対するアクセスへの要求を検出し、そのクライアントとの通信のための接続を確立する処理も記載されている。次に、この処理は、検出した要求に応じることができるサーバを識別し、状態情報がこの接続に関連付けられているかを特定する。するとこの処理は、識別したサーバに状態情報へのアクセスを許可し、このサーバにクライアントへの応答を作成且つ送信させ、更に、このサーバに状態情報を更新させる。

Description

本発明は、データ記憶に関し、特に、複数のサーバに亘ってデータを記憶するデータ記憶システム及びサービスに関する。
企業の電子商取引に対する依存、オンライン取引処理、及びデータベースが増大するにつれ、管理し記憶する必要がある情報の量には経験豊富なネットワーク管理者ですら怖じ気づくことがある。
サーバはデータを上手く記憶するが、その容量は限られており、多くのユーザが同一情報にアクセスしようとするとボトルネックとなることがある。その代わり、ほとんどの企業は、テープライブラリ、RAIDディスクアレイ、更には光学記憶装置などの周辺記憶装置に依存している。これらの記憶装置は、データをオンラインでバックアップし、大量の情報を記憶するのに有効である。サーバにこうした装置を多数接続することで、ネットワーク管理者は、当該企業に関わるかなりの量のデータを記憶可能なサーバファームを構築できる。
RAIDディスクアレイなどの高度な記憶技術は、分化した記憶クラスを提供する。これらの記憶クラスは、性能、信頼性、エラー検出、及び他の点において互いに異なることがある。これら様々な記憶クラスにより、システム管理者は異なる種類のデータを異なる記憶クラスで記憶できる。
既存のシステムは十分役には立つが、一般的にサービスクラス毎に別個の記憶装置を使用する。従って、1つの記憶装置を、例えばRAIDレベル0などの一定の性能レベルに設定し、この装置(或いは複数装置)が、フォトショップの一時ファイルなどの適切なデータを記憶できる。従って、これらシステムは、異なる記憶クラスに専用の装置を必要とする。
サーバファームのサイズが増大し、マルチメディアなどのデータ集中度が高いアプリケーションへの企業の依存度が増大すると、こうした従来の記憶モデルは有用性を維持できなくなる。この理由は、これらの周辺装置へのアクセスが遅くなることがあり、全てのユーザが、常に各記憶装置に容易且つ透過的にアクセスできるとは限らないからである。
最近になって、多くのベンダーがストレージ・エリア・ネットワーク(SAN)を開発している。SANは、より多くの選択肢(ネットワーク・ストレージ(NAS)として動作する周辺装置よりも遙かに高速なアクセスを含む)をネットワーク記憶に提供する。更に、SANは、大量データの取扱うために別個のネットワークを形成する柔軟性も提供する。
SANは、複数ユーザの大きなネットワークに代わって、様々な種類のデータ記憶装置を関連付けられたデータサーバに相互接続する高速の特殊目的ネットワーク又はサブネットワークである。典型的には、ストレージ・エリア・ネットワークは、企業のためのリソースを計算するネットワーク全体の一部である。SANは、通常は、IMBのS/390メインフレームのような他の計算リソースに近接してクラスタ化されているが、ATM又は同期光通信ネットワークなどの広域通信ネットワーク・キャリア技術を用いて、バックアップ及び超大容量記憶用の遠隔地まで延びることもある。SANは、光ファイバESCON又はファイバチャンネル技術などの既存の通信技術を用いることもできる。
SANは、ディスク・ミラー化、バックアップ及び復元、データの記録及び記録データの取り出し、1つの記憶装置から他の記憶装置へのデータ移送、並びにネットワーク内の異なるサーバ間でのデータ共有をサポートする。SANは、ネットワークに取り付けた記憶システムにサブネットワークを結合させることができる。
SANには大きな将来性があるが、大きな課題に直面している。端的に言って、消費者は自分たちのデータ記憶システムに多くを期待している。具体的には、消費者は、SANがネットワーク的なスケーラビリティ、サービス、及び柔軟性を提供する一方、サーバファームに太刀打ちできる速度でデータアクセスを実現することを要求している。これは、クライアントのデータ使用の動的パターンが大きく変動し、時間と共に変化する傾向にある環境においては特に難題である。例えば、ある記憶システムがクライアント要求に応答できる速度は、その要求を処理しているサーバで利用できるリソースに少なくとも部分的には依存する。しかし、データに対するクライアント要求は突発的に発生することがあり、又、記憶データの特定部分を、他のデータのある部分よりも非常に頻繁に要求する場合がある。更に、クライアント要求は、記憶データの特定部分が、通常は(常にでないにせよ)記憶データの他の部分と共に要求されるというパターンを踏むことがある。
企業の記憶システムでは、記憶データの特定部分は他の部分よりも頻繁に要求されるという事実に対処する様々な技術が開発されてきた。更に、企業の記憶システムが、ディスク記憶装置からより効率的に読み出されるデータブロックのパターンを作成できるように、ストライピング技術も開発されてきた。しかし、これらの技術をこうした典型的な企業の記憶システムに容易に実装するには、ゲートウェイ又はスイッチを修正してクライアント要求を監視し、データが元となる記憶媒体にどのように記憶されるかを制御することで実行する。こうした技法はストレージ・エリア・ネットワークにも利用できるが、これら技法を用いると、SANはゲートウェイ又はスイッチ・アーキテクチャを使用せざるを得なくなり、クライアント要求が実行される速度が低下することにもなりかねない。
もう一つのアプローチは「記憶の仮想化」であり、中間デバイスをクライアントとサーバとの間に配置して、中間デバイスが要求の経路指定を実行するというものである。この方法では、何れのサーバも区分(原語:partition)されたサービス全体の一部のみを提供しているということを意識しない。中間デバイスを追加すると、システムの複雑性が増加してしまう。
従って、クライアントによるマルチサーバ環境における任意サーバとの連絡を許容し、且つ中間デバイス又はサーバにそれほど依存せずに、分散したリソースへのアクセスを許容できれば好ましい。又、ゲートウェイが全ての着信要求トラフィックを監視することなく、データがシステムにどのように記憶され且つ管理されるかをストレージ・エリア・ネットワークが制御できる方法及びシステムを提供するのが望ましい。更に、クラス専用記憶装置を必要とすることなく、分化した記憶クラスを記憶装置に提供することが望ましい。
発明の概要
一実現例では、本明細書に記載したシステム及び方法は、ブロックレベル・データ記憶サービスを提供するシステムを含む。より具体的には、本発明のシステム及び方法は、ブロック記憶サービスを複数の等価サーバにわたって区分するサーバシステムと共に用いられるブロックレベル・データ記憶サービスを提供する。等価サーバからなるシステムは、これに限定するわけではないが、それぞれが類似のインターフェースをクライアントに提示し、そのクライアントからの同一の要求に同一の応答を提示する複数の等価サーバからなるシステムを包含する。本明細書に記載したシステム及び方法は様々な用途に適用可能で、特定の用途に限定されるわけではない。ただし、説明を明確にするため、本明細書に記載したシステム及び方法は、ブロックレベル・データ記憶適用例を参照して説明する。又、この適用例では、複数のデータブロックが、複数の記憶装置にまたがって区分されたブロックデータ・ボリュームに記憶され、このデータ・ボリュームの異なる部分が、システム上の異なる等価サーバに関連付けられている。
本明細書に記載したように、このサーバシステムは、データブロックをデータ・ボリュームの異なる部分にわたって分散するための適応記憶ブロックデータ分散処理を用いる。このため、各等価サーバは、経路指定テーブル、データ移動プロセス、及び要求モニタ・プロセスを含む。要求モニタ・プロセスは、システムにアクセスしている1つ又は複数のクライアントからのサーバへの要求を監視できる。この要求は、ボリュームの区分又はある位置に記憶されたデータブロックに関連付けられているかもしれない。要求モニタは、関連付けられたサーバへのクライアントからの異なる要求を監視できる。更に、要求モニタは、システムの複数等価サーバ上で実行中の他の要求モニタ・プロセスと通信できる。こうすることで、要求モニタは、クライアントにより区分ブロックデータ記憶システムに転送される要求のグローバル・ビューを生成できる。この情報を共有することで、各等価サーバは、それに関連付けられた要求モニタ・プロセスを介して、ブロックデータ記憶システムによって処理される要求をグローバルに認識できる。
一旦、ブロックデータ記憶システムが処理している要求トラフィックのグローバル認識が得られると、各等価サーバは、そのデータ移動プロセスを用いてデータブロックを、或いは様々なデータブロックの管理責任を1つのサーバから別のサーバに移動できる。一実施形態では、各データ移動プロセスは、グローバル要求データを用いて要求クライアントにとってより効率的なサービス及びリソースのより効果的な割当てを実現するか、或いはブロックデータ記憶システムの性能、信頼性、又はそれ以外の特性を向上させるデータブロックの分散を特定する。
一実施形態では、各データ移動プロセスは他のデータ移動プロセスと通信して、異なるサーバのデータ移動プロセスに、データブロックが1つのサーバから他のサーバに移される時に通信させることができる。例えば、一実施形態では、データ移送の信頼性を向上させるため、異なる等価サーバ上のデータ移動プロセスは、1つのサーバから他のサーバへのデータブロックの移送を監視し、このブロックデータ移送が完了した時とこの移送が成功したかを確認するトランザクション機構を利用できる。
データブロック記憶システムにより維持される1つのボリュームの異なる区分にわたる異なるデータブロックの位置と、異なるボリュームにわたる異なるデータブロックの位置とを継続して認識するために、各等価サーバは経路指定テーブルを維持する。これを達成するため、各等価サーバは、ブロックデータ記憶システムに記憶されている異なるデータブロックと、各データブロックを担当する等価サーバとを追跡する経路指定テーブル・プロセスを含む。一実施形態では、これら等価サーバの経路指定テーブル・プロセスは互いと通信して、ブロックデータ記憶システムにより維持される異なるデータブロックと、これら異なるデータブロックに関連付けられた等価サーバとのシステム全体にわたる包括的データベースを提供する経路指定テーブルを各等価サーバに維持させることができる。
本発明のこの実現例によれば、本発明は、複数のサーバが、着信するサービス又はリソース要求を統一的にサポートできるようにする方法、コンピュータ・プログラム製品、及びシステムを特に提供する。そのために、本明細書に記載のシステム及び方法は、複数サーバにわたってリソースを分散し、編成し、且つ維持する。好適な一実施形態では、これらサーバは、着信する要求に同一様態で応答できるという点において全く同等である。従って、各サーバは、システム上に維持されているリソースへのアクセスを要求しているクライアントには同等に見える。
一実施形態では、経路指定テーブルも、サーバをメンバとするグループを示す帰属関係情報を記憶する。この経路指定テーブルは必要に応じて更新可能で、それによってグループを構成する様々なサーバの追加、削除、又は一時的な利用不可能状態によるグループ帰属関係の変更を反映する。変更がサーバグループに伝わると、各サーバにおける全ての関連した経路指定テーブルは同一情報を保持することになる。
任意サーバがリソース要求を受け取ると、そのサーバは関連した経路指定テーブルを用いて、どのグループメンバが要求リソース・オブジェクト又は要求リソース・オブジェクトの一部を実際に保持しているかを識別する。すると、ネットワークを介した費用がかかる照会/応答トランザクションを行うことなく、正しいサーバから所望のデータ・オブジェクトに横方向にアクセスすることにより、この要求に応えることができる。
本発明の別の実現例では、クライアントからのリソースに対するアクセス要求を検出し、そのクライアントとの通信のための接続を確立することにより、あるプロセスがクライアント要求に応答する。次に、このプロセスは、検出した要求に応じることができるサーバを識別し、状態情報がこの接続に関連付けられているかを特定する。するとこのプロセスは、識別したサーバに状態情報へのアクセスを許可し、このサーバにクライアントへの応答を作成且つ送信させ、更に、このサーバに状態情報を更新させる。
本発明の別の実現例では、システムがデータ・ネットワークを介してサービスを提供する。このシステムは、クライアントからのリソースへのアクセス要求を検出すると共に当該クライアントとの通信接続を確立するプロセスと、要求されたリソースに関連付けられたサーバを識別するサーバ識別プロセスと、検出した要求を識別したサーバに転送する要求ルータと、前記通信接続に関連付けられた状態情報への分散アクセスを許容するソケットサーバとを含み、前記識別されたサーバが、クライアントに応答するため状態情報にアクセスできる。
本発明の更に別の実現例によれば、分散サービスにデータ・ネットワークを介してアクセスするためのサーバは、クライアントからのサービスへのアクセス要求を検出すると共に当該クライアントと通信接続を確立するリスニング・スレッドを含み、この通信接続が、それに関連付けられた状態情報を備えている。更に、このサーバは、検出した要求に応じる能力がある利用可能サーバのリストを維持するリソース管理プロセスと、識別したサーバに検出した要求を転送する要求ルータと、前記通信接続に関連付けられた状態情報への分散アクセスを許容する接続データ・サーバとを含み、前記識別したサーバが、クライアントに応答するため状態情報にアクセスできる。
本発明の更に別の実現例によれば、区分リソースをサポートする複数サーバにクライアントからの検出した要求に応答させるソケットサーバを提供する。このソケットサーバは、前記クライアントと通信するために開かれた通信チャンネルに関連付けられたデータファイルを作成するための、前記検出した要求に応答するファイル・プロセスであって、状態情報を維持するためのファイル・プロセスと、前記複数サーバからの前記データファイルへのアクセス要求を検出する制御プロセスであって、前記複数サーバの少なくとも一つに、前記状態情報へのアクセスを許可するため前記データファイルへのアクセスを制御する制御プロセスと、前記複数サーバの一つに、前記作成したファイルに記憶された前記状態情報を更新させるファイル書き込みプロセスとを含む。
本発明の更なる実施形態は、次の特徴の内1つ又は複数を含みうる。前記状態情報はメモリに記憶できる。インターロック・プロセスを用いて前記状態情報を含むファイルへのアクセスを制御してよく、前記識別されたサーバは、ファイルに書き込むことで前記状態情報を更新してよい。前記インターロック・プロセスは、前記状態情報を含むファイルへのアクセスを一度に1台のサーバに制限でき、更に、このプロセスは、クライアントからの例えば分散サービスへの要求を検出するためのリスニング・スレッドを含むことができる。この通信接続は、HTTP、FTP、iSCSI、NFS、及び/又はCIFS通信プロトコルとして実現できる。前記状態情報は、IPアドレス、TCPシーケンス番号及び/又はiSCSIシーケンス番号を含むことができ、更に、ネットワーク・スタックにおける層と関連付けてもよい。
本発明の更に別の実現例では、ブロックレベル・データ記憶サービスが、単一の記憶装置上で分化記憶プールを提供する。そのために、本明細書に記載のシステム及び方法は、前記記憶装置(或いは複数の記憶装置)の論理ブロック・ネーム(LBN)空間にわたる異なる性能特性を活用する。これら異なる性能特性を利用して、単一装置上で2つ以上の記憶クラスをサポートできる。
より具体的には、一様態において、本明細書に記載したシステム及び方法は、分化記憶クラスを提供するシステム及び方法を提供する。こうしたシステムは、複数の記憶位置と、当該記憶位置を編成するための論理ブロック・ネーム空間とを備えた記憶装置を含むことができる。性能プロセスが、前記記憶位置を異なる性能レベルを提供する複数領域に区分でき、マッピング・プロセスが、前記記憶位置の区分した部分を前記論理ブロック・ネーム空間の選択したセクションにマッピングできる。
幾つかの実施形態では、前記性能プロセスは、前記複数の記憶位置を異なるサービスレベルに関連付けられた複数カテゴリに分離する。又、この異なるサービスレベルは、例えば異なるRAID性能レベルに関連付けてもよい。しかし、当業者であれば、RAID以外のタイプの分化記憶を用いてもよいことは理解するはずである。その例としては、使用する媒体と、コストと、他の特徴又は変数とを区別する記憶システムが含まれる。更に、幾つかの実施形態では、基礎となる記憶装置は単一の記憶媒体であるが、随意選択で、前記マッピング・プロセスが、複数の記憶ボリュームを選択した性能レベルで形成してもよく、更に、これら複数記憶ボリュームを1つ又は複数の記憶装置に関連付けてもよい。
随意選択で、前記システムは、前記論理ブロック・ネーム空間の異なる部分間でデータを移動させる負荷バランシング移動プロセスを更に含むこともできる。前記負荷バランシング移動プロセスは、データを記憶プール間で移動してシステム性能を向上させる適応データ配置プロセスを含むことができる。更に、管理プロセスが、管理者にデータを異なる記憶プール間で移動させることもできる。これらシステムは、データブロックを移動、記憶、且つアクセスでき、このために、ファイルシステム・サービスを提供するためディレクトリ構造及び階層を備えたファイルを含むファイルとして編成されたデータブロックを移動できる。代替的実施形態では、これらシステムは、記憶ボリューム・サービスを提供するためのプロセスを含むことができる。
別の実施形態では、これらシステムは、分化記憶クラスをサポートするシステムを提供する。こうしたシステムは、複数の記憶位置と、当該記憶位置を編成するための論理ブロック・ネーム空間とを備えた記憶装置を含むことができる。この記憶装置は、その内部で変動する前記記憶位置の性能パラメータも備えている。このシステムは、上述の記憶位置を性能パラメータの変動の関数として複数領域に区分するための区分プロセスを更に含むこともできる。前記区分プロセスは、システム要素の選択された構成の関数として固定セットの区分を選択できる。更に、性能プロセスが、複数の区分を異なる性能レベルと関連付けることができ、又、マッピング・プロセスが、前記記憶位置の識別した区分を前記論理ブロック・ネーム空間の選択したセクションにマッピングできる。
本明細書で記載したシステム及び方法は、RAIDコントローラ、デバイスドライバ、オペレーティング・システム、アプリケーション・プログラム、又はネットワーク・サービスを含む多種多様な形式で実現できる。一実施形態では、このシステムは、1つ又は複数のサーバを含んだストレージ・エリア・ネットワークとして実現される。このサーバは、それ自身を構成するコンピュータ・コードを実行して、少なくとも部分的には、分化記憶クラスをサポートする記憶システムを提供するプロセスを実行する。
別の様態では、本発明は、分化記憶クラスを提供するための処理を提供する。こうした方法は、複数の記憶位置と、当該記憶位置を編成するための論理ブロック・ネーム空間とを備えた1つ又は複数の記憶装置を提供する段階を含むことができる。前記処理が、前記記憶位置を異なる性能レベルを提供する複数領域に区分でき、更に、前記記憶位置の区分した部分を前記論理ブロック・ネーム空間の選択したセクションにマッピングできる。随意選択で、前記処理は、前記複数の記憶位置を異なるサービスレベルに関連付けられた複数カテゴリに分離し、随意選択で、前記複数の記憶位置を、異なるRAID性能レベルに関連付けられた複数カテゴリに分離する段階を含むことができる。一実現例では、前記マッピング処理は、前記論理ブロック・ネーム空間の異なる部分を、RAIDの異なるレベルにそれぞれ関連付ける。
随意選択で、前記処理は、前記論理ブロック・ネーム空間の異なる部分間でデータを移動させることによって負荷バランシングを行う段階を含むこともできる。負荷バランシングを行う前記段階は、異なる性能レベルを備えた記憶プールを含む記憶プール間でデータを移動し、従ってシステム性能全体又は1つの記憶クラスの性能全体などのシステムの一定局面の性能を向上させるか、或いは1つのデータクラスのサービスを向上させる。
これを達成するため、この処理は、管理者にデータを異なる記憶プール間で移動させることもできる。これは、データを異なる記憶プール間で移動させるパラメータ(動作パラメータを含む)を設定する能力を、前記管理者に提供するユーザ・インターフェースを介して実行できる。
前記マッピング段階は、複数の記憶ボリュームを選択した性能レベルで形成できる。
本発明のその他の特徴及び利点は、次に記載する好適な実施形態の説明及び請求の範囲から明らかになるはずである。
本明細書に記載したシステム及び方法は、データ・ネットワーク上の複数サーバに分散したリソースを編成し、管理するためのシステムを含む。より具体的には、本明細書に記載したシステム及び方法は、区分サービスをより効率的に運用するシステム及び方法を提供する。具体的には、本明細書に記載したシステム及び方法は、記憶装置の区分ボリュームにわたるデータブロックの割当てを管理するシステム及び方法を提供する。本明細書に記載されたシステム及び方法は、概ね記憶装置及びアプリケーションに関わるが、当業者であれば、本発明は分散ファイルシステム、アプリケーション・サービス・プロバイダ及び他のアプリケーションをサポートするためのシステムを含む他の用途にも適用できることは理解するはずである。更に、通常の技能を備えた当業者であれば、本明細書に記載したシステム及び方法は、本発明により実現できる単に例示的な種類のもので、これらの代表的な実施形態は個別の用途に合わせて修正、補足、且つ変更できることは理解するはずである。
図1を参照すると、本発明による適応記憶ブロックデータ分散のためのシステム10が図示されている。図1に示したように、1つ又は複数のクライアント12が、例えばインターネット、イントラネット、WAN、又はLANなどのネットワーク14を介して、或いは直接接続によってサーバグループ16の一部であるサーバ161、162、163に接続されている。更に、図1はグループ16を複数サーバのローカル集合として示しているが、互いから物理的に離れたサーバを含む複数サーバの集合又はグループとしてもよい。
クライアント12は、PCワークステーション、手持ち型計算装置、ワイヤレス通信装置、又はこのサーバグループ16と情報交換するためサーバグループ16にアクセスして、このサーバと対話可能なネットワーク・クライアントを装備した他の装置を含む任意適切なコンピュータ・システムでよい。ネットワーク・クライアントは、ユーザがサーバとデータ交換できるものあれば任意のクライアントでよい。随意選択だが、クライアント12及びサーバグループ16は、遠隔サーバグループ16のサービスにアクセスするのに安全が保証されていない通信路に依存してもよい。通信路を安全にするためには、これらクライアント及びサーバは、ネットワークを介してデータを送信するための保護チャンネルを、遠隔ユーザに提供するため開発された従来の安全保護システムの何れかなどの安全保護グループシステムを利用すればよい。こうしたシステムの1つには、遠隔ユーザに、従来のウェブブラウザ・プログラムとウェブサーバとの間に信用できるパスを提供するネットスケープ・セキュアソケットレイヤー(SSL)安全保護機構がある。
各サーバ161、162、及び163は、任意バージョンのUnix(登録商標)オペレーティング・システム上で動作するサンパーク(原語:SunParc)(商標)システムなどの市販のサーバプラットフォームを含むことができる。
各サーバ161、162、及び163は、それらの動作を拡張して本明細書に記載したトランザクションを達成する他のソフトウェア構成要素を含むこともでき、又、サーバ161、162、及び163のアーキテクチャは、用途に従って変更してもよい。例えば、各サーバは、サーバに後述する動作を実行させるための、典型的にはモジュールと呼ばれる組み込み拡張機能を備えてもよいし、或いは、これらサーバは、実行可能ファイル(それぞれが後述する動作の全て又は一部を実行するために利用される)のディレクトリにアクセス可能としてもよい。他の実施形態では、サーバ161、162、及び163は、当該サーバのオペレーティング・システムか、デバイスドライバか、テープライブラリ、RAID記憶システム又は他のデバイスなどの周辺装置上で動作するソフトウェア・プロセスかに後述するプロセスの一部を組み込むソフトウェア・アーキテクチャを利用してもよい。何れの場合も、通常の技能を備えた当業者であれば、本明細書に記載したシステム及び方法は、多くの異なる実施形態及び実行例を介して実現でき、更に、採用した実施例及び実行例は対象とする用途の関数として異なり、これら全ての実施形態及び実行例はその範囲に入ることは理解するはずである。
こうした構成では、クライアント12は、例えばサーバ161など、グループ16の何れかのサーバに連絡を取り、データブロック、ページ、ファイル、データベース、アプリケーション、又は他のリソースなどのリソースにアクセスする。連絡を受けたサーバ161自体が要求されたリソースを保持しておらず、管理もしていないこともある。これに対処するため、サーバグループ16は、クライアント12による区分リソースの利用を可能とするように構成されている。例示目的で、サーバ161、162、163の3つのサーバ全てにわたって区分されている1つのリソース18と、これら3つのサーバの内の2つにわたって区分されている他のリソース17との2つのリソースが図示されている。サーバグループ16がブロックデータ記憶システムであるこの代表的な応用例では、各リソース18及び17は区分ブロックデータ・ボリュームでよい。図1の実施形態では、従ってサーバグループ16は、複数の等価サーバであるサーバ161、162、及び163からなるストレージ・エリア・ネットワーク(SAN)として動作できるブロックデータ記憶サービスを提供する。各サーバ161、162、及び163は、区分ブロックデータ・ボリューム18及17の1つ又は複数部分をサポートできる。図示したシステム10では、2つのデータ・ボリュームと3つのサーバが存在するが、サーバの数は特に限定されるものではない。同様に、リソース又はデータ・ボリュームの数にも特に制限はない。更に、各データ・ボリュームは単一サーバ上に全てが収容されていてもよいし、各データ・ボリュームは、サーバグループの全てのサーバ又はサーバグループの部分集合など、幾つかのサーバにわたって区分されていてもよい。実際には、もちろん、サーバ161、162、及び163に利用できるメモリの量やサーバ161、162、及び163の計算処理上の制限など、実現に関わる事情による制限がありうる。更に、一実施例では、グループ分け自体(すなわち、どのサーバがグループ16を構成するかという決定)が運営上の決定となることもある。典型的なシナリオでは、1つのグループが、始めは2、3のサーバのみか或いはたった1つのサーバしか含まないこともありうる。システム管理者は、必要なサービスのレベルを確保する必要性に合わせ、サーバをグループに追加していくことになる。サーバを増やせば、記憶されるリソースのためのスペース(メモリ、ディスク記憶装置)が増加し、クライアント要求を処理するCPU処理能力が増加し、クライアントからの要求及びクライアントへの応答を伝送するネットワーク能力(ネットワーク・インターフェース)が増大する。当業者であれば、本明細書に記載したシステムは、追加サーバをグループ16に加えることにより容易にスケール変更して、増大したクライアント需要に対処できることは理解するはずである。
図2を参照すると、サーバ161(図1)に接続しているクライアント12は、サーバグループ16をそれが単一サーバであるかのように見ることになる。クライアント12は、サーバグループ16が場合によっては多数のサーバ161、162、163から構築されていることを認識しないし、ブロックデータ・ボリューム17、18が幾つかのサーバ161、162、163にわたって区分されていることも認識しない。結果として、サーバの数及びリソースがサーバ間で区分される様態は、クライアント12が認識するネットワーク環境に影響を与えることなく変更できる。
図3を参照すると、区分サーバグループ16において、任意のボリュームを、グループ16内の任意数のサーバにわたって分散してよい。図1及び2に示したように、1つのボリューム17(リソース1)は、サーバ162、163にわたり分散されており、別のボリューム18(リソース2)は、サーバ161、162、163にわたって分散されている。有利なことに、それぞれのボリュームは、「ページ」とも呼ばれる複数ブロックからなる固定サイズのグループで構成されており、代表的な1ページは8192個のブロックを含む。他の適切なページ・サイズを用いてもよい。代表的な実施形態では、グループ16内の各サーバは、各ボリューム用の経路指定テーブル165を含んでおり、経路指定テーブル165は、特定ボリュームの特定ページが存在するサーバを識別する。例えば、サーバ161が、区分ボリューム18、ブロック93847への要求をクライアント12から受け取ると、サーバ161は、要求されたブロック番号をページ・サイズで割ってそのページ番号(この例のようにページ・サイズが8192個であればページ11)を計算し、経路指定テーブル165においてページ11を含むサーバの番号をルックアップする。仮にサーバ163がページ11を含んでいる場合は、この要求はサーバ163に転送され、このサーバがデータを読み出して、そのデータをサーバ161に返す。次に、サーバ161は、この要求されたデータをクライアント12に送る。言い換えると、この応答は、常にクライアント12から要求を受け取ったものと同一サーバ161を介してクライアント12に返される。
クライアント12にとっては、どのサーバ161、162、163に接続しているかは透過的である。実際は、クライアントは、これらサーバをサーバグループ16としか見えず、クライアントはサーバグループ16にリソースを要求する。クライアント要求の経路指定は、それぞれの要求毎に別々に実行されることは理解すべきである。これにより、リソースの複数部分が、異なるサーバに存在できるようになる。又、これによって、クライアントがサーバグループ16に接続している間に、リソース又はその部分を移動することが可能である。もしこれが行われた場合は、経路指定テーブル165は必要に応じて更新され、その後のクライアント要求は、現時点でその要求の処理を担当するサーバに転送される。少なくともリソース17又は18内部では、経路指定テーブル165は同一である。ここで説明する本発明は「リダイレクト」機構とは異なる。リダイレクト機構では、サーバがクライアントからの要求を処理できないことはそのサーバが決定し、クライアントをこの処理が可能なサーバにリダイレクトする。すると、クライアントは別のサーバと新たな接続を確立する。接続確立は比較的効率が悪いので、リダイレクト機構は頻繁な要求の処理には適していない。
図4は、区分サーバ環境でクライアント要求を処理するための代表的な処理の流れ40を示す。処理40は、ファイル又はファイルのブロックなどのリソースへの要求を受け取ること(ステップ42)により、ステップ41を開始する。ステップ43でこのサーバは経路指定テーブルを調べて、ステップ44でどのサーバがクライアントに要求されたデータ部分を実際に保持しているかを特定する。ステップ45において、この処理は、要求されたリソースがクライアントからこの要求を最初に受け取ったサーバに存在するかを調べる。もし要求されたリソースが最初のサーバに存在すれば、ステップ48で最初のサーバが、要求されたリソースをクライアントに返し、処理40はステップ49で終了する。それに対して、もし要求されたリソースが最初のサーバに存在しなければ、ステップ46でこの要求は、要求されたリソースを保持するサーバに転送され、ステップ47でこのサーバが、要求されたリソースを最初のサーバに返す。上述と同様に、処理はここでステップ48へ進み、最初のサーバが、要求されたリソースをクライアントへ転送し、ステップ49で処理40は終了する。
幾つかのサーバに分散されているリソースは、ディレクトリ、ディレクトリ内の個別のファイル、又はファイル内のブロックであってもよい。他の区分サービスを考慮することも可能である。例えば、データベースを類似の様態で区分したり、分散ファイルシステム、或いはインターネットを介して配信されるアプリケーションをサポートする分散サーバ又は区分サーバを提供したりできる。一般に、このアプローチは、クライアント要求がリソース全体の部分への要求であると解釈でき、且つリソースの部分に対する処理が、全ての部分の間におけるグローバル調整(原語:coordination)を必要としないような任意のサービスに適用できる。
図5を参照すると、ブロックデータ・サービスシステム10の一実施形態を示す。特に、図5は、クライアント12がサーバグループ16と通信するシステム10を示す。このサーバブロックは、3つのサーバ161、162、及び163を含む。各サーバは、経路指定テーブル20A、20B、及び20Cとして示した経路指定テーブルを含む。更に、各サーバは、それぞれデータ移動プロセス22A、22B、及び22Cを含む。各等価サーバ161、162、及び163は、これら経路指定テーブル及びデータ移動プロセスに加え、図5に示したようにそれぞれ要求モニタ・プロセス24A、24B、及び24Cを含む。更に、例示目的のみだが、図5は、1つのサーバ(サーバ162)から別のサーバ(サーバ163)へ移送可能な1ページのデータ28としてのデータブロックの配置を示す。図5は、データブロックがデータページに編成されていることを図示しているが、これは単なる特定の実現例にすぎず、他の実現例では個々のデータブロックを異なるサーバ間で移動してもよい。更に、ファイル、ディレクトリ、及び他のデータ編成などの異なる種類のデータブロック編成を用いることができ、本明細書に記載したシステム及び方法は、ページ単位のデータブロックを1つのサーバから別のサーバへ移動するもののような特定の実施形態には限定されない。
図5に示したように、各等価サーバ161、162、及び163は、経路指定テーブル20A、20B、及び20Cを含むことができる。図5に示したように、各経路指定テーブル20A、20B、及び20Cは、情報を共有する目的で互いと通信できる。上述のように、経路指定テーブルは、個別の等価サーバの内の何れがサーバグループ16により維持されている特定リソースを担当するかを探知できる。図5に示した実施形態では、サーバグループ16はストレージ・エリア・ネットワーク(SAN)とすることができ、このネットワークでは、各等価サーバ161、162、及び163は、クライアント12がこのSAN上のその等価サーバにアクセスするのに利用できる個別のIPアドレスを備えている。上述したように、各等価サーバ161、162、及び163は、クライアント12からの同一要求に同一の応答を提供できる。それを達成するため、個別の等価サーバ161、162、及び163の経路指定テーブルは互いに動作を調整して、異なるリソース(この代表的な実施形態では、データブロック、ページ、或いはデータブロックの他の編成)とそれぞれのデータブロック、ページ、ファイル、又は他の記憶要素を担当する個別の等価サーバとのグローバル・データベースを提供する。
図6は、経路指定テーブル20Aの一例とそこに記憶されている情報とを示す。図6に示したように、各経路指定テーブルは、区分データブロック記憶サービスをサポートする各等価サーバ161、162、及び163のサーバ番号610を含む。更に、各経路指定テーブルは、各等価サーバに関連付けられたページ620も識別する。
図5に更に示したように、データ移動プロセス22Bは、より効率的な或いはより信頼性の高いデータブロック配列が可能かどうか特定するため、経路指定テーブル20B内に記憶されている情報を利用する。このため、データ移動プロセス20Bは、要求モニタ24A、24B、及び24Cにより収集されたデータにアルゴリズムを適用するコンピュータ・プログラムを含む。このデータ移動プロセスは、データブロックのより効率的な割当てが可能かを判断する際に、データブロックの現在の分散状況を検討し、これらデータブロックへの現在のクライアント要求を考慮するアルゴリズムを適用する。このため、データ移動プロセス22Bは、要求モニタ・プロセス24Bと通信することもできる。
各要求モニタ・プロセス24A、24B、及び24Cは、それぞれの等価サーバに到着する要求パターンを監視して、クライアント12からのパターン又は要求がSANに転送されているか、又、これらパターンが、データブロックをより効率的に又はより信頼性高く区分できるかを判断する。一実施形態では、要求モニタ・プロセス24A、24B、及び24Cは、それぞれの等価サーバに到着するクライアント要求を単に監視するだけである。一実施形態では、各要求モニタ・プロセスは、個別の要求モニタ・プロセスが認識した異なる要求を表すテーブルを構築する。各要求モニタ・プロセス24A、24B、及び24Cは、各等価サーバが認識した要求のグローバル・データベースを構築するために互いに通信可能である。従って、この実施形態では、各要求モニタ・プロセスは、各等価サーバ161、162、及び163からの要求データを統合して、ブロックデータ記憶システム16全体が認識する要求トラフィックを表すグローバル・データベースを生成できる。
一実施形態では、このグローバル要求データベースをデータ移動プロセス22A、22B、及び22Cが利用可能として、より効率的又は信頼性が高いデータブロックの区分が可能かどうかを判断するのに使用できるようにする。しかし、代替的実施形態では、各要求モニタ・プロセス24A、24B、及び24Cは、要求データベースを検討して要求のパターンがそのデータベース内に存在するかを特定できるパターン識別プロセスを含む。例えば、一実施形態では、要求モニタ・プロセス24Bは、要求のグローバル・データベースを検討して、複数の異なるデータブロックが典型的には一緒に或いは連続的に要求されるパターンが存在するかを特定できる。こうしたパターンが識別されると、このパターンにはフラグをセットし、且つ何れかのデータ移動プロセス22A、22B、又は22Cが利用可能として、より効率的にクライアント要求に応えられるようにデータブロックを複数サーバにわたってストライピング可能かを特定できる。更に、他の実施形態では、要求モニタ・プロセスが、典型的には一緒に要求され且つ予め確認された或いは所定の閾値を上回る頻度で要求されるデータブロックを識別可能としてもよい。こすることで、要求モニタ24A、24B、及び24Cは、区分ボリューム内に存在するかもしれない「高需要ブロック」を識別できる。他の実施形態では、要求モニタ・プロセス24A、24B、及び24Cは、クライアントからブロックデータ記憶システム16に転送される要求内に存在する他のパターンを識別可能としてもよい。
図5を再び参照すると、区分データブロックを再分散した例が示されている。具体的には、図5には次の任意の例を示した。すなわち、1ページ分のデータ28を等価サーバ162から等価サーバ163へ移動させるため、データ移動プロセス22B及びデータ移動プロセス22Cが互いの動作を調整する。この実施形態では、1ページ分のデータが1つのサーバから次のサーバへ移動されている。通常の技能を備えた当業者であれば理解するように、1ページ分のデータは、2,000から典型的には16,000個のデータブロックまでの複数データブロックをグループ化したデータブロック編成であって、このページが区分データブロック・ボリューム18において別個の記憶単位であると識別されるようにヘッダを付けたものである。従って、この実施形態では、要求モニタ24Bは、ページ28が高需要ブロックと判断できるほど高頻度で要求されていると判断したのかもしれない。更に、要求モニタ24Bは、等価サーバ162が等価サーバ163に比べてリソースが逼迫していると判断したのかもしれない。従って、等価サーバ163は、等価サーバ162に比べて、クライアント12からのページ28への要求により迅速に応えるために利用可能なリソースを備えているのかもしれない。よって、データ移動プロセス22B及びデータ移動プロセス22Cは、ページ28を等価サーバ162から等価サーバ163へ移送するよう協働できる。
一実施形態では、データ移動プロセスは、ページ28を等価サーバ162の記憶装置から等価サーバ163の記憶装置に単に移送し、関連付けられた経路指定テーブルを更新する。すると、この更新は、ブロックデータ記憶システム16内の複数の経路指定テーブル20A、20B、及び20Cに通信される。しかし、他の実施形態では、データ移動プロセス22B及び22Cはトランザクション機構プロセスを用いてもよく、このプロセスは、ページ28の等価サーバ162から等価サーバ163への移送を監視し、このトランザクションがいつ完了したか、又オプションだが、ページ28がエラー無しで移送されたかを判断し、その時点で関連付けられた経路指定テーブル20A、20B、及び20Cを更新する。データ移動プロセス22B及び22Cが用いるトランザクションは、分散形ファイルシステムで一般的に用いられるような任意の従来の移送機構プロセスでよい。
図7乃至12は、データ又はサービスへのアクセスに関するクライアントからの要求により効率的に対処するシステム及び方法を示す。
ここで図7を参照すると、ローカル・エリア・ネットワーク24を介して通信する複数のクライアント12からのリソース要求をサポートする従来のネットワーク・システムを示した。特に、図7は、複数のクライアント12と、ローカル・エリア・ネットワーク(LAN)24と、スイッチ16、マスタ・データテーブル18、及び複数のサーバ22a乃至22nを含む記憶システム14とを示す。記憶システム14は、記憶リソースをLAN24上で動作するクライアント12に提供するストレージ・エリア・ネットワーク(SAN)を提供できる。図7に示したように、各クライアント12は、記憶システム/SAN14上に維持されているリソースを要求できる。それぞれの要求はスイッチ16に送信され、このスイッチがそれを処理する。処理時に、クライアント12は、LAN24を介してリソースを要求できる。また処理時に、スイッチ16は、マスタ・データテーブル18を用いて、複数サーバ22A乃至22Nのどのサーバがクライアント12に要求されているリソースを備えているかを識別する。
図7では、マスタ・データテーブル18はデータベース・システムとして示されているが、代替的な実施形態では、スイッチ16は、このスイッチが維持するフラットファイル・マスタ・データテーブルを用いてもよい。何れの場合も、スイッチ16は、マスタ・データテーブル18を利用して複数サーバ22A乃至22Nの内どのサーバがどのリソースを維持しているかを特定する。従って、マスタ・データテーブル18は、記憶システム14により維持される様々なリソースと、基礎となるサーバ22A乃至22Nの何れがどのリソースを担当しているかと、を列記した索引として機能する。
ここではLANを記載したが、当業者であれば、メトロポリタン・エリア・ネットワーク(MAN)、ワイドエリア・ネットワーク(WAN)、キャンパス・ネットワーク、又はインターネットなどネットワークのネットワークなどの、LAN以外のネットワークも使用できることは理解するはずである。従って、本発明は、いかなる特定種類のネットワークにも限定されない。
図7に更に示したように、スイッチ16が、要求されたリソースを得るための適切なサーバ22A乃至22Nをいったん特定すると、取り出したリソースを識別されたサーバからスイッチ16を介してLAN24に送り、適切なクライアント12に引き渡しできる。従って図7は、記憶システム14が、スイッチ16を、LAN24からの全要求の処理に関わる中央ゲートウェイとして使用することを示している。この中央ゲートウェイ・アーキテクチャを採用すると、クライアント12により要求されたリソースを記憶システム14から引き渡す時間が比較的長くなることがあり、記憶システム14が維持するリソースへの需要増大による待ち時間の増加に従って、この引き渡し時間は増加することがある。
図8を参照すると、本発明によるシステム10を示した。特に、図8は、複数のクライアント12と、ローカル・エリア・ネットワーク(LAN)24と、複数のサーバ32A乃至32Nを含むサーバグループ30とを示す。図8に示したように、クライアント12はLAN24を介して通信する。図8に示したように、各クライアント12は、サーバグループ30に維持されているリソースを要求できる。ある応用例では、サーバグループ30は、ネットワーク24を介して通信するクライアント12にネットワーク記憶リソースを提供するストレージ・エリア・ネットワーク(SAN)である。従って、クライアント12は、図8に要求34として示したように、LAN24を介してサーバ(例えばサーバ32Bとして示した)に送信される要求を出すことができる。
サーバグループ30はストレージ・エリア・ネットワークとして構成されており、複数の等価サーバ32A乃至32Nを含むことができる。これらサーバは、それぞれ別個のIPアドレスを備えており、従って、サーバグループ30は、複数の異なるIPアドレスを含む1つのSANとして見え、それぞれのIPアドレスは、このSANにより維持される記憶リソースにアクセスするためクライアント12が使用できる。更に、図示したサーバグループ/SAN30は、複数サーバ32A乃至32Nを利用してこのストレージ・エリア・ネットワークにわたってリソースを区分できる。従って、個別サーバそれぞれは、サーバグループ/SAN30が維持するリソースの一部を担当できる。
動作時には、サーバ32Bにより受信されたクライアント要求34はサーバ32Bによって処理され、クライアント12が求めるリソースを特定し、複数サーバ32A乃至32Nのどれがこのリソースを担当しているかを特定する。図8に示した例では、ストレージ・エリア・ネットワーク30は、サーバ32Aがクライアント要求34で識別されたリソースを担当することを特定する。図8に更に示したように、ストレージ・エリア・ネットワーク30が採用するシステムでは、元々のサーバ32Bがクライアント要求34に応答するのでなく、担当サーバ(サーバ32A)に、LAN24上で経路指定可能な応答38を、要求クライアント12へ引き渡しさせることによって、担当サーバを要求クライアント12に直接的に応答させるというショートカット手法を採用する。
上述したように、図8に示したストレージ・エリア・ネットワーク30は、複数の等価サーバを含む。等価サーバは、限定するわけではないがクライアント12に一様のインターフェースを提示するサーバシステムであると理解される。すなわち、各等価サーバは、クライアント12の要求に同一の様態で応答するものである。従って、各サーバ32A乃至32Nはクライアント12に同一の応答を与える。従って、クライアント12にとっては、サーバ32A乃至32Nの内どれが要求に応答しているかは重要ではない。図示したサーバ32A乃至32Nは、それぞれカリフォルニア州サンタクララ所在のサン・マイクロシステムズ社(原語:Sun
Microsystems, Inc.)が市販するサーバシステムの何れかなどの、従来のコンピュータ・ハードウェア・プラットフォームを含むことができる。各サーバは、1つ又は複数のソフトウェア・プロセスを実行して、このストレージ・エリア・ネットワークを実現する。サーバグループ30は、ファイバチャネル・ネットワークシステム、アービットレーテッド・ループ、又はストレージ・エリア・ネットワークを提供するのに適したそれ以外の任意種類のネットワーク・システムを含むことができる。
各サーバ32は自分自身の記憶リソースを維持してもよいし、図9に更に示したように、専用サーバ・ユニット42に接続された記憶装置44を含むこともできる。記憶装置44は、RAIDディスクアレイ・システム、テープライブラリ・システム、ディスクアレイ、又はLAN24を介してクライアント12に記憶リソースを提供するのに適したその他の任意装置でよい。
本発明のシステム及び処理はストレージ・エリア・ネットワークの応用例に限定されるものではなく、第1サーバが要求を受信し、第2サーバがその要求に対する応答を生成且つ送信するのがより効率的な他の応用例にも適用できる。他の応用例には、分散形ファイルシステム、データベース応用例、アプリケーション・サービスプロバイダ応用例、又はこのショートカット応答技術から利益を得られるその他の任意応用例が含まれる。
図9及び10は、図8に示したシステムと共に使用するのに適したショートカット応答の一実施形態をより詳細に示す。特に、図10は、ショートカット応答動作時に、接続及び状態情報がどのように形成されるを一例として示す機能ブロック図である。後に詳述するように、クライアント12とサーバ32とが情報交換する時に、これらクライアントとサーバとの間で接続が確立される。確立したそれぞれの接続について、サーバ32は、クライアント12に応答する際に使用する接続情報を維持する。従来のクライアント/サーバ情報交換では、クライアント要求を受信するサーバがそのクライアント要求にも応答する。こうした場合では、要求に応答したサーバが、クライアント12への接続を設定するサーバでもある。従って、応答するのに必要な接続情報をサーバが必要とする時には、こうした接続情報は全てそのサーバが利用可能である。
本明細書に記載したショートカット応答処理では、応答を生成し送信するサーバは、要求34を受信して接続を確立したサーバとは異なる場合もある。従って、応答38を生成するサーバがクライアント12に直接的に応答するためには、受信サーバ上に存在する接続情報にアクセスする必要があるかもしれない。この状態は、図9で高レベルにおいて図示されており、後に詳述する。
ショートカット応答の一例を図10に示した。特に、図10は、クライアント12の1つから送信された要求34に対するショートカット応答に参加する2つのサーバ32A及び32Bを示す。この実施形態では、受信サーバはサーバ32Aであり、応答サーバはサーバ32Bである。本明細書に記載したショートカット応答技術では、要求34は受信サーバ32Aにより受信可能である。受信サーバ32Aは、サーバ32Bが、要求34で識別されたリソースを実際に担当していることを特定できる。従って、受信サーバ32Aは、この要求34を応答サーバ32Bに転送できる。応答サーバ32Bは、要求34への適切な応答を特定できる。すると、応答サーバ32Bは、クライアント12に直接送信できる応答38を作成できる。しかし、上述のように、応答38を生成するには、応答サーバ32Bは、クライアントが送信した要求34に応答して受信サーバ32Aが生成した接続情報にアクセスする。
図10に示したように、クライアント要求34が受信サーバ32Aに受信されると、このクライアント要求は、データリンク層46を含む複数のネットワーク層により処理されうる。(典型的には、物理層はイーサネット(登録商標)・アダプタカード及びイーサネット(登録商標)・プロトコルを使用する。しかし、物理層の実装は実際の応用例に従って異なることがある。)従って、図10に更に示したように、要求34は、(図示した実施形態では)それぞれイーサネット(登録商標)・プロトコル処理層、インターネット・プロトコル(IP)処理層、及び伝送制御プロトコル(TPC)トランスポート層を含む、データリンク層46、ネットワーク層48、及びトランスポート層50により処理可能である。
図10に更に示したように、IP層及びTCP層の接続情報54及び58が生成される。この情報には、要求34を生成し且つ応答38の転送先であるクライアント12のIPアドレスを表す情報を含むことができる。更に、この情報には、幾つかの実施形態ではクライアントを識別するのに使用可能なTCP及び/又はiSCSIシーケンス番号を含むこともできる。
TCP層では、受信されるデータグラム又はパケットの数、或いはそれに類似した情報などの情報を含んだ接続情報58を生成できる。
要求34は、TCP層50の次に、アプリケーション層(すなわち、OSIモデルにおける「上位層」)52に到着する。図示した実施形態では、アプリケーション層は、このストレージ・エリア・ネットワークの一部として使用できるインターネット・スモールコンピュータシステム・インターフェース(iSCSI)プロトコルである。アプリケーション層では、接続情報60が記憶される。その際、この情報は、iSCSIアプリケーション・プログラムの適切な機能に関連したアプリケーション・レベルの接続情報を表す。接続情報に加え、HTTPクッキー、TPC及び/又はiSCSIシーケンス番号などの状態情報、及び他の類似情報も維持、記憶されることも理解できるであろう。
何れの場合でも、クライアント12への応答の生成に関わる情報が、異なるレベルのネットワーク・プロトコルにおいて生成されることが分かるはずである。本明細書で記載するショートカット応答処理では、プロトコル・スタックの異なる層54、58、及び60で維持されるプロトコル接続及び状態情報が応答サーバ32Bと共有される。図10に示したように、サーバ32Bには、これと類似のプロトコル・スタックが確立されている。このプロトコル・スタックは、データリンク層62、ネットワーク層64、トランスポート層68、及びアプリケーション層70を含む。受信サーバ32Aと同様に、応答サーバ32Bにおける各層64、68、及び70は、それぞれ機能ブロック72、74、及び78で示した接続及び状態情報のような接続及び状態情報を記憶できる。
要求34に応答するにあたって、受信サーバ32Aは、破線81で示したように要求34をプロトコル・スタック内の上方へ送り出し、各層を通過させる。通常の技能を備えた当業者には公知であるが、要求34がプロトコル・スタックを上方へ通過する際に、各層は情報をアンパックし、要求内のヘッダ情報を検討し、要求34に応答する時に利用される接続情報を設定、更新することを含む他の機能を実行してその要求を処理する。
図10に更に示したように、最高位の層52では、iSCSIプロトコルが、クライアント12により要求されたリソースをサーバ32Bが本当に担当しているかを特定できる。従って、この応用例では、iSCSIアプリケーション・プログラムは、実線82で示したようにクライアント要求をサーバ32Bに転送できる。アプリケーション層52は、クライアント要求を、クライアント12が要求したリソースを管理しているサーバ32Bのアプリケーション層70に転送する。これを達成するため、サーバ32Aは、このサーバ32Aで維持されている接続データ54、58、及び60へのアクセスを提供可能な分散形ソケットサーバ(原語:distributed
socket server)を含むことができる。図10で示したように、この分散形ソケットサーバを設けると、要求34がサーバ32Bのネットワーク・スタックを介して受信され経路指定されたかのように、サーバ32Bにこの接続及び状態情報へのアクセスを提供できる。図10の経路82で示したように、この分散形ソケットサーバは、要求34がサーバ32Aからサーバ32Bへ経路指定されたかような効果を奏する。結果的に、サーバ32Bは、クライアント12へ応答38を生成するのに必要な接続及び状態情報を得る。
図11を参照すると、分散形ソケットサーバの一実施形態が図示されている。特に、図11は、等価サーバ32A及び32Bを示す。サーバ32Aは、プロトコル・スタックにおける層46、48、50、及び52を含む複数の層を備えている。これらの層に並んで分散形ソケットサーバ84が図示されている。同様に、サーバ32Bは、プロトコル・スタックにおける層62、64、68、及び70を含む複数層を備えることが図示されている。サーバ32Bは、プロトコル・スタックの各層と通信していることを示した分散形ソケットサーバ・プロセス85を備えている。図11には、サーバ32Aのアプリケーション層52とサーバ32Bのアプリケーション層70との間のデータ交換に加え、サーバ32Aのソケットサーバ84とサーバ32Bのソケットサーバ85との間のデータ交換の例も図示した。
図11に示したように、分散形ソケットサーバ84は、アプリケーション52が確立したソケットと協働できる。一実施形態では、アプリケーション52は、クライアントからの要求34(図示しない)を受信し、サーバ32Aがクライアントにより要求されたリソースを担当するサーバでないことを特定する。サーバ32Aは、次に要求されたリソースを担当するネットワーク上のサーバを特定或いは識別する。アプリケーション52は、サーバ32Bが要求されたリソースを担当していることを特定する。次に、アプリケーション52は、アプリケーション70にアプリケーション・レベルでこの要求をサーバ32Bで動作している転送する。この要求の転送は、図11に示した通信86で図示してある。アプリケーション70は、転送された要求を受信し、その要求を処理する。
この要求を処理すると、サーバ32Bは、応答(図示しない)を生成するための接続及び状態情報がサーバ32Aに記憶されていることを確認する。従って、アプリケーション70は、ソケットサーバ85に接続及び状態情報をソケットサーバ84から要求するように指示する。ソケットサーバ84は、プロトコル・スタックの各層46、48、50、及び52と通信している。従って、ソケットサーバ84は、プロトコル・スタックのこれら層から適切な接続及び状態情報を収集し、収集した接続及び状態情報をソケットサーバ85に通信88を介して伝送できる。ソケットサーバ85は、適切なプロトコル層64、68、及び70でこの適切な情報を記憶又は設定できる。サーバ32Bが応答を生成すると、ソケットサーバ85は、接続状態に必要な変更があればそれをサーバ32Aのソケットサーバ84に返送する。従って、分散形ソケットサーバ85は、応答38を生成するためサーバ32Bを構成する(図10を参照)。
図12を参照すると、ショートカット応答に関する1つの処理がフローチャートとして示されている。具体的には、図12は、ステップ92で開始する1つの処理90を示す。ステップ92では、図示したクライアント12の何れかが、カプセル化した要求をストレージ・エリア・ネットワーク(SAN)に送信する。ステップ92の後、処理90はステップ94に進む。このステップでは、クライアントが要求を差し向けたサーバのプロトコル・スタックをこの要求が通過する。このプロトコル・スタックを通過する際に、この要求は、それに関連した接続情報及び状態情報を変更且つ作成する。ブロック98では、処理90が、クライアント12が生成した要求に応答する適切なサーバを特定する。応答サーバが要求を受信したサーバとは異なる場合は、処理90は識別した応答サーバにその要求を転送する(或いは経路指定又はリダイレクトする)。
ブロック100で、応答サーバは、転送された要求を処理してショートカット応答を生成するのに必要な接続及び状態情報を保持したサーバ(すなわち受信サーバ)を特定できる。別の実行例では、転送された要求に、識別した応答サーバ(例えばサーバ32B)にクライアントへの適切な応答を生成させるための必要な接続状態情報を保持させてもよい。何れにしても、クライアントに要求されたリソースを担当すると識別されたサーバは、要求に応答するのに必要な接続状態情報とクライアントからの要求を現時点で保持している。ブロック102では、応答サーバは、そのサーバ上のプロトコル・スタックの層を介してクライアントへの応答を生成できる。次に、この分散形ソケットサーバは、適切なサーバ上の接続及び状態情報を更新し、処理が終了する。
図13乃至17は、分化した記憶プールを備えた記憶システムに関わる。これら記憶プールによって、システム管理者は、異なる種類のデータを異なる記憶クラスで記憶できる。
先ず図13を参照すると、論理ブロック・ネーム(LBN)の異なるセクションが、異なる種類の性能特性を備えることを示した記憶装置10を図示する。具体的には、図13で示した例では、装置10のLBNは、セクション12、14、及び16としてそれぞれ示した3つの異なる性能クラスに分割されている。従って、図13は、ディスク10の全ネーム空間の抽象表現である。これらの用語の使用は異なる場合があるが、論理ブロック・ネーム空間は、ディスク上のアドレス可能位置の総体(原語:full
compliment)であることは一般に理解されており、更に、論理ブロックは、ディスク10などのディスク上の最小アドレス可能空間であると理解されるはずである。典型的には、各論理ブロックは、ディスク先頭で始まって0から順番に割当てられる固有の論理ブロック・ネーム(又は番号)により識別できる。ISO9660の標準では、CD上の全データは、論理ブロック番号でアドレス指定される。従って、図13に示した装置は、例えばハードディスク装置のように記憶ディスクであると一般に理解される。しかし、本発明はそれに限定されるものではない。本明細書に記載されているシステム及び方法は、コンパクト・ディスク、フロッピー(登録商標)・ディスク、テープ駆動システム、及び他の類似種類のデータ記憶装置にも適用できる。
いずれにせよ、論理ブロック・ネーム空間は、それぞれが異なる種類の性能特性を備えた異なるセクションに再分割できることは一般に理解できるだろう。対象となる性能特性には、データがディスクのその部分からアクセスされる割合、ディスクのその部分の信頼性、及び記憶装置のその部分にアクセスするのに掛かる時間(デジタル・リニアテープ記憶に特に関連性が高い)が含まれうる。
一実現例では、本明細書に記載したシステム及び方法は、図示した記憶装置10などの個別装置をスキャンし且つある種の特性を測定して、どのようにその装置を異なる性能クラスへ再分割すべきかを特定できる性能測定システムを含む。一実施形態では、この性能測定システムは、LBNの一部で実験的な読み出し書き込み動作を実行し、収集した実験データを用いてLBN空間内の異なる論理ブロック領域の性能特性を特定する。次に、この測定処理は、これら測定した特性から、一群の論理ブロックが、図示したセクション12、14、又は16の何れかのような1つのセクションに集合化できるかどうかを判断できる。こうしたセクションにおいては、集合化した論理ブロックは共通の性能特性を備え、従って、特定の性能レベルと関連付けられうるLBN空間内における下位空間を提供する。言うまでもなく、当業者であれば、LBN空間を異なるセクションに再分割するための細分性を選択可能である。又、選択した細分性は、概ね用途と、この用途にとって望ましい又は必要な記憶クラスの数とに左右される。他の実行例及び実施形態では、性能領域への区分は、システム設計時に決定且つ実行され、特定のシステム設計で固定される。この設計過程には実験及び測定が含まれることがあるが、その設計過程から得られる製品自体は、典型的には性能測定要素を含まない。選択した実施形態及び実行例は、対象となっているアプリケーション及び製品設計の詳細に焦点を当てられる。仮に製品の構成が大きく変動する可能性があり、製品設計段階でそうした構成全てを予め検討且つ分析していない場合は、「ランタイム」に測定を実行すると有用である。反対に、製品構成が承認に先だって厳密に管理され、分析されていれば、性の分析はその時点で行い、動作可能すなわち納入製品には測定要素は必要ない。
図14を参照すると、RAIDシステム20が図示されている。RAIDシステム20は、装置25A乃至25Dとして図示した同一の記憶装置を共有する、複数の分化した記憶プールを提供する。詳細には、図14は、プールA22及びプールB24を含むRAID記憶システム20を図示する。この実施形態に示すように、プールA22はRAID10記憶プールとして設定してあり、プールB24はRAID50記憶プールとして設定してある。当業者には周知のように、RAIDは、「安価(又は独立)ディスクの重複アレイ」を表すため一般的に用いられる頭字語である。RAIDディスクアレイは、単一の記憶システムとして集合的に機能するディスクの集合体であって、1つのディスクが故障してもデータを失うことなく、又、互いに独立して動作できる。様々なタイプのRAIDシステムが存在するが、一般に、カリフォルニア大学バークリー校の用語である「RAID」が、6つのRAIDレベルを定義している。各レベルは、複数システム25A乃至25Dなどのシステムにおける複数ドライブにわたってデータを分散するための異なる方法を示す。この技法は、コストと速度とを妥協させるものである。上述の異なるレベルには異なる意味があり、各レベルは、典型的には異なる利用法又は用途に対して最適化されている。例えば、RAIDレベル0には重複はなく、異なるドライブ25A乃至25Dにわたってデータを分割するので、データ処理量が高くなる。重複情報は全く記憶されていないので、性能は非常に高いが、アレイにおけるディスクの故障はデータ消失を意味する。このレベルは一般にストライピングと呼ばれる。RAIDレベル1は、一般に2台のハード・ドライブによるミラリングと呼ばれる。このレベルでは、全てのデータを1台のドライブから別のドライブへ複写することにより重複を実現する。レベル1アレイの性能は単一ドライブより僅かに優れている。しかし、一方のドライブが故障しても、データは消失しない。図示したプールA22が用いているようなRAIDレベル10は、複数のRAID1(ミラリングした)セットを単一アレイで用いた二重レベルアレイである。データは、全てのミラリングされたセットにわたりストライピングされる。RAID1は複数のドライブを用い、性能を向上させ、又、各ドライブは典型的には複写又はミラリングされている。プールB24が用いているようなRAIDレベル50は、複数のRAID5レベルを単一アレイで用いた二重レベルアレイである。図14に示したRAIDシステム20は、4つの記憶装置25A乃至25Dを用いて、それぞれが異なる性能特性及び異なる性能レベルを持つ、2つの異なる記憶クラスをサポートすることは理解できるだろう。
図15に示したもののような本発明による例示的システムでは、図14に示したRAIDレベルを図13に示した装置性能変化と組み合わせることによって、分化したプールを形成している。特に、図15は、4つの記憶装置35A乃至35Dを含むシステム30を示す。他の記憶装置を必要に応じて追加してもよい。図13と同様に、装置35A乃至35DのLBN空間は、装置の表面に延伸しているように抽象的に図示されており、又、図13に示したように、装置35A乃至35Dは、それぞれのLBN下位空間が異なる性能レベルに関連付けられた3つの下位空間に再分割されている。同時に、図15に示したシステムは、異なるRAIDレベルを異なる性能下位空間に関連付けている。例えば、性能AのLBN下位空間は、RAID10記憶レベルをサポートするために用いられており、性能BのLBN下位空間は、RAID5サービスレベルをサポートするために用いられており、又、性能CのLBN下位空間は、RAID50性能レベルを提供するために用いられている。
システム30を設定する過程で、記憶システム管理者は、これら性能LBN下位空間のうちどれを使ってどのRAIDレベルをサポートすべきかを決定できる。異なる下位空間からの選択には任意適切な技法を使用すればよい。例えば、例えば領域Aが特に優れたランダム・アクセスI/O性能を備えたドライブ領域なら、これをRAID−10セットに割り当てるのが適切な場合が多い。それは、RAID−10は良好なランダム・アクセス性能(特にランダム書き込み性能)を特徴とするからである。これら二層の特性がこうして互いを強化し、良好なランダム書き込み性能を備えた「プールA」がもたらされる。
図16は、図15に示したタイプの分化記憶プールにわたる、範囲又はページに基づいた記憶サービスの割当て処理の一例を示す。図示したように、システム30は、頻繁にアクセスされるデータを記憶できるプールAを提供する。このため、LBNのプールA下位空間を用いてRAIDレベル10をサポートする。RAIDレベル10は、一定の耐故障性と相当のデータ処理量をもたらす。記憶サービスを異なる記憶クラスにわたって仮想化することで、上述したように同一セットの装置を利用する一方で、最適或いはほぼ最適な性能と、最小の物理装置消費が同時に得られる。ブロック記憶サービスの複数インスタンス(「論理ボリューム」)を形成することができ、これら全てが、同一セットの基礎となる分化記憶プールを共有する。それぞれは、その性能要件に従って割り当てられたプールの部分である。
図17は任意選択の実施形態を示し、このシステムは、データブロックをデータ・ボリュームの異なる部分にわたって分散するための、上述の適応記憶ブロックデータ分散処理を用いる(図1乃至6を参照)。システム50の各サーバ22A、22Bは、経路指定テーブル52、データ移動プロセス54、及び要求モニタ・プロセス58を含む。要求モニタ・プロセス58は、システム50にアクセスしている1つ又は複数クライアント12からサーバ22A又は22Bへの要求を監視できる。
この要求は、記憶装置30のボリュームの区分又はある位置に記憶されたデータブロックに関連付けられているかもしれない。要求モニタ58は、関連付けられた1つ又は複数のサーバ22A、22Bへのクライアント12からの異なる要求を監視できる。更に、要求モニタ58は、システム50の複数等価サーバ22上で実行中の他の要求モニタ・プロセス58と通信できる。こうすることで、要求モニタ58は、クライアント12により区分ブロックデータ記憶システム50に転送される要求のグローバル・ビューを生成できる。この情報を共有することで、各サーバ22A及び22Bは、それに関連付けられた要求モニタ・プロセス58を介して、ブロックデータ記憶システム50により処理される要求をグローバルに認識できる。
図17に更に示したように、データ移動プロセス54は、より効率的な或いはより信頼性の高いデータブロック配置が可能かどうか特定するために経路指定テーブル52内に記憶された情報を利用する。これを達成するため、データ移動プロセス54は、要求モニタ58により収集されたデータにアルゴリズムを適用するコンピュータ・プログラムを含む。このデータ移動プロセス54は、データブロックのより効率的な割当てが可能かを判断する際に、データブロックの現在の分散状況を検討し、これらデータブロックへの現在のクライアント12の要求を考慮するアルゴリズムを適用する。図示したこの実施形態では、このアルゴリズムは、特定のデータブロックが現在使用されている記憶クラスと異なるクラスにより適しているかを判断する。従って、この適応プロセスは、例えばシステム30と同様に、このシステムで利用可能な幾つかの記憶クラス間でデータを移動可能である。こうすることで、システム50は、最適或いはほぼ最適なデータ記憶性能を達成できる。こうして達成される記憶性能は、データ移動プロセスがシステム中の異なる領域間でデータを移動させるような単一サーバを用いるシステムでも達成できる。
更に、図13乃至17は、代表的システムを機能ブロック要素の集合として図示しているが、通常の技能を備えた当業者には、本発明のシステム及び方法は、サーバ上で実行可能で、従ってこれらサーバを本発明に従ったシステムとして構成できるコンピュータ・プログラムとして、或いはコンピュータ・プログラムの一部として実現できることは明らかなはずである。更に、上述のように、幾つかの実施形態では、本発明のシステムは、ユニックス・ワークステーションなどの従来のデータ処理システム上で動作するソフトウェア構成要素として実現してもよい。そうした実施形態では、このシステムは、C言語コンピュータ・プログラム又はC++、フォートラン、Java(登録商標)、又はベーシックを含んだ任意の高レベル言語で書かれたコンピュータ・プログラムとして実装できる。そうした高レベルプログラム作成の一般的な技法は公知であり、例えば「Stephen G.
Kochan, Programming in C, Hayden Publishing (1983)」に記載されている。
更に、図示したシステム及びプロセスは、従来のハードウェア・システムから構築してよく、特別に開発されたハードウェアは必要ない。例えば、図示したサーバグループ及び/又はクライアント・システムは、ネットワークサーバと情報交換するためこのサーバにアクセスして、このサーバと対話可能なネットワーククライアントを装備したPCワークステーション、手持ち型計算装置、ワイヤレス通信装置、又は他の装置を含む任意適切なコンピュータシステムでよい。随意選択だが、これらクライアント及びサーバは、遠隔サーバのサービスにアクセスするにあたって安全が保証されていない通信路に依存してもよい。通信路を安全にするためには、これらクライアント及びサーバは、インターネットを介してデータを送信するための保護チャンネルを遠隔ユーザに提供するため開発された従来の安全保護システムの何れかなどの安全保護システムを利用すればよい。これらサーバのサポートには、任意バージョンのユニックス・オペレーティングシステムを実行し、何れかのクライアントと接続してデータを交換できるサーバを実行する、サンスパーク(原語:Sun
Sparc)(商標)システムなどの市販のサーバプラットフォームを使用してもよい。
本発明を、図示し且つ詳細に説明した好適な実施形態に関連して開示してきたが、当業者には、様々な修正及び改良が可能なことは明らかなはずである。
次の図は、本発明の幾つかの例示的な実施形態を示すもので、類似の参照番号は類似の要素を示す。上述の実施形態は本発明を例示したもと理解すべきであり、いかなる意味でも限定的なものと解釈すべきではない。
サーバグループとして編成されたサーバを備えたクライアント/サーバ・アーキテクチャの概略図である。 クライアントから見たサーバグループの概略図である。 クライアントと、あるグループのサーバとの間での情報の流れを詳細に示す。 区分リソース環境におけるリソースの取り出しに関する処理のフローチャートである。 本発明によるシステムの一実施形態をより詳細に機能ブロック図として示す。 経路指定テーブルの一例を示す。 ストレージ・エリア・ネットワーク上に維持されたリソースにアクセスを提供する従来技術システムの構成を概略的に示す。 本発明による一システムの機能ブロック図を示す。 図8のシステムをより詳細に示す。 ネットワークの複数層を通過するデータの流れを示す。 図8のシステムの一実施形態をより詳細に示す。 図8に示したシステムの代表的処理のフローチャートを示す。 LBNのリストに基づいて異なる性能特性を備えた1つの記憶装置を示す。 同一の記憶装置を共有するRAID分化記憶プールを示す。 個別の記憶装置性能とRAID性能特性とを組み合わせた分化記憶プールを示す。 記憶サービスの、分化記憶プールにわたる範囲及びページに基づいた割当てを示す。 図5の実施形態に類似した実施形態をより詳細に機能ブロック図として示す。

Claims (64)

  1. ブロックレベル・データ記憶のためのシステムであって、
    複数の等価サーバであって、それぞれが記憶ブロックの一部を担当し、それぞれが前記サーバ間でブロックの移動を調整するために他のサーバ上のデータ移動プロセスと直接的に通信可能なデータ移動プロセスを備えた、複数の等価サーバと、
    他のサーバ上の要求モニタ・プロセスと直接的に通信可能であって、ブロックへの要求の調整分析を生成可能な要求モニタ・プロセスと、
    等価サーバとそれらに関連付けられたデータブロックとの調整リストを維持するため、経路指定テーブル・プロセッサと通信可能な経路指定テーブル・プロセスとを含む、システム。
  2. 前記データ移動プロセスが、前記複数サーバの動作特性に応答すると共に前記複数サーバにわたるブロックの再配分を識別するための適応移動アルゴリズムを含む、請求項1に記載のシステム。
  3. 前記要求モニタ・プロセスが、任意サーバが受信した要求数を特定して、当該サーバが負担する要求負荷を測定する、請求項1又は2に記載のシステム。
  4. 前記要求モニタ・プロセスが、データ・ボリュームにアクセスするクライアントの数、I/O要求の数、及び利用可能な記憶の容量からなるグループから選択されるパラメータを測定する、上記請求項の何れかに記載のシステム。
  5. 前記要求モニタ・プロセスが、任意のブロック・グループが高需要ブロック基準を上回る頻度で一緒にアクセスされているかを識別する、上記請求項の何れかに記載のシステム。
  6. 前記データ移動プロセスが、前記要求モニタ・プロセスにより生成されたデータを処理して、性能を向上させるため選択したサーバに移動すべきデータブロックを特定する、上記請求項の何れかに記載のシステム。
  7. 前記データ移動プロセスが、適応ブロック分散アルゴリズムを前記要求モニタ・プロセスにより生成されたデータに適用する、上記請求項の何れかに記載のシステム。
  8. 前記データ移動プロセスが、選択したデータブロックを複数サーバにわたってストライピングするデータ・ストライピング・アルゴリズムを含む、上記請求項の何れかに記載のシステム。
  9. 前記データ移動プロセスが、データブロックのサーバ間の移送を監視するトランザクション・プロセスを含む、上記請求項の何れかに記載のシステム。
  10. 前記トランザクション・プロセスが、データブロックの前記移送時に検出されたエラーをログ記録するエラーログ・プロセスを含む、請求項9に記載のシステム。
  11. 前記要求モニタが、2つ以上のデータ・ボリュームに対する要求を監視する、上記請求項の何れかに記載のシステム。
  12. 前記データ移動プロセスが、2つ以上のデータ・ボリュームに関連付けられたデータブロックを移動する、上記請求項の何れかに記載のシステム。
  13. ブロックレベル・データ記憶のための処理であって、
    複数の等価サーバを提供する段階であって、各等価サーバが、記憶データブロックの一部を担当し、それぞれの等価サーバに受信されたクライアント要求を監視すると共に、別のサーバ上の要求モニタ・プロセスと直接的に通信してブロック要求の調整分析を生成する、提供する段階と、
    前記サーバ間でデータブロックを移動する段階と、
    等価サーバとそれらに関連付けられたデータブロックとの調整リストとなる経路指定テーブルを維持すると共に、当該システム上の異なるサーバにわたって記憶されているデータブロックを追跡するグローバル経路指定テーブル・プロセッサを生成するために他の経路指定テーブルと通信する段階とを含む、処理。
  14. データブロックを移動する前記段階が、前記複数サーバの動作特性に応答する応移動アルゴリズであって、前記複数サーバにわたるブロックの再配分を識別す適応移動アルゴリズムを適用する段階を含む、請求項13に記載の処理。
  15. 前記要求の監視が、任意サーバが受信した要求の数を特定して、当該サーバが負担する要求負荷を測定する、請求項13又は14に記載の処理。
  16. 前記要求の監視が、データ・ボリュームにアクセスするクライアントの数、I/O要求の数、及び利用可能な記憶の容量からなるグループから選択されるパラメータを測定する段階を含む、上記請求項の何れかに記載の処理。
  17. 前記要求の監視が、任意のブロック・グループが高需要ブロック基準を上回る頻度で一緒にアクセスされているかを識別する段階を含む、上記請求項の何れかに記載の処理。
  18. 前記データを移動する段階が、選択したデータブロックを複数サーバにわたってストライピングする段階を含む、上記請求項の何れかに記載の処理。
  19. 前記データを移動する段階が、複数サーバにわたるデータブロックの移送を監視する段階を含む、上記請求項の何れかに記載の処理。
  20. データブロックの前記移送時に検出されたエラーをログ記録するエラーログを生成する段階を更にを含む、請求項19に記載の処理。
  21. 前記要求の監視が、2つ以上のデータ・ボリュームに対する要求を監視する段階を含む、上記請求項の何れかに記載の処理。
  22. サービスをデータ・ネットワークを介して提供するための処理であって、
    クライアントからのリソースに対するアクセスへの要求を検出し、当該クライアントとの通信のための接続を確立する段階と、
    前記検出された要求に応じるサーバを識別する段階と、
    状態情報が前記接続に関連付けられているかを特定する段階と、
    前記識別したサーバに前記状態情報へのアクセスを許可し、前記識別したサーバに前記クライアントへの応答を作成且つ送信させる段階と、
    前記識別したサーバに前記状態情報を更新させる段階とを含む、処理。
  23. 前記状態情報をメモリに記憶する段階を更に含む、請求項22に記載の処理。
  24. 前記識別したサーバに前記状態情報を更新させるためのファイル書き込みプロセスを提供する段階を更に含む、請求項22又は23に記載の処理。
  25. 前記状態情報を含むファイルへのアクセスを制御するためのインターロック・プロセスを提供する段階を更に含む、請求項22乃至24の何れかに記載の処理。
  26. 前記インターロック・プロセスが、クライアントからの要求を検出するためのリスニング・スレッドを含む、請求項25に記載の処理。
  27. 前記リスニング・スレッドが、クライアントからの分散サービスへのアクセス要求を検出する、請求項26に記載の処理。
  28. 前記通信接続が、HTTP、FTP、iSCSI、NFS、及びCIFSからなるグループから選択される通信プロトコルに従う、請求項22乃至27の何れかに記載の処理。
  29. 前記状態情報が、IPアドレス、TCPシーケンス番号、及びiSCSIシーケンス番号からなるグループから選択される情報を含む、請求項22乃至28の何れかに記載の処理。
  30. サービスをデータ・ネットワークを介して提供するためのシステムであって、
    クライアントからのリソースへのアクセス要求を検出すると共に当該クライアントとの通信接続を確立するプロセスと、
    前記要求されたリソースに関連付けられたサーバを識別するサーバ識別プロセスと、
    前記検出した要求を識別したサーバに転送する要求ルータと、
    前記通信接続に関連付けられた状態情報への分散アクセスを許容するソケットサーバとを含み、前記識別サーバが、前記クライアントに応答するため前記状態情報にアクセスできる、システム。
  31. 前記ソケットサーバが、前記識別したサーバに前記状態情報を更新させるためのファイル書き込みプロセスを含む、請求項30に記載のシステム。
  32. 前記ソケットサーバが、前記状態情報を含むファイルへのアクセスを制御するためのインターロック・プロセスを含む、請求項30又は31に記載のシステム。
  33. 前記インターロック・プロセスが、前記状態情報を含む前記ファイルへのアクセスを一度に1台のサーバに制限する、請求項32に記載のシステム。
  34. 前記インターロック・プロセスが、クライアントからの要求を検出するためのリスニング・スレッドを含む、請求項34に記載のシステム。
  35. 前記リスニング・スレッドが、クライアントからの分散サービスへのアクセス要求を検出する、請求項34に記載のシステム。
  36. 前記通信接続が、HTTP、FTP、iSCSI、NFS、及びCIFSからなるグループから選択される通信プロトコルに従う、請求項30乃至35の何れかに記載のシステム。
  37. 前記状態情報が、IPアドレス、TCPシーケンス番号、及びiSCSIシーケンス番号からなるグループから選択される情報を含む、請求項30乃至36の何れかに記載のシステム。
  38. データ・ネットワークを介して分散サービスにアクセスするためのサーバであって、
    クライアントからのサービスへのアクセス要求を検出すると共に当該クライアントと通信接続を確立するリスニング・スレッドであって、当該通信接続が、それに関連付けられた状態情報を備える、リスニング・スレッドと、
    前記検出した要求に応じる能力がある利用可能サーバのリストを維持するリソース管理プロセスと、
    識別したサーバに前記検出した要求を転送する要求ルータと、
    前記通信接続に関連付けられた状態情報への分散アクセスを許容する接続データ・サーバとを含み、前記識別したサーバが、前記クライアントに応答するため状態情報にアクセスできる、サーバ。
  39. 区分リソースをサポートする複数サーバに、クライアントからの検出した要求に応答させるソケットサーバであって、
    前記クライアントと通信するために開かれた通信チャンネルに関連付けられたデータファイルを作成するための、前記検出した要求に応答するファイル・プロセスであって、状態情報を維持するためのファイル・プロセスと、
    前記複数サーバからの前記データファイルへのアクセス要求を検出する制御プロセスであって、前記複数サーバの少なくとも一つに前記状態情報へのアクセスを許可するため、前記データファイルへのアクセスを制御する制御プロセスと、
    前記複数サーバの一つに、前記作成したファイルに記憶された前記状態情報を更新させるファイル書き込みプロセスとを含む、ソケットサーバ。
  40. 前記制御プロセスが、前記作成されたファイルへのアクセスを制御するインターロック・プロセスを含む、請求項39に記載のソケットサーバ。
  41. 前記制御プロセスが、前記複数サーバからの前記作成されたファイルへのアクセス要求に応答するリスニング・プロセスを含む、請求項39又は40に記載のソケットサーバ。
  42. 前記ファイル・プロセスが、ネットワーク・スタック内の層に関連付けられた状態情報を識別するプロセスを含む、請求項39乃至41の何れかに記載のソケットサーバ。
  43. 請求項22乃至29の何れかの処理を実行するための命令を記憶したコンピュータ可読媒体。
  44. 分化記憶クラスを提供するシステムであって、
    複数の記憶位置と、当該記憶位置を編成するための論理ブロック・ネーム空間とを備えた記憶装置と、
    記憶位置を異なる性能レベルを提供する複数領域に区分する性能プロセスと、
    前記記憶位置の前記区分した部分を、前記論理ブロック・ネーム空間の選択したセクションにマッピングするマッピング・プロセスとを含む、システム。
  45. 前記性能プロセスが、前記複数の記憶位置を、異なるサービスレベルに関連付けられた複数カテゴリに分離する、請求項44に記載のシステム。
  46. 前記性能プロセスが、前記複数の記憶位置を、異なるRAID性能レベルに関連付けられた複数カテゴリに分離する、請求項45に記載のシステム。
  47. 前記マッピング処理が、前記論理ブロック・ネーム空間の異なる部分を、RAIDの異なるレベルにそれぞれ関連付ける、請求項44に記載のシステム。
  48. 前記論理ブロック・ネーム空間の異なる部分間でデータを移動させる負荷バランシング移動プロセスを更に含む、請求項44に記載のシステム。
  49. 前記負荷バランシング移動プロセスが、データを記憶プール間で移動してシステム性能を向上させる適応データ配置プロセスを含む、請求項48に記載のシステム。
  50. 前記負荷バランシング移動プロセスが、管理者にデータを異なる記憶プール間で移動させる管理プロセスを含む、請求項48に記載のシステム。
  51. 前記記憶を用いてファイルシステム・サービスを提供するプロセスを更に含む、請求項44に記載のシステム。
  52. 記憶ボリューム・サービスを提供するプロセスを更に含む、請求項44に記載のシステム。
  53. 前記マッピングプロセスが、複数の記憶ボリュームを選択した性能レベルで形成する、請求項44に記載のシステム。
  54. 分化記憶クラスを提供する処理であって、
    複数の記憶位置と、当該記憶位置を編成するための論理ブロック・ネーム空間とを備えた記憶装置を提供する段階と、
    記憶位置を異なる性能レベルを提供する複数領域に区分する段階と、
    前記記憶位置の前記区分した部分を、前記論理ブロック・ネーム空間の選択したセクションにマッピングする段階とを含む、処理。
  55. 前記複数の記憶位置を、異なるサービスレベルに関連付けられた複数カテゴリに分離する段階を更に含んだ、請求項54に記載の処理。
  56. 前記複数の記憶位置を、異なるRAID性能レベルに関連付けられた複数カテゴリに分離する段階を更に含んだ、請求項54に記載の処理。
  57. 前記マッピング処理が、前記論理ブロック・ネーム空間の異なる部分を、RAIDの異なるレベルにそれぞれ関連付ける、請求項54に記載の処理。
  58. 前記論理ブロック・ネーム空間の異なる部分間でデータを移動させることによって負荷バランシングを行う段階を更に含む、請求項54に記載の処理。
  59. 前記負荷バランシング・プロセスが、データを記憶プール間で移動してシステム性能を向上させることを含む、請求項58に記載の処理。
  60. 前記負荷バランシングを行う段階が、管理者にデータを異なる記憶プール間で移動させる段階を含む、請求項58に記載の処理。
  61. 前記マッピング段階が、複数の記憶ボリュームを選択した性能レベルで形成する、請求項54に記載の処理。
  62. 分化記憶クラスを提供するシステムであって、
    複数の記憶位置と、当該記憶位置を編成するための論理ブロック・ネーム空間とを備えた記憶装置であって、当該装置内部で変動する前記記憶位置の性能パラメータを備えた記憶装置と、
    前記記憶位置を、性能パラメータの変動の関数として複数領域に区分するための区分プロセスとを含む、システム。
  63. 前記区分プロセスが、システム要素の選択された構成の関数として固定セットの区分を選択する、請求項62に記載のシステム。
  64. 複数の区分を異なる性能レベルと関連付ける性能プロセスと、
    前記記憶位置の前記識別した部分を、前記論理ブロック・ネーム空間の選択したセクションにマッピングするマッピング・プロセスとを含む、請求項62に記載のシステム。
JP2006501049A 2003-01-20 2004-01-20 データ記憶システム Expired - Lifetime JP4640335B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/347,901 US7627650B2 (en) 2003-01-20 2003-01-20 Short-cut response for distributed services
US10/347,898 US7461146B2 (en) 2003-01-20 2003-01-20 Adaptive storage block data distribution
US44181003P 2003-01-21 2003-01-21
PCT/US2004/001432 WO2004066277A2 (en) 2003-01-20 2004-01-20 System and method for distributed block level storage

Publications (2)

Publication Number Publication Date
JP2007524877A true JP2007524877A (ja) 2007-08-30
JP4640335B2 JP4640335B2 (ja) 2011-03-02

Family

ID=32776950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006501049A Expired - Lifetime JP4640335B2 (ja) 2003-01-20 2004-01-20 データ記憶システム

Country Status (3)

Country Link
EP (2) EP1588360B1 (ja)
JP (1) JP4640335B2 (ja)
WO (1) WO2004066277A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233607A (ja) * 2006-02-28 2007-09-13 Toshiba Corp 情報処理装置、raidコントローラおよび情報処理装置のディスク制御方法
JP2008016028A (ja) * 2006-06-30 2008-01-24 Seagate Technology Llc 広域複製を持つ分散記憶システム
JP2009169950A (ja) * 2008-01-15 2009-07-30 Internatl Business Mach Corp <Ibm> 記憶インフラストラクチャを自動的に管理するための方法および適切な記憶インフラストラクチャ

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1328879C (zh) * 2005-01-26 2007-07-25 北京大学 基于数据分块冗余和虚拟化存储的在线备份方法
US7870128B2 (en) 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US9052826B2 (en) 2006-07-28 2015-06-09 Condusiv Technologies Corporation Selecting storage locations for storing data based on storage location attributes and data usage statistics
JP4696089B2 (ja) * 2007-03-30 2011-06-08 三菱電機インフォメーションシステムズ株式会社 分散ストレージシステム
JP5117120B2 (ja) * 2007-06-18 2013-01-09 株式会社日立製作所 ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム
US20130110767A1 (en) * 2011-10-26 2013-05-02 Nec Laboratories America, Inc. Online Transaction Processing
US11513741B2 (en) 2020-02-13 2022-11-29 International Business Machines Corporation Automatic volume statistical and performance information tracking
CN111967613B (zh) * 2020-08-24 2023-06-16 浙江百应科技有限公司 Nlp模型训练发布识别系统
CN114422436B (zh) * 2021-12-14 2024-03-19 北京罗克维尔斯科技有限公司 网关、网关控制方法、装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184641A (ja) * 1997-12-24 1999-07-09 Hitachi Ltd サブシステムの移行方法
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2002500393A (ja) * 1997-12-24 2002-01-08 アヴィッド・テクノロジー・インコーポレーテッド コンピュータ・システムおよび多数の記憶装置および多数のアプリケーション間でスケーラブルにかつ信頼性高く多数の高帯域データ・ストリームを転送するプロセス
JP2002312126A (ja) * 2001-04-18 2002-10-25 Hitachi Ltd 磁気ディスク装置間結合装置
JP2002333956A (ja) * 2001-05-09 2002-11-22 Hitachi Ltd ディスク制御装置を用いた計算機システムおよびその運用サービス
WO2005010767A1 (ja) * 2003-07-24 2005-02-03 Fujitsu Limited データ格納システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664187A (en) * 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US6314503B1 (en) 1998-12-30 2001-11-06 Emc Corporation Method and apparatus for managing the placement of data in a storage system to achieve increased system performance
US6330621B1 (en) * 1999-01-15 2001-12-11 Storage Technology Corporation Intelligent data storage manager

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184641A (ja) * 1997-12-24 1999-07-09 Hitachi Ltd サブシステムの移行方法
JP2002500393A (ja) * 1997-12-24 2002-01-08 アヴィッド・テクノロジー・インコーポレーテッド コンピュータ・システムおよび多数の記憶装置および多数のアプリケーション間でスケーラブルにかつ信頼性高く多数の高帯域データ・ストリームを転送するプロセス
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2002312126A (ja) * 2001-04-18 2002-10-25 Hitachi Ltd 磁気ディスク装置間結合装置
JP2002333956A (ja) * 2001-05-09 2002-11-22 Hitachi Ltd ディスク制御装置を用いた計算機システムおよびその運用サービス
WO2005010767A1 (ja) * 2003-07-24 2005-02-03 Fujitsu Limited データ格納システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233607A (ja) * 2006-02-28 2007-09-13 Toshiba Corp 情報処理装置、raidコントローラおよび情報処理装置のディスク制御方法
JP2008016028A (ja) * 2006-06-30 2008-01-24 Seagate Technology Llc 広域複製を持つ分散記憶システム
JP2009169950A (ja) * 2008-01-15 2009-07-30 Internatl Business Mach Corp <Ibm> 記憶インフラストラクチャを自動的に管理するための方法および適切な記憶インフラストラクチャ

Also Published As

Publication number Publication date
EP2302529A1 (en) 2011-03-30
WO2004066277A2 (en) 2004-08-05
EP1588360A2 (en) 2005-10-26
JP4640335B2 (ja) 2011-03-02
EP1588360B1 (en) 2018-09-05
EP2302529B1 (en) 2019-12-11
WO2004066277A3 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
US7962609B2 (en) Adaptive storage block data distribution
US10838620B2 (en) Efficient scaling of distributed storage systems
US7433934B2 (en) Network storage virtualization method and system
JP4581095B2 (ja) データ記憶管理システム
US7386662B1 (en) Coordination of caching and I/O management in a multi-layer virtualized storage environment
US7562110B2 (en) File switch and switched file system
US7636801B1 (en) Coordination of quality of service in a multi-layer virtualized storage environment
US7599941B2 (en) Transparent redirection and load-balancing in a storage network
JP4815449B2 (ja) 共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法
US9058119B1 (en) Efficient data migration
US8589550B1 (en) Asymmetric data storage system for high performance and grid computing
US7209967B2 (en) Dynamic load balancing of a storage system
US7519769B1 (en) Scalable storage network virtualization
US20040210724A1 (en) Block data migration
US20040139167A1 (en) Apparatus and method for a scalable network attach storage system
US20030023784A1 (en) Storage system having a plurality of controllers
US20060041580A1 (en) Method and system for managing distributed storage
JP4640335B2 (ja) データ記憶システム
US10855556B2 (en) Methods for facilitating adaptive quality of service in storage networks and devices thereof
US7499980B2 (en) System and method for an on-demand peer-to-peer storage virtualization infrastructure
US7627650B2 (en) Short-cut response for distributed services
Halabi Hyperconverged Infrastructure Data Centers: Demystifying HCI
US7698424B1 (en) Techniques for presenting multiple data storage arrays to iSCSI clients as a single aggregated network array
Petersen Inside the Lustre file system
US11258877B2 (en) Methods for managing workloads in a storage system and devices thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100422

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100521

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101019

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101115

R150 Certificate of patent or registration of utility model

Ref document number: 4640335

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term