説明

フラッシュベースのデータ保存ストレージシステム

複数の高密度フラッシュデバイスから構成される大容量ストレージアレイを有するフラッシュベースのデータ保存ストレージシステムを提供する。フラッシュデバイスは、例えば、強固にパッケージングされ、比較的高密度のテープ又はディスクデバイスに比べて1立方インチあたり実質的により大きな容量を有する低電力高性能データ保存システムを提供するマルチレベルセル(MLC)フラッシュデバイスである。フラッシュベースのデータ保存システムは、従来のデータ重複解除及び圧縮方法を使用して、データをコンパクトに記憶する場合がある。さらに、フラッシュベースの保存システムは、テープ及び/又はディスク保存システムに比べて小さな設置面積を有し、消費電力も少ない。

【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本発明は、2009年4月30日に出願されたフラッシュベースのデータ保存ストレージシステムに関するスティーブン・シー・ミラー他による米国仮特許出願第61/174,295号に基づく優先権を主張するものであり、当該米国仮特許出願の内容は、参照により本明細書に援用される。
【0002】
[発明の分野]
本発明は、ストレージシステムに関し、特に、データ保存ストレージシステムに関する。
【背景技術】
【0003】
[発明の背景]
ストレージシステムは、不揮発性メモリ及びディスクのような書き込み可能な永久的記憶媒体上でのデータの編成に関連するストレージサービスを提供するコンピュータである。ストレージシステムは、情報配送のクライアント/サーバモデルにしたがって動作するように構成される場合があり、それによって多くのクライアント(例えば、アプリケーション)が、システムにより提供されるデータにアクセスすることが可能となる。ストレージシステムは一般に、データをファイルシステム形式とブロック形式の両方で提供するストレージアーキテクチャを採用し、ランダムアクセスパターンとストリーミングアクセスパターンの両方を備えている。ディスクは一般に、優れたストリーミング能力(例えば、大きなシーケンシャルブロックの読み出し、又は「トラック読出し」)を提供するが、ランダムアクセス(すなわち、個々のディスクセクタの読み出し及び書き込み)のときは、あまり良好に機能しない。換言すれば、ディスクは、ストリーミングモード又はシーケンシャルモードにおいて非常に効率的に動作するが、小さなランダムブロックオペレーションは、ディスクの能力を実質的に低下させることがある。
【0004】
テープ又はディスクシステムのようなデータ保存ストレージシステムは通常、大型で低速のテープ又はディスクドライブから構成され、それらは、装置の寿命を超えてごくまれにアクセス(例えば、読出し又は書込み)されることがある。例えば、テープ又はディスク保存装置に記憶された情報は通常、単に、(1)保存された情報が依然として有効であることを確認するための整合性(一貫性)検査を実施するために、及び/又は(2)保存された情報を、例えば災害、又はコンプライアンスの目的で読み出すために、アクセスされる場合がある。また、テープ又はディスク保存システムは通常、当該システムを受け入れるための十分なフロア空間(設置面積)、安全性、及び/又は電力を提供する環境的に整備された領域に配置される。テープ保存システムの場合、例えば、大型のテープロボットは、テープドライブのアクセスに使用される機械的アームの旋回を可能にするために、相当な設置面積を消費し、すなわち必要とする。同様に、ディスク保存システムは、ディスクドライブの収容に使用されるキャビネットを受け入れるために相当な設置面積を消費し、すなわち必要とする。さらに、これらの保存システムのための整備された環境は、ドライブの信頼できる動作のために必要とされる相当な電力を提供ために使用される電源を含む。
【0005】
テープ及びディスク保存システムは一般に、データをコンパクトに記憶するために、従来のデータ重複解除及び圧縮方法を採用している。こうしたシステムは通常、重複解除され、圧縮されたデータの種々の断片、又は部分を異なる記憶要素上に(例えば、異なるディスクスピンドル、又は異なるテープに)分散させるため、アクセス時にデータを再現するために、それらの分散された部分を収集する必要がある。データの種々の部分が異なる要素に分散される理由は、データは通常、保存システム上に単に蓄積されるだけでり、すなわち、削除されないからである。すなわち、コンプライアンス(例えば、財務記録、及び/又は医療記録)のために、生成され得るバージョンのデータは全て、長期間にわたって保持される。
【0006】
重複解除の場合、データコンテナ(ファイル等)は、多数の部分にスライスされ、各部分は、その部分が保存システム上に以前に記憶されていたか否かを判断するために、検査される場合がある。例えば、ファイルの各部分について指紋を生成し、その指紋をデータベースから検索する場合がある。データベース上にその指紋が見付かった場合、そのデータベース上の指紋(すなわち、以前に記憶されたデータ)への参照のみが、記録される。一方、その指紋(ファイルの一部)がデータベース上になかった場合(以前に記憶されていなかった場合)、その部分は、システムに記憶され、場合によっては、システムの異なる要素上にも記憶される(その部分についての指紋は、データベースにも記憶される)。
【発明の概要】
【発明が解決しようとする課題】
【0007】
特定バージョンの保存されたファイルを読み出すための要求が、保存システムに与えられた場合を仮定する。テープ保存システムの場合、ファイルの全部分を読み出すために、複数のテープを読み出さなければならない場合があり、これは時間を消費する。ディスク保存システムの場合、ファイルの全部分を読み出すために、多数のディスクドライブに電力を供給し、読み出さなければならない場合がある。但し、電源を投入し、一度に動作させることが可能なディスクの数には制限がある場合がある。また、全てのディスクを次々とアクセスするためには、有限の時間が必要となる。
【課題を解決するための手段】
【0008】
[発明の概要]
本発明は、複数の高密度フラッシュデバイス、すなわち、小さなフォームファクタで大量のデータを記憶する能力を有するフラッシュデバイスから構成される大容量ストレージアレイを有するフラッシュベースのデータ保存ストレージシステムを提供することにより、従来技術の欠点を克服する。フラッシュデバイスは、例えば、比較的高密度のテープ又はディスクドライブに比べて1立方インチあたり実質的により大きな容量を有する低電力高性能データ保存システムを提供するように強固にパッケージングされたマルチレベルセル(MLC)フラッシュデバイスである。フラッシュベースのデータ保存システムは、データをコンパクトに記憶するために、従来のデータ重複解除及び圧縮方法を使用するように構成される場合がある。但し、従来のテープ及びディスク保存システムとは違い、MLCフラッシュデバイスのアクセス能力は、実質的により高速である。なぜなら、記憶媒体が電子メモリであるからである。すなわち、電子メモリの場合、磁気ディスクドライブのようなスピンアップタイムは必要ない。すなわち、MLCデバイスに電力を供給し、データを読み出した後、デバイスへの電力の供給はオフにされる。フラッシュベースの保存システムの処理能力は、いかなる機械的又は電気的デバイスに基づくシステムに比べても、実質的に優れている。さらに、フラッシュベースの保存システムは、その設置面積が小さく、テープ及び/又はディスク保存システムに比べて少ない電力しか消費しない。
【発明の効果】
【0009】
有利なことに、データ保存システムにおけるフラッシュデバイスの使用は、動作のために環境的に整備された領域を必要としない。すなわち、フラッシュデバイスは、テープ及び/又はディスク保存システムに比べて大きなフロア空間、及び/又は電力を必要することも、消費することもない固体半導体デバイスである。さらに、電力は、アクセスされるフラッシュデバイスへ供給するのみで足り、すなわち、システムの他の半導体デバイスは、オフにしたままであってよい。さらに、フラッシュベースの保存システムは、フラッシュデバイスに記憶されたデータへのランダムアクセスが高速かつ効率的であるため、ディスクドライブ保存システムに比べて高い能力を提供する。
【0010】
動作において、データセットは、データ保存ストレージシステムに伝送される。受信されたデータセットは、例えばMLCフラッシュデバイスのような電子記憶媒体のアレイに記憶される前に、重複解除され、圧縮される。データ保存ストレージシステムが、データアーカイブからデータを取り出す(読み出す)ためのデータアクセス要求を受け取ると、ストレージシステムはまず、要求されたデータが記憶されているデバイスを特定する。次に、特定されたデバイスの電源が投入され、そこからデータが読み出される。次に、そのデータは、要求元へ返される前に、圧縮解除され、復元される。その後、それらのデバイスの電源はオフにされる。
【0011】
本発明の上記の、及び他の利点は、添付の図面と併せて下記の説明を参照することにより、より良好に理解することができる。図面において、同様の符号は、同一の、又は機能的に類似の要素を指している。
【図面の簡単な説明】
【0012】
【図1】本発明の例示的実施形態に従って有利に使用される場合があるストレージシステムを含む環境を示す略ブロック図である。
【図2】本発明の例示的実施形態に従って有利に使用される場合があるストレージオペレーティングシステムを示す略ブロック図である。
【図3】本発明の例示的実施形態に従って有利に使用される場合があるストレージアーキテクチャの構成を示す略ブロック図である。
【図4】本発明の例示的実施形態に従ってデータ保存ストレージシステムにデータを記憶する手順の種々のステップの詳細を示すフロー図である。
【図5】本発明の例示的実施形態に従ってデータ重複解除を実施する手順の種々のステップの詳細を示すフロー図である。
【図6】本発明の例示的実施形態に従ってデータ保存ストレージシステムからデータを読み出す手順の種々のステップの詳細を示すフロー図である。
【発明を実施するための形態】
【0013】
[例示的実施形態の詳細な説明]
A.データ保存環境
図1は、本発明のデータ保存ストレージシステムを提供するように構成される場合があるストレージシステムを含む環境100を示す略ブロック図である。ストレージシステム120は、書き込み可能な永久的電子及び磁気記憶媒体における情報の編成に関連するストレージサービスを提供するコンピュータである。その目的のために、ストレージシステム120は、システムバス125により相互接続されたプロセッサ122、メモリ124、ネットワークアダプタ126、ストレージアダプタ128、及び電子記憶媒体140を含む。ストレージシステム120はさらに、ストレージオペレーティングシステム200を含み、ストレージオペレーティングシステム200は、情報をファイル、及び論理ユニット(LUN)のようなデータコンテナの階層構造として、電子及び磁気記憶媒体140、150上に論理編成するための仮想化システムを実施する。
【0014】
メモリ124は、本明細書に記載される種々の実施形態に関連するソフトウェアプログラム、及びデータ構造を記憶するために、プロセッサ及びアダプタによりアドレス指定可能な種々の記憶位置を含む。さらに、プロセッサ、及びアダプタは、ソフトウェアプログラムを実行し、データ構造を操作するように構成された種々の処理要素、及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム200は、その種々の部分が通常、メモリに存在し、処理要素により実行され、とりわけ、システム上で実行されるソフトウェアプロセスをサポートする種々のストレージオペレーションを実施することにより、ストレージシステムを機能的に編成する。当業者には明らかなように、本明細書に記載される種々の実施形態に関連する種々のプログラム命令の記憶、及び実行には、種々のコンピュータ読取可能媒体のような、他の処理手段、及び他の記憶手段を使用してもよい。
【0015】
電子記憶媒体140は、例えばストレージシステムへの電力供給が失われたときに、データを保持する能力を有する永久的記憶空間を提供するように構成される場合がある。したがって、電子記憶媒体140は、アレイへの何らかの電源喪失が発生した時に、メモリの最後の状態を保持するためのバックアップバッテリー、又は他の内蔵最終状態保持機能(例えば、フラッシュメモリ)を有する固体デバイス(SSD)の大容量ランダムアクセスメモリアレイとして実施される場合がある。SSDは、フラッシュメモリデバイス(「フラッシュデバイス」)を含む場合があり、フラッシュメモリデバイスは、例えば、良好な読出し能力を有するブロック志向の半導体デバイスである。すなわち、フラッシュデバイスに対する読み出し処理は、書き込み処理に比べて実質的に高速である。その主な理由は、それらの記憶態様にある。フラッシュデバイスのタイプには、各セルに単一ビットを記憶するシングルレベルセル(SLC)フラッシュデバイスと、各セルに複数ビット(例えば、2、3又は4ビット)を記憶するマルチレベルセル(MLC)とがある。MLCフラッシュデバイスは、SLCデバイスに比べて高密度であるが、例えば磨耗が生じるまで、MLCフラッシュデバイスに絶え間なく書き込む能力は、SLCデバイスの場合に比べて実質的により大きく制限される。電子記憶媒体の種々の部分は、仮想化システムによって処理される例えば書き込み命令のような特定のデータアクセス命令を、例えばシステムのコンシステンシー・ポイント(CP)のようなコンシステンシー・モデル・イベントの際に、電子及び磁気記憶媒体に記憶されるまで、一時的に記憶(「ロギング」)するために使用される不揮発性ログ(NVLOG146)として構成される場合がある。CPについては、1998年10月6日に発行された「Method for Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File System」と題するデビット・ヒッツ他による米国特許第5、819,292号に記載されており、その内容は、参照により本明細書に援用される。さらに、本発明の例示的実施形態において、電子記憶媒体は、署名データベース170、及び、例えばファイル175として構成されるブロック参照カウントデータ構造を含む場合がある。署名データベース170、及びブロックカウント参照ファイル175は、例えば、データ保存ストレージシステムへ書き込まれるデータに対して、後で詳しく説明する重複解除処理を実施するために使用される。
【0016】
ネットワークアダプタ126は、コンピュータネットワーク160を介してストレージシステム120をクライアント110に接続するために必要とされる機械的、電気的、及び信号的回路を含み、コンピュータネットワーク160は、ポイント・ツー・ポイント接続、又はローカル・エリア・ネットワークのような共有媒体を含む場合がある。クライアント110は、データベースアプリケーションのようなアプリケーション112を実行するように構成された汎用コンピュータであってもよい。また、クライアント110は、情報配送のクライアント/サーバモデルに従って、ストレージシステム120と情報をやりとりする場合がある。すなわち、クライアントが、ストレージシステムにサービスを要求すると、ストレージシステムは、ネットワーク160を介してパケットをやりとりすることにより、クライアントにより要求されたサービスの結果を返す場合がある。クライアントは、ファイルの形をした情報にアクセスする場合、TCP/IPを介して、コモン・インターネット・ファイル・システム(CIFS)プロトコル、又はネットワーク・ファイル・システム(NFS)プロトコルのようなファイルベースのアクセスプロトコルを有する種々のパケットを発行する場合がある。あるいは、クライアントは、lun又は ブロックの形をした情報にアクセスする場合、「SCSI(Small Computer Systems Interface)over TCP」(iSCSI)プロトコル、「SCSI over FC」(FCP)プロトコル、又は「SCSI over FC over Ethernet」(FCoE)プロトコルのようなブロックベースのアクセスプロトコルを有するパケットを発行する場合がある。
【0017】
ストレージアダプタ128は、ストレージシステムにおいて実行されるストレージシステム200と協働し、例えばハードディスクドライブ(HDD)として実施される磁気記憶媒体150へのアクセスを管理する。ストレージアダプタは、従来の高性能ファイバチャネル・シリアルリンク・トポロジのようなI/O相互接続構成を介してHDDと接続するための入出力(I/O)インタフェース回路を含む。情報は、ストレージアダプタにより読み出され、システムバス125を介してネットワークアダプタ126へ伝送される前に、必要に応じてプロセッサ122(又はアダプタ128)によって処理され、ネットワークアダプタ126において、情報は、パケットに成形され、クライアント110へ返される。例えば、データ保存ストレージシステムは、データの記憶に電子媒体を利用する場合がある。但し、代替実施形態では、HDDとSSDのハイブリッド媒体を使用する場合もある。有利に使用可能なハイブリッド媒体アーキテクチャの一例は、2008年2月12日に出願された「Hybrid Media Storage System Architecture」と題するジェフリー・エス・キメル他による米国仮特許出願第61/028,107号に記載されており、その内容は、参照により本明細書に援用される。
【0018】
B.ストレージオペレーティングシステム
図2は、本発明に有利に使用することができるストレージオペレーティングシステム200を示す略ブロック図である。ストレージオペレーティングシステムは、ネットワークドライバモジュール(例えば、イーサネットドライバ)、ネットワークプロトコルモジュール(例えば、イーサネットプロトコルモジュール、及びその支援搬送手段であるトランスポートコントロールプロトコルモジュール、及びユーザデータグラムダイアグラムプロトコルモジュール)、及びファイルシステムプロトコルサーバモジュール(例えば、CIFSサーバ、NFSサーバ等)を含む、ネットワークプロトコルスタック210として編成された一連のモジュールを含む。さらに、ストレージオペレーティングシステム200は、RAID(Redundant Array of Independent or Inexpensive Disks)プロトコルのような記憶媒体プロトコルを実施する媒体記憶モジュール220と、SCSI(Small Computer Systems Interface)プロトコルのような記憶媒体アクセスプロトコルを実施する媒体ドライバモジュール230とを含む。本明細書に記載されるように、媒体記憶モジュール220は、代替的に、パリティ保護(RAID)モジュールとして実施され、RAIDコントローラのような独立したハードウェアコンポーネントとして実施される場合がある。
【0019】
これらの記憶媒体ソフトウェアモジュールをネットワーク及びファイルシステムプロトコルモジュールに橋渡しするのは、ファイルシステム240として実施される場合がある仮想化システムである。いかなるタイプのファイルシステムを使用してもよいが、例示的実施形態として、ファイルシステム240は、データレイアウトフォーマットを使用し、本明細書に詳しく記載されるようなデータレイアウト技術を実施する場合がある。
【0020】
本明細書において、「ストレージオペレーティングシステム」という用語は通常、データアクセスを管理するストレージ機能を実施するためにコンピュータ上で動作するコンピュータ実行可能コードを意味し、ストレージシステム120の場合、汎用オペレーティングシステムのデータアクセスセマンティックを実施する場合がある。また、ストレージオペレーティングシステムは、マイクロカーネルとして実施されても、あるいは、UNIX(登録商標)、Windows NT(登録商標)又は変更可能な機能を有する汎用オペレーティングシステムの上で動作するアプリケーションプログラムとして実施されてもよく、当該機能は、本明細書に記載されるようなストレージアプリケーションのために構成される。
【0021】
さらに、当業者には分かるように、本明細書に記載される発明は、ストレージシステムとして実施され、又はストレージシステムを含むスタンドアロンのコンピュータ、及びその一部を含む、いかなるタイプの特殊目的(例えば、ファイルサーバ、ファイラ、又はストレージサービスを提供するアプライアンス)のコンピュータにも、汎用コンピュータにも適用することが可能である。さらに、本発明の教示は、限定はしないが、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアント又はホストコンピュータに直接取り付けられたディスクアセンブリを含む種々のストレージシステムアーキテクチャに適用することが可能である。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムの他に、それらの構成をも含むものとして、広い意味で解釈しなければならない。
【0022】
フラッシュデバイスに記憶されるデータは、ページ単位でアクセスされる(例えば、読み出し命令又は書き込み命令により)。ページは例えば、4キロバイト(KB)のサイズであるが、他のページサイズ(例えば、2KB)も、本発明に有利に使用可能である。ページ上に以前に書き込まれたデータを書き換えるためには、そのページを消去しなければならないが、一実施形態において、消去の単位は、複数(例えば、64)のページからなるブロック、すなわち、256kBのサイズの「フラッシュブロック」とされる場合がある。したがって、デバイスに記憶されたデータをページ単位でアクセス(読み出し、及び書き込み)することは可能であるが、デバイスのクリーニング又は消去は、ブロック単位で行われる。フラッシュデバイスの書込み処理が遅い一つの理由は、デバイス中の空き空間の管理が必要な点にある。すなわち、1ブロックのページに対する書込み処理が可能となるだけの十分な記憶空間が無い場合、有効データをデバイス中の他のブロックへ移動させ、ブロック全体のうちの幾つかのページを消去し、将来の割り当てに備えて開放することが出来るようにしなければならない。フラッシュデバイスのそのような書込み動作は一般に、書き込み処理能力が必要とされるシステムにおいて、書き込みの効率を制限する。
【0023】
C.ストレージアーキテクチャ
図3は、本発明のデータ保存ストレージシステムの一実施形態に従って使用される場合がある例示的な媒体記憶アーキテクチャ300の構成を示す略ブロック図である。このアーキテクチャは、フラッシュアレイ340のSSDの動作を制御し、ストレージシステム120の全体的記憶空間を提供するために、パリティ保護(RAID)モジュール320の上に配置されたファイルシステム240を含む。フラッシュ(SSD)コントローラ330は、そのそれぞれの媒体(フラッシュ、又はディスクのそれぞれ)にアクセスするためのストレージプロトコルを実施する。本明細書に詳しく記載されるように、アレイ340の各SSDは、例えばSSDコントローラ330aにより提供される関連変換モジュール335を含む。
【0024】
SSDコントローラ330は、ジオメトリ情報をRAIDモジュール320にエキスポートする。ここで、ジオメトリ情報は、デバイスのモデルタイプ、及び例えばモジュール320により使用されるデバイスブロック番号(dbn)に換算された、デバイスのサイズ(ブロック数)を含む。フラッシュアレイ340の場合、dbnは、例えば、SSDコントローラ330がRAIDモジュールに渡す論理アドレスであり、SSDの内部において、フラッシュ物理アドレスへの変換マッピングを受ける。SSDコントローラは、例えば、1セクタインタフェースあたり512バイトを提供し、セクタインタフェースは、例えば4KBのブロックサイズにおけるランダム書き込みアクセスのために最適化される場合がある。
【0025】
ファイルシステム240は、例えば、電子記憶媒体140のフラッシュアレイ340に対する読み出し及び書き込み処理能力を向上させるデータレイアウト技術を実施する。例えば、ファイルシステムは、ファイルのようなデータコンテナに対する高速書き込みアクセスを可能にするデータレイアウトフォーマットを使用し、それによって、フラッシュアレイ340に対するランダム(及びシーケンシャル)データアクセスオペレーションの効率的なサービス提供を可能にする。その目的のために、ファイルシステムは例えば、一組のWrite Anywhereアルゴリズムを実施することにより、フラッシュアレイ340のSSD上の空きの利用可能空間における任意の場所へのデータの配置を可能にする場合がある。
【0026】
フラッシュアレイ340は、例えばSSDから構成されるため、ランダムアクセスは、安定している(すなわち、HDDのように機械的位置決めに基づくものではない)。したがって、ファイルシステム240は、SSDと協働し、アレイのシーケンシャル読み出し能力を低下させることなく書き込み処理能力を向上させる、フラッシュアレイ340のためのデータレイアウトエンジンを提供する。
【0027】
一実施形態において、ファイルシステム240は、例えば4KBブロックを使用するブロックベースのフォーマット表現を有し、インデックスノード(「inode」)を使用して例えばファイルのようなデータコンテナを表現する、メッセージベースのシステムである。本明細書において、ファイルシステムは、任意単位のオブジェクト記憶(例えば、ファイルブロック番号)から物理記憶(例えば、物理ボリュームブロック番号)へのマッピングを実施する。媒体の利用可能な記憶空間へ記入するための小さな割り当て(例えば、4KB)を可能にするために、マッピングの細粒度は、例えばブロック単位とされる。但し、当業者には分かるように、媒体記憶アーキテクチャは、ストレージ上で実施される如何なる種類のオブジェクトにも使用可能なものでなければならず、また、ブロック単位の配置が可能となる良好な細粒度を提供するだけの十分な変換を実施するものでなければならない。
【0028】
また、ファイルシステムは、例えば種々のデータ構造を使用して、アレイの種々の記憶装置上における自身のレイアウトを表すメタデータを記憶する場合がある。ファイルシステム240は、フラッシュアレイ340のSSDのような記憶装置に記憶された情報に対するファイルベースのアクセスに使用されるセマンティック機能を提供する。さらに、ファイルシステムは、記憶された情報に対するブロックベースのアクセスに使用されるボリューム管理機能を提供する。すなわち、ファイルシステム240は、ファイルシステムセマンティックを提供する他に、(1)記憶装置のアグレゲーション、(2)装置の記憶帯域幅のアグレゲーション、(3)ミラーリング、及び/又はパリティ(RAID)のような信頼性保証、及び(4)シンプロビジョン(Thin-Provision)のような種々の機能を提供する。
【0029】
後者に関し、ファイルシステム240は、例えば媒体記憶モジュール220の、パリティ保護(RAID)モジュール320とさらに協働し、フラッシュアレイ340に対するストレージオペレーションを制御する。フラッシュアレイ340の場合、アレイのSSDに例示的に関連する信頼性制御の階層がある。例えば、各SSDは、ページ単位で誤り訂正符号(ECC)機能を内蔵している。その結果、フラッシュブロック内のページについて、低レベルの信頼性制御が得られる。それらの装置のうちの1以上が故障したときにエラーからの復旧を可能にするために、複数のSSD内においてフラッシュブロックを実施する場合、さらに高レベルの信頼性制御がさらに実施される。
【0030】
高レベルの信頼性制御は、例えば、RAIDモジュール320により設定されるRAIDレベル実施形態のような冗長構成として実施される。情報の記憶は、好ましくは、ボリューム(複数可)上のボリュームブロック番号空間の全体的論理構成を定義するように互いに協働する1以上のSSDを含む1以上のストレージボリュームとして実施される。ここで、RAIDモジュール320は、ボリューム内のSSDを、1以上のパリティグループ(例えば、RAIDグループ)として編成し、パリティ計算、及び各グループのSSDへのデータの配置に使用されるトポロジー情報を管理する。RAIDモジュールはさらに、例えば、RAID1、4、5、及び/又は6実施形態のような1以上のRAID実施形態に従ってRAIDグループを構成し、それによって、例えば1以上のSSDに故障が発生した時、SSDに対する保護を提供する。すなわち、RAID実施形態は、RAIDグループにおける所与の数のSSDにわたるデータ「ストライプ」の書込み、及びストライプ化データに関する例えばパリティのような冗長情報の適切な記憶により、データ記憶の信頼性/完全性を向上させる。
【0031】
フラッシュアレイ340の場合、RAIDモジュール320は例えば、複数のSSDを1以上のパリティグループ(例えば、RAIDグループ)として編成し、パリティ計算、及び各グループの装置へのデータの配置に使用されるトポロジー情報を管理する。その目的のために、RAIDモジュールは、データをRAIDグループ内にブロックのストライプとしてさらに編成する。その際、1つのストライプは、複数のSSDにわたって対応する位置にあるフラッシュページを含む場合がある。すなわち、1つのストライプは、RAIDグループ全体にわたって、SSD0上の第1のページ0、SSD1上の第2のページ0、等に広がる場合があり、パリティは、装置の種々のページにわたって分散される場合がある。なお、ファイル内の所定数のブロック(例えば、8つのブロック)ごとに1つのブロックをパリティブロックとする論理RAID実施形態が得られるような他のRAIDグループ構成も可能である。
【0032】
ボリュームは、仮想ボリュームとして実施される場合があり、例えばフラッシュアレイ340及びディスクアレイ350の1以上のアグレゲートとしてさらに編成される場合がある。アグレゲート及び仮想ボリュームについては、2008年8月5日に発行された「Extension of Write Anywhere File System Layout」と題するジョン・ケイ・エドワード他による米国特許第7,409,494号に記載されており、その内容は、参照により本明細書に援用される。簡単に言えば、アグレゲートは、ファイルシステムによってストレージシステムの1以上の仮想ボリューム(vvol)に分配されるRAIDグループのようなSSDの1以上のグループを含む。各vvolは、ファイルシステムレイアウト実施形態のアルゴリズムを利用しつつ、「ポイント・イン・タイム」データイメージ(すなわち、スナップショット)オペレーション機能のような、独自の論理的性質を有する。アグレゲートは、独自の物理的ボリュームブロック番号(pvbn)空間を有し、そのpvbn空間の中に、ブロックアロケーション構造のようなメタデータを保持する。各vvolは、独自の仮想ブロック番号(vvbn)空間を有し、そのvvbn空間の中に、ブロックアロケーション構造のようなメタデータを保持する。
【0033】
各vvolは、vvolにより使用中のあらゆるブロックを保持するアグレゲート中の「隠し」ファイル(ユーザにとってアクセス不能)であるコンテナファイルに関連する場合がある。ファイルシステム240は、vvol上で動作する場合、RAIDモジュール320により提供されるトポロジー情報を使用して、vvbn(例えば、vvbn X)をSSD上のdbn位置に変換する。vvbnは、そのvvol上におけるvvbn Xを有するブロックが、コンテナファイル中のfbn Xの位置において見付けることが出来るように、コンテナファイル中のファイルブロック番号(fbn)位置を特定する。ファイルシステムは、コンテナファイルの間接ブロックを使用して、そのfbnをアグレゲート内の物理的vbn(pvbn)位置に変換し、その後、そのブロックは、RAIDモジュール320により供給されるトポロジー情報を使用して、記憶装置から読み出すことができる。
【0034】
例示的実施形態において、RAIDモジュール320は、データの書き込みアロケーションを実施するときに、すなわち、フラッシュアレイ340のvvbn記憶空間における空きの未割り当て空間を探すときにファイルシステム240により使用すべきトポロジー情報をエキスポートする。このトポロジー情報は、例えば、pvbnからdbnへのマッピングを含む。
【0035】
フラッシュアレイ340の場合、書き込みアロケーションを実施するためにファイルシステムにより使用されるブロックアロケーションアカウンティング構造は、第1のデータレイアウトフォーマットを成すような、例えば逐次的順序による、アレイへのデータの書き込みが可能となるようなサイズを有する。その目的のために、ファイルシステム240は、アレイ340において、例えば256KBフラッシュブロック単位で、順番に書き込みアロケーションを実施する。すなわち、フラッシュアレイにおけるvvbnは、例えば、256KBフラッシュブロックにマッピングされる。フラッシュブロックが、ストレージオペレーティングシステムによって消去され、「空き」として(例えば、空きvvbnとして)指定された後、データは、フラッシュブロックにおける64個の4KBページ(例えば、ページ0からページ63)に順番に書き込むことができ(CPの書き込み命令に従って)、その時点で、次の空きフラッシュブロックがアクセスされ、書き込み処理は、ページ0からページ63まで順番に発生する。ファイルシステム240により使用される、例えば空きブロックマップのようなアカウンティング構造275は、例えば、セグメントクリーニングプロセス270により管理され、アロケーションに使用可能な空きフラッシュブロックを示す。
【0036】
例えば、セグメントクリーニングは、フラッシュブロックに間接的にマッピングされる1以上の選択された領域を開放するために実施される。有効データ(「有効ページ」)を含むそれらの選択された領域のページは、異なる領域へ移動され、選択された領域は、後続の再使用に備えて開放される。セグメントクリーニングは、断片化された空き空間を統合し、例えば基礎となるフラッシュブロックに対する書き込み処理能力を向上させる。このように、ファイルシステム240の動作を活用することで、フラッシュアレイ340に対するセグメント・クリーニングのようなWrite Anywhere機能が得られる。例えば、セグメントクリーニングプロセス270は、SSDを「クリーニング」(クリア)するときに、ファイルシステム内の書き込みアロケータと協働し、バッファ及びinodeツリーを順番に検査する(歩く)スキャナとして実施される場合がある。
【0037】
D.データ保存の処理
本発明の種々の実施形態によれば、複数のフラッシュデバイスから構成される大容量ストレージアレイを有するフラッシュベースのデータ保存ストレージシステムが得られる。フラッシュデバイスは、例えば小さなフォームファクタとなるように、強固にパッケージングされ、テープドライブ又はディスクドライブに比べて1立方インチあたりより多くの容量を有する低電力高性能データ保存システムを提供するマルチレベルセル(MLC)フラッシュデバイスである。フラッシュベースのデータ保存システムは、データをコンパクトに記憶するために、従来のデータ重複解除及び圧縮方法を利用するように構成される場合がある。但し、従来のテープ及びディスクアーカイブシステムとは違い、MLCフラッシュデバイスのアクセス処理能力は、より高速である。なぜなら、記憶媒体が電子メモリであるからである。すなわち、電子メモリの場合、磁気ディスクドライブに必要とされるようなスピンアップタイムは必要ない。すなわち、電力がMLCデバイスに供給され、データが読み出された後、デバイスへの電力の供給はオフにされる。フラッシュベースの保存システムの処理能力は、いかなる機械的又は電子的デバイスに基づくシステムよりも優れている。さらに、フラッシュベースの保存システムは、その設置面積が小さく、テープ及び/又はディスク保存システムに比べて電力の消費も少ない。
【0038】
有利なことに、データ保存システムにおけるフラッシュデバイスの使用は、動作のために、環境的に整備された領域を必要としない。すなわち、フラッシュデバイスは、テープ及び/又はディスク保存システムに比べて、大きなフロア空間、及び/又は電力を必要とせず、それらを消費することもない固体半導体デバイスである。さらに、電力は、アクセスされるフラッシュデバイスへ供給するのみで足り、すなわち、システムの他の半導体デバイスへの電力は、オフのままにすることができる。さらに、フラッシュベースの保存システムは、ディスクドライブ保存システムに比べて高い処理能力を提供する。なぜなら、フラッシュデバイスに記憶されたデータへのランダムアクセスは、高速かつ効率的であるからである。
【0039】
動作において、データセットは、例えばクライアント110からデータ保存システムへ伝送される。受信されたデータセットは、例えばMLCフラッシュデバイスのような電子記憶媒体のアレイに記憶される前に、データ保存ストレージシステムにより重複解除及び圧縮される。データ保存ストレージシステムが、データアーカイブからデータを取り出す(読み出す)ためのデータアクセス要求を受け取ると、SSDコントローラ330はまず、要求されたデータが記憶されているデバイスを特定する。次に、SSDコントローラ330により、特定されたデバイスの電源が投入され、そこからデータが読み出される。次に、データは、要求元へ返される前に、圧縮解除され、復元される。その後、それらのデバイスの電源はオフにされる。
【0040】
図4は、本発明の例示的実施形態に従ってデータをデータ保存ストレージシステムに記憶する手順の種々のステップの詳細を示すフロー図である。手順400は、ステップ405から開始され、ステップ410へ進み、そこで、データアーカイブに記憶すべき新たなデータセットが受信される。例えば、この新たなデータセットは、例えばファイルシステムのバックアップイメージのような長期記憶のために、データアーカイブに記憶される。データセットは、データ保存ストレージシステムに対する従来のファイル転送プロトコル、及び/又はデータバックアッププロトコルを使用して受信される場合がある。例示的実施形態として、受信されたデータセットは、次に、後で図5を参照して下で説明されるステップ500において重複解除される。なお、代替実施形態として、データセットは、重複解除されない場合もあり、及び/又は手順500に記載したもの以外の技術を使用して重複解除される場合もある。したがって、重複解除されるデータセットの説明は、単なる例として解釈すべきである。
【0041】
データセットの重複解除が完了した後、ステップ415において、次にデータセットは、圧縮される。データセットは、如何なる圧縮技術を使用して圧縮されてもよく、例えば、ZIP、LZW等を使用して圧縮される場合がある。なお、代替実施形態として、データセットは、圧縮されない場合もある。従って、データセットの圧縮に関する説明は、単なる例として解釈すべきである。次に、ステップ420において、重複解除され圧縮されたデータセットは、データ保存ストレージシステムの種々のSSDに記憶される。そして、手順はステップ425において終了する。
【0042】
図5は、本発明の例示的実施形態によるデータ重複解除手順500の種々のステップの詳細を示すフロー図である。手順500は、ステップ505から開始され、ステップ510へ進み、そこで新たなデータセットが、例えばデータ保存ストレージシステムによって受信される。例示的実施形態において、受信されたデータセットは、データ保存ストレージシステムに対する新たなテープバックアップデータストリームを含む場合がある。例えば、ファイルシステム240は、下で説明される例示的な重複解除技術を実施する。但し、本発明の代替実施形態では、任意の重複解除技術が使用される場合があることに留意すべきである。したがって、本明細書に記載される重複解除技術は、単なる例として解釈すべきである。
【0043】
新たなデータセットの受信に応答し、ステップ515において、ファイルシステム240は、そのデータセットを複数のブロックに切り分ける(分割する)。ファイルシステム240は、任意の許容可能な形のデータ分割を使用して、データセットを切り分けることができる。例示的な実施形態において、ファイルシステム240は、データを例えば32KBのサイズの固定サイズのブロックに切り分ける。但し、代替実施形態では、更に別の、及び/又は異なるサイズが使用される場合もあることに留意すべきである。また、本発明は、データセットからデータのブロックを生成する他の技術と共に使用される場合がある。したがって、固定サイズのブロックの使用に関する説明は、単なる例として解釈すべきである。
【0044】
次に、ステップ520において、ブロックの署名が生成される。例えば、この署名は、ブロックの中に含まれるデータをハッシュ化し、得られたハッシュ値を署名として使用することにより生成される場合がある。当業者には明らかなように、衝突を避けるために、すなわち、異なる内容を持つブロックが、同じハッシュ値にハッシュ化されることを避けるために、強いハッシュ関数を選択しなければならない。但し、代替実施形態では、署名を生成するために異なる技術が使用される場合もあることに留意すべきである。したがって、ブロック内のデータのハッシュ化に関する説明は、単なる例として解釈すべきである。
【0045】
ブロックの署名の生成が完了した後、ステップ525において、ファイルシステム240は、生成された署名が署名データベース170の中にあるか否かを判断する。これは、例えば、従来のハッシュテーブルルックアップ技術を使用して達成される場合がある。署名が署名データベース中に記憶されていなかった場合、手順500は、ステップ530へ分岐し、そこでファイルシステム240は、その署名を署名データベースにロードする。署名が署名データベース中になかった場合、その署名に関連するブロックは、以前に記憶されてなく、すなわち、これが、そのブロックの最初の発生である。さらに、ステップ532において、そのブロックが記憶される。ステップ535において、データセット中にさらに別のブロックがあるか否かの判断がなされる。まだ別のブロックがある場合、手順500は、ステップ520へループバックし、そこでファイルシステム240は、データセット中の次のブロックの署名を生成する。そうでなければ、手順500は、ステップ540において終了する。
【0046】
一方、生成された署名が署名データベース270中にあった場合、ステップ545において、ファイルシステム240は、到来するデータセット中のブロックを、以前に記憶されたブロックへのポインタに置き換える。すなわち、ファイルシステム240は、重複データブロックを以前に記憶されたデータブロックへのポインタに置き換えることにより、データの重複を解消する。例えば、データストリームABAは、重複解除の結果、AB<以前に記憶されたAへのポインタ>となる場合がある。ポインタのサイズは一般に1ブロックのサイズよりも実質的に小さいため(一般に数桁程度)、記憶空間の実質的節約が図られる。次に、ステップ550において、ファイルシステム240は、カウンタファイル175を参照するために、そのブロック中の適当なカウンタをインクリメントする。
【0047】
手順はステップ535へと続き、データセット中にさらに別のブロックがあるか否かの判断がなされる。データセット中にさらに別のブロックがなければ、手順は、ステップ535において終了する。一方、さらに別のブロックがある場合、手順は、ステップ520へループバックする。図6は、本発明の例示的実施形態に従ってデータ保存ストレージシステムからデータを読み出す手順600の種々のステップの詳細を示すフロー図である。手順600は、ステップ605から開始され、ステップ610へと続き、そこで、クライアントから、データ保存ストレージシステムに記憶されたデータの読み出しを求めるデータアクセス要求が受信される。次に、ステップ615において、要求されたデータを記憶しているストレージシステム中のSSDが特定される。次に、ステップ620において、特定されたSSDに電力が供給される。MLC SSDの機能を利用することで、電力をSSDに供給する必要があるのは、SSDに対するI/O処理が行われている間のみとなる。その結果、本発明の例示的実施形態によれば、データ保存ストレージシステムの全体的な電力要件は、劇的に低減される。
【0048】
ステップ625において、要求されたデータは、特定されたSSDから読み出される。この読み出しオペレーションは、MLC SSDのための従来の読み出し技術を使用して実施される場合がある。次に、ステップ630において、読み出されたデータが圧縮解除される。この圧縮解除は、例えば、手順400のステップ415からの圧縮を反転させる技術を使用する。すなわち、同じ圧縮技術が、圧縮解除にも使用される。当業者には明らかなように、これは、例えば、対称、非対称といった圧縮のタイプによって変わる場合がある。もしデータセットがデータ保存ストレージシステムに最初に記憶されたときに暗号化されなかった場合、データを圧縮解除する必要はなく、ステップ630は省略される場合がある。
【0049】
さらに、ステップ635において、読み出されたデータは復元される。重複解除は、データセットがデータ保存ストレージシステムに最初に書き込まれるときの任意選択的ステップであるから、ステップ635は任意選択なものである。次に、ステップ640において、要求されたデータ、すなわち、今や圧縮解除され、復元された形(すなわち、元の形)を有する要求されたデータは、クライアントへ返される。これは、例えば、要求されたデータをネットワーク160を介して転送するための適当な要求を、ネットワークプロトコルスタック210により生成することによって達成される場合がある。電源を投入されたSSDは、その後、ステップ645において、電源をオフにされる。その後、手順600は、ステップ650において終了する。
【0050】
上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、明らかなように、それらの利点の一部または全部を維持しながら、記載した実施形態に対し、他の変更、及び修正を加えることも可能である。例えば、本明細書に記載した種々の構成要素、及び/又は構造は、コンピュータ上で実行されるプログラム命令を有するコンピュータ読取可能媒体を含むソフトウェアとして実施することも、ハードウェアとして実施することも、ファームウェアとして実施することも、あるいはそれらの組み合わせとして実施することも可能であることは、明確に予期される。さらに、各モジュールは、プログラマブルプロセッサにおいて実行されるソフトウェアとして実施される場合も、ハードウェアとして実施される場合も、あるいは、ハードウェアとソフトウェアの組み合わせとして実施される場合もある。すなわち、代替実施形態において、モジュールは、例えば、マイクロプロセッサ、又は、例えばプログラマブルゲートアレイ又は特定用途向け集積回路(ASIC)のようなコントローラの中に実現される論理回路として実施される場合がある。したがって、本明細書の説明は、単なる例として解釈すべきであり、本発明の範囲を制限するものではない。したがって、添付の特許請求の範囲の目的は、そのような変更や修正も全て、本発明の真の思想及び範囲の中に収めるようにカバーすることにある。

【特許請求の範囲】
【請求項1】
データ保存ストレージシステムであって、
ファイルシステムを含むストレージオペレーティングシステムを実行するように構成されたプロセッサに相互接続されたマルチレベルセルフラッシュデバイスのアレイを含み、前記ファイルシステムは、当該データ保存ストレージシステムに記憶すべきデータセットの受信に応答し、(1)受信されたデータセットを重複解除し、(2)受信されたデータセットを圧縮し、(3)受信されたデータセットを前記マルチレベルセルフラッシュのアレイに記憶するように構成される、データ保存ストレージシステム。
【請求項2】
前記ファイルシステムは、データの要求の受信に応答し、(4)前記マルチレベルセルフラッシュデバイスのうち要求されたデータを記憶している1以上のマルチレベルセルフラッシュデバイスを特定し、(5)特定されたマルチレベルセルフラッシュデバイスに電力を供給し、(6)前記特定されたマルチレベルセルフラッシュデバイスから前記要求されたデータを読み出し、(7)前記特定されたマルチレベルセルフラッシュデバイスから電力を取り除くようにさらに構成される、請求項1に記載のデータ保存ストレージシステム。
【請求項3】
前記ファイルシステムは、(8)読み出された前記要求されたデータを圧縮解除し、(9)前記読み出された要求されたデータを復元するようにさらに構成される、請求項2に記載のデータ保存ストレージシステム。
【請求項4】
前記データセットは、バックアップデータストリームを含む、請求項1に記載のデータ保存ストレージシステム。
【請求項5】
前記重複解除は、
前記受信されたデータセットを複数のブロックに切り分けるステップと、
前記複数のブロックのそれぞれについて署名を生成するステップと、
生成された署名が署名データベース中にあるか否かを判断するステップと、
前記生成された署名が前記署名データベース中にあるという判断に応答し、前記生成された署名を有するブロックを、前記生成された署名を有する、以前に記憶されたブロックへのポインタに置き換えるステップと、
前記生成された署名が前記署名データベース中にないという判断に応答し、前記生成された署名を前記署名データベースに入れ、前記生成された署名を有するブロックを記憶するステップと
を含む、請求項1に記載のデータ保存ストレージシステム。
【請求項6】
データ保存ストレージシステムであって、
ファイルシステムを含むストレージオペレーティングシステムを実行するように構成されたプロセッサに相互接続されたマルチレベルセルフラッシュデバイスのアレイを含み、前記プロセッサは、前記ストレージオペレーティングシステムからのコマンドに応答し、前記フラッシュデバイスのアレイへの電力を制御するように構成されたフラッシュコントローラに相互接続され、前記ファイルシステムは、(1)データセットを受信し、(2)受信されたデータセットを重複解除し、(3)重複解除されたデータセットを前記マルチレベルセルフラッシュデバイスのアレイに記憶するように構成される、データ保存ストレージシステム。
【請求項7】
前記ファイルシステムは、(4)前記マルチレベルセルフラッシュデバイスのアレイのうちデータアクセス要求により要求されたデータを記憶している一組のマルチレベルセルフラッシュデバイスを特定し、(5)前記要求されたデータを読み出し、(6)読み出された前記要求されたデータを復元し、(7)前記読み出された要求されたデータを返すようにさらに構成される、請求項6に記載のデータ保存ストレージシステム。
【請求項8】
前記マルチレベルセルフラッシュデバイスのアレイのうちデータアクセス要求により要求されたデータを記憶している一組のマルチレベルセルフラッシュデバイスは、読み出しに先立って、前記フラッシュコントローラにより、電源を投入される、請求項7に記載のデータ保存ストレージシステム。
【請求項9】
前記マルチレベルセルフラッシュデバイスのアレイのうちデータアクセス要求により要求されたデータを記憶している一組のマルチレベルセルフラッシュデバイスは、前記データアクセス要求により要求されたデータが読み出された後、電源を切断される、請求項7に記載のデータ保存ストレージシステム。
【請求項10】
前記重複解除は、
前記受信されたデータセットを複数のブロックに切り分けるステップと、
前記複数のブロックのそれぞれについて署名を生成するステップと、
生成された署名が署名データベース中にあるか否かを判断するステップと、
前記生成された署名が前記署名データベース中にあるという判断に応答し、前記生成された署名を有するブロックを、前記生成された署名を有する、以前に記憶されたブロックへのポインタに置き換えるステップと、
前記生成された署名が前記署名データベース中にないという判断に応答し、前記生成された署名を前記署名データベースに入れ、前記生成された署名を有するブロックを記憶するステップと
を含む、請求項6に記載のデータ保存ストレージシステム。
【請求項11】
データ保存ストレージシステムであって、
ファイルシステムを含むストレージオペレーティングシステムを実行するように構成されたプロセッサに相互接続されたマルチレベルセルフラッシュデバイスのアレイを含み、前記プロセッサは、前記ストレージオペレーティングシステムからのコマンドに応答し、前記フラッシュデバイスのアレイへの電力を制御するように構成されたフラッシュコントローラに相互接続され、前記ファイルシステムは、(1)データセットを受信し、(2)受信されたデータセットを圧縮し、(3)圧縮されたデータセットを前記マルチレベルセルフラッシュデバイスのアレイに記憶するように構成される、データ保存ストレージシステム。
【請求項12】
前記ファイルシステムは、(4)前記マルチレベルセルフラッシュデバイスのアレイのうちデータアクセス要求により要求されたデータを記憶している一組のマルチレベルセルフラッシュデバイスを特定し、(5)前記要求されたデータを読み出し、(6)読み出された前記要求されたデータを圧縮解除し、(7)前記読み出された要求されたデータを返すようにさらに構成される、請求項11に記載のデータ保存ストレージシステム。
【請求項13】
データ保存ストレージシステムにおいて実行する方法であって、
前記データ保存ストレージシステムに記憶すべきデータセットを受信するステップと、
受信されたデータセットに対し、重複解除手順を実施するステップと、
重複解除されたデータセットを圧縮するステップと、
圧縮されたデータセットをマルチレベルセルフラッシュデバイスのアレイに記憶するステップと、
前記データ保存ストレージシステムのクライアントから、記憶されたデータに対する読み出し要求を受信するステップと、
コントローラにより、要求されたデータを記憶している一組のマルチレベルセルフラッシュデバイスを判定するステップと、
前記一組のマルチレベルセルフラッシュデバイスに電力を供給するステップと、
前記一組のマルチレベルセルフラッシュデバイスから前記要求されたデータを読み出すステップと、
読み出されたデータを圧縮解除するステップと、
圧縮解除されたデータを復元するステップと、
前記読み出し要求に応答するステップと、
前記一組のマルチレベルセルフラッシュデバイスへの電力を取り除くステップと
からなる方法。
【請求項14】
前記重複解除手順は、受信されたデータセットを複数の所定サイズのブロックに切り分けることを含む、請求項13に記載の方法。
【請求項15】
前記データセットは、バックアップデータストリームを含む、請求項13に記載の方法。
【請求項16】
前記重複解除されたデータセットを圧縮するステップは、対称型圧縮技術を使用することを含む、請求項13に記載の方法。
【請求項17】
前記重複解除手順は、
前記受信されたデータセットを複数のブロックに切り分けるステップと、
前記複数のブロックのそれぞれについて署名を生成するステップと、
生成された署名が署名データベース中にあるか否かを判断するステップと、
前記生成された署名が前記署名データベース中にあるという判断に応答し、前記生成された署名を有するブロックを、前記生成された署名を有する、以前に記憶されたブロックへのポインタに置き換えるステップと、
前記生成された署名が前記署名データベース中にないという判断に応答し、前記生成された署名を前記署名データベースに入れ、前記生成された署名を有するブロックを記憶するステップと
を含む、請求項13に記載の方法。
【請求項18】
クライアントからデータ保存ストレージシステムに記憶すべきデータセットを受信するステップであって、前記データ保存ストレージシステムが、マルチレベルセルフラッシュデバイスのアレイを制御するように構成されたコントローラに相互接続されたプロセッサを含む、クライアントからデータ保存ストレージシステムに記憶すべきデータセットを受信するステップと、
前記プロセッサにおいて実行されるストレージオペレーティングシステムの1以上のモジュールにより、受信されたデータセットを重複解除するステップと、
前記コントローラにより、重複解除されたデータセットを前記マルチレベルセルフラッシュデバイスのアレイに記憶するステップと
からなる方法。
【請求項19】
受信されたデータセットを圧縮するステップをさらに含む、請求項18に記載の方法。
【請求項20】
前記受信されたデータセットを圧縮するステップは、対称型圧縮技術を使用することを含む、請求項19に記載の方法。
【請求項21】
前記受信されたデータセットを重複解除するステップは、
前記受信されたデータセットを複数のブロックに切り分けるステップと、
前記複数のブロックのそれぞれについて署名を生成するステップと、
生成された署名が署名データベース中にあるか否かを判断するステップと、
前記生成された署名が前記署名データベース中にあるという判断に応答し、前記生成された署名を有するブロックを、前記生成された署名を有する、以前に記憶されたブロックへのポインタに置き換えるステップと、
前記生成された署名が前記署名データベース中にないという判断に応答し、前記生成された署名を前記署名データベースに入れ、前記生成された署名を有するブロックを記憶するステップと
を含む、請求項18に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2012−525633(P2012−525633A)
【公表日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2012−508479(P2012−508479)
【出願日】平成22年4月29日(2010.4.29)
【国際出願番号】PCT/US2010/001261
【国際公開番号】WO2010/126595
【国際公開日】平成22年11月4日(2010.11.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.ETHERNET
【出願人】(303039534)ネットアップ,インコーポレイテッド (27)
【Fターム(参考)】