1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. メモリ基本講座【番外編】SSDの寿命を延ばすために必要なWAF(書き込み効率)のおはなし(第2回)~Pliops XDPを使った計測~

TECHブログ

メモリ基本講座【番外編】SSDの寿命を延ばすために必要なWAF(書き込み効率)のおはなし(第2回)~Pliops XDPを使った計測~

メモリ基本講座【番外編】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

パフォーマンス測定ツール

今回の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にご興味をお持ちになりましたらこちらまでご連絡ください。

 

NVMe SSDに関するお問い合わせはこちらへ

 

このブログのシリーズ

関連ブログ