失去 LVM 元數據,但文件系統仍然有效
這是設置:
- 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
活動)返回正確的數據。