juicefs 多s3 bucket 使用


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

  • mount
juicefs format sqlite3://myjfs.db miniofs


s3 效果

上传之后的效果

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