設定:DELL PowerEdge R520、oVirt 節點 4.4.1 x86_64
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 onn_ovirt01 lvm2 a-- 105.26g 20.77g
/dev/sda3 VG_he_nfs lvm2 a-- <100.00g <10.00g
/dev/sda4 VG_data_nfs lvm2 a-- <1.50t <206.00g
# lsblk
...
sdb 8:16 0 1.4T 0 disk
└─sdb1 8:17 0 1.4T 0 part /exports/nfs/backups
問題:當系統重新啟動時,SATA 轉 USB 連接的 1.4T 備份磁碟機變為 sda,其中 lvm 找不到實體磁碟區所需的分割區。然後系統啟動進入救援模式,我必須透過連接的顯示器/鍵盤登錄,卸載並彈出SATA轉USB驅動器,將其從fstab中註解掉,拔下插頭,然後重新啟動系統。然後,一旦使用正確的裝置作為 sda 正確啟動,我就必須撤銷我在救援模式下使用 SATA 轉 USB 裝置所做的一切。
一切都是 fstab 已經定義為透過 UUID 或 /dev/mapper/ 掛載。
問題:是否可以更改 LVM 配置,以便無論哪個設備成為 sda,它都能為系統取得正確的實體磁碟區?是否可以無需重新建立和遷移(我的系統資料位於具有熱備用的 RAID 1(鏡像)上,因此機箱中沒有更多空間用於更換磁碟機佈置)?我願意接受任何不需要刪除資料或建立新的 RAID 安排進行替換的解決方案。如果這是不可能的,那麼我對任何事情都持開放態度,真的 - 或者每次意外重新啟動時都會繼續在救援模式下解決它。
答案1
LVM 不會儲存設備路徑。元件 UUID 儲存在 LVM 超級區塊中,這些 UUID 專門用於識別元件(PV、VG、LV)。 LVM 僅掃描所有可用的區塊設備(允許掃描的區塊設備在 /etc/lvm/lvm.conf 中配置),檢測實體磁碟區並從中組裝磁碟區組。它只是不查看這次物理卷的類型/設備路徑。它對於設備重新索引等非常穩健。因此,如果您將磁碟區移至 /dev/cciss/cXdYpZ (舊的 HP/Compaq SmartArray 區塊驅動程式建立此類裝置)或 /dev/hdXY 或 /dev/sdXY 或 /dev/mapper/... (任何基於DM 建置的東西都會將裝置節點放置在那裡— 加密、多路徑等)、/dev/md/... (Linux MD RAID) 等等。你的擔心是錯的,你的問題在其他地方。
問題的原因可能是 USB 速度慢。延遲較大;外部硬碟的啟動速度也非常慢(這樣做是為了限制其在旋轉過程中的功耗峰值)。 USB 不在於效能,而是對於沒有經驗的使用者來說,它的穩健性。所以,初始化速度很慢。您需要配置初始化腳本(可能是 initramfs 初始化腳本)以允許較大的延遲/逾時,以便 USB 裝置有足夠的時間來啟動和穩定。
另一個典型的原因是引導程式的配置錯誤;例如,它可能期望在“第一個硬碟的第一個分區”上找到其數據,並且如果“第一個硬碟”碰巧是錯誤的設備,則它沒有配置和內核映像來啟動和啟動把你丟進引導程式救援外殼。核心的命令列或放入 initramfs 中的某些內容可能與某些特定的裝置路徑相關聯,因此裝置的交換會導致它無法找到 / 並將您帶入初始化檔案系統救援外殼。注意這些是不同的救援砲彈,以及對哪一個你看到了嗎,這很重要。
帶備用的 RAID0 是一個矛盾的說法。 RAID0 沒有冗餘,沒有定義的降級狀態,無法將陣列從設備故障中恢復到最佳狀態,因此備用設備不可能提供幫助。任何組件設備問題通常都會導致整個陣列直接進入故障狀態。任何其他 RAID 等級都具有冗餘,如果元件發生故障,它將首先轉換為降級狀態,因此它將受益於備件,但 RAID0 則不然。
答案2
我解決了這個問題。我所要做的就是將 sdb 分區添加到過濾器中/etc/lvm/lvm.conf
:
曾是:
filter = ["a|^/dev/sda2$|", "a|^/dev/sda3$|", "a|^/dev/sda4$|", "r|.*|"]
變成:
filter = ["a|^/dev/sda2$|", "a|^/dev/sda3$|", "a|^/dev/sda4$|", "a|^/dev/sdb2$|", "a|^/dev/sdb3$|", "a|^/dev/sdb4$|", "r|.*|"]
其他嘗試此操作的人,請確保驗證您的更改並使用以下命令重新生成緩存vgscan
我的第一次(忘了|
之後的$
):
[root@host lvm]# vgscan
Invalid separator at end of regex.
Invalid filter pattern "a|^/dev/sdb2$".
Failed to create regex device filter
我的第二次:
[root@host lvm]# vgscan
Found volume group "VG_data_nfs" using metadata type lvm2
Found volume group "VG_he_nfs" using metadata type lvm2
Found volume group "onn_ovirt01" using metadata type lvm2
sata-to-usb 磁碟機仍然顯示為 sda,但這並不重要 - 當 sda 上找不到任何內容時,LVM 會跳到 sdb 分割區。我確實必須手動安裝 SATA 轉 USB 驅動器,但因為它/etc/fstab
正確,所以我只需發出mount -a
.我稍後必須解決這個問題並暫時獲得這場勝利。