常见的三种存储技术以及iSCSI协议

常见的三种存储技术以及iSCSI协议
1、常见的存储技术
DAS:Direct  Attached Storage,直接附加存储,存储设备通过SCSI接⼝电缆直接连接到服务器的,存储设备不带有任何操作系统。它依赖于服务器,存储设备就是将硬件设备堆叠起来的。DAS也可称为SAS(Server Attached storage,即服务器附加存储)。
DAS具有如下特性:
1、DAS设备不带有任何操作系统,⽂件系统位于服务器端,因此是以块级别进⾏数据传输
2、它是通过SCSI接⼝电缆与服务器相连,因此,会增加服务器的I/O操作,占⽤cpu,降低⽹络和服务性能。
3、不⽀持多种系统的数据共享
DAS存储设备⼀般适⽤于中⼩型企业
NAS:Network  Attached  Storage,⽹络附加存储,NAS是基于IP协议的⽂件级数据存储,⽀持现有的
⽹络技术,⽐如以太⽹,FDDI 等。NAS设备完全是以数据为中⼼,将存储设备和服务器彻底隔离,集中管理数据,从⽽有效释放带宽,⼤⼤提⾼了⽹络整体性能。
NAS设备是⼀种特殊的数据存储服务器,它内嵌系统软件,可以提供NFS、SMB/CIFS的⽂件共享。
NAS设备的特点:
1、由于NAS设备内嵌系统,因此数据是以⽂件级别的⽅式进⾏传输
2、由于是⼀个单独的存储服务器,因此只负责数据的传输,减少了服务器的I/O操作,因此,⼤⼤提⾼了⽹络性能。
3、NAS⽀持标准的⽹络⽂件系统,⽀持跨平台存储。
4、服务器只存储数据,可以实现集中化的管理数据
NAS存储设备适⽤于中⼩型企业
SAN:Storage Area Network,存储区域⽹络,这是⼀个共享的⾼速存储⽹络,存储设备位于服务器的后端,且存储设备和服务器之间⼀般通过光钎(FC)交换机相连,因此传输速率⽐较快。当然也可
以通过IP⽹络来继续传输,不过这对于⽹络带宽来说要求⾮常⼤的。对于SAN来说,存储设备和服务器完全分离,服务器通过光钎交换机(或IP⽹络)与不同地区的各个存储设备相连起来,可以实现集中化的管理。
SAN具有的特点:
1、由于⽂件系统位于服务器上,本⾝不带有任何操作系统,因此数据是以块级别的⽅式进⾏传输
2、由于存储服务器使⽤光接⼝,因此传输速率快、⾼
3、可以将不同区域的服务器通过光钎交换机相连起来,集中化的进⾏管理
4、由于存储设备位于不同区域,因此可实现⼤容量存储数据共享
由于组件⼀套SAN系统⽐较昂贵,因此适⽤于⼤型企业
如今我们所涉及的 SAN (Storage Area Network),其实现数据通信的主要要求是:
1. 数据存储系统的合并;
2. 数据备份;
3. 服务器集;
4. 复制;
5. 紧急情况下的数据恢复
实现SAN有2种⽅式:⼀是称为FC-SAN,通过光钎交换机来实现SAN系统;另⼀种称为IP-SAN,通过现有的IP⽹络来实现SAN系统。
两种实现SAN的⽅式对⽐如下:
三种存储技术的对⽐
SCSI协议
SCSI: Small Computer System Interface,SCSI最初是⼀种专门为⼩型计算机系统设计的I/O技术,但由于其架构和协议⾃⾝的优点,后被⼴泛应⽤于实现DAS以及作为SAN的底层技术。
所有的SCSI设备是通过⼀根总线将其连接起来,这个线就叫做SCSI总线。SCSI总线是SCSI设备之间传输数据的通路。SCSI总线⼜被称作SCSI通道。SCSI总线最终会连接到SCSI控制器上,SCSI控制器
也称为主机适配器(HBA),它控制着SCSI总线上所有的设备与计算器之间的通信。控制器既可以是插⼊可⽤插槽的卡,也可以内置在主板上。
因此,SCSI控制器和SCSI设备的连接⽅式如下图所⽰:
在SCSI总线末端上有⼀个终结器,⽤来减⼩相互影响的信号,维持SCSI链上的电压恒定。
SCSI ID
⼀个独⽴的SCSI总线按照规格不同可以⽀持8或16个SCSI⽬标设备(可以称为Target),每个SCSI⽬标设备都必须具有唯⼀的标识符(ID)才能正常⼯作。SCSI ID实际上就是这些⽬标设备的地址。
窄SCSI总线最多允许8个、宽SCSI总线最多允许16个不同的SCSI⽬标设备和它进⾏连接。但是⼀般SCSI控制器需要使⽤⼀个ID,因此,能使⽤的ID理论⽐实际要少⼀个。
LUN
在每⼀个SCSI⽬标设备(Target)下还可以连接多个逻辑设备(如磁盘,卷组等等),为了让系统区分每⼀个逻辑设备,因此每⼀个逻辑设备都有⼀个LUN(Logical  Unit Number)来标识⾃⼰。每个SCSI ID最多有32个LUN,默认从0开始(不过0被占⽤了),每⼀个LUN 对应着⼀个逻辑设备。
SCSI通信模型
SCSI是⼀个C/S架构,其中client端叫做initiator(启动器),服务器端叫做target(⽬标设备)。SCSI协议采⽤了分层的思想,SCSI协议簇从上向下可以分为四层:设备特定命令集,共享命令集,传输协议,互联⽹层。并且SCSI的数据传输是以块的⽅式进⾏的。
iSCSI协议
虽然SCSI控制器可以连接多个存储设备,形成⾃⼰的⽹络,但是它只能与直接相连的存储设备进⾏通信,只能在在局域⽹内部使⽤,不能再以太⽹上共享。因此,对于SCSI协议来说,传输数据的距离是⾮常有限的。因此,⼈们为了利⽤SCSI协议长距离的传输数据,于是就研发了⼀种新的技术,就是iSCSI协议.
iSCSI协议是⼀种新的存储技术,它是将SCSI接⼝与以太⽹(Ethernet)技术结合起来⼯作的,简单的说iSCSI协议是将⽤户的请求转换成SCSI规则编码,然后再将这些数据封装在IP包中以便在以太⽹中进⾏传输的协议。
iSCSI协议的功能
iSCSI:internet Small Computer System  Interface的缩写,即Internet⼩型计算机接⼝。iSCSI技术是⼀
种由IBM公司研究开发的,是⼀个供硬件设备使⽤的可以在IP协议的
上层运⾏的SCSI指令集,这种指令集合可以实现在IP⽹络上运⾏ SCSI协议,使其能够在诸如⾼速千兆以太⽹上进⾏路由选择。它是基于TCP/IP协议的,⽤来建⽴和管理IP存储设备、主机和客户机之间的相互连接,并创建SAN。这样使得SAN利⽤SCSI协议应⽤在⾼速数据传输⽹络成为可能。不过这种传输是以块级别的⽅式在各个存储设备上进⾏的。
iSCSI的结构
由于SCSI协议是⼀个C/S架构,因此iSCSI协议也是⼀个C/S结构,其中client是initiator,server端为target。iSCSI协议的主要功能是利⽤TCP/IP⽹络,在主机系统(可称为initiator)和⽬标存储设备(称为target)之间进⾏⼤量的数据封装和可靠传输过程。此外,iSCSI协议还将SCSI协议封装在IP⽹络上,并且运⾏在TCP上。
因此,ISCSI协议的协议栈为下图所⽰:
iSCSI协议的⼯作原理
iSCSI协议的⼯作过程:当iSCSI主机发起数据读写操作后,操作系统会⽣成⼀个SCSI指令集,然后该SCSI指令集在iSCSI initiator端被封装成iSCSI消息包,并通过TCP/IP⽹络传输到存储区域,当存储区
域的iSCSI target收到iSCSI消息包时会将其解开,读取其中的SCSI指令,然后再将其SCSI指令传送给SCSI设备执⾏其指令。当SCSI指令被执⾏后,返回的数据经过SCSI设备传送给iSCSI target时被封装为iSCSI的响应PDU,然后再通过TCP/IP⽹络传输给iSCSI initiator端,iSCSI initiator解开其iSCSI PDU包,读取其中的SCSI响应内容,并将其提交给操作系统进⾏处理,然后操作系统在将其处理后的内容返回给应⽤程序。
iSCSI的优点
iSCSI最⼤的优点就是节约成本,利⽤iSCSI协议构建⼀个存储⽹络,除了需要存储设备,交换机、线缆还有以太⽹接⼝以外,基本就不需要其他的设备了,只需要在现有的⽹络上安装iSCSI就可以实现构建⼀个⽐较⼤的存储⽹络了。对于⼀个企业来说,这些设备都相同廉价。因此,总体来说,其成本相对⽐较廉价。
iSCSI实现数据的访问需要的条件:
1、iSCSI客户端
iSCSI客户端为iSCSI initiator,这个是发起I/O操作的启动者。在RedHat Linux系统中可以通过软件来模拟,需要安装iSCSI设备驱动。如iscsi-initiator-utils.rpm
iSCSI  initiator具有的特性:
a)、既然是I/O操作的发起者,需要通过发现过程请求远端快设备。
b)、它可以与target进⾏持久连接
c)、linux中可以通过软件⽅式来实现
2、iSCSI服务器端
iSCSI服务器端为iSCSI target,这个是I/O操作的执⾏者。在RedHat Enterprise Linux 5 中可以使⽤scsi-target-utils软件包来模拟实现。
iSCSI target端具有的特性:
a)、需要导出⼀个或多个块设备供启动者(initiator)使⽤
b)、可以通过硬件和软件的⽅式来实现
3、iSCSI target设备名称
iSCSI target名称必须是全球唯⼀的,其格式为:iqn.<yyyy-mm>.<tld.domain.some.host>[:<identifier>]
其中:
iqn:iSCSI target名称必须是以iqn开头的
yyyy-mm:表⽰的是时间
tld.domain.some.host:这个表⽰的是⼀个反过来写的域名
identifier:这个可以是任意字符串
如:iqn.2015-03.xsl.www:storge.disk1
4、逻辑单元号LUN
LUN ID由iSCSI⽬标设备(Target)分配。iSCSI 启动端(Initiator)设备当前⽀持在每个⽬标设备(Target)中导出最多256个LUN。即最⼤⽀持16个target。
对于LUN,⽐较通俗的理解就是磁盘分区、LVM卷组、RAID等等。
在iSCSI通信中,都有⼀个发起I/O请求的启动端(Initiator)和响应请求并执⾏实际I/O操作的⽬标设备(Target),我们能够提供BlockLevelI/O 给 Initiator 主机,其⽬的不外乎是“将硬盘的排线⽹路化”、“把Target 主机共享磁盘幻化成Initiator 主机的磁碟”以达成更⼤空间、更⾼ I/O 速度及具有冗余与⾼延展度的应⽤。
Target 即“储存设备”(Storage Device),也就是存放数据的硬盘(以硬盘阵列居多),在使⽤iSCSI时,会在 iSCSI 储存设备上去建⽴ LUN(Logical Unit Number)来提供给具备 iSCSI Initiator 功能的主机来存取 数据的。你可以把Target主机看作是服务端,把Initiator主机看作是客户端。LUN 好⽐是个“逻辑单位磁碟”,为追求效率、冗余与延展性,这个 LUN 通常会是由数个实体磁碟( RAID 或 LVM 技术的技术实现)所组成。
iSCSI initiator发现iSCSI target的过程:
1、ISCSI initiator按照配置⽂件/etc/f中配置的相应项⽬利⽤iSCSI的发现机制在⽹络中收索⽬标设备target
2、iSCSI target将返回有效的iqn名称给iSCSI initiator
3、ISCSI target按照配置的验证⽅式接受initiator的登录并返回⽬标设备target标识
4、iSCSI initiator发⽣查询请求给target请求查询target的相关信息
5、target响应initiator的查询请求,并将设备的有关信息返回给initiator
6、initiator创建可以的⽬标设备target列表
iSCSI设备具有的特性:
1. ⽀持报头和数据摘要
2. ⽀持两种挑战握⼿协议CHAP(ChallengeHandshake  Authentication Protocol)的认证⽅式
3. ⽬标端⽀持R2T(ReadytoTransfer)流控制
4. 从RHEL4U2开始⽀持多通道(multipath)
5. ⽀持sendtargets发现机制
6. ⽀持动态⽬标端发现
7. 具备异步事件通知⼊⼝
8. ⽀持即时数据更新
9. ⽀持动态设备重配
10.⽀持⾃动挂接iSCSI技术
11.⽀持IPV6技术
iSCSI设备名称
iSCSI设备在iSCSI启动端(Initiator)导⼊的时候,其内核将按当前的设备情况给
iSCSI设备分配⼀个本地SCSI设备名(例如/dev/sda或/dev/sdb等),如果导⼊的iSCSI
设备已被分区,在导⼊iSCSI设备建⽴本地SCSI设备的同时也会建⽴相应的分区设备名
(例如/dev/sda1、/dev/sda5等等),但要主要的是此SCSI设备名并不是每次导⼊是都是
固定的,⽐如你的主机之前没有/dev/sda设备,你导⼊了iSCSI设备,其被内核命名
为/dev/sda;之后你将其取消了导⼊,并重新挂接了⼀个热插拔设备(如U盘或移动硬盘),
这个热插拔设备占据的/dev/sda设备;你⼜从新导⼊了iSCSI设备,此时其被内核分配的
设备名就成了 /dev/sdb。
服务器端管理配置⼯具tgtadm的使⽤
tgtadm是⼀个模式化的命令,其常见的模式有target、logicalunit、account
1、模式target下的语法格式:
tgtadm  --lld  <driver>  --mode  target  --op  {new|delete|show|update|bind|unbind} [option]
其中driver⼀般为iscsi --op后⾯的参数表⽰要进⾏的操作
new:表⽰增加⼀个target,其new的语法格式为:--tid <id> --targetname <name>
delete:表⽰删除⼀个target,其delete的语法格式为:delete --tid <id>
show:表⽰显⽰所有的target,后⾯可以接某个target的id,只显⽰某个target的信息。其show的格式为:show [--tid <id>]
update:⽤来修改某个特定的target的参数的。其update的格式为:update --tid <id> --name <param> --value <value>
bind:⽤来将某个特定的initiator和target绑定在⼀起,表⽰只接受特定的initiator的请求。其bind的语法格式为: bind --tid <id> --initiator-address <address>
unbind:表⽰解绑的意思。其unbind的语法格式为:unbind --tid <id> --initiator-address  <address>
2、模式logicalunit下的语法格式:
tgtadm --lld  <driver>  --mode  logicalunit  --op  {new|delete}  [option]
其中driver⼀般为iscsi --op后⾯的参数表⽰要进⾏的操作
new:表⽰新建⼀个lun,其new的语法格式为:new --tid <id> --lun <lun>  --backing-store <device-path> --bstype <type> --bsoflags delete:表⽰删除⼀个LUN,其delete的语法格式为:delete --tid <id> --lun <lun>
3、模式account下的语法格式:
tgtadm --lld  <driver>  --mode  account  --op  {new|delete|bind|unbind}  [option]可移动存储设备
其中driver⼀般为iscsi --op后⾯的参数表⽰要进⾏的操作
new:表⽰新建⼀个账号和密码,new的语法格式为:new --user <name> --password <pass>
delete:删除某个已有的账号,其格式为:delete --user <name>
bind:表⽰在某个特定的target上添加账号,其格式为:bind --tid <id> --user <name> [--outgoing],如果使⽤了--outgoing选项,将被添加作为出去的账号来使⽤。
unbind:表⽰在某个特定的target上删除某个账号。其格式为:account --op unbind --tid <id> --user <name>

本文发布于:2024-09-22 11:30:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/385932.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   协议   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议