Linux

“發現重複的 PV”

  • January 28, 2015
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 之外的儲存(這是最佳實踐),但無論何時修改該文件,您都應確保核心在啟動時看到與此後相同的文件,以便獲得一致的結果。

引用自:https://unix.stackexchange.com/questions/181198