IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECソリューションイノベータ株式会社の特許一覧 ▶ 日本電気株式会社の特許一覧

<>
  • 特許-情報処理方法 図1
  • 特許-情報処理方法 図2
  • 特許-情報処理方法 図3
  • 特許-情報処理方法 図4
  • 特許-情報処理方法 図5
  • 特許-情報処理方法 図6
  • 特許-情報処理方法 図7
  • 特許-情報処理方法 図8
  • 特許-情報処理方法 図9
  • 特許-情報処理方法 図10
  • 特許-情報処理方法 図11
  • 特許-情報処理方法 図12
  • 特許-情報処理方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-18
(45)【発行日】2024-03-27
(54)【発明の名称】情報処理方法
(51)【国際特許分類】
   G06F 16/182 20190101AFI20240319BHJP
   G06F 13/10 20060101ALI20240319BHJP
   G06F 13/12 20060101ALI20240319BHJP
   G06F 3/06 20060101ALI20240319BHJP
【FI】
G06F16/182
G06F13/10 340A
G06F13/12 340B
G06F3/06 302A
【請求項の数】 8
(21)【出願番号】P 2019037817
(22)【出願日】2019-03-01
(65)【公開番号】P2020140647
(43)【公開日】2020-09-03
【審査請求日】2022-02-02
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】松尾 充洋
(72)【発明者】
【氏名】野口 善昭
【審査官】酒井 恭信
(56)【参考文献】
【文献】国際公開第2011/099099(WO,A1)
【文献】特開2001-195195(JP,A)
【文献】特開平05-216724(JP,A)
【文献】特開平09-247645(JP,A)
【文献】特開2008-234258(JP,A)
【文献】特開2010-198424(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/10 - 16/188
G06F 13/10 - 13/12
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
複数の記憶装置を有するストレージシステムに含まれ、ファイルの書き込み要求や読み出し要求を処理する機能であるファイルI/O機能を有するとともに、前記複数の記憶装置に含まれる自装置記憶装置を有する情報処理装置が、格納対象のデータを前記複数の記憶装置に分散して書き込むとともに、書き込んだデータを前記複数の記憶装置から読み出す方法であって、
読み出しを優先するか否かを示すデータの特性に応じて、格納対象のファイルを構成する分離前データを、読み出しを優先するデータと、前記読み出しを優先するデータとは異なる通常のデータと、に分離し、
分離の結果に応じて、前記通常のデータを分割したブロックデータを、前記自装置記憶装置を含む前記複数の記憶装置に分散させて書き込むとともに、前記読み出しを優先するデータを分割したブロックデータを、前記自装置記憶装置に書き込み、
ファイルの読み出し要求に応じて、前記通常のデータを分割したブロックデータを分散させて書き込んだ各記憶装置から読み出すとともに、前記読み出しを優先するデータを分割したブロックデータを前記自装置記憶装置から読み出す
方法
【請求項2】
請求項1に記載の方法であって、
前記データの特性に応じて前記ファイルを構成する前記分離前データを、前記読み出しを優先するデータと、前記通常のデータと、に分離した後、分離した前記読み出しを優先するデータと、前記通常のデータと、を異なるストリームに格納し、
前記通常のデータを格納したストリームのデータについて、前記通常のデータを分割したブロックデータを、前記自装置記憶装置を含む前記複数の記憶装置に分散させて書き込み、前記読み出しを優先するデータを格納したストリームのデータについて、前記読み出しを優先するデータを分割したブロックデータを前記自装置記憶装置に書き込む
方法
【請求項3】
請求項1または請求項2に記載の方法であって、
前記情報処理装置は、前記自装置記憶装置の空き容量に応じて格納されたブロックデータを解放する
方法
【請求項4】
請求項1から請求項3までのいずれか1項に記載の方法であって、
ファイルの読み出し要求に応じて、格納したブロックデータを読み出す要求を、優先的に実行するキューと通常の読み出しを行うキューのうちのいずれかに格納する
方法
【請求項5】
請求項4に記載の方法であって、
優先的に実行するキューに処理が格納されている場合、当該優先的に実行するキューに格納されている処理を通常の読み出しを行うキューに格納された処理よりも優先的に実行する
方法
【請求項6】
請求項4又は請求項5のいずれか1項に記載の方法であって、
読み出すブロックデータの特性に応じて、当該ブロックデータを読み出す要求を優先的に実行するキューと通常の読み出しを行うキューのうちのいずれかに格納する
方法
【請求項7】
複数の記憶装置を有するストレージシステムに含まれ、ファイルの書き込み要求や読み出し要求を処理する機能であるファイルI/O機能を有するとともに、前記複数の記憶装置に含まれる自装置記憶装置を有し、格納対象のデータを前記複数の記憶装置に分散して書き込むとともに、書き込んだデータを前記複数の記憶装置から読み出す情報処理装置であって、
読み出しを優先するか否かを示す前記データの特性に応じて、格納対象のファイルを構成する分離前データを、読み出しを優先するデータと、前記読み出しを優先するデータとは異なる通常のデータと、に分離するデータ分離部と、
分離の結果に応じて、前記通常のデータを分割したブロックデータを、前記自装置記憶装置を含む前記複数の記憶装置に分散させて書き込むとともに、前記読み出しを優先するデータを分割したブロックデータを、前記自装置記憶装置に書き込む書込部と、
ファイルの読み出し要求に応じて、前記通常のデータを分割したブロックデータを分散させて書き込んだ各記憶装置から読み出すとともに、前記読み出しを優先するデータを分割したブロックデータを前記自装置記憶装置から読み出す読出部と、
を有する
情報処理装置。
【請求項8】
複数の記憶装置を有するストレージシステムに含まれ、ファイルの書き込み要求や読み出し要求を処理する機能であるファイルI/O機能を有するとともに、前記複数の記憶装置に含まれる自装置記憶装置を有し、格納対象のデータを前記複数の記憶装置に分散して書き込むとともに、書き込んだデータを前記複数の記憶装置から読み出す情報処理装置のコンピュータを、
読み出しを優先するか否かを示す前記データの特性に応じて、格納対象のファイルを構成する分離前データを、読み出しを優先するデータと、前記読み出しを優先するデータとは異なる通常のデータと、に分離するデータ分離部と、
分離の結果に応じて、前記通常のデータを分割したブロックデータを、前記自装置記憶装置を含む前記複数の記憶装置に分散させて書き込むとともに、前記読み出しを優先するデータを分割したブロックデータを、前記自装置記憶装置に書き込む書込部と、
ファイルの読み出し要求に応じて、前記通常のデータを分割したブロックデータを分散させて書き込んだ各記憶装置から読み出すとともに、前記読み出しを優先するデータを分割したブロックデータを前記自装置記憶装置から読み出す読出部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、情報処理装置、プログラムに関する。
【背景技術】
【0002】
日々増大する保存すべきデータに対応することなどを目的として大容量なストレージシステムが必要となっている。このようなストレージシステムでは、例えば、重複記憶を排除することで記憶コストを削減することなどが行われている。
【0003】
上記のようなストレージシステムの一例として、例えば、特許文献1がある。特許文献1には、重複排除した状態でデータを格納する書込部と、書き込み対象となるデータをユーザデータ部分と管理データ部分とに分離するデータ分離部と、を有するストレージシステムが記載されている。特許文献1によると、書込部は、ユーザデータ部分を格納したファイルを生成するとともに、ファイルに格納されたユーザデータ部分に関連付けられたメタデータとして管理データ部分をファイルに含めて格納する。そして、書込部は、ファイルを書き込み対象となるデータとして記憶装置に格納する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2012-208650号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のようなストレージシステムでは、例えば図1で示すように、必要なスループットの確保などを目的に、リード位置から予め定められた量のデータブロックをバックグラウンドで取得しキャッシュしておく先行読み出し処理を行っている。この先行読み出し処理の結果、図1で示すように、リード要求を一時的に保持するリード処理キューにリード要求が滞納し、応答時間が伸びることがあった。
【0006】
例えば、図1のケース1で示すように、リード処理キューによってリード処理順が後ろになるブロックのリード処理は、リード処理順が先のブロックのリードよりも遅くなる。また、先行読み出し範囲外のリード要求は、リード処理キューの後ろに追加される。そのため、図1のケース2で示すように、先行読み出し範囲外のリード要求を行う場合、新たな先行読み出し要求によりリード処理キューが伸長し、待ち時間の増加を助長することになる。さらに、これらの待ち時間は、読み出し対象のデータブロックを他のノードが有する記憶装置から取得することで、さらに悪化・増大する。
【0007】
このように、記憶装置からデータブロックを取り出す際に時間がかかるおそれがあった。その結果、必要なデータブロックを必要なときに取り出せないおそれがある、という問題が生じていた。これにより、例えば、ストレージシステムに格納した映像ファイルを映像ソフトが直に読み出しながら映像再生すると、ストレージシステムのリードI/Oの応答時間が長すぎて映像再生が途切れる、などの事態が生じていた。
【0008】
そこで、本発明の目的は、必要なデータブロックを必要なときに取り出せないおそれがある、という課題を解決する情報処理方法、情報処理装置、プログラムを提供することにある。
【課題を解決するための手段】
【0009】
かかる目的を達成するため本発明の一形態である情報処理方法は、
ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置が行う情報処理方法であって、
データの特性に応じて格納対象のファイルを構成するデータを分離し、
分離の結果に応じて、分離したデータを格納する
という構成をとる。
【0010】
また、本発明の他の形態である情報処理装置は、
ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置であって、
データの特性に応じて格納対象のファイルを構成するデータを分離するデータ分離部と、
分離の結果に応じて、分離したデータを格納する書込部と、
を有する
という構成をとる。
【0011】
また、本発明の他の形態であるプログラムは、
ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置に、
データの特性に応じて格納対象のファイルを構成するデータを分離するデータ分離部と、
分離の結果に応じて、分離したデータを格納する書込部と、
を実現するためのプログラムである。
【発明の効果】
【0012】
本発明は、以上のように構成されることにより、必要なデータブロックを必要なときに取り出せないおそれがある、という課題を解決する情報処理方法、情報処理装置、プログラムを提供することが可能となる。
【図面の簡単な説明】
【0013】
図1】リード要求を処理する際の課題の一例を示す図である。
図2】本発明の第1の実施形態にかかるストレージシステムを含むシステム全体の構成の一例を示すブロック図である。
図3図2で示すハイブリッドノードの構成の一例を示すブロック図である。
図4】データを分離して通常ストリームと低遅延ストリームに格納する際の処理の一例を示す図である。
図5】通常ストリームを書き込む処理の一例を説明するための図である。
図6】低遅延ストリームを書き込む処理の一例を説明するための図である。
図7】ファイルを構成する通常ストリームと低遅延ストリームを読み出して結合する処理の一例を示す図である。
図8】低遅延ストリームを読み出す処理の一例を説明するための図である。
図9】通常リード処理キューとプライオリティリード処理キューとの関係の一例を示す図である。
図10】ストレージシステムがデータを書き込む際の処理の一例を示すフローチャートである。
図11】ストレージシステムがデータを読み出す際の処理の一例を示すフローチャートである。
図12】通常リード処理キューとプライオリティリード処理キューとの処理の一例を示すフローチャートである。
図13】本発明の第2の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
[第1の実施形態]
本発明の第1の実施形態を図2から図12までを参照して説明する。図2はストレージシステム100を含むシステム全体の構成の一例を示すブロック図である。図3は、ハイブリッドノード110の構成の一例を示すブロック図である。図4は、データを分離して通常ストリームと低遅延ストリームに格納する際の処理の一例を示す図である。図5は、通常ストリームを書き込む処理の一例を説明するための図である。図6は、低遅延ストリームを書き込む処理の一例を説明するための図である。図7は、ファイルを構成する通常ストリームと低遅延ストリームを読み出して結合する処理の一例を示す図である。図8は、低遅延ストリームを読み出す処理の一例を説明するための図である。図9は、通常リード処理キューとプライオリティリード処理キューとの関係の一例を示す図である。図10は、ストレージシステム100がデータを書き込む際の処理の一例を示すフローチャートである。図11は、ストレージシステム100がデータを読み出す際の処理の一例を示すフローチャートである。図12は、通常リード処理キューとプライオリティリード処理キューとの処理の一例を示すフローチャートである。
【0015】
本発明の第1の実施形態では、格納対象のデータを分割したブロックデータを重複排除した状態で格納するストレージシステム100について説明する。後述するように、本実施形態において説明するストレージシステム100は、格納対象のデータをデータの特性に応じて分離して、通常ストリームと低遅延ストリームに格納する。また、ストレージシステム100は、通常ストリームのデータと低遅延ストリームのデータをそれぞれ別の方法を用いて格納する。つまり、ストレージシステム100は、格納対象のデータをデータの特性に応じて分離して、データの特性に応じた格納を行う。また、ストレージシステム100は、リード要求を格納するキューを2種類有している。2種類のキューを使い分けることで、ストレージシステム100は、より適切なデータの読み出しを可能とする。
【0016】
図2は、ストレージシステム100を含むシステム全体の構成の一例を示している。図2を参照すると、システムは、業務システム200と、ストレージシステム100と、を有している。図2で示すように、ストレージシステム100は、外部NIC(Network Interface Card)31などを用いて、業務システム200と互いに通信可能なよう接続されている。
【0017】
また、図2を参照すると、ストレージシステム100は、ハイブリッドノード110とストレージノード120とを有している。図2で示すように、ハイブリッドノード110は、外部NIC31を用いて、業務システム200と互いに通信可能なよう接続されている。また、ハイブリッドノード110とストレージノード120とは、内部NIC32などを用いて、互いに通信可能なよう接続されている。
【0018】
なお、図2では、システム全体の構成の一例を示している。従って、システム全体の構成は、図2で示す場合に限定されない。例えば、ストレージシステム100が有するハイブリッドノード110の数やストレージノード120の数は、図2で示す場合に限定されない。ストレージシステム100は、任意の数のハイブリッドノード110や任意の数のストレージノード120を有することが出来る。
【0019】
ハイブリッドノード110は、ファイルの書き込み要求や読み出し要求などのファイルI/O(Input/Output)を処理する機能を有するとともに、格納対象のブロックデータを記憶装置116に格納する機能を有する情報処理装置である。また、ハイブリッドノード110は、キャッシュを有している。ハイブリッドノード110は、読み出し対象のブロックデータを記憶装置116や他のノードから読み出す際に、リード位置から予め定められた量のデータブロックを取得しキャッシュに格納する先行読み出し処理を行うことが出来る。
【0020】
図3は、ハイブリッドノード110の構成の一例を示している。図3を参照すると、ハイブリッドノード110は、例えば、データ分離部111と、分離データ書込部112と、解放部113と、分離データ読出部114と、分離データ関連付け部115と、記憶装置116と、を有している。
【0021】
例えば、ハイブリッドノード110は、CPU(Central Processing Unit)などの演算装置と記憶装置とを有している。ハイブリッドノード110は、例えば、記憶装置が記憶するプログラムを演算装置が実行することで、上述した各処理部を実現する。
【0022】
データ分離部111は、ファイルの書き込み要求を業務システム200から受信すると、特開2012-208650号に記載された方法と同様の方法などを用いて、書き込み対象のファイルを構成する分離前データを、データの特性に応じて分離する。例えば、図4で示すように、データ分離部111は、分離前データを、リード時に即時応答が必要であるなど読み出しを優先するデータと、それ以外のデータと、に分離する。このように、データ分離部111は、読み出しの優先度などに応じて、データを分離する。また、データ分離部111は、読み出しを優先するデータと、それ以外のデータと、の2つに分離したデータの位置情報を示すデータを生成する。そして、データ分離部111は、分離・生成したそれぞれのデータをそれぞれ別のストリームに格納する。具体的には、データ分離部111は、分離前データを分離したデータのうち読み出しを優先するデータを低遅延ストリーム(1)に格納するとともに、2つに分離したデータの位置情報を示すデータを低遅延ストリーム(2)に格納する。また、データ分離部111は、分離前データを分離したデータのうち読み出しを優先するデータ以外のデータを通常ストリームに格納する。
【0023】
例えば、このように、データ分離部111は、分離前データを2つのデータに分離するとともに、2つに分離したデータの位置を示すデータを生成する。そして、データ分離部111は、それぞれのデータを通常ストリームと低遅延ストリームに格納する。これにより、データ分離部111は、3つのストリームを有するファイルを生成する。このように、データの特性に応じてストリームを分けることで、ストリームを手掛かりに、データの格納方法や読み込み方法を最適化することが可能となる。
【0024】
なお、リード時に即時応答が必要であるなど読み出しを優先するデータとは、例えば、映像データにおけるIフレームなどのキーフレームである。換言すると、データ分離部111は、例えば、1フレームのみで完結可能な他のフレームに依存しないフレームなどを、読み出しを優先するデータとして分離する。なお、データ分離部111は、上記例示した以外のフレームなどを、読み出しを優先するデータとして判断するよう構成しても構わない。
【0025】
分離データ書込部112は、データ分離部111がデータを分離した結果をストレージシステム100に格納する。分離データ書込部112は、それぞれのストリームに応じた書き込み処理を行う。
【0026】
例えば、分離データ書込部112は、通常ストリームに対しては、図5で示すように、全てのハイブリッドノード110とストレージノード120が書き込み対象となる書き込み処理を行う。例えば、分離データ書込部112は、通常ストリームのデータを複数のブロックデータに分割して、分割したブロックデータについて、ブロックデータのデータ内容を代表する固有のハッシュ値を算出する。具体的には、例えば、分離データ書込部112は、予め設定されたハッシュ関数(例えば、SHA-2などの暗号学的ハッシュ関数)を用いて、ブロックデータのデータ内容からハッシュ値を算出する。そして、分離データ書込部112は、算出したハッシュ値と、ストレージシステム100に格納されたブロックデータを示すハッシュ情報とに基づいて、ハッシュ値算出元のブロックデータがストレージシステム100に既に格納されているか否か調べる。例えば、算出したハッシュ値が上述したハッシュ情報に含まれる場合、分離データ書込部112は、同一内容のブロックデータをストレージシステム100が既に格納していると判断する。この場合、分離データ書込部112は、ストレージシステム100が既に格納しているブロックデータの新たな書き込みは行わない。一方、算出したハッシュ値が上述したハッシュ情報に含まれない場合、分離データ書込部112は、同一内容のブロックデータはストレージシステム100に格納していないと判断する。この場合、分離データ書込部112は、ブロックデータをハイブリッドノード110とストレージノード120のいずれかに書き込む。例えば、このような処理により、分離データ書込部112は、通常ストリームを分割したブロックデータをハイブリッドノード110とストレージノード120に分散させて書き込む。その後、分離データ書込部112は、書き込んだブロックデータのハッシュ値と、ブロックデータの書き込み位置とを示す情報を関連付けて、ハッシュ情報として管理する。
【0027】
なお、分離データ書込部112は、ブロックデータをさらに複数のフラグメントデータに分割し、分割したフラグメントデータをハイブリッドノード110とストレージノード120に分散して書き込むよう構成しても構わない。また、分離データ書込部112は、ブロックデータやフラグメントデータに、復元処理用の冗長データを付与して書き込む処理を行うよう構成しても構わない。
【0028】
また、例えば、分離データ書込部112は、図6で示すように、低遅延ストリーム(低遅延ストリーム(1)と低遅延ストリーム(2))に格納されたデータを応答時間優先ブロックとして分割する。そして、分離データ書込部112は、分割した応答時間優先ブロックをファイルI/O処理機能を有する全てのノード(つまり、ストレージシステム100が有する全てのハイブリッドノード110)の記憶装置116にコピーする。このように、分離データ書込部112は、低遅延ストリームに書かれたデータを全てのハイブリッドノード110が有するように書き込み処理を行う。なお、分離データ書込部112は、通常ストリームの場合と同様、低遅延ストリームの場合も重複判定処理を行った後、重複しない応答時間優先ブロックを全てのハイブリッドノード110にコピーするよう構成しても構わない。
【0029】
以上のように、分離データ書込部112は、ストリームごとに異なる方法で書き込み処理を行う。換言すると、分離データ書込部112は、書き込み対象のファイルのうち通常ストリームのデータを、一般的な重複排除処理の場合と同様に、ハイブリッドノード10やストレージノード20に分散させて書き込む。また、分離データ書込部112は、書き込み対象のファイルのうち低遅延ストリームのデータを、記憶装置116に格納するとともに、他のハイブリッドノード110へコピーする。このような書き込み処理の結果として、通常ストリームのデータは、ハイブリッドノード110やストレージノード120に分散して書き込まれることになる。一方、低遅延ストリームのデータは、全てのハイブリッドノード110が有することになる。
【0030】
解放部113は、例えば、予め定められた周期ごとに、記憶装置116に格納されたデータ(ブロックデータ、応答時間優先ブロック)を削除する。例えば、解放部113は、記憶装置116に格納されたデータのうち、ハイブリッドノード110に格納中のどのファイルも参照していないデータを削除する。
【0031】
また、解放部113は、予め定められた閾値(値は任意で構わない)と記憶装置116の空き容量を示す値とを比較する。そして、上述したデータを削除したにもかかわらず記憶装置116の空き容量を示す値が閾値よりも小さい場合、解放部113は、記憶装置116に格納された応答時間優先ブロックのうち、予め定められた一定期間(任意の期間を設定して構わない)参照のない応答時間優先ブロックを削除する。このような処理により、ハイブリッドノード110ごとに、一定期間アクセスがなかったファイルの応答時間優先ブロックのコピーが削除されることになる。
【0032】
なお、解放部113は、予め定められた冗長度と、空き容量を示す値と、閾値と、に基づいて、応答時間優先ブロックを削除するか否か判断するよう構成しても構わない。また、例えば、解放部113は、削除の結果、冗長度が規定値よりも下回る場合、削除対象の応答時間優先ブロックのコピーをリカバリ用のパリティデータに置き換えるよう構成しても構わない。
【0033】
分離データ読出部114は、ファイルの読み出し要求を業務システム200から受信すると、読み出し要求のあったファイル名をもとに、読み出し対象のデータを特定する。そして、分離データ読出部114は、記憶するハッシュ情報に基づいて、読み出し対象のデータの格納位置を特定し、各特定した位置から読み出し対象のデータを取得する。
【0034】
分離データ読出部114は、例えば、読み出し対象のストリームに応じた読み出しを行う。例えば、図7で示すように、分離データ読出部114は、通常ストリームを通常のリード要求で読み出す一方で、低遅延ストリームなどをプライオリティリード要求で読み出す。
【0035】
上述したように、通常ストリームのデータはハイブリッドノード110とストレージノード120に分散して格納されている。そのため、分離データ読出部114は、通常ストリームのデータを読み出す場合、ハイブリッドノード110とストレージノード120のそれぞれから必要なデータを読み出す。一方、図8で示すように、低遅延ストリームのデータは、全てのハイブリッドノード110が有している。つまり、ファイルの読み出し要求を処理するハイブリッドノード110は、原則として、自身が有する記憶装置116に低遅延ストリームのデータを有している。そこで、分離データ読出部114は、自身が有する記憶装置116から低遅延ストリームのデータを読み出す。これにより、低遅延ストリームのデータを読み出す際のノード間データ移動のコストを無くすことが可能となる。
【0036】
分離データ読出部114により各種データを読み出した後、分離データ関連付け部115は、2つに分離したデータの位置を示すデータに基づいて、各種データを結合する。これにより、分離データ関連付け部115は、分離前の元のデータであるファイルを復元する。その後、ハイブリッドノード110は、復元したファイルを業務システム200に返却する。これにより、業務システム200は、データが分離され格納されていることを意識せずにファイルを参照することが出来る。
【0037】
なお、分離データ読出部114は、リード要求を保持するキューを2種類有している。図9を参照すると、分離データ読出部114は、通常リード処理キューとプライオリティリード処理キューの2つのキューを有している。例えば、分離データ読出部114は、リード対象のブロックの特性と、ブロックのキャッシュ状態に応じて、通常リード処理キューとプライオリティリード処理キューの使い分けを行う。例えば、分離データ読出部114は、通常ストリームを通常のリード要求で読み出す場合、リード要求を通常リード処理キューに格納する。一方、分離データ読出部114は、低遅延ストリームをプライオリティリード要求で読み出す場合などにおいて、リード要求をプライオリティリード処理キューに格納する。例えば、分離データ読出部114は、低遅延ストリームに属するデータブロック(応答時間優先ブロック)を読み出す場合、Btreeなどのファイルシステムのメタデータを読み出す場合、リードI/O範囲の未キャッシュ状態のデータブロックを読み出す場合、などにおいて、リード要求をプライオリティリード処理キューに格納することが出来る。
【0038】
通常リード処理キューとプライオリティリード処理キューのそれぞれにリード要求が格納されている場合、図9で示すように、データの読み出しは、プライオリティリード処理キューの方から優先的に実行する。例えば、図9で示す場合、分離データ読出部114は、プライオリティリード処理キューに格納された1、4、nのブロックを読み出した後、通常リード処理キューに格納された処理を実行する。また、同一のブロックに対して読み出し要求が通常リード処理キューとプライオリティリード処理キューの両方に格納されることがある。この場合、分離データ読出部114は、一方のキューから取り出したリード要求を処理したタイミングで他方のリード要求を削除する。例えば、図9の場合、プライオリティリード処理キューに格納されたnのブロックのリード要求を処理したタイミングで、分離データ読出部114は、通常リード処理キューに格納されたnのブロックのリード要求を削除する。
【0039】
記憶装置116は、ハードディスクなどの記憶装置である。記憶装置116には、ブロックデータや応答時間優先ブロックなどが格納される。
【0040】
以上が、ハイブリッドノード110の構成の一例である。
【0041】
ストレージノード120は、重複排除した状態でブロックデータを格納する記憶装置121を有する。ストレージノード120が有する記憶装置121には、ハイブリッドノード110からの要求に応じて、ブロックデータ、ブロックデータや応答時間優先ブロックのパリティデータ、などを格納することが出来る。また、ストレージノード120は、ハイブリッドノード110からの要求に応じて、記憶装置121に格納されたブロックデータ、ブロックデータや応答時間優先ブロックのパリティデータなどをハイブリッドノード110に対して送信する。
【0042】
なお、ストレージノード120は、格納対象のブロックデータなどが記憶装置121に格納されているか否か確認する重複確認機能を有することが出来る。ストレージノード120は、重複確認を行った上で、格納対象のブロックデータなどを記憶装置121に格納するように構成しても構わない。
【0043】
業務システム200は、ハイブリッドノード110に対して、ファイルの書き込み要求や読み出し要求を送信する情報処理装置である。なお、本実施形態においては、ファイルの書き込み要求や読み出し要求を実行するハイブリッドノード110の選択方法については特に限定しない。業務システム200が送信したファイルの書き込み要求や読み出し要求は、任意の方法でストレージシステム100が有するハイブリッドノード110のいずれかに割り振ることが出来る。
【0044】
続いて、図10から図12までを参照して、ストレージシステム100の動作の一例について説明する。まず、図10を参照して、業務システム200からファイルの書き込み要求を受信した際のストレージシステム100の動作の一例について説明する。
【0045】
ハイブリッドノード11は、ファイルの書き込み要求を業務システム200から受信する。図10を参照すると、データ分離部111は、書き込み対象のファイルを構成する分離前データを、データの特性に応じて分離する。例えば、データ分離部111は、分離前データを、リード時に即時応答が必要であるなど読み出しを優先するデータと、それ以外のデータと、に分離する。また、データ分離部111は、読み出しを優先するデータと、それ以外のデータと、の2つに分離したデータの位置情報を示すデータを生成する。そして、データ分離部111は、分離・生成したそれぞれのデータをそれぞれ別のストリームに格納する(ステップS101)。具体的には、データ分離部111は、分離前データを分離したデータのうち読み出しを優先するデータを低遅延ストリーム(1)に格納するとともに、2つに分離したデータの位置情報を示すデータを低遅延ストリーム(2)に格納する。また、データ分離部111は、分離前データを分離したデータのうち読み出しを優先するデータ以外のデータを通常ストリームに格納する。
【0046】
分離データ書込部112は、低遅延ストリーム(低遅延ストリーム(1)と低遅延ストリーム(2))に格納されたデータを応答時間優先ブロックとして分割する。そして、分離データ書込部112は、分割した応答時間優先ブロックをファイルI/O処理機能を有する全てのノード(つまり、ストレージシステム100が有する全てのハイブリッドノード110)の記憶装置116にコピーする(ステップS102)。
【0047】
また、分離データ書込部112は、通常ストリームに格納されたデータをブロックデータに分割する。そして、分離データ書込部112は、重複排除処理したうえで、必要なブロックデータをハイブリッドノード110とストレージノード120に分散して格納する(ステップS103)。
【0048】
例えば、以上のように、分離データ書込部112は、低遅延ストリームと通常ストリームで異なる方法を用いでデータを格納する。なお、ステップS102とステップS103の処理はどちらの処理を先に実行しても構わないし、並行して実行しても構わない。
【0049】
続いて、図11を参照して、業務システム200からファイルの読み出し要求を受信した際のストレージシステム100の動作の一例について説明する。
【0050】
ハイブリッドノード11は、ファイルの読み出し要求を業務システム200から受信する。図11を参照すると、分離データ読出部114は、ファイルの読み出し要求を業務システム200から受信すると、読み出し要求のあったファイル名をもとに、読み出し対象のデータを特定する。そして、分離データ読出部114は、記憶するハッシュ情報に基づいて、読み出し対象のデータの格納位置を特定し、各特定した位置から読み出し対象のデータを取得する(ステップS201)。例えば、分離データ読出部114は、読み出し対象のブロックの特性などに応じて、通常リード処理キューとプライオリティリード処理キューとを使い分けて、データの読み出しを行う。
【0051】
分離データ関連付け部115は、2つに分離したデータの位置を示すデータに基づいて、各種データを結合する(ステップS202)。これにより、分離データ関連付け部115は、分離前の元のデータであるファイルを復元する。その後、ハイブリッドノード110は、復元したファイルを業務システム200に返却する。
【0052】
続いて、通常リード処理キューとプライオリティリード処理キューとの使い分けについて、図12を参照して説明する。
【0053】
図12を参照すると、プライオリティリード処理キューにリード要求が格納されている場合(ステップS301、Yes)、分離データ読出部114は、プライオリティリード処理キューに格納されたリード要求を実行する(ステップS302)。一方、プライオリティリード処理キューにリード要求が格納されていない場合(ステップS301、No)、分離データ読出部114は、通常リード処理キューに格納されたリード要求を実行する(ステップS303)。
【0054】
例えば、以上のように、分離データ読出部114は、プライオリティリード処理キューに格納されたリード要求を優先的に実行する。
【0055】
このように、ハイブリッドノード110は、データ分離部111と分離データ書込部112とを有している。このような構成により、分離データ書込部112は、データ分離部111がデータの特性に応じて分離した結果に応じて、データを格納することが出来る。その結果、応答時間が短くなるようにデータをストレージシステム100に格納することが可能となる。これにより、必要なデータブロックを必要なときに取り出せないおそれがある、という課題を解決することが出来る。
【0056】
また、本実施形態によると、分離データ書込部112は、低遅延ストリームに格納されたデータを分割した応答時間優先ブロックを全てのハイブリッドノード110の記憶装置116にコピーするよう構成されている。これにより、ファイルの読み出し要求を実行するハイブリッドノード110の記憶装置116に読み出し対象の応答時間優先ブロックが格納されていることが保証される。その結果、応答時間優先ブロックを読み出す際にノード間でデータ転送する必要を無くすことが可能となり、読み出しにかかる時間・コストを低減させることが可能となる。また、コピーはハイブリッドノード110に限定され、ストレージノード120には行われない。そのため、コピーに伴うデータ量の増大も、ストレージノード120を含む全体にコピーする場合と比較して、抑えることが出来る。
【0057】
また、ハイブリッドノード110は、解放部113を有している。このような構成により、解放部113は、記憶装置116の空き容量を示す値が閾値よりも小さい場合、記憶装置116に格納された応答時間優先ブロックのうち、予め定められた一定期間参照のない応答時間優先ブロックを削除またはパリティデータに置き換えることが出来る。これにより、読み出される可能性の低い応答時間優先ブロックを格納することにより記憶装置116の空き容量が低減することを抑制することが可能となる。つまり、記憶装置116を効率的に使用することが可能となる。
【0058】
また、ハイブリッドノード110は、分離データ読出部114を有している。また、分離データ読出部114は、通常リード処理キューとプライオリティリード処理キューを使い分けるよう構成されている。このような構成により、分離データ読出部114は、プライオリティリード処理キューに格納する低遅延ストリームを優先的に読み出すことが可能となる。その結果、優先的に読み出すことが必要なデータを優先的に読み出すことが可能となり、必要なデータブロックを必要なときに取り出せないおそれがある、という課題を解決することが可能となる。
【0059】
[第2の実施形態]
次に、図13を参照して、本発明の第2の実施形態について説明する。第の実施形態では、情報処理装置40の構成の概要について説明する。
【0060】
情報処理装置40は、ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する。図13は、情報処理装置40の構成の一例を示している。図13を参照すると、情報処理装置40は、例えば、データ分離部41と書込部42とを有している。
【0061】
例えば、情報処理装置40は、CPUなどの演算装置と記憶装置とを有している。例えば、情報処理装置40は、記憶装置に格納されたプログラムを演算装置が実行することで、上述した各処理部を実現する。
【0062】
データ分離部41は、データの特性に応じて格納対象のファイルを構成するデータを分離する。
【0063】
書込部42は、分離の結果に応じて、分離したデータを格納する。
【0064】
このように、情報処理装置40は、データ分離部41と書込部42とを有している。このような構成により、書込部42は、データ分離部41による分離の結果に応じて、分離したデータを格納することが出来る。その結果、応答時間が短くなるようにデータを格納することが可能となる。これにより、必要なデータブロックを必要なときに取り出せないおそれがある、という課題を解決することが出来る。
【0065】
また、上述した情報処理装置40は、当該情報処理装置40に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置40に、データの特性に応じて格納対象のファイルを構成するデータを分離するデータ分離部41と、分離の結果に応じて、分離したデータを格納する書込部42と、を実現するためのプログラムである。
【0066】
また、上述した情報処理装置40により実行される情報処理方法は、ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置が行う情報処理方法であって、データの特性に応じて格納対象のファイルを構成するデータを分離し、分離の結果に応じて、分離したデータを格納する、という方法である。
【0067】
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置40と同様の作用・効果を有するために、上述した本発明の目的を達成することが出来る。
【0068】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理方法などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0069】
(付記1)
ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置が行う情報処理方法であって、
データの特性に応じて格納対象のファイルを構成するデータを分離し、
分離の結果に応じて、分離したデータを格納する
情報処理方法。
(付記2)
付記1に記載に情報処理方法であって、
読み出しを優先するか否かを示す前記データの特性に応じて前記ファイルを構成するデータを分離する
情報処理方法。
(付記3)
付記1または付記2に記載の情報処理方法であって、
前記データの特性に応じて前記ファイルを構成するデータを分離した後、分離したそれぞれのデータを異なるストリームに格納し、
前記ストリームごとに異なる方法で前記ストリームのデータを格納する
情報処理方法。
(付記4)
付記3に記載の情報処理方法であって、
前記情報処理装置は、格納対象のデータを格納する機能を有するストレージ装置と、他の情報処理装置と、接続されており、
前記データの特性が所定のストリームのデータを他の前記情報処理装置にコピーする
情報処理方法。
(付記5)
付記1から付記4までのいずれか1項に記載の情報処理方法であって、
記憶装置の空き容量に応じて格納されたデータを解放する
情報処理方法。
(付記6)
付記1から付記5までのいずれか1項に記載の情報処理方法であって、
格納したデータを読み出す要求を、異なる特徴を有する2種類のキューのいずれかに格納する
情報処理方法。
(付記7)
付記6に記載の情報処理方法であって、
前記2種類のキューのうち予め定められたキューに処理が格納されている場合、当該予め定められたキューに格納されている処理を他方のキューに格納された処理よりも優先的に実行する
情報処理方法。
(付記8)
付記6又は付記7のいずれか1項に記載の情報処理方法であって、
読み出すデータの特性に応じて、当該データを読み出す要求を前記2種類のキューに格納する
情報処理方法。
(付記9)
ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置であって、
データの特性に応じて格納対象のファイルを構成するデータを分離するデータ分離部と、
分離の結果に応じて、分離したデータを格納する書込部と、
を有する
情報処理装置。
(付記10)
ファイルの書き込み要求や読み出し要求を処理する機能を有するとともに、格納対象のデータを格納する機能を有する情報処理装置に、
データの特性に応じて格納対象のファイルを構成するデータを分離するデータ分離部と、
分離の結果に応じて、分離したデータを格納する書込部と、
を実現するためのプログラム。
【0070】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【0071】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【0072】
100 ストレージシステム
110 ハイブリッドノード
111 データ分離部
112 分離データ書込部
113 解放部
114 分離データ読出部
115 分離データ関連付け部
116 記憶装置
120 ストレージノード
121 記憶装置
200 業務システム
31 外部NIC
32 内部NIC
40 情報処理装置
41 データ分離部
42 書込部

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13