查看官方文档(MinIO)进行操作
安装minio
#下载
wget https://dl.min.io/server/minio/release/linux-amd64/minio
#创建目录
sudo mkdir /usr/local/minio
#把下载的文件移到新创建的文件夹
sudo mv minio /usr/local/minio
#增加文件执行权限
sudo chmod +x /usr/local/minio/minio
1.单机运行 ( 纠删码 )
#挂载四块盘,如上图
#启动
sudo /usr/local/minio/minio server /datadisk/minio0 /datadisk/minio1 /datadisk/minio2 /datadisk/minio3 --console-address ":33547"
#启动成功会自动输出访问地址和默认的登陆账号密码
2.编写脚本,设置开机启动
首先使用Systemd服务发现一直失败 ,操作如下
#创建配置文件
sudo vim /usr/local/minio/minio.conf
#写入以下配置信息
MINIO_VOLUMES=" /datadisk/minio0 /datadisk/minio1 /datadisk/minio2 /datadisk/minio3"
MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="admin123"
MINIO_OPTS=" --console-address :33547 --address :9000"
#编写systemd 开机启动
#创建
sudo vim /usr/lib/systemd/system/minio.service
#编写服务脚本
#minio服务
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/minio/minio
[Service]
WorkingDirectory=/usr/local/minio/
#引用配置文件
EnvironmentFile=/usr/local/minio/minio.conf
ExecStart=/usr/local/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=on-failure
RestartSec=5
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
#执行相关命令进行启动,发现一直失败
#服务相关命令
#systemctl daemon-reload #重载启动服务项
#systemctl start minio.service 启动minio服务
#systemctl status minio.service 检查启动情况
#systemctl stop minio.service #停止服务
#systemctl restart minio.service #重启服务
#加入开机启动
#systemctl enable minio.service
#输入命令查看
ps -ef |grep minio
3.尝试利用CentOS系统中rc.local设置开机自动执行的.sh方式(成功)
#编写执行文件
#创建文件
sudo mkdir /usr/local/minio/miniostart.sh
#输入以下内容
##设置用户名和密码
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
##配置后台启动
#注意/usr/local/minio/minio.log 如果该日志文件不存在,则需要先创建,否则会启动失败
nohup /usr/local/minio/minio server /datadisk/minio0 /datadisk/minio1 /datadisk/minio2 /datadisk/minio3 --console-address ":33547" --address ":9000"> /usr/local/minio/minio.log 2>&1 &
#编辑rc.local文件
sudo vim /etc/rc.d/rc.local
#在文件中添加
/usr/local/minio/miniostart.sh
#增加执行权限
sudo chmod +x /etc/rc.d/rc.local
#重启系统
sudo reboot
#查看是否启动
ps -ef |grep minio
到此minio单机部署并设置开机服务启动就完成了。
配置nginx代理访问
#添加nginx代理配置文件
sudo vim /usr/local/nginx/conf.d/minio.conf
#写入
server {
listen 80;
server_name localhost;
# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# To disable buffering
proxy_buffering off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://localhost:9000;
}
}
#设置完重启nginx,这里sysytemd服务管理启动,因此直接用systemctl 重启
sudo systemctl restart nginx
备注,额外说明,当我使用SDK测试上传的时候,提示一个错误:MinIO API responded with message=The difference between the request time and the server's time is too large.
#这种情况就是服务器时间不一致导致的,时区问题,则需要去设置系统时间,我测试使用的是本地虚拟机,我是在虚拟机设置同步本机时间,然后查看系统时间,发现和本地时间一致,再次测试上传,上传成功了。