JP2004252663A - ストレージ装置、分担範囲決定方法及びプログラム - Google Patents
ストレージ装置、分担範囲決定方法及びプログラム Download PDFInfo
- Publication number
- JP2004252663A JP2004252663A JP2003041486A JP2003041486A JP2004252663A JP 2004252663 A JP2004252663 A JP 2004252663A JP 2003041486 A JP2003041486 A JP 2003041486A JP 2003041486 A JP2003041486 A JP 2003041486A JP 2004252663 A JP2004252663 A JP 2004252663A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- storage device
- range
- space
- adjacent
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】ストレージ装置のファイル記憶部15は、分散ストレージシステムが対象とするファイル識別子空間のうちで自ノードが分担する分担範囲に含まれるファイル識別子を持つファイルを格納する。空間幅決定部11は、自ノードの持つ重みと、隣接ノードの持つ重みとから、相対的な空間幅を決定する。空間割当制御部12は、自ノードのアドレスに所定のハッシュ関数を適用して、ファイル識別子空間における第1の基準位置を求め、同様に、隣接ノードのアドレスから第2の基準位置を求める、相対的な空間幅に基づいて、第1の基準位置から第2の基準位置までの範囲内について分担する分担範囲を決定する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、分散ストレージシステムの構成に用いられるストレージ装置、分散ストレージシステムが対象とする識別子空間のうちで自装置が分担する分担範囲を決定するための分担範囲決定方法及びプログラムに関する。
【0002】
【従来の技術】
近年、ネットワーク上に分散配置された計算機で処理を分担するグリッドコンピューティングや、災害への対応などへの要求から、広域ネットワークにストレージを多数分散配置して一つの仮想的なストレージを実現する、という分散ストレージシステムが注目されている。
【0003】
このようなシステムでは、システムを構成する各ストレージノードが増設や故障などによって頻繁に増減するため、ファイルシステムまたはファイルを手動で個別にストレージに割り当てるのは非現実的である。また、集中制御を行なうサーバを設けてファイルのストレージノードへの割り当てを集中管理する方式には、そのサーバの障害発生や負荷集中がシステム全体に影響するという問題がある。そのため、ファイルのストレージノードへの自動的な割り当てを、集中制御なしにどうやって分散して行なうかが問題とされていた。
【0004】
この問題を解決するため、非特許文献1や非特許文献2のような研究的な分散ストレージシステムでは、ストレージノードのアドレスにハッシュ関数を適用してノードIDを決めることによって、ストレージノードをファイルIDと同じ空間にマッピングし、当該ファイルの持つファイルIDに最も近いノードIDを持つストレージノードに、当該ファイルを割り当てている。
【0005】
この方式では、ファイルをどのストレージノードに格納するかは、他のストレージノードのノードIDのリストさえあれば、一つのストレージノード内での計算で決定できる。そのため、ファイルの割り当てを集中制御するサーバが不要になるほか、ファイルの割り当てをファイル一つ一つについてストレージノード間で個別に調整する必要もなくなる。よって、ストレージノードの増減の際にのみストレージノードのアドレスを他のストレージノードへ通知すればよく、ストレージノード間の通信量が減るとともに処理の並列性が向上する。
【0006】
ストレージノードが追加された場合には、追加されたストレージノードとハッシュ空間上で隣接するストレージノードとの中間点で空間の再分割を行ない、以前からあったストレージノードの担当していた空間の一部を新しいストレージノードが引き継いで担当する。逆にストレージノードがなくなる場合には、なくなるストレージノードが担当している空間を分割して両隣のストレージノードに追加分担してもらう。
【0007】
特定のストレージノードにファイルが集中しないよう、ファイルIDはファイルID空間上に一様に分散させる必要があるため、ハッシュ関数を用いてファイルIDをつけるのが一般的である。ハッシュ関数の引数としては、ファイル名を使う場合や、ファイルの中身のデータを使う場合などがある。
【0008】
ファイルは、CFSのようにブロック単位に分割してブロックごとにストレージノードに配置してもよいし、CANのようにファイル全体をまとめてストレージノードに配置してもよい。
【0009】
【非特許文献1】
CFS(Wide−area cooperative storage with CFS, Frank Dabek, M. Frans Kaashoek, David Karger, Robert Morris, and Ion Stoica, 18th ACM Symposium on Operating Systems Principles (SOSP ´01), October 2001)
【0010】
【非特許文献2】
CAN(A Scalable Content−Addressable Network, Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp and Scott Shenker, ACM SIGCOMM 2001)
【0011】
【発明が解決しようとする課題】
しかし、このようなハッシュによるファイルのストレージノードへの割り当てでは、個々のストレージノードに割り当てられる空間の大きさの期待値が全ストレージノードで均等となる。このため、記憶容量・演算能力・回線速度などがストレージノードごとに異なる場合に対応できない。これによって、容量の大きなストレージノードで容量が余っているのに、容量の小さなストレージノードでの容量不足が生じ、システム全体としてファイルの保存ができなくなったり、演算能力の低いストレージノードにも能力の高いストレージノードと同じ量のI/Oが要求されて応答速度が低下したりする、という問題が生じる。分散ストレージシステムを研究レベルを超えて実用に供する際には、この点が障害となる。
【0012】
CFSでは、この問題を回避するため、容量の大きなストレージノードを、仮想ノードと呼ばれる複数のストレージノードに仮想的に対応させることを提案している。確かに、容量の大きなストレージノードが容量の小さなストレージノードのたとえば数倍程度であれば、大きなストレージノードを数個に分割すればよい。しかし、ストレージノード間で容量が大きく異なる場合、例えば、容量の大きいストレージノードが容量が小さいストレージノードの数千倍の容量を持つ場合は、容量の大きなストレージノードを数千個の仮想ノードに分割する必要があり、仮想ノードの管理オーバーへッドが問題となる。また、ディスク技術の進歩などによってストレージノードの平均的な容量が変化した場合に、仮想ノードの単位をどう調整するかも問題となる。したがって、仮想ノード単体では容量の多様性への対応が不十分である。
【0013】
なお、ここでは、ファイル全体をまとめてストレージノードに配置した分散ストレージを中心に述べたが、ファイルをブロック単位に分割してブロックごとにストレージノードに配置した分散ストレージについても同様の問題がある(ファイル名とブロック番号との組をブロックの名前として管理する場合を考えれば同様である)。
【0014】
本発明は、上記事情を考慮してなされたもので、分散ストレージシステムを構成する各ストレージ装置が、該分散ストレージシステムが対象とする識別子空間のうちで分担する分担範囲を決定するにあたって、より効果的な分担範囲の決定を行うことができるストレージ装置、分担範囲決定方法及びプログラムを提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明は、分散ストレージシステムの構成に用いられるストレージ装置であって、前記分散ストレージシステムが対象とする識別子空間のうちの分担範囲に含まれる識別子を持つデータを格納するための手段と、前記識別子空間に割り当てられた、前記分担範囲を決定する基準となる基準位置を記憶する第1の記憶手段と、前記分担範囲を決定する際に考慮される重みを記憶する第2の記憶手段と、前記第2の記憶手段に記憶された重みと、前記識別子空間において前記分担範囲に隣接する範囲を分担する隣接ストレージ装置に係る重みとに基づいて、該隣接ストレージ装置とで前記識別子空間を分担する場合における相対的な空間幅を決定する第1の決定手段と、前記第1の決定手段により決定された前記相対的な空間幅に基づいて、前記識別子空間における前記第1の記憶手段に記憶された基準位置から前記隣接ストレージ装置に係る基準位置までの範囲内について分担する分担範囲を決定する第2の決定手段とを備えたことを特徴とする。
【0016】
また、本発明は、分散ストレージシステムの構成に用いられるストレージ装置であって、前記分散ストレージシステムが対象とする識別子空間のうちで自装置が分担する分担範囲に含まれる識別子を持つデータを格納するための手段と、自装置に付与された重みと、前記識別子空間における自装置の分担範囲に隣接する範囲を分担する隣接ストレージ装置に付与された重みとに基づいて、自装置と該隣接ストレージ装置とで前記識別子空間を分担する場合において自装置が分担する相対的な空間幅を決定する第1の決定手段と、前記第1の決定手段により決定された前記相対的な空間幅に基づいて、自装置に予め割り当てられた前記識別子空間における基準位置から前記隣接ストレージ装置に予め割り当てられた前記識別子空間における基準位置までの範囲内について自装置が分担する分担範囲を決定する第2の決定手段とを備えたことを特徴とする。
【0017】
本発明では、記憶容量・演算能力・回線速度などをもとにストレージ装置の重みを決め、その重みに応じた空間割り当てを行なう。例えば、自装置と隣接ストレージ装置との重みの比に比例した幅になるように、自ノードと隣接ストレージ装置との間の空間を二つに分割する。これによって、重みに比例等した幅の空間をストレージ装置に割り当てることができる。
【0018】
好ましくは、1台の前記ストレージ装置を複数の仮想ノードに対応させ、各仮想ノードに相異なる分担範囲を分担させるものとして、個々の仮想ノードの分担範囲を、前記第1及び第2の決定手段によりそれぞれ決定するようにしてもよい。このように、一つの物理ノードに対して複数の仮想ノードを割り当てることによって、ストレージ装置への割り当て空間をより正確に重みに比例させることができる。仮想化を行なえば、一つの物理ノードに対応するすべての仮想ノードについて同じような重みのストレージ装置とばかり隣接する確率は低いため、一方の仮想ノードについて広い幅を割り当てられても、幅の合計は重みに比例した大きさとなる(重みが小さなストレージ装置ばかりが隣接した空間に集中して容量が小さいにも関わらず大きな幅の空間を割り当てられてしまうようなことが回避できる)。
【0019】
また、好ましくは、前記識別子空間において前記第1の記憶手段に記憶された基準位置に対してn番目(nは予め定められた2以上の整数)に近い基準位置を持つ他のストレージ装置を、前記隣接ストレージ装置とみなして、前記第1の決定手段による前記決定及び前記第2の決定手段による前記決定を行うようにしてもよい。分散ストレージの目的の一つである信頼性を実現するために、一つのデータを複数のストレージ装置に置くという冗長化を行なう場合があるが、このようにすることによって、重みを考慮した冗長化を行なう場合が可能となる。一つのデータをn個のストレージノードで多重化する場合には、基準位置で定義される隣のストレージ装置とではなく、n個先のストレージ装置との間で重みに応じた空間分割を行ない、一つの点がn個のストレージ装置に重複してマッピングされるようにする。これによって、一部のストレージ装置が故障・災害・回線障害によって使えなくなった場合でも、同じ空間を担当する他のストレージ装置を利用してデータを読み書きすることができる。
【0020】
また、本発明は、分散ストレージシステムの構成に用いられ、該分散ストレージシステムが対象とする識別子空間のうちの分担範囲に含まれる識別子を持つデータを格納するストレージ装置における分担範囲決定方法であって、前記識別子空間に割り当てられた、前記分担範囲を決定する基準となる基準位置を、第1の記憶手段に記憶するステップと、前記分担範囲を決定する際に考慮される重みを、第2の記憶手段に記憶するステップと、前記第2の記憶手段に記憶された重みと、前記識別子空間において前記分担範囲に隣接する範囲を分担する隣接ストレージ装置に係る重みとに基づいて、該隣接ストレージ装置とで前記識別子空間を分担する場合における相対的な空間幅を決定する第1の決定ステップと、前記第1のステップ手段により決定された前記相対的な空間幅に基づいて、前記識別子空間における前記第1の記憶手段に記憶された基準位置から前記隣接ストレージ装置に係る基準位置までの範囲内について分担する分担範囲を決定する第2の決定ステップとを有することを特徴とする。
【0021】
また、本発明は、分散ストレージシステムの構成に用いられるストレージ装置としてコンピュータを機能させるためのプログラムであって、前記分散ストレージシステムが対象とする識別子空間のうちの分担範囲に含まれる識別子を持つデータを格納するための機能と、前記識別子空間に割り当てられた、前記分担範囲を決定する基準となる基準位置を記憶する第1の記憶機能と、前記分担範囲を決定する際に考慮される重みを記憶する第2の記憶機能と、前記第2の記憶機能に記憶された重みと、前記識別子空間において前記分担範囲に隣接する範囲を分担する隣接ストレージ装置に係る重みとに基づいて、該隣接ストレージ装置とで前記識別子空間を分担する場合における相対的な空間幅を決定する第1の決定機能と、前記第1の決定機能により決定された前記相対的な空間幅に基づいて、前記識別子空間における前記第1の記憶機能に記憶された基準位置から前記隣接ストレージ装置に係る基準位置までの範囲内について分担する分担範囲を決定する第2の決定機能とを実現させるためのプログラムである。
【0022】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【0023】
本発明によれば、重みづけによって記憶容量の大きいノードや処理速度の速いノードにより多くの識別子空間を担当させ、より多くのデータを割り付けることによって、容量の小さいノードや処理の遅いノードがボトルネックになることを回避し、ノードの記憶容量や処理速度を有効に活用できる。
【0024】
また、仮想化との組合わせによってその割り付けはさらに正確に重みに比例させることができる。
【0025】
また、空間の重複割り当てによる多重化、冗長化によって、ストレージノードの故障時には(すでにデータのレプリカを持っている)隣接ノードがただちに故障ノードの空間を継承して対応することができるので、高信頼化を実現できる。
【0026】
また、本発明によれば、システム全体を集中制御するストレージノードなしに、重みに比例等した空間割り当てを行なう分散アルゴリズムが実現でき、ストレージの使用率や応答速度が向上できる。
【0027】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
(第1の実施形態)
図1に、本実施形態のシステム全体の構成例を示す。
図1において、1はストレージノード、3はクライアント計算機、7はネットワークを示す。なお、図1では、分散ストレージシステムを構成するストレージノードとして3台のものが示されているが、これは一例であり、分散ストレージシステムを構成するストレージノードの台数は任意である。また、図1では、分散ストレージシステム(ストレージノード群)が1グループだけ示されているが、複数グループ存在して構わない。この場合に、各ストレージノードはいずれか1つのグループにのみ属するようにする構成と、複数のグループに属するストレージノードが存在しても構わないものとする構成とがあり得る。
また、図1では、1台のクライアント計算機のみが示されているが、もちろん、クライアント計算機は複数台存在し得る。
【0028】
さて、本実施形態の分散ストレージシステムは、各ストレージノードが重みを持ち、ファイルをストレージノードに対応付けるハッシュ空間の割り当ての際に、隣接するストレージノード間で、それらの重みに比例した幅にハッシュ空間を分割する。
【0029】
なお、ハッシュ空間に両端が存在する構成の場合には、ハッシュ空間の端部を担当する2つのストレージノードはそれぞれ隣接するストレージノードを1つのみ持ち、それ以外の各ストレージノードはそれぞれ隣接ストレージノードを2つ持つことになる。また、ハッシュ空間の両端が連結されているものとみなしてハッシュ空間をループ状に形成する構成の場合には、いずれのストレージノードも隣接するストレージノードを2つ持つことになる。
【0030】
ハッシュ関数としては、ビット数が充分長くて一様な割り当てが行なわれる関数を用いると好ましい。そのようなハッシュ関数として、例えば、SHA−1を採用することができる。ハッシュ空間は、0〜2^b−1のbビットの整数で表わされる(SHA−1の場合は、b=160となる)。
【0031】
本実施形態では、ネットワーク7上に分散配置された複数のストレージノード1が1つのストレージノード群(分散ストレージシステム)を構成する。前述のように、ある1つのストレージノード1が複数のストレージノード群に属する構成も可能であるが、その場合には、ハッシュ空間は、各ストレージノード群ごとに独立して管理するものとすればよい。
【0032】
なお、各ストレージノード1はストレージノード間通信に用いるアドレスを持つが、各ストレージノード1のノードID(ノード識別子)は、当該ストレージノード1の持つアドレスに対してハッシュ関数を適用して得られる値とする。
また、以下では、アドレスの一例として、IPアドレスを用いる場合を例にとって説明する。
【0033】
あるストレージノード群に属するストレージノード1は、それぞれ、自ノードの持つアドレスの他に、そのストレージノード群に属する他の全部のストレージノード1のアドレスを収集し、記憶するようにしてもよい。
【0034】
しかし、各ストレージノード1に他のすべてのストレージノード1のアドレスを記憶させると、例えばストレージノード1の増減の際に通信量および処理時間の問題が発生するような場合があるので、自ノードの持つアドレスの他に、そのストレージノード群に属する他の一部の(予め定められた条件を満たす)ストレージノード1のアドレスのみを収集し、記憶するようにしてもよい。例えば、各ストレージノード1には、ハッシュ空間上で自ノードに隣接するストレージノード1のアドレスと、ハッシュ空間上のいくつかの点(例えば、自ノードのノードID(自ノードのアドレスに対してハッシュ関数を適用して得られる値)に対して、1,2,4,8,…,2(b−1)をそれぞれ加えた複数の点)を含むハッシュ空間を担当するノードのアドレスのみを記憶しておくようにしてもよい。これらのアドレスを利用すれば、O(b)個のノードへの問い合わせを行なうことによって、ハッシュ空間上の任意の点を担当するストレージノード1を検索することができる。
【0035】
図2に、本実施形態のストレージノード1の内部構成例を示す。
図2に示されるように、ストレージノード1は、空間幅決定部11、空間割当制御部12、空間割当情報記憶部13、ファイル入出力部14、ファイル記憶部15を備えている。概略的には、空間幅決定部11と空間割当制御部12と空間割当情報記憶部13で、空間割り当ての決定や管理を行ない、ファイル入出力部14で、その空間割り当てに基づくファイルの入出力を行なう。また、ファイル記憶部15は、自ノードが分担するハッシュ空間に対応するファイルを記憶する。また、ストレージノード1は、自ノードに関する情報(例えば、自ノードのアドレスやノードIDや重みなど)を記憶するための記憶部(図示せず)を持つ。
【0036】
図3に、本実施形態に係るストレージノードの参加時における処理手順の一例を示す。
ストレージノード1が、新規に、あるストレージノード群へ参加する場合は、まず、自ノードのIPアドレスを取得する(ステップS1)。IPアドレスの取得方法には通常のIPネットワークでの取得方法が利用できる。例えば、管理者がそのサブネット上で未使用となっているIPアドレス一つを適宜選択して手動で当該参加するストレージノード(以下、新ストレージノード)1へ入力するようにしてもよいし、あるいは、プールされたIPアドレスから一つをDHCPサーバが自動的に選択してDHCPプロトコルによって当該新ストレージノード1に通知するようにすることも可能である。
【0037】
また、前述したように、当該新ストレージノード1は、入力あるいは通知された自ノードのアドレスに対してハッシュ関数を適用することによって、自ノードのノードIDを求める(ステップS2)。
【0038】
次に、新ストレージノード1は、ノード群の任意の他の(例えば一つの)ストレージノードのIPアドレスを取得して、これを空間割当制御部12に伝える。他のストレージノードのアドレスの取得には、どのような方法を用いても構わない。例えば、管理者が他の(例えば一つの)ストレージノードを適宜選択してそのIPアドレスを手動で当該新ストレージノード1へ入力するようにしてもよいし、あるいは、近隣にストレージノードが存在する場合にDHCPのオプションやブロードキャストによって該近隣のストレージノードから当該新ストレージノード1へ、該近隣のストレージノードのIPアドレスを自動的に通知するようにすることも可能である。
【0039】
このようにして得た他のストレージノードのIPアドレスを用いて、新ストレージノード1の空間割当制御部12は、適宜、他のストレージノード1(の空間割当制御部12)に接続して、自ノードの属するストレージノード群に属する他の全部又は一部のストレージノード1のアドレスを問い合わせ、収集する(ステップS3)。一部のストレージノード1のアドレスのみ記憶する場合には、例えば、自ノードのノードIDをもとに、隣接するノードのアドレスと、自ノードのノードIDに1,2,4,8,…,2(b−1)をそれぞれ加えた点を含むハッシュ空間を担当する各ストレージノード1のアドレスを得る。
【0040】
このようにして収集された他のストレージノード1のアドレスは、空間割当情報記憶部13に記憶される(ステップS4)。
【0041】
以下、図4を参照しながら、本実施形態の各ストレージノードにおけるハッシュ空間分割方法について説明する。
以下の処理は、隣接ノードが2つある場合には、各々の隣接ノードについて行う。
【0042】
また、以下の処理を最初に行う場合には、例えば、図3のステップS4に続いて行ってもよいし、最初にクライアント計算機からI/O要求を受信した時点で行ってもよいし、それ以外の適当なタイミングで行ってもよい。なお、以下の処理は、例えば、自ノードの重みが変更された場合、隣接ノードの重みが変更された場合、ストレージノードの増減などによって隣接ノードが変更された場合などに、あらためて行うこともある。
【0043】
本実施形態のストレージノード1の空間幅決定部11は、空間割当制御部12から得た隣接ノードのアドレスをもとに、隣接するストレージノード1(の空間幅決定部11)との接続を行ない、自ノードの重みを伝えるとともに、隣接するストレージノード1の重みを取得する。
【0044】
重みとしては、例えば、ストレージの記憶容量、演算能力、回線速度、それらを適宜組み合わせたものなどを用いることができる。ここでは、一例として、ストレージの記憶容量を用いた場合を例にとって説明する。
【0045】
自ノードsの重みをV[s]、隣接ノードuの重みをV[u]とすると、自ノードsの相対的な幅は、
w=V[s]/(V[s]+V[u])
となる。
【0046】
空間幅決定部11は、このようにして空間幅情報wを決定すると、これを、空間割当制御部12に送る。
空間割当制御部12では、空間幅情報wをもとに、自ノードsと隣接ノードuとの間の空間を分割する。なお、自ノードsと隣接ノードuとの間の空間は予め定められており、一方の端点が自ノードuのアドレスにハッシュ関数を適用して得られる点であり、他方の端点が隣接ノードsのアドレスにハッシュ関数を適用して得られる点である。
【0047】
しかして、例えば、ハッシュ関数をh()、自ノードsのアドレスをA[s]、隣接ノードuのアドレスをA[u]とすると、隣接ノードuとの境界を
h1=h(A[u])*w+h(A[s])*(1−w)
とすることによって、
h1−h(A[u]):h(A[s])−h1=V[u]:V[s]
という条件を満たす境界h1が得られる。
この様子を、図4に示している。
【0048】
もう一方の隣接ノードdとの境界h2についても、同様の手順によって、求めることができる。すなわち、もう一方の隣接ノードdのアドレスをA[d]とし、その重みをV[d]とすると、相対的な幅は、
w´=V[s]/(V[s]+V[d])
となり、隣接ノードdとの境界を
h2=h(A[d])*w´+h(A[s])*(1−w´)
とすることによって、
h2−h(A[d]):h(A[s])−h2=V[d]:V[s]
という条件を満たす境界h2が得られる。
【0049】
このようにして各隣接ノードu,dとの境界を決定し、その範囲(図4のh1とh2参照)を、自ノードsの担当空間として、空間割当記憶部13に記憶する。
【0050】
なお、ハッシュ空間に両端が存在する構成の場合に、ハッシュ空間の端部を担当する2つのストレージノードについては、隣接するストレージノードとの境界を上記と同様の方法で求め、この境界から、ハッシュ空間の(自ノード側の)端部までを、自ノードの担当空間とすればよい。
【0051】
このように重み(例えば、記憶容量)に応じて隣接ノード間でハッシュ空間を分割する(例えば、重みに比例した幅で分割する)ことによって、図5に例示するように、例えば、記憶容量の大きなストレージノードにはより多くのファイルが割り当てられるようにすることが可能になる。
【0052】
なお、上記では、空間幅決定部11でw=V[s]/(V[s]+V[u])を求め、次いで、空間割当制御部12でh1=h(A[u])*w+h(A[s])*(1−w)を求めるものとしたが、もちろん、h1=h(A[u])*V[s]/(V[s]+V[u])+h(A[s])*(1−V[s]/(V[s]+V[u]))として求めるようにしてもよい。
【0053】
また、上記した空間幅決定部11及び空間割当制御部12による決定方法は、一例であり、他にも種々の方法が可能である。
【0054】
図6に、本実施形態に係るストレージノードの要求受信時における処理手順の一例を示す。
クライアント計算機1が分散ストレージシステムへファイルの読み書きを行う際には、クライアント計算機1は、自身が利用するファイルを管理しているノード群のストレージノード1に対してI/O要求を送出する。
【0055】
なお、ノード群の任意のストレージノード1を利用することが可能であるが、実用上は、例えば、ネットワーク上で近い位置にあるストレージノード1を利用することが想定される。
【0056】
ストレージノード1がI/O要求を受信すると(ステップS11)、そのファイル入出力部14では、空間割当情報記憶部13の自ノードの担当範囲と、要求中のファイルID(ファイル識別子)(なお、ファイルIDには、対象ファイルのファイル名あるいは対象ファイルの中身のデータに対して、ハッシュ関数を適用して得られる値などが用いられる)とを比較し(ステップS12)、ファイルIDが担当範囲内に該当すれば(ステップS13)、自ノードのファイル記憶部15にアクセスして要求の処理(ファイルの読み出しあるいは書き込みなど)を行なう(ステップS14)。
【0057】
他方、範囲外に該当すれば(ステップS13)、空間割当情報記憶部13の他ノードのアドレスをもとに、他のノード(の空間割当制御部12)に問い合わせることによって、そのファイルIDを担当するストレージノード1のアドレスを検索する(ステップS15)。
【0058】
そして、検索によって、そのファイルIDを担当するストレージノード1のアドレスが得られたならば(ステップS16)、そのストレージノード1(のファイル入出力部14)に接続して、要求の処理を行なう(ステップS17)。
【0059】
もし、そのファイルIDを担当するストレージノード1のアドレスが得られなかったならば(ステップS16)、エラー処理を行う(例えば、要求元のクライアント計算機に、エラー・メッセージを返す)(ステップS18)。
【0060】
このように本実施形態によれば、空間幅を重みに応じたものにすることによって、例えば、ストレージノードの記憶容量などに応じたファイルの割り当てや、処理速度に応じた負荷の分散などが可能になる。
【0061】
(第2の実施形態)
本実施形態の分散ストレージシステムは、1つのノード群を構成するストレージノード(の全部又は一部)を複数の仮想ノードに仮想化し、複数のハッシュ空間に割り当てた上で、ファイルへの対応付けを行なうものである。
【0062】
以下では、第1の実施形態と相違する点を中心に説明する。
【0063】
図7に、本実施形態のハッシュ空間分割方法を示す。
【0064】
各ストレージノード(以下、仮想ノードと区別するため、物理ノードと呼ぶ)1のノードIDからハッシュ値を計算する際に、物理ノードのアドレスに加えて、物理ノードごとに割り当てられる仮想ノード番号をハッシュ関数の引数として用いる。
【0065】
例えば、ある物理ノードsのアドレスがA[s]、物理ノードsに設定される仮想ノードの数がv個である場合に、物理ノードsには、h(A[s],0),…,h(A[s],v−1)のv個のハッシュ値が対応する。
【0066】
そして、各仮想ノードをそれぞれ第1の実施形態のストレージノードとみなせば、第1の実施形態と同様の処理によって、各仮想ノードのハッシュ空間の担当範囲を求めることができる。
【0067】
なお、仮想ノードごとに重みを付与する方法と、全仮想ノードについて共通の重みを付与する方法が可能である。
【0068】
本実施形態は、第1の実施形態の利点に加えて、物理ノードに複数の空間を分割させることによって、より多くのノードに隣接させることができるため、隣接ノードの重みの平均値が全ノードの重みの平均値に近づくようになり、したがって、各ノードの担当する空間幅がより正確に重みに比例するという利点がある。これは、重み付けを行なわない従来技術に仮想化を適用した場合に得られる、ノード間のハッシュ空間上での距離の分散が小さくなるという効果とは異なり、重みに応じた空間分割と仮想化とを組合わせたからこそ得られる効果である。
【0069】
(第3の実施形態)
本実施形態に係る分散ストレージシステムは、空間を複数のノードに重複して割り当て、ファイルをそれらのノードに重複して割り当てるものである。
【0070】
以下では、第1の実施形態と相違する点を中心に説明する。
【0071】
図8に、本実施形態のハッシュ空間分割方法を示す。
【0072】
なお、図8は、n=2(二重化)の場合を例示している。
【0073】
ハッシュ空間の同一の点をn個のノードに重複して割り当てる場合、ストレージノードをnグループn分割し、同一のハッシュ空間を対象として、各々のグループ内で、第1の実施形態と同様に、各ストレージノードのハッシュ空間の担当範囲を求めればよい。
【0074】
その際、例えば、第1の実施形態の隣接するノードの代わりに、ハッシュ空間上で自ノードのn個隣のストレージノードとの間で、担当空間の分割を行なうようにしてもよい。それらに挟まれた他のストレージノードも同様の空間を分割するため、結果として、一つの点がn個ノードに重複して割り当てられることになる。
【0075】
ところで、単に多重化するだけであれば、ファイルを複数のノードに対応させる種々の方法がある。例えば、ファイルに複数のハッシュ関数を適用することによって、複数個の仮想的なファイルIDを割り当て、それらの仮想的なファイルIDに対応するノードIDを持つ複数個のノードにファイルを格納する、といった冗長化方法が考えられる。しかしながら、故障などによってストレージノードが失われた場合に、そのストレージノードが担当していた空間を引き継ぐのは、ハッシュ空間上で故障ノードに隣接するストレージノードである。このような方法では、故障ノードに隣接するストレージノードに、他のストレージノードから該当するファイルを転送しなければならない。
【0076】
これに対して、本実施形態では、隣接するストレージノードに重複した割り当てが行なわれているため、そのストレージノードに空間を継承させることによって、ファイルの転送量を最小化することができる。
【0077】
本実施形態によれば、第1の実施形態の利点に加えて、ファイルを複数のノードに格納することによって、故障などでファイルが失われる可能性を低減させるとともに、故障などの際に、ファイルの転送量を最小限に抑えて担当空間の継承ができるという利点がある。
【0078】
なお、第3の実施形態と第4の実施形態とを組み合わせて実施することも可能である。
【0079】
なお、以上では、ファイルをストレージノードに格納するにあたって、ファイル単位で格納する場合を例にとって説明してきたが、ファイルをブロック単位に分割してブロック単位で格納する場合も同様に可能である。この場合には、例えば、ファイル名とブロック番号との組をブロック名とするなどによって、これまで説明してきたものと同様の方法が適用可能になる。
【0080】
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0081】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0082】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0083】
【発明の効果】
本発明によれば、分散ストレージシステムを構成する各ストレージ装置が、該分散ストレージシステムが対象とする識別子空間のうちで分担する分担範囲を決定するにあたって、より効果的な分担範囲の決定を行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る分散ストレージシステムの全体構成例を示す図
【図2】同実施形態に係るストレージノードの内部構成例を示す図
【図3】同実施形態に係るストレージノードの参加時における処理手順の一例を示すフローチャート
【図4】同実施形態のハッシュ空間分割方法を説明するための図
【図5】同実施形態のハッシュ空間分割方法を説明するための図
【図6】同実施形態に係るストレージノードの要求受信時における処理手順の一例を示すフローチャート
【図7】同実施形態の他のハッシュ空間分割方法を説明するための図
【図8】同実施形態のさらに他のハッシュ空間分割方法を説明するための図
【符号の説明】
1…ストレージノード、3…クライアント計算機、7…ネットワーク、11…空間幅決定部、12…空間割当制御部、13…空間割当情報記憶部、14…ファイル入出力部、15…ファイル記憶部
Claims (20)
- 分散ストレージシステムの構成に用いられるストレージ装置であって、
前記分散ストレージシステムが対象とする識別子空間のうちの分担範囲に含まれる識別子を持つデータを格納するための手段と、
前記識別子空間に割り当てられた、前記分担範囲を決定する基準となる基準位置を記憶する第1の記憶手段と、
前記分担範囲を決定する際に考慮される重みを記憶する第2の記憶手段と、
前記第2の記憶手段に記憶された重みと、前記識別子空間において前記分担範囲に隣接する範囲を分担する隣接ストレージ装置に係る重みとに基づいて、該隣接ストレージ装置とで前記識別子空間を分担する場合における相対的な空間幅を決定する第1の決定手段と、
前記第1の決定手段により決定された前記相対的な空間幅に基づいて、前記識別子空間における前記第1の記憶手段に記憶された基準位置から前記隣接ストレージ装置に係る基準位置までの範囲内について分担する分担範囲を決定する第2の決定手段とを備えたことを特徴とするストレージ装置。 - 前記第1の決定手段は、前記第2の記憶手段に記憶された重みと、前記隣接ストレージ装置に係る重みとを加算し、これによって得られた値で前記第2の記憶手段に記憶された重みを除した値を、前記相対的な空間幅とすることを特徴とする請求項1に記載のストレージ装置。
- 前記第2の決定手段は、前記第1の記憶手段に記憶された前記基準位置を示す値に対して前記相対的な空間幅を乗じて得た値と、前記隣接ストレージ装置に係る前記基準位置を示す値に対して前記相対的な空間幅を1から減じた値を乗じて得た値とを、加算し、これによって得られた値が示す位置と、前記第1の記憶手段に記憶された前記基準位置との間の空間を、前記基準位置間の範囲内について分担する分担範囲とすることを特徴とする請求項2に記載のストレージ装置。
- 前記隣接ストレージ装置として、第1の隣接ストレージ装置と第2の隣接ストレージ装置の2つが存在する場合には、該第1の隣接ストレージ装置について前記第1の決定手段による前記決定及び前記第2の決定手段による前記決定を行って、第1の分担範囲を決定するとともに、該第2の隣接ストレージ装置について前記第1の決定手段による前記決定及び前記第2の決定手段による前記決定を行って、第2の分担範囲を決定し、該第1の分担範囲と該第2の分担範囲とを包含する範囲を、求めるべき全分担範囲とすることを特徴とする請求項1に記載のストレージ装置。
- 前記隣接ストレージ装置として、唯一の隣接ストレージ装置のみが存在する場合には、該隣接ストレージ装置について前記第1の決定手段による前記決定及び前記第2の決定手段による前記決定を行って、第1の分担範囲を決定するとともに、前記第1の記憶手段に記憶された前記基準位置と、前記識別子空間の両端部のうち前記第1の記憶手段に記憶された前記基準位置に近い方の端部の位置との間の空間を、第2の分担範囲として決定し、該第1の分担範囲と該第2の分担範囲とを包含する範囲を、求めるべき全分担範囲とすることを特徴とする請求項1に記載のストレージ装置。
- 前記分散ストレージシステムを構成する他のストレージ装置との通信に用いるために割り当てられたアドレスを記憶する第3の記憶手段を更に備え、
前記アドレスに対して所定のハッシュ関数を適用して得られる値を、前記基準位置を示す値とすることを特徴とする請求項1に記載のストレージ装置。 - 前記隣接ストレージ装置に係るアドレスに対して前記所定のハッシュ関数を適用して得られる値を、前記隣接ストレージ装置に係る前記基準位置を示す値とすることを特徴とする請求項6に記載のストレージ装置。
- 前記分散ストレージシステムを構成する他の全部又は一部のストレージ装置に割り当てられたアドレスを示す情報を取得するための取得手段と、
前記取得手段により取得された前記他のストレージ装置のアドレスを記憶する第4の記憶手段とを更に備えたことを特徴とする請求項6または7に記載のストレージ装置。 - 前記隣接ストレージ装置に係るアドレス、及び前記第3の記憶手段に記憶された前記アドレスに対して所定のハッシュ関数を適用して得られる値に、1,2,4,8,…,2(b−1)(bは予め定められた整数)をそれぞれ加えた値に相当する識別子を担当する前記他のストレージ装置にそれぞれ割り当てられた前記アドレスを、前記取得手段により予め取得し、前記第4の記憶手段に記憶しておくことを特徴とする請求項8に記載のストレージ装置。
- 前記アドレスは、IPアドレスであることを特徴とする請求項6ないし9のいずれか1項に記載のストレージ装置。
- 1台の前記ストレージ装置を複数の仮想ノードに対応させ、各仮想ノードに相異なる分担範囲を分担させるものとして、個々の仮想ノードの分担範囲を、前記第1及び第2の決定手段によりそれぞれ決定することを特徴とする請求項1ないし10のいずれか1項記載のストレージ装置。
- 前記ストレージ装置のアドレスに当該仮想ノードの識別情報を多重化し、これに対して所定のハッシュ関数を適用して得られる値を、当該仮想ノードの前記基準位置を示す値とすることを特徴とする請求項11に記載のストレージ装置。
- 各仮想ノードごとに重みを付与することを特徴とする請求項11または12に記載のストレージ装置。
- 全仮想ノードについて共通の重みを付与することを特徴とする請求項11または12に記載のストレージ装置。
- 前記識別子空間において前記第1の記憶手段に記憶された基準位置に対して最も近い基準位置を持つ他のストレージ装置を、前記隣接ストレージ装置とすることを特徴とする請求項1ないし14のいずれか1項に記載のストレージ装置。
- 前記識別子空間において前記第1の記憶手段に記憶された基準位置に対してn番目(nは予め定められた2以上の整数)に近い基準位置を持つ他のストレージ装置を、前記隣接ストレージ装置とみなして、前記第1の決定手段による前記決定及び前記第2の決定手段による前記決定を行うことを特徴とする請求項1ないし14のいずれか1項に記載のストレージ装置。
- 前記データは、ファイル又はファイルのブロックであることを特徴とする請求項1ないし15のいずれか1項に記載のストレージ装置。
- 分散ストレージシステムの構成に用いられるストレージ装置であって、
前記分散ストレージシステムが対象とする識別子空間のうちで自装置が分担する分担範囲に含まれる識別子を持つデータを格納するための手段と、
自装置に付与された重みと、前記識別子空間における自装置の分担範囲に隣接する範囲を分担する隣接ストレージ装置に付与された重みとに基づいて、自装置と該隣接ストレージ装置とで前記識別子空間を分担する場合において自装置が分担する相対的な空間幅を決定する第1の決定手段と、
前記第1の決定手段により決定された前記相対的な空間幅に基づいて、自装置に予め割り当てられた前記識別子空間における基準位置から前記隣接ストレージ装置に予め割り当てられた前記識別子空間における基準位置までの範囲内について自装置が分担する分担範囲を決定する第2の決定手段とを備えたことを特徴とするストレージ装置。 - 分散ストレージシステムの構成に用いられ、該分散ストレージシステムが対象とする識別子空間のうちの分担範囲に含まれる識別子を持つデータを格納するストレージ装置における分担範囲決定方法であって、
前記識別子空間に割り当てられた、前記分担範囲を決定する基準となる基準位置を、第1の記憶手段に記憶するステップと、
前記分担範囲を決定する際に考慮される重みを、第2の記憶手段に記憶するステップと、
前記第2の記憶手段に記憶された重みと、前記識別子空間において前記分担範囲に隣接する範囲を分担する隣接ストレージ装置に係る重みとに基づいて、該隣接ストレージ装置とで前記識別子空間を分担する場合における相対的な空間幅を決定する第1の決定ステップと、
前記第1のステップ手段により決定された前記相対的な空間幅に基づいて、前記識別子空間における前記第1の記憶手段に記憶された基準位置から前記隣接ストレージ装置に係る基準位置までの範囲内について分担する分担範囲を決定する第2の決定ステップとを有することを特徴とする分担範囲決定方法。 - 分散ストレージシステムの構成に用いられるストレージ装置としてコンピュータを機能させるためのプログラムであって、
前記分散ストレージシステムが対象とする識別子空間のうちの分担範囲に含まれる識別子を持つデータを格納するための機能と、
前記識別子空間に割り当てられた、前記分担範囲を決定する基準となる基準位置を記憶する第1の記憶機能と、
前記分担範囲を決定する際に考慮される重みを記憶する第2の記憶機能と、
前記第2の記憶機能に記憶された重みと、前記識別子空間において前記分担範囲に隣接する範囲を分担する隣接ストレージ装置に係る重みとに基づいて、該隣接ストレージ装置とで前記識別子空間を分担する場合における相対的な空間幅を決定する第1の決定機能と、
前記第1の決定機能により決定された前記相対的な空間幅に基づいて、前記識別子空間における前記第1の記憶機能に記憶された基準位置から前記隣接ストレージ装置に係る基準位置までの範囲内について分担する分担範囲を決定する第2の決定機能とを実現させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003041486A JP4068473B2 (ja) | 2003-02-19 | 2003-02-19 | ストレージ装置、分担範囲決定方法及びプログラム |
US10/779,738 US7266649B2 (en) | 2003-02-19 | 2004-02-18 | Storage apparatus and area allocation method |
US11/797,286 US7743208B2 (en) | 2003-02-19 | 2007-05-02 | Storage apparatus and area allocation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003041486A JP4068473B2 (ja) | 2003-02-19 | 2003-02-19 | ストレージ装置、分担範囲決定方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004252663A true JP2004252663A (ja) | 2004-09-09 |
JP4068473B2 JP4068473B2 (ja) | 2008-03-26 |
Family
ID=32844526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003041486A Expired - Fee Related JP4068473B2 (ja) | 2003-02-19 | 2003-02-19 | ストレージ装置、分担範囲決定方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (2) | US7266649B2 (ja) |
JP (1) | JP4068473B2 (ja) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007317183A (ja) * | 2006-05-16 | 2007-12-06 | Thomson Licensing | ネットワークデータストレージシステム |
JP2011510367A (ja) * | 2007-12-26 | 2011-03-31 | シマンテック コーポレーション | 分散リソース管理のためのバランスしたコンシステント・ハッシュ |
JP2012027587A (ja) * | 2010-07-21 | 2012-02-09 | Tokyo Denki Univ | データ分散保管装置及び方法及びプログラム及び記録媒体 |
JP2012123544A (ja) * | 2010-12-07 | 2012-06-28 | Nippon Hoso Kyokai <Nhk> | 負荷分散装置及びプログラム |
JP2012517631A (ja) * | 2009-02-11 | 2012-08-02 | エヌエイチエヌ コーポレーション | 分散スペースを用いて分散プログラミング環境を提供するための方法、システム及びコンピュータ読み取り可能な記録媒体 |
JP2013045181A (ja) * | 2011-08-22 | 2013-03-04 | Nippon Telegr & Teleph Corp <Ntt> | データベースの負荷分散装置 |
KR101269428B1 (ko) | 2012-07-30 | 2013-05-30 | 한국과학기술정보연구원 | 데이터 분배 시스템 및 방법 |
JP2013109672A (ja) * | 2011-11-22 | 2013-06-06 | Fujitsu Ltd | ノード決定プログラム、ノード決定装置およびノード決定方法 |
JP2013148950A (ja) * | 2012-01-17 | 2013-08-01 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散プログラムおよび負荷分散装置 |
JP2013182399A (ja) * | 2012-03-01 | 2013-09-12 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散プログラムおよび負荷分散装置 |
KR20140036942A (ko) * | 2012-09-14 | 2014-03-26 | 한국전자통신연구원 | 콘텐트 제공 장치와 방법 및 콘텐트 제공 시스템 |
JP2014182737A (ja) * | 2013-03-21 | 2014-09-29 | Nec Corp | 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム |
WO2014188682A1 (ja) * | 2013-05-20 | 2014-11-27 | 日本電気株式会社 | ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム |
JP2015512551A (ja) * | 2012-04-06 | 2015-04-27 | エグザブロックス・コーポレーション | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 |
JP2015515047A (ja) * | 2012-02-24 | 2015-05-21 | シンプリヴィティ・コーポレーション | 不均等アクセス・メモリにレコードを配置するために不均等ハッシュ機能を利用する方法および装置 |
JP2015141622A (ja) * | 2014-01-29 | 2015-08-03 | キヤノン株式会社 | システムおよび制御方法 |
JP2016157368A (ja) * | 2015-02-26 | 2016-09-01 | 日本電気株式会社 | 記憶システム、記憶方法、及び、プログラム |
US9514137B2 (en) | 2013-06-12 | 2016-12-06 | Exablox Corporation | Hybrid garbage collection |
US9552382B2 (en) | 2013-04-23 | 2017-01-24 | Exablox Corporation | Reference counter integrity checking |
JP2017033412A (ja) * | 2015-08-04 | 2017-02-09 | 株式会社東芝 | ストレージ管理装置、方法、及びストレージシステム |
CN106445413A (zh) * | 2012-12-12 | 2017-02-22 | 华为技术有限公司 | 集群系统中数据处理方法及装置 |
US9715521B2 (en) | 2013-06-19 | 2017-07-25 | Storagecraft Technology Corporation | Data scrubbing in cluster-based storage systems |
US9774582B2 (en) | 2014-02-03 | 2017-09-26 | Exablox Corporation | Private cloud connected device cluster architecture |
US9830324B2 (en) | 2014-02-04 | 2017-11-28 | Exablox Corporation | Content based organization of file systems |
US9846553B2 (en) | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
US9934242B2 (en) | 2013-07-10 | 2018-04-03 | Exablox Corporation | Replication of data between mirrored data sites |
US9985829B2 (en) | 2013-12-12 | 2018-05-29 | Exablox Corporation | Management and provisioning of cloud connected devices |
US10248556B2 (en) | 2013-10-16 | 2019-04-02 | Exablox Corporation | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session |
US10474654B2 (en) | 2015-08-26 | 2019-11-12 | Storagecraft Technology Corporation | Structural data transfer over a network |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190742B2 (en) * | 2006-04-25 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Distributed differential store with non-distributed objects and compression-enhancing data-object routing |
US8543782B2 (en) | 2006-04-25 | 2013-09-24 | Hewlett-Packard Development Company, L.P. | Content-based, compression-enhancing routing in distributed, differential electronic-data storage systems |
GB2466579B (en) * | 2007-10-25 | 2012-12-26 | Hewlett Packard Development Co | Data processing apparatus and method of deduplicating data |
US8140637B2 (en) * | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
US8782368B2 (en) * | 2007-10-25 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Storing chunks in containers |
GB2466580B (en) * | 2007-10-25 | 2013-01-02 | Hewlett Packard Development Co | Data processing apparatus and method of processing data |
WO2009054828A1 (en) * | 2007-10-25 | 2009-04-30 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8150851B2 (en) * | 2007-10-25 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8099573B2 (en) * | 2007-10-25 | 2012-01-17 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8332404B2 (en) * | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US20090144404A1 (en) * | 2007-12-04 | 2009-06-04 | Microsoft Corporation | Load management in a distributed system |
US8959089B2 (en) * | 2008-04-25 | 2015-02-17 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US9348884B2 (en) * | 2008-05-28 | 2016-05-24 | International Business Machines Corporation | Methods and apparatus for reuse optimization of a data storage process using an ordered structure |
US8117343B2 (en) * | 2008-10-28 | 2012-02-14 | Hewlett-Packard Development Company, L.P. | Landmark chunking of landmarkless regions |
US8375182B2 (en) * | 2009-02-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for segmenting a data stream |
US8001273B2 (en) * | 2009-03-16 | 2011-08-16 | Hewlett-Packard Development Company, L.P. | Parallel processing of input data to locate landmarks for chunks |
US7979491B2 (en) * | 2009-03-27 | 2011-07-12 | Hewlett-Packard Development Company, L.P. | Producing chunks from input data using a plurality of processing elements |
US9141621B2 (en) * | 2009-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Copying a differential data store into temporary storage media in response to a request |
US20100281077A1 (en) * | 2009-04-30 | 2010-11-04 | Mark David Lillibridge | Batching requests for accessing differential data stores |
US8667207B2 (en) * | 2009-09-30 | 2014-03-04 | Citrix Systems, Inc. | Dynamic reallocation of physical memory responsive to virtual machine events |
CA2775899C (en) | 2009-09-30 | 2021-07-27 | Evan V. Chrapko | Determining connectivity within a community |
US20110099164A1 (en) | 2009-10-23 | 2011-04-28 | Haim Zvi Melman | Apparatus and method for search and retrieval of documents and advertising targeting |
US20110153978A1 (en) * | 2009-12-21 | 2011-06-23 | International Business Machines Corporation | Predictive Page Allocation for Virtual Memory System |
US8660994B2 (en) * | 2010-01-28 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Selective data deduplication |
WO2011106897A1 (en) | 2010-03-05 | 2011-09-09 | Chrapko Evan V | Systems and methods for conducting more reliable assessments with connectivity statistics |
US9922134B2 (en) * | 2010-04-30 | 2018-03-20 | Www.Trustscience.Com Inc. | Assessing and scoring people, businesses, places, things, and brands |
US9400799B2 (en) * | 2010-10-04 | 2016-07-26 | Dell Products L.P. | Data block migration |
WO2012089701A1 (en) | 2010-12-27 | 2012-07-05 | Amplidata Nv | A distributed object storage system comprising performance optimizations |
US8904128B2 (en) | 2011-06-08 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | Processing a request to restore deduplicated data |
WO2013097026A1 (en) | 2011-12-28 | 2013-07-04 | Chrapko Evan V | Systems and methods for visualizing social graphs |
JP6042170B2 (ja) * | 2012-10-19 | 2016-12-14 | ルネサスエレクトロニクス株式会社 | キャッシュ制御装置及びキャッシュ制御方法 |
US9578043B2 (en) | 2015-03-20 | 2017-02-21 | Ashif Mawji | Calculating a trust score |
US20170235792A1 (en) | 2016-02-17 | 2017-08-17 | Www.Trustscience.Com Inc. | Searching for entities based on trust score and geography |
US9438619B1 (en) | 2016-02-29 | 2016-09-06 | Leo M. Chan | Crowdsourcing of trustworthiness indicators |
US9679254B1 (en) | 2016-02-29 | 2017-06-13 | Www.Trustscience.Com Inc. | Extrapolating trends in trust scores |
US9721296B1 (en) | 2016-03-24 | 2017-08-01 | Www.Trustscience.Com Inc. | Learning an entity's trust model and risk tolerance to calculate a risk score |
US10180969B2 (en) | 2017-03-22 | 2019-01-15 | Www.Trustscience.Com Inc. | Entity resolution and identity management in big, noisy, and/or unstructured data |
US10733006B2 (en) | 2017-12-19 | 2020-08-04 | Nutanix, Inc. | Virtual computing systems including IP address assignment using expression evaluation |
US11474724B2 (en) * | 2018-01-25 | 2022-10-18 | Vmware, Inc. | System and method for speed up data rebuild in a distributed storage system with local deduplication |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07253918A (ja) | 1994-03-15 | 1995-10-03 | Fujitsu Ltd | 分散データベースアクセス方式 |
US6928459B1 (en) | 2000-07-18 | 2005-08-09 | International Business Machines Corporation | Plurality of file systems using weighted allocation to allocate space on one or more storage devices |
US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
JP4183400B2 (ja) * | 2001-06-27 | 2008-11-19 | 株式会社日立製作所 | データベースシステムとデータベース管理方法およびプログラム |
US7213025B2 (en) * | 2001-10-16 | 2007-05-01 | Ncr Corporation | Partitioned database system |
US7080072B1 (en) * | 2001-11-14 | 2006-07-18 | Ncr Corp. | Row hash match scan in a partitioned database system |
JP2003223287A (ja) | 2001-11-22 | 2003-08-08 | Toshiba Corp | 記憶装置、この記憶装置のバックアップ方法及びプログラム |
JP4154893B2 (ja) * | 2002-01-23 | 2008-09-24 | 株式会社日立製作所 | ネットワークストレージ仮想化方法 |
JP4265245B2 (ja) * | 2003-03-17 | 2009-05-20 | 株式会社日立製作所 | 計算機システム |
US7908413B2 (en) * | 2003-07-15 | 2011-03-15 | International Business Machines Corporation | Data allocation in a distributed storage system |
-
2003
- 2003-02-19 JP JP2003041486A patent/JP4068473B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-18 US US10/779,738 patent/US7266649B2/en not_active Expired - Fee Related
-
2007
- 2007-05-02 US US11/797,286 patent/US7743208B2/en not_active Expired - Fee Related
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007317183A (ja) * | 2006-05-16 | 2007-12-06 | Thomson Licensing | ネットワークデータストレージシステム |
JP2011510367A (ja) * | 2007-12-26 | 2011-03-31 | シマンテック コーポレーション | 分散リソース管理のためのバランスしたコンシステント・ハッシュ |
JP2014142945A (ja) * | 2007-12-26 | 2014-08-07 | Symantec Corp | 分散リソース管理のためのバランスしたコンシステント・ハッシュ |
US8799619B2 (en) | 2009-02-11 | 2014-08-05 | Nhn Corporation | Method and system for providing distributed programming environment using distributed spaces, and computer readable recording medium |
JP2012517631A (ja) * | 2009-02-11 | 2012-08-02 | エヌエイチエヌ コーポレーション | 分散スペースを用いて分散プログラミング環境を提供するための方法、システム及びコンピュータ読み取り可能な記録媒体 |
JP2012027587A (ja) * | 2010-07-21 | 2012-02-09 | Tokyo Denki Univ | データ分散保管装置及び方法及びプログラム及び記録媒体 |
JP2012123544A (ja) * | 2010-12-07 | 2012-06-28 | Nippon Hoso Kyokai <Nhk> | 負荷分散装置及びプログラム |
JP2013045181A (ja) * | 2011-08-22 | 2013-03-04 | Nippon Telegr & Teleph Corp <Ntt> | データベースの負荷分散装置 |
JP2013109672A (ja) * | 2011-11-22 | 2013-06-06 | Fujitsu Ltd | ノード決定プログラム、ノード決定装置およびノード決定方法 |
JP2013148950A (ja) * | 2012-01-17 | 2013-08-01 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散プログラムおよび負荷分散装置 |
JP2015515047A (ja) * | 2012-02-24 | 2015-05-21 | シンプリヴィティ・コーポレーション | 不均等アクセス・メモリにレコードを配置するために不均等ハッシュ機能を利用する方法および装置 |
JP2013182399A (ja) * | 2012-03-01 | 2013-09-12 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散プログラムおよび負荷分散装置 |
JP2015512551A (ja) * | 2012-04-06 | 2015-04-27 | エグザブロックス・コーポレーション | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 |
US9628438B2 (en) | 2012-04-06 | 2017-04-18 | Exablox | Consistent ring namespaces facilitating data storage and organization in network infrastructures |
KR101269428B1 (ko) | 2012-07-30 | 2013-05-30 | 한국과학기술정보연구원 | 데이터 분배 시스템 및 방법 |
KR20140036942A (ko) * | 2012-09-14 | 2014-03-26 | 한국전자통신연구원 | 콘텐트 제공 장치와 방법 및 콘텐트 제공 시스템 |
KR102000168B1 (ko) * | 2012-09-14 | 2019-10-02 | 한국전자통신연구원 | 콘텐트 제공 장치와 방법 및 콘텐트 제공 시스템 |
CN106445413A (zh) * | 2012-12-12 | 2017-02-22 | 华为技术有限公司 | 集群系统中数据处理方法及装置 |
CN106445413B (zh) * | 2012-12-12 | 2019-10-25 | 华为技术有限公司 | 集群系统中数据处理方法及装置 |
JP2014182737A (ja) * | 2013-03-21 | 2014-09-29 | Nec Corp | 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム |
US9891992B2 (en) | 2013-03-21 | 2018-02-13 | Nec Corporation | Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media |
US9552382B2 (en) | 2013-04-23 | 2017-01-24 | Exablox Corporation | Reference counter integrity checking |
JPWO2014188682A1 (ja) * | 2013-05-20 | 2017-02-23 | 日本電気株式会社 | ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム |
US10708355B2 (en) | 2013-05-20 | 2020-07-07 | Nec Corporation | Storage node, storage node administration device, storage node logical capacity setting method, program, recording medium, and distributed data storage system |
WO2014188682A1 (ja) * | 2013-05-20 | 2014-11-27 | 日本電気株式会社 | ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム |
US9514137B2 (en) | 2013-06-12 | 2016-12-06 | Exablox Corporation | Hybrid garbage collection |
US9715521B2 (en) | 2013-06-19 | 2017-07-25 | Storagecraft Technology Corporation | Data scrubbing in cluster-based storage systems |
US9934242B2 (en) | 2013-07-10 | 2018-04-03 | Exablox Corporation | Replication of data between mirrored data sites |
US10248556B2 (en) | 2013-10-16 | 2019-04-02 | Exablox Corporation | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session |
US9985829B2 (en) | 2013-12-12 | 2018-05-29 | Exablox Corporation | Management and provisioning of cloud connected devices |
JP2015141622A (ja) * | 2014-01-29 | 2015-08-03 | キヤノン株式会社 | システムおよび制御方法 |
US9774582B2 (en) | 2014-02-03 | 2017-09-26 | Exablox Corporation | Private cloud connected device cluster architecture |
US9830324B2 (en) | 2014-02-04 | 2017-11-28 | Exablox Corporation | Content based organization of file systems |
JP2016157368A (ja) * | 2015-02-26 | 2016-09-01 | 日本電気株式会社 | 記憶システム、記憶方法、及び、プログラム |
JP2017033412A (ja) * | 2015-08-04 | 2017-02-09 | 株式会社東芝 | ストレージ管理装置、方法、及びストレージシステム |
US10474654B2 (en) | 2015-08-26 | 2019-11-12 | Storagecraft Technology Corporation | Structural data transfer over a network |
US9846553B2 (en) | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
Also Published As
Publication number | Publication date |
---|---|
US7743208B2 (en) | 2010-06-22 |
JP4068473B2 (ja) | 2008-03-26 |
US20040162953A1 (en) | 2004-08-19 |
US20080091910A1 (en) | 2008-04-17 |
US7266649B2 (en) | 2007-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4068473B2 (ja) | ストレージ装置、分担範囲決定方法及びプログラム | |
US6928459B1 (en) | Plurality of file systems using weighted allocation to allocate space on one or more storage devices | |
CN108780386B (zh) | 一种数据存储的方法、装置和系统 | |
KR100985443B1 (ko) | 시퀀스 관리 장치, 데이터 백업 방법, 데이터 백업 클라이언트, 데이터 백업 시스템, 프로그램가능 하드웨어 장치 및 데이터 백업 장치 | |
US9405781B2 (en) | Virtual multi-cluster clouds | |
US7844775B2 (en) | Distribution of data in a distributed shared storage system | |
US9860317B1 (en) | Throughput throttling for distributed file storage services with varying connection characteristics | |
JP6222227B2 (ja) | ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム | |
JPWO2012117658A1 (ja) | ストレージシステム | |
CN106687943B (zh) | 用于配置计算系统的方法和系统 | |
KR101371202B1 (ko) | 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법 | |
US10387043B2 (en) | Writing target file including determination of whether to apply duplication elimination | |
JP5758449B2 (ja) | データ再配置装置、方法およびプログラム | |
CN107948229B (zh) | 分布式存储的方法、装置及系统 | |
US20130226867A1 (en) | Apparatus and method for converting replication-based file into parity-based file in asymmetric clustering file system | |
JP2023541069A (ja) | アクティブ-アクティブストレージシステムおよびそのデータ処理方法 | |
JP2024514467A (ja) | 地理的に分散されたハイブリッドクラウドクラスタ | |
Renuga et al. | Balanced and efficient data placement and replication strategy for distributed backup storage systems | |
CN115687250A (zh) | 一种存储方法、设备、系统和计算机存储介质 | |
March et al. | DGRID: a DHT-based resource indexing and discovery scheme for computational grids | |
WO2011136261A1 (ja) | ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム | |
US11971902B1 (en) | Data retrieval latency management system | |
TW202213091A (zh) | 資訊處理裝置、資訊處理方法及資訊處理程式 | |
KR20200049353A (ko) | 블록체인 기반 콘텐츠 관리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070925 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071126 |
|
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: 20080108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080110 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140118 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |