Lvm

失去 LVM 元數據,但文件系統仍然有效

  • February 27, 2019

這是設置:

  • 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,,vgdisplaylvdisplay只報告文件伺服器上的本地磁碟。

這些 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

如果我失去文件系統上的任何數據,我會猶豫不決。恢復是可能的,但並非沒有系統停機和延遲。

編輯:pvslvsvgs以下的輸出:

[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) 並通過發出pvswhich 來確認,直接分析塊設備,返回正確的資訊。

永久修復是更新lvmetad記憶體,通知它發生了一些變化。這是通過執行pvscan --cache、重新啟用lvmetad( systemctl start lvmetad.service; systemctl start lvmetad.socket) 並最終執行另一個來完成的pvscan --cache

之後,正常pvs(有lvmetad活動)返回正確的數據。

引用自:https://serverfault.com/questions/798614