天天看点

《大数据管理概论》一3.2 大数据存储与管理方法

闪存、pcm等新型存储介质的引入使得大数据存储架构有了多种选择。但由于新型存储介质在价格、寿命等方面与传统的磁盘相比不具优势,因此目前主流的观点是在大数据存储系统中同时使用新型存储介质和传统存储介质,由此产生了多种基于新型存储的大数据存储架构,如基于pcm的主存架构、基于闪存的主存扩展架构、基于多存储介质的分层存储架构等。

由于pcm存储密度高、容量大、耗电低,而且访问速度接近内存,因此工业界和学术界都开展了将pcm作为主存系统的研究。与闪存相比,pcm存取延迟更短,而且可以直接按位存取,因此能够被cpu直接存取,更适合作为dram的扩展。与dram相比,pcm具有非易失性特点,因此适合存储文件等静态数据。

在利用pcm替代dram方面,目前的研究重点主要集中在利用dram减少对pcm的写操作以及负载均衡等项目。对于利用dram来减少对pcm写操作的方法,研究者往往借助dram缓存来延迟对pcm的写操作从而达到减少pcm写次数的目的[42]。负载均衡思想是通过增加一层地址映射,将pcm的写操作均匀地分配给所有的存储单元,以尽可能地达到pcm的最大使用寿命。

在针对大数据存储的集群架构中,负载均衡主要通过适合pcm的数据划分算法实现。pcm作为主存系统的思想对于大数据管理与分析有着重要的意义。虽然大数据应用中涉及的原始数据量非常大,但真正有价值的数据以及应用每次需要存取的数据量仍是有限的,因此我们可以利用pcm的高性能、非易失、按位存取等特性,将应用需要实时存取的高价值数据存储在pcm中,将pcm与dram混合形成高性能数据处理系统,同时将大规模的原始数据存储在磁盘和ssd中。因此,将pcm引入目前的存储架构中将有望解决大数据管理与分析中的性能问题。

与pcm相比,目前闪存的应用更为广泛。高速大容量ssd设备的不断出现,使得ssd在存储架构中的地位也得以提升。在大数据管理方面,目前ssd的存储容量还达不到大数据的pb级别存储需求,因此近年来主要的工作集中在利用高端ssd进行主存扩展的研究上。

普林斯顿大学的研究人员提出了一种利用ssd进行内存扩展的主存管理系统——ssdalloc。ssdalloc在存储体系中将ssd提升到一个更高的层次,它把ssd当作一个更大、稍慢的dram而不是将它当作磁盘的缓存。为了提高数据库系统的整体性能,研究者以nosql数据库系统redis为基础平台,用ssd代替磁盘作为虚拟内存中的交换设备,扩大虚拟内存的同时帮助nosql数据库减少数据读延迟。考虑到当将ssd作为虚拟交换设备时,页面交换的代价依然较大,一种基于dram与ssd的混合主存架构被设计出来,其将ssd作为主存,将dram作为ssd的高速缓冲,并将这种混合主存结构融入memcached,大幅提升了memcached性能。

基于不同存储介质的分层存储架构目前主要集中在dram、闪存、磁盘的混合存储上。一种观点是将闪存作为内存与磁盘之间的缓存。例如,flashcache[43]是facebook为innodb设计的块缓存应用,它将闪存划分为一个逻辑集合,基于组相联映射的思想将磁盘上的块数据映射到闪存中。当i/o请求到达时,flashcache会先在闪存中查找该数据是否已被缓存,如果有则直接进行读操作,否则访问磁盘。将闪存作为dram与磁盘之间的缓存进行数据预取[44]或者预写[45,46],可以充分发挥闪存读性能好的优点,减少对磁盘的写操作,同时减少系统能耗。另一种观点是将闪存与磁盘一样作为二级存储介质,手动或者自动地将不同类别的数据分配到闪存或磁盘上[47]。由于不同的存储分配策略以及存储介质组合方式对于此类系统的性能有着决定性影响。

在存储分配方面,已有研究倾向于根据i/o特性和数据的“冷热”程度来进行存储分配,将读倾向负载的数据或者热点数据存放在ssd上,而写倾向负载或非热点数据等则存放在磁盘上。ibm在其企业级存储设备ds8000上增加了easytier自动封存存储功能[48],将较大的逻辑卷进行划分,并对划分后的子卷进行热度检测,如果是热点卷,就将其迁移到ssd上,同时把ssd的非热点卷迁移到磁盘上。

此外,面向分层存储的存储分配方法还应用在大数据文件系统的元数据管理上。在面向大数据管理的分布式文件系统中,利用分层系统存储分配的思想进行元数据管理,可以提升元数据存取性能。其基本思路是采用在元数据服务器上使用ssd作为存储设备的方法来加速文件系统。

在存储介质用量组合方面,基本思想是将有限的闪存存储资源在复杂的工作负载下进行有效分配,在减少成本的同时满足系统的性能要求。在大数据环境中,存储介质用量组合研究需要考虑复杂的数据负载、系统的可靠性、能耗等多个方面的因素。

google设计了一款基于colossus文件系统的闪存分配推荐系统——janus[49]。他们通过实验发现大数据存储中i/o访问主要集中于新建文件,故此系统将新建文件存储在闪存层,然后使用fifo或者lru算法将文件迁移到磁盘进行存储,他们还设计了缓存性评估方程、经济性评估方程来评估不同的负载需求,进而进行闪存用量推荐。其实验结果表明,经过janus的优化,闪存层存储了1%的数据,服务了28%的读操作,显著提高了系统的读性能。

由于目前闪存、pcm等新型存储介质与dram、磁盘等传统存储介质处于共存的局面,预计在较长的时间内新型存储介质将与传统介质同时出现在存储系统中。尤其对于大数据存储环境,其数据的使用频率、规模等都不允许将所有数据都统一存储在集中式的存储设备上,因此基于分层存储的多介质混合存储技术将越来越受到研究者们的重视。但由于多种存储介质的分层存储存在着多种组合方式,哪种混合存储策略适合大数据应用、在多介质混合存储系统中如何有效地实现数据分配与迁移等仍有待进一步探索。

目前,基于分布式观点的数据管理是大数据存储与管理研究中的一个热点。一种观点是将闪存应用于分布式文件系统中进行元数据存储。元数据对于整个大数据管理系统的性能起着决定性作用,对于大数据解析、大数据统计、大数据操作优化等有着重要作用。基于闪存的分布式文件系统元数据管理的基本思路是在元数据服务器上使用ssd作为存储设备来加速文件系统。例如,在lustre分布式文件系统架构中的元数据服务器(metadata server,mds)上使用闪存作为存储介质,加速元数据的读写速度[50]。此外,基于memcached的内存分布式缓存技术也被广泛用来加速大规模数据的访问,而在更为复杂的大数据环境下,其局限性主要体现在:一方面内存分布式缓存受限于集群内存容量,只能服务容量较小的热点数据,会造成性能下降;另一方面,如果采取扩大集群内存容量来满足更多数据缓存需求的话,会带来高额的成本和巨大的能耗。现阶段解决方法是将小容量、高i/o负载的缓存处理与大容量、中低等i/o负载的缓存处理分离,形成“热缓存”与“冷缓存”的缓存策略,其中在“冷缓存”方面主要采用了闪存技术。例如,facebook设计了基于闪存的mcdipper键-值存储系统[51],代替memcached为大量访问频率较低的图片提供缓存服务,降低成本和能耗,为了减少闪存i/o延迟,将闪存层分成两个区域,一个区域存放数据,另一个区域配置了“散列桶”存放键值数据的指针,并将“散列桶”元数据放入了内存。

继续阅读