原文:https://community.emc.com/docs/DOC-33815

SCSI 即 小型计算机系统接口。
小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。它是各种计算机与外部设备之间的接口标准。

iSCSI是由Cisco和 IBM两家发起的,2003年2月由IETF(互联网工程任务组)认证通过,是一项比较成熟的技术。它将SCSI命令封装在TCP/IP包里,并使用一个iSCSI帧头。它基于IP协议栈,假设以不可靠的网络为基础,依靠TCP恢复丢失的数据包。

背景:

相比直连存储,网络存储解决方案能够更加有效地共享,整合和管理资源。从服务器为中心的存储转向网络存储,一直依赖于数据传输技术的发展,速度要求与直连存储相当,甚至更高,同时需要客服并行SCSI固有的局限性。

所有数据在没有文件系统格式化的情况下,都以块的形式存储于磁盘之上。并行SCSI将数据以块的形式传送至存储,但是,对于网络它的用处相当有限,因为线缆不能超过25米,而且最多只能连接16个设备。

光纤通道是目前SAN的主导架构,它在专门的高速网络上分离存储资源。光纤通道协议与互联技术起源于满足高性能传送块数据的需求,同时克服直连存储的连接和距离限制。通常光纤通道设备连接距离可达到10000米,甚至数十万米,并且对于连接在SAN之上的设备没有数量要求。

与SAN不同,NAS将数据以文件的形式传输并且可以直接连接至IP网络。部署NAS设备传送数据库块数据,使用基于SCSI的光纤通道协议,比Server Message Block(SMB)协议更加高效。

什么是iSCSI:

iSCSI是一种使用TCP/IP协议,在现有IP网络上传输SCSI块命令的工业标准,它是一种在现有的IP网络上无需安装单独的光纤网络即可同时传输消息和块数据的突破性技术。iSCSI基于应用非常广泛的TCP/IP协议,将SCSI命令/数据块封装为iSCSI包,再封装至TCP 报文,然后封装到IP 报文中。iSCSI通过TCP面向连接的协议来保护数据块的可靠交付。由于iSCSI基于IP协议栈,因此可以在标准以太网设备上通过路由或交换机来传输。

iSCSI架构依然遵循典型的SCSI模式:

随着光纤通道的发明,initiator和target之间的SCSI线缆已被光纤线缆所代替。

现在随着iSCSI的出现光纤线缆又被价格低廉的网线和TCP/IP网络所替代。

虽然现有的光纤存储网络具有高吞吐量的优势,与其他厂商之间的互通性仍是一个短板。而基于成熟的TCP/IP协议的iSCSI网络,不仅免于互通性限制而且在安全性等方面具备优势。同时,由于千兆以太网的增量部署,iSCSI的吞吐量也会随之增加,与光线通道匹敌甚至超越光线通道。

iSCSI的优势:

长距离连接:SAN网络集中管理存储资源,能够覆盖一个市区范围。对于分布在海外的组织则面临一系列未连接的“SAN孤岛”,当前的光纤通道连接受限于10km而无法桥接。有扩展的光纤通道连接可达数百公里,但这些方法既复杂又昂贵。广域网iSCSI (wide area network, WAN)提供了一种经济的长距离传输,可用于目前FC SAN或iSCSI SAN的桥接。


更低成本
:不同于FC SAN解决方案需要部署全新的网络基础架构,并且需要专业技术知识,专门的硬件故障排查,iSCSI SAN解决方案充分利用了现有的局域网基础设施,使之可广泛应用于大多数组织。

简化部署和实施:iSCSI解决方案仅需要在主机服务器上安装iSCSI initiator,一个iSCSI target存储设备,一个千兆比特以太网交换机以在IP网络传输块数据。诸如存储配置,调配,备份这样的管理操作可由系统管理员处理,与管理直连存储方式相同。而像集群这样的解决方案使用iSCSI也比FC更为简易。


固有的安全性
:光纤通道协议并没有内嵌的安全保障。取而代之,通过对SAN的物理连接限制来保障安全。虽然对于被限制在加锁的数据中心的SAN来说是有效的,但随着FC协议变得更加广为人知以及SAN开始连接到IP网络,这种安全方法已失去其功效。

相比之下,微软实施的iSCSI协议使用质询握手身份验证协议(CHAP)进行验证和Internet协议安全(IPSec)标准加密为网络上的设备提供安全保障。目前,iSCSI target实现了CHAP,但暂时没有更加先进的方法。

iSCSI的现状与挑战:

iSCSI这几年来得到了快速发展,近两年iSCSI的热度持续走高,各存储设备厂商纷纷推出iSCSI设备,销量也在快速增长。基于iSCSI的SAN现在已经相对成熟。10Gbps以太网的出现极大地改变了iSCSI的传输速率,大多数应用的响应能力完全可以适应用户的需求。同时iSCSI产品的采购成本与维护成本都比FC要低。

但是,iSCSI仍受到几个掣肘:iSCSI架构于IP协议之上,因此也继承了IP协议本身的缺陷:区分不同流量优先等级,防止丢包的QoS与流量控制机制不足,而FCoE在这一点上,具备暂停帧需求和将高优先级流量先于低优先级流量传输的功能,无疑具有先天的优势。即使带宽提升到10Gb,TCP/IP协议管理方面的问题在仍会影响iSCSI的效率表现。 此外,以太网带宽扩展到10Gb只是外部传输通道的增加,如果主机I/O处理能力、存储阵列性能无法跟上,则存储网络整体性能同样会受到影响。目前iSCSI在高I/O环境下的性能表现仍不如光纤通道。

iSCSI SAN概念解析:

iSCSI SAN组件与FC SAN组件相类似。包括以下部件:

iSCSI Client/Host

系统中的iSCSI客户端或主机(也称为iSCSI initiator),诸如服务器,连接在IP网络并对iSCSI target发起请求以及接收响应。每一个iSCSI主机通过唯一的IQN来识别,类似于光纤通道的WWN。

要在IP网络上传递SCSI块命令,必须在iSCSI主机上安装iSCSI驱动。推荐通过GE适配器(每秒1000 megabits)连接至iSCSI target。如同标准10/100适配器,大多数Gigabit适配器使用Category 5 或Category 6E线缆。适配器上的各端口通过唯一的IP地址来识别。


iSCSI Target:

iSCSI target是接收iSCSI命令的设备。此设备可以是终端节点,如存储设备,或是中间设备,如IP和光纤设备之间的连接桥。

每一个iSCSI target通过唯一的IQN来标识,存储阵列控制器上(或桥接器上)的各端口通过一个或多个IP地址来标识。


本机与异构IP SAN:

iSCSI initiator与iSCSI target之间的关系如图1所示。

本例中,iSCSI initiator(或client)是主机服务器,而iSCSI target是存储阵列。

此拓扑称为本机iSCSI SAN,它包含在TCP/IP上传输SCSI协议的整个组件。

与之相反,异构IP SAN,如下图所示,包含在TCP/IP与光纤交换结构传输SCSI的组件。

为了实现这一点,需要在IP与光纤通道之间安装连接桥或网关设备。连接桥用于TCP/IP与光纤通道之间的协议转换。

因此iSCSI主机将存储看做iSCSI target。

直接连接光纤通道target的服务器必须包含HBA而不是iSCSI主机的网络适配卡。

iSCSI主机可使用NIC或HBA。

iSCSI 存储系统四大架构:

控制器系统架构:
iSCSI的核心处理单元采用与FC光纤存储设备相同的结构。即采用专用的数据传输芯片、专用的RAID数据校验芯片、专用的高性能cache缓存和专用的嵌入式系统平台。打开设备机箱时可以看到iSCSI设备内部采用无线缆的背板结构,所有部件与背板之间通过标准或非标准的插槽链接在一起,而不是普通PC中的多种不同型号和规格的线缆链接。

控制器架构iSCSI存储内部基于无线缆的背板链接方式,完全消除了链接上的单点故障,因此系统更安全,性能更稳定。一般可用于对性能的稳定性和高可用性具有较高要求的在线存储系统,比如:中小型数据库系统,大型数据的库备份系统,远程容灾系统,网站、电力或非线性编辑制作网等。

连接桥系统架构:

整个iSCSI存储系统架构分为两个部分,一个部分是前端协议转换设备,另一部分是后端存储。结构上类似NAS网关及其后端存储设备。

前端协议转换部分一般为硬件设备,主机接口为千兆以太网接口,磁盘接口一般为SCSI接口或FC接口,可连接SCSI磁盘阵列和FC存储设备。通过千兆以太网主机接口对外提供iSCSI数据传输协议。

后端存储一般采用SCSI磁盘阵列和FC存储设备,将SCSI磁盘阵列和FC存储设备的主机接口直接连接到iSCSI桥的磁盘接口上。

iSCSI连接桥设备本身只有协议转换功能,没有RAID校验和快照、卷复制等功能。创建RAID组、创建LUN等操作必须在存储设备上完成,存储设备有什么功能,整个iSCSI设备就具有什么样的功能。

PC系统架构:
即选择一个普通的、性能优良的、可支持多块磁盘的PC(一般为PC服务器和工控服务器),选择一款相对成熟稳定的iSCSI target软件,将iSCSI target软件安装在PC服务器上,使普通的PC服务器转变成一台iSCSI存储设备,并通过PC服务器的以太网卡对外提供iSCSI数据传输协议。

在PC架构的iSCSI存储设备上,所有的RAID组校验、逻辑卷管理、iSCSI 运算、TCP/IP 运算等都是以纯软件方式实现,因此对PC的CPU和内存的性能要求较高。另外iSCSI存储设备的性能极容易收PC服务器运行状态的影响。


PC+NIC系统架构

PC+iSCSI target软件方式是一种低价低效比的iSCSI存储系统架构解决方案,另外还有一种基于PC+NIC的高阶高效性iSCSI存储系统架构方案。

这款iSCSI存储系统架构方案是指在PC服务器中安装高性能的TOE智能NIC卡,将CPU资源较大的iSCSI运算、TCP/IP运算等数据传输操作转移到智能卡的硬件芯片上,由智能卡的专用硬件芯片来完成iSCSI运算、TCP/IP运算等,简化网络两端的内存数据交换程序,从而加速数据传输效率,降低PC的CPU占用,提高存储的性能。

协议映射:

iSCSI协议是让SCSI在TCP协议之上工作的传输协议,是一种SCSI远程过程调用模型到TCP协议的映射。SCSI命令加载在iSCSI请求之上,同时SCSI状态和响应也由iSCSI来承载。iSCSI同样使用请求响应机制。

在iSCSI 配置中,iSCSI 主机或服务器将请求发送到节点。 主机包含一个或多个连接到IP 网络的启动器,以发出请求,并接收来自iSCSI 目标的响应。

每个启动器和目标都指定了一个唯一的iSCSI 名称,如 iSCSI 限定名 (IQN) 或扩展的唯一标识(EUI)。 IQN 是 223 字节的 ASCII 名称。EUI 是 64 位标识。iSCSI 名称代表全球唯一命名方案,该方案用于标识各启动器或目标,其方式与使用全球节点名(WWNN) 来标识光纤通道光纤网中设备的方式相同。

iSCSI 目标是响应 iSCSI 命令的设备。iSCSI 设备可以是诸如存储设备的结束节点,或者可以是诸如IP 与光纤通道设备之间的网桥的中间设备。每个iSCSI 目标由唯一的iSCSI 名称标识。

要通过 IP 网络传输 SCSI 命令,iSCSI 驱动程序必须安装到iSCSI 主机和目标中。驱动程序用于通过主机或目标硬件中的网络接口控制器(NIC) 或 iSCSI HBA 来发送iSCSI 命令和响应。

为实现最佳性能,请使用传输速度为每秒 1000 兆位 (Mbps) 的千兆以太网适配器在iSCSI 主机和 iSCSI 目标间进行连接。

iSCSI 命令封装:

发起端和目标端之间以消息的形式进行通信。

PDU(Protocal Data Unit)就是用来传输这些消息的。

iSCSI 协议就是一个在网络上封包和解包的过程,在网络的一端,数据包被封装成包括TCP/IP头、iSCSI识别包和SCSI数据三部分内容,传输到网络另一端时,这三部分内容分别被顺序地解开。iSCSI 系统由一块 SCSI 卡发出一个 SCSI 命令,命令被封装到第四层的信息包中并发送。

接收方从信息包中抽取SCSI 命令并执行,然后把返回的SCSI命令和数据封装到IP信息包中,并将它们发回到发送方。系统抽取数据或命令,并把它们传回SCSI子系统。所有这一切的完成都无需用户干预,而且对终端用户是完全透明的。 为了保证安全,iSCSI 有自己的上网登录操作顺序。在它们首次运行的时候,启动器(initiator)设备将登录到目标设备中。

任何一个接收到没有执行登录过程的启动器的iSCSI PDU目标设备都将生成一个协议错误,而且目标设备也会关闭连接。在关闭会话之前,目标设备可能发送回一个被驳回的iSCSI PDU。这种安全性是基本的,因为它只保护了通信的启动,却没有在每个信息包的基础上提供安全性。还有其他的安全方法,包括利用IPsec。在控制和数据两种信息包中,IPsec 可以提供整体性,实施再次(replay)保护和确认证明,它也为各个信息包提供加密。

iSCSI 会话:

iSCSI 会话建立于一个initiator与一个target之间,一个会话允许多个TCP连接,并且支持跨连接的错误恢复。

大多数通信还是建立在SCSI基础之上的,例如,使用R2T进行流量控制。

iSCSI添加于SCSI之上的有:立即和主动的数据传输以避免往返通信;连接建立阶段添加登录环节,这是基于文本的参数协商。

建立一个iSCSI会话,包括

命名阶段:确定需要访问的存储,以及initiator,与FC不同,命名与位置无关;

发现阶段:找到需要访问的存储;

登录阶段:建立于存储的连接,读写之前首先进行参数协商,按照TCP连接登录。

结构模式:

iSCSI有两大主要网络组件。

第一个是网络团体,网络团体表现为可通过IP网络访问的一个驱动或者网关。一个网络团体必须有一个或者多个网络入口,每一个都可以使用,通过IP网络访问到一些iSCSI节点包含在网络团体中。

第二个是网络入口,网络入口是一个网络团队的组件,有一个TCP/IP的网络地址可以使用给一个iSCSI节点,在一个ISCSI会话中提供连接。一个网络入口在启动设备中间被识别为一个IP地址。一个网络入口在目标设备被识别为一个IP地址+监听端口。

iSCSI支持同一会话中的多个连接。在一些实现中也可以做到同一会话中跨网络端口组合连接。端口组定义了一个iSCSI节点内的一系列网络端口,提供跨越端口的会话连接支持。

iSCSI存储系统知识详解相关推荐

  1. 计算机raid基础知识,主板知识详解:板载 RAID

    主板知识详解:板载 RAID RAID 是英文 Redundant Array of Inexpensive Disks 的缩写.中文简称为廉价磁盘冗余阵列.RAID 就是一种由多块硬盘构成的冗余阵 ...

  2. 操作系统--二级存储结构下篇知识详解

    操作系统--二级存储结构下篇知识详解 三级存储结构 三级存储结构 n Low cost is the defining characteristic of tertiary 低成本是第三产业的决定性特 ...

  3. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  4. R语言可视化绘图基础知识详解

    R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...

  5. python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...

    前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...

  6. 计算机网络相关知识 参考博客 子网掩码怎么理解 网关及网关的作用 路由器基础知识详解

    子网掩码怎么理解 https://blog.csdn.net/farmwang/article/details/64132723 网关及网关的作用 https://blog.csdn.net/zhao ...

  7. linux设置共享权限设置命令,Linux系列知识详解(三)--------- Linux链接命令和权限管理命令...

    Linux系列知识详解(三)--------- Linux链接命令和权限管理命令 一:链接命令ln 简介:什么是链接命令?链接命令分为软链接和硬链接.其中软链接产生的新文件是以路径的形式表示原文件,类 ...

  8. 计算机基础知识预备知识,计算机预备知识详解.ppt

    计算机预备知识详解 Visual C++程序设计 Ch3 简单的输入/输出 > 3.1 cin 输入十六进制或八进制数据 例: int i , j , k , l ; cin>>he ...

  9. Oracle入门(一)之入门级知识详解

    转载自 Oracle入门级知识详解 一. Oracle基本介绍 1. 什么时候用Oracle数据库? SQL SERVER 号称百万级数据(一个表的数据),但是其实做多20万条数据 超过20万条数据就 ...

最新文章

  1. luogu P4240 毒瘤之神的考验(莫比乌斯反演+递推前缀和+数论分块)
  2. python中print的用法_python中print用法
  3. Java Throwable setStackTrace()方法与示例
  4. mysql数据超10亿条,大型主键:超过10亿行MySQL + InnoDB?
  5. 30天扣篮训练计划_明日之后:网易CH用心良苦?狼人画出“辐射高校30天计划”,绝了...
  6. 解释汇编中的AUGW LABEL WORD、ADDW LABEL WORD
  7. java自定义表单系统_java自定义表单
  8. 便捷、高效、智能—从运维视角看星环科技大数据基础平台TDH
  9. 时隔两年之后,证监会官网再次更新瑞丰银行的IPO进度。
  10. 贝叶斯定理,从白袜到飞机失事再到人工智能
  11. CSDN如何上传gif图片
  12. SPSS MODELER
  13. 有趣且重要的Git知识合集(5)Merge branch ‘master‘ of
  14. 如何[破解]观看加密受保护的视频文件
  15. 干货 | Python进阶之学习笔记(一)
  16. [第3课] 象形统计图
  17. 四、Abp Vnext中使用Minio打造文件管理模块(上)
  18. 2017淮北计算机会考,2017年安徽淮北高中会考报名网站:淮北教育局
  19. 杭州python怎么样_杭州python需要具备什么
  20. OkHttp的GET请求的实现方式

热门文章

  1. WPS文字技巧—如何快速的为中英文混合文字内容排版
  2. linux带宽速度测试脚本
  3. 在程序设计中思想(算法)的重要性(2013.10.7)
  4. 合信达 机器人_【中信建投 通信】拓邦股份:中报电话会议干货纪要
  5. 微服务:简述Surging微服务架构
  6. 吉布斯现象与插值优化(上)Matlab实现多项式插值
  7. C语言,期末救急输入三个系数,判断一元二次方程的解(代码逐行逐句的解释,看到最后有知识的总结)
  8. Pytorch——报错解决:TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, found
  9. 全球及中国厦门市软件和信息技术服务产业趋势分析及投资规模现状调研报告2021-2027年
  10. 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤