1
SIGEV13 2022-06-27 17:01:04 +08:00 1
ZFS 有几个功能比较方便存储服务器用:
- Raid-Z: 比硬件控制器更灵活的 Raid 方案,RAID 可以只影响部分硬盘的部分扇区 - 自带 snapshot , 方便备份恢复 - 存储分层,方便添加 cache 注意 ZFS 作 RAID-Z 时候需要大量内存,并且它完全信任内存里的数据,长期开机最好配上 ECC 内存以免丢失数据。 |
2
LxnChan OP @SIGEV13 目前是只有系统准备用 ZFS ,不知道有没有比 EXT4 更有必要?另外我看 ubuntu 论坛有人发过帖说快照不好恢复和不便管理等问题是否存在?谢谢。
|
3
blueboyggh 2022-06-27 17:23:43 +08:00
NAS 的话,弄一个专业的 NAS 系统不好吗?
|
4
matolv 2022-06-27 17:25:46 +08:00 1
zfs 就是个软 raid 系统,你盘多可以用,盘少未必有必要。
优点很多了,主要是写时拷贝,删数据非真删除,可以靠快照恢复。把内存当缓存提高读取速度。对数据自带各种级别校验,文件级 /块级,数据可靠性高。迁移方便,自带部分或全池远程传输命令。 楼上说的 ecc 内存么自然是最好的,但也不是必要的,因为内存出错概率不高,只是出错了数据就没了,看你对数据重视程度了。一般来说 recc 便宜,可靠性高,用于 hedt 或者 server 平台。 最便宜的就是 e5 v3/v4 洋垃圾,双路可以上到 1T 内存,实际 128~256G 就可以开杜甫或者小鸡卖钱了。 |
5
guozozo 2022-06-27 17:28:02 +08:00 via iPhone
装了 omv ,其他服务用 docker 。
|
6
ruidoBlanco 2022-06-27 17:45:29 +08:00
自己不明白为什么要的情况下,那就是不需要。因为你不知道自己为什么要,你怎么能够权衡?
这种情况下,挑简单成熟的方案来。 ext4 对你和大部分的用户都够了,最多加个 LVM 。ZFS 的强大需要内存和多盘的支持,并不是只有少量几块盘的用户的最省心选择。 |
7
GrayXu 2022-06-27 18:20:35 +08:00
@SIGEV13 好奇,“它完全信任内存里的数据”。有什么文件系统是不信任内存里的数据的?如果都是 metadata 错误了,什么文件系统都得挂吧。。
|
8
SIGEV13 2022-06-27 19:09:10 +08:00 1
@LxnChan 论必要性没有。
如果想要提高性能,LVM 也可以提供 striping 和 mirroring 的功能,类似 raid0 和 raid1. 如果担心数据丢失,文件系统能帮的忙有限,RAID 的目的是高可用性,部分硬盘故障依然可以提供服务,不是预防数据丢失,这是备份的职责。 ZFS 配置 RaidZ 以后恢复数据时候它偏重数据完整性,如果卷或者内存有错误,不能通过校验冗余恢复,它宁可放弃数据卷也不恢复可能包含错误的数据。 如果用 EXT4 等传统文件系统,是可以宁可数据出错也要抢救尽可能多的数据的。 最简单的还是硬件 RAID 卡,配上 UPS :) |
9
12101111 2022-06-27 19:39:12 +08:00
抛开 raid, zfs 快照备份非常方便, zstd 透明压缩压缩比也很大, zvol 上跑虚拟机也能利用上快照和透明压缩
|
10
felixcode 2022-06-27 19:43:17 +08:00 via Android
借楼问一下 Debian 或 Ubuntu 对 zfs 的支持怎么样了,稳定性都没问题了吗
|
12
statumer 2022-06-27 19:57:38 +08:00
如果你有很多硬盘,那么你可以尝试用 zfs 解决你的问题。
如果你硬盘不多,可能就两三块,那么 zfs 完全没必要,feature rich 的 fs 同时也是 bug rich 的。 |
13
codefun666 2022-06-27 21:22:31 +08:00
显然用 Centos ,默认文件系统是 Ubuntu 。NAS 是服务器, 用 Ubuntu 干嘛
|
14
codefun666 2022-06-27 21:22:55 +08:00
写错了,没法撤回。
显然用 Centos ,默认文件系统是 ZFS 。NAS 是服务器, 用 Ubuntu 干嘛 |
15
y830CAa5nink4rUQ 2022-06-27 22:00:19 +08:00
三个盘以上建议上 ZFS ,非常好用。
楼上说的一些言论是错的,或者是片面的,我挑几个来回应: 1. 内存占用大 这个不完全对。 事实上,ZFS 有两个功能可能会占用大量内存: 一是 Dedup (数据去重)功能,这个默认是关闭的,所以不会占你内存。 二是 Cache (数据缓存),这个功能可以大幅提高磁盘随机 IO 性能,对数据库之类需要频繁磁盘随机 IO 的应用有很大帮助。但是也是可以默认关闭的。关闭后不影响你正常使用,只是内存加速效果没了,性能可能会低一半左右。如果只是用来做文件存储,不需要频繁随机磁盘 IO ,或者对磁盘性能要求不是非常高,其实没必要开启。 这两个功能关闭后,内存占用和别的文件系统并无太大差别。 2. 完全信任内存数据,所以内存数据出错导致数据丢失 这个是怎么说呢,也不是说它错,但是这个跟 ZFS 无关。 首先,所有系统都是完全信任内存数据的,内存出错了,系统本身都无法保证正常运行,如何保证不丢数据? 然后,ZFS 是日志型文件系统。所有磁盘写入都先写入 ZIL (日志)并且 Flush ,Flush 成功后 ZFS 即认为写入完成,并且可以保证数据是安全的,如果 ZIL 没写入完成系统就挂掉了,那么这次写入失败,下次系统启动会自动回滚到正确的位置(也就是相当于没有这次写入)。 注: ZIL 是一个日志设备(一个独立磁盘或者一个磁盘分区),会需要频繁写入,可以根据硬件条件灵活配置,可以配置为独立占用一个磁盘分区,也可以独立占用一块磁盘,比如配置一块高性能 SSD 或者一块傲腾磁盘。 ZIL 对容量要求不高,16~32G 即可。条件足够的情况下,建议配置一块小的独立 SSD 。 |
16
dzdh 2022-06-27 22:13:44 +08:00 1
跟随红帽 9 一起升级的 stratisd ,给你跟 zfs 一样的体验。
所有衍生版都支持。almalinux 、fedora 、rockylinux |
17
sidkang 2022-06-27 22:15:07 +08:00
|
18
tulongtou 2022-06-27 22:20:26 +08:00
不知道自己有没有需求,那么就是没需求。ext4 一把梭,潮流点儿点 btrfs 一把梭
|
19
neteroster 2022-06-27 23:33:00 +08:00 via Android 1
如果你对数据完整性有要求,也就是说你希望数据出了一丁点问题你都必须知道,而且希望文件系统不会给你错误的数据,那用 ZFS (with ECC) 基本是唯一的选择(比如我,多年强迫症患者)。如果对这一点没有要求,ZFS 的很多其他功能都是可替代的。当然 send/receive 快照啊这些也确实好用。
我的建议是不妨先试试看,如果对你的应用场景性能没啥影响不妨就用着。 |
20
abbottcn 2022-06-28 09:03:19 +08:00 via iPhone
鄙人有一个古老的 Mac mini ,安装了 Ubuntu 20.04 。默认用的 zfs 。忽然有一天,崩溃了。
这个机器基本空载……某次重启失败了,接显示器一看,挂了……扔给我一个 busybox 。 |
22
wowawesome 2022-06-29 09:29:00 +08:00
如果你不知道你为什么要启用的 ZFS, 那你就应该选择 EXT4
|
23
ungrown 2022-06-29 15:11:13 +08:00
我家里自组的 NAS 从一开始就是 ZFS ,而且还就是单盘。
也没啥原因,就是当初做了这样的选择。 也给我带来过麻烦,但是都很小。 优势也许有吧,但肯定也很小。 我觉得 ZFS 这种足够成熟也足够可靠的东西,你想用就用好了,没必要纠结于所谓的“有没有必要”“应不应该”之类 |