问题描述:启动keepalived进程报错"Can't open PID file /run/keepalived.pid",如下所示:
系统:rhel 7.9
keepalived版本:keepalived-2.2.7.tar.gz
1、异常重现
[root@leo-mysql01 keepalived-2.2.7]# systemctl start keepalived
[root@leo-mysql01 keepalived-2.2.7]# systemctl status keepalived
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2023-12-24 18:25:48 CST; 16s ago
Docs: man:keepalived(8)
man:keepalived.conf(5)
man:genhash(1)
https://keepalived.org
Process: 17182 ExecStart=/opt/keepalived-2.2.7/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 17184 (code=exited, status=2)
Tasks: 0
CGroup: /system.slice/keepalived.service
Dec 24 18:25:47 leo-mysql01 Keepalived[17184]: NOTICE: setting config option max_auto_priority should result in better keepalived performance
Dec 24 18:25:47 leo-mysql01 Keepalived[17184]: Starting Healthcheck child process, pid=17185
Dec 24 18:25:47 leo-mysql01 Keepalived[17184]: Starting VRRP child process, pid=17186
Dec 24 18:25:47 leo-mysql01 systemd[1]: Started LVS and VRRP High Availability Monitor.
Dec 24 18:25:47 leo-mysql01 Keepalived_healthcheckers[17185]: Initializing ipvs
Dec 24 18:25:47 leo-mysql01 Keepalived_healthcheckers[17185]: Note: IPVS with IPv6 will not be supported
Dec 24 18:25:48 leo-mysql01 systemd[1]: keepalived.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 24 18:25:48 leo-mysql01 systemd[1]: Unit keepalived.service entered failed state.
Dec 24 18:25:48 leo-mysql01 systemd[1]: keepalived.service failed.
Dec 24 18:25:48 leo-mysql01 Keepalived_healthcheckers[17185]: Note: IPVS with IPv6 will not be supported
后台日志报错如下:
Dec 24 18:29:49 leo-mysql01 systemd: Starting LVS and VRRP High Availability Monitor...
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: Starting Keepalived v2.2.7 (01/16,2022)
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: Running on Linux 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 (built for Linux 3.10.0)
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: Command line: '/opt/keepalived-2.2.7/sbin/keepalived' '-D'
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: WARNING - using deprecated default config file '/etc/keepalived/keepalived.conf' - please move to '/usr/local/etc/keepalived/keepalived.conf'
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: Opening file '/etc/keepalived/keepalived.conf'.
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: Configuration file /etc/keepalived/keepalived.conf
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: (Line 15) WARNING - number '0' outside range [0.000001, 4294.967295]
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: (Line 15) vrrp_garp_interval '0' is invalid
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: (Line 16) WARNING - number '0' outside range [0.000001, 4294.967295]
Dec 24 18:29:49 leo-mysql01 Keepalived[17289]: (Line 16) vrrp_gna_interval '0' is invalid
Dec 24 18:29:54 leo-mysql01 systemd: Can't open PID file /run/keepalived.pid (yet?) after start: No such file or directory
Dec 24 18:29:54 leo-mysql01 Keepalived[17292]: NOTICE: setting config option max_auto_priority should result in better keepalived performance
Dec 24 18:29:54 leo-mysql01 Keepalived[17292]: Starting Healthcheck child process, pid=17293
Dec 24 18:29:54 leo-mysql01 Keepalived[17292]: Starting VRRP child process, pid=17294
Dec 24 18:29:54 leo-mysql01 systemd: Started LVS and VRRP High Availability Monitor.
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Note: IPVS with IPv6 will not be supported
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Gained quorum 1+0=1 <= 1 for VS [192.168.200.100]:tcp:443
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Gained quorum 1+0=1 <= 2 for VS [10.10.10.2]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Gained quorum 1+0=1 <= 2 for VS [10.10.10.3]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Activating healthchecker for service [192.168.201.100]:tcp:443 for VS [192.168.200.100]:tcp:443
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Activating healthchecker for service [192.168.200.2]:tcp:1358 for VS [10.10.10.2]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Activating healthchecker for service [192.168.200.3]:tcp:1358 for VS [10.10.10.2]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Activating healthchecker for service [192.168.200.4]:tcp:1358 for VS [10.10.10.3]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Activating healthchecker for service [192.168.200.5]:tcp:1358 for VS [10.10.10.3]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_vrrp[17294]: Registering Kernel netlink reflector
Dec 24 18:29:54 leo-mysql01 systemd: keepalived.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 24 18:29:54 leo-mysql01 Keepalived_vrrp[17294]: Registering Kernel netlink command channel
Dec 24 18:29:54 leo-mysql01 systemd: Unit keepalived.service entered failed state.
Dec 24 18:29:54 leo-mysql01 Keepalived_vrrp[17294]: (/etc/keepalived/keepalived.conf: Line 21) WARNING - interface eth0 for vrrp_instance VI_1 doesn't exist
Dec 24 18:29:54 leo-mysql01 systemd: keepalived.service failed.
Dec 24 18:29:54 leo-mysql01 Keepalived_vrrp[17294]: Non-existent interface specified in configuration
Dec 24 18:29:54 leo-mysql01 Keepalived_vrrp[17294]: Stopped - used 0.000000 user time, 0.001799 system time
Dec 24 18:29:54 leo-mysql01 Keepalived[17292]: pid 17294 exited with permanent error CONFIG. Terminating
Dec 24 18:29:54 leo-mysql01 Keepalived[17292]: CPU usage (self/children) user: 0.000898/0.000000 system: 0.000197/0.002376
Dec 24 18:29:54 leo-mysql01 Keepalived[17292]: Stopped Keepalived v2.2.7 (01/16,2022)
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Shutting down service [192.168.201.100]:tcp:443 from VS [192.168.200.100]:tcp:443
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Shutting down service [192.168.200.2]:tcp:1358 from VS [10.10.10.2]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Shutting down service [192.168.200.3]:tcp:1358 from VS [10.10.10.2]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Shutting down service [192.168.200.4]:tcp:1358 from VS [10.10.10.3]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Shutting down service [192.168.200.5]:tcp:1358 from VS [10.10.10.3]:tcp:1358
Dec 24 18:29:54 leo-mysql01 Keepalived_healthcheckers[17293]: Stopped - used 0.002270 user time, 0.001135 system time
Dec 24 18:30:01 leo-mysql01 systemd: Started Session 25 of user root.
说明:如上可知,Can't open PID file /run/keepalived.pid为问题所在.
2、异常解决
[root@leo-mysql01 keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_MASTER
script_user root
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
#interface为刚才查到的本机网卡名称
interface ens33
#同一网段中同一组virtual_router_id值相同,不同组virtual_router_id值唯一.
#如server-1、server-2为一组,virtual_router_id=51
#server-3、server-4为一组,则virtual_router_id不能为51
virtual_router_id 51
#字数越大,优先级越高,master必须大于backup
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#该ip为虚拟出来的vip地址
192.168.133.92
}
}
#配置virtual_server ip为上面配置的虚拟vip地址,端口为mysql的端口
virtual_server 192.168.133.92 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#real_server该配置为实际物理机ip地址以及实际物理机mysql端口
real_server 192.168.133.90 3306 {
#当该ip端口连接异常时,执行该脚本
notify_down /etc/keepalived/shutdown.sh
TCP_CHECK {
#实际物理机ip地址
connect_ip 192.168.133.90
#实际物理机port端口
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
说明:添加"script_user root"参数,此处参考https://blog.csdn.net/little_crab_/article/details/123704852 网址.
3、结果验证
[root@leo-mysql01 keepalived]# systemctl start keepalived
[root@leo-mysql01 keepalived]# ps -ef|grep keepalived
root 17558 1 0 18:44 ? 00:00:00 /opt/keepalived-2.2.7/sbin/keepalived -D
root 17559 17558 0 18:44 ? 00:00:00 /opt/keepalived-2.2.7/sbin/keepalived -D
root 17560 17558 0 18:44 ? 00:00:00 /opt/keepalived-2.2.7/sbin/keepalived -D
root 17564 17408 0 18:44 pts/3 00:00:00 grep --color=auto keepalived
[root@leo-mysql01 keepalived]# systemctl status keepalived
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-12-24 18:44:13 CST; 47s ago
Docs: man:keepalived(8)
man:keepalived.conf(5)
man:genhash(1)
https://keepalived.org
Process: 17556 ExecStart=/opt/keepalived-2.2.7/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 17558 (keepalived)
Tasks: 3
CGroup: /system.slice/keepalived.service
├─17558 /opt/keepalived-2.2.7/sbin/keepalived -D
├─17559 /opt/keepalived-2.2.7/sbin/keepalived -D
└─17560 /opt/keepalived-2.2.7/sbin/keepalived -D
Dec 24 18:44:16 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:16 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:16 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:17 leo-mysql01 Keepalived_healthcheckers[17559]: TCP connection to [192.168.133.90]:tcp:3306 success.
Dec 24 18:44:21 leo-mysql01 Keepalived_vrrp[17560]: (VI_1) Sending/queueing gratuitous ARPs on ens33 for 192.168.133.92
Dec 24 18:44:21 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:21 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:21 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:21 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
Dec 24 18:44:21 leo-mysql01 Keepalived_vrrp[17560]: Sending gratuitous ARP on ens33 for 192.168.133.92
说明:如上所示,成功开启keepalived.
启动keepalived进程报错"Can't open PID file /run/keepalived.pid"
原创Liujun_Deng 博主文章分类:Mysql ©著作权
文章标签 keepalived无法启动 文章分类 MySQL 数据库
上一篇:MySQL 5.7.36安装
-
Nginx 运行状态中报错 Can‘t open PID file /var/run/nginx.pid (yet?) after start: No such...ctory 解决办法
一、出现问题的原因Nginx自身Bug问题,导致Nginx服务优化后出现“Can’t open
Web集群 Nginx 状态错误解决办法 运维 nginx Nginx