这是设置:
- 70TB JBOD 作为 SAN 的一部分,分为 5 个 LUN(4x15TB 和 1x10TB)。
- 运行 Centos 7 的文件服务器通过 iSCSI 连接到 5 个 LUN,使用
iscsiadm
跨两个网络路径,总共 10 个路径。 - 用于
dm-multipath
将这些 iSCSI 路径聚合到单个设备中,即/dev/mapper/mpath*
. pvcreate
在上述dm-mutipath
设备上使用构建物理卷。- 使用所有物理卷构建单个卷组。
- 将多个逻辑卷构建到所需容量。
mkfs.xfs
使用.将逻辑卷格式化为 XFS
现在,SAN 出现了需要维护(升级控制器固件)的问题,因此我重新启动了文件服务器以确保当 SAN 重新联机时没有任何问题。
重新启动后,我能够重新连接到 SAN 并挂载文件系统。它们运行正常。
但是,文件服务器重启后,我注意到这些文件系统的LVM信息并没有出现,即pvdisplay
,,vgdisplay
并且lvdisplay
只报告文件服务器上的本地磁盘。
这些 VG 和 LV 确实出现在/dev
:
/dev/vg_${VG}
/dev/vg_${VG}/${LV1}_lv
/dev/vg_${VG}/${LV2}_lv
/dev/disk/by-id/dm-name-${VG}-${LV1}_lv
/dev/disk/by-id/dm-name-${VG}-${LV2}_lv
/dev/mapper/vg_${VG}-${LV1}_lv
/dev/mapper/vg_${VG}-${LV1}_lv
它们确实出现使用pvs -a
但范围为零:
[root@file-server /]# pvs -a
PV VG Fmt Attr PSize PFree
/dev/centos/home --- 0 0
/dev/centos/root --- 0 0
/dev/centos/swap --- 0 0
/dev/mapper/mpatha --- 0 0
/dev/mapper/mpathb --- 0 0
/dev/mapper/mpathc --- 0 0
...
/dev/sda --- 0 0
/dev/sda1 --- 0 0
/dev/sda2 centos lvm2 a-- 273.80g 4.00m
/dev/sdb --- 0 0
/dev/sdc --- 0 0
/dev/sdd --- 0 0
/dev/sde --- 0 0
...
/dev/vg_${VG1}/${LV1}_lv --- 0 0
/dev/vg_${VG1}/${LV2}_lv --- 0 0
它们也出现在dmsetup info -c
:
[root@file-server /]# dmsetup info -c
Name Maj Min Stat Open Targ Event UUID
mpathe 253 6 L--w 1 1 1 mpath-27f3164e4727f3bc5
mpathd 253 5 L--w 1 1 1 mpath-2b3c12e7d9acc5f25
mpathc 253 4 L--w 1 1 1 mpath-232eb560378e8ec53
mpathb 253 7 L--w 1 1 1 mpath-218029135ad1e514a
mpatha 253 3 L--w 1 1 1 mpath-20123b6d74acce549
vg_${VG}-${LV1}_lv 253 16 L--w 1 1 0 LVM-6DoB20ypbwcGOoRHiX0t8wKAY3oC9BXtSGzQ1wy8fGa9okuQm1NxtPCHnmt0dtO6
vg_${VG}-${LV2}_lv 253 17 L--w 1 3 0 LVM-6DoB20ypbwcGOoRHiX0t8wKAY3oC9BXtmgFlfK9Bilo3IAWxjqwR7dUA8Oq0Fu70
mpathj 253 15 L--w 1 1 1 mpath-266772bd8af26c781
centos-home 253 2 L--w 1 1 0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYSqsQjkt2uTDQ1q5Do38GXYynZhTiLhYw
mpathi 253 14 L--w 1 1 1 mpath-254a27729bfbfc8c6
mpathh 253 13 L--w 1 1 1 mpath-2a0ff1a2db7f22f00
mpathg 253 12 L--w 1 1 1 mpath-27a5ce08413f48f13
mpathf 253 11 L--w 1 1 1 mpath-2d19e7002c7a41667
centos-swap 253 1 L--w 2 1 0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYtA03QjyV1IlWWk9Nz9cHJFKN16SJZ0T5
centos-root 253 0 L--w 1 1 0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYCMmaP0envGMf3gk8JhcyoQIQPGmjrL6w
如何恢复 LVM 元数据?这只是vgcfgrestore
这里概述的问题:
https://www.centos.org/docs/5/html/5.2/Cluster_Logical_Volume_Manager/mdatarecover.html
我似乎有一个备份/etc/lvm/backup
。
如果我丢失文件系统上的任何数据,我会犹豫不决。恢复是可能的,但并非没有系统停机和延迟。
编辑:pvs
、lvs
和vgs
以下的输出:
[root@dfile-server ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 273.80g 4.00m
[root@file-server ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 46.57g
root centos -wi-ao---- 221.64g
swap centos -wi-ao---- 5.59g
[root@file-server ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- 273.80g 4.00m
正如评论中所诊断的,该问题与 SAN 升级无关,而是与
lvmetad
守护程序返回陈旧/错误信息有关。这通过停止
lvmetad
(systemctl stop lvmetad.service; systemctl stop lvmetad.socket
) 并通过发出pvs
which 来确认,直接分析块设备,返回正确的信息。永久修复是更新
lvmetad
缓存,通知它发生了一些变化。这是通过运行pvscan --cache
、重新启用lvmetad
(systemctl start lvmetad.service; systemctl start lvmetad.socket
) 并最终运行另一个来完成的pvscan --cache
。之后,正常
pvs
(有lvmetad
活动)返回正确的数据。