微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SCSI总线和协议

SCSI总线和协议

时间:12-15 来源:互联网 点击:
三.SCSI协议

在SNIA共享存储模型中,SCSI负责从上层接收请求并转发,或者从并行设备获取数据并转发。

例如:有一个应用程序向操作系统发出对磁盘设备的写请求。在SCSI协议层,这个写请求被看成是特定数量的数据块以协议的形式传递到指定位置的命令。作为操作系统和存储设备之间的一个中介,SCSI协议既不规定数据块如何组织,也不规定怎样把数据块放到磁盘上。在SCSI把数据块发送到目的地时,目标方可能是单个物理磁盘,也可能是把数据块在多个物理盘上分条存放的RAID控制器。SCSI协议的责任,就是在确认写操作已经正确完成后向操作系统报告成功,而不管在磁盘上物理存储是如何配置以及写操作是如何执行的。

3.1SCSI

SCSI设备是在一定的环境中运行的。通常需要有多个SCSI设备才能形成这样的环境。SCSI设备间的运行环境也称为SCSI域。在这个域内,生成和发送SCSI命令和任务管理请求的SCSI端口称为SCSI发起方,接收和处理SCSI命令,根据请求执行任务管理的端口称为SCSI目标方。

SCSI域的组成包括SCSI设备,设备内的SCSI发起方和目标方以及提供数据交接的总线。SCSI总线连接了挂在它上面的所有SCSI设备。我们可以把一个实际的SCSI应用系统抽象为一个SCSI域,域中有多个SCSI设备,而且带SCSI驱动器的计算机也可以被看成是一个SCSI设备。

尽管可以允许有多个SCSI设备接在同一条总线上,SCSI协议实际定义的是设备间一对一的数据交换,即同一时刻在SCSI总线上只允许有两个设备互相交换数据。因为,SCSI上的各个设备是以分时共享的方式使用总线的。

在一个实际的SCSI域中,必须至少有一个发起方和1个目标方,考虑到主机对数据存储的需求,配置了SCSI控制器的主机至少有1个SCSI发起方。而磁盘设备主要是提供存储和数据服务,一般都有目标发。

3.2SCSI协议模型

为了便于实现和理解SCSI的各个协议,SCSI采取了分层结构。SCSI大致可分为三层,即SCSI应用层,SCSI传输层和SCSI互连层。SCSI中的各个具体协议一般都位于其中的某一层,可以可能跨越两层。

在应用层,SCSI体系结构把发起方(主机)和目标方(如磁盘)的通信定义为客户/服务器交换。SCSI客户位于主机中,代表上层应用程序,文件系统和操作系统I/O请求。SCSI设备服务器位于目标设备中,对请求做出响应。客户/服务器请求和响应通过某种形式的底层协议进行传输。

在传输协议层,SCSI设备之间通过一系列的命令实现数据的传送,大致分成三个阶段:命令的执行,数据的传送和命令的确认。

SCSI互联层完成SCSI设备对总线的连接以及发送方和目标方的选择等功能。

3.3寻址机制

为了对连接在总线上的设备寻址,SCSI协议引入了SCSI设备ID和逻辑单元号LUN.在SCSI总线上的每个设备都必须有一个唯一的ID,其中包括服务器中的主机总线适配器也拥有设备ID.取决域SCSI标准的版本,每条总线最多可允许有8个或者16个设备ID。

诸如RAID磁盘子系统和磁带库这样的存储设备可能包括若干个子设备,如虚拟磁盘,磁带驱动器和介质更换器等。因此SCSI引入了逻辑单元号,以便于对大的设备中的子设备进行寻址。另外一个服务器可能配置了多个SCSI控制器,从而就可能有多条SCSI总线。因此,操作系统用一个三元描述标识一个SCSI目标:总线/目标设备/逻辑单元号

传统的SCSI适配卡连接单个总线,相应的只具有一个总线号。在引入存储网络之后,每个光纤通道HBA(Host Bus Adapter)或iSCSI(Internet SCSI)网卡也都连接一条总线,分配一个总线号,在他们之间依靠不同的总线号加以区分。

目标设备标识在一条总线菊花链上的单个设备,逻辑单元号则表示一个目标设备中的一个子设备。通常,单个物理磁盘只具有一个逻辑单元号,而RAID磁盘阵列虽然也只有一个目标设备,但却有多个逻辑单元号。

在一条总线上各个设备具有不同的优先级。起初的SCSI协议只允许有8个目标设备ID,规定ID7具有最高权限。后来版本的SCSI协议允许有16个不同的目标设备ID。出于兼容性的考虑,从7到0的目标设备依然具有高优先级,而从15到8的设备ID具有较低优先级。

设备(服务器和存储设备)在可以通过SCSI总线发送数据之前必须预定总线(仲裁)。在总线的仲裁期间,具有最高优先权的目标设备总能获胜。在总线负载重的情况下,这可能导致具有较低优先级的设备总是不被允许发送数据,因此,SCSI的仲裁过程是不平等的。

出于配置和管理的需要,操作系统使用总线号/目标设备ID/逻辑单元号三元组来标识一个SCSI目标,然而用户和应用程序所看到的只是一个逻辑标识符,如D盘。因此在总线号/目标设备ID/逻辑单元号和逻辑盘符之间存在着一个映射,提供在物理设备和上层文件系统之间不同表示形式的转换。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top