xfsdump 是什么
xfsdump 与 xfsrestore 是 XFS 文件系统自带的一对备份工具:前者把整个文件系统备份成 dump 归档,后者负责恢复。它支持全量与多级增量(-l 0 到 9),增量之间靠本机库存记录推算变化,归档是专用格式,必须用 xfsrestore 读取,不能用 tar 解包。适合整文件系统级别的备份与同版本 XFS 之间的迁移。
基本信息
| 适用平台 | Linux(内核与工具链需支持 XFS) |
|---|---|
| 备份级别 | -l 0 全量,-l 1 至 9 为增量,数字越小变化范围越大 |
| 库存记录 | /var/lib/xfsdump/inventory,增量推算依赖它 |
| 常用选项 | -L 会话标签、-M 介质标签、-f 输出目标 |
| 权限要求 | 读写文件系统与库存需要 root |
| 已知限制 | 只能备份 XFS,dump 为专用格式,恢复必须用 xfsrestore |
典型使用场景
- 大文件系统(数据盘、镜像仓库)的整卷备份,比 tar 更适合海量小文件
- 用多级增量压缩每日备份窗口:一级增量只含自上次全量以来的变化
- 同版本 XFS 之间的数据盘迁移或换盘
- 从归档中挑单个文件或目录恢复,不必先整卷还原
- 发布或变更前留存一份整卷快照式归档,便于整体回退
全量与增量
全量与增量
xfsdump -l 0 -L full -M media0 -f /backup/xfs-full.dump /mnt/xfs # 全量
xfsdump -l 1 -L inc1 -M media1 -f /backup/xfs-inc1.dump /mnt/xfs # 一级增量
xfsdump -I # 查看库存与会话
xfsrestore -f /backup/xfs-full.dump /mnt/restore # 先恢复全量
xfsrestore -f /backup/xfs-inc1.dump /mnt/restore # 再按序应用增量
xfsrestore -f /backup/xfs-full.dump -t # 只列内容,不写盘
# 恢复目标建议是空目录或已格式化的新文件系统库存与归档列读法
| 字段 | 含义 | 正常/异常 |
|---|---|---|
| file system / mount point | 被备份的文件系统与挂载点 | 与预期路径不符说明备错了对象 |
| session id / label | 会话编号与标签,增量靠它串联 | 增量引用不到父会话,恢复链就断了 |
| level | 0 全量,1 至 9 增量 | 缺全量时增量无法独立恢复 |
| media label / objects | 介质标签与对象数 | 对象数异常偏少要查排除规则是否写错 |
| start / end time | 本次会话的时间窗 | 与备份计划不符说明调度有偏差 |
增量依赖库存记录:备份机重建、重装系统后库存目录会丢失,多级增量关系随之断裂,只能重新做全量。备份与恢复前都建议先用 xfsdump -I 核对库存状态。
对比 tar 的取舍:tar 更适合目录级、可跨文件系统搬运的归档;xfsdump 更适合整个 XFS 文件系统、需要多级增量的场景。两者都不能解决运行中数据库的应用一致性问题。