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

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


                         Cenos7 搭建Minio集群部署服务器(一)_第1张图片

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

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


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

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

主动,主动复制

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

            Cenos7 搭建Minio集群部署服务器(一)_第2张图片

加密

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

            Cenos7 搭建Minio集群部署服务器(一)_第3张图片


自动化数据管理界面

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

            Cenos7 搭建Minio集群部署服务器(一)_第4张图片


存储桶和对象不变性

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

              Cenos7 搭建Minio集群部署服务器(一)_第5张图片


数据生命周期管理和分层

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

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

             Cenos7 搭建Minio集群部署服务器(一)_第6张图片


可扩展性

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

                    Cenos7 搭建Minio集群部署服务器(一)_第7张图片


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

      IP地址    主机名称       minio数据存储目录         minio挂载目录
192.168.1.100    docker0       /data/minio_data         /dev/sda2
192.168.1.101    docker1       /data/minio_data         /dev/sda2
192.168.1.102    docker2       /data/minio_data         /dev/sda2
192.168.1.103    docker3       /data/minio_data         /dev/sda2

一: 设置主机名称

 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

Cenos7 搭建Minio集群部署服务器(一)_第8张图片

 二:分别免密拷贝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
Cenos7 搭建Minio集群部署服务器(一)_第9张图片

 三: 创建挂载磁盘路径

mkdir -p /data/minio_data

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

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

[root@www minio_data]# df -h

Cenos7 搭建Minio集群部署服务器(一)_第10张图片


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

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

查看挂载信息

   [root@www minio_data]# lsblk

Cenos7 搭建Minio集群部署服务器(一)_第11张图片


 五:下载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

Cenos7 搭建Minio集群部署服务器(一)_第12张图片


     客户端安装:

[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}

Cenos7 搭建Minio集群部署服务器(一)_第13张图片

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

Cenos7 搭建Minio集群部署服务器(一)_第14张图片


查看磁盘分区情况

[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

六:编写集群启动脚本(所有节点配置文件相同

脚本内容如下:

 cat run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123456
 
/data/minio_data/minio server \
http://192.168.1.100/data/minio_data/data1 http://192.168.1.100/data/minio_data/data2 \
http://192.168.1.101/data/minio_data/data1 http://192.168.1.101/data/minio_data/data2 \
http://192.168.1.102/data/minio_data/data1 http://192.168.1.102/data/minio_data/data2 \ 
http://192.168.1.103/data/minio_data/data1 http://192.168.1.103/data/minio_data/data2

其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败 


七,制作启动脚本

       内容如下:

[root@www default]# cat /etc/default/minio 
#MINIO_ACCESS_KEY=minioadmin
#MINIO_SECRET_KEY=minioadmin
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456

#数据挂载目录
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33806"是用来指定minio端口的
MINIO_OPTS="--console-address :33806 --address 0.0.0.0: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/run/run.sh
[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目录会自动创建

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

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

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

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

Cenos7 搭建Minio集群部署服务器(一)_第15张图片


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

mount /dev/sda2 /data/minio_data/

Cenos7 搭建Minio集群部署服务器(一)_第16张图片


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

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


启动及查看状态:

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

Cenos7 搭建Minio集群部署服务器(一)_第17张图片


关闭防火墙:

[root@www ~]# systemctl status firewalld
[root@www ~]# systemctl stop firewalld

Cenos7 搭建Minio集群部署服务器(一)_第18张图片

http://服务器IP:33806/   

Cenos7 搭建Minio集群部署服务器(一)_第19张图片

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

Cenos7 搭建Minio集群部署服务器(一)_第20张图片

 至此,大功告成. 待续 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


 






 Cenos7 搭建Minio集群部署服务器(一)_第21张图片













  

你可能感兴趣的:(服务器,运维)