SERVER:~ # pvs
Found duplicate PV Wb0b2UTCKtpUtSki0k2NnIB24qNj4CEP: using /dev/mapper/36005076304ffc2500000000000004903 not /dev/mapper/36005076304ffc2990000000000004903
PV VG Fmt Attr PSize PFree
/dev/mapper/36005076304ffc2500000000000004903 application lvm2 a-- 50.00g 35.00g
/dev/sda4 system lvm2 a-- 133.24g 100.39g
SERVER:~ #
操作系统是 SLES 11 SP3。
问题:这会是一个问题吗?如果是,如何解决重复的PV消息? :) 磁盘来自 SAN/多路径。
答案1
根据我个人的经验,“重复 PV”通常是由于系统对特定 SAN LUN 具有多路径访问,但 LVM 尚未配置为过滤各个路径的块设备。设备映射器名称甚至看起来像 WWNN/WWPN(尽管我没有足够的 SLES 经验,不知道这是否可能是其他名称)。但不确定为什么 PV 本身会由 DM 设备提供服务。
在 RHEL 中,我会查看/dev/disk/by-path
这些是否是相同的 LUN。
这会是一个问题吗?
如果您应该进行多路径设置,这可能是一个问题。例如,如果底层设备应该是,/dev/mapper/mpathf
但 LVM/dev/sdf
首先找到并决定激活它,那么您对存储的访问并不像您指定的那样冗余。例如,如果路径/dev/sdf
沿着 VG,其所有 LV 都可能变得无法访问。
如果是,如何解决重复的PV消息?
使用 LVM,每个 PV 都有一个“LVM header”,它告诉您该 PV 的 UUID、它所在的 VG 的名称以及同一 VG 中所有其他 PV 的 UUID(这就是它如何判断是否存在缺少PV)。所有这些错误都意味着它发现了另一个具有相同 UUID 的 PV。
因此,造成这种情况的原因并不单一,因此很难根据您提供的信息提出解决方案。
它声音就像你lvm.conf
只需要设置过滤器来忽略各个路径(如前所述),但你必须做更多的研究来确认这一点,因为这几乎是一个WAG(疯狂的猜测)。
以 lvm 过滤器为例:
filter = [ "r/block/", "r/disk/", "r/sd.*/", "a/.*/" ]
上述过滤器会跳过(“删除”)名称中带有“块”或“磁盘”字样的任何设备。它还删除任何以“sd”开头的设备(例如sdf
,,sdg
等),最后“允许”所有其他设备(“ .*
”)。
不过,您可能不想走那么远(因为您使用的/dev/sda4
是根 VG)。我只会删除用于各个路径的特定块设备。
但再次确认一下。也可能是一百万个其他的事情(SAN 管理员克隆了一个 LUN 并将其呈现给您的系统,由于某种原因,UUID 之间不太可能发生随机冲突、宇宙射线、运气不佳等)。
更新:
我还应该提到,每次更新/etc/lvm/lvm.conf
(RHEL 路径)时,您都应该重建您拥有的任何 initramfs。看起来您正在使用这些作为根 VG 外部的存储(这是最佳实践),但每次修改该文件时,您都应该确保内核在启动时看到与此后相同的文件,以便获得一致的结果。