Hot answers tagged

12

I am actually working on something very similar to what you described (a fail-over cluster on EC2), and after trying out Heartbeat, settled on Corosync as my messaging layer. Corosync will run on multiple servers and it does support Unicast (UDPU) as of version 1.3.0 (from Nov, 2010). I have setup and tested Corosync on Amazon's EC2 cloud (using Amazon's ...


12

I prefer to use keepalived for high-availability. I find it simpler to setup (one daemon and config) than heartbeat and company. The only drawback I run into, is that keepalived doesn't have a unicast option by default, and only uses VRRP for communication (The author of HAProxy has written a unicast patch for keepalived however)


9

Sorry, but the part about Pacemaker is not true. The Pacemaker regression and release tests make extensive use of automation. To configure without an active cluster, prefix all commands with CIB_file=/var/lib/heartbeat/crm/cib.xml or set it in your environment. Just be sure you remove the .sig file before starting the cluster. For clusters without quorum, ...


5

You can use RFC1918 IP addresses to test your configuration. Depending on the load balancing setup, the use of RFC1918 addresses may continue in some form into production.


4

You can use the cibadmin utility to query the Pacemaker configuration, move the primitives around accordingly within the <group id="group-vol1"></group> tags, and then push the new config back into Pacemaker. The process would look something like this: # cibadmin --query > /tmp/cib.xml # vi /tmp/cib.xml # cibadmin --replace --xml-file /tmp/...


3

In the open source world, there's RedHat Cluster Suite. It's been several years since I've implemented RHCS so I don't have many relevant things to say about it today. Commercially, there is Veritas Cluster Server. No experience with it. A much simpler and open source HA tool is UCARP. UCARP doesn't provide nearly the same kind of "infrastructure" that ...


3

I am late to reply to your question, but here goes: Yes heartbeat is deprecated. No this is not a distro specific problem There are a lot of benefits to using Corosync instead of heartbeat, the first and foremost is point number 1 above. Still, I will list as many as I know of here. Comparison of features: First off the only benefit(IMO) of using ...


3

you can enter the host ip in there. So on one server you'll have: bindnetaddr: 10.244.19.47 And on the other: bindnetaddr: 10.196.55.173 I had exactly the same setup with my two servers in EC2 and it worked well.


3

In the sources of pcs-0.9.115-32.el7 the getClusterName function is implemented: def getClusterName(): if is_rhel6(): try: dom = parse(settings.cluster_conf_file) except (IOError,xml.parsers.expat.ExpatError): return "" return dom.documentElement.getAttribute("name") else: try: f = ...


3

res_exportfs_export2_stop_0 on xx.xx.xx.1 'unknown error' (1): call=47, status=Timed Out, last-rc-change='Tue Mar 31 12:53:04 2015', queued=0ms, exec=20003ms Shows that your res_exportfs2 resources failed to stop due to a timeout. It may simply be that it needs a longer timeout. Try configuring a stop timeout for this resource like so: primitive ...


3

I don't believe this is a question of instructing pacemaker to only use the virtual IP, but rather telling Nginx to only use the virtual IP. I am no Nginx expert, but reading through their documentation I found a configuration directive named proxy_bind. I believe this might be what you need to set to get the desired behaviour. From the Nginx documentation ...


2

I haven't seen how 6.1 changes things, I've only done it with 6.0, but this is what worked for me: Install the following patterns: Scalable File Systems Resilient Storage High Availability On each node, start the ricci service (service start ricci), entering a password when prompted Start the luci service (service start luci) on one node Go to port :8084 ...


2

Eureka! Both of us forgot a very very important log file, it's... /var/log/mysqld.log: socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) by Atomicorp [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000082' at position 58569, relay log './mysqld-relay-bin.000002' position: 58715 [Note] Slave I/O thread:...


2

Yes, that's right. See also here, an example configuration published by Florian Haas (one of the Linux HA guys): https://github.com/fghaas/corosync/blob/master/conf/corosync.conf.example.udpu And please read the Corosync man page, it's all explained in there.


2

From the mailing list (that solved my problem), courtesy of Dan Friscu: "You're not supposed to use the same bindnetaddr in both places, it's relevant only at node level for UDPU (your use case). On the node where you have the 144.* address, use that as bindnetaddr." Hope that this is useful to someone.


2

I think the easiest way out is to have 2 fail-over IPs. One for nginx and the other for pgpool + haproxy pair. That way it will work the way you intend it to. nginx can be configured to run from first machine and pgpool + haproxy pair from the second one.


2

The setting that is missing is the preferred node. You can first add the resource, and configure the preferred node to run it afterwards. It is recommended to assign a weight below the stickiness of the resource to avoid unwanted downtime in the case of failover. Check the pacemaker docs for a complete example.


2

You don't have to use multicast on corosync. You may use unicast to do your job. This can be done by using something like this in /etc/corosync/corosync.conf for a two-member cluster: compatibility: whitetank totem { version: 2 secauth: off interface { member { memberaddr: 10.23.55.201 ...


2

You do need to run them on the DB hosts as well as they are required to manage the resources (which are the database instances in your case). I assume that you could also create "remote resources" and remotely manage them but I'd say it is rather inefficient.


2

Definitely. Create a configuration file (named 'cib.txt', in our example) with the same syntax you've used in your example commands: primitive VIP ocf:heartbeat:IPaddr2 params ip=10.0.2.200 nic=eth0 \ op monitor interval=10s timeout=20s \ op start interval=0 timeout=20s \ op stop interval=0 timeout=20s Then you can load that file using the ...


2

You can configuring Notifications via External-Agent adding external script to process cluster changes. For example configure ClusterMon to execute an external-agent: primitive ClusterMon ocf:pacemaker:ClusterMon \ params user="root" update="30" extra_options="-E /path/to/pcmk_curl_helper.sh" \ op monitor on-fail="restart" interval="10" clone ...


2

Solution Thanks to the folks that investigated with me, I was able to find the solution to my problem and I do now have a working setup. If you feel brave enough, you can read the comments on the original question, but here is a summary of the steps that helped me solve my issue. Read the source First thing to do when setting up HA resources, will sound ...


1

1: before test your cluster connectivity, you need to configure you stonith device, the stonith is very important in cluster, for resolve the split-brain situation 2: for the less important question, you can try to use location constrains you can start from something like this: location mycol dummy1 \ rule $id="myrule" -inf: defined dummy2 and #...


1

If I understand correctly what you need, you can do this by putting location constraints: pcs constraint location WanCluster101 prefers 11sch=10 pcs constraint location WanCluster101 prefers 10sch=5 What I did in the past was to put the constraint for both IPs, both ways. So that when one node goes down, the other takes both IPs, no matter which of them ...


1

If you use multicast you can quickly and easily add new nodes to the cluster. Because of this I suspect that the developers may have never saw a need to allow dynamically adding nodes via UDP unicast. At least no "clean" way exist that I myself am aware of. However, you should be able to reload Corosync and apply the newly edited config files without ...


1

So after much banging of my head on a table, our Percona contract finally kicked in again. Using a new HA resource : https://github.com/percona/percona-pacemaker-agents/raw/master/agents/mysql_monitor Create the HA resource in its own folder , I called it Percona ( /usr/lib/ocf/resource.d/percona ). This resource will not try to kill your mysql nodes like ...


1

Same issue after upgrading i386 servers from 2.6.32 kernel and 1.25 ipvadm to 3.2.0 kernel and 1.26 ipvadm, while ipvsadm shows oly one /proc/net/ip_vs shows all real servers. On a newly installed amd64 all is working fine. To solve the issue i applied the patch posted here http://archive.linuxvirtualserver.org/html/lvs-users/2011-08/msg00033.html and ...


1

May be you need to switch to unicast from multicast communication. Try something like this in your corosync.conf: totem { version: 2 secauth: off interface { member { memberaddr: 172.16.0.1 } member { memberaddr: 172.16.0.2 ...


1

With the two machines in different datcenters? You can't. This scenario assumes that both machines in the cluster are on the same subnet; the VIP is also in that subnet. To do what I think you want to do, you would need an anycast IP address. Then you'd still have to run your own AS so you could add and withdraw routes as the machines go online and offline. ...


1

I have do similar configuration to make sure the virtual IP to live along with Mysql master server. For your case, I think the steps should be: Add a primitive for two JBOSS intances (as your shareIP or MySQL servers) Add colocation configure for JBOSS primitive to live along with MySQL Master as example below: colocation mysql_co_jboss inf: jboss ms_MySQL:...



Only top voted, non community-wiki answers of a minimum length are eligible