分布式内存文件系统的发展*
2017-11-30许春聪文海雄
许春聪,文海雄,刘 钊,郑 强,韩 鹏
(75837部队,广东 广州 510630)
分布式内存文件系统的发展*
许春聪,文海雄,刘 钊,郑 强,韩 鹏
(75837部队,广东 广州 510630)
随着动态随机存储器集成技术的快速发展,基于内存的数据存储已经成为缓解磁盘I/O性能瓶颈的重要方式之一。分布式内存文件系统适用于非结构化数据存储,具有文件语义,能够兼容传统应用。从缓解磁盘I/O性能瓶颈的角度入手,介绍了单机内存文件系统、并行内存文件系统和分布式内存文件系统的发展,提出了未来的主要研究方向。
分布式内存文件系统;吞吐量;访问延迟;负载平衡
随着系统规模的扩大和数据量的快速增长,随机I/O访问已经成为阻碍系统性能发挥的一个重要原因。Nils Nieuwejaar等人分析并行科学计算应用的访问特性,发现在MIMD并行计算机系统中存在大量随机I/O访问的情况[1]。Roselli等人分析多种负载的大文件访问类型,发现其随机访问的概率比以往的研究结果大得多[2]。实际上,文件系统元数据访问、Web服务、Mail服务等环境中也存在着大量的高并发随机I/O访问。受磁盘I/O的限制,随机I/O访问常常导致系统I/O过高,速度很慢,故障频发。
斯坦福大学的John Outerhout分析了基于硬盘的存储系统所面临的各种问题,指出磁盘I/O性能是制约系统的瓶颈,并提出了基于随机访问存储器构建高数据吞吐量和低访问延迟的内存云——RAMClouds[3]。采用分布式内存文件系统构建高数据吞吐量和低访问延迟的分布式计算和存储系统,是一种较好的解决方案。
1 分布式内存文件系统的概念
分布式文件系统(Distributed File System)作为云计算和云存储的核心技术,近年来,一直是分布式计算和数据存储领域的研究热点。分布式文件系统管理的物理存储资源分布在多个网络节点上,以实现数据共享和管理共享。与传统的基于磁盘的文件系统不同,分布式内存文件系统是指以动态随机存储器(DRAM)作为文件和元数据的存储介质,管理分布式环境下数据资源的文件系统。随着DRAM价格的降低,DRAM的性价比优势将不断提高,未来DRAM有可能成为基本的存储介质[4]。虽然非易失性随机存储器得到了长足的发展[5-8],但易失性DRAM仍在计算机系统中占有绝对主导的地位。为了使分析更具普适性,本文中所提到的内存均指易失性DRAM。
2 传统内存文件系统的发展
根据系统结构和工作方式的不同,传统内存文件系统分为单机内存文件系统、并行内存文件系统两类。单机内存文件系统只能在1台计算机上部署和运行,提供串行的文件访问服务。并行内存文件系统可以部署和运行于并行计算机上,提供并行的文件访问服务。
2.1 单机内存文件系统
单机内存文件系统已经得到比较广泛的应用,主要有RAM Disk、tmpfs[9]、Mfs[10]、Phoenix[11]、DMFS[12]、HeRMES[13]和Conquest[14]。根据其实现方式和作用,可以将单机内存文件系统分为以下3种:①直接利用易失性内存作为存储介质,用于存放临时文件;②采用后备电源的内存作为存储介质;③构建盘/存混合的存储系统[15]。
RAM Disk是将系统内存划出一部分空间当作硬盘使用,在使用之前需要创建文件系统。它是通过驱动程序来提供磁盘的访问接口,操作界面和使用方法与硬盘一样。RAM Disk一般用于存储临时文件,以减少磁盘的访问次数。因为RAM的易失特性,所以,如果系统掉电,其中的数据都将丢失。tmpfs和Mfs是基于虚拟内存的文件系统,它们能够使用已有的内核接口、系统资源和系统工具,能够根据数据量的大小动态地调整文件系统的占用空间,并能尽量减少对其他内存资源的影响。tmpfs和Mfs只需要简单地挂载就能够运行和使用,一般仅用于存放临时文件。
Phoenix是将SRAM组织成内存盘,并通过后备电源保证系统的可靠性。它维护2个带时间戳的内存文件系统,通过写时拷贝与垃圾回收技术来实现系统的回退功能,以保证数据的安全性。
陈锡明等为了缓解服务器的I/O瓶颈,研究并设计了基于内存的分布式文件服务器DMFS,以克服分布式文件服务器输入输出问题。它将需要提供服务的文件直接放在内存中,供分布式系统中的客户访问。文章对DMFS的组成和结构及其提供的服务等做了形式化描述,设计的DMFS能够提供文件的组织、存储、检索、命名、保护、对共享信息的管理、为用户提供透明的文件访问服务、目录服务、事务服务等。HeRMES和Conquest均是利用非易失性内存作为持久存储介质,研究和构建盘/存混合系统。HeRMES简化了文件系统元数据的结构,并将其存放在MRAM中,以提高访问性能。Conquest将文件系统元数据、小文件、可执行文件和共享库都放在非易失性内存中,减少磁盘的访问次数。
2.2 并行内存文件系统
并行内存文件系统的研究有2种思路和方法:①在内存中模拟现有的并行磁盘文件系统;②重新设计和构建并行内存文件系统[15]。
Network Ram Disk(NRD)[16]将Cluster中服务器节点的部分虚拟内存组成一个同构的内存空间。客户端通过NRD驱动程序所见的就是一个虚拟磁盘,其性能是磁盘的4~8倍。
杨学军等人在专著[15]中详细阐述了并行内存文件系统的概念、结构、组织方式和高可用技术,并设计了原型系统YH-MPFS。文中提出了并行内存文件系统的概念,并从应用需求、技术发展和解决途径3个方面阐述了设计并行内存文件系统的必要性。从应用需求看,小粒度、随机I/O访问模式并不少见;从技术发展因素看,内容的容量不断增大,价格持续下降;从解决途径看,磁盘文件Cache难以高效利用大量内存,移动数据频繁,需要维护数据一致性,可能导致伪共享和Cache污染问题。因此,采用内存文件系统方式来缓解I/O问题是一种比较好的方式。
文章研究了数据的物理组织方式,分析了基于复制的分布内存组织技术和类RAID的分布内存组织技术,提出了冗余内存阵列的概念。该方法是利用RAID技术将分布于各节点的可用内存组成冗余内存阵列,利用内存的分布性来提供并行I/O访问。文章还针对内容容量的异构型,研究了多种基于冗余内存阵列的构建方案和物理组织方式。
文章指出将传统文件系统逻辑组织技术直接用于并行内存文件系统会存在诸多不足,所以,针对内存特性提出了按数据对象组织的文件模型,并阐述了该文件模型的元数据组织、用户访问接口和处理流程。
文章还分析了并行内存系统的高可用问题,提出了高可用技术框架,重点研究了基于备份/回复和基于检查点/重启的高可用技术,最后简要介绍了原型系统YH-MPFS。
3 分布式内存文件系统的特点
在Web 2.0飞速发展的背景下,系统必须能够存储海量数据,并具有低延迟和高吞吐量的性能。虽然传统的关系型数据库功能强大,但其可扩展性差;而现有的key-value数据库,虽然可扩展性强,但性能仍然不能满足要求。这主要是由于系统性能受到磁盘I/O性能的制约。
分布式内存文件系统部署和运行于分布式环境中,能够满足高速读写的访问服务。为了解决磁盘I/O问题,John Outerhout提出了基于DRAM的云存储——RAMClouds[3]。它将数据完全存储于DRAM中,其目标是提供优于基于硬盘存储100~1 000倍的数据吞吐量和100~1 000倍的访问延迟。文章认为,以DRAM作为存储介质后,应从根本上改进现有的数据存储模式,必须重新考虑以下问题。
3.1 网络延迟
目前,典型的网络延迟为300~500 us,网络延迟将成为制约系统性能发挥的瓶颈。因此,需要重新设计交换机,尽量减少软件中断和数据转发次数,并使用UDP进行网络通信。
3.2 数据可靠性
DRAM是易失性存储介质,必须重新设计副本策略来保证数据的安全性,RAMClouds提出并发写数据备份策略。
3.3 数据模型
在实际工作中,必须重新设计基本数据模型,重新设计基本数据聚合成高级数据结构的方法,并设定不同的数据模型如何定位和使用。
3.4 数据分布和系统的可扩展性
RAMClouds必须实现节点的自组织与自配置,具有高效的数据分配额算法和负载平衡技术。
3.5 并发控制与一致性
因为RAMClouds速度快,所以,冲突概率小,一致性更高。因此,可以考虑放弃比较严格的ACID[17]策略,以实现高可扩展和高并发。
3.6 区分服务
RAMClouds必须能够为不同用户提供不同等级的存储容量、网络带宽和优先级服务。
3.7 客户端/服务器的功能划分
在设计RAMClouds时,必须划分好客户端和服务器各自的功能。这就需要考虑缓存、故障恢复、访问控制等。
3.8 自管理
RAMClouds必须能够实现自动管理,自行监控系统的运行状态。RAMClouds基于的集群包含了40个节点,每一个数据节点均构建于常用硬件之上,配有CPU、磁盘和24~32 GB的RAM。RAMClouds的目标是提供一种持久化和高可用的存储方案。
4 结论
分布式内存文件系统具有高数据吞吐量、低访问延迟和文件语义等优势,是解决磁盘I/O问题的可行方式之一。未来,分布式内存文件系统需要根据负载的类型选择合适的数据组织结构,需要基于空间局部性和资源利用率实现负载平衡,并保证系统和数据的可用性,以适应不同应用环境的性能需求。
[1]Nieuwejaar N,Kotz D,Purakayastha A,et al.File-Access Characteristics of Parallel Scientific Workloads[J].IEEE Transactions on Parallel and Distributed Systems,1996,7(10):1075-1089.
[2]Roselli D,Lorch J R,Anderson T E.A Comparison of File System Workloads[C]//Proceedings of 2000 USENIХ Annual Technical Conference.Monterey,San Diego,California,2000:18-23.
[3]Outerhout J,Agrawal P,Erickson D,et al.The Case for RAMClouds:Scalable High-Performance Storage Entirely in DRAM[J].Operating Systems Review,2009,43(4):92-105.
[4]许春聪,黄小猛,吴诺,等.分布式存储系统性能评测与性价比分析[J].计算机学报,2010,33(10):1873-1880.
[5]WANG AA,REIHER P,POPEK G J.Conquest:Better Performance Through a Disk/Persistent-RAM Hybrid File System[C]//Proceedings of 2002 USENIХ Annual Technical Conference.Monterey,2002:15-18.
[6]Daughton J.Magnetoresistive Random Access Memory(MRAM)[EB/OL].2000.http://www.nve.com/otherbiz/mram.pdf.
[7]Micron DRAM Product Information[EB/OL].2002.http://www.micron.com (under DRAM and data sheets).
[8]Kryder M H,Kim C S.After Hard Drives——What Comes Next?[J].IEEE Transactions on Magnetics, 2009,45(10):3406-3413.
[9]Snyder P.tmpfs:A virtual memory file system[C]//Proceedings of the Autumn 1990 European UNIХ Users’Group Conference.Nice,France,1990:241-248.
[10]McKusick M K,Karels M J,Bostic K.A Pageable Memory Based Filesystem[C]//Proceedings of the Summer 1990 Usenix Technical Conference.Anaheim California:UsenixAssociation,1990.
[11]Gait J.Phoenix:A Safe In-Memory File System[J].Communication of theACM,1990,33(1):81-86.
[12]陈锡明,卢显良,宋杰.分布式内存文件服务器(DMFS)的研究和设计[J].小型微型计算机系统,2000,21(1):60-63.
[13]Miller E L,Brandt S A,Long D D E.HeRMES:High-Performance Reliable MRAM-Enabled Storage[G]//Proceedings of the 8th IEEE Workshop on Hot Topics in Operating Systems(HOTOS-VIII).Schloss Elmau,Germany,2001:83-87.
[14]WangAI,Reiher Peter L,Popek G J,et al.Conquest:BetterPerformance through a Disk/Persistent-RAM Hybrid File System[C]//Proceedings of the 2002 USENIХ Annual Technical Conference.Monterey,2002:15-28.
[15]杨学军,王磊,蒋艳凰.并行内存文件系统[M].长沙:国防科技大学出版社,2005.
[16]Flouris M,Markatos E P.The Network RamDisk:Using remote memory on heterogeneous NOWs[J].Cluster Computing,1999,2(4):281-293.
[17]Gilbert S,Lynch N.Brewer’s conjecture and the feasibility of consistent,available, partition-tolerant Web services[J].ACM SIGACT News,2002,33(2):51-59.
许春聪(1980—),男,主要研究领域为云计算、分布式文件系统。文海雄(1976—),男,主要研究领域为数据管理、信息服务。刘钊(1983—),男,主要研究领域为分布式系统、网络安全。郑强(1986—),男,主要研究领域为并行分布式处理、模式识别。韩鹏(1985—),男,主要研究领域为数据挖掘、算法。
〔编辑:白洁〕
TP301
A
10.15913/j.cnki.kjycx.2017.24.031
2095-6835(2017)24-0031-03
本论文受军队某重大科研项目支持