如何使用minio设置S3兼容的对象存储服务器

时间:2020-02-23 14:31:00  来源:igfitidea点击:

我们是否要设置私人S3兼容的对象存储服务器?
Minio是一个与Amazon S3云存储服务兼容的轻量级对象存储服务器。
Minio是在Apache许可证v2.0下进行的Go和许可。

对象存储最适合存储非结构化数据,例如视频,照片,日志文件,容器图像,VM图像和备份。
每个尺寸的物体可以从几千克到最多5TB的范围。

如何在Linux上安装Minio对象存储服务器

Minio对象存储服务器可以从二进制文件安装或者在容器中运行它。
我不会做容器安装,因为它不是设置存储服务器的理想方式。

第1步:下载Minio

下载minio二进制。

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

我们可以使用查询包详细信息 version选项。

$minio  version
Version: 2019-01-23T23:18:58Z
Release-Tag: RELEASE.2019-01-23T23-18-58Z
Commit-ID: bd25f31100f44646cffae99dfec23179366593e2

第2步:准备对象存储磁盘

下载MINIO后,让我们准备一个块设备,我们将用于存储对象。
使用的路径可以是文件系统root中的目录。

为方便和可靠性,我正在使用我的服务器中的辅助磁盘。

# lsblk  | grep sdb
 sdb      8:16   0    10G  0 disk

我将创建一个新分区并将此磁盘安装为 /data目录。

sudo parted -s -a optimal -- /dev/sdb mklabel gpt
sudo parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
sudo parted -s -- /dev/sdb align-check optimal 1
sudo mkfs.ext4 /dev/sdb1
echo "/dev/sdb1 /data ext4 defaults 0 0" | sudo tee -a /etc/fstab
sudo mkdir /data
sudo mount -a

确认磁盘挂载

$df -h | grep /data
/dev/sdb1       9.8G   37M  9.3G   1% /data

第3步:启动Minio服务

我们有三个启动Minio Server的选项。
指令行 - 交互式会话系统DoseDuting Sysvinit/Upstart

使用Systemd管理Minio Service

对于使用Systemd Init系统运行系统的人,为运行Minio服务创建用户和组。

sudo groupadd --system minio
sudo useradd -s /sbin/nologin --system -g minio minio

给Minio用户所有权 /data目录。

sudo chown -R minio:minio /data/

为minio创建Systemd服务单元文件。

sudo vim /etc/systemd/system/minio.service

将以下内容添加到文件中。

[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/data
User=minio
Group=minio
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=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target

创建Minio环境文件 /etc/default/minio

sudo mkdir -p /etc/default/
cat <<EOF | sudo tee /etc/default/minio
# Volume to be used for Minio server.
MINIO_VOLUMES="/data"
# Use if you want to run Minio on a custom port.
MINIO_OPTS="--address :9000"
# Access Key of the server.
MINIO_ACCESS_KEY=BKIKJAA5BMMU2RHO6IBB
# Secret key of the server.
MINIO_SECRET_KEY=V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
EOF

minio_access_key:访问长度最小3个字符的键。

minio_secret_key:长度最小8个字符的密钥。

重新加载系统和启动Minio Service

sudo systemctl daemon-reload
sudo systemctl start minio

检查状态应显示运行。

我们还可以设置服务以启动启动。

sudo systemctl enable minio

第4步:配置防火墙

如果我们有主动防火墙服务,请允许端口9000。

对于UFW,使用:

sudo ufw allow 9000

对于防火墙,使用:

sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

第5步:访问Minio Web界面

现在我们已安装Minio,启动服务和配置防火墙,我们可以访问Web仪表板URL完成登录并创建第一个测试桶。

访问URL. http://[serverip|localhost]:9000从浏览器和使用配置的访问和密钥登录。

在日志记录时,我们应该进入一个对象Web界面,它看起来类似于下面。

我们可以通过单击右下角的"+"按钮从UI创建一个测试桶。

提供桶名称,然后按ENTER键。

第6步:使用MC客户端测试Minio mc提供了像LS,CAT,CP,镜像,差异等的UNIX命令的现代替代方案。

下载MC到Linux。

wget https://dl.minio.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin
mc --help

设置自动完成

sudo wget https://raw.githubusercontent.com/minio/mc/master/autocomplete/bash_autocomplete
sudo mv bash_autocomplete /etc/bash_completion.d/mc
source /etc/bash_completion.d/mc

并享受选项卡完成函数。

$mc <TAB>

为MINIO配置MC:

mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>

例子:

mc config host add minio http://10.0.2.15 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api S3v4