【存储】SCSI、iSCSI协议详解及对比
作? ? ? ? 者:? @NGDCN
原文鏈接:【存儲】SCSI、iSCSI協議詳解及對比 - NGDCN
版? ? ? ? 權: 本文由 @NGDCN 于2022-11-11原創發布在 NGDCN,未經許可,禁止轉載。
SCSI
SCSI是小型計算機系統接口(Small Computer System Interface)的簡稱,于1979首次提出,是為小型機研制的一種接口技術,現在已完全普及到了小型機,高低端服務器以及普通PC上。SCSI協議定義了一套不同設備(磁盤,磁帶,處理器,光設備,網絡設備等)利用該框架進行信息交互的模型和必要指令集。
SCSI指的是一個龐大協議體系,可以劃分為SCSI-1、SCSI-2、SCSI-3,最新的為SCSI-3,也是目前應用最廣泛的SCSI版本。
??SCSI-1:1979年提出,支持同步和異步SCSI外圍設備;支持7臺8位的外圍設備,最大數據傳輸速度為5MB/s。
??SCSI-2:1992年提出,也稱為Fast SCSI,數據傳輸率提高到20MB/s。
??SCSI-3:1995年提出,Ultra SCSI(Fast-20)。Ultra 2 SCSI(Fast-40)出現于1997年,最高傳輸速率可達80MB/s。1998年9月,Ultra 3 SCSI(Utra 160 SCSI)正式發布,最高數據傳輸率為160MB/s。Ultra 320 SCSI的最高數據傳輸率已經達到了320MB/s。
SCSI協議本質上同傳輸介質無關,SCSI可以在多種介質上實現,甚至是虛擬介質。例如基于光纖的FCP鏈路協議(FCP,Fibre Channel Protocol,是使用底層光纖通道連接的 SCSI接口 協議),基于SAS的鏈路協議(串行SCSI協議(SSP)用于傳輸SCSI命令),基于虛擬IP鏈路的iSCSI協議。通俗點說SCSI協議就是一個存儲設備與服務器之間接口傳遞的一個規范。
SCSI 實現了一種客戶機/服務器風格的通信架構。發起者/Initator向目標設備/Target發送命令請求。該目標處理此請求并向發起者返回響應。發起者可以是托管計算機中的一個 SCSI 設備,而 SCSI 最終訪問目標則可以是一個磁盤、光盤和磁帶設備或特殊設備(比如箱體設備,LUN)。下圖是一個整體邏輯拓撲架構示例。
邏輯單元(LUN):LUN是SCSI目標器中所描述的名字空間資源,一個目標器可以包括多個LUN,而且每個LUN的屬性可以有所區別,比如LUN#0可以是磁盤,LUN#1可以是其他設備。
啟動器(Initiator):本質上,SCSI是一個C/S架構,其中客戶端成為啟動器,負責向SCSI目標器發送請求指令,一般主機系統都充當了啟動器的角色。啟動器通常在軟件中實現,其功能類似于硬件 iSCSI HBA,以從遠程存儲服務器訪問目標。使用基于軟件的 iSCSI 發起程序需要連接到具有足夠帶寬的現有以太網網絡以承載預期的存儲流量。
目標器(Target):處理SCSI指令的服務端稱為目標器,它接收來自主機的指令并解析處理,比如磁盤陣列的角色就是目標器。 SCSI的Initiator與Target共同構成了一個典型的C/S模型,每個指令都是“請求/應答”這樣的模型來實現。為了提供對存儲或輸出設備的訪問,目標配置有一個或多個邏輯單元號 (LUN)。在 iSCSI 中,LUN 顯示為目標的按順序編號的磁盤驅動器,盡管目標通常只有一個 LUN。啟動器與目標執行 SCSI 協商以建立到 LUN 的連接。LUN 以模擬 SCSI 磁盤塊設備的形式響應,它可以以原始形式使用,也可以使用客戶端支持的文件系統進行格式化。iscsi 通過使用 ACL 提供 LUN 屏蔽。這確保了只有指定的客戶端節點才能登錄到特定的目標。在目標服務器上,可以在 TPG 級別設置 ACL 以保護 LUN 組,或為每個 LUN 單獨設置。
??Initiator主要任務:發出SCSI請求。
??Target主要任務:回答SCSI請求,通過LUN提供業務,并通過任務管理器提供任務管理功能。
iSCSI
iSCSI是由Cisco和 IBM兩家發起的,2003年2月由IETF(互聯網工程任務組)認證通過,是一項比較成熟的技術。它將SCSI命令封裝在TCP/IP包里,并使用一個iSCSI幀頭。它基于IP協議棧,假設以不可靠的網絡為基礎,依靠TCP恢復丟失的數據包。iSCSI繼承了兩大最傳統技術:SCSI和TCP/IP協議。這為iSCSI的發展奠定了堅實的基礎。基于iSCSI的存儲系統只需要不多的投資便可實現SAN存儲功能,甚至直接利用現有的TCP/IP網絡。相對于以往的網絡存儲技術,它解決了開放性、容量、傳輸速度、兼容性、安全性等問題,其優越的性能使其備受始關注與青睞。
如上圖所示,iSCSI (Internet SCSI)把SCSI命令和塊狀數據封裝在TCP中在IP網絡中傳輸。iSCSI作為SCSI的傳輸層協議,基本出發點是利用成熟的IP網絡技術來實現和延伸SAN。 iSCSI協議是SCSI遠程過程調用模型到TCP/IP協議的映射。SCSI協議層負責生成CDB,并將其送到iSCSI協議層,然后由 iSCSI協議層進一步封裝成PDU,經IP網絡進行傳送。
iSCSI工作流程
?
??iSCSI系統由SCSI適配器發送一個SCSI命令。
??命令封裝到TCP/IP包中并送入到以太網絡。
??接收方從TCP/IP包中抽取SCSI命令并執行相關操作。
??把返回的SCSI命令和數據封裝到TCP/IP包中,將它們發回到發送方。
??系統提取出數據或命令,并把它們傳回SCSI子系統。
具體來講,發起端(Initiator):
??SCSI層負責生成CDB(命令描述符塊),將CDB傳給iSCSI。
??iSCSI層負責生成iSCSI PDU(協議數據單元),并通過IP網絡將PDU發給target。
目標器(Target):
??iSCSI層收到PDU,將CDB傳給SCSI層。
??SCSI層負責解釋CDB的意義,必要時發送響應。
總結
SCSI與ISCSI區別
??iSCSI,即internet SCSI,是IETF制訂的一項標準,用于將SCSI數據塊映射成以太網數據包。從根本上說,iSCSI協議是一種跨過IP網絡來傳輸潛伏時間短的 SCSI數據塊的方法;簡單的說, iSCSI可以實現在IP網絡上運行SCSI協議,使其能夠在諸如高速千兆以太網上進行路由選擇。
??SCSI 的意義是小型計算機系統接口(Small Computer System Interface);今天的SCSI已劃分為SCSI-1和SCSI-2,以及最新的SCSI-3三個類型。不過,目前最為流行的版本還要算是SCSI-2
參考資料
1、SCSI/ISCSI協議_嚴 帥的博客-CSDN博客_iscsi scsi
2、SCSI、FC、iSCSI三大協議概述 - 知乎
3、scsi和iscsi區別_yujin2010good的博客-CSDN博客_iscsi和scsi
4、https://www.interserver.net/tips/kb/iscsi-internet-scsi-target-initiator-configuration/
5、存儲知識學習之--IP網絡存儲iSCSI的概念與工作原理-阿里云開發者社區
總結
以上是生活随笔為你收集整理的【存储】SCSI、iSCSI协议详解及对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8086如何计算物理地址
- 下一篇: 浅谈LLC变换器的设计经历