说明: MinIO是一个高性能的对象存储服务,它支持分布式部署,以提供高可用性和数据冗余。在构建MinIO集群时,至少需要4个节点是为了确保数据的高可用性、持久性和容错能力。这种设计背后的关键技术是erasure coding(纠删码),它通过将数据分成若干个数据片和冗余片进行存储,即使某些片段丢失,数据也能被恢复。这种技术相比简单的副本机制,提供了更高的存储效率和可靠性。MinIO使用Reed-Solomon纠删码技术进行数据保护,允许配置不同的数据片和冗余片的数量,典型配置是(n, m),其中n表示数据片的数量,m表示冗余片的数量。MinIO的最小配置为(2, 2),即2个数据片和2个冗余片。因此,为了实现数据的高可用性和可靠性,MinIO集群至少需要4个节点来构建
实验 :ip: 192.168.0.1 192.168.0.2 192.168.0.3 (共三台主机)
1.分别在三台机器上执行
[root@minio1 ~]# useradd minio
[root@minio1 ~]# echo 'Password123' |passwd --stdin minio
2.创建储存目录
[root@minio1 ~]# mkdir /data/fintechfile{1..4}
[root@minio2 ~]# mkdir /data/fintechfile{5..8}
[root@minio3 ~]# mkdir /data/fintechfile{9..12}
3.分别上传 mc 和minio 包
4.在各集群主机上添加软件执行权限
cd /home/minio/ chmod +x mc minio
5.如果要求要用普通用户启动需改变储存目录的权限
[root@minio1 ~] chown minio.minio -R /data/fintechfile{1..4}
[root@minio2 ~]chown minio.minio -R /data/fintechfile{5..8}
[root@minio2 ~]chown minio.minio -R /data/fintechfile{9..12}
6.切换用户 编写执行脚本(节点都要执行,IP根据实际情况调整)
su - minio
vim run-minio.sh
脚本如下
export MINIO_ROOT_USER="user" ##用户名 自定义
export MINIO_ROOT_PASSWORD="abc@123" ##密码 自定义
#export MINIO_BROWSER="off" ##是否关闭网页访问,加了浏览器就无法访问,看安全需求
nohup /home/minio/minio server --address "192.168.0.1:9000" --console-address "192.168.0.1:9001" http://192.168.0.1/data/fintechfile{1..4} http://192.168.0.2/data/fintechfile{5..8} http://192.168.0.3/data/fintechfile{9..12} &
7.启动各节点脚本
sh run-minio.sh 集群就完成了
8.访问验证
地址: http://192.168.0.1:9001/login 三台IP都可以
在服务上存储目录上查看文件是否存在,致此对象存储搭建完成
9.创建systemctl 启动服务
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/home/minio/
ExecStart=/home/minio/run-minio.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
执行命令 systemctl daemon-reload 加载
执行命令 systemctl start minio 启动服务
执行命令 systemctl status minio 查看服务状态
10.mc的用法
./mc alias set minio http://192.168.0.1:9000 用户名 密码