在Linux上安装MinIO服务器可以分为单节点单硬盘(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 <<EOF > /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 <<EOF > /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服务器。根据您的需求选择单节点单硬盘或多节点多磁盘的部署方式。