如何在 Debian 11 上安装 MinIO 对象存储服务器
在此页
- 先决条件
- 安装 Minio 服务器
- 为 Minio 存储创建一个分区
- 配置Minio
- 访问 Minio 仪表板
- 结论
Minio 是一种流行的开源、自托管、兼容 Amazon S3 的对象存储服务器,用 Go 语言编写。如果您需要对对象存储服务器进行更多控制,它是 AWS S3 的一个非常有用的替代方案。它允许我们存储照片、视频、日志文件、备份和容器/VM 映像。它提供命令行客户端、浏览器界面,还支持 AMQP。您可以在大规模部署中使用 Minio 进行连续数据复制。
在本文中,我将向您展示如何在 Debian 11 上安装 Minio 服务器。
先决条件
- 运行 Debian 11 的服务器。
- 在服务器上配置了根密码。
安装 Minio 服务器
首先,使用以下命令下载最新版本的 Minio 二进制文件:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
接下来,授予执行权限并将 Minio 二进制文件移动到系统路径:
chmod +x minio
mv minio /usr/local/bin/
接下来,使用以下命令为 Minio 创建专用用户:
useradd -r minio -s /sbin/nologin
接下来,将 Minio 二进制文件的所有权更改为 minio 用户:
chown minio:minio /usr/local/bin/minio
接下来,使用以下命令验证已安装的 Minio 版本:
minio --version
您将获得以下输出:
minio version RELEASE.2022-02-26T02-54-46Z
为 Minio 存储创建分区
接下来,您需要在单独的磁盘上创建 GPT 分区。首先,使用以下命令列出所有连接的硬盘驱动器:
fdisk -l
您应该在以下输出中看到所有连接的硬盘驱动器:
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7d36ef95
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 104855552 104853505 50G 83 Linux
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Volume
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
接下来,使用以下命令在磁盘 /dev/sdb 上创建一个 GPT 分区:
parted -s -a optimal -- /dev/sdb mklabel gpt
parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
parted -s -- /dev/sdb align-check optimal 1
接下来,使用以下命令格式化分区:
mkfs.ext4 /dev/sdb1
您将获得以下输出:
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done
Creating filesystem with 13106688 4k blocks and 3276800 inodes
Filesystem UUID: bd18a11d-a9d9-44a2-a381-f30ba0798661
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
接下来,为 Minio 磁盘创建一个挂载点。
mkdir /mnt/minio
接下来,在 /etc/fstab 文件中添加条目以将分区挂载到挂载点:
nano /etc/fstab
添加以下行:
/dev/sdb1 /mnt/minio ext4 rw 0 0
保存并关闭文件,然后使用以下命令挂载分区:
mount -a
接下来,使用以下命令验证安装的磁盘:
df -h
您应该看到以下输出:
Filesystem Size Used Avail Use% Mounted on
udev 976M 0 976M 0% /dev
tmpfs 199M 388K 198M 1% /run
/dev/sda1 50G 1.6G 46G 4% /
tmpfs 992M 0 992M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 49G 24K 47G 1% /mnt/minio
接下来,将 Minio 挂载的所有权更改为 minio:
chown minio:minio /mnt/minio
配置Minio
接下来,使用以下命令创建一个 Minio 配置目录:
mkdir /etc/minio
接下来,更改 Minio 配置目录的所有权:
chown minio:minio /etc/minio
接下来,创建一个 Minio 配置文件:
nano /etc/default/minio
添加以下行:
MINIO_ACCESS_KEY="minioaccesskey"
MINIO_VOLUMES="/mnt/minio"
MINIO_OPTS="-C /etc/minio --address 0.0.0.0:9000"
MINIO_SECRET_KEY="miniosecretkey"
保存并关闭文件,然后使用以下命令下载 Minio 服务文件:
wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
接下来,使用以下命令编辑 Minio 服务文件:
nano minio.service
更改文件如下所示:
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local/
User=minio
Group=minio
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
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576
# 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 服务文件复制到 /etc/systemd/system/。
mv minio.service /etc/systemd/system/
接下来,重新加载 systemd 守护进程以应用更改:
systemctl daemon-reload
接下来,使用以下命令启动并启用 Minio 服务:
systemctl start minio
systemctl enable minio
接下来,使用以下命令检查 Minio 服务:
systemctl status minio
您应该看到以下输出:
? minio.service - MinIO
Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2022-02-28 02:18:31 UTC; 4s ago
Docs: https://docs.min.io
Process: 861 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; ex>
Main PID: 862 (minio)
Tasks: 7
Memory: 55.2M
CPU: 759ms
CGroup: /system.slice/minio.service
??862 /usr/local/bin/minio server -C /etc/minio --address 0.0.0.0:9000 /mnt/minio
Feb 28 02:18:31 debian11 systemd[1]: Starting MinIO...
Feb 28 02:18:31 debian11 systemd[1]: Started MinIO.
Feb 28 02:18:32 debian11 minio[862]: WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated.
Feb 28 02:18:32 debian11 minio[862]: Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
Feb 28 02:18:32 debian11 minio[862]: API: http://0.0.0.0:9000
Feb 28 02:18:32 debian11 minio[862]: Console: http://209.208.97.78:42459 http://127.0.0.1:42459
Feb 28 02:18:32 debian11 minio[862]: Documentation: https://docs.min.io
Feb 28 02:18:32 debian11 minio[862]: WARNING: Console endpoint is listening on a dynamic port (42459), please use --console-address ":PORT" t>
访问 Minio 仪表板
现在,打开您的 Web 浏览器并使用 URL http://your-server-ip:9000 访问 Minio Web 界面。您将被重定向到 Minio 登录页面:

接下来,使用配置文件中的访问密钥和私钥作为用户名和密码,然后单击“登录”按钮。您应该在以下页面上看到 Minio 仪表板:

单击创建存储桶按钮。您应该会看到以下页面:

提供您的存储桶名称,然后单击“创建存储桶”按钮。您应该会看到以下页面:

从这里,您可以从 Web 浏览器上传和下载文件。
单击监控 => 指标按钮。您应该在以下页面上看到您的存储桶指标:

单击日志按钮。您应该在以下页面上看到 Minio 服务器日志:

结论
恭喜!您已经在 Debian 11 上成功安装了 Minio 存储服务器。现在,您不需要依赖 AWS S3 存储。您可以为您的组织创建自己的 S3 兼容存储服务器。如果您有任何问题,请随时问我。