开源树叶云分布式文件系统 – JuiceFS

大家最耳熟能详的分布式文件系统当属 HDFS,它的全称是 ​​Hadoop Distributed File System​​,在 Hadoop 技术栈盛行时大放异彩。随着云计算的发展成熟,数据上云成为趋势,但由于对象存储和文件存储的结构不同,在云上要进行大数据存储时会遇到很多问题:查询性能慢、数据不能保证一致性。

今天要为大家介绍的就是一款为云环境设计的文件系统,JuiceFS 是一款云原生高性能分布式文件系统, 采用的是插件化的架构,「数据」与「元数据」分离,用户可按照场景需求选择适用的元数据以及数据引擎。使用 JuiceFS 存储数据,数据本身会被持久化在对象存储(例如,Amazon S3),相对应的元数据可以按需存储在 Redis、MySQL、TiKV、SQLite 等多种数据库中。

JuiceFS 于 2021 年 1 月在 GitHub 上开源,1年半时间已经获得 6.5 K Star,是基础领域备受关注的项目; JuiceFS 采用的是 Aache 2.0 许可证,意味着 用户可以更放心地将 JuiceFS 应用于各种商业环境,与自己的应用集成。在 AI 组件 Fluid 和 PaddlePaddle 中都可以看到 JuiceFS 的身影。

特性

  • POSIX 兼容:像本地文件系统一样使用,无缝对接已有应用,无业务侵入性。
  • HDFS 兼容:完整兼容HDFS API[1],提供更强的元数据性能。
  • S3 兼容:提供S3 网关[2]实现 S3 协议兼容的访问接口。
  • 云原生:通过CSI Driver[3]轻松地在 Kubernetes 中使用 JuiceFS。
  • 分布式设计:同一文件系统可在上千台服务器同时挂载,高性能并发读写,共享数据。
  • 强一致性:确认的文件修改会在所有服务器上立即可见,保证强一致性。
  • 强悍性能:毫秒级延迟,近乎无限的吞吐量(取决于对象存储规模),查看性能测试结果[4]
  • 数据安全:支持传输中加密(encryption in transit)和静态加密(encryption at rest),查看详情[5]
  • 文件锁:支持 BSD 锁(flock)和 POSIX 锁(fcntl);数据压缩:支持 LZ4 和 Zstandard 压缩算法,节省存储空间。

快速上手

安装 JuiceFS 非常简单,你需要准备好元数据存储引擎(比如 Redis, MySQL),以及对象存储,最后下载 JuiceFS 客户端执行一行命令,就能立刻开始使用了。

你可以在 GitHub 项目页面找到 JuiceFS 最新版客户端下载地址,选择你所在平台的预编译版本,下载安装到 /usr/local/bin/juicefs。

当在终端输入并执行 juicefs 并返回了程序的帮助信息,就说明你成功安装了 JuiceFS 客户端。

创建文件系统

创建文件系统使用客户端提供的 format 命令,一般格式为:

juicefsformat [commandoptions] META-URLNAME

可见,格式化文件系统需要提供 3 种信息:

  • ​[command options]:设定文件系统的存储介质,留空则默认使用本地磁盘作为存储介质,路径为$HOME/.juicefs/local,/var/jfs​ 或C:/jfs/local。
  • META-URL:用来设置元数据存储,即数据库相关的信息,通常是数据库的 URL 或文件路径。
  • NAME:是文件系统的名称。

挂载文件系统

挂载文件系统使用客户端提供的 mount 命令,一般格式为:

juicefsmount [commandoptions] META-URLMOUNTPOINT

与创建文件系统的命令类似,挂载文件系统需要提供以下信息:**[command options]**:用来指定文件系统相关的选项,例如:-d 可以实现后台挂载;META-URL:用来设置元数据存储。即数据库相关的信息,通常是数据库的 URL 或文件路径;MOUNTPOINT:指定文件系统的挂载点。例如,以下命令将 myjfs 文件系统挂载到 ~/jfs 文件夹:

juicefs mount sqlite3://myjfs.db ~/jfs

当你获得以下反馈即为挂载成功了!!

验证文件系统

当挂载好文件系统以后可以通过 juicefs bench 命令对文件系统进行基础的性能测试和功能验证,确保 JuiceFS 文件系统能够正常访问且性能符合预期。

juicefs bench ~/jfs

运行 juicefs bench 命令以后会根据指定的并发度(默认为 1)往 JuiceFS 文件系统中写入及读取 N 个大文件(默认为 1)及 N 个小文件(默认为 100),并统计读写的吞吐和单次操作的延迟,以及访问元数据引擎的延迟。

验证成功之后,欢迎大展身手,探索更多玩法~

项目地址:https://github.com/juicedata/juicefs。​

参考资料

[1]HDFS API: https://juicefs.com/docs/zh/community/hadoop_java_sdk。

[2]S3 网关: https://juicefs.com/docs/zh/community/s3_gateway。

[3]CSI Driver: https://juicefs.com/docs/zh/community/how_to_use_on_kubernetes/。

[4]性能测试结果: https://juicefs.com/docs/zh/community/benchmark/。

[5]查看详情: https://juicefs.com/docs/zh/community/security/encrypt。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/265411.html<

(0)
运维的头像运维
上一篇2025-05-05 11:49
下一篇 2025-05-05 11:50

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注