Minio
Posted 惰立
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Minio相关的知识,希望对你有一定的参考价值。
Minio
文章目录
minio-server
点击下载: minio
# 下载二进制文件
cd /usr/local/bin/ && wget https://dl.min.io/server/minio/release/linux-amd64/minio && chmod +x minio
# 创建目录
mkdir -p /data/minio && touch /data/minio/minio.log
# 设置ak、sk
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin
# 启动
nohup minio server --address 172.10.10.10:9005 --console-address 172.10.10.10:9006 /data/minio > /data/minio/minio.log 2>&1 &
minio-client
点击下载:mc
# 下载二进制文件
cd /usr/local/bin/ && wget https://dl.min.io/client/mc/release/linux-amd64/mc && chmod +x mc
# 查看 mc 版本
mc version
minio-client 命令
ls 列出文件和文件夹
mb 创建一个存储桶或一个文件夹
cat 显示文件和对象内容
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT
share 生成用于共享的URL
cp 拷贝文件和对象
mirror 给存储桶和文件夹做镜像
find 基于参数查找文件
diff 对两个文件夹或者存储桶比较差异
rm 删除文件和对象
events 管理对象通知
watch 监听文件和对象的事件
policy 管理访问策略
session 为cp命令管理保存的会话
config 管理mc配置文件
update 检查软件更新
version 输出版本信息
config
config host 命令提供了一个方便地管理~/.mc/config.json配置文件中的主机信息的方式,也可以用文本编辑器手动修改这个配置文件
用法:
mc config host COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
add, a 添加一个新的主机到配置文件
remove, rm 从配置文件中删除一个主机
list, ls 列出配置文件中的主机
FLAGS:
--help, -h 显示帮助
添加 server 节点,名称为 minio1
# 添加server,名称为minio1 (shell的history特性可能会记录这些信息,从而带来安全隐患。在bash shell,使用set -o和set +o来关闭和开启history特性)
set +o history
mc config host add minio1 http://192.168.0.220:9005 minioadmin minioadmin --api s3v4
set -o history
mb
创建存储桶。MinIO对每个用户创建的存储桶数量没有限制。 在Amazon S3上,每个帐户被限制为100个存储桶
用法:
mc mb [FLAGS] TARGET [TARGET...]
FLAGS:
--help, -h 显示帮助
--region "us-east-1" 指定存储桶的region,默认是‘us-east-1’
在 minio1 上创建一个名为“bucket”的存储桶
mc mb minio1/bucket
ls
列出存储桶、对象
用法:
mc ls [FLAGS] TARGET [TARGET ...]
FLAGS:
--help, -h 显示帮助
--recursive, -r 递归
--incomplete, -I 列出未完整上传的对象
列出 minio1 所有桶
mc ls minio1
列出 minio1 上的存储桶 bucket 下的文件
mc ls minio1/bucket/
cp
拷贝本地的一个或多个源文件到对象存储。所有到对象存储的拷贝操作都进行了MD4SUM checkSUM校验。可以从故障点恢复中断或失败的复制操作
用法:
mc cp [FLAGS] SOURCE [SOURCE...] TARGET
FLAGS:
--help, -h 显示帮助
--recursive, -r 递归拷贝
拷贝一个本地文件 test.txt 到 minio1/bucket
mc cp test.txt minio1/bucket/
pipe
pipe到对象。pipe命令拷贝stdin里的内容到目标输出,如果没有指定目标输出,则输出到stdout
用法:
mc pipe [FLAGS] [TARGET]
FLAGS:
--help, -h 显示帮助
将mysql数据库dump文件输出到Amazon S3
mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-oct-9-2015.sql
rm
删除文件对象或存储桶
用法:
mc rm [FLAGS] TARGET [TARGET ...]
FLAGS:
--help, -h 显示帮助
--recursive, -r 递归删除
--force 强制执行删除操作
--prefix 删除批配这个前缀的对象
--incomplete, -I 删除未完整上传的对象
--fake 模拟一个假的删除操作
--stdin 从STDIN中读对象列表
--older-than value 删除N天前的对象(默认是0天)
删除 minio1 下的 bucket 桶
mc rm minio1/bucket
删除 minio1 下的 bucket 桶中的 test.txt 文件
mc rm minio1/bucket/test.txt
递归删除 minio1 下的 bucket 桶中的所有内容
mc rm --recursive --force minio1/bucket/
从 bucket 里删除未完整上传的对象
mc rm --incomplete --recursive --force minio1/bucket/
删除1天前的对象
mc rm --force --older-than=1 minio1/bucket/
recursive --force minio1/bucket/
从 bucket 里删除未完整上传的对象
```shell
mc rm --incomplete --recursive --force minio1/bucket/
删除1天前的对象
mc rm --force --older-than=1 minio1/bucket/
Minio"unable to rename (/minio/data4/.minio.sys/tmp -; /minio/...."问题的解决方法
背景
使用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
Minio服务启动成功
以上是关于Minio的主要内容,如果未能解决你的问题,请参考以下文章