您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

linux系统部署minio,强烈推荐

时间:2022-10-17 11:19:23  来源:网易号  作者:

本文仅介绍在linux系统中部署minio

软件下载

!!!强烈建议同一个业务系统使用同一固定版本,防止版本变动带来的不必要的问题

下载最新版文件

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

注意:

 

  1. 生产环境部署时,密码一定要更换!!!
  2. 文中的IP地址一定要换成自己的实际IP地址。
  3. 注意防火墙的端口开放[9000-9010],[19000-19010],当然也可以更换为自己想要的端口。

 

部署运行 安装minio 和 mc chmod +x minio mv minio /usr/local/bin/ chmod +x mc mv mc /usr/local/bin/ 创建minio用户 # 创建用户组:-r创建一个系统账户 groupadd -r minio # 创建用户 -M不创建用户的主目录 -r创建一个系统账户 -g新账户主组的名称或 ID useradd -M -r -g minio minio 脚本方式部署

首先我们建议将脚本统一放在/opt/minio目录下,并授权给minio用户,包括后面自行编写的导入导出脚本

# 授权用户目录权限 chown minio:minio /opt/minio # 赋予脚本执行权限 chmod 777 /opt/minio/*.sh

单节点单驱动器部署

不具有纠删码校验修复能力 简单、快速部署

 

1.创建和授权minio用户数据目录

mkdir /mnt/data chown minio:minio /mnt/data

2.启动脚本 /opt/minio/minio-simple-start.sh

#!/bin/bash RUNNING_USER=minio MINIO_root_USER=minioadmin MINIO_ROOT_PASSword=miniopwd MINIO_DATA=/mnt/data START_CMD="MINIO_ROOT_USER=${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} nohup minio server --console-address ":19000" ${MINIO_DATA} > ./minio-simple-run.log 2>&1 &" su ${RUNNING_USER} -c "${START_CMD}" echo "${START_CMD}"

3.管理操作

# 启动实例 ./minio-simple-start.sh # 访问控制台 (注意:访问http://ip:9000也会直接重定向到19000端口) http://ip:19000 # 查看日志 tAIl -100f minio-simple-run.log # 查看所有minio进程 ps -ef |grep minio # 杀死所有minio进程 ps -aux | grep minio | awk '{print $2}' | xargs kill


 

单节点多驱动器部署

具有纠删码校验修复能力 下例中/mnt/disk{1...4},用的是目录模拟的驱动器,实际生产环境中,应挂载为4个磁盘

 

1.创建和授权minio用户数据模拟的驱动器目录

mkdir /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4 chown minio:minio /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4

2.启动脚本 /opt/minio/minio-start.sh

#!/bin/bash RUNNING_USER=minio MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=miniopwd MINIO_DATA=/mnt/disk{1...4} # CI=true 允许根目录磁盘作为驱动器(模拟时使用,生产环境可去除) START_CMD="MINIO_ROOT_USER=${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} CI=true nohup minio server --console-address ":19000" ${MINIO_DATA} > ./minio-run.log 2>&1 &" su ${RUNNING_USER} -c "${START_CMD}" echo "${START_CMD}"

3.管理操作

# 启动实例 ./minio-start.sh # 访问控制台 (注意:访问http://ip:9000也会直接重定向到19000端口) http://ip:19000 # 查看日志 tail -100f minio-run.log # 查看所有minio进程 ps -ef |grep minio # 杀死所有minio进程 ps -aux | grep minio | awk '{print $2}' | xargs kill


 

多节点多驱动器部署

具有纠删码校验修复能力 模拟准备四个节点,每个节点四个驱动器 本例中用的是目录模拟的节点和驱动器,实际生产环境中,应以4个服务器作为节点,每个节点挂载为4个磁盘

 

1.创建和授权minio用户数据模拟的节点以及驱动器目录

mkdir /mnt/mdata && mkdir /mnt/mdata/node1 /mnt/mdata/node2 /mnt/mdata/node3 /mnt/mdata/node4 mkdir /mnt/mdata/node1/disk1 /mnt/mdata/node1/disk2 /mnt/mdata/node1/disk3 /mnt/mdata/node1/disk4 mkdir /mnt/mdata/node2/disk1 /mnt/mdata/node2/disk2 /mnt/mdata/node2/disk3 /mnt/mdata/node2/disk4 mkdir /mnt/mdata/node3/disk1 /mnt/mdata/node3/disk2 /mnt/mdata/node3/disk3 /mnt/mdata/node3/disk4 mkdir /mnt/mdata/node4/disk1 /mnt/mdata/node4/disk2 /mnt/mdata/node4/disk3 /mnt/mdata/node4/disk4 # 赋予用户和文件夹读写权限,否则会无权限错误 chown minio:minio /mnt/mdata # 赋予所有节点可读写权限,否则建立驱动器时会报错 chmod -R 777 /mnt/mdata

2.启动脚本 /opt/minio/minio-multi-start.sh

#!/bin/bash RUNNING_USER=minio MINIO_HOST=192.168.1.110 MINIO_ROOT_USER="minioadmin" MINIO_ROOT_PASSWORD="miniopwd" for i in {1..4}; do START_CMD="MINIO_ROOT_USER=${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} nohup minio server --address "${MINIO_HOST}:900${i}" --console-address "${MINIO_HOST}:1900${i}" http://${MINIO_HOST}:9001/mnt/mdata/node1/disk{1...4} http://${MINIO_HOST}:9002/mnt/mdata/node2/disk{1...4} http://${MINIO_HOST}:9003/mnt/mdata/node3/disk{1...4} http://${MINIO_HOST}:9004/mnt/mdata/node4/disk{1...4} > ./minio-multi-run${i}.log 2>&1 &" su ${RUNNING_USER} -c "${START_CMD}" echo "${START_CMD}" done

3.管理操作

# 启动实例 ./minio-multi-start.sh # 访问控制台 (注意:访问http://ip:9001也会直接重定向到19001端口) http://ip:19001 http://ip:19002 ... # 查看日志 tail -100f minio-multi-run1.log tail -100f minio-multi-run2.log ... # 查看所有minio进程 ps -ef |grep minio # 杀死所有minio进程 ps -aux | grep minio | awk '{print $2}' | xargs kill

4.多节点Nginx负载均衡

upstream minio { server 192.168.1.110:9001; server 192.168.1.110:9002; server 192.168.1.110:9003; server 192.168.1.110:9004; } server{ listen 9000; server_name 192.168.1.110; ignore_invalid_headers off; proxy_buffering off; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header Host $http_host; proxy_connect_timeout 300; #秒 proxy_http_version 1.1; client_body_buffer_size 100m; client_max_body_size 1000m; chunked_transfer_encoding off; proxy_ignore_client_abort on; proxy_pass http://minio; } }

然后就可以通过:192.168.1.110:9000 直接访问API了,当然访问控制台还是会重定向到1900{1...4}端口。


 

服务方式部署 官方文档

官方文档

https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html

 

使用多驱动器的建议
  1. 如果使用多驱动器,强烈建议使用具有 XFS 格式磁盘的直连 JBOD 阵列,以获得最佳性能。
  2. 多个磁盘确保具有相同的容量和格式,否则minio会限制每个磁盘的容量为最小的那个。
  3. 挂在磁盘时确保使用/etc/fstab,保证每次重启自动挂载磁盘。
  4. MinIO 不支持将具有现有 MinIO 数据的驱动器任意迁移到新的挂载位置
mkfs.xfs /dev/sdb -L DISK1 mkfs.xfs /dev/sdc -L DISK2 mkfs.xfs /dev/sdd -L DISK3 mkfs.xfs /dev/sde -L DISK4 nano /etc/fstab # LABEL=DISK1 /mnt/disk1 xfs defaults,noatime 0 2 LABEL=DISK2 /mnt/disk2 xfs defaults,noatime 0 2 LABEL=DISK3 /mnt/disk3 xfs defaults,noatime 0 2 LABEL=DISK4 /mnt/disk4 xfs defaults,noatime 0 2 单节点单/多驱动器部署

 

1.创建 /etc/systemd/system/minio.service 服务

cd /etc/systemd/system/ touch minio.service

/etc/systemd/system/minio.service
[Unit] Description=MinIO Documentation=https://min.io/docs/minio/linux/index.html Wants.NETwork-online.target After=network-online.target AssertFileIsExecutable=/usr/local/bin/minio [Service] WorkingDirectory=/usr/local # Run Os User User=minio Group=minio ProtectProc=invisible 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 # Specifies the maximum number of threads this process can create TasksMax=infinity # 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})

 

2.创建和授权minio用户数据模拟的驱动器目录

# 用于模拟多驱动器的目录 mkdir /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4 chown minio:minio /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4 # 用于单驱动器的目录 mkdir /mnt/data chown minio:minio /mnt/data

3.创建环境变量(注意更改用户名/密码)

# windows的在C:minioconfig touch /etc/default/minio vi /etc/default/minio

/etc/default/minio 文件内容如下
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server. # This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment. # Omit to use the default values 'minioadmin:minioadmin'. # MinIO recommends setting non-default values as a best practice, regardless of environment MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=miniopwd # MINIO_VOLUMES sets the storage volume or path to use for the MinIO server. # 单驱动器 # MINIO_VOLUMES="/mnt/data" # 多驱动器(至少4个以上) MINIO_VOLUMES="/mnt/disk{1...4}" # 控制台访问端口 MINIO_OPTS="--console-address :19000" # 该参数设置为true支持挂载根目录的多驱动器部署(不建议) CI=true # MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server # MinIO assumes your network control plane can correctly resolve this hostname to the local machine # Uncomment the following line and replace the value with the correct hostname for the local machine. #MINIO_SERVER_URL="http://minio.example.net"

 

4.管理操作

# 启用服务 systemctl enable minio.service # 启动 sudo systemctl start minio.service systemctl start minio.service # 重启 systemctl restart minio.service # 停止 systemctl stop minio.service # 查看状态 systemctl status minio.service journalctl -f -u minio.service 多节点多驱动器

对于多节点驱动器部署,至少需要4个以上的节点才能满足最低的纠删码校验修复功能

多节点多驱动器服务部署是官方的方式目前没有实验过,所以本文档可能参考的意义不多。

建议可直接翻阅官方文档。

多节点多驱动器官方文档

https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html

MinIO 强烈建议为部署中的所有节点选择基本相似的硬件配置。确保硬件(CPU、内存主板、存储适配器)和软件(操作系统、内核设置、系统服务)在所有节点上保持一致。

1.按照单节点的步骤部署4台存储服务

 

部署具有单个服务器池,该池由四个具有顺序主机名的 MinIO 服务器主机组成。
# IP 192.168.10.101 192.168.10.102 192.168.10.103 192.168.10.104 # 或主机名 minio1.example.com minio3.example.com minio2.example.com minio4.example.com
每个服务器上的 /etc/default/minio 文件内容调整如下
# Set the hosts and volumes MinIO uses at startup # The command uses MinIO expansion notation {x...y} to denote a # sequential series. # # The following example covers four MinIO hosts # with 4 drives each at the specified hostname and drive locations. # The command includes the port that each MinIO server listens on # (default 9000) # MINIO_VOLUMES="http://192.168.10.10{1...4}:9000/mnt/disk{1...4}" MINIO_VOLUMES="https://minio{1...4}.example.net:9000/mnt/disk{1...4}" # Set all MinIO server options # # The following explicitly sets the MinIO Console listen address to # port 9001 on all network interfaces. The default behavior is dynamic # port selection. MINIO_OPTS="--console-address :19000" # Set the root username. This user has unrestricted permissions to # perform S3 and administrative API operations on any resource in the # deployment. # # Defer to your organizations requirements for superadmin user name. MINIO_ROOT_USER=minioadmin # Set the root password # # Use a long, random, unique string that meets your organizations # requirements for passwords. MINIO_ROOT_PASSWORD=miniopwd # 负载均衡URL设置 # Set to the URL of the load balancer for the MinIO deployment # This value *must* match across all MinIO servers. If you do # not have a load balancer, set this value to to any *one* of the # MinIO hosts in the deployment as a temporary measure. # MINIO_SERVER_URL="http://192.168.10.100:9000" MINIO_SERVER_URL="https://minio.example.net:9000"

 

可能的问题 1. 遇到类似 Unknown lvalue 'ProtectProc' in section 'Service' # 升级systemd yum install systemd-* -y 2. Error: Disk /mnt/disk1 is part of root disk # 将 /etc/default/minio 文件下 设置CI=true # 这是因为minio默认不允许多驱动器模式直接使用根目录的磁盘 CI=true

存储迁移

主要是利用mc进行迁移操作

# 从机器1 迁移到 机器2 # 设置机器1别名 mc alias set mdata http://127.0.0.1:9000 minioadmin miniopwd # 查看已设置的别名列表 mc alias list # 导出备份 mdata:别名,base:存储桶 mc cp --recursive mdata/base/ /mnt/minio_data_bak/ # 将minio_data_bak打包迁移到机器2 # 设置机器2别名 mc alias set mdata http://127.0.0.1:9000 minioadmin miniopwd # 导入备份文件 mdata:别名,base:存储桶 mc cp --recursive /mnt/minio_data_bak/ mdata/base/

更多MC命令可参考官方文档:mc命令操作说明

https://min.io/docs/minio/linux/reference/minio-mc.html#minio-client

结语

如有错误请指正,非常感谢!



Tags:minio   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Spring Boot整合Minio实现上传凭证、分片上传、秒传和断点续传
概述Spring Boot整合Minio后,前端的文件上传有两种方式: 文件上传到后端,由后端保存到Minio 这种方式好处是完全由后端集中管理,可以很好的做到、身份验证、权限控制、文件与处...【详细内容】
2023-09-04  Search: minio  点击:(253)  评论:(0)  加入收藏
Linux 安装/卸载 Minio
安装创建目录[root@t2 local]# mkdir minio[root@t2 local]# cd minio[root@t2 minio]# mkdir data下载[root@t2 minio]# wget https://dl.min.io/server/minio/release/li...【详细内容】
2023-08-18  Search: minio  点击:(333)  评论:(0)  加入收藏
如何使用miniOrange插件向WordPress添加双因素身份验证
在这篇文章中,六翼将直接深入研究如何使用miniOrange双因素身份验证器插件向WordPress添加双因素身份验证。步骤1:安装并激活Google身份验证器–miniOrange的双因素身份...【详细内容】
2023-07-28  Search: minio  点击:(172)  评论:(0)  加入收藏
SpringBoot 整合 Minio
MinIO官网:https://min.ioMinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储。它采用 GNU AGPL v3 开源协议,项目地址是 https://github.com/minio/minio 。它适合存...【详细内容】
2023-07-19  Search: minio  点击:(195)  评论:(0)  加入收藏
linux系统部署minio,强烈推荐
本文仅介绍在linux系统中部署minio软件下载!!!强烈建议同一个业务系统使用同一固定版本,防止版本变动带来的不必要的问题下载最新版文件wget https://dl.min.io/server/minio/re...【详细内容】
2022-10-17  Search: minio  点击:(922)  评论:(0)  加入收藏
OSS服务器(MinIO)的搭建和应用
本文主要分享了如何搭建一个类似阿里云OSS的对象存储服务器。以windows环境下MinIO的搭建举例说明,linux环境下的搭建网上也有很多教程,请自行搜索相关资料。一、下载地址:http...【详细内容】
2022-10-07  Search: minio  点击:(698)  评论:(0)  加入收藏
MinIo的安装,问题的解决、SpringBoot的集成
一、下载MinIo的地址https://min.io/download#/windows二、如何进行启动 绝对路径\minio.exe server F:\Data --console-address ":9001" 访问页面http://192.168.1.100:90...【详细内容】
2022-09-26  Search: minio  点击:(4823)  评论:(0)  加入收藏
minio集群将一切访问都交给nginx
问题一般在正式的环境下,通过给域名添加子路径(如oss)用于下载文件服务器上的文件。但这种设置子路径的方式不能直接通过API上传文件,创建桶等,鉴于安全,也不能让这种子路径拥有创...【详细内容】
2022-09-05  Search: minio  点击:(2044)  评论:(0)  加入收藏
什么是Minio?如何搭建Minio集群?
一、Minio介绍1.1 Minio简介MinIO 是高性能的对象存储,是为海量数据存储、人工智能、大数据分析而设计的,它完全兼容Amazon S3接口,单个对象最大可达5TB,适合存储海量图片、视频...【详细内容】
2022-06-13  Search: minio  点击:(20749)  评论:(0)  加入收藏
Centos7 搭建minio集群配合nginx做文件服务器
一、准备机器  1、准备四台机器,(minio集群最少四台)。192.168.223.132 minio-1192.168.223.133 minio-2192.168.223.134 minio-3192.168.223.135 minio-4  2、编辑hosts文...【详细内容】
2021-05-19  Search: minio  点击:(809)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(6)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(16)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(10)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(12)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(54)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(50)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(53)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(77)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(69)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(85)  评论:(0)  加入收藏
站内最新
站内热门
站内头条