组成

一个简单ISCSI系统大致由以下部分构成

  • ISCSI Initiator 或者 ISCSI HBA
  • ISCSI Target
  • 以太网交换机
  • 一台或者多台服务器

结构图如下:

  1. iscsi服务器用来安装ISCSI驱动程序,即安装ISCSI Initiator。
  2. IP网络就是以太网。
  3. Storage Route可以是以太网交换机或者路由器。
  4. ISCSI存储设备可以是ISCSI磁盘阵列,可以是具有存储功能的PC或者服务器。
iscsi Initiator

这是安装在计算机上的软件或者硬件设备,它负责与ISCSI存储设备进行通信。这里有2种通信方式:

  1. 软件形式

    即ISCSI initiator软件。在iscsi服务器上安装initiator后,Initiator软件可以将以太网虚拟成ISCSI卡,进而接受和发送ISCSI服务器上,从而实现主机和ISCSI存储设备之间的ISCSI协议和TCP/IP协议传输功能。这种方式只需要以太网卡和以太网交换机,无需其他的设备,因此成本最低。但是ISCSI报文和TCP/IP报文转换需要消耗服务器的CPU资源,只有在低I/O和低带宽性能要求的应用环境中才能使用这种方式。
  2. 硬件形式

    使用ISCSI HBA(Host Bus Adapter),即iSCSI Initiator硬件。这种方式需要先购买ISCSI HBA卡。然后将其安装在ISCSI服务器上,从而实现ISCSI服务器与交换机之间、iSCSI服务器与存储设备之间的高效数据传输。与第一种方式比较,硬件ISCSI HBA卡方式不需要消耗ISCSI服务器的CPU资源,同时硬件设备专用的。所以基于硬件的ISCSI Initiator可以提供更好的数据传输和存储性能,但是ISCSI HBA卡毕竟昂贵,需要使用者自己在性能和成本之间权衡。

so far,iSCSI Initiator软件一般都是免费的,CentOs和Rhel都能够很好的支持。现在发行的linux系统都默认自带了iscsi initiator

ISCSI Target

一个可以用于存储数据的ISCSI磁盘阵列或者具有ISCSI功能的设备都可以被成为“ISCSI Target”,因为大多数操作系统都可以利用一些软件将系统转为一个ISCSI Target。linux下的开源ISCSI Target软件---ISCSI Enterprise Target。

    利用ISCSI Target软件,可以将服务器存储空间分配给客户机使用,客户机可以像使用本地硬盘一样使用ISCSI磁盘。包括对齐分区,格式化以及读写等。而且每个客户端可以向ISCSI磁盘写数据,互不干扰,并且不会破坏存储到服务器中的数据。同时,ISCSI target软件对用户的权限控制非常灵活,支持配置文件。

   我们知道,ISCSI是使用TCP/IP协议进行通信的,因此ISCSI两端连接起来,仅仅需要一个以太网络就行了,所以,以太网络的速度很大程度上绝对了ISCSI的性能,所以我们需要配置一个最好是万兆交换机,再差劲也不能低于千兆交换机,且要做好交换机冗余,避免交换机宕机造成存储无法使用。

ISCSI原理

在先了解ISCSI的工作原理之前,就必须知道ISCSI的层次结构,根据OSI模型,ISCSI的协议从上往下一共可以分为三层。如下所示:

  • SCSI层 根据客户端发出的请求建立SCSI CDB(命令描述块),并且传给ISCSI层。同事接收来自ISCSI层的CDB,并向应用返回数据。
  • ISCSI 对SCSI CDB进行封装,以便能够在基于TCP/IP协议的网络上进行传输,完成SCSI到TCP/IP的协议映射。这一层是ISCSI协议的核心层。
  • TCP/IP层 对IP报文进行路由和转发,并且提供端到端的透明可靠传输。
传输过程详解

iSCSI协议定义了在TCP/IP网络发送,接受数据块存储数据的规则和方式。发送端将SCSI命令和数据封装到TCP/IP包中,然后通过IP网络转发,接收端收到TCP/IP包之后,将其还原为SCSI命令和数据并执行,执行完成之后,将返回SCSI命令和数据再封装到TCP/IP包中,之后再传回发送端。这样完成这个传输过程。

   ISCSI的整个数据传输过程在用户来看都是透明的,用户使用远端的存储设备就像使用本地的硬盘设备一样。实际上,ISCSI的数据传输速率并不能完全达到本地硬盘的数据传输率,但这差别并不明显,而这中网络存储模式还有一个有点就是安全性高,这对于数据集中存储的ISCSI来说非常重要。

网络存储(二)之ISCSI原理的更多相关文章

  1. iscsi 挂载网络存储及存储访问

    http://blog.sina.com.cn/s/blog_408764940101ghzi.html 一.Ess3016x设置 登陆admin 密码 888888888888 1.安装硬盘,查看硬 ...

  2. 《linux就该这么学》第十六节课:第16,17章,Squid服务和iscsi网络存储

    第十六章 squid总结: 正向代理:yum  安装后清空防火墙即可正常使用,客户端设置浏览器 透明正向代理:vim  /etc/squid/squid.conf 59行:http_port  312 ...

  3. 第17章 使用iSCSI服务部署网络存储

    章节概述: 本章节将分析SCSI与iSCSI技术结构的不同,了解iSCSI技术的优势.SAN存储网络技术结构以及iSCSI HBA卡的作用. 完整演示部署iSCSI target服务程序的方法流程:创 ...

  4. 配置iSCSI部署网络存储

    iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研 ...

  5. ISCSI网络存储

    ISCSI(iSCSI,Internet Small Computer System Interface) iSCSI技术实现了物理硬盘设备与TCP/IP网络协议的相互结合,使得用户可以通过互联网方便 ...

  6. Linux基础学习-使用iSCSI服务部署网络存储

    使用iSCSI服务部署网络存储 iSCSI技术实现了物理硬盘设备与TCP/IP网络协议的相互结合,使得用户可以通过互联网方便地访问远程机房提供的共享存储资源.下面介绍如何在Linux上部署iSCSI服 ...

  7. 《Linux就该这么学》培训笔记_ch17_使用iSCSI服务部署网络存储

    <Linux就该这么学>培训笔记_ch17_使用iSCSI服务部署网络存储 文章最后会post上书本的笔记照片. 文章主要内容: iSCSI技术介绍 创建RAID磁盘阵列 配置iSCSI服 ...

  8. iscsi原理

    iscsi原理 一,[名词解释] SCSI:小型计算机系统接口,SCSI作为i输入/输出接口, FC:光纤通道 DAS:直连式存储,指将存储设备通过SCSI接口或光纤通道直接连到一台计算机上. NAS ...

  9. 网络存储技术介绍(2) ( based on zt)

    http://www.educity.cn/tx/429084.html 互联网技术DAS.NAS和SAN存储方案的比较 按照设备位置和接入方式,磁盘存储可以分为内置存储和外挂存储,外挂存储又分为直连 ...

随机推荐

  1. React-Native运行知乎日报遇到的问题

    研究几天RN(React-Native)后,跟着官方的demo做了一下电影图片显示的那个,但是总感觉官方的demo欠缺点什么,所以找来找去找到了RN版的知乎日报,话说知乎日报什么版的都有,不信你们上网 ...

  2. 用 canvas 做个好玩的网站背景

    不知不觉又好久没更过博客了,老调新弹一下,之前做的一个小效果,觉得蛮有意思的,也有朋友问是怎么做的,就分享一下,写个博文吧. 先上demo吧:http://whxaxes.github.io/canv ...

  3. [BZOJ2429][HAOI2006]聪明的猴子(MST)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2429 分析:要让最大的最小,所以就是最小生成树上的啦,于是问题就变成了有多少个猴子&g ...

  4. [BZOJ3714][PA2014]Kuglarz(MST)

    题目: Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子 ...

  5. 解决 samba不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接

    net use * /del /y http://www.cnblogs.com/senior-engineer/p/4528378.html

  6. MyBatis_ibatis和mybatis的区别【转】

    1. ibatis3.*版本以后正式改名为mybaits,它也从apache转到了google code下:也就是说ibatis2.*,mybatis3.*. 2. 映射文件的不同 ibatis的配置 ...

  7. jsrender-for循环中访问父属性

    jsrender中使用for循环数据时有时需要访问父级数据. 而jsrender在循环中的父级数据存放在隐藏属性parent.parent.data中,使用案例如下 {{:#parent.parent ...

  8. [转]JVM调优总结:一些概念

    JVM调优总结:一些概念 原文出处: pengjiaheng 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变 ...

  9. Selenium+WebDriver+Python 定时控制任务

    为了更对得起"自动化测试"的名号,我们可以设置定时任务,使我们自动化脚本在某个时间点自动运行脚本,这样就可以让测试在夜间进行,减少了时间成本.通过程序来控制test case在什么 ...

  10. 【CodeForces 266C】Below the Diagonal(模拟)

    题目每次把空列换到最后一列,把非空行换到最下一行. #include<cstdio> #include<algorithm> #define N 1005 using name ...