6.7. 为多路径设备重复 PV Warning
				当将 LVM 与多路径存储搭配使用时,一些 LVM 命令(如 vgs 或 lvchange)可能会在列出卷组或逻辑卷时显示如下信息。
			
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/dm-5 not /dev/sdd Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/emcpowerb not /dev/sde Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/sddlmab not /dev/sdf
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/dm-5 not /dev/sdd
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/emcpowerb not /dev/sde
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/sddlmab not /dev/sdf
				在为这些警告提供 root 原因信息后,本节描述了如何在以下两个情况下解决这个问题。
			
- 输出中显示的两个设备都是指向同一设备的单一路径
- 输出中显示的两个设备都是多路径映射
6.7.1. Duplicate PV Warning 的根本原因
复制链接链接已复制到粘贴板!
					使用默认配置,LVM 命令将扫描 
/dev 中的设备,并检查每个生成的 LVM 元数据设备。这是因为 /etc/lvm/lvm.conf 中的默认过滤器(如下所示):
				filter = [ "a/.*/" ]
filter = [ "a/.*/" ]
					当使用设备映射器多路径或其他多路径软件(如 EMC PowerPath 或 Hitachi Dynamic Link Manager (HDLM))时,特定逻辑单元号(LUN)的每个路径都会作为不同的 SCSI 设备注册,如 
/dev/sdb 或 /dev/sdc。然后,多路径软件会创建一个映射到这些独立路径的新设备,如 /dev/mapper/mpath1 或 /dev/mapper/mpatha 用于设备映射器多路径,/dev/emcpowera 用于 EMC PowerPath,或用于 Hitachi HDLM 的 /dev/sddlmab。由于每个 LUN 在 /dev 中有多个指向同一底层数据的设备节点,所以它们都包含相同的 LVM 元数据,因此 LVM 命令会多次找到相同的元数据,并将其报告为重复。
				
					这些重复的信息只是警告,并不意味着 LVM 操作失败。相反,它们会被提醒用户,只有其中一个设备被用作物理卷,而其他设备将被忽略。如果消息表示选择不正确的设备或者向用户有破坏性的警告,则可以应用过滤器来仅搜索物理卷所需的设备,并为多路径设备发出任何基础路径。
				
6.7.2. 单一路径的重复警告
复制链接链接已复制到粘贴板!
					以下示例显示了一个重复的 PV 警告,其中显示重复的设备是同一设备的单一路径。在这种情况下,
/dev/sdd 和 /dev/sdf 可以在输出中的同一多路径映射中找到到 multipath -ll 命令。
				Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/sdd** not **/dev/sdf**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/sdd** not **/dev/sdf**
					要防止这个警告出现,您可以在 
/etc/lvm/lvm.conf 文件中配置过滤器来限制 LVM 将搜索元数据的设备。该过滤器是一个模式列表,它将应用于通过 /dev 扫描找到的每个设备(或 /etc/lvm/lvm.conf 文件中的 dir 关键字指定的目录)。模式是以任何字符分隔的正则表达式,前面带有 (用于接受)或 r (用于拒绝)。
					您配置的过滤器应包括需要检查 LVM 元数据的所有设备,比如使用根卷组以及所有多路径设备的本地硬盘驱动器。通过拒绝到多路径设备的底层路径(如 
/dev/sdb、/dev/sdd 等等),您可以避免这些重复的 PV 警告,因为每个唯一元数据区域只在多路径设备本身中找到一次。
				
					以下示例显示了因为有多个存储路径而避免重复的 PV 警告的过滤器。
				
- 这个过滤器接受第一个硬盘上的第二个分区(/dev/sda和任何 device-mapper-multipath 设备),同时拒绝所有其他分区。filter = [ "a|/dev/sda2$|", "a|/dev/mapper/mpath.*|", "r|.*|" ] filter = [ "a|/dev/sda2$|", "a|/dev/mapper/mpath.*|", "r|.*|" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 这个过滤器接受所有 HP SmartArray 控制器和任何 EMC PowerPath 设备。filter = [ "a|/dev/cciss/.*|", "a|/dev/emcpower.*|", "r|.*|" ] filter = [ "a|/dev/cciss/.*|", "a|/dev/emcpower.*|", "r|.*|" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 这个过滤器接受第一个 IDE 驱动器以及所有多路径设备中的任何分区。filter = [ "a|/dev/hda.*|", "a|/dev/mapper/mpath.*|", "r|.*|" ] filter = [ "a|/dev/hda.*|", "a|/dev/mapper/mpath.*|", "r|.*|" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
注意
						在 
/etc/lvm/lvm.conf 文件中添加新过滤器时,请确保原始过滤器使用 # 或被注释掉。
					
					配置过滤器并且保存了 
/etc/lvm/lvm.conf 文件后,检查这些命令的输出以确保没有缺少物理卷或卷组。
				pvscan vgscan
# pvscan
# vgscan
					您还可以通过将 
--config 参数添加到 LVM 命令中,而无需修改 /etc/lvm/lvm.conf 文件,而无需修改 /etc/lvm/lvm.conf 文件,如下例所示。
				lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'
# lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'注意
						使用 
--config 参数测试过滤器不会对服务器的配置进行永久更改。在测试后,请确保将正常工作的过滤器包含在 /etc/lvm/lvm.conf 文件中。
					
					配置 LVM 过滤器后,建议您使用 dracut 命令重建 
initrd 设备,以便在重启后只扫描必要的设备。
				6.7.3. 多路径映射重复警告
复制链接链接已复制到粘贴板!
					以下示例显示两个设备都有重复的 PV 警告,它们是多路径映射。在这些示例中,我们不会查看两个不同的路径,而是两个不同的设备。
				
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/mapper/mpatha** not **/dev/mapper/mpathc**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/mapper/mpatha** not **/dev/mapper/mpathc**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/emcpowera** not **/dev/emcpowerh**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/emcpowera** not **/dev/emcpowerh**
					对于同一设备到同一设备的设备来说,这种情况比重复的警告更加严重,因为这些警告通常意味着机器已呈现出不应看到的设备(例如 LUN 克隆或镜像)。在这种情况下,除非您了解了应该从机器中删除哪些设备,否则这种情况可以被不可恢复。建议您联系红帽技术支持来解决这个问题。