PolarDB for PostgreSQL 基于 CurveBS 共享存储的部署指南
PolarDB-for-PostgreSQL 项目地址: https://gitcode.com/gh_mirrors/pol/PolarDB-for-PostgreSQL
前言
本文将详细介绍如何使用 CurveBS 作为共享存储来部署 PolarDB for PostgreSQL 数据库。PolarDB for PostgreSQL 是阿里云开源的一款云原生数据库,采用存储计算分离架构,能够充分发挥云环境的弹性优势。而 CurveBS 则是一款高性能、易运维的分布式块存储系统,非常适合作为 PolarDB 的存储底座。
技术架构概述
在 PolarDB for PostgreSQL 的存储计算分离架构中,计算节点(数据库实例)与存储节点是分离的。多个计算节点可以共享同一份存储数据,实现读写分离和高可用。CurveBS 作为底层存储,提供了高性能、高可靠的块存储服务。

环境准备
硬件要求
建议使用六台服务器:
- 1台中控服务器
- 3台存储服务器(用于 CurveBS 集群)
- 2台计算服务器(分别用于 PolarDB 主节点和只读节点)
软件要求
所有服务器应满足:
- 操作系统:Anolis OS 8.6(兼容 CentOS 8.6)
- 用户权限:root 用户
- 网络环境:所有服务器位于同一局域网段
- 基础软件:安装 Docker 并配置 SSH 免密登录
详细部署步骤
1. 安装 CurveAdm 管理工具
在中控服务器上执行以下命令安装 CurveAdm:
bash -c "$(curl -fsSL https://curveadm.nos-eastchina1.126.net/script/install.sh)"
source /root/.bash_profile
2. 配置主机信息
创建并编辑 hosts.yaml 文件:
global:
user: root
ssh_port: 22
private_key_file: /root/.ssh/id_rsa
hosts:
# Curve 存储节点
- host: server-host1
hostname: 172.16.0.223
- host: server-host2
hostname: 172.16.0.224
- host: server-host3
hostname: 172.16.0.225
# PolarDB 计算节点
- host: polardb-primary
hostname: 172.16.0.226
- host: polardb-replica
hostname: 172.16.0.227
导入主机配置:
curveadm hosts commit hosts.yaml
3. 格式化存储设备
创建 format.yaml 文件:
host:
- server-host1
- server-host2
- server-host3
disk:
- /dev/vdb:/data/chunkserver0:90 # 设备:挂载点:格式化百分比
执行格式化:
curveadm format -f format.yaml
可以通过以下命令查看格式化进度:
curveadm format --status
4. 部署 CurveBS 集群
创建 topology.yaml 集群拓扑文件:
kind: curvebs
global:
container_image: opencurvedocker/curvebs:v1.2
log_dir: ${home}/logs/${service_role}${service_replicas_sequence}
data_dir: ${home}/data/${service_role}${service_replicas_sequence}
variable:
home: /tmp
machine1: server-host1
machine2: server-host2
machine3: server-host3
# 其他服务配置...
创建并部署集群:
curveadm cluster add my-cluster -f topology.yaml
curveadm cluster checkout my-cluster
curveadm deploy --skip snapshotclone
检查集群状态:
curveadm status
5. 部署 CurveBS 客户端
创建 client.yaml 文件:
kind: curvebs
container_image: opencurvedocker/curvebs:v1.2
mds.listen.addr: 172.16.0.223:6666,172.16.0.224:6666,172.16.0.225:6666
log_dir: /root/curvebs/logs/client
后续步骤
完成 CurveBS 部署后,需要在 PolarDB 计算节点上:
- 部署 CurveBS 客户端
- 在共享块设备上格式化 PFS(PolarFS)文件系统
- 挂载 PFS 文件系统
- 部署 PolarDB for PostgreSQL 数据库实例
常见问题解答
Q: 格式化过程耗时很长正常吗? A: 是的,格式化是一个比较耗时的过程,特别是对于大容量磁盘。可以通过 curveadm format --status
命令查看进度。
Q: 部署过程中出现容器启动失败怎么办? A: 首先检查各节点的 Docker 服务是否正常运行,然后查看对应容器的日志定位具体问题。
Q: 如何扩展存储容量? A: 可以通过增加存储节点或在现有节点上添加新磁盘来扩展存储容量,然后重新调整拓扑配置并部署。
总结
本文详细介绍了使用 CurveBS 作为 PolarDB for PostgreSQL 共享存储的完整部署流程。通过这种架构,可以充分发挥云原生数据库的弹性优势,实现存储计算分离、读写分离等高可用特性。在实际生产环境中,还需要根据具体业务需求调整配置参数和规模。
PolarDB-for-PostgreSQL 项目地址: https://gitcode.com/gh_mirrors/pol/PolarDB-for-PostgreSQL
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考