Cenos7 搭建Minio最新版集群部署服务器(一)

                                                  ------>    道 | 法 | 术 | 器 | 势    <------

 


                         

多台服务器间免密登录|免密拷贝

Cenos7 搭建Minio集群部署服务器(一)

Cenos7 搭建Minio集群Nginx统一访问入口|反向动态代理(二) 

Spring Boot 与Minio整合实现文件上传与下载(三) 

CentOS7的journalctl日志查看方法

MySQL8.xx一主两从复制安装与配置

 


附录查看安装的Minio版本:

[root@www minio_data]# ./minio -v
minio version RELEASE.2023-08-09T23-30-22Z (commit-id=eb55034dfe5ef82449796c83e3126b245c5aee05)
Runtime: go1.19.12 linux/amd64
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Copyright: 2015-2023 MinIO, Inc.
[root@www minio_data]# ./minio -version
minio version RELEASE.2023-08-09T23-30-22Z (commit-id=eb55034dfe5ef82449796c83e3126b245c5aee05)
Runtime: go1.19.12 linux/amd64
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Copyright: 2015-2023 MinIO, Inc.
 



企业级开源对象存储(看看官网吹的牛B)

开源为云提供动力。开源为企业提供动力。开源为 MinIO 提供支持。每天都有成千上万的客户和社区成员信任 MinIO 在其部署中提供安全性、弹性、持久性和卓越运营。

主动,主动复制

对象存储的主动、多站点复制是任务关键型生产环境的关键要求。MinIO是目前唯一提供它的供应商。MinIO 提供存储桶级粒度,并支持同步和近同步复制,具体取决于架构选择和数据变化率。

            

加密

在对象存储领域,需要强大的加密才能在谈判桌上占有一席之地。MinIO 通过最高级别的加密以及广泛的优化提供更多功能,几乎消除了通常与存储加密操作相关的开销。

            


自动化数据管理界面

数据是企业最关键的资产,因此必须在整个组织中轻松安全地使用,以便为每个人实现最大价值。因此,企业必须根据受众的需求采用一系列数据接口方法。MinIO提供了一套选项来涵盖数据驱动型企业中的每个角色,例如图形用户界面(GUI),命令行界面(CLI)和应用程序编程接口(API)。MinIO 的数据管理接口可互换运行,以提供精细、高性能和可扩展的对象存储管理。

            


存储桶和对象不变性

保护数据不被删除(意外或故意)是涉及每个行业的关键合规性组件。MinIO 支持完整的功能范围,包括对象锁定、保留、法律保留、治理和合规性。MinIO 的存储桶和对象不变性已通过Veeam 认证和验证。

              


数据生命周期管理和分层

随着数据的持续增长,针对访问、安全性和经济性进行共同优化的能力成为一项硬性要求,而不是可有可无。这就是生命周期数据管理的作用。MinIO 提供了一套独特的功能来保护云内部和跨云的数据 - 包括公共云和私有云。

MinIO的企业数据生命周期管理工具,包括版本控制、对象锁定和各种衍生组件,满足多种用例。

             


可扩展性

缩放是一个维度概念,但它有一个真理:简单缩放。MinIO 通过称为服务器池的概念进行水平扩展(横向扩展)。服务器池是一种结合了多个技术组件的方法。每个服务器池都是一组独立的节点,具有自己的计算、网络和存储资源。

                    


准备集群环境:  准备四台机器 minio集群最少四台

      IP地址   主机名称      minio数据存储目录          minio挂载目录 | 控制台端口
192.168.1.100   docker0      /data/minio_data        /dev/sda2 | 控制台端口:33806
192.168.1.101   docker1      /data/minio_data        /dev/sda2 | 控制台端口:33807
192.168.1.102   docker2      /data/minio_data        /dev/sda2 | 控制台端口:33808
192.168.1.103   docker3      /data/minio_data        /dev/sda2 | 控制台端口:33809

一: 设置主机名称

 vi /etc/hosts

192.168.1.100  docker0
192.168.1.101  docker1
192.168.1.102  docker2
192.168.1.103  docker3

cat /etc/hosts

 二:分别免密拷贝hosts文件到其他三台机器

scp -pr hosts 192.168.1.101:/etc/

scp -pr hosts 192.168.1.102:/etc/

scp -pr hosts 192.168.1.103:/etc/

免密登录 192.168.1.101 节点看看是否拷贝成功:

[root@www etc]# ssh 192.168.1.101

 三: 创建挂载磁盘路径

mkdir -p /data/minio_data

挂载磁盘路径到文件系统
  注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错,还需要注意的是挂载的文件系统至少要1G不然无法初始化导致集群报错;

文件系统 容量 已用 可用 已用% 挂载点

[root@www minio_data]# df -h


四:将上面挂载磁盘路径挂载到相应的文件系统上 

[root@www minio_data]# mount /dev/sda2  /data/minio_data/

查看挂载信息

   [root@www minio_data]# lsblk


 五:下载minio安装包

    服务器端安装:

[root@www minio_data]# wget https://dl.min.io/server/minio/release/linux-amd64/minio
-bash: wget: 未找到命令
[root@www minio_data]# yum install wget


     客户端安装:

[root@www minio_data]# wget https://dl.min.io/client/mc/release/linux-amd64/mc

分别在minio_data目录下创建两个数据目录data0,data1

[root@www minio_data]# mkdir -p /data/minio_data/{data0,data1}

再次确认挂载目录是不是: /data/minio_data 


查看磁盘分区情况

[root@www minio_data]# fdisk -l

磁盘 /dev/sda:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000da74f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648   304754687   152171520   83  Linux
/dev/sda3       304754688   409612287    52428800   83  Linux
/dev/sda4       409612288   419430399     4909056    5  Extended
/dev/sda5       409614336   419430399     4908032   82  Linux swap / Solaris


[root@www minio_data]# df -lh
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G   12M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda3        50G  2.2G   48G    5% /
/dev/sda2       146G  152M  145G    1% /home
/dev/sda1       197M  124M   74M   63% /boot
vmhgfs-fuse     1.3T   61G  1.2T    5% /mnt/hgfs
tmpfs           378M     0  378M    0% /run/user/0


六,制作启动脚本

       内容如下:

[root@www default]# cat /etc/default/minio 

MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456

#数据挂载目录
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33806"是用来指定minio端口的
MINIO_OPTS="--console-address 192.168.1.100:33806 --address 192.168.1.100:9666"

[root@www run]# cat /usr/lib/systemd/system/minio.service
 

[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/data/minio_data/minio

[Service]
WorkingDirectory=/data/minio_data

User=root
Group=root

PermissionsStartOnly=true

EnvironmentFile=/etc/default/minio

ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""

ExecStart=/data/minio_data/minio server $MINIO_OPTS $MINIO_VOLUMES

StandardOutput=journal
StandardError=inherit

# 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=0

# SIGTERM signal is used to stop Minio*
KillSignal=SIGTERM

SendSIGKILL=no

SuccessExitStatus=0

[Install]
WantedBy=multi-user.target

 


其中,“WorkingDirectory”为启动脚本目录,“ExecStart”为指定集群启动脚本

将下载好的minio文件赋予权限

[root@www ~]# chmod +x /data/minio_data/minio
[root@www ~]# chmod +x /data/minio_data/mc
[root@www ~]# chmod +x /data/minio_data/data0
[root@www ~]# chmod +x /data/minio_data/data1
[root@www ~]# chmod +x /usr/lib/systemd/system/minio.service

cd /  

拷贝data目录及该目录下所有文件到其他三台机器上:

分别在其他三台机器上手动创建/data/minio_data/目录: mkdir -p /data/minio_data/,然后执行下面的命令进行拷贝

scp -r ./data/minio_data/*  docker1:/data/minio_data/

scp -r ./data/minio_data/*  docker2:/data/minio_data/

scp -r ./data/minio_data/*  docker3:/data/minio_data/

确认下是否已经拷贝过去:


分别在其他三台机器上执行挂载点,挂载点好像不能拷贝.....

mount /dev/sda2 /data/minio_data/


拷贝启动脚本到其他三台机器

scp /usr/lib/systemd/system/minio.service docker1:/usr/lib/systemd/system/minio.service

scp /usr/lib/systemd/system/minio.service docker2:/usr/lib/systemd/system/minio.service

scp /usr/lib/systemd/system/minio.service docker3:/usr/lib/systemd/system/minio.service

scp /etc/default/minio docker1:/etc/default/minio

scp /etc/default/minio docker2:/etc/default/minio

scp /etc/default/minio docker3:/etc/default/minio

分别修改 docker1, docker2,docker3  主机上的 /etc/default/minio文件的控制台端口与对应机器ip如下:

docker1


[root@www ~]# cat  /etc/default/minio
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33807"是用来指定minio端口的
MINIO_OPTS="--console-address 192.168.1.101:33807 --address 192.168.1.101:9666"


docker2

[root@www ~]# cat  /etc/default/minio
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33808"是用来指定minio端口的
MINIO_OPTS="--console-address 192.168.1.102:33808 --address 192.168.1.102:9666"
 

docker3  : 

[root@www minio_data]# cat  /etc/default/minio
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33809"是用来指定minio端口的
MINIO_OPTS="--console-address 192.168.1.103:33809 --address 192.168.1.103:9666"
 


启动及查看状态:

systemctl daemon-reload  #重新加载启动文件

systemctl enable minio  #开机自启动

systemctl start minio  #启动

systemctl stop minio  #停止

systemctl restart minio  #重新启动

systemctl status minio  #查看状态

systemctl disable minio.service  #禁止机自启动

查看所有已启动的服务

systemctl list-units --type=service


分别对每台机器执行如下命令:

systemctl daemon-reload  #加载服务配置文件

systemctl daemon-reload  #重新加载启动文件

systemctl enable minio  #minio 开机自启动

systemctl stop firewalld  # 停止防火墙

systemctl disable firewalld # 禁用防火墙

http://192.168.1.100:33806/  

http://192.168.1.101:33807/

http://192.168.1.102:33808/

http://192.168.1.103:33809/

输入admin/admin123456 即可查看相关配置

 至此,大功告成. 待续 Spring-Boot 整合Minio实现视频及文件分布式存储..................



[root@www ~]# ps ax|grep 'minio'
  1152 ?        Ssl    0:03 /data/minio_data/minio server --console-address :33806 --address 0.0.0.0:9666 /data/minio_data
  1912 pts/0    S+     0:00 grep --color=auto minio
[root@www ~]# ps aux|grep minio
root       1152  0.4  4.1 1017104 158756 ?      Ssl  22:56   0:03 /data/minio_data/minio server --console-address :33806 --address 0.0.0.0:9666 /data/minio_data
root       1914  0.0  0.0 112828   984 pts/0    S+   23:10   0:00 grep --color=auto minio


上传一张照片看看: 点击上传按钮:上传一张picture


 


上传后点击预览:




 













  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/39534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已知四个坐标点,怎样求出四边形的四个内角

1&#xff0c;理论 最简单的方式利用向量进行求解 如图可得&#xff1a; cosθa*b/&#xff08;|a|*|b|&#xff09; 已知三点坐标&#xff0c;很容易可以得到两向量之积a*b&#xff0c;以及每个的模值 2&#xff0c;四个角度求解过程 首先&#xff0c;我们定义了四个坐标点…

在数字游民天堂,Polkadot Hubs 探索建设更紧密的全球社区

分布式办公是 Web3 行业的协作常态&#xff0c;当数字游民们享受着线上远程工作的自由和便捷时&#xff0c;也在怀念着一种面对面与他人交流与共创的经历。共享空间随之兴起&#xff0c;为许多初创项目公司提供开放舒适的环境&#xff0c;却难以在不同的人群之间搭起一张巨大的…

完美解决Github提交PR后报错:File is not gofumpt-ed (gofumpt)

问题阐述 最近在Github上提交PR后&#xff0c;遇到了这么一个问题&#xff1a;golangci-lint运行失败&#xff0c;具体原因是File is not gofumpt-ed (gofumpt)。 名词解释 golangci-lint&#xff1a; golangci-lint 是Go语言社区中常用的代码质量检查工具&#xff0c;它可以…

[自学记录06|*百人计划]Gamma矫正与线性工作流

一、前言 Gamma矫正其实也属于我前面落下的一块内容&#xff0c;打算把它补上&#xff0c;其它的没补是因为我之前写的GAMES101笔记里已经涵盖了&#xff0c;而Gamma矫正在101里面确实没提到&#xff0c;于是打算把它补上&#xff0c;这块内容并不难&#xff0c;但是想通透的理…

我的创作纪念日(256天)

前言 结缘 我与csdn的结缘&#xff0c;之前在创作纪念日&#xff08;128天&#xff09;便已提到&#xff0c;今在此便不再多言 收获 很惭愧&#xff0c;自六月底至八月中旬&#xff0c;因为忙于找工作&#xff0c;奔赴面试求职之际&#xff0c;写博客没有像之前那么勤&#x…

qt QPalette的原理与使用

QPalette类用于控制控件的风格&#xff0c;即任意一个地方的绘制方式。每个控件或者说qwidget对象内部都有一个QPalette对象。 在paintEvent(QPaintEvent *event)函数中&#xff0c;其实就是调用该控件的QPalette内容来进行绘制的了。 例如&#xff1a; QStyleOptionTab opt…

《论文阅读12》RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

一、论文 研究领域&#xff1a;全监督3D语义分割&#xff08;室内&#xff0c;室外RGB&#xff0c;kitti&#xff09;论文&#xff1a;RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds CVPR 2020 牛津大学、中山大学、国防科技大学 论文链接论文gi…

Kafka-eagle监控平台

Kafka-Eagle简介 在开发工作中&#xff0c;当业务不复杂时&#xff0c;可以使用Kafka命令来进行一些集群的管理工作。但如果业务变得复杂&#xff0c;例如&#xff1a;需要增加group、topic分区&#xff0c;此时&#xff0c;再使用命令行就感觉很不方便&#xff0c;此时&#x…

Vim学习(二)—— 编译C程序

打开终端&#xff0c;这里以MobaXterm为例&#xff0c; 邮件创建新的空文件并命名&#xff0c; 然后cd到对应路径下&#xff0c;用 vim hello.cvim打开创建的文件&#xff0c;进入编辑模式&#xff0c;编辑完程序后按Esc退出编辑模式&#xff0c;输入 :wq保存并退出&#xf…

linux安装wkhtmltopdf(清晰明了)

概述 在公司项目中使用到 wkhtmltopdf 转换PDF&#xff0c;由于 wkhtmltox-0.12.5 版本 echarts 图形虚线样式&#xff0c;需要升级 wkhtmltox-0.12.6 版本来解决。 官网地址 wkhtmltopdf &#xff1a;https://wkhtmltopdf.org/ windows 安装 下载流程及安装流程 进入官…

《系统架构设计师教程》重点章节思维导图

内容来自《系统架构设计师教程》&#xff0c;筛选系统架构设计师考试中分值重点分布的章节&#xff0c;根据章节的内容整理出相关思维导图。 重点章节 第2章&#xff1a;计算机系统知识第5章&#xff1a;软件工程基础知识第7章&#xff1a;系统架构设计基础知识第8章&#xff1…

Kotlin反射访问androidx.collection.LruCache类私有变量

Kotlin反射访问androidx.collection.LruCache类私有变量 androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap&#xff0c;map存储了所有LruCache的数据&#xff0c;有时候需要遍历访问该LinkedHashMap&#xff0c;取出里面的值&#xff0c;但是LruCache代码实…

GPU Dissolve(GPU 消散)学习GPU Instancing

一&#xff1a;摘要 通过制作一个模型GPU消散效果来学习GPU Instancing 也就是实例化。 目标效果是杨超大佬文章《GPU shatter》里面的消散效果如图&#xff1a; Tags&#xff1a;模型顶点分裂(Mesh Vertex Splitting)&#xff0c; 实例化绘制(GPU Instancing Drawing)&#x…

开源可商业运营的ChatGpt网页源码v1.2.2

&#x1f916; 主要功能 后台管理系统,可对用户,Token,商品,卡密等进行管理 精心设计的 UI&#xff0c;响应式设计 极快的首屏加载速度&#xff08;~100kb&#xff09; 支持Midjourney绘画和DALLE模型绘画,GPT4等应用 海量的内置 prompt 列表&#xff0c;来自中文和英文 一键导…

【猿灰灰赠书活动 - 02期】- 【Java从入门到精通2023年7月最新(第7版)】

说明&#xff1a;博文为大家争取福利&#xff0c;与清华大学出版社合作进行送书活动 图书&#xff1a;《Java从入门到精通》 一、好书推荐 图书介绍 Java入门经典&#xff0c;95万Java程序员的入行选择。配备升级版Java开发资源库&#xff0c;在线大咖课在线答疑&#xff0c;学…

C语言 棱形图案

目录 一、问题分析 上部分&#xff1a; 下部分&#xff1a; 二、代码演示 一、问题分析 如上图所示&#xff0c;我们可以将棱形进行拆解&#xff0c;分为上下两个部分。 上部分&#xff1a; 通过观察&#xff0c;我们得到 单边空格数 上半部分总行数 - 行数 - 1 …

Nginx详解

1、高并发时代 单台tomcat在理想情况下可支持的最大并发数量在200~500之间&#xff0c;如果大于这个数量可能会造成响应缓慢甚至宕机。 解决方案是通过多台服务器分摊并发压力&#xff0c;这不仅需要有多台tomcat服务器&#xff0c;还需要一台服务器专门用来分配请求。这既是…

Mysql - 配置Mysql主从复制-keepalived高可用-读写分离集群

目录 高可用&#xff1a; 为什么需要高可用呢&#xff1f; 高可用的主要作用&#xff1a; keepalived是什么&#xff1f;它用在哪里&#xff1f; 什么是VRRP协议&#xff0c;它的作用是什么&#xff1f; 搭建一个基于keepalived的高可用Mysql主从复制读写分离集群 一、项…

Vue Baidu Map--自定义点图标bm-marker

自定义点图标 将准备好的图标放到项目中 使用import引入&#xff0c; 并在data中进行声明 <script> import mapIconRed from ./vue-baidu-map/img/marker_red_sprite.png export default {data() {return {mapIconRed,}}, } </script>在<bm-marker>中加入参…

【Linux】进程的基本属性|父子进程关系

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言进程属性1.进程PID和PPID2.fork函数创建子进程1&#xff09;为什…