JP2010092463A - 分散型ストレージシステムのファイルアクセス性能を改善する方法と装置 - Google Patents

分散型ストレージシステムのファイルアクセス性能を改善する方法と装置 Download PDF

Info

Publication number
JP2010092463A
JP2010092463A JP2009199343A JP2009199343A JP2010092463A JP 2010092463 A JP2010092463 A JP 2010092463A JP 2009199343 A JP2009199343 A JP 2009199343A JP 2009199343 A JP2009199343 A JP 2009199343A JP 2010092463 A JP2010092463 A JP 2010092463A
Authority
JP
Japan
Prior art keywords
file
storage node
access request
redirect
node
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
JP2009199343A
Other languages
English (en)
Other versions
JP5337633B2 (ja
Inventor
Yasuyuki Ajimatsu
康行 味松
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2010092463A publication Critical patent/JP2010092463A/ja
Application granted granted Critical
Publication of JP5337633B2 publication Critical patent/JP5337633B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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]

Abstract

【課題】
本発明の実施例はクライアントに単一のネームスペースを提供する分散型ストレージシステムからクライアントへのファイル転送性能を向上するための方法と装置を提供する。
【解決方法】
一つの実施例では、分散型ストレージシステム内のファイルにアクセスを提供するシステムは、ネットワークを経由して接続された複数のストレージノードと少なくとも一式のコンピュータ装置を含む。各ストレージノードは、少なくとも一式のコンピュータ装置の一つからファイルへのファイルアクセス要求をレシーバストレージノードとして受信すると、予め定められたポリシーに従って、ファイルアクセス要求をファイルのオーナーストレージノードにリダイレクトするようにファイルアクセス要求を行っているコンピュータ装置に通知するか否か決定するように構成される。予め定められたポリシーは、ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいて、ファイルアクセス要求をリダイレクトするか否かに対する条件を規定する。
【選択図】図1

Description

0001 本発明は一般的にコンピュータストレージシステムのI/O要求を処理する方法と装置に関連し、より具体的にはクライアントに単一のネームスペースを提供する分散型ストレージシステムのファイルアクセス性能を改善する方法と装置に関連する。
0002 今日のかなりのコンピュータストレージシステムは多数のストレージノードを持つ分散型システムである。各ノードはクライアント又は他のノードからの要求を処理する処理装置、クライアント又は他のノードとの間で情報を送受する通信装置、及びデータ又は管理情報を保存するストレージ装置を有する。ノードはネットワーク経由で相互に通信して単一のシステムとして動作する。分散型ストレージシステムはいくつかの利点を持つ。例えば、ノードを追加することで良好な拡張性を持つ。更に複数のノードに作業負荷を分散させることで優れた並列処理を実現する。分散型ストレージシステムの一つの例がUS特許No.7,155,466に開示されている。
0003 分散型ストレージシステムは、クライアントにファイルシステムを提供する時、しばしばそのストレージ容量を単一のネームスペース内で編成し、そのことはクライアントが、接続されるノード又はネットワークポートに無関係に同一のビューを取得することを意味する。単一のネームスペースを達成するために、ノードはそれら自身間でファイルを送受する。例えば、ノード(“レシーバノード”)がクライアントからファイル読み出し要求を受信するものの、そのファイルがそのノードに保存されていない場合には、そのノードはそのファイルが保存されている別のノード(“オーナーノード”)を特定して、そのファイルをレシーバノードに送信するようにオーナーノードに要求し、クライアントにそのファイルを送信する。単一のネームスペースの機能により、たとえクライアントが一つのノードのみと通信していたとしても、クライアントは任意のノード内のファイルにアクセスすることが可能になり、クライアントの構成管理を単純化できる。
0004 しかしながら、性能、特にスループットの観点からみると、単一のネームスペースの機能を提供するためのノード間通信はI/Oプロセスに余分のオーバヘッドをもたらす。クライアントからアクセス要求を受信するノード内にファイルが保存されている場合は、そのファイルはレシーバによって直ちに読み出され、直接クライアントに送信されるのでオーバヘッドは存在しない。一方、ファイルが別のノードに保存されている場合は、オーナーノードが読み出してレシーバノードに転送し、次いでクライアントに送信されなければならない。この場合、ファイルは四つのNIC(Network Interface Card)即ちオーナーノードのNIC、ファイルを受信するレシーバノードのNIC、クライアントにファイルを送信するレシーバノードのNIC、及びクライアントのNICを通して転送される。ファイルはNICを通して処理されるたびに通信プロトコルスタックを通過し、それによりメモリコピー、送信対象データのカプセル化、及び受信データの再編成を引き起す。特に、転送されるファイルサイズが大きい(例えばギガバイト)場合、余分なオーバヘッドによりクライアントがオーナーノードから直接ファイルを受信する場合と比較して転送時間が長くなってしまう。一方、サイズが小(例えばキロバイト)の場合、転送時間が短いのでオーバヘッドはあまり影響をもたらさない。
0005 本発明の実施例は、クライアントに単一のネームスペースを提供する分散型ストレージシステムからクライアントへのファイル転送性能を改善する方法と装置を提供する。分散型ストレージシステム内の各ノードは予め決められたポリシー(単数又は複数)に基づきクライアントからファイルへのパスを決定して、クライアントにパス情報を提供する機能を有する。ノードは、クライアントからファイルアクセス要求を受信すると、ファイルのオーナーノードを特定する。もしレシーバノードがオーナーであれば、そのレシーバノードはクライアントにファイルを送信する。そうでない場合は、そのレシーバノードは予め決められたポリシーに基づきクライアントがアクセスすべきパスを決定する。パスはファイルのオーナーノードからクライアントへのファイルのリダイレクトを含むことができる。リダイレクトはファイル転送開始後のオーバヘッドを減少させるが、待ち時間即ちファイル転送開始前のオーバヘッドを増加させるので、そうすることは必ずしも望ましいとは言えない。ポリシーはリダイレクトを行うための条件を規定する。例えば、アクセス対象ファイルのサイズによって、ポリシーを規定することができる。もしサイズが予め決められた閾値よりも小であれば、レシーバノードはファイルのオーナーノードからファイルを受信し、それをクライアントに送信する。そうでない場合は、レシーバノードは、オーバヘッドを低減し転送時間をより短縮できるという理由から、オーナーノードに直接アクセスするようにクライアントに伝える。もしクライアントとストレージシステムがHTTP(RFC2616“Hyper Text Transfer Protocol-HTTP/1.1”、http://www.ietf.org/rfc/rfc2616.txtを参照のこと)によって通信しているならば、パスの切り換えは標準のリダイレクト方法を使用して実現することができる。
0006 本発明の一態様に従い、分散型ストレージシステム内のファイルへのアクセスを提供するシステムは、ネットワーク経由で接続された複数のストレージノードと少なくとも一式のコンピュータ装置を含む。各ストレージノードは、少なくとも一式のコンピュータ装置の一つから或るファイルに対するファイルアクセス要求をレシーバストレージノードとして受信すると、予め定められたポリシーに従ってファイルアクセス要求をファイルのオーナーストレージノードにリダイレクトするようにファイルアクセス要求を行っているコンピュータ装置に通知するか否か決定するように構成される。予め定められたポリシーはファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づきファイルアクセス要求をリダイレクトするか否かの条件を規定する。
0007 ある実施例では、レシーバストレージノードは、ファイルアクセス要求をオーナーストレージノードにリダイレクトする際に、キャッシュに格納される先読み対象ファイルを指定する先読み要求をオーナーストレージノードに送信するように構成される。レシーバストレージノードは、ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいてファイルアクセス要求をリダイレクトするか否かの条件を指定するポリシーテーブルを調べることで、ファイルアクセス要求をオーナーストレージノードにリダイレクトするようにファイルアクセス要求を行っているコンピュータ装置に通知するか否か決定する。その条件はファイルのファイルタイプとファイルサイズの両者に基づいており、更に、ファイルを要求する少なくとも一式のコンピュータ装置、ファイルの外部パス、又はファイルアクセス要求の中で指定される少なくとも一つの要求パラメータに基づいている。ポリシーテーブルは各ストレージノード内に保存される。
0008 特定の実施例では、レシーバストレージノードは、ファイルのリダイレクトフラグを調べることで、ファイルアクセス要求をオーナーストレージノードにリダイレクトするようにファイルアクセス要求を行っているコンピュータ装置に通知するか否か決定する。リダイレクトフラグは、ストレージノード内に保存される各ファイルに対して、それに対応するファイルへのファイルアクセス要求をリダイレクトするか否か指定する。リダイレクトフラグは、ファイルがストレージノードの一つに書き込まれる時点で以下を実行することで設定される:ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいて予め定められたポリシーに従って、ファイルアクセス要求をファイルのオーナーストレージノードにリダイレクトするか否か決定し;決定のステップに従ってリダイレクトするか否かのリダイレクトフラグを設定する。
0009 ある実施例では、ファイルアクセス要求のファイルは多数のポーションに分割され、複数のストレージノードに保存される。各ストレージノードは、レシーバストレージノードとして、予め定められたポリシーに従ってファイルアクセス要求をファイルの多数のポーションのオーナーストレージノードにリダイレクトするようにファイルアクセス要求を行っているコンピュータ装置に通知するか否か決定するように構成される。レシーバストレージノードはファイルの多数のポーションのオーナーストレージノードにファイルアクセス要求をリダイレクトする際に、キャッシュに格納される先読み対象のファイルのポーションを指定する先読み要求をレシーバストレージノード以外の各オーナーストレージノードに送信するように構成される。各ストレージノードは、ファイルを送付先ストレージノードに移行する移行要求を受信すると、移行対象ファイルの外部パスを抽出し、発生元ストレージノードからファイルを読み出し、送付先ストレージノードにファイルとファイルの外部パスを含む内部書き込み要求を送信し、発生元ストレージノードから移行済みファイルを削除し、分散型ストレージシステム内の移行済みファイルのロケーション記録を更新する、ように構成される。
0010 特定の実施例では、レシーバストレージノードは、ファイルアクセス要求をオーナーストレージノードにリダイレクトしない場合には、オーナーストレージノードからファイルを読み出し、読み出したファイルをファイルアクセス要求を行っているコンピュータ装置に送信するように構成される。予め定められたポリシーは、ファイルのファイルタイプ、ファイルのファイルサイズ、ファイルを要求するコンピュータ装置、ファイルの外部パス、の少なくとも一つ、又はファイルアクセス要求中で指定される少なくとも一つの要求パラメータに基づいて、ファイルアクセス要求をリダイレクトするか否かの条件を規定することができる。
0011 本発明の別な態様は、ネットワーク経由で接続された分散型ストレージシステムと少なくとも一式のコンピュータ装置を持つシステムに向けられる。分散型ストレージシステム内の複数のストレージノード内のファイルへのアクセスを可能にする方法は、少なくとも一式のコンピュータ装置の一つからファイルへのファイルアクセス要求を受信時に、予め定められたポリシーに従ってファイルアクセス要求をファイルのオーナーストレージノードにリダイレクトするようにファイルアクセスを行っているコンピュータ装置に通知するか否か決定するステップを含む。予め定められたポリシーはファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいてファイルアクセス要求をリダイレクトするか否かの条件を規定する。
0012 本発明のこれらの特徴及びその他の特徴は、以下の好適な実施例の詳細な説明に照らすことにより、この技術分野に於ける通常の知識を有する者(当業者)には明白になるであろう。
0013 図1は本発明の方法と装置が適用できるコンピュータシステムの例を示す。 0014 図2は図1のコンピュータシステム内のクライアントコンピュータの例を示す。 0015 図3は図1のコンピュータシステム内の管理サーバの例を示す。 0016 図4は本発明の第1の実施例に従う図1のコンピュータシステムの分散型ストレージシステム内のストレージノードの例を示す。 0017 図5は図4のストレージノード内の典型的なポリシーテーブルを示す。 0018 図6は図4のストレージノード内の典型的なノードテーブルを示す。 0019 図7は図4のストレージノード内の典型的なファイルテーブルを示す。 0020 図8は図4のストレージノード内の典型的なパステーブルを示す。 0021 図9は図4のストレージノード内の典型的なキャッシュテーブルを示す。 0022 図10は図3の管理サーバ内の管理プログラムによるプロセスフローの例を示す。 0023 図11は図4のストレージノード内のストレージシステム制御プログラムのプロセスフローの例を示す。 0024 図12は図4のストレージノード内のストレージシステム制御プログラムによる書き込み要求のプロセスフローの例を示す。 0025 図13は図4のストレージノード内のストレージシステム制御プログラムによる内部書き込み要求のプロセスフローの例を示す。 0026 図14は図4のストレージノード内のストレージシステム制御プログラムによる読み出し要求のプロセスフローの例を示す。 0027 図15は図4のストレージノード内のストレージシステム制御プログラムによる内部読み出し要求のプロセスフローの例を示す。 0028 図16は図4のストレージノード内のストレージシステム制御プログラムによる先読み要求のプロセスフローの例を示す。 0029 図17は図4のストレージノード内のストレージシステム制御プログラムによるファイル移行要求のプロセスフローの例を示す。 0030 図18は本発明の第2の実施例に従う典型的なファイルテーブルを示す。 0031 図19は本発明の第2の実施例に従うストレージノード内のストレージシステム制御プログラムによる書き込み要求のプロセスフローの例を示す。 0032 図20は本発明の第2の実施例に従うストレージノード内のストレージシステム制御プログラムによる内部書き込み要求のプロセスフローの例を示す。 0033 図21は本発明の第2の実施例に従うストレージノード内のストレージシステム制御プログラムによる読み出し要求のプロセスフローの例を示す。 0034 図22は本発明の第3の実施例に従うストレージノード内の典型的なファイルテーブルを示す。 0035 図23は本発明の第3の実施例に従うストレージノード内の典型的なポーションサイズテーブルを示す。 0036 図24は本発明の第3の実施例に従うストレージノード内のストレージシステム制御プログラムによる書き込み要求のプロセスフローの例を示す。 0037 図25は本発明の第3の実施例に従うストレージノード内のストレージシステム制御プログラムによる内部書き込み要求のプロセスフローの例を示す。 0038 図26は本発明の第3の実施例に従うストレージノード内のストレージシステム制御プログラムによる読み出し要求のプロセスフローの例を示す。
0039 以下の本発明の詳細な説明に於いて、付随する図面が参照され、この図面は開示内容の一部を構成し、図中では本発明が実施できる典型的な実施例が、限定するためでなく説明の目的で示されている。図中では、複数の図を通して類似の番号は実質的に同様なコンポーネントを表わしている。更に、詳細な説明は、以下に記述され、図で説明されるように多様な典型的な実施例を提供するが、本発明はここに記述される実施例に限定されるものでなく、この技術分野の当業者に知られているか、又は知得されるであろう他の実施例に拡張可能であることはいうまでもない。明細書中での“一つの実施例”、“本実施例”、又は“これらの実施例”という言及は、実施例に関連して記述される特定の特徴、構造、又は特性が本発明の少なくとも一つの実施例に含まれることを意味し、これらの語句が明細書中の種々の箇所に出現したとしても必ずしもすべてが同じ実施例を参照しているわけではない。更に、以下の詳細な説明に於いて、数多くの特定な詳細が、本発明の十分な理解を可能にするために記述される。しかしながら本発明を実施するのにこれら特定の詳細すべてが必要とされるわけでないことは、この技術分野の当業者には明白であろう。他の状況では、本発明を不必要に分かりにくくしないように、公知の構造、材料、回路、プロセス及びインタフェースが詳細には記述されておらず、更に/又はブロックダイアグラムの形で説明されることもあり得る。
0040 本発明の典型的な実施例は、以下により詳細に記述されるように、クライアントに単一のネームスペースを提供する分散型ストレージシステムからクライアントへのファイル転送性能を改善する装置、方法及びコンピュータプログラムを提供する。
0041 図1は本発明の方法と装置が適用され得るコンピュータシステムの例を示す。複数のクライアントコンピュータ1000と管理サーバ1001が、LANのようなネットワーク1002を経由して複数のストレージノード1004を含む分散型ストレージシステム1003に接続される。この実施例では、クライアント1000と分散型ストレージシステム1003はHTTPにより通信する。ストレージシステム1003はそのノード1004内にファイルを保存する。各ファイルはノード1004の一つの中に保存される。ノード1004は、クライアント1000から要求を受信すると、予め決められれたポリシー(単数又は複数)に基づいてクライアント1000から要求されたファイルへのパスを決定する。もしパスを切り換える又はリダイレクトするように決定されたなら、リダイレクトはクライアントに別のノード、即ち要求されたファイルのオーナーノードにアクセスするように伝えるHTTP応答コードの一つを返送することで達成される。ファイルアクセス要求を受信するレシーバノードがオーナーノードに要求をリダイレクトすると、レシーバノードは更にオーナーノードに、待ち時間とスループットを改善するためにファイルを先読みしてキャッシュメモリに格納するように伝える。更に、ユーザは、管理サーバ1001からストレージシステム1003に、一つのノードに保存されたファイルを別のノードに移行するように指示することができる。移行の後に、ストレージシステム1003は、ファイルへのアクセスを要求しているクライアントに現在のファイルロケーションに対応する新たなパスを通知する。
0042 図2は図1のコンピュータシステム内のクライアントコンピュータ1000の例を示す。CPU2002はメモリ2001内のクライアントプログラム2005を実行する。クライアントプログラム2005はLANポート2004を経由してストレージシステム1003と通信し、HTTP要求を送信しHTTP応答を受信することでファイルを読み書きする。
0043 図3は図1のコンピュータシステム内の管理サーバ1001の例を示す。メモリ3001内の管理プログラム3005はCPU3002によって実行され、ユーザがユーザインタフェース3003を経由してストレージシステム1003の設定を調べたり変更することを可能にする。
0044 図4は本発明の第1の実施例に従う図1のコンピュータシステムの分散型ストレージシステム1003内のストレージノード1004の例を示す。各ノード1004は、クライアント及び他のノードと通信するためにLAN I/F4002を持ち、更にファイル4006を保存するためにストレージエリア4005を持つ。ストレージエリア4005は通常はディスクコントローラ4004により制御されるディスクドライブから構成される。CPU4001はメモリ4003内のストレージシステム制御プログラム4007を実行する。ストレージシステム制御プログラム4007は、クライアントコンピュータ1000から送信されるI/O要求だけでなく管理サーバ1001から送信される管理要求及び他のノードから送信される内部要求をも処理する。メモリ4003は、管理情報を含むいくつかのテーブル4008−4012とメモリ内にファイルを保存するキャッシュ4013を含んでいる。
0045 図5は図4のストレージノード内の典型的なポリシーテーブル4008を示す。テーブル内の各行はクライアントからファイルのオーナーノードにファイルアクセスパスをリダイレクトするか否か決定するポリシーを規定する。欄5001−5005は決定を行うための条件を含み、欄5006はアクセスをリダイレクトすべきか否か、即ちアクセスパスをファイルのオーナーノードに切り換えるべきか否かを指定する。ストレージシステム制御プログラム4007は、ファイル読み出し要求を受信するとその要求条件をチェックする。ポリシーテーブル4008の行の中に適合したポリシーが検出されれば、ストレージシステム制御プログラム4007は欄5006のリダイレクト情報に従って進行する。
0046 欄5001は要求を送信するクライアント1000のIDを含む。例えば、IDはクライアントコンピュータのIPアドレスとすることができる。クライアントコンピュータ内のアプリケーションプログラムがHTTPリダイレクトをサポートしていないならば、クライアントのIPアドレスをこの欄で指定し欄5006内のエントリーを“No”と指定することができ、その結果リダイレクト応答はクライアントコンピュータに返送されない。欄5002は要求されるファイルのタイプを含む。タイプは、例えば、ファイル名の拡張子を参照することで決定することができる。欄5003は要求されたファイルのサイズに関する条件を含む。欄5004は要求されたファイルのパスに関する条件を含む。例えば、“/large/files/*”は/large/filesという名のディレクトリ又はそのサブディレクトリの一つに保存された任意のファイルと適合する。欄5005は、クライアントから送信されるHTTP要求ヘッダーにて指定される一つ以上の要求パラメータに関する条件を含む。例えば、“X−Redirect=Yes”は“X−Redirect”という名のヘッダーフィールドと“Yes”という値を持つ任意の要求に適合する。この欄はリダイレクトをサポートするクライアントを分類するためにも使用できる。欄5001−5005の任意の欄に記録される“*”というエントリーは何も条件が決められていない、即ちどんな要求でも条件を満たすことを意味する。もし要求が一つの行の中にある欄5001−5005内に記録されたすべての条件を満たすならば、欄5006内に記録されたポリシーが要求に対して適用される。欄5006内の“Yes”エントリーは要求がリダイレクトされるべきであることを意味する。“No”エントリーはそうすべきでないことを意味する。
0047 図6は図4のストレージノード内の典型的なノードテーブル4009を示す。各行はストレージシステム1003内のノード1004のID(欄6001)及びそのLAN I/F4002のIPアドレス(欄6002)を含む。ノードはこのテーブルを参照することでネットワーク内の他のノードを特定することができる。もしノードがストレージシステムに追加されたり、又はストレージシステムから取り除かれたならば、ノードのエントリーがテーブルに追加され又はテーブルから取り除かれる。このテーブルを維持するためにこの技術分野の当業者に知られている任意の適切なプロセスを使用できる。
0048 図7は図4のストレージノード内の典型的なファイルテーブル4010を示す。そこにはストレージシステム1003内に保存されるすべてのファイルに関する情報が含まれる。各行は外部パスエントリー7001、ファイルサイズエントリー7002、及びオーナーノードIDエントリー7003を含む。
0049 図8は図4のストレージノード1004内の典型的なパステーブル4011を示す。そこにはノード1004に保存される各ファイルに対する欄8001の外部ファイルパスと欄8002の内部ファイルパス間のマッピングに関する情報が含まれる。例えば図7と図8で分かるように、クライアントに/dirA/text.txtとして明らかにされたファイルは内部ファイル/internalDirA/xxxとしてノード3のストレージエリアに保存される。
0050 図9は図4のストレージノード1004内の典型的なキャッシュテーブル4012を示す。そこにはメモリ内にキャッシュされるファイルに関する情報が含まれる。各行にはキャッシュファイルの外部パスエントリー9001とそのメモリ内のキャッシュロケーションエントリー9002が含まれる。
0051 図10は図3の管理サーバ1001内の管理プログラム3005によるプロセスフローの例を示す。図示の実施例のプロセスフローはポリシー管理とファイル移行を含む。初めに、ユーザインタフェース3003を経由してユーザから要求を受信する(ステップ10001)。受信した要求がポリシー管理要求であれば(ステップ10002)、管理プログラム3005はストレージシステム1003内のノード1004の一つにポリシーテーブル読み出し要求を送信(ステップ10003)し、ポリシーテーブル4008を受信し、その中に含まれる情報を表示する(ステップ10004)。ユーザが情報を編集した後、管理プログラム3005は、すべてのノード1004にポリシーテーブル更新要求を送信する(ステップ10005)ことでストレージシステム1003内のポリシーを更新する。すべてのノード1004内のポリシーテーブル4008は同一である。本実施例では、単純化のため、管理プログラム3005はノードテーブル4009も受信し、すべてのノード1004内のすべてのポリシーテーブルを更新するためにノードテーブル内に記録される各ノードにポリシーテーブル更新要求を送信する。
0052 もし受信した要求がファイル移行要求であれば(ステップ10006)、管理プログラム3005はストレージシステム1003内のノード1004の一つにノードテーブル読み出し要求を送信し(ステップ10007)、ノードテーブル4009を受信し、ユーザがノードを選択できるようにノードのリストを表示する(ステップ10008)。ユーザがノード1004を選択した後、管理プログラム3005は選択したノードにパステーブル読み出し要求を送信し(ステップ10009)、選択したノードのパステーブル4011を受信し、ユーザが移行対象ファイルを選択できるように選択したノード内に保存されるファイルのリストを表示する(ステップ10010)。ユーザが移行対象ファイルと送付先ノードを選択した後、管理プログラム3005はステップ10008で選択したノードにファイル移行要求を送信する(ステップ10011)。もし要求がポリシー管理要求でもファイル移行要求でもないならば、管理プログラム3005は要求元にエラーメッセージを送信する(ステップ10012)。
0053 図11は図4のストレージノード1004内のストレージシステム制御プログラム4007のプロセスフローの例を示す。プログラムはクライアント1000、他のノード1004、又は管理サーバ1001から要求を受信する(ステップ11001)。受信される要求は、クライアントからの書き込み要求(ステップ11002、11010)、クライアントからの読み出し要求(ステップ11003、11011)、他のノードからの内部書き込み要求(ステップ11004、11012)、他のノードからの内部読み出し要求(ステップ11005、11013)、他のノードからの先読み要求(ステップ11006、11014)、管理サーバからのテーブル読み出し要求(ステップ11007、11015)、管理サーバ又は他のノードからのテーブル更新要求(ステップ11008、11016)、又は管理サーバからの移行要求(ステップ11009、11017)、の一つである。そうでない場合は、要求元にエラーメッセージが返送される(ステップ11018)。もしストレージシステム制御プログラム4007がテーブル読み出し要求を受信するならば(ステップ11007)、指定されたテーブルが要求元に送信される(ステップ11015)。もしストレージシステム制御プログラム4007がテーブル更新要求を受信するならば(ステップ11008)、指定されたテーブルが指定された値で更新される(ステップ11016)。他のプロセス(ステップ11010−11014、11017)の詳細は以下に述べる。
0054 図12は図4のストレージノード1004内のストレージシステム制御プログラム4007による書き込み要求のプロセスフローの例を示す。ノード内のストレージシステム制御プログラム4007が書き込み要求を受信すると、その要求から保存対象ファイルとその外部パスを抽出する(ステップ12011)。次いで、ファイルのオーナーノードが選択される。ストレージシステム1003内のノード1004を選択するのにいくつかの方法がある。例えば、ストレージシステム制御プログラム4007はノードの中で最大の使用可能容量を持つノードを選択することができる。もし選択したノードがレシーバノード自身である場合(ステップ12003)は、ファイルに固有の内部パスを割り当てて保存する(ステップ12004)。パスがファイルテーブル4010とパステーブル4011に記録される(ステップ12005)。ストレージシステム制御プログラム4007は更に他のノード内のファイルテーブルを更新するためにそれらのノードにテーブル更新要求を送信し(ステップ12006)、その結果すべてのファイルテーブルは同一になる。選択したノードが異なったノードであるならば、ストレージシステム制御プログラム4007は選択したノードに書き込み対象ファイルとその外部パスを含む内部書き込み要求を送信する(ステップ12007)。
0055 図13は図4のストレージノード1004内のストレージシステム制御プログラム4007による内部書き込み要求のプロセスフローの例を示す。ノードが内部書き込み要求を受信すると、保存対象ファイルとその外部パスを抽出する(ステップ13001)。残りのステップ(ステップ13002−13004)は図12のステップ12004−12006と同じである。
0056 図14は図4のストレージノード1004内のストレージシステム制御プログラムによる読み出し要求のプロセスフローの例を示す。ストレージシステム制御プログラム4007は、読み出し要求を受信すると、読み出し対象ファイルの外部パス及びその要求内のHTTPヘッダーフィールドを含むその他のパラメータを抽出する(ステップ14001)。次いで指定されたファイルを保存するオーナーノードを特定する(ステップ14002)。もしオーナーノードがレシーバノード自身であるならば(ステップ14003)、ストレージシステム制御プログラム4007は、キャッシュテーブル4012を調べることによりファイルがメモリ内にキャッシュされているか否かチェックする(14010)。もしキャッシュされていれば、ファイルがキャッシュから読み出される(ステップ14013)。そうでない場合は、ストレージシステム制御プログラム4007は、パステーブル4011を調べることによりファイルの内部パスを特定し(ステップ14011)、ファイルをディスクから読み出す(ステップ14012)。その後、ストレージシステム制御プログラム4007は要求を行ったクライアント1000にファイルを送信する(ステップ14016)。もしオーナーノードがレシーバノードでないならば、ストレージシステム制御プログラム4007は、読み出し要求を送信したクライアントを特定し(ステップ14004)、要求されたファイルのタイプとサイズを決定する(ステップ14005)。ストレージシステム制御プログラム4007は、ステップ14001で抽出したものに加えてこの情報を基にして、ポリシーテーブル4008を調べることによりこの要求をリダイレクトするか否か決定する(ステップ14006)。条件がこの要求に適合し欄5006に記録されたリダイレクト指示のエントリーが“YES”であるポリシーが存在するならば(ステップ14007)、ストレージシステム制御プログラム4007はキャッシュに格納される先読み対象ファイルを指定する先読み要求をファイルのオーナーノードに送信し(ステップ14008)、要求を行ったクライアントにリダイレクト応答を返送する(ステップ14009)。その応答は、クライアントにその値が当初要求されたURLであるロケーションフィールドとロケーションヘッダーフィールドで指定されたURLにアクセスさせるHTTP応答コード302、303、又は307を持っているが、そのホスト部分は、ノードテーブル4009を調べることで得られるオーナーノードのIPアドレスに置き換えられている。例えば、リダイレクト応答は以下に示すヘッダーを持っている:
HTTP/1.1 303 See Other
Location:http://<オーナーノードのIPアドレス>/<ファイルの外部パス>

もし適合したポリシーのリダイレクト指示が“No”であるか、又はどのポリシーにも適合しないならば、ストレージシステム制御プログラム4007は、オーナーノードに内部読み出し要求を送信し(ステップ14014)、オーナーノードからファイルを受信する(ステップ14015)。最後に、プログラムはそのファイルをクライアントに送信する(ステップ14016)。
0057 図15は図4のストレージノード1004内のストレージシステム制御プログラム4007による内部読み出し要求のプロセスフローの例を示す。ストレージシステム制御プログラム4007が他のノードから内部読み出し要求を受信すると、読み出し対象ファイルの外部パスを抽出し(ステップ15001)、キャッシュ又はディスクから指定されたファイルを読み出す(ステップ15002−15005)。これらのステップは図14のステップ14010−14013と同じである。その後、ストレージシステム制御プログラム4007は内部読み出し要求を送信したノードにファイルを送信する(ステップ15006)。
0058 図16は図4のストレージノード1004内のストレージシステム制御プログラム4007による先読み要求のプロセスフローの例を示す。ストレージシステム制御プログラム4007は、別のノードから先読み要求を受信すると、読み出し対象ファイルの外部パスを抽出し(ステップ16001)、パステーブル4011を調べて内部パスを特定し(ステップ16002)、ディスクから指定ファイルを読み出しキャッシュメモリに格納する(ステップ16003)。プログラムは更に、キャッシュテーブル4012内にキャッシュメモリのロケーションを記録する(ステップ16004)。
0059 図17は図4のストレージノード1004内のストレージシステム制御プログラム4007によるファイル移行要求のプロセスフローの例を示す。ストレージシステム制御プログラム4007は、管理サーバからファイル移行要求を受信すると、移行対象ファイルの外部パスと要求内の送付先ノードのIDを抽出し(ステップ17001)、キャッシュ又はディスクから指定されたファイルを読み出す(ステップ17002)。ステップ17002は図14のプロセスステップ14010−14013又は図15のプロセスステップ15002−15005と同じである。次いで、ストレージシステム制御プログラム4007は送付先ノードにファイルとその外部パスを含む内部書き込み要求を送信し(ステップ17003)、ディスクとキャッシュ内に保存されたファイルを削除し(ステップ17004)、最後にパステーブル4011とキャッシュテーブル4012内の削除済みファイルの記録も削除する(ステップ17005)。このプロセスは送付先ノード内にファイルの新たなコピーを作成し、元のノード内のファイルを削除することで、一つのノードから別のノードにファイルを移行する。ファイルテーブル4010は内部書き込み要求のプロセスの一部として送付先ノードによって更新される。このプロセスは、たとえファイルがノード間で移行されるにしても、ファイルテーブル4010とパステーブル4011を正確に維持し、その結果リダイレクト応答は常に正しいロケーションヘッダーフィールド値を含む。
0060 本実施例に於いて、クライアントから読み出し対象ファイルのオーナーノードへのパスの切り換えは、標準のHTTPの応答コードを指定することで達成される。しかしながら、クライアントがリダイレクトの仕組みをサポートでき、認識できるならば、ファイルへの適切なパスをクライアントに提供する何か他の標準又は独自の通信プロトコルを使用することも可能である。
0061 図18−21に示す第2の実施例に於いて、ノード1004は、クライアントからストレージシステム1003内に保存されるファイルを受信すると、予め決められたポリシーに基づいてファイルの読み出し要求をそのオーナーノードにリダイレクトすべきか否か決定し、その結果をファイルテーブル4010内にリダイレクトフラグとして記録する。ノード1004は、ファイル読み出し要求を受信すると、リダイレクトフラグエントリーをチェックしリダイレクトフラグエントリーに基づいて要求をリダイレクトするか否か決定する。第2の実施例と第1の実施例間の相違点は以下に述べる通りである。
0062 図18は第2の実施例に従う典型的なファイルテーブル4010を示す。ファイルテーブル4010はリダイレクトフラグを記録する欄18003を持つ。この欄の“Yes”は、ファイル読み出し要求をそのオーナーノードにリダイレクトすべきであることを意味する。“No”はリダイレクトすべきでないことを意味する。
0063 図19はストレージノード1004内のストレージシステム制御プログラム4007による書き込み要求のプロセスフローの例を示す。第1の実施例の図12と比較すると、ステップ19008−19013がステップ12004とステップ12005の間に挿入されている。ステップ19008で、プログラムは要求を送信するクライアントを特定し、ステップ19009で、保存されるファイルのタイプとサイズを決定する。次いでプログラムはリダイレクトポリシーをチェックし(ステップ19010)、アクセス要求をリダイレクトするか否か確認する(ステップ19011)。これらの追加のステップ(19008−19011)は、保存されるファイルに関する情報と予め決められたポリシーに基づいて、ファイル読み出し要求をリダイレクトすべきか否か決定する。決定値が図18のファイルテーブル4010内のファイルリダイレクトフラグとして、“Yes”(ステップ19012)又は“No”(ステップ19013)のように記録される。フラグを含めて更新したファイルテーブル4010はすべてのノードに共有される(ステップ12006)。
0064 図20は第2の実施例に従うストレージノード1004内のストレージシステム制御プログラム4007による内部書き込み要求のプロセスフローの例を示す。第1の実施例の図13と比較すると、図20に示すように、内部書き込み要求のプロセスフロー中に図19のステップ19008-19013と同じ追加のステップがステップ20007-20012として挿入されており、その結果リダイレクトフラグがファイルテーブル4010に記録される。
0065 図21はストレージノード1004内のストレージシステム制御プログラム4007による読み出し要求のプロセスフローの例を示す。第1の実施例の図14と比較すると、各リダイレクトポリシーの多数の条件をチェックするステップ14004-14006が、ファイルのリダイレクトフラグをチェックするだけのステップ21004に置き換えられている。第2の実施例では、読み出し要求をリダイレクトすべきか否か決定するプロセスは、第1の実施例に従う読み出し要求の処理に含まれる決定ステップのいくつかを、ファイルが保存される時点での第2の実施例に従う書き込み要求の処理でのステップに代えることで単純化され、その結果ファイル転送の待ち時間が読み出し要求の処理に於いて減少する。更に、この方法を第1の実施例で開示した方法と共に使用することも可能であり、その結果リダイレクト条件をより柔軟に管理することができる。
0066 図22−26に示す第3の実施例に於いて、ファイルは多数のポーションに分割され、各ポーションはノード1004の一つに保存され、その結果クライアントはスループットを向上するために、多数のノードから異なったファイルのポーションを同時に読み出すことが可能である。ノード1004は、クライアント1000にパスを切り換えるように伝える時に、各ファイルポーションのロケーション情報を送信する。パスを変更すべきでない時、ノードは他のノードからファイルポーションを収集しそれらを一つのファイルとして編成してクライアントに送信する。第3の実施例と第1の実施例間の相違は以下に述べる通りである。
0067 図22は第3の実施例に従うストレージノード1004内の典型的なファイルテーブル4010を示す。一つのファイルがポーションに分割され、各ポーションはその外部パス(ポーションパス欄22003)を持つ。ポーションの外部パスはポーションの生成時にストレージシステム制御プログラム4007により生成される。例えば、図22に示すように、ポーションの外部パスは元のファイルの外部パスに対して連続するポーションに連続する番号を付加することで生成される。元のファイルのポーションのロケーションも記録される(範囲欄22004)。ポーションがノード間で分散しているため各ポーションはオーナーノードを持つ(オーナーノード欄22005)。
0068 図23は第3の実施例に従うストレージノード1004内の新たなテーブルである典型的なポーションサイズテーブル23001を示す。ポーションサイズテーブル23001はメモリ4003内に保存される。一つのファイルがポーションに分割されるので、各ポーションのサイズはこのテーブルで指定されるサイズと同等か、より小さくなる。
0069 図24は第3の実施例に従うストレージノード1004内のストレージシステム制御プログラム4007による書き込み要求のプロセスフローの例を示す。第1の実施例の図12と比較すると、ステップ24002と24003がステップ12001とステップ12002の間に挿入され、図24のステップ24004−24008は図12のステップ12004、12005、12007を置き換えたものである。ステップ24002で、保存対象ファイルはポーションサイズテーブル23001内に記録されたサイズに基づいてポーションに分割され、ポーションに対する外部パス名が生成される。ステップ24003で、外部パスと保存対象ファイルサイズがファイルテーブル4010の欄7001と7002に記録される。各ポーションに対して、ストレージシステム制御プログラム4007はオーナーノードを選択する(ステップ12002)。もし選択したノードがレシーバノード自身でないならば、ストレージシステム制御プログラム4007はポーションを書き込むためにノードに内部書き込み要求を送信する(ステップ24008)。そうでない場合は、プログラムは内部ファイルとしてポーションを保存しパステーブル4011内に内部パスを記録する(ステップ24004と24005)。保存された各ポーションに対して、ストレージシステム制御プログラム4007はその外部パス、元のファイル内のその範囲、及びそのオーナーノードをファイルテーブル4010に記録する(ステップ24006)。これらのステップは、すべてのポーションが保存されるまで繰り返される(ステップ24007)。最後に、ストレージシステム制御プログラム4007はそれらのファイルテーブル4010を更新するために他のノードにテーブル更新要求を送信する(ステップ12006)。
0070 図25は第3の実施例に従うストレージノード1004内のストレージシステム制御プログラム4007による内部書き込み要求のプロセスフローの例を示す。ストレージシステム制御プログラム4007は書き込み対象のポーションファイルとその外部パスを受信し(ステップ25001)、内部ファイルとしてポーションを保存し(ステップ25002)、パステーブル4011にその外部パスと内部パスを記録する(ステップ25003)。ファイルテーブルが保存対象ファイルのオーナーノードにより更新される第1の実施例とは異なり、本実施例ではファイルテーブルは書き込み要求のレシーバノードにより更新される。
0071 図26は第3の実施例に従うストレージノード1004内のストレージシステム制御プログラム4007による読み出し要求のプロセスフローの例を示す。第1の実施例の図14に比較すると、ステップ26002−26004が図14のステップ14002-14003から置き換わっており、ステップ26008-26021がステップ14008-14016から置き換わっている。もし指定されたファイルの外部パスがファイルテーブル4010内にファイルのポーションとして記録されているならば(ステップ26002)、ストレージシステム制御プログラム4007はポーションファイルを読み出し(ステップ26004)、それをクライアントに送信する(ステップ26021)。そうでない場合は、プログラムは各読み出し対象のファイルの各ポーションに対してファイルテーブル4010を調べることによりオーナーノードを特定する(ステップ26003)。プログラムは要求を送信するクライアントを特定し(ステップ14004)、読み出し対象ファイルのタイプとサイズを決定し(ステップ14005)、リダイレクトポリシーをチェックする(ステップ14006)。もし要求をリダイレクトするように決定されれば(ステップ14007)、ストレージシステム制御プログラム4007は自身以外のオーナーノードにポーションを先読みしてキャッシュに格納するための先読み要求を送信する(ステップ26008)。もしファイルの第1のポーションのオーナーノードがレシーバノード自身であるならば(ステップ26009と26010)、ストレージシステム制御プログラム4007は第一のポーションを読み出し(ステップ26013)、ポーションとポーションに関する情報を返送する(ステップ26014)。例えば、その情報は以下に示すようにHTTP応答ヘッダーの一部として構成することができる:
HTTP/1.1 206 Partial Content
Content−Range:bytes 0−49999999/500000000
Content−Length:50000000
X−Number−of−portions:4
X−Portion−Location1:http://<第1のポーションのオーナーノード>/<第1のポーションの外部パス>
X−Portion−Range1:0−49999999
X−Portion−Location2:http://<第2のポーションのオーナーノード>/<第2のポーションの外部パス>
X−Portion−Range2:50000000−99999999
0072 X−Number−Lengthフィールドは要求されたファイルのポーションの数を含む。X−Portion−Location<N>フィールドはN番目のファイルのポーションのURLを含む。X−Portion−Range<N>フィールドは元のファイルのN番目のポーションの範囲を含む。応答の本体はファイルのポーションを含む。これらのヘッダーフィールドを参照することで、クライアント1000はファイルの分割方法やポーションへの適切なパスを理解できる。最後に、ストレージシステム制御プログラム4007はノードに保存された任意の他のポーションを先読みし(ステップ26015)、その結果、プログラムはポーションファイルに対する読み出し要求を処理するための待ち時間を低減することができる。
0073 第1のポーションがレシーバノード内に保存されていないならば、ストレージシステム制御プログラム4007はクライアントにポーションに関する情報を提供するために、クライアント1000にリダイレクト応答を返送する(ステップ26011)。例えば、その情報は以下に示すHTTP応答ヘッダーの一部として構成され得る:
HTTP/1.1 303 See Other
Location:http://<第1のポーションのオーナーノード>/<第1のポーションの外部パス>
X−Number−of−portions:4
X−Portion−Location1:http://<第1のポーションのオーナーノード>/<第1のポーションの外部パス>
X−Portion−Range1:0−49999999
X−Portion−Location2:http://<第2のポーションのオーナーノード>/<第2のポーションの外部パス>
X−Portion−Range2:50000000−99999999
0074 応答コードは302又は307であってもよい。この応答はこの要求を第1のポーションのURLにリダイレクトする。最後に、ストレージシステム制御プログラム4007はノード内に保存されたポーションを先読みする(ステップ26012)。
0075 各ポーションに対して(ステップ26016)、要求をリダイレクトしないように決定される場合(ステップ14007)は、ストレージシステム制御プログラム4007はそれがレシーバノードに保存されていれば(ステップ26017)キャッシュ又はディスクからそれを読み出す(ステップ26019)か、又はそのオーナーノードへの外部パスを指定する内部読み出し要求を送信し、オーナーノードからポーションを受信する(ステップ26018)。プログラムは、すべてのポーションを入手した後(ステップ26020)、それらを元のファイルに編成し、クライアントに送信する(ステップ26021)。
0076 本実施例では、ファイルがポーションに分割され多数のノード内に保存される。クライアントは単一の読み出し要求により分割されたファイルを読み出すことができる。更に、クライアントは、ポーションに関する情報が予め決められたポリシーに基づいてストレージシステムからクライアントに送信されるので、スループットを向上するために、個別の読み出し要求を送信することにより各々のポーションを要求することができる。
0077 前述から、本発明は、クライアントに単一のネームスペースを提供する分散型ストレージシステムの性能を改善する方法、装置及びコンピュータ読み取り可能媒体に保存されるプログラムを提供することが明白であろう。更に、本明細書内で特定の実施例が図示され、記述されてきたが、本技術分野の当業者は、同じ目的を達成することが予測される任意の構成が、開示された特定の実施例に対して置換可能であることを十分理解する。ここでの開示は本発明の任意かつすべての翻案又は変形にも及ぶように企図されており、当然のことながら以下の特許請求範囲で使用される表現は発明をこの明細書の中で開示された特定の実施例に限定するように解釈すべきでない。もっと正確に言えば本発明の範囲は専ら以下の請求項によって決定されるべきであり、それらはそのような請求項が権利を有する均等な全範囲に沿って、請求項の解釈に於ける確立した理論に従って解釈されるべきである。

Claims (20)

  1. 分散型ストレージシステム内のファイルへのアクセスを提供するシステムに於いて、該システムは、ネットワークを経由して接続される複数のストレージノードと少なくとも一式のコンピュータ装置を含み、
    各ストレージノードは、前記少なくとも一式のコンピュータ装置の一つからファイルへのファイルアクセス要求をレシーバストレージノードとして受信すると、予め定められたポリシーに従って、該ファイルアクセス要求を該ファイルのオーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定するように構成され、
    前記予め定められたポリシーは、前記ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいて、前記ファイルアクセス要求をリダイレクトするか否かの条件を規定する、
    ことを特徴とするシステム。
  2. 前記レシーバストレージノードは、前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトする際に、前記ファイルをキャッシュに格納する先読み対象に指定する、先読み要求を前記オーナーストレージノードに送信するように構成される、ことを特徴とする請求項1に記載のシステム。
  3. 前記レシーバストレージノードは、前記ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいて前記ファイルアクセス要求をリダイレクトするか否かの前記条件を指定するポリシーテーブルを調べることにより、前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定する、ことを特徴とする請求項1に記載のシステム。
  4. 前記条件は、前記ファイルの前記ファイルタイプと前記ファイルサイズの両者に基づいており、更に前記ファイルを要求する前記コンピュータ装置、前記ファイルの外部パスの少なくとも一方、又は前記ファイルアクセス要求の中で指定される少なくとも一つの要求パラメータに基づいている、ことを特徴とする請求項3に記載のシステム。
  5. 前記ポリシーテーブルは前記ストレージノード各々の中に保存される、ことを特徴とする請求項3に記載のシステム。
  6. 前記レシーバストレージノードは、前記ファイルに対するリダイレクトフラグを調べることにより、前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトするように前記ファイルアクセスを行っている前記コンピュータ装置に通知するか否か決定し、該リダイレクトフラグは、前記ストレージノード内に保存される各ファイルに対して、それに対応するファイルへのファイルアクセス要求をリダイレクトするか否か指定する、ことを特徴とする請求項1に記載のシステム。
  7. 前記リダイレクトフラグは、ファイルが前記ストレージノードの一つに書き込まれる時点で以下のステップ、即ち、
    前記ファイルの前記ファイルタイプ又は前記ファイルサイズの少なくとも一方に基づいて前記予め定められたポリシーに従って、ファイルアクセス要求を前記ファイルのオーナーストレージノードにリダイレクトするか否か決定するステップと、
    前記決定するステップに従って、前記リダイレクトフラグをリダイレクトすべく又はリダイレクトしないように設定するステップ、
    を実行することにより設定される、ことを特徴とする請求項6に記載のシステム。
  8. 前記ファイルアクセス要求の前記ファイルは多数のポーションに分割されて複数の前記ストレージノード内に保存され、
    各ストレージノードは、前記レシーバストレージノードとして、予め定められたポリシーに従って、前記ファイルアクセス要求を前記ファイルの前記多数のポーションのオーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定するように構成される、
    ことを特徴とする請求項1に記載のシステム。
  9. 前記レシーバストレージノードは、前記ファイルアクセス要求を前記ファイルの前記多数のポーションの前記オーナーストレージノードにリダイレクトする際に、前記ファイルの前記ポーションをキャッシュに格納する先読み対象に指定する、先読み要求を前記レシーバストレージノード以外の各オーナーストレージノードに送信するように構成される、ことを特徴とする請求項8に記載のシステム。
  10. 各ストレージノードは、ファイルを送付先ストレージノードに移行するための移行要求を受信すると、該移行対象ファイルの外部パスを抽出し、発生元ストレージノードから前記ファイルを読み出し、前記ファイルと前記ファイルの該外部パスを含む内部書き込み要求を該送付先ストレージノードに送信し、該発生元ストレージノードから前記移行済みのファイルを削除し、前記分散型ストレージシステム内の前記移行済みファイルのロケーション記録を更新する、ように構成される、ことを特徴とする請求項1に記載のシステム。
  11. 前記レシーバストレージノードは、前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトしない場合、前記オーナーストレージノードから前記ファイルを読み出し、前記読み出したファイルを前記ファイルアクセス要求を行っている前記コンピュータ装置に送信する、ように構成される、ことを特徴とする請求項1に記載のシステム。
  12. 前記予め定められたポリシーは、前記ファイルの前記ファイルタイプ、前記ファイルの前記ファイルサイズ、前記ファイルを要求する前記コンピュータ装置、前記ファイルの外部パス、の少なくとも一つ、又は前記ファイルアクセス要求の中で指定される少なくとも一つの要求パラメータ、に基づいて、前記ファイルアクセス要求をリダイレクトするか否かの条件を規定する、ことを特徴とする請求項1に記載のシステム。
  13. ネットワークを経由して接続される分散型ストレージシステムと少なくとも一式のコンピュータ装置とを有するシステムに於いて、
    前記少なくとも一式のコンピュータ装置の一つからファイルへのファイルアクセス要求を受信時、予め定められたポリシーに従って、該ファイルアクセス要求を該ファイルのオーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定するステップを含み、
    前記予め定められたポリシーは、前記ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいて、前記ファイルアクセス要求をリダイレクトするか否かの条件を規定する、ことを特徴とする分散型ストレージシステム内の複数のストレージノード内のファイルへのアクセスを提供する方法。
  14. 前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトするように決定されたなら、前記ファイルをキャッシュに格納する先読み対象に指定する、先読み要求を前記オーナーストレージノードに送信するステップ、を更に含む、ことを特徴とする請求項13に記載の方法。
  15. 前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定するステップは、前記ファイルのファイルタイプ又はファイルサイズの少なくとも一方に基づいて前記ファイルアクセス要求をリダイレクトするか否かの前記条件を指定するポリシーテーブルを調べるステップを含む、ことを特徴とする請求項13に記載の方法。
  16. 前記ファイルアクセス要求を前記オーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定するステップは、前記ファイルに対するリダイレクトフラグを調べるステップを含み、該リダイレクトフラグは前記ストレージノード内に保存される各ファイルに対して、それに対応するファイルへのファイルアクセス要求をリダイレクトするか否か指定する、ことを特徴とする請求項13に記載の方法。
  17. ファイルが前記ストレージノードの一つに書き込まれる時点で以下のステップ即ち、
    前記ファイルの前記ファイルタイプ又は前記ファイルサイズの少なくとも一方に基づいて前記予め定められたポリシーに従って、ファイルアクセス要求を前記ファイルのオーナーストレージノードにリダイレクトするか否か決定するステップと、
    前記決定するステップに従って、リダイレクトするか否かに対する前記リダイレクトフラグを設定するステップ、
    を実行することにより前記リダイレクトフラグを設定するステップ、を更に含む、ことを特徴とする請求項16に記載の方法。
  18. 前記ファイルアクセス要求の前記ファイルは多数のポーションに分割されて複数の前記ストレージノード内に保存され、
    前記決定するステップは、前記予め定められたポリシーに従って、前記ファイルアクセス要求を前記ファイルの前記多数のポーションのオーナーストレージノードにリダイレクトするように前記ファイルアクセス要求を行っている前記コンピュータ装置に通知するか否か決定するステップを含む、
    ことを特徴とする請求項13に記載の方法。
  19. ファイルを送付先ストレージノードに移行する移行要求を受信時に、
    前記移行対象ファイルの外部パスを抽出するステップと、
    発生元ストレージノードから前記ファイルを読み出すステップと、
    前記ファイルと前記ファイルの前記外部パスを含む内部書き込み要求を前記送付先ストレージノードに送信するステップと、
    前記発生元ストレージノードから前記移行済みファイルを削除するステップと、
    前記分散型ストレージシステム内の前記移行済みファイルのロケーション記録を更新するステップ、
    を更に含む、ことを特徴とする請求項13に記載の方法。
  20. 前記予め定められたポリシーは、前記ファイルの前記ファイルタイプ、前記ファイルの前記ファイルサイズ、前記ファイルを要求する前記コンピュータ装置、前記ファイルの外部パスの、少なくとも一つ、又は前記ファイルアクセス要求内で指定される少なくとも一つの要求パラメータ、に基づいて、前記ファイルアクセス要求をリダイレクトするか否かに対する条件を規定する、ことを特徴とする請求項13に記載の方法。
JP2009199343A 2008-10-07 2009-08-31 分散型ストレージシステムのファイルアクセス性能を改善する方法と装置 Expired - Fee Related JP5337633B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/246,520 US8086634B2 (en) 2008-10-07 2008-10-07 Method and apparatus for improving file access performance of distributed storage system
US12/246,520 2008-10-07

Publications (2)

Publication Number Publication Date
JP2010092463A true JP2010092463A (ja) 2010-04-22
JP5337633B2 JP5337633B2 (ja) 2013-11-06

Family

ID=41479310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009199343A Expired - Fee Related JP5337633B2 (ja) 2008-10-07 2009-08-31 分散型ストレージシステムのファイルアクセス性能を改善する方法と装置

Country Status (3)

Country Link
US (1) US8086634B2 (ja)
EP (1) EP2175383A1 (ja)
JP (1) JP5337633B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190099A (ja) * 2011-03-09 2012-10-04 Nec Corp ストレージシステム
JP2017201491A (ja) * 2016-05-06 2017-11-09 コニカミノルタ株式会社 印刷システム、印刷管理サーバ、通信中継装置およびプログラム

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100049474A (ko) * 2008-11-03 2010-05-12 삼성전자주식회사 원격 사용자 인터페이스를 다른 디바이스로 이전하기 위한 장치 및 방법
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
EP3021193A1 (en) * 2010-12-27 2016-05-18 Amplidata NV Low power storage nodes
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8745329B2 (en) * 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
CN102073741B (zh) * 2011-01-30 2013-08-28 宇龙计算机通信科技(深圳)有限公司 一种实现文件读取和/或写入的方法以及数据服务器
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储系统
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US9032061B1 (en) * 2011-12-30 2015-05-12 Emc Corporation Policy based intelligent data placement
US9195666B2 (en) * 2012-01-17 2015-11-24 Apple Inc. Location independent files
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US20130339605A1 (en) * 2012-06-19 2013-12-19 International Business Machines Corporation Uniform storage collaboration and access
CN103491137A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 数据同步系统和数据同步方法
CN103714183B (zh) * 2014-01-10 2017-02-15 浪潮(北京)电子信息产业有限公司 一种元数据租约期限的动态获取方法和系统
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9094443B1 (en) 2014-07-30 2015-07-28 Iboss, Inc. Web redirection for content scanning
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
KR20160041398A (ko) * 2014-10-07 2016-04-18 삼성전자주식회사 컨텐츠 처리 장치 및 그의 컨텐츠 처리 방법
US10469580B2 (en) * 2014-12-12 2019-11-05 International Business Machines Corporation Clientless software defined grid
US10554749B2 (en) * 2014-12-12 2020-02-04 International Business Machines Corporation Clientless software defined grid
US9596183B2 (en) * 2014-12-12 2017-03-14 Western Digital Technologies, Inc. NAS off-loading of network traffic for shared files
US10572443B2 (en) 2015-02-11 2020-02-25 Spectra Logic Corporation Automated backup of network attached storage
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
WO2017111986A1 (en) * 2015-12-23 2017-06-29 Hewlett Packard Enterprise Development Lp Prefetching data in a distributed storage system
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
GB2567466B (en) * 2017-10-12 2020-01-22 Advanced Risc Mach Ltd Cache stashing in a data processing system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US20190236062A1 (en) * 2018-01-26 2019-08-01 Tranquil Data, Inc. System and method for using policy to achieve data segmentation
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11093493B1 (en) * 2018-09-28 2021-08-17 Amazon Technologies, Inc. Dynamically switching between query and scan for optimizing table reads
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN111435342B (zh) * 2019-01-14 2023-12-05 深圳市茁壮网络股份有限公司 海报的更新方法、更新系统以及管理系统
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
CN111913658B (zh) * 2020-07-13 2021-08-03 华中科技大学 一种提升云对象存储系统中负载性能的方法及系统
US11308986B2 (en) * 2020-08-11 2022-04-19 International Business Machines Corporation Event based reconcile operation for hierarchical storage management
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
JP2022119672A (ja) * 2021-02-04 2022-08-17 株式会社日立製作所 計算機システム、及び通信管理方法
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991230A (ja) * 1995-09-26 1997-04-04 Matsushita Electric Ind Co Ltd データ転送システム
JP2001243142A (ja) * 2000-02-28 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> リクエスト振り分け方法、リクエスト振り分けシステムおよびリクエスト振り分け処理プログラムを記録した記録媒体
JP2002334012A (ja) * 2001-05-10 2002-11-22 Nippon Telegr & Teleph Corp <Ntt> サービス要求処理方法及びその実施システム並びにその処理プログラムと記録媒体
JP2004127189A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法
JP2005519351A (ja) * 2001-06-25 2005-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散ピアツーピア共用技術へクライアントを奨励する方法および装置
JP2008515120A (ja) * 2004-09-30 2008-05-08 ネオパス ネットワークス,インク. ストレージネットワーク用ストレージポリシーモニタリング

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US20030046335A1 (en) * 2001-08-30 2003-03-06 International Business Machines Corporation Efficiently serving large objects in a distributed computing network
US6675279B2 (en) * 2001-10-16 2004-01-06 International Business Machines Corporation Behavioral memory enabled fetch prediction mechanism within a data processing system
US6961819B2 (en) * 2002-04-26 2005-11-01 Mips Technologies, Inc. Method and apparatus for redirection of operations between interfaces
US6963959B2 (en) * 2002-10-31 2005-11-08 International Business Machines Corporation Storage system and method for reorganizing data to improve prefetch effectiveness and reduce seek distance
US7346664B2 (en) * 2003-04-24 2008-03-18 Neopath Networks, Inc. Transparent file migration using namespace replication
CA2543746C (en) * 2003-10-27 2018-01-16 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US20070022129A1 (en) * 2005-07-25 2007-01-25 Parascale, Inc. Rule driven automation of file placement, replication, and migration
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US20080221987A1 (en) * 2007-03-07 2008-09-11 Ebay Inc. System and method for contextual advertisement and merchandizing based on an automatically generated user demographic profile

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991230A (ja) * 1995-09-26 1997-04-04 Matsushita Electric Ind Co Ltd データ転送システム
JP2001243142A (ja) * 2000-02-28 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> リクエスト振り分け方法、リクエスト振り分けシステムおよびリクエスト振り分け処理プログラムを記録した記録媒体
JP2002334012A (ja) * 2001-05-10 2002-11-22 Nippon Telegr & Teleph Corp <Ntt> サービス要求処理方法及びその実施システム並びにその処理プログラムと記録媒体
JP2005519351A (ja) * 2001-06-25 2005-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散ピアツーピア共用技術へクライアントを奨励する方法および装置
JP2004127189A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法
JP2008515120A (ja) * 2004-09-30 2008-05-08 ネオパス ネットワークス,インク. ストレージネットワーク用ストレージポリシーモニタリング

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190099A (ja) * 2011-03-09 2012-10-04 Nec Corp ストレージシステム
JP2017201491A (ja) * 2016-05-06 2017-11-09 コニカミノルタ株式会社 印刷システム、印刷管理サーバ、通信中継装置およびプログラム
US10474402B2 (en) 2016-05-06 2019-11-12 Konica Minolta, Inc. Printing system, print management server, communication relay device, and recording medium

Also Published As

Publication number Publication date
EP2175383A1 (en) 2010-04-14
US20100088335A1 (en) 2010-04-08
JP5337633B2 (ja) 2013-11-06
US8086634B2 (en) 2011-12-27

Similar Documents

Publication Publication Date Title
JP5337633B2 (ja) 分散型ストレージシステムのファイルアクセス性能を改善する方法と装置
US11194719B2 (en) Cache optimization
US7404201B2 (en) Data distribution server
JP4278445B2 (ja) ネットワークシステム及びスイッチ
JP4284190B2 (ja) 管理対象オブジェクトの複写および配信
JP5066415B2 (ja) ファイルシステム仮想化のための方法および装置
US8463867B2 (en) Distributed storage network
US20040210583A1 (en) File migration device
JP2005539289A (ja) 区分アプリケーション・サービスのための透過的な要求の経路指定
JP4233900B2 (ja) 大容量記憶装置におけるデータの格納・読み出し制御
US20060206699A1 (en) Network boot system
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
US8250176B2 (en) File sharing method and file sharing system
JP2006195702A (ja) データ処理システム及び方法
US7240150B1 (en) Methods and apparatus for processing access requests in a content addressable computer system
JP2004318741A (ja) ネットワーク管理プログラム、管理計算機及び管理方法
CN109302448A (zh) 一种数据处理方法及装置
US10057348B2 (en) Storage fabric address based data block retrieval
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
US20050235005A1 (en) Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof
US11444998B2 (en) Bit rate reduction processing method for data file, and server
US20110282923A1 (en) File management system, method, and recording medium of program
US7428611B1 (en) Methods and apparatus for forwarding access requests in a content addressable computer system
JP2017215745A (ja) データ処理装置、データ処理方法およびプログラム
US7240151B1 (en) Methods and apparatus for transferring data in a content addressable computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130408

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130805

R150 Certificate of patent or registration of utility model

Ref document number: 5337633

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees