minio集群部署

1.说明:

安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替。

运行分布式 MinIO 实例的服务器时间差不应超过15分钟

所有运行分布式 MinIO 设置的节点都是同构的,即相同的操作系统、相同数量的磁盘和相同的网络互连 。

MinIO 的节点需要具有相同的访问密钥和秘密密钥才能连接,即access key 和 MINIO secret key 都要一样。

2.创建目录

  mkdir -p /opt/minio/{run,data} && mkdir -p /etc/minio

3.挂载新的硬盘

  挂载/opt/minio目录,忘记的话,搜linux挂载新硬盘



挂载完后,记得配置文件 /etc/fstab 也需要增加,不然服务器重启之后,就掉盘了

/dev/sdb1 /opt/minio ext4 defaults 0 0

4.下载Minio到/opt/minio/run

  cd /opt/minio/run
wget https://dl.min.io/server/minio/release/linux-amd64/minio

5.创建启动脚本文件

  vim /opt/minio/run/run.sh
#Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口
#注意 :
#MINIO_ROOT_USER:用户名,长度最小是5个字符
#MINIO_ROOT_PASSWORD:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
#–config-dir:指定集群配置文件目录
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=adminbfd123

/opt/minio/run/minio server --config-dir /etc/minio

--address "0.0.0.0:9029" --console-address ":9000"

http://172.16.11.1:9029/opt/minio/data

http://172.16.11.2:9029/opt/minio/data > minio_server.log

6.创建停止脚本文件

  cat <<EOF > /opt/minio/run/stop.sh

!/bin/bash

MinIO停止脚本

ps -ef | grep minio | grep -v 'grep' | awk '{print $2}'| xargs kill -9

if $? != 0;then

echo "minio service stop failed."

exit 1

fi

EOF

7.创建Minio.server

cat <<EOF > /etc/systemd/system/minio.service

[Unit]

Description=Minio service

Documentation=https://docs.minio.io/

[Service]

WorkingDirectory=/opt/minio/run/

ExecStart=/opt/minio/run/run.sh

ExecStop=/opt/minio/run/stop.sh

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

EOF

8、权限修改

chmod +x /etc/systemd/system/minio.service && chmod +x /opt/minio/run/minio && chmod +x /opt/minio/run/run.sh && chmod +x /opt/minio/run/stop.sh

9.启动集群(依次执行命令)

systemctl daemon-reload
systemctl start minio
systemctl enable minio
systemctl status minio.service

10.配置nginx代理

vim   minio-cluster.conf
配置文件内容:
     # websocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream minio_console {
server 172.16.11.1:9000 max_fails=3 fail_timeout=5s;
server 172.16.11.2:9000 max_fails=3 fail_timeout=5s; }
upstream minio_api {
server 172.16.11.1:9029 max_fails=3 fail_timeout=5s;
server 172.16.11.2:9029 max_fails=3 fail_timeout=5s; } server {
listen 80;
listen 443 ssl;
server_name cons.minio.com; ssl_certificate keys/abcty6/server.crt;
ssl_certificate_key keys/abcty6/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 1G; #如果上传文件大于1G,就需要更改这个参数
client_header_timeout 1m;
client_body_timeout 1m;
proxy_connect_timeout 60s;
proxy_read_timeout 1m;
proxy_send_timeout 1m; location / {
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_pass http://minio_console;
expires 0; }
} server {
listen 80;
listen 443 ssl;
server_name apapi.minio.com; ssl_certificate keys/abcty6/server.crt;
ssl_certificate_key keys/abcty6/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 1G;
client_header_timeout 1m;
client_body_timeout 1m;
proxy_connect_timeout 60s;
proxy_read_timeout 1m;
proxy_send_timeout 1m; location / {
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio_api;
expires 0;
}
}
  重载配置
./nginx -s reload
至此,集群成功!

11.数据迁移

### 11.1下载mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc

chmod +x mc

./mc --help

./mc config host add hk http://172.16.11.1:9029

11.2给远程主机批量创建桶名

11.3拷贝文件和对象到新的服务器

文章参考:https://blog.csdn.net/weixin_42324463/article/details/126442490

minio集群部署的更多相关文章

  1. Minio分布式集群部署——Swarm

    最近研究minio分布式集群部署,发现网上大部分都是单服务器部署,而minio官方在github上现在也只提供了k8s和docker-compose的方式,网上有关与swarm启动minio集群的文章 ...

  2. MinIO分布式集群部署方式

    文章转载自:https://blog.51cto.com/u_10950710/4843738 关于分布式集群MinIo 单机Minio服务存在单点故障,如果是一个有N块硬盘的分布式Minio,只要有 ...

  3. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  4. 分布式存储Minio集群环境搭建

    MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...

  5. 21.ubuntu16.04 Minio 集群搭建

    MinIo是什么:MinIO 是一个基于Apache License v2.0开源协议的对象存储服务.它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据. minio是一个非常轻量级的 ...

  6. 使用containerd搭建MinIO集群服务

    概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用containerd的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 REL ...

  7. 使用Docker搭建MinIO集群服务

    概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 RELEASE ...

  8. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  9. Openfire 集群部署和负载均衡方案

    Openfire 集群部署和负载均衡方案 一.   概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Hapro ...

  10. 基于Tomcat的Solr3.5集群部署

    基于Tomcat的Solr3.5集群部署 一.准备工作 1.1 保证SOLR库文件版本相同 保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6 ...

随机推荐

  1. Asp-Net-Core开发笔记:FrameworkDependent搭配docker部署

    前言 之前我写过一篇使用 docker 部署 AspNetCore 应用的文章,这种方式搭配 CICD 非常方便, build 之后 push 到私有的 dockerhub ,在生产服务器上 pull ...

  2. 浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程

    浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程 MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图.用户客户端)与Model(j ...

  3. Web攻防--Java_SQL注入--XXE注入-- SSTI模板注入--SPEL表达式注入

    预编译 编译器在编译sql语句时,会依次进行词法分析.语法分析.语义分析等操作, 预编译技术会让数据库跳过编译阶段,也就无法就进行词法分析,关键字不会被拆开,注入语句也就不会被识别为SQL的关键字,从 ...

  4. MutationObserver监听dom元素结构及属性变化

    工作中埋码需求,当某些动态插入的元素出现时触发埋码事件,因此需要对插入元素的父节点进行监听,子节点发生变化时触发相应埋码逻辑. 方法一 监听页面结构及子元素变化: (function () { //事 ...

  5. 2018-D

    2018-D 新建数据库 test0317,目录为考试目录,并在完成建表后备份 1.建表: use [test0317]; create table [STD_INFO]( [std_id] int ...

  6. 编译nw-node版本的插件

    编译nw-node版本的插件 下载nwjs对应版本的nodejs 原始源码目录 yh@yh:~/addon$ tree . ├── addon.cc ├── binding.gyp ├── CppLi ...

  7. FreeSWITCH容器化问题之rtp端口占用

    操作系统 :CentOS 7.6_x64.debian 11 (bullseye,docker) FreeSWITCH版本 :1.10.9 Docker版本:23.0.6 FreeSWITCH容器化带 ...

  8. 软件开发人员 Kubernetes 入门指南|Part 2

    在第 1 部分中,我们讲解了 Kubernetes 的核心组件,Kubernetes 是一种开源容器编排器,用于在分布式环境中部署和扩展应用程序:我们还讲解了如何在集群中部署一个简单的应用程序,然后更 ...

  9. unity利用Rigibody实现第一人称移动

    1. CameraRotation脚本,将它给MainCamera,实现上下视角旋转 using System.Collections; using System.Collections.Generi ...

  10. CSS3之创建3D场景

    1.属性介绍 perspective:800    平面距离三维中方框的距离 perspective-origin:50% 50%   表示从平面上哪个位置看三维图 ,相当于是X轴和Y轴,此时表示平面 ...