JP6585283B2 - データ処理システム及びデータ処理方法 - Google Patents

データ処理システム及びデータ処理方法 Download PDF

Info

Publication number
JP6585283B2
JP6585283B2 JP2018507826A JP2018507826A JP6585283B2 JP 6585283 B2 JP6585283 B2 JP 6585283B2 JP 2018507826 A JP2018507826 A JP 2018507826A JP 2018507826 A JP2018507826 A JP 2018507826A JP 6585283 B2 JP6585283 B2 JP 6585283B2
Authority
JP
Japan
Prior art keywords
metadata
type
meta
unstructured data
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018507826A
Other languages
English (en)
Other versions
JPWO2017168499A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2017168499A1 publication Critical patent/JPWO2017168499A1/ja
Application granted granted Critical
Publication of JP6585283B2 publication Critical patent/JP6585283B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、概して、データ処理に関する。
ストレージシステムにより管理されているデータは、検索及び分析等の様々な用途に使用し得る。
例えば、ビックデータ分析では、特に、ファイルなど保存構造が定まっていない非構造化データに対する分析が、業務における新たな知見や気づきを得る有用な方法として期待されている。このビックデータ分析では、大量のデータを対象に分析を行うことで検索に時間がかかり、分析完了までに多大な時間を要してしまうことを防ぐため、大量のデータから分析に必要なデータのみの集合を作成することがある。必要なデータのみの集合を「データマート」(以下、DM)と呼び、当該データ集合の作成を「DM作成処理」という。
ビッグデータ分析では、一般に、DM作成処理に多大な時間を要する。これは、大量のデータからデータ分析に必要なデータを複製(抽出)しDMに格納する処理に時間を要するためである。特許文献1は、ソースデータを仮想的に複製されたスナップショットデータとしてホスト計算機に示すことで短時間にデータの複製を可能とする技術を開示している。
US5819292
しかし、特許文献1に開示の技術では、スナップショットデータをホスト計算機に示すために、ソースボリュームのようなデータソースのアドレスを指定する必要がある。このようなアドレス指定を必要とするスナップショット作成技術を、非構造化データソース(例えば大量の非構造化データを格納したソース)からDMを作成する処理に適用することは困難である。
このような課題は、非構造化データソースから分析を目的としてDMを作成する処理に限らず、分析以外の用途のために非構造化データソースからデータ集合(部分集合)を作成する処理についてもあり得る。
非構造化データソースに含まれている非構造化データには、第1種メタデータが関連付けられている。データ処理システムが、抽出処理を実行する。抽出処理は、非構造化データソース内の該当する非構造化データ毎に、(a)その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成することと、(b)その作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付けることと、を含む。
複数の非構造化データの複数の第1種メタデータに関連付けられた複数の第2種メタデータのうち条件に適合する第2種メタデータに関連付いた第1種メタデータにより参照される非構造化データで構成された仮想的なデータ集合を作成できる。このため、短時間でデータ集合を作成できることが期待される。
実施例1の概要を示す。 Cスナップ処理とその前後の処理とを含んだ一連の処理の一例の概要を示す。 実施例1に係る計算機システムのブロック図である。 スナップショット処理の一例を示す。 ストレージ管理テーブルの構成を示す。 1つのSメタに含まれるSメタ管理情報及びSメタ属性情報の構成を示す。 1つのCメタに含まれるCメタ管理情報の構成を示す。 コピーペア管理テーブルの構成を示す。 実施例4の概要を示す。 データリード処理のフローチャートである。 データライト処理のフローチャートである。 抽出処理のフローチャートである。 Cスナップ(選別)のフローチャートである。 Cスナップ(スナップ取得)のフローチャートである。 1つのデータVOLと複数のスナップショットVOL(仮想DM)との関係の一例を示す。 実施例2の概要を示す。 スケールアウト処理の概要を示す。 実施例3の概要を示す。
以下、図面を参照して、幾つかの実施例を説明する。
なお、以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「記憶部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶部は、1以上のメモリに加えて、1以上のPDEVを含んでもよい。「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部(或いは、プロセッサ部を有する計算機又は計算機システム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記録媒体であってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。
また、以下の説明では、「ホストシステム」は、1以上の物理的なホスト計算機(例えばホスト計算機のクラスタ)であってもよいし、少なくとも1つの仮想的なホスト計算機(例えばVM(Virtual Machine))を含んでもよい。
また、以下の説明では、「管理システム」は、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が表示デバイスを有していて管理計算機が自分の表示デバイスに情報を表示する場合、管理計算機が管理システムでよい。また、例えば、管理計算機(例えばサーバ)が表示用情報を遠隔の表示用計算機(例えばクライアント)に送信し表示用計算機がその情報を表示する場合(管理計算機が表示用計算機に情報を表示する場合)、管理計算機と表示用計算機とのうちの少なくとも管理計算機を含んだシステムが管理システムでよい。
また、以下の説明では、「ストレージシステム」は、1以上の物理的なストレージ装置であってもよいし、少なくとも1つの仮想的なストレージ装置(例えばLPAR(Logical Partition)又はSDS(Software Defined Storage))を含んでもよい。
また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数のPDEV(典型的には同種のPDEV)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
また、以下の説明では、「VOL」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。「RVOL」は、そのRVOLを提供するストレージシステムが有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」は、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOLとのうちのいずれでもよい。EVOLは、外部のストレージシステムの記憶空間(例えばVOL)に基づいておりストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。スナップショットVOLは、オリジナルのVOLのスナップショットとして提供されるVOLでよい。スナップショットVOLは、RVOLであってもよい。「プール」は、論理的な記憶領域(例えば複数のプールVOLの集合)でよい。例えば、プールとして、TPプールと、スナップショットプールとのうちの少なくとも1種類があってよい。TPプールは、複数の実領域(実体的な記憶領域)で構成された記憶領域でよい。ストレージシステム(例えば後述のストレージコントローラ)が、ホストシステムから受信したライト要求が指定するアドレスが属する仮想領域(TPVOLの仮想領域)に実領域が割り当てられていない場合、その仮想領域(ライト先仮想領域)にTPプールから実領域を割り当ててよい(ライト先仮想領域に他の実領域が割り当て済であっても実領域が新たにライト先仮想領域に割り当てられてもよい)。ストレージシステムは、割り当てられた実領域に、そのライト要求に付随するライト対象データを書き込んでよい。スナップショットプールは、オリジナルのVOLから退避されたデータが格納される記憶領域でよい。1つのプールが、TPプールとしてもスナップショットプールとしても使用されてもよい。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。
図1は、実施例1の概要を示す。
実施例1に係る計算機システムは、1以上のホスト計算機200、管理計算機100、及び、ストレージ装置300を含む。ホスト計算機200はネットワーク500を介しストレージ装置300に接続される。管理計算機100はネットワーク550を介しストレージ装置300に接続される。
ホスト計算機200は、アプリケーションプログラム(以下、アプリ)211を実行する。例えば、ホスト計算機200Pは、業務アプリ211Bを実行し、ホスト計算機200Aは、分析アプリ211Aを実行する。管理計算機100は、管理プログラム112を実行する。
ストレージ装置300は、オブジェクトストレージ装置であり、ストレージコントローラ329を有する。ストレージコントローラ329は、ローカルメモリ1200を有し、VOL26を提供する。VOL26として、少なくとも、データVOL26Dがある。データVOL26Dは、ネームスペース又はDWH(Data Ware House)のようなデータソース(典型的には非構造化データソース)の一例である。データVOL26Dには、データチャンク81が格納される。本実施例において、「データチャンク」は、有意な単位のデータ(例えば、静止画、動画、Eメール)である。データチャンクは、例えば、センサからのデータを含んだ時系列データのうちの一部分(例えば或る時間毎のデータ)であってもよい。所定のデータ属性が共通する1以上のデータチャンク81が同一のオブジェクトに含まれる。本実施例において、「オブジェクト」は、1以上のデータチャンク81と、その1以上のデータチャンク81に対応した1つのSメタ82とを含むデータセットである。例えば、データチャンク81が、データ発行元(例えば、カメラ等のセンサ)からのデータの場合、同一のデータ発行元からの各データが「データチャンク」であり、同一のデータ発行元からの複数のデータチャンク(データ属性「発行元」が共通する複数のデータチャンク)が同一の「オブジェクト」に含まれる。本実施例では、「非構造化データ」は、オブジェクト内の少なくとも1つを含んだデータでよい。なお、「非構造化データ」は、いわゆる半構造化データを含む概念であってもよい。以下、1つのオブジェクトに含まれる1以上のデータチャンクを「データチャンクユニット」又は「オブジェクトデータ」と呼んでもよい。「非構造化データ」は、オブジェクト内の各データチャンクであってもよいし、一部のデータチャンクであってもよいし、データチャンクユニット(オブジェクトデータ)であってもよい。
本実施例では、2種類のメタデータが存在する。2種類のメタデータの少なくとも一部がローカルメモリ1200に格納される。2種類のメタデータを、本実施例では、「Sメタ」及び「Cメタ」と呼ぶ。Sメタ82(又は、1つのデータチャンクに対応した後述のSメタ属性情報1220)が、第1種メタデータの一例であり、Cメタ83が、第2種メタデータの一例である。本実施例では、Sメタ82とオブジェクトが1:1で対応する。故に、Sメタ82とデータチャンク81が1:1又は1:多で対応する。一方、Cメタ83とデータチャンク81は、1:1又は多:1で対応する。ユーザ毎に後述の抽出プログラムが存在することがあり、その場合、抽出プログラムによって同一のデータチャンク81であっても作成するCメタ83が異なるためである。故に、Sメタ82とCメタ83が1:1又は1:多で対応する。Sメタ82は、オブジェクトに含まれるデータチャンクユニット(全てのデータチャンク81)に紐付いているメタデータであり、例えば、SメタID(オブジェクトID)と、対応するオブジェクトに含まれる各データチャンク81の格納場所を表す情報とを含む。一方、Cメタ83は、データVOL26Dから抽出されたデータチャンク81(データコンテンツ)から特定された1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである。「コンテンツ属性」とは、データのコンテンツに関する属性であり、例えば、データ種別(例えば画像、Eメール)、時刻(例えば、取得時刻又は更新時刻)等である。コンテンツ情報は、テキスト(例えば文字列)で表現された情報であるが、テキストに代えて加えて他種の情報(例えば特徴量等を表す数値)を含んでもよい。Sメタ82とCメタ83には、相互にその関係性を示すための情報も保持される。具体的には、Cメタ83は、そのCメタ83に対応したデータチャンク81を参照するSメタ82を参照し、そのCメタ83により参照されるSメタ82は、そのCメタ83を参照する。つまり、同一のデータチャンク81に対応したCメタ83及びSメタ82が互いに参照し合う。なお、このような双方向の参照(リンク)に代えて、Cメタ83からSメタ82への単方向の参照が採用されてもよい。Cメタ83は、データチャンク81のメタデータの一種であるため、データチャンク81よりもデータ量が小さい。また、Sメタ82とオブジェクトは、1:1に限らない(例えば、多:多又は1:多でもよい)。
ホスト計算機200は、I/O(Input/Output)要求をストレージ装置300に発行する。I/O要求は、ライト要求又はリード要求である。I/O要求がリード要求の場合、リード対象のデータチャンク81に対応したオブジェクトIDが指定されるようになっている。ストレージコントローラ329は、例えばホスト計算機200Aからリード要求を受信した場合、そのリード要求が指定するオブジェクトIDが記述されたSメタ82を特定し、特定したSメタ82が指すデータチャンク81をデータVOL26Dから読み出し、そのデータチャンク81をホスト計算機200Aに返信する。
ストレージコントローラ329は、DM作成処理を実行する。DM作成処理は、ユーザからの特定種類の要求であるユーザ要求に応答して開始される。ユーザ要求は、DM作成の明示的な要求であってもよいし、検索要求のようにDM作成要求の1つとして定義された要求であってもよい。本実施例では、ストレージコントローラ329は、ホスト計算機200のユーザ(例えば分析者)から検索要求を受け付け、管理計算機100のユーザ(例えば管理者)からDM作成要求を受け付ける。ユーザ要求では、分析観点等に従う検索条件(DMに含まれるべきデータに関する条件)が指定される。検索条件としては、例えば、データ種別(例えば、写真、Eメール)、データ発行元(例えば、センサ型番)、位置(例えば、撮影位置のようなデータ取得位置)、時間帯(例えば、撮影時刻のような時間帯)及びデータ値範囲(例えば、データに含まれるメトリック値の上限と下限)のうちの少なくとも1つについての条件を採用し得る。
検索条件として、通常は、データチャンク81が実際に格納されている領域(例えばVOL領域)のアドレスは指定されない。通常、そのようなアドレスをユーザは知らないためである。
しかし、本実施例に係るDM作成処理は、以下の(理由1)〜(理由3)のうちの少なくとも(理由3)から、短時間で終了することが期待される。
(理由1)DM作成処理では、Cメタ83が参照され、データVOL26D内のデータチャンク81は参照されない。
(理由2)DM作成処理において参照されるCメタ83は、DM作成処理と非同期に作成されたCメタ83(例えば、DM作成処理の開始前に作成されたCメタ83)である。言い換えれば、Cメタ83は、DM作成処理の開始の契機であるユーザ要求とは異なる契機で作成される。例えば、データチャンク81がデータVOL26Dに格納されたときにそのデータチャンク81のCメタ83が作成される。
(理由3)DM作成のためにデータチャンク81を複製することは不要である。すなわち、作成されるDMは、データVOL26D内のデータチャンク81の複製が格納される実体的なDMではなく、データVOL26D内のデータチャンク81を参照する仮想的なDM(以下、VDM)である。VDMは、本実施例ではSSVOL(スナップショットVOL)26Sである。SSVOL26Sの作成のためには、第1Sメタ82Sを複製すればよく、データチャンク81それ自体の複製は不要である。なお、VDMに含まれるデータチャンク81がSメタ82の全ての参照先データチャンク81とは限らないため、第1Sメタ82Sの複製に基づくメタデータである第2Sメタ82Tは、第1Sメタ82と完全には一致しないこともある。第1Sメタ82Sは、オブジェクトに含まれるオリジナルのメタデータであり、第2Sメタ82Tは、上述したように、第1Sメタ82Sの複製に基づくメタデータである。第1Sメタ82Sが、第1の第1種メタデータの一例であり、第2Sメタ82Tが、第2の第2種メタデータの一例である。つまり、本実施例では、Sメタ82として、第1Sメタ82Sと第2Sメタ82Tとがある。なお、第2Sメタ82Tは、SSVOL26Sを通じて参照可能なデータチャンクであるスナップショットデータチャンク(実体は、データVOL26D内のデータチャンク)に関する情報を保持するデータなので、必ずしもメタデータといった便宜的なデータ名を使用しなくてもよく、例えば、スナップショット管理データのように別の名称で呼ばれてもよい(この場合、混同が生じないので、第1Sメタは、単に「Sメタ」又は「メタデータ」と呼ばれてもよい)。
以上の理由を基に、以下、本実施例に係るDM作成を、「Cスナップ」と呼び、DM作成処理を「Cスナップ処理」と呼ぶ。なお、DMは、データ集合の一例であり、VDMは、仮想的なデータ集合の一例である。
図1の例によれば、例えば、分析アプリ211A(ホスト計算機200A)からの検索要求42とは非同期に(例えば、検索要求42に応答してCスナップが開始される前に)、ストレージコントローラ329が、データVOL26D内のデータチャンク#1及び#2にそれぞれ対応したCメタ#1及び#2を作成してローカルメモリ1200に格納する。Cメタ#1は、データチャンク#1を参照する第1Sメタ#1を参照し、Cメタ#2は、データチャンク#2を参照する第1Sメタ#2を参照する。
図1の例によれば、ストレージコントローラ329は、検索要求42に応答して、Cスナップを開始する。Cスナップ処理は、「Cスナップ(選別)」と、「Cスナップ(スナップ取得)」の2つに大別される。Cスナップ(選別)では、ストレージコントローラ329は、存在するCメタ#1及び#2から、検索要求42で指定されている検索条件に適合するCメタ83を探す。つまり、検索範囲が、データチャンク81ではなくCメタ83である。検索条件に適合した少なくとも1つのCメタ83が見つかった場合、Cスナップ(スナップ取得)が実行される。Cメタ#1が見つかったとする。Cスナップ(スナップ取得)では、ストレージコントローラ329は、Cメタ#1が参照する第1Sメタ#1の複製に基づく第2Sメタ#1´を作成し、第2Sメタ#1´が属するSSVOL26S(VDM)を作成する。ストレージコントローラ392は、SSVOL26Sを、1以上のホスト計算機200のうちの少なくともホスト計算機200A(検索要求42の送信元)に提供する。分析アプリ211A(ホスト計算機200A)は、SSVOL26Sに属する第2Sメタ#1´が参照するデータチャンク81を用いて分析を実行できる。なお、SSVOL26Sが参照するデータチャンク81のアクセス状態(アクセス制限)として、例えば、“R/W可”(リード及びライトのいずれも可)、“RO”(リードオンリー(リードのみ可))、及び、“R/W不可”(リード及びライトのいずれも不可)のいずれが採用されてもよい。例えば下記のうちの少なくとも1つが採用されてよい。
(V1)SSVOL26Sの提供先が複数のホスト計算機200の場合、SSVOL26Sのアクセス状態は“RO”とされてよい。これにより、複数のホスト計算機200間でデータの整合性を維持できる。
(V2)SSVOL26Sの提供先がホスト計算機200Aのみの場合、SSVOL26Sのアクセス状態は“R/W”とされてよい。これにより、ホスト計算機200AがSSVOL26Sをカスタマイズできる。例えば、ストレージコントローラ392は、SSVOL26Sを指定したライト要求を受けた場合、そのライト要求に付随するデータチャンクを、プールに格納してよい。
以上の通り、Cスナップ処理は、データチャンク81の複製が不要のため、短時間で終了することが期待できる。
以下、本実施例を詳細に説明する。
図2は、Cスナップ処理とその前後の処理とを含んだ一連の処理の一例の概要を示す。
図2の例によれば、Cスナップ処理の前は、「(0)通常状態」及び「(1)抽出処理」である。「(0)通常状態」は、Cメタ83が作成される前の状態である。「(1)抽出処理」では、Cメタ83が作成される。Cメタ83は、第1Sメタ82Sを参照する。
Cスナップ処理は、2つの処理に大別され、具体的には、「(2−1)Cスナップ(選別)」と、「(2−2)Cスナップ(スナップ取得)」である。
Cスナップ処理の後は、上述したように、「(3)分析」が行われる。
図2の詳細な説明は後述する。
図3は、実施例1に係る計算機システムのブロック図である。
上述したように、計算機システムは、管理計算機100、ホスト計算機200及びストレージ装置300を備える。管理計算機100、ホスト計算機200及びストレージ装置300のうちのいずれも、1台以上備わっていてよい。管理計算機100は、管理システムの一例である。ホスト計算機200は、ホストシステムの一例である。ストレージ装置300は、ストレージシステムの一例である。
管理計算機100、ホスト計算機200及びストレージ装置300は、ネットワーク(例えばLAN(Local Area Network))500を介して相互に接続される。また、管理計算機100は、ホスト計算機200及びストレージ装置300は、ネットワーク(例えばSAN(Storage Area Network))550を介して接続される。ネットワーク500及び550は一体でもよい。
管理計算機100は、I/F(インターフェース)131、I/F130、メモリ110及びそれらに接続されたプロセッサ120を有する。I/F131及びI/F130は、インターフェース部の一例である。I/F131は、ネットワーク550に接続される。I/F130は、ネットワーク500に接続される。メモリ110が、管理プログラム112を記憶する。プロセッサ120は、管理プログラム112を実行することで、ストレージ装置300に要求を発行できる。なお、要求は、ライト要求、リード要求、又はコピー制御要求等でよい。
ホスト計算機200は、I/F231、I/F230、メモリ210及びそれらに接続されたプロセッサ220を有する。I/F231及びI/F230は、インターフェース部の一例である。I/F231は、ネットワーク550に接続される。I/F230は、ネットワーク500に接続される。メモリ210が、OS(Operating System)212、アプリ211及びエージェントプログラム213等のプログラムを記憶する。プロセッサ220は、メモリ210内のプログラムを実行する。例えば、プロセッサ220は、プログラムを実行することによりストレージ装置300にI/O要求を送信する。それにより、ストレージ装置300によって提供されるVOL26にアクセスできる。
アプリ211は、例えば分析アプリである。例えば、分析アプリは、相関分析などの分析処理を実施する。OS212は、ホスト計算機200の処理の全体を制御する。エージェントプログラム213は、管理計算機100に指示を送信し、管理計算機100は、その指示をストレージ装置300に転送できる。分析アプリ211は、ストレージ機能を利用したい場合、エージェントプログラム213を利用することで、管理プログラム112を経由して、分析処理と連動したストレージ制御が可能となる。例えば、分析アプリがDM作成機能を有する場合、ユーザによるDM作成操作に応答してエージェントプログラム213が管理プログラム112にその操作内容を送信し、管理プログラム112がその操作内容を、コピー制御要求に変換し、そのコピー制御要求をストレージ装置300に送信する。
ストレージ装置300は、1以上のPDEV1500と、それに接続されたストレージコントローラ329とを有する。
1以上のPDEV1500は、1以上のRAIDグループを構成してもよい。PDEV1500は、例えば、HDD又はSSDである。1以上のPDEV1500に、データVOL26Dに格納されたデータチャンク81等が格納される。1以上のPDEV1500に、複数のCメタ83と複数のSメタ82のうちの少なくとも一部が格納されてもよい。
ストレージコントローラ329は、I/F1321、I/F1320、I/F1400、キャッシュメモリ1100、ローカルメモリ1200、及びそれらに接続されたプロセッサ1310を有する。ローカルメモリ1200が、情報及びプログラムを記憶する。プロセッサ1310が、ローカルメモリ1200内のプログラムを実行することにより、ローカルメモリ1200内の情報を参照又は更新したり、VOLに対するI/Oを行ったり、Cメタ83を作成したり、Cスナップを実行したりする。
I/F1321、I/F1320及びI/F1400は、インターフェース部の一例である。I/F1321は、ネットワーク550に接続される。I/F1320は、ネットワーク500に接続される。I/F1400は、1以上のPDEV1500に接続される。
キャッシュメモリ1100及びローカルメモリ1200は、記憶部の一例である。キャッシュメモリ1100及びローカルメモリ1200は1つのメモリであって、そのメモリに、キャッシュメモリとしてのキャッシュ領域と、ローカルメモリとしてのローカルメモリ領域とが設けられていてもよい。
キャッシュメモリ1100は、1以上のPDEV1500に入出力されるデータ(例えば、ホスト計算機200からのI/O要求に従うデータ(ライト対象データ又はリード対象データ))を一時的に格納するためのメモリである。
ローカルメモリ1200は、情報及びプログラムを記憶する。具体的には、例えば、ローカルメモリ1200は、Sメタ管理情報1210、Sメタ属性情報1220、Cメタ管理情報1230、ストレージ管理テーブル1250及びコピーペア管理テーブル1260を記憶する。また、例えば、ローカルメモリ1200は、I/Oプログラム61、オブジェクトプログラム62、データ処理プログラム63、スナップショットプログラム64、抽出プログラム1290及びCスナッププログラム1291を記憶する。
Sメタ82毎に、Sメタ管理情報1210及びSメタ属性情報1220が存在する。Sメタ管理情報1210は、オブジェクトを管理するため情報である。Sメタ属性情報1220は、データチャンク81を管理するための情報である。
Cメタ83毎に、Cメタ管理情報1230が存在する。Cメタ83は、データチャンク81から特定された1以上のコンテンツ属性を表すコンテンツ情報を含む。Cメタ管理情報1230は、Cメタ83の少なくとも一部である。
ストレージ管理テーブル1250は、ストレージ装置300によって提供されるVOL26に関する情報を保持するテーブルである。コピーペア管理テーブル1260は、SSVOL26Sが属するコピー構成に関する情報を保持するテーブルである。
I/Oプログラム61は、I/O要求を処理するためのプログラムである。オブジェクトプログラム62は、オブジェクトを処理するためのプログラムである。データ処理プログラム63は、VOL26にアクセスするプログラムである。スナップショットプログラム64は、SSVOL26Sを作成するプログラムである。
抽出プログラム1290は、データチャンク81を抽出し抽出したデータチャンク81を基にCメタ83を作成するプログラムである。Cスナッププログラム1291は、Cスナップ処理を実行するプログラムである。抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが、ユーザにより作成されたプログラムであるユーザプログラムでよい。つまり、抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが、ユーザ毎に存在し、ホスト計算機200のユーザに対応した抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが実行されてよい。抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つがユーザプログラムであることにより、ユーザ(例えば分析者)により望ましい分析結果が得られるようなCメタ83及びSSVOL26S(VDM)のうちの少なくとも1つが期待できる。
図4は、スナップショット処理の一例を示す。
スナップショット処理は、SSVOL26Sに対するライト時の処理である。ストレージコントローラ329は、1以上のプールVOL26P(プールVOL#1〜#4)で構成されたプール91を管理している。
ストレージコントローラ329は、SSVOL26Sを指定したライト要求をホスト計算機200から受信する。そのライト要求は、例えば、SSVOL26に属するSメタ(Sメタ複製)の参照先のデータチャンクを含んだオブジェクトのオブジェクトIDを指定したライト要求である。ストレージコントローラ329は、そのライト要求に従うデータチャンク81(例えば#1)を、SSVOL26(Sメタ)の参照先ではなく、プール91に格納する。すなわち、ライト対象データチャンク81が、SSVOL26(Sメタ)の参照先のVOLとは異なるVOLの一例であるプールVOL26Pに格納される。ストレージコントローラ329は、データチャンクの仮想アドレス(SSVOL26Sの領域のアドレス)と、データチャンク81の実アドレス(プールVOL26Pの領域のアドレス)との対応付けを管理する。このように、スナップショット処理として、Ridirect−on−write方式の処理が採用されてよい。すなわち、SSVOL26S(又はデータVOL26D)内のデータチャンクに対して書き込みが発生すると、その書き込みは新たな領域に対して行われ、第1Sメタ82S及び第2Sメタ82Tが指し示す領域(アドレス)が書き換わる。このように、Ridirect−on−write方式のスナップショット処理が採用されてよいが、Copy−on−write方式など他の方式のスナップショット処理が採用されてもよい。
図5は、ストレージ管理テーブル1250の構成を示す。
ストレージ管理テーブル1250は、ストレージID1252を含む。ストレージID1252毎に、1以上のルートID1251を含む。
ストレージID1252は、ストレージ装置300の識別子(ストレージID)を表す情報である。
ルートID1251は、ルートの識別子(ルートID)を表す情報である。ストレージ装置300が有するルートのルートID1251が、そのストレージ装置300のストレージID1252に関連付けられている。本実施例において、「ルート」とは、1以上のSメタ82のグループである。ルート毎にVOL26が存在する。このため、例えば、ルートIDは、VOLの識別子(VOL_ID)と言うこともできる。ルートに属するSメタ82のSメタポインタ1254が、そのルートのルートID1251に関連付けられている。Sメタポインタ1254は、Sメタ82のローカルメモリ1200における在り処を指す情報(ポインタ)である。
図6は、1つのSメタ82に含まれるSメタ管理情報1210及びSメタ属性情報1220の構成を示す。
Sメタ82は、Sメタ管理情報1210及びSメタ属性情報1220で構成される。上述したように、Sメタ管理情報1210は、オブジェクトを管理し、Sメタ属性情報1220は、データチャンク81を管理する。Sメタ管理情報1210には、そのSメタ管理情報1210に対応したオブジェクト内の各データチャンク81についてSメタ属性情報1220が関連付けられる。
Sメタ管理情報1210は、SメタID121001を含む。SメタID121001は、Sメタの識別子(SメタID)を表す情報である。SメタIDは、言い換えれば、オブジェクトIDである。
また、Sメタ管理情報1210は、対応したオブジェクト内のデータチャンク81毎に、Sメタ属性ID121002及びS属性ポインタ12103を含む。Sメタ属性ID121002は、Sメタ属性情報1220の識別子(Sメタ属性ID)を表す情報である。S属性ポインタ121003は、Sメタ属性情報1220のローカルメモリ1200の在り処を指す情報(ポインタ)である。これにより、Sメタ82の参照先としてのCメタ83を特定可能である。
また、Sメタ管理情報1210は、このSメタ管理情報1210を含むSメタ82を参照するCメタ83毎に、ユーザID12011及びユーザポインタ121012を含む。ユーザID121011は、Cメタ83の識別子(CメタID)を表す情報であり、具体的には、例えば、ユーザプログラム(例えば抽出プログラム1290)により当該Sメタ管理情報1210に付与された付加情報(つまりCメタ83)を管理する際に使用する情報であり付加情報の識別子である。ユーザポインタ121012は、そのCメタ83が含むCメタ管理情報1230のローカルメモリ1200の在り処を指す情報(ポインタ)である。
Sメタ属性情報1220は、Sメタ属性ID122001、アクセス状態122002、コピー状態122003、ストレージID122004、開始アドレス122005、終了アドレス122006及びデータ有効性122007を含む。
Sメタ属性ID122001は、Sメタ属性IDを表す情報である。Sメタ属性IDは、データチャンクの識別子(データチャンクID)でよい。I/O要求では、オブジェクトIDとデータチャンクIDのうちのいずれかが指定されてよい。
アクセス状態122002は、データチャンク81へのアクセス方法及びアクセス制限を表す情報である。アクセス方法としては、例えば、オブジェクト単位のアクセスであるオブジェクトアクセス(“Object”)、ブロック単位のアクセスであるブロックアクセス、及び、ファイル単位のアクセスであるファイルアクセスがある。アクセス制限としては、例えば、“R/W可”、“RO”及び“R/W不可”がある。アクセス状態122002は、更に、どのユーザがアクセス可能であるかといった情報を含んでもよい。
コピー状態122003は、データチャンクについてのコピー状態を表す情報である。例えば、コピー状態122003としては、“SVOL”(SSVOL26Sから参照されたデータチャンクである)、“NULL”(データチャンク81がコピー対象ではない)等がある。
ストレージID122004は、データチャンク81が格納されるストレージ装置の識別子(ストレージID)を表す情報である。後述する別実施例のように、Sメタ82が参照するデータチャンク81が、そのSメタ82が存在するストレージ装置300とは別のストレージ装置300に配置される場合がある。プロセッサ1310は、ストレージID122004を参照することで、対応するデータチャンク81を格納したストレージ装置300を特定できる。
開始アドレス122005は、データチャンク81が存在する領域の開始アドレスを表す情報である。終了アドレス122006は、データチャンク81が存在する領域の終了アドレスを表す情報である。データ有効性122007は、データチャンク81自身が有効か否かを表す情報(例えばフラグ)である。“YES”は有効を意味し、“NO”は無効を意味する。例えば、データVOL26D内のデータチャンク#A及び#Bを参照するSメタ#Xがあり、Sメタ#X´(Sメタ#Xの複製)がデータチャンク#A及び#Bのうちのデータチャンク#Aのみを参照する場合、Sメタ#X´において、データチャンク#Aに対応したデータ有効性12007は“YES”であるが、データチャンク#Bに対応したデータ有効性12007は“NO”とされる。
図7は、1つのCメタ83に含まれるCメタ管理情報1230の構成を示す。
Cメタ管理情報1230は、Cメタ83の少なくとも一部である。Cメタ管理情報1230は、CメタID123001、種別123002、開始アドレス123003、終了アドレス123004、Sメタ属性ID123005及びユーザ拡張123006を含む。
CメタID123001は、Cメタ83の識別子(CメタID)を表す情報である。CメタID123001から、Cメタ83の参照先のSメタ82(同一のCメタIDをユーザID121011として含んだSメタ82)がわかる。
種別123002は、Cメタ83の種別を表す情報である。種別123002は、例えば、Cスナッププログラム1291がメタデータ種別を観点に検索する場合に参照される。
開始アドレス123003は、Cメタ管理情報1230に関連付いた情報(例えばコンテンツ情報の一部(Cメタ83の一部))が格納された領域(例えばVOL26の領域)の開始アドレスを表す情報である。終了アドレス123004は、Cメタ管理情報1230に関連付いた情報が格納された領域の終了アドレスを表す情報である。Cメタ83の全部がローカルメモリ1200に存在する場合、開始アドレス123003及び終了アドレス123004の各々は、“NULL”となる。
Sメタ属性ID123005は、Cメタ83に対応するデータチャンクを指すSメタ属性情報1220のSメタ属性IDを表す情報である。Sメタ属性ID123005から、Cメタ83に対応したデータチャンク81を指すSメタ属性情報1220を特定可能である。
ユーザ拡張123006は、ユーザプログラムにより付加された拡張情報であり、コンテンツ情報の少なくとも一部である。例えば、抽出されたデータチャンク81が、撮影画像の場合、その画像の撮影位置の情報が、ユーザ拡張123006としてCメタ管理情報1230に含められる。
図8は、コピーペア管理テーブル1260の構成を示す。
コピーペア管理テーブル1260は、コピーペアの構成に関する情報を保持するテーブルである。コピーペア管理テーブル1260は、ルートID12601、コピー状態12602、コピー対象ストレージID12603、コピー対象ルートID12604及びグループID12605を保持する。
ルートID12601は、ルートの識別子(ルートID)を表す情報である。コピー状態12602は、ルートID12601から識別されるルート(例えばVOL)についてのコピーの現在の状態を表す情報である。コピー対象ルートID12604は、ルートID12601が表すルートとペアを構成するルートであるコピー対象ルートの識別子を表す情報である。コピー対象ルートは、コピー元及びコピー先のいずれでもよい。ルートID12601及びコピー対象ルートID12604のうちの少なくとも1つは、当該情報に対応するルートがコピー元及びコピー先のいずれであるかを表す情報(例えば記号)を含んでもよい。グループID12605は、当該コピーペアを含んだコピーグループの識別子(グループID)を表す情報である。
以下、実施例1で行われる幾つかの処理を説明する。
図10は、データリード処理のフローチャートである。
ストレージ装置300がホスト計算機200からI/O要求を受信した場合、I/Oプログラム61は、そのI/O要求がリード要求か否かを判断する(S5010)。S5010の判断結果が偽の場合(S5010:No)、図11のS5510に進む。
S5010の判断結果が真の場合(S5010:Yes)、I/Oプログラム61は、リード要求を共通のリード要求に変換し、変換後のリード要求をオブジェクトプログラム62に処理を渡す(S5020)。リード要求のようなI/O要求を共通のI/O要求に変換する理由は、I/O要求のプロトコルとして多様なプロトコル(アクセス方法)を利用できるようにするためである。例えば、ブロック、ファイル、オブジェクトといったプロトコルがあり、いずれのプロトコルであっても共通のI/O要求に変換することで、変換以降の処理を共通に実施することができる。例えば、オブジェクトアクセスプロトコルとは、オブジェクトを基本単位としたデータアクセスを行う入出力プロトコルで、操作形式はREST(Representational State Transfer)プロトコル等のWebインターフェースを使って操作することができる。具体的には、例えば、以下のような形式
PUT <オブジェクトID> <書込み|読み出し|コピー制御> [<オプション>]
で操作することができ、S5020により、I/O要求を以下の共通形式の共通要求
WRITE|READ|COPY <オブジェクトID> [<オプション>]
に変換することができる。
次に、S5050が行われる。すなわち、オブジェクトプログラム62は、共通リード要求に従うリード元アドレスをVOLのアドレスに変換する。その変換では、Sメタ管理情報1210及びSメタ属性情報1220が使用される。具体的には、オブジェクトプログラム62は、共通要求中のオブジェクトIDに一致するSメタID121001を含んだSメタ管理情報1210を参照し、そのSメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を参照する。次に、オブジェクトプログラム62は、そのSメタ属性情報1220に含まれる開始アドレス122005及び終了アドレス122006を取得する。オブジェクトプログラム62は、上記共通要求中のオブジェクトIDを、取得されたアドレス122005及び122006が表す開始アドレス及び終了アドレスに変換し、変換後の共通要求を、データ処理プログラム63に渡す。
データ処理プログラム63は、共通要求から特定されるデータがキャッシュメモリ1100に存在するか否かを判断する(S5090)。S5090の判断結果が偽の場合(S5090:No)、データ処理プログラム63は、当該データをキャッシュメモリ1100に書き込み、処理をオブジェクトプログラム62に渡す(S5100)。
5090の判断結果が真の場合(S5090:Yes)、又は、S5100の後、オブジェクトプログラム62は、キャッシュメモリ1100から当該データを読み出す(S5060)。I/Oプログラム61が、当該データを、リード要求の送信元のホスト計算機200に返す(S5030)。
以上のように、ストレージ装置300におけるデータアクセス処理は、3つのプログラム61〜63が並列に動作し、必要に応じ連携することで、リード要求に従うデータをVOL26から読み出してホスト計算機200に返すことができる。リード元のVOLは、データVOL26DでもよいしSSVOL26Sでもよい。データリード処理において、リード対象のデータチャンク81に対応したアクセス状態122002を基に、読み出しが許可されているか否かの判断が行われてよい。
図11は、データライト処理のフローチャートである。
I/Oプログラム61は、I/O要求がライト要求か否かを判断する(S5510)。S5510の判断結果が偽の場合(S5510:No)、その要求に従う処理が行われる。
S5510の判断結果が真の場合(S5510:Yes)、I/Oプログラム61は、ライト要求をストレージ装置300の共通要求に変換する(S5520)。
次に、オブジェクトプログラム62が、その共通要求に従うライト対象のデータ(オブジェクト)のコピー状態122003が“SVOL”か否かを判断する(S5540)。具体的には、オブジェクトプログラム62は、共通要求中のオブジェクトIDと同一のSメタID121001のSメタ管理情報1210を特定し、さらに、そのSメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を特定し、その特定されたSメタ属性情報1220のコピー状態122003を参照する。
コピー状態122003が“SVOL”の場合(S5540:Yes)、スナップショットプログラム64が、ライト先VOLを別VOL(プールVOL)に変更する(S5550)。具体的には、スナップショットプログラム64が、共通要求中のオブジェクトIDに一致するSメタID121001を含んだSメタ管理情報1210を参照し、当該Sメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を参照する。次に、スナップショットプログラム64は、そのSメタ属性情報1220の開始アドレス122005及び終了アドレス122006を取得し、これらのアドレス122005及び122006が表すVOL_IDをプールVOLのIDに変更する。これにより、SSVOL26Sにより参照されるデータチャンク81がSSVOL26Sに対するライトによって更新されることを回避できる。
コピー状態122003が“SVOL”ではない場合(S5540:No)、S5560が行われる。すなわち、オブジェクトプログラム62は、共通要求中のオブジェクトIDからVOLのアドレスに変換する。具体的には、オブジェクトプログラム62は、そのオブジェクトIDと一致するSメタID121001を含んだSメタ管理情報1210を参照し、当該Sメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を参照する。次に、オブジェクトプログラム62は、そのSメタ属性情報1220の開始アドレス122005及び終了アドレス122006を取得し、共通要求中のオブジェクトIDを、当該取得したアドレス122005及び122006に置き換える。
S5550又はS5560の後、オブジェクトプログラム62は、キャッシュメモリ1110から領域を確保する(S5570)。そして、オブジェクトプログラム62は、確保された領域に、共通要求に従うデータを書き込む(S5530)。S5530が完了したときに、I/Oプログラム61が、ライト要求の送信元のホスト計算機200に、ライト完了を返してもよい。キャッシュメモリ1110に書かれたデータは、データ処理プログラム63により、そのデータのライト先のアドレスが示す領域に対応したPDEV1500に書き込まれる。
以上のように、ストレージ装置300におけるデータアクセス処理は、3つのプログラム61〜63が並列に動作し、必要に応じ連携することで、ライト対象のデータをキャッシュメモリ1100に書き出し、ホスト計算機200に完了を通知することができる。データライト処理において、ライト対象のデータチャンク81に対応したアクセス状態122002を基に、書き込みが許可されているか否かの判断が行われてよい。
ここからは、図2及び図12〜図14を参照して、Cスナップ処理を含んだ一連の処理を説明する。
図2によれば、Cスナップ処理の前に「(0)通常状態」及び「(1)抽出処理」があり、Cスナップ処理として、「(2−1)Cスナップ(選別)」及び「(2−2)Cスナップ(スナップ取得)」があり、Cスナップ処理の後に「(3)分析」がある。
<(0) 通常状態>
データチャンク81がストレージ装置300に格納され、データチャンク81を含んだオブジェクトに対して第1Sメタ82Sが関連付けられる。データチャンク81は、例えば、監視カメラから生成された画像データであってもよいし、工場の製造機器が出力するログ情報であってもよい。
図2によれば、データチャンク#1及び#2が格納され、且つ、それらをそれぞれ参照する第1Sメタ#1及び#2がある。
<(1)抽出処理>
少なくとも1つのデータチャンク81がストレージ装置300のデータVOL26Dに格納された時点、一定の時間間隔、又は、プロセッサ1310の処理負荷が一定時間以上低い状態が続いた時点等で、抽出プログラム1290Rがプロセッサ1310上で動作する。
図12は、抽出処理のフローチャートである。
抽出処理は、抽出プログラム1290とオブジェクトプログラム62により実施される。抽出処理は、ユーザにより指定されたルートIDが対象とされてよい。ルートID(例えばVOL_ID)は、予め指定されていてもよい。抽出プログラム1290は、ストレージ装置300に格納されるデータ(オブジェクト)から分析観点となり得るコンテンツ情報を取得し、当該コンテンツ情報を含んだCメタ83をデータのSメタ82に関連付けてストレージ装置300に保存するプログラムである。本実施例では、抽出プログラム1290は、ストレージ装置300内で動作するが、ホスト計算機200及び管理計算機100のうちのいずれで動作しても構わない。
抽出プログラム1290は、指定されたルート(VOL)にデータチャンク81が格納された時刻と、直前回の抽出処理の時刻とを比較することで、直前回の抽出処理の時刻よりも格納時刻が新しいデータチャンク(以下、更新データチャンク)81があるか否かを判断する(S5610)。S5610の判断結果が偽の場合(S5610:No)、処理が終了する。なお、「直前回の抽出処理の時刻」は、直前回の抽出処理のときに抽出プログラム1290によりローカルメモリ1200に保存された時刻である。
S5610の判断結果が真の場合(S5610:Yes)、抽出プログラム1290は、更新データチャンク81を抽出し、抽出された更新データチャンク81が、定められた抽出ルールに適合したデータチャンクであるか否かを判断する(S5620)。例えば、抽出ルールには、抽出されるべきデータチャンクのデータ条件(抽出のための検索条件)が指定されている。データ条件は、例えば、データ種別(例えば、写真、Eメール)でよい。抽出プログラム1290がユーザ毎に用意されることに代えて又は加えて、抽出ルールが、ユーザ毎に用意されていてもよい。
S5620の判断結果が偽の場合(S5620:No)、S5670に進む(処理が終了してもよい)。
S5620の判断結果が真の場合(S5620:Yes)、抽出プログラム1290は、更新データチャンク81から、そのデータ形式に基づき、更新データチャンク81が表す1以上のコンテンツ属性を表すコンテンツ情報を抽出する(S5630)。更新データチャンク81からコンテンツ情報を取得するには、データ種別に応じアプローチを変える必要がある。例えば、画像から位置情報を取得する場合、画像ファイルの属性情報を参照し、当該属性情報に含まれる位置情報を読み取ることで、コンテンツ情報の少なくとも一部を取得できる。
次に、抽出プログラム1290は、抽出したコンテンツ情報を基にCメタ83を作成する(S5640)。コンテンツ情報は、ローカルメモリ1200及びVOL26のうちの少なくとも1つに格納されてよい。ローカルメモリ1200の空き容量よりもコンテンツ情報の容量の方が十分に小さければ、コンテンツ情報全体がローカルメモリ1200に格納されてよい。抽出プログラム1290は、コンテンツ情報の格納場所に基づくCメタ管理情報1230を作成する。CメタID1230は、任意の値でよい。開始アドレス123003及び終了アドレス123004は、ローカルメモリ1200にコンテンツ情報が格納された場合、“NULL”でよい。Sメタ属性ID123005は、更新データチャンクの識別子でよい。ユーザ拡張123006は、コンテンツ情報の少なくとも一部でよい。このように、コンテンツ情報の少なくとも一部が、Cメタ管理情報1230に登録され得るため、結果として、コンテンツ情報全体が、ローカルメモリ1200に格納されることがある。一方、コンテンツ情報の少なくとも一部がVOL26に格納されることもある。その場合、コンテンツ情報の格納場所のアドレスは、例えば、オブジェクトプログラム62に問い合わせることで入手可能である。また、コンテンツ情報全体がVOLに登録される場合、ユーザ拡張123006は“NULL”でよい。
次に、抽出プログラム1290は、オブジェクトプログラム62に、S5640で作成したCメタ管理情報1230を含むCメタ83の登録を依頼する(S5650)。オブジェクトプログラム62は、その依頼に応答して、そのCメタ83を、抽出された更新データチャンク81を参照するSメタ82に関連付ける(S5660)。具体的には、オブジェクトプログラム62は、抽出された更新データチャンク81を参照するSメタ82内のSメタ管理情報1210に、CメタID1230と同じ値をユーザID121011として追加し、且つ、Cメタ管理情報1230へのポインタをユーザポインタ121012として追加する。
抽出プログラム1290は、S5610と同様の判断を行う(S5670)。S5670の判断結果が真の場合(S5670:Yes)、別の更新データチャンクについて、S5620に進む。S5670の判断結果が偽の場合(S5670:No)、処理が終了する。
図2によれば、抽出処理により、データチャンク#1及び#2にそれぞれ対応したCメタ#1及び#2が作成される。Cメタ#1は第1Sメタ#1を参照し、Cメタ#2は第1Sメタ#2を参照する。なお、Cメタ#1及び#2のいずれも、コンテンツ属性として、上述したデータ種別等に代えて又は加えて、指定された検索条件(データ条件(例えば時間帯))とその検索条件をキーにした検索の検索結果(例えば検索ヒット又はミス)とを含んでよい。
<(2-1)Cスナップ(選別)>
Cスナップ(選別)は、抽出処理でSメタ82に関連付けられたCメタ83を参照して、指定されたルート(VOL)に指定された検索条件に適合するデータを選別する処理である。Cスナッププログラム1291は、本実施例では、ストレージ装置300で動作するが、管理計算機100及びホスト計算機200のいずれで動作しても構わない。
Cスナップ処理の開始が、ユーザにより指示される。その指示を、Cスナッププログラム1291が受ける。指示形式は、例えば以下の通りである。
CSNAP <検索鍵> <対象ルートID> <コピー先ルートID> <オプション>
上記指示形式の場合、<対象ルートID>で指定されたルート内のデータチャンク81が、<検索鍵>で指定された検索鍵(検索条件)に適合するデータチャンク81に絞り込まれる。絞り込んだ1以上のデータチャンク81を参照する1以上のSメタ82が、それぞれ、<コピー先ルートID>で指定されたルート以下に複製されることになる。
図13は、Cスナップ(選別)のフローチャートである。
S5710が行われる。すなわち、Cスナッププログラム1291は、ユーザからの指示で指定されたルートIDに対応したSメタポインタ1254をストレージ管理テーブル1250から特定する。次に、Cスナッププログラム1291は、特定したSメタポインタ1254からSメタ管理情報1210を参照し、さらに当該Sメタ管理情報1210のユーザID121011及びユーザポインタ121011から、当該Sメタに関連付くCメタ83を特定する。
次に、Cスナッププログラム1291は、ユーザに指定された検索鍵に、当該Cメタ83(Cメタ83が含むコンテンツ情報)が適合するか否かを判断する(S5720)。
S5720の判断結果が真の場合(S5720:Yes)、Cスナッププログラム1291は、当該Cメタ83に関連付く第1Sメタ82S(Sメタ管理情報1210及びSメタ属性情報1220)の複製をオブジェクトプログラム62に依頼する(S5730)。その依頼に応答して、オブジェクトプログラム62は、指定された第1Sメタ82Sの複製を行う(S5740)。なお、複製において、第1Sメタ82Sの複製に基づく第2Sメタ82TのSメタIDとして、オリジナルの第1Sメタ82SのSメタIDと異なるSメタIDが付与されてよい。また、複製において、Cスナッププログラム1291及びオブジェクトプログラム62のうちのいずれかが、下記の(a)及び(b)のうちのいずれかである複製絞込み処理を実行してよい。
(a)分析に必要ないデータチャンクを参照するSメタ属性情報1220(検索鍵に適合しないCメタ83の参照先のSメタ属性情報1220)の複製をスキップする。
(b)そのSメタ属性情報1220のデータ有効性122007を“NO”に変更する。
このような複製絞込み処理を実行するか否かは、ユーザからの指示(Cスナッププログラム1291に対する開始指示)に記述されていてよい。複製絞込み処理により、SSVOL26S(VDM)に含まれるデータチャンク81を絞り込むことが可能となる。
次に、Cスナッププログラム1291は、ユーザから指定されたルートIDに対応した全てのSメタ82に対してS5710を実施したか否かを判断する(S5750)。S5750の判断結果が偽の場合(S5750:No)、未処理のSメタ82についてS5710が行われる。S5750の判断結果が真の場合(S5750:Yes)、処理が終了する。少なくとも1つのSメタ82についてS5740が行われた場合、Cスナップ(スナップ取得)が実施される。
<(2-2)Cスナップ(スナップ取得)>
Cスナップ(選別)において得られたSメタ82の複製に基づき、SSVOL26Sが作成される。このSSVOL26Sがホスト計算機200に提供されることで、ホスト計算機200からはSSVOL26SをDMとして利用可能となる。
図14は、Cスナップ(スナップ取得)のフローチャートである。
Cスナッププログラム1291は、スナップショット作成をスナップショットプログラム64に依頼する(S5770)。ここで、スナップショット作成にあたり、Cスナッププログラム1291は、Cスナップ(選別)で作成された第2Sメタ82TにおけるSメタIDをスナップショットプログラム64に渡す。
その依頼に応答して、スナップショットプログラム64は、Cスナッププログラム1291から渡されたSメタIDに合致するSメタ管理情報1210を特定し、当該Sメタ管理情報1210に関連付いたSメタ属性情報1220のコピー状態122003を“SVOL”にする(S5680)。コピー状態122003が“SVOL”にされることで、当該オブジェクトへのライトの際にスナップショット対象データと判定され、必要なスナップショット処理(図4参照)が実施される。
次に、スナップショットプログラム64は、ストレージ管理テーブル1250に、ユーザに指定されたコピー先ルートID(SSVOL26SのID)をルートID1251として追加し、且つ、そのルートID1251に、Sメタ82の複製へのポインタ1254を関連付ける(S5690)。スナップショットプログラム64は、そのコピー先ルートID(SSVOL26S)を、Cスナップの開始指示を出したユーザ(検索要求元のユーザ)のホスト計算機200に提供してよい。
以上のように、ストレージ装置300におけるCスナップ処理では、Cスナップ(選別)において、ユーザから与えられた検索鍵に基づきスナップショット対象のデータチャンク(VDMに含められるデータチャンク)が選別され、Cスナップ(スナップ取得)において、選別されたデータチャンクを含んだSSVOL26S(VDM)が作成される。
また、原理的に、1つのルートID(データVOL26D)について複数のコピー先ルートID(SSVOL26S)を作成することが可能である。具体的には、例えば、図15に例示するように、1つのデータVOL26Dについて、複数のSSVOL#1−1〜#1−3を作成できる。
また、Cスナップ処理後に、ホスト計算機200から、Cスナップ作成時に指定したコピー先ルートIDにアクセスすると、そのホスト計算機200からは、DM(SSVOL26S)が存在しているように見えるようになる。複数のSSVOL26Sが作成された場合は、例えば、観点の異なるDM(データマート)が作成されたように見える。
実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。これは、他の実施例についても同様である。
図16は、実施例2の概要を示す。
実施例2に係るストレージシステムは、複数のストレージ装置300X、300A〜300Cから構成される。例えば、ストレージ装置300X、300A〜300Cにより1つの仮想ストレージシステムが構成されている。つまり、本実施例に係るストレージシステムは、仮想ストレージシステムでよい。ストレージ装置300の数は図16に示す例に限られない。
ストレージ装置300Xが、データソースとしてのデータVOL26Dを有する。ストレージ装置300A〜300Cに、それぞれ、データVOL26D内の少なくとも1つのデータチャンクを参照するSSVOL26S(#1−1〜#1−3)が生成される。つまり、Cスナップ処理が、複数のストレージ装置300に跨がって実施される。具体的には、例えば、ストレージ装置300Aが、データVOL26Dのルートが指定された検索要求を受けた場合、その検索要求で指定されている検索鍵に適合するCメタ83をストレージ装置300Xから探し、見つかったCメタ83に紐付いた第1Sメタ#1をストレージ装置300Aに複製する。ストレージ装置300Aは、第1Sメタ#1の複製に基づく第2Sメタ#1−1が属するルートに対応したSSVOL#1−1を、ホスト計算機200Aに提供する。
ストレージ装置300間でCスナップ処理を行うためには、スケールアウト処理が必要となる。図17が、スケールアウト処理の概要を示す。図17には、ストレージ装置300X及び300Aが例示されている。ストレージ装置300X及び300Aには、それぞれ、スケールアウトプログラム74X及び74Aが追加されている。例えば、スケールアウトプログラム74X(74A)は、I/Oプログラム61X(61A)とオブジェクトプログラム62X(62A)間の連携を中継してよい。ストレージ装置300X及び300Aには、キャッシュメモリ1100X及び100Aがそれぞれ存在する。
ここで、ストレージ装置300Aがホスト計算機200Aからリード要求を受けると、ストレージ装置300Aのスケールアウトプログラム74Aが、当該リード要求の宛先が自ストレージ装置300Aか否かを判断する。その判断結果が偽の場合、スケールアウトプログラム74Aが、リード要求の宛先となるストレージ装置300Xに当該リード要求を転送する。転送されたリード要求を受けたストレージ装置300Xは、当該リード要求に基づきデータチャンク81をキャッシュメモリ1100Xに読み出す。
例えば、図10のフローチャートは、S5020後の処理が実施例1と異なる。具体的には、例えば、スケールアウトプログラム74Aが共通要求を取得し、当該共通要求のアクセス先が自ストレージ装置300Aか否かを判断する。その判断結果が偽の場合、スケールアウトプログラム74Aが、当該共通要求のアクセス先となるストレージ装置300Xのスケールアウトプログラム74Xに当該共通要求を転送する。スケールアウトプログラム74Xは、当該共通要求をオブジェクトプログラム62Xに渡す。一方、当該共通要求のアクセス先が自ストレージ装置300Aである場合、スケールアウトプログラム74Aは、自ストレージ装置300Aのオブジェクトプログラム62Aに当該共通要求を渡す。
また、例えば、図11のフローチャートは、S5520後の処理が異なる。具体的には、例えば、スケールアウトプログラム74Aが共通要求を取得し、当該共通要求のアクセス先が自ストレージ装置300Aか否かを判断する。その判断結果が偽の場合、スケールアウトプログラム74Aが、当該共通要求のアクセス先となるストレージ装置300Xのスケールアウトプログラム74Xに当該共通要求を転送する。スケールアウトプログラム74Xが当該共通要求をオブジェクトプログラム62Xに渡す。一方、当該共通要求のアクセス先が自ストレージ装置300Aである場合、スケールアウトプログラム74Aは、自ストレージ装置300Aのオブジェクトプログラム62Aに当該共通要求を渡す。
以上、実施例2によれば、複数のストレージ装置300を跨いでCスナップ処理が実施される。これにより、例えば、ストレージ装置300XはデータVOL26D(データチャンク)の格納のみ、ストレージ装置300AはSSVOL26S(スナップショットデータ)のみを格納し、用途を分けることが可能となる。ストレージ装置300BのDM(SSVOL#1−2)を使用した分析による性能の影響を別ストレージ装置300Cに与えないようにすることが可能となる。
図18は、実施例3の概要を示す。
実施例3に係るストレージシステムは、複数の拠点A及びBにそれぞれ存在するストレージ装置300A及び300Bと、中央データセンタに存在するストレージ装置300Xとで構成されている。拠点の数及びストレージ装置300の数は図18に示す例に限られない。本実施例では、ストレージ装置300A及び300Bの各々が抽出処理を実行し、ストレージ装置300XがCスナップ処理を実行する。
拠点A及びBには、それぞれ、1以上のIoTデバイス86A及び82Bが存在する(IoT:Internet of Things)。ここで、「IoTデバイス」とは、当該デバイスが具備するセンサやデバイス自身の状態や制御をネットワーク経由でやりとりできるデバイスを意味する。
中央データセンタのストレージ装置300Xには、ホスト計算機200X及びYがアクセス可能である。
本実施例では、例えば拠点Aにおいて、IoTデバイス86Aのセンサ情報やデバイスの状態情報等を、ストレージ装置300Aがネットワーク経由で受信する。情報を受信したストレージ装置300Aが、その情報を含んだ1以上のデータチャンクを、図示しないデータVOL(第1の非構造化データソースの一例)に格納する。ストレージ装置300Aが、1以上のデータチャンクから1以上のCメタを作成する処理を含んだ抽出処理を実行する。抽出処理では、ストレージ装置300Aは、分析時に必要とならないデータ(例えば、取得に失敗した情報、十分に無視できる程との小さい値を含んだセンサ情報、安定的なデバイスの状態など)は削除し、後述のリモートコピーの対象から外しても良い。
抽出処理後、ストレージ装置300Aは、1以上のデータチャンクとそれに対応した1以上のCメタとを中央データセンタのストレージ装置300Xに転送する(リモートコピー)。
データチャンク及びCメタを受信したストレージ装置300Xは、データチャンクをデータVOL26D(第2の非構造化データソースの一例)に格納し、Cメタをローカルメモリに格納する。ストレージ装置300Xは、データVOL26Dを指定した検索要求をホスト計算機200X及び200Yから受けた場合、Cスナップ処理を実行する。すなわち、ストレージ装置300Xは、検索鍵に適合したCメタが紐付いている第1Sメタ#1を複製することで第2Sメタ#1−1及び#1−2を生成し、第2Sメタ#1−1及び#1−2がそれぞれ属するSSVOL#1−1及び#1−2をホスト計算機200X及び200Yにそれぞれ提供する。
以上、実施例3によれば、例えば拠点Aにおいて、IoTデバイス86Aのセンサなどの情報をストレージ装置300Aが受信し、ストレージ装置300Aが、コンテンツ情報を抽出することでCメタを作成し、データチャンクと共にCメタを中央データセンタのストレージ装置300Xに転送する。これにより、中央データセンタにあるストレージ装置300Xでは抽出処理を回避することが可能となる。つまり、ストレージ装置300Xでは、IoTデバイス86から発生する情報を含んだ大量のデータチャンクを対象とした抽出処理の負荷を削減できる。また、拠点のストレージ装置300Aが分析の対象になり得ないデータを間引いてデータチャンク及びCメタを中央データセンタのストレージ装置300Xに転送する。これにより、ストレージ装置300XのCスナップ処理の負荷と、ストレージ装置300Xが格納するデータの総量とを削減できる。
図9は、実施例4の概要を示す。
SCM(Storage Class Memory)943が採用される。ホスト計算機200及びストレージ装置300の各々は、ホスト計算機200のメモリ領域とストレージ装置300のメモリ領域とが割り当てられたSCM943を、自身のメモリであるかのように使用可能である。このため、例えば、ホスト計算機200でCスナッププログラム1291が実行され、Cスナッププログラム1291は、SCM943にあるCメタから、検索鍵に適合するCメタを探すことができる。
以上、幾つかの実施例を説明したが、本発明は、それらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、実施例1〜4のうちの任意の2以上の実施例を組み合わせることが可能である。
また、実施例1〜4では、データ処理システムの一例がストレージシステムであるが、データ処理システムは、ストレージシステム、ホストシステム及び管理システムのうちの少なくとも1つに該当してもよい。例えば、ホストシステムがデータ処理システムに該当する場合、ホストシステムに対して検索鍵を指定した検索要求を送信する要求元はクライアントシステム(1以上のクライアント計算機)であってもよい。
また、実施例1〜4では、Sメタ82だけでなくCメタ83もストレージシステムに存在するが、Cメタ83は、ストレージシステムに代えて又は加えてホストシステム又は管理システムに存在してもよい。具体的には、例えば、同一オブジェクト(同一データチャンク81)について、ユーザ毎に(例えばホストシステム毎に又は管理システム毎に)、Cメタ83が作成され、Cメタ83は、そのCメタ83に対応したユーザのホストシステム又は管理システムに提供されてよい。ホストシステム又は管理システムがユーザから検索条件の指定を受けた場合、ホストシステム又は管理システム内のプロセッサ部が、そのユーザに対応するCメタ83のうちその検索条件に適合するCメタ83をホストシステム又は管理システムから探してよい。ホストシステム又は管理システムは、Cメタ83が見つかった場合、そのCメタ83が参照するSメタ82が属するSSVOLの作成をストレージシステムに要求してもよい。その要求に応答して、ストレージシステムが、Cスナップ処理を実行してもよい。
また、Cメタ83は、ユーザ毎に存在してもよい。例えば、同一のデータチャンク81について、ユーザAの抽出プログラム1290により作成されたCメタ83は、ユーザA用のCメタ83として保存され、ユーザBの抽出プログラム1290により作成されたCメタ83は、ユーザB用のCメタ83として保存されてよい。ユーザAから検索要求を受けた場合、ストレージコントローラ329(Cスナッププログラム1291)は、検索要求で指定された検索鍵と要求元のユーザAとに適合するCメタ83を探してよい。また、Cスナッププログラム1291として、ユーザAのCスナッププログラム1291が存在する場合、ユーザAのCスナッププログラム1291が、ユーザAからの検索要求で指定された検索鍵とユーザAとに適合するCメタ83を探してよい。
また、Cスナップ処理は、Cスナップ処理を開始すると定義付けられた所定のイベントであるCスナップイベントが検出されたときに開始されてよい。Cスナップイベントは、ユーザ要求(例えば、Cスナップ処理の明示的な要求、又は、Cスナップ処理の実行が定義づけられた要求)を受信したこと、予め定義された時刻になったこと(例えば定期的にCスナップ処理の実行が開始される)、及び、Cスナッププログラム1291を実行するプロセッサの負荷が所定値未満になった等の所定の性能状況(性能に関する状況)のいずれであってもよい。例えば、ストレージコントローラ329が、管理計算機100及びホスト計算機200のうちの少なくとも1つからユーザ要求を受信し、そのユーザ要求に応答してCスナップ処理を実行してよい。
また、ユーザプログラム(例えば、抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つ)は、管理計算機100、ホスト計算機200、及びストレージコントローラ329のうちのいずれで実行されてもよい。
また、SSVOL26S(VDM)は、定期的に又は不定期的に更新されてよい。例えば、Cスナッププログラム1291が、既存のSSVOL26Sに属する第2Sメタ82Tに関連付いたCメタ83が表すコンテンツ属性と同じコンテンツ属性を表すCメタ83を特定し、そのCメタ83が参照する第1Sメタ82Sを複製することにより新たに第2Sメタ82Tを作成し、その新たな第2Sメタ82Tを既存のSSVOL26Sに新たに関連付けてもよい。
また、オブジェクトの一例として、ファイルが採用されてよい。ファイルのデータが、オブジェクト内のデータチャンクの一例でよく、ファイルのメタデータが、オブジェクトのSメタの一例でよい。
また、データVOLは、データ領域の一例でよく、SSVOLは、データ領域内の一部の非構造データを参照するスナップショットの一例でよい。
また、抽出処理では、非構造化データソースからのデータ抽出に代えて又は加えて、第1Sメタ82Sを参照して検索条件に適合するか否かが判断されてもよい。その判断結果が真の場合、第1Sメタ82Sに基づき上述のCメタ83が作成され、そのCメタ83が、検索条件に適合した第1Sメタ82Sに関連付けられてもよい。また、この場合、検索条件に適合した第1Sメタ82Sから参照される1以上のデータチャンク81が、該当する非構造化データの一例でよい。
300:ストレージ装置

Claims (12)

  1. 第1種メタデータが関連付けられている非構造化データを含んだ非構造化データソースへのアクセスのためのインターフェースを含んだ1以上のインターフェースであるインターフェース部と、
    前記インターフェース部に接続された1以上のプロセッサであり抽出処理を実行するプロセッサ部と
    を有し、
    前記抽出処理は、前記非構造化データソース内の該当する非構造化データ毎に、
    その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成することと、
    前記作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付けることと
    を含
    1又は複数の第2種メタデータが、ユーザから指定された検索条件を含む検索要求に応答した検索の対象であり、
    前記プロセッサ部は、前記検索条件に適合した1以上の第2種メタデータがそれぞれ関連付けられている1以上の第1種メタデータを特定し、
    前記特定した1以上の第1種メタデータの各々は、非構造化データのオリジナルのメタデータである第1の第1種メタデータであり、
    前記プロセッサ部は、
    前記特定した1以上の第1種メタデータである1以上の第1の第1種メタデータの各々について、その第1の第1種メタデータの複製に基づくメタデータである第2の第1種メタデータを作成し、
    作成された1以上の第2の第1種メタデータが属し前記ユーザに対して提供される仮想ボリュームを生成し、
    前記非構造化データソースに格納された1又は複数の非構造化データは、1以上のオブジェクトに含まれており、
    オブジェクト毎に第1種メタデータが存在し、
    前記第2の第1種メタデータは、その第2の第1種メタデータに対応した第1の第1種メタデータが参照する1以上の非構造化データのうち、前記検索条件に適合した第2種メタデータが関連付いた非構造化データのみ参照する、
    データ処理システム。
  2. 前記プロセッサ部は、前記検索要求に応答して前記仮想ボリュームを生成する、
    請求項記載のデータ処理システム。
  3. 前記仮想ボリュームに対するライト対象の非構造化データが、前記仮想ボリュームに属する第2の第1種メタデータが参照する非構造化データを含んだ非構造化データソースと異なる領域に格納される、
    請求項記載のデータ処理システム。
  4. 前記ユーザに提供される前記仮想ボリュームは、スナップショットボリュームであり、
    前記スナップショットボリュームは、前記非構造化データソースにおける1又は複数の非構造化データのうちの、前記1以上の第2の第1種メタデータにより参照される1以上の非構造化データのデータ集合である、
    請求項記載のデータ処理システム。
  5. 前記抽出処理は、前記検索要求に応答した処理とは非同期の処理である、
    請求項記載のデータ処理システム。
  6. 前記抽出処理において抽出される非構造化データと前記抽出処理において作成される第2種メタデータとのうちの少なくとも1つが、前記ユーザにより定義され前記プロセッサ部により実行されるコンピュータプログラムであるユーザプログラムと、前記ユーザにより定義され前記プロセッサ部により参照されるルールとのうちの少なくとも1つに従う、
    請求項記載のデータ処理システム。
  7. 前記プロセッサ部は、同一の第1の第1種メタデータから複数の第2の第1種メタデータを作成する、
    請求項記載のデータ処理システム。
  8. 前記非構造化データソースを提供する第1装置と別の装置である第2装置から前記仮想ボリュームが提供される、
    請求項記載のデータ処理システム。
  9. 前記インターフェース部及び前記プロセッサ部を含んだ複数のストレージ装置を有し、
    前記第1装置及び前記第2装置の各々は、前記複数のストレージ装置のうちのいずれかのストレージ装置である、
    請求項記載のデータ処理システム。
  10. 前記インターフェース部及び前記プロセッサ部を含んだ複数の装置を有し、
    前記複数の装置が、
    それぞれ第1の非構造化データソースを有する1以上の第1装置と、
    前記1以上の第1装置に接続され第2の非構造化データソースを有する第2装置と
    を含み、
    前記1以上の第1装置の各々が、
    複数のデバイスから収集された情報を含んだ1又は複数の非構造化データを、その第1装置が有する第1の非構造化データソースに格納し、
    前記抽出処理を実行し、
    前記抽出処理により得られた第2種メタデータとその第2種メタデータに対応した非構造化データとを前記第2装置に送信し、
    前記第2装置が、
    第2種メタデータとその第2種メタデータに対応した非構造化データとを前記1以上の第1装置の各々から受信し、
    受信した第2種メタデータを格納し、且つ、その第2種メタデータに対応した非構造化データを前記第2の非構造化データソースに格納する、
    請求項1記載のデータ処理システム。
  11. 第1種メタデータが関連付けられている非構造化データを含んだ非構造化データソースへのアクセスのためのインターフェースを含んだ1以上のインターフェースであるインターフェース部と、前記インターフェース部に接続された1以上のプロセッサであるプロセッサ部とを備えるデータ処理システムによるデータ処理方法であって、
    第1種メタデータが関連付けられている非構造化データを含んだ非構造化データソース内の該当する非構造化データ毎に、
    その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成し、
    前記作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付け、
    1又は複数の第2種メタデータが、ユーザから指定された検索条件を含む検索要求に応答した検索の対象であり、
    前記検索条件に適合した1以上の第2種メタデータがそれぞれ関連付けられている1以上の第1種メタデータを特定し、
    前記特定した1以上の第1種メタデータの各々は、非構造化データのオリジナルのメタデータである第1の第1種メタデータであり、
    前記特定した1以上の第1種メタデータである1以上の第1の第1種メタデータの各々について、その第1の第1種メタデータの複製に基づくメタデータである第2の第1種メタデータを作成し、
    作成された1以上の第2の第1種メタデータが属し前記ユーザに対して提供される仮想ボリュームを生成し、
    前記非構造化データソースに格納された1又は複数の非構造化データは、1以上のオブジェクトに含まれており、
    オブジェクト毎に第1種メタデータが存在し、
    前記第2の第1種メタデータは、その第2の第1種メタデータに対応した第1の第1種メタデータが参照する1以上の非構造化データのうち、前記検索条件に適合した第2種メタデータが関連付いた非構造化データのみ参照する、
    データ処理方法。
  12. 第1種メタデータが関連付けられている非構造化データを含んだ非構造化データソース内の該当する非構造化データ毎に、
    その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成し、
    前記作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付
    1又は複数の第2種メタデータが、ユーザから指定された検索条件を含む検索要求に応答した検索の対象であり、
    前記検索条件に適合した1以上の第2種メタデータがそれぞれ関連付けられている1以上の第1種メタデータを特定し、
    前記特定した1以上の第1種メタデータの各々は、非構造化データのオリジナルのメタデータである第1の第1種メタデータであり、
    前記特定した1以上の第1種メタデータである1以上の第1の第1種メタデータの各々について、その第1の第1種メタデータの複製に基づくメタデータである第2の第1種メタデータを作成し、
    作成された1以上の第2の第1種メタデータが属し前記ユーザに対して提供される仮想ボリュームを生成し、
    前記非構造化データソースに格納された1又は複数の非構造化データは、1以上のオブジェクトに含まれており、
    オブジェクト毎に第1種メタデータが存在し、
    前記第2の第1種メタデータは、その第2の第1種メタデータに対応した第1の第1種メタデータが参照する1以上の非構造化データのうち、前記検索条件に適合した第2種メタデータが関連付いた非構造化データのみ参照する、
    ことをコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
JP2018507826A 2016-03-28 2016-03-28 データ処理システム及びデータ処理方法 Active JP6585283B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/059846 WO2017168499A1 (ja) 2016-03-28 2016-03-28 データ処理システム及びデータ処理方法

Publications (2)

Publication Number Publication Date
JPWO2017168499A1 JPWO2017168499A1 (ja) 2018-08-09
JP6585283B2 true JP6585283B2 (ja) 2019-10-02

Family

ID=59963638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018507826A Active JP6585283B2 (ja) 2016-03-28 2016-03-28 データ処理システム及びデータ処理方法

Country Status (3)

Country Link
US (1) US10685046B2 (ja)
JP (1) JP6585283B2 (ja)
WO (1) WO2017168499A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021112019A1 (ja) 2019-12-02 2021-06-10

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1003103B1 (en) 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US20060129745A1 (en) * 2004-12-11 2006-06-15 Gunther Thiel Process and appliance for data processing and computer program product
US8843522B2 (en) * 2008-09-15 2014-09-23 Thomson Reuters (Markets) Llc Systems and methods for rapid delivery of tiered metadata
JP5234342B2 (ja) * 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法
US8352514B2 (en) * 2008-12-10 2013-01-08 Ck12 Foundation Association and extraction of content artifacts from a graphical representation of electronic content
JP5501280B2 (ja) 2011-03-31 2014-05-21 株式会社日立ソリューションズ 情報処理システム、バックアップ管理方法、及びプログラム
US8793451B2 (en) * 2012-03-29 2014-07-29 International Business Machines Corporation Snapshot content metadata for application consistent backups
EP2807584A2 (en) * 2012-04-25 2014-12-03 Hitachi, Ltd. File storage system and file cloning method

Also Published As

Publication number Publication date
US20180225362A1 (en) 2018-08-09
US10685046B2 (en) 2020-06-16
JPWO2017168499A1 (ja) 2018-08-09
WO2017168499A1 (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
US11520670B2 (en) Method and apparatus for restoring data from snapshots
Niazi et al. {HopsFS}: Scaling Hierarchical File System Metadata Using {NewSQL} Databases
JP7053682B2 (ja) データベーステナントマイグレーションのシステム及び方法
JP5706966B2 (ja) 情報処理システム、及び、それを用いたファイル復元方法
US10430392B2 (en) Computer file system with path lookup tables
JP4741371B2 (ja) システム、サーバ装置及びスナップショットの形式変換方法
US6973556B2 (en) Data element including metadata that includes data management information for managing the data element
US7937369B1 (en) Data mover discovery of object extent
US10809932B1 (en) Managing data relocations in storage systems
JP2020502626A (ja) データベース・システムにおけるテスト・データの形成及び動作
CN103765393A (zh) 存储系统
US9075755B1 (en) Optimizing data less writes for restore operations
US10387369B1 (en) Managing file deletions of files and versions of files in storage systems
US9047169B1 (en) Resizing snapshot mount points
US20190132415A1 (en) Active data management by flexible routing system and methods of an accelerated application-oriented middleware layer
US9063892B1 (en) Managing restore operations using data less writes
JP2008146212A (ja) 共有ディレクトリの設定情報を変更する方法、及びファイルサーバ装置
US10936243B2 (en) Storage system and data transfer control method
US9886446B1 (en) Inverted index for text searching within deduplication backup system
Sinnamohideen et al. A {Transparently-Scalable} Metadata Service for the Ursa Minor Storage System
JP6585283B2 (ja) データ処理システム及びデータ処理方法
WO2017168578A1 (ja) データ処理システム及びデータ処理方法
JP2021092915A (ja) ストレージシステム及びボリューム複製方法
US11829328B2 (en) Garbage collection from archival of storage snapshots
WO2016117007A1 (ja) データベースシステム及びデータベース管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190904

R150 Certificate of patent or registration of utility model

Ref document number: 6585283

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150