FastCFS实战半年成长记

Posted Huazie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastCFS实战半年成长记相关的知识,希望对你有一定的参考价值。

FastCFS实战半年成长记

本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号。

前言

今年 5 月份 A 公司打算用 FastCFS 替换 MooseFS,主要出于两点考虑:

  1. 国产化替代;
  2. FastCFS不存在单点问题,并且有作者提供支持,用起来更加省事和放心。A 公司主要使用 MooseFS 作为后端存储跑qemu 虚拟机,采用 qcow2 格式镜像文件。

A 公司对 FastCFS 进行了严格细致的测试,促进了 FastCFS 在可靠性、稳定性和性能方面的显著提升。在可靠性和稳定性提升方面,FastCFS 发布了如下版本:

时间描述
6月15日FastCFS V3.4 发布,引入选举节点,支持双活互备防脑裂,完全支持 POSIX 文件锁;
7月26日FastCFS V3.5 发布,支持多数派数据复制,在极端情况下也严格保证数据一致性;
8月16日FastCFS V3.5.1 发布,写入数据过半数自适应,使用两副本也可以最大程度地保证数据一致性。

FastCFS 在性能方面和同类存储软件相比优势明显,我们一直引以为傲:2021年6月份发布的 FastCFS V2.2,性能明显超越 Ceph(使用 SSD 盘测试):顺序写Ceph6.x 倍,顺序读Ceph2.x 倍,随机写 大约是 Ceph2 倍。

然而 A 公司在使用两块 SATA 盘的情况下,8 月份做了 FastCFSMooseFS 性能对比测试,颠覆了我们的认知。FastCFS 的性能跑不上去,使得 MooseFS 的性能全面碾压 FastCFS,我们引以为傲的顺序写性能也不行。这个测试结果激发了我们的斗志,历时 3 周,9月8日 发布了 FastCFS V3.6,文件读写性能大幅提升,写入性能明显反超 MooseFS,读性能与 MooseFS 基本持平。改进前的 V3.5 及改进后的 V3.6MooseFS 性能对比测试结果如下图(根据 A 公司提供的测试数据整理):

在使用 SATA 盘的情况下,V3.6 性能为何能做到如此巨幅的提升呢?

下面就为你揭秘 V3.6 性能优化所做的主要工作:

1. fstore server 优化

  • 文件写支持异步落盘,以充分发挥磁盘写入能力;为了提升文件写入性能,fstore 增加了一个配置参数 fsync_every_n_writes,默认值为 0,表示不显式调用 fsync。对于机械硬盘(如 SATA 盘),不调用 fsync 可以显著提升写入性能。

  • 文件读默认采用系统缓存,对于 SATA 盘或 SAS 盘可以显著提升读取性能。

2. fuse client 优化

  • 支持 fuse 选项 writeback_cache,告诉 Linux kernel 是否启用合并写。开启这个选项,将迅猛提升连续写入小块数据(比如一次写入 4KB)的性能。

  • fuse.conf 增加配置项 kernel_cache,表示是否使用 Linux kernel 的文件缓存。开启这个选项,相当于在 fuse 客户端启用了文件缓存,在某些情况下将大幅提升文件读取性能。

通过以上优化,V3.6 的性能相比 Ceph 进一步拉开了距离,欢迎感兴趣的朋友进行对比测试。

FastCFS当前版本为 V3.6.2,支持百亿级文件的 fdir 存储引擎插件可用于生产环境,欢迎大家测试和使用。

以上是关于FastCFS实战半年成长记的主要内容,如果未能解决你的问题,请参考以下文章

三大主营业务全面开花 京东方半年报大幅盈利(半年446亿元,同比增长69%,实现净利润43亿元)

半年报盈利大幅预增背后,学大教育构筑长期能力

获取外部数据的一把钥匙——记网络爬虫技术基础培训

2021上半年成长收获

FastCFS架构之连接篇

其深谋远虑的瞳眸尽收森罗万象于眼底(说明其四项能力可大幅成长 )以,总共有16种类型的马,而最好的就是森神马,也就是拥有上下部分第四项评价的马。