zfs-on-linuxでzfsを試す
スポンサーリンク
ハードウェア
- CPU: i7-6700k
- RAM: 16GB
- HDD: TOSHIBA DT01ACA300 (3TB)
ディスクIO性能ベンチマーク
fio
のインストール
$ sudo pacman -S fio
「LinuxでもCrystalDiskMarkぽいディスクベンチマークしたい」のfio設定ファイルを若干改変したもを作成(benchmark.fio
)してベンチマークする
[global] ioengine=libaio iodepth=1 size=3g direct=1 runtime=10 directory=/mnt/hdd stonewall [Seq-Read] bs=1m rw=read [Seq-Write] bs=1m rw=write [Rand-Read-4K] bs=4k rw=randread [Rand-Write-4K] bs=4k rw=randwrite [Rand-Read-4K-QD32] iodepth=32 bs=4k rw=randread [Rand-Write-4K-QD32] iodepth=32 bs=4k rw=randwrite
ベンチマークの実行は下のコマンド
$ sudo fio benchmark.fio
ext4
フォーマット&マウント
$ sudo mkfs -t ext4 /dev/sda1 $ sudo mount /dev/sda1 /mnt/hdd
ベンチマーク結果
READ: bw=174MiB/s (183MB/s), 174MiB/s-174MiB/s (183MB/s-183MB/s), io=1743MiB (1828MB), run=10005-10005msec WRITE: bw=154MiB/s (161MB/s), 154MiB/s-154MiB/s (161MB/s-161MB/s), io=1540MiB (1615MB), run=10005-10005msec READ: bw=592KiB/s (606kB/s), 592KiB/s-592KiB/s (606kB/s-606kB/s), io=5920KiB (6062kB), run=10004-10004msec WRITE: bw=1450KiB/s (1485kB/s), 1450KiB/s-1450KiB/s (1485kB/s-1485kB/s), io=14.3MiB (15.0MB), run=10119-10119msec READ: bw=1505KiB/s (1541kB/s), 1505KiB/s-1505KiB/s (1541kB/s-1541kB/s), io=14.9MiB (15.6MB), run=10129-10129msec WRITE: bw=1531KiB/s (1567kB/s), 1531KiB/s-1531KiB/s (1567kB/s-1567kB/s), io=15.1MiB (15.8MB), run=10074-10074msec
zfs
インストール
$ yay -S zfs-linux ==> Error: Could not find all required packages: zfs-utils=0.8.3 (Wanted by: zfs-linux)
zfs-linux
はzfs-utils
のバージョンが追いついていなかったのでzfs-linux-git
で試す。
$ yay -S zfs-linux-git
partedでext4用に作成したパーティションを削除後に下記を実行
$ ls -lh /dev/disk/by-id/ | grep sda lrwxrwxrwx 1 root root 9 1月 26 16:58 ata-TOSHIBA_DT01ACA300_Z3FGRANGS -> ../../sda lrwxrwxrwx 1 root root 9 1月 26 16:58 wwn-0x5000039ff4d4c893 -> ../../sda
ZFSプールの作成
$ sudo zpool create -m /mnt/hdd tank ata-TOSHIBA_DT01ACA300_Z3FGRANGS $ zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT tank 2.72T 596K 2.72T - - 0% 0% 1.00x ONLINE - $ df -h | grep tank tank 2.7T 128K 2.7T 1% /mnt/hdd
$ sudo fio benchmark.fio
結果
READ: bw=112MiB/s (118MB/s), 112MiB/s-112MiB/s (118MB/s-118MB/s), io=1124MiB (1179MB), run=10002-10002msec WRITE: bw=290MiB/s (304MB/s), 290MiB/s-290MiB/s (304MB/s-304MB/s), io=2902MiB (3043MB), run=10001-10001msec READ: bw=134KiB/s (137kB/s), 134KiB/s-134KiB/s (137kB/s-137kB/s), io=1340KiB (1372kB), run=10001-10001msec WRITE: bw=11.1MiB/s (11.7MB/s), 11.1MiB/s-11.1MiB/s (11.7MB/s-11.7MB/s), io=111MiB (117MB), run=10001-10001msec READ: bw=168KiB/s (172kB/s), 168KiB/s-168KiB/s (172kB/s-172kB/s), io=1684KiB (1724kB), run=10002-10002msec WRITE: bw=11.4MiB/s (11.9MB/s), 11.4MiB/s-11.4MiB/s (11.9MB/s-11.9MB/s), io=114MiB (119MB), run=10001-10001msec
結果まとめ
Readがext4の方が早いのはzfsのキャッシュが効いてないから?
ext4 | zfs | |
---|---|---|
Seq-Read | 183MB/s | 118MB/s |
Seq-Write | 161MB/s | 304MB/s |
Rand-Read-4K | 606kB/s | 137kB/s |
Rand-Write-4K | 1485kB/s | 11.7MB/s |
Rand-Read-4K-QD32 | 1541kB/s | 172kB/s |
Rand-Write-4K-QD32 | 1567kB/s | 11.9MB/s |