heartbeat启动后无反应
查看日志文件:
tail -f /var/log/ha-log:
heartbeat[30680]: 2015/01/27_18:04:29 info: Version 2 support: false
heartbeat[30680]: 2015/01/27_18:04:29 WARN: Logging daemon is
disabled --enabling logging daemon is recommended
heartbeat[30680]: 2015/01/27_18:04:29 info: **************************
heartbeat[30680]: 2015/01/27_18:04:29 info: Configuration validated. Starting heartbeat 2.1.3
heartbeat[30681]: 2015/01/27_18:04:29 info: heartbeat: version 2.1.3
heartbeat[30681]: 2015/01/27_18:04:29 WARN: No Previous generation - starting at 1422353070
heartbeat[30681]: 2015/01/27_18:04:29 info: Heartbeat generation: 1422353070
heartbeat[30681]: 2015/01/27_18:04:29 info: No uuid found for current node - generating a new uuid.
heartbeat[30681]: 2015/01/27_18:04:29 info: Creating FIFO /var/lib/heartbeat/fifo.
一直保持在此不动,heartbeat所管理的资源也没有启动。
查看debug日志也不起作用,还可以从哪里分析报错日志与信息?
使用命令:
service hearbeat status
提示:
Cannot shmget for process status: Invalid argument
由于kernel.shmmax,是内核参数导致的。因为这台机器是老机器,版本为5.5,而新配置的6.5服务器没有这个问题。
我的机器shmmax数据设置的过大,从而导致创建共享内存失败。
shmmax内核参数定义单个共享内存段的最大值,一般建议使用物理内存的一半,单位为字节。
以2G为例:2048/2*1024*1024=1073741824
在/etc/sysctl.conf中添加kernel.shmmax=1073741824,在系统重启后仍生效。
修改为:
service heartbeat start
仍未启动,再次:
service hearbeat status
报错:
Cannot shmget for process status: No space left on device
原因分析:
shmall共享内存设置过大导致shmall内核参数定义共享内存页数,一般建议设置为物理内存大小,单位为页,1页=4k
以2G为例:2048*1024*1024/4000= 536870
在/etc/sysctl.conf中添加kernel.shmall=536870,在系统重启后仍生效。
完成修改,重启hearbeat:
service heartbeat start
正常启动且顺利接管VIP。