我用Corosync / Pacemaker创build了一个集群。 在集群中,我configuration了两个资源,一个虚拟IP和Squid。 在Debian 8上,集群中有两个节点。
crm_status显示,两个节点都在线,一切工作正常。
出于testing目的,我停止了节点之一。 CRM显示资源已经迁移到第二个节点,但是当我在客户端浏览器上使用虚拟IP时,我没有得到任何回应。 大部分时间大概需要10分钟,直到客户端能够通过第二个节点浏览虚拟IP。
我想(希望)这是一个小小的configuration,但在这一刻,我不知道在哪里find失败。 这是我的configuration:
节点
Node 1 Node 2 eth0 10.0.0.234 eth0 10.0.0.235 eth1 xxx134 eth1 xxx135 Virtual IP: 10.0.0.233
Corosync
totem { version: 2 cluster_name: SQUID token: 3000 token_retransmits_before_loss_const: 10 clear_node_high_bit: yes crypto_cipher: aes256 crypto_hash: sha1 interface { ringnumber: 0 bindnetaddr: xxx0 mcastaddr: 239.255.1.1 mcastport: 5405 ttl: 1 } } logging { fileline: off to_stderr: no to_logfile: no to_syslog: yes syslog_facility: daemon debug: off timestamp: on logger_subsys { subsys: QUORUM debug: off } } quorum { provider: corosync_votequorum expected_votes: 2 two_node: 1 }
起搏器
primitive SQUID-IP IPaddr2 \ params ip=10.0.0.233 cidr_netmask=24 nic=eth0 \ op monitor interval=30s \ meta target-role=Started primitive SQUID-Service Squid \ params squid_exe="/usr/sbin/squid3" squid_conf="/etc/squid3/squid.conf" squid_pidfile="/run/squid3.pid" squid_port=3128 squid_stop_timeout=10 debug_mode=v debug_log="/var/log/cluster.log" \ op start interval=0 timeout=60s \ op stop interval=0 timeout=120s \ op monitor interval=10s timeout=30s \ meta target-role=Started colocation lb-loc inf: SQUID-IP SQUID-Service order lb-ord inf: SQUID-IP SQUID-Service property cib-bootstrap-options: \ have-watchdog=false \ dc-version=1.1.15-e174ec8 \ cluster-infrastructure=corosync \ cluster-name=Squid \ stonith-enabled=no \ no-quorum-policy=ignore rsc_defaults rsc-options: \ resource-stickiness=200
乌贼
#Networks acl net_client src 192.168.1.0/24 acl net_cus src 10.0.200.0/24 #ACLs acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT #Rules http_access deny !Safe_ports http_access allow net_client http_access allow net_cus #http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localhost http_access deny all #Proxy Port http_port 3128 #Cache Size cache_mem 512 MB #Cache Directory cache_dir ufs /var/spool/squid3 100 16 256 #PID File pid_filename /var/run/squid3.pid #Cache Log cache_log /var/log/squid3/cache.log #Leave coredumps in the first cache dir coredump_dir /var/spool/squid3 # Add any of your own refresh_pattern entries above these. refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 #Notification Address cache_mgr [email protected]
问题是中间防火墙上的ARPcaching/刷新间隔。 重新configuration故障转移后按预期工作。