IFS
image storage system,基于tikv,同时参考bfs实现的分布式小文件(图片)存储系统
git clone https://github.com/scottzzq/pd
cd pd
make
./bin/pd-server
git clone https://github.com/scottzzq/IFS
make
sh start_cluster.sh
git clone https://github.com/scottzzq/kvproto
cd kvproto/py_src/
python cmd.py, 可以自己修改cmd.py
架构
优化
- 优化raftlog存储格式,考虑到图片数据文件较大,故总是将raftlog中的PUT请求中的数据转换Needle写入volume文件中,raftlog只保存Needle在volume中的offset&size
- 上传图片
- 下载图片
- 删除图片
- 动态增加Volume
- 动态增加store机器
- Compact Volume,将已经删除的图片Needle文件回收空间
- go实现http proxy,提供http上传、下载、删除接口
- 图片元信息存储,filename和volumeid&key映射关系,考虑使用类redis的硬盘存储介质,360开源pika可能是一个不错的选择