XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。XFS 特别擅长处理大文件,同时提供平滑的数据传输。
XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的。那时,SGI 发现他们的现有文件系统(existing filesystem,EFS)正在迅速变得不适应当时激烈的计算竞争。为解决这个问题,SGI 决定设计一种全新的高性能 64 位文件系统,而不是试图调整 EFS在先天设计上的某些缺陷。因此,XFS 诞生了,并于 1994 年随 IRIX 5.3 的发布而应用于计算。
实验环境:
CentOS 8.3
添加一块新的硬盘,做备份盘使用,硬盘类型为 scsi 大小设置为20G:
- 使用 fdisk -l 查看硬盘信息(小写 L):
- 没有发现新添加的硬盘,cat /proc/partitions 只能看到一块硬盘:
- 要想识别新添加的硬盘需要重启系统,不想重启的话,使用 echo "scsi add-single-device 2 0 1 0" > /proc/scsi/scsi 添加新的硬盘:
- 重新查看硬盘信息:cat /proc/partitions
- 然后对新硬盘进行分区 fdisk /dev/sdb:
- 然后对新建的磁盘格式化,使用 mkfs.xfs :
- 创建一个 /bak 目录,挂载新的分区 mount /dev/sdb1 /bak:
- 开始备份 /boot 分区,确保分区类型为 xfs :
- 使用 xfsdump -f /bak/boot_full /boot 做完整备份,-f 后面跟要保存的路径及名称, 后面跟要备份的分区名称
- 这里要输入2个label名称,可以自定义
- 使用 xfsdump -I 查看备份信息(大写 i):
测试备份,删除boot分区下的文件(记得做快照),然后使用 xfsrestore -f /bak/boot_full /boot 恢复:
- 准备增量备份,在 boot 分区下cp 一些新的文件:
第一次增量备份 xfsdump -l 1 -f /bak/boot_bak1 /boot -L boot_bak1 -M boot_bak1
- 这里使用 -l(level) 1 默认是0 完全备份,其他 1-9为增量备份
- 删除和增加一些文件后做第2次增量备份
- xfsdump -l 2 -f /bak/boot_bak2 /boot -L boot_bak2 -M boot_bak2
准备恢复,首先恢复完整备份,然后依次从旧到新恢复:
- xfsrestore -f /bak/boot_full /boot
- 恢复指定的文件/目录 xfsrestore -i 交互式,手动选择需要恢复的文件/目录
- add 添加需要恢复的目录/文件,extract 执行
- 使用 -s 指定恢复的目录/文件
- xfsrestore -f /bak/boot_bak2 -s test /tmp/