Minio下载与安装及其多驱多节点部署 + Nginx做负载均衡

时间:2024-11-07 20:34:56

Minio下载与安装及其多驱多节点部署 + Nginx做负载均衡

1、Minio概述

MinIO是一个开源的分布式对象存储服务器,它兼容Amazon S3服务接口。它是一个轻量级、高性能、高可用性的存储解决方案,可用于存储和检索大规模数据对象。

以下是MinIO的一些关键特点和概述:

  • 对象存储:MinIO以对象的形式存储数据,每个对象包含数据本身、元数据和唯一的标识符(Object ID)。

  • 分布式架构:MinIO支持分布式部署,可以横向扩展以处理大规模数据存储需求。它采用分布式的存储和访问模型,能够在多个节点上并行处理请求,实现高吞吐量和低延迟。

  • 高可用性:MinIO提供高可用性的存储方案,通过数据冗余和容错机制,确保数据的可靠性和持久性。它支持数据的多副本复制和故障恢复,保证数据的可用性。

  • 安全性:MinIO支持数据加密和访问控制,可以通过SSL/TLS保护数据的传输安全性。它还提供身份验证和授权机制,可以细粒度地控制对存储桶和对象的访问权限。

  • 兼容性:MinIO与Amazon S3兼容,可以无缝地与现有的S3应用程序和工具集成。它提供了S3 API接口,使开发人员能够直接使用S3生态系统中的工具和库。

  • 轻量级:MinIO具有轻量级的设计和部署特点,可以在常见的硬件设备上运行,包括个人电脑、服务器、云实例等。

总而言之,MinIO是一个可扩展、高性能、兼容S3接口的分布式对象存储解决方案,适用于大规模数据存储和访问的场景。它提供了简单而强大的API和工具,使开发人员能够方便地构建和管理存储基础设施。

Minio慢慢的成为了对象、文件存储的首要选择

2、Minio的下载与安装

rpm方式部署

下载MinIO RPM包:访问MinIO的官方网站(/),进入下载页面,选择适合您系统的RPM包进行下载。

  • 安装MinIO RPM包:使用root用户或具有sudo权限的用户执行以下命令安装RPM包:
sudo rpm -i minio_package.rpm
  • 配置MinIO:打开MinIO配置文件(通常在/etc/minio目录下),根据您的需求进行配置,包括监听地址、认证信息、存储路径等。

  • 启动MinIO:执行以下命令启动MinIO服务:

sudo systemctl start minio
  • 验证MinIO服务是否运行:执行以下命令检查MinIO服务的运行状态:
sudo systemctl status minio

如果服务正常运行,将显示运行状态为"active (running)"。

  • 配置防火墙:如果您的系统启用了防火墙,确保允许MinIO所使用的端口通过防火墙。

二进制文件方式安装部署

官方的步骤就三步

wget /server/minio/release/linux-amd64/minio
chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"

3、Minio的多驱多节点安装

存放目录/usr/local/minio(可自行修改)

  1. 进入minio官网下载二进制文件/#/linux,可以直接下载好上传到服务器,也可以使用命令下载

    wget /server/minio/release/linux-amd64/minio
    
  2. 修改下载的二进制文件权限,变成为可执行文件

    chmod +x minio
    
  3. 磁盘挂载

    lsblk -f
    
    # 创建分区
    fdisk /dev/vdb
    # 说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q
    
    # 格式化磁盘
    mkfs -t xfs /dev/vdb1
    
    # 挂载分区
    mount /dev/vdb1 /minio
    
  4. 创建log文件夹存放log

    mkdir log
    
  5. 创建运行脚本

    vim 
    
    
    ### 内容如下 ###
    export MINIO_ROOT_USER=minio
    export MINIO_ROOT_PASSWORD=minio123!@#
    export MINIO_ACCESS_KEY=minio
    export MINIO_SECRET_KEY=minio123!@#
    
    nohup /usr/local//minio/minio server /minio/data{1...6} --console-address ":9001" --address ":9000" > /usr/local//minio/log/minio_server1.log 2>&1 &
    
    nohup /usr/local//minio/minio server /minio/data{1...6} --console-address ":9003" --address ":9002" > /usr/local//minio/log/minio_server2.log 2>&1 &
    
    nohup /usr/local//minio/minio server /minio/data{1...6} --console-address ":9005" --address ":9004" > /usr/local//minio/log/minio_server3.log 2>&1 &
    
    

    说明

    • MINIO_ROOT_USER和MINIO_ROOT_PASSWORD是页面登录的账号密码
    • MINIO_ACCESS_KEY和MINIO_SECRET_KEY是项目连接minio需要的密钥
    • /minio/data{1…6}是存储数据的路径 ,需要挂载
    • –console-address ":9001"进入web页面的端口
    • address “:9004” 服务的端口
  6. 使用nginx做负载均衡,nginx配置如下:

    upstream minio{
            server 10.44.155.243:9000;
            server 10.44.155.243:9002;
            server 10.44.155.243:9004;
    }
    server {
        listen       9006;
        server_name  localhost;
            charset utf-8;
        location / {
             proxy_pass http://minio;
             proxy_set_header Host $http_host;
             client_max_body_size 1000m;
        }
    #access_log  /data/nginx/logs/;
    #error_log  /data/nginx/logs/;
    }
    
  7. 运行脚本,启动集群

    ./
    

上述内容是一台服务器上部署minio集群

minio在多台服务器

只有第五步的差别

### 内容如下 ###
export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minio123!@#
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=minio123!@#

nohup /usr/local//minio/minio server /minio/data{1...6} --console-address ":9001" --address ":9000" > /usr/local//minio/log/minio_server1.log 2>&1 &



修改成

nohup /usr/local//minio/minio server 对应每一个minio的存储路径 --console-address ":9001" --address ":9000" > /usr/local//minio/log/minio_server1.log 2>&1 &

类似于
nohup /usr/local//minio/minio server http://192.168.1.200/minio1 http://192.168.1.200/minio2 http://192.168.1.200/minio3 http://192.168.1.200/minio4 http://192.168.1.141/minio1 http://192.168.1.141/minio2 http://192.168.1.141/minio3 http://192.168.1.141/minio4 --console-address ":9001" --address ":9000" > /usr/local//minio/log/minio_server1.log 2>&1 &

分别启动每台服务器上的minio