Size: 657
Comment:
|
Size: 2490
Comment: These two features goes hand in hand
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Corosync = We will use corosync to create a virtual IP-address which is shared by two systems. One of the systems has the virtual IP-address. If the system goes down, the other system will take over the virtual IP-address. |
## page was renamed from Corosync = Corosync and HA-proxy = |
Line 4: | Line 4: |
* 192.168.1.47 virtual IP-address * 192.168.1.50 haproxy01 * 192.168.1.51 haproxy02 |
We will use corosync to create a virtual IP-address which is shared by two systems. One of the systems has the virtual IP-address. If the system goes down, the other system will take over the virtual IP-address. HA-proxy will be running on each of the hosts relaying incoming HTTP-requests to two webservers. * 192.168.1.47 www (virtual IP-address) * 192.168.1.48 haproxy01 * 192.168.1.49 haproxy02 |
Line 10: | Line 12: |
apt-get install corosync | apt-get install corosync haproxy crmsh |
Line 14: | Line 16: |
Before binding to the DNS name `www` make sure the DNS server knows that name. === HA-proxy === Add the following to `/etc/haproxy/haproxy.cfg` {{{ listen webfarm bind www:80 mode http balance roundrobin cookie LBN insert indirect nocache option httpclose option forwardfor server haproxy01 www01:80 cookie node1 check server haproxy02 www02:80 cookie node2 check }}} Restart HA-proxy {{{ service haproxy restart }}} === Corosync === |
|
Line 22: | Line 46: |
Restart corosync to load the new configuration. {{{ service corosync restart }}} |
|
Line 24: | Line 53: |
{{{ | {{{#!highlight bash # do not kill other node crm configure property stonith-enabled=false # disable quorum due to two nodes only crm configure property no-quorum-policy=ignore # configure shared IP crm configure primitive haproxySharedIP ocf:heartbeat:IPaddr2 params ip=192.168.1.47 cidr_netmask=24 op monitor interval=5s # create heartbeat for haproxy crm configure primitive haproxyLoadBalance ocf:heartbeat:haproxy params conffile=/etc/haproxy/haproxy.cfg op monitor interval=10s # make sure the same server has both IP and service #crm configure group haproxyIPs haproxySharedIP meta ordered=false crm configure group haproxy haproxySharedIP haproxyLoadBalance # relation between IP and haproxy servers crm configure colocation haproxyWithIPs INFINITY: haproxyLoadBalance haproxySharedIP # IP should be up before haproxy starts crm configure order haproxyAfterIPs mandatory: haproxySharedIP haproxyLoadBalance #wget http://github.com/russki/cluster-agents/raw/master/haproxy #echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf |
Corosync and HA-proxy
We will use corosync to create a virtual IP-address which is shared by two systems. One of the systems has the virtual IP-address. If the system goes down, the other system will take over the virtual IP-address. HA-proxy will be running on each of the hosts relaying incoming HTTP-requests to two webservers.
- 192.168.1.47 www (virtual IP-address)
- 192.168.1.48 haproxy01
- 192.168.1.49 haproxy02
Software
apt-get install corosync haproxy crmsh
Configuration
Before binding to the DNS name www make sure the DNS server knows that name.
HA-proxy
Add the following to /etc/haproxy/haproxy.cfg
listen webfarm bind www:80 mode http balance roundrobin cookie LBN insert indirect nocache option httpclose option forwardfor server haproxy01 www01:80 cookie node1 check server haproxy02 www02:80 cookie node2 check
Restart HA-proxy
service haproxy restart
Corosync
Add the local network and a multicast address to /etc/corosync/corosync.conf in the interface section
interface { bindnetaddr: 192.168.1.0 mcastaddr: 239.192.1.1 }
Restart corosync to load the new configuration.
service corosync restart
Commmands
Run the following on startup
1 # do not kill other node
2 crm configure property stonith-enabled=false
3 # disable quorum due to two nodes only
4 crm configure property no-quorum-policy=ignore
5 # configure shared IP
6 crm configure primitive haproxySharedIP ocf:heartbeat:IPaddr2 params ip=192.168.1.47 cidr_netmask=24 op monitor interval=5s
7 # create heartbeat for haproxy
8 crm configure primitive haproxyLoadBalance ocf:heartbeat:haproxy params conffile=/etc/haproxy/haproxy.cfg op monitor interval=10s
9
10 # make sure the same server has both IP and service
11 #crm configure group haproxyIPs haproxySharedIP meta ordered=false
12 crm configure group haproxy haproxySharedIP haproxyLoadBalance
13 # relation between IP and haproxy servers
14 crm configure colocation haproxyWithIPs INFINITY: haproxyLoadBalance haproxySharedIP
15 # IP should be up before haproxy starts
16 crm configure order haproxyAfterIPs mandatory: haproxySharedIP haproxyLoadBalance
17 #wget http://github.com/russki/cluster-agents/raw/master/haproxy
18 #echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
19