PolarDB-X集群运维1:升降配、扩缩容_与备份恢复(一)|学习笔记

简介: 快速学习PolarDB-X集群运维1:升降配、扩缩容_与备份恢复(一)

开发者学堂课程【PolarDB-X 开源系列课程:PolarDB-X集群运维1:升降配、扩缩容_与备份恢复(一)】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/1032/detail/15145


PolarDB-X集群运维1:升降配、扩缩容_与备份恢复(一)

 

内容介绍

一、PolarDB-X产品介绍

二、扩缩容

一、 polarDB-x产品介绍

1、核心组件

polarDB-x是阿里云上的分布式数据库,主要由四个核心的组件构成。(1)CN节点,也就是整个集群的流量入口,负责接收用户应用服务器发过来的业务Circle,将其进行相应的分布式的路由计算,同时也负责分布式事务的协调以及全球二级索引的维护。

(2)dn节点,也就是datanode,是实际存储数据的地方,同时对其进行改造,采用了协议,来保证数据的强一致与高可靠。

(3)元数据中心,也就是gms,它存储了polarDB-x集群的托普信息,同时也是分布式事务所依赖的tso的授时组件。

(4)CDC组件,作用主要有两个。

①将每个dn上的物理bean Log转换成一条与my circle bean log完全兼容的逻辑bean log流,能够与下游的大数据生态系统进行无缝的对接。

②提供了完全兼容my circle Application主备订阅的能力。

image.png

2、k84及弹性扩展

(1)k84

云延伸绕不开k84这个话题,polarDB-x积极拥抱kaK84的生态,在k84上进行了扩展,提供了polarDB-xOperator来支持polarDB-x集群的相关工作,例如基于K84的scheduler,apiserver和Controller-manager构建了polarDB-x的控制面,在这基础之上,能够对polarDB-x集群进行部署,运维,以及相关的一些生命周期,产品能力的管理,例如采用了k84里面的Deployment来管理无状态的CN和cdc组件。

采用类似State for set的方式来管理项目,采用了XTexas的dn节点,除了像部署,广运维这些基本的生命周期能力外,还提供各项弹性伸缩,高可用,监控,审计以及备份恢复等能力。

image.png

(2)弹性扩展

①首先,数据库的弹性扩展,polarDB-x是从淘宝起家的,主要面向互联网业务,特点是通常会有高并发和海量数据的存储需求,通常随着业务的发展,单机的数据库会存在性能的瓶颈,例如并发能力有限或存储空间达到瓶颈,这种情况下需要对数据库进行扩展。

②传统的扩展方式目前有两种。

垂直扩展,也就是升降配,可以理解为在已有的机器中增加更多的资源来提高数据库的处理能力,例如对于部署在物理机上的数据库,可以采用更多核的CPU,或者采用更大或者更快的内存条,来对数据库性能进行提升。

而对于云数据库而言,由于底层的资源已经通过虚拟化的技术进行了弛化,只需要修改相关资源的配置即可实现快速的垂直的升降配,提升数据库的性能,这种方式的好处是扩展过程基本不需要迁移数据。

问题是性能始终是局限于单机的,单机的性能是有上限的。

水平扩展,也就是扩缩容,相当于是加入更多的机器来解决数据库的扩展性问题,这种方式不再局限于单机的性能,但是需要对数据进行一定的迁移来做到水平扩展,同时这种方式对于数据库的水平扩展能力有更多的要求,需要有数据库有线性的扩展能力,这样才能够将增加进来的机器的性能充分地发挥出来。

 

二、扩缩容

阿里云的云起实验室上已经发布上线实验,对 polarDB-x 集群做动态扩缩容,直接通过实验熟悉流程。

云起实验室的页面有很多的实验,要做的是实验二,如何对polarDB-x集群做动态扩缩容。

1、实验操作  

(1)申请资源,点击串联资源即可创建完成。需要在阿里云上买一台ecs部署相关的资源。回到实验手册,按照实验手册的步骤进行操作。

(2)安装环境

①安装依赖,安装docker,将命令复制粘贴。启动后接着按照命令将docker的服务启动。

image.png

②安装kubectl,可以理解成它是K84集群的命令行工具,可以通过它与k84集群做交互,先下载kubectl的文件,对这个命令授予可执行权限,之后将其移到系统目录,就可以直接使用kubectl的命令。

image.png

③安装mini kube,可以在ecs虚拟出k84的集群,在上面安装 polarDB-xOperator以及创建polarDB-x实例。完成后安装helm3,这是K84里面的包管理工具,类似Centrals的young的方式,所有的k84 Operator都可以通过helm包的方式进行管理。

④按照命令把helm的更换包安装好。完成后执行命令即可输出正常的结果,最后一步是安装mycircle的命令行。

(3)安装polarDB-x operator和polarDB-x。

①用刚才安装好的mini kube创建K84的集群。在这过程中由于不能通过注册帐号进行使用,需要创建一个独立的帐号,按照步骤创建一个GALAXY kube帐号。将帐号加到docker组里,访问docker的Soccer demon。

切换到Galaxy kube帐号下,通过命令来创建虚拟的k84基集群,集群命令的CPU是串联四个,Memory是12G,有一个镜像,由于国内访问有一定的网络延迟,于是采用上海交大的镜像源拿取镜像做k84的集群。

K84创建完成,执行kubectl cluster-info来查看刚刚创建的k84集群基本信息。

②安装polarDB-xOperator。

首先需要创建一个叫Operator system的命名空间。创建完成通过目前 polarDB-x提供的helm仓库来安装polarDB-x Operator。

创建一个叫polarDB-x的本地helm仓库,把仓库添加完成,通过helm INSTALL的方式,将polarDB-x helm包安装完成,接下来查看在polarDB-x Operator system命名空间下组件的状态。

在命名空间下,kubectl get pods——Name space指定的是Polardbx operator system,在这个命名空间下,所有控制面所需要的pod都已经ready。

image.png

③创建Polardbx。

编辑yaml文件,通过vim polarDB-x的命令打开vim的编辑器,把实验室里的yaml文件型复制过来。

文件内容:这是polarDB-x定义的单独的,独立的,在k84上的资源,叫polarDB-x Cluster,名字叫polarDB-x。

image.png

有几个部分,第一部分是Topology,指定了各个组件的信息,有CDC、cn、dn和gms。现在cdc是1,cn也是1,dn也是1,资源都是Minute,都是1c1g,cn是1C2g,dn是2C 4G,按照这个规格来配置。

其他的信息比较通用,可以在文档上查看相应的资料。

保存后通过kubectl Apply文件在k84集群上创建 polarDB-x 对象。观察集群的创建状态,在使用的kubectl GET polarDB-x CLASS的命令,polarDB-x class就是定义好的资源类型,指定的就是polarDB-x,查看当前的状态,目前可以看到它有几个组件,gms、cn、dn和cdc,和之前对应的四个组件一致,每一个的个数都是1,处于Creating状态。

pod创建情况,正在创建gms以及dn节点,gms和dn都采用三副本模式,每个dn由三个pod构成,分别对应的是Leader,Follower和Folgger,gms也是一样的模式。

(4)扩缩容操作

①编辑polarDB-x的文件,回到文件中,cn、dn都是replicas,将CN和dn的个数改成2。K84就会将CN和dn各增加一个节点,自动化完成。保存后用kubectl apply的方式更新polarDB-x对象。

②更新后观察polarDB-x集群内的状态。

状态从上面的Running变成了upgreating状态,cn和dn的个数目标变成两个,目前ready的都是一个,下面将会进行自动化扩容。

dn已经进入ready状态,接下来会有数据迁移过程,会在PPT中进行详细的介绍。

③扩容过程是自动化的,只需要告诉K84将CN和dn扩容到几个,便会自动把新的cn和dn创建出来,同时将相应的数据进行挪动,达到扩容后的状态。

④缩容和扩容类似,就是将刚才在yaml文件里面修改的个数,例如从2变成1,相当于起到缩容的效果。缩容的步骤可以在云起实验室里进行体验。

2、原理介绍

(1)扩容

①CN和CDC无状态节点怎么处理,dn有状态的节点如何处理。对于CN和cdc这样无状态的节点,举个例子,有三个CN的节点,需要扩容到四个,只需要新建一个新的cn节点,将其加入到CN集群里即可完成扩容。

image.png

对于dn这样有状态的组件而言,需要做的事情相对较多,首先创建一个新的dn,原来只有dn0在工作,现在需要创建dn1,创建完后,对dn0上已有的数据的分区进行计算,需要知道哪些数据需要移动到新建的dn1上,同时将数据迁移过来。在迁移的过程中,所有的cn访问流量还是访问原来的dn0,dn1不会参与实际的业务请求。

等dn1所有的数据搬迁完成,与dn0达到了数据完全一致的状态,便会发起cn切流过程,将所有在dn0上的数据的请求流量移到DN1上形成,从而达到新的数据均衡状态,完成扩展的步骤。

(2)缩容,对于CN和cdc这种无状态而言比较类似,本来有三个CN的节点,需要缩容到两个,只需要将多出来的cn的节点做下线操作便可以达到缩容效果。

image.png

对于dn这样有状态的组件而言,首先将DN1下掉,只保留dn0一个dn节点,将dn1的数据全部迁移到已有的dn0上,过程涉及到分区的计算,以及数据的迁移。

迁移完成之后进行切流,将所有原来访问dn1的流量切换到dn0上上。

dn1上没有业务流量,便会将dn1进行下线操作,达到缩容后的效果。

相关文章
|
Oracle 关系型数据库 MySQL
Flink CDC产品常见问题之flink Oraclecdc 捕获19C数据时报错错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
关系型数据库 分布式数据库 PolarDB
开源PolarDB-X 部署安装全过程
本文介绍了开源PolarDB-X的部署安装步骤:首先,下载并解压PXD工具,配置至系统路径;然后,使用PXD工具进行部署,选择模式,输入参数,并等待部署完成;最后,验证集群状态。在遇到问题时,参考官方文档、社区支持或进行排查。建议包括优化文档、增强错误处理和建立用户反馈机制。
|
分布式计算 关系型数据库 MySQL
Flink CDC 3.3.0 发布公告
Flink CDC 3.3.0 发布公告
523 14
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
Ubuntu 关系型数据库 分布式数据库
开源PolarDB -X 部署安装
本文记录了在Ubuntu 20.04上部署阿里云分布式数据库PolarDB-X的步骤,包括环境准备、安装依赖、下载源码、编译安装、配置启动,并分享了遇到的配置错误、依赖冲突和日志不清等问题。作者建议官方改进文档细节、优化代码质量和建立开发者社区。安装历史记录显示了相关命令行操作。尽管过程有挑战,但作者期待产品体验的提升。
2046 6
|
Kubernetes Cloud Native 关系型数据库
k8s 部署polardb-x集群
k8s 部署polardb-x集群
1049 11
|
存储 关系型数据库 MySQL
再探PolarDB —— PolarDB MySQL 四大场景下的全方位评测
本文全面评测了阿里云PolarDB MySQL在四大关键场景下的表现:Serverless极致弹性、列存索引(IMCI)、弹性并行查询(ePQ)以及无感秒切高可用。通过官方提供的免费体验资源,我们深入了解了PolarDB MySQL的核心能力和性能。Serverless极致弹性列存索引(IMCI弹性并行查询(ePQ)无感秒切高可用此外,文章还介绍了PolarDB MySQL在数据备份和HTAP(混合事务/分析处理)场景下的优势,包括灵活的备份策略、高效的全量和库表恢复方式,以及通过IMCI支持的HTAP能力。这些特性共同构成了PolarDB MySQL作为一款先进的云数据库服务的强大竞争力。
|
存储 SQL 关系型数据库
PolarDB-x 比mysql查询性能怎么样?速度快吗
PolarDB-x 比mysql查询性能怎么样?速度快吗
941 0
|
存储
惊世骇俗!开源 PolarDB-X 部署安装大冒险,全程心跳与惊喜不断!
【8月更文挑战第8天】作为技术爱好者的我近期完成了开源PolarDB-X的部署安装,过程虽具挑战,但终获成功。现分享全过程:先确保服务器配置达标(内存、存储及网络)。接着下载官方最新稳定版,解压至指定目录。配置参数需细心调整以适配需求,如设置端口及数据路径。最后启动服务并留意可能的问题,如下载中断或配置错误等,可通过日志排查解决。部署完成后,见到服务正常运行时的喜悦难以言表。尽管PolarDB-X部署稍显复杂,但按部就班即可达成。期待与大家共同探讨学习!
501 1
|
缓存 运维 关系型数据库
PolarDB产品使用问题之如何进行PolarDBX的本地部署
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。