SCSI:簡單計算機系統接口 SCSI定義了計算機和外設進行資料傳輸的方式,通常使用在硬碟,錄音帶裝置中,但同時也能連接配接很多其他類型的裝置,包括列印機,掃描器,CD驅動器等等。 SCSI通信模式: SCSI是Client-Server的通信模式,由Client發送請求,Server完成請求并傳回Client端狀态及資訊。在SCSI中将Client稱之為Initiator,Server端稱之為Target,每個Target可以有多個LUN,每個LUN處理Initiator發送過來的請求,實作LUN所屬SCSI子協定定義的指令,每個LUN包含兩部分:Device Server和Task Manager,分别完成Initiator指定的處理和管理功能。 SCSI為裝置之間的通信定義了端口,例如有Initiator端口,Target端口,Initiator/Target端口以及多端口的Target裝置,對應的也就有Initiator模式,Target模式,Combined模式,多端口target模式等等。處于Initiator模式下隻能發送請求和處理請求結果,處于Target模式下隻能處理請求,Combined模式則可以針對相應端口的模式設定完成發起請求和處理請求。
SCSI協定尋址
SCSI尋址是按照:控制器,通道,SCSIID,LUNID的形式進行尋址的。
控制器:Initiator裝置,通常指連接配接到主機闆南橋或者以PCIe插卡形式存在的。
通道:每個控制器有多個通道
SCSI ID:指連接配接在每個通道上的SCSI裝置,窄總線(8bit)SCSIID取值範圍0-7,寬總線(16bit),SCSI ID取值範圍為0-15。
SCSIID優先級從高到底分别為:
7,6,5,4,3,2,1,0,9,10,11,12,13,14,15
LUN:
由于SCSI ID能尋址的裝置很少,最多15個。但是挂在SCSI上很多。是以引入LUN的概念。是以一個SCSI ID上可以挂很多LUN,每個LUN都有個LUNID。
Linux環境下查詢SCSI指令
在LINUX作業系統下,Lsscsi指令會查詢類似以下的結果:
[0:0:0:1] disk Linux scsi_debug 0004 /dev/sda /dev/sg0
[0:0:0:49409]wlun Linux scsi_debug 0004 - /dev/sg1
開頭四元組對應的就是[控制器:通道:SCSI ID,LUN ID]