基于网络的存储虚拟化技术的研究
发布时间:2024-11-17
发布时间:2024-11-17
电子科技大学
硕士学位论文
基于网络的存储虚拟化技术的研究
姓名:姚昌伟
申请学位级别:硕士
专业:通信与信息系统
指导教师:涂晓东
20100501
摘要
摘要
基于网络的存储虚拟化技术为存储虚拟化系统模型带来了新的发展,它提高了企业对日益膨胀的存储数据的管理能力,并通过整合现有的存储资源使其能够更加有效的提高已有存储设备的存储利用率,最终达到了降低存储成本的目的。基于网络的存储虚拟化技术可以将不同品牌的存储系统进行有效的整合成一个可以集中管理的存储池。它将实际的存储实体和存储逻辑进行了分离,应用服务器只与虚拟存储系统所分配的逻辑卷进行交互,它不需要关心它所存储的数据最终被放置在哪个存储实体上,虚拟存储系统负责对实际的存储实体进行读取或者写入操作,使得存储的管理变得更加的集中化。
本文的主要目的是对基于网络的存储虚拟化技术进行研究,并利用该技术设计出一个网络虚拟存储系统的方案。技术的核心和难点在于对网络存储系统中的几种协议进行透彻的分析,找出存储虚拟化的关键点,并使用软件将系统的基本功能进行实现。
本文的主要工作是设计一个网络虚拟存储系统的方案,使用一个虚拟节点对所有的存储设备进行集中管理,每个存储用户都通过虚拟节点提供的虚拟逻辑卷完成存储业务。网络虚拟存储系统将用户和存储设备进行隔离,使用iSCSI协议作为SCSI协议的传输层。
本文首先对网络存储系统中的协议进行了介绍。阐述了SPC.3协议、SBC.3协议和iSCSI协议的主要功能,并对其中所涉及的帧格式和帧字段进行了详细的分析。通过对协议的分析,了解了存储数据在网络存储系统中的交互的细节,它是整个网络存储系统的基础。
然后对基于网络的存储虚拟化技术的各个功能模块进行了分析,并提出了一个可行的设计方案。最后,根据设计实现了一个基于网络的虚拟存储系统,并对系统进行测试,通过对测试的结果的分析提出了改进的方案。关键词:基于网络的存储虚拟化,存储虚拟化,iSCSI协议,SPC协议,SBC协议
ABSTRACT
ABSTRACT
Network-basedstoragevirtualizationtechnologyhasbroughtanewdevelopmentforthestoragevirtualizationsystemmodel.Itletthecompanyhastheabilitytomanagetheswellingofthestoragedata.Andthroughintegratingexistingstorageresourcesmakeitmoreeffectivelyimprovethestorageutilizationofexistingstoragedevices,andultimatelyachievingthepurposeofreducingstoragecosts.Networkbasedstoragevirtualization
integrate
NetworkusefeprotocoloriSCSIprotocolfor也eiracommunicationprotoc01.Itcalldifferentbrandsofbasedvirtualizationstoragedevicesintocentrallymanagedstoragep001.technologyseparatetheactualphysicalstoragedeviceand
orthestoragelogic.Itisresponsiblefortheactualentitiestoread
makingstoragemanagementmorecentralized.
Themainpurposeofthispaperistoresearchwritestoragedata,network—basedstoragevirtualizationtechnology,anddesignanetwork-based
nodevirtualstoragesystem.Thestoragemainworkofthispaperistoadesignaprogramofnetwork-basedvirtualsystem.Usingvirtualforallcentralizedmanagementofstoragedevices.
ThesystemusingiSCSIprotocolasthetransportlayeroftheSCSIprotoc01.
Thisarticlefirstintroducedtheprotocolsofthestoragesystem.Describedthemain
thefunctionofspc 3protocol,sbc一3protocolandthe
aiSCSIprotoc01.Andanaylizedflameformatandframefield.Thenputforwardfeasibledesignofthenetworkbased
virtualization.Atlast,implementedthenetworkbasedvirtualization
suggestiontoimprovethesystem.Andgiveaprogramthroughthetestresults.
Keywords:storagevirtualization,iSCSIprotocol,SPCprotocol,SBCprotocol
缩略语
SCSI
iSCSI
SPC
SBC
FCP
ES
DAS
NAS
IU
PDU缩略语表缩略语表英文全称SmallComputerSystemsInterfaceInternctSmallComputerSystemsInterfaceSCSIPrimaryCommandsSCSIB10ckCommandsFibreChanndProtocolforSCSIEmbeddedStorageDirectAttachedStorageNetworkAttachedStorageInformationUnitProtocolData1Jnit
中文全称小型计算机系统接口互联网小型计算机系统接口小型计算机系统接口主要小型计算机系统接口块设内嵌式存储网络附加存储命令集备命令集对应小型计算机接口的光纤通道协议直连方式存储信息单元协议数据单元
独创性声明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
签名:日期:≯f9年b月lEt
论文使用授权
本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
(保密的学位论文在解密后应遵守此规定)
签名:导师躲糍导师签名:』£二丝么堕日期:≯,9年6月7日
第一章引言
第一章引言
1.1基于网络的存储虚拟化技术的简述
在信息化的时代,数据每天都在呈现爆炸式的增长,如何能够更好的对这些数据进行存储和保管对于每个企业来说都是至关重要的【11。存储大量的数据需要购置大量昂贵的存储设备,提高已有存储空间的存储利用率可以有效的降低存储成本【2】。大量的存储设备的管理同样需要大量的人力,如何更加有效的管理这些存储设备同样是一个需要解决的问题【3】。
基于网络的存储虚拟化技术为解决这个问题提供了一个非常有效的方向,它可以整合所有已有的存储设备,并形成一个存储池,再根据用户的需求对存储池中的存储空间进行重新的分配,可以有效的提高存储空间的利用率。通过将所有的存储空间进行整合,存储空间由存储虚拟化系统来统一管理,可以更加有效的降低对存储设备管理的难度。
基于网络的存储虚拟化技术具有较高的灵活性,它可以根据企业的需求随时添加新的存储空间,由于使用业界通用的FC或者iSCSI协议作为存储的通信协议
【4】。因此可以有效的消除了不同品牌的存储产品之间的不兼容性。为企业对存储系统的升级带来了便利,使其不用局限于一个存储品牌的产品【5】。
1.2存储虚拟化主要的实现方式简介
存储虚拟化技术根据其实现的原理可以分为三类,主要包括:基于主机或者服务器的存储虚拟化、基于存储设备的存储虚拟化和基于网络的存储虚拟化【6】。
基于主机或者服务器的存储虚拟化是通过在主机或者服务器上安装虚拟存储的软件来完成,它的优点是稳定性高,由于和文件系统共同存在于主机上,因此可以更加方便的对主机的存储资源进行管理【_丌。但是其缺点也是显而易见的,由于虚拟化的过程是由主机本身实现,因此其要消耗主机的CPU资源,使得主机的性能受的损失,并且其存储空间局限于主机所连接的存储磁盘。
基于存储设备的存储虚拟化技术将虚拟化任务交给专用的存储设备来完成,常见的存储设备是磁盘阵列。它能够独立于主机进行工作,因此可以有效的降低主
电子科技大学硕士学位论文
机的CPU资源消耗。并且其通过连接磁盘框可以为主机提供大量的存储资源。但是不同厂商的存储设备之间兼容性较差,无法进行互联,并且价格高昂。企业对于存储系统的升级也非常不便。
基于网络的存储虚拟化技术是对网络上的存储设备进行整合,形成一个庞大的存储池。它使用业界统一使用的存储通信协议iSCSI或者FC完成设备间的通信,有效的解决了不同厂商的存储产品之间的兼容性问题。基于网络的存储虚拟化技术将所有的存储资源进行集中的管理,并根据每个存储用户的需求重新进行分配存储空间,并且最终可以完成存储成本的降低。
1.3国内外研究进展
基于网络的存储虚拟化由于其能真正的整合不同品牌之间的存储产品,它解决了许多存储区域网中所存在的问题。可以有效的为用户降低存储的成本和管理成本,广泛的被各大厂商所支持【8】。
存储产品从与主机直连的硬盘已经发展到了存储虚拟化的时代,从早期的磁盘子系统虚拟化,到现在被广泛应用到存储区域网中的磁盘阵列。如今基于网络的存储虚拟化这一新兴产品,已经被许多存储领域的厂商所支持,EMC,HP,mM,华为赛门铁克等存储厂商都已经推出自己的网络存储虚拟化产品,如EMC的EMCinvista产品系列,华为赛门铁克的VIS系列产品【9】。
目前,HDS、I-IP、mM、SUN、VERITA等存储软硬件厂商都将基于网络的存储虚拟化技术作为重头戏。存储虚拟化技术在存储的各个方面都被广泛的运用,从小到数据块、文件系统,大到磁带库、各种主机服务器和阵列控制器【101。存储虚拟化已经不再是一个概念,它已经被各个厂商作为新的技术进行应用。
继SAN之后,基于网络的存储虚拟化技术被认为是存储领域的又一个新的浪潮。许多公司预测,它将被更加广泛的应用到企业的存储业务中。将有效的整合现有的SAN网络,成为企业升级的方向【儿J。
1.4本课题的研究目的与意义
为了解决不断增长的数据的问题,企业不得不购买大量昂贵的存储设备,由于
第一章引言
管理的不便使得很多已有的存储资源被大量的浪费,由于不同厂商的存储设备之间互联具有兼容性差的问题,使得企业在升级其存储系统时,要么只能继续使用原先厂商的存储产品,这使得选择的余地大大的降低,成本也无法得到有效的控制。要么将所有的存储产品进行更替,造成了大量存储设备的浪费。
基于网络的存储虚拟化技术可以将存储设备进行整合,形成一个庞大的存储池,并对这些存储资源进行集中管理。由于进行了集中的管理,它可以根据每个存储用户的需求进行划分存储空间,这将大大提高已有的存储设备的存储利用率,为企业节约成本。
基于网络的存储虚拟化技术使用业内通用的iSCSI协议或者FC协议作为存储通信协议【12】,因此能够更好的将不同厂商之间的存储产品进行整合。打破了不同厂商之间的壁垒。解决了企业在对存储系统的升级产品时遇到的兼容性的问题。
电子科技大学硕士学位论文
第二章SPC一3协议和SBC.3协议
2.1SCSI协议概述
SCSI协议的主要功能是在主机和存储设备之间传送命令、状态和数据块。在各类存储技术中,SCSI是其中最重要的桥梁。
SCSI协议集使用请求.回复的模型,所有的请求由SCSI的Initiator发出,SCSI的Target收到请求,并对SCSI请求进行响应。每个SCSI请求和回复构成了一个原子操作,各个SCSI请求之间没有任何联系【13】。
SCSI命令集包括了SPC、SBC、MMC等命令集【141。其中SPC命令集属于设备无关的命令集。而其它的命令集是设备相关的【15】。在为块设备进行服务的时候,则使所示。
从命令集关系图中可以看出,设备类型相关的命令集和主要命令集都是使用SCSI传输层协议进行传输。二者在架构模型中属于同层。一个存储设备需要支持主要命令集(SPC),同时根据存储介质类型的不同,选用不同的设备类型相关命令集。通常在主机中,硬盘使用SBC命令集。
2.1.1命令描述块(CDB)
SCSI设备通信是通过向SCSI设备服务器发送命令描述块(Command
Discribe
第二章SPC.3协议和SBC.3协议
Command)来完成的。CDB的内容可以是主要命令集(SPC),也可以是设备类型相关命令集。客户端根据请求的类型发送包含请求内容的CDB,服务端通过解析CDB中的内容,获取客户端请求的类型以及相关的参数,并将回复的内容通过SCSI传输层发送给客户端。
命令描述块(CDB)分为定长CDB和变长CDB两类,6字节长CDB结构图如图2.2所示,10字节长CDB的结构如图2.3所示。
BIT
BYTE
O
l
2
3
4
5TRANSFER765432lO0P日认TIONCoDEMisccllancousCDBinfomarionT'1,、,’。"A帆卅W、J岫帅■、f1Vmoot,、,’',、^TLENGlH/PARAⅣ匝TERLISTLENGTH,ALLOCAlloNLENGTHcoNTROL
图2-26字节长CDB结构图
BIT
BYTE
0
1
2
3
4
5
6
7
8
9765432100PERATl0NCODEMisofllancousCDBinfomation‘J………l』^……T,、,!T,、^T廿1nr’矿^nr、n七aaMisccllancousCDBinfomation1’I’^、Ta"tjnrAl,11’IJ巾^D^■仍1’【mT肌Tr飞t,'啊T,^Tt,、,、^1’T,’‘、TJv舢uJlu川舢、01L■、■J■一、K.I■1uJ,u、fuvJJ√■oI、-loTJiJlmluJIu,tL--、,o^JTT飞T,’1’廿CONTROL
图2-310字节长CDB结构图
2.1.2命令描述块域的介绍
操作码OperationCode
OperationCode在SCSI数据帧结构的第一字节,它唯一的确定了一个CDB的操作类型,在某些情况下,操作类型由OperationCode域和ServiceAction域同时确定。操作类型包括:Read、Write、ReadCapacity等。
OperationCode包含一个GroupCode域和一个CommandCode域。其具体的
电子科技大学硕士学位论文
域格式如图2-4所示。
BIT76
GROUPCODE5432COMMANDCODE1O0
图2-4OperationCode
Code域主要确定了这个CDB的长度,如000b代表了6字节CDB,001代表了10字节的CDB。CommandCode域确定了命令的操作行为。Group
●ServiceAction
ServiceAction域在所有长于6字节的CDB中都存在,它对CDB中的OperationCode域进行了补充。它确定了一个通用的OperationCode中更加详细的操作行为。◆LogicBlockAddress
LogicBlockAddress标识了SCSI命令所作用的逻辑块地址,在磁盘中,它对应的是一个扇区。逻辑块地址是从0开始并且连续的。它的最大值与逻辑卷实际的大小相关。
●TransferLength
传输长度标识了这个SCSI请求所需要传输的数据长度,通常是代表块的数目,在某些特定的CDB中,它也被用来代表需要传输的字节数。
●ParameterListLength
ParameterListLength域被用来指定Data-outBuffer中即将被发送到服务端的字节数,例如诊断参数或者日志参数等。
●AllocationLength
AllocationLength域标识了发送SCSI请求的客户端为这个SCSI请求所分配的空间,当一个SCSI的读命令在请求了128个块的数据时,客户端为此SCSI命令分配16个块的空间,服务端在将块数据回复时,需将128块分为8次,每次16个块发送到客户端。
2.2SPC-3协议概述
SPC(SCSIPrimaryCommand)命令集是针对所有SCSI设备的,它规定了所有的SCSI设备都必须或者可以使用的命令。其中的INQUIRY,REPORTLUNS和TESTUNITREADY是所有的SCSI设备都必须支持的SCSI命令。在规定了必须支持的命令集的同时,SPC协议中也规定了一些推荐的命令集。例如REQUESTSENSE等命令。
第二章SPC.3协议和SBC.3协议
2.2.1INQUIRYCommand
INQUIRYCommand是应用客户端用来向设备服务端请求逻辑单元和SCSI目标设备相关信息的SCSI命令。设备服务器在回复的信息中将会包含它们的设备类型、标准版本号和设备厂商信息等其它的信息。
INQUIRY命令属于一个6字节的CDB,它的帧结构如图2—5所示。
BIT
ByrE
O
l
2
3
4
5765432l0OPERATIONCODE(12h)ReservedPAGECODEObsoleteEVPD(MSB)』—1■J●J…■~’洲¨■..,,、,.,,,、、,,。、,,!,.。(LSB)CONTROL
图2-5Inquiry帧结构图
INQUIRY命令帧由Operation
确定。Code,EVPD,PageCode,AllocationLength域来
●OperationCode
INQUIRYCommand的操作码是0x12。它唯一的确定了此命令的类型。
◆EVPD字段
EVPD(EnableVitalProductData)在CDB中属于ServiceAction域,它是对Operation域的补充。在客户端需要对SCSI服务端进行请求产品信息时,将EVPD设置为0,此时INQUIRY命令的是一个标准INQUIRY请求,目标设备服务器将回复标准的INQUIRY数据。当应用客户端对特定的的信息进行请求时,将EPVD设置为1。特定请求的具体内容由PAGECODE域确定。
●PAGECODE
当EVPD被设置为0时候,PAGECODE字段只能为0,如果此时PAGE
被设置为1,那么服务端将回复一个请求非法的回复帧。CODE
当EVPD被设置为1时,PAGECODE字段被用来指定此玳QI瓜Y命令请求的页类型。其中0x00页代表了应用客户端请求目标设备服务器返回其所支持的VPDPAGES,0x83页代表了应用客户端请求目标设备服务器返回其认证信息。
PAGES0x00页和0x83页是SPC协议中要求目标服务器必须支持的页。其它的VPD
都是可选支持的。
电子科技大学硕士学位论文
●AllocationLength
AllocationLength域指定了此次INQUIRY命令需要请求的数据长度。当EVPD字段被设置为0时,AllocationLength最小值为5,当EVPD被设置为1时,AllocationLength最小值为4。
2.2.2LOGSELECTCommand
LOGSELECT命令提供了一个SCSI应用客户端对SCSI目标设备中的统计信息进行管理的途径。实现了LOGSELECT命令的SCSI目标设备也需要实现LOGSENSE命令。
LOGSELECT命令是一个10字节的CDB,其帧结构如图2-6所示。
BrT
BYTE’
O
l
2
3
4
5
6
7
8
9PC76543210OPERATIONCODE(4Ch)ReservedReservedPcRSPReserved(MSB)■f…¨………uII■。.。.、。,。。,.。,,。、,。,。CONTRoL(LSB)
图2-6LOGSELECT帧结构图
LOGSELECT命令由OperationCode、PCR、SP、PC、PARAMETERLISTLENGTH域来进行确定。
●OperationCode
LOGSELECT命令的操作码是0x4C。它唯一的确定了这个SCSI帧的类型。●PCR
PCR(ParameterCodeReset)域是在当SCSI应用客户端请求将SCSI目标服务器中的所有参数重置为出厂默认值时使用,此时的PCR被设置为1,在默认情况下,PCR域被设置为0。
●SP
SP(SaveParameters)域是在SCSI应用客户端请求将SCSI目标服务器将当前的配置保存在非易失型的存储器中的时候使用,此时SP被设置为1。SCSI目标服务
第二章SPC.3协议和SBC.3协议
器在下一次的初始化时,将从非易失型的存储器中读取这些被保存的配置。●PC
PC(PageContr01)字段定义了被选择的参数的类型,其表2—1所示。
PC
00bLOGSELECTParametervaltiesLOGSENSEparametervalues初始值
累积值当前初始值当前累积值
默认初始值
默认累积值
表2-1PC字段意义01b10b11b默认初始值默认累积值
2.2.3LOGSENSECommand
LOGSENSE命令提供了一个让SCSI应用客户端对SCSI目标服务器的统计信息或其它操作信息进行检索查询的方法。它是LOGSELECT命令的一个补充。LOGSENSE命令和LOGSELECT命令共同完成对SCSI目标服务器的统计信息进行管理和查询。
LOGSENSE命令是一个10字节的CDB,其帧结构如图2.7所示。
7654321OBITBYTE
O
l
2
3
4
5
6
7
8
9PCOPERATIONCODE(4Dh)ReservedPAGECODEPPCSP(MSB)■f岬圳、,ItCONTROL。.。...~。。,、。一。V■▲1■,ILaA、.(MSB)MnIIvMul、J■■■.,,,,.,.,。,,。,,、,。(LSB)0--SB)
图2.7LOGSENSECOMMAND帧结构图
LOGSENSECommand由OPER—盯IONCODE、PPC、SP、PC、PAGECODE、PARAMETERPOINTER、AI.I,oCATIoNLENGTH域来确定。
●OperationCode
LOG
●SENSE命令的操作码是0x4D,它唯一的确定了SCSI帧的类型。PPC
PPC(ParameterPointerContr01)域定义了SCSI应用客户端向SCSI目标设备服务器请求的参数类型。它指定了此LOGSENSE命令所请求的日志页的种类。
电子科技大学硕士学位论文
■SP
SP(SaveParameters)域是在SCSI应用客户端请求SCSI目标服务器将当前的配置保存在非易失型的存储器中时候使用,此时sP被设置为1。SCSI目标服务器在下一次的初始化时,将从非易失型的存储器中读取这些被保存的配置。
◆PC
PC(PageContr01)指定了被选择的参数值类型。它的含义与LOGSELECT命令中的PC域相同。
●PAGECODE
PAGECODE域定义了SCSI应用客户端所请求的具体日志数据。当此PAGECODE未被SCSI目标设备服务器所实现时,SCSI目标设备服务器将回复一个状态非法的数据。
◆PARAMETERPOD、JTER
PARAMETERPOINTER域定义了SCSI应用客户端所能够请求的参数范围。这个范围是SCSI目标设备服务器所支持的参数范围。
2.2.4MODESELECTCommand
MODESELECT命令提供了一个让SCSI应用客户端更改SCSI目标设备服务器的媒介、逻辑单元和外围设备参数的方法。SCSI目标设备服务器在实现了MODESELECT命令的也需要同时实现MODESENSE命令。客户需要首先发送MODESENSE来确定SCSI目标设备服务器所支持的模式页、模式页长度以及其它参数。
MODESELECT命令包含6字节的CDB类型和10字节的CDB类型。10字节的MODESELECT命令与6字节的MODESELECT每个域的含义相同。其6字节的帧结构图如图2-8所示。
Brr
ByrE
O
l76543210OPERATIONCODE(15h)ReservedPFReservedSP
2
3
4
5PARA~Ⅱ!TERLlSTLENGTHCoNTROL
图2-8MODESELECT帧结构图
MODESELECT帧由OPERATION
来确定。CODE、PF、SP、ParameterListLength域
第二章SPC.3协议和SBC.3协议
●OperationCode
6字节的MODESELECT命令的操作码是0x15,10字节的MODE
命令的操作码是0x55。
●SELECTPF
PF(PageFormat)域被设置为0时候代表这个MODESELECT命令后面的参数都是由厂商自定义的。当被设置为1时代表这个MODESELECT命令后面的参数是符合SPC一3协议标准的。
●SP
SP(SavePages)字段设置为1时候定义了SCSI目标设备服务器在执行MODESELECT命令值后,需要将模式页中的信息保存在非易失性的存储器中。当sP字段为0时,模式页的信息将不被保存。
2.2.5MODESENSECommand
MODESENSE命令提供了SCSI应用客户端请求SCSI目标设备服务器汇报参数的方法。
MODSENSE命令同样包含6字节和10字节两种CDB,其6字节的CDB帧结构如图2-9所示。
B11r
BYTE
O
l
2
3
4
5PCSUBPAGECODEALLoCAlrIONLENGTHCONTRoLReserved765432lOOPERATIONCODE(1Ab)DBDPAGECODEReserved
图2.9MODESENSE帧格式
MODESENSE命令由OPERATION
SUBPAGECODE域来确定。
◆OperationCodeCODE,DBD,PC,PAGECODE,
6字节的MODESENSE的操作码是0xlA,10字节的MODESENSE命令的操作码是0x5A。
●DBD
DBD(DisableBlockDescriptors)域被设置为0时定义了SCSI目标设备服务器在回复的MODESENSEDATA中将包含0个或者多个块描述符,当DBD被设置
上一篇:校园安全应急救援预案
下一篇:论电子商务下现代物流的发展趋势