存储协议
SCSI协议
SCSI是一套完整的数据传输协议,其主要功能是在主机和存储设备之间传送命令、状态和块数据。在各类存储技术中,SCSI技术可谓是最重要的脊梁。
SCSI协议位于操作系统和外部资源之间,它具有一系列的功能组件,操作系统对外部设备(如磁盘、磁带、光盘、打印机等)的I/O操作均可以通过SCSI协议来实现,一般情况下,SCSI协议都嵌入到设备驱动器或者主机适配器的板载逻辑中。
SCSI协议定义了一套不同设备(磁盘,磁带,处理器,光设备,网络设备等)利用该框架进行信息交互的模型和必要指令集。
- 逻辑单元(LUN):LUN是SCSI目标器中所描述的名字空间资源,一个目标器可以包括多个LUN,而且每个LUN的属性可以有所区别,比如LUN#0可以是磁盘,LUN#1可以是其他设备。
- 启动器(Initiator):本质上,SCSI是一个C/S架构,其中客户端成为启动器,负责向SCSI目标器发送请求指令,一般主机系统都充当了启动器的角色。
- 目标器(Target):处理SCSI指令的服务端称为目标器,它接收来自主机的指令并解析处理,比如磁盘阵列的角色就是目标器。
- SCSI的Initiator与Target共同构成了一个典型的C/S模型,每个指令都是“请求/应答”这样的模型来实现。
- Initiator主要任务:发出SCSI请求
- Target主要任务:回答SCSI请求,通过LUN提供业务,并通过任务管理器提供任务管理功能
SCSI协议和存储系统
-
SCSI协议是主机与存储磁盘通信的基本协议。
-
DAS使用SCSI协议实现主机服务器与存储设备的互联。
-
控制器首先向总线处理器发出请求使用总线的信号。该请求被接受之后,控制器高速缓存就开始执行发送操作。在这个过程中,控制器占用了总线,总线上所连接的其它设备都不能使用总线。当然,由于总线具备中断功能,所以总线处理器可以随时中断这一传输过程并将总线控制权交给其它设备,以便执行更高优先级的操作。并联传输方式
-
SCSI 控制器相当于一个小型CPU,有自己的命令集和缓存。SCSI是一种特殊的总线结构,可以对计算机中的多个设备进行动态分工操作,对于系统同时要求的多个任务可以灵活机动的适当分配,动态完成。
SCSI协议寻址方式
-
为了对连接在SCSI总线上的设备寻址,SCSI协议引入了SCSI设备ID和逻辑单元号LUN(Logical Unit Number)。在SCSI总线上的每个设备都必须有一个唯一的设备ID,当然服务器中的主机总线适配器也拥有自己的设备ID,固定为7。每条总线,包括总线适配器,最多允许有8个或者16个设备ID。设备ID一方面用以寻址,另一个作用是标识该设备在总线使用上的优先级。此外,在同一条总线上连接的不同的设备的设备ID必须不同,否则就会引起寻址和优先级的冲突。
-
每一个存储设备可能包括若干个子设备,如虚拟磁盘、磁带驱动器等。 因此SCSI协议引入了逻辑单元号LUN ID,以便于对存储设备中的子设备进行寻址。
-
传统的SCSI控制器连接单条总线,相应的只具有一个总线号。企业级的一个服务器则可能配置了多个SCSI控制器,从而就可能有多条SCSI总线。在引入存储网络之后,每个FCHBA(Host Bus Adapter)或iSCSI(Internet SCSI)网卡也都各连接着一条总线,因此必须对每一条总线分配一个总线号,在他们之间依靠不同的总线号加以区分。我们可以使用一个三元描述标识一个SCSI目标:总线号/目标设备ID/逻辑单元号LUN ID。
iSCSI产生的原因—>基于IP网络的SCSI
-
SCSI允许连接设备数量较少
-
SCSI连接设备距离非常有限
-
iSCSI (Internet SCSI)把SCSI命令和块状数据封装在TCP中在IP网络中传输
-
iSCSI作为SC