0%

minio: 部署分布式文件存储服务(纠删码EC)

本文展示搭建一个具备纠删码机制的分布式文件存储服务。

单机部署

1
2
3
4
5
6
7
sudo docker run -p 9000:9000 -p 9090:9090 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=12345678" \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
minio/minio server /data --console-address ":9090"

部署纠删码

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo docker run -p 9000:9000 -p 50000:50000 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=12345678" \
-v /data/minio/data1:/data1 \
-v /data/minio/data2:/data2 \
-v /data/minio/data3:/data3 \
-v /data/minio/data4:/data4 \
-v /data/minio/data5:/data5 \
-v /data/minio/data6:/data6 \
-v /data/minio/data7:/data7 \
-v /data/minio/data8:/data8 \
minio/minio server /data{1...8} --console-address ":50000"

常用命令

1
mc config host ls

1
mc mb minio-server/images # 在 minio-server 节点下创建 buckets
1
mc ls minio-server  # 查询当前节点下的 buckets

上传 下载

1
mc cp minio/images/0vBc0hN.png minio-server/images		# 上传 图片 到 bucket images 下

1
2
mc ls minio-server/images  #  查询 bucket images 下的资源
mc cp minio-server/images/0vBc0hN.png ./ # 下载 bucket 中图片到当前目录

1
mc rm minio-server/images/0vBc0hN.png  # 删除 bucket 下的文件

bucket 管理

1
2
# 创建 bucket
mc mb minio-server/bucket01

1
2
# 删除 bucket
mc mb minio-server/bucket01

1
2
# 强制删除  bucket 中有文件
mc rb --force minio-server/bucket01

1
2
# 查询磁盘使用情况
mc mc minio-server/images

mc admin使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
service     服务重启并停止所有MinIO服务器 
update     更新更新所有MinIO服务器
info       信息显示MinIO服务器信息
user       用户管理用户
group       小组管理小组
policy     MinIO服务器中定义的策略管理策略
config     配置管理MinIO服务器配置
heal       修复MinIO服务器上的磁盘,存储桶和对象
profile     概要文件生成概要文件数据以进行调试
top         顶部提供MinIO的顶部统计信息
trace       跟踪显示MinIO服务器的http跟踪
console     控制台显示MinIO服务器的控制台日志
prometheus Prometheus管理Prometheus配置
kms         kms执行KMS管理操作
1
mc admin user --help

1
2
3
# 创建 用户 
mc admin user add minio-server char # 创建用户char
mc admin user add minio-server char01 12345678 # 创建用户:char01 密码:12345678

1
mc admin user remove minio-server char01 # 删除用户 char01

1
2
# 禁用用户
mc admin user disable minio-server char

1
2
# 启用用户
mc admin user enable minio-server char

策略管理

1
mc admin policy --help

1
2
# 查看策略信息
mc admin policy info minio-server readonly

添加策略

编辑自定义策略:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::images"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::images/*"
]
}
]
}

可以在策略中设置的动作:

1
2
3
4
5
6
7
"Action": [
"s3:GetBucketLocation",
    "s3:ListBucket",
    "s3:GetObject",
    "s3:PutObject",
    "s3:DeleteObject"
 ]

将fileReadonly_imagesAll.json添加到策略数据库:

1
mc admin policy create minio-server fileReadonlyImagesAll minio/config/fileReadonly_imagesAll.json

坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道