我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器、工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统。

iSCSI设备的主机接口一般默认都是IP接口,可以直接与以太网络交换机和iSCSI交换机连接,形成一个存储区域网络。根据主机端HBA卡、网络交换机的不同,iSCSI设备与主机之间有三种连接方式。

 第一种:以太网卡+initiator软件方式。

服务器、工作站等主机使用标准的以太网卡,通过以太网线直接与以太网交换机连接,iSCSI存储也通过以太网线连接到以太网交换机上,或直接连接到主机的以太网卡上。在主机上安装Initiator软件。

安装Initiator软件后,Initiator软件可以将以太网卡虚拟为iSCSI卡,接受和发送iSCSI数据报文,从而实现主机和iSCSI设备之间的iSCSI协议和TCP/IP协议传输功能。

这种方式由于采用普通的标准以太网卡和以太网交换机,无需额外配置适配器,因此硬件成本最低。缺点是进行ISCSI包文和TCP/IP包文转换要点主机端的一部分资源。不过在低I/O和低带宽性能要求的应用环境中和完全满足数据访问要求。

目前很多最新版本的常用操作系统都提供免费的Initiator软件,建立一个存储系统除了存储设备本身外,基本上不需要投入更多的资金来,因此在三种系统连接方式中其建设成本是最低的。

第二种:硬件TOE网卡+initiator软件方式。

第一种方式由于采用普通以太网卡和以太网交换机,无需额外配置适配器,或专用的网络设备,因此硬件成本最低。但由于进行ISCSI包文和TCP/IP包文的打包和解包全部需要主机主处理器CPU来进行运算,数据传输率直接受到主机当前运行状态和可用资源的影响和限制,因此一般无法提供高带宽和高IOPS性能。

具有TOE(TCP Offload Engine)功能的智能以太网卡可以将网络数据流量的处理工作全部转到网卡上的集成硬件中进行,把系统主处理器CPU从忙于协议处理的繁重的内核中断服务中解脱出来,主机只承担TCP/IP控制信息的处理任务。

与第一种方式相比,采用TOE卡可以大幅度提高数据的传输速率。TCP/IP协议栈功能由TOE卡完成,而iSCSI层的功能仍旧由主机来完成。

由于TOE卡也采用TCP/IP协议,相当于一块高性能的以太网卡,所以第二种方式也可以看做是第一种连接方式的特殊情况。

第三种是iSCSI HBA卡+iSCSI交换机方式。

在主机上安装专业的iSCSI HBA适配卡,从而实现主机与交换机之间、主机与存储之间的高效数据交换。

与前两种方式相比,第三种连接方式中采用了iSCSI HBA卡,因此数据传输性能最好,价格也最高。

后两种方式都需要在主机上安装专门的硬件板卡,由于目前TOE网卡和iSCSI HBA的市场价格都比较贵。如果网络中主机数量比较多,那么网络总资金投入不见得会比FC-SAN存储系统低很多,网络的带宽和性能却相比FC-SAN存储系统差了很多。

有的读者可能会问,为什么这三种方式中都没有采用iSCSI交换机?

实际上,我们能在市场上看到的iSCSI交换机都不是真正意义上交换机,所谓的iSCSI交换机应该称之为iSCSI协议转换器、或者iSCSI桥接器。一部分端口用来连接主机的iSCSI HBA卡,另一部分端口用来连接FC存储或SCSI存储,只能实现存储设备与主机之间的FC-iSCSI(或SCSI-iSCSI)协议连接,不能实现iSCSI-iSCSI协议连接,其工作方式完全不同于以太网交换机或FC交换机那样,实现某一个协议内的互联互通。

因此iSCSI交换机一般都用作iSCSI存储内的控制器,而不是iSCSI存储与主机之间网络连接设备。

iSCSI存储的3种连接方式的更多相关文章

  1. linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用

    ---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10  一.虚拟网络三种连接方式 当在V ...

  2. oracle Hash Join及三种连接方式

    在Oracle中,确定连接操作类型是执行计划生成的重要方面.各种连接操作类型代表着不同的连接操作算法,不同的连接操作类型也适应于不同的数据量和数据分布情况. 无论是Nest Loop Join(嵌套循 ...

  3. Linux基石【第二篇】虚拟网络三种连接方式(转载)

    在虚拟机上安装完Centos系统后,开始配置静态IP,以方便在本宿主机上可以访问虚拟机,在曲折的配置中,了解到虚拟机还有三种连接方式:Bridged,NAT和Host-only,于是,我又一轮新的各种 ...

  4. Java使用SFTP和FTP两种连接方式实现对服务器的上传下载 【我改】

    []如何区分是需要使用SFTP还是FTP? []我觉得: 1.看是否已知私钥. SFTP 和 FTP 最主要的区别就是 SFTP 有私钥,也就是在创建连接对象时,SFTP 除了用户名和密码外还需要知道 ...

  5. [转]Apache HTTP Server 与 Tomcat 的三种连接方式介绍

    首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装好 tomcat 后通过 8080 端 ...

  6. Java连接Oracle数据库的三种连接方式

    背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询. SQL语句的话,这里我就不多讲了,感觉和其他的数据库(MySQ ...

  7. Hash Join是Oracle CBO时代经常出现的一种连接方式

    Hash Join是Oracle CBO时代经常出现的一种连接方式,对海量数据处理时经常出现在执行计划里.本篇的上篇(http://space.itpub.net/17203031/viewspace ...

  8. 项目案例模板之jdbc两种连接方式

    项目案例模板之jdbc两种连接方式 第一种连接方式 JDBCUtils.java package jdbc; ​ import org.junit.jupiter.api.Test; ​ import ...

  9. mysql三种连接方式

    sql四种连接方式demo: 表a 表b a.id与b.parent_id有关系 1.内连接:SELECT a.*,b.* from a INNER JOIN b ON a.id=b.parent_i ...

随机推荐

  1. CocoaPods学习系列2——使自己的项目支持CocoaPods管理

    该篇记录使自己的项目支持CocoaPods管理. 要达到这一目的,需要如下步骤: 1.将自己的项目提交到github,添加开源协议license 2.添加podspec文件 3.验证podspec,成 ...

  2. c++ std::find函数

    template <class InputIterator, class T>InputIterator find (InputIterator first,InputIterator l ...

  3. ALS算法 (面试准备)

    ALS算法描述: 1.ALS算法用来补全用户评分矩阵.由于用户评分矩阵比较稀疏,将用户评分矩阵进行分解,变成V和U的乘积.通过求得V和U两个小的矩阵来补全用户评分矩阵. 2.ALS算法使用交替最小二乘 ...

  4. python中zip()函数的用法

    一. 定义 zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少内存 如果各个迭代器的元素个数不一致,则返回列表长度与最 ...

  5. HBase Cassandra比较

    转自:http://itindex.net/detail/22338-cassandra-hbase-%E8%AE%BE%E8%AE%A1     Cassandra HBase 一致性 Quorum ...

  6. debounce与throttle区别

    在2011年,Twitter网站曾爆出一个问题:在主页往下滚动时,页面会变得缓慢以致没有响应.John Resig发表了一篇文章< a blog post about the problem&g ...

  7. Getting started with Android and Kotlin (译文)

    原文链接 http://kotlinlang.org/docs/tutorials/kotlin-android.html 写在前面 Kotlin 是一个基于 JVM 的新的编程语言,由 JetBra ...

  8. 预热篇- 总结Delphi Xe4 做App的的可行性分析. ios平台的问题还需要自行学习

    首先澄清一个问题, 很多同学其实是误会了, 以为只要搞定了Delphi 就能很快写快餐程序了.  ios 本身的知识还是需要一些的, 并没有什么捷径可以走. 但如果一个团队有分工协作的话, Delph ...

  9. TCP的保活定时器 转

    http://blog.csdn.net/zhangskd/article/details/44177475 TCP的Keepalive,目的在于看看对方有没有发生异常,如果有异常就及时关闭连接. 当 ...

  10. hexo多主题切换

    今天看到一个朋友在github上面的issue 大概问题就是怎么在不同的电脑上面使用 git有个这么个东西Submoudle中文叫做子模块 具体使用教程看这里Git-工具-子模块 这里只说怎么搞hex ...