JP2016130962A - データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置 - Google Patents

データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置 Download PDF

Info

Publication number
JP2016130962A
JP2016130962A JP2015005191A JP2015005191A JP2016130962A JP 2016130962 A JP2016130962 A JP 2016130962A JP 2015005191 A JP2015005191 A JP 2015005191A JP 2015005191 A JP2015005191 A JP 2015005191A JP 2016130962 A JP2016130962 A JP 2016130962A
Authority
JP
Japan
Prior art keywords
node
data
save
data block
block
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
Application number
JP2015005191A
Other languages
English (en)
Inventor
晃治 山本
Koji Yamamoto
晃治 山本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015005191A priority Critical patent/JP2016130962A/ja
Publication of JP2016130962A publication Critical patent/JP2016130962A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】分散処理システムの再構築に伴って生じるデータ退避に要する時間を短縮する。【解決手段】データ退避制御装置は、冗長化データブロックが分散格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と退避対象のデータブロックの退避先である複数の退避先装置の各々との装置ペア毎に、データブロックの重複度合いを求め、装置ペアの各々のうち重複度合いがより小さい装置ペアから順に選択し、選択した装置ペアにおける退避元装置のデータブロックを、選択した装置ペアにおける退避先装置のデータブロックと重複しないように、退避先装置へ転送する。【選択図】図6

Description

本発明は、データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置に関する。
コンピュータ性能の向上と共に、コンピュータでビッグデータ等に代表される多量のデータを処理する機会が増えつつある。コンピュータで多量のデータを処理する場合、単体のコンピュータで全てのデータを処理するよりも、複数のコンピュータにデータを分散して格納し、各々のコンピュータでデータを処理する分散処理を用いた方が、より短期間にデータを処理できる場合が多い。従って、近年、例えばコンピュータ等のように、データを記憶及び処理すると共に、ネットワークを介して他の装置と接続する複数の装置を含む分散処理システムを用いたデータ処理が注目されている。
分散処理システムでは、複数の装置にデータが分散して格納される。従って、分散処理システムでは、例えば装置等の故障によるデータ損失を防止するため、同一のデータを複数の装置に分散して格納する、いわゆるデータの冗長格納が行われる場合がある。
そして、分散処理システムでは例えば装置が故障した際等に、データの冗長性を維持するため、分散処理システム内の装置間でデータを移動させる場合がある。
また、分散処理システムでは、装置での処理過程で必要となるデータが必ずしも処理を実行する装置が管理する記憶装置に記憶されているとは限られず、他の装置が管理する記憶装置に記憶されている場合がある。この場合にも、分散処理システム内の装置間でデータを移動させる必要がある。
従って、従来から分散処理システム内に分散したデータの移動に関する手法が提案されている。
特開2009−59357号公報 特開2010−231576号公報 特開2012−221419号公報
また、分散処理システム構成の見直しに伴い、分散処理システムの規模を縮小する必要がある場合、削減対象である装置(使用を停止する装置)に含まれるデータを削減対象でない使用を継続する装置へ移動させる必要がある。そして、データの移動の際には、データの冗長性を維持するため、使用を継続する同じ装置内に同じデータが重複して格納されないようにデータを移動する必要がある。
しかしながら、削減対象である装置に含まれるデータを使用を継続する何れの装置へ移動すれば、より短時間に効率よく移動させることができるかの検討は進んでいない。
一つの側面として、本発明は、分散処理システムの再構築に伴って生じるデータ退避に要する時間を短縮することを目的とする。
一つの態様では、コンピュータに、冗長化データブロックが分散格納された複数の装置のうち、データブロックを格納する退避元装置と前記データブロックの退避先である複数の退避先装置の各々との装置ペア毎に、データブロックの重複度合いを求めさせる。そして、コンピュータに、前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアから順に選択させる。そして、コンピュータに、前記選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように、前記選択された装置ペアにおける前記退避先装置へ転送させる。
一つの側面として、分散処理システムの再構築に伴って生じるデータ退避に要する時間を短縮することができる、という効果を有する。
分散処理システムの一例を示す図である。 ノードにおけるブロックの格納状況の一例を示す図である。 スコア表の一例を示す図である。 更新後のスコア表の一例を示す図である。 コンピュータで実現する分散処理システムの一例を示す図である。 データ退避制御処理の流れの一例を示すフローチャートである。 行列Dd’の演算の一例を説明する図である。 行列Ds’の演算の一例を説明する図である。 転送指示リストの一例を示す図である。 ブロック転送後のノードにおけるブロックの格納状況の一例を示す図である。 スコアの算出式の例を示す図である。
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
図1は、本実施形態に係る分散処理システム10の一例を示した図である。
分散処理システム10は、例えばユーザ端末20、複数のノード30、データブロック情報管理装置40、及びデータ退避制御装置50が通信回線60により接続されたシステムである。ここで、ノードとは、例えばコンピュータ等のように、ユーザ端末20から送信されたデータを記憶及び処理すると共に、ネットワークを介して他の装置と接続する装置のことである。本実施形態に係る通信回線60をインターネット回線として説明するが、通信回線60の種別はこれに限定されるものではない。例えば、通信回線60は専用回線であっても、社内LAN等のイントラネットであってもよい。また、通信回線60は有線、無線、又は有線と無線との混在の何れの形態であってもよい。
分散処理システム10では、ノード30、データブロック情報管理装置40、及びデータ退避制御装置50を含むクラウドシステムにより、ユーザ端末20のユーザにクラウドサービスを提供する。
クラウドサービスとは、通信回線60上にソフトウエア及び当該ソフトウエアを実行するためのコンピュータ等を含むクラウドシステムを構築し、ユーザの契約内容に応じて、通信回線60を介してクラウドシステムの処理能力をユーザに提供するサービスである。
ユーザ端末20は、ユーザが業務等に用いるデータを後述するノード30に送信すると共に、クラウドシステムで実行されたデータの処理結果を受信し、例えばユーザ端末20の図示しないディスプレイ等に表示する。また、ユーザ端末20は、クラウドシステムに含まれるノード30の数を変更する等のシステム設定に関する指示を、例えば後述するデータ退避制御装置50へ送信する。
ノード30は、ユーザ端末20から受信したデータを複数のノード30に分散させて格納する。この際、ノード30は、格納するデータの信頼性を向上させるため、データを複数のデータブロックに分割した上で各データブロックを複製し、複数のノード30のうち予め定めた数のノードに同じデータブロックが重複しないように分散して格納する。なお、以下では「データブロック」のことを単に「ブロック」と称し、各ブロックには、ブロックを識別するためのブロック番号が付される。また、ブロック番号が同じブロックには、同じデータが含まれるものとする。
図2は、ノード30におけるブロックの格納状況の一例を示した図である。ブロックの格納状況とは、どのブロック番号のブロックが複数あるノード30のうち、何れのノード30に格納されているかの状況をいう。
図2では、データがブロック番号b1〜b3、及びb10000の4ブロックに分割され、各々のブロックが複製された上で、ブロック毎に6台のノード30のうち何れか3台のノードに分散して格納されている状況を表している。なお、説明上、6台のノード30には、各々のノードを識別するためd、d、s、s、s、及びsのノード番号が付されているものとする。ここでノード番号とは、複数のノード30の各々を一意に識別するための番号である。
各ブロックをノード30に分散して格納する場合、同じブロック番号のブロックが同じノード番号のノードに重複して格納されないようにすることで、同じブロック番号のブロックが異なる複数のノード30に格納される。これは、何れかのノード30が故障した場合であっても、データが復旧できるようにするためである。
なお、ブロックの冗長化数(図2の例では“3”)は一例であり、ブロックの冗長化数は、クラウドサービスにおいて実現すべきデータ保証に対する信頼性の度合いが高くなるに従って、大きな値に設定されることがある。
また、ノード30は、ユーザ端末20から受信したデータを格納する場合、ノード30におけるブロックの格納状況が変化するため、ブロックの格納状況が変化したことを示す状変通知を後述するデータブロック情報管理装置40へ送信する。
データブロック情報管理装置40は、ノード30から状変通知を受信した場合、ノード30におけるブロックの格納状況を収集する。そして、データブロック情報管理装置40は、ノード30におけるブロックの格納状況を表すブロック存在情報57を生成及び更新する。
また、データブロック情報管理装置40は、後述するデータ退避制御装置50からブロック存在情報更新指示を受信すると、自発的にノード30におけるブロックの格納状況を収集し、ブロック存在情報57を更新する。
更に、データブロック情報管理装置40は、例えば、後述するデータ退避制御装置50からブロック存在情報要求指示を受信すると、ブロック存在情報57をデータ退避制御装置50へ送信する。
一方、データ退避制御装置50は、ユーザ端末20からクラウドサービスの契約内容に基づいてユーザに割り当てられているノード30の削減指示を受け付けると、削減ノードに格納されるブロックを使用継続ノードへ転送するようにノード30へ指示する。ここで削減ノードとは、削減の対象となったノードであり、使用継続ノードとは、削減されずに使用を継続するノードのことをいう。
クラウドサービスでは、ユーザが要求する処理能力に応じた数のノード30をユーザに割り当てる。そして、ユーザは、割り当てられたノード30の数に応じた利用料をクラウドサービスのプロバイダへ支払う仕組みがとられる。すなわち、ユーザは、業務の負荷に応じて、自分に割り当てられるノード30の数を増減させることができる。
従って、ユーザは業務の繁忙期にはノード30の数を増加させて対応し、業務の閑散期にはクラウドサービスの利用料低減のため、ノード30の数を削減させる等の対応が可能である。
データ退避制御装置50は、ユーザに割り当てられているノード30の数を削減させる際に、ノード30に対して、できる限り短期間で削減ノードに含まれるブロックを使用継続ノードに転送させるための制御を行う装置である。
また一般に分散処理システム10は、サービス品質保証(SLA)の契約に従って、「3秒以内に処理結果をシステム利用者に回答する」などのレスポンス性能と「年間のべ10分以上のシステム停止をしない」などの可用性を保証する必要がある。SLAを満たしてサービスを継続したままノード30の数を削減するため、例えば一部のノード30を利用不可として分散処理システム10のユーザ端末からの処理リクエストを受け付けない状態にして、その状態のノード間でブロックを転送させる場合がある。こうすることで、残りのノードでユーザ端末からの処理リクエストに対応して可用性を保ち、ブロックの転送に伴うディスク処理負荷の影響をレスポンス時間に与えない状態を保ちながら、ノードの削減を行える。ただし、ノード30を、処理リクエストを受け付けない状態に切り替え、転送後受け付ける状態に切り替える処理は、分散処理システム10全体に負荷を与え処理性能低下につながる。そのためこの切り替えは可能な限り少ない回数と少ない切り替え対象ノード数で行うことが望ましい。
データ退避制御装置50は、ユーザに割り当てられているノード30の数を削減させる際に、できる限り一度に多くのブロックを転送させることで切り替え回数を削減し、切り替えに伴う処理性能低下を防ぐための制御を行う装置でもある。
こうした役割を持つデータ退避制御装置50は、通信部51、算出部52、選択部53、及び指示部54の各機能部を有する。また、指示部54は、転送更新指示部55及びモード指示部56を含む。また、データ退避制御装置50は、ブロック存在情報57、スコア表58、及び転送指示リスト59の各種情報を有する。
通信部51は通信回線60に接続され、ユーザ端末20、ノード30、及びデータブロック情報管理装置40との間で、相互にノード数削減の処理に必要な情報及び指示を送受信する。
具体的には、通信部51は、ユーザ端末20からノード30の削減指示を受信すると、ノード30の削減指示を算出部52及び選択部53へ通知する。
そして、通信部51は、選択部53からブロック存在情報要求指示を受け付けると、データブロック情報管理装置40に対してブロック存在情報要求指示を送信して、データブロック情報管理装置40が管理するブロック存在情報57を要求する。そして、通信部51は、データブロック情報管理装置40からブロック存在情報57を受信すると選択部53へ送信する。
また、通信部51は、後述する指示部54からブロック転送指示を受け付けると、ブロック転送指示をノード30へ送信する。また、通信部51は、後述する指示部54から、データブロック情報管理装置40で管理されるブロック存在情報57の更新を要求する指示であるブロック存在情報更新指示を受け付けると、ブロック存在情報更新指示をデータブロック情報管理装置40へ送信する。
なお、通信部51は、各種指示等の送信先であるユーザ端末20、ノード30、及びデータブロック情報管理装置40の宛先情報を予め有している。
算出部52は、通信部51からノード30の削減指示を受け付けると、削減指示に含まれるノード30の削減リストを取得する。この削減リストには、例えば削減指示の送信前にユーザに割り当てられているノード30のノード番号と、ユーザが削減したいノード番号と、が含まれる。
そして、算出部52は、ユーザに割り当てられている複数のノード30のうち、ユーザが削減したいノード番号に対応するノードを削減ノード、削減ノード以外のノードを使用継続ノードとして、ユーザに割り当てられている複数のノード30を分類する。
そして、算出部52は、ブロック存在情報57を参照して削減ノードと使用継続ノードとの全ての組み合わせ毎に、削減ノードに格納されているブロックと、使用継続ノードに格納されているブロックと、の重複度合いをスコアScとして算出する。なお、削減ノードと使用継続ノードとの組み合わせをノードペアという。
スコアScは、ノードペアにおけるブロックの重複度合いが小さくなるに従って、より大きな値に設定される。例えば、算出部52は、各ノードペアにおいて、削減ノードに格納されるブロックのうち使用継続ノードに格納されていないブロックの数から、削減ノードに格納されるブロックのうち使用継続ノードに格納されているブロックの数を減じた値を算出する。そして、算出部52は、この減算値を削減ノードに格納されているブロックの数で除した値を、ノードペアに対応したスコアScとして設定する。すなわち、前述したスコアScの算出式は(1)式として表される。
ここで、eは削減ノードに格納されるブロックのうち使用継続ノードに格納されていないブロックの数、uは削減ノードに格納されるブロックのうち使用継続ノードに格納されているブロックの数、tは削減ノードに格納されているブロックの数を表す。
算出部52は、全てのノードペアの各々に対してスコアScを算出し、スコア表58を生成する。なお、スコアScの算出に用いた(1)式は一例であり、スコアScの算出式は(1)式に限定されないことは言うまでもない。
図3は、図2に示した6台のノード30におけるブロック存在情報57に基づいて算出部52で生成されたスコア表58の一例である。スコア表58の左端の列には削減ノードのノード番号d、dが配置され、スコア表58の上端の行には使用継続ノードのノード番号s、s、s、及びsが配置されている。
そして、削減ノードのノード番号を含む行と使用継続ノードのノード番号を含む列とが交差する欄には、対応するノードペアのスコアが記載される。例えば、i、jを自然数とし、Sc(d、s)を削減ノードd、使用継続ノードsのノードペアにおけるスコアとすれば、i=1、j=4の場合、図3に示すスコア表58からSc(d、s)=1を得ることができる。
選択部53は、通信部51からノード30の削減指示を受け付けると、算出部52と同様に、削減指示に含まれる削減リストを取得し、ユーザに割り当てられている複数のノード30を削減ノード及び使用継続ノードに分類する。そして、選択部53は、通信部51へブロック存在情報要求指示を通知して、データブロック情報管理装置40からブロック存在情報57を取得する。
また、選択部53は、算出部52で算出されたスコア表58を取得して、スコア表58においてスコアの最も大きいノードペアを選択する。そして、選択部53は、選択したノードペアの削減ノードに格納されるブロックで、且つ、選択されたノードペアの使用継続ノードに格納されていないブロックを転送対象ブロックとして特定する。更に、選択部53は、選択したノードペアの削減ノードのノード番号、選択したノードペアの使用継続ノードのノード番号、及び特定した転送対象ブロックのブロック番号を組にした転送情報を生成する。
そして、選択部53は、選択したノードペアに対応する行及び列に含まれるスコア表58のスコアを全て負の無限大(−∞)に更新する。
図4は、スコア更新後のスコア表58の一例を示した図である。図4は、図3で示したスコア表58において、ノードペア<d、s>を選択した後に更新したスコア表58を示している。なお、<d、s>は削減ノードdと使用継続ノードsとのノードペアを示す表記である。
選択部53は、更新したスコア表58から、再度スコアの最も大きいノードペアを選択して、選択したノードペアから転送情報を生成し、スコア表58を更新する処理を、更新したスコア表58から選択可能な全ての削減ノードが選択されるまで繰り返す。
そして、選択部53は生成した転送情報に従って削減ノードから使用継続ノードへ転送対象ブロックを転送した後の、ノード30におけるブロックの格納状況に基づいて、ブロック存在情報57を更新する。
そして、選択部53は、更新したブロック存在情報57を参照し、まだ削減ノードにブロックが存在する場合には、更新したブロック存在情報57を用いて算出部52が新たに算出したスコア表58を取得する。そして、選択部53は、削減ノードにブロックが存在しなくなるまで、スコア表58において最大のスコアを有するノードペアの選択、選択したノードペアにおける転送情報の生成、及びスコア表58の更新の各処理を繰り返す。そして、選択部53は、最終的に生成した全ての転送情報を含んだ転送指示リスト59を生成し、ノード30が転送指示リスト59に従ってブロックの転送を開始するよう指示部54に転送指示を通知する。
指示部54は、選択部53から転送指示を受け付けると、ブロック転送処理を開始するため、モード指示部56へブロック転送の開始を通知する。
この場合、モード指示部56は、転送指示リスト59からブロック転送処理の対象である転送情報を1つ取得して、転送情報から削減ノードのノード番号及び使用継続ノードのノード番号を取得する。
そしてモード指示部56は、削減ノードのノード番号及び使用継続ノードのノード番号と共に、クラウドサービスを停止させるサービス停止指示を通信部51へ通知する。サービス停止指示は、当該指示を受信したノードでブロック転送以外のクラウドサービス処理、例えばユーザ端末20から受信したデータの格納処理等を停止させるための指示である。
通信部51は、ノード30のうちモード指示部56で指定されたノード番号を有する削減ノード及び使用継続ノードにサービス停止指示を送信し、指定されたノード番号を有する削減ノード及び使用継続ノードのクラウドサービスを停止させる。
モード指示部56は、指定した削減ノード及び使用継続ノードのクラウドサービスを停止させた後、取得した転送情報を転送更新指示部55へ通知する。
転送更新指示部55は、モード指示部56から受け付けた転送情報を参照し、削減ノードのノード番号及び使用継続ノードのノード番号と共に、転送情報に含まれる転送対象ブロックの転送を開始させるブロック転送指示を通信部51へ通知する。
通信部51は、ノード30のうち転送更新指示部55で指定されたノード番号を有する削減ノード及び使用継続ノードにブロック転送指示を送信し、指定した削減ノードから使用継続ノードへ転送対象ブロックを転送させる。
転送更新指示部55は、ノード30の指定した削減ノードから使用継続ノードへ転送対象ブロックを転送させた後、ブロックの転送が終了したことをモード指示部56へ通知する。
モード指示部56ではブロックの転送終了の通知を受け付けると、サービス停止指示で停止させた使用継続ノードのクラウドサービスを再開させるため、通信部51へ使用継続ノードのノード番号と共にサービス再開指示を通知する。通信部51は、ノード30のうち、モード指示部56で指定されたノード番号を有するノードにサービス再開指示を送信し、クラウドサービスを再開させる。
更に、モード指示部56は転送指示リスト59を参照し、まだ取得していない転送情報を取得する。そして、転送更新指示部55、及びモード指示部56は、取得した転送情報毎に、上述したブロック転送処理を繰り返し、転送指示リスト59に含まれる全ての転送情報に従ったブロック転送をノード30に実行させる。以上により、削減ノードに格納される全てのブロックが使用継続ノードに退避され、削減ノードには何れのブロックも含まれていない状態となる。
そして、転送更新指示部55は、削減ノードに格納されていた全てのブロックが使用継続ノードに転送された後、データブロック情報管理装置40が管理するノード30のブロック存在情報57を更新させるためのブロック情報更新指示を通信部51へ通知する。
通信部51は、データブロック情報管理装置40にブロック存在情報更新指示を送信し、削減ノードに格納されていた全てのブロックが使用継続ノードに転送された後のノード30におけるブロックの格納状況に基づいて、ブロック存在情報57を更新させる。
次に、図5に、分散処理システム10に含まれるユーザ端末20、複数のノード30、データブロック情報管理装置40、及びデータ退避制御装置50を、コンピュータで実現可能な一例としてのコンピュータシステム100を示す。
分散処理システム10としての図5に示すコンピュータシステム100は、ユーザ端末20としてのコンピュータ200、複数のノード30としての複数のコンピュータ300、及びデータブロック情報管理装置40としてのコンピュータ400を含む。また、コンピュータシステム100は、データ退避制御装置50としてのコンピュータ500を含む。
コンピュータ500は、CPU502、メモリ504、及び不揮発性の記憶部506を含む。CPU502、メモリ504、及び不揮発性の記憶部506は、バス508を介して互いに接続される。また、コンピュータ500は、キーボード及びマウス等の入力部510、並びにディスプレイ等の表示部512を備え、入力部510及び表示部512はバス508に接続される。またコンピュータ500は、記録媒体に対して読み書きするためのI/O514がバス508に接続される。更に、コンピュータ500は、通信回線60に接続するためのインタフェースを含む通信IF(Interface)516を備え、通信IF516もバス508に接続される。なお、記憶部506はHDD(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、入力部510、表示部512、及びI/O514は必ずしもコンピュータ500に必須ではない。
記憶部506には、コンピュータ500を図1に示すデータ退避制御装置50として機能させるためのデータ退避制御プログラム518が記憶される。記憶部506に記憶されたデータ退避制御プログラム518は、通信プロセス520、算出プロセス522、選択プロセス524、指示プロセス526を含む。
CPU502は、データ退避制御プログラム518を記憶部506から読み出してメモリ504に展開し、データ退避制御プログラム518が有する各プロセスを実行する。
CPU502がデータ退避制御プログラム518を記憶部506から読み出してメモリ504に展開し、データ退避制御プログラム518を実行することで、コンピュータ500が図1に示すデータ退避制御装置50として動作する。また、CPU502が通信プロセス520を実行することで、コンピュータ500が図1に示す通信部51として動作する。また、CPU502が算出プロセス522を実行することで、コンピュータ500が図1に示す算出部52として動作する。また、CPU502が選択プロセス524を実行することで、コンピュータ500が図1に示す選択部53として動作する。更に、CPU502が指示プロセス526を実行することで、コンピュータ500が図1に示す転送更新指示部55及びモード指示部56を含む指示部54として動作する。
なお、データ退避制御装置50は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に、本実施形態に係るデータ退避制御装置50の作用を説明する。本実施形態に係るデータ退避制御装置50は、例えばユーザ端末20からノード30の削減指示を受信した場合に、データ退避制御処理を実行する。
図6は、本実施形態に係るデータ退避制御処理の流れの一例を示したフローチャートである。なお、図6に示すフローチャートは、ユーザ端末20から受信したノード30の削減指示に対して、データブロック情報管理装置40へブロック存在情報要求指示を送信した後のデータ退避制御処理の流れを示している。また、算出部52及び選択部53は、ノード30の削減指示から、ノード30の削減リストを予め取得しているものとする。また、ここでは、図2に示したノード30におけるブロックの格納状況の例を用いて、本実施形態に係るデータ退避制御処理の流れを説明する。
まず、ステップS10では、通信部51は通信回線60を介して何らかのデータを受信したか否かを判定する。そして、否定判定の場合には、通信回線60を介して何らかのデータを受信するまでステップS10の処理を繰り返す。肯定判定の場合にはステップS20へ移行する。
ステップS20では、通信部51は、ステップS10の処理で受信したデータの種別を取得して、データがブロック存在情報57か否かを判定する。データの種別は、例えば受信したデータのヘッダに含まれており、通信部51は受信したデータのヘッダを参照することでデータの種別を判別することができる。そして、ステップS20の判定が否定判定の場合、すなわち受信したデータがブロック存在情報57ではない場合には、データ退避制御処理を終了する。一方、肯定判定の場合には、ステップS30へ移行する。
ステップS30では、選択部53は、ステップS10の処理でデータブロック情報管理装置40から受信したブロック存在情報57を、メモリ504の予め定めた領域に保存する。この際、選択部53はノード30の削減リストを参照し、ブロック存在情報57を削減ノードのブロック存在情報と、使用継続ノードのブロック存在情報と、に分割して、各々のブロック存在情報を行列形式でメモリ504の予め定めた領域に保存する。
ここで、図2に示したノード30におけるブロックの格納状況の例において、ノード番号d、dのノードを削減ノード、ノード番号s、s、s、及びsのノードを使用継続ノードとする。この場合、削減ノードのブロック存在情報を表す行列Ddは(2)式、使用継続ノードのブロック存在情報を表す行列Dsは(3)式で表される。


ここで、行列Ddの1列目は削減ノードdにおけるブロックの格納状況を表し、行列Ddの2列目は削減ノードdにおけるブロックの格納状況を表す。
また、行列Ddの1行目は、各削減ノードにおけるブロック番号b1のブロックの格納状況を表し、行列Ddの2行目は、各削減ノードにおけるブロック番号b2のブロックの格納状況を表す。更に、行列Ddの3行目は、各削減ノードにおけるブロック番号b3のブロックの格納状況を表し、行列Ddの4行目は、各削減ノードにおけるブロック番号b10000のブロックの格納状況を表す。
行列Ddの各要素には“1”又は“0”の値が設定され、要素値が“1”の場合には、対応するブロック番号のブロックが存在することを表し、要素値が“0”の場合には、対応するブロック番号のブロックが存在しないことを表す。
例えば、(2)式の行列Ddは、削減ノードdにブロック番号b1及びb10000のブロックが存在し、削減ノードdにブロック番号b1、b2、及びb3のブロックが存在することを表している。
一方、行列Dsの1列目は使用継続ノードsにおけるブロックの格納状況を表し、行列Dsの2列目は使用継続ノードsにおけるブロックの格納状況を表す。更に、行列Dsの3列目は使用継続ノードsにおけるブロックの格納状況を表し、行列Dsの4列目は使用継続ノードsにおけるブロックの格納状況を表す。
また、行列Dsの1行目は、各使用継続ノードにおけるブロック番号b1のブロックの格納状況を表し、行列Dsの2行目は、各使用継続ノードにおけるブロック番号b2のブロックの格納状況を表す。更に、行列Dsの3行目は、各使用継続ノードにおけるブロック番号b3のブロックの格納状況を表し、行列Dsの4行目は、各使用継続ノードにおけるブロック番号b10000のブロックの格納状況を表す。
行列Dsの各要素には“1”又は“0”の値が設定され、値の意味は行列Ddの要素値の説明と同様である。
従って、(3)式の行列Dsは、使用継続ノードsにブロック番号b1及びb2のブロックが存在し、使用継続ノードsにブロック番号b3及びb10000のブロックが存在することを表している。また、(3)式の行列Dsは、使用継続ノードsにブロック番号b2及びb10000のブロックが存在し、使用継続ノードsにブロック番号b3のブロックが存在することを表している。
なお、行列Ddと行列Dsとでは、行とブロック番号との対応付けを同じにする。例えば、行列Ddの1行目がブロック番号b1に対応する場合、行列Dsの1行目もブロック番号b1に対応させる。
ステップS40では、算出部52は、削減ノードと使用継続ノードとの組み合わせである全てのノードペアの各々に対して、(1)式に従ってスコアScを算出し、スコア表58を生成する。
この際、算出部52はステップS30の処理でメモリ504に保存された行列Dd及び行列Dsを用いて、行列演算を行うことでスコア表58のスコアScを生成する。
具体的には、各ノードペアにおける(1)式のe、すなわち、削減ノードに格納されるブロックのうち使用継続ノードに格納されていないブロックの数は、(4)式で表される。
ここで、Deは、各ノードペアにおけるeの値を行列で表したものである。行列Deのi行j列(i,jは自然数:1≦i≦|d|、1≦j≦|s|)の要素は、削減ノードdと使用継続ノードsとのノードペア<d、s>におけるeを表す。なお、|d|は削減ノードの数を表し、|s|は使用継続ノードの数を表す。更に、“T”は行列の転置、“×”は行列の積、“bar”はbarが付された行列と行数及び列数が等しく全ての要素値が“1”の行列から、barが付された行列を引いた行列を表す。
また、各ノードペアにおける(1)式のu、すなわち、削減ノードに格納されるブロックのうち使用継続ノードに格納されているブロックの数は、(5)式で表される。
ここで、Duは、各ノードペアにおけるuの値を行列で表したものである。行列Duのi行j列の要素は、削減ノードdと使用継続ノードsとのノードペア<d、s>におけるuを表す。
また、各ノードペアにおける(1)式のt、すなわち、削減ノードに格納されているブロックの数は、(6)式で表される。
ここで、Dtは、各ノードペアにおけるtの値を行列で表したものである。行列Dtのi行目の要素は、削減ノードdにおけるtを表す。更に、|b|は冗長化前のブロック数、すなわち行列Dd又は行列Dsの行数、1n×mは全ての要素値が“1”であるn行m列の行列を表す。なお、n、mは自然数を表す。従って、本実施形態の例、すなわち、行列Ddが(2)式、行列Dsが(3)式で表される場合、|b|はブロック番号b1、b2、b3、及びb10000の“4”となる。
従って、スコア表58は(7)式で表される。
ここで、Dsは、各ノードペアにおけるスコアScの値を行列で表したものである。行列Dsのi行j列の要素Ds(i,j)は、削減ノードdと使用継続ノードsとのノードペア<d、s>におけるスコアScを表す。すなわち、Dsは図3に示したスコア表58を表す。また、演算子“/”は対応する要素同士の除算を表す。ただし、“0”で除した場合の演算結果は“−∞”とする。なお、実際の演算では、“−∞”として、各要素Ds(i,j)が取りうる最小の値に比べて十分に小さい値を設定するようにしてもよい。また、|s|は既に説明したように使用継続ノードの数を表し、本実施形態の例では“4”になる。
(7)式に基づいて行列Dsを演算した結果を(8)式に示す。
算出部52は、算出した行列Dsをメモリ504の予め定めた領域に保存する。
ステップS50では、選択部53は、メモリ504から行列Dsを取得し、行列DsにおいてスコアScが最も大きいノードペアを選択する。従って、本実施形態の例の場合、選択部53によってノードペア<d,s>が選択される。
ステップS60では、ステップS50の処理で選択したノードペア<d,s>に対応した転送情報を生成する。行列Dbを、ステップS50の処理で選択したノードペア<d,s>における転送対象ブロックを表す行列とすれば、行列Dbは(9)式で表される。
ここで、行列Dd[,(d)]は、削減ノードdにおけるブロックの格納状況を表す行列Ddのi列目の列ベクトルを並べた行列である。また、行列Ds[,(s)]は、使用継続ノードsにおけるブロックの格納状況を表す行列Dsのj列目の列ベクトルを並べた行列である。また、演算子“&”は、真であれば“1”、偽であれば“0”の値をとる行列要素同士の論理積を表す。
行列Dbは|b|行1列の行列となり、行とブロック番号との対応付けは、行列Dd及び行列Dsと同じ対応付けが行われる。(10)式にノードペア<d、s>を選択した場合の行列Dbを示す。
選択部53は、要素が“1”となる行に対応したブロック番号のブロックを、選択したノードペアの削減ノードから使用継続ノードへ転送する転送対象ブロックとして特定する。従って(9)式の演算結果が(10)式で表される場合、選択部53は、ブロック番号b1及びブロック番号b10000のブロックを、削減ノードdから使用継続ノードsへ転送する転送対象ブロックとして特定する。
そして、選択部53は、ステップS50の処理で選択したノードペアのノード番号、すなわち削減ノード及び使用継続ノードのノード番号と、行列Dbと、を1組とした転送情報を生成し、メモリ504の予め定めた領域に保存する。従って、本実施形態の例では、(d、s、(1,0,0,1))の転送情報が生成される。
ステップS70では、選択部53は行列Dsのうち、ステップS50の処理で選択したノードペアに対応する行及び列に含まれる全ての要素を“−∞”に設定する。行列Dsの該当する要素を“−∞”にする理由は、ステップS50の処理において、一度選択したノードペアが選択されないようにするためである。
本実施形態の例では、ステップS50においてノードペア<d,s>が選択されているため、ステップS70の処理を実行した後の行列Dsは(11)式のように更新される。
ステップS80では、選択部53はステップS50の処理で、選択可能な全ての削減ノードを含むノードペアを選択したか否かを判定する。ここで、選択可能な削減ノードとは、行列Dsにおいて−∞でない要素を含む行ベクトルに対応する削減ノードをいう。
選択可能な全ての削減ノードが選択されたか否かの判定は、行列Dsの全ての要素が“−∞”であるか否かによって判定することができる。否定判定の場合にはステップS50へ移行し、選択可能な全ての削減ノードが選択されるまで、ステップS50〜S80の処理を繰り返す。
本実施形態の例では、ステップS70の処理で行列Dsが(11)式のように更新されている。従って、選択部53は、2度目のステップS50の処理で、共にスコアScが“1/3”であるノードペア<d、s>、又はノードペア<d、s>の何れかのノードペアを選択する。
この様に、行列DsにスコアScが同じノードペアが複数存在する場合は、何れのノードペアを選択してもよい。ここでは一例としてノードペア<d,s>を選択する。しかし、スコアScが同じ場合のノードペアの選択方法はこれに限定されない。例えば、削減ノードと使用継続ノードとの通信経路長がより短いノードペアを選択するようにしてもよい。この場合、ブロックを表す信号の伝送距離がより短くなるため、削減ノードと使用継続ノードとの間で実行されるブロック転送が終了するまでの時間をより短縮することができる。
そして、選択部53は、2度目のステップS60の処理で、(9)式に従って行列Dbを演算し、ノードペア<d,s>における転送対象ブロックを特定し、転送情報を生成する。従って、本実施形態の例では、(d、s、(1,1,0,0))の転送情報が生成される。
そして、選択部53は2度目のステップS70の処理で、(11)式で表される行列Dsに対して、ノードペア<d,s>に対応する行及び列に含まれる全ての要素を“−∞”に設定し、行列Dsを更新する。更新後の行列Dsを(12)式に示す。
一方、ステップS80の判定処理が肯定判定の場合、ステップS90へ移行する。従って、本実施形態の例では、2度目のステップS70の処理が終了した後、ステップS80の判定処理により、ステップS90へ移行する。
ステップS90では、選択部53は、ステップS60の処理で生成した転送情報に従って各転送情報に含まれるノードペア間で転送対象ブロックを転送した後の、ノード30のブロックの格納状況に基づいて、ブロック存在情報57を更新する。具体的には、選択部53は、ステップS50の処理で選択したノードペアの集合と、行列Dd及び行列Dsとを用いた行列演算により、行列Dd及び行列Dsを更新する。
今、ステップS50の処理で選択したノードペアの集合を、{<d,sj1>,<d,sj2>,・・・,<d|d|,sj|d|>}とする。この場合、行列Ddの更新後の行列Dd’は(13)式で表され、行列Dsの更新後の行列Ds’は(14)式で表される。


ここで、関数f(d)は、削減ノードdに対してノードペアとなる使用継続ノードを表す行列Dsの列番号を出力する関数である。もし削減ノードdに対してノードペアとなる使用継続ノードsが存在しない場合には、関数f(d)は値“#”を出力する。また、Ds[,(c,c,・・・,c)]は、行列Dsのうち( )内に列記されたc列目の列ベクトルを、列記順に並べた行列を表す。ただし、Ds[,(c,c,・・・,c)]は、cの値が“#”の場合には、要素が全て1の列ベクトルを並べる。
また、関数f(s)は、使用継続ノードsに対してノードペアとなる削減ノードを表す行列Ddの列番号を出力する関数である。もし使用継続ノードsに対してノードペアとなる削減ノードが存在しない場合には、関数f(s)は値“*”を出力する。
また、Dd[,(c,c,・・・,c)]は、行列Ddのうち( )内に列記されたc列目の列ベクトルを、列記順に並べた行列を表す。ただし、Dd[,(c,c,・・・,c)]は、cの値が“*”の場合には、要素が全て0の列ベクトルを並べる。また、演算子“|”は対応する要素同士の論理和を表す。
図7はDd’の演算の一例を説明した図であり、図8はDs’の演算の一例を説明した図である。まず、図7を用いて、行列Dd’の具体的な演算を説明する。
まず、f(d)を計算する。本実施形態の例では、ステップS50の処理においてノードペア<d,s>及び<d,s>が選択される。従って、各々の削減ノードに対してノードペアとなる使用継続ノードを表す行列Dsの列番号は、f(d)=4、f(d)=2となる。従って、行列Dd’はDd’=Dd&Ds[,(4,2)]として求められる。ここで、Ds[,(4,2)]は、行列Dsの4列目と2列目の列ベクトルを、( )内の列記順に並べた行列である。
次に、図8を用いて、行列Ds’の具体的な演算を説明する。
まず、f(s)を計算する。本実施形態の例では、使用継続ノードはs〜sの4台であり、使用継続ノードs及びsに対してノードペアとなる削減ノードは存在しない。
従って、各々の使用継続ノードに対してノードペアとなる削減ノードを表す行列Ddの列番号は、f(s)=*、f(s)=2、f(s)=*、f(s)=1となる。従って、行列Ds’はDs’=Ds|Dd[,(*,2,*,1)]として求められる。ここで、Dd[,(*,2,*,1)]は、要素が全て0の列ベクトルと、行列Ddの1列目及び2列目を( )内の列記順に並べた行列である。
以上により求められた本実施形態の例における行列Dd’を(15)式、行列Ds’を(16)式に示す。


そして、ステップS100では、選択部53は、ステップS90の処理で更新した行列Dd’を参照して、削減ノードに何れかのブロックが存在するか否かを判定する。肯定判定の場合、すなわち行列Dd’が零行列でない場合にはステップS40の処理に移行し、行列Dd’が零行列になるまでステップS40〜S100の処理を繰り返し実行する。
本実施形態の例では、(15)式に示すように行列Dd’は零行列ではないため、選択部53は、ステップS40〜S100の処理を繰り返し実行する。この繰り返し実行のステップS40の処理では、算出部52は、ステップS90の処理で更新された行列Dd’及び行列Ds’を用いてスコアScを算出し、新たなスコア表58である行列Ds’を生成する。
本実施形態の例において、算出部52が生成する行列Ds’を(17)式に示す。
更に、選択部53は、ステップS50の処理で行列Ds’を参照し、行列Ds’においてスコアScが最も大きいノードペアを選択する。この場合、ノードペア<d,s>とノードペア<d,s>のスコアScが共に“1”となるが、既に説明したようにスコアScが同じ場合、何れのノードペアを選択してもよいため、ここでは、選択部53はノードペア<d,s>を選択するものとする。
そして、ステップS60の処理において、選択部53は(9)式に従ってノードペア<d,s>における転送対象ブロックを表す行列Db’を算出する。この場合の行列Db’を(18)式に示す。
このようにして、選択部53は(d、s、(0,0,1,0))を転送情報として生成する。
以上により本実施形態の例では、選択部53は図9に示すように、転送情報1、転送情報2、及び転送情報3を含む転送指示リスト59を生成し、メモリ504の予め定めた領域に保存する。
一方、ステップS100の判定処理において否定判定となった場合には、データ退避制御処理を終了する。
指示部54は、上記に説明したデータ退避制御処理によって生成された転送指示リスト59を参照し、転送情報に指定されたノードペア間で転送対象ブロックを転送するよう、ノード30に対してブロック転送指示を送信する。
図10は、本実施形態の例において生成された転送指示リスト59に従って、ノード30にブロックを転送させた後のノード30のブロックの格納状況を示す図である。
図10に示すように、図9に示した転送情報1に従って、削減ノードdから使用継続ノードsへ、ブロック番号b1及びb10000のブロックが移動される。また、図9に示した転送情報2に従って、削減ノードdから使用継続ノードsへ、ブロック番号b1及びb2のブロックが移動される。更に、図9に示した転送情報3に従って、削減ノードdから使用継続ノードsへ、ブロック番号b3のブロックが移動される。
そして、転送更新指示部55は、通信部51を介してデータブロック情報管理装置40へブロック存在情報更新指示を送信し、データブロック情報管理装置40に対して、データブロック情報管理装置40が管理するブロック存在情報57の更新を要求する。これにより、データブロック情報管理装置40が管理するブロック存在情報57は、削減ノードdに含まれる全てのブロックを使用継続ノードsへ退避させた後のノード30のブロックの格納状況を反映したものとなる。
このように、本実施形態に係るデータ退避制御装置50は、削減ノードdと使用継続ノードsとの組み合わせであるノードペア毎に、削減ノードに含まれるブロックと、使用継続ノードに含まれるブロックとの重複度合いを求める。そして、データ退避制御装置50は、重複度合いがより小さいノードペアから順に選択し、選択したノードペアの使用継続ノードでブロックが重複しないように、削減ノードのブロックを使用継続ノードへ転送させるブロック転送指示をノード30へ出す。
一方、削減ノードに含まれる全てのブロックを使用継続ノードへ転送する場合に、本実施形態で説明したデータ退避制御処理の他、例えば、単に記憶装置の空き容量が大きい使用継続ノードから順に転送する方法等が考えられる。しかし、ノード30では各ブロックは冗長化され、複数の使用継続ノードに分散して格納されている。
従って、使用継続ノードに含まれるブロックのブロック番号を考慮せずに、削減ノードから指定した使用継続ノードへブロックを転送する場合、指定した使用継続ノードに重複するブロックが確率的に存在し、転送できないブロックが削減ノードに残ることがある。
この場合、削減ノードに含まれる全てのブロックが使用継続ノードに転送されるまで、次々に使用継続ノードを変えながら、削減ノードに含まれるブロックの転送を実行する必要がある。
しかし、ブロックの転送の前後には、削減ノードと使用継続ノードとの間でブロックの転送に係る事前手続き及び事後手続きが必要となる。これらの手続きが行われる期間は、ブロックの転送が行われていない期間であり、すなわち、ブロックの転送に対するオーバーヘッドとなる。
従って、できるだけ短時間で削減ノードに含まれる全てのブロックの転送を完了させるためには、できるだけブロックの転送を行うノードペアの数を少なくした方がよい。
本実施形態に係るデータ退避制御装置50は、全てのノードペアの中から、重複せずに転送できるブロックの数がより多いノードペアを優先して選択するため、より少ないノードペアの数で、削減ノードに含まれる全てのブロックの転送を完了させることができる。
また、本実施形態に係るデータ退避制御装置50は、行列演算によりブロック存在情報57の更新、スコア表58の更新、及び転送対象ブロックの特定を行う。従って、本実施形態に係るデータ退避制御装置50は、例えばStrassenのアルゴリズム等、行列演算に関する公知の高速演算アルゴリズムを利用することができる。従って、高速演算アルゴリズムが利用できない他の演算方法と比較して、より短時間に転送指示リスト59を生成することができる。
なお、本実施形態に係るデータ退避制御装置50では、一例として、ノードペアにおけるブロックの重複度合いを示すスコアScを(1)式を用いて算出したが、スコアScの算出方法はこれに限られない。
図11は、スコアScの算出式の例を示した図である。
番号(1)の算出式は、より多い転送数、すなわち、使用継続ノードへ転送可能なブロック数がより多い場合に、より大きな値となる算出式である。また、番号(2)の算出式は、より少ない重複数、すなわち、削減ノードと使用継続ノードとの間で重複するブロック数がより少ない場合に、より大きな値となる算出式である。また、番号(3)の算出式は、より少ない転送不必要数、すなわち、使用継続ノードへ転送できないブロック数がより少ない場合に、より大きな値となる算出式である。また、番号(4)の算出式は、より多い転送割合、すなわち、削減ノードに含まれるブロックのうち、使用継続ノードへ転送可能なブロックの割合がより大きい場合に、より大きな値となる算出式である。また、番号(5)の算出式は、削減ノードに含まれるブロックのうち、削減ノードと使用継続ノードとの間で重複するブロックの割合がより小さい場合に、より大きな値となる算出式である。なお、番号(4)の算出式は(1)式と同じ算出式である。また、番号(6)の算出式は、削減ノードに含まれるブロックのうち、使用継続ノードへ転送できないブロックの割合がより小さい場合に、より大きな値となる算出式である。
以上、実施形態を用いて開示の技術を説明したが、開示の技術は上記実施形態に記載の範囲には限定されない。開示の技術の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も開示の技術の技術的範囲に含まれる。例えば、開示の技術の要旨を逸脱しない範囲で処理の順序を変更してもよい。
また、実施形態では、データ退避制御プログラム518が記憶部506に予め記憶(インストール)されている態様を説明したが、これに限定されるものではない。開示の技術に係るデータ退避制御プログラムは、コンピュータ読取可能な記録媒体に記録されている形態で提供することも可能である。例えば、開示の技術に係るデータ退避制御プログラムは、CD−ROM、DVD−ROM、及びUSBメモリ等の可搬型記録媒体に記録されている形態で提供することも可能である。また、開示の技術に係るデータ退避制御プログラムは、フラッシュメモリ等の半導体メモリ等に記録されている形態で提供することも可能である。
なお、本実施形態に係るデータ退避制御装置50では、一例として、ノードペアにおけるブロックの重複度合いが小さくなるに従って、より大きな値に設定されるスコアを用いて、複数のノードペアの中からデータの転送を実行するノードペアを選択した。
しかし、ノードペアにおけるブロックの重複度合いが小さくなるに従って、より小さい値に設定されるスコアを用いて、複数のノードペアの中からデータの転送を実行するノードペアを選択してもよいことは言うまでもない。
この場合、図6に示したステップS50の処理において、選択部53は、メモリ504から行列Dsを取得し、行列DsにおいてスコアScが最も小さいノードペアを選択する。そして、ステップS70の処理において、選択部53は行列Dsのうち、ステップS50の処理で選択したノードペアに対応する行及び列に含まれる全ての要素を無限大に設定すればよい。そして、ステップS80の処理において、選択部53は、行列Dsの全ての要素が無限大であるか否かによって、選択可能な全ての削減ノードがステップS50の処理で選択されたか否かを判定すればよい。また、単にノードペアにおけるブロックの重複度合いと、重複度合いに対応するスコアの大小関係が逆転しただけであるため、図6における各ステップで説明した演算処理をそのまま適用することができる。
また、本実施形態に係るデータ退避制御装置50では、ユーザ端末20から受信したノード30の削減指示からノード30の削減リストを取得したが、データ退避制御装置50の管理者が入力部510から入力するようにしてもよい。また、データ退避制御装置50は、ノード30の削減指示をユーザ端末20から直接受信するのではなく、例えばデータブロック情報管理装置40等のクラウドシステムに含まれる他の装置を介して受信するようにしてもよい。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを求め、
前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアから順に選択し、
前記選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる
ことを含む処理を実行させるデータ退避制御方法。
(付記2)
前記重複度合いをスコアとして数値化し、
前記スコアの大小関係に基づいて、前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアを選択する
付記1記載のデータ退避制御方法。
(付記3)
前記スコアは前記重複度合いが小さくなるに従って大きい値を取り、
前記装置ペアの各々のうち、前記スコアのより大きい装置ペアを前記重複度合いがより小さい装置ペアとして選択する
付記2記載のデータ退避制御方法。
(付記4)
前記複数の装置に含まれる各々のデータブロックについて、前記退避元装置に含まれるデータブロックであるか否かを表す情報、及び前記複数の退避先装置に含まれるデータブロックであるか否かを表す情報の各々を行列で表し、
前記行列を含む行列演算によって前記スコアを算出すると共に、前記行列を含む行列演算によって前記選択された装置ペアにおける前記退避元装置から、前記選択された装置ペアにおける前記退避先装置へ転送するデータブロックを選択する
付記2又は付記3記載のデータ退避制御方法。
(付記5)
前記スコアが同じ装置ペアが複数存在する場合、前記スコアが同じ装置ペアの各々のうち、前記退避元装置と前記退避先装置とを接続する通信経路長がより短い装置ペアを選択する
付記2〜付記4の何れか1項に記載のデータ退避制御方法。
(付記6)
コンピュータに、
冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを求め、
前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアから順に選択し、
前記選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる
ことを含む処理を実行させるためのデータ退避制御プログラム。
(付記7)
前記重複度合いをスコアとして数値化し、
前記スコアの大小関係に基づいて、前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアを選択する
付記6記載のデータ退避制御プログラム。
(付記8)
前記スコアは前記重複度合いが小さくなるに従って大きい値を取り、
前記装置ペアの各々のうち、前記スコアのより大きい装置ペアを前記重複度合いがより小さい装置ペアとして選択する
付記7記載のデータ退避制御プログラム。
(付記9)
前記複数の装置に含まれる各々のデータブロックについて、前記退避元装置に含まれるデータブロックであるか否かを表す情報、及び前記複数の退避先装置に含まれるデータブロックであるか否かを表す情報の各々を行列で表し、
前記行列を含む行列演算によって前記スコアを算出すると共に、前記行列を含む行列演算によって前記選択された装置ペアにおける前記退避元装置から、前記選択された装置ペアにおける前記退避先装置へ転送するデータブロックを選択する
付記7又は付記8記載のデータ退避制御プログラム。
(付記10)
前記スコアが同じ装置ペアが複数存在する場合、前記スコアが同じ装置ペアの各々のうち、前記退避元装置と前記退避先装置とを接続する通信経路長がより短い装置ペアを選択する
付記7〜付記9の何れか1項に記載のデータ退避制御プログラム。
(付記11)
冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを算出する算出部と、
前記装置ペアの各々のうち、前記算出部により算出された前記重複度合いがより小さい装置ペアから順に選択する選択部と、
前記選択部により選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる指示を出す指示部と、
を備えたデータ退避制御装置。
(付記12)
前記算出部は、前記重複度合いをスコアとして数値化し、
前記選択部は、前記算出部で算出した前記スコアの大小関係に基づいて、前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアを選択する
付記11記載のデータ退避制御装置。
(付記13)
前記算出部は、前記重複度合いが小さくなるに従って大きい値を取るように前記スコアを算出し、
前記選択部は、前記装置ペアの各々のうち、前記算出部で算出された前記スコアのより大きい装置ペアを前記重複度合いがより小さい装置ペアとして選択する
付記12記載のデータ退避制御装置。
(付記14)
前記複数の装置に含まれる各々のデータブロックについて、前記退避元装置に含まれるデータブロックであるか否かを表す情報、及び前記複数の退避先装置に含まれるデータブロックであるか否かを表す情報の各々を行列で表し、
前記算出部は、前記スコアを前記行列を含む行列演算によって算出すると共に、
前記選択部は、前記行列を含む行列演算によって前記選択された装置ペアにおける前記退避元装置から、前記選択された装置ペアにおける前記退避先装置へ転送するデータブロックを選択する
付記12又は付記13記載のデータ退避制御装置。
(付記15)
前記選択部は、前記スコアが同じ装置ペアが複数存在する場合、前記スコアが同じ装置ペアの各々のうち、前記退避元装置と前記退避先装置とを接続する通信経路長がより短い装置ペアを選択する
付記12〜付記14の何れか1項に記載のデータ退避制御装置。
(付記16)
コンピュータに、
冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを求め、
前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアから順に選択し、
前記選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる
ことを含む処理を実行させるためのデータ退避制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
10 分散処理システム
20 ユーザ端末
30 ノード
40 データブロック情報管理装置
50 データ退避制御装置
51 通信部
52 算出部
53 選択部
54 指示部
55 転送更新指示部
56 モード指示部
57 ブロック存在情報
58 スコア表
59 転送指示リスト
60 通信回線
100 コンピュータシステム
200、300、400、500 コンピュータ
502 CPU
504 メモリ
506 記憶部
516 通信IF
518 データ退避制御プログラム
、d 削減ノード
〜s 使用継続ノード

Claims (7)

  1. コンピュータに、
    冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを求め、
    前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアから順に選択し、
    前記選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる
    ことを含む処理を実行させるデータ退避制御方法。
  2. 前記重複度合いをスコアとして数値化し、
    前記スコアの大小関係に基づいて、前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアを選択する
    請求項1記載のデータ退避制御方法。
  3. 前記スコアは前記重複度合いが小さくなるに従って大きい値を取り、
    前記装置ペアの各々のうち、前記スコアのより大きい装置ペアを前記重複度合いがより小さい装置ペアとして選択する
    請求項2記載のデータ退避制御方法。
  4. 前記複数の装置に含まれる各々のデータブロックについて、前記退避元装置に含まれるデータブロックであるか否かを表す情報、及び前記複数の退避先装置に含まれるデータブロックであるか否かを表す情報の各々を行列で表し、
    前記行列を含む行列演算によって前記スコアを算出すると共に、前記行列を含む行列演算によって前記選択された装置ペアにおける前記退避元装置から、前記選択された装置ペアにおける前記退避先装置へ転送するデータブロックを選択する
    請求項2又は請求項3記載のデータ退避制御方法。
  5. 前記スコアが同じ装置ペアが複数存在する場合、前記スコアが同じ装置ペアの各々のうち、前記退避元装置と前記退避先装置とを接続する通信経路長がより短い装置ペアを選択する
    請求項2〜請求項4の何れか1項に記載のデータ退避制御方法。
  6. コンピュータに、
    冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを求め、
    前記装置ペアの各々のうち前記重複度合いがより小さい装置ペアから順に選択し、
    前記選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる
    ことを含む処理を実行させるためのデータ退避制御プログラム。
  7. 冗長化されたデータブロックが分散して格納された複数の装置のうち、退避対象のデータブロックを格納する退避元装置と、前記退避対象のデータブロックの退避先となる複数の退避先装置の各々との装置ペア毎に、前記退避元装置に含まれるデータブロックと、前記退避先装置に含まれるデータブロックとの重複度合いを算出する算出部と、
    前記装置ペアの各々のうち、前記算出部により算出された前記重複度合いがより小さい装置ペアから順に選択する選択部と、
    前記選択部により選択された装置ペアにおける前記退避元装置のデータブロックを、前記選択された装置ペアにおける前記退避先装置のデータブロックと重複しないように前記選択された装置ペアにおける前記退避先装置へ転送させる指示を出す指示部と、
    を備えたデータ退避制御装置。
JP2015005191A 2015-01-14 2015-01-14 データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置 Pending JP2016130962A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015005191A JP2016130962A (ja) 2015-01-14 2015-01-14 データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015005191A JP2016130962A (ja) 2015-01-14 2015-01-14 データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置

Publications (1)

Publication Number Publication Date
JP2016130962A true JP2016130962A (ja) 2016-07-21

Family

ID=56415516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015005191A Pending JP2016130962A (ja) 2015-01-14 2015-01-14 データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置

Country Status (1)

Country Link
JP (1) JP2016130962A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022003556A (ja) * 2018-10-17 2022-01-11 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ配置方法
JP7392245B2 (ja) 2017-11-16 2023-12-06 インテル・コーポレーション オーケストレーションシステム、コンピュータプログラム、非一時的機械可読記憶媒体、および、方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7392245B2 (ja) 2017-11-16 2023-12-06 インテル・コーポレーション オーケストレーションシステム、コンピュータプログラム、非一時的機械可読記憶媒体、および、方法
JP2022003556A (ja) * 2018-10-17 2022-01-11 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ配置方法
JP7140898B2 (ja) 2018-10-17 2022-09-21 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ配置方法

Similar Documents

Publication Publication Date Title
US11907585B2 (en) Storing data sequentially in zones in a dispersed storage network
JP7158801B2 (ja) グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器
US20170123848A1 (en) Multi-task processing in a distributed storage network
US10735545B2 (en) Routing vault access requests in a dispersed storage network
US9996283B2 (en) Handling storage unit latency in a dispersed storage network
JP5526784B2 (ja) 縮退構成設計システムおよび方法
US9330199B2 (en) Striping of directed graphs and nodes with improved functionality
CN109725830B (zh) 管理独立磁盘冗余阵列的方法、设备和存储介质
JP6028641B2 (ja) 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法
JP5849794B2 (ja) ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
JP2016130962A (ja) データ退避制御方法、データ退避制御プログラム、及びデータ退避制御装置
JP6209862B2 (ja) プログラム、ジョブ監視支援方法、情報処理装置およびシステム
JP6930443B2 (ja) プロセス処理装置、プロセス処理システム、プロセス移行順序決定方法、及びプログラム
JP6175785B2 (ja) ストレージシステム、ディスクアレイ装置及びストレージシステムの制御方法
US11188258B2 (en) Distributed storage system
US11374815B2 (en) Network configuration diagram generate method and recording medium
JP2010244470A (ja) 分散処理システム及び分散処理方法
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置
JP5443686B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4686564B2 (ja) 負荷分散システム
JP7432916B2 (ja) 複数ネットワークスライスの障害復旧システム、障害復旧方法及びバックアップ用ネットワークスライス作製プログラム
JP2019144715A (ja) 情報処理装置、情報処理システム、及びプログラム
JPWO2014016950A1 (ja) 並列計算機システムおよび並列計算機システムへの処理負荷配置方法
JP7332249B2 (ja) 移行先決定プログラム、装置、及び方法