k8s JuiceFS OSS

一、介绍

JuiceFS 是一款面向云原生设计的高性能分布式文件系统,在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性,可将几乎所有对象存储接入本地作为海量本地磁盘使用,亦可同时在跨平台、跨地区的不同主机上挂载读写。

JuiceFS 采用「数据」与「元数据」分离存储的架构,从而实现文件系统的分布式设计。文件数据本身会被切分保存在对象存储(例如 Amazon S3),而元数据则可以保存在 Redis、MySQL、TiKV、SQLite 等多种数据库中,你可以根据场景与性能要求进行选择。

JuiceFS 提供了丰富的 API,适用于各种形式数据的管理、分析、归档、备份,可以在不修改代码的前提下无缝对接大数据、机器学习、人工智能等应用平台,为其提供海量、弹性、低价的高性能存储。运维人员不用再为可用性、灾难恢复、监控、扩容等工作烦恼,专注于业务开发,提升研发效率。同时运维细节的简化,对 DevOps 极其友好。

二、架构

image-20240206162221428

二、安装 JuiceFS

2.1 安装

curl -sSL https://d.juicefs.com/install | sh -

2.2 查看版本

#juicefs --version
juicefs version 1.1.2+2024-02-04.8dbd89a

三、接入阿里云 OSS

3.1 创建阿里云 OSS Bucket 和 OSS RAM 访问控制权限

  • Bucket 名:juicefs01
  • RAM 权限:AliyunOSSFullAccess

3.1 初始化

juicefs format --storage oss \
    --bucket juicefs01.oss-cn-hangzhou-internal.aliyuncs.com \
    --access-key ... \
    --secret-key ... \
    sqlite3://myjfs.db myjfs

Xss2PzwdiJ0yaX7 sqlite3://juicefs01.db myjfs
2024/02/06 16:17:49.407609 juicefs[9890] <INFO>: Meta address: sqlite3://juicefs01.db [interface.go:497]
2024/02/06 16:17:49.408756 juicefs[9890] <INFO>: Data use oss://juicefs01/myjfs/ [format.go:471]
2024/02/06 16:17:49.843507 juicefs[9890] <INFO>: Volume is formatted as {
  "Name": "myjfs",
  "UUID": "5ffcd295-11c6-413b-ab7a-4f0c335cf209",
  "Storage": "oss",
  "Bucket": "juicefs01.oss-cn-hangzhou-internal.aliyuncs.com",
  "AccessKey": "...",
  "SecretKey": "removed",
  "BlockSize": 4096,
  "Compression": "none",
  "EncryptAlgo": "aes256gcm-rsa",
  "KeyEncrypted": true,
  "TrashDays": 1,
  "MetaVersion": 1,
  "MinClientVersion": "1.1.0-A",
  "DirStats": true
} [format.go:508]

3.2 启动

juicefs mount sqlite3://myjfs.db ./jfs -d

四、验证

4.1 写入数据

在 ./jfs 中写入数据,再去 OSS Bucket juicefs01 中查看数据。

4.2 查看 OSS 数据

image-20240206163338596