JP2021039575A - ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム - Google Patents

ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム Download PDF

Info

Publication number
JP2021039575A
JP2021039575A JP2019160998A JP2019160998A JP2021039575A JP 2021039575 A JP2021039575 A JP 2021039575A JP 2019160998 A JP2019160998 A JP 2019160998A JP 2019160998 A JP2019160998 A JP 2019160998A JP 2021039575 A JP2021039575 A JP 2021039575A
Authority
JP
Japan
Prior art keywords
data
file
node
storage
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019160998A
Other languages
English (en)
Other versions
JP7310462B2 (ja
Inventor
鷹詔 中尾
Takanori Nakao
鷹詔 中尾
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 JP2019160998A priority Critical patent/JP7310462B2/ja
Priority to US17/006,960 priority patent/US11360710B2/en
Publication of JP2021039575A publication Critical patent/JP2021039575A/ja
Application granted granted Critical
Publication of JP7310462B2 publication Critical patent/JP7310462B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】ネットワークにおけるデータ転送量を軽減させる。【解決手段】分割データの処理要求を受けて、元データにおける元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得する取得部102と、元データにおける管理情報の位置に対応する第1の領域に管理情報を格納し、元データにおける分割データの相対位置に対応する第2の領域に分割データを格納し、第1の領域および第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する作成部101とを備える。【選択図】図2

Description

本発明は、ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラムに関する。
近年、ネットワークを介して接続された複数のストレージノードにデータを分散して格納する分散ストレージシステムが知られている。
このような分散ストレージシステムにおいて、ネットワーク上のデータ転送量を軽減させるために、各ストレージノードにおいて、格納するデータに対する演算処理を行なわせる手法が知られている。このように、データの格納場所の近傍(ノード)で演算処理を行なう手法を近傍処理といってもよい。
近傍処理としては、例えば、動画データに対するタグ付けや検索,動画データ中に映っているものの解析を行なってもよい。
特開2009−124527号公報 特開平9−205634号公報
このような従来の分散ストレージシステムにおいては、ファイルを複数のノードに分割して記録する際に、ファイルを先頭から所定のサイズ毎に分割することで複数の分割ファイルを作成し、これらの分割ファイルを異なるストレージノードにそれぞれ記録させる。
しかしながら、例えば、動画ファイルにおいては、ヘッダ部分にデコードルール等を含むメタデータが格納されているので、動画ファイルを所定サイズ毎に分割して作成した分割ファイルを動画として単体で再生することができない。
従って、動画ファイルの近傍処理を行なうために、一つのストレージノードに同一の動画ファイルを構成する複数の分割ファイルを集約させて再生する必要がある。このため、近傍処理を行なうストレージノードに対して各ストレージノードから分散ファイルを転送することで、ネットワークにおいてデータ転送量が増大するという課題がある。
1つの側面では、本発明は、ネットワーク上のデータ転送量を軽減できるようにすることを目的とする。
このため、このストレージ制御装置は、複数のストレージ制御装置を備え、元データを複数に分割して作成した分割データを、2つ以上の前記ストレージ制御装置に分散して配置する分散ストレージシステムにおける、前記複数のストレージ制御装置のうちの一のストレージ制御装置であって、前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得する取得部と、前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する作成部とを備える。
一実施形態によれば、ネットワーク上のデータ転送量を軽減することができる。
第1実施形態の一例としての分散ストレージシステムの構成を模式的に示す図である。 第1実施形態の一例としての分散ストレージシステムの機能構成を示す図である。 第1実施形態の一例としての分散ストレージシステムにおける分割ファイルとオフセットとを説明するための図である。 第1実施形態の一例としての分散ストレージシステムにおける部分再生データを説明するための図である。 第1実施形態の一例としての分散ストレージシステムにおける近傍処理を説明するためのシーケンス図である。 第2実施形態の一例としての分散ストレージシステムにおいて処理される分割元ファイルの構成を例示する図である。 MP4ファイルのデータ構成を例示する図である。 第2実施形態の一例としての分散ストレージシステムの機能構成を示す図である。 第2実施形態の一例としての分散ストレージシステムにおける部分再生データを説明するための図である。 第2実施形態の一例としての分散ストレージシステムにおける部分再生データを説明するための図である。 第2実施形態の一例としての分散ストレージシステムにおける近傍処理を説明するためのシーケンス図である。 第1実施形態および第2実施形態の一例としての分散ストレージシステムの管理ノードおよびストレージノードのハードウェア構成を例示する図である。
以下、図面を参照して本ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(I)第1実施形態の説明
(A)構成
図1は第1実施形態の一例としての分散ストレージシステム1の構成を模式的に示す図、図2はその機能構成を示す図である。なお、図2には、便宜上、図1中に示す複数のストレージノード10のうちの1つと管理ノード20とを示している。
分散ストレージシステム1は、図1に示すように、管理ノード20,ホスト装置30及び複数(図1に示す例では4つ)のストレージノード10−1〜10−4を備える。
図1に示す例において、ホスト装置30と管理ノード20と各ストレージノード10−1〜10−4とは、ネットワーク50を介して相互に通信可能に接続されている。以下、4つのストレージノード10−1〜10−4を特に区別しない場合には、ストレージノード10と表記する。
ネットワーク50は、例えばLAN(Local Area Network)である。なお、分散ストレージシステム1の構成はこれに限定されるものではなく、適宜変更して実施することができる。例えば、ストレージノード10の数は4つに限定されるものではなく、3つ以下もしくは5つ以上のストレージノード10を備えてもよい。また、ネットワーク50はLANに限定されるものではなく、適宜変更して実施することができる。また、ホスト装置30と管理ノード20と各ストレージノード10−1〜10−4との接続関係も適宜変更して実施することができる。
分散ストレージシステム1においては、1つのデータ(ファイル,分割元ファイル,元データ)を分割して、複数のストレージノード10−1〜10−4のうちの2つ以上のストレージノード10に分散して格納してもよい。
以下に示す例においては、分散ストレージシステム1において動画データを管理する例について示す。すなわち、データ(元データ,分割元ファイル)が動画データ(動画ファイル)である例について示す。
[ホスト装置30]
ホスト装置30は、例えば、パーソナルコンピュータ等の情報処理装置である。ホスト装置30は、例えばユーザによる入力操作に従って、ストレージノード10に格納されたデータ(ファイル)に対するリードやライトの要求(リード/ライト要求)を発行する。ホスト装置30から発行されたリード/ライト要求は管理ノード20に送信される。
図1に示す例においては、分散ストレージシステム1に1つのホスト装置30が備えられているが、これに限定されるものではなく、2以上のホスト装置30をそなえてもよい。
また、ホスト装置30は、例えばユーザによる入力操作に従って、管理ノード20に対して近傍処理の実行要求を発行する。ホスト装置30は、例えば、処理対象の動画データ(元データ,分割元ファイル)を特定するファイル名と処理対象フレーム(target_frames)と近傍処理のスクリプト(script)とを含む近傍処理の実行要求を管理ノード20に送信する。
例えば、動画データについて、特定の時間帯の画像中に映っているものの解析を行なう場合には、解析対象の時間帯を示す情報が、処理対象フレーム(target_frames)に相当する。処理対象フレーム(target_frames)は、ホスト装置30のユーザが近傍処理の対象としたいデータ範囲を示す。また、画像中に映っている内容を抽出するスクリプトが近傍処理のスクリプト(script)に相当する。近傍処理の実行要求は、分割ファイルの処理要求に相当する。
ユーザは、ホスト装置30を操作することで分割元ファイル(動画データ)に対する処理要求を入力する。処理要求は、例えば、動画に対するスクリプトの実行要求であり、動画データにおける、ユーザが処理を希望するデータ範囲(処理対象フレーム)を指定する入力を伴ってもよい。
[管理ノード20]
管理ノード20は、例えば、サーバ機能を備えた情報処理装置である。管理ノード20は、本分散ストレージシステム1に備えられた複数のストレージノード10に対するデータ(ファイル)の格納(記憶,保存)および読み出しを制御する。
本第1実施形態の分散ストレージシステム1に備えられた複数のストレージノード10のうちの一のストレージノード10が管理ノード20として機能する。管理ノード20はいずれのストレージノード10が担当してもよい。なお、分散処理の観点から、管理ノード20を担当するストレージノード10は定期もしくは不定期に交代することが望ましい。例えば、本分散ストレージシステム1の起動のタイミングで、前回の管理ノード20とは異なるストレージノード10が新たな管理ノード20として機能してもよい。
管理ノード20は、図2に示すように、分散ファイル管理部201および近傍処理管理部202としての機能を備える。
分散ファイル管理部201は、データを複数のデータ(ファイル)に分割し、作成した複数のデータ(以下、分割データという場合がある)を、本分散ストレージシステム1の複数のストレージノード10に分散して格納させる。以下においては、本分散ストレージシステム1が、分割データをファイルとして扱う分散オブジェクトストレージシステムである例について示す。以下、分割データを分割ファイルという場合がある。また、複数の分割ファイルの元となる分割前のファイルを分割元ファイルという場合がある。
例えば、分割元ファイルが動画データである場合に、この分割元ファイルを分割して作成した複数の分割ファイルには、互いに異なる時間帯の動画データが含まれることとなってもよい。
また、分散ファイル管理部201は、各ストレージノード10に格納されている分割ファイルを管理する機能を有する。例えば、分散ファイル管理部201は、分割ファイルを特定するための識別情報(分割ファイルID)と、本分散ストレージシステム1における分割ファイルの格納位置とを対応付ける分割ファイル管理情報(図示省略)を管理する。分割ファイル管理情報には、分割ファイルに格納されているデータを示す情報を含んでもよい。
分散ファイル管理部201は、この分割ファイル管理情報を参照することで、どの分割ファイルがどのストレージノード10の記憶装置40のどこに格納されているかを把握することができる。
分散ファイル管理部201は、例えば、ホスト装置30から、分割元ファイルに対するデータアクセス要求を受信すると、分割ファイル管理情報を参照して、このデータアクセス対象となる分割ファイルを特定する。そして、分散ファイル管理部201は、当該分割ファイルを格納するストレージノード10に対して、要求されたデータアクセスを実行させてもよい。
また、分散ファイル管理部201は、複数のストレージノード10に分散して格納された分散ファイルを結合させて、分割元ファイルを生成してもよい。
なお、上述の如き分散ファイル管理部201としての機能は、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
また、分散ファイル管理部201は、作成した各分割ファイルファイルに対して、分割元ファイルにおける位置を示す情報(オフセット:offset)を記憶させる。オフセットは、分割元ファイル(元データ)における当該分割ファイルの相対的な位置を示す位置情報(相対位置情報)である。オフセットは、例えば、分割元ファイルの先頭から当該分割ファイルの先頭までの距離(データ長)を示す。オフセットの単位は、例えばbyteである。
図3は第1実施形態の一例としての分散ストレージシステム1における分割ファイルとオフセットとを説明するための図である。
この図3においては、分割元ファイルを分割して4つの分割ファイルを作成した例を示す。また、これらの4つの分割ファイルを、分割元ファイルの先頭から末尾に向かって順番に、符号#1〜#4を付して示す。
4つの分割ファイル#1〜#4はそれぞれ1MBの固定長を有するものとし、分割元ファイルの先頭位置を基準とする各分割ファイルの先頭位置(データ長)をオフセットで表す。
例えば、分割ファイル#1のオフセットは0であり、分割ファイル#2,分割ファイル#3,分割ファイル#4の各オフセットは、1M,2M,3Mである。
分散ファイル管理部201は、これらの各分割ファイルのオフセットの値を、各分割ファイルにおける所定位置(例えば、ヘッダ部分)に記録させる。
また、この図3に例示する分割元ファイルにおいて、分割ファイル#1の先頭にはメタデータが含まれている。本第1実施形態の分散ストレージシステム1において、動画ファイルのメタデータには、当該動画ファイル(分割元ファイル)を再生するために必要とされる再生用情報が含まれる。再生用情報は、例えば、当該動画ファイルを再生するためのデコードルールと、当該動画ファイル(分割元ファイル)における再生対象データの位置を示す情報(再生対象位置情報)とを含む。メタデータの再生用情報は、動画データの再生に用いられる管理情報(属性情報)に相当する。
分散ファイル管理部201は、後述するメタデータ取得部204から、分割ファイルを再生するためのメタデータを格納するストレージノード10の問い合わせを受けると、分割ファイル管理情報を参照して、当該分割ファイルの分割元ファイルのメタデータを格納するストレージノード10を特定する。図3に示す例においては、分散ファイル管理部201は、メタデータを含む分割ファイル#1を格納するストレージノード10を特定する情報を、メタデータ位置情報としてメタデータ取得部204に通知する。
近傍処理管理部202は、分割ファイルに対する処理を、当該分割ファイルを格納するストレージノード10において実行させる近傍処理を実現する。
近傍処理管理部202は、図2に示すように、メタデータ取得部204およびノード決定部203としての機能を備える。
メタデータ取得部204は、ストレージノード10による近傍処理の対象とする分割ファイル(以下、処理対象分割ファイルという場合がある)を再生するためのメタデータ(再生用情報)を取得する。メタデータ取得部204は、処理対象分割ファイルの分割元ファイルのメタデータを格納するストレージノード10を、分散ファイル管理部201に問い合わせる。そして、メタデータ取得部204は、この問い合わせに対する分散ファイル管理部201からの応答によって特定されるストレージノード10に対して、メタデータの送信を要求するメタデータ要求通知をネットワーク50を介して送信する。メタデータ要求通知には、例えば、メタデータを含む分割ファイルを特定する識別情報(分割ファイルID)を含んでもよい。
メタデータ取得部204は、このメタデータ要求通知に応じてストレージノード10から送信されるメタデータを受信する。メタデータ取得部204は、受信したメタデータを記憶装置40やメモリ12,記憶装置13(図12参照)等の所定の記憶領域に記憶させる。
ノード決定部203は、ホスト装置30から受信した近傍処理の実行要求に基づき、近傍処理を実行するストレージノード10を決定する。以下、近傍処理を実行するストレージノード10を近傍処理実行ノード10という場合がある。
ノード決定部203は、例えば、近傍処理の実行要求に含まれる処理対象のフレーム(target_frames)を分散ファイル管理部201に通知する。分散ファイル管理部201は、分割ファイル管理情報を参照することで、処理対象のフレームが、どの分割ファイルに含まれるものであり、どのストレージノード10の記憶装置40のどこに格納されているかを特定する。分散ファイル管理部201は、処理対象のフレームに対応する分割ファイルを格納するストレージノード10をノード決定部203に応答する。
ノード決定部203は、分散ファイル管理部201から応答されたストレージノード10を近傍処理実行ノード10として決定する。
ノード決定部203は、決定した近傍処理実行ノード10に対して、処理対象のフレームを含む分割元ファイルのメタデータを送信するとともに、部分再生データの作成を指示する。なお、部分再生データの詳細については後述する。
また、ノード決定部203は、近傍処理実行ノード10に対して、実行させる近傍処理のスクリプトを送信して近傍処理の実行を指示する。
近傍処理管理部202は、近傍処理実行ノード10から、実行した近傍処理の結果を受信し、近傍処理の要求元であるホスト装置30に応答する。
[ストレージノード10]
ストレージノード10は、記憶装置40を備える情報処理装置であり、記憶装置40に対するデータのリードやライトを制御するストレージ制御装置である。ストレージノード10は、記憶装置40に分割ファイルを格納させる。
図1に示す例において、ストレージノード10−1をnode#1と、ストレージノード10−2をnode#2と、ストレージノード10−3をnode#3と、ストレージノード10−4をnode#4と、それぞれ表す場合がある。
ストレージノード10は、管理ノード20から分割ファイルを受信して、記憶装置40における所定の記憶領域に格納し、その格納位置を示す情報(アドレス等)を管理ノード20(分散ファイル管理部201)に通知してもよい。また、ストレージノード10は、管理ノード20から受信した分割ファイルを、管理ノード20(分散ファイル管理部201)から指定された記憶装置40における記憶領域に格納してもよい。
また、ストレージノード10は、管理ノード20のノード決定部203から送信されるメタデータ,部分再生データの作成指示および近傍処理のスクリプトを受信し、それぞれ記憶装置40やメモリ12(図12参照)に記憶させる。
ストレージノード10は、図2に示すように、部分再生データ作成部101,データ送信部104および近傍処理実行部105としての機能を備える。
データ送信部104は、管理ノード20からメタデータ要求通知を受信すると、例えば、当該メタデータ要求通知に含まれる分割ファイルIDによって特定される分割ファイルからメタデータを抽出して、管理ノード20に送信する。
部分再生データ作成部101は、管理ノード20のノード決定部203から送信される部分再生データの作成指示に基づき、部分再生データを作成する。部分再生データは、一の分割ファイルに基づいて作成され、当該分割ファイルを単体で再生可能に構成したものである。
部分再生データ作成部101は、データ取得部102およびダミー領域設定部103を備える。
データ取得部102は、部分再生データを作成するためのデータを取得する。データ取得部102は、分割ファイルを再生するためのメタデータを取得する。データ取得部102は、管理ノード20のノード決定部203から送信されるメタデータを受信することで、メタデータを取得してもよい。
なお、データ取得部102は、管理ノード20からメタデータを受信する代わりに、メタデータを格納する他のストレージノード10からメタデータを取得してもよい。例えば、データ取得部102は、管理ノード20の分散ファイル管理部201に本分散ストレージシステム1において分割元ファイルのメタデータを格納するストレージノード10を問合せることで、メタデータの格納位置を把握してもよい。データ取得部102は、メタデータを格納するストレージノード10に対してメタデータの送信要求を行なうことで、メタデータを取得してもよい。
ダミー領域設定部103は、部分再生データにダミー領域を設定する。なお、このダミー領域設定部103による処理の詳細は後述する。
図4は第1実施形態の一例としての分散ストレージシステム1における部分再生データを説明するための図である。
この図4において、符号Aは、図3と同様に、分割元ファイルを分割して4つの分割ファイル#1〜#4を作成した例を示す。4つの分割ファイル#1〜#4はそれぞれ1MBの固定長を有するものとし、分割元ファイルの先頭を基準とする各分割ファイルの先頭位置(距離,データ長)をオフセットで表す。分割ファイル#1のオフセットは0であり、分割ファイル#2,分割ファイル#3,分割ファイル#4の各オフセットは、1M,2M,3Mである。
そして、ストレージノード10−1(node#1)が分割ファイル#1を、ストレージノード10−2(node#2)が分割ファイル#2を、ストレージノード10−3(node#3)が分割ファイル#3を、ストレージノード10−4(node#4)が分割ファイル#4を、それぞれ格納する。
すなわち、ストレージノード10−1(node#1)が分割ファイル#1に対する近傍処理を行なう。同様に、ストレージノード10−2(node#2)が分割ファイル#2に対する近傍処理を、ストレージノード10−3(node#3)が分割ファイル#3に対する近傍処理を、ストレージノード10−4(node#4)が分割ファイル#4に対する近傍処理を、それぞれ行なう。
図4において、符号Bは、分割ファイル#3に基づいて作成した部分再生データを例示する。
すなわち、図4においては、ストレージノード10−3(node#3)が近傍処理実行ノード10である例について示す。以下、近傍処理実行ノード10であるストレージノード10−3を近傍処理実行ノード10−3と表す場合がある。
以下、部分再生データに符号500を付して示す。図4に示すように、部分再生データ500は、メタデータ部501,ダミーデータ部502および分割ファイル部503を備える。
図4に示すように、部分再生データ500において、その先頭にメタデータ部501が備えられ、このメタデータ部501に後続する位置にダミーデータ部502が備えられ、ダミーデータ部502に後続する位置に分割ファイル部503が備えられる。
メタデータ部501には分割元ファイルから読み出されたメタデータが格納される。部分再生データ500におけるメタデータ部501の位置(先頭からの距離)は、分割元ファイルにおいて読み出されたメタデータの位置(先頭からの距離)と等しい。図4に示す例においては、分割ファイル#1の先頭位置から読み出されたメタデータが、部分再生データ500において、分割元ファイルの先頭を基準とする同じ(等距離の)位置(先頭位置)に配置されたメタデータ部501に格納される。
メタデータ部501は、分割元ファイルにおけるメタデータの位置に対応する第1の領域に相当する。
メタデータ部501には、管理ノード20のノード決定部203から部分再生データの作成指示と前後して送信されたメタデータが格納される。このメタデータには、分割ファイルの再生に用いられるデコードルールおよび再生対象のデータの格納位置を示す情報が含まれる。
分割ファイル部503には分割ファイルが格納される。分割ファイルは、管理ノード20の分散ファイル管理部201によって作成されたものであり、例えば、近傍処理実行ノード10が有する記憶装置40に格納されている。
部分再生データ500における分割ファイル部503の位置(先頭からの距離)は、分割元ファイルにおける分割ファイルの位置(先頭からの距離)と等しい。図4に示す例においては、分割ファイル#3が、部分再生データ500において、分割元ファイルの先頭を基準とする同じ(等距離の)各位置に配置された分割ファイル部503に格納される。
分割ファイル部503は、分割元ファイルにおける分割データの相対位置に対応する第2の領域に相当する。
ダミー領域設定部103は、部分再生データ500におけるメタデータ部501および分割ファイル部503以外の領域にダミー部(ダミー領域)502を設定する。
ダミーデータ部502にはダミーデータが設定される。ダミーデータ部502は、分割ファイル部503に格納される分割ファイルのオフセットサイズからメタデータ部501のサイズを減算したデータサイズを有する。
ダミーデータ部502は、メタデータ部501(第1の領域)および分割ファイル部503(第2の領域)以外の第3の領域に相当する。
部分再生データ500にダミーデータ部502を設けることにより、ダミーデータ部502に後続する分割ファイル部503の先頭位置が、当該分割ファイル部503に格納される分割ファイルのオフセットの値と同一となるよう位置決め(位置付け)される。
部分再生データ500における分割ファイル部503の分割ファイルの位置(部分再生データ500の先頭からの距離)は、分割元ファイルにおける当該分割ファイルの位置(分割元ファイルの先頭からの距離)と同じとなる。これにより、メタデータ部501に含まれるメタデータの再生対象のデータの格納位置を示す情報を用いて、分割ファイル部503に格納された分割ファイルを再生することができるのである。
なお、ダミーデータ部502のダミーデータは、例えば、連続する“0”や“1”で埋めることで構成してもよく、特定のパターンを有する“0”と“1”との組み合わせとして構成してもよく、適宜変更して実施することができる。
部分再生データ500においては、分割ファイル部503および複数のメタデータ部501の各位置の間を埋めるようにダミーデータ部502が形成されているとも言える。すなわち、部分再生データ作成部101は、分割ファイルとメタデータとの間にダミーデータを挿入することで、部分再生データを作成する。
部分再生データ500は、分割ファイルを有するとともに、この分割ファイルを再生するために用いられるメタデータを有する。そして、この部分再生データ500における分割ファイルの位置は、分割元ファイルにおける当該分割ファイルの位置と同じとなるように、メタデータと分割元ファイルとの間にダミーデータが挿入されている。これにより、部分再生データ500は、独立して再生可能な一つのファイル(動画ファイル,分割データ再生用データ)として構成される。
近傍処理実行部105は、部分再生データ作成部101によって作成された部分再生データに対して近傍処理を行なう。近傍処理実行部105は、部分再生データに対して、管理ノード20のノード決定部203から近傍処理の実行指示とともに送信されたスクリプトを実行することで、近傍処理を実行する。
なお、部分再生データに対するスクリプトの実行は、動画データに対してスクリプトを実行する既知の手法と同様に実現することができ、その説明は省略する。
近傍処理実行部105は、部分再生データに対するスクリプトの実行結果を近傍処理の実行結果として管理ノード20(近傍処理管理部202)に送信する。
(B)動作
上述の如く構成された第1実施形態の一例としての分散ストレージシステム1における近傍処理を、図5に例示するシーケンス図に従って説明する。
図5に示す例においては、ホスト装置30,管理ノード20,近傍処理実行ノード10および近傍処理実行ノード10以外のストレージノード10を示す。
ホスト装置30においてユーザが近傍処理の実行を指示する入力を行なうと、ホスト装置30は、管理ノード20に対して、処理対象の動画(分割元ファイル)を特定するファイル名,処理対象フレーム(target_frames)および近傍処理のスクリプト(script)とを含む近傍処理の実行要求を送信する(矢印S1参照)。なお、処理対象フレームは、動画ファイルにおける近傍処理の対象としたい時間帯に相当する。
管理ノード20において、ノード決定部203は、例えば、近傍処理の実行要求に含まれる処理対象のフレーム(target_frames)を分散ファイル管理部201に通知する。分散ファイル管理部201は、動画ファイル名に基づいて分割ファイル管理情報を参照して、フレーム(target_frames)を含む分割ファイル(処理対象分割ファイル)を格納しているストレージノード(近傍処理実行ノード)10を確認し、ノード決定部203に通知する。ノード決定部203は、分散ファイル管理部201から応答されたストレージノード10を近傍処理実行ノード10として決定する(矢印S2参照)。
管理ノード20において、メタデータ取得部204は、分割元ファイルのメタデータを格納するストレージノード10を、分散ファイル管理部201に問い合わせる。分散ファイル管理部201は、分割ファイル管理情報を参照して、メタデータを格納するストレージノード10を特定し、メタデータ位置情報をメタデータ取得部204に応答する。
メタデータ取得部204は、分散ファイル管理部201から応答されたメタデータ位置情報によって特定されるストレージノード10に対して、メタデータの送信を要求するメタデータ要求通知を送信する(矢印S3参照)。
メタデータ要求通知を受信したストレージノード10は、自身の記憶装置40に格納されている分割元ファイルのメタデータを管理ノード20に応答する(矢印S4参照)。
管理ノード20において、ノード決定部203は、近傍処理実行ノード10に対して、処理対象のフレームを含む分割元ファイルのメタデータを送信するとともに、部分再生データの作成を指示する。更に、ノード決定部203は、近傍処理実行ノード10に対して、実行させる近傍処理のスクリプトを送信して近傍処理の実行を指示する(矢印S5参照)。
近傍処理実行ノード10において、部分再生データ作成部101は、管理ノード20のノード決定部203から送信される部分再生データの作成指示に基づき、部分再生データを作成する。また、近傍処理実行ノード10において、近傍処理実行部105は、作成した部分再生データに対して、管理ノード20のノード決定部203から近傍処理の実行指示とともに送信されたスクリプトを実行することで、近傍処理を実行する(矢印S6参照)。
近傍処理実行ノード10の近傍処理実行部105は、部分再生データに対するスクリプトの実行結果を近傍処理の実行結果として管理ノード20(近傍処理管理部202)に送信する(矢印S7参照)。管理ノード20は、ホスト装置30に対して、近傍処理の実行結果を送信する(矢印S8参照)。
(C)効果
第1実施形態の一例としての分散ストレージシステム1によれば、近傍処理実行ノード10において、部分再生データ作成部101がメタデータと分割ファイルとを備える部分再生データ500を作成する。これにより、近傍処理実行ノード10において分割ファイルの再生を行なうことができ、分割ファイルに対する近傍処理を実行することができる。
また、この際、ネットワーク50を介して他のストレージノード10や管理ノード20との間でデータサイズが小さいメタデータだけの授受を行なえばよく、ネットワーク50におけるデータ転送量を少なくすることができる。
部分再生データ作成部101は、部分再生データ500を作成する。部分再生データ500は、その先頭にメタデータ部501を備え、このメタデータ部501に後続する位置にダミーデータ部502を備え、ダミーデータ部502に後続する位置に分割ファイル部503を備える。
メタデータ部501に、分割ファイル部503に格納された分割ファイルを再生するためのメタデータを備えることで、部分再生データ500単体で、当該部分再生データ500において分割ファイル部503に含まれる分割ファイルの任意のフレームを再生することができる。
ダミーデータ部502に、分割ファイル部503に格納される分割ファイルのオフセットサイズからメタデータ部501のサイズを減算したデータサイズを有するダミーデータを備える。これにより、部分再生データ500における分割ファイル部503の分割ファイルの位置(部分再生データ500の先頭からの距離)は、分割元ファイルにおける当該分割ファイルの位置(分割元ファイルの先頭からの距離)と同じとなる。すなわち、メタデータ部501に含まれるメタデータの再生対象のデータの格納位置を示す情報をそのまま用いて、分割ファイル部503に格納された分割ファイルを再生することができる。
(II)第2実施形態の説明
上述した第1実施形態においては、分割元ファイルの先頭にメタデータが格納されている例について示したが、例えば動画ファイル(分割元ファイル)において、メタデータの位置は当該動画ファイルの先頭に限定されるものではない。
(A)構成
図6は第2実施形態の一例としての分散ストレージシステム1において処理される分割元ファイルの構成を例示する図である。
この図6に例示する分割元ファイルにおいては、先頭以外の位置にもメタデータが備えられている。分割元ファイルの複数位置に備えられた各メタデータは、それぞれ後続するメタデータまでのオフセット情報を備えており、これにより、分割元ファイルにおいてメタデータだけを、順次、読み出すことができる。なお、分割元ファイルに備えられた複数のメタデータにおいては、前述の如く動画ファイルの再生に用いられる再生用情報を含むものの他、動画の再生には直接用いられない情報を含むものがある。
また、図6に例示する分割元ファイルには、複数のキーフレーム(key frame)が備えられている。
キーフレームは、例えば動画像における主となる変化が定義されているフレームである。キーフレームには、物体の形や位置の変化ポイントが指定され、その間を補完することで滑らかな動画像を作成することができる。キーフレームは、動画データの再生に用いられる管理情報(制御情報)に相当する。
動画データにおいて、2つのキーフレームに挟まれた領域のデータを再生するためには、これらのキーフレームおよびキーフレーム間にある全てのデータが必要とされる。そのため、キーフレームを備える動画データの分割ファイルを再生するためには、当該分割ファイルのみならず、分割ファイルの前後のキーフレームまでの各データが必要とされる。
図7はMP4ファイルのデータ構成を例示する図である。
MP4ファイルはBoxと呼ばれるデータブロックを連続して備えることで構成される。Boxは“長さ”,“名前”および“データ”の各領域を備える。“長さ”領域には当該Boxのデータ長が、“名前”領域には当該Boxの名前が、それぞれ格納される。
また、Boxの“名前”領域に格納される情報には“データ”領域に格納されているデータの内容を表す情報も含まれる。従って、Boxの“名前”領域を参照することでメタデータやキーフレームを取得することができる。また、例えば、Boxの“名前”領域を参照して、必要に応じてデータを読み出したり、当該Boxの“長さ”領域の値を用いて次のBoxまで読み飛ばすことで、メタデータやキーフレーム等のデータを少ないアクセスで集めることが出来る。
本第2実施形態の分散ストレージシステム1は、図1に例示した第1実施形態と同様のハードウェア構成を有する。なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
図8は第2実施形態の一例としての分散ストレージシステム1の機能構成を示す図である。
なお、図8には、便宜上、図1中に示す複数のストレージノード10のうちの1つと管理ノード20とを図示している。
[管理ノード20]
本第2実施形態の分散ストレージシステム1においても、第1実施形態と同様に、複数のストレージノード10のうちの一のストレージノード10が管理ノード20として機能する。
管理ノード20はいずれのストレージノード10が担当してもよい。分散処理の観点から、管理ノード20を担当するストレージノード10は定期もしくは不定期に交代することが望ましい。例えば、本分散ストレージシステム1の起動のタイミングで、前回の管理ノード20とは異なるストレージノード10が新たな管理ノード20として機能してもよい。
管理ノード20は、図8に示すように、分散ファイル管理部201および近傍処理管理部202aとしての機能を備える。
近傍処理管理部202aは、第1実施形態の近傍処理管理部202としての機能に加えて、キーフレーム情報取得部205としての機能を備える。
キーフレーム情報取得部205は、分割元ファイルにおけるキーフレームの位置を取得する。キーフレーム情報取得部205は、分割元ファイルにおける、ホスト装置30から入力された近傍処理の対象となるフレーム(target_frames)の前後の各位置にあるキーフレームの位置を取得する。
分割元ファイルにおけるキーフレームの位置は、例えば、メタデータ取得部204が収集したメタデータを参照することで取得してもよく、種々変更して実施することができる。
図6に例示した分割元ファイルにおいては、分割元ファイルを分割して4つの分割ファイルを作成した例を示す。また、これらの4つの分割ファイルを、分割元ファイルの先頭から末尾に向かって順番に、符号#1〜#4を付して示す。
4つの分割ファイル#1〜#4はそれぞれ1MBの固定長を有するものとし、分割元ファイルの先頭を基準とする各分割ファイルの先頭位置をオフセットで表す。
例えば、分割ファイル#1のオフセットは0であり、分割ファイル#2,分割ファイル#3,分割ファイル#4の各オフセットは、1M,2M,3Mである。
分散ファイル管理部201は、これらの各分割ファイルのオフセットの値を、各分割ファイルにおける所定位置(例えば、ヘッダ部分)に記録させる。
また、図6に例示した分割元ファイルにおいて、先頭の分割ファイル#1の先頭および中央部付近にメタデータが含まれている。また、分割ファイル#4の末尾にもメタデータが含まれている。
そして、図6に示す例においては、分割ファイル#1に含まれる2つのメタデータが再生用情報を含むものとする。
分散ファイル管理部201は、メタデータ取得部204から、分割ファイルを再生するためのメタデータを格納するストレージノード10の問い合わせを受けると、分割ファイル管理情報を参照して、当該分割ファイルの分割元ファイルのメタデータを格納するストレージノード10を特定する。図6に示す例においては、分散ファイル管理部201は、再生用情報を含むメタデータを含む分割ファイル#1を格納するストレージノード10を特定する情報を、メタデータ位置情報としてメタデータ取得部204に通知する。
ノード決定部203は、近傍処理実行ノード10を決定する。ノード決定部203は、決定した近傍処理実行ノード10に対して、処理対象のフレームを含む分割元ファイルのメタデータを送信するとともに、部分再生データの作成を指示する。ノード決定部203は、分割元ファイル(分割ファイル#1)から抽出されたメタデータについて、分割元ファイルにおけるメタデータ格納位置についても近傍処理実行ノード10に通知してもよい。また、ノード決定部203は、分割ファイルにおける、処理対象のフレームに先行するキーフレーム位置と、処理対象のフレームに後続するキーフレーム位置とを近傍処理実行ノード10に通知する。
[ストレージノード10]
ストレージノード10は、記憶装置40を備える情報処理装置であり、記憶装置40に対するデータのリードやライトを制御するストレージ制御装置である。ストレージノード10は、記憶装置40に分割ファイルを格納させる。
図1に示す例において、ストレージノード10−1をnode#1と、ストレージノード10−2をnode#2と、ストレージノード10−3をnode#3と、ストレージノード10−4をnode#4と、それぞれ表す場合がある。
ストレージノード10は、図8に示すように、部分再生データ作成部101a,データ送信部104および近傍処理実行部105としての機能を備える。
部分再生データ作成部101aは、管理ノード20のノード決定部203から送信される部分再生データの作成指示に基づき、部分再生データを作成する。部分再生データは、一の分割ファイルに基づいて作成され、当該分割ファイルを単体で再生可能に構成したものである。
部分再生データ作成部101aは、データ取得部102およびダミー領域設定部103を備える。
本第2実施形態において、データ取得部102は、部分再生データを作成するためのデータとして、メタデータの他にキーフレームを取得する。データ取得部102は、分割ファイルにおいて、処理対象フレームに隣接するキーフレームが含まれていない場合に、不足する処理対象フレームの端部位置から隣接するキーフレームまでのデータを、当該分割ファイルに隣接する他の分割ファイルから取得する。なお、データ取得部102による処理の詳細は後述する。
図9は第2実施形態の一例としての分散ストレージシステム1における部分再生データを説明するための図である。
この図9において、符号Aは、分割元ファイルを分割して4つの分割ファイル#1〜#4を作成した例を示す。4つの分割ファイル#1〜#4はそれぞれ1MBの固定長を有するものとし、分割元ファイルの先頭を基準とする各分割ファイルの先頭位置(データ長)をオフセットで表す。分割ファイル#1のオフセットは0であり、分割ファイル#2,分割ファイル#3,分割ファイル#4の各オフセットは、1M,2M,3Mである。
そして、ストレージノード10−1(node#1)が分割ファイル#1を、ストレージノード10−2(node#2)が分割ファイル#2を、ストレージノード10−3(node#3)が分割ファイル#3を、ストレージノード10−4(node#4)が分割ファイル#4を、それぞれ格納する。
すなわち、ストレージノード10−1(node#1)が分割ファイル#1に対する近傍処理を行なう。同様に、ストレージノード10−2(node#2)が分割ファイル#2に対する近傍処理を、ストレージノード10−3(node#3)が分割ファイル#3に対する近傍処理を、ストレージノード10−4(node#4)が分割ファイル#4に対する近傍処理を、それぞれ行なう。
図9において、符号Bは、分割ファイル#3に基づいて作成した部分再生データを例示する。
すなわち、図9においては、ストレージノード10−3(node#3)が近傍処理実行ノード10である例について示す。以下、近傍処理実行ノード10であるストレージノード10−3を近傍処理実行ノード10−3と表す場合がある。
以下、本第2実施形態の分散ストレージシステム1における部分再生データに符号500aを付して示す。部分再生データ500aは、メタデータ部501,ダミーデータ部502および分割ファイル部503を備える。
図9に示すように、部分再生データ500aにおいて、その先頭を含む複数(図9に示す例では2つ)の位置にメタデータ部501が備えられ、これらのメタデータ部501に前後する各位置にダミーデータ部502が備えられ、ダミーデータ部502に後続する位置に分割ファイル部503が備えられる。
メタデータ部501には分割元ファイルから読み出されたメタデータが格納される。部分再生データ500aにおけるメタデータ部501の位置(先頭からの距離)は、分割元ファイルにおいて読み出されたメタデータの位置(先頭からの距離)と等しい。図9に示す例においては、分割ファイル#1から読み出された2つのメタデータが、部分再生データ500aにおいて、分割元ファイルの先頭を基準とする同じ(等距離の)各位置に配置されたメタデータ部501に格納される。
分割ファイル部503には分割ファイルが格納される。分割ファイルは、管理ノード20の分散ファイル管理部201によって作成されたものであり、例えば、近傍処理実行ノード10が有する記憶装置40に格納されている。
部分再生データ500aにおける分割ファイル部503の位置(先頭からの距離)は、分割元ファイルにおける分割ファイルの位置(先頭からの距離)と等しい。図9に示す例においては、分割ファイル#3が、部分再生データ500aにおいて、分割元ファイルの先頭を基準とする同じ(等距離の)各位置に配置された分割ファイル部503に格納される。
また、部分再生データ作成部101aは、分割ファイルを部分再生データ500aの分割ファイル部503に格納させる際に、分割ファイルにおける処理対象フレームの前後のキーフレームの各位置を確認する。具体的には、部分再生データ作成部101aは、分割ファイルにおいて、処理対象フレームの前方位置と後方位置とにそれぞれキーフレームが存在するかを確認する。
分割ファイルにおいて、処理対象フレームの前方位置にキーフレームが存在しない場合には、部分再生データ作成部101aのデータ取得部102は、当該処理対象の分割ファイルに先行する分割ファイルを記憶するストレージノード10に、処理対象フレームの前端位置から先行する最初の(直近の)キーフレームまでのデータの送信を要求(データ補完要求)する。
また、分割ファイルにおいて、処理対象フレームの後方位置にキーフレームが存在しない場合には、部分再生データ作成部101aのデータ取得部102は、当該処理対象の分割ファイルに後続する分割ファイルを記憶するストレージノード10に、処理対象フレームの後端位置から後続する最初の(直近の)キーフレームまでのデータの送信を要求する。
例えば、図9の符号Aで示す分割元ファイルにおいて、分割ファイル#3には、処理対象フレームよりも前方位置にキーフレームが含まれる一方で、処理対象フレームよりも後方位置にはキーフレームがない(図9の「必要なデータ範囲」参照)。
このような場合に、近傍処理実行ノード10のデータ取得部102は、分割ファイル#3に後続する分割ファイル#4を管理するストレージノード10−4に対して、処理対象フレームの後端位置から後続する最初のキーフレームまでのデータ(図9の符号P参照)の送信を要求(データ補完要求)する。
そして、部分再生データ作成部101aは、上述の如きデータ補完要求に対して他のストレージノード10から応答されたデータおよびキーフレームを、部分再生データ作成部101aの分割ファイル部503に、分割ファイルに後続する位置に並べて記憶させる。
すなわち、部分再生データ作成部101a(データ取得部102)は、分割ファイルにおいて、処理対象フレームに隣接するキーフレームが含まれていない場合に、不足する処理対象フレームの端部位置から隣接するキーフレームまでのデータを、当該分割ファイルに隣接する他の分割ファイルから取得する。
そして、部分再生データ作成部101aは取得した不足部分のデータを、分割ファイルにおけるキーフレーム不在側の端部に連結させて、前記部分ファイルとともに部分再生データ500aの分割ファイル部503に格納させる。
メタデータ部501には、管理ノード20のノード決定部203から部分再生データの作成指示と前後して送信されたメタデータが格納される。このメタデータには、分割ファイルの再生に用いられるデコードルールおよび再生対象のデータの格納位置を示す情報が含まれる。
ダミーデータ部502にはダミーデータが設定される。ダミーデータ部502は、分割ファイル部503に格納される分割ファイルのオフセットサイズからメタデータ部501のサイズを減算したデータサイズを有する。
ダミーデータ部502は、メタデータ部501(第1の領域)および分割ファイル部503(第2の領域)以外の第3の領域に相当する。
部分再生データ500aにダミーデータ部502を設けることにより、ダミーデータ部502に後続する分割ファイル部503の先頭位置が、当該分割ファイル部503に格納される分割ファイルのオフセットの値と同一となるよう位置決め(位置付け)される。
部分再生データ500aにおける分割ファイル部503の分割ファイルの位置(部分再生データ500aの先頭からの距離)は、分割元ファイルにおける当該分割ファイルの位置(分割元ファイルの先頭からの距離)と同じとなる。これにより、メタデータ部501に含まれるメタデータの再生対象のデータの格納位置を示す情報を用いて、分割ファイル部503に格納された分割ファイルを再生することができるのである。
なお、ダミーデータ部502のダミーデータは、例えば、連続する“0”や“1”で埋めることで構成してもよく、特定のパターンを有する“0”と“1”との組み合わせとして構成してもよく、適宜変更して実施することができる。
部分再生データ500aにおいては、分割ファイル部503および複数のメタデータ部501の各位置の間を埋めるようにダミーデータ部502が形成されているとも言える。すなわち、部分再生データ作成部101aは、分割ファイルとメタデータとの間にダミーデータを挿入することで、部分再生データを作成する。
部分再生データ500aは、分割ファイルを有するとともに、この分割ファイルを再生するために用いられるメタデータを有する。そして、この部分再生データ500aにおける分割ファイルの位置は、分割元ファイルにおける当該分割ファイルの位置と同じとなるように、メタデータと分割元ファイルとの間にダミーデータが挿入されている。これにより、部分再生データは、独立して再生可能な一つのファイル管理部201(動画ファイル)として構成される。
また、処理対象フレームが複数の分割ファイルにまたがって存在する場合には、各分割ファイルを格納するストレージノード10のそれぞれが近傍処理実行ノード10として、自身が格納する分割ファイルに対する近傍処理を実行する。
図10は第2実施形態の一例としての分散ストレージシステム1における部分再生データを説明するための図である。
この図10において、符号Aは、分割元ファイルを分割して4つの分割ファイル#1〜#4を作成した例を示す。4つの分割ファイル#1〜#4はそれぞれ1MBの固定長を有するものとし、分割元ファイルの先頭を基準とする各分割ファイルの先頭位置(距離)をオフセットで表す。分割ファイル#1のオフセットは0であり、分割ファイル#2,分割ファイル#3,分割ファイル#4の各オフセットは、1M,2M,3Mである。
そして、ストレージノード10−1(node#1)が分割ファイル#1を、ストレージノード10−2(node#2)が分割ファイル#2を、ストレージノード10−3(node#3)が分割ファイル#3を、ストレージノード10−4(node#4)が分割ファイル#4を、それぞれ格納する。
すなわち、ストレージノード10−1(node#1)が分割ファイル#1に対する近傍処理を行なう。同様に、ストレージノード10−2(node#2)が分割ファイル#2に対する近傍処理を、ストレージノード10−3(node#3)が分割ファイル#3に対する近傍処理を、ストレージノード10−4(node#4)が分割ファイル#4に対する近傍処理を、それぞれ行なう。
そして、図10に示す例においては、分割ファイル#1の途中から分割ファイル#3までの連続した領域が処理対象フレーム(target_frames)に指定されているものとする。
本第2実施形態の分散ストレージシステム1においては、分割ファイル#1〜#3のそれぞれに対応するストレージノード10−1〜10−3(ストレージノード#1〜#3)が、それぞれ部分再生データ500aを作成して近傍処理を実行する。
図10において符号Bは、ストレージノード10−1(node#1),10−2(node#2),10−3(node#3)がそれぞれ作成した部分再生データ500aを例示する。
すなわち、図10においては、ストレージノード10−1(node#1),10−2(node#2),10−3(node#3)がそれぞれ近傍処理実行ノード10である例について示す。以下、近傍処理実行ノード10であるストレージノード10−1〜10−3を近傍処理実行ノード10−1〜10−3もしくは近傍処理実行ノード10と表す場合がある。
管理ノード20において、近傍処理管理部202aは、キーフレームの情報に基づき、処理対象フレーム(target_frames)を、各近傍処理実行ノード10−1〜10−3で再生する複数(本例では3つ)の分割フレーム(split_frames{1,2,3})に分割する。
管理ノード20のノード決定部203は、近傍処理実行ノード10に対して、動画データの再生に必要なメタデータと、各分割フレームの前後のキーフレームの情報とを送信する。各近傍処理実行ノード10においては、これらの情報に基づき近傍処理をそれぞれ実行する。
近傍処理実行ノード10−1(node#1)において、部分再生データ作成部101aは、分散ファイル#1に基づいて部分再生データ500aを作成する。図10に例示する分割ファイル#1には再生用情報を有する2つのメタデータが備えられている。
また、分割ファイル#1において、処理対象フレームの前方位置にキーフレームが存在するが、処理対象フレームの後方位置にキーフレームが存在しない。近傍処理実行ノード10−1の部分再生データ作成部101aは、この分割ファイル#1に後続する分割ファイル#2を記憶するストレージノード10−2に、処理対象フレームの後端位置から先行する最初の(直近の)キーフレームまでのデータの送信を要求(データ補完要求)する。これにより、近傍処理実行ノード10−1の部分再生データ作成部101aは、分割ファイル#1において処理対象フレームの再生に不足するデータをストレージノード10−2から取得する。
近傍処理実行ノード10−1の部分再生データ作成部101aは、データ補完要求に対して他のストレージノード10から応答されたデータおよびキーフレームを、部分再生データ500aにおいて、分割ファイル#1に後続する位置に並べて記憶させる。
近傍処理実行ノード10−2(node#2)において、部分再生データ作成部101aは、分散ファイル#2に基づいて部分再生データ500aを作成する。
近傍処理実行ノード10−2の部分再生データ作成部101aは、管理ノード20のノード決定部203から部分再生データの作成指示とともに送信されたメタデータを部分再生データ500aのメタデータ部51に格納する。部分再生データ500aにおけるメタデータ部51の位置は、分割元ファイルにおけるメタデータの格納位置と同じであることが望ましい。
図10に示す例においては、部分再生データ作成部101aは、部分再生データ500aにおいて、その先頭を含む複数(図10に示す例では2つ)の位置にメタデータ部501を形成し、これらのメタデータ部501に管理ノード20のノード決定部203から送信されたメタデータを格納させる。
また、近傍処理実行ノード10−2の部分再生データ作成部101aは、部分再生データ500aにおける分割ファイル#2のオフセットの値と同一の位置に分割ファイル部503を設定する。部分再生データ作成部101aは、この分割ファイル部503に分割ファイル#2のデータを格納させる。
図10に示す例においては、分割ファイル#2において、処理対象フレームの前方位置および後方位置のそれぞれにキーフレームが存在しない。近傍処理実行ノード10−2の部分再生データ作成部101aは、この分割ファイル#2に先行する分割ファイル#1を記憶するストレージノード10−1に、処理対象フレームの前端位置から先行する最初の(直近の)キーフレームまでのデータの送信を要求(データ補完要求)する。これにより、近傍処理実行ノード10−2の部分再生データ作成部101aは、分割ファイル#2において処理対象フレームの再生に不足するデータをストレージノード10−1から取得する。
同様に、近傍処理実行ノード10−2の部分再生データ作成部101aは、この分割ファイル#2に後続する分割ファイル#3を記憶するストレージノード10−3に、処理対象フレームの後端位置から後続する最初の(直近の)キーフレームまでのデータの送信を要求(データ補完要求)する。これにより、近傍処理実行ノード10−2の部分再生データ作成部101aは、分割ファイル#2において処理対象フレームの再生に不足するデータをストレージノード10−3から取得する。
近傍処理実行ノード10−2の部分再生データ作成部101aは、データ補完要求に対してストレージノード10−1から応答されたデータおよびキーフレームを、部分再生データ500aにおいて、分割ファイル#2に先行する位置に並べて記憶させる。
同様に、近傍処理実行ノード10−2の部分再生データ作成部101aは、データ補完要求に対してストレージノード10−3から応答されたデータおよびキーフレームを、部分再生データ500aにおいて、分割ファイル#2に後続する位置に並べて記憶させる。
そして、部分再生データ作成部101aは、部分再生データ500aにおける分割ファイル部503に先行する領域であり、且つ、メタデータ部501以外の領域をダミーデータ部502としてダミーデータを挿入する。
これにより、近傍処理実行ノード10−2の部分再生データ作成部101aによる部分再生データ500aの作成が完了する。
近傍処理実行ノード10−3(node#3)において、部分再生データ作成部101aは、分散ファイル#3に基づいて部分再生データ500aを作成する。
近傍処理実行ノード10−3の部分再生データ作成部101aは、管理ノード20のノード決定部203から部分再生データの作成指示とともに送信されたメタデータを部分再生データ500aのメタデータ部51に格納する。部分再生データ500aにおけるメタデータ部51の位置は、分割元ファイルにおけるメタデータの格納位置と同じであることが望ましい。
図10に示す例においては、部分再生データ作成部101aは、部分再生データ500aにおいて、その先頭を含む複数(図10に示す例では2つ)の位置にメタデータ部501を形成し、これらのメタデータ部501に管理ノード20のノード決定部203から送信されたメタデータを格納させる。
また、近傍処理実行ノード10−3の部分再生データ作成部101aは、部分再生データ500aにおける分割ファイル#3のオフセットの値と同一の位置に分割ファイル部503を設定する。部分再生データ作成部101aは、この分割ファイル部503に分割ファイル#3のデータを格納させる。
図10に示す例においては、分割ファイル#3において、処理対象フレームの前方位置および後方位置のそれぞれにキーフレームが存在しない。近傍処理実行ノード10−3の部分再生データ作成部101aは、この分割ファイル#3に先行する分割ファイル#2を記憶するストレージノード10−2に、処理対象フレームの前端位置から先行する最初の(直近の)キーフレームまでのデータの送信を要求(データ補完要求)する。これにより、近傍処理実行ノード10−3の部分再生データ作成部101aは、分割ファイル#3において処理対象フレームの再生に不足するデータをストレージノード10−2から取得する。
同様に、近傍処理実行ノード10−3の部分再生データ作成部101aは、この分割ファイル#3に後続する分割ファイル#4を記憶するストレージノード10−4に、処理対象フレームの後端位置から後続する最初の(直近の)キーフレームまでのデータの送信を要求(データ補完要求)する。これにより、近傍処理実行ノード10−3の部分再生データ作成部101aは、分割ファイル#3において処理対象フレームの再生に不足するデータをストレージノード10−4から取得する。
近傍処理実行ノード10−3の部分再生データ作成部101aは、データ補完要求に対してストレージノード10−2から応答されたデータおよびキーフレームを、部分再生データ500aにおいて、分割ファイル#3に先行する位置に並べて記憶させる。
同様に、近傍処理実行ノード10−3の部分再生データ作成部101aは、データ補完要求に対してストレージノード10−4から応答されたデータおよびキーフレームを、部分再生データ500aにおいて、分割ファイル#3に後続する位置に並べて記憶させる。
そして、部分再生データ作成部101aは、部分再生データ500aにおける分割ファイル部503に先行する領域であり、且つ、メタデータ部501以外の領域をダミーデータ部502としてダミーデータを挿入する。
これにより、近傍処理実行ノード10−3の部分再生データ作成部101aによる部分再生データ500aの作成が完了する。
図10に示す例において、近傍処理実行ノード10−1(node#1)は、作成した部分再生データ500aにおいて、処理対象フレームに相当するデータ範囲(動画データ)を再生し、指定されたスクリプトを実行する。
また、近傍処理実行ノード10−2(node#2)は、作成した部分再生データ500aにおいて、処理対象フレームに相当する、キーフレームによって挟まれたデータ範囲(動画データ)を再生し、指定されたスクリプトを実行する。
さらに、近傍処理実行ノード10−3(node#3)は、作成した部分再生データ500aにおいて、キーフレームを先頭とする処理対象フレームの終端までのデータ範囲(動画データ)を再生し、指定されたスクリプトを実行する。
(B)動作
上述の如く構成された第2実施形態の一例としての分散ストレージシステム1における近傍処理を、図11に例示するシーケンス図に従って説明する。
図11に示す例においては、ホスト装置30,管理ノード20,近傍処理実行ノード10および近傍処理実行ノード10以外のストレージノード10を示す。
ホスト装置30においてユーザが近傍処理の実行を指示する入力を行なうと、ホスト装置30は、管理ノード20に対して、処理対象の動画(分割元ファイル)を特定するファイル名,処理対象フレーム(target_frames)および近傍処理のスクリプト(script)とを含む近傍処理の実行要求を送信する(矢印S11参照)。なお、処理対象フレームは、動画ファイルにおける、ユーザが近傍処理の対象としたい時間帯に相当する。
管理ノード20において、ノード決定部203は、例えば、近傍処理の実行要求に含まれる処理対象のフレーム(target_frames)を分散ファイル管理部201に通知する。分散ファイル管理部201は、動画ファイル名に基づいて分割ファイル管理情報を参照して、フレーム(target_frames)を含む分割ファイル(処理対象分割ファイル)を格納しているストレージノード(近傍処理実行ノード)10を確認し、ノード決定部203に通知する。ノード決定部203は、分散ファイル管理部201から応答されたストレージノード10を近傍処理実行ノード10として決定する(矢印S12参照)。
管理ノード20において、メタデータ取得部204は、分割元ファイルのメタデータを格納するストレージノード10を、分散ファイル管理部201に問い合わせる。分散ファイル管理部201は、分割ファイル管理情報を参照して、メタデータを格納するストレージノード10を特定し、メタデータ位置情報をメタデータ取得部204に応答する。
メタデータ取得部204は、分散ファイル管理部201から応答されたメタデータ位置情報によって特定されるストレージノード10に対して、メタデータの送信を要求するメタデータ要求通知を送信する(矢印S13参照)。
メタデータ要求通知を受信したストレージノード10は、自身の記憶装置40に格納されている分割元ファイルのメタデータを管理ノード20に応答する(矢印S14参照)。
管理ノード20において、ノード決定部203は、ユーザによって入力された近傍処理実行要求に基づき、分散ファイル管理部201が管理する分割ファイル管理情報を参照して、処理したい時間帯のフレーム情報を取得する。
管理ノード20において、キーフレーム情報取得部205は、分割元ファイルにおける処理対象フレームに関するキーフレームの位置を取得する。キーフレーム情報取得部205は、分割元ファイルにおける、ホスト装置30から入力された近傍処理の対象となるフレーム(target_frames)の前後の各位置にあるキーフレームの位置を取得する。
ノード決定部203は、ユーザによって入力された近傍処理実行要求と分割元ファイルとに基づき、どのストレージノード10でどのフレーム(分割ファイル)に対する近傍処理を行なうかを決定する(矢印S15参照)。
ノード決定部203は、近傍処理実行ノード10にメタデータ,キーフレーム情報およびスクリプトを送信して、近傍処理を実行させる(矢印S16)。近傍処理実行ノード10が複数ある場合には、各近傍処理実行ノード10に、それぞれ近傍処理を実行させる。
近傍処理実行ノード10においては、部分再生データ作成部101aが、分割ファイルを部分再生データ500aの分割ファイル部503に格納させる際に、分割ファイルにおける処理対象フレームの前後のキーフレームの各位置を確認する。具体的には、部分再生データ作成部101aは、分割ファイルにおいて、処理対象フレームの前方位置と後方位置とにそれぞれキーフレームが存在するかを確認する。
そして、部分再生データ作成部101aは、分割ファイルにおいて、処理対象フレームに隣接するキーフレームが含まれていない場合に、不足する処理対象フレームの端部位置から隣接するキーフレームまでのデータを、当該分割ファイルに隣接する他の分割ファイルに要求して取得する(矢印S17,S18参照)。
部分再生データ作成部101aは取得した不足部分のデータを、分割ファイルにおけるキーフレーム不在側の端部に連結させて、前記部分ファイルとともに部分再生データ500aの分割ファイル部503に格納させる。また、部分再生データ作成部101aは、部分再生データ500aのメタデータ部501に、管理ノード20のノード決定部203から部分再生データの作成指示と前後して送信されたメタデータを格納する。
これらの処理により、近傍処理実行ノード10の部分再生データ作成部101aは、部分再生データを作成する。また、近傍処理実行ノード10において、近傍処理実行部105は、作成した部分再生データに対して、管理ノード20のノード決定部203から近傍処理の実行指示とともに送信されたスクリプトを実行することで、近傍処理を実行する(矢印S19参照)。
近傍処理実行ノード10の近傍処理実行部105は、部分再生データに対するスクリプトの実行結果を近傍処理の実行結果として管理ノード20(近傍処理管理部202a)に送信する(矢印S20参照)。上述した矢印S16〜S20に示す処理は、各近傍処理実行ノード10において行なわれる(ループ処理)。
全ての近傍処理実行ノード10において近傍処理が完了し、処理結果が応答されると、管理ノード20は、ホスト装置30に対して、近傍処理の実行結果を送信する(矢印S21参照)。
(C)効果
このように、第2実施形態の一例としての分散ストレージシステム1によれば、上述した第1実施形態と同様の作用効果を得ることができる他、分割元ファイルにおいてキーフレームを有する場合においても、近傍処理実行ノード10において分割ファイルの再生を行なうことができ、分割ファイルに対する近傍処理を実行することができる。
(III)その他
図12は第1実施形態および第2実施形態の一例としての分散ストレージシステム1の管理ノード20およびストレージノード10のハードウェア構成を例示する図である。
上述の如く、本分散ストレージシステム1に備えられた複数のストレージノード10−1〜10−4のうち、一のストレージノード10が管理ノード20として機能する。従って、ストレージノード10と管理ノード20とは同様のハードウェア構成を有する。
ストレージノード10(管理ノード20)は、図12に例示するように、プロセッサ11,メモリ12,記憶装置13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11〜18は、バス19を介して相互に通信可能に構成される。
プロセッサ(処理部)11は、ストレージノード10(管理ノード20)全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
そして、プロセッサ11がストレージノード10用の制御プログラム(ストレージノード用プログラム:図示省略)を実行することにより、上述した、部分再生データ作成部101,101a,データ送信部104および近傍処理実行部105としての機能が実現される。なお、ストレージノード用管理プログラムはストレージ制御プログラムに相当する。
部分再生データ作成部101,101a,データ送信部104および近傍処理実行部105としての機能は、例えば、OS(Operating System)プログラム上で動作する機能として実装されてもよく、また、OSプログラムの機能として実装されてもよい。
なお、ストレージノード10は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(ストレージノード用プログラムやOSプログラム)を実行することにより、図2や図8に示す部分再生データ作成部101,101a,データ送信部104および近傍処理実行部105としての機能を実現する。
一方、プロセッサ11が管理ノード20用の制御プログラム(管理ノード用プログラム:図示省略)を実行することにより、上述した、分散ファイル管理部201および近傍処理管理部202,202aとしての機能が実現される。
分散ファイル管理部201および近傍処理管理部202,202aとしての機能は、例えば、OS(Operating System)プログラム上で動作する機能として実装されてもよく、また、OSプログラムの機能として実装されてもよい。
なお、ストレージノード10は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(ストレージノード用プログラムやOSプログラム)を実行することにより、図2や図8に示す分散ファイル管理部201および近傍処理管理部202,202aとしての機能を実現する。
ストレージノード10(管理ノード20)に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ストレージノード10(管理ノード20)に実行させるストレージノード用プログラム(管理ノード用プログラム)を記憶装置13に格納しておくことができる。プロセッサ11は、記憶装置13内のプログラムの少なくとも一部をメモリ12にロードし、ロードしたプログラムを実行する。
また、ストレージノード10(管理ノード20)のプロセッサ11に実行させるプログラム(ストレージノード用プログラム,管理ノード用プログラム)を、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、記憶装置13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
メモリ12は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ12のRAMはストレージノード10(管理ノード20)の主記憶装置として使用される。RAMには、プロセッサ11に実行させるOSプログラムや制御プログラム(ストレージノード用プログラム,管理ノード用プログラム)の少なくとも一部が一時的に格納される。また、メモリ12には、プロセッサ11による処理に必要な各種データが格納される。
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。記憶装置13は、ストレージノード10(管理ノード20)の補助記憶装置として使用される。記憶装置13には、OSプログラム,制御プログラムおよび各種データが格納される。制御プログラムにはストレージノード用プログラムや管理ノード用プログラムが含まれる。
なお、補助記憶装置としては、SCMやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置13を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD−RAM,CD−ROM(Compact Disc Read Only Memory),CD−R(Recordable)/RW(ReWritable)等が挙げられる。
機器接続インタフェース17は、ストレージノード10(管理ノード20)に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
ネットワークインタフェース18は、ネットワーク50に接続される。ネットワークインタフェース18は、ネットワーク50を介して、他のストレージノード10や管理ノード20,ホスト装置30との間でデータの送受信を行なう。ネットワーク50には他の情報処理装置や通信機器等が接続されてもよい。
ネットワーク50にはストレージノード10,管理ノード20およびホスト装置30が接続され、ストレージノード10(管理ノード20)は、ネットワークインタフェース18およびネットワークを介して他のストレージノード10や管理ノード20,ホスト装置30等と通信可能に接続される。
そして、開示の技術は上述した各実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
上述した各実施形態においては、分割元ファイルが動画データである例を示しているが、これに限定されるものではない。分散ストレージシステム1において、動画データ以外のデータを複数の分割ファイルに分割して、複数のストレージノード10に格納してもよい。分割元ファイルは連続性があるデータであってもよい。
上述した各実施形態においては、分散ファイル管理部201が、分割元ファイルに基づき固定長(同一サイズ)の複数の分割ファイルを作成する例を示しているが、これに限定されるものではない。分散ファイル管理部201は、分割元ファイルに基づき可変長の複数の分割ファイルを作成してもよい。
上述した各実施形態においては、分散ストレージシステム1に備えられた複数のストレージノード10のうちの一のストレージノード10が管理ノード20として機能する例を示したが、これに限定されるものではない。ストレージノード10とは別に管理ノード20として機能する情報処理装置を備えてもよい。また、管理ノード20としての機能を複数の情報処理装置によって実現してもよい。
上述した各実施形態においては、本分散ストレージシステム1が、分割データをファイルとして扱う分散オブジェクトストレージシステムである例について示したが、これに限定されるものではない。分散ストレージシステム1が、ブロックストレージシステムであってもよく、適宜変更して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(IV)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のストレージ制御装置を備え、元データを複数に分割して作成した分割データを、2つ以上の前記ストレージ制御装置に分散して配置する分散ストレージシステムにおける、前記複数のストレージ制御装置のうちの一のストレージ制御装置であって、
前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得する取得部と、
前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する作成部と
を備えることを特徴とする、ストレージ制御装置。
(付記2)
前記作成部は、
前記分割データに、前記処理要求の対象データ範囲に隣接するキーフレームが含まれていない場合に、前記処理要求の対象データ範囲の端部位置から隣接するキーフレームまでのデータを、前記元データにおいて当該分割データに隣接する他の分割データを管理する他の前記ストレージ制御装置から取得する
ことを特徴とする、付記1記載のストレージ制御装置。
(付記3)
複数のストレージノードと、前記複数のストレージノードを管理する管理ノードとを備え、前記複数のストレージノードに元データを複数の分割データに分散して格納する分散ストレージシステムにおいて、
前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得する取得部と、
前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する作成部と
を備えることを特徴とする、分散ストレージシステム。
(付記4)
前記作成部は、
前記分割データに、前記処理要求の対象データ範囲に隣接するキーフレームが含まれていない場合に、前記処理要求の対象データ範囲の端部位置から隣接するキーフレームまでのデータを、前記元データにおいて当該分割データに隣接する他の分割データを管理する他の前記ストレージ制御装置から取得する
ことを特徴とする、付記3記載の分散ストレージシステム。
(付記5)
前記処理要求の対象データ範囲が、複数の分割データにまたがる場合に、前記複数の分割データを管理する各ストレージ制御装置のそれぞれが、自身が管理する前記分割データを用いて前記分割データ再生用データを作成する
ことを特徴とする、付記4記載の分散ストレージシステム。
(付記6)
複数のストレージ制御装置を備え、元データを複数に分割して作成した分割データを、2つ以上の前記ストレージ制御装置に分散して配置する分散ストレージシステムにおける、前記複数のストレージ制御装置のうちの一のストレージ制御装置のプロセッサに、
前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得し、
前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する
処理を実行させる、ストレージ制御プログラム。
(付記7)
前記分割データに、前記処理要求の対象データ範囲に隣接するキーフレームが含まれていない場合に、前記処理要求の対象データ範囲の端部位置から隣接するキーフレームまでのデータを、前記元データにおいて当該分割データに隣接する他の分割データを管理する他の前記ストレージ制御装置から取得する
処理を、前記プロセッサに実行させる、付記6記載のストレージ制御プログラム。
1 分散ストレージシステム
10 ストレージノード
11 プロセッサ
12 RAM
13 HDD
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
18a ネットワーク
19 バス
20 管理ノード
30 ホスト装置
40 記憶装置
101,101a 部分再生データ作成部
102 データ取得部
103 ダミー領域設定部
104 データ送信部
105 近傍処理実行部
201 分散ファイル管理部
202,202a 近傍処理管理部
203 ノード決定部
204 メタデータ取得部
205 キーフレーム情報取得部
500,500a 部分再生データ
501 メタデータ部
502 ダミーデータ部
503 分割ファイル部

Claims (4)

  1. 複数のストレージ制御装置を備え、元データを複数に分割して作成した分割データを、2つ以上の前記ストレージ制御装置に分散して配置する分散ストレージシステムにおける、前記複数のストレージ制御装置のうちの一のストレージ制御装置であって、
    前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得する取得部と、
    前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する作成部と
    を備えることを特徴とする、ストレージ制御装置。
  2. 前記作成部は、
    前記分割データに、前記処理要求の対象データ範囲に隣接するキーフレームが含まれていない場合に、前記処理要求の対象データ範囲の端部位置から隣接するキーフレームまでのデータを、前記元データにおいて当該分割データに隣接する他の分割データを管理する他の前記ストレージ制御装置から取得する
    ことを特徴とする、請求項1記載のストレージ制御装置。
  3. 複数のストレージノードと、前記複数のストレージノードを管理する管理ノードとを備え、前記複数のストレージノードに元データを複数の分割データに分散して格納する分散ストレージシステムにおいて、
    前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得する取得部と、
    前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する作成部と
    を備えることを特徴とする、分散ストレージシステム。
  4. 複数のストレージ制御装置を備え、元データを複数に分割して作成した分割データを、2つ以上の前記ストレージ制御装置に分散して配置する分散ストレージシステムにおける、前記複数のストレージ制御装置のうちの一のストレージ制御装置のプロセッサに、
    前記分割データの処理要求を受けて、前記元データにおける当該元データの再生に用いる管理情報の格納位置を特定し、前記管理情報を取得し、
    前記元データにおける前記管理情報の位置に対応する第1の領域に前記管理情報を格納し、前記元データにおける前記分割データの相対位置に対応する第2の領域に前記分割データを格納し、前記第1の領域および前記第2の領域以外の第3の領域にダミーデータを格納した分割データ再生用データを作成する
    処理を実行させる、ストレージ制御プログラム。
JP2019160998A 2019-09-04 2019-09-04 ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム Active JP7310462B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019160998A JP7310462B2 (ja) 2019-09-04 2019-09-04 ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム
US17/006,960 US11360710B2 (en) 2019-09-04 2020-08-31 Storage control device, distributed storage system, and non-transitory computer-readable storage medium for storing storage control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019160998A JP7310462B2 (ja) 2019-09-04 2019-09-04 ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2021039575A true JP2021039575A (ja) 2021-03-11
JP7310462B2 JP7310462B2 (ja) 2023-07-19

Family

ID=74681187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019160998A Active JP7310462B2 (ja) 2019-09-04 2019-09-04 ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US11360710B2 (ja)
JP (1) JP7310462B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004080145A (ja) * 2002-08-12 2004-03-11 Canon Inc 映像サーバシステム及びその映像再生方法
JP2010238038A (ja) * 2009-03-31 2010-10-21 Nec Corp 分散ファイルシステム及び分散ファイル格納方法
JP2020518934A (ja) * 2017-06-08 2020-06-25 ヒタチ ヴァンタラ コーポレーションHitachi Vantara Corporation 地理的に分散したオブジェクトデータの高速呼び戻し

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09205634A (ja) 1996-01-25 1997-08-05 Matsushita Electric Ind Co Ltd 映像データ記憶方法および映像サーバ
JP2009124527A (ja) 2007-11-16 2009-06-04 Brother Ind Ltd コンテンツ再生方法、ノード装置およびプログラム
US9823854B2 (en) * 2016-03-18 2017-11-21 Qualcomm Incorporated Priority-based access of compressed memory lines in memory in a processor-based system
KR20200113992A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004080145A (ja) * 2002-08-12 2004-03-11 Canon Inc 映像サーバシステム及びその映像再生方法
JP2010238038A (ja) * 2009-03-31 2010-10-21 Nec Corp 分散ファイルシステム及び分散ファイル格納方法
JP2020518934A (ja) * 2017-06-08 2020-06-25 ヒタチ ヴァンタラ コーポレーションHitachi Vantara Corporation 地理的に分散したオブジェクトデータの高速呼び戻し

Also Published As

Publication number Publication date
JP7310462B2 (ja) 2023-07-19
US20210064297A1 (en) 2021-03-04
US11360710B2 (en) 2022-06-14

Similar Documents

Publication Publication Date Title
US7164809B2 (en) Image processing
US7359626B2 (en) Image mastering API
US8482874B2 (en) Presentation of shingled magnetic recording device to a host device resource manager
MXPA06000329A (es) Transferencia de medios digitales basados en la conducta del usuario.
JP2006073196A (ja) コンパクトディスクメディアのデータの読み書き方法
JP2002514331A (ja) 物理的情報ファイルの情報を共有するための仮想ファイルを生成するコンピュータ実行法
JP2004127426A (ja) 記録制御装置、方法、およびその記録制御方法を利用可能な記録媒体
JP2011203977A (ja) ストレージ装置、及びストレージ装置におけるファイルシステムの生成方法
JPH11232838A (ja) 光ディスク、光ディスク記録装置、及び光ディスク読取装置
JP2006251990A (ja) データベース再編成プログラムおよびデータベース再編成方法
JP7310462B2 (ja) ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム
JP2003052006A (ja) 情報編集制御装置、情報編集方法、及びディスク装置
JPH11203782A (ja) 情報記録再生装置およびその制御方法
US5617560A (en) System for handling platform independent optical card by separating during a read and recombining during a write generic directory information and OS dependent directory information
JP4211563B2 (ja) 再生記録装置
JP2006323462A (ja) ファイルコピー装置およびファイルコピー方法
JP6932769B2 (ja) 記録管理装置及び方法、コンピュータプログラム並びに記録媒体
JP2005316624A (ja) データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
US7269688B2 (en) Method of creating and recording image file
JP4277707B2 (ja) 情報記録方法
WO2022044458A1 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JPH11162089A (ja) データ再生制御装置、同装置に用いられる記録媒体、データ再生制御方法
JP2001211412A (ja) 高速av情報サーバー及びその磁気ディスク装置増設方法
JP2005115696A (ja) ファイルアクセス方法及び情報処理装置
JPH1198448A (ja) ビデオサーバ装置及びそのアクセス処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230619

R150 Certificate of patent or registration of utility model

Ref document number: 7310462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150