“發現重複的 PV”
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/多路徑。
以我個人的經驗,“重複 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 標頭”,它告訴你這個 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 之外的儲存(這是最佳實踐),但無論何時修改該文件,您都應確保核心在啟動時看到與此後相同的文件,以便獲得一致的結果。