分布式文件存储MinIO、安装和使用

一、Minio基础

  1、简介  

  MinIO是高性能的对象存储,单个对象最大可达5TB。适合存储图片、视频、文档、备份数据、安装包等一系列文件。是一款主要采用Golang语言实现发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript,
Golang语言。客户端与服务器之间采用http/https通信协议。

  2、部署

  MinIO支持单机部署、集群部署两种方式。

  3、下载

  官方下载地址

 

二、Linux部署单机MinIO

安装和启动

1、切换到opt目录,创建minio文件夹,切换到minio文件夹

cd /opt
mkdir -p /opt/minio
cd /opt/minio

 

2、使用命令下载

wget https://dl.min.io/server/minio/release/linux-amd64/minio 

3、 下载完成后会在当前目录下出现一个minio文件,为该文件添加可执行权限

chmod +x minio

4、 创建minio文件存储目录及日志目录

# 创建minio文件存储目录及日志目录
mkdir -p /opt/minio/data
mkdir -p /opt/minio/logs

 

5、在 minio/目录下,新建一个run.sh(使用命令 gedit run.sh 新建)并编辑以下内容,然后将以下内容保存到run.sh。注:MinIO用户名和密码自己设置,此处用户名密码为登录MinIO Console的用户名密码。
#!/bin/bash
export MINIO_ROOT_USER=minio-user
export MINIO_ROOT_PASSWORD=minio-pwd
# nohup启动服务 指定文件存放路径 /opt/minio/data 还有设置日志文件路径 /opt/minio/logs
# 目前最新版本已经区分了Console和API两个服务的端口,需要指定端口号,否则每次Minio会随即生成端口号。
nohup ./minio server --address :9002 --console-address :9001 /opt/minio/data > /opt/minio/logs/minio.log 2>&1 &

6、 为其赋予执行权限chmod u+x run.sh

sudo chmod u+x run.sh

7、 启动minio并查看日志

# 启动minio服务
sudo bash run.sh
# 查看是否启动成功
ps -ef|grep minio

8、查看minio日志文件

# 查看日志
tail -200f /opt/minio/logs/minio.log 

 

配置minio自启动

1、增加系统用户组和用户(也可以使用配置好的系统用户),并配置minio目录拥有权限

groupadd minio-user
useradd -g minio-user minio-user
cat /etc/group
cat /etc/passwd
chown minio-user:minio-user /opt/minio

2、创建minio配置文件(EnvironmentFile),请自己确定对应文件夹路径,后续自启动脚本内容需要用到

vim  /etc/default/minio
3、修改配置文件内容
MINIO_ROOT_USER="minio-user"
MINIO_ROOT_PASSWORD="minio-pwd"
MINIO_VOLUMES="/opt/minio"
MINIO_OPTS="--address 0.0.0.0:9002 --console-address '0.0.0.0:9001'"
MINIO_VOLUMES:对应minio的安装目录位置
MINIO_OPTS:启动命令,–address是API端口,–console-address是Console对应端口
 

4、新建Systemd服务启动文件minio.service,配置Systemd服务启动。

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
#minio文件具体位置
AssertFileIsExecutable=/opt/minio/minio
[Service]
WorkingDirectory=/opt/minio
# User and group Linux用户组,前文配置的Linux用户组和用户
User=minio-user
Group=minio-user
#创建的配置文件 minio.conf
EnvironmentFile=/minio.conf
ExecStartPre=
ExecStart=/minio server -C /minio/etc /minio/data
# 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

5.将文件拷贝

cp /opt/minio/minio.service /etc/systemd/system/

6、启用和查看状态

systemctl enable minio.service
systemctl daemon-reload
systemctl start minio
systemctl status minio.service

 

相关命令
#重新执行systemd
systemctl daemon-reload
开机自动启动
systemctl enable minio.service
#启动服务
systemctl start minio.service
#停止服务
systemctl stop minio.service
#重启服务
systemctl restrat minio.service
#查看服务状态
systemctl status minio.service
#在引导时禁用服务
systemctl disable minio.service

 

三、使用S3挂载MiniIO到Linux文件系统

参考资料:https://blog.51cto.com/u_14967494/6033832

contos7使用s3fs挂载minio对象存储实践

 

安装s3f3

sudo apt install s3fs

使用上f3挂载存储桶

#创建s3fs密码文件
#将ACCESS_KEY_ID替换为minio账户,SECRET_ACCESS_KEY替换为minio账户密码
echo admin:admin123 > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs

#创建挂载点
mkdir /mnt/minio

#挂载存储桶(当前已创建存储桶test111)
#格式:s3fs -o passwd_file=s3fs密码文件 -o url=minio服务api及端口号 -o use_path_request_style 存储桶名称 挂载点路径

#实例
#密码文件为:!/.passwd-s3fs
#minio服务url及api端口为:http://192.168.59.191:9002
#存储桶名称为:test111
#挂载点路径为:/mnt/minio
s3fs -o passwd_file=~/.passwd-s3fs -o url=http://192.168.59.191:9002 -o use_path_request_style test111 /mnt/minio

#扩展挂载命令
s3fs -o passwd_file=~/.passwd-s3fs -o url=http://192.168.59.191:9000 -o allow_other  -o no_check_certificate -o use_path_request_style -o umask=000 test111 /mnt/minio -o dbglevel=info -f -o curldbg
#-o dbglevel=info -f -o curldbg:运行时显示更多输出,挂载成功后会占用当前shell前端
#-o umask=000:挂载目录的权限
#-o use_path_request_style:启用不支持的类s3 api的兼容性(必须配置,否则挂载minio存储桶失败)
#-o no_check_certificate:不检查证书
#-o allow_other:允许所有用户访问

#查看挂载
df -h

 

 

四、使用rClone挂载MinIO到Windows系统

参考资料:windows下使用Rclone挂载swift对象存储为本地磁盘

1、下载使用与Windows的rclone和相关依赖工具winfsp

https://rclone.org/downloads/

http://www.secfs.net/winfsp/rel/

2、安装软件

3、配置rclone环境变量

配置环境变量:环境变量的值为rclone.exe所在的文件夹路径。

4.配置rclone

配置文件路径C:\Users\{用户名}\AppData\Roaming\rclone

如果没有,可以通过rclone config的子命令一步一步添加。

[dtpw_minio]
type = s3
provider = Minio
access_key_id = minio-user
secret_access_key = minio-pwd
region = ""
endpoint = http://192.168.59.191:9002
acl = private

 

5、挂载

#reclone.exe mount 配置文件name:文件桶  本地文件夹
rclone.exe  mount  dtpw_minio:dtpw  d:\files\minio\dtpw  --vfs-cache-mode writes &

  配置文件错误会引起挂载命令卡机,从minio Console删除文件到本地磁盘更新删除很慢,本地文件添加文件minioServer同步较快。

6、开机自启动挂载

  下载辅助工具WinSW 将命令注册为windows服务  


# 术语解释
1、S3
Simple Storage Service,简单存储服务,这个概念是Amazon在2006年推出的,对象存储就是从那个时候诞生
的。S3提供了一个简单Web服务接口,可用于随时在Web上的任何位置存储和检索任何数量的数据。
2、Object
存储到 Minio 的基本对象,文件等。
3、Bucket
存储对象的空间。每个 Bucket 之间的数据是相互隔离的。相当于存放文件的顶层文件夹
4、Drive
部署 Minio 时设置的磁盘,以参数的方式传入。Minio 中所有的对象数据都会存储在 Drive 里。
5、Set
一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的 Drive 分布在不
同位置。
6.纠删码
纠删码是一种恢复丢失和损坏数据的数学算法,来保证可靠性 。
纠删码技术在分布式存储系统中的应用主要有三类:
阵列纠删码(Array Code: RAID5、RAID6等)
RS(Reed-Solomon)里德-所罗门类纠删码
LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码



# 常用命令
删除文件 rm -rf [文件夹名]

# 添加用户 dtpw Dtpw@2023
sudo adduser dtpw
# 给新用户sudo权限
udo usermod -a -G adm dtpw



posted @ 2023-08-11 19:17  十二楼C  阅读(4535)  评论(0编辑  收藏  举报