From: ZhangJulian <jul...@ou...> - 2014-01-25 00:28:20
|
Hi All, I am thinking 3 choices as below: 1. Pacemaker and Corosync. I have little experience on Linux HA, so one week passed, I even can not install them successfully, including Pacemaker/Corosync/crmsh/resouce agent. There are some website mentioned Pacemaker/corosync can help PGXC to build a HA infrastructure, but I can not find a comprehensive guide to do it. There are much more commponents in PGXC than PG, I think I should learn how to build it based on PG first. 2. Zookeeper It seems that Zookeeper has the ability to build a HA solution for PGXC, which have the similar function with Pacemaker, but I have to develop the heartbeat function for Zookeeper to start/stop/monitor/failover PGXC. And I do not know if my understand is right. 3. PGXC support HA internally. Because the table of pgxc_nodes in coordinator already have some information about the cluster, it can be enhanced to save the Master/Slave relations, it is replicated between all coordinators, then it can used as a CRM(Cluster Resource Management, as Pacemaker) compoment. And the coordinator will connect to datanode/gtm/other coordinator in its regular work, so the heartbeat function exists natually. Even when the database is in the spare time, the coordinator can send a simple query as "select 1+1" to datanodes as the heartbeat ticks. What need to do is that, the coordinator will start a new process when starting, the new process will act as a heartbeat /resouce_agent to monitor the cluster status, and restart/failover once one commponent fails. As my initial understanding, Choice 3 is better than Choice 2 which is better than Choice 1. But for the development effort, the order is reversed, Choice 1 is easy achieved based on current existing codes. I am very appreciated that you can share your advice with me. Thanks Julian |