JPWO2013172405A1 - ストレージシステムおよびデータアクセス方法 - Google Patents
ストレージシステムおよびデータアクセス方法 Download PDFInfo
- Publication number
- JPWO2013172405A1 JPWO2013172405A1 JP2014515664A JP2014515664A JPWO2013172405A1 JP WO2013172405 A1 JPWO2013172405 A1 JP WO2013172405A1 JP 2014515664 A JP2014515664 A JP 2014515664A JP 2014515664 A JP2014515664 A JP 2014515664A JP WO2013172405 A1 JPWO2013172405 A1 JP WO2013172405A1
- Authority
- JP
- Japan
- Prior art keywords
- storage node
- access request
- client terminal
- data
- access
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/622—State-only directory, i.e. not recording identity of sharing or owning nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
分散ストレージシステムにおいて、データオブジェクトの配置の柔軟性を確保しつつ、高いアクセス性能を実現すること。クライアント端末はオブジェクトデータの識別子とオブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する非同期キャッシュを備え、アクセス要求を処理すべきストレージノードを非同期キャッシュに格納された対応関係に基づいて決定し、決定したストレージノードに対してアクセス要求を送出し、ストレージノードはクライアント端末からアクセス要求を受けると、アクセス要求を自身が処理すべきかどうかを判定して判定結果をクライアント端末に通知するとともに、アクセス要求を処理すべきストレージノードの更新を行い、非同期キャッシュはストレージノードによる前記更新とは非同期に、前記更新に従って前記対応関係を変更する。
Description
[関連出願についての記載]
本発明は、日本国特許出願:特願2012−113183号(2012年 5月17日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、ストレージシステムおよびデータアクセス方法に関し、特に、複数のストレージノードを備えた分散型のストレージシステム、および、複数のストレージノードに対するデータアクセス方法に関する。
本発明は、日本国特許出願:特願2012−113183号(2012年 5月17日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、ストレージシステムおよびデータアクセス方法に関し、特に、複数のストレージノードを備えた分散型のストレージシステム、および、複数のストレージノードに対するデータアクセス方法に関する。
ストレージシステムは、データを格納するとともに、格納したデータを提供するシステムである。具体的には、ストレージシステムは、データの一部に対するCREATE(INSERT), READ, WRITE(UPDATE), DELETEなどの基本機能(アクセス)を提供するとともに、権限管理、データ構造化(整理)などの多様な機能を提供する。
分散ストレージシステムは、ネットワークを介して接続された多数の計算機(ストレージノード)を有し、これらの計算機のハードディスクドライブ(HDD:Hard Disk Drive)、メモリ等を用いてストレージシステムを実現する。分散ストレージシステムでは、いずれの計算機にデータを配置し、いずれの計算機によってデータを処理するのかを、ソフトウェアまたは特別なハードウェアが決定する。また、分散ストレージシステムの動作を動的に変更することにより、システム内のリソース使用量を調整するとともに、クライアント端末およびその利用者に対する性能を向上させる。
例えば、非特許文献1には、メタサーバがデータチャンクの位置を一元管理する分散ストレージとしてGoogle File Systemが記載されている。
また、非特許文献2には、クライアント端末がハッシュ関数を複数回適用することで、システム中においてデータを格納しているストレージノードを検出する技術が記載されている。
さらに、非特許文献3には、データのマイグレーション(移動)に関する標準技術としてpNFS(parallel Network File System)が記載されている。
また、非特許文献4には、分散ストレージシステムに関する技術ではないものの、DNS(Domain Name System)における名前解決とDNSエントリのキャッシュを備えた複数の計算機から成るデータ格納システムとして、WEBサーバが記載されている。WEBサーバの位置情報は、サーバ名とオブジェクト名の組からなるURL(Uniform Resource Locator)で示される。このうちサーバ名は、DNSサーバが提供するサービスによって実際のサーバアドレスへ変換される。DNSサーバの情報の一部は、性能向上のために、クライアント端末にキャッシュされることもある。
さらに、非特許文献5には、WEBサーバソフトウェアであるApacheにおいて、自サーバ名(ドメイン名)を予め設定しておいて、異なるサーバ名で誤って送られてきたアクセスを拒否する技術が記載されている。
Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, "The Google File System," SIGOPS Oper. Syst. Rev. 37, 5 (October 2003), pp. 29-43
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan, "Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications," ACM SIGCOMM Computer Communication, Review 31(4), pp.149-160, ACM Press, 2001
S. Shepler, et al., "Network File System (NFS) Version 4 Minor Version 1 Protocol," RFC 1035, Internet Engineering Task Force (IETF), 2010
P. Mockapetris, "Domain Names - Implementaion and Specification," RFC 1035, Network Working Group, 1987
Apache Software Foundation、「Apache HTTPサーバ バージョン 2.2 Apacheコア機能」、[online]、[平成24年4月27日検索]、インターネット〈URL:http://httpd.apache.org/docs/2.1/ja/mod/core.html〉
上記の特許文献1および非特許文献1ないし5の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
分散ストレージシステムにおいては、データは複数のストレージノードに分散して格納されている。したがって、クライアント端末がデータにアクセスする場合には、データを保持しているストレージノードを把握する必要がある。また、アクセス対象のデータを保持するストレージノードが複数存在する場合には、クライアント端末は、いずれのストレージノードにアクセスすべきかを把握する必要がある。
格納されるデータは、意味的な単位でアクセスされる。例えば、関係データベースでは、データはレコード(record)またはタプル(tuple)と呼ばれる単位で書き込まれることが多い。ファイルシステムでは、データはブロックの集合として書き込まれる。キーバリューストア(Key-Value Store)では、データはオブジェクトとして書き込まれる。こうして書き込まれたデータは、その単位ごとにクライアント端末により読み込まれる。以下では、このデータ単位を「データオブジェクト」と呼ぶ。
データオブジェクトを保持しているストレージノードをクライアント端末が把握する方式として、データオブジェクトの位置情報を管理する1または2以上の計算機から成るメタサーバを設ける方式(以下、「メタサーバ方式」という。)が知られている。
非特許文献1に記載されたメタサーバ方式によると、ストレージシステムが大規模になるに従って、データオブジェクトを格納しているストレージノードの位置を検索するメタサーバの処理性能が不足し、アクセス性能上のボトルネックとなる。また、メタサーバ方式によると、クライアント端末は、データオブジェクトを格納するストレージノードにアクセスする以前にメタサーバにアクセスする必要があり、データアクセスに要する時間が長くなる。特に、クライアント端末とメタサーバとの距離が離れており、ネットワークアクセスに時間を要する場合には、データアクセス時間は顕著に増大する。
この問題を解消するために、アクセスを行うクライアント端末または他の計算機上に、メタサーバ上のデータ位置情報の一部をキャッシュする技術が知られている。クライアント端末は、キャッシュされた位置情報を利用できる場合には、メタサーバへアクセスすることなく、データを格納しているストレージノードへ直接アクセスすることができる。ここで、キャッシュの方法として、同期キャッシュと非同期キャッシュとがある。
同期キャッシュでは、メタサーバ上の位置情報(原本)への変更が同期的にキャッシュに適用されるため、クライアント端末は最新の正しい情報に従って該当ストレージノードを選ぶことができる。しかし、同期キャッシュによると、原本への更新をすべてのキャッシュに反映する必要があるため、原本の更新に長い時間を要する。また、同期キャッシュによると、各キャッシュは、原本に更新があったかどうかを確認する必要があるため、ストレージシステムの性能が低下するおそれがある。
一方、非同期キャッシュでは、メタサーバ上の位置情報(原本)への変更はキャッシュに対して同期的に適用されないため、クライアント端末は、古い位置情報に従って、データオブジェクトを保持していないストレージノードへ誤ってアクセスすることがある。一方、非同期キャッシュによると、原本に対する高頻度の更新が行われた場合にも、キャッシュへの更新を遅延してまとめて適用することができる。
データオブジェクトを保持しているストレージノードをクライアント端末が把握するための他の方式として、分散関数(例えば、ハッシュ関数)を用いてデータオブジェクトを格納するストレージノードを求める方式(以下、「分散関数方式」という。)がある。分散関数方式では、すべてのクライアント端末は、システムに参加しているストレージノードのリストおよび分散関数を共有する。また、格納データは固定長または任意長のデータ断片(Value、バリュー)に分割され、各Valueには、これを一意に特定するための識別子(Key、キー)が付与される。
クライアント端末は、データにアクセスする場合、分散関数にキーを入力として与え、分散関数の出力値とストレージノードのリストに基づいて、データを格納しているストレージノードを算術的に求める。例えば、非特許文献2に記載された技術によると、クライアント端末は、ハッシュ関数を複数回適用することで、システム中においてデータを格納しているストレージノードを検出する。
分散関数方式によると、各クライアント端末は、集中アクセスされるメタサーバを経由することなく、ストレージノードにアクセスすることができる。したがって、メタサーバが性能上のボトルネックになることがない。特許文献1には、乱数関数を用いてデータの配置を決定する技術が記載されている。
ところで、分散ストレージシステムにおいて、あるストレージノードに格納されているデータオブジェクトを別のストレージノードに移動(マイグレーション)する技術が知られている。データオブジェクトの移動は、一例として、特定のストレージノードに対するアクセスが集中することを回避するために行われる。データアクセスサービスを提供するコンピュータの資源の使用量を均等に分散させることで、システム全体のスループット、レイテンシ、消費電力などの性能が向上する。
また、あるデータオブジェクトと他のデータオブジェクトが同一のストレージノード内に存在するとき、これらのデータオブジェクトが別個のストレージノードに存在するときと比較して、アクセスを高速に処理できる場合がある。例えば、データオブジェクトAとデータオブジェクトBとの間で一貫性や整合性を保つ必要がある場合には、データオブジェクトAとデータオブジェクトBを格納するストレージノードと、これらのデータオブジェクトの一貫性を管理するソフトウェアプロセスとの間で通信が発生する。このようなアクセスが頻繁に到達する場合には、ストレージノードとソフトウェアプロセスが同一の計算機上で動作していれば計算機間の通信が削減され、より高速にアクセスを処理することができる。したがって、データオブジェクトAとデータオブジェクトBとが1つのストレージノード上に格納されるように、データオブジェクトを移動することが好ましい。このような場合にも、複数ストレージノード間でのデータオブジェクトの移動が行われる。
さらに、データオブジェクトの移動は、システムの運用中においても動的に行われる。なぜなら、格納されているデータオブジェクトが利用される傾向は、時間の経過とともに変化し得るからである。
例えば、データオブジェクトがビジネスの現場におけるドキュメントである場合には、次のようなライフサイクルが考えられる。一例として、データオブジェクトは、作成された直後に頻繁に編集され、一旦完成して利用者に回覧された後には、多くの参照要求が生じ、その後はごく稀にのみアクセスされ、消失することがないように保管され、数年後にストレージ内容を整理する際に削除される。他の例として、我が国のオフィスで使われているデータオブジェクトは、我が国における勤務時間帯(例えば、日中)に頻繁にアクセスされ、それ以外の時間帯(例えば、夜中)には稀にのみアクセスされる。一方、米国のオフィスで使われているデータオブジェクトは、現地における勤務時間帯に頻繁にアクセスされ、それ以外の時間帯には稀にのみアクセスされる。
このように、データオブジェクトに対するアクセス頻度は数時間単位または数ヵ月単位で変化し得ることから、分散ストレージシステムの運用中においても、データオブジェクトの配置を動的に変更する必要がある。
メタサーバ方式によると、分散関数方式と比較して、データオブジェクトを配置するストレージノードを変更することが容易である。メタサーバ方式では、各データオブジェクトが配置されているストレージノードの識別子またはアドレスがメタサーバに格納されている。
例えば、データオブジェクトごとにエントリを作成し、各データオブジェクトのエントリに対して、データオブジェクトが格納されている1つ以上のストレージノードの識別子やアドレスを記載する方法が知られている。この方法によると、第1のストレージノードN1上のデータオブジェクト(「データオブジェクトA」とする。)を第2のストレージノードN2に移動した場合、データオブジェクトAのエントリに記載された第1のストレージノードN1を第2のストレージノードN2へと変更すればよい。すると、エントリの変更後におけるクライアント端末からのデータオブジェクトAへのアクセスは、第2のストレージノードN2に到達する。
メタサーバ方式によると、一般に、各データオブジェクトは、任意のストレージノードをマイグレーション(移動)先とすることができる。ただし、耐障害性を向上させるために、データオブジェクトの1つ以上の複製データが他のストレージノードにも格納されている場合、データオブジェクトの冗長性を確保するために、マイグレーション先のストレージノードが制限されることもある。
一方、分散関数方式によると、各データオブジェクトの配置は分散関数の出力に従って決定される。したがって、分散関数方式では、データオブジェクトごとにマイグレーション先を任意に設定することができない。
例えば、データオブジェクトAが分散関数hを用いた場合にh(A)=n1となり、ハッシュ値n1に相当する第1のストレージノードN1に格納されているものとする。このとき、データオブジェクトAをハッシュ値n2に相当する第2のストレージノードN2に移動するには、分散関数をhからh’に変更してh’(A)=n2となるようにしなければならない。しかし、分散関数h’()は、ストレージノードN1に格納されたデータオブジェクトA以外のデータオブジェクトXに関してはh’(X)=h(X)=n1を満たす必要がある。しかしながら、このような性質を有する分散関数h’を見つけ出すには膨大な計算が必要とされる。したがって、分散関数方式によると、データオブジェクトを任意のストレージノードにマイグレーションすることは困難となる。
非特許文献3に記載されたpNFSでは、データがマイグレーション済みである場合には、マイグレーション済みを表すエラー応答または新しい移動先をクライアント端末に返す。しかし、pNFSは基本的にメタサーバ方式に基づくデータ配置制御であり、特に、データCREATE時において、メタデータサーバ(MDS:Metadata Server)が性能上のボトルネックとなるおそれがある。
以下では、任意のデータオブジェクトに対して、マイグレーション先として設定できるストレージノードの個数が多いことを、データオブジェクトの配置が柔軟であると表現する。特に、任意のデータオブジェクトを任意のストレージノードにマイグレーションできる場合には、データオブジェクトの配置が最も柔軟であると表現する。
上述した関連技術に基づいてデータオブジェクトの配置が柔軟な分散ストレージシステムを実現するには、メタサーバ方式を利用することが考えられる。メタサーバ方式によると、データオブジェクトの複製を考慮しない場合には、データオブジェクトの配置は最も柔軟となる。しかし、メタサーバ方式によると、上述のようにメタサーバがボトルネックとなり、アクセス性能が低下するおそれがある。
上述の関連技術を基づいてデータオブジェクトの配置が柔軟な分散ストレージシステムを実現する他の方法として、メタサーバ方式に加えて、クライアント端末に非同期キャッシュを設ける方法が考えられる。この方式によると、ストレージシステム上に既に存在しているデータオブジェクトに対するアクセスであるREAD、WRITE(UPDATE)などのアクセスに関しては、クライアント端末はキャッシュされたメタサーバのエントリの一部を用いてアクセスすべきストレージノードを決定することができる。しかし、メタサーバ上のエントリの増減を伴うCREATEなどのアクセスに関しては、クライアント端末はキャッシュに基づいてストレージノードの位置を決定することができず、メタサーバに対するアクセスが頻発するおそれがある。したがって、この方式は既存のコンテンツを提供・更新する動画サーバなどに適するものの、ログデータ、CGM(Consumer Generated Media)などを格納するストレージシステムのように、新しいデータオブジェクトが順次追加されるストレージシステムには適さない。
一方、分散関数方式によると、CREATEも含むアクセスに関して、クライアント端末はメタサーバを介することなくストレージノードを決定することができる。しかしながら、分散関数方式は、上述のように、データオブジェクトの配置における柔軟性が乏しいという問題がある。
なお、非特許文献4、5に記載された技術は、いずれもデータのマイグレーションを前提としておらず、上述の問題を解決することはできない。
そこで、分散ストレージシステムにおいて、データオブジェクトの配置の柔軟性を確保しつつ、高いアクセス性能を実現することが課題となる。本発明の目的は、かかる課題を解決するストレージシステムおよびデータアクセス方法を提供することにある。
本発明の第1の視点に係るストレージシステムは、
クライアント端末と、
複数のストレージノードと、を備え、
前記クライアント端末は、オブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する非同期キャッシュと、
前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定し、決定したストレージノードに対して前記アクセス要求を送出するアクセス部と、を有し、
前記複数のストレージノードは、前記クライアント端末から前記アクセス要求を受けると、前記アクセス要求を自身が処理すべきかどうかを判定し、判定結果を前記クライアント端末に通知する判定部と、
前記アクセス要求を処理すべきストレージノードの更新を行う更新部と、を有し、
前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記更新に従って前記対応関係を変更する。
クライアント端末と、
複数のストレージノードと、を備え、
前記クライアント端末は、オブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する非同期キャッシュと、
前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定し、決定したストレージノードに対して前記アクセス要求を送出するアクセス部と、を有し、
前記複数のストレージノードは、前記クライアント端末から前記アクセス要求を受けると、前記アクセス要求を自身が処理すべきかどうかを判定し、判定結果を前記クライアント端末に通知する判定部と、
前記アクセス要求を処理すべきストレージノードの更新を行う更新部と、を有し、
前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記更新に従って前記対応関係を変更する。
本発明の第2の視点に係るデータアクセス方法は、
クライアント端末が、オブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を非同期キャッシュに保持する工程と、
前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定し、決定したストレージノードに対して前記アクセス要求を送出する工程と、
複数のストレージノードのうちの、前記クライアント端末から前記アクセス要求を受けたストレージノードが、前記アクセス要求を自身が処理すべきかどうかを判定し、判定結果を前記クライアント端末に通知する工程と、
前記複数のストレージノードが、それぞれ、前記アクセス要求を処理すべきストレージノードの更新を行う工程と、
前記クライアント端末が、前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記非同期キャッシュに格納された前記対応関係を前記更新に従って変更する工程と、を含む。
クライアント端末が、オブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を非同期キャッシュに保持する工程と、
前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定し、決定したストレージノードに対して前記アクセス要求を送出する工程と、
複数のストレージノードのうちの、前記クライアント端末から前記アクセス要求を受けたストレージノードが、前記アクセス要求を自身が処理すべきかどうかを判定し、判定結果を前記クライアント端末に通知する工程と、
前記複数のストレージノードが、それぞれ、前記アクセス要求を処理すべきストレージノードの更新を行う工程と、
前記クライアント端末が、前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記非同期キャッシュに格納された前記対応関係を前記更新に従って変更する工程と、を含む。
本発明に係るストレージシステムおよびデータアクセス方法によると、データオブジェクトの配置の柔軟性を確保しつつ、高いアクセス性能を実現することができる。
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図3は、一実施形態に係るストレージシステムの構成を一例として示すブロック図である。図3を参照すると、ストレージシステムは、クライアント端末(10)と、複数のストレージノード(20)を備えている。なお、図3においては、簡単のため、1つのストレージノードのみを図示した。
クライアント端末は、非同期キャッシュ(12)およびアクセス部(11)を備えている。非同期キャッシュ(12)は、オブジェクトデータの識別子とオブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する。アクセス部(11)は、アクセス要求を処理すべきストレージノードを非同期キャッシュ(12)に格納された対応関係に基づいて決定し、決定したストレージノードに対してアクセス要求を送出する。
ストレージノード(20)は、判定部(21)および更新部(23)を備えている。判定部(21)は、クライアント端末(10)からアクセス要求を受けると、アクセス要求を自身が処理すべきかどうかを判定し、判定結果をクライアント端末(10)に通知する。更新部(23)は、アクセス要求を処理すべきストレージノードの更新を行う。
非同期キャッシュ(12)は、複数のストレージノードのそれぞれによる上記更新とは非同期に、上記更新に従って、上記対応関係を変更する。
図3を参照すると、ストレージシステムは、サーバ装置(30)を備えていてもよい。サーバ装置(30)は、複数のストレージノードのそれぞれによる上記更新の内容を表す更新情報を蓄積する。このとき、複数のストレージノードのそれぞれの更新部(23)は、アクセスを処理すべきストレージノードを更新すると、更新の内容を示す更新情報をサーバ装置(30)に通知する。また、非同期キャッシュ(12)は、複数のストレージノードのそれぞれによる上記更新とは非同期に、サーバ装置(30)に蓄積された上記更新情報に従って上記対応関係を変更する。
かかるストレージシステムによると、分散関数方式に基づくストレージシステムと比較して、より多くのストレージノードをオブジェクトデータのマイグレーション先とすることができ、柔軟なデータ配置が可能となる。また、クライアント端末はメタサーバを利用することなく、自身に設けられた非同期キャッシュの情報に基づいてストレージノードにアクセスすることができるため、多くのクライアント端末によるデータアクセスによってメタサーバがボトルネックとなることを防ぐことができ、高いアクセス性能がもたらされる。したがって、上記一実施形態に係るストレージシステムによると、データオブジェクトの配置の柔軟性を確保しつつ、高いアクセス性能を実現することができる。
また、非同期キャッシュ(12)は、複数のストレージノード間で移動済みのオブジェクトデータの識別子と当該オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係のみを保持するようにしてもよい。さらに、アクセス部(11)は、アクセス要求を処理すべきストレージノードを非同期キャッシュ(12)に格納された対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいてアクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対してアクセス要求を送出するようにしてもよい。
このとき、データマイグレーションが困難な配置方式(例えば、分散関数方式)と、データ配置が柔軟な配置方式(例えば、メタサーバ方式)を組み合わせたデータ配置方式が実現可能となる。データ配置が柔軟なメタサーバ方式などの配置方式では、CREATEがボトルネックになる。そこで、分散関数方式でCREATE先を決めておき、マイグレート(移動)されたデータオブジェクトのみをメタサーバ方式で管理し、非同期キャッシュをクライアント端末に設ける。こうすることで、多くのCREATEアクセスは、直接ストレージノードへ到達し、一部のマイグレートされたデータオブジェクトに対するアクセスは判定部(21)により適切なストレージノードに割り当てられる。このとき、データ配置が整合を保ちつつ柔軟なデータ配置を実現し、メタサーバのボトルネックを回避した高速な分散ストレージシステムを提供することが可能となる。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の視点に係るストレージシステムのとおりである。
[形態2]
前記ストレージシステムは、前記複数のストレージノードのそれぞれによる前記更新の内容を表す更新情報を蓄積するサーバ装置を備え、
前記複数のストレージノードのそれぞれの前記更新部は、前記アクセスを処理すべきストレージノードを更新すると、前記更新の内容を示す更新情報を前記サーバ装置に通知し、
前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記サーバ装置に蓄積された前記更新情報に従って前記対応関係を変更してもよい。
[形態3]
前記サーバ装置は、前記更新情報を定期的に前記クライアント端末に通知し、
前記非同期キャッシュは、前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更してもよい。
[形態4]
前記サーバ装置は、前記更新情報のデータ量が所定のサイズ以上となった場合、前記更新情報を前記クライアント端末に通知し、
前記非同期キャッシュは、前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更してもよい。
[形態5]
前記アクセス部は、前記対応関係に基づいて決定したストレージノードが前記アクセス要求を処理すべきストレージノードではないと前記判定部によって判定され場合、前記更新情報を通知するように前記サーバ装置に要求し、
前記非同期キャッシュは、前記要求に応じて前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更してもよい。
[形態6]
前記判定部は、前記アクセス要求を自身が処理すべきではない場合、前記アクセス要求を処理すべきストレージノードに前記アクセス要求を転送してもよい。
[形態7]
前記非同期キャッシュは、前記複数のストレージノード間で移動済みのオブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係のみを保持し、
前記アクセス部は、前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいて前記アクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対して前記アクセス要求を送出してもよい。
[形態8]
上記第2の視点に係るデータアクセス方法のとおりである。
[形態9]
前記データアクセス方法は、サーバ装置が、前記複数のストレージノードのそれぞれによる前記更新の内容を表す更新情報を蓄積する工程と、
前記複数のストレージノードが、それぞれ、前記アクセスを処理すべきストレージノードを更新すると、前記更新の内容を示す更新情報を前記サーバ装置に通知する工程と、
前記クライアント端末が、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記非同期キャッシュに格納された前記対応関係を、前記サーバ装置に蓄積された前記更新情報に従って変更する工程と、を含んでもよい。
[形態10]
前記データアクセス方法は、前記サーバ装置が、前記更新情報を定期的に前記クライアント端末に通知する工程と、
前記クライアント端末が、前記非同期キャッシュに格納された前記対応関係を前記サーバ装置から通知された前記更新情報に従って変更する工程と、を含んでもよい。
[形態11]
前記データアクセス方法は、前記サーバ装置が、前記更新情報のデータ量が所定のサイズ以上となった場合、前記更新情報を前記クライアント端末に通知する工程と、
前記クライアント端末が、前記非同期キャッシュに格納された前記対応関係を、前記サーバ装置から通知された前記更新情報に従って変更する工程と、を含んでもよい。
[形態12]
前記データアクセス方法は、前記クライアント端末が、前記対応関係に基づいて決定したストレージノードが前記アクセス要求を処理すべきストレージノードではないと前記アクセス要求を受けたストレージノードによって判定された場合、前記更新情報を通知するように前記サーバ装置に要求する工程と、
前記非同期キャッシュに格納された前記対応関係を、前記要求に応じて前記サーバ装置から通知された前記更新情報に従って変更する工程と、を含んでもよい。
[形態13]
前記データアクセス方法は、前記アクセス要求を受けたストレージノードが、前記アクセス要求を自身が処理すべきではない場合、前記アクセス要求を処理すべきストレージノードに前記アクセス要求を転送する工程を含んでもよい。
[形態14]
前記データアクセス方法において、前記非同期キャッシュは、前記複数のストレージノード間で移動済みのオブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係のみを保持し、
前記クライアント端末が、前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいて前記アクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対して前記アクセス要求を送出する工程を含んでもよい。
[形態1]
上記第1の視点に係るストレージシステムのとおりである。
[形態2]
前記ストレージシステムは、前記複数のストレージノードのそれぞれによる前記更新の内容を表す更新情報を蓄積するサーバ装置を備え、
前記複数のストレージノードのそれぞれの前記更新部は、前記アクセスを処理すべきストレージノードを更新すると、前記更新の内容を示す更新情報を前記サーバ装置に通知し、
前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記サーバ装置に蓄積された前記更新情報に従って前記対応関係を変更してもよい。
[形態3]
前記サーバ装置は、前記更新情報を定期的に前記クライアント端末に通知し、
前記非同期キャッシュは、前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更してもよい。
[形態4]
前記サーバ装置は、前記更新情報のデータ量が所定のサイズ以上となった場合、前記更新情報を前記クライアント端末に通知し、
前記非同期キャッシュは、前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更してもよい。
[形態5]
前記アクセス部は、前記対応関係に基づいて決定したストレージノードが前記アクセス要求を処理すべきストレージノードではないと前記判定部によって判定され場合、前記更新情報を通知するように前記サーバ装置に要求し、
前記非同期キャッシュは、前記要求に応じて前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更してもよい。
[形態6]
前記判定部は、前記アクセス要求を自身が処理すべきではない場合、前記アクセス要求を処理すべきストレージノードに前記アクセス要求を転送してもよい。
[形態7]
前記非同期キャッシュは、前記複数のストレージノード間で移動済みのオブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係のみを保持し、
前記アクセス部は、前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいて前記アクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対して前記アクセス要求を送出してもよい。
[形態8]
上記第2の視点に係るデータアクセス方法のとおりである。
[形態9]
前記データアクセス方法は、サーバ装置が、前記複数のストレージノードのそれぞれによる前記更新の内容を表す更新情報を蓄積する工程と、
前記複数のストレージノードが、それぞれ、前記アクセスを処理すべきストレージノードを更新すると、前記更新の内容を示す更新情報を前記サーバ装置に通知する工程と、
前記クライアント端末が、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記非同期キャッシュに格納された前記対応関係を、前記サーバ装置に蓄積された前記更新情報に従って変更する工程と、を含んでもよい。
[形態10]
前記データアクセス方法は、前記サーバ装置が、前記更新情報を定期的に前記クライアント端末に通知する工程と、
前記クライアント端末が、前記非同期キャッシュに格納された前記対応関係を前記サーバ装置から通知された前記更新情報に従って変更する工程と、を含んでもよい。
[形態11]
前記データアクセス方法は、前記サーバ装置が、前記更新情報のデータ量が所定のサイズ以上となった場合、前記更新情報を前記クライアント端末に通知する工程と、
前記クライアント端末が、前記非同期キャッシュに格納された前記対応関係を、前記サーバ装置から通知された前記更新情報に従って変更する工程と、を含んでもよい。
[形態12]
前記データアクセス方法は、前記クライアント端末が、前記対応関係に基づいて決定したストレージノードが前記アクセス要求を処理すべきストレージノードではないと前記アクセス要求を受けたストレージノードによって判定された場合、前記更新情報を通知するように前記サーバ装置に要求する工程と、
前記非同期キャッシュに格納された前記対応関係を、前記要求に応じて前記サーバ装置から通知された前記更新情報に従って変更する工程と、を含んでもよい。
[形態13]
前記データアクセス方法は、前記アクセス要求を受けたストレージノードが、前記アクセス要求を自身が処理すべきではない場合、前記アクセス要求を処理すべきストレージノードに前記アクセス要求を転送する工程を含んでもよい。
[形態14]
前記データアクセス方法において、前記非同期キャッシュは、前記複数のストレージノード間で移動済みのオブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係のみを保持し、
前記クライアント端末が、前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいて前記アクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対して前記アクセス要求を送出する工程を含んでもよい。
(実施形態1)
第1の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。
第1の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。
図1は、本実施形態の分散ストレージシステムにおけるデータの格納およびアクセスに関する構成を示すブロック図である。図1を参照すると、分散ストレージシステムは、ネットワーク40に接続されたクライアント端末10と、ストレージノード20a〜20cと、サーバ装置30とを備えている。図1においては、一例として、ストレージノードの台数を3台としたが、ストレージノードの台数はこれに限定されない。
ストレージノード20a〜20cは、それぞれ、データ送受信部25a〜25cおよびデータ格納部24a〜24cを備えている。クライアント端末10は、アクセス部11および非同期キャッシュ12を備えている。
図2は、図1のストレージノード20a〜20cのそれぞれの構成を詳細に示すブロック図である。図2を参照すると、クライアント端末10は、ネットワーク40を介して、ストレージノード20a〜20cに接続されている。
ストレージノード20x(x=a〜c)は、それぞれ、CPU(Central Processing Unit)26x、データ格納部24x、データ送受信部25x、および、配置方式部分情報22xを備えている。CPU26xは、ソフトウェアとともに、本実施形態の分散ストレージシステムにおける各部の機能を実現する。
データ格納部24x(x=a〜c)は、例えば、HDD、フラッシュメモリ、DRAM(Dynamic Random Access Memory)、STT−RAM(Spin Torque Transfer RAM)、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、PRAM(Phase change RAM)、RAID(Redundant Array of Inexpensive Disks)コントローラやSSD(Solid State Drive)コントローラなどに結合された記憶装置、磁気テープのようにデータを記録可能な物理媒体、または、ストレージノードの外部に設置された媒体にデータを記録する制御装置である。
ネットワーク40およびデータ送受信部25x(x=a〜c)は、例えば、Ethernet(登録商標)、Fibre Channel、FCoE(Fibre Channel over Ethernet(登録商標)、InfiniBand、QsNet、Myrinet、PCIExpress、Thunderbolt、または、これらを利用するTCP/IP(Transmission Control Protocol/Internet Protocol)、RDMA(Remote Direct Memory Access)などの上位プロトコルにより実現することができる。ただし、ネットワーク40およびデータ送受信部25x(x=a〜c)の実現方法は、これらに限られない。
格納データは、固定長または意味的に区切られたデータ断片(データオブジェクト)の集合として、ストレージノード20a〜20cのそれぞれのデータ格納部24a〜24cに格納される。各データオブジェクトには、一意の識別子(キー)が与えられている。クライアント端末は、キーを指定することで所望のデータオブジェクトを取得する。また、各データオブジェクトの複製を、複数のストレージノードに格納するようにしてもよい。また、各データオブジェクトの代わりとして、または、各データオブジェクトとともに、データオブジェクトに基づいて計算された冗長符号情報が他のストレージノードに格納されるようにしてもよい。ここで、冗長符号情報は、ストレージノードの故障によりデータオブジェクトの一部がアクセスできない状態となった場合に、データオブジェクトの消失を防ぐために用いられる。
データオブジェクトの例として、例えば、ブロックストレージのブロックもしくはセクタ、ファイルシステムのファイル、ファイルと関連するメタデータの集合、関係データベースのタプルもしくはテーブル、オブジェクトデータベースのデータ、Key-Valueデータ格納システムのValue、XML(Extensible Markup Language)文書のタグで囲まれた内容、RDF(Resource Description Framework)文書のリソース、Google App Engineのデータエンティティ、Microsoft Windows(登録商標) Azureキューのメッセージ、Cassandra等のWide Column StoreのColumn、JSON(JavaScript(登録商標) Object Notation)、BSON(Binary JSON)で記載されたドキュメント等が考えられる。
また、データオブジェクトに対応するキーの例として、ブロック番号、論理ボリューム識別子とブロック番号の組、セクタ番号、ファイル名、メタデータプロパティ名、ファイル名とメタデータプロパティ名の組、タプルの主キー値、テーブル名、テーブル名と主キー値の組、オブジェクト名、オブジェクトID(Identifier)、タグ名、リソース名などが考えられる。ただし、本実施形態におけるデータオブジェクトおよびキーは、これらに限定されない。
クライアント端末10のアクセス部11は、ストレージノードを特定する識別子と、データキーから当該データオブジェクトを保持するストレージノードを特定し、データオブジェクトを送信または受信する。具体的には、データオブジェクトを保持するストレージノードの特定は、クライアント端末10に設けられた非同期キャッシュ12を介して行われる。非同期キャッシュ12は、サーバ装置30を介して、各ストレージノードが持つ配置方式の部分情報(すなわち、アクセス要求を処理すべきストレージノードを表す情報、以下、「配置方式部分情報」という。)の一部または全部の情報を保持する。
ここで、配置方式とは、非同期キャッシュ12の内容を元に格納先となる1つ以上のストレージノードを決定することができるデータ構造またはアルゴリズムをいう。また、配置方式は、新しく作成するデータオブジェクトに関して、サーバ装置30または各ストレージノードが持つ配置方式部分情報22にアクセスすることなく、新しくデータオブジェクトを作成するストレージノードを決定する。
配置方式の例として、範囲付メタサーバ方式が考えられる。サーバ装置30がメタサーバで、メタサーバの情報の一部を各ストレージノードの配置方式部分情報22とする。メタサーバの情報は、データオブジェクト毎の識別子と、そのデータオブジェクトが格納されているストレージノードの識別子の組とする。また、範囲付メタサーバ方式では、さらにデータオブジェクトの識別子またはデータオブジェクトの識別子のハッシュ値の範囲ごとに新しくその範囲に該当するデータオブジェクトがCREATEされる際のストレージノードが定められている。この範囲の情報も、非同期にクライアント端末10上に保持される。
ここで、「非同期」とは、元のデータオブジェクト(ここでは、ストレージノードが持つ配置方式部分情報22)に対して更新が行われ、更新後のデータオブジェクトを取得できる何らかの動作主体がシステム上に存在する場合においても、クライアント端末10は自身が保持する非同期キャッシュ12上の古いデータを参照する可能性があるような更新情報の伝播方法をいう。
非同期の例として、所定の時刻まで更新情報を伝播させることなくサーバ装置30に保持するか、または、更新量が所定の分量となるまで更新情報を伝播さることなくサーバ装置30に保持しておいて、所定の時刻となったとき、または、更新量が所定の分量となったときに、更新情報をクライアント端末10の非同期キャッシュ12に伝播させる方式が考えられる。
非同期の他の例として、サーバ装置30は能動的にクライアント端末10の非同期キャッシュ12に更新情報を伝播させることなく更新情報を保持しておいて、クライアント端末10から情報の更新を要求されたときに、要求に応じて更新情報をクライアント端末10の非同期キャッシュ12に伝播させる方法が考えられる。ただし、本実施形態における非同期キャッシュ12の実現方法は、これらに限定されない。
分散ストレージシステムは、データマイグレーションを行う。データマイグレーションとは、あるストレージノードに格納された1つ以上のデータオブジェクトを他のストレージノードに移動する処理をいう。ここで、データマイグレーションは、データオブジェクトのコピーであってもよい。データオブジェクトの移動においては、元のストレージノードにおけるデータオブジェクトが削除される。一方、データオブジェクトのコピーの場合には、元のストレージノードにおけるデータオブジェクトは削除されないため、データオブジェクトの複製の個数が増加する。
例えば、負荷分散、性能向上、システム増強、システム縮退に伴うストレージノード数の増減、障害復旧などの要因により、データオブジェクトの移動が生じる。しかし、本実施形態において、データマイグレーションの発生原因はこれらに限定されない。
データマイグレーションにおいて、ストレージノード20a〜20c間でデータオブジェクトを転送した場合、クライアント端末10は該当データオブジェクトを探索することができなくなる。そこで、データマイグレーションに伴って、配置情報を更新する必要がある。
図3は、本実施形態に係るストレージシステムの構成を一例として示すブロック図である。図3を参照すると、ストレージシステムは、クライアント端末10、ストレージノード20、および、サーバ装置30を備えている。また、クライアント端末10は、アクセス部11および非同期キャッシュ12を備えている。さらに、ストレージノード20は、判定部21、配置方式部分情報22、更新部23、および、データ格納部24を備えている。
非同期キャッシュ12は、オブジェクトデータの識別子と当該オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する。アクセス部11は、アクセス要求を処理すべきストレージノードを非同期キャッシュ12に格納された上記対応関係に基づいて決定し、決定したストレージノードに対してアクセス要求を送出する。
判定部21は、クライアント端末10からアクセス要求を受けると、アクセス要求を自身が処理すべきかどうかを判定し、判定結果をクライアント端末10に通知する。更新部23は、アクセス要求を処理すべきストレージノードを更新する。サーバ装置30は、ストレージノード20による更新の内容を表す更新情報を蓄積する。ストレージノード20の更新部23は、アクセスを処理すべきストレージノードを更新すると、更新の内容を示す更新情報をサーバ装置30に通知する。
非同期キャッシュ12は、ストレージノード20による、アクセス要求を処理すべきストレージノードの更新とは非同期に、サーバ装置30に蓄積された更新情報に従って上記の対応関係を変更する。
次に、本実施形態に係るストレージシステムの動作について、図面を参照して説明する。
本実施形態の分散ストレージシステムにおいて、データオブジェクトのCREATEまたはINSERTは、次のように行われる。ここでは、データオブジェクトAを新しくシステム内に生成する場合について、図4および図5を参照して説明する。
図4は、アクセス先が非同期キャッシュ12によって決定されたストレージノードに格納される場合の動作を示すシーケンス図である。
図4を参照すると、クライアント端末10のアクセス部11は、非同期キャッシュ12の情報を用いて、データアクセス先ストレージノードを決定する。ここでは、ストレージノード20がアクセス先として決定されたとする。
次に、クライアント端末10は、ストレージノード20へCREATEを意味するアクセスリクエストを転送する。ここで、アクセスリクエストは、まず、判定部21が利用する。判定部21は、配置方式部分情報22を用いて、このリクエストがストレージノード20で処理されてもよいかどうかを確認する。確認結果が処理されて、ストレージノード20でCREATEが処理されることがデータ配置上適切である場合、ストレージノード20でデータが作成される。さらに、配置方式部分情報22とサーバ装置30が更新され、当該データオブジェクトがストレージノード20に格納されていることが記録される。
その後、ストレージノード20は、クライアント端末10にアクセスの成功を示す情報を返す。なお、アクセスの成功を示す情報は、シーケンスの最後ではなく、それ以前の段階で返されるようにしてもよい。
サーバ装置30は、更新された情報を非同期にクライアント端末10上の非同期キャッシュ12に適用する。
図5は、アクセス先が非同期キャッシュ12によって決定されたストレージノードが配置方式上誤りである場合の動作を示すシーケンス図である。
図5を参照すると、クライアント端末10のアクセス部11は、非同期キャッシュ12の情報を用いて、データアクセス先ストレージノードを決定する。ここでは、ストレージノード20がアクセス先として決定されたとする。
次に、クライアント端末10は、ストレージノード20へCREATEを意味するアクセスリクエストを転送する。アクセスリクエストは、まず、判定部21が利用する。判定部21は、配置方式部分情報22を用いて、このリクエストがストレージノード20で処理されてもよいかどうかを確認する。確認結果が処理されて、ストレージノード20でCREATEが処理されることがデータ配置上不適切である場合、判定部21は、アクセスが誤っていたことを表す情報をクライアント端末20に返却する。
次に、クライアント端末10は、自身の非同期キャッシュ12が持っていた情報をサーバ装置30の持つ正しい情報に更新する。非同期キャッシュ12の情報を更新するために、例えば、クライアント端末20は、図5に示すように、サーバ装置30から情報を取得するようにしてもよい。また、クライアント端末10は、サーバ装置30から新しい更新が伝播されるまで一定時間待機するようにしてもよい。ただし、サーバ装置30から再度非同期キャッシュ12へ新しい情報を反映する手順については、これらの方法に限定されない。
クライアント端末10は、再度、新しい配置方式情報に従ったストレージノードへCREATEアクセスを発行する。以下の動作は、図4のシーケンス図に示した動作と同様である。
一方、本実施形態の分散ストレージシステムにおいて、格納済みデータのREADおよびUPDATEは、次のように行われる。ここでは、既にシステム内に存在するデータオブジェクトAに対するREADまたはUPDATEを発行する場合について、図6および図7を参照して説明する。
READの場合には、クライアント端末10は、データオブジェクトの識別子と、必要であればデータオブジェクトのうちの読み出す箇所を表す情報(1つ以上のプロパティ名や、バイト範囲・オフセット情報など)を付随したリクエストを発行し、当該リクエストに合致するデータまたはエラー情報を受信する。一方、UPDATEの場合には、クライアント端末10は、データオブジェクトの識別子と、必要であればデータオブジェクトのうちの上書き箇所を表す情報(1つ以上のプロパティ名や、バイト範囲・オフセット情報など)と、当該上書きに該当するデータ自体を同時または順次またはインタラクティブに送信し、アクセスの許否を表す情報を受信する。
図6は、アクセス先データオブジェクトAが非同期キャッシュ12によって決定されたストレージノードに格納されている場合の動作を示すシーケンス図である。
図6を参照すると、クライアント端末10のアクセス部11は、非同期キャッシュ12の情報を用いて、データアクセス先ストレージノードを決定する。ここでは、ストレージノード20がアクセス先として決定されたとする。
次に、クライアント端末10は、ストレージノード20へ前述のREADまたはWRITEを表すアクセスリクエストを転送する。ここで、アクセスリクエストは、まず、判定部21が利用する。判定部21は、配置方式部分情報22を用いて、このリクエストがストレージノード20で処理されてもよいかどうかを確認する。確認結果が処理されて、ストレージノード20でCREATEが処理されることがデータ配置上適切である場合、ストレージノード20でデータオブジェクトがアクセスされる。
その後、ストレージノード20は、クライアント端末10に返答を示す情報を送信する。なお、アクセスの成功を示す情報は、シーケンスの最後ではなく、それ以前の段階で返されるようにしてもよい。
図7は、アクセス先が非同期キャッシュ12によって決定されたストレージノードが配置方式上誤りである場合の動作を示すシーケンス図である。すなわち、ストレージノード20にはデータオブジェクトが格納されていないか、または、データオブジェクトが格納されているものの、ストレージノード20はアクセスを処理できない状態にある。
データオブジェクトが格納されているもののストレージノード20がアクセスを処理できない状態として、例えば、データオブジェクトに対してマイグレーションの予約が行われている場合が考えられる。他の例として、複数のデータオブジェクトの複製ごとにREAD可能、UPDATE可能などのアクセス権限が設定されており、当該複製に対するアクセスが当該アクセス権限に適合しない場合が考えられる。さらに、他の例として、当該データオブジェクトに対するアクセスが集中しており、負荷分散の観点から、ストレージノード20では当該アクセスを処理できない場合が考えられる。なお、本実施形態において、判定部がアクセスを拒否する場合は、これらに限定されない。
図7の上段(破線の上部)は、再確認後クライアント端末10に拒否返答を返す例である。
図7の上段を参照すると、クライアント端末10のアクセス部11は、非同期キャッシュ12の情報を用いて、データアクセス先ストレージノードを決定する。ここでは、ストレージノード20がアクセス先として決定されたとする。
次に、クライアント端末10は、ストレージノード20へREADまたはUPDATEを表すアクセスリクエストを転送する。ここで、アクセスリクエストは、まず、判定部21が利用する。判定部21は、配置方式部分情報22を用いて、このリクエストがストレージノード20で処理されてもよいかどうかを確認する。確認結果が処理されて、ストレージノード20で当該が処理されることがデータ配置上不適切である場合、アクセスが誤っていたことを表す情報がクライアント端末10に返却される。
その後、クライアント端末10は、自身の非同期キャッシュ12が持っていた情報をサーバ装置30の持つ正しい情報に更新する。非同期キャッシュ12の情報を更新するために、例えば、クライアント端末10は、図7に示すように、サーバ装置30から情報を取得するようにしてもよい。また、クライアント端末10は、サーバ装置30から新しい更新が伝播されるまで一定時間待機するようにしてもよい。ただし、本実施形態において、サーバ装置30から再度非同期キャッシュ12へと新しい情報を反映させる手順は、これらに限定されない。
クライアント端末10は、再度、新しい配置方式情報に従ったストレージノードへCREATEアクセスを発行する。以下の動作は、図6のシーケンス図に示した動作と同様である。
図7の下段(破線の下部)は、再確認後、アクセスを処理できる他のストレージノード20bにアクセスを転送する例である。
図7の下段を参照すると、クライアント端末10のアクセス部11は、非同期キャッシュ12の情報を用いて、データアクセス先ストレージノードを決定する。ここでは、ストレージノード20がアクセス先として決定されたとする。
次に、クライアント端末10は、ストレージノード20へREADまたはUPDATEを表すアクセスリクエストを転送する。ここで、アクセスリクエストは、まず、判定部21が利用する。判定部21は、配置方式部分情報22を用いて、このリクエストがストレージノード20で処理されてもよいかどうかを確認する。確認結果が処理されて、ストレージノード20で当該が処理されることがデータ配置上不適切である場合、ストレージノード20は当該アクセスを別のストレージノード20bに転送し処理を依頼する。
ストレージノード20bを選択する方法として、データオブジェクトAの過去のマイグレーション情報をストレージノード20上に一定期間記録しておき、当該過去のマイグレーション情報に従ってマイグレーション先のストレージノード20bを選択する方法が考えられる。また、他の方法として、自ストレージノード以外の任意のストレージノードを選択してアクセスを転送し、アクセスを処理できるかどうかの判断を転送先のストレージノードに依頼する方法が考えられる。さらに、他の方法として、任意の個数のストレージノードを選択し、当該データオブジェクトAを保持しているかどうかを確認する問い合わせをストレージノード20から選択されたストレージノードに送出し、その応答結果に従って、データオブジェクトAを保持しているストレージノードを抽出する方法が考えられる。ただし、第2のストレージノード20bを選択する方法は、これらに限定されない。
アクセスが転送されたストレージノード20bは、アクセスを処理して、クライアント端末10に返答を送出する。ストレージノード20bは、返答を直接クライアント端末10に送出してもよい。また、他の方法として、ストレージノード20bは、クライアント端末10から最初にアクセスを受けたストレージノード20を経由してクラインと端末10に返答を送信するようにしてもよい。
図4ないし図7に示したシーケンス図においては、クライアント端末10およびストレージノード20の各手段が動作主体となっているが、クライアント端末10およびストレージノード20のそれぞれに対して集中的な制御を行うコントローラを設けることで、コントローラが各手段に対してインタラクティブに命令を出すようにしてもよい。
本実施形態の分散ストレージシステムによると、柔軟なデータ配置方法と高いアクセス性能をもつ分散ストレージシステムを提供することができる。サーバ装置30を設けたことにより、配置方式を上述のメタサーバ方式に類する方式とすることができる。したがって、本実施形態によると、分散関数方式のみを採用した場合と比較して、より多くのストレージノードをオブジェクトデータのマイグレーション先とすることができ、柔軟なデータ配置が可能となる。
また、本実施形態によると、クライアント端末10がもつ非同期キャッシュ12と、ストレージノード20が持つ判定部21および判定部21が利用する更新部23により、高いアクセス性能が実現される。
クライアント端末10は、READおよびUPDATEのいずれのアクセスについても、システム全体を制御するような集権的なコンポーネントを経由することなく、ストレージノードにアクセスすることができる。したがって、アクセス負荷が多くの計算機リソースに分散することで、特定のコンポーネントがボトルネックとなることを防ぐことができ、高いアクセス性能がもたらされる。
また、CREATEについても、配置情報の更新は各ストレージのもつ配置方式部分情報22に保存される。したがって、従来のメタサーバ方式のようにシステム全体を制御するような集権的なコンポーネントを介することなくストレージノードにアクセスすることができる。
さらに、非同期キャッシュ12の非同期性に起因するアクセス先の誤りは、判定部21によって是正される。したがって、データオブジェクトの不整合が生じたり、クライアント端末からアクセス不可能なオブジェクトが生成されるおそれもない。
以上のとおり、本実施形態によると、データ配置の整合を保ちつつ柔軟なデータ配置を実現し、メタサーバのボトルネックを回避した高速な分散ストレージシステムを提供することができる。
(実施形態2)
第2の実施形態に係るストレージシステムについて、図面を参照して説明する。
第2の実施形態に係るストレージシステムについて、図面を参照して説明する。
図8は、本実施形態に係るストレージシステムの構成を一例として示すブロック図である。図8を参照すると、ストレージシステムは、クライアント端末50、ストレージノード60、および、サーバ装置30を備えている。また、クライアント端末60は、アクセス部51、非同期キャッシュ52、および、分散関数配置部53を備えている。さらに、ストレージノード60は、判定部61、配置方式部分情報62、更新部63、および、データ格納部64を備えている。図8においては、簡単のため、1つのストレージノード60のみを図示したが、ストレージシステムは、複数のストレージノードを備えているものとする。
非同期キャッシュ52は、オブジェクトデータの識別子と当該オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する。本実施形態では、非同期キャッシュ52は、オブジェクトデータのうちの、ストレージノード間で移動(マイグレーション)済みのオブジェクトデータに対してのみ、上記対応関係を保持する。
分散関数配置部53は、所定の分散関数(例えばハッシュ関数)に基づいて、オブジェクトに対するアクセス要求を処理すべきストレージノードを決定する。
アクセス部51は、アクセス要求を処理すべきストレージノードを非同期キャッシュ52に格納された上記対応関係に基づいて決定し、決定したストレージノードに対してアクセス要求を送出する。一方、アクセス部51は、アクセス要求を処理すべきストレージノードを非同期キャッシュ52に格納された上記対応関係に基づいて決定することができなかった場合、分散関数配置部53を用いて、所定の分散関数に基づいてアクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対してアクセス要求を送出する。
配置方式部分情報62は、オブジェクトデータのうちのストレージノード間で移動済みのオブジェクトデータを処理すべきストレージノードを表す情報(以下、「移動済みデータ格納情報」という。)を保持する。判定部61は、クライアント端末50からアクセス要求を受けると、配置方式部分情報62を参照して、アクセス要求を自身が処理すべきかどうかを判定し、判定結果をクライアント端末50に通知する。更新部63は、アクセス要求を処理すべきストレージノードを更新する。サーバ装置30は、ストレージノード60による更新の内容を表す更新情報を蓄積する。ストレージノード60の更新部63は、アクセスを処理すべきストレージノードを更新すると、更新の内容を示す更新情報をサーバ装置30に通知する。
非同期キャッシュ52は、ストレージノード60による、アクセス要求を処理すべきストレージノードの更新とは非同期に、サーバ装置30に蓄積された更新情報に従って上記の対応関係を変更する。
本実施形態のストレージシステムと第1の実施形態のストレージシステムとは、配置方式の実現方法が異なる。本実施形態では、図8に示すように、配置方式は分散関数配置部53と非同期キャッシュ52により実現される。
この方式では、クライアント端末50からのCREATEおよびINSERTに関するアクセスは、分散関数方式に基づいて分散関数配置部53によって実現される。データマイグレーションされたデータオブジェクトのみについて、データオブジェクト識別子と格納ストレージノードの組で指定されるエントリがメタサーバ方式で保持される。ただし、各エントリは、当該データオブジェクトを格納するストレージノードにおいても参照できるようになっている。
移動済みデータオブジェクトのうち一部または全部が非同期にクライアント端末50上にキャッシュされる。ここで、非同期の定義は、第1の実施形態における定義と同様である。
クライアント端末50からのREADおよびUPDATEは、次の手順で行われる。図9は、本実施形態のストレージシステムにおけるREADおよびUPDATEの動作を一例として示すシーケンス図である。クライアント端末50は、まず、非同期キャッシュ52をもとに、ストレージノードを探す。該当するデータオブジェクトに関する情報が見つからない場合、クライアント端末50は、分散関数方式でストレージノードを探す。
次に、クライアント端末50は、決定したストレージノード(ストレージノード60とする。)へアクセスする。
ストレージノード60の判定部61は、少なくとも移動済みデータ格納情報を含む情報に基づいて、当該アクセスを処理することがストレージノード60に適しているかどうかを確認する。
アクセスを処理できる場合、ストレージノード60はアクセスを処理する。一方、アクセスを処理できない場合、ストレージノードは60、クライアント端末50にその旨を返答するか、または、別のストレージノードに対してアクセスの処理を依頼する。なお、アクセスを処理できない場合の動作は、第1の実施形態における動作と同様の動作としてもよい。
本実施形態の分散ストレージシステムによると、柔軟なデータ配置方法と高いアクセス性能を有する分散ストレージシステムを提供できる。
マイグレーション済みのデータオブジェクトに対しては、配置方式をメタサーバ方式に類する方式とすることができる。したがって、本実施形態によると、分散関数方式のみを採用した場合と比較して、より多くのストレージノードをオブジェクトデータのマイグレーション先とすることができ、柔軟なデータ配置が可能となる。
また、本実施形態によると、クライアント端末50がもつ非同期キャッシュ52と、ストレージノード60が持つ判定部61および判定部61が利用する更新部63により、高いアクセス性能が実現される。
CREATEやデータマイグレーション候補でなかった多くのデータオブジェクトに対するREAD、UPDATEは、分散関数方式の配置方式により、途中にシステム全体を制御するような集権的なコンポーネントを経由することなく、ストレージノードにアクセスすることができる。したがって、アクセス負荷が多くの計算機リソースに分散することで、高いアクセス性能がもたらされる。
また、データマイグレーション候補となったデータオブジェクトについても、配置情報の更新は各ストレージのもつ配置方式部分情報22に保存されるため、従来のメタサーバ方式のようにシステム全体を制御する集権的なコンポーネントを経由することなく、ストレージノードにアクセスすることができる。
さらに、非同期キャッシュの非同期性に起因するアクセス先の誤りは、判定部によって是正される。したがって、データオブジェクトの不整合性が生じたり、クライアント端末からアクセス不可能なデータオブジェクトが生成されるおそれもない。
以上のとおり、本実施形態によると、データ配置の整合を保ちつつ柔軟なデータ配置を実現し、メタサーバのボトルネックを回避した高速な分散ストレージシステムを提供することができる。
本発明に係るデータ記憶システムは、例えば、並列データベースや並列データ処理システム、分散ストレージ、並列ファイルシステム、分散データベース、クラスタコンピュータ、分散キーバリューストアなどに適用することができる。
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、50 クライアント端末
11、51 アクセス部
12、52 非同期キャッシュ
20、20a〜20c、60 ストレージノード
21、61 判定部
22、22a〜22c、62 配置方式部分情報
23、63 更新部
24、24a〜24c、64 データ格納部
25a〜25c データ送受信部
26a〜26c CPU
30 サーバ装置
53 分散関数配置部
40 ネットワーク
11、51 アクセス部
12、52 非同期キャッシュ
20、20a〜20c、60 ストレージノード
21、61 判定部
22、22a〜22c、62 配置方式部分情報
23、63 更新部
24、24a〜24c、64 データ格納部
25a〜25c データ送受信部
26a〜26c CPU
30 サーバ装置
53 分散関数配置部
40 ネットワーク
Claims (14)
- クライアント端末と、
複数のストレージノードと、を備え、
前記クライアント端末は、オブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持する非同期キャッシュと、
前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定し、決定したストレージノードに対して前記アクセス要求を送出するアクセス部と、を有し、
前記複数のストレージノードは、前記クライアント端末から前記アクセス要求を受けると、前記アクセス要求を自身が処理すべきかどうかを判定し、判定結果を前記クライアント端末に通知する判定部と、
前記アクセス要求を処理すべきストレージノードの更新を行う更新部と、を有し、
前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記更新に従って前記対応関係を変更する、ストレージシステム。 - 前記複数のストレージノードのそれぞれによる前記更新の内容を表す更新情報を蓄積するサーバ装置を備え、
前記複数のストレージノードのそれぞれの前記更新部は、前記アクセスを処理すべきストレージノードを更新すると、前記更新の内容を示す更新情報を前記サーバ装置に通知し、
前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記サーバ装置に蓄積された前記更新情報に従って前記対応関係を変更する、
請求項1に記載のストレージシステム。 - 前記サーバ装置は、前記更新情報を定期的に前記クライアント端末に通知し、
前記非同期キャッシュは、前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更する、
請求項2に記載のストレージシステム。 - 前記サーバ装置は、前記更新情報のデータ量が所定のサイズ以上となった場合、前記更新情報を前記クライアント端末に通知し、
前記非同期キャッシュは、前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更する、
請求項2に記載のストレージシステム。 - 前記アクセス部は、前記対応関係に基づいて決定したストレージノードが前記アクセス要求を処理すべきストレージノードではないと前記判定部によって判定され場合、前記更新情報を通知するように前記サーバ装置に要求し、
前記非同期キャッシュは、前記要求に応じて前記サーバ装置から通知された前記更新情報に従って前記対応関係を変更する、
請求項2に記載のストレージシステム。 - 前記判定部は、前記アクセス要求を自身が処理すべきではない場合、前記アクセス要求を処理すべきストレージノードに前記アクセス要求を転送する、
請求項1ないし5のいずれか1項に記載のストレージシステム。 - 前記非同期キャッシュは、前記複数のストレージノード間で移動済みのオブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持し、
前記アクセス部は、前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいて前記アクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対して前記アクセス要求を送出する、
請求項1ないし6のいずれか1項に記載のストレージシステム。 - クライアント端末が、オブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を非同期キャッシュに保持する工程と、
前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定し、決定したストレージノードに対して前記アクセス要求を送出する工程と、
複数のストレージノードのうちの、前記クライアント端末から前記アクセス要求を受けたストレージノードが、前記アクセス要求を自身が処理すべきかどうかを判定し、判定結果を前記クライアント端末に通知する工程と、
前記複数のストレージノードが、それぞれ、前記アクセス要求を処理すべきストレージノードの更新を行う工程と、
前記クライアント端末が、前記非同期キャッシュは、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記非同期キャッシュに格納された前記対応関係を前記更新に従って変更する工程と、
を含む、データアクセス方法。 - サーバ装置が、前記複数のストレージノードのそれぞれによる前記更新の内容を表す更新情報を蓄積する工程と、
前記複数のストレージノードが、それぞれ、前記アクセスを処理すべきストレージノードを更新すると、前記更新の内容を示す更新情報を前記サーバ装置に通知する工程と、
前記クライアント端末が、前記複数のストレージノードのそれぞれによる前記更新とは非同期に、前記非同期キャッシュに格納された前記対応関係を、前記サーバ装置に蓄積された前記更新情報に従って変更する工程と、
を含む、請求項8に記載のデータアクセス方法。 - 前記サーバ装置が、前記更新情報を定期的に前記クライアント端末に通知する工程と、
前記クライアント端末が、前記非同期キャッシュに格納された前記対応関係を前記サーバ装置から通知された前記更新情報に従って変更する工程と、
を含む、請求項9に記載のデータアクセス方法。 - 前記サーバ装置が、前記更新情報のデータ量が所定のサイズ以上となった場合、前記更新情報を前記クライアント端末に通知する工程と、
前記クライアント端末が、前記非同期キャッシュに格納された前記対応関係を、前記サーバ装置から通知された前記更新情報に従って変更する工程と、
を含む、請求項9に記載のデータアクセス方法。 - 前記クライアント端末が、前記対応関係に基づいて決定したストレージノードが前記アクセス要求を処理すべきストレージノードではないと前記アクセス要求を受けたストレージノードによって判定された場合、前記更新情報を通知するように前記サーバ装置に要求する工程と、
前記非同期キャッシュに格納された前記対応関係を、前記要求に応じて前記サーバ装置から通知された前記更新情報に従って変更する工程と、
を含む、請求項9に記載のデータアクセス方法。 - 前記アクセス要求を受けたストレージノードが、前記アクセス要求を自身が処理すべきではない場合、前記アクセス要求を処理すべきストレージノードに前記アクセス要求を転送する工程を含む、
請求項8ないし12のいずれか1項に記載のデータアクセス方法。 - 前記非同期キャッシュは、前記複数のストレージノード間で移動済みのオブジェクトデータの識別子と前記オブジェクトデータに対するアクセス要求を処理すべきストレージノードの識別子との対応関係を保持し、
前記クライアント端末が、前記アクセス要求を処理すべきストレージノードを前記非同期キャッシュに格納された前記対応関係に基づいて決定することができなかった場合、所定の分散関数に基づいて前記アクセス要求を処理すべきストレージノードを決定し、決定したストレージノードに対して前記アクセス要求を送出する工程を含む、
請求項8ないし13のいずれか1項に記載のデータアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014515664A JPWO2013172405A1 (ja) | 2012-05-17 | 2013-05-16 | ストレージシステムおよびデータアクセス方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012113183 | 2012-05-17 | ||
JP2012113183 | 2012-05-17 | ||
PCT/JP2013/063639 WO2013172405A1 (ja) | 2012-05-17 | 2013-05-16 | ストレージシステムおよびデータアクセス方法 |
JP2014515664A JPWO2013172405A1 (ja) | 2012-05-17 | 2013-05-16 | ストレージシステムおよびデータアクセス方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2013172405A1 true JPWO2013172405A1 (ja) | 2016-01-12 |
Family
ID=49583808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014515664A Pending JPWO2013172405A1 (ja) | 2012-05-17 | 2013-05-16 | ストレージシステムおよびデータアクセス方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150106468A1 (ja) |
JP (1) | JPWO2013172405A1 (ja) |
WO (1) | WO2013172405A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5832592B1 (ja) * | 2014-06-02 | 2015-12-16 | 三菱電機株式会社 | データ管理装置 |
CN106850710B (zh) * | 2015-12-03 | 2020-02-28 | 杭州海康威视数字技术股份有限公司 | 一种数据云存储系统、客户终端、存储服务器及应用方法 |
US11082492B2 (en) * | 2018-01-10 | 2021-08-03 | EMC IP Holding Company LLC | System and method for dynamic backup sessions |
JP7489249B2 (ja) | 2020-07-15 | 2024-05-23 | 株式会社日立製作所 | データベースシステム、データ配備管理装置およびデータ配備管理方法 |
CN112965745B (zh) * | 2021-04-01 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 一种系统接入方法、装置、设备及计算机可读介质 |
US20230044165A1 (en) * | 2021-08-06 | 2023-02-09 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for remote data transfers to memory |
CN116760850B (zh) * | 2023-08-17 | 2024-01-12 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置、设备、介质及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668010A (ja) * | 1992-08-17 | 1994-03-11 | Nippon Telegr & Teleph Corp <Ntt> | 分散キャッシュ管理システム |
US6324581B1 (en) * | 1999-03-03 | 2001-11-27 | Emc Corporation | File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems |
JP2005115438A (ja) * | 2003-10-03 | 2005-04-28 | Mitsubishi Electric Corp | データ管理装置 |
US7533181B2 (en) * | 2004-02-26 | 2009-05-12 | International Business Machines Corporation | Apparatus, system, and method for data access management |
US8209491B2 (en) * | 2010-04-27 | 2012-06-26 | Symantec Corporation | Techniques for directory server integration |
-
2013
- 2013-05-16 JP JP2014515664A patent/JPWO2013172405A1/ja active Pending
- 2013-05-16 WO PCT/JP2013/063639 patent/WO2013172405A1/ja active Application Filing
- 2013-05-16 US US14/397,607 patent/US20150106468A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2013172405A1 (ja) | 2013-11-21 |
US20150106468A1 (en) | 2015-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6479020B2 (ja) | 分散ストレージシステムにおけるオブジェクトの階層チャンキング | |
WO2013172405A1 (ja) | ストレージシステムおよびデータアクセス方法 | |
US9305069B2 (en) | Method and system for uploading data into a distributed storage system | |
US9183213B2 (en) | Indirection objects in a cloud storage system | |
US8285686B2 (en) | Executing prioritized replication requests for objects in a distributed storage system | |
US8615485B2 (en) | Method and system for managing weakly mutable data in a distributed storage system | |
US20150215405A1 (en) | Methods of managing and storing distributed files based on information-centric network | |
US20160057229A1 (en) | Appending to files via server-side chunking and manifest manipulation | |
US9785646B2 (en) | Data file handling in a network environment and independent file server | |
US20140201168A1 (en) | Deduplication in an extent-based architecture | |
US20120072596A1 (en) | Directory Leasing | |
KR20110027688A (ko) | 로컬 호스팅된 캐시 및 암호 해시 함수를 사용하여 네트워크 트래픽을 감소시키는 방법 및 시스템 | |
US8135918B1 (en) | Data de-duplication for iSCSI | |
EP2534571B1 (en) | Method and system for dynamically replicating data within a distributed storage system | |
WO2014183708A1 (zh) | 一种实现分布式文件系统块存储的方法及系统 | |
JP2014529814A (ja) | データメンテナンス用の方法 | |
JP4247975B2 (ja) | データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体 | |
KR101531564B1 (ko) | 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 부하 분산 방법 및 시스템 | |
WO2012046585A1 (ja) | 分散ストレージシステム、その制御方法、およびプログラム | |
KR20150061314A (ko) | 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템 | |
WO2021189308A1 (en) | Delete operation in object storage system using enhanced meta structure | |
WO2021189311A1 (en) | Read operation in object storage system using enhanced meta structure | |
WO2021189306A1 (en) | Write operation in object storage system using enhanced meta structure | |
US20240330192A1 (en) | Method and system for evicting and reloading a cache for machine learning training data streams |