背景
使用systemctl服务方式启动minio,启动失败
排查过程
1. 查看日志报错
#直接查看/var/log/messages日志
cat /var/log/messages | grep minio
#通过journalctl查看
journalctl -u minio.service --no-pager
2. 发现报错信息
unable to rename (/minio/data4/.minio.sys/tmp -> /minio/data4/.minio.sys/tmp-old/ed3c3f91-d38d-4137-8aa8-b688cdb85df0) file access denied, drive may be faulty please investigate
3. 查看是否创建Minio服务配置对应的用户和用户组
cat /etc/passwd /etc/group | grep minio
如上图结果显示,已有minio用户和用户组,若无用户组需要创建用户和用户组
4. 创建minio创建用户和用户组(已经创建的跳过该步骤)
#创建用户组
groupadd -r minio-user
#创建用户
useradd -M -r -g minio-user minio-user
原因分析
博文作者使用的环境的System服务配置文件路径为“/etc/systemd/minio.service”
因为minio-systemctl服务的配置文件“/etc/systemd/system/minio.service”中指定了运行该服务的用户,该服务需要使用该账户去读取挂载目录,若驱动器的所属权限不是配置文件里指定的用户,因而导致minio服务启动失败
解决方法
修改挂载目录的所属权限为minio.service指定的用户和用户组
chown -R minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4