How can build HA for Sunstone?

My question about HA for Sunstone.
My database is on a separate Mysql-cluster.
And I want to build HA for Sunstone. Is enough only configure floating IP and copy a directory - /var/lib/one/ to a Follower? Or should i to configure something else?
And is it advisable to install sunstone and frontend on different servers?


Proxy HA Sunstone servers is more difficult than HA oned+sunstone servers. You would need to also account for how Sunstone+oned handles image uploads, as Sunstone drops image files for storage upload in the local /var/tmp/, and oned looks in local /var/tmp for image upload. So if they are across two servers, you need to bridge /var/tmp and hook the mount into your HA.

The HA capabilities on oned already passes around floating IPs that sunstone can listen on, and having oned+sunstone on the same server means they use the local /var/tmp. I would use this configuration.

Hello, why you are using mysql cluster and not RAFT?

I don’t know how can i do better.
Is it good decision use HA RAFT?
In this case should i use mysql db, sunstone and frontend on one node?

Hello, RAFT is a preferred way to setup frontend HA.

You don’t need to set up the MySQL Galera cluster, no need for Corosync and Pacemaker. So the whole setup is much simpler. I don’t know much big is your deployment, but we use in production 3x VM with 4CPU, 8GB RAM and 50GB disk each. Mysql, Oned, and Sunstone, all are running on Leader VM. On followers, only MySQL and Oned are running.

One thing you should care about - VM logs. Here are my Github issue and PR about using Lsyncd for VM logs sync.

Thank you for reply.
I’ve configured HA on RAFT.

I understand correctly that when i configured RAFT can i shutdown my Leader and my cluster will continue to working?

yes, one of the followers become a leader

Works correctly, but floating ip doesn’t move to other leader when main leader is shutdown.
I understand correctly that oned.conf and these blocks should be the same on all servers?

# Executed when a server transits from follower->leader
     COMMAND = "raft/",
     ARGUMENTS = "leader eth0"

# Executed when a server transits from leader->follower
     COMMAND = "raft/",
     ARGUMENTS = "follower eth0"

yes, it should be same on all hosts

EDIT: is simple shell script, you can call it directly for debug purposes, you can also edit it

Thank you so much for your help.
Everything is ok.