Hi Just wondering if it is possible to have a Koha implementation in which we have a front-end Load Balancer such as NGINX or HAProxy, several Koha web server instances powered by one database server running on a separate server with balancing from source with stick-table in the case of HAProxy. <https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=18&cad=rja&ua ct=8&ved=2ahUKEwj_gtyilobfAhVqSBUIHeMLADsQFjARegQIABAB&url=http%3A%2F%2Fngin x.org%2Fen%2Fdocs%2Fhttp%2Fload_balancing.html&usg=AOvVaw1SHZO_7iym933we-rYd FYt> <https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=18&cad=rja&ua ct=8&ved=2ahUKEwj_gtyilobfAhVqSBUIHeMLADsQFjARegQIABAB&url=http%3A%2F%2Fngin x.org%2Fen%2Fdocs%2Fhttp%2Fload_balancing.html&usg=AOvVaw1SHZO_7iym933we-rYd FYt> nginx Kind Regards, Admire Mutsikiwa ICT Projects Manager Libraries University of Zimbabwe <Tel:+263-4-303276> Tel:+263-4-303276 "It is easy to dodge our responsibilities, but we cannot dodge the consequences of dodging our responsibilities." Josiah Charles Stamp, 1880-1941, former director of the Bank of England
On Tue, Dec 04, 2018 at 02:35:39PM +0200, Mutsikiwa Admire wrote:
Just wondering if it is possible to have a Koha implementation in which we have a front-end Load Balancer such as NGINX or HAProxy, several Koha web server instances powered by one database server running on a separate server with balancing from source with stick-table in the case of HAProxy.
Yep! I'm currently handling the sysadmin side of an installation which runs the koha web interface on two mirrored web servers behind an F5 BIG-IP load balancer, with a third non-web server to handle cron jobs, outgoing mail, etc. All three servers talk to a three-node mariadb/galera cluster (although they only actually talk to a single node because koha doesn't play well with multi-master database configurations) for data storage and a five-node elasticsearch cluster for indexing. On each individual web server (after passing through the load balancer), the request path is nginx => apache => starman/plack. nginx serves static files, apache handles shibboleth authentication, and starman runs the koha scripts. I opted to go with the F5 device instead of nginx for the front-end load balancing because it was already available through the campus data center and I didn't want to deal with setting up failover on an IP address myself, but I can't see any reason that it wouldn't work just as well (from koha's perspective) with nginx or haproxy as the load balancer instead of a dedicated device. -- Dave Sherohman
Hi Dave, Can you share the metrics of the Koha DB ? (# of biblios, # of yearly issues, # of patrons, # of librarians, ...) Le 04/12/2018 à 14:06, Dave Sherohman a écrit :
On Tue, Dec 04, 2018 at 02:35:39PM +0200, Mutsikiwa Admire wrote:
Just wondering if it is possible to have a Koha implementation in which we have a front-end Load Balancer such as NGINX or HAProxy, several Koha web server instances powered by one database server running on a separate server with balancing from source with stick-table in the case of HAProxy. Yep! I'm currently handling the sysadmin side of an installation which runs the koha web interface on two mirrored web servers behind an F5 BIG-IP load balancer, with a third non-web server to handle cron jobs, outgoing mail, etc. All three servers talk to a three-node mariadb/galera cluster (although they only actually talk to a single node because koha doesn't play well with multi-master database configurations) for data storage and a five-node elasticsearch cluster for indexing.
On each individual web server (after passing through the load balancer), the request path is nginx => apache => starman/plack. nginx serves static files, apache handles shibboleth authentication, and starman runs the koha scripts.
I opted to go with the F5 device instead of nginx for the front-end load balancing because it was already available through the campus data center and I didn't want to deal with setting up failover on an IP address myself, but I can't see any reason that it wouldn't work just as well (from koha's perspective) with nginx or haproxy as the load balancer instead of a dedicated device.
-- Paul Poulain, Associé-gérant / co-owner BibLibre, Services en logiciels libres pour les bibliothèques BibLibre, Open Source software and services for libraries
On Tue, Dec 04, 2018 at 04:46:59PM +0100, Paul Poulain wrote:
Can you share the metrics of the Koha DB ? (# of biblios, # of yearly issues, # of patrons, # of librarians, ...)
Yearly issues 260k (not counting renewals) Patronrecords: 68k 200 libray staff 2.4M biblios 2.4M items -- Dave Sherohman
hello, wow, did you need load balancing for performance reasons, or was it just by choice ? We're supporting a library that has 1M biblios, 1.7M items, 300+ issues and 70k+ patrons, and they don't need load balancing at all. It's hosted on their platform, virtualised with VMWare. They had to tweak some things to get good performances, and that's it, it works ! Le 07/12/2018 à 14:50, Dave Sherohman a écrit :
On Tue, Dec 04, 2018 at 04:46:59PM +0100, Paul Poulain wrote:
Can you share the metrics of the Koha DB ? (# of biblios, # of yearly issues, # of patrons, # of librarians, ...) Yearly issues 260k (not counting renewals) Patronrecords: 68k 200 libray staff 2.4M biblios 2.4M items
-- Paul Poulain, Associé-gérant / co-owner BibLibre, Services en logiciels libres pour les bibliothèques BibLibre, Open Source software and services for libraries
On Fri, Dec 07, 2018 at 03:58:15PM +0100, Paul Poulain wrote:
wow, did you need load balancing for performance reasons, or was it just by choice ?
For redundancy. I can take any involved server down and the rest will keep running without any interruption of service to the end users. For example, the elasticsearch worker nodes ran low on disk space yesterday (one of the other developers was experimenting with aliased indexes and made a lot of them in the process), so I've been expanding their disk allocations today, taking one node down at a time. I was able to do this while an external demonstration was being given, plus all normal usage, with no issues. If I hadn't told other team members about it, nobody would have even known. But, yes, none of the (virtual) machines involved is heavily loaded under normal circumstances. They all generally run at 20% CPU usage or lower with little I/O and network loading as well, and these are provisioned with 6 CPU cores for the web servers and 2 cores for most of the rest, so they're also very low-powered servers. With the available hardware, I could easily run it all on one box, but, if that one machine had any kind of problems, we'd be offline until I could fix it. Plus I also enjoy being able to say that I've designed and built what just might be the most over-engineered koha system in the world. :) -- Dave Sherohman
participants (3)
-
Dave Sherohman -
Mutsikiwa Admire -
Paul Poulain