最近负责一个项目需要自建对象存储,所以研究了一下MinIO这个对象存储,这里分享一下自建MinIO对象存储的过程。
搭建MinIO集群
minio有多种安装方式,具体方式可以自己搜索。
我选择在服务器上直接运行的方式。
1.1 准备服务器
官方推荐至少4台,单租户限制至少4台,最多16台。由于我只是测试只用了2台,直接在阿里云上开通的按量付费的ECS。
1.2 创建相关目录(所有节点)
数据存储目录
在两台服务器上分别创建两个data目录
mkdir -p /minio/{data1,data2}
启动脚本目录
mkdir -p /opt/minio
集群配置文件目录
mkdir -p /etc/minio
1.3编写集群启动脚本(所有节点配置相同)
vim /opt/minio/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
/opt/minio/minio server --config-dir /etc/minio \
http://192.168.0.101/minio/data1 http://192.168.0.101/minio/data2 \
http://192.168.0.102/minio/data1 http://192.168.0.102/minio/data2 \
其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败(例如123456会失败,Test123456成功),“–config-dir”指定集群配置文件目录,由于我使用阿里的ECS服务器,所有这里的IP地址都使用内网ip.
1.4 编写服务脚本(所有节点)
vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/opt/minio/
ExecStart=/opt/minio/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
chmod +x /usr/lib/systemd/system/minio.service
其中,“WorkingDirectory”为启动脚本目录,“ExecStart”为指定集群启动脚本
1.5 启动测试
将minio上传到/opt/minio目录下并赋予权限
chmod +x minio
赋予启动文件权限
chmod +x /opt/minio/run.sh
启动
systemctl daemon-reload
systemctl start minio
systemctl enable minio
1.6测试
浏览器输入集群任意节点地址+9000端口,即可访问minio,用户名密码为前面设置的“MINIO_ACCESS_KEY”和“MINIO_SECRET_KEY”,可创建“bucket”并上传文件测试,我使用ECS的外网ip+9000端口访问.