JP6311368B2 - データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム - Google Patents

データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム Download PDF

Info

Publication number
JP6311368B2
JP6311368B2 JP2014048332A JP2014048332A JP6311368B2 JP 6311368 B2 JP6311368 B2 JP 6311368B2 JP 2014048332 A JP2014048332 A JP 2014048332A JP 2014048332 A JP2014048332 A JP 2014048332A JP 6311368 B2 JP6311368 B2 JP 6311368B2
Authority
JP
Japan
Prior art keywords
storage
data
block data
storage device
stored
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.)
Active
Application number
JP2014048332A
Other languages
English (en)
Other versions
JP2015172855A (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 JP2014048332A priority Critical patent/JP6311368B2/ja
Publication of JP2015172855A publication Critical patent/JP2015172855A/ja
Application granted granted Critical
Publication of JP6311368B2 publication Critical patent/JP6311368B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願発明は、通信ネットワークを介して、データをストレージ装置へ格納する処理を制御するデータ格納制御システム等に関する。
近年、クラウドコンピューティング環境を利用したサービスが急速に広がってきている。クラウドコンピューティング環境においては、様々なデータが、通信ネットワーク(以降、単にネットワークと称する)を介して、所定のストレージ装置に格納される。したがって、ネットワークを介してデータを所定のストレージ装置に格納する処理に関して、性能及び信頼性を向上する技術に対する期待が高まってきている。
このような技術に関連する技術として、特許文献1には、ファイルサーバを複数個同時に使用する場合に、システム容量を拡張できるだけでなく、システムの負荷を全体に分散させることにより、1つのファイルに対するアクセス能力を向上させたファイルシステムが開示されている。
また、特許文献2には、所定の汎用マシンにファイルを転送する場合に、予めその汎用マシンへのファイル転送において利用可能とされた汎用サーバのうちの何れかが転送不可能な状況であった場合でも、他の汎用サーバを利用してファイル転送を行うようにしたファイルシステムが開示されている。
さらに、特許文献3には、ファイルサーバと分散ファイルシステムを利用するユーザとの間を仲介する管理サーバにおいて発生した障害によって、システム全体のサービスが停止することを回避することを可能とした分散ファイルシステムが開示されている。
特開2003-150435号公報 特開2003-345699号公報 特開2012-8934号公報
クラウドコンピューティング環境を構築するソフトウェアであるOpenStack(登録商標)には、クラウドストレージシステムを提供するSwift(登録商標)というコンポーネントが含まれている。このSwiftにより構築されたコンピュータシステムは、プロキシノード(プロキシサーバ)、及び、3台以上のストレージノード(ストレージサーバ)を備えている。
係るコンピュータシステムにおいては、プロキシノードは、クライアント端末装置から受信したデータを、64KB(キロバイト)ブロックデータに分割したのち、例えば3多重(3レプリカ)化して、このブロックデータを3台のストレージノードに順次送信する。プロキシノードは、送信先の3台のストレージノードごとに、所定の数の64KBブロックデータを、送信するまで一時的に記憶するキューを備えている。そして、この3つのキューは、これら3つのキューが共に次のブロックデータを取り込むことが可能な状態にある場合に、次のブロックデータを取り込む機能を有している。
一般的なクラウドコンピューティングシステムは、災害対策等を考慮して、遠隔地にあるデータセンターを含んでいることが多い。したがって、クラウドコンピューティングシステムによっては、プロキシノードから論理的に近い場所にあるストレージノードと、遠い場所にあるストレージノードとが混在する場合がある。このような場合、論理的に遠い場所にあるストレージノードへブロックデータを転送する時間が長くなる。このため、当該ストレージノードに関するキューにブロックデータが滞留し、次のブロックデータを取り込むことができない滞留状態が発生する。この結果、クラウドコンピューティングシステムの性能が低下し、クラウドサービスの提供に支障が出る虞がある。上述した特許文献1乃至3が開示した技術は、この問題を解決することはできない。
本願発明の主たる目的は、この問題を解決した、データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラムを提供することである。
本願発明に係るデータ格納制御システムは、ネットワークによって接続された複数のストレージ装置の中の、第一のストレージ装置に格納される格納データの一部である1以上のブロックデータを受信し、受信した前記ブロックデータを所定の時間格納したのち、格納した前記ブロックデータを、前記第一のストレージ装置に転送する転送手段を備える、前記複数のストレージ装置の中の1以上の第二のストレージ装置と、前記格納データを受信し、受信した前記格納データを複数の前記ブロックデータに分割し、分割した前記ブロックデータを記憶手段に格納する分割格納手段と、前記記憶手段に格納された前記ブロックデータの個数が所定の条件を満たす場合に、前記ブロックデータが前記記憶手段に滞留した滞留状態であることを検出する検出手段と、前記複数のストレージ装置の中から、1以上の前記第二のストレージ装置を、所定の基準に基づき選択する選択手段と、前記検出手段が前記滞留状態を検出した場合に、前記記憶手段から読み出した前記ブロックデータを、前記第一のストレージ装置、及び、1以上の前記第二のストレージ装置に分散して格納する分散格納手段と、を備えるデータ格納制御装置と、を有することを特徴とする。
上記目的を達成する他の見地において、本願発明のデータ格納御方法は、ネットワークによって接続された複数のストレージ装置の中の1以上の第二のストレージ装置によって、前記複数のストレージ装置の中の、第一のストレージ装置に格納される格納データの一部である1以上のブロックデータを受信し、受信した前記ブロックデータを所定の時間格納したのち、格納した前記ブロックデータを、前記第一のストレージ装置に転送し、データ格納制御装置によって、前記格納データを受信し、受信した前記格納データを複数の前記ブロックデータに分割し、分割した前記ブロックデータを記憶手段に格納し、前記記憶手段に格納された前記ブロックデータの個数が所定の条件を満たす場合に、前記ブロックデータが前記記憶手段に滞留した滞留状態であることを検出し、前記複数のストレージ装置の中から、1以上の前記第二のストレージ装置を、所定の基準に基づき選択し、前記滞留状態を検出した場合に、前記記憶手段から読み出した前記ブロックデータを、前記第一のストレージ装置、及び、1以上の前記第二のストレージ装置に分散して格納することを特徴とする。
また、上記目的を達成する更なる見地において、本願発明に係るデータ格納制御プログラムは、ネットワークによって接続された複数のストレージ装置の中の1以上の第二のストレージ装置が、前記複数のストレージ装置の中の、第一のストレージ装置に格納される格納データの一部である1以上のブロックデータを受信し、受信した前記ブロックデータを所定の時間格納したのち、格納した前記ブロックデータを、前記第一のストレージ装置に転送する場合に、前記格納データを受信し、受信した前記格納データを複数の前記ブロックデータに分割し、分割した前記ブロックデータを記憶手段に格納する分割格納処理と、前記記憶手段に格納された前記ブロックデータの個数が所定の条件を満たす場合に、前記ブロックデータが前記記憶手段に滞留した滞留状態であることを検出する検出処理と、前記複数のストレージ装置の中から、1以上の前記第二のストレージ装置を、所定の基準に基づき選択する選択処理と、前記検出処理が前記滞留状態を検出した場合に、前記記憶手段から読み出した前記ブロックデータを、前記第一のストレージ装置、及び、1以上の前記第二のストレージ装置に分散して格納する分散格納処理と、をコンピュータに実行させることを特徴とする。
更に、本発明は、係るデータ格納制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
本願発明は、ネットワークを介して、データをストレージ装置へ格納する処理を行う際に、データ転送性能の低下を回避することを可能とする。
本願発明の第1の実施形態に係るデータ格納制御システムの構成を示すブロック図である。 本願発明の第1の実施形態に係るデータ格納制御システムが格納データをストレージ装置に格納する動作を示すフローチャートである。 本願発明の第1の実施形態に係るデータ格納制御システムが2つのストレージ装置に分散格納された格納データを復元する動作を示すフローチャートである。 本願発明の第1の実施形態に係るデータ格納制御装置からストレージ装置へのブロックデータの格納例を示す図である。 本願発明の第1の実施形態に係る2つのストレージ装置に分散格納された格納データの復元例を示す図である。 本願発明の第2の実施形態に係るデータ格納制御システムの構成を示すブロック図である。 本願発明の各実施形態のデータ格納制御装置及びストレージ装置を実行可能な情報処理装置の構成を示すブロック図である。
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、第1の実施形態に係るデータ格納制御システム1の構成を概念的に示すブロック図である。本実施形態に係るデータ格納制御システム1は、データ格納制御装置10、ストレージ装置20−1乃至3、ストレージ装置30−1乃至n(nは1以上の整数)、及び、クライアント端末装置40を有する。データ格納制御装置10、ストレージ装置20−1乃至3、ストレージ装置30−1乃至n、及び、クライアント端末装置40は、通信可能にネットワークに接続されている。尚、データ格納制御システム1がSwift環境を構築する場合、データ格納制御装置10がプロキシノードに相当し、ストレージ装置20−1乃至3がストレージノードに相当する。
データ格納制御装置10は、分割格納部11、書き込みキュー12−1乃至4、検出部13、選択部14、及び、分散格納部15を備えている。分割格納部11、検出部13、選択部14、及び、分散格納部15は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。書き込みキュー12−1乃至4は、電子回路あるいはコンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによってアクセス制御が行われる、電子メモリ等の記憶デバイスである。
分割格納部11は、クライアント端末装置40から、ストレージ装置20−1乃至3に格納する格納データを受信する。分割格納部11は、係る格納データを、例えば64KBのブロックデータに分割する。このブロックデータのサイズは、64KB以外の値でもよい。分割格納部11は、それぞれのブロックデータを、順次、書き込みキュー12−1乃至3の全てに格納する。尚、書き込みキュー12−1乃至3の少なくとも何れかにおいて、次のブロックデータを受け付けることができない滞留状態が発生している場合は、分割格納部11は、書き込みキュー12−1乃至3へブロックデータを格納することを保留する。
分割格納部11は、係る格納データを識別可能な識別子を、分散格納部15へ入力する。格納データを識別可能な識別子としては、格納データに関するファイル名、あるいは、更新日時等がある。
分割格納部11はまた、データ格納装置10が実行するファイルシステムによって生成された、係る格納データが含むブロックデータの全てに関するメタデータを基に第1のハッシュ値を算出する。すなわちこの第1のハッシュ値は、格納データが含むブロックデータが1つも欠落しておらず、全てそろっていることを示しており、ブロックデータが1つでも欠落した場合は、ブロックデータが全てそろっている場合とは異なる値となる。尚、分割格納部11は、メタデータを基に算出する以外の方法により、この第1のハッシュ値を算出してもよい。分割格納部11は、この第1のハッシュ値を、分散格納部15へ入力する。
検出部13は、書き込みキュー12−1乃至3の少なくとも何れかにおいて、格納されたブロックデータの個数が所定の条件を満たす場合に、当該書き込みキューにおいて滞留状態が発生したことを検出する。検出部13は、例えば、書き込みキュー12−1乃至3がブロックデータを格納するエントリ数が10個である場合に、書き込みキュー12−1乃至3の少なくともいずれかに格納されたブロックデータの個数が10個になった際に、滞留状態を検出してもよい。あるいは、検出部13は、格納したブロックデータの数が最も多い書き込みキューと最も少ない書き込みキューにおける、ブロックデータの格納数に関する差分が、所定の個数、例えば5個以上になった際に、滞留状態を検出してもよい。検出部13は、係る滞留状態を検出したことを、分割格納部11、選択部14、及び、分散格納部15へ通知する。
選択部14は、検出部13から、書き込みキュー12−i(iは1乃至3の少なくともいずれかの整数)において滞留状態が発生したことを受信した場合、ストレージ装置30−1乃至nの少なくとも何れかを、所定の基準に基づき選択する。選択部14がここで選択するストレージ装置は、データ格納制御装置10がストレージ装置20−iに対してブロックデータを送信する際に、当該ブロックデータを分散させて送信するために一時的に使用するストレージ装置である。
選択部14は、ここでは、ネットワークにおいて、ストレージ装置20−iと論理的に近接するストレージ装置を、ストレージ装置30−1乃至nの中から選択する。この場合、選択部14は、ストレージ装置20−1乃至3のそれぞれに関して、論理的に近接する、ストレージ装置30−1乃至nの少なくとも何れかを識別する識別子の一覧情報を記憶してもよい。即ち、この一覧情報は、ストレージ装置20−1乃至3のそれぞれが位置するゾーンごとに、ストレージ装置30−1乃至nの少なくとも何れかが位置するかを示した情報である。そして、選択部14は、係る一覧情報に識別子が記載された、ストレージ装置30−1乃至nの少なくとも何れかを選択する。
選択部14は、あるいは、ストレージ装置20−iのIP(Internet Protocol)アドレスが示す値との差分が閾値以内の値であるIPアドレスが付与されたストレージ装置を、ストレージ装置30−1乃至nの中から選択してもよい。その理由は、一般的に、ネットワークにおいて論理的に近接するストレージ装置には、それぞれ近い値のIPアドレスが割り当てられることが多いからである。選択部14は、選択したストレージ装置30−1乃至nの少なくとも何れかを識別する識別子を、分散格納部15へ通知する。
分散格納部15は、書き込みキュー12−1乃至3からブロックデータを順次読み出して、読み出したブロックデータを、それぞれ、ネットワークを介して、ストレージ装置20−1乃至3に格納する。
本実施形態に係るデータ格納制御装置10からストレージ装置20−1乃至3へのブロックデータの格納例を図4に示す。図4に示す例では、ストレージ装置20−1は、格納データに関するブロックデータ1乃至9を格納済みであり、書き込みキュー12−1は、送信待ち状態にあるブロックデータ10乃至12を格納している。ストレージ装置20−2は、ブロックデータ1乃至7を格納済みであり、書き込みキュー12−2は、送信待ち状態にあるブロックデータ8乃至12を格納している。ストレージ装置20−3は、ブロックデータ1乃至2を格納済みであり、書き込みキュー12−3は、送信待ち状態にあるブロックデータ3乃至12を格納している。
図4に示す例では、書き込みキュー12−1乃至3がブロックデータを格納するエントリ数は10個である。そして、この場合、検出部13は、10個のブロックデータ3乃至12を格納している書き込みキュー12−3において滞留状態が発生していることを検出する。
分散格納部15は、検出部13から、係る滞留状態が発生していることを受信したのち、書き込みキュー12−3に格納された10個のブロックデータのうち、半分である5個のブロックデータを、書き込みキュー12−4へ移動する。書き込みキュー12−4は、滞留状態が発生していない場合は使用しない予備の書き込みキューである。尚、分散格納部15は、書き込みキュー12−4が使用中である場合は、書き込みキュー12−4が未使用の状態になるまで待機する。図4に示す例の場合、分散格納部15は、ブロックデータ3、5、7、9、及び、11を、書き込みキュー12−3から書き込みキュー12−4へ移動する。
分散格納部15は、書き込みキュー12−1からブロックデータ10乃至12を順次読み出して、読み出したブロックデータを、ストレージ装置20−1に格納する。分散格納部15は、書き込みキュー12−2からブロックデータ8乃至12を順次読み出して、読み出したブロックデータを、ストレージ装置20−2に格納する。分散格納部15は、書き込みキュー12−3からブロックデータ4、6、8、10、及び、12を順次読み出して、読み出したブロックデータを、ストレージ装置20−3に格納する。分散格納部15は、書き込みキュー12−4からブロックデータ3、5、7、9、及び、11を順次読み出して、読み出したブロックデータを、ストレージ装置30−1に格納する。尚、ストレージ装置30−1は、選択部14によって、ストレージ装置30−1乃至nの中から選択された、ストレージ装置20−3と論理的に近接するストレージ装置である。
分散格納部15は、ストレージ装置20−1乃至3、及び、ストレージ装置30−1にブロックデータを送信する際に、ブロックデータに、分割格納部11から入力された、格納データを識別可能な識別子を付加する。
分散格納部15は、また、ストレージ装置20−1乃至3、及び、ストレージ装置30−1にブロックデータを送信する際に、ブロックデータに、そのブロックデータを格納する格納先を識別可能な識別子を付加する。すなわち、分散格納部15は、ストレージ装置20−1乃至3へ送信するブロックデータには、それぞれ、ストレージ装置20−1乃至3を識別する識別子を付加する、尚、分散格納部15は、ストレージ装置30−1へ送信するブロックデータには、ストレージ装置30−1ではなくストレージ装置20−3を識別する識別子を付加する。その理由は、ストレージ装置30−1へ送信するブロックデータは、最終的に、ストレージ装置20−3に格納されるからである。係る格納先を識別可能な識別子としては、格納先であるストレージ装置の装置名、あるいは、IPアドレス等がある。
分散格納部15は、さらに、ストレージ装置20−1乃至3、及び、ストレージ装置30−1にブロックデータを送信する際に、ブロックデータに、分割格納部11から入力された第1のハッシュ値を付加する。
ストレージ装置30−1は、転送部31−1を備えている。ストレージ装置30−2(図示せず)乃至nも、ストレージ装置30−1と同様の構成である。転送部31−1は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。
転送部31−1は、分散格納部15によってストレージ装置30−1に格納された、格納データに含まれる一部のブロックデータを、その格納データに関する本来の格納先であるストレージ装置に転送する。本来の格納先であるストレージ装置は、転送部31−1から、その格納データに関する未入手のブロックデータを入手することにより、係る格納データを復元することができる。
本実施形態に係る2つのストレージ装置に分散格納された格納データの復元例を図5に示す。ストレージ装置20−3は、図4に示す状態において、分散格納部15が上述した処理を行った結果、ブロックデータ1、2、4、6、8、10、及び12を格納している。また、ストレージ装置20−3は、分散格納部15が行う処理によって、ブロックデータ13から格納データに関する最後のブロックデータまでを格納しているものとする。
ストレージ装置20−3は、実行するファイルシステム22−3によって、これらのブロックデータを、ブロックデータ格納領域221−3に格納している。ストレージ装置20−3は、ブロックデータ格納領域221−3において、本来であれば、ブロックデータ3、5、7、9、及び、11が格納される領域には、全て0を格納している。ファイルシステム22−3は、ブロックデータ3、5、7、9、及び、11が欠落した状態にある格納データに関するメタデータを生成して、そのメタデータをメタデータ格納領域220−3に格納する。
ストレージ装置30−1は、分散格納部15が上述した処理を行った結果、ブロックデータ3、5、7、9、及び11を格納している。ストレージ装置30−1は、実行するファイルシステム32−1によって、これらのブロックデータを、ブロックデータ格納領域321−1に格納している。ストレージ装置30−1は、ブロックデータ格納領域321−1において、本来であれば、ブロックデータ3、5、7、9、及び、11を除くブロックデータが格納される領域には、全て0を格納している。ファイルシステム32−1は、ブロックデータ3、5、7、9、及び、11を除くブロックデータが欠落した状態にある格納データに関するメタデータを生成して、メタデータをメタデータ格納領域320−1に格納する。
ストレージ装置30−1における転送部31−1は、ブロックデータ3、5、7、9、及び、11を除くブロックデータが欠落した状態にある格納データに関するメタデータを基に、第2のハッシュ値を算出する。すなわち、この第2のハッシュ値は、格納データが包含するブロックデータの一部しかそろっていないことを示している。尚、転送部31−1は、メタデータを基に算出する以外の方法であり、かつ、分割格納部11が第1のハッシュ値を算出したときと同様の方法により、この第2のハッシュ値を算出してもよい。
転送部31−1は、同一の格納データに関する第1及び第2のハッシュ値が異なることを確認したのち、格納したブロックデータに関する本来の格納先がストレージ装置20−3であることを確認する。転送部31−1は、ストレージ装置30−1が所定の時間格納した、ブロックデータ3、5、7、9、及び、11を、ストレージ装置20−3へ転送する。転送部31−1は、これらブロックデータの転送を完了したのち、これらブロックデータを、ストレージ装置30−1から削除する。
ストレージ装置20−3は、転送部31−1から転送された、ブロックデータ3、5、7、9、及び、11を、ブロックデータ格納領域221−3における、これらブロックデータが本来格納される領域に格納する。
尚、ストレージ装置20−1乃至3も、ストレージ装置30−1における転送部31−1が備える機能と同様の機能を備えている。本実施形態の例では、ストレージ装置20−1乃至3は、格納したブロックデータに関する本来の格納先が自装置であるため、ストレージ装置30−1が行う、格納したブロックデータを転送する処理を行わない。
次に図2のフローチャートを参照して、本実施形態に係るデータ格納制御システム1が格納データをストレージ装置に格納する動作(処理)について詳細に説明する。
分割格納部11は、クライアント端末装置40から受信した格納データを、所定の大きさのブロックデータに分割する(ステップS101)。検出部13は、書き込みキュー12−i(iは1乃至3の少なくともいずれかの整数)において滞留状態が発生しているか否かを確認し、確認した結果を、分割格納部11、選択部14、及び、分散格納部15へ通知する(ステップS102)。
滞留状態が発生していない場合(ステップS103でNo)、分割格納部11は、次のブロックデータを、書き込みキュー12−1乃至3に格納する(ステップS104)。分散格納部15は、書き込みキュー12−1乃至3から、格納されたブロックデータを読み出して、読み出したブロックデータを、それぞれ、ストレージ装置20−1乃至3に格納し(ステップS105)、処理はステップS112へ進む。
滞留状態が発生している場合(ステップS103でYes)、分散格納部15は、書き込みキュー12−4が使用中であるか否かを確認する。書き込みキュー12−4が使用中である場合(ステップS106でYes)、分散格納部15は、所定の時間待機して(ステップS107)、処理はS106に戻る。書き込みキュー12−4が使用中でない場合(ステップS106でNo)、分散格納部15は、書き込みキュー12−iに格納されたブロックデータの半分を、書き込みキュー12−4に移動する(ステップS108)。
分割格納部11は、次のブロックデータを、書き込みキュー12−1乃至3に格納する(ステップS109)。選択部14は、ストレージ装置30−1乃至nの中から、ストレージ装置30−j(jは1乃至nの少なくともいずれかの整数)を選択し、選択結果を、分散格納部15へ通知する(ステップS110)。分散格納部15は、書き込みキュー12−1乃至4に格納されたブロックデータを、ストレージ装置20−1乃至3、及び、30−jに格納する(ステップS111)。
処理したブロックデータが、格納データに関する最後のブロックデータでない場合(ステップS112でNo)、処理はステップS102へ戻る。処理したブロックデータが、格納データに関する最後のブロックデータである場合(ステップS112でYes)、全体の処理は終了する。
次に図3のフローチャートを参照して、本実施形態に係るデータ格納制御システム1が2つのストレージ装置に分散格納された格納データを復元する動作(処理)について詳細に説明する。
ストレージ装置30−k(kは1乃至nのいずれかの整数)は、受信したデータブロックを格納する(ステップS201)。転送部31−kは、ストレージ装置30−kが実行するファイルシステムが格納したブロックデータから生成したメタデータを基に、第2のハッシュ値を算出する(ステップS202)。転送部31−kは、第2のハッシュ値を、格納データ全体に関するメタデータから分割格納部11が算出した第1のハッシュ値と比較する(ステップS203)。
両方のハッシュ値が一致している場合(ステップS204でYes)、全体の処理は終了する。両方のハッシュ値が一致していない場合(ステップS204でNo)、転送部31−kは、受信したブロックデータの格納先を確認する(ステップS205)。
格納先が自装置(すなわちストレージ装置30−k)である場合(ステップS206でYes)、全体の処理は終了する。格納先が自装置でない場合(ステップS206でNo)、転送部31−kは、受信したブロックデータの格納先であるストレージ装置に受信したブロックデータを転送する(ステップS207)。転送部31−kは、受信したブロックデータを、ストレージ装置30−kから削除し(ステップS208)、全体の処理は終了する。
本実施形態に係るデータ格納制御システム1は、ネットワークを介して、データをストレージ装置へ格納する処理を行う際に、データ転送性能の低下を回避することができる。その理由は、検出部13が第1のストレージ装置に格納する格納データが含むブロックデータに関する滞留状態を検出した場合、分散格納部15が、当該ブロックデータを、第1のストレージ装置と、選択部14により選択された第2のストレージ装置とに分散格納するからである。そして、第2のストレージ装置が第1のストレージ装置に、格納したブロックデータを転送することにより、第1のストレージ装置が格納データを復元するからである。
例えばSwift環境を構築したコンピュータシステムにおいて、格納データを多重化して格納する複数のストレージ装置の何れかに格納する格納データに関して、データ転送が滞留した場合、当該ストレージ装置以外のストレージ装置へのデータ転送処理においても、待ち状態が発生する。このため、係るコンピュータシステムの性能が大きく低下する虞がある。
これに対して、本実施形態に係るデータ格納制御システム1は、検出部13が、例えば書き込みキュー12−3において、ブロックデータに関する滞留状態が発生していることを検出した場合、選択部14がストレージ装置30−1乃至nの中から、所定の基準に従い、例えばストレージ装置30−1を選択する。そして、分散格納部15は、キュー12−3に格納されているブロックデータの半分をキュー12−4に移動する。分散格納部15は、キュー12−3及び4に格納されているブロックデータを、それぞれ、ストレージ装置20−3及び30−1に格納する。この場合、分散格納部15がキュー12−3から読み出してストレージ装置20−3に格納するプロックデータの個数は、滞留状態が検出されたときと比べて半分に減少する。これにより、本実施形態に係るデータ格納制御システム1は、係る滞留状態を短時間で解消できるため、係るコンピュータシステムの性能が低下することを回避することができる。
尚、本実施形態では、データ格納制御装置10が予備のキュー12−4を備えているが、データ格納制御装置10は、必ずしもキュー12−4を備えなくてもよい。この場合、例えば、分散格納部15がキュー12−3から読み出したブロックデータを、ストレージ装置20−3及び30−1に対して交互に送信すればよい。
そして、ストレージ装置30−1における転送部31−1は、ストレージ装置30−1が格納した、本来はストレージ装置20−3が格納するブロックデータを、ストレージ装置20−3へ転送する。ストレージ装置20−3は、格納データが含む全てのブロックデータを入手することにより、格納データを復元することができる。
また、本実施形態に係るデータ格納制御システム1では、検出部13は、ストレージ装置20−3と、ネットワークにおいて論理的に近接するストレージ装置30−1を選択する。したがって、データ格納制御システム1は、ストレージ装置30−1がストレージ装置20−3に対してブロックデータを転送する際の転送時間、及び、この転送処理がネットワークに与える負荷の大きさを最小限に抑えることができる。
尚、本実施形態では、便宜上、書き込みキュー12−1乃至3のいずれか1つにおいて滞留状態が発生し、検出部13が、ストレージ装置30−1乃至nの中から1つのストレージ装置を選択する場合を示したが、データ格納制御システム1が行う処理は、係る場合に限定されない。例えば、書き込みキュー12−1乃至3における2つ以上のキューにおいて滞留状態が発生し、検出部13が、滞留状態が発生したキューごとに、ストレージ装置30−1乃至nの中からストレージ装置を選択してもよい。あるいは、滞留状態が発生したキューに関して、検出部13が、2つ以上のストレージ装置を選択することにより、分散格納部15が、分散性をさらに高めて、ブロックデータをストレージ装置に格納する処理を行ってもよい。
<第2の実施形態>
図6は第2の実施形態のデータ格納制御システム2の構成を概念的に示すブロック図である。
本実施形態のデータ格納制御システム2は、データ格納制御装置50、及び、m個の第二のストレージ装置70−1乃至mを有している。
第二のストレージ装置70−1乃至mは、それぞれ、転送部71−1乃至mを備えている。
転送部71−1乃至mは、ネットワークによって接続された複数のストレージ装置の中の、第一のストレージ装置60に格納される格納データの一部である、1以上のブロックデータを受信する。転送部71−1乃至mは、係るブロックデータを所定の時間格納したのち、格納したブロックデータを、第一のストレージ装置60に転送する。
データ格納制御装置50は、分割格納部51、記憶部52、検出部53、選択部54、及び、分散格納部55を備えている。
分割格納部51は、係る格納データを受信して、その格納データを複数のブロックデータに分割したのち、そのブロックデータを記憶部52に格納する。
検出部53は、記憶部52に格納されたブロックデータの個数が所定の条件を満たす場合に、係るブロックデータが記憶部52に滞留した滞留状態であることを検出する。
選択部54は、ネットワークによって接続された複数のストレージ装置の中から、1以上のストレージ装置(例えばm個の第二のストレージ装置70−1乃至m)を、所定の基準に基づき選択する。
分散格納部55は、検出部54が係る滞留状態を検出した場合に、記憶部52から読み出したブロックデータを、第一のストレージ装置60、及び、第二のストレージ装置70−1乃至mに分散して格納する。
本実施形態に係るデータ格納制御システム2は、ネットワークを介して、データをストレージ装置へ格納する処理を行う際に、データ転送性能の低下を回避することができる。その理由は、検出部53が第一のストレージ装置60に格納する格納データが含むブロックデータに関する滞留状態を検出した場合、分散格納部55が、当該ブロックデータを、第一のストレージ装置60と、選択部14により選択された第二のストレージ装置70−1乃至mとに分散格納するからである。そして、第二のストレージ装置70−1乃至mが第一のストレージ装置60に、格納したブロックデータを転送することにより、第一のストレージ装置60が格納データを復元するからである。
<ハードウェア構成例>
上述した各実施形態において図1、及び、図6に示した各部は、専用のHW(HawdWare)(電子回路)によって実現することができる。また、少なくとも分割格納部11及び51、検出部13及び53、選択部14及び54、分散格納部15及び55、及び、転送部31−1及び71−1乃至mは、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図7を参照して説明する。
図7は、本発明の模範的な実施形態に係るデータ格納制御装置、ストレージ装置、及び、第二のストレージ装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図7は、図1、及び、図6に示したデータ格納制御装置、ストレージ装置、及び、第二のストレージ装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
図7に示した情報処理装置900は、CPU(Central_Processing_Unit)901、ROM(Read_Only_Memory)902、RAM(Random_Access_Memory)903、ハードディスク904(記憶装置)、外部装置との通信インタフェース905(Interface:以降、「I/F」と称する)、CD−ROM(Compact_Disc_Read_Only_Memory)等の記憶媒体907に格納されたデータを読み書き可能なリーダライタ908、及び、入出力インタフェース909を備え、これらの構成がバス906(通信線)を介して接続された一般的なコンピュータである。
そして、上述した実施形態を例に説明した本発明は、図7に示した情報処理装置900に対して、その実施形態の説明において参照したブロック構成図(図1、及び、図6)における分割格納部11及び51、検出部13及び53、選択部14及び54、分散格納部15及び55、及び、転送部31−1及び71−1乃至m、或いはフローチャート(図2乃至3)の機能を実現可能なコンピュータプログラムを供給した後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ(RAM903)またはハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、CD−ROM等の各種記憶媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体907によって構成されると捉えることができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
1 データ格納制御システム
10 データ格納制御装置
11 分割格納部
12−1乃至4 書き込みキュー
13 検出部
14 選択部
15 分散格納部
20−1乃至3 ストレージ装置
22−3 ファイルシステム
220−3 メタデータ格納領域
221−3 ブロックデータ格納領域
30−1乃至n ストレージ装置
31−1 転送部
32−1 ファイルシステム
320−1 メタデータ格納領域
321−1 ブロックデータ格納領域
2 データ格納制御システム
50 データ格納制御装置
51 分割格納部
52 記憶部
53 検出部
54 選択部
55 分散格納部
60 第一のストレージ装置
70−1乃至m 第二のストレージ装置
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク
905 通信インタフェース
906 バス
907 記憶媒体
908 リーダライタ
909 入出力インタフェース

Claims (10)

  1. ネットワークによって接続された複数のストレージ装置の中の、第一のストレージ装置に格納される格納データの一部である1以上のブロックデータを受信し、受信した前記ブロックデータを所定の時間格納したのち、格納した前記ブロックデータを、前記第一のストレージ装置に転送する転送手段
    を備える、前記複数のストレージ装置の中の1以上の第二のストレージ装置と、
    前記格納データを受信し、受信した前記格納データを複数の前記ブロックデータに分割し、分割した前記ブロックデータを記憶手段に格納する分割格納手段と、
    前記記憶手段に格納された前記ブロックデータの個数が所定の条件を満たす場合に、前記ブロックデータが前記記憶手段に滞留した滞留状態であることを検出する検出手段と、
    前記複数のストレージ装置の中から、1以上の前記第二のストレージ装置を、所定の基準に基づき選択する選択手段と、
    前記検出手段が前記滞留状態を検出した場合に、前記記憶手段から読み出した前記ブロックデータを、前記第一のストレージ装置、及び、1以上の前記第二のストレージ装置に分散して格納する分散格納手段と、
    を備えるデータ格納制御装置と、
    を有するデータ格納制御システム。
  2. 前記選択手段は、前記第一のストレージ装置と論理的に近接するストレージ装置を、前記第二のストレージ装置として選択する、
    請求項1に記載のデータ格納制御システム。
  3. 前記選択手段は、前記第一のストレージ装置と論理的に近接する1以上のストレージ装置を識別可能な第一の識別子の一覧情報を記憶し、前記一覧情報にある前記第一の識別子により識別可能なストレージ装置を、前記第二のストレージ装置として選択する、
    請求項2に記載のデータ格納制御システム。
  4. 前記選択手段は、前記第一のストレージ装置の前記ネットワークにおけるアドレスが示す値との差分が閾値以下であるアドレスを有する、前記複数のストレージ装置の中の少なくとも何れかのストレージ装置を、前記第二のストレージ装置として選択する、
    請求項2または3に記載のデータ格納制御システム。
  5. 前記分割格納手段は、前記格納データが含む前記ブロックデータの全てから第一のハッシュ値を算出し、前記第一のハッシュ値、及び、前記格納データを識別可能な第二の識別子を前記分散格納手段へ入力し、
    前記分散格納手段は、前記第二の識別子、前記第一のストレージ装置を識別可能な第三の識別子、及び、前記第一のハッシュ値を関連付けて、前記ブロックデータに付加して、前記第二のストレージ装置に入力し、
    前記転送手段は、前記第三の識別子が識別する前記第一のストレージ装置へ、格納した前記ブロックデータを転送する、
    請求項1乃至4のいずれかに記載のデータ格納制御システム。
  6. 前記第一のハッシュ値は、前記格納データに含まれる前記ブロックデータのうちの少なくとも1つが欠落した前記ブロックデータから生成されるハッシュ値とは異なる、
    請求項5に記載のデータ格納制御システム。
  7. ネットワークによって接続された複数のストレージ装置の中の1以上の第二のストレージ装置によって、
    前記複数のストレージ装置の中の、第一のストレージ装置に格納される格納データの一部である1以上のブロックデータを受信し、受信した前記ブロックデータを所定の時間格納したのち、格納した前記ブロックデータを、前記第一のストレージ装置に転送し、
    データ格納制御装置によって、
    前記格納データを受信し、受信した前記格納データを複数の前記ブロックデータに分割し、分割した前記ブロックデータを記憶手段に格納し、
    前記記憶手段に格納された前記ブロックデータの個数が所定の条件を満たす場合に、前記ブロックデータが前記記憶手段に滞留した滞留状態であることを検出し、
    前記複数のストレージ装置の中から、1以上の前記第二のストレージ装置を、所定の基準に基づき選択し、
    前記滞留状態を検出した場合に、前記記憶手段から読み出した前記ブロックデータを、前記第一のストレージ装置、及び、1以上の前記第二のストレージ装置に分散して格納する、
    データ格納制御方法。
  8. 前記データ格納制御装置によって、
    前記第一のストレージ装置と論理的に近接するストレージ装置を、前記第二のストレージ装置として選択する、
    請求項7に記載のデータ格納制御方法。
  9. ネットワークによって接続された複数のストレージ装置の中の1以上の第二のストレージ装置が、前記複数のストレージ装置の中の、第一のストレージ装置に格納される格納データの一部である1以上のブロックデータを受信し、受信した前記ブロックデータを所定の時間格納したのち、格納した前記ブロックデータを、前記第一のストレージ装置に転送可能なシステムに含まれるコンピュータに
    前記格納データを受信し、受信した前記格納データを複数の前記ブロックデータに分割し、分割した前記ブロックデータを記憶手段に格納する分割格納処理と、
    前記記憶手段に格納された前記ブロックデータの個数が所定の条件を満たす場合に、前記ブロックデータが前記記憶手段に滞留した滞留状態であることを検出する検出処理と、
    前記複数のストレージ装置の中から、1以上の前記第二のストレージ装置を、所定の基準に基づき選択する選択処理と、
    前記検出処理が前記滞留状態を検出した場合に、前記記憶手段から読み出した前記ブロックデータを、前記第一のストレージ装置、及び、1以上の前記第二のストレージ装置に分散して格納する分散格納処理と、
    を実行させる、データ格納制御プログラム。
  10. 前記第一のストレージ装置と論理的に近接するストレージ装置を、前記第二のストレージ装置として選択する前記選択処理
    前記コンピュータに実行させる、請求項9に記載のデータ格納制御プログラム。
JP2014048332A 2014-03-12 2014-03-12 データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム Active JP6311368B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014048332A JP6311368B2 (ja) 2014-03-12 2014-03-12 データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014048332A JP6311368B2 (ja) 2014-03-12 2014-03-12 データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム

Publications (2)

Publication Number Publication Date
JP2015172855A JP2015172855A (ja) 2015-10-01
JP6311368B2 true JP6311368B2 (ja) 2018-04-18

Family

ID=54260141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014048332A Active JP6311368B2 (ja) 2014-03-12 2014-03-12 データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム

Country Status (1)

Country Link
JP (1) JP6311368B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328734A (ja) * 2006-06-09 2007-12-20 Hitachi Ltd ストレージ装置及びストレージ装置の制御方法
WO2012046585A1 (ja) * 2010-10-04 2012-04-12 日本電気株式会社 分散ストレージシステム、その制御方法、およびプログラム

Also Published As

Publication number Publication date
JP2015172855A (ja) 2015-10-01

Similar Documents

Publication Publication Date Title
US11314597B2 (en) System and method for maintaining a distributed and fault-tolerant state over an information centric network
US10146848B2 (en) Systems and methods for autonomous, scalable, and distributed database management
JP6277853B2 (ja) 制御装置、通信装置、および、通信方法
EP3364310A1 (en) Data processing method and device
JP6751819B2 (ja) パケット伝送
US9509627B2 (en) Resource over-subscription
WO2020034194A1 (zh) 分布式数据处理方法、装置及系统和机器可读介质
JP5915116B2 (ja) ストレージシステム、ストレージ装置、システム制御プログラムおよびシステム制御方法
JP5754504B2 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
JP6364727B2 (ja) 情報処理システム、分散処理方法、及び、プログラム
EP3481099B1 (en) Load balancing method and associated device
JP2016028320A (ja) 情報処理方法、プログラム、および情報処理装置
JP6311368B2 (ja) データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム
US20170126855A1 (en) Packet Processing Method and Related Device That are Applied to Network Device
WO2018015984A1 (en) Communication apparaus, system, rollback method, and program
JP6287308B2 (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
JP2015094976A (ja) 情報処理装置、情報処理方法、及び、プログラム
US20180159795A1 (en) Technique for Processing Messages in a Message-Based Communication Scenario
WO2015165229A1 (zh) 一种识别异常ip数据流的方法、装置和系统
JP6812732B2 (ja) 情報処理システム、情報処理装置およびプログラム
CN113228568B (zh) 对云存储服务进行网络优化的方法和设备
JP6179981B2 (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
JP6572574B2 (ja) ストレージ制御システム、ストレージ制御システムのノード、およびストレージ制御方法
JP2019012318A (ja) アクセス制御方法、アクセス制御装置、及びアクセス制御プログラム
US11108850B2 (en) Triangulating stateful client requests for web applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R150 Certificate of patent or registration of utility model

Ref document number: 6311368

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150