PolarDB for PostgreSQL 基于 CurveBS 共享存储的部署指南

PolarDB for PostgreSQL 基于 CurveBS 共享存储的部署指南

PolarDB-for-PostgreSQL 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 作为底层存储,提供了高性能、高可靠的块存储服务。

![架构示意图](架构图中展示了六台服务器的部署方式:一台中控服务器管理整个集群,三台存储服务器组成 CurveBS 集群,两台服务器分别作为 PolarDB 的主节点和只读节点)

环境准备

硬件要求

建议使用六台服务器:

  • 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 计算节点上:

  1. 部署 CurveBS 客户端
  2. 在共享块设备上格式化 PFS(PolarFS)文件系统
  3. 挂载 PFS 文件系统
  4. 部署 PolarDB for PostgreSQL 数据库实例

常见问题解答

Q: 格式化过程耗时很长正常吗? A: 是的,格式化是一个比较耗时的过程,特别是对于大容量磁盘。可以通过 curveadm format --status 命令查看进度。

Q: 部署过程中出现容器启动失败怎么办? A: 首先检查各节点的 Docker 服务是否正常运行,然后查看对应容器的日志定位具体问题。

Q: 如何扩展存储容量? A: 可以通过增加存储节点或在现有节点上添加新磁盘来扩展存储容量,然后重新调整拓扑配置并部署。

总结

本文详细介绍了使用 CurveBS 作为 PolarDB for PostgreSQL 共享存储的完整部署流程。通过这种架构,可以充分发挥云原生数据库的弹性优势,实现存储计算分离、读写分离等高可用特性。在实际生产环境中,还需要根据具体业务需求调整配置参数和规模。

PolarDB-for-PostgreSQL PolarDB-for-PostgreSQL 项目地址: https://gitcode.com/gh_mirrors/pol/PolarDB-for-PostgreSQL

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸俭卉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值