iscsi协议的简单介绍

一、iscsi的简介

        介绍:iSCSI(Internet Small Computer System Interface)是一种基于因特网及SCSI-3协议下的存储技术,它允许通过IP网络发送SCSI命令,使得连接距离可以无限扩展,并且支持的服务器数量没有限制。iSCSI利用TCP/IP协议的port 860 和 3260作为沟通的渠道,通过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的存储装置

        iSCSI协议最早由IBMCISCOHP发起,2004年起作为正式的IETF标准,现有的iSCSI协议依据AM2(SCSI Architecture Model-2)。  

        iSCSI(Internet SCSI)把SCSI命令和块状数据封装在TCP中在IP网络中传输。

        iSCSI作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN。

出现的原因:

1. 存储需求的增长:随着数据量的激增,企业对存储解决方案的需求不断增加。传统的存储连接方式(如 SCSI 和光纤通道)在扩展性和灵活性方面存在局限,iSCSI 提供了一种更灵活的解决方案。

2. 成本考虑:光纤通道(FC)存储网络虽然性能优越,但成本高昂,包括硬件、布线和维护费用。iSCSI 利用现有的以太网基础设施,大幅降低了部署和运营成本,使得企业可以以更低的投资实现存储网络。

3. 网络技术的发展:随着网络技术的进步,尤其是千兆以太网和更高速网络技术的普及,iSCSI 可以在较高的带宽下进行有效的数据传输,从而满足企业对存储性能的要求。

4. 灵活性和可扩展性:iSCSI 支持通过标准的 IP 网络进行远程存储连接,允许企业根据需要轻松扩展存储资源。这种灵活性使得企业能够根据业务需求快速调整存储配置。

5. 虚拟化的兴起:随着虚拟化技术的普及,企业需要高效、集中化的存储解决方案。iSCSI 使得虚拟机能够方便地访问共享存储,满足虚拟化环境中对存储的需求。

6. 统一存储架构:iSCSI 允许将不同类型的存储(如块存储和文件存储)通过统一的 IP 网络连接,从而简化存储管理并提高资源利用率。

7. 兼容性:iSCSI 可以与多种操作系统和存储设备兼容,支持多种应用场景,降低了企业在选择存储解决方案时的风险。

8.在早期使用的scsi允许连接的设备数量较少,距离较短却有限,但是在一些设备需求量大的地方scsi的缺陷就显现了出来

  工作原理

        iSCSI 通过将 SCSI 命令封装在 IP 数据包中,使得存储设备和服务器可以通过 TCP/IP 网络进行通信。其工作流程如下:

        封装:iSCSI 将 SCSI 命令和数据封装成 iSCSI 数据包,并通过 TCP/IP 网络传输。

        传输:数据包通过标准的以太网协议进行传输,允许在广域网(WAN)或局域网(LAN)中使用。

        解封装:接收端的 iSCSI 目标(Target)解封装接收到的数据包,提取出 SCSI 命令并执行。

 三个主要层次

  1. SCSI层:负责建立SCSI命令描述块(CDB),并传给iSCSI层。
  2. iSCSI层:对SCSI CDB进行封装,以便在基于TCP/IP协议的网络上进行传输。
  3. TCP/IP层:负责对IP报文进行路由和转发,提供端到端的透明可靠的传输。

iSCSI启动器和目标器

        iSCSI的通信体系仍然继承了SCSI的部分特性,在iSCSI通信中,具有一个发起I/O请求的启动器设备(Initiator)和响应请求并执行实际I/O操作的目标器设备(Target)。在InitiatorTarget建立连接后,Target在操作中作为主设备控制整个工作过程。

        启动器:通常是客户端(如服务器),它发起对存储设备的请求。iSCSI启动器可分为三种,即软件Initiator驱动程序、硬件的TOETCP Offload EngineTCP卸载引擎)卡以及iSCSI HBA卡。就性能而言,软件Initiator驱动程序最差、TOE卡居中、iSCSI HBA卡最佳。

        目标器:iSCSI目标器iSCSI Target,通常为iSCSI 磁盘阵列、iSCSI 磁带库等。

优点

成本效益:iSCSI可以在现有的IP网络上运行,无需额外的专用硬件,降低了成本。

易于部署:iSCSI易于部署和扩展,可以快速搭建存储区域网络(SAN)。

灵活性:iSCSI可以在广域网(WAN)上使用,使得数据存储可以跨越大距离。

兼容性:iSCSI支持多种操作系统和存储设备,具有良好的兼容性。

iSCSI系统的基本组成包括:

        iSCSI Initiator:安装在主机上的软件或硬件,负责发起与iSCSI存储设备的通信。

        iSCSI Target:存储设备或具有iSCSI功能的设备,接收iSCSI命令。

        以太网交换机:连接iSCSI Initiator和iSCSI Target。

        服务器:连接到iSCSI网络并使用存储资源的设备。

 iSCSI 的应用场景

        虚拟化环境:在虚拟机(VM)中使用 iSCSI,可以实现高效的存储管理和灵活的资源分配。

        备份和恢复:iSCSI 可用于备份解决方案,支持远程数据备份和恢复。

        数据中心:在数据中心中,通过 iSCSI 连接多个存储设备,提高存储的集中管理能力。

注意:iSCSI技术适用于需要远程数据存储、备份和灾难恢复的场景,尤其适合中小企业的存储需求。随着技术的发展,iSCSI在存储领域中的应用越来越广泛,它提供了一种灵活、高效且成本效益高的存储解决方案

iSCSI协议及实现 iSCSI协议简介 涉及到的SCSI的概念 启动设备和目标设备 启动设备(initiator):发起I/O请求的设备 目标设备(target):响应请求执行实际I/O操作的设备 在启动设备和目标设备建立连接后,目标设备在操作中作为主设备控制整个工作过程 一般情况下主机适配器HBA作为启动设备,磁盘/磁带作为目标设备 涉及到的SCSI的概念 CDB:命令描述块。SCSI的命令及参数是填充在一定长度的数据块内传输的 典型的SCSI系统 SCSI的缺点 SCSI是点对点的、直接相连的计算机到存储器的设备接口,不适用于主机到存储器的存储网络通讯 SCSI总线的长度被限制在25米以内,对于Ultra SCSI长度限制为12米,不适于构造各种网络拓扑结构 SCSI总线上设备数限制为15,不适用于多服务器对多存储设备的网络结构 iSCSI的概念 iSCSI是关于SCSI的命令 、数据和状态到TCP/IP 网络的映射的 协议 对TCP层的改造和增加较 低功能层(对TCP层透明) 是为了适应大批量存储数 据传输的需要 iSCSI协议现状 IETF正在制定iSCSI协议标准,最新草案是draft-ietf-ips-iSCSI-06 IETF:http://www.ietf.org/ IPS工作组:http://www.ece.cmu.edu/~ips/ iSCSI产品 Cisco SN 5420 Storage Router IBM TotalStorage IP Storage 200i 用Cisco SN 5420构造的存储系统 iSCSI协议结构 1.概述 2.协议数据单元格式 3.用于iSCSI协议的SCSI模式参数 4.登录相 5.登录相之外的工作参数协商 6.错误处理和恢复 iSCSI的命名和编址 iSCSI使用类似URL的iSCSI名字来唯一鉴别启动设备和目标设备。 地址会随着启动设备和目标设备的移动而改变,但名字始终是不变的 iSCSI的命名和编址 一个iSCSI名字由三部分组成:类型定义符、名字认证机构、由该认证机构分配的名字 iscsi.com.acme.sn.8675309 iSCSI地址格式 [:]/ iSCSI的发现机制 启动设备可以通过下列方法发现目标设备: 在启动设备上设置目标设备的地址 在启动设备上设置默认目标设备地址,启动设备可通过“SendTargets”命令从默认目标设备上获取iSCSI名字列表 发出服务定位协议(SLP)广播请求,等待目标设备回应 查询存储设备名字服务器获取可访问的目标设备列表 iSCSI会话(session) 启动设备和目标设备之间的TCP连接构成一次会话 一个会话包含一个或多个TCP连接 会话由会话号区分,会话号包括启动设备部分和目标设备部分 会话中包含的TCP连接可以增加也可以删除,这些连接由连接号(CID)区分 命令编号 从启动设备到目标设备SCSI层的命令由iSCSI编号,该号码由iSCSI协议数据单元中的命令序列号(CmdSN)携带 目标设备的iSCSI层必须按命令序列号的顺序把命令传递给SCSI层 目标设备的SCSI层接收到命令后该命令序列号即失效。命令序列号也能被用来进行命令的流量控制 iSCSI登录和协商 iSCSI登录是用来在启动设备和目标设备之间建立TCP连接的机制 登录的作用包括鉴别通讯双方、协商会话参数、打开相关安全协议并且给属于该会话的连接作标记 登录过程完成后,iSCSI会话进入全功能相(full feature phase),这时启动设备就能通过iSCSI协议访问目标设备里的各逻辑单元了 响应/状态编号 从目标设备到启动设备的响应由iSCSI编号,在iSCSI协议数据单元中用状态序列号(StatSN)表示 启动设备提供期望状态序列号ExpStatSN来确认状态 如果状态序列号和期望状态序列号不同则意味着连接出现了错误 协议数据单元格式 iSCSI启动设备命令基本首部(BHS) iSCSI协议的实现 iSCSI代码来源 iscsi-Apr6.tgz: Intel (http://sourceforge.net) kernel_emulator_10.tgz: IOL(InterOperability Lab) of UNH(University of New Hampshire) (http://www.iol.unh.edu) Iscsi-0.1.tar.gz: iSCSI research team of UML(University of Massachusetts Lowell) (http://www.cs.uml.edu/~mbrown/iscsi) 程序的运行 启动设备端: insmod scsi_target.o insmod iscsi_target.o 客户端: insmod iscsi.o insmod iscsi_client.o fdisk /dev/sda mke2fs /dev/sda1 mount –t ext2 /dev/sda1 /mnt/iscsi raiddev /dev/md0(多个目标设备) 程序的结构(目标设备) 1.STML(SCSI Target mid-level) 处理SCSI命令 2.FETD(front-end Target driver) 将STML发来的命令数据封装成底层通讯协议数据包的格式发送到网络上或者将从网络接受到的数据包解包传递给STML 将STML和FETD分开的原因 增强程序的可重用性 STML是通用的 FETD是和底层采用的通讯协议(TCP/IP、Fibre channel)相关的 STML提供给FETD的API register_target_template() deregister_target_template() register_target_front_end() deregister_target_front_end() rx_cmnd() scsi_rx_data() scsi_target_done() scsi_release() rx_task_mgmt_fn() FETD提供给STML的API detect() release() xmit_response() rdy_to_xfer() task_mgmt_fn_done() report_aen() 重要的数据结构 struct Target_Emulator struct Scsi_Target_Template struct Scsi_Target_Device struct Target_Scsi_Cmnd struct scsi_request struct Target_Scsi_Message struct scsi_cmnd struct sg_io_hdr_t STML的初始化 初始化一个struct Target_Emulator类型的全局变量 创建线程scsi_target_process_thread处理大多数的STML的工作 进入等待 FETD的初始化 向STML注册,STML将其加入设备队列 创建线程iscsi_server_thread监听端口4002 进入等待 FETD向STML的注册过程 FETD向STML注销过程 FETD对请求的响应 当在4002端口监听的线程接收请求后 创建线程iscsi_rx_thread接收SCSI命令 创建线程iscsi_tx_thread传送应答和状态 FETD创建一个Target_Scsi_Cmnd类型的数据接收SCSI命令,将其加入命令队列,唤醒STML的线程STT处理收到的SCSI命令 STML对FETD的响应 调用handle_cmd处理命令队列 调用hand_to_front_end返回处理结果 处理结果加入FETD的发送队列xmit_queue等待发送 在结果发送完成后调用scsi_target_dones释放资源 iSCSI 的应用 采用iSCSI的设备的特点 采用了iSCSI协议的硬件设备是NAS和SAN的中间产品,它能简单连接到企业内部网,做到即插即用。而每一个远程用户端对该存储设备的访问效果接近于在本地直接访问SCSI盘。 为无法承担光纤通道SAN环境基础结构高成本的中间市场客户提供利用SAN所带来的好处 iSCSI & NAS 在NAS上部署iSCSI协议简单,因为不需要任何硬件上的改动,只是驱动软件的安装 iSCSI & SAN The end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值