NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
     
ネットアップのインライン データ コンパクションとは
Skip Shapiro
Skip Shapiro
ネットアップ
All Flash FAS および ONTAP フラッシュ担当テクニカル マーケティング エンジニア

NetApp® ONTAP® 9には、「インライン データ コンパクション」という新しいStorage Efficiency機能が追加されています。この機能のコンセプトはまだあまり知られていませんので、その仕組みやネットアップの他のStorage Efficiency機能との連携について簡単に説明したいと思います。

インライン データ コンパクションはデータに対して経時的に、つまり、データがストレージ コントローラに到達したときに作用します。データがまだコントローラのメモリ内にあるときには、通常、各データ チャンクによって物理ストレージ上の4KBのブロック全体が消費されますが、このチャンクを縮小させます。このコンパクションにより、1つの4KBの物理ブロックが複数のチャンクによって消費されるようになります。ちょうど、スーツケースやトランク、リュックサックなどに荷物を詰め込む場合と似ています。多数のゼロ(空のスペース)で埋められている可能性の高いI/Oを選び、空のスペースを取り除いて、それを活用することができます。これが、コンパクションの原理です。

インライン データ コンパクションは、ONTAP整合ポイント(CP)作成プロセスの書き込み時に実行されます。これは、テトリスで遊んでいるときにラインを消すようなものです。ちょうどテトリスのブロックのように小さなI/Oがあります。それらのI/Oをストレージ メディアに保存する前に、複数のI/Oを素早く組み合わせて1つの物理ボックスにすることでコンパクションを実現できます。ネットアップでは、このインライン データ コンパクションのために複数の特許を出願しました。ネットアップが使用しているのは、革新的な手法です。コンパクションでは、HDDのみのアグリゲートまたはNetApp Flash Poolアグリゲートが使用され、NetApp All Flash FASシステムではデフォルトで有効になっています。また、FASシステムではオプションの機能として有効にできます。どちらの場合も、コンパクションのために追加のコストは発生しません。コンパクションは圧縮や重複排除と同じようにONTAPの中核機能です。

コンパクションは、付加的なStorage Efficiencyコンポーネントです。これは、重複排除とはまったく方向性の異なる機能ですが、インライン アダプティブ圧縮とは非常に優れた補完関係を持っています。インライン アダプティブ圧縮では、データの圧縮率が50%を超える場合、圧縮グループが作成されます。データの圧縮後に、複数の小さなチャンクを組み合わせたり大きなチャンクと小さなチャンクを組み合わせたりして1つの物理ブロックにすることにより、圧縮データをさらに縮小できる可能性があります。コンパクションはCPプロセスの一部なので、それのみではCPUオーバーヘッドをほとんど必要としません(最大で1~2%)。コントローラのCPU使用率が1~2%増えても、そのことで問題が発生するとは思えません。もし問題が発生するとすれば、そのシステムはすでに過負荷状態にあったと考えられます。

圧縮とコンパクションを併用することには大きなメリットがありますが、それらを連動させることは必須ではありません。たとえば、多数の小さなファイルが含まれているボリュームには、コンパクションは有効かもしれませんが、圧縮はあまり役に立たないでしょう。

論理的には、データがストレージ コントローラに到達するときに、Storage Efficiencyプロセスが次のように機能します(すべての効率化機能が有効になっている場合)。

  1. 最初に、ゼロしか含まれていないすべてのブロックが検出されます。これらのブロックには何も書き込まれず、メタデータの更新だけが行われます。基本的に、これらのブロックは参照カウントでしかありません。
  2. 次に、インライン アダプティブ圧縮が適用されます。このプロセスは、ブロックを50%以上圧縮可能かどうかを確認する非常に効率的な方法です。49%未満の圧縮を試みてCPUサイクルが浪費されることはありません(この場合、コンパクションではスペースを削減できません)。
  3. 次に、インライン重複排除が適用されます。この機能は、ONTAP 8.3.2で導入されたときには、メモリ内のデータだけが比較され、インラインで重複が排除されていました。ONTAP 9.0では、フィンガープリント ハッシュ ストアのサイズが拡張され、直近でストレージ メディアに書き込まれたデータも含まれるようになりました。重複排除によって削減されるスペースを最大化するためのベストプラクティスは、一定のスケジュールでバックグラウンド(ポストプロセス)の重複排除も実行することです。
  4. 最後に、データ コンパクションが実行されます。アダプティブ圧縮によって圧縮されたデータまたは圧縮に関する調査が行われなかったデータがコンパクションに適しています。そのため、小さな非圧縮ファイルやインライン アダプティブ圧縮によって約75%以上圧縮されたデータが適していると言えます。コンパクション プロセスでは、複数のそのようなチャンクが1つの4KBの物理ブロックに適合するように組み合わされ、ブロックがストレージに送信されます。圧縮率が高いほど、またファイルが小さいほど、コンパクション率が高くなります。つまり、小さなブロックと圧縮とコンパクションを組み合わせることで、非常に大きな効果を得ることができます。

コンパクションが持つ影響力は、使い始めるまでは分かりにくいかもしれません。インライン コンパクションはCPの試行錯誤に基づくプロセスです。このプロセスでは、最初に到達した100のI/Oをサンプリングして、コンパクション率が確認され、次に到達した100のI/Oにそのコンパクション率が適用されます。コンパクション率が上昇するとコンパクション率が引き上げられ、コンパクション率が低下するとコンパクション率が引き下げられます。次のCPになると、プロセスは最初からやりなおされます。これは、最小限のCPU使用率で最大限のコンパクション率を実現することを目指すために繰り返されるプロセスです。

図1)ネットアップのインラインStorage EfficiencyはデータがONTAPスタックを通過するときに適用される

inline-data-compaction - image

出典:ネットアップ、2016年

必要に応じて、インライン データ コンパクションだけを使用する(圧縮や重複排除は使用しない)ことも可能です。たとえば、ファイル環境が小さく、ファイルが約2KB以下であるとします。そのような小さなファイルは圧縮できず、重複排除でもあまりスペースを削減できるとは思えません。しかし、インライン データ コンパクションでは、複数のファイルを4KBの物理ブロックに保存できる場合にスペースを削減できます。

論理データ レプリケーションの面では、ソース ボリュームとデスティネーション ボリュームに同じ効率化ポリシーが適用されている場合、スペースの削減が保持され、解凍も不要です。その例として、すべてのStorage Efficiencyが有効(デフォルト設定)になっていて、NetApp SnapVault®デスティネーションとして使用されているFASシステムにデータをレプリケートするAll Flash FASシステムがあります。重複排除、適応圧縮、およびインライン データ コンパクションによるスペースの削減を保持するには、デスティネーション システムでもそれらのポリシーのすべてが有効になっている必要があります。

逆に、デスティネーションFASシステムでどのスペース削減ポリシーも有効になっていない場合、ONTAP 9 All Flash FASシステムからレプリケートされたデータは、デスティネーションに書き込まれるときにサイズが大きくなります。圧縮されたブロック、重複排除されたブロック、およびコンパクションされたデータは存在しません。そのため、スペースの削減を保持するには、ソース ボリュームとデスティネーション ボリュームに同じStorage Efficiencyポリシーが適用されている必要があります。ちなみに、ネットアップが推奨するベストプラクティスは、ソースAll Flash FASシステムからデータをレプリケートするときに、デスティネーション ボリュームですべての効率化機能を有効にすることです。これにより、デスティネーションでスペースの削減が保持されます。

まとめると、インライン データ コンパクションによって論理データが変更されることはありません。これは単にデータをより効率的に詰め込む機能です。小さなファイルしか使用しない環境でなければ、コンパクションにより、インライン アダプティブ圧縮の効果を大幅に高めることができます。I/Oに空きスペースが含まれている場合は、コンパクションが役に立ちます。データを保存するための空きスペースを低いCPUオーバーヘッドで増やすことができるインライン データ コンパクションは、All Flash FASシステムで非常に簡単に使用できる機能です。

Skip Shapiroは、ネットアップのテクニカル マーケティング エンジニアとして、NetApp All Flash FAS、Flash Pool、およびFlash Cacheテクノロジを担当しています。

2016年 10月

お問い合わせ   |   購入方法   |   フィードバック   |   採用情報  |   登録   |   プライバシー ポリシー   |   © 2016 NetApp