部署MinIO
客户没有提供OSS对象存储,则将备份数据统一存放于 MinIO ,可参考ONES提供的方法部署MinIO。根据环境类型的不同,参考本文第1章在生产环境使用 Docker 独立部署 MinIO 、参考本文第2章在测试环境使用 K3S 集群内部署 MinIO 。
1 单独部署 MinIO
异机部署备份数据存储服务时,推荐使用 Docker 部署 MinIO。注意:不要在 K3s 节点上部署 Docker。
1.1 安装 Docker
Linux各发行版参考官方文档:https://docs.docker.com/engine/install/
1.2 部署 MinIO
参数说明
通过如下三个环境变量配置部署的必要参数,请根据部署的实际需求修改:
- MINIO_USER: MinIO的访问用户,同时也是 S3 协议中的 accessKey
- MINIO_PASSWORD: MinIO的访问密钥,同时也是 S3 协议中的 secretKey,注意至少需要8位
- MINIO_DATA_PATH: MinIO在节点机上的数据存放路径
通过环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 来指定访问MinIO的账户名和密码。
此账户密码可以用来登录MinIO管理后台和客户端访问对象存储。
确保宿主机上的端口 9000 和 9090 没有被占用,否则会部署失败。
启动MinIO服务
# 根据部署实际需要调整
MINIO_USER=miniouser
MINIO_PASSWORD=QJndse89 # 注意密码至少需要8位
MINIO_DATA_PATH=/data/ones/minio/data
mkdir -p ${MINIO_DATA_PATH}
docker run -d --restart always \
--name minio \
-p 9000:9000 \
-p 9090:9090 \
-v ${MINIO_DATA_PATH}:/data \
-e "MINIO_ROOT_USER=${MINIO_USER}" \
-e "MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}" \
docker.io/minio/minio:RELEASE.2024-06-26T01-06-18Z server /data --console-address ":9090"
验证检查
# 容器运行后,检查管理后台可访问,如下访问没有报错即可
curl http://localhost:9090
# 浏览器打开管理后台 http://[host-ip]:9090,并使用 MINIO_USER 和 MINIO_PASSWORD 对应的账户密码登录
# 能够登录成功即可
创建bucket
外置 Docker 部署minio的情况下,需要要手动创建各个备份使用的 bucket,参考命令如下:
docker exec -it $(docker ps -q) /bin/bash
mc alias set myminio http://127.0.0.1:9000 miniouser QJndse89
mc ls myminio
mc mb myminio/clickhouse-backup -p
mc mb myminio/mc-xbackup -p
mc mb myminio/mysql-xbackup -p
mc mb myminio/ones-private-files-backup -p
mc mb myminio/ones-public-files-backup -p
2 集成部署 MinIO
在 ONES 服务节点上部署备份数据存储服务时使用此方案。根据 ONES 版本不同选择如下一种方案。
方案2.1与 ONES 版本配置无关联,如重装K3s,需重新拉取镜像、重新部署MinIO服务;
方案2.2属于 ONES 内置的备份MinIO,如重装K3s,只需 make setup-ones-backup 启用MinIO服务即可。
2.1 6.33以下版本部署外置MinIO
使用相同的三个环境变量,配置部署的必要参数,详细说明见上面的 Docker 部署部分。