minio 分布式对象存储
最后更新于:2022-04-02 04:02:26
[TOC]
> [home](https://min.io/download#/linux)
## 安装
### 单机版
#### docker
`docker run -p 9000:9000 -v /mnt/data:/data minio/minio server /data`
web : `http://127.0.0.1:9000/`
账号密码: `minioadmin/minioadmin`
#### window
#### mac
#### linux
### 分布式MinIO快速入门
> [参考](https://docs.min.io/cn/distributed-minio-quickstart-guide.html)
1. 数据保护
分布式Minio采用[纠删码](https://docs.min.io/cn/minio-erasure-code-quickstart-guide)来防范多个节点宕机和[位衰减`bit rot`](https://github.com/minio/minio/blob/master/docs/zh_CN/erasure/README.md#what-is-bit-rot-protection)。
分布式Minio至少**需要4个硬盘**,使用分布式Minio自动引入了纠删码功能。
2. 高可用
单机Minio服务存在单点故障,相反,如果是一个有N块硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。
例如,一个16节点的Minio集群,每个节点16块硬盘,就算8台服務器宕机,这个集群仍然是可读的,不过你需要9台服務器才能写数据。
注意,只要遵守分布式Minio的限制,你可以组合不同的节点和每个节点几块硬盘。比如,你可以使用2个节点,每个节点4块硬盘,也可以使用4个节点,每个节点两块硬盘,诸如此类。
3. 一致性
Minio在分布式和单机模式下,所有读写操作都严格遵守**read-after-write**一致性模型
启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。
```
//启动分布式Minio实例,8个节点,每节点1块盘,需要在8个节点上都运行下面的命令。
export MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://192.168.1.11/export1 http://192.168.1.12/export2 \
http://192.168.1.13/export3 http://192.168.1.14/export4 \
http://192.168.1.15/export5 http://192.168.1.16/export6 \
http://192.168.1.17/export7 http://192.168.1.18/export8
```
## MinIO客户端
```
ls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。
```
### 安装
```
docker pull minio/mc
//运行
docker run minio/mc ls play
```
[其他平台的客户端](https://docs.min.io/cn/minio-client-quickstart-guide.html)
## 接口
### golang
';