Synchronize Plesk Servers (Failover)
Keep two (or more) Plesk servers in sync for a failover scenario.
Migration Manager only allows manual "sync"
Although the implemented solution differs from the initial demand, we are closing the request as "already available”. We have thoroughly investigated the idea to solve the redundancy issue using a Plesk cluster. Our research has proved that this solution is not in step with the times, is no longer demanded by our partners, and has its limitations. We would like to give an explanation of each point.
More than nine years ago, when the request was created, the IT world had already begun to change. Previously, partners and customers bought or rented bare-metal servers and organized them in data centers. If the servers did not have sufficient component redundancy, there was a risk that a power supply or hard drive failure would lead to service downtime. However, a synchronized failover server could save hosting from such problems. But since then, hosting infrastructure has changed significantly. These days, public clouds are everywhere, partners and customers use virtualization systems, and software runs in containers.
We interviewed our partners to make sure they still needed a high-availability (failover) cluster for Plesk. It turned out that the majority of partners already had virtualization systems in their infrastructure. To protect a server with Plesk from failures, many partners already use high-availability features provided by virtualization systems. Some partners are no longer interested in a high-availability (failover) cluster. Instead, they would like to have a high-load cluster with active/active nodes, where the load is balanced between all cluster members.
In the meantime, we tried building a Plesk cluster. It proved to be possible but with many limitations. A Plesk cluster also requires more servers and resources for deployment from partners and customers, which leads to increased infrastructure costs. The solution would be unreasonably expensive for end users. Developing a Plesk cluster further and making it suitable for production requires lots of additional investments. They will not justify themselves from the point of view of our partners, customers, end users, and Plesk itself. Should anyone decide to continue the research on how to adapt Plesk to be a part of a failover cluster, we have published our research results together with the proof of concept. If you have any feedback, we have created a topic about high availability Plesk on our forum.
Note: We recommend using a centralized database and centralized file storage (NFS) together with virtualization systems and/or cloud providers that provide high-availability functionality on the server rather than the software level. At the same time, we do not plan to continue developing any high-availability redundancy on the application level.
Nanne Dijkstra commented
9 years after this request, there's still no real Failover solution for Plesk!
It would be nice to get an update on this. I think Plesk is great software but new features are coming very slow! I you are serious about your website running on Plesk it is really important to have some sort of Failover solution.
At least give an update on one of the most requested features!
Laurent Henni commented
This is the most requested suggestion...
Michael Lenz commented
Any updates planned for 2022?
Michael Neubauer commented
Faceki Inc commented
Melhem Dagher commented
H S commented
Welcome to 2022. 2013-2022. Waiting and waiting for this feature. Please do it.
I see here that it depends what kind of failover is requested to be implemented. A manual failover solution or an automatic one. Because for a manual one I do not see that it should be too complicated: Establish a permanent ssh connection between the servers and create a monitoring service who detects changed files. Afterwards they will be synced to the replication server.
Way more complicated might be a multi-node scenario or as said an automatic failover which detects if the primary goes down and starts the takeover based on defined conditions.
Recommendation: Create the manual failover approach for the normal licence and add a more complex solution for extra licensing.
agaitan, they have a cPanel migration tool but not one for Plesk yet. Knowing them, if there becomes demand for it, they will build it.
agaitan, it has been good. No issues at all. The CP is not as robust as plesk but they are always adding new features. I'm not aware of any import tools right now but they may have something. We have a pretty complex cloud setup already so we stopped using the plesk migrator years ago due to some problems with it. The Cluster CS team can be hired for custom work on migrations though.
hi Will how is clustercs? have any migration tool from cpanel plesk to that ?
I've since been migrating away from Plesk, over to https://clustercs.com/. Not only has it been noticeably faster and obviously an HA/cluster, but we have found savings spreading the computational workloads onto more smaller instances compared with the giant machines we have to use to support the Plesk way of doing things. So far so good. Very responsive and ambitious team over there.
C'mon guys! You can do it! Failover it's the thing!
Rob Lee commented
Hurry Up Plesk! Geez you're platform has been surpassed many times over
For some people said using database sync master to master (replication). It all fun until 1 database stop syncing and you only found out few month later after it stop replicated.
Solution is you can use external database service like Amazon then connect 2 server to that database.
Dennis Rahmen commented
In my setup,
the plesk server uses clustered network storage for the "vhost" and "mailnames" files.
I also have an external MariaDB Galera cluster for client databases, that the plesk server has access to through a load balancer.
This is in my opinion how it should be done.
Take as much clustering out of the hands of plesk as possible. Because plesk does not need to do that, there are better already existing solutions for that purpose.
Now to what plesk has to do:
Every plesk server should use its own database, as it is currently, and rely on an external database server for client databases.
Same for the files, those should be on an external file server.
Now plesk has to manage the config and customers, those should always be up-to-date on both servers, and it should not throw errors when both access the same file or database and try changing something.
Because fact is, if you need a cluster of plesk servers, you should also have external database and file servers.
I know it is not as cheap as just having two plesk servers do all the work but blowing plesk up is not the solution.
in fact, the main requirements to "cluster" option are(IMHO):
- Database syn as master-master to allow cross sync of databases;
- master-master sync of files(data), within work folders. Such idea has already been implemented in various services/software(the same google drive, one drive, seafile etc)
I believe everyone agrees to pay that as an additional license.
AS for DNS failover, it is something that can be added further, however, there are a lot of ready services that provide such solution based on monitoring. at the end such a system can be developed on your own.
Have to agree w/ Plesk this is a highly complex task.
I have had to resolve myself to using a custom built load balancer, with Plesk merely acting as a low level http only (no ssl handshake) website manager.
It would be ideal, if Plesk had a proxy-only mode with likely a separate license, to act as a simple proxy and ssl certbot manager for domains, linked to a full installation of plesk itself.
HA and load balancing will require significant effort on their part, considering Plesk is not built to handle that job whatsoever.
And personally, I find nginx a far better product for caching than Varnish, especially for things like Wordpress.
I realize that's debatable. But seems to me a simple proxy management system with a linked Plesk server -- to separate SSL handshake from hosting, would be a far more achievable goal. And would open the door towards HA.
Plesk Staff, how about for an initial version you offer us the following:
1. An option to have Plesk Migrator perform regular syncs (using something similar to existing Plesk Scheduled Tasks)
2. Plesk should check to make sure another sync is not already running. Or better yet, breakup the sync by services (ie Email, Web, DB, DNS sync can run concurrently). This way if a sync of email is taking too long, the sync of other services can continue to take place on the desired frequency.
3. Offer an option for Plesk admin to update DNS zones for all services to point to new failover server. This can be a prerequisite to use an external DNS server (like Plesk Route53 or an external name server). So when the primary fails, the failover can connect w/ external name server to update DNS records for various plesk services and customer hosted sites to point to new server (ie failover server).
4. Once DNS is updated to failover server, primary server should get locked as to not allow updates (DB, Web, DNS, etc) as all changes should now occur on the failover. This will help ensure easy syncing back from failover to primary server.
5. Once primary server comes back online, plesk admin must manually select to over-write primary server with data from failover. It would be nice to have an option to select which services to sync from failover to primary (eg admin might select to only sync email or DB from failover to primary server but not other services).
I think most of the above capabilities are either available or can be easily added to Plesk with minimal investment. Overtime, Plesk can develop a more robust bidirectional sync.