以前一直没有折腾过系统分区,所有文件安装在同一块硬盘上,最大,但是经历过一次硬盘损坏数据部分丢失后感觉开发电脑还是要配置 RAID1 。
我的应用场景其实不是很复杂,一块 NVME 打算做系统盘,一块 SATA SSD 挂载到 Docker 目录下(因为实在是太大了),两块 SATA SSD 打算做 Raid1 ,挂载到/home/<my name>.
目录。似乎 LVM 和 ZFS 都可以胜任。
请问大家有没有经验,这种情况下应该采用哪种模式比较合适呢?还是说两种模式混合使用。
1
Buges 2021-12-03 01:01:07 +08:00 via Android
raid 不是备份,防止损坏最重要的不是 raid 而是备份。
可以用 btrfs 做系统盘,额外的硬盘用 btrfs send 做增量备份。zfs 在 Linux 上不建议,升内核比较麻烦。 |
3
afirefish 2021-12-03 08:08:30 +08:00
|
4
documentzhangx66 2021-12-03 11:21:07 +08:00
|
5
ungrown 2021-12-03 11:59:04 +08:00
Linux 下面,根目录尽量别用 ZFS ,其他随意。因为 ZFS on Linux 还没有稳定到那个程度,而且就算不考虑稳定性,如果根目录是 ZFS 的话相当于整个启动过程多依赖了一个复杂组件,在出问题的时候增加排错成本。
ZFS 确实挺好用的,本身也具备 RAID 这种形式,灵活又方便。能用就用,利大于弊,根目录除外。 |
6
12101111 2021-12-03 12:14:35 +08:00
我 ZFS as root 用了好几年了,从 0.7 时代用到了 2.1, 连 FreeBSD 的 ZFS 都用的 ZoL 的代码,何来不稳定?
反倒是 Btrfs bug 的照片每个月都能见过好几次。 |
7
liuxu 2021-12-03 12:52:25 +08:00
数据备份用网盘,玩系统上 ZFS
|
8
snuglove 2021-12-03 15:32:12 +08:00
@documentzhangx66 的确,做 raid 是保证数据不丢失;备份的作用也是确保数据不丢失,但是备份是需要时间的
|
9
dangyuluo OP 更新一下进展,最后决定用 ZFS 了,整个系统盘做了一个 ZFS pool ,根目录挂载了`rpool`, 其余主要系统目录为`rpool/ROOT/ubuntu_xxx/xxx`,家目录为`rpool/USERDATA/<name>`,工作目录单独建立了一个 dataset 挂载到了`~/workspace`,这样就可以方便地做快照了。
另外我将两块 SSD 硬盘组了一个 zpool ,挂载到了`/var/lib/docker`来存储平时用不太着的 docker 。 |
10
secondwtq 2021-12-03 18:59:20 +08:00
RAID 是为了提高可用性,备份是为了数据安全。
|
11
secondwtq 2021-12-03 19:02:53 +08:00
另外 ZFS 在性能方面的 story 我一直不是很清楚,特别是在 NVMe 设备上的表现。可能可以做到比较好的性能,但是需要专门去调整。我没这本事,所以如果对性能有要求的话我不会用 ZFS 。
|
12
gridsah 2021-12-05 15:15:32 +08:00
@dangyuluo
楼上说的对,raid 是高可用方案,而不是备份方案。不过 ZFS 确实是在没有专用备份机组和 UPS 的情况下,数据最安全的方案了。 我用 ZFS 的时候,为了磁盘性能优化也整理了一些资料,你可能会用得上。看这里 https://lishouzhong.com/lishouzhong/szarticle/article/ZFS%20%E8%B8%A9%E5%9D%91%E4%B8%8E%E4%BC%98%E5%8C%96.md 另外,其实我也不推荐 ZFS 做系统盘...... |
13
yanqiyu 2021-12-07 12:55:46 +08:00
|
14
documentzhangx66 2021-12-07 16:40:08 +08:00
@yanqiyu
当我们讨论 raid 时,其实是有一个隐含的、公认的前提,就是服务器或电脑,所处在的环境,不说是一个严格的机房,至少也是一个正规的办公室环境。 当你引入猫猫这个特殊变量时,我也可以引入地球突然爆炸,这样你的方案:定期写到别的盘,也失效了。 回到之前的话题,如果讨论的前提是,机器是放在正规机房的,那么我说的方案,是没有问题的。 |
15
yanqiyu 2021-12-07 18:47:48 +08:00
@documentzhangx66 硬件单点故障(着火 /雷击),文件系统 bug ,人为失误( rm -rf /),勒索病毒等也能损坏里面的数据
猫猫只是随便选个好听的意外,实际上存储系统可能面临的意外种类繁多,硬盘挂了只是一小部分 (谁能保证不会失误删掉 /覆盖有用的文件,这时候 RAID 只能保证你的删除 /覆盖文件的操作事务性的落到每个盘上) RAID 的意义是在硬盘故障的时候不影响业务(并且只是针对硬盘故障而言),而不是在发生意外之后保证数据还在 RAID 不是备份,快照也不是备份,只有把数据写到别的盘,拿出来存档才是备份 |
16
documentzhangx66 2021-12-07 19:51:24 +08:00
@yanqiyu
一点一点来说吧。 1.你提到 硬件单点故障(着火 /雷击),文件系统 bug ,人为失误( rm -rf /),勒索病毒 等等,说明你对专业存储与备份,是有一定研究的,这是好事。 但你要加强听取甲方意见,理解甲方的需求、场景与意图,这个方面你还是需要再下功夫的。 你回头看看楼主一开始说的:我的应用场景其实不是很复杂。楼主其实并不需要这么麻烦的企业级的方案。一个机房或办公室环境,业务机组个简单的 raid ,然后再上一套专用备份机器,就足够了。 2.如果要解决你说的这一堆东西,那在企业级存储与备份里,也属于相当顶尖(烧钱)的东西了。很多中小企业都不一定负担得起,楼主真的那么多的预算嘛? 3.RAID 与快照的确不是备份。但你要看清楚我在最前面说的:备份没办法做到事务性完全实时,但 raid 可以。同时这句话不是针对你的发言,是针对 1 楼发言,对 1 楼发言做的补充。你没必要又举出备份的优势来针对 raid 。你我都知道 raid 、备份的优缺点。 |
17
Padawan 2021-12-09 14:06:03 +08:00
用两块一样的 USB 3.0 12TB 移动硬盘组了 RAID 1 。 磁盘格式 btrfs 。
稳定用了好几个月。 未来的计划: 1. 扩容:多买几块继续组 RAID 1 。USB 口不够时上 HUB 2. 用 cron 定期检查状态,有错误时发邮件给我。 |