Application Server Failover for High Availability
The coveted 99% uptime is strived for by more and more organizations throughout their business. This doesn’t stop at printing. Organizations large and small want to know that their Print Management solution and broader printing infrastructure is protected against, and able to recover from any interruptions.
For most, the answer to this challenge is in the extensive list of industry-leading technologies that they are often already using across their organization. These options offer protection for not only PaperCut but also the broader printing infrastructure. Not only that but as these solutions are used across various business systems, the skills and knowledge needed to not only implement but also support a setup already exist in-house. We explore these solutions in more detail in our High Availability Whitepaper.
In recent times, we have seen an increase in the number of businesses who are harnessing the power and investment they have made in a Network Load Balancer to provide resilience to various applications. To support this strategy, you can already configure print traffic to be routed through a Network Load Balancer and balanced across multiple print servers, which you can read more on here.
In v20.0 of PaperCut NG and MF, we are introducing a new Application Server Failover feature, which supports customers using a Network Load Balancer to provide resiliency.
Automatic Application Server failover allows for two (or more) PaperCut Application Servers to be positioned behind a Network Load Balancer in an active/passive configuration. PaperCut MF and NG v20.0 include in-app technology to ensure only a single healthy instance is active and communicating with the external database. At the same time, the Network Load Balancer is used to direct all incoming traffic to the active server and redirect this should a failover happen. If an outage does occur, it’s then a process of resolving this before manually restarting the server or PaperCut Application Server service before it can re-enter the rotation as a passive server.
As you can see from this diagram, we have a Highly Available Database, external from the PaperCut Application Servers. We have two instances of the PaperCut Application Server, one is currently active and accepting traffic, and one passive. These are both positioned behind our Network Load Balancer. All other PaperCut components (Secondary Servers, Site Servers, User Client, etc.) are then configured to point at the Network Load Balancer.
- PaperCut version 20 or higher
- A Layer 4 capable Network Load Balancer e.g,
- F5 BIG-IP
- Citrix Netscaler
- Kemp LoadMaster
- 2+ servers (virtual or physical)
- A highly available external database(RDBMS)
- Microsoft SQL Server
- A persistent network drive accessible by all servers
- All print queues and PaperCut Mobility Print installations are hosted on PaperCut Secondary or Site Servers. These components cannot be hosted on the Application Server when using this solution.
For detailed information on how to set up your system to use our Automatic Application Server Failover, please refer to the PaperCut NG and MF Help Center.
As part of the setup, you will need to reach out to the team that manages your Network Load Balancer to complete the configuration. The configuration of each Network Load Balancer will be different depending on the manufacturer and specific device in use, be it an F5 BIG-IP, Citrix Netscaler, Kemp LoadMaster, Loadbalancer.org, or any of the other hardware or software Network Load Balancer.
If you are using a Loadbalancer.org Network Load Balancer, then their team has put together a detailed deployment guide on how both PaperCut Application Server Failover and Print Server Network Load Balancing can be implemented.
Any new feature introduces many questions. Here’s our FAQ, where we hope to help answer these for you.
|What is an active server?||The server which is actively accepting traffic and performing all PaperCut Application Server operations. This server will periodically update the database to tell the monitoring or passive server that it’s active.|
|What is a passive server?||The server that is in a monitoring state and not accepting any incoming traffic. This server will talk to the database periodically to find out whether the active server has continued to call in successfully.|
|What happens during a failover?||The passive server will take over the active role automatically and start accepting incoming traffic.|
|Will the failed server restart automatically?||No. The problem that has caused the server to go offline or become unresponsive needs to be resolved and then restarted manually.|
|How will I know that a failover occurred?||The application log will have an entry mentioning the failover and which server took over the active role. This message will also be emailed to an administrator if system notifications have been enabled.|
|How will I know that the passive server is, in fact, available and awaiting a failure?||On a web browser, enter the IP address of the passive server (not the Network Load Balancer IP). You will see a web page saying “Server in passive monitoring mode”. The page is accessible over an HTTP connection and can be used by a customers Network Load Balancer as the HTTP health check endpoint.|
|How long will it take to failover?||Once the passive server decides the active server is no longer updating the database, the normal Application Server startup process will be triggered. From here, it will be a similar time taken as if you started the PaperCut Application Server service from a stopped state.|
|Does this solution support Print Deploy?||Yes, Print Deploy is supported. Additional configuration is required and is documented in our set up guide.|
|Does this solution support Job Ticketing?||Job ticketing is not supported with this feature at the moment. If you need to use Job Ticketing in this configuration, please reach out to the PaperCut team.|
|Does this solution support Payment Gateways?||The ability to use a Payment Gateway with this feature varies depending on the particular integration. If you need to use a Payment Gateway, please reach out to the PaperCut team.|
|Does this work with the internal database?||Due to the database needing to remain online regardless of which server is online, the internal database is not supported for this feature.|
|Do you support any external database?||Currently, we support Microsoft SQL Server, MySQL server, PostgreSQL server, and Oracle server.|
|Are both servers active and do they balance the load?||No. Only one server is active and accepting traffic. Other server is in a passive state and will not receive any incoming traffic.|
|Will my held print job still be available after a failover?||Yes. Once the passive server reaches the fully active state, all held jobs will be available for release. You may find existing print jobs may take slightly longer to become available again while we wait for the individual Print Provider instances to come online.|
|What’s the purpose of the Network Load Balancer?||The load balancer is to purely forward the traffic to the active server.|
|How would the Network Load Balancer know which server is active?||Using the System Health Monitoring feature in PaperCut NG or MF will allow the Network Load balancer to monitor the servers and establish which one is active and online.|
|Does this work with Site Servers?||Yes. All PaperCut components, such as Site Servers, Secondary Servers, MFDs, and User Clients, will all need to point to the Network Load Balancer, where requests will be forwarded to the active server.|
|How long will the passive server wait until it decides the active server is not so active anymore?||This is a configuration value in the Application Server configuration. By default, if the active server is not updating the database for 30 seconds, the passive server will take over and initiate a startup.|
|Can there be more than one active server?||No. We have built additional fail-safe monitoring mechanisms to detect this situation and trigger an immediate shutdown.|
|I’m seeing frequent failovers. Why is this happening?||A common reason can be that database requests are taking a significant time such that the active server is unable to update the database within the failover period. Increasing the failover period will fix the problem temporarily, however, we recommend contacting the PaperCut support team should this occur.|
|Can Site Servers do automatic failover?||No. Site Servers do not support this feature.|
|Is Layer 7 Load Balancing supported?||Application Server Failover needs to be set up using Layer 4 Load Balancing to ensure that communication is successful between all PaperCut components.|
Keywords: Failover, Availability