Friday, May 05, 2006

GroupWise Migration and Backup with dbCopy

GroupWise Migration and Backup with dbCopy

Problem

This article outlines a strategy to help a business client migrate from Exchange to GroupWise, by providing a reliable backup process for e-mail recovery.

Client Scenario

A business client needs to migrate its e-mail system from Exchange to GroupWise 7.0. The migration path calls for pockets of users to be converted over at a time. Currently, all users reside on a single post office. The client has multiple locations, connected by a high speed WAN link. The majority of the users are connecting using the Web Client.

Client Goals

The basic goal is to create a backup GroupWise server, located in one of the remote buildings, that can be used as a worst-case scenario recovery option. This solution does not provide immediate failover capabilities, similar to installing Groupwise in a cluster. Instead, the goal is to create a system that could be operational in under 15 minutes in the event of major system failure.

This solution needs to provide a directory that can be backed up to tape if the customer desires a removable backup medium. The solution should transfer to the remote server at night, so the WAN line is not saturated with additional traffic. Also, due to the potential size of the post office, only incremental backups should be performed.

Solution

The selected solution creates a temporary backup on the local system and then transfer this at night to the remote system. This solution does introduce a large additional storage requirement, but the cost of additional storage is minor in terms of projected value.

Novell distributes a utility that makes this type of backup possible. The utility is called dbcopy, and it is distributed with the GroupWise software. Using this software, you can back up from a specific date forwards. This meets the customer request that the backup be only incremental.

Also, the backup can run without having to shutdown the post office to free up running files. Nightly, prior to syncing to the remote system, dbcopy will copy out the domain directory and the post office directory to a temporary backup location. Once this copy is complete, the temporary backup location along with the configuration and application directories can be synced with the remote server. Rsync is used in order to minimize the amount of transfer time required.

The script shown below automates this process, which was then scheduled to run through CRON. By using this routine, the remote server has an install of GroupWise that stays synchronized with the primary server. In the event of a failure, the remote server can simply take over the IP address of the primary server, or the objects in eDirectory can be changed to point to the new IP address. The client who requested this functionality was able to recover from a mock disaster in 13 minutes, which included time for testing functionality.

Note: This solution was tested in the following environment:

Primary Server - SLES 9; eDirectory 8.7.3 (Master); GroupWise 7 POA, MTA, GWIA, WebAccess

Secondary Server - SLES 9; eDirectory 8.7.3 (Read/Write); GroupWise 7 POA, MTA, GWIA, WebAccess

Example Script

#!/bin/sh

# How many days to backup?
bk_date=`date --date='7 days ago' +%m-%d-%Y`

# Some environment variables
db_loc=/opt/novell/groupwise/agents/bin/dbcopy
rs_loc=/usr/bin/rsync
rs_key=/etc/ssh/key_pair/rsync-key

# loc = current location on server
# temp = temporary holding location on server
# dst = remote server and directory
domain_loc=/opt/novell/groupwise/Parma/
domain_temp=/home/backup/parma/
domain_dst=gwmail1:/opt/novell/groupwise/Parma/

po_loc=/opt/novell/groupwise/PO1/
po_temp=/home/backup/po1/
po_dst=gwmail1:/opt/novell/groupwise/PO1/

agents_loc=/opt/novell/groupwise/agents/
agents_dst=gwmail1:/opt/novell/groupwise/agents/

etc_loc=/etc/opt/novell/
etc_dst=gwmail1:/etc/opt/novell/

webacc_loc=/opt/novell/groupwise/webaccess/
webacc_dst=gwmail1:/opt/novell/groupwise/webaccess/

httpd_loc=/opt/novell/httpd/
httpd_dst=gwmail1:/opt/novell/httpd/

tomcat4_loc=/opt/novell/tomcat4/
tomcat4_dst=gwmail1:/opt/novell/tomcat4/

# First, remove the old log files from the temp dirs
rm $po_temp*GWBK*
rm $domain_temp*GWBK*

# Now, use the Novell utils to backup the post office and domain
$db_loc -I $bk_date $po_loc $po_temp > /dev/null
$db_loc -I $bk_date $domain_loc $domain_temp > /dev/null

# Use rsync to perform the transfer to other server
$rs_loc -e "ssh -i $rs_key" -avz --delete $po_temp $po_dst
$rs_loc -e "ssh -i $rs_key" -avz --delete $domain_temp $domain_dst
$rs_loc -e "ssh -i $rs_key" -avz --delete $agents_loc $agents_dst
$rs_loc -e "ssh -i $rs_key" -avz --delete $etc_loc $etc_dst
$rs_loc -e "ssh -i $rs_key" -avz --delete $webacc_loc $webacc_dst
$rs_loc -e "ssh -i $rs_key" -avz --delete $httpd_loc $httpd_dst
$rs_loc -e "ssh -i $rs_key" -avz --delete $tomcat4_loc $tomcat4_dst

Hopefully I got the time to test out this solution.

0 Comments:

Post a Comment

<< Home