JP2021135538A - ストレージ制御装置及びストレージ制御プログラム - Google Patents

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

Info

Publication number
JP2021135538A
JP2021135538A JP2020028716A JP2020028716A JP2021135538A JP 2021135538 A JP2021135538 A JP 2021135538A JP 2020028716 A JP2020028716 A JP 2020028716A JP 2020028716 A JP2020028716 A JP 2020028716A JP 2021135538 A JP2021135538 A JP 2021135538A
Authority
JP
Japan
Prior art keywords
data
control unit
garbage collection
usage amount
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020028716A
Other languages
English (en)
Other versions
JP7500991B2 (ja
Inventor
一宏 浦田
Kazuhiro Urata
一宏 浦田
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 JP2020028716A priority Critical patent/JP7500991B2/ja
Priority to US17/142,285 priority patent/US20210263668A1/en
Publication of JP2021135538A publication Critical patent/JP2021135538A/ja
Application granted granted Critical
Publication of JP7500991B2 publication Critical patent/JP7500991B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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

Landscapes

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

Abstract

【課題】ストレージ装置の装置性能を有効に発揮させるストレージ制御装置及びストレージ制御プログラムを提供する。【解決手段】入出力制御部121は、データの書込命令を受信し、ストレージ装置の格納領域に対するデータの書込処理を実行し、書込処理を実行した場合、書込処理の内容に応じて格納領域における使用中データによる第1使用量を取得する。ガベージコレクション制御部122は、入出力制御部121により取得された第1使用量及び格納領域に格納された全データによる第2使用量を基に、空き容量確保処理の設定を決定し、決定した設定で前記空き容量確保処理を実行する。【選択図】図2

Description

本発明は、ストレージ制御装置及びストレージ制御プログラムに関する。
ストレージ装置には、一度書き込んだデータの消去変更を禁止する追記型の記憶方式を採用した装置が存在する。さらに、追記型のストレージ装置の中には、重複排除機能及び圧縮機能を有する装置もある。
重複解除機能及び圧縮機能を有する追記型の排除ストレージでは、重複しない新規の書込データは物理ディスクに上書きせずに追記される。また、追記型の削除や上書きが行われることで参照されなくなった物理ディスク上のデータは、ガベージコレクションと呼ばれる不要データ削除機能によってデータのインプット及びアウトプットとは非同期に、物理ディスクからの削除が行われる。このため、物理ディスクの使用量は、書き込み時に一時的に増加し、その後ガベージコレクションの動作によって減少するといった経過をたどる。
ストレージ装置において物理ディスクの使用量は重要な性能指標であり、使用量が少ないほどデータの格納と言うストレージ装置本来の機能を十分に活用することができる。そのため、ストレージ装置では、物理ディスクの使用量はなるべく小さく抑えられることが好ましい。物理ディスクの使用量をなるべく抑えるためには、追記型のストレージ装置ではガベージコレクションを動作させることとなる。
このようなガベージコレクションの技術として、書き込み領域が不足した時点でガベージコレクションを動作させる従来技術がある。また、新しい圧縮データを格納するための十分な大きさの空き領域が物理ディスクに存在しない場合に、ガベージコレクションを動作させる従来技術がある。さらに、物理ディスクにおける未使用領域が一定値以下になり、ホスト装置からのアクセスが一定時間到来しない場合に、ガベージコレクションを実行する従来技術がある。
国際公開第2015/097739号 特開平7−129470号公報 特開平9−330185号公報
しかしながら、ストレージ装置では、ガベージコレクションを動作させた場合の負荷による性能影響が大きい。そのため、ガベージコレクションを頻繁に実行することはなるべく避けることが好ましい。
一方で、ガベージコレクションの実行頻度を低下させると、物理ディスクの使用量が実際に使用可能なデータに比べて大きくなってしまうという問題がある。また、ガベージコレクションを実施しなければ、削除すべきデータが存在するかどうか判定困難であり、ガベージコレクションの頻度を下げた場合、不要なデータの増加に気づかず、物理ディスク上に無駄な領域が増えてしまう。さらに、参照されない不要なデータを除いたディスク実使用量もガベージコレクションを実行しないと不明であり、物理ディスクの容量不足などの事態の発生を迅速に把握することが困難となる。これらの事態が発生すると、ストレージ装置において記憶領域の確保が不十分となり、装置性能を向上させることが困難となる。
この点、書き込み領域が不足した時点でガベージコレクションを動作させる従来技術では、書き込み領域が不足する以前に不要なデータの増加を検出することは困難であり、ガベージコレクションの実行が遅れる場合がある。その場合、ストレージ装置の装置性能を向上させることが困難となるおそれがある。これは、新しい圧縮データの格納領域の存否に応じてガベージコレクションを動作させる従来技術や、物理ディスクにおける未使用領域及びアクセス頻度応じてガベージコレクションを実行する従来技術でも同様である。
開示の技術は、上記に鑑みてなされたものであって、ストレージ装置の装置性能を向上させるストレージ制御装置及びストレージ制御プログラムを提供することを目的とする。
本願の開示するストレージ制御装置及びストレージ制御プログラムの一つの態様において、書込処理部は、データの書込命令を受信し、ストレージ装置の格納領域に対する前記データの書込処理を実行し、前記書込処理を実行した場合、前記書込処理の内容に応じて前記格納領域における使用中データによる第1使用量を取得する。容量確保実行部は、書込処理部により取得された前記第1使用量及び前記格納領域に格納された全データによる第2使用量を基に、空き容量確保処理の設定を決定し、決定した前記設定で前記空き容量確保処理を実行する。
1つの側面では、本発明は、ストレージ装置の記装置性能を向上させることができる。
図1は、ストレージシステムのハードウェア構成図である。 図2は、実施例1に係るコントローラモジュールのブロック図である。 図3は、論理ボリューム側管理テーブルの一例を表す図である。 図4は、物理ボリューム側管理テーブルの一例を表す図である。 図5は、新規データ書き込み時の管理テーブルの遷移を表す図である。 図6は、重複データ書き込み時の管理テーブルの遷移を表す図である。 図7は、データ上書き時の管理テーブルの遷移を表す図である。 図8は、ガベージコレクション処理が割り当てられない場合の処理割り当てを表す図である。 図9は、ガベージコレクション処理の優先度が通常の場合の処理割り当てを表す図である。 図10は、ガベージコレクション処理の優先度が高い場合の処理割り当てを表す図である。 図11は、ガベージコレクション処理の全体のフローチャートである。 図12は、プール使用量算出処理のフローチャートである。 図13は、実施例1に係る優先度設定処理のフローチャートである。 図14は、実施例2に係るコントローラモジュールのブロック図である。 図15は、実施例2に係る優先度設定処理のフローチャートである。
以下に、本願の開示するストレージ制御装置及びストレージ制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するストレージ制御装置及びストレージ制御プログラムが限定されるものではない。
図1は、ストレージシステムのハードウェア構成図である。図1に示すように、ストレージシステム1は、サーバなどのホスト2と接続される。そして、ストレージシステム1は、コントローラモジュール(Controller Module)10及びディスク(Disk)20を有する。
ホスト2は、ストレージシステム1に対して命令を送信する。ストレージシステム1は、ホスト2から受信した命令を処理し、その命令に対する応答をホスト2へ返す。ホスト2からの命令は、データの書込命令や読出命令がなどである。データの書込命令には、ストレージシステム1が保持しないデータを書き込む新規データの書込命令及び既にストレージシステム1が保持する既存データに重複するデータを書き込む重複データの書込命令が含まれる、さらに、書込命令には、既にストレージシステム1が保持する既存データを更新する上書命令が含まれる。
コントローラモジュール10は、ディスク20の論理構成の生成やディスク20に対するデータの読み出し及び書き込みを実行するストレージ制御装置である。コントローラモジュール10は、チャネルアダプタ(Channel Adapter)11、CPU(Central Processing Unit)12、DRAM(Dynamic Random Access Memory)13、ディスクインタフェース14を有する。
チャネルアダプタ11は、ホスト2に接続されるホスト2との間の通信インタフェースである。チャネルアダプタ11は、CPU12に接続され、ホスト2から受信した命令をCPU12へ出力する。また、チャネルアダプタ11は、ホスト2から受信した命令に対する応答をCPU12から受信する。そして、チャネルアダプタ11は、受信した応答をホスト2へ送信する。
CPU12は、ホスト2から送信された命令の入力をチャネルアダプタ11から受ける。そして、CPU12は、受信した命令を処理する。例えば、CPU12は、ディスクインタフェース14を介してディスク20にアクセスし、データの書き込みや読み出しの処理を実行する。そして、CPU12は、処理結果を命令に対する応答としてチャネルアダプタ11を介してホスト2へ送信する。また、CPU12は、複数のディスク20をまとめてプール200を形成する。このプール200が、「格納領域」の一例にあたる。さらに、CPU12は、プール200の中にディスク20をまとめた論理構成を構築する。例えば、CPU12は、複数のディスク20を使用してRAID(Redundant Arrays of Inexpensive Disks)を構築して論理ボリュームを構成する。
CPU12は、実際には物理的なディスクであるディスク20に対してデータの書き込み及び読み出しを行う。例えば、CPU12は、ホスト2からの命令では論理的なディスクであるボリュームに対しての書き込みや読み出しが指示される。そこで、CPU12は、ホスト2からの命令で指定されたボリュームにおけるアクセス先の情報をディスク20におけるアドレスに変換して、ディスク20に対して書込処理や読出処理を実行する。すなわち、書込処理や読出処理は、ホスト2からは論理ボリュームに対する処理として指定され、コントローラモジュール10により実際のデータは物理ボリュームであるディスク20に格納される。
また、CPU12は、ストレージシステム1の制御プログラムをDRAM13上に展開して実行する。ストレージシステム1の制御プログラムとしては、例えば、ガベージコレクションなどを動作させるためのプログラムなどがある。
DRAM13は、主記憶装置である。DRAM13は、ストレージシステム1におけるキャッシュとしても使用される。
ディスクインタフェース14は、ディスク20との間の通信インタフェースである。ディスクインタフェース14は、CPU12とディスク20との間のデータの送受信を仲介する。
ディスク20は、ハードディスクなどの物理ディスクであり補助記憶装置である。ディスク20は、複数まとまって1つのプール200を形成する。さらに、ディスク20はコントローラモジュール10により論理的構成が構築される。例えば、複数のディスク20を用いて1つの論理ボリュームが構築される。
次に、図2を参照して、コントローラモジュール10の詳細について説明する。図2は、実施例1に係るコントローラモジュールのブロック図である。
コントローラモジュール10は、CPU12により実現される、重複圧縮制御部102、キャッシュメモリ制御部104及びバックエンド制御部105を有する。また、DRAM13には、メタデータテーブル103が格納される。
メタデータテーブル103は、図3に示す論理ボリューム側の管理テーブル131及び図4に示す物理ボリューム側の管理テーブル132を含む。図3は、論理ボリューム側管理テーブルの一例を表す図である。また、図4は、物理ボリューム側管理テーブルの一例を表す図である。
管理テーブル131は、論理的なディスクである論理ボリュームにおけるデータの格納位置を表すテーブルである。管理テーブル131には、図3に示すように、論理ボリュームLBA(Logical Block Addressing)とその論理ボリュームLBAで示される領域に格納されたデータの識別情報であるデータ番号とが対応付けられて格納される。管理テーブル131に登録されたデータ番号により、物理ボリューム側の管理テーブル132を介して、ディスク20の集まりである物理ボリューム上のどのデータを参照しているかが確認可能となる。
管理テーブル132は、物理ディスクであるディスク20におけるデータの格納位置を表すテーブルである。管理テーブル132には、図4に示すように、データ番号、参照カウンタ、物理ディスクアドレス及びデータサイズが対応付けられて格納される。データ番号は、論理ボリューム側の管理テーブル131に格納されたデータ番号が用いられる。参照カウンタは、そのデータが参照される参照数を表す。本実施例に係るストレージシステム1は重複排除機能を有するため、1つのデータが複数の異なる情報として参照される場合がある。物理ディスクアドレスは、そのデータが格納されたディスク20におけるアドレスを表す。そして、管理テーブル132の物理ディスクアドレスで指定されたディスク20上の領域にデータ番号に対応するデータが格納される。格納データ210は、管理テーブル132に登録された各情報に対応するディスク20に格納された実際のデータを表す。
重複圧縮制御部102は、入出力制御部121及びガベージコレクション制御部122を有する。入出力制御部121は、論理ボリュームLBAを用いて指定されることで参照されているデータ、すなわち使用中のデータによるプール200の使用量を表す使用中データ使用量を保持する。言い換えれば、プール使用量は、プール200の記憶領域に格納された全データから参照されないデータである不要データを除いたデータの使用量である。このプール使用量が、「第1使用量」の一例にあたる。ここで、本実施例では、プール200を基準として記憶領域の使用量を算出しているが、データを格納する記憶領域を対象とするものであれば他の記憶領域を基準としてもよく、例えば、論理ボリュームを基準としてもよい。入出力制御部121は、プール200の作成時にプール使用量を初期化して0にする。
入出力制御部121は、チャネルアダプタ11を介してホスト2から送信された命令の入力を受ける。そして、入出力制御部121は、取得した命令を処理する。以下に入出力制御部121の命令処理の動作について説明する。
読出命令の場合、入出力制御部121は、メタデータテーブル103を参照して、読み出す対象のデータの格納先を特定する。そして、入出力制御部121は、キャッシュメモリ制御部104に特定した格納先のデータの読み出しを依頼する。その後、入出力制御部121は、読み出し対象のデータの入力をキャッシュメモリ制御部104から受ける。そして、入出力制御部121は、取得したデータをホスト2へチャネルアダプタ11を介して送信する。
書込命令の場合、入出力制御部121は、既存データに対する上書き命令であるか、又は、データを追加する書込み命令であるかを判定する。さらに、データを追加する書込み命令である場合、入出力制御部121は、書込み対象のデータが既存データと重複しない新規データであるか又は重複する重複データであるかを判定する。
データを追加する書込命令であって書き込み対象のデータが新規データである場合、入出力制御部121は、書き込み対象の新規データのディスク20における格納先を決定する。次に、入出力制御部121は、書き込み対象の新規データを圧縮しキャッシュメモリ制御部104へ出力して決定した格納先への格納を依頼する。さらに、入出力制御部121は、メタデータテーブル103を更新する。この場合のメタデータテーブル103の詳細を以下に説明する。
図5は、新規データ書き込み時の管理テーブルの遷移を表す図である。ここでは、新規データを書き込む以前の管理テーブル131及び132の状態が、図3及び図4で示される状態であった場合で説明する。
入出力制御部121は、論理ボリューム側の管理テーブル131の行301に、新規データのデータ番号とともにその新規データの論理ボリュームLBAを登録する。また、入出力制御部121は、物理ボリューム側の管理テーブル132に新規データのための新しい行302を作成し、データ番号を登録するとともに、物理ディスクアドレス及びデータサイズを格納する。さらに、入出力制御部121は、新たに追加した論理ボリュームLBAにより格納した新規データが参照されるので、管理テーブル132における新規データの行302の参照カウンタを1に設定する。この場合、行302の新規データの情報に対応するデータ211が格納データ210として物理ボリュームに格納される。
この場合、参照されているデータである新規データがプール200に追加格納されるので、入出力制御部121は、プール使用量に新規データによる使用量を加算する。
一方、データを追加する書込命令であって書き込み対象のデータが重複データである場合、入出力制御部121は、書き込み対象の重複データのディスク20における格納先を決定する。次に、入出力制御部121は、決定した格納先に対する重複した既存データを示す情報の格納をキャッシュメモリ制御部104へ出力する。その後、入出力制御部121は、書き込み完了の応答をキャッシュメモリ制御部104から受ける。そして、入出力制御部121は、チャネルアダプタ11を介してホスト2へ書き込み完了の応答を送信する。また、入出力制御部121は、メタデータテーブル103を更新する。メタデータテーブル103を更新する。この場合のメタデータテーブル103の詳細を以下に説明する。
図6は、重複データ書き込み時の管理テーブルの遷移を表す図である。ここでは、重複データを書き込む以前の管理テーブル131及び132の状態が図5で示される状態であった場合で説明する。
入出力制御部121は、論理ボリューム側の管理テーブル131を参照して、重複する既存データである元データを表す行を特定する。そして、入出力制御部121は、特定した行のデータ番号を表す欄304から元データのデータ番号を取得する。次に、入出力制御部121は、論理ボリューム側の管理テーブル131の新たな行303に、重複データのデータ番号として元データのデータ番号を登録し、且つ、重複データの論理ボリュームLBAを登録する。また、入出力制御部121は、物理ボリューム側の管理テーブル132における元データを表す行を特定する。そして、入出力制御部121は、元データに対して今回格納したアドレスからの参照が1つ増えたので、特定した行の参照カウンタの欄305の値を1つインクリメントする。この場合、格納データ210には重複データの新たな格納は行われない。
この場合、重複データによるプール200の使用量の増加は発生しないため、入出力制御部121は、プール使用量をそのままの値で維持する。
これに対して、データを上書きする書込命令である場合、入出力制御部121は、更新データについては、新規データか重複データかを判定し、それぞれの場合について上述した方法でデータの格納、並びに、管理テーブル131及び132の更新を実行する。一方、上書きされる元データについては、入出力制御部121は、メタデータテーブル103を参照して上書き対象の元データの情報を管理テーブル132の中から特定する。そして、入出力制御部121は、管理テーブル132における上書き対象の元データの参照カウンタを1つデクリメントする。この場合のメタデータテーブル103の詳細を以下に説明する。
図7は、データ上書き時の管理テーブルの遷移を表す図である。ここでは、データの上書きを行う以前の管理テーブル131及び132の状態が図6で示される状態であった場合で説明する。図7は、更新データが重複データの場合の上書きを表す。
入出力制御部121は、論理ボリューム側の管理テーブル131を参照して、上書き対象の元データを表す行を特定する。以降の処理は、更新データが重複データか新規データかで処理が異なる。
更新データが重複データの場合、入出力制御部121は、特定した行のデータ番号を表す欄306のデータ番号に、更新データが重複する元データのデータ番号を登録する。また、入出力制御部121は、物理ボリューム側の管理テーブル132における更新データが重複する元データを表す行を特定する。そして、入出力制御部121は、更新データが重複する元データに対して今回の更新データのアドレスからの参照が1つ増えるので、特定した行の参照カウンタの欄308における値を1つインクリメントする。この場合、格納データ210には更新データの新たな格納は行われない。
この場合、更新データによるプール200の使用量の増加は発生しないため、入出力制御部121は、プール使用量をそのままの値で維持する。
これに対して、更新データが新規データの場合、入出力制御部121は、新たにデータ番号を割り当てて論理ボリューム側の管理テーブル131に新たに更新データの情報を登録する。また、入出力制御部121は、更新データの情報を物理ボリューム側の管理テーブル132にも登録する。
この場合、参照されているデータである新規データがプール200に追加格納されるので、入出力制御部121は、プール使用量に新規データによる使用量を加算する。
さらに、更新データが新規データ又は重複データのいずれの場合においても、入出力制御部121は、以下の処理を実行する。入出力制御部121は、上書き対象の元データを表す行を特定する。そして、入出力制御部121は、上書き対象の元データに対して今回の更新データのアドレスからの参照が1つ減るので、特定した行の参照カウンタの欄307における値を1つデクリメントする。その後、入出力制御部121は、上書き対象の元データの参照カウンタが0か否かを判定する。
参照カウンタが0でなければそのデータはいずれかの論理ボリュームLBAを用いて参照されているので、入出力制御部121は、上書き対象の元データを使用中のデータであると判定する。この場合、入出力制御部121は、プール使用量をそのまま維持する。これに対して、上書き対象の元データの参照カウンタが0である場合、入出力制御部121は、上書き対象の元データは参照されておらず不要なデータであると判定する。この場合、上書き対象の元データが不要なデータとなったため、入出力制御部121は、プール使用量から上書き対象の元データによる使用量を減算する。
また、入出力制御部121は、例えば、ホスト2からプール使用量の通知要求を受けた場合、保持するプール使用量の情報をホスト2へチャネルアダプタ11を介して送信する。これにより、管理者は、プール使用量を確認することができ、ある時点での圧縮重複排除後の使用中のデータ量を判断することができる。
図2に戻って説明を続ける。ガベージコレクション制御部122は、ガベージコレクションの定期実行を判定するためのタイマを有する。そして、ガベージコレクション制御部122は、タイマを用いてガベージコレクションの定期実行のタイミングの到来を検知して、ガベージコレクションの実行を開始する。ここで、本実施例では、ガベージコレクションは定期実行されるが、不定期の実行でもよい。例えば、プール200の使用量に基づいてガベージコレクションを実行してもよいし、管理者からの指示によりガベージコレクションを実行してもよい。
ガベージコレクション制御部122は、ガベージコレクションを実行する場合に、ガベージコレクションの設定を決定して、決定した設定に基づいてガベージコレクションを実行する。本実施例では、ガベージコレクション制御部122は、ガベージコレクションの設定として、ストレージシステム1で実行される処理全体におけるガベージコレクション処理が実行される割合を表す優先度を用いる。すなわち、本実施例に係る特定の処理の優先度とは、優先度が高くなるほど、ストレージシステム1で実行される処理全体におけるその特定の処理が実行される割合が上昇することを表す指標である。以下に、ガベージコレクション制御部122によるガベージコレクション処理の詳細について説明する。
ガベージコレクション制御部122は、ストレージシステム1のシステム負荷が閾値以下か否かを判定する。システム負荷が閾値より大きい場合、ガベージコレクションを優先的に処理するための処理能力や資源の余裕をストレージシステム1が有さないと考えられるため、ガベージコレクション制御部122は、ガベージコレクション処理の優先度を通常に設定する。
これに対して、システム負荷が閾値以下の場合、ガベージコレクション制御部122は、入出力制御部121からプール使用量を取得する。また、ガベージコレクション制御部122は、プール200に格納された全てのデータによる使用量であるディスク実使用量をバックエンド制御部105から取得する。このディスク実使用量が、「第2使用量」の一例にあたる。
次に、ガベージコレクション制御部122は、ディスク実使用量からプール使用量を減算する。そして、ガベージコレクション制御部122は、ディスク実使用量とプール使用量との差を表す減算結果が閾値以上か否かを判定する。
ディスク実使用量とプール使用量との差が閾値未満の場合、不要データが少ないと考えられ、ガベージコレクションを実行しても未使用領域の増加はそれほど見込めない。そのため、ガベージコレクション制御部122は、ガベージコレクションの優先度を通常に設定する。
これに対して、ディスク実使用量とプール使用量との差が閾値以上の場合、不要データが多いと考えられ、ガベージコレクションを実行することで未使用領域のある程度の増加が見込まれる。そのため、ガベージコレクション制御部122は、ガベージコレクションの優先度を高くする。本実施例では、ガベージコレクションの優先度として、通常の優先度及び高い優先度の2種類が存在する場合で説明する。
その後、ガベージコレクション制御部122は、設定した優先度でガベージコレクションをCPUコアに割り当てるとともにバックエンド制御部105に実行させる。ここで、本実施例に係る処理の優先度について説明する。
本実施例に係る優先度設定は、ストレージシステム1におけるタスクスケジューラによるCPU12のコア割り当ての優先度やバックエンド制御部105によるディスクへのコマンド発行優先度に反映される。
ストレージシステム1に搭載されるCPU12は、複数のコアを有する。そして、タスクスケジューラと呼ばれる制御が、ストレージシステム1が実行する処理を、各コアに割り当てて実行させる。この割り当ての際に、タスクスケジューラは、特定のタスクについて割り当てるコアを固定したり、あるいは優先度の高い処理を優先度が低い処理より先に実行させたりする。
例えば、CPU12がコア#1〜#9を有し、コア#1〜#9が、ホスト2からの読み出し命令及び書き込み命令を処理するIO処理及びガベージコレクション処理を実行する場合で説明する。例えば、ガベージコレクションが実行されていない場合、コア#1〜#9には、図8のようにIO処理が割り当てられる。図8は、ガベージコレクション処理が割り当てられない場合の処理割り当てを表す図である。図8における実行中処理にあたる処理が、各コア#1〜#9が実行している処理である。そして、実行待ち処理行列にあたる処理が、各コア#1〜#9のそれぞれに既に割り当てられて実行中処理が終了すると順次紙面に向かって上から処理されていく処理である。
図9は、ガベージコレクション処理の優先度が通常の場合の処理割り当てを表す図である。図9においてCG処理と記載したものがガベージコレクション処理にあたる。ガベージコレクションの優先度が通常の場合、例えば、コア#9にガベージコレクション処理を割り当て、残りのコア#1〜#8は、IO処理を割り当てる。他にも、ガベージコレクション処理が通常の優先度に設定された場合に、IO処理がガベージコレクション処理よりも優先して実行され、ガベージコレクション処理はIO処理が空いたタイミングで実施されるように設定してもよい。このように、通常の優先度にガベージコレクションが設定された場合、IO処理を阻害することなくガベージコレクション処理が実行される。
図10は、ガベージコレクション処理の優先度が高い場合の処理割り当てを表す図である。ガベージコレクション処理の優先度が高い場合、ガベージコレクション処理はIO処理と均等に各コア#1〜#9に割り当てられる。すなわち、平均すると、5つのコアでIO処理が実施され、残りの5つのコアでガベージコレクション処理が実施されることになる。この場合、IO処理又はガベージコレクション処理のうち、先に登録されたものが先に実行される。これによって、ガベージコレクション処理の処理速度は通常時と比べて大きく向上する。逆に、IO処理は実行がある程度阻害される。ただし、コア#1〜#9に対する処理割り当ては固定されないため、IO処理が無い場合には、全てのコア#1〜#9でガベージコレクション処理が動作することが可能である。逆に、ガベージコレクション処理が無い場合には、全てのコア#1〜#9でIO処理が動作することが可能である。
ここで、CPU12のそれぞれのコアは、入出力制御部121、キャッシュメモリ制御部104、バックエンド制御部105及びディスクインタフェース14の機能をそれぞれが実現する。すなわち、ガベージコレクション制御部122は、各コアで動作する入出力制御部121、キャッシュメモリ制御部104、バックエンド制御部105及びディスクインタフェース14に対して設定した優先度を通知して処理を実行させるといえる。このように、本実施例において優先度を上げるということは、具体的には、ガベージコレクションの実行の設定を変更して、コントローラモジュール10が実行する処理全体のうちのガベージコレクション処理の割合を上昇させることにあたる。
さらにタスクスケジューリングに加えて、本実施例に係るストレージシステム1では、バックエンド制御部105が実行するディスク20に対するデータの流量制御時の割合にも優先度が反映される。バックエンド制御部105は、RAIDグループを構成する複数のディスク20へのコマンド発行の際に、ガベージコレクション処理対する延長コマンドをどの程度発行するかを優先度に応じて決定する。ガベージコレクション処理の優先度が通常の場合、バックエンド制御部105は、IO処理のコマンドの発行を優先して行い、IO処理のコマンド発行後にガベージコレクション処理の延長コマンドを発行する。これに対して、ガベージコレクション処理の優先度が高い場合、バックエンド制御部105は、ガベージコレクション処理の延長コマンドをIO処理のコマンドと均等に発行する。
このガベージコレクション制御部122が、「容量確保実行部」の一例にあたる。また、ガベージコレクション制御部122により実行されるガベージコレクションが、「空き容量確保処理」の一例にあたる。ただし、プール使用量とディスク実使用量との差を基に実行させる空き容量確保処理は、ディスク20の空き容量を増やすことができれば他の処理を対象としてもよい。
以上の説明では、ガベージコレクションの優先度として、通常の優先度及び高い優先度の2種類が存在する場合で説明したが、優先度は通常の優先度から最高の優先度まで複数段階あってもよい。ガベージコレクション制御部122は、ガベージコレクションの優先度を高くする場合、複数段階の優先度のうち通常の優先度よりも高い優先度を選択して設定する。ガベージコレクション制御部122は、この優先度の選択を、ディスク実容量の大きさやディスク実容量とプール使用量との差の大きさに応じて選択してもよい。
図2に戻って説明を続ける。キャッシュメモリ制御部104は、データの書込命令の入力を入出力制御部121から受ける。そして、キャッシュメモリ制御部104は、書き込み対象のデータをDRAM13のキャッシュ領域に書き込み、書き込み完了の応答を入出力制御部121へ出力する。その後、キャッシュメモリ制御部104は、非同期でDRAM13のキャッシュ領域から書き込み対象のデータを読み出して、バックエンド制御部105に書込命令を出力する。
また、キャッシュメモリ制御部104は、データの読出命令の入力を入出力制御部121から受ける。そして、キャッシュメモリ制御部104は、DRAM13のキャッシュ領域に読み出し対象のデータが存在するか否かを確認する。キャッシュヒットした場合、キャッシュメモリ制御部104は、DRAM13のキャッシュ領域から読み出し対象のデータを読み出して入出力制御部121へ出力する。
これに対して、キャッシュミスヒットの場合、キャッシュメモリ制御部104は、データの読出命令をバックエンド制御部105へ出力する。その後、キャッシュメモリ制御部104は、読み出し対象のデータの入力をバックエンド制御部105から受ける。そして、キャッシュメモリ制御部104は、取得した読み出し対象のデータをDRAM13のキャッシュ領域に格納するとともに、キャッシュがフルであれば不要なデータを削除する。さらに、キャッシュメモリ制御部104は、読み出し対象のデータを入出力制御部121へ出力する。
バックエンド制御部105は、ホスト2から送信されたディスク20の構成情報に基づいてプール200及び論理ボリュームを生成する。この際、バックエンド制御部105は、プール200における全てのデータによる使用量であるディスク実使用量を初期化して0とする。
バックエンド制御部105は、データの書込命令をキャッシュメモリ制御部104から受ける。そして、バックエンド制御部105は、データの書込コマンドをディスクインタフェース14を介してディスク20に発行してデータを格納させる。
また、バックエンド制御部105は、データの読出命令をキャッシュメモリ制御部104から受ける。そして、バックエンド制御部105は、データの読出コマンドをディスクインタフェース14を介してディスク20に発行してデータを取得する。その後、バックエンド制御部105は、読み出したデータをキャッシュメモリ制御部104へ出力する。
また、バックエンド制御部105は、ガベージコレクションの実行の指示をガベージコレクション制御部122から受ける。そして、バックエンド制御部105は、メタデータテーブル103を参照して参照が無いデータである不要データを特定する。そして、バックエンド制御部105は、不要データを削除する。この時、バックエンド制御部105は、ガベージコレクション実行の指示で指定されたガベージコレクションの優先度に応じてガベージコレクション処理の延長コマンドの発行を行う。
次に、図11を参照して本実施例に係るコントローラモジュール10によるガベージコレクション処理の全体の流れを説明する。図11は、ガベージコレクション処理の全体のフローチャートである。
入出力制御部121は、ホスト2から送信された書込命令をチャネルアダプタ11を介して受信する(ステップS1)。
次に、入出力制御部121は、保持するプール使用量を更新する(ステップS2)。
ガベージコレクション制御部122は、タイマを使用してガベージコレクションの動作タイミングが到来したか否かを判定する(ステップS3)。ガベージコレクションの動作タイミングが到来しない場合(ステップS3:否定)、重複圧縮制御部102の処理はステップS1へ戻る。
これに対して、ガベージコレクションの動作タイミングが到来したい場合(ステップS3:肯定)、ガベージコレクション制御部122は、ガベージコレクションの定期動作を開始する(ステップS4)。
次に、ガベージコレクション制御部122は、ストレージシステム1のシステム負荷を確認する。また、ガベージコレクション制御部122は、ディスク実使用量をバックエンド制御部105から取得して確認する(ステップS5)。
次に、ガベージコレクション制御部122は、入出力制御部121からプール使用量を取得する(ステップS6)。
次に、ガベージコレクション制御部122は、プール使用量及びディス実使用量を用いてガベージコレクションの優先度を設定する(ステップS7)。
その後、ガベージコレクション制御部122は、設定した優先度でのガベージコレクションの実行を入出力制御部121、キャッシュメモリ制御部104及びバックエンド制御部105に指示する。入出力制御部121、キャッシュメモリ制御部104及びバックエンド制御部105は、IO処理を実行しつつ、設定された優先度でガベージコレクションを実行する(ステップS8)。
ここで、図11のステップS4〜S8においてガベージコレクション処理の実行中にも、コントローラモジュール10は、IO処理を並行して実施する。
次に、図12を参照して、プール使用量算出処理の流れについて説明する。図12は、プール使用量算出処理のフローチャートである。図12に示した処理は、図11におけるステップS1及びS2で実行される処理の一例にあたる。
入出力制御部121は、ホスト2から送信された書込命令をチャネルアダプタ101を介して受信する(ステップS101)。
次に、入出力制御部121は、重複排除圧縮処理を実行し指定されたデータの書込みを実行する(ステップS102)。
次に、入出力制御部121は、書き込み対象のデータが既存データと重複しないか否かを判定する(ステップS103)。書き込み対象のデータが既存データと重複する場合(ステップS103:否定)、入出力制御部121は、ステップS105へ進む。
これに対して、書き込み対象のデータが既存データと重複しない場合(ステップS103:肯定)、入出力制御部121は、プール使用量に書き込み対象のデータによる使用量を加算する(ステップS104)。
その後、入出力制御部121は、書き込みが上書きの場合の元データの参照カウンタが0か否かを判定する(ステップS105)。元データの参照カウンタが0でない場合(ステップS105:否定)、入出力制御部121は、ステップ107へ進む。
これに対して、元データの参照カウンタが0の場合(ステップS105:肯定)、入出力制御部121は、プール使用量から元データによる使用量を減算する(ステップS106)。
その後、入出力制御部121は、重複する既存データが無い場合は書き込むデータをキャッシュメモリ制御部104へ出力する。そして、キャッシュメモリ制御部104は、キャッシュにデータを書き込む(ステップS107)。
その後、キャッシュメモリ制御部104は、非同期で書き込むデータをキャッシュから読み出し、バックエンド制御部105へ出力する。バックエンド制御部105は、キャッシュメモリ制御部104から入力されたデータを書き込む書込コマンドをディスクインタフェース14を介してディスク20に発行してディスク20にデータを書き込む(ステップS108)。
次に、図13を参照して、実施例1に係るコントローラモジュール10による優先度設定処理の流れについて説明する。図13は、実施例1に係る優先度設定処理のフローチャートである。図13に示した処理は、図12におけるステップS4〜S8で実行される処理の一例にあたる。
ガベージコレクション制御部122は、ガベージコレクションの定期動作を開始する(ステップS201)。
次に、ガベージコレクション制御部122は、ストレージシステム1のシステム負荷を取得し、システム負荷が負荷閾値以下か否かを判定する(ステップS202)。システム負荷が負荷閾値以下の場合(ステップS202:肯定)、ガベージコレクション制御部122は、ディスク使用量からプール使用量を減算し、プール使用量とディスク使用量の差が閾値以上か否かを判定する(ステップS203)。
プール使用量とディスク使用量の差が閾値以上の場合(ステップS203:肯定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を高に設定する(ステップS204)。
一方、システム負荷が負荷閾値より大きい場合(ステップS202:否定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を通常に設定する(ステップS205)。同様に、プール使用量とディスク使用量の差が閾値未満の場合(ステップS203:否定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を通常に設定する(ステップS205)。
その後、ガベージコレクション制御部122は、設定した優先度でのガベージコレクションの実行を入出力制御部121、キャッシュメモリ制御部104及びバックエンド制御部105に指示する。入出力制御部121、キャッシュメモリ制御部104及びバックエンド制御部105は、IO処理を実行しつつ、設定された優先度でガベージコレクションを実行する(ステップS206)。
以上に説明したように、本実施例に係るコントローラモジュールは、使用中のデータによる使用量であるプール使用量と、全データによる使用量であるディスク実使用量との差を算出する。そして、コントローラモジュールは、ディスク実使用量とプール使用量との差が閾値以上であれば、ガベージコレクションの実行の優先度を上昇させる。すなわち、コントローラモジュールは、ガベージコレクションの実行の設定を変更して、コントローラモジュールが実行する処理全体のうちのガベージコレクションの割合を上昇させる。
これにより、ガベージコレクションの実行によるディスクの空き容量の確保の効果が高い場合に、ガベージコレクションの割合を上げることができ、迅速に空き容量を確保することができる。言い換えれば、ガベージコレクションを事項しても十分な効果を得られない場合には、ガベージコレクションの処理の割合を維持することで、より多くのCPU性能をホストコンピュータからのIO処理に割くことが可能となる。結果的に、限りあるディスクのリソースを効率的に使用することが可能となり、ストレージシステムの装置性能を有効に発揮させることができる。
また、システム負荷を用いてガベージコレクションの設定を変更することで、例えば、システム負荷が低く余裕があるタイミングで、ガベージコレクションを優先的に動作させてディスクの空き容量を確保することができ、IO処理への影響を抑えることができる。
以上のように、本実施例に係るコントローラモジュールは、ストレージ装置における空き容量の確保と処理負荷とのバランスを適切に保つことができ、ストレージ装置の装置性能を向上させることができる。
図14は、実施例2に係るコントローラモジュールのブロック図である。本実施例に係るコントローラモジュール10は、ディスク実使用量が閾値以上の場合にガベージコレクションの優先度を高に設定した上で管理者に通知を行うことが実施例1と異なる。本実施例に係るコントローラモジュール10は、実施例1の各部に加えて報知部106を有する。以下の説明では、実施例1で説明した各部の動作については説明を省略する。
ガベージコレクション制御部122は、ガベージコレクションの定期動作を開始すると、ディスク実使用量をバックエンド制御部105から取得する。そして、ガベージコレクション制御部122は、ディスク実使用量が予め決められた使用量閾値以上か否かを判定する。
ディスク実使用量が使用量閾値以上の場合、ディスク20の空き容量が僅少であり危険であると判定できることから、ガベージコレクション制御部122は、ガベージコレクションの優先度を高に設定する。次に、ガベージコレクション制御部122は、プール使用量を入出力制御部121から取得する。そして、ガベージコレクション制御部122は、ディスク実使用量からプール使用量を減算して、減算結果であるプール使用量とディスク実使用量との差が閾値以上か否かを判定する。そして、ガベージコレクション制御部122は、判定結果を報知部106に通知する。
一方、ディスク実使用量が使用量閾値未満の場合はディスク20の空き容量に余裕があるので、ガベージコレクション制御部122は、実施例1と同様にシステム負荷及びプール使用量とディスク実使用量との差を用いてガベージコレクションの優先度を決定する。
報知部106は、プール使用量とディスク実使用量との差が閾値以上か否かの判定結果の通知をガベージコレクション制御部122から受ける。
プール使用量とディスク実使用量との差が閾値以上の場合、ガベージコレクションを実行することでディスクの空き容量がある程度確保できることが想定できるので、報知部106は、ストレージシステム1の性能低下の通知を管理者に通知する。
これに対して、プール使用量とディスク実使用量との差が閾値未満の場合、ガベージコレクションを実行してもディスクの空き容量の確保が困難であると想定できるので、報知部106は、ディスク20の追加推奨を管理者に通知する。この報知部106の機能も、CPU12により実現される。
次に、図15を参照して、本実施例に係るコントローラモジュール10による優先度設定処理の流れについて説明する。図15は、実施例2に係る優先度設定処理のフローチャートである。
ガベージコレクション制御部122は、ガベージコレクションの定期動作を開始する(ステップS301)。
次に、ガベージコレクション制御部122は、ディスク実使用量をバックエンド制御部105から取得する。そして、ガベージコレクション制御部122は、ディスク実使用量が使用量閾値以上か否かを判定する(ステップS302)。
ディスク実使用量が使用量閾値以上の場合(ステップS302:否定)、ガベージコレクション制御部122は、ストレージシステム1のシステム負荷を取得し、システム負荷が負荷閾値以下か否かを判定する(ステップS303)。システム負荷が負荷閾値以下の場合(ステップS303:肯定)、ガベージコレクション制御部122は、ディスク使用量からプール使用量を減算し、プール使用量とディスク使用量の差が閾値以上か否かを判定する(ステップS304)。
プール使用量とディスク使用量の差が閾値以上の場合(ステップS304:肯定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を高に設定する(ステップS305)。
一方、システム負荷が負荷閾値より大きい場合(ステップS303:否定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を通常に設定する(ステップS306)。同様に、プール使用量とディスク使用量の差が閾値未満の場合(ステップS304:否定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を通常に設定する(ステップS306)。
一方、ディスク実使用量が使用量閾値以上の場合(ステップS302:肯定)、ガベージコレクション制御部122は、ガベージコレクションの優先度を高に設定する(ステップS307)。
次に、ガベージコレクション制御部122は、プール使用量を入出力制御部121から取得する。そして、ガベージコレクション制御部122は、ディスク実使用量からプール使用量を減算して、プール使用量とディスク実使用量との差が閾値以上か否かを判定する(ステップS308)。そして、ガベージコレクション制御部122は、判定結果を報知部106へ通知する。
プール使用量とディスク実使用量との差が閾値以上の場合(ステップS308:肯定)、報知部106は、ストレージシステム1の性能低下を管理者に通知する(ステップS309)。
これに対して、プール使用量とディスク実使用量との差が閾値未満の場合(ステップS308:否定)、報知部106は、ディスク20の追加推奨を管理者に通知する(ステップS310)。
その後、ガベージコレクション制御部122は、設定した優先度でのガベージコレクションの実行を入出力制御部121、キャッシュメモリ制御部104及びバックエンド制御部105に指示する。入出力制御部121、キャッシュメモリ制御部104及びバックエンド制御部105は、IO処理を実行しつつ、設定された優先度でガベージコレクションを実行する(ステップS311)。
以上に説明したように、本実施例に係るコントローラモジュールは、ディスク実使用量が使用量閾値以上の場合、ガベージコレクションの優先度を高に設定する。さらに、コントローラモジュールは、プール使用量とディスク実使用量の差から判定される現在のストレージシステムの状態を管理者に通知する。
これにより、ディスクの空き容量が僅少な場合に、ガベージコレクション処理を優先させることができ、迅速にディスクの空き容量を確保することができる。また、ディスクの空き容量が僅少で危険な状態と考えられる場合に、管理者にストレージシステムの状態を通知することで障害発生前の対応を促すことができ、ストレージシステムの運転の継続性を維持して信頼性を確保することができる。
1 ストレージシステム
2 ホスト
10 コントローラモジュール
11 チャネルアダプタ
12 CPU
13 DRAM
14 ディスクインタフェース
20 ディスク
102 重複圧縮制御部
103 メタデータテーブル
104 キャッシュメモリ制御部
105 バックエンド制御部
106 報知部
200 プール

Claims (10)

  1. データの書込命令を受信し、ストレージ装置の格納領域に対する前記データの書込処理を実行し、前記書込処理を実行した場合、前記書込処理の内容に応じて前記格納領域における使用中データによる第1使用量を取得する書込処理部と、
    書込処理部により取得された前記第1使用量及び前記格納領域に格納された全データによる第2使用量を基に、空き容量確保処理の設定を決定し、決定した前記設定で前記空き容量確保処理を実行する容量確保実行部と
    を備えたことを特徴とするストレージ制御装置。
  2. 前記容量確保実行部は、前記第1使用量及び前記第2使用量に加えて、前記ストレージ装置の処理負荷を基に、空き容量確保処理の設定を決定することを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記容量確保実行部は、前記第1使用量と前記第2使用量との差を基に、前記設定を決定することを特徴とする請求項1又は2に記載のストレージ制御装置。
  4. 前記設定は、前記ストレージ装置が実行する処理における前記空き容量確保処理の割合であることを特徴とする請求項1〜3のいずれか一つに記載のストレージ制御装置。
  5. 前記容量確保実行部は、前記第1使用量と前記第2使用量との差が閾値未満の場合に、前記空き容量確保処理の前記割合を上昇させることを特徴とする請求項4に記載のストレージ制御装置。
  6. 前記書込処理部は、前記書込処理において重複排除処理及び圧縮処理を実行し、既存データと重複しない場合はデータを書き込み且つ書き込んだデータへの参照情報を格納し、前記既存データと重複する場合は前記既存データへの前記参照情報を格納し、前記既存データを上書きする場合は前記既存データへの前記参照情報を削除し、前記参照情報を基に前記参照情報を有するデータを使用中データとすることを特徴とする請求項1〜5のいずれか一つに記載のストレージ制御装置。
  7. 前記容量確保実行部は、前記空き容量確保処理として前記格納領域における前記使用中データ以外の不要データの削除を実行することを特徴とする請求項1〜6のいずれか一つに記載のストレージ制御装置。
  8. 前記容量確保実行部は、前記第1使用量が閾値未満の場合、前記空き容量確保処理の前記割合を上昇させることを特徴とする請求項4又は5に記載のストレージ制御装置。
  9. 前記第1使用量が使用量閾値未満の場合、前記第1使用量と前記第2使用量との差を基にストレージ装置の状態を判定して報知する報知部をさらに備えたことを特徴とする請求項1〜8のいずれか一つに記載のストレージ制御装置。
  10. データの書込命令を受信し、ストレージ装置の格納領域に対する前記データの書込処理を実行し、
    前記書込処理を実行した場合、前記書込処理の内容に応じて前記格納領域における不要データを除いた使用可能データによる第1使用量を取得し、
    取得した前記第1使用量及び前記格納領域に格納された全データによる第2使用量を基に、空き容量確保処理の設定を決定し、
    決定した前記設定で前記空き容量確保処理を実行する
    処理をコンピュータに実行させることを特徴とするストレージ制御プログラム。
JP2020028716A 2020-02-21 2020-02-21 ストレージ制御装置及びストレージ制御プログラム Active JP7500991B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020028716A JP7500991B2 (ja) 2020-02-21 2020-02-21 ストレージ制御装置及びストレージ制御プログラム
US17/142,285 US20210263668A1 (en) 2020-02-21 2021-01-06 Information processing device and computer-readable recording medium recording storage control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020028716A JP7500991B2 (ja) 2020-02-21 2020-02-21 ストレージ制御装置及びストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2021135538A true JP2021135538A (ja) 2021-09-13
JP7500991B2 JP7500991B2 (ja) 2024-06-18

Family

ID=77366007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020028716A Active JP7500991B2 (ja) 2020-02-21 2020-02-21 ストレージ制御装置及びストレージ制御プログラム

Country Status (2)

Country Link
US (1) US20210263668A1 (ja)
JP (1) JP7500991B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240069729A1 (en) * 2022-08-31 2024-02-29 Pure Storage, Inc. Optimizing Data Deletion in a Storage System
CN116624361B (zh) * 2023-04-11 2024-03-22 北京通嘉宏瑞科技有限公司 真空泵工作方法、装置、计算机设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011192260A (ja) 2010-02-16 2011-09-29 Toshiba Corp 半導体記憶装置
US9075712B2 (en) 2011-11-30 2015-07-07 International Business Machines Corporation Scheduling requests in a solid state memory device
US9898404B2 (en) 2013-07-14 2018-02-20 Cnex Labs Method and apparatus for providing improved garbage collection process in solid state drive
WO2015052833A1 (ja) 2013-10-11 2015-04-16 株式会社日立製作所 ストレージ装置、ストレージシステム、及びストレージ装置制御方法
US10318414B2 (en) 2014-10-29 2019-06-11 SK Hynix Inc. Memory system and memory management method thereof
JP2016170583A (ja) 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
JP6517685B2 (ja) 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6608468B2 (ja) 2018-01-26 2019-11-20 株式会社日立製作所 ストレージ装置及びその制御方法

Also Published As

Publication number Publication date
US20210263668A1 (en) 2021-08-26
JP7500991B2 (ja) 2024-06-18

Similar Documents

Publication Publication Date Title
US9569130B2 (en) Storage system having a plurality of flash packages
US8880798B2 (en) Storage system and management method of control information therein
US20140379974A1 (en) Storage system comprising flash memory, and storage control method
US7321955B2 (en) Control device, control method and storage medium recording a control program for controlling write-back schedule of data from cache memory to a plurality of storage devices
JP6691669B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
JP6901427B2 (ja) ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法
US9342456B2 (en) Storage control program for hierarchy relocation control, storage system with hierarchy relocation control and hierarchy control apparatus thereof
CN108228482B (zh) 用于管理存储系统中的缓存设备的方法和系统
US10592148B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
WO2017077624A1 (ja) 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置
JP7500991B2 (ja) ストレージ制御装置及びストレージ制御プログラム
US9465745B2 (en) Managing access commands by multiple level caching
JP5183363B2 (ja) 論理ボリュームのデータ移動方法とストレージシステムおよび管理計算機
JP6311365B2 (ja) 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム
CN108334457B (zh) 一种io处理方法及装置
JPWO2015170702A1 (ja) ストレージ装置と情報処理システム及びストレージ制御方法とプログラム
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
KR102334237B1 (ko) 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치
JP5382471B2 (ja) 電力制御方法、計算機システム、及びプログラム
JP2005166073A (ja) 記憶装置の制御装置および制御方法
JP5333932B2 (ja) ディスクアレイ装置及びその制御方法
JP6138318B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5945040B2 (ja) 複数のフラッシュパッケージを有するストレージシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240520

R150 Certificate of patent or registration of utility model

Ref document number: 7500991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150