美文网首页
MinIO 分布式多租户集群搭建 + 实时监听其他目录文件

MinIO 分布式多租户集群搭建 + 实时监听其他目录文件

作者: Demons_LLL | 来源:发表于2021-05-26 14:52 被阅读0次

准备工作

系统: Centos 7.6 / 64位
minio:服务器

MinIO说明

官方说明文档 http://docs.minio.org.cn/docs/

分布式Minio有什么好处?

在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。

数据保护

分布式Minio采用 纠删码来防范多个节点宕机和位衰减bit rot
分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。

高可用

单机Minio服务存在单点故障,相反,如果是一个有N块硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。
例如,一个16节点的Minio集群,每个节点16块硬盘,就算8台服務器宕机,这个集群仍然是可读的,不过你需要9台服務器才能写数据。
注意,只要遵守分布式Minio的限制,你可以组合不同的节点和每个节点几块硬盘。比如,你可以使用2个节点,每个节点4块硬盘,也可以使用4个节点,每个节点两块硬盘,诸如此类。

一致性

Minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。

运行分布式Minio

注意

  • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。
  • 分布式Minio使用的磁盘里必须是干净的,里面没有数据。
  • 下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
  • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
1. vim /etc/profile
2. # Minio 
   export MINIO_ACCESS_KEY=minio
   export MINIO_SECRET_KEY=miniostorage

我们是4台机器,每台机器两个租户

获取Minio
http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
修改主机名及hosts
hostnamectl set-hostname node01
hostnamectl set-hostname node02
hostnamectl set-hostname node03
hostnamectl set-hostname node04


cat >> /etc/hosts <<EOF
10.10.0.1 node01
10.10.0.2 node02
10.10.0.3 node03
10.10.0.4 node04
EOF
创建目录
1. mkdir -p /data/modules/miniohome/{pic-node,video-node}/{data,logs,tenant}
// pic-node 租户一
// video-node 租户二
// data 存放文件
// logs 存放日志
// tenant 启动初始化生成的配置文件
image.png
分布式 + 多租户启动
nohup /data/modules/miniohome/pic-node/minio --config-dir /data/modules/miniohome/pic-node/tenant1 server http://node01:9000/data/modules/miniohome/pic-node/data http://node02:9000/data/modules/miniohome/pic-node/data http://node03:9000/data/modules/miniohome/pic-node/data http://node04:9000/data/modules/miniohome/pic-node/data --address :9000 > /data/modules/miniohome/pic-node/logs/minio.log 2>&1 &

// 参数解析
nohup minio路径 --config-dir 配置文件路径 server 各节点地址(http://ip:port/存放文件路径) --address :minio端口号 > 日志输出位置 2>&1 &
提示

每个节点都需要执行此命令 !!!

校验

  • 操作:右下角创建bucket

  • 结果:其他节点同步创建bucket


  • 操作:随便某一个节点上传文件

  • 结果:其他节点同步上传的文件


    image.png

Nginx代理

upstream minio-pic-node{
        server 10.10.0.1:9000;
        server 10.10.0.2:9000;
        server 10.10.0.3:9000;
        server 10.10.0.4:9000;
}
server {
        listen 9000;
        server_name minio.pic.node;
        location / {
                proxy_pass http://minio-pic-node;
                proxy_set_header Host $http_host;
                client_max_body_size 1000m;
        }
}

同步指定Temp目录

  1. 下载minio客户端:http://www.minio.org.cn/download.shtml#/linux
    image.png
    这里我们是分布式集群、所以随便找一台机器即可
    image.png
1. wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
2. chmod +x mc
3. mkdir -p /data/modules/miniohome/tempdir //创建临时目录 测试使用
4. mc config host add pic-node http://node01:9000 minio miniostorage --api s3v4 // 添加minio服务器配置
5. #修改成你需要实时同步备份的文件夹
backup="/data/modules/miniohome/tempdir"
6. #修改成你要备份到的存储桶
bucket="pic-test"
7. #将以下代码一起复制到SSH运行
cat > /etc/systemd/system/minioc.service <<EOF
[Unit]
Description=minioc
After=network.target

[Service]
Type=simple
ExecStart=/data/modules/miniohome/pic-node/mc mirror -w ${backup} pic-node/${bucket}
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF


systemctl start minioc //启动
systemctl daemon-reload //如果更新配置,先运行此命令  在运行 restart
systemctl restart minioc //启动
systemctl enable minioc // 开机自启动

校验

临时目录上传文件 bucket同步文件

相关文章

网友评论

      本文标题:MinIO 分布式多租户集群搭建 + 实时监听其他目录文件

      本文链接:https://www.haomeiwen.com/subject/ceyksltx.html