XFS提供了xfsdump和xfsrestore工具协助备份XFS文件系统中的数据。
centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4。
xfs专为大数据产生,单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。
与传统的UNIX文件系统不同,XFS不需要在备份前被卸载,对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump甚至提供了高性能的多线程备份操作,它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。
xfsdump的备份级别有以下两种,默认为0(即完全备份)
0级别代表 完全备份
1到9级别代表 增量备份
说明:
完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化;
增量备份:每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份;
差异备份:每次都将第一次完整备份以来有变化的文件进行备份。
增加一块虚拟磁盘
分区–>格式化–>挂载
- 分区
[root@app ~] fdisk /dev/sdb #指定分区的设备
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x06d5a427 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n #创建一个新的分区
Partition type: p primary (0 primary, 0 extended, 4 free) e extended
Select (default p): p #创建一个主分区
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G #指定分区大小
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p #打印分区表
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x06d5a427
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输入 m 获取帮助):w #保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@app ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 - 格式化–>挂载
[root@app ~]# mkfs.xfs /dev/sdb1
[root@app ~]# mkdir /sdb1 #创建挂载点
[root@app ~]# mount /dev/sdb1 /sdb1 #挂载
备份
备份整个分区。(这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)
xfsdump -f 备份存放位置 要备份路径或设备文件
注意:备份的路径这里不能写成/sdb1/。可以是/dev/sdb1 或/sdb1[root@app sdb1]# xfsdump -f /opt/dump_sdb1 /dev/sdb1 xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.4 (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_sdb1 #指定备份会话标签 session label entered: "dump_sdb1" --------------------------------- end dialog --------------------------------- xfsdump: level 0 dump of xuegod63.cn:/sdb1 xfsdump: dump date: Fri Nov 17 12:24:53 2017 xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a xfsdump: session label: "dump_sdb1" 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: 25856 bytes ============== media label dialog ============================= please enter label for media in drive 0 (timeout in 300 sec) -> sdb1 #指定设备标签,就是对要备份的设备做一个描述 media label entered: "sdb1" --------------------------------- 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 24544 bytes xfsdump: dump size (non-dir files) : 2592 bytes xfsdump: dump complete: 46 seconds elapsed xfsdump: Dump Summary: xfsdump: stream 0 /opt/dump_sdb1 OK (success) xfsdump: Dump Status: SUCCESS
备份时免交互操作
xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1 -L:xfsdump 纪录每次备份的session标头,这里可以填写针对此文件系统的简易说明。 -M:xfsdump 可以纪录储存媒体的标头,这里可以填写此媒体的简易说明。
指定只备份分区中某个目录
xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1 参数:-s 文件路径 只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)
查看备份信息与内容:备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息
xfsdump -I
恢复
语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
xfsrestore -f /opt/dump_sdb1 /sdb1 #恢复整个分区
xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/ #恢复单个文件
xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/ #恢复目录
注意:
- xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
- xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
- xfsdump 只能备份 XFS 文件系统
- xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
- xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统。
增量备份
-l <level> 做一个等级为<level>的备份
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推。
优点:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。
缺点:数据恢复相对比较麻烦,它需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且它们必须沿着从全备份到依次增量备份的时间顺序逐个反推恢复,因此可能会延长恢复时间。
第一次全备:
xfsdump -f /opt/test-full /sdb1 -L test-full -M media0
做一个等级为1的增量备份:
xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0
做一个等级为2的增量备份:
xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0
恢复
先恢复完全备份
xfsrestore -f /opt/test-full /sdb1/
如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了
xfsrestore -f /opt/test-back1 /sdb1/
如果你做的是第一次是1级备,第二次是2级备,那么你在恢复的时候就需要先恢复完全备份,然后是1级备,最后是2级备
xfsrestore -f /opt/test-back1 /sdb1/ xfsrestore -f /opt/test-back2 /sdb1/