基于linux的iSCSI设计与实现(三)

原创 2003年04月25日 16:28:00

第三章 iSCSI和SCSI

3.1 iSCSI概述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

iSCSI 协议是一个Internet 草案标准,用来定义在TCP/IP协议上传送SCSI命令。2001年1月IBM和Cisco首先提出了iSCSI的草案标准。于同年8月提交给IETF的IP Storage(IPS)工作组进行标准化。2001年7月IETF第一次定义了iSCSI草案标准。根据草案,许多公司已开发了该类产品。

iSCSI允许在使用TCP/IP协议的网络上传输SCSI I/O命令和数据,就像将SCSI命令映射到光纤通道、并行SCSI和SSA介质上一样。在服务器端安装iSCSI设备驱动器,接收应用程序的I/O请求,再使用iSCSI协议将它们在LAN上传输。目标器存储设备可以直接附着于LAN,也可以使用路由器(协议,转换器)来连接到LAN。第二种方法中,在LAN的另一端存在一个光纤通道端口,可以连接到一个支持光纤通道附件的存储设备。这种方案允许不带有iSCSI端的存储产品通过iSCSI协议被访问到,也允许服务器在没有光纤通道主机总线适配卡的情况下访问设备。与其它解决方案相比,iSCSI有一下一些优点:

1.可连接性:在NAS和SAN连接到设备时可以使用iSCSI。ISCSI设备可放于现有的包含多种应用的LAN上,或专用于存储I/O的LAN上,或只连接到一个处理器(DAS)的LAN上。TCP/IP是一种已经比较成熟的协议,许多IT人员对它已经很熟悉,这就降低了大量的管理和培训费用。

2.介质:iSCSI附着于IP网络,与单纯的光纤通道SAN比较起来,可以支持更长的传输距离。

3.I/O协议:iSCSI使用SCSI I/O协议,因此它是基于块的I/O,避免了不合适数据库或者其它不使用文件协议的应用的尴尬。可连接多个独立的网络,可使用一般的交换机,不像光纤通道那样要特定的交换机。

4.管理:iSCSI的管理与其它直接附着的SCSI设备的管理是一样的。从处理器的角度看,连接到iSCSI的磁盘卷是可见的。任何支持附着于SCSI卷的数据备份方法对于iSCSI同样是可行的。与光纤通道SAN相比,iSCSI可以利用已经促步完善的网络管理工具和人力技能的优势。

5.性能:同样基于Ethernet,iSCSI的性能要优于NAS,因为它直接对SCSI设备进行操作,而不需要在文件I/O协议和SCSI协议之间进行转换。速度可以达到10Gigabit,可以和OC-192 SONET(同步光纤网络)相媲美。

6.费用:一般而言,同样情况下,一个iSCSI SAN的费用要低于光纤通道SAN的费用,从硬件角度看,以太网主机适配器一般要比光纤通道主机适配器便宜,如果iSCSI直接附着与SAN,那就根本不需要新的主机适配卡了。iSCSI SAN的建立要比光纤通道SAN的建立快,所需的新技术也少一些。由于不需要支持文件系统、文件共享协议和其它集成到NAS产品中的应用,同等条件下,iSCSI盘设备要比一个NAS设备便宜。

I/O操作频繁的情况下,iSCSI的优势尤其明显。

3.2 iSCSI协议分层

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />下图简易给出了iSCSI协议的分层:

3.3 SAN和iSCSI的关系

就如同在LANWAN上,客户机和服务器要进行通信,必须由相应的通信机制(常见的有TCP/IP协议等),在服务器和存储设备通过SAN通信时,也需要相应的机制,iSCSI就是其中一种很有发展潜力的协议。由于iSCSI从本质上来讲就是SCSI命令封装在TCP/IP协议中,在详细讲述iSCSI之前,有必要先介绍SCSI及相关内容。

3.4 SCSI

在最高层,SCSI是向I/O设备请求服务的接口族,它包括了硬件驱动器、磁带驱动器、CD和DVD驱动器、打印机和扫描仪。在SCSI术语中,一个I/O设备被称为一个“逻辑单元”(LU,logical Unit).SCSI采用客户机---服务器结构。一个SCSI接口的客户机被称为“启动器”。启动器发出“命令”向一个逻辑单元请求服务。在逻辑单元上的“设备服务器”接收SCSI命令并处理它。一个“SCSI传输”将客户机---服务器SCSI协议映射到一个特有的交互连接。启动器是SCSI传输的一个终点。一个目标器包含多个逻辑单元。每个逻辑单元在目标器内有一个地址,称为逻辑单元号。一个SCSI任务是一个SCSI命令或者一个SCSI命令的逻辑集。一些逻辑单元支持多个挂起(排队)任务,任务队列由目标器管理。目标器使用启动器提供的“任务标签”来区分任务。在任意给定时刻,只有一个任务的一条命令可以被执行。每个SCSI命令导出一个可选的数据阶段和一个必须的应答阶段。在数据阶段,信息能从启动器到目标器(比如写操作),也能从目标器到启动器(比如读操作),或者双向。在应答阶段,目标器送回操作的最终状态,包括任何错误。一个应答中止一个SCSI命令。一个命令描述块是一个数据结构,包含了从启动器到目标器要处理的命令参数。

SCSI是一种通用的支持块级别访问的技术,它的瓶颈在于SCSI总线

的长度。目前由一些协议用来扩展SCSI总线长度:光纤通道,SCSI封装协议和iSCSI一根SCSI总线上最多带有16个设备,它们可以是任意

多个启动器和目标器的组合,但是一个可用的系统至少要有一个启动器和一个目标器。SCSI协议为每一个SCSI设备指定了一个ID号(地址),用来唯一识别设备,在带有16个SCSI设备的系统中,ID号从0编号到15。每一个目标器又可以细分为多个逻辑单元,每个设备上最多有8个逻辑单元。

3.5 SCSI命令描述块

从应用客户端到设备服务器的通信命令的数据结构称为命令描叙块(CDB)。一条SCSI命令或者一组相关的命令称为“任务”。任何时候,一个任务中只有一条命令被执行。SCSI命令执行后的结果是一个可选的数据阶段和一个状态阶段。在数据阶段,写命令中数据从启动器到目标器,读命令中数据从目标器到启动器;在状态阶段,目标器回送操作的最后状态。状态应答中止一条SCSI命令或任务。SCSI驱动的基本功能是根据应用程序提出的请求建立SCSI命令描叙块(CDB),并将CDB发送到iSCSI层,SCSI驱动也从iSCSI层接收CDB并将数据转发到应用层。CDB分为6字节、10字节和12字节3种,下图是一个基本的16字节SCSI CDB

其中,对于操作码部分,我在附录中给出了所有SCSI设备的通用命令,请参看。

 

基于linux的TCP网络聊天室设计与实现

利用Linux实现基于TCP模式的网络聊天程序 主要完成的两大组成部分为:服务器和客户端。 服务器程序主要负责监听客户端发来的消息。 客户端需要登录到服务器端才可以实现正常的聊天功能。该程序是利用进...
  • qq_35260622
  • qq_35260622
  • 2016年06月12日 09:12
  • 5074

存储知识学习之--IP网络存储iSCSI的概念与工作原理

存储知识学习之--IP网络存储iSCSI的概念与工作原理        本章主要介绍基于IP SAN的网络存储iSCSI。iSCSI技术以其低廉的构建成本和优秀的存储性能,博得了很多CIO和存储管理员...
  • lqx0405
  • lqx0405
  • 2015年03月31日 12:09
  • 5110

Linux内核设计与实现 原书第3版中文版pdf

下载地址:网盘下载 内容简介 编辑 《Linux内核设计与实现(原书第3版)》基于Linux 2.6.34内核详细介绍了Linux内核系统,覆盖了从核心内核系统的应用...
  • cf406061841
  • cf406061841
  • 2017年05月29日 10:00
  • 1764

linux搭建gfs系统_iscsi+GFS_实现网络存储

  • 2014年01月02日 20:50
  • 466KB
  • 下载

最新linux搭建gfs系统--iscsi+GFS实现网络存储

作者:google4y  来源:博客园  发布时间:2011-08-23 14:22  阅读:133 次  原文链接  [收藏]   虚拟机搭建gfs系统 系统环境:CentOS release ...
  • liuyifeng_510
  • liuyifeng_510
  • 2011年11月30日 14:59
  • 2452

最新Linux(CentOS5.5)搭建GFS系统--iSCSI+GFS实现网络存储

本文转载于 http://www.linuxidc.com/Linux/2011-12/48408.htm 虚拟机搭建gfs系统 系统环境:CentOS release 5...
  • MM22GG
  • MM22GG
  • 2012年08月07日 00:14
  • 976

红帽GFS集群文件系统配置指南 linux搭建gfs系统--iscsi+GFS实现网络存储

全局并行文件系统(GPFS) GPFS[7]是IBM公司并行共享磁盘的集群文件系统,已经被应用于世界上很多大的超级计算中心。GPFS的扩展性来源于共享磁盘的系统结构,如图 5.8所示。 ...
  • tycoon1988
  • tycoon1988
  • 2014年07月30日 16:13
  • 1805

iSCSI 在Linux下的模拟实验(三)

续iSCSI 在Linux下的模拟实验(二) 5、iSCSI客户端(Initiator)配置           在Linux 2.6内核中提供了iscsi驱动,iSCSI 驱动(drive...
  • starshine
  • starshine
  • 2012年02月21日 15:51
  • 13527

Linux存储实验三:iSCSI target配置[windows下使用linux的存储设备]

现在课程调成了上一节理论,做一节实验了,所以要等两周才能发一次实验,这次我们要做的是第三个实验:iSCSI target配置 实验步骤: (1)iSCSItarget配置 步骤1 Linux...
  • houqingdong2012
  • houqingdong2012
  • 2013年04月07日 17:29
  • 3394

linux下的开源iscsi initiator

  • 2014年03月25日 14:26
  • 308KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于linux的iSCSI设计与实现(三)
举报原因:
原因补充:

(最多只允许输入30个字)