linux-文件系统管理07-备份恢复xfs系统

来源:互联网 发布:韩国网络主播视频资源 编辑:程序博客网 时间:2024/05/06 19:14

Xfsdump-xfsrestore备份恢复系统

<1>.系统备份:
命令:
Xfsdump -l 0 -f /dev/device /path/to/filesystem -L [指定会话标签] -M [媒体标签]

解释:
#1:-f 指定备份到的目的地址
#2:-l 指定一个备份等级(0-9),0为全备份,1-9为增量备份,备份1-9一 次增加。Man手册例如:

最坏需要等级0,1,2,3,4,5,6去恢复
星期一 星期二 星期三 星期四 星期五 星期六 星期天 -l
3(增) 4(增) 5(增) 6(增) 0(全) 1(增) 2(增) 0-9

最坏需要等级0,1,2去恢复。

星期一 星期二 星期三 星期四 星期五 星期六 星期天 -l
1(增) 2(增) 1(增) 2(增) 0(全) 1(增) 2(增) 0-9

2.系统恢复:
<1>查看备份会话的具体信息:
xfsrestore -I
使用-S:用会话ID来指定备份的会话;也可以用-L:会话标签来指定要恢复的具体会话。-S,-L原定其中之一,会话ID也是根据会话标签生成的UUID。

<2>指定会话ID恢复系统
xfsrestore -f /dev/device -S 【UUID】 /path/to/destination
<3> 指定会话标签恢复系统
xfsrestore -f /dev/device /path/to/destination -L [会话标签]

<4> -i参数,交互式,恢复选择的文件及目录(目录包括递归子目录)
xfsrestore -f /dev/device -i [指定一个目录]
子命令:Cd,add,delete,extract,help,quit。

3.测试1(linux标准分区)
测试小项1:
备份到其他硬盘,恢复到自身硬盘.相对简单。
测试小项2:
备份到其他硬盘,恢复到其他硬盘。
将如下sda的系统备份后,恢复到sdb,能正常启动。主要动作:将sdb中的根分区(/dev/sdb3)备份后恢复到到sda的/dev/sda3,将sdb中的boot分区(/dev/sdb1)备份后恢复到到sda的/dev/sda1。

说明:
[root@localhost home]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 500M 0 part /mnt/boot
├─sda2 8:2 0 10G 0 part
├─sda3 8:3 0 100G 0 part /mnt/root
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 100G 0 part
├─sda6 8:6 0 100G 0 part
└─sda7 8:7 0 621G 0 part
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 500M 0 part /boot
├─sdb2 8:18 0 7.8G 0 part [SWAP]
└─sdb3 8:19 0 50G 0 part /

本次模拟测试环境:
sda硬盘—为备份盘。
sdb硬盘—为工作盘。
sdb上的三个分区,一个挂载“/”,一个挂载“/boot”,一个作为“swap”。文件系统为xfs,系统为centos7.0的服务器版本,系统建立在标准分区上(/与boot,swap都是)。

[root@localhost home]# blkid
/dev/sda1: UUID=”7c0b3ebd-0966-4a34-87e5-8851691ed1ff” TYPE=”xfs”
/dev/sda2: UUID=”fbf761ee-9296-4809-ac20-57618d419467” TYPE=”swap”
/dev/sda3: UUID=”0ea6efae-d5cf-43ec-98a5-0f8f9e080bd1” TYPE=”xfs”
/dev/sda7: UUID=”0275488a-e51b-49ac-9811-c93235aff164” TYPE=”xfs”
/dev/sdb1: UUID=”97dc27e1-b42c-432f-b3c9-8c5714a3e3f7” TYPE=”xfs”
/dev/sdb2: UUID=”472c929a-7aab-415d-9c20-1acc79ad5256” TYPE=”swap”
/dev/sdb3: UUID=”e34e3337-777d-4898-bef4-c5916a01ff33” TYPE=”xfs”
本次测试备份的目的分区:
/dev/sda5:为“/”备份的目的分区。
/dev/sda6:为“/boot”备份的目的分区。

步骤:
<1>.创建分区:命令fdisk /dev/sda进入与交互模式,输入m可以查看相应的使用命令。每一个硬盘最多可以创建4个主分区,而扩展分区可以再创建任意多个逻辑分区,有了扩展分区,我们就可创建任意我们想要的分区个数。

说明:
/dev/sda1 ,/dev/sda3===>为linux标准分区,默认ID为83,交互模式中输入a,设置为启动分区。
/dev/sda2 ===>ID为82,输入t修改,设置ID为swap交换分区。(也可以分区完成后,使用mkswap /dev/sda2同样的作用)
/dev/sda4===>为扩展分区.
—-/dev/sda5
—-/dev/sda6
—-/dev/sda7
<2>格式化分区:
Mkfs -t xfs /dev/sda1
Mkfs -t xfs /dev/sda3
Mkfs -t xfs /dev/sda5
Mkfs -t xfs /dev/sda6
Mkfs -t xfs /dev/sda7
有时候需要加上-f
<3>从sdb启动,关闭selinux。备份之前需要关闭。(选择下面的三)
1>.查看SELinux状态:
/usr/sbin/sestatus -v 或是getenforce
2>.临时关闭(不用重启机器):
setenforce 0
设置SELinux 成为permissive模式
setenforce 1 设置SELinux 成为enforcing模式
3>.修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
<4>从sdb启动,开始备份
备份/dev/sdb1(/)到/dev/sda5分区中:
xfsdump -l 0 -f /dev/sda5 / -L 12_02_root_01 -M 12_02_root_01_media

备份/dev/sdb1(boot)到/dev/sda6分区中:
xfsdump -l 0 -f /dev/sda6 /boot -L 12_02_boot_01 -M 12_02_boot_01_media

<5>.将系统恢复到sda中
恢复“/”:
Cd /mnt
Mkdir root
Mount /dev/sda3 /mnt /root
xfsrestore -f /dev/sda5 /mnt/root -L 12_02_root_01
恢复“boot”:
Cd /mnt
Mkdir boot
Mount /dev/sda1
xfsrestore -f /dev/sda6 /mnt/boot -L 12_02_boot_01
<6>.修改恢复后的数据(就是硬盘分区中的UUID的指向)
1>.blkid查看硬盘的具体UUID
2>.mount /dev/sda1 /mnt/boot ==>修改文件/mnt/boot/grub2/grub.cfg
将“/”挂载的分区点的指向/dev/sdb3,改为指向/dev/sda3
3>.mount /dev/sda3 /mnt/root ==>修改文件/mnt/root/etc/fstab
将“boot”挂载的分区点的指向/dev/sdb1,改为指向/dev/sda1, 指在系统启动时,启动sda中的boot,然后挂载sda中的“/”.
<7>.重新启动,选择从sda硬盘启动。
<8>.打开selinux

4.测试实验2(LVM分区):
说明:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 500M 0 part
├─sda2 8:2 0 100G 0 part
│ ├─centos00-root 253:2 0 60G 0 lvm
│ └─centos00-swap 253:3 0 10G 0 lvm
├─sda3 8:3 0 100G 0 part
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 100G 0 part
└─sda6 8:6 0 631G 0 part
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 500M 0 part /boot
└─sdb2 8:18 0 57.8G 0 part
├─centos-swap 253:0 0 7.8G 0 lvm [SWAP]
└─centos-root 253:1 0 50G 0 lvm /

本次模拟测试环境:
sda硬盘—为备份盘。
sdb硬盘—为工作盘。
sdb上的两个分区,一个挂载“/boot”,“swap”与“/”公用一个分区,建立在lvm之上。文件系统为xfs,系统为centos7.0的服务器版本,系统建立在lvm格式的逻辑卷上(boot建立在标准分区,/与swap建立在lvm上)。

[root@localhost kboot]# blkid
备份:
/dev/sda1: UUID=”09bfb02f-f681-4e42-ba38-e3c34f85edc0” TYPE=”xfs”
/dev/sda2: UUID=”ueCZxM-AbDk-lC6B-H2xC-S19F-BYjt-mKzLkQ” TYPE=”LVM2_member”
/dev/mapper/centos00-root: UUID=”7d179961-20fc-40f2-a209-4cfc1490fc72” TYPE=”xfs”
/dev/mapper/centos00-swap: UUID=”dde9b982-1cd5-4b95-933e-90379c00c65b” TYPE=”swap”
正常工作:
/dev/sdb1: UUID=”99ce67c1-1748-42e4-80ec-fa80b1ab273f” TYPE=”xfs”
/dev/sdb2: UUID=”PPx9As-vHLo-WWuu-Tug2-AHH6-z4dX-aXQgC0” TYPE=”LVM2_member”
/dev/mapper/centos-swap: UUID=”f11ee9e0-3c5e-4856-9449-dbb9de410fe3” TYPE=”swap”
/dev/mapper/centos-root: UUID=”35811a35-38a5-49da-96f4-dfa6db5230a5” TYPE=”xfs”

本次测试备份的目的分区:
/dev/sda5:为“/”备份的目的分区。
/dev/sda6:为“/boot”备份的目的分区。
步骤:
<1>.分区sda :fdisk /dev/sda
<2>.建立PV,VG,LV
a)Pvcreate /dev/sdb2 ===》创建PV
Pvdisplay ===》显示所有PV
b)Vgcreate centos00 /dev/sda2===》创建PV
Vgdisplay ===> 显示vg
c)Lvcreate -L 10G -n swap centos00 ===》在VG上建立lv
Lvcreate -L 50G -n root centos00
Lvdisplay ===>显示lv
<3>.格式化
a)mkfs -t xfs -f /dev/sda1
b)Mkfs -t xfs -f /dev/centos00/root ===>根式化根的lvm逻辑分区
/dev/sda3 ,/dev/sda5,/dev/sda6,/dev/sda7 同样。
c)Mkswap /dev/centos00/swap ===>格式化交换分区
<4>失能selinux
<5>备份,恢复同上
<6>.修改—-同测试1 + 修改VG,LV的名字,与我们在建立PV,VG,LV的名字相同,在如下文件。
1>.mount /dev/sda1 /mnt/boot ==>修改文件 /mnt/boot/grub2/grub.cfg
<7>.重启,设置bios,从sda盘启动

5.测试实验3(构建在LVM之上的增量备份)
接着4(在“测试实验三”之上增加增量备份测试)

测试:
[root@localhost test]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 100G 0 part /mnt/test
├─sda2 8:2 0 100G 0 part
└─sda3 8:3 0 731.5G 0 part
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 500M 0 part /boot
└─sdb2 8:18 0 57.8G 0 part
├─centos-swap 253:0 0 7.8G 0 lvm [SWAP]
└─centos-root 253:1 0 50G 0 lvm /
sdc 8:32 0 931.5G 0 disk
├─sdc1 8:33 0 500G 0 part
└─sdc2 8:34 0 431.5G 0 part

备份:

星期天:
xfsdump -L 12_05_full_01 -M boot_media_full -l 0 -f /dev/sda1 /boot
xfsdump -L 12_05_inrc_02 -M boot_media -l 1 -f /dev/sda3 /boot
xfsdump -L 12_05_inrc_03 -M boot_media -l 1 -f /dev/sda3 /boot

恢复:
Cd /mntmqn
Mkdir kboot
Mount /dev/sda1 /mnt/kboot

xfsrestore -L 12_05_full_01 -f /dev/sda1 -r /mnt/bboot
xfsrestore -L 12_05_inrc_02 -f /dev/sda3 -r /mnt/bboot

6.Centos7.0带openstack系统从备份盘恢复到其它硬盘

备份硬盘说明:
#sda 8:0 0 931.5G 0 disk
#├─sda1 8:1 0 500M 0 part ===》备份盘系统boot分区(系统异常可以从此系统启动)
#├─sda2 8:2 0 154.3G 0 part ===》备份盘系统lvm-之root与swap
#│ ├─centos00-swap 253:2 0 7.8G 0 lvm
#│ └─centos00-root 253:3 0 146.5G 0 lvm
#├─sda3 8:3 0 146.5G 0 part ===》系统根全备份分区
#├─sda4 8:4 0 1K 0 part
#├─sda5 8:5 0 48.8G 0 part ===》系统根增量备份分区
#├─sda6 8:6 0 1000M 0 part ===》系统boot备份分区
#└─sda7 8:7 0 580.5G 0 part
#

测试项目:在备份硬盘中的数据在另外一个硬盘中恢复(sda–>sdc)
步骤如下:
<1>.环境介绍
整个sda是从工作的centos7的服务器,中摘下来的硬盘。然后安装在另外一个电脑上面,期盼盘符也是sda。这一台电脑有两个硬盘sdb–系统盘,sdc–》恢复目的盘。
将sdc格式化如下图所示,以备还原服务器。

[root@localhost mnt]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 500M 0 part
├─sda2 8:2 0 154.3G 0 part
│ ├─centos00-swap 253:2 0 7.8G 0 lvm
│ └─centos00-root 253:4 0 146.5G 0 lvm
├─sda3 8:3 0 146.5G 0 part
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 48.8G 0 part
├─sda6 8:6 0 1000M 0 part
└─sda7 8:7 0 580.5G 0 part
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 500M 0 part /boot
└─sdb2 8:18 0 57.8G 0 part
├─centos-swap 253:0 0 7.8G 0 lvm [SWAP]
└─centos-root 253:1 0 50G 0 lvm /
sdc 8:32 0 931.5G 0 disk
├─sdc1 8:33 0 500M 0 part
├─sdc2 8:34 0 150G 0 part
│ ├─centos11-swap 253:3 0 10G 0 lvm
│ └─centos11-root 253:5 0 130G 0 lvm
└─sdc3 8:35 0 781G 0 part
sdd 8:48 1 14.9G 0 disk
└─sdd4 8:52 1 14.9G 0 part

<2>.xfsrestore恢复

<3>.查看UUID
[root@localhost bboot]# blkid
/dev/sdc1: UUID=”38831391-6c90-4d0c-a67e-4321ca396234” TYPE=”xfs”
/dev/sdc2: UUID=”9wm0uq-FIs0-pTiY-mWj7-aAwN-WRmq-0OLfXU” TYPE=”LVM2_member”
/dev/sdc3: UUID=”8ec7bb96-2a86-4306-a8c1-b454b0e0f976” TYPE=”xfs”
/dev/sdb1: UUID=”04e290ee-36d6-48b3-b64f-368d4c66d863” TYPE=”xfs”
/dev/sdb2: UUID=”uHiTHf-JrJn-ZAfP-UaA0-I7UQ-O8XF-dijpSH” TYPE=”LVM2_member”
/dev/sda1: UUID=”66c4908a-1bb5-4a5f-bdb9-745cd66c96f9” TYPE=”xfs”
/dev/sda2: UUID=”0hiB4B-pqP7-QhCN-5ze0-thPo-7lkb-Pf3u3o” TYPE=”LVM2_member”
/dev/sda5: UUID=”3b94bc07-0e16-4fee-aceb-8ec85d23da1c” TYPE=”xfs”
/dev/sda7: UUID=”e8f84b40-4177-4180-aafc-5472426bccf8” TYPE=”xfs”
/dev/mapper/centos-swap: UUID=”0416acbd-41f5-4da9-a9e9-44b58434c765” TYPE=”swap”
/dev/mapper/centos-root: UUID=”515e38d7-1ead-406b-91fe-f4cc19e6c6ee” TYPE=”xfs”
/dev/mapper/centos00-swap: UUID=”083e9683-bdba-4f22-843e-445393a9709c” TYPE=”swap”
/dev/mapper/centos11-swap: UUID=”b2fa3cdf-3e06-4385-b62f-8992edcc5305” TYPE=”swap”
/dev/mapper/centos00-root: UUID=”adc486ed-1e82-4c5e-b695-2c8f9a1681f5” TYPE=”xfs”
/dev/mapper/centos11-root: UUID=”924f23f2-7352-4c6a-90cf-87dc8cefaab7” TYPE=”xfs”
/dev/sdd4: UUID=”785A-2F6E” TYPE=”vfat”

<3>先在boot/grub2/grub.cfg文件的UUID指向,以及VG,LV的名字,一一对应。
可以通过blkid查看。

7.复制一个盘的内容到另一个盘:
% mkdir /root2
% mount /dev/dsk/dks0d2s0 /root2 (make sure it mounts!)
% xfsdump -l 0 - / | xfsrestore - /root2 (copy disk1 to disk 2)
% df -hk / /root2 (verify root2 is using approx. the same amount of disk)

xfsdump -l 0 - / | (cd /mnt/clone && xfsrestore -) . ==>注意最后还有一个点哦

8.恢复常见错误
<1>.错误1:
[root@localhost mnt]# xfsrestore -f /dev/sda6 /mnt/kboot -L 12_04_boot_01
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.3 (dump format 3.0) - type ^C for status and control
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: examining media file 0
xfsrestore: inventory session uuid (615e3b3c-3ff8-4993-9579-80bb0b1430fe) does not match the media header’s session uuid (dc22e2da-98ba-4adc-a7c3-023405c8862f)
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /dev/sda6 OK (success)
xfsrestore: Restore Status: SUCCESS

<2>.错误2:
ERROR: must rm -rf /xfsrestorehousekeepingdir prior to noncumulative restore
解决方法:
将根备份与根的增量分开放入不同的分区中。

9.参考官网:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsbackuprestore.html

1 0
原创粉丝点击