目标:热数据暂存在日常使用的电脑(Arch Linux)里,每月使用硬盘扩展坞,把数据备份到两个硬盘里做冷备。不折腾 NAS 群晖 Raid 之类的。会有比较多的小文件图片之类的,属于比较重要的数据不希望丢失损坏。
参考文章
「如何确保移动硬盘的大量数据不会损坏?」 https://www.v2ex.com/t/868676
「 Linux 上,架 NAS 用什么文件系统?」 https://www.v2ex.com/t/642574
1
ltkun 224 天前 via Android
zfs 用错地方了 zfs 不是用来做冷备份的
|
2
busier 224 天前
用 btrfs !因为他 subvolume 有快照功能。多次备份的时候可以只存储改变的部分,节省时间和空间。
另外,他可以发现存储位反转而磁盘不报错的情况。对年久的备份数据是否损坏的判定很有帮助。 |
3
greenskinmonster 224 天前
restic 增量备份,支持快照,不限分区格式
我 200 多 G 的 / 分区,NVME 硬盘,每 2 天增量备份一次,每次 2-3 分钟左右 |
4
cellargalaxy OP 二楼提醒了 btrfs 支持进行校验和。
一开始没有考虑 btrfs 是因为有不少人反馈过 btrfs 会炸,网上有人说 zfs 比 btrfs 稳定。 查了一下资料,btrfs 除了支持校验和,在有 Raid 下还能对损坏文件进行自修复。 由于我不打算组 Raid ,因此目前看来,两块硬盘都 btrfs ,定期独自进行校验和,手动替换损坏文件,比较可行。 https://superuser.com/questions/904331/how-does-btrfs-scrub-work-and-what-does-it-do https://superuser.com/questions/1595765/btrfs-check-scrub-what-is-the-difference |
5
basncy 224 天前
同需求, 蹲个使用三年以上的稳定方案.
所以 btrfs 如果检验失败并且修复失败, 整个分区就炸了. 存的文件越多, 概率越大. 这特性不适合用在 rootfs 上. |
6
chinni 224 天前
borg
restic kopia 这 3 个我至少 4 年了 |
7
chinni 224 天前
@greenskinmonster 其实我刚才说的 3 个里 最推荐的是 kopia 你如果直接备份根目录 他有 .kopiaignore 还有针对每个 path 的 备份策略 比 restic 好用(
|
8
GrayXu 224 天前
这场景明显是 borg 这种增量备份,而不是手动跑 btrfs 手动替换。
|
9
infinet 224 天前
都用 zfs ,定期发送 snapshot 到冷备份盘。用 sanoid 在热机器上定时 snapshot ,syncoid 发送到冷备份。
|
10
apiQuantify 223 天前
学习了,收藏
|
11
busier 223 天前
@busier 说炸大多是 n 年前的老资料,我这边底层直跑 debian 稳定版,跟进新内核,多年就没炸过!
还有一种炸的情况就是 ext4 转换出来的 btrfs ,所以初始化最好是格式化成 btrfs 。 |
12
busier 223 天前
@basncy “以 btrfs 如果检验失败并且修复失败, 整个分区就炸了”
我们说的是针对用户文件 checksum ,这功能目前只有 btrfs 和 zfs 有。 况且针对用户文件的 checksum 出问题即便不能恢复也是单文件故障,更炸分区有毛线关系,炸分区只可能分区元数据损坏和目录结构损坏造成的。 |
13
basncy 223 天前
@busier 说的正是元数据损坏的情况, 还有锁的问题造成引用错误.
我的数据分区有多个系统访问, 这些系统上的 btrfs 版本不一致, 炸怕了. 所以大家看看我的方案是否可行: 主力用 ext4(或 ntfs), 保留最新状态的同时避免一颗屎坏了一锅汤, 用 syncthing 同步到备份机的 latest volume. 冷备用 btrfs, 定期对 latest volume 拍照. btrfs 的完整性检查通过 syncthing 反馈到主力系统, 及时发现 ext4 分区中单个文件损坏. |
14
ecloud 223 天前
反正你是备份,不在乎时间,那就定期打成 img 再存到 btfs 不就得了,甚至存到 ntfs 我觉得也没啥大问题
|
15
libook 223 天前
本地和备份系统都用 Btrfs ,本地做快照,往备份盘进行快照的增量同步。这样还能多保存几个版本的快照。
|
16
MrKrabs 223 天前
外置 apfs raid1+macOS 时间机器自动增量备份
|
17
cellargalaxy OP 整理一下思路。误删文件与文件损坏两种问题,叉乘发现问题与修复问题两个步骤。
1. 发现误删:貌似只能靠人发现,毕竟代码怎么知道是不是误删 2. 修复误删:使用快照回滚 2.1. 使用有快照功能的文件格式,例如 btrfs/zfs 2.2. 使用有快照功能的备份软件,例如楼上提到的 borg/restic/kopia 3. 发现损坏:hash 校验 3.1. 使用 checksum 功能的文件格式,例如 btrfs/zfs 3.2. 使用有 checksum 功能的软件对文件进行校验 4. 修复损坏:保存多份数据 4.1. 使用 Raid 4.2. 使用软件手动实现类似 Raid 的效果,目前找到最贴近的是用 freefilesync 对两份文件进行比较替换 4.3. 如果有更好的软件/方案欢迎推荐 至于 btrfs/zfs 会不会炸,是不是 ext4 更稳,其实这个问题好像并不是很核心。手抖摔了硬盘 ext4 也一样会炸,这好像得通过备份保障,而不是选一个万无一失的文件格式(当然更加稳的文件格式是更好的) 目前我偏向于使用 btrfs 实现回滚误删与发现损坏,使用 freefilesync 修复损坏 |
18
busier 220 天前
@cellargalaxy RAID 镜像解决的是不停机更换硬盘,高可用范畴。对备份来说没什么意义。
"使用软件手动实现类似 Raid 的效果,目前找到最贴近的是用 freefilesync 对两份文件进行比较替换" 这实现的叫同步,与 RAID 镜像是两个概念 |