技术解析

Btfs 稳定性
0
2021-06-30 14:31:55
idczone

SSD 跑在 ext4 上面,讲道理我是感觉不出什么速度慢之类的。关于寿命就更不担心了,比较消耗品而且有备份。

不过看到 btfs 的 copy on write 实在手痒。那么问题来了。

v2 有大佬用的 btfs 么?来说说日常稳定性吧。

我先说一下个人感觉,btfs 已经很久了。synology 的 nas 上面也已经可选 btfs 了。个人认为作为个人用系统完全没有问题的。

谢谢了


*btrfs

Copy on write 只会增加 SSD 写量而已,有什么实际意义么?还是说你极其在乎写数据的原子性?
稳定性不清楚,反正我在 ramdisk 上做性能测试,btrfs 基本上被 ext4 和 xfs 秒杀。

不需要文件系统去做写入均衡,开 discard 固件会自动帮你做的
btrfs 且不说性能一直不行,我前年还丢过数据
cow 对你真的有用么? data=journal 也可以实现同等级别的一致性

ext4 怎么做 snapshot ?

LVM

ext4 做 snapsnot 是全盘拷贝一遍吗?

有一朋友用 BTRFS 整个分区崩了。

卡,真的卡,SSD 可能感觉不出来,老电脑机械盘读写上百 M 的用了 btrfs,apt 安装多大多小的包 10 秒起步.
压缩等优化全开没卵用,rsync root 到 xfs 飞起.

我司的 btrfs 开发者对 btrfs 都说没有太大信心 :)

@Reficul

自用小主机,意外停电,所有文件丢失……多了我不说,你就自己想把

Btrfs 空间满会有各种各样的问题。
不需要做快照的话没必要用。

lvm 加上 ext4 可以实现镜像功能。

用 xfs

除了 btrfs 外还有什么办法可以轻易增减硬盘,想存储池一样?

lvm,zfs 都可以。btrfs 是后生了

BTRFS 最近几个版本感觉稳定性好多了,可以用

对了,搭车问一下,xfs 断电后不需要修复的么?我从来没看到过断电重启后的自动修复进程,启动完后貌似也没发现有后台修复进程。

docker 在 btrfs 上会创建大量的 subvolume,然后 btrfs 貌似有个支持上限,到了就全盘只读。应为这个一年炸了两次了

Journaling file system 就是起来之后 replay 一下 journal 就好了,一般不会用到 fsck

btrfs fi df /
可以看到三个区域 data system metadata,有一次 metadata 满了,要自己手动扩容,就感觉这个超级不智能
这个家伙很懒,其他特性没怎么用过

然后咋子办哟?瑟瑟发抖
```
~ sudo btrfs subvolume show /
/
Name:
UUID: -
Parent UUID: -
Received UUID: -
Creation time: -
Subvolume ID: 5
Generation: 140298
Gen at creation: 0
Parent ID: 0
Top level ID: 0
Flags: -
Snapshot(s):
var/lib/machines
var/lib/docker/btrfs/subvolumes/41f534e74160b2ba5a20365147509c8d5887798415bc192edaa08230ab40e4e2
var/lib/docker/btrfs/subvolumes/b7dff9b8cb978686b1adad5c611fa11a231a422bfc9177ef9eca0a397f60a9ac
var/lib/docker/btrfs/subvolumes/040e5370ad966f726a8c68887183727005288e0d1860df93f3ac645eaac8a2e2
var/lib/docker/btrfs/subvolumes/3a8da73981b5d8abc5bf0e37ed6602222a91446ba645671c9a3b5e3ad6551b9e
var/lib/docker/btrfs/subvolumes/288607bd3959cfae0dec2fe6565602d9841f7d31609336a82df7ca099cebf416
var/lib/docker/btrfs/subvolumes/ef963e90f95d49d0810fea70a9cf593ba4a1daba5b4d4dc6fa07b84702d66f8d
```

然后只能删掉那些 sub volume 啊,简单做法就是把挂在 /var/docker 下面的都干掉。图形是进不去了,shell 貌似还可以用。

BTRFS 分区爆过+1

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

我今年一直使用 btrfs,发生过一次惊险。总体来说,可用,但是没有 ext4 放心。http://t.cn/Rao3kqu

ext4 断电后明显会导致 fsck,而 xfs 不会。。。

穩定性:有驚就有險
忍不住想玩就去玩囉,提前知道文件系統隨時會 collapse 不也正好督促自己做好備份嗎?
我曾經嚴重地玩崩過兩次,每次都大丟數據,弄得整個系統都要重裝,不過好在備份都做得還不錯。後來,後來就不敢玩了。OP 這種猜也是不被坑幾次會一直忍不住想玩,豈是別人隨便勸告兩句就能擋住的?

/var/docker 下的都干掉?用那个 docker-gc 工具还不够吗?涩涩发抖中,docker 的坑真多

zfsonlinux 不是不太稳定吗?

https://github.com/moby/moby/blob/master/contrib/nuke-graph-directory.sh 删除 /var/lib/docker 可以用这个

清理 docker,现在有现成的命令吧,不需要手动删吧?
docker system prune

测试机上测过一段 btrfs,平时还好,空间快满的时候让我整个人都怀疑人生了……

有人用 f2fs 吗,按说闪存类存储适合这个格式,不过我用 hdparm 测试并没有比 ext4 有明显提升

长期 btrfs 路过,SSD,因为系统备份方便很多就一直用下来了,磁盘满了? Linux 没那么容易满。速度问题?真心感觉不出来有太大区别(除非你真的在乎那么几百毫秒)。

btrfs 出过错,上面很多朋友也说了有过。但 zfs 用了几年,没有出过问题。

应该是删掉足够多的 subvolume 就可以了。问题是 docker 那会已经起不来了,没用过 docker gc 工具,如果是依赖 docker daemon 的话,估计不行。

这个命令在 1.13 才有,而且依赖 docker daemon。磁盘只读的时候 daemon 是起不来的。 最简单的就是用楼上那个 nuke 脚本。

用过,快是快,但出问题数据就麻烦了

我只在自己的开发机 (ssd, arch) 用 btrfs, 主要是图 snapshot 方便, 目前还没爆过

用着 FreeBSD+ZFS 等了六七年还是没能等到 Linux 上好 用的东西 啊……

LVM

xfs 是不会 snapshot,但不是不会出错啊
断电会出一堆空文件

用了 5 年以上,挂掉无数次,继续用着 ext4 等下一个文件系统吧。

BTRFS 我用了三个月就换了
当时是分区满了 找不出原因...

开发文件系统一点也不简单,EXT4 是 06 年释出,08 年才释出稳定版,10 年才加入 RHEL6

哈哈哈~qu 神已转行~~


两点供参考,
1. 一个文件系统需要 10 年才能稳定,出处大概是 ZFS。对 APFS 的一个很大的赞扬是他们把这个时间大大缩短了
2. F2FS 是三星的提出来的

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服