“發現重複的PV”

“發現重複的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/多路徑。

答案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 外部的存儲(這是最佳實踐),但每次修改該文件時,您都應該確保內核在啟動時看到與此後相同的文件,以便獲得一致的結果。

相關內容