MinIO 搭建可视化对象存储服务
1 什么是 MinIO
MinIO 是一款基于 Go 语言高性能,兼容 S3 的对象存储服务。相对于 OSS、AWS S3 这类第三方对象存储服务,MinIO 可以在自己服务器搭建,并携带可视化界面。
2 使用 Docker 安装 MinIO
2.1 下载 MinIO 的 Docker 镜像
docker pull minio/minio
2.2 运行 MinIO 服务
docker run -p 9000:9000 -p 9001:9001 --name minio \
-v /mydata/minio/data1:/data1 \
-v /mydata/minio/data2:/data2 \
-v /mydata/minio/data3:/data3 \
-v /mydata/minio/data4:/data4 \
-v /mydata/minio/config:/root/.minio \
-e "MINIO_ROOT_USER=root" \
-e "MINIO_ROOT_PASSWORD=minio123456789" \
-d minio/minio server /data1 /data2 /data3 /data4 \
--console-address ':9001'
--console-address指定 MinIO Console 可视化界面端口,MINIO_ROOT_USER和MINIO_ROOT_PASSWORD不能太短
3 MinIO Console 的简单使用
3.1 进入 MinIO Console 可视化界面
- 浏览器访问自己服务器9000端口或9001端口即可进入界面
- 输入运行时设置的
MINIO_ROOT_USER和MINIO_ROOT_PASSWORD即可
3.2 创建一个存储桶
3.3 上传文件
- 进入存储桶
- 点击上传文件
3.4 公开访问图片
- 将存储桶策略改为 public
- 这里只有两种模式可以调整,其实应该还有其他很多策略
- 访问图片分享链接红色框的链接即可下载
3.5 注意
- MinIO Console 还在快速迭代之中,基本一两个星期可能看到的界面就不一样了。
4 MinIO 纠删码
4.1 什么是纠删码?
- 纠删码(erasure code)是一种恢复丢失和损坏数据的数学算法, Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复。
4.2 体验 MinIO 纠删码功能
- 上传一些图片
- 我们一开始已经使用纠删码运行了MinIO,创建了四个数据磁盘,直接删除其中两个磁盘
- 再次查看图片,发现可以正常读写
- 重新启动,恢复磁盘
docker restart minio