JP2018181202A - ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム Download PDF

Info

Publication number
JP2018181202A
JP2018181202A JP2017083857A JP2017083857A JP2018181202A JP 2018181202 A JP2018181202 A JP 2018181202A JP 2017083857 A JP2017083857 A JP 2017083857A JP 2017083857 A JP2017083857 A JP 2017083857A JP 2018181202 A JP2018181202 A JP 2018181202A
Authority
JP
Japan
Prior art keywords
meta
data
storage
management unit
address
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
JP2017083857A
Other languages
English (en)
Inventor
直浩 武田
Naohiro Takeda
直浩 武田
典秀 久保田
Norihide Kubota
典秀 久保田
與志仁 紺田
Yoshihito Konta
與志仁 紺田
祐輔 倉澤
Yusuke Kurasawa
祐輔 倉澤
利夫 菊池
Toshio Kikuchi
利夫 菊池
勇至 田中
Yuji Tanaka
勇至 田中
真理乃 梶山
Marino Kajiyama
真理乃 梶山
悠介 鈴木
Yusuke Suzuki
悠介 鈴木
祥成 篠▲崎▼
Yoshinari Shinozaki
祥成 篠▲崎▼
岳志 渡辺
Takashi Watanabe
岳志 渡辺
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 JP2017083857A priority Critical patent/JP2018181202A/ja
Priority to US15/949,134 priority patent/US20180307440A1/en
Publication of JP2018181202A publication Critical patent/JP2018181202A/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/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
    • 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/10Address translation
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0688Non-volatile semiconductor memory arrays
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile 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/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】SSDへの書き込み回数を減少させること。【解決手段】メタ管理部24は、メタアドレス及び論物メタを用いて、仮想ボリュームの論理アドレスとSSDの物理アドレスの変換処理を行う。メタ管理部24は、論物メタ管理部24aと、メタアドレス管理部24bとを有する。論物メタ管理部24aが、論理アドレスと物理アドレスを対応付ける論物メタの情報を管理する。データ処理管理部25は、論物メタの情報をRAIDユニットの単位でSSDへ追記及びまとめ書きする。【選択図】図8

Description

本発明は、ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラムに関する。
昨今、ストレージ装置の記憶媒体は、HDD(Hard Disk Drive)からよりアクセススピードの速いSSD(Solid State Drive)等のフラッシュメモリに移行している。SSDでは、メモリセルへの上書きを直接行うことはできず、例えば1MB(メガバイト)の大きさのブロックの単位でデータの消去が行われた後にデータの書き込みが行われる。
このため、ブロック内の一部のデータを更新する場合には、ブロック内の他のデータを退避し、ブロックを消去した後に、退避したデータと更新データを書き込むことが行われるため、ブロックの大きさに較べて小さいデータを更新する処理が遅い。また、SSDには書き込み回数の上限がある。このため、SSDでは、ブロックの大きさに較べて小さいデータの更新をできるだけ避けることが望ましい。そこで、ブロック内の一部のデータを更新する場合に、ブロック内の他のデータと更新データを新たなブロックに書き込むことが行われる。
しかし、新たなブロックを用いてデータの更新が行われると、データを記憶する物理アドレスが変更されるので、論理アドレスと物理アドレスを対応付ける管理データ(メタデータ)の更新が必要となる。また、ストレージ装置では、データの書き込み容量を削減するために、重複するデータブロックの排除が行われるが、重複排除(Deduplication)のための管理データの更新も必要となる。
なお、ログ構造化ファイルシステムにおいて、ストレージ装置を第1領域と第2領域とに分けて、第1領域と第2領域を以下のように使用する技術がある。第2領域には、多数のデータと、多数のデータと関連する多数のノードとが格納される。第1領域には、多数のノード各々に対応する多数のノード識別子と、多数のノード識別子各々に対応する多数の物理アドレスとを含むノードアドレステーブルが格納される。この技術によれば、メタデータの修正のための付加的な書き込み動作を減らすことができる。
また、ランダムライトアクセスが行われた時に、不使用ページに基づいて選択されたブロックのページに記録されたデータをバッファに書き込み、ブロックを消去後にバッファに書き込まれたデータをブロックに書き込む技術がある。この技術によれば、ガベージコレクションを行わないので、IOPS(Input Output Per Second)性能を向上させることができる。
また、N台のディスク装置から構成されるディスク記憶装置において、N×K個の論理ブロックに相当する容量を持つ書き込みバッファを備え、書き込みバッファに更新すべきデータの論理ブロックを蓄積し、制御装置が、以下の制御を行う技術がある。すなわち、制御装置は、蓄積した論理ブロックがN×K−1個に達するまで論理ブロックの更新を遅延させ、N×K−1個に達すると当該論理ブロックの論理アドレスタグブロックを加えたN×K個の論理ブロックを空領域に連続して順次書き込む。この技術によれば、論理アドレスと物理アドレスのマップを原理的に不要とすることで、安価で高速なディスク記憶装置を構築することができる。
特開2014−71906号公報 特開2010−237907号公報 特開平11−53235号公報
論理アドレスと物理アドレスを対応付ける管理データ、重複排除のための管理データ等の更新では、ブロック内の一部のデータが更新されるので、管理データはメインメモリ上に配置することが望まれる。しかしながら、管理データが大きくなるとメインメモリ上に全ての管理データを保持することができない。このため、管理データをSSDに書き込むことになるが、管理データの更新によってSSDへの書き込み回数が多くなるという問題がある。
本発明は、1つの側面では、管理データの更新によるSSDへの書き込み回数を減少させることを目的とする。
1つの態様では、ストレージ制御装置は、書き込み回数に制限を有する記憶媒体を用いる記憶装置を制御し、変換情報管理部と書込処理部とを有する。変換情報管理部は、記憶装置を使用する情報処理装置がデータの識別に用いる論理アドレスと記憶媒体上の該データの記憶位置を示す物理アドレスとを対応付けるアドレス変換情報を管理する。書込処理部は、変換情報管理部により管理されるアドレス変換情報を記憶媒体に追記及びまとめ書きを行う。
1つの側面では、本発明は、管理データの更新によるSSDへの書き込み回数を減少させることができる。
図1は、実施例に係るストレージ装置の記憶構成を示す図である。 図2は、RAIDユニットのフォーマットを示す図である。 図3は、参照メタのフォーマットを示す図である。 図4は、論物メタのフォーマットを示す図である。 図5は、実施例に係るメタメタ方式を説明するための図である。 図6は、メタアドレスのフォーマットを示す図である。 図7は、ドライブグループにおけるRAIDユニットの配置例を示す図である。 図8は、実施例に係る情報処理システムの構成を示す図である。 図9は、機能部間の関係を示す図である。 図10Aは、重複のないデータの書き込み処理のシーケンスを示す図である。 図10Bは、重複のあるデータの書き込み処理のシーケンスを示す図である。 図11は、読み出し処理のシーケンスを示す図である。 図12Aは、メタメタ方式導入前のスモールライトの数を示す図である。 図12Bは、メタメタ方式でのスモールライトの数を示す図である。 図12Cは、メタメタ方式で旧データ無効化を行わない場合のスモールライトの数を示す図である。 図13は、実施例に係るストレージ制御プログラムを実行するストレージ制御装置のハードウェア構成を示す図である。
以下に、本願の開示するストレージ制御装置、ストレージ制御方法及びストレージ制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るストレージ装置のデータ管理方法について図1〜図7を用いて説明する。図1は、実施例に係るストレージ装置の記憶構成を示す図である。図1に示すように、実施例に係るストレージ装置は、RAID(Redundant Arrays of Inexpensive Disks)6ベースのプール3aとして複数のSSD3dを管理する。また、実施例に係るストレージ装置は、複数のプール3aを有する。
プール3aには、仮想化プールと階層化プールがある。仮想化プールは1つのティア3bを有し、階層化プールは2つ以上のティア3bを有する。ティア3bは、1つ以上のドライブグループ3cを有する。ドライブグループ3cは、SSD3dのグループであり、6〜24台のSSD3dを有する。例えば、1つのストライプを記憶する6台のSSD3dのうち、3台はデータ記憶用に用いられ、2台はパリティ記憶用に用いられ、1台はホットスペア用に用いられる。なお、ドライブグループ3cは、25台以上のSSD3dを有してよい。
実施例に係るストレージ装置は、RAIDユニットの単位でデータを管理する。シン・プロビジョニングの物理割当の単位は、一般に固定サイズのチャンク単位で行われ、1チャンクは1RAIDユニットに該当する。以降の説明では、チャンクをRAIDユニットと呼称する。RAIDユニットは、プール3aから割り当てられる24MBの連続な物理領域である。実施例に係るストレージ装置は、データをRAIDユニット単位でメインメモリ上にバッファリングし、追記型でSSD3dに書き込む。
図2は、RAIDユニットのフォーマットを示す図である。図2に示すように、RAIDユニットには、複数のユーザデータユニット(データログとも呼ばれる。)が含まれる。ユーザデータユニットには、参照メタと圧縮データが含まれる。参照メタは、SSD3dに書き込まれるデータの管理データである。
圧縮データは、SSD3dに書き込まれるデータが圧縮されたものである。データの大きさは最大8KB(キロバイト)である。圧縮率を50%とすると、実施例に係るストレージ装置は、1つのRAIDユニットに、例えば24MB÷4.5KB≒5461個のユーザデータユニットが溜まると、RAIDユニットをSSD3dに書き込む。
図3は、参照メタのフォーマットを示す図である。図3(a)に示すように、参照メタには、SB(Super Block)と最大60個の参照先の参照LUN(Logical Unit Number:論理ユニット番号)/LBA(Logical Block Address:論理ブロックアドレス)情報を書き込むことができる記憶容量の領域が確保されている。SBのサイズは32B(バイト)であり、参照メタのサイズは512B(バイト)である。各参照LUN/LBA情報のサイズは8B(バイト)である。参照メタは、重複排除により新しい参照先ができると、参照先が追加となり、参照メタが更新される。ただし、データの更新により参照先がなくなった場合にも参照LUN/LBA情報は削除されないで保持される。無効になった参照LUN/LBA情報はガベージコレクションにより回収される。
図3(b)に示すように、SBには、4BのHeader Lengthと、20BのHash Valueと、2BのNext Offset Block Countが含まれる。Header Lengthは、参照メタの長さである。Hash Valueは、データのハッシュ値であり、重複排除のために用いられる。Next Offset Block Countは、次に格納する参照LUN/LBA情報の位置である。なお、Reservedは、将来の拡張用である。
図3(c)に示すように、参照LUN/LBA情報には、2BのLUNと、6BのLBAが含まれる。
また、実施例に係るストレージ装置は、論物変換情報である論物メタを用いてデータの論理アドレスと物理アドレスの対応関係を管理する。図4は、論物メタのフォーマットを示す図である。実施例に係るストレージ装置は、8KBのデータ毎に、図4に示した情報を管理する。
図4に示すように、論物メタの大きさは32Bである。論物メタには、2BのLUNと、6BのLBAがデータの論理アドレスとして含まれる。また、論物メタには、2BのCompression Byte Countが、圧縮されたデータのバイト数として含まれる。
また、論物メタには、2BのNode Noと、1BのStorage Pool Noと、4BのRAID Unit Noと、2BのRAID Unit Offset LBAが物理アドレスとして含まれる。
Node Noは、ユーザデータユニットを記憶するRAIDユニットが属するプール3aを担当するストレージ制御装置を識別するための番号である。なお、ストレージ制御装置については後述する。Storage Pool Noは、ユーザデータユニットを記憶するRAIDユニットが属するプール3aを識別するための番号である。RAID Unit Noは、ユーザデータユニットを記憶するRAIDユニットを識別するための番号である。RAID Unit Offset LBAは、ユーザデータユニットのRAIDユニット内でのアドレスである。
実施例に係るストレージ装置は、RAIDユニットの単位で論物メタを管理する。実施例に係るストレージ装置は、論物メタをRAIDユニット単位でメインメモリ上にバッファリングし、バッファに例えば786432エントリ溜まると、論物メタを追記型でSSD3dにまとめ書きする。このため、実施例に係るストレージ装置は、論物メタがある場所を示す情報をメタメタ方式で管理する。
図5は、実施例に係るメタメタ方式を説明するための図である。図5(d)に示すように、(1)、(2)、(3)、・・・で表されるユーザデータユニットは、RAIDユニットの単位でSSD3dにまとめ書きされる。そして、図5(c)に示すように、ユーザデータユニットの位置を示す論物メタも、RAIDユニットの単位でSSD3dにまとめ書きされる。
そして、実施例に係るストレージ装置は、図5(a)に示すように、論物メタの位置をLUN/LBA毎にメタアドレスを用いてメインメモリ上で管理する。ただし、図5(b)に示すように、メインメモリから溢れたメタアドレス情報は、外部キャッシュ(2次キャッシュ)される。ここで、外部キャッシュとは、SSD3dでのキャッシュである。
図6は、メタアドレスのフォーマットを示す図である。図6に示すように、メタアドレスの大きさは8Bである。メタアドレスには、Storage Pool Noと、RAID Unit Offset LBAと、RAID Unit Noとが含まれる。メタアドレスは、論物データのSSD3dでの格納位置を示す物理アドレスである。
Storage Pool Noは、論物メタを記憶するRAIDユニットが属するプール3aを識別するための番号である。RAID Unit Offset LBAは、論物メタのRAIDユニット内のアドレスである。RAID Unit Noは、論物メタを記憶するRAIDユニットを識別するための番号である。
512個のメタアドレスがメタアドレスページ(4KB)として管理され、メタアドレスページの単位でメインメモリ上にキャッシングされる。また、メタアドレス情報は、RAIDユニットの単位で例えばSSD3dの先頭から記憶される。
図7は、ドライブグループ3cにおけるRAIDユニットの配置例を示す図である。図7に示すように、メタアドレスを記憶するRAIDユニットは、先頭に配置される。図7では、番号が「0」〜「12」のRAIDユニットが、メタアドレスを記憶するRAIDユニットである。メタアドレスの更新があった場合は、メタアドレスを記憶するRAIDユニットは上書き保存される。
論物メタを記憶するRAIDユニット及びユーザデータユニットを記憶するRAIDユニットは、それぞれのバッファがいっぱいになると順番にドライブグループに書き出される。図7では、ドライブグループにおいて、番号が「13」、「17」、「27」、「40」、「51」、「63」及び「70」のRAIDユニットが、論物メタを記憶するRAIDユニットであり、その他のRAIDユニットが、ユーザデータユニットを記憶するRAIDユニットである。
実施例に係るストレージ装置は、メタメタ方式によって最低限の情報をメインメモリに保持し、論物メタとユーザデータユニットをSSD3dに追記及びまとめ書きすることでSSD3dへの書き込み回数を削減することができる。
次に、実施例に係る情報処理システムの構成について説明する。図8は、実施例に係る情報処理システムの構成を示す図である。図8に示すように、実施例に係る情報処理システム1は、ストレージ装置1aとサーバ1bとを有する。ストレージ装置1aは、サーバ1bが使用するデータを記憶する装置である。サーバ1bは、情報処理などの業務を行う情報処理装置である。ストレージ装置1aとサーバ1bとの間は、FC(Fibre Channel)及びiSCSI(Internet Small Computer System Interface)で接続される。
ストレージ装置1aは、ストレージ装置1aを制御するストレージ制御装置2とデータを記憶するストレージ(記憶装置)3とを有する。ここで、ストレージ3は、複数台の記憶装置(SSD)3dの集まりである。
なお、図8では、ストレージ装置1aは、ストレージ制御装置#0及びストレージ制御装置#1で表される2台のストレージ制御装置2を有するが、ストレージ装置1aは、3台以上のストレージ制御装置2を有してよい。また、図8では、情報処理システム1は、1台のサーバ1bを有するが、情報処理システム1は、2台以上のサーバ1bを有してよい。
ストレージ制御装置2は、ストレージ3を分担して管理し、1つ以上のプール3aを担当する。ストレージ制御装置2は、上位接続部21と、I/O制御部22と、重複管理部23と、メタ管理部24と、データ処理管理部25と、デバイス管理部26とを有する。
上位接続部21は、FCドライバ及びiSCSIドライバとI/O制御部22との間の情報の受け渡しを行う。I/O制御部22は、キャッシュメモリ上のデータを管理する。重複管理部23は、データ重複排除/復元の制御を行うことで、ストレージ装置1a内に格納されているユニークなデータを管理する。
メタ管理部24は、メタアドレス及び論物メタを管理する。また、メタ管理部24は、メタアドレス及び論物メタを用いて、仮想ボリュームにおけるデータの識別に用いる論理アドレスとSSD3dにおけるデータが記憶された位置を示す物理アドレスの変換処理を行う。
メタ管理部24は、論物メタ管理部24aとメタアドレス管理部24bとを有する。論物メタ管理部24aは、論理アドレスと物理アドレスとを対応付けるアドレス変換情報に関連する論物メタを管理する。論物メタ管理部24aは、論物メタのSSD3dへの書き込み、及び、論物メタのSSD3dからの読み出しをデータ処理管理部25に依頼する。論物メタ管理部24aは、メタアドレスを用いて論物メタの記憶場所を特定する。
メタアドレス管理部24bは、メタアドレスを管理する。メタアドレス管理部24bは、メタアドレスの外部キャッシュ(2次キャッシュ)への書き込み、及び、外部キャッシュからのメタアドレスの読み出しをデバイス管理部26に依頼する。
データ処理管理部25は、ユーザデータを連続的なユーザデータユニットで管理し、RAIDユニットの単位でSSD3dに追記及びまとめ書きを行う。また、データ処理管理部25は、データの圧縮解凍、参照メタの生成を行う。ただし、データ処理管理部25は、データが更新された場合に、古いデータに対応するユーザデータユニットに含まれる参照メタの更新は行わない。
また、データ処理管理部25は、論物メタをRAIDユニットの単位でSSD3dに追記及びまとめ書きを行う。論物メタの書き込みでは、1小ブロック(512B)に論物メタの16エントリが追記書きされるため、データ処理管理部25は、同一小ブロック内にLUNとLBAが同じものが存在しないように管理する。
データ処理管理部25は、同一小ブロックにLUNとLBAが同じものが存在しないように管理することで、RAIDユニット番号とRAIDユニット内LBAにより、LUNとLBAを検索することができる。なお、データの消去単位である1MBのブロックと区別するため、ここでは512Bのブロックを小ブロックと呼ぶ。
また、メタ管理部24から論物メタの読み出しを要求されると、データ処理管理部25は、メタ管理部24に指定された小ブロックから対象のLUNとLBAを検索して応答する。
データ処理管理部25は、メインメモリ上のバッファであるライトバッファにライトデータを溜め、一定の閾値を超えるとSSD3dに書き出す。データ処理管理部25は、プール3aの物理スペースを管理し、RAIDユニットの配置を行う。デバイス管理部26は、RAIDユニットのストレージ3への書き込みを行う。
図9は、機能部間の関係を示す図である。図9に示すように、重複管理部23とメタ管理部24との間では、論物メタの取得と更新が行われる。重複管理部23とデータ処理管理部25との間では、ユーザデータユニットのライトバック(writeback)とステージング(staging)が行われる。ここで、ライトバックとは、ストレージ3へのデータの書き込みであり、ステージングとは、ストレージ3からのデータの読み出しである。
メタ管理部24とデータ処理管理部25との間では、論物メタのライト(Write)とリード(Read)が行われる。データ処理管理部25とデバイス管理部26との間では、追記データのストレージリードとストレージライトが行われる。メタ管理部24とデバイス管理部26との間では、外部キャッシュのストレージリードとストレージライトが行われる。デバイス管理部26とストレージ3との間では、ストレージリードとストレージライトが行われる。
次に、書き込み処理のシーケンスについて説明する。図10Aは、重複のないデータの書き込み処理のシーケンスを示す図であり、図10Bは、重複のあるデータの書き込み処理のシーケンスを示す図である。
重複のないデータの書き込み処理では、図10Aに示すように、I/O制御部22は、重複管理部23にデータのライトバックを要求する(ステップS1)。すると、重複管理部23は、データの重複判定を行って重複はないので(ステップS2)、新規のユーザデータユニットのライトをデータ処理管理部25に要求する(ステップS3)。
すると、データ処理管理部25は、ライトバッファを獲得し(ステップS4)、デバイス管理部26にRU(RAIDユニット)の取得を要求する(ステップS5)。なお、ライトバッファを既に獲得している場合には、ライトバッファの獲得は不要である。そして、データ処理管理部25は、デバイス管理部26からDP#(Storage Pool No)とRU#(RAID Unit No)を獲得する(ステップS6)。
そして、データ処理管理部25は、データを圧縮し(ステップS7)、参照メタを生成する(ステップS8)。そして、データ処理管理部25は、ライトバッファ内でユーザデータユニットの追記書きを行い(ステップS9)、まとめ書き判定を行う(ステップS10)。そして、データ処理管理部25は、まとめ書きが必要と判定した場合には、デバイス管理部26へライトバッファのまとめ書きを依頼する。そして、データ処理管理部25は、重複管理部23にDP#とRU#を応答する(ステップS11)。
すると、重複管理部23は、メタ管理部24に論物メタの更新を要求し(ステップS12)、メタ管理部24は、更新した論物メタのライトをデータ処理管理部25に要求する(ステップS13)。
すると、データ処理管理部25は、ライトバッファを獲得し(ステップS14)、デバイス管理部26にRUの取得を要求する(ステップS15)。なお、獲得するライトバッファは、ユーザデータユニット用のライトバッファとは異なるバッファである。また、ライトバッファを既に獲得している場合には、ライトバッファの獲得は不要である。そして、データ処理管理部25は、デバイス管理部26からDP#とRU#を獲得する(ステップS16)。
そして、データ処理管理部25は、ライトバッファ内で論物メタの追記書きを行い(ステップS17)、まとめ書き判定を行う(ステップS18)。そして、データ処理管理部25は、まとめ書きが必要と判定した場合には、デバイス管理部26へライトバッファのまとめ書きを依頼する。そして、データ処理管理部25は、メタ管理部24にDP#とRU#を応答する(ステップS19)。
すると、メタ管理部24は、メタアドレス更新のためにメタアドレスの追い出しが必要か否かを判定し(ステップS20)、追い出しが必要と判定した場合には、デバイス管理部26に追い出しを依頼する。そして、DP#とRU#に基づいてメタアドレスを更新する(ステップS21)。
そして、メタ管理部24は、重複管理部23に完了を通知し(ステップS22)、重複管理部23は、メタ管理部24から完了を通知されると、I/O制御部22に完了を通知する(ステップS23)。
このように、データ処理管理部25が、ユーザデータユニットに加えて論物メタも追記書き及びまとめ書きを行うことで、SSD3dへの書き込み回数を減らすことができる。
また、重複のあるデータの書き込みの場合には、図10Bに示すように、I/O制御部22は、重複管理部23にデータのライトバックを要求する(ステップS31)。すると、重複管理部23は、データの重複判定を行って重複があるので(ステップS32)、重複するユーザデータユニットのライトをデータ処理管理部25に要求する(ステップS33)。
すると、データ処理管理部25は、重複するユーザデータユニットを含むRAIDユニットについて、ストレージ3のリードをデバイス管理部26に要求する(ステップS34)。そして、デバイス管理部26が、重複するユーザデータユニットを含むRAIDユニットを読み出してデータ処理管理部25に応答する(ステップS35)。そして、データ処理管理部25は、ハッシュ値を比較し(ステップS36)、データの重複を確認する。
そして、データ処理管理部25は、重複が確認されれば、重複するユーザデータユニットにおける参照メタに参照先を追加して参照メタを更新する(ステップS37)。データ処理管理部25は、参照メタが更新されたユーザデータユニットを含むRAIDユニットのストレージ3へのライトをデバイス管理部26に要求し(ステップS38)、デバイス管理部26から応答を受け取る(ステップS39)。そして、データ処理管理部25は、重複管理部23にDP#とRU#を応答する(ステップS40)。
すると、重複管理部23は、メタ管理部24に論物メタの更新を要求し(ステップS41)、メタ管理部24は、更新した論物メタのライトをデータ処理管理部25に要求する(ステップS42)。
すると、データ処理管理部25は、ライトバッファを獲得し(ステップS43)、デバイス管理部26にRUの取得を要求する(ステップS44)。そして、データ処理管理部25は、デバイス管理部26からDP#とRU#を獲得する(ステップS45)。
そして、データ処理管理部25は、ライトバッファ内で論物メタの追記書きを行い(ステップS46)、まとめ書き判定を行う(ステップS47)。そして、データ処理管理部25は、まとめ書きが必要と判定した場合には、デバイス管理部26へライトバッファのまとめ書きを依頼する。そして、データ処理管理部25は、メタ管理部24にDP#とRU#を応答する(ステップS48)。
すると、メタ管理部24は、メタアドレス更新のためにメタアドレスの追い出しが必要か否かを判定し(ステップS49)、追い出しが必要と判定した場合には、デバイス管理部26に追い出しを依頼する。そして、DP#とRU#に基づいてメタアドレスを更新する(ステップS50)。
そして、メタ管理部24は、重複管理部23に完了を通知し(ステップS51)、重複管理部23は、メタ管理部24から完了を通知されると、I/O制御部22に完了を通知する(ステップS52)。
このように、データ処理管理部25が、重複データについて、論物メタを追記書き及びまとめ書きを行うことで、SSD3dへの書き込み回数を減らすことができる。
次に、読み出し処理のシーケンスについて説明する。図11は、読み出し処理のシーケンスを示す図である。図11に示すように、I/O制御部22は、データのステージングを重複管理部23に要求する(ステップS61)。すると、重複管理部23は、データの論物メタの獲得をメタ管理部24に要求する(ステップS62)。
すると、メタ管理部24は、データのメタアドレスがメインメモリ上にあることを確認し(ステップS63)、メタアドレスを指定して、論物メタのリードをデータ処理管理部25に要求する(ステップS64)。なお、データのメタアドレスがメインメモリ上にない場合には、メタ管理部24は、デバイス管理部26にストレージ3からのリードを要求する。
そして、データ処理管理部25は、論物メタを含むRAIDユニットについて、ストレージ3からのリードをデバイス管理部26に要求し(ステップS65)、デバイス管理部26からRAIDユニットを受け取る(ステップS66)。そして、データ処理管理部25は、RAIDユニットから論物メタを検索し(ステップS67)、検索した論物メタをメタ管理部24に渡す(ステップS68)。
すると、メタ管理部24は、論物メタを解析し(ステップS69)、ユーザデータユニットを含むRAIDユニットのDP#とRU#とOffsetを重複管理部23に渡す(ステップS70)。ここで、Offsetは、RAIDユニット内のユーザデータユニットのアドレスである。すると、重複管理部23は、DP#とRU#とOffsetを指定してユーザデータユニットのリードをデータ処理管理部25に要求する(ステップS71)。
すると、データ処理管理部25は、ユーザデータユニットを含むRAIDユニットのストレージ3からのリードをデバイス管理部26に要求し(ステップS72)、デバイス管理部26からRAIDユニットを受け取る(ステップS73)。そして、データ処理管理部25は、Offsetを用いてRAIDユニットから取り出したユーザデータユニットに含まれる圧縮データを伸張し(ステップS74)、ユーザデータユニットから参照メタを削除する(ステップS75)。
そして、データ処理管理部25は、データを重複管理部23に渡し(ステップS76)、重複管理部23は、I/O制御部22にデータを渡す(ステップS77)。
このように、ストレージ制御装置2は、メタアドレスを用いて論物メタを取得し、論物メタを用いてユーザデータユニットを取得することで、ストレージ3からデータを読み出すことができる。
次に、ストレージ制御装置2による書き込み処理の効果について図12A〜図12Cを用いて説明する。図12Aは、メタメタ方式導入前のスモールライトの数を示す図であり、図12Bは、メタメタ方式でのスモールライトの数を示す図であり、図12Cは、メタメタ方式で旧データ無効化を行わない場合のスモールライトの数を示す図である。ここで、スモールライトとは、ブロック(1MB)に較べて小さな単位(4KB)のライトである。
図12Aに示すように、メタメタ方式導入前は、サーバ1bからの8KBのデータの書き込みに対して、データに関してはまとめ書きが行われるが、論物メタの更新、参照メタの更新に関してスモールライトが行われる。ここで、参照メタの更新としては、旧データ(参照LUN/LBA情報)の無効化がある。また、RAID6の場合、データの書き込みに対応して2つのパリティPとQの書き込みが行われる。したがって、合計6回のスモールライトが行われる。
これに対して、メタメタ方式では、図12Bに示すように、論物メタの更新は追記書きのためスモールライトではなくなり、3回のスモールライトで済む。さらに、旧データ無効化を行わない場合、図12Cに示すように、参照メタの更新もなくなり、スモールライトがなくなる。
このように、メタメタ方式を用いることにより、ストレージ制御装置2は、スモールライトの数を減らし、書き込み処理を高速化することができる。また、ストレージ制御装置2は、旧データ無効化を行わないことで、さらにスモールライトの数を減らすことができる。
上述してきたように、実施例では、論物メタ管理部24aが、データの論理アドレスと物理アドレスを対応付ける論物メタの情報を管理し、データ処理管理部25が、論物メタの情報をRAIDユニットの単位でSSD3dへ追記及びまとめ書きする。したがって、ストレージ制御装置2は、スモールライトの数を減らし、書き込み処理を高速化することができる。
また、実施例では、メタアドレス管理部24bが、論理アドレスと論物メタのアドレスを対応付けるメタアドレスの情報を管理するので、論物メタ管理部24aはメタアドレスを用いて論物メタの位置を特定することができる。
また、実施例では、データが更新された場合に、古いデータに対応するユーザデータユニットの参照メタを更新しない。したがって、ストレージ制御装置2は、スモールライトの数をさらに減らすことができる。
また、実施例では、メタアドレスはメインメモリ上で管理され、溢れたメタアドレスの情報はSSD3dの所定の位置に記憶される。したがって、ストレージ制御装置2は、SSD3dの所定の位置から読み出すことでメタアドレスの情報を取得することができる。
なお、実施例では、ストレージ制御装置2について説明したが、ストレージ制御装置2が有する構成をソフトウェアによって実現することで、同様の機能を有するストレージ制御プログラムを得ることができる。そこで、ストレージ制御プログラムを実行するストレージ制御装置2のハードウェア構成について説明する。
図13は、実施例に係るストレージ制御プログラムを実行するストレージ制御装置2のハードウェア構成を示す図である。図13に示すように、ストレージ制御装置2は、メモリ41と、プロセッサ42と、ホストI/F43と、通信I/F44と、接続I/F45とを有する。
メモリ41は、プログラムやプログラムの実行途中結果などを記憶するRAM(Random Access Memory)である。プロセッサ42は、メモリ41からプログラムを読み出して実行する処理装置である。
ホストI/F43は、サーバ1bとのインタフェースである。通信I/F44は、他のストレージ制御装置2と通信するためのインタフェースである。接続I/F45は、ディスク3とのインタフェースである。
そして、プロセッサ42において実行されるストレージ制御プログラムは、可搬記録媒体51に記憶され、メモリ41に読み込まれる。あるいは、ストレージ制御プログラムは、通信インタフェース44を介して接続されたコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてメモリ41に読み込まれる。
また、実施例では、SSD3dを不揮発性記憶媒体として用いる場合について説明したが、本発明はこれに限定されるものではなく、SSD3dと同様なデバイス特性を有する他の不揮発性記憶媒体を用いる場合にも同様に適用することができる。
1 情報処理システム
1a ストレージ装置
1b サーバ
2 ストレージ制御装置
3 ストレージ
3a プール
3b ティア
3c ドライブグループ
3d SSD
21 上位接続部
22 I/O制御部
23 重複管理部
24 メタ管理部
24a 論物メタ管理部
24b メタアドレス管理部
25 データ処理管理部
26 デバイス管理部
41 メモリ
42 プロセッサ
43 ホストI/F
44 通信I/F
45 接続I/F
51 可搬記録媒体

Claims (8)

  1. 書き込み回数に制限を有する記憶媒体を用いる記憶装置を制御するストレージ制御装置において、
    前記記憶装置を使用する情報処理装置がデータの識別に用いる論理アドレスと前記記憶媒体上の該データの記憶位置を示す物理アドレスとを対応付けるアドレス変換情報を管理する変換情報管理部と、
    前記変換情報管理部により管理されるアドレス変換情報を前記記憶媒体に追記及びまとめ書きを行う書込処理部と
    を有することを特徴とするストレージ制御装置。
  2. 前記変換情報管理部により管理されるアドレス変換情報が前記記憶媒体に追記及びまとめ書きされた位置を示す物理アドレスをメタアドレスとして前記論理アドレスと対応付けて管理する変換情報位置管理部をさらに有することを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記物理アドレスに記憶されたデータには、該データを参照する論理アドレスを示す参照情報が付加されることを特徴とする請求項1又は2に記載のストレージ制御装置。
  4. 前記書込処理部は、前記データの更新によって新たなデータが追記された場合に、更新前の前記データとともに前記参照情報を前記記憶媒体上に維持することを特徴とする請求項3に記載のストレージ制御装置。
  5. 前記メタアドレスは、前記記憶媒体の所定の位置に記憶されることを特徴とする請求項2に記載のストレージ制御装置。
  6. 前記記憶媒体は、SSDであることを特徴とする請求項1〜5のいずれか1つに記載のストレージ制御装置。
  7. 書き込み回数に制限を有する記憶媒体を用いる記憶装置を制御するストレージ制御装置によるストレージ制御方法において、
    前記記憶装置を使用する情報処理装置がデータの識別に用いる論理アドレスと前記記憶媒体上の該データの記憶位置を示す物理アドレスとを対応付けるアドレス変換情報を管理し、
    前記アドレス変換情報を前記記憶媒体に追記及びまとめ書きを行う
    ことを特徴とするストレージ制御方法。
  8. 書き込み回数に制限を有する記憶媒体を用いる記憶装置を制御するストレージ制御装置が有するコンピュータにより実行されるストレージ制御プログラムにおいて、
    前記記憶装置を使用する情報処理装置がデータの識別に用いる論理アドレスと前記記憶媒体上の該データの記憶位置を示す物理アドレスとを対応付けるアドレス変換情報を管理し、
    前記アドレス変換情報を前記記憶媒体に追記及びまとめ書きを行う
    処理を前記コンピュータに実行させることを特徴とするストレージ制御プログラム。
JP2017083857A 2017-04-20 2017-04-20 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム Pending JP2018181202A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017083857A JP2018181202A (ja) 2017-04-20 2017-04-20 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US15/949,134 US20180307440A1 (en) 2017-04-20 2018-04-10 Storage control apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017083857A JP2018181202A (ja) 2017-04-20 2017-04-20 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2018181202A true JP2018181202A (ja) 2018-11-15

Family

ID=63852359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017083857A Pending JP2018181202A (ja) 2017-04-20 2017-04-20 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム

Country Status (2)

Country Link
US (1) US20180307440A1 (ja)
JP (1) JP2018181202A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210039871A (ko) 2019-10-02 2021-04-12 삼성전자주식회사 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법
US11625370B2 (en) 2020-04-07 2023-04-11 Vmware, Inc. Techniques for reducing data log recovery time and metadata write amplification
US11226760B2 (en) * 2020-04-07 2022-01-18 Vmware, Inc. Using data rebuilding to support large segments
US11467746B2 (en) 2020-04-07 2022-10-11 Vmware, Inc. Issuing efficient writes to erasure coded objects in a distributed storage system via adaptive logging
US11474719B1 (en) 2021-05-13 2022-10-18 Vmware, Inc. Combining the metadata and data address spaces of a distributed storage object via a composite object configuration tree

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
US8543757B2 (en) * 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
JP5221699B2 (ja) * 2011-03-23 2013-06-26 株式会社東芝 半導体記憶装置
TWI442230B (zh) * 2011-04-28 2014-06-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US9170932B1 (en) * 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
US9448919B1 (en) * 2012-11-13 2016-09-20 Western Digital Technologies, Inc. Data storage device accessing garbage collected memory segments
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US9563376B2 (en) * 2015-05-01 2017-02-07 International Business Machines Corporation Low power storage array with metadata access
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
TWI579689B (zh) * 2015-09-25 2017-04-21 瑞昱半導體股份有限公司 資料備份系統
US10162561B2 (en) * 2016-03-21 2018-12-25 Apple Inc. Managing backup of logical-to-physical translation information to control boot-time and write amplification
TWI579693B (zh) * 2016-04-29 2017-04-21 群聯電子股份有限公司 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置

Also Published As

Publication number Publication date
US20180307440A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
JP5603997B2 (ja) ストレージ装置及びデータ制御方法
JP5707540B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
US8996797B1 (en) Dense tree volume metadata update logging and checkpointing
JP5066209B2 (ja) コントローラ、データ記憶装置、及びプログラム
US10866743B2 (en) Storage control device using index indicating order of additional writing of data, storage control method using index indicating order of additional writing of data, and recording medium recording program using index indicating order of additional writing of data
JP2018181202A (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
WO2015076354A1 (ja) ストレージ装置と方法並びにプログラム
CN108604165B (zh) 存储装置
US10503424B2 (en) Storage system
US10739999B2 (en) Computer system having data amount reduction function and storage control method
US20120278560A1 (en) Pre-fetching in a storage system that maintains a mapping tree
US20190243758A1 (en) Storage control device and storage control method
JP2020047036A (ja) ストレージコントローラ及びストレージ制御方法
US20240283463A1 (en) Data compression method and apparatus
JP2020112972A (ja) ストレージ制御装置およびストレージ制御プログラム
US20180307419A1 (en) Storage control apparatus and storage control method
US11288006B2 (en) Storage system and volume copying method where changes to address conversion table is rolled back
US20180307615A1 (en) Storage control apparatus and storage control method
JP6050794B2 (ja) フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置
US11868256B2 (en) Techniques for metadata updating and retrieval
JP6805501B2 (ja) ストレージ装置
WO2017212515A1 (ja) ストレージシステム、計算機、およびストレージ制御方法
US20240345751A1 (en) Managing data storage consolidation
US12045517B1 (en) Storage allocation techniques for large writes based on reserving one or more additional chunks of a block