Minio停维,SeaweedFS等替代者是否拉垮?

内容分享2周前发布
2 4 0

59k star的开源项目——MinIO正式宣布代码不再更新,项目处于停止维护状态,这款高性能,与S3兼容的对象存储系统,难道说就此落幕?


Minio停维,SeaweedFS等替代者是否拉垮?

多年Minio的使用经历,已经在新项目,甚至将历史项目的存储部分从原有的GlusterFS,FastFS等迁移了过来,如果有一天Minio真的闭源和采取更加严格的开源协议,那还真要思考未来存储的选型了。

已经习惯使用S3的,包括云厂商各种各样“类S3”块存储产品,项目中对开源Minio还有很大的依赖和不舍,毕竟好用有免费:

  • Minio兼容 S3 API – 与现有S3工具无缝集成
  • 专为人工智能和分析而打造——针对大规模数据管道进行了优化
  • 高性能——是高要求存储工作负载的理想之选。

由于好用,由于兼容,所以爱的深切!

简单给大家看下我Minio的一个开发环境(容器启动)

支持Bucket(桶)

Minio停维,SeaweedFS等替代者是否拉垮?

好用的AK,SK等权限管理

Minio停维,SeaweedFS等替代者是否拉垮?

UI简介大方,方便存储内容的管理

Minio停维,SeaweedFS等替代者是否拉垮?

多种认证方式的支持,包括LDAP

Minio停维,SeaweedFS等替代者是否拉垮?

总之,Minio项目的变化,也没说目前不让能用,也不是Minio目前bug多的都无法修复的状态,我还是持观望态度,安静等待项目后续的操作…

既然这样,那我们还是要提前做好准备,寻找一下Minio的替代品吧,其中就有如下产品可供挑选:

  • Ceph Object Gateway (RGW)
  • SeaweedFS
  • OpenStack Swift
  • JuiceFS
  • Dragonfly
  • Storj
  • Garage

以上每种产品都有自己的特点和需求场景,简答总结如下:

Minio停维,SeaweedFS等替代者是否拉垮?

看到有国外大神提到了SeaweedFS

Minio停维,SeaweedFS等替代者是否拉垮?

那咱就听话,立即行动起来,试试其他开源存储产品,第一从SeaweedFS开始。

SeaweedFS,目前github上28.4k star,看着也是个优秀的开源好项目!

Minio停维,SeaweedFS等替代者是否拉垮?

SeaweedFS 安装

(1)安装比较简单,可以二进制下载,直接运行

下载解压缩单个二进制文件 weed 或 weed.exe,或者运行

go install github.com/seaweedfs/seaweedfs/weed@latest

设置访问对象存储的管理员凭据。

export AWS_ACCESS_KEY_ID=admin ; export AWS_SECRET_ACCESS_KEY=key

运行

weed server -dir=/some/data/dir -s3

启动一个主服务器、一个卷服务器、一个文件服务器和一个 S3 网关。

(2)我本地还是习惯于使用docker启动

下载seaweedfs-compose.yml

Minio停维,SeaweedFS等替代者是否拉垮?

使用如下命令启动即可:

docker compose -f seaweedfs-compose.yml -p seaweedfs up

启动后:

Minio停维,SeaweedFS等替代者是否拉垮?

这里提示我本地9000端口被占用了,更换为9002,顺利启动

Minio停维,SeaweedFS等替代者是否拉垮?

(3) seaweedfs 简单使用

上传文件前需要先请求接口,获取文件的fid

Minio停维,SeaweedFS等替代者是否拉垮?

$ curl http://10.133.254.123:9333/dir/assign

{“fid”:”3,02d45b5df0″,”url”:”volume:8080″,”publicUrl”:”volume:8080″,”count”:1

开头的数字 3 代表卷 ID。逗号后面是一个文件键 02 和一个文件 cookie d45b5df0。

根据获取到的fid上传本地文件:

Minio停维,SeaweedFS等替代者是否拉垮?

curl -F file=@/home/fisher/wx01.png http://10.133.254.123:8080/3,02d45b5df0

其中:本地文件为wx01.png

查看上传的文件:

下面三种方式都可以获取到图片

http://10.133.254.123:8080/3/02d45b5df0/wx01.png

http://10.133.254.123:8080/3/02d45b5df0.png

http://10.133.254.123:8080/3/02d45b5df0

如:

Minio停维,SeaweedFS等替代者是否拉垮?

还可以简单的对图片进行缩放显示,如我把图片设置为400*400

Minio停维,SeaweedFS等替代者是否拉垮?

SeaweedFS 也提供了简单UI

Minio停维,SeaweedFS等替代者是否拉垮?

Minio停维,SeaweedFS等替代者是否拉垮?

(4)从Minio迁移数据到SeaweedFS

可以使用s3cmd迁移数据

s3cmd sync s3://minio-bucket/ s3://seaweedfs-bucket/

–host-bucket=”%(bucket).localhost:8333″

–access_key=access_key

–secret_key=secret_key

(5)使用Python API操作SeaweedFS

import boto3
from botocore.client import Config
import io

class SeaweedFSS3Client:
    def __init__(self, endpoint='http://localhost:8333'):
        self.s3 = boto3.client(
            's3',
            endpoint_url=endpoint,
            aws_access_key_id='access_key',
            aws_secret_access_key='secret_key',
            config=Config(signature_version='s3v4')
        )
        self.bucket = 'my-bucket'
        self._ensure_bucket()
    
    def _ensure_bucket(self):
        """确保存储桶存在"""
        try:
            self.s3.head_bucket(Bucket=self.bucket)
        except:
            self.s3.create_bucket(Bucket=self.bucket)
    
    def upload_file(self, key, file_path):
        """上传文件"""
        self.s3.upload_file(file_path, self.bucket, key)
        return f"s3://{self.bucket}/{key}"  

实际使用体验中,发现SeaweedFS 有些“拉胯”,特别是对于Minio完善的对于S3 API的兼容,各种使用丝滑的不行。

可惜,SeaweedFS好像本身在原生设计中并没有内置 Bucket 的概念(更贴近文件系统的目录层级),也没有原生的 AK/SK(Access Key/Secret Key)权限控制,

不过可以通过以下方式实现类似 S3 的 Bucket 管理和 AK/SK 认证授权,满足对象存储的常用需求:

  • 模拟 Bucket:利用 Volume 和目录层级实现
  • 按 Filer 目录层级模拟 Bucket(轻量,灵活性高)

另外在实现 AK/SK 认证授权方面我也没有从文档里面找到清晰的使用方案,查了下,可以通过第三方插件或反向代理方式,如:

  • 使用 SeaweedFS 的 S3 网关(推荐,兼容 S3 AK/SK)
  • 通过 Nginx 反向代理实现 AK/SK 认证(自定义,灵活性高)
  • 集成第三方身份认证服务(企业级,扩展性强)

总之,SeaweedFS 的体验感觉一般般,跟Minio项目比说实在话是有些“拉胯”,除了UI太简陋之外,有些功能还需要自己去实现或者找三方工具,列如在安全方面,需要在前面加一层Nginx或者Lua来处理认证等逻辑。

看到有人提到了rustfs不错,有时间我还是得再试试其他开源工具,给Minio留一个后路…

过往皆为序章,未来当赴新途!

(全文完)

© 版权声明

相关文章

4 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    人间美好_ 读者

    rustfs

    无记录
  • 头像
    影绿居 读者

    其他替代产品好用吗?

    无记录
  • 头像
    小胖纸 读者

    SeaweedFS感觉一般,准备测试下rustfs

    无记录
  • 头像
    策略派 读者

    收藏了,感谢分享

    无记录