juicefs 支持一个参数--shards 可以在format 的时候进行多bucket 的配置以下是一个简单的试用

环境准备

minio s3


version: "3"
services:
s3:
image: minio/minio
environment:
- "MINIO_ACCESS_KEY=minio"
- "MINIO_SECRET_KEY=minio123"
command: server /data --console-address ":9001"
ports:
- "9000:9000"
- "9001:9001"


使用


  • format


juicefs format \
--storage minio \
--bucket http://localhost:9000/appdemo%d  \
--access-key minio \
--shards 6 \
--secret-key minio123 \
sqlite3://myjfs.db \
miniofs


juicefs 多s3 bucket 使用_系统启动




  • mount


juicefs format sqlite3://myjfs.db miniofs


juicefs 多s3 bucket 使用_系统启动_02



s3 效果

juicefs 多s3 bucket 使用_ide_03



上传之后的效果

juicefs 多s3 bucket 使用_系统启动_04



s3 gateway 使用


  • 命令


export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
juicefs gateway  sqlite3://myjfs.db localhost:9005


一些问题


  • : Fail to list: NotImplemented: A header you provided implies functionality that is not implemented
    目前是在mac 系统启动的时候没有添加sudo,但是通过查看官方的s3test 似乎有这个问题,还需要确认下

说明

对于多s3 bucket 的处理使用了hash 算法,但是后期我们肯定是不能在变动的,不然数据肯定会有问题的,处理起来很费事

参考资料

https://juicefs.com/docs/zh/community/command_reference#juicefs-format