Windows电脑为例,设置minio文件服务分布式部署

前言

关于分布式文件存储,之前我也是使用fastdfs,那为什么突然选择minio?
1、它可以多平台部署
2、搭建起来不是很复杂
3、github近30K的star

什么是minio

构建高性能的云原生数据
机器学习,大数据分析,海量存储的基础架构
MinIO支持各种应用程序数据工作负载
在中国:阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品

更多详细介绍请参考官网
官网:https://min.io/
中文版:http://www.minio.org.cn/ (注意:中文版本的有些资料更新没那么及时,建议看官网地址)
github项目地址:https://github.com/minio/
下载地址:https://min.io/download

安装

这里我是演示windows版本下minio服务器的安装,以下是下载链接地址
https://dl.minio.io/server/minio/release/windows-amd64/minio.exe

cmd命令启动程序

进入到minio的目录下,执行

minio.exe server D:\MinIO\Data --console-address ":9000" --address ":9090"
1

参数介绍
D:\MinIO\Data:MinIO安装的目录,包含配置文件,存储文件
–console-address “:9000”:控制台端口,自带UI页面
–address “:9090”:API端口

在这里插入图片描述
这时候有报了一个错误:
WARNING: Detected default credentials ‘minioadmin:minioadmin’, we recommend that you change these values with ‘MINIO_ROOT_USER’ and ‘MINIO_ROOT_PASSWORD’ environment variables

大概意思就是让我们改下默认密码,它建议我们新增一个环境变量来初始化这些值。即使我们不调整也是可以访问的,但为了安全,我们还是要调整一下。

解决初始账号密码问题

1、设置添加环境变量

PS> setx MINIO_ROOT_USER admin
PS> setx MINIO_ROOT_PASSWORD password
12

2、直接修改配置文件config.json
找到配置文件并打开,一般在安装目录D:\MinIO\Data.minio.sys\config\config.json
然后找到access_key和secret_key调整成自己想要账号密码
在这里插入图片描述
改完保存一下,然后重新运行起来,成功
在这里插入图片描述

利用nssm把minio.exe安装成windows服务

用控制台打开的程序,大家都知道在生产环境中很容易被别人误关掉,所以还是改成windows服务比较好。

1、写个可以把程序运行起来的批处理文件

minio.bat

@echo off 
set path=D:\MinIO
set minPath=D:\MinIO\Data
%path%\minio.exe server %minPath% --console-address ":9000" --address ":9090"
pause
12345

2、利用nssm安装minio.bat
安装服务

D:\nssm-2.24\win64>nssm install MinIOServiceCustom "D:\MinIO\minio.bat"
1

在这里插入图片描述
查看一下是否有服务,有则成功
在这里插入图片描述

卸载服务

D:\nssm-2.24\win64>nssm remove MinIOServiceCustom confirm
1

MinIO控制台

输入账号密码,成功跳转到首页
在这里插入图片描述

下面以Windows电脑为例,设置minio文件服务分布式部署。

1.安装Minio

比较简单,自行百度查询。

2.运行分布式Minio

启动分布式Minio实例,需要把硬盘位置做为参数传给minio server命令,注意:

分布式Minio使用的磁盘里必须是干净的,里面没有数据。

示例: 启动分布式Minio实例,4个节点,需要在4个节点上都运行下面的命令。

多机集群部署

​minio server http://192.168.10.11/D:/minio http://192.168.10.12/D:/minio http://192.168.10.13/D:/minio http://192.168.10.14/D:/minio

如果需要在单机上进行集群部署,改下端口号和路径即可

minio server --address :9001 http://127.0.0.1/D:/minio1 http://127.0.0.1/D:/minio2 http://127.0.0.1/D:/minio3 http://127.0.0.1/D:/minio4
 
minio server --address :9002 http://127.0.0.1/D:/minio1 http://127.0.0.1/D:/minio2 http://127.0.0.1/D:/minio3 http://127.0.0.1/D:/minio4
 
minio server --address :9003 http://127.0.0.1/D:/minio1 http://127.0.0.1/D:/minio2 http://127.0.0.1/D:/minio3 http://127.0.0.1/D:/minio4
 
minio server --address :9004 http://127.0.0.1/D:/minio1 http://127.0.0.1/D:/minio2 http://127.0.0.1/D:/minio3 http://127.0.0.1/D:/minio4
 

3.配置负载均衡

Nginx.conf增加配置

多机集群配置

upstream minio {
    server 192.168.10.11:9000;
    server 192.168.10.12:9000;
    server 192.168.10.13:9000;
    server 192.168.10.14:9000;
    }
 
​server {
    listen    9000;
    server_name  localhost;
    ignore_invalid_headers off;
    client_max_body_size 0;
    proxy_buffering off;
 
  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_connect_timeout 300;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    chunked_transfer_encoding off;
    proxy_pass http://minio;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

访问http://192.168.10.10:9000/自动负载到其他四台电脑的minio服务上

单机集群配置

upstream minio {
    server 127.0.0.1:9001;
    server 127.0.0.1:9002;
    server 127.0.0.1:9003;
    server 127.0.0.1:9004;
    }
 
​server {
    listen    9000;
    server_name  localhost;
    ignore_invalid_headers off;
    client_max_body_size 0;
    proxy_buffering off;
 
  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_connect_timeout 300;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    chunked_transfer_encoding off;
    proxy_pass http://minio;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

访问http://127.0.0.1:9000/自动负载到9001~9004的任意一个端口

常见问题:

ERROR Unable to initialize backend: found backend fs, expected xl

解决方案:

原因是当前这台服务器部署过单机版,导致集群部署一直不成功。需要将原来相关⽂件存储⽬录⾥的 .minio.sys⽂件清理掉。

如需转载,请注明作者和原文连接。

posted @ 2023-06-24 15:36  xiondun  阅读(3260)  评论(0)    收藏  举报