117.info
人生若只如初见

如何在Linux装MinIO服务器

在Linux上安装MinIO服务器可以分为单节点单硬盘(SNSD)和多节点多磁盘(分布式)两种部署方式。以下是详细的安装步骤:

单节点单硬盘(SNSD)部署

  1. 下载MinIO服务器文件

    使用以下命令下载安装最新版本的稳定MinIO二进制包,并设置 $PATH

    wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio mv minio /usr/local/bin/ 
  2. 创建Systemd系统启动服务文件

    创建 /usr/lib/systemd/system/minio.service 文件:

    sudo vim /usr/lib/systemd/system/minio.service 

    内容如下:

    [Unit] Description=MinIO Documentation=https://min.io/docs/minio/linux/index.html Wants=network-online.target After=network-online.target AssertFileIsExecutable=/usr/local/bin/minio [Service] WorkingDirectory=/usr/local User=minio-user Group=minio-user ProtectProc=invisible EnvironmentFile=-/etc/default/minio ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ];then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\";exit 1;fi" ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES # MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify # (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=) # This may improve systemctl setups where other services use `After=minio.server` # Uncomment the line to enable the functionality # Type=notify # Let systemd restart this service always Restart=always # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536 # Specifies the maximum number of threads this process can create TasksMax=infinity # Disable timeout logic and wait until process is stopped TimeoutStopSec=infinity SendSIGKILL=no [Install] WantedBy=multi-user.target 

    默认情况下,minio.service 文件以 minio-user 用户和组的身份运行。您可以使用 groupadduseradd 创建用户和组。例如:

    sudo groupadd -r minio-user sudo useradd -M -r -g minio-user minio-user sudo mkdir /data/minio sudo chown minio-user:minio-user /data/minio 

    本例中的驱动器路径由 MINIO_VOLUMES 环境变量指定。更改此处和环境变量文件中的值,使其与 MinIO 配置一致。

  3. 启动MinIO服务

    启动 MinIO 服务并设置为开机自启:

    sudo systemctl daemon-reload sudo systemctl enable --now minio 
  4. 验证MinIO服务状态

    使用以下命令验证 MinIO 服务是否正常运行:

    curl http://localhost:9000/minio/cluster/nodes 

多节点多磁盘(分布式)部署

  1. 环境准备

    • 创建存储目录(每个节点需相同路径):

      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 
  2. 安装MinIO

    在所有节点上执行以下命令:

    wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/ 
  3. 配置集群参数

    创建 /etc/default/minio 文件,设置集群参数:

    sudo bash -c 'cat < /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}" EOF' 
  4. 创建Systemd服务

    在所有节点上创建相同的 Systemd 服务文件:

    sudo bash -c 'cat < /etc/systemd/system/minio.service [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 EOF' 
  5. 启动集群

    在所有节点上依次执行以下命令:

    sudo systemctl daemon-reload sudo systemctl enable --now minio 
  6. 验证节点状态

    在任意一个节点上执行以下命令查看集群健康状态:

    curl http://localhost:9000/minio/cluster/nodes 

    输出示例:

    ● 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://minio-node4 │ Online (4 drives, 16 TB each) │ └─────┴──────────────────────┴──────────────────────────────────────┘ 
  7. 上传测试文件

    创建存储桶并上传大文件验证分片:

    mc mb myminio/cluster-bucket mc cp 10GB-file.bin myminio/cluster-bucket 

通过以上步骤,您可以在Linux上成功安装并运行MinIO服务器。根据您的需求选择单节点单硬盘或多节点多磁盘的部署方式。

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

推荐文章

  • ThinkPHP RESTful API设计

    设计一个基于ThinkPHP的RESTful API需要遵循一些最佳实践,以确保API的可扩展性、可维护性和安全性。以下是一个基本的设计指南:
    1. 项目结构
    首先,确...

  • Linux中HDFS的数据恢复方法是什么

    在Linux中,HDFS(Hadoop Distributed File System)的数据恢复方法主要包括以下几种:
    1. 回收站机制恢复 HDFS提供了回收站功能,删除文件后会将其移动到回...

  • 如何通过 FetchLinux 加强安全防护

    FetchLinux 是一个基于 Debian 的轻量级 Linux 发行版,通常用于服务器和嵌入式系统。虽然 FetchLinux 并不是一个广泛认可的 Linux 发行版名称,但我们可以从一般...

  • Linux Recycle:如何安全清理磁盘空间

    在Linux系统中,"Recycle"通常指的是回收站,它是用来存储已删除的文件和文件夹,以便用户有机会恢复它们。然而,回收站本身并不提供清理磁盘空间的功能。要安全...

  • Linux下Golang日志如何实现远程访问

    在Linux下,使用Golang实现日志远程访问可以通过以下几种方式: 使用网络套接字(TCP/UDP): 你可以创建一个Golang程序,该程序将日志发送到远程服务器。远程服...

  • centos中vsftp如何启动与停止

    在CentOS系统中,使用systemctl命令来管理服务的启动和停止。对于VSFTPD(Very Secure FTP Daemon),你可以按照以下步骤来启动和停止服务:
    启动VSFTPD服务...

  • Ubuntu Aliases在远程操作中的应用

    在Ubuntu系统中,Aliases(别名)通常用于简化命令行操作,提高工作效率。虽然Aliases本身不直接应用于远程操作,但它们可以与SSH配置结合使用,从而在远程访问U...

  • Debian上Jenkins如何管理用户权限

    在Debian上管理Jenkins的用户权限通常涉及以下几个步骤:
    安装和启用Role-based Authorization Strategy插件 进入Jenkins的系统管理页面,选择“Manage Jen...