パフォーマンスmdadm raid 5,6,10およびZFS zraid、zraid2、ZFSストライプミラー

SSD Sandisk CloudSpeedでのZFSおよびmdadm + ext4のパフォーマンスのテスト
ローカルディスクアレイを作成するためのテクノロジーを選択します。

このテストの目的は、仮想マシンが4つの本稼働SSDディスクに配置されている場合、仮想マシンが実際の速度でrawファイルイメージで動作できるかを調べることです。 テストは32スレッドで実行され、実際のハイパーバイザーの動作状態をほぼ作成します。

画像




fioツールを使用して測定を行います。

オプション--buffered = 0 --direct = 1がmdadm + ext4に選択されました。 ZFSはこれらのオプションの使用方法を知らないため、ZFSの結果はわずかに高くなることが予想されます。 比較のために、テストの1つとmdadmを使用したバージョンでこれらのオプションを無効にします。

10GBファイルでテストを実施します。 おそらく、このサイズは、通常の操作中にファイルシステムのパフォーマンスを評価するのに十分です。 もちろん、テストデータの量を増やすと、ファイルシステム上の追加のキャッシュおよび予測ツールをすべて無効にするため、すべてのテストの全体数は大幅に減少します。 しかし、そのような目的はありません。 多数の模擬テストを行う必要はありませんが、実際に近いものが必要です。

テストベンチとして、次の構成を使用します。


メーカー:
Supermicro X9DRT-HF +

プロセッサー:
2xIntel®Xeon®CPU E5-2690 0 @ 2.90GHz C2
技術プロセス-32 nm
コアの数-8
スレッド数-16
プロセッサー基本周波数-2.90 GHz
最大ターボ周波数-3.80 GHz
20 MBキャッシュSmartCache
バス速度-8 GT / s QPI
TDP-135 W

RAM:
16x 16384 MB
タイプ:DDR3 Registered(Buffered)
周波数:1333 MHz
メーカー:Micron

ディスクコントローラー:
LSI SAS 2008 RAID ITモード

ソリッドステートドライブ:
4x 1.92Tb SSD Sandisk CloudSpeed ECO Gen. II
SSD、2.5インチ、1920 GB、SATA-III、読み取り:530 Mb / s、書き込み:460 Mb / s、MLC
要求されたIOPS任意読み取り/書き込み76000/14000 IOPS
MTBF 2,000,000時間

カーネル:
Linux 4.13.4-1-pve#1 SMP PVE 4.13.4-26(月、2017年11月6日11:23:55 +0100)x86_64

ZFSバージョン:
v0.7.3-1

IOスケジューラー:

cat /sys/block/sdb/queue/scheduler [noop] deadline cfq 

テストツール:
fio-2.16

アレイ構築オプション


#1つのディスクにZFSアレイを作成するためのパラメーター

 zpool create -f -o ashift=12 /dev/sdb 

#zraid(ZFSのraid5アナログ)を作成するためのパラメーター

 zpool create -f -o ashift=12 test raidz /dev/sdb /dev/sdc /dev/sdd /dev/sde 

#zraid2(ZFSのraid6アナログ)を作成するためのパラメーター

 zpool create -f -o ashift=12 test raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde 

#ストライプミラーを作成するためのパラメーター(ZFSのRAID10アナログ)

 zpool create -f -o ashift=12 test mirror sdb sdc mirror sdd sde 

#ZFSアレイの一般的なパラメーター

 ZFS set atime=off test ZFS set compression=off test ZFS set dedup=off test ZFS set primarycache=all test 

arcでは、すべてのメモリの1/4または52 GBが割り当てられます

 cat /etc/modprobe.d/ZFS.conf options ZFS zfs_arc_max=55834574848 

#Mdadm raid5アレイ作成オプション

 mdadm --zero-superblock /dev/sd[bcde] mdadm --create --verbose --force --assume-clean --bitmap=internal --bitmap-chunk=131072 /dev/md0 --level=5 --raid-devices=4 /dev/sd[bcde] 

#Mdadm raid6アレイ作成オプション

 mdadm --zero-superblock /dev/sd[bcde] mdadm --create --verbose --force --assume-clean --bitmap=internal --bitmap-chunk=131072 /dev/md0 --level=6 --raid-devices=4 /dev/sd[bcde] 

#mdadm 5/6アレイの一般的なパラメーター

 echo 32768 > /sys/block/md0/md/stripe_cache_size blockdev --setra 65536 /dev/md0 echo 600000 > /proc/sys/dev/raid/speed_limit_max echo 600000 > /proc/sys/dev/raid/speed_limit_min 

#mdadm raid10配列を作成するためのパラメーター

 mdadm --zero-superblock /dev/sd[bcde] mdadm --create --verbose --force --assume-clean --bitmap=internal --bitmap-chunk=131072 /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde] 

#GPTマークアップテーブルを作成するためのパラメーター

 parted -a optimal /dev/md0 mktable gpt mkpart primary 0% 100% q 

#ext4ファイルシステムを作成するためのパラメーター

 mkfs.ext4 -m 0 -b 4096 -E stride=128,stripe-width=256 /dev/md0p1 (/dev/sdb)  stripe-width=256  raid6  raid10  stripe-width=384  raid5 

#ext4ファイルシステムをfstabにマウントするパラメーター

 UUID="xxxxx" /test ext4 defaults,noatime,lazytime 1 2 


結果




 fio --directory=/test/ --name=read --rw=read --bs=4k --size=200G --numjobs=1 --time_based --runtime=60 --group_reporting --ioengine libaio --iodepth=32 #  ext4 +  --buffered=0 --direct=1 



読み取りテストは、ZFSファイルシステムの動作に対するARCバッファーの影響を明確に示しています。 ZFSはすべてのテストで均一かつ高速を示します。 --buffered = 0 --direct = 1をオフにすると、ZFSによるmdadm raid10 + ext4の速度は、遅延とIOPSの点で3倍遅くなり、10倍遅くなります。

zraidに追加のディスクが存在しても、ZFSの速度は大幅に向上しません。 ZFS 0 + 1はzraidと同じくらい遅いです。

 fio --directory=/ --name=test --rw=randread --bs=4k --size=10G --numjobs=1 --time_based --runtime=60 --group_reporting --ioengine libaio --iodepth=32 --buffered=0 --direct=1 #  ext4 +  --buffered=0 --direct=1 



ここでは、ARCはZFSを保存しません。 数字は情勢を明確に示しています。

 fio --directory=/ --name=test --rw=write --bs=4k --size=10G --numjobs=1 --group_reporting --ioengine libaio --iodepth=32 --buffered=0 --direct=1 #  ext4 +  --buffered=0 --direct=1 



繰り返しになりますが、バッファはZFSがすべての配列で均一な結果を生成するのに役立ちます。 mdadm raid6は、明らかにraid5とraid10の前を通過します。 バッファーおよびキャッシュされたmdadm raid10は、ZFSのすべてのオプションで2倍の最高の結果をもたらします。

 fio --directory=/ --name=test --rw=randwrite --bs=4k --size=10G --numjobs=1 --group_reporting --ioengine libaio --iodepth=32 --buffered=0 --direct=1 #  ext4 +  --buffered=0 --direct=1 



写真はランダムな読書に似ています。 ZFSは、そのバッファーとキャッシュを支援しません。 彼は恐ろしい力と融合します。 特に怖いのは、ZFS上の単一ドライブの結果であり、一般的にZFSの結果は嫌です。

mdadm raid5 / 6により、すべてが期待されます。 raid5は低速、raid6はさらに低速、raid10は単一のディスクよりも約25〜30%高速です。 バッファリングを使用したRaid10は、配列をスペースに入れます。

結論


誰もが知っているように、ZFSは高速ではありません。

他の多くの重要な機能や利点が含まれていますが、これはmdadm + ext4よりも大幅に遅いという事実を否定するものではありません。キャッシュやバッファー、予測システムなどの操作を考慮してもです。 この部分に驚きはありません。

ZFSバージョンv0.7.xはそれほど速くなりませんでした。

おそらくv0.6.xより高速ですが、mdadm + ext4からはほど遠いでしょう。

zraid / 2はraid5 / 6の改良版ですが、パフォーマンスの面ではないという情報を見つけることができます。

zraid / 2または0 + 1を使用すると、単一のZFSドライブよりも高速なアレイを実現できません。

最良の場合、速度はこれより遅くなることはなく、かなり速くなることもありません。 最悪の場合、余分なディスクがあると全体の速度が低下します。 ZFSのRAIDは、パフォーマンスではなく信頼性を高める手段です。

大きなARCが存在しても、同じext4に比べてZFSのパフォーマンスギャップは補正されません。

ご覧のとおり、50 GBのバッファーであっても、ZFSがEXT4の弟に追いつくのを大幅に支援することはできません。 特にランダムな書き込みおよび読み取り操作で。

仮想化にZFSを使用する必要がありますか?

誰もが自分で答えます。 個人的に、私はmdadm + raid10を支持してZFSを放棄しました。

ご清聴ありがとうございました。

Source: https://habr.com/ru/post/J344204/


All Articles