minio集群部署(亲测有效)

一,环境准备

1.1 节点环境

准备3台虚拟机或服务器

名称IP操作系统
minio-1192.168.1.155Kylin V10
minio-2192.168.1.156Kylin V10
minio-3192.168.1.157Kylin V10

1.2 节点磁盘挂载

所有节点

1.2.1 硬盘分区
fdisk /dev/vdb
输入n 创建新的分区
输入回车
默认分区输入1,回车,指定存储大小+10G
输入w回车保存

分区/dev/vdb2与上述/dev/vdb1分区相同

[root@minio-1 ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1 1024M  0 rom
vda           253:0    0   20G  0 disk
├─vda1        253:1    0  200M  0 part /boot/efi
├─vda2        253:2    0    1G  0 part /boot
└─vda3        253:3    0 18.8G  0 part
  ├─klas-root 252:0    0 16.8G  0 lvm  /
  └─klas-swap 252:1    0    2G  0 lvm  [SWAP]
vdb           253:16   0   20G  0 disk
├─vdb1        253:17   0   10G  0 part /data2
└─vdb2        253:18   0   10G  0 part /data1
1.2.2 格式化磁盘分区
[root@minio-1 ~]# mkfs -t ext4 /dev/vdb1
[root@minio-1 ~]# mkfs -t ext4 /dev/vdb2

[root@minio-2 ~]# mkfs -t ext4 /dev/vdb1
[root@minio-2 ~]# mkfs -t ext4 /dev/vdb2

[root@minio-3 ~]# mkfs -t ext4 /dev/vdb1
[root@minio-3 ~]# mkfs -t ext4 /dev/vdb2
1.2.3 磁盘目录挂载
 mkdir /data{1,2}
[root@minio-1 ~]# mount /dev/vdb2 /data1
[root@minio-1 ~]# mount /dev/vdb1 /data2

[root@minio-2 ~]# mount /dev/vdb2 /data1
[root@minio-2 ~]# mount /dev/vdb1 /data2

[root@minio-3 ~]# mount /dev/vdb2 /data1
[root@minio-3 ~]# mount /dev/vdb1 /data2

查看挂载成功df -h

[root@minio-1 ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               838M     0  838M    0% /dev
tmpfs                  1.1G     0  1.1G    0% /dev/shm
tmpfs                  1.1G   12M  1.1G    2% /run
tmpfs                  1.1G     0  1.1G    0% /sys/fs/cgroup
/dev/mapper/klas-root   17G  2.7G   15G   16% /
tmpfs                  1.1G     0  1.1G    0% /tmp
/dev/vda2             1014M  200M  815M   20% /boot
/dev/vda1              200M  5.8M  195M    3% /boot/efi
tmpfs                  222M     0  222M    0% /run/user/0
/dev/vdb2              9.8G   23M  9.3G    1% /data1
/dev/vdb1              9.8G   23M  9.3G    1% /data2

设置分区在系统重启后自动挂载

在/etc/fstab文件末尾添加

/dev/vdb1              /data2/                  ext4    defaults        0 0
/dev/vdb2              /data1/                  ext4    defaults        0 0

重新加载配置

 mount -a

二,集群部署

2.1 minio目录创建

mkdir -p /data/minio

2.2 minio 上传

将minio上传到/data/minio目录下

2.3 集群启动文件配置

Minio默认9000端口,在配置文件中加入--address "0.0.0.0:9029" 可更改端口

注意:

  1. MINIO_ROOT_USER:用户名,长度最少是5个字符

  2. MINIO_ROOT_PASSWORD:密码,密码不能过于简单,不然会启动报错,长度最小是8个字符

  3. --config-dir 指定配置文件目录

创建minio集群启动文件

vim /data/minio/run.sh

集群节点192.168.1.155内容为

#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
/data/minio/minio server --config-dir /etc/minio \
--address "0.0.0.0:9029" --console-address ":9090" \
http://192.168.1.155/data1 http://192.168.1.155/data2 \
http://192.168.1.156/data1 http://192.168.1.156/data2 \
http://192.168.1.157/data1 http://192.168.1.157/data2 \

集群节点192.168.1.156内容为

#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
/data/minio/minio server --config-dir /etc/minio \
--address "0.0.0.0:9029" --console-address ":9090" \
http://192.168.1.155/data1 http://192.168.1.155/data2 \
http://192.168.1.156/data1 http://192.168.1.156/data2 \
http://192.168.1.157/data1 http://192.168.1.157/data2 \

集群节点192.168.1.157内容为

#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
/data/minio/minio server --config-dir /etc/minio \
--address "0.0.0.0:9029" --console-address ":9090" \
http://192.168.1.155/data1 http://192.168.1.155/data2 \
http://192.168.1.156/data1 http://192.168.1.156/data2 \
http://192.168.1.157/data1 http://192.168.1.157/data2 \

2.4 创建Minio.server

vim /usr/lib/systemd/system/minio.service
添加以下内容:
[Unit]
Description=Minio service
Documentation=Minio High Performance Object Storage - Minio Object Storage for kubernetes

[Service]
WorkingDirectory=/data/minio
ExecStart=/data/minio/run.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=muti-user.target

 修改配置文件后需要加载配置

systemctl daemon-reload

2.5 权限修改

所有节点执行以下命令

chmod +x /usr/lib/systemd/system/minio.service
chmod +x /data/minio/minio
chmod +x /data/minio/run.sh

2.6 启动集群

逐个启动

注意:关闭防火墙

systemctl start minio
systemctl enable minio
[root@minio-1 ~]# systemctl status minio.service
● minio.service - Minio service
   Loaded: loaded (/usr/lib/systemd/system/minio.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-08-21 17:37:09 CST; 23h ago
 Main PID: 15821 (run.sh)
    Tasks: 13
   Memory: 97.5M
   CGroup: /system.slice/minio.service
           ├─15821 /bin/bash /data/minio/run.sh
           └─15823 /data/minio/minio server --config-dir /etc/minio --address 0.0.0.0:9029 --console-address :9090 http://192.168.1.155/data1 http://192.168.1.155/data2 http://192.168.1.156/data1 http://192.168.1.156/data2 http://192.1>

8月 22 07:15:35 minio-1 run.sh[15821]: API: SYSTEM.iam
8月 22 07:15:35 minio-1 run.sh[15821]: Time: 23:15:35 UTC 08/21/2024
8月 22 07:15:35 minio-1 run.sh[15821]: DeploymentID: 97bb5125-f875-4961-a3f5-07bae9fef410
8月 22 07:15:35 minio-1 run.sh[15821]: Error: Specified user does not exist (*errors.errorString)
8月 22 07:15:35 minio-1 run.sh[15821]:        6: internal/logger/logger.go:269:logger.LogIf()
8月 22 07:15:35 minio-1 run.sh[15821]:        5: cmd/logging.go:29:cmd.iamLogIf()
8月 22 07:15:35 minio-1 run.sh[15821]:        4: cmd/iam-object-store.go:784:cmd.(*IAMObjectStore).loadAllFromObjStore()
8月 22 07:15:35 minio-1 run.sh[15821]:        3: cmd/iam-store.go:589:cmd.(*IAMStoreSys).LoadIAMCache()
8月 22 07:15:35 minio-1 run.sh[15821]:        2: cmd/iam.go:207:cmd.(*IAMSys).Load()
8月 22 07:15:35 minio-1 run.sh[15821]:        1: cmd/iam.go:414:cmd.(*IAMSys).periodicRoutines()
lines 1-20/20 (END)

2.7 登录

http://192.168.1.155:9029  

Unbuntu Minio是一种开源的对象存储服务器,提供高可用性和可伸缩性。部署Minio集群可以实现数据冗余,并提供高性能的存储解决方案。 首先,使用Unbuntu操作系统运行服务器,确保系统已经具备最新的软件更新。 接下来,下载Minio二进制文件,并解压到指定的目录。然后创建存储桶目录,用于存放数据。 在每个节点上,启动Minio服务器,并配置端口号、存储路径和访问密钥。可以使用命令"minio server <存储路径> --address <IP地址:端口号> --access-key <访问密钥> --secret-key <密钥>"来启动。 在所有节点上重复以上步骤,确保每个节点都按照相同的方式配置。 当所有节点都成功启动后,可以使用浏览器访问其中任何一个节点的Web界面。 在Web界面中,可以创建和管理存储桶,并上传、下载和删除对象。 为了实现高可用性,可以使用分布式存储系统,如Docker Swarm或Kubernetes,来管理Minio集群。 使用Docker Swarm,首先在每个节点上安装Docker和Docker Compose。 然后,创建Docker Compose文件,定义Minio服务和集群的其他配置。 运行Docker Stack命令,部署Minio集群。 使用Kubernetes,首先在每个节点上安装Kubernetes集群,并配置网络和存储卷。 然后,创建Kubernetes Deployment和Service对象,定义Minio服务和集群的配置。 部署Minio集群,使用Kubernetes命令创建和管理。 无论使用哪种方法,都需要确保集群中的所有节点都在线,并且数据同步正常。 总而言之,通过以上步骤,可以在Unbuntu系统上成功部署Minio集群,实现高可用性和可伸缩性的对象存储解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值