IvorySQL内核的Serverless数据库——HGNeon适配国内云对象存储

📕前言

近期,基于PG内核的Serverless数据库Neon大火,被称为开源版本的Aurora。它本身是支持minio本地云存储和AWS的s3远程对象存储的。

那么,如果我们适配国内主流云厂商的对象存储「阿里云、华为云、浪潮云等」,能成功吗?

🐘我们基于Neon的项目开源的核心部分,提供了部署脚本和k8s manifest,开发了proxy一写多读模式,丰富了REST API接口,适配了国内主流云厂商的对象存储,形成HGNeon产品。该产品简化Serverless数据库本地部署流程,提升对于国内环境的适用性。

HGNeon的核心架构图:

HGNeon核心架构图

HGNeon数据库内核使用开源IvorySQL,同时支持pg14和pg15,整体架构分为计算层和存储层。计算层由运行在Kubernetes上的无状态IvorySQL组成,允许pod按需扩展,甚至可以缩容到零。存储层是通过HGNeon存储引擎实现的,这是一个处理事务和数据的定制层。事务日志通过一组冗余的safekeeper进行处理,数据页则由pageserver在磁盘上进行管理,而数据真正的持久化由云存储保证。

接下来,我们来验证一下用国内云厂商的云存储服务支撑HGNeon的存储部分,效果如何?本次验证以国内较为流行的阿里云OSS服务为例。

🎄环境准备

1.准备k8s环境v1.23。

2.准备阿里云账号,开通OSS服务,创建一个桶(Bucket),创建账号ak、sk,授权OSS。

3.准备HGNeon项目代码(用neon的项目代码部署原理和效果是相同的)。

🔨HGNeon搭建

1.拉取git项目代码。

2.创建分支 git checkout -b compatible-with-oss。

3.到K8s_deploy目录下。

4.配置存储节点启动时,使用阿里云OSS服务信息

vim ./HGNeon_core/HGNeon-core-deploy.yml

把yml中pageserver、safekeeper1、safekeeper2、safekeeper3的ak和sk都换成阿里云账号。

5.vim ./HGNeon_core/scripts/hgneonstorage.sh

修改pageserver和safekeeper的启动命令,增加remote-storage信息。

6.remote-storage结构信息来源。

📍endpoint:阿里云OSS页面可以查询到Bucket域名信息。(注意:请勿使用Endpoint信息)

📍bucket_name:桶的名字,支持自定义。

📍bucket_region:区域id,详细对应关系,请参考阿里云官方文档。

https://help.aliyun.com/document_detail/31837.htm?spm=a2c4g.410748.0.0.28ad27a2Nk8cXQ#concept-zt4-cvy-5db

📍prefix_in_bucket:无需修改,桶目录管理路径。

7.到k8s_deploy目录下。

8.先启动存储节点,启动完成后可以看到2个configMap、2个service、1个deployment。

./HGNeon_k8s_setup.sh start

9.存储节点启动完成后,启动第一个计算节点,启动后有1个pod、3个service、1个deployment。

./HGNeon_k8s_setup.sh startcompute 1 30081

命令中的参数:

1 是计算节点的id,任意不重复的数字即可(与tenantid和timeline是绑定的)

30081 指的宿主机端口号,不冲突即可。

10.启动第二个计算节点。

./HGNeon_k8s_setup.sh startcompute 2 30082

11.Psql测试登录,用户cloud_admin密码也是cloud_admin。

psql -h 127.0.0.1 -U cloud_admin -d postgres -p 30081

🛠HGNeon简单插入、查询功能验证

1.连接数据库,建表,插入数据,查询。

2.查看阿里云OSS情况。

压测工具可用性测试

无服务数据库HGNeon能否正常使用基准测试工具进行测试?

本次测试选用BenchmarkSQL压测工具作为示例,验证HGNeon的压测工具可用性。

1.安装BenchmarkSQL 5.0,官方下载.zip文件,解压后ant编译。

2.修改连接配置信息。

到BenchmarkSQL的run目录下

cat props.pg > hgneon.conf

vim hgneon.conf

3.导入数据。

./runDatabaseBuild.sh hgneon.conf

4.压测。

./runBenchmark.sh hgneon.conf

5.测试完成。

🏆总结

本次测试验证结论:

1.HGNeon可以适配国内云平台OSS,并具有较强的可靠性和稳定性。

2.HGNeon可以支持传统压测工具,例如:BenchmarkSQL。


官方网址:

https://www.ivorysql.org/zh-cn/

社区仓库:

https://github.com/IvorySQL/IvorySQL

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值