前言
本文介绍了HCIE云计算需要了解和学习的七种存储协议,深入浅出,让你对存储协议有更全面和更详细的认识
常用存储协议
- SCSI/iSCSI
- SAS
- FC/FCoE
- PCI-e
- IB
- CIFS/NFS
- FTP/HTTP
SCSI/iSCSI
存储中的SCSI和iSCSI
小型计算机接口,一种物理规格,同时也是一种传输协议。基本上所有服务器级别的块存储,都是SCSI指令。家用级别的是ATA指令。
什么是SCSI
有自己的指令集,有一套完善的体系模型,有物理链路映射关系。
SCSI的历史
经历了三个版本
- SCSI-1
- 1983-1985推出
- 支持异步和同步
- 支持7个8bit设备
- 最大速度5MBps
- 50pin数据线6m距离
- 已经淘汰
- SCSI-2
- 1988-1994推出
- 兼容SCSI-1
- 支持16bit宽带
- 最大速度16MBps
- 还在使用
- SCSI-3(真正完善成了体系结构)
- 1993年成为标准
- 兼容SCSI-2/SCSI-1
- 真正成为了一个体系结构
- 支持FCP/IEEE1394等多种介质(不再只是原来的SCSI线缆)
SCSI逻辑拓扑
一根总线上连接多个设备,窄带的情况下最多连接8个,宽带的情况下最多连接16个。
下图中有两个发起者(通常当成服务器,存储的使用者),三个目标 (存储设备,存储的提供者),一个目标(存储设备)可以对外提供多个空间,每一块存储空间都有一个对外的编号(LUN逻辑数字单元)。
SCSI启动器模型
分为三层,设备驱动层对应操作系统,使操作系统可以使用对应的指令,经过中间层转发,将指令放到SCSI线缆上去传输。
- SCSI设备驱动层
- SCSI中间层
- SCSI链路层
目标器模型
一边对应总线上的接口,另外一边对应存储设备(磁盘)。
- 端口层
- 设备层
- 中间层
SCSI协议和存储系统
- SCSI协议是主机与存储磁盘通信的基本协议。
- DAS使⽤SCSI协议实现主机服务器与存储设备的互联。
SCSI协议寻址
一台主机可以连接多个不同的总线,寻址第一步先找到通过的哪一根总线来访问的,然后在这一根总线上找到对应的设备ID,再在设备上通过对应的LUN来找到对应的存储空间。
- 总线号:区分不同的SCSI总线
- 设备ID:区分SCSI总线上不同的设备
- 逻辑单元号:区分SCSI设备中的子设备
iSCSI的诞生
SCSI存在的问题:
- SCSI允许连接设备数量较少(最多16个)
- SCSI连接设备距离非常有限
针对这些问题,IBM,CISCO,HP三个公司联合起头发布了基于IP网络的SCSI:iSCSI(只要IP可达,能通信,就可以访问)
什么是iSCSI
iSCSI启动器 ‒ 目标器模型
- 发起端(Initiator)
- SCSI层负责⽣成CDB(命令描述符块),将CDB传给iSCSI
- iSCSI层负责⽣成iSCSI PDU(协议数据单元),并通过IP网络将PDU发给target
- 目标器(Target)
- iSCSI层收到PDU,将CDB传给SCSI层
- SCSI层负责解释CDB的意义,必要时发送响应
iSCSI体系结构
iSCSI节点将SCSI指令和数据封装成iSCSI包,然后该数据封装被传送给TCP/IP层,再由TCP/IP协议将iSCSI包封装成IP协议数据以适合在⽹络中传输。
iSCSI和SCSI、TCP和IP的关系
iSCSI和SCSI
封装不同,传输介质也不同。
TCP和IP
TCP是传输层协议,IP是网络层协议。
TCP做的是应用层的寻址,IP做的是网络层的寻址。
SAS
存储中的SAS
- 在企业级存储系统中, SAS(Serial Attached SCSI )接口已经取代并行连接SCSI和SATA接口。
- SAS采用点对点架构,性能可高达300MB/s、 600MB/s、或更高 。
- 带宽是3Gb,6Gb,12Gb三种。
为什么要发展SAS
- 并⾏总线已经发展到顶峰,到达带宽的极限;
- Fibre Channel、 InfiniBand、 Ethernet等串行总线对于存储应⽤来说都存在缺点:
a) FC:价格昂贵,适用于复杂组⽹、远距离的场景
b) InfiniBand:组网复杂,价格昂贵贵
c) iSCSI:时延高、传输速率慢
急需一个可以快速传输磁盘数据的新的磁盘接口。
什么是SAS
- SAS: Serial Attached SCSI,是SCSI总线协议的串行标准,即串行连接SCSI
- SAS采用串行技术以获得更高的传输速率和更好的扩充性,并兼容SATA硬盘
- SAS目前的传输速率高达3Gbps、 6Gbps、 12Gbps 或更高,支持全双工模式
SAS协议层次结构
串行链路上传输SCSI指令。
SAS特点
- SAS的串行通信方式允许多个数据通路全速与各个设备通信。
- SAS支持多个窄端口捆绑形成宽端口。
- SAS结构采用扩展器(expander)进行接口扩展,具有非常好的扩展能力。
- SAS采用全双工模式。
SAS的可扩展性
SAS结构采用扩展器(expander)进行接口扩展,具有非常好的扩展能力, 1个SAS域最多可以连接16384个磁盘设备,但是接口的带宽是有限的。
SAS连线的规则
- SAS线缆一般有四个通道,每个通道现在常用的是12 Gb/s(一根线的带宽48Gb)。
- SAS线缆分两种
- Mini SAS
- 高密度Mini SAS
- SAS设备以环路(也称为链)的形式连接在一起。
- 线缆的带宽为4X12Gb/s,限制了环路中的硬盘数。
- 当前⼀个环路中的最大硬盘数的最佳实践是168块盘(性能和容量的平衡状态),也就是说最多7个24个硬盘槽位的硬盘框组成⼀个环路。
SAS与其他传输技术的比较
FC/FCoE
存储中的FC
所有的存储都需要通过一个存储专用网络(FC SAN)。
什么是FC?
FC是光纤通道(Fiber Channel)的简称,用于服务器共享存储设备的连接,存储控制器和驱动器之间的内部连接。
传输介质大多是多模光纤,双绞线和同轴电缆也有出现。
光纤的优点:带宽高,延迟低,距离远。
FC协议的演进趋势
FC协议结构
- FC-4
面向应用程序 - FC-3
处理冗余和加密算法 - FC-2
真正定义了协议如何使用 - FC-1
编码和解码 - FC-0
转换成物理的光信号
FC拓扑结构
-
点对点(只能连接两个设备,直接连接)
一个主机通过HBA卡直接连接到存储设备上,通过光纤。 -
仲裁环(最多支持127个设备,光纤集线器)
-
光纤通道交换网络(最多支持1600万个设备,光纤通道交换机)
FC网络中最广泛采用的技术
FC交换机端口类型
- D_Port:诊断端口,可通过D_Port隔离ISL以诊断链路级故障,只做诊断测试,不承担任何Fabric流量。
- E_Port:级联端口,用于级联(ISL)其他交换机实现Fabric扩展。
- EX_Port: E_Port的⼀种,⽤于连接FC路由器和边缘Fabric。 EX_Port的连接终止于路由器,不能像E_Port连接的交换机那样可以融合Fabric。
- F_Port:节点端口,即Fabric设备的端口。例如连接存储设备时,交换机端口类型显示为F_Port。
- FL_Port:环形网络下的F端口,用于连接Loop中的设备。
- G_Port:通用端口,作为非环路Fabric设备的过度端口。
- M_Port:镜像端口,用于复制指定源端口和目的端口之间的流量(流量分析,数据监控)。
- U_Port(或GL_Port):通用FC端口,最基本的FC端口类型。所有未识别的和未初始化的端口都属于U_Port(或GL_Port)。
FC 物理地址
烧录在设备的ROM芯片中
每一个FC端口和节点都拥有一个固化的地址,叫做WWN
- 被生产商所分配
- 在生产的时候被编码到每一个设备
- 64位或者128位
交换机的名称服务,用于映射WWN到FC地址
- nWWN唯一标识一个设备
- pWWN唯一标识一个设备上的每一个端口
FC 逻辑地址
FCID 24位二进制 上电后自动生成。
- Domain ID(标识FC交换机)
用来区分由众多交换机组成的FC网络中每个FC交换机本身。 - Area ID(标识端口组ID)
用来区分同一台交换机上的不用端口组。 - Port ID(标识端口组下的接口ID)
用来区分一个Area中的不同Port。
FC环境下的寻址(速度比以太网快很多)
查询目标Domain ID,再根据Area ID和Port ID路由到正确的接口
知名地址
知名地址使用24位FC地址空间中最高的16个地址。主要用于FC重要的控制和管理层面的操作。
FC Zone
一个设备可以属于多个Zone,只有在一个Zone内的设备才能通信。
- 划分,群组
- 动态交换的核心功能
- 隔离:异构, RSCN
Zone Config
包含多个Zone
将Zone Config激活后,Zone内的设备可以通信。
FCoE协议
- 直接在增强型无损以太网基础设施上传输光纤信道信号功能的协议。
- FCoE把FC帧封装在以太网帧中,允许LAN和SAN的业务流量在同一个以太网中传送。
FC与FCoE的区别
- FCoE:Fibre Channel over Ethernet 以太网上运行光纤协议
- FCoE并不是要代替传统的光纤通道技术,而是在不同连接传输层上对光纤通道进行拓展。
FC连接器
PCI-e
什么是PCI-e?
PCI Express(又称PCIe)是⼀种高性能、高带宽串行通讯互连标准,最早由英特尔提出,后由外设组件互连特别兴趣组(PCI-SIG)制定,以取代基于总线的通信架构,如: PCI、 PCI Extended (PCI-X) 以及加速图形端口(AGP)。
为什么用PCI-e?
主板上需要一个高性能、高带宽串行通讯互连标准。
PCI-e协议结构
PCIe设备的层次:主要分为物理层、数据链路层、事务层、应用层:
• 物理层(Physical Layer)
• 数据链路层(Data Link Layer)
• 事务层(Transaction Layer)
• 应用层(Application Layer)
PCI-e链路的带宽
每一代的带宽和传输速率都是翻倍提升。
IB
存储中的IB
什么是IB?
- IB(InfiniBand):
- InfiniBand技术不是⽤于⼀般网络连接的,它的主要设计,目的针对服务器端的连接问题。
- InfiniBand技术被应⽤于服务器与服务器(比如复制、分布式⼯作等)、服务器和存储设备(比如SAN和直接存储附件)以及服务器和⽹络之间(比如LAN、WANs和the Internet)的通信。
- InfiniBand的特点:
- 基于标准协议
- ⾼带宽,低时延
- 远程直接内存存取功能
- 传输卸载
- InfiniBand结构的关键在于通过采⽤点到点的交换结构解决了共享总线的瓶颈问题,这种交换结构专门用于解决容错性和可扩展性问题。通过向InfiniBand系统添加交换机可以很容易地实现I/O系统的扩展,进而允许更多的终端设备接入到I/O系统。
IB分层结构
IB架构
IBA(InfiniBand Architecture)组件(Component):
- Node:主机通道适配器(HCA),目标通道适配器(CA)
- Network:交换器(Switch),路由器(Router)
- Physical: Link(光纤firbic或者电缆cable),中继器(Repeater)
IB接口
Channel Adapter (CA)分为如下两类:
- Host Channel Adapter (HCA):主机通道适配器,如: Mellanox 产品
- Target Channel Adapter (TCA):目标通道适配器,用于IB交换机、存储系统的IO接口。
IB信令模式
SDR : Single Data Rate
DDR : Double Data Rate
QDR : Quad Data Rate
FDR : Fourteen Data Rate
EDR : Enhanced Data Rate
HDR : High Data Rate
NDR : Next Data Rate
IB性能快在哪里?
- 基于通道的端到端交换互联结构,不共享总线,没有相关的电子限制、仲裁冲突和内存⼀致性问题。
- 协议简单高效,开销小,协议硬件卸载
- QoS: 16级的VL和16级的SL,实现了⾼效服务质量管理和基于信用度的双层流控机制
- RDMA + 数据零拷贝(远程内存直读)
- 支持多并发链接:理论上并发越多速度越快,如QDR: X110Gbps, X4 40Gbps, X8 80Gbps, X12 120Gbps
CIFS/NFS
存储中的CIFS/NFS
NAS最常用的两个网络共享协议: CIFS和NFS。
- CIFS (Common Internet File System) CIFS指SMB(Server Message Block)的统称,在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。
- NFS(Network File System)是网络文件系统,云计算和数据库大量使用NFS。在Linux/UNIX/AIX/HP-UX/Mac OS X等类UNIX的操作系统提供网络文件系统存储服务。
CIFS工作原理
NFS工作原理
CIFS典型应用案例
文件共享服务
文件共享服务场景适用于企业文件服务器、媒资等应用场景。
NFS典型应用案例
云计算共享存储
云计算使用NFS服务器作为内部共享存储:
FTP/HTTP
什么是FTP?
- FTP(File Transfer Protocol,文件传输协议)用于在远端服务器和本地主机之间传输⽂件,是IP网络上传输文件的通用协议。
- FTP协议在TCP/IP协议族中属于应用层协议,用于在远端服务器和本地客户端之间传输文件,使用TCP端口20和21进行传输。端口 20用于传输数据,端口 21用于传输控制消息。FTP协议基本操作在RFC959中进行了描述。
FTP有两种工作方式:
- 主动方式(PORT):建立数据连接时由FTP服务器发起连接请求,当FTP客户端处于防火墙
内时不适用(如FTP客户端处于私网内)。 - 被动方式(PASV):建⽴数据连接时由FTP客户端发起连接请求,当FTP服务器限制客户端
连接其高位端口(⼀般情况下大于1024)时不适用。
什么是HTTP?
超文本传输协议HTTP(Hypertext transfer protocol )是⼀种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。