10、【華為HCIE-Storage】--鏈路協議SCSI
以下部分內容來網絡,部分自華為存儲官方教材
具體教材內容請移步華為存儲官網進行教材下載
網絡引用內容無法找到原創,如有侵權請通知
------------------------------------重要說明------------------------------------
① SCSI
SCSI直譯為小型計算機系統接口(Small Computer System Interface)是一種連接主機和外圍設備的接口,支持包括磁盤驅動器、磁帶機、光驅、掃描儀在內的多種設備。它由SCSI 控制器進行數據操作, SCSI 控制器相當於一塊小型CPU,有自己的命令集和緩存。 SCSI是一種特殊的總線結構,可以對計算機中的多個設備進行動態分工操作,對於系統同時要求的多個任務可以靈活機動的適當分配,動態完成。
a. SCSI-3架構
SCSI命令層協議:各類型設備通用的主要命令。
SCSI 命令協議:這一層協議包括了通用於所有設備以及某一指定類型的設備專用的初級命令。這一層也稱為應用層。
傳輸層協議:設備間互聯和信息共享的標準規則。
傳輸層協議:這是一套設備間互連和信息共享的標準規則。
物理成互連:接口細節,比如電信號傳輸方法和數據傳輸模式
物理層互連:這一層詳細定義了如電信號傳輸方法和數據傳輸模式之類的接口細節。這一層又常簡稱為物理層或者互連層。
b. SCSI協議模型
主機到存儲磁盤間的通信由啟動器發起,由目標器接收和處理。
c. 並行SCSI技術
在SCSI總線體系結構中,任何連接到總線的設備間都可以互相進行通信。為實現這一點,從一個設備發出的信號從該設備發出後,最終會在多點總線(多分支總線)上結束。從多點總線上,信號應該被傳輸到目標設備上。在這個通信流程中,有一些物理的和邏輯的問題需要處理。
d. SCSI技術原理
SCSI是一個能夠讓設備在沒有CPU和SCSI適配卡的情況下能夠互相通信的協議。
傳輸協議類型:異步方式,同步方式
總線復用進行命令、數據和狀態信息傳遞
SCSI是一個智能傳輸協議,這是其一個特別的優點。如果多個設備是連接在同一組總線上的(並行通信通道),這些設備可以進行相互的通信。也就是說,兩個連在同一組總線上的設備間,可以互相通信,而且不需要CPU或者特別的適配卡協助。
通信傳輸方式有兩種,異步方式和同步方式。
在異步傳輸方式中,兩組數據傳輸之間沒有固定的時間間隔。協議采用發送額外的信息或者命令的方式來發起通信。比如,在發送內容數據前,發起方先發送一些狀態信息,則接收方就知道馬上要發送內容數據了。這些額外的狀態信息或者命令的發送時間可以不是固定的,因此內容數據之間的傳輸間隔也可以不是固定的。這是異步傳輸方式的重要特點。
在同步傳輸方式中,需要一個定時器,數據包會按照定時器設定的時間間隔進行傳輸。實際上,需要通信的兩個設備之間將先通過異步方式來確定對端的設備是否已經準備好接收數據了。在初始連接之後,通信雙方會采用最高效的傳輸方式進行實際內容數據的傳輸,這種方式就是同步傳輸方式。在同步傳輸方式中,發起方發送數據的時間間隔是固定的,而接收方知道這個時間間隔,就能快速的接收和處理數據。
在多個設備共享同一條物理鏈路時,通常采用時間多路復用技術,也就是物理電纜通過按時間片順序分配該電纜的使用者來實現共享。在SCSI通信中,前一個時間片在鏈路上傳輸的是內容數據,後面一個時間片則可能傳輸的是地址或者狀態信息。也就是說,在SCSI鏈路中,數據、地址、狀態、命令等是共享同一條鏈路的。
多路復用技術的采用使得在SCSI傳輸中使用的總線數目大大減少。在一條典型的SCSI傳輸鏈路上,大約只有20根連接線。如果沒有多路復用技術,連接線的數據至少要翻倍。在總線上傳輸數據時,數據的發起端(設備B)將數據以電信號的方式發送出來,數據從設備B與總線的接入點發送到總線上。下面我們看看如果數據的目標設備是設備D,總線是如何傳輸數據的。
電信號進入總線後,將會沿著總線的電纜朝各個方向進行傳輸,並且在每個交叉口,再沿著各個分叉的方向進行傳輸。因此,當承載著數據的電信號從設備B傳輸到設備B與總線的交叉點後,信號將分成兩份,分別向總線的兩個相反的方向進行傳輸。當信號到達設備A或設備C與總線的交叉點時,信號再次會分成兩份,分別沿著總線方向和設備方向進行傳輸。當信號到達設備D與總線的交叉點時,也會以同樣的方式進行傳輸。
信號繼續按照總線的分叉的兩個方向傳輸,並在下一個交叉點向兩個分叉的方向進行傳輸。
其中一份信號將像我們希望的那樣向設備D傳輸。第二份則繼續向前傳輸到達總線的盡頭。
設備D,就像設備A和設備C那樣接收到了信號。在傳輸的信號裏,包含了數據包的目標設備是哪個設備的信息。因此,當設備A和設備C接收到這個數據包後,將會發現這個數據包不是傳輸給它們的,因此會將數據包丟棄。而設備D則發現這個數據包是傳輸給自己的,因此會接收並處理這個數據包。
因此設備D將得到需要的數據包,但是仍然會有一份數據繼續傳輸並到達總線的盡頭。在總線的盡頭,可能的處理方法有:吸收、反射或者篡改。無論怎樣,我們肯定不希望數據再被反射回去,因為這樣會與在總線上傳輸的新的數據包產生沖突和幹擾。
為了避免信號被反射回總線,因此我們需要在總線的盡頭安裝一個終結器以吸收信號。終結器的原理很簡單,它像一個插頭一樣安裝在總線的盡頭,吸收接收到的信號以防止反射。因此,每一個SCSI總線系統都需要終結器這個裝置,否則就不能正常得進行信號傳輸。
註意:我們也將註意到也會有一份信號傳輸到總線的另一端,這一端是SCSI適配卡。傳輸到這一端的信號同樣也需要被吸收終結,防止信號被反射回去。
e. 並行SCSI規範
最初, SCSI總線可以連接的設備最大數目是8(包括SCSI適配卡),後來這一數據增加到16。
因為偏斜和幹擾等物理問題, SCSI總線的帶寬最大只能達到320MB/s。可以使用不同的技術如單終端( Single Ended, SE)、低電平差(LVD)、高電平差(HVD)等技術方法來提高SCSI總線支持的傳輸長度,但是最終最大長度仍不能超過25m。
因為采用的技術不同,一定不能將采用不同技術的設備混用。比如同一條總線上,不能同時既連接采用單終端的SCSI設備,又連接高電平差的設備。
每種技術都有一個圖標,如圖所示。有一種混用是允許的:即單終端的設備和低電平差的設備可以一起工作,因為他們使用的是想用它的電平信號,不會導致設備的損壞。但是,單終端設備的技術的指標要比低電平設備的指標要低,因此當這兩種技術的設備連接到同一條總線時,將會使用最低的指標進行工作。這就意味著低電平設備不能工作在最佳狀態。
f. SCSI總線通信
總線通信的一個問題是要保證連接到總線上的多個設備不會同時發送信息,因為如果多個設備同時發送信息就會產生線路擁塞。發生線路擁塞時,多個設備發送的信息之間會互相沖突、幹擾,最終導致所有的並發發送都不成功,而發送端必須重新進行發送,這就導致數據的發送效率變低。
因此, SCSI總線系統必須要找到一種方法來保證同一時刻在整條總線上只有一個設備在發送信息。在圖中,我們用汽車來表示發送信息的設備。同一時間只有一個設備在發送信息,就相當於同一時刻只有一輛汽車可以通過圖中的單行道。
為了解決這個問題,開發者們設計出了一種帶優先級的等候機制。在這個機制中,總線上的每個SCSI設備都有不同的優先級,這個優先級就是設備的SCSI ID。該機制采用SCSI ID來決定每個設備在檢測到總線忙時需要等待多久再嘗試發送數據。
因此, 所以當一個設備需要發送數據時,它必須要檢測總線是否在忙,即是否有另外一個設備正在發送數據。當設備檢測到總線在忙(例如因為其它設備正在發送數據),它就需要等待一定的時間再嘗試發送。這個等待的時間長短是由其SCSI ID決定的。因此,設備的優先級越高,則它等待的時間久越少,因而在其等待時間結束後,能夠成功發送數據的概率就越大。通常來說,總線上的設備中,速度快的設備(如硬盤)比速度慢的設備(如磁帶庫)擁有更高的優先級。
除了標記設備的優先級外, SCSI ID 同時也唯一標識著總線上的設備,即標識著數據的發送方和接收方。
g. SCSI ID(詳見多路徑原理)
h. SCSI 協議尋址
為了對連接在SCSI總線上的設備尋址, SCSI協議引入了SCSI設備ID和邏輯單元號LUN(Logical Unit Number)。
在SCSI總線上的每個設備都必須有一個唯一的設備ID,當然服務器中的主機總線適配器也擁有自己的設備ID,固定為7。每條總線,包括總線適配器,最多允許有8個或者16個設備ID。設備ID一方面用以尋址,另一個作用是標識該設備在總線使用上的優先級。此外,在同一條總線上連接的不同的設備的設備ID必須不同,否則就會引起尋址和優先級的沖突。
每一個存儲設備可能包括若幹個子設備,如虛擬磁盤、磁帶驅動器等。 因此SCSI協議引入了邏輯單元號LUN ID,以便於對存儲設備中的子設備進行尋址。
傳統的SCSI控制器連接單條總線,相應的只具有一個總線號。企業級的一個服務器則可能配置了多個SCSI控制器,從而就可能有多條SCSI總線。在引入存儲網絡之後,每個FC HBA( Host Bus Adapter)或iSCSI( Internet SCSI)網卡也都各連接著一條總線,因此必須對每一條總線分配一個總線號,在他們之間依靠不同的總線號加以區分。我們可以使用一個三元描述標識一個SCSI目標:總線號/目標設備ID/邏輯單元號LUN ID。
10、【華為HCIE-Storage】--鏈路協議SCSI