117.info
人生若只如初见

Linux系统中MinIO的安装教程

在Linux系统中安装MinIO可以分为单机版和集群版两种情况。以下是详细的安装教程:

单机版MinIO安装

  1. 环境准备
  • 创建专用存储目录:

    sudo mkdir -p /data/minio sudo chown -R $USER:$USER /data/minio # 非root用户运行时需授权 
  • 下载MinIO二进制文件:

    wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/ 
  • 配置环境变量文件: 创建 /etc/default/minio 文件,写入以下内容:

    MINIO_ROOT_USER="admin" MINIO_ROOT_PASSWORD="YourPass@123" # 管理密码(至少12字符) MINIO_VOLUMES="/data/minio" MINIO_OPTS="--address :9000 --console-address :9001" # 端口设置 
  1. 创建Systemd服务
  • 新建 /etc/systemd/system/minio.service 文件:
    [Unit] Description=MinIO Single Node Service After=network.target [Service] User=$USER # 替换为实际运行用户(需有存储目录权限) Group=$USER EnvironmentFile=/etc/default/minio ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES Restart=always RestartSec=5s LimitNOFILE=65536 [Install] WantedBy=multi-user.target 
  1. 启动并验证服务
  • 重新加载Systemd配置:

    sudo systemctl daemon-reloads 
  • 启用并启动MinIO服务:

    sudo systemctl enable --now minio 
  • 检查服务状态:

    sudo systemctl status minio 

    输出应显示 “Active: active (running)”。

  1. 访问验证
  • 控制台访问:浏览器访问 http://服务器IP:9001,使用配置的账号密码登录。
  • API测试:
    curl http://localhost:9000/minio/health/live 
    正常返回 {"status": "ok"}
  1. 安全加固(可选但推荐)
  • 启用HTTPS:

    • 生成自签名证书:
      sudo mkdir -p /etc/minio/certs sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/minio/certs/private.key -out /etc/minio/certs/public.crt -subj "/CN=$(hostname)" 
    • 修改配置:
      echo 'MINIO_OPTS="$MINIO_OPTS --certs-dir /etc/minio/certs"' | sudo tee -a /etc/default/minio sudo systemctl restart minio 
  • 防火墙配置:

    sudo firewall-cmd --permanent --add-port=9000/tcp --add-port=9001/tcp sudo firewall-cmd --reload 
  • 客户端管理工具(mc)安装配置:

    • 下载mc:
      wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod +x mc sudo mv mc /usr/local/bin/ 
    • 添加服务器别名:
      mc alias set myminio http://localhost:9000 admin YourPass@123 
    • 常用命令示例:
      • 创建存储桶:
        mc mb myminio/my-bucket 
      • 上传文件:
        mc cp ~/testfile.txt myminio/my-bucket 
      • 设置匿名下载策略:
        mc anonymous set-upload myminio/my-bucket 
  1. 数据持久化与维护
  • 数据备份:

    sudo tar czvf minio_backup_$(date +%F).tar.gz /data/minio 
  • 日志监控:

    journalctl -u minio 

集群版MinIO安装

  1. 集群架构要求
  • 组件最低配置:
    • 节点数量:4 节点(容忍 1 节点故障)
    • 存储:每个节点至少 1 块磁盘
  • 组件推荐配置:
    • 节点数量:8 节点(容忍 3 节点故障)
    • 存储:每个节点 4-8 块磁盘(JBOD 模式)
  • 网络:节点间延迟 ≤15ms,带宽 ≥1Gbps;节点间延迟 ≤5ms,带宽 ≥10Gbps
  1. 部署流程(以4节点为例):
  • 环境准备(所有节点执行):

    • 创建存储目录:
      sudo mkdir -p /data/minio{1..4} 
    • 假设每节点4块磁盘:
      sudo chmod -R 755 /data/minio{1..4} 
    • 配置主机名解析(/etc/hosts):
      echo "192.168.1.101 minio-node1" | sudo tee -a /etc/hosts echo "192.168.1.102 minio-node2" | sudo tee -a /etc/hosts echo "192.168.1.103 minio-node3" | sudo tee -a /etc/hosts echo "192.168.1.104 minio-node4" | sudo tee -a /etc/hosts 
  • 安装MinIO(所有节点执行):

    wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/ 
  • 配置集群参数(所有节点相同配置):

    • 创建 /etc/default/minio 文件:
      MINIO_ROOT_USER="admin" MINIO_ROOT_PASSWORD="ClusterSecurePass@123" MINIO_OPTS="--address :9000 --console-address :9001" MINIO_VOLUMES="http://minio-node{1..4}/data/minio{1..4}" 
  • 创建Systemd服务(所有节点相同):

    [Unit] Description=MinIO Cluster Node After=network.target [Service] User=root Group=root EnvironmentFile=/etc/default/minio ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES Restart=always RestartSec=5s LimitNOFILE=65536 [Install] WantedBy=multi-user.target 
  • 启动集群(所有节点依次执行):

    sudo systemctl daemon-reloads sudo systemctl enable --now minio 
  • 验证节点状态(任选一节点执行):

    curl http://localhost:9000/minio/cluster/nodes 
  • 集群验证

    • 检查节点状态
      mc admin info myminio 
      输出示例:
      ● 4 Online, 0 Offline. ┌─────┬──────────────────────┬──────────────────────────────────────┐ │ # │ Endpoint │ Status │ ├─────┼──────────────────────┼──────────────────────────────────────┤ │ 1 │ http://minio-node1 │ Online (4 drives, 16 TB each) │ │ 2 │ http://minio-node2 │ Online (4 drives, 16 TB each) │ │ 3 │ http://minio-node3 │ Online (4 drives, 16 TB each) │ │ 4 │ http://

未经允许不得转载 » 本文链接:https://www.117.info/ask/feea1AzsNBQ9VDV0.html

推荐文章

  • 如何通过脚本在Linux上安装MinIO

    在Linux上通过脚本安装MinIO可以通过多种方式进行,包括使用预编译的二进制文件、使用包管理器(如APT或YUM)或者从源代码编译。以下是使用预编译二进制文件和包...

  • Rust项目如何在Linux中构建

    在Linux中构建Rust项目通常涉及以下步骤: 安装Rust:
    如果你还没有安装Rust,可以通过rustup来安装。rustup是Rust的工具链管理器,它允许你安装和管理多个...

  • Linux系统如何调试Rust程序

    在Linux系统上调试Rust程序,你可以使用以下几种方法: 使用rust-gdb或rust-lldb:
    Rust提供了一个名为rust-gdb的GDB包装器,以及一个名为rust-lldb的LLDB包...

  • Node.js日志级别设置合理吗

    在Node.js中,日志级别的设置是非常重要的,因为它可以帮助我们更好地了解应用程序的运行状况、性能和潜在问题。合理的日志级别设置可以帮助我们在开发和生产环境...

  • Ubuntu DHCP如何配置客户端选项

    在Ubuntu中配置DHCP客户端选项,通常需要编辑/etc/dhcp/dhclient.conf文件。这个文件允许你为DHCP客户端设置特定的选项。以下是一些常见的配置步骤和示例: 打开...

  • 如何配置Linux Kafka的压缩选项

    在Linux上配置Kafka的压缩选项,可以通过修改Kafka服务器和客户端的配置文件来实现。以下是一些常见的压缩选项及其配置方法:
    1. 修改Kafka服务器配置

  • Ubuntu FTP服务器如何进行版本控制

    在Ubuntu上设置FTP服务器本身并不直接支持版本控制。版本控制通常是通过版本控制系统(如Git)来实现的,而不是通过FTP服务器。不过,你可以在FTP服务器上存储和...

  • CentOS下C++如何使用命名空间

    在C++中,命名空间(namespace)是一种用于组织代码的机制,它可以避免全局作用域中的命名冲突。在CentOS系统下使用C++编写程序时,你可以像在其他操作系统下一样使...