目录
一 、问题现象
操作系统无法正常启动,可以正常正常查看df -h。发现有一块/dev/sapvg/lv_oracle没有正常加载
查看pvs,vgs,lvs
发现pvs中有一个pvs设备显示unknown device sapvg
二、unknown的device查找
1、pvs查看
[root@test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 system lvm2 a-- 49.51g 17.51g
/dev/sdb1 databackup lvm2 a-- 100.00g 0
/dev/sdc1 sapvg lvm2 a-- 300.00g 0
/dev/sdd1 sapvg lvm2 a-- 50.00g 0
/dev/sde1 databackup lvm2 a-- 100.00g 8.00m
unknown device sapvg lvm2 a-- 100.00g 12.00m
2、pvdispaly,
查找到丢失的device是/dev/sdf1
二、恢复方案
1、恢复原理
Linux的LVM会默认存储用户对PV/VG/LV的每一步操作,并自动把当前的VG的信息备份到一个文件里面,位置是/etc/lvm/backup/VG名字。
这个文件里面记录的东西大概跟vgdisplay/pvdisplay/lvdisplay输出的信息一致,里面也包括了对于恢复VG信息至关重要的PVUUID。
这个文件记录的信息大概就相当于整个VG的元数据,这个文件非常重要,我们就是通过这个文件来恢复整个VG的信息的。(VG卷组centos里面包含的2个PV信息,pv的id device;找到这些信息下面就是通过这些信息来进行恢复;)
2、/etc/lvm/backup/sapvg查看
(1)找到sdf1的uuid:
pv2 {
id = "cMvZI3-WW3f-dbwQ-X9V9-BY5O-ofeR-0qoiDG"
device = "/dev/sdf1" # Hint only
status = ["ALLOCATABLE"]
flags = []
dev_size = 209713152 # 99.999 Gigabytes
pe_start = 2048
pe_count = 25599 # 99.9961 Gigabytes
}
(2)移除/dev/sdf1设备
[root@test~]# vgreduce --removemissing /dev/sdf1
如果提示not found,略过即可,本来也找不到。
(3)查看pvs,没有/dev/sdf1设备了
[root@test~]# pvs
PV VG Fmt Attr PSize PFree /dev/sda2 system lvm2 a-- 49.51g 17.51g /dev/sdb1 databackup lvm2 a-- 100.00g 0 /dev/sdc1 sapvg lvm2 a-- 300.00g 0 /dev/sdd1 sapvg lvm2 a-- 50.00g 0 /dev/sde1 databackup lvm2 a-- 100.00g 8.00m
#If a logical volume contains a physical volume that fails, you cannot use that logical volume. To remove missing physical volumes from a volume group, you can use the --removemissing parameter of the vgreduce command, if there are no logical volumes that are allocated on the missing physical volumes. #来自:Red_Hat_Enterprise_Linux-7-Logical_Volume_Manager_Administration-en-US 4.3.7小节。
3、恢复unknown的pv盘
((1)根据/dev/sdf1的UUID号,利用备份文件,重新创建pv
[root@test]# pvcreate /dev/sdf1 -u cMvZI3-WW3f-dbwQ-X9V9-BY5O-ofeR-0qoiDG --restorefile /etc/lvm/backup/sapvg
(2)恢复vg信息
[root@test]# vgcfgrestore sapvg// 恢复sapvg的vg信息
[root@test]# vgs && pvs && lvs
(3)激活一下VG卷或reboot系统即可
[root@test]#vgchange -ay sapvg 或: [root@test]#reboot
文章评论