SCSI(Small Computer System Interface)小型计算机系统接口,一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。
SCSI是一种计算机系统接口的标准
SCSI是一种I/O技术
SCSI规范了一种并行的I/O总线和相关的协议
SCSI的数据传输方式是以块的方式进行的
可以看到主机带有一个SCSI控制器与SCSI设备相连,我们把控制SCSI进行数据存储的一端叫Initiator,而把SCSI设备(存储数据的)叫做Target
主机通过控制器与Target相连,而Target也可以通过SCSI总线与其他的SCSI设备相连,但最后一般都会连接一个终结器
SCSI的总线分为宽带和窄带两种,宽带有16个接口,除了一个连接initiator外,最多可以连接15个Target,而窄带有8个接口,最多链接7个Target。
系统中的每个SCSI设备都必须有自己唯一的SCSI ID(即target ID),SCSI ID实际上就是这些设备的地址,而每个target上可以连接多个逻辑单元(一个逻辑单元对应一个SCSI设备),用LUN(Logical Unit number)逻辑单元号区别不同的逻辑单元,每个SCSI ID上最多有32 个LUN(宽带的),一个LUN对应一个逻辑设备(SCSI设备)
CSI具有:设备无关性,多设备可以并行使用,高带宽,低系统资源开销的等特点
这是一个电脑的主板布局图:
可以看到北桥一般接有CPU,DRAM(内存),AGP(显示芯片)等重要组件,而南桥则接有USB,hardisk(硬盘),CD等;而在南北桥之间通过PCI总线相连,相比与南桥连接的ISA总线,PCI总线更快;将不属于CPU和RAM的所有总线称为外围总线,而外围总线为了连接外部设备一般需要各种控制器,并且要进行I/O操作就必须进过存储总线来读取数据而一般的存储总线常见的有(IDE,SCSI,SATA)等。
SCSI本身具有一个HBA(Host Bus Adapter)主机总线适配器,即SCSI的adaptor,是一个在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板或集成电路适配器。HBA是一个处理芯片,可以自己进行数据的存储和检索
减轻了CPU在数据存储和检索任务的负担即降低了因为存储数据而消耗的CPU时钟周期,所以SCSI具有优秀的存储性能。
常见的服务器和存储设备之间的数据通讯协议是IDE,SCSI和FC。为了实现服务器和存储设备之间的通讯,通讯的两端都需要实现同样的通讯协议。存储设备上通常都有控制器,控制器实现了一种或几种通讯协议,它可以实现IDE,SCSI或光纤通道等存储协议到物理存储设备的操作协议之间的转换。而服务器的通讯协议是由扩展卡或主板上的集成电路实现的,它负责实现服务器内总线协议和IDE,SCSI等存储协议的转换。例如PC机中,一般主板上都有IDE协议的功能,IDE磁盘控制器上有IDE协议的功能。因此IDE磁盘可以连接到PC机的IDE连接线上。如果磁盘只支持SCSI协议,那么这种磁盘就不能直接与PC机连接。这时就需要在PC机扩展槽上插入一块SCSI卡,SCSI磁盘可以与卡连接。SCSI卡实现了PC总线到SCSI的转换。这种SCSI卡实现的功能就是主机总线适配卡的功能。如果磁盘只支持光纤通道协议,那么服务器上就需要支持光纤通道协议,因为光纤通道的高速特性一般服务器主板都不支持,需要专门的主机总线适配卡。服务器插入主机总线适配卡后,就可以与支持光纤通道的磁盘通过光纤通道连接了。
主机总线适配卡内部有一个小的中央处理器,一些内存作为数据缓存以及连接光纤通道和总线的连接器件等。这个小的中央处理器负责PCI和光纤通道两种协议的转换。它还有其他的一些功能,初始化与光纤通道网络连接的服务器端口,支持上层协议例如TCP/IP,SCSI等,8B/10B的编码解码等。
目前的SCSI-3有很多型号,最快的有640MBps
Ultra wide 的传输频率20MHz,数据频宽16位,传输率40MBps
Ultra 2 的传输频率80MHz,数据频宽16位,传输率80MBps
Ultra 160 的传输频率80MHz,数据频宽16位,传输率160MBps
Ultra 320 的传输频率80MHz,数据频宽16位,传输率320MBps
Ultra 640 的传输频率160MHz,数据频宽16位,传输率640MBps
SCSI与IDE 相比
1.IDE的工作方式需要CPU的全程参与,CPU读写数据的时候不能再进行其他操作,而SCSI接口,则完全通过独立的高速的SCSI卡来控制数据的读写操作,CPU就不必浪费时间进行等待,显然可以提高系统的整体性能。
2.SCSI的扩充性比IDE大,一般每个IDE系统可有2个IDE通道,总共连4个IDE设备,而SCSI接口可连接7—15个设备,比IDE要多很多,而且连接的电缆也远长于IDE。
3.虽然SCSI设备价格高些,与IDE相比,SCSI的性能更稳定、耐用,可靠性也更好。
SCSI与SAS
如上图可以看出SCSI和SAS相比最大的不同就是SCSI是并行的而SAS是串行的,峰值带宽达5Gbps,即SAS可以达到将近1GMBps
SAS(Serial Attached SCSI),串行连接SCSI接口,串行连接小型计算机系统接口。
SAS是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,提供与串行ATA (Serial ATA,缩写为SATA)硬盘的兼容性。
SAS的接口看起来和SATA类似,而且可以向下兼容SATA标准
SCSI与SAS相比
1、更好的性能:点到点的技术减少了地址冲突以及菊花链连结的减速因此除了提高性能之外,每个设备连接到指定的数据通路上提高了带宽;全双工方式下的数据操作保证最有效的数据吞吐量;
2、简便的线缆连结:更细的电缆搭配更小的连接器;
3、更好的扩展性:可以同时连结更多的磁盘设备。
4 硬盘价格太贵
5 只有希捷、迈拓以及富士通等为数不多的硬盘厂商推出了SAS接口硬盘,可选择性少
SCSI 结构基于客户/服务器模式,设备与SCSI设备要通过SCSI总线连接,所以距离受限,通常距离很近,而要想进行远距离的数据存储就要选择FC(Fabre Channel)光纤通道,传输速度超快而且距离不受限制,但是光纤通道的代价非常的高昂,所以IBM公司就开发了基于tcp/ip报文封装SCSI类型的数据,进而进行远距离存储SCSI数据的iSCSI,与FC相比iSCSI更加便宜,符合许多中小公司需求
iSCSI与FC相比如图:
可以看到iSCSI要先封装SCSI的报文,在封装iSCSI的报文,最后还要加上TCP/IP封装,才能通过网络驱动在以太网进行SCSI数据的远距离传输
iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet Small Computer System Interface),是
由IBM公司研究开发的,是一个可以让硬件设备在IP协议的上层运行的SCSI指令集存储技术,可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。
iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可通过IP网络进行远距离SCSI类型的数据存储
设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装 SCSI 命令,且以TCP/IP协议传输
如下图可以看到从initiator端到target端,数据要进过封装-->IP网络传输-->解封装
如图是iSCSI的封装:最上层为二层以太网帧,中间为三层TCP/IP封装,最下面为iSCSI的封装
iSCSI protocal的封装格式
目前的存储协议除了iSCSI,FC外,还有FCoE(FC on Ethernet)通过以太网而不是光网传输的FC及SAS(串行的SCSI)
下面介绍三种常见的存储类型
DAS(Direct-Attached Storage)直接附加存储,存储设备一般通过scsi/ide总线直接连接到主机上,传输速度快,但距离受总线长度限制,且支持的并发主机数量少
NAS(Network Attached Storage)网络附加存储,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者
SAN(Storage Area Network)存储区域网络,采用FC(Fibre Channel)光纤通道或者Ethernet进行远距离传输,区别于Fiber Channel光纤通道技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。
DAS与SAN都是快级别的存储,而NAS是文件系统级的存储,因此NAS的存储速度不如前面两者(因为文件系统级别要进行数据的加封装解封装,处理数据报头等操作,而块级别是直接从磁盘进行数据的存取)
SAN(Storage Area Network)相当于模拟了远距离传输的DAS,特点是速度快。支持的并发服务主机数量多
iSCSI的initiator有三种:
1:HBA卡,采用内键的SCSI指令及TOE引擎的ASIC芯片的适配卡价格最贵,性能最好,消耗CPU很少
如图:
2:内键的TOE引擎的ASIC芯片适配卡,由于SCSI指令任然以软件方式运行,所以任然会消耗一定的CPU资源,但价格相对便宜
如图
3:完全由软件驱动的initiator,会消耗大量的CPU资源,性能差
iSCSI的server(target)端:iSCSI监听在TCP/IP的3206端口,有一个极其简单的OS,只能提供SCSI服务,命令等,而server端的本地存储很有可能是一个或多个Raid组成的阵列,而Raid设备有可能是SATA,SAS,SCSI......但是server(提供SCSI存储)端与client(服务器)端之间数据交换要通过TCP/IP网络传输封装好的SCSI数据报文
如图为一个SAN架构图:
可以看到Server端(存储端)使用的是3个Raid磁盘阵列,分别为Raid5,Raid5,Raid10;中间可以是 FC光纤通道,Ethernet以太网线,连接有不同的Client主机,包括Unix、Linux、Windows、Tape Library(磁带库)
转载于:https://blog.51cto.com/11107124/1884637