iscsi协议及实现.doc

上传人:scccc 文档编号:12487279 上传时间:2021-12-04 格式:DOC 页数:55 大小:997.50KB
返回 下载 相关 举报
iscsi协议及实现.doc_第1页
第1页 / 共55页
iscsi协议及实现.doc_第2页
第2页 / 共55页
iscsi协议及实现.doc_第3页
第3页 / 共55页
iscsi协议及实现.doc_第4页
第4页 / 共55页
iscsi协议及实现.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《iscsi协议及实现.doc》由会员分享,可在线阅读,更多相关《iscsi协议及实现.doc(55页珍藏版)》请在三一文库上搜索。

1、iSCSI协议及实现iSCSI协议简介士涉及到的SCSI的概念启动设备和目标设备启动设备(initiator):发起I/O请求的设备目标设备(target):响应请求执行实际I/O操作 的设备在启动设备和目标设备建立连接后,目标设 备在操作中作为主设备控制整个工作过程 一般情况下主机适配器HBA作为启动设备, 磁盘/磁带作为目标设备士涉及到的SCSI的概念 CDB:命令描述块。SCSI的命令及参数是填充 在一定长度的数据块内传输的Bit Byte765432100Operation Code (08h)1Lx)Ricdl Unit NumberLogical Block Address (MS

2、B)2Logical Block Address3Logical Block Address4Transfer Length5Vendor UniqueRcscn'cdNACAObfAileh'LinkSCSI read(6) CD典型的SCSI系统ID 7IDOLUNOLUN1LUN2LUNS土 SCSI的缺点 SCSI是点对点的、直接相连的计算机到 存储器的设备接口,不适用于主机到存 储器的存储网络通讯-SCSI总线的长度被限制在25米以内,对 于Ultra SCSI长度限制为12米,不适于构 造各种网络拓扑结构 SCSI总线上设备数限制为15,不适用于 多服务器对多存储设

3、备的网络结构斗SCSI传输协议土 iSCSI的概念 iSCSI是关于SCSI的命令 、数据和状态到TCP/IP 网络的映射的协议对TCP层的改造和增加较低功能层(对TCP层透明)是为了适应大批量存储数SCSIiSCSI同歩和导向层TCP较低功能层IPLink据传输的需要£CSI协议现状 IETF正在制定iSCSI协议标准,最新草案是 draft-ietf-ips-iSCSI-06 IETF: httD :/www. ietf orq/IPS工作组: httD:wwwece.cmuedu/iDs/iSCSI产品 Cisco SN 5420 Storage Router IBM Tota

4、lstorage IP Storage 200i用Cisco SN 5420构造的存储系统Storage devicesServerCkcd SN 520IPBGO/ISiorage X-.-j /B0Of server accedes a sDragsecilice aA if 11 were direcflyatlached io lhe storage device.土 iSCSI协议结构 1 概述 2 协议数据单元格式 3 用于iSCSI协议的SCSI模式参数 4 登录相 5 登录相之外的工作参数协商6 错误处理和恢复土 iSCSI的命名和编址 iSCSI使用类似URL的iSCSI名字

5、来唯一鉴 别启动设备和目标设备。地址会随着启动设备和目标设备的移动 而改变,但名字始终是不变的土 iSCSI的命名和编址 一个iSCSI名字由三部分组成:类型定义 符、名字认证机构、由该认证机构分配 的名字 .acme.s n.8675309 iSCSI地址格式<domain-name>:<port>/<iSCSI Name>* In? i5L £l Nstiic iianirs lbn! inilialDr( rni【Ihij pirlThis in linlor hsshWdkki aa.fiontM 10.1.140 iTCP Pwx 5tK

6、KiSCS!Oemcbdi£k.1b2Z2.e«idIIDll.ZM1CPPi>n5D(KAil 由匚SJ puflis 自n addnass« TCP port JiSCSI Targetco ma crn6-sn.BE7 町制switch, etccomcmer.&n.BfiVSSlM!The SCSI Nome narnee the tangnL ndapBPdent nf the part on nbich it is aceassedEach iSCSI ha? ite Uwn lonkal units土 iSCSI的发现机制启动设备可以通

7、过下列方法发现目标设备:在启动设备上设置目标设备的地址在启动设备上设置默认目标设备地址,启动设备 可通过“SendTargets”命令从默认目标设备上获 取iSCSI名字列表发出服务定位协议(SLP)广播请求,等待目标设 备回应查询存储设备名字服务器获取可访问的目标设备 列表启动设备和目标设备之间的TCP连接构成 一次会话 一个会话包含一个或多个TCP连接会话由会话号区分,会话号包括启动设备部 分和目标设备部分会话中包含的TCP连接可以增加也可以删除, 这些连接由连接号(CID)区分命令编号从启动设备到目标设备SCSI层的命令由 iSCSI编号,该号码由iSCSI协议数据单元 中的命令序列号(

8、CmdSN)携带目标设备的iSCSI层必须按命令序列号的 顺序把命令传递给SCSI层目标设备的SCSI层接收到命令后该命令 序列号即失效。命令序列号也能被用来 建行命令的流量控制土 iSCSI登录和协商 iSCSI登录是用来在启动设备和目标设备之间建 立TCP连接的机制登录的作用包括鉴别通讯双方、协商会话参数、 打开相关安全协议并且给属于该会话的连接作 标记登录过程完成后,iSCSI会话进入全功能相(full feature phase),这时启动设备就能通 过iSCSI协议访问目标设备里的各逻辑单元了响应/状态编号从目标设备到启动设备的响应由iSCSI编 号,在iSCSI协议数据单元中用状态

9、序列 号(StatSN)表示启动设备提供期望状态序列号ExpStatSN 来确认状态如果状态序列号和期望状态序列号不同 则意味着连接出现了错误%协议数据单元格式byte0765432101765432102765432103765432100操作码操作码相关4附加头长度数据段长度S逻辑单元或操作码相关12lh初始设备任务标签或操作码相关20-48操作码相关iiSCSI启动设备命令基本首部(BHS)Byte01230OpcodeOpcodespecific HeldsReserved48Logical Unit Number(LUN)12Initiator Task Tag16Expected

10、Data Transfer Length20CmdSN24ExpStatSN or EndDataSN28+44SCSI Command Descriptor Block(CDB)iSCSI协议的实现土 iSCSI代码来源 iscsi-Apr6.tgz: Intel () kernel_emulator_10-tgz: IOL(InterOperability Lab) of UNH(University of New Hampshire) (http:/www.ioLunh.edu) Iscsi-O.Ltar.gz: iSCSI research team of UML(University

11、 of Massachusetts Lowell) (http:/www.cs.uml.edu/mbrown/iscsi)寸1程序的运行启动设备端: insmod scsi_target.o insmod isc引_target.o客户端: insmod iscsi.o insmod iscsi_cliento fdisk /dev/sda mke2fs /dev/sda 1 mount -t ext2 /dev/sda 1 /mnt/iscsi raiddev /dev/mdO(多个目标设备)士程序的结构(目标设备) l.STML(SCSI Target mid-level)处理SCSI命令

12、 2.FETD(front-end Target driver)将STML发来的命令数据封装成底层通讯协 议数据包的格式发送到网络上或者将从网络 接受到的数据包解包传递给STML土将STML和FETD分开的原因增强程序的可重用性 STML是通用的 FETD是和底层采用的通讯协议(TCP/IP、Fibre channel)相关的SCSI InitiatorSCSI TargetSCSI Commands/DataSCSI InitiatorSCSI TargetUser Sp盹 ApplH:JtionI Fik» System ISCSI Initiator Upper Level U

13、LUSER SPACE程 序 功 能 模 块 图Generic SCSI Initiatormid-tevel SIML)Front-End InitiMorDriver (FEID)SCSI Respon 密/DdtoSCSI Target EmulatorGeneric SCSI Targetmid-level (ST ML)Fnont-End Target Driver (FETD)SCSI Commands/Data土 STML提供给FETD的API r e g i ste r_ta r g et_te m p I a t e () deregister_target_template

14、() reg ister_ta rg et_f ront_en d () dereg ister_ta rget_f ro nt_en d() rx_cmnd() scsi_rx_data() scsi_target_done() scsi_release() rx_task_mg mt_f n()士 FETD提供给STML的API detect() release() xmit_resp on se() rdy_to_xfer() task_mgmt_fn_d one()report_ae n()土重要的数据结构struct Target_Emulator struct Scsi_Targe

15、t_Template struct Scsi_Target_Device struct Target_Scsi_Cm nd struct scsi_request struct Target_Scsi_Message struct scsi_cm nd struct sg_io_hdr_t土 STML的初始化初始化一个 struct Target_Emulator 类型 的全局变量创建线程 scsi_ta rget_process_threa d 处 理大多数的SML的亍作进入等待士 FETD的初始化向STML注册,STML将其加入设备队列创建线程iscsi_server_thread监听端口

16、 4002进入等待士 FETD向STML的注册过程士 FETD向STML注销过程士 FETD对请求的响应当在4002端口监听的线程接收请求后创建线程iscsi_rx_thread接收SCSI命令创建线程iscsi_tx_thread传送应答和状态 FETD 创建一个 Target_Scsi_Cmnd 类型的 数据接收SCSI命令,寤其加入命令队列, 唤醒STML的线程STT处理收到的SCSI命 令土 STML对FETD的响应调用han dle_cmd处理命令队列调用hand_to_fro nt_end返回处理结果处理结果加入FETD的发送队列 xmit_queue等待发送在结果发送完成后调用

17、scsi_target_d ones 释放资源FrtmH EftdDiHvhFrtmH EftdDiHvhInitiatorTalnitki 耳读类型命令的处理SCSI Taxiget hUdkLe陀 1iSCSI的应用土采用iSCSI的设备的特点采用了 iSCSI协议的硬件设备是N AS和 SAN的中间产品,它能简单连接到企业内 部网,做到即插即用。而每一个远程用 户端对该存储设备的访问效果接近于在 本地直接访问SCSI盘。为无法承担光纤通道SAN环境基础结构高 成本的中间市场客户提供利用SAN所带来 的好处iSCSI & NAS在NAS上部署iSCSI协议很简单,因为不需要任何硬件上的改动,只是驱动软件的安装+ iSCSI & SANbj SAN MANAGEMENT |Z|TOOLJia M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1