数据集历史线从快照分支到克隆;另一快照上的独立锁形表示用户 hold。

ZFS 快照给文件系统一个回退键

ZFS 快照通过写时复制引用保留某一时点的数据集视图,不需要把全部数据另复制一遍。只要还有引用需要旧块,它们就继续保留。但创建仍涉及元数据与同步工作,不能承诺零分配,也不能把在提示符重画之前返回当作实测保证。本次没有运行 ZFS,保留文件中也未找到原文所称实验的原始输出,所以数值与运行效果必须单独限定来源。 这样的历史适合本地恢复,但 tank/data 的快照仍位于同一个池。让池不可用的故障,也可能让全部快照不可用。这描述的是共享故障边界,不是断言每次控制器故障都会原子地毁掉所有块。独立备份或复制还需要自己的保留策略及恢复验证,不能仅因另一处存在相同名字,就宣布已经获得完整灾难恢复能力。 为一个一致的树命名 快照原子地捕获数据集的文件系统状态;递归 -r 会让后代数据集在同一时刻建立快照。不递归时,子数据集被遗漏,并不是自动晚一点另拍一份。文件系统一致不等于应用检查点:数据库缓冲、日志以及选定数据集之外的文件,仍需遵循应用支持的备份或崩溃恢复流程。必须协调所有必要部分,才能把整组状态作为可恢复对象。 tank/data@daily-2026-09-16 这样的名字可以辅助保留策略,还应结合创建时间、属性与备份记录;名字本身不是删除资格的证明。zfs list -t snapshot -o name,used,refer,creation -s creation 用于观察快照及空间统计,真正清理之前还要检查依赖和 hold。自动命名也可以被可靠管理,关键是保留规则有明确、可追溯的依据。 空间在哪里:zfs list -o space zfs list -o space tank/data 选择 NAME、AVAIL、USED、USEDSNAP、USEDDS、USEDREFRESERV 与 USEDCHILD,不包含 REFER。USED 分解为四项 used-by 类别,不能写成 REFER 加 USEDSNAP。REFER 表示数据集可访问的数据,其中也可能有共享块。单份快照的 USED 统计其独有引用,删除其他快照还会改变这个值,所以逐份相加不等于整体可回收空间。 ...

三月 21, 2028 · 2 分钟 · XB Field Notes