JP2018181281A - ストレージシステム、制御装置及びストレージ装置 - Google Patents

ストレージシステム、制御装置及びストレージ装置 Download PDF

Info

Publication number
JP2018181281A
JP2018181281A JP2017084898A JP2017084898A JP2018181281A JP 2018181281 A JP2018181281 A JP 2018181281A JP 2017084898 A JP2017084898 A JP 2017084898A JP 2017084898 A JP2017084898 A JP 2017084898A JP 2018181281 A JP2018181281 A JP 2018181281A
Authority
JP
Japan
Prior art keywords
garbage collection
memory
value
storage device
equal
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
JP2017084898A
Other languages
English (en)
Inventor
佑磨 田村
Yuma Tamura
佑磨 田村
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 JP2017084898A priority Critical patent/JP2018181281A/ja
Priority to US15/954,661 priority patent/US20180307599A1/en
Publication of JP2018181281A publication Critical patent/JP2018181281A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced 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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash 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/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

【課題】ガベージコレクションが実行されるタイミングを制御することにより、コマンドの処理とガベージコレクションの処理が競合することを抑制する。【解決手段】コマンドの受信状況に基づいてガベージコレクションの開始タイミング及び停止タイミングを決定する。キャッシュメモリに蓄積されたコマンドの数が所定の値を下回った状態においてガベージコレクションを開始しT1、キャッシュメモリに蓄積されたコマンドの数が所定の値を上回った場合にはガベージコレクションを停止するT2。これにより、コマンドに基づく処理と、ガベージコレクションの処理との競合を抑制する。【選択図】図8

Description

本開示は、ストレージシステム、制御装置及びストレージ装置に関する。
近年、ストレージシステムにおいて、Solid State Drive(SSD)がデータを格納するストレージ装置として利用されている。SSDは、データ格納部として不揮発性メモリであるフラッシュメモリを含み、Hard Disk Drive(HDD)に比べて格納されたデータへのランダムアクセス特性などにおいて優位性を有する。
ストレージシステムは、ホストサーバからデータの書き込みを要求するライトコマンドを受信した場合、ライトコマンドの対象となるデータを、SSDのフラッシュメモリへ書き込む処理を実行する。同様にストレージシステムは、ホストサーバからデータの読み出しを要求するリードコマンドを受信した場合、リードコマンドの対象となるデータを、SSDのフラッシュメモリから読み出す処理を実行する。データの書き込みや読み出しの処理が終了した後、ストレージシステムは、処理完了通知をホストサーバへ送信する。ホストサーバがライトコマンドやリードコマンド(以下、併せて単に「コマンド」と呼ぶ)をストレージシステムに送信してから、ホストサーバがストレージシステムから処理完了通知を受信するまでの時間をレスポンスタイムと呼ぶ。レスポンスタイムが短いことは、ホストサーバ側から見た場合のストレージシステムの応答速度が速いことを意味し、ストレージシステムの処理性能の指標の一つとなる。
SSDにおいては、フラッシュメモリの空き容量が減少した場合に、既にフラッシュメモリに書き込まれたデータであって不要となったデータを消去して空き容量を増加させる、ガベージコレクションと呼ばれる処理が実行される。ガベージコレクションにおいては、フラッシュメモリのある領域に格納されたデータの読み出し処理、当該データの他の領域への書き込み処理、及び元の領域の消去処理が実行されることにより、元の領域が空き領域として確保される。
特開2014−132505号公報 特開平6−222985号公報
SSDがフラッシュメモリのガベージコレクションを実行している状態において、SSDに対してコマンドが発行された場合、コマンドに基づくフラッシュメモリへのアクセスが、ガベージコレクションによる処理と競合する。そのため、コマンドに基づく処理が、ガベージコレクションが実行されていない状態における処理に比べて遅延する。この遅延が、レスポンスタイムの悪化の一因となる。
本発明は、ガベージコレクションが実行されるタイミングを制御することにより、コマンドの処理とガベージコレクションの処理が競合することを抑制することを目的とする。
ガベージコレクションを実行するストレージ装置と、メモリを有し、前記ストレージ装置を制御する制御装置と、を含むストレージシステムであって、前記制御装置は、前記ストレージ装置に対するコマンドを受信し、受信された前記コマンドを前記メモリに保持し、前記メモリに保持されている前記コマンドの数が第1の値以下であるかを判定し、前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの開始を指示する開始指示を前記ストレージ装置に送信し、前記ストレージ装置は、前記開始指示に基づき、前記ガベージコレクションを開始するストレージシステムが開示される。
ガベージコレクションが実行されるタイミングを、コマンドの受信状況に基づいて制御することにより、コマンドの処理とガベージコレクションの処理が競合することを抑制することができる。
ストレージシステムの構成図である。 制御装置のハードウェア構成を示す図である。 ストレージ装置のハードウェア構成を示す図である。 ストレージ装置が実行する自走GCを説明するための図である。 自走GCが実行されていない状態のストレージ装置に対するデータの書き込み処理を説明するためのラダーチャートである。 自走GCが実行されている状態のストレージ装置に対するデータの書き込み処理を説明するためのラダーチャートである。 第1実施例における制御装置のプロセッサの機能ブロック図である。 第1実施例におけるホストGCの開始及び停止のタイミングを説明するための図である。 第1実施例において制御装置のプロセッサによって実行される処理のフローチャートである。 第1実施例におけるプロセッサの機能ブロック図である。 第1実施例においてストレージ装置のプロセッサによって実行される処理のフローチャートである。 第1実施例の変形例におけるホストGCの開始及び停止のタイミングを説明するための図である。 第1実施例の変形例において制御装置のプロセッサによって実行される処理のフローチャートである。 第2実施例におけるGCの実行とフラッシュメモリの空き容量率との関係を示す図である。 第2実施例におけるホストGCの開始及び停止とフラッシュメモリの空き容量率との関係を示す図である。 第2実施例において制御装置のプロセッサによって実行される処理のフローチャートである。 第3実施例において制御装置のプロセッサによって実行される処理のフローチャートである。 第3実施例においてストレージ装置のプロセッサによって実行される処理のフローチャートである。 第4実施例における制御装置のプロセッサの機能ブロック図である。 第4実施例におけるストレージ装置のハードウェア構成を示す図である。 第4実施例において制御装置のプロセッサによって実行される処理のフローチャートである。
<第1実施例>
図1はストレージシステムの構成図である。図1においてストレージシステム200は、情報処理装置100に接続される。ストレージシステム200は、制御装置300、ストレージ装置400及び電源装置500を含む。
情報処理装置100は例えばサーバであり、ストレージシステム200にコマンドを送信することにより、データをストレージ装置400に格納させ、またデータをストレージ装置400から読み出す。制御装置300は例えばストレージ装置400を制御するためのControl Module(CM)である。制御装置300は、情報処理装置100からコマンドを受信し、受信されたコマンドを後述のキャッシュメモリに蓄積させる。そしてキャッシュメモリに蓄積されたコマンドを順次実行することによってストレージ装置400にアクセスし、データの書き込みやデータの読み出しを実行する。ストレージ装置400は、後述のフラッシュメモリを含むデータ格納装置、例えばSSDである。ストレージ装置400は、フラッシュメモリのガベージコレクション(以下、「GC」と表記する)を実行する機能を有する。電源装置500は、制御装置300及びストレージ装置400に電力を供給する。
図2は、制御装置300のハードウェア構成を示す図である。制御装置300は、Channel Adaptor(CA)310と、プロセッサ320と、不揮発性メモリ330と、揮発性メモリ340と、Input Output Controller(IOC)350と、Expander(EXP)360とを有する。
CA310は、情報処理装置100に対するインターフェース回路であり、情報処理装置100からコマンドやデータを受信する。また、ストレージ装置400から読み出されたデータは、CA310を介して情報処理装置100に対して送信される。また、制御装置300が情報処理装置100からコマンドを受信した場合、当該コマンドに関するコマンド処理が完了したことを示す処理完了通知がCA310を介して情報処理装置100に対して送信される。
プロセッサ320は、不揮発性メモリ330に格納されたコンピュータプログラムを揮発性メモリ340にロードして実行する。例えばプロセッサ320は、コマンドの受信に応じて、データの書き込み処理又は読み出し処理を実行する。プロセッサ320はハードウェアプロセッサであり、Central Processing Unit(CPU)、Micro Control Unit(MCU)、Micro Processing Unit(MPU)、Digital Signal Processor(DSP)の他、Field Programmable Gate Array(FPGA)やApplication Specific Integrated Circuit(ASIC)も適用可能である。
不揮発性メモリ330は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ330には、プロセッサ320によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ330は、例えばRead Only Memory(ROM)、Mask Read Only Memory(マスクROM)、Programable Read Only Memory(PROM)、フラッシュメモリ、Magnetoresistive Random Access Memory(MRAM)、Resistance Random Access Memory(ReRAM)、Ferroelectric Random Access Memory(FeRAM)等である。コンピュータプログラムは、不揮発性メモリ330以外の記憶媒体であって、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録されることもできる。また、コンピュータプログラムが記録されたDigital Versatile Disc(DVD)、Compact Disc Read Only Memory(CD−ROM)などの可搬型記録媒体を流通させることもできる。また、コンピュータプログラムは、ネットワークを介して送信され得る。
揮発性メモリ340は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ340には、不揮発性メモリ330に格納されているコンピュータプログラムがロードされる。また揮発性メモリ340には、プロセッサ320による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。また揮発性メモリ340は、制御装置300がコマンドを受信した際にキャッシュメモリとして使用され、コマンドや、書き込み対象となるデータ又は読み出し対象となるデータがキャッシュメモリに保持される。揮発性メモリ340は、例えばStatic Random Access Memory(SRAM)やDynamic Random Access Memory(DRAM)等である。
IOC350は制御装置300とストレージ装置400との間で行われるデータの送受信を制御する。EXP360は、制御装置300とストレージ装置400との間で行われるデータの送受信を中継する。
図3は、ストレージ装置400のハードウェア構成を示す図である。ストレージ装置400は、インターフェースカード410、プロセッサ420、不揮発性メモリ430、揮発性メモリ440、フラッシュメモリ470を有する。
インターフェースカード410は制御装置300に対するインターフェース回路として機能する。プロセッサ420は、不揮発性メモリ430に格納されたコンピュータプログラムを揮発性メモリ440にロードして実行することにより、所定のデータ処理を行う。例えばプロセッサ420は、フラッシュメモリ470に対するGCを実行する。またプロセッサ420は、コマンドに応じてフラッシュメモリ470へのデータの書き込みやデータの読み出しを行う。プロセッサ420はハードウェアプロセッサであり、CPU、MCU、MPU、DSPの他、FPGAやASICも適用可能である。
不揮発性メモリ430は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ430には、プロセッサ420によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ430は、例えばROM、マスクROM、PROM、フラッシュメモリ、MRAM、ReRAM、FeRAM等である。揮発性メモリ440は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ440には、不揮発性メモリ430に格納されているコンピュータプログラムがロードされる。また揮発性メモリ440には、プロセッサ420による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。揮発性メモリ440は、例えばSRAMやDRAM等である。フラッシュメモリ470は不揮発性のメモリであり、ストレージ装置400のデータ格納部として機能する。
図4はストレージ装置400が実行する自走GCを説明するための図である。ストレージ装置400は、フラッシュメモリ470の全容量に対する空き容量の比率(以下、空き容量率)をモニタする。空き容量率が所定の値、例えばA%以下となった場合には、ストレージ装置400はフラッシュメモリ470のGCを実行する。GCが実行されることにより、フラッシュメモリ470内の不要データが消去され、フラッシュメモリ470の空き容量率が増加する。空き容量率が所定の値、例えばB%(B%>A%)以上になると、ストレージ装置400はフラッシュメモリ470のGCを停止する。このようにストレージ装置400は、フラッシュメモリ470の空き容量率に基づいて、自らGCの開始及び停止を行う。本明細書においては、ストレージ装置400自身の判断に基づいて実行されるGCを「自走GC」と呼ぶ。
尚、図4においては空き容量率に基づくGCの開始及び停止の判断が行われる例が説明されたが、空き容量率ではなく、空き容量の絶対量に基づいて、GCの開始及び停止の判断が行われてもよい。尚、本明細書において「空き容量」という表記は、「空き容量率」と「空き容量の絶対量」の両方を含む上位概念の文言として使用されるものとする。
図5は、自走GCが実行されていない状態のストレージ装置400に対するデータの書き込み処理を説明するためのラダーチャートである。まず処理S600において情報処理装置100が、データXに関するライトコマンドを生成し、制御装置300に送信する。ライトコマンドを受信した制御装置300は、処理S610において、データXをキャッシュメモリ(揮発性メモリ340)に保持させる。その後、処理S620において制御装置300は、データXをストレージ装置400へ送信する。データXを受信したストレージ装置400は、処理S630においてデータXをフラッシュメモリ470に格納する。そして処理S640においてストレージ装置400は、データXの格納が完了したことを示す格納完了通知を制御装置300に送信する。格納完了通知を受信した制御装置300は、処理S650において、ライトコマンドに対する処理が完了したことを示す処理完了通知を、情報処理装置100に送信する。図5においては、情報処理装置100がライトコマンドを送信してから、情報処理装置100が処理完了通知を受信するまでの時間がレスポンスタイムに相当する。
図6は、自走GCが実行されている状態のストレージ装置400に対するデータの書き込み処理を説明するためのラダーチャートである。図6において、図5にて説明された処理と同一の処理については同一の参照符号が付され、説明は適宜省略される。
処理S600において情報処理装置100がライトコマンドを送信し、当該ライトコマンドに基づき、処理S620において制御装置300が、データXをストレージ装置400に送信する。図5に示された処理と相違し、データXがストレージ装置400に送信された時点においては、ストレージ装置400が自走GCを実行している。この場合、フラッシュメモリ470へのデータXの格納処理(処理S630)は、自走GCによる処理と競合することによって遅延する場合がある。そして処理S630が実行された後、ストレージ装置400から制御装置300へ格納完了通知が送信され(処理S640)、更に、処理完了通知が制御装置300から情報処理装置100へ送信される(処理S650)。
図5に示された例におけるレスポンスタイムに比べて、図6に示される例におけるレスポンスタイムは約1.5倍から8倍程度となることを示す結果が、発明者による実測により得られた。
上述したように、ストレージ装置400は、フラッシュメモリ470の空き容量をモニタし、空き容量が所定値以下となった場合に、自走GCを実行する。しかし図6に示されたように、コマンド処理が実行されるタイミングにおいて自走GCが実行中であると、コマンドに対するレスポンスタイムが増加するという課題がある。
本発明では、制御装置300が、コマンドの受信状況に基づいてストレージ装置400にGCの開始及び停止を指示する。本明細書において、制御装置300の指示に基づいて実行されるフラッシュメモリ470のGCを「ホストGC」と呼ぶ。尚、単なる「GC」という文言は、ホストGCと自走GCの両方を含む上位概念の文言として用いられる。
図7は、第1実施例における制御装置300のプロセッサ320の機能ブロック図である。プロセッサ320は、データ送受信部321、キャッシュメモリ制御部322、ストレージ装置制御部323、GC制御部324として機能する。データ送受信部321は、情報処理装置100からのコマンドやデータを受信し、またデータや処理完了通知を情報処理装置100へ送信する。キャッシュメモリ制御部322は、キャッシュメモリへのコマンドの入力、キャッシュメモリへのデータの書き込みやキャッシュメモリからのデータの読み出し等、キャッシュメモリの制御全般を行う。ストレージ装置制御部323は、ストレージ装置400へのデータの書き込みやストレージ装置400からのデータの読み出し等、ストレージ装置400の制御全般を行う。GC制御部324は、キャッシュメモリ内に蓄積されたコマンドの数(以下、「蓄積コマンド数」と呼ぶ)をモニタし、蓄積コマンド数が所定の値以下である場合に、ストレージ装置400に対してホストGCの開始を指示する。
図8は、第1実施例におけるホストGCの開始及び停止のタイミングを説明するための図である。図8の(A)および(B)において、縦軸は蓄積コマンド数を示し、横軸は時間の経過を示す。図8の(A)は、GC制御部324がホストGCの開始を指示するタイミングを説明するための図である。まず図8の(A)に示されるように、時刻T1までの期間においては、蓄積コマンド数が所定の値(第1の値)を超過している。この場合、キャッシュメモリ内に蓄積されたコマンドが順次実行され、フラッシュメモリ470へのアクセスが行われるため、仮にこのタイミングでホストGCが実行されると、コマンド処理に遅延が発生すると予測される。そのため、GC制御部324は、ホストGCの開始指示は行わない。そして時刻T1に蓄積コマンド数が第1の値以下となると、GC制御部324はホストGCの開始をストレージ装置400に指示する。
図8の(B)は、GC制御部324がホストGCの停止を指示するタイミングを説明するための図である。図8の(B)において時刻T2より以前の時刻においてホストGCが実行されているものとする。そして時刻T2に蓄積コマンド数が第2の値以上となると、GC制御部324はホストGCの停止をストレージ装置400に指示する。
このように本実施例では、蓄積コマンド数が第1の値以下になったときにGC制御部324がホストGCの開始を指示し、蓄積コマンド数が第2の値以上になったときにGC制御部324がホストGCの停止を指示する。そしてこれらの開始指示や停止指示に基づいて、ストレージ装置400がフラッシュメモリ470のホストGCを実行する。これにより、フラッシュメモリ470の空き容量が増加するため、ストレージ装置400が自走GCを実行する回数が抑制されるものと考えられる。自走GCは、コマンドの受信状況とは無関係に実行されるため、受信コマンドに対するレスポンス特性が悪化する原因となるが、自走GCの実行が抑えられることにより、受信コマンドに対するレスポンス特性を向上させることが可能となる。
尚、図8の(A)と(B)において、第1の値と第2の値は同一の値であってもよく、又は互いに相違する値であってもよい。
図9は、第1実施例において制御装置300のプロセッサ320によって実行される処理のフローチャートである。処理フローは処理S700により開始され、処理S705においてGC制御部324が、ストレージ装置400においてGCが実行中か否かを判定する。具体的には、GC制御部324が、GCが実行中であるか否かを示す情報をプロセッサ420から取得する。GCが実行中であると判定された場合は、処理フローは処理S730へ進み、GCが実行中であると判定されない場合は、処理フローは処理S710へ進む。
処理フローが処理S710へ進んだ場合、処理S710においてGC制御部324が、蓄積コマンド数が第1の値以下であるか否かを判定する。蓄積コマンド数が第1の値以下であると判定された場合は、処理フローは処理S715へ進み、蓄積コマンド数が第1の値以下であると判定されない場合は、処理フローは処理S705へ戻る。
処理フローが処理S715へ進んだ場合、処理S715においてGC制御部324は、ストレージ装置400にホストGCの開始を指示する。この指示に基づき、ストレージ装置400はホストGCを開始する。その後、処理S720においてGC制御部324は、蓄積コマンド数が第2の値以上であるか否かを判定する。蓄積コマンド数が第2の値以上であると判定された場合は、処理フローは処理S725へ進み、蓄積コマンド数が第2の値以上であると判定されない場合は、処理S720が繰り返し実行される。
処理フローが処理S725へ進んだ場合、処理S725においてGC制御部324が、ストレージ装置400にホストGCの停止を指示する。この指示に基づいてストレージ装置400はホストGCを停止する。処理S725の後、処理フローは処理S705へ戻る。
また処理フローが処理S730へ進んだ場合、処理S730においてGC制御部324が、実行されているGCが、ホストGCであるかを判定する。後述されるように、ストレージ装置400は、制御装置300からの指示に基づいてGCを開始する場合、当該GCがホストGCであることを示すフラグを登録する。よって処理S730においては、GC制御部324はプロセッサ420と通信することで当該フラグを参照し、実行中のGCがホストGCであるかを判定することができる。そして、処理S730において実行中のGCがホストGCであると判定された場合は、処理フローは処理S720へ進み、実行中のGCがホストGCであると判定されない場合は、処理フローは処理S705へ戻る。
図10は、第1実施例におけるプロセッサ420の機能ブロック図である。プロセッサ420は、コマンド実行部421、指示受信部422、GC実行部423、フラグ登録部424として機能する。コマンド実行部421は、制御装置300からコマンドの実行が要求された場合に、当該コマンドを実行し、フラッシュメモリ470へのデータの書き込みやフラッシュメモリ470からのデータの読み出しを実行する。指示受信部422は、制御装置300からの指示、例えばホストGCの開始指示やホストGCの停止指示を受信する。GC実行部423は、フラッシュメモリ470の空き容量に基づき、フラッシュメモリ470の自走GCを実行する。またGC実行部423は、制御装置300からのホストGCの開始指示又はホストGCの停止指示に基づき、フラッシュメモリ470のホストGCを開始し、又はホストGCを停止する。この場合は、フラッシュメモリ470の空き容量と関係なく(空き容量率が、図4に示されるA%を超過している場合であっても)ホストGCが実施される。フラグ登録部424は、ホストGCが開始される際、当該GCがホストGCであることを示すフラグを登録する。またフラグ登録部424は、ホストGCが停止される際、フラグの消去を行う。先述のGC制御部324は、フラグ登録部424に登録されたフラグを参照することにより、実行中のGCがホストGCであるかを判定する。
図11は、第1実施例においてストレージ装置400のプロセッサ420によって実行される処理のフローチャートである。処理フローは処理S800により開始され、処理S805において指示受信部422が、制御装置300からホストGCの開始指示が受信されたかを判定する。ホストGCの開始指示が受信されたと判定された場合は、処理フローは処理S810へ進み、ホストGCの開始指示が受信されたと判定されない場合は、処理フローは処理S835へ進む。
処理フローが処理S810へ進んだ場合、処理S810においてフラグ登録部424が、実行されるGCがホストGCであることを示すフラグを登録する。そして処理S815においてGC実行部423がフラッシュメモリ470のホストGCを開始する。
処理S815においてホストGCが開始された後、処理S820において指示受信部422が、制御装置300からホストGCの停止指示が受信されたかを判定する。ホストGCの停止指示が受信されたと判定された場合は、処理フローは処理S825へ進み、ホストGCの停止指示が受信されたと判定されない場合は、処理S820が繰り返し実行される。
処理フローが処理S825に進んだ場合は、処理S825においてGC実行部423が、ホストGCを停止させる。そして処理S830においてフラグ登録部424が、処理S810で登録されたフラグを消去する。その後、処理フローは処理S805へ戻る。
次に、処理フローが処理S835へ進んだ場合について説明する。処理S835においてGC実行部423が、フラッシュメモリ470の空き容量率がA%以下であるかを判定する。フラッシュメモリ470の空き容量率がA%以下であると判定された場合は、処理フローは処理S840へ進み、フラッシュメモリ470の空き容量率がA%以下であると判定されない場合は、処理フローは処理S805へ戻る。処理フローが処理S840へ進んだ場合、処理S840においてGC実行部423が自走GCを開始する。その後、処理S845においてGC実行部423が、フラッシュメモリ470の空き容量率がB%以上であるかを判定する。フラッシュメモリ470の空き容量率がB%以上であると判定された場合は、処理フローは処理S850へ進み、フラッシュメモリ470の空き容量率がB%以上であると判定されない場合は、処理S845が繰り返し実行される。処理S850においてGC実行部423が、自走GCを停止させ、その後、処理フローは処理S805へ戻る。
以上、第1実施例が開示された。第1実施例では、蓄積コマンド数に基づいて、制御装置300がストレージ装置400に対してホストGCの開始指示又は停止指示を送信する。これにより、コマンドに基づく処理が、GCの処理と競合することが抑制される。
(変形例)
次に第1実施例の変形例が開示される。第1実施例では、図8に開示されたように、キャッシュメモリの蓄積コマンド数が第1の値以下になった時点でホストGCの開示の指示が発行された。しかし、単位時間に制御装置300に入力されるコマンド数が一旦低下し、蓄積コマンド数が第1の値以下となった場合であっても、短時間後に再度、制御装置300に入力されるコマンド数が増加し、蓄積コマンド数が第1の値を超過することがある。このような場合には、開示されたホストGCが短時間後に停止されることになり、フラッシュメモリ470の空き容量を効率的に増加させることができず、ホストGCの開始及び停止にプロセッサ320やプロセッサ420の処理コストが割かれることになる。ホストGCの停止に関しても同様に、蓄積コマンド数が第2の値を超過した時点でホストGCの停止指示が発行されると、短期間にホストGCの停止及び開始が行われる場合がある。
第1実施例の変形例では、所定の期間継続して、蓄積コマンド数が第1の値以下となった場合に、ホストGCの開示の指示が発行される。また、所定の期間継続して、蓄積コマンド数が第2の値以上となった場合に、ホストGCの停止指示が発行される。
図12は、第1実施例の変形例におけるホストGCの開始及び停止のタイミングを説明するための図である。図12の(A)に示されるように、時刻T1において蓄積コマンド数が第1の値以下となり、時刻T1から期間P1が経過するまでの間、蓄積コマンド数が継続して第1の値以下の状態であった場合に、ホストGCの開始指示が発行される。また、図12の(B)に示されるように、時刻T2において蓄積コマンド数が第2の値以上となり、時刻T2から期間P2が経過するまでの間、蓄積コマンド数が継続して第2の値以上の状態であった場合に、ホストGCの停止指示が発行される。尚、期間P1と期間P2の長さは同じであってもよく、また異なってもよい。更に、期間P1と期間P2の何れか一方だけが適用されてもよい。例えば、ホストGCの開始指示は、図12の(A)に示されるように時刻T1から期間P1が経過した後に発行され、一方、ホストGCの停止指示は、図8の(B)と同様に時刻T2において発行されてもよい。
図13は、第1実施例の変形例において制御装置300のプロセッサ320によって実行される処理のフローチャートである。図9にて説明された処理と同一の処理については同一の参照符号が付され、説明は適宜省略される。
処理フローが処理S700にて開始され、処理S705において、GCが実行中であると判定されない場合は、処理フローは処理S711へ進む。処理S711においてGC制御部324が、蓄積コマンド数が期間P1の間、継続して第1の値以下であるかを判定する。蓄積コマンド数が期間P1の間、継続して第1の値以下であると判定された場合は、処理フローは処理S715へ進み、処理S715においてホストGCの開始指示が発行される。蓄積コマンド数が期間P1の間、継続して第1の値以下であると判定されない場合は、処理フローは処理S705へ戻る。
また、処理S715の後、又は処理S730の後、処理S721においてGC制御部324が、蓄積コマンド数が期間P2の間、継続して第2の値以上であるかを判定する。蓄積コマンド数が期間P2の間、継続して第2の値以上であると判定された場合は、処理フローは処理S725へ進み、処理S725においてホストGCの停止指示が発行される。蓄積コマンド数が期間P2の間、継続して第2の値以上であると判定されない場合は、処理S721が繰り返し実行される。以上、第1実施例の変形例が開示された。
<第2実施例>
第1実施例では、蓄積コマンド数に基づいて、ホストGCの開始及び停止のタイミングが決定された。第2実施例においては、蓄積コマンド数及びフラッシュメモリ470の空き容量に基づいて、ホストGCの開始及び停止のタイミングが決定される。尚、第1実施例にて開示された、ストレージシステム200の構成を示す図1、制御装置300のハードウェア構成を示す図2、ストレージ装置400のハードウェア構成を示す図3、制御装置300のプロセッサ320の機能ブロックを示す図7、ストレージ装置400のプロセッサ420の機能ブロックを示す図10は、第2実施例にも適用される。
図14は、第2実施例におけるGCの実行とフラッシュメモリ470の空き容量率との関係を示す図である。第1実施例と同様に第2実施例においても、ストレージ装置400は、フラッシュメモリ470の空き容量率をモニタする。空き容量率が所定の値(図14においてはA%)以下となった場合には、ストレージ装置400はフラッシュメモリ470の自走GCを開始し、空き容量率が所定の値(図14においてはB%)以上になると、ストレージ装置400はフラッシュメモリ470の自走GCを停止する。
更に第2実施例においては、制御装置300がストレージ装置400から、フラッシュメモリ470の空き容量率を示す情報を取得する。そして、フラッシュメモリ470の空き容量率が所定の値(図14においてはC%)以下の場合であって、かつ蓄積コマンド数が第1の値以下である場合に、制御装置300はホストGCの開始を指示する。またフラッシュメモリ470の空き容量率が所定の値(C%)以下でない場合、又は蓄積コマンド数が第1の値以下でない場合には、制御装置300はホストGCの開始を指示せず、仮にホストGCが実行中であればホストGCの停止指示を行う。このように第2実施例においては、ホストGCの開始及び停止指示を、蓄積コマンド数とフラッシュメモリ470の空き容量率の組み合わせに基づいて行う。尚、ホストGCの開始のトリガとなるC%は、自走GCの開始のトリガとなるA%より大きい値に設定される。またC%は、自走GCの停止のトリガとなるB%より小さい値に設定される。尚、ホストGCの停止のトリガとなる空き容量率は、自走GCの停止のトリガとなるB%と同じ値に設定されるものとする。
図15は、第2実施例におけるホストGCの開始及び停止とフラッシュメモリ470の空き容量率との関係を示す図である。図15の(A)は、GCが実行されていない場合における、ホストGCの開始指示がなされる要件を示す。蓄積コマンド数が第1の値以下であってかつ空き容量率がC%以下である場合に、ホストGCの開始指示がなされる。蓄積コマンド数が第1の値を超過している場合、又は空き容量率がC%を超過している場合には、ホストGCの開始指示は発行されない。
図15の(B)は、ホストGCが実行されている場合における、ホストGCの停止指示がなされる要件を示す図である。図15の(B)に示されるように、蓄積コマンド数が第2の値以上である場合又は空き容量率がB%以上である場合に、ホストGCの停止指示がなされる。蓄積コマンド数が第2の値未満であってかつ空き容量率がB%未満の場合には、ホストGCの停止指示は発行されない。
図16は、第2実施例において制御装置300のプロセッサ320によって実行される処理のフローチャートである。図9に示される処理と同一の処理については同一の参照符号が付され、説明は適宜省略される。
処理フローは処理S700により開始される。処理S705においてGCが実行中であると判定されず、処理S710において蓄積コマンド数が第1の値以下であると判定された場合、処理フローは処理S712へ進む。処理S712においてGC制御部324が、フラッシュメモリ470の空き容量率がC%以下であるかを判定する。フラッシュメモリ470の空き容量率がC%以下であると判定された場合、処理フローは処理S715へ進み、ホストGCの開始指示がなされる。フラッシュメモリ470の空き容量率がC%以下であると判定されない場合は、処理フローは処理S705へ戻る。
また、処理S720において、蓄積コマンド数が第2の値以上であると判定された場合は、処理フローは処理S725へ進み、処理S725においてホストGCの停止指示がなされる。一方、蓄積コマンド数が第2の値以上であると判定されない場合は、処理フローは処理S722へ進む。処理S722においてGC制御部324が、フラッシュメモリ470の空き容量率がB%以上であるかを判定する。フラッシュメモリ470の空き容量がB%以上であると判定された場合は、処理フローは処理S725へ進み、処理S725においてホストGCの停止指示がなされる。一方、フラッシュメモリ470の空き容量率がB%以上であると判定されない場合は、処理フローは処理S720へ戻る。
以上、第2実施例が説明された。第2実施例では、蓄積コマンド数に加えて、フラッシュメモリ470の空き容量が考慮されて、ホストGCの開始又は停止指示がなされる。これにより、例えばフラッシュメモリ470の空き容量が十分あるにも関わらず、蓄積コマンド数が所定値よりも小さくなったことのみをもってホストGCが実行されることが抑制される。ホストGCの実行を抑制することにより、フラッシュメモリ470の書き込み回数等を抑制し、フラッシュメモリ470の劣化を抑制することができる。
<第3実施例>
第1及び第2実施例では、ストレージ装置400にて実行中のGCがホストGCであるか、自走GCであるか、を制御装置300が判断し、自走ホストGCが実行中である場合にはホストGCの停止指示は発行されない例が開示された。第3実施例では、蓄積コマンド数が所定値を超過した場合には、実行中のGCがホストGCであるか自走GCであるかに係わらず、制御装置300が停止指示を発行する。一方、ストレージ装置400は、停止指示を受信した場合に、実行中のGCがホストGCであるか、自走GCであるか、を判断する。そしてストレージ装置400は、実行中のGCがホストGCである場合にはホストGCを停止させ、実行中のGCが自走GCである場合には自走GCを停止させずに継続させる。
以下、第3実施例について説明する。尚、第1実施例にて開示された、ストレージシステム200の構成を示す図1、制御装置300のハードウェア構成を示す図2、ストレージ装置400のハードウェア構成を示す図3、制御装置300のプロセッサ320の機能ブロックを示す図7、ストレージ装置400のプロセッサ420の機能ブロックを示す図10は、第3実施例にも適用される。
図17は、第3実施例において制御装置300のプロセッサ320によって実行される処理のフローチャートである。図9に開示された処理と同一の処理については同一の参照符号が付され、説明は適宜省略される。処理フローが処理S700にて開始された後、処理S705においてGC制御部324が、ストレージ装置400においてGCが実行中であるかを判定する。GCが実行中であると判定された場合は、処理フローは処理S720へ進み、GCが実行中であると判定されない場合は、処理フローは処理S710へ進む。すなわち、図17の処理フローにおいて制御装置300のプロセッサ320は、実行中のGCがホストGCであるか自走GCであるかの判定は行わず、処理S720において蓄積コマンド数が第2の値以上と判定される場合には、処理S725においてホストGCの停止指示が発行される。
図18は、第3実施例においてストレージ装置400のプロセッサ420によって実行される処理のフローチャートである。図11に開示された処理と同一の処理については同一の参照符号が付され、説明は適宜省略される。
処理S815においてGC実行部423がホストGCを開始した後、もしくは処理S840にてGC実行部423が自走GCを開始した後、処理フローは処理S820へ進む。処理S820において、ホストGCの停止指示が受信されたと判定された場合は、処理フローは処理S822へ進み、ホストGCの停止指示が受信されたと判定されない場合は、処理フローは処理S845へ進む。
処理フローが処理S822に進んだ場合は、処理S822においてGC実行部423が、フラグ登録部424によってフラグが登録されているかを判定する。フラグが登録されていると判定される場合には、処理フローは処理S825へ進み、ホストGCが停止される。一方、処理フローが処理S845に進んだ場合は、処理S845においてGC実行部423が、フラッシュメモリ470の空き容量率がB%以上であるかを判定する。フラッシュメモリ470の空き容量率がB%以上であると判定された場合は、処理フローは処理S850へ進み、処理S850においてGC実行部423が自走GCを停止する。フラッシュメモリ470の空き容量率がB%以上であると判定されない場合は、処理フローは処理S820へ戻る。
以上、第3実施例が開示された。第3実施例では、実行中のGCがホストGCであるか自走GCであるかがストレージ装置400側で判断され、自走GC中に停止指示が制御装置300にて発行された場合は、ストレージ装置400は自走GCを停止させることなく継続実行させる。
<第4実施例>
第4実施例においては、制御装置300がストレージ装置400へホストGCの実行を指示する場合、電源装置500からストレージ装置400へ供給される電力量の上限を増加させることにより、ホストGCの実行速度を向上させる点に特徴を有する。尚、第1実施例にて開示された、ストレージシステム200の構成を示す図1、制御装置300のハードウェア構成を示す図2、ストレージ装置400のプロセッサ420の機能ブロックを示す図10は、第4実施例にも適用される。
図19は、第4実施例における制御装置300のプロセッサ320の機能ブロック図である。図7に示された機能ブロックと同一の機能ブロックについては同一の参照符号が付され、説明は省略される。
プロセッサ320は、データ送受信部321、キャッシュメモリ制御部322、ストレージ装置制御部323、GC制御部324の他、電力制御部325として機能する。電力制御部325は、電源装置500からストレージ装置400へ供給される電力量の上限値を制御する機能を有する。GC制御部324がホストGCの開始指示をストレージ装置400に送信する場合、電力制御部325が、電源装置500からストレージ装置400へ供給される電力量の上限を増加させる制御信号を送信する。また、GC制御部324がホストGCの停止指示をストレージ装置400に送信する場合、電力制御部325が、電源装置500からストレージ装置400へ供給される電力量の上限を減少させる制御信号を送信する。
図20は、第4実施例におけるストレージ装置400のハードウェア構成を示す図である。図3に示された構成と同一の構成については同一の参照符号が付され、説明が適宜省略される。
ストレージ装置400は、インターフェースカード410、プロセッサ420、不揮発性メモリ430、揮発性メモリ440、フラッシュメモリ470の他、電流制限回路480を有する。電流制限回路480は、電源装置500から供給される電力に関し、電流の上限値を規定する回路であり、電流の上限値は、制御装置300の電力制御部325から送信される制御信号に基づいて制御される。電流制限回路480は、例えばバイポーラトランジスタ等を用いたアナログ回路によって構成される。
GC制御部324がホストGCの開始指示を送信する場合に、電力制御部325は、電流制限回路480の電流上限値を第1電流値から、第1電流値よりも高い第2電流値へ変更する制御信号を送信する。またGC制御部324がホストGCの停止指示を送信する場合には、電力制御部325は、電流制限回路480の電流上限値を第2電流値から第1電流値へ変更する制御信号を送信する。これにより、ホストGCが実行される際にストレージ装置400に供給される電力量を増加させ、ホストGCの実行速度を向上させることができる。例えば電流上限値を第1電流値から第2電流値へ変更することによって、ストレージ装置400における消費電力を9Wから12Wへ増加させ、ホストGCの実行速度を約20%向上させることができるという結果が、発明者の実験によって得られた。
図21は、第4実施例において制御装置300のプロセッサ320によって実行される処理のフローチャートである。図9に示される処理と同一の処理については同一の参照符号が付され、説明は適宜省略される。
処理フローは処理S700により開始される。処理S710において、蓄積コマンド数が第1の値以下であると判定された場合、処理S715にてホストGCの開始指示が送信され、更に処理S717において電力制御部325が、電流制限回路480の電流上限値を増加させるよう、電流制限回路480に制御信号を送信する。尚、図21において、処理S715と処理S717は何れが先に実行されてもよい。
また処理S720において、蓄積コマンド数が第2の値以上であると判定された場合、処理S725にてホストGCの停止指示が送信され、更に処理S727において電力制御部325が、電流制限回路480の電流上限値を減少させるよう、電流制限回路480に制御信号を送信する。尚、図21において、処理S725と処理S727は何れが先に実行されてもよい。
このように第4実施例においては、ホストGCが実行される場合に、ストレージ装置400に供給される電流の上限値が増加するよう変更されるため、ホストGCの実行速度を向上させることができる。
以上、第1乃至第4実施例が開示された。これらの複数の実施例は適宜互いに組み合わされて実施されてもよい。
開示の実施例に基づき、更に以下の付記を開示する。
(付記1)
ガベージコレクションを実行するストレージ装置と、
メモリを有し、前記ストレージ装置を制御する制御装置と、
を含むストレージシステムであって、
前記制御装置は、
前記ストレージ装置に対するコマンドを受信し、
受信された前記コマンドを前記メモリに保持し、
前記メモリに保持されている前記コマンドの数が第1の値以下であるかを判定し、
前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの開始を指示する開始指示を前記ストレージ装置に送信し、
前記ストレージ装置は、前記開始指示に基づき、前記ガベージコレクションを開始する
ことを特徴とするストレージシステム。
(付記2)
前記制御装置は、前記ガベージコレクションの前記開始指示を送信した後、前記メモリに保持されている前記コマンドの数が第2の値以上になった場合に、前記ガベージコレクションの停止を指示する停止指示を前記ストレージ装置に送信し、
前記ストレージ装置は、前記停止指示に基づき、前記ガベージコレクションを停止する
ことを特徴とする付記1に記載のストレージシステム。
(付記3)
前記制御装置は、前記ストレージ装置の空き容量が第1容量値以下であり、かつ前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの前記開始指示を前記ストレージ装置に送信する
ことを特徴とする付記1又は2に記載のストレージシステム。
(付記4)
前記制御装置は、前記ストレージ装置の空き容量が第2容量値以上であるか、又は、前記メモリに保持されている前記コマンドの数が第2の値以上である場合に、前記ガベージコレクションの前記停止指示を前記ストレージ装置に送信する
ことを特徴とする付記2又は3に記載のストレージシステム。
(付記5)
前記制御装置は、前記メモリに保持されている前記コマンドの数が、第1期間に渡って継続して、前記第1の値以下である場合に、前記ガベージコレクションの前記開始指示を前記ストレージ装置に送信する
ことを特徴とする付記1乃至4何れか一つに記載のストレージシステム。
(付記6)
前記制御装置は、前記メモリに保持されている前記コマンドの数が、第2期間に渡って継続して、前記第2の値以上である場合に、前記ガベージコレクションの前記停止指示を前記ストレージ装置に送信する
ことを特徴とする付記2乃至5何れか一つに記載のストレージシステム。
(付記7)
前記制御装置は、
前記メモリに保持された前記コマンドを実行することにより、前記ストレージ装置へのアクセスを実行し、
前記アクセスに基づき、前記コマンドに対する処理完了通知を送信する
ことを特徴とする付記1乃至6何れか一つに記載のストレージシステム。
(付記8)
前記ストレージ装置は、
前記空き容量が第3容量値以下である場合に、前記ガベージコレクションの前記開始指示に依らずに前記ガベージコレクションを開始し、
前記ガベージコレクションの開始後、前記空き容量が前記第3容量値よりも大きい第4容量値以上となった場合に、前記ガベージコレクションの前記停止指示に依らずに前記ガベージコレクションを停止させる
ことを特徴とする付記2乃至7何れか一つに記載のストレージシステム。
(付記9)
前記第1容量値は、前記第3容量値よりも高く、前記第4容量値よりも低い
ことを特徴とする付記8に記載のストレージシステム。
(付記10)
前記ストレージシステムは、更に電源装置を含み、
前記制御装置は、前記ガベージコレクションの前記開始指示の送信する場合、前記電源装置から前記ストレージ装置へ供給される電力量を増加させるよう、前記ストレージ装置を制御する
ことを特徴とする付記1乃至9何れか一つに記載のストレージシステム。
(付記11)
ガベージコレクションを実行するストレージ装置を制御する、メモリを有する制御装置であって、
前記ストレージ装置に対するコマンドを受信し、
受信された前記コマンドを前記メモリに保持し、
前記メモリに保持されている前記コマンドの数が第1の値以下であるかを判定し、
前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの開始を指示する開始指示を前記ストレージ装置に送信する
ことを特徴とする制御装置。
(付記12)
前記ガベージコレクションの前記開始指示を送信した後、前記メモリに保持されている前記コマンドの数が第2の値以上になった場合に、前記ガベージコレクションの停止を指示する停止指示を前記ストレージ装置に送信し、
前記ストレージ装置は、前記停止指示に基づき、前記ガベージコレクションを停止する
ことを特徴とする付記11に記載の制御装置。
(付記13)
前記ストレージ装置の空き容量が第1容量値以下であり、かつ前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの前記開始指示を前記ストレージ装置に送信する
ことを特徴とする付記11又は12に記載の制御装置。
(付記14)
前記空き容量が第2容量値以上であるか、又は、前記メモリに保持されている前記コマンドの数が第2の値以上である場合に、前記ガベージコレクションの前記停止指示を前記ストレージ装置に送信する
ことを特徴とする付記13に記載の制御装置。
(付記15)
前記メモリに保持されている前記コマンドの数が、第1期間に渡って継続して、前記第1の値以下である場合に、前記ガベージコレクションの前記開始指示を前記ストレージ装置に送信する
ことを特徴とする付記11乃至14何れか一つに記載の制御装置。
(付記16)
前記メモリに保持されている前記コマンドの数が、第2期間に渡って継続して、前記第2の値以上である場合に、前記ガベージコレクションの前記停止指示を前記ストレージ装置に送信する
ことを特徴とする付記12乃至15何れか一つに記載の制御装置。
(付記17)
前記メモリに保持された前記コマンドを実行することにより、前記ストレージ装置へのアクセスを実行し、
前記アクセスに基づき、前記コマンドに対する処理完了通知を送信する
ことを特徴とする付記11乃至16何れか一つに記載の制御装置。
(付記18)
前記ガベージコレクションの前記開始指示の送信する場合、電源装置から前記ストレージ装置へ供給される電力量を増加させるよう、前記ストレージ装置を制御する
ことを特徴とする付記11乃至17何れか一つに記載の制御装置。
(付記19)
制御装置に接続され、不揮発性メモリを有するストレージ装置であって、
前記不揮発性メモリの空き容量を検出し、
前記空き容量が第1の値以下になった場合に、前記不揮発性メモリの第1ガベージコレクションを開始し、
前記空き容量が前記第1の値よりも大きい第2の値以上になった場合に、前記第1ガベージコレクションを停止し、
前記制御装置から開始指示を受信した場合に、前記不揮発性メモリの第2ガベージコレクションを開始し、
前記制御装置から停止指示を受信した場合に、前記第2ガベージコレクションを停止し、
前記第1ガベージコレクションが実行されている間に前記停止指示を受信した場合は、前記第1ガベージコレクションを継続する
ことを特徴とするストレージ装置。
(付記20)
前記開始指示を受信した場合に、前記第2ガベージコレクションを実行中であることを示す情報を保持し、
前記停止指示を受信した場合に、前記情報に基づき、前記第2ガベージコレクションが実行中であるかを判定し、
前記第2ガベージコレクションが実行中であるかと判定された場合は、前記停止指示に基づき前記第2ガベージコレクションを停止する
ことを特徴とする付記19に記載のストレージ装置。
100 情報処理装置
200 ストレージシステム
300 制御装置
400 ストレージ装置
500 電源装置
310 CA
320、420 プロセッサ
330、430 不揮発性メモリ
340、440 揮発性メモリ
350 IOC
360 EXP
410 インターフェースカード
470 フラッシュメモリ
480 電流制限回路
321 データ送受信部
322 キャッシュメモリ制御部
323 ストレージ装置制御部
324 GC制御部
325 電力制御部
421 コマンド実行部
422 指示受信部
423 GC実行部
424 フラグ登録部

Claims (10)

  1. ガベージコレクションを実行するストレージ装置と、
    メモリを有し、前記ストレージ装置を制御する制御装置と、
    を含むストレージシステムであって、
    前記制御装置は、
    前記ストレージ装置に対するコマンドを受信し、
    受信された前記コマンドを前記メモリに保持し、
    前記メモリに保持されている前記コマンドの数が第1の値以下であるかを判定し、
    前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの開始を指示する開始指示を前記ストレージ装置に送信し、
    前記ストレージ装置は、前記開始指示に基づき、前記ガベージコレクションを開始する
    ことを特徴とするストレージシステム。
  2. 前記制御装置は、前記ガベージコレクションの前記開始指示を送信した後、前記メモリに保持されている前記コマンドの数が第2の値以上になった場合に、前記ガベージコレクションの停止を指示する停止指示を前記ストレージ装置に送信し、
    前記ストレージ装置は、前記停止指示に基づき、前記ガベージコレクションを停止する
    ことを特徴とする請求項1に記載のストレージシステム。
  3. 前記制御装置は、前記ストレージ装置の空き容量が第1容量値以下であり、かつ前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの前記開始指示を前記ストレージ装置に送信する
    ことを特徴とする請求項1又は2に記載のストレージシステム。
  4. 前記制御装置は、前記ストレージ装置の空き容量が第2容量値以上であるか、又は、前記メモリに保持されている前記コマンドの数が第2の値以上である場合に、前記ガベージコレクションの前記停止指示を前記ストレージ装置に送信する
    ことを特徴とする請求項2又は3に記載のストレージシステム。
  5. 前記制御装置は、前記メモリに保持されている前記コマンドの数が、第1期間に渡って継続して、前記第1の値以下である場合に、前記ガベージコレクションの前記開始指示を前記ストレージ装置に送信する
    ことを特徴とする請求項1乃至4何れか一項に記載のストレージシステム。
  6. 前記制御装置は、前記メモリに保持されている前記コマンドの数が、第2期間に渡って継続して、前記第2の値以上である場合に、前記ガベージコレクションの前記停止指示を前記ストレージ装置に送信する
    ことを特徴とする請求項2乃至5何れか一項に記載のストレージシステム。
  7. 前記制御装置は、
    前記メモリに保持された前記コマンドを実行することにより、前記ストレージ装置へのアクセスを実行し、
    前記アクセスに基づき、前記コマンドに対する処理完了通知を送信する
    ことを特徴とする請求項1乃至6何れか一項に記載のストレージシステム。
  8. 前記ストレージシステムは、更に電源装置を含み、
    前記制御装置は、前記ガベージコレクションの前記開始指示の送信する場合、前記電源装置から前記ストレージ装置へ供給される電力量を増加させるよう、前記ストレージ装置を制御する
    ことを特徴とする請求項1乃至7何れか一項に記載のストレージシステム。
  9. ガベージコレクションを実行するストレージ装置を制御する、メモリを有する制御装置であって、
    前記ストレージ装置に対するコマンドを受信し、
    受信された前記コマンドを前記メモリに保持し、
    前記メモリに保持されている前記コマンドの数が第1の値以下であるかを判定し、
    前記メモリに保持されている前記コマンドの数が前記第1の値以下である場合に、前記ガベージコレクションの開始を指示する開始指示を前記ストレージ装置に送信する
    ことを特徴とする制御装置。
  10. 制御装置に接続され、不揮発性メモリを有するストレージ装置であって、
    前記不揮発性メモリの空き容量を検出し、
    前記空き容量が第1の値以下になった場合に、前記不揮発性メモリの第1ガベージコレクションを開始し、
    前記空き容量が前記第1の値よりも大きい第2の値以上になった場合に、前記第1ガベージコレクションを停止し、
    前記制御装置から開始指示を受信した場合に、前記不揮発性メモリの第2ガベージコレクションを開始し、
    前記制御装置から停止指示を受信した場合に、前記第2ガベージコレクションを停止し、
    前記第1ガベージコレクションが実行されている間に前記停止指示を受信した場合は、前記第1ガベージコレクションを継続する
    ことを特徴とするストレージ装置。
JP2017084898A 2017-04-21 2017-04-21 ストレージシステム、制御装置及びストレージ装置 Pending JP2018181281A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017084898A JP2018181281A (ja) 2017-04-21 2017-04-21 ストレージシステム、制御装置及びストレージ装置
US15/954,661 US20180307599A1 (en) 2017-04-21 2018-04-17 Storage system, control device, and method of controlling garbage collection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017084898A JP2018181281A (ja) 2017-04-21 2017-04-21 ストレージシステム、制御装置及びストレージ装置

Publications (1)

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

Family

ID=63852291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017084898A Pending JP2018181281A (ja) 2017-04-21 2017-04-21 ストレージシステム、制御装置及びストレージ装置

Country Status (2)

Country Link
US (1) US20180307599A1 (ja)
JP (1) JP2018181281A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020066052A1 (ja) 2018-09-27 2020-04-02 株式会社日立製作所 監視システム及び監視方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932106B (zh) * 2017-05-26 2021-07-02 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置
JP6901427B2 (ja) * 2018-03-27 2021-07-14 キオクシア株式会社 ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法
US11580016B2 (en) * 2019-08-30 2023-02-14 Micron Technology, Inc. Adjustable garbage collection suspension interval
JP2022188429A (ja) * 2021-06-09 2022-12-21 ローム株式会社 スイッチ装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7688536B2 (en) * 2007-05-23 2010-03-30 International Business Machines Corporation Variable power write driver circuit
US8341300B1 (en) * 2007-08-30 2012-12-25 Virident Systems, Inc. Systems for sustained read and write performance with non-volatile memory
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8595572B2 (en) * 2009-04-08 2013-11-26 Google Inc. Data storage device with metadata command
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US10558705B2 (en) * 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
WO2014087441A1 (en) * 2012-12-03 2014-06-12 Hitachi, Ltd. Computer system and method of controlling computer system
WO2014141140A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Device power control
US9569352B2 (en) * 2013-03-14 2017-02-14 Sandisk Technologies Llc Storage module and method for regulating garbage collection operations based on write activity of a host
KR102053865B1 (ko) * 2013-03-15 2019-12-09 삼성전자주식회사 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템
KR20150139112A (ko) * 2014-06-02 2015-12-11 삼성전자주식회사 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
KR102330391B1 (ko) * 2014-09-11 2021-11-24 삼성전자주식회사 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법
CN105630638B (zh) * 2014-10-31 2018-01-12 国际商业机器公司 用于为磁盘阵列分配缓存的设备和方法
KR102291803B1 (ko) * 2015-04-07 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
US9930704B2 (en) * 2015-07-24 2018-03-27 Aruba Networks, Inc. Heterogeneous deployment of access point clusters
US20170177225A1 (en) * 2015-12-21 2017-06-22 Nimble Storage, Inc. Mid-level controllers for performing flash management on solid state drives
US10185658B2 (en) * 2016-02-23 2019-01-22 Sandisk Technologies Llc Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
US10409719B2 (en) * 2016-03-17 2019-09-10 Samsung Electronics Co., Ltd. User configurable passive background operation
US20180024964A1 (en) * 2016-07-19 2018-01-25 Pure Storage, Inc. Disaggregated compute resources and storage resources in a storage system
JP2018022397A (ja) * 2016-08-04 2018-02-08 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US10452532B2 (en) * 2017-01-12 2019-10-22 Micron Technology, Inc. Directed sanitization of memory
US10564895B2 (en) * 2017-06-07 2020-02-18 ScaleFlux, Inc. I/O performance enhancement of solid-state data storage devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020066052A1 (ja) 2018-09-27 2020-04-02 株式会社日立製作所 監視システム及び監視方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2018181281A (ja) ストレージシステム、制御装置及びストレージ装置
US11030107B2 (en) Storage class memory queue depth threshold adjustment
US10776276B2 (en) Bypass storage class memory read cache based on a queue depth threshold
US20100274933A1 (en) Method and apparatus for reducing memory size and bandwidth
US8719525B2 (en) Storage device with manual learning
US10416907B2 (en) Storage system, storage control apparatus, and method of controlling a storage device
JP2006114206A5 (ja)
JP2006114206A (ja) Dramおよびフラッシュメモリを有するhdd
US9898413B2 (en) Auto-adaptive system to implement partial write buffering for storage systems dynamic caching method and system for data storage system
JP2017027479A (ja) データ読出し方法及び情報処理システム
JP2017517065A (ja) 再構成可能フェッチパイプライン
US20170212711A1 (en) Disk apparatus and control method
KR20180115846A (ko) 메모리 장치 및 그것을 포함하는 데이터 저장 장치
JP2016014957A (ja) ストレージ装置及びそのデータ処理方法
JP2008250718A (ja) 不揮発性キャッシュメモリを用いた記憶装置とその制御方法
JP2018022440A5 (ja)
US9471227B2 (en) Implementing enhanced performance with read before write to phase change memory to avoid write cancellations
JP6721821B2 (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US9501414B2 (en) Storage control device and storage control method for cache processing according to time zones
KR101491687B1 (ko) 버퍼 용량의 사용이 개선된 대량 저장 시스템
US9588898B1 (en) Fullness control for media-based cache operating in a steady state
JP2018132964A (ja) ストレージ制御装置、ストレージ制御方法及びストレージシステム
US11029878B2 (en) Information processing system
US20180081796A1 (en) Data Storage Device and Data Writing Method Thereof
US20140068218A1 (en) Storage device and communication method

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20180528