在Linux上安装MinIO服务器可以分为单节点单硬盘(SNSD)和多节点多磁盘(分布式)两种部署方式。以下是详细的安装步骤:
单节点单硬盘(SNSD)部署
-
下载MinIO服务器文件
使用以下命令下载安装最新版本的稳定MinIO二进制包,并设置
$PATH
:wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio mv minio /usr/local/bin/
-
创建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
用户和组的身份运行。您可以使用groupadd
和useradd
创建用户和组。例如: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 配置一致。 -
启动MinIO服务
启动 MinIO 服务并设置为开机自启:
sudo systemctl daemon-reload sudo systemctl enable --now minio
-
验证MinIO服务状态
使用以下命令验证 MinIO 服务是否正常运行:
curl http://localhost:9000/minio/cluster/nodes
多节点多磁盘(分布式)部署
-
环境准备
-
创建存储目录(每个节点需相同路径):
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
文件,设置集群参数: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' -
创建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' -
启动集群
在所有节点上依次执行以下命令:
sudo systemctl daemon-reload sudo systemctl enable --now minio
-
验证节点状态
在任意一个节点上执行以下命令查看集群健康状态:
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) │ └─────┴──────────────────────┴──────────────────────────────────────┘
-
上传测试文件
创建存储桶并上传大文件验证分片:
mc mb myminio/cluster-bucket mc cp 10GB-file.bin myminio/cluster-bucket
通过以上步骤,您可以在Linux上成功安装并运行MinIO服务器。根据您的需求选择单节点单硬盘或多节点多磁盘的部署方式。