minio对象存储

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了minio对象存储相关的知识,希望对你有一定的参考价值。

作者:独笔孤行@taocloud
minio是开源对象存储产品,具有简单、稳定、高性能特性。本文将近minio的基本配置的一些方法。minio有单点运行、纠删码、分布式纠删码三种方式。单点运行配置简单,只需启动minio服务并指定相关数据目录即可。在生产环境中常用的纠删码和分布式纠删码两种,纠删码类型是minio在单节点服务器配置多个数据盘作为数据存放目录的配置方式。分布式纠删码是minio跨节点配置方式,所有节点的盘位组建纠删码,保证业务数据访问的高可用。

一、 minio安装
本地运行minio

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

本地NAS运行minio

gluster v set fareyes disperse.eager-lock off
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=minio123
minio gateway nas /shared/nasvol

注解:此种方式适合在数据存储目录为NAS目录时的配置方法。

二、配置minio服务
1.编辑 /etc/default/minio 配置文件,按照实际目录配置 MINIO_VOLUMES、 MINIO_ACCESS_KEY 、 MINIO_SECRET_KEY 等参数,如果自定义minio占用端口号,需要配置 MINIO_OPTS 参数,但一般使用默认端口号9000,所以无需配置该参数。但要确保 MINIO_VOLUMES 有读写权限。

cat /etc/default/minio 
#Volume to be used for Minio server.
MINIO_VOLUMES="/data/export1/minio"

#Use if you want to run Minio on a custom port.
#MINIO_OPTS="192.168.20.246:9199"

#Access Key of the server.
MINIO_ACCESS_KEY=minioaccesskey

#Access Key of the server.
MINIO_SECRET_KEY=miniosecretkey

2.将 minio.service 服务存放到 /etc/systemd/system 目录下。

cp minio.service /etc/systemd/system/

或,如果有外网,可以直接执行以下命令:
cd /etc/systemd/system/; curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

编辑 /etc/systemd/system/minio.service 文件,可采用默认 User=root 、Group=root参数,也可根据实际情况配置此参数。

[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=root
Group=root

PermissionsStartOnly=true

EnvironmentFile=-/etc/default/minio
……………
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
……………

3.将二进制minio软件存放到/usr/local/bin/目录下

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin

4.启动或禁用minio.service服务

systemctl enable minio.service
systemctl disable minio.service

参考官方链接:
https://github.com/minio/minio-service/tree/master/linux-systemd

三、分布式minio纠删码卷

前置条件:
1.要求至少4个磁盘
2.至少2个校验盘
3.节点可支持最小2节点至最大32节点
4.所有节点间时间一致,不超过3s,可配置ntp时间同步。此条件非常重要,对性能影响明显。
安装minio(所有节点执行命令)

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
export MINIO_ACCESS_KEY=minioaccesskey
export MINIO_SECRET_KEY=miniosecretkey
./minio server http://192.168.20.2{7...8}/data/sd{a...b}/minio

./minio server http://192.168.20.2{7...8}/data/sd{a...b}/minio 命令表示:集群两节点ip地址为192.168.20.27和192.168.20.28,磁盘目录为两个节点的/data/sda/minio和/data/sdb/minio两个目录。其中/data/sda和/data/sdb分别为磁盘的挂载目录。

四、分布式minio服务

所有前提要求同《三、分布式minio纠删码卷》内容。本章节内容为将分布式minio配置以服务方式运行。解决重启后需要手动开启服务的问题。
由于配置分布式minio,以下所有命令操作,需要在所有节点执行。
1.下载minio二进制文件,存放到/usr/local/bin/目录下

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin

2.创建环境配置文件

cat <<EOT >> /etc/default/minio
# Remote volumes to be used for Minio server.
MINIO_VOLUMES=http://192.168.20.27/data/sda/minio http://192.168.20.27/data/sdb/minio http://192.168.20.28/data/sda/minio http://192.168.20.28/data/sdb/minio

# Use if you want to run Minio on a custom port.
#MINIO_OPTS="--address :9199"

# Access Key of the server.
MINIO_ACCESS_KEY=minioaccesskey

# Secret key of the server.
MINIO_SECRET_KEY=miniosecretkey
EOT

其中,MINIO_VOLUMES参数为所有节点的所有磁盘目录,用存放minio数据,要求有读写权限。MINIO_ACCESS_KEY和MINIO_SECRET_KEY为认证方式,可采用文件中默认配置。
3.配置minio.service服务
下载minio.service 模板到 /etc/systemd/system/ 目录

cd /etc/systemd/system/
curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/distributed/minio.service

修改/etc/systemd/system/minio.service文件里[Service]部分的User和Group参数为root。

[Service]

User=root
Group=root

修改后,全文内容如下,其他配置保持默认不变

4.启动服务

systemctl enable minio.service
systemctl start minio.service

参考官方链接:
https://github.com/minio/minio-service/tree/master/linux-systemd/distributed
https://github.com/minio/minio-service/tree/master/linux-systemd

以上是关于minio对象存储的主要内容,如果未能解决你的问题,请参考以下文章

对象存储MinIO的简介与部署

Minio 对象存储

云原生之Docker实战使用Docker部署MinIO对象存储

高性能对象存储minio

高性能对象存储minio

minio对象存储