Estou enfrentando um problema com o software de cluster do corosync e do marcapasso. Eu tenho dois nós virtuais (Scientific Linux 6.4) e corosync / pacemaker instalados neles:
corosync-1.4.1-17.el6.x86_64 pacemaker-1.1.10-14
O arquivo de configuração do corosync é:
compatibility: whitetank
totem {
token: 5000
token_retransmits_before_loss_const: 4
vsftype: none
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 192.168.122.0
mcastaddr: 226.94.1.1
mcastport: 4000
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}
service {
# Load the Pacemaker Cluster Resource Manager
name: pacemaker
ver: 1
}
aisexec {
user: root
group: root
}
O marcapasso está configurado para ignorar o quorum ausente e com outras duas coisas:
crm configure property no-quorum-policy="ignore" pe-warn-series-max="1000" pe-input-series-max="1000" pe-error-series-max="1000" cluster-recheck-interval="1min"
crm configure rsc_defaults resource-stickiness=100
crm configure property stonith-enabled=false
Eu criei um recurso IPAddr2 na configuração do marcapasso:
$ ~>crm configure show p_api-ip
INFO: object cli-prefer-p_api-ip cannot be represented in the CLI notation
INFO: object cli-prefer-g_openstack cannot be represented in the CLI notation
primitive p_api-ip ocf:heartbeat:IPaddr2 \
params ip="192.168.122.202" cidr_netmask="24" nic="eth0" \
op monitor interval="15s"
Em seguida, criei outro recurso p_myres, que gerencia um daemon de servidor. Os recursos p_api-ip e p_myres estão agrupados:
[root@openstack1 ~]# crm configure show g_myres
INFO: object cli-prefer-p_api-ip cannot be represented in the CLI notation
INFO: object cli-prefer-g_myres cannot be represented in the CLI notation
group g_myres p_api-ip p_myres
Quando eu inicio o grupo de recursos g_myres, tudo funciona bem, mas o fato é que não consigo migrar o grupo g_myres para o outro nó; o comando "recurso do crm migrar g_myres node2" simplesmente não faz nada e não vejo nada relevante no syslog.
Mas esse não é o pior problema que eu tenho ...
Se eu apenas reiniciar ou desligar um dos dois nós, o cluster se comporta corretamente: o recurso é migrado para o outro nó, o crm_mon mostra que o nó reinicializado / desligado está OFFLINE.
Se eu interromper a comunicação entre eles por um tempo, por exemplo eu emito "service network stop" e após 3 minutos "service network start" no primeiro nó, o segundo nó migra o grupo de recursos g_myres (incluindo o Virtual IP ) para si depois de um tempo; e se eu tentar conectar-me ao IP virtual, aterre corretamente no segundo nó, como esperado. Quando o primeiro nó volta a ficar online, o segundo não percebe isso; O crm_mon continua mostrando o primeiro nó como OFFLINE, o grupo de recursos g_myres continua no segundo nó, mas também no primeiro! o IP Virtual também está nos dois nós!
Existe alguma coisa na configuração do corosync (e / ou marca-passo) que devo verificar?
Tags cluster linux load-balancing