WOW!! I always wondered if it wasn't possible to do this without the failover. Thanks!
> We deal with enough Windows clusters that we have developed a batch file > to > run on each potential failover host of a vnode within the cluster, to get > the services set up (you still need to manually configure the cluster > services that will control the local Windows services - I haven't scripted > that part of it because we use both Windows clustering and Veritas > clustering, and I haven't had the time to devote to it). > > This batch file allows you to set up the services on the failover > platforms > that are not the current host of the virtual node, WITHOUT failing them > over! > > You do still need to plan ahead - you'll need to know what the cluster > name > is, whether or not you want all of the drives in the vnode backed up under > one TSM node name, which drives are in the vnode, and which HTTP port the > client acceptor will listen on (keeping in mind that every vnode in the > cluster needs to use a unique HTTP port). It's assumed that the name of > the > vnode is the name of the TSM node, unless individual drives in the vnode > are so big they need individual TSM nodes to handle them. > > Copy the following into a batch file (we call ours tsmclsvc.bat), make > appropriate modifications, and then just copy the batch file onto each > cluster server on which you need to set up clustered services. > Double-click, and away you go. Remember, it needs to be run for EACH > vnode, > on EACH physical host that vnode can fail over to. So if you have three > vnodes and two physical servers in your cluster, you'll need to run it six > times - three on each physical server. > > @echo off > echo. > echo. > echo Is this physical host machine currently in control of the vnode and > its drives? > echo i.e. Can you access the vnode's clustered drive from here at the > moment? > echo. > set /p HOST=? > echo. > if (%HOST%) == () goto NOHOST > > echo. > echo Enter the name of the virtual server (all caps). > echo. > set /p NODENAME=Nodename: > echo. > if (%NODENAME%) == () goto NONODE > > echo. > echo Enter the name of the cluster. > echo. > set /p CLUSTERNAME=Clustername: > echo. > if (%CLUSTERNAME%) == () goto NOCLUST > > echo. > echo Enter the drive letter in the virtual server > echo where the dsm.opt file goes (no colon) (e.g. G). > echo. > set /p DRIVE=Drive: > echo. > if (%DRIVE%) == () goto NODRIVE > > echo. > echo If there are other drives in this vnode, BUT they have so much data > that > echo you need multiple TSM nodes to back them up, type "yes" at the > prompt. > echo This will change the TSM node name to "%NODENAME%-%DRIVE%", and > echo this TSM node will ONLY back up the one drive you specified above. > echo. > echo If the vnode only has a single drive, or you want to back up all > echo of its drives under one TSM node, just press Enter. > echo. > echo Most of the time you should just press Enter here. > echo. > set /p RESTRICT=Restrict? > if (%RESTRICT%) == () goto OTHERS > set NODENAME=%NODENAME%-%DRIVE% > goto MORE > > :OTHERS > > echo. > echo Enter any other drive letters included in this virtual server (not > the > whole cluster), WITH colons. > echo Separate multiple drives with spaces (e.g. H: J: K:). > echo All of these drives will back up under the same TSM node, and should > fail over together. > echo Just hit the Enter key for no additional drives. > echo. > set /p OTHERDRIVES=OtherDrives: > echo. > goto :MORE > > :MORE > > echo. > echo Enter the HTTPPORT that this node will use (e.g. 1591). > echo Remember, no two virtual servers in a cluster can use the same port. > echo. > set /p HTTPPORT=HTTPPORT: > echo. > if (%HTTPPORT%) == () goto NOHTTPPORT > > echo. > echo Enter the TSM server that will back up this node. > echo Use tsm1, tsm2, tsm3, ... > echo (Update the above line to correspond with the definitions listed in > the script below) > echo. > set /p SERVERNAME=Servername: > if (%SERVERNAME%) == () goto NOSERVER > > rem > ******************************************************************************* > rem %1 = SERVERNAME > rem %2 = CLUSTERNAME > rem %3 = Shared DSM.OPT location > rem %4 = HTTPPORT > rem > ******************************************************************************* > > if (%HTTPPORT%) == (1591) set TCPCLPORT=1571 > if (%HTTPPORT%) == (1592) set TCPCLPORT=1572 > if (%HTTPPORT%) == (1593) set TCPCLPORT=1573 > if (%HTTPPORT%) == (1594) set TCPCLPORT=1574 > if (%HTTPPORT%) == (1595) set TCPCLPORT=1575 > if (%HTTPPORT%) == (1596) set TCPCLPORT=1576 > if (%HTTPPORT%) == (1597) set TCPCLPORT=1577 > if (%HTTPPORT%) == (1598) set TCPCLPORT=1578 > if (%HTTPPORT%) == (1599) set TCPCLPORT=1579 > > if (%SERVERNAME%) == (tsm1) set Svr=TSMSRV1 > if (%SERVERNAME%) == (tsm1) set SVRADDR=TSMHOST1.your.company.com > if (%SERVERNAME%) == (tsm1) set PORT=1500 > if (%SERVERNAME%) == (tsm1) goto NEXT > if (%SERVERNAME%) == (tsm2) set Svr=TSMSRV2 > if (%SERVERNAME%) == (tsm2) set SVRADDR=TSMHOST2.your.company.com > if (%SERVERNAME%) == (tsm2) set PORT=1500 > if (%SERVERNAME%) == (tsm2) goto NEXT > if (%SERVERNAME%) == (tsm3) set Svr=TSMSRV3 > if (%SERVERNAME%) == (tsm3) set SVRADDR=TSMHOST2.your.company.com > if (%SERVERNAME%) == (tsm3) set PORT=1505 > if (%SERVERNAME%) == (tsm3) goto NEXT > rem Modify and expand the above list to fit your environment > > goto WRONGSRVR > > :NEXT > > rem > ******************************************************************************* > rem Make sure we are in the right directory > rem > ******************************************************************************* > rem if NOT exist .\DSMCUTIL.EXE GOTO WRONGDIR > > rem > ******************************************************************************* > rem Determine where the TSM client is installed > rem > ******************************************************************************* > if exist C:\PROGRA~1\TIVOLI\TSM\BACLIENT\DSMCUTIL.EXE set > TSMDIR=C:\PROGRA~1\TIVOLI\TSM\BACLIENT > if exist C:\PROGRA~1\TIVOLI\TSM\BACLIENT\DSMCUTIL.EXE GOTO CHECK > if exist C:\TSM\BACLIENT\DSMCUTIL.EXE set TSMDIR=C:\TSM\BACLIENT > if exist C:\TSM\BACLIENT\DSMCUTIL.EXE GOTO CHECK > > GOTO NOINSTALL > > :CHECK > > if (%HOST%) == (Y) goto MAIN1A > if (%HOST%) == (Yes) goto MAIN1A > if (%HOST%) == (y) goto MAIN1A > if (%HOST%) == (yes) goto MAIN1A > if (%HOST%) == (YES) goto MAIN1A > > if (%HOST%) == (N) goto MAIN1B > if (%HOST%) == (No) goto MAIN1B > if (%HOST%) == (n) goto MAIN1B > if (%HOST%) == (no) goto MAIN1B > if (%HOST%) == (NO) goto MAIN1B > > goto TRYAGAIN > > rem > ******************************************************************************* > rem Main process: current server is host of vnode > rem > ******************************************************************************* > > :MAIN1A > > if exist %DRIVE%:\TSM\DSM.OPT GOTO OPTEXIST > if not exist %DRIVE%:\TSM md %DRIVE%:\TSM > > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo ******************************************************** >> > %DRIVE%:\TSM\DSM.OPT > echo * IBM Tivoli Storage Manager >> > %DRIVE%:\TSM\DSM.OPT > echo * Option file generated by tsmclsvX.bat >> > %DRIVE%:\TSM\DSM.OPT > echo ******************************************************** >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * Communication Method >> > %DRIVE%:\TSM\DSM.OPT > echo COMMMETHOD TCPip >> > %DRIVE%:\TSM\DSM.OPT > echo TCPSERVERADDRESS %SVRADDR% >> > %DRIVE%:\TSM\DSM.OPT > echo TCPPORT %PORT% >> > %DRIVE%:\TSM\DSM.OPT > echo TCPCLIENTPORT %TCPCLPORT% >> > %DRIVE%:\TSM\DSM.OPT > echo HTTPPORT %HTTPPORT% >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * Client Node >> > %DRIVE%:\TSM\DSM.OPT > echo NODENAME %NODENAME% >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * Access and Performance Options >> > %DRIVE%:\TSM\DSM.OPT > echo MANAGEDSERVICES WEBCLIENT SCHEDULE >> > %DRIVE%:\TSM\DSM.OPT > echo passwordaccess generate >> > %DRIVE%:\TSM\DSM.OPT > echo tcpwindowsize 63 >> > %DRIVE%:\TSM\DSM.OPT > echo tcpbuffsize 32 >> > %DRIVE%:\TSM\DSM.OPT > echo txnbytelimit 25600 >> > %DRIVE%:\TSM\DSM.OPT > echo largecommbuffers no >> > %DRIVE%:\TSM\DSM.OPT > echo memoryefficient no >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * Cluster node >> > %DRIVE%:\TSM\DSM.OPT > echo clusternode yes >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * Log File Retention >> > %DRIVE%:\TSM\DSM.OPT > echo errorlogr 10 d >> > %DRIVE%:\TSM\DSM.OPT > echo schedlogr 10 d >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * Domain Statement >> > %DRIVE%:\TSM\DSM.OPT > echo domain %DRIVE%: %OTHERDRIVES% >> > %DRIVE%:\TSM\DSM.OPT > echo. >> > %DRIVE%:\TSM\DSM.OPT > echo * log files >> %DRIVE%:\TSM\DSM.OPT > echo schedlogname %DRIVE%:\tsm\dsmsched.log >> > %DRIVE%:\TSM\DSM.OPT > echo errorlogname %DRIVE%:\tsm\dsmerror.log >> > %DRIVE%:\TSM\DSM.OPT > > echo. > echo Option file for %NODENAME% is configured. > > c: > cd %TSMDIR% > > .\dsmcutil.exe install /name:"TSM Scheduler: %NODENAME%" > /clientdir:"%TSMDIR%" /optfile:%DRIVE%:\tsm\dsm.opt /node:%NODENAME% > /commmethod:tcpip /commserver:%SVRADDR% /commport:%PORT% > /password:PASSWORD > /validate:no /autostart:no /startnow:no /clusternode:yes > /clustername:%CLUSTERNAME% > > echo. > echo TSM Scheduler Service for %NODENAME% is configured. > rem > ******************************************************************************* > rem The ping statements emulate Sleep, to allow the registry to fully > update before the next command runs. > rem > ******************************************************************************* > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe install cad /name:"TSM Client Acceptor: %NODENAME%" > /clientdir:"%TSMDIR%" /optfile:%DRIVE%:\tsm\dsm.opt /node:%NODENAME% > /password:PASSWORD /validate:yes /autostart:no /startnow:no > /httpport:%HTTPPORT% /cadschedname:"TSM Scheduler: %NODENAME%" > > echo. > echo TSM Client Acceptor Service for %NODENAME% is configured. > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe install remoteagent /name:"TSM Rmt Agent: %NODENAME%" > /optfile:%DRIVE%:\tsm\dsm.opt /node:%NODENAME% /password:PASSWORD > /validate:no /startnow:no /partnername:"TSM Client Acceptor: %NODENAME%" > > echo. > echo TSM Remote Client Agent Service for %NODENAME% is configured. > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe updatepw /node:%NODENAME% /commMethod:tcpip > /commServer:%SVRADDR% /commPort:%PORT% /password:PASSWORD > /oldpassword:PASSWORD /updateonserver:yes /clusternode:yes > /clustername:%CLUSTERNAME% /validate:yes > > echo. > echo Password is reset. > > goto CLEANUP > > rem > ******************************************************************************* > rem Main process: current server is NOT host of vnode > rem > ******************************************************************************* > > :MAIN1B > > if not exist C:\TSM\%NODENAME% md C:\TSM\%NODENAME% > if exist C:\TSM\%NODENAME%\DSM.OPT del C:\TSM\%NODENAME%\DSM.OPT > > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo ******************************************************** >> > C:\TSM\%NODENAME%\DSM.OPT > echo * IBM Tivoli Storage Manager >> > C:\TSM\%NODENAME%\DSM.OPT > echo ******************************************************** >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * Communication Method >> > C:\TSM\%NODENAME%\DSM.OPT > echo COMMMETHOD TCPip >> > C:\TSM\%NODENAME%\DSM.OPT > echo TCPSERVERADDRESS %SVRADDR% >> > C:\TSM\%NODENAME%\DSM.OPT > echo TCPPORT %PORT% >> > C:\TSM\%NODENAME%\DSM.OPT > echo TCPCLIENTPORT %TCPCLPORT% >> > C:\TSM\%NODENAME%\DSM.OPT > echo HTTPPORT %HTTPPORT% >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * Client Node >> > C:\TSM\%NODENAME%\DSM.OPT > echo NODENAME %NODENAME% >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * Access and Performance Options >> > C:\TSM\%NODENAME%\DSM.OPT > echo MANAGEDSERVICES WEBCLIENT SCHEDULE >> > C:\TSM\%NODENAME%\DSM.OPT > echo passwordaccess generate >> > C:\TSM\%NODENAME%\DSM.OPT > echo tcpwindowsize 63 >> > C:\TSM\%NODENAME%\DSM.OPT > echo tcpbuffsize 32 >> > C:\TSM\%NODENAME%\DSM.OPT > echo txnbytelimit 25600 >> > C:\TSM\%NODENAME%\DSM.OPT > echo largecommbuffers no >> > C:\TSM\%NODENAME%\DSM.OPT > echo memoryefficient no >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * Cluster node >> > C:\TSM\%NODENAME%\DSM.OPT > echo clusternode yes >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * Log File Retention >> > C:\TSM\%NODENAME%\DSM.OPT > echo errorlogr 10 d >> > C:\TSM\%NODENAME%\DSM.OPT > echo schedlogr 10 d >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * Domain Statement >> > C:\TSM\%NODENAME%\DSM.OPT > echo domain %DRIVE%: %OTHERDRIVES% >> > C:\TSM\%NODENAME%\DSM.OPT > echo. >> > C:\TSM\%NODENAME%\DSM.OPT > echo * log files >> > C:\TSM\%NODENAME%\DSM.OPT > echo schedlogname %DRIVE%:\tsm\dsmsched.log >> > C:\TSM\%NODENAME%\DSM.OPT > echo errorlogname %DRIVE%:\tsm\dsmerror.log >> > C:\TSM\%NODENAME%\DSM.OPT > > echo. > echo Option file for %NODENAME% is configured. > > c: > cd %TSMDIR% > > .\dsmcutil.exe install /name:"TSM Scheduler: %NODENAME%" > /clientdir:"%TSMDIR%" /optfile:C:\tsm\%NODENAME%\dsm.opt /node:%NODENAME% > /commmethod:tcpip /commserver:%SVRADDR% /commport:%PORT% > /password:PASSWORD > /validate:no /autostart:no /startnow:no /clusternode:yes > /clustername:%CLUSTERNAME% > > echo. > echo TSM Scheduler Service for %NODENAME% is configured. > rem > ******************************************************************************* > rem The ping statements emulate Sleep, to allow the registry to fully > update before the next command runs. > rem > ******************************************************************************* > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe install cad /name:"TSM Client Acceptor: %NODENAME%" > /clientdir:"%TSMDIR%" /optfile:C:\tsm\%NODENAME%\dsm.opt /node:%NODENAME% > /password:PASSWORD /validate:yes /autostart:no /startnow:no > /httpport:%HTTPPORT% /cadschedname:"TSM Scheduler: %NODENAME%" > > echo. > echo TSM Client Acceptor Service for %NODENAME% is configured. > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe install remoteagent /name:"TSM Rmt Agent: %NODENAME%" > /optfile:C:\tsm\%NODENAME%\dsm.opt /node:%NODENAME% /password:PASSWORD > /validate:no /startnow:no /partnername:"TSM Client Acceptor: %NODENAME%" > > echo. > echo TSM Remote Client Agent Service for %NODENAME% is configured. > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe updatepw /node:%NODENAME% /commMethod:tcpip > /commServer:%SVRADDR% /commPort:%PORT% /password:PASSWORD > /oldpassword:PASSWORD /updateonserver:yes /clusternode:yes > /clustername:%CLUSTERNAME% /validate:yes > > echo. > echo Password is reset. > ping 127.0.0.1 -n 2 -w 1000 > nul > > rem > ******************************************************************************* > rem Now update the services so the referenced option file will be in the > correct place when a failover happens > rem > ******************************************************************************* > > .\dsmcutil.exe update /name:"TSM Scheduler: %NODENAME%" > /optfile:%DRIVE%:\tsm\dsm.opt > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe update /name:"TSM Client Acceptor: %NODENAME%" > /optfile:%DRIVE%:\tsm\dsm.opt > ping 127.0.0.1 -n 2 -w 1000 > nul > > .\dsmcutil.exe update /name:"TSM Rmt Agent: %NODENAME%" > /optfile:%DRIVE%:\tsm\dsm.opt > > goto CLEANUP > > :NOHOST > echo. > echo. > echo You must enter Yes or No. Find out if the server you are logged > echo in to is currently the host of the vnode, and restart the batch file. > echo. > echo. > pause > goto end > > :WRONGDIR > echo. > echo. > echo tsmclsv1.bat must be run from the \TSM\BACLIENT directory. > echo. > echo. > echo Please change directory to the BACLIENT directory. > echo. > echo. > pause > goto end > > :NONODE > echo. > echo The Virtual Server name is missing. > echo. > echo Re-execute tsmclsvc.bat and include the name of the clustered > echo virtual node. > echo. > echo. > pause > goto end > > :NOCLUST > echo. > echo The Cluster Name is missing. > echo. > echo Re-execute tsmclsvc.bat and include the name of the cluster that the > echo virtual node is a part of. > echo. > echo. > pause > goto end > > :NODRIVE > echo. > echo The DSM.OPT Volume letter is missing. > echo. > echo Re-execute tsmclsvc.bat and include the volume letter > echo where the DSM.OPT file should reside. > echo. > echo. > pause > goto end > > :NOHTTPPORT > echo. > echo The HTTPPORT paramter is missing. > echo. > echo Re-execute tsmclsvc.bat and include the HTTPPORT. > echo Example: 1591 > echo. > echo. > pause > goto end > > :NOSERVER > echo. > echo The TSM Server abbreviation is missing. > echo. > echo Re-execute tsmclsvc.bat and include the TSM Server name that the > echo clustered node will back up to. > echo. > echo. > pause > goto end > > :WRONGSRVR > echo. > echo ServerName parameter is incorrect, or is capitalized. > echo. > echo Re-execute tsmclsvc.bat and input the TSM server name as requested, > in > lower case. > echo. > echo. > pause > goto end > > :NOINSTALL > echo. > echo There doesn't seem to be a TSM client install in the default > locations. > echo Please ensure that the TSM client is installed in C:\TSM, or > C:\Program Files\Tivoli\TSM > echo and run this script again. > echo. > pause > goto end > > :OPTEXIST > echo. > echo There is already a DSM.OPT file in %DRIVE%:\TSM\. > echo. > echo This batch file is for new configurations only. If there are no > services for > echo this vnode installed yet, you may delete the DSM.OPT file in > %DRIVE%:\TSM\ > echo and run this script again. > echo. > pause > goto end > > :TRYAGAIN > echo. > echo Sorry, you need to answer yes or no to the first question. > echo Please try again. > echo. > pause > goto end > > :CLEANUP > if exist "C:\Program Files\VERITAS\Cluster Manager\bin\ClusterManager.exe" > vxvssprovider /unregserver > if exist "D:\Program Files\VERITAS\Cluster Manager\bin\ClusterManager.exe" > vxvssprovider /unregserver > pause > goto end > > :USAGE > echo. > echo Usage rules; > echo tsmclsvc.bat > echo. > echo Double-click on this batch file when logged > echo in to a physical server that can be a host to the vnode being set > up. > echo. > echo The node must already be defined on the TSM server. > echo. > echo You will be prompted for the following parameters: > echo. > echo Host (yes/no): Is the machine you are logged in to currently > hosting the vnode? > echo. > echo Nodename: The name of the node you are setting up, as > defined on the TSM server > echo. > echo clustername: The name of the cluster that the node is part > of > echo. > echo Drive: Volume letter in the vnode that the dsm.opt > file will reside on, e.g. L > echo. > echo Restricted (yes?): Do you want to restrict this TSM node to back > up only one drive? > echo. > echo OtherDrives: Any other drives in the vnode, e.g. M: N: > echo. > echo HTTPport: Httpport CAD service will listen on, e.g. > 1591, > 1592,.. > echo. > echo Servername: The TSM server that this node will back up to > echo. > > :end > > Robben Leaf > Enterprise Storage Backup and Retention > 651-962-2698 > [EMAIL PROTECTED] > > > > "Bos, Karel" > <[EMAIL PROTECTED] > IGIN.COM> To > Sent by: "ADSM: ADSM-L@VM.MARIST.EDU > Dist Stor cc > Manager" > <[EMAIL PROTECTED] Subject > .EDU> Re: [ADSM-L] TSM and Windows > Cluster Environment > > 07/12/2007 10:26 > AM > > > Please respond to > "ADSM: Dist Stor > Manager" > <[EMAIL PROTECTED] > .EDU> > > > > > > > Hi, > > Yep, we and others have. > > What are the problems you are running into? Installing ITSM clients in a > cluster is described in the ITSM client documentation. > > Regards, > > Karel > > > -----Original Message----- > From: ADSM: Dist Stor Manager [mailto:[EMAIL PROTECTED] On Behalf Of > Richard Mochnaczewski > Sent: donderdag 12 juli 2007 17:19 > To: ADSM-L@VM.MARIST.EDU > Subject: TSM and Windows Cluster Environment > > Hi *, > > Has anyone successfully implemented TSM in a Windows Cluster environment > ? We are running into various problems when trying to configure the TSM > client on certain servers in the cluster and IBM is not being very > helpful. > > TSM Server : 5.3.3.0 running on AIX 5.2 ML9 > > > Rich > > > > ------------------------------------------------------------------------------ > Electronic Privacy Notice. This e-mail, and any attachments, contains > information that is, or may be, covered by electronic communications > privacy laws, and is also confidential and proprietary in nature. If you > are not the intended recipient, please be advised that you are legally > prohibited from retaining, using, copying, distributing, or otherwise > disclosing this information in any manner. Instead, please reply to the > sender that you have received this communication in error, and then > immediately delete it. Thank you in advance for your cooperation. > ============================================================================== >