MinIO配置与使用
在数字化时代,数据存储与管理变得尤为重要,尤其是对于非结构化数据如日志文件的处理。MinIO,作为一个高性能、可扩展的分布式对象存储系统,以其对Amazon S3的全面兼容性和轻量级设计,成为了众多企业和开发者存储大量数据的首选。本文将带你深入了解MinIO的配置方法
部署MinIO
集群节点规划
| 节点信息 | 服务 | 数据盘 |
|---|---|---|
| 192.168.1.10 | minio server | /data/minio_data/{data1,data2} |
| 192.168.1.11 | minio server | /data/minio_data/{data1,data2} |
| 192.168.1.12 | minio server | /data/minio_data/{data1,data2} |
| 192.168.1.13 | minio server | /data/minio_data/{data1,data2} |
| 192.168.1.14 | nginx |
依赖:Ansible,docker,nginx,具体参考资料在文末
集群基础环境准备
创建minio节点 配置文件minio.hosts
[minio]
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
初始化环境
关闭防火墙
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
修改系统最大文件数
ulimit -n #查看最大连接数
ulimit -a
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
sysctl -p
reboot
创建启动脚本/配置文件/数据目录
# 创建启动脚本目录
ansible -i minio.hosts minio -m file -a 'path=/usr/local/app/minio/bin state=directory mode=0755'
# 创建配置文件目录
ansible -i minio.hosts minio -m file -a 'path=/etc/minio state=directory mode=0755'# 创建数据目录
ansible -i minio.hosts minio -m file -a 'path=/data/minio_data/data1 state=directory mode=0755'
ansible -i minio.hosts minio -m file -a 'path=/data/minio_data/data2 state=directory mode=0755'
安装包准备
下载minio
# 下载minio
cd /data/minio/bin && wget https://dl.min.io/server/minio/release/linux-amd64/minio
推送安装包
# 推送minio到所有节点
ansible -i minio.hosts minio -m copy -a 'src=/usr/local/app/minio/bin/minio dest=/usr/local/app/minio/bin/minio mode=0755'
启动脚本准备
脚本名称:run.sh
#!/bin/bash
export MINIO_ROOT_USER=minio #访问密钥,用于身份验证。根据自身情况进行修改
export MINIO_ROOT_PASSWORD=123456 # 秘密密钥,用于身份验证,根据自身情况进行修改。/usr/local/app/minio/bin/minio server --config-dir /etc/minio --address ":9000" --console-address ":9001" \
http://192.168.1.36/data/minio_data/data1 http://192.168.1.36/data/minio_data/data2 \
http://192.168.1.91/data/minio_data/data1 http://192.168.1.91/data/minio_data/data2 \
http://192.168.1.92/data/minio_data/data1 http://192.168.1.92/data/minio_data/data2 \
http://192.168.1.110/data/minio_data/data1 http://192.168.1.110/data/minio_data/data2
部署
推送启动脚本到所有节点
ansible -i minio.hosts minio -m copy -a 'src=/usr/local/app/minio/bin/run.sh dest=/usr/local/app/minio/bin/run.sh mode=0755'
创建systemd配置文件minio.service
/usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/[Service]
WorkingDirectory=/usr/local/app/minio/bin/
ExecStart=/usr/local/app/minio/bin/run.shRestart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target
推送启动minio.service到所有节点
ansible -i minio.hosts minio -m copy -a 'src=/usr/lib/systemd/system/minio.service dest=/usr/lib/systemd/system/minio.service mode=0755'
启动minio
# 启动minio
ansible -i minio.hosts minio -m shell -a 'systemctl daemon-reload'
ansible -i minio.hosts minio -m shell -a 'systemctl enable minio'
ansible -i minio.hosts minio -m shell -a 'systemctl start minio'
ansible -i minio.hosts minio -m shell -a 'systemctl status minio'
检查(查看到running)
systemctl status minio
● minio.service - Minio serviceLoaded: loaded (/usr/lib/systemd/system/minio.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2024-04-03 16:45:15 CST; 1 months 2 days agoDocs: https://docs.minio.io/Main PID: 38640 (run.sh)Tasks: 30Memory: 1.7GCGroup: /system.slice/minio.service
访问
浏览器输入集群任意节点地址+9000端口,即可访问minio,可创建“bucket”并上传文件测试
http://192.168.1.10:9000
http://192.168.1.11:9000
http://192.168.1.12:9000
http://192.168.1.13:9000
输入账户minio密码123456即可访问
Nginx代理
# 搭建nginx 参考https://zhuanlan.zhihu.com/p/639039219
# 由于测试主机80端口被占,nginx这里使用8080端口
docker run -p 8080:80 -p 8081:81 --name nginx-prod --restart=always -v /opt/docker/nginx/conf:/etc/nginx -v /opt/docker/nginx/html:/usr/share/nginx/html -v /var/log/nginx:/var/log/nginx -d nginx:1.25.1#映射下面目录到宿主机
/opt/docker/nginx/conf # nginx 配置文件目录
/opt/docker/nginx/html # Nginx默认站点目录
/var/log/nginx #Nginx日志目录
nginx配置minio
打开 /opt/docker/nginx/conf/conf.d/minio.conf,编辑
推荐配置
( MinIO Server listening 和 MinIO Console listening分开)
upstream minio {least_conn;server 192.168.1.10:9000;server 192.168.1.11:9000;server 192.168.1.12:9000;server 192.168.1.13:9000;
}upstream minio_console {least_conn;server 192.168.1.10:9001;server 192.168.1.11:9001;server 192.168.1.12:9001;server 192.168.1.13:9001;
}
server {listen 80;server_name minio;location / {proxy_pass http://minio;proxy_set_header Host $http_host;#client_max_body_size 1000m;#添加了websocket支持,解决object browser loading 问题proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}location /minio/ui/ {rewrite ^/minio/ui/(.*) /$1 break;proxy_pass http://minio_console;proxy_set_header Host $http_host;#client_max_body_size 1000m;#添加了websocket支持,解决object browser loading 问题proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}}
nginx 启停
# 查看配置文件是否正确
docker exec -i nginx-prod /sbin/nginx -t
# 重新加载配置
docker exec -i nginx-prod /sbin/nginx -c /etc/nginx/nginx.conf -s reload
# 重启nginx
docker exec -i nginx-prod /sbin/nginx -c /etc/nginx/nginx.conf -s reopen
访问
http://192.168.1.14:8081
输入账户minio密码123456即可访问
相关文章:
MinIO配置与使用
在数字化时代,数据存储与管理变得尤为重要,尤其是对于非结构化数据如日志文件的处理。MinIO,作为一个高性能、可扩展的分布式对象存储系统,以其对Amazon S3的全面兼容性和轻量级设计,成为了众多企业和开发者存储大量数…...
【漏洞复现】SpringBlade menu/list SQL注入漏洞
》》》产品描述《《《 致远互联智能协同是一个信息窗口与工作界面,进行所有信息的分类组合和聚合推送呈现。通过面向角色化、业务化、多终端的多维信息空间设计,为不同组织提供协同门户,打破组织内信息壁垒,构建统一协同沟通的平台。 》》》漏洞描述《《《 致远互联 FE协作办公…...
物联网智能项目(含案例说明)
物联网(Internet of Things,简称IoT)智能项目是指利用物联网技术将各种物理设备、传感器、软件、网络等连接起来,实现设备之间的互联互通,并通过数据采集、传输、处理和分析,实现智能化管理和控制的项目。以…...
【YOLOv8改进】 YOLOv8 更换骨干网络之GhostNetV3步骤详解
这里yolov8源码版本是 ultralytics-8.2.54 GhostNetV3 源码下载 https://codeload.github.com/huawei-noah/Efficient-AI-Backbones 将ghostnetv3.py文件复制一份到源码./ultralytics-8.2.54/ultralytics/nn/modules路径下 我根据mobilenetv4的教程,修改了ghostne…...
成绩查询小程序,家长查分超方便~
这都马上2025年了,我不相信还有老师不知道怎么发成绩,如果你不知道,那么这篇文章不要错过,推荐给大家我用了7年的发成绩工具 易查分,新版本更新之后,发成绩只需要一分钟的时间即可生成一个成绩查询系统。 …...
鸿蒙开发(NEXT/API 12)【上传下载文件】远场通信场景
场景介绍 本协议栈框架支持将文件上传到服务器或者从服务器下载文件。 开发步骤 导包。 import { rcp } from kit.RemoteCommunicationKit; import {fileIo} from kit.CoreFileKit;下载文件。 let SESSION_CONFIG: rcp.SessionConfiguration {// 此处请根据业务设置合适的…...
快速理解AUTOSAR CP的软件架构层次以及各层的作用
在 AUTOSAR CP 的架构中,软件分为 应用层 (App)、运行时环境 (RTE) 和 基础软件层 (BSW) 三个主要层级。下面是每一层的主要功能与简单的代码示例来展示它们之间的关系。 1. 概述 应用层 (App):包含应用程序代码,主要实现业务逻辑。应用层通…...
【Unity】Unity中接入Admob聚合广告平台,可通过中介接入 AppLovin,Unity Ads,Meta等渠道的广告
一、下载Google Admob的SDK插件 到Google Admob官网中,切换到Unity平台 进来之后是这样,注意后面有Unity标识,然后点击下载,跳转到github中,下载最新的Admob插件sdk,导入到Unity中 二、阅读官方文档&…...
PythonExcel批量pingIP地址
问题: 作为一个电气工程师(PLC),当设备掉线的时候,需要用ping工具来检查网线物理层是否可靠连接,当项目体量过大时,就不能一个手动输入命令了。 解决方案一: 使用CMD命令 for /L %…...
软媒市场新蓝海:软文媒体自助发布与自助发稿的崛起
在信息时代的浪潮中,软媒市场以其独特的魅力和无限的潜力,成为了企业营销的新宠。随着互联网的飞速发展,软文媒体自助发布平台应运而生,为企业提供了更加高效、便捷的营销方式。而自助发稿功能的加入,更是让软媒市场的蓝海变得更加广阔。 软媒市场的独特价值 软媒市场之所以能…...
【笔记】Day2.5.1查询运费模板列表(未完
(一)代码编写 1.阅读需求,确保理解其中的每一个要素: 获取全部运费模板:这意味着我需要从数据库中查询所有运费模板数据。按创建时间倒序排序:这意味着查询结果需要根据模板的创建时间进行排序࿰…...
阿基米德螺旋线等距取点
曲线公式 极坐标形式: 笛卡尔坐标形式: 弧长公式 对极坐标形式积分可得弧长为: 将上式转换为一元二次方程: 解此一元二次方程可得: 等距取点 弧长L等距递增,代入公式,再利用笛卡尔坐标公式即…...
2024年全球增强现实(AR)市场分析报告
一、增强现实统计数据(2024) 市场价值:2024年,全球AR市场价值超过320亿美元,并预计到2027年将突破500亿美元。用户基础:目前约有14亿活跃的AR用户设备,这一数字预计将在2024年增长至17.3亿。消费者认知:大约四分之三的44岁以下成年人对AR有所了解。购物体验:基于AR的购物…...
探索 NetworkX:Python中的网络分析利器
文章目录 **探索 NetworkX:Python中的网络分析利器**一、背景介绍二、NetworkX是什么?三、如何安装NetworkX?四、NetworkX的五个简单函数五、NetworkX的三个应用场景六、常见问题及解决方案七、总结 探索 NetworkX:Python中的网络…...
Python知识点:基于Python技术,如何使用AirSim进行无人机模拟
开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 如何使用Python和AirSim进行无人机模拟 无人机技术的发展为许多行业带来了革命性…...
《中国林业产业》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答 问:《中国林业产业》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《中国林业产业》级别? 答:国家级。主管单位:国家林业和草原局 …...
私域流量下的白酒新传奇:半年破五千万的营销策略揭秘
在当今的数字化浪潮中,某白酒品牌独树一帜,摒弃了实体店和传统电商的常规路径,仅凭其精心构建的私域流量生态,在短短六个月内创造了超过五千万元的销售额奇迹。这一非凡成就背后,蕴含着一套独特的营销策略。 重塑营销&…...
Tomcat 配置:方便运行 Java Web 项目
目录 一、作用 二、安装 三、配置环境 四、启动 五、访问 一、作用 是一个轻量级的web服务器,可使用Tomcat运行Java Web项目。 二、安装 1. 基于JDK(安装Tomcat之前,先安装JDK,并配置环境变量JAVA_HOME) 2. apache-tom…...
Spring Boot知识管理:机器学习与AI集成
5系统详细实现 5.1 管理员模块的实现 5.1.1 用户管理 知识管理系统的管理员可以对用户新增,修改,删除,查询操作。具体界面的展示如图5.1所示。 图5.1 用户管理管理界面 5.1.2 文章分类 管理员登录可以在文章分类新增,修改&#…...
Superset SQL模板使用
使用背景 有时想让表的时间索引生效,而不是在最外层配置报表时,再套多一层时间范围。这时可以使用SQL模板 参考官方文档 https://superset.apache.org/docs/configuration/sql-templating/#:~:textSQL%20Lab%20and%20Explore%20supports%20Jinja 我…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
