基本文件管理与XFS文件系统备份恢复

1.4 实战:xfs文件系统的备份和恢复
XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。

与传统的UNIX文件系统不同,XFS不需要在dump前被卸载;对使用中的XFS文件系统做dump就可以保证镜像的一致性。这与XFS对快照的实现不同,XFS的dump和restore的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。

 

首先了解一下xfsdump的备份级别有以下两种,默认为0(即完全备份)

0 完全备份

1 增量备份

参数说明

-f 指定备份文件目录

-L 指定 标签 session label

-M 指定 设备标签 media label

单个文件备份:

-s 参数可以备份单个文件,但是

xfsdump -f /opt/dump_passwd -s /sdb1/passwd -L dump_passwd -M passwd

-s后面不能直接跟路径,应该是下面这样的:

xfsdump -f /opt/dump_passwd -s passwd /sdb1 -L dump_passwd -M passwd

 

实验环境 系统RHEL7.2 添加一块虚拟硬盘

准备一个测试分区
首先添加一块硬盘/dev/sdb,格式化为xfs文件系统

正常使用一块磁盘

添加磁盘à分区à格式化à挂载

[root@xuegod60 ~]# fdisk /dev/sdb #指定分区的设备

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Command (m for help): n #创建一个新的分区

Partition type:

p primary (2 primary, 0 extended, 2 free) #创建主分区

e extended #创建扩展分区

Select (default p):

Using default response p

Partition number (3,4, default 3): #指定分区号

First sector (25593856-41943039, default 25593856): #指定分区的开始柱面

Using default value 25593856

Last sector, +sectors or +size{K,M,G} (25593856-41943039, default 41943039): +1G #指定分区大小

Partition 3 of type Linux and of size 1 GiB is set

 

Command (m for help): p #打印分区表

 

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x00083333

 

Device Boot Start End Blocks Id System

/dev/sdb1 25593856 27691007 1048576 83 Linux

 

Command (m for help): w #保存

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

 

格式化分区,并进行挂载
建立了一个名为sdb1的目录,把/dev/sdb1挂载在其目录下,并在下面创建两个文件做测试

[root@xuegod60 ~]# mkfs.xfs /dev/sdb1 #格式化分区

 

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

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


准备备份测试文件

[root@xuegod60 ~]# cp /etc/passwd /sdb1/

[root@xuegod60 ~]# mkdir /sdb1/test

[root@xuegod60 ~]# ls /sdb1/

passwd test

 

1) 对整个分区进行备份
2)如果没有找到xfsdump 命令

[root@xuegod60 ~]# xfsdump -f /opt/dump_sdb1 /sdb1

注意:备份的设备这里不能写成/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 xuegod60.cn:/sdb1

xfsdump: dump date: Thu Jan 28 22:01:25 2016

xfsdump: session id: 29356f1f-8957-4fe0-ad70-2ae087f27abe

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: 25536 bytes

xfsdump: /var/lib/xfsdump/inventory created

 

============================= media label dialog =============================

 

please enter label for media in drive 0 (timeout in 300 sec)

-> media0

#指定设备标签

media label entered: "media0"

 

--------------------------------- 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 24232 bytes

xfsdump: dump size (non-dir files) : 2592 bytes

xfsdump: dump complete: 48 seconds elapsed

xfsdump: Dump Summary:

xfsdump: stream 0 /opt/dump_sdb1 OK (success)

xfsdump: Dump Status: SUCCESS

 

删除刚刚备份的文件

非交互式进行备份
[root@xuegod60 ~]# xfsdump -f /opt/dump_sdb1 /sdb1 -L dump_sdb1 -M media0

 

注意:passwd /sdb1中间有空格,前后都不能加“/”


针对指定文件或目录进行备份

[root@xuegod60 ~]# xfsdump -f /opt/dump_passwd -s passwd /sdb1 -L dump_sdb1_passwd -M media1


查看备份文件是否生成

[root@xuegod60 opt]# ls

查看备份信息

[root@xuegod60 ~]# xfsdump -I (大写)


文件系统恢复


首先,模拟数据被删除

[root@xuegod60 ~]# rm -rf /sdb1/*

恢复

[root@xuegod60 ~]# xfsrestore -f /opt/dump_sdb1 /sdb1/


只恢复单个的目录或文件

[root@xuegod60 ~]# xfsrestore -f /opt/dump_sdb1_passwd /sdb1/

 

posted @ 2019-04-29 19:16  Boks  阅读(235)  评论(0)    收藏  举报