Linux RAID中如何識別物理磁碟

Linux RAID中如何識別物理磁碟

有沒有一種方法可以可靠地判斷 RAID 中的哪個實體磁碟機與作業系統為其指定的軟體裝置名稱相關?

我在連接到 PC 的集線器上有一個 RAID5 消費級 USB 磁碟陣列(以及一個備用磁碟)。這是一個廉價的 NAS。

/proc/mdstat每個設備都透過其設備名稱來識別(例如sdbsdc)。

據我所知,Linux 設備名稱取決於啟動時讀取硬體的順序。因此,我不應該在每個驅動器上貼上帶有這些設備名稱的貼紙,因為sdc今天可能是sdb將來。

如果發生故障,我可以透過停止 RAID 來測試當前的設備名稱映射,然後dmesg -W逐一刪除進行查看,直到透過排除過程刪除故障設備。但還有更好的辦法嗎?

我發現我無法單獨標記 RAID 成員 - 它們都必須共用陣列的名稱:https://wiki.archlinux.org/title/persistent_block_device_naming#by-label

我已經看過,ledctl但這不適用於消費性驅動器:https://linux.die.net/man/8/ledctl

答案1

用於lsblk -S將每個裝置對應到磁碟的序號(如果新增則為 WWN -o +wwn)。

由實體USB連接埠顯示的USB集線器路徑lsusb.py -ciudevadm info /dev/sdd | grep ID_PATH=應該具有到實體USB連接埠的固定映射,例如在我的伺服器上「1-1.1」和「1-1.2」連接到前面板連接埠。外部集線器上的連接埠順序可能並不總是顯而易見,但一旦您弄清楚,它仍然應該保持靜態。

LED 的替代方案: sg3_utils 中的scsi_start/scsi_stop腳本可以使 HDD 按需旋轉或旋轉(無需實際斷開它們的連接)。如果陣列空閒,請停止所有磁碟並逐一旋轉它們,直到將所有盤櫃與 HDD 序號相符。

答案2

我寫了一個答案,但後來發現使用 lsblkUUID_SUB值它不是一個解決方案。最近的一次磁碟故障事件表明,UUID_SUB似乎並沒有像我最初想像的那樣附加到磁碟分割的超級區塊。

因此,我將刪除我原來的答案,並將其留給其他人投票刪除。

迄今為止,該問題唯一經過驗證的答案是使用裸磁碟,其序號在驅動器外殼本身上可見,而不是在可能不同的外殼上。然後用於lsbk -S確定在發生故障時要處理哪個實體驅動器。

相關內容