删除 /dev/sdb 后修复 LVM 物理卷定义

删除 /dev/sdb 后修复 LVM 物理卷定义

最近我用新磁盘/dev/sdc设置了LVM分区。我使用以下命令创建了 LVM:

pvcreate /dev/sdc
vgcreate data /dev/sdc
mkfs.ext4 /dev/data/srv
tune2fs -m 0 /dev/mapper/data-srv

现在的问题是旧光盘 /dev/sdb 不见了,我在 /var/log/messages 中收到如下错误:

sd 2:0:2:0: [sdc]  Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
sd 2:0:2:0: [sdc] CDB: Read(10): 28 00 00 00 00 3f 00 00 04 00
blk_update_request: 8 callbacks suppressed
end_request: I/O error, dev sdc, sector 63
sd 2:0:2:0: [sdc] Unhandled error code
sd 2:0:2:0: [sdc]  Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
sd 2:0:2:0: [sdc] CDB: Read(10): 28 00 00 00 00 3f 00 00 04 00
end_request: I/O error, dev sdc, sector 63
sd 2:0:2:0: [sdc] Unhandled error code

因为旧磁盘 /dev/sdb 在打包 LVM 后被删除,所以 /dev/sdc (不再存在)取代了它的位置:

>pvs
  /dev/sdc1: read failed after 0 of 2048 at 0: Input/output error
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sdb   data lvm2 a--  330.00g    0

>lvscan
  /dev/sdc1: read failed after 0 of 2048 at 0: Input/output error
  ACTIVE            '/dev/data/srv' [330.00 GiB] inherit

尽管 /sdc 不再存在,但该分区工作正常。然而,如何修复 LVM 以不再搜索 /dev/sdc?

我认为 LVM 在内部使用 UUID。否则,这种情况不会将 sdb 识别为正确的 pv (disc) 。

答案1

由于我无法重新启动主机,我修复了错误:

>pvs
  /dev/sdc1: read failed after 0 of 2048 at 0: Input/output error
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sdb   data lvm2 a--  330.00g    0

通过输入:

echo 1 > /sys/block/sdc/device/delete

相关内容