JP6805501B2 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP6805501B2
JP6805501B2 JP2016027040A JP2016027040A JP6805501B2 JP 6805501 B2 JP6805501 B2 JP 6805501B2 JP 2016027040 A JP2016027040 A JP 2016027040A JP 2016027040 A JP2016027040 A JP 2016027040A JP 6805501 B2 JP6805501 B2 JP 6805501B2
Authority
JP
Japan
Prior art keywords
data
block data
writes
stored
storage
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.)
Active
Application number
JP2016027040A
Other languages
English (en)
Other versions
JP2017146722A (ja
Inventor
悠 永田
悠 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016027040A priority Critical patent/JP6805501B2/ja
Publication of JP2017146722A publication Critical patent/JP2017146722A/ja
Application granted granted Critical
Publication of JP6805501B2 publication Critical patent/JP6805501B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージ装置にかかり、特に、書き込み回数に応じて使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置に関する。
近年、フラッシュメモリは、大容量化や記録再生速度の高速化、さらには低価格化が進んでおり、広く普及してきている。また、エンタープライズ向けストレージ装置においても、フラッシュメモリのみを用いた製品が販売されるようになっている。
一方で、フラッシュメモリの課題として、書き込み可能回数が限られることがあげられる。このため、特定のメモリセルに書き込みが集中しないようにし、フラッシュメモリの使用寿命を延ばすための技術であるウェアレベリング(摩耗平滑化)が必要になる(例えば、特許文献1の段落0039)。特に、高信頼性が求められるエンタープライズ向け製品でフラッシュメモリを使用する場合は、より高度なウェアレベリングが求められる。
ここで、ウェアレベリングの方法として、メモリセルの書き込み回数の統計情報を基に書き込み回数を均等化する方法がある。具体的には、I/O(Input/Output)統計情報を基に書き込み先のメモリセルを決定する方法や、I/O統計情報を基にメモリセル間の書き込み回数が平準化するようにデータの再配置を行う方法、がある。
特開2014−225297号公報
しかしながら、上述したI/O統計情報を用いたウェアレベリング方法では、フラッシュメモリの使用寿命を延ばすことが困難である、という問題が生じる。つまり、上述した方法では、I/Oの挙動が変わった場合には、メモリセルのデータが今後も書き換えられるかを予測することは困難であり、効率的なウェアレベリング処理が困難となる。その結果、フラッシュメモリの使用寿命が短くなってしまう。
そして、上述した問題は、フラッシュメモリだけでなく、データの書き換えによって使用寿命が短くなるあらゆる記憶媒体に対しても生じうる。
このため、本発明の目的は、上述した課題である、記憶媒体の使用寿命が短くなることを解消することにある。
本発明の一形態であるストレージ装置は、
書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置であって、
記憶媒体に記憶されているデータが共有されている数を表す共有数を取得する共有数取得部と、
前記共有数に基づいて、記憶媒体に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える書き換え部と、
を備えた、
という構成をとる。
また、本発明の一形態であるプログラムは、
書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置に装備された制御部に、
記憶媒体に記憶されているデータが共有されている数を表す共有数を取得する共有数取得部と、
前記共有数に基づいて、記憶媒体に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える書き換え部と、
を実現させる、
という構成をとる。
また、本発明の一形態である書き換え方法は、
書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置による書き換え方法であって、
記憶媒体に記憶されているデータが共有されている数を表す共有数を取得し、
前記共有数に基づいて、記憶媒体に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える、
という構成をとる。
本発明は、以上のように構成されることにより、記憶媒体の使用寿命が短くなることを抑制することができる。
本発明の実施形態1におけるストレージ装置の構成を示す機能ブロック図である。 図1に開示したストレージ装置に格納されたデータの構造の一例を示す図である。 図2に開示したコンテンツアドレスのデータ構造の一例を示す図である。 ストレージ装置によるデータ書き換え処理の動作を示すフローチャートである。 ストレージ装置によるデータ書き換え処理の様子を示す図である。 ストレージ装置によるデータ書き換え処理の他の様子を示す図である。 本発明の実施形態2におけるストレージ装置によるデータ書き換え処理の様子を示す図である。 本発明の実施形態3におけるストレージ装置の構成を示す機能ブロック図である。
<実施形態1>
本発明の第1の実施形態を、図1乃至図6を参照して説明する。図1乃至図3は、ストレージ装置の構成を説明するための図であり、図4乃至図6は、ストレージ装置によるデータ書き換え処理を説明するための図である。
[構成]
本発明におけるストレージ装置10は、記憶媒体に対してデータを読み書きする装置である。本実施形態では、図1に示すように、ストレージ装置10が記憶媒体であるフラッシュメモリ20に接続されている。このとき、ストレージ装置10とフラッシュメモリ20とは、例えば、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)、SATA(Serial ATA)、FC(Fibre Channel)などのストレージインタフェースによって接続されている。なお、図1では、フラッシュメモリ20がストレージ装置10の外部に配置されているものとして記載しているが、フラッシュメモリ20はストレージ装置10の内部に搭載されていてもよい。
ここで、フラッシュメモリ20は、データを記憶する記憶領域の単位となるメモリセルを複数備えており、メモリセルごとに書き込み可能回数が限られている。つまり、フラッシュメモリ20は、データの書き換えにより使用寿命が短くなる性質を有している。このため、特定のメモリセルに書き込みが集中しないようにするウェアレベリングが必要になる。本発明では、ウェアレベリング方法に特徴を有しており、かかる方法を以下に説明する。なお、図1では、フラッシュメモリ20が1つのように記載されているが、1つでも複数でもよい。
上記ストレージ装置10は、図示しない演算部と記憶部とを備えている。そして、ストレージ装置10の演算部は、プログラムが当該演算部によって実行されることで実現された、データ書き込み部11、重複回数記録部12、重複回数取得部13、データ再配置開始部14、スケジューラ15、を備えている。
また、上記フラッシュメモリ20は、図示しない演算装置と記憶部とを備えている。そして、フラッシュメモリ20の演算部は、プログラムが当該演算部によって実行されることで実現された、データ書き込み部21、書き込み回数記録処理部22、書き込み回数取得部23、データ再配置部24、アドレス変換部25、を備えている。また、フラッシュメモリ20の記憶部は、アドレス変換記録部26、書き込み回数記録部27、データ記憶部28、を備えている。
以下、ストレージ装置10とフラッシュメモリ20とが備える各構成について詳述する。
ストレージ装置10のデータ書き込み部11は、ユーザからの要求に応じてデータの書き込みを行う。例えば、データ書き込み部11としては、CIFS/NFS(Common Internet File System / Network File System)などのプロトコルがあげられる。具体的に、ストレージ装置10のデータ書き込み部11は、フラッシュメモリ20のデータ書き込み部21と協働して、データの書き込みを行う。ここで、データ書き込み時の様子を、図2及び図3を参照して説明する。
データ書き込み部11,21は、まず、書き込み対象となるファイルを、所定容量のブロックデータに分割して、当該ブロックデータ(実データ)をフラッシュメモリ20のデータ記憶部28となるメモリセルに記憶する。このとき、データ書き込み部11,12は、ブロックデータを参照する、当該ブロックデータのデータ内容及び格納位置に基づくアドレスデータ(コンテンツアドレス:CA)を生成して、当該コンテンツアドレスと共にツリー構造にてフラッシュメモリ20に格納する。このため、データ書き込み部11,21は、異なるファイルのブロックデータであっても、データ内容が同一であれば、同じアドレスデータで参照すればよいため、1つのブロックデータを記憶装置に記憶しておけばよいこととなる。このように、データ書き込み部11,21は、同一内容のブロックデータの重複記憶を排除する機能(重複記憶排除機能)を有している。
一例として、図2の例では、例えば、ファイル1は3つのブロックデータ11,12,13で構成されているものとし、これらがメモリセルに格納される。そして、これらブロックデータ11,12,13の格納位置を参照するコンテンツアドレスCA11,12,13をたどることで、ファイル1を読み出すことができる。一方、ファイル2は、3つのブロックデータ21,22,23で構成されているものとし、これらがメモリセルに格納される。このうちブロックデータ21が、ファイル1を構成するブロックデータ13と同一内容である場合には、ブロックデータ21の実データを格納することなく、すでに格納されているブロックデータ13のコンテンツアドレスCA13を参照すればよいこととなる。これにより、すでに格納されているブロックデータ13が、ファイル2のブロックデータとして格納されたこととなる。
そして、ストレージ装置10の重複回数記録部12は、上述したように格納されたブロックデータ毎に、当該ブロックデータがいくつのファイルから参照されて共有されているかを表す参照数(共有数)を記憶する。例えば、図3に示すように、各ブロッックデータを参照するコンテンツアドレスCA内に、当該ブロックデータを参照しているファイルを特定する情報、例えば、i-node番号を記録する。つまり、ブロックデータを参照するコンテンツアドレスCA内のi-node番号の数が、当該コンテンツアドレスCAが参照するブロックデータがいくつのファイルから参照されているか、つまり、いくつのファイルによって共有されているか、を表す参照数(共有数)となる。例えば、図2の例では、ブロックデータ13はファイル1とファイル2によって参照(共有)されているため、当該ブロックデータ13の参照数は「2」となる。
また、フラッシュメモリ20のアドレス変換部25は、ブロックデータを書き込む場合、ブロックデータが書き込まれた位置と、実際にブロックデータが格納されたメモリセルと、の対応を表す情報を、アドレス変換記録部26に記録する。この変換により、後述するように、ブロックデータのメモリセル上の配置位置が変更されたとしても、ストレージ装置10からは、同じ書き込み位置を指定してブロックデータにアクセスすることができる。このように、アドレス変換部25は、ストレージ装置10から見えるデータの配置位置と、メモリセル上のデータ配置位置と、の対応を更新している。
また、フラッシュメモリ20の書き込み回数記録処理部22は、メモリセル毎の書き込み回数をカウントして、書き込み回数記録部27に記録する。例えば、書き込み回数記録処理部22は、データ書き込み部21などによってメモリセルが更新されると、そのメモリセルの書き込み回数を1つ増やして、書き込み回数記録部27に記録する。なお、メモリセル毎の書き込み回数のカウントは、後述するブロックデータの書き換え時にも行われる。
次に、ストレージ装置10によるブロックデータの再配置処理を行う構成について説明する。まず、ストレージ装置10のスケジューラ15は、定期的にデータ再配置開始部14を呼び出して実行する。これに応じて、データ再配置開始部14は、フラッシュメモリ20内の各メモリセルに格納されているブロックデータ(実データ)の書き換え処理であるウェアレベリングを実行する。
ウェアレベリングでは、以下の処理を実行する。まず、ストレージ装置10の重複回数取得部13(共有数取得部)は、フラッシュメモリ20に格納されている各ブロックデータを参照するコンテンツアドレスCAを基に、各ブロックデータがいくつのファイルから参照されているかを表す参照数を取得する。具体的には、図2に示すように、ブロックデータを参照するコンテンツアドレスCA内に記憶されているi-node番号の数を、そのブロックデータの参照数として取得する。
また、フラッシュメモリ20の書き込み回数取得部23は、各ブロックデータが配置されているメモリセルの書き込み回数を、書き込み回数記録部27から取得する。
そして、データ再配置部24(書き換え部)は、メモリセル毎に、その位置と、当該メモリセルの書き込み回数と、当該メモリセルに格納されているブロックデータの参照数と、を受け取る。そして、データ再配置部24は、これら情報を基に実際にウェアレベリング、つまり、メモリセルに格納されているブロックデータの書き換え処理を実施する。この書き換え処理は、例えば、参照数が多いブロックデータを、使用寿命が短い他のメモリセルつまり書き込み回数が多い他のメモリセルに書き書き換える処理となる。書き換え処理の具体例については、以下の動作説明時に詳述する。
また、上述したアドレス変換部25は、データ再配置部24によりブロックデータが書き換えられた際にも、当該ブロックデータが格納された位置と実際のメモリセルとの対応を表す情報を、アドレス変換記録部26に記録する。
[動作]
次に、上述した構成のストレージ装置10による動作、特に、ウェアレベリングの動作を、図4のフローチャート及び図5、図6のブロックデータの様子を示す図を参照して説明する。
まず、スケジューラ15は、定期的にデータ再配置開始部14を呼び出す。データ再配置開始部14は、まず、書き込み回数取得部23にて取得した各メモリセルの書き込み回数を取得し、重複回数取得部13にて取得した各メモリセルに格納されているブロックデータの参照数を取得する。
そして、データ再配置開始部14は、取得した書き込み回数と参照数とから、一定数未満の書き込み回数であるメモリセルに、一定数以上の参照数を持つブロックデータがあるか確認する(ステップS1)。もし、そのようなブロックデータが存在しない場合には(ステップS1でNo)、本発明によるウェアレベリングは実施せずに終了する。そのようなブロックデータが存在した場合は(ステップS1でYes)、かかるブロックデータを、以降のステップにおける置き換え候補(書き換え候補)として選択する(ステップS2)。
なお、メモリセルの書き込み回数が一定数未満か否かの判断は、メモリセルの書き込み回数が予め設定された書き込み回数閾値よりも小さいか否かによって行う。また、ブロックデータの参照数が一定数以上か否かの判断は、ブロックデータの参照数が予め設定された参照数閾値以上であるか否かによって行う。
続いて、データ再配置開始部14は、書き込み回数が一定数以上のメモリセルのうち、他のデータが格納されていない空きのメモリセルがあるかを確認する(ステップS3)。なお、メモリセルの書き込み回数が一定数以上か否かの判断は、メモリセルの書き込み回数が上述した書き込み回数閾値以上であるか否かによって行うが、当該書込み回数閾値よりも大きい値の他の閾値以上であるか否かによって行ってもよい。
そして、書き込み回数が一定数以上の空きのメモリセルがある場合は(ステップS3でYes)、データ再配置部24は、上記ステップS2で置き換え候補として選択したブロックデータを、空きのメモリセルに移動する(ステップS4)。つまり、データ再配置部24は、図5(A)に示すように、一定数未満の少ない書き込み回数であるメモリセルに格納されており一定数以上の多い参照数を持つブロックデータを、図5(B)に示すように、一定数以上の多い書き込み回数であるメモリセルに格納し直す。
上記ステップS3で、書き込み回数が一定数以上の空きのメモリセルが無い場合は(ステップS3でNo)、データ再配置開始部14は、書き込み回数が一定数以上のメモリセルに一定数未満の参照数を持つブロックデータがあるかを確認する(ステップS5)。なお、ブロックデータの参照数が一定数未満か否かの判断は、ブロックデータの参照数が上述した参照数閾値未満であるか否かによって行うが、当該参照数閾値よりも小さい値の他の閾値未満であるか否かによって行ってもよい。そして、このようなブロックデータが無かった場合(ステップS5でNo)、ステップS2で置き換え候補として選択したブロックデータの移動先はないと判断し、ウェアレベリングは実施しない。
一方、ステップS5において、書き込み回数が一定数以上のメモリセルに一定数未満の参照数を持つブロックデータがあった場合には(ステップS5でYes)、データ再配置部24は、ステップS2で置き換え候補として選択したブロックデータと、ステップS5で見つかったブロックデータのメモリセル上の配置を交換する(ステップS6)。つまり、データ再配置部24は、図6(A)に示すように、一定数未満の少ない書き込み回数であるメモリセルに格納されている一定数以上の多い参照数を持つブロックデータを、図6(B)に示すように、一定数以上の多い書き込み回数であるメモリセルに格納し直す。これと同時に、図6(A)に示すように、一定数以上の多い書き込み回数であるメモリセルに格納されている一定数未満の少ない参照数を持つブロックデータを、図6(B)に示すように、一定数未満の少ない書き込み回数であるメモリセルに格納し直す。
なお、上記ステップS5において、書き込み回数が一定数以上のメモリセルに一定数未満の参照数を持つブロックデータが無かった場合であっても(ステップS5でNo)、データ再配置開始部14は、以下のようにウェアレベリングは実施してもよい。まず、書き込み回数が一定数以上のメモリセルに格納されているブロックデータの参照数と、ステップS2で置き換え候補として選択したブロックデータの参照数と、を比較する。そして、比較の結果、参照数が多いブロックデータを書き込み回数が一定数以上のメモリセルに配置するよう書き換えを行う。例えば、ステップS2で置き換え候補として選択したブロックデータの参照数の方が大きい場合には、かかるブロックデータを書き込み回数が一定数以上のメモリセルに書き換える。これと同時に、書き込み回数が一定数以上のメモリセルに格納されているブロックデータを、一定数未満の少ない書き込み回数であるメモリセルに書き換える。
そして、ステップS4やステップS6などの処理によりブロックデータ書き換えを行なった後に、アドレス変換部25は、それぞれのブロックデータの位置とメモリセル上の位置が対応するように、アドレス変換記録部26を更新する。
以上のように、本発明では、参照数の多いブロックデータを書き込み回数の多いメモリセルに配置するよう書き換えを行なっている。ここで、参照数が多いブロックデータは、さまざまなファイルから参照されているため、参照している全てのファイルが削除されない限り解放されない。このため、参照数が多いブロックデータは、以後、削除される可能性が低く、当該ブロックデータが格納されているメモリセルは書き換えられる可能性が低くなる。逆に、参照数が少ないブロックデータは以後に削除される可能性が高いため、当該ブロックデータが格納されているメモリセルは書き換えられる可能性が高くなる。
このようなことから、上述したように、将来書き換えられる可能性の低いブロックデータを、書き込み回数の多いメモリセルに配置することで、当該書き込み回数の多いメモリセルに対する以後の書き込み回数の増加を抑制することができる。その結果、フラッシュメモリの長寿命化を実現することができる。
なお、上記では、書き込み回数が一定数未満であり参照数が一定数以上のブロックデータを、書き込み回数が一定数以上のメモリセルに書き換えることとしているが、本発明は、かかる方法で書き換えを行うことに限定されない。例えば、ブロックデータの参照数に応じて、当該ブロックデータを他のメモリセルに記憶してもよい。このとき、書き換え先となる他のメモリセルは、上述したように書き込み回数から使用寿命の異なるものを選択してもよく、他の方法で使用寿命の異なるものを選択してもよい。
また、上記では、図3に示すように、コンテンツアドレスごとに、ブロックを参照しているファイルのi-node番号を記録して、参照数を取得していた。しかしながら、このような永続的な情報を記録することなく、他の方法で参照数を取得してもよい。例えば、重複排除を行うストレージ装置においては、ブロックデータは参照される回数が0になるまで解放されず、また、参照数が0になったブロックを解放するために、定期的にガベージコレクションを行う。このガベージコレクションにおいて、i-nodeがどのプロックデータを参照しているのかを確認し、図3に示す内容を作成することもできる。そして、その後、データ再配置開始部14を呼び出すことで上述同様のウェアレベリングを実施することができる。この方法によれば、データ再配置開始部14の処理が完了したあと、図3の内容は解放できる。
また、上記では、重複排除機能を有するストレージ装置におけるブロックデータの参照数(重複数)を基にウェアレベリングを実施しているが、他のストレージ装置においても本発明の構成を利用することができる。例えば、スナップショット機能を持つファイルシステムやRAWデバイスにおいては、スナップショット間でデータを共有するが、当該データの共有数を、上述した参照数として用いて、ウェアレベリングを行なってもよい。
<実施形態2>
次に、本発明の第2の実施形態を、図7を参照して説明する。図7は、ストレージ装置によるデータ書き換え処理を説明するための図である。
本発明におけるストレージ装置10は、上述した実施形態1とほぼ同様の構成を有するが、フラッシュメモリ20の構成が異なる。本実施形態におけるフラッシュメモリ20は、SLC(Single Level Cell)、MLC(Multi Level Cell)、TLC(Triple Level Cell)が混在している。このような構成において、ストレージ装置10のデータ再配置部24は、ブロックデータの参照数に応じて、以下に説明するように適切なフラッシュメモリを選択する機能を有する。
ここで、SLC, MLC, TLCは、それぞれ性能や価格が異なっており、特に、使用寿命つまり書き換え可能回数が設定されている。例えば、MLC, TLCは、SLCよりも書き換え可能回数が少なく設定されており、使用寿命が短いものである。
そして、データ再配置部24は、例えば、図7(A)に示すように、書き換え可能回数が多いSLCに格納されており一定数以上の多い参照数を持つブロックデータを、図7(B)に示すように、書き換え可能回数の少ないMLCに書き換える。
このように、参照数が多く削除される可能性が低いブロックデータを、書き換え可能回数の少ないMLCに配置することで、当該MLCに対する以後の書き込み回数の増加を抑制することができる。その結果、使用寿命の短いフラッシュメモリであっても、長寿命化を実現することができる。
<実施形態3>
次に、本発明の第3の実施形態を、図8を参照して説明する。図8は、ストレージ装置の構成を示すブロック図である。
本発明におけるストレージ装置100は、書き換えにより使用寿命が短くなる記憶媒体110に対してデータを書き込むストレージ装置100であって、記憶媒体110に記憶されているデータが共有されている数を表す共有数を取得する共有数取得部101と、前記共有数に基づいて、記憶媒体110に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える書き換え部102と、を備える。なお、上記共有数取得部101と書き換え部102とは、ストレージ装置100に装備された制御部(図示せず)でプログラムが実行されることで構築される。
そして、上記ストレージ装置100は、まず、共有数取得部101が、記憶媒体110に記憶されているデータが共有されている数を表す共有数を取得する。そして、書き換え部102が、取得した共有数に基づいて、記憶媒体110に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える。
このように、データの共有数に基づいて、当該データを使用寿命の異なる他の記憶領域に書き換えることで、記憶媒体に対する書き込み回数を抑制することができ、当該記憶媒体の長寿命化を図ることができる。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置、プログラム、書き換え方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置であって、
記憶媒体に記憶されているデータが共有されている数を表す共有数を取得する共有数取得部と、
前記共有数に基づいて、記憶媒体に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える書き換え部と、
を備えたストレージ装置。
(付記2)
付記1に記載のストレージ装置であって、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶領域よりも使用寿命の短い他の記憶領域に書き換える、
ストレージ装置。
(付記3)
付記1又は2に記載のストレージ装置であって、
記憶媒体に形成された記憶領域毎の書き込み回数を取得する書き込み回数取得部を備え、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶領域よりも前記書き込み回数が多い他の記憶領域に書き換える、
ストレージ装置。
(付記4)
付記3に記載のストレージ装置であって、
前記書き換え部は、予め設定された前記書き込み回数未満の記憶領域に記憶されており、予め設定された前記共有数以上のデータを、予め設定された前記書き込み回数以上の他の記憶領域に書き換える、
ストレージ装置。
(付記5)
付記4に記載のストレージ装置であって、
前記書き換え部は、予め設定された前記書き込み回数未満の記憶領域に記憶されており、予め設定された前記共有数以上のデータを、予め設定された前記書き込み回数以上の他の記憶領域のうち他のデータが記憶されていない空き記憶領域に書き換える、
ストレージ装置。
(付記6)
付記4又は5に記載のストレージ装置であって、
前記書き換え部は、予め設定された前記書き込み回数未満の記憶領域に記憶されており、予め設定された前記共有数以上のデータを、当該データの前記共有数よりも少ない共有数のデータが記憶されている予め設定された前記書き込み回数以上の他の記憶領域に書き換える、
ストレージ装置。
(付記7)
付記2に記載のストレージ装置であって、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶媒体よりも使用寿命の短い他の記憶媒体に書き換える、
ストレージ装置。
(付記8)
付記7に記載のストレージ装置であって、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶媒体よりも書き換え可能回数が少なく設定された他の記憶媒体に書き換える、
ストレージ装置。
(付記9)
書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置に装備された制御部に、
記憶媒体に記憶されているデータが共有されている数を表す共有数を取得する共有数取得部と、
前記共有数に基づいて、記憶媒体に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える書き換え部と、
を実現させるためのプログラム。
(付記9−1)
付記9に記載のプログラムであって、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶領域よりも使用寿命の短い他の記憶領域に書き換える、
プログラム。
(付記9−2)
付記9又は9−1にプログラムであって、
前記制御部に、さらに、記憶媒体に形成された記憶領域毎の書き込み回数を取得する書き込み回数取得部を実現させ、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶領域よりも前記書き込み回数が多い他の記憶領域に書き換える、
プログラム。
(付記9−3)
付記9−1に記載のプログラムであって、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶媒体よりも使用寿命の短い他の記憶媒体に書き換える、
プログラム。
(付記9−4)
付記9−3に記載のプログラムであって、
前記書き換え部は、予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶媒体よりも書き換え可能回数が少なく設定された他の記憶媒体に書き換える、
プログラム。
(付記10)
書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置による書き換え方法であって、
記憶媒体に記憶されているデータが共有されている数を表す共有数を取得し、
前記共有数に基づいて、記憶媒体に記憶されているデータを、使用寿命の異なる他の記憶領域に書き換える、
書き換え方法。
(付記10−1)
付記10に記載の書き換え方法であって、
予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶領域よりも使用寿命の短い他の記憶領域に書き換える、
書き換え方法。
(付記10−2)
付記10又は10−1に書き換え方法であって、
さらに、記憶媒体に形成された記憶領域毎の書き込み回数を取得し、
予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶領域よりも前記書き込み回数が多い他の記憶領域に書き換える、
書き換え方法。
(付記10−3)
付記10−1に記載の書き換え方法であって、
予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶媒体よりも使用寿命の短い他の記憶媒体に書き換える、
書き換え方法。
(付記10−4)
付記10−3に記載の書き換え方法であって、
予め設定された基準により前記共有数が多いと判断されたデータを、当該データが記憶されている記憶媒体よりも書き換え可能回数が少なく設定された他の記憶媒体に書き換える、
書き換え方法。
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
10 ストレージ装置
11 データ書き込み部
12 重複回数記録部
13 重複回数取得部
14 データ再配置開始部
15 スケジューラ
20 フラッシュメモリ
21 データ書き込み部
22 書き込み回数記録処理部
23 書き込み回数取得部
24 データ再配置部
25 アドレス変換部
26 アドレス変換取得部
27 書き込み回数記録部
28 データ記憶部
100 ストレージ装置
101 共有数取得部
102 書き換え部
110 記憶媒体

Claims (7)

  1. 書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置であって、
    書き込み対象となるファイルをブロックデータに分割して当該ブロックデータを記憶媒体に書き込む際に、当該ブロックデータを参照する、当該ブロックデータのデータ内容及び格納位置に基づくアドレスデータを生成し、データ内容が同一である前記ブロックデータを同一の前記アドレスデータで参照することで、同一内容の前記ブロックデータの重複記憶を排除する機能を有するデータ書き込み部と、
    前記ブロックデータを参照する前記アドレスデータに、当該ブロックデータが前記ファイルに共有されている当該ファイルの数を記憶する重複回数記録部と、
    記憶媒体に記憶されている前記ブロックデータが前記ファイルに共有されている当該ファイルの数を表す共有数を、当該ブロックデータを参照する前記アドレスデータを基に取得する共有数取得部と、
    記憶媒体に形成された記憶領域毎の書き込み回数を取得する書き込み回数取得部と、
    予め設定された基準により前記共有数が多いと判断された前記ブロックデータを、当該ブロックデータが記憶されている記憶領域よりも前記書き込み回数が多い他の記憶領域に書き換える書き換え部と、
    を備えたストレージ装置。
  2. 請求項1に記載のストレージ装置であって、
    前記書き換え部は、予め設定された前記書き込み回数未満の記憶領域に記憶されており、予め設定された前記共有数以上の前記ブロックデータを、予め設定された前記書き込み回数以上の他の記憶領域に書き換える、
    ストレージ装置。
  3. 請求項2に記載のストレージ装置であって、
    前記書き換え部は、予め設定された前記書き込み回数未満の記憶領域に記憶されており、予め設定された前記共有数以上の前記ブロックデータを、予め設定された前記書き込み回数以上の他の記憶領域のうち他のデータが記憶されていない空き記憶領域に書き換える、
    ストレージ装置。
  4. 請求項2又は3に記載のストレージ装置であって、
    前記書き換え部は、予め設定された前記書き込み回数未満の記憶領域に記憶されており、予め設定された前記共有数以上の前記ブロックデータを、当該ブロックデータの前記共有数よりも少ない共有数の前記ブロックデータが記憶されている予め設定された前記書き込み回数以上の他の記憶領域に書き換える、
    ストレージ装置。
  5. 請求項1乃至4のいずれかに記載のストレージ装置であって、
    前記書き換え部は、予め設定された基準により前記共有数が多いと判断された前記ブロックデータを、当該ブロックデータが記憶されている記憶媒体よりも書き換え可能回数が少なく設定された他の記憶媒体に書き換える、
    ストレージ装置。
  6. 書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置に装備されたコンピュータに、
    書き込み対象となるファイルをブロックデータに分割して当該ブロックデータを記憶媒体に書き込む際に、当該ブロックデータを参照する、当該ブロックデータのデータ内容及び格納位置に基づくアドレスデータを生成し、データ内容が同一である前記ブロックデータを同一の前記アドレスデータで参照することで、同一内容の前記ブロックデータの重複記憶を排除する機能を有するデータ書き込み部と、
    前記ブロックデータを参照する前記アドレスデータに、当該ブロックデータが前記ファイルに共有されている当該ファイルの数を記憶する重複回数記録部と、
    記憶媒体に記憶されている前記ブロックデータが前記ファイルに共有されている当該ファイルの数を表す共有数を、当該ブロックデータを参照する前記アドレスデータを基に取得する共有数取得部と、
    記憶媒体に形成された記憶領域毎の書き込み回数を取得する書き込み回数取得部と、
    予め設定された基準により前記共有数が多いと判断された前記ブロックデータを、当該ブロックデータが記憶されている記憶領域よりも前記書き込み回数が多い他の記憶領域に書き換える書き換え部と、
    を実現させるためのプログラム。
  7. 書き換えにより使用寿命が短くなる記憶媒体に対してデータを書き込むストレージ装置による書き換え方法であって、
    書き込み対象となるファイルをブロックデータに分割して当該ブロックデータを記憶媒体に書き込む際に、当該ブロックデータを参照する、当該ブロックデータのデータ内容及び格納位置に基づくアドレスデータを生成し、データ内容が同一である前記ブロックデータを同一の前記アドレスデータで参照することで、同一内容の前記ブロックデータの重複記憶を排除し、
    前記ブロックデータを参照する前記アドレスデータに、当該ブロックデータが前記ファイルに共有されている当該ファイルの数を記憶し、
    記憶媒体に記憶されている前記ブロックデータが前記ファイルに共有されている当該ファイルの数を表す共有数を、当該ファイルのデータを参照する前記アドレスデータを基に取得すると共に、
    記憶媒体に形成された記憶領域毎の書き込み回数を取得し、
    予め設定された基準により前記共有数が多いと判断された前記ブロックデータを、当該ブロックデータが記憶されている記憶領域よりも前記書き込み回数が多い他の記憶領域に書き換える、
    書き換え方法。
JP2016027040A 2016-02-16 2016-02-16 ストレージ装置 Active JP6805501B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016027040A JP6805501B2 (ja) 2016-02-16 2016-02-16 ストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016027040A JP6805501B2 (ja) 2016-02-16 2016-02-16 ストレージ装置

Publications (2)

Publication Number Publication Date
JP2017146722A JP2017146722A (ja) 2017-08-24
JP6805501B2 true JP6805501B2 (ja) 2020-12-23

Family

ID=59680852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016027040A Active JP6805501B2 (ja) 2016-02-16 2016-02-16 ストレージ装置

Country Status (1)

Country Link
JP (1) JP6805501B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023130874A (ja) 2022-03-08 2023-09-21 キオクシア株式会社 メモリシステムおよび方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146254A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
JP5298982B2 (ja) * 2009-03-17 2013-09-25 日本電気株式会社 ストレージシステム
JP6094267B2 (ja) * 2013-03-01 2017-03-15 日本電気株式会社 ストレージシステム
KR102289919B1 (ko) * 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
JP2017146722A (ja) 2017-08-24

Similar Documents

Publication Publication Date Title
KR101769883B1 (ko) 저장부 할당 장치, 시스템, 및 방법
US10521131B2 (en) Storage apparatus and storage control apparatus
US9111618B2 (en) De-duplication in flash memory module
US9996542B2 (en) Cache management in a computerized system
EP2631916A1 (en) Data deletion method and device
WO2015076354A1 (ja) ストレージ装置と方法並びにプログラム
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
JPWO2008072590A1 (ja) ライトワンス記録装置、コントローラ、アクセス装置、及びライトワンス記録システム
US20180307440A1 (en) Storage control apparatus and storage control method
US20180307426A1 (en) Storage apparatus and storage control method
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US11269771B2 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
US10929299B2 (en) Storage system, method and non-transitory computer-readable storage medium
US10365846B2 (en) Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing
JP2010237907A (ja) ストレージ装置および記録方法
JP6805501B2 (ja) ストレージ装置
EP2381354A2 (en) Data recording device
US10853257B1 (en) Zero detection within sub-track compression domains
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
WO2022021280A1 (zh) 存储控制器、存储控制方法、固态硬盘及存储***
US10740015B2 (en) Optimized management of file system metadata within solid state storage devices (SSDs)
JP6276208B2 (ja) メモリシステム及びプログラム
JP6138318B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5945040B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
KR20230127934A (ko) 캐시 일관성 상호 연결 인터페이스를 포함하는 영구 메모리 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201117

R150 Certificate of patent or registration of utility model

Ref document number: 6805501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150