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的主要内容,如果未能解决你的问题,请参考以下文章