需要在所有4 个实例上应用以下步骤。
切换到root用户,挂载二级盘到/data
目录:
$ sudo su
$ mkdir /data
$ mkfs.xfs /dev/xvdb
$ echo "/dev/xvdb /data xfs defaults,noatime,nofail 0 0" >> /etc/fstab
$ mount -a
验证磁盘是否已挂载:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 1.3G 6.5G 17% /
/dev/xvdb 20G 53M 20G 1% /data
在所有 4 个 EC2 实例上安装磁盘后,收集私有 IP 地址并在所有 4 个实例上设置主机文件(在我的情况下):
$ cat > /etc/hosts << EOF
172.31.38.98 minio-1
172.31.39.214 minio-2
172.31.37.208 minio-3
172.31.42.115 minio-4
127.0.0.1 localhost
EOF
安装 Minio
在每个节点上安装 minio:
$ apt update && apt install wget -y
$ wget -O /usr/local/bin/minio https://dl.minio.io/server/minio/release/linux-amd64/minio
$ chmod +x /usr/local/bin/minio
在所有节点上安装 minio 后,在节点上创建 systemd 单元文件:
$ cat > /lib/systemd/system/minio.service << EOF
[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=root
Group=root
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server \$MINIO_OPTS
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
EOF
就我而言,我将我的访问密钥设置为AKaHEgQ4II0S7BjT6DjAUDA4BX
并将我的秘密密钥SKFzHq5iDoQgF7gyPYRFhzNMYSvY6ZFMpH
设置为,因此我将其设置为 minio 的默认配置:
$ cat > /etc/default/minio << EOF
MINIO_OPTS="http://minio-1:9000/data http://minio-2:9000/data http://minio-3:9000/data http://minio-4:9000/data"
MINIO_ACCESS_KEY="AKaHEgQ4II0S7BjT6DjAUDA4BX"
MINIO_SECRET_KEY="SKFzHq5iDoQgF7gyPYRFhzNMYSvY6ZFMpH"
EOF
将上述步骤应用于所有节点后,重新加载 systemd 守护进程,在启动时启用该服务并在所有节点上启动该服务:
$ systemctl daemon-reload
$ systemctl enable minio
$ systemctl start minio.service
转到任何节点并运行状态以查看 minio 是否已启动:
$ systemctl status minio.service
minio.service - minio
Loaded: loaded (/lib/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-10-09 17:47:15 UTC; 1min 16s ago
Docs: https://docs.min.io
Main PID: 2089 (minio)
Tasks: 8 (limit: 1152)
CGroup: /system.slice/minio.service
└─2089 /usr/local/bin/minio server http://minio-1:9000/data http://minio-2:9000/data http://minio-3:9000/data http://minio-4:9000/data
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Status: 4 Online, 0 Offline.
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Endpoint: http://172.31.38.98:9000 http://127.0.0.1:9000
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Browser Access:
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: http://172.31.38.98:9000 http://127.0.0.1:9000
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Object API (Amazon S3 compatible):
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Go: https://docs.min.io/docs/golang-client-quickstart-guide
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Java: https://docs.min.io/docs/java-client-quickstart-guide
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: Python: https://docs.min.io/docs/python-client-quickstart-guide
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
Oct 09 17:47:24 ip-172-31-38-98 minio[2089]: .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
如您所见,所有 4 个节点都已启动。
Minio 网页界面
获取您的节点之一的公共 IP 并在端口 9000 上访问它:
创建您的第一个存储桶将如下所示: