JPWO2019111303A1 - データ書き込み装置及び方法 - Google Patents

データ書き込み装置及び方法 Download PDF

Info

Publication number
JPWO2019111303A1
JPWO2019111303A1 JP2018520640A JP2018520640A JPWO2019111303A1 JP WO2019111303 A1 JPWO2019111303 A1 JP WO2019111303A1 JP 2018520640 A JP2018520640 A JP 2018520640A JP 2018520640 A JP2018520640 A JP 2018520640A JP WO2019111303 A1 JPWO2019111303 A1 JP WO2019111303A1
Authority
JP
Japan
Prior art keywords
data
secondary storage
writing
write
storage devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018520640A
Other languages
English (en)
Other versions
JP6377304B1 (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.)
Toyo Corp
Original Assignee
Toyo Corp
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 Toyo Corp filed Critical Toyo Corp
Application granted granted Critical
Publication of JP6377304B1 publication Critical patent/JP6377304B1/ja
Publication of JPWO2019111303A1 publication Critical patent/JPWO2019111303A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • 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

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)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ書き込み装置(10)は、二次記憶装置(20a〜20c)と、データを取得するインタフェース回路(30)と、取得されたデータを二次記憶装置(20a〜20c)のいずれかに書き込むコンピュータ装置(40)とを備える。コンピュータ装置(40)は、アプリケーション(50)として、二次記憶装置(20a〜20c)のそれぞれに対応する書き込みプロセス(51a〜51c)と、二次記憶装置(20a〜20c)のそれぞれについて書き込みが完了したデータの量を検出する監視プロセス(53)と、二次記憶装置(20a〜20c)のそれぞれについての依頼データ量と完了データ量とに基づいて次に書き込む対象となる二次記憶装置を選択し、対応する書き込みプロセスに対して書き込みを指示するデータ振り分けプロセス(52)とを含む。

Description

本発明は、データ書き込み装置及び方法に関し、特に、複数の二次記憶装置にデータを書き込むデータ書き込み装置及び方法に関する。
イーサネット(登録商標)等の通信ネットワークにおける通信障害の対応に備えて、通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャできる装置が必要とされる。そのために、発生したデータを取りこぼしなく高速に二次記憶装置に記録することが求められる。
従来、二次記憶装置に高速に書き込む技術として、並列二次記憶装置を用いたデータ書き込み方法が提案されている(例えば、特許文献1参照)。特許文献1では、二次記憶装置を並列化し、書き込み要求があったときに、複数の二次記憶装置のうちの最小負荷量のものにデータを書き込む。これにより、アクセス負荷量の偏りがなく、並列二次記憶装置のデータ入出力を高速化するというものである。
特開平9−54658号公報
しかしながら、特許文献1の技術では、「アクセス負荷管理装置」、「データ位置決定装置」及び「データ位置管理装置」等の独自のハードウェアを必要とし、実現するのに多大な時間とコストを要する。
なお、特許文献1には、「汎用のCPUないしマイクロプロセッサで実現することもできる」と記載されているが(明細書の段落0026)、具体的な実現方法は開示されておらず、長期間に渡って極めて高速にデータ書き込みをできる保証はない。例えば、特許文献1の技術では、100Gbpsという極めて高速な通信ネットワークを流れる全てのパケットを10分以上という長期間に渡って取りこぼしなく二次記憶装置に記録することは困難である。
また、一般に、二次記憶装置の多くは、時間的に書き込み性能が変化し、長期間に渡って安定した高い書き込み性能を実現できないという問題もある。図6は、SSD(Solid State Drive)の書き込み性能のテスト結果を示すデータ図である。横軸は時間(秒)、縦軸は書き込み性能(MB/s)を示す。このテストでは、コンピュータ装置における処理負荷が変動しない状態にしたうえで、一定速度で発生するデータをコンピュータ装置からSSDに書き込み続け、書き込み性能(MB/s)の時間変化を計測した。このテスト結果から分かるように、二次記憶装置への長期間の書き込みにおいては、間欠的に書き込み性能が劣化する現象が現れる。よって、従来の技術では、高速に、かつ、長期間に渡って取りこぼしなく二次記憶装置にデータを書き込むことは困難である。
そこで、本発明は、このような状況に鑑みてなされたものであり、独自のハードウェアを必要とすることなく、かつ、例えば100Gbps等の高速の通信ネットワークを流れる全てのパケットを長期間に渡って取りこぼしなく二次記憶装置に記録することができるデータ書き込み装置及び方法を提供することを目的とする。
上記目的を達成するために、本発明の一形態に係るデータ書き込み装置は、複数の二次記憶装置にデータを書き込むデータ書き込み装置であって、複数の二次記憶装置と、データを取得するインタフェース回路と、前記インタフェース回路で取得されたデータを前記複数の二次記憶装置のいずれかに書き込むコンピュータ装置とを備え、前記コンピュータ装置は、ソフトウェアを保持するメモリと、前記ソフトウェアを実行するプロセッサとを備え、前記ソフトウェアは、マルチプロセスのオペレーティングシステムと、前記オペレーティングシステムの管理下で実行されるアプリケーションとを含み、前記アプリケーションは、前記複数の二次記憶装置のそれぞれに対応して設けられた複数の書き込みプロセスであって、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼する複数の書き込みプロセスと、前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出する監視プロセスと、前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスが前記オペレーティングシステムに書き込みを依頼したデータの量である依頼データ量と、前記監視プロセスによって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を前記複数の二次記憶装置の中から選択し、選択した前記二次記憶装置に対応する前記書き込みプロセスに対して、前記インタフェース回路で取得されたデータを対応する前記二次記憶装置に書き込む指示をするデータ振り分けプロセスとを含み、前記複数の書き込みプロセスのそれぞれは、前記データ振り分けプロセスからの指示に従って、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼する。
また、上記目的を達成するために、本発明の一形態に係るデータ書き込み方法は、インタフェース回路で取得されたデータをコンピュータ装置によって複数の二次記憶装置に書き込むデータ書き込み方法であって、前記複数の二次記憶装置のそれぞれに対応して設けられた書き込みプロセスが、対応する前記二次記憶装置へのデータの書き込みをオペレーティングシステムに依頼するステップと、監視プロセスが、前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出するステップと、データ振り分けプロセスが、前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスが前記オペレーティングシステムに書き込みを依頼したデータの量である依頼データ量と、前記監視プロセスによって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を前記複数の二次記憶装置の中から選択し、選択した前記二次記憶装置に対応する前記書き込みプロセスに対して、前記インタフェース回路で取得されたデータを対応する前記二次記憶装置に書き込む指示をするステップとを含み、複数の前記書き込みプロセスのそれぞれは、前記データ振り分けプロセスからの指示に従って、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼し、前記オペレーティングシステムは、マルチプロセスのオペレーティングシステムであり、前記複数の書き込みプロセス、前記監視プロセス、前記データ振り分けプロセスは、前記オペレーティングシステムの管理下で実行されるプロセスであり、前記オペレーティングシステム、前記複数の書き込みプロセス、前記監視プロセス、及び、前記データ振り分けプロセスは、前記コンピュータ装置が備えるプロセッサによって実行されるソフトウェアである。
本発明により、独自のハードウェアを必要とすることなく、かつ、例えば100Gbps等の高速の通信ネットワークを流れる全てのパケットを長期間に渡って取りこぼしなく二次記憶装置に記録することができるデータ書き込み装置及び方法が実現される。
図1は、実施の形態に係るデータ書き込み装置の構成を示すブロック図である。 図2は、実施の形態に係るデータ書き込み装置におけるプロセスの処理内容及びプロセス間通信を示す図である。 図3は、実施の形態に係るデータ書き込み装置におけるデータ振り分けプロセスによる各書き込みプロセスでの処理中のデータ量の算出例を示すデータ構造図である。 図4は、実施の形態に係るデータ書き込み装置におけるデータの流れを示す概念図である。 図5は、実験に用いたデータ書き込み装置の外観図である。 図6は、SSDの書き込み性能のテスト結果を示すデータ図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、製造会社、型番、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する。
図1は、本発明の実施の形態に係るデータ書き込み装置10の構成を示すブロック図である。
データ書き込み装置10は、複数の二次記憶装置20a〜20cにデータを書き込む装置であり、本実施の形態では、100Gbpsのイーサネット(登録商標)を物理層とする通信ネットワークを流れる全てのパケットを長期間に渡って取りこぼしなく二次記憶装置20a〜20cに記録する装置である。なお、データ書き込み装置10は、二次記憶装置20a〜20cから、書き込んだデータを読み出して各種処理(表示、抽出、分析等)をする機能も有するが、以下では、特徴的な書き込み機能について説明する。
このデータ書き込み装置10は、図1に示されるように、複数の二次記憶装置20a〜20cと、データ(ここでは、通信ネットワーク12を流れる全てのパケット)を取得するインタフェース回路30と、インタフェース回路30で取得されたデータを複数の二次記憶装置20a〜20cのいずれかに書き込むコンピュータ装置40とを備える。
二次記憶装置20a〜20cは、データを保存する不揮発性記憶装置であり、SSD又はHDD(Hard Disk Drive)である。例えば、二次記憶装置20a〜20cのそれぞれは、8個の400GByte容量のSAS(Serial Attached SCSI)規格に対応したSSDで構成されるRAID(Redundant Arrays of Inexpensive Disks)である。
インタフェース回路30は、取得したデータを一時的に保持するFIFO(First In First Out)方式の第1バッファメモリ31を有し、第1バッファメモリ31に保持されたデータをメモリ42にDMA(Direct Memory Access)転送する。インタフェース回路30は、例えば、100Gbpsのイーサネット(登録商標)用のネットワークアダプタである。
コンピュータ装置40は、ソフトウェア42bを保持するメモリ42、ソフトウェア42bを実行するプロセッサ41、及び、二次記憶装置20a〜20cのデータ入出力を制御するRAIDコントローラ43a〜43cを備える。
メモリ42は、RAM(Random Access Memory)であり、HDD(図示せず)等からロードされた実行形式のソフトウェア42bを保持するだけでなく、インタフェース回路30からDMA転送されてきたデータを一時的に保持するデータ領域であるFIFO(First In First Out)方式の第2バッファメモリ42aを有する。メモリ42は、例えば、RDIMM(Registerd DIMM(Dual Inline Memory Module))で構成される。
プロセッサ41は、メモリ42に保持されたソフトウェア42bを実行するCPUで構成される。
RAIDコントローラ43a〜43cは、それぞれ、二次記憶装置20a〜20cとコンピュータ装置40とを接続し、二次記憶装置20a〜20cのデータ入出力を制御する。
なお、本実施の形態では、高速なデータ転送を確保するために、インタフェース回路30、プロセッサ41、及び、RAIDコントローラ43a〜43cは、例えば、PCI Express 3.0(Gen3)規格対応のバスで接続される。また、プロセッサ41とメモリ42とは、DDR4(Double Data Rate 4)規格に対応したデータ転送方式で接続される。また、RAIDコントローラ43a〜43cと二次記憶装置20a〜20cとは、SAS規格に対応した転送バスで接続される。
メモリ42に保持されたソフトウェア42bは、マルチプロセスのオペレーティングシステム(以下、「OS」ともいう)60と、OS60の管理下で実行されるソフトウェアであるアプリケーション50とを含む。
OS60は、コンピュータ装置40を動作させるためのマルチプロセス(つまり、マルチタスク)の基本ソフトウェアであり、ここでは、アプリケーションとは区別されるカーネル・ソフトウェアである。例えば、OS60には、二次記憶装置20a〜20cのデータ入出力を行うプロセス(デバイスドライバ)等が含まれる。OS60は、例えば、Microsoft社のWindows(登録商標)、Linux(登録商標)等である。
アプリケーション50は、OS60の管理下で実行されるソフトウェアであり、二次記憶装置20a〜20cのそれぞれに対応する書き込みプロセス51a〜51c、監視プロセス53、及び、データ振り分けプロセス52を含む。
書き込みプロセス51a〜51cは、それぞれ、二次記憶装置20a〜20cに対応して設けられ、対応する二次記憶装置20a〜20cへのデータの書き込みをOS60に依頼するプロセスである。具体的には、書き込みプロセス51a〜51cのそれぞれは、データ振り分けプロセス52からの指示に従って、対応する二次記憶装置20a〜20cへのデータの書き込みをOS60に依頼する。つまり、書き込みプロセス51a〜51cのそれぞれは、指示された書き込みデータを独立して処理し、高速化を図っている。
このとき、書き込みプロセス51a〜51cのそれぞれは、対応する二次記憶装置20a〜20cに対して、空き容量を確認することなく、データを書き込むようにOS60に依頼する。もし、空き容量がない場合には、例えば、上書き保存するようにデータを書き込む。なお、書き込みプロセス51a〜51cのそれぞれは、対応する二次記憶装置20a〜20cへのデータの書き込みをOS60に依頼した場合に、依頼データ量を更新してデータ振り分けプロセス52に通知する。
監視プロセス53は、二次記憶装置20a〜20cのそれぞれについて、対応する書き込みプロセス51a〜51cから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出するプロセスである。つまり、書き込みの監視を独立して行うプロセスである。
データ振り分けプロセス52は、二次記憶装置20a〜20cのそれぞれについて、対応する書き込みプロセス51a〜51cがOS60に書き込みを依頼したデータの量である依頼データ量と、監視プロセス53によって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を複数の二次記憶装置20a〜20cの中から選択し、選択した二次記憶装置に対応する書き込みプロセスに対して、インタフェース回路30で取得されたデータを、対応する二次記憶装置に書き込む指示をするプロセスである。
より詳しくは、データ振り分けプロセス52は、書き込む対象となる二次記憶装置として、依頼データ量から完了データ量を差し引いて得られる値が最も小さい書き込みプロセスに対応する二次記憶装置を複数の二次記憶装置20a〜20cの中から選択する。具体的には、データ振り分けプロセス52は、複数の書き込みプロセス51a〜51cのそれぞれから受け取った更新後の依頼データ量から、監視プロセス53から受け取った完了データ量を差し引き、得られた値を処理中のデータ量とし、処理中のデータ量が最も小さい書き込みプロセスに対応する二次記憶装置を、書き込み性能が最も高い二次記憶装置とみなし、複数の二次記憶装置20a〜20cの中から選択する。これにより、複数の二次記憶装置20a〜20cにおけるロードバランスが図られ、長期間に渡って高い書き込み性能が維持される。なお、「書き込み性能が最も高いとみなす」とは、その時点で最も速やかに書き込み処理を行える可能性があると判断することを意味する。
なお、データ振り分けプロセス52は、処理中のデータ量が最も小さい書き込みプロセスが2つ以上である(つまり、処理中のデータ量が最小で、かつ、同数の書き込みプロセスが2つ以上存在する)場合には、それら2つ以上の書き込みプロセスのいずれかに対応する二次記憶装置を書き込み対象として選択する。そのときに、完了データ量の少ない書き込みプロセスに対応する二次記憶装置を優先して選択してもよい。
次に、以上のように構成される本実施の形態に係るデータ書き込み装置10の動作について、説明する。
図2は、本実施の形態に係るデータ書き込み装置10におけるプロセスの処理内容及びプロセス間通信(つまり、データ書き込み方法)を示す図である。
データ振り分けプロセス52は、書き込み対象のデータを取得する(S1)。つまり、メモリ42の第2バッファメモリ42aに、二次記憶装置20a〜20cへの書き込み対象となるデータ(ここでは、所定量のデータであるブロック)が存在するか否かを確認し、存在する場合に、次のステップS2に進む。
ステップS2では、データ振り分けプロセス52は、書き込みプロセス51a〜51cのそれぞれについて、処理中のデータ量を算出する(S2)。処理中のデータ量は、書き込みプロセスがOS60に二次記憶装置への書き込みを依頼したデータの量(ここでは、ブロック数)である依頼データ量から、二次記憶装置への書き込みが完了したデータの量である完了データ量(ここでは、ブロック数)を差し引いて得られる値である。依頼データ量については、書き込みプロセス51a〜51cのそれぞれから取得する。完了データ量については、監視プロセス53から取得する。
図3は、データ振り分けプロセス52による各書き込みプロセス51a〜51cでの処理中のデータ量の算出例を示すデータ構造図である。
データ振り分けプロセス52は、書き込みプロセス51a〜51cのそれぞれについて、書き込みプロセス51a〜51cから取得した依頼データ量(単位はブロック数)から、監視プロセス53から取得した完了データ量(単位はブロック数)を差し引くことで、処理中のデータ量(単位はブロック数)を算出する。図3に示される例では、書き込みプロセス51a〜51cの処理中のデータ量(単位はブロック数)として、それぞれ、「1」、「0」、「3」が算出される。
そして、データ振り分けプロセス52は、処理中のデータ量が最も小さい書き込みプロセスを、次に書き込む対象となる二次記憶装置に対応する書き込みプロセスとして選択し、選択した書き込みプロセスのキューに、第2バッファメモリ42aに存在するブロックのアドレスを格納することで、対応する二次記憶装置へのデータの書き込みを指示する(S3)。図3に示される例では、データ振り分けプロセス52は、処理中のデータ量が最も小さい(ここでは、「0」である)書き込みプロセス51bを選択し、選択した書き込みプロセス51bのキューに、書き込み対象データ、つまり、第2バッファメモリ42aに存在するブロックの第2バッファメモリ42aでのアドレスを格納する(つまり、キューにデータをつめる)ことで、対応する二次記憶装置20bへのデータの書き込みを指示する。
ステップS3の処理を終えると、データ振り分けプロセス52は、ステップS1に戻り、同様の処理を繰り返す。
書き込みプロセス51a〜51cのそれぞれは、自分のキューに、書き込み対象のブロックのアドレスが格納されると(S11)、書き込み先となる二次記憶装置に対応するファイルD11を用意し(S12)、OS60に対して、ファイルD11への書き込みを依頼する(S13)。ここで、ファイルD11は、対応する二次記憶装置を示す論理ファイルであり、例えば、OS60が管理するファイルシステムにおけるディレクトリファイルである。このとき、書き込みプロセス51a〜51cのそれぞれは、対応する二次記憶装置20a〜20cに対して、空き容量を確認することなく、データを書き込むようにOS60に依頼する。
そして、書き込みプロセス51a〜51cのそれぞれは、対応する二次記憶装置20a〜20cへのデータの書き込みをOS60に依頼した後に、内部に保持している(つまり、自分の)依頼データ量を更新し(ここでは、書き込んだブロック数である「1」だけインクリメントし)、更新後の依頼データ量をデータ振り分けプロセス52に通知する(S14)。
ステップS14の処理を終えると、書き込みプロセス51a〜51cのそれぞれは、ステップS11に戻り、同様の処理を繰り返す。
書き込みの依頼を受けたOS60は、依頼してきた書き込みプロセスのキューに格納されたアドレスが示すブロックを第2バッファメモリ42aから読み出し、指定されたファイルD11(つまり、指定された二次記憶装置)に書き込む(S21)。
監視プロセス53は、OS60から、二次記憶装置への書き込み情報を取得することで(S31)、OS60が二次記憶装置への書き込みを完了したか否かを判断し(S32)、完了していないと判断した場合には(S32でno)、しばらく待機した後に(S33)、書き込み情報の取得(S31)と判断(S32)とを繰り返す。
二次記憶装置への書き込みを完了したと判断した場合には(S32でyes)、監視プロセス53は、内部に保持している、完了した書き込みプロセスに対応する完了データ量を更新し(ここでは、書き込みが完了したブロック数である「1」だけインクリメントし)、更新後の完了データ量をデータ振り分けプロセス52に通知する(S34)。その後、監視プロセス53は、再び、ステップS31からの処理を繰り返す。
図4は、本実施の形態に係るデータ書き込み装置10におけるデータの流れを示す概念図である。
いま、第2バッファメモリ42aには、未書き込みのデータとして、ブロック5〜7が保存されており、それらのうち、最も古いデータであるブロック5が書き込みの対象となっている。
また、書き込みプロセス51a〜51cの処理中のデータ(単位はブロック数)は、それぞれ、「1」、「0」、「3」である。具体的には、書き込みプロセス51aについては、そのキューに、ブロック2(より詳しくは、第2バッファメモリ42aにおけるブロック2のアドレス)が格納され、書き込みプロセス51aからの依頼を受けたOS60によって、ブロック2の二次記憶装置20aへの書き込み処理が進行している。書き込みプロセス51bについては、そのキューにはデータが格納されておらず、二次記憶装置20bは、アイドル状態である。書き込みプロセス51cについては、そのキューに、ブロック1、3及び4(より詳しくは、第2バッファメモリ42aにおけるブロック1、3及び4のアドレス)が格納され、書き込みプロセス51cからの依頼を受けたOS60によって、ブロック1、3及び4の二次記憶装置20aへの書き込み処理が進行している。
このような状況において、書き込みプロセス51a〜51cのそれぞれは、データの書き込みをOS60に依頼した場合に、最新の依頼データ量(つまり、総依頼データ量)をデータ振り分けプロセス52に通知する。また、監視プロセス53は、OS60による二次記憶装置20a〜20cへの書き込みを監視することで、書き込みプロセスごとの最新の完了データ量(つまり、総完了データ量)をデータ振り分けプロセス52に通知する。
よって、データ振り分けプロセス52は、書き込みプロセス51a〜51cのそれぞれについて、書き込みプロセス51a〜51cから取得した依頼データ量から、監視プロセス53から取得した完了データ量を差し引くことで、処理中のデータ量を算出し、処理中のデータ量が最も小さい書き込みプロセスのキューに、第2バッファメモリ42aに存在するブロック(より詳しくは、第2バッファメモリ42aにおけるブロックのアドレス)を格納する。図4に示される例では、データ振り分けプロセス52は、第2バッファメモリ42aのブロック5(より詳しくは、第2バッファメモリ42aにおけるブロック5のアドレス)を、書き込みプロセス51bのキューに格納する。
これにより、処理中のデータ量が最も小さい書き込みプロセスに対応する二次記憶装置が、書き込み性能が最も高い二次記憶装置とみなして、書き込みプロセス51bのキューにデータが保存され、そのデータがOS60によって二次記憶装置20bに書き込まれ、ロードバランスが図られる。
次に、本実施の形態に係るデータ書き込み装置10を用いて、100Gbpsのイーサネット(登録商標)を流れるパケットをキャプチャする実験を行ったので、以下、その実験について説明する。なお、実験では、1つのRAIDコントローラについて2つの二次記憶装置を接続し、合計6個の二次記憶装置を用いた。
実験に用いたデータ書き込み装置10は、図5の外観図に示されるように、キーボード及びディスプレイ等のユーザインタフェースも含めて一体化されたポータブル型システムとして構築されたものであり、その主要なハードウェア構成は、次の通りである。
二次記憶装置20a〜20cのそれぞれは、4個の800GByte容量のSAS規格に対応したSSDで構成される。プロセッサ41は、2個のIntel社のモデルXeon E5−2637 v3のプロセッサで構成される。メモリ42は、4個の16GByte容量の2133MHz対応のRDIMMで構成される。RAIDコントローラ43a〜43cのそれぞれ、LSI社のSAS規格に対応したRAID Cardで構成される。インタフェース回路30は、Accolade technology社のモデルANIC−200K 100G(100Gbpsのイーサネット(登録商標)用のネットワークアダプタ)で構成される。インタフェース回路30、プロセッサ41、及び、RAIDコントローラ43a〜43cは、PCI Express 3.0(Gen3)規格対応のバスで接続され、プロセッサ41とメモリ42とは、DDR4規格に対応したデータ転送方式で接続され、RAIDコントローラ43a〜43cと二次記憶装置20a〜20cとは、SAS規格に対応した転送バスで接続される。
OS60は、Linux(登録商標)(Ubuntu 16.04.01)である。アプリケーション50は、上記実施の形態で説明した機能をもつ書き込みプロセス51a〜51c、データ振り分けプロセス52及び監視プロセス53で構成される。
以上のように構成されるデータ書き込み装置10を用いて、100Gbpsのイーサネット(登録商標)を流れるパケットを連続的にキャプチャするテストを行った結果、48時間の連続キャプチャを、取りこぼし率0%で、実現した。
以上のように、本実施の形態に係るデータ書き込み装置10は、複数の二次記憶装置20a〜20cにデータを書き込む装置であって、複数の二次記憶装置20a〜20cと、データを取得するインタフェース回路30と、インタフェース回路30で取得されたデータを複数の二次記憶装置20a〜20cのいずれかに書き込むコンピュータ装置40とを備える。コンピュータ装置40は、ソフトウェア42bを保持するメモリ42と、ソフトウェア42bを実行するプロセッサ41とを備える。ソフトウェア42bは、マルチプロセスのオペレーティングシステム60と、オペレーティングシステム60の管理下で実行されるアプリケーション50とを含む。アプリケーション50は、複数の二次記憶装置20a〜20cのそれぞれに対応して設けられた複数の書き込みプロセスであって、対応する二次記憶装置20a〜20cへのデータの書き込みをオペレーティングシステム60に依頼する複数の書き込みプロセス51a〜51cと、複数の二次記憶装置20a〜20cのそれぞれについて、対応する書き込みプロセス51a〜51cから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出する監視プロセス53と、複数の二次記憶装置20a〜20cのそれぞれについて、対応する書き込みプロセス51a〜51cがオペレーティングシステム60に書き込みを依頼したデータの量である依頼データ量と、監視プロセス53によって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を複数の二次記憶装置20a〜20cの中から選択し、選択した二次記憶装置に対応する書き込みプロセスに対して、インタフェース回路30で取得されたデータを対応する二次記憶装置に書き込む指示をするデータ振り分けプロセス52とを含み、複数の書き込みプロセス51a〜51cは、データ振り分けプロセス52からの指示に従って、それぞれ、対応する二次記憶装置20a〜20cへのデータの書き込みをオペレーティングシステム60に依頼する。
これにより、汎用のコンピュータ装置40においてマルチプロセスのオペレーティングシステム60の管理下で実行されるアプリケーション50によって、二次記憶装置20a〜20cへのデータ書き込みが実現される。よって、データ書き込み装置10を構築するのに独自のハードウェアを必要としない。
また、並列実行されるプロセスとして、二次記憶装置20a〜20cのそれぞれに対応する書き込みプロセス51a〜51c、二次記憶装置20a〜20cのそれぞれごとの書き込みが完了したデータ量を検出する監視プロセス53、及び、二次記憶装置20a〜20cのそれぞれごとの依頼データ量及び完了データ量に基づいて次に書き込み対象となる二次記憶装置を選択するデータ振り分けプロセス52が設けられる。このような並列的な機能分散により、依頼データ量及び完了データ量に基づいて、書き込み性能が最も高いとみなせる二次記憶装置が次に書き込み対象となる二次記憶装置として選択され、データ書き込みが行われることで、ロードバランスが図られる。その結果、全体として安定した高い書き込み性能が実現され、例えば100Gbps等の極めて高速な通信ネットワークを流れる全てのパケットを長期間に渡って取りこぼしなく二次記憶装置に記録することが可能になる。
ここで、データ振り分けプロセス52は、書き込む対象となる二次記憶装置として、依頼データ量から完了データ量を差し引いて得られる値が最も小さい書き込みプロセスに対応する二次記憶装置を複数の二次記憶装置20a〜20cの中から選択する。
これにより、データ振り分けプロセス52は、依頼データ量と完了データ量とを用いた簡単な演算によって、二次記憶装置20a〜20cそれぞれの処理中のデータ量を算出して書き込み性能を評価できる。よって、書き込み性能が最も高いとみなせる二次記憶装置を次に書き込み対象となる二次記憶装置として選択することで、高速に、かつ、長期間に渡って取りこぼしなく、二次記憶装置へのデータ書き込みが可能になる。
また、インタフェース回路30は、取得したデータを一時的に保持する第1バッファメモリ31を有し、第1バッファメモリ31に保持されたデータをメモリ42に転送する。メモリ42は、インタフェース回路30から転送されてきたデータを一時的に保持する第2バッファメモリ42aを有する。複数の書き込みプロセス51a〜51cは、それぞれ、第2バッファメモリ42aに保持されたデータを対応する二次記憶装置20a〜20cに書き込むことをオペレーティングシステム60に依頼する。
これにより、インタフェース回路30で取得されたデータは、インタフェース回路30が有する第1バッファメモリ31、及び、メモリ42が有する第2バッファメモリ42aを経て二次記憶装置20a〜20cに転送される。よって、データ転送をする構成要素間での処理速度や転送速度の差が吸収され、インタフェース回路30で取得されたデータは、高速に、かつ、長期間に渡って取りこぼしなく二次記憶装置に書き込まれる。
また、複数の書き込みプロセス51a〜51cは、それぞれ、対応する二次記憶装置20a〜20cに対して、空き容量を確認することなく、データを書き込むようにオペレーティングシステム60に依頼する。
これにより、二次記憶装置20a〜20cの空き容量の確認に伴うオーバヘッドがなくなり、高速に、かつ、長期間に渡って取りこぼしなく二次記憶装置にデータが書き込まれる。
また、複数の書き込みプロセス51a〜51cは、それぞれ、対応する二次記憶装置20a〜20cへのデータの書き込みをオペレーティングシステム60に依頼した場合に、依頼データ量を更新し、データ振り分けプロセス52は、複数の書き込みプロセス51a〜51cのそれぞれから受け取った更新後の依頼データ量から、監視プロセス53から受け取った完了データ量を差し引き、得られた値が最も小さい書き込みプロセスに対応する二次記憶装置を複数の二次記憶装置20a〜20cの中から選択する。
これにより、データ振り分けプロセス52は、書き込みプロセス51a〜51cで更新された依頼データ量、及び、監視プロセス53から受け取った完了データ量に基づいて、次に書き込む対象となる二次記憶装置を選択できる。よって、データ振り分けプロセス52は、並列実行される書き込みプロセス51a〜51c、及び、監視プロセス53から得た情報に基づいて、処理中のデータ量が最小、言い換えると、書き込み性能が最も高いとみなせる二次記憶装置を適切に選択できる。
また、本実施の形態に係るデータ書き込み方法は、インタフェース回路30で取得されたデータをコンピュータ装置40によって複数の二次記憶装置20a〜20cに書き込む方法であって、複数の二次記憶装置20a〜20cのそれぞれに対応して設けられた書き込みプロセス51a〜51cが、対応する二次記憶装置20a〜20cへのデータの書き込みをオペレーティングシステム60に依頼するステップ(S13)と、監視プロセス53が、複数の二次記憶装置20a〜20cのそれぞれについて、対応する書き込みプロセス51a〜51cから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出するステップ(S31〜S34)と、データ振り分けプロセス52が、複数の二次記憶装置20a〜20cのそれぞれについて、対応する書き込みプロセス51a〜51cがオペレーティングシステム60に書き込みを依頼したデータの量である依頼データ量と、監視プロセス53によって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を複数の二次記憶装置20a〜20cの中から選択し、選択した二次記憶装置に対応する書き込みプロセスに対して、インタフェース回路30で取得されたデータを対応する二次記憶装置に書き込む指示をするステップ(S1〜S3)とを含む。そして、複数の書き込みプロセス51a〜51cは、データ振り分けプロセス52からの指示に従って、それぞれ、対応する二次記憶装置20a〜20cへのデータの書き込みをオペレーティングシステム60に依頼する(S11〜S13)。
これにより、汎用のコンピュータ装置40においてマルチプロセスのオペレーティングシステム60の管理下で実行されるアプリケーション50によって、二次記憶装置20a〜20cへのデータ書き込みが実現され、独自のハードウェアを必要としない。
また、並列実行されるプロセスとして、二次記憶装置20a〜20cのそれぞれに対応する書き込みプロセス51a〜51c、二次記憶装置20a〜20cのそれぞれごとの書き込みが完了したデータ量を検出する監視プロセス53、及び、二次記憶装置20a〜20cのそれぞれごとの依頼データ量及び完了データ量に基づいて次に書き込み対象となる二次記憶装置を選択するデータ振り分けプロセス52が設けられる。このような並列的な機能分散により、依頼データ量及び完了データ量に基づいて、書き込み性能が最も高いとみなせる二次記憶装置が次に書き込み対象となる二次記憶装置として選択され、データ書き込みが行われることで、ロードバランスが図られる。その結果、全体として安定した高い書き込み性能が実現され、例えば100Gbps等の極めて高速な通信ネットワークを流れる全てのパケットを長期間に渡って取りこぼしなく二次記憶装置に記録することが可能になる。
なお、本発明は、データ書き込み装置及びデータ書き込み方法として実現できるだけでなく、コンピュータに、データ書き込み方法に含まれるステップを実行させるプログラムとして実現してもよい。そして、そのプログラムは、DVD等のコンピュータ読み取り可能な記録媒体に格納して配布されてもよいし、インターネット等の通信ネットワークを介して配布されてもよい。
以上、本発明に係るデータ書き込み装置及びデータ書き込み方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の主旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本発明の範囲内に含まれる。
例えば、上記実施の形態では、データ振り分けプロセス52は、書き込む対象となる二次記憶装置として、依頼データ量から完了データ量を差し引いて得られる値が最も小さい書き込みプロセスに対応する二次記憶装置を選択したが、このような方法に限定されない。データ振り分けプロセス52は、書き込む対象となる二次記憶装置として、完了データ量を依頼データ量で除して得られる値が最も小さい書き込みプロセスに対応する二次記憶装置を選択してもよい。これにより、依頼データ量のうち、完了データ量が占める割合に基づいて書き込み対象となる二次記憶装置が選択され、二次記憶装置の種類によっては、書き込み性能の劣化が効率的に回避され得る。
また、上記実施の形態では、更新後の依頼データ量は、書き込みプロセス51a〜51cからデータ振り分けプロセス52に通知され、更新後の完了データ量は、監視プロセス53からデータ振り分けプロセス52に通知されたが、必ずしも、このようなプロセス間通信は必須ではない。例えば、各プロセスがアクセス可能なメモリ42内のグローバル記憶領域に、図3に示されるようなデータテーブルが設けられ、書き込みプロセス51a〜51はそのデータテーブルに依頼データ量を書き込み、監視プロセス53はそのデータテーブルに完了データ量を書き込み、データ振り分けプロセス52はそのデータテーブルを参照することで処理中のデータ量を算出してもよい。
また、依頼データ量の更新は、書き込みプロセス51a〜51cが行うのではなく、OS60への書き込み依頼を完了した書き込みプロセス51a〜51cからの書き込み依頼の完了通知を受けたデータ振り分けプロセス52が、行ってもよい。同様に、完了データ量の更新は、監視プロセス53が行うではなく、監視プロセス53からの書き込みの完了通知を受けたデータ振り分けプロセス52が、行ってもよい。
また、上記実施の形態及び実験例では、100Gbpsイーサネット(登録商標)のパケットをキャプチャしたが、本発明に係るデータ書き込み装置は、データ取得の対象として、100Gbpsイーサネット(登録商標)に限定されるものではない。100Gbpsイーサネット(登録商標)のパケットをキャプチャできることは、本発明に係るデータ書き込み装置の能力の一例に過ぎない。つまり、本発明に係るデータ書き込み装置は、100Gbpsよりも高い、又は、低い伝送速度のデータをキャプチャする装置であってもよいし、通信ネットワークとは異なる伝送路又は装置(例えば、配線パターン又は信号発生器等)からデータを取得する装置であってもよい。
また、上記実験例では、ポータブル型システムとして構築されたデータ書き込み装置が示されたが、本発明に係るデータ書き込み装置は、これに限られず、ラックマウント型システムとして構築されてもよい。
また、上記実施の形態では、二次記憶装置20a〜20cのそれぞれは、複数のSSD又はHDDを全体でひとつの記憶装置として扱うRAIDで構成されたが、これに限られず、単体のSSD又はHDDで構成されてもよい。
また、上記実施の形態では、1ブロックの単位で、次に書き込む対象となる二次記憶装置が選択され、書き込み処理が行われたが、この単位に限定されない。複数のブロック、あるいは、可変サイズのデータの単位で、二次記憶装置の選択及び書き込み処理が行われてもよい。例えば、書き込むべきデータの発生頻度が変動する場合には、一定時間に発生する可変データ量のデータを単位として、二次記憶装置の選択及び書き込み処理が行われてもよい。これによって、二次記憶装置への書き込み頻度が一定化され得る。
本発明は、複数の二次記憶装置にデータを書き込むデータ書き込み装置として、特に、取得したデータを、高速に、かつ、長期間に渡って取りこぼしなく二次記憶装置に記録する装置として、例えば、100Gbpsイーサネット(登録商標)のパケットを長期間に渡って取りこぼしなくキャプチャする装置として、利用できる。
10 データ書き込み装置
12 通信ネットワーク
20a、20b、20c 二次記憶装置
30 インタフェース回路
31 第1バッファメモリ
40 コンピュータ装置
41 プロセッサ
42 メモリ
42a 第2バッファメモリ
42b ソフトウェア
43a、43b、43c RAIDコントローラ
50 アプリケーション
51a、51b、51c 書き込みプロセス
52 データ振り分けプロセス
53 監視プロセス
60 オペレーティングシステム(OS)

Claims (7)

  1. 複数の二次記憶装置にデータを書き込むデータ書き込み装置であって、
    複数の二次記憶装置と、
    データを取得するインタフェース回路と、
    前記インタフェース回路で取得されたデータを前記複数の二次記憶装置のいずれかに書き込むコンピュータ装置とを備え、
    前記コンピュータ装置は、
    ソフトウェアを保持するメモリと、
    前記ソフトウェアを実行するプロセッサとを備え、
    前記ソフトウェアは、
    マルチプロセスのオペレーティングシステムと、
    前記オペレーティングシステムの管理下で実行されるアプリケーションとを含み、
    前記アプリケーションは、
    前記複数の二次記憶装置のそれぞれに対応して設けられた複数の書き込みプロセスであって、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼する複数の書き込みプロセスと、
    前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出する監視プロセスと、
    前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスが前記オペレーティングシステムに書き込みを依頼したデータの量である依頼データ量と、前記監視プロセスによって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を前記複数の二次記憶装置の中から選択し、選択した前記二次記憶装置に対応する前記書き込みプロセスに対して、前記インタフェース回路で取得されたデータを対応する前記二次記憶装置に書き込む指示をするデータ振り分けプロセスとを含み、
    前記複数の書き込みプロセスのそれぞれは、前記データ振り分けプロセスからの指示に従って、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼する
    データ書き込み装置。
  2. 前記データ振り分けプロセスは、書き込む対象となる前記二次記憶装置として、前記依頼データ量から前記完了データ量を差し引いて得られる値が最も小さい書き込みプロセスに対応する二次記憶装置を前記複数の二次記憶装置の中から選択する
    請求項1記載のデータ書き込み装置。
  3. 前記インタフェース回路は、取得したデータを一時的に保持する第1バッファメモリを有し、前記第1バッファメモリに保持されたデータを前記メモリに転送し、
    前記メモリは、前記インタフェース回路から転送されてきたデータを一時的に保持する第2バッファメモリを有し、
    前記複数の書き込みプロセスのそれぞれは、前記第2バッファメモリに保持されたデータを対応する前記二次記憶装置に書き込むことを前記オペレーティングシステムに依頼する
    請求項1又は2記載のデータ書き込み装置。
  4. 前記複数の書き込みプロセスのそれぞれは、対応する前記二次記憶装置に対して、空き容量を確認することなく、前記データを書き込むように前記オペレーティングシステムに依頼する
    請求項1〜3のいずれか1項に記載のデータ書き込み装置。
  5. 前記複数の書き込みプロセスのそれぞれは、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼した場合に、前記依頼データ量を更新し、
    前記データ振り分けプロセスは、前記複数の書き込みプロセスのそれぞれから受け取った更新後の前記依頼データ量から、前記監視プロセスから受け取った前記完了データ量を差し引き、得られた値が最も小さい書き込みプロセスに対応する二次記憶装置を前記複数の二次記憶装置の中から選択する
    請求項2記載のデータ書き込み装置。
  6. インタフェース回路で取得されたデータをコンピュータ装置によって複数の二次記憶装置に書き込むデータ書き込み方法であって、
    前記複数の二次記憶装置のそれぞれに対応して設けられた書き込みプロセスが、対応する前記二次記憶装置へのデータの書き込みをオペレーティングシステムに依頼するステップと、
    監視プロセスが、前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスから書き込みの依頼を受けたデータのうち、書き込みが完了したデータの量を検出するステップと、
    データ振り分けプロセスが、前記複数の二次記憶装置のそれぞれについて、対応する前記書き込みプロセスが前記オペレーティングシステムに書き込みを依頼したデータの量である依頼データ量と、前記監視プロセスによって検出された書き込みが完了したデータの量である完了データ量とに基づいて、次に書き込む対象となる二次記憶装置を前記複数の二次記憶装置の中から選択し、選択した前記二次記憶装置に対応する前記書き込みプロセスに対して、前記インタフェース回路で取得されたデータを対応する前記二次記憶装置に書き込む指示をするステップとを含み、
    複数の前記書き込みプロセスのそれぞれは、前記データ振り分けプロセスからの指示に従って、対応する前記二次記憶装置へのデータの書き込みを前記オペレーティングシステムに依頼し、
    前記オペレーティングシステムは、マルチプロセスのオペレーティングシステムであり、
    前記複数の書き込みプロセス、前記監視プロセス、前記データ振り分けプロセスは、前記オペレーティングシステムの管理下で実行されるプロセスであり、
    前記オペレーティングシステム、前記複数の書き込みプロセス、前記監視プロセス、及び、前記データ振り分けプロセスは、前記コンピュータ装置が備えるプロセッサによって実行されるソフトウェアである
    データ書き込み方法。
  7. コンピュータに請求項6記載のデータ書き込み方法に含まれるステップを実行させるプログラム。
JP2018520640A 2017-12-04 2017-12-04 データ書き込み装置及び方法 Active JP6377304B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/043533 WO2019111303A1 (ja) 2017-12-04 2017-12-04 データ書き込み装置及び方法

Publications (2)

Publication Number Publication Date
JP6377304B1 JP6377304B1 (ja) 2018-08-22
JPWO2019111303A1 true JPWO2019111303A1 (ja) 2019-12-12

Family

ID=63250075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018520640A Active JP6377304B1 (ja) 2017-12-04 2017-12-04 データ書き込み装置及び方法

Country Status (3)

Country Link
US (1) US10585622B2 (ja)
JP (1) JP6377304B1 (ja)
WO (1) WO2019111303A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256210A1 (ko) * 2019-06-20 2020-12-24 주식회사 쿼드마이너 네트워크 포렌식 시스템 및 이를 이용한 네트워크 포렌식 방법
JP6944617B1 (ja) * 2020-04-24 2021-10-06 株式会社東陽テクニカ パケットキャプチャ装置及び方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6441918A (en) 1987-08-07 1989-02-14 Nec Corp Load distributed control system for secondary storage device
JPH0954658A (ja) 1995-06-08 1997-02-25 Sanyo Electric Co Ltd 並列二次記憶装置およびそのアクセス方法
JP2000099446A (ja) * 1998-09-21 2000-04-07 Hitachi Ltd コマンド発行制御方法および装置
JP2006259812A (ja) 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム
JP2009032144A (ja) * 2007-07-30 2009-02-12 Seiko Epson Corp ディスクシステム制御モジュール、ディスクシステム制御方法、ディスクシステム制御プログラム及び情報処理装置
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
US9846662B2 (en) * 2014-09-20 2017-12-19 Netronome Systems, Inc. Chained CPP command
JP6582721B2 (ja) * 2015-08-19 2019-10-02 富士通株式会社 制御装置、ストレージシステム、及び制御プログラム

Also Published As

Publication number Publication date
US20190369907A1 (en) 2019-12-05
WO2019111303A1 (ja) 2019-06-13
JP6377304B1 (ja) 2018-08-22
US10585622B2 (en) 2020-03-10

Similar Documents

Publication Publication Date Title
JP6192660B2 (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
US10241926B2 (en) Migrating buffer for direct memory access in a computer system
JP2018106545A (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
WO2015142974A1 (en) Asynchronously prefetching sharable memory pages
US20200293219A1 (en) Multi-tiered storage
JP6377304B1 (ja) データ書き込み装置及び方法
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
US10255209B2 (en) Tracking statistics corresponding to data access in a computer system
US11010091B2 (en) Multi-tier storage
US9588917B2 (en) Tracking statistics corresponding to data access in a computer system
US9223703B2 (en) Allocating enclosure cache in a computing system
US20170277587A1 (en) Computer system and memory dump method
US11687443B2 (en) Tiered persistent memory allocation
US9875037B2 (en) Implementing multiple raid level configurations in a data storage device
US11079951B2 (en) Multi-tier storage and mirrored volumes
US10776011B2 (en) System and method for accessing a storage device
US9158669B2 (en) Presenting enclosure cache as local cache in an enclosure attached server
US9817585B1 (en) Data retrieval system and method
CN113849346A (zh) 一种数据备份方法、装置及设备
US10185517B2 (en) Limiting the execution of background management operations in a drive array
JP2020052852A (ja) ストレージ及び情報処理システム。

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180420

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180511

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180724

R150 Certificate of patent or registration of utility model

Ref document number: 6377304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250