你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:
- 了解大厂经验
- 拥有和大厂相匹配的技术等
希望看什么,评论或者私信告诉我!
文章目录
- 一、背景
- 二、JuiceFS 入门
- 2.1 核心特性
- 2.2 JuiceFS 架构
- 2.3 JuiceFS 如何存储文件
- 三、JuiceFS VS HDFS
- 3.1 架构设计对比
- 3.1.1. 核心架构
- 3.1.2. 扩展性与运维
- 3.2、读写性能对比
- 3.2.1. 元数据操作
- 3.2.2. 数据读写
- 3.2.3. 缓存机制
- 3.3、功能特性对比
- 3.3.1. 兼容性
- 3.3.2. 数据保护
- 3.3.3. 加密与压缩
- 3.4、适用场景
- HDFS
- JuiceFS
- 3.5、总结
- 四、总结
一、背景
公司负责数据存储的部门,最近要把数据要上云,节省成本,长远的规划是AI+数据的统一底座为 JuiceFS。于是乎,好奇心不自觉的就来了,why?
本篇内容,不会详细介绍什么是 JuiceFS,不会有 JuiceFS 的使用方法,主要就是对比一下 JuiceFS 和 HDFS,搞明白 JuiceFS 优势是什么
二、JuiceFS 入门
2.1 核心特性
-
POSIX 兼容:像本地文件系统一样使用,无缝对接已有应用,无业务侵入性;
-
HDFS 兼容:完整兼容 HDFS API,提供更强的元数据性能;
-
S3 兼容:提供 S3 网关 实现 S3 协议兼容的访问接口;
-
云原生:通过 Kubernetes CSI 驱动 轻松地在 Kubernetes 中使用 JuiceFS;
-
分布式设计:同一文件系统可在上千台服务器同时挂载,高性能并发读写,共享数据;
-
强一致性:确认的文件修改会在所有服务器上立即可见,保证强一致性;
-
强悍性能:毫秒级延迟,近乎无限的吞吐量(取决于对象存储规模),查看性能测试结果;
-
数据安全:支持传输中加密(encryption in transit)和静态加密(encryption at rest),查看详情;
-
文件锁:支持 BSD 锁(flock)和 POSIX 锁(fcntl);
-
数据压缩:支持 LZ4 和 Zstandard 压缩算法,节省存储空间。
2.2 JuiceFS 架构
JuiceFS 文件系统由三个部分组成:
JuiceFS 客户端(Client):所有文件读写,以及碎片合并、回收站文件过期删除等后台任务,均在客户端中发生。客户端需要同时与对象存储和元数据引擎打交道。客户端支持多种接入方式:
- 通过 FUSE,JuiceFS 文件系统能够以 POSIX 兼容的方式挂载到服务器,将海量云端存储直接当做本地存储来使用。
- 通过 Hadoop Java SDK,JuiceFS 文件系统能够直接替代 HDFS,为 Hadoop 提供低成本的海量存储。
- 通过 Kubernetes CSI 驱动,JuiceFS 文件系统能够直接为 Kubernetes 提供海量存储。
- 通过 S3 网关,使用 S3 作为存储层的应用可直接接入,同时可使用 AWS CLI、s3cmd、MinIO client 等工具访问 JuiceFS 文件系统。
- 通过 WebDAV 服务,以 HTTP 协议,以类似 RESTful API 的方式接入 JuiceFS 并直接操作其中的文件。
数据存储(Data Storage):文件将会被切分上传至对象存储服务。JuiceFS 支