Curve 版 PolarDB 的安装与使用 | 学习笔记

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习 Curve 版 PolarDB 的安装与使用,介绍了 Curve 版 PolarDB 的安装与使用系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【7天突破PolarDB for PostgreSQL 2022版Curve 版 PolarDB 的安装与使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/992/detail/14973


Curve 版 PolarDB 的安装与使用


内容介绍

一.curve 简介

二.部署 CurveBS

三.部署 PolarDB


本节主要分为以下几个部分,第一个部分我们会简单介绍一下 curve 系统以及 curve的现状与目标,第二部分我们会介绍 curve 的部署工具,curveadm 以及会实际演示一下怎么用 curveadm 来部署 curvebs,最后一个部分我们会简单讲基于 curve 提供的快设备来部署 polarDB 集群。

上一节课有讲过部署 polarDB 集群,这节课重点在前两部分。

如果部署 polarDB 下图部分一键部署完成,可以极大减少 polarDB 集群时间和复杂度。

image.png

注意:

为开源训练营准备的基于 mbd 部署 polarDB 集群,但是不能完全发挥 curve 优势,curve 有为对接做了很大性能优化提升,但是目前 curve 还在适配,暂时给大家介绍基于 mbd 部署方式。

Code 也是放在 opencurve 下,一旦功能适配完成大家可以进行性能体验。

image.png


一.Curve 系统简介

(1)客户系统是网易自研的高性能、易运营、云原生应用

分布式存储系统主要有以下两个部分组成:快存储+文件系统,也是一个开源项目。

(2)实例部署:基于 Ceph 共享存储

是一个统一的分布式存储系统,由于它可以提供较好的性能、可靠性和可扩展性,被广泛的应用在存储领域,以下是在 ceph 分布式集群上部署 PolarDB-FileSystem 以及PolarDB-for-PostgreSQL 的教程

搭建需要2台及以上的物理机虚拟机实现存储共享与数据备份,本教程以3台虚拟机机环境为例

介绍基于 ceph 共享存储的实例构建方法大体如下:

(1)获取在同一网段的皮拟机三台,互相之间配置 ssh 免密登录,用作 ceph 密钥与配置信息的同步

(2)在主节点启动 mon 进程,查者状态,并复制配置文件至其余各个节点,完成mon 启动:

(3)在三个环境中启动 osd 进程配置存储盘,并在主节点环境启动 mgr 进程、rgw进程:

(4)创建存储泡与 rbd 块设备镜像,并对创建好的镜像在各个节点进行映射即可实现块设备的共享:

(5)对块设备进行 PolarFS 的格式化与 PolarDB 的部署.

注意

操作系统版本要求 CentOS75及以上。以下步骤在 CentOS7.5上通过测试。

环境准备

使用的虚拟机环境如下:

IPhostname

192.168.1.173ceph001

192.168.1.174ceph002

192.168.1.175ceph003

如果部署客户端 polarDB 部署工作,一键部署完成。会极大减少部署基地集群的实践和复杂度,上一节已经详细讲解了安装和部署。课程是基于 IP 的设备来部署 polarDB的,但并不能完全发挥性能优势,优势不是很明显。

2. Curve的现状与目标

(1)Curve的现状-开源

于2020年开源

star 数近1000

fork 数200+

(2)Curve 的现状-承接业务

网易内部:已为网易严选、云音乐、有道、游戏等提供稳定存储服务2年多余

外部用户:已有多家企业线上使用 CurveBS,并有10多家客户测试中.

(3)Curve 的目标

通过完善全场景能力、易用性、功能完备性、性能对标等方面,提升

Curve 项目在开源存储中的竞争力

通过提升项目影响力并进行用户推广,使 Cuve 成为国内外知名的开

源云原生存储项目

 

二.部署 CurveBS

1.CurveAdm 简介

用于快速部署和运维 CurveBS/CurveFS 集群的工具

简单易用、特性丰富、文档完善

项目主页:htps:/github.com/opencurve/curveadm

Wiki 下可以找到 CurveAdm 对象

image.png

2.安装 CurveAdm

(1)第一步:安装依赖 Docker

在所有的服务器上安装 Docker

可参考:安装 Docker

(2)第二步:一键安装 CurveAdm

在中控机上运行以下命令:

bash-c"$(curl-fsSL https://curveadm.nos-eastchina1.126.net/script/install.sh)"

详见:安装 CurveAdm

演示:在演示前讲解整体设计

(3)CurveAdm简介

CurveAdm 是 Curve 团队为提高系统易用性而设计的工具,其主要用于快速部署和运维 CurveBS/CurveFS 集群。

主要特性

快速部署 CurveBS/CurveFS 集群

用户在准备好集群拓扑文件的情况下,可一健完成整个集群的部署。

容器化服务

所有组件都运行在 Docker 容活内,解决各 Linux 发行版差异问邀。

运维 CurveBS/CurveFS 失群

支持常见的远维操作,并支持一键升级限务、扩缩容朱群」

同时管理多个集群

用户可同时管理多个不同类型(CurveBS/CurveFS)的集群,并可随时切焕指定集群为当前管理集群(该设计灵感来源于

gt 的分支管理)

一超升级

用户可一程将本地 CurveAdm 升级到最新版本,与当前最新版本保持一致。

精准错误定位

image.png

在中控机上,通过 ssh 去操作服务器,开始进行实际的部署.

左边这台机器是中控机,用来安装 CurveAdm 的运作工具,右边准备了三台机器,分别是 Curve50,51和52,这三代机器用来部署 Curve 集群,所有的 Curve 的主键多架运行在三台服务器上,为方便演示,提前在这三台机器上预装 Docker。

image.png

3.部署 CurveBS 集群

一键安装

CurveAdm 支持一安装:

sbh"(curl -fsL https://curveadn.nos-eastchinal.l

题认安装路径为当前用户主目录下的 curevadn 目录,即~/,curveadm。

提醒:

CurveAdm 内置了命令补全命令,执行以下命令并根据相应提示即可加载补全:

curveadm completion -h

image.png

根据提供步骤安装即可

使用 CurveAdm 部署 CurveBS 集群

第1步:环境准备

第2步:在中控机上安装 CurveAdm

第3步:格式化磁盘

第4步:准备集群拓扑文件

第5步:添加朱群并切换集群

第6步:部图第群

第7步:查看集群运行情况

第8步:验证朱群健康状态

(1)第1步:环境准备

软硬件环境需求

安装依赖

(2)第2步:在中控机上安装 CurveAdm

安装 CurveAdm

(3)第3步:格式化磁盘

image.png

用于 ssh 连接:用户名,端口,和路径

格式化主机列表对应 curvr50 51 52.

磁盘列表:

设备

设备跨载路径

磁盘格式化百分比(为方便调成1%,实际使用90%以上)

关于配置文件及配置项可以参考表格,每个作用及详细值

配置项

是否必填

默认值

说明

Kind

Y

 

拓扑文件类型。必须为 curvebs

user

 

$USER

连接远端主机 SSH 服务的用户,该用户同样用于执行部置操作,请确保该用户拥有 sudo权限

因为该月户将用于挂卸载文件系统、操作dockecli 等操作

Ssh_port

 

22

远端主机 SSH 服务端口

Private_key_file

 

/home/$USER/.ssh/id_rsa

用于连接远端主机 SSH 服务的私钥路径

Container_image

 

Opencurvedocker/curvebs:v1.2

容器镜像,默认值为我们最新稳定版本,你也可以访问 CurveBS 公共 docker 仓库自行选择

Report_usage

 

true

是否匿名上报用户集群使用量,开启该远项后,curveadm 会匿名举报用户集群 UUD 以及集群

使用量,来帮助 cUrve 队更好地了解用户及改进服务

Log_dir

 

 

保存服务日志的目录。如果不配置该选项,日志

默认保存在容器内的指定目录,一旦容器被清

理,日忘将会随之删除

Data_dir

Y

 

保存服务数据的目录。如果不配置该选项,数据默认保存在容器内的指定目录,一旦容器被清理,数剧将会随之去失,特别地,针对 chunkserver,请宿数据目录配置为 chunkfile pool 目录,详见格式化磁盘

S3.ak

Y

 

S3服务的 Access Key,用于上传快照

S3.sk

Y

 

S3服务的 Secret Key。用于上传快照

S3.nos_address

Y

 

S3服务地址,用于上传快照

S3.snapshot_bucket_name

Y

 

S3服务桶名。用于上传快照

格式化磁盘有两个部署:

磁盘创建文件系统

文件系统上创建内容

Ok 代表已经启动磁盘格式化进程

image.png

所有格式化正在进程,可以通过 status 查看格式化进度

image.png

此时全部格式化完成

(4)第4步:准备集群拓扑文件

我们根据常见的场景,给用户准备了不同的拓扑文件模板,用户可根据需求自行选择,并进行编辑调整:单机部墨

所有服务都运行在一台主机上,一般用于体验或测试多机部署

通用的多机部署模板,可用于生产环境或测试

关于拓扑文件中的各配百项,请参考 CurveBS 集群拓扑。

提供单机/多机部署,随意选择

image.png

组成

第一个,Kind,支持文件系统部署,将文件类型指定相同

第二个,区块:

Log,etcd,mds,services 等

在每个区块都可以填写相应配置。

Log:针对每个服务都生效(也可以单独服务独立)

关于集群拓扑文件可以查看网页,在网页上有详细的作用及默认值,

前面3个是用于 ssh 连接,容器镜像1.2版本

Log_dir 存放日志目录

Data_dir 存放数据目录

image.png

a3服务下克隆服务

也可以查看网页

image.png

主机ip Curve10/11/12

四个服务区块 deploy,config 等,每个服务器都有简单的配置和监听的 IP 端口。关于集群具体介绍参照网页,不再详细介绍。

(5)第5步:添加集群并切换集群

添加集群并切换集群,查看当前管理集群

image.png

进行集群部署,运行一键完成部署

image.png

当终端出现 successful deployed 表示部署成功。(使用复制特性导致默认状态是折叠的,可以进行展开)

-sv 显示服务的一些其他信息,此时出现日志目录,数据目录

image.png

关于以上可以查看网页,提示较多大家可能会忽略的点

使用 help 命令也可以查看相关部署。

添加'my-cluster'集群,并指定第群拓扑文件

scurveadn cluster add my-cluster -f topology.yaml

切换'my-cluster'集群为当前曾理集群

scurveadn cluster checkout my-cluster

通过 Curve_ops_tool 查看集群健康状态(创建卷),提前预装,只需进入容器查看是否健康。

此时健康(healthy)

image.png

此时整个 curvebs 已经部署完成。

(6)第6步:部署集群

curveada deploy

如果部署成功,将会输出类似 Cluster"myC1U5 ter'successfu1 ly deployed~~.的字样.

(7)第7步:查看集群运行情况

准备客户端配置文件

在49上挂卷

image.png

比较重要:集群监听地址,通过 mds 服务查看

image.png

只需进行 curveadm 命令完成卷的映射

卷所属用户,名称

image.png

(skip)此状态会显示 ok,会从相应机器上启动服务,如果启动过会直接跳过。

在进行挂载2个设备 test2,test3.

image.png

用过 as 查看3个设备

 

三.部署 PolarDB

1.PolarDB FileSystem 安装部署

请参考实例部署:基于 NDB 共享存储> PolarDB FileSystem 安装部署。

2.PolarDB for PG 内核编译部署

清参考实例部署:基于 NDB 共享存储> PolarDB tor PG 内核编详部署

客户团队做性能优化,放在 opencurve 组织下,感兴趣可以自己尝试部署。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
安全 关系型数据库 数据库
PostGreSQL安装压缩包格式
PostGreSQL安装压缩包格式
|
2月前
|
SQL 缓存 关系型数据库
postgresql的安装和使用
postgresql的安装和使用
64 0
|
27天前
|
Ubuntu 关系型数据库 分布式数据库
开源PolarDB -X 部署安装
本文记录了在Ubuntu 20.04上部署阿里云分布式数据库PolarDB-X的步骤,包括环境准备、安装依赖、下载源码、编译安装、配置启动,并分享了遇到的配置错误、依赖冲突和日志不清等问题。作者建议官方改进文档细节、优化代码质量和建立开发者社区。安装历史记录显示了相关命令行操作。尽管过程有挑战,但作者期待产品体验的提升。
218 6
|
4天前
|
SQL 关系型数据库 分布式数据库
PolarDB操作报错合集之安装时出现报错,一般是什么导致的
在使用阿里云的PolarDB(包括PolarDB-X)时,用户可能会遇到各种操作报错。下面汇总了一些常见的报错情况及其可能的原因和解决办法:1.安装PolarDB-X报错、2.PolarDB安装后无法连接、3.PolarDB-X 使用rpm安装启动卡顿、4.PolarDB执行UPDATE/INSERT报错、5.DDL操作提示“Lock conflict”、6.数据集成时联通PolarDB报错、7.编译DN报错(RockyLinux)、8.CheckStorage报错(源数据库实例被删除)、9.嵌套事务错误(TDDL-4604)。
|
2月前
|
负载均衡 关系型数据库 MySQL
关系型数据库的安装和配置数据库节点
【5月更文挑战第5天】关系型数据库的安装和配置数据库节点
165 3
关系型数据库的安装和配置数据库节点
|
2月前
|
Ubuntu 关系型数据库 MySQL
使用PXD工具一键安装PolarDB-X的体验
这次体验挺有意思的,对PolarDB-X有了更深入的了解,也希望能通过这些建议帮助产品做得更好。
80 2
使用PXD工具一键安装PolarDB-X的体验
|
2月前
|
运维 监控 Java
开源PolarDB-X部署安装评测报告
在部署PolarDB-X时,需先准备符合要求的OS环境和安装JDK等依赖库。遇到的问题包括`protobuf`版本不兼容、`cmake`参数配置错误和启动服务时的配置挑战。文档更新滞后和错误信息不明确增加了安装难度。建议优化文档、提升错误信息引导性、提供自动化安装脚本、加强社区支持和产品功能。尽管安装过程复杂,但产品潜力值得认可,期待改进以提升用户体验。
138 8
|
26天前
|
SQL 关系型数据库 MySQL
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
37 0
|
2月前
|
关系型数据库 MySQL 分布式数据库
快速体验开源PolarDB -X 部署安装
在CentOS上部署PolarDB-X标准版集群的体验包括三步:安装python3和docker(如果未预装),然后使用venv创建环境,安装pxd并验证。接着,通过`pxd tryout -t standard`部署集群,该过程需拉取大量镜像,可能耗时且占用数GB空间,建议事先清理空间并了解资源需求。部署后,可查询集群状态和健康信息。最终,使用`pxd cleanup`清理。过程中因磁盘空间不足遇到问题,建议体验前提供系统配置需求,并允许用户自定义MySQL参数。
|
2月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB安装体验
在尝试安装PolarDB的过程中,遇到了下载问题和安装障碍。官网下载页面不支持wget或curl下载rpm包,对CentOS7用户不友好。转而使用pxd安装方法,但遇到了两处障碍:1) 在安装mysql-client时,yum install mysql-shell失败,可能由于阿里云源的问题;2) pxd tryout命令执行出错,需将普通用户添加到docker用户组或使用root用户,文档未明确指出。安装过程中需要额外解决这些问题。
71 0
PolarDB安装体验