技术分享分布式文件系统应用实践

Posted 朗新研究院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享分布式文件系统应用实践相关的知识,希望对你有一定的参考价值。


分布式文件系统是应用分布式架构思想产生的文件存储系统,具备高性能和高可靠性,可实现高并发、大存储量及大吞吐量,有效避免单点故障。由于营销文件系统在海量文件和高并发访问之下,遭遇性能瓶颈,可用性急剧下降,用分布式文件系统替换集中式存储系统已是必然。下文基于营销系统的实际需求,浅析分布式文件系统应用。




一、营销系统文件存储的发展困境


营销系统采用集中式存储作为文件存储的方式,即将文件存储在单一服务器上,部署结构简单,可维护性好;性能表现基于所部署主机的单机处理能力,稳定性较好。


近几年来,营销系统的并发访问量迅速提升,存储的文件越来越多,导致存储问题逐渐暴露:其一,由于集中式系统严重依赖服务器的性能与网络带宽,导致横向扩展性差、数据连通困难;其二,存在明显的单点故障问题,一旦服务器出现故障,整个系统将处于不可用状态。


以某网省营销系统为例,至2017年底,数据存储量已超过30TB,文件数量级已达百万,且还在增长,诸多问题已经显现:


  • 读写效率低下。高并发访问时FTP排队现象严重,文件管理功能缺失,导致文件搜索与获取的效率低下,在某些情况下读取一个文件的时间超过1分钟。

  • 可靠性低。单一服务器一旦宕机就会造成文件无法获取,导致营销系统某些关键业务无法开展,如业务受理、费控等。

  • 安全性差。由于缺少备份等安全措施,一旦文件损毁就会造成文件永久丢失。

在集中式存储架构下,解决上述问题,只能不断提升系统处理能力,如升级硬件设备、对高端存储不断进行扩容等,这无疑会产生巨大的成本。但即使对硬件系统进行升级,单机处理能力及网络带宽瓶颈依然存在。


二、营销系统文件存储的发展选择


综合营销系统业务场景及质量需求,营销对文件存储系统主要需求如下:


  • 中小型文件读写性能表现优秀

  • 良好的后续支持,保障后续系统维护与功能完善

  • 避免单点故障,如果存在则确保能够快速恢复,降低影响

  • 具有冗余备份,且支持在线扩容

  • 独立开展商业应用,或不影响营销系统的商业应用


当前,能满足上述需求的,即分布式文件系统。


分布式文件系统,采用可扩展的系统结构,运用多台存储服务器分担存储负荷,提高系统的可靠性、可用性和存取效率,且易于扩展,具有良好的并发处理能力,适用于高并发访问的场景。

 

三、分布式文件系统应用


整个分布式文件体系,包括硬件系统和软件系统构建,下文主要讨论分布式文件系统构建方式、系统核心算法的针对性选型及系统配置及性能优化等。

A、系统构建方式选择


分布式文件系统的构建方式主要有三种:独立研发、成品采购与开源系统复用。


独立研发。拥有软件的知识产权并能更好地契合营销系统,可直接投入商业使用;但投入成本较高,且最终效果不确定性较大。


成品采购。稳定性与可靠性较高,部署与应用简单,不需要考虑数据对接;但系统的实施与维护都依赖供应商,并且对软件只拥有有限的使用权,如果作为一个独立系统或子系统投入商业应用,不是推荐的选择。


开源系统复用。解决了核心算法问题,且一般的开源协议较为宽松,对商业应用没有加以限制,成本相对较低;但开源系统需要二次开发,完成数据迁移才能替换原有功能,且部分开源协议对源码修改与知识产权作了限制。


三种方式各有优缺点,采用何种方式与企业的经营状况与目标相关,需要综合权衡。当前,营销应用要求IOE”,一个是开源,另一个是时间进度要求快,故可考虑采用开源系统实现文件存储功能。

 

B、开源分布式文件系统选型


常见的开源分布式文件系统有很多,如GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等,各自适用于不同的领域与应用场景。我们需要通过技术选型,对这些系统逐个分析,选择适合应用场景的分布式文件系统。


HDFS为例,它是Hadoop的核心框架之一,具有高容错、高吞吐量的优点,适用于大数据处理中的数据存储。但它也有不适用的场景,例如小文件存储、并发写入、文件随机修改等,这是由它的机制决定的。因此,它并不适用于营销系统文件存储的应用场景,故先将它排除候选列表。对部分应用较为广泛的分布式文件系统进行分析,如下图:


图1-开源分布式存储系统的对比[1]

(图文引用自CSDN博客,如有侵权,请联系删除)


如图所示,继续排除只支持小文件的TFS、不支持小文件的MooseFS之后,我们可以将FastDFS、GlusterFS、Ceph作为备选方案,其中,Ceph作为OpenStack的存储方案之一,被Cisco、SanDisk等诸多企业所使用,并且Ceph支持块存储、文件存储、对象存储,是相对适用于营销业务文件存储需求的分布式文件系统。当然,Ceph缺点如它采用强一致性设计对系统硬件的可靠性要求较高,写入时可能会有卡顿,故针对性进行配置和优化也是不容忽视的一方面。

 

C、Ceph的系统配置及性能优化


对于分布式系统,性能上的提升无法简单通过硬件性能的提升得以体现,它是多个系统之间统筹协同才能发挥最大整体功效,因此,需要我们对整个系统进行配置与调试,根据实际情况进行性能优化。以Ceph为例,对不同配置下的性能表现进行比较。


针对不同大小的block对Rados、RBD进行读写性能测试,预估性能表现如下图(根据实际环境状况可能存在偏差):


图2-Ceph性能测试表[2]

(图文引用自云栖社区,如有侵权,请联系删除)


对上述数据进行分析,我们可以得出以下结论:


  • Ceph 针对大块文件的读写性能非常优秀,高达2GB/S

  • Rados读比写高出10倍的速率,适合读数据的高并发场景

  • pool配置2个副本比3个副本的性能高出很多,但官方推荐使用3个副本,因为2个不够安全

  • 若机器配置不算很差(48G以上),Ceph很容易达到1G带宽的限制阀值,若想继续提升Ceph性能,需考虑提升带宽阀值

  • 设置更多的PG值可以带来更好的负载均衡,但从测试来看,设置较大的PG值并不会提高性能

  • fileStore刷新器设置为false对性能有不错的提升

在分布式文件系统使用过程中,恰当合理的配置会让数据传输效率大大提升,反之则适得其反。

 

D、分布式文件系统后续工作内容


为了完全替换原文件存储系统,我们还有大量后续工作需要完成:


  • 根据配置优化策略,设计系统的物理部署架构,采购硬件设备,并实施部署

  • 对原有系统进行二次开发,封装API,提供可靠的文件服务

  • 设计新旧两个系统之间的数据迁移方案并加以实施,包括将原有文件的迁移至新系统,新旧文件存储匹配等

  • 根据业务场景设计文件管理相关服务与功能模块

  • 增加性能监控功能,实时监控系统性能,并提供性能预警功能等

  • 对实施人员、运维人员进行培训

  • 根据实际表现,对配置进行优化调整等等


相较于集中式系统,分布式系统的维护难度与使用难度较高,后续工作量大,运维方面需要更高的能力与更多的投入。

 

结语


分布式文件系统,提高了数据的安全性、实现了弹性扩展、降低了总体拥有成本,还可以折旧使用一些设备,提高资源利用率,是当前营销系统文件存储功能发展的优良选择。当然,除了软件系统支撑外,还需要考虑硬件架构,综合衡量及针对性调整等。笔者期望借此文,与各位同行交流、论证和研讨,共同构筑未来新一代营销电子档案文件系统。


END


【倪毅 朗新营业计量业务部】


注:文章仅代表作者观点,欢迎转发和评论。转发请标注来源,谢谢!


参考文献

1、张小凡.vip.开源分布式存储系统的对比blog.csdn.net/zzq900503/article/details/80020725 ,2018-04-20

2、北岛知寒. Ceph分布式存储系统-性能测试与优化yq.aliyun.com/articles/559261 ,2018-03-21


【相关阅读】







以上是关于技术分享分布式文件系统应用实践的主要内容,如果未能解决你的问题,请参考以下文章

实战|HDFS监控运维最佳实践

GPFS 分布式文件系统在云计算环境中的实践

Kubernetes与分布式存储系统VeSpace结合实践

Kubernetes与分布式存储系统VeSpace结合实践

宜信微服务任务调度平台建设实践|分享实录

分布式事务架构实践