Linux

Linux 如何確定磁碟的 SCSI 地址?

  • June 26, 2012

問候,

我在 VMware ESX 4 下使用 RHEL 5.5 來賓虛擬機。當我在虛擬機硬體設置中配置虛擬磁碟時,每個磁碟都有一個格式為“N:M”的 SCSI 地址。例如,“1:3”表示 SCSI 主機編號 1 和 SCSI 目標 ID 3。

當我從 VM 的 BIOS 或 Windows 作業系統查看磁碟資訊時,檢測到的 SCSI 地址資訊與虛擬硬體設置相匹配。但在 Linux 下,SCSI 地址組件不匹配,至少不完全或一致。

我已經嘗試了三個受支持的虛擬 SCSI 和 SAS 驅動程序,它們似乎都“損壞”了,但方式不同。這是虛擬硬體地址列表與在 Linux 下使用每個驅動程序檢測到的地址:

Driver    vHW Addr  Linux Addr
--------  --------  ----------
LSI SAS   0:0       0:0
LSI SAS   0:3       0:1
LSI SAS   0:6       0:2
LSI SCSI  1:1       2:1
LSI SCSI  1:4       2:4
LSI SCSI  1:7       2:7
pvSCSI    2:2       1:2
pvSCSI    2:5       1:5
pvSCSI    2:8       1:8

我的主要問題是為什麼在 Linux 下會發生這種情況?下一個問題是:我如何修復它或自己修復它?

如果我要猜測的話,我會說這是核心如何分發 SCSI 主機號以及 Linux SCSI 驅動程序(包含在 VMware 工具中)如何檢測 SCSI 目標號的問題。也許載入驅動程序的順序也與該問題有關。我猜這不會涉及 udev,但我可能是錯的。

任何想法將不勝感激。謝謝!

PS。我的環境是 VMware,但我不需要專門為這些驅動程序提供答案。我想這可能是 Linux 下任何 SCSI 驅動程序的問題。

Linux 實際上是一致和正確的,只是不一定按照您期望的方式。

LSI SAS:SAS 地址是 WWN,並根據它們出現的順序獲得分配的類似 SCSI 的 ID。(這是一種簡化,但可以。為什麼你仍然有差距?)

LSI SCSI 和 pvSCSI:SCSI 主機號僅與核心載入主機適配器驅動程序的順序有關,與您分配的 VMWare 編號無關。如果您喜歡以其他順序查看它們,請切換驅動程序載入順序。最有可能的是,在 /etc/modprobe.conf 中切換它們的編號並重新啟動。

引用自:https://serverfault.com/questions/220889