xfs文件系统的备份和恢复
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 级别代表:
0 完全备份
1 到9级别代表: 增量备份
扩展:
- 完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化;
- 增量备份:每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份;
- 差异备份:每次都将第一次完整备份以来有变化的文件进行备份。
一、备份
备份整个分区。(这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)
xfsdump -f 备份存放位置 要备份路径或设备文件
注意:备份的路径要写/dev下面的文件系统的路径
备份/dev/mapper/centos-data文件系统,也就是/wxj里边的所有文件

查看/wxj的文件

备份
[root@cnbugs_com_21 ~]# xfsdump -f /opt/dump_wxj /dev/mapper/centos-data
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> dump_wxj //指定备份会话标签
session label entered: "dump_wxj"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of cnbugs_com_21:/wxj
xfsdump: dump date: Thu Jun 11 10:58:18 2020
xfsdump: session id: 2486b07f-4bb2-4fd3-9fb3-df7bfce1bff8
xfsdump: session label: "dump_wxj"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 395717184 bytes
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> centos-data //指定设备标签,对要备份的设置做一个描述
media label entered: "centos-data"
--------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 395793184 bytes
xfsdump: dump size (non-dir files) : 395760408 bytes
xfsdump: dump complete: 30 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /opt/dump_wxj OK (success)
xfsdump: Dump Status: SUCCESS
指定备份时免交互操作,方便后期做定时备份
xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1
- -L :xfsdump 纪录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明
- -M :xfsdump 可以纪录储存媒体的标头,这里可以填写此媒体的简易说明
指定只备份分区中某个目录
参数:
- -s 文件路径 只对指定的文件进行备份,
- -s指定时,路径写的是相对路径(-s可以是文件或目录)
xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1
查看生成的备份信息与内容
备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息

二、还原测试
删除/wxj所有的目录和文件

恢复所有文件
[root@cnbugs_com_21 ~]# xfsrestore -f /opt/dump_wxj /wxj

查看文件是否恢复

恢复单个文件如下:
xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/
xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/ #恢复目录
注:
使用 xfsdump 时,请注意下面下面的几个限制:
- xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
- xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
- xfsdump 只能备份 XFS 文件系统
- xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
- xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统
三、增量备份
进行一次全备
xfsdump -f /opt/test-full /sdb1 -L test-full -M media0
进行一次增量备份
xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0
进行二次增量备份
xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0
四、增量备份恢复
步骤
- 1、先恢复完全备份
- 2、情况1: 恢复最后一次增量备份(如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了。
- 3、情况2:如果你做的是第一次是1级备,第二次是2级备,那么你在恢复的时候就需要先恢复完全备份,然后是1级备,最后是2级备)
xfsrestore -f /opt/test-full /sdb1/
xfsrestore -f /opt/test-back1 /sdb1/
xfsrestore -f /opt/test-back2 /sdb1/