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 时,请注意下面下面的几个限制:

  1. xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
  2. xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
  3. xfsdump 只能备份 XFS 文件系统
  4. xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
  5. 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/

发表评论

后才能评论