开发者学堂课程【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 集群时间和复杂度。
注意:
为开源训练营准备的基于 mbd 部署 polarDB 集群,但是不能完全发挥 curve 优势,curve 有为对接做了很大性能优化提升,但是目前 curve 还在适配,暂时给大家介绍基于 mbd 部署方式。
Code 也是放在 opencurve 下,一旦功能适配完成大家可以进行性能体验。
一.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 对象
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 升级到最新版本,与当前最新版本保持一致。
精准错误定位
在中控机上,通过 ssh 去操作服务器,开始进行实际的部署.
左边这台机器是中控机,用来安装 CurveAdm 的运作工具,右边准备了三台机器,分别是 Curve50,51和52,这三代机器用来部署 Curve 集群,所有的 Curve 的主键多架运行在三台服务器上,为方便演示,提前在这三台机器上预装 Docker。
3.部署 CurveBS 集群
一键安装
CurveAdm 支持一安装:
sbh"(curl -fsL https://curveadn.nos-eastchinal.l
题认安装路径为当前用户主目录下的 curevadn 目录,即~/,curveadm。
提醒:
CurveAdm 内置了命令补全命令,执行以下命令并根据相应提示即可加载补全:
curveadm completion -h
根据提供步骤安装即可
使用 CurveAdm 部署 CurveBS 集群
第1步:环境准备
第2步:在中控机上安装 CurveAdm
第3步:格式化磁盘
第4步:准备集群拓扑文件
第5步:添加朱群并切换集群
第6步:部图第群
第7步:查看集群运行情况
第8步:验证朱群健康状态
(1)第1步:环境准备
软硬件环境需求
安装依赖
(2)第2步:在中控机上安装 CurveAdm
安装 CurveAdm
(3)第3步:格式化磁盘
用于 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 代表已经启动磁盘格式化进程
所有格式化正在进程,可以通过 status 查看格式化进度
此时全部格式化完成
(4)第4步:准备集群拓扑文件
我们根据常见的场景,给用户准备了不同的拓扑文件模板,用户可根据需求自行选择,并进行编辑调整:单机部墨
所有服务都运行在一台主机上,一般用于体验或测试多机部署
通用的多机部署模板,可用于生产环境或测试
关于拓扑文件中的各配百项,请参考 CurveBS 集群拓扑。
提供单机/多机部署,随意选择
组成
第一个,Kind,支持文件系统部署,将文件类型指定相同
第二个,区块:
Log,etcd,mds,services 等
在每个区块都可以填写相应配置。
Log:针对每个服务都生效(也可以单独服务独立)
关于集群拓扑文件可以查看网页,在网页上有详细的作用及默认值,
前面3个是用于 ssh 连接,容器镜像1.2版本
Log_dir 存放日志目录
Data_dir 存放数据目录
a3服务下克隆服务
也可以查看网页
主机ip Curve10/11/12
四个服务区块 deploy,config 等,每个服务器都有简单的配置和监听的 IP 端口。关于集群具体介绍参照网页,不再详细介绍。
(5)第5步:添加集群并切换集群
添加集群并切换集群,查看当前管理集群
进行集群部署,运行一键完成部署
当终端出现 successful deployed 表示部署成功。(使用复制特性导致默认状态是折叠的,可以进行展开)
-sv 显示服务的一些其他信息,此时出现日志目录,数据目录
关于以上可以查看网页,提示较多大家可能会忽略的点
使用 help 命令也可以查看相关部署。
添加'my-cluster'集群,并指定第群拓扑文件
scurveadn cluster add my-cluster -f topology.yaml
切换'my-cluster'集群为当前曾理集群
scurveadn cluster checkout my-cluster
通过 Curve_ops_tool 查看集群健康状态(创建卷),提前预装,只需进入容器查看是否健康。
此时健康(healthy)
此时整个 curvebs 已经部署完成。
(6)第6步:部署集群
curveada deploy
如果部署成功,将会输出类似 Cluster"myC1U5 ter'successfu1 ly deployed~~.的字样.
(7)第7步:查看集群运行情况
准备客户端配置文件
在49上挂卷
比较重要:集群监听地址,通过 mds 服务查看
只需进行 curveadm 命令完成卷的映射
卷所属用户,名称
(skip)此状态会显示 ok,会从相应机器上启动服务,如果启动过会直接跳过。
在进行挂载2个设备 test2,test3.
用过 as 查看3个设备
三.部署 PolarDB
1.PolarDB FileSystem 安装部署
请参考实例部署:基于 NDB 共享存储> PolarDB FileSystem 安装部署。
2.PolarDB for PG 内核编译部署
清参考实例部署:基于 NDB 共享存储> PolarDB tor PG 内核编详部署
客户团队做性能优化,放在 opencurve 组织下,感兴趣可以自己尝试部署。