组成

一个简单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. .net破解二(修改dll)

    多谢大家支持! 昨天说了一下反编译与剥壳(.net破解一(反编译,反混淆-剥壳,工具推荐)),今天就来修改修改dll,为了方便,我自己写一个简单程序用来测试 代码如下: 一个 ConsoleAppli ...

  2. 架构系列:ASP.NET 项目结构搭建

    我们头开始,从简单的单项目解决方案,逐步添加业务逻辑的约束,从应用逻辑和领域逻辑两方面考虑,从简单的单个项目逐步搭建一个多项目的解决方案.主要内容:(1)搭建应用逻辑和领域逻辑都简单的单项目 (2)为 ...

  3. linux | 管道符、输出重定向

    1 输出重定向 ll > a.txt 将 ll的结果写入到a.txt 2 管道符 ls -la | grep h* 这条命令的理解为:ls -la 的结果作为gerp h* 的结果 gerp 是 ...

  4. 一个奇怪的MySQL错误返回

    (0, '') python查询结果,乍一看还以为是下标出错了 一番调试,发现是因为 mysql数据库连接关闭上出了错. 结尾 在对数据库进行操作的时候要注意连接的开启和关闭动作规范

  5. nginx location语法使用说明

    语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...

  6. 一个Activity掌握Design新控件 (转)

    原文地址:http://blog.csdn.net/lavor_zl/article/details/51295364 谷歌在推出Android5.0的同时推出了全新的设计Material Desig ...

  7. 手把手windows64位配置安装python2.7

    这几天公司要用到python的一些算法,让我调研一番,之前对Python一次没接触的我在安装配置环境的时候由于版本的问题,折腾了好久,这里简单介绍一下我的安装方法,需要安装pyhton的朋友可以不再向 ...

  8. iOS开发小技巧-修改SliderBar指针的样式(牢记这个方法,只能通过代码来修改)

    代码: // 修改进度条的指针图片 [self.progressSlider setThumbImage:[UIImage imageNamed:@"player_slider_playba ...

  9. hibernate DetachedCriteria实现多表关联查询createAlias的使用

    记录本例查询初衷: 有表: 表1,表2,表3 关系 1 many-to-one 2 2 many-to-one 3 结果:要通过表3中的条件反向查询表1中相关的数据 public Page<We ...

  10. 控件(文本类): TextBlock

    1.TextBlock 的示例 1Controls/TextControl/TextBlockDemo1.xaml <Page x:Class="Windows10.Controls. ...