JPWO2009084314A1 - データ分散格納方法およびデータ分散格納システム - Google Patents

データ分散格納方法およびデータ分散格納システム Download PDF

Info

Publication number
JPWO2009084314A1
JPWO2009084314A1 JP2009547948A JP2009547948A JPWO2009084314A1 JP WO2009084314 A1 JPWO2009084314 A1 JP WO2009084314A1 JP 2009547948 A JP2009547948 A JP 2009547948A JP 2009547948 A JP2009547948 A JP 2009547948A JP WO2009084314 A1 JPWO2009084314 A1 JP WO2009084314A1
Authority
JP
Japan
Prior art keywords
replica
storage
file
host server
acquisition
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
JP2009547948A
Other languages
English (en)
Other versions
JP5445138B2 (ja
Inventor
純明 榮
純明 榮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009547948A priority Critical patent/JP5445138B2/ja
Publication of JPWO2009084314A1 publication Critical patent/JPWO2009084314A1/ja
Application granted granted Critical
Publication of JP5445138B2 publication Critical patent/JP5445138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2089Redundant storage control functionality

Abstract

複数のストレージノードSN1、SN2と、複数のホストサーバH1、H2と、それぞれ異なるストレージノードSN1、SN2およびホストサーバH1、H2に接続される複数のエッジスイッチSW1、SW2と、複数のエッジスイッチSW1、SW2間を複数のネットワーク経路L1、L2で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備える。したがって、ネットワークインタフェースを増設することなしに、データ分散格納システムの耐障害性を高める。

Description

本発明はデータ分散格納方法およびシステムに関し、特にネットワークに接続された複数のストレージノードにデータとそのレプリカ(複製)を分散して格納するようにしたデータ分散格納方法およびシステムに関する。
ストリーミング配信サーバのバックエンドのストレージシステムやウェブサーチエンジンのインデックス情報を格納しているストレージシステムなどでは、ディスク装置などの記憶装置を1つ以上備えるストレージノードを、ネットワークで複数接続し、大規模なストレージシステムを構築することが行われている。このようにして構築されたデータ分散格納システムを、以降、ストレージクラスタと呼ぶ。
ストレージクラスタにおいてストレージノードの障害によるデータ損失を避けることを目的に、複数のストレージノードにデータを冗長構成にして記憶しておく例が、例えば特許文献1に記載されており、またRAIN(Redundant Array of Independent Nodes)として知られている。図20は特許文献1に記載されたデータ分散格納システムの概要を示すブロック図であり、2つのストレージノードSN1、SN2が、ネットワークを構成するスイッチSWを通じてホストサーバHに接続されており、ストレージノードSN1に格納したデータのレプリカをストレージノードSN2に格納することで、何れかのストレージノードに障害が発生してもデータが失われないようにしている。
しかし、図20の構成では、スイッチSWおよびホストサーバHに障害が発生すると、ストレージノードに記憶されたデータを利用したホストサーバによる処理、例えばストリーミング配信サービスや検索サービスなどの処理が停止する。そこで、ストレージノードだけでなく、ホストHおよびスイッチSWも冗長化することで耐障害性を高めたデータ分散格納システムが、特許文献2の図11に記載されている。図21は特許文献2に記載されたデータ分散格納システムの概要を示すブロック図であり、2つのストレージノードSN1、SN2が、ネットワークを構成する2つのスイッチSW1、SW2を通じて2つのホストサーバH1、H2に接続されており、ストレージノードSN1に格納したデータのレプリカをストレージノードSN2に格納することで、何れかのストレージノードに障害が発生してもデータが失われないようにし、またホストサーバとスイッチを多重化することで、何れかのスイッチおよびホストサーバに障害が発生してもサービスが停止しないようにしている。
図21の構成では、ストレージノードSN1、SN2は、2つのスイッチSW1、SW2と接続されるため、それぞれ2つのネットワークインタフェースを備えている。同様に、ストサーバH1、H2は、2つのスイッチSW1、SW2と接続されるため、それぞれ2つのネットワークインタフェースを備えている。
ホストサーバとストレージノードを専用のネットワークで接続するストレージエリアネットワーク(SAN)において、入出力要求およびデータの送受信を行うネットワーク経路の障害性向上を目的に、ネットワークインターフェース、ネットワークスイッチ、経路に冗長性を持たせるマルチパス技術は、例えば非特許文献1に記載されるように公知の技術である。
特許第2853624号 特開2005−353035号公報 SNIA"Multipath Management API" Version 1.0 TWG final(10/1/2004),[online],[平成19年10月29日検索]、インターネット<URL:http://www.t11.org/ftp/t11/admin/snia/04-649v0.pdf>
図21に示した冗長構成によれば、信頼性の高いデータ分散格納システムを構築することができるものの、ストレージノードおよびホストサーバ共に、ネットワークインタフェースを多重に実装する必要があるため、コストが嵩むという課題と、ネットワークインタフェースを増設するための実装スペースを確保しなければならないという課題がある。
本発明はこのような従来の課題を解決したものであり、その目的は、ネットワークインタフェースを増設することなしに、データ分散格納システムの耐障害性を高めることにある。
本発明の第1のデータ分散格納システムは、複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備える。
本発明の第1のデータ分散格納方法は、複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークとを備えたデータ分散格納システムにおけるデータ分散格納方法であって、メタサーバが、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するファイル格納ステップを含む。
本発明の第1のプログラムは、複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備えるデータ分散格納システムにおける前記メタサーバを構成するコンピュータを、前記エッジスイッチと前記ストレージノードとの接続関係を示すエッジスイッチ構成情報を記憶するエッジスイッチ構成情報記憶手段を参照して、格納対象となるファイルを複数に分割し、個々の部分データを多重化し、多重化した部分データが同じエッジスイッチに接続されたストレージノードに格納されないような配置を決定するレプリカ配置決定手段と、該レプリカ配置決定手段で決定された配置に従って、多重化された部分データを前記ストレージノードに格納し、前記ファイルを構成する部分データの前記ストレージノードへの配置状況をレプリカ配置記憶手段に記憶するレプリカ配置処理手段として機能させる。
本発明の第2のプログラムは、複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備え、前記メタサーバは、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードと要求元のホストサーバから当該ストレージノードへアクセスするネットワーク経路とを指定した取得情報を、要求元のホストサーバへ通知するレプリカ検索手段を備えたデータ分散格納システムにおける前記ホストサーバを構成するコンピュータを、前記メタサーバに対してファイル取得要求を送信し、その応答として通知される前記取得情報に基づいて前記ストレージノードをアクセスして部分データを取得するファイル取得手段として機能させる。
本発明の第3のプログラムは、複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備え、前記メタサーバは、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードのリストを要求元のホストサーバへ通知するレプリカ検索手段を備えたデータ分散格納システムにおける前記ホストサーバを構成するコンピュータを、前記メタサーバに対してファイル取得要求を送信し、その応答として通知される前記リストに記載されたストレージノードをアクセスして部分データを取得するファイル取得手段として機能させる。
本発明によれば、ネットワークインタフェースを増設することなしに、データ分散格納システムの耐障害性を高めることができる。
本発明の第1の実施の形態の構成例を示すブロック図である。 本発明の第2の実施の形態の構成例を示すブロック図である。 ストレージノードの構成例を示すブロック図である。 ホストサーバの構成例を示すブロック図である。 メタサーバの構成例を示すブロック図である。 ネットワークの構成例を示すブロック図である。 ファイルを構成するチャンクの分散配置例を示す図である。 本発明の第2の実施の形態の実施例1におけるメタサーバの構成例を示すブロック図である。 エッジスイッチ構成情報データベースの内容例を示す図である。 レプリカ配置データベースの内容例を示す図である。 本発明の第2の実施の形態の実施例1におけるホストサーバの構成例を示すブロック図である。 本発明の第2の実施の形態の実施例1におけるエッジスイッチ構成情報取得時の処理の流れを示すフローチャートである。 本発明の第2の実施の形態の実施例1におけるファイルのデータ格納時の処理の流れを示すフローチャートである。 本発明の第2の実施の形態の実施例1におけるファイルのデータ読み出し時のホストサーバ側の処理の流れを示すフローチャートである。 本発明の第2の実施の形態の実施例1におけるファイルのデータ読み出し時のメタサーバ側の処理の流れを示すフローチャートである(その1)。 本発明の第2の実施の形態の実施例1におけるファイルのデータ読み出し時のメタサーバ側の処理の流れを示すフローチャートである(その2)。 本発明の第2の実施の形態の実施例2におけるメタサーバの構成例を示すブロック図である。 本発明の第2の実施の形態の実施例2におけるホストサーバの構成例を示すブロック図である。 本発明の第2の実施の形態の実施例2におけるファイルのデータ読み出し時のホストサーバ側の処理の流れを示すフローチャートである(その1)。 本発明の第2の実施の形態の実施例2におけるファイルのデータ読み出し時のホストサーバ側の処理の流れを示すフローチャートである(その2)。 本発明の第2の実施の形態の実施例2におけるファイルのデータ読み出し時のメタサーバ側の処理の流れを示すフローチャートである。 本発明に関連する技術のブロック図である。 本発明に関連する技術のブロック図である。
符号の説明
100〜115…ストレージノード
120〜123…ホストノード
124…メタサーバ
130〜133…エッジスイッチ(ネットワークスイッチ)
140…ネットワーク
次に本発明の実施の形態について図面を参照して詳細に説明する。
『第1の実施の形態』
図1を参照すると、本発明の第1の実施の形態に係るデータ分散格納システムは、ストレージノードSN1とホストサーバH1とがスイッチSW1に接続され、ストレージノードSN2とホストサーバH2とがスイッチSW2に接続され、スイッチSW1とスイッチSW2との間が複数のネットワーク経路L1、L2により接続されている。また、ストレージノードSN1に格納されるデータのレプリカが、ストレージノードSN2に格納されている。なお、同じスイッチに接続されるホストサーバとストレージノードとは物理的に別々の計算機で構成されていても良いし、同じ計算機で構成されていても良い。
本実施の形態のデータ分散格納システムは、このような構成を備えているため、ストレージノード、スイッチ、ネットワーク経路、ホストサーバの何れか1つに障害が発生しても、残りの要素を使用して処理を継続することができる。
例えば、ストレージノードSN1、SN2の何れか一方、例えばストレージノードSN1に障害が発生しても、ストレージノードSN1に格納されているデータのレプリカが他方のストレージノードSN2に格納されているので、ホストサーバH1またはH2はストレージノードSN2を利用することで処理を継続することができる。
また、スイッチSW1、SW2の何れか一方、例えばスイッチSW1に障害が発生した場合、ホストサーバH1はストレージノードSN1、SN2をアクセスできなくなるために、ホストサーバH1の処理は停止するが、多重化された他方のホストサーバH2はスイッチSW2を通じて、多重化された他方のストレージノードSN2をアクセスできるため、システム全体としては処理を継続することができる。
また、ネットワーク経路L1、L2の何れか一方、例えばネットワーク経路L1に障害が発生しても、ホストサーバH1は、スイッチSW1を通じてストレージノードSN1をアクセスできると共に残りのネットワーク経路L2およびスイッチSW2を通じてストレージノードSN2をアクセスでき、また、ホストサーバH2は、スイッチSW2を通じてストレージノードSN2をアクセスできると共に残りのネットワーク経路L2およびスイッチSW1を通じてストレージノードSN1をアクセスできるため、処理を継続することができる。
また、ホストサーバH1、H2の何れか一方、例えばホストサーバH1に障害が発生しても、多重化された他方のホストサーバH2により処理を継続することができる。
このように本実施の形態に係るデータ分散格納システムは、ストレージノード、スイッチ、ネットワーク経路、ホストサーバの何れもSPOF(Single Point of Failure)にならないために、耐障害性を高めることができ、かつ、図21と比較すると明らかなように、ストレージノードおよびホストサーバ共に、ネットワークインタフェースを多重に実装する必要がない。
『第2の実施の形態』
図2を参照すると、本発明の第2の実施の形態に係るデータ分散格納システムは、16台のストレージノード100〜115と、4台のホストサーバ120〜123と、ストレージノード100〜115およびホストサーバ120〜123を4つの組に分けた場合の各組毎に設けられ、その組に含まれるストレージノードとホストサーバとが接続される4台のエッジスイッチ130〜133と、エッジスイッチ130〜133間を複数のネットワーク経路で接続するネットワーク140と、多重化されたデータを、同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように、複数のストレージノードに分散して格納するメタサーバ124とを備えている。
本実施の形態では、ストレージノードが16台、ホストサーバが4台であるが、これらの台数は複数であれば任意で良い。また、同じエッジスイッチに接続されるホストサーバとストレージノードとは物理的に別々の計算機で構成されていても良いし、同じ計算機で構成されていても良い。
図3を参照すると、ストレージノード100は、1以上の記憶部200と、通信部201と、これらに接続されたストレージ制御部202とを含んで構成される。記憶部200は、例えばハードディスク装置で構成され、ホストサーバ上で稼動するユーザアプリケーションプログラムがI/Oを行うデータ保存の単位であるファイルを記憶する。通信部201は、ホストサーバおよびメタサーバとの間の通信を制御する。ストレージ制御部202は、ホストサーバおよびメタサーバから与えられるコマンドに従って記憶部200を制御し、記憶部200上にファイルを作成したり、作成されたファイルを参照、更新する。他のストレージノード101〜115も、ストレージノード100と同様の構成を有する。
図4を参照すると、ホストサーバ120は、記憶部210と、通信部211、212と、これらに接続されたホスト制御部213とを含んで構成される。記憶部210は、ホストサーバ120で実行するユーザアプリケーションプログラムやその他のプログラム、ストレージノードから読み書きするファイルなどを記憶する。通信部211は、メタサーバおよびスレージノードとの間の通信を制御する。通信部212は、図2には図示しないインターネット等のネットワークを通じて行われるサービス要求元のユーザ端末との間の通信を制御する。ホスト制御部213は、ユーザアプリケーションプログラムを実行することにより、ストリーミング配信サービスやウェブ検索サービスなどの所定のサービスをユーザ端末に対して提供する。
図5を参照すると、メタサーバ124は、記憶部220と、通信部221と、入出力部222と、これらに接続されたメタ制御部223とを含んで構成される。記憶部220は、メタサーバ124で実行するプログラム、ストレージノードに分散配置されているファイルに関する管理情報などを記憶する。通信部221は、ホストサーバおよびストレージノードとの間の通信を制御する。入出力部222は、オペレータからの指示や分散配置するファイルなどを入力する。メタ制御部223は、プログラムを実行することにより、データ分散格納システム全体の制御を司る。
エッジスイッチ130〜133は、複数の入出力ポートを有し、複数の入出力ポートのペアで同時に並行して通信することができるネットワークスイッチである。このようなエッジスイッチは、例えばファイバー・チャネル・スイッチで実現される。本明細書では、ストレージノードが直接接続されているネットワークスイッチを、それ以外のネットワークスイッチと区別するために、エッジスイッチと呼ぶ。
エッジスイッチ130〜133間を接続する複数経路を持つネットワーク140の一例を図6に示す。この例のネットワーク140は、ネットワークスイッチ134〜137とEthernet(登録商標)のVLAN機能とによって実現されている。通常、Ethernetではネットワーク中にループが存在した場合にはネットワークスイッチの持つMACテーブルが不正な状態になり通信障害が発生するため、ループフリーなネットワークトポロジーを維持するための機構(たとえば、Spanning Tree Protocol(STP))がネットワークスイッチに実装されており、複数経路を持つネットワークトポロジーは構築できないようになっている。図6の構成では、VLANによってネットワークセグメントを分離することによって、物理的には複数経路を持つネットワークトポロジーを取りつつも、論理ネットワークとしてはループフリーなネットワークの実現を利用する。
図6の構成例では4つのタグベースVLANを利用しており、各エッジスイッチ130〜133は、他のエッジスイッチ130〜133と4通りのネットワーク経路によって相互に接続されている。なお、ここでは、4通りのネットワーク経路によって相互に接続したが、2以上であれば任意の数で良い。
各ストレージノード100〜115とエッジスイッチ130〜133間の接続は、物理的に4つのネットワークインターフェースとケーブルを用いて接続しても良いし、1つのネットワークインターフェースとケーブル上に仮想インターフェースを4つ構築して接続しても良い。後者の方式で接続される場合、ネットワーク140は、VLANごとに異なるネットワークアドレスを持っており、またストレージノード100〜115の各仮想インターフェースはそれぞれのネットワークアドレスに対応したIPアドレスを割り当てられており、通信の際にあて先アドレスを使い分けることによって、通信に使用する経路を選択する。
図6に示したネットワークトポロジーはVBFT(VLAN Based Fat Tree)であるが、特定のネットワークスイッチや経路がSPOF(Single Point of Failure)になっていなければ、メッシュやハイパーキューブなど他のネットワークトポロジーでもかまわない。また、ネットワークそのものに関しても、EthernetのVLAN機能に限らず、EthernetのLayer3ルーティング、Myricom社のMyrinetなどの複数経路の存在を許すようなネットワークを用いてもよい。
なお、ネットワーク140は、メタサーバ124とストレージサーバ100〜115およびホストサーバ120〜123とを接続するためにも使用される。図6にはそのためのネットワーク経路が省略されているが、例えば、メタサーバ124とエッジスイッチ130〜133を接続するネットワーク経路をネットワーク140に設けても良いし、ネットワーク140とは別のネットワークによってメタサーバ124と全てのストレージサーバ100〜115を接続するようにしても良い。
次に、本実施の形態の動作を説明する。
[データ格納時]
まず、1つのファイルを複数の部分データに分割し、個々の部分データを多重化して複数のストレージノードに分散して格納する動作について説明する。以降、部分データのことをチャンクと呼ぶ。ファイルが1つのチャンクからなるときには、ファイル=チャンクとなる。また、チャンクの複製をレプリカと呼ぶ。本明細書では、複製元と複製先を特に区別することなく、双方ともレプリカと呼ぶ。
メタサーバ124は、外部オペレータからファイルの格納要求を受けると、ファイルをチャンクに分割し、各チャンクのレプリカを複数生成し、同一のチャンクのレプリカが同一のエッジスイッチ130〜133に接続されたストレージノードに配置されないように、言い換えると異なる2以上のエッジスイッチに接続された複数のストレージノードに分散するように配置する。
ファイルの格納例を図7に示す。この例は、本実施の形態をストリーム配信サーバのバックエンドストレージとして利用した場合のものである。ストリーム配信の対象となるコンテンツファイル(例えばビデオファイル)をチャンク0〜チャンク7の8つのチャンクに分割し、各々のチャンク0〜7のレプリカを2つ生成し、チャンク0〜3の2つのレプリカのうち一方のレプリカをエッジスイッチ130に接続されたストレージノード100〜103に、他方のレプリカをエッジスイッチ131に接続されたストレージノード104〜107に格納している。また、チャンク4〜7の2つのレプリカのうち一方のレプリカをエッジスイッチ132に接続されたストレージノード108〜111に、他方のレプリカをエッジスイッチ133に接続されたストレージノード112〜115に格納している。
[ファイル読み出し時]
次に、ホストサーバ120〜123が、複数のストレージノードに分散して格納されたファイルを読み出すときの動作を説明する。
ホストサーバ120〜123は、ファイルの読み出しを行う場合、メタサーバ124に対して問い合わせを行うことにより、ファイルを構成する各チャンクのレプリカがどのストレージノードに存在しているかを認識し、ファイルを構成するチャンクを格納するストレージノードからチャンクを取得し、取得した複数のチャンクをつなげることによってファイルを再構成する。そして、ストリーム配信サーバの場合には、再構築したファイルの配信を行う。ここで、ホストサーバ120〜123は、ファイルを構成する複数のチャンクを同時に異なるストレージノード、重ならないネットワーク経路を用いて取得することにより、スループットを向上させることができる。また、同一チャンクに関しても、より近いレプリカを利用することでスループットを向上させることができる。さらに、チャンクのレプリカがエッジスイッチをまたがって格納されているために、ネットワーク上のいかなる箇所で障害が発生しても、障害箇所がレプリカ数を下回っている限りにおいては、読み出し可能である。
・実施例1
次に本発明の第2の実施の形態の実施例1について詳細に説明する。
図8を参照すると、実施例1におけるメタサーバ124は、エッジスイッチ構成情報データベース301およびレプリカ配置データベース302を記憶部220に備え、エッジスイッチ構成取得部311、レプリカ配置決定部312、レプリカ配置処理部313、レプリカ検索部314、レプリカ取得先選択部315およびレプリカ取得ネットワーク経路決定部316をメタ制御部223に備えている。
エッジスイッチ構成情報データベース301は、図9に示すように、エッジスイッチ130〜133毎のエッジスイッチ構成情報321を保持する。エッジスイッチ構成情報321は、エッジスイッチ識別子322と、このエッジスイッチ識別子322で一意に識別されるエッジスイッチに接続されているストレージノードの識別子のリスト323とから構成される。
レプリカ配置データベース302は、図10に示すように、ファイル毎のファイル情報331と、チャンク毎のチャンク情報332とを保持する。ファイル情報331は、ファイル識別子333と、このファイル識別子333で一意に識別されるファイルを構成するチャンクの識別子のリスト334とから構成される。チャンク情報332は、チャンク識別子335と、このチャンク識別子335で一意に識別されるチャンクの配置先ストレージノードの識別子のリスト336とから構成される。
エッジスイッチ構成取得部311は、エッジスイッチ構成情報を取得して、エッジスイッチ構成情報データベース301に格納する処理を行う。
レプリカ配置決定部312は、入出力部224から入力された格納対象ファイルの各チャンクを、どのストレージノードに配置(格納)するかを決定する処理を行う。
レプリカ配置処理部313は、レプリカ配置決定部312で決定された配置先に従って、格納対象ファイルの各チャンクをストレージノードに格納する処理を行う。
レプリカ検索部314は、ホストサーバからファイル取得要求を受信し、ファイル取得要求で指定された取得対象ファイルを構成する各チャンクを取得するためのレプリカ取得情報をホストサーバに対して通知する。レプリカ取得情報には、チャンクを取得するストレージノードの識別子および取得するネットワーク経路が含まれる。
レプリカ取得先選択部315は、複数のストレージノードに分散して配置されているチャンクの複数のレプリカの中から取得対象とするレプリカを選択する処理を行う。選択の方法としては、例えば、ホストサーバからのレプリカ取得が特定のストレージノードに集中せず適当に負荷分散されるように、例えば履歴情報を元にラウンドロビンさせることでレプリカ取得先を選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
レプリカ取得ネットワーク経路決定部316は、ホストサーバからストレージノードに至る複数のネットワーク経路の計算と、この計算で得られた複数のネットワーク経路の中から実際に使用するネットワーク経路を選択する処理とを行う。選択の方法としては、複数のホストサーバからのレプリカ取得が特定のネットワーク経路に集中せずに適当に負荷分散され、好ましくはそれぞれ異なるネットワーク経路が同時に使用されるように選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
図11を参照すると、実施例1におけるホストサーバ120〜123は、再構成ファイル341を記憶部210に備え、ファイル取得部351およびサービス提供部352をホスト制御部213に備えている。
ファイル取得部351は、ストリーミング配信の対象となるコンテンツファイルなどのファイルを構成するチャンクを取得するためのチャンク取得情報をメタサーバに問い合わせ、取得したチャンク取得情報に従ってストレージノードをアクセスし、取得したチャンクをつなげて記憶部210上に再構成ファイル341を作成する処理を行う。
サービス提供部352は、再構成ファイル341を記憶部210から読み込み、通信部212を通じてユーザ端末へ配信すると言ったサービスを実行する。
次に本実施例1の動作を説明する。
[エッジスイッチ構成情報の取得]
図12を参照すると、メタサーバ124のエッジスイッチ構成取得部311は、システム構成変更時(システムの初回稼働開始時を含む)もしくは定期的に、システムに存在するストレージノード100〜115とそれが接続されているエッジスイッチ130〜133の組み合わせの情報をエッジスイッチ構成情報として収集し(ステップS101)、エッジスイッチ構成情報データベース301に格納する(ステップS102)。
具体的なエッジスイッチ構成情報の取得方法としては、(1)静的に設定ファイルなどに記述しておく、(2)エッジスイッチがSNMP(Simple Network Management Protocol)に対応していて、各ネットワークポートに接続されている機器のIPアドレスもしくはMACアドレスなどが取得可能ならば、その情報を利用する、(3)各ストレージノードにプローブを入れておき、各ノード間の通信に要する時間(レイテンシ)を元に同一エッジスイッチに接続されているストレージノードを推定する、などの方法がある。
[データ格納時]
図13を参照すると、メタサーバ124のレプリカ配置決定部312は、入出力部224を通じて外部オペレータからファイル格納要求を受け取ると、格納対象となるファイル(ターゲットファイル)をチャンクに分割する(ステップS201)。次に、エッジスイッチ構成情報データベース301を参照して、ストレージノードとその接続されたエッジスイッチとの関係を確認し、同一チャンクの複数のレプリカが同一エッジスイッチに接続されるストレージノードに重ならないようにレプリカの格納先を決定する(ステップS202)。
本実施の形態のように、各エッジスイッチ130〜133に接続されているストレージノードの数が一定の場合、例えば以下のようなルールに従ってレプリカの格納先を決定することができる。
(a)レプリカ配置決定方法1
エッジスイッチごとのストレージノード数を一定値p、レプリカ数をrとしたとき、
1.リーダーノードがプライマリノード(m0)を決定する。
2.mi+1=(mi+p)%n(nは全ストレージノード数)をセカンダリレプリカノードに決定する。
3.指定した数rのレプリカが選ばれていれば終了し、未だ選ばれていなければ段階2へ戻る。
他方、各エッジスイッチに接続されるストレージノード数が一定でない場合には、例えば以下のようなルールに従ってレプリカの格納先を決定することができる。
(b)レプリカ配置決定方法2
エッジスイッチiに接続されるストレージノード数をp(i)、レプリカ数をrとしたとき、
1.リーダーノードがプライマリノード(m0)を決定する。
2.mi+1=(mi+p(j))%n(jはΣp(j)>miとなる最小のj)をセカンダリレプリカノードに決定する。
3.指定した数rのレプリカが選ばれていれば終了し、未だ選ばれていなければ段階2へ戻る。
勿論、レプリカ配置決定方法は上述した例に限らないことは言うまでもない。
レプリカ配置決定部312によってレプリカの配置が決定すると、レプリカ配置処理部313は、レプリカ配置決定部312の決定に従って、各レプリカをストレージノードに格納する(ステップS203)。レプリカ配置決定部312は、レプリカ配置処理部313のレプリカ配置処理の完了を待って、レプリカ配置データベース302を更新する(ステップS204)。具体的には、図10に示したように、今回のファイルの識別子333とそのチャンクの識別子のリスト334とから構成されるファイル情報331と、チャンク識別子335とその配置先ストレージノードの識別子のリスト336とから構成されるチャンク毎のチャンク情報332とをレプリカ配置データベース302に登録する。
[データ読み出し時]
図14を参照すると、各ホストサーバ120〜123のファイル取得部351は、取得対象とするファイルの識別子を指定したファイル取得要求をメタサーバ124へ送信し(ステップS301)、メタサーバ124からの応答を待つ。
図15Aと図15Bは、本実施例におけるファイルのデータ読み出し時のメタサーバ側の処理の流れを示すフローチャートである。図示のように、メタサーバ124のレプリカ検索部314は、ホストサーバから送信されたファイル取得要求を受信すると(ステップS401)、ファイル識別子をキーにレプリカ配置データベース302を検索して、ホストサーバが取得を要求したファイルの識別子333を含むファイル情報331からそのファイルを構成するチャンクの識別子のリスト334を取得する(ステップS402)。レプリカ検索部314は、若し、このリスト334が取得できない場合には(ステップS403でNO)、要求されたファイルが本データ分散格納システムに格納されていないことを意味するので、ファイル発見不能をホストサーバに通知し(ステップS419)、ファイル取得要求受信時の処理を終える。
チャンク識別子のリスト334を取得した場合、次にレプリカ検索部314は、取得したリストに記述された先頭のチャンクに注目し(ステップS404)、注目したチャンクの識別子をキーにレプリカ配置データベース302を検索して、そのチャンク識別子を含むチャンク情報332からそのチャンクの配置先ストレージノードの識別子のリスト336であるレプリカリストを取得する(ステップS405)。次にレプリカ検索部314は、この取得したリストが空でなければ(ステップS406でNO)、そのリストをレプリカ取得先選択部315に伝達し、レプリカ取得先選択部315は、ストレージノードの負荷分散などを考慮してリストの中から1つの配置先ストレージノードの識別子を選択し、結果をレプリカ検索部314に通知する(ステップS407)。また、レプリカ検索部314は、リストが空であれば(ステップS406でYES)、ファイル発見不能をホストサーバに通知し(ステップS419)、ファイル取得要求受信時の処理を終える。
次にレプリカ検索部314は、レプリカ取得先選択部315から通知された配置先ストレージノードと要求元のホストサーバの識別子をレプリカ取得ネットワーク経路決定部316に伝達し、レプリカ取得ネットワーク経路決定部316は、要求元のホストサーバから配置先ストレージノードに至る複数のネットワーク経路を計算し、ネットワーク経路集合に記憶する(ステップS408)。続いてレプリカ取得ネットワーク経路決定部316は、ネットワーク経路の負荷分散などを考慮して、ネットワーク経路集合から1つのネットワーク経路を選択し、レプリカ検索部314へ通知する(ステップS410)。
レプリカ検索部314は、レプリカ取得先選択部315から通知された配置先ストレージノードとレプリカ取得ネットワーク経路決定部316から通知されたネットワーク経路と取得対象とするチャンクの識別子とを含むレプリカ取得情報を、要求元のホストサーバへ通知する(ステップS411)。そして、ホストサーバからの応答を待つ。
ホストサーバのファイル取得部351は、ファイル取得要求に対する応答としてメタサーバ124からレプリカ取得情報を受信すると(図14のステップS302でYES)、このレプリカ取得情報で指定されたネットワーク経路を通じて、同じくレプリカ取得情報で指定された配置先ストレージノードをアクセスしてチャンクを取得する(ステップS303)。そして、取得に成功すれば(ステップS304でYES)、取得したチャンクで再構成ファイル341の一部を再構成し(ステップS305)、取得成功をメタサーバ124へ通知する(ステップS306)。他方、ネットワークエラーや配置先ストレージノードの障害などによってチャンクの取得に失敗した場合(ステップS304でNO)、失敗した原因を付加して取得失敗をメタサーバ124へ通知する(ステップS307)。
また、ファイル取得部351は、ファイル取得要求に対する応答としてメタサーバ124からファイル発見不能の通知を受信すると(ステップS309でYES)、要求したファイルの読み出しに失敗したことを意味し、ファイル取得の異常終了を行う。
メタサーバ124のレプリカ検索部314は、レプリカ取得情報に対する応答としてホストサーバから取得成功が通知されると(ステップS412でYES)、要求されたファイルの最後のチャンクまで読み出しを終えたかどうかを判定し、終えていなければ(ステップS413でNO)、ステップS402で取得したチャンク識別子のリスト中の次のチャンクに注目を移して(ステップS414)、ステップS405に戻り、上述した処理と同様の処理を繰り返す。最後のチャンクまで読み出しを終えていれば(ステップS413でYES)、ファイル読み出し完了をホストサーバに通知し(ステップS415)、ファイル取得要求受信時の処理を終える。このファイル読み出し完了の通知を受信したホストサーバのファイル取得部351は、ファイル取得の正常終了となる(ステップS308でYES)。
また、レプリカ検索部314は、レプリカ取得情報に対する応答としてホストサーバから取得失敗が通知されると(ステップS412でNO)、失敗の原因がネットワークエラーかどうかを判別し、ネットワークエラーであれば(ステップS416でYES)、レプリカ取得ネットワーク経路決定部316に次のネットワーク経路の選択を指示する。レプリカ取得ネットワーク経路決定部316は、前回選択したネットワーク経路をネットワーク経路集合から削除し(ステップS417)、残りのネットワーク経路から1つのネットワーク経路を選択してレプリカ検索部314へ通知する。また、残りのネットワーク経路が1つも無ければ、その旨をレプリカ検索部314へ通知する。レプリカ検索部314は、ネットワーク経路が通知されると、この通知されたネットワーク経路とステップS407においてレプリカ取得先選択部315で選択されていた取得先ストレージノードとを含むレプリカ取得情報をホストサーバへ通知し(ステップS411)、その応答を再び待つ。
他方、レプリカ検索部314は、残りのネットワーク経路が無い旨の通知をレプリカ取得ネットワーク経路決定部316から受けると、注目中チャンクのレプリカリストから今回の取得先ストレージノードを削除し(ステップS418)、リストが空でなければ、リストをレプリカ取得先選択部315に伝達し、レプリカ取得先選択部315はそのリスト中から1つの取得先ストレージノードを選択してレプリカ検索部314へ通知する(ステップS407)。以降、上述した処理と同様の処理が行われ、ホストサーバに対してレプリカ取得情報が通知される。また、リストが空であれば、要求されたファイルは本データ分散格納システムに格納されている可能性はあるがアクセス不能であることを意味するので、ファイル発見不能をホストサーバに通知し(ステップS419)、ファイル取得要求受信時の処理を終える。
次に本実施例1の効果を説明する。
本実施例1によれば、ストレージノード、エッジスイッチ、ネットワーク経路、ホストサーバの何れか1つに障害が発生しても、残りの要素を使用して処理を継続することができる。
例えば、ストレージノード100〜115の何れか1つ、例えばストレージノード100に障害が発生しても、ストレージノード100に格納されているデータのレプリカが別のストレージノード104(図7の例の場合)に格納されているので、ホストサーバ120〜123はストレージノード104を利用することで処理を継続することができる。
また、エッジスイッチ130〜133の何れかのエッジスイッチ、例えばエッジスイッチ130に障害が発生した場合、ホストサーバ120はストレージノード100〜155をアクセスできなくなるために処理が停止し、またストレージノード100〜103を他のホストサーバ121〜123からアクセスできなくなるが、他のホストサーバ121〜123はエッジスイッチ131〜133を通じて、多重化された他のストレージノード104〜115をアクセスできるため、システム全体としては処理を継続することができる。
また、ネットワーク140中の何れかのネットワーク経路に障害が発生しても、各ホストサーバ120〜123はネットワークの残りのネットワーク経路を通じて、自ホストサーバが接続されたエッジスイッチ以外のエッジスイッチに接続されたストレージノードをアクセスできるため、処理を継続することができる。
また、ホストサーバ120〜123の何れかのホストサーバに障害が発生しても、多重化された他方のホストサーバにより処理を継続することができる。
このように本実施例に係るデータ分散格納システムは、ストレージノード、スイッチ、ネットワーク経路、ホストサーバの何れもSPOF(Single Point of Failure)にならないために、耐障害性を高めることができ、かつ、図2に示す接続構成から明らかなように、ストレージノード100〜115およびホストサーバ120〜123は、ネットワークインタフェースを多重に実装する必要がない。
・実施例2
図16を参照すると、実施例2におけるメタサーバ124は、図8に示した実施例1におけるメタサーバと比較して、レプリカ取得先選択部315およびレプリカ取得ネットワーク経路決定部316が取り除かれている点と、レプリカ検索部314がレプリカ検索部317に置き換えられている点で相違する。
レプリカ検索部317は、ホストサーバからファイル取得要求を受信し、ファイル取得要求で指定された取得対象ファイルを構成する各チャンクの配置先ストレージノードの識別子のリストであるレプリカリストをホストサーバに対して通知する。
図17を参照すると、実施例2におけるホストサーバ120〜123は、図11に示した実施例1におけるホストサーバと比較して、ファイル取得部351がファイル取得部353に置き換えられている点と、レプリカ取得先選択部354およびレプリカ取得ネットワーク経路決定部355が新たに追加されている点で相違する。
レプリカ取得先選択部354は、複数のストレージノードに分散して配置されているチャンクの複数のレプリカの中から取得対象とするレプリカを選択する処理を行う。選択の方法としては、例えば、ホストサーバからのレプリカ取得が特定のストレージノードに集中せず適当に負荷分散されるように、例えば履歴情報を元にラウンドロビンさせることでレプリカ取得先を選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
レプリカ取得ネットワーク経路決定部355は、ホストサーバからストレージノードに至る複数のネットワーク経路の計算と、この計算で得られた複数のネットワーク経路の中から実際に使用するネットワーク経路を選択する処理とを行う。選択の方法としては、ホストサーバからのレプリカ取得が特定のネットワーク経路に集中せずに適当に負荷分散されるように選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
ファイル取得部353は、ストリーミング配信の対象となるコンテンツファイルなどのファイルを構成する各チャンクの配置先ストレージノードの識別子のリストであるレプリカリストをメタサーバに問い合わせ、取得したレプリカリストに記載されたストレージノードをアクセスし、取得したチャンクをつなげて記憶部210上に再構成ファイル341を作成する処理を行う。
次に本実施例2の動作を説明する。本実施例2の動作のうち、データ読み出し時以外の動作は実施例1と同じなので、以下ではデータ読み出し時の動作を説明する。
[データ読み出し時]
図18Aと図18Bは、本実施例におけるファイルのデータ読み出し時のホストサーバ側の処理の流れを示すフローチャートである。図示のように、各ホストサーバ120〜123のファイル取得部353は、取得対象とするファイルの識別子を指定したファイル取得要求をメタサーバ124へ送信し(ステップS501)、メタサーバ124からの応答を待つ。
図19を参照すると、メタサーバ124のレプリカ検索部317は、ホストサーバから送信されたファイル取得要求を受信すると(ステップS601)、ファイル識別子をキーにレプリカ配置データベース302を検索して、ホストサーバが取得を要求したファイルの識別子333を含むファイル情報331からそのファイルを構成するチャンクの識別子のリスト334を取得する(ステップS602)。レプリカ検索部317は、若し、このリスト334が取得できない場合には(ステップS603でNO)、要求されたファイルが本データ分散格納システムに格納されていないことを意味するので、ファイル発見不能をホストサーバに通知し(ステップS611)、ファイル取得要求受信時の処理を終える。
チャンク識別子のリスト334を取得した場合、次にレプリカ検索部317は、取得したリストに記述された先頭のチャンクに注目し(ステップS604)、注目したチャンクの識別子をキーにレプリカ配置データベース302を検索して、そのチャンク識別子を含むチャンク情報332からそのチャンクの配置先ストレージノードの識別子のリスト(レプリカリスト)336を取得する(ステップS605)。次にレプリカ検索部317は、この取得したレプリカリスト336を要求元のホストサーバへ通知する(ステップS606)。そして、ホストサーバからの応答を待つ。
ホストサーバのファイル取得部353は、ファイル取得要求に対する応答としてメタサーバ124からファイル発見不能通知を受信すると(図18AのステップS516でYES)、ファイル取得要求受信時の処理を異常終了とする。他方、ファイル取得要求に対する応答としてメタサーバ124からレプリカリストを受信すると(図18AのステップS502でYES)、この取得したリストが空でなければ(ステップS503でNO)、そのリストをレプリカ取得先選択部354に伝達する。レプリカ取得先選択部354は、ストレージノードの負荷分散などを考慮してリストの中から1つの配置先ストレージノードの識別子を選択し、結果をファイル取得部353に通知する(ステップS504)。また、ファイル取得部353は、リストが空であれば(ステップS503でYES)、取得失敗をメタサーバに通知し(ステップS517)、ファイル取得要求の受信時の処理を異常終了とする。
次にファイル取得部353は、レプリカ取得先選択部354から通知された配置先ストレージノードをレプリカ取得ネットワーク経路決定部355に伝達する。レプリカ取得ネットワーク経路決定部355は、自ホストサーバから配置先ストレージノードに至る複数のネットワーク経路を計算し、ネットワーク経路集合に記憶する(ステップS505)。続いてレプリカ取得ネットワーク経路決定部355は、ネットワーク経路の負荷分散などを考慮して、ネットワーク経路集合から1つのネットワーク経路を選択し、ファイル取得部353へ通知する(ステップS507)。
ファイル取得部353は、レプリカ取得先選択部354から通知された配置先ストレージノードとレプリカ取得ネットワーク経路決定部355から通知されたネットワーク経路と取得対象とするチャンクの識別子とを含むレプリカ取得情報に基づいて、配置先ストレージノードをアクセスしてチャンクを取得する(ステップS508)。そして、取得に成功すれば(ステップS509でYES)、取得したチャンクで再構成ファイル341の一部を再構成し(ステップS510)、取得成功をメタサーバ124へ通知する(ステップS511)。他方、ネットワークエラーや配置先ストレージノードの障害などによってチャンクの取得に失敗した場合(ステップS509でNO)、失敗の原因がネットワークエラーかどうかを判別し(ステップS512)、ネットワークエラーであれば、レプリカ取得ネットワーク経路決定部355に次のネットワーク経路の選択を指示する。レプリカ取得ネットワーク経路決定部355は、前回選択したネットワーク経路をネットワーク経路集合から削除し(ステップS513)、残りのネットワーク経路から1つのネットワーク経路を選択してファイル取得部353へ通知する。また、残りのネットワーク経路が1つも無ければ、その旨をファイル取得部353へ通知する。ファイル取得部353は、ネットワーク経路が通知されると、この通知されたネットワーク経路とステップS504においてレプリカ取得先選択部354で選択されていた取得先ストレージノードとを含むレプリカ取得情報に基づいて、配置先ストレージノードをアクセスしてチャンクを取得する(ステップS508)。以降、チャンクの取得に成功するか、ネットワーク経路集合が空になるまで同様の動作が繰り返される。そして、最後のネットワーク経路によっても取得に成功しなかった場合(ステップS506でYES)、ファイル取得部353は、注目中チャンクのレプリカリストから今回の取得先ストレージノードを削除し(ステップS514)、リストが空でなければ、リストをレプリカ取得先選択部354に伝達し、レプリカ取得先選択部354はそのリスト中から1つの取得先ストレージノードを選択してファイル取得部353へ通知する(ステップS504)。以降、チャンクの取得に成功するか、レプリカリストが空になるまで同様の動作が繰り返される。そして、最後のストレージノードからもチャンクの取得に成功しなかった場合(ステップS503でYES)、当該チャンクは本データ分散格納システムに格納されている可能性はあるがアクセス不能であることを意味するので、取得失敗をメタサーバに通知し(ステップS517)、ファイル取得要求の処理を異常終了とする。
メタサーバ124のレプリカ検索部317は、レプリカ取得情報に対する応答としてホストサーバから取得成功が通知されると(ステップS607でYES)、要求されたファイルの最後のチャンクまで読み出しを終えたかどうかを判定し(ステップS608)、終えていなければ、ステップS602で取得したチャンク識別子のリスト中の次のチャンクに注目を移して(ステップS609)、ステップS605に戻り、上述した処理と同様の処理を繰り返す。最後のチャンクまで読み出しを終えていれば(ステップS608でYES)、ファイル読み出し完了をホストサーバに通知し(ステップS610)、ファイル取得要求受信時の処理を正常終了とする。このファイル読み出し完了の通知を受信したホストサーバのファイル取得部353は、ファイル取得要求の処理が正常終了となる(ステップS515でYES)。
また、レプリカ検索部317は、レプリカリストに対する応答としてホストサーバから取得失敗が通知されると(ステップS603でNO)、ファイル発見不能をホストサーバに通知する(ステップS611)。ホストサーバのファイル取得部353は、ファイル発見不能の通知をメタサーバから受信すると(ステップS516でYES)、ファイル取得要求の処理を異常終了とする。
次に本実施例2の効果を説明する。
本実施例2によれば、実施例1と同様の効果を得ることができると同時に、実施例1においてメタサーバに設けていたレプリカ取得先選択部およびレプリカ取得ネットワーク経路決定部をホストサーバに設けるようにしたことにより、メタサーバのレプリカ取得先を選択するコスト、レプリカ取得ネットワーク経路を計算するコストを軽減でき、メタサーバのスケーラビリティが向上する。また、ホストサーバは、メタサーバからレプリカリストを受信しているため、レプリカリスト中の何れかのストレージノードからチャンクのレプリカを取得することができなかった場合でも、実施例1のようにメタサーバに再度問い合わせを行う必要がなく、問い合わせに要するオーバヘッドを軽減することができる。
『その他の実施例』
実施例1および実施例2では、ホストサーバは、ファイルを構成するチャンクをその先頭のチャンクから最後のチャンクまで順番に、1チャンクずつ、直前のチャンクの取得完了後に次のチャンクの読み出しを開始したが、連続する複数のチャンクの読み出しを並行して行うようにしても良い。例えば、図7に示したようにファイルのチャンクが配置されている場合、ホストサーバ120は、ストレージノード100からチャンク0の読み出しを開始し、そのチャンク0の読み出しの完了を待たずに、ストレージノード105からチャンク1の読み出しを開始することで、連続する複数のチャンクの読み出しを異なるストレージノード、異なるネットワーク経路を用いてパイプライン的に行うようにしても良い。このような処理によって、特にストリーミングデータの送出時に顕著なチャンクの連続読み出しを行った際に、スループットの向上が達成でき、ネットワークボトルネックを生じさせないストレージクラスタを構築できる。
上述したようなパイプライン的な処理を可能にするために、メタサーバ124のレプリカ配置決定部312は、連続するチャンクが異なるネットワーク経路でアクセス可能な異なるストレージノードに配置するように、レプリカの配置を決定する。また、実施例1ではメタサーバのレプリカ検索部314、レプリカ取得先選択部315およびレプリカ取得ネットワーク経路決定部316が、また実施例2ではホストサーバのファイル取得部353、レプリカ取得先選択部354およびレプリカ取得ネットワーク経路決定部355が、連続する複数のチャンクの読み出しを異なるストレージノードおよび異なるネットワーク経路を用いてパイプライン的に行えるように、チャンクを取得するストレージノードおよびそのネットワーク経路を決定する。
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2007年12月28日に出願された日本出願特願2007−339575を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
本発明によれば、高信頼、高スループット、低コストを要求する状況におけるストレージ、例えば、ストリーミング配信サーバのバックエンドとしてのストレージ、メールデータのリポジトリ、などといった用途に適用できる。
【0012】
[0045]
エッジスイッチ構成情報データベース301は、図9に示すように、エッジスイッチ130〜133毎のエッジスイッチ構成情報321を保持する。エッジスイッチ構成情報321は、エッジスイッチ識別子322と、このエッジスイッチ識別子322で一意に識別されるエッジスイッチに接続されているストレージノードの識別子のリスト323とから構成される。
[0046]
レプリカ配置データベース302は、図10に示すように、ファイル毎のファイル情報331と、チャンク毎のチャンク情報332とを保持する。ファイル情報331は、ファイル識別子333と、このファイル識別子333で一意に識別されるファイルを構成するチャンクの識別子のリスト334とから構成される。チャンク情報332は、チャンク識別子335と、このチャンク識別子335で一意に識別されるチャンクの配置先ストレージノードの識別子のリスト336とから構成される。
[0047]
エッジスイッチ構成取得部311は、エッジスイッチ構成情報を取得して、エッジスイッチ構成情報データベース301に格納する処理を行う。
[0048]
レプリカ配置決定部312は、入出力部224から入力された格納対象ファイルの各チャンクを、どのストレージノードに配置(格納)するかを決定する処理を行う。
[0049]
レプリカ配置処理部313は、レプリカ配置決定部312で決定された配置先に従って、格納対象ファイルの各チャンクをストレージノードに格納する処理を行う。
[0050]
レプリカ検索部314は、ホストサーバからファイル取得要求を受信し、ファイル取得要求で指定された取得対象ファイルを構成する各チャンクを取得するためのレプリカ取得情報をホストサーバに対して通知する。レプリカ取得情報には、チャンクを取得するストレージノードの識別子および取得するネットワーク経路が含まれる。
[0051]
レプリカ取得先選択部315は、複数のストレージノードに分散して配置されているチャンクの複数のレプリカの中から取得対象とするレプリカを選択する処理を行う。選択の方法としては、例えば、ホストサーバからのレプリカ取得が特定のストレージノードに集中せず負荷分散されるように、例えば履歴情報を元にラウンドロビンさせることでレプリカ取得先を選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
[0052]
レプリカ取得ネットワーク経路決定部316は、ホストサーバからストレージノードに至
【0013】
る複数のネットワーク経路の計算と、この計算で得られた複数のネットワーク経路の中から実際に使用するネットワーク経路を選択する処理とを行う。選択の方法としては、複数のホストサーバからのレプリカ取得が特定のネットワーク経路に集中せずに負荷分散され、好ましくはそれぞれ異なるネットワーク経路が同時に使用されるように選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
[0053]
図11を参照すると、実施例1におけるホストサーバ120〜123は、再構成ファイル341を記憶部210に備え、ファイル取得部351およびサービス提供部352をホスト制御部213に備えている。
[0054]
ファイル取得部351は、ストリーミング配信の対象となるコンテンツファイルなどのファイルを構成するチャンクを取得するためのチャンク取得情報をメタサーバに問い合わせ、取得したチャンク取得情報に従ってストレージノードをアクセスし、取得したチャンクをつなげて記憶部210上に再構成ファイル341を作成する処理を行う。
[0055]
サービス提供部352は、再構成ファイル341を記憶部210から読み込み、通信部212を通じてユーザ端末へ配信すると言ったサービスを実行する。
[0056]
次に本実施例1の動作を説明する。
[0057]
[エッジスイッチ構成情報の取得]
図12を参照すると、メタサーバ124のエッジスイッチ構成取得部311は、システム構成変更時(システムの初回稼働開始時を含む)もしくは定期的に、システムに存在するストレージノード100〜115とそれが接続されているエッジスイッチ130〜133の組み合わせの情報をエッジスイッチ構成情報として収集し(ステップS101)、エッジスイッチ構成情報データベース301に格納する(ステップS102)。
[0058]
具体的なエッジスイッチ構成情報の取得方法としては、(1)静的に設定ファイルなどに記述しておく、(2)エッジスイッチがSNMP(Simple Network Management Protocol)に対応していて、各ネットワークポートに接続されている機器のIPアドレスもしくはMACアドレスなどが取得可能ならば、その情報を利用する、(3)各ストレージノードにプローブを入れておき、各ノード間の通信に要する時間(レイテンシ)を元に同一エッジスイッチに接続されているストレージノードを推定する、などの方法がある。
【0015】
313は、レプリカ配置決定部312の決定に従って、各レプリカをストレージノードに格納する(ステップS203)。レプリカ配置決定部312は、レプリカ配置処理部313のレプリカ配置処理の完了を待って、レプリカ配置データベース302を更新する(ステップS204)。具体的には、図10に示したように、今回のファイルの識別子333とそのチャンクの識別子のリスト334とから構成されるファイル情報331と、チャンク識別子335とその配置先ストレージノードの識別子のリスト336とから構成されるチャンク毎のチャンク情報332とをレプリカ配置データベース302に登録する。
[0066]
[データ読み出し時]
図14を参照すると、各ホストサーバ120〜123のファイル取得部351は、取得対象とするファイルの識別子を指定したファイル取得要求をメタサーバ124へ送信し(ステップS301)、メタサーバ124からの応答を待つ。
[0067]
図15Aと図15Bは、本実施例におけるファイルのデータ読み出し時のメタサーバ側の処理の流れを示すフローチャートである。図示のように、メタサーバ124のレプリカ検索部314は、ホストサーバから送信されたファイル取得要求を受信すると(ステップS401)、ファイル識別子をキーにレプリカ配置データベース302を検索して、ホストサーバが取得を要求したファイルの識別子333を含むファイル情報331からそのファイルを構成するチャンクの識別子のリスト334を取得する(ステップS402)。レプリカ検索部314は、若し、このリスト334が取得できない場合には(ステップS403でNO)、要求されたファイルが本データ分散格納システムに格納されていないことを意味するので、ファイル発見不能をホストサーバに通知し(ステップS419)、ファイル取得要求受信時の処理を終える。
[0068]
チャンク識別子のリスト334を取得した場合、次にレプリカ検索部314は、取得したリストに記述された先頭のチャンクに注目し(ステップS404)、注目したチャンクの識別子をキーにレプリカ配置データベース302を検索して、そのチャンク識別子を含むチャンク情報332からそのチャンクの配置先ストレージノードの識別子のリスト336であるレプリカリストを取得する(ステップS405)。次にレプリカ検索部314は、この取得したリストが空でなければ(ステップS406でNO)、そのリストをレプリカ取得先選択部315に伝達し、レプリカ取得先選択部315は、ストレージノードの負荷が分散されるように、
【0016】
リストの中から1つの配置先ストレージノードの識別子を選択し、結果をレプリカ検索部314に通知する(ステップS407)。また、レプリカ検索部314は、リストが空であれば(ステップS406でYES)、ファイル発見不能をホストサーバに通知し(ステップS419)、ファイル取得要求受信時の処理を終える。
[0069]
次にレプリカ検索部314は、レプリカ取得先選択部315から通知された配置先ストレージノードと要求元のホストサーバの識別子をレプリカ取得ネットワーク経路決定部316に伝達し、レプリカ取得ネットワーク経路決定部316は、要求元のホストサーバから配置先ストレージノードに至る複数のネットワーク経路を計算し、ネットワーク経路集合に記憶する(ステップS408)。続いてレプリカ取得ネットワーク経路決定部316は、ネットワーク経路の負荷が分散されるように、ネットワーク経路集合から1つのネットワーク経路を選択し、レプリカ検索部314へ通知する(ステップS410)。
[0070]
レプリカ検索部314は、レプリカ取得先選択部315から通知された配置先ストレージノードとレプリカ取得ネットワーク経路決定部316から通知されたネットワーク経路と取得対象とするチャンクの識別子とを含むレプリカ取得情報を、要求元のホストサーバへ通知する(ステップS411)。そして、ホストサーバからの応答を待つ。
[0071]
ホストサーバのファイル取得部351は、ファイル取得要求に対する応答としてメタサーバ124からレプリカ取得情報を受信すると(図14のステップS302でYES)、このレプリカ取得情報で指定されたネットワーク経路を通じて、同じくレプリカ取得情報で指定された配置先ストレージノードをアクセスしてチャンクを取得する(ステップS303)。そして、取得に成功すれば(ステップS304でYES)、取得したチャンクで再構成ファイル341の一部を再構成し(ステップS305)、取得成功をメタサーバ124へ通知する(ステップS306)。他方、ネットワークエラーや配置先ストレージノードの障害などによってチャンクの取得に失敗した場合(ステップS304でNO)、失敗した原因を付加して取得失敗をメタサーバ124へ通知する(ステップS307)。
[0072]
また、ファイル取得部351は、ファイル取得要求に対する応答としてメタサーバ124からファイル発見不能の通知を受信すると(ステップS309でYES)、要求したファイルの読み出しに失敗したことを意味し、ファイル取得の異常終了を行う。
[0073]
メタサーバ124のレプリカ検索部314は、レプリカ取得情報に対する応答としてホス
【0019】
けるメタサーバと比較して、レプリカ取得先選択部315およびレプリカ取得ネットワーク経路決定部316が取り除かれている点と、レプリカ検索部314がレプリカ検索部317に置き換えられている点で相違する。
[0084]
レプリカ検索部317は、ホストサーバからファイル取得要求を受信し、ファイル取得要求で指定された取得対象ファイルを構成する各チャンクの配置先ストレージノードの識別子のリストであるレプリカリストをホストサーバに対して通知する。
[0085]
図17を参照すると、実施例2におけるホストサーバ120〜123は、図11に示した実施例1におけるホストサーバと比較して、ファイル取得部351がファイル取得部353に置き換えられている点と、レプリカ取得先選択部354およびレプリカ取得ネットワーク経路決定部355が新たに追加されている点で相違する。
[0086]
レプリカ取得先選択部354は、複数のストレージノードに分散して配置されているチャンクの複数のレプリカの中から取得対象とするレプリカを選択する処理を行う。選択の方法としては、例えば、ホストサーバからのレプリカ取得が特定のストレージノードに集中せず負荷分散されるように、例えば履歴情報を元にラウンドロビンさせることでレプリカ取得先を選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
[0087]
レプリカ取得ネットワーク経路決定部355は、ホストサーバからストレージノードに至る複数のネットワーク経路の計算と、この計算で得られた複数のネットワーク経路の中から実際に使用するネットワーク経路を選択する処理とを行う。選択の方法としては、ホストサーバからのレプリカ取得が特定のネットワーク経路に集中せずに負荷分散されるように選択する。勿論、選択の方法はこのような方法に限定されず、任意の方法を使用することができる。
[0088]
ファイル取得部353は、ストリーミング配信の対象となるコンテンツファイルなどのファイルを構成する各チャンクの配置先ストレージノードの識別子のリストであるレプリカリストをメタサーバに問い合わせ、取得したレプリカリストに記載されたストレージノードをアクセスし、取得したチャンクをつなげて記憶部210上に再構成ファイル341を作成する処理を行う。
[0089]
次に本実施例2の動作を説明する。本実施例2の動作のうち、データ読み出し時以
【0021】
ドの負荷が分散されるようにリストの中から1つの配置先ストレージノードの識別子を選択し、結果をファイル取得部353に通知する(ステップS504)。また、ファイル取得部353は、リストが空であれば(ステップS503でYES)、取得失敗をメタサーバに通知し(ステップS517)、ファイル取得要求の受信時の処理を異常終了とする。
[0094]
次にファイル取得部353は、レプリカ取得先選択部354から通知された配置先ストレージノードをレプリカ取得ネットワーク経路決定部355に伝達する。レプリカ取得ネットワーク経路決定部355は、自ホストサーバから配置先ストレージノードに至る複数のネットワーク経路を計算し、ネットワーク経路集合に記憶する(ステップS505)。続いてレプリカ取得ネットワーク経路決定部355は、ネットワーク経路の負荷が分散されるように、ネットワーク経路集合から1つのネットワーク経路を選択し、ファイル取得部353へ通知する(ステップS507)。
[0095]
ファイル取得部353は、レプリカ取得先選択部354から通知された配置先ストレージノードとレプリカ取得ネットワーク経路決定部355から通知されたネットワーク経路と取得対象とするチャンクの識別子とを含むレプリカ取得情報に基づいて、配置先ストレージノードをアクセスしてチャンクを取得する(ステップS508)。そして、取得に成功すれば(ステップS509でYES)、取得したチャンクで再構成ファイル341の一部を再構成し(ステップS510)、取得成功をメタサーバ124へ通知する(ステップS511)。他方、ネットワークエラーや配置先ストレージノードの障害などによってチャンクの取得に失敗した場合(ステップS509でNO)、失敗の原因がネットワークエラーかどうかを判別し(ステップS512)、ネットワークエラーであれば、レプリカ取得ネットワーク経路決定部355に次のネットワーク経路の選択を指示する。レプリカ取得ネットワーク経路決定部355は、前回選択したネットワーク経路をネットワーク経路集合から削除し(ステップS513)、残りのネットワーク経路から1つのネットワーク経路を選択してファイル取得部353へ通知する。また、残りのネットワーク経路が1つも無ければ、その旨をファイル取得部353へ通知する。ファイル取得部353は、ネットワーク経路が通知されると、この通知されたネットワーク経路とステップS504においてレプリカ取得先選択部354で選択されていた取得先ストレージノードとを含むレプリカ取得情報に基づいて、配置先ストレージノードをアクセスしてチャンクを取得する(ステップS508)。以降、チ
【0023】
においてメタサーバに設けていたレプリカ取得先選択部およびレプリカ取得ネットワーク経路決定部をホストサーバに設けるようにしたことにより、メタサーバのレプリカ取得先を選択するコスト、レプリカ取得ネットワーク経路を計算するコストを軽減でき、メタサーバのスケーラビリティが向上する。また、ホストサーバは、メタサーバからレプリカリストを受信しているため、レプリカリスト中の何れかのストレージノードからチャンクのレプリカを取得することができなかった場合でも、実施例1のようにメタサーバに再度問い合わせを行う必要がなく、問い合わせに要するオーバヘッドを軽減することができる。
[0100]
『その他の実施例』
実施例1および実施例2では、ホストサーバは、ファイルを構成するチャンクをその先頭のチャンクから最後のチャンクまで順番に、1チャンクずつ、直前のチャンクの取得完了後に次のチャンクの読み出しを開始したが、連続する複数のチャンクの読み出しを並行して行うようにしても良い。例えば、図7に示したようにファイルのチャンクが配置されている場合、ホストサーバ120は、ストレージノード100からチャンク0の読み出しを開始し、そのチャンク0の読み出しの完了を待たずに、ストレージノード105からチャンク1の読み出しを開始することで、連続する複数のチャンクの読み出しを異なるストレージノード、異なるネットワーク経路を用いて並列に行うようにしても良い。このような処理によって、特にストリーミングデータの送出時に顕著なチャンクの連続読み出しを行った際に、スループットの向上が達成でき、ネットワークボトルネックを生じさせないストレージクラスタを構築できる。
[0101]
上述したような処理を可能にするために、メタサーバ124のレプリカ配置決定部312は、連続するチャンクが異なるネットワーク経路でアクセス可能な異なるストレージノードに配置するように、レプリカの配置を決定する。また、実施例1ではメタサーバのレプリカ検索部314、レプリカ取得先選択部315およびレプリカ取得ネットワーク経路決定部316が、また実施例2ではホストサーバのファイル取得部353、レプリカ取得先選択部354およびレプリカ取得ネットワーク経路決定部355が、連続する複数のチャンクの読み出しを異なるストレージノードおよび異なるネットワーク経路を用いて並列に行えるように、チャンクを取得するストレージノードお

Claims (21)

  1. 複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備えることを特徴とするデータ分散格納システム。
  2. 前記メタサーバは、前記エッジスイッチと前記ストレージノードとの接続関係を示すエッジスイッチ構成情報を記憶するエッジスイッチ構成情報記憶手段と、前記エッジスイッチ構成情報を参照して、格納対象となるファイルを複数に分割し、個々の部分データを多重化し、多重化した部分データが同じエッジスイッチに接続されたストレージノードに格納されないような配置を決定するレプリカ配置決定手段と、該レプリカ配置決定手段で決定された配置に従って、多重化された部分データを前記ストレージノードに格納するレプリカ配置処理手段と、前記ファイルを構成する部分データの前記ストレージノードへの配置状況を記憶するレプリカ配置記憶手段とを有することを特徴とする請求項1に記載のデータ分散格納システム。
  3. 前記メタサーバは、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードと要求元のホストサーバから当該ストレージノードへアクセスするネットワーク経路とを指定した取得情報を、要求元のホストサーバへ通知するレプリカ検索手段を備え、前記ホストサーバは、前記メタサーバに対してファイル取得要求を送信し、その応答として通知される前記取得情報に基づいて前記ストレージノードをアクセスして部分データを取得することを特徴とする請求項1または2に記載のデータ分散格納システム。
  4. 前記メタサーバは、前記ホストサーバからのファイル取得要求で要求されたファイルを構成する部分データを格納する複数の前記ストレージノードの中から負荷分散を考慮して1つのストレージノードを選択するレプリカ取得先選択手段を備えることを特徴とする請求項3に記載のデータ分散格納システム。
  5. 前記メタサーバは、前記レプリカ取得先選択手段で選択されたストレージノードとファイル取得要求元のホストサーバとの間の複数のネットワーク経路を計算し、該複数のネットワーク経路の中から負荷分散を考慮して1つのネットワーク経路を選択するレプリカ取得ネットワーク経路決定手段を備えることを特徴とする請求項4に記載のデータ分散格納システム。
  6. 前記レプリカ配置決定手段は、ファイルを構成する連続する複数の部分データが異なるネットワーク経路でアクセス可能な異なるストレージノードに配置されるような配置を決定し、前記レプリカ検索手段は、前記ホストサーバにおける連続する複数の部分データの読み出しが異なるストレージノードおよび異なるネットワーク経路を用いてパイプライン的に行えるように、ホストサーバが部分データを取得するストレージノードおよびそのネットワーク経路を決定することを特徴とする請求項3に記載のデータ分散格納システム。
  7. 前記メタサーバは、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードのリストを要求元のホストサーバへ通知するレプリカ検索手段を備え、前記ホストサーバは、前記メタサーバから通知されたリストに記載されたストレージノードをアクセスして部分データを取得するファイル取得手段を備えることを特徴とする請求項1または2に記載のデータ分散格納システム。
  8. 前記ホストサーバは、前記メタサーバから通知されたリストに記載された部分データを格納する複数の前記ストレージノードの中から負荷分散を考慮して1つのストレージノードを選択するレプリカ取得先選択手段を備えることを特徴とする請求項7に記載のデータ分散格納システム。
  9. 前記ホストサーバは、前記レプリカ取得先選択手段で選択されたストレージノードと自ホストサーバとの間の複数のネットワーク経路を計算し、該複数のネットワーク経路の中から負荷分散を考慮して1つのネットワーク経路を選択するレプリカ取得ネットワーク経路決定手段を備えることを特徴とする請求項8に記載のデータ分散格納システム。
  10. 前記レプリカ配置決定手段は、ファイルを構成する連続する複数の部分データが異なるネットワーク経路でアクセス可能な異なるストレージノードに配置されるような配置を決定し、前記ファイル取得手段は、前記ホストサーバにおける連続する複数の部分データの読み出しが異なるストレージノードおよび異なるネットワーク経路を用いてパイプライン的に行えるように、部分データを取得するストレージノードおよびそのネットワーク経路を決定することを特徴とする請求項7に記載のデータ分散格納システム。
  11. 複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークとを備えたデータ分散格納システムにおけるデータ分散格納方法であって、メタサーバが、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するファイル格納ステップを含むことを特徴とするデータ分散格納方法。
  12. 前記ファイル格納ステップは、前記エッジスイッチと前記ストレージノードとの接続関係を示すエッジスイッチ構成情報を記憶するエッジスイッチ構成情報記憶手段を参照して、納対象となるファイルを複数に分割し、個々の部分データを多重化し、多重化した部分データが同じエッジスイッチに接続されたストレージノードに格納されないような配置を決定するレプリカ配置決定ステップと、該レプリカ配置決定ステップで決定された配置に従って、多重化された部分データを前記ストレージノードに格納し、前記ファイルを構成する部分データの前記ストレージノードへの配置状況をレプリカ配置記憶手段に記憶するレプリカ配置処理ステップとを含むことを特徴とする請求項11に記載のデータ分散格納方法。
  13. 前記メタサーバが、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードと要求元のホストサーバから当該ストレージノードへアクセスするネットワーク経路とを指定した取得情報を、要求元のホストサーバへ通知するレプリカ検索ステップと、前記ホストサーバが、前記メタサーバに対してファイル取得要求を送信し、その応答として通知される前記取得情報に基づいて前記ストレージノードをアクセスして部分データを取得するファイル取得ステップとを含むことを特徴とする請求項11または12に記載のデータ分散格納方法。
  14. 前記メタサーバが、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードのリストを要求元のホストサーバへ通知するレプリカ検索ステップと、前記ホストサーバが、前記メタサーバから通知されたリストに記載されたストレージノードをアクセスして部分データを取得するファイル取得ステップとを含むことを特徴とする請求項11または12に記載のデータ分散格納方法。
  15. 複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備えるデータ分散格納システムにおける前記メタサーバを構成するコンピュータを、
    前記エッジスイッチと前記ストレージノードとの接続関係を示すエッジスイッチ構成情報を記憶するエッジスイッチ構成情報記憶手段を参照して、格納対象となるファイルを複数に分割し、個々の部分データを多重化し、多重化した部分データが同じエッジスイッチに接続されたストレージノードに格納されないような配置を決定するレプリカ配置決定手段と、
    該レプリカ配置決定手段で決定された配置に従って、多重化された部分データを前記ストレージノードに格納し、前記ファイルを構成する部分データの前記ストレージノードへの配置状況をレプリカ配置記憶手段に記憶するレプリカ配置処理手段として機能させるためのプログラム。
  16. 前記コンピュータを、さらに、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードと要求元のホストサーバから当該ストレージノードへアクセスするネットワーク経路とを指定した取得情報を、要求元のホストサーバへ通知するレプリカ検索手段として機能させるための請求項15に記載のプログラム。
  17. 前記コンピュータを、さらに、前記ホストサーバからのファイル取得要求で要求されたファイルを構成する部分データを格納する複数の前記ストレージノードの中から負荷分散を考慮して1つのストレージノードを選択するレプリカ取得先選択手段として機能させるための請求項16に記載のプログラム。
  18. 前記コンピュータを、さらに、前記レプリカ取得先選択手段で選択されたストレージノードとファイル取得要求元のホストサーバとの間の複数のネットワーク経路を計算し、該複数のネットワーク経路の中から負荷分散を考慮して1つのネットワーク経路を選択するレプリカ取得ネットワーク経路決定手段として機能させるための請求項17に記載のプログラム。
  19. 前記コンピュータを、さらに、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードのリストを要求元のホストサーバへ通知するレプリカ検索手段として機能させるための請求項15に記載のプログラム。
  20. 複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備え、前記メタサーバは、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードと要求元のホストサーバから当該ストレージノードへアクセスするネットワーク経路とを指定した取得情報を、要求元のホストサーバへ通知するレプリカ検索手段を備えたデータ分散格納システムにおける前記ホストサーバを構成するコンピュータを、前記メタサーバに対してファイル取得要求を送信し、その応答として通知される前記取得情報に基づいて前記ストレージノードをアクセスして部分データを取得するファイル取得手段として機能させるためのプログラム。
  21. 複数のストレージノードと、複数のホストサーバと、それぞれ異なる前記ストレージノードおよび前記ホストサーバに接続される複数のエッジスイッチと、前記複数のエッジスイッチ間を複数のネットワーク経路で接続するネットワークと、多重化されたデータを同じデータが同じエッジスイッチに接続されたストレージノードに格納されないように複数のストレージノードに分散して格納するメタサーバとを備え、前記メタサーバは、前記ホストサーバからのファイル取得要求に応答して、要求されたファイルを構成する部分データが格納されている前記ストレージノードのリストを要求元のホストサーバへ通知するレプリカ検索手段を備えたデータ分散格納システムにおける前記ホストサーバを構成するコンピュータを、前記メタサーバに対してファイル取得要求を送信し、その応答として通知される前記リストに記載されたストレージノードをアクセスして部分データを取得するファイル取得手段として機能させるためのプログラム。
JP2009547948A 2007-12-28 2008-10-23 データ分散格納方法およびデータ分散格納システム Active JP5445138B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009547948A JP5445138B2 (ja) 2007-12-28 2008-10-23 データ分散格納方法およびデータ分散格納システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007339575 2007-12-28
JP2007339575 2007-12-28
JP2009547948A JP5445138B2 (ja) 2007-12-28 2008-10-23 データ分散格納方法およびデータ分散格納システム
PCT/JP2008/069218 WO2009084314A1 (ja) 2007-12-28 2008-10-23 データ分散格納方法およびデータ分散格納システム

Publications (2)

Publication Number Publication Date
JPWO2009084314A1 true JPWO2009084314A1 (ja) 2011-05-12
JP5445138B2 JP5445138B2 (ja) 2014-03-19

Family

ID=40824037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009547948A Active JP5445138B2 (ja) 2007-12-28 2008-10-23 データ分散格納方法およびデータ分散格納システム

Country Status (2)

Country Link
JP (1) JP5445138B2 (ja)
WO (1) WO2009084314A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101374655B1 (ko) 2010-09-29 2014-03-24 네이버비즈니스플랫폼 주식회사 파일 볼륨을 청크 단위로 분산 처리하는 시스템 및 방법
JP5271392B2 (ja) * 2011-07-19 2013-08-21 日本電信電話株式会社 分散ファイル管理システム、分散ファイル配置方法及びプログラム
US10177907B2 (en) * 2015-07-20 2019-01-08 Sony Corporation Distributed object routing
CN110162441A (zh) * 2019-04-16 2019-08-23 平安普惠企业管理有限公司 应用系统的集中监控方法及装置、电子设备、存储介质
CN114650198B (zh) * 2022-03-31 2023-01-06 联想(北京)有限公司 确定存储架构的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976134B1 (en) * 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US20030079018A1 (en) * 2001-09-28 2003-04-24 Lolayekar Santosh C. Load balancing in a storage network
US7421509B2 (en) * 2001-09-28 2008-09-02 Emc Corporation Enforcing quality of service in a storage network
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
WO2009084314A1 (ja) 2009-07-09
JP5445138B2 (ja) 2014-03-19

Similar Documents

Publication Publication Date Title
TWI813743B (zh) 在網路路由環境中的獨立資料儲存空間
JP4237515B2 (ja) ネットワークストレージ仮想化方法およびネットワークストレージシステム
JP4520802B2 (ja) ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
US6925504B1 (en) Methods and apparatus for obtaining content from a content-originating device within a computerized network
US9071532B2 (en) Method for discovery and load balancing of path computation elements based on transport plane link metrics
JP6438719B2 (ja) 通信システム、および、通信プログラム
US20170097941A1 (en) Highly available network filer super cluster
JP5445138B2 (ja) データ分散格納方法およびデータ分散格納システム
JP2014044677A (ja) 送信制御プログラム、通信ノード、および送信制御方法
KR20130137897A (ko) 비대칭형 클러스터 파일 시스템의 데이터 관리 방법
JP5136585B2 (ja) 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム
JP4815547B2 (ja) データ同期システム、データ同期方法、及び同期管理サーバ
US9544371B1 (en) Method to discover multiple paths to disk devices cluster wide
JP6011786B2 (ja) 分散ストレージシステム、分散ストレージデータ配置制御方法及び分散ストレージデータ配置制御用プログラム
JP6540063B2 (ja) 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム
JP4309321B2 (ja) ネットワークシステムの運用管理方法及びストレージ装置
JPWO2004088931A1 (ja) データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法
JP2013105227A (ja) P2P型Webプロキシネットワークシステム
JP2003271440A (ja) コンテンツ配信管理システム
JP5168333B2 (ja) P2p端末及びコンテンツ配信システム
WO2020095982A1 (ja) 制御装置及び制御方法
CN108390780B (zh) 用于处理信息的方法和装置
JP5783008B2 (ja) ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム
JP2009230686A (ja) コンテンツ管理サーバ及びコンテンツ管理プログラム
JP2006003962A (ja) ネットワークストレージシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Ref document number: 5445138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150