JP2012512482A - Ssd技術支援のストレージシステムのスナップショット - Google Patents
Ssd技術支援のストレージシステムのスナップショット Download PDFInfo
- Publication number
- JP2012512482A JP2012512482A JP2011542101A JP2011542101A JP2012512482A JP 2012512482 A JP2012512482 A JP 2012512482A JP 2011542101 A JP2011542101 A JP 2011542101A JP 2011542101 A JP2011542101 A JP 2011542101A JP 2012512482 A JP2012512482 A JP 2012512482A
- Authority
- JP
- Japan
- Prior art keywords
- ssd
- snapshot
- data
- command
- write
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 239000007787 solid Substances 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000013519 translation Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013403 standard screening design Methods 0.000 claims 6
- 238000010276 construction Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 9
- 230000015654 memory Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 208000023368 generalized pustular psoriasis Diseases 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical 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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
ソリッドステートディスク(SSD)を使用しているストレージシステムの、スナップショットを取得するための方法及び装置である。SSD内の複数のマッピングテーブルは、1又は複数のポイントインタイムスナップショット及びSSDの現在のビューを作成するために必要なデータを記憶する。書込コマンドに応答して、SSDは、通常の書込プロセスを実行し、マッピングテーブルがSSDの現在のビューを表示するよう更新し、かつ、元データを、元データへのポインタのテーブルに、SSDの初期状態のスナップショットとして保存する。好適な実施形態では、SSDに備わっている、新しいロケーションにデータを書き込む能力を用いて、スナップショットを実行することで性能をほとんど又は全く失うことなく、ポイントインタイムコピーを実行する。
Description
本発明は、フラッシュの技術をベースとしたソリッドステート記憶に関する。
RAID(リダンダント・アレイ・オブ・インディペンデント・ディスク)は、性能を向上し、かつ障害耐性を提供するために用いられるストレージシステム(記憶システム)である。RAIDは、2以上のハードディスクと、RAID機能を備えた専用ディスクコントローラとのセットである。RAIDは、ディスクストライピングによって性能を向上させる。これはバイト又はバイトのグループを複数のドライブにわたってインターリーブし、1又は複数のディスクに同時に読出及び書込ができるようにするものである(例:RAID0)。障害耐性は、ミラーリング又はパリティによって達成される。ミラーリングは、2つのドライブ上におけるデータの100パーセントの複製である(例:RAID1)。
RAIDストレージシステムにおけるボリュームは、仮想ディスクドライブである。ボリュームは、RAIDストレージシステムに接続されたコンピュータシステムのためのディスクドライブのように見える。RAIDシステムにおけるボリュームは、いくつかの物理ハードドライブにわたっている場合や、単一の物理ドライブに完全に含まれてその一部をなしている場合、又はRAIDシステム内の複数の別の仮想ドライブにマッピングされている場合がある。エンクロージャは、1又は複数の物理ディスクドライブを収容している物理構造である。エンクロージャはさらに、RAIDコントローラを備えていてもよいし、又は接続されたコンピュータ及びRAIDコントローラが、エンクロージャ内に収容された物理ハードドライブと通信できるようにするためのストレージ接続ハードウェアを備えていてもよい。論理ユニット(LU)は、SCSI周辺デバイス内のアドレス指定可能なエンティティにとってのSCSIターム(SCSI term)である。SCSIプロトコルを介して外部からアドレス指定可能なRAIDストレージシステムにおけるボリュームは、論理ユニットとしてアドレス指定されて、論理ユニット番号(LUN)デジグネータ(指定子)が割り当てられるのが通常である。したがって、RAIDシステムにおけるボリュームは、LUNと称される場合がある。
ストレージエリアネットワーク(SAN)は、複数のサーバを複数のストレージデバイス及びストレージシステムに接続することが多々ある。SANによっては、任意のコンピュータがオーバーヘッド処理をすることなく、ストレージデバイス自身が、バックアップのためにデータを別のストレージデバイスにコピーすることが可能である。SANネットワークは、高い周辺チャネル速度(high peripheral channel speed)で、コンピュータ及びストレージシステム間のデータ転送を可能にする。
ホストアダプタは、「コントローラ」又は「ホストバスアダプタ」とも称され、1又は複数の周辺ユニットをコンピュータに接続するデバイスである。ホストアダプタは、コンピュータをSANに接続することもできる。通常、拡張カードによりバスに接続される。SCSI、SAS、ファイバチャネル、iSCSI及びインフィニバンドは、自身のコントローラをホストアダプタと称する周辺インターフェースの例である。ホストは、アプリケーションをランし、かつコンピュータに直接接続されているか又はSANによって接続されているストレージシステム及びデバイスにアクセスする。
フラッシュメモリ(NANDタイプ及びNORタイプの両方)は、不揮発性メモリである。フラッシュメモリの制限の1つは、バイト又はワード単位(NOR)又はページ単位(NAND)で、ランダムアクセス形式で読出又はプログラミングできるが、消去は「ブロック」単位でなければならないことである。フラッシュメモリ(特にNORフラッシュ)は、ランダムアクセスの読出動作及びプログラミング動作が可能であるが、任意のランダムアクセスのリライト動作又は消去動作をすることができない。他の制限は、フラッシュメモリの消去/書込サイクル数が、有限であることである。多くの市販のフラッシュ製品は、特にNORタイプにおいて、約10万回の書込/消去サイクルに耐えることが保証されている。NANDフラッシュには、2つのタイプがある。すなわち、シングルレベルセル(SLC)及びマルチレベルセル(MLC)である。SLCのNANDフラッシュが、セル毎に1ビットを記憶するのに対し、MLCのNANDフラッシュは、セル毎に1又は複数のビットを記憶することができる。SLCのNANDフラッシュが、NORフラッシュと等しい書込耐性、すなわち10万回の書込/消去サイクル、を有しているのに対し、MLCフラッシュの書込耐性は、一万回又はそれ以下の書込/消去サイクルである。NANDフラッシュは、NORよりも安価であり、かつ消去及び書込NANDはNORよりも速い。
NANDフラッシュのページは、書込又は読出できるメモリの最少ユニットであり、通常のサイズは2048バイトである。フラッシュメモリの消去可能な最少ユニットは、ブロックである。通常のブロックは64ページすなわち128キロバイトを含んでいる。NANDフラッシュのアーキテクチャは、1989年に東芝によって導入された。これらのメモリは、ハードディスク又はメモリカード等のブロックデバイスとほぼ同様にアクセスされる。各ブロックは、多数のページから成る。ページのサイズは、512、2048、又は4096バイトであることが通常である。各ページには、数バイト(通常は12〜16バイト)が付随しており、これは誤り検出訂正チェックサムのストレージのために使用される。通常のブロックサイズは、32ページ×512バイトであるブロックサイズ16KiB、64ページ×2048バイトであるブロックサイズ128KiB、64ページ×4096バイトであるブロックサイズ256KiB、128ページ×4096バイトであるブロックサイズ512KiB等である。ページ単位で読出及びプログラミングが実行されることに対し、消去はブロック単位でしか実行することができない。
ソリッドステートディスク又はデバイス(SSD)は、自身の情報を記憶するためにソリッドステート技術を利用するデバイスであり、ストレージインターフェースを通じて記憶された情報へのアクセスを提供する。SSDは回転プラッタを用いるハードディスクドライブよりも速いが、それは、従来のドライブのように、読出/書込ヘッドを動作させること、及び回転しているディスクを待つことの必要がないために、機械的レイテンシ(待ち時間)がないからである。SSDは、ハードディスクよりも丈夫である。SSDは不揮発性フラッシュメモリを用いている。あるいは、SSDは、電源障害に備えてディスクドライブ又はUPSシステムによってバックアップされた揮発性DRAMメモリ又はSRAMメモリを用いてもよく、これら全てはSSDシステムの一部である。
従来のストレージシステムは、タイムコピー又はスナップショットと称される、ストレージシステム及びサブシステム内のデータのポイントインタイムコピーを実行することができる。スナップショットの目的の1つは、アプリケーションがデータの現在のコピーを引き続き使用している間に、バックアップ動作を実行できるようにすることである。スナップショットの別の用途は、アクティブデータセットの継続的使用に影響を及ぼすことなしに、データのコピー上でデータマイニング(mining)を可能にすることである。スナップショットを実施するための技術は、本明細書で詳述するように、「コピーオンライト”copy on write”」及び「リダイレクトオンライト”redirect on write”」である。
フラッシュベースのSSDは、性能及びウェアレベリング等のパラメータのためにデータ配置を最適化するアルゴリズムに従って、自身の内部物理デバイス上にデータを配置する。これらのSSDは、自身の論理ドライブ又は論理ユニットと、SSD内の物理ドライブとの間で、データアドレスを関連付けかつ変換するための、マッピングテーブル又は参照テーブルを有している。RAIDシステムと同様に、SSDは自身の論理ドライブ又は論理ユニットと、SSD内の物理ドライブとの間で、データアドレスを関連付けかつ変換するための、マッピングテーブル又は参照テーブルを有している。SSDにおいて、不揮発性メモリ内のデータは、ページにセグメント化され、通常は128Kブロックのデータに対して複数のデータセグメントが存在しており、各セグメントが約2Kのデータを保持している。データ(例:データセグメント)、ページ、及びフラッシュブロック(不揮発性メモリX,Y,Z等の領域)間の対応は、1又は複数のマッピングテーブルに保持されて、データの正しいアドレスを参照するためにハードウェアによって使用される。しかし、本発明とは対照的に、これらのマッピングテーブルは、データの現在のコピーをポイントするだけであり、スナップショットの作成に役立つものではない。
従来技術に不足しているのは、本発明によって教示されるような、ソリッドステートデバイス(SSD)のためのタイムコピーすなわちスナップショットを実行する改良されたシステムのための方法及び装置である。
したがって、本発明の一態様は、ソリッドステートデバイス(SSD)のための改良されたタイムコピー即ちスナップショットのための方法及び装置である。
本発明の一態様は、SSDの能力を最大限に利用するタイムコピーすなわちスナップショットを提供するものである。
本発明の別の態様は、フラッシュベースのソリッドステートデバイス(SSD)にあるアップデート機構を、ストレージシステムにあるスナップショット特性と組み合わせるものである。
本発明のさらに別の態様は、ポイントインタイムコピーすなわちスナップショットを実行するための改良された方法を達成するために、不揮発性メモリ及び参照テーブルの用途を開示するものである。
本発明のさらなる態様は、フラッシュベースのSSDがリダイレクトオンライトにおいて有している機能を利用して、適宜の参照テーブルを付加するとともにこの機能を拡張して、SSDドライブの初期の状態のポイントオンタイムスナップショットを作成する能力を備えるようにするものである。
本発明の他の態様は、1又は複数のSSD上に記憶されたデータセット上でのシステムレベルデータのスナップショットを実行し、かつこれを利用するために、SSDベースのスナップショット機構を使用できる、1又は複数のSSD上にデータを記憶するストレージシステムを、開示するものである。このシステムレベルデータのスナップショットは、当該技術で既知であるように、ストレージシステム全体に関係する任意のデータである。
本発明の一態様は、SSDの能力を最大限に利用するタイムコピーすなわちスナップショットを提供するものである。
本発明の別の態様は、フラッシュベースのソリッドステートデバイス(SSD)にあるアップデート機構を、ストレージシステムにあるスナップショット特性と組み合わせるものである。
本発明のさらに別の態様は、ポイントインタイムコピーすなわちスナップショットを実行するための改良された方法を達成するために、不揮発性メモリ及び参照テーブルの用途を開示するものである。
本発明のさらなる態様は、フラッシュベースのSSDがリダイレクトオンライトにおいて有している機能を利用して、適宜の参照テーブルを付加するとともにこの機能を拡張して、SSDドライブの初期の状態のポイントオンタイムスナップショットを作成する能力を備えるようにするものである。
本発明の他の態様は、1又は複数のSSD上に記憶されたデータセット上でのシステムレベルデータのスナップショットを実行し、かつこれを利用するために、SSDベースのスナップショット機構を使用できる、1又は複数のSSD上にデータを記憶するストレージシステムを、開示するものである。このシステムレベルデータのスナップショットは、当該技術で既知であるように、ストレージシステム全体に関係する任意のデータである。
上記の利点の全て、及び本明細書に記載した発明によって開示及び得られる他の多くの利点により、従来技術を改善することができる。
上述した又はその他の本発明の特性及び付随する利点は、以下に示す発明の詳細な説明及び添付図面を検討すれば、明らかになるであろう。
上述した又はその他の本発明の特性及び付随する利点は、以下に示す発明の詳細な説明及び添付図面を検討すれば、明らかになるであろう。
当業者であれば、本発明の精神を逸脱しない範囲において、本発明の教示を用いて、図面に示された実施形態を変形することができるであろう。図面では、いくつかの図において類似の参照番号がふられた要素があるが、それはすでに定義されている同一の要素が存在することを示している。
本発明の好適な実施形態を、添付図面を参照して詳細に説明する。本明細書に開示するのは、本発明の実施に係る現在における最良の形態である。この記載は限定を意味するのではなく、本発明の一般原理をただ説明する目的でなされている。この詳細な説明の各見出し及び全体的な構成は、便宜上なされたものであって、本発明を制限するものではない。
本発明の好適な実施形態を、添付図面を参照して詳細に説明する。本明細書に開示するのは、本発明の実施に係る現在における最良の形態である。この記載は限定を意味するのではなく、本発明の一般原理をただ説明する目的でなされている。この詳細な説明の各見出し及び全体的な構成は、便宜上なされたものであって、本発明を制限するものではない。
本発明は、好ましくは、特定用途の集積回路すなわちASIC内で動作するファームウェアである。本発明は、コントローラチップ、ASIC又はマザーボードカード内のファームウェア、ソフトウェア、ハードウェア又はそれらの任意の組み合わせに存在しており、好ましくはSSD自身に存在しているが、いずれにせよ、システムが1つのユニット又はいくつかのユニットとしてパッケージされているか否かに関わらず、本発明を備えているSDDシステムは、SSDを備えている。本発明によって提供される機能は、ハードウェア及びソフトウェアの組み合わせである可能性が高い。ハードウェア及びソフトウェアの種類は実装に依存している。例示であって限定するものではないが、ソフトウェア及びホストバスアダプタによって論理ユニットがリナックスシステムに組み込まれるように、ファームウェア、ディスクコントローラチップ、ASIC及びカードを用いた論理ユニットの実装が可能である。
加えて、任意のソフトウェアツールが本発明の書込及びコンパイルのために使用され、C++等のオブジェクト指向言語を含めたC等の任意のコンピュータ言語で書き込まれる。さらに、ファームウェアは、主メモリストレージ及び二次メモリストレージを有するコンピュータ等の、汎用コンピュータシステムと置き換え可能である。一般的に、本発明のソフトウェアを構築かつ実装するために使用される言語次第で、ソフトウェアは、本明細書で説明かつ教示されたような連続したステージで本発明を実施するために、任意の数のクラス、ファンクション、サブルーティン、オブジェクト、変数、テンプレート、モジュール、コード行数、コードの一部、及び構成(集合的かつ一般的に、また本明細書のフロー図に表現では、「処理ステップ」、「ステップ」、「命令」、「処理」「ブロック」、「ブロックステップ」、「アプリケーション」、「モジュール」、又は「ソフトウェアモジュール」)を有している。またソフトウェアは、独立型ソフトウェアアプリケーションであるか、もしくは別のソフトウェアアプリケーションに内蔵されているか又は別のソフトウェアアプリケーションに呼び出されるかである。ソフトウェア処理又はソフトウェアモジュールは、例えばオブジェクト指向プログラミングのように(例:オーバーロード処理)、アプリケーション内のコードの一部分が、複数のファンクションを実行するように構成される。逆もまた然りで、複数のソフトウェアモジュール又は処理ステップが、本明細書に記載された単一の処理ステップでの機能を実行するよう構成されても、本発明の一般性を失うことはない。本発明の処理ステップの任意のステージで、中間的な値、変数及びデータは、後の使用のためにプログラムによって記憶される。一般的に、本発明の方法及び装置は、任意の種類のハードウェアを用いて、本発明が記憶されているソフトウェアを実行する。これには集積回路チップ内のファームウェアだけでなく、パーソナルコンピュータ、ARMプロセッサ、XScaleプロセッサ、DSP、ASIC又はプログラム可能プラットフォームであるASIC、FPGA、GPP、マイクロプロセッサ、メーンフレーム、メモリ付専用回路、又は任意の別の互換性ハードウェア又は仮想マシンを含むが、これに限定するものではない。
図1には、データが書込される前の、本発明に係るフラッシュデバイス内の2つのフラッシュブロックの略図が示されている。
NAND技術を用いたソリッドステートドライブは、データの以前のコピーの上に新しく書き込まれたデータを配置することはない。現在の技術では、消去できる最少データ量は、128Kのユーザデータである。この128Kブロックは、一回の動作で書込可能なユーザデータの最少量である2Kページにセグメント化される。SSDは、同一データの以前に書き込まれたコピーとは異なるロケーションに、新しく書き込まれたデータを配置するのが通常である。図1は、簡略化した例を示している。複数のデータセグメントが、フラッシュブロックXに書き込まれている。フラッシュブロックYは消去されており、すぐに書き込みできる状態である。このように、図1はデータの書き込み前の状態を示している。
NAND技術を用いたソリッドステートドライブは、データの以前のコピーの上に新しく書き込まれたデータを配置することはない。現在の技術では、消去できる最少データ量は、128Kのユーザデータである。この128Kブロックは、一回の動作で書込可能なユーザデータの最少量である2Kページにセグメント化される。SSDは、同一データの以前に書き込まれたコピーとは異なるロケーションに、新しく書き込まれたデータを配置するのが通常である。図1は、簡略化した例を示している。複数のデータセグメントが、フラッシュブロックXに書き込まれている。フラッシュブロックYは消去されており、すぐに書き込みできる状態である。このように、図1はデータの書き込み前の状態を示している。
図2は、本発明に係るフラッシュアドレス変換のためのマッピングテーブルすなわち参照テーブルである。このテーブルは、SSDの内部のSSDコントローラのために、図2のコラム見出しにあるいくつかの情報、すなわち、いずれの特定データ(例:データセグメント)がどのフラッシュブロック(例:フラッシュブロックX又はY)にあるか、及び、フラッシュブロックのどのページに該データがあるか(SSD内の論理ブロックに対応して)、を含む情報、を関連付ける。この略図は単純化した例であり、バージョン番号などの他のタイプの情報を含むこともできる。テーブルは、ポインタを含むこともできる。ソフトウェアから見れば、「アドレス」は「ポインタ」である。よって、アドレスのテーブルは、ポインタのテーブルである。同一の機能を実行する任意の類似構造、及び/又は、別の変数のアドレスをもつ変数を備えた同等のデータ構造も、テーブルに相当するであろう。さらに、数組のテーブルが複数のスナップショットを同時に保持することも可能である。
図3は、新しいデータが書込されている間の、本発明のSSD等のフラッシュデバイス内の2つのフラッシュブロックの略図を示している。フラッシュデバイスは、データセグメント210及び211のための外部ハードウェアによって動作するプログラムから、書込コマンドを受け取る。これは「新しいデータセグメント210」及び「新しいデータセグメント211」と記された矢印301及び矢印302で示されている。フラッシュデバイスは、セグメント210及び211のための新しいデータを受け入れて、かつそれらを図3のページ1及びページ2に示されている、フラッシュブロックYの事前に消去済みの領域に書き込む。フラッシュボックスXに変更はない。フラッシュブロックYへの書き込み後に、図3のフラッシュボックスX内のページは、フラッシュボックスX内のブロック210及び211のデータが現在は古いデータであることを示すよう修正される。このことは、図3では、フラッシュボックスX内のページ1及びページ6にある「古いデータセグメント210」及び「古いデータセグメント211」のように、「古いデータ」として示されている。
図4は、上述した書込動作が完了した後の、本発明に係るフラッシュデバイス内の2つのフラッシュブロックの略図である。この時点で、フラッシュデバイスは自身のデータマッピングテーブルを更新して、データセグメント210及び211のためのロケーションとして、フラッシュボックスYをポイントするようにする。データセグメントの古いコピーは、フラッシュボックスX全体がリクレーム(reclaim)されて再使用のための準備で消去されるまでは、フラッシュボックスX内に残っている。それから、フラッシュデバイス内のアドレス変換テーブルが、データセグメント210及び211の新しいアドレスに関して更新されて、図5に示されたようになる。
知られているように、ディスクアレイサブシステムは、ポイントインタイムコピー又はスナップショットと称される特性をサポートしている。データのスナップショットを達成するために、アレイは、元のユーザデータ及び新しく書き込まれたユーザデータの両方のコピーを保存するための「コピーオンライト」又は「リダイレクトオンライト」のいずれかのスナップショット機構を採用している。いずれの方法も、フラッシュデバイスのアドレス変換テーブルに類似した、データへのポインタを使用している。通常のスナップショット方法は、ストレージボリューム及びそのスナップショットの両方に関して、変化していないデータの共通のコピーを、そのデータの元のロケーションに保持する。書込が受信されると、ストレージシステムは、古いデータを新しいロケーションにコピーするか(コピーオンライト方法)、又は新しいデータを新しいロケーションに書き込むか(リダイレクトオンライト方法)のいずれかを実行する。両方の場合において、ストレージシステムはデータのセットを管理するので、ストレージシステムのユーザにとっては、ボリュームのポイントインタイムコピー及びボリュームの最新バージョンがあるように見える。
ストレージシステムレベルでスナップショットを実行するための既存方法が抱える問題の1つは、パフォーマンス(性能)に大きな悪影響を与えてしまうことである。例えば、コピーオンライト方法を使用する場合、ホストから受信した各書込コマンドに関して、ストレージシステムは、元のロケーションから古いデータを読み出し、古いデータをスナップショットロケーションにコピーし、それから、新しいデータを元のロケーションに書き込む。リダイレクトオンライトのスナップショットである場合は、スナップショットが終了した時点で、スナップショットロケーション上の新しいデータが、またもとのロケーションにコピーされなければならない。
本発明において、SSDは性質上、ユーザデータの以前のコピーを保持するものなので、スナップショットを実行するための能力を全く又はほとんど損なうことなく、本発明の教示に従って、現在のデータ及びスナップショットデータの両方を記憶するために用いることができる。本発明の教示に従って修正されれば、SSDは基本的に、受け取ったあらゆる書込コマンドに関してリダイレクトオンライトを実行する。複数のマッピングテーブルを有するフラッシュデバイス内にある以前のバージョンのデータをポイントすることができる、追加のアドレス変換テーブルを加えることにより、フラッシュデバイスは、デバイス内に記憶されているデータの複数のポイントインタイムコピーへのアクセスを提供することができる。
このように、本発明に関しては、図面を参照すると、フラッシュデバイスは、210及び211の書き込みより前のデータのポイントインタイムコピーを記憶するためのコマンドを受け取る。フラッシュデバイスは、図2の参照テーブルに示されているアドレスのための参照テーブルのコピーを、ポイントインタイムコピーのためのアドレスへのポインタとして保持する。ボリュームが更新されるとき、図5のフラッシュアドレス変換テーブルに示されているように、データの現在のビュー(書込コマンドに応答したSSD上へのデータ書込の結果を含んだ、SSDの現在の状態)は維持される。SSDは、2つの参照テーブルを備えるよう修正される。すなわち、フラッシュデバイスが、スナップショットのためのスペースがある限りにおいて、両方のテーブルのコピーを維持する結果、スナップショットは何らかの他の動作によって終了されることがない。これは図6に示した2つのテーブルに示されている。図6は、現在のビュー及び書込前のポイントインタイムコピー(SSDの初期状態のスナップショット)の両方に関する、本発明におけるフラッシュアドレス変換のための2つの参照テーブルの活用を示している。図6のAは、前述した図5と同様に、書き込み動作後のアドレス変換テーブルを示しているのに対し、図6のBは、前述した図2と同様に、書き込み動作、スナップショットすなわちポイントインタイムコピー前の、アドレス変換テーブルを示している。
図7は、本発明の方法の高レベルのフロー図である。本発明は、SSDを制御して本明細書で説明されたステップ及び命令に即して動作する、ハードウェア、ソフトウェア、及び/又はファームウェアの任意の組み合わせを用いて、本方法を実行する。ステップ700の「スタート」で、本発明のプログラムは開始される。フローは、ステップ702の「コマンドを受け取る」に進み、そこでフラッシュデバイスは、書込コマンド、スナップショットコマンド、又は別のタイプのコマンド等のコマンドを受信し、かつ回路又は命令をトリガして動作させ、かつ/又は結果を記憶するか、もしくは通常はフラッグを設定するか又はデータインディシアを設定する。コマンドは、書込コマンドであるか、又はストレージデバイスにデータのポイントインタイムコピー(スナップショット)を記憶するためのスナップショットコマンドである。スナップショットコマンドが受信されると、フラッグ、データ、又は別のデータインディシアが、スナップショットが取得されるべきであることを示すように設定される。設定済みのこれらのデータは、ハードウェアにスナップショットイベントをトリガさせる信号すなわち命令を含んでいる。スナップショットは、書込コマンド程頻繁ではなく、ストレージシステム内で同時にアクティブ状態にあるのは、通常、単一のスナップショット又はいくつかのスナップショットである。
フローは次いで、ステップ704の「書込コマンドか?」に進む。SSDがコマンドを受け取ると、ステップ704に示されているように、プログラムのフローは、コマンドが書込コマンドでない場合は、「NO」分岐に沿ってステップ706の「他のコマンドを処理する」へ、又は、コマンドが書込コマンドである場合は、「YES」分岐に沿ってステップ708の「スナップショットは進行中か?」へ進む。図8と関連して詳述するように、ステップ708の「スナップショットは進行中か?」で、スナップショットが開始される。
スナップショットが進行中ではない場合、すなわちスナップショットコマンドがひとつも受信されていない場合には、フローは「NO」分岐に沿ってステップ710の「書込コマンドを処理する」に進み、ここで任意の通常の書込コマンド(スナップショットがない場合)が処理される。それからフローは、ステップ712の「現在のビューのデータポインタを更新する」に進み、当該技術で既知の方法で、SSDの現在のビューのデータポインタが更新される。
しかし、スナップショットが進行中である場合は、フローは「YES」分岐に沿ってステップ714の「現在のデータ及びポインタを保存する」に進み、そこでフラッシュデバイスは、ポイントインタイム(スナップショット)のためのアドレスへのポインタを用いて、図2又は図6(b)のようなアドレスのための参照テーブルのコピーを、フラッシュ内に記憶する。続いてステップ716の「書込コマンドを処理する」に示されているように、書込コマンドは処理され、フローはステップ718の「現在のビュー及びスナップショットコピーのテーブルを更新する」に進む。ここでストレージ内のボリュームは、図5又は図6のAのような現在のビュー(書込後の)を反映させるために、更新される。本発明を用いると、SSD固有の動作手法により、SSDによる書込コマンドとともに、スナップショットを作成することで、性能面に大きな犠牲がでるものではない。2つのテーブルを用いることで、受信した全ての書込コマンドに関してリダイレクトオンライトを実行するというSSDデバイス固有の能力を用いることが可能であり、かつ、図6のA及びB、並びに、本明細書に記載の教示によって示されているような、2つのテーブルを使用するという代償のみで、必要であればいつでも、このリダイレクトオンライトにスナップショットを構築させることが可能である。
2つのテーブルがこのようにして更新されると、スナップショットが達成されて、フローは通常に戻るよう制御され、スタートのステップ700に戻る。
2つのテーブルがこのようにして更新されると、スナップショットが達成されて、フローは通常に戻るよう制御され、スタートのステップ700に戻る。
図8には、本発明によるスナップショットを撮る方法についての、より詳細な高レベルフロー図が示されている。スナップショット処理の開始前は、SSDは、図2に示されているようなデータへの現在のポインタのテーブルを1つ維持している。該方法は、ステップ800の「スタート」で始まり、ステップ802の「コマンドを受信する」に進む。ここでスナップショットコマンドがあるかどうかがチェックされ、スナップショットコマンドが受信されていた場合には、フローはステップ804の「スナップショットコマンドを開始するか?」に進む。ここで本発明のシステムは、スナップショットを取得すべきか否かを表示するようインディシア(例:フラッグ又は命令)を設定する適切な手段から、スナップショットコマンドが受信されているか、をチェックする。スナップショットを取るべきであれば、フローは「YES」分岐に従ってステップ806の「スナップショットポインタのためのテーブルをセットアップし、スナップショット進行中のフラッグを設定する」に進む。ここで図7のボックス714、716、及び718で概説されたステップが実行され、これには、現在のビューのテーブル(例:図6のA)に加えて、第2のテーブル(例:図6のB)を構築するステップも含まれる。第2のテーブル(図6のB)は、スナップショットコマンドが処理される瞬間は、データのビューへのポインタを保持している。また、SSDコントローラはスナップショットテーブルに記録されたページを再利用することはない。
スナップショットコマンドが一つも開始されない場合は、フローはステップ808の「スナップショットコマンドを終了するか?」に進む。ここで、「NO」分岐に従ってステップ810の「別のコマンドを処理する」に進むと、別のコマンドを処理するためコマンドが受信される。又は、以前にスナップショットが取得されたが、これを終了又は消去したい場合は、「YES」に沿ってステップ812の「スナップショットポインタのためのテーブルを廃棄する。スナップショット進行中のフラッグをクリアする」に進む。ここで、スナップショットは、スナップショットポインタのためのテーブルを廃棄するステップ、及びスナップショットが進行中であること又はスナップショットを撮る必要があることを示す、進行フラッグ、データ、又はインディシアをクリアするステップ等の、該スナップショットに関連する任意のテーブルを廃棄するステップによって終了することができる。図6のBのテーブルは廃棄され、かつフラッシュボックスX内のブロック210及び211の古いコピー等の図6のAにはないが図6のBにはある古いデータは、フラッシュボックスXが再使用のために消去されると自由に廃棄できる。これらのステップは、スナップショットコマンドを終了するステップである。
図8に示されている全ての経路において、フローはスタートのステップ800に戻る。
図8に示されている全ての経路において、フローはスタートのステップ800に戻る。
本発明に関するアクセスに関しては、本明細書に記載したような2つのテーブルを実現するために、アクセスは多くの手段によって提供されてよい。例えば、フラッシュデバイスは、SSD内の第2の論理ユニットを介して、自身のデバイスポート上で、又はSSD上の追加的なポートを介して、ポイントインタイムコピーへのアクセスを提供する。別の実施形態では、SSDは、独自のコマンドセットを介してアクセスを提供する。RAIDシステムすなわちホストアダプタは、ホストによって特定のコマンドが与えられるとスナップショットをトリガする、ソフトウェア又はファームウェアで提供される。
本発明のさらに別の態様は、1又は複数のSSD上に記憶されたデータセット上でのシステムレベルデータのスナップショットを実行かつ利用するための、本発明に係るSSDベースのスナップショット機構を用いるために、1又は複数のSSD上にデータを記憶するストレージシステムにおいて、本発明を使用することである。システムレベルデータのスナップショットは、当該分野で既知であるように、ストレージシステム全体に関係する任意のデータである。
本発明を上述の好適な実施形態に関連して説明したが、本明細書の教示から、該実施形態に対する数多くの修正及び/又は追加が当業者には容易にわかるであろう。例えば、SSDが明示的に言及されたが、SSDと同じように機能するストレージデバイスをSSDと置き換えることもできる。さらに、コピーオンライトのストレージ媒体に対する適宜の修正も、デバイスが本明細書の教示に従って機能するのであれば、当業者によってなされてよい。当業者は、本明細書の教示を用いて、コピーオンライトを使用する従来の回転プラッタハードディスクドライブ(HDD)を、本発明と類似の機能を実行するよう修正することもできる。これにはより多くの作業が必要である。これは、従来のHDDは、テーブルではなく幾何学計算を使用してデータを配置するからであるが、本発明の実施形態にするために、本明細書の教示に従って、マッピングテーブルの能力を備えさせることができる。この場合、HDDのコントローラは、機能面でSSDコントローラと同等であるので、ソリッドステートメモリではなく回転ディスク上で動作するという違いがあるが、本発明の技術的範囲に含まれる。
本発明の技術的範囲は、このような修正及び/又は追加の全てに拡張されるものであり、特許請求の範囲によってのみ規定されるものである。
Claims (20)
- ストレージデバイスのスナップショットを取得するためのシステムであって、
ストレージデバイスによる書込動作より前のデータを保持する、アドレス変換のための第1のマッピングテーブルと、ストレージデバイスによる書込動作後のデータを保持する、アドレス変換のための第2のマッピングテーブルとを備えたストレージデバイス
を備えており、該ストレージデバイスは、第1及び第2のテーブルによって保持されているデータによって、ストレージデバイスのポイントインタイムコピーが可能であることを特徴とするシステム。 - 請求項1記載のシステムにおいて、
ストレージデバイスは、ソリッドステートディスク(SSD)であり、
第1のマッピングテーブルは、SSDのスナップショットに関連するデータを保持し、第2のマッピングテーブルは、SSDの現在のビューに関連するデータを保持し、SSDは、SSDのスナップショットを構築するために第1及び第2のマッピングテーブルを用いる
ことを特徴とするシステム。 - 請求項2記載のシステムにおいて、
SSDは、受信された書込コマンドに応答して書き込みを実行し、かつ第1及び第2のマッピングテーブルを、書込コマンドの実行に応答したデータで更新する
ことを特徴とするシステム。 - 請求項3記載のシステムにおいて、
SSDは、受信された書込コマンドに対してリダイレクトオンライトを実行し、かつ、第2のマッピングテーブルを、SSDの現在のビューを表示しているデータで更新する
ことを特徴とするシステム。 - 請求項4記載のシステムにおいて、
SSDは、第1のマッピングテーブルを、書込コマンド前のSSDのポイントインタイムコピーを表示しているデータで更新し、かつ複数のスナップショットの取得を可能にするために、複数の第1及び第2のマッピングテーブルを更新する
ことを特徴とするシステム。 - 請求項3記載のシステムにおいて、
SSDは、スナップショットが取得されるべきであることを表示するようデータを設定し、かつ、受信された書込コマンドに対してリダイレクトオンライトを実行する
こと特徴とするシステム。 - 請求項6記載のシステムにおいて、
SSDは、スナップショットが取得されるべきであることを表示するようSSDによって設定されたデータに応答して、第1及び第2のマッピングテーブルを更新する
ことを特徴とするシステム。 - 請求項7記載のシステムにおいて、
ファームウェアがSSD内にあり、該ファームウェアにより、第1及び第2のマッピングテーブルを更新し、かつ、少なくとも1つのSSD上にデータを記憶しているストレージシステム上で使用するための複数のSSDを更新して、SSD内に記憶されたデータセット上でシステムレベルデータのスナップショットを取得することを可能にする
ことを特徴とするシステム。 - 請求項4記載のシステムにおいて、
スナップショットをトリガするために、データインディシアを設定するための手段を備え、
SSDは、第1のマッピングテーブルを、リダイレクトオンライトより前のSSDのポイントインタイムコピーを示しているデータで更新し、
SSDは、第2のマッピングテーブルを、SSDの現在のビューを表示しているデータで更新する
ことを特徴とするシステム。 - 請求項9記載のシステムにおいて、該システムはさらに、
複数のスナップショットを取得することを可能にする、複数の第1及び第2のマッピングテーブルと、
これら第1及び第2のマッピングテーブルをデータへのポインタでセットアップする手段と、
スナップショットテーブルを廃棄するための手段を含み、スナップショットを終了する手段と、
SSDに記憶されたデータセット上でシステムレベルのスナップショットを取得することを可能にするために、少なくとも1つのSSD上にデータを記憶しているストレージシステム上で使用するための複数のSSDと
を備えていることを特徴とするシステム。 - 請求項3記載のシステムにおいて、該システムはさらに、
SSDに記憶されたデータセット上でシステムレベルのスナップショットを取得することを可能にする、少なくとも1つのSSD上にデータを記憶しているストレージシステム上で使用するための複数のSSD
を備えていることを特徴とするシステム。 - ソリッドステートディスクのスナップショットのための方法であって、該方法は、
ソリッドステートディスク(SSD)上にデータを記憶するステップと、
SSDにアドレス変換のための第1のマッピングテーブルを提供するステップと、
SSDにアドレス変換のための第2のマッピングテーブルを提供するステップと
を備えており、SSDは、第1及び第2のマッピングテーブルに保持されているデータを介して、SSDのポイントインタイムコピーが可能であることを特徴とする方法。 - 請求項12記載の方法において、該方法は、
SSDのスナップショットに関連するデータを、第1のマッピングテーブルに記憶するステップと、
SSDの現在のビューに関連するデータを、第2のマッピングテーブルに記憶するステップと、
第1及び第2のマッピングテーブルを用いて、SSDのスナップショットを構築するステップと
を含んでいることを特徴とする方法。 - 請求項13記載の方法において、該方法は、
書込コマンドを実行するステップと、
スナップショットコマンドを確認し、スナップショットコマンドを受信すると、スナップショットの構築を実行するステップと
を含んでいることを特徴とする方法。 - 請求項14記載の方法において、該方法は、
書込コマンドのためのリダイレクトオンライトを実行するステップと、
リダイレクトオンライトより前のSSDのポイントインタイムコピーを表示しているデータで、第1のマッピングテーブルを更新するステップと、
少なくとも1つのSSD上にデータを記憶しているストレージシステム上で使用するための、複数のスナップショットの取得を提供するステップと、
複数のSSDの少なくとも1つ上で、SSD内に記憶されたデータセット上でシステムレベルのデータのスナップショットを取得することを可能にするステップと
を含んでいることを特徴とする方法。 - 請求項15記載の方法において、該方法は、
書込コマンドより前のスナップショットコマンドを確認するステップと、
スナップショットコマンドを終了するステップと、
同時に複数のスナップショットをとることを可能にするために、複数の第1及び第2のマッピングテーブルを提供するステップと
を含んでいることを特徴とする方法。 - 請求項13記載の方法において、該方法は、
スナップショットコマンドを確認するステップと、
書込コマンドを確認し、書込コマンドに対してリダイレクトオンライトを実行するステップと、
スナップショットコマンドに応答してポイントインタイムコピーを開始すべきかを確認し、スナップショットコマンドが受信された場合はタイムコピーの開始を実行し、スナップショットコマンドが受信されない場合はスナップショットコマンドを終了するステップと
を含んでいることを特徴とする方法。 - 請求項17記載の方法は、
スナップショットコマンドが終了された場合に、第1のマッピングテーブルからデータをクリアするステップと、
同時に複数のスナップショットを撮ることを可能にするために、複数の第1及び第2のマッピングテーブルを提供するステップと、
現在のビューに関連したデータで、第2のマッピングテーブルを更新するステップと、
を含んでいることを特徴とする方法。 - 請求項13記載の方法は、
スナップショットコマンドを確認するステップと、
書込コマンドを確認し、書込コマンドに対してリダイレクトオンライトを実行するステップと、
スナップショットコマンドに応答してポイントインタイムコピーを開始すべきかを確認して、スナップショットコマンドが受信されている場合はタイムコピーの開始を実行するステップと、
リダイレクトオンライトより前のSSDのポイントインタイムコピーを表示しているデータで、第1のマッピングテーブルを更新するステップと、
スナップショットコピーが受信された場合に、現在のビューに関連したデータで、第2のマッピングテーブルを更新するステップと、
同時に複数のステップを撮ることを可能にするために、複数の第1及び第2のマッピングテーブルを提供するステップと
を含んでいることを特徴とする方法。 - SSDストレージシステムのポイントインタイムコピーを取得するためのシステムであって、該システムは、
SSDを含んでいるデータを記憶する手段であって、
SSDの現在のビューに関連するデータを保持する第1の参照テーブルを備えたアドレス変換のための手段と、
SSDの現在のビューに関連するデータを保持する第2の参照テーブルを備えたアドレス変換のための手段と
を備えたSSD記憶手段と、
データを書き込むための手段であって、リダイレクトオンライトを実行するための手段を含み、SSDは、SSDのスナップショットを構築するために、第1及び第2の参照テーブルを使用する、手段と、
スナップショットを取得するべきかを示すインディシアを、データに設定する手段と、
スナップショットを取得すべきかを示すインディシアをデータに設定する手段に応答して、データポインタで第1及び第2の参照テーブルを更新する手段と、
複数のスナップショットを取得することを可能にするための、複数のSSD上の複数の第1及び第2の参照テーブルと、
複数のSSDの少なくとも1つ上で、SSDに記憶されたデータセット上でシステムレベルのデータのスナップショットを取得することを可能にするための手段と、
スナップショットを終了するためのコマンドに応答して、スナップショットのデータを終了する手段と
を含んでいることを特徴とするシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/316,902 | 2008-12-17 | ||
US12/316,902 US8200922B2 (en) | 2008-12-17 | 2008-12-17 | Storage system snapshot assisted by SSD technology |
PCT/US2009/002008 WO2010071662A1 (en) | 2008-12-17 | 2009-03-30 | Storage system snapshot assisted by ssd technology |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012512482A true JP2012512482A (ja) | 2012-05-31 |
Family
ID=42241930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011542101A Pending JP2012512482A (ja) | 2008-12-17 | 2009-03-30 | Ssd技術支援のストレージシステムのスナップショット |
Country Status (7)
Country | Link |
---|---|
US (1) | US8200922B2 (ja) |
EP (1) | EP2359252B1 (ja) |
JP (1) | JP2012512482A (ja) |
KR (1) | KR20110107798A (ja) |
CN (1) | CN102239480A (ja) |
TW (1) | TW201024994A (ja) |
WO (1) | WO2010071662A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015114744A1 (ja) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | ストレージ装置 |
JP2016157441A (ja) * | 2015-02-25 | 2016-09-01 | エイチジーエスティーネザーランドビーブイ | Ssdへのコピーオンライト用システム及び方法 |
JP2022145781A (ja) * | 2020-07-31 | 2022-10-04 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおけるデータ複製方法 |
Families Citing this family (290)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100133184A (ko) * | 2009-06-11 | 2010-12-21 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8732426B2 (en) | 2010-09-15 | 2014-05-20 | Pure Storage, Inc. | Scheduling of reactive I/O operations in a storage environment |
US8589655B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of I/O in an SSD environment |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8589625B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of reconstructive I/O read operations in a storage environment |
US8468318B2 (en) | 2010-09-15 | 2013-06-18 | Pure Storage Inc. | Scheduling of I/O writes in a storage environment |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US9244769B2 (en) | 2010-09-28 | 2016-01-26 | Pure Storage, Inc. | Offset protection data in a RAID array |
US9971656B2 (en) | 2010-12-13 | 2018-05-15 | International Business Machines Corporation | Instant data restoration |
US8886869B2 (en) | 2011-02-02 | 2014-11-11 | Hitachi, Ltd. | Storage system and data control method therefor |
US8626991B1 (en) * | 2011-06-30 | 2014-01-07 | Emc Corporation | Multi-LUN SSD optimization system and method |
US8868869B2 (en) * | 2011-08-08 | 2014-10-21 | International Business Machines Corporation | Enhanced copy-on-write operation for solid state drives |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8788788B2 (en) | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
WO2013038442A1 (en) * | 2011-09-13 | 2013-03-21 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
CN102591790B (zh) * | 2011-12-30 | 2015-11-25 | 记忆科技(深圳)有限公司 | 基于固态硬盘的数据存储快照实现方法及固态硬盘 |
TWI479418B (zh) * | 2012-01-19 | 2015-04-01 | Novatek Microelectronics Corp | 多媒體裝置的啟動方法及多媒體裝置 |
US8719540B1 (en) | 2012-03-15 | 2014-05-06 | Pure Storage, Inc. | Fractal layout of data blocks across multiple devices |
WO2013158633A1 (en) * | 2012-04-20 | 2013-10-24 | Violin Memory, Inc. | Snapshots in a flash memory storage system |
CN102629914A (zh) * | 2012-04-27 | 2012-08-08 | 深圳市邦彦信息技术有限公司 | 一种以太网数据包缓存方法和装置 |
CN102789368B (zh) | 2012-06-21 | 2015-10-21 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其数据管理方法、系统 |
US9495287B2 (en) | 2012-09-26 | 2016-11-15 | International Business Machines Corporation | Solid state memory device logical and physical partitioning |
US8745415B2 (en) | 2012-09-26 | 2014-06-03 | Pure Storage, Inc. | Multi-drive cooperation to generate an encryption key |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US9336090B2 (en) | 2012-10-10 | 2016-05-10 | Hitachi, Ltd. | Storage apparatus comprising snapshot function, and storage control method |
CN102968381A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种利用固态硬盘提高快照性能的方法 |
US8937317B2 (en) | 2012-12-28 | 2015-01-20 | Avogy, Inc. | Method and system for co-packaging gallium nitride electronics |
KR20150105323A (ko) | 2013-01-08 | 2015-09-16 | 바이올린 메모리 인코포레이티드 | 데이터 스토리지 방법 및 시스템 |
US9063967B2 (en) | 2013-01-10 | 2015-06-23 | Pure Storage, Inc. | Performing copies in a storage system |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US11768623B2 (en) | 2013-01-10 | 2023-09-26 | Pure Storage, Inc. | Optimizing generalized transfers between storage systems |
EP2955633B1 (en) | 2013-03-15 | 2018-05-23 | Huawei Technologies Co., Ltd. | Data erasing method and device for flash memory |
US9324645B2 (en) | 2013-05-23 | 2016-04-26 | Avogy, Inc. | Method and system for co-packaging vertical gallium nitride power devices |
US9489151B2 (en) | 2013-05-23 | 2016-11-08 | Netapp, Inc. | Systems and methods including an application server in an enclosure with a communication link to an external controller |
US10223208B2 (en) * | 2013-08-13 | 2019-03-05 | Sandisk Technologies Llc | Annotated atomic write |
CN104572138B (zh) * | 2013-10-10 | 2018-10-30 | 腾讯科技(深圳)有限公司 | 应用程序的启动方法及装置 |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US9324809B2 (en) | 2013-11-18 | 2016-04-26 | Avogy, Inc. | Method and system for interleaved boost converter with co-packaged gallium nitride power devices |
US9208086B1 (en) | 2014-01-09 | 2015-12-08 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
CN103955413A (zh) * | 2014-04-11 | 2014-07-30 | 重庆纳跃信息科技有限公司 | 一种基于文件局部修改的文件快照还原方法 |
JP5864667B2 (ja) * | 2014-05-07 | 2016-02-17 | 株式会社日立製作所 | ストレージシステムおよびそのデータ制御方法 |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9218407B1 (en) | 2014-06-25 | 2015-12-22 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9864761B1 (en) | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US10430282B2 (en) | 2014-10-07 | 2019-10-01 | Pure Storage, Inc. | Optimizing replication by distinguishing user and system write activity |
US9489132B2 (en) | 2014-10-07 | 2016-11-08 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US9773007B1 (en) | 2014-12-01 | 2017-09-26 | Pure Storage, Inc. | Performance improvements in a storage system |
US9552248B2 (en) | 2014-12-11 | 2017-01-24 | Pure Storage, Inc. | Cloud alert to replica |
US9588842B1 (en) | 2014-12-11 | 2017-03-07 | Pure Storage, Inc. | Drive rebuild |
US9864769B2 (en) | 2014-12-12 | 2018-01-09 | Pure Storage, Inc. | Storing data utilizing repeating pattern detection |
US10545987B2 (en) | 2014-12-19 | 2020-01-28 | Pure Storage, Inc. | Replication to the cloud |
US9535799B2 (en) | 2015-01-06 | 2017-01-03 | HGST Netherlands B.V. | Apparatus, systems, and methods for data recovery |
US10296354B1 (en) | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US11947968B2 (en) | 2015-01-21 | 2024-04-02 | Pure Storage, Inc. | Efficient use of zone in a storage device |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US9547441B1 (en) | 2015-06-23 | 2017-01-17 | Pure Storage, Inc. | Exposing a geometry of a storage device |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
KR20170028825A (ko) | 2015-09-04 | 2017-03-14 | 퓨어 스토리지, 아이앤씨. | 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색 |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
CN105487898A (zh) * | 2015-11-27 | 2016-04-13 | 国云科技股份有限公司 | 一种提高虚拟机批量开机关机速度的方法 |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10372543B2 (en) | 2016-03-04 | 2019-08-06 | Toshiba Memory Corporation | Memory system |
US9836243B1 (en) * | 2016-03-31 | 2017-12-05 | EMC IP Holding Company LLC | Cache management techniques |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10133503B1 (en) | 2016-05-02 | 2018-11-20 | Pure Storage, Inc. | Selecting a deduplication process based on a difference between performance metrics |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US9946489B2 (en) | 2016-07-27 | 2018-04-17 | Western Digital Technologies, Inc. | Multi-stream journaled replay |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US10613974B2 (en) | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10162523B2 (en) | 2016-10-04 | 2018-12-25 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US10185505B1 (en) | 2016-10-28 | 2019-01-22 | Pure Storage, Inc. | Reading a portion of data to replicate a volume based on sequence numbers |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US10452290B2 (en) | 2016-12-19 | 2019-10-22 | Pure Storage, Inc. | Block consolidation in a direct-mapped flash storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US12045487B2 (en) | 2017-04-21 | 2024-07-23 | Pure Storage, Inc. | Preserving data deduplication in a multi-tenant storage system |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10620843B2 (en) * | 2017-07-26 | 2020-04-14 | Netapp, Inc. | Methods for managing distributed snapshot for low latency storage and devices thereof |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10445195B2 (en) | 2017-08-07 | 2019-10-15 | Micron Technology, Inc. | Performing data restore operations in memory |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
CN107798130B (zh) * | 2017-11-17 | 2020-08-07 | 广西广播电视信息网络股份有限公司 | 一种分布式存储快照的方法 |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US11144638B1 (en) | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10678433B1 (en) | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11048597B2 (en) | 2018-05-14 | 2021-06-29 | Micron Technology, Inc. | Memory die remapping |
US10678436B1 (en) | 2018-05-29 | 2020-06-09 | Pure Storage, Inc. | Using a PID controller to opportunistically compress more data during garbage collection |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US10776046B1 (en) | 2018-06-08 | 2020-09-15 | Pure Storage, Inc. | Optimized non-uniform memory access |
US10636495B2 (en) | 2018-06-12 | 2020-04-28 | Western Digital Technologies, Inc. | Adjustable read retry order based on decoding success trend |
US11281577B1 (en) | 2018-06-19 | 2022-03-22 | Pure Storage, Inc. | Garbage collection tuning for low drive wear |
US11869586B2 (en) | 2018-07-11 | 2024-01-09 | Pure Storage, Inc. | Increased data protection by recovering data from partially-failed solid-state devices |
CN109117086B (zh) * | 2018-07-16 | 2021-09-21 | 北京百度网讯科技有限公司 | 存储设备数据位置的处理方法、装置、设备及存储介质 |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11074134B2 (en) | 2018-08-23 | 2021-07-27 | International Business Machines Corporation | Space management for snapshots of execution images |
US11133076B2 (en) | 2018-09-06 | 2021-09-28 | Pure Storage, Inc. | Efficient relocation of data between storage devices of a storage system |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11194759B2 (en) | 2018-09-06 | 2021-12-07 | Pure Storage, Inc. | Optimizing local data relocation operations of a storage device of a storage system |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
TWI709854B (zh) * | 2019-01-21 | 2020-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 |
US11194473B1 (en) | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11397674B1 (en) | 2019-04-03 | 2022-07-26 | Pure Storage, Inc. | Optimizing garbage collection across heterogeneous flash devices |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US10990480B1 (en) | 2019-04-05 | 2021-04-27 | Pure Storage, Inc. | Performance of RAID rebuild operations by a storage group controller of a storage system |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US10929046B2 (en) | 2019-07-09 | 2021-02-23 | Pure Storage, Inc. | Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
US11086713B1 (en) | 2019-07-23 | 2021-08-10 | Pure Storage, Inc. | Optimized end-to-end integrity storage system |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US12050683B2 (en) * | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system |
US12050689B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Host anomaly-based generation of snapshots |
US12067118B2 (en) | 2019-11-22 | 2024-08-20 | Pure Storage, Inc. | Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US12079356B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Measurement interval anomaly detection-based generation of snapshots |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US12079333B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Independent security threat detection and remediation by storage systems in a synchronous replication arrangement |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
KR20210072990A (ko) | 2019-12-10 | 2021-06-18 | 삼성전자주식회사 | 가변 크기 맵핑 기반의 스토리지 장치의 데이터 관리 방법 및 이를 이용한 구동 방법 |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
CN112559386B (zh) * | 2020-12-22 | 2024-06-18 | 深圳忆联信息系统有限公司 | 提升ssd性能的方法、装置、计算机设备及存储介质 |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
CN113254265B (zh) * | 2021-05-10 | 2023-03-14 | 苏州库瀚信息科技有限公司 | 基于固态硬盘的快照实现方法、存储系统 |
CN113377579B (zh) * | 2021-06-23 | 2024-05-07 | 厦门市美亚柏科信息股份有限公司 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
US12105700B2 (en) | 2023-02-07 | 2024-10-01 | International Business Machines Corporation | Facilitating concurrent execution of database snapshot requests |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038639A (en) * | 1997-09-09 | 2000-03-14 | Storage Technology Corporation | Data file storage management system for snapshot copy operations |
US6959313B2 (en) | 2003-07-08 | 2005-10-25 | Pillar Data Systems, Inc. | Snapshots of file systems in data storage systems |
US7577807B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Methods and devices for restoring a portion of a data store |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US8151060B2 (en) | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
US7949692B2 (en) * | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7882068B2 (en) * | 2007-08-21 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for adaptive copy on write |
-
2008
- 2008-12-17 US US12/316,902 patent/US8200922B2/en active Active
-
2009
- 2009-03-30 KR KR1020117013825A patent/KR20110107798A/ko not_active Application Discontinuation
- 2009-03-30 JP JP2011542101A patent/JP2012512482A/ja active Pending
- 2009-03-30 CN CN200980148791XA patent/CN102239480A/zh active Pending
- 2009-03-30 WO PCT/US2009/002008 patent/WO2010071662A1/en active Application Filing
- 2009-03-30 EP EP09833766.0A patent/EP2359252B1/en active Active
- 2009-04-01 TW TW098110790A patent/TW201024994A/zh unknown
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015114744A1 (ja) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | ストレージ装置 |
JPWO2015114744A1 (ja) * | 2014-01-29 | 2017-03-23 | 株式会社日立製作所 | ストレージ装置 |
US9946616B2 (en) | 2014-01-29 | 2018-04-17 | Hitachi, Ltd. | Storage apparatus |
JP2016157441A (ja) * | 2015-02-25 | 2016-09-01 | エイチジーエスティーネザーランドビーブイ | Ssdへのコピーオンライト用システム及び方法 |
US9880755B2 (en) | 2015-02-25 | 2018-01-30 | Western Digital Technologies, Inc. | System and method for copy on write on an SSD |
US10540106B2 (en) | 2015-02-25 | 2020-01-21 | Western Digital Technologies, Inc. | System and method for copy on write on an SSD |
US11226747B2 (en) | 2015-02-25 | 2022-01-18 | Western Digital Technologies, Inc. | System and method for copy on write on an SSD |
JP2022145781A (ja) * | 2020-07-31 | 2022-10-04 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおけるデータ複製方法 |
JP7309025B2 (ja) | 2020-07-31 | 2023-07-14 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおけるデータ複製方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2010071662A1 (en) | 2010-06-24 |
EP2359252A4 (en) | 2013-02-27 |
US20100153620A1 (en) | 2010-06-17 |
TW201024994A (en) | 2010-07-01 |
EP2359252B1 (en) | 2015-08-12 |
US8200922B2 (en) | 2012-06-12 |
EP2359252A1 (en) | 2011-08-24 |
KR20110107798A (ko) | 2011-10-04 |
CN102239480A (zh) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8200922B2 (en) | Storage system snapshot assisted by SSD technology | |
US20230273876A1 (en) | Memory system, data storage device, user device and data management method thereof | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US8046528B2 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
US9923562B1 (en) | Data storage device state detection on power loss | |
US7831764B2 (en) | Storage system having plural flash memory drives and method for controlling data storage | |
US8166258B2 (en) | Skip operations for solid state disks | |
WO2011055407A1 (en) | Flash memory module | |
US10621051B2 (en) | Logical to physical table restoration from stored journal entries | |
CN111008156B (zh) | 存储设备和操作存储设备的方法 | |
US20100217927A1 (en) | Storage device and user device including the same | |
KR20190060528A (ko) | 데이터 관리 방법 및 이를 수행하는 저장 장치 | |
US20190324859A1 (en) | Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive | |
KR20140016430A (ko) | 메모리 유닛 동작 방법 및 메모리 제어기 | |
WO1999032977A1 (fr) | Systeme de memoire flash | |
US10459803B2 (en) | Method for management tables recovery | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
KR102697883B1 (ko) | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 | |
KR20180130229A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20170010810A1 (en) | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer | |
CN112099985A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
US20230409480A1 (en) | Systems and methods for a redundant array of independent disks (raid) using a raid circuit in cache coherent interconnect storage devices | |
JP6817242B2 (ja) | ディスクアレイ装置、ディスクアレイ装置の制御方法、及びディスクアレイ装置の制御プログラム | |
US11487439B1 (en) | Utilizing host memory buffers for storage device recoveries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120328 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20130731 |