Skip to main content

依赖 CEPH 运行

AutoMQ 使用 EBS 和 S3 存储,而 CEPH 支持 POSIX 和 S3 访问协议,因此适合作为 AutoMQ 的存储后端。以下是基于 CEPH 部署 AutoMQ 的指南。

前置条件

配置 WAL

  1. Ceph 官方文档中关于在 Linux 主机上挂载裸设备的指引,请参考: https://docs.ceph.com/en/latest/rbd/

  2. 将裸设备路径配置为/dev/vdb。

  3. 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

  1. 设置环境变量来配置 AWS CLI 需要的 Access Key 和 Secret Key。

export AWS_ACCESS_KEY_ID=X1J0E1EC3KZMQUZCVHED
export AWS_SECRET_ACCESS_KEY=Hihmu8nIDN1F7wshByig0dwQ235a0WAeUvAEiWSD

  1. 使用 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 主机上以集群方式部署▸进行操作。