<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>techslaves.org &#187; backup</title>
	<atom:link href="http://techslaves.org/tag/backup/feed/" rel="self" type="application/rss+xml" />
	<link>http://techslaves.org</link>
	<description>Owned (and fascinated) by technology!</description>
	<lastBuildDate>Wed, 16 Nov 2011 03:36:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Migration Weekend: Success</title>
		<link>http://techslaves.org/2010/09/08/migration-weekend-success/</link>
		<comments>http://techslaves.org/2010/09/08/migration-weekend-success/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 18:00:50 +0000</pubDate>
		<dc:creator>rthomson</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[iscsi]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tina]]></category>

		<guid isPermaLink="false">http://techslaves.org/?p=80</guid>
		<description><![CDATA[It was a long weekend of watching tape restores and restarting them as necessary but it&#8217;s finally over and everything appears to be mostly hunky dory! I did discovery yet more small misconfigurations and strange behaviour along the way: OpenLDAP&#8217;s syncrepl using &#8220;refereshAndPersist&#8221; wasn&#8217;t working how I expected it to, no new changes were replicating [...]
Related posts:<ol>
<li><a href='http://techslaves.org/2010/09/04/migration-weekend/' rel='bookmark' title='Migration Weekend'>Migration Weekend</a></li>
<li><a href='http://techslaves.org/2010/09/01/when-using-syncrepl/' rel='bookmark' title='When using Syncrepl&#8230;'>When using Syncrepl&#8230;</a></li>
<li><a href='http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/' rel='bookmark' title='Atempo Time Navigator 4.2 Archive Media Selection Tunable'>Atempo Time Navigator 4.2 Archive Media Selection Tunable</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>It was a long weekend of watching tape restores and restarting them as necessary but it&#8217;s finally over and everything appears to be mostly hunky dory!</p>
<p>I did discovery yet more small misconfigurations and strange behaviour along the way:</p>
<ol>
<li>OpenLDAP&#8217;s syncrepl using &#8220;refereshAndPersist&#8221; wasn&#8217;t working how I expected it to, no new changes were replicating to the slave LDAP server! I changed the directive to &#8220;refreshOnly&#8221; and set a 10 minute interval. I made several changes and monitored the slave LDAP server. Changes propagated in about 10 minutes, every time.</li>
<li>Despite iSCSI&#8217;s maturity and the maturity of QLogic&#8217;s HBAs I still noticed strange, unexplained target drop outs. Two HBAs per server, two controllers in the IBM DS3300 and just one target out of four was dropping. At first, I couldn&#8217;t figure out how to properly reconnect the target on a live system so I rebooted. Later, I discovered you can &#8220;disable&#8221; and then &#8220;enable&#8221; the specific target in SANsurfer or iscli, which worked to bring back the dropped target on a live system. Multipath picked up the &#8220;new&#8221; path right away, as expected.</li>
<li>Always remember to leave free physical extents in any LVM Volume Group in which you are taking snapshots of the Logical Volumes. It&#8217;s freakin&#8217; obvious but I forgot and when I went to do snapshot backups, the snapshots were failing. Now I&#8217;m growing some LUNs on the DS3300 so that my VGs have room for snapshots.</li>
</ol>
<p>All in all, a good weekend that was mostly filled with success.</p>
<p>Related posts:<ol>
<li><a href='http://techslaves.org/2010/09/04/migration-weekend/' rel='bookmark' title='Migration Weekend'>Migration Weekend</a></li>
<li><a href='http://techslaves.org/2010/09/01/when-using-syncrepl/' rel='bookmark' title='When using Syncrepl&#8230;'>When using Syncrepl&#8230;</a></li>
<li><a href='http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/' rel='bookmark' title='Atempo Time Navigator 4.2 Archive Media Selection Tunable'>Atempo Time Navigator 4.2 Archive Media Selection Tunable</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://techslaves.org/2010/09/08/migration-weekend-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration Weekend</title>
		<link>http://techslaves.org/2010/09/04/migration-weekend/</link>
		<comments>http://techslaves.org/2010/09/04/migration-weekend/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 00:25:33 +0000</pubDate>
		<dc:creator>rthomson</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[atempo]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[terabyte]]></category>
		<category><![CDATA[tina]]></category>

		<guid isPermaLink="false">http://techslaves.org/?p=78</guid>
		<description><![CDATA[The big data migration is upon me! This weekend we will be migrating about 3TB of data from aging 5 year old servers with internal DAS RAID over to the new infrastructure I&#8217;ve been building over the last two months. Part of my genius plan is to migrate the data using our backup &#38; restore [...]
Related posts:<ol>
<li><a href='http://techslaves.org/2010/09/08/migration-weekend-success/' rel='bookmark' title='Migration Weekend: Success'>Migration Weekend: Success</a></li>
<li><a href='http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/' rel='bookmark' title='Atempo Time Navigator 4.2 Archive Media Selection Tunable'>Atempo Time Navigator 4.2 Archive Media Selection Tunable</a></li>
<li><a href='http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/' rel='bookmark' title='Time Navigator HA Cluster Agent Configuration'>Time Navigator HA Cluster Agent Configuration</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The big data migration is upon me!</p>
<p>This weekend we will be migrating about 3TB of data from aging 5 year old servers with internal DAS RAID over to the new infrastructure I&#8217;ve been building over the last two months. Part of my genius plan is to migrate the data using our backup &amp; restore software. The genius I believe comes from the fact that doing the migration via tape restore will provide a long overdue full test of our capability to restore in the event of catastrophic storage failure. Data migration and restore testing, two birds with one stone.</p>
<p>Wish me luck!</p>
<p>Related posts:<ol>
<li><a href='http://techslaves.org/2010/09/08/migration-weekend-success/' rel='bookmark' title='Migration Weekend: Success'>Migration Weekend: Success</a></li>
<li><a href='http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/' rel='bookmark' title='Atempo Time Navigator 4.2 Archive Media Selection Tunable'>Atempo Time Navigator 4.2 Archive Media Selection Tunable</a></li>
<li><a href='http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/' rel='bookmark' title='Time Navigator HA Cluster Agent Configuration'>Time Navigator HA Cluster Agent Configuration</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://techslaves.org/2010/09/04/migration-weekend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Navigator HA Cluster Agent Configuration</title>
		<link>http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/</link>
		<comments>http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 22:40:53 +0000</pubDate>
		<dc:creator>rthomson</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[atempo]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tina]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://techslaves.org/?p=68</guid>
		<description><![CDATA[I&#8217;ve been wanting to post about a configuration that allows for seamless file-level backup of storage attached to an active/passive high availability cluster in an uninterrupted fashion using Atempo&#8217;s Time Navigator and I&#8217;m finally going to do it. The Problem The initial difficulty lies in the requirement that the data must be consistently backed up [...]
Related posts:<ol>
<li><a href='http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/' rel='bookmark' title='Atempo Time Navigator 4.2 Archive Media Selection Tunable'>Atempo Time Navigator 4.2 Archive Media Selection Tunable</a></li>
<li><a href='http://techslaves.org/2010/03/29/nanorcs/' rel='bookmark' title='Nanorcs: Ultrasimplistic Configuration File Revision Control'>Nanorcs: Ultrasimplistic Configuration File Revision Control</a></li>
<li><a href='http://techslaves.org/2010/09/08/migration-weekend-success/' rel='bookmark' title='Migration Weekend: Success'>Migration Weekend: Success</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting to post about a configuration that allows for seamless file-level backup of storage attached to an active/passive high availability cluster in an uninterrupted fashion using Atempo&#8217;s Time Navigator and I&#8217;m finally going to do it.</p>
<h3>The Problem</h3>
<p>The initial difficulty lies in the requirement that the data must be consistently backed up at every interval, no matter which cluster node is currently the active node with the backend storage mounted. To do this, an agent is required to be configured as a cluster resource in order to &#8220;follow&#8221; the mounting/exporting of the storage to any cluster node. So in order to accomplish this,  N + 1 tina agents are required. That is, if you have two cluster nodes, you need three agents to successfully backup each node with the local agent and the storage, as it floats about the cluster nodes depending on failure or migration events.</p>
<p>Luckily for me, the good people at Atempo have engineered the agent in such a way that multiple agents can be ran on a single node, each binding to it&#8217;s own IP address and each individually controlled via it&#8217;s own init script. Of course, we need to make some file edits to make all this happen and that&#8217;s what I&#8217;m going share!</p>
<p><span id="more-68"></span></p>
<h3>System Configuration</h3>
<p>This configuration is based on CentOS 5.x and Time Navigator 4.2 but should the concepts should be mostly portable to other popular Linux or UNIX distributions. The underlying cluster software used for the majority of my experience with this configuration is Heartbeat 2.1.3, right before the Pacemaker split but has also been more recently tested on Pacemaker 1.0 / Heartbeat 3.0.x. DRBD is used to provide the active/passive cluster-aware state and configuration information to where I&#8217;ve installed the Atempo Time Navigator agent but it is possible to install a second agent on each cluster node and configure it identically but this just seems like more work. DRBD does a great job of making sure the latest cluster-aware tina agent is consistently configured and available on the active cluster node, no matter which node that actually is.</p>
<p>For the purpose of this post, I&#8217;m going to assume you already have a working Heartbeat/Pacemaker/DRBD configuration up and running with proper STONITH and all that good jazz. Maybe some other time.</p>
<h3>Installing and Configuring the Agent on DRBD</h3>
<p>The first thing that needs to be done is the tina agent must be installed to a filesystem hosted on DRBD. I generally just SSH around the Linux-X64.tar or Linux-X86.tar Time Navigator installation archive and then decompress and run the install script.</p>
<p>Assuming the dedicated (to this agent resource) DRBD filesystem is mounted as <em>/cluster/tina</em> on the active cluster node:</p>
<pre>$ cd /cluster/tina
$ scp user@remote.fqdn:/path/to/Linux-X86.tar ./
$ tar -xf Linux-X86.tar
$ cd Linux-X86
$ ./install.sh</pre>
<p>This will bring up the GUI installer. Alternatively use the batch install method, whatever works for you.</p>
<p>Set <em>/cluster/tina </em>as the installation directory and otherwise proceed normally as per site configuration. Unique ports do not need to be used for the second cluster agent as this configuration bind to a floating cluster resource IP address while the local agent binds to (one of) the servers &#8220;real&#8221; IP address(es).</p>
<p>Once installed, there is one important edit to make in the tina agent environment configuration scripts named <em>.tina.sh (sh/bash) </em>and <em>.tina.csh (csh/tcsh) </em>located in the installation directory (<em>/cluster/tina</em>). The key change to make in the relevant script<em> </em>is to modify the value where the $<em>TINA</em> environment variable is being set. In <em>.tina.sh</em> that would be changing the line:</p>
<pre>TINA=tina</pre>
<p>to instead read something like this:</p>
<pre>TINA=tina_ha</pre>
<p>where <em>tina_ha</em> is a unique identifier for this instance of the agent. Basically, it needs to be anything BUT <em>tina</em>. This is one of two key components that had me tricked for a while. I had first tried modifying the $<em>TINA_SERVICE_NAME</em> environment variable but that was a giant red herring because uniquely setting that variable to something other than <em>tina</em> does not produce the desired effect, despite what the looking through the tina environment scripts and init scripts might have you believe.</p>
<p>The second thing we must do is to create an LSB-compliant init script for the cluster-aware tina agent. The LSB compliance is very important to ensure the cluster can manage the resource properly. If any return codes are out of the LSB spec, the cluster will behave erratically and unpredictably when dealing with starting, stopping and monitoring the tina agent.</p>
<p>Since the installation creates a good init script for us, we can copy that script with a new name and edit it.</p>
<pre>$ cp /etc/init.d/tina.tina /etc/init.d/tina.tina_ha
$ nano /etc/init.d/tina.tina_ha</pre>
<p>First, replace every instance of the path to the local agent&#8217;s tina install path with that of the cluster agent&#8217;s installation path. A simple search (Ctrl-W) then replace (Cntrl-R) in nano should suffice.</p>
<p>Additionally, we need a small section at the top that will exit the script in case the DRBD filesystem is not mounted. The HA cluster will do resource status checks on all nodes in the cluster and we need the init script to be able to exit with a sane exit code, even if the DRBD filesystem is not accessible (as it is on all passive nodes). Something like this:</p>
<pre>if [ -f /cluster/tina/.tina.sh ] ; then
  . /cluster/tina/.tina.sh &gt; /dev/null 2&gt;&amp;1
else
  echo "Unable to start Time Navigator daemon"
  echo "because the \"/cluster/tina/.tina.sh\" file does not exist"
  retval=3
fi</pre>
<p>In order to make the script LSB compliant, we need to ensure the correct exit status is returned during the correct operations. Instead of pointing out each specific place I had to edit in order for this to happen, I will simply post my entire &#8220;<em>/etc/init.d/tina.tina_ha</em>&#8221; init script:</p>
<pre>#!/bin/sh
# UPDATED BY SETUP - BEGIN
########################################################
#WARNING :
#THIS FILE IS GENERATED AUTOMATICALLY
#AND WILL BE OVERWRITTEN WHEN UPGRADING
#YOUR VERSION OF Time Navigator PRODUCT
########################################################
PATH="$PATH:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
export PATH
if [ "${TINA_HOME:+$TINA_HOME}" != "" ] ; then
	if [ "/cluster/tina" != "$TINA_HOME" ] ; then
		echo "Unable to start Time Navigator daemon for \"/cluster/tina\""
		echo "because the Time Navigator environment is already set by \"$TINA_HOME\""
		retval=3
	fi
fi
if [ -f /cluster/tina/.tina.sh ] ; then
	. /cluster/tina/.tina.sh &gt; /dev/null 2&gt;&amp;1
else
	echo "Unable to start Time Navigator daemon"
	echo "because the \"/cluster/tina/.tina.sh\" file does not exist"
	retval=3
fi
# UPDATED BY SETUP - END
# @(#) $Id: rc.tina.orig,v 1.1.6.10.4.4.2.4 2007/09/20 16:26:50 dle Exp $
#
# Time Navigator startup script
# (C) 1999-2005 - Atempo
# tina_daemon starting...
#

OS_TYPE=`uname -s`

if echo "\c" | grep "c"&gt;/dev/null ; then
	ECHOMODE=Bsd
else
	ECHOMODE=Sys5
fi

ECHONOCR() {
	if [ "$ECHOMODE" = Bsd ] ; then
		echo -n "$*"
	else
		echo "$*\c"
	fi
}

PING() {
    os_type=`uname -s`
    case $os_type in
        HP-UX) result=`ping $1 -n 2 2&gt;/dev/null`; return $?;;
        *) result=`ping -c 2 $1 2&gt;/dev/null`; return $?;;
    esac
}

ISREDHATLIKE=1
# Source function library.
if [ -f /etc/init.d/functions ] ; then
	. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
	. /etc/rc.d/init.d/functions
else
	ISREDHATLIKE=0
fi

ISSUSE=1
if [ -f /etc/rc.status ] ; then
	. /etc/rc.status
else
	ISSUSE=0
fi

RCStart()
{
	if [ -x ${TINA_HOME}/Bin/ndmpd ] ; then
		echo "Starting NDMP Data Server..."
		${TINA_HOME}/Bin/ndmpd
	elif [ -x ${TINA_HOME}/Bin/tina_nts ] ; then
		echo "Starting NDMP Tape Server..."
		${TINA_HOME}/Bin/tina_nts
	fi

	TINA_DAEMON=$TINA_HOME/Bin/tina_daemon
	if [ -x "$TINA_DAEMON" ]; then
		ECHONOCR "Starting Time Navigator ($TINA_SERVICE_NAME)..."
		if [ -d /var/lock/subsys ] ; then
			touch /var/lock/subsys/tina.$TINA_SERVICE_NAME
		fi
		i=1
		while [ $i -le 60 ] ; do
			if [ $OS_TYPE = "Darwin" ] ; then
				echo `date` "Trying to start tina_daemon ($TINA_SERVICE_NAME) daemon" &gt;&gt; /var/log/system.log
			fi
			echo `date` "Trying to start tina_daemon ($TINA_SERVICE_NAME) daemon $i" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
			hostname=`hostname 2&gt;/dev/null`
			if [ ! -z "$hostname" ] ; then
				echo `date` "Trying to start tina_daemon ($TINA_SERVICE_NAME) daemon: hostname $hostname is defined" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
				PING $hostname
				status=$?
				if [ $status -eq 0 ] ; then
					echo `date` "Trying to start tina_daemon ($TINA_SERVICE_NAME) daemon: ping $hostname is ok" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
					$TINA_DAEMON
					sleep 2
					RCStatus no_mess
					if [ ! -z "$is_running" ] ; then
						if [ $OS_TYPE = "Darwin" ] ; then
							echo `date` "tina_daemon ($TINA_SERVICE_NAME) daemon is started" &gt;&gt; /var/log/system.log
						fi
						echo `date` "tina_daemon ($TINA_SERVICE_NAME) daemon is started" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
						break
					else
						echo `date` "tina_daemon ($TINA_SERVICE_NAME) daemon is not started" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
					fi
				else
					echo `date` "Trying to start tina_daemon ($TINA_SERVICE_NAME) daemon: ping $hostname is ko" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
				fi
			else
				echo `date` "Trying to start tina_daemon ($TINA_SERVICE_NAME) daemon: hostname is not defined" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
			fi
			sleep 5
			i=`expr $i + 1`
		done

		if [ $ISREDHATLIKE -eq 1 ]; then
			echo_success
			echo
		elif [ $ISSUSE -eq 1 ]; then
			rc_status -v
		else
			echo
		fi

		# Start ACSLS daemons (mini_el and ssi)
		if [ -d "$TINA_HOME/Vtl" ] ; then
			for VL_path in $TINA_HOME/Vtl/*
			do
				[ ! -d $VL_path ] &amp;&amp; continue
				VL_name=`basename $VL_path`
				if [ $VL_name = "Install" -o $VL_name = "Bin" -o $VL_name = "Log" -o $VL_name = "Tmp" ] ; then
					continue
				fi

				# If there is no tina_stk.conf, give up
				[ ! -f "$VL_path/tina_stk.conf" ] &amp;&amp; continue

				[ ! -x "$TINA_HOME/Vtl/Bin/ACSLS/start.sh" ] &amp;&amp; continue

				ECHONOCR "Starting ACSLS client daemon for $VL_name virtual library ..."
				$TINA_HOME/Vtl/Bin/ACSLS/start.sh $VL_name
				echo
			done
		fi
	elif [ ! -f ${TINA_HOME}/.ndmp.sh ] ; then
		if [ $ISREDHATLIKE -eq 1 ]; then
			ECHONOCR "Starting Time Navigator (${TINA_SERVICE_NAME})..."
			echo_failure
			echo
		elif [ $ISSUSE -eq 1 ]; then
			rc_failed 1
		else
			echo
		fi
	fi
}

RCStop()
{
	#Stop ndmp daemon
	NDMPDAEMON=""
	if [ -x ${TINA_HOME}/Bin/ndmpd ] ; then
		NDMPDAEMON="ndmpd"
	elif [ -x ${TINA_HOME}/Bin/tina_nts ] ; then
		NDMPDAEMON="tina_nts"
	fi
	if [ ! -z "$NDMPDAEMON" ] ; then
		file="/var/tmp/$NDMPDAEMON.pid"
		if [ -f $file ] ; then
			if [ "$NDMPDAEMON" = ndmpd ] ; then
				echo "Shutting down NDMP Data Server..."
			elif [ "$NDMPDAEMON" = tina_nts ] ; then
				echo "Shutting down NDMP Tape Server..."
			fi
			kill `cat $file`
		fi
	fi

	#Stop Time Navigator daemon
	if [ -x ${TINA_HOME}/Bin/tina_stop ]; then
		if [ -d /var/lock/subsys ] ; then
			rm -f /var/lock/subsys/tina.$TINA_SERVICE_NAME
		fi
		ECHONOCR "Shutting down Time Navigator ($TINA_SERVICE_NAME)..."
		if [ $OS_TYPE = "Darwin" ] ; then
			echo `date` "Stopping tina_daemon ($TINA_SERVICE_NAME) daemon" &gt;&gt; /var/log/system.log
		fi
		echo `date` "Stopping tina_daemon ($TINA_SERVICE_NAME) daemon" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
		$TINA_HOME/Bin/tina_stop &gt; /dev/null
		retval=0
		if [ $ISREDHATLIKE -eq 1 ]; then
			echo_success
			echo
		elif [ $ISSUSE -eq 1 ]; then
			rc_status -v
		else
			echo
		fi
	elif [ ! -f ${TINA_HOME}/.ndmp.sh ] ; then
		if [ $ISREDHATLIKE -eq 1 ]; then
			echo "Shutting down Time Navigator ($TINA_SERVICE_NAME)..."
			echo_failure
			echo
		elif [ $ISSUSE -eq 1 ]; then
			rc_failed 1
		else
			echo
		fi
	fi
}

RCStatus()
{
	## Check status with checkproc(8), if process is running
	## checkproc will return with exit status 0.

	# Status has a slightly different for the status command:
	# 0 - service running
	# 1 - service dead, but /var/run/ pid file exists
	# 2 - service dead, but /var/lock/ lock file exists
	# 3 - service not running

	if [ -f $TINA_HOME/Conf/hosts ] ; then
		host_to_ping=`cat $TINA_HOME/Conf/hosts | grep ^localhostname | awk '{print $2}' 2&gt;/dev/null`
		if [ $? != 0 -o -z "$host_to_ping" ] ; then
			host_to_ping="127.0.0.1"
		fi
	else
		host_to_ping="127.0.0.1"
	fi

	is_running=`$TINA_HOME/Bin/tina_ping -host $host_to_ping -language English | grep "is running"`
	if [ $# -eq 0 ] ; then
		ECHONOCR "Checking for Time Navigator ($TINA_SERVICE_NAME): "
		if [ $OS_TYPE = "Darwin" ] ; then
			echo `date` "Checking tina_daemon ($TINA_SERVICE_NAME) daemon" &gt;&gt; /var/log/system.log
		fi
		echo `date` "Checking tina_daemon ($TINA_SERVICE_NAME) daemon" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
		if [ ! -z "$is_running" ] ; then
			echo "tina_daemon is running"
			echo `date` "Checking tina_daemon ($TINA_SERVICE_NAME) daemon: tina_daemon is running" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
			retval=0
		else
			echo "tina_daemon is stopped"
			echo `date` "Checking tina_daemon ($TINA_SERVICE_NAME) daemon: tina_daemon is stopped" &gt;&gt; ${TINA_HOME}/Adm/auto_start.log
                        retval=3
		fi
	fi
}

test "$ISSUSE" -eq 1 &amp;&amp; rc_reset

case "$1" in
start)
	RCStart
	retval=0
	;;

stop)
	RCStop
	retval=0
	;;

start_msg)
	echo "Starting Time Navigator ($TINA_SERVICE_NAME)" ;;

stop_msg)
	echo "Shutting down Time Navigator ($TINA_SERVICE_NAME)" ;;

restart)
	RCStop
	sleep 3
	RCStart ;;

status)
	RCStatus ;;

*)
	echo "usage: /etc/init.d/tina {start|stop|restart|status}" ;;
esac

exit $retval</pre>
<p>One final Time Navigator configuration change must be made. The tina agent &#8220;hosts&#8221; file must be configured to set the &#8220;localhostname&#8221; of our agent to the FQDN of the floating or virtual IP address service so that the agent will only try to bind to that IP address instead of all IP addresses on the system.</p>
<pre>$ cd /cluster/tina/Conf
$ cp hosts.sample hosts
$ nano hosts</pre>
<p>Add a line to the file specifying the &#8220;localhostname&#8221; like so:</p>
<pre>localhostname myserver.company.com</pre>
<p>For this to work properly, you must also set any other tina agents running on the cluster nodes to also have a &#8220;localhostname&#8221; set in their respective &#8220;hosts&#8221; file to prevent other host-based agents from binding to all IP addresses on the host, including the virtual IP address.</p>
<p>That&#8217;s it! The tina service can be added to the HA cluster as an LSB resource agent, grouped with your storage resource agents so it will always be running on the same node as your storage.</p>
<p><strong>Conclusion</strong></p>
<p>Ok, so I rushed the end. Big deal. Sue me. I doubt anyone cares anyways!</p>
<p>Related posts:<ol>
<li><a href='http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/' rel='bookmark' title='Atempo Time Navigator 4.2 Archive Media Selection Tunable'>Atempo Time Navigator 4.2 Archive Media Selection Tunable</a></li>
<li><a href='http://techslaves.org/2010/03/29/nanorcs/' rel='bookmark' title='Nanorcs: Ultrasimplistic Configuration File Revision Control'>Nanorcs: Ultrasimplistic Configuration File Revision Control</a></li>
<li><a href='http://techslaves.org/2010/09/08/migration-weekend-success/' rel='bookmark' title='Migration Weekend: Success'>Migration Weekend: Success</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atempo Time Navigator 4.2 Archive Media Selection Tunable</title>
		<link>http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/</link>
		<comments>http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/#comments</comments>
		<pubDate>Wed, 05 May 2010 17:49:24 +0000</pubDate>
		<dc:creator>rthomson</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[atempo]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tina]]></category>
		<category><![CDATA[vendor]]></category>

		<guid isPermaLink="false">http://techslaves.org/?p=59</guid>
		<description><![CDATA[Just a quick post here to share a non-obvious tunable for Atempo&#8217;s Time Navigator 4.2 regarding archiving and media selection. Before upgrading from 4.1 to 4.2 Time Navigator&#8217;s media selection for archive jobs with standalone drives behaved as expected: If existing partly filled and open cartridges in the associated media pool existed, Time Navigator would [...]
Related posts:<ol>
<li><a href='http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/' rel='bookmark' title='Time Navigator HA Cluster Agent Configuration'>Time Navigator HA Cluster Agent Configuration</a></li>
<li><a href='http://techslaves.org/2010/09/08/migration-weekend-success/' rel='bookmark' title='Migration Weekend: Success'>Migration Weekend: Success</a></li>
<li><a href='http://techslaves.org/2010/09/04/migration-weekend/' rel='bookmark' title='Migration Weekend'>Migration Weekend</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Just a quick post here to share a non-obvious tunable for Atempo&#8217;s Time Navigator 4.2 regarding archiving and media selection.</p>
<p>Before upgrading from 4.1 to 4.2 Time Navigator&#8217;s media selection for archive jobs with standalone drives behaved as expected: If existing partly filled and open cartridges in the associated media pool existed, Time Navigator would request those media be placed in the drives upon the start a new archive operation, effectively only asking for new, unlabeled media to be inserted once the existing media was full.</p>
<p>However, with the upgrade to 4.2 we found that Time Navigator was no longer requesting the existing, partly filled, open cartridges and was instead requesting new, unlabeled media to be inserted into the drives instead! The result of this new behavior was that Time Navigator would use new tapes for every new archive operation, no matter if existing, partly filled and open media was available in the media pool. Basically 4.2&#8242;s default behavior was preventing us from filling any archive media unless the particular archive job would happen to be larger than a single tape.</p>
<p>While I don&#8217;t know why the functionality changed, I do know what tunable to modify in order to make 4.2 behave like 4.1. The tunable is &#8220;<span style="color: #ff0000;">check_external_cart_when_recycling</span>&#8220;. Setting this tunable to &#8220;<span style="color: #ff0000;">Yes</span>&#8221; has restored the 4.1 behavior, allowing us to make full use of all archive media capacity by only requesting new media when all the existing media in the media pool has been filled.</p>
<p>I believe we only faced this problem because we use standalone archive tape drives that do not have an autoloader or robot nor an &#8220;inventory&#8221; of online tape. Each tape must be manually loaded. I suspect that if we had an autoloader for our tape drives, that 4.2 would have made the correct/expected selection of media.</p>
<p>I doubt that anyone else is going to face this problem but it took about 3 weeks with Atempo&#8217;s R&amp;D department to figure out the problem so I figure if posting here can save anyone that amount of time, then I&#8217;ll have done my part!</p>
<p>Related posts:<ol>
<li><a href='http://techslaves.org/2010/08/05/time-navigator-ha-cluster-agent-configuration/' rel='bookmark' title='Time Navigator HA Cluster Agent Configuration'>Time Navigator HA Cluster Agent Configuration</a></li>
<li><a href='http://techslaves.org/2010/09/08/migration-weekend-success/' rel='bookmark' title='Migration Weekend: Success'>Migration Weekend: Success</a></li>
<li><a href='http://techslaves.org/2010/09/04/migration-weekend/' rel='bookmark' title='Migration Weekend'>Migration Weekend</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://techslaves.org/2010/05/05/atempo-time-navigator-4-2-archive-media-selection-tunable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

