Ceph[1] 是一个开源的分布式对象,块和文件存储系统。该项目诞生于 2003 年,是塞奇・韦伊的博士论文的结果,然后在 2006 年在 LGPL 2.1 许可证发布。Ceph 已经与 Linux 内核 KVM 集成,并且默认包含在许多 GNU / Linux 发行版中。Ceph 的特点在于其同时提供了对象、块、文件系统的存储能力,可以适应各种不同的存储诉求。
What is Ceph[2]
AutoMQ[2] 创新的共享存储架构需要同时使用低延迟的块设备以及低成本的对象存储,而 Ceph 同时支持 POSIX 和 S3 访问协议,因此对于 AutoMQ 具有很好的适配性。得益于 Ceph 对 S3 的兼容性以及其同时支持块存储、对象存储协议的特性,即使在私有数据中心,你仍然可以部署 AutoMQ 集群来获得一个与 Kafka 完全兼容,但是具备更好成本效益、极致弹性、个位数毫秒延迟的流系统。本文将指导你如何将 AutoMQ 集群部署在你私有数据中心的 Ceph 之上。
01
前置条件
一套可用的 Ceph 环境,可以参考官方文档安装 Ceph
参考官方文档,安装 Ceph 的 S3 兼容组件 RGW
准备 5 台主机用于部署 AutoMQ 集群。建议选择 2 核 16GB 内存的 Linux amd64 主机,并准备两个虚拟存储卷。示例如下:
从 AutoMQ Github Releases 下载最新的正式二进制安装包,用于安装 AutoMQ。
为 Ceph 创建 Bucket
a.设置环境变量来配置 AWS CLI 需要的 Access Key 和 Secret Key。
export AWS_ACCESS_KEY_ID=X1J0E1EC3KZMQUZCVHED
export AWS_SECRET_ACCESS_KEY=Hihmu8nIDN1F7wshByig0dwQ235a0WAeUvAEiWSD
b.使用 AWS CLI 创建 S3 存储桶。
aws s3api create-bucket --bucket automq-data --endpoint=http://127.0.0.1:80
aws s3api create-bucket --bucket automq-ops --endpoint=http://127.0.0.1:80
- 为 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": [],
&nb