群晖 NAS 磁盘读写速度的一些测试

2018-10-05 07:44:58 +08:00
 Sylv

前提

近期我更换了我的群晖 NAS 里的硬盘,在选择存储空间的文件系统时不知该选 ext4 还是 Btrfs,我主要考量的是磁盘的读写性能,于是就写了个脚本测试了下我的群晖 NAS 在两种文件系统下的磁盘读写速度,顺便也测试了下其在不同 RAID 类型下的磁盘读写速度。

目录

说明

一些结论

TL;DR

细节对比

测试硬件

群晖 NAS

我的群晖 NAS 是 2013 年款的 DS1513+,五盘位,CPU 是 Intel Atom D2700 Dual Core 2.13 GHz,内存扩充到了 4 GiB,群晖系统版本是 DSM 6.2。

硬盘

测试使用的硬盘是四个 HGST 昱科的 Deskstar NAS 充氦硬盘(HGST Deskstar NAS 3.5" 10TB 7200 RPM 256MB Cache),型号是 HDN721010ALE604,容量是 10 TB,转速是 7200 RPM,缓存是 256 MiB,网上这款硬盘的评测

测试使用的脚本

synology_disk_benchmark.sh

使用方法:

  1. 保存 synology_disk_benchmark.shxfio.conf 到 NAS 上。
  2. 授予脚本执行权限:
chmod +x synology_disk_benchmark.sh
  1. 运行测试:
sudo ./synology_disk_benchmark.sh 测试名
  1. 测试根据机能和磁盘速度的不同可能会花费数十分钟。
  2. 测试结束后会生成一个结果报告文件:测试名.md

测试脚本使用的命令

hdparm 读取测试

sudo hdparm -Tt $device

dd 读写测试

dd 读取测试

# 生成一个 1 GiB 大小的随机数据测试文件
head -c 1G </dev/urandom >test
# 清除缓存
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null
# 从 test 文件读取,每次读取 1 MiB 数据,读取 1024 次,共读取 1 GiB 数据
dd if=test of=/dev/null bs=1M count=1024

dd 写入测试

# 写入 0 到 test 文件,每次写入 x 数据,写入 y 次,共写入 x*y 数据( dsync 不缓存)
dd if=/dev/zero of=test bs=$x count=$y oflag=dsync

分别测试了 bs 读写块大小为 1 GiB、128 MiB、1 MiB、128 KiB、4 KiB、512 bytes 时的写入速度。

fio 读写测试

fio xfio.conf

fio 测试使用的配置文件:xfio.conf

进行了以下测试:

注:群晖内置了 fio 命令。

测试结果

ext4 和 Btrfs 文件系统的对比

BASIC 单盘

JBOD 四盘

RAID0 四盘

RAID1 四盘

RAID10 四盘

RAID5 四盘

SHR 四盘(相当于 RAID5 )

RAID6 四盘

SHR2 四盘(相当于 RAID6 )

ext4 在不同 RAID 类型下的对比

原始数据

原始测试结果数据

42041 次点击
所在节点    NAS
33 条回复
ryd994
2018-10-05 08:00:45 +08:00
btrfs 坑过我,而且性能不行
建议试试 zfs
EPCoo
2018-10-05 08:07:31 +08:00
感谢楼主分享!
SunnyLyx
2018-10-05 08:19:56 +08:00
V2er 打开此主题就会卡死
另感谢楼主分享
zhangckid
2018-10-05 09:17:37 +08:00
虽然 btrfs 不行但是群晖主打啊…我记得群晖的 KVM 不用 btrfs 还不给我用…简直弱智…逼我手动开 qemu
Sylv
2018-10-05 09:28:39 +08:00
@SunnyLyx
其实应该在标题里标下「多图杀猫」😁
yingfengi
2018-10-05 09:35:05 +08:00
你能打开这个帖子会不会卡成狗,Android V2ER 客户端
yingfengi
2018-10-05 09:36:36 +08:00
@SunnyLyx 卡一会儿,往下拉就好了???大概是图太多的锅
C2G
2018-10-05 10:15:57 +08:00
@yingfengi 应该是图片过多加载问题。我刚刚也是卡了一下,然后就好了。拉下来一看一堆图
SunnyLyx
2018-10-05 10:54:38 +08:00
@yingfengi 急性子,卡一会儿就好了
Athrob
2018-10-05 11:05:30 +08:00
楼主用心了
Rabbit52
2018-10-05 11:05:59 +08:00
我的天,这个贴手机差点卡死了 🤔
hjc4869
2018-10-05 11:07:22 +08:00
楼主应该用更专业的 IO 测试软件比如 iozone3。另外如果瓶颈是千兆网,那么考虑这些意义不大。
514146235
2018-10-05 11:11:13 +08:00
ext4 和 btrfs 场景不一样。一般使用 btrfs 是追求它的一些新的特性。例如压缩,快照等等。
下一代的文件系统 cow 是趋势,包括苹果的 apfs 也一样。cow 带来的性能下降是必然的。就看你能不能接受。

btrfs 目前已经足够稳定了。我的 nas 一直使用 btrfs,5 块硬盘 16T 容量合并成一个磁盘空间,不过没有开启 raid。开启了自动快照,然后就再也没有因为误删丢过任何数据了。然后还有部分冷数据直接开启压缩。真的是很爽。

期间经历过 N 次断电之类的,文件系统没有任何问题。不像 btrfs 早期那样可能导致文件系统损坏。

使用 btrfs 唯一要注意的就是,尽可能使用比较新的内核。
自己组的 nas,archlinux,5 块硬盘,总容量 16T,上面还跑很多服务。目前已经稳定连续工作近 2 年时间。

现在唯一期待的就是 btrfs 加入利用 ssd 磁盘加速的功能了。好像会在下一个 feature 里面。
ryd994
2018-10-05 12:08:41 +08:00
@514146235 你要的这些,zfs 全都有,而且久经考验,而且 FreeBSD 官方支持
loading
2018-10-05 12:09:37 +08:00
群辉还跑分,买椟还珠!
514146235
2018-10-05 12:14:33 +08:00
@ryd994 我知道,zfs 目前的确是比 btrfs 成熟。但是 freebsd 作为专用服务器还可以。多功能服务器还是 linux 比较好用一些。我的 nas 上面还要跑 kvm, docker 等等严重依赖 linux 内核的东西。

而且 freebsd 的软件包编译安装也确实比较费时间。十几年前用过 freebsd 作为服务系统,后来已经弃坑了。
zn
2018-10-05 12:15:52 +08:00
@ryd994 群辉不直接支持 ZFS 吧?得专门装 FreeNAS 一类的系统,然后 FreeNAS 这系统嘛,超级耗内存,光系统本身就要求 8G 内存起步,其他应用、虚拟机所需的内存,得额外计算。
514146235
2018-10-05 12:16:13 +08:00
@ryd994 而且 btrfs 早就已经进入 linux 内核了。以后是发展趋势。
xinhangliu
2018-10-05 12:18:23 +08:00
赔我流量🙂
yingfengi
2018-10-05 12:43:13 +08:00
@C2G 是的,不过在农村老家,运营商炸了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/494975

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX