文献综述Word文档下载推荐.docx

上传人:b****6 文档编号:16931880 上传时间:2022-11-27 格式:DOCX 页数:16 大小:196.46KB
下载 相关 举报
文献综述Word文档下载推荐.docx_第1页
第1页 / 共16页
文献综述Word文档下载推荐.docx_第2页
第2页 / 共16页
文献综述Word文档下载推荐.docx_第3页
第3页 / 共16页
文献综述Word文档下载推荐.docx_第4页
第4页 / 共16页
文献综述Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

文献综述Word文档下载推荐.docx

《文献综述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《文献综述Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

文献综述Word文档下载推荐.docx

计算机学院刘鹏M201172440

1.前言

现代存储系统不断发展,存储设备的容量不断增加,性能不断提升,然而存储系统的能耗问题成为了影响存储系统运行的一个尤为突出的问题。

如何在保证系统性能的前提下尽可能的减少能耗成为了存储系统研究的一个很重要的方向,本文主要针对近几年的研究成果做一个总结,选取了几个较为经典的解决方案进行分析归纳,然后针对每一个解决方案进行评价,给出其优缺点,然后提出自己的一些看法。

2.实现方法

2.1几种实现方法简介

2.1.1WriteOff-Loading(写重定向)

即写卸载(个人觉得翻译为“写重定向”更好一点,所以接下来的叙述中就翻译为“写重定向”了),直观上理解,写重定向就是临时的将一些对某些设备[设备1]的数据块写请求重定向到数据中心的其他设备[设备2或3或4等等]上,这样就可以将设备1停止,进而减少能耗,而这些重定向是暂时的,一旦设备1由于某种原因(比如出现对设备1上重定向以前的数据的读请求)重新启动以后,那些重定向的数据又会写会设备1。

传统的观点认为数据中心中设备的空闲时间是很短的,如果在这很短的时间内将设备关停以减少能耗是很没有效率的,因为重启这些设备会需要更好的能耗,然而该文作者通过对数据中心的36个卷的运行记录进行分析发现,数据中心中由于运行特定工作负载的原因,某些设备的空闲时间是很长的,并且采用写重定向方法能够将这些空闲时间进一步延长,进而将某些设备在空闲时间段进行关停会很好的减少能耗。

进行写重定向面临的一个最大的问题就是如何保证数据的一致性,写重定向中我们将原本应该写入设备1的数据块分散的写到了其他设备中去,如果其他设备因为某种原因出现故障,如何保证设备1中的数据块是最新的呢?

这个问题我们在该方法的具体实现中给出解决方案。

2.1.2SRCMap(样本复制合并映射)

全称是“sample-replicate-consolidatemapping”,可以翻译为“样本复制合并映射”,为了方便,下面叙述中就直接称SRCMap。

SRCMap是一种存储虚拟层的优化方案,它通过将正在运行工作负载合并到一部分物理卷上,来达到能量均衡的目的。

具体实现是这样的,SRCMap将每一个卷上的经常使用的部分(往往只占总负载的一部分)进行取样,然后复制他们到其他的一些物理磁盘上去,这样在运行特定的工作负载的时候,可以只启动很少的物理磁盘(A)就能够满足需求,这样就可以停止其他的物理磁盘(B,C等),将对这些物理磁盘(B,C等)的访问定向到物理磁盘(A)上面去,进而减少能耗。

2.1.3EDT(基于区间的动态分层)

全称是“ExtentBasedDynamicTiering”,即“基于区间的动态分层”,下面简称为EDT。

企业存储系统都追求在尽可能少的花费下配置出性能尽可能高和稳定的存储系统,由多种类型不同,性能各异的磁盘设备(SSD,SAS,SATA等)可以组成一种多层次的存储系统,这种存储系统一方面可以利用SSD的高的随机I/O性能,另一方面有能够利用SAS的顺序存取能力和SATA的价格优势,多层系统虽然存在,但是随着工作量的增加,设备种类就会有各种各样的,最优化的配置往往很难给出;

另一方面如何在系统的运行中减少运营成本也是困扰用户的问题,

为此提出了一种基于区间的动态分层技术(EDT)。

EDT主要包括两个部分EDT-CA和EDT-DTM。

EDT-CA主要用于使用最小的代价配置系统。

EDT-DTM主要用于在系统运行中减少运营成本

2.2几种实现方法的设计灵感来源

2.2.1WriteOff-Loading(写重定向)

传统观点认为一般来说设备空闲时间太短,在这很短的时间内将设备关停实现能耗减少效果是很差的,然而由于不同的企业工作负载的不同的,由于工作负载的差异性,数据中心某些设备的空闲时间有可能会很长,下面给出作者的具体记录分析。

作者记录分析了一个包含36个卷(包括了179个磁盘,分布在13个服务器上)的数据中心,记录了一周的运行情况。

Figure1(a)和(b)分别表示在平均和峰值情况下的请求率(请求数/秒),通过分析发现,不同的卷的工作负载类型是不同的,有些卷(usr、proj、prxy、src1)是读占主要型的,有些卷(rsrch、wdev)是写占主要型的。

总体来说,工作负载以读为主,读对写的比率为2.17。

然而在36个卷中有19个卷的读对写的比率低于1,对于这些卷,平均读对写的比率只有0.18。

通过Figure2,我们可以发现写负载对卷的空闲时间有很大的影响,比如,在卷数目为18时,将写负载从整体负载中去掉,将使得卷的活跃时间由80%下降到14%。

Figure3的记录也可以进一步证实这个分析结果。

由此我们设想,既然每个数据中心的具体工作负载是不同的,而具体一个数据中心的有很大比例的负载将是写主导型,如果将写进行重定向将会将部分卷的空闲时间进一步延长,进而使得这些卷的停止运行时间增加,进而达到降低能耗的作用,基于此提出了WriteOff-Loading解决方案,并给出具体的实现方法。

2.2.2SRCMap(样本复制合并映射)

作者利用三个系统进行观测分析,以寻求I/O请求中有助于帮助建立能量均衡存储系统的特点与规律,三个系统分别运行了三周,得出的记录一如右图所示,观察发现一周的运行中所涉及的卷仅占很小一部分(1.5-6.5%),这就得出了第一个结论:

一个存储系统中的动态数据集往往只占整个系统的很小的一部分。

记录二如右图所示,通过观察每一个系统的工作负载可以发现,最大的工作负荷与最小的工作负荷最大可以差距5-6个数量级,这就得出了第二个结论:

存储系统中的I/O负荷在不同时间段会有很大的变化。

记录三如右图所示,采用了三种方案来记录重叠率(i:

工作集仅包括命中的;

ii:

工作集包括命中的和所有的写;

iii:

工作集包括命中的和所有的写以及读缺失),观察发现,工作集中的命中率会随着时间逐渐增加。

这就得出了第三个结论:

当数据集中包括了最近经常使用的数据后,接下来的数据访问99%的都会是访问这些数据集,体现了数据访问的局部性。

记录四如右图所示,通过观察发现三个系统的读空闲时间(相邻两个读的时间差)分布,可以看到homes和mail系统工作负载的读空闲时间大部分都小于或等于2分钟,web-vm大部分都小于或等于5分钟。

由此可以得出第四条结论:

存储系统的读空闲时间大部分都小于或等于5分钟。

前三个结论是是取样、复制、合并的三大支柱,我们在每一个卷的工作区进行取样,复制这些样本到其他卷上,进而将I/O负载合并到尽可能少的卷上去。

然而从第四个结论如果想要扩大读空闲时间,就要采用新技术(利用读空闲时间进行设备停止的方法可行度很低,因为读空闲时间很短),进一步扩大平均读空闲时间。

2.2.3EDT(基于区间的动态分层)

企业存储系统追求低成本,高性能,利用多层次的存储系统能够充分利用现有各种存储设备的性能和价格优势,虽然许多公司已经做出了类似的产品,然而客户的采用度并不高,这其中一个最主要的原因就是这些产品并不是根据每个用户需求而做改变,这样面对客户各种各样的工作负载情况,适应性很差。

然而多层存储系统确实又有各个方面的优势,所以能否有一种解决方案,一方面可以帮助使用最小代价建立系统;

另一方面又能够能够自动最优化数据布局,以减少运营开销。

这就是我们设计EDT解决方案的最根本目标。

2.3几种实现方法的设计原理与具体实现

2.3.1WriteOff-Loading(写重定向)

写重定向的具体目标就是在写主导型负载的时间段,将设备停止,然后将对该设备的写请求重定向到其他设备,在读主导型负载到来时候,重启设备,恢复到正常运行状态。

写重定向中主要包括两个重要的部分:

manager(管理器)和logger(记录器)。

记录器,是用来暂存重定向的数据块的部件,分布于每个卷的尾部,占用很小的一部分空间,它主要有四个功能:

写入、读取、声明作废、恢复。

写入功能是用于将重定向的数据和元数据写到记录器中区,元数据包括源管理器的特性,数据占用的逻辑块号,数据版本号。

读取功能用于返回最新版本的数据块。

声明作废功能用于声明一些数据集不再使用,为了保持一致性,声明作废请求中要明确包含版本信息,记录器将相应的版本的数据块声明为无效的,记录器会在稍后回收这些声明为无效的数据块和元数据所占用的空间。

恢复是将所有的数据都写回到之前停止的设备中去。

在实现中,关于重定向的数据块的元数据(包含数据块的版本号,具体位置)会存储在主存中,以方便相应的管理器应用。

在应用中采用一个卷可以使用多个manager和logger,一般为了方便起见,一个卷中采用一个manager和一个logger。

管理器,每个卷都有一个专用的管理器,独立于卷,它管理的卷称作母卷,它主要用于决定何时启动或停止设备,何时并且向何处重定向数据块,同时还负责在设备启动

时恢复重定向的数据。

要实现这些功能,管理器维护了一个如Figure4所示的数据结构,loggerview记录了管理器进行数据块重定向操作的记录器;

redirectCAche记录了重定向的每一个记录器的具体ID和其中的数据块的版本号以及占用的逻辑地址;

garbageCAche则存储了一些老版本的数据块,一旦管理器向记录器发送失效请求后,记录器接收到这些请求后就将这些老版本的数据块删除掉。

管理器不断更新记录针对母卷的最近一次的读写请求时间,当时间超过一个给定的临界值时,管理器就将该卷停止;

当出现针对其母卷的重定向以前的数据的读请求或者重定向的数据超过一定的数量后,管理器就将改卷启动。

在每一次停止母卷之前要保证管理器的loggerview中至少存在一个不存在于该卷上的logger所存在的卷处于运行状态,这样才能够保证下一个对该卷的写操作能够重定向。

写重定向中管理器的主要功能有:

(1)管理器监测每一个针对其母卷的读写操作。

(2)对于一个读操作请求,首先检查管理器的rediectCAche中是否存在读操作要求的数据块(运用地址匹配),如果存在,则定向到相应的logger读出数据块,操作完毕;

如果不存在,则直接从母卷中读出数据块(如果母卷处于停止状态,则启动母卷)。

包含对多个数据块的读请求将会分割成多个只包含一个数据块的读请求。

(3)对于一个写操作请求,如果母卷处在运行状态,则直接写入数据,操作完毕;

如果母卷处于停止状态,则将请求重定向到一个记录器中去,如果记录器中已有之前写入的数据块,则写入依旧进行,以保证新版本的数据被记录为最新的数据。

重定向一个写请求,管理器首先向loggerview中的所有logger发送子网广播,每个logger收到广播信息以后回应信息(包括logger所在卷的能耗,队列长度,可用空间等等),管理器接收到回应信息后根据信息进行排列,得出最优的logger,然后将数据块写到该logger,当被确认写入后,管理器则更新redirectCAche,将老版本的数据块信息放入garbageCAche中。

(4)当一个管理器的母卷启动后,管理器会将所有的重定向的数据写回到母卷中,当写回后,管理器会向相应logger发送一个声明作废请求。

写重定向故障恢复,一般来说设备A的管理器会将对其母卷的写请求数据块存储到设备B上去,如果设备B发生故障,那么A上的重定向数据将变得不可用,针对这种情况,可以采用将写请求数据放到多个(k个)logger上,这样最大就可以容忍k-1个设备故障。

存储系统一般都期望能够提供一致性和耐久性,写重定向能够保证一致性和耐久性,其中针对耐久性:

只有在数据和元数据都被可靠的写入后才回应写请求完成,而不采用回写缓冲方案。

针对一致性:

每次写入数据的部分可能会有重叠,如Figure5所示,这样最新的数据将会以最新的版本号对应的数据为准,即以最下面一行的数据为最新数据。

2.3.2SRCMap(样本复制合并映射)

SRCMap中涉及很多新名词,基本原则还有各个算法,各个部分组成及相应功能,这里将分开进行介绍。

(1)基本原则

运用在数据中心的存储虚拟化管理器在不同的存储器之间提供了统一的借口,进而简化了存储器管理。

它们导出一个存储控制借口给用户用以创建虚拟磁盘(vdisk),而具体的物理盘(mdisk)的管理则由物理磁盘控制器管理,存储虚拟化管理器的一个重要特性就是能够将mdisk分配给vdisk使用。

存储器合并原则是运行那些最高效的mdisk去满足总的工作负载需求,那些要停止的mdisk在停止之前先将数据(总数据中经常用到的那部分)复制到那些运行的mdisk上去。

其中有几个原则:

复制数据的多目标存放原则,在SRCMap中,首先为每一个vdisk创建一个主体mdisk,该mdisk上存放有vdisk的所有数据。

然后在为每一个vdisk创建多个目标mdisk,这些mdisk上仅存放有vdisk上的部分数据(经常使用的)。

这样在总工作负载很高的时候,每个vdisk将映射到它们的主体mdisk上,所有的mdisk都处于运行状态,在工作负载很低的时候,就可以运行部分mdisk就能满足对所有vdisk的工作负载要求。

取样原则,由于空间限制,为每个vdisk创建多个全副本是不切实际的,SRCMap采用仅对每个vdisk的部分数据(经常使用)进行复制。

数据副本的有序分布原则,在SRCMap中,每个数据副本的创建并不是相等的,如果可能SRCMap会选择创建尽可能少的数据副本以满足总负载需求,因此合理的数据副本分布将会对减少需要运行的磁盘数有很大的益处。

动态的源与目标映射和双数据同步原理,通过观察可以发现工作负载在一段时间内的变化是很大的,因此提前选择要运行与停止运行的磁盘是不可能的,因此那些停止运行的磁盘的数据副本的放置的目标mdisk将会是动态选取的。

作者采用两种截然不同的机制来更新数据副本中所包含的数据,位于数据通路中的数据(首选的数据副本所在位置)一旦产生读缺失,将会立即和主体mdisk进行同步,这样可以保证该位置的数据副本将会是一直可用的;

位于其他位置(作为备用的数据副本的所在位置)的数据将采用一种缓慢的增量数据同步方式,这样可以保证一旦该位置的数据副本被用到,只会带来最小的数据复制。

磁盘状态的保持原则,不同于现存其他解决方案中采用的磁盘状态的短时间维持原则,SRCMap采用一种状态长时间保持原则,进而减少磁盘重启次数,这样可以延长磁盘寿命。

(2)两大算法

数据副本分布算法

该算法的最终目的就是保证当动态磁盘管理器打算关停一个vdisk的主体mdisk的时候,它至少能够找到一个运行中的mdisk,该mdisk中包含有前者的数据副本。

这里首先给出一个序列关系的定义:

对于两个vdiskVj和Vi,在任何时刻的运行磁盘鉴别中,如果Vi比Vj更需要一个数据副本的放置目标mdisk,那么Vi则比Vj更容易发现一个运行中的目标mdisk。

这个序列关系字面上理解起来有一定的难度,其实它的意思就是如果包含Vi的数据副本的很多mdisk都停止了,那么现在如果要保证总负载的正常运行,Vi就很需要一个目标mdisk来存放它的数据副本,这样在数据副本的分布算法中,我们就给Vi一个更大的发现目标mdisk的概率。

数据副本分布算法主要包含四个部分:

依据成本效益的权衡创建一个vdisk的初始序列、创建一个二分图来反映这种序列关系、反复的创建源-目标映射、不断校正边的权值来保证序列关系仍适用于下一次的迭代。

(i)初始化vdisk的顺序

对于每一个vdisk,我们用下面这个公式计算它对应的主体mdisk停止的概率:

其中wk是一个可调的系数,WSi是Vi工作集的大小,PPRi是Vi对应的主体mdisk的效益功率比,pi是Vi的长期的负载强度,mi是工作集Vi中的读缺失的数目。

各个下标为min的参数表示所有的vdisk中的最小值。

(ii)二分图的创建

二分图中每个vdisk作为源节点Vi,它的主体mdisk作为目标节点Mi,边的权重e(Vi,Mj)表示将Vi的一个数据副本放置到Mj上的成本效益比。

二分图中节点的放置依据Pi进行(Pi大的磁盘放置在顶点),初始化边的权重wi,j=Pi,刚开始的时候数据副本没有指定到任何一个目标mdisk上。

数据副本分布算法将通过下面两步进行迭代,直到目标mdisk上的所有副本放置空间都被分配给源vdisk数据副本为止,在每一次迭代中只有一个mdisk的副本放置空间被分配掉,这一点尤其注意。

(iii)源-目标映射

数据副本分布算法的最终目的就是得到一个符合序列关系的源-目标的映射表,为了实现这个目的,该算法首先选取副本放置空间仍然未分配的位置处于最上面的mdisk作为目标,然后选择入射边权重最大的几个源节点,这几个源节点的数据副本的和可以充满数据副本放置空间,(比如说在右图中,V1和V2的数据集被复制到M2的副本放置空间中),注意Mk中的副本放置空间中不会存放Vk中的数据集,因为Mk本身就是Vk的主体mdisk,已经包含了Vk的全副本。

当一个mdisk的副本放置空间已经被分配后将其标示为已分配。

我们可以发现在副本放置空间的分配中,Pi大的源节点的优先权比较高,每个边的权重在第一次分配后将会进行调整,参见iv步。

(iv)重新校正边的权值

我们发现,初始的分配能够保证序列关系,不过,一旦vdiskVi的工作集已经被复制到一系列的mdiskTi=M1,……Mleast,那么Vi在活动磁盘鉴别中需要新的目标mdisk的概率就是M1到Mleast都停止的概率。

因此为了保证序列关系,就要重新校正边的权值,Vi的主体mdiskSi被分配给目标mdiskTj的概率作为权值:

任意k,Wi,k=Pj*Pi

一旦边的权值得到重新计算,则重复步骤(iii)直到所有的副本放置空间都被分配为止。

这个从直观上理解可能有点困难,不过通过下面这个例子就很容易理解了,假定有四个vdisk(V1,V2,V3,V4)和它们对应的主体mdisk(M1,M2,M3,M4),每个主体mdisk的副本放置空间可以容纳2个(这个值可能因为vdisk的不同而不同,为了方便叙述,这里仅作假设)vdisk的数据(部分活跃的数据),那么对M1的副本放置空间进行分配时,V1不进行参与,然后按照边的权值(初始时刻等于概率大小),将V2和V3的数据副本分配到M1的副本放置空间中去,然后标识M1为已分配。

接着进行第一次边的权值校准步骤(iv),这时候V2->

M2:

P2*P1;

V3->

P3*P1;

V1->

P1;

V4->

P4;

然后重复步骤(iii),进行M2放置空间的分配,这时候分别比较上面计算得出的边的权值,然后按照从大到小的顺序进行分配,重复以上步骤,直到所有的mdisk的副本放置空间都分配为止。

活动磁盘鉴别方法

为了描述的方便,我们假定mdiskMi的概率等于相应的vdiskVi的概率,活动磁盘鉴别方法主要包括三个部分:

活动磁盘的选择、活动数据副本的鉴别、迭代。

(i)活动磁盘的选择

在选择活动磁盘之前首先要估计在下一个时间段的总的负载情况,这里利用在之前的一个时间段内对vdisk的访问情况对下一时间段的负载情况进行预测,然后根据这个负载决定启动最少为多少的mdisk就可以满足负载要求。

(ii)活动数据副本的鉴别

这一步骤就是在活动的mdisk上找到每个不活动(停止的)mdisk中需要被负载用到的活跃数据副本,这些数据副本现在存在于活动的mdisk上。

根据步骤(i),最终仅会启动部分磁盘就能满足要求,而停止那些概率Pi比较大的vdisk对应的主体mdisk,将它们的数据副本放置到其他的活跃磁盘上,这主要基于两个事实:

a、在数据副本分布算法中,概率大的vdisk的数据副本的创建数目多于概率小的vdisk的数据副本数目;

b、概率大的主体mdisk更有可能停止更长的时间。

因此为了保证概率小的不活动磁盘能够找到数据副本放置位置,概率大的不活动磁盘能尽快找到数据副本的放置位置,我们要求概率大的不活跃主体mdisk(A)尽可能的使用概率小的活跃mdisk(B)上存放的关于mdisk(A)的数据副本,概率小的不活跃主体mdisk(C)尽可能使用概率大的活跃mdisk(D)上的存放的mdisk(C)的数据副本。

该步骤有一个具体的实现方法,具体如下:

S=停止的磁盘集合

A=活跃的磁盘集合

将S按照概率Pi的逆序排序

将A按照概率Pi排序

For每一个Di属于S

For每一个Dj属于A

IFDj中包含有Di的一个数据副本RiAND

Dj拥有可以满足Ri访问要求的带宽

THENCAndidate(Di)=Dj,break

END-For

IFCAndidate(Di)==nullreturnFailure

对任意i,Di属于SreturnCAndidate(Di)

(iii)迭代

如果通过步骤(ii)找到了所有不活动(停止)磁盘的数据副本的放置位置,则算法停止,不然将活动磁盘的数目加1(启动一个不活动的磁盘),重复步骤(ii)。

(3)各个组成部分和具体工作流程

SRCMap采用模块化的方式实现,它的整体构架如下图所示:

其中虚线部分表示存储虚拟化管理器中已有的部分,实线表示SRCMap实现中新添加的部分。

下面先对每个组成部分进行简单的介绍,然后重点介绍其中涉及的A、B、C三个流,这三个流描述了整个SRCMap的工作流程。

组成部件

(a)loadmonitor

负载检测器,主要记录对vdisk的访问记录,这些记录会被副本分布控制器和活动磁盘管理器使用。

(b)replicaplacementcontroller

副本分布控制器,主要发起取样和复制操作,这里给出vdisk工作集的定义,工作集包括哪些在一段时间内被访问到的数据,超过这段时间,命中的数据几乎都出现在这些数据中。

工作集会被暂存在RDM上。

(c)activediskmanager

活动磁盘管理器,在SRCMap中发起合并操作,它首先将负载检测器中的负载强度作为输入,然后判断主体mdisk能否被关闭,通过检测它的工作集能够被复制到其他的mdisk的副本存放空间中。

在mdisk的工作集复制完成后,活动磁盘管理器负责同步mdisk和其他mdisk中的数据并且修改存储虚拟化管理器中的虚拟-物理的映射关系。

(d)consistencymanager

一致性管理器,主要被活动磁盘管理器使用用以维护数据的一致性。

(e)replicamanager

副本管理器,用以保证一个vdisk的数据副本能够模拟这个vdisk的工作集,当对一个vdisk的数据副本的访问产生数据副本缺失的时候,副本管理器就会从RDM中将数据块拷贝到活动磁盘的副本放置空间中去。

同时副本管理器利用LRU算法将旧的数据放弃。

如果工作负

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1