UPDATE: I got some feedback that some people are not clear on creating multiple schedulers, so I’m updating this post.
Since I wrote about doing TSM Full-VM Image Backups With VStore API I’ve done more testing, and have put it into “production” with our smaller VMWare cluster. This cluster is managed by one department inside IT. It has some VMs used by customers inside the enterprise, some VMs used for development or testing, and some VMs used by the group inside IS. Now that I’m ready to put VMWare backups into practice, I need to schedule the backups. And, I got some great feedback on the first post, so I thought I would follow it up.
First we need to setup the client, and here we have a few options. If we have few enough VMs that we can backup all of them in one backup window, then we just specify the VMs in the client options and setup a schedule. If on the other hand we have too many VMs to backup in one backup window, then we need to setup multiple schedules with multiple schedulers and options files. This is similar to how you would setup Data Protection for MS SQL backups. If you have divided your VMs into folders, you can specify a folder of VMs to backup for each scheduler in the options file. Otherwise, you probably want to specify the VMs individually for each scheduler.
There is another option, you can specify a whole ESX host to each scheduler. I discounted this because a VMotion event would throw off where the VMs get backed up to inside TSM. In my environment, we are sure to end up with multiple unnecessary backups that would have to be cleaned up manually.
Because this is a smaller test system, there are a lot of VMs that I don’t want to backup regularly, and I can get it all backed up in on backup window. So, I specified to backup “ALL-VM”s in the GUI, followed by each VM I wanted to exclude.
This, of course, just adds some lines to the dsm.opt file:
VMMC "VM_IMAGES" DOMAIN.VMFULL "ALL-VM;-VM=crcamzm1-bkup;-VM=DCFM;-VM=dmzftp;-VM=ftp..."
If you're going to run multiple schedulers, at this point you can copy the dsm.opt file to a new file and use that to setup your scheduler services. Otherwise, just restart the scheduler service and you're in business. Also of note, you can schedule file level backups of Windows VMs with the VStorage API similarly just by changing the options.
When I looked at the server side, I was happy to note that Tivoli has added a VM subaction to the Backup action. So, I created a schedule that ran once a week using the enhanced schedule options:
tsm: TSM>def sched standard mmc-opsvc1 action=backup subaction=vm schedstyle=enhanced startt=18:00 DAY=Sunday ANR2500I Schedule MMC-OPSVC1 defined in policy domain STANDARD.
If you have too much data to backup in one backup window, you can break up the backups into multiple schedules that run either at the same time (you could probably run 2 at a time to increase network utilization) or in different backup windows. First, create a node on the TSM server for each schedule and then assign it to a backup schedule:
tsm: TSM>register node mmc-opsvc1_vm1 PASSWORD userid=none ANR2060I Node MMC-OPSVC1_VM2 registered in policy domain STANDARD. tsm: TSM>register node mmc-opsvc1_vm2 PASSWORD userid=none ANR2060I Node MMC-OPSVC1_VM2 registered in policy domain STANDARD. tsm: TSM>def sched standard mmc-opsvc1_vm1 action=backup subaction=vm schedstyle=enhanced startt=18:00 DAY=Sunday ANR2500I Schedule MMC-OPSVC1_VM1 defined in policy domain STANDARD. tsm: TSM>def sched standard mmc-opsvc1_vm2 action=backup subaction=vm schedstyle=enhanced startt=18:00 DAY=Monday ANR2500I Schedule MMC-OPSVC1_VM2 defined in policy domain STANDARD. tsm: TSM>def assoc standard mmc-opsvc1_vm1 mmc-opsvc1_vm1 ANR2510I Node MMC-OPSVC1_VM1 associated with schedule MMC-OPSVC1_VM1 in policy domain STANDARD. tsm: TSM>def assoc standard mmc-opsvc1_vm2 mmc-opsvc1_vm2 ANR2510I Node MMC-OPSVC1_VM2 associated with schedule MMC-OPSVC1_VM2 in policy domain STANDARD.
On the client, create seperate dsm.opt files for each nodename. The VMCHost, VMCUser and VMCPW options will need to be changed for your environment. I put them in with the GUI, the copied and edited the dsm.opt file manually. Here's a basic example, you can specify other options for your environment, notice that I specified two VMFOLDERs instead of the "ALL-VM" option:
C:\Program Files\Tivoli\TSM\baclient>type dsm_vm1.opt NODENAME MMC-OPSVC1_VM1 TCPSERVERADDRESS tsm2.mhc.net TCPPORT 1502 ERRORLOGRETENTION 7 D SCHEDLOGRETENTION 7 D PASSWORDACCESS GENERATE COMPRESSION NO DEDUPLICATION NO SCHEDMODE POLLING VMCHOST mmc-opsvc1.ad.mhc.net VMCUSER pvaughan VMCPW **** VMBACKUPTYPE FULLVM VMFULLTYPE VSTOR VMMC "VM_IMAGES" DOMAIN.VMFULL "VMFOLDER=Ambulatory Apps;VMFOLDER=Amcom;"
Once you have the dsm.opt files in place, you just need to register a scheduler service for each file. Here's an example of one:
C:\Program Files\Tivoli\TSM\baclient>dsmcutil install /name:"TSM Scheduler VM1" /node:"MMC-OPSVC1_VM1" /password:"PASSWORD" /optfile:"dsm_vm1.opt" /startnow:Yes ... Installing TSM Client Service: Machine : MMC-OPSVC1 Service Name : TSM Scheduler VM1 Client Directory : C:\Program Files\Tivoli\TSM\baclient Automatic Start : no Logon Account : LocalSystem The service was successfully installed. ... Authenticating TSM password for node MMC-OPSVC1_VM2 ... Connecting to TSM Server via client options file 'C:\Program Files\Tivoli\TSM\baclient\dsm_vm1.opt' ... Password authentication successful. The registry password for TSM node MMC-OPSVC1_VM1 has been updated. Starting the 'TSM Scheduler VM1' service ... The service was successfully started.
Another nice thing that Tivoli did is make each set of image backups for a specific VM a filespace in TSM:
tsm: TSM>q file mmc-opsvc1 Node Name Filespace FSID Platform Filespace Is Files- Capacity Pct Name Type pace (MB) Util Unicode? --------------- ----------- ---- -------- --------- --------- ----------- ----- MMC-OPSVC1 \VMFULL-HMC 1 WinNT API:TSMVM No 0.0 0.0 MMC-OPSVC1 \VMFULL-DC- 2 WinNT API:TSMVM No 0.0 0.0 FM MMC-OPSVC1 \VMFULL-ftp 3 WinNT API:TSMVM No 0.0 0.0
As you can see, a filespace is created in the format of "\VMFULL-VMNAME". If you need to remove the backups for a VM because it's been decommissioned or moved, you can simply delete the filespace.