XFS提供了xfsdump和xfsrestore工具协助备份XFS 文件系统中的数据。xfsdump按inode顺序备份一个XFS文件系统。
Centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。
与传统的UNIX文件系统不同,XFS不需要在备份前被卸载;对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无需冻结文件系统。xfsdump甚至提供了高性能的多线程备份操作——它把一次dump拆分为多个数据流,每个数据流可以被发往不同的目的地。
xfsdump的备份级别有以下两种,默认为0 (即完全备份)
0 级别代表 完全备份
1到9级别代表 增量备份
扩展:
完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化
增量备份:每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份
差异备份:每次都将第一次完整备份以来有变化的文件进行备份
环境:
centos7添加一块硬盘
所需操作
在线硬盘刷新
for i in {0..32};do echo "- - -" >/sys/class/scsi_host/host$i/scan;done
创建分区 格式化 挂载
fdisk /dev/sdb (m帮助 n创建一个新的分区 p创建一个主分区 分区号1-4 起始扇区 +1G大小 w保存更改)
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /挂载点
准备测试文件备份
[root@localhost backup]# tree sdb1/
sdb1/
├── 1
│ ├── a.txt
│ ├── b.txt
│ ├── c.txt
│ └── kylin.txt
├── 1.txt
├── 2.txt
└── passwd
1、备份整个分区 (类似虚拟机快照)
xfsdump -f 备份的存放位置 要备份的路径或设备文件
**注:**备份路径这里不可写为/dev/sdb1/ 可写为 /dev/sdb1 /sdb1 (即路径后不可以加/)
2、指定备份时免交互操作,方便后期做定时备份
-L:xfsdump 记录每次备份的session标头,这里可以填写针对此文件系统的简易说明
-M:xfsdump 可以记录储存媒体的标头,这里可以填写此媒体的简易说明
3、指定只备份分区中某个目录或文件
参数:-s 文件路径 只对指定的文件进行备份 -s指定时,路径写的是相对路径
xfsdump -f /opt/test_backup -s passwd /opt/sdb1 -L a1 -M sdb1
绝对路径为 /opt/sdb1/passwd
4、查看备份信息与内容
备份成功后,可在/var/lib/xfsdump/inventory目录下看到生成的档案信息
xfsdump -I
大写字母i
测试恢复
xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件路径
[root@localhost ~]# xfsrestore -f /opt/backup/dump_spasswd /opt/backup/sdb1/
单个文件恢复:xfsrestore -f 3-25-sbackup -s passwd /opt/backup/sdb1
注:
使用xfsdump时,注意下面几个限制
1、xfsdump不支持没有挂载的文件系统备份,所以只能备份已挂载的
2、xfsdump必须使用root的权限才能操作(涉及文件系统的关系)
3、xfsdump只能备份XFS文件系统
4、xfsdump备份下来的数据(档案或储存媒体)只能让xfsrestore解析
5、xfsdump是透过文件系统的UUID来分辨各个备份档的,因此不能备份两个具有相同UUID的文件系统
增量备份
概念
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推
优缺点
优点:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短
缺点:数据恢复相对比较麻烦,他需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且它们必须沿着从全备份到依次增量备份的时间顺序逐个反推恢复,因此可能会延长恢复时间
实战增量备份文件系统
准备相应备份目录
xfsdump -f 进行第一次完全备份
然后增加一些内容 文件 进行第1次增量备份
xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0
-l 做一个等级为1的备份
继续增加内容 第2次增量备份
xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak1 -M media0
删除所有数据进行恢复测试
要想恢复全部数据,包括新添加的文件,如何恢复
步骤:
1、先恢复完全备份
2、情况1:恢复最后一次增量备份(如果两次增量备份都是1级的,所有只需要恢复最后一个增量就可以了)
3、情况2:如果你做的第一次是1级备份,第二次是2级 那么你在恢复的时候就需要先恢复完全备份,然后是1级 最后是2级
恢复与先前无异 此处不做演示
xfs备份小记
by:kylin 2019-3-25