Yoke

Postgres 高可用集群
授权协议 MPL
开发语言 Google Go
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 不详
投 递 者 李辉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Yoke 是 Postgres 的高可用集群,具有自动切换和自动集群恢复。Postgres冗余/自动故障转移解决方案,提供一个高可用PostgreSQL集群的简单管理。

Yoke 依赖:

  • 包含 'primary', 'secondary' 和 'monitor' 三个节点的 3-server 集群

  • 'primary' & 'secondary' 节点需要互相之间进行 ssh 连接 (w/o 密码)

  • 'primary' & 'secondary' 节点需要远程同步安装 (或者一些替代 sync_command)

  • 'primary' & 'secondary' 节点应该有安装 postgres,Yoke 会尝试调用 'postgres' 和 'pg_ctl'

  • 'primary' & 'secondary' 节点作为一个子进程运行 postgres

配置示例:

 

[config]
# the IP which this node will broadcast to other nodes
advertise_ip=
# the port which this node will broadcast to other nodes
advertise_port=4400
# the directory where postgresql was installed
data_dir=/data
# delay before node decides what to do with postgresql instance
decision_timeout=30
# log verbosity (trace, debug, info, warn error, fatal)
log_level=warn
# REQUIRED - the IP:port combination of all nodes that are to be in the cluster (e.g. 'role=m.y.i.p:4400')
primary=
secondary=
monitor=
# SmartOS REQUIRED - either 'primary', 'secondary', or 'monitor' (the cluster needs exactly one of each)
role=
# the postgresql port
pg_port=5432
# the directory where node status information is stored
status_dir=./status
# the command you would like to use to sync the data from this node to the other when this node is master
sync_command=rsync -ae "ssh -o StrictHostKeyChecking=no" --delete {{local_dir}} {{slave_ip}}:{{slave_dir}}
[vip]
# Virtual Ip you would like to use
ip=
# Command to use when adding the vip. This will be called as {{add_command}} {{vip}}
add_command=
# Command to use when removing the vip. This will be called as {{remove_command}} {{vip}}
remove_command=
[role_change]
# When this nodes role changes we will call the command with the new role as its arguement '{{command}} {{(master|slave|single}))'
command=
 相关资料
  • 本文档提供一个可扩展、高可用的 Seafile 集群架构。这种架构主要是面向较大规模的集群环境,可以通过增加更多的服务器来提升服务性能。如果您只需要高可用特性,请参考3节点高可用集群文档。 架构" class="reference-link"> 架构 Seafile集群方案采用了3层架构: 负载均衡层:将接入的流量分配到 seafile 服务器上。并且可以通过部署多个负载均衡器来实现高可用。 Se

  • 在每个 HAproxy 节点上安装和配置 keepalived 来实现浮动 IP 地址。 CentOS 7: yum install keepalived 假设配置了两个 HAproxy 节点:node1、node2 在node1上修改 keepalived 配置文件(/etc/keepalived/keepalived.conf),写入如下内容: ! Configuration File for

  • kuberntes 系统使用 etcd 存储所有数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤,这三个节点复用 kubernetes master 机器,分别命名为etcd-host0、etcd-host1、etcd-host2: etcd-host0:10.64.3.7 etcd-host1:10.64.3.8 etcd-host2:10.66.3.86 使用的变量 本文档用到的变量

  • kuberntes 系统使用 etcd 存储所有数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤,这三个节点复用 kubernetes master 机器,分别命名为test-001.jimmysong.io、test-002.jimmysong.io、test-003.jimmysong.io: test-001.jimmysong.io:172.20.0.113 test-002.j

  • 在本文档中,高可用主要指的是解决尽可能在不丢失数据的前提下不间断服务问题,由于redis是异步复制,因此不保证数据完全不丢失,在这个场景下并不实现动态横向扩容,只能进行纵向扩容,你只要加内存,启动redis,设置maxmemory即可。而分片(Sharding)主要指的是解决在线动态横向扩容缩容问题,当然为了稳定也进行高可用部署配置,即包含成对的主从关系。

  • 本文档介绍用 3 台服务器构建 Seafile 高可用集群的架构。这里介绍的架构仅能实现“服务高可用”,而不能支持通过扩展更多的节点来提升服务性能。如果您需要“可扩展 + 高可用”的方案,请参考Seafile 可扩展集群文档。 在这种高可用架构中包含3个主要的系统部件: Seafile 服务器:提供 Seafile 服务的软件 MariaDB 数据库集群:保存小部分的 Seafile 元数据,比如

  • 适用于redis非重度用户,内存占用不大,总体内存大小的增长趋势可预估,有一定停机时间的系统——纵向扩容即可满足,可以对全库进行主从复制即满足需求而不需要做分片,一般针对单个小型项目的cache 等场景。一般采用一主多从的sentinel方案进行部署。

  • 一、Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群。 1.1 下载 & 解压 下载对应版本 Zookeeper,这里我下载的版本 3.4.14。官方下载地址:https://archive.apache.org/dist/zookeeper/ # 下载 wget https://archive.apache.