JP6248761B2 - 記憶装置、データ記憶プログラム、およびデータ記憶方法 - Google Patents

記憶装置、データ記憶プログラム、およびデータ記憶方法 Download PDF

Info

Publication number
JP6248761B2
JP6248761B2 JP2014071734A JP2014071734A JP6248761B2 JP 6248761 B2 JP6248761 B2 JP 6248761B2 JP 2014071734 A JP2014071734 A JP 2014071734A JP 2014071734 A JP2014071734 A JP 2014071734A JP 6248761 B2 JP6248761 B2 JP 6248761B2
Authority
JP
Japan
Prior art keywords
storage unit
attribute information
data
event data
temporary storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014071734A
Other languages
English (en)
Other versions
JP2015195067A (ja
Inventor
健 飯澤
健 飯澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014071734A priority Critical patent/JP6248761B2/ja
Priority to US14/670,466 priority patent/US9703506B2/en
Publication of JP2015195067A publication Critical patent/JP2015195067A/ja
Application granted granted Critical
Publication of JP6248761B2 publication Critical patent/JP6248761B2/ja
Expired - Fee Related 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/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/061Improving I/O performance
    • 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/0656Data buffering arrangements

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Computer Security & Cryptography (AREA)

Description

本発明は、記憶装置、データ記憶プログラム、およびデータ記憶方法に関する。
時系列順に到来するデータをシーケンシャルに蓄積するストレージシステムとして、IP(Internet Protocol)ネットワークを流れるパケットをキャプチャするパケットキャプチャリングシステムなどが知られている。このようなストレージシステムは、クライアントとサーバから構成されて、複数のサーバが信頼性確保のために同一データを保持する冗長性を有する。また、クライアントとサーバの間に設けられるプロキシは、負荷分散のためにサーバに対してクライアントからのリクエストを振り分けるロードシェアをおこなう。
特開2006−268829号公報 特開2002−7450号公報
パケットキャプチャリングシステムなどのストレージシステムは、一般に、読み出しアクセスと比較して書込アクセスの頻度が高く、記憶装置に対して十分なデータの書込性能が要求される。
しかしながら、パケットキャプチャリングシステムなどのストレージシステムは、記憶装置に対して書込アクセスをおこなっているときに、同じ記憶装置に対して読み出しアクセスをおこなうと、記憶装置の書込性能が低下する場合がある。
1つの側面では、本発明は、書込アクセスと読み出しアクセスとの競合による書込性能の低下を抑制できる記憶装置、データ記憶プログラム、およびデータ記憶方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、記憶装置が提供される。記憶装置は、第1一時蓄積部と、第2一時蓄積部と、第1格納部と、第2格納部と、を備える。第1一時蓄積部は、データブロックを取得して、第1一時記憶部にデータブロックを一時蓄積する。第2一時蓄積部は、データブロックを取得して、第2一時記憶部にデータブロックを一時蓄積する。データブロックは、第1属性情報と第1属性情報と異なる第2属性情報とに対応するイベントデータと、イベントデータの時系列順序を特定可能な時系列情報と、第1属性情報と、第2属性情報とを含む。第1格納部は、第1一時記憶部の空き容量が所定の閾値以下になった場合、第1一時記憶部が蓄積した複数のデータブロックを、第1属性情報ごとに並べ替えて第1記憶部に格納する。第2格納部は、第2一時記憶部の空き容量が所定の閾値以下になった場合、第2一時記憶部が蓄積した複数のデータブロックを、第2属性情報ごとに並べ替えて第2記憶部に格納する。
1態様によれば、記憶装置、データ記憶プログラム、およびデータ記憶方法において、書込アクセスと読み出しアクセスとの競合による書込性能の低下を抑制できる。
第1の実施形態の記憶装置の構成の一例を示す図である。 第2の実施形態のストレージシステムの構成の一例を示す図である。 第2の実施の形態のクライアントのハードウェア構成の一例を示す図である。 第2の実施の形態のクライアントの機能ブロック構成の一例を示す図である。 第2の実施形態の書込リクエストの一例を示す図である。 第2の実施形態の検索リクエストの一例を示す図である。 第2の実施形態の読み出しリクエストの一例を示す図である。 第2の実施の形態のプロキシの機能ブロック構成の一例を示す図である。 第2の実施の形態のサーバ情報の一例を示す図である。 第2の実施の形態のサーバの機能ブロック構成の一例を示す図である。 第2の実施の形態のイベントデータをバッファに蓄積する様子の一例を示す図である。 第2の実施の形態のバッファを交換する様子の一例を示す図である。 第2の実施の形態の書込リクエストの発生順序と、サーバごとのイベントデータの格納状態の一例を示す図である。 第2の実施の形態のプロキシが転送する書込リクエストに含まれるイベントデータの一例を示す図である。 第2の実施の形態の読み出しリクエストと、そのリプライの一例を示す図である。 第2の実施形態の書込リクエスト生成処理のフローチャートを示す図である。 第2の実施形態の転送先サーバ決定処理のフローチャートを示す図である。 第2の実施形態のバッファ制御処理のフローチャートを示す図である。 第2の実施形態のソート処理のフローチャートを示す図である。
以下、実施の形態について、図面を参照しながら詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の記憶装置について図1を用いて説明する。図1は、第1の実施形態の記憶装置の構成の一例を示す図である。
記憶装置1は、時系列に到来するデータを記憶部に記憶する。時系列に到来するデータは、連続的な受信処理や書込処理を要求されるデータであり、たとえば、通信パケットのキャプチャデータや、通信ログなどのログデータなどがある。記憶部は、データを格納可能なストレージデバイスであり、たとえば、HDD(Hard Disk Drive)やテープ装置などである。
記憶装置1は、第1一時蓄積部2と、第2一時蓄積部4と、第1格納部6と、第2格納部8と、を備える。記憶装置1は、データブロックDBを取得する。データブロックDBは、イベントデータと、時系列情報tと、第1属性情報p1と、第2属性情報p2とを含む。データブロックDBは、たとえば、図示しない他の情報処理装置により収集されたデータ、あるいは図示しない他の情報処理装置により生成されたデータにもとづいて、他の情報処理装置が生成する。記憶装置1は、他の情報処理装置からデータブロックDBを取得する。
イベントデータは、図示しない他の情報処理装置により収集されたデータ、あるいは図示しない他の情報処理装置により生成されたデータから構成されるデータである。ここでいうデータの構成は、データのブロック化など、所要のフォーマットへの変更を含む。
時系列情報tは、イベントデータの時系列順序、すなわちデータの時間的前後関係を特定可能な情報である。時系列情報tは、データの生成時刻や発生時刻、送信時刻、受信時刻などデータに関する時刻、あるいはシーケンシャル番号などである。
第1属性情報p1および第2属性情報p2は、イベントデータの属性を示す情報である。第1属性情報p1および第2属性情報p2は、たとえば、データの送信元や送信先、通信プロトコルなどがある。
第1一時蓄積部2は、データブロックDBを取得する。第1一時蓄積部2は、取得したデータブロックDBを第1一時記憶部3に一時蓄積する。第1一時記憶部3は、データブロックDBを一時記憶するバッファであり、たとえば、RAM(Random Access Memory)である。
第2一時蓄積部4は、データブロックDBを取得する。第2一時蓄積部4は、取得したデータブロックDBを第2一時記憶部5に一時蓄積する。第2一時記憶部5は、データブロックDBを一時記憶するバッファであり、たとえば、RAMである。
第1格納部6は、第1一時記憶部3が蓄積した複数のデータブロックDBを、第1属性情報p1ごとに、かつ時系列情報tから特定される時系列順に並べ替えて第1記憶部7に格納する。第1記憶部7は、記憶部の1つであり、HDDやテープ装置などのストレージデバイスである。
第2格納部8は、第2一時記憶部5が蓄積した複数のデータブロックDBを、第2属性情報p2ごとに、かつ時系列情報tから特定される時系列順に並べ替えて第2記憶部9に格納する。第2記憶部9は、記憶部の1つであり、HDDやテープ装置などのストレージデバイスである。
ここで、記憶装置1が取得したデータブロックDBを記憶部に格納する流れについて、データブロックDB1,DB2,DB3,DB4を用いて説明する。記憶装置1が取得したデータブロックDBは、時系列順序で古い順に、データブロックDB1と、データブロックDB2と、データブロックDB3と、データブロックDB4がある。データブロックDB1は、イベントデータと、時系列情報t1と、第1属性情報p11と、第2属性情報p21を含む。データブロックDB2は、イベントデータと、時系列情報t2と、第1属性情報p11と、第2属性情報p22を含む。データブロックDB3は、イベントデータと、時系列情報t3と、第1属性情報p12と、第2属性情報p22を含む。データブロックDB4は、イベントデータと、時系列情報t4と、第1属性情報p12と、第2属性情報p21を含む。
第1一時蓄積部2は、データブロックDBを取得した順に第1一時記憶部3に蓄積する。したがって、第1一時記憶部3は、時系列順序で古い順に、データブロックDB1と、データブロックDB2と、データブロックDB3と、データブロックDB4を蓄積する。
第2一時蓄積部4は、データブロックDBを取得した順に第2一時記憶部5に蓄積する。したがって、第2一時記憶部5は、時系列順序で古い順に、データブロックDB1と、データブロックDB2と、データブロックDB3と、データブロックDB4を蓄積する。
第1格納部6は、データブロックDB1,DB2,DB3,DB4を、第1属性情報p1ごとに並べ替える。さらに、第1格納部6は、第1属性情報p1ごとに並べ替えたデータブロックDBごとに、時系列情報tから特定される時系列順に並べ替えて第1記憶部7に格納する。すなわち、第1格納部6は、データブロックDB1,DB2がともに第1属性情報p11であることから、データブロックDB1,DB2を時系列順(時系列情報t1,t2の順)にして第1記憶部7に格納する。また、第1格納部6は、データブロックDB3,DB4がともに第1属性情報p12であることから、データブロックDB3,DB4を時系列順(時系列情報t3,t4の順)にして第1記憶部7に格納する。これにより、第1記憶部7は、データブロックDB1,DB2,DB3,DB4の順にデータブロックDBを格納する。
第2格納部8は、データブロックDB1,DB2,DB3,DB4を、第2属性情報p2ごとに並べ替える。さらに、第2格納部8は、第2属性情報p2ごとに並べ替えたデータブロックDBごとに、時系列情報tから特定される時系列順に並べ替えて第2記憶部9に格納する。すなわち、第2格納部8は、データブロックDB1,DB4がともに第2属性情報p21であることから、データブロックDB1,DB4を時系列順(時系列情報t1,t4の順)にして第2記憶部9に格納する。また、第2格納部8は、データブロックDB2,DB3がともに第2属性情報p22であることから、データブロックDB2,DB3を時系列順(時系列情報t2,t3の順)にして第2記憶部9に格納する。これにより、第2記憶部9は、データブロックDB1,DB4,DB2,DB3の順にデータブロックDBを格納する。
これにより、記憶装置1は、第1属性情報p1ごとに時系列順に並ぶデータを記憶部(第1記憶部7)に格納することができる。また、記憶装置1は、第2属性情報p2ごとに時系列順に並ぶデータを記憶部(第2記憶部9)に格納することができる。
したがって、記憶装置1は、第1属性情報p1のデータブロックDBについての時系列順序のデータアクセスに対してシーケンシャルに読み出しをおこなうことができる。また、記憶装置1は、第2属性情報p2のデータブロックDBについての時系列順序のデータアクセスに対してシーケンシャルに読み出しをおこなうことができる。
このような記憶装置1は、記憶部に対する読み出し負荷を低減することができることから、書込アクセスと読み出しアクセスとの競合による書込性能の低下を抑制できる。
なお、記憶装置1は、第1一時蓄積部2と第2一時蓄積部4とを別個に備えるものとして説明したが、一時蓄積部2aとして第1一時蓄積部2が第2一時蓄積部4を兼ねるものであってもよい。
また、記憶装置1は、第1一時記憶部3と第2一時記憶部5とを別個に備えるものとして説明したが、一時記憶部3aとして第1一時記憶部3が第2一時記憶部5を兼ねるものであってもよい。
[第2の実施形態]
次に、第2の実施形態のストレージシステムの構成について図2を用いて説明する。図2は、第2の実施形態のストレージシステムの構成の一例を示す図である。
ストレージシステム10は、通信ネットワーク(たとえば、IP(Internet Protocol)ネットワーク)を流れるパケットをキャプチャするパケットキャプチャリングシステムである。なお、パケットキャプチャリングシステムは、時系列順序のデータを蓄積するストレージシステムの一例であって、時系列順序のデータをストレージデバイスに蓄積するものであればこれに限らない。
ストレージシステム10は、クライアント11と、ネットワーク12,14と、プロキシ13と、サーバ15,16,17を備える。ストレージシステム10は、クライアント11が受信したストリームデータをプロキシ13を介してサーバ15,16,17に記録する。ストリームデータは、信頼性確保のため冗長化(ミラーリング)されてサーバ15,16,17のうち2以上のサーバに記録される。なお、図2に図示するサーバは、サーバ15,16,17の3つであるが、2以上であればいくつであってもよい。
なお、ストリームデータは、時系列に到来するデータであり、連続的な受信処理や書込処理を要求されるデータであり、たとえば、通信パケットのキャプチャデータである。
クライアント11は、ネットワーク12を介してプロキシ13と接続する。プロキシ13は、ネットワーク14を介してサーバ15,16,17と接続する。クライアント11は、ストリームデータから書込リクエストを生成し、プロキシ13に書込リクエストを送信する。プロキシ13は、書込リクエストを受信してサーバ15,16,17のうち2以上のサーバに書込リクエストを振り分ける。サーバ15,16,17は、内蔵するストレージデバイス、または外部接続するストレージデバイスに書込リクエストの対象となったデータを格納する。したがって、ストレージシステム10は、2以上のサーバが同じストリームデータを記憶する。
なお、ストレージシステム10は、サーバ15,16,17を別個の情報処理装置に備える場合に限らず、サーバ15,16,17を1つの情報処理装置15a上に備えるものであってもよい。また、ストレージシステム10は、サーバ15,16,17のうち少なくとも1つのサーバと、プロキシ13とを1つの情報処理装置13a上に備えるものであってもよい。
次に、第2の実施形態のクライアント11のハードウェア構成について図3を用いて説明する。図3は、第2の実施の形態のクライアントのハードウェア構成の一例を示す図である。
クライアント11は、制御部(コンピュータ)100と、制御部100に接続する複数の周辺機器を含む。制御部100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、制御部100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。HDD103は、制御部100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ110が接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像をモニタ110の画面に表示させる。
入力インタフェース105には、キーボード111とマウス112とが接続されている。入力インタフェース105は、キーボード111やマウス112から送られてくる信号をプロセッサ101に送信する。なお、マウス112は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク113に記録されたデータの読み取りをおこなう。光ディスク113は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク113には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、制御部100に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース107には、メモリ装置114やメモリリーダライタ115を接続することができる。メモリ装置114は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ115は、メモリカード116へのデータの書き込み、またはメモリカード116からのデータの読み出しをおこなう装置である。メモリカード116は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク12に接続されている。ネットワークインタフェース108は、ネットワーク12を介して、他のコンピュータまたは通信機器との間でデータの送受信をおこなう。
以上のようなハードウェア構成によって、第2の実施形態の制御部100の処理機能を実現することができる。なお、プロキシ13、サーバ15,16,17、および第1の実施形態に示した記憶装置1も、図3に示したクライアント11と同様のハードウェアにより実現することができる。
制御部100は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。制御部100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、制御部100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、制御部100に実行させるプログラムを、光ディスク113、メモリ装置114、メモリカード116などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、第2の実施形態のクライアント11の機能ブロック構成について図4を用いて説明する。図4は、第2の実施の形態のクライアントの機能ブロック構成の一例を示す図である。
クライアント11は、ストレージシステム10においてストリームデータを受信する。クライアント11は、書込リクエスト、検索リクエスト、および読み出しリクエストをプロキシ13に送信する。クライアント11は、書込リクエスト、検索リクエスト、および読み出しリクエストに応じたリプライを受信する。
クライアント11は、書込リクエスト生成部20と、検索リクエスト生成部25と、読み出しリクエスト生成部26と、リクエスト送信部27と、リプライ受信部28とを含む。
書込リクエスト生成部20は、ストリームデータを受信して書込リクエストを生成する。書込リクエスト生成部20は、データ受信部21と、イベントデータ構成部22と、イベントデータID付与部23と、メタデータ付与部24とを含む。
データ受信部21は、ストリームデータを受信する。たとえば、データ受信部21は、スイッチのミラーポートと接続し、スイッチを流れるパケットをストリームデータとして取得する。
イベントデータ構成部22は、データ受信部21が受信したストリームデータからイベントデータを構成する。イベントデータは、所要の属性を有する一塊のデータである。たとえばパケットキャプチャリングシステムの場合、ストリームデータは、IPネットワークを流れるパケットである。イベントデータは、ストリームデータのうちから特定のTCP(Transmission Control Protocol)コネクションを流れるパケットを抽出したものである。この場合、送信元IPアドレス、送信先IPアドレス、プロトコルなどが所要の属性に相当する。
イベントデータID付与部23は、イベントデータ構成部22が構成したイベントデータを一意に特定可能な識別情報を、イベントデータID(IDentification)としてイベントデータに付与する。
メタデータ付与部24は、イベントデータの属性をメタデータとしてイベントデータに付与する。これにより、書込リクエスト生成部20は、イベントデータとイベントデータIDとメタデータを含む書込リクエストを生成することができる。書込リクエスト生成部20が生成した書込リクエストは、リクエスト送信部27によりプロキシ13に送信される。書込リクエストのリプライは、リプライ受信部28によりプロキシ13から受信される。
検索リクエスト生成部25は、検索条件を含む検索リクエストを生成する。検索リクエスト生成部25が生成した検索リクエストは、リクエスト送信部27によりプロキシ13に送信される。検索リクエストのリプライは、リプライ受信部28によりプロキシ13から受信される。検索リクエストのリプライは、検索条件に対する検索結果であるイベントデータIDを含む。
読み出しリクエスト生成部26は、検索リクエストで指定した検索条件と、検索リクエストのリプライに含まれるイベントデータIDとを含む読み出しリクエストを生成する。読み出しリクエスト生成部26が生成した読み出しリクエストは、リクエスト送信部27によりプロキシ13に送信される。読み出しリクエストのリプライは、リプライ受信部28によりプロキシ13から受信される。
次に、第2の実施形態の書込リクエストについて図5を用いて説明する。図5は、第2の実施形態の書込リクエストの一例を示す図である。
書込リクエスト200は、イベントデータIDと、メタデータと、イベントデータを含む。イベントデータIDは「1」である。メタデータは、送信元IPアドレスと、送信先IPアドレスと、通信プロトコルと、開始時刻とを含む。送信元IPアドレスは「192.168.0.1」であり、送信先IPアドレスは「192.168.100.100」であり、通信プロトコルは「TCP」であり、開始時刻は「2013/09/30/12:00」である。イベントデータはストレージデバイスの記憶対象となるデータであり、たとえばパケットキャプチャデータである。
次に、第2の実施形態の検索リクエストについて図6を用いて説明する。図6は、第2の実施形態の検索リクエストの一例を示す図である。
検索リクエスト210は、検索条件を含む。検索条件は、1または2以上の検索項目を指定可能であり、メタデータに含まれる属性ごとに検索項目を指定可能である。検索リクエスト210は、検索項目として送信元IPアドレスと、送信先IPアドレスと、通信プロトコルと、開始時刻とを含む。送信元IPアドレスは「192.168.0.1」であり、送信先IPアドレスは「*」であり、通信プロトコルは「*」であり、開始時刻は「2013/09/30/12:00−2013/09/30/13:00」である。なお、「*」は、ワイルドカードを意味する。
次に、第2の実施形態の読み出しリクエストについて図7を用いて説明する。図7は、第2の実施形態の読み出しリクエストの一例を示す図である。
読み出しリクエスト220は、イベントデータIDと検索条件とを含む。読み出しリクエスト220は、検索リクエスト210のリプライに含まれるイベントデータIDの一部または全部のイベントデータIDを指定可能である。イベントデータIDは、「3,5」である。読み出しリクエスト220に含まれる検索条件は、イベントデータIDを得るのに用いられた検索条件、すなわち、検索リクエストに含まれた検索条件である。
次に、第2の実施形態のプロキシ13の機能ブロック構成について図8を用いて説明する。図8は、第2の実施の形態のプロキシの機能ブロック構成の一例を示す図である。
プロキシ13は、クライアント11からリクエスト(書込リクエスト、検索リクエスト、読み出しリクエスト)を受信し、受信したリクエストをサーバ15,16,17に振り分けて送信する。また、プロキシ13は、サーバ15,16,17からのリプライを受信してクライアント11に送信する。
プロキシ13は、リクエスト受信部30と、転送先サーバ決定部31と、サーバ情報管理部32と、リクエスト送信部33と、リプライ受信部34と、リプライ送信部35を含む。
リクエスト受信部30は、クライアント11からリクエストを受信する。転送先サーバ決定部31は、クライアント11から受信したリクエストの転送先を決定する。転送先サーバ決定部31は、クライアント11から受信したリクエストが書込リクエストの場合、ミラーリング対象のサーバ15,16,17のすべてを書込リクエストの転送先に決定する。
転送先サーバ決定部31は、クライアント11から受信したリクエストが検索リクエストの場合、サーバ15,16,17のいずれかを検索リクエストの転送先に決定する。転送先サーバ決定部31は、ラウンドロビンで検索リクエストの転送先を決定してもよいし、無作為に検索リクエストの転送先を決定してもよい。また、転送先サーバ決定部31は、サーバ15,16,17の負荷を検出して負荷の大きさに応じて検索リクエストの転送先を決定してもよい。
転送先サーバ決定部31は、クライアント11から受信したリクエストが読み出しリクエストの場合、サーバ情報管理部32が管理するサーバ情報にもとづいてサーバ15,16,17のいずれかを読み出しリクエストの転送先に決定する。サーバ情報は、サーバがイベントデータをストレージデバイスに蓄積(記憶)する際にイベントデータのソートに用いるソートキーと、サーバとの関係を示す情報である。
リクエスト送信部33は、転送先サーバ決定部31が決定した転送先にしたがいクライアント11から受信したリクエストをサーバに送信する。
リプライ受信部34は、リクエストを送信したサーバからリプライを受信する。リプライ送信部35は、リプライ受信部34が受信したリプライをクライアント11に送信する。
なお、リクエスト受信部30と、転送先サーバ決定部31と、サーバ情報管理部32と、リクエスト送信部33とは、読み出しリクエストを転送する読み出しリクエスト転送部として機能する。また、リクエスト受信部30と、転送先サーバ決定部31と、リクエスト送信部33とは、検索リクエストを転送する検索リクエスト転送部として機能する。また、リクエスト受信部30と、転送先サーバ決定部31と、リクエスト送信部33とは、書込リクエストを転送する書込リクエスト転送部として機能する。
次に、第2の実施形態のサーバ情報について図9を用いて説明する。図9は、第2の実施の形態のサーバ情報の一例を示す図である。
サーバ情報230は、プロキシ13のサーバ情報管理部32が管理する情報である。サーバ情報230は、サーバIDとソートキーとの対応関係を示す。サーバIDは、サーバを一意に特定可能な情報である。ソートキーは、サーバがイベントデータのソートに用いる項目である。ソートキーは、イベントデータのミラーリングをおこなっているサーバごとに異なる項目が設定される。たとえば、サーバID「#1」は、サーバ15を特定可能にする。ソートキー「送信元IPアドレス」は、サーバが送信元IPアドレスでイベントデータをソートすることを示す。したがって、サーバID「#1」で特定されるサーバ15は、送信元IPアドレスでイベントデータをソートする。同様にして、サーバID「#2」で特定されるサーバ16は、送信先IPアドレスでイベントデータをソートし、サーバID「#3」で特定されるサーバ17は、通信プロトコルでイベントデータをソートする。
次に、第2の実施形態のサーバ15,16,17の機能ブロック構成について図10を用いて説明する。図10は、第2の実施の形態のサーバの機能ブロック構成の一例を示す図である。なお、図10を用いてサーバ15について説明するが、サーバ16,17もサーバ15と同様である。
サーバ15は、プロキシ13からリクエスト(書込リクエスト、検索リクエスト、読み出しリクエスト)を受信し、受信したリクエストに応じたリプライをプロキシ13に送信する。
サーバ15は、リクエスト受信部40と、バッファ制御部41と、バッファ42,43と、ソート部44と、キー情報記憶部45と、検索部46と、読み出し/書込部47と、リプライ送信部48と、ストレージデバイス50を含む。
リクエスト受信部40は、プロキシ13からリクエストを受信する。バッファ制御部41は、リクエスト受信部40が書込リクエストを受信した場合に、バッファ42,43のいずれか一方にイベントデータを格納する。リプライ送信部48は、書込リクエストに対するリプライをプロキシ13に送信する。
バッファ制御部41は、イベントデータの格納先となるバッファ(書込用バッファ)がオーバフローする前に、イベントデータの格納先を空になっているもう1つのバッファ(ソート用バッファ)に切り替える。バッファ42,43は、ストレージデバイス50と比較して高速なアクセスが可能なRAM102などに設けられる。
ソート部44は、バッファの切り替えによりイベントデータの格納先から外れたバッファをソート対象に選択する。たとえば、バッファ制御部41がイベントデータの格納先をバッファ42からバッファ43に切り替えた場合、ソート部44は、バッファ42をソート対象に選択する。
ソート部44は、キー情報記憶部45が記憶するソートキーを用いて、ソート対象のバッファが格納するイベントデータをソートする。ソートキーは、プロキシ13のサーバ情報管理部32が管理するサーバ情報に含まれるソートキーに対応する。キー情報記憶部45は、あらかじめプロキシ13からソートキーを受信して記憶する。
ソート部44は、同じ属性を有するイベントデータが複数ある場合に、さらに時系列順にソートする。読み出し/書込部47は、ソート部44がソートしたイベントデータを、ストレージデバイス50に書き込む。ストレージデバイス50は、たとえば、HDD51,52,53のように、1または2以上のストレージデバイス(ストレージ装置)から構成される。読み出し/書込部47は、ストレージデバイス50のうち1つのストレージデバイス(たとえば、HDD51)を選択して、ソートしたイベントデータを書き込む。これにより、同じ属性を有するイベントデータは、時系列順にストレージデバイスにシーケンシャルに書き込まれる。
ソート部44は、ソート対象のバッファからイベントデータを削除してバッファを空にする。このように、サーバ15は、書込リクエストの処理と非同期に、ストレージデバイス50にイベントデータを書き込む。
検索部46は、リクエスト受信部40が検索リクエストを受信した場合に、検索条件に応じた検索をおこない、読み出し/書込部47を介して検索結果(たとえば、イベントデータIDのリスト)を得る。リプライ送信部48は、検索リクエストに対する検索結果をリプライとしてプロキシ13に送信する。
読み出し/書込部47は、リクエスト受信部40が読み出しリクエストを受信した場合に、イベントデータIDにもとづいてイベントデータとメタデータをストレージデバイス50から読み出す。リプライ送信部48は、読み出しリクエストに対するイベントデータとメタデータをリプライとしてプロキシ13に送信する。
なお、読み出しリクエストに含まれるイベントデータIDがソートキーと同じ属性の検索条件を含む場合、読み出しリクエストに対するイベントデータは、ストレージデバイス50の連続する記憶領域に書き込まれている蓋然性が高い。たとえば、読み出し対象のイベントデータが同一のバッファフラッシュでストレージデバイス50に書き込まれた場合、読み出し対象のイベントデータは、単一の記憶領域(たとえば、HDDにおける同一セグメント)、または連続する記憶領域にある。そのため、読み出し/書込部47は、ストレージデバイス50からシーケンシャルにイベントデータを読み出すことができる。このような読み出し処理は、ストレージデバイス50に与える負荷が小さく、同時に実行される書込処理における書込性能の低下を抑制できる。
次に、第2の実施形態のイベントデータのバッファへの蓄積と、バッファの交換について、図11と図12を用いて説明する。まず、イベントデータのバッファへの蓄積について図11を用いて説明する。図11は、第2の実施の形態のイベントデータをバッファに蓄積する様子の一例を示す図である。
バッファ制御部41は、書込リクエストに対応するイベントデータの格納先としてバッファ42を選択し、バッファ43を選択していない。HDD51は、バッファフラッシュしたイベントデータの格納先である。
なお、図示するバッファ42とバッファ43の白塗り部分は、イベントデータが書き込まれていない領域を示す。図示するバッファ42のハッチングパタンは、イベントデータが書き込まれている領域を示す。異なるハッチングパタンは、イベントデータの属性が異なることを示す。
バッファ制御部41は、書込リクエストを受信する都度、バッファ42にイベントデータを書き込む。そのため、バッファ42は、属性の異なるイベントデータをランダムに並べて蓄積する。
次に、バッファの交換について図12を用いて説明する。図12は、第2の実施の形態のバッファを交換する様子の一例を示す図である。
バッファ制御部41は、バッファ42がオーバフローする前に、イベントデータの格納先を空になっているバッファ43に切り替える。ソート部44は、イベントデータの格納先から外れたバッファ42をソート対象に選択する。ソート部44は、バッファ42が格納するイベントデータをソートし、読み出し/書込部47を介してHDD51にソート済みイベントデータを格納する。このようにして、同じ属性を有するイベントデータは、HDD51にシーケンシャルに書き込まれる。
次に、プロキシ13が転送する書込リクエストとサーバ15,16,17ごとのイベントデータの格納状態について図13を用いて説明する。図13は、第2の実施の形態の書込リクエストの発生順序と、サーバごとのイベントデータの格納状態の一例を示す図である。
プロキシ13は、イベントデータED1,ED2,ED3,ED4,ED5の順に書込リクエストを、サーバ15,16,17に対して送信する。サーバ15は、送信元IPアドレスをソートキーにして、イベントデータに付されるメタデータにもとづいてイベントデータをソートする。これにより、サーバ15は、たとえば、イベントデータED3,ED5,ED2,ED4,ED1の順にイベントデータを格納する。サーバ16は、送信先IPアドレスをソートキーにして、イベントデータに付されるメタデータにもとづいてイベントデータをソートする。これにより、サーバ16は、たとえば、イベントデータED1,ED4,ED3,ED2,ED5の順にイベントデータを格納する。サーバ17は、通信プロトコルをソートキーにして、イベントデータに付されるメタデータにもとづいてイベントデータをソートする。これにより、サーバ17は、たとえば、イベントデータED4,ED2,ED3,ED1,ED5の順にイベントデータを格納する。
ここで、プロキシ13が送信した書込リクエストに含まれるイベントデータについて、図14に示すより具体的な一例を用いて説明する。図14は、第2の実施の形態のプロキシが転送する書込リクエストに含まれるイベントデータの一例を示す図である。
図13に示したイベントデータED1,ED2,ED3,ED4,ED5について、イベントデータIDと送信元IPアドレスの詳細を示す。イベントデータED1は、イベントデータIDが「1」であり、送信元IPアドレスが「192.168.0.3」である。イベントデータED2は、イベントデータIDが「2」であり、送信元IPアドレスが「192.168.0.2」である。イベントデータED3は、イベントデータIDが「3」であり、送信元IPアドレスが「192.168.0.1」である。イベントデータED4は、イベントデータIDが「4」であり、送信元IPアドレスが「192.168.0.2」である。イベントデータED5は、イベントデータIDが「5」であり、送信元IPアドレスが「192.168.0.1」である。
これによれば、サーバ15は、送信元IPアドレスでソートしていることから、イベントデータをイベントデータED3,ED5、イベントデータED2,ED4、イベントデータED1の3つのデータ群にソートする。さらに、サーバ15は、各データ群について時系列順にソートする。このようにして、サーバ15は、図13に示したように、イベントデータED3,ED5,ED2,ED4,ED1の順にイベントデータを格納する。
同様にして、サーバ16は、送信先IPアドレスでイベントデータをソートし、イベントデータED1,ED4,ED3,ED2,ED5の順にイベントデータを格納する。サーバ17は、通信プロトコルでイベントデータをソートし、イベントデータED4,ED2,ED3,ED1,ED5の順にイベントデータを格納する。
このように、サーバ15,16,17は、異なるソートキーを用いてイベントデータをソートしているので、サーバごとにイベントデータの格納順序が異なる。
次に、プロキシ13が転送する読み出しリクエストと、そのリプライについて図15を用いて説明する。図15は、第2の実施の形態の読み出しリクエストと、そのリプライの一例を示す図である。
プロキシ13は、イベントデータIDのリスト「3,5」と、イベントデータIDのリスト「3,5」を検索結果として得た検索条件を含む読み出しリクエストをサーバ15に転送する。プロキシ13は、検索条件が送信元IPアドレスを検索項目としていることから送信元IPアドレスをソートキーとするサーバ15を読み出しリクエストの転送先とする。サーバ15は、イベントデータED3,ED5をシーケンシャルに読み出し可能な領域に格納していることから、サーバ16,17と比較してイベントデータED3,ED5の読み出し負荷が小さい。サーバ15は、ストレージデバイス50からイベントデータED3,ED5を読み出すと、イベントデータED3,ED5をリプライに含めてプロキシ13に送信する。プロキシ13は、このように読み出し対象となるイベントデータを検索結果として得た検索条件に応じて読み出しリクエストの転送先を決定することで、ストレージシステム10における読み出し負荷を低減する。また、このようなストレージシステム10は、書込アクセスと読み出しアクセスとの競合による書込性能の低下を抑制できる。
次に、第2の実施形態の書込リクエスト生成処理について図16を用いて説明する。図16は、第2の実施形態の書込リクエスト生成処理のフローチャートを示す図である。
書込リクエスト生成処理は、受信したストリームデータから書込リクエストを生成する処理である。書込リクエスト生成処理は、クライアント11の書込リクエスト生成部20がストリームデータを受信して実行する処理である。
[ステップS11]書込リクエスト生成部20は、受信データからイベントデータを構成する。
[ステップS12]書込リクエスト生成部20は、イベントデータにイベントデータIDを付与する。
[ステップS13]書込リクエスト生成部20は、イベントデータにメタデータを付与して書込リクエスト生成処理を終了する。
次に、第2の実施形態の転送先サーバ決定処理について図17を用いて説明する。図17は、第2の実施形態の転送先サーバ決定処理のフローチャートを示す図である。
転送先サーバ決定処理は、受信したリクエストの転送先を決定する処理である。転送先サーバ決定処理は、転送先サーバ決定部31がリクエストを受信して実行する処理である。
[ステップS21]転送先サーバ決定部31は、受信したリクエストの種別を判定する。転送先サーバ決定部31は、受信したリクエストが書込リクエストであればステップS22にすすみ、検索リクエストであればステップS24にすすみ、読み出しリクエストであればステップS26にすすむ。
[ステップS22]転送先サーバ決定部31は、ミラーリング対象のすべてのサーバを選択する。
[ステップS23]転送先サーバ決定部31は、書込リクエストを選択したサーバに転送して、転送先サーバ決定処理を終了する。
[ステップS24]転送先サーバ決定部31は、任意のサーバを選択する。転送先サーバ決定部31は、ラウンドロビンで、あるいは無作為にサーバを選択してもよいし、サーバの負荷に応じて選択してもよい。
[ステップS25]転送先サーバ決定部31は、検索リクエストを選択したサーバに転送して、転送先サーバ決定処理を終了する。
[ステップS26]転送先サーバ決定部31は、読み出しリクエストに含まれる検索条件を取得する。
[ステップS27]転送先サーバ決定部31は、サーバ情報管理部32からサーバ情報を取得する。
[ステップS28]転送先サーバ決定部31は、ステップS26で取得した検索条件と、ステップS27で取得したサーバ情報に含まれるソートキーとの対応関係を判定する。転送先サーバ決定部31は、検索条件とソートキーと同じ属性である場合に対応関係があると判定する。転送先サーバ決定部31は、検索条件に対応するソートキーがある場合に、ソートキーに対応するサーバの有無を判定する。転送先サーバ決定部31は、ソートキーに対応するサーバがある場合、すなわち検索条件に対応するサーバがある場合に、ステップS29にすすみ、対応するサーバがない場合にステップS30にすすむ。
[ステップS29]転送先サーバ決定部31は、検索条件に対応するサーバを選択する。
[ステップS30]転送先サーバ決定部31は、任意のサーバを選択する。転送先サーバ決定部31は、ラウンドロビンで、あるいは無作為にサーバを選択してもよいし、サーバの負荷に応じて選択してもよい。
[ステップS31]転送先サーバ決定部31は、読み出しリクエストを選択したサーバに転送して、転送先サーバ決定処理を終了する。
次に、第2の実施形態のバッファ制御処理について図18を用いて説明する。図18は、第2の実施形態のバッファ制御処理のフローチャートを示す図である。
バッファ制御処理は、書込用バッファの交換、および書込用バッファへのイベントデータの書き込みをおこなう処理である。バッファ制御処理は、リクエスト受信部40が書込リクエストを受信したことを契機に、バッファ制御部41が実行する処理である。
[ステップS41]バッファ制御部41は、バッファ42とバッファ43の交換条件が成立したか否かを判定する。交換条件は、イベントデータの格納先となるバッファ(書込用バッファ)の空き容量が所定の閾値以下になった場合である。なお、交換条件は、書込用バッファの空き容量が所定の閾値以下になった場合に代えて、あるいはこれに加えて、前回のバッファ42とバッファ43の交換から所定時間が経過した場合などであってもよい。バッファ制御部41は、バッファ42とバッファ43の交換条件が成立した場合にステップS42にすすみ、交換条件が成立しない場合にステップS43にすすむ。
[ステップS42]バッファ制御部41は、書込用バッファについてバッファ42とバッファ43を交換する。これにより、バッファ42とバッファ43のうち書込用バッファはソート用バッファとなり、ソート用バッファは書込用バッファとなる。
[ステップS43]バッファ制御部41は、書込リクエストの対象となったイベントデータを書込用バッファに書き込み、バッファ制御処理を終了する。
次に、第2の実施形態のソート処理について図19を用いて説明する。図19は、第2の実施形態のソート処理のフローチャートを示す図である。
ソート処理は、バッファが蓄積するイベントデータのソートと、ストレージデバイス50へのイベントデータの格納をおこなう処理である。ソート処理は、バッファ42とバッファ43の交換を契機に、ソート部44が実行する処理である。
[ステップS51]ソート部44は、キー情報記憶部45からソートキーを取得する。
[ステップS52]ソート部44は、イベントデータに付されたメタデータを参照して、取得したソートキーでソート用バッファのイベントデータをソートする。さらに、ソート部44は、ソートキーでソートしたイベントデータごとに時系列順にソートする。
[ステップS53]ソート部44は、ソート用バッファから読み出したイベントデータをストレージデバイス50に格納する。
[ステップS54]ソート部44は、ソート用バッファをクリアしてソート処理を終了する。
これにより、ストレージシステム10は、ストレージシステム10における読み出し負荷を低減することができ、ストレージデバイス50に対する書込アクセスと読み出しアクセスとの競合による書込性能の低下を抑制できる。
なお、イベントデータのミラーリングをおこなうサーバの数よりもメタデータの属性の数が多い場合は、ストレージシステム10は、検索条件として用いられる頻度の高いメタデータの属性を、イベントデータのミラーリングをおこなうサーバに割り当てればよい。
なお、第2の実施形態では、クライアント11と、プロキシ13と、サーバ15,16,17をそれぞれ別個の情報処理装置に配置したが、1または2以上の情報処理装置に任意の組合せで配置してもよい。たとえば、1つの情報処理装置がプロキシ13とサーバ15,16,17を実装するものであってもよい。あるいは、1つの情報処理装置がクライアント11とプロキシ13を実装するものであってもよい。
なお、ソート部44は、バッファ42とバッファ43の交換ごとにソートキーによるソート時の昇順と降順とを交互に切り替えてもよい。たとえば、バッファ42をソート用バッファとしたとき、サーバ15は、送信元IPアドレスを「192.168.0.1」,「192.168.0.2」,「192.168.0.3」の順(昇順)にソートする。一方、バッファ43をソート用バッファとしたとき、サーバ15は、送信元IPアドレスを「192.168.0.3」,「192.168.0.2」,「192.168.0.1」の順(降順)にソートする。これにより、ストレージシステム10は、ストレージデバイス50に格納するイベントデータがバッファ交換の前後で同一属性で並ぶことが期待できる。
なお、サーバ15,16,17は、2つのバッファ42,43を備えたが、これに限らず3以上のバッファを備えてローテーションをおこなうものであってもよい。
なお、サーバ15,16,17は、2つのバッファ42,43を備えたが、これに代えて十分な大きさのリングバッファを1つ設けるようにしてもよい。この場合、ソート部44は、リングバッファが所定の閾値を超えて蓄積したイベントデータを対象にしてソートをおこなえばよい。
なお、ストレージシステム10は、サーバ15,16,17ごとにミラーリングをおこなったが、サーバ15が備えるHDD51,52,53ごとにミラーリングをおこなうものであってもよい。この場合、サーバ15は、プロキシ13が備えるリクエストの振り分け機能に代えて、HDD51,52,53へのI/Oリクエストの振り分け機能を有すればよい。また、サーバ15は、HDD51,52,53ごとにバッファを設けてもよいし、HDD51,52,53で共通のバッファを設けるようにしてもよい。
また、ストレージシステム10は、サーバ15,16,17ごとにミラーリングをおこなったが、サーバ15,16,17ごとにレプリケーションをおこなうものであってもよい。また、ストレージシステム10は、サーバ15が備えるHDD51,52,53ごとにレプリケーションをおこなうものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、記憶装置1、クライアント11、プロキシ13、サーバ15,16,17が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 第1属性情報と前記第1属性情報と異なる第2属性情報とに対応するイベントデータと、前記イベントデータの時系列順序を特定可能な時系列情報と、前記第1属性情報と、前記第2属性情報とを含むデータブロックを取得して、第1一時記憶部に前記データブロックを一時蓄積する第1一時蓄積部と、
前記データブロックを取得して、第2一時記憶部に前記データブロックを一時蓄積する第2一時蓄積部と、
前記第1一時記憶部が蓄積した複数の前記データブロックを、前記第1属性情報ごとに並べ替えて第1記憶部に格納する第1格納部と、
前記第2一時記憶部が蓄積した複数の前記データブロックを、前記第2属性情報ごとに並べ替えて第2記憶部に格納する第2格納部と、
を備える記憶装置。
(付記2) 前記第1格納部は、前記第1属性情報ごとに並べ替えた前記データブロックについてさらに、時系列順に並べ替え、
前記第2格納部は、前記第2属性情報ごとに並べ替えた前記データブロックについてさらに、時系列順に並べ替える付記1記載の記憶装置。
(付記3) 同一の前記第1属性情報を含む複数の前記データブロックに対する読み出しリクエストを受け付けた場合に、前記データブロックの読出し対象として前記第1格納部を決定する決定部を備える付記1記載の記憶装置。
(付記4) 同一の前記第2属性情報を含む複数の前記データブロックに対する読み出しリクエストを受け付けた場合に、前記データブロックの読出し対象として前記第2格納部を決定する決定部を備える付記1または付記3記載の記憶装置。
(付記5) 連続する前記第1属性情報を含む複数の前記データブロックに対する読み出しリクエストを受け付けた場合に、前記データブロックの読出し対象として前記第1格納部を決定する決定部を備える付記1記載の記憶装置。
(付記6) 連続する前記第2属性情報を含む複数の前記データブロックに対する読み出しリクエストを受け付けた場合に、前記データブロックの読出し対象として前記第2格納部を決定する決定部を備える付記1または付記5記載の記憶装置。
(付記7)前記イベントデータは、ストリームデータから構成された所要の属性を有する一塊のデータである付記1記載の記憶装置。
(付記8) コンピュータに、
第1属性情報と前記第1属性情報と異なる第2属性情報とに対応するイベントデータと、前記イベントデータの時系列順序を特定可能な時系列情報と、前記第1属性情報と、前記第2属性情報とを含むデータブロックを、第1一時記憶部に一時蓄積し、
第2一時記憶部に前記データブロックを一時蓄積し、
前記第1一時記憶部が蓄積した複数の前記データブロックを、前記第1属性情報ごとに並べ替えて第1記憶部に格納し、
前記第2一時記憶部が蓄積した複数の前記データブロックを、前記第2属性情報ごとに並べ替えて第2記憶部に格納する、
処理を実行させるデータ記憶プログラム。
(付記9) コンピュータが、
第1属性情報と前記第1属性情報と異なる第2属性情報とに対応するイベントデータと、前記イベントデータの時系列順序を特定可能な時系列情報と、前記第1属性情報と、前記第2属性情報とを含むデータブロックを、第1一時記憶部に一時蓄積し、
第2一時記憶部に前記データブロックを一時蓄積し、
前記第1一時記憶部が蓄積した複数の前記データブロックを、前記第1属性情報ごとに並べ替えて第1記憶部に格納し、
前記第2一時記憶部が蓄積した複数の前記データブロックを、前記第2属性情報ごとに並べ替えて第2記憶部に格納する、
処理を実行するデータ記憶方法。
(付記10) ストレージ装置へのアクセス要求をおこなう第1情報処理装置と、前記ストレージ装置のうち第1ストレージ装置へのアクセス制御をおこなう第2情報処理装置と、前記ストレージ装置のうち第2ストレージ装置へのアクセス制御をおこなう第3情報処理装置と、前記第2情報処理装置と前記第3情報処理装置とに前記アクセス要求を転送可能な第4情報処理装置とを備えるストレージシステムにおいて、
前記第1情報処理装置は、
ストリームデータから所定の属性を有するイベントデータを構成し、前記イベントデータと、前記イベントデータを識別する識別情報と、前記属性に関する属性情報とを含むデータブロックの前記ストレージ装置への書き込みリクエストを生成する書込リクエスト生成部を備え、
前記第4情報処理装置は、
前記第1情報処理装置から取得した前記書込リクエストを前記第2情報処理装置と前記第3情報処理装置とに転送する書込リクエスト転送部を備え、
前記第2情報処理装置は、
取得した前記書込リクエストを受けて第1一時記憶部に複数の前記データブロックを一時蓄積し、前記第1一時記憶部が蓄積した前記データブロックを、前記属性情報のうち第1属性情報ごとに並べ替えて前記第1ストレージ装置に格納する第1格納部を備え、
前記第3情報処理装置は、
取得した前記書込リクエストを受けて第2一時記憶部に複数の前記データブロックを一時蓄積し、前記第2一時記憶部が蓄積した前記データブロックを、前記属性情報のうち前記第1属性情報と異なる第2属性情報ごとに並べ替えて前記第2ストレージ装置に格納する第2格納部を備えるストレージシステム。
(付記11) 前記第1情報処理装置は、
前記ストレージ装置が格納する前記データブロックの読み出しリクエストを生成する読み出しリクエスト生成部を備え、
前記第4情報処理装置は、
前記第2情報処理装置と前記第3情報処理装置のうちから前記読み出しリクエストが読出し対象とする前記データブロックの属性情報にもとづいていずれか一方を選択して、前記第1情報処理装置から取得した前記読み出しリクエストを転送する読み出しリクエスト転送部を備える付記10記載のストレージシステム。
(付記12) 前記第1格納部は、前記第1属性情報ごとに並べ替えた前記データブロックについてさらに、時系列順に並べ替え、
前記第2格納部は、前記第2属性情報ごとに並べ替えた前記データブロックについてさらに、時系列順に並べ替える付記10記載のストレージシステム。
(付記13) 前記第4情報処理装置は、前記第1属性情報を含む読み出しリクエストを受け付けた場合に、前記読み出しリクエストを前記第2情報処理装置に転送し、前記第2属性情報を含む読み出しリクエストを受け付けた場合に、前記読み出しリクエストを前記第3情報処理装置に転送する付記10記載のストレージシステム。
(付記14) 前記第3情報処理装置は、前記第2情報処理装置に含まれる付記10記載のストレージシステム。
(付記15) 前記第4情報処理装置は、前記第2情報処理装置に含まれる付記10または付記14記載のストレージシステム。
1 記憶装置
2 第1一時蓄積部
3 第1一時記憶部
4 第2一時蓄積部
5 第2一時記憶部
6 第1格納部
7 第1記憶部
8 第2格納部
9 第2記憶部
10 ストレージシステム
11 クライアント
12,14 ネットワーク
13 プロキシ
15,16,17 サーバ
20 書込リクエスト生成部
21 データ受信部
22 イベントデータ構成部
23 イベントデータID付与部
24 メタデータ付与部
25 検索リクエスト生成部
26 読み出しリクエスト生成部
27,33 リクエスト送信部
28,34 リプライ受信部
30,40 リクエスト受信部
31 転送先サーバ決定部
32 サーバ情報管理部
35,48 リプライ送信部
41 バッファ制御部
42,43 バッファ
44 ソート部
45 キー情報記憶部
46 検索部
47 読み出し/書込部
50 ストレージデバイス
51,52,53,103 HDD
100 制御部
101 プロセッサ
102 RAM

Claims (7)

  1. 第1属性情報と前記第1属性情報と異なる第2属性情報とに対応するイベントデータと、前記イベントデータの時系列順序を特定可能な時系列情報と、前記第1属性情報と、前記第2属性情報とを含むデータブロックを取得して、第1一時記憶部に前記データブロックを一時蓄積する第1一時蓄積部と、
    前記データブロックを取得して、第2一時記憶部に前記データブロックを一時蓄積する第2一時蓄積部と、
    前記第1一時記憶部の空き容量が所定の閾値以下になった場合、前記第1一時記憶部が蓄積した複数の前記データブロックを、前記第1属性情報ごとに並べ替えて第1記憶部に格納する第1格納部と、
    前記第2一時記憶部の空き容量が所定の閾値以下になった場合、前記第2一時記憶部が蓄積した複数の前記データブロックを、前記第2属性情報ごとに並べ替えて第2記憶部に格納する第2格納部と、
    を備える記憶装置。
  2. 前記第1格納部は、前記第1属性情報ごとに並べ替えた前記データブロックについてさらに、時系列順に並べ替え、
    前記第2格納部は、前記第2属性情報ごとに並べ替えた前記データブロックについてさらに、時系列順に並べ替える請求項1記載の記憶装置。
  3. 同一の前記第1属性情報を含む複数の前記データブロックに対する読み出しリクエストを受け付けた場合に、前記データブロックの読出し対象として前記第1格納部を決定する決定部を備える請求項1記載の記憶装置。
  4. 同一の前記第2属性情報を含む複数の前記データブロックに対する読み出しリクエストを受け付けた場合に、前記データブロックの読出し対象として前記第2格納部を決定する決定部を備える請求項1または請求項3記載の記憶装置。
  5. 前記イベントデータは、ストリームデータから構成された所要の属性を有する一塊のデータである請求項1記載の記憶装置。
  6. コンピュータに、
    第1属性情報と前記第1属性情報と異なる第2属性情報とに対応するイベントデータと、前記イベントデータの時系列順序を特定可能な時系列情報と、前記第1属性情報と、前記第2属性情報とを含むデータブロックを、第1一時記憶部に一時蓄積し、
    第2一時記憶部に前記データブロックを一時蓄積し、
    前記第1一時記憶部の空き容量が所定の閾値以下になった場合、前記第1一時記憶部が蓄積した複数の前記データブロックを、前記第1属性情報ごとに並べ替えて第1記憶部に格納し、
    前記第2一時記憶部の空き容量が所定の閾値以下になった場合、前記第2一時記憶部が蓄積した複数の前記データブロックを、前記第2属性情報ごとに並べ替えて第2記憶部に格納する、
    処理を実行させるデータ記憶プログラム。
  7. コンピュータが、
    第1属性情報と前記第1属性情報と異なる第2属性情報とに対応するイベントデータと、前記イベントデータの時系列順序を特定可能な時系列情報と、前記第1属性情報と、前記第2属性情報とを含むデータブロックを、第1一時記憶部に一時蓄積し、
    第2一時記憶部に前記データブロックを一時蓄積し、
    前記第1一時記憶部の空き容量が所定の閾値以下になった場合、前記第1一時記憶部が蓄積した複数の前記データブロックを、前記第1属性情報ごとに並べ替えて第1記憶部に格納し、
    前記第2一時記憶部の空き容量が所定の閾値以下になった場合、前記第2一時記憶部が蓄積した複数の前記データブロックを、前記第2属性情報ごとに並べ替えて第2記憶部に格納する、
    処理を実行するデータ記憶方法。

JP2014071734A 2014-03-31 2014-03-31 記憶装置、データ記憶プログラム、およびデータ記憶方法 Expired - Fee Related JP6248761B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014071734A JP6248761B2 (ja) 2014-03-31 2014-03-31 記憶装置、データ記憶プログラム、およびデータ記憶方法
US14/670,466 US9703506B2 (en) 2014-03-31 2015-03-27 Storage apparatus and data storage method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014071734A JP6248761B2 (ja) 2014-03-31 2014-03-31 記憶装置、データ記憶プログラム、およびデータ記憶方法

Publications (2)

Publication Number Publication Date
JP2015195067A JP2015195067A (ja) 2015-11-05
JP6248761B2 true JP6248761B2 (ja) 2017-12-20

Family

ID=54190410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014071734A Expired - Fee Related JP6248761B2 (ja) 2014-03-31 2014-03-31 記憶装置、データ記憶プログラム、およびデータ記憶方法

Country Status (2)

Country Link
US (1) US9703506B2 (ja)
JP (1) JP6248761B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7452031B2 (ja) * 2020-01-27 2024-03-19 富士通株式会社 情報処理装置,情報処理システム及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
JP2002007450A (ja) 2000-06-16 2002-01-11 Matsushita Electric Works Ltd 検索支援システム
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
US7213116B2 (en) 2005-03-24 2007-05-01 Hitachi, Ltd. Method and apparatus for mirroring objects between storage systems
JP4755487B2 (ja) * 2005-11-24 2011-08-24 株式会社日立製作所 データ読出しシステム、データ読出し装置およびデータ読出し方法
JP4760877B2 (ja) * 2008-08-27 2011-08-31 オンキヨー株式会社 再生装置及び再生プログラム
JP5331555B2 (ja) * 2009-04-23 2013-10-30 株式会社日立製作所 データ移行システムおよびデータ移行方法
US8938479B1 (en) * 2010-04-01 2015-01-20 Symantec Corporation Systems and methods for dynamically selecting a logical location for an index
JP2013046219A (ja) * 2011-08-24 2013-03-04 Sony Corp 情報処理装置、ビューワ装置及び情報処理方法

Also Published As

Publication number Publication date
US9703506B2 (en) 2017-07-11
US20150277796A1 (en) 2015-10-01
JP2015195067A (ja) 2015-11-05

Similar Documents

Publication Publication Date Title
CN106446159B (zh) 一种存储文件的方法、第一虚拟机及名称节点
CN103329111B (zh) 一种基于块存储的数据处理方法、装置及系统
US10708355B2 (en) Storage node, storage node administration device, storage node logical capacity setting method, program, recording medium, and distributed data storage system
CN103827723A (zh) 大规模存储系统
JP2007156815A (ja) データマイグレーション方法及びシステム
JPWO2008114441A1 (ja) ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
JP5405530B2 (ja) 分散データストアシステムおよび障害復旧方法
US20180364948A1 (en) Data Processing Method, Related Device, and Storage System
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US20160147478A1 (en) System, method and relay device
US11507484B2 (en) Ethod and computer storage node of shared storage system for abnormal behavior detection/analysis
US12072892B2 (en) Data ingestion with spatial and temporal locality
JP2015161999A (ja) ストレージ装置,制御装置及び制御プログラム
JP6248761B2 (ja) 記憶装置、データ記憶プログラム、およびデータ記憶方法
JP5104529B2 (ja) 分析支援プログラム、分析支援方法および分析支援装置
US11334487B2 (en) Cache sharing in virtual clusters
US7257680B2 (en) Storage system including shared memory and plural disk drives, processors, and shared memory control units
US10788995B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
US11249666B2 (en) Storage control apparatus
JP6127754B2 (ja) プログラム、排他制御要求振り分け方法およびシステム
JP6260088B2 (ja) 仮想ファイルアクセスシステム、仮想ファイルアクセス方法、及び、仮想ファイルアクセスプログラム
JP6891603B2 (ja) バックアップシステム、ストレージ装置、データ転送方法及びプログラム
JP2011159106A (ja) データベースシステム
JP6736932B2 (ja) 情報処理システム、ストレージ装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6248761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees