依赖 CubeFS 运行
AutoMQ 使用 EBS 和 S3 存储,而 CubeFS 支持 POSIX 和 S3 访问协议,因此适合作为 AutoMQ 的存储后端。以下是基于 CubeFS 部署 AutoMQ 的指南。
前置条件
安装 CubeFS,请参考: https://cubefs.io/zh/docs/master/deploy/env.html
安装 CubeFS 的对象网关,请参考: https://cubefs.io/zh/docs/master/user-guide/objectnode.html
配置 WAL
参考 CubeFS 官方文档关于挂载裸设备指引,请参考: https://www.cubefs.io/zh/docs/master/user-guide/file.html
建议将裸设备路径配置为/dev/vdb。
通过 CubeFS 官方文档了解如何使用 FUSE 来绕过文件系统,直接向裸设备写入数据。详细信息请参考 CubeFS 官方文档。
AutoMQ 使用裸设备存储 WAL 数据到指定路径。可以通过启动参数 --override s3.wal.path=/dev/vdb 来配置。
配置 S3URL
为 CubeFS 创建用户
curl -H "Content-Type:application/json" -X POST --data '{"id":"automq","pwd":"12345","type":3}' "http://172.16.1.101:17010/user/create"
创建的用户默认拥有完整的 AutoMQ 所需权限。如需配置最小权限,请参考 CubeFS 官方文档进行自定义设置。执行以上命令后的结果如下:
{
"code":0,
"msg":"success",
"data":{
"user_id":"automq",
"access_key":"AEv7EVirKDJtfyK5",
"secret_key":"fIW2OvamdKnP1XQcY0dwKzKFzNNXv5r6",
"policy":
{
"own_vols":[],
"authorized_vols":{}
},
"user_type":3,
"create_time":"2024-05-16 16:56:13",
"description":"",
"EMPTY":false
}
}
为 CubeFS 创建 Bucket
- 可以通过设置环境变量来配置 AWS CLI 需要的 Access Key 和 Secret Key。
export AWS_ACCESS_KEY_ID=AEv7EVirKDJtfyK5
export AWS_SECRET_ACCESS_KEY=fIW2OvamdKnP1XQcY0dwKzKFzNNXv5r6
- 使用 AWS CLI 创建 S3 存储桶。
aws s3api create-bucket --bucket automq-data --endpoint=http://10.1.0.240:17410
部署 AutoMQ
本文为你提供了生成 S3URL 所需的必要参数,它们如下所示:
参数名 | 本例默认值 | 说明 |
---|---|---|
--s3-access-key | AEv7EVirKDJtfyK5 | 创建 CubeFS 用户后,记得按照实际情况进行替换 |
--s3-secret-key | fIW2OvamdKnP1XQcY0dwKzKFzNNXv5r6 | 创建 CubeFS 用户后,记得按照实际情况进行替换 |
--s3-region | us-west-2 | 该参数在 CubeFS 中无效,可以设置为任意值,例如 us-west-2 |
--s3-endpoint | http://10.1.0.240:17410 | 该参数是 CubeFS 对象网关对外服务的地址,如果有多台机器,推荐使用负载均衡器(SLB)来汇聚成一个 IP 地址。 |
--s3-data-bucket | automq-data | - |
--s3-ops-bucket | automq-ops | - |
完成 WAL 和 S3URL 配置后,现在可以部署 AutoMQ。请按照在 Linux 主机上以集群方式部署▸进行操作。