xfs文件系统的备份与恢复
什么是XFS文件系统
XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为1.2版本,可以很好地工作在2.4核心下。
我们在这里要讲的是xfsdump和xfsrestore命令:
XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。
下面我们来实战:
1、环境准备
实验环境:
系统CentOS7.6添加一块虚拟硬盘(准备一个测试分区)
正常使用一块磁盘过程如下:
添加磁盘大小:20G 分区格式化挂载
对新添加的硬盘进行格式化:
fdisk /dev/sdb
[[email protected] ~]# ls /dev/sdb*
使用新的分区,格式化分区,并进行挂载
[[email protected] ~]# mkfs.xfs /dev/sdb1
[[email protected] ~]# mkdir /xiaoxiao #创建挂载点
[[email protected] ~]# mount /dev/sdb1 /xiaoxiao #挂载
我们开始准备测试文件
[[email protected] ~]# cd /xiaoxiao/
[[email protected] xiaoxiao]# cp /etc/passwd ./
[[email protected] xiaoxiao]# mkdir haha
[[email protected] xiaoxiao]# touch haha/xixi
[[email protected] xiaoxiao]# tree /xiaoxiao/
/xiaoxiao/
├── haha
│ └── xixi
└── passwd
1 directory, 2 files
*1、备份
**1.1、**备份整个分区。 (这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)
xfsdump -f 备份存放位置 要备份路径或设备文件
注意:备份的路径这里不能写成/xiaoxiao/。 可以是/dev/xiaoxiao1或/xiaoxiao
[[email protected] xiaoxiao]# xfsdump -f /opt/dump_xiaoxiao /xiaoxiao
1.2、 指定备份时免交互操作,方便后期做定时备份
[[email protected] xiaoxiao]# xfsdump -f /opt/dump_passwd /xiaoxiao -L dump_passwd -M media1
-L :xfsdump 纪录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明
-M :xfsdump 可以纪录储存媒体的标头,这里可以填写此媒体的简易说明
**1.3、**指定只备份分区中某个目录
参数:-s 文件路径 只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)
[[email protected] xiaoxiao]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-xiaoxiao
**1.4、**查看备份信息与内容
备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息
[[email protected] xiaoxiao]# xfsdump -I
我们现在来测试一下:删除之前创建的内容
[[email protected] xiaoxiao]# ls
haha passwd
[[email protected] xiaoxiao]# pwd
/xiaoxiao
[[email protected] xiaoxiao]# rm -rf ./*
**2、**文件系统恢复
语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
[[email protected] ~]# xfsrestore -f /opt/dump_xiaoxiao /xiaoxiao
[[email protected] ~]# tree /xiaoxiao/ 或 [[email protected] ~]# ls /xiaoxiao/
#查看恢复情况
恢复单个文件如下:
[[email protected] ~]# mkdir /var/xingxing
[[email protected] ~]# xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/xingxing
[[email protected] ~]# xfsrestore -f /opt/dump_grub2 -s grub2 /var/ xingxing #恢复目录
【注】使用 xfsdump 时,请注意下面下面的几个限制:
1、xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
2、xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
3、xfsdump 只能备份 XFS 文件系统
4、xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
5、xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统
2.1增量备份
概念
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推。
优缺点
优点:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。
缺点:数据恢复相对比较麻烦,它需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且它们必须沿着从全备份到依次增量备份的时间顺序逐个反推恢复,因此可能会延长的恢复时间。**
2.1.1增量备份文件系统
准备一个备份目录进行备份
[[email protected] ~]# tree /xiaoxiao
/xiaoxiao
├── haha
│ └── xixi
└── passwd
1 directory, 2 files
#对上面的内容进行一次全备份
[[email protected] ~]# xfsdump -f /opt/xiaohua /xiaoxiao -L xiaohua -M media2
#增加一些内容,然后进行第1次增量备份
[[email protected] ~]# touch /xiaoxiao/a.txt /xiaoxiao/b.txt
[[email protected] ~]# tree /xiaoxiao/
/xiaoxiao/
├── a.txt
├── b.txt
├── haha
│ └── xixi
└── passwd
1 directory, 4 files
[[email protected] ~]# xfsdump -l 1 -f /opt/xiaohua1 /xiaoxiao -L xiaohua1 -M media3
-l 做一个等级为1的备份
再次增加内容,然后进行level 2级别的增量备份
[[email protected] ~]# touch /xiaoxiao/haha/c.txt /xiaoxiao/haha/d.txt
[[email protected] ~]# tree /xiaoxiao
/xiaoxiao
├── a.txt
├── b.txt
├── haha
│ ├── c.txt
│ ├── d.txt
│ └── xixi
└── passwd
1 directory, 6 files
[[email protected] ~]# xfsdump -l 2 -f /opt/xiaohua2 /xiaoxiao -L xiaohua2 -M media3
[[email protected] ~]# rm -rf /xiaoxiao/* #删除所有数据
现在进行恢复,要想恢复全部全部数据,包括新添加的文件,如何恢复?
步骤:
1、先恢复完全备份
2、情况1: 恢复最后一次增量备份(如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了。
3、情况2:如果你做的是第一次是1级备,第二次是2级备,那么你在恢复的时候就需要先恢复完全备份,然后是1级备,最后是2级备)
[[email protected] ~]# xfsrestore -f /opt/xiaohua /xiaoxiao/
[[email protected] ~]# xfsrestore -f /opt/xiaohua2 /xiaoxiao/ #故意先恢复xiaohua2,查看
[[email protected] ~]# tree /xiaoxiao #查看,发现没有a.txt ,b.txt
/xiaoxiao
├── haha
│ ├── c.txt
│ ├── d.txt
│ └── xixi
└── passwd
1 directory, 4 files
[[email protected] ~]# xfsrestore -f /opt/xiaohua1 /xiaoxiao/
[[email protected] ~]# tree /xiaoxiao
/xiaoxiao
├── a.txt
├── b.txt
├── haha
│ ├── c.txt
│ ├── d.txt
│ └── xixi
└── passwd
1 directory, 6 files
至此,全部恢复成功。