You are here: Installation > Advanced implementation > Clustering and high availability > Novell Cluster Services (NCS) on Novell OES Linux

Novell Cluster Services (NCS) on Novell OES Linux

This section assumes that you have an already installed and working clustered printing environment.

Mode 1 - Clustering at the print layer

Step 1 - Application Server (primary server) setup

Before installing a 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)./clustered 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. you should take some time to ensure the primary PaperCut server (central 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.) is set up and running correctly. The primary server is responsible for providing PaperCut NG's web based interface and storing data. In most cases where a cluster is involved, the primary server does not host any printers and is dedicated to the role of hosting the PaperCut Application Server. If it is not running fine now, adding an extra server only "adds an extra variable to the equation" and complicate troubleshooting. Take some time now to verify that the primary server is functioning correctly. For example, verify that:

  • Install and configuration is completed

  • Administrators can access the system via a web browser for administration.

  • Users can log in to the user web interface from their workstations.

Step 2 - Ensure firewall allows access to port 9191

Cluster nodes needs to communicate (initiate a TCP connection) with the primary PaperCut server on port 9191. Administrators should ensure that any firewall software on the primary Application Server set to block any incoming local network traffic on this port. A good way to test is to open a browser on the planned cluster nodes and confirm you can access the administration web interface on port 9191.

Step 3 - Create eDirectory user account

The papercut user's home directory denotes the application install location. For the fact that it is the default for LUM enabled users, /home/papercut is recommended, and assumed through the rest of this guide.

  1. In iManager open Users > Create User.

  2. For username, enter papercut.

  3. For Last name enter PaperCut LUM user.

  4. For context select the same eDirectory context as your the iPrintiPrint is a technology developed by Novell that allows users to install printer-drivers from a web browser and to submit print jobs over the Internet or a local network through the standard Internet Printing Protocol (IPP). Common desktop operating systems such as Windows, Linux, and Mac support iPrint. user and iprintgrp group created during your clustered iPrint installation.

  5. Assign the user a secret password during creation, and ensure the user's password is set to not expire. If you are using eDirectory password policies, associate the user with an appropriate password policy after creation .

  6. Select the Create home directory check box.

  7. In Volume select the volume that is holding your clustered iPrint resource.

  8. In Path ensure that it reads papercut.

  9. Click OK.

You now need to LUM enable this PaperCut eDirectory user and add it to the already LUM enabled iprintgrp used by the clustered iPrint resource.

  1. In iManager, open Linux User Management > Enable Users for Linux.

  2. Select your papercut eDirectory user and continue.

  3. Select An Existing Linux-Enabled Group; then select the iprintgrp created during your clustered iPrint installation; then click Next.

  4. Confirm that Workstation list includes all of the servers in your cluster; then click Next.

  5. On your clustered iPrint volume, navigate to the papercut user's NSS home folder (/media/nss/[volume]/papercut) using, for example, Windows Explorer or ConsoleOne and add RWECMF file rights for the eDirectory group iprintgrp created during your clustered iPrint installation. This ensures the iPrint services have access to the installed files.

  6. As root, on each node that will run the iPrint resource, run the following command, replacing [volume] with the volume name of your iPrint resource.

    shell> ln -s /media/nss/[volume]/papercut /home/papercut

    Note:

    The symlink target exists only on the active node and dangles on the other nodes ready for when it becomes the active node.

  7. To confirm all the above stages are working, using any method you want (such as the traditional Novell client for Windows, logged in as an admin user), create a folder or test files inside the papercut folder on your iPrint cluster volume, then on the server holding that resource run:

    shell> su - papercut

    shell> ls

    You can see the files created on the NSS volume. You can also view them via /home/papercut on the active node.

Step 4 - Install the Print Provider

Important:

The instructions below assume x64 architecture.

Install the Print Provider software onto the secondary server by copying all files and directories from the primary Application Server's directory:

[app-path]/providers/print/linux-x64/*

to the equivalent location on the node currently holding the iPrint resource:

/home/papercut/providers/print/linux-x64/

Perform the copy operation as the papercut user so that files are owned by the papercut user. You can use any method to copy the files, including over the network or via a USB key. If the primary server is also Linux, the simplest way would be to use secure copy (scp) as follows:

shell> su - papercut

shell> mkdir -p providers/print

shell> cd providers/print

shell> scp -r primary.server.name:/home/papercut/providers/print/* .

After the copy operation is performed, execute the setperms and roottasks scripts as root:

64bit

shell> su - root

shell> sh ~papercut/providers/print/linux-x64/setperms

shell> sh ~papercut/providers/print/linux-x64/roottasks

Step 5 - Configuration

The Print Provider on the cluster needs to know where the primary server is installed (i.e. its IP address). It also needs to correctly report the cluster name to the primary server.

  1. Open the file /home/papercut/providers/print/linux-x64/print-provider.conf in a text editor.

  2. Locate the line starting with ApplicationServer= and change 127.0.0.1 to the hostname or IP address of the primary server.

  3. Locate the line starting with ServerName=, uncomment it and add the hostname of the cluster. This tells PaperCut NG to report printers as being hosted on the cluster rather than on the node running the resource.

Step 6 - Cluster configuration

  1. Configuring services

    As the services are going to be managed by Novell 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., the services on the physical nodes must be disabled so that they don't start. On the node used to install PaperCut in Step 4 - Install the Print Provider, in YaST > System > System Services (Runlevel) , disable papercut-event-monitor.

  2. Installing services and disabling them on all other nodes

    On each other node in the cluster perform the following steps:

    1. As root run the following command ([resource-name] is the name for your iPrint resource, and [node-name] is the server name of the node you are now working on):

      shell> cluster migrate [resource-name] [node-name]

    2. Once the resource has successfully migrated run the following command (still as root):

      shell> /home/papercut/providers/print/linux-[arch]/roottasks

      shell> chown root:iprintgrp /opt/novell/iprint/bin/papercut

    3. In YaST > System > System Services (Runlevel) , disable papercut-event-monitor.

    4. Repeat steps 1-3 on the other nodes in the cluster.

Now you need to integrate the binaries copied in Step 4 - Install the Print Provider into Novell iPrint by adding papercut as the Accounting Autoload Command as discussed in Step 5 - Printer/iPrint Configuration under Quick install: Novell OES Linux (iPrint). Follow that step only and return here once completed.

Step 7 - Test

Mode 1 clustering should now be configured. Perform some test printing on all of this secondary server's printers. Log in to the PaperCut Admin web interface as admin and verify that the printers are now listed under the Printers tab. Simulate a node failover and test again (wait a minute or two between failures for the new node to engage).

Mode 2 - Clustering at all application layers

This section assumes that you have an already installed and working clustered printing environment.

Step 1 - Prerequisites

This guide assumes you have iPrint up and working within an existing cluster. It is assumed the cluster is set up following Novell's documentation at http://www.novell.com/documentation/oes2/iprint_lx/?page=/documentation/oes2/iprint_lx/data/akujhhq.html.

Ensure the size of the shared disk partition and NSS Pools are sufficient for your print manager, driver store, and PaperCut installation. This can mean making it larger than Novell's recommended 20GB if you are intending to use the internal database and store large amounts of data over time.

Step 2 - Create eDirectory user account

The papercut user's home directory denotes the application install location. For the fact that it is the default for LUM enabled users, /home/papercut is recommended, and assumed through the rest of this guide.

  1. In iManager open Users > Create User.

  2. In username, enter papercut.

  3. In Last name enter PaperCut LUM user.

  4. In context select the same eDirectory context as your the iPrint user and iprintgrp group created during your clustered iPrint installation.

  5. Assign the user a secret password during creation, and ensure the user's password is set to not expire. If you are using eDirectory password policies, associate the user with an appropriate password policy after creation.

  6. Select the Create home directory check box.

  7. In Volume, select the volume that is holding your clustered iPrint resource.

  8. In Path, ensure that it reads papercut.

  9. Click OK.

You now need to LUM enable this PaperCut eDirectory user and add it to the already LUM enabled iprintgrp used by the clustered iPrint resource.

  1. In iManager open Linux User Management > Enable Users for Linux .

  2. Select your papercut eDirectory user and continue.

  3. Select An Existing Linux-Enabled Group; then select the iprintgrp created during your clustered iPrint installation; then click Next.

  4. Confirm that Workstation list includes all of the servers in your cluster; then click next.

  5. On your clustered iPrint volume, navigate to the papercut user's NSS home folder (/media/nss/[volume]/papercut) using, for example, Windows Explorer or ConsoleOne and add RWECMF file rights for the eDirectory group iprintgrp created during your clustered iPrint installation. This ensures the iPrint services have access to the installed files.

  6. As root, on each node that will run the iPrint resource, run the following command, replacing [volume] with the volume name of your iPrint resource.

    shell> ln -s /media/nss/[volume]/papercut /home/papercut

    Note:

    The symlink target only exists on the active node and dangles on the other nodes ready for when it becomes the active node.

  7. To confirm all the above stages are working, using any method you want (such as the traditional Novell client for Windows, logged in as an admin user), create a folder or test files inside the papercut folder on your iPrint cluster volume, then on the server holding that resource run:

    shell> su - papercut s

    hell> ls

    You can see the files created on the NSS volume.

Downloading and installing

On the node that is currently hosting the iPrint resource, perform a primary server PaperCut installation as per steps 3 and 4 in Quick install: Novell OES Linux (iPrint).

Important:

Ensure this only done on the node that is currently holding the iPrint/PaperCut resource.

Step 4 - Installing services

  1. As the services are going to be managed by Novell clustering, the services on the physical nodes must be disabled so that they don't start. On the node used to install PaperCut in Step 4 - Install the Print Provider, in YaST > System > System Services (Runlevel) , disable both papercut and papercut-event-monitor.

  2. Installing services and disabling them on all other nodes

    On each other node in the cluster perform the following steps:

    1. As root run the following command ([resource-name] is the name for your iPrint resource, and [node-name] is the server name of the node you are now working on):

      shell> cluster migrate [resource-name] [node-name]

    2. Once the resource has successfully migrated run the following two commands (still as root):

      shell> /home/papercut/server/bin/linux-[arch]/roottasks

      shell> /home/papercut/providers/print/linux-[arch]/roottasks

      shell> chown root:iprintgrp /opt/novell/iprint/bin/papercut

    3. In YaST > System > System Services (Runlevel) , disable both papercut and papercut-event-monitor.

    4. Repeat steps 1-3 on the other nodes in the cluster.

Step 5 - File permissions

On each node in the cluster, including the one used to install PaperCut in Downloading and installing, run the following command as root:

shell> chown root:iprintgrp /opt/novell/iprint/bin/papercut

Step 6 - Configure the nodes to report the virtual server hostname

Note:

This step only has to be completed on which ever node is currently holding the iPrint resource, as the Print Provider config file is on the portable volume and is automatically picked up when the resource moves.

  1. Open the file /home/papercut/providers/print/linux-x64/print-provider.conf in a text editor.

  2. Locate the line starting with ServerName=, uncomment it and add the hostname of the cluster. This tells PaperCut NG to report printers as being hosted on the cluster rather than on the node running the resource.

Step 7 - Update iPrint cluster resource scripts to load/unload the PaperCut Application Server

  1. In iManager > Clusters > Cluster Options open the cluster hosting your iPrint resource.

  2. Click the iPrint resource; then click Scripts.

    This screen displays the load script, which is similar to the following:

    #!/bin/bash

    . /opt/novell/ncs/lib/ncsfuncs

    exit_on_error nss /poolact=IPRINT

    exit_on_error ncpcon mount IPRINT=250

    exit_on_error add_secondary_ipaddress 10.10.55.7

    exit_on_error ncpcon bind --ncpservername=FPCL_IPRINT_SERVER --ipaddress=10.10.55.7

    ignore_error mv /media/nss/IPRINT/var/opt/novell/iprint/iprintgw.lpr /media/nss/IPRINT/var/opt/novell/iprint/iprintgw.lpr.bak

    exit_on_error rcnovell-idsd start

    exit_on_error rcnovell-ipsmd start

    exit 0

  3. Add the following line between exit_on_error rcnovell-ipsmd start and exit 0:

    exit_on_error /etc/init.d/papercut start

    exit_on_error /etc/init.d/papercut-event-monitor start

  4. Click Apply.

  5. Click Unload Script. The unload script looks similar to the following:

    #!/bin/bash

    . /opt/novell/ncs/lib/ncsfuncs

    ignore_error rcnovell-ipsmd stop

    ignore_error rcnovell-idsd stop

    ignore_error ncpcon unbind --ncpservername=FPCL_IPRINT_SERVER --ipaddress=10.10.55.

    ignore_error del_secondary_ipaddress 10.10.55.7

    ignore_error nss /pooldeact=IPRINT

    exit 0

  6. Insert the following two lines between . /opt/novell/ncs/lib/ncsfuncs and ignore_error rcnovell-ipsmd stop:

    ignore_error /etc/init.d/papercut-event-monitor stop

    ignore_error /etc/init.d/papercut stop

  7. Click Apply.

  8. Offline and online the iPrint resource to load it with these new scripts.

Step 8 - Config files

When installing PaperCut in step Downloading and installing the IP address of the physical node is automatically detected and stored in config files to simplify the deployment of remote components. These config files require modification so that the components connect to the cluster / virtual server resource instead.

Update the server IP address and hostname to the cluster / virtual server resource in the following configuration files:

  • /home/papercut/client/win/client.properties

  • /home/papercut/client/mac/PCClient.app/Contents/Resources/config

  • /home/papercut/release/connection.properties

  • client-config.js in each Gadget in /home/papercut/client/win/

  • /home/papercut/client/mac/Widget/PCWidget/config

  • /providers/net/connection.properties

  • /providers/hardware/ricoh/*/connection.properties

As these config files are all on the shared resource, you need to change them only once on the node currently hosting the resource.

Step 9 - Printer / iPrint configuration

Each printer in the cluster that is managed/tracked by PaperCut needs further configuration via iManager.

Follow Step 5 - Printer/iPrint Configuration under Quick install: Novell OES Linux (iPrint) and return here once completed.

Step 10 - Test

Mode 2 clustering should now be configured. Perform some test printing on all of this secondary server's printers. Log in to the PaperCut Admin web interface as admin and verify that the printers are now listed under the Printers tab. Simulate a node failover and test again (wait a minute or two between failures for the new node to engage).

Step 11 - Sharing User Client software

As the clustered solution uses NSS, the client folder is already available as an NCP share at \\[cluster-virtual-server]\[volume-name]\papercut\client. Users should be able to access this folder once they are given file rights. Alternatively, consider making these files available via an alternate share/path/location.


Comments

Share your findings and experience with other PaperCut users. Feel free to add comments and suggestions about this Knowledge Base article. Please don't use this for support requests.