首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >命令‘PV’表示找不到PV设备,但是PV被映射和挂载。

命令‘PV’表示找不到PV设备,但是PV被映射和挂载。
EN

Unix & Linux用户
提问于 2015-05-17 14:55:19
回答 3查看 21.4K关注 0票数 5

我的系统(内部电缆故障)出了问题。当我备份和运行系统、重新构建数组等时,我似乎遇到了这样一种情况:pvs命令(以及vgslvs)报告No device found for PV <UUID>,但是在假定丢失的物理卷上的逻辑卷可以成功地挂载,因为它们的DM设备存在并映射在/dev/mapper中。

PV设备是一个md RAID10阵列,这似乎很好,除了它没有出现在pvs输出中的混乱之外。

我认为这是一些内部表不同步的问题。如何正确地映射事物(通过重新启动,我认为这将修复它)?

更新:

重新启动并没有解决问题。我认为这个问题是因为“缺失”PV (/dev/md99)配置为从750 B磁盘(/dev/sdk)和从250 of磁盘(/dev/sdh)构建的RAID0数组(/dev/sdh)和从500 of磁盘(/dev/sdl)构建的RAID0远程2数组。从pvscan -vvv的输出来看,lvm2签名是在/dev/sdh上找到的,而不是在/dev/md99 99上找到的。

代码语言:javascript
运行
复制
    Asking lvmetad for VG f1bpcw-oavs-1SlJ-0Gxf-4YZI-AiMD-WGAErL (name unknown)
  Setting response to OK
  Setting response to OK
  Setting name to b
  Setting metadata/format to lvm2
    Metadata cache has no info for vgname: "b"
  Setting id to AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN
  Setting format to lvm2
  Setting device to 2160
  Setting dev_size to 1464383488
  Setting label_sector to 1
    Opened /dev/sdh RO O_DIRECT
  /dev/sdh: size is 488397168 sectors
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
    Closed /dev/sdh
  /dev/sdh: size is 488397168 sectors
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
    Closed /dev/sdh
    /dev/sdh: Skipping md component device
  No device found for PV AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN.
    Allocated VG b at 0x7fdeb00419f0.
  Couldn't find device with uuid AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN.
    Freeing VG b at 0x7fdeb00419f0.

对/dev/it 99的唯一引用应该是PV,当它被添加到设备缓存时。

更新2:

停止lvm2-lvmetad并重复pvscan确认的问题是,系统对使用同一个UUID查找2时使用哪个PV感到困惑

代码语言:javascript
运行
复制
    Using /dev/sdh
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
  /dev/sdh: lvm2 label detected at sector 1
  Found duplicate PV AzKyTe5Ut4dxgqtxEc7V9vBkm5mOeMBN: using /dev/sdh not /dev/md99
    /dev/sdh: PV header extension version 1 found
  Incorrect metadata area header checksum on /dev/sdh at offset 4096
    Closed /dev/sdh
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
  Incorrect metadata area header checksum on /dev/sdh at offset 4096
    Closed /dev/sdh
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
    Closed /dev/sdh
  Incorrect metadata area header checksum on /dev/sdh at offset 4096
    Telling lvmetad to store PV /dev/sdh (AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN)
  Setting response to OK

由于这种配置只是暂时的,所以我认为最好重新安排磁盘的使用。

除非有人能告诉我如何显式地覆盖pvscan视图设备的顺序?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2015-05-19 22:38:23

问题似乎是pvscan在RAID阵列的组件设备和RAID数组本身上看到相同的UUID而感到困惑。我认为,通常情况下,通过认识到该设备是一个直接组件,这是避免的。在我的例子中,我创建了这样一种情况,即设备不是RAID设备的直接组件,而应该是PV。

我的解决方案是备份LV,强制数组降级,然后重新配置磁盘,以避免使用多级RAID。注意,在另一次重新启动之后,设备的字体已经改变了。500 sdj= /dev/sdi,250 sdj= /dev/sdj,750 sdj= /dev/sdk

代码语言:javascript
运行
复制
# mdadm /dev/md99 --fail --force /dev/md90
# mdadm /dev/md99 --remove failed
# mdadm --stop /dev/md90
# wipefs -a /dev/sdi /dev/sdj               # wipe components
# systemctl stop lvm2-lvmetad
# pvscan -vvv
# pvs
..... /dev/md99 is now correctly reported as the PV for VG b
# fdisk /dev/sdi
...... Create 2 partitions of equal size, i.e. 250Gb
# fdisk /dev/sdj
...... Create a single 250Gb patitiion
# mdadm /dev/md91 --create -lraid5 -n3 /dev/sdi1 /dev/sdj1 missing
# mdadm /dev/md92 --create -lraid1 -n2 /dev/sdi2 missing
# pvcreate /dev/md91 /dev/md92
# vgextend b /dev/md91 /dev/md92
# pvmove /dev/md99
# vgreduce b /dev/md99
# pvremove /dev/md99
# mdadm --stop /dev/md99
# wipefs -a /dev/sdk
# fdisk /dev/sdk
..... Create 3 250Gb partitions
# mdadm /dev/md91 --add /dev/sdk1
# mdadm /dev/md92 --add /dev/sdk2

故事的寓意:

不要在文件系统中引入太多的间接级别!

票数 1
EN

Unix & Linux用户

发布于 2015-05-17 15:30:03

首先要检查的是filterglobal_filter选项在/etc/lvm/lvm.conf中。确保您没有过滤出您的PVs驻留的设备。

缓存是在同一个文件中使用cache_dir选项设置的;在我的Debian框中,它默认为/run/lvm。缓存(如果有的话)应该在该目录中。如果设置了obtain_device_list_from_udev,我相信没有使用缓存。

最后,检查是否设置了use_lvmetad。如果是这样,您可能需要重新启动LVM元数据守护进程。

票数 3
EN

Unix & Linux用户

发布于 2018-10-10 23:50:37

作为根用户,这些命令将修复它:

代码语言:javascript
运行
复制
pvscan --cache
pvscan 
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/203925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档