White Paper Fabasoft Folio 2015 Update Rollup 2
Copyright Fabasoft R&D GmbH, Linz, Austria, 2015. All rights reserved. All hardware and software names used are registered trade names and/or registered trademarks of the respective manufacturers. No rights to our software or our professional services, or results of our professional services, or other protected rights can be based on the handing over and presentation of these documents. 2
Contents 1 Introduction 4 2 Software Requirements 4 3 Prerequisites 4 4 5 4.1 Additional Cluster Prerequisites 5 4.1.1 Schema Modification 5 4.1.2 Cluster Configuration Synchronization 6 4.2 SSH Configuration 6 4.3 Enable 7 4.4 Disable 9 5 Fabasoft Folio Distributed Transaction Manager 10 6 Updating a Clustered Fabasoft Folio Domain 10 3
1 Introduction This white paper describes how to install and configure Fabasoft Folio Backend Services to run on a failover cluster with two nodes utilizing Red Hat Cluster Suite. 2 Software Requirements System environment: All information contained in this document implicitly assumes a Linux environment. Supported platforms: For detailed information on supported operating systems and software see the software product information on the Fabasoft distribution media. Descriptions in this document are based on the following software: Red Hat Enterprise Linux 6.6 (x64) Red Hat Cluster Suite for Red Hat Enterprise Linux 6.6 (x64) 3 Prerequisites Both nodes must be part of a failover cluster implemented with the Red Hat Cluster Suite. Additional information can be found here: Red Hat Cluster Suite http://docs.redhat.com/docs/en- US/Red_Hat_Enterprise_Linux/6/html/Cluster_Administration/index.html First Node It is assumed that a Linux server with a Fabasoft Folio Domain is already set up as described in the white paper Installation of Fabasoft Folio Services on Linux. The file contents of the Fabasoft Folio MMC Services have to be installed on shared disks which are used as cluster resources. Second Node The basis for the second node is a Linux server prepared for Fabasoft Folio Backend Services as described in the white paper Fabasoft on Red Hat Linux Preparation Guide, respectively. To install the needed RPMs on the second cluster node you can use the Fabasoft Folio Setup. During setup, do not select Fabasoft Folio Domain to perform a binary-only installation of selected Fabasoft Folio services. During domain creation, a so-called userlogname corresponding to the local user fscsrv on the first node was added to the Fabasoft Folio Domain user Administrator, System so that the Fabasoft Folio Loader can login to the domain. To fully enable management functionality on the second node, a userlogname must be added as follows: su - fscsrv /opt/fabasoft/sbin/loader -userlogname ":<hostname-node2>:\fscsrv" Cluster Services/Cluster Resources For each cluster node a cluster service/group has to be configured. Each cluster service/group must contain a virtual IP address and one or more shared disks as cluster resources. The virtual IP addresses have to be in the same subnet as the physical addresses. The daemon luci can be used to configure the cluster before enabling cluster support for Fabasoft Folio. 4
Example: Configured Cluster in Red Hat Enterprise Linux: The shared disks are used to store the file contents of the Fabasoft Folio MMC Services. The cluster services/groups with all configured cluster resources are moved between the cluster nodes during failover. Note: All cluster services/groups must run on the first cluster node when enabling cluster support for the Fabasoft Folio Backend Services. 4 4.1 Additional Cluster Prerequisites 4.1.1 Schema Modification Before enabling cluster support for Fabasoft Folio, the Red Hat Cluster Suite schema file should be updated to ensure that configuration elements added to the cluster configuration that normally resides in /etc/cluster/cluster.conf can still be validated and interpreted. Add the following elements to /usr/share/cluster/cluster.rng below the root element grammar : <define name="fabasoft-components"> <element name="fabasoft-components" rha:description="fabasoft Folio Failover Instance"> <choice> <group> <!-- rgmanager specific stuff --> <attribute name="ref" rha:description="reference to existing fabasoft-components resource in the resources section."/> </group> 5
<group> <attribute name="name" rha:description="name"/> <attribute name="instances" rha:description="fabasoft Folio Service Instances List"/> </group> </choice> <optional> <attribute name=" independent_subtree" rha:description="treat this and all children as an independent subtree."/> </optional> <optional> <attribute name=" enforce_timeouts" rha:description="consider a timeout for operations as fatal."/> </optional> <optional> <attribute name=" max_failures" rha:description="maximum number of failures before returning a failure to a status check."/> </optional> <optional> <attribute name=" failure_expire_time" rha:description="amount of time before a failure is forgotten."/> </optional> <optional> <ref name="children"/> </optional> </element> </define> Additionally, register the new element by adding the following element below <define name="children"><zeroormore><choice>: <ref name="fabasoft-components" /> The following command can be used to validate the cluster configuration against the modified schema: xmllint --relaxng /usr/share/cluster/cluster.rng /etc/cluster/cluster.conf 4.1.2 Cluster Configuration Synchronization As part of Enable and Disable, Fabasoft Folio automatically synchronizes the cluster configuration. For synchronization to work, ricci must be fully configured and running. As part of the configuration process, a password is assigned to the local user ricci. To enable automatic synchronization, increment the cluster configuration version by editing the configuration file and initiate synchronization using the following command executed on each node: cman_tool version -r The command will prompt for the ricci password. 4.2 SSH Configuration Create a ssh key on every node for the users root and fscsrv. Copy the generated public keys onto the home directory of the fscsrv user on the other node. If you use separate host names for the cluster nodes in the cluster configuration (to redirect heartbeat communication over a dedicated network connection), you have to use these host names to create the ssh keys. On the first node execute following commands as root (create keys): su - fscsrv ssh-keygen -t dsa (press Enter for all questions public key for fscsrv) cp ~/.ssh/id_dsa.pub /tmp/authorized_keys exit ssh-keygen -t dsa (press Enter for all questions public key for root) cat ~/.ssh/id_dsa.pub >> /tmp/authorized_keys 6
On the second node execute following commands as root (create keys): su - fscsrv ssh-keygen -t dsa (press Enter for all questions public key for fscsrv) cp ~/.ssh/id_dsa.pub /tmp/authorized_keys exit ssh-keygen -t dsa (press Enter for all questions public key for root) cat ~/.ssh/id_dsa.pub >> /tmp/authorized_keys On the first node execute following commands as root (copy and remove keys): scp /tmp/authorized_keys <node2>:/home/fscsrv/.ssh/authorized_keys rm /tmp/authorized_keys On the second node execute following commands as root (copy and remove keys): scp /tmp/authorized_keys <node1>:/home/fscsrv/.ssh/authorized_keys rm /tmp/authorized_keys On the first node execute following commands as root (change permissions for keys): chown fscsrv.fsc /home/fscsrv/.ssh/authorized_keys On the second node execute following commands as root (change permissions for keys): chown fscsrv.fsc /home/fscsrv/.ssh/authorized_keys Make sure that the keys are working correctly. You must be able to execute the following command as user root and fscsrv without need to enter a password. ssh fscsrv@<node2> date 4.3 Enable The cluster support for the Fabasoft Folio Backend Services can be enabled using the Fabasoft Folio Web Management. Select all Fabasoft Folio Backend Services which will run on the first cluster service (a selection of at least one COO service and one MMC service is required). In the context menu click Enable. 7
Choose the cluster service in which the Fabasoft Folio Backend Services should be configured. After displaying the summary, the Fabasoft Folio Domain information and the Fabasoft Folio Backend Services will be replicated to the second cluster node. Additionally the cluster resources for the Fabasoft Folio Backend Services will be created and the Fabasoft Folio Backend Services will be configured to listen on the virtual IP address of the selected cluster service/group. Stop the cluster service/group on the first cluster node. Configure the created cluster resources for the Fabasoft Folio Backend Services in the desired order inside the cluster service/group. Start the cluster service/group on the first cluster node. 8
Verify the status of the Fabasoft Folio Backend Services using the Fabasoft Folio Web Management. All Fabasoft Folio Backend Services should be up and running. The before selected Fabasoft Folio Backend Services should be marked as clustered. Repeat these steps for all Fabasoft Folio Backend Services that should run on the second cluster service/group. Test relocating the cluster services/groups on the second cluster node. Note: It s not possible to configure Red Hat Cluster Suite with system-config-cluster, after enabling Fabasoft Folio Backend Services as cluster resources. 4.4 Disable To disable the cluster support, perform following steps: Move all cluster services/groups to the first node. Select all Fabasoft Folio Backend Services. In the context menu click Disable. Choose the host name where the Fabasoft Folio Backend Services should keep running and click Next. 9
5 Fabasoft Folio Distributed Transaction Manager Using a cluster, the log files for each Fabasoft Folio COO Service have to be available on an appropriate cluster resource (Fabasoft Folio Distributed Transaction Manager log files may exist only once). When changing the path to the log files of the Fabasoft Folio Distributed Transaction Manager, the existing logs files have to be moved to the new directory in order to ensure that all transactions are handled correctly. By default the log files are stored in this directory: /var/opt/fabasoft/lib/dtm/fscdtm_cooservice_x_y_z.dtm To change the location a registry key has to be defined: /etc/fabasoft/settings/machine/software/fabasoft/fabasoft Folio Server/Domain x.x/service x/datasources/default/fscdtm_txlog_path To apply changes the modified Fabasoft Folio COO Service has to be restarted. 6 Updating a Clustered Fabasoft Folio Domain To update a clustered Fabasoft Folio Domain you have to complete the following steps: Move all cluster services/groups to the first node. Update the Fabasoft Folio Services using the Fabasoft Folio Setup with the Update existing Fabasoft services only option on the second node. Update the Fabasoft Folio Services and domain using the Fabasoft Folio Setup with the Update existing Fabasoft services and products on the first node. Relocate the cluster services/groups to the cluster nodes. 10