如何使用minio设置S3兼容的对象存储服务器
我们是否要设置私人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