
近期我更换了我的群晖 NAS 里的硬盘,在选择存储空间的文件系统时不知该选 ext4 还是 Btrfs,我主要考量的是磁盘的读写性能,于是就写了个脚本测试了下我的群晖 NAS 在两种文件系统下的磁盘读写速度,顺便也测试了下其在不同 RAID 类型下的磁盘读写速度。
[ext4] vs [Btrfs] vs [Btrfs + 校验] vs [Btrfs + 校验 + 压缩]:
ext4 在不同 RAID 类型下的对比:
我的群晖 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 和 xfio.conf 到 NAS 上。chmod +x synology_disk_benchmark.sh sudo ./synology_disk_benchmark.sh 测试名 测试名.md。sudo hdparm -Tt $device # 生成一个 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 # 写入 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 xfio.conf fio 测试使用的配置文件:xfio.conf
进行了以下测试:
注:群晖内置了 fio 命令。
































































































































































1 ryd994 2018-10-05 08:00:45 +08:00 via Android btrfs 坑过我,而且性能不行 建议试试 zfs |
2 EPCoo 2018-10-05 08:07:31 +08:00 via iPhone 感谢楼主分享! |
3 SunnyLyx 2018-10-05 08:19:56 +08:00 via Android V2er 打开此主题就会卡死 另感谢楼主分享 |
4 zhangckid 2018-10-05 09:17:37 +08:00 via Android 虽然 btrfs 不行但是群晖主打啊…我记得群晖的 KVM 不用 btrfs 还不给我用…简直弱智…逼我手动开 qemu |
6 yingfengi 2018-10-05 09:35:05 +08:00 via Android 你能打开这个帖子会不会卡成狗,Android V2ER 客户端 |
10 Athrob 2018-10-05 11:05:30 +08:00 via iPhone 楼主用心了 |
11 tunetoystory 2018-10-05 11:05:59 +08:00 via Android 我的天,这个贴手机差点卡死了 |
12 hjc4869 2018-10-05 11:07:22 +08:00 via iPhone 楼主应该用更专业的 IO 测试软件比如 iozone3。另外如果瓶颈是千兆网,那么考虑这些意义不大。 |
13 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 里面。 |
15 loading 2018-10-05 2:09:37 +08:00 via Android 群辉还跑分,买椟还珠! |
16 514146235 2018-10-05 12:14:33 +08:00 @ryd994 我知道,zfs 目前的确是比 btrfs 成熟。但是 freebsd 作为专用服务器还可以。多功能服务器还是 linux 比较好用一些。我的 nas 上面还要跑 kvm, docker 等等严重依赖 linux 内核的东西。 而且 freebsd 的软件包编译安装也确实比较费时间。十几年前用过 freebsd 作为服务系统,后来已经弃坑了。 |
17 zn 2018-10-05 12:15:52 +08:00 @ryd994 群辉不直接支持 ZFS 吧?得专门装 FreeNAS 一类的系统,然后 FreeNAS 这系统嘛,超级耗内存,光系统本身就要求 8G 内存起步,其他应用、虚拟机所需的内存,得额外计算。 |
19 xinhangliu 2018-10-05 12:18:23 +08:00 via Android 赔我流量 |
21 ferock PRO btrfs 比较 ext4 性能当然不行,毕竟有很多备份的特性在那里。 但是。。。 这是以后的趋势 |
22 ryd994 2018-10-05 13:56:07 +08:00 via Android @514146235 我是 CentOS 打底,kvm 开虚拟机,pcie 直通 HBA 给 nas4free。其他服务放其他虚拟机。虚拟网络用 jumboframe,其实开销很小。唯一缺点就是内存消耗大。但是二手服务器 ECC 内存都是白菜价。无论你是不是用 zfs,对于数据安全,ECC 内存都是非常值得的投资 我 3 年前用 btrfs 时,它就已经在内核里,而且声称 production ready 了。实际呢?意外断电后全盘无法识别。信任就是一次偶然可以毁掉的。 btrfs 那时候还号称是未来的趋势。然而到现在也没有取代 ext4,而且性能也远比不上 ext4。在我看来,btrfs 是对 zfs 的一次失败的重造轮子。 RedHat 系不再默认 ext4,而是改用了 xfs。xfs 对小文件,SSD,的性能非常好。所以用于服务器系统盘最合适。数据盘再考虑其它。 顺带一提,ext4 也可以一定程度上 SSD cache。使用 external journal。 @zn 不到 8G 也可以。只要你不开去重。NAS 都是顺序读写,瓶颈总是在带宽。1G/T+8G 是建议配置,建议而已。 |
23 wowodavid 2018-10-05 13:59:29 +08:00 瓶颈还是网络啊,万兆网关键不在设备,而在于重新装修的成本 |
24 wtdd 2018-10-05 14:32:56 +08:00 NAS 毁硬盘不是开玩笑的,建议还是保命优先,性能就随他去吧…… |
25 ryd994 2018-10-05 15:09:13 +08:00 via Android |
26 maolaohei 2018-10-05 15:22:53 +08:00 用手机看真卡,还得用电脑看 |
27 Sylv OP @xinhangliu 我算过了这帖图片一共 25.4 MB 大小,现在流量这么便宜,用不了几毛钱。 |
28 Sylv OP @hjc4869 群晖因为用的是自己的 Linux 系统,要用 iozone 等其他测试软件得自己编译,所以就用了一些自带的工具简单测试了下,日后若有其他用户进行类似测试也好有个参考。 |
30 Sylv OP @wtdd 我是 RAID5 + 一比一备份。其实 NAS 配上靠谱 UPS 并没有那么容易毁硬盘的,我之前的多块硬盘 7x24 运行了四年多,一块都没出问题。 |
31 msg7086 2018-10-06 05:38:49 +08:00 |
32 wugeng668 2021-03-31 15:05:12 +08:00 UP...图全挂了。。。我想看看 ext4 和 btrfs 在群晖下 smb 速度的对比....这两天格式化硬盘选哪个 有点纠结 |