众客华禹

 找回密码
立即注册

QQ登录

只需一步,快速开始

查看: 520|回复: 0

Centos7部署minio集群

[复制链接]

70

主题

70

帖子

378

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
378
发表于 2022-1-24 16:35:45 | 显示全部楼层 |阅读模式
一、准备机器
1、准备四台机器,(minio集群最少四台)
  1. vim /etc/hosts
  2. 192.168.223.132 minio-1
  3. 192.168.223.133 minio-2
  4. 192.168.223.134 minio-3
  5. 192.168.223.135 minio-4
复制代码
2、创建挂载磁盘路径
  1. mkdir -p /data/minio_data/
复制代码
3、挂载磁盘路径到文件系统
注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错,还需要注意的是挂载的文件系统至少要1G不然无法初始化导致集群报错
  1. 文件系统 容量 已用 可用 已用% 挂载点
  2. [root@minio-1 minio]# df -h
  3. 文件系统                                容量  已用  可用 已用% 挂载点
  4. devtmpfs                                470M     0  470M    0% /dev
  5. tmpfs                                   487M     0  487M    0% /dev/shm
  6. tmpfs                                   487M  8.4M  478M    2% /run
  7. tmpfs                                   487M     0  487M    0% /sys/fs/cgroup
  8. /dev/mapper/centos_hadoop--master-root   47G   12G   36G   25% /
  9. /dev/sda1                              1014M  240M  775M   24% /boot
  10. tmpfs                                    98M     0   98M    0% /run/user/0
  11. tmpfs                                    98M   12K   98M    1% /run/user/42
复制代码
4、将上面挂载磁盘路径挂载到相应的文件系统上
  1. mount /dev/sda1 /data/minio_data/
复制代码
5、查看挂载信息
查看挂载信息.png
6、创建minio目录
  1. cd   /data/minio_data/
复制代码
7、下载安装包
  1. wget  http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
  2. wget  https://dl.min.io/client/mc/release/linux-amd64/mc
复制代码
8、赋执行权限(根据情况,这里赋全部权限)
  1. chmod +x minio mc
复制代码
9、创建启动脚本,编辑run.sh文件
  1. mkdir /opt/minio && cd /opt/minio
  2. 内容如下:
  3. cat > run.sh <<EOF
  4. #!/bin/bash
  5. export MINIO_ACCESS_KEY=minio
  6. export MINIO_SECRET_KEY=Leo825#20210423
  7. /usr/local/bin/minio server --address=192.168.223.132:9000 http://192.168.223.132/data/minio_data/data1  http://192.168.223.133/data/minio_data/data1  http://192.168.223.134/data/minio_data/data1 http://192.168.223.135111/data/minio_data/data1
  8. EOF
复制代码
10、赋执行权限(根据情况,这里赋全部权限)
  1. chmod 777 /data/minio_data/run.sh
复制代码
11、创建启动服务,创建minio.service启动脚本
  1. vim /usr/lib/systemd/system/minio.service
  2. 内容如下:
  3. [Unit]
  4. Description=Minio service
  5. Documentation=https://docs.minio.io/

  6. [Service]
  7. #安装包路径
  8. WorkingDirectory=/data/minio_data/
  9. #启动命令路径
  10. ExecStart=/data/minio_data/run.sh

  11. Restart=on-failure
  12. RestartSec=5

  13. [Install]
  14. WantedBy=multi-user.target
复制代码
12、启动测试(所有机器执行)
  1. 重新加载服务的配置文件
  2. systemctl daemon-reload
  3. 启动minio服务
  4. systemctl start minio
  5. 查看minio状态
  6. systemctl status minio
  7. [root@minio-2 ~]# systemctl status minio
  8. ● minio.service - Minio service
  9. Loaded: loaded (/usr/lib/systemd/system/minio.service; disabled; vendor preset: disabled)
  10. Active: active (running) since 日 2021-01-31 17:22:54 CST; 17s ago
  11. Docs: <a href="https://docs.minio.io/" target="_blank">https://docs.minio.io/</a>
  12. Main PID: 2036 (run.sh)
  13. Tasks: 8
  14. CGroup: /system.slice/minio.service
  15. ├─2036 /bin/bash /data/minio_data/run.sh
  16. └─2039 /data/minio_data/minio server http://192.168.223.132/data/minio_data/data1"

  17. 关闭minio服务
  18. systemctl stop minio
复制代码
13、访问地址
集群中的任何一台机器都可以访问:
  1. http://192.168.223.132:9000/
  2. http://192.168.223.133:9000/
  3. http://192.168.223.134:9000/
  4. http://192.168.223.135:9000/
复制代码
15、创建测试桶
创建测试桶.png
16、上传测试
上传测试.png

17、主机上可以查看到上传的文件
主机上可以查看到上传的文件.png

二、nginx配置文件服务器访问
1、执行命令
  1. mc  alias set minio http://192.168.223.132:9000/minio  Leo825#20210423 --api S3v4
  2. 开启匿名访问
  3. mc policy set public minio/sy01
复制代码
2、web页面开启匿名访问
web页面开启匿名访问5.png

web页面开启匿名访问6.png

3、http访问,sy01是桶名称,方便浏览器访问。
  1. upstream minio-server{
  2. server 192.168.223.132:9000 weight=25 max_fails=2 fail_timeout=30s;
  3. server 192.168.223.133:9000 weight=25 max_fails=2 fail_timeout=30s;
  4. server 192.168.223.134:9000 weight=25 max_fails=2 fail_timeout=30s;
  5. server 192.168.223.135:9000 weight=25 max_fails=2 fail_timeout=30s;
  6. }
  7. server {
  8.    listen 8888;
  9.    server_name 192.168.223.132;

  10.    #To allow special characters in headers
  11.    ignore_invalid_headers off;
  12.    # Allow any size file to be uploaded.
  13.    # Set to a value such as 1000m; to restrict file size to a specific value
  14.    client_max_body_size 0;
  15.    # To disable buffering
  16.    proxy_buffering off;

  17.    location /sy01/ {
  18.       proxy_set_header X-Real-IP $remote_addr;
  19.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20.       proxy_set_header X-Forwarded-Proto $scheme;
  21.       proxy_set_header Host $http_host;

  22.       proxy_connect_timeout 300;
  23.       # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
  24.       proxy_http_version 1.1;
  25.       proxy_set_header Connection "";
  26.       chunked_transfer_encoding off;

  27.       proxy_pass http://minio-server;
  28.     }

  29.     location / {
  30.       proxy_set_header X-Real-IP $remote_addr;
  31.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  32.       proxy_set_header X-Forwarded-Proto $scheme;
  33.       proxy_set_header Host $http_host;

  34.       proxy_connect_timeout 300;
  35.       # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
  36.       proxy_http_version 1.1;
  37.       proxy_set_header Connection "";
  38.       chunked_transfer_encoding off;

  39.       proxy_pass http://minio-server; # If you are using docker-compose this would be the hostname i.e. minio
  40.       # Health Check endpoint might go here. See https://www.nginx.com/resources/wiki/modules/healthcheck/
  41.       # /minio/health/live;
  42.     }
  43. }
复制代码
4、https访问,minio是负载minio服务,sy01是桶名称,方便浏览器访问。
  1. upstream minio-server{
  2.         server 192.168.223.132:9000 weight=25 max_fails=2 fail_timeout=30s;
  3.         server 192.168.223.133:9000 weight=25 max_fails=2 fail_timeout=30s;
  4.         server 192.168.223.134:9000 weight=25 max_fails=2 fail_timeout=30s;
  5.         server 192.168.223.135:9000 weight=25 max_fails=2 fail_timeout=30s;
  6. }
  7. server {
  8.      listen 443 ssl;
  9.      server_name  192.168.223.132;

  10.      ssl_certificate /etc/nginx/ssl/192.168.223.132.crt;
  11.      ssl_certificate_key /etc/nginx/ssl/192.168.223.132.key;

  12.      location /sy01/ {
  13.           proxy_set_header X-Real-IP $remote_addr;
  14.           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15.           proxy_set_header X-Forwarded-Proto $scheme;
  16.           proxy_set_header Host $http_host;

  17.           proxy_connect_timeout 300;
  18.           proxy_http_version 1.1;
  19.           proxy_set_header Connection "";
  20.           chunked_transfer_encoding off;
  21.           proxy_pass http://minio-server;
  22.    }

  23.    location /minio {
  24.       proxy_set_header X-Real-IP $remote_addr;
  25.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  26.       proxy_set_header X-Forwarded-Proto $scheme;
  27.       proxy_set_header Host $http_host;

  28.       proxy_connect_timeout 300;
  29.       proxy_http_version 1.1;
  30.       proxy_set_header Connection "";
  31.       chunked_transfer_encoding off;
  32.       proxy_pass http://minio-server;
  33.    }  
  34. }
  35. 或者换成tcp代理也可以实现,放在http层外,如果服务器在内网,访问在外网,中间经过了代理,或者隧道之内的,必须要要tcp,否则会http头部hred验证会失败。

  36. upstream minio-server {
  37.         server 192.168.223.132:9000     max_fails=3 fail_timeout=30s;
  38.         server 192.168.223.133:9000     max_fails=3 fail_timeout=30s;
  39.         server 192.168.223.134:9000     max_fails=3 fail_timeout=30s;
  40.         server 192.168.223.135:9000     max_fails=3 fail_timeout=30s;
  41. }
  42. server {
  43.         listen 9000;
  44.         proxy_connect_timeout 2s;
  45.         proxy_timeout 900s;
  46.         proxy_pass minio-server;
  47. }
复制代码
5、浏览器访问效果:
web页面开启匿名访问7.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|众客华禹 ( 蜀ICP备2021016660号 )

GMT+8, 2022-5-17 08:51 , Processed in 0.051798 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表