1 minio - Linux版主程序(版本为 2024-04-18)
从https://dl.min.io/server/minio/release/linux-amd64/minio这个下载链接把minio程序主体下载到/opt/minio文件夹中
wget /opt/minio https://dl.min.io/server/minio/release/linux-amd64/minio
需要注意,amd64其实就是x86_64,别慌,你没下错
2 mc - Linux版客户端程序
同样的,从https://dl.min.io/client/mc/release/linux-amd64/mc这个下载链接把mc客户端主体下载到/opt/minio文件夹中
wget /opt/minio https://dl.min.io/client/mc/release/linux-amd64/mc
3还要准备三个玩意
1 minio.sh (minio 服务器优化脚本) 【你可以通过这个链接下载minio.sh文件】
2 prometheus-2.35.0-rc0.linux-amd64.tar.gz(minio 监控工具安装包)【这个东西我懒得搞网盘了,有需要的留下邮箱我发给你,但是你不能直接留一个邮箱啊,时间都过去这么久了我怎么记得我说过这么一句话,你得还要注明一下你需要什么文件啊】
3 nginx.conf (nginx 负载配置模板,这个你曾经安装过nginx的话,那么你的系统里就有的)
4 基础环境
节点数至少为3,保证挂掉一个节点后集群任然可以写入;
逻辑分区数最少为4,如三个节点,每个节点至少两个逻辑分区,四个节点每个节点至少1个逻辑分区;
centos 7.6;
5 初始化数据盘, 把数据磁盘格式化为 xfs 格式
mkfs -t xfs /dev/sda1
6 创建minio数据目录,挂载数据磁盘到数据目录/opt/minio/data{1…6}
mount /dev/sda1 /opt/minio/data1
把/dev/sda1这个sda硬盘的分区1挂载到minio数据目录/opt/minio/data1
如果你想让这个挂载在机器启动时自动进行,你需要编辑/etc/fstab文件,并添加相应的条目。
vim /etc/fstab
/dev/sda1 /opt/minio/data1 ext4 defaults 0 2
这行的意思是,每次开机时,系统会尝试自动挂载/dev/sdb1到/mnt/mydisk。ext4是文件系统类型,
根据你的硬盘格式选择合适的类型,如ext3、ext4、ntfs、vfat等。
请根据你的实际硬盘分区和文件系统类型修改上述命令和文件。
7 服务器优化脚本,添加执行权限并执行
chmod +x /opt/minio/minio.sh
/opt/minio/minio.sh
8 集群部署
假设需要部署4个节点,每个节点挂载6个硬盘,目录为 /opt/minio/data/{1…6}
10.10.83.120
10.10.83.121
10.10.83.122
10.10.83.123
9 给下载的 minio 文件添加可执行命令,并执行
chmod +x /opt/minio/minio
/opt/minio/minio
10 添加系统环境变量,加上 minio 的 root 用户名/密码,woyaofacai是密码
vim /etc/profile
在profile文件中加上这两行
export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=woyaofacai
加完后保存退出,并source一下使之生效
source /etc/profile
11 分别在每个节点执行 minio 后台启动命令,注意替换 IP
nohup ./minio server --address ":9100" --console-address ":9101" \ http://10.10.83.12{0...3}/data{1...6} > /opt/minio/minio.log 2>&1 &
这是一整行命令,好好看,认真点
12安装 mc (可选)
为 mc 添加可执行权限
chmod +x /opt/minio/mc
13 将部署的 minio 集群注册到 mc 并取名为 minio_cluster,woyaofacai是密码
./mc config host add minio_cluster http://10.10.83.120:9100 minio woyaofacai
./mc config host add minio_cluster http://10.10.83.121:9100 minio woyaofacai
./mc config host add minio_cluster http://10.10.83.122:9100 minio woyaofacai
./mc config host add minio_cluster http://10.10.83.123:9100 minio woyaofacai
14 为 minio 添加 Prometheus 监控(可选)
添加 Prometheus 监控的前置需求是你要先安装mc。
添加Prometheus监控步骤参考官方文档 [MinIO | How to monitor MinIO using Prometheus]
当然你也可以看看我总结的,如下
1,在 10.10.83.120 上下载并解压 prometheus
使用 mc 为 prometheus 生成访问 minio 的相关配置
./mc admin prometheus generate minio
2,将生成的配置复制到 prometheus.yaml 并使用下面命令启动 prometheus,将会占用 9090 端口
nohup ./prometheus --config.file=prometheus.yml &
3,想要可以在 console 观察到各项监控指标需要在 minio 启动时配置 MINIO_PROMETHEUS_URL 和 MINIO_PROMETHEUS_JOB_ID 两个参数
export MINIO_PROMETHEUS_AUTH_TYPE="public"
4,prometheus 的地址
export MINIO_PROMETHEUS_URL="http://10.10.83.120:9090"
5,prometheus 配的 minio 的 job_name
export MINIO_PROMETHEUS_JOB_ID="minio-job"
6,重新启动所有节点
nohup ./minio server --address ":9100" --console-address ":9101" \ http://10.10.83.12{0...3}/data{1...6} > /opt/minio/minio.log 2>&1 &
15 为 minio 添加 service 启动 (可选)
每次重新登录linux都要重新 export 环境变量会显得很麻烦,可以选择配置 service 启动。
systemctl enable minio
16 minio的环境变量配置
vim /etc/default/minio
加上下面这些玩意
MINIO_VOLUMES="http://10.10.83.12{0...3}/data{1...6}"
MINIO_OPTS="--console-address :9101"
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=^Q*DfKao
# 这些下面配置 当部署了 prometheus 时才需要
MINIO_PROMETHEUS_AUTH_TYPE="public"
MINIO_PROMETHEUS_URL="http://10.10.83.120:9090"
MINIO_PROMETHEUS_JOB_ID="minio-job"
17启动 service 配置
vim /etc/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
[Service]
WorkingDirectory=/opt/minio
User=root
Group=root
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
[Install]
WantedBy=multi-user.target
18 启动 minio
sudo systemctl start minio.service
19 部署 nginx 负载均衡
-
部署 多节点 nginx + keepalive 实现对 minio 集群的负载
-
nginx 配置
,