メモリ基本講座【番外編】SSDの寿命を延ばすために必要なWAF(書き込み効率)のおはなし(第2回)~Pliops XDPを使った計測~
本ブログは メモリ基本講座【番外編】SSDの寿命を延ばすために必要なWAF(書き込み効率)のおはなし(第1回)の続きです。Pliops社のXDPカードを使用した計測結果を紹介します。
前回のブログでもお伝えしましたが、XDPはランダムアクセスをシーケンシャルアクセスに変換してSSDに書き込みを行います。また、インライン圧縮によりストレージ容量の節約も行うことができます。今回はこの機能について紹介していきたいと思います。
図1. XDPのイメージ図
出典: Servants international Corporation,Pliops Xtreme Data Processor XDP
およびMicron, Image Gallery
目次
シーケンシャルアクセスとランダムアクセスの違い
測定の前にシーケンシャルアクセスとランダムアクセスの違いについて説明します。
SSDにはデータを保存するためのNANDフラッシュメモリが搭載されており、この中には無数のセルが存在していて、ひとつひとつのセルには書き換え上限が決まっています。
シーケンシャルアクセスはセルに対して規則正しく順番にデータを読み書きするのに対して、ランダムアクセスは指定されたセルにデータを読み書きします。
このランダムアクセスでの読み書きだと同じセルにばかり何度もデータを書き込む可能性があり、書き込み頻度の少ないセルよりも先に劣化して使用不可になってしまう可能性があります。
そこで、XDPのランダムアクセスをシーケンシャルアクセスに変換する機能を使うことで、セルに均等に書き込みが行えるため、SSDの寿命を延ばすことができます。
図2. シーケンシャルライトとランダムライト
評価対象SSD
今回の検証ではMicron社の7450を使用します。7450はNVMeのメインストリーム製品で、パフォーマンスとコストのバランスがとれたSSDとなります。
表1. 7450PRO 7.6TBのスペック
Random Read(4KB) | 1,000K IOPS:15W |
---|---|
Random Write(4KB) | 215K IOPS:15W |
コントローラ | Micron |
NAND | Micron 3D TLC 176L |
TBW(Random 4KB) | 14,000TB |
DWPD | 1 |
MTTF | 200万時間 |
Warranty | 5年間 |
7450でのパフォーマンスについては以下の記事でも紹介しています。
もし少しでもご興味をお持ちになりましたら検証機のお貸出しもできますので、お気軽にお問合せください。
評価するサーバ
弊社で所有している検証機サーバで評価しました。
OSはXDPで動作がサポートされているubuntu 20.04.1 LTS(Kernel 5.8.0-50-generic)を選択しています。
表2. サーバスペック
サーバ | Supermicro AS-2024US-TRT |
---|---|
CPU | AMD EPYC 7302 3.0GHz 16 Core |
メモリ | DDR4-3200 128GB |
OS | ubuntu 20.04.1 LTS Kernel 5.8.0-50-generic |
図3. AS-2024-US-TRT
出典:SUPERMICRO A+ Server 2024US-TRT (Complete System Only)
パフォーマンス測定ツール
今回のSSDのパフォーマンス測定では、fio-3.28を使用しました。
図4. fioのバージョン
XDPのインストール
XDPではハードウェアRAIDを構成可能で、RAID5をサポートしています。
今回はMicron 7450PRO 7.6TBを3本使用してRAID5を組んでいます。
XDPを利用するためのインストーラが用意されており、以下のコマンドにて簡単にRAIDを構成することが可能です。
sudo ./xdp-installer install --level=5 --resources="/dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1" --vhc=0 --enable-set-hugepage
表3. xdp-installerオプション
オプション | 内容 |
---|---|
--level | RAIDのレベルを指定(今回はRAID5) |
--resources | XDPで管理するストレージを指定 |
--vhc | 仮想ホットキャパシティを有効にするかの指定 (デフォルトは0で無効) |
--enable-set-hugepage | インストーラが必要なhuge pagesを自動的に計算 |
RAID5の確認
pliocliコマンドにてRAID5が構成されているか確認をします。
図5. RAID構成の確認
fioのコマンドオプション
今回はランダムライトでの書き込み速度の測定を行います。fioコマンドの内容については割愛します。
表4. fio測定条件
アクセス方法 | ランダムライト |
---|---|
ブロックサイズ | ランダム:4KB |
QD | ライト:128 |
測定容量 | 7450:7.6TB x3(RAID5) |
[global]
filename=/dev/pliops-bd0
size=100%
buffer_compress_percentage=67
buffer_compress_chunk=4096
refill_buffers=1
ioengine=libaio
direct=1
randrepeat=0
norandommap=1
random_generator=lfsr
thread
group_reporting=1
exitall_on_error
log_avg_msec=200
[XDP-4kRW]
rw=randwrite
bs=4k
iodepth=128
numjobs=16
図6. fioのコマンド
fioで測定してみる
fioのコマンド実行
以下のコマンドを実行し、fioでパフォーマンス測定をします。
fio xxxx.fio
xxxx.fio は図5.で表示したコマンドが記載されたファイルになります。
今回はランダムライトでのAverageパフォーマンスを測定しました。
パフォーマンス結果
測定前にnvme formatコマンドを実行し、フォーマット後にfioを実行しています。
XDPでのランダムライトの結果は図7.を見て分かる通り、データシートスペック以上のパフォーマンスが出ていることが分かりました。XDPはRAID5で7450PROはDisk単体での速度となっており単純比較はできませんが、それでもRAID5を組んだXDPの方が早いことが分かります。
図7. XDPを使用したランダムライトの測定結果
また、図8.のXDPを使用したストレージ監視の結果から、平均圧縮率2.93で論理データ23.05TBが圧縮されてアレイに書き込まれたため物理データ7.86TBが使用されたことが分かりました。
図8. Pliops XDPを使用したストレージ監視
まとめ
今回はXDPを使った計測でランダムライトをシーケンシャルライトに変換する機能とデータを圧縮して書き込む機能を紹介しました。
XDPを使用することで不規則に書き込まれるランダムデータを規則正しいシーケンシャルデータに変換して書き込んでくれるため、書き込み効率(WAF)が良くなります。また、XDPでインライン圧縮されたデータがSSDに書き込まれるため容量も節約することができました。
この機能はXDPをインストールするだけで自動的に利用することが可能であり、XDPでハードウェアRAIDを構成してCPUへの負荷を減らすこともできるためオススメの製品となっています。
今回はWAFを計測するために必要なSSD 9400を複数本用意できませんでしたが、用意ができましたらXDPを使用したときのWAFの値をお伝えします。
もしXDPにご興味をお持ちになりましたらこちらまでご連絡ください。