




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录摘要31.引言52.相关技术62.1 iscsi技术62.2 tcp拥塞窗口控制算法62.3 raid技术72.4 逻辑卷管理(lvm)73.内容简述及比较93.1 iscsi远程存储访问的优化93.2针对iscsi存储服务器设计的新的分级数据cache架构103.3 iscsi带外存储虚拟化的设计和实现123.4 论文内容的比较144.iscsi存储虚拟化的具体实现154.1 对于具体实现的讨论和说明154.2 整体架构154.3 目标器的工作机制174.4 客户端的工作机制18参考文献20摘要随着网络技术的飞速发展,基于廉价tcp/ip协议的存储区域网络(ip storage area network,ipsan)越来越受到人们的欢迎,其中的代表就是iscsi技术。iscsi技术的核心思想是在ip网络上传输scsi命令和数据。它成本低、传输速度快、标准化程度高,适合中小型企业。但是它也存在一些问题,比如高延迟环境下性能急剧下降、负载较大时吞吐量不能满足要求、一对一模式不适应虚拟化要求等等。本文将对三篇文章的内容进行介绍和分析:optimization of iscsi remote storage access through multiple layers、a new hierarchical data cache architecture for iscsi storage server、design and implementation of iscsi out-of-band storage virtualization。这三篇文章研究的主体都是iscsi技术,并且从三个不同的层面分别解决了一个iscsi技术存在的问题。第一篇主要是针对iscsi远程存储访问的优化,研究了iscsi/scsi层、tcp/ip层以及以太网层对于iscsi性能的影响,并给出了提高iscsi性能的方法和参数设置。第二篇主要是针对iscsi服务器设计了一种新的分级数据缓存结构,称为dca,并且设计了slap算法来辅助dca的工作,使得iscsi服务器在负载压力大时仍能保证吞吐量。第三篇设计和实现了iscsi带外虚拟化,通过增加一个管理层来对后端设备进行抽象。在介绍了三篇论文的内容之后,本文还对它们的相同点和不同点进行了简单的分析。本文最后对于iscsi存储虚拟化进行了深入的讨论,对于原论文中的一些设计进行了讨论和修改,并给出了一个改进后的iscsi三方通信结构,实现了iscsi存储虚拟化的内容。关键字:iscsi,分级数据缓存结构,存储虚拟化abstractwith the rapid development of network technology, ip storage area network (ipsan) based on low-cost tcp/ip protocol become more and more popular. iscsi technology is one of the representatives. the core idea of iscsi technology is to transport scsi commands and data on the ip network. it is low-cost, transmission speed, high degree of standardization for small and medium enterprises. but it also has some problems, such as drastic performance deterioration in the case of longer-latency, too small throughput in large load environment, point-to-point mode is not suited to requirements of storage virtualization.we will introduce and analysis the content of the three papers: optimization of iscsi remote storage access through multiple layers, a new hierarchical data cache architecture for iscsi storage server, design and implementation of iscsi out-of-band storage virtualization. their studies are all about iscsi technology, and solve a problems about iscsi technology from three different aspects respectively. the first one is about the optimization of iscsi remote storage access. it studies the impact to iscsi performance from iscsi/scsi layer, tcp/ip layer and ethernet layer, and shows the way to improve iscsi performance and the parameter settings. the second one designs a new hierarchical data cache architecture for iscsi storage server, called dca, and designs a slap algorithm to help the dca. it can makes iscsi servers to ensure throughput in large load environment. the last one designs and implements the iscsi out-of-band storage virtualization. it makes the back-end devices virtual by adding a manager layer. after introducing the three papers, we make a simple analysis about similarities and differences.in the end of this paper, we make a deep discussion about iscsi storage virtualization. we analysis some content and make some changes in the original paper. we also gives an improved tripartite communication architecture, which implements the iscsi storage virtualization.key words: iscsi, hierarchical data cache architecture, storage architecture1. 引言当今是一个信息爆炸的时代,企业的数据量越来越大,对于这些数据的存储需求也越来越迫切,传统的存储模式已经不能满足企业级存储应用的需求了。随着internet的飞速发展和分布式系统的广泛应用,网络存储技术已经成为了存储领域一个主要的研究方向。在网络存储技术中,iscsi是ipsan的代表。iscsi技术一个很大的特点就是对传统技术的继承和发展。scsi技术是一个被广泛采用的存储标准,有一定的历史,并且发展态势良好。tcp/ip协议是计算机网络中最成熟的协议,并且ip网络的基础设施已经非常完善了。利用这两个优秀和成熟的技术,iscsi在很多方面展现出了自己的优势。在应对远程存储问题时,iscsi技术可以利用现有的基础设施,成本低、传输速度快、标准化程度高、兼容性好、易于管理。越来越多的中小型企业选择iscsi技术来建立数据存储服务中心。iscsi虽然在很多方面都有很大的优势,但也存在着许多不能被忽视的缺点。在传统iscsi架构中,资源需要预先分配,使用起来很不灵活,很难满足用户不断变化的需求。iscsi基于点对点的通信模式不支持虚拟化,而且系统中的连接数量非常庞大,对于系统和网络来说是很大的负担。在高延迟的环境下,iscsi系统的性能将会有非常严重的恶化。以上这些严重限制了iscsi技术的发展。从iscsi技术诞生开始,人们就没有停止对于它的改进。这些改进是多方面的,包括提升它的性能、在高负载下提高吞吐量、提供虚拟化支持等等。本文所研究的三篇论文就是分别从这三个方面来对iscsi技术进行改进的。论文1主要研究iscsi远程存储访问的优化,其优化的层次不仅仅限于iscsi协议层,而是对包括tcp/ip层在内的多个层次进行了综合的优化;论文2针对iscsi存储服务器设计了一种新的分级数据cache架构,通过这种新的架构来有效地削减局部互联通信,从而提高存储服务器性能;论文3研究的内容是iscsi带外存储虚拟化的设计和实现,提供了一种简单实用的iscsi虚拟化机制。虽然三篇论文所侧重的技术细节以及针对的问题各不相同,但都是为了解决iscsi技术在实际应用中面临的一些问题。本文接下来的部分是这样组织的:第二部分简单介绍三篇论文中所涉及的一些基础技术,包括iscsi技术、tcp拥塞窗口控制算法、raid技术和lvm;第三部分对三篇论文的核心内容进行阐述,并且会对一些关键的部分进行比较;由于本文作者在iscsi存储虚拟化方面也做过相应的设计,并且和论文3在很多地方有相似之处,所以第四部分重点介绍iscsi存储虚拟化的实现,以及对论文3的深入讨论和改进。2. 相关技术2.1 iscsi技术iscsi是标准的ipsan协议。iscsi协议是建立在scsi协议之上的。在iscsi中,通信是在两方之间进行的,发起通信的一方称为启动器(initiator),接收请求的一方称为目标器(target)。在启动器发起通信之前,需要创建目标器。对于用户来说,目标器就是一个可用的存储设备,它可以是一个磁盘,也可以是一个分区。在目标器创建完成之后,启动器通过iscsi协议的发现机制就可以看到该目标器了。启动器要使用该目标器,就必须先进行登录,在登录完成之后就可以进行数据传输了。启动器和目标器之间传输的是iscsi协议数据单元(pdu),而协议数据单元的本质就是scsi命令和响应。iscsi协议将scsi命令集封装到pdu中,又将pdu封装到ip包中,然后再在ip网络中传输。它能在很大程度上减少访问和传输存储数据的时间。图2.1 iscsi的通信模式iscsi技术的重点是将scsi命令通过ip网络传输,所以它的通信模式是比较简单的。iscsi协议并没有在资源管理上做太多的工作。一个目标器之后,连接到它上面的启动器看到的就是该目标器的所有存储空间,即在iscsi通信模式中,目标器是存储资源的分配单位,而且是独立的。当有多个启动器登录同一个目标器的时候,该目标器对于这些启动器来说是共享的。启动器连接多个目标器的时候,目标器之间是独立的,相当于启动器中的多个磁盘或者分区。2.2 tcp拥塞窗口控制算法tcp使用拥塞窗口(cwnd)的概念来控制网络拥塞。cwnd指明了能被连续发送而不会收到数据接收方的延迟ack包的最大包数,即超过这个值就可能收到延迟ack。cwnd是一个参数,它为了达到网络拥塞控制的目的而限制了数据发送者的行为。一般来说,如果tcp通信状态被认为是正常的,那么当数据发送发收到一个ack是就增大cwnd的值。但是,如果tcp实现检测到一个错误并且判定通信的状态是不正常的,那么cwnd就会急剧减小。这是cwnd设计的总体原则,但是在具体的实现中,算法在细节上并不是完全相同的。比如在linux 2.6版本的内核中,就有多个控制算法的实现,我们可以使用用户命令来改变算法,这些算法包括reno、二分增长拥塞控制(bic)、westwood以及hamilton tcp等等。2.3 raid技术raid就是独立冗余磁盘阵列(redundant array of independent disk)。它是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能与数据备份能力的技术。raid有不同的级别,而不同的级别对应于不同的性能、容量和可靠性,代表了这三种关键参数的不同平衡组合。raid0实现了带区组,数据并不是保存在一个硬盘上,而是分成数据块保存在不同驱动器上。因为将数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。如果刚好所需要的数据在不同的驱动器上效率最好。它不需要计算校验码,实现容易。它的缺点是它没有数据差错控制,如果一个驱动器中的数据发生错误,即使其它盘上的数据正确也无济于事了。raid4和raid3很像,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。它的特点和raid3也挺像,不过在失败恢复时,它的难度可要比raid3大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。raid5是分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。raid5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。2.4 逻辑卷管理(lvm)lvm是逻辑盘卷管理(logical volume manager)的简称,它是linux环境下对磁盘分区进行管理的一种机制,lvm是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过lvm系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过lvm可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过lvm管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。lvm将存储虚拟化,使用逻辑卷,可以不再受限于物理磁盘的大小。另外硬件相关的存储设置被隐藏,可以不用停止应用或卸载文件系统来调整卷大小或进行数据迁移。因而可以减小操作成本。它与直接使用物理存储更是拥有很多优势:(1)灵活的容量,使用逻辑卷时,文件系统可以扩展到多个磁盘上,可以聚合多个磁盘或磁盘分区成单一的逻辑卷。(2)可伸缩型的存储池,可以使用简单的命令来扩大或缩小逻辑卷的大小,而不用重新格式化或分区磁盘设备。(3)在线的数据在分配,可以在线移动数据,数据可以在磁盘在线的情况下重新分配。(4)方便的设备命名,逻辑卷可以按自己喜欢的方式起任何名字。(5)条块化的磁条,可以生成一个逻辑盘,它的数据可以被条块化存储在多个磁盘上,这样可以明显提升数据吞吐量。(6)镜像卷,逻辑卷可以提供方便的方法来镜像数据。(7)卷快照,使用逻辑卷可以获取设备快照用来一致性备份或者测试数据更新效果,并且还不会影响真实数据。3. 内容简述及比较3.1 iscsi远程存储访问的优化一般情况下,cwnd的大小对于用户程序来说是不可见的,所以需要先对tcp的内核源码进行一些处理。在tcp内核源码中插入监视的功能,让cwnd对于用户来说是可见的,这个功能是实验和改进的基础。虽然是为了提高iscsi的性能,但仅仅只分析iscsi层是不够的,所以需要对其他的层也进行优化和评估,包括scsi/iscsi层、tcp/ip层以及以太网层。为了分析各层对于iscsi性能的影响,实验设置了多个可能带来影响的参数,从iscsi本身的参数,到tcp/ip拥塞窗口的控制参数,再到nic的参数,可以说已经非常全面了。具体的设置和测试的细节非常的繁琐,限于篇幅在此就不进行阐述了,我们重点关注结果和分析部分。首先看总体性能和理论值的比较。为了使用sg_dd命令,实验修改了内核以使得实验环境能兼容这个命令,并以最大为4096kb的块大小来访问target,首次爆发长度(firstburstlength)和最大爆发长度(maxburstlength)被设置为4194304。经过实验发现,优化后的iscsi的性能仍然只有理论性能的一半。为了让优化后的iscsi性能更接近理论值,我们需要研究导致延迟性能下降的因素。然后关注一个持续的iscsi写访问,研究的对象是从发送第一个包到最后一个包得数据转换时间(ta)、通告包的准备时间(tb)、直到下次写的时间间隔(tc)以及rtt。实验发现,tb和tc几乎是稳定不变的,而rtt几乎和在模拟器里设定的值相同。从另一方面看,iscsi性能低于理论值得原因可能来自发送时的数据转换时间ta,它和rtt有一定的比例关系。因此,数据转换时的细节值得进一步研究。通过更进一步的实验,我们发现,短时间内包被连续转换之后,包得发送突然停止了。经过一个固定的时间后,包的连续发送又开始了。很明显这就是iscsi性能在高延时环境下降低的原因。这个间隔大概是50ms,和rtt相同。最后我们得出了一些结论。当rtt为32ms时,优化的iscsi的性能是默认iscsi设置的四倍。而且,我们构建了iscsi连续访问的模型,并分析了cwnd和包转换对于高延时环境下iscsi性能下降的影响。iscsi访问的挂起和重启是被tcp层控制的,因为在重启前只收到了tcp acks。但是,这个控制因素不是只由cwnd来决定。3.2针对iscsi存储服务器设计的新的分级数据cache架构在这篇论文里,作者提出了一种称为dca的分级数据cache架构,通过它来有效地削减局部互连通信,从而提高存储服务器性能。dca由两部分组成:一个是在nic里的读cache,称为nic cache;另一个是在主存里的读写统一cache,称为辅助cache。nic cache为大部分的读请求服务,没有通过pci总线获取数据。辅助cache的功能包括:(1)在每次部分nic cache命中时为一些读请求服务;(2)为nic cache指示缓存的位置;(3)在局部吸收处理最短暂的写操作。存储服务器cache的局部性距离(对同一个数据块的两次请求之间的数据块数)通常比使用了更高级别cache的局部性距离要长。这是因为多级存储缓存在客户端部署并且在应用服务器已经过滤了大部分的应用局部性。因此,存储服务器里的pci总线流量要比诸如web服务器的应用服务器密集得多。我们模拟了单级的基于最近最少使用(lru)策略的nic cache,结果只有微不足道的nic 命中率和局部互连流量的减少。这促使我们为基于iscsi的存储服务器去探索一种新的、能最好利用块级局部性和nic cache空间的cache架构。图3-1.dca架构图图3-1说明了在一个典型的iscsi存储服务器里的两级dca缓存架构。在图中,内存通过内存控制中枢(mch)连接到cpu,而网络结构通过pci总线连接到i/o控制中枢(ich)。一个只读nic cache工作在nic一边,以减少内存和网络接口之间的pci流量。在一个iscsi存储服务器里,多个iscsi目标器模块经常被用来提供各种并行数据服务。因此,板载nic cache空间经常被多个iscsi目标器共享。为了有效地管理所有iscsi目标器的nic cache空间,在dca里,整个nic cache的目标器目录和每个目标器的cache目录都由主机系统来维护。因为主机系统是拆封iscsi数据包的唯一地点,所以在主机内存中维护nic cache元数据对于显著减少由nic cache查找和维护操作带来的pci流量很有好处。为了现有linux内核级网络和i/o栈的兼容性考虑,我们设计了一个在iscsi应用层、称为辅助cache的读写统一cache,而不是将之与已经针对其各自功能而被高度优化的内核级套接字缓冲区或者是磁盘i/o缓冲区cache合并。辅助cache的体积要比nic cache的大。它被用来协助nic cache做位置放置的决定以及通过定时刷新的写回策略来吸收短暂的写操作。在dca方案里,pci流量的减少在很大程度上取决于三个因素:nic cache命中率,辅助cache命中率,以及为保持nic cache和辅助cache的一致性所花费的开销。dca的分级缓存方法解决了围绕处理混合读写传输的各种问题,这些问题是传统的缓存系统很难解决的,主要原因是被请求的服务器的块具有比较差的局部性。但是,作为一个两级的存储cache架构,和单级nic cache相比它还有更多的问题需要解决。为了有效地组织nic cache上有限的空间,我们在我们的设计中考虑以下的四个问题:基本cache行单元、管理cache空间、包容对独占、cache一致性。由于对于nic cache来说,一个简单的基于访问的布局算法不能在混合读写传输的情况下很好地工作,我们需要开发一种新的算法,这个算法可以确定那些虽然访问率超过了一个预定的阈值,但在未来被读取的可能性仍然很高的块。我们称这些块为热块。我们的cache布局算法的目标是在nic cache里缓存大部分的热块,并将冷块移除cache。虽然dca和一般的分级cache架构有一些相似之处,但dca和前期的工作还是存在着显著的区别。首先,dca的cache布局决策是由存储服务器做出的,对客户端是透明的,而目前的解决方案是和存储客户端合作。第二,dca维护一个辅助cache和nic cache的包容性。第三,目前的分级cache架构解决方案旨在在更高的级别提高命中率,同时在广域网里减少降级开销。但是dca旨在将低级nic cache的命中率最大化,从而削减局部互连流量。据我们所知,这项工作是首批开发分级cache布局算法来有效减少存储服务器里的pci流量的。为此作者基于离线分析的数据专门设计了slap算法。对于iscsi读请求,slap算法在nic cache和辅助cache中查找nic cache中的部分命中或丢失。由于任何数据块都需要被传递到nic,在辅助cache发生读不命中后,如果辅助cache的读记录数大于写记录数,那么mov_nic_cache()操作将被调用,将被请求的块从nic发送缓冲区复制到nic cache。根据我们的跟踪分析,这是在大部分实例里有较强读局部性的一个很好的征兆。通过在nic里引入一个缓冲cache,可以进一步地节省移动操作的开销。对于iscsi写请求,辅助cache和nic cache之间的一致性检查是必须的。如果辅助cache的读请求命中并且它之前的请求类型也是读,那么该块条目若存在则会从nic中被删除。如果关于被讨论块的请求中,读访问多于写访问,并且读的数量已经超过了最低阈值(mov_threshold=2),那么它将为nic cache布局维持一个候补。相对于可能移除有效块的基于无效化的协议,基于更新的一致性协议所带来的启发式方法会平衡转移成本。通过这种方式,两次不掺杂有意义的读操作的短暂写操作将不会被重复复制到nic cache中。论文中对于nic设计的细节、nic在各种情况下的处理过程以及slap算法的实现细节都进行了深入的介绍,限于篇幅这里不再进行展开。3.3 iscsi带外存储虚拟化的设计和实现存储虚拟化技术在存储领域已经有了非常广泛的应用,它在存储系统的设计中扮演着重要的角色。现在越来越多的存储系统开始使用虚拟化技术。虚拟化技术能够在很多方面提升系统的性能和稳定性,同时也能增加系统对于复杂应用环境的适应能力。更重要的是,它非常适合将后台的资源进行整合后对用户提供服务。当今最热门的云存储概念,和存储虚拟化技术有着密不可分的关系。正如在关键技术这一部分中对iscsi的介绍一样,iscsi从设计之初就是一种点对点的模式,也即一个启动器对应一个目标器。当一个启动器需要连接多个目标器时,实际上是把每一个目标器当做一个独立的设备,它们之间是分离的。当一个目标器需要连接多个启动器时,每一个启动器看到的都是相同的内容,也即该目标器是被启动器共享的。存储虚拟化可以认为是物理存储实体和逻辑视图的分离,其实这个概念在传统操作系统中也有体现,比如物理地址和逻辑地址的关系,但是这个实现是微观的,我们要实现的存储虚拟化是针对大型存储系统的宏观结构的。在存储虚拟化的实现中,一般是在物理存储设备和客户端之间增加一个抽象层,这个抽象层可以融合各种不同的物理存储设备甚至是系统,然后整合为一个存储池。存储虚拟化有三个级别:基于服务器的、基于设备的以及基于网络的。而我们要在iscsi上实现存储虚拟化,自然是要选择基于网络的。基于网络的存储虚拟化一般有两种实现方式:带内和带外。主要的区别在于,带内实现的控制流的传输和数据的传输是同一条路线,而带外实现的控制流和数据流在不同的路线上传输。虽然带内实现方便,但是带外传输能够提供更好的灵活性和性能,所以我们选择了带外的实现方式。图3-2.iscsi存储虚拟化模型论文中对于图3-2这个模型并没有太深入的进行说明。其实这个模型本身还是比较好理解的。如果除去manager,并且把控制流和数据流合并,那么这就是传统的iscsi通信模型了。manager是实现存储虚拟化的关键部分。从模型中我们可以看出,manager中有独立的target和initiator,其中target负责和用户端进行交互,而initiator负责和后端的target进行交互。根据图例我们可以发现,manager只能看到控制流,也就是说数据流是不经过manager的。manager管理所有的后端target,他们既可以是具体的设备,也可以是一个存储子系统。manager屏蔽掉后端存储系统的差异,展现给用户的是一个统一的存储结构。当用户发出请求时,这个请求先被manager获得,然后进行处理,最后返回一个响应给用户端程序,用户端程序获得的响应实际上是后端target的具体信息,这个时候用户端和后端target之间就可以进行传统的iscsi数据交互了。虽然实现的细节是非常复杂的,但是其核心思想就是用manager作为中间层,来对后端的target进行虚拟化,用户看到的不再是一个一个的物理target,而是一个整合的虚拟存储资源。有了manager进行虚拟化管理之后,系统就可以屏蔽掉后端物理存储设备之间的差异了。更重要的是,通过对manager中管理算法的优化,我们可以实现包括分级存储、热点平衡、最优分配、动态分配在内的多种功能。通过这样一个存储虚拟化的实现方案,我们可以把传统的单一的iscsi模型打造成为一个功能丰富且强大的存储系统。3.4 论文内容的比较首先我们来看看这三篇论文的相同点。其实相同点还是非常明显的,就是它们研究的对象都是和iscsi技术紧密相关的。论文1是直接对iscsi的底层实现进行研究,希望能够找到通过设置参数甚至修改代码来提高iscsi性能的方法;论文2设计了一种新的结构dca,并且设计了一个slap算法来辅助这个结构的工作,而dca是工作在iscsi存储服务器上的;论文3研究的存储层次最高,是关于iscsi体系架构的改进。当然,这三篇论文更多的是不同。论文1关注的是iscsi的底层实现细节,并且结合了tcp/ip层甚至以太网所处的层次,通过不断的调整参数进行实验,其重心在底层代码的研究上;论文2研究的是底层的硬件结构,通过对传统结构的调整(增加dca结构)来提高吞吐量,和论文1一样也是底层,不过是硬件级别的;论文3关注的就不是底层的内容了,而是整个iscsi体系结构的调整,或者说对于它的扩充。同样的目的,我们总是可以通过不同的途径来达到。本文作者对于iscsi的存储虚拟化也做过一些研究,和论文3的内容有相似之处,在第四部分,将对论文3中介绍的iscsi存储虚拟化模型进行深入的研究,并展示一种修改后的实现方案。4. iscsi存储虚拟化的具体实现4.1 对于具体实现的讨论和说明在对于具体实现做介绍之前,有必要针对论文3的内容做一些讨论和说明。论文3的实现是在manager中内嵌了target和initiator用于通信,但是作者认为manager中的通信只是控制信息的通信而不是数据的通信,通信内容小而且频繁,应该设计单独的通信模块,而不是简单地用target和initiator来代替。manager中应该存有系统的元数据信息,并利用这些元数据信息进行管理,所以manager应该称为mds更合适。具体实现的内容较多,限于篇幅只对模型级别的内容进行介绍,所以没有列出数据结构和一些技术上的细节。4.2 整体架构元数据是组织数字化信息的基本工具,可以通俗地解释为数据的数据。元数据服务器在三方架构中扮演着至关重要的角色。元数据服务器是全局特征信息的拥有者,存储集群的资源状态、可用空间等重要信息都会保存在元数据服务器中,这些特征信息是元数据服务器进行全局调度的基础。同时,元数据服务器也是系统通信的管理者,所有的控制信息都要经过元数据服务器进行传递,客户端和存储集群之间只是数据的交互。图4.1 三方通信模型利用全局特征信息,元数据服务器负责对用户的请求进行响应。这里的响应主要指资源的分配。元数据服务器将存储集群的特征信息和用户请求作为输入,使用特定的算法得出最合理的分配方案,并将该方案传递给存储集群的管理器。目标器根据分配方案实际地去执行资源的分配,同时建立逻辑到物理的映射表,并将该映射表返回给元数据服务器。根据目标器的返回结果,元数据服务器再对客户端作对应的响应。当用户需要使用对存储设备进行操作时,客户端向元数据服务器发出特定格式的操作请求,该请求基于客户端的逻辑地址。元数据服务器维护着客户端逻辑地址到存储集群地址的映射表,在收到客户端发送的操作请求后会返回存储集群的地址信息。客户端利用元数据服务器返回的地址再直接和目标器连接,使用iscsi协议将操作命令发送过去,再由目标器去实际执行。在三方架构中,传统的iscsi启动器和目标器已经不复存在了,取而代之的是新的客户端和目标器。客户端要完成的功能有:(1)向元数据服务器发出资源申请;(2)接收元数据服务器返回的分配结果,主要是满足度等信息;(3)将用户在逻辑地址空间上的操作发送给元数据服务器;(4)接收元数据服务器返回的目标器地址信息,并通过iscsi协议向目标器发送操作命令。目标器要完成的功能有:(1)将存储池的信息实时地发送给元数据服务器;(2)接收元数据服务器发送的分配方案,执行实际分配,并将地址映射信息返回给元数据服务器;(3)接收客户端发来的基于iscsi协议的操作命令,并进行对应的处理。整个三方架构的工作流程可以总结如下:(1)系统最初启动时,目标器收集存储池的特征信息,并返回给元数据服务器,作为特征信息表的原型,由元数据服务器来进行整理和维护;(2)客户端按照用户的需求向元数据服务器发送资源申请;(3)元数据服务器在特征信息表和用户请求的基础上,使用特定的算法计算出最合理的资源分配方案,并交给目标器来实际执行;(4)目标器完成存储资源分配后,将资源地址的映射表发送给元数据服务器;(5)元数据服务器更新特征信息表,记录剩余资源、地址映射等关键信息,并告诉客户端请求已经被满足;(6)用户进行读写操作时,客户端将操作映射到逻辑地址上,并将本次操作的信息发送给元数据服务器;(7)元数据服务器根据特征信息表中的地址映射信息,将客户端逻辑地址对应的目标器逻辑地址返回给客户端;(8)客户端根据目标器的逻辑地址,通过iscsi协议向目标器发送读写命令;(9)目标器将逻辑地址映射到具体的物理存储空间,执行对应的读写操作。4.3 目标器的工作机制在三方架构中,目标器取代了传统的iscsi目标器。在整个系统的运行过程中,目标器主要完成三个阶段的工作:(1)收集存储池的信息,发送给元数据服务器;(2)接收分配方案,执行资源分配,建立卷级的地址映射;(3)通过iscsi协议和客户端通信,执行对应的读写操作,完成数据通信。存储池的特征信息是全局调度的基础,是元数据服务器进行系统管理的基本依据。元数据服务器不会和每一个具体的存储设备进行交互,所有的特征信息都由目标器来收集。对于每一个存储设备,有一个统一的数据结构来记录它的特征信息,目标器将所有的信息收集之后组织成一个链表,并附加一些额外信息,然后主动发送给元数据服务器。元数据服务器只计算出合理的分配方案,实际地执行由目标器来完成。首先,目标器根据分配方案,在对应的存储设备上建立一定大小的文件。接着,目标器将每一个文件映射成一个物理卷(physical volume,pv),并给它一个全局唯一的物理卷号(physical volume number,pvn)。然后,目标器将一个或者多个物理卷映射成为一个虚拟卷(virtual volume,vv),并给它一个全局唯一的虚拟卷号(virtual volume number,vvn)。这个虚拟卷就是分配方案的最终形式。最后,目标器把vv到pv的地址映射表发送给元数据服务器。图3.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国钢结构建筑施工安全与质量管理体系构建
- 湖北省孝感孝昌县联考2026届物理八年级第一学期期末统考模拟试题含解析
- 广东省深圳市深圳外国语2026届八年级物理第一学期期末质量检测试题含解析
- 宁夏大附中2026届八年级物理第一学期期末联考模拟试题含解析
- 四川省乐至县联考2026届物理八上期末质量检测模拟试题含解析
- 2026届山东省德州市庆云县物理八上期末联考模拟试题含解析
- 2026届江苏省淮安市淮安区八年级物理第一学期期末复习检测试题含解析
- 2026届河南省郑州市第十七中学物理八年级第一学期期末达标检测模拟试题含解析
- 宠物行为训练行业宠物训练师职业技能培训报告
- 桥梁检测2025年技术创新对行业成本影响分析报告
- 光伏支架生产工艺流程
- 钢结构雨棚作业安全技术交底
- 《旅游学概论》课件-《旅游学概论》 第一章 旅游的产生与发展
- 电力隐患培训课件
- 女性私密项目培训
- 2025年《审计理论与实务(中级)》考前几页纸
- 北京高考英语一轮专项复习:词汇-高频短语(含解析)
- 砂石采购合同范本
- 幼儿园课程实施方案
- 学校食堂操作流程培训
- 2025年四川省水电投资经营集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论