JP2010134948A - データ記憶管理システム - Google Patents

データ記憶管理システム Download PDF

Info

Publication number
JP2010134948A
JP2010134948A JP2010005548A JP2010005548A JP2010134948A JP 2010134948 A JP2010134948 A JP 2010134948A JP 2010005548 A JP2010005548 A JP 2010005548A JP 2010005548 A JP2010005548 A JP 2010005548A JP 2010134948 A JP2010134948 A JP 2010134948A
Authority
JP
Japan
Prior art keywords
server
servers
snapshot
client
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010005548A
Other languages
English (en)
Other versions
JP5369007B2 (ja
Inventor
Paul G Koning
ポール, ジー. コーニング,
Peter C Hayden
ピーター, シー. ヘイデン,
Paula Long
ポーラ ロング,
Daniel E Suman
ダニエル, イー. スマン,
Hsin H Lee
シン, エイチ. リー,
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
Application filed by EqualLogic Inc filed Critical EqualLogic Inc
Publication of JP2010134948A publication Critical patent/JP2010134948A/ja
Application granted granted Critical
Publication of JP5369007B2 publication Critical patent/JP5369007B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/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
    • G06F3/0647Migration mechanisms
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/1017Server selection for load balancing based on a round robin mechanism
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】クライアントのリソース要求に適切な応答時間を実現し、クライアントと初期サーバとの長期接続を維持しつつ、クライアント負荷をサーバシステムに迅速に分散する。
【解決手段】各(等価)サーバ161は負荷モニタ・プロセス22Aを備えており、他の負荷モニタ・プロセスと通信して、サーバシステムへのクライアント負荷及び各サーバへのクライアント負荷を測定し、測定したシステム負荷に応答して一組のリソースを再区分することにより、クライアント負荷を再分散するリソース分散プロセスを更に含む。更に、各サーバは、この区分リソースサーバ上で維持されている各リソースへの参照を含む経路指定テーブル20Aを含むこともできる。クライアントからの要求は、対象となるリソースを維持するか或いは管理しているサーバにそうした要求を経路指定する経路指定テーブルの関数として処理される。
【選択図】図10

Description

本発明は、コンピュータ・ネットワークにおいてデータ記憶を管理するためのシステム及び方法に関し、より詳細には、複数サーバにわたってデータ・リソースを記憶し、複数サーバにわたってデータブロックにバックアップを提供するシステムに関する。
クライアント・サーバ・アーキテクチャは、情報技術における非常に成功した革新の1つである。クライアント・サーバ・アーキテクチャにより、複数クライアントがサーバにより管理されるサービス及びデータ・リソースにアクセス可能となる。サーバはクライアントからの要求をリッスンし、要求に応じて要求を満足することができるかを判断し、必要に応じてクライアントに応答する。典型的な例のクライアント・サーバ・システムは、データファイルを記憶する「ファイルサーバ」設定及びサーバと通信可能な多くのクライアントを備えている。典型的には、クライアントは、サーバが、ファイルサーバにより維持される様々なデータファイルへのアクセスを許可するように要求する。データファイルが利用可能で、クライアントがそのデータファイルへのアクセスを許可されていれば、サーバは要求されたデータファイルをサーバへ引き渡すことによりクライアントの要求を満足する。
クライアント・サーバ・アーキテクチャは素晴らしい働きをしてきたが、幾つかの欠点を抱えている。例えば、サーバに連絡するクライアントの数及び個別クライアントによる要求の数は、時間の経過と共により大きく変動することがある。従って、クライアントの要求に応答するサーバには、満足できないか或いはほとんど満足できないような要求量が殺到することもある。この問題に対処するため、ネットワーク管理者は、サーバにはクライアント要求の予想ピークレベルに対応できるだけのデータ処理資産を確保してきた。従って、例えば、ネットワーク管理者は、サーバが、着信しうるクライアント・トラフィックの量を処理できるメモリと記憶空間を備えた十分な数の中央処理装置(CPU)を必ず備えるようにしている。
更に、大容量記憶システムの動作時には、データをどのようにこのシステム上に記憶するかに関する情報を定期的に収集し、記憶データのバックアップ・コピーを時々作成する。こうした情報を収集すると、回復不能な障害が発生した場合の回復を含め、多くの理由で有益である。
大容量記憶システムのバックアップには、このシステム上に記憶されたデータを読み出して、それを磁気テープに書き込み記憶データの所定期間保存コピーを作成する。
しかし、こうした所定期間保存コピーを作成するのは大きな負担となることがある。従来技術による多くのバックアップ作成方法では、バックアップ・コピーの保全性及び無矛盾性を保証するため、システムを進行中の(オンラインの)作業から切り離す必要がある。この理由は、通常のバックアップ技法が、大容量記憶システムからブロックを順次にリニアアクセス・テープにコピーするか、第1ディレクトリの第1ファイルの第1ブロックから開始して、最終ディレクトリの最終ファイルの最終ブロックまで順に進みつつ、この大容量記憶システムのファイルシステムを処理していくかの何れかだからである。何れの場合も、このバックアップ・プロセスは、データがテープに書き込まれる際にアップデートが実行されつつあることは気付かない。
従って、バックアップ処理を実行しつつ継続的なオンライン作業を許容する場合に、バックアップ処理が進行中にデータが修正変更されるようなことがあると、矛盾が発生する。継続的な記憶作業から記憶システムを切り離すと、システム動作時に矛盾が発生する危険を排除できる。しかし、バックアップ処理には長時間を要することがあるので、システムを作業から切り離すのは望ましくない。
この問題に対処する1つのアプローチとしては、1つのディスクのデータのミラーすなわち同一コピーを作成することであった。バックアップ処理が必要な時は、ミラーディスクを記憶装置の静的イメージとして用いることができる。この静的イメージが不要になれば(例えば、テープ・バックアップが完了すれば)、ミラーリングがアクティブでなかった時間に起こった変更をミラーディスクにコピーすることで2つのディスクを再同期し、その後、ミラーリングを再開する。
リラーリングは有効だが、システムに記憶されているデータを正確に入手する必要がある。しかし、今日では、集中型記憶管理システムを使用しない新たな分散形記憶システムが開発されている。これら分散形システムは、より柔軟でスケーラブルな分散形サーバ・アーキテクチャの利点を利用する。これら記憶システムは非常に素晴らしいが、従来の記憶システムにはなかった難問を提示している。こうした難問の一つは、独立して動作する複数サーバに分散したデータ・ボリュームの信頼性が高く確かな所定期間保存コピーを生成する能力である。
本開示では、「リソース」という用語は、ファイル、データブロック若しくはページ、アプリケーション、又はサーバからクライアントに提供されるサービス若しくは機能を含むがそれらに限定されないことに注目されたい。本開示では、「資産」という用語は、ハードウェア、メモリ、記憶装置、及びクライアントの要求に応答するためにサーバが使用可能な他の要素を含むがそれらに限定されない。
必要なシステム・リソースを研究した上で決定しても、クライアント負荷の変動が、単一サーバ又は1つのシステムとして協調しているサーバグループに負担を掛けることがある。例えば、仮に十分なハードウェア資産がサーバシステムに設けられていても、クライアントの要求が特定のファイル、あるファイル内のデータブロック、又はサーバが維持する多のリソースに集中する場合もありうる。従って、上述の例を続けると、クライアントの要求が、ファイルサーバにより維持されているデータファイルの小さな部分に極度に集中することは珍しくない。従って、ファイルサーバが一定量のクライアント要求に対応できるだけのハードウェア資産を持っていたとしても、これらの要求が特定のデータファイルなど特定のリソースに集中すると、目標となっているデータファイルをサポートする資産に過大な負担が掛かる一方、ファイルサーバのほとんどの資産は遊休していることになる。
この問題に対処するため、ネットワーク技術者達は、クライアント要求を個別の資産に分散するため、利用可能資産にわたってクライアントの要求を分散する負荷バランシング・システムを開発してきた。これを達成するため、負荷バランシング・システムは、要求を利用可能なサーバ資産に均等に分散するようクライアント要求をラウンド・ロビン式に分散できる。多の実現例では、ネットワーク管理者は、特定資産が突然に大量のクライアント要求を受けた時を識別し、その対象となったリソースを複写して、より多くのサーバ資産がそのリソースへのクライアント要求をサポートできるようにするため複製システムを設定している。
更に、サーバはデータを上手く記憶するが、サーバの資産は限られている。サーバ資産を拡張するために今日用いられている一般的な一技法は、テープライブラリ、RAIDディスクアレイ、及びオプションの記憶システムに依存することである。これらの記憶装置はサーバに適切に接続すれば、データをオンラインでバックアップし、大量の情報を記憶するのに有効である。サーバにこうした装置を多数接続することで、ネットワーク管理者は、かなりの量のデータを記憶可能な「サーバファーム」(多数のサーバ装置及び付属の記憶装置からなる)を構築できる。こうした付属の記憶装置は、ネットワーク接続ストレージ(NAS)システムと集合的に呼ばれる。
しかし、サーバファームのサイズが増大し、マルチメディアなどのデータ集中度が高いアプリケーションへの企業の依存度が増大すると、こうした従来の記憶モデルは有用性を維持できなくなる。この理由は、これらの周辺装置へのアクセスが遅くなることがあり、全てのユーザが、常に各記憶装置に容易且つ透過的にアクセスできるとは限らないからである。
この欠点に対処するため、多くのベンダーが、ストレージ・エリア・ネットワーク(SAN)と呼ばれるアーキテクチャを開発している。SANは、NAS型の周辺装置への非常に高速なアクセスを含んだより多くのオプションをネットワーク記憶に提供する。更に、SANは、大量のデータを処理するための別個のネットワークを形成する柔軟性も提供する。
SANは、複数ユーザの大きなネットワークに代わって、様々な種類のデータ記憶装置を関連付けられたデータサーバに相互接続する高速の特殊目的ネットワーク又はサブネットワークである。典型的には、ストレージ・エリア・ネットワークは、企業の計算資産のネットワーク全体の一部である。SANは、ディスク・ミラー化、バックアップ及び復元、データの記録及び記録データの取り出し、1つの記憶装置から他の記憶装置へのデータ移送、並びにネットワーク内の異なるサーバ間でのデータ共有をサポートする。SANは、NASシステムを含むサブネットワークを組み込み可能である。
SANは、通常は、メインフレームのような他の計算リソースに近接してクラスタ化されているが、非同期転送モード(ATM)又は同期光通信ネットワーク(SONET)などの広域通信ネットワーク技術を用いて、バックアップ及び超大容量記憶用の遠隔地まで延びることもある。SANは、光ファイバESCON又はファイバチャンネル技術などの既存の通信技術を用いて記憶周辺機器又はサーバに接続することもできる。
SANには大きな将来性があるが、大きな課題に直面している。端的に言って、消費者は自分たちのデータ記憶システムに多くを期待している。具体的には、消費者は、SANがネットワーク・レベルのスケーラビリティ、サービス、及び柔軟性を提供する一方、サーバファームに太刀打ちできる速度でデータアクセスを実現することを要求している。
これは大きな課題となるかもしれず、とりわけ、特定の情報又は特定のファイルへのアクセスを望むクライアントを、要求した情報又はファイルを持つサーバにリダイレクトする仕組みのマルチサーバ環境では大きな課題となりうる。リダイレクト後に、クライアントは、リダイレクト先のサーバへの新たな接続を確立し、元々通信していたサーバへの接続を切断する。しかし、このアプローチでは、クライアントと最初のサーバとの間に長期間の接続を維持するという利点が生かされない。
もう一つのアプローチは「記憶装置仮想化」或いは「記憶域区分化(原語: storage partitioning)」であり、中間デバイスをクライアントと一組の物理(或いは論理)サーバとの間に配置して、中間デバイスが要求の経路指定を実行するというものである。この方法では、何れのサーバも区分されたサービス全体の一部のみを提供していることを意識していないし、何れのクライアントもデータ・リソースが多数のサーバにまたがって記憶されていることを意識しない。言うまでもなく、こうした中間デバイスを追加すると、システムの複雑性が増加してしまう。
上述の技法は一定のクライアント・サーバ・アーキテクチャでは上手く機能するが、これらは、クライアント要求とデータ移動とを調整して負荷のバランスをとるため、クライアントとサーバ資産との間に付加的な装置又はソフトウェア(或いは両方)を必要とする。従って、この中央トランザクション・ポイントは、クライアント要求へのサーバ応答を遅くするボトルネックとなってしまうことがある。
更に、リソースは、クライアント要求に応答して、待ち時間を極めて最小限にして連続的に供給されなければならない。従って、本発明の分野では、着信するクライアントのリソース要求に適切な応答時間を実現し、クライアントと初期サーバとの長期接続を維持しつつ、クライアント負荷をサーバシステムに迅速に分散するための方法に対する必要性が存在する。更に、本発明の分野では、システム内の異なるサーバにわたって維持されているデータ・ボリュームの確実なスナップショットを提供可能な分散形記憶システムに対する必要性も存在する。
発明の概要
本発明の一様態による、本明細書に記載したシステム及び方法は、複数クライアントからの一組のリソースへのアクセス要求への応答を管理するシステムを含む。一実施形態では、このシステムは、複数の随意選択で等価のサーバを含み、上述した一組のリソースはこれら複数サーバ間で区分されている。各等価サーバは負荷モニタ・プロセスを備えており、各負荷モニタ・プロセスは、他の負荷モニタ・プロセスと通信して、サーバシステムへのクライアント負荷及び各サーバへのクライアント負荷の大きさ測定を生成する。更に、このシステムは、測定したシステム負荷に応答し、上述の一組のリソースを再区分可能とすることにより、クライアント負荷を再分散するリソース分散プロセスを含むことができる。
随意選択で、このシステムは、測定したシステム負荷に応答し、クライアント接続をサーバシステム間で再区分することにより、クライアント負荷を再分散するクライアント分散プロセスを含むことができる。
従って、本明細書に記載したシステム及び方法は、区分サービスとともに動作可能なクライアント分散システムを含む。この区分サービスは、複数の等価サーバによりサポートされており、それぞれの等価サーバは、これらサーバにわたり区分されているサービスの一部を担当する。一実施形態では、各等価サーバは、そのサーバが通信している各クライアントが、当該システム及びそのサーバに掛けている相対負荷を監視できる。従って、各等価サーバは、クライアントがサービスに対して相対的な負担となっている時を特定できる。しかし、区分サービスに関しては、各クライアントは、当該クライアントが求めるリソースを担当する等価サーバと通信する。従って、一実施形態では、本明細書に記載したシステム及び方法は、上記複数サーバにわたってリソースを再分散することで、クライアント負荷を再分散する。
本発明の別の様態によれば、本明細書に記載のシステム及び方法はサーバグループを含み、このサーバグループは、当該グループの個別サーバにわたって区分されているサービス又はリソースをサポートする。一実施形態では、このシステム及び方法は、記憶サービスを複数のクライアントに提供する区分記憶サービスを提供する。この実施形態では、データ・ボリュームは複数のサーバにわたって区分され、各サーバがデータ・ボリュームの一部を担当する。こうした区分記憶サービスでは、記憶「ボリューム」は、従来の記憶システムにおけるディスク・ドライブと類似したものと理解できる。しかし、この区分サービスでは、データ・ボリュームは幾つかのサーバに分散していて、各サーバが当該ボリューム内のデータの一部を保持している。
耐故障性、データ・バックアップ、及び他の利点を得るため、本明細書に記載した区分記憶サービスは、記憶装置の管理者に記憶ボリュームの状態のコピーを作成するスナップショット処理及びシステムを提供する。典型的には、このスナップショット処理によって第2の記憶ボリュームが作成される。第2記憶ボリュームは、所与の時刻における記憶システムの状態のアーカイブとして機能する。記憶装置の管理者は、このアーカイブを、元々の記憶ボリュームが後に故障した場合は回復ツールとして、オフライン・バックアップ用のバックアップ・ツールとして、或いはその他の任意適切な理由で使用できる。
別の実施形態では、本明細書に記載したシステム及び方法は、記憶資産を企業に提供するために利用できるストレージ・エリア・ネットワーク・システム(SAN)を含む。本発明のSANは、複数のサーバ及び/又はネットワーク・デバイスを含む。これらサーバ及びネットワーク・デバイスの少なくとも一部は、それぞれのサーバ又はネットワーク・デバイスに掛けられたクライアント負荷を監視する負荷監視プロセスを含む。この負荷監視プロセスは、このストレージ・エリア・ネットワーク上で動作する他の負荷監視プロセスと通信することもできる。各負荷監視プロセスは、このストレージ・エリア・ネットワークに掛けられたクライアント負荷を示す全システム負荷分析を生成可能としてもよい。更に、負荷監視プロセスは、そのサーバ及び/又はネットワーク・デバイスに掛けられたクライアント負荷の分析を生成可能としてもよい。負荷監視プロセスが観察したクライアント負荷情報に基づいて、このストレージ・エリア・ネットワークは、クライアント負荷を再分散してクライアント要求に対する応答性を向上できる。これを達成するため、一実施形態では、このストレージ・エリア・ネットワークは、クライアント負荷を再分散するため記憶リソースを再区分できる。別の実施形態では、このストレージ・エリア・ネットワークは、クライアント負荷を当該ストレージ・エリア・ネットワークで再分散するため、システムがサポートするクライアント接続を移動できる。
本発明の上述及び他の目的及び利点は、添付図面を参照すれば次の記載からより完全に理解されるはずである。
ストレージ・エリア・ネットワーク上に維持されたリソースにアクセスを提供する従来技術システムの構成を概略的に示す。 本発明による一システムの機能ブロック図を示す。 図2のシステムをより詳細に示す。 サーバグループとして編成されたサーバを備えたクライアント/サーバ・アーキテクチャの概略図である。 クライアントから見たサーバグループの概略図である。 クライアントと、あるグループのサーバとの間での情報の流れを詳細に示す。 区分リソース環境におけるリソースの取り出しに関する処理のフローチャートである。 本発明によるシステムの第1実施形態をより詳細に機能ブロック図として示す。 図4のシステムと共に使用するのに適した経路指定テーブルの一例を示す。 本発明によるシステムの第2実施形態をより詳細に機能ブロック図として示す。 本発明によるシステムの第3実施形態をより詳細に機能ブロック図として示す。 図1のシステムによりサポートされる記憶ボリュームのスナップショットを生成するための処理を示す。 記憶ボリュームのスナップショットを生成する代替的な処理を示す。
本発明の全般的理解のために、幾つかの例示的な実施形態をこれから説明する。しかし、通常の技能を備えた当業者であれば、本明細書に記載のシステム及び方法は、分散形ファイルシステム、データベース応用例、及び/又はリソースが区分又は分散される他の用途など他の応用例においてリソースを再分散するために適合及び修正可能であることは理解するはずである。そうした他の追加及び修正は、本発明の範囲に入る。
図1には、ローカル・エリア・ネットワーク24を介して通信する複数のクライアント12からのリソース要求をサポートする従来のネットワーク・システムを示した。特に、図1は、複数のクライアント12と、ローカル・エリア・ネットワーク(LAN)24と、クライアントからの要求を処理してサーバ22にそれらを渡す中間装置16を含む記憶システム14とを示す。一実施形態では、中間装置16はスイッチである。このシステムは、マスタ・データテーブル18及び複数サーバ22a乃至22nも含む。記憶システム14は、記憶リソースをLAN24上で動作するクライアント12に提供するストレージ・エリア・ネットワーク(SAN)を提供できる。図1に示したように、各クライアント12は、SAN14に維持されているリソースへの要求20を発することができる。それぞれの要求20はスイッチ16に送信され、このスイッチがそれを処理する。処理時に、クライアント12は、LAN24を介してリソースを要求でき、更にスイッチ16は、マスタ・データテーブル18を用いて、複数サーバ22a乃至22nのどのサーバがクライアント12に要求されているリソースを備えているかを識別する。
図1では、マスタ・データテーブル18はデータベース・システムとして示されているが、代替的な実施形態では、スイッチ16は、このスイッチが維持するフラットファイル・マスタ・データテーブルを用いてもよい。何れの場合も、スイッチ16は、マスタ・データテーブル18を利用して複数サーバ22a乃至22nの内どのサーバがどのリソースを維持しているかを特定する。従って、マスタ・データテーブル18は、システム14により維持される様々なリソースと、基礎となるサーバ22a乃至22nの何れがどのリソースを担当しているかと、を列記した索引として機能する。
図1に更に示したように、いったんスイッチ16が要求されたリソースを得るための適切なサーバ22a乃至22nを特定すると、取り出したリソースを識別されたサーバからスイッチ16を介してLAN24に送り、適切なクライアント12に引き渡しできる(矢印21で示した)。従って図1は、システム14が、スイッチ16を、LAN24からの全要求の処理に関わる中央ゲートウェイとして使用することを示している。この中央ゲートウェイ・アーキテクチャを採用すると、クライアント12により要求されたリソースを記憶システム14から引き渡す時間が比較的長くなることがあり、システム14が維持するリソースへの需要増大による待ち時間の増加に従って、この引き渡し時間は増加することがある。
図2を参照すると、本発明によるシステム10を示した。特に、図2は、複数のクライアント12と、ローカル・エリア・ネットワーク(LAN)24と、複数のサーバ32A乃至32Nを含むサーバグループ30とを示す。図2に示したように、クライアント12はLAN24を介して通信する。図2に示したように、各クライアント12は、サーバグループ30に維持されているリソースを要求できる。ある応用例では、サーバグループ30は、クライアント12にネットワーク記憶リソースを提供するストレージ・エリア・ネットワーク(SAN)である。従って、クライアント12は、図2に要求34として示したように、(LAN)24を介してサーバ(例えば、SAN30のサーバ32Bとして示した)に送信される要求を出すことができる。
図示したSAN30は、複数の等価サーバ32A乃至32Nを含む。これらサーバは、それぞれ別個のIPアドレスを備えており、従って、システム10は、複数の異なるIPアドレスを含む1つのストレージ・エリア・ネットワークとして見え、それぞれのIPアドレスは、SAN30により維持される記憶リソースにアクセスするためクライアント12が使用できる。
図示したSAN30は、複数サーバ32A乃至32Nを利用してこのストレージ・エリア・ネットワークにわたってリソースを区分して、区分リソース・セットを形成できる。従って、個別サーバそれぞれは、SAN30が維持するリソースの一部を担当できる。動作時には、サーバ32Bにより受信されたクライアント要求34は、サーバ32Bによって処理され、クライアント12が求めるリソースを特定し、複数サーバ32A乃至32Nのどれがこのリソースを担当しているかを特定する。図2及び3に示した例では、SAN30は、サーバ32Aがクライアント要求34で識別されたリソースを担当することを特定する。図2に更に示したように、随意選択だが、SAN30は、元々のサーバ32Bをクライアント要求34に応答させるのでなく、担当サーバを要求クライアント12に直接的に応答させるというショートカット手法を使ったシステムを採用してもよい。従って、サーバ32Aが、LAN24を介して応答38を要求クライアント12へ引き渡す。
上述したように、図2に示したSAN30は、複数の等価サーバを含む。等価サーバは、これに限定するわけではないが、クライアント12などの1つ又は複数クライアントに一様のインターフェースを提示するサーバシステムであると理解される。これは、図2に示したシステムをより詳細に示す図3に部分的に示されており、図3では、クライアント12からの要求が複数のサーバにより処理可能で、これらサーバは、図示した実施例では適切なクライアントに応答を返す。各等価サーバは、任意のクライアント12が発した要求に同一様態で応答する。そして、クライアント12は、これらサーバの内のどれ(1つ又は複数サーバ)がその要求を処理し、応答を生成するかを知る必要はない。従って、各サーバ32A乃至32Nはクライアント12に同一の応答を与えるので、クライアント12にとっては、サーバ32A乃至32Nの内どれが要求に応答しているかは重要ではない。
図示したサーバ32A乃至32Nは、それぞれカリフォルニア州サンタクララ所在のサン・マイクロシステムズ社(原語:Sun Microsystems Inc.)が市販するサーバシステムの何れかなどの、従来のコンピュータ・ハードウェア・プラットフォームを含むことができる。各サーバは、1つ又は複数のソフトウェア・プロセスを実行して、このストレージ・エリア・ネットワークを実現する。SAN30は、ファイバチャネル・ネットワーク、アービットレーテッド・ループ、又はストレージ・エリア・ネットワークを提供するのに適したそれ以外の任意種類のネットワーク・システムを使用できる。図2に更に示したように、各サーバはそれ自身の記憶リソースを維持してもよいし、それ自身に接続された1つ又は複数の付加的な記憶装置を含むこともできる。これら記憶装置は、RAIDディスクアレイ・システム、テープライブラリ・システム、ディスクアレイ、又はクライアント12に記憶リソースを提供するのに適したその他の任意装置を含むことができるが、それらに限定されない。
通常の技能を備えた当業者であれば、本発明のシステム及び方法はストレージ・エリア・ネットワークの応用例に限定されるものではなく、第1サーバが要求を受信し、第2サーバがその要求に対する応答を生成且つ送信するのがより効率的な他の応用例にも適用できることは理解するはずである。他の応用例には、分散形ファイルシステム、データベース応用例、アプリケーション・サービスプロバイダ応用例、又はこの技術から利益を得られるその他の任意応用例が含まれる。
図4を参照すると、1つ又は複数のクライアント12が、例えばインターネット、イントラネット、WAN、又はLANなどのネットワーク24を介して、或いは直接接続によってサーバグループ116の一部であるサーバ161、162、及び163に接続されている。
上述のように、図示したクライアント12は、PCワークステーション、手持ち型計算装置、ワイヤレス通信装置、又はこのサーバグループ116と情報交換するためサーバグループ116にアクセスして、このサーバと対話可能なネットワーク・クライアント・プログラムを装備した他の装置を含む任意適切なコンピュータ・システムでよい。
システム110が用いるサーバ161、162、及び163は、上述のような、従来の市販サーバ・ハードウェア・プラットフォームでよい。しかし、任意適切なデータ処理プラットフォームを用いてもよい。更に、サーバ161、162、又は163は、テープライブラリ或いはその他の装置のような、ネットワーク24を介して他のサーバ及クライアントとネットワーク接続しているネットワーク記憶装置を含むことができるのは理解されるはずである。
各サーバ161、162、及び163は、それら動作及び本明細書に記載したトランザクションを実行するソフトウェア構成要素を含むこともでき、又、サーバ161、162、及び163のソフトウェア・アーキテクチャは、用途に従って変更してもよい。特定の実施形態では、サーバ161、162、及び163は、当該サーバのオペレーティング・システムか、デバイスドライバか、アプリケーション・レベル・プログラムか、周辺装置(テープライブラリ、RAID記憶システム又は他の記憶装置、或いはそれらの任意の組合せなど)上で動作するソフトウェア・プロセスかに後述するプロセスの一部を組み込むソフトウェア・アーキテクチャを利用してもよい。何れの場合も、通常の技能を備えた当業者であれば、本明細書に記載したシステム及び方法は、多くの異なる実施形態を介して実現でき、更に、採用した実施例及び実現例は対象とする用途の関数として異なることは理解するはずである。従って、これら全ての実施形態及び実現例は本発明の範囲に入る。
動作時には、クライアント12は、サーバグループ116にわたって区分されたリソースを必要とするはずである。従って、各クライアント12は要求をサーバグループ116に送信する。典型的には、クライアント12は独立して動作し、従って、サーバグループ116に掛かるクライアント負荷は時間と共に変化する。こうした典型的な動作では、クライアント12は、例えばサーバ161などの何れかのサーバに連絡を取り、データブロック、ページ(複数ブロックを含む)、ファイル、データベース、アプリケーション、又は他のリソースなどのリソースにアクセスする。連絡を受けたサーバ161自体が要求されたリソースを保持しておらず、それを管理もしていないこともある。しかし好適な実施形態では、要求を最初に受信したサーバがどれであれ、サーバグループ116は、クライアント12による全ての区分リソースの利用を可能とするように構成されている。例示目的で、図4には、3つのサーバ全て(サーバ161、162、163)にわたって区分されている1つのリソース180と、これら3つのサーバの内の2つにわたって区分されている他のリソース170との2つのリソースが示されている。システム110がブロックデータ記憶システムであるこの代表的な応用例では、各リソース170及び180は区分ブロックデータ・ボリュームでよい。
従って、図示したサーバグループ116は、複数の等価サーバであるサーバ161、162、及び163からなるストレージ・エリア・ネットワーク(SAN)として動作できるブロックデータ記憶サービスを提供する。各サーバ161、162、及び163は、区分ブロックデータ・ボリューム170及180の1つ又は複数部分をサポートできる。図示したシサーバグループ116では、2つのデータ・リソース(例えばボリューム)と3つのサーバが存在するが、サーバの数は特に限定されるものではない。同様に、リソース又はデータ・ボリュームの数にも特に制限はない。更に、各リソースは単一サーバ上に全てが収容されていてもよいし、各データ・ボリュームは、サーバグループの全てのサーバ又はサーバグループの部分集合など、幾つかのサーバにわたって区分されていてもよい。
実際には、もちろん、サーバ161、162、及び163に利用できるメモリ資産の量やサーバ161、162、及び163の計算処理上の制限など、実現に関わる事情による制限がありうる。更に、一実現例では、グループ分け自体(すなわち、どのサーバがグループを構成するかという決定)が運営上の決定に関わることもある。典型的なシナリオでは、1つのグループが、始めは2、3のサーバのみか或いはたった1つのサーバしか含まないこともありうる。システム管理者は、必要な性能のレベルを確保する必要性に合わせ、サーバをグループに追加していくことになる。サーバを増やせば、記憶されるリソースのためのスペース(メモリ、ディスク記憶装置)が増加し、クライアント要求を処理するCPU処理能力が増加し、クライアントからの要求及びクライアントへの応答を伝送するネットワーク能力(ネットワーク・インターフェース)が増大する。当業者であれば、本明細書に記載したシステムは、追加サーバをグループ116に加えることにより容易にスケール変更して、増大したクライアント需要に対処できることは理解するはずである。しかし、クライアント負荷が変動するにつれ、サーバグループ116はクライアント負荷を再分散して、サーバグループ116内で利用可能な資産をよりよく活用できる。
このため、一実施形態では、サーバグループ116は複数の等価サーバを含む。各等価サーバは、サーバグループ116にわたって区分されたリソースの一部をサポートする。クライアント要求がこれら等価サーバに引き渡されると、等価サーバは互いに動作を調整してシステム負荷の大きさ測定を生成し、各等価サーバに対するクライアント負荷の大きさ測定を生成する。好適な実現例では、この調整はクライアント12には透過的であり、又、これらサーバは、交互にリソースへアクセスさせたり、リソースへアクセスする方法を変更させたりすることなく、互いに負荷を分散できる。
図5を参照すると、サーバ161(図4)に接続しているクライアント12は、サーバグループ116を、それが複数IPアドレスを備えた単一サーバであるかのように見ることになる。クライアント12は、サーバグループ116が場合によっては多数のサーバ161、162、163から構築されていることを認識しないし、ブロックデータ・ボリューム170及び180が幾つかのサーバにわたって区分されていることを必ずしも認識しない。あるクライアント12は、単一サーバのみにその固有のIPアドレスを介してアクセスすることもある。結果として、サーバの数及びリソースがサーバ間で区分される様態は、クライアント12が認識するネットワーク環境に影響を与えることなく変更できる。
図6は、図5のリソース180がサーバ161、162、及び163にわたって区分されていることを示す。区分サーバグループ116において、任意のボリュームを、サーバグループ116内の任意数のサーバにわたって分散してよい。図4及び5に示したように、1つのボリューム170(リソース1)は、サーバ162、163にわたり分散されており、別のボリューム180(リソース2)は、サーバ161、162、163にわたって分散されている。有利なことに、それぞれのボリュームは、「ページ」とも呼ばれる複数ブロックからなる固定サイズのグループで構成してもよく、代表的な1ページは8192個のブロックを含む。他の適切なページサイズを用いてもよい。又、可変数の(固定数でなく)ブロックを含むページを使用してもよい。
代表的な実施形態では、グループ116内の各サーバは、各ボリューム用の経路指定テーブル165を含んでおり、経路指定テーブル165は、特定ボリュームの特定ページが存在するサーバを識別する。例えば、サーバ161が、ボリューム3、ブロック93847への要求をクライアント12から受け取ると、サーバ161は、そのページ番号(例えば、ページサイズが8192個であればページ11)を計算し、経路指定テーブル165においてページ11を含むサーバの位置すなわちサーバ番号をルックアップする。仮にサーバ163がページ11を含んでいる場合は、この要求はサーバ163に転送され、このサーバがデータを読み出して、そのデータをサーバ161に返す。次に、サーバ161は、この要求されたデータをクライアント12に送る。この応答は、常にクライアント12から要求を受け取ったものと同一サーバ161を介してクライアント12に返してもよい。或いは、上述のショートカット・アプローチを用いてもよい。
従って、どのサーバ161、162、163がクライアント12が求めるリソースを持っているかは、クライアント12にとっては重要でない。上述のように、サーバ161、162、及び163は経路指定テーブルを用いてクライアント要求に応じ、クライアント12は、どのサーバが要求リソースに関連付けられているかを予め知っている必要はない。これにより、リソースの複数部分が、異なるサーバに存在できるようになる。又、クライアント12を区分サーバグループ116に接続させたまま、リソース又はその部分を移動できる。後者のタイプのリソース再区分を、データブロック又はページからなるリソース部分を移動する場合は「ブロックデータ移送」と本明細書では呼ぶ。通常の技能を備えた当業者であれば、他の種類のリソース(本明細書の他の部分で述べた)からなるリソース部分も同様の手段で移動してよい。従って、本発明は、いかなる特定種類のリソースにも限定されない。
データの移動は、管理者の命令により又は本明細書で述べた記憶負荷バランシング機構により自動的に実行してもよい。典型的には、データ・リソースのこうした移動又は移送は、ページと呼ぶブロックからなるグループ単位で行われる。
ページを1つの等価サーバから別の等価サーバへ移動する時には、応答の待ち時間を発生させたり増加させたりしないように、移動中のページのデータを含む全てのデータをクライアントに継続的にアクセス可能とすることが重要である。手動による移動の場合は、今日の幾つかのサーバで実現されているように、手動移送はクライアントへのサービスを中断してしまう。これは一般に好ましくないと考えられているので、サービス中断を引き起こさない自動移動が好ましい。こうした自動的移送では、移動はクライアントに透過的でなければならない。
本発明の一実施形態によれば、移送するページは、その移動中は発信サーバ(すなわち、当該データが元々記憶されているサーバ)によって元々「所有」されていると考えられている。クライアントの読み出し要求の経路指定は、引き続きこの発信サーバを介して行われる。
新たなデータを目的ページに書き込む要求は特別に処理される。すなわち、データは、発信サーバにおけるページ位置と、宛先サーバにおける新たな(コピー)ページ位置との両方に書き込まれる。こうすることで、例え複数の書き込み要求がこの移動時に処理されても、ページの無矛盾イメージが宛先サーバでもたらされる。一実施形態では、図8に示したリソース移送プロセス240がこの処理を実行する。ページが大きくなれば、より綿密なアプローチを用いればよい。こうした場合は、移送は複数部分に分けて実行できる。すなわち、既に移動された部分への書き込みを宛先サーバにリダイレクトし、現在移動中の部分への書き込みは以前のように両方のサーバに向ける。もちろん、まだ移動されていない部分への書き込みは発信サーバが処理すればよい。
こうした書き込み処理アプローチは、移動中に停電などの障害が発生した場合に必要な動作をサポートするのに必要である。ページが一単位として移動される場合は、打ち切られた(失敗した)書き込みは最初から再開できる。ページが複数部分に分けて移動する場合は、障害発生時に移動中であった部分からこの移動処理を再開できる。発信サーバと宛先サーバとの両方にデータ書き込む必要があるのは、再開する可能性があるからである。
テーブル1は、サーバAからサーバBへの単位ブロックデータ移動に関する一連のブロックデータ移送段階を示す。テーブル2は、部分毎のデータブロック移動に関して同様の情報を示す。
Figure 2010134948
Figure 2010134948
リソースが移動されると、経路指定テーブル165(図9を再度参照する)は(本発明の分野では周知の手段により)必要に応じて更新され、その後のクライアント要求は、その要求を現時点で処理する責任を負うサーバに転送されることになる。少なくとも同一リソース170又は180を含むサーバの中では、経路指定テーブル165は、伝播遅延の影響は受けるが同一となりうる。
実施形態によっては、経路指定テーブルが一旦更新されると、発信サーバ(又は「ソース」サーバ)におけるページが標準的な手段によって削除される。更に、発信ページ位置に関してフラグ又は他のマーカを発信サーバにセットして、そのデータが有効でないことを少なくとも一時的に示すようにする。発信サーバ宛てのこの時点で潜在的読み出し又は書き込み要求は、そのサーバ上の期限切れデータを読み出すのでなく、エラーとそれに続く再試行をトリガする。こうした再試行が返される時点では、こうした再試行は更新済みの経路指定テーブルに遭遇し、宛先サーバに正しく導かれる。ブロックデータの複製、複写、又は影コピー(これらは本発明の分野では公知の用語である)がサーバグループに残されることはない。随意選択だが、他の実施形態では、発信サーバは、宛先サーバへのポインタ又は他の標識を保持してもよい。発信サーバは、選択した一定期間にわたり、読み出し及び書き込み要求を含むがそれに限定されない要求を、宛先サーバに転送してもよい。この随意選択の実施形態では、こうした要求が非常に遅いか、発信サーバに到着しなくても、クライアント12はエラーを受信しないのは、サーバグループ内の幾つかの経路指定テーブルがまだ更新されていないからである。要求は、発信サーバと宛先サーバとの両方で処理できる。この遅延更新処理は、クライアント要求の処理を経路指定テーブル更新と同期化する必要性を無くすか又は減少させる。経路指定テーブルの更新は背景で実行される。
図7は、区分サーバ環境でクライアント要求に対応するための代表的な要求対応処理400を示す。要求対応処理400は、ファイル又はファイルのブロックなどのリソースへの要求を受け取ること(ステップ420)により、ステップ410で開始する。要求対応処理400は、ステップ430において経路指定テーブルを調べ、要求されたリソースがどのサーバに位置しているかを特定する。もし要求されたリソースが最初のサーバに存在すれば、ステップ480で最初のサーバが、要求されたリソースをクライアント12に返し、処理400はステップ490で終了する。反対に、要求されたリソースがこの最初のサーバに存在しなければ、ステップ450でこのサーバは、経路指定テーブルからのデータを用いてどのサーバがクライアントに要求されたリソースを実際に保持しているかを特定する。すると、ステップ460で、この要求は要求されたリソースを保持しているサーバに転送され、ステップ480で、このサーバが要求されたリソースを最初のサーバに返す。上述と同様に、処理400はここでステップ480へ進み、最初のサーバが、要求されたリソースをクライアント12へ転送し、ステップ490で処理400は終了する。
従って、通常の技能を備えた当業者であれば、本明細書に記載したシステム及び方法は、1つ又は複数の区分リソースを複数サーバにわたって移送可能で、従って複数クライアントからの要求を処理可能なサーバグループを提供できることが分かるはずである。幾つかのサーバにこうして移送されるリソースは、ディレクトリ、ディレクトリ内の個別のファイル、又はファイル内のブロック、又はそれらの任意の組合せであってもよい。他の区分サービスも実現可能である。例えば、データベースを類似の様態で区分したり、分散ファイルシステム、或いはインターネットを介して配信されるアプリケーションをサポートする分散サーバ又は区分サーバを提供したりできる。一般に、このアプローチは、クライアント要求がリソース全体の部分への要求であると解釈できる任意のサービスに適用できる。
図8を参照すると、より効率的なサービスを提供するため、クライアント負荷を再分散可能なブシステム500の一実施形態を示す。特に、図8は、クライアント12A乃至12Eがサーバブロック116と通信するシステム500を示す。サーバブロック116は、3つの等価サーバである等価サーバ161、162、及び163を含み、それぞれサーバは、クライアントからの同一要求に実質的に同一の応答を提供できる。典型的には、各サーバは、伝播遅延又は応答タイミングによる差異の影響を受けるが同一の応答を生成する。従って、クライアント12から見れば、サーバグループ116は、クライアント12A乃至12Eと通信するための複数ネットワーク又はIPアドレスを提供する単一のサーバシステムに見える。
各サーバは、経路指定テーブル200A、200B、及び200Cとして示した経路指定テーブルと、それぞれ負荷モニタ・プロセス220A、220B、及び220Cと、クラインアント割当てプロセス320A、320B、及び320Cと、クライアント分散プロセス300A、300B、及び300Cと、それぞれリソース移送プロセス240A、240B、及び240Cとを含む。更に、例示目的のみだが、図8は、リソースを、1つのサーバから別のサーバへ移送可能な複数ページのデータ280として示している。
図8に矢印で示したように、各経路指定テーブル200A、200B、及び200Cは、情報を共有する目的で互いと通信できる。上述のように、経路指定テーブルは、個別の等価サーバの内の何れがサーバグループ116により維持されている特定リソースを担当するかを探知できる。各等価サーバ161、162、及び163は、クライアント12からの同一要求に同一応答を提供できるので、経路指定テーブル200A、200B、及び200C(それぞれ)は互いと動作を調整して、異なるリソースとこれらリソースを担当する等価サーバとのグローバル・データベースを提供する。
図9は、経路指定テーブル200Aの一例とそこに記憶されている情報とを示す。図9に示したように、各経路指定テーブルは、区分データブロック記憶グループ116をサポートする各等価サーバ161、162、及び163の識別子を含む。更に、各経路指定テーブルは、各等価サーバに関連付けられたデータブロックを識別するテーブルも含む。図9に示した経路指定テーブルの実施形態では、等価サーバは2つの区分ボリュームをサポートする。最初のボリュームは、3つの等価サーバ161、162、及び163にわたり分散すなわち区分されている。第2の区分ボリュームは、2つの等価サーバ(それぞれサーバ162及び163)にわたって区分されている。
動作時には、図示した各サーバ161、162、及び163は、サーバグループ116に掛けられた全負荷と、各クライアントからの負荷及びそれぞれのサーバ161、162、及び163により処理されている個別のクライアント負荷とを監視できる。これを実行するため、各サーバ161、162、及び163は、それぞれ負荷モニタ・プロセス220A、220B、及び220Cを含む。上述のように、負荷モニタ・プロセス220A、220B、及び220Cは互いに通信できる。これは図8に、異なるサーバ161、162、及び163の負荷モニタ・プロセスを繋ぐ両方向線で図示した。
図示した各負荷モニタ・プロセスは、それぞれのサーバ上で実行し且つそれぞれのサーバが処理しているクライアント要求を監視するソフトウェア・プロセスでよい。これら負荷モニタは、それぞれのサーバが処理している個別クライアント12の数、それぞれ及び全てのクライアント12が処理している要求の数、及び/又はデータアクセス・パターン(主として順次データアクセス、主としてランダム・データアクセス、又はその何れでもない)などの他の情報を監視すればよい。
従って、負荷モニタ・プロセス220Aは、サーバ161に掛かるクライアント負荷を表す情報を生成でき、更に、サーバ162の負荷モニタ220Bと通信できる。一方、サーバ162の負荷モニタ・プロセス220Bは、サーバ163の負荷モニタ・プロセス220Cと通信でき、負荷モニタ・プロセス220Cはプロセス220Aと通信できる(図示しない)。異なる負荷モニタ・プロセス220A、220B、及び220C間での通信を可能にすることで、これら負荷モニタ・プロセスは、クライアント12によりサーバグループ116に掛けられる全システム負荷を特定できる。
この例では、クライアント12Cは同一リソースへのアクセスを連続的に要求しているかもしれない。例えば、こうしたリソースは、サーバ161が維持するページ280かもしれない。他の全ての要求とこの負荷が非常に大きく、サーバ161が全システム・トラフィックの大きな部分を負担している一方で、サーバ162は予期した程度未満しか負担していないこともあろう。従って、負荷モニタ・プロセス及びリソース割当てプロセスは、ページ280をサーバ162に移動すべきだと判断し、クライアント分散プロセス300Aは、ページ280をサーバ161からサーバ162へ移送するブロックデータ移送プロセス350(上述した)を起動できる。従って、図8に示した実施形態では、クライアント分散プロセス300Aは、リソース移送プロセス240Aと協働して、クライアント12Cにサーバ161ではなくサーバ162へ連続的に要求させる様態でリソースを再区分する。
一旦、リソース280がサーバ162に移送されると、経路指定テーブル200Bはそれ自身を(本発明の分野では周知の標準的手段を用いて)更新でき、更に、経路指定テーブル200A及び200Cを再び本発明の分野では周知の標準的手段を用いて更新できる。こうすることで、これらリソースは、クライアント負荷が適切に再分散される可能性が高くなるようにサーバ161、162、及び163にわたって再区分できる。
図4を再び参照すると、これらシステム及び方法は、区分サービスをより効率的に運用するためにも利用できる。
この実施形態では、サーバグループ16は、複数の等価サーバであるサーバ161、162、及び163からなるストレージ・エリア・ネットワーク(SAN)として動作できるブロックデータ記憶サービスを提供する。各サーバ161、162、及び163は、区分ブロックデータ・ボリューム188及170の1つ又は複数部分をサポートできる。図示したシステム110では、2つのデータ・ボリュームと3つのサーバが存在するが、サーバの数は特に限定されるものではない。同様に、リソース又はデータ・ボリュームの数にも特に制限はない。更に、各データ・ボリュームは単一サーバ上に全てが収容されていてもよいし、各データ・ボリュームは、サーバグループの全てのサーバ又はサーバグループの部分集合など、幾つかのサーバにわたって区分されていてもよい。実際には、もちろん、サーバ161、162、及び163に利用できるメモリの量やサーバ161、162、及び163の計算処理上の制限など、実現に関わる事情による制限がありうる。更に、一実現例では、グループ分け自体(すなわち、どのサーバがグループを構成するかという決定)が運営上の決定となることもある。典型的なシナリオでは、1つのグループが、始めは2、3のサーバのみか或いはたった1つのサーバしか含まないこともありうる。システム管理者は、必要なサービスのレベルを確保する必要性に合わせ、サーバをグループに追加していくことになる。サーバを増やせば、記憶されるリソースのためのスペース(メモリ、ディスク記憶装置)が増加し、クライアント要求を処理するCPU処理能力が増加し、クライアントからの要求及びクライアントへの応答を伝送するネットワーク能力(ネットワーク・インターフェース)が増大する。当業者であれば、本明細書に記載したシステムは、追加サーバをグループ116に加えることにより容易にスケール変更して、増大したクライアント需要に対処できることは理解するはずである。しかし、クライアント負荷が変動するにつれ、後述するように、システム110はクライアント負荷を再分散して、サーバグループ116内で利用可能な資産をよりよく活用できる。この目的のため、一実施形態では、システム110は複数の等価サーバを含む。各等価サーバは、サーバグループ116にわたって区分されたリソースの一部をサポートする。クライアント要求がこれら等価サーバに引き渡されると、等価サーバは互いに動作を調整してシステム負荷の大きさ測定を生成し、各等価サーバに対するクライアント負荷の大きさ測定を生成する。好適な一実現例では、この調整はクライアント12にとって透過的な様態で行われるので、クライアント12は、クライアント12とサーバグループ116との間で伝送される要求及び応答のみを認識する。
図5を再び参照すると、サーバ161(図4)に接続しているクライアント12は、サーバグループ116を、それが複数IPアドレスを備えた単一サーバであるかのように見ることになる。クライアント12は、サーバグループ116が場合によっては多数のサーバ161、162、163から構築されていることを認識しないし、ブロックデータ・ボリューム170、180が幾つかのサーバ161、162、163にわたって区分されていることも認識しない。結果として、サーバの数及びリソースがサーバ間で区分される様態は、クライアント12が認識するネットワーク環境に影響を与えることなく変更できる。
図6を参照すると、区分サーバグループ116において、任意のボリュームを、グループ116内の任意数のサーバにわたって分散してよい。図4及び5に示したように、1つのボリューム170(リソース1)は、サーバ162、163にわたり分散されており、別のボリューム180(リソース2)は、サーバ161、162、163にわたって分散されている。有利なことに、それぞれのボリュームは、「ページ」とも呼ばれる複数ブロックからなる固定サイズのグループで構成されており、代表的な1ページは8192個のブロックを含む。他の適切なページサイズを用いてもよい。代表的な実施形態では、グループ116内の各サーバは、各ボリューム用の経路指定テーブル165を含んでおり、経路指定テーブル165は、特定ボリュームの特定ページが存在するサーバを識別する。例えば、サーバ161が、ボリューム3、ブロック93847への要求をクライアント12から受け取ると、サーバ161は、そのページ番号(例えば、ページサイズが8192個であればページ11)を計算し、経路指定テーブル165においてページ11を含むサーバの位置すなわちサーバ番号をルックアップする。仮にサーバ163がページ11を含んでいる場合は、この要求はサーバ163に転送され、このサーバがデータを読み出して、そのデータをサーバ161に返す。次に、サーバ161は、この要求されたデータをクライアント12に送る。言い換えると、この応答は、常にクライアント12から要求を受け取ったものと同一サーバ161を介してクライアント12に返される。
クライアント12にとっては、どのサーバ161、162、163に接続しているかは透過的である。実際は、クライアントは、これらサーバをサーバグループ116としか見えず、クライアントはサーバグループ116にリソースを要求する。クライアント要求の経路指定は、それぞれの要求毎に別々に実行されることは理解すべきである。これにより、リソースの複数部分が、異なるサーバに存在できるようになる。又、これによって、クライアントがサーバグループ116に接続している間に、リソース又はその部分を移動することが可能である。もしこれが行われた場合は、経路指定テーブル165は必要に応じて更新され、その後のクライアント要求は、現時点でその要求の処理を担当するサーバに転送される。少なくともリソース170又は180内部では、経路指定テーブル165は同一である。ここで説明する本発明は「リダイレクト」機構とは異なる。リダイレクト機構では、クライアントからの要求を処理できないことはサーバが決定し、クライアントをこの処理が可能なサーバにリダイレクトする。すると、クライアントは別のサーバと新たな接続を確立する。接続確立は比較的効率が悪いので、リダイレクト機構は頻繁な要求の処理には適していない。
図7は、区分サーバ環境でクライアント要求に対応するための代表的な要求対応処理400を示す。要求対応処理400は、ファイル又はファイルのブロックなどのリソースへの要求を受け取ること(ステップ420)により、ステップ410で開始する。ステップ430で、要求対応処理400は、要求されたリソースがクライアント12から要求を受信した最初のサーバに存在するかを調べ、ステップ430で、経路指定テーブルを調べてどのサーバに要求されたリソースが存在するかを特定する。もし要求されたリソースが最初のサーバに存在すれば、ステップ480で最初のサーバが、要求されたリソースをクライアント12に返し、処理400はステップ490で終了する。反対に、要求されたリソースがこの最初のサーバに存在しなければ、ステップ440でこのサーバは経路指定テーブルを調べ、経路指定テーブルからのデータを用いてどのサーバがクライアントに要求されたリソースを実際に保持しているかを特定する(ステップ450)。すると、ステップ460で、この要求は要求されたリソースを保持しているサーバに転送され、ステップ480で、このサーバが要求されたリソースを最初のサーバに返す。上述と同様に、処理400はここでステップ480へ進み、最初のサーバが、要求されたリソースをクライアント12へ転送し、ステップ490で処理400は終了する。
幾つかのサーバに分散されているリソースは、ディレクトリ、ディレクトリ内の個別のファイル、又はファイル内のブロックであってもよい。他の区分サービスを考慮することも可能である。例えば、データベースを類似の様態で区分したり、分散ファイルシステム、或いはインターネットを介して配信されるアプリケーションをサポートする分散サーバ又は区分サーバを提供したりできる。一般に、このアプローチは、クライアント要求がリソース全体の部分への要求であると解釈でき、且つリソースの部分に対する処理が、全ての部分の間におけるグローバル調整(原語:coordination)を必要としないような任意のサービスに適用できる。
図10を参照すると、ブロックデータ・サービスシステム10の一実施形態を示す。特に、図10は、クライアント12がサーバグループ16と通信するシステム10を示す。このサーバグループ116は、3つのサーバ161、162、及び163を含む。各サーバは、経路指定テーブル20A、20B、及び20Cとして示した経路指定テーブルを含む。各等価サーバ161、162、及び163は、これら経路指定テーブルに加え、図10に示したようにそれぞれ負荷モニタ・プロセス22A、22B、及び22Cを含む。
図10に示したように、各等価サーバ161、162、及び163は、経路指定テーブル20A、20B、及び20Cを含むことができる。図10に示したように、各経路指定テーブル20A、20B、及び20Cは、情報を共有する目的で互いと通信できる。上述のように、経路指定テーブルは、個別の等価サーバの内の何れがサーバグループ16により維持されている特定リソースを担当するかを探知できる。図10に示した実施形態では、サーバグループ16はSAN又はSANの一部とすることができ、このネットワークでは、各等価サーバ161、162、及び163は、クライアント12がこのSAN上のこの等価サーバにアクセスするのに利用できる個別のIPアドレスを備えている。上述したように、各等価サーバ161、162、及び163は、クライアント12からの同一要求に同一の応答を提供できる。それを達成するため、個別の等価サーバ161、162、及び163の経路指定テーブルは互いに動作を調整して、異なるリソースと(この代表的な実施形態では、データブロック、ページ、或いはデータブロックの他の編成)、それぞれのデータブロック、ページ、ファイル、又は他の記憶編成を担当する個別の等価サーバとのグローバル・データベースを提供する。
図9を参照すると、代表的な経路指定テーブルを示した。サーバグループ16におけるテーブル20Aのような各経路指定テーブルは、区分データブロック記憶サービスをサポートする各等価サーバ161、162、及び163の識別子(サーバID)を含む。更に、各経路指定テーブルは、各等価サーバに関連付けられたデータブロック、ページを識別するテーブルも含む。図9に示した実施形態では、等価サーバは2つの区分ボリュームをサポートする。最初のボリュームであるボリューム18は、3つの等価サーバ161、162、及び163にわたり分散すなわち区分されている。第2の区分ボリュームであるボリューム17は、2つの等価サーバ(それぞれサーバ162及び163)にわたって区分されている。
これら経路指定テーブルはシステム10が使用して、利用可能なサーバにわたりクライアント負荷のバランスをとる。
各負荷モニタ・プロセス22A、22B、及び22Cは、それぞれの等価サーバに到着する要求パターンを監視して、クライアント12からのパターン又は要求がSANに転送されているか、又、クライアントのサーバへの接続構成を変更することで、これらパターンにより効率的又は確実に応じることができるかを判断する。一実施形態では、負荷モニタ・プロセス22A、22B、及び22Cは、それぞれの等価サーバに到着するクライアント要求を単に監視する。一実施形態では、各負荷モニタ・プロセスは、個別の要求モニタ・プロセスが認識した異なる要求を表すテーブルを構築する。各負荷モニタ・プロセス22A、22B、及び22Cは、各等価サーバが認識した要求のグローバル・データベースを構築するために互いに通信可能である。従って、この実施形態では、各負荷モニタ・プロセスは、各等価サーバ161、162、及び163からの要求データを統合して、ブロックデータ記憶システム16全体が認識する要求トラフィックを表すグローバル・データベースを生成できる。一実施形態では、このグローバル要求データベースをクライアント分散プロセス30A、30B、及び30Cが利用可能として、より効率的又は信頼性が高いクライアント接続が可能かどうかを判断するのに使用できるようにする。
図10は、サーバグループ16が、クライアント12C(サーバ161と元々は通信していた)をサーバ162に再分散することにより、クライアント負荷を再分散できることを図示している。このため、図10は、サーバ161がクライアント12A、12B、及び12Cと通信している初期状態を示す。これは、サーバ161をクライアント12A、12B、及び12Cに繋げる両方向矢印で示した。図10で更に示したように、初期状態では、クライアント12D及び12Eはサーバ163と通信しており、サーバ162と通信しているクライアントはない(初期状態では)。したがって、この初期状態時には、サーバ161は、3つのクライアント(クライアント12A、12B、及び12C)からの要求をサポートする。サーバ162は、何れのクライアントからの要求に応じても応答してもいない。
したがって、この初期状態では、サーバグループ16は、サーバ161に大きな負担が掛かっているか資産が逼迫していると判断できる。この判断は、サーバ161が利用可能な資産からすると、このサーバが過剰に使用されているという分析から導き出される。例えば、ことによると、サーバ161のメモリは限られており、クライアント12A、12B、及び12Cが生成する要求が、サーバ161が利用できるメモリ資産に過大な負荷を掛けているのかもしれない。従って、サーバ161は、許容限度を下回る動作レベルでクライアント要求に応答しているのかもしれない。或いは、許容レベルで動作し且つクライアント要求に応答してはいるが、サーバ161には、サーバ162が負担するクライアント負荷(又は帯域幅)に比べて過大な負担が掛かっているのかもしれない。従って、サーバグループ16のクライアント分散プロセス30は、全体的効率を向上するには、クライアント負荷を初期状態からサーバ162がクライアント12Cの要求に応じる状態に再分散すればよいと判断するかもしれない。負荷バランシング決定を行うのに考慮すべき要件は様々であり、幾つかの例としては経路指定を減少したいという要望がある。すなわち、例えば1つのサーバが、リソースの一部(例えば、ボリューム)が存在する他のサーバよりもかなり多い要求の宛先となっていれば、そのサーバに接続を移動した方が有利となることもあろう。或いは、サーバ通信負荷のバランスをとることが要望かもしれない。すなわち、任意サーバに対する全通信負荷が他のサーバよりもかなり大きい場合は、この高負荷が掛かったサーバから接続の一部を負荷が軽いサーバに移動すると良いかもしれない。更に、リソース・アクセス負荷(例えば、ディスク入出力負荷)のバランスをとることも以前の通りだが、通信負荷よりもディスク入出力負荷とする。これは、多数の次元に関わる最適化処理であり、任意組の測定値に関する決定は、管理方針、クライアント活動に関する履歴データ、様々なサーバ及びネットワーク構成要素の能力などに左右される。
これを達成するため、図10は、クライアント負荷のこの再分散を、クライアント12Cとサーバ162との連結325(両方向の破線矢印で示した)で示している。このクライアント負荷の再分散を実行した後は、クライアント12Cとサーバ161との間の通信路は終了できることは理解されるはずである。
クライアント負荷のバランシングは、新たなクライアントからの新たな接続にも適用される。クライアント12Fは、それ自身がサーバグループ16により提供されるリソースにアクセスする必要があると判断すると、そのグループとの初期接続を確立する。この接続は、サーバ161、162、又は163の何れかで終端する。このグループはこのクライアントには単一システムに見えるので、161、162、及び163のアドレスの差を意識しない。従って、接続終端点の選択は無作為、ラウンド・ロビン、又は固定でよいが、グループ16内のサーバにおける現在の負荷パターンには応答しない。
この初期クライアント接続が受信されると、受信サーバはその時点でクライアント負荷バランシング決定を行うことができる。これが行われると、より適切なサーバが選択されることもあり、その場合はこの新たな接続は終了して、このクライアント接続がそれに従って移動される。この場合の負荷バランシング決定は、様々なサーバにおける負荷の一般的なレベルや、クライアント12Fが接続を確立した時にクライアント12Fが要求したリソースのカテゴリや、サーバ12Fからのそれまでのアクセス・パターンに関連した、サーバグループ16の負荷モニタが利用可能な履歴データや、サーバグループ16の管理者が設定した方針パラメータなどに基づくことができる。
初期クライアント接続を扱う際の別の考慮すべき点は、要求されているリソースの分散である。上述のように、あるリソースは、サーバグループの真部分集合上に分散されているかもしれない。その場合は、クライアント12Fが接続のために最初に選んだサーバは、要求リソースには全く関わりがないかもしれない。こうした接続を受け入れることは可能だが、その場合はこのクライアントからの要求の一部でなく全てが転送を必要とするので、これは特に効率的な構成ではない。そのため、初期クライアント接続のためのサーバを、新たなクライアント12Fが要求するリソースの少なくとも一部に実際に応じるサーバグループ16中のサーバの部分集合から選ぶのが有用である。
この決定は、第2の経路指定データベースを導入することにより効率的に行うことができる。上述した経路指定データベースは、対象となっているリソースの別個に移動可能な各部分の正確な位置を指定する。この経路指定データベースのコピーを、そのクライアントが当該リソースへアクセスを要求しているクライアント接続を終端とする各サーバで利用可能にする必要がある。その接続バランシング経路指定データベースは、所与のリソース全体に関して、サーバグループ16のどのサーバが現時点でそのリソースの一部を提供するかを単に示す。例えば、図1示したリソース配置を記述する接続バランシング経路指定データベースは、2つの項目からなる。リソース17用のものはサーバ162及び163を列記し、リソース18用のものはサーバ161、162、及び163を列記する。
図4乃至7を再び参照すると、通常の技能を備えた当業者であれば、これらシステム及び方法は本明細書に記載したシステム及び方法に使用可能で、1つ又は複数のリソースを複数サーバにわたって区分可能で、従って複数クライアントからの要求を処理可能なサーバグループを提供できることが分かるはずである。更に、本明細書に記載したシステム及び方法がリソースを再分散又は再区分して、リソースの部分のサーバグループにわたる配分又は分散状況を変更できることが本明細書には記述されている。幾つかのサーバにこうして分散されるリソースは、ディレクトリ、ディレクトリ内の個別のファイル、又はファイル内のブロック、又はそれらの任意の組合せであってもよい。他の区分サービスも実現可能である。例えば、データベースを類似の様態で区分したり、分散ファイルシステム、或いはインターネットを介して配信されるアプリケーションをサポートする分散サーバ又は区分サーバを提供したりできる。一般に、このアプローチは、クライアント要求がリソース全体の部分への要求であると解釈できる任意のサービスに適用してよい。
図11を参照すると、サーバ161、162、及び163にわたり区分されている記憶ボリューム18の分散形スナップショットを生成可能なブシステム10の一実施形態を示す。特に、図11は、複数のクライアント12がサーバグループ16と通信するシステム10を示す。このサーバグループ16は、3つのサーバ161、162、及び163を含む。図11の実施形態では、サーバ161、162、及び163は、それぞれがクライアントからの同一要求に概ね同一のリソースを提供するという点では等価サーバである。従って、クライアント12から見れば、サーバグループ16は、クライアント12と通信するための複数ネットワーク又はIPアドレスを提供する単一のサーバシステムに見える。各サーバは、経路指定テーブル20A、20B、及び20Cとして示した経路指定テーブルと、スナップショット・プロセス22A、22B、及び22Cとをそれぞれ含む。更に、例示目的のみだが、図11は、リソースを、元々の記憶ボリューム18のイメージである第2の記憶ボリュームを生成するためコピー可能な複数ページのデータ28として示している。
図11に示したように、各経路指定テーブル20A、20B、及び20Cは、情報を共有する目的で互いと通信できる。上述のように、経路指定テーブルは、個別の等価サーバの内の何れがサーバグループ16により維持されている特定リソースを担当するかを探知できる。図11に示した実施形態では、サーバグループ16はSANを形成することができ、このネットワークでは、各等価サーバ161、162、及び163は、クライアント12がこのSAN上のその等価サーバにアクセスするのに利用できる個別のIPアドレスを備えている。上述したように、各等価サーバ161、162、及び163は、クライアント12からの同一要求に同一の応答を提供できる。それを達成するため、個別の等価サーバ161、162、及び163の経路指定テーブル20A、20B、及び20Cは互いに動作を調整して、異なるリソースと、これらリソースを担当する等価サーバとのグローバル・データベースを提供する。
図9に示したように、各経路指定テーブルは、区分データブロック記憶グサービスをサポートする各等価サーバ161、162、及び163の識別子(サーバID)を含む。更に、各経路指定テーブルは、各等価サーバに関連付けられたデータページを識別するテーブルも含む。図9に示したように、等価サーバは2つの区分ボリュームをサポートする。最初のボリュームであるボリューム18は、3つの等価サーバ161、162、及び163にわたり分散すなわち区分されている。第2の区分ボリュームであるボリューム17は、2つの等価サーバ(それぞれサーバ162及び163)にわたって区分されている。
図11を再び参照すると、各サーバ161、162、及び163は、それぞれスナップショット・プロセス22a、22b、及び22cを含んでいるのが分かる。各スナップショット・プロセスは、当該サーバシステム上で動作し、記憶ボリュームのそれぞれのサーバが維持する部分のスナップショットを生成するように設計されたコンピュータ・プロセスでよい。従って、図5に示したスナップショット・プロセス22aは、記憶ボリューム18のサーバ161が維持する部分のコピーを生成する役割を担うことができる。図11では、この動作をページ28及びページのコピー29として少なくとも部分的に示した。
動作時には、各等価サーバ161、162、及び163は、概して独立して動作可能である。従って、スナップショット・プロセス22a、22b、及び22cは、ある特定時点における記憶ボリューム18の正確なスナップショットを作成するには動作を調整する必要がある。この調整の必要が発生するのは、書き込み要求が、何れかのクライアント12a乃至12eからサーバ161、162、及び163に随時出されることがあるのが少なくとも部分的にはその理由である。従って、書き込み要求は、スナップショット処理が開始された時に個別のサーバ161、162、及び163により受信される。スナップショット処理が不的確又は予期していない結果を出すのを防ぐため、スナップショット・プロセス22a、22b、及び22cは互いと動作を調整して、特定時点における区分記憶ボリューム18の状態を表す状態情報を生成する。具体的には、一実現例では、スナップショットを作成せよという命令が出された直後の時刻「T」が存在するように時間パラメータを選んで、「T」以前に完了がクライアント12に対して表示される全ての書き込み動作が当該スナップショットに含まれ、「T」以降に完了が表示される書き込み動作は当該スナップショットには含まれないようにする。
このため、各スナップショット・プロセス22a、22b、及び22cは、管理者から記憶ボリューム18のスナップショットを作成せよとの要求を受信できる。スナップショット・プロセスは調整プロセスを含み、この調整プロセスは、管理者が対象としている記憶ボリュームをサポートしている他のサーバ上で動作しているスナップショット・プロセスの活動及び動作を調整するためのコマンドを出す。図11に示した例では、管理者は、サーバ162上で動作するスナップショット・プロセス22bにスナップショット・コマンドを出すことができる。このスナップショット・コマンドは、スナップショット・プロセス22bに記憶ボリューム18のスナップショットの作成を要求できる。スナップショット・プロセス22bは経路指定テーブル22bにアクセスして、サーバグループ16の中のサーバで、記憶ボリューム18内のデータブロックの少なくとも一部をサポートしているサーバを特定できる。スナップショット・プロセス22bは、次に記憶ボリューム18の一部をサポートしているサーバそれぞれにコマンドを出すことができる。図11の例では、各サーバ161、162、及び163は記憶ボリューム18の一部をサポートしている。従って、スナップショット・プロセス22bは、スナップショット・プロセス22a及び22bそれぞれにスナップショットを作成する準備をせよとのコマンドを出すことができる。同時に、スナップショット・プロセス22bは、記憶ボリューム18のサーバ162に維持されている部分のスナップショットを作成する準備を開始できる。
一実現例では、図7に示したように、スナップショット作成準備のコマンドをスナップショット・プロセス22bから受信したことに応答して、各スナップショット・プロセス22a、22b、及び22cは、実行が差し迫ったクライアントからの要求を一時中断できる。これには、書き込み及び読み出し要求と、これに関わる他の全ての要求を含むことができる。これを実行するため、各スナップショット・プロセス22a、22b、及び22cは要求制御プロセスを含むことができ、この要求制御プロセスが、当該スナップショット・プロセスに、そのサーバにより実行中の要求を処理させる一方、他の要求の実行を一時中断させることで、記憶ボリューム18の状態を変更しかねない書き込み動作を一時停止させる。
スナップショット・プロセスは、要求の処理を一時中断した時点で、サーバが記憶ボリューム18のスナップショットを撮る準備ができたことを知らせる応答を、調整役のスナップショット・プロセス22bに出すことができる。調整役のスナップショット・プロセス22bがサーバ22a及び22cから作動可能信号を受信し、自分自身もスナップショット実行の準備が完了していると判断すると、調整役のスナップショット・プロセス22bは、各サーバにスナップショット・コマンドを出すことができる。このスナップショット・コマンドに応答して、サーバは、随意選択で、そのサーバが維持するボリューム18のデータブロックのコピーを表す状態情報を生成するアーカイブ・プロセスを起動できる。一実現例及び一実施形態では、「書き込み時のコピー(原語:copy
on write)」プロセスを使ってミラーイメージを作成して、スナップショット作成時から変更されていないボリュームの部分(ページ)が一度記録されるようにする。このミラーイメージは、所望なら後でテープ又は他の超大容量記憶装置に移してもよい。こうした技法は本発明の分野では公知であり、採用する技術は、用途に合わせ又ミラーイメージの量及び他の類似の判断基準に合わせて変更すればよい。
状態情報が一旦作成されると、スナップショット・プロセスは終了され、サーバは一時中断又は保留中の要求を解放して処理できる。
図12は、サーバ161、162、及び163にわたり区分されているデータ・ボリュームのスナップショット・イメージを生成するための、本発明による処理を示す。詳しく後述するように、図12に示した分散形スナップショット70により、記憶装置の管理者は、特定時点における記憶ボリューム18の状態を表す情報を生成できる。生成される状態情報には、ファイル構造、記憶データに関するメタデータ、区分記憶ボリュームが維持するデータのコピー又は記憶ボリュームの部分のコピー、或いはその他のこうした情報が含まれる。従って、本明細書で記載したスナップショット・プロセスは、様々な用途が考えられると理解されるはずである。例えば、区分データ・ボリュームの構造に関する情報が作成され、それが後の利用のため記憶されるもの、又、区分記憶ボリュームの完全な所定期間保存対象コピーが作成されるような用途である。本明細書で記載する分散形スナップショット・プロセスを他の用途で用いてもよく、こうした他の応用例も本発明の範囲に入るものと理解されるはずである。
図12は、1つ又は複数の区分記憶ボリュームの状態情報を生成するためのスナップショット要求を実行する一連の動作を示す時間/空間ダイアグラムを示す。具体的には、図12は、記憶ボリュームの無矛盾の分散形スナップショットを作成する多段階処理70を示す。このため、図12は、図5に示した3つのサーバ162、162、及び163を表す3本の垂線を示す。矢印72乃至78は、1つ又は複数クライアント12からの書き込み要求を示し、矢印82乃至88は、対応するサーバ161、162、および163からの応答を表す。
図12に示したように、処理70は、スナップショット・コマンドが管理者から出された時に開始される。この例では、スナップショット・コマンドは管理者から出され、サーバ162に渡される。このスナップショット・コマンドは、サーバ162に向けた矢印90として示されている。図12に示したように、サーバ162上で動作するスナップショット・プロセスは、他のサーバ161及び163の動作を調整するコマンドを発することでこのスナップショット・コマンドに対応する。これらコマンドは、サーバ161及び163上で実行するスナップショット・プロセスの動作を調整し、それぞれのサーバが維持しているデータの状態を表す状態情報を記憶ボリューム18の一部として生成する。
図12に更に示したように、サーバ162上で動作するスナップショット・プロセスは、他のサーバ161及び163に対して準備コマンド92及び94を出す。これらそれぞれのサーバ161及び163上で動作するスナップショット・プロセスは、「準備」コマンドの到着前にクライアントから受信した保留状態の要求(例えば、要求78)と「準備」コマンドの後に受信した要求(例えば、要求76)の実行を停止しておくことで上述の準備コマンドに応答する。
要求の実行が停止されると、サーバ161及び163は、準備コマンドを出したサーバ162に対する応答として、サーバ161及び163が全ての保留要求の実行を一時停止したことを伝える。調整役のサーバ162は、次にスナップショット・コマンドを各サーバに出す。これは図12で矢印98及び100として示した。
このスナップショット・コマンドに応答して、サーバ162に加えサーバ161及び163も、データ・ボリュームのそれぞれのサーバが維持する部分のスナップショットを作成する。次に、このスナップショット情報は、それぞれのサーバのデータファイルに記憶される。随意選択の実現例では、サーバ161、162、及び163それぞれのスナップショット・プロセスは、データ・ボリュームの所定期間保存コピーを生成できる。この所定期間保存コピーは、テープ記憶装置又は他の大容量記憶装置に移送できる。
生成したスナップショットは、領域104で完了した全ての要求を含むが、領域110で完了した要求は含まない。
図13は、記憶ボリュームのスナップショットを生成する処理の代替的実施形態を示す。具体的には、図13は、処理120が3つの期間にわたって起こることを示す空間−時間ダイアグラムである。これら3つの期間は、図13ではこの空間−時間ダイアグラムにおいて異なる陰影を付けた領域として示し、期間122、124、及び126として表示されている。期間122は、管理者がスナップショット要求を出す時刻の前の期間であり、期間124は、このスナップショット要求が出された時刻とスナップショット処理が開始される時刻との間の期間であり、期間128はスナップショットが作成された後の期間である。スナップショットの要求は矢印140で示し、異なる書き込み要求は矢印130乃至138で示した。これら書き込み要求への応答は、矢印131、133、135、137、及び139で示した。図12と同様に、図4に示したシステム10の3つのサーバは、それぞれサーバ161、162、及び163として表示した3本の垂線で示した。
図13に示した処理120は、タイムスタンプ及び同期システム・クロックの使用を介した無矛盾の分散形スナップショットの作成を示す。具体的には、処理120は、サーバ161、162、及び163が複数の書き込み要求(それぞれが何れかのサーバに随時到着可能)を受信できることを示している。図13では、これを時期122に発生する書き込み要求130、132、及び136として示した。図13に更に示したように、書き込み要求134は時期124においてに到着し、書き込み要求138は時期128において到着できる。従って、図13に示した処理120は、スナップショット処理の前、最中、その後に発生する書き込み要求に対処できるように設計されている。
このスナップショット処理は、スナップショット要求140がサーバ161、162、及び163の少なくとも何れかに受信された時点で開始する。図13は、スナップショット要求140が管理者からサーバ162に送信されていることを示す。スナップショット要求140が受信された時点で、サーバ162上で動作するスナップショット・プロセスは、スナップショットの作成対象であるデータ・ボリュームをサポートする他のサーバに、「準備」コマンドを出すことができる。この準備コマンドは矢印142で示されており、サーバ162からサーバ161及び163に送られる。この準備コマンドが受信されると、サーバ162に加えサーバ161及び163もスナップショット作成の準備をする。この例では、サーバで保留中の要求は保留状態を継続する必要はないので、そのまま進行させ、完了した時点で確認できる。保留する代わりに、サーバ161、162、及び163は、そうした要求が処理された時間を特定し、それぞれの要求にタイムスタンプを打刻できる。図13に示した例では、このタイムスタンプを要求136、134、及び138に打刻する。これら要求は保留中のものか、スナップショット要求140をサーバ162が受信した後に受信されたものである。調整役のサーバ162が各サーバ161及び162から「作動可能」応答を受信すると、調整役サーバ162はスナップショットを撮るコマンドを生成し、このコマンドを待ちサーバ161及び162に伝送する。このコマンドは、時刻が現在のタイムスタンプを含む。これは図13で、サーバ161及び163へのコマンドを表す矢印160及び162として示した。サーバ161及び163がこのコマンドを受信すると、これらサーバは、コマンド161及び162と共に伝送された時間よりも早いタイムスタンプが打刻された書き込み要求をスナップショットに含める。スナップショットを撮れというコマンド160及び162のタイムスタンプより遅いタイムスタンプ付きの書き込み要求は、ここで生成するスナップショットには含まれない。図13に示した例では、書き込み要求136及び134はここで生成するスナップショットに含まれるが、書き込み要求138はこのスナップショットに含まれない。このスナップショット情報が生成されると、処理120は、図12に関して述べた処理70と同様に進行する。
ハードウェア、ソフトウェア(本発明の分野におけるこれらの用語の現在の定義による)、或いはその任意の組み合わせで本発明の方法を実行できる。特に、任意のタイプの1台のコンピューターか複数のコンピューター上で実行されるソフトウェア、ファームウェア、或いは、マイクロコードによって、本方法を実行してもよい。加えて、本発明を具体化するソフトウェアは、任意の形式(例えば、ソースコード、オブジェクトコード、インタープリタコードなど)で任意のコンピューター読み取り可能メディア(例えば、ROM、RAM、磁気メディア、パンチテープ或いはカード、任意形式のコンパクト・ディスク(CD)、DVDなど)に格納したコンピューター命令を含んでもよい。その上、こうしたソフトウェアは、インターネットに接続されたデバイス間で転送される周知のウェブページ内に存在するような、搬送波に組み入れられたコンピューター・データ信号の形式をとっていてもよい。従って、本開示で特記しない限り、本発明は、いかなる特定のプラットフォームにも限定されない。
更に、図示したシステム及び方法は、従来のハードウェア・システムから構築してよく、特別に開発されたハードウェアは必要ない。例えば、図示したシステムでは、クライアントは、ネットワークサーバと情報交換するためこのサーバにアクセスして、このサーバと対話可能なネットワーククライアント・ハードウェア及び/又はソフトウェアを装備したPCワークステーション、手持ち型計算装置、ワイヤレス通信装置、又は他の装置を含む任意適切なコンピュータ・システムでよい。随意選択だが、これらクライアント及びサーバは、遠隔サーバのサービスにアクセスするにあたって安全が保証されていない通信路に依存してもよい。通信路を安全にするためには、これらクライアント及びサーバは、クライアントとサーバとの間に信頼できるパスを提供するセキュア・ソケット・レイヤー(SSL)安全保護システムなどの安全保護システムを利用すればよい。或いは、これらクライアント及びサーバは、ネットワークを介してデータを伝送する安全なチャンネルを遠隔ユーザに提供するために開発されている他の従来の安全保護システムを用いてもよい。
更に、本明細書で記載したシステムで使用するネットワークは、インターネットに限定するわけではないがそれを含む、現在知られている或いは将来開発される従来又は将来のコンピュータ間通信システムを含むことができる。
サーバのサポートには、任意バージョンのユニックス・オペレーティングシステムを実行し、クライアントと接続してデータを交換できるサーバ・プログラムを実行する、サン・マイクロシステムズ社(原語:Sun Microsystems, Inc.)のスパーク(原語:Sparc)(商標)システムなどの市販のサーバプラットフォームを使用してもよい。
当業者であれば、ここに記載した実施形態及び実現例の多くの等価物を理解し、或いは、通常の実験を行うだけでそれらを特定できるはずである。例えば、サーバ161、162、及び163の処理或いは入出力機能は同一でよく、又、割当てプロセス220は、リソース移送決定を下す際にこれを考慮する。更に、システ−ネットワーク・トラフィック、入出力要求率、及びデータアクセス・パターン(例えば、アクセスが主として順次アクセスか、主としてランダム/アクセスかなど)における「負荷」の大きさとなるパラメータを幾つか設定してよい。割当てプロセス220は、これらパラメータ全てを入力として移送決定で考慮する。
上述のように、ここに記載した本発明は、ユニックス・ワークステーションなどの従来のデータ処理システム上で動作するソフトウェア構成要素としても実現できる。そうした実施形態では、上述のショートカット応答機構は、C言語コンピュータ・プログラム又はC++、C#、パスカル、フォートラン、Java(登録商標)、又はベーシックを含んだ任意の高レベル言語で書かれたコンピュータ・プログラムとして実装できる。更に、マイクロコントローラ又はデジタル信号プロセッサ(DPS)が使用される実施形態では、これらショートカット応答機構は、マイクロコードで記述したコンピュータ・プログラムとして実現してもよいし、高レベル言語で記述して、使用するプラットフォーム上で実行可能なマイクロコードにコンパイルするコンピュータ・プログラムとして実現してもよい。こうしたコードの開発は当業者には公知であり、そうした技法は、例えば「TMS320ファミリーを用いたデジタル信号処理の応用例、第1、2、及び3巻、テキサス・インスツルーメンツ社(1990年)(Digital Signal Processing
Applications with the TMS320 Family, Volumes I ,II, and III, Texas Instruments
(1990))」に記載されている。更に、高レベルプログラム作成の一般的な技法は公知であり、例えば「スティーブン・G・コーチャン、C言語でのプログラミング、ハイデン・パブリッシング(1983)(Stephen G. Kochan, Programming in C,
Hayden Publishing (1983))」に記載されている。
以上本発明の特定の実施形態について示し記述してきたが、本発明の種々なる態様から逸脱することなく変更及び修正を行ってもよいことは、当業者に明白となるはずである。従って、添付した特許請求の範囲は、本発明の要旨を逸脱しない範囲に入るものとしてこうした変更及び修正全てを包含することとなる。
異なる図面において同じ参照符号を使用することで、同様或いは同一の品目を示す。

Claims (21)

  1. 区分記憶サービスを提供するシステムであって、
    少なくとも2つのサーバと、
    前記少なくとも2つのサーバにわたり区分された記憶ボリュームと、
    前記少なくとも2つのサーバのそれぞれで動作する少なくとも2つのスナップショット・プロセスであって、前記区分記憶ボリュームの状態を表す状態情報を生成するため他の
    スナップショット・プロセスと動作を調整可能な、スナップショット・プロセスとを含む、システム。
  2. 前記スナップショット・プロセスが調整プロセスを含み、当該調整プロセスが、少なくとも他の1つのスナップショット・プロセスと動作を調整して前記区分記憶ボリュームの状態を表す状態情報を生成するためのコマンドを生成する、請求項に記載のシステム。
  3. 前記調整プロセスが、スナップショット処理を生成するコマンドにタイムスタンプを打刻するためのタイムスタンプ・プロセスを含む、請求項に記載のシステム。
  4. 前記スナップショット・プロセスが、当該サーバにより受信された要求を処理するための要求制御プロセスを含む、請求項に記載のシステム。
  5. 前記要求制御プロセスが、当該サーバによる要求の処理を一時中断するための一時中断プロセスを含む、請求項に記載のシステム。
  6. 前記要求制御プロセスが、当該サーバにより受信された要求にタイムスタンプを打刻するためのタイムスタンプ・プロセスを含む、請求項に記載のシステム。
  7. 前記スナップショット・プロセスが、選択した時刻後に受信された要求を特定するため、一時中断された要求を分析するためのプロセスを含む、請求項に記載のシステム。
  8. 前記状態情報を用いて前記記憶ボリュームのコピーを作成するためのアーカイブ・プロセスを更に含む、請求項に記載のシステム。
  9. 前記少なくとも2つのサーバにわたって区分された複数の記憶ボリュームを更に含む、請求項に記載のシステム。
  10. 区分記憶サービスを提供する方法であって、
    少なくとも2つのサーバと当該少なくとも2つのサーバにわたり区分された記憶ボリュームとを提供する段階と、
    少なくとも2つのスナップショット・プロセスを前記少なくとも2つのサーバのそれぞれで動作させる段階であって、当該スナップショット・プロセスが、前記区分記憶ボリュームの状態を表す状態情報を生成するため他のスナップショット・プロセスと動作を調整可能な、動作させる段階とを含む、方法
  11. 前記区分記憶ボリュームの状態を表す状態情報を生成するため、少なくとも他の1つのスナップショット・プロセスと動作を調整する段階を更に含む、請求項10に記載の方法。
  12. 調整する前記段階が、スナップショット処理を生成するコマンドにタイムスタンプを打刻する段階を含む、請求項11に記載の方法
  13. スナップショット・プロセスを動作させる前記段階が、当該サーバにより受信された要求を処理するための要求制御プロセスを動作させる段階を含む、請求項10に記載の方法
  14. 前記要求制御プロセスが、当該サーバによる要求の処理を一時中断するための一時中断プロセスを含む、請求項13に記載の方法
  15. 前記要求制御プロセスが、当該サーバにより受信された要求にタイムスタンプを打刻する、請求項13に記載の方法
  16. 選択した時刻後に受信された要求を特定するため、一時中断された要求を分析する段階を更に含む、請求項13に記載の方法
  17. 少なくとも2つのサーバにわたって分散されている記憶ボリュームのスナップショットを生成する方法であって、
    前記少なくとも2つのサーバ上でスナップショット・プロセスを実行する段階と、
    前記スナップショット・プロセスのうち第1のスナップショット・プロセスに管理コマンドを与えて、当該スナップショット・プロセスに、前記区分記憶ボリュームの状態を表す状態情報を生成するよう指示する段階と、
    前記第1スナップショット・プロセスに保留要求の実行を停止させると共に、少なくとも第2のスナップショット・プロセスに指示させて、保留クライアント要求の実行を停止させる段階と、
    前記第2スナップショット・プロセスに、要求の実行が停止されていることを表明させる段階と、
    前記第1スナップショット・プロセスに、そのサーバに維持されている記憶区分の状態を表す状態情報を生成させ、前記第2スナップショット・プロセスにそのサーバに維持されている記憶区分の状態を表す状態情報を生成させるスナップショット・コマンドを生成させる段階とを含む、方法
  18. 前記管理コマンドが、スナップショットが作成されているデータ・ボリュームをサポートしている第2サーバへの準備コマンドを含む、請求項17に記載の方法
  19. 前記状態情報を処理して、前記記憶ボリュームの所定期間保存コピーを生成する段階を更に含む、請求項17に記載の方法
  20. 前記第1及び第2スナップショット・プロセスに、前記状態情報が生成された後に保留中の要求を解放させる段階を更に含む、請求項17に記載の方法
  21. ストレージ・エリア・ネットワークであって、
    少なくとも2つのサーバを備えたデータ・ネットワークと、
    前記少なくとも2つのサーバにわたり区分された記憶ボリュームと、
    前記少なくとも2つのサーバのそれぞれで動作する少なくとも2つのスナップショット・プロセスであって、前記区分記憶ボリュームの状態を表す状態情報を生成するため他のスナップショット・プロセスと動作を調整可能な、スナップショット・プロセスとを含む、ストレージ・エリア・ネットワーク。
JP2010005548A 2003-01-21 2010-01-14 データ記憶管理システム Expired - Lifetime JP5369007B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US44181003P 2003-01-21 2003-01-21
US60/441,810 2003-01-21
US10/761,884 US7937551B2 (en) 2003-01-21 2004-01-20 Storage systems having differentiated storage pools
US10/761,884 2004-01-20

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006501087A Division JP4581095B2 (ja) 2003-01-21 2004-01-21 データ記憶管理システム

Publications (2)

Publication Number Publication Date
JP2010134948A true JP2010134948A (ja) 2010-06-17
JP5369007B2 JP5369007B2 (ja) 2013-12-18

Family

ID=32776086

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006501087A Expired - Lifetime JP4581095B2 (ja) 2003-01-21 2004-01-21 データ記憶管理システム
JP2010005548A Expired - Lifetime JP5369007B2 (ja) 2003-01-21 2010-01-14 データ記憶管理システム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006501087A Expired - Lifetime JP4581095B2 (ja) 2003-01-21 2004-01-21 データ記憶管理システム

Country Status (6)

Country Link
US (2) US7937551B2 (ja)
EP (3) EP1588357B1 (ja)
JP (2) JP4581095B2 (ja)
AT (1) ATE405882T1 (ja)
DE (1) DE602004015935D1 (ja)
WO (1) WO2004066278A2 (ja)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090259816A1 (en) * 2001-12-26 2009-10-15 Cisco Technology, Inc. Techniques for Improving Mirroring Operations Implemented In Storage Area Networks and Network Based Virtualization
US9009427B2 (en) * 2001-12-26 2015-04-14 Cisco Technology, Inc. Mirroring mechanisms for storage area networks and network based virtualization
US20090259817A1 (en) * 2001-12-26 2009-10-15 Cisco Technology, Inc. Mirror Consistency Checking Techniques For Storage Area Networks And Network Based Virtualization
US7627650B2 (en) 2003-01-20 2009-12-01 Equallogic, Inc. Short-cut response for distributed services
US7461146B2 (en) 2003-01-20 2008-12-02 Equallogic, Inc. Adaptive storage block data distribution
US20040210724A1 (en) * 2003-01-21 2004-10-21 Equallogic Inc. Block data migration
US7937551B2 (en) 2003-01-21 2011-05-03 Dell Products L.P. Storage systems having differentiated storage pools
US8037264B2 (en) * 2003-01-21 2011-10-11 Dell Products, L.P. Distributed snapshot process
US8499086B2 (en) * 2003-01-21 2013-07-30 Dell Products L.P. Client load distribution
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7711835B2 (en) * 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
JP4728667B2 (ja) * 2005-03-08 2011-07-20 日本電気株式会社 ディスク管理装置及びディスク負荷情報取得方法
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20080126789A1 (en) * 2006-08-28 2008-05-29 Jones Carl E Method and Apparatus for Generating an Optimal Number of Spare Devices Within a RAID Storage System Having Multiple Storage Device Technology Classes
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US7783917B2 (en) * 2007-02-26 2010-08-24 International Business Machines Corporation Selection of data arrays
US7937618B2 (en) * 2007-04-26 2011-05-03 International Business Machines Corporation Distributed, fault-tolerant and highly available computing system
JP2009043016A (ja) * 2007-08-08 2009-02-26 Hitachi Ltd ストレージシステム及びストレージシステムのアクセス均等化方法
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8886909B1 (en) 2008-03-31 2014-11-11 Emc Corporation Methods, systems, and computer readable medium for allocating portions of physical storage in a storage array based on current or anticipated utilization of storage array resources
US7984254B2 (en) * 2008-04-04 2011-07-19 Vmware, Inc. Method and system for generating consistent snapshots for a group of data objects
US8443369B1 (en) 2008-06-30 2013-05-14 Emc Corporation Method and system for dynamically selecting a best resource from each resource collection based on resources dependencies, prior selections and statistics to implement an allocation policy
US8108575B2 (en) * 2009-02-03 2012-01-31 International Business Machines Corporation Methods of multi-server application synchronization without stopping I/O
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8452932B2 (en) 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US8924681B1 (en) * 2010-03-31 2014-12-30 Emc Corporation Systems, methods, and computer readable media for an adaptative block allocation mechanism
US8407445B1 (en) 2010-03-31 2013-03-26 Emc Corporation Systems, methods, and computer readable media for triggering and coordinating pool storage reclamation
US8443163B1 (en) 2010-06-28 2013-05-14 Emc Corporation Methods, systems, and computer readable medium for tier-based data storage resource allocation and data relocation in a data storage array
US9311002B1 (en) 2010-06-29 2016-04-12 Emc Corporation Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US8984241B2 (en) * 2010-07-07 2015-03-17 Nexenta Systems, Inc. Heterogeneous redundant storage array
US8954669B2 (en) 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8539172B1 (en) 2010-11-08 2013-09-17 Infinidat Ltd. System and method for accessing data in an external virtual memory
US8645659B1 (en) 2010-12-01 2014-02-04 Infinidat Ltd. Method for managing volumes/snapshots in pools of external virtual memory
US9430367B1 (en) * 2011-04-18 2016-08-30 American Megatrends, Inc. Systems and methods for active raid
US9146683B2 (en) * 2011-04-20 2015-09-29 Seagate Technology Llc Logical block address mapping
US8365023B2 (en) 2011-04-29 2013-01-29 International Business Machines Corporation Runtime dynamic performance skew elimination
US9246994B2 (en) 2011-06-23 2016-01-26 Telefonaktiebolaget L M Ericsson (Publ) Method and system for distributing a network application among a plurality of network sites on a shared network
US8745327B1 (en) 2011-06-24 2014-06-03 Emc Corporation Methods, systems, and computer readable medium for controlling prioritization of tiering and spin down features in a data storage system
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
WO2013014694A1 (en) * 2011-07-22 2013-01-31 Hitachi, Ltd. Information processing system and method for controlling the same
US9069468B2 (en) 2011-09-11 2015-06-30 Microsoft Technology Licensing, Llc Pooled partition layout and representation
US8751641B2 (en) * 2011-09-15 2014-06-10 International Business Machines Corporation Optimizing clustered network attached storage (NAS) usage
US9158458B2 (en) * 2011-09-21 2015-10-13 Os Nexus, Inc. Global management of tiered storage resources
EP2573679B1 (en) * 2011-09-21 2014-08-20 Nexenta Systems, Inc. Methods and systems for heterogeneous data volume
US8914521B2 (en) * 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment
US9087201B2 (en) 2012-01-05 2015-07-21 Infinidat Ltd. System and methods for host enabled management in a storage system
US9632889B2 (en) * 2012-11-12 2017-04-25 Oracle International Corporation Method for the optimization of performance, capacity and redundancy in digital data storage systems
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9298617B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning
US9619404B2 (en) 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability
US9423981B2 (en) 2013-04-16 2016-08-23 International Business Machines Corporation Logical region allocation with immediate availability
US9298398B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
US9104332B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
US9329938B2 (en) 2013-04-16 2016-05-03 International Business Machines Corporation Essential metadata replication
US9104597B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Destaging cache data using a distributed freezer
US9323771B2 (en) 2013-04-24 2016-04-26 Dell Products, Lp Efficient rename in a lock-coupled traversal of B+tree
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US9400819B2 (en) 2013-06-07 2016-07-26 Dell Products, Lp Updating object attributes in a lock-coupled namespace traversal
US9311019B2 (en) 2013-07-29 2016-04-12 Infinidat Ltd. Storage system and method for accessing logical volumes
US9880883B2 (en) 2013-08-05 2018-01-30 Nec Corporation Virtual resource control system determining new allocation of resources at a hub
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US9274722B2 (en) 2013-12-06 2016-03-01 Concurrent Ventures, LLP System, method and article of manufacture for monitoring, controlling and improving storage media system performance
WO2015085313A1 (en) * 2013-12-06 2015-06-11 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on a mid-range performance level
US9436404B2 (en) 2013-12-06 2016-09-06 Concurrent Ventures, LLC System and method for dynamically load balancing across storage media devices having fast access rates
US10048895B2 (en) 2013-12-06 2018-08-14 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on a mid-range performance level
US10235096B2 (en) 2013-12-06 2019-03-19 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on an average or discounted average sustained performance level
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
JP6375849B2 (ja) * 2014-10-09 2018-08-22 富士通株式会社 ファイルシステム、管理装置の制御プログラム、および、ファイルシステムの制御方法
US20170371782A1 (en) * 2015-01-21 2017-12-28 Hewlett Packard Enterprise Development Lp Virtual storage
CN107589992A (zh) * 2017-08-02 2018-01-16 北京大学(天津滨海)新代信息技术研究院 一种基于群体智能的容器化应用负载调度方法
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
CN108737573A (zh) * 2018-06-28 2018-11-02 郑州云海信息技术有限公司 一种分布式存储集群及其服务响应控制方法、装置和设备
US11061787B2 (en) * 2019-04-23 2021-07-13 Micron Technology, Inc. Custom error recovery in selected regions of a data storage device
US11030106B2 (en) * 2019-06-18 2021-06-08 Western Digital Technologies, Inc. Storage system and method for enabling host-driven regional performance in memory
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
US11954344B2 (en) * 2021-06-16 2024-04-09 EMC IP Holding Company LLC Host device comprising layered software architecture with automated tiering of logical storage devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082083A1 (en) * 2000-04-24 2001-11-01 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US6292181B1 (en) * 1994-09-02 2001-09-18 Nec Corporation Structure and method for controlling a host computer using a remote hand-held interface device
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
AU6380496A (en) * 1995-06-07 1996-12-30 E-Comm Incorporated Handheld remote computer control and methods for secured int eractive real-time telecommunications
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US5978844A (en) * 1995-09-08 1999-11-02 Hitachi, Ltd. Internetworking apparatus for load balancing plural networks
US5944804A (en) 1995-09-11 1999-08-31 Intel Corporation Super pipelined architecture for transmit flow in a network controller
US6108727A (en) * 1995-10-16 2000-08-22 Packard Bell Nec System having wireless interface device for storing compressed predetermined program files received from a remote host and communicating with the remote host via wireless link
US6141688A (en) * 1995-10-16 2000-10-31 Nec Corporation Broadcast search for available host
WO1997024668A1 (en) 1995-12-28 1997-07-10 Ipl Systems, Inc. Dasd storage back up including back up synchronization across multiple dasd
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
SE507720C2 (sv) * 1997-06-12 1998-07-06 Telia Ab Arrangemang för lastbalansering i datornät
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6070191A (en) 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
JPH11136308A (ja) * 1997-11-04 1999-05-21 Nec Home Electron Ltd ネットワークにおけるアクセス方式
US6360262B1 (en) * 1997-11-24 2002-03-19 International Business Machines Corporation Mapping web server objects to TCP/IP ports
US6230246B1 (en) * 1998-01-30 2001-05-08 Compaq Computer Corporation Non-intrusive crash consistent copying in distributed storage systems without client cooperation
US6498791B2 (en) 1998-04-03 2002-12-24 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
AU3861399A (en) 1998-04-15 1999-11-01 Hewlett-Packard Company Distributed processing over a network
US6772350B1 (en) * 1998-05-15 2004-08-03 E.Piphany, Inc. System and method for controlling access to resources in a distributed environment
US6189079B1 (en) * 1998-05-22 2001-02-13 International Business Machines Corporation Data copy between peer-to-peer controllers
US6341311B1 (en) * 1998-05-29 2002-01-22 Microsoft Corporation Directing data object access requests in a distributed cache
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6212565B1 (en) * 1998-08-26 2001-04-03 Sun Microsystems, Inc. Apparatus and method for improving performance of proxy server arrays that use persistent connections
US6199112B1 (en) * 1998-09-23 2001-03-06 Crossroads Systems, Inc. System and method for resolving fibre channel device addresses on a network using the device's fully qualified domain name
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6212606B1 (en) * 1998-10-13 2001-04-03 Compaq Computer Corporation Computer system and method for establishing a standardized shared level for each storage unit
US6226684B1 (en) * 1998-10-26 2001-05-01 Pointcast, Inc. Method and apparatus for reestablishing network connections in a multi-router network
US6195682B1 (en) * 1998-10-27 2001-02-27 International Business Machines Corporation Concurrent server and method of operation having client-server affinity using exchanged client and server keys
US7000069B2 (en) * 1999-04-05 2006-02-14 Hewlett-Packard Development Company, L.P. Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks
US6275898B1 (en) * 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US6421723B1 (en) * 1999-06-11 2002-07-16 Dell Products L.P. Method and system for establishing a storage area network configuration
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US6766348B1 (en) * 1999-08-03 2004-07-20 Worldcom, Inc. Method and system for load-balanced data exchange in distributed network-based resource allocation
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
JP3770831B2 (ja) 1999-08-18 2006-04-26 富士通株式会社 ネットワークの負荷分散を行うコンピュータ、監視装置、その方法およびそのためのプログラムを記録した記録媒体
JP4001698B2 (ja) * 1999-10-14 2007-10-31 富士通株式会社 負荷分散システム
WO2001038983A2 (en) 1999-11-22 2001-05-31 Utstarcom, Inc. Distributed cache synchronization protocol
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US6742059B1 (en) * 2000-02-04 2004-05-25 Emc Corporation Primary and secondary management commands for a peripheral connected to multiple agents
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
JP2004526218A (ja) * 2000-08-24 2004-08-26 ボルテール アドバンスト データ セキュリティ リミテッド 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法
US6813635B1 (en) * 2000-10-13 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for distributing load among redundant independent stateful world wide web server sites
AU2002236689A1 (en) 2000-10-20 2002-05-21 Wavexpress, Inc. Synchronous control of media in a peer-to-peer network
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
WO2002061525A2 (en) * 2000-11-02 2002-08-08 Pirus Networks Tcp/udp acceleration
US6434683B1 (en) * 2000-11-07 2002-08-13 Storage Technology Corporation Method and system for transferring delta difference data to a storage device
US6901414B2 (en) 2000-11-30 2005-05-31 Storage Technology Corporation Method and system of storing a main data file and deltas in a storage device for determining new data files from the main data file and the deltas
US6839802B2 (en) * 2000-12-08 2005-01-04 International Business Machines Corporation Method, system, and program for writing files to zone formatted storage media to improve data transfer rates
US6850982B1 (en) * 2000-12-19 2005-02-01 Cisco Technology, Inc. Methods and apparatus for directing a flow of data between a client and multiple servers
US6957433B2 (en) * 2001-01-08 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for adaptive performance optimization of data processing systems
AU2002243522A1 (en) 2001-01-12 2002-07-24 Epicrealm Operating Inc. Method and system for community data caching
US7383329B2 (en) * 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
JP2002278823A (ja) * 2001-03-21 2002-09-27 Toshiba Corp コンテンツ配信システムにおける負荷分散方法及び同システムにおけるサーバ計算機
EP1381977A1 (en) * 2001-04-26 2004-01-21 Creekpath Systems, Inc. A system for global and local data resource management for service guarantees
GB2376765B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments with verifiable environment identities
US7343410B2 (en) * 2001-06-28 2008-03-11 Finisar Corporation Automated creation of application data paths in storage area networks
KR100392382B1 (ko) * 2001-07-27 2003-07-23 한국전자통신연구원 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법
US6910150B2 (en) * 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
EP1331766A1 (en) 2001-12-20 2003-07-30 Alcatel A telecommunications system employing virtual service network architecture
US7085829B2 (en) * 2001-12-31 2006-08-01 Innomedia, Pte Ltd. Method and system for an intelligent proxy server for workload balancing by workload shifting
US6732171B2 (en) 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7571206B2 (en) * 2002-08-12 2009-08-04 Equallogic, Inc. Transparent request routing for a partitioned application service
US7725568B2 (en) * 2002-09-09 2010-05-25 Netapp, Inc. Method and apparatus for network storage flow control
EP1550053A4 (en) * 2002-09-18 2009-03-25 Netezza Corp ARCHITECTURE OF THE MIRROR DISK FOR DATABASE DEVICES
KR100439675B1 (ko) 2002-10-24 2004-07-14 한국전자통신연구원 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법
US7546482B2 (en) * 2002-10-28 2009-06-09 Emc Corporation Method and apparatus for monitoring the storage of data in a computer system
JP4199993B2 (ja) 2002-11-27 2008-12-24 株式会社日立製作所 スナップショット取得方法
US7461146B2 (en) * 2003-01-20 2008-12-02 Equallogic, Inc. Adaptive storage block data distribution
US7627650B2 (en) * 2003-01-20 2009-12-01 Equallogic, Inc. Short-cut response for distributed services
US7937551B2 (en) 2003-01-21 2011-05-03 Dell Products L.P. Storage systems having differentiated storage pools
US8037264B2 (en) * 2003-01-21 2011-10-11 Dell Products, L.P. Distributed snapshot process
US20040210724A1 (en) * 2003-01-21 2004-10-21 Equallogic Inc. Block data migration
US7127577B2 (en) * 2003-01-21 2006-10-24 Equallogic Inc. Distributed snapshot process
US7043864B1 (en) * 2004-10-08 2006-05-16 Reed Mark A Spear gun sight assembly

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082083A1 (en) * 2000-04-24 2001-11-01 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers
JP2003532191A (ja) * 2000-04-24 2003-10-28 マイクロソフト コーポレイション 複数のスナップショットプロバイダを共通に調整し、管理するための方法およびシステム

Also Published As

Publication number Publication date
ATE405882T1 (de) 2008-09-15
WO2004066278A2 (en) 2004-08-05
JP4581095B2 (ja) 2010-11-17
WO2004066278A3 (en) 2006-03-02
EP2282276A1 (en) 2011-02-09
EP2159718A1 (en) 2010-03-03
EP1588357A2 (en) 2005-10-26
US20110208943A1 (en) 2011-08-25
EP1588357B1 (en) 2008-08-20
US20040153606A1 (en) 2004-08-05
EP2159718B1 (en) 2018-07-11
US7937551B2 (en) 2011-05-03
US8209515B2 (en) 2012-06-26
EP2282276B1 (en) 2019-03-20
DE602004015935D1 (de) 2008-10-02
JP2006522961A (ja) 2006-10-05
JP5369007B2 (ja) 2013-12-18

Similar Documents

Publication Publication Date Title
JP5369007B2 (ja) データ記憶管理システム
US20040210724A1 (en) Block data migration
EP3830681B1 (en) Synchronous replication based cutover engine
US11228647B2 (en) System and method for sharing SAN storage
US8140791B1 (en) Techniques for backing up distributed data
US7962609B2 (en) Adaptive storage block data distribution
US20210303166A1 (en) Object store mirroring
US10715460B2 (en) Opportunistic resource migration to optimize resource placement
US7707151B1 (en) Method and apparatus for migrating data
US11314444B1 (en) Environment-sensitive distributed data management
US8966197B2 (en) Distributed snapshot process
US20030120676A1 (en) Methods and apparatus for pass-through data block movement with virtual storage appliances
EP1654648B1 (en) Hierarchical management of the dynamic allocation of resources in a multi-node system
Honnutagi The Hadoop distributed file system
EP3942397A1 (en) Timestamp consistency for synchronous replication
US7627650B2 (en) Short-cut response for distributed services
EP1588360B1 (en) System and method for distributed block level storage

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120831

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121205

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130703

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130710

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: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130913

R150 Certificate of patent or registration of utility model

Ref document number: 5369007

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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