cPanel & WHM Version 92 has been released, and brings a slew of great updates. Take a look at what is included, and then upgrade today!

Percona Clustering - A Step Forward For CPanel

kray shared this idea 5 years ago
Needs Feedback

I've seen a tutorial for installing Percona with a cPanel install. What about their clustering? Can we install that on our main server and then create nodes? This will solve part of a long standing feature request to cluster everything. Here's the link to that: https://www.percona.com/doc/percona-xtradb-cluster/5.5/intro.html


Also, if we can do that then Percona should join MariaDB and MySQL as an option in WHM.

Comments (6)

photo
1

We recently looked into Mariadb Galera.


Galera doesn't work for shared hosting yet because all tables need a primary key.


https://mariadb.com/kb/en/mariadb/mariadb-galera-cluster-known-limitations/


I don't know if Percona needs this too, but as it's based on galera I presume it needs this too.


Well I might have an answer to that question :


https://www.percona.com/forums/questions-discussions/percona-xtradb-cluster/10603-limitations-on-tables-w-o-primary-keys


I'm going to do a bit more research, maybe this could be a good solution !

photo
1

https://www.percona.com/doc/percona-xtradb-cluster/5.6/limitation.html


Seems that Galeria is compatible with enforce_storage_engine=InnoDB but not with tables without Primay keys, wheras Percona Xtradb Cluster in version 5.6 is compatible with tables without primary keys but isn't compatible yet with enforce_storage_engine=InnoDB (unless I've missunderstood something).


It sadly does seem that there isn't a highly scalable high available solution that can cope with the needs of shared hosting yet (need for a high level of compatibity)

photo
1

Well, it then seems like it would be a good idea to have 3 database options. Percona would serve as the obvious clustering solution with the caveat of primary key necessity. It's possible there's a workaround for that but if not then the user's choice of Percona would make them aware that tables need primary keys. Idk about everyone else but all of my tables have primary keys.

photo
1

Actually, giving the option of clustering for both would be best that way you can decide if you want to sacrifice innodb or the ability to not use primary keys. Doesn't seem very troublesome and like I said, there could be a workaround for one. These are the most important requested feature types.

photo
1

You should already be able to do this. You would need a load balancing IP or haproxy server and a percona cluster. cPanel already allows to use an external serveur.


Untill Percona Xtradb Cluster and Mariadb Galera provid a way to their force innodb and work without primary keys this would not work for shared hosting and would only be usefull for a small market :


It would be good for people who aren't using cPanel for shared hosting but have enough sites to merit using cPanel and have a full control on what scripts are installed.


The two main types of cPanel users I know of are shared webhosts and VPS owners who need a panel to manage sites.


We would like a high availability cluster for shared hosting but the only solution is to have master/slave replication with the slave that is changed to master if the master goes down.


I also beleve that another limitation could be if you want to have multiple cPanel servers using the same database server, if you have resellers that could create a user that already exists on another server it could create database name conflicts.


This feature could be nice if added in conjunction with the feature to allow multiple mysql servers per cPanel server and also providing a way to make sure there can't be a username conflict by simply checking all servers and not just the local one for usernames when creating a new user.

photo
1

Old topic. But still worth commenting.

@Monarbase is correct. You can build a Galera cluster and use a proxy service like HA Proxy to act as your primary connection to the database. In theory, you would also be able to connect multiple cPanel servers to the cluster by setting up a remote MySQL profile in WHM.

The only snag in all of this is limitations unique to both Percona and MariaDB. Some may differ. But generally, tables without primary keys aren't supported. The database storage engine needs to be InnoDB, the cluster can support MyISAM tables, but it can get messy. Depending on the product some table locking mechanisms aren't supported. And running a cluster can affect the way you backup databases using MySQL dump.

This kind of setup may NOT be ideal for general use on a shared server. But you could set up a dedicated cluster for a particular client if they have a dedicated cPanel server.