• iscsi的工作原理与优化(2)


    2.1 iSCSI协议模型,iscsi【会话层协议,即应用协议】

    iSCSI使用TCP/IP协议在不稳定网络上进行可靠的数据传输。iSCSI层和标准SCSI集在协议栈中的位置如图1所示。iSCSI层包括了已封装的SCSI命令、数据和状态。就是说若Initiator端的操作系统或应用程序需要进行数据写操作,SCSI的CDB(Command Description Block命令描述块)必须被封装以便能够在串行千兆位链接上传输到Target端。iSCSI属于端到端的会话层协议,它定义的是SCSI到TCP/IP的映射,即Initiator将SCSI指令和数据封装成iSCSI协议数据单元,向下提交给TCP层,最后封装成IP数据包在IP网络上传输,到达Target后通过解封装还原成SCSI指令和数据,再由存储控制器发送到指定的驱动器,从而实现SCSI命令和数据在IP网络上的透明传输。它整合了现有的存储协议SCSI和网络协议TCP/IP,实现了存储与TCP/IP网络的无缝融合。

     iscsi的网络应用类型:

    SAN网络:Storage Area Network 存储区域网络,多采用高速光纤通道,对速率、冗余性要求高。使用iscsi存储协议,块级传输。

     NAS网络:Network Attachment Storage,网络附件存储,采用普通以太网,对速率、冗余无特别要求,使用NFS、CIFS共享协议,文件级传输。

     SAN和NAS的区别:1.SAN一般特指存储网络的构建方式,NAS一般特指产品。

                                      2.SAN有单独的存储网络,NAS使用现有网络

     家庭网络存储设备:FREENAS,用的是FREEBSD系统

    iscsi的优点能快速提高网络环境,能节约企业30-40%的成本主要包括;

    硬件成本低:构建iSCSI存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。

                          同时,iSCSI还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。

    操作简单,维护方便:对iSCSI存储网络的管理,实际上就是对以太网设备的管理,只需花费少量的资金去培训iSCSI存储网络管理员

                                       当iSCSI存储网络出现故障时,问题定位及解决也会因为以太网的普及而变得容易。

    扩充性强:对于已经构建的iSCSI存储网络来说,增加iSCSI存储设备和服务器都将变得简单且无需改变网络的体系结构。

    带宽和性能:iSCSI存储网络的访问带宽依赖以太网带宽。随着千兆以太网的普及和万兆以太网的应用,iSCSI存储网络会达到甚至超过FC

                       (FiberChannel,光纤通道存储网络的带宽和性能。

    突破距离限制:iSCSI存储网络使用的是以太网,因而在服务器存储设备的空间布局上的限制就会少了很多,甚至可以跨越地区和国家。

    iSCSI 在安全方面相关设定,iSCSI 在安全管理方面有着不错优势,可以使用"主机"和"使用者"来完成允许或拒绝存取的设定。
    安装完会默认生成底下列出例子为“只允许 172.16.7.120 这台 Initiator”并“拒绝全部”设定
    iscsi的安全配置

    /etc/initiators.allow 内容,最后一行允许 172.16.7.120(其他三行被#注解)
    
    # Some exmaples
    #iqn.2001-04.com.example:storage.disk1.sys1.xyz 192.168.22.2, 192.168.3.8
    #iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64
    iqn.2001-04.com.example:storage.disk2.sys1.xyz 172.16.7.120
    
    /etc/initiators.deny 内容,最后一行拒绝全部(其他四行被#注解)
    
    # Some exmaples
    #iqn.2001-04.com.example:storage.disk1.sys1.xyz ALL
    #iqn.2001-04.com.example:storage.disk1.sys2.xyz 192.168.12.2, 192.168.3.0/24, 192.167.1.16/28
    #iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64
    iqn.2001-04.com.example:storage.disk2.sys1.xyz ALL
    View Code

    注意到 iqn 需与 /etc/ietd.conf 内的 iqn 相同。

    iSCSI性能瓶颈

        iSCSI协议建立在传统的TCP/IP协议之上,在进行实际数据传输时,其传输系统性能受限于TCP/IP协议栈负载及以太网最大带宽,另外iSCSI协议层也会额外增加一些负载开销,在实际应用中,iSCSI数据传输性能仍然存在瓶颈。以发送端的写操作为例,一次完整的iSCSI协议数据传输包括数据封装、数据拷贝、数据传输.

    优化:

      1.优化网络传输

        iSCSI协议利用通用的TCP/IP协议进行海量存储数据传输,传统的TCP/IP协议用于在不可靠的数据链路上实现可靠的数据传输,其性能必然受限于TCP/IP本身的传输性能,基于通用TCP/IP协议的网络存储面临的一个很重要的性能问题就是TCP/IP协议栈开销。目前已经出现了一些新的网络技术用于改善TCP/IP协议栈开销。

        1)有些新型网卡可以分担过去由主机CPU完成的CRC校验和计算功能,利用这些网卡,可进一步释放主机CPU资源,进而降低CPU利用率。
        2)一些新型网卡可以实现过去由主机TCP/IP软件协议栈完成的TCP包拆分功能,这样也可缓解主机CPU的压力。
        3) iSCSI SAN网络绝不能与一般的以太网用户混合。如果混合不仅会削弱SAN的性能,还会使LAN的存储数据受到影响。正确的做法是将iSCSI SAN网络与日常的用户网络分开。最常见的分离方法是采用虚拟局域网( VLAN),限制iSCSI网络通向虚拟局域网,保持正常的网络通道。

        2.避免数据挎贝

        iSCSI协议层建立在传统的TCP/IP协议层之上,其PDU数据包必须通过内存拷贝的方式传递给TCP/IP协议栈的缓冲区进行网络传输。而内存拷贝要进行内存读写操作各一次,内存数据拷贝又必须依赖于CPU执行指令来完成,因此会消耗CPU资源并降低内存性能,最终影响iSCSI系统性能。为了避免数据拷贝操作,目前主要的方法是采用TOE硬件方案:TOE方案是将过去由操作系统完成的TCP/IP协议栈直接转移到TOE网卡上由硬件实现。这个方案有效她避免了TCP/IP协议栈对系统CPU资源的占用,优化了iSCSI系统性能。TOE卡可以从一些供应商处获得,如Alacritech、LeWiz Communications、
    QLogic等。

        3.数据校验的优化

        CRC校验数据的生成或检测均是计算密集型操作,会消耗大量的CPU资源,因此如何优化数据校验性能成为优化iSCSI性能的关键。目前常用的优化方案有下面几种。

        (l) iSCSI HBA硬件方案

        为了进一步消除CRC校验运算对系统CPU资源的影响,工业界将iSCSI协议及TCP/IP协议全部集成到网卡上构成iSCSI的HBA适配卡,这种方式中的iSCSI HBA适配卡对主机来说就是一块SCSI卡,既不存在数据拷贝问题,也不存在数据校验问题。采用硬件方案虽然能进一步释放CPU资源,但iSCSI HBA硬件处理能力有限制,无法分享CPU日益提升的性能。

        (2)优化数据校验

        通过优化CRC校验算法来加快校验过程也是提高iSCSI性能的一个途径。

  • 相关阅读:
    java通过UUID生成16位唯一订单号
    spring framework体系结构及内部各模块jar之间的maven依赖关系
    Java操作PDF之iText超入门
    对象拷贝
    Alluxio 1.5集群搭建
    InfluxDb中写入重复数据问题解决方案
    苹果笔记本中为虚拟机扩充硬盘的方法
    Grafana中整个Dashboard报错问题解决
    使用WebEx录制视频并转换为MP4
    Spark配置参数优先级
  • 原文地址:https://www.cnblogs.com/topass123/p/12579290.html
走看看 - 开发者的网上家园