存储技术与iSCSI

      本章主要介绍基于IP SAN的网络存储iSCSI。iSCSI技术以其低廉的构建成本和优秀的存储性能,博得了很多CIO和存储管理员的喜爱,目前陆续进入企业应用领域,推动了企业的存储环境向集中式转变。虽然,目前对于iSCSI应该在什么样的环境中使用还存在着诸多争议,但是iSCSI的前途是光明的,在未来的存储世界中,iSCSI一定会占据重要的席位。本章重点介绍iSCSI在Windows和Linux环境下的配置和使用。

存储的概念与术语

    在存储的世界里,有各种各样的名词和术语,常见的有SCSI、FC、DAS、NAS、SAN等。本节重点介绍与存储相关的术语和知识。

SCSI介绍

    SCSI是小型计算机系统接口(Small Computer System Interface)的简称,SCSI作为输入/输出接口,主要用于硬盘、光盘、磁带机、扫描仪、打印机等设备。

FC介绍

    FC是光纤通道(Fibre Channel)的简称,是一种适合于千兆数据传输的、成熟而安全的解决方案。与传统的SCSI技术相比,FC提供更高的数据传输速率,更远的传输距离,更多的设备连接支持,更稳定的性能,更简易的安装。

DAS介绍

    DAS是直连式存储(Direct-Attached Storage)的简称,是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。当服务器在地理上比较分散,很难通过远程进行互连时,DAS是比较好的解决方案。但是这种式存储只能通过与之连接的主机进行访问,不能实现数据与其他主机的共享,同时,DAS会占用服务器操作系统资源,例如CPU资源、IO资源等,并且数据量越大,占用操作系统资源就越严重。

NAS介绍

    网络接入存储(Network-Attached Storage)简称NAS,它通过网络交换机连接存储系统和服务器,建立专门用于数据存储的私有网络,用户通过TCP/IP协议访问数据,采用业界标准的文件共享协议如NFS、HTTP、CIFS来实现基于文件级的数据共享。NAS存储使文件共享访问变得更方便和快捷,并且能很容易地增加存储容量。通过专业化的文件服务器与存储技术相结合,NAS为那些需要共享大量文件数据的企业提供了一个高效的、高可靠的、高性价比的解决方案。但是NAS也有一定的局限性,它会受到网络带宽和网络拥堵的影响,在一定程度上限制了NAS的网络传输能力。

SAN介绍

    存储区域网络(Storage Area Network)简称SAN,它是一种通过光纤交换机、光纤路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器连接起来的高速专用子网。

    SAN由3个部分组成,分别是连接设备(如路由器、光纤交换机和Hub)、接口(如SCSI、FC)、通信协议(如IP和SCSI)。这3个部分再加上存储设备和服务器就构成了一个SAN系统。SAN捉供了一个灵活的、高性能的和高扩展性的存储网络环境,它可以更加有效地传输海量的数据块。由于采用了光纤接口,因此SAN还具有更高的带宽,同时,SAN也使统一管理和集中控制实现简化。现在SAN已经广泛应用于ISP和银行等,随着用户业务量的增大,SAN的应用前景将越来越光明。

iSCSI的概念

    iSCSI,即Internet SCSI,是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包。从根本上说,它是一种基于IP Storage理论的新型存储技术,该技术将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN。简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。iSCSI技术最初由Cisco和IBM两家开发,并且得到了广大IP存储技术爱好者的大力支持,这几年得到迅速的发展壮大。

    对于中小企业的存储网络来说,iSCSI是个非常好的选择。首先,从技术实现上来讲,iSCSI是基于IP协议的技术标准,它允许网络在TCP/IP协议上传输SCSI命令,实现SCSI和TCP/IP协议的连接,这样用户就可以通过TCP/IP网络来构建SAN,只需要不多的投资,就可以方便、快捷地对信息和数据进行交互式传输和管理。但是,在iSCSI出现之前,构建SAN的唯一技术是利用光纤通道,这要花费很大的建设成本,一般中小企业无法承担。其次,iSCSI技术解决了传输效率、存储容量、兼容性、开放性、安全性等方面的诸多问题,在使用性能上绝对不输给商业的存储系统或光纤存储网络。

    iSCSI的优势主要表现为:首先,iSCSI沿用TCP/IP协议,而TCP/IP是在网络方面最通用、最成熟的协议,且IP网络的基础建设非常完善,同时,SCSI技术是被磁盘和磁带等设备广泛采用的存储标准,这两点使iSCSI的建设费用和维护成本非常低廉;其次,iSCSI支持一般的以太网交换机而不是特殊的光纤通道交换机,从而减少了异构网络带来的麻烦;还有,iSCSI是通过IP封包传输存储命令,因此可以在整个Internet上传输数据,没有距离的限制。

FC SAN与IP SAN

    在iSCSI技术出现后,通过IP技术搭建的存储网络也应运而生,SAN技术也就出现了两种不同的实现方式,即FC SAN与IP SAN。简单来说,以光纤搭建的存储网络就是FC SAN.以iSCSI技术搭建的存储网络叫做IP SAN。

    作为SAN的两种实现方式,FC SAN与IP SAN各有优劣,下面从几个方面分别阐述。

    在数据传输方式上,FC SAN与IP SAN都采用块协议方式来完成。这是它们的相同点。
    在传输速度上,就目前的传输速率而言,FC SAN(2Gbit/s)最快,iSCSI(lGbit/s)次之

    在传输距离上,FC SAN理论上可以达到100公里,而事实上,传输超过50公里后,就会出现瓶颈。而通过IP网络的iSCSI技术在理论上没有距离的限制,即iSCSI可以进行没有距离限制的数据传输。

    管理及维护成本上,架设FC SAN网络需要投入很多硬件成本,并且需要特定的工具软件进行操作管理,而IP SAN构建成本低廉,由于iSCSI是通过IP网络来传输数据和分配存储资源的,因此只要在现有的网络上进行管理和使用即可,这样就可以省下大笔的管理费用及培训成本。

    其实IP SAN也面临着一些不可回避的困扰:首先,基于IP SAN的网络存储还没有得到用户的充分肯定:其次,IP SAN存储需要专门的驱动和设备,幸运的是,一些传统的光纤适配器厂商都发布了iSCSI HBA设备,同时Inter也推出了专用的IP存储适配器,而Microsoft、HP、Novell、SUN、AIX、Linux也具有iSCSI Initiator软件,并且免费供用户使用:还有,在安全方面,IP SAN虽然有一套规范的安全机制,但是尚未得到用户的认可。

    这些问题和困扰虽然会妨碍iSCSI的发展,但是相信在未来的网络存储世界里,IP SAN绝对金拥有一席之地。

iSCSI的组成

一个简单的iSCSI系统大致由以下部分组成:

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

一个完整的iSCSI系统的拓扑结构如图7-1所示。

IP网络存储iSCSI的概念与工作原理

    图7-1  完整的iSCSI系统拓扑结构

    在图7-1中,iSCSI服务器用来安装iSCSI驱动程序,即安装iSCSI Initiator;Storage Router可以是以太网交换机或者路由器;iSCSI存储设备可以是iSCSI磁盘阵列,也可以是具有存储功能的PC服务器。下面详细介绍一下iSCSI Initiator与iSCSI Target的含义。

iSCSI Initiator

    iSCSI Initiator是一个安装在计算机上的软件或硬件设备,它负责与iSCSI存储设备进行通信。

    iSCSI服务器与iSCSI存储设备之间的连接方式有两种:

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

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

    iSCSI Initiator软件一般都是免费的,Centos和RHEL对iSCSI Initiator的支持都非常不错,现在的Linux发行版本都默认自带了iSCSI Initiator。

iSCSI Target

    一个可以用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI Target”,因为大多数操作系统都可以利用一些软件将系统转变为一个“iSCSI Target”。本章重点讲述如何构建一个PC构架的iSCSI存储系统。所谓PC构架就是选择一个普通的、性能优良的、可支持多块磁盘的PC(一般为PC服务器),再选择一款相对成熟稳定的iSCSI Target软件,将iSCSI Target软件安装在PC服务器上,使普通的PC服务器转变成一台iSCSI存储设备,并通过PC服务器的以太网卡对外提供iSCSI数据传输服务。

    目前大多数iSCSI Target软件都是收费的,例如DataCorc  Software的SANmelody,FalconStor Software的iSCSI Server for Windows等,这些都是Windows平台支持的。不过,也有一些Linux平台的开源iSCSI Target软件,例如iSCSI Enterprise Target,后面的内容会重点介绍这个软件。

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

    我们知道,iSCSI是使用TCP/IP协议进行通信的,因此,将iSCSI两端连接起来,仅仅需要一个以太网络就可以了。由此可知,iSCSI的存储性能和这个以太网络有直接关系,所以最好在iSCSI网络中使用千兆以太网交换机,劣质的网络设备会严重影响存储系统的性能,也就是说,要为每个服务器配备高质量的千兆以太网交换机,并提供两个连接。对于iSCSI Target,应该为每个独立阵列中的两个独立端口配备交换机,最后将交换机连接起来,采用这种配置方式,即使两个交换机中的一个出现了故障,整个iSCSI存储系统仍然能够正常工作,这保证了存储系统的不间断运行。

iSCSI的工作原理

    要理解iSCSI的工作原理,就必须知道iSCSI的层次结构。根据OSI模型,iSCSI的协议自顶向下一共可以分为三层,如图7-2所示。

IP网络存储iSCSI的概念与工作原理

图7-2  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来说显然非常重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js判断字符串包含英文;js判断字符串包含汉字;

let str 123qwer汉字if (/.*[\u4e00-\u9fa5].*$/.test(str)) {this.alert(包含汉字)}if (/[a-zA-Z]/.test(str)) {this.alert(包含英文字母)}

lvs和HA的高可用性

Heartbeat实现Lvs高可用和HA高可用效果图如下1、heartbeat的介绍Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这…

postfix报错postfix: fatal: parameter inet_interfaces: no local interface found for ::1

From: http://blog.csdn.net/xiangshanqishi/article/details/23439397 启动postfix出错,查看centos中的postfix日志 more /var/log/maillog postfix: fatal: parameter inet_interfaces: no local interface found for ::1 vi /etc/postfix/main.cf 发现配…

Linux LVM-删除卷组逻辑卷物理卷

查看卷组相关信息 [rootlocalhost /]# vgscanReading all physical volumes. This may take a while...Found volume group "VolGroup00" using metadata type lvm2 查看卷组VolGroup00包含的PV、LV信息。 [rootlocalhost /]# vgdisplay -v VolGroup00Using volume …

输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;

场景: –要求1:输入框只能输入数字,可以使正数、负数、0,小数点最多保留两位。 –要求2:不需要自动补齐小数点,也不需要自动四舍五入。 element-ui的数字输入框el-input-number只能满足要求1,所…

【工具】Win 7/8/10 下使用 VC++6.0

Microsoft Visual C(也就是 MSVC或者VC),是大部分计算机专业学生接触的第一款编译器。它具有轻量,界面简洁等优点,也是许多计算机考试的指定工具。VC6.0已经推出近20年,仍旧深受许多编程人员的喜爱&#xf…

iSCSI 2-环境搭建二

客户端安装配置 iSCSI initiator 1. 安装scsi-initiator-utils 软件包 [rootlocalhost /]# yum install scsi-initiator-utils 2. 查看相关配置文件 # /etc/iscsi/iscsi.conf 主要配置文件,用来连接到iscsi target的设置 # /sbin/iscsid 启动iSCSI initiator的…

【maven3学习之一】window7下maven环境搭建

2019独角兽企业重金招聘Python工程师标准>>> 软件准备: jdk-7u10-windows-i586 apache-maven-3.0.4-bin maven介绍: 按照一般的套路老说应该要说明一下maven,觉得maven就是一个项目管理的框架,因为之前的一个项目对mav…

linux下邮件查看命令

From: http://blog.csdn.net/tangy110/article/details/6546622 系统提供了用户之间通信的邮件系统,当用户打开终端注册登录时发现系统给出如下信息: you have mail. 这时用户可通过键入mail命令读取信件: $ mail mail程序将逐个…

解决去除“请输入有效值。两个最接近的有效值分别为1和2“提示

场景:el-input输入框,hover上去会有"请输入有效值。两个最接近的有效值分别为1和2"提示。 只需要给el-input加上属性 :step“0.01” 即可,注意精确度与你的小数点位数有关。也就是说如果你是三位小数点,那就是:step“0.…

【贪心】Vijos P1615 旅行

题目链接: https://vijos.org/p/1615 题目大意: N条路,路的高度给你,走一条路的耗费体力是从上一条路的高度到当前路高度的绝对值差。 可以改变一条路的高度,耗费的体力等于改变前后的路高度差。求最小耗费体力。 题目…

iSCSI 2-环境搭建一

实验环境 操作系统:CentOS release 6.5 (Final) iSCSI Target:10.0.0.11 (#yum install scsi-target-utils) iSCSI Initiator 1:10.0.0.12 (#yum install iscsi-initiator-utils) iSCSI Initiator 2::10.0.0.13 (#yum install is…

向 Web 开发人员推荐35款 JavaScript 图形图表库

From: http://www.cnblogs.com/lhb25/p/35-javascript-chart-and-graph-libraries.html 图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等。可视化图表可以帮助开发者更容易理解复杂的数据&#xff…

解决列表某项文字过度过多 需要自适应撑开高度展示 其他项目按照行高居中

解决列表某项文字过度过多 需要自适应撑开高度展示 其他项目按照行高居中 以下代码可直接复制&#xff1a; 两种方法&#xff1a;分别是方法1&#xff1a;bfc配合浮动撑高 其他项目子绝父相 方法二&#xff1a;第一项也是相对定位&#xff08;不推荐&#xff09; <templat…

linux input/output error

在操作linux系统的时候有时候会遇到这个错误提示&#xff0c;那么首先要确定之前有没有操作过分区表&#xff0c;修改过磁盘配置等。尤其在虚拟机环境下改动后直接操作都会出现这个错误&#xff0c;此时尝试以下方法&#xff1a; 1. reboot 2. 确定报错的挂载目录对应的分区…

免费图标网站

http://www.easyicon.cn/转载于:https://www.cnblogs.com/zhangxin1989/archive/2012/12/31/2840921.html

chart.js绘制精美的数据化图形--入门示例

参考&#xff1a;http://think.zvan.com.cn/code/js/2014/0607/247.html 这个库基于html5&#xff0c;在360极速浏览器和firefox中测试通过。 <html><head><meta charset"utf-8"><script type"text/javascript" src"js/chart/…

创建日期对象远吗

var myTime new Date(); var iYear myTime.getFullYear(); var iMonth myTime.getMonth()1; var iDate myTime.getDate(); var iWeek myTime.getDay(); var iHours myTime.getHours(); var iMin myTime.getMinutes(); var iSec myTime.getSeconds();转载于:https://www…

uni-app更新某个组件版本;uni-app更新插件版本;uni-app更新uni_modules插件;uni-app小程序更新某一个组件的版本库

uni-app官方介绍的更新某一个组件的uni_modules方法 注意&#xff1a;本篇只是记录更新uni-app的组件库下某一个组件的版本。不是更新微信小程序版本。 场景原因&#xff1a;项目最初是去年开发的&#xff0c;当时下载了uni-app的自带组件库。但是时间筛选器uni-datetime-picke…

课文《小站》

小站 --作者&#xff1a;袁鹰 这是一个铁路线上的小站&#xff0c;只有慢车才停两三分钟。快车疾驰而过&#xff0c;旅客们甚至连站名还来不及看清楚。 就在这一刹那&#xff0c;你也许看到一间红瓦灰墙的小屋&#xff0c;一排漆成白色的小栅栏&#xff0c;或者还有三五个人影…