Veritas Cluster Server (VCS) on Windows
This section discusses configuring PaperCut NG on a Veritas Cluster Server (VCS)Veritas Cluster Server (VCS) is a high-availability cluster software for Unix, Linux, and Microsoft Windows computer systems. It provides application cluster capabilities to systems running other applications, including databases, network file sharing, and electronic commerce websites.. The section provides a brief overview and is designed to supplement guidance from the PaperCut NG development team. If you are about to commence a production deployment on VCS, please feel free to get in touch with the development team for further assistance if required.
Note that Clustering and high availability only is supported for deploying on VCS.
This section assumes that you have an already installed and working clustered printing environment.
Mode 1 - Clustering at the print layer
The PaperCut Print ProviderA Print Provider is a monitoring service installed on a secondary print server to allow PaperCut to control and track printers. This monitoring component intercepts the local printing and reports the use back to the primary Application Server. is the component that integrates with the Print Spooler service and provides information about the print events to the PaperCut Application ServerAn Application Server is the primary server program responsible for providing the PaperCut user interface, storing data, and providing services to users. PaperCut uses the Application Server to manage user and account information, manage printers, calculate print costs, provide a web browser interface to administrators and end users, and much more.. At a minimum, in a cluster environment, the PaperCut Print Provider component needs to be included and managed within the cluster group. The PaperCut Application Server component (The Standard installation (primary server) option in the installer) is set up on an external server outside the cluster. Each node in the cluster is configured to report back to the single Application Server using XML web servicesWeb services are a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open standards over an Internet protocol backbone. over TCP/IP.
Single virtual server (Active/Passive)
PaperCut NG supports both Active/Passive and virtual Active/Active in VCS. This section discusses configurating PaperCut NG on a single virtual server running Active/Passive. If your organization hosts mutliple virtual servers, see the following section covering Active/Active.
Step 1 - Set up the cluster, print spooler and printers
First, set up and verify that the cluster and print serverA print server is a system responsible for hosting print queues and sharing printer resources to desktops. Users submit print jobs to a print server rather then directly to the printer itself. A print server can be a dedicated server but on many networks this server also performs other tasks, such as file serving is working as expected. Fully configure and test the system s before proceeding to the next step and installing PaperCut NG.
Step 2 - Set up the PaperCut Application Server (primary server) on a system outside the cluster
Install the PaperCut Application Server component (Standard installation option) on your nominated system. This system is responsible for providing PaperCut NG's web based interface and storing data. In most cases, this system does not host any printers and is dedicated to the role of hosting the PaperCut Application Server. It can be one of the nodes in the cluster; however, a separate system outside the cluster is generally recommended. An existing domain controller, member server or file server will suffice.
Step 3 - Install PaperCut Print Provider on both nodes
The Print Provider component needs to be installed separately on each node involved in the print spooler cluster. This is done by selecting the Secondary Print Server option in the installer. Follow the secondary serverA PaperCut secondary server is a system that directly hosts a printer, that is, a print server with a Print Provider installed. A secondary server can be a server style system hosting many printers, a desktop style system hosting printer(s) also shared to other network users, or a desktop style system with the printer used only for local users (not shared). set up notes as detailed in Configuring secondary print servers and locally attached printers. Take care to define the correct name or IP address of the nominated Application Server set up in step 1.
Step 4 - Configure the PaperCut Print Provider service to bind to the virtual server
By default the PaperCut Print Provider component associates itself with the physical node. A configuration change is required to force it to bind to the virtual server. Add the following lines (or uncomment the example lines) to the file: C:\Program Files\PaperCut NG\providers\print\win\print-provider.conf
ServerName=[VIRTUAL SERVER NAME]
PrintServerName=\\[VIRTUAL SERVER NAME]
Where [VIRTUAL SERVER NAME] is the network name associated with your virtual server. Note that the PrintServerName must be prefixed with two back-slashes (\\). The first setting is used to override the name reported to the PaperCut NG Application Server. The PrintServerName setting instructs the Print Provider to search for printers on the virtual server rather than on the physical server.
Step 5 - Decouple service management from nodes
By default the Print Provider component is installed under the management of the node. To hand over management to the cluster, the service start-up type needs to be set to manual. On each node navigate to Control Panel > Administrative Tools > Services and locate the PaperCut Print Provider service. Stop the service and set the start-up type to Manual. Repeat for each node in the cluster.
Step 6 - Add the PaperCut Print Provider service as a generic service
The PaperCut Print Provider service needs to be added to the Veritas Cluster group associated with the virtual server. This is to ensure that the service is managed within the same group as the print server and will fail-over as part of the group. Create a new GenericServer resource called PaperCutPrintProvider01. Set the service name to PCPrintProvider. You can leave the account, password and domain as defaults.
Step 7 - Set up dependencies
The PCPrintProvider service must start after the print spool resource. Create a dependency link between PaperCutPrintProvider01 and the PrintSpooler using the tools on the Veritas Cluster Resources tab associated with this virtual server.
Step 8 - Test
Take some time to test and ensure printing is monitored as expected. Use the Veritas Cluster administration console to simulate node failure and ensure monitoring continues after failure.
Multiple virtual servers (Active/Active)
On large networks it is common to distribute load by hosting print spooler services under two or more virtual servers. For example, two virtual servers can each host half of the organization's printers and share the load. This is sometimes referred to as Active/Active clusteringClustering allows your organisation to ensure your services are not affected if anything should happen to your main server. PaperCut is a cluster compatible application and is supported under Windows (Microsoft Cluster Server / MSCS, Microsoft Failover Cluster Manager / MSFCM, Vetitas Cluster Server / VCS) and Linux (Novell Cluster Services / NCS, Linux-HA) at all levels of the application, including: clustering at the print spooler service layer by integrating with clustering services, failover based clustering at the Application Server layer using clustering services, and at the database layer by utilising cluster aware databases such as Microsoft SQL Server, PostgreSQL, or Oracle. - albeit not an entirely correct term, as the print spooler is still running in Active/Passive.
Virtual servers cannot share the same service on any given node. For this reason if the virtual servers share nodes, manually install the PaperCut Print Provider service a second time under a different name. Use the following procedure.
Step 1 - Set up one virtual server
Set up one virtual server using all steps in the preceding section. After this virtual server is tested, perform the steps below to set up the 2nd virtual server.
Step 2 - Create a 2nd instance of the PaperCut Print Provider on each physical node
A 2nd copy of the PaperCut Print Provider needs to be created on each physical node. This is required so that a separate service can be installed and configured to bind to the 2nd virtual server. Copy the following directory, and all its contents: C:\Program Files\PaperCut NG\providers\print to C:\Program Files\PaperCut NG\providers\print2. Repeat this step on both physical nodes.
Step 3 - Configure the copied instance to bind to the 2nd virtual server
Add the following lines (or uncomment the example lines) to the file at C:\Program Files\PaperCut NG\providers\print\win\print-provider.conf:
ServerName=[VIRTUAL SERVER NAME 2]
PrintServerName=\\[VIRTUAL SERVER NAME 2]
Where [VIRTUAL SERVER NAME 2] is the network name associated with your 2nd virtual server. Note that the PrintServerName must be prefixed with two back-slashes (\\).
Repeat this step on both physical nodes.
Step 4 - Manually install the a 2nd instance of the PCPrintProvider service
Services need a unique name. We'll install a 2nd instance of the service under the name PCPrintProvider2. This is done by typing the following commands at the command prompt.
cd C:\Program Files\PaperCut NG\providers\print2\win
pc-print.exe PCPrintProvider2 /install
The argument preceding /install is the unique name to assign to the service. The recommended procedure is to suffix the standard service name with a sequential number. Repeat this on each physical node. Use a unique service name for each "active" virtual server hosted in the cluster group.
Step 5 - Add this service to the resource group associated with the 2nd virtual server
Repeat steps 5 through 8 in the preceding section, this time using the service name PCPrintProvider2 rather than PCPrintProvider. The recommend unique name for the cluster resource in step 6 is PaperCutPrintProvider01.