JP2022108619A - 情報処理システム、情報処理装置、及び、情報処理方法 - Google Patents

情報処理システム、情報処理装置、及び、情報処理方法 Download PDF

Info

Publication number
JP2022108619A
JP2022108619A JP2021003717A JP2021003717A JP2022108619A JP 2022108619 A JP2022108619 A JP 2022108619A JP 2021003717 A JP2021003717 A JP 2021003717A JP 2021003717 A JP2021003717 A JP 2021003717A JP 2022108619 A JP2022108619 A JP 2022108619A
Authority
JP
Japan
Prior art keywords
data
information processing
storage
fingerprints
fingerprint
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.)
Pending
Application number
JP2021003717A
Other languages
English (en)
Inventor
純 加藤
Jun Kato
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 JP2021003717A priority Critical patent/JP2022108619A/ja
Priority to US17/493,883 priority patent/US20220222175A1/en
Publication of JP2022108619A publication Critical patent/JP2022108619A/ja
Pending legal-status Critical Current

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/0608Saving storage space on storage systems
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0871Allocation or management of cache space
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • 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/60Details of cache memory
    • G06F2212/601Reconfiguration of 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/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Abstract

【課題】情報処理装置へのデータの書き込みの際の通信量を削減する。【解決手段】第1の情報処理装置2は、ネットワークを介して接続される第2の情報処理装置4への書込対象のデータのフィンガープリント(FP)が、データのFPを記憶する第1記憶領域20aに存在する場合に当該FPを含む書込要求を、存在しない場合に当該FP及び書込対象のデータを含む書込要求を、第2の情報処理装置4に送信し、第2の情報処理装置4は、受信した複数のFPの、記憶装置40cに書き込まれた複数のデータの各FPを複数のデータの書き込み順に記憶する第2記憶領域40dのデータレイアウト上の書込位置に基づき、複数の書込要求のシーケンシャル性を検出した場合、当該データレイアウト上で複数のFPの後続のFPを読み出し第1の情報処理装置2に送信し、第1の情報処理装置2は、受信した後続のFPを第1記憶領域20aに格納する。【選択図】図14

Description

本発明は、情報処理システム、情報処理装置、及び、情報処理方法に関する。
複数の情報処理装置を備える情報処理システムの一例として、コンピュートサーバとストレージサーバとをネットワークを介して相互に通信可能に接続したブロックストレージシステムが知られている。
特開2018-142314号公報 特開2018-185760号公報 特開2005-202942号公報
ブロックストレージシステムにおいて、コンピュートサーバからストレージサーバにデータが書き込まれる場合、データがネットワークを経由することによる通信が発生する。
例えば、コンピュートサーバにコンテンツキャッシュを採用することで、キャッシュヒットする書き込みについては、データがネットワークを経由することを抑制できる、換言すれば重複排除することが可能である。一方、キャッシュミスとなるデータについては、重複排除が行なわれない。
このように、情報処理システムの運用形態、情報処理装置への書き込みアクセスの傾向等に応じて、例えばキャッシュミスの頻度が増加するほど、重複排除による通信量の削減効果が低下する場合がある。
1つの側面では、本発明は、情報処理装置へのデータの書き込みの際の通信量を削減することを目的の1つとする。
1つの側面では、情報処理システムは、第1の情報処理装置と、前記第1の情報処理装置とネットワークを介して接続される第2の情報処理装置と、を備えてよい。前記第1の情報処理装置は、データのフィンガープリントを記憶する第1記憶領域と、送信部と、を備えてよい。前記送信部は、前記第2の情報処理装置への書込対象のデータのフィンガープリントが前記第1記憶領域に存在する場合、前記フィンガープリントを含む書込要求を前記第2の情報処理装置に送信し、前記フィンガープリントが前記第1記憶領域に存在しない場合、前記書込対象のデータと前記フィンガープリントとを含む書込要求を前記第2の情報処理装置に送信してよい。前記第2の情報処理装置は、記憶装置と、制御部と、を備えてよい。前記記憶装置は、前記記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する第2記憶領域を備えてよい。前記制御部は、前記第1の情報処理装置から前記ネットワークを介して前記書込要求を受信してよい。また、前記制御部は、受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記第2記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出してよい。さらに、前記制御部は、前記複数の書込要求のシーケンシャル性を検出した場合、前記第2記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1の情報処理装置に送信してよい。前記第1の情報処理装置は、受信した前記後続のフィンガープリントを前記第1記憶領域に格納してよい。
1つの側面では、本発明は、情報処理装置へのデータの書き込みの際の通信量を削減することができる。
ブロックストレージシステムの第1構成例を示す図である。 ブロックストレージシステムの第2構成例を示す図である。 ブロックストレージシステムの第3構成例を示す図である。 ブロックストレージシステムの第4構成例を示す図である。 図1に示す第1構成例又は図3に示す第3構成例において、コンピュートサーバにローカルキャッシュを設けた構成例を示す図である。 図4に示す第4構成例の詳細な一例を示す図である。 図6に示すブロックストレージシステムにおけるキャッシュによる通信量削減のための手法の一例を示す図である。 コンテンツキャッシュが効果的な場合の一例を説明するための図である。 一実施形態に係る手法を簡単に説明するための図である。 一実施形態に係るシーケンシャル判定の一例を説明するための図である。 ストレージ上のデータレイアウトとシーケンシャル判定との関係の一例を説明するための図である。 ストレージ上のデータレイアウトとシーケンシャル判定及びプリフェッチとの関係の一例を説明するための図である。 一実施形態に係るフィンガープリントのコンパクション処理の一例を説明するための図である。 一実施形態に係るブロックストレージシステムの機能構成例を示すブロック図である。 ヒット履歴テーブルの一例を示す図である。 FP履歴テーブルの一例を示す図である。 パラメータ調整部の動作例を説明するための図である。 プリフェッチヒット契機のコンパクション処理の一例を説明するための図である。 コンパクション処理の一例を説明するための図である。 シーケンシャル判定契機のコンパクション処理の一例を説明するための図である。 一実施形態に係るコンピュートサーバの動作例を説明するためのフローチャートである。 一実施形態に係るストレージサーバの動作例を説明するためのフローチャートである。 図22に示すストレージサーバのプリフェッチ処理の動作例を説明するためのフローチャートである。 一実施形態に係る手法の適用例を説明するための図である。 一実施形態に係る手法の適用例を説明するための図である。 一実施形態に係る手法の適用例を説明するための図である。 コンピュータのハードウェア(HW)構成例を示すブロック図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形又は技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1-1〕ブロックストレージシステムの説明
図1~図4は、それぞれ、ブロックストレージシステムの第1~第4構成例を示す図である。
図1に示すように、第1構成例に係るブロックストレージシステム100Aは、複数のコンピュートサーバ110と複数のストレージサーバ130とを、ネットワーク120を介して相互に通信可能に接続した構成を備えてよい。ブロックストレージシステム100Aでは、符号A1~A3で示すように、複数のコンピュートサーバ110、ネットワーク120、及び、複数のストレージサーバ130で運用の管理単位が独立となっている。ブロックストレージシステム100Aでは、複数のコンピュートサーバ110、ネットワーク120、及び、複数のストレージサーバ130を独立して備えるため、コンピュートと、符号A4で示すストレージとを独立にスケールアップ(例えばサーバの増設等)することができる。
図2に示すように、第2構成例に係るブロックストレージシステム100Bは、複数のコンピュートサーバ110を、ネットワーク120を介して相互に通信可能に接続した構成を備えてよい。ブロックストレージシステム100Bでは、符号B1で示すように、複数のコンピュートサーバ110及びネットワーク120を運用の管理単位としてまとめることで、インフラストラクチャを一元管理できる。また、コンピュートサーバ110にストレージ機能を有するストレージコンポーネント140を設けることで、例えばストレージコンポーネント140のキャッシュを利用してアクセスの高速化を図ることができる。
図3に示すように、第3構成例に係るブロックストレージシステム100Cは、複数のコンピュートサーバ110と複数のストレージサーバ130とを、ネットワーク120を介して相互に通信可能に接続した構成を備えてよい。ブロックストレージシステム100Cでは、符号C1で示すように、複数のコンピュートサーバ110、ネットワーク120、及び、複数のストレージサーバ130を運用の管理単位としてまとめることで、インフラストラクチャを一元管理できる。また、ブロックストレージシステム100Cでは、複数のコンピュートサーバ110、ネットワーク120、及び、複数のストレージサーバ130を独立して備えるため、コンピュートと、符号C2で示すストレージとを独立にスケールアップ(例えばサーバの増設等)することができる。
図4に示すように、第4構成例に係るブロックストレージシステム100Dは、複数のコンピュートサーバ110と複数のストレージサーバ130とを、ネットワーク120を介して相互に通信可能に接続した構成を備えてよい。ブロックストレージシステム100Dでは、符号D1で示すように、複数のコンピュートサーバ110、ネットワーク120、及び、複数のストレージサーバ130を運用の管理単位としてまとめることで、図2及び図3と同様に、インフラストラクチャを一元管理できる。また、ブロックストレージシステム100Dでは、複数のコンピュートサーバ110、ネットワーク120、及び、複数のストレージサーバ130を独立して備えるため、図1及び図3と同様に、コンピュートと、符号D2で示すストレージとを独立にスケールアップ(例えばサーバの増設等)することができる。さらに、コンピュートサーバ110にストレージ機能を有するストレージコンポーネント140を設けることで、図2と同様に、例えばストレージコンポーネント140のキャッシュを利用してアクセスの高速化を図ることができる。
図1、図3及び図4に示す第1、第3及び第4構成例では、コンピュートサーバ110によるデータの書き込み先がストレージサーバ130のドライブであるため、コンピュートサーバ110からストレージサーバ130への通信が発生する。また、図2に示す第2構成例では、コンピュートサーバ110が多重化(例えば二重化)される場合がある。この場合、コンピュートサーバ110は、ストレージコンポーネント140に書き込んだデータを、二重化状態を維持するために他のコンピュートサーバ110に書き込むことで、通信が発生する。
例えば、コンピュートサーバ110にコンテンツキャッシュを採用することで、キャッシュヒットする書き込みについては、データがネットワーク120を経由することを抑制できる、換言すれば重複排除することが可能である。
図5は、図1に示す第1構成例、又は、図3に示す第3構成例において、コンピュートサーバ110にローカルキャッシュ150を設けたブロックストレージシステム100Eの構成の一例を示す図である。
ローカルキャッシュ150は、キャッシュ151を備える。ストレージサーバ130は、キャッシュ131、データの重複排除及び圧縮を行なう重複排除・圧縮部132、並びに、データを格納するRAID(Redundant Arrays of Inexpensive Disks)133を備える。第1及び第3構成例は、図5に示すように、符号E1で示すコンピュートと、符号E2で示すストレージとが独立しているため、ブロックストレージシステム100E全体においてキャッシュが2つ存在し、処理及びリソースに無駄が発生する。
図6は、図4に示す第4構成例の詳細な一例を示す図である。図6に示すように、ブロックストレージシステム100Dにおいて、ストレージコンポーネント140は、キャッシュ(例えばコンテンツキャッシュ)141を備える。ストレージサーバ130は、重複排除・圧縮部132、及び、RAID133を備える。第4構成例に係るブロックストレージシステム100Dは、図6の符号D1に示すように、コンピュートサーバ110(ストレージコンポーネント140)及びストレージサーバ130が密結合している。このため、ブロックストレージシステム100D全体において、処理及びリソースの無駄を低減又は排除できる。なお、図2に示す第2構成例において、二重化状態維持のためのデータが書き込まれるコンピュートサーバ110側に重複排除・圧縮の機能を設ける場合も、コンピュートサーバ110が密結合となるため、処理及びリソースの無駄を低減又は排除できる。
しかし、図5及び図6のいずれの例においても、キャッシュミスとなるデータについては、重複排除が行なわれない。すなわち、ブロックストレージシステム100A~100Dの運用形態、ストレージサーバ130又はコンピュートサーバ110への書き込みアクセスの傾向等に応じて、例えばキャッシュミスの頻度が増加するほど、重複排除による通信量の削減効果が低下する場合がある。
図7は、図6に示すブロックストレージシステム100Dにおけるキャッシュ(コンテンツキャッシュ)141による通信量削減のための手法の一例を示す図である。
コンテンツキャッシュ141は、例えば、重複排除が行なわれたキャッシュであり、一例として、「LUN(Logical Unit Number)」、「LBA(Logical Brock Address)」、「フィンガープリント」及び「データ」を含んでよい。フィンガープリント(FP;Finger Print)は、データに基づき算出される固定長又は可変長のデータ列であり、一例として、ハッシュ関数により算出されるハッシュ値であってよい。ハッシュ関数としては、SHA-1等の種々のハッシュ関数が挙げられる。
図7に示すように、ストレージコンポーネント140は、書込対象のデータから、当該データのFP(例えばSHA-1等のハッシュ値)を算出し、コンテンツキャッシュ141にFPが一致する同一データの有無を判定する。同一データが存在する場合、ストレージコンポーネント140は、ストレージサーバ130にFP、LUN及びLBAを送信し、既に過去に送られているデータの送信を抑止する。
図7の例では、コンテンツキャッシュ141の3つのエントリのうち、重複排除により、データがキャッシュされるのは2つのエントリのみとなる。また、通信時において、“01234...”のデータは、2回は送信されない。例えば、“01234...”のデータは、コンテンツキャッシュ141のエントリのうち、1回目にのみ送信され、2回目以降はFP、LUN及びLBA等のメタデータのみが送信される。
これにより、キャッシュ容量の効率化を図ることができ、通信の観点では、書き込み時のデータ転送量を削減することができる。
コンテンツキャッシュ141が効果的な例としては、図8に示すように、コンピュートサーバ110を仮想化基盤として、仮想化基盤で動作する仮想デスクトップ上でウイルス対策ソフトの定義ファイルを更新する場合等が挙げられる。図8の例では、仮想デスクトップをVM(Virtual Machine;仮想マシン)160と表記する。
仮想デスクトップの起動の際に定義ファイルが更新される場合、勤務開始時刻付近で複数の仮想デスクトップからストレージサーバ130に同じデータの書き込みが複数発生する。この書き込みは、略同時、且つ、書き込みに係るデータサイズが小さいため、当該データがコンテンツキャッシュ141に載る(格納される)。
図8の例では、1台のコンピュートサーバ110あたり2つのVM160からの書き込みが発生するが、データ本体の転送はそのうちの1回であるため、3台分のコンピュートサーバ110ではデータ本体の転送回数を6回から3回に削減できる。
以上のように、コンテンツキャッシュ141において重複排除が行なわれないと通信量が削減されない。換言すれば、データがコンテンツキャッシュ141にヒットしないと通信量が削減されない。他のアプローチとしてデータの圧縮が考えられるが、圧縮では通信量を3割~4割程度減らすに留まり、重複排除のようにデータ全体の送信を抑制するというドラスティックな変化は生じない。
コンテンツキャッシュ141で重複排除が行なわれない原因の1つとして、コンテンツが以前に書き込まれていたが、コンテンツキャッシュ141では重複排除できなかった場合が挙げられる。この場合、通信が増加するものの、ストレージサーバ130に問い合わせを行なえば重複排除ができた可能性がある。根本的な原因は、コンピュートサーバ110のコンテンツキャッシュ141が、システム全体で見たFPのうちの一部のみを記憶することである。
ブロックストレージシステムのユースケースとして、複数のユーザがAI(Artificial Intelligence)の機械学習を行なうために、データセットをストレージサーバ130に格納するケースが挙げられる。
AIの機械学習で使用されるデータセットは、数十PB(ペタバイト)のサイズになる場合がある。ユーザは、例えば、コミュニティサイトからデータセットをダウンロードしてストレージサーバ130に展開する。機械学習で使用されるデータセットは、同じデータ、同じような書き込み順番であることを想定する。
数十PB級のデータセットの全ての書き込みをコンテンツキャッシュ141に載せることは、コンテンツキャッシュ141の記憶容量の観点から困難である。しかし、データセットは、同じデータ及び同じような書き込み順番を持つ規則性のあるデータである。
そこで、一実施形態では、情報処理装置へのデータの書き込みの際の通信量を削減する手法の一例として、2人目以降のユーザによるデータセットの書き込みについて、規則性を利用して、重複排除を行なえるようにする手法を説明する。
なお、以下、第4構成例に係るブロックストレージシステム100Dをベースとした説明を行なうが、例えば、第2構成例に係るブロックストレージシステム100Bにおける二重化のための書き込みに対しても、一実施形態に係る手法を適用可能である。換言すれば、I/O(Input / Output)パスの観点では、ブロックストレージシステム100Bにおける書き込み先のコンピュートサーバ110を、ブロックストレージシステム100Dのストレージサーバ130と同様に扱うことができる。
コンピュートサーバ110は、第1の情報処理装置の一例であり、ストレージサーバ130は、第2の情報処理装置の一例である。また、図2に示す例において、複数のコンピュートサーバ110が冗長構成であり、コンピュートサーバ110間でデータの書き込みが行なわれる場合、データの書込元のコンピュートサーバ110が第1の情報処理装置の一例であり、データの書込先のコンピュートサーバ110が第2の情報処理装置の一例である。
〔1-2〕一実施形態の説明
図9は、一実施形態に係る手法を簡単に説明するための図である。図9に示すように、一実施形態に係るブロックストレージシステム1は、例示的に、複数のコンピュートサーバ2、ネットワーク3、及び、複数のストレージサーバ4を備えてよい。コンピュートサーバ2は第1の情報処理装置又は第1のコンピュータの一例であり、ストレージサーバ4は、コンピュートサーバ2とネットワーク3を介して接続される第2の情報処理装置又は第2のコンピュータの一例である。
コンピュートサーバ2は、コンテンツキャッシュ20aを有するストレージコンポーネント20を備えてよい。ストレージサーバ4は、プリフェッチャ40a、重複排除・圧縮部40b及びストレージ40cを備えてよい。
一実施形態に係るストレージサーバ4は、規則性を予測して、コンピュートサーバ2により書き込まれる可能性の高いFPを、予めコンピュートサーバ2のコンテンツキャッシュ20aに送信することで、通信量を削減する。
例えば、ストレージサーバ4は、ストレージサーバ4の内部で検出できるデータのシーケンシャル性に着目し、FPのプリフェッチを行なう。図9に例示するように、プリフェッチャ40aは、FP[4F89A3]及び[B107E5]を既に保持していることをストレージコンポーネント20に通知する。ストレージコンポーネント20は、通知されたFPとコンテンツキャッシュ20aとに基づき、3つのデータのうちの[!”#$%...]のデータのみを転送し、通知されたFPに対応するデータ2つ分の通信量を削減できる。
上述した規則性を検出する手法として、例えば、時系列分析が知られている。時系列分析は、例えば、LUNごとに書き込んだFPにタイムスタンプを付与して分析を行なう手法である。時系列分析では、FPのタイムスタンプ管理に、ストレージサーバ4又はクラウド上のサーバの追加リソースが用いられる。また、ストレージサーバ4のストレージ内部で時系列分析を実行する場合、時系列分析自体の処理負荷が高く、ストレージサーバ4の性能低下が生じる可能性がある。
そこで、一実施形態では、規則性として、データのシーケンシャル性に着目する。規則性として、ストレージサーバ4のストレージ内部で検出できるデータのシーケンシャル性が用いられることで、ストレージで完結して処理が可能となる。なお、検出精度を向上させるために、追加リソースの利用が許容される範囲で、規則性として、データのシーケンシャル性に加えて、時系列分析を採用してもよい。
図10は、一実施形態に係るシーケンシャル判定の一例を説明するための図である。図10に示すように、シーケンシャル判定では、FPがストレージ40cに物理的に書き込まれた位置に基づき行なわれる。
図10に示すように、ストレージ40c上の記憶領域40dのデータレイアウトにおいて、ストレージ40cの512バイトの位置から、8バイトのFPが[4F89A3]、[B107E5]、・・・と並んで配置されている(以前にこの順番で書き込まれた)と仮定する。ここで、FPは、基本的には、重複排除が行なわれない初回の書き込み時にストレージ40cに書き込まれる。なお、図10に例示する記憶領域40dは、RAID等のストレージ40cのうちのメタデータを格納する記憶領域を示すものとする。
図10に例示するように、コンピュートサーバ2は、コンテンツキャッシュ20aのFPを、なるべくLUN単位に書き込み順でまとめてストレージサーバ4に書き込む(符号(1)参照)。ストレージサーバ4は、シーケンシャル判定により、書き込まれたFPが、記憶領域40dのデータレイアウト上で512、520、528と連続して配置されている、すなわちシーケンシャルな書き込みであることを検出する(符号(2)参照)。
ストレージサーバ4は、シーケンシャルであると判定した(判定に成功した)場合、受信したFPに続く、記憶領域40dのデータレイアウト上で532バイト以降のFPを読み出してコンピュートサーバ2に転送する(符号(3)参照)。
これにより、コンピュートサーバ2は、書き込み順で4番目以降のデータのFPがストレージサーバ4から受信したFPと一致する場合、1~3番目のデータと同様に、データの送信を省略できる。換言すれば、ブロックストレージシステム1では、重複排除によって通信量の削減を図ることができる。
なお、上述したシーケンシャル判定では、ストレージ40c、例えばRAID等のディスクグループにおける書き込み位置を利用するものとした。
例えば、シーケンシャル判定にLUN及びLBAを用いる場合、LUN上のデータレイアウトは、実際のデータの論理的な書き込み位置に基づくため、LUN及びLBAに基づきシーケンシャルに読み出す場合、後続のデータが続くことが保証される。換言すれば、LUN上のデータレイアウトにおいて、後続のデータは同一LUNの次のデータということが保証される。
一方で、一実施形態に係る手法では、シーケンシャル判定がフィンガープリントの書き込み順に依存する。すなわち、図10の例において、「なるべくLUN単位に書き込み順で」まとめてストレージサーバ4に書き込むことができれば、シーケンシャルであると判定される可能性を向上できる。
ところで、「なるべくLUN単位に書き込み順で」書き込むことが困難になる場合の1つとして、ファイルシステムのメタデータ又はジャーナルログの書き込みが発生する場合が挙げられる。例えば、ブロックストレージは、ファイルシステムを利用する場合がある。ファイルシステムは、ユーザのワークロードデータに応じて、本体以外に、例えばメタデータ及びジャーナルログ等をストレージ40cに書き込むことがある。
図11に例示するように、メタデータ及びジャーナルログは、タイムスタンプを含むため互いに重複せず、シーケンシャル判定においてシーケンシャルであると判定されない(失敗する)要因になり易い。以下、便宜上、メタデータ及びジャーナルログ等のデータ及びそのFPを、「不要データ」と表記する。シーケンシャル判定におけるこのような不要データによるノイズの影響を軽減するために、シーケンシャルであると判定するための基準を緩くすることが考えられるが、基準を緩くすると過剰なプリフェッチに繋がる可能性がある。
また、図12に例示するように、過剰なプリフェッチの結果、不要データがコンテンツキャッシュ20aに送られることになり、ヒット率が低下する可能性がある。プリフェッチは、ヒットしないと処理の無駄になるため、過剰なプリフェッチの発生を抑制したい。
そこで、図13に例示するように、一実施形態に係るブロックストレージシステム1は、FPのコンパクションを行なってもよい。
例えば、図13に示すように、コンピュートサーバ2によりコンテンツキャッシュ20aの順番で書き込みが行なわれる場合を想定する(符号(1)参照)。ストレージサーバ4は、記憶領域40d-1のデータレイアウトにおいて、シーケンシャル判定に失敗した場合であっても、シーケンシャル判定の基準を緩くすればシーケンシャル判定が成功することを検出する(符号(2)参照)。この場合、ストレージサーバ4は、他の記憶領域40d-2において、記憶領域40d-1の不要データを除外してFPをシーケンシャルに配置することでFPのコンパクションを行なってよい(符号(3)参照)。なお、記憶領域40d-1及び40d-2は、それぞれストレージ40cのうちの、FP等のメタデータを格納する記憶領域である。また、ストレージサーバ4は、シーケンシャル判定に成功する場合であっても、不要データが多い場合には、コンパクションを行なってよい。
これにより、ストレージサーバ4への次回の書き込みの際には、記憶領域40d-2でコンパクションが行なわれているため、シーケンシャルであると判定され易くなり、また、不要データが少ないためプリフェッチのヒット率を改善できる。
以上のように、一実施形態に係る手法によれば、プリフェッチによりヒットする可能性の高いFPを予めストレージサーバ4からコンピュートサーバ2に転送しておくことで、プリフェッチヒットにより重複排除率を向上させることができる。従って、通信量を削減することができる。
例えば、シーケンシャル性があり、重複排除が効きやすい書き込みのワークロードが実行される場合、大規模な書き込みであってもコンテンツキャッシュ20aのサイズに依存せずに重複排除を行なうことができる。
また、コンパクションにより、シーケンシャル判定を誤らせ、プリフェッチヒット率を低下させる要因となる不要データを取り除くことができるため、例えば3回目以降の書き込みで重複排除率をさらに向上させることができる。
〔1-3〕機能構成例
図14は、一実施形態に係るブロックストレージシステム1の機能構成例を示すブロック図である。
(コンピュートサーバ2)
図14に示すように、コンピュートサーバ2は、例示的に、コンテンツキャッシュ20a、ダーティデータ管理部21、重複排除判定部22、FP(フィンガープリント)管理部23、及び、ネットワークIF(Interface)部20bを備えてよい。ブロック21~23並びに20a及び20bは、図9に示すストレージコンポーネント20の機能の一例である。ブロック21~23並びに20a及び20bを含むコンピュートサーバ2の機能は、例えば、コンピュートサーバ2のプロセッサがメモリに展開したプログラムを実行することで実現されてよい。
コンテンツキャッシュ20aは、例えば、重複排除が行なわれたキャッシュであり、一例として、図7に示すデータ構造と同様に、「LUN」、「LBA」、「フィンガープリント」及び「データ」を含んでよい。コンテンツキャッシュ20aは第1記憶領域の一例である。
ダーティデータ管理部21は、コンテンツキャッシュ20aの中で未だストレージサーバ4に書き込まれていないダーティ(Dirty)データを管理する。ダーティデータ管理部21は、例えば、ダーティデータととともに、LUN+LBA等のメタデータを管理してよい。ダーティデータ管理部21は、重複排除判定部22により重複排除を行なうと判定された際にデータを重複排除判定部22に出力する。
重複排除判定部22は、データのFPを算出し、データの重複排除を行なうか否かを判定する。重複排除判定部22が算出したFPは、FP管理部23により管理される。
FP管理部23は、コンテンツキャッシュ20aが保持するFPを管理する。FP管理部23は、コンテンツキャッシュ20aのデータから算出したFPに加えて、ストレージサーバ4のプリフェッチャ40aから受信するFPを管理してよい。
ネットワークIF部20bは、ストレージサーバ4等の外部の情報処理装置との間の通信IFとしての機能を有する。
(ストレージサーバ4)
図14に示すように、ストレージサーバ4は、例示的に、ネットワークIF部40e、第1管理部41、第2管理部42、重複排除ヒット判定部43、第1レイアウト管理部44、第2レイアウト管理部45、及び、ドライブIF部40fを備えてよい。また、ストレージサーバ4は、例示的に、ストレージ40c、ヒット率・履歴管理部46、シーケンシャル判定部47、プリフェッチャ40a、パラメータ調整部48、及び、コンパクション判定部49を備えてよい。ブロック41~43は、図9に示す重複排除・圧縮部40bの一例である。また、ブロック41~49、40a、40e及び40fは、制御部40の一例である。制御部40の機能は、例えば、ストレージサーバ4のプロセッサがメモリに展開したプログラムを実行することで実現されてよい。
ネットワークIF部40eは、コンピュートサーバ2等の外部の情報処理装置との間の通信IFとしての機能を有する。
第1管理部41は、ストレージサーバ4が保持するFPを管理する。例えば、第1管理部41は、第1レイアウト管理部44を通じて、バックエンドからFPを読み書きしてよい。第1管理部41は、例えば、ネットワークIF部40eにより、ストレージ40cへの書込対象のデータのFPを含む書込要求を、コンピュートサーバ2からネットワーク3を介して受信してよい。
第2管理部42は、FP以外のデータを管理する。例えば、第2管理部42は、ストレージサーバ4が保持する、参照カウント、及び、LUN+LBAからデータのアドレスへのマッピング、等のメタデータ、並びに、データ本体等を管理してよい。第2管理部42は、重複排除の判定の際に、データ本体を重複排除ヒット判定部43に出力する。第2管理部42は、第2レイアウト管理部45を通じて、バックエンドからFP以外を読み書きしてよい。
重複排除ヒット判定部43は、データのFPを算出し、データの重複排除を行なうか否かを判定する。重複排除ヒット判定部43が算出したFPは、第1管理部41により管理される。
第1レイアウト管理部44は、ドライブIF部40fを通じて、FPを読み書きする際のストレージ40cのボリューム上のレイアウトを管理する。例えば、第1レイアウト管理部44は、読み書きをするFPの位置を求めてよい。
第2レイアウト管理部45は、ドライブIF部40fを通じて、参照カウント、及び、LUN+LBAからデータのアドレスへのマッピング、等のメタデータ、並びに、データ本体等を読み書きする際のストレージ40cのボリューム上のレイアウトを管理する。例えば、第2レイアウト管理部45は、読み書きするメタデータ及びデータ本体等の位置を求めてよい。
ドライブIF部40fは、重複排除のバックエンドとなるストレージ40cのドライブへの読み書きを行なうIFとしての機能を有する。
ストレージ40cは、複数のドライブを組み合わせて構成される記憶装置の一例である。ストレージ40cは、例えば、RAID等の仮想ボリュームであってもよい。ドライブとしては、例えば、SSD(Solid State Drive)、HDD(Hard Disk Drive)及びリモートドライブ等のドライブのうちの少なくとも1種類が挙げられる。ストレージ40cは、書き込まれるデータを格納する記憶領域(図示省略)と、FP等のメタデータを格納する1以上の記憶領域40dとを有してよい。
記憶領域40dは、第2記憶領域の一例であり、例えば、ストレージ40cに書き込まれた複数のデータの各々のFPを複数のデータの書き込み順に記憶してよい。
ヒット率・履歴管理部46は、プリフェッチヒット率の判定、及び、ヒット履歴の管理を行なう。
例えば、ヒット率・履歴管理部46は、プリフェッチヒット率を判定するために、コンテンツキャッシュ20aにプリフェッチしたFPを追加する際に、第1管理部41を通じて、プリフェッチしたFPであることを示す情報、例えばフラグをFPに付加してよい。ヒット率・履歴管理部46は、フラグを付加したFPについてコンピュートサーバ2から書き込みが行なわれる、すなわちプリフェッチヒットした場合、第1管理部41を通じて、当該フラグを付加した状態でFPをストレージ40cに転送し、ヒット率を更新してよい。なお、フラグの有無は、後述するヒット履歴テーブル46aのエントリの有無、と捉えられてもよい。すなわち、FPへのフラグの付加は、ヒット履歴テーブル46aへのエントリの追加、を意味してもよい。
また、例えば、ヒット率・履歴管理部46は、プリフェッチのヒット履歴の管理を行なうために、ストレージサーバ4においてヒット回数を管理するヒット履歴テーブル46aを利用してよい。ヒット履歴テーブル46aは、プリフェッチにおいて送信した複数のFPの各々について、プリフェッチにおいて送信したFPと一致するFPを含む書込要求を受信した回数を記録する情報の一例である。
図15は、ヒット履歴テーブル46aの一例を示す図である。以下の説明では、便宜上、ヒット履歴テーブル46aをテーブル形式のデータとして説明するが、これに限定されるものではなく、DB(Database)又は配列等の種々のデータ形式であってよい。図15に示すように、ヒット履歴テーブル46aは、例示的に、記憶領域40dのデータレイアウト上のFPの「場所」、「FP」、及び、「ヒット回数」の項目を含んでよい。「場所」は、ストレージ40cにおけるアドレス等の位置であってよい。
ヒット率・履歴管理部46は、ストレージサーバ4においてプリフェッチが実行された際に、ヒット履歴テーブル46aにエントリを作成してよい。また、ヒット率・履歴管理部46は、プリフェッチヒットした際に、対象のFPのヒット回数を更新してよい。なお、ヒット率・履歴管理部46は、プリフェッチ後、一定時間経過した場合にエントリを削除してよい。
シーケンシャル判定部47は、FPに基づきシーケンシャル判定を行なう。例えば、シーケンシャル判定部47は、受信した複数の書込要求に含まれる複数のFPの、記憶領域40dのデータレイアウト上の書込位置に基づき、複数の書込要求のシーケンシャル性を検出してよい。
シーケンシャル判定部47は、シーケンシャル判定において、P、N及びHのパラメータを利用してよい。Pは、シーケンシャル判定部47が検出するシーケンシャル性の数であり、2以上の整数であってよい。Nは、記憶領域40dのデータレイアウト上においてヒットしたFPの位置が連続していると判定する、換言すればシーケンシャルであると判定するための基準となる、FP間の距離を決定する係数であり、例えば1以上の整数であってよい。Hは、プリフェッチを実行するための閾値であり、例えば2以上の整数であってよい。以下の説明では、P=8、N=16、H=5であるものとする。
例えば、シーケンシャル判定部47は、記憶領域40dのデータレイアウト上で最後に(例えば直前の書込要求で)ヒットした場所から±(α×N)(第1所定範囲以内)の場所のFPがヒットした場合、シーケンシャルであると判定してよい。なお、αはFPのデータサイズであり、例えば8バイトであるものとする。N=+1の場合に真のシーケンシャルであるといえるが、I/Oの順番入れ替え等を考慮し、Nは、余裕を持たせて2以上の値としてよい。これにより、シーケンシャル判定部47は、FPが記憶領域40dのデータレイアウト上で連続していなくても、ヒットしたFPが±(α×N)の距離以内であればシーケンシャルであると判定することができる。
また、例えば、シーケンシャル判定部47は、H回以上、記憶領域40dのデータレイアウト上のFPがヒットした場合にシーケンシャル性があると判定してよい。このように、シーケンシャル判定部47は、FPが或る程度の回数ヒットしてからシーケンシャル性があると判定することで、シーケンシャル判定の精度を上げることができる。
図16は、FP履歴テーブル47aの一例を示す図である。以下の説明では、便宜上、FP履歴テーブル47aをテーブル形式のデータとして説明するが、これに限定されるものではなく、DB(Database)又は配列等の種々のデータ形式であってよい。図16に示すように、FP履歴テーブル47aは、例示的に、FPの場所の履歴を保持するP個のエントリを含んでよい。例えば、シーケンシャル判定部47は、FP履歴テーブル47aに基づき、P個のシーケンシャル性を検出してよい。
図16の例において、「No.0」のエントリでは、記憶領域40dのデータレイアウト上で「1856」、「1920」、「2040」、「2048」の順で過去に4回FPがヒットしており、最後は「2048」である。また、各FP間の距離は「8」、「15」、「1」である。例えば、シーケンシャル判定部47は、記憶領域40dのデータレイアウト上で最後にヒットした場所である「2048」から±(8×N)の場所のFPがヒットした場合、「No.0」は5回目のヒットになり、「H=5」の場合にはシーケンシャル性があると判定する。なお、シーケンシャル判定部47は、H回のヒットを検出したエントリ(図16の例では「No.0」)をFP履歴テーブル47aから削除してよい。
シーケンシャル判定部47は、FP履歴テーブル47aのエントリを入れ替える場合、一定間隔以上利用されていないエントリ、又は、アクセスのあったFPの場所に最も近い場所を値として有するエントリと入れ替えてよい。
以上のように、シーケンシャル判定部47は、複数の書込要求に含まれる複数のFPと一致する記憶領域40dに記憶された複数のFPについて、複数の書込要求の受信順で隣り合うFP間の前記データレイアウト上の書込位置の距離が、所定個のFP間において第1所定範囲以内である場合、複数の書込要求のシーケンシャル性を検出してよい。
パラメータ調整部48は、シーケンシャル判定に用いられる上述したパラメータを調整する。例えば、パラメータ調整部48は、条件を緩和したシーケンシャル判定を行なう際にパラメータ調整を行ない、調整後のパラメータに基づきシーケンシャル判定部47にシーケンシャル判定を実行させてよい。
例えば、パラメータ調整部48は、シーケンシャル判定部47によるシーケンシャル判定において、シーケンシャルであると判定されない場合に、シーケンシャルであると判定されるための条件を緩和させるようにパラメータを調整する。
一例として、パラメータ調整部48は、図17に示すように、不要データが含まれる場合でもシーケンシャルであると判定されることを許容するために、Nの値を大きくして、シーケンシャル判定部47にリトライさせる。一実施形態では、パラメータ調整部48は、Nの値を2倍、例えば16から32に設定するものとする。以下、調整後のNをN’と表記する。なお、パラメータ調整部48は、P、N、Hのうちのいずれか1つ、又は、2つ以上の組み合わせのパラメータを調整してもよい。
シーケンシャル判定部47は、H回ヒットした場合、FP履歴テーブル47aの該当エントリから各FP間の距離を算出し、パラメータ調整後のN’に基づく距離よりも大きい距離が存在するか否かを判定する。N’に基づく距離よりも大きい距離が1つ以上存在する場合、条件を緩和した状態でのシーケンシャル判定であるため、シーケンシャル判定部47は、プリフェッチャ40aに対してプリフェッチの実行を抑止させ、処理がコンパクション判定部49によるコンパクション判定に移行する。一方、N’に基づく距離よりも大きい距離が存在しない場合、シーケンシャル判定部47は、シーケンシャル性があると判定してよい。
以上のように、シーケンシャル判定部47は、第1所定範囲に基づく判定で複数の書込要求のシーケンシャル性を検出しない場合、第1所定範囲を範囲に含む第2所定範囲(例えば±(α×N’))に基づき、複数の書込要求のシーケンシャル性を検出してよい。第2所定範囲に基づく判定でシーケンシャル性を検出した場合、シーケンシャル判定部47は、プリフェッチャ40aによるプリフェッチを抑制してよい。
プリフェッチャ40aは、FPをプリフェッチしてコンピュートサーバ2に転送する。例えば、プリフェッチャ40aは、シーケンシャル判定部47によりシーケンシャル性があると判定(検出)された場合、換言すればシーケンシャル判定に成功した場合、プリフェッチを実行すると判定し、プリフェッチをスケジュールしてよい。
例えば、プリフェッチャ40aは、プリフェッチにおいて、直前に受信した複数のFPの後続のFP、例えば記憶領域40dのデータレイアウト上で後続のFPを読み出してコンピュートサーバ2に送信してよい。
一例として、プリフェッチャ40aは、シーケンシャル判定部47においてH回ヒットしたFPに続くFPの情報を、第1レイアウト管理部44を通じて取得し、ネットワークIF部40eを介してコンピュートサーバ2に通知してよい。
なお、シーケンシャル判定部47において、パラメータ調整部48により調整されたN’に基づく距離以上の距離が1つ以上存在すると判定された場合、条件を緩和した状態でのシーケンシャル判定であるため、プリフェッチの実行を抑止してよい。一方、N’に基づく距離以上の距離が存在しない場合、プリフェッチャ40aは、プリフェッチを実行すると判定してよい。
コンピュートサーバ2のストレージコンポーネント20は、プリフェッチャ40aが送信したFPを受信すると、当該FPをコンテンツキャッシュ20aに格納してよい。これにより、コンピュートサーバ2は、次の書込要求の送信の際の重複排除判定部22の処理に、プリフェッチされたFPを利用することができる。
コンパクション判定部49は、コンパクションを行なうか否かを判定する。コンパクション判定部49は、例えば、プリフェッチヒット、及び、シーケンシャル判定の一方又は双方を契機として判定を行なってよい。
(プリフェッチヒット契機のコンパクション)
コンパクション判定部49は、プリフェッチヒットした際に、ヒット履歴テーブル46aにおける、ヒットしたFPの周囲のエントリを参照し、ヒット回数に差異が存在するエントリを不要データとしてマークする。ヒット回数に差異が存在するエントリとしては、例えば、ヒットしたFPの周囲のエントリのうちの最大ヒット回数、又は、平均ヒット回数から所定の閾値(第1閾値)を減じた回数以下のエントリであってよい。
図18は、プリフェッチヒット契機のコンパクション処理の一例を説明するための図である。コンパクション判定部49は、例えば、FP[B107E5]にプリフェッチヒットした場合(符号(1)参照)、ヒット履歴テーブル46aにおけるFP[B107E5]のエントリの周囲n個の履歴を参照し(符号(2)参照)、不要データを検出してよい。
第1の例では、コンパクション判定部49は、ヒットした周辺n(nは1以上の整数)個の履歴で(最大ヒット回数-閾値)以下のエントリを不要データと認識してよい。n=3、閾値=2とした場合、図18の例では最大ヒット回数が3、閾値が2であるため、コンパクション判定部49は、ヒット回数が1回以下の[C26D4A]を不要データとして認識する。
第2の例では、コンパクション判定部49は、ヒットした周辺n個の履歴で(平均ヒット回数-閾値)以下のエントリを不要データと認識してよい。n=3、閾値=1とした場合、図18の例では平均ヒット回数が2、閾値が1であるため、コンパクション判定部49は、ヒット回数が1回以下の[C26D4A]を不要データとして認識する。
そして、コンパクション判定部49は、周辺n個の履歴の中で、不要データの数が閾値(第2閾値)以上である場合、コンパクションをスケジュールしてよい。
図19は、コンパクション処理の一例を説明するための図である。図19の例では、プリフェッチヒットした際に、ヒット履歴テーブル46aにおけるヒットしたエントリの周囲n個を参照し、0回であれば不要データであると判定し、不要データを1つ以上検出した場合にコンパクションを行なう設定であるものとする。
図19の例では、「532」のFPにヒットした場合、「528」のFPは「0」回ヒットであるため、コンパクション判定部49は、「528」のFP[58E13B]が不要データであると判定し、判定後にコンパクションをスケジュールしてよい。
例えば、第1レイアウト管理部44は、スケジュールされたコンパクションにより、記憶領域40d-1における「528」のFP[58E13B]を除外したFP[4F89A3]、[B107E5]、[C26D4A]を他の記憶領域40d-2に配置してよい。なお、コンパクション判定部49は、ヒット履歴テーブル46aに対して、記憶領域40d-2に配置後のFPの場所(位置)を更新してよい。
以上のように、コンパクション判定部49は、プリフェッチにおいて送信したFPと一致するFPを含む書込要求を受信した場合(プリフェッチヒットの場合)、ヒット履歴テーブル46aに基づき除外対象のFPを選択してよい。そして、コンパクション判定部49は、記憶領域40dの第1領域40d-1に記憶された複数のフィンガープリントのうち、選択した除外対象のFPを除いた1以上のFPを、記憶領域40dの第2領域40d-2に移動してよい。
(シーケンシャル判定契機のコンパクション)
コンパクション判定部49は、シーケンシャル判定においてH回ヒットした場合、FP履歴テーブル47aの該当エントリから各FP間の距離を算出し、Nに基づく距離以上の距離が存在するか否かを判定する。コンパクション判定部49は、Nに基づく距離以上の距離が存在する場合、不要データを除外するためにコンパクションをスケジュールする。
図20は、シーケンシャル判定契機のコンパクション処理の一例を説明するための図である。
第1の例では、コンパクション判定部49は、(N-閾値)以上の距離がm(mは1以上の整数)個以上存在する場合、コンパクションを実行すると判定してよい。N=16、閾値(第3閾値)=2、m=2とした場合、図20の例では、「No.0」に「14」以上の距離が2つ存在するため、コンパクション判定部49は、コンパクションをスケジュールする。
第2の例では、コンパクション判定部49は、各距離の平均値が(N-閾値)以上である場合、コンパクションを実行すると判定してよい。N=16、閾値(第4閾値)=7とした場合、図20の例では、「No.0」における距離の平均値は「9.75」であり、「9」以上であるため、コンパクション判定部49は、コンパクションをスケジュールする。
なお、シーケンシャル判定契機のコンパクションでは、コンパクション判定部49は、例えば、記憶領域40dのデータレイアウト上で(N-閾値)以上の距離が離れたFP間に存在するFPを除外対象の不要データとして決定してもよい。第1レイアウト管理部44は、図19に例示するように、記憶領域40d-1のFPのうちの不要データを除外したFPを記憶領域40d-2に配置してよい。
以上のように、コンパクション判定部49は、シーケンシャル判定部47が第2所定範囲に基づきシーケンシャル性を検出した場合、隣り合うFP間のデータレイアウト上の書込位置の距離と第1所定範囲とに基づき除外対象のFPを選択してよい。そして、コンパクション判定部49は、記憶領域40dの第1領域40d-1に記憶された複数のFPのうち、選択した除外対象のFPを除いた1以上のFPを、記憶領域40dの第2領域40d-2に移動してよい。
〔1-4〕動作例
次に、上述した一実施形態に係るブロックストレージシステム1の動作例を説明する。
〔1-4-1〕コンピュートサーバの動作例
図21は、一実施形態に係るコンピュートサーバ2の動作例を説明するためのフローチャートである。図21に例示するように、コンピュートサーバ2で書き込みが発生する(ステップS1)。
ストレージコンポーネント20のダーティデータ管理部21は、重複排除判定部22を利用して、書き込み対象のデータのFPがコンテンツキャッシュ20aにヒットするか否かを判定する(ステップS2)。
コンテンツキャッシュ20aにヒットする場合(ステップS2でYES)、ダーティデータ管理部21は、FP及びLUN+LBAをストレージサーバ4に転送し(ステップS3)、処理がステップS5に移行する。
コンテンツキャッシュ20aにヒットしない場合(ステップS2でNO)、ダーティデータ管理部21は、書き込み対象のデータと、FP及びLUN+LBAとをストレージサーバ4に転送し(ステップS4)、処理がステップS5に移行する。
ダーティデータ管理部21は、ステップS3及びS4においてストレージサーバ4に送信したリクエストに対する、ストレージサーバ4からの応答を待ち合わせる(ステップS5)。
ダーティデータ管理部21は、受信した応答を解析し、プリフェッチされたFPが応答に含まれるか否かを判定する(ステップS6)。プリフェッチされたFPが応答に含まれない場合(ステップS6でNO)、処理が終了する。
プリフェッチされたFPが応答に含まれる場合(ステップS6でYES)、ダーティデータ管理部21は、FP管理部23を通じて、受信したFPをコンテンツキャッシュ20aに追加し(ステップS7)、コンピュートサーバ2による書き込み処理が終了する。
コンピュートサーバ2は、書き込むデータ単位で図21に例示する処理を実行する。このため、ステップS7において、ストレージサーバ4から受信したFPをコンテンツキャッシュ20aに追加することで、後続のデータのFPがステップS2でコンテンツキャッシュ20aにヒットする可能性を高めることができる。
〔1-4-2〕ストレージサーバの動作例
図22は、一実施形態に係るストレージサーバ4の動作例を説明するためのフローチャートである。図22に例示するように、ストレージサーバ4は、コンピュートサーバ2からステップS3又はS4(図21参照)で転送されたデータを受信する(ステップS11)。
ストレージサーバ4は、第1管理部41及び第2管理部42により、重複排除以降のストレージ処理を実行する(ステップS12)。ストレージ処理は、例えば、既知のブロックストレージシステムにおけるストレージサーバの処理と同様であってよい。
ストレージサーバ4は、プリフェッチ処理を実行する(ステップS13)。プリフェッチャ40aは、プリフェッチするFPが存在するか否かを判定する(ステップS14)。
プリフェッチするFPが存在する場合(ステップS14でYES)、プリフェッチャ40aは、コンピュートサーバ2に対して、プリフェッチするFPを付加して、書き込み完了を応答し(ステップS15)、ストレージサーバ4による受信処理が終了する。
プリフェッチしたFPが存在しない場合(ステップS14でNO)、ストレージサーバ4は、コンピュートサーバ2に対して、書き込み完了を応答し(ステップS16)、ストレージサーバ4による受信処理が終了する。
〔1-4-3〕ストレージサーバのプリフェッチ処理の動作例
図23は、図22のステップS13に示すストレージサーバ4のプリフェッチ処理の動作例を説明するためのフローチャートである。図23に例示するように、ストレージサーバ4のヒット率・履歴管理部46は、プリフェッチヒット率及びヒット履歴(ヒット履歴テーブル46a)を更新する(ステップS21)。
コンパクション判定部49は、ヒット履歴テーブル46aに基づき、プリフェッチヒット且つヒット履歴で不要データが多いか否かを判定する(ステップS22)。例えば、コンパクション判定部49は、図18に例示するように、周辺n個の履歴の中で、不要データの数が閾値(第2閾値)以上であるか否かを判定する。
プリフェッチヒットではない、又は、ヒット履歴で不要データが多くない場合(ステップS22でNO)、処理がステップS24に移行する。
プリフェッチヒット且つヒット履歴で不要データが多い場合(ステップS22でYES)、コンパクション判定部49は、プリフェッチヒット契機のコンパクションをスケジュールし(ステップS23)、処理がステップS24に移行する。
シーケンシャル判定部47は、FP履歴テーブル47aと、コンピュートサーバ2から受信したFPとに基づくシーケンシャル判定を行ない、FPがFP履歴テーブル47aにヒットするか否かを判定する(ステップS24)。
ヒットしない場合(ステップS24でNO)、シーケンシャル判定部47及びパラメータ調整部48は、条件(パラメータ)を緩和したシーケンシャル判定を行ない、FPがFP履歴テーブル47aにヒットするか否かを判定する(ステップS25)。
ステップS25でヒットしない場合(ステップS25でNO)、処理がステップS28に移行する。一方、ステップS24又はS25でヒットする場合(ステップS24でYES又はステップS25でYES)、処理がステップS26に移行する。
ステップS26において、プリフェッチャ40aは、プリフェッチを実行するか否かを判定する。プリフェッチを実行しない、例えばステップS25でYES経由で実行されたステップS26の場合(ステップS26でNO)、処理がステップS28に移行する。
プリフェッチを実行する、例えばステップS24でYES経由で実行されたステップS26の場合(ステップS26でYES)、プリフェッチャ40aは、プリフェッチをスケジュールし(ステップS27)、処理がステップS28に移行する。
ステップS28において、コンパクション判定部49は、FP履歴テーブル47aに基づき、シーケンシャル判定時に不要データが多いか否かを判定する。例えば、コンパクション判定部49は、図20に例示するように、(N-閾値(第3閾値))以上の距離がm個以上存在するか否か、又は、各距離の平均値が(N-閾値(第4閾値))以上か否かを判定する。
シーケンシャル判定時に不要データが多くない場合(ステップS28でNO)、プリフェッチ処理が終了する。
シーケンシャル判定時に不要データが多い場合(ステップS28でYES)、コンパクション判定部49は、シーケンシャル判定契機のコンパクションをスケジュールし(ステップS29)、プリフェッチ処理が終了する。
なお、ステップS23及びS29でスケジュールされたコンパクションは、第1レイアウト管理部44により所定のタイミングで実施される。また、ステップS27でスケジュールされたプリフェッチは、プリフェッチャ40aにより所定のタイミング(例えば図22のステップS15)で実施される。
〔1-5〕適用例
以下、図24~図26を参照して、一実施形態に係る手法の適用例を説明する。適用例では、それぞれがコンピュートサーバ2を利用するユーザA~Cが、ストレージサーバ4上で同一の1PBのデータセット40gを利用して機械学習を実行する場合を想定する。
図24に例示するように、ユーザAは、1PBのデータセット40gをストレージサーバ4のストレージ40cに書き込む。なお、以下の説明では、重複排除の単位を4KiB、ファイルの平均サイズを8KiBとする。また、記憶領域40d-1に例示するように、ファイルのFP(「データ」と表記)の2回の書き込みに続いてファイルメタデータ(「メタデータ」と表記)又はジャーナリングのFPが1回書き込まれるものとする。さらに、メタデータ又はジャーナリングは重複せず、不要データになるものとする。
次に、図25に例示するように、ユーザBは、他のコンピュートサーバ2(ユーザAと同じコンピュートサーバ2でもよい)から、データセット40gをストレージサーバ4のストレージ40cに書き込む。ユーザBが利用するコンピュートサーバ2からの書き込みにおいて、ストレージサーバ4では、最初の数ファイルの書き込み以降、シーケンシャル判定が行なわれ、プリフェッチが動作すれば、データの転送がなくなるため通信量の削減が可能となる。このとき、シーケンシャル判定部47及びコンパクション判定部49により、プリフェッチするFPのうちの3分の1は不要データであることが検出されるため、記憶領域40d-1から記憶領域40d-2へのコンパクションが実行される。また、シーケンシャル判定で失敗し通信量の削減ができない場合にも、シーケンシャル判定契機のコンパクションが実行される。
次に、図26に例示するように、ユーザCは、他のコンピュートサーバ2(ユーザA又はBと同じコンピュートサーバ2でもよい)から、データセット40gをストレージサーバ4のストレージ40cに書き込む。ユーザBによる書き込みの際にコンパクションが実行されているため、シーケンシャル判定及びプリフェッチが動作し、ユーザBによる書き込みのときよりもデータの転送を抑制でき、通信量を削減できる。
例えば、通信量として、LUN+LBAを8+8=16B、FPを20Bと仮定した場合、従来の手法であれば、1回の通信サイズが4096+16+20=4132Bとなる。一方、一実施形態に係る手法において、全てのデータの重複排除ができた場合、1回の通信サイズは16+20=36Bとなる。1PBのデータセット40gの書き込みでは、通信回数が2(50-12)=238回であるため、通信量を、4132×238Bから、36×238Bに削減することができる。割合としては、36/4132=0.87%にまで通信量を削減することができる。
ストレージサーバ4からコンピュートサーバ2へのFPの転送量は、理想的な場合で20×238Bである。図25に例示するユーザBによる書き込みの場合は、2つのデータにつき1つの割合で不要データが含まれるため、転送量はユーザCによる書き込みの場合の1.5倍程度となる。一方、図26に例示するユーザCによる書き込みの場合には、コンパクションによって、転送量が理想的な20×238Bに近い値とすることができる。
なお、上述した例は、通信量の削減効果が大きくなると考えられるユースケースに対して一実施形態に係る手法を適用したものであり、ユースケース、ワークロード、データセット等に応じて、通信量の削減効果は変化する。従って、上述した一実施形態に係るシーケンシャル判定、コンパクション、プリフェッチ等の処理におけるパラメータ等の各種条件は、ユースケース、ワークロード、データセット等に応じて適宜調整されてよい。
〔1-6〕ハードウェア構成例
上述したコンピュートサーバ2及びストレージサーバ4のそれぞれを実現する装置は、仮想サーバ(VM;Virtual Machine)であってもよいし、物理サーバであってもよい。また、コンピュートサーバ2及びストレージサーバ4の機能は、それぞれ1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、コンピュートサーバ2及びストレージサーバ4のそれぞれの機能のうちの少なくとも一部は、クラウド環境により提供されるHW(Hardware)リソース及びNW(Network)リソースを用いて実現されてもよい。
コンピュートサーバ2及びストレージサーバ4のそれぞれは、互いに同様のコンピュータにより実現されてよい。以下、コンピュートサーバ2及びストレージサーバ4のそれぞれの機能を実現するコンピュータとして、コンピュータ10を例に挙げる。
図27は、コンピュータ10のハードウェア(HW)構成例を示すブロック図である。コンピュートサーバ2及びストレージサーバ4のそれぞれの機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図27に例示するHW構成を備えてよい。
図27に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fを備えてよい。
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
なお、コンピュートサーバ2が記憶するコンテンツキャッシュ20aの情報は、メモリ10b及び記憶部10cの一方又は双方が有する記憶領域に格納されてもよい。また、ストレージサーバ4のストレージ40c、記憶領域40dは、メモリ10b及び記憶部10cの一方又は双方が有する記憶領域により実現されてもよい。さらに、ストレージ40cが記憶するヒット履歴テーブル46a及びFP履歴テーブル47aの情報は、メモリ10b及び記憶部10cの一方又は双方が有する記憶領域に格納されてもよい。
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(情報処理プログラム)を格納してよい。例えば、コンピュートサーバ2のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、図9に例示するストレージコンポーネント20、及び、図14に例示するブロック21~23としての機能を実現できる。また、ストレージサーバ4のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、図9に例示するプリフェッチャ40a、重複排除・圧縮部40b、及び、図14に例示するブロック41~49としての機能を実現できる。
IF部10dは、コンピュートサーバ2間、ストレージサーバ4間、及び、コンピュートサーバ2とストレージサーバ4との間の各ネットワーク、一例としてネットワーク3の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、図14に示すネットワークIF部20b及び40eは、それぞれIF部10dの一例である。また、例えば、プログラム10gは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
I/O部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、コンピュートサーバ2及びストレージサーバ4の一方又は双方において、I/O部10e及び読取部10fの少なくとも一方は、省略されてもよい。
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、図14に示すコンピュートサーバ2が備えるブロック21~23は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図14に示すストレージサーバ4が備えるブロック41~49は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
さらに、ブロックストレージシステム1、コンピュートサーバ2、ストレージサーバ4のそれぞれは、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。例えば、図14に示す複数の機能ブロックのそれぞれは、Webサーバ、アプリケーションサーバ、DBサーバ等のサーバに分散して配置されてよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、ブロックストレージシステム1、コンピュートサーバ2、ストレージサーバ4としての各処理機能を実現してもよい。
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1の情報処理装置と、
前記第1の情報処理装置とネットワークを介して接続される第2の情報処理装置と、を備え、
前記第1の情報処理装置は、
データのフィンガープリントを記憶する第1記憶領域と、
前記第2の情報処理装置への書込対象のデータのフィンガープリントが前記第1記憶領域に存在する場合、前記フィンガープリントを含む書込要求を前記第2の情報処理装置に送信し、前記フィンガープリントが前記第1記憶領域に存在しない場合、前記書込対象のデータと前記フィンガープリントとを含む書込要求を前記第2の情報処理装置に送信する送信部と、を備え、
前記第2の情報処理装置は、
記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する第2記憶領域を備える前記記憶装置と、
前記第1の情報処理装置から前記ネットワークを介して前記書込要求を受信し、
受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記第2記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出し、
前記複数の書込要求のシーケンシャル性を検出した場合、前記第2記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1の情報処理装置に送信する、
制御部と、を備え、
前記第1の情報処理装置は、受信した前記後続のフィンガープリントを前記第1記憶領域に格納する、
情報処理システム。
(付記2)
第1の情報処理装置とネットワークを介して接続される第2の情報処理装置であって、
記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する記憶領域を備える前記記憶装置と、
前記記憶装置への書込対象のデータのフィンガープリントを含む書込要求を、前記第1の情報処理装置から前記ネットワークを介して受信し、
受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出し、
前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1の情報処理装置に送信する、
制御部と、
を備える、情報処理装置。
(付記3)
前記制御部は、前記検出する処理において、前記複数の書込要求に含まれる前記複数のフィンガープリントと一致する前記記憶領域に記憶された複数のフィンガープリントについて、前記複数の書込要求の受信順で隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離が、所定個のフィンガープリント間において第1所定範囲以内である場合、前記複数の書込要求のシーケンシャル性を検出する、
付記2に記載の情報処理装置。
(付記4)
前記制御部は、
前記検出する処理において、前記複数の書込要求のシーケンシャル性を検出しない場合、前記隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離が、前記所定個のフィンガープリント間において前記第1所定範囲を含む第2所定範囲以内である場合、前記複数の書込要求のシーケンシャル性を検出し、
前記送信する処理において、前記後続のフィンガープリントの送信を抑制する、
付記3に記載の情報処理装置。
(付記5)
前記制御部は、前記第2所定範囲に基づき前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域の第1領域に記憶された複数のフィンガープリントのうち、隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離と前記第1所定範囲とに基づき選択した除外対象のフィンガープリントを除いた1以上のフィンガープリントを、前記記憶領域の第2領域に移動する、
付記4に記載の情報処理装置。
(付記6)
前記制御部は、
前記送信する処理において送信した複数のフィンガープリントの各々について、前記送信する処理において送信したフィンガープリントと一致するフィンガープリントを含む書込要求を受信した回数を記録する情報を管理し、
前記送信する処理において送信したフィンガープリントと一致するフィンガープリントを含む書込要求を受信した場合、前記記憶領域の第1領域に記憶された複数のフィンガープリントのうち、前記情報に基づき選択した除外対象のフィンガープリントを除いた1以上のフィンガープリントを、前記記憶領域の第2領域に移動する、
付記2~付記5のいずれか1項に記載の情報処理装置。
(付記7)
第1のコンピュータとネットワークを介して接続される第2のコンピュータが、
記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する記憶領域を備える前記記憶装置への書込対象のデータのフィンガープリントを含む書込要求を、前記第1のコンピュータから前記ネットワークを介して受信し、
受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出し、
前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1のコンピュータに送信する、
処理を実行する、情報処理方法。
(付記8)
前記検出する処理は、前記複数の書込要求に含まれる前記複数のフィンガープリントと一致する前記記憶領域に記憶された複数のフィンガープリントについて、前記複数の書込要求の受信順で隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離が、所定個のフィンガープリント間において第1所定範囲以内である場合、前記複数の書込要求のシーケンシャル性を検出する、処理を含む、
付記7に記載の情報処理方法。
(付記9)
前記検出する処理は、前記複数の書込要求のシーケンシャル性を検出しない場合、前記隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離が、前記所定個のフィンガープリント間において前記第1所定範囲を含む第2所定範囲以内である場合、前記複数の書込要求のシーケンシャル性を検出する、処理を含み、
前記送信する処理は、前記第2所定範囲に基づき前記複数の書込要求のシーケンシャル性を検出した場合、前記後続のフィンガープリントの送信を抑制する、処理を含む、
付記8に記載の情報処理方法。
(付記10)
前記第2所定範囲に基づき前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域の第1領域に記憶された複数のフィンガープリントのうち、隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離と前記第1所定範囲とに基づき選択した除外対象のフィンガープリントを除いた1以上のフィンガープリントを、前記記憶領域の第2領域に移動する、
処理を前記コンピュータが実行する、付記9に記載の情報処理方法。
(付記11)
前記送信する処理において送信した複数のフィンガープリントの各々について、前記送信する処理において送信したフィンガープリントと一致するフィンガープリントを含む書込要求を受信した回数を記録する情報を管理し、
前記送信する処理において送信したフィンガープリントと一致するフィンガープリントを含む書込要求を受信した場合、前記記憶領域の第1領域に記憶された複数のフィンガープリントのうち、前記情報に基づき選択した除外対象のフィンガープリントを除いた1以上のフィンガープリントを、前記記憶領域の第2領域に移動する、
処理を前記コンピュータが実行する、付記7~付記10のいずれか1項に記載の情報処理方法。
1 ブロックストレージシステム
2 コンピュートサーバ
20 ストレージコンポーネント
20a コンテンツキャッシュ
20b、40e ネットワークIF部
21 ダーティデータ管理部
22 重複排除判定部
23 FP管理部
3 ネットワーク
4 ストレージサーバ
40a プリフェッチャ
40b 重複排除・圧縮部
40c ストレージ
40d 記憶領域
40f ドライブIF部
40g データセット
41 第1管理部
42 第2管理部
43 重複排除ヒット判定部
44 第1レイアウト管理部
45 第2レイアウト管理部
46 ヒット率・履歴管理部
46a ヒット履歴テーブル
47 シーケンシャル判定部
47a FP履歴テーブル
48 パラメータ調整部
49 コンパクション判定部

Claims (7)

  1. 第1の情報処理装置と、
    前記第1の情報処理装置とネットワークを介して接続される第2の情報処理装置と、を備え、
    前記第1の情報処理装置は、
    データのフィンガープリントを記憶する第1記憶領域と、
    前記第2の情報処理装置への書込対象のデータのフィンガープリントが前記第1記憶領域に存在する場合、前記フィンガープリントを含む書込要求を前記第2の情報処理装置に送信し、前記フィンガープリントが前記第1記憶領域に存在しない場合、前記書込対象のデータと前記フィンガープリントとを含む書込要求を前記第2の情報処理装置に送信する送信部と、を備え、
    前記第2の情報処理装置は、
    記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する第2記憶領域を備える前記記憶装置と、
    前記第1の情報処理装置から前記ネットワークを介して前記書込要求を受信し、
    受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記第2記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出し、
    前記複数の書込要求のシーケンシャル性を検出した場合、前記第2記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1の情報処理装置に送信する、
    制御部と、を備え、
    前記第1の情報処理装置は、受信した前記後続のフィンガープリントを前記第1記憶領域に格納する、
    情報処理システム。
  2. 第1の情報処理装置とネットワークを介して接続される第2の情報処理装置であって、
    記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する記憶領域を備える前記記憶装置と、
    前記記憶装置への書込対象のデータのフィンガープリントを含む書込要求を、前記第1の情報処理装置から前記ネットワークを介して受信し、
    受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出し、
    前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1の情報処理装置に送信する、
    制御部と、
    を備える、情報処理装置。
  3. 前記制御部は、前記検出する処理において、前記複数の書込要求に含まれる前記複数のフィンガープリントと一致する前記記憶領域に記憶された複数のフィンガープリントについて、前記複数の書込要求の受信順で隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離が、所定個のフィンガープリント間において第1所定範囲以内である場合、前記複数の書込要求のシーケンシャル性を検出する、
    請求項2に記載の情報処理装置。
  4. 前記制御部は、
    前記検出する処理において、前記複数の書込要求のシーケンシャル性を検出しない場合、前記隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離が、前記所定個のフィンガープリント間において前記第1所定範囲を含む第2所定範囲以内である場合、前記複数の書込要求のシーケンシャル性を検出し、
    前記送信する処理において、前記後続のフィンガープリントの送信を抑制する、
    請求項3に記載の情報処理装置。
  5. 前記制御部は、前記第2所定範囲に基づき前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域の第1領域に記憶された複数のフィンガープリントのうち、隣り合うフィンガープリント間の前記データレイアウト上の書込位置の距離と前記第1所定範囲とに基づき選択した除外対象のフィンガープリントを除いた1以上のフィンガープリントを、前記記憶領域の第2領域に移動する、
    請求項4に記載の情報処理装置。
  6. 前記制御部は、
    前記送信する処理において送信した複数のフィンガープリントの各々について、前記送信する処理において送信したフィンガープリントと一致するフィンガープリントを含む書込要求を受信した回数を記録する情報を管理し、
    前記送信する処理において送信したフィンガープリントと一致するフィンガープリントを含む書込要求を受信した場合、前記記憶領域の第1領域に記憶された複数のフィンガープリントのうち、前記情報に基づき選択した除外対象のフィンガープリントを除いた1以上のフィンガープリントを、前記記憶領域の第2領域に移動する、
    請求項2~請求項5のいずれか1項に記載の情報処理装置。
  7. 第1のコンピュータとネットワークを介して接続される第2のコンピュータが、
    記憶装置に書き込まれた複数のデータの各々のフィンガープリントを前記複数のデータの書き込み順に記憶する記憶領域を備える前記記憶装置への書込対象のデータのフィンガープリントを含む書込要求を、前記第1のコンピュータから前記ネットワークを介して受信し、
    受信した複数の前記書込要求に含まれる複数の前記フィンガープリントの、前記記憶領域のデータレイアウト上の書込位置に基づき、前記複数の書込要求のシーケンシャル性を検出し、
    前記複数の書込要求のシーケンシャル性を検出した場合、前記記憶領域のデータレイアウト上で前記複数のフィンガープリントの後続のフィンガープリントを読み出して前記第1のコンピュータに送信する、
    処理を実行する、情報処理方法。
JP2021003717A 2021-01-13 2021-01-13 情報処理システム、情報処理装置、及び、情報処理方法 Pending JP2022108619A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021003717A JP2022108619A (ja) 2021-01-13 2021-01-13 情報処理システム、情報処理装置、及び、情報処理方法
US17/493,883 US20220222175A1 (en) 2021-01-13 2021-10-05 Information processing system, information processing apparatus, and method for processing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021003717A JP2022108619A (ja) 2021-01-13 2021-01-13 情報処理システム、情報処理装置、及び、情報処理方法

Publications (1)

Publication Number Publication Date
JP2022108619A true JP2022108619A (ja) 2022-07-26

Family

ID=82323079

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021003717A Pending JP2022108619A (ja) 2021-01-13 2021-01-13 情報処理システム、情報処理装置、及び、情報処理方法

Country Status (2)

Country Link
US (1) US20220222175A1 (ja)
JP (1) JP2022108619A (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949546B2 (en) * 2012-05-31 2015-02-03 Vmware, Inc. Network cache system for reducing redundant data
US9342253B1 (en) * 2013-08-23 2016-05-17 Nutanix, Inc. Method and system for implementing performance tier de-duplication in a virtualization environment
US10284470B2 (en) * 2014-12-23 2019-05-07 Intel Corporation Technologies for network device flow lookup management
US10204229B2 (en) * 2017-03-21 2019-02-12 Nxp B.V. Method and system for operating a cache in a trusted execution environment
CN110427332B (zh) * 2019-08-05 2021-08-20 上海兆芯集成电路有限公司 数据预取装置、数据预取方法及微处理器
US11394799B2 (en) * 2020-05-07 2022-07-19 Freeman Augustus Jackson Methods, systems, apparatuses, and devices for facilitating for generation of an interactive story based on non-interactive data
US11385817B2 (en) * 2020-09-22 2022-07-12 Vmware, Inc. Supporting deduplication in object storage using subset hashes

Also Published As

Publication number Publication date
US20220222175A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
US10120577B2 (en) Method and system for implementing performance tier de-duplication in a virtualization environment
US9690487B2 (en) Storage apparatus and method for controlling storage apparatus
JP6208156B2 (ja) ハイブリッドストレージ集合体の複製
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
US9547591B1 (en) System and method for cache management
Byan et al. Mercury: Host-side flash caching for the data center
US8904061B1 (en) Managing storage operations in a server cache
US9507732B1 (en) System and method for cache management
US7769952B2 (en) Storage system for controlling disk cache
US8819291B2 (en) Compression on thin provisioned volumes using extent based mapping
US20190129971A1 (en) Storage system and method of controlling storage system
US8880840B2 (en) Writing adjacent tracks to a stride, based on a comparison of a destaging of tracks to a defragmentation of the stride
US20150363134A1 (en) Storage apparatus and data management
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9189408B1 (en) System and method of offline annotation of future accesses for improving performance of backup storage system
US8909886B1 (en) System and method for improving cache performance upon detecting a migration event
US10678431B1 (en) System and method for intelligent data movements between non-deduplicated and deduplicated tiers in a primary storage array
US10705733B1 (en) System and method of improving deduplicated storage tier management for primary storage arrays by including workload aggregation statistics
US9286219B1 (en) System and method for cache management
US8990615B1 (en) System and method for cache management
US11055001B2 (en) Localized data block destaging
US9767029B2 (en) Data decompression using a construction area
US11513902B1 (en) System and method of dynamic system resource allocation for primary storage systems with virtualized embedded data protection
JP2022108619A (ja) 情報処理システム、情報処理装置、及び、情報処理方法
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system