Linux之XFS文件系统LVM环境移除home分区故障磁盘

一、需求说明

        整个系统挂载了三块硬盘,大小分别为30G,10G,10G;磁盘使用LVM逻辑卷方式管理,文件系统格式为xfs。其中/根分区10G,位于/dev/sda磁盘;/home分区30G,存储空间包括/dev/sda、/dev/sdb、/dev/sdc磁盘,现在磁盘/dev/sdc磁盘有坏道,需要移除,实际使用空间少于14G。需要通过缩小home逻辑卷大小,然后移除故障硬盘sdb。
        原来/home分区大小为30G,如下图:
在这里插入图片描述

二、操作步骤

0、安装xfsdump

        XFS只能扩大不能缩小,所以需要利用xfsdump / xfsrestore 工具在必须缩小lvm 的情况下,备份与还原资料。

#yum -y install xfsdump

1、备份/home分区

        备份/home分区数据到/根分区,备份文件名为home.xfsdump,要求备份文件存储磁盘剩余空间大于/home分区的使用空间

[root@lvxfstest ~]# xfsdump -f /backup/home.xfsdump /home
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control


============================= dump label dialog ==============================


please enter label for this dump session (timeout in 300 sec)
-> home
session label entered: “home”


--------------------------------- end dialog ---------------------------------


xfsdump: level 0 dump of lvxfstest:/home
xfsdump: dump date: Tue Jan 5 15:40:55 2021
xfsdump: session id: cf30f970-2339-4f85-92bf-798f16cb42c8
xfsdump: session label: “home”
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: 14290233600 bytes


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


please enter label for media in drive 0 (timeout in 300 sec)
-> home
media label entered: “home”


--------------------------------- 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 14293980416 bytes
xfsdump: dump size (non-dir files) : 14293611152 bytes
xfsdump: dump complete: 1224 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /backup/home.xfsdump OK (success)
xfsdump: Dump Status: SUCCESS

2、 磁盘检测

#lvm vgscan -v
#lvm vgchange -a y
#lvm lvs
#pvdisplay –m
#lvdisplay
#vgdisplay
#lsblk
#ll /dev/disk/by-path/

3、取消/home分区挂载

[root@lvxfstest ~]# umount /home/

4、缩减/home分区大小为18G

[root@lvxfstest ~]# lvreduce -L 18G /dev/mapper/centos-home
WARNING: Reducing active logical volume to 18.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos/home? [y/n]: y
Size of logical volume centos/home changed from 20.00 GiB (5120 extents) to 18.00 GiB (4608 extents).
Logical volume centos/home successfully resized.

5、移动数据,将要删除的盘的数据移动到别的盘

[root@lvxfstest ~]# pvmove /dev/sdc1
/dev/sdc1: Moved: 0.57%
/dev/sdc1: Moved: 5.68%
/dev/sdc1: Moved: 10.18%
/dev/sdc1: Moved: 14.63%
/dev/sdc1: Moved: 19.22%
/dev/sdc1: Moved: 23.39%
/dev/sdc1: Moved: 26.61%
/dev/sdc1: Moved: 28.03%
/dev/sdc1: Moved: 29.40%
/dev/sdc1: Moved: 30.78%
/dev/sdc1: Moved: 32.15%
/dev/sdc1: Moved: 33.52%
/dev/sdc1: Moved: 34.85%
/dev/sdc1: Moved: 36.27%
/dev/sdc1: Moved: 37.69%
/dev/sdc1: Moved: 39.06%
/dev/sdc1: Moved: 40.25%
/dev/sdc1: Moved: 41.71%
/dev/sdc1: Moved: 43.09%
/dev/sdc1: Moved: 44.46%
/dev/sdc1: Moved: 45.79%
/dev/sdc1: Moved: 47.06%
/dev/sdc1: Moved: 48.39%
/dev/sdc1: Moved: 49.57%
/dev/sdc1: Moved: 50.71%
/dev/sdc1: Moved: 51.85%
/dev/sdc1: Moved: 52.94%
/dev/sdc1: Moved: 53.93%
/dev/sdc1: Moved: 55.21%
/dev/sdc1: Moved: 56.39%
/dev/sdc1: Moved: 57.72%
/dev/sdc1: Moved: 58.71%
/dev/sdc1: Moved: 59.80%
/dev/sdc1: Moved: 61.03%
/dev/sdc1: Moved: 62.17%
/dev/sdc1: Moved: 63.30%
/dev/sdc1: Moved: 64.49%
/dev/sdc1: Moved: 65.62%
/dev/sdc1: Moved: 67.23%
/dev/sdc1: Moved: 72.30%
/dev/sdc1: Moved: 76.28%
/dev/sdc1: Moved: 80.78%
/dev/sdc1: Moved: 81.82%
/dev/sdc1: Moved: 85.51%
/dev/sdc1: Moved: 89.87%
/dev/sdc1: Moved: 93.99%
/dev/sdc1: Moved: 98.06%
/dev/sdc1: Moved: 100.00%

6、注销要删除的硬盘/dev/sdb1

[root@lvxfstest ~]# pvchange -xn /dev/sdc1
Physical volume “/dev/sdc1” changed
1 physical volume changed / 0 physical volumes not changed

7、查看物理卷情况sdc是否转为Allocatable NO状态

#pvdisplay –m
在这里插入图片描述

8、将硬盘或分区从逻辑卷组中删除,并删除物理盘

[root@lvxfstest ~]# vgreduce centos /dev/sdc1
Removed “/dev/sdc1” from volume group “centos”
[root@lvxfstest ~]# pvremove /dev/sdc1
Labels on physical volume “/dev/sdc1” successfully wiped.

9、检查pv,磁盘sdc1已经移除

[root@lvxfstest ~]# pvdisplay
— Physical volume —
PV Name /dev/sda2
VG Name centos
PV Size 17.25 GiB / not usable 0
Allocatable yes
PE Size 4.00 MiB
Total PE 4416
Free PE 962
Allocated PE 3454
PV UUID Qs5AWM-OzvQ-ExjX-hc8Y-RIkx-H3Up-c5h8yz


— Physical volume —
PV Name /dev/sdb1
VG Name centos
PV Size 8.25 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2112
Free PE 0
Allocated PE 2112
PV UUID tlmAN9-e0kW-Lu1t-xKWk-Fdhl-OHRz-9t4AL8


— Physical volume —
PV Name /dev/sdd1
VG Name centos
PV Size 8.25 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2112
Free PE 0
Allocated PE 2112
PV UUID GA6WBO-ZQQu-hvDr-sCAC-QBcW-wC7u-fmO98S

10、格式化 /home的lvm

[root@lvxfstest ~]# mkfs.xfs -f /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=1179648 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4718592, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

11、挂载 /home分区

[root@lvxfstest ~]# mount /dev/mapper/centos-home /home
[root@lvxfstest ~]# ll /home/
total 0

12、还原备份资料到 /home

[root@lvxfstest ~]# xfsrestore -f /backup/home.xfsdump /home/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (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: lvxfstest
xfsrestore: mount point: /home
xfsrestore: volume: /dev/mapper/centos-home
xfsrestore: session time: Tue Jan 5 15:40:55 2021
xfsrestore: level: 0
xfsrestore: session label: “home”
xfsrestore: media label: “home”
xfsrestore: file system id: 388edb78-f937-4c23-b258-eef9a9f9b316
xfsrestore: session id: cf30f970-2339-4f85-92bf-798f16cb42c8
xfsrestore: media id: d83900e6-a82c-45ad-96ef-1d1a56a4022f
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 3 directories and 211 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 1217 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /backup/home.xfsdump OK (success)
xfsrestore: Restore Status: SUCCESS

13、调整过后的空间大小为18G

home分区缩减为18G,数据已恢复,数据大小为14G
[root@lvxfstest ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 10G 1.2G 8.9G 12% /
devtmpfs devtmpfs 908M 0 908M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 8.9M 911M 1% /run
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
192.168.0.124:/publicdata nfs4 38G 18G 21G 47% /backup
tmpfs tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/centos-home xfs 18G 14G 4.7G 75% /home

14、/home分区空间扩容

[root@lvxfstest home]# lvextend -l +98%FREE /dev/centos/home
Size of logical volume centos/home changed from 18.00 GiB (4608 extents) to 21.68 GiB (5551 extents).
Logical volume centos/home successfully resized.

15、延展 xfs 空间

可以在线扩容空间,要求分区为挂载状态

[root@lvxfstest home]# xfs_growfs /dev/centos/home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=1179648 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4718592, 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 4718592 to 5684224

三、xfsdump介绍

1、xfsdump level级别

        对完整的文件系统进行备份,用xfsdump。
他除了可以进行完整备份,还可以进行累积性备份。第一次使用xfsdump,是完整备份,定义为level 0,而第二次备份,则不会完整备份,而是和第一次的备份(level 0)进行比较,仅备份有差异的文件(level 1)。各个level的文件,一本存放在/var/lib/xfsdump/inventory中。

2、xfsdump常用参数

-L:xfsdump会记录每次备份的session Label,这里可以填写针对此文件系统的简易说明;
-M:xfsdump可以记录存储Media Label,这里可以填写此媒体的简易说明。
-l:是L的小写,就是指定level,有0~9共10个等级,默认为0,即完整备份。
-f:后面接产生的文件和destination file 。例如/dev/st0设备文件名或其他一般文件文件名
-I:大写的“i”,从/var/lib/xfsdump/inventory 列出目前备份的信息状态。

3、xfsdump使用限制

1.必须用root权限
2.只能备份已挂载的文件系统
3.只能备份XFS文件系统
4.只能用xfsrestore解释
5.透过文件系统的UUID来分辨备份档,因此不能备份相同UUID的文件系统

猜你喜欢

转载自blog.csdn.net/carefree2005/article/details/111994990