一、引言
阿里云的PolarDB作为亚太唯一连续4年稳居Gartner全球云数据库报告「领导者」的数据库,其开源版本PolarDB-X和PolarDB-PG为开发者和客户提供了快速使用阿里云数据库产品技术的途径。本文将详细介绍这两个开源版本的部署安装体验,包括遇到的问题和对产品改进的建议。
二、开源PolarDB -X部署安装
环境准备
- 操作系统:CentOS 7.x。
- 依赖安装:根据文档要求安装Python3、Docker等依赖。
安装过程
- PXD工具部署(单机环境):
- 创建并激活虚拟环境,如执行
python3 -m venv venv
和source venv/bin/activate
。 - 升级pip,使用
pip install --upgrade pip
。 - 安装pxd,可通过
pip install pxd
或pip install -i https://mirrors.aliyun.com/pypi/simple/ pxd
。 - 部署PolarDB - X企业版集群,执行
pxd tryout
命令,可能会遇到如Error: pxc - tryout pxc cluster is already existing, please use
pxd delete pxc - tryoutto remove it first.
的报错,需按照提示执行pxd delete pxc - tryout
后重新部署。 - 部署完成后,可通过MySQL Client连接并执行SQL语句进行体验,如
select * from information_schema.schemata;
等。
- 创建并激活虚拟环境,如执行
- 源码编译部署:
- 安装各种依赖,如
yum install -y cmake3
、ln -s /usr/bin/cmake3 /usr/bin/cmake
、yum install -y centos - release - scl
等。 - 从GitHub仓库克隆源码,如
git clone https://github.com/polardb/polardbx - engine.git
等。 - 在编译安装过程中可能会遇到依赖问题,需根据提示安装相应依赖,如
devtoolset - 11 - gcc devtoolset - 11 - gcc - c++ devtoolset - 11 - binutils
等。
- 安装各种依赖,如
- PXD工具部署(单机环境):
遇到的问题
- PXD工具部署时,可能会遇到网络配置问题导致节点间通信不畅,需要调整防火墙设置。
- 源码编译部署时,依赖库版本不明确,文档中部分依赖安装说明缺失,导致编译过程中出现多次错误,需花费时间排查和解决。
- 执行
pip install mysql - shell
可能无法安装mysql - shell,可能与使用的阿里云源有关。 - 安装完成pxd后,执行
pxd version
成功,但后续的pxd tryout
出错,可能是普通用户没有加入docker用户分组导致。 - 源码编译过程中,遇到依赖问题,错误信息提示得挺清楚,但依赖安装较为繁琐。
- 部分文档内容与实际源码中的变动不一致,导致误解和错误。
- 某些步骤的文档更新滞后,造成困惑。
产品改进建议
- 完善PXD工具的文档,提供更详细的操作指南和常见问题解决办法,明确使用的用户。
- 明确源码编译所需依赖库的版本,更新文档以提供更准确的依赖安装说明。
- 优化网络配置相关的文档说明,减少因网络问题导致的部署失败。
- 增强文档的实时性和准确性,及时更新与源码同步,避免因文档滞后造成的困惑。
- 提供一键安装依赖的脚本,简化用户部署流程。
history命令结果(示例)
python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -i https://mirrors.aliyun.com/pypi/simple/ pxd pxd tryout pxd delete pxc - tryout pxd tryout mysql -h127.0.0.1 -P51039 -upolardbx_root -pJkDXeduS select * from information_schema.schemata; ...
三、开源PolarDB - PG共享存储安装
部署过程体验
- 在阿里云ECS上创建支持ESSD多重挂载的实例,如选择
ecs.g7se
系列。 - 在阿里云ECS的管理控制台中创建ESSD云盘并勾选多实例挂载,将其挂载到相关ECS上。
- 在ECS上安装Docker和相关依赖,如执行
yum install -y yum - utils device - mapper - persistent - data lvm2
等。 - 使用PFS对共享存储进行格式化并挂载,可通过
docker pull polardb/polardb_pg_binary
获取PFS工具镜像,在共享存储块设备上格式化PFS分布式文件系统。 - 基于PFS,在ECS上搭建存算分离、读写分离的PolarDB集群,进行节点的初始化部署和配置。
- 在阿里云ECS上创建支持ESSD多重挂载的实例,如选择
性能评估
- ESSD云盘在IOPS和吞吐量方面相比普通云盘有显著提升,PolarDB - PG读写节点在处理高并发写入时延迟低且稳定,只读节点数据同步快速。
高可用性验证
- 将读写节点和只读节点分散部署在不同的可用区,模拟故障切换场景,PolarDB - PG能够迅速自动切换至备用节点,确保服务连续性。
成本效益分析
- ESSD云盘成本虽略高,但带来的性能提升和减少的节点数量降低了总体拥有成本。
遇到的问题
- 拉取PolarDB - PG镜像时,由于镜像资源在dockerhub上,拉取过程中时常出现timeout或无响应的情况,影响部署效率。
- 源码编译过程中,根据场景的不同编译出不同形态的实例时,可能会遇到回归测试耗时久的问题。
- 在基于单机文件系统部署时,启动容器使用
docker run -it --rm polardb/polardb_pg_local_instance psql
可能会出现内存已满的异常。
产品改进建议
- 将镜像资源托管到国内的服务器上,以提高镜像拉取的速度和稳定性。
- 进一步优化文档,明确各步骤的具体操作和注意事项,减少用户在部署过程中的困惑。
- 优化部署流程,减少部署过程中的耗时和不确定性。
四、总结
PolarDB的开源版本在部署安装过程中虽然遇到了一些问题,但也展现出了一定的优势和潜力。通过改进文档、优化依赖管理、提升镜像拉取速度以及加强社区建设等方面的工作,可以进一步提高用户体验,促进其在开源社区的推广和应用。希望阿里云能够持续改进PolarDB的开源版本,为开发者和用户提供更好的服务和支持。