minio元数据实现单独存储

一.前言

选择minio的原因,
1.简单。
2.我司存储达到50T的存储,要降低第三方成本,无专业人员维护,所以需要商业公司支持。
需要改造元数据的原因是LOSF问题,造成minio访问毛刺过多。
注:LOSF问题可点击此处了解

二.实现

读取的时候底层在storage-interface.go类的ReadVersion方法存在读取元数据的方法,改成第三方的查询比如mongodb,es,redis等。
存储文件的时候利用监听事件,利用mq,在提供一个读取元数据的接口,因为minio的元数据是明文,直接存储即可,总体改动不大,但是读的性能将大大提高,这里需要注意的是,这种实现无法将minio使用k8s或者docker部署,因为这样部署ip是不固定的。
因为改动不大且是不能随便开源代码就不放出来了,有需要改造的可留言一起交流。

三.开源存储项目比较

1.ceph提供了多种存储接口,包括对象存储、块存储和文件存储,适用于不同的应用场景,适用于需要处理大量数据的环境,但使用到的技术栈很多,运维复杂,需要专业人士,不适合中小型公司。
ceph技术栈,KV数据库,一致性算法 paxos,服务器,网络,Raid,硬盘,交换机,VFS,文件系统,块层,驱动层,设备层等

2.minio使用Go开发,代码精简易读,技术栈较简单包括Linux文件系统,纠删码等,适合中小型企业。

3.其它,cubefs,SeaweedFS等因为并未实际用到过,不过多解释了。

你可能感兴趣的:(minio,go)