分布式存储MINIO集群部署实例
简介:
MinIO是根据Apache许可v2.0发布的高性能对象存储。它与Amazon S3云存储服务兼容。使用MinIO可以构建用于机器学习,分析和应用程序数据工作负载的高性能基础架构。
数据保护:
分布式MinIO 使用擦除代码提供针对多个节点/驱动器故障和位腐烂的保护。由于分布式MinIO所需的最小磁盘为4(与擦除编码所需的最小磁盘相同),因此在启动分布式MinIO时,擦除代码会自动启动。
高可用:
如果托管磁盘的服务器脱机,则独立的MinIO服务器将关闭。相反,只要m / 2个服务器或m * n / 2个或更多磁盘在线,具有m个服务器和n个磁盘的分布式MinIO设置将使您的数据安全。
例如,一个16台服务器的分布式设置(每个节点200个磁盘)将继续提供文件,即使在默认配置中最多有8台服务器处于脱机状态,即,大约1600个磁盘可以关闭,MinIO也会继续提供文件。但是,您至少需要在线9台服务器才能创建新对象。
环境:
2台centos7操作系统,每台操作系统挂载2个磁盘,总共4块(最少4个),两台服务器的缺点是如果一台服务器挂掉,文件只能读取不能删除与上传.
192.168.175.51
/app/minio/data1 /app/minio/data2
192.168.160.90
/app/mino/data1 /app/minio/data2
注意:文件路径可任意指定,但是必须挂载
下载资源: wget https://dl.minio.io/server/minio/release/linux-amd64/minio
将minio移动到/home/minio下 ,创建run.sh启动脚本并chmod + x 赋予 minio和run.sh 可执行权限
启动脚本:两台服务器一致
#!/bin/bash #浏览器访问的账号和密码,各节点要保持一致,密码不能过于简单否则启动失败 export MINIO_ACCESS_KEY=minioroot export MINIO_SECRET_KEY=minioabc-123
#创建/etc/minio配置文件目录 /home/minio/minio server --config-dir /etc/minio --address :9000 http://192.168.175.51/app/minio/data1 http://192.168.175.51/app/minio/data2 http://192.168.160.90/app/minio/data1 http://192.168.160.90/app/minio/data2
设置命令启动服务vim /usr/lib/systemd/system/minio.service
[Unit] Description=Minio service Documentation=https://docs.minio.io/ [Service] WorkingDirectory=/home/minio/ ExecStart=/home/minio/run.sh Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
启动
systemctl daemon-reload systemctl start minio #查看启动情况 systemctl status minio 注意:可能出现服务器提示等待另外磁盘连接的情况 ,关闭防火墙 [root@minio2 minio]# systemctl status minio ● minio.service - Minio service Loaded: loaded (/usr/lib/systemd/system/minio.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-05-11 21:16:06 EDT; 9min ago Docs: https://docs.minio.io/ Main PID: 5899 (run.sh) CGroup: /system.slice/minio.service ├─5899 /bin/bash /home/minio/run.sh └─5900 /home/minio/minio server --config-dir /etc/minio --address :9000 http://192.168.175.51/app/minio/data1 http://192.168.175.51/app/minio/data2 http://192.168.160... May 11 21:25:51 minio2 run.sh[5899]: Status: 4 Online, 0 Offline. May 11 21:25:51 minio2 run.sh[5899]: Endpoint: http://192.168.160.90:9000 http://127.0.0.1:9000 May 11 21:25:51 minio2 run.sh[5899]: Browser Access: May 11 21:25:51 minio2 run.sh[5899]: http://192.168.160.90:9000 http://127.0.0.1:9000 May 11 21:25:51 minio2 run.sh[5899]: Object API (Amazon S3 compatible): May 11 21:25:51 minio2 run.sh[5899]: Go: https://docs.min.io/docs/golang-client-quickstart-guide May 11 21:25:51 minio2 run.sh[5899]: Java: https://docs.min.io/docs/java-client-quickstart-guide May 11 21:25:51 minio2 run.sh[5899]: Python: https://docs.min.io/docs/python-client-quickstart-guide May 11 21:25:51 minio2 run.sh[5899]: JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide May 11 21:25:51 minio2 run.sh[5899]: .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
访问 任意节点的ip地址:9000 即可访问,输入上面定义的账号密码即可
参考资料:
官方文档 https://docs.min.io/
感谢以下博客主的私信解答
https://www.yht7.com/news/16389