JP2013527524A - 動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム - Google Patents

動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2013527524A
JP2013527524A JP2013504205A JP2013504205A JP2013527524A JP 2013527524 A JP2013527524 A JP 2013527524A JP 2013504205 A JP2013504205 A JP 2013504205A JP 2013504205 A JP2013504205 A JP 2013504205A JP 2013527524 A JP2013527524 A JP 2013527524A
Authority
JP
Japan
Prior art keywords
data
storage
file system
cluster
computing
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
JP2013504205A
Other languages
English (en)
Other versions
JP5643421B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013527524A publication Critical patent/JP2013527524A/ja
Application granted granted Critical
Publication of JP5643421B2 publication Critical patent/JP5643421B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0643Management of files
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】動的なブロック・サイズ粒度を使用して、一の計算クラスタ内の異なるタイプのアプリケーションについて一のファイル・システムを最適化すること。
【解決手段】本発明の方法は、(a)前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約するステップを含む。各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成る。本方法は、(b)ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用するステップと、(c)共用ストレージ・サブシステムの単一データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内のデータ・アクセス動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用するステップをさらに含む。
【選択図】 図2

Description

本発明は、データ・ストレージに係り、さらに詳細に説明すれば、動的なブロック・サイズ粒度(dynamic block size granularity)を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化することに係る。
ファイル・システムは、ファイル及びデータを格納し且つ編成する方法である。ファイル・システムは、ファイル及びデータを維持するためにストレージ・サブシステムを使用する。ファイル・システムは、クライアント・コンピュータがストレージ・サブシステム上にデータのファイルを作成し、格納し且つアクセスすることを可能にするために、当該ストレージ・サブシステムに論理構造を課す管理構造である。分散ファイル・システムは、ネットワーク上の複数のクライアント用のファイル及びストレージ資源の共用をサポートする、ファイル・システムである。クラスタ・ファイル・システムは、一種の分散ファイル・システムであって、計算クラスタ内の複数の計算ノードが共用ストレージ・サブシステム上に格納された同じデータに同時にアクセスすることを可能にする。
計算クラスタは、クライアント・システムに対しデータ、アプリケーション及び他のシステム資源を提供するように互いに対話する複数の計算ノードを備えた、単一の実体としてのシステムである。計算クラスタは、計算ノード及び共用ストレージを当該クラスタに追加することを可能にすることにより、スケーラビリティ及び信頼性を提供する。ファイル・システムは、計算クラスタ内のデータのストレージを処理するために使用される。格納すべきデータに対しストレージの特定の領域を割り振ることにより、計算クラスタ内のファイル・システムによってストレージが割り振られる。クラスタ内の計算ノードにとって、ファイル・システムは、当該クラスタ・ファイル・システムの共用ストレージ・サブシステムへの直接アクセスを有するローカル資源として見える。
クラウド計算(Cloud computing)は、クライアントに対し遠隔の仮想化された計算資源をサービスとして提供する、計算モデルである。クラウド計算は、ソフトウェア及びハードウェア資源をサービスとしてホストし且つ要求に応じてこれらの資源をネットワークを介して遠隔的に配信することにより、クライアントに対しソフトウェア及びハードウェア資源を提供する。このようにすると、エンド・ユーザは、インフラストラクチャ及び処理に投資することなく、要求に応じて計算資源を利用することができる。一般に、クラウド計算用の基礎となるインフラストラクチャは、互いに連携して動作する複数サーバの大規模分散クラスタから成る。
共用ストレージを使用する従来のクラスタ・ファイル・システムは、データへの計算の配信、すなわち大規模データ・セットを処理するデータ集約型アプリケーション(例えば、データ分析アプリケーション)をサポートするのに必要な機能をサポートしない。また、共用ストレージを使用するクラスタ・ファイル・システム用のデフォルト・ブロック・サイズは、小さくなっており、そのため、1つのデータ・ブロック当たり1つのタスクをスケジュールするデータ集約型アプリケーション用の高いタスク・オーバーヘッドに結びつく。データ集約型アプリケーションを稼働させる基本的ストレージ・アーキテクチャは、インターネット規模のファイル・システム(Internet-scale file system)に基づいている。かかるインターネット規模のファイル・システムは、データ集約型アプリケーションに適した特殊なファイル・システムであるが、従来型アプリケーションの性能要件をサポートしない。
従って、本発明は、第1の側面において、動的なブロック・サイズ粒度を使用して、一の計算クラスタ内の異なるタイプのアプリケーションについて一のファイル・システムを最適化する方法を提供する。前記方法は、
(a)前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域(storage allocation region)を予約するステップを含み、
各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成り、
(b)ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度(block allocation granularity)として使用するステップと、
(c)共用ストレージ・サブシステムの単一データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内のデータ・アクセス動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用するステップをさらに含む。
前記方法は、一の計算動作用のデータを、前記予約済みストレージ割り振り領域の少なくとも1つに割り振るステップをさらに含む。前記方法は、前記計算クラスタ内の一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約するステップをさらに含む。前記方法は、一の計算動作を前記計算クラスタ内の一の計算ノードに送信するステップをさらに含み、当該計算動作用のデータは、当該計算ノードのローカル接続ストレージに割り振られている。前記方法は、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データ・ブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製するステップをさらに含む。前記方法は、一のデータ・アクセス動作用のデータを前記共用ストレージ・サブシステムに割り振るステップをさらに含む。前記方法は、前記共用ストレージ・サブシステム及びローカル接続ストレージに割り振り済みの各データ・ブロックの前記ファイル・システム内の位置を追跡するステップをさらに含む。好ましくは、前記データ・アクセス動作は、記帳(bookkeeping)動作、データ転送動作、キャッシュ管理動作及びプリフェッチ動作から成るグループから選択される。前記方法は、一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開するステップをさらに含む。好ましくは、前記計算クラスタは、一の遠隔クライアント用の計算サービスをホストする。
第2の側面では、一の計算クラスタを備え、動的なブロック・サイズ粒度を使用して、当該計算クラスタ内の異なるタイプのアプリケーションについて一のファイル・システムを最適化するシステムが提供される。
前記計算クラスタは、
(a)複数の計算ノードを有し、当該複数の計算ノードの各々は、ローカル接続ストレージを含み、
(b)前記複数の計算ノードの各々に結合された共用ストレージ・サブシステムと、
(c)前記共用ストレージ・サブシステム及び前記複数の計算ノードの各々に結合されたファイル・システム・マネージャをさらに有し、
前記ファイル・システム・マネージャ(c)は、
(c1)前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約し、
各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成り、
(c2)ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用し、
(c3)共用ストレージ・サブシステムの単一データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内のデータ・アクセス動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用する。
好ましくは、前記ファイル・システム・マネージャは、一の計算動作を前記計算クラスタ内の一の計算ノードに送信し、当該計算動作用のデータは、当計算ノードのローカル接続ストレージに割り振られている。好ましくは、前記ファイル・システム・マネージャは、一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約する。好ましくは、前記ファイル・システム・マネージャは、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データ・ブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製し、一の計算動作を有する前記第1の計算ノードに障害があるときは、前記第2の計算ノードに複製済みの当該計算動作に関連するデータを使用して、前記第2の計算ノード上で当該計算動作を再開する。好ましくは、前記ファイル・システム・マネージャは、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データ・ブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製し、前記一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開する。
第3の側面では、第1の側面に係る前記方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムが提供される、
本発明は、ファイル・システム内のフラグメント化を防止し、最適の順次読み取り及び書き込みを維持し、計算ノード・レベルの局所性を可能にするという効果を奏する。また、本発明は、ストレージ・コストを最小化し、高度に並列式のアプリケーションが大量のデータを処理することができるように、計算クラスタを何千もの計算ノードまで拡大し、データ集約型アプリケーションにおいて一般的な大きなファイルを効率的にサポートすることができるという効果を奏する。さらに、本発明は、一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開することができるという効果を奏する。
一実施形態に従った、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについて最適化されるファイル・システムを有する計算クラスタを示す図である。 一実施形態に従った、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法を示すフローチャートである。 一実施形態に従った、ファイル・システム内に格納すべき計算動作用のデータをストライプするためのブロック割り振り方式を示す図である。 一実施形態に従った、ファイル・システム内に格納すべきデータ・アクセス動作用のデータをストライプするためのブロック割り振り方式を示す図である。 一実施形態に従った、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化するプロセスを実装することができるシステムのブロック図を示す。
以下の説明は、本発明の一般原理を説明することを目的とし、本明細書に開示した発明概念を限定することを目的とするものではない。さらに、本明細書に開示した特定の機能は、種々の可能な組み合わせの各々において本明細書に開示した他の機能と結合して使用することができる。本明細書において特別に定義しない限り、全ての用語は、本明細書から暗示される意味、当業者によって理解される意味及び/又は辞書等において定義される意味を含む、最も広義の意味を包含するように解釈されるべきである。
以下の説明は、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化するための幾つかの好ましい実施形態を開示することに加えて、その動作及び/又は部分を開示する。以下の説明は、本発明の代表的実施形態に従った、ストレージ割り振りプロセス及びストレージ装置を記述することに向けられているが、本明細書に開示した請求項を含む教示内容は、クラウド計算環境内のシステム、装置及びアプリケーションを含む、他のタイプのシステム、装置及びアプリケーションに対する広範な応用を有し得ることに留意すべきである。
本発明の実施形態は、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化することに係る。共用ストレージを使用するクラスタ・ファイル・システムは、データへの計算の配信、すなわち大規模データ・セットを処理するデータ集約型アプリケーション(例えば、データ分析アプリケーション)をサポートするのに必要な機能をサポートしない。また、共用ストレージを使用するクラスタ・ファイル・システム用のデフォルト・ブロック・サイズは、小さくなっており、そのため、1つのデータ・ブロック当たり1つのタスクをスケジュールするデータ集約型アプリケーション用の高いタスク・オーバーヘッドに結びつく。データ集約型アプリケーションを稼働させる基本的ストレージ・アーキテクチャは、標準的なPOSIX(Portable Operating System Interface for Unix)インタフェースを提供しない、インターネット規模のファイル・システムに基づいている(「Unix」は登録商標)。かかるインターネット規模のファイル・システムは、データ集約型アプリケーションに適した特殊なファイル・システムであるが、従来型アプリケーションの性能要件をサポートしない。
一実施形態では、単一の計算クラスタ内で従来型アプリケーション及びデータ集約型アプリケーションをサポートするために、ファイル・システムのブロック割り振り方式に対する変更が提示される。例えば、POSIXストレージ・スタックが、POSIXベースの従来型クラスタ・ファイル・システム上に構築されたクラウド分析をサポートすることができるように、ファイル・システムのデータ割り振りが変更されるということである。一実施形態では、計算クラスタのファイル・システムは、データ集約型アプリケーションの計算動作に関連するデータ用の大きなブロック粒度と、従来型アプリケーションのデータ・アクセス動作に関連するデータ用の小さなブロック粒度の何れか一方を選択することができる。代表的実施形態では、このファイル・システムのラウンドロビン・ブロック割り振り方式は、1セットの連続ブロック(大きなブロック)を、計算動作用のデータをストライプするための割り振り粒度として使用するように修正される。他の代表的実施形態では、このファイル・システムは、従来型アプリケーションの全てのデータ・アクセス動作用にデフォルト・ブロック・サイズ粒度(小さなブロック・サイズ)を内部的に使用する。
図1は、一実施形態に従った、動的なブロック・サイズ粒度を使用して、異なるタイプのアプリケーションについて最適化されるファイル・システムを有する計算クラスタ102を示す。計算クラスタ102は、アプリケーション・ノードとも称する、複数の計算ノード104a〜104nを含む。代表的実施形態では、計算クラスタ102は、何千もの計算ノード104a〜104nに拡大することができるハードウェア・アーキテクチャを含む。
各計算ノード104a〜104nは、ローカル接続ストレージ106a〜106nに結合される。例えば、ローカル接続ストレージ106a〜106nは、計算ノード104a〜104nに対し物理的に内部のものであるか、又はディスク・アレイ装置を使用して直接に接続された物理的に外部のものとすることができる。一実施形態では、ローカル接続ストレージ106a〜106nは、標準インタフェースを通して、計算ノード104a〜104nに直接的に接続されたストレージ装置を含む。例えば、標準インタフェースは、ファイバ・チャネル(FC)、小型コンピュータ用周辺機器インタフェース(SCSI)、統合ドライブ・エレクトロニクス(IDE)等を含む。代表的実施形態では、各計算ノード104a〜104nは、ローカル接続ストレージ106a〜106nとして、750ギガバイト(GB)の容量を有する4つのシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)ドライブを含む。
計算クラスタ102は、計算クラスタ102のファイル・システムを管理するように構成されたファイル・システム・マネージャ108を含む。例えば、計算クラスタ102のファイル・システムは、「IBM General Parallel File System(GPFS)」を含んでもよい(「IBM」は登録商標、「GeneralParallel File System」及び「GPFS」は商標)。代表的実施形態では、ファイル・システム・マネージャ108は、ソフトウェアの形式で具体化され、計算クラスタ102内の任意の独立の計算ノードから稼働させることができる。
さらに、計算クラスタ102は、共用ストレージ・サブシステム114を含む。例えば、共用ストレージ・サブシステム114は、ストレージ・エリア・ネットワーク(SAN)装置を含むことができる。共用ストレージ・サブシステム114は、ストレージ・スイッチ112に結合される。計算ノード104a〜104nは、共用ストレージ・サブシステム114にアクセスするために、ストレージ・スイッチ112に結合される。ファイル・システム・マネージャ108は、共用ストレージ・サブシステム114を使用して、計算クラスタ102のファイル・システムを管理するために、ストレージ・スイッチ112に結合される。共用ストレージ・サブシステム114は、計算ノード104a〜104nに対し、同じデータへの同時アクセスを提供するように構成される。共用ストレージ・サブシステム114は、計算ノード104a〜104nにわたって、書き込み帯域幅の共用を可能にする。一実施形態では、共用ストレージ・サブシステム114は、ハードウェア障害を回避するために、基本的なデータ保護技術を使用するように設計されている。例えば、共用ストレージ・サブシステム114は、データ保護を提供するために、新磁気ディスク制御機構(RAID)の技術を使用することができる。
さらに、計算クラスタ102は、スイッチ・ネットワーク110を含む。スイッチ・ネットワーク110は、ファイル・システム内の諸コンポーネント用の相互接続を提供するように構成される。一実施形態では、スイッチ・ネットワーク110は、計算ノード104a〜104n及びファイル・システム・マネージャ108用の相互接続を提供するように構成される。代表的実施形態では、スイッチ・ネットワーク110は、リナックス(登録商標)・ソフトウェアで稼働する1ギガビット/秒(gbps)のスイッチ間リンクを備えた、計算ノード・ラックごとのギガビット・イーサネット(登録商標)・スイッチである。他の実施形態では、スイッチ・ネットワーク110は、ネットワーク116上のクライアント・ノード118へのアクセスを提供するようにさらに構成される。例えば、ネットワーク116は、広域ネットワーク(WAN)等を含む。
一実施形態では、計算クラスタ102は、遠隔クライアント118用のデータ及び計算サービスをホストする。例えば、計算クラスタ102は、遠隔クライアント用のデータ及び計算サービスを或るデータ・サイトにおいてホストするためのクラウド計算サービスを可能にする。代表的実施形態では、計算クラスタ102は、ネットワーク116上の遠隔クライアント118のために、データ分析アプリケーションの稼働及び当該データ分析アプリケーションに関連するデータの格納をホストするように構成される。従って、計算クラスタ102は、大きなデータ・セットについてデータ集約型アプリケーションを稼働させるために、クラウドにおいて並列性及びスケーラビリティを可能にする。例えば、データ集約型アプリケーションは、大きな計算タスクを1セットのより小さな並列化計算に分解する、データ分析アプリケーションを含む。
図2は、一実施形態に従った、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法200のフローチャートを示す。ステップ202では、ファイル・システム・マネージャ108は、計算ノード104a〜104nごとに所定数のストレージ割り振り領域を予約する。各ストレージ割り振り領域は、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成る。一実施形態では、ファイル・システム・マネージャ108は、計算ノード104a〜104nごとに連続的なストレージ割り振り領域のプールをプリフェッチする。例えば、連続的なストレージ割り振り領域のプールをプリフェッチすると、ネットワーク待ち時間及びアプリケーション性能への影響を防止することができる。従って、各計算ノード104a〜104nは、連続的なストレージ割り振り領域のプールを前もって準備しているから、入力/出力(I/O)要求のパス内にネットワーク待ち時間を招かないであろう。
代表的実施形態では、前記所定数は10である。例えば、ファイル・システム・マネージャ108は、計算ノード104a〜104nごとに連続的な10個のストレージ割り振り領域のプールをプリフェッチする。他の実施形態では、前記所定数を5〜200の範囲とすることができる。前記所定数は、データ・ブロックについて使用される連続性のレベル、計算クラスタ102内でサポートされているアプリケーションのタイプ、使用されるファイル・システム及び計算クラスタ102内のアプリケーションの性能要件に基づいて、その範囲を定めることができる。
ステップ204では、ファイル・システム・マネージャ108は、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、ファイル・システム内に格納すべき(計算ノード104a〜104nからの)計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用する。一実施形態では、ファイル・システム・マネージャ108は、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク上にある1セットの連続データ・ブロック(大きなデータ・ブロック又は大きなブロック・サイズ粒度)を、ファイル・システム内に格納すべき計算動作用のデータをストライプするための割り振り粒度として使用する。例えば、ファイル・システム・マネージャ108が、格納すべき計算動作用のデータを割り振るために大きなブロック・サイズ粒度を使用するのは、小さなブロック・サイズがデータ集約型アプリケーションについて高いタスク・オーバーヘッドに帰着するという理由による。従って、ファイル・システムのデータ割り振り及び計算クラスタ12のデータ・レイアウト情報は、大きなブロック・サイズ粒度を使用してデータ集約型アプリケーションの要件をサポートするように変更される。
単一ブロックのブロック・サイズ粒度は、変更することができる。単一ブロックのデフォルト・ブロック・サイズは、性能要件及びトレードオフ、並びに使用されたファイル・システムに依存して、或る範囲で変更することができる。例えば、単一ブロックのブロック・サイズ粒度は、8KB〜16MBの範囲で変更することができる。代表的実施形態では、単一ブロックのブロック・サイズ粒度は、1MBである。例えば、1MBの固定サイズを有するデータ・ブロックは、ファイル・システム内のフラグメント化を防止し、最適の順次読み取り及び書き込みを維持し、計算ノード・レベルの局所性を可能にする。他の代表的実施形態では、単一ブロックのブロック・サイズ粒度は、256KB及び512KBである。
一実施形態では、ファイル・システム内に格納すべき計算動作用のデータをストライプするためのストレージ割り振り領域は、所定のサイズで連続する。例えば、ファイル・システム内に格納すべき計算動作用のデータをストライプするためのストレージ割り振り領域は、8MB〜256MBの範囲で連続し得る。代表的実施形態では、64個の1MBブロックは、ファイル・システム内に格納すべき計算動作用のデータをストライプするための64MBのストレージ割り振り領域にグループ化される。例えば、ファイル・システム内に格納すべき計算動作用のデータをストライプするための大きなブロック粒度は、64個の連続的な1MBデータ・ブロックから成る64MBデータ・ブロックである。他の実施形態では、ファイル・システム内に格納すべき計算動作用のデータをストライプするためのブロック・サイズ粒度は、使用されるファイル・システム及びアプリケーションの性能要件に依存して、変更することができる。
ファイル・システム・マネージャ108は、計算動作用のデータを格納するために共用ストレージ・サブシステム114を使用するのではなく、ローカル接続ストレージ106a〜106nを使用する。例えば、計算動作用のデータを格納するためにローカル接続ストレージ106a〜106nを使用するのは、ローカル接続ストレージ106a〜106nの低コスト及び共用ストレージ・サブシステム114の帯域幅制限という理由による。例えば、データ集約型アプリケーション用のストレージ層は、商品(commodity)コンポーネントであるローカル接続ストレージ106a〜106n上に構築される。その結果、ストレージ・コストを最小化し、高度に並列式のアプリケーションが大量のデータを処理することができるように、計算クラスタ102を何千もの計算ノード104〜104nに拡大することができる。さらに、ローカル接続ストレージ106a〜106nを使用してデータ集約型アプリケーション用のストレージ層を構築すると、データを計算動作に配信するのではなく、計算動作をデータに配信することを可能にすることによって、データ集約型アプリケーションにおいて一般的な大きなファイルを効率的にサポートすることができる。
代表的実施形態では、計算ノード104a〜104nは、データ集約型クラスのアプリケーションを稼働及びサポートし、そこから計算動作が開始される。一実施形態では、データ集約型クラスのアプリケーションは、大きな計算タスクを1セットのより小さな並列化可能計算に分解するアプリケーション等を含む。データ集約型アプリケーションの共通の特徴は、それらが並列であり且つそれらのデータ・アクセス帯域幅要件が他の資源要件を支配するということである。例えば、データ集約型アプリケーションは、マップを使用して区分データ・セットに関するより小さな並行計算に分解されている1つ又はそれ以上の計算をサポートし、計算クラスタ内の大規模計算ノード104a〜104n上で並列化及び実行可能なキー/値ペアに関する機能を減少させる。
代表的実施形態では、データ集約型アプリケーションは、クラウド計算ベースの分析アプリケーションを含む。例えば、クラウド計算ベースの分析アプリケーションは、(衛星イメージ・パターンマッチング・アプリケーションを含む)絶えず変化する大量のデータを処理するための科学アプリケーション、ゲノム配列から生物学的機能を発見するためのアプリケーション、望遠鏡画像から抽出される天文学データ及び磁気共鳴映像法(MRI)データを使用する脳パターンのためのアプリケーション等を含む。他の実施形態では、データ集約型アプリケーションは、インターネット規模のデータ処理アプリケーション(例えば、ウェブ検索アプリケーション、データ・インデックス付け兼マイニング・アプリケーション等)をさらに含む。
ステップ206では、ファイル・システム・マネージャ108は、計算動作用のデータを、少なくとも1つの予約済みストレージ割り振り領域に割り振る。一実施形態では、ファイル・システム・マネージャ108は、ファイル・システムにわたってデータのストライピングを実装する。この場合、大きなファイルが等しいサイズの複数ブロックに分割され、そしてこれらの連続ブロックが異なるディスク上にラウンドロビン式に配置される。代表的実施形態では、ファイル・システム・マネージャ108は、広いストライピングを使用して、1セットの連続データ・ブロックをローカル接続ストレージ106a〜106nにわたってラウンドロビン式にストライプする。例えば、ストライピング技術は、広いストライピング、狭いストライピング、ノー・ストライピング等を含む、
ステップ208では、ファイル・システム・マネージャ108は、計算ノード104a〜104n用の予約済みストレージ割り振り領域の総数が所定のしきい値よりも小さいときは、計算ノード104a〜104n用の予約済みストレージ割り振り領域の総数が当該所定のしきい値と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約する。一実施形態では、ファイル・システム・マネージャ108は、計算ノード104a〜104n用の予約済みストレージ割り振り領域の総数が前記所定のしきい値と等しくなるまで、計算ノード104a〜104nのローカル接続ストレージ106a〜106nの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成る、少なくとも1つの追加のストレージ割り振り領域を予約する。例えば、ファイル・システム・マネージャ108は、計算ノード104a〜104n用のプールの基数が10より小さいときは、計算ノード104a〜104n用の1セットの連続データ・ブロックから成る追加のストレージ割り振り領域を予約する。
ステップ210では、ファイル・システム・マネージャ108は、計算動作を計算ノード104a〜104nに送信する。当該計算動作用のデータは、当該計算動作を受信する計算ノード104a〜104nのローカル接続ストレージ106a〜106nに割り振られている。一実施形態では、計算動作及びタスクは、当該計算動作用のデータが存在する計算ノード104a〜104nに送信される。例えば、このように計算タスクをデータに配信すると、ネットワーク・オーバーヘッドが減少し、その結果、計算を速やかに処理することが可能となる。代表的実施形態では、ファイル・システムのブロック位置情報をファイル・システムの入力/出力制御を使用するアプリケーションに公開することにより、計算タスクは、ファイル・システム内のデータと同じ場所に配置される。従って、ファイル・システム・マネージャ108は、このブロック位置情報を使用して、この計算タスクを計算ノード104a〜104nに送信する。この計算タスクを受信する計算ノード104a〜104nのローカル接続ストレージ106a〜106nには、この計算タスクに関連するデータが存在する。
ステップ212では、ファイル・システム・マネージャ108は、計算ノード104a〜104nのローカル接続ストレージ106a〜106nに割り振られた連続データ・ブロックの各セットを、少なくとも1つの追加の計算ノード104a〜104nのローカル接続ストレージ106a〜106nに複製する。例えば、データ集約型アプリケーションは、基礎となる商品コンポーネント内の障害から回復可能である必要がある。従って、データ集約型アプリケーションは、複数の計算ノード及びディスク障害が生ずる場合、かかる障害から回復可能であり且つ処理を続行可能である必要がある。このため、計算ノード又はディスク障害が生ずる場合には、異なる計算ノード上で計算を再開することができるように、データを複数の計算ノードにわたって複製することを必要とする。一実施形態では、一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作が再開される。
この複製機構は、使用されるファイル・システム及びクラスタ・コンポーネントに基づいて、変更することができる。代表的実施形態では、ファイル・システムは、単一ソース複製モデルを使用して、書き込み機能によりコピーを全てのレプリカに転送する。他の代表的実施形態では、ファイル・システムは、パイプライン複製を使用する。この場合、書き込み機能におけるアウトバウンド帯域幅は、複数のストリームにわたって共用されず、書き込みデータは、そのデータが計算ノードに書き込まれている間に、パイプライン内の一の計算ノードから次の計算ノードまで順次にパイプライン化することができる。
ステップ214では、ファイル・システム・マネージャ108は、共用ストレージ・サブシステム114の単一データ・ブロックを、ファイル・システム内に格納すべき(計算ノード104a〜104nからの)データ・アクセス動作用のデータをストライプするためのファイル・システムのブロック割り振り粒度として使用する。一実施形態では、ファイル・システム・マネージャ108は、従来型アプリケーションのデータを割り振るためのブロック割り振り粒度として、共用ストレージ・サブシステム114の単一データ・ブロック(小さなブロック)を使用する。代表的実施形態では、ファイル・システム・マネージャ108は、同じファイルに対し並行書き込み機能を使用することにより、従来型アプリケーションについて複数の計算ノードにわたって書き込み帯域幅の共用を可能にする。
代表的実施形態では、ファイル・システム・マネージャ108は、共用ストレージ・サブシステム114の単一データ・ブロックを、従来型アプリケーションのデータ・アクセス動作用に使用することにより、キャッシュ管理を有効にし且つプリフェッチ・オーバーヘッドを減少させる。というのは、複数のアプリケーション・レコードが、異なるディスク上の複数のブロックにまたがることがあり得るからである。例えば、内部データ・アクセス動作は、記帳動作、データ転送動作、キャッシュ管理動作、プリフェッチ動作等を含んでもよい。従って、ファイル・システム・マネージャ108は、従来型アプリケーションについて最適化されるディスク・アクセス及びプリフェッチ動作用に、小さなブロック粒度を使用する。ステップ216では、ファイル・システム・マネージャ108は、計算ノード104a〜104nからのデータ・アクセス動作用のデータを、共用ストレージ・サブシステム114に割り振る。
ステップ218では、ファイル・システム・マネージャ108は、共用ストレージ・サブシステム114及びローカル接続ストレージ106a〜106nに割り振り済みの各データ・ブロックの、ファイル・システム内の位置を追跡する。一実施形態では、ファイル・システム・マネージャ108は、共用ストレージ・サブシステム114及びローカル接続ストレージ106a〜106nに割り振り済みの各データ・ブロックの位置を追跡するために割り振りマップを使用する。一実施形態では、ファイル・システム・マネージャ108は、各計算ノード104a〜104nに対し、割り振りマップへのアクセスを提供する。例えば、計算ノード104a〜104nは、割り振りマップを使用して、共用ストレージ・サブシステム114及びローカル接続ストレージ106a〜106nに割り振り済みの各ブロックの位置を決定する。
一実施形態では、割り振りマップは、当該割り振りビットマップへの並列更新を可能にするように、多数のロック有能な割り振り領域(n個の計算ノードから成る計算クラスタ102の場合は、n個の領域)に分割される。代表的実施形態では、割り振りマップ内の各領域は、計算クラスタ102内の全てのディスク上にあるディスク・ブロックの1/n番目の割り振りステータスを保持し、そして任意の時点において、全ての計算ノード104a〜104nは、x個の領域の所有権を有しており且つこれらの領域を使用して全ての割り振り要求を満たそうと試みる。例えば、そのビットマップ・レイアウトは、ファイル・システムが一度に単一の割り振り領域だけにアクセスすることにより、全てのディスクにわたって適正にストライプされたディスク空間を割り振ることを可能にする。従って、計算ノード104a〜104nが異なる領域から空間を割り振ることができるため、ロックの衝突が最小化される。
図3は、一実施形態に従った、ファイル・システム内に格納すべき計算動作用のデータをストライプするためのブロック割り振り方式を示す。一実施形態では、ブロック割り振り方式は、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、格納すべき(計算ノード104a〜104nからの)計算動作用のデータを割り振るためのブロック割り振り粒度として使用する。
図3は、ローカル接続ストレージ106a〜106nの複数のストレージ・ディスク302a〜302nを示す。ファイル304は、固定サイズを有する複数のデータ・ブロックに分割される。代表的実施形態では、ファイル304は、複数の1MBデータ・ブロックに分割される。個別的な複数の1MBデータ・ブロックは、複数の連続データ・ブロック・セットにグループ化される。例えば、64MBレベルの連続性については、1MBの固定サイズを有する64個の連続データ・ブロックは、複数の64MBデータ・ブロック・セットにグループ化される。個別的な各64MBデータ・ブロック・セットは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスクにラウンドロビン式に割り振られる。
例えば、1セットの連続データ・ブロック306aは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302aに割り振られる。1セットの連続データ・ブロック306bは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302bに割り振られる。1セットの連続データ・ブロック306cは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302cに割り振られる。同様に、1セットの連続データ・ブロック306nは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302nに割り振られる。
1セットの連続データ・ブロック308aは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302aに割り振られる。1セットの連続データ・ブロック308bは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302bに割り振られる。1セットの連続データ・ブロック308cは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302cに割り振られる。同様に、1セットの連続データ・ブロック308nは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302nに割り振られる。
1セットの連続データ・ブロック310aは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302aに割り振られる。1セットの連続データ・ブロック310bは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302bに割り振られる。1セットの連続データ・ブロック310cは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302cに割り振られる。同様に、1セットの連続データ・ブロック310nは、ローカル接続ストレージ106a〜106nの単一ストレージ・ディスク302nに割り振られる。
図4は、一実施形態に従った、ファイル・システム内に格納すべきデータ・アクセス動作用のデータをストライプするためのブロック割り振り方式を示す。代表的実施形態では、ファイル・システム・マネージャ108は、共用ストレージ・サブシステム114の単一ストレージ・ディスク上にある単一ブロックを、従来型アプリケーションについて使用されるデータ・アクセス動作用のデータを割り振るためのブロック割り振り粒度として使用する。例えば、データ・アクセス動作は、従来型アプリケーションについて最適化される、内部記帳動作、データ転送動作、キャッシュ管理動作及びプリフェッチ動作を含む。ファイル404は、固定サイズを有する複数のデータ・ブロックに分割される。代表的実施形態では、ファイル404は、複数の1MBデータ・ブロックに分割される。個別的な各1MBデータ・ブロック・セットは、共用ストレージ・サブシステム114の単一ストレージ・ディスクにラウンドロビン式に割り振られる。
例えば、データ・ブロック406aは、共用ストレージ・サブシステム114の単一ストレージ・ディスク402aに割り振られ、同様に、データ・ブロック406bは、単一ストレージ・ディスク402bに割り振られ、データ・ブロック406cは、単一ストレージ・ディスクに402c割り振られ、データ・ブロック406nは、単一ストレージ・ディスク402nに割り振られる。データ・ブロック408aは、共用ストレージ・サブシステム114の単一ストレージ・ディスク402aに割り振られ、同様に、データ・ブロック408bは、単一ストレージ・ディスク402bに割り振られ、データ・ブロック408cは、単一ストレージ・ディスクに402c割り振られ、データ・ブロック408nは、単一ストレージ・ディスク402nに割り振られる。データ・ブロック410aは、共用ストレージ・サブシステム114の単一ストレージ・ディスク402aに割り振られ、同様に、データ・ブロック410bは、単一ストレージ・ディスク402bに割り振られ、データ・ブロック410cは、単一ストレージ・ディスク402cに割り振られ、データ・ブロック410nは、単一ストレージ・ディスク402nに割り振られる。
データ・ブロック412aは、共用ストレージ・サブシステム114の単一ストレージ・ディスク402aに割り振られ、同様に、データ・ブロック412bは、単一ストレージ・ディスク402bに割り振られ、データ・ブロック412cは、単一ストレージ・ディスクに402cに割り振られ、データ・ブロック412nは、単一ストレージ・ディスク402nに割り振られる。データ・ブロック414aは、共用ストレージ・サブシステム114の単一ストレージ・ディスク402aに割り振られ、同様に、データ・ブロック414bは、単一ストレージ・ディスク402bに割り振られ、データ・ブロック414cは、単一ストレージ・ディスクに402cに割り振られ、データ・ブロック414nは、単一ストレージ・ディスク402nに割り振られる。データ・ブロック416aは、共用ストレージ・サブシステム114の単一ストレージ・ディスク402aに割り振られ、同様に、データ・ブロック416bは、単一ストレージ・ディスク402bに割り振られ、データ・ブロック416cは、単一ストレージ・ディスク402cに割り振られ、データ・ブロック416nは、単一ストレージ・ディスク402nに割り振られる。
図5は、一実施形態に従った、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化するプロセスを実装することができる、システム500のブロック図を示す。システム500は、1つ以上のサーバ・コンピュータ・システム(以下「サーバ」と略記)530に接続された、1つ以上のクライアント装置501を含む。サーバ530は、バス502又は情報を通信するための他の通信機構と、情報を処理するためにバス502と結合されたプロセッサ(CPU)504を含む。また、サーバ530は、情報及びプロセッサ504によって実行すべき命令を格納するためにバス502に結合された、ランダム・アクセス・メモリ(RAM)又は他の動的ストレージ装置のような主メモリ506を含む。また、主メモリ506は、プロセッサ504による命令の実行中に、一時変数又は他の中間情報を格納するためにも使用することができる。
さらに、サーバ530は、プロセッサ504用の静的情報及び命令を格納するためにバス502に結合された、読み取り専用メモリ(ROM)508又は他の静的ストレージ装置を含む。磁気ディスク又は光ディスクのようなストレージ装置510は、情報及び命令を格納するためにバス502に結合される。バス502は、例えば、ビデオ・メモリ又は主メモリ506をアドレス指定するために、32本のアドレス線を含むことができる。また、バス502は、例えば、プロセッサ504、主メモリ506、ビデオ・メモリ及びストレージ装置510のような諸コンポーネント間でデータを転送するために、32ビットのデータ・バスを含むことができる。代替的に、個別のデータ及びアドレス線の代わりに、多重データ/アドレス線を使用してもよい。
サーバ530は、情報をコンピュータ・ユーザに表示するために、バス502を介してディスプレイ512に結合することができる。英数字及び他のキーを含む入力装置514は、情報及びコマンドの選択をプロセッサ504に通信するために、バス502に結合される。他のタイプのユーザ入力装置は、方向情報及びコマンドの選択をプロセッサ504に通信したり、ディスプレイ512上のカーソル移動を制御するためのカーソル制御装置516(例えば、マウス、トラックボール又はカーソル方向キー)を含む。
本発明の諸機能は、主メモリ506内に保持される1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ504に応答して、サーバ530によって実施される。かかる命令は、ストレージ装置510のような他のコンピュータ可読媒体から主メモリ506に読み取ることができる。主メモリ506内に保持される命令のシーケンスを実行する結果として、プロセッサ504は、本明細書に開示した諸プロセス・ステップを実施する。主メモリ506内に保持される命令のシーケンスを実行するために、マルチプロセッシング・システム内の1つ以上のプロセッサを使用してもよい。代替実施形態では、本発明を実装するために、諸ソフトウェア命令の代わりに又はこれらのソフトウェア命令と組み合わせて、ハードワイヤード回路を使用してもよい。従って、本発明の実施形態は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに制限されない。
コンピュータ可読媒体の種々の形式は、実行のために1つ以上の命令の1つ以上のシーケンスをプロセッサ504に搬送することに関係してもよい。例えば、これらの命令は、最初は遠隔コンピュータの磁気ディスク上に保持されることがある。遠隔コンピュータは、これらの命令をその動的メモリにロードし、モデムを使用して、これらの命令を電話線を介して送信することができる。サーバ530に対しローカルのモデムは、この電話線上のデータを受信し、赤外線送信機を使用してこのデータを赤外線信号に変換することができる。バス502に結合された赤外線検出器は、この赤外線信号で搬送されるデータを受信し、このデータをバス502上に配置することができる。バス502は、このデータを主メモリ506に搬送し、主メモリ506からプロセッサ504は命令を検索し且つ実行する。主メモリ506から受信された命令は、プロセッサ504による実行の前又は実行の後に、ストレージ装置510上に格納してもよい。
また、サーバ530は、バス502に結合された通信インタフェース518を含む。通信インタフェース518は、ネットワーク・リンク520に対する両方向のデータ通信結合を提供する。一方、ネットワーク・リンク520は、一般にインターネット528と称する、世界的規模のパケット・データ通信ネットワークに接続される。インターネット528は、電気、電磁気又は光信号を使用して、デジタル・データ・ストリームを搬送する。サーバ530と授受されるデジタル・データを搬送するための、種々のネットワークを通過する信号、ネットワーク・リンク520上の信号及び通信インタフェース518を通過する信号は、情報を移送する搬送波の典型的な形式である。
サーバ530の他の実施形態では、通信インタフェース518は、通信リンク520を介してローカル・ネットワーク(LAN)522に接続される。例えば、通信インタフェース518は、ネットワーク・リンク520の一部を構成する、対応するタイプの電話線に対するデータ通信接続を提供するための、サービス総合デジタル・ネットワーク(ISDN)カード又はモデムとすることができる。他の例として、通信インタフェース518は、互換性のあるローカル・エリア・ネットワーク(LAN)に対するデータ通信接続を提供するための、LANカードとすることができる。無線リンクも実装することができる。かかる任意の実装では、通信インタフェース518は、種々のタイプの情報を表すデジタル・データ・ストリームを搬送するための、電気、電磁気又は光信号を送信/受信する。
一般に、ネットワーク・リンク520は、1つ以上のネットワークを通して、他のデータ装置に対するデータ通信を提供する。例えば、ネットワーク・リンク520は、ローカル・ネットワーク522を通して、ホスト・コンピュータ524又はインターネット・サービス・プロバイダ(ISP)526によって動作されるデータ装置に対する接続を提供することができる。インターネット・サービス・プロバイダ526は、インターネット528を通して、データ通信サービスを提供する。ローカル・ネットワーク522及びインターネット528は、両方とも、キャリー・デジタル・データ・ストリームを搬送するための、電気、電磁気又は光信号を使用する。サーバ530と授受されるデジタル・データを搬送するための、種々のネットワークを通過する信号、ネットワーク・リンク520上の信号及び通信インタフェース518を通過する信号は、情報を移送する搬送波の典型的な形式である。
サーバ530は、ネットワーク、ネットワーク・リンク520及び通信インタフェース518を通して、電子メール及びプログラム・コードを含む、メッセージ及びデータを送信/受信することができる。さらに、通信インタフェース518は、ユニバーサル・シリアル・バス/チューナから構成することができる。ネットワーク・リンク520は、他のソースからメッセージ、データ及びプログラム・コードを受信するために、サーバ530をケーブル・プロバイダ、衛星プロバイダ又は他の地上伝送システムに接続するための、アンテナ又はケーブルとすることができる。
本明細書に開示した本発明の例示的なバージョンは、サーバ530を含むシステム500のような分散処理システム内の論理動作として実装することができる。これらの論理動作は、サーバ530内で実行される諸ステップのシーケンスとして、またシステム500内の相互に結合されたマシン・モジュールとして、実装することができる。その実装は、選択の問題であり、本発明を実装するシステム500の性能に依存することがある。そのため、本発明の前記例示的なバージョンを構成する論理動作は、例えば、動作、ステップ又はモジュールと呼ばれる。
前述のサーバ530と同様に、クライアント装置501は、プロセッサ、メモリ、ストレージ装置、ディスプレイ、入力装置及びサーバ530との通信のために当該クライアント装置をインターネット528、インターネット・サービス・プロバイダ526又はローカル・ネットワーク522に接続するための通信インタフェース(例えば、電子メール・インタフェース)を含むことができる。
さらに、システム500は、クライアント装置501と同じ態様で動作するコンピュータ(例えば、パーソナル・コンピュータ、計算ノード)505を含むことができる。その場合、ユーザは、1つ以上のコンピュータ505を利用して、サーバ530内のデータを管理することができる。
一般に、本明細書では、「コンピュータ可読媒体」という用語は、実行のために諸命令をプロセッサ504に提供することに関係する任意の媒体を指す。かかる媒体は、不揮発性媒体、揮発性媒体及び伝送媒体等を含む、多くの形式を取ることができる。不揮発性媒体は、例えば、ストレージ装置510のような光又は磁気ディスクを含む。揮発性媒体は、主メモリ506のような動的メモリを含む。伝送媒体は、同軸ケーブル、銅線及びファイバ・オプティクスを含み、バス502を構成する線を含む。
従って、本明細書は、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化することを開示する。当業者には明らかなように、本発明の諸側面は、システム、方法又はコンピュータ・プログラムとして具体化することができる。発明の1側面は、動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化するためにコンピュータ・プログラムを含む。このコンピュータ・プログラムは、その内部にコンピュータ可読プログラム・コードを具体化した、コンピュータ可読ストレージ媒体を含む。
前記コンピュータ可読ストレージ媒体は、クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約するように構成されたコンピュータ可読プログラム・コードを含む。各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成る。前記コンピュータ可読ストレージ媒体は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用するように構成されたコンピュータ可読プログラム・コードをさらに含む。前記コンピュータ可読ストレージ媒体は、共用ストレージ・サブシステムの単一データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内のデータ・アクセス動作用のデータをストライプするための前記ファイル・システムのブロック割り振り粒度として使用するように構成されたコンピュータ可読プログラム・コードをさらに含む。
従って、本発明の諸側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)又はソフトウェア及びハードウェア要素の両方を含む実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の諸側面は、コンピュータ可読プログラム・コードを1つ以上のコンピュータ可読媒体内に具体化した、コンピュータ・プログラムの形式を取ることができる。
1つ以上のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体システム、装置若しくはデバイス、又はこれらの任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体の特定の例は、1つ以上の線を有する電気接続、フレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、読み取り専用CD−ROM、光ストレージ装置、磁気ストレージ装置、又はこれらの任意の適切な組み合わせとすることができる。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム又は装置に関連して又はこれらによって使用するためのプログラムを保持又は格納する、任意の有形的媒体とすることができる。
コンピュータ可読信号媒体は、伝搬されるデータ信号を含むこともあるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ可読プログラム・コードを具体化することができる。かかる伝搬される信号は、電磁気、光学、又はこれらの任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム又は装置に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送する、任意のコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF、又はこれらの任意の適切な組み合わせ等を含む、適切な任意の媒体を使用して伝送することができる。
本発明の諸側面に従った動作を実施するためのコンピュータ・プログラム・コードは、Java(登録商標)、Smalltalk、C++等のようなオブジェクト指向プログラミング言語及び「C」プログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行することができ、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、又は遠隔コンピュータ若しくはサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、LAN又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を(例えば、インターネット・サービス・プロバイダを使用するインターネットを通して)外部コンピュータに行うことができる。
以上では、本発明の実施形態に従った、方法、装置(システム)及びコンピュータ・プログラムのフローチャート又はブロック図を参照して、本発明の諸側面を説明した。フローチャート又はブロック図の各ブロック、複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される諸命令は、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための手段を作成する。
また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、当該コンピュータ可読媒体内に格納された諸命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための諸命令を含む製品を生産することを目的として、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置に対し特定の態様で機能するように指示することができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装プロセスを生成するように当該コンピュータ、他のプログラム可能なデータ処理装置又は他のデバイス上で一連の動作ステップを実行させることができる。
102・・・計算クラスタ
104a〜104n・・・計算ノード
106a〜106n・・・ローカル接続ストレージ
108・・・ファイル・システム・マネージャ
110・・・スイッチ・ネットワーク
112・・・ストレージ・スイッチ
114・・・共用ストレージ・サブシステム
118・・・クライアント・ノード

Claims (15)

  1. 動的なブロック・サイズ粒度を使用して、一の計算クラスタ内の異なるタイプのアプリケーションについて一のファイル・システムを最適化する方法であって、
    (a)前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約するステップを含み、
    各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成り、
    (b)ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用するステップと、
    (c)共用ストレージ・サブシステムの単一データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内のデータ・アクセス動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用するステップをさらに含む、方法。
  2. 一の計算動作用のデータを、前記予約済みストレージ割り振り領域の少なくとも1つに割り振るステップをさらに含む、請求項1に記載の方法。
  3. 前記計算クラスタ内の一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約するステップをさらに含む、請求項1又は請求項2に記載の方法。
  4. 一の計算動作を前記計算クラスタ内の一の計算ノードに送信するステップをさらに含み、
    当該計算動作用のデータは、当該計算ノードのローカル接続ストレージに割り振られている、請求項1ないし請求項3の何れか1項に記載の方法。
  5. 一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データ・ブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製するステップをさらに含む、請求項1ないし請求項4の何れか1項に記載の方法。
  6. 一のデータ・アクセス動作用のデータを前記共用ストレージ・サブシステムに割り振るステップをさらに含む、請求項1ないし請求項5の何れか1項に記載の方法。
  7. 前記共用ストレージ・サブシステム及びローカル接続ストレージに割り振り済みの各データ・ブロックの前記ファイル・システム内の位置を追跡するステップをさらに含む、請求項1ないし請求項6の何れか1項に記載の方法。
  8. 前記データ・アクセス動作は、記帳動作、データ転送動作、キャッシュ管理動作及びプリフェッチ動作から成るグループから選択される、請求項1ないし請求項7の何れか1項に記載の方法。
  9. 一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開するステップをさらに含む、請求項6に記載の方法。
  10. 前記計算クラスタは、一の遠隔クライアント用の計算サービスをホストする、請求項1ないし請求項9の何れか1項に記載の方法。
  11. 一の計算クラスタを備え、動的なブロック・サイズ粒度を使用して、当該計算クラスタ内の異なるタイプのアプリケーションについて一のファイル・システムを最適化するシステムであって、
    前記計算クラスタは、
    (a)複数の計算ノードを有し、
    前記複数の計算ノードの各々は、ローカル接続ストレージを含み、
    (b)前記複数の計算ノードの各々に結合された共用ストレージ・サブシステムと、
    (c)前記共用ストレージ・サブシステム及び前記複数の計算ノードの各々に結合されたファイル・システム・マネージャをさらに有し、
    前記ファイル・システム・マネージャ(c)は、
    (c1)前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約し、
    各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックから成り、
    (c2)ローカル接続ストレージの単一ストレージ・ディスク上にある1セットの連続データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用し、
    (c3)前記共用ストレージ・サブシステムの単一データ・ブロックを、前記ファイル・システム内に格納すべき前記計算クラスタ内のデータ・アクセス動作用のデータをストライプするための当該ファイル・システムのブロック割り振り粒度として使用する、システム。
  12. 前記ファイル・システム・マネージャは、一の計算動作を前記計算クラスタ内の一の計算ノードに送信し、
    当該計算動作用のデータは、当該計算ノードのローカル接続ストレージに割り振られている、請求項11に記載のシステム。
  13. 前記ファイル・システム・マネージャは、一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約する、請求項11又は請求項12に記載のシステム。
  14. 前記ファイル・システム・マネージャは、
    一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データ・ブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製し、
    前記一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開する、請求項11ないし請求項13の何れか1項に記載のシステム。
  15. 請求項1ないし請求項10の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2013504205A 2010-04-14 2011-04-08 動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム Active JP5643421B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/760,476 2010-04-14
US12/760,476 US9021229B2 (en) 2010-04-14 2010-04-14 Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
PCT/EP2011/055496 WO2011128257A1 (en) 2010-04-14 2011-04-08 Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity

Publications (2)

Publication Number Publication Date
JP2013527524A true JP2013527524A (ja) 2013-06-27
JP5643421B2 JP5643421B2 (ja) 2014-12-17

Family

ID=44140786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013504205A Active JP5643421B2 (ja) 2010-04-14 2011-04-08 動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム

Country Status (6)

Country Link
US (1) US9021229B2 (ja)
JP (1) JP5643421B2 (ja)
CN (1) CN102844734B (ja)
DE (1) DE112011101317T5 (ja)
GB (1) GB2492870B (ja)
WO (1) WO2011128257A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323775B2 (en) 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US11726955B2 (en) 2010-06-19 2023-08-15 Hewlett Packard Enterprise Development Lp Methods and apparatus for efficient container location database snapshot operation
US9411517B2 (en) 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
EP2740041B1 (en) * 2011-08-02 2019-10-23 Jadhav, Ajay Cloud-based distributed persistence and cache data model
CN102426552B (zh) 2011-10-31 2014-06-04 华为数字技术(成都)有限公司 存储系统服务质量控制方法、装置和系统
US8850133B1 (en) * 2011-12-20 2014-09-30 Emc Corporation Using dynamic block sizes in data transfer operations
US9405692B2 (en) * 2012-03-21 2016-08-02 Cloudera, Inc. Data processing performance enhancement in a distributed file system
EP2893466A4 (en) * 2012-09-06 2016-06-08 Hewlett Packard Development Co EXTENSIBLE FILE SYSTEM
US9122398B2 (en) 2012-10-31 2015-09-01 International Business Machines Corporation Generalized storage allocation for multiple architectures
CN103793425B (zh) 2012-10-31 2017-07-14 国际商业机器公司 用于分布式系统的数据处理方法及装置
CN104584627B (zh) * 2013-08-23 2018-05-18 华为技术有限公司 一种网络资源控制方法、装置和系统
US9569447B2 (en) * 2013-11-08 2017-02-14 Texas Instruments Incorporated File access method and system thereof
JP6378364B2 (ja) 2014-04-22 2018-08-22 華為技術有限公司Huawei Technologies Co.,Ltd. ファイル管理方法およびファイルシステム
DE102014210233A1 (de) * 2014-05-28 2015-12-03 Siemens Aktiengesellschaft Teilen von Rechen-Ressourcen
US9836419B2 (en) 2014-09-15 2017-12-05 Microsoft Technology Licensing, Llc Efficient data movement within file system volumes
US10298709B1 (en) * 2014-12-31 2019-05-21 EMC IP Holding Company LLC Performance of Hadoop distributed file system operations in a non-native operating system
CN106547055B (zh) * 2015-09-23 2019-04-16 青岛海信宽带多媒体技术有限公司 一种光探测模组和光模块
KR20170048721A (ko) * 2015-10-27 2017-05-10 삼성에스디에스 주식회사 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치
CN106657182B (zh) 2015-10-30 2020-10-27 阿里巴巴集团控股有限公司 云端文件处理方法和装置
US11106625B2 (en) 2015-11-30 2021-08-31 International Business Machines Corporation Enabling a Hadoop file system with POSIX compliance
US9733834B1 (en) 2016-01-28 2017-08-15 Weka.IO Ltd. Congestion mitigation in a distributed storage system
US10228855B2 (en) * 2016-03-30 2019-03-12 International Business Machines Corporation Tuning memory across database clusters for distributed query stability
CN108647228B (zh) * 2018-03-28 2021-08-24 中国电力科学研究院有限公司 可见光通信大数据实时处理方法和系统
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
US10963378B2 (en) 2019-03-19 2021-03-30 International Business Machines Corporation Dynamic capacity allocation of stripes in cluster based storage systems
KR20210017181A (ko) * 2019-08-07 2021-02-17 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN112650441B (zh) * 2019-10-11 2022-11-04 杭州海康威视数字技术股份有限公司 条带缓存分配方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214257A (ja) * 1997-01-30 1998-08-11 Fujitsu Ltd 並列計算機
JPH10283230A (ja) * 1997-03-31 1998-10-23 Nec Corp ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体
JP2002132548A (ja) * 2000-10-23 2002-05-10 Toshiba Corp 記憶装置および方法
JP2004199535A (ja) * 2002-12-20 2004-07-15 Hitachi Ltd 計算機システムおよびそのストレージの管理方法
JP2006294052A (ja) * 1993-06-21 2006-10-26 Hitachi Ltd 計算機システムおよび二次記憶装置
JP2007328727A (ja) * 2006-06-09 2007-12-20 Hitachi Ltd 分散ファイル管理方法及び情報処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442752A (en) 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
WO1996025801A1 (en) 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5678024A (en) 1995-05-08 1997-10-14 International Business Machines Corporation Method and system for dynamic performance resource management within a computer based system
US7032119B2 (en) * 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
AU2002236435A1 (en) 2000-10-26 2002-05-21 Prismedia Networks, Inc. Method and apparatus for real-time parallel delivery of segments of a large payload file
US20050039049A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation Method and apparatus for a multiple concurrent writer file system
US7418568B2 (en) * 2005-01-05 2008-08-26 Sap Ag Memory management technique
US7694072B2 (en) * 2005-09-22 2010-04-06 Xyratex Technology Limited System and method for flexible physical-logical mapping raid arrays
US7734603B1 (en) 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
US7945726B2 (en) * 2006-05-08 2011-05-17 Emc Corporation Pre-allocation and hierarchical mapping of data blocks distributed from a first processor to a second processor for use in a file system
US7945716B2 (en) * 2007-09-27 2011-05-17 Integrated Device Technology, Inc. Serial buffer supporting virtual queue to physical memory mapping
US8478715B2 (en) * 2008-05-16 2013-07-02 Microsoft Corporation Extending OLAP navigation employing analytic workflows
US8890880B2 (en) * 2009-12-16 2014-11-18 Intel Corporation Graphics pipeline scheduling architecture utilizing performance counters

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006294052A (ja) * 1993-06-21 2006-10-26 Hitachi Ltd 計算機システムおよび二次記憶装置
JPH10214257A (ja) * 1997-01-30 1998-08-11 Fujitsu Ltd 並列計算機
JPH10283230A (ja) * 1997-03-31 1998-10-23 Nec Corp ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体
JP2002132548A (ja) * 2000-10-23 2002-05-10 Toshiba Corp 記憶装置および方法
JP2004199535A (ja) * 2002-12-20 2004-07-15 Hitachi Ltd 計算機システムおよびそのストレージの管理方法
JP2007328727A (ja) * 2006-06-09 2007-12-20 Hitachi Ltd 分散ファイル管理方法及び情報処理装置

Also Published As

Publication number Publication date
CN102844734A (zh) 2012-12-26
GB201210249D0 (en) 2012-07-25
US20110258378A1 (en) 2011-10-20
CN102844734B (zh) 2016-02-10
GB2492870B (en) 2018-05-16
JP5643421B2 (ja) 2014-12-17
DE112011101317T5 (de) 2013-01-31
WO2011128257A1 (en) 2011-10-20
GB2492870A (en) 2013-01-16
US9021229B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
JP5643421B2 (ja) 動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム
CN108776576B (zh) 用于聚合的网上NVMe装置的聚合存储方法
US9286261B1 (en) Architecture and method for a burst buffer using flash technology
US9456049B2 (en) Optimizing distributed data analytics for shared storage
US9158540B1 (en) Method and apparatus for offloading compute resources to a flash co-processing appliance
US9542281B2 (en) Systems and methods for providing snapshots of applications to remote locations with minimal performance impact
CN102047237B (zh) 在虚拟机之间提供对象级输入/输出请求以存取存储子系统
EP3385833B1 (en) Data path monitoring within a distributed storage network
US20100218039A1 (en) Methods and systems for implementing shared disk array management functions
US20150127975A1 (en) Distributed virtual array data storage system and method
US8732702B2 (en) File system for storage area network
US8701113B2 (en) Switch-aware parallel file system
CN107391270B (zh) 高性能无锁可缩放目标的系统和方法
US8892833B2 (en) Systems, methods, and computer program products providing snapshot data replication in a distributed analytic computing system
US10176103B1 (en) Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm
US11194522B2 (en) Networked shuffle storage
US10929018B2 (en) Layered clustered scale-out storage system
Stone et al. Terascale I/O Solutions
Yang et al. Automatic and Scalable Data Replication Manager in Distributed Computation and Storage Infrastructure of Cyber-Physical Systems.
US11934679B2 (en) System and method for segmenting volumes across a multi-node storage system
Nicolae et al. Leveraging collaborative content exchange for on-demand vm multi-deployments in iaas clouds
Song et al. GPU-accelerated high-performance encoding and decoding of hierarchical RAID in virtual machines
Saifeng VFS_CS: a light-weight and extensible virtual file system middleware for cloud storage system
Wang et al. Load balancing using grid-based peer-to-peer parallel I/O
WO2012074354A1 (en) System architecture with cluster file for virtualization hosting environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141030

R150 Certificate of patent or registration of utility model

Ref document number: 5643421

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150