wfs 海量小文件存储系统 v1.0.3


前言:wfs 是高性能海量小文件存储系统 ,支持Linux,Windows,Macos,FreeBSD等系统, 可以高效地进行文件存储和读取。wfs 支持文件压缩归档,并提供简洁的数据读取方式和文件后台管理和 以及归档文件的碎片整理等。
WFS官网
在线测试(用户名admin 密码123)

WFS文件存储系统 V1.0.3 主要更新
  1. 支持增量导出元数据
  2. 支持增量导出原始数据
  3. 支持多种文件数据指纹算法

说明:导出导入 元数据与原始数据,请参考 《wfs使用文档


增量原始数据备份

原始数据导出后,数据文件可以导入到任意wfs节点中。

关键字作用是否必须
-file表示导出原始数据
-start0表示导出起始 序号
-limit0表示导出条数
-gz表示将导出的原始文件数据进行压缩


示例:

  1. ./linux103_wfs  -s export   -file   -start 1 -limit 10
  2. ./linux103_wfs  -s export  -p   /usr/local/wfsdata   -file   -start 10 -limit 10  
  3. ./linux103_wfs  -s export  -p   /usr/local/wfsdata  -o   filedata  -file -gz -start 20 -limit 10
  4. ./linux103_wfs  -s export  -host 192.168.2.101:6801 -user admin -pwd 123  -file   -start 20 -limit 10

示例解析

  1. 导出原始数据 起始id为 1 和之后的数据,共 10条
  2. 导出本地目录为 /usr/local/wfsdata 的原始数据, 起始id为 10 和之后的数据,共 10条  
  3. 导出本地目录为 /usr/local/wfsdata 的原始数据 到 filedata  文件中,并进行压缩, 起始id为 20 和之后的数据,共 10条  
  4. 远程导出原始数据 起始id为 20 和之后的数据,共 10条  

操作日志

./linux103_wfs -s export -file -host 192.168.15.133:6801 -tls  -start 1 -limit 10  -user admin -pwd 123
2024-03-21 00:02:41,export file data>> wfsfile20240321000241_1_12 ( 65 ms)


导入原始数据
关键字作用是否必须
-file0表示导入的是原始数据


示例

  1. ./linux103_wfs  -s  import -file -o  wfsfile20240321000241_1_12
  2. ./linux103_wfs  -s import  -file -p   /usr/local/wfsdata  -o  wfsfile20240321000241_1_12
  3. ./linux103_wfs  -s import  -file  -host 192.168.2.101:6801 -user admin -pwd 123  -tls  -o   wfsfile20240321000241_1_12

示例解析

  1. 导入原始数据 到 本地wfs (wfs数据目录与linux103_wfs  同目录)
  2. 导入原始数据 到 数据目录为 /usr/local/wfsdata 的wfs服务  
  3. 导入原始数据到 服务后台为https://192.168.2.101:6801 用户名密码为admin 123 的wfs服务

操作日志

./linux103_wfs  -s  import -file -o  wfsfile20240320224718_1_12
2024-03-20 22:47:47,import file >> wfsfile20240320224718_1_12 ( 28 ms)



WFS的使用场景
  1. 海量非结构化数据存储:适用于存储大量的非结构化数据,如图片、视频、日志文件、 备份数据、静态资源文件等。
  2. 高效文件数据读取:wfs存储引擎可以达到100万/每秒 以上的数据读取效率,特别适合文件读取密集型的业务。
  3. 多种图片处理需求:wfs内置图片基础处理,适合对图片处理多种要求的业务,如图片适应多个尺寸,自定义裁剪等。


在大量小文件应用场景下,wfs实现的关键技术包括以下几个方面
  1. 高效存储布局与合并技术: WFS将多个小文件聚合成大文件存储,以减少元数据开销和提高存储利用率。同时,通过灵活的索引机制,确保每个小文件都能快速定位和提取。
  2. 分布式存储架构:wfs1.x版本主要聚焦性能提升来满足特定应用场景的需求,并建议通过第三方负载均衡分发技术如nginx,实现横向扩展节点数量来应对海量小文件的存储需求,确保系统在高并发场景下的稳定性和性能表现。
  3. 元数据管理优化: 针对大量小文件元数据管理难题,wfs采用高效元数据索引和缓存策略,减少元数据查询时间,并采用层级目录结构或哈希索引等方法,降低元数据存储的复杂度。
  4. 缓存与预读策略: 引入lru缓存机制,对访问频繁的数据进行缓存,降低I/O操作次数,提高读取速度。
  5. 数据去重与压缩技术: 实现数据去重和数据压缩,去除重复内容,减小存储空间占用,并通过多级压缩算法优化存储效率。
  6. 高可用与容错设计: 支持元数据导出与数据导入,确保在发生故障时,可以快速恢复数据,保证系统服务的持续性和数据完整性。
WFS的图片处理功能:参见WFS文档

以下为部分图片处理示例