以下のURLよりビデオによる解説をご覧頂けます。 http://vimeo.com/112521792
20141021版とほぼ同じ。NDFS->DSFが異なる>
エラスティック・デデュープ エンジン(Elastic Dedupe Engine)は、ソフトウェアで実現されているDSFの機能であり、キャパシティ・ティア(HDD)と パーフォーマンス・ティア(SSD)に於けるデータの重複排除を実現している。 データのシーケンシャルな流れに対して、入力時に16Kを単位としてSHA-1ハッシュを用いてフィンガープリント(指紋情報)が作成される。 このフィンガープリント作成処理は、データの入力時にのみ実施され、書込まれるブロックのメタデータの一部として永続的に記録される。 (注:) Nutanix社の初期製品に於いては、4Kを単位としてフィンガープリント作成処理が行われていたが、テストの結果、メタデータのオーバーヘッドの現象と重複削除に最も良い組み合わせは16Kであることが判明した。 重複排除されたデータが4Kを単位としてキャッシュに読込まれる。
データの再読込みが必要となる、バックグラウンド・スキャンを用いた伝統的なアプローチとは反対に、 Nutanix社は、入力される時にインラインでフィンガープリント作成処理を行う。 キャパシティ・ティアに於いて重複排除される可能性のある重複データために、再スキャンや再読込みを施す必要無く、本質的に重複しているデータが削除することができる。
エラスティック・デデュープ・エンジン(Elastic Dedupe Engine)が拡張性を実現し、ローカルVMのI/Oリクエストを扱うのかを以下に示す。
FIGURE.17>>
フィンガープリント生成処理は、64K以上のI/Oサイズを持ったデータの入力時に実行される。 Intel Accelerationを利用してSHA-1計算が行われるため、CPUの使用率を非常に低く抑えることが出来る。 I/Oサイズが小さい為に入力時にフィンガープリント作成処理が行われなかった場合、バックグラウンドでフィンガープリント作成処理が実行される。エラスティック・デデュープ・エンジンは、キャパシティ・ティア(HDD)とパーフォーマンス・ティア(SSD)の両階層に跨って存在している。 データの重複が判定された時、同じフィンガープリントを持った複数のコピーを踏まえて、バックグラウンド・プロセスがNDFS MapReduce?フレームワーク(キュレータ:Curator)を用いて重複したデータを削除する。
読込み中のデータにとって、マルチ・ティア/プールキャッシュであるNDFSコンテンツ・キャッシュに引き出される。同じフィンガープリントを持ったデータに対する、それに続く全リクエストは、キャッシュから直接読み出される。 I/O Path OverviewのContent Cacheサブセクションにcontent CacheとPool Structureに関してより詳しく説明されている。
Elastic Dedupe EngineとNDFS I/O Pathが、どの様に相互連携しているのかの例を以下に示す。