依赖 CEPH 运行
AutoMQ 使用 EBS 和 S3 存储,而 CEPH 支持 POSIX 和 S3 访问协议,因此适合作为 AutoMQ 的存储后端。以下是基于 CEPH 部署 AutoMQ 的指南。
前置条件
安装 CEPH,请参考: https://docs.ceph.com/en/latest/install/
安装 CEPH 的 S3 兼容组件 RGW,请参考: https://docs.ceph.com/en/latest/cephadm/services/rgw/
配置 WAL
Ceph 官方文档中关于在 Linux 主机上挂载裸设备的指引,请参考: https://docs.ceph.com/en/latest/rbd/
将裸设备路径配置为/dev/vdb。
AutoMQ 使用裸设备存储 WAL 数据到指定路径。可以通过启动参数 --override s3.wal.path=/dev/vdb 来配置。
配置 S3URL
为 CEPH 创建用户
radosgw-admin user create --uid="automq" --display-name="automq"
创建的用户默认拥有完整的 AutoMQ 所需权限。如需配置最小权限,请参考 CEPH 官方文档进行自定义设置。执行以上命令后的结果如下:
{
"user_id": "automq",
"display_name": "automq",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"subusers": [],
"keys": [
{
"user": "automq",
"access_key": "X1J0E1EC3KZMQUZCVHED",
"secret_key": "Hihmu8nIDN1F7wshByig0dwQ235a0WAeUvAEiWSD"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"default_storage_class": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw",
"mfa_ids": []
}
为 CEPH 创建 Bucket
- 设置环境变量来配置 AWS CLI 需要的 Access Key 和 Secret Key。
export AWS_ACCESS_KEY_ID=X1J0E1EC3KZMQUZCVHED
export AWS_SECRET_ACCESS_KEY=Hihmu8nIDN1F7wshByig0dwQ235a0WAeUvAEiWSD
- 使用 AWS CLI 创建 S3 存储桶。
aws s3api create-bucket --bucket automq-data --endpoint=http://127.0.0.1:80
部署 AutoMQ
以下是生成 S3 URL 所需的必要参数:
参数名 | 本例默认值 | 说明 |
---|---|---|
--s3-access-key | X1J0E1EC3KZMQUZCVHED | 创建 Ceph 用户后,记得按照实际情况进行替换 |
--s3-secret-key | Hihmu8nIDN1F7wshByig0dwQ235a0WAeUvAEiWSD | 创建 Ceph 用户后,记得按照实际情况进行替换 |
--s3-region | us-west-2 | 该参数在 Ceph 中无效,可以设置为任意值,例如 us-west-2 |
--s3-endpoint | http://127.0.0.1:80 | 该参数是 Ceph 的 S3 兼容组件 RGW 对外服务的地址,如果有多台机器,推荐使用负载均衡器(SLB)来汇聚成一个 IP 地址。 |
--s3-data-bucket | automq-data | - |
--s3-ops-bucket | automq-ops | - |
完成 WAL 和 S3URL 配置后,现在可以部署 AutoMQ。请按照在 Linux 主机上以集群方式部署▸进行操作。