SCSI协议详解

合集下载

SCSI协议介绍

SCSI协议介绍

SCSI协议分类:存储磁盘存储windows存储系统服务器网络SCSI是一套完整的数据传输协议,其主要功能是在主机和存储设备之间传送命令、状态和块数据。

在各类存储技术中,SCSI技术可谓是最重要的脊梁。

SCSI协议位于操作系统和外部资源之间,它具有一系列的功能组件,操作系统对外部设备(如磁盘、磁带、光盘、打印机等)的I/O操作均可以通过SCSI协议来实现,一般情况下,SCSI协议都嵌入到设备驱动器或者主机适配器的板载逻辑中。

例如,应用程序一般将数据作为文件来访问。

尽管数据最终都将在磁盘上以数据块的方式存放,但是文件的检索需要一系列功能将未加工的块数据装配成应用程序能够操作的连续文件。

这个过程的第一步由应用程序通过操作系统所连接的文件系统承担。

文件系统以目录、文件夹和文件的方式来创建人们可读的数据抽象。

当一个用户的应用程序打开一个文件时,会引发一系列的进程。

它们使用底层SCSI命令,控制数据块从存储系统到内存的安全传输。

因此在文件系统层次中,数据传输在文件描述和块I/O之间进行。

正像文件系统描述了对用户应用程序数据的抽象一样,物理存储设备被描述成文件系统的抽象。

例如,在Windows中的E盘或者Linux中的/dev/sda可以是一个单独的磁盘、一个大磁盘的一部分或者多磁盘的条带阵列。

文件系统依赖于卷管理功能,它将各种存储设备看作可以并发的、很容易访问的资源。

设备的虚拟化将物理存储转换成逻辑存储,并且承担了在磁盘上放置数据块所需的复杂任务。

文件/数据块转换和映射功能可以像一个单独的卷管理应用程序那样复杂,也可以像适配卡设备驱动程序接口那么简单明了。

例如,Windows NT提供了Windows磁盘管理程序,为物理磁盘分配逻辑驱动器名。

适配卡的设备驱动程序负责将它的资源作为一个物理SCSI实体,出现在Windows磁盘管理程序中。

Windows 磁盘管理程序可以为这些资源分配逻辑名,文件系统按顺序使用这些逻辑名为目录和文件确定位置。

SCSI 总线和协议介绍

SCSI 总线和协议介绍

SCSI 总线和协议一. I/O 通路在计算机中,一个或多个CPU 处理在CPU缓存或主存储器(RAM:Random Access Memory)中的数据。

CPU缓存或主存储器是非常快的器件,但是断电就不能保存,价钱也比较昂贵。

所以数据还需要放在存储设备上。

通常,数据从主存储器(RAM)通过系统总线,主机I/O 总线和 I/O 总线移动到磁盘或者磁带等存储设备。

1.1 系统总线在计算机的核心部分,系统总线保证数据在CPU和主存储器之间进行快速的传递。

系统总线必须使用非常高的时钟频率,使得它能够足够快的给CPU 提供数据。

该总线的实现采用在主电路板上印制导线的形式。

出于物理性能的原因,高的系统速度需要短的印制导线。

因此,系统总线应该尽可能的短一些,并且只能连接CPU和主存储器。

1.2 主机I/O 总线在现在计算机中,为了释放CPU 的应用处理负担,人们把尽可能多的任务移到诸如图像处理器这样的特别的处理器中。

由于上述物理上的限制条件,这些器件不可以连接到系统总线。

因此大多数计算机都实现了称作主机I/O总线的第二个总线。

桥接芯片提供在系统总线和主机I/O总线之间的连接。

PCI (Peripheral Component Interconnection:外围互联设备)是当前最广泛使用的实现主机I/O 总线的技术。

1.3 I/O 总线设备驱动器负责控制外围设备以及与外围设备的通信。

针对存储设备的设备驱动器部分以软件形式存在,该软件由CPU处理。

由于跟存储设备通信的部分设备驱动器几乎总是以固件的形式实现,该固件由特别的处理器(ASIC:Application Specific Integration Circuit)处理。

当前这些ASIC 有的集成到主电路板(如SCSI 控制器),也有的通过附加的PCI卡连接到主板。

这些附加的卡通常被称作控制器。

存储设备通过主机总线适配器(HBA:Host Bus Adapter)或者通过在板上的控制器连接到服务器。

SCSI协议详解

SCSI协议详解
总线号 区分不同的SCSI总线
设备ID 区分SCSI总线上不同的设备
逻辑单元号 区分SCSI设备中的子设备
Windows 系统下查看SCSI ID
Linux 系统下查看SCSI ID
? 在Linux系统的命令行中,输入命令lsscsi,结果如下:
? 主机上每个SCSI设备都具有一个SCSI地址,该地址由initiator ID(或称为host ID)、bus ID、target ID以及LUN ID组成。
存储磁盘/目标器
SCSI应用层 SCSI传输层 SCSI互连层
SCSI IO 读/写过程
API接口将用户读操

作转换为SCSI读操 作
发起方
目标方
获得对总线使用权 ② 和对目标方的选择
和寻址
接收到目标方命令 ⑦ 完成的响应,总线
可恢复到空闲阶段
③ 通过CDB发送SCSI命令
⑤ 传送数据
⑥ 数据传输完毕后,发送命令完 成的报告
? 传输层:定义了设备间互连和信息共享的标准规则,保障计算机生成的SCSI指 令都能够成功的传送到目标端。
? 物理层:也称为互连层,定义了如电信号传输方法和数据传输模式之类的接口 细节。
SCSI 协议模型(2/2 )
主机/启动器
I/O请求
SCSI应用层 SCSI传输层 SCSI互连层
C/S 命令/数据 总线连接
存储阵列设备
并行SCSI 线
并行SCSI 协议
? SCSI(Small Computer System Interface,小型计算机系统接口)最初是一种为小型机研 制的接口技术,用于主机与外部设备之间的连接。
主机适配器 SCSI ID 7
SCSI 阵列 ID 0

02 SCSI总线和协议

02 SCSI总线和协议

SCSI域
一对一的数据交换 SCSI协议是在设备间一对一地进行数据交换 SCSI总线上的各个设备是以分时共享的方式使用总线 的 发起方与目标方 一个实际的SCSI域中,必须至少有1个发起方和1个目 标方 发起方和目标方的定义是从SCSI命令和任务的角度出 发的,而不是以数据流动的方向
SCSI协议分层模型
Initiator 设备
应用层
Target 设备
应用协议
传输服务接口 SCSI应用
SCSI应用
传输协议层
SCSI传输协议
传输协议 互连服务接口
SCSI传输协议
互连层
SCSI物理连接 互连协议
SCSI物理连接
SCSI协议模型
SCSI体系结构把发起方(主机)和目标方(如磁盘)的 通信定义为客户/服务器交换 SCSI客户:位于主机中,代表上层应用程序、文件系统 和操作系统I/O请求 SCSI服务器:位于目标设备中,对请求做出响应。
SCSI的设备连接
SCSI总线
主机和 控制器 SCSI 设备 SCSI 设备 SCSI 设备 SCSI 设备
终结器
SCSI规范版本
SCSI规范的版本有三个SCSI-1、 SCSI-2、 SCSI-3 SCSI-1 1986年ANSI标准,总线宽度8位,时钟频率5MHZ 定义了硬盘、磁带和其它存储设备的物理接口、传输协议和标准 指令集 SCSI-2 1994年ANSI标准,16位,10MHZ 提高了速度和总线带宽,支持多线程指令,增加了更多存储设备 类型指令集 SCSI-3 1995年ANSI标准,并包含了一系列的小标准 定义了物理接口、传输协议和SCSI指令集分层 更高的速度类型:Ultra-2/Ultra-160/Ultra-320

scsi协议

scsi协议

scsi协议SCSI协议。

SCSI(Small Computer System Interface)是一种用于计算机外部设备连接的接口标准,它定义了计算机和外部设备之间的通信协议。

SCSI协议最初是由Shugart Associates System Interface公司在1982年开发的,它最初是用于连接磁盘驱动器和打印机等外部设备的接口,后来逐渐发展成为一种通用的接口标准,可以连接各种外部设备,如磁盘阵列、磁带机、光盘驱动器等。

SCSI协议采用了一种独特的并行接口方式,它可以同时支持多个外部设备的连接,这使得它在高性能、高可靠性的存储系统中得到了广泛的应用。

与其他接口标准相比,SCSI协议具有更高的传输速度和更强的扩展性,可以满足对存储系统性能和可靠性要求较高的应用场景。

在SCSI协议中,每个外部设备都被分配一个唯一的SCSI地址,计算机可以通过发送SCSI命令来控制外部设备的操作。

SCSI命令包括读取数据、写入数据、控制设备状态等,它们通过SCSI总线传输到外部设备,外部设备执行相应的操作后,再通过SCSI总线返回结果给计算机。

这种方式可以实现计算机与外部设备之间的高效通信,而且可以同时支持多个外部设备的连接和控制。

除了并行接口方式外,SCSI协议还定义了一种串行接口方式,即SAS(Serial Attached SCSI),它是SCSI协议的一种现代化演变,采用了串行数据传输的方式,可以支持更高的传输速度和更长的传输距离。

SAS接口已经成为当前存储系统中的主流接口标准,它可以满足对存储系统性能和可靠性要求更高的应用场景。

总的来说,SCSI协议是一种通用的、高性能的存储接口标准,它可以满足不同应用场景对存储系统性能和可靠性的要求,而且可以同时支持多个外部设备的连接和控制。

随着存储技术的不断发展,SCSI协议也在不断演进,以适应新的存储需求和新的存储技术,它将继续发挥重要作用,推动存储系统的发展和进步。

scsi协议详解

scsi协议详解

scsi协议详解SCSI(Small Computer System Interface)是一种用于计算机和外部设备之间数据传输的通信协议。

它是一种并行接口技术,早在1981年就被引入计算机领域,至今仍然广泛应用于存储设备、打印机、扫描仪等外部设备的连接。

SCSI协议的出现,解决了计算机与外部设备之间数据传输速度慢、可靠性低的问题。

相比于其他接口技术,如IDE(Integrated Drive Electronics)和ATA(AT Attachment),SCSI具有更高的性能和灵活性。

SCSI协议的设计目标是提供一种通用的接口标准,使计算机能够与不同厂商生产的外部设备进行通信。

其最初的版本是8位的,并且在传输速度和数据传输距离上存在一定的限制。

随着技术的进步,SCSI的版本不断更新,从8位发展到16位、32位,传输速度也从5MB/s提升到320MB/s以上。

在SCSI协议中,存在两种不同的角色:主机和设备。

主机是指计算机系统,而设备则是指外部设备,如硬盘驱动器或打印机。

主机通过SCSI控制器与设备进行通信,控制器负责管理数据传输和设备的操作。

SCSI协议的通信过程主要包括命令传输和数据传输两个阶段。

在命令传输阶段,主机向设备发送指令,命令包括读取数据、写入数据、执行特定操作等。

设备接收到命令后,根据指令执行相应的操作,并将结果返回给主机。

数据传输阶段是在命令传输阶段之后进行的,主机向设备传输数据或者从设备读取数据。

数据传输可以使用不同的传输模式,例如同步传输模式和异步传输模式。

在同步传输模式下,主机和设备之间的数据传输是同步进行的,可以提高传输速度和数据的可靠性。

除了基本的数据传输功能外,SCSI协议还支持许多高级功能,如数据块传输、热插拔、多线程操作等。

这些功能使得SCSI协议在存储设备领域得到广泛应用,如硬盘阵列、磁带库等。

在实际应用中,SCSI协议通常通过SCSI总线连接主机和设备。

SCSI总线可以是并行接口(如SCSI-1、SCSI-2)或者串行接口(如SAS、SATA)。

常见存储协议SCSI与iSCSI和SAS入门详解


第19页
SAS协议层次结构
Page 20
第20页
SAS特点
SAS的串行通信方式允许多个数据通路全速与各个设备通信。 SAS支持多个窄端口捆绑形成宽端口。 SAS结构采用扩展器(expander)进行接口扩展,具有非常好的扩展能力。 SAS采用全双工模式。
第21页
SAS的可扩展性
SAS结构采用扩展器(expander)进行接口扩展,具有非常好的扩展能力,1个SAS域最多可以连接
第6页
SCSI启动器模型
SCSI设备驱动层
SCSI中间层
SCSI链路层
第7页
目标器模型
Port Layer
Middle Layer
Device Layer
第8页
SCSI协议和存储系统
SCSI协议是主机与存储磁盘通信的基本协议。 DAS使用SCSI协议实现主机服务器与存储设备的互联。
主机适配器 SCSI ID 7
组成一个环路。
SAS线缆接口类型如右图
Mini SAS 高密度 Mini SAS
第23页
SAS与其他传输技术的比较
技术类型
主要优势
主要劣势
应用领域
ATA
价格低廉
性能较低
PC
SCSI
性能较高
并行技术的弊端
企业级存储
FC
高性能,高可靠性 价格较高
高端存储
SATA
价格低,容量高
性能、可靠性较低
中低端存储
16384个磁盘设备。
1 Expander
Expander
Expander
SAS
RAID
Expander
Controller
1

iscsi协议及实现


iSCSI登录和协商



iSCSI登录是用来在启动设备和目标设备之间建 立TCP连接的机制 登录的作用包括鉴别通讯双方、协商会话参数、 打开相关安全协议并且给属于该会话的连接作 标记 登录过程完成后,iSCSI会话进入全功能相 (full feature phase),这时启动设备就能通 过iSCSI协议访问目标设备里的各逻辑单元了
FETD提供给STML的API


detect() release() xmit_response() rdy_to_xfer() task_mgmt_fn_done() report_aen()
重要的数据结构



struct struct struct struct struct struct struct struct

将STML和FETD分开的原因

增强程序的可重用性

STML是通用的 FETD是和底层采用的通讯协议(TCP/IP、 Fibre channel)相关的
程 序 功 能 模 块 图
STML提供给FETD的API



register_target_template() deregister_target_template() register_target_front_end() deregister_target_front_end() rx_cmnd() scsi_rx_data() scsi_target_done() scsi_release() rx_task_mgmt_fn()

客户端:



程序的结构(目标设备et mid-level)

iSCSI协议精辟讲解


SCSI协议的高端性
• 任务和事件模型
– – – – – – Initiator端发起IO请求时,就会生成一个任务 Target端接收到请求时,也会生成一个任务 任务可以被事件或动捉中止 事件:加电(Power on)、重启(Reset)、连接丢失等。 任务是有优先级 任务的状态:
• Enabled、Blocked、Dormant、Ended
• SCSI是硬盘中的高端协议
– 最早的SASI规格书只有短短20页,但与几年后ATA接口(据说当初 WD仅用三天时间就完成了接口规范的设计)相比还是完善许多。 – SCSI接口是一个通用接口,外设可以包括磁盘、磁带、CD-ROM 、可擦写光盘驱动器、打印机、扫描仪和通讯设备等。 – SCSI有多工能力,而 ATA通道是独占式的,一条通道内主 (Primary)设备具有优先使用权,但不论哪个设备占据通道,在 其完成操作并释放通道控制权之前,另一个设备都不能访 – SCSI设备还具有智能化,SCSI卡自己可对IO指令进行排队。在多 任务时硬盘会在当前磁头位置,将邻近的任务先完成,再逐一进 行处理。
SCSI RDMA Protocol (SRP, SRP-2)
iSCSI
Serial Attached SCSI (SAS, SAS-1.1)
传输协议
Related standards and technical reports (SDV, PIP, SSM, SSM-2, EPI)
IEEE 1394
提纲
1
2 3
SCSI介绍
iSCSI简介
iSCSI协议
为什么要先介绍SCSI
• iSCSI是SCSI协议中的一种传输层协议 • SCSI协议是一个协议族,包含了存储各个方面的协议,包 括了物理接口协议及传输层协议和一些指令集协议。

iSCSI协议初步讲解

• 扩展
• 每个会话可以建立在多个物理/逻辑连接(connections)上,称为multiple connections per session,提供更好的性能和可靠性
1.3 iSCSI协议总览
•协定议义数 据 单 元 ( P D U ) 结 构
• Initiator和Target间数据包的基本单位
1.3 iSCSI协议总览
PDU结构图解
PDU的结构
Basic header segment(BHS)
1.3 iSCSI协议总览
Checksum and CRC Digest
• 以太网层提供了CRC-32校验 • TCP层在头部提供了16-bit的XOR校验位 • iSCSI层增加了一个可选的32-bit的CRC校验
• 每 一 个 iS CS I节 点( Init iator o r Ta rget )必 须有 一个 iSCSI名 称, 该名 称可 以永 久、 唯一 地标 识一 个iSCSI节点
• iSCSI名称采用UTF-8编码方式 • iSCSI名称长度最大为223个字节
1.3 iSCSI的结构以及和SCSI的关系
• SCSI通道(SCSI Channel)
• SCSI通道可用被自由设定为连接主机的通道或者连接磁盘的通道 • 一般SCSI磁盘阵列提供4条SCSI通道
• SCSI ID
• SCSI设备的编号
• LU
• Logical Unit,逻辑单元,1个SCSI设备可以分为多个LU
1.1 iSCSI背景介绍-SCSI技术
1.1 iSCSI背景介绍-SCSI技术
I n i t i a t o r 和 Ta r g e t 通 信
1.1 iSCSI背景介绍-SCSI技术
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
断开重连技术: 同一个启动器与同一个目标器进行通信数据传输时,第一次连接时需要执行五个步骤,再次连接 时可以使用上一次协商结果。 标签指令队列技术: 启动器在发送数据时一次发送多个 SCSI数据包,目标器设备接收到数据包并存入缓存,释放 总线之后再进行数据包的处理。
SCSI 协议模型(1/2 )
? 命令层:也称为应用层。它包括了适用于所有设备的通用指令和某一指定类型 的设备专用的初级指令。
? 传输层:定义了设备间互连和信息共享的标准规则,保障计算机生成的SCSI指 令都能够成功的传送到目标端。
8位窄线,则优先级从高到低为:
7>6>5>4>3>2>1>0
16位窄线,则优先级从高到低为:
7>6>5>4>3>2>1>0>15>14>13>12>11>10>9>8
7 initiator
5
9
3
4 target device
13
SCSI 协议寻址
? SCSI总线的寻址过程是通过总线号(Bus ID)-设备号(SCSI ID)-逻辑单元号(LUN ID) 来实现的。
? SCSI-1
定义了线缆长度,信号特性,命令和传输模式; 使用 8位窄总线,最大数据传输率为 5 MB/s 。
? SCSI-2
定义了通用命令集( Common Command Set,CCS); 提高了性能,可靠性,新增了一些特性。
? SCSI-3(Ultra SCSI)
SCSI 最新版本; 由多个相关的标准组成,不再是一个大文件。
160 320 640
数据频宽( bits) 8 8 8 16 16 16 16 16
可连接设备数 8 8 8 16 16 16 16
16
SCSI 技术传输原理(1/4 )
? 当设备B要向设备D传输数据时,数据的发起端(即,设备 B)以电信号的方式将数据发送 出去,数据从设备B与总线的接入点发送到总线上。
SCSI 协议详解
内容提要
? SCSI协议的演变 ? SCSI协议的模型 ? SCSI协议的通信过程
DAS 的基本概念
? DAS的定义:直接连接存储(Direct Attached Storage,DAS)是一种存储设备与使用存 储空间的服务器通过总线适配器和SCSI/FC线缆直接相连的技术。
主机
? 当信号到达设备 D与总线的交叉点时,信号再次被分成两份,一份朝着设备 D传输,另一 份则继续朝前传输。
主机
SI C
器 配
S适
?
终 结

设备 A
设备 B
设备 C
设备 D
SCSI 技术传输原理(4/4 )
? 设备D收到信号。在总线尽头的终结器将吸收传输给自己的信号。
主机
SI C
器 配
S适
设备 A
设备 B
目标器
SCSI 协议通信过程(5/5 )
? step5.断开连接:数据传输完成,释放总线。
启动器
① 测试信号
总线
② 寻址 ③ 协商 ④ 数据传输 ⑤ 断开连接
目标器
性能提升技术
? 两个SCSI设备的每次连接通信都要经历 5个阶段,由于协商阶段的时间较长,影响了整体 的传输效率。
? 性能提升技术:
启动器
① 测试信号
总线 ② 寻址
目标器
SCSI 协议通信过程(3/5 )
? step3.协商:通信双方协商确定后面数据包的大小和数据包发送的速度。
启动器
① 测试信号
总线
② 寻址 ③ 协商
目标器
SCSI 协议通信过程(4/5 )
? step4.连接:数据包传输阶段。
启动器
① 测试信号
总线
② 寻址 ③ 协商 ④ 数据传输
主机
SI C
器 配
S适
终 结 器
设备 A
? 设备 B
设备 C
设备 D
SCSI 技术传输原理(2/4 )
? 承载着数据的电信号从设备B传输至设备B与总线的交叉点时,将被分成两份,分别向总线 的两个相反的方向进行传输。
主机
?

SI SC
器 配 适
结 器
设备 A
设备 B
设备 C
设备 D
SCSI 技术传输原理(3/4 )
终 结 器
设备 C
? 设备 D
SCSI 传输方式
? 异步传输方式:
两组数据传输之间没有固定的时间间隔。协议采用发送额外的信息或者命令的方式来发起通信。
? 同步传输方式:
需要一个定时器,数据包会按照定时器设定的时间间隔进行传输。
SCSI ID 与优先级
? 总线上的每个SCSI设备都有不同的优先级。
存储阵列设备
并行SCSI 线
并行SCSI 协议
? SCSI(Small Computer System Interface,小型计算机系统接口)最初是一种为小型机研 制的接口7
SCSI 阵列 ID 0
LUN 0 LUN 1 LUN 2
SCSI 总线
数据 /地址 总线 控制信号
SCSI 阵列 ID 5
LUN 0 LUN 1
并行SCSI 技术
? SCSI协议是主机与存储通信的基本协议。 ? DAS使用SCSI协议实现主机与存储设备的互联。
主机
配 适 SI 器 C S
终端 多点总线
设备 A
设备 B
设备 C
devices
设备 D
并行SCSI 的演变(1/2 )
总线号 区分不同的SCSI总线
设备ID 区分SCSI总线上不同的设备
逻辑单元号 区分SCSI设备中的子设备
Windows 系统下查看SCSI ID
Linux 系统下查看SCSI ID
? 在Linux系统的命令行中,输入命令lsscsi,结果如下:
? 主机上每个SCSI设备都具有一个SCSI地址,该地址由initiator ID(或称为host ID)、bus ID、target ID以及LUN ID组成。
SCSI 协议通信过程(1/5 )
? SCSI协议在传输过程中需要经历5个阶段。
? step1.总线测试:开始总线通信之前,总线必须处于空闲状态。发起连接的设备(启动器) 首先会发一个测试信号来确认总线是否空闲。
启动器
① 测试信号
总线
目标器
SCSI 协议通信过程(2/5 )
? step2.寻址:通过发送方的地址和接收方的地址来确认通信的双方。
并行SCSI 的演变(2/2 )
接口模式 SCSI-1 SCSI-2 SCSI-3( Ultra SCSI) SCSI-3( Ultra Wide SCSI) Ultra 2 SCSI Ultra-160 SCSI Ultra-320 SCSI Ultra-640 SCSI
传输率( MB/s ) 5 10 20 40 80
相关文档
最新文档