缓存设备崩溃后无法启动 LVM 卷

缓存设备崩溃后无法启动 LVM 卷

我正在 debian 10.7 机器上运行 radi6(HDD) 设置。我将此 md 设备用于 LVM VG。我添加了 SSD 作为直写式缓存。不幸的是我的 bash 历史记录不包含构建的命令。然而,经过我几天的工作设置后,SSD 失效了,包括缓存设备。安装新的 debian 后,因为 root 也在 SSD 上,所以我无法启动 LVM 卷。我收到一条错误消息,例如

Couldn't find device with uuid

我正在尝试vgreduce --removemissing- 结果是抱怨机器无法启动缓存。

我正在寻找类似的问题并找到答案 - 添加新的 PV 并使用丢失的 UUID 创建新的 LV。我做到了,然后就Couldn't find device with uuid消失了。

但我无法启动 LVM 卷。

root@fileserver:~#lvchange -ay raid6-4T

Check of pool raid6-4T/r6_4T_files_cache failed (status:1). Manual repair required!
root@fileserver:~# lvs -a --units m
  LV                        VG       Attr       LSize        Pool                Origin              Data%  Meta%  Move Log Cpy%Sync Convert
  lvm-var                   raid6-4T Cri---C---    35944,00m [lvm-var_cache]     [lvm-var_corig]                                            
  [lvm-var_cache]           raid6-4T Cwi---C---     5036,00m                                                                                
  [lvm-var_cache_cdata]     raid6-4T Cwi-------     5036,00m                                                                                
  [lvm-var_cache_cmeta]     raid6-4T ewi-------       40,00m                                                                                
  [lvm-var_corig]           raid6-4T owi---C---    35944,00m                                                                                
  [lvol0_pmspare]           raid6-4T ewi-------      852,00m                                                                                
  r6_4T_files               raid6-4T Cwi---C--- 15225324,00m [r6_4T_files_cache] [r6_4T_files_corig]                                        
  [r6_4T_files_cache]       raid6-4T Cwi---C---    34172,00m                                                                                
  [r6_4T_files_cache_cdata] raid6-4T Cwi-------    34172,00m                                                                                
  [r6_4T_files_cache_cmeta] raid6-4T ewi-------      852,00m                                                                                
  [r6_4T_files_corig]       raid6-4T owi---C--- 15225324,00m  

我尝试修复:

 root@fileserver:~# lvconvert --repair /dev/raid6-4T/r6_4T_files_cache
bad checksum in superblock
  Repair of cache metadata volume of cache raid6-4T/r6_4T_files_cache failed (status:1). Manual repair required!
root@fileserver:~# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/raid6-4T/r6_4T_files
  LV Name                r6_4T_files
  VG Name                raid6-4T
  LV UUID                P1oxae-VTkp-mu6p-8a5z-un2R-pXz9-YjakTI
  LV Write Access        read/write
  LV Creation host, time fileserver, 2019-08-08 15:57:56 +0200
  LV Cache pool name     r6_4T_files_cache
  LV Cache origin name   r6_4T_files_corig
  LV Status              NOT available
  LV Size                14,52 TiB
  Current LE             3806331
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto  
  --- Logical volume ---
  LV Path                /dev/raid6-4T/lvm-var
  LV Name                lvm-var
  VG Name                raid6-4T
  LV UUID                RNqJF7-FLxx-5WvX-6ceH-NtHl-hvqd-Fus5A5
  LV Write Access        read only
  LV Creation host, time fileserver, 2020-12-13 14:45:51 +0100
  LV Cache pool name     lvm-var_cache
  LV Cache origin name   lvm-var_corig
  LV Status              NOT available
  LV Size                35,10 GiB
  Current LE             8986
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto`
root@fileserver:~# vgdisplay
  --- Volume group ---
  VG Name               raid6-4T
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  81
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               14,59 TiB
  PE Size               4,00 MiB
  Total PE              3825555
  Alloc PE / Size       3825555 / 14,59 TiB
  Free  PE / Size       0 / 0   
  VG UUID               88lUal-4tQX-CEcf-ZNZe-rdGv-3B2x-4ZCDrp 

如何粘贴带有换行符的代码? - 我知道这个帖子的格式不好。

目标是最小化 LV 上的文件系统挂载 - 保存数据后我可以重新创建设置。在最好的情况下,我们会让设置恢复生机。

我希望包含所有必要的信息 - 否则请投诉!

先谢谢了!

答案1

我无法重新激活 LVM 卷,但我能够读取数据。

root@fileserver:~# lvchange -ay raid6-4T/r6_4T_files_corig --activationmode partial
  PARTIAL MODE. Incomplete logical volumes will be processed.
Do you want to activate component LV in read-only mode? [y/n]: y
  Allowing activation of component LV.
  Couldn't find device with uuid tOkG3t-aWGl-4PfO-DI3O-TMoG-ia1z-p4UQgP.
  Couldn't find device with uuid qmDOrk-0SRI-9Z1S-PzgI-GRI8-xLrP-kC5LHd.

root@fileserver:~# mount -o noload -r /dev/mapper/raid6--4T-r6_4T_files_corig /media/data/

root@fileserver:~# lvchange -ay raid6-4T/lvm-var_corig --activationmode partial
  PARTIAL MODE. Incomplete logical volumes will be processed.
Do you want to activate component LV in read-only mode? [y/n]: y
  Allowing activation of component LV.
  Couldn't find device with uuid tOkG3t-aWGl-4PfO-DI3O-TMoG-ia1z-p4UQgP.
  Couldn't find device with uuid qmDOrk-0SRI-9Z1S-PzgI-GRI8-xLrP-kC5LHd.

root@fileserver:~# mount -o noload -r /dev/mapper/raid6--4T-lvm--var_corig /media/var/

答案2

我今天遇到了同样的问题(缓存 SSD 死了),但最终运行vgreduce --removemissing --force并删除了关联的逻辑卷!一阵恐慌之后,我尝试使用 vgcfgrestore 从存档的 LVM 配置中恢复 LV,但由于物理卷丢失,这也一直失败。

对我来说,修复方法是编辑存档的 LVM 配置(在 /etc/lvm/archive/vgname.vg 中)并删除对有缺陷的 PV 和缓存设备/卷的任何引用。

在该文件中,您将找到对 PV(包括有缺陷的 PV)和 LV(在此示例中我们将其称为“lvname”)的引用。 LV 引用将有一个“缓存”类型的段。您还会发现一个名为“lvname_corig”的 LV,在数据 PV 上有多个段,指示非缓存数据的存储位置,以及用于缓存元数据等的更多 LV。

我解决这个问题的过程是:

  1. 备份原始 VG 配置文件。
  2. 从 lvname 复制“id”和“state”行,然后找到名为 lvname_corig 的卷并将它们粘贴到那里(注释掉该块中的 id 和 state 行)。
  3. 删除lvname块。
  4. 删除缓存的所有相关卷块(cachedatalvname_cpool、cachedatalvname_cpool_cmeta、cachedatalvname_cpool_cdata)。
  5. 将 lvname_corig 块重命名为 lvname。
  6. 删除引用有缺陷 PV 的任何其他卷(在我的例子中,有一个 lvol0_pmspare 卷)。
  7. 删除对有缺陷的 PV 的引用(在我的例子中,这是一个名为“pv3”的块)。

完成所有这些编辑后,用于vgcfgrestore -f filename vgname恢复 VG/LV 配置,而无需有缺陷的缓存 PV 或任何相关的缓存卷。

相关内容