centos7下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 级别代表: 完全备份
1 到9级别代表: 增量备份

二、操作

1.添加虚拟磁盘,大小为20G (要在关机下进行)
centos7下xfs文件系统的备份和恢复_第1张图片2.将新添加的硬盘进行格式化

fdisk /dev/sdb				#指定分区设备

命令(输入 m 获取帮助):n      #创建一个新的分区

Select (default p): p 	   #创建一个主分区

分区号 (1-4,默认 1):1  	   #选择分区好

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G  #指定分区大小

命令(输入 m 获取帮助):p  	  #打印分区表

命令(输入 m 获取帮助):w  	  #保存

[root@localhost~]# ls  /dev/sdb*
/dev/sdb  /dev/sdb1

[root@localhost~]# mkfs.xfs /dev/sdb1    #格式化

3.挂载新分区

[root@localhost~]# mkdir /sdb1     #创建挂载点

[root@localhost~]# mount /dev/sdb1 /sdb1   #挂载

4.准备测试文件

[root@localhost~]# cd /sdb1/

[root@localhost sdb1]# cp /etc/passwd ./

[root@localhost sdb1]# mkdir test

[root@localhost sdb1]# touch test/a

[root@localhost sdb1]# tree /sdb1/

[root@localhost sdb1]# tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a

5.备份文件(这个功能类似于虚拟机快照)

命令格式:xfsdump  -f 备份存放位置 要备份路径或设备文件
[root@localhost sdb1]# xfsdump -f /opt/dump_sdb1  /dev/sdb1

please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1    #指定备份会话标签
 
please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1   #指定设备标签,就是对要备份的设备做一个描述
 

备份的路径这里不能写成/sdb1/,路劲后面不能有“/” 。可以是/dev/sdb1 或/sdb1

6.恢复文件

命令格式:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
  • 删除sdb1里面的所有的内容
[root@localhost sdb1]# rm -rf ./*  
  • 查看sdb1的树状结构
[root@localhost sdb1]# tree /sdb1/
/sdb1/

0 directories, 0 files
[root@localhost sdb1]# 
  • 恢复文件
[root@localhost sdb1]# xfsrestore -f /opt/dump_sdb1 /sdb1
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: localhost
xfsrestore: mount point: /sdb1
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Wed Mar 18 16:10:27 2020
xfsrestore: level: 0
xfsrestore: session label: "dump_sdb1"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 775a6eed-56ac-4e80-aa70-1655555bed6f
xfsrestore: session id: 1f639210-003e-4899-8882-ccbba933b0ba
xfsrestore: media id: cef59841-9b85-4404-91ce-9f49d2a0ba2b
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 2 directories and 3 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /opt/dump_sdb1 OK (success)
xfsrestore: Restore Status: SUCCESS

  • 再次查看sdb1树状结构,文件已经恢复
[root@localhost sdb1]# tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a

1 directory, 2 files

你可能感兴趣的:(Linux)