patroni etcd 实现高可用之-m6米乐安卓版下载

m6米乐安卓版下载-米乐app官网下载
patroni etcd 实现高可用之-安装部署.pdf
165
7页
17次
2021-10-25
25墨值下载
postgresql ⾄今都没有特别流⾏的⾼可⽤⽅案,之前介绍过两种⾼可⽤⽅案,如下:
pgpool-ii⽅案: postgresql 流复制 pgpool-ii 实现⾼可⽤ ha
keepalived⽅案:keepalived postgresql 流复制⽅式实现⾼可⽤ ha
以上两种⽅案都能实现基本的 postgresql ⾼可⽤,当主库宕机时,备库能正常接管,但存在⼀些不⾜。
pgpool-ii⽅案
故障切换时并不会判断备库与主库存在的数据差异,这块逻辑需要⾃定义。
性能下降明显,根据之前的只读场景测试,⼤概降幅有20%,详⻅pgpool-ii 流复制模式压⼒测试
⾃动化程度不⾼,例如备库实例挂掉后不会⾃动拉起,主备切换后,需⼈⼯介⼊将⽼的主库进⾏⻆
⾊转换。
keepalived⽅案
程序移值性不好,不⽅便部署和安装。
⾃动化程度不⾼,例如备库实例挂掉后不会⾃动拉起,主备切换后,需⼈⼯介⼊将⽼的主库进⾏⻆
⾊转换。
patroni etcd ⽅案优点
最近在在看基于 patroni etcd 的⾼可⽤⽅案,此⽅案使⽤patroni管理本地库,并结合etcd作为数据存储
和主节点选举,具有以下优势:
健壮性: 使⽤分布式key-value数据库作为数据存储,主节点故障时进⾏主节点重新选举,具有很强
的健壮性。
⽀持多种复制⽅式: 基于内置流复制,⽀持同步流复制、异步流复制、级联复制。
⽀持主备延迟设置: 可以设置备库延迟主库wal的字节数,当备库延迟⼤于指定值时不做故障切换。
⾃动化程度⾼: 1)⽀持⾃动化初始postgresql实例并部署流复制; 2)当备库实例关闭后,⽀持⾃动拉
; 3)当主库实例关闭后,⾸先会尝试⾃动拉起; 4)⽀持switchover命令,能⾃动将⽼的主库进⾏⻆⾊
转换。
避免脑裂: 数据库信息记录到 etcd 中,通过优化部署策略(多机房部署、增加实例数)可以避免脑
裂。
patroni 简介
patroni基于python开发的模板,结合dcs(例如 zookeeper, etcd, consul )可以定制postgresql⾼可⽤⽅
案。
patroni并不是⼀套拿来即⽤的postgresql⾼可⽤组件,涉及较多的配置和定制⼯作。
patroni接管postgresql数据库的启停,同时监控本地的postgresql数据库,并将本地的postgresql数据
库信息写⼊dcs
patroni的主备端是通过是否能获得 leader key 来控制的,获取到了leader keypatroni为主节点,其它的
为备节点。
etcd 简介
etcd是⼀款基于raft算法和协议开发的分布式 key-value 数据库,基于go语⾔编写,patroni监控本地的
postgresql状态,并将相关信息写⼊etcd,每个patroni都能读写etcd上的key,从⽽获取外地postgresql
数据库信息。
etcdleader节点不可⽤时,etcd会⼀致性的选择⼀个合适的节点作为主节点,新的etcd主节点将获取
leader key,因此建议etcd集群为三个以上且为奇数的节点,不建议部署在同⼀个机房,有条件话尽量部
署在三个机房。
⼀个标准的3节点etcd集群,最⼤容许1个节点故障。
部署规划
为了演示⽅便,使⽤笔记本上的三台虚机作为演示环境,软件版本规划如下:
操作系统: centos linux 7.7
数据库: postgresql 12.2
python: python 3.8.2
etcd: etcd-v3.4.7
patroni: patroni 1.6.5
部署规划如下:
环境准备
虽然patroni⽀持⾃动化初始化postgresql数据库并部署流复制,这两块⼯作个⼈建议还是⼿⼯来做⽐较
好。
部署⼀主两从postgresql流复制,主机ydtf01部署主库,ydtf02ydtf03部署从库,流复制的部署可参
postgresql:使⽤ pg_basebackup 搭建流复制环境
为了演示⽅便,关闭ydtf01ydtf02ydtf03主机上的防⽕墙,如下:
由于本⽂的部分⼯具需要通 epel源安装,安装 epel 源,如下:
安装python3,如下:
创建软链接,如下:
python3安装后’yum’命令执⾏会报错,需要修改以下配置:
etcd安装
三台主机上下载并安装etcd,如下:
主机
ip
组件
备注
ydtf01
192.168.2.11
postgresqlpatroni
etcd
主节点
ydtf02
192.168.2.12
postgresqlpatroni
etcd
备节点1
ydtf03
192.168.2.13
postgresqlpatroni
etcd
备节点2
1
2
# systemctl stop firewalld.service
# systemctl disable firewalld.service
1
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
1
2
3
4
# wget -c https://www.python.org/ftp/python/3.8.2/python-3.8.2.tar.xz
# ./configure
# make
# make install
1
2
rm -f /usr/bin/python
ln -s /usr/local/bin/python3 /usr/bin/python
1
2
/usr/bin/yum: 将⽂件第⼀⾏改为/usr/bin/python2.7(2.7.x也改为2.7)
/usr/libexec/urlgrabber-ext-down: 将⽂件第⼀⾏改为/usr/bin/python2.7
of 7
25墨值下载
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
top250 周榜 月榜
网站地图