天天看點

關于配置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的官方文檔位址這裡可以找到。