btrfs raid1 是不是不具备可用性?

57 天前
 kyonn

查了些资料, btrfs raid1 特性本身已经达到稳定状态, 但是不能跟 nocow 配合使用(异常 case 数据会损坏). 问题是 cow 碰到数据库或者 vm 性能就会非常差, 推荐做法就是关闭 cow.

难不成用 btrfs raid1 的就不用数据库了? 那局限性也太大了. 还是说顶着 cow 上数据库,但是每天 balance?

再加上 btrfs 的 raid1 跟 madam 还不一样, 只是保证数据在 2 个盘都有,不是镜像的概念, 如果一个盘挂了, 必须先 降级挂载才能恢复, 感觉 raid 的好处半点没捞着, 除了校验和能提前发现文件系统问题外, 感觉一无是处了.

先做 madam raid1,再在上面用 /dev/md0 做 btrfs 感觉更复杂了, 可不可靠也不知道.

ps: 只讨论 raid 的服务可持续, 备份由其他机制完成.

1227 次点击
所在节点    程序员
12 条回复
busier
57 天前
md 是一个很成熟的方案 怎么就不敢用了
kyonn
57 天前
@busier 不确定 md 搭配 btrfs 有没有坑. md 搭配 ext4 当然很成熟了.
busier
57 天前
在文件系统视角 不管看 md ,还是分区,还是裸磁盘都是块设备而已 没区别的

但是 md 终究没有 btrfs 内置的 raid 灵活

首选 btrfs 内置 raid1 (但不推荐更高级别的 raid )

但是你的需求需要 md+btrfs 也是没问题
msg7086
56 天前
数据库可以不用 btrfs 啊。很多系统会偏向使用单独的 db server 。
我司是 btrfs 重度用户,不过我们也不用 btrfs 内建 RAID ,都是下层分布式块存储,上面直接开 basic btrfs 。
你不考虑一下 zfs 吗? zfs on linux 也不错的。
YsHaNg
56 天前
保证两个盘都有不比镜像更好吗
kyonn
56 天前
@busier 从分层角度看没错的,实际两者总有个配合问题,查找资料过程也发现即使 btrfs raid 和裸磁盘搭配,也有个时钟问题需要保证的。分层总可能有不理想的情况会产生些许耦合。

似乎群晖的 raid 就是 mdam raid+btrfs 的形式,如果有大量的实践过就能放心一些。
kyonn
56 天前
@msg7086 没那么大规模, 单独 db server 不太现实.

我司是 btrfs 重度用户,不过我们也不用 btrfs 内建 RAID ,都是下层分布式块存储,上面直接开 basic btrfs 。
你不考虑一下 zfs 吗? zfs on linux 也不错的。
-- 那你们公司跟 cow 冲突的业务(比如 db/vm)是在分布式块存储的基础上开 basic btrfs + 禁用 cow ? 还是直接用了其他文件系统? 还是顶着 cow 用, 定期做碎片整理?


zfs on linux 没用过, 不熟悉, 之前了解到的唯一缺点是不方便扩容? 必须一次性把存储规模定下来建好?
kyonn
56 天前
@YsHaNg 镜像的话掉了一块还能继续用的, btrfs 那种方式挂了一块, 必须停机修复, 就失去了 raid 的作用. 不过了解到
YsHaNg
56 天前
@kyonn 我印象里可以 online rebalance 转换成 single 可以继续用
msg7086
55 天前
@kyonn 我司 db server 是单独的机子,btrfs 上只放普通文件。
kyonn
55 天前
@msg7086 了解了,我试试 zfs 。
kyonn
55 天前
@YsHaNg 了解了

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

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

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

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

© 2021 V2EX