minio 安装、配置、使用总结
参考资料
- minio中文网
- 下载地址:https://www.minio.org.cn/download.shtml#/linux
- 历史版本:http://dltest.minio.org.cn/server/minio/release/linux-amd64/archive/
- minio中文文档
- minio实现文件上传下载和删除功能
- MinIO很强-让我放弃FastDFS拥抱MinIO的8个理由
前提条件
- 已经安装CentOS7+。
- 采用分布式部署时,各节点时间差不能大于3秒,建议部署NTP做时间同步。
- 搭建nginx做高可用
环境要求
| 环境 | 推荐 | 注意事项 | | —- | ————– | ———————– | | 操作系统 | CentOS7 x86_64 | 需要安装x86_64位版本 | | CPU | 2核2.0GHz+ | 无 | | 内存 | 8G+ | 8G以上可使用内存缓存,8G内存以下性能会差些 | | 节点数 | 4-16 | 建议各节点硬盘大小一致 |
一、安装
使用分布式模式安装
1.下载minio.zip,解压到/opt/minio
目录下
2.运行脚本给minio设置运行权限
chmod +x minio
3.在各个节点上添加脚本minio-dist.sh
export MINIO_ACCESS_KEY=minio_user
export MINIO_SECRET_KEY=1qaz@WSX
export _MINIO_CACHE=off
./minio server http://ip1:port/data/miniodata http://ip2:port/data/miniodata http://ip3:port/data/miniodata http://ip4:port/data/miniodata
注意:
MINIO_ACCESS_KEY
和MINIO_SECRET_KEY
是存储的秘钥,MINIO_ACCESS_KEY
相当于用户名,MINIO_SECRET_KEY
相当于密码,请按各地安全需求设置。- 所有的节点需要有同样的
MINIO_ACCESS_KEY
和MINIO_SECRET_KEY
。 _MINIO_CACHE
表示是否开启内存缓存./minio server
后跟的是各个节点的存储信息,前面是服务器的IP端口,/data/miniodata
是文件在服务器的存放路径。- 指定的文件存放路径文件夹必须是干净的,里面不能有数据。
- 分布式存储服务里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
- 如果不指定端口的话,默认使用端口号9000。
安装nginx做高可用
本章节仅针对存储如何配置nginx给出示例
1.安装nginx
2.改nginx/conf/nginx.conf文件
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://minio/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio;
}
}
upstream minio {
server ip1:9000;
server ip2:9000;
server ip3:9000;
server ip4:9000;
}
注意:
- server节点和upstream节点都在http节点下。
- nginx代理存储服务必须在根节点,即location /。
- 将ip1到ip4修改为真实的IP,如果超过4个服务,按示例增加即可。
- 在http节点下增加
client_max_body_size 1000m;
,默认值1m
太小了。 - 示例中的proxy_set_header必须有。
- 在http节点下设置access_log,详细信息可参考这里
log_format log_minio '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access_minio.log;
二、启动
直接启动
./minio server /data/minodata
nohup ./minio server /data/minodata &
不能登录:
find / -name minio
cd /root/.minio/
vi config.json //检查,修改对应key
三、运维
存储桶管理
管理员在实施成功后通过nginx的域名进行访问,确保服务正常。如果服务正常,通过浏览器(chrome或者IE11)访问,输入accessKey和secretKey登录,点击右下角按钮create bucket.
- bucket(存储桶)由管理员统一创建,业务系统不得增加或者删除bucket.
- 为避免bucket冲突,影响后续可能出现的迁移合并,建议bucket命名规范统一
关于什么是存储桶,请参考S3存储桶。
保证客户端与服务端时间一致
存储服务的各个节点时间差不能大于3秒
客户端与服务端的时间差不能大于15分钟
mc客户端进阶
运维人员可以下载minio client进行维护。
注意事项
- 不支持动态增加节点,初始时是几个节点就是几个节点,不支持动态增减,通过新建集群扩容。
- 安装时指定的目录必须是空目录。