天天看点

关于配置Minio的一点小问题关于配置Minio的一点小问题

关于配置Minio的一点小问题

Minio是个分布式对象存储器,一般搭配NGINX做负载均衡当个图片存储,小文件存储啥的,然后建立连接,确定桶的名字,再根据对象名字取出对象,或者存入对象,有时候还会搭配es什么的存下路径啥的。

今天在linux上配置minio服务,应该是个挺简单的事情,直接

minio serve -C [配置目录] --address[端口]  [数据目录]
           

不过一般不能这么用

写一个start.sh吧。

#start.sh
#!/bin/bash
export MINIO_ACCESS_KEY=xxx
export MINIO_SECRET_KEY=xxx
nohup ./minio server --address :9000  --config-dir ./conf  ./data > ./minio.log 2>&1  & (--config-dir 一般可以用-C表示)
           

写了start.sh当然也要写stop.sh吧,可是minio是没有stop命令的,如果用docker或者它的那个mc的客户端就好用多了。

#stop.sh
kill `netstat -nlp | grep :9000 | awk '{print $7}' | awk -F"/" '{ print $1 }'` 
           

这段命令是我抄的,思路大致是找到pid然后杀掉,这个awk ‘{print $7}’ 会找到一个类似 [pid]/minio 形式的串,awk -F"/" '{ print $1 } 就是根据“/”分割取出pid了。但是还是感觉太low了,每次启动关闭服务都要什么whereis 然后cd啥的

于是试了下使用服务形式的minio.service,一般来说有两种,一种是基于init.d文件的加入服务,一种是基于systemd的服务注册,这里采用了第二种。

直接将一个名为minio.service的unit文件丢到/etc/systemd/system/里去

[Unit]
 Description=MinIO	#名称
 Documentation=https://docs.min.io
 Wants=network-online.target
 After=network-online.target  #配置运行文件地址
 AssertFileIsExecutable=/data/minio/minio
 [Service]
 User=root
 Group=root
 EnvironmentFile=-/data/minio/conf/minio.conf   #指定配置文件
 ExecStart=$PATH/minio server $MINIO_OPTS $MINIO_VOLUMES  #按照配置文件方式指定运行
 ExecReload=/bin/kill -s HUP $MAINPID
 ExecStop=/bin/kill -s QUIT $MAINPID
 # Let systemd restart this service always
 Restart=always
 # Specifies the maximum file descriptor number that can be opened by this process
 LimitNOFILE=65536
 # Disable timeout logic and wait until process is stopped
 TimeoutStopSec=infinity
 SendSIGKILL=no
 [Install]
 WantedBy=multi-user.target                      

           

详细的说明可以看这篇unit文件格式说明 ,具体配置时注意删除注释。

然后systemctl daemon-reload ,systemctl start minio.service balabal… 然后有一个很奇怪的问题,那就是这个environmentFile怎么都加载不出来,一直报什么failed to run ‘start’ task: No such file or directory 什么的,后来发现给environmentFile加了一个"-“符号就好了,这个”-"符号什么意思,百度了一下,具体含义有以下

关于配置Minio的一点小问题关于配置Minio的一点小问题

这里的含义估计是上一次工作目录,上一次工作目录什么意思?我这里写的难道不是绝对路径吗?总之很奇怪,然而搜了下stackflow,发现还是国外老哥给力

关于配置Minio的一点小问题关于配置Minio的一点小问题

意思是说这在systemd.exec中有提及,如果“-”指向的文件不存在就不会去读这个文件,也不会报错,那么我的问题出在哪里呢

仔细检查后发现有个语句后面注释没有去掉,可以说是千里之堤毁于蚁穴了。

有关systemd的官方文档地址这里可以找到。