APP下载

一种新型森林监测云平台文件系统的研究

2014-08-23赵树林

森林工程 2014年4期
关键词:客户端可靠性服务器

王 健,崔 永,赵树林

(东北林业大学 信息与计算机工程学院,哈尔滨 150040)

随着信息化在林业方面的推进,我国林业信息化建设取得了长足的进步。但面对全国范围内的森林监测所产生的海量数据,以及越来越多的监测节点和整个监测系统的日趋复杂化我国林业信息监测面临如下几个典型问题:

(1)系统维护难度大。其中包括,负载均衡能力差、容错能力低和故障自动恢复能力弱等。

(2)各级森林监测信息系统管理分散,导致计算资源利用不均衡,这就需要对松散的系统进行有效的整合,从而实现监测数据的共享和资源的优化配置。

(3)森林监测应用系统建设初期购置或更新的软硬件基础设施资源投入高,投资回报率低、信息资源利用率低,如果建设新的森林监测云平台面临着淘汰,并且购入新的设备对业务部门的资金消耗较大。

(4)海量的森林监测数据的高效存储和管理模式优化的问题。自建国以来,我国在森林监测方面积累了丰富和宝贵的数据,并且这些数据正在每天以惊人的速度在增长。现有的森林监测数据存储平台无法满足现代化林业数据存储的需求。

因此,针对以上问题,有必要搭建一种新型的森林数据信息云存储平台,为森林监测中产生的海量数据提供高效、可靠的存储服务。

1 主流分布式系统的优缺点

当前,主流的分布式系统有Lustre[1]、MFS、NFS[2]、AFS、Gluster、hadoop等。这些文件系统均有其特长和不足。如Lustre文件系统性能成熟、规模强大,但是安装复杂,且Lustre严重依赖内核,需要重新编译内核[2]。同时,Lustre不支持数据均衡,尤其当处理大量小文件时,元数据问题突出。MooseFS虽然实施简单,但存在单点故障和瓶颈;故障出现时,不能自动恢复,只能手动恢复。在扩展性方面,Moosefs虽然可以通过增加存储服务器,来提高容量和文件操作性能,但是由于不能增加MDS,因此元数据操作不能提高,这是整个系统的瓶颈。Ceph集群中多个MDS虽不存在单点故障和瓶颈问题,但目前尚不稳定,还在实验阶段,不适合生产环境。

没有缺点的文件系统是不存在的,但在众多的文件系统中,终究会有一种整体性能优良又能满足森林监测实际的需求。

经过长期实际操作和与其他分布式系统的对比,发现GlusterFS是一种能满足森林监测数据存储,综合性能优越的分布式文件系统。

2 Gluster系统

Gluster是近几年非常流行的一种分布式系统,其扩展能力超强,可存储海量数据。它在英特网上聚合多个存储块,或者是Infiniband RDMA在一个大的并行文件系统内相互连接。它主要由以太网、存储服务器和无线网构成,属于一种并行的文件存储系统。同时提供一个全局命名空间,可以把物理上分割的文件联系起来,使其在逻辑上成为统一的整体,这有利于文件的统一管理,另外文件系统中冗余机制的应用使其具有更好的安全性[4]。Gluster文件系统具有以下特征:

(1)可靠性高。

(2)弹性强,使用弹性哈希算法,不再使用元数据服务器;卷管理(可堆叠特征)方面更加灵活;可以弹性地增加、替换或转移存储块。

(3)扩展性强,横向扩展能力突出,可以扩展到数千节点,来存储海量数据。

(4)自动化高。应用特殊排序/负载均衡,使系统整体更加均衡;通过循环机制,自动调节为最小使用,实现非均匀的文件访问;可自动地实现文件响应、快照和恢复被删除文件。

(5)操作便捷。基于fuse的客户端,使其拥有完全一致的POSIX,以及统一标准的VFS;用户空间的应用使系统更易于安装、修改或故障排除。

Gluster 文件系统结构图如图1所示:

图1 Gluster文件系统构造图

3 Gluster文件系统的主要优异性能

Gluster文件系统中的优异性能主要表现在高可靠性(Reliability)、存储更具弹性(Elasticity)和横向扩展性(Linear Scale-Out)三个方面。

3.1 可靠性高

可靠性的高低是衡量一个系统是否成熟的重要指标。虽然Glusterfs的构建使用的是普通的服务器和廉价的存储设备,但其可靠性依然很高。GlusterFS的设计师们运用了多种技术来确保整个文件系统的高可用性。第一,它具备自我复制和自我修复的能力,一旦出现磁盘、硬件或网络的故障,以及操作不当造成的数据损毁,其都可自我修复,而无需人为干预;第二,最低层的EXT3/ZFS磁盘文件系统的日志功能也保证了其数据的可靠性;第三,无元数据服务器的独特设计有效避免了元数据的一致性维护;同时也提高了系统的性能和可靠性。

3.2 弹性存储

Gluster文件系统中的数据存储在逻辑卷中。而逻辑卷是通过虚拟化物理存储池并进行逻辑划分而得到的。在集群系统中,可根据需求实时地扩展或收缩数据存储以及添删存储池中的对象,而无需

中断集群系统运行。管理员动态地增删数据卷、扩展或缩减数据卷、增删存储服务器等,不会影响集群系统的正常运行和业务服务[5]。

弹性哈希算法的应用,有效提高了系统的弹性,当需要进行数据存储时,所有管理工作均无需中断服务。虚拟化存储技术和逻辑卷管理的应用,使其可以构建真正的云存储服务系统。

另外,GlusterFS 3.1.X及以后的版本中,为了减轻客户端的负担,优化卷的管理,逻辑卷的配置信息自动从glusterd弹性卷管理服务获取和更新。

3.3 线性横向扩展性强

在分布式存储系统中,随着系统规模的扩大,系统性能的提升呈Log对数曲线式的增长,而非直线式增长。其原因是规模扩展产生的负载影响了部分性能的提升。现在多数的分布式文件系统扩展能力都很强,例如luster,其规模可扩展至1 000个以上的存储节点和2 500个以上客户端。拥有如此强的扩展能力,但其依然不能实现真正的线性扩展。

分布式存储系统的扩展方式大致有横向和纵向两种。所谓的横向扩展,主要是通过增加存储节点的数量来提升整个存储系统的容量和性能,这种扩展能很大程度上解决系统容量小、性能低等问题。目前,横向扩展的方法在多数的分布式文件系统中应用。而纵向扩展却由于存在理论上和物理上的限制,在改善系统性能和提高单个节点存储容量方面表现不足。

GlusterFS的扩展方式属于线性的横向扩展。它可通过增加存储节点来提升系统性能和存储容量。通常,Glusterfs的横向和纵向扩展结合起来,可实现更优的扩展,这样的系统相比单向的扩展有更大的存储容量和更强的存储节点性能。横向和纵向扩展的结合使更多磁盘、内存、I/O资源聚集成容量更大、性能更优的虚拟存储池[8-9]。GlusterFS主要是通过消除元数据服务技术、高效的数据分布技术和并行化技术实现非严格的线性横向扩展。

4 实验操作过程

GlusterFS测试的主要包括:可靠性、单客户端R/W、多客户端测试、压力测试和元数据测试。

测试环境具体配置见表1、表2和表3:

表1 3个存储服务器端配置表

表2 8个客户端配置表

表3 网络连接数据表

软件版本:GlusterFS 3.3.1 fuse-2.9.0 测试工具:Iozone3_327 操作系统 CentOS 6.0

11月16日,由科技部基础司、成果与区域创新司、国家科技基础条件平台中心指导,贵州省科技厅、贵安新区管委会主办的第三届长江经济带科技资源共享论坛在贵安新区东盟国际会议中心举行,长江经济带沿线11省(市)及部分特邀省(市)科技部门、科研院所、高校和企业相关人员300余人参会。

系统组成图如图2所示。

图2 系统组成示意图

实验环境主要由3台存储服务器,6台客户端和一个交换机组成。在安装GlusterFS之前,必须先关闭selinux和iptables,以及设置所有节点的hosts文件。

4.1 GlusterFS的安装

由于GlusterFS的安装非常简单,在此仅大致叙述一下步骤。首先,下载源码,并在服务器和客户机上做相应配置。其次,应用tar命令解压压缩包,运用Linux命令,分别在server和client机上安装Gluster文件系统。再次,修改/etc/hosts文件,添加主机名及IP的对应关系。即完成GlusterFS的安装。

4.2 GlusterFS的配置

(1)首先确认server1、server2及serve3都启动glusterd,然后从server1上添加server2和server3到Tursted Storage Pool,命令如下:

# gluster peer probe server2

# gluster peer probe server3

# gluster peer status

(2)创建新卷。在server1上建立目录:

# mkdir /data01

# mkdir /data02

# mkdir /data08

同理,在server2和server3上依次建立目录Server2:/data05、Serser2:/data06、Server3:/data06。

(3)在server1上创建新的卷组。

# gluster volume create test-volume

Server1:/data01

Server1:/data02

Server1:/data08

Server2:/data05

Serser2:/data06

Server3:/data06

(4)创建分布式条带镜像卷。

# gluster volume create test-volume stripe 2 replica 2 transport tcp

Server1:/data01/udata

Server1:/data02/gdata01

Server1:/data08/udata

Server2:/data05/gdata01

Serser2:/data06/gdata01

Server2:/data05/udata

Server3:/data06/gdata01

(5)启动卷。

# gluster volume start test-volume

(6)客户端挂载(各client端)。加载fuse模块:

# modprobe fuse

# dmesg | grep-I fuse

(7)创建挂载点目录:

# mkdir /mnt/glusterfs

(8)挂载glusterfs 存储:

# mount-t glusterfs server1:/test-volume /mnt/glusterfs/.

(9)查看:#df-h

5 测 试

5.1 可靠性测试

可靠性测试中涉及到卷的存储容量的变化,因此在这里简要介绍一下卷的配置。创建Gluster分布式条带镜像卷的具体语句如下:

# gluster volume create test-volume stripe 2 replica 2 transport tcp

Server1:/data01/udata

Server1:/data02/gdata01

Server1:/data08/udata

Server2:/data05/gdata01

Serser2:/data06/gdata01

Server2:/data05/udata

Server3:/data06/gdata01

测试环境中卷的具体配置信息见表4。

表4 3种卷的配置信息表

分两种情况:

(1)在一段时间内,存储服务器或网络出现故障,稍后恢复正常;

(2)磁盘出现致命性损坏,且磁盘中所有数据永久性丢失。

在上面的两种背景下,不同类型的卷(分布式,条带式,镜像卷)运行操作(读,写)表现出不同的结果。

当存储服务器或网络出故障时,运行操作意味着另一个正在读或者写文件。

测试的具体结果见表5:

表5 可靠性测试实验结果表

此项实验说明,系统在出现单点故障(短暂或长时间),整个系统都能正常运行,由此验证了Gluster集群系统的高可靠性。

5.2 单客户端read/write测试

测试方法:先用1个线程在一个客户端写、读一个10G大小的文件;然后再用2个线程读同样大小的文件。测试结果如图3所示,具体语句如下:

语句: #./iozone -n 10g -g 16g -i 0 -i 1 -f /mnt/iozone -Rb ./iozone.xls

图3 单客户端测试图

由实验数据可看出,双线程较单线程,读的速率有很大提升,写性能有所下降。由此证明Gluster文件系统提高了读性能。

5.3 多客户端测试

多个客户端同时读或写多个不同的文件。

方法:12台客户机上每台同时运行20个进程,由MATLAB获得的仿真图如图4所示。

由图4可以看出图中曲线大致接近Log对数曲线,造成这种情况的原因是系统并行运行增加了整体负载,一定程度上消弱了性能的提升。此实验证实了横向扩展性,提升了系统性能。

图4 多客户端性能测试图

5.4 压力测试

测试方法:8个客户机8个线程从连接着12个SATA磁盘的2个服务器上连续读/写10 h,测试结果如图5所示。

用iozone 进行压力测试

# cd /test/

# iozone -t 250 -i 0 -r 512k -s 500M -+n -w

图5 压力测试实验图

通过实验图可以看出,系统整体的读速率平均为520M/s,写速率平均为580M/s,完全满足海量存储的需求,说明系统的耐压性很好。

5.5 元数据测试输入语句

# mpirun -n mdtest -d /data03/z -n 10000 -i 10 4tasks,40000 files/directories(10 iterations)

元数据测试结果如图6所示:

图6 多种文件系统元数据测试性能对比图

通过各个文件系统元数据测试对比图可以看出,和其它文件系统相比,Gluster文件系统在消除元数据方面表现尤为突出。证实了在无元数据设计上的优势。

6 结束语

通过以上实验,可以证实Gluster在可靠性、扩展性、弹性存储及消除元数据方面表现突出,体现了Gluster文件系统在海量存储方面的优势,基本满足森林监测中海量文件存储的要求,为构建森林监测云平台提供了一种新解决方法。

在实验过程中,Gluster除表现出优异性能外,也暴露了一些不足。首先,元数据服务器的缺少增加了客户端的负载,导致相当的CPU和内存被占用;其次,测试过程中,锁问题多次出现;最后,在遍历文件目录时,需要搜索所有的存储节点,实现较复杂和低效,不宜用较深的路径。

总之,Gluster是一种先进的文件系统,有优于其它文件系统的性能,也有需优化改进的地方;有深入学习、研究的价值。

【参 考 文 献】

[1]Wang F,Oral S,Shipman G,et al.Understanding lustre filesystem internals,ORNL/TM-2009 /117[R].National Center for Computational Sciences,2009.

[2]Noronha R,Panda D K.IMCa:A high performance caching front-end for glusterFS on infiniband,OSU-CISRC-3 /08-TR09[R].Columbus:The Ohio State University,2008.

[3]TTraeger A,Zadok E,Joukov N,et al.A nine year study of file system and storage benchmarking[J].ACM Transactions.2008,4(2):56.

[4]Dahlin M,Wang R Y,Anderson T E,et al.Cooperative caching:using remote client memory to improve file system performacne[A].Proceedings of the First Symposium on Operation Systems Design and Implementation[C],1994:267-280.

[5]刘爱贵.GlusterFS集群文件系统研究-刘爱贵的专栏-博客频道-CSDN.NET[EB/OL].2011-03-28.http://blog.csdn.net/liuaigui/article/details/6284551.

[6]Jiang S,Ding X,Chen F,et al.Dulo:an effective buffer management scheme to exploit both temporal and spatial locality[A].Proceedings of the FAST ’05 Conference on File and Storage Technologies[C],2005:101-114.

[7]王红艳,蒋金虎.基于 Glusterfs 的分布式快照功能设计与实现[J].高性能计算技术,2010(2) : 55-58.

[8]杨 勇.基于 GlusterFS 的分布式冗余存储[J].西安文理学报(自然科学版),2010,13(4):67-70.

[9]杨雪清,徐泽鸿,李 超,等.境外林林资源合作信息库管理信息系统研建[J].森林工程,2013,29(16):12-14.

[10]Lenk A,Klems M,Nimis J,et al.IEEE Cloud[A].Proceedings of the International Conference on Software Engineering Challenges of Cloud Computing[C],2009:23-31.

猜你喜欢

客户端可靠性服务器
通信控制服务器(CCS)维护终端的设计与实现
可靠性管理体系创建与实践
如何看待传统媒体新闻客户端的“断舍离”?
合理使用及正确测试以提升DC/DC变换器可靠性
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
5G通信中数据传输的可靠性分析
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御