什么是看门狗

“看门狗”是一个 pgpool-II 的子进程,用于为 pgpool-II 添加高可用性功能。看门狗添加的功能包括:

服务器结构图

下图描述了 pgpool-II 和看门狗进程的配置情况。

watchdog server composition

启动/停止看门狗

看门狗进程岁 pgpool-II 一起启停,也就是说,没有单独的命令启停它。 然而,pgpool-II 必须以 root 权限启动,因为看门狗进程需要控制虚拟 IP 接口。

配置看门狗 (pgpool.conf)

看门狗的配置参数也在 pgpool.conf 中。在 pgpool.conf.sample 文件中的 WATCHDOG 小节有示例配置。 以下所有的选项都是配置看门狗进程所需要的。

基础配置

use_watchdog

如果为 on,则激活看门狗。默认为 off。

trusted_servers

用于检查上游连接的可信服务器列表。每台服务器都邀请能响应 ping。 指定一系列用逗号分隔的服务器列表,例如 "hostA,hostB,hostC"。

delegate_IP

指定客户端服务器(应用服务器等)连接到的 pgpool-II 的虚拟 IP 地址(VIP)。 当一个 pgpool 从备用节点切换到活跃状态,pgpool 会使用这个 VIP。

wd_hostname

指定用于互相监控的看门狗进程的主机名或 IP 地址。

wd_port

指定用于互相监控的看门狗进程的端口号。

wd_interval

本参数指定 pgpoll-II 用于存活检测的间隔,单位为秒(大于或等于 1 的数字)。

ping_path

本参数指定用于监控上游服务器的 ping 命令的路径。只需要设置路径例如 "/bin" 。

ifconfig_path

T本参数指定用于切换 IP 地址的命令的所在路径。 只设置路径,例如 "/sbin"。

if_up_cmd

本参数指定一个命令用以启用虚拟 IP。设置命令和参数,例如 "ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0"。 参数 $_IP_$ 会被 delegate_IP 设置的值替换。

if_down_cmd

本参数指定一个命令用以停用虚拟 IP。设置命令和参数,例如 "ifconfig eth0:0 down"。

arping_path

本参数指定在发生虚拟 IP 切换后用于发送一个 ARP 请求的命令的所在路径。只设置路径,例如 "/usr/sbin"。

arping_cmd

本参数指定一个命令用以在发生虚拟 IP 切换后用于发送一个 ARP 请求的命令。 设置命令和参数,例如 "arping -U $_IP_$ -w 1"。参数 $_IP_$ 会被 delegate_IP 设置的值替换。

wd_life_point

在确认 pgpool-II 失效时的重试次数(一个大于或等于 1 的数字)。

wd_lifecheck_query

用于检查 pgpool-II 的查询。默认为 "SELECT 1"。

被监控的服务器

other_pgpool_hostname0

指定需要监控的 pgpool-II 服务器主机。这用于发送/接收查询和数据包,同时也是看门狗的标识。 本参数名后面的数字表示“服务序号”,从 0 开始。

other_pgpool_port0

指定需要监控的 pgpool-II 服务器的 pgpool 服务的端口。对于查询模式,wd_lifecheck_query 指定的查询语句将被发送到这个端口。 本参数名后面的数字表示“服务序号”,从 0 开始。

other_wd_port0

指定需要监控的 pgpool-II 服务器的看门狗的端口。 本参数名后面的数字表示“服务序号”,从 0 开始。