做者:独笔孤行@taocloud
minio是开源对象存储产品,具备简单、稳定、高性能特性。本文将近minio的基本配置的一些方法。minio有单点运行、纠删码、分布式纠删码三种方式。单点运行配置简单,只需启动minio服务并指定相关数据目录便可。在生产环境中经常使用的纠删码和分布式纠删码两种,纠删码类型是minio在单节点服务器配置多个数据盘做为数据存放目录的配置方式。分布式纠删码是minio跨节点配置方式,全部节点的盘位组建纠删码,保证业务数据访问的高可用。linux
1、 minio安装
本地运行minioios
wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod +x minio ./minio server /data
本地NAS运行miniogit
gluster v set fareyes disperse.eager-lock off export MINIO_ACCESS_KEY=minio export MINIO_SECRET_KEY=minio123 minio gateway nas /shared/nasvol
注解:此种方式适合在数据存储目录为NAS目录时的配置方法。github
2、配置minio服务
1.编辑 /etc/default/minio 配置文件,按照实际目录配置 MINIO_VOLUMES、 MINIO_ACCESS_KEY 、 MINIO_SECRET_KEY 等参数,若是自定义minio占用端口号,须要配置 MINIO_OPTS 参数,但通常使用默认端口号9000,因此无需配置该参数。但要确保 MINIO_VOLUMES 有读写权限。bash
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.在 /etc/systemd/system 目录下,配置 minio.service 服务。服务器
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参数,也可根据实际状况配置此参数。curl
[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 EnvironmentFile=-/etc/default/minio ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi" ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES # 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 # Built for ${project.name}-${project.version} (${project.name})
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服务ide
systemctl enable minio.service systemctl disable minio.service
参考官方连接:
https://github.com/minio/minio-service/tree/master/linux-systemd性能
前置条件:
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分别为磁盘的挂载目录。
全部前提要求同《3、分布式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
修改后,全文内容以下,其余配置保持默认不变
[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 EnvironmentFile=-/etc/default/minio ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi" ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_ACCESS_KEY}\" ]; then echo \"Variable MINIO_ACCESS_KEY not set in /etc/default/minio\"; exit 1; fi" ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_SECRET_KEY}\" ]; then echo \"Variable MINIO_SECRET_KEY not set in /etc/default/minio\"; exit 1; fi" ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES # 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 # Built for ${project.name}-${project.version} (${project.name})
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
欢迎扫描关注本人公众号,会定时分享IT技术文章,若有其它技术问题,可随时咨询。