首页 > 技术文章 > 017 文件xfs_repair恢复,xfs_dump恢复,lvm动态扩容

zhaokunhao 2021-03-29 21:33 原文

xfs_repair

dd命令

dd if=/dev/zero of=/dev/sdb bs=500M count=1 
 
if : 从哪里读文件
of : 写入到哪里
bs : 写入500M
count : 写一块

模拟文件系统出问题

1、直接向硬盘中写数据,*不能测试向分区写数据
2、卸载之后重新挂载
[root@localhost ~]# mount /dev/sdc1 /root/test
mount: mount /dev/sdc1 on /root/test failed: Structure needs cleaning

3、对文件系统进行修复
xfs_repair [磁盘或分区路径]

注: xfs_repair修改硬盘之后,硬盘数据丢失,所以对重要的数据要进行数据备份

文件系统的备份与恢复

备份:另外再保存一份
恢复:将以前保存的数据进行还原

touch 1.txt
echo aaaa > 1.txt
cp  1.txt   2.txt

rm 1.txt

cp 2.txt 1.txt

1.log   1T = 1024G

全量备份和增量备份
全量备份:将需要备份的文件全部复制一份
增量备份:在原来备份基础上,把新增数据重新备份一份

备份与恢复的命令
xfsdump : 备份的命令
xfsrestore  : 恢复的命令


# 备份的步骤
1、安装备份命令
[root@localhost test]# yum install xfsdump -y

2、备份的等级
0  全量备份
1 ~ 9 增量备份(等级)

3、备份的参数
-L :记录每次备份的地方
-M :注释,此次备份的注释
-l :指定备份的等级
-f :备份的文件名称
-I :查看备份信息

4、备份的条件(限制)
	1、必须使用root权限
	2、只能备份已经挂载的内容
	3、只能备份xfs文件系统
	4、只能够用xfsrestore来恢复

5、备份的命令格式
xfsdump -L [信息] -M [备注] -l [级别] -f [源文件] [目标目录]

xfsdump -L sdb1_bak -M "sbd1_from_xxx" -l 0 -f sdb1_from_bak_1 /root/oldboy

6、数据恢复
xfsrestore

7、恢复数据的参数
-f : 指定备份的文件路径

8、恢复的格式
xfsrestore -f [备份的文件] [恢复的目标目录]

[root@localhost oldboy]# xfsrestore -f /root/sdb1_from_bak_3 /root/oldboy/

LVM

1、什么是lvm

你如何保证你的硬盘空间恰好够用?
如果你的硬盘你不够用了怎么扩容?

LVM是文件系统管理工具

/root/oldboy --->  lv[5G]
/root/oldboy --->  lv[3G]

2、LVM的优点
	1、可以动态扩容与缩容
	2、可以将新增加的硬盘添加到VG存储池
	3、可以突破物理存储卷的限制

3、使用lvm
	1、安装lvm软件包
		yum install lvm2 -y
	2、将磁盘交给pv
		pvreate [磁盘/磁盘分区]
	3、查看pv
		pvs
		pvscan
	4、创建vg
		vgcreate [vg名称] [pv路径]
		[root@test1 ~]# vgcreate vg1 /dev/sdb2 /dev/sdb3
 		 Volume group "vg1" successfully created
	5、查看vg
		vgs
	6、创建lvm逻辑卷(lv)
		-L : 创建逻辑卷的大小
		-n : 逻辑卷的名字
		lvcreate -L [大小] -n [lv名] [vg路径]
		[root@test1 ~]# lvcreate -L 30G -n lv1 vg1
  		Logical volume "lv1" created.
  		
	7、制作文件系统
		mkfs.xfs /dev/vg1/xxx
	
	8、挂载文件系统
		mount [lv的路径] [挂载点的路径]

在线动态扩容

在线扩容的意思为:在不⽤卸载的情况下完成扩容.

lvextend -L [+]MGT /dev/VG_NAME/VL_NAME
# 注意:-L 100M 与 -L +100M不是⼀个意思,后者代表在原有的基础上扩容
lvextend -L [扩容量] [目标盘]

[root@test1 ~]# lvextend -L +8G /dev/mapper/vg1_sdc-lv1_vg1_sdc 
  Size of logical volume vg1_sdc/lv1_vg1_sdc changed from 20.00 GiB (5120 extents) to 28.00 GiB (7168 extents).
  Logical volume vg1_sdc/lv1_vg1_sdc successfully resized.

[root@test1 ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         979M     0  979M   0% /dev
tmpfs                            991M     0  991M   0% /dev/shm
tmpfs                            991M  9.5M  981M   1% /run
tmpfs                            991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root           18G  3.9G   15G  22% /
/dev/sda1                       1014M  194M  821M  20% /boot
tmpfs                            199M     0  199M   0% /run/user/0
/dev/mapper/vg1_sdc-lv1_vg1_sdc   20G   33M   20G   1% /root/sdb1

#这时候需要更新fs⽂件系统
[root@test1 ~]# xfs_growfs /dev/mapper/vg1_sdc-lv1_vg1_sdc 
meta-data=/dev/mapper/vg1_sdc-lv1_vg1_sdc isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 5242880 to 7340032

#这时候再查看一下发现增长了
[root@test1 ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         979M     0  979M   0% /dev
tmpfs                            991M     0  991M   0% /dev/shm
tmpfs                            991M  9.5M  981M   1% /run
tmpfs                            991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root           18G  3.9G   15G  22% /
/dev/sda1                       1014M  194M  821M  20% /boot
tmpfs                            199M     0  199M   0% /run/user/0
/dev/mapper/vg1_sdc-lv1_vg1_sdc   28G   33M   28G   1% /root/sdb1
#删除
# 删除lv之前需要先卸载挂载点
[root@egon ~]# umount /test3
[root@egon ~]# lvremove /dev/vg2/lv1_from_vg2
# 删vg
[root@egon ~]# vgremove vg2
# 删pv:只能删掉那些不属于任何vg的pv
[root@egon ~]# pvremove /dev/sdb2
[root@egon ~]# pvremove /dev/sdb3

推荐阅读