分布式_minio_纠删码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式_minio_纠删码相关的知识,希望对你有一定的参考价值。
参考技术A纠删码
使用 Minio Docker镜像,在8块盘中启动Minio 服务:
就是之前是一个盘,现在挂了8个盘
启动成功后,新建一个bucket,上传三个文件
图示:
在minio 存储数据的目录下观察结构:
在结构图中:
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_纠删码的主要内容,如果未能解决你的问题,请参考以下文章