btrfs的去重有丶东西啊……居然能让img镜像实际上实现弹性储存占用……

btrfs 这方面将来提升空间挺大,zfs 借助 ARC 和 L2ARC 实现的缓存效果非常惊人,只要内存足够大,可以不用频繁读写磁盘。

但硬盘不还是在空转?
不过 Linux 有为硬盘做电源管理吗?

关于这个问题,我在 TrueNAS 中相关配置中见过,但是其他发行版需要怎么解决,需要朋友研究下。

验证了一下即使是在 Cache 命中时,zfs 读取数据依然会唤醒硬盘。
不过没有数据读写时好歹会按照磁盘电源管理休眠硬盘。

ZFS 内存缓存叫做 ARC,而用 SSD 做的缓存叫做 L2ARC,一般情况下都会去唤醒硬盘因为要校验。

纯读取,校验有个鸡儿用……
数据都不会变的……

这朋友就错了,如果硬盘体质不好,后期逐渐老化,加上没有使用阵列和冗余,即使长期放置未修改的文件,纯读取也是有几率出现问题的。ZFS 默认创建的时候是启用校验的。可以从下方的 openZFS 文件系统文档中了解到:

第一点就提到检测数据在从媒体读取的时候是否已经损坏。所以默认应该是读取时就校验。而且官方文档在开始也提到,ZFS 的端对端校验和是 ZFS 一个特性,同时也是与传统 RAID 的一个重要不同点。

当然,最把稳的方法是去看源代码。不过对于 ZFS 这种非常重视文件安全性的文件系统而言,多一些校验也是好事,而且朋友不是要用 NAS 吗?文件储存在里面安全性和稳定性才是最重要的。 :grin:

当然文档最后也提到,可以关闭校验和,但是官方并不建议这样做。

文档地址:https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Checksums.html

这意味着你挂 BT 的话,硬盘根本不会休眠。
全天能耗和电机损耗。
鬼知道那个倒霉鬼,隔三差五从你节点获取几 KB 数据。

关于 BT ,朋友可以查看官方文档的这个部分内容优化:

https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html#bit-torrent

根本没用,我用的是容器,只是把下载目录挂载在 ZFS 上,下载 Cache 在我的系统盘。
我只要一开启 BT 客户端,硬盘根本就不会睡。

另外补充下,如果读取数据命中 ARC 或者 L2ARC,应该不会校验(至少文档中没有提到)。当然具体还是要看源码才行。官方文档也有可能不会涵盖到。

你的下载目录只要是 ZFS ,在按照 ZFS 提供的优化设置,会有所改善。

sudo zpool iostat -v test 1
                                               capacity     operations     bandwidth 
pool                                         alloc   free   read  write   read  write
-------------------------------------------  -----  -----  -----  -----  -----  -----
test                                         7.07G   921G      0      0      0      0
  ata-ST1000LM024_HN-M101MBB_S31LJ9DFB19087  7.07G   921G      0      0      0      0
cache                                            -      -      -      -      -      -
  sda                                        20.2G   296G      0      1      0  7.99K
-------------------------------------------  -----  -----  -----  -----  -----  -----
                                               capacity     operations     bandwidth 
pool                                         alloc   free   read  write   read  write
-------------------------------------------  -----  -----  -----  -----  -----  -----
test                                         7.07G   921G      0     55      0   420K
  ata-ST1000LM024_HN-M101MBB_S31LJ9DFB19087  7.07G   921G      0     55      0   420K
cache                                            -      -      -      -      -      -
  sda                                        20.2G   296G      0      1      0  7.99K
-------------------------------------------  -----  -----  -----  -----  -----  -----

弄了个脚本在后台从 ZFS 复制东西到/tmp。
按理说根本不该有写入的。
但还是有。
:sweat_smile: