SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

ONTAPのStorage Efficiency機能紹介 ~データ圧縮編~

ストレージ / HCI
2021.03.08
みなさん、こんにちは。
SB C&S 技術担当の河村です。
 
近年、ディスクの大容量化やストレージ自体のパフォーマンス向上により、市場競争が激しくなっています。それに比例して各メーカーの価格競争も進んでおり、ストレージにかかるコストは着実に下がってきています。しかし、世界におけるデータそのものの量は飛躍的に増大しており、同様に企業が抱えるデータの量も増大しているため、結果として企業のIT資産の中で、ストレージにかかるコストが一番高額になるといったケースもあります。
 
そんな中、NetAppはStorage Efficiencyという、データを効率化する圧縮や重複排除などの機能を他社に先駆けて導入し、データ容量の削減を劇的に向上させることで、業界をリードしてきました。
 
今回から複数回に渡って、ONTAPのStorage Efficiencyについて、各機能のアーキテクチャをご紹介していきたいと思います。
第1回となる本記事では、「データ圧縮」機能について説明させていただきます。
 
※本記事で説明するONTAPのバージョンは9.7になります。
 
 データ圧縮とは?             
 
データ圧縮とは、データの内容はそのままに、容量のみを小さくする技術です。
圧縮の仕組みは各メーカーによって異なり、データ容量をできるだけ小さくするため、様々な仕組みが開発されています。
 
compression01.png
 
 ONTAPのデータ圧縮の特長             
 
圧縮の手法として、データを1つの塊としてとして圧縮する手法がありますが、解凍時に圧縮データ全体を解凍する必要があるため、データの一部を読み取りたいといった場合、不要なデータまで解凍する分、余計な処理が発生してしまいます。この場合、データ容量が大きくなればなるほど、パフォーマンスへの影響も大きくなります。
 
ONTAPのデータ圧縮01.png
 
ONTAPのデータ圧縮では、こういった問題を回避するため、データを「Compression Groups」と呼ばれる小容量のグループごとに分割して圧縮します。こうすることでデータの一部を読み取る場合でも、データ全体ではなく、小容量のグループを解凍すれば良いので、解凍処理が最適化されます。
また、グループ化されたデータは、どの程度圧縮されるかといった圧縮効率の判定をしており、圧縮効率が悪ければデータ圧縮は行いません。こうすることで無駄な処理を削減し、システムにかかるオーバーヘッドを低減しています。
 
ONTAPのデータ圧縮02.png
 
 Compression Groups             
 
ONTAPでは、データを小容量のグループごとに分割して圧縮します。
この小容量のグループを「Compression Groups」と呼びます。
 
Compression Groupsは「8KB」「32KB」の2種類があり、後の章で説明する圧縮方法の選択によって、どちらのグループで分割するかが決定されます。
 
例えば、15KBのファイルを「8KB」のCompression Groupsに分割する場合、8KBと7KBに分割され、どちらのCompression Groupsも圧縮効率判定に移るという処理が行われます。
 
なお、どちらのグループの場合でも、ファイルサイズが8KB以下のファイルについては圧縮効率の観点から圧縮対象外となります。
 
●元のファイルが8KBより大きい場合
Compression Group01.png
 
●元のファイルが8KB以下の場合
Compression Group02.png
 
 圧縮の実行タイミング             
 
ONTAPのデータ圧縮処理では下記の2つの実行タイミングが存在します。
・インライン処理
・ポストプロセス処理
ディスクへの書き込みI/Oの低減、ディスク容量、ピーク時間を避けた運用などの要件を考慮し、管理者はどちらか、または両方の実行タイミングを選択します。
 
●インライン処理
インライン処理では、ストレージにデータが送信され、ディスクに書き込まれるまでの間に圧縮を実行します。ディスクに書き込まれる前に圧縮が完了しているため、ディスクへの書き込みI/Oの低減、ディスク消費スペースやSnapshotの容量削減に対する効果を即座に発揮することができます。一方で、圧縮と同時にスループットを最適化するため、Compression Groupsの部分的な上書き処理といったパフォーマンスが重視される部分については、ポストプロセス処理にて実行されることとなり、インライン処理では実行されません。
そのため、インライン処理を設定する場合、デフォルトだとポストプロセス処理も同時に設定することになります。
ただし、ポリシーの設定によりインライン処理のみを実行することも可能です。
※AFFシリーズではポストプロセス処理がサポートされていないため、ポストプロセス処理はスキップされる形となります。
 
インライン処理.png
 
●ポストプロセス処理
ポストプロセス処理では、ストレージにデータが送信され、ディスクに書き込まれた後、設定されたスケジュールにより、定期的に圧縮を実行します。任意のタイミングで実行することができるため、運用のピーク時を避けて圧縮を実行することで、システムへの影響を最小限に抑えることができます。
インライン処理が設定されている場合、ポストプロセス処理では、インライン処理で圧縮されなかったデータのみを圧縮します。
 
ポストプロセス処理.png
 
 圧縮方法             
 
ONTAPのデータ圧縮には下記の2種類が存在します。
・アダプティブ圧縮
・セカンダリ圧縮
読み取り処理のパフォーマンス、圧縮効果の要件を考慮し、管理者はどちらかの圧縮方法を選択します。
 
●アダプティブ圧縮
アダプティブ圧縮では、データを「8KB」のCompression Groupsに分割して圧縮をします。小容量単位で圧縮することにより、解凍するデータが小さくなるため、読み取りパフォーマンスに優れています。そのため、ワークロードの大部分がランダムライトの場合や、ランダムライトとシーケンシャルライトが混在している場合に有効な圧縮方式となります。なお、ポストプロセス処理によるアダプティブ圧縮では、Compression Groupsの圧縮効率が50%を超えない場合、圧縮を行いません。
 
アダプティブ圧縮.png
 
ただし、インライン処理によるアダプティブ圧縮でのみ、圧縮効率が25%以上50%以下のデータを対象として圧縮を行います。さらに、ONTAPのファイルシステムであるWAFLで処理する4KBブロックから余るデータを1つの4KBブロックにまとめることでデータの効率化を図ります。
※圧縮効率が50%を超える場合、通常の圧縮処理が行われます。
 
インラインアダプティブ圧縮.png
 
●セカンダリ圧縮
セカンダリ圧縮では、データを「32KB」のCompression Groupsに分割して圧縮をします。アダプティブ圧縮と比べ、大きい容量単位で圧縮することにより、圧縮効果が高くなります。そのため、ワークロードのほとんどが32KBより大きいラージシーケンシャルI/Oの場合に有効な圧縮方式となります。なお、セカンダリ圧縮では、Compression Groupsの圧縮効率が25%を超えない場合、圧縮を行いません。
 
セカンダリ圧縮.png
 
特定の実行タイミングで実施可能な圧縮方法は1種類のみとなり、インライン/ポストプロセス処理と組み合わせて、選択できる圧縮方法は6通りあります。用途に応じて圧縮方法を選択できることもONTAPのデータ圧縮における強みではないかと思います。
 
マトリックス.png
 
 データ圧縮のサポートマトリックス            
 
データ圧縮は、NetAppの全ての製品で利用することができます。
ただし、例えばオールフラッシュストレージであるAFFシリーズの場合、SSDに対する書き込みI/Oを抑えて、SSDの寿命を延ばすために、デフォルトでインラインアダプティブ圧縮が有効になっているといったように、製品によって若干の違いも存在します。
 
データ圧縮を利用できる製品とデフォルト設定(ONまたはOFF)について、以下の表をご参照ください。
(2021年3月現在)
 
マトリックス02.png
 
FAS All SSD・・・FASシリーズのアグリゲートを全てSSDで構成
Flash Pool・・・SSDとHDDを組み合わせ、アクセス頻度の高いホットデータをキャッシュデータとしてSSDへ配置する構成
 
また、データ圧縮機能は、ONTAPに標準搭載されている機能です。
これだけの機能がNetApp製品を購入するだけで無償利用できるということもお客様にとって非常に有難い点かと思います。
 
 最適なシステム            
 
もともとデータ圧縮機能は、大容量なシステムに適していましたが、現在では、バージョンアップによる性能の向上により、高いI/Oを要求がされるシステムでの利用も可能となりました。例えば、「バックアップデータの保存場所」のようなセカンダリストレージとして利用される環境では、パフォーマンスよりも高い圧縮効率を実現したいケースが多いですが、そういった場合にデータ圧縮は最適です。NetApp社が出したシナリオデータでは、データベースのバックアップにて、65%もの容量を削減できたという報告があります。
 
また、「ファイルサービス」のような環境でも、高い圧縮効率はそのままに、スループットは10%程度しか低下しないなど、プライマリストレージでも利用できることが分かるシナリオデータも報告されています。
 
※あくまでシナリオデータ上の結果のため、実際に導入する環境によって数値が変わる可能性があることについてご注意下さい。
 
データ圧縮は、次回解説予定の重複排除やインラインデータコンパクションといった他のStorage Efficiencyとも併用できるうえ、SnapMirrorなどのレプリケーション機能でも圧縮したデータを保持したまま同期することが可能です。
 
ONTAPの各種機能と併せて利用することで、より最適化された形でのデータ管理を提供できます。
 
 まとめ            
 
・データを小容量のグループ(Compression Groups)に分割して圧縮することで、圧縮処理の効率化が図られており、解凍処理が最適化される
・事前に圧縮効率をチェックし、効率の悪いデータについては圧縮しないことで、システムにかかるオーバーヘッドを低減している
・8KBより大きなファイルを対象として圧縮する
・ディスクへの書き込みI/Oを低減するインライン処理と運用ピーク時を避けて任意のタイミングで実行できるポストプロセス処理がある
・ランダムI/Oに適したアダプティブ圧縮と圧縮効率の高いセカンダリ圧縮がある
・重複排除やインラインデータコンパクションといった他のStorage Efficiencyと併用できる
・SnapMirrorなどのレプリケーション機能においても圧縮データが継承される
 
【SB C&S NetAppプロモーションTwitterアカウント】
 
NetAppに関するさまざまな情報を公開しています。
皆様フォロー宜しくお願いいたします。
 
TwitterアプリからはこちらのQRコードもどうぞ。
QR.png

資料ダウンロード

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 第1技術部 2課
河村 龍