你是否有使用Minio设置S3兼容私有对象存储服务器的需求,可以使用Minio,它是一个与Amazon S3云存储服务兼容的轻量级对象存储服务器,它是用Go编写的,并在Apache License v2.0下获得许可。对象存储最适合存储非结构化数据,如视频、照片、日志文件、容器映像、VM映像和备份,对象的每个大小可以从几KB到最大5TB。下面我们先在Linux下安装Minio Object Storage Server,Minio对象存储服务器可以从二进制文件安装,也可以在容器中运行,我不会进行容器安装,因为它不是设置存储服务器的理想方式。
第1步:下载Minio 下载Minio二进制文件: wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/ 可以使用版本选项查询包详细信息: $ minio version Version: 2019-01-23T23:18:58Z Release-Tag: RELEASE.2019-01-23T23-18-58Z Commit-ID: bd25f31100f44646cffae99dfec23179366593e2
第2步:准备对象存储磁盘 下载Minio后,让我们准备一个我们用来存储对象的块设备,使用的路径只能是文件系统根目录中的目录。 为了方便和可靠,我在服务器中使用辅助磁盘: # 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的选项:从命令行交互式会话、使用Systemd、使用Sysvinit/Upstart。 1、使用systemd管理Minio服务 对于使用systemd init系统运行系统的人,请创建用于运行Minio服务的用户和组: sudo groupadd --system minio sudo useradd -s /sbin/nologin --system -g minio minio 为/data目录提供minio用户所有权: 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=V7f1CwQqAcwo80UEIJEjQ9GSrr12 EOF MINIO_ACCESS_KEY:长度至少为3个字符的访问密钥。 MINIO_SECRET_KEY:最少8个字符的密钥。 重新加载systemd并启动minio服务: sudo systemctl daemon-reload sudo systemctl start minio 状态检查应显示正在运行,如下图:
你还可以将服务设置为在启动时启动: sudo systemctl enable minio
第4步:配置防火墙 如果你有活动的防火墙服务,请允许端口9000。 对于UFW,请使用: sudo ufw allow 9000 对于firewalld,使用: sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent sudo firewall-cmd --reload 参考:在Ubuntu 18.04系统中使用UFW设置防火墙。
第5步:访问Minio Web界面 现在我们已经安装了Minio,启动了服务并配置了防火墙,我们可以访问Web仪表板URL完成登录并创建第一个测试存储。 从浏览器访问URL,如:http://[serverip|localhost]:9000,然后使用配置的Access和Secret密钥登录:
在记录时,你应该访问一个类似于下面的对象Web界面:
可以通过单击右下角的“+”按钮从UI创建测试存储:
提供存储名称并按回车键:
第6步:使用mc客户端测试Minio mc提供了UNIX命令的现代替代方案,如ls、cat、cp、mirror、diff等,将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 V7f1CwQqAcwo80UEIJEjQ9GSrr12 --api S3v4 样例输出如下图:
至此,测试Minio成功。
相关主题 |