存储协议
- SCSI协议
- SCSI协议和存储系统
- SCSI协议寻址方式
- iSCSI产生的原因--->基于IP网络的SCSI
- iSCSI启动器-->目标器模型
- iSCSI体系结构
- iSCSI和SCSI、TCP和IP的关系
- SAS协议
- 为什么要发展SAS
- SAS协议层次结构
- SAS特点
- SAS的可扩展性
- SAS与其他传输技术的比较
- FC
- FC协议结构
- FC拓扑结构
- FC Zone
- FCoE
- FC和FCoE的区别
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作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN
-
iSCSI是互联网小型计算机系统接口(Internet Small Computer System Interface)的简称,是一种在TCP/IP上进行数据块传输的标准,可以理解为SCSI over IP
-
iSCSI可构成基于IP的SAN,为用户提供高速、低价、长距离的存储解决方案
-
iSCSI将SCSI命令封装到TCP/IP数据包中,使I/O数据块可通过IP网络传输
-
iSCSI (Internet SCSI)把SCSI命令和块状数据封装在TC。P中在IP网络中传输。iSCSI作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN。
-
iSCSI协议是SCSI远程过程调用模型到TCP/IP协议的映射。SCSI协议层负责生成CDB,并将其送到iSCSI协议层,然后由 iSCSI协议层进一步封装成PDU,经IP网络进行传送。
iSCSI启动器–>目标器模型
-
iSCSI的通信体系仍然继承了SCSI的部分特性,在iSCSI通信中,具有一个发起I/O请求的启动器设备(Initiator)和响应请求并执行实际I/O操作的目标器设备(Target)。在Initiator和Target建立连接后,Target在操作中作为主设备控制整个工作过程。
-
iSCSI Initiator:iSCSI启动器,可分为三种,即软件Initiator驱动程序、硬件的TOE(TCPOffload Engine,TCP卸载引擎)卡以及iSCSI HBA卡。就性能而言,软件Initiator驱动程序最差、TOE卡居中、iSCSI HBA卡最佳。
-
iSCSI Target:iSCSI目标器iSCSI Target,通常为iSCSI 磁盘阵列、iSCSI 磁带库等。
-
iSCSI协议为Initiator和Target定义了一套命名和寻址方法。所有的iSCSI节点都是通过其iSCSI名称被标识的。这种命名方式使得iSCSI名称不会与主机名混淆。
iSCSI体系结构
- iSCSI节点将SCSI指令和数据封装成iSCSI包,然后该数据封装被传送给TCP/IP层,再由TCP/IP协议将iSCSI包封装成IP协议数据以适合在网络中传输。
- 在支持iSCSI的系统中,用户在一台SCSI存储设备上发出存数据或取数据的命令,操作系统对该请求进行处理,并将该请求转换成一条或者多条SCSI指令,然后再传给目标SCSI控制卡。iSCSI节点将指令和数据封装(Encapsulation)起来,形成一个iSCSI包,然后该数据封装被传送给TCP/IP层,再由TCP/IP协议将iSCSI包封装成IP协议数据以适合在网络中传输。也可以对封装的SCSI命令进行加密处理,然后在不安全的网络上传送。
iSCSI和SCSI、TCP和IP的关系
SAS协议
-
SAS: Serial Attached SCSI,是SCSI总线协议的串行标准,即串行连接SCSI。
-
在企业级存储系统中,SAS (Serial Attached SCSI )接口已经取,代并行连接SCSI和SATA接口。
-
SAS采用点对点架构,性能可高达300MB/s、600MB/s、 或更高。
-
SAS采用串行技术以获得更高的传输速率和更好的扩充性,并兼容SATA硬盘。
-
SAS目前的传输速率高达3Gbps、6Gbps、12Gbps 或更高,支持全双工模式。
-
保留了经过验证的SCSI命令集。
-
SATA硬盘可以直接装入SAS环境里。
-
SAS (Serial Attached SCSI) 主要分为三个子协议:
- SSP:Serial SCSI Protocol
- SMP:Serial Management Protocol
- STP:Serial Tunneled Protocol (ATA)
为什么要发展SAS
- 并行总线已经发展到顶峰,到达带宽的极限;
- Fibre Channel、InfiniBand、Ethernet等串行总线对于存储应用来说都存在缺点:
- FC:价格昂贵,适用于复杂组网、远距离的场景
- InfiniBand:组网复杂,价格昂贵
- iSCSI:时延高、传输速率慢
- SAS是Serial Attached SCSI的缩写,即串行连接SCSI。
- SAS是SCSI总线协议的串行标准
SAS协议层次结构
-
SAS标准将SAS架构分为6层,从低到高依次是物理层、phy层、链路层、端口层、传输层和应用层,每层负责一定的功能。
-
物理层:对于线缆、接头、收发器等硬件进行了定义;
-
PHY层:包括了最低级的协议,比如编码方案和供电/复位序列等等;
-
链路层:描述的是如何控制phy层连接管理,以及原语、CRC校验和加解扰、速率匹配处理;
-
端口层:描述的是链路层和传输层的接口,包括如何请求、中断、如何选择建立连接;
-
传输层:定义了如何将所传输的命令、状态、数据封装在SAS帧中,以及如何分解SAS帧;
-
应用层:描述了如何在不同类型的应用下使用SAS的细节。
SAS特点
- SAS的串行通信方式允许多个数据通路全速与各个设备通信。
- SAS支持多个窄端口捆绑形成宽端口。四个窄端口可以绑定成一个宽端口,提供更高的吞吐量。
- SAS结构采用扩展器(expander) 进行接口扩展,具有非常好的扩展能力。
- SAS采用全双工模式。
- 因为采用串行通信方式,可以提供更高的吞吐量,并为将来更高的性能成为可能。
SAS的可扩展性
- SAS结构采用扩展器(expander) 进行接口扩展,具有非常好的扩展能力,1个SAS域最多可以连接16384个磁盘设备。
- SAS Expander:SAS域中的互联设备,类似于以太网交换机,通过 Expander的级联可以大大增加终端设备的连接数,从而节约HBA花费。每个Expander最多可以连接128个终端设备或者128个Expander。1个SAS域由以下几个部分组成:SAS Expander、终端设备、连接设备(即SAS连接线缆)。
- SAS Expander配备了一个地址的路由表跟踪,记录了所有SAS驱动器的地址。
- 终端设备包括启动器(通常为SAS HBA卡)和目标器(SAS/SATA硬盘,也可以是处于目标模式的HBA卡)。
- SAS 域中不能形成环路,以保证其发现终端设备流程的正常进行。
- 实际使用中,因为带宽的原因,扩展器连接的终端设备比128个少很多
SAS与其他传输技术的比较
技术类型 | 主要优势 | 主要劣势 | 应用领域 |
---|---|---|---|
ATA | 价格低廉 | 性能较低 | PC |
SCSI | 性能较高 | 并行技术的弊端 | 企业级存储 |
FC | 高性能,高可靠性 | 价格较高 | 高端存储 |
SATA | 价格低,容量高 | 性能、可靠性较低 | 中低端存储 |
SAS | 高性能 | 价格较高 | 中高端存储 |
FC
- FC是光纤通道(Fiber Channel)的简称,用于服务器共享存储设备的连接,存储控制器和驱动器之间的内部连接。
- FC是一种高性能的串行连接标准。其接口传输速率为4Gbps 、8Gbps、16Gbps或更高速率。传输介质可以选择铜缆或光纤,传输距离远,支持多种互联拓扑结构
- FC协议其实并不能翻译成光纤协议,FC的链路介质可以是光纤、双绞线或同轴电缆,只是FC协议普遍采用光纤作为传输线缆而不是铜缆,因此很多人把FC称为光纤通道协议。
- FC协议优点:高带宽、高可靠性、高稳定性、低延迟、抵抗电磁干扰,等优点,能够提供非常稳定可靠的光纤连接,容易构建大型的数据传输和通信网络,目前支持1x、2x、4x和8x的带宽连接速率,随着技术的不断发展该带宽还在不断进行扩展,以满足更高带宽数据传输的技术性能要求。
FC协议结构
- 光纤通道的主要部分实际上是FC-2。其中从FC-0到FC-2被称为FC-PH,也就是“物理层”。光纤通道主要通过FC-2来进行传输,因此,光纤通道也常被成为“二层协议”或者“类以太网协议”。
- 光纤通道的数据单元叫做帧。即使光纤通道本身为五层,但是大部分光纤通道是指第二层协议。一个光纤通道帧最大2148字节,而且光纤通道帧的头部与以太网数据包不同。光线通道只使用一个帧格式,在多个层上完成各种任务。
- 帧的功能决定其格式。光纤通道帧起始于帧开始(SOF)标志,随后是帧头部,稍后我们将讨论帧头。然后是数据,或光纤通道内容,最后是帧结束(EOF)标志。这样封装的目的是让光纤通道可以在需要时被其他类似于TCP这样的协议所承载。
- 光纤通道和SCSI之间的关系:光纤通道不是SCSI的替代品。光纤通道将使用帧传输SCSI的指令和状态信息。SCSI是位于光纤通道协议栈FC4的上层协议,SCSI是FC协议的子集。
- 当传输大量的数据时,将有大量的帧需要被发送。当一组帧作为一批被发送时,我们称之为一个交换。
FC拓扑结构
-
点对点:两个设备直接连接到对方。这是最简单的一种拓扑,连接能力有限。
-
仲裁环:这种连接方式中,所有设备连接在一个类似于令牌环的环路上。在这个环路中添加或者移除一个设备会导致环路上所有活动中断。环路上一个设备的故障将导致整个环路不能进行工作。通过添加光纤通道集线器的方法,能够将众多设备连接到一起,形成一个逻辑上的环路,并且能够旁路故障节点,使得环上节点的故障不会影响整个环路的通信。仲裁环曾经用于小型的SAN环境中,但是现在已经不再使用。而最主要的原因是一个仲裁环最多只能容纳127个设备,而现在SAN环境中使用的设备基本上都多于127个设备。
-
交换网络:这是构建现代FC SAN的方式。它使用FC 交换机连接主机和存储设备。在现代的SAN中,最好使用两个交换机连接主机和存储设备,这样可以形成链路冗余,增强SAN的可靠性。交换机是一个智能设备,它不仅可以进行设备间的互联,而且还可以做得更多。
FC Zone
- FC光纤交换机划分ZONE功能与以太网交换机划分VLAN功能相似,都是为了实现特定组设备之间的相互通信避免广播包的泛洪。
- Zone特性可以让同一个VSAN中的成员进行访问控制,在VSAN内进一步划分区域,在Zone内根据不同的目的添加不同的N_Port成员。使不同Zone内的N_Port成员之间相互隔离。
- RSCN(Registered State Change Notification): 交换机具备的一项功能,负责在架构本身或其内部状态发生改变时,通知注册的节点。
FCoE
-
直接在增强型无损以太网基础设施上传输光纤信道信号功能的协议。
-
FCoE把FC帧封装在以太网帧中,允许LAN和SAN的业务流量在同一个以太网中传送。
-
FCoE(Fibre Channel over Ethernet)可以提供标准的光纤通道原有服务,如发现、全局名称命名、分区等,而且这些服务都可以照标准原有的运作,保有FC原有的低延迟性、高性能。
-
从FC协议的角度来看,FCoE就是把FC承载在一种新型的链路上,即以太网二层链路。需要注意的是,这个以太网必须是增强型无损以太网,才能满足FC协议对链路层的传输要求。
-
FCoE的特点:
- 协议标准组织:2008年提交美国国家标准委员会(ANSI)T11 委员会进行审批,需要与IEEE密切配合。
- 协议目标:FCoE希望利用以太网的拓展性,同时保留光纤通道在高可靠性和高效率方面的优势。
- 其他挑战:FC与以太网相结合,需要克服防止丢包、路径冗余和故障切换、帧分段与重组、无阻塞传输等方面的问题。
- FC固有的兼容性差、不支持远距离传输两大问题,FCoE同样无法解决
FC和FCoE的区别
- FCoE保留了FC-2以上的协议栈,把FC中的FC-0和FC-1用以太网的链路层取代。
- 因为FC的FC-0作用是定义承载介质类型,FC-1作用是定义帧编解码方式,这两层是在FC SAN网络传输时需要定义的方式。而FCOE是运行在以太网中,所以不需要这两层处理,而是用以太网的链路层取代这两层处理。
- FCoE的价值在于在同样的网络基础体系上用户有权利选择是将整个逻辑网络全部当成传输存储数据与信号的专用局域网,或是作为混合存储信息传送、网络电话、视频流以及其它数据传输的共用网络。FCoE的目标是在继续保持用户对光纤通道SAN所期望的高性能和功能性的前提下,将存储传输融入以太网架构。
- 运行的环境不同: FC协议是运行在传统的FC SAN的存储网络中。而FCoE则是运行在以太网的存储协议。
- 运行通道不同: FC协议是运行在FC网络中,所有的报文都是运行在FC通道中。在以太网中存在各种协议报文,有IP,ARP等传统以太网协议,而FCoE是运行要在以太网中需要创建一个虚拟的FC通道来承载FCoE报文。
- 与FC协议相比增加了FIP初始化协议:由于FCoE是运行在以太网中的存储协议,要让FCoE能正常的运行在以太网中,就需要FIP初始化协议来获取FCoE运行的相应vlan,与哪个FCF建立虚通道,和虚链路的维护等。所以从这方面来讲FCoE比FC多了一个FIP的初始化协议 。
- FCoE需要其他协议支持:由于以太网是可以容忍网络丢包的,但是FC协议不允许出现丢包,那么FCoE做为以太网中传输的FC协议来说同样是继承了这点特点不允许丢包。所以想要FCoE协议可以正常的运行在以太网络中就需要对以太网做一定的增强来避免丢包 ,这种增强型的以太网叫CEE(Converged Enhanced Ethernet)