JP5867206B2 - 移動制御装置,プログラム及びストレージ装置 - Google Patents

移動制御装置,プログラム及びストレージ装置 Download PDF

Info

Publication number
JP5867206B2
JP5867206B2 JP2012061037A JP2012061037A JP5867206B2 JP 5867206 B2 JP5867206 B2 JP 5867206B2 JP 2012061037 A JP2012061037 A JP 2012061037A JP 2012061037 A JP2012061037 A JP 2012061037A JP 5867206 B2 JP5867206 B2 JP 5867206B2
Authority
JP
Japan
Prior art keywords
data
movement
data block
block
file
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.)
Expired - Fee Related
Application number
JP2012061037A
Other languages
English (en)
Other versions
JP2013196190A (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.)
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 JP2012061037A priority Critical patent/JP5867206B2/ja
Priority to US13/722,331 priority patent/US9356992B2/en
Publication of JP2013196190A publication Critical patent/JP2013196190A/ja
Application granted granted Critical
Publication of JP5867206B2 publication Critical patent/JP5867206B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本件は、移動制御装置,プログラム及びストレージ装置に関する。
近年、大量のデータを蓄積するために、複数のサーバノードを備える分散ストレージシステムが実現されている。分散ストレージシステムでは、データの蓄積とともに、ノード毎に蓄積しているデータ量が偏ってくることがある。
このため、各ノードにおいて蓄積したデータをノード間で移動させることにより、ノード間でのデータ量の均等化を図るデータ再配置が行なわれている。
データ再配置を行なうことにより、データの偏りにより生じる、一部のノードのストレージの枯渇や、特定のノードにアクセスが集中することによる性能低下を阻止することができる。
特開2011−215794号公報 特開2011−159242号公報
従来の分散ストレージシステムにおいては、ストレージを効率的に使用できるようにデータの再配置を行ないデータの均一化を行なうことが求められている。
1つの側面では、本件は、ストレージを効率的に使用できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、この移動制御装置は、複数のデータファイルの中からデータファイルを選択して移動元ノードから移動先ノードへ移動させる移動制御装置であって、前記データファイルを分割して生成した複数のデータブロックの中から、前記移動先ノードへ移動させる移動データブロックを選択する移動データブロック選択部と、前記移動データブロック選択部によって選択された前記移動データブロックを備えるデータファイルを移動データファイルとして選択する移動データファイル選択部と、前記移動データファイル選択部によって選択された前記移動データファイルに備えられる全てのデータブロックを前記移動データブロックに追加する移動データブロック追加部と、個々の移動データブロックのそれぞれについて、当該移動データブロックを備える全てのデータファイルが、前記移動データファイル選択部によって前記移動データファイルとして選択されると、当該移動データブロックを削除データブロックとして選択する削除データブロック選択部と、前記移動データブロックを前記移動先ノードに格納させるとともに、前記削除データブロックを前記移動元ノードから削除することにより、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる移動処理部とをそなえる。
また、このプログラムは、データファイルを分割して生成した複数のデータブロックの中から、移動元ノードから移動先ノードへ移動させる移動データブロックを選択し、選択された前記移動データブロックを備えるデータファイルを移動データファイルとして選択し、選択された前記移動データファイルに備えられる全てのデータブロックを前記移動データブロックに追加し、個々の移動データブロックのそれぞれについて、当該移動データブロックを備える全てのデータファイルが、前記移動データファイルとして選択されると、当該移動データブロックを削除データブロックとして選択し、前記移動データブロックを前記移動先ノードに格納させるとともに、前記削除データブロックを前記移動元ノードから削除することにより、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる。
さらに、このストレージ装置は、データファイルを記憶可能なデータ記憶装置と、前記データファイルを分割して複数のデータブロックを生成し、生成したデータブロック間で重複除去を行なって前記データ記憶装置に格納する重複除去部と、前記複数のデータブロックの中から、移動先ノードへ移動させる移動データブロックを選択する移動データブロック選択部と、前記移動データブロック選択部によって選択された前記移動データブロックを備えるデータファイルを移動データファイルとして選択する移動データファイル選択部と、前記移動データファイル選択部によって選択された前記移動データファイルに備えられる全てのデータブロックを前記移動データブロックに追加する移動データブロック追加部と、個々の移動データブロックのそれぞれについて、当該移動データブロックを備える全てのデータファイルが、前記移動データファイル選択部によって前記移動データファイルとして選択されると、当該移動データブロックを削除データブロックとして選択する削除データブロック選択部と、前記移動データブロックを前記移動先ノードに格納させるとともに、前記削除データブロックを移動元ノードから削除することにより、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる移動処理部とをそなえる。
本発明によれば、複数のノード間においてデータ量を均等化することができる。
実施形態の一例としてのストレージサーバノードをそなえる分散ストレージシステムの機能構成を模式的に示す図である。 実施形態の一例としてのストレージサーバノードをそなえる分散ストレージシステムの構成を模式的に示す図である。 実施形態の一例としての分散ストレージシステムにおけるデータファイル構成情報を模式的に例示する図である。 実施形態の一例としての分散ストレージシステムにおけるインデックステーブルを模式的に例示する図である。 実施形態の一例としての分散ストレージシステムにおけるデータファイル移動時の全体的な処理を説明するためのフローチャートである。 実施形態の一例としての分散ストレージシステムにおける再分散データ選択部によるデータファイルの移動処理を説明するためのフローチャートである。 (a),(b)は従来の重複排除手法を説明する図である。
以下、図面を参照して本移動制御装置,プログラム及びストレージ装置に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としてのストレージサーバノードをそなえる分散ストレージシステムの機能構成を模式的に示す図、図2はそのストレージサーバノードをそなえる分散ストレージシステムの構成を模式的に示す図である。
分散ストレージシステム1は、図2に示すように、管理サーバ30,プロキシサーバ40,クライアント60及びストレージサーバノード(ストレージ装置,移動制御装置)10−1〜10−6を備える。ただし、図1中においては、便宜上、クライアント60及びプロキシサーバ40の図示を省略している。
図2に示す例においては、管理サーバ30及び各ストレージサーバノード10−1〜10−6と各プロキシサーバ40とは、例えばLAN(Local Area Network)50を介して、相互に通信可能に接続されている。又、各プロキシサーバ40と各クライアント60とは、公衆回線網等のネットワーク51を介して、相互に通信可能に接続されている。
分散ストレージシステム1は、複数のストレージサーバノード10−1〜10−6がそれぞれ有するディスク領域をまとめて、あたかも一つのストレージのように取り扱うことを可能とする。この分散ストレージシステム1においては、複数のデータファイルを複数のストレージサーバノード10−1〜10−6に分散して配置される。
以下、ストレージサーバノードを示す符号としては、複数のストレージサーバノードのうち1つを特定する必要があるときには符号10−1〜10−6を用いるが、任意のストレージサーバノードを指すときには符号10を用いる。
クライアント60は、例えば、パーソナルコンピュータ等の情報処理装置であり、プロキシサーバ40を介して、ストレージサーバノード10に格納されたデータファイル(ファイル)に対するリードやライトの要求(リード/ライト要求)を行なう。図1及び図2に示す例においては、分散ストレージシステム1に2つのクライアント60が備えられているが、これに限定されるものではなく、1つもしくは3以上のクライアント60をそなえてもよい。
クライアント60は、例えば、アクセス対象のファイル名(オブジェクト名)等のデータファイルを特定する情報とともにリード/ライト要求をプロキシサーバ40に対して送信する。
プロキシサーバ40は、クライアント60に代わってストレージサーバノード10へのデータアクセスを行なう。各プロキシサーバ40は、サーバ機能を備えたコンピュータ等の情報処理装置であり、互いに同様の構成を備える。図1及び図2に示す例においては、分散ストレージシステム1に2つのプロキシサーバ40が備えられているが、これに限定されるものではなく、1つもしくは3以上のプロキシサーバ40をそなえてもよい。
プロキシサーバ40は、それぞれ分散表41を備える。分散表41は、データファイルを特定する情報に対して当該データファイルの格納位置を関連付けて構成される。プロキシサーバ40は、クライアント60からデータファイルへのリード/ライト要求を受信すると、受信したファイル名に基づいて分散表41を参照して、アクセス対象のデータファイルの格納場所を確認する。プロキシサーバ40は、このデータファイルの格納場所に対応するストレージサーバノード10に対してリード/ライト要求を送信する。又。プロキシサーバ40は、ストレージサーバノード10からリード/ライト要求に対するリプライを受信すると、リード/ライト要求の送信元のクライアント60に対して、そのリプライを転送する。
なお、プロキシサーバ40としての機能は、既知の種々の手法で実現され、その詳細な説明は省略する。
管理サーバ30は、サーバ機能を備えたコンピュータ等の情報処理装置であり、本分散ストレージシステム1における各種設定や制御を行なう。又、管理サーバ30は、本分散ストレージシステム1における各ストレージサーバノード10が保持するデータ量を管理するデータ管理機能(データ管理プロセス)をそなえる。本実施形態においては、分散ストレージシステム1に一つの管理サーバ30を備える例を示すが、これに限定されるものではなく、2以上の管理サーバ30を備えてもよいし、ストレージサーバノード10が管理サーバ30の機能を分担してもよい。
後述する各ストレージサーバノード10は、それぞれが有する記憶装置14に保持するデータのデータ量(以下、単にデータ量という)を定期的に管理サーバ30のデータ量管理プロセスに通知する。
管理サーバ30(データ量管理プロセス)は、本分散ストレージシステム1に備えられた複数のストレージサーバノード10間でデータ量の偏りが生じているか否かを判断する。例えば、データ量管理プロセスは各ストレージサーバノード10からそれぞれ通知されたデータ量の平均値を算出し、この算出した平均値と各ストレージサーバノード10が保持するデータ量とを比較する。
例えば、保持するデータ量が平均値よりも少なく、且つ、そのデータ量と平均値との差が所定の閾値以上であるストレージサーバノード10が検出された場合には、データ量管理プロセスは、ストレージサーバノード10間でデータの偏りが生じたと判断する。又、このデータ量が平均値に対して所定の閾値以上少ないと判断されたストレージサーバノード10を、データファイルの移動先となるストレージサーバノード10として決定する。なお、以下、このデータファイルの移動先となるストレージサーバノード10を移動先ノードという場合がある。
また、管理サーバ30は、本分散ストレージシステム1に備えられた複数のストレージサーバノード10間において、例えば、保持するデータ量が最も多いストレージサーバノード10に対して、前述した移動先ノードに対してデータファイルの移動を指示する。以下、管理サーバ30によりデータファイルの移動を指示されるストレージサーバノード10を移動元ノードという場合がある。
また、管理サーバ30(データ量管理プロセス)は、データの偏りが生じたと判断した場合に、算出した平均値と移動先ノードが保持するデータ量との差(Xbyte)を目標データ移動量(目標削減データサイズ)として決定する。すなわち、この目標データ移動量(Xbyte)が、本分散ストレージシステム1におけるデータの偏りを解消するために、移動元ノードから移動先ノードに移動させるべきデータ量である。
管理サーバ30は、移動元ノードに対して移動先ノード及び目標データ移動量を通知することにより、移動先ノードへの目標データ移動量に相当するデータファイルの移動を指示する。
ストレージサーバノード10−1〜10−6は、それぞれ記憶装置(データ記憶装置)14をそなえる情報処理装置であり、この記憶装置14にファイルデータを格納するストレージサーバ機能を備える。各ストレージサーバノード10−1〜10−6は互いに同様の構成を備える。なお、図1においては、便宜上、ストレージサーバノード10−1についてのみハードウェア構成や機能構成を図示し、他のストレージサーバノード10−2〜10−6のハードウェア構成や機能構成の図示を省略している。
本実施形態においては、分散ストレージシステム1に6つのストレージサーバノード10を備える例を示すが、これに限定されるものではなく、5つ以下もしくは7つ以上のストレージサーバノード10を備えてもよい。
ストレージサーバノード10は、図1に示すように、CPU(Central Processing Unit)11,RAM(Random Access Memory)12,ROM(Read Only Memory)13及び記憶装置14をそなえる。
記憶装置14は種々のデータやプログラムを格納する記憶装置であって、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)である。又、記憶装置14として、例えば、複数の記憶装置によりRAID(Redundant Arrays of Inexpensive Disks)を構成してもよく、種々変形して実施することができる。
この記憶装置14には、各クライアント60からリードもしくはライトされるデータファイルが、所定サイズに分割されたデータブロックの状態で格納される。そして、この記憶装置14においては、同一のデータブロックが重複して格納されることがない。
また、記憶装置14は、ファイル情報240及び重複排除情報250を格納する。
ファイル情報240は、そのストレージサーバノード10に格納されるデータファイルを示す情報(例えば、ファイル名)である。後述するデータ再分散部27によりストレージサーバノード10間でデータファイルの再配置が行なわれ、データファイルの移動が行われると、このファイル情報240が更新される。
重複排除情報250は、データファイルを構成するデータブロックに関する情報であって、データを分割して形成されるデータブロックや、そのハッシュキー,データブロック構成等を表す。重複排除情報250としては、例えば、FP情報250a,データファイル構成情報250b及びインデックステーブル250cをそなえる。
FP情報250aは、記憶装置14におけるブロックデータの格納状態(格納実績)を管理する情報であり、データファイルを構成する各データブロックのフィンガープリント(finger print:FP)が登録される。例えば、後述する記憶装置14にブロックデータを格納する際に、この記憶装置14に格納したブロックデータを特定する情報が、そのボリュームを識別する情報に対応させてFP情報250aに登録される。
FPは、データブロックのハッシュ値を求める手法等により作成される。後述する重複除去部21は、このFPを用いることによりデータブロックの一致/不一致を判断し、これによりデータブロックの重複を判断する。このFP情報250aは、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
データファイル構成情報250bは、データファイルを復元するための情報であり、例えば、データファイルを構成するデータブロックのインデックスやその位置を示す(データブロックパターン)。インデックスは、データブロックを一意に特定する識別情報である。
図3は実施形態の一例としての分散ストレージシステム1におけるデータファイル構成情報250bを模式的に例示する図である。
なお、図3に示す例においては、ファイルを構成する各データブロックの位置をデータブロックの配置順序で表している。すなわち、この図3に示す例においては、例えば、ファイルA(データファイル)が、インデックス01,02,03,04,05で表されるデータブロックを備えることを示す。このファイルAは、インデックス01,02,03,04,05で表されるこれらのデータブロックを、この図3に示す順で配置することにより復元される。同様に、ファイルBはインデックス05,06,02,03,04で表されるデータブロックを備えるものであり、これらのデータブロックをこの順で配置することにより、ファイルBが復元される。
このように、このデータファイル構成情報250bを参照することにより、データブロックを用いてデータの復元ファイルの復元を行なうことが可能となる。なお、データファイル構成情報250bは、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
図4は実施形態の一例としての分散ストレージシステム1におけるインデックステーブル250cを模式的に例示する図である。
インデックステーブル250cは、当該ストレージサーバノード10に格納されるデータファイルの各データブロックに関する情報であり、当該ストレージサーバノード10における各データブロックの重複関係を示す。インデックステーブル250cは、図4に示すように、インデックス(index)に対して、カウンタ(counter),リファー(refer)及びポインタ(pointer)を関連付けて構成されている。
カウンタは、そのストレージサーバノード10において、そのデータブロックを備える(使用する)データファイル(使用元)の数である。すなわち、カウンタの値は、当該データブロックを使用するデータファイルの重複数(重複使用数)を表す。このカウンタの値(カウンタ値)が小さいデータブロックは、当該データブロックを使用(共用)しているデータファイルが少ないことを示す。
リファーは、そのデータブロックが備えられるデータファイルを示し、データファイルを特定する情報が格納される。
例えば、図4に示す例において、インデックス“01”のデータブロックに対して、カウンタ “1”及びリファー“A”が設定されている。これにより、このインデックス“01”のデータブロックは、一つのデータファイルであるファイルAにのみ備えられることがわかる。又、インデックス“02”のデータブロックに対して、カウンタ “2”及びリファー“A,B”が設定されている。これにより、このインデックス“02”のデータブロックは、ファイルA,Bの2つのデータファイルに備えられることがわかる。ポインタは、そのデータブロックの格納位置(アドレス等)を表す。
なお、上述した重複排除情報250は、例えば、後述する重複除去部21によって設定される。
なお、ストレージサーバノード10においては、例えば、キーボードやマウス等の入力装置や表示装置をそなえてもよい。
ROM13は種々のデータやプログラムを格納する記憶装置である。RAM12はCPU11が演算処理等を行なう際に、データやプログラム等を一時的に格納する記憶装置である。
また、このRAM12には、後述する低カウントブロックリスト121,移動ブロックリスト122,使用元リスト123及び削除ブロックリスト124が記憶される。なお、上述した重複排除情報250やファイル情報240をこのRAM12に記憶してもよい。
CPU11はROM13や記憶装置14に格納されたOS(Operating System)や各種プログラムを実行することにより、種々の演算や制御を行なう。ストレージサーバノード10においては、このCPU11が記憶装置14等に格納されたプログラムを実行することにより、図1に示す、重複除去部21,再分散データ選択部22及びデータ再分散部27として機能する。
なお、これらの重複除去部21,再分散データ選択部22及びデータ再分散部27としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
重複除去部21,再分散データ選択部22及びデータ再分散部27としての機能を実現する際には、内部記憶装置(本実施形態ではRAM12やROM13)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ストレージサーバノード10がコンピュータとしての機能を有している。
重複除去部21は、データファイルを複数のデータブロックに分割して重複除去を実行し、重複排除を実行して得られたデータブロックを記憶装置14に記憶させる。
重複除去部21は、データファイルを複数のデータブロックに分割するデータ分割部としての機能を備える。例えば、重複除去部21は、ホストコンピュータ等の図示しない外部装置から受信するバックアップデータ(データファイル)を分割する。
重複除去部21は、固定長型もしくは可変長型のいずれかの形式でデータファイルの分割を行なう。ここで、固定長型は予め決められたサイズでデータを分割する手法であり、可変長型は特定の区切り方のルールに従って分割する方法である。なお、この重複除去部21によるデータ分割は、既知の種々の手法により実現することができるものであり、その詳細な説明は省略する。
また、重複除去部21は、例えば、データブロックのFPによりデータブロックの一致/不一致を判断し、これによりデータブロックの重複を判断する重複記憶判定部としての機能をそなえる。本実施形態においては、重複除去部21は、FPが同一のデータブロックは同一のデータブロックであると判断する。
重複除去部21は、例えば、データファイルを記憶装置14に格納する際に、そのデータファイルを構成する個々のデータブロックについて、それぞれ、FP情報250aを参照する。これにより、各データブロックと同一のデータブロックが記憶装置14に記憶されているか否かを判定する。
また、重複除去部21は、例えば、データファイルを記憶装置14に格納する際に、処理対象のデータブロックと同一のデータブロックが記憶装置14に格納されていると判断した場合には、その処理対象のデータブロックを廃棄し、その処理対象データブロックの記憶装置14における重複保存を抑止する。すなわち、重複除去部21は、同一のFPのデータブロックを一の記憶装置14においては1つしか記憶させない、重複排除(デデュープ:De-dupulication)を実現する。重複除去部21は、記憶装置14中には1つだけ記憶させたデータブロックを複数のデータファイルで共用することにより、データファイルの記憶領域を削減する。すなわち、重複除去部21は、重複排除エンジンとして機能する。
なお、重複排除には、例えば、データをストレージ装置の制御部で比較しながらストレージ装置内に記憶するインライン方式を用いることができる。なお、これに限定されるものではなく、例えば、いわゆるポストプロセス方式やクライアント方式等の他の手法を用いてもよく、適宜変更して実施することができる。
また、重複除去部21は、データブロック毎に行なったFPやデータブロック構成の作成等の結果を、FP情報250aやインデックステーブル250c,データファイル構成情報250bに保存する。
さらに、重複除去部21は、記憶装置14からデータファイルを読み出す際には、その記憶装置14に記憶されたボリュームについての重複排除情報250を読み出す。
重複除去部21は、データの読み出し時において、データブロックからボリュームを復元する。重複除去部21は、例えば、データファイル構成情報250bを参照し、記憶装置14から読み出したデータブロックを用いてデータファイルの復元を行なう。すなわち、重複排除情報250に従って、データブロックの複写等を行なうことによりデータファイルを作成する。なお、データファイルと当該データファイルを分割して生成されるデータブロックとに関して、データブロックを備えるデータファイル、もしくはデータブロックを用いるデータファイルという場合がある。
なお、重複排除情報250に基づくデータブロックを用いたデータファイルの復元方法は、既知の種々の手法を用いて実現され、その詳細な説明は省略する。
再分散データ選択部22は、管理サーバ30から、移動先ノード及び目標データ移動量を通知されると、当該ストレージサーバノード10の記憶装置14に格納されているデータファイルの中から、移動先ノードへ移動(再分散)させるデータファイル(移動データファイル)を選択する。すなわち、再分散データ選択部22は、複数のストレージサーバノード10に、データファイルが分散して格納された分散ストレージシステムにおいて、一のストレージサーバノード10から他のストレージサーバノード10に移動させる移動データファイルを選択する。
再分散データ選択部22は、重複除去部21により重複排除が行なわれているデータファイルに関して、データファイルを構成するデータブロックの重複状況を考慮して、移動元ノードから移動先ノードへ移動させるデータファイル(移動データファイル)を選択する。
再分散データ選択部22は、インデックステーブル250cを参照しながら、低カウントブロックリスト121,移動ブロックリスト122,使用元リスト123及び削除ブロックリスト124を、順次更新することにより、移動データファイルを決定する。
これらの低カウントブロックリスト121,移動ブロックリスト122,使用元リスト123及び削除ブロックリスト124は、例えば、RAM12に記憶される。又、再分散データ選択部22は、インデックステーブル250cの更新も行なう。
低カウントブロックリスト121は、移動させるデータファイルを選択するに際して、移動先ノードへ優先的に移動させるデータブロック(移動データブロック)の識別情報(例えば、インデックス)の一覧である。再分散データ選択部22(移動データブロック選択部)は、この低カウントブロックリスト121に、優先移動データブロックとして、そのデータブロックを使用するデータファイルの数が少ないデータブロックを優先的に選択する。すなわち、低カウントブロックリスト121には、データファイルによる共用数が少ないデータブロックが優先的に登録される。
具体的には、再分散データ選択部22は、インデックステーブル250cにおいてカウント値が少ない(例えば、カウント値=1の)データブロックを抽出して、そのインデックスを、この低カウントブロックリスト121に登録する。
移動ブロックリスト122は、データファイルの移動に伴い、移動先ノードに記憶されるべきデータブロックの一覧である。使用元リスト123は、移動ブロックリスト122に登録されているデータブロックを備えるデータファイルの一覧である。削除ブロックリスト124は、データファイルの移動に伴い、移動元ノードから削除可能なデータブロックの一覧である。これらの移動ブロックリスト122及び削除ブロックリスト124にも、データブロックの識別情報(例えば、インデックス)が登録される。以下、これらのリストにデータブロックのインデックスを登録(設定)することを、単にデータブロックを登録すると表現する。
再分散データ選択部22は、図1に示すように、移動データブロック選択部23,移動データファイル選択部24,移動データブロック追加部25及び削除データブロック選択部26としての機能をそなえる。
移動データブロック選択部23は、低カウントブロックリスト121に登録された優先移動データブロックを、その先頭から順番に移動データブロックとして選択し、移動ブロックリスト122に登録する。
移動データファイル選択部24は、インデックステーブル250cのリファーを参照し、選択した優先移動データブロックを備える(使用する)データファイルを移動データファイルとして選択し、この選択した移動データファイルを、使用元リスト123に登録する。
移動データブロック追加部25は、選択した移動データファイルに備えられる全てのデータブロックを移動データブロックとして選択し、移動ブロックリスト122に登録する。
削除データブロック選択部26は、移動ブロックリスト122に登録した各移動データブロックについて、その移動データブロックを備える全てのデータファイルが使用元リスト123に登録されているか否かを判断する。かかる判断は、例えば、インデックステーブル250cのリファー等を参照することにより行なう。
削除データブロック選択部26は、その移動データブロックを備える全てのデータファイルが使用元リスト123に登録されたことを確認すると、その移動データブロックを削除データブロックとして選択し、削除ブロックリスト124に登録する。
再分散データ選択部22(移動データファイル選択部24,移動データブロック追加部25及び削除データブロック選択部26)は、移動ブロックリスト122に登録されている全ての移動データブロックについて、これらの確認や、各リストの更新を行なう。
そして、削除ブロックリスト124に登録された削除データブロックの合計データサイズが以下の条件(a)及び条件(b)の2つの条件(データ移動条件)を満たす場合における、使用元リスト123に登録されているデータファイルが、移動データファイルとなる。又、その時点において、移動ブロックリスト122に登録されているデータブロックが移動先ノードに格納され、削除ブロックリスト124に登録されているデータブロックが、移動元ノードから削除される。これにより移動元ノードから移動先ノードへの移動データファイルの移動が実現される。
データ移動条件は以下のとおりである。
条件(a):削除ブロックリスト124に登録された削除データブロックの合計データサイズが所定の削除サイズであること。
ここで、削除サイズは、管理サーバ30から通知された目標データ移動量(Xbyte)に基づいて設定するデータサイズであり、例えば、目標データ移動量に対して所定の許容範囲(±α%)を付加した、ある程度の幅を持たせた値を用いることが望ましい。
この条件(a)を満たすことにより、管理サーバ30からの目標データ移動量に相当するデータファイルの移動指示をほぼ満たすことが可能となる。
条件(b):削除ブロックリスト124に登録された削除データブロックの合計データサイズに対する、移動ブロックリスト122に登録された移動データブロックの合計データサイズの割合が所定の閾値(第1閾値:例えば、1.2倍)以下であること。
この条件(b)を満たすことにより、移動元ノードにおいて削除データブロックを削除することにより得られるデータ削除量に対して、移動先ノードにおいて移動データブロックを格納することにより生じるデータ増加量が多すぎる、不均衡な状態となることを阻止することができる。すなわち、移動元ノードと移動先ノードとの間で増減するデータ量のバランスがとれた、効率的なデータ移動を実現することができる。
また、再分散データ選択部22は、移動データファイルの選択時に、削除ブロックリスト124内の削除データブロックの合計サイズが、所定の閾値(第2閾値)以上であるか否かの検知を行なう。
第2閾値は、任意に設定することができ、例えば、目標データ移動量の1.5倍の値を用いる等、適宜設定される。
削除データブロックの合計サイズが第2閾値以上である場合には、移動元ノードから移動先ノードへ使用元リスト123のデータファイルを移動させても、データ量の均一化という効果を奏することができないと判断される。再分散データ選択部22は、低カウントブロックリスト121から他の優先移動データブロックを選択しなおして、再度、移動データファイルの選択を行なう。
データ再分散部27は、再分散データ選択部22によって選択された移動データファイルを移動元ノードから移動先ノードへ移動させる。データ再分散部27は、前述した削除ブロックリスト124に登録された削除データブロックの合計データサイズが上記(a)及び(b)の2つの条件を満たす場合に、使用元リスト123に登録されている移動データファイルを、移動元ノードから移動先ノードへ移動させる。
具体的には、移動ブロックリスト122に登録された移動データブロックを移動先ノードへ送信して、当該移動先ノードの記憶装置14に格納させる。又、データ再分散部27は、移動元ノード、すなわち、当該ストレージサーバノード10の記憶装置14から、削除ブロックリスト124に登録されている削除データブロックを削除する。
データ再分散部27は、移動データファイルの構成情報(データファイル構成情報250b)やそのデータファイルの存在位置を表す情報等も移動先ノードに格納させる。
(B)動作
上述の如く構成された実施形態の一例としての分散ストレージシステム1におけるデータファイル移動時の全体的な処理を、図5に示すフローチャート(ステップA10〜A30)に従って説明する。
本分散ストレージシステム1において、管理サーバ30は、各ストレージサーバノード10間からそれぞれ通知されたデータ量に基づき、ストレージサーバノード10間でデータ量の偏りが生じているか否かを判断する(ステップA10)。
ストレージサーバノード10間でデータ量の偏りが発生していることを検知すると、管理サーバ30は、次に、データファイルの移動元ノード及び移動先ノードを決定するとともに、目標データ移動量を決定する(ステップA20)。管理サーバ30は、移動元ノードに対して、移動先ノード及び目標データ移動量を通知して、データファイルの移動を指示する。
移動元ノードにおいては、移動先ノードへ移動する移動データファイルの選択を行ない、この選択した移動データファイルを移動先ノードに移動させ(ステップA30)、処理を終了する。
次に、実施形態の一例としての分散ストレージシステム1における再分散データ選択部22によるデータファイルの移動処理を、図6に示すフローチャート(ステップS10〜S150)に従って説明する。なお、以下に示す例においては、変数seed及び変数nを用いる。
再分散データ選択部22(移動データブロック選択部23)は、nに1を設定(n=1)して初期化を行なった後(ステップS10)、インデックステーブル250cを参照して、カウンタの値がnであるデータブロックを抽出し、優先移動データブロックとして低カウントブロックリスト121に登録する(ステップS20)。
移動データブロック選択部23は、低カウントブロックリスト121にデータブロックが登録されているか否か、すなわち、低カウントブロックリスト121が空であるか否かを確認する(ステップS30)。
低カウントブロックリスト121が空である場合には(ステップS30のYESルート参照)、nをインクリメント(n=n+1)した後(ステップS130)、nが所定の閾値(第3閾値)を超えたか否かを確認する(ステップS140)。
ここで、第3閾値は、予め任意に設定される値である。この第3閾値を設定することにより、使用元のデータファイルの数がこの第3閾値を超えるデータブロックについては、当該データブロックを備えるデータファイルの移動先への移動を抑止する。
本分散ストレージシステム1においては、使用元のデータファイルの数が多いデータブロックを移動先ノードへ移動させる場合には、そのデータブロックを使用する全てのデータファイルを移動先ノードへ移動させる。これらの全てのデータファイルを移動先ノードへ移動させると、ストレージサーバノード10間で新たなデータの偏りが生じるおそれがあり非効率的である。
そこで、使用元のデータファイルの数がこの第3閾値を超えるデータブロックについては、当該データブロックを備えるデータファイルの移動先への移動を抑止することにより、効率的にデータファイルの移動を行なうことができる。
nが第3閾値を超えていない場合には(ステップS140のNOルート参照)、ステップS20に戻る。又、nが第3閾値を超えた場合には(ステップS140のYESルート参照)、移動させるデータファイルがない(解なし)と判断し(ステップS150)、処理を終了する。
一方、低カウントブロックリスト121が空でない場合には(ステップS30のNOルート参照)、変数seedに低カウントブロックリスト121の先頭の優先移動データブロックを設定する。又、このseedに設定した優先移動データブロックを低カウントブロックリスト121から削除する(ステップS40)。
移動データブロック選択部23は、移動ブロックリスト122にseedに設定されている優先移動データブロックを登録する。又、移動データファイル選択部24は使用元リスト123を、又、削除データブロック選択部26は削除ブロックリスト124をそれぞれ空にして初期化する(ステップS50)。
移動データファイル選択部24は、移動ブロックリスト122の各データブロックに対して、当該データブロックを備えるデータファイルを使用元リスト123に登録する(ステップS60)。
再分散データ選択部22は、使用元リスト123に新たなデータファイルが追加されたか否かを確認し(ステップS70)、新たなデータファイルが追加されていない場合には(ステップS70のNOルート参照)、ステップS30に戻る。
使用元リスト123に新たなデータファイルが追加された場合には(ステップS70のYESルート参照)、移動データブロック追加部25は、この使用元リスト123に新たに追加されたデータファイルに対して、当該データファイルに備えられるデータブロックであって、移動ブロックリスト122に未登録のデータブロックを、移動ブロックリスト122に登録する(ステップS80)。
次に、削除データブロック選択部26は、移動ブロックリスト122の各データブロックについて、そのデータブロックを使用する全ての使用元のデータファイルが使用元リスト123に登録されたことを確認すると、当該データブロックを削除ブロックリスト124に登録する(ステップS90)。使用元リスト123の全てのデータファイルを移動先ノードに移動させることにより、移動元ノードにおいては当該データブロックを使用するデータファイルはなくなるので、当該データブロックを移動元ノードから削除することができる。
データ再分散部27は、削除ブロックリスト124に登録された削除データブロックの合計データサイズが、前述した条件(a)及び条件(b)の2つのデータ移動条件を満たすか否かを確認する(ステップS100)。すなわち、削除データブロックの合計データサイズが所定の削除サイズであり(条件(a))、且つ、削除データブロックの合計データサイズに対する移動データブロックの合計データサイズの割合が第1閾値以下であるか(条件(b))を確認する。
ステップS100のデータ移動条件が満たされる場合には(ステップS100のYESルート参照)、データ再分散部27は、使用元リスト123に登録されているデータファイルを、移動元ノードから移動先ノードへ移動させる(ステップS110)。すなわち、移動ブロックリスト122の移動データブロックを移動先ノードへ格納させ、又、移動元ノードから削除ブロックリスト124の削除データブロックを削除する。その後、処理を終了する。
一方、ステップS100のデータ移動条件が満たされない場合には(ステップS100のNOルート参照)、再分散データ選択部22は、削除ブロックリスト124内の削除データブロックの合計サイズが、第2閾値以上であるか否かを確認する(ステップS120)。
削除ブロックリスト124内の削除データブロックの合計サイズが第2閾値未満である場合には(ステップS120のNOルート参照)、ステップS60に戻る。又、削除ブロックリスト124内の削除データブロックの合計サイズが第2閾値以上である場合には(ステップS120のYESルート参照)、ステップS30に戻る。
削除データブロックの合計サイズが第2閾値以上である場合には、当該優先移動データブロックについては、移動先ノードへの移動を行なう場合に、当該優先移動データブロックに伴って移動させる必要のあるデータブロックが多すぎ、データ量の均等化の効果が得られないと判断される。
(C)実施例
以下に、図6に示したフローチャートに従って、本分散ストレージシステム1の再分散データ選択部22による移動させるデータファイルの選択処理過程を例示する。
以下に示す例においては、図3に示すデータファイル(ファイルA,ファイルB,ファイルC)及び図4に示すインデックステーブル250cをそなえた移動元ノードにおける、移動先ノードへ移動させるデータファイルの選択手法を説明する。
ファイルA,ファイルB及びファイルCは、それぞれ重複除去が行なわれ、ファイルAはインデックス01,02,03,04,05のデータブロックで構成される。又、ファイルBはインデックス05,06,02,03,04のデータブロックで構成され、ファイルCはインデックス07,08,09のデータブロックで構成される。又、インデックス01,02,03,04,05のデータブロックの各データサイズは4KBであるものとする。
(C−1)第1例
先ず、目標データ移動量が20KB(X=20K)である例について示す。
(1)n=1(図6のステップS10参照)
(2)移動データブロック選択部23が、インデックステーブル250cにおいて、カウンタ値がnであるデータブロックを抽出し、低カウントブロックリスト121を作成する(図6のステップS20参照)。
例:低カウントブロックリスト121には、インデックス01,07,08がこの順で登録される。
(3)再分散データ選択部22は、低カウントブロックリスト121の各優先移動データブロック(要素)に対して、以下の処理を行なう。なお、以下に示す例においては、移動ブロックリスト122,使用元リスト123及び削除ブロックリスト124の各エントリを、移動ブロックリスト122,使用元リスト123及び削除ブロックリスト124の順で並べたカッコ“()”内にそれぞれ示す。又、このカッコ中においては、ファイルA,ファイルB及びファイルCを、それぞれFileA,FileB及びFileCと表す。
(3−1)移動データファイル選択部24が、移動ブロックリスト122の各データブロックについて、当該データブロックを使用しているデータファイルを使用元リスト123に登録する(図6のステップS60参照)。新たに使用元リスト123に入るデータファイルがない場合は(図6のステップS70のNOルート参照)、低カウントブロックリスト121の次の要素に移る。
例:(01)(FileA)()
(3−2) 移動データブロック追加部25が、使用元リスト123に新たに入ったファイルに対して、当該データファイルが備えるデータブロックで、移動ブロックリスト122に登録されていないものを移動ブロックリスト122に追加する(図6のステップS80参照)。
例:(01,02,03,04,05)(FileA)()
(3−3)削除データブロック選択部26が、 移動ブロックリスト122の各データブロックについて、当該データブロックを使用している全てのデータファイル(使用元)が使用元リスト123に登録されたら、そのデータブロックを削除ブロックリスト124に登録する(図6のステップS90参照)。
例:(01,02,03,04,05)(FileA)(01)
(3−4) 削除ブロックリスト124内のデータブロックの合計サイズが所望の削除サイズであり、移動ブロックリスト122の合計サイズ(移動量)が削除ブロックリスト124の合計サイズ(削除量)に対する比が第1閾値(例えば1.2倍)以下であるか確認する(図6のステップS100参照)。かかる移動条件を満たす場合に(図6のステップS100のYESルート参照)、データ再分散部27が、移動ブロックリスト122のデータブロックを移動先ノードに生成するとともに、削除ブロックリスト124のデータブロックを移動元ノードから削除する。これにより、使用元リスト123のファイルを移動元ノードから移動先ノードに移動させる(図6のステップS110参照)。
例:移動元ノードでのデータ削除量(削除量)=4KB
移動先ノードでのデータ増加量(移動量)=20KB
本例においては移動条件を満たさない。
(3−5)削除ブロックリスト124内のデータブロックの合計サイズが第2閾値(例えば、目標データ移動量の1.5倍)以上であれば、当該優先移動データブロックについての処理を終了する(図6のステップS120参照)。
例:4<20×1.5
(3−6)上記(3−5)に示す例においては、削除ブロックリスト124内のデータブロックの合計サイズが第2閾値(例えば、目標データ移動量の1.5倍)以上でないので(図6のステップS120のNOルート参照)、上記(3−1)へ戻る。
(3−1′)移動データファイル選択部24が、移動ブロックリスト122の各データブロックについて、当該データブロックを使用しているデータファイルを使用元リスト123に登録する(図6のステップS60参照)。
例:(01,02,03,04,05)(FileA, FileB)(01)
(3−2′)上記(3−1′)に示す例においては、使用元リスト123に新たにファイルBが登録されたので、移動データブロック追加部25が、使用元リスト123に新たに入ったファイルに対して、当該データファイルが備えるデータブロックで、移動ブロックリスト122に登録されていないものを移動ブロックリスト122に追加する(図6のステップS80参照)。
例:(01,02,03,04,05,06)(FileA, FileB)(01)
(3−3′) 移動ブロックリスト122の各データブロックについて、当該データブロックを使用している全てのデータファイル(使用元)が使用元リスト123に登録されたら、削除データブロック選択部26が、そのデータブロックを削除ブロックリスト124に登録する(図6のステップS90参照)。
例:(01,02,03,04,05,06)(FileA, FileB)(01,02,03,04,05)
(3−4′) 削除ブロックリスト124内のデータブロックの合計サイズが所望の削除サイズであり、移動ブロックリスト122の合計サイズ(移動量)と削除ブロックリスト124の合計サイズ(削除量)との比が第1閾値(例えば1.2倍)以下であるか確認する(図6のステップS100参照)。
例:移動元ノードでのデータ削除量(削除量)=20KB
移動先ノードでのデータ増加量(移動量)=24KB
本例においては、移動量/削除量が移動条件を満たすので(図6のステップS100のYESルート参照)、データ再分散部27が、移動ブロックリスト122のデータブロック(01,02,03,04,05,06)を移動先ノードに生成するとともに、削除ブロックリスト124のデータブロック(01,02,03,04,05)を移動元ノードから削除する。これにより、使用元リスト123のファイルA及びファイルBを移動元ノードから移動先ノードに移動させる(図6のステップS110参照)。その後、処理を終了する。
(C−2)第2例
次に、目標データ移動量が8KB(X=8K)である例について示す。又、優先移動データブロックとしてインデックス07を最初に選択する場合について例示する。
本例においても、各データブロックのデータサイズは4KBであるものとする。
(1)n=1(図6のステップS10参照)
(2)移動データブロック選択部23が、インデックステーブル250cにおいて、カウンタ値がnであるデータブロックを抽出し、低カウントブロックリスト121を作成する図6のステップS20参照)。
例:低カウントブロックリスト121には、インデックス07,06,08がこの順で登録される。
(3)再分散データ選択部22は、低カウントブロックリスト121の各優先移動データブロック(要素)に対して、以下の処理を行なう。
(3−1)移動データファイル選択部24が、移動ブロックリスト122の各データブ
ロックについて、当該データブロックを使用しているデータファイルを使用元リスト123に登録する(図6のステップS60参照)。新たに使用元リスト123に入るデータファイルがない場合は(図6のステップS70のNOルート参照)、低カウントブロックリスト121の次の要素に移る。
例:(07)(FileC)()
(3−2)移動データブロック追加部25が、 使用元リスト123に新たに入ったフ
ァイルに対して、当該データファイルが備えるデータブロックで、移動ブロックリスト122に登録されていないものを移動ブロックリスト122に追加する(図6のステップS80参照)。
例:(07,06,08)(FileC)()
(3−3)削除データブロック選択部26が、 移動ブロックリスト122の各データ
ブロックについて、当該データブロックを使用している全てのデータファイル(使用元)が使用元リスト123に登録されたら、そのデータブロックを削除ブロックリスト124に登録する(図6のステップS90参照)。
例:(07,06,08)(FileC)( 07,08)
(3−4) 削除ブロックリスト124内のデータブロックの合計サイズが所望の削除
サイズであり、移動ブロックリスト122の合計サイズ(移動量)が削除ブロックリスト124の合計サイズ(削除量)に対する比が第1閾値(例えば1.2倍)以下であるか確認
する(図6のステップS100参照)。かかる移動条件を満たす場合に(図6のステップS100のYESルート参照)、データ再分散部27が、移動ブロックリスト122のデータブロックを移動先ノードに生成するとともに、削除ブロックリスト124のデータブロックを移動元ノードから削除する。これにより、使用元リスト123のファイルを移動元ノードから移動先ノードに移動させる(図6のステップS110参照)。
例:移動元ノードでのデータ削除量(削除量)=8KB
移動先ノードでのデータ増加量(移動量)=12KB
本例においては移動条件を満たさない。
(3−5)削除ブロックリスト124内のデータブロックの合計サイズが第2閾値(例えば、目標データ移動量の1.5倍)以上であるか確認する。
例:8<12×1.5
(3−6)上記(3−5)に示す例においては、削除ブロックリスト124内のデータブロックの合計サイズが第2閾値(例えば、目標データ移動量の1.5倍)以上でないので(図6のステップS120のNOルート参照)、上記(3−1)へ戻る。
(3−1′)移動データファイル選択部24が、移動ブロックリスト122の各データブロックについて、当該データブロックを使用しているデータファイルを使用元リスト123に登録する(図6のステップS60参照)。
例:(07,06,08)(FileC,FileB)(07,08)
(3−2′)上記(3−1′)に示す例においては、使用元リスト123に新たにファイルBが登録されたので、移動データブロック追加部25が、使用元リスト123に新たに入ったファイルに対して、当該データファイルが備えるデータブロックで、移動ブロックリスト122に登録されていないものを移動ブロックリスト122に追加する(図6のステップS80参照)。
例:(07,06,08,05,02,03,04)(FileC, FileB)(07,08)
(3−3′) 移動ブロックリスト122の各データブロックについて、当該データブロックを使用している全てのデータファイル(使用元)が使用元リスト123に登録されたら、削除データブロック選択部26が、そのデータブロックを削除ブロックリスト124に登録する(図6のステップS90参照)。
例:(07,06,08,05,02,03,04)(FileC, FileB)(07,08,06)
(3−4′) 削除ブロックリスト124内のデータブロックの合計サイズが所望の削除サイズであり、移動ブロックリスト122の合計サイズ(移動量)と削除ブロックリスト124の合計サイズ(削除量)との比が第1閾値(例えば1.2倍)以下であるか確認する(図6のステップS100参照)。
例:移動元ノードでのデータ削除量(削除量)=12KB
移動先ノードでのデータ増加量(移動量)=28KB
本例においては、移動量/削除量が移動条件を満たさない(図6のステップS100のNOルート参照)。
(3−5′)削除ブロックリスト124内のデータブロックの合計サイズが第2閾値(例えば、目標データ移動量の1.5倍)以上であるか確認する(図6のステップS120参照)。本例においては、12=8×1.5であり、最終的に解を発見できずに処理を終了する。
(D)効果
本分散ストレージシステム1によれば、各ストレージサーバノード10において、再分散データ選択部22が、移動先ノードに移動させるデータファイルを選択し、データ再分散部27が、選択したデータファイルを構成するデータブロックを移動先ノードに移動させる。特に、移動ブロックリスト122の移動データブロックを使用する全データファイルが移動データファイルとして登録されると、移動ブロックリスト122の移動データブロックを移動先ノードに格納し、削除ブロックリスト124の削除データブロックを移動元ノードから削除する。これにより、複数のストレージサーバノード10間において、データ量を均等化させることができる。
また、本分散ストレージシステム1においては、各ストレージサーバノード10において、重複除去部21が重複排除処理を実現するので、各ストレージサーバノード10に格納するデータ量を削減し、記憶装置14の記憶領域を効率的に使用することができる。すなわち、各ストレージサーバノード10において重複排除を行ないながら、これらのストレージサーバノード10間でデータ量の均等化を実現することができる。
ここで、従来の分散ストレージシステムに重複除去を適用し、データ再配置を行なう場合について考える。
図7(a),(b)は従来の重複排除手法を説明する図であり、(a)はファイル構成を例示する図、(b)は(a)に示す各データファイルに重複排除を行なった状態を例示する図である。
図7(a),(b)に示す例において、ファイルAはインデックス01,02,03,04,05で表されるデータブロックを備えている。同様に、ファイルBはインデックス05,06,02,03,04で表されるデータブロックを、又、ファイルCは、インデックス07,06,08で表されるデータブロックを、それぞれ備えている。各データブロックのデータサイズはそれぞれ4KBであるものとする。
図7(a)に示す総データ量52KBのファイルA,B,Cを重複除去することにより、図7(b)に示すように、32KBとインデックステーブル(αKB)との合計(32+α)KB程度までデータサイズを削減することができる。
従来の分散ストレージシステムにおいて、図7(b)に示すような重複除去状態にある各データファイルを再配置の対象として選択して移動先ノードに単純に移動させると、効率的にデータ分散を行なうことができない。
例えば、図7(b)の例において、ファイルAを移動先ノードに移動させる場合に、移動先ノードにおいては、インデックス01,02,03,04,05で表されるデータブロックが新たに格納されることにより20KBのデータ量が増加する。
一方、移動元ノードにおいては、インデックス02,03,04,05で表されるデータブロックは、他のファイルB,Cによっても使用されているので、これらのデータブロックを移動元ノードから削除することはできない。従って、移動元ノードにおいては、データファイルAによってのみ使用されるインデックス01のデータブロックのみを削除することができ、データファイルAを移動させることにより4KBのデータ量が削減される。
同様に、ファイルBを移動先ノードに移動させる場合においても、移動先ノードにおいては、インデックス05,06,02,03,04で表されるデータブロックが新たに格納されることにより20KBのデータ量が増加する。その一方で、インデックス05,06,02,03,04で表されるデータブロックは、それぞれファイルAもしくはファイルBによっても使用されているので、これらのデータブロックを移動元ノードから削除することはできない。すなわち、移動元ノードにおいては、データファイルBを移動させることにより削減されるデータ量は0KBとなる。
このように、従来の分散ストレージシステムに重複排除を適用した場合には、データファイルを移動元ノードから移動先ノードへ移動させるデータ再配置を行なっても、移動元ノードでデータ削減を行なうことができず、データ再配置によるデータ量の均一化を実現できない。又、データ再配置を行なうことにより、結果的に、分散ストレージシステム全体でのデータ量が増大し、重複排除による効果を阻害することにもなる。
なお、重複除去のインデックスをストレージサーバノード間で共有して構成する方法も考えられるが、複数のストレージサーバノード間でインデックスを共用/管理することにより処理性能の低下が生じ、分散ストレージとしてのメリットを活かすことができない。
本分散ストレージシステム1においては、各ストレージサーバノード10において、重複除去部21による重複除去処理を実現しながら、ストレージサーバノード10間でデータ量の均等化を実現することができる。
また、本分散ストレージシステム1によれば、低カウントブロックリスト121に、優先移動データブロックとしてカウンタ値が少ないデータブロックを優先的に登録し、低カウントブロックリスト121に登録されたデータブロックを用いるデータファイルを移動させるデータファイルとして選択する。これにより、データファイルの移動によるデータ量の均等化を効率的に実現することができる。
また、データ再分散部27は、条件(a),(b)からなるデータ移動条件を満たす場合に、使用元リスト123のデータファイルを移動元ノードから移動先ノードへ移動させる。
ここで、削除データブロックの合計データサイズが所定の削除サイズであることを規定する条件(a)を満たすことにより、管理サーバ30からの目標データ移動量に相当するデータファイルの移動指示をほぼ満たすことが可能となる。
また、削除データブロックの合計データサイズに対する、移動データブロックの合計データサイズの割合が所定の第1閾値以下であることを規定する条件(b)を満たすことにより、移動元ノードと移動先ノードとの間で増減するデータ量のバランスがとれた、効率的なデータ移動を実現することができる。
(E)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、管理サーバ30(データ量管理プロセス)が、保持するデータ量が平均値よりも少なく、且つ、保持するデータ量と平均値との差が所定の閾値以上であるストレージサーバノード10を移動先ノードとして決定している。又、算出した平均値と移動先ノードが保持するデータ量との差(Xbyte)を目標データ移動量として設定している。しかしながら、これに限定されるものではない。
例えば、保持するデータ量が平均値よりも多く、且つ、保持するデータ量と平均値との差が所定の閾値以上であるストレージサーバノード10を移動元ノードとして決定してもよい。そして、算出した平均値と移動元ノードが保持するデータ量との差(Xbyte)を目標データ移動量として設定してもよい。この場合、例えば、全ストレージサーバノード10のうち保持するデータ量が最も少ないストレージサーバノード10を移動先ノードとして決定することが望ましい。
また、例えば、管理サーバ30が移動先ノードや移動元ノード及び目標データ移動量を決定する代わりに、各ストレージサーバノード10において、これらの移動先ノードや移動元ノード及び目標データ移動量を決定してもよい。
具体的には、例えば、各ストレージサーバノード10間において、各自が保持するデータ量を相互に通知し合い、互いに他のストレージサーバノード10が保持するデータ量を把握する。そして、全ストレージサーバノード10のデータ量の平均値をそれぞれ算出し、自身の保持するデータ量との差が所定の閾値以上となると、データの偏りを検知してもよい。
この場合において、当該データの偏りを検知したストレージサーバノード10が保持するデータ量が、全ストレージサーバノード10の平均値よりも多い場合には、当該ストレージサーバノード10が移動元ノードとなる。又、当該データの偏りを検知したストレージサーバノード10が保持するデータ量が、全ストレージサーバノード10の平均値よりも少ない場合には、当該ストレージサーバノード10が移動先ノードとなる。又、例えば、算出した平均値と自身が保持するデータ量との差を目標データ移動量として設定することが望ましい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
1 分散ストレージシステム
10,10−1〜10−6 ストレージサーバノード(ストレージ装置,移動制御装置)
11 CPU
12 RAM
13 ROM
14 記憶装置
21 重複除去部
22 再分散データ選択部
23 移動ブロック選択部(移動データブロック選択部)
24 移動ファイル選択部(移動データファイル選択部)
25 移動ブロック追加部(移動データブロック追加部)
26 削除ブロック選択部(削除データブロック選択部))
27 データ再分散部
30 管理サーバ
40 プロキシサーバ
50 LAN
51 ネットワーク
60 クライアント
121 低カウントブロックリスト
122 移動ブロックリスト
123 使用元リスト
124 削除ブロックリスト
240 ファイル情報
250 重複排除情報
250a FP情報
250b データファイル構成情報
250c インデックステーブル

Claims (9)

  1. 複数のデータファイルの中からデータファイルを選択して移動元ノードから移動先ノードへ移動させる移動制御装置であって、
    前記データファイルを分割して生成した複数のデータブロックの中から、前記移動先ノードへ移動させる移動データブロックを選択する移動データブロック選択部と、
    前記移動データブロック選択部によって選択された前記移動データブロックを備えるデータファイルを移動データファイルとして選択する移動データファイル選択部と、
    前記移動データファイル選択部によって選択された前記移動データファイルに備えられる全てのデータブロックを前記移動データブロックに追加する移動データブロック追加部と、
    個々の移動データブロックのそれぞれについて、当該移動データブロックを備える全てのデータファイルが、前記移動データファイル選択部によって前記移動データファイルとして選択されると、当該移動データブロックを削除データブロックとして選択する削除データブロック選択部と、
    前記移動データブロックを前記移動先ノードに格納させるとともに、前記削除データブロックを前記移動元ノードから削除することにより、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる移動処理部と
    をそなえることを特徴とする、移動制御装置。
  2. 前記移動処理部が、前記削除データブロックの合計データ量が所定の目標削減データ量以上であり、且つ、前記削除データブロックの合計データ量に対する、前記移動データブロックの合計データ量の割合が所定値以下である場合に、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる
    ことを特徴とする、請求項1記載の移動制御装置。
  3. 前記移動データブロック選択部が、前記複数のデータブロックの中から、複数のデータファイルによる重複使用数が、他のデータブロックよりも少ないデータブロックを優先的に前記移動データブロックとして選択する
    ことを特徴とする、請求項1又は2記載の移動制御装置。
  4. データファイルを分割して生成した複数のデータブロックの中から、移動元ノードから移動先ノードへ移動させる移動データブロックを選択し、
    選択された前記移動データブロックを備えるデータファイルを移動データファイルとして選択し、
    選択された前記移動データファイルに備えられる全てのデータブロックを前記移動データブロックに追加し、
    個々の移動データブロックのそれぞれについて、当該移動データブロックを備える全てのデータファイルが、前記移動データファイルとして選択されると、当該移動データブロックを削除データブロックとして選択し、
    前記移動データブロックを前記移動先ノードに格納させるとともに、前記削除データブロックを前記移動元ノードから削除することにより、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる
    処理をコンピュータに実行させるプログラム。
  5. 前記削除データブロックの合計データ量が所定の目標削減データ量以上であり、且つ、前記削除データブロックの合計データ量に対する、前記移動データブロックの合計データ量の割合が所定値以下である場合に、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる
    処理をコンピュータに実行させる、請求項4記載のプログラム。
  6. 前記複数のデータブロックの中から、複数のデータファイルによる重複使用数が、他のデータブロックよりも少ないデータブロックを優先的に前記移動データブロックとして選択する、
    処理をコンピュータに実行させる、請求項4又は5記載のプログラム。
  7. データファイルを記憶可能なデータ記憶装置と、
    前記データファイルを分割して複数のデータブロックを生成し、生成したデータブロック間で重複除去を行なって前記データ記憶装置に格納する重複除去部と、
    前記複数のデータブロックの中から、移動先ノードへ移動させる移動データブロックを選択する移動データブロック選択部と、
    前記移動データブロック選択部によって選択された前記移動データブロックを備えるデータファイルを移動データファイルとして選択する移動データファイル選択部と、
    前記移動データファイル選択部によって選択された前記移動データファイルに備えられる全てのデータブロックを前記移動データブロックに追加する移動データブロック追加部と、
    個々の移動データブロックのそれぞれについて、当該移動データブロックを備える全てのデータファイルが、前記移動データファイル選択部によって前記移動データファイルとして選択されると、当該移動データブロックを削除データブロックとして選択する削除データブロック選択部と、
    前記移動データブロックを前記移動先ノードに格納させるとともに、前記削除データブロックを移動元ノードから削除することにより、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる移動処理部と
    をそなえることを特徴とする、ストレージ装置。
  8. 前記移動処理部が、前記削除データブロックの合計データ量が所定の目標削減データ量以上であり、且つ、前記削除データブロックの合計データ量に対する、前記移動データブロックの合計データ量の割合が所定値以下である場合に、前記移動元ノードから前記移動先ノードへ前記データファイルを移動させる
    ことを特徴とする、請求項7記載のストレージ装置。
  9. 前記移動データブロック選択部が、前記複数のデータブロックの中から、複数のデータファイルによる重複使用数が、他のデータブロックよりも少ないデータブロックを優先的に前記移動データブロックとして選択することを特徴とする、請求項7又は8記載のストレージ装置。
JP2012061037A 2012-03-16 2012-03-16 移動制御装置,プログラム及びストレージ装置 Expired - Fee Related JP5867206B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012061037A JP5867206B2 (ja) 2012-03-16 2012-03-16 移動制御装置,プログラム及びストレージ装置
US13/722,331 US9356992B2 (en) 2012-03-16 2012-12-20 Transfer control device, non-transitory computer-readable storage medium storing program, and storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012061037A JP5867206B2 (ja) 2012-03-16 2012-03-16 移動制御装置,プログラム及びストレージ装置

Publications (2)

Publication Number Publication Date
JP2013196190A JP2013196190A (ja) 2013-09-30
JP5867206B2 true JP5867206B2 (ja) 2016-02-24

Family

ID=49158721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012061037A Expired - Fee Related JP5867206B2 (ja) 2012-03-16 2012-03-16 移動制御装置,プログラム及びストレージ装置

Country Status (2)

Country Link
US (1) US9356992B2 (ja)
JP (1) JP5867206B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102028B2 (en) 2013-03-12 2018-10-16 Sas Institute Inc. Delivery acknowledgment in event stream processing
KR20140134379A (ko) * 2013-05-14 2014-11-24 엘에스산전 주식회사 데이터 수집 장치
US9946724B1 (en) * 2014-03-31 2018-04-17 EMC IP Holding Company LLC Scalable post-process deduplication
US9122651B1 (en) 2014-06-06 2015-09-01 Sas Institute Inc. Computer system to support failover in an event stream processing system
US9356986B2 (en) * 2014-08-08 2016-05-31 Sas Institute Inc. Distributed stream processing
US10554749B2 (en) 2014-12-12 2020-02-04 International Business Machines Corporation Clientless software defined grid
US10469580B2 (en) * 2014-12-12 2019-11-05 International Business Machines Corporation Clientless software defined grid
JP6280062B2 (ja) * 2015-02-17 2018-02-14 日本電信電話株式会社 加入者情報収容装置と加入者情報収容方法
JP6634886B2 (ja) 2016-03-01 2020-01-22 富士通株式会社 データ記憶装置、データ記憶装置制御プログラム、及びデータ記憶装置制御方法
US10447763B2 (en) * 2016-12-08 2019-10-15 Nanning Fugui Precision Industrial Co., Ltd. Distributed storage method and system
JP2019053477A (ja) * 2017-09-14 2019-04-04 Necプラットフォームズ株式会社 ファイル制御装置、ファイル制御方法、プログラム
CN108259583B (zh) * 2017-12-29 2020-05-26 广州云达信息技术有限公司 一种数据动态迁移方法及装置
US11288186B2 (en) 2020-04-23 2022-03-29 Netapp, Inc. Adjustment of garbage collection parameters in a storage system
US11835990B2 (en) 2021-11-16 2023-12-05 Netapp, Inc. Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3608441B2 (ja) * 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3606133B2 (ja) * 1999-10-15 2005-01-05 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3780776B2 (ja) * 1999-10-15 2006-05-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7140044B2 (en) * 2000-11-13 2006-11-21 Digital Doors, Inc. Data security system and method for separation of user communities
JP4782951B2 (ja) * 2001-07-31 2011-09-28 富士通株式会社 放送型通信システム
US7024451B2 (en) * 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers
US7171493B2 (en) * 2001-12-19 2007-01-30 The Charles Stark Draper Laboratory Camouflage of network traffic to resist attack
JP3703439B2 (ja) * 2002-03-19 2005-10-05 Necマイクロシステム株式会社 データ転送制御装置及び方法
US7222133B1 (en) * 2004-02-05 2007-05-22 Unisys Corporation Method for reducing database recovery time
JP2006185019A (ja) 2004-12-27 2006-07-13 Fuji Xerox Co Ltd 検索システム、および情報配置構成決定方法、並びにコンピュータ・プログラム
JP4412191B2 (ja) * 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US8683144B2 (en) * 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
JP5320678B2 (ja) * 2007-02-20 2013-10-23 日本電気株式会社 データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
US8694466B2 (en) * 2008-10-07 2014-04-08 Dell Products L.P. Object deduplication and application aware snapshots
JP5504936B2 (ja) 2010-02-03 2014-05-28 富士通株式会社 ストレージ装置およびデータ格納制御方法
JP2011215794A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd 分散ストレージシステム及びプログラム

Also Published As

Publication number Publication date
US20130246580A1 (en) 2013-09-19
JP2013196190A (ja) 2013-09-30
US9356992B2 (en) 2016-05-31

Similar Documents

Publication Publication Date Title
JP5867206B2 (ja) 移動制御装置,プログラム及びストレージ装置
JP6328432B2 (ja) ゲートウェイ装置、ファイルサーバシステム及びファイル分散方法
WO2020010503A1 (zh) 基于多层一致性哈希的分布式数据存储方法与系统
JP4749140B2 (ja) データマイグレーション方法及びシステム
JP5637552B2 (ja) ストレージシステム
WO2017119091A1 (ja) 分散型ストレージシステム、データ格納方法、およびソフトウェアプログラム
US8843445B2 (en) Storage system for storing data in a plurality of storage devices and method for same
JP5798258B2 (ja) 記憶階層化のためのコンテンツ選択
JP5973089B2 (ja) ストレージシステムの移行方式および移行方法
US10061781B2 (en) Shared data storage leveraging dispersed storage devices
JP2020154587A (ja) 計算機システム及びデータ管理方法
JP2013222230A (ja) 情報処理システム
JP2000322292A (ja) クラスタ型データサーバシステム及びデータ格納方法
JP2019506667A (ja) プロセッサ・グリッド内の分散データ重複排除
KR101652436B1 (ko) 분산파일 시스템에서의 중복 제거 장치 및 방법
JP5385987B2 (ja) 複数の記憶装置を含む記憶システム、方法、及びプログラム
US9971543B2 (en) Methods and apparatus for storing electronic documents
JP6269120B2 (ja) ストレージシステム
US11188258B2 (en) Distributed storage system
US20130246842A1 (en) Information processing apparatus, program, and data allocation method
JP2016184326A (ja) 階層ストレージ装置,階層ストレージ制御装置,階層ストレージ制御プログラム及び階層ストレージ制御方法
US20210132824A1 (en) Information processing apparatus and recording medium storing information processing program
JP2012243039A (ja) スナップショットデータ保管方法
WO2017024802A1 (zh) 多种存储介质并存的系统及进行文件操作的方法、装置及计算机存储介质
JP6881847B2 (ja) ストレージ装置、ファイル特定方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150902

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R150 Certificate of patent or registration of utility model

Ref document number: 5867206

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees